From ec90a8e1293f6c4ade1a96aeaa197b77b6e448fc Mon Sep 17 00:00:00 2001 From: Yifeng Zhao Date: Tue, 22 Sep 2020 15:26:31 +0800 Subject: [PATCH] drivers: rk_nand: update nand flash drivers 1. support samsung 14nm 8GB NAND FLASH. 2. support ymtc 64L 32GB NAND FLASH. 3. support toshiba 15nm 8GB NAND FLASH. 4. disabled loader upgrade api. 5. support rk3568 Signed-off-by: Yifeng Zhao Change-Id: Ifa5b380412b3b8fa704803bff7cddc7388fb629a --- drivers/rk_nand/rk_ftl_arm_v7.S | 19879 +++++++-------- drivers/rk_nand/rk_ftl_arm_v7_thumb.S | 19510 +++++++------- drivers/rk_nand/rk_ftl_arm_v8.S | 16206 ++++++------ drivers/rk_nand/rk_ftlv5_arm32.S | 17961 ++++++------- drivers/rk_nand/rk_ftlv5_arm64.S | 15049 +++++------ drivers/rk_nand/rk_zftl_arm32.S | 32275 +++++++++++++----------- drivers/rk_nand/rk_zftl_arm64.S | 30590 +++++++++++----------- 7 files changed, 78588 insertions(+), 72882 deletions(-) diff --git a/drivers/rk_nand/rk_ftl_arm_v7.S b/drivers/rk_nand/rk_ftl_arm_v7.S index cc22c1c5590e..65ad9ed3b7e0 100644 --- a/drivers/rk_nand/rk_ftl_arm_v7.S +++ b/drivers/rk_nand/rk_ftl_arm_v7.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2020-02-18 + * date: 2020-09-23 */ .arch armv7-a .fpu softvfp @@ -183,28 +183,37 @@ FlashReadCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr ip, .L47 + ldr ip, .L49 + str lr, [sp, #-4]! + .save {lr} + add r3, ip, r0, asl #3 + ldr ip, [ip, #44] + ldr r2, [r3, #12] + ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb ip, [ip, #7] @ zero_extendqisi2 + mov r3, r3, asl #8 + cmp ip, #1 + addeq ip, r2, r3 + add r3, r2, r3 + moveq lr, #38 + mov r2, #0 + streq lr, [ip, #2056] + str r2, [r3, #2056] + str r2, [r3, #2052] + str r2, [r3, #2052] + uxtb r2, r1 + str r2, [r3, #2052] + mov r2, r1, lsr #8 + str r2, [r3, #2052] mov r2, r1, lsr #16 - add ip, ip, r0, asl #3 - ldr r3, [ip, #12] - ldrb ip, [ip, #16] @ zero_extendqisi2 - add r3, r3, ip, asl #8 - mov ip, #0 - str ip, [r3, #2056] - str ip, [r3, #2052] - str ip, [r3, #2052] - uxtb ip, r1 - str ip, [r3, #2052] - mov ip, r1, lsr #8 - str ip, [r3, #2052] str r2, [r3, #2052] mov r2, #48 str r2, [r3, #2056] + ldr lr, [sp], #4 b FlashSetRandomizer -.L48: +.L50: .align 2 -.L47: +.L49: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -215,11 +224,11 @@ FlashReadDpDataOutCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L54 + ldr ip, .L56 stmfd sp!, {r4, lr} .save {r4, lr} add r3, ip, r0, asl #3 - ldrb ip, [ip, #60] @ zero_extendqisi2 + ldrb ip, [ip, #64] @ zero_extendqisi2 uxtb r4, r1 ldr r2, [r3, #12] mov lr, r1, lsr #8 @@ -228,7 +237,7 @@ FlashReadDpDataOutCmd: mov ip, r1, lsr #16 mov r3, r3, asl #8 add r3, r2, r3 - bne .L50 + bne .L52 mov r2, #6 str r2, [r3, #2056] mov r2, #0 @@ -237,8 +246,8 @@ FlashReadDpDataOutCmd: str r4, [r3, #2052] str lr, [r3, #2052] str ip, [r3, #2052] - b .L53 -.L50: + b .L55 +.L52: mov r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -250,14 +259,14 @@ FlashReadDpDataOutCmd: str ip, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] -.L53: +.L55: mov r2, #224 str r2, [r3, #2056] ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L55: +.L57: .align 2 -.L54: +.L56: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd @@ -269,7 +278,7 @@ FlashProgFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L57 + ldr ip, .L59 mov r2, r1, lsr #16 add ip, ip, r0, asl #3 ldr r3, [ip, #12] @@ -286,9 +295,9 @@ FlashProgFirstCmd: str ip, [r3, #2052] str r2, [r3, #2052] b FlashSetRandomizer -.L58: +.L60: .align 2 -.L57: +.L59: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -302,12 +311,12 @@ FlashEraseCmd: str lr, [sp, #-4]! .save {lr} cmp r2, #0 - ldr lr, .L65 + ldr lr, .L67 add r0, lr, r0, asl #3 ldrb r3, [r0, #16] @ zero_extendqisi2 ldr ip, [r0, #12] mov r3, r3, asl #8 - beq .L60 + beq .L62 add r2, ip, r3 mov r0, #96 str r0, [r2, #2056] @@ -319,7 +328,7 @@ FlashEraseCmd: str r0, [r2, #2052] ldr r2, [lr, #4] add r1, r1, r2 -.L60: +.L62: add r3, ip, r3 mov r2, #96 str r2, [r3, #2056] @@ -332,9 +341,9 @@ FlashEraseCmd: mov r2, #208 str r2, [r3, #2056] ldr pc, [sp], #4 -.L66: +.L68: .align 2 -.L65: +.L67: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -345,12 +354,12 @@ FlashProgDpSecondCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L69 + ldr ip, .L71 mov r2, r1, lsr #16 str lr, [sp, #-4]! .save {lr} add lr, ip, r0, asl #3 - ldrb ip, [ip, #55] @ zero_extendqisi2 + ldrb ip, [ip, #59] @ zero_extendqisi2 ldr r3, [lr, #12] ldrb lr, [lr, #16] @ zero_extendqisi2 add r3, r3, lr, asl #8 @@ -365,9 +374,9 @@ FlashProgDpSecondCmd: str r2, [r3, #2052] ldr lr, [sp], #4 b FlashSetRandomizer -.L70: +.L72: .align 2 -.L69: +.L71: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -380,21 +389,21 @@ FlashProgSecondCmd: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L73 + ldr r3, .L75 add r0, r3, r0, asl #3 - ldr r3, .L73+4 + ldr r3, .L75+4 ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] ldr r3, [r3, #4] add r4, r4, r5, asl #8 - ldr r0, .L73+8 + ldr r0, .L75+8 blx r3 mov r3, #16 str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, pc} -.L74: +.L76: .align 2 -.L73: +.L75: .word .LANCHOR0 .word arm_delay_ops .word 214748300 @@ -408,17 +417,17 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L76 + ldr r2, .L78 add r0, r2, r0, asl #3 - ldrb r2, [r2, #54] @ zero_extendqisi2 + ldrb r2, [r2, #58] @ zero_extendqisi2 ldrb r1, [r0, #16] @ zero_extendqisi2 ldr r3, [r0, #12] add r3, r3, r1, asl #8 str r2, [r3, #2056] bx lr -.L77: +.L79: .align 2 -.L76: +.L78: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd @@ -430,23 +439,23 @@ js_hash: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L82 + ldr r3, .L84 add r1, r0, r1 -.L79: +.L81: cmp r0, r1 - beq .L81 + beq .L83 mov r2, r3, asl #5 ldrb ip, [r0], #1 @ zero_extendqisi2 add r2, r2, r3, lsr #2 add r2, r2, ip eor r3, r3, r2 - b .L79 -.L81: + b .L81 +.L83: mov r0, r3 bx lr -.L83: +.L85: .align 2 -.L82: +.L84: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -481,28 +490,28 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L87 - ldr r2, [r3, #76] + ldr r3, .L89 + ldr r2, [r3, #80] ldr r1, [r2] - str r1, [r3, #80] - ldr r1, [r2, #4] str r1, [r3, #84] - ldr r1, [r2, #8] + ldr r1, [r2, #4] str r1, [r3, #88] - ldr r1, [r2, #12] + ldr r1, [r2, #8] str r1, [r3, #92] - ldr r1, [r2, #304] + ldr r1, [r2, #12] str r1, [r3, #96] - ldr r1, [r2, #308] + ldr r1, [r2, #304] str r1, [r3, #100] + ldr r1, [r2, #308] + str r1, [r3, #104] ldr r1, [r2, #336] ldr r2, [r2, #344] - str r1, [r3, #104] - str r2, [r3, #108] + str r1, [r3, #108] + str r2, [r3, #112] bx lr -.L88: +.L90: .align 2 -.L87: +.L89: .word .LANCHOR0 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend @@ -518,14 +527,14 @@ LogAddr2PhyAddr: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r5, r0 - ldr r0, .L95 + ldr r0, .L97 mov r8, r3 ldr ip, [r5, #4] mov r9, r1 mov r7, r2 - ldrh r3, [r0, #126] + ldrh r3, [r0, #130] bic ip, ip, #-2147483648 - ldrh r4, [r0, #124] + ldrh r4, [r0, #128] ubfx r6, ip, #10, #16 ldrh r10, [r0, #4] mov fp, r0 @@ -546,16 +555,16 @@ LogAddr2PhyAddr: rsb r6, r4, r6 ubfx r4, ip, #0, #10 uxth r6, r6 - bne .L91 - ldrb r3, [fp, #140] @ zero_extendqisi2 + bne .L93 + ldrb r3, [fp, #144] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L95 + ldreq r3, .L97 addeq r4, r3, r4, asl #1 - ldreqh r4, [r4, #144] -.L91: + ldreqh r4, [r4, #148] +.L93: add ip, fp, r0, asl #2 ldrb r3, [sp, #48] @ zero_extendqisi2 - ldr r1, [ip, #1168] + ldr r1, [ip, #1172] cmp r3, #1 mla r1, r10, r6, r1 add r4, r1, r4 @@ -571,9 +580,9 @@ LogAddr2PhyAddr: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L96: +.L98: .align 2 -.L95: +.L97: .word .LANCHOR0 .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -585,14 +594,14 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L98 - ldr r2, [r3, #1200] - str r0, [r3, #1200] + ldr r3, .L100 + ldr r2, [r3, #1204] + str r0, [r3, #1204] mov r0, r2 bx lr -.L99: +.L101: .align 2 -.L98: +.L100: .word .LANCHOR0 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -604,13 +613,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L101 - ldr r3, [r3, #1204] + ldr r3, .L103 + ldr r3, [r3, #44] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L102: +.L104: .align 2 -.L101: +.L103: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -633,16 +642,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L105 + ldr r3, .L107 add r0, r3, r0, asl #3 ldrb r2, [r0, #16] @ zero_extendqisi2 ldr r0, [r0, #12] add r2, r2, #8 add r0, r0, r2, asl #8 bx lr -.L106: +.L108: .align 2 -.L105: +.L107: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -654,16 +663,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L108 - ldr r2, [r3, #76] + ldr r3, .L110 + ldr r2, [r3, #80] mov r3, r0, asl #8 orr r0, r3, r0, asl #16 orr r3, r0, #1 str r3, [r2, #304] bx lr -.L109: +.L111: .align 2 -.L108: +.L110: .word .LANCHOR0 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara @@ -675,14 +684,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L111 + ldr r3, .L113 orr r0, r0, #16640 - ldr r3, [r3, #76] + ldr r3, [r3, #80] str r0, [r3, #344] bx lr -.L112: +.L114: .align 2 -.L111: +.L113: .word .LANCHOR0 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv @@ -694,17 +703,17 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L116 + ldr r3, .L118 cmp r0, #0 - ldr r2, [r3, #76] + ldr r2, [r3, #80] ldr r3, [r2] bfieq r3, r0, #13, #1 orrne r3, r3, #253952 str r3, [r2] bx lr -.L117: +.L119: .align 2 -.L116: +.L118: .word .LANCHOR0 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode @@ -716,18 +725,18 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L125 + ldr r3, .L127 ands r1, r0, #6 - ldr r2, [r3, #76] + ldr r2, [r3, #80] ldr r3, [r2] bfieq r3, r1, #13, #1 - beq .L121 + beq .L123 orr r3, r3, #24576 movw r1, #8322 bfc r3, #15, #1 str r1, [r2, #344] orr r3, r3, #196608 - ldr r1, .L125+4 + ldr r1, .L127+4 tst r0, #4 orrne r3, r3, #32768 str r1, [r2, #304] @@ -735,13 +744,13 @@ NandcSetMode: str r1, [r2, #308] mov r1, #39 str r1, [r2, #308] -.L121: +.L123: str r3, [r2] mov r0, #0 bx lr -.L126: +.L128: .align 2 -.L125: +.L127: .word .LANCHOR0 .word 1052675 .fnend @@ -754,7 +763,7 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L128 + ldr r2, .L130 add r0, r2, r0, asl #3 mov r2, #1 ldr r1, [r0, #12] @@ -764,9 +773,9 @@ NandcFlashCs: bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L129: +.L131: .align 2 -.L128: +.L130: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -778,7 +787,7 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L131 + ldr r3, .L133 add r0, r3, r0, asl #3 ldr r2, [r0, #12] ldr r3, [r2] @@ -786,9 +795,9 @@ NandcFlashDeCs: bfc r3, #17, #1 str r3, [r2] bx lr -.L132: +.L134: .align 2 -.L131: +.L133: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs @@ -802,18 +811,18 @@ NandcDelayns: stmfd sp!, {r3, lr} .save {r3, lr} add r0, r0, #996 - ldr r3, .L135 + ldr r3, .L137 add r0, r0, #3 umull r0, r1, r0, r3 - ldr r3, .L135+4 + ldr r3, .L137+4 ldr r3, [r3, #8] mov r0, r1, lsr #6 blx r3 mov r0, #0 ldmfd sp!, {r3, pc} -.L136: +.L138: .align 2 -.L135: +.L137: .word 274877907 .word arm_delay_ops .fnend @@ -828,7 +837,7 @@ FlashReadStatus: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, #112 - ldr r3, .L139 + ldr r3, .L141 add r0, r3, r0, asl #3 ldrb r4, [r0, #16] @ zero_extendqisi2 ldr r5, [r0, #12] @@ -839,9 +848,9 @@ FlashReadStatus: bl NandcDelayns ldr r0, [r5, r4, asl #8] ldmfd sp!, {r3, r4, r5, pc} -.L140: +.L142: .align 2 -.L139: +.L141: .word .LANCHOR0 .fnend .size FlashReadStatus, .-FlashReadStatus @@ -855,16 +864,16 @@ ToshibaSetRRPara: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r8, r1, r1, asl #2 - ldr r9, .L151 + ldr r9, .L153 mov r5, r0 - ldr r7, .L151+4 + ldr r7, .L153+4 mov r6, r1 add r10, r9, #256 mov r4, #0 -.L142: +.L144: ldrb r3, [r7, #1209] @ zero_extendqisi2 cmp r4, r3 - bcs .L150 + bcs .L152 mov r3, #85 str r3, [r5, #8] ldrsb r3, [r4, r10] @@ -875,26 +884,26 @@ ToshibaSetRRPara: cmp r3, #34 addeq r3, r4, r8 addeq r3, r10, r3 - beq .L149 + beq .L151 cmp r3, #35 addne r3, r9, r6 addne r3, r3, #400 ldrnesb r3, [r3] - bne .L148 - ldr r3, .L151+8 + bne .L150 + ldr r3, .L153+8 add r2, r4, r8 add r3, r3, r2 -.L149: +.L151: ldrsb r3, [r3, #5] -.L148: +.L150: str r3, [r5] add r4, r4, #1 - b .L142 -.L150: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + b .L144 .L152: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L154: .align 2 -.L151: +.L153: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR1+304 @@ -907,21 +916,21 @@ SamsungSetRRPara: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L158 + ldr r3, .L160 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r1, r3, r1, asl #2 - ldr r8, .L158+4 + ldr r8, .L160+4 mov r4, #0 add r5, r1, #3 mov r6, r0 mov r7, r3 mov r9, #161 mov r10, r4 -.L154: +.L156: ldrb r3, [r8, #1209] @ zero_extendqisi2 cmp r4, r3 - bcs .L157 + bcs .L159 str r9, [r6, #8] mov r0, #300 str r10, [r6] @@ -931,12 +940,12 @@ SamsungSetRRPara: ldrsb r3, [r5, #1]! str r3, [r6] bl NandcDelayns - b .L154 -.L157: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + b .L156 .L159: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L161: .align 2 -.L158: +.L160: .word .LANCHOR1+408 .word .LANCHOR0 .fnend @@ -952,36 +961,36 @@ HynixSetRRPara: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r6, r3 - ldr r5, .L169 + ldr r5, .L171 mov r9, r2 - ldr r4, .L169+4 + ldr r4, .L171+4 mov r7, r0 mov r8, r1 - ldr r3, [r5, #1204] + ldr r3, [r5, #44] ldrb r2, [r3, #19] @ zero_extendqisi2 mov r3, r0, asl #3 cmp r2, #6 addeq r4, r4, r0, asl #6 addeq r4, r4, #20 addeq r4, r4, r6, asl #2 - beq .L162 + beq .L164 cmp r2, #7 - bne .L163 + bne .L165 mov r2, #160 mla r4, r2, r0, r4 add r2, r6, r6, asl #2 add r4, r4, #28 add r4, r4, r2, asl #1 - b .L162 -.L163: + b .L164 +.L165: cmp r2, #8 addne r2, r6, r3 addeq r2, r6, r6, asl #2 - ldreq r4, .L169+8 + ldreq r4, .L171+8 addne r4, r4, r2, asl #3 addeq r4, r4, r2 addne r4, r4, #20 -.L162: +.L164: add r3, r5, r3 mov r0, r7 sub r8, r8, #1 @@ -995,9 +1004,9 @@ HynixSetRRPara: mov r2, #54 add fp, r10, r3 str r2, [fp, #2056] -.L165: +.L167: cmp ip, r9 - beq .L168 + beq .L170 ldrb r2, [ip, #1]! @ zero_extendqisi2 mov r0, #200 str r3, [sp, #4] @@ -1008,8 +1017,8 @@ HynixSetRRPara: str r2, [fp, #2048] ldr r3, [sp, #4] ldr ip, [sp] - b .L165 -.L168: + b .L167 +.L170: add r10, r10, r3 mov r0, r7 mov r3, #22 @@ -1020,9 +1029,9 @@ HynixSetRRPara: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L170: +.L172: .align 2 -.L169: +.L171: .word .LANCHOR0 .word .LANCHOR0+1210 .word .LANCHOR0+1238 @@ -1035,8 +1044,8 @@ FlashSetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L179 - ldr r2, [r3, #1204] + ldr r3, .L181 + ldr r2, [r3, #44] ldrb r2, [r2, #19] @ zero_extendqisi2 sub r2, r2, #1 cmp r2, #7 @@ -1044,25 +1053,25 @@ FlashSetReadRetryDefault: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, #0 - ldr r6, .L179+4 + ldr r6, .L181+4 mov r5, r3 -.L172: +.L174: ldrb r3, [r6, r4, asl #3] @ zero_extendqisi2 uxtb r0, r4 cmp r3, #173 - bne .L173 + bne .L175 ldrb r1, [r5, #1211] @ zero_extendqisi2 mov r3, #0 - ldr r2, .L179+8 + ldr r2, .L181+8 bl HynixSetRRPara -.L173: +.L175: add r4, r4, #1 cmp r4, #4 - bne .L172 + bne .L174 ldmfd sp!, {r4, r5, r6, pc} -.L180: +.L182: .align 2 -.L179: +.L181: .word .LANCHOR0 .word .LANCHOR0+2068 .word .LANCHOR0+1214 @@ -1075,11 +1084,11 @@ FlashReadStatusEN: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L192 + ldr ip, .L194 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} add r0, ip, r0, asl #3 - ldr r3, [ip, #1204] + ldr r3, [ip, #44] ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] ldrb r3, [r3, #8] @ zero_extendqisi2 @@ -1089,35 +1098,35 @@ FlashReadStatusEN: add r5, r5, #8 movne r2, #112 strne r2, [r3, #2056] - bne .L186 + bne .L188 cmp r2, #0 add r3, r4, r3 - ldrneb r2, [ip, #58] @ zero_extendqisi2 - ldreqb r2, [ip, #57] @ zero_extendqisi2 + ldrneb r2, [ip, #62] @ zero_extendqisi2 + ldreqb r2, [ip, #61] @ zero_extendqisi2 str r2, [r3, #2056] - ldrb r0, [ip, #59] @ zero_extendqisi2 + ldrb r0, [ip, #63] @ zero_extendqisi2 cmp r0, #0 addne ip, r4, r5, asl #8 movne r2, #0 - beq .L186 -.L185: + beq .L188 +.L187: cmp r2, r0 - bcs .L186 + bcs .L188 mov r3, r2, asl #3 add r2, r2, #1 mov r3, r1, lsr r3 uxtb r3, r3 str r3, [ip, #4] - b .L185 -.L186: + b .L187 +.L188: mov r0, #80 bl NandcDelayns ldr r0, [r4, r5, asl #8] uxtb r0, r0 ldmfd sp!, {r3, r4, r5, pc} -.L193: +.L195: .align 2 -.L192: +.L194: .word .LANCHOR0 .fnend .size FlashReadStatusEN, .-FlashReadStatusEN @@ -1133,16 +1142,19 @@ FlashWaitReadyEN: mov r4, r0 mov r5, r1 mov r6, r2 -.L198: +.L197: mov r0, r4 mov r1, r5 mov r2, r6 bl FlashReadStatusEN cmp r0, #255 - beq .L198 + beq .L197 tst r0, #64 - beq .L198 - ldmfd sp!, {r4, r5, r6, pc} + ldmnefd sp!, {r4, r5, r6, pc} + mov r0, #1 + mov r1, #3 + bl usleep_range + b .L197 .fnend .size FlashWaitReadyEN, .-FlashWaitReadyEN .align 2 @@ -1154,19 +1166,19 @@ FlashWaitCmdDone: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r5, .L210 + ldr r5, .L211 add r4, r5, r0, asl #4 ldr r3, [r4, #2108] ldrb r7, [r4, #2100] @ zero_extendqisi2 cmp r3, #0 - beq .L204 + beq .L205 mov r6, r0 mov r0, r7 add r5, r5, r6, asl #2 bl NandcFlashCs ldr r1, [r4, #2104] mov r0, r7 - ldr r2, [r5, #1168] + ldr r2, [r5, #1172] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN @@ -1182,12 +1194,12 @@ FlashWaitCmdDone: cmp r1, r2 strne r3, [r1] strne r2, [r4, #2112] -.L204: +.L205: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L211: +.L212: .align 2 -.L210: +.L211: .word .LANCHOR0 .fnend .size FlashWaitCmdDone, .-FlashWaitCmdDone @@ -1197,7 +1209,7 @@ flash_read_ecc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L214 + ldr r2, .L215 stmfd sp!, {r4, lr} .save {r4, lr} add r0, r2, r0, asl #3 @@ -1223,9 +1235,9 @@ flash_read_ecc: cmp r0, r3 movcc r0, r3 ldmfd sp!, {r4, pc} -.L215: +.L216: .align 2 -.L214: +.L215: .word .LANCHOR0 .fnend .size flash_read_ecc, .-flash_read_ecc @@ -1236,34 +1248,34 @@ NandcWaitFlashReadyNoDelay: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L222 + ldr r3, .L223 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, asl #3 - ldr r4, .L222+4 + ldr r4, .L223+4 ldr r5, [r0, #12] -.L218: +.L219: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L219 + bne .L220 mov r0, #10 bl NandcDelayns subs r4, r4, #1 - bne .L218 + bne .L219 mvn r0, #0 - b .L217 -.L219: + b .L218 +.L220: mov r0, #0 -.L217: +.L218: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L223: +.L224: .align 2 -.L222: +.L223: .word .LANCHOR0 .word 100000 .fnend @@ -1275,36 +1287,37 @@ NandcWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L230 + ldr r3, .L231 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, asl #3 - ldr r4, .L230+4 + ldr r4, .L231+4 ldr r5, [r0, #12] - mov r0, #150 + mov r0, #130 bl NandcDelayns -.L226: +.L227: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L227 - mov r0, #10 - bl NandcDelayns + bne .L228 + mov r0, #1 + mov r1, #2 + bl usleep_range subs r4, r4, #1 - bne .L226 + bne .L227 mvn r0, #0 - b .L225 -.L227: + b .L226 +.L228: mov r0, #0 -.L225: +.L226: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L231: +.L232: .align 2 -.L230: +.L231: .word .LANCHOR0 .word 100000 .fnend @@ -1316,7 +1329,7 @@ FlashReset: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L234 + ldr r3, .L235 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} add r3, r3, r0, asl #3 @@ -1332,9 +1345,9 @@ FlashReset: mov r0, r4 ldmfd sp!, {r4, r5, r6, lr} b NandcFlashDeCs -.L235: +.L236: .align 2 -.L234: +.L235: .word .LANCHOR0 .fnend .size FlashReset, .-FlashReset @@ -1345,20 +1358,24 @@ flash_enter_slc_mode: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - ldr r4, .L239 - ldrb r3, [r4, #140] @ zero_extendqisi2 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + ldr r5, .L244 + ldrb r3, [r5, #144] @ zero_extendqisi2 cmp r3, #0 - ldmeqfd sp!, {r3, r4, r5, pc} - mov r5, r0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} + mov r6, r0 bl NandcFlashCs - add r3, r4, r5, asl #3 - mov r0, #100 - ldr r4, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 - add r4, r4, r3, asl #8 + add r4, r5, r6, asl #3 + ldrb r3, [r4, #2068] @ zero_extendqisi2 + ldrb r8, [r4, #16] @ zero_extendqisi2 + cmp r3, #44 + ldr r7, [r4, #12] + mov r8, r8, asl #8 + bne .L239 + add r4, r7, r8 mov r3, #239 + mov r0, #50 str r3, [r4, #2056] mov r3, #145 str r3, [r4, #2052] @@ -1371,16 +1388,20 @@ flash_enter_slc_mode: str r3, [r4, #2048] str r3, [r4, #2048] bl NandcDelayns - mov r0, r5 +.L239: + add r7, r7, r8 + mov r0, r6 bl NandcWaitFlashReadyNoDelay mov r3, #218 - mov r0, r5 - str r3, [r4, #2056] - ldmfd sp!, {r3, r4, r5, lr} - b NandcWaitFlashReady -.L240: + mov r0, r6 + str r3, [r7, #2056] + bl NandcWaitFlashReady + mov r3, #2 + strb r3, [r5, #2228] + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L245: .align 2 -.L239: +.L244: .word .LANCHOR0 .fnend .size flash_enter_slc_mode, .-flash_enter_slc_mode @@ -1391,20 +1412,24 @@ flash_exit_slc_mode: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - ldr r4, .L244 - ldrb r3, [r4, #140] @ zero_extendqisi2 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + ldr r5, .L253 + ldrb r3, [r5, #144] @ zero_extendqisi2 cmp r3, #0 - ldmeqfd sp!, {r3, r4, r5, pc} - mov r5, r0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} + mov r6, r0 bl NandcFlashCs - add r3, r4, r5, asl #3 - mov r0, #100 - ldr r4, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 - add r4, r4, r3, asl #8 + add r4, r5, r6, asl #3 + ldrb r3, [r4, #2068] @ zero_extendqisi2 + ldrb r8, [r4, #16] @ zero_extendqisi2 + cmp r3, #44 + ldr r7, [r4, #12] + mov r8, r8, asl #8 + bne .L248 + add r4, r7, r8 mov r3, #239 + mov r0, #50 str r3, [r4, #2056] mov r3, #145 str r3, [r4, #2052] @@ -1418,16 +1443,20 @@ flash_exit_slc_mode: str r3, [r4, #2048] str r3, [r4, #2048] bl NandcDelayns - mov r0, r5 +.L248: + add r7, r7, r8 + mov r0, r6 bl NandcWaitFlashReadyNoDelay mov r3, #223 - mov r0, r5 - str r3, [r4, #2056] - ldmfd sp!, {r3, r4, r5, lr} - b NandcWaitFlashReady -.L245: + mov r0, r6 + str r3, [r7, #2056] + bl NandcWaitFlashReady + mov r3, #0 + strb r3, [r5, #2228] + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L254: .align 2 -.L244: +.L253: .word .LANCHOR0 .fnend .size flash_exit_slc_mode, .-flash_exit_slc_mode @@ -1469,14 +1498,14 @@ FlashSetInterfaceMode: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L271 + ldr r1, .L280 stmfd sp!, {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 - ldrb fp, [r1, #2228] @ zero_extendqisi2 + ldrb fp, [r1, #2229] @ zero_extendqisi2 mov lr, #0 - ldr r7, .L271+4 + ldr r7, .L280+4 mov r4, #239 and r2, fp, #4 and r3, fp, #1 @@ -1491,71 +1520,71 @@ FlashSetInterfaceMode: str r3, [sp, #4] add r3, r1, #12 str r3, [sp, #12] -.L258: +.L267: ldr r3, [sp, #12] ldrb ip, [lr, r7] @ zero_extendqisi2 ldr r1, [r3, lr]! cmp ip, #69 cmpne ip, #152 ldrb r3, [r3, #4] @ zero_extendqisi2 - beq .L249 + beq .L258 cmp ip, #44 cmpne ip, #173 - bne .L250 -.L249: + bne .L259 +.L258: cmp r0, #1 - bne .L251 + bne .L260 ldr fp, [sp, #8] cmp fp, #0 - beq .L250 + beq .L259 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r0, [fp, #2052] - beq .L270 + beq .L279 cmp ip, #44 streq r0, [fp, #2052] strne r5, [fp, #2052] streq r10, [fp, #2048] strne r0, [fp, #2048] - b .L256 -.L251: + b .L265 +.L260: ldr fp, [sp, #4] cmp fp, #0 - beq .L250 + beq .L259 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r6, [fp, #2052] streq r9, [fp, #2048] - beq .L256 + beq .L265 cmp ip, #44 streq r6, [fp, #2052] streq r8, [fp, #2048] - beq .L256 + beq .L265 str r5, [fp, #2052] -.L270: +.L279: str r2, [fp, #2048] -.L256: +.L265: add r3, r1, r3 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L250: +.L259: add lr, lr, #8 cmp lr, #32 - bne .L258 + bne .L267 mov r0, #0 bl NandcWaitFlashReady mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L272: +.L281: .align 2 -.L271: +.L280: .word .LANCHOR0 .word .LANCHOR0+2068 .fnend @@ -1567,11 +1596,11 @@ FlashReadSpare: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L275 + ldr ip, .L284 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} add ip, ip, r0, asl #3 - ldr r3, .L275+4 + ldr r3, .L284+4 mov r5, r2 ldrb r2, [ip, #16] @ zero_extendqisi2 ldr r4, [ip, #12] @@ -1595,9 +1624,9 @@ FlashReadSpare: ldr r3, [r4, #2048] strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L276: +.L285: .align 2 -.L275: +.L284: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -1609,7 +1638,7 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L279 + ldr r2, .L288 stmfd sp!, {r4, lr} .save {r4, lr} add r2, r2, r0, asl #3 @@ -1639,9 +1668,9 @@ SandiskProgTestBadBlock: ldr r0, [r4, #2048] and r0, r0, #1 ldmfd sp!, {r4, pc} -.L280: +.L289: .align 2 -.L279: +.L288: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -1662,15 +1691,15 @@ SandiskSetRRPara: mov r0, #200 mov r4, r1 bl NandcDelayns - ldr r0, .L289 - ldr r1, .L289+4 + ldr r0, .L298 + ldr r1, .L298+4 add r4, r4, r4, asl #2 sub ip, r0, #48 mov r2, #0 -.L282: +.L291: ldrb r3, [r1, #1209] @ zero_extendqisi2 cmp r2, r3 - bcs .L288 + bcs .L297 ldrb r3, [r1, #1208] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 @@ -1679,14 +1708,14 @@ SandiskSetRRPara: add r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L282 -.L288: + b .L291 +.L297: mov r0, #0 ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L290: +.L299: .align 2 -.L289: +.L298: .word .LANCHOR1+304 .word .LANCHOR0 .fnend @@ -1703,7 +1732,7 @@ micron_auto_read_calibration_config: mov r4, r0 mov r5, r1 bl NandcWaitFlashReady - ldr r3, .L293 + ldr r3, .L302 mov r0, #200 add r2, r3, r4, asl #3 ldrb r4, [r2, #16] @ zero_extendqisi2 @@ -1720,9 +1749,9 @@ micron_auto_read_calibration_config: str r3, [r4, #2048] str r3, [r4, #2048] ldmfd sp!, {r3, r4, r5, pc} -.L294: +.L303: .align 2 -.L293: +.L302: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -1736,15 +1765,15 @@ FlashEraseSLc2KBlocks: stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r8, .L307 + ldr r8, .L316 .pad #20 sub sp, sp, #20 mov r6, r0 mov r9, r1 mov r7, r5 -.L296: +.L305: cmp r7, r9 - beq .L306 + beq .L315 rsb r3, r7, r9 add r2, sp, #8 add r0, r6, r5 @@ -1753,12 +1782,12 @@ FlashEraseSLc2KBlocks: str r3, [sp] add r3, sp, #12 bl LogAddr2PhyAddr - ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldrb r2, [r8, #2230] @ zero_extendqisi2 ldr r3, [sp, #12] cmp r3, r2 mvncs r3, #0 strcs r3, [r6, r5] - bcs .L298 + bcs .L307 add r2, r8, r3 add r3, r8, r3, asl #4 ldrb r4, [r2, #2232] @ zero_extendqisi2 @@ -1794,88 +1823,266 @@ FlashEraseSLc2KBlocks: strne r3, [r6, r5] ldr r3, [r6, r5] cmn r3, #1 - bne .L300 - ldr r0, .L307+4 + bne .L309 + ldr r0, .L316+4 ldr r1, [sp, #8] bl printk -.L300: +.L309: mov r0, r4 bl NandcFlashDeCs -.L298: +.L307: add r7, r7, #1 add r5, r5, #36 - b .L296 -.L306: + b .L305 +.L315: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L308: +.L317: .align 2 -.L307: +.L316: .word .LANCHOR0 .word .LC1 .fnend .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks .align 2 + .global FlashEraseBlocks + .type FlashEraseBlocks, %function +FlashEraseBlocks: + .fnstart + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + mov r8, r2 + ldr r4, .L354 + .pad #28 + sub sp, sp, #28 + ldrb r5, [r4] @ zero_extendqisi2 + cmp r5, #0 + moveq r9, r0 + moveq r10, r1 + moveq fp, r4 + beq .L319 + mov r1, r2 + bl FlashEraseSLc2KBlocks + b .L320 +.L328: + mov r3, #36 + mov r1, #0 + mul r6, r3, r5 + add r2, sp, #16 + add r3, r9, r6 + str r3, [sp, #12] + rsb r3, r5, r8 + ldr r0, [sp, #12] + uxtb r3, r3 + str r3, [sp] + add r3, sp, #20 + bl LogAddr2PhyAddr + ldrb r3, [r4, #2230] @ zero_extendqisi2 + mov r7, r0 + ldr r0, [sp, #20] + cmp r0, r3 + mvncs r3, #0 + strcs r3, [r9, r6] + bcc .L351 +.L322: + add r5, r5, #1 +.L319: + cmp r5, r8 + bcc .L328 + b .L352 +.L351: + ldrb r3, [fp, #2240] @ zero_extendqisi2 + cmp r3, #0 + add r3, r4, r0, asl #4 + ldr r3, [r3, #2108] + moveq r7, #0 + cmp r3, #0 + beq .L324 + uxtb r0, r0 + bl FlashWaitCmdDone +.L324: + ldr r2, [sp, #20] + cmp r7, #0 + ldr r0, [sp, #12] + addne ip, r6, #36 + addne ip, r9, ip + mov r3, r2, asl #4 + add r2, r4, r2 + add r1, r4, r3 + add r3, r4, r3 + ldrb r6, [r2, #2232] @ zero_extendqisi2 + str r0, [r1, #2108] + mov r0, #0 + str r0, [r1, #2112] + ldr r0, [sp, #16] + strne ip, [r1, #2112] + strb r6, [r3, #2100] + str r0, [r1, #2104] + mov r0, r6 + bl NandcFlashCs + cmp r10, #1 + mov r0, r6 + bne .L326 + ldrb r3, [fp, #144] @ zero_extendqisi2 + cmp r3, #0 + beq .L326 + bl flash_enter_slc_mode + b .L327 +.L326: + bl flash_exit_slc_mode +.L327: + ldr r3, [sp, #20] + mov r0, r6 + ldr r1, [sp, #16] + add r5, r5, r7 + add r3, r4, r3, asl #2 + ldr r2, [r3, #1172] + adds r2, r2, #0 + movne r2, #1 + bl FlashWaitReadyEN + mov r0, r6 + mov r2, r7 + ldr r1, [sp, #16] + bl FlashEraseCmd + mov r0, r6 + bl NandcFlashDeCs + b .L322 +.L352: + ldr r6, .L354 + mov r5, #0 + ldr r7, .L354+4 +.L329: + ldrb r2, [r4, #2230] @ zero_extendqisi2 + ldr r3, .L354 + cmp r5, r2 + bcs .L353 + uxtb r0, r5 + bl FlashWaitCmdDone + cmp r10, #1 + bne .L330 + ldrb r3, [r6, #144] @ zero_extendqisi2 + cmp r3, #0 + beq .L330 + ldrb r0, [r7, r5, asl #4] @ zero_extendqisi2 + bl flash_exit_slc_mode +.L330: + add r5, r5, #1 + b .L329 +.L353: + ldr r2, [r3, #2244] + cmp r2, #0 + bne .L332 +.L334: + mov r0, #0 + b .L320 +.L332: + ldrb r3, [r3, #2068] @ zero_extendqisi2 + cmp r3, #69 + bne .L334 + mov r3, #0 + mov r2, #36 + mov r1, r3 +.L333: + cmp r3, r8 + beq .L334 + mul r0, r2, r3 + add r3, r3, #1 + str r1, [r9, r0] + b .L333 +.L320: + add sp, sp, #28 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L355: + .align 2 +.L354: + .word .LANCHOR0 + .word .LANCHOR0+2100 + .fnend + .size FlashEraseBlocks, .-FlashEraseBlocks + .align 2 .global FlashReadDpCmd .type FlashReadDpCmd, %function FlashReadDpCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r6, r1 - ldr r3, .L314 - mov r7, r0 - uxtb lr, r6 - mov ip, r6, lsr #8 - add r1, r3, r0, asl #3 - uxtb r9, r2 - ldrb r10, [r3, #52] @ zero_extendqisi2 - mov r8, r2, lsr #8 - ldrb r4, [r1, #16] @ zero_extendqisi2 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + mov r8, r0 + ldr r0, .L362 + mov r7, r1 + uxtb r10, r2 + mov r9, r2, lsr #8 + add r3, r0, r8, asl #3 mov r5, r2, lsr #16 - ldr fp, [r1, #12] - ldrb r1, [r3, #60] @ zero_extendqisi2 - mov r4, r4, asl #8 - ldrb r3, [r3, #53] @ zero_extendqisi2 + ldrb r1, [r0, #64] @ zero_extendqisi2 + uxtb lr, r7 + ldr r4, [r3, #12] + mov ip, r7, lsr #8 + ldrb r3, [r3, #16] @ zero_extendqisi2 cmp r1, #1 - add r4, fp, r4 - mov r1, r6, lsr #16 - str r10, [r4, #2056] - bne .L310 - mov r10, #0 - str r10, [r4, #2052] - str r10, [r4, #2052] + ldr r2, [r0, #44] + mov r1, r7, lsr #16 + mov r3, r3, asl #8 + ldrb r2, [r2, #7] @ zero_extendqisi2 + bne .L357 + cmp r2, #1 + addeq r2, r4, r3 + add r4, r4, r3 + moveq r6, #38 + streq r6, [r2, #2056] + mov r6, #0 + ldrb r3, [r0, #57] @ zero_extendqisi2 + ldrb r2, [r0, #56] @ zero_extendqisi2 + mov r0, r8 + str r2, [r4, #2056] + str r6, [r4, #2052] + str r6, [r4, #2052] str lr, [r4, #2052] str ip, [r4, #2052] str r1, [r4, #2052] str r3, [r4, #2056] bl NandcWaitFlashReady - str r10, [r4, #2056] - str r10, [r4, #2052] - str r10, [r4, #2052] - b .L313 -.L310: - str lr, [r4, #2052] - str ip, [r4, #2052] - str r1, [r4, #2052] - str r3, [r4, #2056] -.L313: - str r9, [r4, #2052] + str r6, [r4, #2056] mov r3, #48 - str r8, [r4, #2052] - mov r0, r7 + str r6, [r4, #2052] + str r6, [r4, #2052] + str r10, [r4, #2052] + str r9, [r4, #2052] str r5, [r4, #2052] - mov r1, r6 str r3, [r4, #2056] - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + b .L359 +.L357: + cmp r2, #1 + addeq r2, r4, r3 + add r3, r4, r3 + moveq r6, #38 + streq r6, [r2, #2056] + ldrb r2, [r0, #56] @ zero_extendqisi2 + str r2, [r3, #2056] + ldrb r2, [r0, #57] @ zero_extendqisi2 + str lr, [r3, #2052] + str ip, [r3, #2052] + str r1, [r3, #2052] + str r2, [r3, #2056] + mov r2, #48 + str r10, [r3, #2052] + str r9, [r3, #2052] + str r5, [r3, #2052] + str r2, [r3, #2056] +.L359: + mov r0, r8 + mov r1, r7 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} b FlashSetRandomizer -.L315: +.L363: .align 2 -.L314: +.L362: .word .LANCHOR0 .fnend .size FlashReadDpCmd, .-FlashReadDpCmd @@ -1889,39 +2096,39 @@ ftl_flash_de_init: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r4, .L327 + ldr r4, .L375 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldr r0, [r4, #2240] + ldr r0, [r4, #2248] cmp r0, #0 - beq .L317 + beq .L365 mov r0, #0 bl flash_enter_slc_mode - b .L318 -.L317: + b .L366 +.L365: bl flash_exit_slc_mode -.L318: - ldrb r3, [r4, #2244] @ zero_extendqisi2 - ldr r5, .L327 +.L366: + ldrb r3, [r4, #2252] @ zero_extendqisi2 + ldr r5, .L375 cmp r3, #0 - beq .L319 - ldrb r3, [r5, #2228] @ zero_extendqisi2 + beq .L367 + ldrb r3, [r5, #2229] @ zero_extendqisi2 tst r3, #1 - beq .L319 + beq .L367 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode mov r3, #0 - strb r3, [r5, #2244] -.L319: + strb r3, [r5, #2252] +.L367: ldr r3, [r4, #12] mov r0, #0 str r0, [r3, #336] ldmfd sp!, {r3, r4, r5, pc} -.L328: +.L376: .align 2 -.L327: +.L375: .word .LANCHOR0 .fnend .size ftl_flash_de_init, .-ftl_flash_de_init @@ -1933,14 +2140,14 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L330 + ldr r3, .L378 add r0, r3, r0, asl #3 ldr r3, [r0, #12] str r1, [r3, #336] bx lr -.L331: +.L379: .align 2 -.L330: +.L378: .word .LANCHOR0 .fnend .size NandcRandmzSel, .-NandcRandmzSel @@ -1957,35 +2164,35 @@ NandcTimeCfg: mov r4, r0 mov r0, #0 bl rknand_get_clk_rate - ldr r1, .L343 + ldr r1, .L391 bl __aeabi_idiv - ldr r3, .L343+4 - ldr r3, [r3, #76] + ldr r3, .L391+4 + ldr r3, [r3, #80] cmp r0, #250 movwgt r2, #8354 - bgt .L341 + bgt .L389 cmp r0, #220 - bgt .L342 + bgt .L390 cmp r0, #185 movwgt r2, #4226 - bgt .L341 + bgt .L389 cmp r0, #160 movwgt r2, #4194 - bgt .L341 + bgt .L389 cmp r4, #35 movwls r2, #4193 - bls .L341 + bls .L389 cmp r4, #99 movwls r2, #4225 - bls .L341 -.L342: + bls .L389 +.L390: movw r2, #8322 -.L341: +.L389: str r2, [r3, #4] ldmfd sp!, {r4, pc} -.L344: +.L392: .align 2 -.L343: +.L391: .word 1000000 .word .LANCHOR0 .fnend @@ -2002,21 +2209,21 @@ FlashTimingCfg: sub r3, r3, #33 bic r3, r3, #32 cmp r3, #1 - bls .L346 + bls .L394 movw r3, #8322 cmp r0, r3 - bne .L347 -.L346: - ldr r3, .L348 - ldr r3, [r3, #76] + bne .L395 +.L394: + ldr r3, .L396 + ldr r3, [r3, #80] str r0, [r3, #4] -.L347: - ldr r3, .L348+4 +.L395: + ldr r3, .L396+4 ldrb r0, [r3, #493] @ zero_extendqisi2 b NandcTimeCfg -.L349: +.L397: .align 2 -.L348: +.L396: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2031,7 +2238,7 @@ NandcInit: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r1, #0 - ldr r3, .L353 + ldr r3, .L401 mov r2, #1 mov r5, #0 str r1, [r3, #16] @@ -2044,7 +2251,7 @@ NandcInit: mov r2, #3 str r0, [r3, #28] str r0, [r3, #36] - str r0, [r3, #76] + str r0, [r3, #80] str r2, [r3, #40] ldr r2, [r0] and r2, r2, #253952 @@ -2052,37 +2259,37 @@ NandcInit: bfi r2, r1, #13, #1 ldr r1, [r0, #352] orr r2, r2, #256 - str ip, [r3, #2248] + str ip, [r3, #2256] movw ip, #2049 ubfx r1, r1, #16, #4 - str r1, [r3, #2252] + str r1, [r3, #2260] ldr r1, [r0, #352] cmp r1, ip - str r1, [r3, #2256] + str r1, [r3, #2264] moveq r3, #8 - streq r3, [r4, #2252] + streq r3, [r4, #2260] str r2, [r0] mov r0, #40 - ldr r3, [r4, #76] + ldr r3, [r4, #80] str r5, [r3, #336] bl NandcTimeCfg - ldr r3, [r4, #76] + ldr r3, [r4, #80] movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L353+4 + ldr r2, .L401+4 str r2, [r3, #304] bl ftl_malloc - str r5, [r4, #2288] str r5, [r4, #2296] - str r0, [r4, #2260] - str r0, [r4, #2264] - add r0, r0, #32768 + str r5, [r4, #2304] str r0, [r4, #2268] + str r0, [r4, #2272] + add r0, r0, #32768 + str r0, [r4, #2276] ldmfd sp!, {r3, r4, r5, pc} -.L354: +.L402: .align 2 -.L353: +.L401: .word .LANCHOR0 .word 1579009 .fnend @@ -2094,28 +2301,28 @@ NandcGetTimeCfg: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L357 + ldr ip, .L405 str lr, [sp, #-4]! .save {lr} - ldr lr, [ip, #76] + ldr lr, [ip, #80] ldr lr, [lr, #4] str lr, [r0] - ldr r0, [ip, #76] + ldr r0, [ip, #80] ldr r0, [r0] str r0, [r1] - ldr r1, [ip, #76] + ldr r1, [ip, #80] ldr r1, [r1, #304] str r1, [r2] - ldr r1, [ip, #76] + ldr r1, [ip, #80] ldr r2, [r1, #308] ldr r1, [r1, #344] uxtb r2, r2 orr r2, r2, r1, asl #16 str r2, [r3] ldr pc, [sp], #4 -.L358: +.L406: .align 2 -.L357: +.L405: .word .LANCHOR0 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -2127,35 +2334,35 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L367 + ldr r3, .L415 mov r1, #1 - ldr r2, [r3, #76] - str r0, [r3, #2300] + ldr r2, [r3, #80] + str r0, [r3, #2308] mov r3, #0 str r1, [r2, #8] mov r1, #16 cmp r0, r1 bfi r3, r1, #8, #8 bfc r3, #18, #1 - bne .L360 -.L363: + bne .L408 +.L411: bfc r3, #4, #1 - b .L361 -.L360: + b .L409 +.L408: cmp r0, #24 orreq r3, r3, #16 - beq .L361 + beq .L409 cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - beq .L363 -.L361: + beq .L411 +.L409: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L368: +.L416: .align 2 -.L367: +.L415: .word .LANCHOR0 .fnend .size NandcBchSel, .-NandcBchSel @@ -2167,12 +2374,12 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L370 - strb r0, [r3, #2304] + ldr r3, .L418 + strb r0, [r3, #2312] b NandcBchSel -.L371: +.L419: .align 2 -.L370: +.L418: .word .LANCHOR0 .fnend .size FlashBchSel, .-FlashBchSel @@ -2183,62 +2390,62 @@ ftl_flash_resume: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L381 + ldr r3, .L429 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 - ldr r2, [r3, #76] + ldr r2, [r3, #80] mov r4, r3 - ldr r1, [r3, #80] - ldr r6, .L381+4 - str r1, [r2] ldr r1, [r3, #84] - ldr r2, [r3, #76] - str r1, [r2, #4] + ldr r6, .L429+4 + str r1, [r2] ldr r1, [r3, #88] - str r1, [r2, #8] + ldr r2, [r3, #80] + str r1, [r2, #4] ldr r1, [r3, #92] - str r1, [r2, #12] + str r1, [r2, #8] ldr r1, [r3, #96] - str r1, [r2, #304] + str r1, [r2, #12] ldr r1, [r3, #100] - str r1, [r2, #308] + str r1, [r2, #304] ldr r1, [r3, #104] - str r1, [r2, #336] + str r1, [r2, #308] ldr r1, [r3, #108] + str r1, [r2, #336] + ldr r1, [r3, #112] str r1, [r2, #344] -.L374: +.L422: ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L373 + bhi .L421 uxtb r0, r5 bl FlashReset -.L373: +.L421: add r5, r5, #1 cmp r5, #4 - bne .L374 - ldrb r3, [r4, #2244] @ zero_extendqisi2 - ldr r5, .L381 + bne .L422 + ldrb r3, [r4, #2252] @ zero_extendqisi2 + ldr r5, .L429 cmp r3, #0 - beq .L375 + beq .L423 mov r0, #1 bl NandcSetMode - ldrb r0, [r5, #2228] @ zero_extendqisi2 + ldrb r0, [r5, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #2228] @ zero_extendqisi2 + ldrb r0, [r5, #2229] @ zero_extendqisi2 bl NandcSetMode - ldrb r0, [r5, #97] @ zero_extendqisi2 + ldrb r0, [r5, #101] @ zero_extendqisi2 bl NandcSetDdrPara -.L375: - ldr r3, [r4, #1204] +.L423: + ldr r3, [r4, #44] ldmfd sp!, {r4, r5, r6, lr} ldrb r0, [r3, #20] @ zero_extendqisi2 b FlashBchSel -.L382: +.L430: .align 2 -.L381: +.L429: .word .LANCHOR0 .word .LANCHOR0+2068 .fnend @@ -2279,193 +2486,11 @@ NandcIqrWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, lr} - .save {r4, lr} - mov r4, r0 - bl rk_nandc_rb_irq_flag_init - 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] - tst r3, #512 - bne .L386 - mov r0, r4 - ldmfd sp!, {r4, lr} - b wait_for_nand_flash_ready -.L386: - ldr r3, [r4, #368] - orr r3, r3, #2 - str r3, [r4, #368] - ldr r3, [r4, #364] - bic r3, r3, #2 - str r3, [r4, #364] - ldmfd sp!, {r4, pc} + @ link register save eliminated. + bx lr .fnend .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady .align 2 - .global FlashEraseBlocks - .type FlashEraseBlocks, %function -FlashEraseBlocks: - .fnstart - @ args = 0, pretend = 0, frame = 16 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r8, r2 - ldr r4, .L424 - .pad #28 - sub sp, sp, #28 - ldrb r5, [r4] @ zero_extendqisi2 - cmp r5, #0 - moveq r9, r0 - moveq r10, r1 - moveq fp, r4 - beq .L389 - mov r1, r2 - bl FlashEraseSLc2KBlocks - b .L390 -.L398: - mov r3, #36 - mov r1, #0 - mul r6, r3, r5 - add r2, sp, #16 - add r3, r9, r6 - str r3, [sp, #12] - rsb r3, r5, r8 - ldr r0, [sp, #12] - uxtb r3, r3 - str r3, [sp] - add r3, sp, #20 - bl LogAddr2PhyAddr - ldrb r3, [r4, #2229] @ zero_extendqisi2 - mov r7, r0 - ldr r0, [sp, #20] - cmp r0, r3 - mvncs r3, #0 - strcs r3, [r9, r6] - bcc .L421 -.L392: - add r5, r5, #1 -.L389: - cmp r5, r8 - bcc .L398 - b .L422 -.L421: - ldrb r3, [fp, #2305] @ zero_extendqisi2 - cmp r3, #0 - add r3, r4, r0, asl #4 - ldr r3, [r3, #2108] - moveq r7, #0 - cmp r3, #0 - beq .L394 - uxtb r0, r0 - bl FlashWaitCmdDone -.L394: - ldr r2, [sp, #20] - cmp r7, #0 - ldr r0, [sp, #12] - addne ip, r6, #36 - addne ip, r9, ip - mov r3, r2, asl #4 - add r2, r4, r2 - add r1, r4, r3 - add r3, r4, r3 - ldrb r6, [r2, #2232] @ zero_extendqisi2 - str r0, [r1, #2108] - mov r0, #0 - str r0, [r1, #2112] - ldr r0, [sp, #16] - strne ip, [r1, #2112] - strb r6, [r3, #2100] - str r0, [r1, #2104] - mov r0, r6 - bl NandcFlashCs - cmp r10, #1 - mov r0, r6 - bne .L396 - ldrb r3, [fp, #140] @ zero_extendqisi2 - cmp r3, #0 - beq .L396 - bl flash_enter_slc_mode - b .L397 -.L396: - bl flash_exit_slc_mode -.L397: - ldr r3, [sp, #20] - mov r0, r6 - ldr r1, [sp, #16] - add r5, r5, r7 - add r3, r4, r3, asl #2 - ldr r2, [r3, #1168] - adds r2, r2, #0 - movne r2, #1 - bl FlashWaitReadyEN - mov r0, r6 - mov r2, r7 - ldr r1, [sp, #16] - bl FlashEraseCmd - mov r0, r6 - bl NandcFlashDeCs - b .L392 -.L422: - ldr r0, [r4, #76] - mov r5, #0 - bl NandcIqrWaitFlashReady - ldr r6, .L424 - ldr r7, .L424+4 -.L399: - ldrb r2, [r4, #2229] @ zero_extendqisi2 - ldr r3, .L424 - cmp r5, r2 - bcs .L423 - uxtb r0, r5 - bl FlashWaitCmdDone - cmp r10, #1 - bne .L400 - ldrb r3, [r6, #140] @ zero_extendqisi2 - cmp r3, #0 - beq .L400 - ldrb r0, [r7, r5, asl #4] @ zero_extendqisi2 - bl flash_exit_slc_mode -.L400: - add r5, r5, #1 - b .L399 -.L423: - ldr r2, [r3, #2308] - cmp r2, #0 - bne .L402 -.L404: - mov r0, #0 - b .L390 -.L402: - ldrb r3, [r3, #2068] @ zero_extendqisi2 - cmp r3, #69 - bne .L404 - mov r3, #0 - mov r2, #36 - mov r1, r3 -.L403: - cmp r3, r8 - beq .L404 - mul r0, r2, r3 - add r3, r3, #1 - str r1, [r9, r0] - b .L403 -.L390: - add sp, sp, #28 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L425: - .align 2 -.L424: - .word .LANCHOR0 - .word .LANCHOR0+2100 - .fnend - .size FlashEraseBlocks, .-FlashEraseBlocks - .align 2 .global rk_nandc_flash_xfer_completed .type rk_nandc_flash_xfer_completed, %function rk_nandc_flash_xfer_completed: @@ -2493,7 +2518,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L429 + ldr r3, .L437 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -2506,9 +2531,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L430: +.L438: .align 2 -.L429: +.L437: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -2522,12 +2547,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L432: +.L440: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #1048576 - beq .L432 + beq .L440 add sp, sp, #8 @ sp needed bx lr @@ -2543,7 +2568,7 @@ NandcXferStart: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov lr, #16 - ldr r5, .L454 + ldr r5, .L462 mov r4, #0 .pad #28 sub sp, sp, #28 @@ -2564,9 +2589,9 @@ NandcXferStart: mov r3, r3, lsr r0 orr r4, r4, #1024 bfi r4, r3, #4, #1 - ldr r3, [r5, #2252] + ldr r3, [r5, #2260] cmp r3, #3 - bls .L437 + bls .L445 ldr r3, [r6, #16] str r3, [sp, #20] ldr r3, [sp, #20] @@ -2577,19 +2602,19 @@ NandcXferStart: cmp ip, #0 cmpeq r8, #0 str r3, [sp, #8] - beq .L438 + beq .L446 cmp r1, #0 - bne .L439 -.L447: + bne .L447 +.L455: add r2, r2, #1 cmp r8, #0 mov r2, r2, asr #1 movne r0, r8 bfi r4, r2, #22, #6 - ldreq r0, [r5, #2264] - b .L441 -.L439: - ldr r3, [r5, #2300] + ldreq r0, [r5, #2272] + b .L449 +.L447: + ldr r3, [r5, #2308] mov r9, r5 cmp r3, #25 movcc r3, #64 @@ -2599,10 +2624,10 @@ NandcXferStart: str r3, [sp, #12] mov r3, #0 mov r0, r3 -.L443: +.L451: ldr lr, [sp, #12] cmp r0, lr - bcs .L447 + bcs .L455 ldr lr, [sp, #8] mov r10, r3, lsr #2 add r0, r0, #1 @@ -2610,37 +2635,37 @@ NandcXferStart: ldrneh fp, [ip, #2] mvneq fp, #0 ldrneh lr, [ip], #4 - ldreq lr, [r9, #2268] + ldreq lr, [r9, #2276] orrne lr, lr, fp, asl #16 - ldrne fp, [r9, #2268] + ldrne fp, [r9, #2276] streq fp, [lr, r10, asl #2] strne lr, [fp, r10, asl #2] ldr lr, [sp, #4] add r3, r3, lr - b .L443 -.L441: - ldr r3, [r5, #2268] + b .L451 +.L449: + ldr r3, [r5, #2276] ubfx r10, r4, #22, #5 mov r9, r1 - str r0, [r5, #2272] + str r0, [r5, #2280] mov r2, r9 mov r1, r10, asl #10 - str r3, [r5, #2276] + str r3, [r5, #2284] bl rknand_dma_map_single mov r2, r9 mov r1, r10, asl #7 clz r9, r9 mov r9, r9, lsr #5 - str r0, [r5, #2280] - ldr r0, [r5, #2276] + str r0, [r5, #2288] + ldr r0, [r5, #2284] bl rknand_dma_map_single mov r3, #1 - str r3, [r5, #2288] + str r3, [r5, #2296] tst r8, #3 - ldr r3, [r5, #2280] - str r0, [r5, #2284] + ldr r3, [r5, #2288] + str r0, [r5, #2292] str r3, [r6, #20] - ldr r3, [r5, #2284] + ldr r3, [r5, #2292] str r3, [r6, #24] mov r3, #0 str r3, [sp, #20] @@ -2665,10 +2690,10 @@ NandcXferStart: ldr r3, [sp, #20] orr r3, r3, #1 str r3, [sp, #20] -.L438: +.L446: ldr r3, [sp, #20] str r3, [r6, #16] -.L437: +.L445: str r7, [r6, #12] str r4, [r6, #8] orr r4, r4, #4 @@ -2676,9 +2701,9 @@ NandcXferStart: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L455: +.L463: .align 2 -.L454: +.L462: .word .LANCHOR0 .fnend .size NandcXferStart, .-NandcXferStart @@ -2692,13 +2717,13 @@ Ftl_log2: @ link register save eliminated. mov r1, #0 mov r2, #1 -.L457: +.L465: cmp r2, r0 uxth r3, r1 add r1, r1, #1 movls r2, r2, asl #1 - bls .L457 -.L459: + bls .L465 +.L467: sub r0, r3, #1 uxth r0, r0 bx lr @@ -2723,27 +2748,27 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L463 - movw r2, #2316 + ldr r3, .L471 cmp r0, #23 - movw r1, #2326 - ldrh r2, [r3, r2] + movw r1, #2330 + add r2, r3, #2320 movls r0, #24 ldrh r1, [r3, r1] - str r0, [r3, #2312] + ldrh r2, [r2] + str r0, [r3, #2316] mul r2, r2, r0 rsb r0, r0, r1 - movw r1, #2324 + movw r1, #2328 strh r0, [r3, r1] @ movhi mov r0, #0 - ldr r1, [r3, #2332] - str r2, [r3, #2320] + ldr r1, [r3, #2336] + str r2, [r3, #2324] rsb r2, r2, r1 - str r2, [r3, #2328] + str r2, [r3, #2332] bx lr -.L464: +.L472: .align 2 -.L463: +.L471: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -2756,35 +2781,35 @@ FtlConstantsInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r1, #2340 - ldr r4, .L493 - mov r5, r0 + movw r3, #2340 + ldr r4, .L502 + movw r1, #2344 ldrh r6, [r0, #8] + mov r5, r0 + ldrh r2, [r0, #10] .pad #20 sub sp, sp, #20 - add r3, r4, #2336 - ldrh r2, [r0, #10] ldrh lr, [r0, #14] - strh r6, [r3] @ movhi - movw r3, #2338 + strh r6, [r4, r3] @ movhi + movw r3, #2342 strh r2, [r4, r3] @ movhi ldrh r3, [r0, #12] - ldr r0, .L493+4 + ldr r0, .L502+4 strh r3, [r4, r1] @ movhi - movw r1, #2326 + movw r1, #2330 strh lr, [r4, r1] @ movhi mov r1, #0 -.L466: +.L474: strb r1, [r1, r0] add r1, r1, #1 cmp r1, #32 - bne .L466 + bne .L474 ldrh r0, [r5, #14] ldrh r1, [r5, #20] cmp r1, r0, lsr #8 - bcs .L467 + bcs .L475 uxtb r10, r3 - ldr r9, .L493+4 + ldr r9, .L502+4 mov r1, r10, asl #1 uxtb r1, r1 str r1, [sp, #4] @@ -2792,9 +2817,9 @@ FtlConstantsInit: mul r1, r3, r1 str r1, [sp] mov r1, #0 -.L468: +.L476: cmp r1, r3 - bcs .L470 + bcs .L478 ldr ip, [sp] uxtb r0, r1 rsb r7, r3, r1 @@ -2805,10 +2830,10 @@ FtlConstantsInit: mov ip, #0 str r7, [sp, #12] mov r8, ip -.L471: +.L479: cmp r8, r2 add ip, ip, r3 - bcs .L492 + bcs .L501 ldr r7, [sp, #12] add fp, r0, r10 add r8, r8, #1 @@ -2818,202 +2843,200 @@ FtlConstantsInit: ldr r7, [sp, #4] add r0, r0, r7 uxtb r0, r0 - b .L471 -.L492: + b .L479 +.L501: add r1, r1, #1 - b .L468 -.L470: - movw r1, #2338 + b .L476 +.L478: + movw r1, #2342 mov r2, r2, asl #1 strh r2, [r4, r1] @ movhi - movw r2, #2326 + movw r2, #2330 mov lr, lr, lsr #1 strh lr, [r4, r2] @ movhi -.L467: +.L475: cmp r6, #1 - movw r2, #2376 + movw r2, #2380 mov r1, #5 strh r1, [r4, r2] @ movhi - movw r1, #2378 + movw r1, #2382 mov r0, #0 strh r0, [r4, r1] @ movhi - ldreq r1, .L493 + ldreq r1, .L502 ldrb r9, [r4] @ zero_extendqisi2 - ldrh r10, [r5, #16] + ldr r8, .L502+8 streqh r6, [r1, r2] @ movhi + movw r1, #2342 + ldrh r7, [r4, r1] cmp r9, #0 - movw r2, #2380 - mov r1, #4352 - strh r1, [r4, r2] @ movhi - movne r0, #384 - ldrne r1, .L493 - strneh r0, [r1, r2] @ movhi - movw r1, #2338 - ldrh r8, [r4, r1] - movw r1, #2316 - ldr r2, .L493 - smulbb r8, r8, r3 - add r7, r2, #2384 + mov r2, #4352 + strh r2, [r8] @ movhi + movne r2, #384 + strneh r2, [r8] @ movhi + smulbb r7, r7, r3 + ldr r2, .L502 + ldrh r10, [r5, #16] + add r1, r2, #2320 str r2, [sp, #8] - strh r10, [r7] @ movhi - uxth r8, r8 - strh r8, [r4, r1] @ movhi - movw r1, #2326 + uxth r7, r7 + strh r7, [r1] @ movhi + movw r1, #2330 ldrh r6, [r4, r1] - movw r1, #2382 - smulbb r0, r8, r10 + movw r1, #2386 + smulbb r0, r7, r10 smulbb r3, r6, r3 strh r3, [r4, r1] @ movhi - movw r3, #2386 - ldrh r1, [r5, #18] - strh r1, [r4, r3] @ movhi movw r3, #2388 + ldrh r1, [r5, #18] + strh r10, [r4, r3] @ movhi + movw r3, #2390 + strh r1, [r4, r3] @ movhi + movw r3, #2392 strh r0, [r4, r3] @ movhi - movw r0, #2390 + movw r0, #2394 ldrh r3, [r5, #20] str r1, [sp, #4] strh r3, [r4, r0] @ movhi mov r0, r3 str r3, [sp] bl Ftl_log2 - movw ip, #2394 + movw ip, #2398 cmp r6, #1024 ldr r3, [sp] mov fp, r0 - movw r0, #2392 - ldmib sp, {r1, r2} + movw r0, #2396 + ldr r2, [sp, #8] strh fp, [r4, r0] @ movhi mov r0, r3, asl #9 - mul r1, r1, r3 + ldr r1, [sp, #4] uxth r0, r0 strh r0, [r4, ip] @ movhi - movw ip, #2396 + add ip, r2, #2400 mov r0, r0, lsr #8 - strh r0, [r4, ip] @ movhi + strh r0, [ip] @ movhi + movw r0, #2402 ldrh ip, [r5, #26] - movw r0, #2398 - ldr r5, .L493 + mul r1, r1, r3 + ldr r5, .L502 strh ip, [r4, r0] @ movhi - movwhi ip, #2378 - mul r0, r6, r8 - str r0, [r4, #2332] + movwhi ip, #2382 + mul r0, r6, r7 + str r0, [r4, #2336] uxtbhi r0, r6 strhih r0, [r2, ip] @ movhi - movw r2, #2378 + movw r2, #2382 ldrh r2, [r4, r2] + ldrh r0, [r8] rsb r2, r2, r6 mov r6, r6, asl #6 - mul r2, r2, r8 + mul r2, r2, r7 + mov r0, r0, asl #3 mul r2, r3, r2 mul r10, r10, r2 - movw r2, #2380 - ldrh r0, [r4, r2] - mov r0, r0, asl #3 mov r10, r10, asr #11 - str r10, [r4, #2400] + str r10, [r4, #2404] bl __aeabi_idiv - movw r3, #2404 - mov r1, r8 - ldr r10, .L493 + movw r3, #2408 + mov r1, r7 + ldr r10, .L502 uxth r0, r0 cmp r0, #4 strhih r0, [r5, r3] @ movhi movls r2, #4 strlsh r2, [r5, r3] @ movhi cmp r9, #0 - movwne r3, #2380 - movne r2, #640 - strneh r2, [r4, r3] @ movhi - movw r3, #2380 - ldrh r3, [r4, r3] - movw r2, #2406 + movw r2, #2410 + movne r3, #640 + strneh r3, [r8] @ movhi + ldrh r3, [r8] mov r3, r3, asr fp add fp, fp, #9 - mov r5, r6, asr fp + mov r0, r6, asr fp add r3, r3, #2 strh r3, [r4, r2] @ movhi + movw r3, #2412 + strh r0, [r4, r3] @ movhi + uxth r0, r0 + add r6, r0, #8 + mul r3, r7, r0 + str r3, [r4, #2416] movw r3, #2408 - strh r5, [r4, r3] @ movhi - uxth r5, r5 - ldr r6, .L493 - mul r3, r8, r5 - add r5, r5, #8 - str r3, [r4, #2412] - movw r3, #2404 ldrh r0, [r4, r3] bl __aeabi_uidiv - cmp r8, #1 - uxtah r0, r5, r0 - strne r0, [r10, #2312] - addeq r5, r0, #4 - streq r5, [r10, #2312] - ldr r3, [r4, #2312] + cmp r7, #1 + uxtah r0, r6, r0 + ldr r6, .L502 + addeq r0, r0, #4 + str r0, [r10, #2316] + ldr r3, [r4, #2316] uxth r0, r3 bl FtlSysBlkNumInit - ldr r3, [r4, #2312] - ldr r2, [r4, #2328] + ldr r3, [r4, #2316] + ldr r2, [r4, #2332] mov r0, #2048 - str r3, [r4, #2416] - ldrh r3, [r7] + str r3, [r4, #2420] + movw r3, #2388 + ldrh r3, [r4, r3] mov r2, r2, asl #2 mul r3, r3, r2 - movw r2, #2392 + movw r2, #2396 ldrh r5, [r4, r2] add r5, r5, #9 mov r5, r3, lsr r5 - movw r3, #2420 + movw r3, #2424 add r5, r5, #2 uxth r5, r5 strh r5, [r4, r3] @ movhi - movw r3, #2390 + movw r3, #2394 ldrh r7, [r4, r3] mov r1, r7 bl __aeabi_idiv - movw r1, #2404 + movw r1, #2408 ldrh r2, [r4, r1] - movw r3, #2422 - ldrb ip, [r4, #140] @ zero_extendqisi2 + movw r3, #2426 + ldrb ip, [r4, #144] @ zero_extendqisi2 cmp ip, #0 strh r0, [r4, r3] @ movhi mov r3, #0 - str r3, [r4, #2424] + str r3, [r4, #2428] add r3, r2, #3 strh r3, [r4, r1] @ movhi addne r2, r2, #4 - ldr r3, [r4, #2412] + ldr r3, [r4, #2416] strneh r2, [r6, r1] @ movhi add r0, r3, #3 addne r3, r3, #5 - str r0, [r4, #2412] - bne .L491 + str r0, [r4, #2416] + bne .L500 cmp r0, #7 - bhi .L481 + bhi .L489 mov r3, #8 -.L491: - str r3, [r6, #2412] -.L481: - movw r2, #2428 +.L500: + str r3, [r6, #2416] +.L489: + ldr r2, .L502+12 mov r3, #0 - strh r3, [r4, r2] @ movhi - movw r3, #2324 - ldrh r1, [r4, r3] mov r0, #0 + strh r3, [r2] @ movhi + movw r3, #2328 + ldrh r1, [r4, r3] mov r3, r1, lsr #3 add r3, r3, r1, asl #1 add r3, r3, #52 add r5, r3, r5, asl #2 cmp r5, r7, asl #9 - ldrcc r3, .L493 - movcc r1, #1 - strcch r1, [r3, r2] @ movhi + movcc r3, #1 + strcch r3, [r2] @ movhi add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L494: +.L503: .align 2 -.L493: +.L502: .word .LANCHOR0 - .word .LANCHOR0+2344 + .word .LANCHOR0+2348 + .word .LANCHOR0+2384 + .word .LANCHOR0+2432 .fnend .size FtlConstantsInit, .-FtlConstantsInit .align 2 @@ -3024,29 +3047,29 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L502 - movw r3, #2430 + ldr r2, .L511 + movw r3, #2434 ldrh r3, [r2, r3] cmp r3, #0 - beq .L501 - movw r1, #2404 - ldr r3, [r2, #2432] + beq .L510 + movw r1, #2408 + ldr r3, [r2, #2436] ldrh r2, [r2, r1] add r2, r3, r2, asl #1 -.L497: +.L506: cmp r3, r2 - beq .L501 + beq .L510 ldrh r1, [r3], #2 cmp r1, r0 - bne .L497 + bne .L506 mov r0, #1 bx lr -.L501: +.L510: mov r0, #0 bx lr -.L503: +.L512: .align 2 -.L502: +.L511: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -3057,16 +3080,16 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L511 - ldr r3, [r2, #2436] + ldr r2, .L520 + ldr r3, [r2, #2440] cmp r3, #0 - beq .L507 + beq .L516 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov r5, #36 - ldr r4, [r2, #2440] + ldr r4, [r2, #2444] mov r2, #0 -.L506: +.L515: mla ip, r5, r2, r4 ldr lr, [ip, #16] cmp lr, r0 @@ -3075,21 +3098,21 @@ FtlCacheMetchLpa: cmp lr, r1 movhi ip, #0 cmp ip, #0 - bne .L508 + bne .L517 add r2, r2, #1 cmp r2, r3 - bne .L506 + bne .L515 mov r0, ip ldmfd sp!, {r4, r5, pc} -.L507: +.L516: mov r0, r3 bx lr -.L508: +.L517: mov r0, #1 ldmfd sp!, {r4, r5, pc} -.L512: +.L521: .align 2 -.L511: +.L520: .word .LANCHOR0 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -3101,16 +3124,33 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L514 - ldr r0, [r3, #2424] + ldr r3, .L523 + ldr r0, [r3, #2428] bx lr -.L515: +.L524: .align 2 -.L514: +.L523: .word .LANCHOR0 .fnend .size FtlGetCap, .-FtlGetCap .align 2 + .global FtlGetCapacity + .type FtlGetCapacity, %function +FtlGetCapacity: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L526 + ldr r0, [r3, #2428] + bx lr +.L527: + .align 2 +.L526: + .word .LANCHOR0 + .fnend + .size FtlGetCapacity, .-FtlGetCapacity + .align 2 .global ftl_get_density .type ftl_get_density, %function ftl_get_density: @@ -3118,12 +3158,12 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L517 - ldr r0, [r3, #2424] + ldr r3, .L529 + ldr r0, [r3, #2428] bx lr -.L518: +.L530: .align 2 -.L517: +.L529: .word .LANCHOR0 .fnend .size ftl_get_density, .-ftl_get_density @@ -3135,12 +3175,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L520 - ldr r0, [r3, #2444] + ldr r3, .L532 + ldr r0, [r3, #2448] bx lr -.L521: +.L533: .align 2 -.L520: +.L532: .word .LANCHOR0 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -3154,8 +3194,8 @@ FtlBbmMapBadBlock: stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - movw r3, #2382 - ldr r5, .L524 + movw r3, #2386 + ldr r5, .L536 mov r6, r0 ldrh r4, [r5, r3] mov r1, r4 @@ -3164,29 +3204,29 @@ FtlBbmMapBadBlock: smulbb r3, r2, r4 add r1, r5, r2, asl #2 mov r4, #1 - add r5, r5, #2448 - ldr ip, [r1, #2476] + ldr ip, [r1, #2480] rsb r3, r3, r6 uxth r3, r3 and r1, r3, #31 mov lr, r3, lsr #5 ldr r0, [ip, lr, asl #2] orr r1, r0, r4, asl r1 - ldr r0, .L524+4 + ldr r0, .L536+4 str r1, [ip, lr, asl #2] str r1, [sp] mov r1, r6 bl printk - ldrh r3, [r5, #6] + add r2, r5, #2448 mov r0, #0 + ldrh r3, [r2, #10] add r3, r3, r4 - strh r3, [r5, #6] @ movhi + strh r3, [r2, #10] @ movhi add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L525: +.L537: .align 2 -.L524: +.L536: .word .LANCHOR0 .word .LC2 .fnend @@ -3201,8 +3241,8 @@ FtlBbmIsBadBlock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - movw r3, #2382 - ldr r5, .L528 + movw r3, #2386 + ldr r5, .L540 mov r7, r0 ldrh r6, [r5, r3] mov r1, r6 @@ -3215,14 +3255,14 @@ FtlBbmIsBadBlock: and r4, r4, #31 uxth r0, r0 add r5, r5, r0, asl #2 - ldr r3, [r5, #2476] + ldr r3, [r5, #2480] ldr r0, [r3, r2, asl #2] mov r0, r0, lsr r4 and r0, r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L529: +.L541: .align 2 -.L528: +.L540: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -3246,30 +3286,30 @@ FtlBbtCalcTotleCnt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - movw r3, #2382 - ldr r4, .L540 + movw r3, #2386 + ldr r4, .L552 mov r5, #0 ldrh r6, [r4, r3] - movw r3, #2338 + movw r3, #2342 ldrh r3, [r4, r3] mov r4, r5 mul r6, r3, r6 -.L532: +.L544: uxth r0, r5 cmp r0, r6 - bge .L539 + bge .L551 bl FtlBbmIsBadBlock add r5, r5, #1 cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - b .L532 -.L539: + b .L544 +.L551: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L541: +.L553: .align 2 -.L540: +.L552: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -3282,8 +3322,8 @@ V2P_block: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - movw r3, #2340 - ldr r6, .L544 + movw r3, #2344 + ldr r6, .L556 mov r4, r1 mov r7, r0 ldrh r5, [r6, r3] @@ -3293,14 +3333,14 @@ V2P_block: smlabb r4, r4, r5, r1 mov r1, r5 bl __aeabi_uidiv - movw r3, #2382 + movw r3, #2386 ldrh r3, [r6, r3] smlabb r0, r3, r0, r4 uxth r0, r0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L545: +.L557: .align 2 -.L544: +.L556: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -3311,13 +3351,13 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L548 - movw r2, #2340 + ldr r3, .L560 + movw r2, #2344 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 ldrh r5, [r3, r2] - movw r2, #2382 + movw r2, #2386 ldrh r1, [r3, r2] bl __aeabi_uidiv mov r1, r5 @@ -3327,9 +3367,9 @@ P2V_plane: add r1, r4, r1 uxth r0, r1 ldmfd sp!, {r4, r5, r6, pc} -.L549: +.L561: .align 2 -.L548: +.L560: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -3342,19 +3382,19 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - movw r3, #2382 - ldr r4, .L552 + movw r3, #2386 + ldr r4, .L564 ldrh r1, [r4, r3] bl __aeabi_uidivmod - movw r3, #2340 + movw r3, #2344 uxth r0, r1 ldrh r1, [r4, r3] bl __aeabi_uidiv uxth r0, r0 ldmfd sp!, {r4, pc} -.L553: +.L565: .align 2 -.L552: +.L564: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -3367,13 +3407,13 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L555 + bls .L567 rsb r0, r1, r0 cmp r0, #-2147483648 movhi r0, #0 movls r0, #1 bx lr -.L555: +.L567: rsb r0, r0, r1 cmp r0, #-2147483648 movls r0, #0 @@ -3389,15 +3429,15 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L558 + ldr r3, .L570 ldrh r0, [r3, #6] clz r0, r0 mov r0, r0, lsr #5 bx lr -.L559: +.L571: .align 2 -.L558: - .word .LANCHOR0+2508 +.L570: + .word .LANCHOR0+2512 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty .align 2 @@ -3408,16 +3448,16 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L561 + ldr r3, .L573 ldrh r0, [r3, #6] sub r0, r0, #1024 clz r0, r0 mov r0, r0, lsr #5 bx lr -.L562: +.L574: .align 2 -.L561: - .word .LANCHOR0+2508 +.L573: + .word .LANCHOR0+2512 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull .align 2 @@ -3435,33 +3475,33 @@ FtlFreeSysBlkQueueIn: uxth r3, r3 cmp r3, r2 ldmhifd sp!, {r3, r4, r5, r6, r7, pc} - ldr r4, .L573 + ldr r4, .L585 ldrh r3, [r4, #6] cmp r3, #1024 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r1, #0 - beq .L565 - ldr r5, .L573+4 - ldr r3, [r5, #-3620] + beq .L577 + ldr r5, .L585+4 + ldr r3, [r5, #-3616] cmp r3, #0 - bne .L565 + bne .L577 bl P2V_block_in_plane mov r1, #1 mov r3, r7, asl #10 mov r2, r1 mov r6, r0 - ldr r0, [r5, #-3616] + ldr r0, [r5, #-3612] str r3, [r0, #4] bl FlashEraseBlocks - ldr r1, [r5, #-3612] + ldr r1, [r5, #-3608] mov r3, r6, asl #1 ldrh r2, [r1, r3] add r2, r2, #1 strh r2, [r1, r3] @ movhi - ldr r3, [r5, #-3608] + ldr r3, [r5, #-3604] add r3, r3, #1 - str r3, [r5, #-3608] -.L565: + str r3, [r5, #-3604] +.L577: ldrh r3, [r4, #6] add r3, r3, #1 strh r3, [r4, #6] @ movhi @@ -3472,10 +3512,10 @@ FtlFreeSysBlkQueueIn: strh r3, [r4, #4] @ movhi strh r7, [r2, #8] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L574: +.L586: .align 2 -.L573: - .word .LANCHOR0+2508 +.L585: + .word .LANCHOR0+2512 .word .LANCHOR2 .fnend .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn @@ -3486,9 +3526,9 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L588 + ldr r3, .L600 ldrh ip, [r3, #28] - ldr r3, .L588+4 + ldr r3, .L600+4 ldrh r2, [r3, #6] cmp r2, #0 bxeq lr @@ -3499,11 +3539,11 @@ FtlFreeSysBLkSort: and ip, ip, #31 ldrh r2, [r3, #4] mov r4, r0 -.L577: +.L589: uxth lr, r0 add r0, r0, #1 cmp lr, ip - bge .L587 + bge .L599 add lr, r3, r1, asl #1 add r1, r1, #1 ubfx r1, r1, #0, #10 @@ -3513,17 +3553,17 @@ FtlFreeSysBLkSort: mov r4, #1 add r2, r2, r4 ubfx r2, r2, #0, #10 - b .L577 -.L587: + b .L589 +.L599: cmp r4, #0 strneh r1, [r3, #2] @ movhi strneh r2, [r3, #4] @ movhi ldmfd sp!, {r4, pc} -.L589: +.L601: .align 2 -.L588: - .word .LANCHOR2-3604 - .word .LANCHOR0+2508 +.L600: + .word .LANCHOR2-3600 + .word .LANCHOR0+2512 .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -3535,74 +3575,73 @@ FtlFreeSysBlkQueueOut: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} - ldr r4, .L601 - ldr r8, .L601+4 - mov r7, r4 -.L591: + ldr r7, .L613 + add r4, r7, #2512 + mov r8, r4 +.L603: ldrh r1, [r4, #6] cmp r1, #0 - beq .L592 - ldr r5, .L601+8 + beq .L604 + ldr r5, .L613+4 sub r1, r1, #1 ldrh r3, [r4, #2] strh r1, [r4, #6] @ movhi - ldr r10, [r5, #-3620] + ldr r10, [r5, #-3616] add r2, r4, r3, asl #1 add r3, r3, #1 cmp r10, #0 ubfx r3, r3, #0, #10 ldrh r6, [r2, #8] strh r3, [r4, #2] @ movhi - bne .L593 + bne .L605 mov r0, r6 bl P2V_block_in_plane mov r3, r6, asl #10 mov r9, r0 - ldr r0, [r5, #-3616] + ldr r0, [r5, #-3612] str r3, [r0, #4] - ldrb r3, [r8, #140] @ zero_extendqisi2 + ldrb r3, [r7, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L594 + beq .L606 mov r1, r10 mov r2, #1 bl FlashEraseBlocks -.L594: +.L606: mov r1, #1 - ldr r0, [r5, #-3616] + ldr r0, [r5, #-3612] mov r2, r1 bl FlashEraseBlocks - ldr r1, [r5, #-3612] + ldr r1, [r5, #-3608] mov r3, r9, asl #1 ldrh r2, [r1, r3] add r2, r2, #1 strh r2, [r1, r3] @ movhi - ldr r3, [r5, #-3608] + ldr r3, [r5, #-3604] add r3, r3, #1 - str r3, [r5, #-3608] - b .L593 -.L592: - ldr r0, .L601+12 + str r3, [r5, #-3604] + b .L605 +.L604: + ldr r0, .L613+8 bl printk -.L595: - b .L595 -.L593: +.L607: + b .L607 +.L605: sub r3, r6, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L596 + bls .L608 mov r1, r6 - ldrh r2, [r7, #6] - ldr r0, .L601+16 + ldrh r2, [r8, #6] + ldr r0, .L613+12 bl printk - b .L591 -.L596: + b .L603 +.L608: mov r0, r6 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L602: +.L614: .align 2 -.L601: - .word .LANCHOR0+2508 +.L613: .word .LANCHOR0 .word .LANCHOR2 .word .LC3 @@ -3616,35 +3655,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L609 + ldr r3, .L621 str lr, [sp, #-4]! .save {lr} movw lr, #65535 - ldr ip, [r3, #-3556] + ldr ip, [r3, #-3552] ldr r2, [r0] - ldr r3, .L609+4 + ldr r3, .L621+4 rsb r0, ip, r2 mov r0, r0, asr #1 mul r3, r3, r0 mov r0, #6 uxth r3, r3 -.L605: +.L617: cmp r1, r3 - beq .L606 + beq .L618 ldrh r3, [r2] cmp r3, lr - beq .L607 + beq .L619 mla r2, r0, r3, ip - b .L605 -.L606: + b .L617 +.L618: mov r0, #1 ldr pc, [sp], #4 -.L607: +.L619: mov r0, #0 ldr pc, [sp], #4 -.L610: +.L622: .align 2 -.L609: +.L621: .word .LANCHOR2 .word -1431655765 .fnend @@ -3659,43 +3698,43 @@ insert_data_list: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - movw r3, #2324 - ldr r5, .L628 + movw r3, #2328 + ldr r5, .L640 ldrh r3, [r5, r3] cmp r3, r0 - bls .L613 - ldr r2, .L628+4 + bls .L625 + ldr r2, .L640+4 mov lr, #6 mul lr, lr, r0 mvn ip, #0 - ldr r6, [r2, #-3556] + ldr r6, [r2, #-3552] mov r10, r2 add r1, r6, lr strh ip, [r1, #2] @ movhi strh ip, [r6, lr] @ movhi - ldr r3, [r2, #-3552] + ldr r3, [r2, #-3548] cmp r3, #0 - beq .L627 - ldr r8, [r2, #-3548] + beq .L639 + ldr r8, [r2, #-3544] mov r4, r0, asl #1 ldrh r2, [r1, #4] ldrh r7, [r8, r4] cmp r2, #0 mulne ip, r2, r7 - ldr r7, [r10, #-3556] - ldr r2, .L628+8 + ldr r7, [r10, #-3552] + ldr r2, .L640+8 rsb r9, r7, r3 mov r9, r9, asr #1 mul r2, r2, r9 - movw r9, #2324 + movw r9, #2328 ldrh r5, [r5, r9] - ldr r9, [r10, #-3612] + ldr r9, [r10, #-3608] add r4, r9, r4 str r4, [sp, #4] uxth r2, r2 mov r4, #0 str r5, [sp] -.L622: +.L634: add r4, r4, #1 ldr r5, [sp] uxth r4, r4 @@ -3705,7 +3744,7 @@ insert_data_list: cmp r0, r2 orreq r5, r5, #1 cmp r5, #0 - bne .L613 + bne .L625 mov r10, r2, asl #1 ldrh r5, [r3, #4] ldrh fp, [r8, r10] @@ -3713,56 +3752,56 @@ insert_data_list: mvneq r5, #0 mulne r5, r5, fp cmp r5, ip - bne .L618 + bne .L630 ldr r5, [sp, #4] ldrh r10, [r9, r10] ldrh r5, [r5] cmp r10, r5 - bcc .L620 - b .L619 -.L618: - bhi .L619 -.L620: + bcc .L632 + b .L631 +.L630: + bhi .L631 +.L632: ldrh r5, [r3] movw r10, #65535 cmp r5, r10 streqh r2, [r1, #2] @ movhi streqh r0, [r3] @ movhi - ldreq r3, .L628+4 - streq r1, [r3, #-3544] - beq .L613 -.L621: + ldreq r3, .L640+4 + streq r1, [r3, #-3540] + beq .L625 +.L633: mov r3, #6 mov r2, r5 mla r3, r3, r5, r7 - b .L622 -.L619: + b .L634 +.L631: strh r2, [r6, lr] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L628+4 - ldr ip, [r2, #-3552] + ldr r2, .L640+4 + ldr ip, [r2, #-3548] cmp r3, ip - bne .L623 + bne .L635 strh r0, [r3, #2] @ movhi -.L627: - str r1, [r2, #-3552] - b .L613 -.L623: +.L639: + str r1, [r2, #-3548] + b .L625 +.L635: ldrh ip, [r3, #2] - ldr r1, [r2, #-3556] + ldr r1, [r2, #-3552] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L613: +.L625: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L629: +.L641: .align 2 -.L628: +.L640: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -3778,14 +3817,14 @@ INSERT_DATA_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L632 - ldrh r3, [r2, #-4] + ldr r2, .L644 + ldrh r3, [r2] add r3, r3, #1 - strh r3, [r2, #-4] @ movhi + strh r3, [r2] @ movhi ldmfd sp!, {r3, pc} -.L633: +.L645: .align 2 -.L632: +.L644: .word .LANCHOR2-3536 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -3800,67 +3839,67 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r4, #65535 cmp r0, r4 - beq .L635 - ldr r2, .L643 + beq .L647 + ldr r2, .L655 mov lr, #6 mul r6, lr, r0 mvn r3, #0 - ldr r7, [r2, #-3556] + ldr r7, [r2, #-3552] mov r5, r2 add ip, r7, r6 strh r3, [ip, #2] @ movhi strh r3, [r7, r6] @ movhi - ldr r3, [r2, #-3536] + ldr r3, [r2, #-3532] cmp r3, #0 - beq .L642 - ldr r9, [r2, #-3612] + beq .L654 + ldr r9, [r2, #-3608] mov r2, r0, asl #1 - ldr r8, [r5, #-3556] + ldr r8, [r5, #-3552] rsb r1, r8, r3 ldrh r10, [r9, r2] - ldr r2, .L643+4 + ldr r2, .L655+4 mov r1, r1, asr #1 mul r1, r2, r1 uxth r2, r1 -.L639: +.L651: mov r1, r2, asl #1 ldrh r1, [r9, r1] cmp r1, r10 - bcs .L637 + bcs .L649 ldrh r1, [r3] cmp r1, r4 streqh r2, [ip, #2] @ movhi streqh r0, [r3] @ movhi - beq .L635 -.L638: + beq .L647 +.L650: mla r3, lr, r1, r8 mov r2, r1 - b .L639 -.L637: + b .L651 +.L649: ldrh r1, [r3, #2] strh r1, [ip, #2] @ movhi strh r2, [r7, r6] @ movhi - ldr r1, [r5, #-3536] - ldr r2, .L643 + ldr r1, [r5, #-3532] + ldr r2, .L655 cmp r3, r1 - bne .L640 + bne .L652 strh r0, [r3, #2] @ movhi -.L642: - str ip, [r2, #-3536] - b .L635 -.L640: +.L654: + str ip, [r2, #-3532] + b .L647 +.L652: ldrh ip, [r3, #2] - ldr r1, [r2, #-3556] + ldr r1, [r2, #-3552] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L635: +.L647: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L644: +.L656: .align 2 -.L643: +.L655: .word .LANCHOR2 .word -1431655765 .fnend @@ -3875,14 +3914,14 @@ INSERT_FREE_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L647 - ldrh r3, [r2, #-12] + ldr r2, .L659 + ldrh r3, [r2, #-8] add r3, r3, #1 - strh r3, [r2, #-12] @ movhi + strh r3, [r2, #-8] @ movhi ldmfd sp!, {r3, pc} -.L648: +.L660: .align 2 -.L647: +.L659: .word .LANCHOR2-3520 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -3896,15 +3935,15 @@ List_remove_node: stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov ip, #6 - ldr r4, .L655 + ldr r4, .L667 movw r5, #65535 mul r1, ip, r1 ldr r3, [r0] - ldr r2, [r4, #-3556] + ldr r2, [r4, #-3552] add lr, r2, r1 cmp lr, r3 ldrh r3, [r2, r1] - bne .L650 + bne .L662 cmp r3, r5 mlane r3, ip, r3, r2 moveq r3, #0 @@ -3912,33 +3951,33 @@ List_remove_node: strne r3, [r0] mvnne r0, #0 strneh r0, [r3, #2] @ movhi - b .L652 -.L650: + b .L664 +.L662: cmp r3, r5 ldrh r0, [lr, #2] - bne .L653 + bne .L665 cmp r0, r3 mulne r0, ip, r0 mvnne r3, #0 strneh r3, [r2, r0] @ movhi - b .L652 -.L653: + b .L664 +.L665: mla r3, ip, r3, r2 strh r0, [r3, #2] @ movhi ldrh r5, [lr, #2] ldrh r0, [r2, r1] - ldr r3, [r4, #-3556] + ldr r3, [r4, #-3552] mul ip, ip, r5 strh r0, [r3, ip] @ movhi -.L652: +.L664: mvn r3, #0 mov r0, #0 strh r3, [r2, r1] @ movhi strh r3, [lr, #2] @ movhi ldmfd sp!, {r4, r5, pc} -.L656: +.L668: .align 2 -.L655: +.L667: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -3951,19 +3990,19 @@ List_pop_index_node: @ frame_needed = 0, uses_anonymous_args = 0 ldr r3, [r0] cmp r3, #0 - beq .L663 - ldr r2, .L666 + beq .L675 + ldr r2, .L678 movw ip, #65535 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 - ldr r4, [r2, #-3556] -.L659: + ldr r4, [r2, #-3552] +.L671: cmp r1, #0 - bne .L660 -.L662: + bne .L672 +.L674: rsb r4, r4, r3 - ldr r3, .L666+4 + ldr r3, .L678+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -3971,20 +4010,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 ldmfd sp!, {r4, pc} -.L660: +.L672: ldrh r2, [r3] cmp r2, ip - beq .L662 + beq .L674 sub r1, r1, #1 mla r3, lr, r2, r4 uxth r1, r1 - b .L659 -.L663: + b .L671 +.L675: movw r0, #65535 bx lr -.L667: +.L679: .align 2 -.L666: +.L678: .word .LANCHOR2 .word -1431655765 .fnend @@ -3997,35 +4036,35 @@ List_get_gc_head_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L675 - ldr r3, [r2, #-3552] + ldr r2, .L687 + ldr r3, [r2, #-3548] cmp r3, #0 - ldrne r1, [r2, #-3556] + ldrne r1, [r2, #-3552] movne ip, #6 movwne r2, #65535 - beq .L673 -.L670: + beq .L685 +.L682: cmp r0, #0 - beq .L671 + beq .L683 ldrh r3, [r3] cmp r3, r2 subne r0, r0, #1 mlane r3, ip, r3, r1 uxthne r0, r0 - bne .L670 -.L673: + bne .L682 +.L685: movw r0, #65535 bx lr -.L671: +.L683: rsb r3, r1, r3 - ldr r0, .L675+4 + ldr r0, .L687+4 mov r3, r3, asr #1 mul r0, r0, r3 uxth r0, r0 bx lr -.L676: +.L688: .align 2 -.L675: +.L687: .word .LANCHOR2 .word -1431655765 .fnend @@ -4037,29 +4076,29 @@ List_update_data_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L686 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + ldr r3, .L697 sub r2, r3, #3520 - ldrh r2, [r2, #-8] + ldrh r2, [r2, #-4] cmp r2, r0 - beq .L685 + beq .L690 sub r2, r3, #3472 - ldrh r2, [r2, #-8] + ldrh r2, [r2, #-4] cmp r2, r0 - beq .L685 + beq .L690 sub r2, r3, #3424 - ldrh r2, [r2, #-8] + ldrh r2, [r2, #-4] cmp r2, r0 - beq .L685 - stmfd sp!, {r4, lr} - .save {r4, lr} + beq .L690 mov lr, #6 + ldr r1, [r3, #-3552] mul lr, lr, r0 - ldr r1, [r3, #-3556] - ldr r2, [r3, #-3552] + ldr r2, [r3, #-3548] add ip, r1, lr cmp ip, r2 - beq .L678 - ldr r4, [r3, #-3548] + beq .L690 + ldr r4, [r3, #-3544] mov r3, r0, asl #1 ldrh r2, [r4, r3] ldrh r3, [ip, #4] @@ -4069,14 +4108,14 @@ List_update_data_list: mvneq r2, #0 movw r3, #65535 cmp ip, r3 - bne .L680 + bne .L692 ldrh r3, [r1, lr] cmp r3, ip - beq .L678 -.L680: + beq .L690 +.L692: mov r3, #6 mul ip, r3, ip - ldr r3, .L686+4 + ldr r3, .L697+4 add r1, r1, ip mov lr, ip, asr #1 mul r3, r3, lr @@ -4087,29 +4126,25 @@ List_update_data_list: mulne r3, r3, lr mvneq r3, #0 cmp r2, r3 - bcs .L678 + bcs .L690 + ldr r5, .L697+8 mov r4, r0 - ldr r0, .L686+8 mov r1, r4 + sub r0, r5, #12 bl List_remove_node - ldr r2, .L686+12 + ldrh r3, [r5] mov r0, r4 - ldrh r3, [r2, #-4] sub r3, r3, #1 - strh r3, [r2, #-4] @ movhi + strh r3, [r5] @ movhi bl INSERT_DATA_LIST -.L678: +.L690: mov r0, #0 - ldmfd sp!, {r4, pc} -.L685: - mov r0, #0 - bx lr -.L687: + ldmfd sp!, {r3, r4, r5, pc} +.L698: .align 2 -.L686: +.L697: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2-3552 .word .LANCHOR2-3536 .fnend .size List_update_data_list, .-List_update_data_list @@ -4125,16 +4160,16 @@ ftl_map_blk_alloc_new_blk: mov r3, #0 ldrh r1, [r0, #10] ldr r2, [r0, #12] -.L689: +.L700: uxth r5, r3 cmp r5, r1 - bcs .L692 + bcs .L703 mov r7, r2 add r3, r3, #1 ldrh r6, [r7] add r2, r2, #2 cmp r6, #0 - bne .L689 + bne .L700 mov r4, r0 bl FtlFreeSysBlkQueueOut movw r2, #65533 @@ -4143,14 +4178,14 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7] @ movhi uxth r3, r3 cmp r3, r2 - bls .L690 - ldr r3, .L696 - ldr r0, .L696+4 + bls .L701 + ldr r3, .L707 + ldr r0, .L707+4 ldrh r2, [r3, #6] bl printk -.L691: - b .L691 -.L690: +.L702: + b .L702 +.L701: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi add r3, r3, #1 @@ -4159,13 +4194,13 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi add r3, r3, #1 strh r3, [r4, #8] @ movhi -.L692: +.L703: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L697: +.L708: .align 2 -.L696: - .word .LANCHOR0+2508 +.L707: + .word .LANCHOR0+2512 .word .LC5 .fnend .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk @@ -4176,35 +4211,35 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L714 - movw r3, #2422 + ldr r2, .L725 + movw r3, #2426 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r1, #0 ldrh r2, [r2, r3] mov ip, #12 - ldr r3, .L714+4 + ldr r3, .L725+4 movw lr, #65535 - ldr r3, [r3, #-3384] -.L699: + ldr r3, [r3, #-3380] +.L710: uxth r0, r1 cmp r0, r2 - bcs .L711 + bcs .L722 add r1, r1, #1 mla r4, ip, r1, r3 ldrh r4, [r4, #-12] cmp r4, lr - bne .L699 + bne .L710 ldmfd sp!, {r4, r5, r6, pc} -.L711: +.L722: mov r0, r2 mov r1, #0 mov ip, #-2147483648 mov r5, #12 -.L702: +.L713: uxth r4, r1 cmp r4, r2 - bcs .L712 + bcs .L723 mla lr, r5, r1, r3 add r1, r1, #1 ldr lr, [lr, #4] @@ -4215,35 +4250,35 @@ select_l2p_ram_region: cmp r6, #0 movne ip, lr movne r0, r4 - b .L702 -.L712: + b .L713 +.L723: cmp r0, r2 ldmccfd sp!, {r4, r5, r6, pc} - ldr r1, .L714+8 + ldr r1, .L725+8 mov r0, r2 mvn ip, #0 - ldrh r5, [r1, #-4] + ldrh r5, [r1] mov r1, #0 -.L705: +.L716: uxth lr, r1 cmp lr, r2 - bcs .L713 + bcs .L724 ldr r4, [r3, #4] cmp r4, ip - bcs .L706 + bcs .L717 ldrh r6, [r3] cmp r6, r5 movne ip, r4 movne r0, lr -.L706: +.L717: add r1, r1, #1 add r3, r3, #12 - b .L705 -.L713: + b .L716 +.L724: ldmfd sp!, {r4, r5, r6, pc} -.L715: +.L726: .align 2 -.L714: +.L725: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2-3376 @@ -4256,39 +4291,39 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L724 - sub r1, r3, #3376 - ldrh r2, [r1, #-2] + ldr r3, .L735 + sub r1, r3, #3360 + ldrh r2, [r1, #-14] cmp r2, #4 cmpls r0, #0 addeq r2, r2, #1 - streqh r2, [r1, #-2] @ movhi + streqh r2, [r1, #-14] @ movhi bxeq lr - ldr r0, .L724+4 + ldr r0, .L735+4 mov r2, #0 str lr, [sp, #-4]! .save {lr} movw ip, #65535 - strh r2, [r1, #-2] @ movhi - movw r1, #2324 + strh r2, [r1, #-14] @ movhi + movw r1, #2328 ldrh r0, [r0, r1] - str r2, [r3, #-3376] - ldr r2, [r3, #-3548] + str r2, [r3, #-3372] + ldr r2, [r3, #-3544] add r0, r2, r0, asl #1 -.L718: +.L729: cmp r2, r0 - beq .L723 + beq .L734 ldrh r1, [r2], #2 cmp r1, ip - ldrne lr, [r3, #-3376] + ldrne lr, [r3, #-3372] addne r1, r1, lr - strne r1, [r3, #-3376] - b .L718 -.L723: + strne r1, [r3, #-3372] + b .L729 +.L734: ldr pc, [sp], #4 -.L725: +.L736: .align 2 -.L724: +.L735: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4301,21 +4336,21 @@ ftl_set_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L730 + ldr r2, .L741 mov r3, r0, lsr #5 cmp r1, #0 and r0, r0, #31 uxth r3, r3 mov ip, #1 - ldr r1, [r2, #-3372] + ldr r1, [r2, #-3368] ldr r2, [r1, r3, asl #2] orrne r0, r2, ip, asl r0 biceq r0, r2, ip, asl r0 str r0, [r1, r3, asl #2] bx lr -.L731: +.L742: .align 2 -.L730: +.L741: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4327,17 +4362,17 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L733 + ldr r3, .L744 mov r2, r0, lsr #5 and r0, r0, #31 - ldr r3, [r3, #-3372] + ldr r3, [r3, #-3368] ldr r3, [r3, r2, asl #2] mov r0, r3, lsr r0 and r0, r0, #1 bx lr -.L734: +.L745: .align 2 -.L733: +.L744: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4348,19 +4383,18 @@ ftl_sb_update_avl_pages: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L745 mov r3, #0 strh r3, [r0, #4] @ movhi - movw r3, #2316 + ldr r3, .L756 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} movw r4, #65535 - ldrh lr, [ip, r3] + ldrh lr, [r3] add r3, r2, #7 add r3, r0, r3, asl #1 -.L736: +.L747: cmp r2, lr - bcs .L743 + bcs .L754 ldrh ip, [r3, #2]! add r2, r2, #1 cmp ip, r4 @@ -4368,17 +4402,18 @@ ftl_sb_update_avl_pages: ldrneh ip, [r0, #4] addne ip, ip, #1 strneh ip, [r0, #4] @ movhi - b .L736 -.L743: - ldr r3, .L745+4 + b .L747 +.L754: + ldr r2, .L756+4 + movw r3, #2388 add ip, r0, #14 - mov r2, #0 movw r5, #65535 - ldrh r4, [r3] -.L739: + ldrh r4, [r2, r3] + mov r2, #0 +.L750: uxth r3, r2 cmp r3, lr - bcs .L744 + bcs .L755 ldrh r3, [ip, #2]! add r2, r2, #1 cmp r3, r5 @@ -4387,14 +4422,14 @@ ftl_sb_update_avl_pages: subne r3, r3, #1 rsbne r3, r1, r3 strneh r3, [r0, #4] @ movhi - b .L739 -.L744: + b .L750 +.L755: ldmfd sp!, {r4, r5, pc} -.L746: +.L757: .align 2 -.L745: +.L756: + .word .LANCHOR0+2320 .word .LANCHOR0 - .word .LANCHOR0+2384 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -4404,69 +4439,66 @@ make_superblock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r2, #2316 - ldr r6, .L761 - mov r3, #0 - ldr r10, .L761+4 - add r7, r0, #16 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + add r6, r0, #16 + ldr r7, .L772 mov r4, r0 - mov r5, r3 - ldrh r8, [r6, r2] mvn r9, #0 - strh r3, [r0, #4] @ movhi - strb r3, [r0, #7] -.L748: + mov r5, #0 + strh r5, [r0, #4] @ movhi + ldrh r8, [r7], #28 + strb r5, [r0, #7] +.L759: uxth r3, r5 cmp r3, r8 - bcs .L760 - ldrb r0, [r10, r5] @ zero_extendqisi2 - add r7, r7, #2 + bcs .L771 + ldrb r0, [r7, r5] @ zero_extendqisi2 + add r6, r6, #2 ldrh r1, [r4] add r5, r5, #1 bl V2P_block - strh r9, [r7, #-2] @ movhi - mov fp, r0 + strh r9, [r6, #-2] @ movhi + mov r10, r0 bl FtlBbmIsBadBlock cmp r0, #0 - streqh fp, [r7, #-2] @ movhi + streqh r10, [r6, #-2] @ movhi ldreqb r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 streqb r3, [r4, #7] - b .L748 -.L760: - ldr r3, .L761+8 - ldrb r2, [r4, #7] @ zero_extendqisi2 - ldrh r3, [r3] - smulbb r3, r2, r3 - strh r3, [r4, #4] @ movhi - mov r3, #0 - strb r3, [r4, #9] - ldr r3, [r6, #2308] - cmp r3, #0 - beq .L751 - ldr r2, .L761+12 - ldrh r3, [r4] - ldr r2, [r2, #-3612] - mov r3, r3, asl #1 - ldrh r3, [r2, r3] - cmp r3, #79 - movls r3, #1 - strlsb r3, [r4, #9] -.L751: - ldrb r3, [r6] @ zero_extendqisi2 + b .L759 +.L771: + ldr r3, .L772+4 + movw r2, #2388 + ldrb r1, [r4, #7] @ zero_extendqisi2 + ldrh r2, [r3, r2] + smulbb r2, r1, r2 + strh r2, [r4, #4] @ movhi + mov r2, #0 + strb r2, [r4, #9] + ldr r2, [r3, #2244] + cmp r2, #0 + beq .L762 + ldr r1, .L772+8 + ldrh r2, [r4] + ldr r1, [r1, #-3608] + mov r2, r2, asl #1 + ldrh r2, [r1, r2] + cmp r2, #79 + movls r2, #1 + strlsb r2, [r4, #9] +.L762: + ldrb r3, [r3] @ zero_extendqisi2 mov r0, #0 cmp r3, #0 movne r3, #1 strneb r3, [r4, #9] - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L762: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L773: .align 2 -.L761: +.L772: + .word .LANCHOR0+2320 .word .LANCHOR0 - .word .LANCHOR0+2344 - .word .LANCHOR0+2384 .word .LANCHOR2 .fnend .size make_superblock, .-make_superblock @@ -4479,19 +4511,19 @@ update_multiplier_value: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - movw r2, #2316 - ldr r3, .L773 mov r5, #0 + ldr r3, .L784 mov r6, r0 + ldr r9, .L784+4 mov r4, r5 - ldrh r7, [r3, r2] - add r3, r3, #2384 - sub r9, r3, #40 - ldrh r8, [r3] -.L764: + add r2, r3, #2320 + ldrh r7, [r2] + movw r2, #2388 + ldrh r8, [r3, r2] +.L775: uxth r3, r5 cmp r3, r7 - bcs .L772 + bcs .L783 ldrb r0, [r9, r5] @ zero_extendqisi2 mov r1, r6 bl V2P_block @@ -4500,26 +4532,27 @@ update_multiplier_value: cmp r0, #0 addeq r4, r4, r8 uxtheq r4, r4 - b .L764 -.L772: + b .L775 +.L783: cmp r4, #0 - beq .L767 + beq .L778 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L767: - ldr r3, .L773+4 +.L778: + ldr r3, .L784+8 mov r2, #6 mov r0, #0 - ldr r3, [r3, #-3556] + ldr r3, [r3, #-3552] mla r6, r2, r6, r3 strh r4, [r6, #4] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L774: +.L785: .align 2 -.L773: +.L784: .word .LANCHOR0 + .word .LANCHOR0+2348 .word .LANCHOR2 .fnend .size update_multiplier_value, .-update_multiplier_value @@ -4531,23 +4564,23 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L778 - ldr r0, [r2, #-3536] + ldr r2, .L789 + ldr r0, [r2, #-3532] cmp r0, #0 bxeq lr - ldr r3, [r2, #-3556] + ldr r3, [r2, #-3552] rsb r0, r3, r0 - ldr r3, .L778+4 + ldr r3, .L789+4 mov r0, r0, asr #1 mul r0, r3, r0 - ldr r3, [r2, #-3612] + ldr r3, [r2, #-3608] uxth r0, r0 mov r0, r0, asl #1 ldrh r0, [r3, r0] bx lr -.L779: +.L790: .align 2 -.L778: +.L789: .word .LANCHOR2 .word -1431655765 .fnend @@ -4559,50 +4592,50 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L790 - ldr r3, [r1, #-3536] + ldr r1, .L801 + ldr r3, [r1, #-3532] cmp r3, #0 - beq .L786 + beq .L797 sub r2, r1, #3520 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov r4, #6 - ldrh r2, [r2, #-12] + ldrh r2, [r2, #-8] movw r5, #65535 - ldr ip, [r1, #-3556] + ldr ip, [r1, #-3552] rsb r2, r2, r2, asl #3 rsb r3, ip, r3 mov r2, r2, asr #3 mov r3, r3, asr #1 cmp r0, r2 uxthgt r0, r2 - ldr r2, .L790+4 + ldr r2, .L801+4 mul r3, r2, r3 mov r2, #0 uxth r3, r3 -.L783: +.L794: uxth lr, r2 cmp lr, r0 - bcs .L785 + bcs .L796 mul lr, r4, r3 add r2, r2, #1 ldrh lr, [ip, lr] cmp lr, r5 - bne .L787 -.L785: - ldr r2, [r1, #-3612] + bne .L798 +.L796: + ldr r2, [r1, #-3608] mov r3, r3, asl #1 ldrh r0, [r2, r3] ldmfd sp!, {r4, r5, pc} -.L787: +.L798: mov r3, lr - b .L783 -.L786: + b .L794 +.L797: mov r0, r3 bx lr -.L791: +.L802: .align 2 -.L790: +.L801: .word .LANCHOR2 .word -1431655765 .fnend @@ -4617,36 +4650,35 @@ FtlPrintInfo2buf: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r7, r0 - ldr r8, .L803 + ldr r8, .L814 add r4, r7, #12 - ldr r1, .L803+4 + ldr r1, .L814+4 .pad #32 sub sp, sp, #32 bl strcpy mov r0, r4 - ldr r1, .L803+8 - ldr r2, [r8, #112] + ldr r1, .L814+8 + ldr r2, [r8, #116] bl sprintf - ldr r1, .L803+12 - ldr r2, [r8, #2400] + ldr r1, .L814+12 + ldr r2, [r8, #2404] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L803+16 + ldr r3, .L814+16 ldr r3, [r3, #504] cmp r3, #1 add r4, r4, r0 - bne .L798 + bne .L809 add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 add r3, sp, #28 bl NandcGetTimeCfg mov r0, r4 - ldr r1, .L803+20 - ldr r6, .L803+24 + ldr r1, .L814+20 + ldr r6, .L814+24 sub r10, r6, #3520 - sub r9, r6, #3296 ldr r3, [sp, #24] ldr r2, [sp, #16] str r3, [sp] @@ -4654,432 +4686,437 @@ FtlPrintInfo2buf: str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L803+28 + ldr r1, .L814+28 add r4, r4, r0 add r5, r4, #10 mov r0, r4 - add r4, r8, #2448 + sub r4, r6, #3600 bl strcpy mov r0, r5 - ldr r1, .L803+32 - ldr r2, [r8, #2444] + ldr r1, .L814+32 + ldr r2, [r8, #2448] bl sprintf - ldr r1, .L803+36 - ldr r2, [r6, #-3376] + ldr r1, .L814+36 + ldr r2, [r6, #-3372] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+40 - ldr r2, [r6, #-3368] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+44 + ldr r1, .L814+40 ldr r2, [r6, #-3364] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+48 + ldr r1, .L814+44 ldr r2, [r6, #-3360] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+52 + ldr r1, .L814+48 ldr r2, [r6, #-3356] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+56 + ldr r1, .L814+52 ldr r2, [r6, #-3352] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+60 + ldr r1, .L814+56 ldr r2, [r6, #-3348] add r5, r5, r0 mov r0, r5 bl sprintf + ldr r1, .L814+60 ldr r2, [r6, #-3344] - ldr r1, .L803+64 - mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf ldr r2, [r6, #-3340] - ldr r1, .L803+68 + ldr r1, .L814+64 mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+72 ldr r2, [r6, #-3336] + ldr r1, .L814+68 + mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+76 + ldr r1, .L814+72 ldr r2, [r6, #-3332] add r5, r5, r0 mov r0, r5 bl sprintf + ldr r1, .L814+76 + ldr r2, [r6, #-3328] + add r5, r5, r0 + mov r0, r5 + bl sprintf add r5, r5, r0 bl FtlBbtCalcTotleCnt - ldrh r2, [r4, #6] - ldr r1, .L803+80 + ldr r2, .L814+80 + ldr r1, .L814+84 + ldrh r2, [r2, #6] mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L803+84 - ldrh r2, [r10, #-12] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+88 - ldr r2, [r6, #-3328] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+92 - ldr r2, [r6, #-3324] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+96 - ldr r2, [r6, #-3320] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+100 - ldr r2, [r6, #-3608] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+104 - ldr r2, [r6, #-3316] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+108 - ldr r2, [r6, #-3312] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+112 - ldrh r2, [r10, #-54] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+116 - ldrh r2, [r10, #-56] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+120 - ldr r2, [r8, #2424] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+124 - ldr r2, [r8, #2416] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+128 - ldr r2, [r8, #2312] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldrh r2, [r4, #66] - ldr r1, .L803+132 - add r5, r5, r0 - mov r0, r5 - bl sprintf - movw r3, #2324 - ldrh r2, [r8, r3] - ldr r1, .L803+136 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldrh r2, [r9, #-12] - ldr r1, .L803+140 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+144 - ldr r2, [r8, #2328] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldrh r2, [r9, #-8] - ldr r1, .L803+148 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldrh r2, [r4] - ldr r1, .L803+152 - sub r4, r6, #3472 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldrh r2, [r9, #-230] - ldr r1, .L803+156 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+160 - ldrb r2, [r6, #-3522] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L803+164 + ldr r1, .L814+88 ldrh r2, [r10, #-8] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+168 - ldrb r2, [r6, #-3520] @ zero_extendqisi2 + ldr r1, .L814+92 + ldr r2, [r6, #-3324] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #-228] - ldr r1, .L803+172 + ldr r1, .L814+96 + ldr r2, [r6, #-3320] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r3, [r10, #-8] - ldr r2, [r6, #-3548] - ldr r1, .L803+176 - mov r3, r3, asl #1 - ldrh r2, [r2, r3] + ldr r1, .L814+100 + ldr r2, [r6, #-3316] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #-182] - ldr r1, .L803+180 + ldr r1, .L814+104 + ldr r2, [r6, #-3604] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+184 - ldrb r2, [r6, #-3474] @ zero_extendqisi2 + ldr r1, .L814+108 + ldr r2, [r6, #-3312] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L814+112 + ldr r2, [r6, #-3308] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r2, [r4, #30] + ldr r1, .L814+116 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r2, [r4, #28] + ldr r1, .L814+120 + sub r4, r6, #3296 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L814+124 + ldr r2, [r8, #2428] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L814+128 + ldr r2, [r8, #2420] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L814+132 + ldr r2, [r8, #2316] + add r5, r5, r0 + mov r0, r5 + bl sprintf + add r3, r8, #2512 + ldr r1, .L814+136 + ldrh r2, [r3, #6] + add r5, r5, r0 + mov r0, r5 + bl sprintf + movw r3, #2328 + ldrh r2, [r8, r3] + ldr r1, .L814+140 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #-8] - ldr r1, .L803+188 + ldr r1, .L814+144 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+192 - ldrb r2, [r6, #-3472] @ zero_extendqisi2 + ldr r1, .L814+148 + ldr r2, [r8, #2332] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #-180] - ldr r1, .L803+196 - sub r9, r6, #3424 + ldrh r2, [r4, #-4] + ldr r1, .L814+152 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r3, [r4, #-8] - ldr r2, [r6, #-3548] - ldr r1, .L803+200 + movw r3, #2452 + ldrh r2, [r8, r3] + ldr r1, .L814+156 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r2, [r4, #-226] + ldr r1, .L814+160 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L814+164 + ldrb r2, [r6, #-3518] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L814+168 + ldrh r2, [r10, #-4] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L814+172 + ldrb r2, [r6, #-3516] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r2, [r4, #-224] + ldr r1, .L814+176 + sub r4, r6, #3472 + sub r9, r4, #4 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r3, [r10, #-4] + ldr r2, [r6, #-3544] + ldr r1, .L814+180 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r4, #42] - ldr r1, .L803+204 + ldrh r2, [r4, #-2] + ldr r1, .L814+184 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+208 - ldrb r2, [r6, #-3426] @ zero_extendqisi2 + ldr r1, .L814+188 + ldrb r2, [r6, #-3470] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #-8] - ldr r1, .L803+212 + ldrh r2, [r4, #-4] + ldr r1, .L814+192 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L814+196 + ldrb r2, [r6, #-3468] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r2, [r9, #4] + ldr r1, .L814+200 + sub r9, r6, #3424 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r3, [r4, #-4] + ldr r2, [r6, #-3544] + ldr r1, .L814+204 + mov r3, r3, asl #1 + ldrh r2, [r2, r3] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r2, [r4, #46] + ldr r1, .L814+208 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L814+212 + ldrb r2, [r6, #-3422] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r2, [r9, #-4] + ldr r1, .L814+216 sub r9, r6, #3280 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+216 - ldrb r2, [r6, #-3424] @ zero_extendqisi2 + ldr r1, .L814+220 + ldrb r2, [r6, #-3420] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r4, #44] - ldr r1, .L803+220 + ldrh r2, [r4, #48] + ldr r1, .L814+224 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r4, #186] - ldr r1, .L803+224 + ldrh r2, [r4, #190] + ldr r1, .L814+228 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+228 - ldrb r2, [r6, #-3282] @ zero_extendqisi2 + ldr r1, .L814+232 + ldrb r2, [r6, #-3278] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+232 - ldrh r2, [r9, #-8] + ldr r1, .L814+236 + ldrh r2, [r9, #-4] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L803+236 - ldrb r2, [r6, #-3280] @ zero_extendqisi2 + ldr r1, .L814+240 + ldrb r2, [r6, #-3276] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r4, #188] - ldr r1, .L803+240 + ldrh r2, [r4, #192] + ldr r1, .L814+244 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, [r6, #-3152] - ldr r3, [r8, #2308] - ldr r2, [r6, #-3240] + ldr r1, [r6, #-3148] + ldr r3, [r8, #2244] + ldr r2, [r6, #-3236] orr r2, r3, r2, asl #8 - ldr r3, [r6, #-3156] + ldr r3, [r6, #-3152] str r1, [sp] add r5, r5, r0 - ldr r1, [r6, #-3160] + ldr r1, [r6, #-3156] mov r0, r5 str r1, [sp, #4] - ldr r1, .L803+244 + ldr r1, .L814+248 bl sprintf - ldr r1, .L803+248 - ldr r2, [r6, #-3164] + ldr r1, .L814+252 + ldr r2, [r6, #-3160] add r4, r5, r0 - sub r5, r6, #2720 + sub r5, r6, #2704 mov r0, r4 bl sprintf - ldr r1, .L803+252 - ldr r2, [r6, #-3140] + ldr r1, .L814+256 + ldr r2, [r6, #-3136] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L803+256 - ldrh r2, [r5, #-4] + sub r3, r6, #2720 + ldr r1, .L814+260 + ldrh r2, [r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L803+260 - ldrh r2, [r5, #-2] + ldr r1, .L814+264 + ldrh r2, [r5, #-14] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L803+264 - ldr r2, [r6, #-2720] + ldr r1, .L814+268 + ldr r2, [r6, #-2716] add r4, r4, r0 mov r0, r4 bl sprintf - sub r3, r6, #2704 - ldr r1, .L803+268 - ldrh r2, [r3, #-12] + ldr r1, .L814+272 + ldrh r2, [r5, #-8] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L803+272 + ldr r1, .L814+276 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 - ldrh r0, [r10, #-12] + ldrh r0, [r10, #-8] bl GetFreeBlockMaxEraseCount - ldr r1, .L803+276 + ldr r1, .L814+280 mov r2, r0 mov r0, r4 bl sprintf - ldrh r3, [r9, #-8] + ldrh r3, [r9, #-4] movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L795 - ldr r2, [r6, #-3548] + beq .L806 + ldr r2, [r6, #-3544] mov r3, r3, asl #1 mov r0, r4 - ldr r1, .L803+280 + ldr r1, .L814+284 ldrh r2, [r2, r3] bl sprintf add r4, r4, r0 -.L795: +.L806: mov r0, #0 mov r5, #0 bl List_get_gc_head_node movw r10, #65535 mov r9, #6 uxth r3, r0 -.L797: +.L808: cmp r3, r10 - beq .L796 - ldr r2, [r6, #-3548] + beq .L807 + ldr r2, [r6, #-3544] mov r1, r3, asl #1 mul r8, r9, r3 mov r0, r4 ldrh r2, [r2, r1] str r2, [sp] - ldr r2, [r6, #-3556] + ldr r2, [r6, #-3552] add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp, #4] - ldr r2, [r6, #-3612] + ldr r2, [r6, #-3608] ldrh r2, [r2, r1] - ldr r1, .L803+284 + ldr r1, .L814+288 str r2, [sp, #8] mov r2, r5 bl sprintf add r5, r5, #1 - ldr r3, [r6, #-3556] + ldr r3, [r6, #-3552] cmp r5, #16 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L797 -.L796: - ldr r2, [r6, #-3556] + bne .L808 +.L807: + ldr r2, [r6, #-3552] mov r5, #0 - ldr r3, [r6, #-3536] + ldr r3, [r6, #-3532] movw r10, #65535 mov r9, #6 rsb r3, r2, r3 - ldr r2, .L803+288 + ldr r2, .L814+292 mov r3, r3, asr #1 mul r3, r2, r3 uxth r3, r3 -.L799: +.L810: cmp r3, r10 - beq .L798 + beq .L809 mul r8, r9, r3 - ldr r2, [r6, #-3556] - ldr r1, [r6, #-3612] + ldr r2, [r6, #-3552] + ldr r1, [r6, #-3608] mov r0, r4 add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp] mov r2, r3, asl #1 ldrh r2, [r1, r2] - ldr r1, .L803+292 + ldr r1, .L814+296 str r2, [sp, #4] mov r2, r5 bl sprintf add r5, r5, #1 - ldr r3, [r6, #-3556] + ldr r3, [r6, #-3552] cmp r5, #4 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L799 -.L798: + bne .L810 +.L809: rsb r0, r7, r4 add sp, sp, #32 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L804: +.L815: .align 2 -.L803: +.L814: .word .LANCHOR0 .word .LC6 .word .LC7 @@ -5100,6 +5137,7 @@ FtlPrintInfo2buf: .word .LC20 .word .LC21 .word .LC22 + .word .LANCHOR0+2452 .word .LC23 .word .LC24 .word .LC25 @@ -5166,8 +5204,8 @@ ftl_proc_ftl_read: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L807 - ldr r2, .L807+4 + ldr r1, .L818 + ldr r2, .L818+4 bl sprintf add r4, r5, r0 mov r0, r4 @@ -5175,9 +5213,9 @@ ftl_proc_ftl_read: add r0, r4, r0 rsb r0, r5, r0 ldmfd sp!, {r3, r4, r5, pc} -.L808: +.L819: .align 2 -.L807: +.L818: .word .LC76 .word .LC77 .fnend @@ -5193,86 +5231,86 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L839 - ldr r2, [r4, #-3320] - ldr r3, [r4, #-3312] + ldr r4, .L850 + ldr r2, [r4, #-3316] + ldr r3, [r4, #-3308] cmp r2, r3 - bcs .L810 - ldr r2, .L839+4 - movw r1, #2324 - ldr r0, [r4, #-3612] + bcs .L821 + ldr r2, .L850+4 + movw r1, #2328 + ldr r0, [r4, #-3608] mov r3, #0 - str r3, [r4, #-3328] + str r3, [r4, #-3324] ldrh r1, [r2, r1] sub r0, r0, #2 mov r5, r2 -.L811: +.L822: cmp r3, r1 - bcs .L838 + bcs .L849 ldrh r2, [r0, #2]! add r3, r3, #1 - ldr ip, [r4, #-3328] + ldr ip, [r4, #-3324] add r2, r2, ip - str r2, [r4, #-3328] - b .L811 -.L838: - ldr r6, [r4, #-3328] + str r2, [r4, #-3324] + b .L822 +.L849: + ldr r6, [r4, #-3324] mov r0, r6 bl __aeabi_uidiv - movw r3, #2376 + movw r3, #2380 ldrh r1, [r5, r3] - str r0, [r4, #-3320] - ldr r0, [r4, #-3324] + str r0, [r4, #-3316] + ldr r0, [r4, #-3320] rsb r0, r0, r6 bl __aeabi_uidiv - str r0, [r4, #-3328] - b .L813 -.L810: - ldr r3, [r4, #-3316] + str r0, [r4, #-3324] + b .L824 +.L821: + ldr r3, [r4, #-3312] cmp r2, r3 - bls .L813 - ldr ip, .L839+8 + bls .L824 + ldr ip, .L850+8 add r3, r3, #1 - str r3, [r4, #-3316] + str r3, [r4, #-3312] mov r3, #0 -.L815: +.L826: ldrh r2, [ip] cmp r3, r2 - bcs .L813 - ldr r0, [r4, #-3612] + bcs .L824 + ldr r0, [r4, #-3608] mov r1, r3, asl #1 add r3, r3, #1 ldrh r2, [r0, r1] add r2, r2, #1 strh r2, [r0, r1] @ movhi - b .L815 -.L813: - ldr r6, [r4, #-3312] - ldr r8, [r4, #-3320] + b .L826 +.L824: + ldr r6, [r4, #-3308] + ldr r8, [r4, #-3316] add r3, r6, #256 cmp r3, r8 - bls .L818 - ldr r2, .L839 + bls .L829 + ldr r2, .L850 add r3, r6, #768 - ldr r2, [r2, #-3316] + ldr r2, [r2, #-3312] cmp r3, r2 - bls .L818 - ldr r3, .L839+4 + bls .L829 + ldr r3, .L850+4 cmp r6, #40 - ldr r2, [r3, #2308] + ldr r2, [r3, #2244] movls r3, #0 movhi r3, #1 cmp r2, #0 orreq r3, r3, #1 cmp r3, #0 - beq .L818 -.L820: + beq .L829 +.L831: movw r0, #65535 - b .L819 -.L818: - ldr r5, .L839 + b .L830 +.L829: + ldr r5, .L850 sub r3, r5, #3520 - ldrh r0, [r3, #-12] + ldrh r0, [r3, #-8] add r0, r0, r0, asl #1 ubfx r0, r0, #2, #16 bl GetFreeBlockMaxEraseCount @@ -5284,33 +5322,33 @@ GetSwlReplaceBlock: cmp r6, #40 movls r1, #0 cmp r1, #0 - bne .L820 - ldr r3, [r5, #-3552] + bne .L831 + ldr r3, [r5, #-3548] cmp r3, #0 - beq .L820 - ldr r0, .L839+4 - movw r2, #2324 - ldr ip, .L839+12 + beq .L831 + ldr r0, .L850+4 + movw r2, #2328 + ldr ip, .L850+12 movw r7, #65535 - ldr r10, [r5, #-3612] + ldr r10, [r5, #-3608] mov lr, #6 ldrh r2, [r0, r2] - ldr r0, [r5, #-3556] + ldr r0, [r5, #-3552] mov r5, r7 str r2, [sp, #20] -.L821: +.L832: ldrh r2, [r3] movw fp, #65535 cmp r2, fp - beq .L823 + beq .L834 add r1, r1, #1 ldr fp, [sp, #20] uxth r1, r1 cmp r1, fp - bhi .L820 + bhi .L831 ldrh fp, [r3, #4] cmp fp, #0 - beq .L822 + beq .L833 rsb r3, r0, r3 mov r3, r3, asr #1 mul r3, ip, r3 @@ -5318,65 +5356,65 @@ GetSwlReplaceBlock: mov fp, r3, asl #1 ldrh fp, [r10, fp] cmp fp, r6 - bls .L827 + bls .L838 cmp fp, r7 movcc r7, fp movcc r5, r3 -.L822: +.L833: mla r3, lr, r2, r0 - b .L821 -.L827: + b .L832 +.L838: mov r5, r3 -.L823: +.L834: movw r3, #65535 cmp r5, r3 - beq .L820 + beq .L831 mov r3, r5, asl #1 ldrh fp, [r10, r3] cmp fp, r6 - bls .L825 + bls .L836 str r3, [sp, #20] bl GetFreeBlockMinEraseCount ldr r3, [sp, #20] cmp r0, r6 - strhi r7, [r4, #-3312] -.L825: + strhi r7, [r4, #-3308] +.L836: cmp fp, r8 - bcs .L820 + bcs .L831 add r2, fp, #128 cmp r9, r2 - ble .L820 + ble .L831 add r2, fp, #256 cmp r2, r8 - bcc .L826 - ldr r2, [r4, #-3316] + bcc .L837 + ldr r2, [r4, #-3312] add fp, fp, #768 cmp fp, r2 - bcs .L820 -.L826: - ldr r2, [r4, #-3548] + bcs .L831 +.L837: + ldr r2, [r4, #-3544] mov r1, r5 - ldr r0, .L839+16 + ldr r0, .L850+16 ldrh r2, [r2, r3] str r2, [sp] mov r2, r8 ldrh r3, [r10, r3] stmib sp, {r3, r9} - ldr r3, [r4, #-3316] + ldr r3, [r4, #-3312] bl printk mov r0, r5 mov r3, #1 - str r3, [r4, #-2712] -.L819: + str r3, [r4, #-2708] +.L830: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L840: +.L851: .align 2 -.L839: +.L850: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+2324 + .word .LANCHOR0+2328 .word -1431655765 .word .LC78 .fnend @@ -5392,19 +5430,19 @@ free_data_superblock: cmp r0, r2 stmfd sp!, {r3, lr} .save {r3, lr} - beq .L842 - ldr r2, .L844 + beq .L853 + ldr r2, .L855 mov r3, r0, asl #1 mov r1, #0 - ldr r2, [r2, #-3548] + ldr r2, [r2, #-3544] strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L842: +.L853: mov r0, #0 ldmfd sp!, {r3, pc} -.L845: +.L856: .align 2 -.L844: +.L855: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5415,24 +5453,24 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L854 + ldr ip, .L865 mov r3, #0 - ldr r1, .L854+4 + ldr r1, .L865+4 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r7, ip, #78 mov r5, #12 mov r6, #1 mov r8, #36 - str r3, [r1, #-2708] -.L847: + str r3, [r1, #-2704] +.L858: ldrh r2, [ip] add r4, r3, #1 uxth r3, r3 cmp r3, r2 - bcs .L852 + bcs .L863 mul r0, r5, r3 - ldr lr, [r1, #-2704] + ldr lr, [r1, #-2700] add r2, lr, r0 str r6, [r2, #8] ldrh r2, [r7] @@ -5440,41 +5478,41 @@ FtlGcBufInit: add r9, r2, #3 cmp r2, #0 movlt r2, r9 - ldr r9, [r1, #-2700] + ldr r9, [r1, #-2696] bic r2, r2, #3 add r2, r9, r2 str r2, [lr, r0] - ldr r2, .L854+8 - ldr r9, [r1, #-2704] + ldr r2, .L865+8 + ldr r9, [r1, #-2700] ldrh r2, [r2] add lr, r9, r0 mul r2, r2, r3 add r10, r2, #3 cmp r2, #0 movlt r2, r10 - ldr r10, [r1, #-2696] + ldr r10, [r1, #-2692] bic r2, r2, #3 add r2, r10, r2 str r2, [lr, #4] - ldr r2, [r1, #-2692] + ldr r2, [r1, #-2688] mla r3, r8, r3, r2 ldr r2, [r9, r0] str r2, [r3, #8] ldr r2, [lr, #4] str r2, [r3, #12] mov r3, r4 - b .L847 -.L852: - ldr r0, .L854+4 + b .L858 +.L863: + ldr r0, .L865+4 mov ip, #12 - ldr r4, .L854+12 + ldr r4, .L865+12 mov lr, #0 -.L849: - ldr r3, [r1, #-2688] +.L860: + ldr r3, [r1, #-2684] cmp r2, r3 - bcs .L853 + bcs .L864 mul r5, ip, r2 - ldr r7, [r0, #-2704] + ldr r7, [r0, #-2700] add r3, r7, r5 str lr, [r3, #8] ldrh r3, [r4] @@ -5482,12 +5520,12 @@ FtlGcBufInit: add r6, r3, #3 cmp r3, #0 movlt r3, r6 - ldr r6, [r0, #-2700] + ldr r6, [r0, #-2696] bic r3, r3, #3 add r3, r6, r3 str r3, [r7, r5] - ldr r3, .L854+8 - ldr r6, [r0, #-2704] + ldr r3, .L865+8 + ldr r6, [r0, #-2700] ldrh r3, [r3] add r5, r6, r5 mul r3, r3, r2 @@ -5496,20 +5534,20 @@ FtlGcBufInit: add r6, r3, #3 cmp r3, #0 movlt r3, r6 - ldr r6, [r0, #-2696] + ldr r6, [r0, #-2692] bic r3, r3, #3 add r3, r6, r3 str r3, [r5, #4] - b .L849 -.L853: + b .L860 +.L864: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L855: +.L866: .align 2 -.L854: - .word .LANCHOR0+2316 +.L865: + .word .LANCHOR0+2320 .word .LANCHOR2 - .word .LANCHOR0+2396 - .word .LANCHOR0+2394 + .word .LANCHOR0+2400 + .word .LANCHOR0+2398 .fnend .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -5519,39 +5557,39 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L864 + ldr r3, .L875 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov lr, #0 - ldr r6, [r3, #-2688] + ldr r6, [r3, #-2684] mov r5, #36 - ldr r4, [r3, #-2704] + ldr r4, [r3, #-2700] mov r7, lr mov r8, #12 -.L857: +.L868: uxth ip, lr cmp ip, r1 ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mla ip, r5, ip, r0 mov r2, #0 -.L858: +.L869: uxth r3, r2 cmp r3, r6 - bcs .L859 + bcs .L870 mul r3, r8, r3 add r2, r2, #1 add r9, r4, r3 ldr r10, [r4, r3] ldr r3, [ip, #8] cmp r10, r3 - bne .L858 + bne .L869 str r7, [r9, #8] -.L859: +.L870: add lr, lr, #1 - b .L857 -.L865: + b .L868 +.L876: .align 2 -.L864: +.L875: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -5562,43 +5600,43 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L875 + ldr r3, .L886 mov ip, #0 stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r6, #12 - ldr r4, [r3, #-2688] + ldr r4, [r3, #-2684] mov r7, #1 - ldr r5, [r3, #-2704] + ldr r5, [r3, #-2700] mov r8, #36 -.L867: +.L878: uxth r2, ip cmp r2, r1 - bcs .L874 + bcs .L885 mov lr, #0 -.L868: +.L879: uxth r3, lr cmp r3, r4 - bcs .L869 + bcs .L880 mla r3, r6, r3, r5 add lr, lr, #1 ldr r9, [r3, #8] cmp r9, #0 - bne .L868 + bne .L879 mla r2, r8, r2, r0 ldr lr, [r3] str r7, [r3, #8] str lr, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L869: +.L880: add ip, ip, #1 - b .L867 -.L874: + b .L878 +.L885: ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L876: +.L887: .align 2 -.L875: +.L886: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -5610,25 +5648,25 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L883 + ldr r2, .L894 sub r2, r2, #2672 - ldr r3, [r2, #-12] - ldrh r2, [r2, #-8] + ldr r3, [r2, #-8] + ldrh r2, [r2, #-4] add r2, r3, r2, asl #1 -.L878: +.L889: cmp r3, r2 - beq .L882 + beq .L893 ldrh r1, [r3], #2 cmp r1, r0 - bne .L878 + bne .L889 mov r0, #1 bx lr -.L882: +.L893: mov r0, #0 bx lr -.L884: +.L895: .align 2 -.L883: +.L894: .word .LANCHOR2 .fnend .size IsBlkInGcList, .-IsBlkInGcList @@ -5641,48 +5679,50 @@ FtlGcUpdatePage: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - mov r5, r0 - ldr r4, .L893 + mov r4, r0 ubfx r0, r0, #10, #16 - mov r6, r1 - mov r7, r2 + mov r5, r1 + mov r6, r2 bl P2V_block_in_plane - sub r3, r4, #2672 - ldr r2, [r4, #-2684] + ldr r2, .L904 mov lr, #0 - ldrh r1, [r3, #-8] - sub r8, r2, #2 -.L886: + sub r3, r2, #2672 + ldr r8, [r2, #-2680] + ldrh r1, [r3, #-4] + sub r7, r8, #2 +.L897: uxth ip, lr cmp ip, r1 - bcs .L890 - ldrh r9, [r8, #2]! + bcs .L901 + ldrh r9, [r7, #2]! add lr, lr, #1 cmp r9, r0 - bne .L886 -.L890: + bne .L897 +.L901: cmp ip, r1 moveq ip, ip, asl #1 - streqh r0, [r2, ip] @ movhi - ldreqh ip, [r3, #-8] + streqh r0, [r8, ip] @ movhi + ldreqh ip, [r3, #-4] addeq ip, ip, #1 - streqh ip, [r3, #-8] @ movhi -.L888: - ldrh r2, [r3] + streqh ip, [r3, #-4] @ movhi +.L899: + ldr r3, .L904+4 mov ip, #12 - mul ip, ip, r2 - ldr r2, [r4, #-2676] + ldr r2, [r2, #-2672] + ldrh r1, [r3, #-12] + mul ip, ip, r1 add r1, r2, ip - stmib r1, {r6, r7} - str r5, [r2, ip] - ldrh r2, [r3] + stmib r1, {r5, r6} + str r4, [r2, ip] + ldrh r2, [r3, #-12] add r2, r2, #1 - strh r2, [r3] @ movhi + strh r2, [r3, #-12] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L894: +.L905: .align 2 -.L893: +.L904: .word .LANCHOR2 + .word .LANCHOR2-2656 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage .align 2 @@ -5695,44 +5735,44 @@ FtlGcRefreshOpenBlock: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L903 - ldrh r3, [r4, #-14] - cmp r3, r0 - beq .L897 - ldrh r3, [r4, #-12] - cmp r3, r0 - beq .L897 + ldr r4, .L914 ldrh r3, [r4, #-10] cmp r3, r0 - beq .L897 + beq .L908 ldrh r3, [r4, #-8] cmp r3, r0 - beq .L897 - ldr r0, .L903+4 + beq .L908 + ldrh r3, [r4, #-6] + cmp r3, r0 + beq .L908 + ldrh r3, [r4, #-4] + cmp r3, r0 + beq .L908 + ldr r0, .L914+4 mov r1, r5 bl printk - ldrh r2, [r4, #-14] + ldrh r2, [r4, #-10] movw r3, #65535 cmp r2, r3 - streqh r5, [r4, #-14] @ movhi - beq .L897 - ldrh r2, [r4, #-12] - cmp r2, r3 - streqh r5, [r4, #-12] @ movhi - beq .L897 - ldrh r2, [r4, #-10] - cmp r2, r3 streqh r5, [r4, #-10] @ movhi - beq .L897 + beq .L908 ldrh r2, [r4, #-8] cmp r2, r3 streqh r5, [r4, #-8] @ movhi -.L897: + beq .L908 + ldrh r2, [r4, #-6] + cmp r2, r3 + streqh r5, [r4, #-6] @ movhi + beq .L908 + ldrh r2, [r4, #-4] + cmp r2, r3 + streqh r5, [r4, #-4] @ movhi +.L908: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L904: +.L915: .align 2 -.L903: +.L914: .word .LANCHOR2-2656 .word .LC79 .fnend @@ -5747,48 +5787,48 @@ FtlGcRefreshBlock: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L916 - ldrh r3, [r4, #-14] - cmp r3, r0 - beq .L913 - ldrh r3, [r4, #-12] - cmp r3, r0 - beq .L913 + ldr r4, .L927 ldrh r3, [r4, #-10] cmp r3, r0 - beq .L913 + beq .L924 ldrh r3, [r4, #-8] cmp r3, r0 - beq .L913 - ldr r0, .L916+4 + beq .L924 + ldrh r3, [r4, #-6] + cmp r3, r0 + beq .L924 + ldrh r3, [r4, #-4] + cmp r3, r0 + beq .L924 + ldr r0, .L927+4 mov r1, r5 bl printk - ldrh r2, [r4, #-14] + ldrh r2, [r4, #-10] movw r3, #65535 cmp r2, r3 - streqh r5, [r4, #-14] @ movhi - beq .L913 - ldrh r2, [r4, #-12] - cmp r2, r3 - streqh r5, [r4, #-12] @ movhi - beq .L913 - ldrh r2, [r4, #-10] - cmp r2, r3 streqh r5, [r4, #-10] @ movhi - beq .L913 + beq .L924 ldrh r2, [r4, #-8] cmp r2, r3 - bne .L914 - strh r5, [r4, #-8] @ movhi -.L913: + streqh r5, [r4, #-8] @ movhi + beq .L924 + ldrh r2, [r4, #-6] + cmp r2, r3 + streqh r5, [r4, #-6] @ movhi + beq .L924 + ldrh r2, [r4, #-4] + cmp r2, r3 + bne .L925 + strh r5, [r4, #-4] @ movhi +.L924: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L914: +.L925: mvn r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L917: +.L928: .align 2 -.L916: +.L927: .word .LANCHOR2-2656 .word .LC79 .fnend @@ -5804,56 +5844,54 @@ FtlGcMarkBadPhyBlk: .save {r3, r4, r5, r6, r7, lr} mov r5, r0 bl P2V_block_in_plane - ldr r6, .L928 + ldr r6, .L939 mov r2, r5 sub r7, r6, #2656 - ldrh r1, [r7, #-6] + ldrh r1, [r7, #-2] mov r4, r0 - ldr r0, .L928+4 + ldr r0, .L939+4 bl printk mov r0, r4 bl FtlGcRefreshBlock - ldr r3, .L928+8 - ldr r3, [r3, #2308] + ldr r3, .L939+8 + ldr r3, [r3, #2244] cmp r3, #0 - beq .L919 - ldr r2, [r6, #-3612] + mov r3, r7 + beq .L930 + ldr r1, [r6, #-3608] mov r4, r4, asl #1 - ldrh r3, [r2, r4] - cmp r3, #39 - subhi r3, r3, #40 - strhih r3, [r2, r4] @ movhi -.L919: - ldrh r3, [r7, #-6] - mov r2, #0 - ldr r0, .L928+12 -.L920: - uxth r1, r2 - cmp r1, r3 - bcs .L927 - add r2, r2, #1 - add r1, r0, r2, asl #1 - ldrh r1, [r1, #-2] - cmp r1, r5 - bne .L920 - b .L921 -.L927: - cmp r3, #15 - addls r2, r3, #1 - strlsh r2, [r7, #-6] @ movhi - ldrls r2, .L928+12 - movls r3, r3, asl #1 - strlsh r5, [r2, r3] @ movhi -.L921: + ldrh r2, [r1, r4] + cmp r2, #39 + subhi r2, r2, #40 + strhih r2, [r1, r4] @ movhi +.L930: + ldrh r2, [r3, #-2] + mov r1, #0 +.L931: + uxth r0, r1 + cmp r0, r2 + bcs .L938 + add r1, r1, #1 + add r0, r3, r1, asl #1 + ldrh r0, [r0, #-2] + cmp r0, r5 + bne .L931 + b .L932 +.L938: + cmp r2, #15 + addls r1, r2, #1 + movls r2, r2, asl #1 + strlsh r1, [r3, #-2] @ movhi + strlsh r5, [r3, r2] @ movhi +.L932: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L929: +.L940: .align 2 -.L928: +.L939: .word .LANCHOR2 .word .LC80 .word .LANCHOR0 - .word .LANCHOR2-2660 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 2 @@ -5863,38 +5901,38 @@ FtlGcReFreshBadBlk: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L949 + ldrh r2, [r3, #-2] + cmp r2, #0 + beq .L948 + ldrh r0, [r3, #-10] + movw r1, #65535 + cmp r0, r1 + bne .L948 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L937 - ldrh r3, [r4, #-6] - cmp r3, #0 - beq .L931 + add r4, r3, #48 ldrh r1, [r4, #-14] - movw r2, #65535 cmp r1, r2 - bne .L931 - add r4, r4, #32 - ldrh r2, [r4, #-2] - cmp r2, r3 - ldr r2, .L937+4 - movcs r3, #0 - strcsh r3, [r4, #-2] @ movhi - ldrh r3, [r4, #-2] - mov r3, r3, asl #1 - ldrh r0, [r2, r3] + movcs r2, #0 + strcsh r2, [r4, #-14] @ movhi + ldrh r2, [r4, #-14] + mov r2, r2, asl #1 + ldrh r0, [r3, r2] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh r3, [r4, #-2] - add r3, r3, #1 - strh r3, [r4, #-2] @ movhi -.L931: + ldrh r3, [r4, #-14] mov r0, #0 + add r3, r3, #1 + strh r3, [r4, #-14] @ movhi ldmfd sp!, {r4, pc} -.L938: +.L948: + mov r0, #0 + bx lr +.L950: .align 2 -.L937: +.L949: .word .LANCHOR2-2656 - .word .LANCHOR2-2660 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk .align 2 @@ -5919,30 +5957,30 @@ BuildFlashLsbPageTable: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r1 - bne .L941 - ldr r3, .L976 -.L942: + bne .L953 + ldr r3, .L996 +.L954: mov r2, r0, asl #1 strh r0, [r2, r3] @ movhi add r0, r0, #1 - cmp r0, #256 - bne .L942 -.L946: + cmp r0, #512 + bne .L954 +.L958: mov r1, #255 - ldr r0, .L976+4 + ldr r0, .L996+4 mov r2, #2048 uxth r4, r4 bl ftl_memset mov r3, #0 - ldr r1, .L976 - ldr r0, .L976+4 - b .L943 -.L941: + ldr r1, .L996 + ldr r0, .L996+4 + b .L955 +.L953: cmp r0, #1 - bne .L944 - ldr ip, .L976 + bne .L956 + ldr ip, .L996 mov r3, #0 -.L945: +.L957: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #3 @@ -5955,32 +5993,32 @@ BuildFlashLsbPageTable: cmp r0, #0 rsb r1, r1, r2, asl #1 movne r2, r1 - cmp r3, #256 + cmp r3, #512 strh r2, [lr, ip] @ movhi - bne .L945 - b .L946 -.L944: + bne .L957 + b .L958 +.L956: cmp r0, #2 - bne .L947 - ldr r1, .L976 + bne .L959 + ldr r1, .L996 mov r3, #0 -.L948: +.L960: uxth r2, r3 mov r0, r3, asl #1 cmp r2, #1 add r3, r3, #1 mov ip, r2, asl #1 subhi r2, ip, #1 - cmp r3, #256 + cmp r3, #512 strh r2, [r0, r1] @ movhi - bne .L948 - b .L946 -.L947: + bne .L960 + b .L958 +.L959: cmp r0, #3 - bne .L949 - ldr ip, .L976 + bne .L961 + ldr ip, .L996 mov r3, #0 -.L950: +.L962: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #5 @@ -5993,30 +6031,30 @@ BuildFlashLsbPageTable: cmp r0, #0 rsb r1, r1, r2, asl #1 movne r2, r1 - cmp r3, #256 + cmp r3, #512 strh r2, [lr, ip] @ movhi - bne .L950 - b .L946 -.L949: + bne .L962 + b .L958 +.L961: cmp r0, #4 mov r3, #0 - bne .L951 - ldr r2, .L976+8 - strh r3, [r2, #144] @ movhi - mov r3, #1 - strh r0, [r2, #152] @ movhi - strh r3, [r2, #146] @ movhi - mov r3, #2 + bne .L963 + ldr r2, .L996+8 strh r3, [r2, #148] @ movhi - mov r3, #3 + mov r3, #1 + strh r0, [r2, #156] @ movhi strh r3, [r2, #150] @ movhi - mov r3, #5 + mov r3, #2 + strh r3, [r2, #152] @ movhi + mov r3, #3 strh r3, [r2, #154] @ movhi + mov r3, #5 + strh r3, [r2, #158] @ movhi mov r3, #7 - strh r3, [r2, #156] @ movhi + strh r3, [r2, #160] @ movhi mov r3, #8 - strh r3, [r2, #158]! @ movhi -.L952: + strh r3, [r2, #162]! @ movhi +.L964: tst r3, #1 movne r1, #7 moveq r1, #6 @@ -6024,32 +6062,32 @@ BuildFlashLsbPageTable: add r3, r3, #1 strh r1, [r2, #2]! @ movhi uxth r3, r3 - cmp r3, #256 - bne .L952 - b .L946 -.L951: + cmp r3, #512 + bne .L964 + b .L958 +.L963: cmp r0, #5 - bne .L953 - ldr r2, .L976 -.L954: + bne .L965 + ldr r2, .L996 +.L966: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #16 - bne .L954 - ldr r2, .L976+12 -.L955: + bne .L966 + ldr r2, .L996+12 +.L967: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 - cmp r3, #496 - bne .L955 - b .L946 -.L953: + cmp r3, #1008 + bne .L967 + b .L958 +.L965: cmp r0, #6 - bne .L956 - ldr r1, .L976+16 -.L957: + bne .L968 + ldr r1, .L996+16 +.L969: cmp r3, #5 add r2, r3, r3, asl #1 movls r0, #0 @@ -6063,67 +6101,113 @@ BuildFlashLsbPageTable: add r3, r3, #1 strh r2, [r1, #2]! @ movhi uxth r3, r3 - cmp r3, #256 - bne .L957 - b .L946 -.L956: + cmp r3, #512 + bne .L969 + b .L958 +.L968: cmp r0, #9 - bne .L958 - ldr r2, .L976+8 - movw r1, #509 - strh r3, [r2, #144] @ movhi + bne .L970 + ldr r2, .L996+8 + movw r1, #1021 + strh r3, [r2, #148] @ movhi mov r3, #1 - strh r3, [r2, #146] @ movhi + strh r3, [r2, #150] @ movhi mov r3, #2 - strh r3, [r2, #148]! @ movhi + strh r3, [r2, #152]! @ movhi mov r3, #3 -.L959: +.L971: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L959 - b .L946 -.L958: + bne .L971 + b .L958 +.L970: cmp r0, #10 - bne .L946 - ldr r2, .L976 -.L960: + bne .L972 + ldr r2, .L996 +.L973: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #63 - bne .L960 - ldr r2, .L976+20 + bne .L973 + ldr r2, .L996+20 movw r1, #961 -.L961: +.L974: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L961 - b .L946 -.L943: + bne .L974 + b .L958 +.L972: + cmp r0, #11 + bne .L975 + ldr r2, .L996 + mov r3, #0 +.L976: + mov r1, r3, asl #1 + strh r3, [r1, r2] @ movhi + add r3, r3, #1 + cmp r3, #8 + bne .L976 + ldr r1, .L996+24 +.L977: + tst r3, #1 + movne r2, #7 + moveq r2, #6 + rsb r2, r2, r3, asl #1 + add r3, r3, #1 + strh r2, [r1, #2]! @ movhi + uxth r3, r3 + cmp r3, #512 + bne .L977 + b .L958 +.L975: + cmp r0, #12 + bne .L958 + ldr r3, .L996+8 + mov r2, #0 + strh r2, [r3, #148] @ movhi + mov r2, #1 + strh r2, [r3, #150] @ movhi + mov r2, #2 + strh r2, [r3, #152] @ movhi + mov r2, #3 + strh r2, [r3, #154]! @ movhi + mov r2, #4 +.L978: + sub r1, r2, #1 + add r1, r1, r2, lsr #1 + add r2, r2, #1 + strh r1, [r3, #2]! @ movhi + uxth r2, r2 + cmp r2, #512 + bne .L978 + b .L958 +.L955: uxth r2, r3 cmp r2, r4 - bcs .L975 + bcs .L995 mov r2, r3, asl #1 add r3, r3, #1 ldrh r2, [r2, r1] mov ip, r2, asl #1 strh r2, [r0, ip] @ movhi - b .L943 -.L975: + b .L955 +.L995: ldmfd sp!, {r4, pc} -.L977: +.L997: .align 2 -.L976: - .word .LANCHOR0+144 - .word .LANCHOR2-2624 +.L996: + .word .LANCHOR0+148 + .word .LANCHOR2-2620 .word .LANCHOR0 - .word .LANCHOR0+174 - .word .LANCHOR0+142 - .word .LANCHOR0+268 + .word .LANCHOR0+178 + .word .LANCHOR0+146 + .word .LANCHOR0+272 + .word .LANCHOR0+162 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 2 @@ -6136,104 +6220,105 @@ FlashDieInfoInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, #0 - ldr r3, .L993 - ldr r4, .L993+4 - ldr r9, .L993+8 + ldr r3, .L1013 + ldr r5, .L1013+4 + ldr r9, .L1013+8 ldrh r0, [r3, #10] - strb r6, [r4, #2229] - mov r7, r4 - strb r6, [r9, #-576] + strb r6, [r5, #2230] + mov r7, r5 + strb r6, [r9, #-572] bl FlashBlockAlignInit mov r1, r6 mov r2, #8 - ldr r0, .L993+12 + ldr r0, .L1013+12 bl ftl_memset mov r1, r6 mov r2, #32 - add r0, r4, #1168 + ldr r0, .L1013+16 bl ftl_memset - ldr r0, .L993+16 + ldr r0, .L1013+20 mov r1, r6 mov r2, #128 bl ftl_memset - ldr r5, [r4, #1204] - ldr fp, .L993+20 - add r8, r5, #1 -.L980: + ldr r4, [r5, #44] + ldr fp, .L1013+24 + add r8, r4, #1 +.L1000: mov r0, r8 add r1, fp, r6, asl #3 - ldrb r2, [r5] @ zero_extendqisi2 + ldrb r2, [r4] @ zero_extendqisi2 bl FlashMemCmp8 - ldr r10, .L993+20 + ldr r10, .L1013+24 cmp r0, #0 - bne .L979 - ldrb r3, [r7, #2229] @ zero_extendqisi2 + bne .L999 + ldrb r3, [r7, #2230] @ zero_extendqisi2 add r2, r7, r3, asl #2 - str r0, [r2, #1168] + str r0, [r2, #1172] add r2, r3, #1 add r3, r7, r3 - strb r2, [r7, #2229] + strb r2, [r7, #2230] strb r6, [r3, #2232] -.L979: +.L999: add r6, r6, #1 cmp r6, #4 - bne .L980 - ldrb r3, [r4, #2229] @ zero_extendqisi2 - ldr r7, .L993+4 - strb r3, [r9, #-576] - ldrb r3, [r5, #8] @ zero_extendqisi2 + bne .L1000 + ldrb r3, [r5, #2230] @ zero_extendqisi2 + ldr r7, .L1013+4 + strb r3, [r9, #-572] + ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L981 -.L985: - ldrb r3, [r5, #13] @ zero_extendqisi2 - ldrb r2, [r4, #2229] @ zero_extendqisi2 + beq .L1001 +.L1005: + ldrb r3, [r4, #13] @ zero_extendqisi2 + ldrb r2, [r5, #2230] @ zero_extendqisi2 smulbb r2, r2, r3 - ldrh r3, [r5, #14] + ldrh r3, [r4, #14] smulbb r3, r2, r3 - ldr r2, .L993+24 + ldr r2, .L1013+28 strh r3, [r2, #-2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L981: +.L1001: ldr r9, [r7, #4] mov r6, #0 -.L984: +.L1004: mov r0, r8 add r1, r10, r6, asl #3 - ldrb r2, [r5] @ zero_extendqisi2 + ldrb r2, [r4] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L982 - ldrb r1, [r5, #13] @ zero_extendqisi2 - ldrh r3, [r5, #14] - ldrb r2, [r7, #2229] @ zero_extendqisi2 + bne .L1002 + ldrb r1, [r4, #13] @ zero_extendqisi2 + ldrh r3, [r4, #14] + ldrb r2, [r7, #2230] @ zero_extendqisi2 mul r1, r9, r1 and r3, r3, #65280 add r0, r7, r2, asl #2 mul r3, r3, r1 - str r3, [r0, #1168] - ldrb r1, [r5, #23] @ zero_extendqisi2 + str r3, [r0, #1172] + ldrb r1, [r4, #23] @ zero_extendqisi2 cmp r1, #0 movne r3, r3, asl #1 - strne r3, [r0, #1168] + strne r3, [r0, #1172] add r3, r2, #1 - add r2, r4, r2 - strb r3, [r4, #2229] + add r2, r5, r2 + strb r3, [r5, #2230] strb r6, [r2, #2232] -.L982: +.L1002: add r6, r6, #1 cmp r6, #4 - bne .L984 - b .L985 -.L994: + bne .L1004 + b .L1005 +.L1014: .align 2 -.L993: +.L1013: .word .LANCHOR1+472 .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2232 + .word .LANCHOR0+1172 .word .LANCHOR0+2100 .word .LANCHOR0+2068 - .word .LANCHOR2-572 + .word .LANCHOR2-568 .fnend .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 @@ -6249,43 +6334,43 @@ ftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r2, .L1000 - ldr r0, .L1000+4 + ldr r2, .L1020 + ldr r0, .L1020+4 mov ip, #1 - ldr r3, [r2, #1204] + ldr r3, [r2, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 ldr r3, [r2, #4] smulbb r3, r1, r3 strh r3, [r4, #4] @ unaligned - ldrb r3, [r2, #2304] @ zero_extendqisi2 + ldrb r3, [r2, #2312] @ zero_extendqisi2 strb r3, [r4, #7] - ldr r3, [r2, #2424] + ldr r3, [r2, #2428] str r3, [r4] @ unaligned - ldr r3, [r2, #1204] + ldr r3, [r2, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 strb r1, [r4, #6] mov r1, #32 strb r1, [r4, #8] - ldrb r1, [r2, #2229] @ zero_extendqisi2 + ldrb r1, [r2, #2230] @ zero_extendqisi2 ldrb r3, [r3, #7] @ zero_extendqisi2 strb r3, [r4, #9] mov r3, #0 strb r3, [r4, #10] -.L996: +.L1016: uxtb r2, r3 cmp r2, r1 - bcs .L999 + bcs .L1019 ldrb lr, [r3, r0] @ zero_extendqisi2 add r3, r3, #1 ldrb r2, [r4, #10] @ zero_extendqisi2 orr r2, r2, ip, asl lr strb r2, [r4, #10] - b .L996 -.L999: + b .L1016 +.L1019: ldmfd sp!, {r4, pc} -.L1001: +.L1021: .align 2 -.L1000: +.L1020: .word .LANCHOR0 .word .LANCHOR0+2232 .fnend @@ -6297,394 +6382,392 @@ FtlMemInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, #0 - ldr r4, .L1107 + ldr r4, .L1127 mvn r2, #0 - ldr r5, .L1107+4 + ldr r5, .L1127+4 mov r1, #32 - sub r3, r4, #572 + sub r3, r4, #568 mov r0, #1024 - str r6, [r4, #-568] - mov r8, #12 + str r6, [r4, #-564] + add r7, r5, #2320 strh r6, [r3] @ movhi movw r3, #65535 - str r3, [r4, #-560] + str r3, [r4, #-556] sub r3, r4, #2656 - str r6, [r4, #-3240] - movw r10, #2316 - strh r2, [r3, #-14] @ movhi - mov r7, #36 - strh r2, [r3, #-12] @ movhi + str r6, [r4, #-3236] + mov r8, #36 strh r2, [r3, #-10] @ movhi strh r2, [r3, #-8] @ movhi + strh r2, [r3, #-6] @ movhi + strh r2, [r3, #-4] @ movhi sub r2, r4, #2720 - strh r6, [r3, #-6] @ movhi - sub r3, r4, #548 - strh r1, [r2, #-4] @ movhi - mov r1, #128 - strh r6, [r3] @ movhi - sub r3, r4, #2624 - strh r1, [r2, #-2] @ movhi - sub r2, r4, #2704 strh r6, [r3, #-2] @ movhi - movw r3, #2390 - strh r6, [r2, #-12] @ movhi - str r6, [r4, #-3336] + sub r3, r4, #544 + strh r1, [r2] @ movhi + sub r2, r4, #2704 + strh r6, [r3] @ movhi + sub r3, r4, #2608 + strh r6, [r2, #-8] @ movhi + mov r1, #128 + strh r6, [r3, #-14] @ movhi + movw r3, #2394 + strh r1, [r2, #-14] @ movhi str r6, [r4, #-3332] - str r6, [r4, #-3348] - str r6, [r4, #-3360] - str r6, [r4, #-3364] - str r6, [r4, #-3356] - str r6, [r4, #-3352] - str r6, [r4, #-3368] str r6, [r4, #-3328] + str r6, [r4, #-3344] + str r6, [r4, #-3356] + str r6, [r4, #-3360] + str r6, [r4, #-3352] + str r6, [r4, #-3348] + str r6, [r4, #-3364] str r6, [r4, #-3324] - str r6, [r4, #-3608] - str r6, [r4, #-3316] + str r6, [r4, #-3320] + str r6, [r4, #-3604] str r6, [r4, #-3312] - str r6, [r4, #-564] - str r6, [r4, #-2712] - str r6, [r4, #-556] - str r6, [r4, #-2720] + str r6, [r4, #-3308] + str r6, [r4, #-560] + str r6, [r4, #-2708] str r6, [r4, #-552] + str r6, [r4, #-2716] + str r6, [r4, #-548] ldrh r1, [r5, r3] bl __aeabi_idiv - movw r3, #2316 - ldrh r3, [r5, r3] - str r6, [r5, #2436] - movw r6, #2388 - mov r3, r3, asl #2 - cmp r0, r3 - str r0, [r4, #-544] + ldrh r10, [r7] + str r6, [r5, #2440] + movw r6, #2392 + mov r9, r10, asl #2 + cmp r0, r9 + str r0, [r4, #-540] ldrh r0, [r5, r6] - strhi r3, [r4, #-544] + strhi r9, [r4, #-540] + mov r9, #12 mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-2684] + str r0, [r4, #-2680] ldrh r0, [r5, r6] + mul r0, r9, r0 + bl ftl_malloc + ldrh r6, [r7] + mul r6, r8, r6 + mov r10, r6, asl #3 + str r0, [r4, #-2672] + mov r0, r10 + bl ftl_malloc + str r0, [r4, #-536] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #-532] + mov r0, r10 + bl ftl_malloc + movw r10, #2398 + str r0, [r4, #-528] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #-3612] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #-2688] + ldr r0, [r4, #-540] mul r0, r8, r0 bl ftl_malloc ldrh r6, [r5, r10] - mul r6, r7, r6 - mov r9, r6, asl #3 - str r0, [r4, #-2676] - mov r0, r9 - bl ftl_malloc - str r0, [r4, #-540] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #-536] - mov r0, r9 - bl ftl_malloc - movw r9, #2394 - str r0, [r4, #-532] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #-3616] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #-2692] - ldr r0, [r4, #-544] - mul r0, r7, r0 - bl ftl_malloc - ldrh r6, [r5, r9] - ldrh r3, [r5, r10] - movw r7, #2396 + ldrh r3, [r7] + movw r8, #2330 mov r3, r3, asl #1 add r3, r3, #1 - str r3, [r4, #-2688] - str r0, [r5, #2440] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #-528] + str r3, [r4, #-2684] + str r0, [r5, #2444] mov r0, r6 bl ftl_malloc str r0, [r4, #-524] mov r0, r6 bl ftl_malloc str r0, [r4, #-520] - ldr r0, [r4, #-2688] - mul r0, r0, r6 - bl ftl_malloc - str r0, [r4, #-2700] - ldr r0, [r4, #-544] - mul r0, r0, r6 + mov r0, r6 bl ftl_malloc str r0, [r4, #-516] - mov r0, r6 + ldr r0, [r4, #-2684] + mul r0, r0, r6 + bl ftl_malloc + str r0, [r4, #-2696] + ldr r0, [r4, #-540] + mul r0, r0, r6 bl ftl_malloc str r0, [r4, #-512] mov r0, r6 bl ftl_malloc str r0, [r4, #-508] - ldr r0, [r4, #-2688] - mul r0, r8, r0 - bl ftl_malloc - ldrh r3, [r5, r10] - ldrh r6, [r5, r7] - mul r6, r3, r6 - str r0, [r4, #-2704] mov r0, r6 bl ftl_malloc + ldr r6, .L1127+8 str r0, [r4, #-504] - mov r0, r6, asl #3 + ldr r0, [r4, #-2684] + mul r0, r9, r0 + bl ftl_malloc + ldrh r3, [r6] + ldrh r7, [r7] + mul r7, r7, r3 + str r0, [r4, #-2700] + mov r0, r7 bl ftl_malloc - ldrh r3, [r5, r7] - ldr r6, .L1107+8 str r0, [r4, #-500] - ldr r0, [r4, #-2688] - mul r0, r0, r3 - bl ftl_malloc - ldrh r3, [r5, r7] - movw r7, #2326 - str r0, [r4, #-2696] - ldr r0, [r4, #-544] - mul r0, r0, r3 + mov r0, r7, asl #3 bl ftl_malloc + ldrh r3, [r6] + ldr r7, .L1127+12 str r0, [r4, #-496] - ldrh r0, [r5, r7] + ldr r0, [r4, #-2684] + mul r0, r0, r3 + bl ftl_malloc + ldrh r3, [r6], #80 + str r0, [r4, #-2692] + ldr r0, [r4, #-540] + mul r0, r0, r3 + bl ftl_malloc + str r0, [r4, #-492] + ldrh r0, [r5, r8] mov r0, r0, asl #1 uxth r0, r0 - strh r0, [r6] @ movhi + strh r0, [r7] @ movhi bl ftl_malloc - str r0, [r4, #-488] - ldrh r0, [r6] + str r0, [r4, #-484] + ldrh r0, [r7] add r0, r0, #544 add r0, r0, #3 mov r0, r0, lsr #9 - strh r0, [r6] @ movhi + strh r0, [r7] @ movhi mov r0, r0, asl #9 bl ftl_malloc - ldrh r10, [r5, r7] - mov r10, r10, asl #1 - str r0, [r4, #-484] - add r0, r0, #32 - str r0, [r4, #-3612] - mov r0, r10 - bl ftl_malloc + ldrh fp, [r5, r8] + mov fp, fp, asl #1 str r0, [r4, #-480] - mov r0, r10 - bl ftl_malloc - ldr r10, [r5, #2412] - mov r10, r10, asl #1 - str r0, [r4, #-3548] - mov r0, r10 + add r0, r0, #32 + str r0, [r4, #-3608] + mov r0, fp bl ftl_malloc str r0, [r4, #-476] - mov r0, r10 + mov r0, fp + bl ftl_malloc + ldr fp, [r5, #2416] + mov fp, fp, asl #1 + str r0, [r4, #-3544] + mov r0, fp bl ftl_malloc - movw r10, #2404 str r0, [r4, #-472] - ldrh r0, [r5, r7] + mov r0, fp + bl ftl_malloc + movw fp, #2408 + str r0, [r4, #-468] + ldrh r0, [r5, r8] mov r0, r0, lsr #3 add r0, r0, #4 bl ftl_malloc - str r0, [r4, #-3372] - ldrh r0, [r5, r10] + str r0, [r4, #-3368] + ldrh r0, [r5, fp] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r5, #2432] - ldrh r0, [r5, r10] + str r0, [r5, #2436] + ldrh r0, [r5, fp] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-468] - ldrh r0, [r5, r10] - movw r10, #2406 - mov r0, r0, asl #2 - bl ftl_malloc str r0, [r4, #-464] - ldrh r0, [r5, r10] + ldrh r0, [r5, fp] + movw fp, #2410 mov r0, r0, asl #2 bl ftl_malloc - ldrh r2, [r5, r10] + str r0, [r4, #-460] + ldrh r0, [r5, fp] + mov r0, r0, asl #2 + bl ftl_malloc + ldrh r2, [r5, fp] mov r1, #0 mov r2, r2, asl #2 - str r0, [r4, #-460] - bl ftl_memset - movw r3, #2420 - ldrh r10, [r5, r3] - mov r10, r10, asl #2 - mov r0, r10 - bl ftl_malloc str r0, [r4, #-456] - mov r0, r10 + bl ftl_memset + movw r3, #2424 + ldrh fp, [r5, r3] + mov fp, fp, asl #2 + mov r0, fp bl ftl_malloc - movw r10, #2422 str r0, [r4, #-452] - ldr r0, [r5, #2412] + mov r0, fp + bl ftl_malloc + movw fp, #2426 + str r0, [r4, #-448] + ldr r0, [r5, #2416] mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-448] - ldrh r0, [r5, r10] - mul r0, r8, r0 + str r0, [r4, #-444] + ldrh r0, [r5, fp] + mul r0, r9, r0 bl ftl_malloc - ldrh r3, [r5, r10] - str r0, [r4, #-3384] - ldrh r0, [r5, r9] + ldrh r3, [r5, fp] + str r0, [r4, #-3380] + ldrh r0, [r5, r10] mul r0, r0, r3 bl ftl_malloc - ldrh r3, [r5, r7] - movw r7, #2338 - str r0, [r4, #-444] + ldrh r3, [r5, r8] + movw r8, #2342 + str r0, [r4, #-440] mov r0, #6 mul r0, r0, r3 bl ftl_malloc - movw r3, #2382 + movw r3, #2386 ldrh r3, [r5, r3] add r3, r3, #31 mov r3, r3, asr #5 - strh r3, [r6, #52]! @ movhi - str r0, [r4, #-3556] - ldrh r0, [r5, r7] + strh r3, [r7, #52]! @ movhi + str r0, [r4, #-3552] + ldrh r0, [r5, r8] mul r0, r0, r3 mov r0, r0, asl #2 bl ftl_malloc - ldrh r2, [r6] - ldrh lr, [r5, r7] + ldrh r2, [r7] + ldrh ip, [r5, r8] mov r3, #1 - ldr ip, .L1107+12 mov r2, r2, asl #2 mov r1, r2 - str r0, [r5, #2476] -.L1004: - cmp r3, lr - bcs .L1105 - ldr r0, [r5, #2476] + str r0, [r5, #2480] +.L1024: + cmp r3, ip + bcs .L1125 + ldr r0, [r5, #2480] add r3, r3, #1 add r0, r0, r1 add r1, r1, r2 - str r0, [ip, #4]! - b .L1004 -.L1105: - ldr r2, .L1107+16 + str r0, [r6, #4]! + b .L1024 +.L1125: + ldr r2, .L1127+16 mov r1, #0 -.L1006: +.L1026: cmp r3, #8 addne r0, r2, r3, asl #2 addne r3, r3, #1 strne r1, [r0, #28] - bne .L1006 -.L1106: - ldr r2, [r4, #-476] - ldr r3, .L1107 + bne .L1026 +.L1126: + ldr r2, [r4, #-472] + ldr r3, .L1127 cmp r2, #0 - bne .L1008 -.L1010: - ldr r1, .L1107+20 - ldr r0, .L1107+24 + bne .L1028 +.L1030: + ldr r1, .L1127+20 + ldr r0, .L1127+24 bl printk mvn r0, #0 - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1008: - ldr r2, [r3, #-472] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-456] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-448] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-3384] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-444] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-3556] - cmp r2, #0 - beq .L1010 - ldr r2, [r5, #2476] - cmp r2, #0 - beq .L1010 - ldr r3, [r3, #-3548] - cmp r3, #0 - beq .L1010 - ldr r2, [r4, #-2684] - ldr r3, .L1107 - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-2676] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-540] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-532] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-3616] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-2692] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-536] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-528] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-524] - cmp r2, #0 - beq .L1010 - ldr r3, [r3, #-520] - cmp r3, #0 - beq .L1010 - ldr r2, [r4, #-2700] - ldr r3, .L1107 - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-512] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-508] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-2704] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-504] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-500] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-2696] - cmp r2, #0 - beq .L1010 - ldr r2, [r3, #-3612] - cmp r2, #0 - beq .L1010 - ldr r3, [r3, #-488] - cmp r3, #0 - beq .L1010 - ldr r3, .L1107+4 - ldr r3, [r3, #2432] - cmp r3, #0 - beq .L1010 - ldr r3, .L1107 + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1028: ldr r2, [r3, #-468] cmp r2, #0 - beq .L1010 + beq .L1030 + ldr r2, [r3, #-452] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-444] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-3380] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-440] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-3552] + cmp r2, #0 + beq .L1030 + ldr r2, [r5, #2480] + cmp r2, #0 + beq .L1030 + ldr r3, [r3, #-3544] + cmp r3, #0 + beq .L1030 + ldr r2, [r4, #-2680] + ldr r3, .L1127 + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-2672] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-536] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-528] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-3612] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-2688] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-532] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-524] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-520] + cmp r2, #0 + beq .L1030 + ldr r3, [r3, #-516] + cmp r3, #0 + beq .L1030 + ldr r2, [r4, #-2696] + ldr r3, .L1127 + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-508] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-504] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-2700] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-500] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-496] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-2692] + cmp r2, #0 + beq .L1030 + ldr r2, [r3, #-3608] + cmp r2, #0 + beq .L1030 + ldr r3, [r3, #-484] + cmp r3, #0 + beq .L1030 + ldr r3, .L1127+4 + ldr r3, [r3, #2436] + cmp r3, #0 + beq .L1030 + ldr r3, .L1127 ldr r2, [r3, #-464] cmp r2, #0 - beq .L1010 - ldr r3, [r3, #-460] + beq .L1030 + ldr r2, [r3, #-460] + cmp r2, #0 + beq .L1030 + ldr r3, [r3, #-456] cmp r3, #0 - beq .L1010 + beq .L1030 mov r0, #0 - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1108: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1128: .align 2 -.L1107: +.L1127: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-492 - .word .LANCHOR0+2476 - .word .LANCHOR0+2448 + .word .LANCHOR0+2400 + .word .LANCHOR2-488 + .word .LANCHOR0+2452 .word .LANCHOR3 .word .LC81 .fnend @@ -6696,7 +6779,7 @@ FtlBbt2Bitmap: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1115 + ldr r3, .L1135 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 @@ -6708,11 +6791,11 @@ FtlBbt2Bitmap: mov r2, r2, asl #2 bl ftl_memset add r3, r4, #1020 - ldr ip, .L1115+4 + ldr ip, .L1135+4 add r3, r3, #2 sub r1, r4, #2 mov r4, #1 -.L1111: +.L1131: ldrh r2, [r1, #2]! cmp r2, r6 ldmeqfd sp!, {r4, r5, r6, pc} @@ -6725,13 +6808,13 @@ FtlBbt2Bitmap: ldrh r2, [ip, #6] add r2, r2, #1 strh r2, [ip, #6] @ movhi - bne .L1111 + bne .L1131 ldmfd sp!, {r4, r5, r6, pc} -.L1116: +.L1136: .align 2 -.L1115: - .word .LANCHOR2-440 - .word .LANCHOR0+2448 +.L1135: + .word .LANCHOR2-436 + .word .LANCHOR0+2452 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap .align 2 @@ -6742,19 +6825,21 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1118 - mvn r3, #0 + ldr r0, .L1138 + movw r3, #2452 + mvn r1, #0 + add r2, r0, r3 + strh r1, [r0, r3] @ movhi + mov r3, #0 + add r0, r0, #2464 + strh r3, [r2, #6] @ movhi mov r1, #255 mov r2, #16 - add r0, r0, #12 - strh r3, [r0, #-12] @ movhi - mov r3, #0 - strh r3, [r0, #-6] @ movhi b ftl_memset -.L1119: +.L1139: .align 2 -.L1118: - .word .LANCHOR0+2448 +.L1138: + .word .LANCHOR0 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit .align 2 @@ -6764,26 +6849,24 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L1122 - movw r2, #2508 + ldr r3, .L1142 + mov r2, #2048 stmfd sp!, {r4, lr} .save {r4, lr} - add r3, r1, r2 mov r4, #0 - strh r0, [r1, r2] @ movhi - add r0, r3, #8 mov r1, r4 - mov r2, #2048 strh r4, [r3, #2] @ movhi strh r4, [r3, #4] @ movhi strh r4, [r3, #6] @ movhi + strh r0, [r3], #8 @ movhi + mov r0, r3 bl ftl_memset mov r0, r4 ldmfd sp!, {r4, pc} -.L1123: +.L1143: .align 2 -.L1122: - .word .LANCHOR0 +.L1142: + .word .LANCHOR0+2512 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit .align 2 @@ -6805,19 +6888,19 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r2, #0 -.L1125: +.L1145: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L1145 + bls .L1165 ldr r0, [r6, r3, asl #2] mov r1, #0 ubfx r0, r0, #10, #16 -.L1126: +.L1146: ldrh ip, [r4, #10] uxth r3, r1 cmp ip, r3 - bls .L1146 + bls .L1166 mov r3, r3, asl #1 add r1, r1, #1 ldrh ip, [r7, r3] @@ -6830,13 +6913,13 @@ ftl_free_no_use_map_blk: ldrneh ip, [r5, r3] addne ip, ip, #1 strneh ip, [r5, r3] @ movhi - b .L1126 -.L1146: + b .L1146 +.L1166: add r2, r2, #1 - b .L1125 -.L1145: - ldr r2, .L1148 - movw r3, #2386 + b .L1145 +.L1165: + ldr r2, .L1168 + movw r3, #2390 mov r8, #0 mov r1, r8 mov fp, r8 @@ -6845,36 +6928,36 @@ ftl_free_no_use_map_blk: mov r3, r3, asl #1 strh r2, [r5, r3] @ movhi ldrh r9, [r5] -.L1130: +.L1150: ldrh r3, [r4, #10] uxth r6, r8 cmp r3, r6 - bls .L1147 + bls .L1167 mov r2, r6, asl #1 ldrh r3, [r5, r2] cmp r9, r3 - bls .L1131 + bls .L1151 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 - bne .L1132 - b .L1133 -.L1131: + bne .L1152 + b .L1153 +.L1151: cmp r3, #0 - bne .L1133 + bne .L1153 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 movne r6, r1 - beq .L1133 - b .L1135 -.L1132: + beq .L1153 + b .L1155 +.L1152: cmp r3, #0 movne r1, r6 movne r9, r3 - bne .L1133 + bne .L1153 mov r9, r3 -.L1135: +.L1155: mov r1, #1 bl FtlFreeSysBlkQueueIn strh fp, [r10] @ movhi @@ -6882,15 +6965,15 @@ ftl_free_no_use_map_blk: mov r1, r6 sub r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1133: +.L1153: add r8, r8, #1 - b .L1130 -.L1147: + b .L1150 +.L1167: mov r0, r1 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1149: +.L1169: .align 2 -.L1148: +.L1168: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -6904,79 +6987,79 @@ FtlL2PDataInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r1, #0 - ldr r5, .L1155 + ldr r5, .L1175 mvn r6, #0 - ldr r4, .L1155+4 - ldr r2, [r5, #2412] - ldr r0, [r4, #-472] + ldr r4, .L1175+4 + ldr r2, [r5, #2416] + ldr r0, [r4, #-468] mov r2, r2, asl #1 bl ftl_memset - movw r3, #2394 - movw r2, #2422 + movw r3, #2398 + movw r2, #2426 ldrh r3, [r5, r3] ldrh r2, [r5, r2] mov r1, #255 - ldr r0, [r4, #-444] + ldr r0, [r4, #-440] mul r2, r2, r3 bl ftl_memset - ldr ip, .L1155+8 + ldr ip, .L1175+8 mov r1, #0 mov r3, r4 sub r7, ip, #28 mov r4, #12 mov r5, r1 -.L1151: +.L1171: ldrh r2, [ip] add lr, r1, #1 uxth r1, r1 - ldr r0, .L1155 + ldr r0, .L1175 cmp r2, r1 - bls .L1154 + bls .L1174 mul r0, r4, r1 - ldr r2, [r3, #-3384] + ldr r2, [r3, #-3380] add r8, r2, r0 str r5, [r8, #4] strh r6, [r2, r0] @ movhi - ldr r2, [r3, #-3384] + ldr r2, [r3, #-3380] add r0, r2, r0 ldrh r2, [r7] mul r2, r1, r2 - ldr r1, [r3, #-444] + ldr r1, [r3, #-440] bic r2, r2, #3 add r2, r1, r2 mov r1, lr str r2, [r0, #8] - b .L1151 -.L1154: - ldr r2, .L1155+12 + b .L1171 +.L1174: + ldr r2, .L1175+12 mvn r1, #0 strh r1, [r2, #2] @ movhi strh r1, [r2] @ movhi - ldr r1, [r0, #2412] + ldr r1, [r0, #2416] strh r1, [r2, #10] @ movhi - ldr r1, .L1155+16 + ldr r1, .L1175+16 strh r1, [r2, #4] @ movhi ldrh r1, [r2, #44] strh r1, [r2, #8] @ movhi - movw r1, #2420 + movw r1, #2424 ldrh r1, [r0, r1] strh r1, [r2, #6] @ movhi - ldr r2, [r3, #-476] - str r2, [r3, #-424] - ldr r2, [r3, #-448] - str r2, [r3, #-420] ldr r2, [r3, #-472] + str r2, [r3, #-420] + ldr r2, [r3, #-444] str r2, [r3, #-416] - ldr r2, [r3, #-456] + ldr r2, [r3, #-468] str r2, [r3, #-412] + ldr r2, [r3, #-452] + str r2, [r3, #-408] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1156: +.L1176: .align 2 -.L1155: +.L1175: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+2422 - .word .LANCHOR2-436 + .word .LANCHOR0+2426 + .word .LANCHOR2-432 .word -3902 .fnend .size FtlL2PDataInit, .-FtlL2PDataInit @@ -6990,52 +7073,50 @@ FtlVariablesInit: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mvn r3, #0 - ldr r5, .L1159 + ldr r5, .L1179 mov r4, #0 - ldr r6, .L1159+4 + ldr r6, .L1179+4 mov r1, r4 - sub r2, r5, #384 - movw r7, #2326 - str r3, [r5, #-372] + sub r2, r5, #380 + movw r7, #2330 + str r3, [r5, #-368] strh r3, [r2] @ movhi - movw r3, #2430 + movw r3, #2434 strh r4, [r6, r3] @ movhi - movw r3, #2404 + movw r3, #2408 ldrh r2, [r6, r3] - ldr r0, [r6, #2432] - str r4, [r5, #-388] + ldr r0, [r6, #2436] + str r4, [r5, #-384] mov r2, r2, asl #1 - str r4, [r5, #-380] str r4, [r5, #-376] - str r4, [r6, #2308] + str r4, [r5, #-372] + str r4, [r6, #2244] bl ftl_memset ldrh r2, [r6, r7] mov r1, r4 - ldr r0, [r5, #-3612] + ldr r0, [r5, #-3608] mov r2, r2, asl #1 bl ftl_memset ldrh r2, [r6, r7] mov r1, r4 - ldr r0, [r5, #-488] + ldr r0, [r5, #-484] mov r2, r2, asl #1 bl ftl_memset + mov r1, r4 sub r0, r5, #3600 - mov r1, r4 mov r2, #48 - sub r0, r0, #4 bl ftl_memset - sub r0, r5, #3232 mov r1, r4 mov r2, #512 - sub r0, r0, #4 + sub r0, r5, #3232 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1160: +.L1180: .align 2 -.L1159: +.L1179: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7049,43 +7130,43 @@ SupperBlkListInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r3, #2326 - ldr r7, .L1173 + movw r3, #2330 + ldr r10, .L1193 mov r2, #6 - ldr r6, .L1173+4 + ldr r6, .L1193+4 mov r1, #0 .pad #28 sub sp, sp, #28 - ldrh r3, [r7, r3] - ldr r0, [r6, #-3556] + mov r7, #0 + ldrh r3, [r10, r3] + mov r4, r7 + ldr r0, [r6, #-3552] + mov r8, r7 + mov r9, r7 mov r5, r6 - mov fp, r6 mul r2, r2, r3 bl ftl_memset - sub r2, r6, #3520 - mov r3, #0 + sub r3, r6, #3520 sub r1, r6, #3536 - strh r3, [r2, #-12] @ movhi - sub r2, r6, #572 - mov r4, r3 - mov r8, r3 - mov r9, r3 - str r3, [r6, #-3536] - str r3, [r6, #-3552] - str r3, [r6, #-3544] - strh r3, [r1, #-4] @ movhi - strh r3, [r2] @ movhi - str r7, [sp, #8] + mov fp, r6 + strh r7, [r3, #-8] @ movhi + sub r3, r6, #568 + str r7, [r6, #-3532] + str r7, [r6, #-3548] + str r7, [r6, #-3540] + strh r7, [r1] @ movhi + strh r7, [r3] @ movhi + str r10, [sp, #8] str r1, [sp, #12] -.L1162: - ldr r3, .L1173+8 +.L1182: + ldr r3, .L1193+8 uxth r7, r4 sxth r10, r7 ldrh r2, [r3] cmp r10, r2 - bge .L1169 + bge .L1189 sub r3, r3, #8 - ldr r2, .L1173+12 + ldr r2, .L1193+12 mov ip, r7 ldrh r3, [r3] str r3, [sp] @@ -7093,16 +7174,16 @@ SupperBlkListInit: mov r2, #0 mov r6, r2 str r3, [sp, #4] -.L1170: +.L1190: ldr r3, [sp] sxth r1, r2 cmp r1, r3 - bge .L1172 + bge .L1192 ldr r3, [sp, #8] str r2, [sp, #20] add r1, r3, r1 str ip, [sp, #16] - ldrb r0, [r1, #2344] @ zero_extendqisi2 + ldrb r0, [r1, #2348] @ zero_extendqisi2 mov r1, ip bl V2P_block bl FtlBbmIsBadBlock @@ -7113,70 +7194,70 @@ SupperBlkListInit: add r2, r2, #1 addeq r6, r3, r6 uxtheq r6, r6 - b .L1170 -.L1172: + b .L1190 +.L1192: cmp r6, #0 - beq .L1165 + beq .L1185 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L1166 -.L1165: + b .L1186 +.L1185: sxth r7, r7 - ldr r2, [r5, #-3548] + ldr r2, [r5, #-3544] mvn r1, #0 mov r7, r7, asl #1 strh r1, [r2, r7] @ movhi -.L1166: +.L1186: mov r1, r10, asl #1 - ldr r2, [r5, #-3556] + ldr r2, [r5, #-3552] add r0, r1, r10 add r2, r2, r0, asl #1 strh r6, [r2, #4] @ movhi - ldr r2, .L1173+16 + ldr r2, .L1193+16 ldrh r0, [r2] cmp r10, r0 - beq .L1167 + beq .L1187 ldrh r0, [r2, #48] cmp r10, r0 - beq .L1167 + beq .L1187 ldrh r2, [r2, #96] cmp r10, r2 - beq .L1167 - ldr r3, [fp, #-3548] + beq .L1187 + ldr r3, [fp, #-3544] uxth r0, r4 ldrh r3, [r3, r1] cmp r3, #0 - bne .L1168 + bne .L1188 add r8, r8, #1 uxth r8, r8 bl INSERT_FREE_LIST - b .L1167 -.L1168: + b .L1187 +.L1188: add r9, r9, #1 uxth r9, r9 bl INSERT_DATA_LIST -.L1167: +.L1187: add r4, r4, #1 - b .L1162 -.L1169: + b .L1182 +.L1189: ldr r3, [sp, #12] mov r0, #0 - strh r9, [r3, #-4] @ movhi - ldr r3, .L1173+20 - strh r8, [r3, #-12] @ movhi + strh r9, [r3] @ movhi + ldr r3, .L1193+20 + strh r8, [r3, #-8] @ movhi add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1174: +.L1194: .align 2 -.L1173: +.L1193: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+2324 - .word .LANCHOR0+2384 - .word .LANCHOR2-3528 + .word .LANCHOR0+2328 + .word .LANCHOR0+2388 + .word .LANCHOR2-3524 .word .LANCHOR2-3520 .fnend .size SupperBlkListInit, .-SupperBlkListInit @@ -7189,29 +7270,30 @@ FtlGcPageVarInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - movw r5, #2388 - ldr r4, .L1177 - mov r2, #0 - ldr r6, .L1177+4 + mov r3, #0 + ldr r4, .L1197 + movw r5, #2392 + ldr r6, .L1197+4 mov r1, #255 - sub r3, r4, #2672 - ldr r0, [r4, #-2684] - strh r2, [r3, #-8] @ movhi - strh r2, [r3] @ movhi + sub r2, r4, #2672 + ldr r0, [r4, #-2680] + strh r3, [r2, #-4] @ movhi + sub r2, r4, #2656 + strh r3, [r2, #-12] @ movhi ldrh r2, [r6, r5] mov r2, r2, asl #1 bl ftl_memset ldrh r3, [r6, r5] mov r2, #12 - ldr r0, [r4, #-2676] + ldr r0, [r4, #-2672] mov r1, #255 mul r2, r2, r3 bl ftl_memset ldmfd sp!, {r4, r5, r6, lr} b FtlGcBufInit -.L1178: +.L1198: .align 2 -.L1177: +.L1197: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7237,14 +7319,14 @@ FlashReadIdbData: stmfd sp!, {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L1182 + ldr r1, .L1202 bl ftl_memcpy mov r0, #0 ldmfd sp!, {r3, pc} -.L1183: +.L1203: .align 2 -.L1182: - .word .LANCHOR2-368 +.L1202: + .word .LANCHOR2-364 .fnend .size FlashReadIdbData, .-FlashReadIdbData .align 2 @@ -7257,43 +7339,43 @@ FlashLoadPhyInfoInRam: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r4, #0 - ldr r8, .L1197 -.L1188: + ldr r8, .L1217 +.L1208: mov r7, r4, asl #5 - ldr r1, .L1197+4 + ldr r1, .L1217+4 add r0, r7, #1 ldrb r2, [r8, r4, asl #5] @ zero_extendqisi2 add r0, r8, r0 - ldr r6, .L1197+8 + ldr r6, .L1217+8 bl FlashMemCmp8 add r9, r6, #508 subs r5, r0, #0 - bne .L1185 + bne .L1205 adds r9, r9, r7 - beq .L1191 + beq .L1211 add r4, r6, r7 mov r3, r5 - ldr r1, .L1197+12 + ldr r1, .L1217+12 ldrb r2, [r4, #530] @ zero_extendqisi2 - b .L1190 -.L1185: + b .L1210 +.L1205: add r4, r4, #1 - cmp r4, #83 - bne .L1188 - b .L1191 -.L1196: + cmp r4, #86 + bne .L1208 + b .L1211 +.L1216: add r3, r3, #1 cmp r3, #4 - beq .L1189 -.L1190: + beq .L1209 +.L1210: ldrb r0, [r1, r3, asl #5] @ zero_extendqisi2 cmp r0, r2 - bne .L1196 -.L1189: - ldr r4, .L1197+16 + bne .L1216 +.L1209: + ldr r4, .L1217+16 mov r2, #32 - ldr r1, .L1197+12 - ldr r0, .L1197+20 + ldr r1, .L1217+12 + ldr r0, .L1217+20 add r1, r1, r3, asl #5 bl ftl_memcpy mov r0, r4 @@ -7302,21 +7384,21 @@ FlashLoadPhyInfoInRam: bl ftl_memcpy ldrh r0, [r4, #10] bl FlashBlockAlignInit - b .L1186 -.L1191: + b .L1206 +.L1211: mvn r5, #0 -.L1186: +.L1206: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1198: +.L1218: .align 2 -.L1197: +.L1217: .word .LANCHOR1+508 .word .LANCHOR0+2068 .word .LANCHOR1 - .word .LANCHOR1+3164 + .word .LANCHOR1+3260 .word .LANCHOR1+472 - .word .LANCHOR0+44 + .word .LANCHOR0+48 .fnend .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam .align 2 @@ -7334,14 +7416,14 @@ NandcCopy1KB: ldr r5, [sp, #16] add r6, r0, #512 add r2, r2, r4, asl #9 - bne .L1200 + bne .L1220 cmp r3, #0 - beq .L1201 + beq .L1221 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L1201: +.L1221: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} ldrb r3, [r5, #2] @ zero_extendqisi2 @@ -7356,14 +7438,14 @@ NandcCopy1KB: orr r3, r3, r2, asl #24 str r3, [r6, r4, asl #4] ldmfd sp!, {r4, r5, r6, pc} -.L1200: +.L1220: cmp r3, #0 - beq .L1204 + beq .L1224 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L1204: +.L1224: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} mov r4, r4, lsr #1 @@ -7388,13 +7470,13 @@ ftl_memcpy32: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mov r3, #0 -.L1217: +.L1237: cmp r3, r2 ldrne ip, [r1, r3, asl #2] strne ip, [r0, r3, asl #2] addne r3, r3, #1 - bne .L1217 -.L1219: + bne .L1237 +.L1239: bx lr .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -7417,12 +7499,12 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1222 + ldr r3, .L1242 ldr r0, [r3] b jiffies_to_msecs -.L1223: +.L1243: .align 2 -.L1222: +.L1242: .word jiffies .fnend .size timer_get_time, .-timer_get_time @@ -7433,13 +7515,13 @@ FlashSramLoadStore: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L1228 + ldr ip, .L1248 cmp r2, #0 moveq r2, r3 - ldr ip, [ip, #1680] + ldr ip, [ip, #1684] add ip, ip, #4096 add r1, ip, r1 - beq .L1227 + beq .L1247 str lr, [sp, #-4]! .save {lr} mov lr, r0 @@ -7447,11 +7529,11 @@ FlashSramLoadStore: mov r1, lr ldr lr, [sp], #4 mov r2, r3 -.L1227: +.L1247: b ftl_memcpy -.L1229: +.L1249: .align 2 -.L1228: +.L1248: .word .LANCHOR2 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore @@ -7496,12 +7578,12 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1234 - ldr r0, [r3, #2424] + ldr r3, .L1254 + ldr r0, [r3, #2428] bx lr -.L1235: +.L1255: .align 2 -.L1234: +.L1254: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -7554,47 +7636,47 @@ rknand_print_hex: mov r7, r2 mov r8, r3 mov r4, r5 -.L1240: +.L1260: cmp r4, r8 - beq .L1249 + beq .L1269 cmp r5, #0 - bne .L1241 - ldr r0, .L1250 + bne .L1261 + ldr r0, .L1270 mov r1, r9 mov r2, r6 mov r3, r4 bl printk -.L1241: +.L1261: cmp r7, #4 - ldreq r0, .L1250+4 + ldreq r0, .L1270+4 ldreq r1, [r6, r4, asl #2] - beq .L1248 + beq .L1268 cmp r7, #2 moveq r3, r4, asl #1 - ldreq r0, .L1250+4 + ldreq r0, .L1270+4 ldreqsh r1, [r6, r3] - ldrne r0, .L1250+4 + ldrne r0, .L1270+4 ldrneb r1, [r6, r4] @ zero_extendqisi2 -.L1248: +.L1268: add r5, r5, #1 bl printk cmp r5, #15 - bls .L1245 - ldr r0, .L1250+8 + bls .L1265 + ldr r0, .L1270+8 mov r5, #0 - ldr r1, .L1250+12 + ldr r1, .L1270+12 bl printk -.L1245: +.L1265: add r4, r4, #1 - b .L1240 -.L1249: - ldr r0, .L1250+8 - ldr r1, .L1250+12 + b .L1260 +.L1269: + ldr r0, .L1270+8 + ldr r1, .L1270+12 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L1251: +.L1271: .align 2 -.L1250: +.L1270: .word .LC82 .word .LC83 .word .LC76 @@ -7611,7 +7693,7 @@ HynixGetReadRetryDefault: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} cmp r0, #2 - ldr r7, .L1361 + ldr r7, .L1381 mvn r3, #83 mvn r1, #82 mvn r2, #81 @@ -7624,17 +7706,17 @@ HynixGetReadRetryDefault: strb r1, [r7, #1215] strb r2, [r7, #1216] strb r3, [r7, #1217] - bne .L1253 + bne .L1273 mvn r3, #88 strb r3, [r7, #1214] - ldr r3, .L1361+4 + ldr r3, .L1381+4 mvn r2, #8 mov r5, #7 - strb r2, [r3, #3309] - b .L1314 -.L1253: + strb r2, [r3, #3405] + b .L1334 +.L1273: cmp r0, #3 - bne .L1255 + bne .L1275 mvn r3, #79 strb r3, [r7, #1214] mvn r3, #78 @@ -7650,10 +7732,10 @@ HynixGetReadRetryDefault: mvn r3, #73 strb r3, [r7, #1220] mvn r3, #72 - b .L1355 -.L1255: + b .L1375 +.L1275: cmp r0, #4 - bne .L1256 + bne .L1276 mvn r0, #51 strb r1, [r7, #1219] strb r0, [r7, #1214] @@ -7666,14 +7748,14 @@ HynixGetReadRetryDefault: strb r0, [r7, #1217] mvn r0, #50 strb r0, [r7, #1218] -.L1355: +.L1375: mov r5, #8 strb r3, [r7, #1221] mov r6, r5 - b .L1254 -.L1256: + b .L1274 +.L1276: cmp r0, #5 - bne .L1257 + bne .L1277 mov r3, #56 mov r5, #8 strb r3, [r7, #1214] @@ -7683,10 +7765,10 @@ HynixGetReadRetryDefault: strb r3, [r7, #1216] mov r3, #59 strb r3, [r7, #1217] - b .L1314 -.L1257: + b .L1334 +.L1277: cmp r0, #6 - bne .L1258 + bne .L1278 mov r3, #14 mov r5, #12 strb r3, [r7, #1214] @@ -7696,10 +7778,10 @@ HynixGetReadRetryDefault: strb r3, [r7, #1216] mov r3, #17 strb r3, [r7, #1217] - b .L1314 -.L1258: + b .L1334 +.L1278: cmp r0, #7 - bne .L1259 + bne .L1279 mvn r3, #79 mov r5, #12 strb r3, [r7, #1214] @@ -7722,11 +7804,11 @@ HynixGetReadRetryDefault: strb r3, [r7, #1222] mvn r3, #42 strb r3, [r7, #1223] - b .L1254 -.L1259: + b .L1274 +.L1279: cmp r0, #8 mov r5, #7 - bne .L1314 + bne .L1334 mov r3, #6 strb r5, [r7, #1215] strb r3, [r7, #1214] @@ -7737,24 +7819,24 @@ HynixGetReadRetryDefault: mov r6, #5 mov r3, #10 strb r3, [r7, #1218] - b .L1254 -.L1314: + b .L1274 +.L1334: mov r6, #4 -.L1254: +.L1274: sub r3, r4, #1 cmp r3, #1 - bhi .L1351 - ldr r10, .L1361+8 + bhi .L1371 + ldr r10, .L1381+8 mov r9, #0 -.L1260: - ldrb r1, [r7, #2229] @ zero_extendqisi2 +.L1280: + ldrb r1, [r7, #2230] @ zero_extendqisi2 uxtb r2, r9 - ldr r3, .L1361 + ldr r3, .L1381 cmp r1, r2 - bls .L1267 + bls .L1287 add r2, r3, r2 - ldr r4, .L1361+12 - ldr r1, .L1361+16 + ldr r4, .L1381+12 + ldr r1, .L1381+16 mov ip, #55 ldrb r2, [r2, #2232] @ zero_extendqisi2 add r3, r3, r2, asl #3 @@ -7765,7 +7847,7 @@ HynixGetReadRetryDefault: mov fp, r4 mov r2, r4 add r8, r0, r8, asl #8 -.L1262: +.L1282: str ip, [r8, #2056] mov r0, #80 ldrb r3, [r1, #1]! @ zero_extendqisi2 @@ -7782,23 +7864,23 @@ HynixGetReadRetryDefault: rsb r3, r4, r2 uxtb r3, r3 cmp r3, r6 - bcc .L1262 + bcc .L1282 mov r2, #0 -.L1263: +.L1283: add r0, r10, r2 mov r3, #1 -.L1264: +.L1284: ldrb r1, [r0, r3, asl #2] @ zero_extendqisi2 ldrb ip, [fp] @ zero_extendqisi2 add r1, r1, ip strb r1, [fp, r3, asl #3] add r3, r3, #1 cmp r3, #7 - bne .L1264 + bne .L1284 add r2, r2, #1 add fp, fp, #1 cmp r2, #4 - bne .L1263 + bne .L1283 mov r3, #0 add r9, r9, #1 strb r3, [r4, #16] @@ -7808,11 +7890,11 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L1260 -.L1351: + b .L1280 +.L1371: sub r3, r4, #3 cmp r3, #5 - bhi .L1267 + bhi .L1287 smulbb r2, r6, r5 mov r3, r2, asl #4 mov r2, r2, asr #1 @@ -7820,28 +7902,28 @@ HynixGetReadRetryDefault: mov r3, r2, asl #1 str r3, [sp, #8] mov r3, #0 -.L1359: +.L1379: str r3, [sp, #16] ldrb r3, [sp, #16] @ zero_extendqisi2 str r3, [sp, #12] - ldr r3, .L1361 + ldr r3, .L1381 ldr r2, [sp, #12] - ldrb r3, [r3, #2229] @ zero_extendqisi2 + ldrb r3, [r3, #2230] @ zero_extendqisi2 cmp r3, r2 - bhi .L1312 -.L1267: - ldr r3, .L1361 + bhi .L1332 +.L1287: + ldr r3, .L1381 strb r6, [r3, #1211] strb r5, [r3, #1212] add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1312: +.L1332: ldr r2, [sp, #12] - ldr r3, .L1361 + ldr r3, .L1381 add r3, r3, r2 ldrb r10, [r3, #2232] @ zero_extendqisi2 - ldr r3, .L1361 + ldr r3, .L1381 add r3, r3, r10, asl #3 mov r0, r10 ldrb fp, [r3, #16] @ zero_extendqisi2 @@ -7852,55 +7934,55 @@ HynixGetReadRetryDefault: str r3, [r7, #2056] bl NandcWaitFlashReady cmp r4, #7 - ldreq r3, .L1361+12 + ldreq r3, .L1381+12 moveq r7, #160 mlaeq r7, r7, r10, r3 addeq r3, r7, #28 - beq .L1356 -.L1269: + beq .L1376 +.L1289: cmp r4, #8 - beq .L1271 - ldr r3, .L1361+12 + beq .L1291 + ldr r3, .L1381+12 add r7, r3, r10, asl #6 add r3, r7, #20 -.L1356: +.L1376: str r3, [sp, #20] cmp r4, #4 add r3, r8, fp, asl #8 mov r2, #54 str r2, [r3, #2056] - bne .L1272 + bne .L1292 add r9, r8, r9 mov r3, #255 str r3, [r9, #2052] mov r3, #64 str r3, [r9, #2048] mov r3, #204 - b .L1357 -.L1272: + b .L1377 +.L1292: sub r2, r4, #5 cmp r2, #1 - bhi .L1274 - ldr r2, .L1361 + bhi .L1294 + ldr r2, .L1381 ldrb r2, [r2, #1214] @ zero_extendqisi2 str r2, [r3, #2052] mov r2, #82 str r2, [r3, #2048] - b .L1273 -.L1274: + b .L1293 +.L1294: cmp r4, #7 - bne .L1273 + bne .L1293 add r9, r8, r9 mov r3, #174 str r3, [r9, #2052] mov r3, #0 str r3, [r9, #2048] mov r3, #176 -.L1357: +.L1377: str r3, [r9, #2052] mov r3, #77 str r3, [r9, #2048] -.L1273: +.L1293: add r3, r8, fp, asl #8 cmp r4, #6 mov r2, #22 @@ -7921,7 +8003,7 @@ HynixGetReadRetryDefault: str r2, [r3, #2052] mov r2, #0 str r2, [r3, #2052] -.L1313: +.L1333: add r3, r8, fp, asl #8 mov r2, #48 mov r0, r10 @@ -7940,134 +8022,134 @@ HynixGetReadRetryDefault: ldr r3, [sp, #24] orrs r3, r3, r2 movne ip, #16 - bne .L1277 + bne .L1297 cmp r4, #7 movne ip, #2 moveq ip, #32 -.L1277: - ldr r3, .L1361+20 +.L1297: + ldr r3, .L1381+20 add r0, r8, fp, asl #8 - ldr r3, [r3, #1684] + ldr r3, [r3, #1688] mov r1, r3 -.L1278: +.L1298: ldr r2, [r0, #2048] strb r2, [r1], #1 rsb r2, r3, r1 uxtb r2, r2 cmp r2, ip - bcc .L1278 + bcc .L1298 ldr r2, [sp, #4] cmp r2, #0 - beq .L1279 + beq .L1299 mov r2, #0 -.L1281: +.L1301: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r1, r2 cmp ip, #50 - beq .L1280 + beq .L1300 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #5 - beq .L1280 + beq .L1300 add r2, r2, #1 cmp r2, #8 - bne .L1281 - b .L1282 -.L1280: + bne .L1301 + b .L1302 +.L1300: cmp r1, #6 - bls .L1283 -.L1282: - ldr r0, .L1361+24 + bls .L1303 +.L1302: + ldr r0, .L1381+24 mov r1, #0 bl printk -.L1284: - b .L1284 -.L1279: +.L1304: + b .L1304 +.L1299: cmp r4, #7 - bne .L1285 + bne .L1305 ldr r2, [sp, #4] -.L1287: +.L1307: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r1, r2 cmp ip, #12 - beq .L1286 + beq .L1306 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #10 - beq .L1286 + beq .L1306 add r2, r2, #1 cmp r2, #8 - bne .L1287 - b .L1288 -.L1286: + bne .L1307 + b .L1308 +.L1306: cmp r1, #7 - bne .L1283 -.L1288: - ldr r0, .L1361+24 + bne .L1303 +.L1308: + ldr r0, .L1381+24 mov r1, #0 bl printk -.L1289: - b .L1289 -.L1285: +.L1309: + b .L1309 +.L1305: cmp r4, #6 - bne .L1283 + bne .L1303 sub r2, r3, #1 add r3, r3, #7 -.L1290: +.L1310: ldrb r1, [r2, #1]! @ zero_extendqisi2 cmp r1, #12 - beq .L1283 + beq .L1303 ldrb r1, [r2, #8] @ zero_extendqisi2 cmp r1, #4 - beq .L1283 + beq .L1303 cmp r2, r3 - bne .L1290 - ldr r0, .L1361+24 + bne .L1310 + ldr r0, .L1381+24 mov r1, #0 bl printk -.L1292: - b .L1292 -.L1283: - ldr r1, .L1361+20 +.L1312: + b .L1312 +.L1303: + ldr r1, .L1381+20 ldr ip, [sp, #36] - ldr r2, [r1, #1684] + ldr r2, [r1, #1688] add ip, r2, ip mov r3, r2 -.L1293: +.L1313: cmp r3, ip ldrne lr, [r0, #2048] strneb lr, [r3], #1 - bne .L1293 -.L1360: - ldr r3, [r1, #1684] + bne .L1313 +.L1380: + ldr r3, [r1, #1688] mov r0, #8 ldr r1, [sp, #8] add r1, r3, r1 str r1, [sp, #28] -.L1296: +.L1316: ldr ip, [sp, #8] add lr, r1, ip -.L1295: +.L1315: ldrh ip, [r1] mvn ip, ip strh ip, [r1], #2 @ movhi cmp r1, lr - bne .L1295 + bne .L1315 ldr ip, [sp, #8] subs r0, r0, #1 add r1, r1, ip - bne .L1296 -.L1297: + bne .L1316 +.L1317: mov ip, #0 mov r0, ip -.L1300: +.L1320: mov r1, #1 mov lr, #0 mov r1, r1, asl r0 mov r7, #16 str r7, [sp, #32] mov r7, lr -.L1298: +.L1318: ldrh r9, [r3, lr] and r9, r9, r1 cmp r9, r1 @@ -8077,71 +8159,71 @@ HynixGetReadRetryDefault: ldr r9, [sp, #32] subs r9, r9, #1 str r9, [sp, #32] - bne .L1298 + bne .L1318 cmp r7, #8 add r0, r0, #1 orrhi ip, ip, r1 uxthhi ip, ip cmp r0, #16 - bne .L1300 + bne .L1320 ldr r1, [sp, #28] strh ip, [r3], #2 @ movhi cmp r3, r1 - bne .L1297 - ldr r3, .L1361+20 - ldr r1, [r3, #1684] + bne .L1317 + ldr r3, .L1381+20 + ldr r1, [r3, #1688] mov r3, #0 sub r0, r1, #4 add ip, r1, #28 -.L1302: +.L1322: ldr lr, [r0, #4]! cmp lr, #0 addeq r3, r3, #1 cmp r0, ip - bne .L1302 + bne .L1322 cmp r3, #7 - ble .L1303 - ldr r0, .L1361+28 + ble .L1323 + ldr r0, .L1381+28 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L1361+24 + ldr r0, .L1381+24 mov r1, #0 bl printk -.L1304: - b .L1304 -.L1303: +.L1324: + b .L1324 +.L1323: cmp r4, #6 moveq r0, #4 - beq .L1305 + beq .L1325 cmp r4, #7 moveq r0, #10 - beq .L1305 + beq .L1325 ldr r3, [sp, #4] cmp r3, #0 moveq r0, #8 movne r0, #5 -.L1305: +.L1325: sub r9, r6, #1 ldr r1, [sp, #20] mov ip, #0 uxtb r9, r9 add r9, r9, #1 -.L1306: +.L1326: mov r7, r1 mov r3, r2 -.L1307: +.L1327: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [r7], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, r6 - bcc .L1307 + bcc .L1327 add ip, ip, #1 add r2, r2, r9 cmp ip, r5 add r1, r1, r0 - blt .L1306 + blt .L1326 add r7, r8, fp, asl #8 mov r3, #255 mov r0, r10 @@ -8149,10 +8231,10 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr r3, [sp, #24] cmp r3, #0 - beq .L1309 + beq .L1329 mov r3, #54 str r3, [r7, #2056] - ldr r3, .L1361 + ldr r3, .L1381 mvn r1, #0 ldr r0, [sp, #12] ldrb r3, [r3, #1214] @ zero_extendqisi2 @@ -8162,20 +8244,20 @@ HynixGetReadRetryDefault: mov r3, #22 str r3, [r7, #2056] bl FlashReadCmd - b .L1310 -.L1309: + b .L1330 +.L1329: ldr r3, [sp, #4] cmp r3, #0 movne r3, #190 moveq r3, #56 str r3, [r7, #2056] -.L1310: +.L1330: mov r0, r10 bl NandcWaitFlashReady ldr r3, [sp, #16] add r3, r3, #1 - b .L1359 -.L1271: + b .L1379 +.L1291: mov r3, #120 mov r2, #23 str r3, [r7, #2056] @@ -8197,15 +8279,15 @@ HynixGetReadRetryDefault: str r1, [r7, #2052] str r2, [r7, #2052] str r3, [r7, #2052] - ldr r3, .L1361+32 + ldr r3, .L1381+32 str r3, [sp, #20] - b .L1313 -.L1362: + b .L1333 +.L1382: .align 2 -.L1361: +.L1381: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR1+3292 + .word .LANCHOR1+3388 .word .LANCHOR0+1210 .word .LANCHOR0+1213 .word .LANCHOR2 @@ -8226,62 +8308,62 @@ FlashGetReadRetryDefault: bxeq lr sub r2, r3, #1 cmp r2, #7 - bhi .L1365 + bhi .L1385 b HynixGetReadRetryDefault -.L1365: +.L1385: cmp r3, #49 - bne .L1366 - ldr r2, .L1377 - ldr r0, .L1377+4 - ldr r1, .L1377+8 + bne .L1386 + ldr r2, .L1397 + ldr r0, .L1397+4 + ldr r1, .L1397+8 strb r3, [r2, #1210] mov r3, #4 strb r3, [r2, #1211] mov r3, #15 strb r3, [r2, #1212] mov r2, #64 - b .L1375 -.L1366: + b .L1395 +.L1386: sub r2, r3, #65 cmp r3, #33 cmpne r2, #1 - ldrls r2, .L1377 + ldrls r2, .L1397 strlsb r3, [r2, #1210] movls r3, #4 - bls .L1376 -.L1367: + bls .L1396 +.L1387: cmp r3, #34 cmpne r3, #67 - bne .L1368 - ldr r2, .L1377 + bne .L1388 + ldr r2, .L1397 strb r3, [r2, #1210] mov r3, #5 -.L1376: +.L1396: strb r3, [r2, #1211] mov r3, #7 - ldr r0, .L1377+4 + ldr r0, .L1397+4 strb r3, [r2, #1212] mov r2, #45 - ldr r1, .L1377+12 - b .L1375 -.L1368: + ldr r1, .L1397+12 + b .L1395 +.L1388: cmp r3, #35 cmpne r3, #68 bxne lr - ldr r2, .L1377 - ldr r0, .L1377+4 - ldr r1, .L1377+16 + ldr r2, .L1397 + ldr r0, .L1397+4 + ldr r1, .L1397+16 strb r3, [r2, #1210] mov r3, #5 strb r3, [r2, #1211] mov r3, #17 strb r3, [r2, #1212] mov r2, #95 -.L1375: +.L1395: b ftl_memcpy -.L1378: +.L1398: .align 2 -.L1377: +.L1397: .word .LANCHOR0 .word .LANCHOR0+1214 .word .LANCHOR1+408 @@ -8299,153 +8381,153 @@ NandcXferComp: stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L1419 + ldr r5, .L1439 add r0, r5, r0, asl #3 - ldr r3, [r5, #2252] + ldr r3, [r5, #2260] ldr r4, [r0, #12] cmp r3, #3 - bls .L1410 + bls .L1430 ldr r3, [r4, #16] tst r3, #4 - beq .L1410 + beq .L1430 ldr r6, [r4, #16] ldr r3, [r4, #8] ubfx r6, r6, #1, #1 cmp r6, #0 str r3, [sp] movne r6, #0 - beq .L1392 -.L1382: + beq .L1412 +.L1402: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L1390 - ldr r3, [r5, #2252] + bge .L1410 + ldr r3, [r5, #2260] cmp r3, #5 - bhi .L1383 -.L1386: + bhi .L1403 +.L1406: add r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L1385 + bne .L1405 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L1419+4 + ldr r0, .L1439+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L1419+8 + ldr r0, .L1439+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex - b .L1385 -.L1383: + b .L1405 +.L1403: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L1386 + beq .L1406 ldr r3, [sp, #4] tst r3, #131072 - beq .L1386 -.L1390: - ldr r3, [r5, #2288] - ldr r4, .L1419 + beq .L1406 +.L1410: + ldr r3, [r5, #2296] + ldr r4, .L1439 cmp r3, #0 - beq .L1391 + beq .L1411 ldr r1, [sp] mov r2, #0 - ldr r0, [r4, #2280] + ldr r0, [r4, #2288] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r4, #2284] + ldr r0, [r4, #2292] mov r2, #0 ldr r1, [sp] ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single - b .L1391 -.L1385: - mov r0, #5 - mov r1, #10 + b .L1411 +.L1405: + mov r0, #1 + mov r1, #5 bl usleep_range - b .L1382 -.L1394: + b .L1402 +.L1414: ldr r3, [r4, #8] add r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 cmp r3, #0 - bne .L1393 + bne .L1413 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L1419+12 + ldr r0, .L1439+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L1419+8 + ldr r0, .L1439+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L1393: - mov r0, #5 - mov r1, #10 +.L1413: + mov r0, #1 + mov r1, #5 bl usleep_range -.L1392: +.L1412: ldr r3, [sp] tst r3, #1048576 - beq .L1394 - ldr r3, [r5, #2296] + beq .L1414 + ldr r3, [r5, #2304] cmp r3, #0 - beq .L1395 + beq .L1415 mov r0, r4 bl NandcSendDumpDataStart -.L1395: - ldr r3, [r5, #2288] - ldr r6, .L1419 +.L1415: + ldr r3, [r5, #2296] + ldr r6, .L1439 cmp r3, #0 - beq .L1396 + beq .L1416 ldr r1, [sp] mov r2, #1 - ldr r0, [r6, #2280] + ldr r0, [r6, #2288] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r6, #2284] + ldr r0, [r6, #2292] mov r2, #1 ldr r1, [sp] ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single -.L1396: - ldr r3, [r5, #2296] +.L1416: + ldr r3, [r5, #2304] cmp r3, #0 - beq .L1391 + beq .L1411 mov r0, r4 bl NandcSendDumpDataDone -.L1391: +.L1411: mov r3, #0 - str r3, [r5, #2288] - b .L1379 -.L1410: + str r3, [r5, #2296] + b .L1399 +.L1430: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] tst r3, #1048576 - beq .L1410 -.L1379: + beq .L1430 +.L1399: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L1420: +.L1440: .align 2 -.L1419: +.L1439: .word .LANCHOR0 .word .LC87 .word .LC88 @@ -8462,7 +8544,7 @@ NandcXferData: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r10, r3 - ldr r6, .L1469 + ldr r6, .L1489 tst r10, #63 .pad #92 sub sp, sp, #92 @@ -8471,17 +8553,17 @@ NandcXferData: mov r5, r1 mov r7, r2 ldr r8, [r3, #12] - bne .L1422 + bne .L1442 ldr r3, [sp, #128] cmp r3, #0 - bne .L1423 + bne .L1443 add r0, sp, #24 mov r1, #255 mov r2, #64 bl ftl_memset add r3, sp, #24 str r3, [sp, #128] -.L1423: +.L1443: ldr r3, [sp, #128] mov r0, r9 mov r1, r5 @@ -8495,8 +8577,8 @@ NandcXferData: bl NandcXferComp cmp r5, #0 movne fp, #0 - bne .L1424 - ldr r3, [r6, #2300] + bne .L1444 + ldr r3, [r6, #2308] mov r0, r7, lsr #1 mov r2, r5 mov r1, r5 @@ -8504,12 +8586,12 @@ NandcXferData: ldr r3, [sp, #128] movcc lr, #64 movcs lr, #128 -.L1426: +.L1446: cmp r1, r0 add r3, r3, #4 add ip, r2, lr - bcs .L1467 - ldr r4, [r6, #2268] + bcs .L1487 + ldr r4, [r6, #2276] mov r2, r2, lsr #2 add r1, r1, #1 ldr r2, [r4, r2, asl #2] @@ -8521,30 +8603,30 @@ NandcXferData: strb r4, [r3, #-2] strb r2, [r3, #-1] mov r2, ip - b .L1426 -.L1467: - ldr r0, [r6, #2300] + b .L1446 +.L1487: + ldr r0, [r6, #2308] mov r2, #0 - ldr r1, [r6, #2252] + ldr r1, [r6, #2260] mov r7, r7, lsr #2 mov fp, r2 -.L1428: +.L1448: cmp r2, r7 - bcs .L1424 + bcs .L1444 cmp r0, #0 - beq .L1424 + beq .L1444 add r3, r2, #8 ldr r3, [r8, r3, asl #2] str r3, [sp, #20] ldr r3, [sp, #20] tst r3, #4 - bne .L1452 + bne .L1472 ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L1452 + bne .L1472 cmp r1, #5 - bls .L1430 + bls .L1450 ldr ip, [sp, #20] ldr r4, [sp, #20] ldr r3, [sp, #20] @@ -8563,10 +8645,10 @@ NandcXferData: ubfxls r3, r3, #16, #5 ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L1466 -.L1430: + b .L1486 +.L1450: cmp r1, #3 - bls .L1432 + bls .L1452 ldr ip, [sp, #20] ldr r4, [sp, #20] ldr r3, [sp, #20] @@ -8585,29 +8667,29 @@ NandcXferData: ubfxls r3, r3, #16, #5 ubfxhi r4, r4, #28, #1 ubfxls r4, r4, #30, #1 -.L1466: +.L1486: orr r4, r3, r4, asl #5 -.L1432: +.L1452: cmp fp, r4 movcc fp, r4 - b .L1429 -.L1452: + b .L1449 +.L1472: mvn fp, #0 -.L1429: +.L1449: add r2, r2, #1 - b .L1428 -.L1424: + b .L1448 +.L1444: mov r3, #0 str r3, [r8, #16] - b .L1435 -.L1422: + b .L1455 +.L1442: cmp r1, #1 mov r4, #0 - bne .L1464 + bne .L1484 mov fp, r4 -.L1436: +.L1456: cmp r4, r7 - bcs .L1468 + bcs .L1488 ldr r2, [sp, #128] cmp r10, #0 addne r3, r10, r4, asl #9 @@ -8636,11 +8718,11 @@ NandcXferData: mov r0, r9 mov r1, #1 bl NandcXferComp - b .L1436 -.L1468: + b .L1456 +.L1488: mov fp, #0 - b .L1435 -.L1464: + b .L1455 +.L1484: str r4, [sp] mov r1, r4 str r4, [sp, #4] @@ -8649,9 +8731,9 @@ NandcXferData: mov fp, r4 bl NandcXferStart str r10, [sp, #8] -.L1441: +.L1461: cmp r4, r7 - bcs .L1435 + bcs .L1455 mov r0, r9 mov r1, r5 bl NandcXferComp @@ -8659,7 +8741,7 @@ NandcXferData: add ip, r4, #2 cmp ip, r7 str r3, [sp, #20] - bcs .L1442 + bcs .L1462 mov r3, #0 mov r0, r9 str r3, [sp] @@ -8670,11 +8752,11 @@ NandcXferData: str ip, [sp, #12] bl NandcXferStart ldr ip, [sp, #12] -.L1442: +.L1462: ldr r3, [sp, #20] tst r3, #4 mvnne fp, #0 - bne .L1443 + bne .L1463 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -8682,7 +8764,7 @@ NandcXferData: orr r3, r2, r3, asl #5 cmp fp, r3 movcc fp, r3 -.L1443: +.L1463: ldr r1, [sp, #128] cmp r10, #0 ldr r3, [sp, #8] @@ -8704,29 +8786,29 @@ NandcXferData: mov r4, ip add r3, r3, #1024 str r3, [sp, #8] - b .L1441 -.L1435: - ldr r3, [r6, #2252] + b .L1461 +.L1455: + ldr r3, [r6, #2260] clz r5, r5 cmp r3, #5 mov r5, r5, lsr #5 movls r5, #0 cmp r5, #0 - beq .L1447 + beq .L1467 ldr r3, [r8] and r2, r3, #139264 cmp r2, #139264 orreq r3, r3, #131072 streq r3, [r8] mvneq fp, #0 -.L1447: +.L1467: mov r0, fp add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1470: +.L1490: .align 2 -.L1469: +.L1489: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -8741,19 +8823,19 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1474 + ldr r3, .L1494 subs r4, r0, #0 mov r6, r1 mov r7, r2 ldrb r5, [r3, #481] @ zero_extendqisi2 - bne .L1472 - ldr r2, .L1474+4 + bne .L1492 + ldr r2, .L1494+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r2, [r2, #4] mul r2, r2, r3 cmp r1, r2 movcc r5, #4 -.L1472: +.L1492: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8776,9 +8858,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1475: +.L1495: .align 2 -.L1474: +.L1494: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8793,23 +8875,23 @@ FlashDdrTunningRead: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r3 - ldr r4, .L1503 + ldr r4, .L1523 .pad #20 sub sp, sp, #20 mov r10, r0 mov fp, r2 str r1, [sp] - ldr r3, [r4, #76] + ldr r3, [r4, #80] ldr r3, [r3, #304] str r3, [sp, #8] - ldr r3, [r4, #2252] + ldr r3, [r4, #2260] cmp r3, #8 ldr r3, [sp, #56] movcc r9, #6 movcs r9, #12 cmp r3, #0 moveq r6, #1024 - beq .L1478 + beq .L1498 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 @@ -8822,43 +8904,43 @@ FlashDdrTunningRead: ldr r1, [sp] bl FlashReadRawPage mov r6, r0 - ldrb r0, [r4, #2228] @ zero_extendqisi2 + ldrb r0, [r4, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #2228] @ zero_extendqisi2 + ldrb r0, [r4, #2229] @ zero_extendqisi2 bl NandcSetMode cmn r6, #1 - bne .L1479 -.L1488: + bne .L1499 +.L1508: mvn r6, #0 - b .L1480 -.L1479: + b .L1500 +.L1499: mov r2, r6 - ldr r0, .L1503+4 + ldr r0, .L1523+4 ldr r1, [sp] bl printk cmp r6, #9 addls r4, r4, r10, asl #3 ldrls r3, [r4, #12] - ldr r4, .L1503+8 + ldr r4, .L1523+8 ldrls r2, [r3, #3840] ldrls r2, [r3] orrls r2, r2, #131072 strls r2, [r3] - ldr r3, [r4, #1688] + ldr r3, [r4, #1692] add r3, r3, #1 - str r3, [r4, #1688] + str r3, [r4, #1692] cmp r3, #2048 movcs r7, #0 - strcs r7, [r4, #1688] + strcs r7, [r4, #1692] movcs fp, r7 - bcc .L1480 -.L1478: + bcc .L1500 +.L1498: mov r4, #0 mvn r8, #0 mov ip, r4 mov r5, r4 str r4, [sp, #4] -.L1486: +.L1506: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara @@ -8870,74 +8952,74 @@ FlashDdrTunningRead: add r3, r6, #1 cmp r0, r3 ldr ip, [sp, #12] - bhi .L1482 + bhi .L1502 cmp r0, #2 - bhi .L1492 + bhi .L1512 add r5, r5, #1 cmp r5, #9 - bls .L1492 + bls .L1512 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L1484 -.L1482: + b .L1504 +.L1502: ldr r3, [sp, #4] cmp r3, r5 - bcs .L1493 + bcs .L1513 cmp r5, #7 rsb ip, r5, r4 - bhi .L1494 + bhi .L1514 str r5, [sp, #4] - b .L1493 -.L1492: + b .L1513 +.L1512: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L1483 -.L1493: + b .L1503 +.L1513: mov r5, #0 -.L1483: +.L1503: add r9, r9, #2 cmp r9, #69 - bls .L1486 -.L1484: + bls .L1506 +.L1504: ldr r3, [sp, #4] cmp r3, r5 movcs r4, ip - b .L1485 -.L1494: + b .L1505 +.L1514: mov r4, ip -.L1485: +.L1505: cmp r4, #0 - beq .L1487 - ldr r0, .L1503+12 + beq .L1507 + ldr r0, .L1523+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1487: +.L1507: cmn r8, #1 - bne .L1480 - ldr r0, .L1503+16 + bne .L1500 + ldr r0, .L1523+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L1488 + beq .L1508 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1480: +.L1500: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1504: +.L1524: .align 2 -.L1503: +.L1523: .word .LANCHOR0 .word .LC90 .word .LANCHOR2 @@ -8962,19 +9044,19 @@ FlashReadPage: bl FlashReadRawPage cmn r0, #1 mov r4, r0 - bne .L1506 - ldr r9, .L1526 + bne .L1526 + ldr r9, .L1546 ldrb fp, [r9, #8] @ zero_extendqisi2 mov r10, r9 cmp fp, #0 - bne .L1507 -.L1509: - ldrb r3, [r10, #2244] @ zero_extendqisi2 - ldr r9, .L1526 + bne .L1527 +.L1529: + ldrb r3, [r10, #2252] @ zero_extendqisi2 + ldr r9, .L1546 cmp r3, #0 - beq .L1506 - b .L1525 -.L1507: + beq .L1526 + b .L1545 +.L1527: mov r3, #0 mov r0, r5 strb r3, [r9, #8] @@ -8985,10 +9067,10 @@ FlashReadPage: strb fp, [r9, #8] cmn r0, #1 movne r4, r0 - beq .L1509 - b .L1506 -.L1525: - ldr r3, [r9, #76] + beq .L1529 + b .L1526 +.L1545: + ldr r3, [r9, #80] mov r0, r5 mov r1, r6 mov r2, r8 @@ -8999,22 +9081,22 @@ FlashReadPage: bl FlashDdrTunningRead cmn r0, #1 mov r4, r0 - beq .L1510 - ldrb r3, [r9, #2304] @ zero_extendqisi2 + beq .L1530 + ldrb r3, [r9, #2312] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1506 -.L1510: + bls .L1526 +.L1530: ubfx r0, r10, #8, #8 bl NandcSetDdrPara -.L1506: - ldr r9, .L1526+4 - ldr ip, [r9, #1692] +.L1526: + ldr r9, .L1546+4 + ldr ip, [r9, #1696] adds r3, ip, #0 movne r3, #1 cmn r4, #1 movne r3, #0 cmp r3, #0 - beq .L1511 + beq .L1531 mov r1, r6 mov r2, r8 mov r3, r7 @@ -9023,18 +9105,18 @@ FlashReadPage: mov r2, r5 mov r3, r6 mov r4, r0 - ldr r0, .L1526+8 + ldr r0, .L1546+8 mov r1, r4 bl printk cmn r4, #1 - bne .L1511 - ldr r3, .L1526 - ldrb r3, [r3, #140] @ zero_extendqisi2 + bne .L1531 + ldr r3, .L1546 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L1511 + beq .L1531 mov r0, r5 bl flash_enter_slc_mode - ldr ip, [r9, #1692] + ldr ip, [r9, #1696] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9043,14 +9125,14 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1511: +.L1531: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1527: +.L1547: .align 2 -.L1526: +.L1546: .word .LANCHOR0 .word .LANCHOR2 .word .LC93 @@ -9067,12 +9149,12 @@ FlashDdrParaScan: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r0 - ldr r5, .L1538 + ldr r5, .L1558 mov r6, r1 mov r4, #0 - ldrb r0, [r5, #2228] @ zero_extendqisi2 + ldrb r0, [r5, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #2228] @ zero_extendqisi2 + ldrb r0, [r5, #2229] @ zero_extendqisi2 bl NandcSetMode mov r1, r6 mov r2, r4 @@ -9089,27 +9171,27 @@ FlashDdrParaScan: mov r3, r5 cmn r0, #1 cmnne r8, #1 - bne .L1529 - ldrb r2, [r5, #2228] @ zero_extendqisi2 + bne .L1549 + ldrb r2, [r5, #2229] @ zero_extendqisi2 tst r2, #1 - beq .L1529 + beq .L1549 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - strb r4, [r5, #2244] - b .L1530 -.L1529: + strb r4, [r5, #2252] + b .L1550 +.L1549: mov r2, #1 - strb r2, [r3, #2244] -.L1530: + strb r2, [r3, #2252] +.L1550: mov r0, #0 add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1539: +.L1559: .align 2 -.L1538: +.L1558: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9124,123 +9206,123 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r3, .L1556 + ldr r3, .L1576 mov r4, #0 - ldr r7, .L1556+4 + ldr r7, .L1576+4 mov r9, #4 - ldr r5, .L1556+8 + ldr r5, .L1576+8 mvn r8, #0 ldr r0, [r3] @ unaligned ldr r3, [r7, #4] - str r4, [r5, #1700] + str r4, [r5, #1704] mov r6, r5 str r0, [sp, #12] @ unaligned mov r0, r4 str r3, [sp, #4] - ldr r3, [r5, #1684] - str r3, [r5, #1696] + ldr r3, [r5, #1688] + str r3, [r5, #1700] bl flash_enter_slc_mode -.L1541: +.L1561: add fp, r4, #1 mov r10, #0 -.L1543: +.L1563: add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 mov r1, r4 - ldr r2, [r5, #1684] + ldr r2, [r5, #1688] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1542 + bne .L1562 mov r0, #0 mov r1, fp - ldr r2, [r6, #1684] + ldr r2, [r6, #1688] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1542 + bne .L1562 add r10, r10, #1 cmp r10, #4 - beq .L1544 - b .L1543 -.L1545: + beq .L1564 + b .L1563 +.L1565: add r0, fp, #12 movw r1, #2036 bl js_hash ldr r3, [fp, #8] cmp r3, r0 mvnne r8, #0 - bne .L1544 - ldr r8, .L1556+12 + bne .L1564 + ldr r8, .L1576+12 add r1, fp, #160 mov r2, #32 mov r0, r8 bl ftl_memcpy - ldr r1, [r6, #1696] + ldr r1, [r6, #1700] mov r2, #32 - ldr r0, .L1556+16 + ldr r0, .L1576+16 add r1, r1, #192 bl ftl_memcpy - ldr r1, [r6, #1696] + ldr r1, [r6, #1700] mov r2, #852 - ldr r0, .L1556+20 + ldr r0, .L1576+20 add r1, r1, #224 bl ftl_memcpy ldrh r0, [r8, #10] bl FlashBlockAlignInit - ldr r8, [r6, #1696] - str r4, [r6, #1700] + ldr r8, [r6, #1700] + str r4, [r6, #1704] mov r0, r4 ldr r1, [r7, #4] ldr r3, [r8, #1076] - strb r3, [r7, #2244] + strb r3, [r7, #2252] bl __aeabi_uidiv add r0, r0, #1 cmp r0, #1 - strhi r0, [r6, #1704] + strhi r0, [r6, #1708] movls r3, #2 - strls r3, [r6, #1704] + strls r3, [r6, #1708] ldrh r3, [r8, #14] mov r8, #0 - strb r3, [r5, #1708] -.L1544: + strb r3, [r5, #1712] +.L1564: ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L1541 + bne .L1561 mov r0, r9 -.L1555: +.L1575: bl flash_exit_slc_mode mov r0, r8 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1542: - ldr fp, [r5, #1696] - ldr r2, .L1556+24 +.L1562: + ldr fp, [r5, #1700] + ldr r2, .L1576+24 ldr r3, [fp] cmp r3, r2 - bne .L1544 + bne .L1564 cmp r8, #0 - bne .L1545 + bne .L1565 mov r0, r4 ldr r1, [r7, #4] bl __aeabi_uidiv - ldr r3, .L1556+8 + ldr r3, .L1576+8 add r0, r0, #1 - str r0, [r3, #1704] + str r0, [r3, #1708] mov r0, r8 - b .L1555 -.L1557: + b .L1575 +.L1577: .align 2 -.L1556: +.L1576: .word .LANCHOR3+11 .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR1+472 - .word .LANCHOR0+44 + .word .LANCHOR0+48 .word .LANCHOR0+1210 .word 1312902724 .fnend @@ -9261,7 +9343,7 @@ ToshibaReadRetrial: str r2, [sp, #8] str r1, [sp, #16] bl NandcWaitFlashReady - ldr r4, .L1587 + ldr r4, .L1607 add r3, r4, r9, asl #3 ldrb r2, [r3, #16] @ zero_extendqisi2 ldr r6, [r3, #12] @@ -9274,58 +9356,58 @@ ToshibaReadRetrial: str r3, [sp, #12] movls r3, #0 strls r3, [sp, #4] - bls .L1559 - ldrb r5, [r4, #2244] @ zero_extendqisi2 + bls .L1579 + ldrb r5, [r4, #2252] @ zero_extendqisi2 cmp r5, #0 streq r5, [sp, #4] - beq .L1560 + beq .L1580 mov r0, #0 str r2, [sp, #20] bl NandcSetDdrMode mov r3, #1 ldr r2, [sp, #20] str r3, [sp, #4] -.L1560: +.L1580: ldr r3, [sp, #12] mov r1, #92 add r3, r6, r3 str r1, [r3, #2056] mov r1, #197 str r1, [r3, #2056] -.L1559: +.L1579: mov r8, #1 mvn r10, #0 mov r3, r2, asl #8 str r3, [sp, #20] -.L1561: - ldr r3, .L1587+4 - ldrb r3, [r3, #1709] @ zero_extendqisi2 +.L1581: + ldr r3, .L1607+4 + ldrb r3, [r3, #1713] @ zero_extendqisi2 add r3, r3, #1 cmp r8, r3 - bcs .L1586 + bcs .L1606 ldrb r3, [r4, #1208] @ zero_extendqisi2 mov r0, r7 uxtb r1, r8 sub r3, r3, #67 cmp r3, #1 - bhi .L1562 + bhi .L1582 bl SandiskSetRRPara - b .L1563 -.L1562: + b .L1583 +.L1582: bl ToshibaSetRRPara -.L1563: +.L1583: ldrb r3, [r4, #1208] @ zero_extendqisi2 cmp r3, #34 - bne .L1564 - ldr r3, .L1587+4 - ldrb r3, [r3, #1709] @ zero_extendqisi2 + bne .L1584 + ldr r3, .L1607+4 + ldrb r3, [r3, #1713] @ zero_extendqisi2 sub r3, r3, #3 cmp r8, r3 ldreq r3, [sp, #20] moveq r2, #179 addeq r3, r6, r3 streq r2, [r3, #2056] -.L1564: +.L1584: ldr r3, [sp, #12] mov r2, #38 add r3, r6, r3 @@ -9334,7 +9416,7 @@ ToshibaReadRetrial: str r2, [r3, #2056] ldr r3, [sp, #4] cmp r3, #0 - beq .L1565 + beq .L1585 mov r0, #4 bl NandcSetDdrMode mov r0, r9 @@ -9345,68 +9427,68 @@ ToshibaReadRetrial: mov r5, r0 mov r0, #0 bl NandcSetDdrMode - b .L1566 -.L1565: + b .L1586 +.L1585: mov r0, r9 ldr r1, [sp, #16] ldr r2, [sp, #8] mov r3, fp bl FlashReadRawPage mov r5, r0 -.L1566: +.L1586: cmn r5, #1 - beq .L1567 - ldrb r2, [r4, #2304] @ zero_extendqisi2 + beq .L1587 + ldrb r2, [r4, #2312] @ zero_extendqisi2 cmn r10, #1 moveq r10, r5 add r2, r2, r2, asl #1 cmp r5, r2, asr #2 - bcc .L1569 + bcc .L1589 mov fp, #0 str fp, [sp, #8] -.L1567: +.L1587: add r8, r8, #1 - b .L1561 -.L1586: + b .L1581 +.L1606: mov r5, r10 -.L1569: +.L1589: ldrb r2, [r4, #1208] @ zero_extendqisi2 mov r0, r7 mov r1, #0 sub r2, r2, #67 cmp r2, #1 - bhi .L1571 + bhi .L1591 bl SandiskSetRRPara - b .L1572 -.L1571: + b .L1592 +.L1591: bl ToshibaSetRRPara -.L1572: +.L1592: ldr r3, [sp, #12] mov r2, #255 add r6, r6, r3 str r2, [r6, #2056] - ldrb r2, [r4, #2304] @ zero_extendqisi2 + ldrb r2, [r4, #2312] @ zero_extendqisi2 add r2, r2, r2, asl #1 cmp r5, r2, asr #2 - bcc .L1573 + bcc .L1593 cmn r5, #1 movne r5, #256 -.L1573: +.L1593: mov r0, r9 bl NandcWaitFlashReady ldr r3, [sp, #4] cmp r3, #0 - beq .L1574 + beq .L1594 mov r0, #4 bl NandcSetDdrMode -.L1574: +.L1594: mov r0, r5 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1588: +.L1608: .align 2 -.L1587: +.L1607: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -9422,24 +9504,24 @@ SamsungReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r9, r0 - ldr r5, .L1603 + ldr r5, .L1623 mov r10, r2 mov r8, r3 mov fp, r1 bl NandcWaitFlashReady add r2, r5, r9, asl #3 - ldr ip, .L1603+4 + ldr ip, .L1623+4 mov r7, #1 ldrb r3, [r2, #16] @ zero_extendqisi2 mvn r4, #0 ldr r6, [r2, #12] add r3, r3, #8 add r6, r6, r3, asl #8 -.L1590: - ldrb r3, [ip, #1709] @ zero_extendqisi2 +.L1610: + ldrb r3, [ip, #1713] @ zero_extendqisi2 add r3, r3, #1 cmp r7, r3 - bcs .L1593 + bcs .L1613 mov r0, r6 uxtb r1, r7 str ip, [sp, #4] @@ -9451,38 +9533,38 @@ SamsungReadRetrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L1591 - ldrb r3, [r5, #2304] @ zero_extendqisi2 + beq .L1611 + ldrb r3, [r5, #2312] @ zero_extendqisi2 cmn r4, #1 moveq r4, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L1596 + bcc .L1616 mov r8, #0 mov r10, r8 -.L1591: +.L1611: add r7, r7, #1 - b .L1590 -.L1596: + b .L1610 +.L1616: mov r4, r0 -.L1593: +.L1613: mov r0, r6 mov r1, #0 bl SamsungSetRRPara - ldrb r3, [r5, #2304] @ zero_extendqisi2 + ldrb r3, [r5, #2312] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L1595 + bcc .L1615 cmn r4, #1 movne r4, #256 -.L1595: +.L1615: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1604: +.L1624: .align 2 -.L1603: +.L1623: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -9494,29 +9576,29 @@ MicronReadRetrial: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 -.L1607: +.L1627: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r3 - ldr r3, .L1631 + ldr r3, .L1651 mov fp, r2 .pad #36 sub sp, sp, #36 mov r6, r0 mov r10, #0 - ldrb r5, [r3, #2304] @ zero_extendqisi2 - ldrb r3, [r3, #140] @ zero_extendqisi2 + ldrb r5, [r3, #2312] @ zero_extendqisi2 + ldrb r3, [r3, #144] @ zero_extendqisi2 str r1, [sp, #20] cmp r3, #0 addeq r5, r5, r5, asl #1 - ldrne r2, .L1631+4 + ldrne r2, .L1651+4 ubfxeq r5, r5, #2, #8 smullne r2, r3, r5, r2 uxtbne r5, r3 - ldr r3, .L1631 + ldr r3, .L1651 add r3, r3, r0, asl #3 str r3, [sp, #24] -.L1617: +.L1637: mov r0, r6 mov r9, #0 bl NandcWaitFlashReady @@ -9530,11 +9612,11 @@ MicronReadRetrial: ldr r2, [sp, #16] ldr r3, [sp, #12] add r7, r3, r2, asl #8 -.L1608: - ldr r3, .L1631+8 - ldrb r3, [r3, #1709] @ zero_extendqisi2 +.L1628: + ldr r3, .L1651+8 + ldrb r3, [r3, #1713] @ zero_extendqisi2 cmp r9, r3 - bcs .L1611 + bcs .L1631 mov r3, #239 mov r0, #200 str r3, [r7, #2056] @@ -9555,22 +9637,22 @@ MicronReadRetrial: str ip, [sp, #28] bl FlashReadRawPage cmn r0, #1 - beq .L1609 + beq .L1629 cmn r4, #1 ldr ip, [sp, #28] moveq r4, r0 cmp r0, r5 - bcc .L1619 + bcc .L1639 mov r8, ip mov fp, ip -.L1609: +.L1629: ldr r9, [sp, #8] - b .L1608 -.L1619: + b .L1628 +.L1639: mov r4, r0 mov r8, ip mov fp, ip -.L1611: +.L1631: ldr r2, [sp, #16] mov r0, #200 ldr r3, [sp, #12] @@ -9586,10 +9668,10 @@ MicronReadRetrial: str r3, [r7, #2048] str r3, [r7, #2048] str r3, [r7, #2048] - bcc .L1613 + bcc .L1633 cmn r4, #1 movne r4, #256 -.L1613: +.L1633: cmn r4, #1 movne r7, #0 moveq r7, #1 @@ -9597,48 +9679,48 @@ MicronReadRetrial: movne r1, r7 orreq r1, r7, #1 cmp r1, #0 - beq .L1614 + beq .L1634 str r4, [sp] mov r1, r9 - ldr r0, .L1631+12 + ldr r0, .L1651+12 mov r3, r9 ldr r2, [sp, #20] bl printk cmp r10, #0 - bne .L1615 - ldr r3, .L1631 - ldrb r3, [r3, #140] @ zero_extendqisi2 + bne .L1635 + ldr r3, .L1651 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 moveq r7, #0 andne r7, r7, #1 cmp r7, #0 - beq .L1624 + beq .L1644 mov r0, r6 mov r1, #3 bl micron_auto_read_calibration_config mov r10, #1 - b .L1617 -.L1615: + b .L1637 +.L1635: mov r0, r6 mov r1, #0 bl micron_auto_read_calibration_config cmn r4, #1 movne r4, #256 - b .L1624 -.L1614: + b .L1644 +.L1634: cmp r10, #0 - beq .L1624 + beq .L1644 mov r0, r6 mov r4, #256 bl micron_auto_read_calibration_config -.L1624: +.L1644: mov r0, r4 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1632: +.L1652: .align 2 -.L1631: +.L1651: .word .LANCHOR0 .word 1431655766 .word .LANCHOR2 @@ -9656,13 +9738,13 @@ HynixReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r3 - ldr r5, .L1651 + ldr r5, .L1671 mov r10, r2 mov r7, r0 mov fp, r1 add r2, r5, r0 mvn r6, #0 - ldr r3, [r5, #1204] + ldr r3, [r5, #44] ldrb r4, [r2, #1222] @ zero_extendqisi2 ldrb r9, [r5, #1212] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 @@ -9671,14 +9753,14 @@ HynixReadRetrial: ldrlsb r4, [r2, #1230] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L1635: +.L1655: cmp ip, r9 - bcs .L1639 + bcs .L1659 add r4, r4, #1 mov r0, r7 ldrb r1, [r5, #1211] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L1651+4 + ldr r2, .L1671+4 cmp r4, r9 str ip, [sp, #4] movcs r4, #0 @@ -9691,47 +9773,214 @@ HynixReadRetrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L1637 - ldrb r3, [r5, #2304] @ zero_extendqisi2 + beq .L1657 + ldrb r3, [r5, #2312] @ zero_extendqisi2 cmn r6, #1 moveq r6, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L1644 + bcc .L1664 mov r8, #0 mov r10, r8 -.L1637: +.L1657: add ip, ip, #1 - b .L1635 -.L1644: + b .L1655 +.L1664: mov r6, r0 -.L1639: - ldr r3, [r5, #1204] +.L1659: + ldr r3, [r5, #44] add r7, r5, r7 ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #7 cmp r3, #1 - ldrb r3, [r5, #2304] @ zero_extendqisi2 + ldrb r3, [r5, #2312] @ zero_extendqisi2 strlsb r4, [r7, #1230] strhib r4, [r7, #1222] add r3, r3, r3, asl #1 cmp r6, r3, asr #2 - bcc .L1643 + bcc .L1663 cmn r6, #1 movne r6, #256 -.L1643: +.L1663: mov r0, r6 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1652: +.L1672: .align 2 -.L1651: +.L1671: .word .LANCHOR0 .word .LANCHOR0+1214 .fnend .size HynixReadRetrial, .-HynixReadRetrial .align 2 + .type samsung_read_retrial, %function +samsung_read_retrial: + .fnstart + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {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 + mov r10, r0 + mov fp, r2 + mov r8, r3 + str r1, [sp, #12] + bl NandcWaitFlashReady + ldr r3, .L1703 + add r2, r3, r10, asl #3 + ldr r4, [r2, #12] + ldrb r2, [r2, #16] @ zero_extendqisi2 + str r2, [sp, #8] + ldrb r2, [r3, #2228] @ zero_extendqisi2 + str r3, [sp, #16] + cmp r2, #0 + bne .L1674 + ldr r3, [sp, #8] + mvn r5, #0 + mov r6, #1 + mov r9, r3, asl #8 + add r7, r4, r9 +.L1678: + mov r3, #239 + str r3, [r7, #2056] + mov r3, #141 + str r3, [r7, #2052] + ldr r3, .L1703+4 + mov ip, #0 + mov r0, r10 + ldr r1, [sp, #12] + mov r2, fp + str ip, [sp, #20] + ldrsb r3, [r6, r3] + str r3, [r7, #2048] + mov r3, r8 + str ip, [r7, #2048] + str ip, [r7, #2048] + str ip, [r7, #2048] + bl FlashReadRawPage + cmn r0, #1 + beq .L1675 + ldr r3, [sp, #16] + cmn r5, #1 + moveq r5, r0 + ldrb r3, [r3, #2312] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp r0, r3, asr #2 + bcc .L1686 + ldr ip, [sp, #20] + mov r8, ip + mov fp, ip +.L1675: + add r6, r6, #1 + cmp r6, #26 + bne .L1678 + b .L1677 +.L1686: + mov r5, r0 +.L1677: + add r9, r4, r9 + mov r3, #239 + str r3, [r9, #2056] + ldr r3, [sp, #8] + add r4, r4, r3, asl #8 + mov r3, #141 + b .L1702 +.L1674: + ldr r3, [sp, #8] + mvn r5, #0 + ldr r7, .L1703+8 + mov r6, #1 + mov ip, r3, asl #8 + add r9, r4, ip +.L1683: + mov r3, #239 + str r3, [r9, #2056] + mov r3, #137 + str r3, [r9, #2052] + ldrb r3, [r7, #4] @ zero_extendqisi2 + mov r0, r10 + ldr r1, [sp, #12] + mov r2, fp + str ip, [sp, #20] + str r3, [r9, #2048] + ldrb r3, [r7, #5] @ zero_extendqisi2 + str r3, [r9, #2048] + ldrb r3, [r7, #6] @ zero_extendqisi2 + str r3, [r9, #2048] + ldrb r3, [r7, #7] @ zero_extendqisi2 + str r3, [r9, #2048] + mov r3, r8 + bl FlashReadRawPage + cmn r0, #1 + ldr ip, [sp, #20] + beq .L1680 + ldr r3, [sp, #16] + cmn r5, #1 + moveq r5, r0 + ldrb r3, [r3, #2312] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp r0, r3, asr #2 + bcc .L1687 + mov r8, #0 + mov fp, r8 +.L1680: + add r6, r6, #1 + add r7, r7, #4 + cmp r6, #26 + bne .L1683 + b .L1682 +.L1687: + mov r5, r0 +.L1682: + add ip, r4, ip + mov r3, #239 + str r3, [ip, #2056] + ldr r3, [sp, #8] + add r4, r4, r3, asl #8 + mov r3, #137 +.L1702: + str r3, [r4, #2052] + mov r3, #0 + str r3, [r4, #2048] + str r3, [r4, #2048] + str r3, [r4, #2048] + str r3, [r4, #2048] + ldr r3, [sp, #16] + ldrb r3, [r3, #2312] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp r5, r3, asr #2 + bcc .L1684 + cmn r5, #1 + movne r5, #256 +.L1684: + cmn r5, #1 + cmpne r5, #256 + bne .L1685 + str r5, [sp] + mov r1, r6 + ldr r0, .L1703+12 + mov r3, r6 + ldr r2, [sp, #12] + bl printk +.L1685: + mov r0, r10 + bl NandcWaitFlashReady + mov r0, r5 + add sp, sp, #28 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1704: + .align 2 +.L1703: + .word .LANCHOR0 + .word .LANCHOR3+16 + .word .LANCHOR3+44 + .word .LC95 + .fnend + .size samsung_read_retrial, .-samsung_read_retrial + .align 2 .global FlashProgPage .type FlashProgPage, %function FlashProgPage: @@ -9742,22 +9991,22 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1657 + ldr r3, .L1709 subs r4, r0, #0 mov r5, r1 mov r7, r2 ldrb r6, [r3, #481] @ zero_extendqisi2 - bne .L1654 - ldr r2, .L1657+4 + bne .L1706 + ldr r2, .L1709+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r1, [r2, #4] mul r1, r1, r3 cmp r5, r1 - bcs .L1654 + bcs .L1706 ldrb r3, [r2] @ zero_extendqisi2 cmp r3, #0 movne r6, #4 -.L1654: +.L1706: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -9786,9 +10035,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1658: +.L1710: .align 2 -.L1657: +.L1709: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -9803,125 +10052,142 @@ FlashSavePhyInfo: stmfd sp!, {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, .L1669 - ldr r5, .L1669+4 - ldr r8, .L1669+8 - ldr r3, [r4, #1684] - mov r9, r4 - ldrb r0, [r4, #1710] @ zero_extendqisi2 + ldr r4, .L1725 + ldr r5, .L1725+4 + ldr r8, .L1725+8 + ldr r3, [r4, #1688] + mov fp, r4 + ldrb r0, [r4, #1714] @ zero_extendqisi2 mov r10, r5 - str r3, [r4, #1696] + str r3, [r4, #1700] bl FlashBchSel mov r1, #0 mov r2, #2048 - ldr r0, [r4, #1684] + ldr r0, [r4, #1688] bl ftl_memset - ldr r3, [r4, #1696] - ldr r1, .L1669+12 + ldr r3, [r4, #1700] + ldr r1, .L1725+12 mov r2, #32 str r8, [r3] - ldr r0, [r4, #1696] - ldrb r3, [r5, #2229] @ zero_extendqisi2 + ldr r0, [r4, #1700] + ldrb r3, [r5, #2230] @ zero_extendqisi2 add r0, r0, #16 strh r3, [r0, #-4] @ movhi ldrb r3, [r5, #1] @ zero_extendqisi2 strh r3, [r0, #-2] @ movhi - ldrb r3, [r5, #2244] @ zero_extendqisi2 + ldrb r3, [r5, #2252] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy - ldr r0, [r4, #1696] - ldr r1, .L1669+16 + ldr r0, [r4, #1700] + ldr r1, .L1725+16 mov r2, #8 add r0, r0, #80 bl ftl_memcpy - ldr r0, [r4, #1696] - add r1, r5, #1168 + ldr r0, [r4, #1700] + ldr r1, .L1725+20 mov r2, #32 add r0, r0, #96 bl ftl_memcpy - ldr r0, [r4, #1696] - ldr r1, .L1669+20 + ldr r0, [r4, #1700] + ldr r1, .L1725+24 mov r2, #32 add r0, r0, #160 bl ftl_memcpy - ldr r0, [r4, #1696] - add r1, r5, #44 + ldr r0, [r4, #1700] + add r1, r5, #48 mov r2, #32 add r0, r0, #192 bl ftl_memcpy - ldr r0, [r4, #1696] + ldr r0, [r4, #1700] mov r2, #852 - ldr r1, .L1669+24 + ldr r1, .L1725+28 add r0, r0, #224 bl ftl_memcpy - ldr r6, [r4, #1696] + ldr r6, [r4, #1700] movw r1, #2036 add r0, r6, #12 bl js_hash movw r3, #1592 str r3, [r6, #4] - ldr r3, [r4, #1712] - str r3, [r4, #1696] + ldr r3, [r4, #1716] + str r3, [r4, #1700] str r0, [r6, #8] mov r0, #0 bl flash_enter_slc_mode mov r6, #0 mov r7, r6 -.L1662: +.L1717: ldr r1, [r5, #4] mov r0, #0 mov r2, r0 mul r1, r1, r7 bl FlashEraseBlock + ldrb r9, [r5, #144] @ zero_extendqisi2 + cmp r9, #0 + beq .L1712 + mov r9, #0 +.L1713: ldr r1, [r5, #4] mov r0, #0 - ldr r2, [r4, #1684] + ldr r2, [r4, #1688] mov r3, r0 + mla r1, r1, r7, r9 + add r9, r9, #1 + bl FlashProgPage + cmp r9, #10 + bne .L1713 + b .L1714 +.L1712: + ldr r1, [r10, #4] + mov r3, r9 + ldr r2, [r4, #1688] + mov r0, r9 mul r1, r1, r7 bl FlashProgPage - ldr r1, [r5, #4] - mov r0, #0 - ldr r2, [r4, #1684] - mov r3, r0 + ldr r1, [r10, #4] + mov r0, r9 + ldr r2, [r4, #1688] + mov r3, r9 mul r1, r1, r7 add r1, r1, #1 bl FlashProgPage +.L1714: ldr r1, [r5, #4] mov r0, #0 - ldr r2, [r4, #1712] + ldr r2, [r4, #1716] mov r3, r0 mul r1, r1, r7 bl FlashReadRawPage add r2, r7, #1 cmn r0, #1 - beq .L1660 - ldr fp, [r9, #1696] - ldr r3, [fp] + beq .L1715 + ldr r9, [fp, #1700] + ldr r3, [r9] cmp r3, r8 - bne .L1660 - add r0, fp, #12 + bne .L1715 + add r0, r9, #12 movw r1, #2036 str r2, [sp, #4] bl js_hash - ldr r3, [fp, #8] + ldr r3, [r9, #8] cmp r3, r0 ldr r2, [sp, #4] - bne .L1660 + bne .L1715 ldr r3, [r10, #4] cmp r6, #1 - str r2, [r9, #1704] + str r2, [fp, #1708] mul r7, r3, r7 - str r7, [r9, #1700] - beq .L1663 + str r7, [fp, #1704] + beq .L1718 mov r6, #1 -.L1660: +.L1715: cmp r2, #4 mov r7, r2 - bne .L1662 - b .L1661 -.L1663: + bne .L1717 + b .L1716 +.L1718: mov r6, #2 -.L1661: +.L1716: mov r0, #0 bl flash_exit_slc_mode clz r0, r6 @@ -9930,14 +10196,15 @@ FlashSavePhyInfo: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1670: +.L1726: .align 2 -.L1669: +.L1725: .word .LANCHOR2 .word .LANCHOR0 .word 1312902724 .word .LANCHOR0+2068 .word .LANCHOR0+2232 + .word .LANCHOR0+1172 .word .LANCHOR1+472 .word .LANCHOR0+1210 .fnend @@ -9952,100 +10219,100 @@ FlashReadIdbDataRaw: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r0 - ldr r3, .L1691 + ldr r3, .L1747 .pad #20 sub sp, sp, #20 - ldr r4, .L1691+4 + ldr r4, .L1747+4 ldr r0, [r3] @ unaligned - ldr r3, [r4, #2240] - ldrb r10, [r4, #2304] @ zero_extendqisi2 + ldr r3, [r4, #2248] + ldrb r10, [r4, #2312] @ zero_extendqisi2 cmp r3, #0 str r0, [sp, #12] @ unaligned - beq .L1672 + beq .L1728 mov r0, #0 bl flash_enter_slc_mode -.L1672: +.L1728: mov r0, r9 mov r1, #0 mov r2, #2048 mvn r8, #0 bl ftl_memset mov r5, #2 -.L1673: +.L1729: ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r5, r3 - bcs .L1677 - ldr fp, .L1691+8 + bcs .L1733 + ldr fp, .L1747+8 mov r7, #0 -.L1675: +.L1731: add r3, sp, #12 - ldr r6, .L1691+8 + ldr r6, .L1747+8 ldrb ip, [r7, r3] @ zero_extendqisi2 mov r0, ip str ip, [sp, #4] bl FlashBchSel ldr r1, [r4, #4] mov r0, #0 - ldr r2, [fp, #1684] + ldr r2, [fp, #1688] mov r3, r0 mul r1, r1, r5 bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - bne .L1674 + bne .L1730 add r7, r7, #1 cmp r7, #4 - bne .L1675 - b .L1676 -.L1674: - ldr r3, [r6, #1684] - ldr r2, .L1691+12 + bne .L1731 + b .L1732 +.L1730: + ldr r3, [r6, #1688] + ldr r2, .L1747+12 ldr r3, [r3] cmp r3, r2 - bne .L1676 + bne .L1732 mov r1, ip - ldr r0, .L1691+16 + ldr r0, .L1747+16 bl printk mov r2, #2048 mov r0, r9 - ldr r1, [r6, #1684] + ldr r1, [r6, #1688] bl ftl_memcpy - ldr r3, [r6, #1684] - ldr r2, .L1691+4 + ldr r3, [r6, #1688] + ldr r2, .L1747+4 ldr r3, [r3, #512] strb r3, [r2, #1] - ldr r3, [r6, #1704] + ldr r3, [r6, #1708] cmp r3, r5 - bls .L1680 - str r5, [r6, #1704] + bls .L1736 + str r5, [r6, #1708] bl FlashSavePhyInfo mov r8, #0 -.L1676: +.L1732: add r5, r5, #1 - b .L1673 -.L1680: + b .L1729 +.L1736: mov r8, #0 -.L1677: +.L1733: mov r0, r10 bl FlashBchSel - ldr r3, [r4, #2240] + ldr r3, [r4, #2248] cmp r3, #0 - beq .L1684 + beq .L1740 mov r0, #0 bl flash_exit_slc_mode -.L1684: +.L1740: mov r0, r8 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1692: +.L1748: .align 2 -.L1691: +.L1747: .word .LANCHOR3+11 .word .LANCHOR0 .word .LANCHOR2 .word -52655045 - .word .LC95 + .word .LC96 .fnend .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .align 2 @@ -10062,39 +10329,39 @@ FlashInit: sub sp, sp, #20 mov r0, #32768 bl ftl_malloc - ldr r8, .L1788 - ldr r4, .L1788+4 + ldr r8, .L1848 + ldr r4, .L1848+4 mov r7, #0 add r9, r4, #12 - str r0, [r8, #1684] + str r0, [r8, #1688] mov r0, #32768 bl ftl_malloc - str r0, [r8, #1712] - mov r0, #4096 - bl ftl_malloc str r0, [r8, #1716] - mov r0, #32768 + mov r0, #4096 bl ftl_malloc str r0, [r8, #1720] + mov r0, #32768 + bl ftl_malloc + str r0, [r8, #1724] mov r0, #4096 bl ftl_malloc mov r3, #50 - str r7, [r8, #1704] + str r7, [r8, #1708] strb r3, [r4, #1] - strb r3, [r8, #1708] + strb r3, [r8, #1712] mov r3, #128 - strb r7, [r4, #2244] + strb r7, [r4, #2252] str r3, [r4, #4] mov r3, #60 - str r7, [r8, #1688] + str r7, [r8, #1692] strb r7, [r4] - strb r7, [r8, #1728] - strb r3, [r8, #1710] - str r0, [r8, #1724] + strb r7, [r8, #1732] + strb r3, [r8, #1714] + str r0, [r8, #1728] mov r0, r5 bl NandcInit - ldr r5, .L1788+8 -.L1699: + ldr r5, .L1848+8 +.L1755: add r3, r9, r7, asl #3 uxtb fp, r7 ldr r6, [r9, r7, asl #3] @@ -10124,7 +10391,7 @@ FlashInit: strb r1, [r5, #4] ldr r1, [r6, #2048] strb r1, [r5, #5] - bne .L1694 + bne .L1750 mov r2, #239 mov r0, #200 str r2, [r6, #2056] @@ -10136,17 +10403,17 @@ FlashInit: str r10, [r6, #2048] str r10, [r6, #2048] str r10, [r6, #2048] -.L1694: +.L1750: mov r0, fp bl NandcFlashDeCs ldrb r2, [r5] @ zero_extendqisi2 sub r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1695 + bhi .L1751 ldrb r1, [r5, #2] @ zero_extendqisi2 ldrb r3, [r5, #1] @ zero_extendqisi2 - ldr r0, .L1788+12 + ldr r0, .L1848+12 str r1, [sp] ldrb r1, [r5, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -10156,19 +10423,19 @@ FlashInit: str r1, [sp, #12] add r1, r7, #1 bl printk -.L1695: +.L1751: cmp r7, #0 - bne .L1696 + bne .L1752 ldrb r3, [r4, #2068] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1745 - ldr r3, .L1788+4 + bhi .L1802 + ldr r3, .L1848+4 ldrb r3, [r3, #2069] @ zero_extendqisi2 cmp r3, #255 - beq .L1745 -.L1696: + beq .L1802 +.L1752: ldrb r3, [r5] @ zero_extendqisi2 add r7, r7, #1 add r5, r5, #8 @@ -10176,444 +10443,468 @@ FlashInit: moveq r3, #44 streqb r3, [r5, #-8] cmp r7, #4 - bne .L1699 + bne .L1755 ldrb r3, [r4, #2068] @ zero_extendqisi2 cmp r3, #173 - beq .L1700 - ldr r3, .L1788+4 - ldr r0, [r3, #2248] + beq .L1756 + ldr r3, .L1848+4 + ldr r0, [r3, #2256] bl NandcSetDdrMode -.L1700: +.L1756: mov r2, #852 - ldr r0, .L1788+16 + ldr r0, .L1848+16 mov r1, #0 - ldr r5, .L1788+20 + ldr r5, .L1848+20 bl ftl_memset - ldr r6, [r4, #2256] - ldr r3, .L1788+24 - cmp r6, r5 - ldrb r0, [r4, #2069] @ zero_extendqisi2 - str r3, [r4, #1204] + ldr r2, [r4, #2264] + ldr r0, .L1848+24 + cmp r2, r5 + add r3, r0, #472 + str r3, [r4, #44] mov r3, #0 strb r3, [r4, #8] - sub ip, r0, #218 - ldreq r3, .L1788+4 + bne .L1757 + ldrb r3, [r0, #491] @ zero_extendqisi2 + cmp r3, #50 + ldrne r3, .L1848+4 + movne r1, #1 + strne r1, [r3, #2248] +.L1757: + ldrb r6, [r4, #2069] @ zero_extendqisi2 + sub ip, r6, #218 + cmp r6, #161 + cmpne r6, #241 clz ip, ip - moveq r2, #1 - mov ip, ip, lsr #5 - streq r2, [r3, #2240] - cmp r0, #161 - cmpne r0, #241 - and r2, r0, #253 + and r1, r6, #253 moveq r3, #1 movne r3, #0 + mov ip, ip, lsr #5 orr r3, ip, r3 - cmp r2, #209 + cmp r1, #209 orreq r3, r3, #1 cmp r3, #0 - bne .L1702 - cmp r0, #220 - bne .L1703 - ldr r3, .L1788+4 + bne .L1758 + cmp r6, #220 + bne .L1759 + ldr r3, .L1848+4 ldrb r3, [r3, #2071] @ zero_extendqisi2 cmp r3, #149 - bne .L1703 -.L1702: - ldrb lr, [r4, #2068] @ zero_extendqisi2 - mov r3, #16 - strb r3, [r4, #1] + bne .L1759 +.L1758: + mov lr, #16 + strb lr, [r4, #1] + strb lr, [r8, #1714] mov r1, #1 - strb r3, [r8, #1710] - cmp lr, #152 - ldr r3, .L1788+28 + ldrb lr, [r4, #2068] @ zero_extendqisi2 strb r1, [r4] - ldr r2, .L1788 - strb lr, [r3, #3321] - strb r0, [r3, #3322] - bne .L1705 - ldr r7, .L1788+4 + cmp lr, #152 + ldr r3, .L1848 + strb lr, [r0, #3417] + strb r6, [r0, #3418] + bne .L1761 + ldr r7, .L1848+4 movw lr, #2072 ldrsb lr, [r7, lr] cmp lr, #0 - strltb r1, [r2, #1728] + strltb r1, [r3, #1732] movge r1, #24 - strgeb r1, [r2, #1710] -.L1705: - movw r2, #2049 - cmp r6, r5 - cmpne r6, r2 - moveq r2, #16 - streqb r2, [r8, #1710] + strgeb r1, [r3, #1714] +.L1761: + movw r3, #2049 + cmp r2, r5 + cmpne r2, r3 + moveq r3, #16 + streqb r3, [r8, #1714] cmp ip, #0 - ldrne r2, .L1788+32 - movne r1, #2048 - strneh r1, [r2, #14] @ movhi - mvnne r2, #37 - bne .L1782 -.L1709: - cmp r0, #220 - bne .L1711 - ldr r2, .L1788+32 - mov r1, #4096 - strh r1, [r2, #14] @ movhi - mvn r2, #35 -.L1782: - strb r2, [r3, #3322] - b .L1710 -.L1711: - cmp r0, #211 - ldreq r2, .L1788+32 - moveq r1, #4096 - streqh r1, [r2, #14] @ movhi - moveq r2, #2 - streqb r2, [r3, #3333] -.L1710: - ldr r1, .L1788+36 + ldrne r3, .L1848+28 + movne r2, #2048 + strneh r2, [r3, #14] @ movhi + mvnne r3, #37 + bne .L1842 +.L1765: + cmp r6, #220 + bne .L1767 + ldr r3, .L1848+28 + mov r2, #4096 + strh r2, [r3, #14] @ movhi + mvn r3, #35 +.L1842: + strb r3, [r0, #3418] + b .L1766 +.L1767: + cmp r6, #211 + ldreq r3, .L1848+28 + moveq r2, #4096 + streqh r2, [r3, #14] @ movhi + moveq r3, #2 + streqb r3, [r0, #3429] +.L1766: + ldr r1, .L1848+32 mov r2, #32 - ldr r0, .L1788+40 + ldr r0, .L1848+36 bl ftl_memcpy - ldr r0, .L1788+24 + ldr r0, .L1848+40 mov r2, #32 - add r1, r0, #2848 + add r1, r0, #2944 bl ftl_memcpy -.L1703: +.L1759: ldrb r3, [r4] @ zero_extendqisi2 - ldr r6, .L1788+4 + ldr r6, .L1848+4 cmp r3, #0 - bne .L1712 + bne .L1768 bl FlashLoadPhyInfoInRam cmp r0, #0 - bne .L1714 - ldr r3, [r6, #1204] + bne .L1770 + ldr r3, [r6, #44] ldrh r3, [r3, #16] mov r3, r3, lsr #8 tst r3, #1 and r0, r3, #7 - strb r0, [r6, #2228] - bne .L1714 + strb r0, [r6, #2229] + bne .L1770 mov r3, #1 - strb r3, [r6, #2244] + strb r3, [r6, #2252] bl FlashSetInterfaceMode - ldrb r0, [r6, #2228] @ zero_extendqisi2 + ldrb r0, [r6, #2229] @ zero_extendqisi2 bl NandcSetMode -.L1714: - ldr r3, [r4, #1204] - ldr r6, .L1788+4 +.L1770: + ldr r3, [r4, #44] + ldr r6, .L1848+4 ldrb r3, [r3, #26] @ zero_extendqisi2 - strb r3, [r4, #140] + strb r3, [r4, #144] bl FlashLoadPhyInfo cmp r0, #0 - beq .L1712 - ldr r3, [r6, #2248] + beq .L1768 + ldr r3, [r6, #2256] cmp r3, #0 - beq .L1717 + beq .L1773 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 - b .L1783 -.L1717: - ldrb r0, [r6, #2228] @ zero_extendqisi2 + b .L1843 +.L1773: + ldrb r0, [r6, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r6, #2228] @ zero_extendqisi2 -.L1783: + ldrb r0, [r6, #2229] @ zero_extendqisi2 +.L1843: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L1712 + beq .L1768 mov r0, #1 - ldr r6, .L1788+4 + ldr r6, .L1848+4 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r3, [r4, #1204] - ldr r0, .L1788+44 + ldr r3, [r4, #44] + ldr r0, .L1848+44 ldrh r1, [r3, #14] bl printk bl FlashLoadPhyInfoInRam cmn r0, #1 - beq .L1758 + beq .L1816 bl FlashDieInfoInit - ldr r3, [r6, #1204] + ldr r3, [r6, #44] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault - ldr r3, .L1788+48 - ldr r2, [r6, #1204] + ldr r3, .L1848+48 + ldr r2, [r6, #44] ldrh r3, [r3, #-2] ldrb r1, [r2, #9] @ zero_extendqisi2 add r3, r3, #4080 add r3, r3, #15 cmp r1, r3, asr #12 ldrh r3, [r2, #14] - blt .L1719 + blt .L1775 add r0, r3, #255 cmp r1, r0, asr #8 - bge .L1720 -.L1719: + bge .L1776 +.L1775: bic r3, r3, #255 strh r3, [r2, #14] @ movhi -.L1720: - ldrb r3, [r4, #2228] @ zero_extendqisi2 +.L1776: + ldrb r3, [r4, #2229] @ zero_extendqisi2 tst r3, #6 - beq .L1721 + beq .L1777 bl FlashSavePhyInfo mov r0, #0 - ldr r1, [r8, #1700] + bl flash_enter_slc_mode + mov r0, #0 + ldr r1, [r8, #1704] bl FlashDdrParaScan -.L1721: + mov r0, #0 + bl flash_exit_slc_mode +.L1777: bl FlashSavePhyInfo -.L1712: - ldr r2, [r4, #1204] - ldr r7, .L1788+4 - ldr r6, .L1788 +.L1768: + ldr r2, [r4, #44] + ldr r7, .L1848+4 + ldr r6, .L1848 ldrb r3, [r2, #26] @ zero_extendqisi2 ldrh r0, [r2, #10] ldrb r9, [r2, #18] @ zero_extendqisi2 - strb r3, [r4, #140] + strb r3, [r4, #144] ldrh r3, [r2, #16] ubfx r1, r3, #7, #1 strb r1, [r4, #8] ubfx r1, r3, #3, #1 - strb r1, [r8, #1729] + strb r1, [r8, #1733] ubfx r1, r3, #4, #1 ubfx r3, r3, #8, #3 - strb r1, [r4, #2305] - strb r3, [r4, #2228] + strb r1, [r4, #2240] + strb r3, [r4, #2229] mov r3, #0 ldrb r1, [r2, #12] @ zero_extendqisi2 - str r3, [r8, #1692] + str r3, [r8, #1696] bl __aeabi_idiv mov r1, r0 mov r0, r9 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr r3, [r4, #1204] + ldr r3, [r4, #44] ldrh r2, [r3, #16] tst r2, #64 - beq .L1723 + beq .L1779 ldrb r0, [r3, #19] @ zero_extendqisi2 ldrb r3, [r7, #1211] @ zero_extendqisi2 strb r0, [r7, #1208] strb r3, [r7, #1209] ldrb r3, [r7, #1212] @ zero_extendqisi2 - strb r3, [r6, #1709] + strb r3, [r6, #1713] sub r3, r0, #1 cmp r3, #7 - bhi .L1724 - ldr r3, .L1788+52 - sub r2, r0, #8 - clz r2, r2 - str r3, [r6, #1692] + bhi .L1780 + ldr r3, .L1848+52 + str r3, [r6, #1696] sub r3, r0, #5 cmp r0, #8 cmpne r3, #1 - mov r2, r2, lsr #5 - ldr r6, .L1788+56 + sub r6, r0, #8 + clz r6, r6 movls r3, #1 - strls r3, [r7, #2296] + strls r3, [r7, #2304] cmp r0, #7 - beq .L1727 - sub r3, r6, #8 - cmp r2, #0 - moveq r6, r3 -.L1727: + mov r6, r6, lsr #5 + ldreq r6, .L1848+56 + beq .L1783 + ldr r3, .L1848+56 + cmp r6, #0 + sub r2, r3, #8 + movne r6, r3 + moveq r6, r2 +.L1783: sub r2, r6, #1 add r6, r6, #31 mov r3, #0 -.L1728: +.L1784: ldrsb r1, [r2, #1]! cmp r1, #0 addeq r3, r3, #1 cmp r2, r6 - bne .L1728 + bne .L1784 cmp r3, #27 - bls .L1723 + bls .L1779 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1723 -.L1724: + b .L1779 +.L1780: sub r3, r0, #17 cmp r3, #2 - bhi .L1730 - ldr r3, .L1788+60 + bhi .L1786 + ldr r3, .L1848+60 cmp r0, #19 - str r3, [r6, #1692] + str r3, [r6, #1696] moveq r3, #15 - bne .L1787 - b .L1785 -.L1730: + bne .L1847 + b .L1845 +.L1786: sub r3, r0, #65 cmp r0, #33 cmpne r3, #1 - bhi .L1732 - ldr r3, .L1788+64 - str r3, [r6, #1692] + bhi .L1788 + ldr r3, .L1848+64 + str r3, [r6, #1696] mov r3, #4 strb r3, [r7, #1209] -.L1787: +.L1847: mov r3, #7 -.L1785: - strb r3, [r6, #1709] - b .L1723 -.L1732: - sub r3, r0, #67 - sub r2, r0, #34 +.L1845: + strb r3, [r6, #1713] + b .L1779 +.L1788: + sub r2, r0, #67 + sub r3, r0, #34 + cmp r2, #1 + movhi r2, #0 + movls r2, #1 cmp r3, #1 - movhi r1, #0 - movls r1, #1 - cmp r3, #1 - cmphi r2, #1 - bhi .L1733 - ldr r3, .L1788+64 + movhi r3, r2 + orrls r3, r2, #1 + cmp r3, #0 + beq .L1789 + ldr r3, .L1848+64 cmp r0, #68 cmpne r0, #35 - str r3, [r6, #1692] + str r3, [r6, #1696] movne r3, #7 moveq r3, #17 - cmp r1, #0 - strb r3, [r6, #1709] + cmp r2, #0 + strb r3, [r6, #1713] movne r3, #4 moveq r3, #5 strb r3, [r4, #1209] - b .L1723 -.L1733: + b .L1779 +.L1789: cmp r0, #49 - ldreq r3, .L1788+68 - streq r3, [r6, #1692] -.L1723: - ldr r2, [r4, #2256] - ldr r3, .L1788+4 + ldreq r3, .L1848+68 + streq r3, [r6, #1696] + beq .L1779 + cmp r0, #50 + streq r3, [r7, #2248] + ldreq r2, .L1848+72 + streq r2, [r6, #1696] +.L1779: + ldr r2, [r4, #2264] + ldr r3, .L1848+4 cmp r2, r5 - bne .L1737 - ldrb r1, [r3, #140] @ zero_extendqisi2 + bne .L1794 + ldrb r1, [r3, #144] @ zero_extendqisi2 cmp r1, #0 - ldrne r3, [r3, #1204] + ldrne r3, [r3, #44] movne r1, #0 strneb r1, [r3, #18] -.L1737: +.L1794: ldrb r1, [r4, #2068] @ zero_extendqisi2 - ldr r3, .L1788+4 + ldr r3, .L1848+4 cmp r1, #44 - bne .L1738 - ldrb r1, [r3, #2244] @ zero_extendqisi2 + bne .L1795 + ldrb r1, [r3, #2252] @ zero_extendqisi2 cmp r1, #0 - beq .L1738 + beq .L1795 cmp r2, r5 - bne .L1739 - ldrb r3, [r3, #140] @ zero_extendqisi2 + bne .L1796 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 - bne .L1738 -.L1739: + bne .L1795 +.L1796: mov r0, #1 mov r3, #0 - strb r3, [r4, #2244] + strb r3, [r4, #2252] bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode -.L1738: - ldrb r3, [r4, #2228] @ zero_extendqisi2 +.L1795: + ldrb r3, [r4, #2229] @ zero_extendqisi2 tst r3, #6 - beq .L1740 - ldr r2, .L1788+4 - ldrb r2, [r2, #2244] @ zero_extendqisi2 + beq .L1797 + ldr r2, .L1848+4 + ldrb r2, [r2, #2252] @ zero_extendqisi2 cmp r2, #0 - bne .L1741 + bne .L1798 tst r3, #1 - bne .L1740 -.L1741: + bne .L1797 +.L1798: mov r0, #0 bl flash_enter_slc_mode mov r0, #0 - ldr r1, [r8, #1700] + ldr r1, [r8, #1704] bl FlashDdrParaScan mov r0, #0 bl flash_exit_slc_mode -.L1740: - ldr r3, [r4, #1204] - mov r8, #16 - ldr r6, .L1788+4 +.L1797: + ldr r3, [r4, #44] + mov r7, #16 + ldr r6, .L1848+4 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel - ldr r0, .L1788+72 + ldr r0, .L1848+76 bl FlashReadIdbDataRaw - ldr r0, .L1788+76 - strb r8, [r4, #1] + ldr r0, .L1848+80 + strb r7, [r4, #1] bl FlashTimingCfg - ldr r5, [r4, #1204] + ldr r5, [r4, #44] + ldrb r2, [r4, #2069] @ zero_extendqisi2 ldrb r3, [r5, #12] @ zero_extendqisi2 - ldrh r7, [r5, #14] - strh r3, [r4, #120] @ movhi - ldrb r3, [r5, #7] @ zero_extendqisi2 - str r3, [r4, #116] - ldr r3, [r4, #2068] - str r3, [r4, #112] - ldrb r3, [r4, #2229] @ zero_extendqisi2 - strh r3, [r4, #122] @ movhi - ldrb r3, [r5, #13] @ zero_extendqisi2 - strh r7, [r4, #126] @ movhi + ldrh r8, [r5, #14] strh r3, [r4, #124] @ movhi - ldrh r3, [r5, #10] + ldrb r3, [r5, #7] @ zero_extendqisi2 + str r3, [r4, #120] + mov r3, r2, asl r7 + orr r2, r3, r2, asl #8 + ldrb r3, [r4, #2068] @ zero_extendqisi2 + orr r3, r2, r3 + ldrb r2, [r4, #2071] @ zero_extendqisi2 + orr r3, r3, r2, asl #24 + str r3, [r4, #116] + ldrb r3, [r4, #2230] @ zero_extendqisi2 + strh r3, [r4, #126] @ movhi + ldrb r3, [r5, #13] @ zero_extendqisi2 + strh r8, [r4, #130] @ movhi strh r3, [r4, #128] @ movhi + ldrh r3, [r5, #10] + strh r3, [r4, #132] @ movhi ldrb r1, [r5, #12] @ zero_extendqisi2 ldrh r0, [r5, #10] bl __aeabi_idiv - strh r0, [r4, #130] @ movhi + strh r0, [r4, #134] @ movhi ldrb r2, [r5, #9] @ zero_extendqisi2 - strh r2, [r4, #132] @ movhi + strh r2, [r4, #136] @ movhi ldrb r1, [r5, #9] @ zero_extendqisi2 ldrh r3, [r5, #10] smulbb r3, r1, r3 mov r1, #512 - strh r1, [r4, #136] @ movhi + strh r1, [r4, #140] @ movhi ldrb r1, [r4, #1] @ zero_extendqisi2 - strh r1, [r4, #138] @ movhi + strh r1, [r4, #142] @ movhi uxth r3, r3 ldrb r1, [r4] @ zero_extendqisi2 - strh r3, [r4, #134] @ movhi + strh r3, [r4, #138] @ movhi cmp r1, #1 - bne .L1743 + bne .L1800 mov r3, r3, asl #1 - mov r1, r7, lsr #1 + mov r8, r8, lsr #1 mov r2, r2, asl #1 - strh r3, [r6, #134] @ movhi - strb r8, [r6, #1] - mov r3, #8 - strh r1, [r6, #126] @ movhi - strh r2, [r6, #132] @ movhi strh r3, [r6, #138] @ movhi -.L1743: + strb r7, [r6, #1] + mov r3, #8 + strh r8, [r6, #130] @ movhi + strh r2, [r6, #136] @ movhi + strh r3, [r6, #142] @ movhi +.L1800: ldrb r0, [r5, #20] @ zero_extendqisi2 bl FlashBchSel bl ftl_flash_suspend mov r0, #0 - b .L1758 -.L1745: + b .L1816 +.L1802: mvn r0, #1 -.L1758: +.L1816: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1789: +.L1849: .align 2 -.L1788: +.L1848: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2068 - .word .LC96 + .word .LC97 .word .LANCHOR0+1210 .word 1446522928 - .word .LANCHOR1+472 .word .LANCHOR1 - .word .LANCHOR1+3320 - .word .LANCHOR1+3196 - .word .LANCHOR0+44 - .word .LC97 - .word .LANCHOR2-572 + .word .LANCHOR1+3416 + .word .LANCHOR1+3292 + .word .LANCHOR0+48 + .word .LANCHOR1+472 + .word .LC98 + .word .LANCHOR2-568 .word HynixReadRetrial .word .LANCHOR0+1238 .word MicronReadRetrial .word ToshibaReadRetrial .word SamsungReadRetrial - .word .LANCHOR2-368 + .word samsung_read_retrial + .word .LANCHOR2-364 .word 150000 .fnend .size FlashInit, .-FlashInit @@ -10626,59 +10917,66 @@ FlashPageProgMsbFFData: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} + mov r7, r1 + ldr r1, .L1867 mov r4, r2 - ldr r2, .L1804 - mov r8, r1 - mov r7, r0 - ldrb r1, [r2, #140] @ zero_extendqisi2 - mov r6, r2 - ldr r3, [r2, #1204] - cmp r1, #0 + mov r6, r0 + ldrb r2, [r1, #144] @ zero_extendqisi2 + mov r5, r1 + ldr r3, [r1, #44] + cmp r2, #0 ldrb r3, [r3, #19] @ zero_extendqisi2 - beq .L1791 - ldr r2, [r2, #2240] + beq .L1851 + ldr r2, [r1, #2248] cmp r2, #0 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1791: +.L1851: sub r2, r3, #5 - cmp r3, #68 + cmp r3, #50 cmpne r2, #2 - bls .L1792 - sub r3, r3, #19 - tst r3, #239 - ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1792: - ldr r5, .L1804+4 + bls .L1852 + sub r2, r3, #19 + tst r2, #239 + moveq r2, #1 + movne r2, #0 + cmp r3, #68 + movne r3, r2 + orreq r3, r2, #1 + cmp r3, #0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L1852: + ldr r8, .L1867+4 movw r10, #65535 - sub r9, r5, #2624 -.L1794: - ldr r3, [r6, #1204] + ldr r9, .L1867+8 +.L1854: + ldr r3, [r5, #44] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1803 + bls .L1866 mov r3, r4, asl #1 ldrh r3, [r9, r3] cmp r3, r10 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mov r1, #255 mov r2, #32768 - ldr r0, [r5, #1712] + ldr r0, [r8, #1716] bl ftl_memset - ldr r2, [r5, #1712] - add r1, r4, r8 + ldr r2, [r8, #1716] + add r1, r4, r7 add r4, r4, #1 - mov r0, r7 + mov r0, r6 mov r3, r2 uxth r4, r4 bl FlashProgPage - b .L1794 -.L1803: + b .L1854 +.L1866: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1805: +.L1868: .align 2 -.L1804: +.L1867: .word .LANCHOR0 .word .LANCHOR2 + .word .LANCHOR2-2620 .fnend .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData .align 2 @@ -10688,7 +10986,7 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1857 + ldr r3, .L1920 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 @@ -10699,27 +10997,27 @@ FlashReadSlc2KPages: str r1, [sp, #16] str r2, [sp, #20] str r3, [sp, #12] -.L1807: +.L1870: ldr r3, [sp, #16] cmp r8, r3 - beq .L1856 + beq .L1919 ldr r3, [sp, #16] add r2, sp, #28 mov r0, r4 ldr r1, [sp, #20] rsb r3, r8, r3 - ldr r9, .L1857+4 + ldr r9, .L1920+4 uxtb r3, r3 str r3, [sp] add r3, sp, #24 mov fp, r9 bl LogAddr2PhyAddr - ldrb r2, [r9, #2229] @ zero_extendqisi2 + ldrb r2, [r9, #2230] @ zero_extendqisi2 ldr r3, [sp, #24] cmp r3, r2 mvncs r3, #0 strcs r3, [r4] - bcs .L1809 + bcs .L1872 add r3, r9, r3 mov r7, #0 ldrb r5, [r3, #2232] @ zero_extendqisi2 @@ -10727,7 +11025,7 @@ FlashReadSlc2KPages: bl NandcWaitFlashReady mov r0, r5 bl NandcFlashCs -.L1810: +.L1873: ldr r1, [sp, #28] mov r0, r5 bl FlashReadCmd @@ -10740,27 +11038,27 @@ FlashReadSlc2KPages: ldr r2, [sp, #12] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1857+8 - ldrb r3, [r3, #1728] @ zero_extendqisi2 + ldr r3, .L1920+8 + ldrb r3, [r3, #1732] @ zero_extendqisi2 cmp r3, #0 mov r6, r0 - beq .L1811 + beq .L1874 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi r6, #256 -.L1811: +.L1874: cmp r7, #9 cmnls r6, #1 moveq r3, #1 movne r3, #0 addeq r7, r7, #1 - beq .L1810 -.L1812: + beq .L1873 +.L1875: cmp r7, #0 mov r7, r3 movne r6, #256 -.L1814: +.L1877: ldr r3, [sp, #28] mov r0, r5 ldr r1, [fp, #4] @@ -10779,92 +11077,92 @@ FlashReadSlc2KPages: str r2, [sp] ldr r2, [sp, #12] bl NandcXferData - ldr r3, .L1857+8 - ldrb r2, [r3, #1728] @ zero_extendqisi2 + ldr r3, .L1920+8 + ldrb r2, [r3, #1732] @ zero_extendqisi2 cmp r2, #0 mov r10, r0 - beq .L1817 + beq .L1880 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi r10, #256 -.L1817: +.L1880: cmp r7, #9 cmnls r10, #1 addeq r7, r7, #1 - beq .L1814 -.L1818: + beq .L1877 +.L1881: cmp r7, #0 mov r0, r5 movne r10, #256 bl NandcFlashDeCs - ldrb r2, [r9, #2304] @ zero_extendqisi2 + ldrb r2, [r9, #2312] @ zero_extendqisi2 cmp r10, r6 movcs r3, r10 movcc r3, r6 add r2, r2, r2, asl #1 cmp r3, r2, asr #2 - bls .L1820 + bls .L1883 cmn r3, #1 movne r3, #256 -.L1820: +.L1883: cmp r3, #256 cmnne r3, #1 movne r3, #0 str r3, [r4] ldr r3, [r4, #12] cmp r3, #0 - beq .L1823 + beq .L1886 ldr r2, [r3, #12] cmn r2, #1 - bne .L1823 + bne .L1886 ldr r2, [r3, #8] cmn r2, #1 - bne .L1823 + bne .L1886 ldr r3, [r3] cmn r3, #1 strne r2, [r4] -.L1823: +.L1886: ldr r3, [r4] cmn r3, #1 - bne .L1809 + bne .L1872 ldr r1, [r4, #4] - ldr r0, .L1857+12 - ldrb r2, [r9, #2304] @ zero_extendqisi2 + ldr r0, .L1920+12 + ldrb r2, [r9, #2312] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cmp r1, #0 - beq .L1825 - ldr r0, .L1857+16 + beq .L1888 + ldr r0, .L1920+16 mov r2, #4 mov r3, #8 bl rknand_print_hex -.L1825: +.L1888: ldr r1, [r4, #12] cmp r1, #0 - beq .L1809 + beq .L1872 mov r2, #4 - ldr r0, .L1857+20 + ldr r0, .L1920+20 mov r3, r2 bl rknand_print_hex -.L1809: +.L1872: add r8, r8, #1 add r4, r4, #36 - b .L1807 -.L1856: + b .L1870 +.L1919: mov r0, #0 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1858: +.L1921: .align 2 -.L1857: +.L1920: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LC98 .word .LC99 .word .LC100 + .word .LC101 .fnend .size FlashReadSlc2KPages, .-FlashReadSlc2KPages .align 2 @@ -10874,12 +11172,12 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1934 + ldr r3, .L1997 stmfd sp!, {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 - ldr r6, .L1934+4 + ldr r6, .L1997+4 ldrb r3, [r3, #481] @ zero_extendqisi2 str r1, [sp, #20] ldrb r8, [r6] @ zero_extendqisi2 @@ -10888,17 +11186,17 @@ FlashReadPages: cmp r8, #0 str r2, [sp, #24] str r3, [sp, #28] - beq .L1896 + beq .L1959 bl FlashReadSlc2KPages - b .L1929 -.L1896: - ldr r10, .L1934+8 + b .L1992 +.L1959: + ldr r10, .L1997+8 mov r9, r0 mov fp, r8 -.L1860: +.L1923: ldr r3, [sp, #20] cmp fp, r3 - bcs .L1932 + bcs .L1995 mov r3, #36 add r2, sp, #44 mul r3, r3, fp @@ -10914,42 +11212,42 @@ FlashReadPages: str r3, [sp] add r3, sp, #40 bl LogAddr2PhyAddr - ldrb r2, [r6, #2229] @ zero_extendqisi2 + ldrb r2, [r6, #2230] @ zero_extendqisi2 ldr r3, [sp, #40] mov r5, r0 cmp r3, r2 ldrcs r2, [sp, #8] mvncs r3, #0 strcs r3, [r9, r2] - bcs .L1863 + bcs .L1926 add r3, r6, r3 ldrb r4, [r3, #2232] @ zero_extendqisi2 - ldrb r3, [r10, #1729] @ zero_extendqisi2 + ldrb r3, [r10, #1733] @ zero_extendqisi2 cmp r3, #0 mov r0, r4 moveq r5, #0 bl NandcWaitFlashReady - ldr r3, .L1934+4 - ldr r3, [r3, #1204] + ldr r3, .L1997+4 + ldr r3, [r3, #44] ldrb r2, [r3, #19] @ zero_extendqisi2 sub r3, r2, #1 cmp r3, #7 - bhi .L1865 + bhi .L1928 sub r2, r2, #7 add r1, r6, r4 cmp r2, #1 - ldr r2, .L1934+4 + ldr r2, .L1997+4 ldrb r3, [r1, #1222] @ zero_extendqisi2 add r2, r2, r4 ldrlsb r3, [r1, #1230] @ zero_extendqisi2 ldrb r2, [r2, #2064] @ zero_extendqisi2 cmp r2, r3 - beq .L1865 + beq .L1928 mov r0, r4 ldrb r1, [r6, #1211] @ zero_extendqisi2 - ldr r2, .L1934+12 + ldr r2, .L1997+12 bl HynixSetRRPara -.L1865: +.L1928: mov r0, r4 bl NandcFlashCs mov r0, r4 @@ -10960,42 +11258,42 @@ FlashReadPages: orreq r3, r3, #1 str r3, [sp, #12] cmp r3, #0 - beq .L1867 - ldr r3, .L1934+4 - ldrb r3, [r3, #140] @ zero_extendqisi2 + beq .L1930 + ldr r3, .L1997+4 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L1867 + beq .L1930 bl flash_enter_slc_mode - b .L1868 -.L1867: + b .L1931 +.L1930: bl flash_exit_slc_mode -.L1868: +.L1931: ldr r1, [sp, #44] cmn r1, #1 cmpeq r4, #255 moveq r3, #0 movne r3, #1 moveq r5, r3 - beq .L1870 + beq .L1933 cmp r5, #0 - beq .L1871 + beq .L1934 ldr r2, [r6, #4] mov r0, r4 add r2, r1, r2 bl FlashReadDpCmd - b .L1872 -.L1871: + b .L1935 +.L1934: mov r0, r4 bl FlashReadCmd -.L1872: +.L1935: mov r0, r4 bl NandcWaitFlashReady cmp r5, #0 - beq .L1870 + beq .L1933 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1870: +.L1933: ldr r3, [r7, #12] mov r0, r4 ldr r2, [sp, #16] @@ -11013,11 +11311,11 @@ FlashReadPages: movne r3, #0 strneb r3, [r6, #8] movne r5, r3 - bne .L1868 -.L1873: + bne .L1931 +.L1936: cmp r5, #0 - beq .L1874 - ldr r3, .L1934+4 + beq .L1937 + ldr r3, .L1997+4 str r0, [sp, #32] mov r0, r4 str r2, [sp, #36] @@ -11040,7 +11338,7 @@ FlashReadPages: ldr ip, [sp, #32] mov r8, r0 moveq r5, #0 -.L1874: +.L1937: mov r0, r4 str ip, [sp, #32] bl NandcFlashDeCs @@ -11048,17 +11346,17 @@ FlashReadPages: ldrb r3, [sp, #28] @ zero_extendqisi2 cmn ip, #1 strb r3, [r6, #8] - bne .L1881 - ldrb r3, [r6, #2244] @ zero_extendqisi2 + bne .L1944 + ldrb r3, [r6, #2252] @ zero_extendqisi2 cmp r3, #0 - bne .L1876 -.L1880: - ldr r5, [r10, #1692] + bne .L1939 +.L1943: + ldr r5, [r10, #1696] cmp r5, #0 - bne .L1877 - b .L1933 -.L1876: - ldr r3, [r6, #76] + bne .L1940 + b .L1996 +.L1939: + ldr r3, [r6, #80] mov r0, r4 ldr r1, [sp, #44] ldr r5, [r3, #304] @@ -11069,19 +11367,19 @@ FlashReadPages: bl FlashDdrTunningRead cmn r0, #1 mov ip, r0 - beq .L1879 - ldrb r3, [r6, #2304] @ zero_extendqisi2 + beq .L1942 + ldrb r3, [r6, #2312] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1899 -.L1879: + bls .L1962 +.L1942: ubfx r0, r5, #8, #8 str ip, [sp, #32] bl NandcSetDdrPara ldr ip, [sp, #32] cmn ip, #1 - beq .L1880 - b .L1899 -.L1877: + beq .L1943 + b .L1962 +.L1940: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] @@ -11089,75 +11387,75 @@ FlashReadPages: blx r5 cmn r0, #1 mov ip, r0 - bne .L1901 - ldr r3, [r6, #1204] + bne .L1964 + ldr r3, [r6, #44] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 cmp r3, #7 - bhi .L1883 + bhi .L1946 mov r0, r4 ldrb r1, [r6, #1211] @ zero_extendqisi2 - ldr r2, .L1934+12 + ldr r2, .L1997+12 mov r3, #0 bl HynixSetRRPara -.L1883: +.L1946: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage ldr r1, [r7, #4] - ldrb r2, [r6, #2304] @ zero_extendqisi2 + ldrb r2, [r6, #2312] @ zero_extendqisi2 mov ip, r0 - ldr r0, .L1934+16 + ldr r0, .L1997+16 mov r3, ip str ip, [sp, #32] bl printk ldr ip, [sp, #32] cmn ip, #1 - bne .L1901 - ldrb r5, [r6, #140] @ zero_extendqisi2 + bne .L1964 + ldrb r5, [r6, #144] @ zero_extendqisi2 cmp r5, #0 - beq .L1882 + beq .L1945 ldr r3, [sp, #12] mov r0, r4 cmp r3, #0 - beq .L1884 + beq .L1947 bl flash_enter_slc_mode - b .L1885 -.L1884: + b .L1948 +.L1947: bl flash_exit_slc_mode -.L1885: - ldr ip, [r10, #1692] +.L1948: + ldr ip, [r10, #1696] mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] blx ip mov ip, r0 - b .L1901 -.L1933: + b .L1964 +.L1996: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage mov ip, r0 - b .L1882 -.L1899: + b .L1945 +.L1962: mov r5, #0 -.L1881: - ldrb r3, [r6, #2304] @ zero_extendqisi2 +.L1944: + ldrb r3, [r6, #2312] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bls .L1882 - ldr r3, [r10, #1692] + bls .L1945 + ldr r3, [r10, #1696] cmp r3, #0 moveq ip, #256 - b .L1882 -.L1901: + b .L1945 +.L1964: mov r5, #0 -.L1882: +.L1945: cmp ip, #256 cmnne ip, #1 ldreq r3, [sp, #8] @@ -11168,29 +11466,29 @@ FlashReadPages: ldr r3, [sp, #8] ldr r3, [r9, r3] cmn r3, #1 - bne .L1889 + bne .L1952 ldr r1, [r7, #4] - ldr r0, .L1934+20 - ldrb r2, [r6, #2304] @ zero_extendqisi2 + ldr r0, .L1997+20 + ldrb r2, [r6, #2312] @ zero_extendqisi2 bl printk ldr r1, [r7, #12] cmp r1, #0 - beq .L1889 + beq .L1952 mov r2, #4 - ldr r0, .L1934+24 + ldr r0, .L1997+24 mov r3, r2 bl rknand_print_hex -.L1889: +.L1952: cmp r5, #0 - beq .L1891 - ldrb r3, [r6, #2304] @ zero_extendqisi2 + beq .L1954 + ldrb r3, [r6, #2312] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r8, r3, asr #2 - bls .L1892 - ldr r3, [r10, #1692] + bls .L1955 + ldr r3, [r10, #1696] cmp r3, #0 moveq r8, #256 -.L1892: +.L1955: ldr r3, [sp, #8] cmp r8, #256 cmnne r8, #1 @@ -11198,35 +11496,35 @@ FlashReadPages: movne r2, #0 streq r8, [r9, r3] strne r2, [r9, r3] -.L1891: +.L1954: ldr r3, [sp, #12] add fp, fp, r5 cmp r3, #0 - beq .L1863 - ldrb r3, [r6, #140] @ zero_extendqisi2 + beq .L1926 + ldrb r3, [r6, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L1863 + beq .L1926 mov r0, r4 bl flash_exit_slc_mode -.L1863: +.L1926: add fp, fp, #1 - b .L1860 -.L1932: + b .L1923 +.L1995: mov r0, #0 -.L1929: +.L1992: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1935: +.L1998: .align 2 -.L1934: +.L1997: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+1214 + .word .LC102 + .word .LC99 .word .LC101 - .word .LC98 - .word .LC100 .fnend .size FlashReadPages, .-FlashReadPages .align 2 @@ -11239,38 +11537,38 @@ FlashLoadFactorBbt: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r2, #16 - ldr r4, .L1949 + ldr r4, .L2012 .pad #60 sub sp, sp, #60 - ldr r0, .L1949+4 + ldr r0, .L2012+4 mov r1, #0 - ldr r10, .L1949+8 + ldr r10, .L2012+8 mov r5, #0 - ldrh r3, [r4, #126] + ldrh r3, [r4, #130] mvn fp, #0 - ldrh r6, [r4, #124] + ldrh r6, [r4, #128] mov r9, r5 mov r8, r4 smulbb r6, r6, r3 bl ftl_memset - ldr r3, [r10, #1716] + ldr r3, [r10, #1720] uxth r6, r6 add r2, r6, fp str r3, [sp, #32] uxth r3, r2 str r5, [sp, #28] str r3, [sp, #4] -.L1937: - ldrb r3, [r8, #2229] @ zero_extendqisi2 +.L2000: + ldrb r3, [r8, #2230] @ zero_extendqisi2 uxtb r7, r5 cmp r3, r7 - bls .L1948 + bls .L2011 mul ip, r6, r7 ldr r4, [sp, #4] sub r3, r6, #12 -.L1938: +.L2001: cmp r4, r3 - ble .L1940 + ble .L2003 add r2, ip, r4 mov r1, #1 add r0, sp, #20 @@ -11284,44 +11582,44 @@ FlashLoadFactorBbt: ldr ip, [sp, #8] cmn r2, #1 ldr r3, [sp, #12] - beq .L1939 - ldr r2, [r10, #1716] + beq .L2002 + ldr r2, [r10, #1720] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L1939 + bne .L2002 mov r1, r7 - ldr r0, .L1949+12 + ldr r0, .L2012+12 mov r2, r4 mov r7, r7, asl #1 bl printk - ldr r3, .L1949+4 + ldr r3, .L2012+4 add r9, r9, #1 strh r4, [r3, r7] @ movhi uxth r9, r9 - b .L1940 -.L1939: + b .L2003 +.L2002: sub r4, r4, #1 uxth r4, r4 - b .L1938 -.L1940: - ldrb r3, [r8, #2229] @ zero_extendqisi2 + b .L2001 +.L2003: + ldrb r3, [r8, #2230] @ zero_extendqisi2 add r5, r5, #1 cmp r3, r9 moveq fp, #0 - b .L1937 -.L1948: + b .L2000 +.L2011: mov r0, fp add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1950: +.L2013: .align 2 -.L1949: +.L2012: .word .LANCHOR0 - .word .LANCHOR2+1732 + .word .LANCHOR2+1736 .word .LANCHOR2 - .word .LC102 + .word .LC103 .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 2 @@ -11331,24 +11629,23 @@ FlashProgSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L2044 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 sub sp, sp, #68 - ldr r8, .L1982 + ldr r8, .L2044+4 mov r6, r1 - str r3, [sp, #12] + ldrb r3, [r3, #481] @ zero_extendqisi2 mov r9, r2 - ldr r3, .L1982+4 mov r4, r0 mov r10, r0 mov r7, #0 mov fp, r8 - ldrb r3, [r3, #481] @ zero_extendqisi2 - str r3, [sp, #8] -.L1952: + str r3, [sp, #12] +.L2015: cmp r7, r6 - beq .L1981 + beq .L2042 rsb r3, r7, r6 add r2, sp, #20 mov r0, r10 @@ -11357,12 +11654,12 @@ FlashProgSlc2KPages: str r3, [sp] add r3, sp, #24 bl LogAddr2PhyAddr - ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldrb r2, [r8, #2230] @ zero_extendqisi2 ldr r3, [sp, #24] cmp r3, r2 mvncs r3, #0 strcs r3, [r10] - bcs .L1954 + bcs .L2017 add r3, r8, r3 ldrb r5, [r3, #2232] @ zero_extendqisi2 mov r0, r5 @@ -11375,7 +11672,7 @@ FlashProgSlc2KPages: ldr r3, [r10, #12] mov r1, #1 mov r0, r5 - ldr r2, [sp, #8] + ldr r2, [sp, #12] str r3, [sp] ldr r3, [r10, #8] bl NandcXferData @@ -11403,7 +11700,7 @@ FlashProgSlc2KPages: cmp r2, #0 addne r2, r2, #8 str r2, [sp] - ldr r2, [sp, #8] + ldr r2, [sp, #12] bl NandcXferData ldr r1, [fp, #4] mov r0, r5 @@ -11420,28 +11717,25 @@ FlashProgSlc2KPages: mvnne r3, #0 strne r3, [r10] bl NandcFlashDeCs -.L1954: +.L2017: add r7, r7, #1 add r10, r10, #36 - b .L1952 -.L1981: - ldr r3, [sp, #12] - cmp r3, #0 - beq .L1979 - ldr r5, .L1982+8 + b .L2015 +.L2042: + ldr r5, .L2044+8 mov r7, #0 mov r8, r5 -.L1959: +.L2022: cmp r7, r6 - beq .L1979 + beq .L2043 ldr r3, [r4] cmn r3, #1 - bne .L1960 + bne .L2023 ldr r1, [r4, #4] - ldr r0, .L1982+12 + ldr r0, .L2044+12 bl printk - b .L1961 -.L1960: + b .L2024 +.L2023: rsb r3, r7, r6 mov r1, r9 add r2, sp, #20 @@ -11450,11 +11744,11 @@ FlashProgSlc2KPages: str r3, [sp] add r3, sp, #24 bl LogAddr2PhyAddr - ldr r2, [r5, #1720] + ldr r2, [r5, #1724] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r5, #1724] + ldr r2, [r5, #1728] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} add ip, sp, #28 @@ -11466,65 +11760,74 @@ FlashProgSlc2KPages: mov r1, #1 mov r2, r9 str r3, [ip] - ldr r3, [r5, #1720] - str r3, [sp, #36] ldr r3, [r5, #1724] + str r3, [sp, #36] + ldr r3, [r5, #1728] str r3, [sp, #40] bl FlashReadPages ldr r10, [sp, #28] cmn r10, #1 - bne .L1962 - ldr r0, .L1982+16 + bne .L2025 + ldr r0, .L2044+16 ldr r1, [r4, #4] bl printk str r10, [r4] -.L1962: +.L2025: + ldr r10, [sp, #28] + cmp r10, #256 + bne .L2026 + ldr r0, .L2044+20 + ldr r1, [r4, #4] + bl printk + str r10, [r4] +.L2026: ldr r3, [r4, #12] cmp r3, #0 - beq .L1963 + beq .L2027 + ldr r2, [r3] + ldr r3, [r8, #1728] + ldr r3, [r3] + cmp r2, r3 + beq .L2027 + ldr r0, .L2044+24 + ldr r1, [r4, #4] + bl printk + mvn r3, #0 + str r3, [r4] +.L2027: + ldr r3, [r4, #8] + cmp r3, #0 + beq .L2024 ldr r2, [r3] ldr r3, [r8, #1724] ldr r3, [r3] cmp r2, r3 - beq .L1963 - ldr r0, .L1982+20 + beq .L2024 + ldr r0, .L2044+28 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1963: - ldr r3, [r4, #8] - cmp r3, #0 - beq .L1961 - ldr r2, [r3] - ldr r3, [r8, #1720] - ldr r3, [r3] - cmp r2, r3 - beq .L1961 - ldr r0, .L1982+24 - ldr r1, [r4, #4] - bl printk - mvn r3, #0 - str r3, [r4] -.L1961: +.L2024: add r7, r7, #1 add r4, r4, #36 - b .L1959 -.L1979: + b .L2022 +.L2043: mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1983: +.L2045: .align 2 -.L1982: - .word .LANCHOR0 +.L2044: .word .LANCHOR1 + .word .LANCHOR0 .word .LANCHOR2 - .word .LC103 .word .LC104 .word .LC105 .word .LC106 + .word .LC107 + .word .LC108 .fnend .size FlashProgSlc2KPages, .-FlashProgSlc2KPages .align 2 @@ -11538,64 +11841,64 @@ FtlLoadFactoryBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, #0 - ldr r5, .L1996 - ldr r6, .L1996+4 - ldr r3, [r5, #-528] + ldr r5, .L2058 + ldr r6, .L2058+4 + ldr r3, [r5, #-524] sub r9, r6, #76 - ldr r8, [r5, #-504] + ldr r8, [r5, #-500] sub r10, r6, #120 mov fp, r9 - str r3, [r5, #1756] - str r8, [r5, #1760] -.L1985: + str r3, [r5, #1760] + str r8, [r5, #1764] +.L2047: ldrh r3, [r10] cmp r7, r3 - bcs .L1995 + bcs .L2057 ldrh r4, [r9] mvn r3, #0 movw ip, #61664 strh r3, [r6, #2]! @ movhi add r4, r4, r3 uxth r4, r4 -.L1986: +.L2048: ldrh r3, [fp] sub r2, r3, #16 cmp r4, r2 - ble .L1988 + ble .L2050 mla r3, r3, r7, r4 mov r1, #1 - ldr r0, .L1996+8 + ldr r0, .L2058+8 mov r2, r1 str ip, [sp, #4] mov r3, r3, asl #10 - str r3, [r5, #1752] + str r3, [r5, #1756] bl FlashReadPages - ldr r3, [r5, #1748] + ldr r3, [r5, #1752] cmn r3, #1 ldr ip, [sp, #4] - beq .L1987 + beq .L2049 ldrh r3, [r8] cmp r3, ip streqh r4, [r6] @ movhi - beq .L1988 -.L1987: + beq .L2050 +.L2049: sub r4, r4, #1 uxth r4, r4 - b .L1986 -.L1988: + b .L2048 +.L2050: add r7, r7, #1 - b .L1985 -.L1995: + b .L2047 +.L2057: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1997: +.L2059: .align 2 -.L1996: +.L2058: .word .LANCHOR2 - .word .LANCHOR0+2458 - .word .LANCHOR2+1748 + .word .LANCHOR0+2462 + .word .LANCHOR2+1752 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 @@ -11606,38 +11909,37 @@ FtlGetLastWrittenPage: @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 cmp r1, #1 + ldr r3, .L2073 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - movweq r3, #2386 - ldreq r2, .L2010 + movweq r2, #2390 + movwne r2, #2388 .pad #104 sub sp, sp, #104 - ldrne r3, .L2010+4 + ldrh r4, [r3, r2] mov r8, r1 - mov r6, r0, asl #10 - mov r1, #1 - ldreqh r4, [r2, r3] - add r0, sp, #4 - ldrneh r4, [r3] - mov r2, r8 add r3, sp, #40 - str r3, [sp, #16] + mov r6, r0, asl #10 sub r5, r4, #1 + str r3, [sp, #16] + add r0, sp, #4 + mov r1, #1 + uxth r5, r5 + mov r2, r8 mov r7, #0 str r7, [sp, #12] - uxth r5, r5 sxth r3, r5 orr r3, r3, r6 str r3, [sp, #8] bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L2001 -.L2002: + bne .L2063 +.L2064: sxth r4, r7 sxth r3, r5 cmp r4, r3 - bgt .L2001 + bgt .L2063 add r4, r4, r3 add r0, sp, #4 mov r1, #1 @@ -11650,29 +11952,28 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L2003 + bne .L2065 ldr r3, [sp, #44] cmn r3, #1 - bne .L2003 + bne .L2065 ldr r3, [sp, #4] cmn r3, #1 subne r4, r4, #1 uxthne r5, r4 - bne .L2002 -.L2003: + bne .L2064 +.L2065: add r3, r4, #1 uxth r7, r3 - b .L2002 -.L2001: + b .L2064 +.L2063: sxth r0, r5 add sp, sp, #104 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2011: +.L2074: .align 2 -.L2010: +.L2073: .word .LANCHOR0 - .word .LANCHOR0+2384 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage .align 2 @@ -11684,174 +11985,177 @@ FtlLoadBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r4, .L2045 - ldr r7, .L2045+4 - ldr r8, .L2045+8 - ldr r3, [r4, #-528] + ldr r4, .L2108 + ldr r7, .L2108+4 + ldr r8, .L2108+8 + ldr r3, [r4, #-524] mov r9, r4 - ldr r6, [r4, #-504] - str r3, [r4, #1756] - str r6, [r4, #1760] + ldr r6, [r4, #-500] + str r3, [r4, #1760] + str r6, [r4, #1764] bl FtlBbtMemInit - movw r3, #2382 + movw r3, #2386 ldrh r5, [r7, r3] sub r5, r5, #1 uxth r5, r5 -.L2013: +.L2076: ldrh r3, [r8] sub r3, r3, #48 cmp r5, r3 - ble .L2016 + ble .L2079 mov r1, #1 - ldr r0, .L2045+12 + ldr r0, .L2108+12 mov r2, r1 mov r3, r5, asl #10 - str r3, [r4, #1752] + str r3, [r4, #1756] bl FlashReadPages - ldr r3, [r4, #1748] + ldr r3, [r4, #1752] cmn r3, #1 - bne .L2014 - ldr r3, [r9, #1752] + bne .L2077 + ldr r3, [r9, #1756] mov r1, #1 - ldr r0, .L2045+12 + ldr r0, .L2108+12 mov r2, r1 add r3, r3, #1 - str r3, [r9, #1752] + str r3, [r9, #1756] bl FlashReadPages -.L2014: - ldr r3, [r4, #1748] +.L2077: + ldr r3, [r4, #1752] cmn r3, #1 - beq .L2015 + beq .L2078 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L2015 - ldr r2, [r6, #4] - ldr r3, .L2045+16 - str r2, [r7, #2456] + bne .L2078 + movw r3, #2452 + strh r5, [r7, r3] @ movhi + ldr r3, [r6, #4] + str r3, [r7, #2460] + ldr r3, .L2108+16 ldrh r2, [r6, #8] - strh r5, [r3] @ movhi strh r2, [r3, #4] @ movhi - b .L2016 -.L2015: + b .L2079 +.L2078: sub r5, r5, #1 uxth r5, r5 - b .L2013 -.L2016: - ldr r7, .L2045+4 + b .L2076 +.L2079: + movw r9, #2452 movw r2, #65535 - add r5, r7, #2448 - ldrh r3, [r5] + ldrh r3, [r7, r9] + ldr r8, .L2108+4 cmp r3, r2 - beq .L2030 + ldr r5, .L2108+16 + beq .L2093 ldrh r3, [r5, #4] cmp r3, r2 - beq .L2020 + beq .L2083 mov r1, #1 - ldr r0, .L2045+12 + ldr r0, .L2108+12 mov r2, r1 mov r3, r3, asl #10 - str r3, [r4, #1752] + str r3, [r4, #1756] bl FlashReadPages - ldr r3, [r4, #1748] + ldr r3, [r4, #1752] cmn r3, #1 - beq .L2020 + beq .L2083 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L2020 + bne .L2083 ldr r3, [r6, #4] - ldr r2, [r7, #2456] + ldr r2, [r8, #2460] cmp r3, r2 - strhi r3, [r7, #2456] + strhi r3, [r8, #2460] ldrhih r2, [r5, #4] ldrhih r3, [r6, #8] - strhih r2, [r5] @ movhi + strhih r2, [r8, r9] @ movhi strhih r3, [r5, #4] @ movhi -.L2020: - ldrh r0, [r5] +.L2083: + movw r3, #2452 mov r1, #1 - bl FtlGetLastWrittenPage + ldrh r0, [r7, r3] movw r8, #61649 + bl FtlGetLastWrittenPage uxth r7, r0 add r0, r0, #1 strh r0, [r5, #2] @ movhi -.L2022: +.L2085: sxth r3, r7 cmp r3, #0 - blt .L2027 + blt .L2090 ldrh r2, [r5] mov r1, #1 - ldr r0, .L2045+12 + ldr r0, .L2108+12 orr r3, r3, r2, asl #10 - str r3, [r4, #1752] - ldr r3, [r4, #-528] - mov r2, r1 str r3, [r4, #1756] + ldr r3, [r4, #-524] + mov r2, r1 + str r3, [r4, #1760] bl FlashReadPages - ldr r3, [r4, #1748] + ldr r3, [r4, #1752] cmn r3, #1 - beq .L2023 + beq .L2086 ldrh r3, [r6] cmp r3, r8 - bne .L2023 -.L2027: + bne .L2086 +.L2090: ldrh r2, [r6, #10] ldrh r0, [r6, #12] - ldr r3, .L2045+4 + ldr r3, .L2108+4 strh r2, [r5, #6] @ movhi movw r2, #65535 cmp r0, r2 - bne .L2024 - b .L2025 -.L2023: + bne .L2087 + b .L2088 +.L2086: sub r7, r7, #1 uxth r7, r7 - b .L2022 -.L2024: - ldr r2, [r3, #2312] + b .L2085 +.L2087: + ldr r2, [r3, #2316] cmp r0, r2 - beq .L2025 - movw r1, #2326 + beq .L2088 + movw r1, #2330 ldrh r3, [r3, r1] mov r3, r3, lsr #2 cmp r0, r3 cmpcc r2, r3 - bcs .L2025 + bcs .L2088 bl FtlSysBlkNumInit -.L2025: - ldr r6, .L2045+20 +.L2088: + ldr r6, .L2108+20 mov r5, #0 - ldr r8, .L2045+24 + ldr r8, .L2108+24 sub r7, r6, #134 -.L2028: +.L2091: ldrh r3, [r7] cmp r5, r3 - bcs .L2044 + bcs .L2107 ldrh r2, [r8] - ldr r1, [r4, #1756] + ldr r1, [r4, #1760] ldr r0, [r6, #4]! mov r2, r2, asl #2 mla r1, r5, r2, r1 bl ftl_memcpy add r5, r5, #1 - b .L2028 -.L2044: + b .L2091 +.L2107: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2030: +.L2093: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2046: +.L2109: .align 2 -.L2045: +.L2108: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+2382 - .word .LANCHOR2+1748 - .word .LANCHOR0+2448 - .word .LANCHOR0+2472 - .word .LANCHOR2-440 + .word .LANCHOR0+2386 + .word .LANCHOR2+1752 + .word .LANCHOR0+2452 + .word .LANCHOR0+2476 + .word .LANCHOR2-436 .fnend .size FtlLoadBbt, .-FtlLoadBbt .align 2 @@ -11864,68 +12168,69 @@ FtlScanSysBlk: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, #0 - ldr r7, .L2133 + ldr r7, .L2196 mov r1, r5 - ldr r4, .L2133+4 + ldr r4, .L2196+4 .pad #36 sub sp, sp, #36 - movw r6, #2404 - ldr r2, [r7, #2412] - sub r3, r4, #392 - ldr r0, [r4, #-448] + movw r6, #2408 + ldr r2, [r7, #2416] + sub r3, r4, #388 + ldr r0, [r4, #-444] mov r8, r4 strh r5, [r3] @ movhi - movw r3, #2430 + movw r3, #2434 mov r2, r2, asl #2 strh r5, [r7, r3] @ movhi bl ftl_memset - ldr r2, [r7, #2412] + ldr r2, [r7, #2416] mov r1, r5 - ldr r0, [r4, #-476] + ldr r0, [r4, #-472] mov r2, r2, asl #1 bl ftl_memset ldrh r2, [r7, r6] mov r1, r5 - ldr r0, [r4, #-464] + ldr r0, [r4, #-460] mov r2, r2, asl #2 bl ftl_memset ldrh r2, [r7, r6] - ldr r0, [r7, #2432] + ldr r0, [r7, #2436] mov r1, r5 mov r2, r2, asl #1 bl ftl_memset - ldr r0, .L2133+8 + ldr r0, .L2196+8 mov r1, #255 mov r2, #16 bl ftl_memset - movw r3, #2324 + movw r3, #2328 ldrh r3, [r7, r3] str r7, [sp, #16] mov r7, r4 str r3, [sp, #4] -.L2048: - ldr r3, .L2133+12 +.L2111: + ldr r3, .L2196+12 ldr r2, [sp, #4] - ldr r0, .L2133 + ldr r1, .L2196 ldrh r3, [r3] cmp r3, r2 - bls .L2089 - ldr r1, [r4, #-2696] + mov r0, r1 + bls .L2152 + add r3, r1, #2320 + add r1, r1, #2400 + ldr r0, [r4, #-2692] mov r5, #0 - ldr r3, .L2133+16 - mov fp, r5 - ldr r2, [r4, #-2700] - mov r9, #36 - str r1, [sp, #8] - ldr r1, .L2133+20 ldrh ip, [r3] - ldr r3, [r4, #-540] sub r6, r1, #52 + ldr r3, [r4, #-536] + mov fp, r5 + ldr r2, [r4, #-2696] + mov r9, #36 ldrh r10, [r1] -.L2090: + str r0, [sp, #8] +.L2153: uxth r1, r5 cmp r1, ip - bcs .L2128 + bcs .L2191 ldr r1, [sp, #4] ldrb r0, [r6, r5] @ zero_extendqisi2 str r2, [sp, #28] @@ -11939,7 +12244,7 @@ FtlScanSysBlk: ldr ip, [sp, #20] ldr r3, [sp, #24] ldr r2, [sp, #28] - bne .L2049 + bne .L2112 mla r0, r9, fp, r3 mov r1, r1, asl #10 stmib r0, {r1, r2} @@ -11953,37 +12258,37 @@ FtlScanSysBlk: str r1, [r0, #12] add r0, fp, #1 uxth fp, r0 -.L2049: +.L2112: add r5, r5, #1 - b .L2090 -.L2128: + b .L2153 +.L2191: cmp fp, #0 - beq .L2052 - ldr r0, [r4, #-540] + beq .L2115 + ldr r0, [r4, #-536] mov r1, fp mov r2, #1 bl FlashReadPages mov r3, #0 -.L2126: +.L2189: str r3, [sp, #8] ldrh r3, [sp, #8] cmp r3, fp - bcs .L2052 + bcs .L2115 ldr r3, [sp, #8] mov r9, #36 mul r9, r9, r3 - ldr r3, [r4, #-540] + ldr r3, [r4, #-536] add r2, r3, r9 ldr r3, [r3, r9] ldr r5, [r2, #4] cmn r3, #1 ldr r6, [r2, #12] ubfx r5, r5, #10, #16 - bne .L2055 + bne .L2118 mov r10, #16 movw ip, #65535 -.L2054: - ldr r0, [r4, #-540] +.L2117: + ldr r0, [r4, #-536] mov r1, #1 mov r2, r1 str ip, [sp, #12] @@ -11995,66 +12300,66 @@ FtlScanSysBlk: ldrh r3, [r6] ldr ip, [sp, #12] cmp r3, ip - ldreq r3, [r8, #-540] + ldreq r3, [r8, #-536] mvneq r2, #0 streq r2, [r3, r9] - beq .L2055 -.L2056: - ldr r3, [r7, #-540] + beq .L2118 +.L2119: + ldr r3, [r7, #-536] ldr r3, [r3, r9] cmn r3, #1 - bne .L2055 + bne .L2118 sub r10, r10, #1 uxth r10, r10 cmp r10, #0 - bne .L2054 -.L2055: - ldr r3, [r7, #-540] + bne .L2117 +.L2118: + ldr r3, [r7, #-536] ldr r3, [r3, r9] cmn r3, #1 - beq .L2058 - ldr r2, [r7, #-3336] + beq .L2121 + ldr r2, [r7, #-3332] ldr r3, [r6, #4] cmn r2, #1 - beq .L2059 + beq .L2122 cmp r2, r3 - bhi .L2060 -.L2059: + bhi .L2123 +.L2122: cmn r3, #1 addne r2, r3, #1 - strne r2, [r8, #-3336] -.L2060: + strne r2, [r8, #-3332] +.L2123: ldrh r2, [r6] movw r1, #61604 cmp r2, r1 - beq .L2062 - bhi .L2063 + beq .L2125 + bhi .L2126 movw r3, #61574 cmp r2, r3 - bne .L2061 - ldr r2, .L2133+24 - ldr lr, [r8, #-464] + bne .L2124 + ldr r2, .L2196+16 + ldr lr, [r8, #-460] ldrh ip, [r2] ldrh r1, [r2, #26] sub r0, ip, #1 rsb r2, r1, r0 str r2, [sp, #12] uxth r3, r0 - b .L2076 -.L2063: + b .L2139 +.L2126: movw r3, #61634 cmp r2, r3 - beq .L2065 + beq .L2128 movw r3, #65535 cmp r2, r3 moveq r0, r5 - beq .L2127 - b .L2061 -.L2065: + beq .L2190 + b .L2124 +.L2128: ldr r3, [sp, #16] - ldr ip, .L2133+28 - ldr r9, [r4, #-448] - ldr lr, [r3, #2412] + ldr ip, .L2196+20 + ldr r9, [r4, #-444] + ldr lr, [r3, #2416] ldrh r2, [ip] uxth r1, lr sub r3, r1, #1 @@ -12063,236 +12368,236 @@ FtlScanSysBlk: uxth r3, r3 sxth r1, r1 str r1, [sp, #20] -.L2067: +.L2130: ldr r1, [sp, #20] sxth r0, r3 cmp r0, r1 - ble .L2129 + ble .L2192 mov r10, r0, asl #2 ldr r1, [r6, #4] str r10, [sp, #12] ldr r10, [r9, r0, asl #2] cmp r1, r10 - bls .L2068 + bls .L2131 ldr r1, [r9] cmp r1, #0 - bne .L2069 + bne .L2132 cmp r2, lr addne r2, r2, #1 strneh r2, [ip] @ movhi -.L2069: +.L2132: uxth r9, r3 mov r1, #0 -.L2070: +.L2133: uxth r2, r1 cmp r2, r9 - bcs .L2130 - ldr lr, [r7, #-448] + bcs .L2193 + ldr lr, [r7, #-444] sxth r2, r2 add r1, r1, #1 add r10, lr, r2, asl #2 ldr r10, [r10, #4] str r10, [lr, r2, asl #2] mov r2, r2, asl #1 - ldr lr, [r7, #-476] + ldr lr, [r7, #-472] add r10, lr, r2 ldrh r10, [r10, #2] strh r10, [lr, r2] @ movhi - b .L2070 -.L2130: - ldr r2, [r4, #-448] + b .L2133 +.L2193: + ldr r2, [r4, #-444] mov r0, r0, asl #1 ldr r1, [r6, #4] ldr lr, [sp, #12] str r1, [r2, lr] - ldr r2, [r4, #-476] + ldr r2, [r4, #-472] strh r5, [r2, r0] @ movhi sxth r0, r3 cmp r0, #0 - bge .L2072 - b .L2061 -.L2068: + bge .L2135 + b .L2124 +.L2131: sub r3, r3, #1 uxth r3, r3 - b .L2067 -.L2129: + b .L2130 +.L2192: cmp r0, #0 - bge .L2103 - b .L2061 -.L2072: - ldr r1, .L2133 + bge .L2166 + b .L2124 +.L2135: + ldr r1, .L2196 ldrh r2, [ip] - ldr r1, [r1, #2412] + ldr r1, [r1, #2416] rsb r1, r2, r1 sub r1, r1, #1 sxth r1, r1 cmp r0, r1 - bgt .L2061 -.L2103: + bgt .L2124 +.L2166: add r2, r2, #1 ldr r1, [r6, #4] strh r2, [ip] @ movhi sxth r3, r3 - ldr r2, [r4, #-448] + ldr r2, [r4, #-444] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r4, #-476] - b .L2124 -.L2082: + ldr r2, [r4, #-472] + b .L2187 +.L2145: ldr r9, [lr, r2, asl #2] mov r10, r2, asl #2 ldr r0, [r6, #4] cmp r0, r9 - bhi .L2131 + bhi .L2194 sub r3, r3, #1 uxth r3, r3 -.L2076: +.L2139: ldr r0, [sp, #12] sxth r2, r3 cmp r2, r0 - bgt .L2082 - b .L2081 -.L2131: + bgt .L2145 + b .L2144 +.L2194: ldr r0, [lr] cmp r0, #0 - bne .L2078 + bne .L2141 cmp r1, ip addne r1, r1, #1 - ldrne r0, .L2133+32 + ldrne r0, .L2196+24 strneh r1, [r0] @ movhi -.L2078: +.L2141: uxth lr, r3 mov r0, #0 -.L2079: +.L2142: uxth r1, r0 cmp r1, lr - bcs .L2132 - ldr ip, [r4, #-464] + bcs .L2195 + ldr ip, [r4, #-460] sxth r1, r1 add r0, r0, #1 add r9, ip, r1, asl #2 ldr r9, [r9, #4] str r9, [ip, r1, asl #2] mov r1, r1, asl #1 - ldr ip, .L2133 - ldr ip, [ip, #2432] + ldr ip, .L2196 + ldr ip, [ip, #2436] add r9, ip, r1 ldrh r9, [r9, #2] strh r9, [ip, r1] @ movhi - b .L2079 -.L2132: - ldr r1, [r8, #-464] + b .L2142 +.L2195: + ldr r1, [r8, #-460] mov r2, r2, asl #1 ldr r0, [r6, #4] str r0, [r1, r10] - ldr r1, .L2133 - ldr r1, [r1, #2432] + ldr r1, .L2196 + ldr r1, [r1, #2436] strh r5, [r1, r2] @ movhi -.L2081: +.L2144: sxth r3, r3 cmp r3, #0 - blt .L2061 - ldr r0, .L2133+32 + blt .L2124 + ldr r0, .L2196+24 ldrh r2, [r0, #-26] ldrh r1, [r0] sub r2, r2, #1 rsb r2, r1, r2 sxth r2, r2 cmp r3, r2 - bgt .L2061 + bgt .L2124 add r1, r1, #1 - ldr r2, [r8, #-464] + ldr r2, [r8, #-460] strh r1, [r0] @ movhi ldr r1, [r6, #4] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, .L2133 - ldr r2, [r2, #2432] -.L2124: + ldr r2, .L2196 + ldr r2, [r2, #2436] +.L2187: strh r5, [r2, r3] @ movhi - b .L2061 -.L2062: - ldr r2, .L2133+8 + b .L2124 +.L2125: + ldr r2, .L2196+8 movw r1, #65535 ldrh r0, [r2] cmp r0, r1 streqh r5, [r2] @ movhi - beq .L2125 + beq .L2188 ldrh r0, [r2, #4] cmp r0, r1 - beq .L2084 + beq .L2147 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2084: +.L2147: ldr r3, [r6, #4] - ldr r2, [r8, #-3296] + ldr r2, [r8, #-3292] cmp r2, r3 - ldr r3, .L2133+8 + ldr r3, .L2196+8 strcsh r5, [r3, #4] @ movhi - bcs .L2061 + bcs .L2124 ldrh r2, [r3] strh r5, [r3] @ movhi strh r2, [r3, #4] @ movhi ldr r3, [r6, #4] -.L2125: - str r3, [r7, #-3296] - b .L2061 -.L2058: - ldr r3, .L2133 +.L2188: + str r3, [r7, #-3292] + b .L2124 +.L2121: + ldr r3, .L2196 mov r0, r5 - ldrb r1, [r3, #140] @ zero_extendqisi2 + ldrb r1, [r3, #144] @ zero_extendqisi2 cmp r1, #0 - beq .L2086 -.L2127: + beq .L2149 +.L2190: mov r1, #0 -.L2086: +.L2149: bl FtlFreeSysBlkQueueIn -.L2061: +.L2124: ldr r3, [sp, #8] add r3, r3, #1 - b .L2126 -.L2052: + b .L2189 +.L2115: ldr r3, [sp, #4] add r5, r3, #1 uxth r3, r5 str r3, [sp, #4] - b .L2048 -.L2089: - ldr r3, .L2133+4 - ldr ip, [r3, #-476] + b .L2111 +.L2152: + ldr r3, .L2196+4 + ldr ip, [r3, #-472] ldrh r2, [ip] cmp r2, #0 - beq .L2091 -.L2094: - ldr r0, [r0, #2432] - ldr r3, .L2133 + beq .L2154 +.L2157: + ldr r0, [r0, #2436] + ldr r3, .L2196 ldrh r2, [r0] cmp r2, #0 - beq .L2092 - b .L2115 -.L2091: - sub r3, r3, #392 + beq .L2155 + b .L2178 +.L2154: + sub r3, r3, #388 ldrh r3, [r3] cmp r3, #0 - ldrne lr, [r0, #2412] - beq .L2094 -.L2095: + ldrne lr, [r1, #2416] + beq .L2157 +.L2158: uxth r3, r2 sxth r1, r3 cmp r1, lr - bcs .L2094 + bcs .L2157 mov r5, r1, asl #1 add r2, r2, #1 ldrh r5, [ip, r5] cmp r5, #0 - beq .L2095 + beq .L2158 mov r6, #0 -.L2096: - ldr ip, [r0, #2412] +.L2159: + ldr ip, [r0, #2416] sxth r2, r3 cmp r2, ip - bcs .L2094 - ldr lr, [r4, #-476] + bcs .L2157 + ldr lr, [r4, #-472] mov ip, r2, asl #1 rsb r5, r1, r2 add r3, r3, #1 @@ -12300,38 +12605,38 @@ FtlScanSysBlk: mov r7, r5, asl #1 uxth r3, r3 strh r8, [lr, r7] @ movhi - ldr lr, [r4, #-448] + ldr lr, [r4, #-444] ldr r2, [lr, r2, asl #2] str r2, [lr, r5, asl #2] - ldr r2, [r4, #-476] + ldr r2, [r4, #-472] strh r6, [r2, ip] @ movhi - b .L2096 -.L2092: - movw r1, #2430 + b .L2159 +.L2155: + movw r1, #2434 ldrh r1, [r3, r1] cmp r1, #0 - movwne r1, #2404 + movwne r1, #2408 ldrneh ip, [r3, r1] - beq .L2115 -.L2099: + beq .L2178 +.L2162: uxth r3, r2 sxth r1, r3 cmp r1, ip - bge .L2115 + bge .L2178 mov lr, r1, asl #1 add r2, r2, #1 ldrh lr, [r0, lr] cmp lr, #0 - beq .L2099 - ldr r0, .L2133 + beq .L2162 + ldr r0, .L2196 mov r7, #0 - ldr r6, .L2133+24 -.L2100: + ldr r6, .L2196+16 +.L2163: ldrh ip, [r6] sxth r2, r3 cmp r2, ip - bge .L2115 - ldr lr, [r0, #2432] + bge .L2178 + ldr lr, [r0, #2436] mov ip, r2, asl #1 rsb r5, r1, r2 add r3, r3, #1 @@ -12339,29 +12644,27 @@ FtlScanSysBlk: mov r8, r5, asl #1 uxth r3, r3 strh r9, [lr, r8] @ movhi - ldr lr, [r4, #-464] + ldr lr, [r4, #-460] ldr r2, [lr, r2, asl #2] str r2, [lr, r5, asl #2] - ldr r2, [r0, #2432] + ldr r2, [r0, #2436] strh r7, [r2, ip] @ movhi - b .L2100 -.L2115: + b .L2163 +.L2178: mov r0, #0 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2134: +.L2197: .align 2 -.L2133: +.L2196: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2-3304 - .word .LANCHOR0+2326 - .word .LANCHOR0+2316 - .word .LANCHOR0+2396 - .word .LANCHOR0+2404 - .word .LANCHOR2-392 - .word .LANCHOR0+2430 + .word .LANCHOR2-3300 + .word .LANCHOR0+2330 + .word .LANCHOR0+2408 + .word .LANCHOR2-388 + .word .LANCHOR0+2434 .fnend .size FtlScanSysBlk, .-FtlScanSysBlk .align 2 @@ -12374,58 +12677,58 @@ FtlLoadSysInfo: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r1, #0 - ldr r4, .L2164 + ldr r4, .L2227 .pad #36 sub sp, sp, #36 - ldr r6, .L2164+4 + ldr r6, .L2227+4 sub r7, r4, #3296 - ldr r3, [r4, #-528] - ldr r0, [r4, #-3548] - str r3, [r4, #1756] - ldr r3, [r4, #-504] + ldr r3, [r4, #-524] + ldr r0, [r4, #-3544] str r3, [r4, #1760] - movw r3, #2324 + ldr r3, [r4, #-500] + str r3, [r4, #1764] + movw r3, #2328 ldrh r2, [r6, r3] mov r2, r2, asl #1 bl ftl_memset - ldrh r0, [r7, #-8] + ldrh r0, [r7, #-4] movw r3, #65535 cmp r0, r3 - bne .L2136 -.L2147: + bne .L2199 +.L2210: mvn r0, #0 - b .L2137 -.L2136: + b .L2200 +.L2199: mov r1, #1 bl FtlGetLastWrittenPage - ldr r3, .L2164+8 - ldrh r9, [r7, #-8] + ldr r3, .L2227+8 + ldrh r9, [r7, #-4] mov r7, r4 uxth r5, r0 add r0, r0, #1 strh r0, [r3, #2] @ movhi -.L2138: +.L2201: sxth r3, r5 cmp r3, #0 - blt .L2146 + blt .L2209 sxth fp, r9 mov r1, #1 - ldr r0, .L2164+12 + ldr r0, .L2227+12 mov r2, r1 orr r3, r3, fp, asl #10 - str r3, [r4, #1752] - ldr r3, [r4, #-528] str r3, [r4, #1756] + ldr r3, [r4, #-524] + str r3, [r4, #1760] bl FlashReadPages ldrb r3, [r6] @ zero_extendqisi2 cmp r3, #0 - beq .L2139 - ldr r8, [r7, #1760] + beq .L2202 + ldr r8, [r7, #1764] ldr r3, [r8, #12] cmp r3, #0 - beq .L2139 - ldr r2, [r7, #1756] - ldr r10, .L2164+16 + beq .L2202 + ldr r2, [r7, #1760] + ldr r10, .L2227+16 str r3, [sp, #28] mov r0, r2 str r2, [sp, #24] @@ -12433,14 +12736,14 @@ FtlLoadSysInfo: bl js_hash ldr r3, [sp, #28] cmp r3, r0 - beq .L2139 + beq .L2202 cmp r5, #0 ldr r2, [sp, #24] - bne .L2140 - ldr ip, .L2164+8 + bne .L2203 + ldr ip, .L2227+8 ldrh r1, [ip, #4] cmp fp, r1 - beq .L2140 + beq .L2203 ldr r0, [r8] ldrh r1, [ip] str ip, [sp, #24] @@ -12451,217 +12754,218 @@ FtlLoadSysInfo: str r3, [sp, #12] str r0, [sp, #8] ldr r3, [r2] - ldr r0, .L2164+20 + ldr r0, .L2227+20 str r3, [sp, #16] - ldr r2, [r7, #1748] - ldr r3, [r7, #1752] + ldr r2, [r7, #1752] + ldr r3, [r7, #1756] bl printk ldrh r5, [r10, #-8] ldr ip, [sp, #24] ldrh r9, [ip, #4] - b .L2142 -.L2140: + b .L2205 +.L2203: mvn r3, #0 - str r3, [r4, #1748] -.L2139: - ldr r3, [r4, #1748] + str r3, [r4, #1752] +.L2202: + ldr r3, [r4, #1752] cmn r3, #1 - beq .L2142 - ldr r3, [r7, #-528] - ldr r2, .L2164+24 + beq .L2205 + ldr r3, [r7, #-524] + ldr r2, .L2227+24 ldr r3, [r3] cmp r3, r2 - bne .L2142 - ldr r3, [r7, #-504] + bne .L2205 + ldr r3, [r7, #-500] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L2142 -.L2146: - ldr r1, [r4, #1756] + bne .L2205 +.L2209: + ldr r5, .L2227 mov r2, #48 - movw r8, #2324 - ldr r0, .L2164+28 + ldr r1, [r4, #1760] + movw r8, #2328 + sub r0, r5, #3600 + ldr r7, .L2227+4 bl ftl_memcpy ldrh r2, [r6, r8] - ldr r1, [r4, #1756] - ldr r0, [r4, #-3548] + ldr r1, [r4, #1760] + ldr r0, [r4, #-3544] add r1, r1, #48 mov r2, r2, asl #1 bl ftl_memcpy ldrh r2, [r6, r8] - ldr r1, [r4, #1756] - add r3, r2, #24 - ldr r0, [r4, #-3372] - ubfx r3, r3, #1, #30 + ldr r1, [r4, #1760] + ldr r0, [r4, #-3368] + mov r3, r2, asl #1 mov r2, r2, lsr #3 + add r3, r3, #51 add r2, r2, #4 - ldr r5, .L2164 - add r1, r1, r3, asl #2 - ldr r7, .L2164+4 + bic r3, r3, #3 + add r1, r1, r3 bl ftl_memcpy - movw r3, #2428 - ldrh r3, [r6, r3] + add r3, r7, #2432 + ldrh r3, [r3] cmp r3, #0 - beq .L2144 + beq .L2207 ldrh r2, [r7, r8] - ldr r1, [r5, #1756] - ldr r0, [r5, #-452] + ldr r1, [r5, #1760] + ldr r0, [r5, #-448] mov r3, r2, lsr #3 add r3, r3, r2, asl #1 - movw r2, #2420 + movw r2, #2424 ldrh r2, [r7, r2] add r3, r3, #52 ubfx r3, r3, #2, #14 mov r2, r2, asl #2 add r1, r1, r3, asl #2 bl ftl_memcpy - b .L2144 -.L2142: + b .L2207 +.L2205: sub r5, r5, #1 uxth r5, r5 - b .L2138 -.L2144: - ldr r2, [r4, #-3604] - ldr r3, .L2164+24 - ldr r5, .L2164 + b .L2201 +.L2207: + ldr r2, [r4, #-3600] + ldr r3, .L2227+24 + ldr r5, .L2227 cmp r2, r3 - bne .L2147 - ldr r7, .L2164+28 - movw r1, #2338 - ldrb r0, [r5, #-3594] @ zero_extendqisi2 - sub r8, r5, #3296 - ldrh r1, [r6, r1] + bne .L2210 + sub r7, r5, #3600 + movw r1, #2342 + ldrb r0, [r5, #-3590] @ zero_extendqisi2 add r3, r7, #300 + ldrh r1, [r6, r1] + sub r8, r5, #3296 ldrh r2, [r7, #8] cmp r0, r1 strh r2, [r3, #6] @ movhi - ldr r3, .L2164+4 - bne .L2147 - add r1, r3, #2384 - movw r0, #2390 + ldr r3, .L2227+4 + bne .L2210 + movw r1, #2388 + movw r0, #2394 + ldrh r1, [r3, r1] ldrh r0, [r3, r0] - ldrh r1, [r1] - str r2, [r5, #1784] + add r3, r3, #2320 + str r2, [r5, #1788] mul r1, r2, r1 - str r1, [r3, #2444] + str r1, [r3, #128] mul r1, r0, r1 - str r1, [r3, #2424] - add r1, r3, #2448 + str r1, [r3, #108] + ldr r1, .L2227+28 ldrh r0, [r1, #6] - ldr r1, [r3, #2328] + ldr r1, [r3, #12] rsb r0, r0, r1 + ldrh r1, [r3] rsb r0, r2, r0 - movw r2, #2316 - ldrh r1, [r3, r2] bl __aeabi_uidiv sub r3, r5, #3520 add r2, r7, #76 sub lr, r5, #3280 sub ip, r5, #3424 - strh r0, [r8, #-12] @ movhi + strh r0, [r8, #-8] @ movhi mov r8, ip ldrh r0, [r7, #14] - strh r0, [r3, #-8] @ movhi + strh r0, [r3, #-4] @ movhi ldrh r3, [r7, #16] mov r1, r3, lsr #6 and r3, r3, #63 - strb r3, [r5, #-3522] - ldrb r3, [r5, #-3593] @ zero_extendqisi2 + strb r3, [r5, #-3518] + ldrb r3, [r5, #-3589] @ zero_extendqisi2 strh r1, [r7, #78] @ movhi ldrh r1, [r7, #18] - strb r3, [r5, #-3520] + strb r3, [r5, #-3516] mvn r3, #0 - strh r3, [lr, #-8] @ movhi + strh r3, [lr, #-4] @ movhi mov r3, #0 strh r3, [r2, #242] @ movhi sub r2, r5, #3472 - strb r3, [r5, #-3282] - strh r1, [r2, #-8] @ movhi + strb r3, [r5, #-3278] + strh r1, [r2, #-4] @ movhi ldrh r1, [r7, #20] - strb r3, [r5, #-3280] - str r3, [r5, #-3348] + strb r3, [r5, #-3276] + str r3, [r5, #-3344] mov r6, r1, lsr #6 and r1, r1, #63 - strb r1, [r5, #-3474] - ldrb r1, [r5, #-3592] @ zero_extendqisi2 - strh r6, [r2, #-6] @ movhi + strb r1, [r5, #-3470] + ldrb r1, [r5, #-3588] @ zero_extendqisi2 + strh r6, [r2, #-2] @ movhi mov r6, r2 - strb r1, [r5, #-3472] + strb r1, [r5, #-3468] ldrh r1, [r7, #22] - strh r1, [ip, #-8] @ movhi + strh r1, [ip, #-4] @ movhi ldrh r1, [r7, #24] mov r7, r1, lsr #6 and r1, r1, #63 - strb r1, [r5, #-3426] - ldrb r1, [r5, #-3591] @ zero_extendqisi2 - strh r7, [r2, #42] @ movhi + strb r1, [r5, #-3422] + ldrb r1, [r5, #-3587] @ zero_extendqisi2 + strh r7, [r2, #46] @ movhi mov r7, lr - strb r1, [r5, #-3424] - str r3, [r5, #-3360] - ldr r1, [r5, #-3572] - str r3, [r5, #-3368] - str r3, [r5, #-3352] - str r3, [r5, #-3324] - str r3, [r5, #-3316] + strb r1, [r5, #-3420] str r3, [r5, #-3356] - ldr r3, [r5, #-3564] - str r1, [r5, #-3328] - ldr r1, [r5, #-3336] - ldr r2, [r4, #-3332] + ldr r1, [r5, #-3568] + str r3, [r5, #-3364] + str r3, [r5, #-3348] + str r3, [r5, #-3320] + str r3, [r5, #-3312] + str r3, [r5, #-3352] + ldr r3, [r5, #-3560] + str r1, [r5, #-3324] + ldr r1, [r5, #-3332] + ldr r2, [r4, #-3328] cmp r3, r1 - strhi r3, [r5, #-3336] - ldr r3, [r4, #-3568] + strhi r3, [r5, #-3332] + ldr r3, [r4, #-3564] cmp r3, r2 - ldrhi r2, .L2164 - strhi r3, [r2, #-3332] + ldrhi r2, .L2227 + strhi r3, [r2, #-3328] movw r3, #65535 cmp r0, r3 - beq .L2150 - ldr r0, .L2164+32 + beq .L2213 + ldr r0, .L2227+32 bl make_superblock -.L2150: - ldrh r2, [r6, #-8] +.L2213: + ldrh r2, [r6, #-4] movw r3, #65535 cmp r2, r3 - beq .L2151 - ldr r0, .L2164+36 + beq .L2214 + ldr r0, .L2227+36 bl make_superblock -.L2151: - ldrh r2, [r8, #-8] +.L2214: + ldrh r2, [r8, #-4] movw r3, #65535 cmp r2, r3 - beq .L2152 - ldr r0, .L2164+40 + beq .L2215 + ldr r0, .L2227+40 bl make_superblock -.L2152: - ldrh r2, [r7, #-8] +.L2215: + ldrh r2, [r7, #-4] movw r3, #65535 cmp r2, r3 - beq .L2153 - ldr r0, .L2164+44 + beq .L2216 + ldr r0, .L2227+44 bl make_superblock -.L2153: +.L2216: mov r0, #0 -.L2137: +.L2200: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2165: +.L2228: .align 2 -.L2164: +.L2227: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-3304 - .word .LANCHOR2+1748 - .word .LANCHOR0+2394 - .word .LC107 + .word .LANCHOR2-3300 + .word .LANCHOR2+1752 + .word .LANCHOR0+2398 + .word .LC109 .word 1179929683 - .word .LANCHOR2-3604 - .word .LANCHOR2-3528 - .word .LANCHOR2-3480 - .word .LANCHOR2-3432 - .word .LANCHOR2-3288 + .word .LANCHOR0+2452 + .word .LANCHOR2-3524 + .word .LANCHOR2-3476 + .word .LANCHOR2-3428 + .word .LANCHOR2-3284 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 @@ -12673,29 +12977,29 @@ FtlDumpBlockInfo: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - ubfx r0, r0, #10, #16 + movw r3, #2388 + ldr r5, .L2243 .pad #100 sub sp, sp, #100 + ubfx r0, r0, #10, #16 mov r4, r1 + ldr r7, .L2243+4 + ldrh r9, [r5, r3] bl P2V_block_in_plane - ldr r8, .L2180 - ldr r7, .L2180+4 - add r5, r8, #2384 - ldr r1, .L2180+8 - ldrh r9, [r5] + ldr r1, .L2243+8 mov r6, r0 - ldr r0, .L2180+12 + ldr r0, .L2243+12 bl printk - ldr r2, [r7, #-3548] + ldr r2, [r7, #-3544] mov r3, r6, asl #1 mov r1, r6 - ldr r0, .L2180+16 + ldr r0, .L2243+16 ldrh r2, [r2, r3] bl printk add r0, sp, #96 strh r6, [r0, #-48]! @ movhi bl make_superblock - ldrb r2, [r8, #140] @ zero_extendqisi2 + ldrb r2, [r5, #144] @ zero_extendqisi2 clz r3, r4 cmp r2, #0 mov r3, r3, lsr #5 @@ -12703,47 +13007,48 @@ FtlDumpBlockInfo: cmp r3, #0 moveq r4, r3 str r7, [sp, #44] - beq .L2167 + beq .L2230 mov r0, r6 bl ftl_get_blk_mode cmp r0, #1 mov r4, r0 - movweq r3, #2386 - ldreqh r9, [r8, r3] -.L2167: - ldr r0, .L2180+20 + movweq r3, #2390 + ldreqh r9, [r5, r3] +.L2230: + movw r3, #2388 + ldr r0, .L2243+20 mov r1, r4 mov r2, r9 - ldrh r3, [r5] - bl printk - ldr r8, .L2180+4 + ldrh r3, [r5, r3] mov r6, #0 -.L2168: - ldr r3, .L2180+24 + bl printk + ldr r8, .L2243+4 +.L2231: + ldr r3, .L2243+24 add r0, sp, #62 movw lr, #65535 mov r10, #36 ldrh r3, [r3] mov r7, r3 - ldr r3, [r8, #-540] + ldr r3, [r8, #-536] str r3, [sp, #28] - ldr r3, [r8, #-2700] + ldr r3, [r8, #-2696] str r3, [sp, #32] - ldr r3, .L2180+28 + ldr r3, .L2243+28 ldrh r2, [r3] ldrh ip, [r3, #2] str r2, [sp, #36] - ldr r2, [r8, #-2696] + ldr r2, [r8, #-2692] str r2, [sp, #40] mov r2, #0 mov r5, r2 -.L2169: +.L2232: uxth r3, r2 cmp r3, r7 - bcs .L2178 + bcs .L2241 ldrh r3, [r0, #2]! cmp r3, lr - beq .L2170 + beq .L2233 ldr r1, [sp, #28] orr r3, r6, r3, asl #10 mla r1, r10, r5, r1 @@ -12767,24 +13072,24 @@ FtlDumpBlockInfo: bic r3, r3, #3 add r3, fp, r3 str r3, [r1, #12] -.L2170: +.L2233: add r2, r2, #1 - b .L2169 -.L2178: - ldr r0, [r8, #-540] + b .L2232 +.L2241: + ldr r0, [r8, #-536] mov r1, r5 mov r2, r4 mov r10, #0 bl FlashReadPages mov fp, #36 -.L2172: +.L2235: uxth r3, r10 cmp r3, r5 - bcs .L2179 + bcs .L2242 ldr r3, [sp, #44] mul r2, fp, r10 ldrh r1, [sp, #48] - ldr lr, [r3, #-540] + ldr lr, [r3, #-536] add r10, r10, #1 add ip, lr, r2 ldr r3, [ip, #12] @@ -12800,34 +13105,34 @@ FtlDumpBlockInfo: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2180+32 + ldr r0, .L2243+32 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2172 -.L2179: + b .L2235 +.L2242: add r6, r6, #1 uxth r6, r6 cmp r6, r9 - bne .L2168 -.L2174: + bne .L2231 +.L2237: mov r0, #0 add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2181: +.L2244: .align 2 -.L2180: +.L2243: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR3+16 - .word .LC108 - .word .LC109 + .word .LANCHOR3+148 .word .LC110 - .word .LANCHOR0+2316 - .word .LANCHOR0+2394 .word .LC111 + .word .LC112 + .word .LANCHOR0+2320 + .word .LANCHOR0+2398 + .word .LC113 .fnend .size FtlDumpBlockInfo, .-FtlDumpBlockInfo .align 2 @@ -12841,54 +13146,54 @@ FtlScanAllBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #92 sub sp, sp, #92 - ldr r0, .L2197 + ldr r0, .L2260 mov r7, #0 - ldr r1, .L2197+4 + ldr r1, .L2260+4 bl printk - ldr r5, .L2197+8 + ldr r5, .L2260+8 mov r6, r5 -.L2183: - ldr r3, .L2197+12 +.L2246: + ldr r3, .L2260+12 uxth r4, r7 ldrh r3, [r3] cmp r3, r4 - bls .L2193 + bls .L2256 add r8, sp, #88 mov r0, r4 movw r9, #65535 mov r10, #36 strh r4, [r8, #-48]! @ movhi bl ftl_get_blk_mode - ldr ip, [r5, #-3548] + ldr ip, [r5, #-3544] mov r2, r4, asl #1 mov r1, r4 ldrh r2, [ip, r2] mov r3, r0 - ldr r0, .L2197+16 + ldr r0, .L2260+16 bl printk mov r0, r8 bl make_superblock - ldr r3, .L2197+20 - ldr lr, [r5, #-2696] + ldr r3, .L2260+20 + ldr lr, [r5, #-2692] ldrh r2, [r3] ldrh ip, [r3, #78] ldrh r8, [r3, #80] str r2, [sp, #28] add r0, sp, #54 - ldr r2, [r5, #-540] + ldr r2, [r5, #-536] str r2, [sp, #32] - ldr r2, [r5, #-2700] + ldr r2, [r5, #-2696] str r2, [sp, #36] mov r2, #0 mov r4, r2 -.L2184: +.L2247: ldr r1, [sp, #28] uxth r3, r2 cmp r3, r1 - bcs .L2194 + bcs .L2257 ldrh r3, [r0, #2]! cmp r3, r9 - beq .L2185 + beq .L2248 ldr r1, [sp, #32] mov r3, r3, asl #10 mla r1, r10, r4, r1 @@ -12910,22 +13215,22 @@ FtlScanAllBlock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2185: +.L2248: add r2, r2, #1 - b .L2184 -.L2194: - ldr r0, [r6, #-540] + b .L2247 +.L2257: + ldr r0, [r6, #-536] mov r1, r4 mov r2, #0 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2187: +.L2250: uxth r3, r8 cmp r3, r4 - bcs .L2195 + bcs .L2258 mul r2, r9, r8 - ldr lr, [r6, #-540] + ldr lr, [r6, #-536] ldrh r1, [sp, #40] add r8, r8, #1 add ip, lr, r2 @@ -12942,25 +13247,25 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2197+24 + ldr r0, .L2260+24 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2187 -.L2195: - ldr r0, [r6, #-540] + b .L2250 +.L2258: + ldr r0, [r6, #-536] mov r1, r4 mov r2, #1 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2189: +.L2252: uxth r3, r8 cmp r3, r4 - bcs .L2196 + bcs .L2259 mul r2, r9, r8 - ldr lr, [r6, #-540] + ldr lr, [r6, #-536] ldrh r1, [sp, #40] add r8, r8, #1 add ip, lr, r2 @@ -12977,31 +13282,31 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2197+28 + ldr r0, .L2260+28 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2189 -.L2196: + b .L2252 +.L2259: add r7, r7, #1 - b .L2183 -.L2193: + b .L2246 +.L2256: mov r0, #0 add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2198: +.L2261: .align 2 -.L2197: - .word .LC108 - .word .LANCHOR3+36 +.L2260: + .word .LC110 + .word .LANCHOR3+168 .word .LANCHOR2 - .word .LANCHOR0+2326 - .word .LC112 - .word .LANCHOR0+2316 - .word .LC113 + .word .LANCHOR0+2330 .word .LC114 + .word .LANCHOR0+2320 + .word .LC115 + .word .LC116 .fnend .size FtlScanAllBlock, .-FtlScanAllBlock .align 2 @@ -13011,45 +13316,81 @@ ftl_scan_all_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2206 - movw r2, #2382 - stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - add r7, r3, #2384 - ldrh r1, [r3, r2] - .pad #28 - sub sp, sp, #28 - ldr r0, .L2206+4 - sub r9, r7, #2 - ldrh r2, [r7] - mov r6, #0 - bl printk - ldr r4, .L2206+8 -.L2200: - ldrh r3, [r9] - cmp r6, r3 - bcs .L2202 - mov r8, r6, asl #10 - mov r5, #0 -.L2203: + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + movw r3, #2386 + ldr r6, .L2281 + .pad #24 + sub sp, sp, #24 + ldr r5, .L2281+4 + ldrh r4, [r6, r3] + sub r4, r4, #16 +.L2263: + ldr r7, .L2281+8 ldrh r3, [r7] - cmp r5, r3 - bcs .L2205 - add r3, r5, r8 - str r3, [r4, #1752] - ldr r3, [r4, #-528] + cmp r4, r3 + bge .L2279 + uxth r8, r4 + mov r0, r8 + bl ftl_get_blk_mode + ldrb r3, [r6, #144] @ zero_extendqisi2 + cmp r3, #0 + beq .L2264 + ldrh r3, [r7, #-58] + cmp r4, r3 + bge .L2265 + ldrh r3, [r7, #16] + cmp r4, r3 + blt .L2265 +.L2264: + cmp r0, #1 + bne .L2266 +.L2265: + ldr r3, .L2281+12 + mov r9, #-2147483648 + ldrh r7, [r3] + b .L2267 +.L2266: + ldr r3, .L2281+16 + mov r9, #0 + ldrh r7, [r3] +.L2267: + mov r1, r4 + mov r2, r7 + mov r3, r9 + ldr r0, .L2281+20 + bl printk + mov r0, r8 + bl FtlBbmIsBadBlock + cmp r0, #0 + beq .L2268 + ldr r0, .L2281+24 + mov r1, r4 + mov r2, r7 + mov r3, r9 + bl printk +.L2268: + mov r10, r4, asl #10 + mov r8, #0 +.L2269: + cmp r8, r7 + beq .L2280 + add r3, r9, r10 mov r2, #0 + add r3, r3, r8 + str r3, [r5, #1756] + ldr r3, [r5, #-524] mov r1, #1 - ldr r0, .L2206+12 - str r2, [r4, #1748] - add r5, r5, #1 - str r3, [r4, #1756] - ldr r3, [r4, #-504] - str r3, [r4, #1760] + ldr r0, .L2281+28 + add r8, r8, #1 + str r2, [r5, #1752] + str r3, [r5, #1760] + ldr r3, [r5, #-500] + str r3, [r5, #1764] bl FlashReadPages - ldr r3, [r4, #1760] - ldr r2, [r4, #1756] - ldr r0, .L2206+16 + ldr r3, [r5, #1764] + ldr r2, [r5, #1760] + ldr r0, .L2281+32 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -13059,32 +13400,36 @@ ftl_scan_all_ppa: ldr r1, [r2] str r1, [sp, #12] ldr r2, [r2, #4] - ldr r1, [r4, #1752] + ldr r1, [r5, #1756] str r2, [sp, #16] - ldr r2, [r4, #1748] + ldr r2, [r5, #1752] ldr r3, [r3] bl printk - b .L2203 -.L2205: - add r6, r6, #1 - b .L2200 -.L2202: - ldr r0, .L2206+20 - ldr r1, .L2206+24 - add sp, sp, #28 + b .L2269 +.L2280: + add r4, r4, #1 + b .L2263 +.L2279: + ldr r0, .L2281+36 + ldr r1, .L2281+40 + add sp, sp, #24 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, lr} + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} b printk -.L2207: +.L2282: .align 2 -.L2206: +.L2281: .word .LANCHOR0 - .word .LC115 .word .LANCHOR2 - .word .LANCHOR2+1748 - .word .LC116 + .word .LANCHOR0+2386 + .word .LANCHOR0+2390 + .word .LANCHOR0+2388 .word .LC117 - .word .LANCHOR3+52 + .word .LC118 + .word .LANCHOR2+1752 + .word .LC119 + .word .LC120 + .word .LANCHOR3+184 .fnend .size ftl_scan_all_ppa, .-ftl_scan_all_ppa .align 2 @@ -13098,28 +13443,28 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 sub sp, sp, #76 - ldr r5, .L2265 + ldr r6, .L2339 mov r4, r0 str r1, [sp, #8] mov r9, r2 str r3, [sp, #20] - ldr ip, [r5, #1204] - ldrb r7, [r5] @ zero_extendqisi2 + ldr ip, [r6, #44] + ldrb r7, [r6] @ zero_extendqisi2 ldrb ip, [ip, #19] @ zero_extendqisi2 cmp r7, #0 str ip, [sp, #16] - ldr ip, .L2265+4 + ldr ip, .L2339+4 ldrb ip, [ip, #481] @ zero_extendqisi2 str ip, [sp, #12] - beq .L2209 + beq .L2284 bl FlashProgSlc2KPages - b .L2210 -.L2223: + b .L2285 +.L2297: mov r3, #36 - add r2, sp, #28 + mov r1, r9 mul r8, r3, r7 ldr r3, [sp, #8] - mov r1, r9 + add r2, sp, #28 rsb r3, r7, r3 add fp, r4, r8 uxtb r3, r3 @@ -13127,41 +13472,36 @@ FlashProgPages: mov r0, fp add r3, sp, #32 bl LogAddr2PhyAddr - ldrb r2, [r5, #2229] @ zero_extendqisi2 - ldr r3, [sp, #32] + ldrb r3, [r6, #2230] @ zero_extendqisi2 mov r10, r0 - cmp r3, r2 + ldr r0, [sp, #32] + cmp r0, r3 mvncs r3, #0 strcs r3, [r4, r8] - bcc .L2262 -.L2212: + bcc .L2336 +.L2287: add r7, r7, #1 -.L2209: +.L2284: ldr r3, [sp, #8] - ldr r6, .L2265 + ldr r5, .L2339 cmp r7, r3 - bcc .L2223 - b .L2263 -.L2262: - ldrb r1, [r5, #2305] @ zero_extendqisi2 - add r3, r5, r3, asl #4 - cmp r1, #0 + bcc .L2297 + b .L2337 +.L2336: + ldrb r3, [r6, #2240] @ zero_extendqisi2 + cmp r3, #0 + add r3, r6, r0, asl #4 ldr r3, [r3, #2108] moveq r10, #0 cmp r3, #0 - beq .L2214 - cmp r2, #1 - bne .L2215 - ldr r0, [r5, #76] - bl NandcIqrWaitFlashReady -.L2215: - ldrb r0, [sp, #32] @ zero_extendqisi2 + beq .L2289 + uxtb r0, r0 bl FlashWaitCmdDone -.L2214: +.L2289: ldr r3, [sp, #32] mov r1, #0 cmp r10, #0 - add r2, r5, r3, asl #4 + add r2, r6, r3, asl #4 str r1, [r2, #2112] ldr r1, [sp, #28] str fp, [r2, #2108] @@ -13169,146 +13509,144 @@ FlashProgPages: addne r1, r8, #36 addne r1, r4, r1 strne r1, [r2, #2112] - add r2, r5, r3 - add r3, r5, r3, asl #4 - ldrb r6, [r2, #2232] @ zero_extendqisi2 - strb r6, [r3, #2100] - mov r0, r6 - ldrb r3, [r5, #2229] @ zero_extendqisi2 + add r2, r6, r3 + add r3, r6, r3, asl #4 + ldrb r5, [r2, #2232] @ zero_extendqisi2 + strb r5, [r3, #2100] + mov r0, r5 + ldrb r3, [r6, #2230] @ zero_extendqisi2 cmp r3, #1 - bne .L2217 + bne .L2291 bl NandcWaitFlashReady - b .L2218 -.L2217: + b .L2292 +.L2291: bl NandcFlashCs - mov r0, r6 + mov r0, r5 ldr r3, [sp, #32] ldr r1, [sp, #28] - add r3, r5, r3, asl #2 - ldr r2, [r3, #1168] + add r3, r6, r3, asl #2 + ldr r2, [r3, #1172] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN - mov r0, r6 + mov r0, r5 bl NandcFlashDeCs -.L2218: +.L2292: ldr r3, [sp, #16] sub r3, r3, #1 cmp r3, #7 - bhi .L2219 - add r3, r5, r6 + bhi .L2293 + add r3, r6, r5 ldrb r3, [r3, #2064] @ zero_extendqisi2 cmp r3, #0 - beq .L2219 - mov r0, r6 - ldrb r1, [r5, #1211] @ zero_extendqisi2 - ldr r2, .L2265+8 + beq .L2293 + mov r0, r5 + ldrb r1, [r6, #1211] @ zero_extendqisi2 + ldr r2, .L2339+8 mov r3, #0 bl HynixSetRRPara -.L2219: - mov r0, r6 +.L2293: + mov r0, r5 bl NandcFlashCs cmp r9, #1 - mov r0, r6 - bne .L2220 - ldrb r3, [r5, #140] @ zero_extendqisi2 + mov r0, r5 + bne .L2294 + ldrb r3, [r6, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L2220 + beq .L2294 bl flash_enter_slc_mode - b .L2221 -.L2220: + b .L2295 +.L2294: bl flash_exit_slc_mode -.L2221: - mov r0, r6 +.L2295: + mov r0, r5 ldr r1, [sp, #28] bl FlashProgFirstCmd ldr r3, [fp, #12] - mov r0, r6 + mov r0, r5 mov r1, #1 str r3, [sp] ldr r2, [sp, #12] ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L2222 - mov r0, r6 + beq .L2296 + mov r0, r5 ldr r1, [sp, #28] bl FlashProgDpFirstCmd - mov r0, r6 + mov r0, r5 add r8, r8, #36 add r8, r4, r8 ldr r3, [sp, #32] ldr r1, [sp, #28] - add r3, r5, r3, asl #2 - ldr r2, [r3, #1168] + add r3, r6, r3, asl #2 + ldr r2, [r3, #1172] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN - ldr r1, [r5, #4] - mov r0, r6 + ldr r1, [r6, #4] + mov r0, r5 ldr r3, [sp, #28] add r1, r1, r3 bl FlashProgDpSecondCmd ldr r3, [r8, #12] - mov r0, r6 + mov r0, r5 mov r1, #1 str r3, [sp] ldr r2, [sp, #12] ldr r3, [r8, #8] bl NandcXferData -.L2222: - mov r0, r6 +.L2296: + mov r0, r5 ldr r1, [sp, #28] bl FlashProgSecondCmd - mov r0, r6 + mov r0, r5 bl NandcFlashDeCs add r7, r7, r10 - b .L2212 -.L2263: - ldr r0, [r6, #76] - mov r5, #0 - bl NandcIqrWaitFlashReady - ldr r8, .L2265+12 - mov r7, r6 -.L2224: - ldrb r3, [r6, #2229] @ zero_extendqisi2 - cmp r5, r3 - bcs .L2264 - uxtb r0, r5 - bl FlashWaitCmdDone - cmp r9, #1 - bne .L2225 - ldrb r3, [r7, #140] @ zero_extendqisi2 - cmp r3, #0 - beq .L2225 - ldrb r0, [r8, r5, asl #4] @ zero_extendqisi2 - bl flash_exit_slc_mode -.L2225: - add r5, r5, #1 - b .L2224 -.L2264: - ldr r3, [sp, #20] - cmp r3, #0 - bne .L2227 -.L2235: - mov r0, #0 - b .L2210 -.L2227: - ldr r5, .L2265+16 + b .L2287 +.L2337: + ldr r8, .L2339+12 mov r6, #0 mov r7, r5 -.L2228: +.L2298: + ldrb r3, [r5, #2230] @ zero_extendqisi2 + cmp r6, r3 + bcs .L2338 + uxtb r0, r6 + bl FlashWaitCmdDone + cmp r9, #1 + bne .L2299 + ldrb r3, [r7, #144] @ zero_extendqisi2 + cmp r3, #0 + beq .L2299 + ldrb r0, [r8, r6, asl #4] @ zero_extendqisi2 + bl flash_exit_slc_mode +.L2299: + add r6, r6, #1 + b .L2298 +.L2338: + ldr r3, [sp, #20] + cmp r3, #0 + bne .L2301 +.L2309: + mov r0, #0 + b .L2285 +.L2301: + ldr r5, .L2339+16 + mov r6, #0 + mov r7, r5 +.L2302: ldr r3, [sp, #8] cmp r6, r3 - beq .L2235 + beq .L2309 ldr r3, [r4] cmn r3, #1 - bne .L2229 + bne .L2303 ldr r1, [r4, #4] - ldr r0, .L2265+20 + ldr r0, .L2339+20 bl printk - b .L2230 -.L2229: + b .L2304 +.L2303: ldr r3, [sp, #8] mov r1, r9 add r2, sp, #28 @@ -13318,11 +13656,11 @@ FlashProgPages: str r3, [sp] add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r5, #1720] + ldr r2, [r5, #1724] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r5, #1724] + ldr r2, [r5, #1728] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} add ip, sp, #36 @@ -13334,66 +13672,66 @@ FlashProgPages: mov r1, #1 mov r2, r9 str r3, [ip] - ldr r3, [r5, #1720] - str r3, [sp, #44] ldr r3, [r5, #1724] + str r3, [sp, #44] + ldr r3, [r5, #1728] str r3, [sp, #48] bl FlashReadPages ldr r8, [sp, #36] cmn r8, #1 - bne .L2231 - ldr r0, .L2265+24 + bne .L2305 + ldr r0, .L2339+24 ldr r1, [r4, #4] bl printk str r8, [r4] -.L2231: +.L2305: ldr r3, [r4, #12] cmp r3, #0 - beq .L2232 + beq .L2306 + ldr r2, [r3] + ldr r3, [r7, #1728] + ldr r3, [r3] + cmp r2, r3 + beq .L2306 + ldr r0, .L2339+28 + ldr r1, [r4, #4] + bl printk + mvn r3, #0 + str r3, [r4] +.L2306: + ldr r3, [r4, #8] + cmp r3, #0 + beq .L2304 ldr r2, [r3] ldr r3, [r7, #1724] ldr r3, [r3] cmp r2, r3 - beq .L2232 - ldr r0, .L2265+28 + beq .L2304 + ldr r0, .L2339+32 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L2232: - ldr r3, [r4, #8] - cmp r3, #0 - beq .L2230 - ldr r2, [r3] - ldr r3, [r7, #1720] - ldr r3, [r3] - cmp r2, r3 - beq .L2230 - ldr r0, .L2265+32 - ldr r1, [r4, #4] - bl printk - mvn r3, #0 - str r3, [r4] -.L2230: +.L2304: add r6, r6, #1 add r4, r4, #36 - b .L2228 -.L2210: + b .L2302 +.L2285: add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2266: +.L2340: .align 2 -.L2265: +.L2339: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR0+1214 .word .LANCHOR0+2100 .word .LANCHOR2 - .word .LC103 .word .LC104 .word .LC105 - .word .LC106 + .word .LC107 + .word .LC108 .fnend .size FlashProgPages, .-FlashProgPages .align 2 @@ -13407,12 +13745,12 @@ FlashTestBlk: .save {r4, r5, lr} .pad #108 sub sp, sp, #108 - ldr r5, .L2271 - ldr r3, [r5, #1704] + ldr r5, .L2345 + ldr r3, [r5, #1708] cmp r0, r3 movcc r4, #0 - bcc .L2268 - ldr r3, [r5, #1712] + bcc .L2342 + ldr r3, [r5, #1716] mov r4, r0 mov r1, #165 add r0, sp, #40 @@ -13422,7 +13760,7 @@ FlashTestBlk: bl ftl_memset mov r1, #90 mov r2, #8 - ldr r0, [r5, #1712] + ldr r0, [r5, #1716] mov r4, r4, asl #10 bl ftl_memset mov r1, #1 @@ -13443,14 +13781,14 @@ FlashTestBlk: movne r4, #1 rsb r4, r4, #0 bl FlashEraseBlocks -.L2268: +.L2342: mov r0, r4 add sp, sp, #108 @ sp needed ldmfd sp!, {r4, r5, pc} -.L2272: +.L2346: .align 2 -.L2271: +.L2345: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -13465,51 +13803,51 @@ FlashMakeFactorBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #84 sub sp, sp, #84 - ldr r5, .L2328 + ldr r5, .L2403 mov r1, #1 - ldr r4, .L2328+4 - ldr r0, .L2328+8 - ldr r3, [r5, #1716] - ldrh r8, [r4, #124] + ldr r4, .L2403+4 + ldr r0, .L2403+8 + ldr r3, [r5, #1720] + ldrh r8, [r4, #128] str r3, [sp, #20] - ldrh r3, [r4, #126] + ldrh r3, [r4, #130] smulbb r8, r8, r3 - ldr r3, [r4, #1204] + ldr r3, [r4, #44] ldrb r3, [r3, #24] @ zero_extendqisi2 uxth r8, r8 str r3, [sp, #24] ldrh r3, [r4, #4] str r3, [sp, #16] ldrb r3, [r4] @ zero_extendqisi2 - ldr r4, .L2328+4 + ldr r4, .L2403+4 cmp r3, #1 ldreq r3, [sp, #16] moveq r3, r3, asl #1 uxtheq r3, r3 streq r3, [sp, #16] bl printk - ldr r0, [r5, #1716] + ldr r0, [r5, #1720] mov r1, #0 mov r2, #4096 bl ftl_memset - ldr r5, .L2328 + ldr r5, .L2403 mov r3, r8, lsr #4 str r3, [sp, #28] mov r3, #0 str r3, [sp, #8] -.L2275: +.L2349: ldrb r7, [sp, #8] @ zero_extendqisi2 - ldrb r3, [r4, #2229] @ zero_extendqisi2 + ldrb r3, [r4, #2230] @ zero_extendqisi2 cmp r3, r7 - bls .L2324 - ldr r2, .L2328+12 + bls .L2399 + ldr r2, .L2403+12 mov r3, r7, asl #1 ldrh r6, [r2, r3] cmp r6, #0 - bne .L2304 - ldrh r2, [r4, #132] + bne .L2379 + ldrh r2, [r4, #136] mov r1, r6 - ldr r0, [r5, #1684] + ldr r0, [r5, #1688] mov r9, r6 mov r2, r2, asl #9 bl ftl_memset @@ -13519,18 +13857,18 @@ FlashMakeFactorBbt: add fp, r4, r3 str r6, [sp, #4] str r3, [sp, #32] -.L2277: +.L2351: ldrh r3, [sp, #4] cmp r3, r8 str r3, [sp, #12] - bcs .L2286 + bcs .L2361 mvn r3, #0 strb r3, [sp, #42] strb r3, [sp, #43] ldr r3, [sp, #24] tst r3, #1 - beq .L2279 - ldr r3, [fp, #1168] + beq .L2353 + ldr r3, [fp, #1172] add r2, sp, #42 mov r0, r10 add r3, r6, r3 @@ -13540,7 +13878,7 @@ FlashMakeFactorBbt: ldrb r2, [r4] @ zero_extendqisi2 cmp r2, #1 ldr r3, [sp, #36] - bne .L2279 + bne .L2353 ldr r1, [r4, #4] add r2, sp, #43 mov r0, r10 @@ -13550,61 +13888,65 @@ FlashMakeFactorBbt: ldrb r2, [sp, #43] @ zero_extendqisi2 and r3, r3, r2 strb r3, [sp, #42] -.L2279: +.L2353: ldr r3, [sp, #24] tst r3, #2 - beq .L2281 - ldr r3, [r4, #1204] + beq .L2355 + ldr r3, [r4, #44] mov r0, r10 add r2, sp, #43 ldrh r1, [r3, #10] - ldr r3, [fp, #1168] + ldr r3, [fp, #1172] sub r1, r1, #1 add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L2281: - ldr r3, [r4, #1204] - ldrb r3, [r3, #7] @ zero_extendqisi2 +.L2355: + ldr r2, [r4, #44] + ldrb r3, [r2, #7] @ zero_extendqisi2 cmp r3, #1 cmpne r3, #8 ldrb r3, [sp, #42] @ zero_extendqisi2 - bne .L2282 + beq .L2356 + ldrb r2, [r2, #18] @ zero_extendqisi2 + cmp r2, #12 + bne .L2357 +.L2356: cmp r3, #0 ldrneb r0, [sp, #43] @ zero_extendqisi2 clzne r0, r0 movne r0, r0, lsr #5 - bne .L2283 - b .L2303 -.L2282: + bne .L2358 + b .L2378 +.L2357: cmp r3, #255 - bne .L2303 + bne .L2378 ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 movne r0, #1 - b .L2283 -.L2303: + b .L2358 +.L2378: mov r0, #1 -.L2283: +.L2358: ldr r3, [sp, #24] tst r3, #4 - beq .L2284 - ldr r3, .L2328+4 + beq .L2359 + ldr r3, .L2403+4 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 - ldr r1, [r3, #1168] + ldr r1, [r3, #1172] add r1, r6, r1 bl SandiskProgTestBadBlock -.L2284: +.L2359: cmp r0, #0 - beq .L2285 + beq .L2360 mov r1, r7 ldr r2, [sp, #4] - ldr r0, .L2328+16 + ldr r0, .L2403+16 add r9, r9, #1 bl printk - ldr r1, [r5, #1684] + ldr r1, [r5, #1688] mov ip, #1 uxth r9, r9 ldr r3, [sp, #12] @@ -13614,52 +13956,52 @@ FlashMakeFactorBbt: orr r3, r2, ip, asl r3 ldr r2, [sp, #28] str r3, [r1, r0, asl #2] - ldrb r3, [r4, #2229] @ zero_extendqisi2 + ldrb r3, [r4, #2230] @ zero_extendqisi2 mul r3, r3, r2 cmp r9, r3 - bgt .L2286 -.L2285: + bgt .L2361 +.L2360: ldr r3, [sp, #4] add r3, r3, #1 str r3, [sp, #4] ldr r3, [sp, #16] add r6, r6, r3 - b .L2277 -.L2286: + b .L2351 +.L2361: mov r2, r9 - ldr r0, .L2328+20 + ldr r0, .L2403+20 mov r1, r7 bl printk - ldrb r3, [r4, #2229] @ zero_extendqisi2 + ldrb r3, [r4, #2230] @ zero_extendqisi2 ldr r2, [sp, #28] mul r3, r3, r2 cmp r9, r3 - blt .L2288 - ldrh r2, [r4, #132] + blt .L2363 + ldrh r2, [r4, #136] mov r1, #0 - ldr r0, [r5, #1684] + ldr r0, [r5, #1688] mov r2, r2, asl #9 bl ftl_memset -.L2288: +.L2363: cmp r7, #0 - bne .L2290 - ldr r3, [r5, #1704] + bne .L2365 + ldr r3, [r5, #1708] mov r6, r7 mov r9, #1 uxth r10, r3 -.L2291: - ldr r3, .L2328+4 +.L2366: + ldr r3, .L2403+4 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, r10 - bls .L2325 + bls .L2400 mov r0, r10 bl FlashTestBlk cmp r0, #0 - beq .L2292 + beq .L2367 mov r1, r10 - ldr r0, .L2328+24 + ldr r0, .L2403+24 bl printk - ldr r1, [r5, #1684] + ldr r1, [r5, #1688] mov r0, r10, lsr #5 add r6, r6, #1 and r3, r10, #31 @@ -13667,61 +14009,61 @@ FlashMakeFactorBbt: uxth r6, r6 orr r3, r2, r9, asl r3 str r3, [r1, r0, asl #2] -.L2292: +.L2367: add r10, r10, #1 uxth r10, r10 - b .L2291 -.L2325: + b .L2366 +.L2400: sub fp, r8, #1 sub r9, r8, #50 mov r10, #1 uxth fp, fp -.L2294: +.L2369: cmp fp, r9 - ble .L2326 + ble .L2401 mov r0, fp bl FlashTestBlk cmp r0, #0 - beq .L2295 + beq .L2370 mov r1, fp - ldr r0, .L2328+24 + ldr r0, .L2403+24 bl printk - ldr r1, [r5, #1684] + ldr r1, [r5, #1688] mov r0, fp, lsr #5 and r3, fp, #31 ldr r2, [r1, r0, asl #2] orr r3, r2, r10, asl r3 str r3, [r1, r0, asl #2] -.L2295: +.L2370: sub fp, fp, #1 uxth fp, fp - b .L2294 -.L2326: - ldr r3, .L2328+4 - ldr r2, [r5, #1704] + b .L2369 +.L2401: + ldr r3, .L2403+4 + ldr r2, [r5, #1708] ldrb r3, [r3, #1] @ zero_extendqisi2 rsb r3, r2, r3 cmp r6, r3 - bcc .L2290 - ldrh r2, [r4, #132] + bcc .L2365 + ldrh r2, [r4, #136] mov r1, #0 - ldr r0, [r5, #1684] + ldr r0, [r5, #1688] mov r2, r2, asl #9 bl ftl_memset -.L2290: +.L2365: ldrb r6, [sp, #8] @ zero_extendqisi2 sub r10, r8, #1 - ldr r9, .L2328+12 + ldr r9, .L2403+12 uxth r10, r10 mul r6, r8, r6 add r9, r9, r7, asl #1 -.L2298: +.L2373: mov r1, r7 - ldr r0, .L2328+28 + ldr r0, .L2403+28 mov r2, r10 bl printk - ldr r1, [r5, #1684] -.L2299: + ldr r1, [r5, #1688] +.L2374: mov r2, r10, lsr #5 and r3, r10, #31 ldr r2, [r1, r2, asl #2] @@ -13729,20 +14071,20 @@ FlashMakeFactorBbt: ands r3, r3, #1 subne r10, r10, #1 uxthne r10, r10 - bne .L2299 -.L2327: + bne .L2374 +.L2402: ldr r1, [sp, #20] add r0, sp, #44 - ldr r2, .L2328+32 + ldr r2, .L2403+32 strh r10, [r9] @ movhi strh r10, [r1, #2] @ movhi strh r2, [r1] @ movhi strh r3, [r1, #8] @ movhi mov r1, #1 - ldr r3, [r5, #1684] + ldr r3, [r5, #1688] mov r2, r1 str r3, [sp, #52] - ldr r3, [r5, #1716] + ldr r3, [r5, #1720] str r3, [sp, #56] add r3, r10, r6 mov r3, r3, asl #10 @@ -13757,27 +14099,27 @@ FlashMakeFactorBbt: cmp r3, #0 subne r10, r10, #1 uxthne r10, r10 - bne .L2298 -.L2304: + bne .L2373 +.L2379: ldr r3, [sp, #8] add r3, r3, #1 str r3, [sp, #8] - b .L2275 -.L2324: + b .L2349 +.L2399: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2329: +.L2404: .align 2 -.L2328: +.L2403: .word .LANCHOR2 .word .LANCHOR0 - .word .LC118 - .word .LANCHOR2+1732 - .word .LC119 - .word .LC120 .word .LC121 + .word .LANCHOR2+1736 .word .LC122 + .word .LC123 + .word .LC124 + .word .LC125 .word -3872 .fnend .size FlashMakeFactorBbt, .-FlashMakeFactorBbt @@ -13792,214 +14134,213 @@ FtlLowFormatEraseBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L2380 - ldr r6, .L2380+4 - ldr fp, [r5, #-3620] - ldrb r3, [r6, #2305] @ zero_extendqisi2 - cmp fp, #0 + ldr r9, .L2455 + ldr fp, .L2455+4 + ldr r5, [r9, #-3616] + ldrb r3, [fp, #2240] @ zero_extendqisi2 + cmp r5, #0 str r3, [sp, #16] movne r0, #0 - bne .L2331 - ldrb r3, [r6, #140] @ zero_extendqisi2 - mov r10, r5 - mov r8, fp - mov r5, fp - mov r4, fp - mov r9, r6 - mov fp, r6 - mov r7, #36 + bne .L2406 + ldrb r3, [fp, #144] @ zero_extendqisi2 + mov r6, fp + add fp, fp, #2400 + mov r10, r9 + mov r4, r5 + mov r9, r5 + mov r8, #36 str r1, [sp] str r0, [sp, #4] str r3, [sp, #8] - str r0, [r10, #-552] -.L2332: - ldr r3, .L2380+8 - uxth r1, r8 - ldr ip, .L2380+4 - ldrh r0, [r3] + str r0, [r10, #-548] +.L2407: + ldr ip, .L2455+4 + add r1, ip, #2320 + ldrh r0, [r1] + uxth r1, r9 cmp r0, r1 - bls .L2375 - mul r0, r7, r1 - ldr ip, [r10, #-3616] - add r1, fp, r1 + bls .L2450 + mul r0, r8, r1 + ldr ip, [r10, #-3612] mov r3, #0 str r3, [ip, r0] - ldrb r0, [r1, #2344] @ zero_extendqisi2 + ldr r3, .L2455+4 + add r1, r3, r1 + ldrb r0, [r1, #2348] @ zero_extendqisi2 ldr r1, [sp, #4] bl V2P_block ldr r3, [sp] - mov r6, r0 + mov r7, r0 cmp r3, #0 - beq .L2333 + beq .L2408 bl IsBlkInVendorPart cmp r0, #0 - bne .L2334 -.L2333: - mov r0, r6 + bne .L2409 +.L2408: + mov r0, r7 bl FtlBbmIsBadBlock cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - bne .L2334 - ldr r3, .L2380+12 - mov r6, r6, asl #10 - ldr ip, [r10, #-3616] - ldrh r1, [r3] - mla ip, r7, r5, ip + bne .L2409 + ldr ip, [r10, #-3612] + mov r7, r7, asl #10 + ldrh r1, [fp] + mla ip, r8, r5, ip mul r1, r1, r5 add r5, r5, #1 uxth r5, r5 cmp r1, #0 str r0, [ip, #8] add r0, r1, #3 - str r6, [ip, #4] + str r7, [ip, #4] movlt r1, r0 - ldr r0, [r10, #-500] + ldr r0, [r10, #-496] bic r1, r1, #3 add r1, r0, r1 str r1, [ip, #12] -.L2334: - add r8, r8, #1 - b .L2332 -.L2375: +.L2409: + add r9, r9, #1 + b .L2407 +.L2450: cmp r5, #0 - beq .L2355 + beq .L2430 ldr r3, [sp, #8] mov r2, r5 - ldr r0, [r10, #-3616] - mov r7, #0 - adds r6, r3, #0 - strb r7, [ip, #2305] + ldr r0, [r10, #-3612] + mov r8, #0 + adds r7, r3, #0 + strb r8, [ip, #2240] str ip, [sp, #8] - mov r8, #36 - movne r6, #1 - mov r1, r6 + mov r9, #36 + movne r7, #1 + mov r1, r7 bl FlashEraseBlocks ldrb r3, [sp, #16] @ zero_extendqisi2 ldr ip, [sp, #8] - strb r3, [ip, #2305] -.L2338: - uxth r2, r7 + strb r3, [ip, #2240] +.L2413: + uxth r2, r8 cmp r2, r5 - bcs .L2376 - mul r2, r8, r7 - ldr r1, [r10, #-3616] + bcs .L2451 + mul r2, r9, r8 + ldr r1, [r10, #-3612] add r0, r1, r2 ldr r2, [r1, r2] cmn r2, #1 - bne .L2339 + bne .L2414 ldr r0, [r0, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L2339: - add r7, r7, #1 - b .L2338 -.L2376: +.L2414: + add r8, r8, #1 + b .L2413 +.L2451: ldr r3, [sp] cmp r3, #0 - bne .L2341 + bne .L2416 mov r3, #6 - uxth r6, r6 + uxth r7, r7 str r3, [sp, #12] mov r3, #1 str r3, [sp, #8] - b .L2342 -.L2341: - movw r3, #2386 - ldrh r3, [r9, r3] + b .L2417 +.L2416: + movw r3, #2390 + ldrh r3, [r6, r3] str r3, [sp, #8] - ldrb r3, [r9, #140] @ zero_extendqisi2 + ldrb r3, [r6, #144] @ zero_extendqisi2 cmp r3, #0 ldreq r3, [sp, #8] - moveq r6, #1 - movne r6, #1 - strne r6, [sp, #12] + moveq r7, #1 + movne r7, #1 + strne r7, [sp, #12] moveq r3, r3, lsr #2 streq r3, [sp, #12] -.L2342: - ldr r10, .L2380 - mov r7, #0 +.L2417: + ldr r10, .L2455 + mov r5, #0 mov r8, r10 -.L2351: +.L2426: mov fp, #0 - mov r5, fp -.L2343: - ldr r3, .L2380+8 - ldr r9, .L2380+4 + mov r6, fp +.L2418: + ldr r9, .L2455+4 + add r3, r9, #2320 ldrh r1, [r3] uxth r3, fp cmp r1, r3 - bls .L2377 + bls .L2452 mov r2, #36 - ldr r0, [r10, #-3616] + ldr r0, [r10, #-3612] mul r1, r2, r3 mov r2, #0 str r2, [r0, r1] - ldr r2, .L2380+4 + ldr r2, .L2455+4 ldr r1, [sp, #4] add r3, r2, r3 - ldrb r0, [r3, #2344] @ zero_extendqisi2 + ldrb r0, [r3, #2348] @ zero_extendqisi2 bl V2P_block ldr r3, [sp] mov r9, r0 cmp r3, #0 - beq .L2344 + beq .L2419 bl IsBlkInVendorPart cmp r0, #0 - bne .L2345 -.L2344: + bne .L2420 +.L2419: mov r0, r9 bl FtlBbmIsBadBlock cmp r0, #0 - bne .L2345 - ldr r1, [r8, #-3616] + bne .L2420 + ldr r1, [r8, #-3612] mov r3, #36 - add r9, r7, r9, asl #10 - mla r1, r3, r5, r1 - ldr r3, [r8, #-512] + add r9, r5, r9, asl #10 + mla r1, r3, r6, r1 + ldr r3, [r8, #-508] str r3, [r1, #8] - ldr r3, .L2380+12 + ldr r3, .L2455+8 str r9, [r1, #4] ldrh r3, [r3] - mul r3, r3, r5 - add r5, r5, #1 - uxth r5, r5 + mul r3, r3, r6 + add r6, r6, #1 + uxth r6, r6 add r0, r3, #3 cmp r3, #0 movlt r3, r0 - ldr r0, [r8, #-508] + ldr r0, [r8, #-504] bic r3, r3, #3 add r3, r0, r3 str r3, [r1, #12] -.L2345: +.L2420: add fp, fp, #1 - b .L2343 -.L2377: - cmp r5, #0 - beq .L2355 - mov r2, r6 + b .L2418 +.L2452: + cmp r6, #0 + beq .L2430 + mov r2, r7 mov r3, #1 - ldr r0, [r10, #-3616] - mov r1, r5 + ldr r0, [r10, #-3612] + mov r1, r6 mov fp, #0 - strb fp, [r9, #2305] + strb fp, [r9, #2240] bl FlashProgPages mov r2, #36 ldrb r3, [sp, #16] @ zero_extendqisi2 - strb r3, [r9, #2305] - ldr r9, .L2380 -.L2348: + strb r3, [r9, #2240] + ldr r9, .L2455 +.L2423: uxth r3, fp - cmp r3, r5 - bcs .L2378 + cmp r3, r6 + bcs .L2453 mul r3, r2, fp - ldr r1, [r8, #-3616] + ldr r1, [r8, #-3612] add r0, r1, r3 ldr r3, [r1, r3] cmp r3, #0 - beq .L2349 + beq .L2424 ldr r0, [r0, #4] add r4, r4, #1 str r2, [sp, #20] @@ -14007,63 +14348,62 @@ FtlLowFormatEraseBlock: uxth r4, r4 bl FtlBbmMapBadBlock ldr r2, [sp, #20] -.L2349: +.L2424: add fp, fp, #1 - b .L2348 -.L2378: + b .L2423 +.L2453: ldr r3, [sp, #12] - add r7, r7, r3 + add r5, r5, r3 ldr r3, [sp, #8] - uxth r7, r7 - cmp r7, r3 - bcc .L2351 - mov r7, #0 + uxth r5, r5 + cmp r5, r3 + bcc .L2426 + mov r5, #0 mov r8, #36 -.L2352: - uxth r3, r7 - cmp r3, r5 +.L2427: + uxth r3, r5 + cmp r3, r6 ldr r3, [sp] - bcs .L2379 + bcs .L2454 cmp r3, #0 - beq .L2353 - mul r3, r8, r7 - ldr r2, [r9, #-3616] + beq .L2428 + mul r3, r8, r5 + ldr r2, [r9, #-3612] add r1, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - bne .L2353 + bne .L2428 ldr r0, [r1, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L2353: - add r7, r7, #1 - b .L2352 -.L2379: - adds r3, r3, #0 - ldr r2, [sp, #4] - movne r3, #1 - cmp r2, #63 - orrls r3, r3, #1 - cmp r3, #0 - beq .L2355 - ldr r0, [r9, #-3616] - mov r1, r6 - mov r2, r5 +.L2428: + add r5, r5, #1 + b .L2427 +.L2454: + adds r1, r3, #0 + ldr r3, [sp, #4] + movne r1, #1 + cmp r3, #63 + orrls r1, r1, #1 + cmp r1, #0 + beq .L2430 + ldr r0, [r9, #-3612] + mov r1, r7 + mov r2, r6 bl FlashEraseBlocks -.L2355: +.L2430: mov r0, r4 -.L2331: +.L2406: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2381: +.L2456: .align 2 -.L2380: +.L2455: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+2316 - .word .LANCHOR0+2396 + .word .LANCHOR0+2400 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 @@ -14077,149 +14417,152 @@ FtlBbmTblFlush: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L2400 - ldr r5, [r4, #-3620] + ldr r4, .L2475 + ldr r5, [r4, #-3616] cmp r5, #0 - bne .L2384 - ldr r3, [r4, #-504] + bne .L2459 + ldr r3, [r4, #-500] mov r1, r5 - ldr r2, .L2400+4 - sub r9, r4, #440 - ldr r0, [r4, #-528] - str r3, [r4, #1760] - movw r3, #2394 + ldr r2, .L2475+4 + sub r9, r4, #436 + ldr r0, [r4, #-524] + str r3, [r4, #1764] + movw r3, #2398 ldrh r2, [r2, r3] - str r0, [r4, #1756] + str r0, [r4, #1760] bl ftl_memset - ldr r6, .L2400+8 - sub r7, r6, #134 -.L2385: - ldrh r3, [r7] - ldr r8, .L2400+4 + ldr r6, .L2475+8 + sub r8, r6, #134 +.L2460: + ldrh r3, [r8] + ldr r7, .L2475+4 cmp r5, r3 - bge .L2399 + bge .L2474 ldrh r2, [r9] - ldr r3, [r4, #1756] + ldr r3, [r4, #1760] ldr r1, [r6, #4]! mul r0, r2, r5 mov r2, r2, asl #2 add r5, r5, #1 add r0, r3, r0, asl #2 bl ftl_memcpy - b .L2385 -.L2399: - ldr r6, [r4, #1760] + b .L2460 +.L2474: + ldr r9, [r4, #1764] mov r1, #255 mov r2, #16 - add r5, r8, #2448 - ldr fp, .L2400 - mov r7, #0 - mov r0, r6 - mov r10, r7 + ldr r5, .L2475+12 + ldr r10, .L2475 + mov r6, #0 + mov r0, r9 bl ftl_memset - ldr r3, .L2400+12 - strh r3, [r6] @ movhi - ldr r3, [r8, #2456] - str r3, [r6, #4] - ldrh r3, [r5] - strh r3, [r6, #2] @ movhi + ldr r3, .L2475+16 + mov r8, r5 + strh r3, [r9] @ movhi + ldr r3, [r7, #2460] + str r3, [r9, #4] + movw r3, #2452 + ldrh r3, [r7, r3] + strh r3, [r9, #2] @ movhi ldrh r3, [r5, #4] - strh r3, [r6, #8] @ movhi + strh r3, [r9, #8] @ movhi ldrh r3, [r5, #6] - strh r3, [r6, #10] @ movhi - ldr r3, [r8, #2312] - strh r3, [r6, #12] @ movhi -.L2387: - ldr r3, [r4, #-528] - mov ip, #0 + strh r3, [r9, #10] @ movhi + ldr r3, [r7, #2316] + strh r3, [r9, #12] @ movhi + str r6, [sp, #12] +.L2462: + ldr r3, [r4, #-524] + mov fp, #0 ldrh r1, [r5] ldrh r2, [r5, #2] - str r3, [r4, #1756] - ldr r3, [r4, #-504] - str ip, [r4, #1748] - str ip, [sp, #12] str r3, [r4, #1760] + ldr r3, [r4, #-500] + str fp, [r4, #1752] + str r3, [r4, #1764] orr r3, r2, r1, asl #10 - ldrh r0, [r6, #10] - str r3, [r4, #1752] + ldrh r0, [r9, #10] + str r3, [r4, #1756] ldrh r3, [r5, #4] str r0, [sp] - ldr r0, .L2400+16 + ldr r0, .L2475+20 bl printk - ldr r9, .L2400+20 + ldr r3, .L2475+24 ldrh r2, [r5, #2] - ldrh r3, [r9, #-62] + ldrh r3, [r3] sub r3, r3, #1 cmp r2, r3 - ldr ip, [sp, #12] - blt .L2388 - ldr r3, [r8, #2456] + blt .L2463 + ldr r3, [r7, #2460] mov r1, #1 - ldrh r2, [r9] + ldrh r2, [r8] add r3, r3, #1 - ldr r0, [fp, #-3616] - str r3, [r8, #2456] - str r3, [r6, #4] - ldrh r3, [r9, #4] - strh r2, [r6, #8] @ movhi - strh r2, [r9, #4] @ movhi + ldr r0, [r10, #-3612] + str r3, [r7, #2460] + str r3, [r9, #4] + ldrh r3, [r8, #4] + strh r2, [r9, #8] @ movhi + strh r2, [r8, #4] @ movhi mov r2, r1 - strh r3, [r9] @ movhi + strh r3, [r8] @ movhi mov r3, r3, asl #10 - str r3, [fp, #1752] + str r3, [r10, #1756] str r3, [r0, #4] - strh ip, [r9, #2] @ movhi + strh fp, [r8, #2] @ movhi bl FlashEraseBlocks -.L2388: +.L2463: mov r1, #1 - ldr r0, .L2400+24 + ldr r0, .L2475+28 mov r3, r1 mov r2, r1 bl FlashProgPages ldrh r3, [r5, #2] - ldr r9, .L2400 + ldr fp, .L2475 add r3, r3, #1 strh r3, [r5, #2] @ movhi - ldr r3, [r4, #1748] + ldr r3, [r4, #1752] cmn r3, #1 - bne .L2389 - add r7, r7, #1 - ldr r0, .L2400+28 - ldr r1, [fp, #1752] - uxth r7, r7 + bne .L2464 + add r6, r6, #1 + ldr r0, .L2475+32 + ldr r1, [r10, #1756] + uxth r6, r6 bl printk - cmp r7, #3 - bls .L2387 - ldr r0, .L2400+32 - mov r2, r7 - ldr r1, [r9, #1752] + cmp r6, #3 + bls .L2462 + ldr r0, .L2475+36 + mov r2, r6 + ldr r1, [fp, #1756] bl printk mov r3, #1 - str r3, [r9, #-3620] - b .L2384 -.L2389: - add r10, r10, #1 - cmp r10, #1 - beq .L2387 + str r3, [fp, #-3616] + b .L2459 +.L2464: + ldr r2, [sp, #12] + add r2, r2, #1 + str r2, [sp, #12] + cmp r2, #1 + beq .L2462 cmp r3, #256 - beq .L2387 -.L2384: + beq .L2462 +.L2459: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2401: +.L2476: .align 2 -.L2400: +.L2475: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+2472 + .word .LANCHOR0+2476 + .word .LANCHOR0+2452 .word -3887 - .word .LC123 - .word .LANCHOR0+2448 - .word .LANCHOR2+1748 - .word .LC124 - .word .LC125 + .word .LC126 + .word .LANCHOR0+2390 + .word .LANCHOR2+1752 + .word .LC127 + .word .LC128 .fnend .size FtlBbmTblFlush, .-FtlBbmTblFlush .align 2 @@ -14233,297 +14576,295 @@ allocate_data_superblock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L2457 - ldr r3, [r4, #-3620] + ldr r4, .L2532 + ldr r3, [r4, #-3616] cmp r3, #0 - bne .L2403 + bne .L2478 mov r5, r0 mov r8, r4 -.L2404: - ldr r3, .L2457+4 - ldr r10, .L2457+8 +.L2479: + ldr r3, .L2532+4 + ldr r10, .L2532+8 cmp r5, r3 ldrb r2, [r5, #8] @ zero_extendqisi2 - bne .L2405 - sub r3, r3, #100 - ldr ip, [r8, #-2712] - ldrh r3, [r3] - mul lr, ip, r3 + bne .L2480 + ldrh r3, [r5, #-100] + ldr ip, [r8, #-2708] mov r0, r3, lsr #1 + mul lr, ip, r3 add r1, r0, #1 add r1, r1, lr, lsr #2 - ldr lr, [r10, #2308] + ldr lr, [r10, #2244] cmp lr, #0 uxth r1, r1 - beq .L2406 - ldr lr, [r8, #-3312] + beq .L2481 + ldr lr, [r8, #-3308] cmp lr, #39 - bhi .L2406 + bhi .L2481 cmp lr, #2 - bls .L2431 + bls .L2506 cmp ip, #0 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 moveq r1, r0 - beq .L2406 - b .L2431 -.L2405: + beq .L2481 + b .L2506 +.L2480: cmp r2, #1 - bne .L2431 - add r3, r10, #2336 - ldrh r3, [r3] - cmp r3, #1 - beq .L2431 - ldrb r3, [r10, #140] @ zero_extendqisi2 - cmp r3, #0 - bne .L2431 - ldr r3, .L2457+12 - ldr r0, [r10, #2308] - ldrh r3, [r3] + bne .L2506 + ldr r1, .L2532+12 + ldrh r1, [r1] + cmp r1, #1 + beq .L2506 + ldrb r1, [r10, #144] @ zero_extendqisi2 + cmp r1, #0 + bne .L2506 + ldr r0, [r10, #2244] + ldrh r3, [r3, #-100] cmp r0, #0 mov r1, r3, lsr #3 - beq .L2406 - ldr r0, [r8, #-3312] + beq .L2481 + ldr r0, [r8, #-3308] cmp r0, #1 rsbls r3, r3, r3, asl #3 ubfxls r1, r3, #3, #16 -.L2406: +.L2481: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 - b .L2407 -.L2431: + b .L2482 +.L2506: mov r1, #0 -.L2407: - ldr r0, .L2457+16 +.L2482: + ldr r0, .L2532+16 bl List_pop_index_node - ldr r2, .L2457+12 - ldr fp, .L2457+20 + ldr r2, .L2532+20 ldrh r3, [r2] sub r3, r3, #1 strh r3, [r2] @ movhi - ldrh r3, [fp] + ldr r3, .L2532+24 + ldrh r3, [r3] uxth r9, r0 cmp r3, r9 - bls .L2404 - ldr r3, [r8, #-3548] + bls .L2479 + ldr r3, [r8, #-3544] mov r7, r9, asl #1 ldrh r6, [r3, r7] cmp r6, #0 - bne .L2404 + bne .L2479 strh r9, [r5] @ movhi mov r0, r5 bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - beq .L2409 - ldr r1, [r8, #-3616] - mov lr, #36 - ldrh ip, [fp, #-8] - add r0, r5, #14 - str lr, [sp, #8] - mov r3, r1 - mla r2, lr, ip, r1 - mov ip, r6 - str r2, [sp, #4] - b .L2410 -.L2409: - ldr r3, [r8, #-3548] - b .L2452 -.L2410: - ldr r2, [sp, #4] - cmp r3, r2 - beq .L2454 - str ip, [r3, #8] - movw lr, #65535 - str ip, [r3, #12] + beq .L2484 + ldr r2, .L2532+28 + add ip, r5, #14 + ldr r0, [r8, #-3612] + ldrh lr, [r2] + mov r2, #36 + mov r3, r0 + mla r1, r2, lr, r0 + mov lr, r6 + str r1, [sp] + b .L2485 +.L2484: + ldr r3, [r8, #-3544] + b .L2527 +.L2485: + ldr r1, [sp] + cmp r3, r1 + beq .L2529 + str lr, [r3, #8] + movw fp, #65535 + str lr, [r3, #12] add r3, r3, #36 - ldrh r2, [r0, #2]! - cmp r2, lr - movne r2, r2, asl #10 - ldrne lr, [sp, #8] - mlane lr, lr, r6, r1 + ldrh r1, [ip, #2]! + cmp r1, fp + movne r1, r1, asl #10 + mlane fp, r2, r6, r0 addne r6, r6, #1 uxthne r6, r6 - strne r2, [lr, #4] - b .L2410 -.L2454: - ldr r3, .L2457+24 - ldr r2, [r10, #2308] + strne r1, [fp, #4] + b .L2485 +.L2529: + ldr r3, .L2532+32 + ldr r2, [r10, #2244] rsb r3, r3, r5 clz r3, r3 cmp r2, #0 mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L2413 - ldr r3, [r8, #-3612] + beq .L2488 + ldr r3, [r8, #-3608] ldrh r3, [r3, r7] cmp r3, #40 movhi r3, #0 - strhib r3, [r8, #-3520] -.L2413: + strhib r3, [r8, #-3516] +.L2488: ldrb r3, [r5, #8] @ zero_extendqisi2 - ldr r1, [r4, #-3612] + ldr r2, [r4, #-3608] cmp r3, #0 - ldr r2, .L2457+28 - ldrh r3, [r1, r7] - bne .L2414 + ldr fp, .L2532+36 + ldrh r3, [r2, r7] + bne .L2489 cmp r3, #0 - str r2, [sp, #4] - ldrneh r0, [r2] - moveq r3, #2 - addne r3, r3, r0 mov r0, r9 - uxthne r3, r3 - strh r3, [r1, r7] @ movhi - ldr r3, [r4, #-3328] + ldrneh r1, [fp] + moveq r3, #2 + addne r3, r3, r1 mov r1, #0 - add r3, r3, #1 - str r3, [r4, #-3328] - bl ftl_set_blk_mode - ldr r2, [sp, #4] - b .L2416 -.L2414: - add r3, r3, #1 - strh r3, [r1, r7] @ movhi - ldr r1, [r4, #-3372] - mov r0, r9, lsr #5 + uxthne r3, r3 + strh r3, [r2, r7] @ movhi ldr r3, [r4, #-3324] - mov ip, #1 add r3, r3, #1 str r3, [r4, #-3324] - ldr lr, [r1, r0, asl #2] + bl ftl_set_blk_mode + b .L2491 +.L2489: + add r3, r3, #1 + strh r3, [r2, r7] @ movhi + ldr r2, [r4, #-3368] + mov r1, r9, lsr #5 + ldr r3, [r4, #-3320] + mov r0, #1 + add r3, r3, #1 + str r3, [r4, #-3320] + ldr ip, [r2, r1, asl #2] and r3, r9, #31 - orr r3, lr, ip, asl r3 - str r3, [r1, r0, asl #2] -.L2416: - ldr r3, [r4, #-3612] - ldr r1, [r4, #-3316] - ldrh r2, [r2] + orr r3, ip, r0, asl r3 + str r3, [r2, r1, asl #2] +.L2491: + ldr r3, [r4, #-3608] + ldr r2, [r4, #-3312] + ldr r0, [r4, #-3324] ldrh r3, [r3, r7] - ldr r0, [r4, #-3328] - cmp r3, r1 - ldrh r1, [fp] - strhi r3, [r8, #-3316] - ldr r3, [r4, #-3324] + cmp r3, r2 + ldrh r2, [fp] + strhi r3, [r8, #-3312] + ldr r3, [r4, #-3320] mla r0, r0, r2, r3 + ldr r3, .L2532+24 + ldrh r1, [r3] bl __aeabi_uidiv - ldr r2, [r4, #-484] + ldr r2, [r4, #-480] + ldr r1, [r4, #-3612] ldr r3, [r2, #16] add r3, r3, #1 str r3, [r2, #16] - ldr r2, [r4, #-3616] mov r3, #36 - add r1, r2, #4 - mla r3, r3, r6, r2 + add r2, r1, #4 + mla r3, r3, r6, r1 add r3, r3, #40 - str r0, [r4, #-3320] -.L2418: - add r1, r1, #36 - cmp r1, r3 - ldrne r2, [r1, #-36] - bicne r2, r2, #1020 - bicne r2, r2, #3 - strne r2, [r1, #-36] - bne .L2418 -.L2455: - ldrb r3, [r10, #140] @ zero_extendqisi2 + str r0, [r4, #-3316] +.L2493: + add r2, r2, #36 + cmp r2, r3 + ldrne r1, [r2, #-36] + bicne r1, r1, #1020 + bicne r1, r1, #3 + strne r1, [r2, #-36] + bne .L2493 +.L2530: + ldrb r3, [r10, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L2420 + beq .L2495 ldrb r3, [r5, #8] @ zero_extendqisi2 mov r2, r6 - ldr r0, [r4, #-3616] + ldr r0, [r4, #-3612] cmp r3, #1 moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2420: +.L2495: ldrb r1, [r5, #8] @ zero_extendqisi2 mov r2, r6 - ldr r0, [r4, #-3616] - mov r10, #0 + ldr r0, [r4, #-3612] + mov fp, #0 bl FlashEraseBlocks - add r2, r5, #16 - mov fp, r10 - mov r1, #36 -.L2422: - uxth r3, r10 + add r1, r5, #16 + mov r2, fp + mov ip, #36 +.L2497: + uxth r3, fp cmp r3, r6 - bcs .L2456 - mul r3, r1, r10 - ldr ip, [r4, #-3616] - add r0, ip, r3 - ldr r3, [ip, r3] + bcs .L2531 + mul r3, ip, fp + ldr lr, [r4, #-3612] + add r0, lr, r3 + ldr r3, [lr, r3] cmn r3, #1 - bne .L2423 + bne .L2498 ldr r0, [r0, #4] - add fp, fp, #1 - str r1, [sp, #12] + add r2, r2, #1 + stmib sp, {r1, r3, ip} ubfx r0, r0, #10, #16 - stmib sp, {r2, r3} + str r2, [sp] bl FtlBbmMapBadBlock - ldmib sp, {r2, r3} - ldr r1, [sp, #12] - strh r3, [r2] @ movhi + ldmib sp, {r1, r3} + ldr ip, [sp, #12] + ldr r2, [sp] + strh r3, [r1] @ movhi ldrb r3, [r5, #7] @ zero_extendqisi2 sub r3, r3, #1 strb r3, [r5, #7] -.L2423: - add r10, r10, #1 - add r2, r2, #2 - b .L2422 -.L2456: - cmp fp, #0 - beq .L2425 +.L2498: + add fp, fp, #1 + add r1, r1, #2 + b .L2497 +.L2531: + cmp r2, #0 + beq .L2500 mov r0, r9 bl update_multiplier_value bl FtlBbmTblFlush -.L2425: +.L2500: ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L2426 - ldr r3, [r4, #-3548] -.L2452: + bne .L2501 + ldr r3, [r4, #-3544] +.L2527: mvn r2, #0 strh r2, [r3, r7] @ movhi - b .L2404 -.L2426: - ldr r2, .L2457+32 - ldrh r2, [r2] + b .L2479 +.L2501: + movw r2, #2388 + ldrh r2, [r10, r2] strh r9, [r5] @ movhi smulbb r3, r2, r3 mov r2, #0 strh r2, [r5, #2] @ movhi strb r2, [r5, #6] - ldr r2, [r4, #-3336] - ldr r1, [r4, #-3548] + ldr r2, [r4, #-3332] + ldr r1, [r4, #-3544] uxth r3, r3 strh r3, [r5, #4] @ movhi str r2, [r5, #12] add r2, r2, #1 - str r2, [r4, #-3336] + str r2, [r4, #-3332] ldrh r2, [r5] mov r2, r2, asl #1 strh r3, [r1, r2] @ movhi -.L2403: +.L2478: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2458: +.L2533: .align 2 -.L2457: +.L2532: .word .LANCHOR2 - .word .LANCHOR2-3432 + .word .LANCHOR2-3428 .word .LANCHOR0 + .word .LANCHOR0+2340 .word .LANCHOR2-3532 - .word .LANCHOR2-3536 - .word .LANCHOR0+2324 .word .LANCHOR2-3528 - .word .LANCHOR0+2376 - .word .LANCHOR0+2384 + .word .LANCHOR0+2328 + .word .LANCHOR0+2320 + .word .LANCHOR2-3524 + .word .LANCHOR0+2380 .fnend .size allocate_data_superblock, .-allocate_data_superblock .align 2 @@ -14533,82 +14874,80 @@ FtlGcFreeBadSuperBlk: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L2548 stmfd sp!, {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, .L2473 - ldrh r3, [r5, #-6] - cmp r3, #0 - beq .L2461 - sub r5, r5, #6 - mov r8, r0 - mov r7, #0 - mov r9, r5 -.L2460: - ldr r3, .L2473+4 - uxth r2, r7 - ldrh r3, [r3] - cmp r3, r2 - bls .L2470 - ldr r3, .L2473+8 - mov r1, r8 - mov r10, #0 + ldrh r2, [r3, #-2] + cmp r2, #0 + beq .L2536 + sub r10, r3, #2 + mov r7, r0 + mov r9, #0 + mov r5, r3 + mov r8, r10 +.L2535: + ldr r3, .L2548+4 + add r2, r3, #2320 + ldrh r1, [r2] + uxth r2, r9 + cmp r1, r2 + bls .L2545 add r3, r3, r2 - ldrb r0, [r3, #2344] @ zero_extendqisi2 + mov r1, r7 + mov fp, #0 + ldrb r0, [r3, #2348] @ zero_extendqisi2 bl V2P_block - ldr ip, .L2473+12 - mov fp, r0 -.L2462: - ldrh r3, [r5] - uxth r4, r10 + mov r6, r0 +.L2537: + ldrh r3, [r10] + uxth r4, fp cmp r3, r4 - bls .L2471 + bls .L2546 mov r3, r4, asl #1 - add r6, ip, r3 - ldrh r3, [ip, r3] - cmp r3, fp - bne .L2463 - mov r1, fp - ldr r0, .L2473+16 + add ip, r5, r3 + ldrh r3, [r5, r3] + cmp r3, r6 + bne .L2538 + mov r1, r6 + ldr r0, .L2548+8 str ip, [sp, #4] bl printk - mov r0, fp + mov r0, r6 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh r2, [r5] - mov r3, r6 + ldrh r2, [r10] ldr ip, [sp, #4] -.L2464: + mov r3, ip +.L2539: cmp r4, r2 ldrcch r1, [r3, #2] addcc r4, r4, #1 uxthcc r4, r4 strcch r1, [r3], #2 @ movhi - bcc .L2464 -.L2472: + bcc .L2539 +.L2547: sub r2, r2, #1 - strh r2, [r9] @ movhi -.L2463: - add r10, r10, #1 - b .L2462 -.L2471: - add r7, r7, #1 - b .L2460 -.L2470: + strh r2, [r8] @ movhi +.L2538: + add fp, fp, #1 + b .L2537 +.L2546: + add r9, r9, #1 + b .L2535 +.L2545: bl FtlGcReFreshBadBlk -.L2461: +.L2536: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2474: +.L2549: .align 2 -.L2473: +.L2548: .word .LANCHOR2-2656 - .word .LANCHOR0+2316 .word .LANCHOR0 - .word .LANCHOR2-2660 - .word .LC126 + .word .LC129 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 2 @@ -14618,57 +14957,56 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2485 + ldr r2, .L2560 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} mov r3, r0, asl #1 - stmfd sp!, {r4, lr} - .save {r4, lr} + ldr r1, [r2, #-3544] mov r4, r0 - ldr r1, [r2, #-3548] ldrh r3, [r1, r3] cmp r3, #0 - bne .L2476 + bne .L2551 sub r1, r2, #3280 - ldrh r0, [r1, #-8] + ldrh r0, [r1, #-4] cmp r0, r4 mvneq r3, #0 - streqh r3, [r1, #-8] @ movhi - beq .L2478 + streqh r3, [r1, #-4] @ movhi + beq .L2553 sub r1, r2, #3520 - ldrh r1, [r1, #-8] + ldrh r1, [r1, #-4] cmp r1, r4 - beq .L2484 + beq .L2559 sub r1, r2, #3472 - ldrh r1, [r1, #-8] + ldrh r1, [r1, #-4] cmp r1, r4 - beq .L2484 + beq .L2559 sub r2, r2, #3424 - ldrh r2, [r2, #-8] + ldrh r2, [r2, #-4] cmp r2, r4 - beq .L2484 -.L2478: + beq .L2559 +.L2553: + ldr r5, .L2560+4 mov r1, r4 - ldr r0, .L2485+4 + sub r0, r5, #12 bl List_remove_node - ldr r2, .L2485+8 + ldrh r3, [r5] mov r0, r4 - ldrh r3, [r2, #-4] sub r3, r3, #1 - strh r3, [r2, #-4] @ movhi + strh r3, [r5] @ movhi bl free_data_superblock mov r0, r4 bl FtlGcFreeBadSuperBlk mov r0, #1 - ldmfd sp!, {r4, pc} -.L2476: + ldmfd sp!, {r3, r4, r5, pc} +.L2551: bl List_update_data_list -.L2484: +.L2559: mov r0, #0 - ldmfd sp!, {r4, pc} -.L2486: + ldmfd sp!, {r3, r4, r5, pc} +.L2561: .align 2 -.L2485: +.L2560: .word .LANCHOR2 - .word .LANCHOR2-3552 .word .LANCHOR2-3536 .fnend .size update_vpc_list, .-update_vpc_list @@ -14679,73 +15017,73 @@ decrement_vpc_count: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} movw r3, #65535 cmp r0, r3 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} mov r4, r0 - beq .L2488 - ldr r5, .L2498 - mov r6, r0, asl #1 - ldr r3, [r5, #-3548] - ldrh r2, [r3, r6] + beq .L2563 + ldr r6, .L2573 + mov r5, r0, asl #1 + ldr r3, [r6, #-3544] + ldrh r2, [r3, r5] cmp r2, #0 subne r2, r2, #1 - strneh r2, [r3, r6] @ movhi - bne .L2488 + strneh r2, [r3, r5] @ movhi + bne .L2563 mov r1, r4 - ldr r0, .L2498+4 + ldr r0, .L2573+4 bl printk - ldr r3, [r5, #-3548] + ldr r3, [r6, #-3544] + sub r7, r6, #3520 mov r2, #32 - sub r0, r5, #3536 + sub r0, r7, #12 mov r1, r4 - strh r2, [r3, r6] @ movhi + strh r2, [r3, r5] @ movhi bl test_node_in_list cmp r0, #0 - beq .L2490 + beq .L2565 mov r1, r4 - sub r0, r5, #3536 + sub r0, r7, #12 bl List_remove_node - sub r2, r5, #3520 + ldrh r3, [r7, #-8] mov r0, r4 - ldrh r3, [r2, #-12] sub r3, r3, #1 - strh r3, [r2, #-12] @ movhi + strh r3, [r7, #-8] @ movhi bl INSERT_DATA_LIST - ldr r3, [r5, #-3548] - ldr r0, .L2498+8 + ldr r3, [r6, #-3544] + ldr r0, .L2573+8 mov r1, r4 - ldrh r2, [r3, r6] + ldrh r2, [r3, r5] bl printk -.L2490: +.L2565: mov r0, r4 bl FtlGcRefreshBlock - b .L2493 -.L2488: - ldr r5, .L2498+12 + b .L2568 +.L2563: + ldr r5, .L2573+12 movw r3, #65535 ldrh r0, [r5] cmp r0, r3 streqh r4, [r5] @ movhi - beq .L2493 + beq .L2568 cmp r0, r4 - beq .L2493 + beq .L2568 bl update_vpc_list strh r4, [r5] @ movhi adds r0, r0, #0 movne r0, #1 - ldmfd sp!, {r4, r5, r6, pc} -.L2493: + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L2568: mov r0, #0 - ldmfd sp!, {r4, r5, r6, pc} -.L2499: + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L2574: .align 2 -.L2498: +.L2573: .word .LANCHOR2 - .word .LC127 - .word .LC128 - .word .LANCHOR2-384 + .word .LC130 + .word .LC131 + .word .LANCHOR2-380 .fnend .size decrement_vpc_count, .-decrement_vpc_count .align 2 @@ -14766,16 +15104,16 @@ FtlSlcSuperblockCheck: ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} ldrb r3, [r0, #6] @ zero_extendqisi2 mov r4, r0 - ldr r5, .L2514 - ldr r6, .L2514+4 + ldr r5, .L2588 + ldr r6, .L2588+4 add r3, r0, r3, asl #1 - ldr r7, .L2514+8 + add r7, r5, #2320 ldrh r3, [r3, #16] -.L2504: +.L2579: movw r1, #65535 cmp r3, r1 - bne .L2513 -.L2506: + bne .L2587 +.L2581: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -14790,19 +15128,19 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] - b .L2504 -.L2513: + b .L2579 +.L2587: ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L2507 - ldrb r3, [r5, #140] @ zero_extendqisi2 + bne .L2582 + ldrb r3, [r5, #144] @ zero_extendqisi2 cmp r3, #0 - bne .L2507 + bne .L2582 ldrh r3, [r4, #2] mov r3, r3, asl #1 ldrh r3, [r6, r3] cmp r3, r1 - bne .L2507 + bne .L2582 ldrh r3, [r4, #4] ldrh r0, [r4] sub r3, r3, #1 @@ -14810,44 +15148,44 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L2506 + bne .L2581 ldrh r3, [r4, #2] + strb r2, [r4, #6] add r3, r3, #1 - b .L2512 -.L2507: - ldr r3, .L2514 - ldrb r1, [r3, #140] @ zero_extendqisi2 - cmp r1, #0 + strh r3, [r4, #2] @ movhi + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L2582: + ldr r1, .L2588 + ldrb r3, [r1, #144] @ zero_extendqisi2 + cmp r3, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r2, #1 ldmnefd sp!, {r3, r4, r5, r6, r7, pc} - movw r2, #2386 - ldrh r1, [r4, #2] - ldrh r2, [r3, r2] - cmp r1, r2 + movw r3, #2390 + ldrh r2, [r4, #2] + ldrh r3, [r1, r3] + cmp r2, r3 ldmccfd sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, .L2514+12 - add r3, r3, #2384 - ldrh r2, [r4] + ldr r2, .L2588+8 + ldrh r3, [r4] ldrh ip, [r4, #4] - ldr r0, [r1, #-3548] - mov r2, r2, asl #1 - ldrh r1, [r0, r2] - rsb r1, ip, r1 - strh r1, [r0, r2] @ movhi - ldrh r3, [r3] - mov r2, #0 - strh r2, [r4, #4] @ movhi -.L2512: - strh r3, [r4, #2] @ movhi - strb r2, [r4, #6] + ldr r0, [r2, #-3544] + mov r3, r3, asl #1 + ldrh r2, [r0, r3] + rsb r2, ip, r2 + strh r2, [r0, r3] @ movhi + movw r2, #2388 + mov r3, #0 + ldrh r2, [r1, r2] + strh r3, [r4, #4] @ movhi + strb r3, [r4, #6] + strh r2, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2515: +.L2589: .align 2 -.L2514: +.L2588: .word .LANCHOR0 - .word .LANCHOR2-2624 - .word .LANCHOR0+2316 + .word .LANCHOR2-2620 .word .LANCHOR2 .fnend .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck @@ -14864,17 +15202,17 @@ get_new_active_ppa: strb r3, [r0, #10] mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r7, .L2534 - ldr r8, .L2534+4 + ldr r7, .L2608 + ldr r9, .L2608+4 add r3, r0, r3, asl #1 - ldr r9, .L2534+8 + sub r8, r7, #2320 ldrh r2, [r3, #16] -.L2517: +.L2591: movw r1, #65535 cmp r2, r1 - ldr r6, .L2534 - bne .L2533 -.L2518: + ldr r6, .L2608 + bne .L2607 +.L2592: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -14889,35 +15227,35 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r2, [r3, #16] - b .L2517 -.L2533: + b .L2591 +.L2607: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r5, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L2520 - ldrb r0, [r8, #140] @ zero_extendqisi2 + bne .L2594 + ldrb r0, [r8, #144] @ zero_extendqisi2 cmp r0, #0 - bne .L2520 + bne .L2594 mov r0, r5, asl #1 ldrh r0, [r9, r0] cmp r0, r1 - bne .L2520 + bne .L2594 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2518 -.L2520: - ldr r7, .L2534+4 + b .L2592 +.L2594: + ldr r7, .L2608+8 orr r5, r5, r2, asl #10 sub r3, r3, #1 strh r3, [r4, #4] @ movhi -.L2521: +.L2595: ldrb r3, [r4, #6] @ zero_extendqisi2 movw r2, #65535 ldrh r0, [r6] -.L2523: +.L2597: add r3, r3, #1 uxtb r3, r3 cmp r3, r0 @@ -14928,62 +15266,62 @@ get_new_active_ppa: add r1, r4, r3, asl #1 ldrh r1, [r1, #16] cmp r1, r2 - beq .L2523 + beq .L2597 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2528 - ldrb r3, [r7, #140] @ zero_extendqisi2 + bne .L2602 + ldrb r3, [r7, #144] @ zero_extendqisi2 cmp r3, #0 - bne .L2525 + bne .L2599 ldrh r3, [r4, #2] - ldr r2, .L2534+8 + ldr r2, .L2608+4 mov r3, r3, asl #1 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L2525 + bne .L2599 ldrh r3, [r4, #4] cmp r3, #0 - beq .L2525 + beq .L2599 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2521 -.L2525: - ldr r3, .L2534+4 - ldrb r2, [r3, #140] @ zero_extendqisi2 - cmp r2, #0 - beq .L2528 - movw r2, #2386 - ldrh r1, [r4, #2] - ldrh r2, [r3, r2] - cmp r1, r2 - bcc .L2528 - ldr r1, .L2534+12 - add r3, r3, #2384 - ldrh r2, [r4] + b .L2595 +.L2599: + ldr r1, .L2608+8 + ldrb r3, [r1, #144] @ zero_extendqisi2 + cmp r3, #0 + beq .L2602 + movw r3, #2390 + ldrh r2, [r4, #2] + ldrh r3, [r1, r3] + cmp r2, r3 + bcc .L2602 + ldr r2, .L2608+12 + ldrh r3, [r4] ldrh ip, [r4, #4] - ldr r0, [r1, #-3548] - mov r2, r2, asl #1 - ldrh r1, [r0, r2] - rsb r1, ip, r1 - strh r1, [r0, r2] @ movhi - ldrh r3, [r3] - mov r2, #0 - strh r2, [r4, #4] @ movhi - strb r2, [r4, #6] - strh r3, [r4, #2] @ movhi -.L2528: + ldr r0, [r2, #-3544] + mov r3, r3, asl #1 + ldrh r2, [r0, r3] + rsb r2, ip, r2 + strh r2, [r0, r3] @ movhi + movw r2, #2388 + mov r3, #0 + ldrh r2, [r1, r2] + strh r3, [r4, #4] @ movhi + strb r3, [r4, #6] + strh r2, [r4, #2] @ movhi +.L2602: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2535: +.L2609: .align 2 -.L2534: - .word .LANCHOR0+2316 +.L2608: + .word .LANCHOR0+2320 + .word .LANCHOR2-2620 .word .LANCHOR0 - .word .LANCHOR2-2624 .word .LANCHOR2 .fnend .size get_new_active_ppa, .-get_new_active_ppa @@ -14996,172 +15334,173 @@ FtlVpcTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldr r4, .L2554 - ldr r3, [r4, #-3620] + ldr r4, .L2628 + ldr r3, [r4, #-3616] cmp r3, #0 - bne .L2538 - ldr r2, [r4, #-528] + bne .L2612 + ldr r2, [r4, #-524] + sub r6, r4, #3600 + ldr r7, [r4, #-500] mov r1, #255 - ldr r7, [r4, #-504] - ldr r6, .L2554+4 - str r2, [r4, #1756] + ldr r5, .L2628+4 + str r2, [r4, #1760] sub r2, r4, #3296 - str r7, [r4, #1760] - ldrh r2, [r2, #-8] + str r7, [r4, #1764] + ldrh r2, [r2, #-4] str r3, [r7, #12] - ldr r5, .L2554+8 strh r2, [r7, #2] @ movhi - ldr r2, .L2554+12 + ldr r2, .L2628+8 strh r2, [r7] @ movhi - ldr r2, [r4, #-3296] + ldr r2, [r4, #-3292] stmib r7, {r2, r3} - ldr r3, .L2554+16 + ldr r3, .L2628+12 ldrh r2, [r6, #78] - str r3, [r4, #-3604] - ldr r3, .L2554+20 str r3, [r4, #-3600] + ldr r3, .L2628+16 + str r3, [r4, #-3596] add r3, r6, #300 ldrh r3, [r3, #6] strh r3, [r6, #8] @ movhi - movw r3, #2338 + movw r3, #2342 ldrh r3, [r5, r3] - strb r3, [r4, #-3594] + strb r3, [r4, #-3590] sub r3, r4, #3520 - ldrh r3, [r3, #-8] + ldrh r3, [r3, #-4] strh r3, [r6, #14] @ movhi - ldrb r3, [r4, #-3522] @ zero_extendqisi2 + ldrb r3, [r4, #-3518] @ zero_extendqisi2 orr r3, r3, r2, asl #6 strh r3, [r6, #16] @ movhi - ldrb r3, [r4, #-3520] @ zero_extendqisi2 + ldrb r3, [r4, #-3516] @ zero_extendqisi2 ldrh r2, [r6, #126] - strb r3, [r4, #-3593] + strb r3, [r4, #-3589] sub r3, r4, #3472 - ldrh r3, [r3, #-8] + ldrh r3, [r3, #-4] strh r3, [r6, #18] @ movhi - ldrb r3, [r4, #-3474] @ zero_extendqisi2 + ldrb r3, [r4, #-3470] @ zero_extendqisi2 orr r3, r3, r2, asl #6 strh r3, [r6, #20] @ movhi - ldrb r3, [r4, #-3472] @ zero_extendqisi2 - strb r3, [r4, #-3592] + ldrb r3, [r4, #-3468] @ zero_extendqisi2 + strb r3, [r4, #-3588] sub r3, r4, #3424 - ldrh r3, [r3, #-8] + ldrh r3, [r3, #-4] strh r3, [r6, #22] @ movhi ldrh r2, [r6, #174] - ldrb r3, [r4, #-3426] @ zero_extendqisi2 - ldr r0, [r4, #1756] + ldrb r3, [r4, #-3422] @ zero_extendqisi2 + ldr r0, [r4, #1760] orr r3, r3, r2, asl #6 strh r3, [r6, #24] @ movhi - ldrb r3, [r4, #-3424] @ zero_extendqisi2 - strb r3, [r4, #-3591] - ldr r3, [r4, #-3328] - str r3, [r4, #-3572] - ldr r3, [r4, #-3336] - str r3, [r4, #-3564] - ldr r3, [r4, #-3332] + ldrb r3, [r4, #-3420] @ zero_extendqisi2 + strb r3, [r4, #-3587] + ldr r3, [r4, #-3324] str r3, [r4, #-3568] + ldr r3, [r4, #-3332] + str r3, [r4, #-3560] + ldr r3, [r4, #-3328] + str r3, [r4, #-3564] sub r3, r4, #2656 - ldrh r2, [r3, #-14] - ldrh r3, [r3, #-12] + ldrh r2, [r3, #-10] + ldrh r3, [r3, #-8] strh r2, [r6, #44] @ movhi strh r3, [r6, #46] @ movhi - movw r3, #2394 + movw r3, #2398 ldrh r2, [r5, r3] bl ftl_memset mov r1, r6 mov r2, #48 - movw r6, #2324 - ldr r0, [r4, #1756] + movw r6, #2328 + ldr r0, [r4, #1760] bl ftl_memcpy ldrh r2, [r5, r6] - ldr r0, [r4, #1756] - ldr r1, [r4, #-3548] + ldr r0, [r4, #1760] + ldr r1, [r4, #-3544] mov r2, r2, asl #1 add r0, r0, #48 bl ftl_memcpy ldrh r2, [r5, r6] - ldr r0, [r4, #1756] - add r3, r2, #24 - ldr r1, [r4, #-3372] - ubfx r3, r3, #1, #30 + ldr r0, [r4, #1760] + ldr r1, [r4, #-3368] + mov r3, r2, asl #1 mov r2, r2, lsr #3 + add r3, r3, #51 add r2, r2, #4 - add r0, r0, r3, asl #2 + bic r3, r3, #3 + add r0, r0, r3 bl ftl_memcpy - movw r3, #2428 - ldrh r3, [r5, r3] + add r3, r5, #2432 + ldrh r3, [r3] cmp r3, #0 - beq .L2539 + beq .L2613 ldrh r2, [r5, r6] - ldr r0, [r4, #1756] - ldr r1, [r4, #-456] + ldr r0, [r4, #1760] + ldr r1, [r4, #-452] mov r3, r2, lsr #3 add r3, r3, r2, asl #1 - movw r2, #2420 + movw r2, #2424 add r3, r3, #52 ldrh r2, [r5, r2] ubfx r3, r3, #2, #14 mov r2, r2, asl #2 add r0, r0, r3, asl #2 bl ftl_memcpy -.L2539: +.L2613: mov r0, #0 - ldr r8, .L2554 + ldr r8, .L2628 bl FtlUpdateVaildLpn - ldr r10, .L2554+24 + ldr r10, .L2628+20 mov r6, #0 movw r9, #65535 -.L2540: - ldr r3, [r4, #-528] +.L2614: + ldr r3, [r4, #-524] ldrh r2, [r10] - ldr fp, .L2554+28 - str r3, [r4, #1756] - ldr r3, [r4, #-504] - ldrh r1, [r10, #2] + ldr fp, .L2628+24 str r3, [r4, #1760] + ldr r3, [r4, #-500] + ldrh r1, [r10, #2] + str r3, [r4, #1764] orr r3, r1, r2, asl #10 - str r3, [r4, #1752] + str r3, [r4, #1756] ldrh r3, [fp] sub r3, r3, #1 cmp r1, r3 - blt .L2541 + blt .L2615 mov r3, #0 ldrh r9, [r10, #4] strh r3, [r10, #2] @ movhi strh r2, [r10, #4] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [r8, #-3336] + ldr r3, [r8, #-3332] add r2, r3, #1 - str r2, [r8, #-3336] - str r3, [r8, #-3296] + str r2, [r8, #-3332] + str r3, [r8, #-3292] mov r2, r0, asl #10 strh r0, [r10] @ movhi - str r2, [r8, #1752] + str r2, [r8, #1756] str r3, [r7, #4] strh r0, [r7, #2] @ movhi -.L2541: +.L2615: ldrb r3, [r5] @ zero_extendqisi2 cmp r3, #0 - beq .L2542 - ldr r3, .L2554+32 - ldr r0, [r4, #-528] + beq .L2616 + ldr r3, .L2628+28 + ldr r0, [r4, #-524] ldrh r1, [r3] bl js_hash str r0, [r7, #12] -.L2542: +.L2616: mov r1, #1 - ldr r0, .L2554+36 + ldr r0, .L2628+32 mov r2, r1 mov r3, r1 bl FlashProgPages - ldr r3, .L2554+24 - ldr r2, .L2554+24 + ldr r3, .L2628+20 + ldr r2, .L2628+20 ldrh r3, [r3, #2] add r3, r3, #1 uxth r3, r3 strh r3, [r2, #2] @ movhi - ldr r2, [r4, #1748] + ldr r2, [r4, #1752] cmn r2, #1 - bne .L2543 + bne .L2617 cmp r3, #1 add r6, r6, #1 ldreqh r3, [fp] @@ -15169,41 +15508,40 @@ FtlVpcTblFlush: subeq r3, r3, #1 streqh r3, [r10, #2] @ movhi cmp r6, #3 - bls .L2540 - ldr r0, .L2554+40 + bls .L2614 + ldr r0, .L2628+36 mov r2, r6 - ldr r1, [r4, #1752] + ldr r1, [r4, #1756] bl printk mov r3, #1 - str r3, [r4, #-3620] - b .L2538 -.L2543: + str r3, [r4, #-3616] + b .L2612 +.L2617: cmp r2, #256 cmpne r3, #1 - beq .L2540 + beq .L2614 movw r3, #65535 cmp r9, r3 - beq .L2538 + beq .L2612 mov r0, r9 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2538: +.L2612: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2555: +.L2629: .align 2 -.L2554: +.L2628: .word .LANCHOR2 - .word .LANCHOR2-3604 .word .LANCHOR0 .word -3932 .word 1179929683 - .word 1342177376 - .word .LANCHOR2-3304 - .word .LANCHOR0+2386 - .word .LANCHOR0+2394 - .word .LANCHOR2+1748 - .word .LC129 + .word 1342177379 + .word .LANCHOR2-3300 + .word .LANCHOR0+2390 + .word .LANCHOR0+2398 + .word .LANCHOR2+1752 + .word .LC132 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 2 @@ -15213,100 +15551,99 @@ FtlSuperblockPowerLostFix: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - .pad #40 - sub sp, sp, #40 - ldr r5, .L2573 - ldr r3, [r5, #-3620] + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .pad #44 + sub sp, sp, #44 + ldr r5, .L2647 + ldr r3, [r5, #-3616] cmp r3, #0 - bne .L2556 - ldr r2, .L2573+4 - ldrb r6, [r2, #140] @ zero_extendqisi2 + bne .L2630 + ldr r8, .L2647+4 + ldrb r6, [r8, #144] @ zero_extendqisi2 cmp r6, #0 - beq .L2572 + beq .L2646 ldrb r6, [r0, #8] @ zero_extendqisi2 cmp r6, #1 - ldreqh r10, [r0, #4] - beq .L2558 + ldreqh fp, [r0, #4] + beq .L2632 mov r6, r3 -.L2572: - mov r10, #12 -.L2558: - ldr r7, [r5, #-504] +.L2646: + mov fp, #12 +.L2632: + ldr r7, [r5, #-500] mvn r3, #0 str r3, [sp, #20] - mov r8, #0 - ldr r3, [r5, #-528] + mov r9, #0 + ldr r3, [r5, #-524] movw r2, #61589 str r7, [sp, #16] mov r4, r0 - ldr r9, .L2573 + ldr r10, .L2647 str r3, [sp, #12] mvn r3, #2 str r3, [r7, #8] mvn r3, #1 str r3, [r7, #12] ldrh r3, [r0] - strh r8, [r7] @ movhi + strh r9, [r7] @ movhi strh r3, [r7, #2] @ movhi - ldr r3, [r5, #-528] + ldr r3, [r5, #-524] str r2, [r3] - ldr r2, .L2573+8 - ldr r3, [r5, #-528] + ldr r2, .L2647+8 + ldr r3, [r5, #-524] str r2, [r3, #4] -.L2559: - subs r10, r10, #1 - bcc .L2562 +.L2633: + subs fp, fp, #1 + bcc .L2636 ldrh r3, [r4, #4] cmp r3, #0 - bne .L2560 -.L2562: + bne .L2634 +.L2636: ldrh r3, [r4] - ldr r1, [r5, #-3548] + ldr r1, [r5, #-3544] ldrh r0, [r4, #4] mov r3, r3, asl #1 ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L2573+12 - ldrh r3, [r3] + movw r3, #2388 + ldrh r3, [r8, r3] strh r3, [r4, #2] @ movhi mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - b .L2556 -.L2560: + b .L2630 +.L2634: mov r0, r4 bl get_new_active_ppa cmn r0, #1 str r0, [sp, #8] - beq .L2562 - ldr r3, [r5, #-3332] + beq .L2636 + ldr r3, [r5, #-3328] mov r1, #1 mov r2, r6 add r0, sp, #4 str r3, [r7, #4] add r3, r3, #1 cmn r3, #1 - moveq r3, r8 - str r3, [r9, #-3332] + moveq r3, r9 + str r3, [r10, #-3328] mov r3, #0 bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L2559 -.L2556: - add sp, sp, #40 + b .L2633 +.L2630: + add sp, sp, #44 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2574: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2648: .align 2 -.L2573: +.L2647: .word .LANCHOR2 .word .LANCHOR0 .word 305419896 - .word .LANCHOR0+2384 .fnend .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 @@ -15326,17 +15663,17 @@ ftl_map_blk_gc: ldrh r3, [r4, #10] ldrh r2, [r4, #8] sub r3, r3, #4 - ldr r8, .L2589 + ldr r8, .L2663 cmp r2, r3 - blt .L2576 + blt .L2650 uxth r0, r0 mov r0, r0, asl #1 ldrh r10, [r5, r0] cmp r10, #0 - beq .L2576 + beq .L2650 ldr r3, [r4, #32] cmp r3, #0 - bne .L2576 + bne .L2650 mov r2, #1 str r2, [r4, #32] strh r3, [r5, r0] @ movhi @@ -15344,92 +15681,92 @@ ftl_map_blk_gc: ldrh r2, [r4, #2] sub r3, r3, #1 strh r3, [r4, #8] @ movhi - movw r3, #2386 + movw r3, #2390 ldrh r3, [r8, r3] cmp r2, r3 - bcc .L2577 + bcc .L2651 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2577: - ldr r5, .L2589+4 +.L2651: + ldr r5, .L2663+4 mov fp, #0 -.L2578: +.L2652: ldrh r3, [r4, #6] uxth r6, fp cmp r3, r6 - bls .L2588 + bls .L2662 ldr r3, [r7, r6, asl #2] add ip, r7, r6, asl #2 cmp r10, r3, lsr #10 - bne .L2579 - ldr r3, [r5, #-524] + bne .L2653 + ldr r3, [r5, #-520] mov r1, #1 - ldr r9, [r5, #-504] + ldr r9, [r5, #-500] mov r2, r1 - ldr r0, .L2589+8 - str r3, [r5, #1756] - str r9, [r5, #1760] + ldr r0, .L2663+8 + str r3, [r5, #1760] + str r9, [r5, #1764] ldr r3, [r7, r6, asl #2] str ip, [sp, #4] - str r3, [r5, #1752] + str r3, [r5, #1756] bl FlashReadPages - ldr r3, [r5, #1748] + ldr r3, [r5, #1752] cmn r3, #1 - ldr r3, .L2589+4 + ldr r3, .L2663+4 ldr ip, [sp, #4] - bne .L2580 -.L2582: + bne .L2654 +.L2656: mov r2, #0 - ldr r0, .L2589+12 + ldr r0, .L2663+12 str r2, [ip] - ldr r1, [r3, #1752] + ldr r1, [r3, #1756] ldrh r2, [r9, #8] str r3, [sp, #4] bl printk mov r2, #1 ldr r3, [sp, #4] - str r2, [r3, #-3620] - b .L2581 -.L2580: + str r2, [r3, #-3616] + b .L2655 +.L2654: ldrh r1, [r9, #8] cmp r1, r6 - bne .L2582 + bne .L2656 ldrh r0, [r9] ldrh r2, [r4, #4] cmp r0, r2 - bne .L2582 + bne .L2656 mov r0, r4 - ldr r2, [r5, #1756] + ldr r2, [r5, #1760] bl FtlMapWritePage -.L2579: +.L2653: add fp, fp, #1 - b .L2578 -.L2588: + b .L2652 +.L2662: mov r0, r10 mov r1, #1 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L2576: - movw r3, #2386 +.L2650: + movw r3, #2390 ldrh r2, [r4, #2] ldrh r3, [r8, r3] cmp r2, r3 - bcc .L2581 + bcc .L2655 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2581: +.L2655: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2590: +.L2664: .align 2 -.L2589: +.L2663: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+1748 - .word .LC130 + .word .LANCHOR2+1752 + .word .LC133 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 @@ -15441,17 +15778,17 @@ Ftl_write_map_blk_to_last_page: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} - ldr r5, .L2603 + ldr r5, .L2677 ldr r7, [r0, #12] ldr r9, [r0, #24] - ldr r6, [r5, #-3620] + ldr r6, [r5, #-3616] cmp r6, #0 - bne .L2592 + bne .L2666 ldrh r3, [r0] movw r2, #65535 mov r4, r0 cmp r3, r2 - bne .L2593 + bne .L2667 ldrh r3, [r0, #8] add r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -15462,65 +15799,65 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r6, [r4] @ movhi str r3, [r4, #28] - b .L2592 -.L2593: + b .L2666 +.L2667: mov r3, r3, asl #1 - ldr r10, .L2603+4 + ldr r10, .L2677+4 mov r1, #255 ldrh r8, [r7, r3] ldrh r3, [r0, #2] - ldr r7, [r5, #-504] + ldr r7, [r5, #-500] orr r3, r3, r8, asl #10 - str r3, [r5, #1752] - ldr r3, [r5, #-528] - str r7, [r5, #1760] str r3, [r5, #1756] + ldr r3, [r5, #-524] + str r7, [r5, #1764] + str r3, [r5, #1760] ldr r3, [r0, #28] str r3, [r7, #4] - ldr r3, .L2603+8 + ldr r3, .L2677+8 strh r3, [r7, #8] @ movhi ldrh r3, [r0, #4] strh r8, [r7, #2] @ movhi strh r3, [r7] @ movhi - movw r3, #2386 + movw r3, #2390 ldrh r2, [r10, r3] - ldr r0, [r5, #-528] + ldr r0, [r5, #-524] mov r2, r2, asl #3 bl ftl_memset mov r2, r6 -.L2594: +.L2668: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L2602 + bls .L2676 ldr r1, [r9, r3, asl #2] cmp r8, r1, lsr #10 - bne .L2595 + bne .L2669 add r6, r6, #1 - ldr r1, [r5, #-528] + ldr r1, [r5, #-524] uxth r6, r6 str r3, [r1, r6, asl #3] ldr r1, [r9, r3, asl #2] - ldr r3, [r5, #-528] + ldr r3, [r5, #-524] add r3, r3, r6, asl #3 str r1, [r3, #4] -.L2595: +.L2669: add r2, r2, #1 - b .L2594 -.L2602: + b .L2668 +.L2676: ldrb r3, [r10] @ zero_extendqisi2 cmp r3, #0 - beq .L2597 - ldr r2, .L2603+4 - movw r3, #2394 - ldr r0, [r5, #1756] + beq .L2671 + ldr r2, .L2677+4 + movw r3, #2398 + ldr r0, [r5, #1760] ldrh r1, [r2, r3] bl js_hash str r0, [r7, #12] -.L2597: +.L2671: mov r1, #1 mov r3, #0 - ldr r0, .L2603+12 + ldr r0, .L2677+12 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -15528,16 +15865,16 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2592: +.L2666: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2604: +.L2678: .align 2 -.L2603: +.L2677: .word .LANCHOR2 .word .LANCHOR0 .word -1291 - .word .LANCHOR2+1748 + .word .LANCHOR2+1752 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 @@ -15551,67 +15888,67 @@ FtlMapWritePage: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r0 - ldr r10, .L2624 + ldr r10, .L2698 mov r8, r1 - ldr fp, .L2624+4 + ldr fp, .L2698+4 mov r5, #0 str r2, [sp] mov r9, r10 -.L2606: - ldr r3, [r10, #-3352] - ldr r6, .L2624 +.L2680: + ldr r3, [r10, #-3348] + ldr r6, .L2698 add r3, r3, #1 - str r3, [r10, #-3352] + str r3, [r10, #-3348] ldrh r3, [fp] ldrh r2, [r4, #2] sub r3, r3, #1 cmp r2, r3 - bge .L2607 + bge .L2681 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L2608 -.L2607: + bne .L2682 +.L2681: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L2608: - ldr r1, [r9, #-3620] +.L2682: + ldr r1, [r9, #-3616] cmp r1, #0 - bne .L2609 + bne .L2683 ldrh r3, [r4] ldr r2, [r4, #12] - ldr r0, [r10, #-504] + ldr r0, [r10, #-500] mov r3, r3, asl #1 ldrh r7, [r2, r3] mov r2, #16 ldrh r3, [r4, #2] - str r0, [r10, #1760] + str r0, [r10, #1764] orr r3, r3, r7, asl #10 - str r3, [r10, #1752] - ldr r3, [sp] str r3, [r10, #1756] + ldr r3, [sp] + str r3, [r10, #1760] bl ftl_memset ldr r2, [r4, #28] - ldr r3, [r10, #1760] + ldr r3, [r10, #1764] str r2, [r3, #4] strh r8, [r3, #8] @ movhi ldrh r2, [r4, #4] strh r7, [r3, #2] @ movhi strh r2, [r3] @ movhi - ldr r2, .L2624+8 + ldr r2, .L2698+8 ldrb r2, [r2] @ zero_extendqisi2 cmp r2, #0 - beq .L2610 - ldr r2, .L2624+12 - ldr r0, [r10, #1756] + beq .L2684 + ldr r2, .L2698+12 + ldr r0, [r10, #1760] str r3, [sp, #4] ldrh r1, [r2] bl js_hash ldr r3, [sp, #4] str r0, [r3, #12] -.L2610: +.L2684: mov r1, #1 - ldr r0, .L2624+16 + ldr r0, .L2698+16 mov r2, r1 mov r3, r1 bl FlashProgPages @@ -15619,61 +15956,61 @@ FtlMapWritePage: add r3, r3, #1 uxth r3, r3 strh r3, [r4, #2] @ movhi - ldr r2, [r9, #1748] + ldr r2, [r9, #1752] cmn r2, #1 - bne .L2611 - ldr r0, .L2624+20 + bne .L2685 + ldr r0, .L2698+20 add r5, r5, #1 - ldr r1, [r10, #1752] + ldr r1, [r10, #1756] bl printk ldrh r3, [r4, #2] uxth r5, r5 cmp r3, #2 - ldrls r3, .L2624+4 + ldrls r3, .L2698+4 ldrlsh r3, [r3] subls r3, r3, #1 strlsh r3, [r4, #2] @ movhi cmp r5, #3 - bls .L2606 - ldr r0, .L2624+24 + bls .L2680 + ldr r0, .L2698+24 mov r2, r5 - ldr r1, [r6, #1752] + ldr r1, [r6, #1756] bl printk mov r3, #1 - str r3, [r6, #-3620] - b .L2609 -.L2611: + str r3, [r6, #-3616] + b .L2683 +.L2685: cmp r2, #0 strneh r7, [r4, #40] @ movhi cmp r2, #256 cmpne r3, #1 - beq .L2615 + beq .L2689 ldr r3, [r4, #36] cmp r3, #0 - beq .L2616 -.L2615: + beq .L2690 +.L2689: mov r3, #0 str r3, [r4, #36] - b .L2606 -.L2616: - ldr r2, [r6, #1752] + b .L2680 +.L2690: + ldr r2, [r6, #1756] ldr r3, [r4, #24] str r2, [r3, r8, asl #2] -.L2609: +.L2683: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2625: +.L2699: .align 2 -.L2624: +.L2698: .word .LANCHOR2 - .word .LANCHOR0+2386 + .word .LANCHOR0+2390 .word .LANCHOR0 - .word .LANCHOR0+2394 - .word .LANCHOR2+1748 - .word .LC131 - .word .LC132 + .word .LANCHOR0+2398 + .word .LANCHOR2+1752 + .word .LC134 + .word .LC135 .fnend .size FtlMapWritePage, .-FtlMapWritePage .align 2 @@ -15686,24 +16023,24 @@ flush_l2p_region: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #12 - ldr r5, .L2628 + ldr r5, .L2702 mul r4, r4, r0 - sub r0, r5, #436 - ldr r3, [r5, #-3384] + sub r0, r5, #432 + ldr r3, [r5, #-3380] add r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] bl FtlMapWritePage - ldr r3, [r5, #-3384] + ldr r3, [r5, #-3380] mov r0, #0 add r4, r3, r4 ldr r3, [r4, #4] bic r3, r3, #-2147483648 str r3, [r4, #4] ldmfd sp!, {r3, r4, r5, pc} -.L2629: +.L2703: .align 2 -.L2628: +.L2702: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -15730,33 +16067,33 @@ FtlMapTblRecovery: mov r0, r8 str r3, [sp, #8] bl ftl_memset - ldr r1, .L2673 + ldr r1, .L2747 mov r2, #1 str r2, [r4, #36] - ldr r3, [r1, #-528] + ldr r3, [r1, #-524] mov r5, r1 - ldr r6, [r1, #-504] + ldr r6, [r1, #-500] mov r7, r1 - str r3, [r1, #1756] + str r3, [r1, #1760] mvn r3, #0 - str r6, [r1, #1760] + str r6, [r1, #1764] strh r3, [r4] @ movhi strh r3, [r4, #2] @ movhi mov r3, #0 str r3, [r4, #32] str r3, [r4, #28] str r3, [sp, #4] -.L2631: +.L2705: ldrh r3, [sp, #4] ldr r2, [sp, #8] sxth fp, r3 cmp fp, r2 - bge .L2649 + bge .L2723 ldr r2, [sp, #8] sub r2, r2, #1 cmp fp, r2 mov r2, fp, asl #1 - bne .L2632 + bne .L2706 ldrh r0, [r9, r2] mov r1, #1 str r3, [sp, #8] @@ -15772,70 +16109,70 @@ FtlMapTblRecovery: strh r3, [r4] @ movhi ldr r3, [sp, #12] ldr r3, [r3, fp, asl #2] - ldr fp, .L2673 + ldr fp, .L2747 str r3, [r4, #28] -.L2633: +.L2707: sxth r3, r7 cmp r3, r9 - bge .L2649 + bge .L2723 ldr r2, [sp, #4] mov r1, #1 - ldr r0, .L2673+4 + ldr r0, .L2747+4 ldrh r2, [r2] orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r5, #1752] + str r3, [r5, #1756] bl FlashReadPages - ldr r3, .L2673+8 + ldr r3, .L2747+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2634 - ldr r3, [fp, #1760] + beq .L2708 + ldr r3, [fp, #1764] ldr r3, [r3, #12] cmp r3, #0 - beq .L2634 - ldr r2, .L2673+12 - ldr r0, [fp, #1756] + beq .L2708 + ldr r2, .L2747+12 + ldr r0, [fp, #1760] str r3, [sp, #8] ldrh r1, [r2] bl js_hash ldr r3, [sp, #8] cmp r3, r0 mvnne r3, #0 - strne r3, [fp, #1748] -.L2634: - ldr r3, [fp, #1748] + strne r3, [fp, #1752] +.L2708: + ldr r3, [fp, #1752] cmn r3, #1 - beq .L2635 + beq .L2709 ldrh r3, [r6, #8] cmp r3, r10 - bcs .L2635 + bcs .L2709 ldrh r2, [r4, #4] ldrh r1, [r6] cmp r1, r2 - ldreq r2, [fp, #1752] + ldreq r2, [fp, #1756] streq r2, [r8, r3, asl #2] -.L2635: +.L2709: add r7, r7, #1 - b .L2633 -.L2649: + b .L2707 +.L2723: mov r0, r4 bl ftl_free_no_use_map_blk - ldr r1, .L2673+8 - movw r3, #2386 + ldr r1, .L2747+8 + movw r3, #2390 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bne .L2638 + bne .L2712 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2638 -.L2632: - ldr r3, [r5, #-528] + b .L2712 +.L2706: + ldr r3, [r5, #-524] mov r1, #1 - ldr fp, .L2673+16 - ldr r0, .L2673+4 - str r3, [r5, #1756] + ldr fp, .L2747+16 + ldr r0, .L2747+4 + str r3, [r5, #1760] add r3, r9, r2 ldrh r2, [r9, r2] str r3, [sp, #16] @@ -15843,31 +16180,31 @@ FtlMapTblRecovery: sub r3, r3, #1 orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r5, #1752] + str r3, [r5, #1756] bl FlashReadPages - ldr r3, [r5, #1748] + ldr r3, [r5, #1752] cmn r3, #1 mov r3, fp - beq .L2651 + beq .L2725 ldrh r1, [r6] ldrh r2, [r4, #4] cmp r1, r2 - bne .L2651 + bne .L2725 ldrh r1, [r6, #8] movw r2, #64245 cmp r1, r2 - bne .L2651 + bne .L2725 mov r0, #0 mov lr, #8 mov fp, #4 -.L2640: +.L2714: uxth r2, r0 ldrh ip, [r3] sxth r1, r2 sub ip, ip, #1 cmp r1, ip - bge .L2643 - ldr ip, [r5, #-528] + bge .L2717 + ldr ip, [r5, #-524] add r0, r0, #1 ldr r1, [ip, r1, asl #3] uxth r1, r1 @@ -15875,63 +16212,63 @@ FtlMapTblRecovery: smlabbcc r2, r2, lr, fp ldrcc r2, [ip, r2] strcc r2, [r8, r1, asl #2] - b .L2640 -.L2651: + b .L2714 +.L2725: mov fp, #0 -.L2671: - ldr r3, .L2673+16 +.L2745: + ldr r3, .L2747+16 sxth r2, fp ldrh r1, [r3] cmp r2, r1 - bge .L2643 + bge .L2717 str r3, [sp, #20] ldr r3, [sp, #16] - ldr r0, .L2673+4 + ldr r0, .L2747+4 ldrh r1, [r3] orr r2, r2, r1, asl #10 mov r1, #1 - str r2, [r7, #1752] + str r2, [r7, #1756] mov r2, r1 bl FlashReadPages - ldr r3, .L2673+8 + ldr r3, .L2747+8 ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 ldr r3, [sp, #20] - beq .L2644 - ldr r2, [r7, #1760] + beq .L2718 + ldr r2, [r7, #1764] ldr r2, [r2, #12] cmp r2, #0 - beq .L2644 + beq .L2718 ldrh r1, [r3, #8] - ldr r0, [r7, #1756] + ldr r0, [r7, #1760] str r2, [sp, #20] bl js_hash ldr r2, [sp, #20] cmp r2, r0 mvnne r3, #0 - strne r3, [r7, #1748] -.L2644: - ldr r3, .L2673 - ldr r3, [r3, #1748] + strne r3, [r7, #1752] +.L2718: + ldr r3, .L2747 + ldr r3, [r3, #1752] cmn r3, #1 - beq .L2645 + beq .L2719 ldrh r3, [r6, #8] cmp r3, r10 - bcs .L2645 + bcs .L2719 ldrh r2, [r4, #4] ldrh r1, [r6] cmp r1, r2 - ldreq r2, [r7, #1752] + ldreq r2, [r7, #1756] streq r2, [r8, r3, asl #2] -.L2645: +.L2719: add fp, fp, #1 - b .L2671 -.L2643: + b .L2745 +.L2717: ldr r3, [sp, #4] add r3, r3, #1 str r3, [sp, #4] - b .L2631 -.L2638: + b .L2705 +.L2712: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -15940,14 +16277,14 @@ FtlMapTblRecovery: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2674: +.L2748: .align 2 -.L2673: +.L2747: .word .LANCHOR2 - .word .LANCHOR2+1748 + .word .LANCHOR2+1752 .word .LANCHOR0 - .word .LANCHOR0+2394 - .word .LANCHOR0+2386 + .word .LANCHOR0+2398 + .word .LANCHOR0+2390 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 @@ -15957,37 +16294,36 @@ FtlLoadVonderInfo: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2677 - movw r1, #2404 + ldr r2, .L2751 + movw r1, #2408 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2677+4 + ldr r3, .L2751+4 ldrh r1, [r2, r1] - add r0, r3, #1776 - add r0, r0, #12 + add r0, r3, #1792 strh r1, [r0, #10] @ movhi - ldr r1, .L2677+8 + ldr r1, .L2751+8 strh r1, [r0, #4] @ movhi - movw r1, #2430 + movw r1, #2434 ldrh r1, [r2, r1] strh r1, [r0, #8] @ movhi - movw r1, #2406 + movw r1, #2410 ldrh r1, [r2, r1] - ldr r2, [r2, #2432] + ldr r2, [r2, #2436] strh r1, [r0, #6] @ movhi - str r2, [r3, #1800] - ldr r2, [r3, #-464] str r2, [r3, #1804] - ldr r2, [r3, #-468] - str r2, [r3, #1808] ldr r2, [r3, #-460] + str r2, [r3, #1808] + ldr r2, [r3, #-464] str r2, [r3, #1812] + ldr r2, [r3, #-456] + str r2, [r3, #1816] bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2678: +.L2752: .align 2 -.L2677: +.L2751: .word .LANCHOR0 .word .LANCHOR2 .word -3962 @@ -16003,14 +16339,14 @@ FtlLoadMapInfo: stmfd sp!, {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2681 + ldr r0, .L2755 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2682: +.L2756: .align 2 -.L2681: - .word .LANCHOR2-436 +.L2755: + .word .LANCHOR2-432 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 2 @@ -16020,37 +16356,37 @@ FtlVendorPartWrite: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2694 + ldr r3, .L2768 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r10, r2 - movw r2, #2392 - mov r4, r1 - ldrh r5, [r3, r2] - add r2, r0, r1 - movw r1, #2380 + movw r2, #2396 mov r6, r0 - ldrh r3, [r3, r1] + ldrh r5, [r3, r2] + add r3, r3, #2384 + add r2, r0, r1 .pad #60 sub sp, sp, #60 + ldrh r3, [r3] + mov r4, r1 cmp r2, r3 mvnhi r0, #0 - bhi .L2684 - ldr fp, .L2694+4 + bhi .L2758 + ldr fp, .L2768+4 mov r5, r6, lsr r5 mov r3, r5, asl #2 str r3, [sp, #4] mov r7, fp mov r3, #0 str r3, [sp] -.L2685: +.L2759: cmp r4, #0 - beq .L2693 + beq .L2767 ldr r2, [sp, #4] mov r0, r6 - ldr r3, [fp, #-460] + ldr r3, [fp, #-456] ldr ip, [r3, r2] - ldr r3, .L2694+8 + ldr r3, .L2768+8 str ip, [sp, #12] ldrh r2, [r3] mov r1, r2 @@ -16067,8 +16403,8 @@ FtlVendorPartWrite: cmpne ip, #0 movne r1, #1 moveq r1, #0 - beq .L2687 - ldr r2, [r7, #-520] + beq .L2761 + ldr r2, [r7, #-516] mov r1, #1 add r0, sp, #20 str ip, [sp, #24] @@ -16077,15 +16413,15 @@ FtlVendorPartWrite: str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2688 -.L2687: - ldr r2, .L2694+12 - ldr r0, [r7, #-520] + b .L2762 +.L2761: + ldr r2, .L2768+12 + ldr r0, [r7, #-516] ldrh r2, [r2] bl ftl_memset -.L2688: +.L2762: mov ip, r9, asl #9 - ldr r0, [r7, #-520] + ldr r0, [r7, #-516] uxth r8, r8 mov r1, r10 mov r2, ip @@ -16094,9 +16430,9 @@ FtlVendorPartWrite: rsb r4, r9, r4 bl ftl_memcpy mov r1, r5 - ldr r0, .L2694+16 + ldr r0, .L2768+16 add r5, r5, #1 - ldr r2, [r7, #-520] + ldr r2, [r7, #-516] add r6, r6, r9 bl FtlMapWritePage ldr r3, [sp] @@ -16108,21 +16444,21 @@ FtlVendorPartWrite: ldr r3, [sp, #4] add r3, r3, #4 str r3, [sp, #4] - b .L2685 -.L2693: + b .L2759 +.L2767: ldr r0, [sp] -.L2684: +.L2758: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2695: +.L2769: .align 2 -.L2694: +.L2768: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+2390 .word .LANCHOR0+2394 - .word .LANCHOR2+1788 + .word .LANCHOR0+2398 + .word .LANCHOR2+1792 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 @@ -16133,52 +16469,51 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2698 - ldr r2, .L2698+4 - ldr r1, [r3, #-3236] - cmp r1, r2 + ldr r2, .L2772 + ldr r3, .L2772+4 + ldr r1, [r2, #-3232] + cmp r1, r3 bxne lr - ldr r2, .L2698+8 + ldr r3, .L2772+8 mov r0, #0 mov r1, #1 - str r2, [r3, #-3232] - ldr r2, [r3, #-3344] - str r2, [r3, #-3148] - ldr r2, [r3, #-3340] - str r2, [r3, #-3144] - ldr r2, [r3, #-3348] - str r2, [r3, #-3228] - ldr r2, [r3, #-3360] - str r2, [r3, #-3224] - ldr r2, [r3, #-3368] - str r2, [r3, #-3220] - ldr r2, [r3, #-3352] - str r2, [r3, #-3216] - ldr r2, [r3, #-3324] - str r2, [r3, #-3208] - ldr r2, [r3, #-3608] - str r2, [r3, #-3204] - ldr r2, [r3, #-3364] - str r2, [r3, #-3200] - ldr r2, [r3, #-3356] - str r2, [r3, #-3196] - ldr r2, [r3, #-3316] - str r2, [r3, #-3192] - ldr r2, [r3, #-3312] - str r2, [r3, #-3188] - ldr r2, [r3, #-3240] - str r2, [r3, #-3176] - ldr r2, [r3, #-568] - str r2, [r3, #-3172] - ldr r2, .L2698+12 + sub r2, r2, #3232 + str r3, [r2, #4] + ldr r3, [r2, #-108] + str r3, [r2, #88] + ldr r3, [r2, #-104] + str r3, [r2, #92] + ldr r3, [r2, #-112] + str r3, [r2, #8] + ldr r3, [r2, #-124] + str r3, [r2, #12] + ldr r3, [r2, #-132] + str r3, [r2, #16] + ldr r3, [r2, #-116] + str r3, [r2, #20] + ldr r3, [r2, #-88] + str r3, [r2, #28] + ldr r3, [r2, #-372] + str r3, [r2, #32] + ldr r3, [r2, #-128] + str r3, [r2, #36] + ldr r3, [r2, #-120] + str r3, [r2, #40] + ldr r3, [r2, #-80] + str r3, [r2, #44] + ldr r3, [r2, #-76] + str r3, [r2, #48] + ldr r3, [r2, #-4] + str r3, [r2, #60] + ldr r3, [r2, #2668] + str r3, [r2, #64] b FtlVendorPartWrite -.L2699: +.L2773: .align 2 -.L2698: +.L2772: .word .LANCHOR2 .word 1179929683 - .word 1342177376 - .word .LANCHOR2-3236 + .word 1342177379 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 @@ -16190,41 +16525,41 @@ FtlEctTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2708 - ldr r3, [r3, #2308] + ldr r3, .L2782 + ldr r3, [r3, #2244] cmp r3, #0 - ldr r3, .L2708+4 + ldr r3, .L2782+4 moveq r2, #32 - beq .L2701 - ldr r2, [r3, #-3312] + beq .L2775 + ldr r2, [r3, #-3308] cmp r2, #39 movhi r2, #32 movls r2, #4 -.L2701: - movw ip, #1832 +.L2775: + movw ip, #1836 ldrh r1, [r3, ip] cmp r1, #31 addls r1, r1, #1 - ldrls r2, .L2708+4 + ldrls r2, .L2782+4 strlsh r1, [r2, ip] @ movhi movls r2, #1 cmp r0, #0 - bne .L2703 - ldr r1, [r3, #-484] + bne .L2777 + ldr r1, [r3, #-480] ldr r0, [r1, #20] ldr r1, [r1, #16] add r2, r2, r0 cmp r1, r2 - bcc .L2704 -.L2703: - ldr r2, [r3, #-484] + bcc .L2778 +.L2777: + ldr r2, [r3, #-480] mov r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L2708+8 + ldr r1, .L2782+8 str r1, [r2] - ldr r2, [r3, #-484] - ldr r3, .L2708+12 + ldr r2, [r3, #-480] + ldr r3, .L2782+12 ldrh r1, [r3] mov r3, r1, asl #9 str r3, [r2, #12] @@ -16235,16 +16570,16 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2704: +.L2778: mov r0, #0 ldmfd sp!, {r3, pc} -.L2709: +.L2783: .align 2 -.L2708: +.L2782: .word .LANCHOR0 .word .LANCHOR2 .word 1112818501 - .word .LANCHOR2-492 + .word .LANCHOR2-488 .fnend .size FtlEctTblFlush, .-FtlEctTblFlush .align 2 @@ -16256,8 +16591,8 @@ FtlVendorPartRead: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r3, #2392 - ldr r4, .L2722 + movw r3, #2396 + ldr r4, .L2796 mov r8, r2 add r2, r0, r1 mov r7, r0 @@ -16265,27 +16600,27 @@ FtlVendorPartRead: sub sp, sp, #60 mov r6, r1 ldrh r5, [r4, r3] - movw r3, #2380 - ldrh r3, [r4, r3] + add r4, r4, #2384 + ldrh r3, [r4] cmp r2, r3 mvnhi r0, #0 - bhi .L2711 - ldr r9, .L2722+4 + bhi .L2785 + ldr r9, .L2796+4 mov r5, r7, lsr r5 mov r3, r5, asl #2 str r3, [sp, #4] mov r10, r9 mov r3, #0 str r3, [sp] -.L2712: +.L2786: cmp r6, #0 - beq .L2721 + beq .L2795 ldr r2, [sp, #4] mov r0, r7 - ldr r3, [r9, #-460] + ldr r3, [r9, #-456] ldr r3, [r3, r2] str r3, [sp, #12] - ldr r3, .L2722+8 + ldr r3, .L2796+8 ldrh r4, [r3] mov r1, r4 bl __aeabi_uidivmod @@ -16297,8 +16632,8 @@ FtlVendorPartRead: uxthhi r4, r6 cmp r3, #0 mov fp, r4, asl #9 - beq .L2714 - ldr r2, [r10, #-520] + beq .L2788 + ldr r2, [r10, #-516] mov r1, #1 add r0, sp, #20 str r3, [sp, #24] @@ -16311,34 +16646,34 @@ FtlVendorPartRead: ldr r2, [sp, #20] ldr r3, [sp] cmn r2, #1 - ldr r2, [r10, #1748] + ldr r2, [r10, #1752] mvneq r3, #0 cmp r2, #256 str r3, [sp] ldr r3, [sp, #12] - bne .L2716 + bne .L2790 mov r1, r5 mov r2, r3 - ldr r0, .L2722+12 + ldr r0, .L2796+12 bl printk - ldr r0, .L2722+16 + ldr r0, .L2796+16 mov r1, r5 - ldr r2, [r9, #-520] + ldr r2, [r9, #-516] bl FtlMapWritePage -.L2716: +.L2790: ldrh r3, [sp, #8] mov r0, r8 - ldr r1, [r10, #-520] + ldr r1, [r10, #-516] mov r2, fp add r1, r1, r3, asl #9 bl ftl_memcpy - b .L2717 -.L2714: + b .L2791 +.L2788: mov r0, r8 mov r1, r3 mov r2, fp bl ftl_memset -.L2717: +.L2791: ldr r3, [sp, #4] add r5, r5, #1 rsb r6, r4, r6 @@ -16346,21 +16681,21 @@ FtlVendorPartRead: add r3, r3, #4 add r8, r8, fp str r3, [sp, #4] - b .L2712 -.L2721: + b .L2786 +.L2795: ldr r0, [sp] -.L2711: +.L2785: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2723: +.L2797: .align 2 -.L2722: +.L2796: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+2390 - .word .LC133 - .word .LANCHOR2+1788 + .word .LANCHOR0+2394 + .word .LC136 + .word .LANCHOR2+1792 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 @@ -16373,33 +16708,33 @@ FtlLoadEctTbl: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #64 - ldr r4, .L2727 - sub r5, r4, #492 - ldr r2, [r4, #-484] + ldr r4, .L2801 + sub r5, r4, #488 + ldr r2, [r4, #-480] ldrh r1, [r5] bl FtlVendorPartRead - ldr r3, [r4, #-484] + ldr r3, [r4, #-480] ldr r2, [r3] - ldr r3, .L2727+4 + ldr r3, .L2801+4 cmp r2, r3 - beq .L2725 - ldr r1, .L2727+8 - ldr r0, .L2727+12 + beq .L2799 + ldr r1, .L2801+8 + ldr r0, .L2801+12 bl printk ldrh r2, [r5] - ldr r0, [r4, #-484] + ldr r0, [r4, #-480] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L2725: +.L2799: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L2728: +.L2802: .align 2 -.L2727: +.L2801: .word .LANCHOR2 .word 1112818501 - .word .LC134 + .word .LC137 .word .LC76 .fnend .size FtlLoadEctTbl, .-FtlLoadEctTbl @@ -16413,92 +16748,91 @@ Ftl_load_ext_data: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r4, .L2735 + ldr r4, .L2809 mov r1, #1 - ldr r2, .L2735+4 + ldr r5, .L2809+4 + sub r2, r4, #3232 bl FtlVendorPartRead - ldr r5, .L2735+8 - ldr r3, [r4, #-3236] + ldr r3, [r4, #-3232] cmp r3, r5 - beq .L2730 - ldr r0, .L2735+4 + beq .L2804 + sub r0, r4, #3232 mov r1, #0 mov r2, #512 bl ftl_memset - str r5, [r4, #-3236] -.L2730: - ldr r2, [r4, #-3236] - ldr r3, .L2735 + str r5, [r4, #-3232] +.L2804: + ldr r2, [r4, #-3232] + ldr r3, .L2809 cmp r2, r5 - bne .L2731 - ldr r2, [r3, #-3148] - str r2, [r3, #-3344] + bne .L2805 ldr r2, [r3, #-3144] str r2, [r3, #-3340] - ldr r2, [r3, #-3228] - str r2, [r3, #-3348] + ldr r2, [r3, #-3140] + str r2, [r3, #-3336] ldr r2, [r3, #-3224] - str r2, [r3, #-3360] + str r2, [r3, #-3344] ldr r2, [r3, #-3220] - str r2, [r3, #-3368] - ldr r2, [r3, #-3216] - str r2, [r3, #-3352] - ldr r2, [r3, #-3208] - str r2, [r3, #-3324] - ldr r2, [r3, #-3204] - str r2, [r3, #-3608] - ldr r2, [r3, #-3200] - str r2, [r3, #-3364] - ldr r2, [r3, #-3196] str r2, [r3, #-3356] + ldr r2, [r3, #-3216] + str r2, [r3, #-3364] + ldr r2, [r3, #-3212] + str r2, [r3, #-3348] + ldr r2, [r3, #-3204] + str r2, [r3, #-3320] + ldr r2, [r3, #-3200] + str r2, [r3, #-3604] + ldr r2, [r3, #-3196] + str r2, [r3, #-3360] ldr r2, [r3, #-3192] - str r2, [r3, #-3316] + str r2, [r3, #-3352] ldr r2, [r3, #-3188] str r2, [r3, #-3312] - ldr r2, [r3, #-3176] - str r2, [r3, #-3240] -.L2731: - ldr r1, [r4, #-3168] + ldr r2, [r3, #-3184] + str r2, [r3, #-3308] + ldr r2, [r3, #-3172] + str r2, [r3, #-3236] +.L2805: + ldr r1, [r4, #-3164] mov r3, #0 - ldr r2, .L2735+12 - str r3, [r4, #-568] + ldr r2, .L2809+8 + str r3, [r4, #-564] cmp r1, r2 - ldr r5, .L2735+16 - bne .L2732 - ldrb r2, [r5, #140] @ zero_extendqisi2 + ldr r5, .L2809+12 + bne .L2806 + ldrb r2, [r5, #144] @ zero_extendqisi2 cmp r2, r3 - beq .L2733 - ldr r2, .L2735 - str r3, [r2, #-3168] + beq .L2807 + ldr r2, .L2809 + str r3, [r2, #-3164] bl Ftl_save_ext_data - b .L2732 -.L2733: - ldr r0, .L2735+20 + b .L2806 +.L2807: + ldr r0, .L2809+16 mov r3, #1 - ldr r1, .L2735+24 - str r3, [r5, #2308] + ldr r1, .L2809+20 + str r3, [r5, #2244] bl printk -.L2732: - movw r3, #2376 - ldr r0, [r4, #-3328] +.L2806: + movw r3, #2380 + ldr r0, [r4, #-3324] ldrh r2, [r5, r3] - ldr r3, [r4, #-3324] + ldr r3, [r4, #-3320] mla r0, r0, r2, r3 - movw r3, #2324 + movw r3, #2328 ldrh r1, [r5, r3] bl __aeabi_uidiv - str r0, [r4, #-3320] + str r0, [r4, #-3316] ldmfd sp!, {r3, r4, r5, pc} -.L2736: +.L2810: .align 2 -.L2735: +.L2809: .word .LANCHOR2 - .word .LANCHOR2-3236 .word 1179929683 .word 305432421 .word .LANCHOR0 .word .LC76 - .word .LC135 + .word .LC138 .fnend .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 2 @@ -16515,45 +16849,45 @@ FtlMapBlkWriteDumpData: cmp r2, #0 ldr r3, [r0, #24] ldmeqfd sp!, {r4, r5, r6, pc} - ldr r4, .L2744 + ldr r4, .L2818 mov r2, #0 str r2, [r0, #36] - ldr r2, [r4, #-3620] + ldr r2, [r4, #-3616] cmp r2, #0 ldmnefd sp!, {r4, r5, r6, pc} sub r5, r5, #1 mov r6, r0 - ldr r2, [r4, #-504] - ldr r0, [r4, #-524] + ldr r2, [r4, #-500] + ldr r0, [r4, #-520] uxth r5, r5 - str r2, [r4, #1760] - str r0, [r4, #1756] + str r2, [r4, #1764] + str r0, [r4, #1760] ldr r3, [r3, r5, asl #2] cmp r3, #0 - str r3, [r4, #1752] - beq .L2741 + str r3, [r4, #1756] + beq .L2815 mov r1, #1 - ldr r0, .L2744+4 + ldr r0, .L2818+4 mov r2, r1 bl FlashReadPages - b .L2742 -.L2741: - ldr r2, .L2744+8 - movw r3, #2394 + b .L2816 +.L2815: + ldr r2, .L2818+8 + movw r3, #2398 mov r1, #255 ldrh r2, [r2, r3] bl ftl_memset -.L2742: +.L2816: mov r0, r6 mov r1, r5 - ldr r2, [r4, #1756] + ldr r2, [r4, #1760] ldmfd sp!, {r4, r5, r6, lr} b FtlMapWritePage -.L2745: +.L2819: .align 2 -.L2744: +.L2818: .word .LANCHOR2 - .word .LANCHOR2+1748 + .word .LANCHOR2+1752 .word .LANCHOR0 .fnend .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData @@ -16564,30 +16898,30 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2761 + ldr r3, .L2835 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r2 - ldrh r2, [r3, #124] + ldrh r2, [r3, #128] .pad #40 sub sp, sp, #40 - ldrh r3, [r3, #126] + ldrh r3, [r3, #130] mov r5, r0 - ldr r9, .L2761+4 + ldr r9, .L2835+4 mov r7, r1 smulbb r3, r2, r3 - ldr r2, [r9, #1684] + ldr r2, [r9, #1688] str r2, [sp, #12] - ldr r2, [r9, #1716] + ldr r2, [r9, #1720] uxth r3, r3 sub r6, r3, #1 sub r4, r3, #16 mul r10, r3, r1 uxth r6, r6 str r2, [sp, #16] -.L2747: +.L2821: cmp r6, r4 - ble .L2760 + ble .L2834 mov r1, #1 add r3, r6, r10 add r0, sp, #4 @@ -16597,60 +16931,60 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] cmn r3, #1 - beq .L2748 - ldr r3, [r9, #1716] + beq .L2822 + ldr r3, [r9, #1720] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L2748 + bne .L2822 cmp r5, #0 moveq r0, r5 - beq .L2749 + beq .L2823 cmp r7, #0 - ldreq ip, .L2761+4 + ldreq ip, .L2835+4 moveq lr, #1 - beq .L2750 -.L2752: - ldr r1, [r9, #1684] + beq .L2824 +.L2826: + ldr r1, [r9, #1688] mov r2, r8 mov r0, r5 bl ftl_memcpy mov r2, #4 - ldr r0, .L2761+8 + ldr r0, .L2835+8 mov r1, r5 mov r3, r2 bl rknand_print_hex mov r0, #0 - b .L2749 -.L2750: - ldr r2, [r9, #1704] + b .L2823 +.L2824: + ldr r2, [r9, #1708] uxth r3, r7 add r7, r7, #1 cmp r3, r2 - bcs .L2752 - ldr r1, [ip, #1684] + bcs .L2826 + ldr r1, [ip, #1688] mov r0, r3, lsr #5 and r4, r3, #31 ldr r2, [r1, r0, asl #2] orr r4, r2, lr, asl r4 str r4, [r1, r0, asl #2] - b .L2750 -.L2748: + b .L2824 +.L2822: sub r6, r6, #1 uxth r6, r6 - b .L2747 -.L2760: + b .L2821 +.L2834: mvn r0, #0 -.L2749: +.L2823: add sp, sp, #40 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2762: +.L2836: .align 2 -.L2761: +.L2835: .word .LANCHOR0 .word .LANCHOR2 - .word .LC136 + .word .LC139 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData .align 2 @@ -16660,36 +16994,36 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2774 + ldr r3, .L2848 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 - ldr r3, [r3, #1204] - ldr r6, .L2774+4 + ldr r3, [r3, #44] + ldr r6, .L2848+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] - ldr r0, [r6, #1712] + ldr r0, [r6, #1716] smulbb r4, r4, r3 uxth r4, r4 add r2, r4, #7 mov r2, r2, asr #3 bl FlashReadFacBbtData cmn r0, #1 - bne .L2764 -.L2768: + bne .L2838 +.L2842: mov r3, #0 - b .L2765 -.L2764: + b .L2839 +.L2838: mov lr, r4, lsr #4 mov ip, #0 sub r4, r4, #1 mov r3, ip mov r7, #1 -.L2766: +.L2840: uxth r0, ip cmp r0, r4 - bge .L2765 - ldr r8, [r6, #1712] + bge .L2839 + ldr r8, [r6, #1716] mov r1, r0, lsr #5 and r2, r0, #31 add ip, ip, #1 @@ -16700,17 +17034,17 @@ FlashGetBadBlockList: strneh r0, [r5, r3] @ movhi uxthne r3, r2 cmp r3, lr - bcc .L2766 - b .L2768 -.L2765: + bcc .L2840 + b .L2842 +.L2839: mov r3, r3, asl #1 mvn r2, #0 mov r0, #0 strh r2, [r5, r3] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2775: +.L2849: .align 2 -.L2774: +.L2848: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -16725,50 +17059,50 @@ FtlMakeBbt: stmfd sp!, {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, .L2800 - ldr r5, [r4, #-3620] + ldr r4, .L2874 + ldr r5, [r4, #-3616] cmp r5, #0 - bne .L2777 + bne .L2851 bl FtlBbtMemInit - ldr r7, .L2800+4 + ldr r7, .L2874+4 bl FtlLoadFactoryBbt sub r9, r7, #18 sub r10, r7, #94 -.L2778: - ldr r3, .L2800+8 - ldr r6, .L2800+12 +.L2852: + ldr r3, .L2874+8 + ldr r6, .L2874+12 ldrh r3, [r3] cmp r5, r3 - bcs .L2797 + bcs .L2871 ldrh r3, [r9, #2]! movw r2, #65535 - ldr r0, [r4, #-528] - ldr fp, [r4, #-504] + ldr r0, [r4, #-524] + ldr fp, [r4, #-500] cmp r3, r2 - ldr r8, .L2800 - str r0, [r4, #1756] - str fp, [r4, #1760] - beq .L2779 + ldr r8, .L2874 + str r0, [r4, #1760] + str fp, [r4, #1764] + beq .L2853 ldrh ip, [r10] mov r1, #1 mov r2, r1 - ldr r0, .L2800+16 + ldr r0, .L2874+16 mla ip, ip, r5, r3 mov r3, ip, asl #10 str ip, [sp, #4] - str r3, [r8, #1752] + str r3, [r8, #1756] bl FlashReadPages ldrh r2, [r10] ldr r0, [r7] add r2, r2, #7 - ldr r1, [r8, #1756] + ldr r1, [r8, #1760] mov r2, r2, asr #3 bl ftl_memcpy ldr ip, [sp, #4] - b .L2780 -.L2779: + b .L2854 +.L2853: mov r1, r5 - sub r8, r8, #440 + sub r8, r8, #436 bl FlashGetBadBlockList ldr r0, [r8, #2196] ldr r1, [r7] @@ -16776,7 +17110,7 @@ FtlMakeBbt: ldrh r6, [r10] sub r6, r6, #1 uxth r6, r6 -.L2781: +.L2855: ldrh r0, [r10] smlabb r0, r0, r5, r6 uxth r0, r0 @@ -16784,14 +17118,14 @@ FtlMakeBbt: cmp r0, #1 subeq r6, r6, #1 uxtheq r6, r6 - beq .L2781 -.L2798: + beq .L2855 +.L2872: mov r1, #0 mov r2, #16 strh r6, [r9] @ movhi - ldr r0, [r4, #-504] + ldr r0, [r4, #-500] bl ftl_memset - ldr r3, .L2800+20 + ldr r3, .L2874+20 strh r3, [fp] @ movhi mov r3, #0 str r3, [fp, #4] @@ -16802,124 +17136,125 @@ FtlMakeBbt: ldrh r3, [r9] ldr r1, [r7] mov r2, r2, asl #2 - ldr r0, [r4, #1756] + ldr r0, [r4, #1760] mla ip, ip, r5, r3 mov r3, ip, asl #10 - str r3, [r4, #1752] + str r3, [r4, #1756] str ip, [sp, #4] bl ftl_memcpy mov r1, #1 - ldr r0, .L2800+16 + ldr r0, .L2874+16 mov r2, r1 bl FlashEraseBlocks mov r1, #1 mov r3, r1 - ldr r0, .L2800+16 + ldr r0, .L2874+16 mov r2, r1 bl FlashProgPages - ldr r3, [r4, #1748] + ldr r3, [r4, #1752] cmn r3, #1 ldr ip, [sp, #4] - bne .L2780 + bne .L2854 uxth r0, ip bl FtlBbmMapBadBlock - b .L2781 -.L2780: + b .L2855 +.L2854: uxth r0, ip add r5, r5, #1 bl FtlBbmMapBadBlock add r7, r7, #4 - b .L2778 -.L2797: - ldr r7, .L2800+24 + b .L2852 +.L2871: + ldr r7, .L2874+24 mov r5, #0 -.L2785: +.L2859: ldrh r3, [r7] uxth r0, r5 add r5, r5, #1 cmp r3, r0 - bls .L2799 + bls .L2873 bl FtlBbmMapBadBlock - b .L2785 -.L2799: - ldr r5, .L2800+28 + b .L2859 +.L2873: + ldr r7, .L2874+28 movw r9, #65535 - ldrh r7, [r5, #12] - mov r8, r5 - sub r7, r7, #1 - uxth r7, r7 -.L2787: - ldrh r3, [r5, #12] + ldrh r5, [r7, #12] + mov r8, r7 + sub r5, r5, #1 + uxth r5, r5 +.L2861: + ldrh r3, [r7, #12] sub r3, r3, #48 - cmp r7, r3 - ble .L2791 - mov r0, r7 + cmp r5, r3 + ble .L2865 + mov r0, r5 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2788 - mov r0, r7 + beq .L2862 + mov r0, r5 bl FlashTestBlk cmp r0, #0 - beq .L2789 - mov r0, r7 + beq .L2863 + mov r0, r5 bl FtlBbmMapBadBlock - b .L2788 -.L2789: + b .L2862 +.L2863: ldrh r3, [r8] cmp r3, r9 - streqh r7, [r8] @ movhi -.L2790: - ldrne r3, .L2800+28 - strneh r7, [r3, #4] @ movhi - bne .L2791 -.L2788: - sub r7, r7, #1 - uxth r7, r7 - b .L2787 -.L2791: - ldr r0, [r4, #-3616] - mov r7, #0 - ldrh r3, [r5] + streqh r5, [r8] @ movhi +.L2864: + ldrne r3, .L2874+28 + strneh r5, [r3, #4] @ movhi + bne .L2865 +.L2862: + sub r5, r5, #1 + uxth r5, r5 + b .L2861 +.L2865: + movw r5, #2452 + ldr r0, [r4, #-3612] + ldrh r3, [r6, r5] + mov r8, #0 + str r8, [r6, #2460] mov r2, #2 - str r7, [r6, #2456] mov r1, #1 - strh r7, [r5, #2] @ movhi + strh r8, [r7, #2] @ movhi mov r3, r3, asl #10 str r3, [r0, #4] - ldrh r3, [r5, #4] + ldrh r3, [r7, #4] mov r3, r3, asl #10 str r3, [r0, #40] bl FlashEraseBlocks - ldrh r0, [r5] + ldrh r0, [r6, r5] bl FtlBbmMapBadBlock - ldrh r0, [r5, #4] + ldrh r0, [r7, #4] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldr r3, [r6, #2456] - ldrh r2, [r5, #4] + ldr r3, [r6, #2460] + ldrh r2, [r7, #4] add r3, r3, #1 - str r3, [r6, #2456] - ldrh r3, [r5] - strh r7, [r5, #2] @ movhi - strh r2, [r5] @ movhi - strh r3, [r5, #4] @ movhi + str r3, [r6, #2460] + ldrh r3, [r6, r5] + strh r8, [r7, #2] @ movhi + strh r2, [r6, r5] @ movhi + strh r3, [r7, #4] @ movhi bl FtlBbmTblFlush -.L2777: +.L2851: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2801: +.L2875: .align 2 -.L2800: +.L2874: .word .LANCHOR2 - .word .LANCHOR0+2476 - .word .LANCHOR0+2338 + .word .LANCHOR0+2480 + .word .LANCHOR0+2342 .word .LANCHOR0 - .word .LANCHOR2+1748 + .word .LANCHOR2+1752 .word -3872 - .word .LANCHOR0+2398 - .word .LANCHOR0+2448 + .word .LANCHOR0+2402 + .word .LANCHOR0+2452 .fnend .size FtlMakeBbt, .-FtlMakeBbt .align 2 @@ -16932,41 +17267,41 @@ log2phys: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - movw r3, #2392 - ldr r7, .L2819 + movw r3, #2396 + ldr r7, .L2893 ldrh r10, [r7, r3] - ldr r3, [r7, #2444] + ldr r3, [r7, #2448] cmp r0, r3 - bcs .L2803 + bcs .L2877 add r10, r10, #7 - ldr fp, .L2819+4 + ldr fp, .L2893+4 mov r5, r0, lsr r10 - movw r3, #2422 + movw r3, #2426 str r2, [sp, #4] mov r9, r1 mov r6, r7 str r0, [sp] uxth r5, r5 ldrh r2, [r7, r3] - ldr r8, [fp, #-3384] + ldr r8, [fp, #-3380] mov r4, #0 mov r1, #12 - b .L2804 -.L2803: + b .L2878 +.L2877: cmp r2, #0 mvn r0, #0 streq r0, [r1] - b .L2805 -.L2809: + b .L2879 +.L2883: add r4, r4, #1 mla r0, r1, r4, r8 ldrh r0, [r0, #-12] cmp r0, r5 - beq .L2806 -.L2804: + beq .L2880 +.L2878: uxth r7, r4 cmp r7, r2 - bcc .L2809 + bcc .L2883 bl select_l2p_ram_region mov r4, #12 movw r3, #65535 @@ -16975,57 +17310,57 @@ log2phys: add r2, r8, r4 ldrh r1, [r8, r4] cmp r1, r3 - bne .L2818 -.L2810: - ldr r3, [fp, #-456] - ldr r8, .L2819+4 + bne .L2892 +.L2884: + ldr r3, [fp, #-452] + ldr r8, .L2893+4 ldr fp, [r3, r5, asl #2] cmp fp, #0 - bne .L2811 - ldr r3, [r8, #-3384] + bne .L2885 + ldr r3, [r8, #-3380] mov r1, #255 add r3, r3, r4 ldr r0, [r3, #8] - movw r3, #2394 + movw r3, #2398 ldrh r2, [r6, r3] bl ftl_memset - ldr r3, [r8, #-3384] + ldr r3, [r8, #-3380] strh r5, [r3, r4] @ movhi - ldr r3, [r8, #-3384] + ldr r3, [r8, #-3380] add r4, r3, r4 str fp, [r4, #4] -.L2806: +.L2880: ldr r2, [sp] mvn r3, #0 mov r6, #12 bic r10, r2, r3, asl r10 ldr r3, [sp, #4] - ldr r2, .L2819+4 + ldr r2, .L2893+4 cmp r3, #0 uxth r10, r10 - bne .L2807 - ldr r3, [r2, #-3384] + bne .L2881 + ldr r3, [r2, #-3380] mla r6, r6, r7, r3 ldr r3, [r6, #8] ldr r3, [r3, r10, asl #2] str r3, [r9] - b .L2808 -.L2807: + b .L2882 +.L2881: mul r6, r6, r7 - ldr r3, [r2, #-3384] + ldr r3, [r2, #-3380] ldr r1, [r9] add r3, r3, r6 ldr r3, [r3, #8] str r1, [r3, r10, asl #2] - ldr r3, [r2, #-3384] + ldr r3, [r2, #-3380] add r6, r3, r6 ldr r3, [r6, #4] orr r3, r3, #-2147483648 str r3, [r6, #4] sub r3, r2, #3376 - strh r5, [r3, #-4] @ movhi -.L2808: - ldr r2, [r2, #-3384] + strh r5, [r3] @ movhi +.L2882: + ldr r2, [r2, #-3380] mov r3, #12 mov r0, #0 mla r7, r3, r7, r2 @@ -17033,83 +17368,83 @@ log2phys: cmn r3, #1 addne r3, r3, #1 strne r3, [r7, #4] - b .L2805 -.L2818: + b .L2879 +.L2892: ldr r3, [r2, #4] cmp r3, #0 - bge .L2810 + bge .L2884 bl flush_l2p_region - b .L2810 -.L2811: - ldr r3, [r8, #-3384] + b .L2884 +.L2885: + ldr r3, [r8, #-3380] mov r1, #1 - ldr r0, .L2819+8 + ldr r0, .L2893+8 mov r2, r1 add r3, r3, r4 - str fp, [r8, #1752] + str fp, [r8, #1756] ldr r3, [r3, #8] - str r3, [r8, #1756] - ldr r3, [r8, #-504] str r3, [r8, #1760] + ldr r3, [r8, #-500] + str r3, [r8, #1764] bl FlashReadPages - ldr r3, [r8, #1760] + ldr r3, [r8, #1764] ldrh r3, [r3, #8] cmp r3, r5 - beq .L2812 + beq .L2886 mov r1, r5 mov r2, fp - ldr r0, .L2819+12 + ldr r0, .L2893+12 bl printk mov r2, #4 mov r3, r2 - ldr r0, .L2819+16 - ldr r1, [r8, #1760] + ldr r0, .L2893+16 + ldr r1, [r8, #1764] bl rknand_print_hex - movw r3, #2420 + movw r3, #2424 ldrh r3, [r6, r3] mov r2, #4 - ldr r0, .L2819+20 - ldr r1, [r8, #-456] + ldr r0, .L2893+20 + ldr r1, [r8, #-452] bl rknand_print_hex mov r3, #1 - str r3, [r8, #-3620] - b .L2813 -.L2812: - ldr r3, [r8, #1748] + str r3, [r8, #-3616] + b .L2887 +.L2886: + ldr r3, [r8, #1752] cmp r3, #256 - bne .L2813 + bne .L2887 mov r1, r5 mov r2, fp - ldr r0, .L2819+24 + ldr r0, .L2893+24 bl printk - ldr r3, [r8, #-3384] - sub r0, r8, #436 + ldr r3, [r8, #-3380] + sub r0, r8, #432 mov r1, r5 add r3, r3, r4 ldr r2, [r3, #8] bl FtlMapWritePage -.L2813: - ldr r3, .L2819+4 +.L2887: + ldr r3, .L2893+4 mov r1, #0 - ldr r3, [r3, #-3384] + ldr r3, [r3, #-3380] add r2, r3, r4 str r1, [r2, #4] strh r5, [r3, r4] @ movhi - b .L2806 -.L2805: + b .L2880 +.L2879: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2820: +.L2894: .align 2 -.L2819: +.L2893: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+1748 - .word .LC137 - .word .LC100 - .word .LC138 - .word .LC139 + .word .LANCHOR2+1752 + .word .LC140 + .word .LC101 + .word .LC141 + .word .LC142 .fnend .size log2phys, .-log2phys .align 2 @@ -17123,37 +17458,37 @@ FtlWriteDumpData: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r4, .L2841 - ldr r3, [r4, #-3620] + ldr r4, .L2915 + ldr r3, [r4, #-3616] cmp r3, #0 - bne .L2821 - ldr r3, .L2841+4 + bne .L2895 + ldr r3, .L2915+4 ldrh r2, [r3, #4] cmp r2, #0 - beq .L2823 - ldrb r3, [r4, #-3520] @ zero_extendqisi2 + beq .L2897 + ldrb r3, [r4, #-3516] @ zero_extendqisi2 cmp r3, #0 - bne .L2823 - ldr r8, .L2841+8 - ldrb r1, [r4, #-3521] @ zero_extendqisi2 - add r3, r8, #2384 - ldrh r3, [r3] + bne .L2897 + ldr r8, .L2915+8 + movw r3, #2388 + ldrb r1, [r4, #-3517] @ zero_extendqisi2 + ldrh r3, [r8, r3] mul r3, r3, r1 cmp r2, r3 - beq .L2823 - ldrb r9, [r4, #-3518] @ zero_extendqisi2 - movw r3, #2316 - ldr r6, [r8, #2444] + beq .L2897 + ldrb r9, [r4, #-3514] @ zero_extendqisi2 + add r3, r8, #2320 + ldr r6, [r8, #2448] cmp r9, #0 - ldrh r7, [r8, r3] - bne .L2821 + ldrh r7, [r3] + bne .L2895 sub r6, r6, #1 mov r1, sp mov r2, r9 mov r0, r6 bl log2phys - ldr r5, [r4, #-504] - ldr r0, [r4, #-528] + ldr r5, [r4, #-500] + ldr r0, [r4, #-524] ldr r3, [sp] str r6, [sp, #20] cmn r3, #1 @@ -17161,40 +17496,40 @@ FtlWriteDumpData: str r3, [sp, #8] str r5, [sp, #16] str r9, [r5, #4] - beq .L2825 + beq .L2899 mov r1, #1 mov r2, r9 add r0, sp, #4 bl FlashReadPages - b .L2826 -.L2825: - movw r3, #2394 + b .L2900 +.L2899: + movw r3, #2398 mov r1, #255 ldrh r2, [r8, r3] bl ftl_memset -.L2826: - ldr fp, .L2841+4 +.L2900: + ldr fp, .L2915+4 mov r7, r7, asl #2 - ldr r3, .L2841+12 + ldr r3, .L2915+12 mov r8, #0 - ldr r9, .L2841 + ldr r9, .L2915 mov r10, fp strh r3, [r5] @ movhi -.L2827: +.L2901: cmp r8, r7 - beq .L2828 + beq .L2902 ldrh r3, [fp, #4] cmp r3, #0 - beq .L2828 + beq .L2902 ldr r3, [sp, #8] add r8, r8, #1 str r6, [r5, #8] - ldr r0, .L2841+4 + ldr r0, .L2915+4 str r3, [r5, #12] ldrh r3, [fp] strh r3, [r5, #2] @ movhi bl get_new_active_ppa - ldr r3, [r9, #-3332] + ldr r3, [r9, #-3328] mov r2, #0 mov r1, #1 str r0, [sp, #8] @@ -17203,28 +17538,28 @@ FtlWriteDumpData: add r3, r3, #1 cmn r3, #1 moveq r3, #0 - str r3, [r9, #-3332] + str r3, [r9, #-3328] mov r3, r2 bl FlashProgPages ldrh r0, [r10] bl decrement_vpc_count - b .L2827 -.L2828: + b .L2901 +.L2902: mov r3, #1 - b .L2840 -.L2823: + b .L2914 +.L2897: mov r3, #0 -.L2840: - strb r3, [r4, #-3518] -.L2821: +.L2914: + strb r3, [r4, #-3514] +.L2895: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2842: +.L2916: .align 2 -.L2841: +.L2915: .word .LANCHOR2 - .word .LANCHOR2-3528 + .word .LANCHOR2-3524 .word .LANCHOR0 .word -3947 .fnend @@ -17240,30 +17575,30 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData mov r4, #0 - ldr r5, .L2849 + ldr r5, .L2923 mov r7, #12 - ldr r6, .L2849+4 -.L2844: + ldr r6, .L2923+4 +.L2918: ldrh r3, [r5] uxth r0, r4 cmp r3, r0 - bls .L2848 - ldr r3, [r6, #-3384] + bls .L2922 + ldr r3, [r6, #-3380] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L2845 + bge .L2919 bl flush_l2p_region -.L2845: +.L2919: add r4, r4, #1 - b .L2844 -.L2848: + b .L2918 +.L2922: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2850: +.L2924: .align 2 -.L2849: - .word .LANCHOR0+2422 +.L2923: + .word .LANCHOR0+2426 .word .LANCHOR2 .fnend .size l2p_flush, .-l2p_flush @@ -17276,102 +17611,102 @@ allocate_new_data_superblock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r5, .L2878 + ldr r5, .L2952 ldrh r6, [r0] - ldr r3, [r5, #-3620] + ldr r3, [r5, #-3616] cmp r3, #0 - bne .L2852 + bne .L2926 movw r3, #65535 cmp r6, r3 mov r4, r0 - beq .L2853 - ldr r2, [r5, #-3548] + beq .L2927 + ldr r2, [r5, #-3544] mov r3, r6, asl #1 mov r0, r6 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2854 + beq .L2928 bl INSERT_DATA_LIST - b .L2853 -.L2854: + b .L2927 +.L2928: bl INSERT_FREE_LIST -.L2853: +.L2927: mov r3, #0 strb r3, [r4, #8] - ldr r3, .L2878+4 + ldr r3, .L2952+4 cmp r4, r3 - beq .L2855 - ldr r3, .L2878+8 - add r2, r3, #2336 - ldrh r2, [r2] + beq .L2929 + ldr r3, .L2952+8 + movw r2, #2340 + ldrh r2, [r3, r2] cmp r2, #1 - beq .L2855 - ldrb r1, [r3, #140] @ zero_extendqisi2 + beq .L2929 + ldrb r1, [r3, #144] @ zero_extendqisi2 cmp r1, #0 - beq .L2856 -.L2855: + beq .L2930 +.L2929: mov r3, #1 strb r3, [r4, #8] - b .L2857 -.L2856: - ldr r1, .L2878+12 + b .L2931 +.L2930: + ldr r1, .L2952+12 cmp r4, r1 - bne .L2857 + bne .L2931 cmp r2, #3 - beq .L2859 - ldr r2, .L2878 - ldr r2, [r2, #-3240] + beq .L2933 + ldr r2, .L2952 + ldr r2, [r2, #-3236] cmp r2, #1 - bne .L2860 -.L2859: + bne .L2934 +.L2933: mov r2, #1 - strb r2, [r5, #-3520] -.L2860: - ldr r3, [r3, #2308] + strb r2, [r5, #-3516] +.L2934: + ldr r3, [r3, #2244] cmp r3, #0 - beq .L2857 - ldr r3, [r5, #-3312] + beq .L2931 + ldr r3, [r5, #-3308] cmp r3, #39 - ldrls r3, .L2878 + ldrls r3, .L2952 movls r2, #1 - strlsb r2, [r3, #-3520] -.L2857: - ldr r2, .L2878 + strlsb r2, [r3, #-3516] +.L2931: + ldr r2, .L2952 movw r1, #65535 - sub r3, r2, #384 + sub r3, r2, #380 ldrh r0, [r3] mov r5, r3 cmp r0, r1 - beq .L2862 + beq .L2936 cmp r6, r0 - bne .L2863 - ldr r2, [r2, #-3548] + bne .L2937 + ldr r2, [r2, #-3544] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2864 -.L2863: + beq .L2938 +.L2937: bl update_vpc_list -.L2864: +.L2938: mvn r3, #0 strh r3, [r5] @ movhi -.L2862: +.L2936: mov r0, r4 bl allocate_data_superblock bl l2p_flush mov r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2852: +.L2926: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2879: +.L2953: .align 2 -.L2878: +.L2952: .word .LANCHOR2 - .word .LANCHOR2-3480 + .word .LANCHOR2-3476 .word .LANCHOR0 - .word .LANCHOR2-3528 + .word .LANCHOR2-3524 .fnend .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 2 @@ -17385,109 +17720,123 @@ FtlCheckVpc: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r4, #0 - ldr r1, .L2901 - ldr r0, .L2901+4 + ldr r1, .L2977 + ldr r0, .L2977+4 bl printk - ldr r0, .L2901+8 + ldr r0, .L2977+8 mov r1, #0 mov r2, #8192 bl memset - ldr r6, .L2901+12 - ldr r5, .L2901+8 -.L2881: - ldr r3, [r6, #2444] + ldr r6, .L2977+12 + ldr r5, .L2977+8 +.L2955: + ldr r3, [r6, #2448] cmp r4, r3 - bcs .L2899 + bcs .L2975 mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L2882 + beq .L2956 ubfx r0, r0, #10, #16 bl P2V_block_in_plane mov r0, r0, asl #1 ldrh r3, [r5, r0] add r3, r3, #1 strh r3, [r5, r0] @ movhi -.L2882: +.L2956: add r4, r4, #1 - b .L2881 -.L2899: - ldr r5, .L2901+16 + b .L2955 +.L2975: + ldr r7, .L2977+16 mov r4, #0 - ldr r7, .L2901+20 - ldr r8, .L2901+8 -.L2884: - ldrh r3, [r5] + ldr r9, .L2977+20 + mov r6, r4 + add r8, r7, #1840 +.L2958: + ldrh r3, [r9] uxth r1, r4 - ldr r6, .L2901+20 + ldr r5, .L2977+16 cmp r3, r1 - bls .L2900 - ldr r2, [r7, #-3548] - mov r3, r1, asl #1 - ldrh r2, [r2, r3] - ldrh r3, [r8, r3] + bls .L2976 + ldr r3, [r7, #-3544] + mov r5, r1, asl #1 + ldrh r2, [r3, r5] + ldrh r3, [r8, r5] cmp r2, r3 - beq .L2885 - ldr r0, .L2901+24 + beq .L2959 + ldr r0, .L2977+24 bl printk -.L2885: + ldr r3, [r7, #-3544] + movw r2, #65535 + ldrh r3, [r3, r5] + cmp r3, r2 + beq .L2959 + ldrh r2, [r8, r5] + cmp r2, r3 + movhi r6, #1 +.L2959: add r4, r4, #1 - b .L2884 -.L2900: - ldr r3, [r6, #-3536] + b .L2958 +.L2976: + ldr r3, [r5, #-3532] cmp r3, #0 - beq .L2880 - sub r2, r6, #3520 - ldr r8, .L2901+8 - mov r5, #0 - mov r9, #6 - ldrh r7, [r2, #-12] - ldr r2, [r6, #-3556] + beq .L2961 + sub r2, r5, #3520 + add r9, r5, #1840 + mov r8, #0 + ldrh r7, [r2, #-8] + ldr r2, [r5, #-3552] rsb r3, r2, r3 - ldr r2, .L2901+28 + ldr r2, .L2977+28 mov r3, r3, asr #1 mul r3, r2, r3 uxth r4, r3 -.L2888: - uxth r3, r5 +.L2962: + uxth r3, r8 cmp r3, r7 - bcs .L2880 - ldr r2, [r6, #-3548] + bcs .L2961 + ldr r2, [r5, #-3544] mov r3, r4, asl #1 ldrh r2, [r2, r3] cmp r2, #0 - beq .L2889 - ldr r0, .L2901+32 + beq .L2963 + ldr r0, .L2977+32 mov r1, r4 - ldrh r3, [r8, r3] + ldrh r3, [r9, r3] + mov r6, #1 bl printk -.L2889: - mul r4, r9, r4 - ldr r3, [r6, #-3556] - add r5, r5, #1 - ldrh r4, [r3, r4] +.L2963: + mov r3, #6 + ldr r2, [r5, #-3552] + mul r4, r3, r4 movw r3, #65535 + add r8, r8, #1 + ldrh r4, [r2, r4] cmp r4, r3 - bne .L2888 -.L2880: + bne .L2962 +.L2961: + mov r1, r6 + ldr r0, .L2977+36 + bl printk add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2902: +.L2978: .align 2 -.L2901: - .word .LANCHOR3+72 - .word .LC108 - .word .LANCHOR2+1836 +.L2977: + .word .LANCHOR3+204 + .word .LC110 + .word .LANCHOR2+1840 .word .LANCHOR0 - .word .LANCHOR0+2324 .word .LANCHOR2 - .word .LC140 + .word .LANCHOR0+2328 + .word .LC143 .word -1431655765 - .word .LC141 + .word .LC144 + .word .LC145 .fnend .size FtlCheckVpc, .-FtlCheckVpc .align 2 @@ -17502,53 +17851,53 @@ Ftlscanalldata: mov r1, #0 .pad #32 sub sp, sp, #32 - ldr r0, .L2913 + ldr r0, .L2989 bl printk - ldr r5, .L2913+4 - ldr r8, .L2913+8 + ldr r5, .L2989+4 + ldr r8, .L2989+8 mov r4, #0 mov r6, r5 -.L2904: - ldr r3, [r8, #2444] +.L2980: + ldr r3, [r8, #2448] cmp r4, r3 - bcs .L2912 + bcs .L2988 mov r0, r4 add r1, sp, #28 mov r2, #0 bl log2phys ubfx r3, r4, #0, #11 cmp r3, #0 - bne .L2905 - ldr r0, .L2913+12 + bne .L2981 + ldr r0, .L2989+12 mov r1, r4 ldr r2, [sp, #28] bl printk -.L2905: +.L2981: ldr r3, [sp, #28] cmn r3, #1 - beq .L2907 - str r3, [r5, #1752] - mov r2, #0 - ldr r3, [r5, #-528] - mov r1, #1 - ldr r7, [r5, #-504] - ldr r0, .L2913+16 + beq .L2983 str r3, [r5, #1756] - str r4, [r5, #1764] - str r7, [r5, #1760] - str r2, [r5, #1748] + mov r2, #0 + ldr r3, [r5, #-524] + mov r1, #1 + ldr r7, [r5, #-500] + ldr r0, .L2989+16 + str r3, [r5, #1760] + str r4, [r5, #1768] + str r7, [r5, #1764] + str r2, [r5, #1752] bl FlashReadPages - ldr r3, [r5, #1748] + ldr r3, [r5, #1752] cmn r3, #1 cmpne r3, #256 - beq .L2908 + beq .L2984 ldr r3, [r7, #8] cmp r3, r4 - beq .L2907 -.L2908: - ldr r3, [r6, #1760] - ldr r2, [r6, #1756] - ldr r0, .L2913+20 + beq .L2983 +.L2984: + ldr r3, [r6, #1764] + ldr r2, [r6, #1760] + ldr r0, .L2989+20 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -17560,25 +17909,25 @@ Ftlscanalldata: mov r1, r4 ldr r2, [r2, #4] str r2, [sp, #16] - ldr r2, [r6, #1752] + ldr r2, [r6, #1756] ldr r3, [r3] bl printk -.L2907: +.L2983: add r4, r4, #1 - b .L2904 -.L2912: + b .L2980 +.L2988: add sp, sp, #32 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2914: +.L2990: .align 2 -.L2913: - .word .LC142 +.L2989: + .word .LC146 .word .LANCHOR2 .word .LANCHOR0 - .word .LC143 - .word .LANCHOR2+1748 - .word .LC144 + .word .LC147 + .word .LANCHOR2+1752 + .word .LC148 .fnend .size Ftlscanalldata, .-Ftlscanalldata .align 2 @@ -17595,54 +17944,54 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r6, .L2925 - ldr r4, [r6, #-3548] + ldr r6, .L3001 + ldr r4, [r6, #-3544] mov r7, r0, asl #1 ldrh r3, [r4, r7] cmp r3, #0 addne r3, r3, #1 strneh r3, [r4, r7] @ movhi - bne .L2917 - ldr r4, [r6, #-3536] + bne .L2993 + ldr r4, [r6, #-3532] cmp r4, #0 - beq .L2917 - ldr r1, [r6, #-3556] + beq .L2993 + ldr r1, [r6, #-3552] sub r2, r6, #3520 - ldr lr, .L2925+4 + ldr lr, .L3001+4 movw r9, #65535 rsb r4, r1, r4 - ldrh ip, [r2, #-12] + ldrh ip, [r2, #-8] mov r8, r2 mov r4, r4, asr #1 mul r4, lr, r4 mov lr, #6 uxth r4, r4 -.L2918: +.L2994: uxth r2, r3 cmp r2, ip - bcs .L2917 + bcs .L2993 cmp r4, r0 - bne .L2919 + bne .L2995 mov r1, r4 - ldr r0, .L2925+8 + ldr r0, .L3001+8 bl List_remove_node - ldrh r3, [r8, #-12] + ldrh r3, [r8, #-8] mov r0, r4 sub r3, r3, #1 - strh r3, [r8, #-12] @ movhi + strh r3, [r8, #-8] @ movhi bl INSERT_DATA_LIST - ldr r2, [r6, #-3548] + ldr r2, [r6, #-3544] ldrh r3, [r2, r7] add r3, r3, #1 strh r3, [r2, r7] @ movhi - b .L2917 -.L2919: + b .L2993 +.L2995: mul r4, lr, r4 add r3, r3, #1 ldrh r4, [r1, r4] cmp r4, r9 - bne .L2918 -.L2917: + bne .L2994 +.L2993: mov r0, r5 add r1, sp, #4 mov r2, #1 @@ -17650,12 +17999,12 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2926: +.L3002: .align 2 -.L2925: +.L3001: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2-3536 + .word .LANCHOR2-3532 .fnend .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 @@ -17665,86 +18014,85 @@ FtlRecoverySuperblock: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldrh r3, [r0] - movw r2, #65535 - mov r1, r0 - cmp r3, r2 - beq .L3071 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + movw r2, #65535 + ldrh r3, [r0] .pad #68 sub sp, sp, #68 + mov r4, r0 + cmp r3, r2 + beq .L3144 ldrh r3, [r0, #2] + ldr r5, .L3161 str r3, [sp, #8] ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r0, [sp, #8] + ldr r1, [sp, #8] str r3, [sp, #16] - ldr r3, .L3086 - ldrh r3, [r3] - cmp r3, r0 + movw r3, #2388 + ldrh r3, [r5, r3] + cmp r3, r1 mov r3, #0 - streqh r3, [r1, #4] @ movhi - streqb r3, [r1, #6] - ldrneh r0, [r1, #16] - beq .L3068 -.L2931: + streqh r3, [r0, #4] @ movhi + streqb r3, [r0, #6] + ldrneh r0, [r0, #16] + beq .L3144 +.L3007: cmp r0, r2 add r3, r3, #1 - uxtheq r0, r3 - addeq r0, r1, r0, asl #1 - ldreqh r0, [r0, #16] - beq .L2931 -.L3081: - mov r9, r1 - ldrb r1, [r1, #8] @ zero_extendqisi2 + uxtheq r1, r3 + addeq r1, r4, r1, asl #1 + ldreqh r0, [r1, #16] + beq .L3007 +.L3156: + ldrb r1, [r4, #8] @ zero_extendqisi2 + mov r9, r4 cmp r1, #1 - bne .L2933 + bne .L3009 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L2934 - ldr r3, .L3086+4 - ldrb r2, [r3, #140] @ zero_extendqisi2 - cmp r2, #0 - addeq r3, r3, r0, asl #1 - ldreqh r6, [r3, #144] - beq .L3005 - b .L3072 -.L2933: + beq .L3010 + ldrb r3, [r5, #144] @ zero_extendqisi2 + cmp r3, #0 + bne .L3147 + ldr r3, .L3161 + add r3, r3, r0, asl #1 + ldrh r6, [r3, #148] + b .L3081 +.L3009: mov r1, #0 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L2934 -.L3072: + beq .L3010 +.L3147: mov r6, r4 -.L3005: - ldr r3, .L3086+4 - movw r2, #2316 +.L3081: + ldr r3, .L3161+4 movw r8, #65535 - ldrh r2, [r3, r2] + ldrh r2, [r3], #80 str r2, [sp, #4] - ldr r2, .L3086+8 - ldr ip, [r2, #-540] - ldr lr, [r2, #-2696] - movw r2, #2396 - ldrh r7, [r3, r2] + ldr r2, .L3161+8 + ldrh r7, [r3] add r3, r9, #14 - mov r2, #0 str r3, [sp, #20] + ldr ip, [r2, #-536] mov r0, r3 + ldr lr, [r2, #-2692] + mov r2, #0 mov r5, r2 mov r10, r2 - b .L2936 -.L2934: + b .L3012 +.L3010: mov r3, #0 strh r3, [r9, #2] @ movhi strb r3, [r9, #6] - b .L3068 -.L2938: + b .L3144 +.L3014: ldrh r3, [r0, #2]! cmp r3, r8 - beq .L2937 + beq .L3013 mov r1, #36 orr r3, r6, r3, asl #10 mla r1, r1, r5, ip @@ -17758,50 +18106,50 @@ FtlRecoverySuperblock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2937: +.L3013: add r2, r2, #1 -.L2936: +.L3012: ldr r1, [sp, #4] uxth r3, r2 cmp r3, r1 - bcc .L2938 + bcc .L3014 ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #1 movne r3, #0 - bne .L3073 - ldr r3, .L3086+4 - ldrb lr, [r3, #140] @ zero_extendqisi2 + bne .L3148 + ldr r3, .L3161 + ldrb lr, [r3, #144] @ zero_extendqisi2 adds r3, lr, #0 movne r3, #1 -.L3073: - ldr r7, .L3086+8 +.L3148: + ldr r7, .L3161+8 mov r1, r5 str r3, [sp, #24] mov fp, #0 ldr r2, [sp, #24] movw r10, #65535 - ldr r0, [r7, #-540] + ldr r0, [r7, #-536] bl FlashReadPages - ldr r3, [r7, #-3332] + ldr r3, [r7, #-3328] str r7, [sp, #12] str r3, [sp, #28] -.L2940: +.L3016: uxth r8, fp cmp r8, r5 - bcs .L2947 + bcs .L3023 mov r1, #36 - ldr r0, [r7, #-540] + ldr r0, [r7, #-536] mul r1, r1, fp add ip, r0, r1 ldr r1, [r0, r1] cmp r1, #0 - bne .L2941 + bne .L3017 ldr ip, [ip, #12] ldr r3, [ip, #4] cmn r3, #1 - beq .L2942 + beq .L3018 mov r0, r3 - ldr r1, [r7, #-3332] + ldr r1, [r7, #-3328] str ip, [sp, #32] str r3, [sp, #4] bl ftl_cmp_data_ver @@ -17809,93 +18157,93 @@ FtlRecoverySuperblock: cmp r0, #0 ldr ip, [sp, #32] addne r3, r3, #1 - strne r3, [r7, #-3332] -.L2942: + strne r3, [r7, #-3328] +.L3018: ldr r1, [ip] cmn r1, #1 - bne .L2943 -.L2947: + bne .L3019 +.L3023: cmp r8, r5 - ldr r5, .L3086+8 - bne .L3069 + ldr r5, .L3161+8 + bne .L3145 add fp, r4, #1 uxth r3, fp str r3, [sp, #4] - ldr r3, [r5, #-540] + ldr r3, [r5, #-536] ldr r0, [r3, #4] - b .L3074 -.L2941: + b .L3149 +.L3017: ldr r1, [ip, #4] uxth r10, r6 - ldr r0, .L3086+12 + ldr r0, .L3161+12 bl printk ldrh r1, [r9] - ldr r3, .L3086+16 + ldr r3, .L3161+16 strh r1, [r3] @ movhi -.L2943: +.L3019: add fp, fp, #1 - b .L2940 -.L3069: + b .L3016 +.L3145: uxth r3, r4 str r3, [sp, #4] ldr r3, [sp, #12] mov r2, #36 - ldr r3, [r3, #-540] + ldr r3, [r3, #-536] mla r8, r2, r8, r3 ldr r0, [r8, #4] -.L3074: +.L3149: ubfx r0, r0, #10, #16 bl P2V_plane - ldrb r3, [r9, #8] @ zero_extendqisi2 - cmp r3, #1 + ldr r2, .L3161 str r0, [sp, #12] - bne .L2949 - ldr r2, .L3086+4 - ldrb r1, [r2, #140] @ zero_extendqisi2 - cmp r1, #0 - ldreq r1, [sp, #4] - addeq r2, r2, r1, asl #1 - ldreqh r2, [r2, #144] - streq r2, [sp, #4] -.L2949: - ldr r2, .L3086 - ldr r1, [sp, #4] - ldr r0, [sp, #12] - ldrh r2, [r2] - cmp r2, r1 - ldr r1, [sp, #8] - ldreqh r2, [sp, #4] - streqh r2, [r9, #2] @ movhi - moveq r2, #0 - streqb r2, [r9, #6] - streqh r2, [r9, #4] @ movhi - ldrh r2, [sp, #16] - str r2, [sp, #32] - ldr ip, [sp, #32] + ldrb r0, [r9, #8] @ zero_extendqisi2 + cmp r0, #1 + bne .L3025 + ldrb r3, [r2, #144] @ zero_extendqisi2 + cmp r3, #0 + ldreq r3, [sp, #4] + addeq fp, r2, r3, asl #1 + ldreqh r3, [fp, #148] + streq r3, [sp, #4] +.L3025: + movw r3, #2388 + ldr r1, [sp, #12] + ldrh r3, [r2, r3] ldr r2, [sp, #4] - cmp r2, r1 - cmpeq r0, ip + cmp r3, r2 + ldr r2, [sp, #8] + ldreqh r3, [sp, #4] + streqh r3, [r9, #2] @ movhi + moveq r3, #0 + streqb r3, [r9, #6] + streqh r3, [r9, #4] @ movhi + ldrh r3, [sp, #16] + str r3, [sp, #32] + ldr ip, [sp, #32] + ldr r3, [sp, #4] + cmp r3, r2 + cmpeq r1, ip moveq r0, r9 - moveq r1, r2 - beq .L3079 - clz r3, r3 - ldr r2, [sp, #28] - mov r3, r3, lsr #5 - sub fp, r2, #1 + moveq r1, r3 + beq .L3154 + ldr r3, [sp, #28] movw r2, #65535 + sub fp, r3, #1 + clz r3, r0 + mov r3, r3, lsr #5 cmp r10, r2 orrne r3, r3, #1 cmp r3, #0 - beq .L2953 - ldr r3, [r5, #-372] + beq .L3029 + ldr r3, [r5, #-368] uxth r10, r6 - ldr r7, .L3086+8 + ldr r7, .L3161+8 mvn r8, #0 cmn r3, #1 mov r6, r8 - ldreq r3, .L3086+8 - streq fp, [r3, #-372] - ldr r3, [r5, #-372] + ldreq r3, .L3161+8 + streq fp, [r3, #-368] + ldr r3, [r5, #-368] str r3, [sp, #16] ldr r3, [sp, #8] add r3, r3, #7 @@ -17903,22 +18251,22 @@ FtlRecoverySuperblock: subgt r4, r10, #7 ldrle r4, [sp, #8] uxthgt r4, r4 -.L2956: +.L3032: cmp r4, r10 - bhi .L2969 - ldr r3, .L3086+20 + bhi .L3045 + ldr r3, .L3161+4 mov r0, #36 - ldr lr, [r7, #-540] + ldr lr, [r7, #-536] ldr r1, [sp, #20] ldrh r3, [r3] str r3, [sp, #28] mov r3, #0 mov r5, r3 -.L2970: +.L3046: ldr ip, [sp, #28] uxth r2, r3 cmp r2, ip - bcs .L3082 + bcs .L3157 ldrh r2, [r1, #2]! movw ip, #65535 add r3, r3, #1 @@ -17928,153 +18276,152 @@ FtlRecoverySuperblock: addne r5, r5, #1 uxthne r5, r5 strne r2, [ip, #4] - b .L2970 -.L3082: + b .L3046 +.L3157: mov r1, r5 ldr r2, [sp, #24] - ldr r0, [r7, #-540] + ldr r0, [r7, #-536] bl FlashReadPages - ldr r3, .L3086+4 + ldr r3, .L3161 mov r2, #36 movw r1, #65535 - ldrb ip, [r3, #140] @ zero_extendqisi2 - ldr r3, [r7, #-540] + ldrb ip, [r3, #144] @ zero_extendqisi2 + ldr r3, [r7, #-536] mla r5, r2, r5, r3 - ldr r2, .L3086+24 + ldr r2, .L3161+20 add r2, r2, r4, asl #1 -.L2959: +.L3035: cmp r3, r5 - beq .L3083 + beq .L3158 ldr r0, [r3] cmp r0, #0 - bne .L2960 + bne .L3036 ldr r0, [r3, #12] ldrh lr, [r0] cmp lr, r1 - beq .L2961 + beq .L3037 ldr r0, [r0, #4] cmn r0, #1 - beq .L2961 + beq .L3037 cmn r8, #1 - ldr r6, [r7, #-372] - str r0, [r7, #-372] - bne .L2961 + ldr r6, [r7, #-368] + str r0, [r7, #-368] + bne .L3037 ldrh r0, [r2] cmp r0, r1 - bne .L2962 + bne .L3038 cmp ip, #0 - beq .L2961 -.L2962: + beq .L3037 +.L3038: cmp r6, fp mvneq r8, #0 movne r8, r6 - b .L2961 -.L2960: + b .L3037 +.L3036: ldrh r1, [r9] - movw r3, #1844 - ldr r2, .L3086+28 + movw r3, #1848 + ldr r2, .L3161+24 strh r1, [r2, r3] @ movhi ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #0 - bne .L2953 - ldr r3, .L3086+8 + bne .L3029 + ldr r2, .L3161+20 mov r4, r4, asl #1 - sub r2, r3, #2624 + ldr r3, .L3161+8 ldrh r1, [r2, r4] movw r2, #65535 cmp r1, r2 - bne .L2964 + bne .L3040 cmn r8, #1 - strne r8, [r3, #-372] - bne .L2953 + strne r8, [r3, #-368] + bne .L3029 ldr r2, [sp, #16] cmp r2, fp - bne .L3075 - ldr r2, [r3, #-372] - b .L3080 -.L2964: + bne .L3150 + ldr r2, [r3, #-368] + b .L3155 +.L3040: cmp r6, fp - beq .L2967 + beq .L3043 cmn r6, #1 - strne r6, [r3, #-372] - b .L2953 -.L2967: - ldr r2, [r3, #-372] + strne r6, [r3, #-368] + b .L3029 +.L3043: + ldr r2, [r3, #-368] cmp r2, fp - beq .L2953 -.L3080: + beq .L3029 +.L3155: sub r2, r2, #1 - b .L3075 -.L2961: + b .L3150 +.L3037: add r3, r3, #36 - b .L2959 -.L3083: + b .L3035 +.L3158: add r4, r4, #1 uxth r4, r4 - b .L2956 -.L2969: - ldr r3, .L3086+8 + b .L3032 +.L3045: + ldr r3, .L3161+8 mvn r2, #0 -.L3075: - str r2, [r3, #-372] -.L2953: - ldr r2, .L3086+28 - movw r3, #1846 +.L3150: + str r2, [r3, #-368] +.L3029: + ldr r2, .L3161+24 + movw r3, #1850 ldr r10, [sp, #8] mov r1, #1 - ldr r4, .L3086+8 + ldr r4, .L3161+8 strh r1, [r2, r3] @ movhi -.L2971: - ldr r3, .L3086+20 +.L3047: + ldr r3, .L3161+4 movw r1, #65535 - ldr r8, [r4, #-540] + ldr r8, [r4, #-536] mov r0, #36 ldr r6, [sp, #20] mov r5, #0 ldrh r7, [r3] - ldr r3, .L3086+4 + ldrb lr, [r3, #-2176] @ zero_extendqisi2 str r5, [sp, #16] - ldrb lr, [r3, #140] @ zero_extendqisi2 -.L2972: +.L3048: uxth r3, r5 cmp r3, r7 - bcs .L3084 + bcs .L3159 ldrh r3, [r6, #2]! cmp r3, r1 - beq .L2973 + beq .L3049 ldr r2, [sp, #16] orr r3, r10, r3, asl #10 mla r2, r0, r2, r8 str r3, [r2, #4] ldrb ip, [r9, #8] @ zero_extendqisi2 cmp ip, #1 - bne .L2974 + bne .L3050 cmp lr, #0 orrne r3, r3, #-2147483648 strne r3, [r2, #4] -.L2974: +.L3050: ldr r3, [sp, #16] add r3, r3, #1 uxth r3, r3 str r3, [sp, #16] -.L2973: +.L3049: add r5, r5, #1 - b .L2972 -.L3084: - ldr r0, [r4, #-540] + b .L3048 +.L3159: + ldr r0, [r4, #-536] ldr r1, [sp, #16] ldr r2, [sp, #24] bl FlashReadPages mov r3, #0 -.L3078: +.L3153: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L3085 + bcs .L3160 ldr r3, [sp, #28] mov r5, #36 - ldr r8, [r4, #-540] + ldr r8, [r4, #-536] mul r5, r5, r3 add r7, r8, r5 ldr r6, [r7, #4] @@ -18083,7 +18430,7 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #8] cmp r10, r3 - bcc .L2977 + bcc .L3053 ldr r3, [sp, #32] ldr r2, [sp, #8] cmp r0, r3 @@ -18092,31 +18439,31 @@ FtlRecoverySuperblock: cmp r10, r2 movne r3, #0 cmp r3, #0 - bne .L2977 + bne .L3053 ldr r3, [sp, #12] ldr r2, [sp, #4] cmp r0, r3 cmpeq r10, r2 - beq .L2978 + beq .L3054 ldr r3, [r8, r5] cmn r3, #1 - beq .L2979 + beq .L3055 ldr r7, [r7, #12] movw r3, #61589 ldrh r2, [r7] cmp r2, r3 ldrneh r0, [r9] - bne .L3076 + bne .L3151 ldr fp, [r7, #4] cmn fp, #1 - beq .L2981 - ldr r1, [r4, #-3332] + beq .L3057 + ldr r1, [r4, #-3328] mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 addne r3, fp, #1 - strne r3, [r4, #-3332] -.L2981: + strne r3, [r4, #-3328] +.L3057: ldr r6, [r7, #8] add r1, sp, #56 ldr r3, [r7, #12] @@ -18124,46 +18471,46 @@ FtlRecoverySuperblock: mov r0, r6 str r3, [sp, #52] bl log2phys - ldr r1, [r4, #-372] + ldr r1, [r4, #-368] cmn r1, #1 - beq .L2982 + beq .L3058 mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 - beq .L2982 + beq .L3058 ldr r3, [sp, #52] cmn r3, #1 - beq .L2983 - ldr r0, [r4, #-540] + beq .L3059 + ldr r0, [r4, #-536] mov r2, #0 mov r1, #1 add r0, r0, r5 str r3, [r0, #4] ldr r8, [r0, #12] bl FlashReadPages - ldr r2, [r4, #-540] + ldr r2, [r4, #-536] ldr r3, [r8, #4] add ip, r2, r5 str r3, [sp, #36] ldr r3, [r2, r5] cmn r3, #1 - bne .L2984 - b .L2985 -.L2983: + bne .L3060 + b .L3061 +.L3059: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - bne .L2977 + bne .L3053 mov r0, r6 add r1, sp, #52 mov r2, #1 bl log2phys - b .L2977 -.L2984: + b .L3053 +.L3060: ldr r7, [r8, #8] cmp r7, r6 - bne .L2985 - ldr r0, [r4, #-372] + bne .L3061 + ldr r0, [r4, #-368] ldr r1, [sp, #36] str r2, [sp, #44] str ip, [sp, #40] @@ -18171,228 +18518,223 @@ FtlRecoverySuperblock: cmp r0, #0 ldr ip, [sp, #40] ldr r2, [sp, #44] - beq .L2985 + beq .L3061 ldr r3, [sp, #56] ldr r1, [sp, #60] cmp r3, r1 - beq .L2990 + beq .L3066 ldr r1, [sp, #52] cmp r3, r1 - beq .L2985 + beq .L3061 cmn r3, #1 streq r3, [r2, r5] - beq .L2989 + beq .L3065 str r3, [ip, #4] mov r0, ip mov r1, #1 mov r2, #0 ldr r8, [ip, #12] bl FlashReadPages -.L2989: - ldr r3, [r4, #-540] +.L3065: + ldr r3, [r4, #-536] ldr r3, [r3, r5] cmn r3, #1 - beq .L2990 + beq .L3066 ldr r5, [r8, #4] - ldr r0, [r4, #-372] + ldr r0, [r4, #-368] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L2990 + beq .L3066 ldr r0, [sp, #36] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L2985 -.L2990: + beq .L3061 +.L3066: mov r0, r7 ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L2985: +.L3061: mvn r3, #0 str r3, [sp, #52] - b .L2992 -.L2982: + b .L3068 +.L3058: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - beq .L2992 + beq .L3068 ldr r3, [sp, #52] cmn r3, #1 - beq .L2994 - ldr r2, .L3086+4 + beq .L3070 + ldr r2, .L3161 ubfx r3, r3, #10, #21 - ldr r2, [r2, #2332] + ldr r2, [r2, #2336] cmp r3, r2 - bcs .L2977 -.L2994: + bcs .L3053 +.L3070: mov r0, r6 add r1, sp, #60 mov r2, #1 bl log2phys ldr r5, [sp, #56] cmn r5, #1 - beq .L2992 + beq .L3068 ldr r3, [sp, #52] cmp r5, r3 - beq .L2992 + beq .L3068 ubfx r0, r5, #10, #16 bl P2V_block_in_plane - ldr r3, .L3086+32 + ldr r3, .L3161+28 ldrh r2, [r3] cmp r2, r0 - beq .L2996 + beq .L3072 ldrh r2, [r3, #48] cmp r2, r0 - beq .L2996 + beq .L3072 ldrh r3, [r3, #96] cmp r3, r0 - bne .L2992 -.L2996: - ldr r0, [r4, #-540] + bne .L3068 +.L3072: + ldr r0, [r4, #-536] mov r1, #1 mov r2, #0 str r5, [r0, #4] ldr r7, [r0, #12] bl FlashReadPages - ldr r3, [r4, #-540] + ldr r3, [r4, #-536] ldr r1, [r7, #4] ldr r3, [r3] cmn r3, #1 - beq .L2992 + beq .L3068 mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 - bne .L2992 + bne .L3068 mov r0, r6 add r1, sp, #56 mov r2, #1 bl log2phys -.L2992: +.L3068: ldr r0, [sp, #52] cmn r0, #1 - beq .L2977 + beq .L3053 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r4, #-3548] + ldr r2, [r4, #-3544] mov r3, r0, asl #1 mov r1, r0 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2997 -.L3076: + beq .L3073 +.L3151: bl decrement_vpc_count - b .L2977 -.L2997: - ldr r0, .L3086+36 + b .L3053 +.L3073: + ldr r0, .L3161+32 bl printk - b .L2977 -.L2979: + b .L3053 +.L3055: ldrh r3, [r9] mov r1, r6 - ldr r2, .L3086+16 - ldr r0, .L3086+40 + ldr r2, .L3161+16 + ldr r0, .L3161+36 strh r3, [r2] @ movhi mov r2, fp bl printk - ldr r3, .L3086+28 - ldr r3, [r3, #1848] + ldr r3, .L3161+24 + ldr r3, [r3, #1852] cmp r3, #31 - bhi .L2998 - ldr r2, .L3086+28 + bhi .L3074 + ldr r2, .L3161+24 ldr r1, [sp, #60] add r2, r2, r3, asl #2 add r3, r3, #1 - str r1, [r2, #1852] - ldr r2, .L3086+28 - str r3, [r2, #1848] -.L2998: + str r1, [r2, #1856] + ldr r2, .L3161+24 + str r3, [r2, #1852] +.L3074: ldrh r0, [r9] bl decrement_vpc_count - ldr r3, [r4, #-372] + ldr r3, [r4, #-368] cmn r3, #1 - beq .L3077 + beq .L3152 cmp r3, fp - bls .L2977 -.L3077: - str fp, [r4, #-372] -.L2977: + bls .L3053 +.L3152: + str fp, [r4, #-368] +.L3053: ldr r3, [sp, #28] add r3, r3, #1 - b .L3078 -.L3085: + b .L3153 +.L3160: ldrb r3, [r9, #8] @ zero_extendqisi2 add r10, r10, #1 cmp r3, #1 uxth r10, r10 - bne .L3001 - ldr r3, .L3086+4 - ldrb r3, [r3, #140] @ zero_extendqisi2 + bne .L3077 + ldr r3, .L3161 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L3001 - ldr r3, .L3086+44 + beq .L3077 + ldr r3, .L3161+40 ldr r2, [sp, #4] ldrh r3, [r3] cmp r2, r10 cmpeq r3, r10 - beq .L2978 -.L3001: - ldr r2, .L3086+4 - add r3, r2, #2384 - ldrh r3, [r3] + beq .L3054 +.L3077: + ldr r2, .L3161+44 + ldrh r3, [r2] cmp r10, r3 - bne .L2971 - movw r1, #2316 + bne .L3047 + ldrh r1, [r2, #-68] movw r0, #65535 - ldrh r1, [r2, r1] mov r3, #0 strh r10, [r9, #2] @ movhi strh r3, [r9, #4] @ movhi -.L3002: +.L3078: uxth r2, r3 cmp r2, r1 - bcs .L3068 + bcs .L3144 ldr lr, [sp, #20] add r3, r3, #1 ldrh ip, [lr, #2]! cmp ip, r0 str lr, [sp, #20] - beq .L3002 + beq .L3078 strb r2, [r9, #6] - b .L3068 -.L2978: + b .L3144 +.L3054: ldrb r3, [sp, #12] @ zero_extendqisi2 mov r0, r9 ldr r1, [sp, #4] strb r3, [r9, #6] ldrh r3, [sp, #4] strh r3, [r9, #2] @ movhi -.L3079: +.L3154: ldr r2, [sp, #12] bl ftl_sb_update_avl_pages -.L3068: +.L3144: mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3071: - mov r0, #0 - bx lr -.L3087: +.L3162: .align 2 -.L3086: - .word .LANCHOR0+2384 +.L3161: .word .LANCHOR0 + .word .LANCHOR0+2320 .word .LANCHOR2 - .word .LC145 - .word .LANCHOR4+1844 - .word .LANCHOR0+2316 - .word .LANCHOR2-2624 + .word .LC149 + .word .LANCHOR4+1848 + .word .LANCHOR2-2620 .word .LANCHOR4 - .word .LANCHOR2-3528 - .word .LC146 - .word .LC147 - .word .LANCHOR0+2386 + .word .LANCHOR2-3524 + .word .LC150 + .word .LC151 + .word .LANCHOR0+2390 + .word .LANCHOR0+2388 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 @@ -18406,99 +18748,99 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 mov r4, #0 - ldr r5, .L3105 - ldr r1, .L3105+4 - ldr r0, .L3105+8 + ldr r5, .L3180 + ldr r1, .L3180+4 + ldr r0, .L3180+8 bl printk - movw r3, #2326 + movw r3, #2330 ldrh r2, [r5, r3] mov r1, #0 - ldr r6, .L3105+12 + ldr r6, .L3180+12 mov r2, r2, asl #1 - ldr r0, [r6, #-480] + ldr r0, [r6, #-476] bl ftl_memset -.L3089: - ldr r3, [r5, #2444] +.L3164: + ldr r3, [r5, #2448] cmp r4, r3 - bcs .L3103 + bcs .L3178 mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L3090 + beq .L3165 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r6, #-480] + ldr r2, [r6, #-476] mov r0, r0, asl #1 ldrh r3, [r2, r0] add r3, r3, #1 strh r3, [r2, r0] @ movhi -.L3090: +.L3165: add r4, r4, #1 - b .L3089 -.L3103: - ldr r8, .L3105+16 + b .L3164 +.L3178: + ldr r8, .L3180+16 mov r7, #0 - ldr r10, .L3105+12 - ldr r9, .L3105+20 -.L3092: + ldr r10, .L3180+12 + ldr r9, .L3180+20 +.L3167: ldrh r3, [r8] uxth r4, r7 cmp r3, r4 - bls .L3104 - ldr r3, [r6, #-3548] + bls .L3179 + ldr r3, [r6, #-3544] mov r5, r4, asl #1 movw r1, #65535 ldrh r2, [r3, r5] - ldr r3, [r6, #-480] + ldr r3, [r6, #-476] ldrh r3, [r3, r5] cmp r2, r1 cmpne r2, r3 - beq .L3093 + beq .L3168 ldrh r1, [r9] cmp r1, r4 - beq .L3093 - ldr r1, .L3105+24 + beq .L3168 + ldr r1, .L3180+24 ldrh r0, [r1] cmp r0, r4 - beq .L3093 + beq .L3168 ldrh r1, [r1, #-48] cmp r1, r4 - beq .L3093 - ldr r0, .L3105+28 + beq .L3168 + ldr r0, .L3180+28 mov r1, r4 bl printk - ldr r3, [r10, #-3548] + ldr r3, [r10, #-3544] ldrh r2, [r3, r5] cmp r2, #0 - ldr r2, [r10, #-480] + ldr r2, [r10, #-476] ldrh r2, [r2, r5] strh r2, [r3, r5] @ movhi - beq .L3093 + beq .L3168 mov r0, r4 bl update_vpc_list -.L3093: +.L3168: add r7, r7, #1 - b .L3092 -.L3104: + b .L3167 +.L3179: bl l2p_flush bl FtlVpcTblFlush add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3106: +.L3181: .align 2 -.L3105: +.L3180: .word .LANCHOR0 - .word .LANCHOR3+84 - .word .LC108 + .word .LANCHOR3+216 + .word .LC110 .word .LANCHOR2 - .word .LANCHOR0+2324 - .word .LANCHOR2-3528 - .word .LANCHOR2-3432 - .word .LC148 + .word .LANCHOR0+2328 + .word .LANCHOR2-3524 + .word .LANCHOR2-3428 + .word .LC152 .fnend .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 @@ -18508,8 +18850,8 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L3160 - movw r3, #3352 + ldr r2, .L3235 + movw r3, #3448 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 @@ -18519,59 +18861,60 @@ FtlGcScanTempBlk: mov r4, r0 str r1, [sp, #12] cmp r5, r3 - beq .L3141 + beq .L3216 cmp r5, #0 - bne .L3108 - b .L3109 -.L3141: + bne .L3183 + b .L3184 +.L3216: mov r5, #0 -.L3108: - ldr r3, .L3160+4 +.L3183: + ldr r2, .L3235+4 + movw r3, #2388 + ldrh r3, [r2, r3] ldr r2, [sp, #12] - ldrh r3, [r3] cmp r2, r3 - bne .L3110 -.L3109: + bne .L3185 +.L3184: bl FtlGcPageVarInit -.L3110: - ldr r6, .L3160+8 +.L3185: + ldr r6, .L3235+8 mvn r3, #0 str r3, [sp, #8] mov r3, #0 str r3, [sp] -.L3111: +.L3186: ldrh r1, [r4] movw r3, #65535 mov r2, #0 strb r2, [r4, #8] cmp r1, r3 - beq .L3112 -.L3113: -.L3138: - ldr r3, .L3160+12 + beq .L3187 +.L3188: +.L3213: + ldr r3, .L3235+12 mov r7, #0 - ldr ip, [r6, #-2696] + ldr ip, [r6, #-2692] add r1, r4, #14 mov r8, r7 movw r9, #65535 ldrh r3, [r3] mov r10, #36 str r3, [sp, #4] - ldr r3, [r6, #-540] + ldr r3, [r6, #-536] str r3, [sp, #16] - ldr r3, [r6, #-2700] + ldr r3, [r6, #-2696] str r3, [sp, #20] - ldr r3, .L3160+16 + ldr r3, .L3235+16 ldrh r0, [r3] ldrh lr, [r3, #2] -.L3114: +.L3189: ldr r2, [sp, #4] uxth r3, r7 cmp r3, r2 - bcs .L3158 + bcs .L3233 ldrh r3, [r1, #2]! cmp r3, r9 - beq .L3115 + beq .L3190 ldr r2, [sp, #16] orr r3, r5, r3, asl #10 mla r2, r10, r8, r2 @@ -18593,23 +18936,23 @@ FtlGcScanTempBlk: bic r3, r3, #3 add r3, ip, r3 str r3, [r2, #12] -.L3115: +.L3190: add r7, r7, #1 - b .L3114 -.L3158: - ldr r0, [r6, #-540] + b .L3189 +.L3233: + ldr r0, [r6, #-536] mov r1, r8 mov r2, #0 mov fp, #0 bl FlashReadPages -.L3117: +.L3192: uxth r3, fp cmp r3, r8 - bcs .L3159 - ldr r3, .L3160+8 + bcs .L3234 + ldr r3, .L3235+8 mov r9, #36 mul r9, r9, fp - ldr r7, [r3, #-540] + ldr r7, [r3, #-536] add r10, r7, r9 ldr r3, [r10, #4] ubfx r0, r3, #10, #16 @@ -18618,39 +18961,39 @@ FtlGcScanTempBlk: ldr r7, [r7, r9] ldr r10, [r10, #12] cmp r7, #0 - ldr r3, .L3160+8 - ldr ip, .L3160+20 + ldr ip, .L3235+4 + ldr r3, .L3235+8 mov r2, r0 - bne .L3118 + bne .L3193 ldrh r0, [r10] movw r1, #65535 cmp r0, r1 - bne .L3119 -.L3122: - ldrb r1, [ip, #140] @ zero_extendqisi2 + bne .L3194 +.L3197: + ldrb r1, [ip, #144] @ zero_extendqisi2 cmp r1, #0 - beq .L3153 + beq .L3228 mov r1, #1 - str r1, [r3, #-376] - b .L3112 -.L3119: - ldr r1, .L3160+20 + str r1, [r3, #-372] + b .L3187 +.L3194: + ldr r1, .L3235+4 ldr r0, [r10, #8] - ldr r1, [r1, #2444] + ldr r1, [r1, #2448] cmp r0, r1 - bls .L3154 - b .L3122 -.L3153: + bls .L3229 + b .L3197 +.L3228: ldrh r3, [r4] - ldr r2, .L3160+8 + ldr r2, .L3235+8 mov r3, r3, asl #1 - ldr r2, [r2, #-3548] - b .L3157 -.L3154: - ldr r3, .L3160+20 + ldr r2, [r2, #-3544] + b .L3232 +.L3229: + ldr r3, .L3235+4 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L3126 + beq .L3201 add r1, sp, #24 mov r2, r7 bl log2phys @@ -18662,104 +19005,104 @@ FtlGcScanTempBlk: mov r1, r1, lsr #5 moveq r1, #0 cmp r1, #0 - beq .L3126 + beq .L3201 str r3, [sp, #32] mov r2, r7 - ldr r3, [r6, #-508] + ldr r3, [r6, #-504] add r0, sp, #28 mov r1, #1 str r3, [sp, #36] - ldr r3, [r6, #-500] + ldr r3, [r6, #-496] str r3, [sp, #40] bl FlashReadPages - ldr r3, .L3160+24 - ldr r2, [r6, #-540] + ldr r3, .L3235+20 + ldr r2, [r6, #-536] ldrh r3, [r3] add r9, r2, r9 mov r3, r3, asl #7 ldr r2, [sp, #36] - b .L3128 -.L3129: + b .L3203 +.L3204: add r7, r7, #1 -.L3128: +.L3203: cmp r7, r3 - beq .L3126 + beq .L3201 ldr r1, [r9, #8] ldr r0, [r1, r7, asl #2] ldr r1, [r2, r7, asl #2] cmp r0, r1 - beq .L3129 + beq .L3204 ldrh r1, [r4] ldr r2, [sp, #32] - ldr r0, .L3160+28 + ldr r0, .L3235+24 bl printk ldrh r3, [r4] - ldr r2, [r6, #-3548] + ldr r2, [r6, #-3544] mov r1, #0 mov r3, r3, asl #1 -.L3157: +.L3232: strh r1, [r2, r3] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST - ldr r2, .L3160+32 + ldr r2, .L3235+28 mvn r3, #0 strh r3, [r4] @ movhi strh r3, [r2] @ movhi - b .L3156 -.L3126: + b .L3231 +.L3201: ldr r0, [r10, #12] add fp, fp, #1 ldr r1, [sp, #4] ldr r2, [r10, #8] bl FtlGcUpdatePage - b .L3117 -.L3118: + b .L3192 +.L3193: ldr r2, [sp, #4] - ldr r0, .L3160+36 + ldr r0, .L3235+32 ldrh r1, [r4] - str ip, [sp, #20] - str r3, [sp, #16] + str r3, [sp, #20] + str ip, [sp, #16] bl printk ldrh r5, [r4] - ldr ip, [sp, #20] - ldr r3, [sp, #16] - ldr r2, [ip, #2308] + ldr ip, [sp, #16] + ldr r3, [sp, #20] + ldr r2, [ip, #2244] cmp r2, #0 - bne .L3132 - ldrb r2, [ip, #140] @ zero_extendqisi2 + bne .L3207 + ldrb r2, [ip, #144] @ zero_extendqisi2 cmp r2, #0 - beq .L3133 -.L3132: - ldr r1, [r3, #-3612] + beq .L3208 +.L3207: + ldr r1, [r3, #-3608] mov r2, r5, asl #1 ldrh r2, [r1, r2] cmp r2, #159 - bls .L3134 -.L3133: - ldr r2, [r3, #-540] + bls .L3209 +.L3208: + ldr r2, [r3, #-536] ldr r2, [r2, r9] cmn r2, #1 - bne .L3135 -.L3134: - ldr r3, [r3, #-540] + bne .L3210 +.L3209: + ldr r3, [r3, #-536] add r9, r3, r9 ldr r3, [r9, #4] str r3, [sp, #8] -.L3135: - ldr r3, .L3160+8 +.L3210: + ldr r3, .L3235+8 mov r5, r5, asl #1 mov r2, #0 - ldr r3, [r3, #-3548] + ldr r3, [r3, #-3544] strh r2, [r3, r5] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST mvn r3, #0 strh r3, [r4] @ movhi -.L3156: +.L3231: bl FtlGcPageVarInit mov r5, #0 - b .L3111 -.L3159: + b .L3186 +.L3234: ldr r3, [sp] add r5, r5, #1 ldr r2, [sp, #12] @@ -18767,30 +19110,30 @@ FtlGcScanTempBlk: uxth r5, r5 cmp r3, r2 str r3, [sp] - ldr r2, .L3160+4 - bcs .L3137 -.L3139: + ldr r2, .L3235+36 + bcs .L3212 +.L3214: ldrh r3, [r2] cmp r3, r5 - bhi .L3138 + bhi .L3213 mov r2, #0 - b .L3112 -.L3137: - ldr r1, .L3160+40 + b .L3187 +.L3212: + ldr r1, .L3235+40 movw r0, #65535 ldrh r3, [r1] cmp r3, r0 - beq .L3139 + beq .L3214 ldr r0, [sp] add r3, r3, r0 strh r3, [r1] @ movhi ldrh r3, [r2] cmp r3, r5 - bls .L3139 - b .L3140 -.L3112: - ldr r1, .L3160 - movw r3, #3352 + bls .L3214 + b .L3215 +.L3187: + ldr r1, .L3235 + movw r3, #3448 mvn r0, #0 strh r5, [r4, #2] @ movhi strb r2, [r4, #6] @@ -18798,25 +19141,25 @@ FtlGcScanTempBlk: mov r0, r4 mov r1, r5 bl ftl_sb_update_avl_pages -.L3140: +.L3215: ldr r0, [sp, #8] add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3161: +.L3236: .align 2 -.L3160: +.L3235: .word .LANCHOR1 - .word .LANCHOR0+2384 - .word .LANCHOR2 - .word .LANCHOR0+2316 - .word .LANCHOR0+2394 .word .LANCHOR0 - .word .LANCHOR0+2390 - .word .LC149 - .word .LANCHOR2-3288 - .word .LC150 - .word .LANCHOR1+3352 + .word .LANCHOR2 + .word .LANCHOR0+2320 + .word .LANCHOR0+2398 + .word .LANCHOR0+2394 + .word .LC153 + .word .LANCHOR2-3284 + .word .LC154 + .word .LANCHOR0+2388 + .word .LANCHOR1+3448 .fnend .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -18826,36 +19169,36 @@ FtlReadRefresh: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #44 - sub sp, sp, #44 - ldr r5, .L3179 - ldr r4, .L3179+4 - ldr r9, [r5, #-3156] + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + .pad #40 + sub sp, sp, #40 + ldr r5, .L3254 + ldr r4, .L3254+4 + ldr r9, [r5, #-3152] mov r6, r5 cmp r9, #0 - beq .L3163 - ldr r2, [r5, #-3152] - ldr r3, [r4, #2444] + beq .L3238 + ldr r2, [r5, #-3148] + ldr r3, [r4, #2448] cmp r2, r3 - bcs .L3164 + bcs .L3239 mov r5, #2048 mov r7, r6 -.L3169: - ldr r0, [r6, #-3152] - ldr r3, [r4, #2444] +.L3244: + ldr r0, [r6, #-3148] + ldr r3, [r4, #2448] cmp r0, r3 - bcs .L3168 + bcs .L3243 mov r2, #0 mov r1, sp bl log2phys - ldr r3, [r7, #-3152] + ldr r3, [r7, #-3148] add r3, r3, #1 - str r3, [r7, #-3152] + str r3, [r7, #-3148] ldr r2, [sp] cmn r2, #1 - beq .L3167 + beq .L3242 add r0, sp, #40 str r2, [sp, #8] mov r1, #1 @@ -18867,37 +19210,38 @@ FtlReadRefresh: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L3168 + bne .L3243 ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3168: +.L3243: mvn r0, #0 - b .L3171 -.L3167: + b .L3246 +.L3242: subs r5, r5, #1 - bne .L3169 - b .L3168 -.L3164: - ldr r3, [r5, #-3368] + bne .L3244 + b .L3243 +.L3239: + ldr r3, [r5, #-3364] mov r0, #0 - str r0, [r5, #-3156] str r0, [r5, #-3152] - str r3, [r5, #-3160] - b .L3171 -.L3163: - ldr r1, [r5, #-3316] - ldr r8, [r5, #-3368] - ldr r3, [r4, #2444] + str r0, [r5, #-3148] + str r3, [r5, #-3156] + b .L3246 +.L3238: + ldr r1, [r5, #-3312] + sub r10, r5, #3600 + ldr r8, [r5, #-3364] + ldr r3, [r4, #2448] movw r4, #10000 - ldr r7, [r5, #-3160] + ldr r7, [r5, #-3156] cmp r1, r4 add r2, r8, #1048576 movhi r4, #31 movls r4, #63 cmp r7, r2 - bhi .L3173 + bhi .L3248 mov r1, r1, lsr #10 mov r0, #1000 mul r0, r0, r3 @@ -18905,34 +19249,31 @@ FtlReadRefresh: bl __aeabi_uidiv add r0, r0, r7 cmp r0, r8 - bcc .L3173 - ldr r3, .L3179+8 - ldrh r3, [r3, #28] + bcc .L3248 + ldrh r3, [r10, #28] ands r0, r4, r3 movne r0, r9 - bne .L3171 - ldr r2, [r5, #-3136] + bne .L3246 + ldr r2, [r5, #-3132] cmp r2, r3 - beq .L3171 -.L3173: - ldr r3, .L3179+8 + beq .L3246 +.L3248: + ldrh r3, [r10, #28] mov r0, #0 - str r8, [r6, #-3160] - str r0, [r6, #-3152] - ldrh r3, [r3, #28] - str r3, [r6, #-3136] + str r8, [r6, #-3156] + str r0, [r6, #-3148] + str r3, [r6, #-3132] mov r3, #1 - str r3, [r6, #-3156] -.L3171: - add sp, sp, #44 + str r3, [r6, #-3152] +.L3246: + add sp, sp, #40 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3180: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L3255: .align 2 -.L3179: +.L3254: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-3604 .fnend .size FtlReadRefresh, .-FtlReadRefresh .align 2 @@ -18940,136 +19281,137 @@ FtlReadRefresh: .type FtlGcFreeTempBlock, %function FtlGcFreeTempBlock: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #20 - sub sp, sp, #20 - ldr r4, .L3220 - ldr r7, .L3220+4 - ldr ip, [r4, #-3620] - ldrh r1, [r7] + movw r3, #2388 + ldr r4, .L3295 + .pad #28 + sub sp, sp, #28 + ldr r6, .L3295+4 + ldr ip, [r4, #-3616] + ldrh r1, [r6, r3] cmp ip, #0 - bne .L3218 - sub r6, r4, #3424 + bne .L3293 + sub r7, r4, #3424 movw lr, #65535 - ldrh r5, [r6, #-8] + ldrh r5, [r7, #-4] cmp r5, lr - bne .L3184 -.L3193: - ldrh r2, [r6, #-8] + bne .L3259 +.L3268: + ldrh r2, [r7, #-4] movw r3, #65535 - ldr r5, .L3220 + ldr r5, .L3295 mov r8, #0 cmp r2, r3 - str r8, [r4, #-376] + str r8, [r4, #-372] sub r9, r5, #3424 - beq .L3218 + beq .L3293 bl FtlCacheWriteBack - ldrh r2, [r7] - ldrb r0, [r5, #-3425] @ zero_extendqisi2 - sub r7, r5, #2672 - ldrh r3, [r9, #-8] - sub r10, r7, #760 - ldr r1, [r5, #-3548] + movw r2, #2388 + ldrb r0, [r5, #-3421] @ zero_extendqisi2 + ldrh r2, [r6, r2] + ldrh r3, [r9, #-4] + ldr r1, [r5, #-3544] smulbb r2, r0, r2 mov r3, r3, asl #1 - ldr fp, .L3220+8 strh r2, [r1, r3] @ movhi - ldr r2, [r5, #-3348] - ldrh r3, [r7] - add r3, r3, r2 - str r3, [r5, #-3348] - str r5, [sp] - b .L3194 -.L3184: + sub r2, r5, #2656 + ldr r3, [r5, #-3344] + sub fp, r2, #12 + ldrh ip, [r2, #-12] + sub r10, r2, #772 + add r3, ip, r3 + str r3, [r5, #-3344] + stmib sp, {r2, r5} + b .L3269 +.L3259: cmp r0, #0 - beq .L3187 - ldr r2, .L3220+12 - movw r3, #3352 + beq .L3262 + ldr r2, .L3295+8 + movw r3, #3448 ldrh r0, [r2, r3] cmp r0, lr - beq .L3188 -.L3189: + beq .L3263 +.L3264: mov r1, #2 - b .L3187 -.L3188: + b .L3262 +.L3263: strh ip, [r2, r3] @ movhi sub r3, r4, #3520 - ldrh r3, [r3, #-12] + ldrh r3, [r3, #-8] cmp r3, #17 - bhi .L3189 -.L3187: - ldr r0, .L3220+16 + bhi .L3264 +.L3262: + ldr r0, .L3295+12 bl FtlGcScanTempBlk cmn r0, #1 - str r0, [sp, #12] - beq .L3190 - ldr r3, .L3220 + str r0, [sp, #20] + beq .L3265 + ldr r3, .L3295 mov r5, r5, asl #1 - ldr r2, [r3, #-3612] + ldr r2, [r3, #-3608] ldrh r3, [r2, r5] cmp r3, #4 - bls .L3191 + bls .L3266 sub r3, r3, #5 mov r0, #1 strh r3, [r2, r5] @ movhi bl FtlEctTblFlush -.L3191: - ldr r3, [r4, #-376] - ldr r2, .L3220 +.L3266: + ldr r3, [r4, #-372] + ldr r2, .L3295 cmp r3, #0 - bne .L3192 - ldr r0, [sp, #12] - ldr r3, [r2, #-3140] + bne .L3267 + ldr r0, [sp, #20] + ldr r3, [r2, #-3136] ubfx r0, r0, #10, #16 add r3, r3, #1 - str r3, [r2, #-3140] + str r3, [r2, #-3136] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3192: +.L3267: mov r3, #0 - str r3, [r4, #-376] - b .L3204 -.L3190: - ldr r2, .L3220+12 - movw r3, #3352 + str r3, [r4, #-372] + b .L3279 +.L3265: + ldr r2, .L3295+8 + movw r3, #3448 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L3204 - b .L3193 -.L3197: + bne .L3279 + b .L3268 +.L3272: ldr r3, [r5, #4] cmp r0, r3 - bne .L3216 -.L3196: + bne .L3291 +.L3271: add r8, r8, #1 -.L3194: - ldrh r2, [r7] +.L3269: + ldrh r2, [fp] uxth r3, r8 - ldr r9, .L3220+8 cmp r2, r3 - bls .L3219 + bls .L3294 mov r9, #12 - ldr r2, [fp, #2444] + ldr r2, [r6, #2448] mul r9, r9, r3 - ldr r3, [sp] - ldr ip, [r3, #-2676] + ldr r3, [sp, #8] + ldr ip, [r3, #-2672] add r5, ip, r9 ldr r0, [r5, #8] cmp r0, r2 - bcs .L3216 + bcs .L3291 mov r2, #0 - add r1, sp, #12 - str ip, [sp, #4] + add r1, sp, #20 + str ip, [sp, #12] bl log2phys - ldr ip, [sp, #4] - ldr r0, [sp, #12] + ldr ip, [sp, #12] + ldr r0, [sp, #20] ldr r2, [ip, r9] cmp r0, r2 - bne .L3197 + bne .L3272 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, r5, #4 @@ -19078,88 +19420,89 @@ FtlGcFreeTempBlock: ldr r0, [r5, #8] bl log2phys mov r0, r9 - b .L3217 -.L3216: + b .L3292 +.L3291: ldrh r0, [r10] -.L3217: +.L3292: bl decrement_vpc_count - b .L3196 -.L3219: + b .L3271 +.L3294: movw r0, #65535 bl decrement_vpc_count - ldrb r3, [r9, #140] @ zero_extendqisi2 + ldrb r3, [r6, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L3199 - ldr r0, .L3220+20 - ldrh r1, [r6, #-8] + beq .L3274 + ldr r0, .L3295+16 + ldrh r1, [r7, #-4] bl printk -.L3199: - ldrh r0, [r6, #-8] - ldr r2, [r4, #-3548] +.L3274: + ldrh r0, [r7, #-4] + ldr r2, [r4, #-3544] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3200 + beq .L3275 bl INSERT_DATA_LIST - b .L3201 -.L3200: + b .L3276 +.L3275: bl INSERT_FREE_LIST -.L3201: - ldr r5, .L3220 - mov r4, #0 - mvn r8, #0 - strh r4, [r7] @ movhi - strh r8, [r6, #-8] @ movhi - strh r4, [r7, #-8] @ movhi +.L3276: + ldr r3, [sp, #4] + mvn r5, #0 + ldr r4, .L3295 + strh r5, [r7, #-4] @ movhi + mov r7, #0 + strh r7, [r3, #-12] @ movhi + sub r3, r4, #2672 + strh r7, [r3, #-4] @ movhi bl l2p_flush bl FtlVpcTblFlush - sub r3, r5, #3280 - sub r2, r5, #3520 - strh r8, [r3, #-8] @ movhi - ldr r3, [r9, #2308] - ldrh r2, [r2, #-12] - cmp r3, r4 - sub r3, r5, #3296 - ldrh r3, [r3, #-12] - beq .L3202 - ldr r1, [r5, #-3312] + sub r3, r4, #3280 + sub r2, r4, #3520 + strh r5, [r3, #-4] @ movhi + ldr r3, [r6, #2244] + ldrh r2, [r2, #-8] + cmp r3, r7 + sub r3, r4, #3296 + ldrh r3, [r3, #-8] + beq .L3277 + ldr r1, [r4, #-3308] cmp r1, #39 - bhi .L3202 + bhi .L3277 cmp r2, r3 - subcc r5, r5, #2720 + subcc r4, r4, #2720 movcc r3, r3, asl #1 - strcch r3, [r5, #-4] @ movhi - b .L3218 -.L3202: + strcch r3, [r4] @ movhi + b .L3293 +.L3277: add r1, r3, r3, asl #1 cmp r2, r1, asr #2 - ble .L3218 - ldrb r0, [r9, #140] @ zero_extendqisi2 - ldr r2, .L3220+24 + ble .L3293 + ldrb r0, [r6, #144] @ zero_extendqisi2 + ldr r2, .L3295+20 cmp r0, #0 moveq r3, #20 - streqh r3, [r2, #-4] @ movhi - beq .L3183 + streqh r3, [r2] @ movhi + beq .L3258 sub r3, r3, #2 - strh r3, [r2, #-4] @ movhi -.L3218: + strh r3, [r2] @ movhi +.L3293: mov r0, #0 - b .L3183 -.L3204: + b .L3258 +.L3279: mov r0, #1 -.L3183: - add sp, sp, #20 +.L3258: + add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3221: +.L3296: .align 2 -.L3220: +.L3295: .word .LANCHOR2 - .word .LANCHOR0+2384 .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR2-3432 - .word .LC151 + .word .LANCHOR2-3428 + .word .LC155 .word .LANCHOR2-2720 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock @@ -19170,30 +19513,31 @@ FtlGcPageRecovery: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - ldr r6, .L3225 - ldr r5, .L3225+4 - ldr r4, .L3225+8 - mov r0, r6 - ldrh r1, [r5] + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + movw r5, #2388 + ldr r7, .L3300 + ldr r6, .L3300+4 + ldr r4, .L3300+8 + mov r0, r7 + ldrh r1, [r6, r5] bl FtlGcScanTempBlk - ldrh r2, [r6, #2] - ldrh r3, [r5] + ldrh r2, [r7, #2] + ldrh r3, [r6, r5] cmp r2, r3 - ldmccfd sp!, {r4, r5, r6, pc} - sub r0, r4, #436 + ldmccfd sp!, {r3, r4, r5, r6, r7, pc} + sub r0, r4, #432 bl FtlMapBlkWriteDumpData mov r0, #0 bl FtlGcFreeTempBlock mov r3, #0 - str r3, [r4, #-376] - ldmfd sp!, {r4, r5, r6, pc} -.L3226: + str r3, [r4, #-372] + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L3301: .align 2 -.L3225: - .word .LANCHOR2-3432 - .word .LANCHOR0+2384 +.L3300: + .word .LANCHOR2-3428 + .word .LANCHOR0 .word .LANCHOR2 .fnend .size FtlGcPageRecovery, .-FtlGcPageRecovery @@ -19207,13 +19551,13 @@ FtlPowerLostRecovery: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, #0 - ldr r4, .L3229 - ldr r3, .L3229+4 + ldr r4, .L3304 + ldr r3, .L3304+4 sub r5, r4, #3520 sub r4, r4, #3472 - sub r5, r5, #8 - sub r4, r4, #8 - str r6, [r3, #1848] + sub r5, r5, #4 + sub r4, r4, #4 + str r6, [r3, #1852] mov r0, r5 bl FtlRecoverySuperblock mov r0, r5 @@ -19227,9 +19571,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r6 ldmfd sp!, {r4, r5, r6, pc} -.L3230: +.L3305: .align 2 -.L3229: +.L3304: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -19243,31 +19587,31 @@ FtlSysBlkInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - movw r3, #1846 - ldr r4, .L3249 + movw r3, #1850 + ldr r4, .L3324 mov r2, #0 - ldr r6, .L3249+4 - ldr r5, .L3249+8 + ldr r6, .L3324+4 + ldr r5, .L3324+8 strh r2, [r4, r3] @ movhi - movw r3, #1844 + movw r3, #1848 mvn r2, #0 strh r2, [r4, r3] @ movhi - ldr r3, [r6, #2320] + ldr r3, [r6, #2324] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk sub r3, r5, #3296 - ldrh r2, [r3, #-8] + ldrh r2, [r3, #-4] movw r3, #65535 cmp r2, r3 - bne .L3232 -.L3234: + bne .L3307 +.L3309: mvn r8, #0 - b .L3233 -.L3232: + b .L3308 +.L3307: bl FtlLoadSysInfo subs r8, r0, #0 - bne .L3234 + bne .L3309 bl FtlLoadMapInfo mov r7, r4 bl FtlLoadVonderInfo @@ -19278,83 +19622,82 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov r0, #1 bl FtlUpdateVaildLpn - ldr r2, [r5, #-3384] - movw r3, #2422 + ldr r2, [r5, #-3380] + movw r3, #2426 mov r0, #12 ldrh r1, [r6, r3] mov r3, r8 -.L3235: +.L3310: cmp r3, r1 - bge .L3240 + bge .L3315 mla ip, r0, r3, r2 ldr ip, [ip, #4] cmp ip, #0 - bge .L3236 -.L3240: - ldr r4, .L3249+12 + bge .L3311 +.L3315: + ldr r4, .L3324+12 cmp r3, r1 - add r9, r4, #84 + add r9, r4, #80 ldrh r2, [r4, #28] add r2, r2, #1 strh r2, [r4, #28] @ movhi - add r2, r4, #76 - bge .L3247 - b .L3237 -.L3236: + bge .L3322 + b .L3312 +.L3311: add r3, r3, #1 - b .L3235 -.L3247: - movw r3, #1846 + b .L3310 +.L3322: + movw r3, #1850 ldrh r3, [r7, r3] cmp r3, #0 - beq .L3241 -.L3237: - ldrh r3, [r9, #-8] - ldr r0, [r5, #-3548] - ldrh ip, [r2, #4] - mov r3, r3, asl #1 - ldrh r1, [r0, r3] - rsb r1, ip, r1 - ldr ip, .L3249+16 - strh r1, [r0, r3] @ movhi - ldr lr, [r5, #-3548] - ldrh r3, [ip] - strh r3, [r2, #2] @ movhi - mov r3, #0 - strh r3, [r2, #4] @ movhi - ldr r2, .L3249+20 - strb r3, [r5, #-3522] - sub r1, r2, #8 - ldrh r2, [r2, #-8] - ldrh r7, [r1, #4] + beq .L3316 +.L3312: + ldrh r2, [r9, #-4] + ldr r3, .L3324+16 + ldr r0, [r5, #-3544] mov r2, r2, asl #1 - ldrh r0, [lr, r2] + ldrh ip, [r3, #4] + ldrh r1, [r0, r2] + rsb r1, ip, r1 + movw ip, #2388 + strh r1, [r0, r2] @ movhi + add r1, r3, #48 + ldrh r2, [r6, ip] + ldr lr, [r5, #-3544] + ldrh r7, [r1, #4] + strh r2, [r3, #2] @ movhi + mov r2, #0 + strh r2, [r3, #4] @ movhi + ldrh r3, [r3, #48] + strb r2, [r5, #-3518] + mov r3, r3, asl #1 + ldrh r0, [lr, r3] rsb r0, r7, r0 - strh r0, [lr, r2] @ movhi - ldrh r2, [ip] - strh r3, [r1, #4] @ movhi - strb r3, [r5, #-3474] + strh r0, [lr, r3] @ movhi + ldrh r3, [r6, ip] + strb r2, [r5, #-3470] + strh r2, [r1, #4] @ movhi + strh r3, [r1, #2] @ movhi ldrh r3, [r4, #30] - strh r2, [r1, #2] @ movhi add r3, r3, #1 strh r3, [r4, #30] @ movhi bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3241: - ldrh r0, [r9, #-8] +.L3316: + ldrh r0, [r9, #-4] movw r3, #65535 - ldr r5, .L3249+24 + ldr r5, .L3324+16 cmp r0, r3 - beq .L3242 + beq .L3317 ldrh r3, [r5, #4] cmp r3, #0 - bne .L3242 + bne .L3317 ldrh r3, [r5, #52] - add r9, r5, #56 + add r9, r5, #52 add r7, r5, #48 cmp r3, #0 - bne .L3242 + bne .L3317 bl FtlGcRefreshOpenBlock ldrh r0, [r5, #48] bl FtlGcRefreshOpenBlock @@ -19363,28 +19706,26 @@ FtlSysBlkInit: bl allocate_new_data_superblock mov r0, r7 bl allocate_new_data_superblock -.L3242: +.L3317: ldrb r3, [r6] @ zero_extendqisi2 cmp r3, #0 - bne .L3243 + bne .L3318 ldrh r3, [r4, #28] tst r3, #31 - bne .L3233 -.L3243: + bne .L3308 +.L3318: bl FtlVpcCheckAndModify -.L3233: +.L3308: mov r0, r8 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3250: +.L3325: .align 2 -.L3249: +.L3324: .word .LANCHOR4 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2-3604 - .word .LANCHOR0+2384 - .word .LANCHOR2-3472 - .word .LANCHOR2-3528 + .word .LANCHOR2-3600 + .word .LANCHOR2-3524 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 @@ -19397,326 +19738,345 @@ FtlLowFormat: stmfd sp!, {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, .L3286 - ldr r6, [r4, #-3620] + ldr r4, .L3361 + ldr r6, [r4, #-3616] cmp r6, #0 - bne .L3253 - ldr r5, .L3286+4 - movw r7, #2420 + bne .L3328 + ldr r5, .L3361+4 + movw r7, #2424 + mov r1, r6 + ldr r0, [r4, #-448] + ldrh r2, [r5, r7] + mov r2, r2, asl #2 + bl ftl_memset + ldrh r2, [r5, r7] mov r1, r6 ldr r0, [r4, #-452] - ldrh r2, [r5, r7] mov r2, r2, asl #2 bl ftl_memset - ldrh r2, [r5, r7] - mov r1, r6 - ldr r0, [r4, #-456] - mov r2, r2, asl #2 - bl ftl_memset - ldr r3, [r5, #2320] - str r6, [r4, #-3336] + ldr r3, [r5, #2324] str r6, [r4, #-3332] + str r6, [r4, #-3328] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L3254 + beq .L3329 bl FtlMakeBbt -.L3254: - ldr r0, .L3286+8 +.L3329: + ldr r0, .L3361+8 mov r2, #0 - ldr ip, .L3286+12 -.L3255: + ldr ip, .L3361+12 +.L3330: ldrh r1, [r0] uxth r3, r2 add r2, r2, #1 cmp r3, r1, asl #7 - bge .L3283 - ldr lr, [r4, #-512] + bge .L3358 + ldr lr, [r4, #-508] mvn r1, r3 orr r1, r3, r1, asl #16 str r1, [lr, r3, asl #2] - ldr r1, [r4, #-508] + ldr r1, [r4, #-504] str ip, [r1, r3, asl #2] - b .L3255 -.L3283: - ldr r2, .L3286+4 - movw r3, #2324 - ldr r10, .L3286+16 - mov r6, #0 - ldrh r7, [r2, r3] -.L3257: - ldrh r3, [r10] - ldr r8, .L3286+4 - cmp r3, r7 - ldr r9, .L3286+16 - bls .L3284 - mov r0, r7 + b .L3330 +.L3358: + ldr r2, .L3361+4 + movw r3, #2328 + ldr r7, .L3361+16 + mov r8, #0 + ldrh r6, [r2, r3] +.L3332: + ldrh r3, [r7] + ldr r10, .L3361+4 + cmp r3, r6 + ldr r9, .L3361+16 + bls .L3359 + mov r0, r6 mov r1, #1 bl FtlLowFormatEraseBlock - add r7, r7, #1 - uxth r7, r7 - add r0, r6, r0 - uxth r6, r0 - b .L3257 -.L3284: - movw r3, #2316 - ldrh r1, [r8, r3] - sub r3, r6, #3 + add r6, r6, #1 + uxth r6, r6 + add r0, r8, r0 + uxth r8, r0 + b .L3332 +.L3359: + add r7, r10, #2320 + sub r3, r8, #3 + ldrh r1, [r7] cmp r3, r1, asl #1 - bge .L3259 -.L3263: - mov r6, #0 - ldr r7, .L3286+20 - mov r8, r6 - b .L3260 -.L3259: - mov r0, r6 + blt .L3334 + mov r0, r8 + mov r8, #0 bl __aeabi_uidiv - ldr r3, [r8, #2416] + ldr r3, [r10, #2420] add r0, r0, r3 uxth r0, r0 bl FtlSysBlkNumInit - ldr r3, [r8, #2320] + ldr r3, [r10, #2324] uxth r0, r3 bl FtlFreeSysBlkQueueInit - movw r3, #2324 - ldrh r6, [r8, r3] -.L3261: + movw r3, #2328 + ldrh r6, [r10, r3] +.L3335: ldrh r3, [r9] cmp r3, r6 - bls .L3263 + bls .L3334 mov r0, r6 - add r6, r6, #1 mov r1, #1 bl FtlLowFormatEraseBlock - uxth r6, r6 - b .L3261 -.L3260: - ldrh r3, [r7] - uxth r0, r6 - ldr fp, .L3286+4 add r6, r6, #1 - cmp r3, r0 - bls .L3285 - mov r1, #0 - bl FtlLowFormatEraseBlock + uxth r6, r6 add r0, r8, r0 uxth r8, r0 - b .L3260 -.L3285: - movw r3, #2326 - ldr r2, [fp, #2328] - ldrh r3, [fp, r3] - ldr r6, .L3286+24 + b .L3335 +.L3334: + ldr r10, .L3361+20 + mov r9, #0 + mov r6, r9 +.L3337: + ldrh r2, [r10] + uxth r0, r9 + ldr r3, .L3361+4 + add r9, r9, #1 + cmp r2, r0 + bls .L3360 + mov r1, #0 + bl FtlLowFormatEraseBlock + add r0, r6, r0 + uxth r6, r0 + b .L3337 +.L3360: + movw r2, #2330 + ldrh r9, [r7] + ldrh r2, [r3, r2] + str r3, [sp, #4] + mov r1, r9 + ldr r7, .L3361+24 + str r2, [r4, #-548] + ldr r2, [r3, #2332] mov r0, r2 - str r2, [sp, #4] - str r3, [r4, #-552] - movw r3, #2316 - ldrh r7, [fp, r3] - mov r1, r7 + str r2, [sp] bl __aeabi_uidiv - ubfx r9, r0, #5, #16 - mov r10, r0 - add r3, r9, #36 - strh r3, [r6, #-12] @ movhi - mov r3, #24 - str r0, [fp, #2444] - mul r3, r3, r7 - ldr r2, [sp, #4] - cmp r8, r3 - ble .L3265 - rsb r0, r8, r2 - mov r1, r7 + ubfx r10, r0, #5, #16 + ldr r3, [sp, #4] + add r1, r10, #36 + strh r1, [r7, #-8] @ movhi + mov r1, #24 + mov fp, r0 + mul r1, r1, r9 + str r0, [r3, #2448] + ldr r2, [sp] + cmp r6, r1 + ble .L3339 + rsb r0, r6, r2 + mov r1, r9 + str r3, [sp] bl __aeabi_uidiv - str r0, [fp, #2444] + ldr r3, [sp] + str r0, [r3, #2448] mov r0, r0, lsr #5 add r0, r0, #24 - strh r0, [r6, #-12] @ movhi -.L3265: - ldr r3, [r5, #2308] + strh r0, [r7, #-8] @ movhi +.L3339: + ldr r3, [r5, #2244] cmp r3, #1 - bne .L3266 - mov r0, r8 - mov r1, r7 + bne .L3340 + ldrh r3, [r7, #-8] + mov r0, r6 + mov r1, r9 + str r3, [sp] bl __aeabi_uidiv - ldrh fp, [r6, #-12] - uxtah r0, fp, r0 - add fp, fp, r0, asr #2 - strh fp, [r6, #-12] @ movhi -.L3266: - ldrb r3, [r5, #140] @ zero_extendqisi2 + ldr r3, [sp] + uxtah r0, r3, r0 + add r3, r3, r0, asr #2 + strh r3, [r7, #-8] @ movhi +.L3340: + ldrb r3, [r5, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L3267 - mov r0, r8 - mov r1, r7 + beq .L3341 + ldrh r3, [r7, #-8] + mov r0, r6 + mov r1, r9 + str r3, [sp] bl __aeabi_uidiv - ldrh fp, [r6, #-12] - uxtah r0, fp, r0 - add fp, fp, r0, asr #2 - strh fp, [r6, #-12] @ movhi -.L3267: - movw r3, #2378 + ldr r3, [sp] + uxtah r0, r3, r0 + add r3, r3, r0, asr #2 + strh r3, [r7, #-8] @ movhi +.L3341: + movw r3, #2382 ldrh r3, [r5, r3] cmp r3, #0 - beq .L3269 - ldrh r2, [r6, #-12] + beq .L3343 + ldrh r2, [r7, #-8] add r2, r2, r3, lsr #1 - strh r2, [r6, #-12] @ movhi - mul r2, r7, r3 - cmp r2, r8 + strh r2, [r7, #-8] @ movhi + mul r2, r9, r3 + cmp r2, r6 addgt r3, r3, #32 - ldrgt r2, .L3286+4 - addgt r3, r9, r3 - strgt r10, [r2, #2444] - ldrgt r2, .L3286+24 - strgth r3, [r2, #-12] @ movhi -.L3269: - ldrh r2, [r6, #-12] - mvn r9, #0 - ldr r3, [r5, #2444] + ldrgt r2, .L3361+4 + addgt r3, r10, r3 + strgt fp, [r2, #2448] + ldrgt r2, .L3361+24 + strgth r3, [r2, #-8] @ movhi +.L3343: + ldrh r2, [r7, #-8] + ldr r3, [r5, #2448] rsb r3, r2, r3 - mul r7, r7, r3 - ldr r3, .L3286+28 - ldrh r3, [r3] - str r7, [r4, #1784] - mul r7, r3, r7 - movw r3, #2390 + mul r9, r9, r3 + movw r3, #2388 ldrh r3, [r5, r3] - str r7, [r5, #2444] - mul r7, r3, r7 - str r7, [r5, #2424] + str r9, [r4, #1788] + mul r9, r3, r9 + movw r3, #2394 + ldrh r3, [r5, r3] + str r9, [r5, #2448] + mul r9, r3, r9 + str r9, [r5, #2428] bl FtlBbmTblFlush - movw r3, #2326 - ldr r7, .L3286+32 + ldr r2, [r5, #2336] + movw r3, #2402 + ldrh r3, [r5, r3] + add r1, r6, r8 + add r3, r3, r2, lsr #3 + cmp r1, r3 + bls .L3345 + ldr r0, .L3361+28 + mov r2, r2, lsr #5 + bl printk +.L3345: + movw r3, #2330 + ldr r6, .L3361+32 ldrh r2, [r5, r3] mov r1, #0 - sub r8, r7, #248 - ldr r0, [r4, #-3548] + sub r8, r6, #244 + ldr r0, [r4, #-3544] + mvn r9, #0 mov r2, r2, asl #1 mov fp, r8 bl ftl_memset mov r3, #0 - strh r3, [r7, #-6] @ movhi + strh r3, [r6, #-2] @ movhi mov r1, #255 - strh r3, [r7, #-248] @ movhi - str r3, [r4, #-3376] - strb r3, [r4, #-3282] - strb r3, [r4, #-3280] + strh r3, [r6, #-244] @ movhi + str r3, [r4, #-3372] + strb r3, [r4, #-3278] + strb r3, [r4, #-3276] strh r3, [r8, #2] @ movhi - strb r3, [r4, #-3522] + strb r3, [r4, #-3518] mov r3, #1 - strb r3, [r4, #-3520] - movw r3, #2324 + strb r3, [r4, #-3516] + movw r3, #2328 ldrh r2, [r5, r3] - ldr r0, [r4, #-3372] - strh r9, [r7, #-8] @ movhi - add r7, r7, #3280 + ldr r0, [r4, #-3368] + strh r9, [r6, #-4] @ movhi + add r6, r6, #3280 mov r2, r2, lsr #3 bl ftl_memset -.L3271: - ldr r10, .L3286+36 - ldr r5, .L3286 +.L3346: + ldr r10, .L3361+36 + ldr r5, .L3361 mov r0, r10 bl make_superblock - ldrb r3, [r4, #-3521] @ zero_extendqisi2 + ldrb r3, [r4, #-3517] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r8] - bne .L3272 - ldr r2, [r7, #-3548] + bne .L3347 + ldr r2, [r6, #-3544] mov r3, r3, asl #1 strh r9, [r2, r3] @ movhi ldrh r3, [fp] add r3, r3, #1 strh r3, [fp] @ movhi - b .L3271 -.L3272: - ldr r2, [r5, #-3336] + b .L3346 +.L3347: + ldr r2, [r5, #-3332] mov r3, r3, asl #1 ldrh r1, [r10, #4] mov r9, r5 - str r2, [r5, #-3516] + str r2, [r5, #-3512] add r2, r2, #1 - str r2, [r5, #-3336] - ldr r2, [r5, #-3548] + str r2, [r5, #-3332] + ldr r2, [r5, #-3544] strh r1, [r2, r3] @ movhi sub r2, r5, #3472 - sub r7, r2, #8 + sub r6, r2, #4 mov r3, #0 - strb r3, [r5, #-3474] - strh r3, [r7, #2] @ movhi + strb r3, [r5, #-3470] + strh r3, [r6, #2] @ movhi ldrh r3, [r10] mvn r10, #0 add r3, r3, #1 - strh r3, [r2, #-8] @ movhi + strh r3, [r2, #-4] @ movhi mov r3, #1 - strb r3, [r5, #-3472] -.L3273: - ldr r8, .L3286+40 - ldr r5, .L3286 + strb r3, [r5, #-3468] +.L3348: + ldr r8, .L3361+40 + ldr r5, .L3361 mov r0, r8 bl make_superblock - ldrb r3, [r4, #-3473] @ zero_extendqisi2 + ldrb r3, [r4, #-3469] @ zero_extendqisi2 cmp r3, #0 - ldrh r3, [r7] - bne .L3274 - ldr r2, [r9, #-3548] + ldrh r3, [r6] + bne .L3349 + ldr r2, [r9, #-3544] mov r3, r3, asl #1 strh r10, [r2, r3] @ movhi - ldrh r3, [r7] + ldrh r3, [r6] add r3, r3, #1 - strh r3, [r7] @ movhi - b .L3273 -.L3274: - ldr r2, [r5, #-3336] + strh r3, [r6] @ movhi + b .L3348 +.L3349: + ldr r2, [r5, #-3332] mov r3, r3, asl #1 ldrh r1, [r8, #4] mvn r4, #0 - str r2, [r5, #-3468] + str r2, [r5, #-3464] add r2, r2, #1 - str r2, [r5, #-3336] - ldr r2, [r5, #-3548] + str r2, [r5, #-3332] + ldr r2, [r5, #-3544] strh r1, [r2, r3] @ movhi sub r3, r5, #3424 - strh r4, [r3, #-8] @ movhi + strh r4, [r3, #-4] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L3286+44 + ldr r3, .L3361+44 mov r2, #0 strh r2, [r3, #2] @ movhi - ldr r2, [r5, #1784] + ldr r2, [r5, #1788] strh r4, [r3, #4] @ movhi strh r2, [r3, #6] @ movhi - ldr r3, [r5, #-3336] - str r3, [r5, #-3296] + ldr r3, [r5, #-3332] + str r3, [r5, #-3292] add r3, r3, #1 - str r3, [r5, #-3336] - strh r0, [r6, #-8] @ movhi + str r3, [r5, #-3332] + strh r0, [r7, #-4] @ movhi bl FtlVpcTblFlush bl FtlSysBlkInit cmp r0, #0 - ldreq r3, .L3286+48 + ldreq r3, .L3361+48 moveq r2, #1 streq r2, [r3, #504] -.L3253: +.L3328: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3287: +.L3362: .align 2 -.L3286: +.L3361: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+2390 + .word .LANCHOR0+2394 .word 168778952 - .word .LANCHOR0+2326 - .word .LANCHOR0+2324 + .word .LANCHOR0+2330 + .word .LANCHOR0+2328 .word .LANCHOR2-3296 - .word .LANCHOR0+2384 + .word .LC156 .word .LANCHOR2-3280 - .word .LANCHOR2-3528 - .word .LANCHOR2-3480 - .word .LANCHOR2-3304 + .word .LANCHOR2-3524 + .word .LANCHOR2-3476 + .word .LANCHOR2-3300 .word .LANCHOR1 .fnend .size FtlLowFormat, .-FtlLowFormat @@ -19731,28 +20091,28 @@ FtlReInitForSDUpdata: .save {r4, r5, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L3317 - ldrb r3, [r4, #140] @ zero_extendqisi2 + ldr r4, .L3392 + ldrb r3, [r4, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L3289 -.L3291: + beq .L3364 +.L3366: mov r0, #0 - b .L3290 -.L3289: - ldr r5, .L3317+4 - ldr r0, [r5, #1680] + b .L3365 +.L3364: + ldr r5, .L3392+4 + ldr r0, [r5, #1684] bl FlashInit cmp r0, #0 - bne .L3291 + bne .L3366 bl FlashLoadFactorBbt cmp r0, #0 - beq .L3292 + beq .L3367 bl FlashMakeFactorBbt -.L3292: - ldr r0, [r5, #1712] +.L3367: + ldr r0, [r5, #1716] bl FlashReadIdbDataRaw cmp r0, #0 - beq .L3293 + beq .L3368 mov r1, #0 mov r2, #16 mov r0, sp @@ -19761,75 +20121,75 @@ FtlReInitForSDUpdata: mov r2, r3 mov ip, #1 ldr r1, [sp] -.L3294: +.L3369: ands lr, r1, ip, asl r2 add r0, r3, #1 add r2, r2, #1 movne r3, r0 cmp r2, #16 - bne .L3294 + bne .L3369 cmp r3, #6 - bls .L3313 + bls .L3388 mov r2, #0 mov ip, #1 -.L3297: +.L3372: ands lr, r1, ip, asl r2 add r0, r3, #1 add r2, r2, #1 movne r3, r0 cmp r2, #24 - bne .L3297 + bne .L3372 cmp r3, #17 movhi r3, #36 strhib r3, [r4, #1] - bhi .L3296 -.L3313: + bhi .L3371 +.L3388: strb r2, [r4, #1] -.L3296: +.L3371: ldrb r3, [r4, #1] @ zero_extendqisi2 - strh r3, [r4, #138] @ movhi -.L3293: - ldr r1, .L3317+8 - ldr r0, .L3317+12 + strh r3, [r4, #142] @ movhi +.L3368: + ldr r1, .L3392+8 + ldr r0, .L3392+12 bl printk - ldr r0, .L3317+16 + ldr r0, .L3392+16 bl FtlConstantsInit bl FtlVariablesInit - ldr r0, [r4, #2320] + ldr r0, [r4, #2324] mov r4, #1 uxth r0, r0 bl FtlFreeSysBlkQueueInit -.L3299: +.L3374: bl FtlLoadBbt cmp r0, #0 - beq .L3300 -.L3315: + beq .L3375 +.L3390: bl FtlLowFormat cmp r4, #3 addls r4, r4, #1 - bls .L3299 -.L3316: + bls .L3374 +.L3391: mvn r0, #0 - b .L3290 -.L3300: + b .L3365 +.L3375: bl FtlSysBlkInit cmp r0, #0 - bne .L3315 - ldr r3, .L3317+20 + bne .L3390 + ldr r3, .L3392+20 mov r2, #1 str r2, [r3, #504] -.L3290: +.L3365: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, pc} -.L3318: +.L3393: .align 2 -.L3317: +.L3392: .word .LANCHOR0 .word .LANCHOR2 .word .LC77 .word .LC76 - .word .LANCHOR0+112 + .word .LANCHOR0+116 .word .LANCHOR1 .fnend .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata @@ -19842,92 +20202,92 @@ Ftl_gc_temp_data_write_back: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r5, .L3336 - ldr r3, [r5, #-3620] + ldr r5, .L3411 + ldr r3, [r5, #-3616] cmp r3, #0 - beq .L3320 -.L3323: + beq .L3395 +.L3398: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3320: - ldr r3, .L3336+4 - ldrb r3, [r3, #140] @ zero_extendqisi2 +.L3395: + ldr r3, .L3411+4 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L3322 - ldr r3, [r5, #-2708] + beq .L3397 + ldr r3, [r5, #-2704] tst r3, #1 - beq .L3322 - ldr r3, .L3336+8 + beq .L3397 + ldr r3, .L3411+8 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3323 -.L3322: + bne .L3398 +.L3397: mov r2, #0 - ldr r0, [r5, #-536] - ldr r1, [r5, #-2708] + ldr r0, [r5, #-532] + ldr r1, [r5, #-2704] mov r3, r2 bl FlashProgPages - ldr r7, .L3336 + ldr r7, .L3411 mov r6, #0 mov r8, #36 -.L3324: - ldr r1, [r5, #-2708] +.L3399: + ldr r1, [r5, #-2704] uxth r3, r6 - ldr r4, .L3336 + ldr r4, .L3411 cmp r3, r1 - bcs .L3335 + bcs .L3410 mul r3, r8, r3 - ldr r0, [r7, #-536] + ldr r0, [r7, #-532] add r6, r6, #1 add r1, r0, r3 ldr r0, [r0, r3] ldr r2, [r1, #12] cmn r0, #1 - bne .L3325 + bne .L3400 sub r1, r4, #3424 - ldr ip, [r4, #-3548] + ldr ip, [r4, #-3544] mov lr, #0 - ldrh r2, [r1, #-8] + ldrh r2, [r1, #-4] mov r2, r2, asl #1 strh lr, [ip, r2] @ movhi - ldr r2, [r4, #-3140] - strh r0, [r1, #-8] @ movhi + ldr r2, [r4, #-3136] + strh r0, [r1, #-4] @ movhi add r2, r2, #1 - str r2, [r4, #-3140] - ldr r2, [r4, #-536] + str r2, [r4, #-3136] + ldr r2, [r4, #-532] add r3, r2, r3 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3334 -.L3325: + b .L3409 +.L3400: ldr r0, [r2, #12] ldr r1, [r1, #4] ldr r2, [r2, #8] bl FtlGcUpdatePage - b .L3324 -.L3335: - ldr r0, [r4, #-536] + b .L3399 +.L3410: + ldr r0, [r4, #-532] bl FtlGcBufFree mov r3, #0 - str r3, [r4, #-2708] - ldr r3, .L3336+8 + str r3, [r4, #-2704] + ldr r3, .L3411+8 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3323 + bne .L3398 mov r0, #1 bl FtlGcFreeTempBlock -.L3334: +.L3409: mov r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3337: +.L3412: .align 2 -.L3336: +.L3411: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-3432 + .word .LANCHOR2-3428 .fnend .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 @@ -19939,41 +20299,42 @@ Ftl_get_new_temp_ppa: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L3342 - sub r2, r3, #8 - ldrh r1, [r3, #-8] + ldr r3, .L3417 + sub r2, r3, #4 + ldrh r1, [r3, #-4] movw r3, #65535 cmp r1, r3 - beq .L3339 + beq .L3414 ldrh r3, [r2, #4] cmp r3, #0 - bne .L3340 -.L3339: - ldr r4, .L3342+4 + bne .L3415 +.L3414: + ldr r4, .L3417+4 bl FtlCacheWriteBack mov r0, #0 mov r5, #0 bl FtlGcFreeTempBlock - sub r4, r4, #2672 - strb r5, [r4, #-752] - ldr r0, .L3342+8 + ldr r0, .L3417+8 + strb r5, [r4, #-3420] bl allocate_data_superblock - strh r5, [r4, #-8] @ movhi - strh r5, [r4] @ movhi + sub r3, r4, #2672 + sub r4, r4, #2656 + strh r5, [r3, #-4] @ movhi + strh r5, [r4, #-12] @ movhi bl l2p_flush mov r0, r5 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3340: - ldr r0, .L3342+8 +.L3415: + ldr r0, .L3417+8 ldmfd sp!, {r3, r4, r5, lr} b get_new_active_ppa -.L3343: +.L3418: .align 2 -.L3342: +.L3417: .word .LANCHOR2-3424 .word .LANCHOR2 - .word .LANCHOR2-3432 + .word .LANCHOR2-3428 .fnend .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa .align 2 @@ -19983,677 +20344,693 @@ ftl_do_gc: .fnstart @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L3508 + ldr r3, .L3583 + ldr ip, [r3, #-3616] + cmp ip, #0 + bne .L3513 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr lr, [ip, #-3620] - cmp lr, #0 - movne r0, #0 - bne .L3497 - ldr r9, .L3508+4 - ldr r3, [r9, #504] - cmn r3, #1 - beq .L3440 - ldr r2, [ip, #-564] + ldr r4, .L3583+4 + ldr r8, [r4, #504] + cmp r8, #1 + bne .L3515 + ldr r2, [r3, #-560] cmp r2, #0 - bne .L3440 - sub r3, ip, #3536 - ldrh r3, [r3, #-4] - cmp r3, #47 + bne .L3515 + mov r9, r0 + sub r0, r3, #3536 + ldrh r0, [r0] + cmp r0, #47 movls r0, r2 - bls .L3497 - movw r3, #3352 - mov r6, ip - ldrh r2, [r9, r3] - movw r3, #65535 - str r1, [sp, #8] - cmp r2, r3 - str r0, [sp, #12] - bne .L3346 -.L3349: - ldr r5, .L3508+8 + bls .L3572 + movw r2, #3448 + str r1, [sp, #12] + ldrh r1, [r4, r2] movw r2, #65535 - ldrh r4, [r5, #-12] - cmp r4, r2 - bne .L3347 - b .L3348 -.L3346: - sub ip, ip, #3424 - ldrh r2, [ip, #-8] - cmp r2, r3 - beq .L3349 - mov r0, #1 + mov r5, r3 + str r9, [sp, #16] + cmp r1, r2 + bne .L3421 +.L3424: + ldr r4, .L3583+8 + movw r2, #65535 + ldrh r0, [r4, #-8] + cmp r0, r2 + bne .L3422 + b .L3423 +.L3421: + sub r3, r3, #3424 + ldrh r3, [r3, #-4] + cmp r3, r2 + beq .L3424 + mov r0, r8 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L3349 - mov r0, #1 - b .L3497 -.L3347: - ldrh r3, [r5, #-14] + beq .L3424 + mov r0, r8 + b .L3572 +.L3422: + ldrh r3, [r4, #-10] cmp r3, r2 - bne .L3348 - ldrh r1, [r5, #-10] + bne .L3423 + ldrh r1, [r4, #-6] cmp r1, r3 - beq .L3348 - ldrh r2, [r5, #-8] + beq .L3423 + ldrh r2, [r4, #-4] cmp r2, r3 - strneh r4, [r5, #-14] @ movhi - strneh r1, [r5, #-12] @ movhi + strneh r0, [r4, #-10] @ movhi + strneh r1, [r4, #-8] @ movhi mvnne r3, #0 - strneh r2, [r5, #-10] @ movhi - strneh r3, [r5, #-8] @ movhi -.L3348: - ldr r2, [sp, #12] - ldr r3, [r6, #-2720] - ldr r7, .L3508+12 - cmp r2, #1 - add r3, r3, #1 - add r3, r3, r2, asl #7 - sub r8, r7, #240 - str r3, [r6, #-2720] - bne .L3360 - ldr r4, .L3508+16 - ldr r2, [r4, #2308] - cmp r2, #0 - bne .L3351 - ldrb r2, [r4, #140] @ zero_extendqisi2 - cmp r2, #0 - beq .L3360 -.L3351: - ldr r2, [r6, #-3312] - ldr r10, .L3508 - cmp r2, #39 - bhi .L3360 - ldr r9, .L3508+20 - movw r2, #1980 - ldrh r2, [r9, r2] - add r3, r3, r2 - str r3, [r10, #-2720] + strneh r2, [r4, #-6] @ movhi + strneh r3, [r4, #-4] @ movhi +.L3423: + ldr r3, [sp, #16] + ldr r8, [r5, #-2716] + ldr r6, .L3583+12 + cmp r3, #1 + add r8, r8, #1 + add r8, r8, r3, asl #7 + sub r7, r6, #240 + str r8, [r5, #-2716] + bne .L3435 + ldr r9, .L3583+16 + ldr r3, [r9, #2244] + cmp r3, #0 + bne .L3426 + ldrb r3, [r9, #144] @ zero_extendqisi2 + cmp r3, #0 + beq .L3435 +.L3426: + ldr r3, [r5, #-3308] + ldr fp, .L3583 + cmp r3, #39 + bhi .L3435 + ldr r10, .L3583+20 + ldrh r3, [r10] + add r8, r8, r3 + str r8, [fp, #-2716] bl FtlGcReFreshBadBlk - ldrh r3, [r7, #-8] - movw r2, #65535 - cmp r3, r2 - bne .L3360 - ldrh r2, [r5, #-14] - cmp r2, r3 - bne .L3360 - ldr r3, [r10, #-2720] + ldrh r8, [r6, #-4] + movw r3, #65535 + cmp r8, r3 + bne .L3435 + ldrh r3, [r4, #-10] + cmp r3, r8 + bne .L3435 + ldr r3, [fp, #-2716] cmp r3, #1024 - bhi .L3352 - ldrh r3, [r8, #-12] + bhi .L3427 + ldrh r3, [r7, #-8] cmp r3, #63 - bhi .L3360 -.L3352: - ldr r1, .L3508 - movw r2, #1980 - ldrh lr, [r8, #-12] - mov ip, #0 - sub r3, r1, #2720 - ldr r0, .L3508+20 - strh ip, [r9, r2] @ movhi - ldrh r3, [r3, #-2] - add r3, r3, #64 - cmp lr, r3 - bgt .L3360 - ldr r3, [r1, #-3312] - str ip, [r1, #-2720] - cmp r3, ip + bhi .L3435 +.L3427: + ldr r1, .L3583 + mov r3, #0 + strh r3, [r10] @ movhi + sub r8, r1, #2704 + ldrh r0, [r7, #-8] + ldr r2, .L3583+20 + ldrh r10, [r8, #-14] + add ip, r10, #64 + cmp r0, ip + bgt .L3435 + str r3, [r1, #-2716] + ldr r3, [r1, #-3308] + cmp r3, #0 moveq r3, #6 - beq .L3499 + beq .L3574 cmp r3, #5 - bhi .L3354 + bhi .L3429 mov r3, #18 -.L3499: - strh r3, [r0, r2] @ movhi -.L3354: +.L3574: + strh r3, [r2] @ movhi +.L3429: mov r0, #32 bl List_get_gc_head_node movw ip, #65535 - uxth r2, r0 - cmp r2, ip - beq .L3359 - ldr r10, .L3508 - sub r9, r10, #2704 - ldrh r0, [r9, #-12] + uxth r3, r0 + cmp r3, ip + beq .L3434 + ldrh r0, [r8, #-8] + ldr r2, .L3583 cmp r0, #0 - beq .L3356 - movw lr, #2386 - movw fp, #2316 - ldrh lr, [r4, lr] - mov r2, r2, asl #1 - ldrh r4, [r4, fp] - ldr r3, [r10, #-3548] - mul lr, r4, lr - ldrh r1, [r3, r2] - add lr, lr, #1 - cmp r1, lr - bgt .L3359 + sub r10, r2, #2704 + beq .L3431 + mov r8, r3, asl #1 + movw r3, #2390 + ldrh lr, [r9, r3] + ldr r3, .L3583+24 + ldr r2, [r2, #-3544] + ldrh r3, [r3] + ldrh r1, [r2, r8] + mul r3, r3, lr + add r3, r3, #1 + cmp r1, r3 + bgt .L3434 add r1, r0, #1 - str r2, [sp, #28] - str ip, [sp, #24] - mov fp, #0 + str ip, [sp, #28] + str r2, [sp, #24] + mov r9, #0 uxth r1, r1 - str r3, [sp, #20] - strh r1, [r9, #-12] @ movhi - str r1, [sp, #16] - str fp, [r10, #-2712] + str r9, [r10, #-4] + strh r1, [r10, #-8] @ movhi + str r1, [sp, #20] bl List_get_gc_head_node - ldr ip, [sp, #24] - uxth r4, r0 - ldr r1, [sp, #16] - cmp r4, ip - ldr r3, [sp, #20] - ldr r2, [sp, #28] - beq .L3359 - mov ip, r4, asl #1 - ldr r0, .L3508+24 - str ip, [sp, #16] - ldrh lr, [r3, ip] - ldrh r3, [r3, r2] - mov r2, r4 - str r3, [sp] - mov r3, lr + ldr ip, [sp, #28] + uxth fp, r0 + ldr r1, [sp, #20] + cmp fp, ip + ldr r2, [sp, #24] + beq .L3434 + mov ip, fp, asl #1 + ldr r0, .L3583+28 + str ip, [sp, #20] + ldrh r3, [r2, ip] + ldrh r2, [r2, r8] + str r2, [sp] + mov r2, fp bl printk - ldrh r3, [r9, #-12] + ldrh r3, [r10, #-8] cmp r3, #40 - ldr ip, [sp, #16] - bls .L3357 - ldr r3, [r10, #-3548] + ldr ip, [sp, #20] + bls .L3432 + ldr r3, [r10, #-840] ldrh r3, [r3, ip] cmp r3, #32 - strhih fp, [r9, #-12] @ movhi -.L3357: - ldr r2, .L3508+20 - movw r3, #1980 - mov r1, #6 - strh r1, [r2, r3] @ movhi - b .L3361 -.L3356: + strhih r9, [r10, #-8] @ movhi +.L3432: + ldr r3, .L3583+20 + mov r2, #6 + strh r2, [r3] @ movhi + b .L3436 +.L3431: mov r3, #1 - strh r3, [r9, #-12] @ movhi -.L3359: + strh r3, [r10, #-8] @ movhi +.L3434: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 - mov r4, r0 - bne .L3361 - ldr r2, .L3508+20 - movw r3, #1980 - mov r1, #0 - strh r1, [r2, r3] @ movhi -.L3360: - ldrh r3, [r7, #-8] - movw r4, #65535 - ldr r9, .L3508 - cmp r3, r4 - bne .L3361 - sub r2, r9, #3424 - ldrh r4, [r2, #-8] - cmp r4, r3 - movne r4, r3 - beq .L3504 -.L3361: + mov fp, r0 + bne .L3436 + ldr r3, .L3583+20 + mov r2, #0 + strh r2, [r3] @ movhi +.L3435: + ldrh ip, [r6, #-4] + movw r3, #65535 + ldr r8, .L3583 + cmp ip, r3 + bne .L3577 + sub r3, r8, #3424 + ldrh r3, [r3, #-4] + cmp r3, ip + movne fp, ip + beq .L3580 +.L3436: movw r1, #65535 - rsb r3, r1, r4 + rsb r3, r1, fp clz r3, r3 - ldr r2, [sp, #12] - ldr r9, .L3508+28 + ldr r2, [sp, #16] + ldr r8, .L3583+32 mov r3, r3, lsr #5 cmp r2, #0 movne ip, #0 andeq ip, r3, #1 cmp ip, #0 - beq .L3374 - ldrh r0, [r9, #-12] + beq .L3449 + ldrh r0, [r8, #-8] cmp r0, #24 - movhi fp, #1 - bhi .L3375 - ldr r3, .L3508+32 + movhi r9, #1 + bhi .L3450 + ldr r2, .L3583+16 + movw r3, #2388 cmp r0, #16 - ldrh fp, [r3] - movhi fp, fp, lsr #5 - bhi .L3375 + ldrh r9, [r2, r3] + movhi r9, r9, lsr #5 + bhi .L3450 cmp r0, #12 - movhi fp, fp, lsr #4 - bhi .L3375 + movhi r9, r9, lsr #4 + bhi .L3450 cmp r0, #8 - movhi fp, fp, lsr #2 -.L3375: - ldr r1, .L3508 + movhi r9, r9, lsr #2 +.L3450: + ldr r1, .L3583 sub r2, r1, #2720 - ldrh r3, [r2, #-4] + ldrh r3, [r2] cmp r3, r0 - bcs .L3379 + bcs .L3454 sub r3, r1, #3424 movw r0, #65535 - ldrh r3, [r3, #-8] + ldrh r3, [r3, #-4] cmp r3, r0 - bne .L3380 - ldrh r0, [r5, #-14] + bne .L3455 + ldrh r0, [r4, #-10] cmp r0, r3 - bne .L3380 - ldr r0, .L3508+20 - movw r3, #1980 - ldrh r0, [r0, r3] + bne .L3455 + ldr r3, .L3583+20 + ldrh r0, [r3] cmp r0, #0 - bne .L3381 - ldr r3, .L3508+16 - ldr r1, [r1, #-3376] - ldr r3, [r3, #2444] + bne .L3456 + ldr r3, .L3583+16 + ldr r1, [r1, #-3372] + ldr r3, [r3, #2448] add r3, r3, r3, asl #1 cmp r1, r3, lsr #2 movcs r3, #18 - bcs .L3382 -.L3381: - ldr r3, .L3508+36 - ldrh r3, [r3, #-12] + bcs .L3457 +.L3456: + ldr r3, .L3583+36 + ldrh r3, [r3, #-8] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3382: - strh r3, [r2, #-4] @ movhi +.L3457: + strh r3, [r2] @ movhi mov r3, #0 - str r3, [r6, #-2712] - b .L3497 -.L3380: - ldr r3, .L3508+36 - ldrh r3, [r3, #-12] + str r3, [r5, #-2708] + b .L3572 +.L3455: + ldr r3, .L3583+36 + ldrh r3, [r3, #-8] add r3, r3, r3, asl #1 mov r3, r3, asr #2 - strh r3, [r2, #-4] @ movhi -.L3379: - ldr r3, .L3508+16 - movw r4, #65535 - ldr r2, [r3, #2308] - ldr r3, [sp, #8] + strh r3, [r2] @ movhi +.L3454: + ldr r3, .L3583+16 + movw fp, #65535 + ldr r2, [r3, #2244] + ldr r3, [sp, #12] cmp r3, #2 movhi r3, #0 movls r3, #1 cmp r2, #0 moveq r3, #0 cmp r3, #0 - addne fp, fp, #1 - uxthne fp, fp - b .L3384 -.L3374: - ldrh r0, [r9, #88] - add r2, r9, #3520 + addne r9, r9, #1 + uxthne r9, r9 + b .L3459 +.L3449: + ldrh r0, [r8, #92] + add r2, r8, #3520 cmp r0, r1 - bne .L3385 - ldrh r1, [r5, #-14] + bne .L3460 + ldrh r1, [r4, #-10] cmp r1, r0 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L3385 - sub r3, r2, #3280 - ldrh r3, [r3, #-8] + beq .L3460 + ldrh r3, [r6, #-4] cmp r3, r0 - beq .L3386 -.L3390: - movw r4, #65535 - b .L3385 -.L3386: + beq .L3461 +.L3465: + movw fp, #65535 + b .L3460 +.L3461: sub r10, r2, #2720 - ldrh r1, [r8, #-12] - str ip, [r2, #-2712] - ldrh r3, [r10, #-4] - ldr fp, .L3508+20 + ldrh r1, [r7, #-8] + str ip, [r2, #-2708] + ldrh r3, [r10] + ldr r9, .L3583+20 cmp r1, r3 - bls .L3387 - movw r3, #1980 - ldrh r3, [fp, r3] + bls .L3462 + ldrh r3, [r9] cmp r3, #0 - bne .L3388 - ldr r3, .L3508+16 - ldr r2, [r2, #-3376] - ldr r3, [r3, #2444] + bne .L3463 + ldr r3, .L3583+16 + ldr r2, [r2, #-3372] + ldr r3, [r3, #2448] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movcs r3, #18 - bcs .L3389 -.L3388: - ldr r3, .L3508+36 - ldrh r3, [r3, #-12] + bcs .L3464 +.L3463: + ldr r3, .L3583+36 + ldrh r3, [r3, #-8] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3389: - strh r3, [r10, #-4] @ movhi +.L3464: + strh r3, [r10] @ movhi bl FtlReadRefresh mov r0, #0 bl List_get_gc_head_node - ldr r3, [r6, #-3548] + ldr r3, [r5, #-3544] uxth r0, r0 mov r0, r0, asl #1 ldrh r3, [r3, r0] cmp r3, #4 - movwhi r3, #1980 - ldrhih r0, [fp, r3] - bhi .L3497 -.L3387: - movw r4, #1980 - ldrh r0, [fp, r4] + ldrhih r0, [r9] + bhi .L3572 +.L3462: + ldrh r0, [r9] cmp r0, #0 - bne .L3390 - ldr r3, .L3508+36 - ldrh fp, [r3, #-12] - add r3, fp, fp, asl #1 + bne .L3465 + ldr r3, .L3583+36 + ldrh r9, [r3, #-8] + add r3, r9, r9, asl #1 mov r3, r3, asr #2 - strh r3, [r10, #-4] @ movhi + strh r3, [r10] @ movhi bl List_get_gc_head_node - ldr r3, [r6, #-3548] - movw r2, #2386 + ldr r3, [r5, #-3544] + movw r2, #2390 uxth r0, r0 mov r0, r0, asl #1 ldrh r1, [r3, r0] - movw r0, #2316 - ldr r3, .L3508+16 + ldr r3, .L3583+16 ldrh r2, [r3, r2] - ldrh r3, [r3, r0] + add r3, r3, #2320 + ldrh r3, [r3] mul r3, r3, r2 add r3, r3, r3, lsr #31 cmp r1, r3, asr #1 - ble .L3391 - ldrh r3, [r8, #-12] - sub r2, fp, #1 + ble .L3466 + ldrh r3, [r7, #-8] + sub r2, r9, #1 cmp r3, r2 - blt .L3391 + blt .L3466 bl FtlReadRefresh - ldr r3, .L3508+20 - ldrh r0, [r3, r4] - b .L3497 -.L3391: + b .L3578 +.L3466: cmp r1, #0 - bne .L3390 + bne .L3465 movw r0, #65535 bl decrement_vpc_count - ldrh r0, [r9, #-12] + ldrh r0, [r8, #-8] add r0, r0, #1 - b .L3497 -.L3385: - ldr r3, .L3508+16 - ldr r3, [r3, #2308] + b .L3572 +.L3460: + ldr r3, .L3583+16 + ldr r3, [r3, #2244] cmp r3, #0 - moveq fp, #1 - movne fp, #2 -.L3384: - ldrh r3, [r7, #-8] + moveq r9, #1 + movne r9, #2 +.L3459: + ldrh r3, [r6, #-4] movw r0, #65535 - ldr r2, .L3508 + ldr r2, .L3583 cmp r3, r0 sub r1, r2, #3280 - bne .L3393 - cmp r4, r3 - strneh r4, [r1, #-8] @ movhi - bne .L3395 - ldrh r3, [r5, #-14] + bne .L3468 + cmp fp, r3 + strneh fp, [r1, #-4] @ movhi + bne .L3470 + ldrh r3, [r4, #-10] sub r1, r2, #2656 - cmp r3, r4 - beq .L3395 - ldr r2, [r2, #-3548] + cmp r3, fp + beq .L3470 + ldr r2, [r2, #-3544] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 mvneq r3, #0 - streqh r3, [r1, #-14] @ movhi - ldrh r3, [r5, #-14] - strh r3, [r7, #-8] @ movhi + streqh r3, [r1, #-10] @ movhi + ldrh r3, [r4, #-10] + strh r3, [r6, #-4] @ movhi mvn r3, #0 - strh r3, [r5, #-14] @ movhi -.L3395: - ldrh r0, [r7, #-8] + strh r3, [r4, #-10] @ movhi +.L3470: + ldrh r0, [r6, #-4] mov r3, #0 - strb r3, [r6, #-3280] + strb r3, [r5, #-3276] movw r3, #65535 cmp r0, r3 - beq .L3393 + beq .L3468 bl IsBlkInGcList cmp r0, #0 - ldrne r3, .L3508+12 + ldrne r3, .L3583+12 mvnne r2, #0 - strneh r2, [r3, #-8] @ movhi - ldr r3, .L3508+16 - ldrb r3, [r3, #140] @ zero_extendqisi2 + strneh r2, [r3, #-4] @ movhi + ldr r3, .L3583+16 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L3399 - ldrh r0, [r7, #-8] + beq .L3474 + ldrh r0, [r6, #-4] bl ftl_get_blk_mode - strb r0, [r6, #-3280] -.L3399: - ldrh r2, [r7, #-8] + strb r0, [r5, #-3276] +.L3474: + ldrh r2, [r6, #-4] movw r3, #65535 - ldr r6, .L3508 + ldr r5, .L3583 cmp r2, r3 - sub r8, r6, #3280 - sub r5, r8, #8 - beq .L3393 - mov r0, r5 + sub r7, r5, #3280 + sub r4, r7, #4 + beq .L3468 + mov r0, r4 bl make_superblock - ldr r3, .L3508+20 - movw r1, #1982 - mov r2, #0 - strh r2, [r8, #-6] @ movhi - strh r2, [r3, r1] @ movhi - add r3, r3, #1984 - strb r2, [r6, #-3282] - ldrh r2, [r8, #-8] - ldr r1, [r6, #-3548] - mov r2, r2, asl #1 - ldrh r2, [r1, r2] - strh r2, [r3] @ movhi -.L3393: - ldrh r3, [r7, #-8] - ldrh r2, [r9, #-8] - cmp r2, r3 - beq .L3400 - ldr r2, .L3508+40 - ldrh r1, [r2, #-8] - cmp r1, r3 - beq .L3400 - ldrh r2, [r2, #40] - cmp r2, r3 - bne .L3434 -.L3400: - ldr r3, .L3508+12 - mvn r2, #0 - strh r2, [r3, #-8] @ movhi -.L3434: - ldr r7, .L3508+44 - movw r3, #65535 - ldr r6, .L3508 - ldrh r2, [r7] - mov r10, r7 - mov r8, r6 - cmp r2, r3 - bne .L3402 + ldr r2, .L3583+40 + movw r1, #1986 mov r3, #0 - str r3, [r6, #-2712] -.L3403: - ldr r9, .L3508+48 - ldrh r5, [r9] - mov r0, r5 + strh r3, [r7, #-2] @ movhi + strh r3, [r2, r1] @ movhi + strb r3, [r5, #-3278] + ldrh r3, [r7, #-4] + ldr r1, [r5, #-3544] + mov r3, r3, asl #1 + ldrh r1, [r1, r3] + movw r3, #1988 + strh r1, [r2, r3] @ movhi +.L3468: + ldrh r3, [r6, #-4] + ldrh r2, [r8, #-4] + cmp r2, r3 + beq .L3475 + ldr r2, .L3583+44 + ldrh r1, [r2, #-4] + cmp r1, r3 + beq .L3475 + ldrh r2, [r2, #44] + cmp r2, r3 + bne .L3509 +.L3475: + mvn r3, #0 + strh r3, [r6, #-4] @ movhi +.L3509: + ldr r6, .L3583+48 + movw r3, #65535 + ldr r5, .L3583 + ldrh r2, [r6] + mov r10, r6 + cmp r2, r3 + bne .L3477 + mov r3, #0 + str r5, [sp, #12] + str r3, [r5, #-2708] +.L3478: + ldr r8, .L3583+52 + ldrh r4, [r8] + mov r0, r4 bl List_get_gc_head_node - movw r2, #65535 - uxth r3, r0 - strh r3, [r10] @ movhi - cmp r3, r2 + movw r3, #65535 + uxth r7, r0 + strh r7, [r10] @ movhi + cmp r7, r3 moveq r3, #0 moveq r0, #8 - streqh r3, [r9] @ movhi - beq .L3497 -.L3404: - mov r0, r3 - str r3, [sp, #8] + streqh r3, [r8] @ movhi + beq .L3572 +.L3479: + mov r0, r7 + add r4, r4, #1 bl IsBlkInGcList - add r5, r5, #1 cmp r0, #0 - ldr r3, [sp, #8] - ldrne r3, .L3508+48 - strneh r5, [r3] @ movhi - bne .L3403 - ldr r2, .L3508+48 - uxth r5, r5 - ldr r0, [r8, #-3548] - mov r1, r3, asl #1 - strh r5, [r2] @ movhi - ldr r2, .L3508+32 - ldrh ip, [r0, r1] - ldrh lr, [r2] - ldrh r2, [r2, #-68] - mul r2, r2, lr - add lr, r2, r2, lsr #31 - cmp ip, lr, asr #1 - bgt .L3407 - cmp ip, #8 - cmphi r5, #48 - bls .L3408 - ldrh ip, [r9, #36] - cmp ip, #35 - bhi .L3408 -.L3407: - ldr lr, .L3508+48 - mov ip, #0 - strh ip, [lr] @ movhi -.L3408: - ldrh r1, [r0, r1] - movw r0, #65535 - cmp r1, r2 - cmpge r4, r0 - bne .L3409 - ldr r2, .L3508+48 - ldrh r0, [r2] - cmp r0, #3 - bhi .L3409 - sub r3, r2, #564 + ldrne r3, .L3583+52 + strneh r4, [r3] @ movhi + bne .L3478 + ldr r3, .L3583+52 + uxth r4, r4 + mov r2, r7, asl #1 + strh r4, [r3] @ movhi + ldr r3, [sp, #12] + ldr r1, [r3, #-3544] + ldr r3, .L3583+56 + ldrh r0, [r1, r2] + ldrh ip, [r3] + ldrh r3, [r3, #-68] + mul r3, r3, ip + add ip, r3, r3, lsr #31 + cmp r0, ip, asr #1 + bgt .L3482 + cmp r0, #8 + cmphi r4, #48 + bls .L3483 + ldrh r0, [r8, #36] + cmp r0, #35 + bhi .L3483 +.L3482: + ldr ip, .L3583+52 + mov r0, #0 + strh r0, [ip] @ movhi +.L3483: + ldrh r2, [r1, r2] + movw r1, #65535 + cmp r2, r3 + cmpge fp, r1 + bne .L3484 + ldr r3, .L3583+52 + ldrh r1, [r3] + cmp r1, #3 + bhi .L3484 + sub r2, r3, #568 mvn r1, #0 - strh r1, [r3, #-8] @ movhi - mov r3, #0 - strh r3, [r2] @ movhi - b .L3502 -.L3409: - cmp r1, #0 - bne .L3410 + strh r1, [r2, #-4] @ movhi + mov r2, #0 + strh r2, [r3] @ movhi +.L3578: + ldr r3, .L3583+20 + ldrh r0, [r3] + b .L3572 +.L3484: + cmp r2, #0 + bne .L3485 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L3508+48 - ldr r2, .L3508+48 + ldr r3, .L3583+52 + ldr r2, .L3583+52 ldrh r3, [r3] add r3, r3, #1 strh r3, [r2] @ movhi - b .L3403 -.L3410: - mov r2, #0 - strb r2, [r6, #-3280] - ldr r2, .L3508+16 - ldrb r2, [r2, #140] @ zero_extendqisi2 - cmp r2, #0 - beq .L3411 - mov r0, r3 - bl ftl_get_blk_mode - ldr r3, .L3508 - strb r0, [r3, #-3280] -.L3411: - ldr r0, .L3508+44 - bl make_superblock - ldrh r2, [r7] - ldr r1, .L3508+52 + b .L3478 +.L3485: mov r3, #0 - ldr r0, [r6, #-3548] + strb r3, [r5, #-3276] + ldr r3, .L3583+16 + ldrb r3, [r3, #144] @ zero_extendqisi2 + cmp r3, #0 + beq .L3486 + mov r0, r7 + bl ftl_get_blk_mode + ldr r3, .L3583 + strb r0, [r3, #-3276] +.L3486: + ldr r0, .L3583+48 + bl make_superblock + ldrh r2, [r6] + ldr r1, .L3583+60 + mov r3, #0 + ldr r0, [r5, #-3544] mov r2, r2, asl #1 strh r3, [r1] @ movhi ldrh r2, [r0, r2] - strh r3, [r7, #2] @ movhi - strb r3, [r6, #-3282] + strh r3, [r6, #2] @ movhi + strb r3, [r5, #-3278] strh r2, [r1, #2] @ movhi -.L3402: - ldr r3, [sp, #12] +.L3477: + ldr r3, [sp, #16] cmp r3, #1 - bne .L3412 + bne .L3487 bl FtlReadRefresh -.L3412: +.L3487: mov r3, #1 - str r3, [r6, #-564] - ldr r3, .L3508+16 - add r2, r3, #2384 - ldrb r3, [r3, #140] @ zero_extendqisi2 - ldrh r2, [r2] + str r3, [r5, #-560] + ldr r3, .L3583+56 + ldrh r3, [r3] + str r3, [sp, #12] + ldr r3, .L3583+16 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 - str r2, [sp, #8] - beq .L3413 - ldr r3, .L3508 - ldrb r3, [r3, #-3280] @ zero_extendqisi2 + beq .L3488 + ldr r3, .L3583 + ldrb r3, [r3, #-3276] @ zero_extendqisi2 cmp r3, #1 - ldreq r3, .L3508+56 + ldreq r3, .L3583+64 ldreqh r3, [r3] - streq r3, [sp, #8] -.L3413: - ldrh r3, [r7, #2] - mov r7, #0 - ldr r1, [sp, #8] - add r2, r3, fp - ldr r5, .L3508 + streq r3, [sp, #12] +.L3488: + ldrh r3, [r6, #2] + mov r6, #0 + ldr r1, [sp, #12] + add r2, r3, r9 + ldr r4, .L3583 cmp r2, r1 movgt r2, r1 rsbgt r3, r3, r2 - uxthgt fp, r3 - b .L3415 -.L3507: - ldr r0, [r5, #-2692] - mov r1, r6 - ldrb r2, [r5, #-3280] @ zero_extendqisi2 - mov r9, #0 + uxthgt r9, r3 +.L3490: + uxth r3, r6 + ldr r7, .L3583 + cmp r3, r9 + ldr r5, .L3583+48 + bcs .L3497 + ldr r3, .L3583+24 + add r0, r5, #14 + ldrh r1, [r5, #2] + movw lr, #65535 + ldr r7, [r4, #-2688] + mov ip, #36 + ldrh r8, [r3] + add r1, r1, r6 + mov r3, #0 + mov r5, r3 +.L3498: + uxth r2, r3 + cmp r2, r8 + bcs .L3581 + ldrh r2, [r0, #2]! + add r3, r3, #1 + cmp r2, lr + orrne r2, r1, r2, asl #10 + mlane r10, ip, r5, r7 + addne r5, r5, #1 + uxthne r5, r5 + strne r2, [r10, #4] + b .L3498 +.L3581: + ldr r0, [r4, #-2688] + mov r1, r5 + ldrb r2, [r4, #-3276] @ zero_extendqisi2 + mov r8, #0 bl FlashReadPages -.L3418: - uxth r3, r9 - cmp r3, r6 - bcs .L3505 +.L3493: + uxth r3, r8 + cmp r3, r5 + bcs .L3582 mov r3, #36 - ldr r2, [r5, #-2692] - mul r8, r3, r9 - add r1, r2, r8 - ldr r2, [r2, r8] + ldr r2, [r4, #-2688] + mul r7, r3, r8 + add r1, r2, r7 + ldr r2, [r2, r7] ldr r10, [r1, #12] cmn r2, #1 - beq .L3454 + beq .L3529 ldrh r1, [r10] movw r2, #61589 cmp r1, r2 - bne .L3454 + bne .L3529 add r1, sp, #32 mov r2, #0 ldr r0, [r10, #8] - str r3, [sp, #16] + str r3, [sp, #20] bl log2phys - ldr r2, [r5, #-2692] - add r2, r2, r8 + ldr r2, [r4, #-2688] + add r2, r2, r7 ldr r0, [r2, #4] ldr r1, [sp, #32] - ldr r3, [sp, #16] + ldr r3, [sp, #20] bic r1, r1, #-2147483648 cmp r1, r0 - bne .L3454 - ldr r1, .L3508+52 - ldr r0, .L3508+52 + bne .L3529 + ldr r1, .L3583+60 + ldr r0, .L3583+60 ldr r2, [r2, #16] ldrh r1, [r1] - str r3, [sp, #20] + str r3, [sp, #24] add r1, r1, #1 strh r1, [r0] @ movhi - ldr r0, [r5, #-2708] - ldr r1, [r5, #-536] + ldr r0, [r4, #-2704] + ldr r1, [r4, #-532] mla r1, r3, r0, r1 str r2, [r1, #16] - str r1, [sp, #16] + str r1, [sp, #20] bl Ftl_get_new_temp_ppa - ldr r2, [r5, #-536] - ldr r1, [sp, #16] - ldr r3, [sp, #20] + ldr r2, [r4, #-532] + ldr r1, [sp, #20] + ldr r3, [sp, #24] str r0, [r1, #4] - ldr r1, [r5, #-2708] + ldr r1, [r4, #-2704] mla r3, r3, r1, r2 - ldr r2, [r5, #-2692] - add r2, r2, r8 + ldr r2, [r4, #-2688] + add r2, r2, r7 ldr r1, [r2, #8] str r1, [r3, #8] mov r1, #1 @@ -20661,310 +21038,285 @@ ftl_do_gc: str r2, [r3, #12] ldr r3, [sp, #32] str r3, [r10, #12] - ldr r3, .L3508+60 + ldr r3, .L3583+68 ldrh r3, [r3] strh r3, [r10, #2] @ movhi - ldr r3, [r5, #-3332] - ldr r0, [r5, #-2692] + ldr r3, [r4, #-3328] + ldr r0, [r4, #-2688] str r3, [r10, #4] - add r0, r0, r8 - ldr r3, [r5, #-2708] + add r0, r0, r7 + ldr r3, [r4, #-2704] add r3, r3, #1 - str r3, [r5, #-2708] + str r3, [r4, #-2704] bl FtlGcBufAlloc - ldr r3, .L3508+16 - ldrb r3, [r3, #140] @ zero_extendqisi2 + ldr r3, .L3583+16 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L3506 -.L3420: + bne .L3495 + ldrb r3, [r4, #-3421] @ zero_extendqisi2 + ldr r2, [r4, #-2704] + cmp r2, r3 + beq .L3495 + ldr r3, .L3583+68 + ldrh r3, [r3, #4] + cmp r3, #0 + bne .L3529 +.L3495: bl Ftl_gc_temp_data_write_back cmp r0, #0 - beq .L3454 - ldr r3, .L3508 + beq .L3529 + ldr r3, .L3583 mov r2, #0 mvn r1, #0 sub r3, r3, #3280 - str r2, [r3, #2716] - strh r1, [r3, #-8] @ movhi - strh r2, [r3, #-6] @ movhi -.L3502: - ldr r2, .L3508+20 - movw r3, #1980 - ldrh r0, [r2, r3] - b .L3497 -.L3505: - add r7, r7, #1 -.L3415: - uxth r3, r7 - ldr r8, .L3508 - cmp r3, fp - ldr r6, .L3508+44 - bcs .L3422 - ldr r3, .L3508+64 - add r0, r6, #14 - ldrh r1, [r6, #2] - movw lr, #65535 - ldr r8, [r5, #-2692] - mov ip, #36 - ldrh r9, [r3] - add r1, r1, r7 - mov r3, #0 - mov r6, r3 -.L3423: - uxth r2, r3 - cmp r2, r9 - bcs .L3507 - ldrh r2, [r0, #2]! - add r3, r3, #1 - cmp r2, lr - orrne r2, r1, r2, asl #10 - mlane r10, ip, r6, r8 - addne r6, r6, #1 - uxthne r6, r6 - strne r2, [r10, #4] - b .L3423 -.L3506: - ldrb r3, [r5, #-3425] @ zero_extendqisi2 - ldr r2, [r5, #-2708] - cmp r2, r3 - beq .L3420 - ldr r3, .L3508+60 - ldrh r3, [r3, #4] + str r2, [r3, #2720] + strh r1, [r3, #-4] @ movhi + strh r2, [r3, #-2] @ movhi + b .L3578 +.L3529: + add r8, r8, #1 + b .L3493 +.L3582: + add r6, r6, #1 + b .L3490 +.L3497: + ldrh r3, [r5, #2] + add r9, r9, r3 + ldr r3, [sp, #12] + uxth r9, r9 + strh r9, [r5, #2] @ movhi + cmp r9, r3 + bcc .L3499 + ldr r3, [r7, #-2704] cmp r3, #0 - beq .L3420 -.L3454: - add r9, r9, #1 - b .L3418 -.L3422: - ldrh r3, [r6, #2] - add fp, fp, r3 - ldr r3, [sp, #8] - uxth fp, fp - strh fp, [r6, #2] @ movhi - cmp fp, r3 - bcc .L3424 - ldr r3, [r8, #-2708] - cmp r3, #0 - beq .L3425 + beq .L3500 bl Ftl_gc_temp_data_write_back cmp r0, #0 movne r3, #0 - strne r3, [r8, #-564] - bne .L3502 -.L3425: - ldr r3, .L3508+52 - ldrh r5, [r3] - cmp r5, #0 - bne .L3426 - ldrh r3, [r6] - ldr r2, [r8, #-3548] + strne r3, [r7, #-560] + bne .L3578 +.L3500: + ldr r3, .L3583+60 + ldrh r4, [r3] + cmp r4, #0 + bne .L3501 + ldrh r3, [r5] + ldr r2, [r7, #-3544] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3426 - ldr r7, .L3508+16 -.L3427: - ldr r3, [r7, #2444] - cmp r5, r3 - bcs .L3432 - mov r0, r5 + beq .L3501 + ldr r6, .L3583+16 +.L3502: + ldr r3, [r6, #2448] + cmp r4, r3 + bcs .L3507 + mov r0, r4 add r1, sp, #36 mov r2, #0 bl log2phys ldr r0, [sp, #36] cmn r0, #1 - beq .L3428 + beq .L3503 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldrh r3, [r6] + ldrh r3, [r5] cmp r3, r0 - bne .L3428 -.L3432: - ldr r3, .L3508+16 - ldr r3, [r3, #2444] - cmp r5, r3 - bcc .L3426 - ldrh r3, [r6] + bne .L3503 +.L3507: + ldr r3, .L3583+16 + ldr r3, [r3, #2448] + cmp r4, r3 + bcc .L3501 + ldrh r3, [r5] mov r1, #0 - ldr r2, [r8, #-3548] + ldr r2, [r7, #-3544] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - ldrh r0, [r6] + ldrh r0, [r5] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3426 -.L3428: - add r5, r5, #1 - b .L3427 -.L3426: + b .L3501 +.L3503: + add r4, r4, #1 + b .L3502 +.L3501: mvn r3, #0 - strh r3, [r6] @ movhi -.L3424: - ldr r3, .L3508+68 + strh r3, [r5] @ movhi +.L3499: + ldr r3, .L3583+72 ldrh r3, [r3] cmp r3, #2 - ldrls r3, .L3508+32 - ldrlsh fp, [r3] - bls .L3434 -.L3433: - ldr r2, .L3508 + ldrls r3, .L3583+56 + ldrlsh r9, [r3] + bls .L3509 +.L3508: + ldr r2, .L3583 mov r1, #0 - str r1, [r2, #-564] - movw r2, #1980 - ldr r1, .L3508+20 - ldrh r0, [r1, r2] - cmp r0, #0 + str r1, [r2, #-560] + ldr r2, .L3583+20 + ldrh r0, [r2] + cmp r0, r1 addeq r0, r3, #1 - b .L3497 -.L3440: - mov r0, lr - b .L3497 -.L3504: - ldrh r10, [r5, #-14] - cmp r10, r4 - bne .L3361 - sub r3, r9, #3520 - ldr r2, [r9, #-2720] - ldrh r3, [r3, #-12] + b .L3572 +.L3513: + mov r0, #0 + bx lr +.L3515: + mov r0, ip + b .L3572 +.L3580: + ldrh r9, [r4, #-10] + cmp r9, r3 + bne .L3577 + sub r3, r8, #3520 + ldr r2, [r8, #-2716] + ldrh r3, [r3, #-8] cmp r3, #24 movcc r3, #5120 movcs r3, #1024 cmp r2, r3 - movls r4, r10 - bls .L3361 - ldr r1, .L3508+20 - movw r2, #1980 + movls fp, r9 + bls .L3436 + ldr r2, .L3583+20 mov r3, #0 - str r3, [r6, #-2720] - strh r3, [r1, r2] @ movhi + str r3, [r5, #-2716] + strh r3, [r2] @ movhi bl GetSwlReplaceBlock - cmp r0, r10 - mov r4, r0 - sub r10, r9, #2720 - bne .L3363 - ldrh r2, [r8, #-12] - ldrh r3, [r10, #-2] - cmp r2, r3 - bcs .L3364 + cmp r0, r9 + mov fp, r0 + bne .L3438 + sub r3, r8, #2704 + ldrh r1, [r7, #-8] + ldrh r2, [r3, #-14] + mov r9, r3 + cmp r1, r2 + movcs r2, #80 + strcsh r2, [r3, #-14] @ movhi + bcs .L3448 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 - cmp r3, r4 - beq .L3373 - ldr r2, [r9, #-568] - ldr fp, .L3508+16 + cmp r3, fp + beq .L3448 + ldr r2, [r8, #-564] + ldr r10, .L3583+16 cmp r2, #0 - add r1, fp, #2336 - bne .L3366 - ldrh r0, [r1] - cmp r0, #3 - beq .L3366 - ldr r0, [r9, #-3240] - cmp r0, #0 - bne .L3366 - ldr r0, [fp, #2308] - cmp r0, #0 - bne .L3366 - ldrb r0, [fp, #140] @ zero_extendqisi2 - cmp r0, #0 - beq .L3367 -.L3366: - ldr r2, [r6, #-3548] - mov r3, r3, asl #1 - ldrh r1, [r1] - ldrh r0, [r2, r3] - movw r3, #2386 - movw r2, #2316 - ldrh r3, [fp, r3] - ldrh r2, [fp, r2] + bne .L3441 + movw r1, #2340 + ldrh r1, [r10, r1] cmp r1, #3 + beq .L3441 + ldr r1, [r8, #-3236] + cmp r1, #0 + bne .L3441 + ldr r1, [r10, #2244] + cmp r1, #0 + bne .L3441 + ldrb r0, [r10, #144] @ zero_extendqisi2 + cmp r0, #0 + beq .L3442 +.L3441: + ldr r2, [r5, #-3544] + mov r3, r3, asl #1 + movw r0, #2340 + ldrh r0, [r10, r0] + ldrh r1, [r2, r3] + movw r3, #2390 + ldr r2, .L3583+24 + cmp r0, #3 + ldrh r3, [r10, r3] + ldrh r2, [r2] mul r2, r2, r3 moveq r3, r3, lsr #1 movne r3, #0 add r3, r2, r3 - cmp r0, r3 - bgt .L3369 + cmp r1, r3 + bgt .L3444 mov r0, #0 bl List_get_gc_head_node - ldr r3, [fp, #2444] - ldr r2, [r6, #-3376] + ldr r3, [r10, #2448] + ldr r2, [r5, #-3372] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movls r3, #160 - uxth r4, r0 - bls .L3500 - b .L3503 -.L3367: - ldr r2, [r9, #-3548] + uxth fp, r0 + bls .L3575 + b .L3579 +.L3442: + ldr r2, [r8, #-3544] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #7 - bhi .L3372 + bhi .L3447 bl List_get_gc_head_node - uxth r4, r0 -.L3503: + uxth fp, r0 +.L3579: mov r3, #128 -.L3500: - strh r3, [r10, #-2] @ movhi +.L3575: + strh r3, [r9, #-14] @ movhi movw r3, #65535 - cmp r4, r3 - beq .L3373 - b .L3363 -.L3369: + cmp fp, r3 + beq .L3448 + b .L3438 +.L3444: mov r3, #128 - b .L3501 -.L3372: + b .L3576 +.L3447: mov r3, #64 - b .L3501 -.L3364: - mov r3, #80 -.L3501: - strh r3, [r10, #-2] @ movhi - b .L3373 -.L3363: - ldr r0, [r6, #-3612] - mov r1, r4, asl #1 - ldr r3, [r6, #-3548] - ldrh r2, [r8, #-12] +.L3576: + strh r3, [r9, #-14] @ movhi + b .L3448 +.L3438: + ldr r0, [r5, #-3608] + mov r1, fp, asl #1 + ldr r3, [r5, #-3544] + ldrh r2, [r7, #-8] ldrh r3, [r3, r1] ldrh r1, [r0, r1] - ldr r0, .L3508+72 + ldr r0, .L3583+76 str r1, [sp] - ldrh r1, [r10, #-4] + ldr r1, .L3583+80 + ldrh r1, [r1] str r1, [sp, #4] - mov r1, r4 + mov r1, fp bl printk -.L3373: +.L3448: bl FtlGcReFreshBadBlk - b .L3361 -.L3497: + b .L3436 +.L3577: + mov fp, r3 + b .L3436 +.L3572: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3509: +.L3584: .align 2 -.L3508: +.L3583: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR2-2656 .word .LANCHOR2-3280 .word .LANCHOR0 - .word .LANCHOR4 - .word .LC152 + .word .LANCHOR4+1984 + .word .LANCHOR0+2320 + .word .LC157 .word .LANCHOR2-3520 - .word .LANCHOR0+2384 .word .LANCHOR2-3296 + .word .LANCHOR4 .word .LANCHOR2-3472 - .word .LANCHOR2-3288 - .word .LANCHOR2-2716 - .word .LANCHOR4+1982 - .word .LANCHOR0+2386 - .word .LANCHOR2-3432 - .word .LANCHOR0+2316 - .word .LANCHOR2-3532 - .word .LC153 + .word .LANCHOR2-3284 + .word .LANCHOR2-2712 + .word .LANCHOR0+2388 + .word .LANCHOR4+1986 + .word .LANCHOR0+2390 + .word .LANCHOR2-3428 + .word .LANCHOR2-3528 + .word .LC158 + .word .LANCHOR2-2720 .fnend .size ftl_do_gc, .-ftl_do_gc .align 2 @@ -20977,39 +21329,39 @@ FtlCacheWriteBack: stmfd sp!, {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, .L3554 - ldr r7, .L3554+4 - ldr r5, [r3, #1988] - ldr r3, [r7, #-3620] + ldr r3, .L3629 + ldr r7, .L3629+4 + ldr r5, [r3, #1992] + ldr r3, [r7, #-3616] cmp r3, #0 - bne .L3512 - ldr r4, .L3554+8 - ldr r1, [r4, #2436] + bne .L3587 + ldr r4, .L3629+8 + ldr r1, [r4, #2440] cmp r1, #0 - beq .L3512 - ldrb r6, [r4, #140] @ zero_extendqisi2 + beq .L3587 + ldrb r6, [r4, #144] @ zero_extendqisi2 mov r8, #0 - ldr r0, [r4, #2440] + ldr r0, [r4, #2444] mov r10, #36 cmp r6, #0 ldrb r3, [r5, #9] @ zero_extendqisi2 - ldr r9, .L3554+8 + ldr r9, .L3629+8 ldrneb r6, [r5, #8] @ zero_extendqisi2 subne r6, r6, #1 clzne r6, r6 movne r6, r6, lsr #5 mov r2, r6 bl FlashProgPages -.L3515: - ldr r3, [r4, #2436] +.L3590: + ldr r3, [r4, #2440] cmp r8, r3 - bcs .L3533 + bcs .L3608 mul fp, r10, r8 - ldr r3, [r9, #2440] + ldr r3, [r9, #2444] add r2, r3, fp ldr r3, [r3, fp] cmn r3, #1 - beq .L3536 + beq .L3611 ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] @@ -21018,99 +21370,99 @@ FtlCacheWriteBack: orrne r3, r3, #-2147483648 str r3, [sp, #4] bl log2phys - ldr r3, [r4, #2440] + ldr r3, [r4, #2444] add r3, r3, fp ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3519 + beq .L3594 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r7, #-3548] + ldr r2, [r7, #-3544] mov r3, r0, asl #1 mov fp, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3520 - ldr r0, .L3554+12 + bne .L3595 + ldr r0, .L3629+12 mov r1, fp bl printk -.L3520: +.L3595: mov r0, fp bl decrement_vpc_count -.L3519: +.L3594: add r8, r8, #1 - b .L3515 -.L3552: - ldr r6, .L3554+16 + b .L3590 +.L3627: + ldr r6, .L3629+16 movw r5, #16386 -.L3532: +.L3607: ldrh r3, [r6] cmp r3, #0 - beq .L3533 + beq .L3608 mov r0, #1 mov r1, r0 bl ftl_do_gc subs r5, r5, #1 - bne .L3532 -.L3533: + bne .L3607 +.L3608: mov r3, #0 - str r3, [r4, #2436] - b .L3512 -.L3536: - ldr fp, .L3554+8 + str r3, [r4, #2440] + b .L3587 +.L3611: + ldr fp, .L3629+8 mov r9, #0 -.L3516: - ldr r3, [r4, #2436] +.L3591: + ldr r3, [r4, #2440] cmp r9, r3 - bcs .L3552 + bcs .L3627 mov r8, #36 - ldr r3, [fp, #2440] + ldr r3, [fp, #2444] mul r8, r8, r9 mov r10, #0 mvn r2, #0 str r2, [r3, r8] -.L3522: - ldr r3, [r4, #2440] +.L3597: + ldr r3, [r4, #2444] add r2, r3, r8 ldr r3, [r3, r8] cmn r3, #1 - bne .L3553 + bne .L3628 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3523 - ldr r1, [r7, #-3548] + bne .L3598 + ldr r1, [r7, #-3544] mov r3, r3, asl #1 ldrh r0, [r5, #4] ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L3554+20 + ldr r3, .L3629+20 strb r10, [r5, #6] strh r10, [r5, #4] @ movhi ldrh r3, [r3] strh r3, [r5, #2] @ movhi -.L3523: +.L3598: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3524 + bne .L3599 mov r0, r5 bl allocate_new_data_superblock -.L3524: - ldr r3, [r7, #-3140] +.L3599: + ldr r3, [r7, #-3136] add r3, r3, #1 - str r3, [r7, #-3140] - ldr r3, [r4, #2440] + str r3, [r7, #-3136] + ldr r3, [r4, #2444] 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, #2440] + ldr r3, [r4, #2444] mov r2, r6 mov r1, #1 add r3, r3, r8 @@ -21119,17 +21471,17 @@ FtlCacheWriteBack: mov r0, r3 ldrb r3, [r5, #9] @ zero_extendqisi2 bl FlashProgPages - ldr r3, [r4, #2440] + ldr r3, [r4, #2444] ldr r3, [r3, r8] cmn r3, #1 - ldreq r2, .L3554+4 + ldreq r2, .L3629+4 moveq r3, #1 - streq r3, [r2, #-3620] - ldr r3, [r7, #-3620] + streq r3, [r2, #-3616] + ldr r3, [r7, #-3616] cmp r3, #0 - beq .L3522 - b .L3512 -.L3553: + beq .L3597 + b .L3587 +.L3628: ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] @@ -21138,43 +21490,43 @@ FtlCacheWriteBack: orrne r3, r3, #-2147483648 str r3, [sp, #4] bl log2phys - ldr r3, [r4, #2440] + ldr r3, [r4, #2444] add r8, r3, r8 ldr r3, [r8, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3529 + beq .L3604 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r7, #-3548] + ldr r2, [r7, #-3544] mov r3, r0, asl #1 mov r8, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3530 - ldr r0, .L3554+12 + bne .L3605 + ldr r0, .L3629+12 mov r1, r8 bl printk -.L3530: +.L3605: mov r0, r8 bl decrement_vpc_count -.L3529: +.L3604: add r9, r9, #1 - b .L3516 -.L3512: + b .L3591 +.L3587: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3555: +.L3630: .align 2 -.L3554: +.L3629: .word .LANCHOR4 .word .LANCHOR2 .word .LANCHOR0 - .word .LC154 - .word .LANCHOR2-2662 - .word .LANCHOR0+2384 + .word .LC159 + .word .LANCHOR2-2658 + .word .LANCHOR0+2388 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 @@ -21184,27 +21536,30 @@ FtlSysFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, lr} - .save {r3, lr} - ldr r3, .L3562 - ldr r3, [r3, #-3620] + ldr r3, .L3635 + ldr r3, [r3, #-3616] cmp r3, #0 - bne .L3557 - ldr r3, .L3562+4 - ldr r3, [r3, #504] - cmn r3, #1 - beq .L3557 + bne .L3634 + ldr r3, .L3635+4 + stmfd sp!, {r4, lr} + .save {r4, lr} + ldr r4, [r3, #504] + cmp r4, #1 + bne .L3632 bl FtlCacheWriteBack bl l2p_flush - mov r0, #1 + mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3557: +.L3632: mov r0, #0 - ldmfd sp!, {r3, pc} -.L3563: + ldmfd sp!, {r4, pc} +.L3634: + mov r0, #0 + bx lr +.L3636: .align 2 -.L3562: +.L3635: .word .LANCHOR2 .word .LANCHOR1 .fnend @@ -21218,17 +21573,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L3567 + ldr r3, .L3640 ldr r3, [r3, #504] cmp r3, #1 - bne .L3565 + bne .L3638 bl FtlSysFlush -.L3565: +.L3638: mov r0, #0 ldmfd sp!, {r3, pc} -.L3568: +.L3641: .align 2 -.L3567: +.L3640: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -21257,14 +21612,14 @@ rk_ftl_de_init: stmfd sp!, {r3, lr} .save {r3, lr} mov r1, #0 - ldr r0, .L3573 + ldr r0, .L3646 bl printk ldmfd sp!, {r3, lr} b ftl_deinit -.L3574: +.L3647: .align 2 -.L3573: - .word .LC155 +.L3646: + .word .LC160 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init .align 2 @@ -21299,100 +21654,103 @@ ftl_discard: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 - add r2, r0, r1 - ldr r4, .L3596 mov r6, r0 - mov r5, r1 - ldr r3, [r4, #2424] + ldr r8, .L3669 + mov r4, r1 + ldr r3, [r8, #2428] + cmp r1, r3 + cmpls r0, r3 + movcs r5, #1 + movcc r5, #0 + bcs .L3658 + add r2, r0, r1 cmp r2, r3 - mvnhi r0, #0 - bhi .L3578 - ldr r3, .L3596+4 - ldr r0, [r3, #504] - cmn r0, #1 - beq .L3578 + bhi .L3658 cmp r1, #31 - bls .L3587 - ldr r7, .L3596+8 - ldr r3, [r7, #-3620] + bls .L3656 + ldr r7, .L3669+4 + ldr r3, [r7, #-3616] cmp r3, #0 - bne .L3587 + movne r0, r5 + bne .L3651 bl FtlCacheWriteBack - movw r3, #2390 - ldrh r4, [r4, r3] + movw r3, #2394 + ldrh r5, [r8, r3] mov r0, r6 - mov r1, r4 + mov r1, r5 bl __aeabi_uidiv - smulbb r3, r0, r4 + smulbb r3, r0, r5 mov r8, r0 rsb r6, r3, r6 uxth r6, r6 cmp r6, #0 - beq .L3579 - rsb r4, r6, r4 + beq .L3652 + rsb r5, r6, r5 add r8, r0, #1 - cmp r4, r5 - movcs r4, r5 - uxth r4, r4 - rsb r5, r4, r5 -.L3579: - ldr r4, .L3596+12 + cmp r5, r4 + movcs r5, r4 + uxth r5, r5 + rsb r4, r5, r4 +.L3652: + ldr r5, .L3669+8 mvn r3, #0 - ldr r9, .L3596+16 + ldr r9, .L3669+12 str r3, [sp, #4] - mov r6, r4 -.L3580: - ldrh r3, [r4] - cmp r5, r3 - bcc .L3595 + mov r6, r5 +.L3653: + ldrh r3, [r5] + cmp r4, r3 + bcc .L3668 mov r0, r8 mov r1, sp mov r2, #0 bl log2phys ldr r3, [sp] cmn r3, #1 - beq .L3581 - ldr r3, [r9, #1992] + beq .L3654 + ldr r3, [r9, #1996] add r1, sp, #4 mov r2, #1 mov r0, r8 add r3, r3, #1 - str r3, [r9, #1992] - ldr r3, [r7, #-3364] + str r3, [r9, #1996] + ldr r3, [r7, #-3360] add r3, r3, #1 - str r3, [r7, #-3364] + str r3, [r7, #-3360] bl log2phys ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3581: +.L3654: ldrh r3, [r6] add r8, r8, #1 - rsb r5, r3, r5 - b .L3580 -.L3595: - ldr r3, .L3596+16 - ldr r2, [r3, #1992] + rsb r4, r3, r4 + b .L3653 +.L3668: + ldr r3, .L3669+12 + ldr r2, [r3, #1996] cmp r2, #32 - bls .L3587 + bls .L3656 mov r2, #0 - str r2, [r3, #1992] + str r2, [r3, #1996] bl l2p_flush bl FtlVpcTblFlush -.L3587: +.L3656: mov r0, #0 -.L3578: + b .L3651 +.L3658: + mvn r0, #0 +.L3651: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3597: +.L3670: .align 2 -.L3596: +.L3669: .word .LANCHOR0 - .word .LANCHOR1 .word .LANCHOR2 - .word .LANCHOR0+2390 + .word .LANCHOR0+2394 .word .LANCHOR4 .fnend .size ftl_discard, .-ftl_discard @@ -21417,85 +21775,84 @@ ftl_read: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, r1 - ldr r1, .L3646 + ldr r1, .L3720 .pad #84 sub sp, sp, #84 - ldr r4, [r1, #504] - cmn r4, #1 - moveq r0, r4 - beq .L3600 + ldr r1, [r1, #504] + cmp r1, #1 + bne .L3697 cmp r0, #16 mov r8, r3 - str r2, [sp, #36] - bne .L3601 + mov r9, r2 + bne .L3674 mov r1, r2 add r0, r5, #256 mov r2, r3 bl FtlVendorPartRead - b .L3600 -.L3601: - ldr r3, [sp, #36] - add r3, r5, r3 - str r3, [sp, #40] - ldr r3, .L3646+4 - ldr r1, [sp, #40] - ldr r2, [r3, #2424] - cmp r1, r2 - mvnhi r0, #0 - bhi .L3600 - movw r2, #2390 + b .L3673 +.L3674: + ldr r2, .L3720+4 + ldr r3, [r2, #2428] + cmp r9, r3 + cmpls r5, r3 + bcs .L3697 + add r1, r5, r9 + str r1, [sp, #40] + cmp r1, r3 + bhi .L3697 + movw r3, #2394 mov r0, r5 - ldrh r4, [r3, r2] + ldrh r4, [r2, r3] mov r1, r4 bl __aeabi_uidiv mov r1, r4 ldr r3, [sp, #40] - mov r10, r0 + str r0, [sp, #32] sub r0, r3, #1 bl __aeabi_uidiv - rsb r3, r10, #1 + ldr r3, [sp, #32] + str r0, [sp, #36] + rsb r3, r3, #1 add r3, r3, r0 str r3, [sp, #28] - ldr r3, .L3646+8 - ldr r1, [sp, #36] - str r0, [sp, #32] - mov r0, r10 - ldr r2, [r3, #-3340] - add r2, r1, r2 + ldr r3, .L3720+8 ldr r1, [sp, #28] - str r2, [r3, #-3340] - ldr r2, [r3, #-3368] + ldr r0, [sp, #32] + ldr r2, [r3, #-3336] + add r2, r9, r2 + str r2, [r3, #-3336] + ldr r2, [r3, #-3364] add r2, r1, r2 - ldr r1, [sp, #32] - str r2, [r3, #-3368] + ldr r1, [sp, #36] + str r2, [r3, #-3364] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3602 + beq .L3675 bl FtlCacheWriteBack -.L3602: - ldr r4, .L3646+8 - mov r9, #0 - mov r6, r10 - mov r7, r9 - str r9, [sp, #48] - str r9, [sp, #52] -.L3603: +.L3675: + ldr r6, [sp, #32] + mov r10, #0 + ldr r4, .L3720+8 + mov r7, r10 + str r10, [sp, #48] + str r10, [sp, #52] +.L3676: ldr r3, [sp, #28] cmp r3, #0 - beq .L3645 + beq .L3719 mov r0, r6 add r1, sp, #76 mov r2, #0 bl log2phys ldr r3, [sp, #76] cmn r3, #1 - bne .L3641 + bne .L3715 mov fp, #0 -.L3604: - ldr r3, .L3646+12 +.L3677: + ldr r3, .L3720+12 ldrh r0, [r3] cmp fp, r0 - bcs .L3608 + bcs .L3681 mla r0, r0, r6, fp ldr r2, [sp, #40] cmp r0, r5 @@ -21504,65 +21861,65 @@ ftl_read: cmp r0, r2 movcs r3, #0 cmp r3, #0 - beq .L3606 + beq .L3679 rsb r0, r5, r0 mov r1, #0 mov r2, #512 add r0, r8, r0, asl #9 bl ftl_memset -.L3606: +.L3679: add fp, fp, #1 - b .L3604 -.L3641: - ldr r2, [r4, #-540] + b .L3677 +.L3715: + ldr r2, [r4, #-536] mov fp, #36 - cmp r6, r10 mla fp, fp, r7, r2 str r3, [fp, #4] - bne .L3609 - ldr r3, [r4, #-512] + ldr r3, [sp, #32] + cmp r6, r3 + bne .L3682 + ldr r3, [r4, #-508] mov r0, r5 str r3, [fp, #8] - ldr r3, .L3646+12 + ldr r3, .L3720+12 ldrh ip, [r3] mov r1, ip str ip, [sp, #44] bl __aeabi_uidivmod ldr ip, [sp, #44] - ldr r2, [sp, #36] - rsb r3, r1, ip str r1, [sp, #56] - cmp r3, r2 - movcs r3, r2 + rsb r3, r1, ip + cmp r3, r9 + movcs r3, r9 cmp r3, ip str r3, [sp, #48] streq r8, [fp, #8] - b .L3610 -.L3609: - ldr r3, [sp, #32] + b .L3683 +.L3682: + ldr r3, [sp, #36] cmp r6, r3 - bne .L3611 - ldr r3, [r4, #-508] + bne .L3684 + ldr r3, [r4, #-504] ldr r1, [sp, #40] str r3, [fp, #8] - ldr r3, .L3646+12 + ldr r3, .L3720+12 ldrh r2, [r3] mul r3, r2, r6 - rsb r9, r3, r1 - cmp r9, r2 - bne .L3610 - b .L3643 -.L3611: - ldr r3, .L3646+12 + rsb r10, r3, r1 + cmp r10, r2 + bne .L3683 + b .L3717 +.L3684: + ldr r3, .L3720+12 ldrh r3, [r3] mul r3, r3, r6 -.L3643: +.L3717: rsb r3, r5, r3 add r3, r8, r3, asl #9 str r3, [fp, #8] -.L3610: - ldr r3, .L3646+16 - ldr r2, [r4, #-500] +.L3683: + ldr r3, .L3720+16 + ldr r2, [r4, #-496] str r6, [fp, #16] ldrh r3, [r3] mul r3, r3, r7 @@ -21570,20 +21927,20 @@ ftl_read: bic r3, r3, #3 add r3, r2, r3 str r3, [fp, #12] -.L3608: +.L3681: ldr r3, [sp, #28] add r6, r6, #1 subs r3, r3, #1 str r3, [sp, #28] - beq .L3612 - ldr r3, .L3646+20 + beq .L3685 + ldr r3, .L3720+20 ldrh r3, [r3] cmp r7, r3, asl #3 - bne .L3603 -.L3612: + bne .L3676 +.L3685: cmp r7, #0 - beq .L3603 - ldr r0, [r4, #-540] + beq .L3676 + ldr r0, [r4, #-536] mov r1, r7 mov r2, #0 bl FlashReadPages @@ -21593,63 +21950,64 @@ ftl_read: ldr r3, [sp, #48] mov r3, r3, asl #9 str r3, [sp, #64] - mov r3, r9, asl #9 + mov r3, r10, asl #9 str r3, [sp, #68] mov r3, #0 str r3, [sp, #44] -.L3619: +.L3692: ldr r3, [sp, #44] mov ip, #36 + ldr r1, [sp, #32] mul fp, ip, r3 - ldr r3, [r4, #-540] + ldr r3, [r4, #-536] add r3, r3, fp ldr r2, [r3, #16] - cmp r2, r10 - bne .L3614 + cmp r2, r1 + bne .L3687 ldr r1, [r3, #8] - ldr r3, [r4, #-512] + ldr r3, [r4, #-508] cmp r1, r3 - bne .L3615 + bne .L3688 ldr r3, [sp, #60] mov r0, r8 ldr r2, [sp, #64] add r1, r1, r3 - b .L3644 -.L3614: - ldr r1, [sp, #32] + b .L3718 +.L3687: + ldr r1, [sp, #36] cmp r2, r1 - bne .L3615 + bne .L3688 ldr r1, [r3, #8] - ldr r3, [r4, #-508] + ldr r3, [r4, #-504] cmp r1, r3 - bne .L3615 - ldr r3, .L3646+12 + bne .L3688 + ldr r3, .L3720+12 ldr r2, [sp, #68] ldrh r0, [r3] - ldr r3, [sp, #32] + ldr r3, [sp, #36] mul r0, r0, r3 rsb r0, r5, r0 add r0, r8, r0, asl #9 -.L3644: +.L3718: bl ftl_memcpy -.L3615: - ldr r2, [r4, #-540] +.L3688: + ldr r2, [r4, #-536] add r3, r2, fp ldr r1, [r2, fp] cmn r1, #1 streq r1, [sp, #52] - ldreq r2, [r4, #-3164] + ldreq r2, [r4, #-3160] addeq r2, r2, #1 - streq r2, [r4, #-3164] + streq r2, [r4, #-3160] ldr r2, [r3, #12] ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L3617 - ldr r2, [r4, #-3164] - ldr r0, .L3646+24 + beq .L3690 + ldr r2, [r4, #-3160] + ldr r0, .L3720+24 add r2, r2, #1 - str r2, [r4, #-3164] + str r2, [r4, #-3160] ldr lr, [r3, #12] ldr r2, [r3, #8] ldr r1, [lr, #4] @@ -21666,48 +22024,51 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [lr] bl printk -.L3617: - ldr r3, [r4, #-540] +.L3690: + ldr r3, [r4, #-536] add r2, r3, fp ldr r3, [r3, fp] cmp r3, #256 - bne .L3618 + bne .L3691 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3618: +.L3691: ldr r3, [sp, #44] add r3, r3, #1 str r3, [sp, #44] cmp r3, r7 - bne .L3619 + bne .L3692 mov r7, #0 - b .L3603 -.L3645: - ldr r3, .L3646+28 - ldrh r3, [r3, #-6] + b .L3676 +.L3719: + ldr r3, .L3720+28 + ldrh r3, [r3, #-2] cmp r3, #0 - beq .L3621 + beq .L3694 ldr r0, [sp, #28] mov r1, #1 bl ftl_do_gc -.L3621: +.L3694: ldr r0, [sp, #52] -.L3600: + b .L3673 +.L3697: + mvn r0, #0 +.L3673: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3647: +.L3721: .align 2 -.L3646: +.L3720: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+2390 - .word .LANCHOR0+2396 - .word .LANCHOR0+2316 - .word .LC144 + .word .LANCHOR0+2394 + .word .LANCHOR0+2400 + .word .LANCHOR0+2320 + .word .LC148 .word .LANCHOR2-2656 .fnend .size ftl_read, .-ftl_read @@ -21743,23 +22104,23 @@ FlashBootVendorRead: mov r6, r0 mov r5, r1 bl rknand_device_lock - ldr r3, .L3654 + ldr r3, .L3728 ldr r3, [r3, #504] cmp r3, #1 mvnne r4, #0 - bne .L3651 + bne .L3725 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_read mov r4, r0 -.L3651: +.L3725: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L3655: +.L3729: .align 2 -.L3654: +.L3728: .word .LANCHOR1 .fnend .size FlashBootVendorRead, .-FlashBootVendorRead @@ -21826,60 +22187,60 @@ FtlInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mvn r3, #0 - ldr r2, .L3677 - ldr r7, .L3677+4 - ldr r5, .L3677+8 - ldr r6, .L3677+12 - ldr r1, .L3677+16 - ldr r0, .L3677+20 + ldr r2, .L3751 + ldr r7, .L3751+4 + ldr r5, .L3751+8 + ldr r6, .L3751+12 + ldr r1, .L3751+16 + ldr r0, .L3751+20 str r3, [r7, #504] mov r3, #0 - str r3, [r2, #1996] - str r3, [r5, #-3620] + str r3, [r2, #2000] + str r3, [r5, #-3616] bl printk - add r0, r6, #112 + add r0, r6, #116 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldr r3, [r6, #2320] + ldr r3, [r6, #2324] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - ldrne r0, .L3677+24 - bne .L3676 + ldrne r0, .L3751+24 + bne .L3750 bl FtlSysBlkInit subs r4, r0, #0 - beq .L3663 - ldr r0, .L3677+28 -.L3676: - ldr r1, .L3677+32 + beq .L3737 + ldr r0, .L3751+28 +.L3750: + ldr r1, .L3751+32 bl printk - b .L3662 -.L3663: + b .L3736 +.L3737: sub r5, r5, #3520 mov r1, #1 str r1, [r7, #504] bl ftl_do_gc - ldrh r5, [r5, #-12] + ldrh r5, [r5, #-8] cmp r5, #15 - bhi .L3664 - ldr r6, .L3677+36 - ldr r7, .L3677+40 + bhi .L3738 + ldr r6, .L3751+36 + ldr r7, .L3751+40 sub r8, r6, #244 -.L3667: +.L3741: ldrh r3, [r6] movw r2, #65535 cmp r3, r2 - bne .L3665 + bne .L3739 ldrh r2, [r7] cmp r2, r3 - bne .L3665 + bne .L3739 and r0, r4, #63 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3665: +.L3739: mov r0, #1 mov r1, r0 bl ftl_do_gc @@ -21889,39 +22250,39 @@ FtlInit: ldrh r2, [r8] add r3, r5, #2 cmp r2, r3 - bhi .L3662 + bhi .L3736 add r4, r4, #1 cmp r4, #4096 - bne .L3667 - b .L3662 -.L3664: - ldrb r3, [r6, #140] @ zero_extendqisi2 + bne .L3741 + b .L3736 +.L3738: + ldrb r3, [r6, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L3662 + beq .L3736 mov r4, #128 -.L3669: +.L3743: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L3669 -.L3662: + bne .L3743 +.L3736: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3678: +.L3752: .align 2 -.L3677: +.L3751: .word .LANCHOR4 .word .LANCHOR1 .word .LANCHOR2 .word .LANCHOR0 .word .LC77 .word .LC76 - .word .LC156 - .word .LC157 - .word .LANCHOR3+108 - .word .LANCHOR2-3288 - .word .LANCHOR2-2670 + .word .LC161 + .word .LC162 + .word .LANCHOR3+240 + .word .LANCHOR2-3284 + .word .LANCHOR2-2666 .fnend .size FtlInit, .-FtlInit .align 2 @@ -21935,46 +22296,47 @@ rk_ftl_init: .save {r4, r5, r6, lr} mov r0, #2048 bl ftl_malloc - ldr r6, .L3684 - ldr r4, .L3684+4 + ldr r6, .L3758 + ldr r4, .L3758+4 mov r5, #0 - ldr r1, .L3684+8 - str r5, [r6, #2004] - str r0, [r6, #2000] - mov r0, r4 - str r5, [r0, #1680]! + ldr r1, .L3758+8 + str r5, [r6, #2008] + str r5, [r4, #1684] + str r0, [r6, #2004] + ldr r0, .L3758+12 bl rknand_get_reg_addr - ldr r3, [r4, #1680] + ldr r3, [r4, #1684] cmp r3, r5 - beq .L3682 + beq .L3756 bl rk_nandc_irq_init mov r1, r5 mov r2, r5 mov r3, #2048 - ldr r0, [r6, #2000] + ldr r0, [r6, #2004] bl FlashSramLoadStore bl rknand_flash_cs_init - ldr r0, [r4, #1680] + ldr r0, [r4, #1684] bl FlashInit subs r4, r0, #0 - bne .L3681 + bne .L3755 bl FtlInit -.L3681: +.L3755: mov r1, r4 - ldr r0, .L3684+12 + ldr r0, .L3758+16 bl printk mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L3682: +.L3756: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L3685: +.L3759: .align 2 -.L3684: +.L3758: .word .LANCHOR4 .word .LANCHOR2 - .word .LANCHOR4+2004 - .word .LC158 + .word .LANCHOR4+2008 + .word .LANCHOR2+1684 + .word .LC163 .fnend .size rk_ftl_init, .-rk_ftl_init .align 2 @@ -21984,72 +22346,71 @@ ftl_fix_nand_power_lost_error: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L3777 + ldrb r3, [r3, #144] @ zero_extendqisi2 + cmp r3, #0 + bxeq lr stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + movw r3, #1848 + ldr r8, .L3777+4 .pad #52 sub sp, sp, #52 - ldr r5, .L3702 - ldrb r3, [r5, #140] @ zero_extendqisi2 - cmp r3, #0 - beq .L3686 - ldr r8, .L3702+4 - movw r3, #1844 - ldr r4, .L3702+8 - movw r9, #4097 - ldr r0, .L3702+12 + ldr r4, .L3777+8 + movw r5, #4097 + ldr r0, .L3777+12 ldrh r7, [r8, r3] - ldr r3, [r4, #-3548] + ldr r3, [r4, #-3544] mov r6, r7, asl #1 mov r1, r7 ldrh r2, [r3, r6] bl printk sub r3, r4, #3520 - ldrh r0, [r3, #-8] + ldrh r0, [r3, #-4] bl FtlGcRefreshOpenBlock sub r3, r4, #3472 - ldrh r0, [r3, #-8] + ldrh r0, [r3, #-4] bl FtlGcRefreshOpenBlock - ldr r0, .L3702+16 + ldr r0, .L3777+16 bl allocate_new_data_superblock - ldr r0, .L3702+20 + ldr r0, .L3777+20 bl allocate_new_data_superblock -.L3688: - subs r9, r9, #1 - beq .L3692 +.L3762: + subs r5, r5, #1 + beq .L3766 mov r0, #1 mov r1, r0 bl ftl_do_gc - ldr r3, [r4, #-3548] + ldr r3, [r4, #-3544] ldrh r3, [r3, r6] cmp r3, #0 - bne .L3688 -.L3692: - ldr r3, [r4, #-3548] + bne .L3762 +.L3766: + ldr r3, [r4, #-3544] mov r1, r7 - ldr r0, .L3702+12 + ldr r0, .L3777+12 ldrh r2, [r3, r6] bl printk - ldr r3, [r4, #-3548] - ldrh r10, [r3, r6] - cmp r10, #0 - bne .L3690 + ldr r3, [r4, #-3544] + ldrh r5, [r3, r6] + cmp r5, #0 + bne .L3764 add r0, sp, #48 + movw r10, #65535 mov fp, #36 strh r7, [r0, #-48]! @ movhi bl make_superblock - movw r3, #2316 - ldrh lr, [r5, r3] - mov r5, r10 - ldr r3, .L3702+8 - ldr r9, [r3, #-3616] - mov r3, r10 + ldr r3, .L3777+24 + ldrh lr, [r3] + ldr r3, .L3777+8 + ldr r9, [r3, #-3612] + mov r3, r5 mov ip, r3 - movw r10, #65535 add r0, sp, #14 -.L3693: +.L3767: uxth r2, r3 cmp r2, lr - bcs .L3701 + bcs .L3776 ldrh r2, [r0, #2]! add r3, r3, #1 cmp r2, r10 @@ -22059,39 +22420,39 @@ ftl_fix_nand_power_lost_error: uxthne r5, r5 stmneib r1, {r2, ip} strne ip, [r1, #12] - b .L3693 -.L3701: - ldr r3, [r4, #-3548] + b .L3767 +.L3776: + ldr r3, [r4, #-3544] mov r1, r7 - ldr r0, .L3702+24 + ldr r0, .L3777+28 ldrh r2, [r3, r6] bl printk mov r1, #0 mov r2, r5 - ldr r0, [r4, #-3616] + ldr r0, [r4, #-3612] bl FlashEraseBlocks - ldr r0, [r4, #-3616] + ldr r0, [r4, #-3612] mov r1, #1 mov r2, r5 bl FlashEraseBlocks -.L3690: - movw r3, #1844 +.L3764: + movw r3, #1848 mvn r2, #0 strh r2, [r8, r3] @ movhi -.L3686: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3703: +.L3778: .align 2 -.L3702: +.L3777: .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR2 - .word .LC159 - .word .LANCHOR2-3528 - .word .LANCHOR2-3480 - .word .LC160 + .word .LC164 + .word .LANCHOR2-3524 + .word .LANCHOR2-3476 + .word .LANCHOR0+2320 + .word .LC165 .fnend .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .align 2 @@ -22116,37 +22477,39 @@ ftl_write: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #100 sub sp, sp, #100 - ldr r10, .L3778 + ldr r10, .L3854 str r3, [sp, #4] - ldr r3, [r10, #-3620] + ldr r3, [r10, #-3616] cmp r3, #0 - bne .L3746 + bne .L3821 mov r8, r2 - ldr r2, .L3778+4 + ldr r2, .L3854+4 ldr r2, [r2, #504] - cmn r2, #1 - moveq r0, r3 - beq .L3706 + cmp r2, #1 + movne r0, r3 + bne .L3781 cmp r0, #16 mov r7, r1 - bne .L3707 + bne .L3782 add r0, r1, #256 ldr r2, [sp, #4] mov r1, r8 bl FtlVendorPartWrite - b .L3706 -.L3707: - ldr fp, .L3778+8 + b .L3781 +.L3782: + ldr fp, .L3854+8 + ldr r3, [fp, #2428] + cmp r8, r3 + cmpls r1, r3 + bcs .L3824 add r5, r1, r8 - ldr r3, [fp, #2424] cmp r5, r3 - mvnhi r0, #0 - bhi .L3706 - ldr r6, .L3778+12 + bhi .L3824 + ldr r6, .L3854+12 mov r3, #2048 mov r0, r1 - str r3, [r6, #2008] - movw r3, #2390 + str r3, [r6, #2012] + movw r3, #2394 ldrh r4, [fp, r3] mov r1, r4 bl __aeabi_uidiv @@ -22161,35 +22524,35 @@ ftl_write: add r3, r5, #1 str r3, [sp] ldr r2, [sp] - ldr r3, [r10, #-3360] + ldr r3, [r10, #-3356] add r3, r2, r3 - ldr r2, [fp, #2436] - str r3, [r10, #-3360] - ldr r3, [r10, #-3344] + ldr r2, [fp, #2440] + str r3, [r10, #-3356] + ldr r3, [r10, #-3340] add r3, r8, r3 - str r3, [r10, #-3344] + str r3, [r10, #-3340] movcs r3, #1 movcc r3, #0 cmp r2, #0 str r3, [sp, #20] - beq .L3709 + beq .L3784 mov r3, #36 - ldr r9, [fp, #2440] + ldr r9, [fp, #2444] mul r3, r3, r2 ldr r2, [sp, #8] sub r3, r3, #36 add r9, r9, r3 ldr r3, [r9, #16] cmp r2, r3 - bne .L3710 - ldr r3, [r10, #-3356] + bne .L3785 + ldr r3, [r10, #-3352] mov r1, r4 mov r0, r7 add r3, r3, #1 - str r3, [r10, #-3356] - ldr r3, [r6, #2012] + str r3, [r10, #-3352] + ldr r3, [r6, #2016] add r3, r3, #1 - str r3, [r6, #2012] + str r3, [r6, #2016] bl __aeabi_uidivmod ldr r0, [r9, #8] rsb r4, r1, r4 @@ -22201,11 +22564,11 @@ ftl_write: mov r2, r10 bl ftl_memcpy cmp r5, #0 - bne .L3711 - ldr r3, [r6, #2012] + bne .L3786 + ldr r3, [r6, #2016] cmp r3, #2 - ble .L3746 -.L3711: + ble .L3821 +.L3786: ldr r3, [sp, #4] rsb r8, r4, r8 add r7, r7, r4 @@ -22215,73 +22578,73 @@ ftl_write: ldr r3, [sp, #8] add r3, r3, #1 str r3, [sp, #8] -.L3710: +.L3785: mov r3, #0 - str r3, [r6, #2012] -.L3709: + str r3, [r6, #2016] +.L3784: ldr r0, [sp, #8] ldr r1, [sp, #28] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3712 + beq .L3787 bl FtlCacheWriteBack -.L3712: - ldr r5, .L3778+16 +.L3787: + ldr r5, .L3854+16 mov r3, #0 - ldr r4, .L3778+8 + ldr r4, .L3854+8 str r3, [sp, #12] - str r5, [r6, #1988] + str r5, [r6, #1992] ldr r6, [sp, #8] mov r10, r4 str r3, [sp, #32] -.L3713: +.L3788: ldr r3, [sp] cmp r3, #0 - beq .L3777 + beq .L3853 ldrh r2, [r5, #4] cmp r2, #0 - bne .L3714 - ldr r3, .L3778+16 - ldr r9, .L3778+4 + bne .L3789 + ldr r3, .L3854+16 + ldr r9, .L3854+4 cmp r5, r3 - bne .L3715 + bne .L3790 add r0, r3, #48 ldrh r5, [r0, #4] cmp r5, #0 - bne .L3716 + bne .L3791 bl allocate_new_data_superblock - str r5, [r9, #3356] -.L3716: - ldr r0, .L3778+16 + str r5, [r9, #3452] +.L3791: + ldr r0, .L3854+16 bl allocate_new_data_superblock - ldr r3, [r9, #3356] + ldr r3, [r9, #3452] cmp r3, #0 - ldrne r5, .L3778+20 - bne .L3717 -.L3718: - ldr r5, .L3778+16 - b .L3717 -.L3715: + ldrne r5, .L3854+20 + bne .L3792 +.L3793: + ldr r5, .L3854+16 + b .L3792 +.L3790: ldrh r3, [r3, #4] - str r2, [r9, #3356] + str r2, [r9, #3452] cmp r3, #0 - bne .L3718 + bne .L3793 mov r0, r5 bl allocate_new_data_superblock -.L3717: +.L3792: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3719 + bne .L3794 mov r0, r5 bl allocate_new_data_superblock -.L3719: - ldr r3, .L3778+12 - str r5, [r3, #1988] -.L3714: - ldr r2, .L3778 - ldr r1, [r4, #2436] +.L3794: + ldr r3, .L3854+12 + str r5, [r3, #1992] +.L3789: + ldr r2, .L3854 + ldr r1, [r4, #2440] ldrh r3, [r5, #4] - ldr r2, [r2, #-544] + ldr r2, [r2, #-540] rsb r2, r1, r2 cmp r3, r2 movcs r3, r2 @@ -22290,15 +22653,15 @@ ftl_write: movcs r3, r2 str r3, [sp, #44] mov r3, #0 -.L3775: +.L3851: str r3, [sp, #16] ldr r3, [sp, #16] ldr r2, [sp, #44] cmp r3, r2 - beq .L3721 + beq .L3796 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3721 + beq .L3796 ldr r3, [sp, #28] ldr r2, [sp, #16] rsb ip, r3, r6 @@ -22310,14 +22673,14 @@ ftl_write: moveq r3, #0 andne r3, r3, #1 cmp r3, #0 - beq .L3722 - ldr r3, .L3778+24 + beq .L3797 + ldr r3, .L3854+24 ldrh r2, [r3] add r3, r8, r7 mls r3, r2, r6, r3 cmp r3, r2 - bne .L3721 -.L3722: + bne .L3796 +.L3797: add r1, sp, #56 mov r2, #0 mov r0, r6 @@ -22325,27 +22688,27 @@ ftl_write: bl log2phys mov r0, r5 bl get_new_active_ppa - ldr r2, [r4, #2436] - ldr r1, [r4, #2440] + ldr r2, [r4, #2440] + ldr r1, [r4, #2444] mov r3, #36 - ldr fp, .L3778+28 + ldr fp, .L3854+28 mla r1, r3, r2, r1 ldrh r2, [fp] str r6, [r1, #16] str r3, [sp, #48] - ldr r3, [r4, #2436] + ldr r3, [r4, #2440] str r0, [r1, #4] - ldr r0, .L3778 + ldr r0, .L3854 mul lr, r3, r2 bic r3, lr, #3 str r3, [sp, #36] - ldr r3, [r0, #-496] + ldr r3, [r0, #-492] ldr ip, [sp, #36] ldrh lr, [fp, #-2] add r9, r3, ip str r3, [sp, #40] - ldr r3, [r4, #2436] - ldr r0, [r0, #-516] + ldr r3, [r4, #2440] + ldr r0, [r0, #-512] str r9, [r1, #12] mul lr, r3, lr bic lr, lr, #3 @@ -22362,10 +22725,10 @@ ftl_write: str r3, [sp, #24] orrs r3, r3, ip ldr r3, [sp, #48] - beq .L3723 + beq .L3798 ldr r3, [sp, #24] cmp r3, #0 - beq .L3724 + beq .L3799 ldrh fp, [fp, #-6] mov r0, r7 mov r1, fp @@ -22377,11 +22740,11 @@ ftl_write: movcc r3, fp movcs r3, r8 str r3, [sp, #12] - b .L3725 -.L3724: + b .L3800 +.L3799: cmp ip, #0 - beq .L3725 - ldr r2, .L3778+24 + beq .L3800 + ldr r2, .L3854+24 add r3, r8, r7 ldrh r2, [r2] smulbb r2, r2, r6 @@ -22390,17 +22753,17 @@ ftl_write: str r3, [sp, #12] ldr r3, [sp, #24] str r3, [sp, #32] -.L3725: - ldr r3, .L3778+24 +.L3800: + ldr r3, .L3854+24 ldr r2, [sp, #12] ldrh r3, [r3] cmp r2, r3 - bne .L3726 + bne .L3801 ldr r3, [sp, #24] - ldr r0, [r10, #2440] + ldr r0, [r10, #2444] cmp r3, #0 moveq r3, r2 - ldr r2, [r10, #2436] + ldr r2, [r10, #2440] muleq r1, r6, r3 ldreq r3, [sp, #4] ldrne r1, [sp, #4] @@ -22411,20 +22774,20 @@ ftl_write: mov r3, #36 mla r3, r3, r2, r0 strne r1, [r3, #8] - bne .L3729 + bne .L3804 ldr r0, [r3, #8] - ldr r3, .L3778+32 + ldr r3, .L3854+32 ldrh r2, [r3] - b .L3773 -.L3726: + b .L3849 +.L3801: ldr r2, [sp, #56] mov r3, #36 cmn r2, #1 - beq .L3730 - ldr r1, [r4, #2440] + beq .L3805 + ldr r1, [r4, #2444] add r0, sp, #60 str r2, [sp, #64] - ldr r2, [r4, #2436] + ldr r2, [r4, #2440] str r6, [sp, #76] mla r3, r3, r2, r1 mov r1, #1 @@ -22436,78 +22799,78 @@ ftl_write: bl FlashReadPages ldr r3, [sp, #60] cmn r3, #1 - ldr r3, .L3778 - ldreq r2, [r3, #-3164] + ldr r3, .L3854 + ldreq r2, [r3, #-3160] addeq r2, r2, #1 - streq r2, [r3, #-3164] - beq .L3733 + streq r2, [r3, #-3160] + beq .L3808 ldr r2, [r9, #8] cmp r2, r6 - beq .L3733 - ldr r2, [r3, #-3164] - ldr r0, .L3778+36 + beq .L3808 + ldr r2, [r3, #-3160] + ldr r0, .L3854+36 add r2, r2, #1 - str r2, [r3, #-3164] + str r2, [r3, #-3160] mov r2, r6 ldr r1, [r9, #8] bl printk - b .L3733 -.L3730: - ldr r2, [r4, #2436] - ldr r1, [r4, #2440] + b .L3808 +.L3805: + ldr r2, [r4, #2440] + ldr r1, [r4, #2444] mla r3, r3, r2, r1 mov r1, #0 ldr r0, [r3, #8] - ldr r3, .L3778+32 + ldr r3, .L3854+32 ldrh r2, [r3] bl ftl_memset -.L3733: +.L3808: ldr r3, [sp, #24] cmp r3, #0 mov r3, #36 - beq .L3734 - ldr r1, [r4, #2440] - ldr r2, [r4, #2436] + beq .L3809 + ldr r1, [r4, #2444] + ldr r2, [r4, #2440] mla r3, r3, r2, r1 ldr r1, [sp, #4] ldr r0, [r3, #8] ldr r3, [sp, #32] add r0, r0, r3, asl #9 - b .L3776 -.L3734: - ldr r1, [r4, #2436] - ldr r2, [r4, #2440] + b .L3852 +.L3809: + ldr r1, [r4, #2440] + ldr r2, [r4, #2444] mla r3, r3, r1, r2 - ldr r2, .L3778+24 + ldr r2, .L3854+24 ldrh r1, [r2] ldr r0, [r3, #8] mul r1, r1, r6 ldr r3, [sp, #4] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3776: +.L3852: ldr r3, [sp, #12] mov r2, r3, asl #9 - b .L3773 -.L3723: + b .L3849 +.L3798: ldr r2, [sp, #20] cmp r2, #0 - ldr r2, [r4, #2436] - beq .L3735 - ldr r1, [r4, #2440] + ldr r2, [r4, #2440] + beq .L3810 + ldr r1, [r4, #2444] mla r3, r3, r2, r1 - ldr r2, .L3778+24 + ldr r2, .L3854+24 ldrh fp, [r2] ldr r2, [sp, #4] mul fp, fp, r6 rsb fp, r7, fp add fp, r2, fp, asl #9 str fp, [r3, #8] - b .L3729 -.L3735: - ldr r0, [r4, #2440] + b .L3804 +.L3810: + ldr r0, [r4, #2444] mla r3, r3, r2, r0 - ldr r2, .L3778+24 + ldr r2, .L3854+24 ldrh r1, [r2] ldrh r2, [fp, #-2] ldr r0, [r3, #8] @@ -22515,99 +22878,99 @@ ftl_write: ldr r3, [sp, #4] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3773: +.L3849: bl ftl_memcpy -.L3729: - ldr r3, .L3778+40 +.L3804: + ldr r3, .L3854+40 ldr r2, [sp, #40] ldr r1, [sp, #36] strh r3, [r2, r1] @ movhi - ldr r2, .L3778 + ldr r2, .L3854 str r6, [r9, #8] add r6, r6, #1 - ldr r3, [r2, #-3332] + ldr r3, [r2, #-3328] str r3, [r9, #4] add r3, r3, #1 cmn r3, #1 moveq r3, #0 - str r3, [r2, #-3332] + str r3, [r2, #-3328] ldr r3, [sp, #56] str r3, [r9, #12] ldrh r3, [r5] strh r3, [r9, #2] @ movhi - ldr r3, [r4, #2436] + ldr r3, [r4, #2440] add r3, r3, #1 - str r3, [r4, #2436] + str r3, [r4, #2440] ldr r3, [sp, #16] add r3, r3, #1 - b .L3775 -.L3721: + b .L3851 +.L3796: ldr r3, [sp] ldr r2, [sp, #16] ldr r1, [sp, #20] rsb r3, r2, r3 - ldr r2, .L3778 + ldr r2, .L3854 str r3, [sp] - ldr r3, [r4, #2436] - ldr r2, [r2, #-544] + ldr r3, [r4, #2440] + ldr r2, [r2, #-540] cmp r3, r2 orrcs r1, r1, #1 cmp r1, #0 - bne .L3739 + bne .L3814 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3739 -.L3741: + beq .L3814 +.L3816: mov r3, #0 str r3, [sp, #20] - b .L3713 -.L3739: + b .L3788 +.L3814: bl FtlCacheWriteBack mov r3, #0 - str r3, [r10, #2436] + str r3, [r10, #2440] ldr r3, [sp] cmp r3, #1 - bhi .L3713 - b .L3741 -.L3777: + bhi .L3788 + b .L3816 +.L3853: mov r0, r3 ldr r2, [sp, #8] ldr r3, [sp, #28] rsb r1, r2, r3 bl ftl_do_gc - ldr r3, .L3778+44 - ldrh r3, [r3, #-12] + ldr r3, .L3854+44 + ldrh r3, [r3, #-8] cmp r3, #5 - bls .L3751 + bls .L3827 cmp r3, #31 - bhi .L3746 - ldr r3, .L3778+8 + bhi .L3821 + ldr r3, .L3854+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L3746 -.L3751: + bne .L3821 +.L3827: ldr r4, [sp] - ldr r5, .L3778+48 - ldr r6, .L3778 - ldr r7, .L3778+52 -.L3764: + ldr r5, .L3854+48 + ldr r6, .L3854 + ldr r7, .L3854+52 +.L3840: ldrh r2, [r5] movw r3, #65535 cmp r2, r3 - bne .L3745 + bne .L3820 ldrh r3, [r7] cmp r3, r2 - bne .L3745 - ldr r2, .L3778+56 + bne .L3820 + ldr r2, .L3854+56 ldrh r2, [r2] cmp r2, r3 - bne .L3745 + bne .L3820 and r0, r4, #7 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3745: - ldr r3, .L3778+60 +.L3820: + ldr r3, .L3854+60 mov r0, #1 mov r1, r0 mov r2, #128 @@ -22617,42 +22980,46 @@ ftl_write: mov r0, #0 mov r1, #1 bl ftl_do_gc - ldr r3, [r6, #-3620] + ldr r3, [r6, #-3616] cmp r3, #0 - bne .L3746 - ldr r3, .L3778+64 + bne .L3821 + ldr r3, .L3854+64 ldrh r3, [r3] cmp r3, #2 - bhi .L3746 + bhi .L3821 add r4, r4, #1 cmp r4, #256 - bne .L3764 -.L3746: + bne .L3840 + b .L3821 +.L3824: + mvn r0, #0 + b .L3781 +.L3821: mov r0, #0 -.L3706: +.L3781: add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3779: +.L3855: .align 2 -.L3778: +.L3854: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR2-3528 - .word .LANCHOR2-3480 - .word .LANCHOR0+2390 - .word .LANCHOR0+2396 + .word .LANCHOR2-3524 + .word .LANCHOR2-3476 .word .LANCHOR0+2394 - .word .LC161 + .word .LANCHOR0+2400 + .word .LANCHOR0+2398 + .word .LC166 .word -3947 .word .LANCHOR2-3520 - .word .LANCHOR2-3288 - .word .LANCHOR2-2670 - .word .LANCHOR2-2668 - .word .LANCHOR2-2722 - .word .LANCHOR2-3532 + .word .LANCHOR2-3284 + .word .LANCHOR2-2666 + .word .LANCHOR2-2664 + .word .LANCHOR2-2718 + .word .LANCHOR2-3528 .fnend .size ftl_write, .-ftl_write .align 2 @@ -22687,23 +23054,23 @@ FlashBootVendorWrite: mov r6, r0 mov r5, r1 bl rknand_device_lock - ldr r3, .L3786 + ldr r3, .L3862 ldr r3, [r3, #504] cmp r3, #1 mvnne r4, #0 - bne .L3783 + bne .L3859 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_write mov r4, r0 -.L3783: +.L3859: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L3787: +.L3863: .align 2 -.L3786: +.L3862: .word .LANCHOR1 .fnend .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -22755,31 +23122,31 @@ FtlDumpSysBlock: stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r8, r0, asl #10 - ldr r4, .L3800 + ldr r4, .L3876 .pad #28 sub sp, sp, #28 - ldr r7, .L3800+4 + ldr r7, .L3876+4 mov r6, r0 mov r5, #0 - ldr r3, [r4, #-528] + ldr r3, [r4, #-524] mov r9, r4 - str r3, [r4, #1756] - ldr r3, [r4, #-504] str r3, [r4, #1760] -.L3792: + ldr r3, [r4, #-500] + str r3, [r4, #1764] +.L3868: ldrh r2, [r7] sxth r3, r5 cmp r3, r2 - bge .L3799 + bge .L3875 mov r1, #1 - ldr r0, .L3800+8 + ldr r0, .L3876+8 mov r2, r1 orr r3, r3, r8 - str r3, [r4, #1752] + str r3, [r4, #1756] bl FlashReadPages - ldr r3, [r4, #1760] + ldr r3, [r4, #1764] mov r1, r6 - ldr r0, .L3800+12 + ldr r0, .L3876+12 ldr r2, [r3] str r2, [sp] ldr r2, [r3, #4] @@ -22787,37 +23154,37 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #1748] + ldr r2, [r4, #1752] str r3, [sp, #12] - ldr r3, [r4, #1756] - ldr r3, [r3] - str r3, [sp, #16] - ldr r3, [r4, #1752] - bl printk ldr r3, [r4, #1760] ldr r3, [r3] + str r3, [sp, #16] + ldr r3, [r4, #1756] + bl printk + ldr r3, [r4, #1764] + ldr r3, [r3] cmn r3, #1 - beq .L3793 - ldr r0, .L3800+16 + beq .L3869 + ldr r0, .L3876+16 mov r2, #4 - ldr r1, [r9, #-528] + ldr r1, [r9, #-524] mov r3, #768 bl rknand_print_hex -.L3793: +.L3869: add r5, r5, #1 - b .L3792 -.L3799: + b .L3868 +.L3875: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3801: +.L3877: .align 2 -.L3800: +.L3876: .word .LANCHOR2 - .word .LANCHOR0+2386 - .word .LANCHOR2+1748 - .word .LC162 - .word .LC163 + .word .LANCHOR0+2390 + .word .LANCHOR2+1752 + .word .LC167 + .word .LC168 .fnend .size FtlDumpSysBlock, .-FtlDumpSysBlock .align 2 @@ -22829,31 +23196,31 @@ dump_map_info: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r3, #2324 - ldr r6, .L3820 + movw r3, #2328 + ldr r6, .L3896 .pad #52 sub sp, sp, #52 - ldr r10, .L3820+4 + ldr r10, .L3896+4 ldrh r7, [r6, r3] add fp, r10, #18 -.L3803: +.L3879: ldrh r3, [r10] - ldr r4, .L3820+8 + ldr r4, .L3896+8 cmp r3, r7 - bls .L3816 - ldr r1, .L3820+12 + bls .L3892 + ldr r1, .L3896+12 mov r8, #0 - ldr r2, [r4, #-540] + ldr r2, [r4, #-536] mov r5, r8 - ldr r3, [r4, #-2700] + ldr r3, [r4, #-2696] ldrh ip, [r1] - ldr r9, [r4, #-2696] + ldr r9, [r4, #-2692] ldrh r1, [r1, #80] str r1, [sp, #28] -.L3812: +.L3888: uxth r1, r8 cmp r1, ip - bcs .L3818 + bcs .L3894 mov r1, r7 ldrb r0, [fp, r8] @ zero_extendqisi2 str r3, [sp, #44] @@ -22867,7 +23234,7 @@ dump_map_info: ldr ip, [sp, #36] ldr r2, [sp, #40] ldr r3, [sp, #44] - bne .L3804 + bne .L3880 mov r0, #36 mov r1, r1, asl #10 mla r0, r0, r5, r2 @@ -22882,24 +23249,24 @@ dump_map_info: bic r1, r1, #3 add r1, r9, r1 str r1, [r0, #12] -.L3804: +.L3880: add r8, r8, #1 - b .L3812 -.L3818: + b .L3888 +.L3894: cmp r5, #0 - beq .L3807 - ldr r0, [r4, #-540] + beq .L3883 + ldr r0, [r4, #-536] mov r1, r5 mov r2, #1 mov r8, #0 bl FlashReadPages mov r9, #36 -.L3808: +.L3884: uxth r3, r8 cmp r3, r5 - bcs .L3807 - ldr r3, [r4, #-540] - ldr r0, .L3820+16 + bcs .L3883 + ldr r3, [r4, #-536] + ldr r0, .L3896+16 mla r3, r9, r8, r3 add r8, r8, #1 ldmib r3, {r2, r3, ip} @@ -22916,40 +23283,40 @@ dump_map_info: str r3, [sp, #16] ldr r3, [ip] bl printk - b .L3808 -.L3807: + b .L3884 +.L3883: add r7, r7, #1 uxth r7, r7 - b .L3803 -.L3816: - ldr r9, .L3820+20 + b .L3879 +.L3892: + ldr r9, .L3896+20 mov r8, #0 -.L3811: - ldr r7, .L3820+8 +.L3887: + ldr r7, .L3896+8 sxth r5, r8 - sub r3, r7, #392 + sub r3, r7, #388 ldrh r3, [r3] cmp r5, r3 - bge .L3814 + bge .L3890 mov r5, r5, asl #1 mov r7, #0 -.L3815: +.L3891: ldrh r2, [r9] sxth r3, r7 add r7, r7, #1 cmp r3, r2 - bge .L3819 - ldr r2, [r4, #-476] + bge .L3895 + ldr r2, [r4, #-472] mov r1, #1 - ldr r0, .L3820+24 + ldr r0, .L3896+24 ldrh r2, [r2, r5] orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r4, #1752] + str r3, [r4, #1756] bl FlashReadPages - ldr r3, [r4, #1760] - ldr r1, [r4, #-476] - ldr r2, [r4, #1756] + ldr r3, [r4, #1764] + ldr r1, [r4, #-472] + ldr r2, [r4, #1760] ldr r0, [r3] ldrh r1, [r1, r5] str r0, [sp] @@ -22958,53 +23325,53 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L3820+28 + ldr r0, .L3896+28 str r3, [sp, #12] ldr r3, [r2] str r3, [sp, #16] ldr r3, [r2, #4] str r3, [sp, #20] - ldr r2, [r4, #1748] - ldr r3, [r4, #1752] + ldr r2, [r4, #1752] + ldr r3, [r4, #1756] bl printk - b .L3815 -.L3819: + b .L3891 +.L3895: add r8, r8, #1 - b .L3811 -.L3814: - ldr r1, [r7, #-476] - movw r4, #2420 - ldr r3, [r6, #2412] + b .L3887 +.L3890: + ldr r1, [r7, #-472] + movw r4, #2424 + ldr r3, [r6, #2416] mov r2, #2 - ldr r0, .L3820+32 + ldr r0, .L3896+32 bl rknand_print_hex - ldr r1, [r7, #-456] + ldr r1, [r7, #-452] ldrh r3, [r6, r4] mov r2, #4 - ldr r0, .L3820+36 + ldr r0, .L3896+36 bl rknand_print_hex - ldr r0, .L3820+40 - ldr r1, [r7, #-452] + ldr r0, .L3896+40 + ldr r1, [r7, #-448] mov r2, #4 ldrh r3, [r6, r4] add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b rknand_print_hex -.L3821: +.L3897: .align 2 -.L3820: +.L3896: .word .LANCHOR0 - .word .LANCHOR0+2326 + .word .LANCHOR0+2330 .word .LANCHOR2 - .word .LANCHOR0+2316 - .word .LC164 - .word .LANCHOR0+2386 - .word .LANCHOR2+1748 - .word .LC111 - .word .LC165 - .word .LC166 - .word .LC167 + .word .LANCHOR0+2320 + .word .LC169 + .word .LANCHOR0+2390 + .word .LANCHOR2+1752 + .word .LC113 + .word .LC170 + .word .LC171 + .word .LC172 .fnend .size dump_map_info, .-dump_map_info .align 2 @@ -23015,15 +23382,15 @@ flash_boot_enter_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L3824 - ldr r2, [r3, #2256] - ldr r3, .L3824+4 + ldr r3, .L3900 + ldr r2, [r3, #2264] + ldr r3, .L3900+4 cmp r2, r3 bxne lr b flash_enter_slc_mode -.L3825: +.L3901: .align 2 -.L3824: +.L3900: .word .LANCHOR0 .word 1446522928 .fnend @@ -23036,123 +23403,20 @@ flash_boot_exit_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L3828 - ldr r2, [r3, #2256] - ldr r3, .L3828+4 + ldr r3, .L3904 + ldr r2, [r3, #2264] + ldr r3, .L3904+4 cmp r2, r3 bxne lr b flash_exit_slc_mode -.L3829: +.L3905: .align 2 -.L3828: +.L3904: .word .LANCHOR0 .word 1446522928 .fnend .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode .align 2 - .type IdBlockReadData, %function -IdBlockReadData: - .fnstart - @ args = 0, pretend = 0, frame = 16 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r6, r0 - ldr r4, .L3839 - mov r8, r1 - .pad #20 - sub sp, sp, #20 - mov r1, r6 - mov fp, r2 - ldr r0, .L3839+4 - ldr r3, [r4, #1204] - mov r2, r8 - ldr r5, [r4, #4] - mov r7, #0 - ldrb r9, [r3, #9] @ zero_extendqisi2 - bl printk - mov r0, r6 - smulbb r5, r5, r9 - uxth r5, r5 - mov r1, r5 - bl __aeabi_uidivmod - mul ip, r9, r1 - mov r10, r1 - rsb r3, r1, r6 - str r3, [sp] - ubfx ip, ip, #2, #2 -.L3831: - cmp r7, r8 - bcs .L3838 - add r2, r7, r10 - ldrb r1, [r4, #140] @ zero_extendqisi2 - ubfx r2, r2, #2, #16 - rsb r5, ip, #4 - cmp r1, #0 - add r3, r4, r2, asl #1 - uxth r5, r5 - ldrh r3, [r3, #144] - beq .L3832 - ldr r1, .L3839 - ldr r0, .L3839+8 - ldr r1, [r1, #2256] - cmp r1, r0 - moveq r3, r2 -.L3832: - ldr r2, [sp] - add r7, r5, r7 - add r2, ip, r2 - ldrb ip, [r4, #2304] @ zero_extendqisi2 - uxth r7, r7 - mla r3, r9, r3, r2 - ldr r2, [r4, #1204] - str ip, [sp, #4] - ldrb r1, [r2, #9] @ zero_extendqisi2 - str r3, [sp, #12] - ldr r3, .L3839+12 - str r1, [sp, #8] - ldrb r0, [r3, #1710] @ zero_extendqisi2 - bl FlashBchSel - mov r0, #0 - bl flash_boot_enter_slc_mode - ldr r3, [sp, #12] - ldr r1, [sp, #8] - mov r0, r3 - bl __aeabi_uidiv - mov r2, fp - add fp, fp, r5, asl #9 - mov r1, r0 - mov r0, #0 - mov r3, r0 - bl FlashReadPage - mov r0, #0 - bl flash_boot_exit_slc_mode - ldr ip, [sp, #4] - mov r0, ip - bl FlashBchSel - mov ip, #0 - b .L3831 -.L3838: - mov r1, r6 - mov r2, r8 - mov r3, #0 - ldr r0, .L3839+16 - bl printk - mov r0, #0 - add sp, sp, #20 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3840: - .align 2 -.L3839: - .word .LANCHOR0 - .word .LC168 - .word 1446522928 - .word .LANCHOR2 - .word .LC169 - .fnend - .size IdBlockReadData, .-IdBlockReadData - .align 2 .global write_idblock .type write_idblock, %function write_idblock: @@ -23161,103 +23425,104 @@ write_idblock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r4, r0 - ldr r7, .L3887 + mov r8, r0 + ldr r7, .L3959 .pad #132 sub sp, sp, #132 mov r0, #256000 - mov r6, r1 - mov r5, r2 - ldr r3, [r7, #1204] - ldr r8, [r7, #4] - ldrb r9, [r3, #9] @ zero_extendqisi2 + mov fp, r1 + mov r6, r2 + ldr r3, [r7, #44] + ldr r4, [r7, #4] + ldrb r5, [r3, #9] @ zero_extendqisi2 bl ftl_malloc subs r3, r0, #0 - str r3, [sp, #12] - beq .L3865 - add r4, r4, #508 - add r4, r4, #3 - mov r4, r4, lsr #9 - cmp r4, #8 - bls .L3863 - cmp r4, #500 - bhi .L3865 - b .L3843 -.L3863: - mov r4, #8 -.L3843: - ldr r2, [r6] - ldr r3, .L3887+4 + str r3, [sp, #8] + beq .L3933 + add ip, r8, #508 + add ip, ip, #3 + mov r10, ip, lsr #9 + cmp r10, #8 + bls .L3931 + cmp r10, #500 + bhi .L3933 + b .L3908 +.L3931: + mov r10, #8 +.L3908: + ldr r2, [fp] + ldr r3, .L3959+4 cmp r2, r3 - bne .L3865 - smulbb r3, r9, r8 - uxth fp, r3 - sub r0, fp, #1 - add r0, r0, r4 - mov r1, fp + bne .L3933 + smulbb r3, r5, r4 + uxth r3, r3 + str r3, [sp, #12] + sub r0, r3, #1 + mov r1, r3 + add r0, r0, r10 bl __aeabi_uidiv mov r3, #0 movw r2, #63871 - str r0, [sp, #32] - add r0, r6, #254976 + str r0, [sp, #36] + add r0, fp, #254976 add r0, r0, #512 -.L3847: +.L3912: ldr r1, [r0, #-4]! cmp r1, #0 - bne .L3844 - ldr r1, [r6, r3, asl #2] + bne .L3909 + ldr r1, [fp, r3, asl #2] add r3, r3, #1 cmp r3, #4096 sub r2, r2, #1 movhi r3, #0 cmp r2, #4096 str r1, [r0, #512] - bne .L3847 - b .L3846 -.L3844: - ldr r0, .L3887+8 + bne .L3912 + b .L3911 +.L3909: + ldr r0, .L3959+8 bl printk -.L3846: - mov r1, r5 +.L3911: mov r3, #5 - ldr r0, .L3887+12 + ldr r0, .L3959+12 + mov r1, r6 mov r2, #4 bl rknand_print_hex + ldr r1, [fp, #512] ldrb r2, [r7, #1] @ zero_extendqisi2 - ldr r1, [r6, #512] - sub r5, r5, #4 - ldr r0, .L3887+16 + sub r4, r6, #4 + ldr r0, .L3959+16 bl printk - ldr r2, .L3887+20 - ldrh r3, [r7, #138] - mov r1, r4 - ldr r0, .L3887+24 - ldr r2, [r2, #1704] + ldr r2, .L3959+20 + ldrh r3, [r7, #142] + mov r1, r10 + ldr r0, .L3959+24 + ldr r2, [r2, #1708] + ldr r5, .L3959 str r2, [sp] - mov r2, r4 + mov r2, r10 bl printk ldrb r3, [r7, #1] @ zero_extendqisi2 - ldr r7, .L3887 - ldr r2, [r6, #512] + ldr r2, [fp, #512] cmp r2, r3 - strhi r3, [r6, #512] - mov r3, r4, asl #7 - str r3, [sp, #36] + strhi r3, [fp, #512] + mov r3, r10, asl #7 + str r3, [sp, #40] mov r3, #0 str r3, [sp, #20] str r3, [sp, #16] -.L3861: - ldr r2, [r5, #4] - ldrb r3, [r7, #1] @ zero_extendqisi2 - ldr r9, .L3887 +.L3929: + ldr r2, [r4, #4] + ldrb r3, [r5, #1] @ zero_extendqisi2 + ldr r7, .L3959 cmp r2, r3 - bcs .L3849 - ldr r3, .L3887+20 - ldr r3, [r3, #1704] + bcs .L3914 + ldr r3, .L3959+20 + ldr r3, [r3, #1708] cmp r2, r3 - bcc .L3849 - ldr r3, [sp, #32] - ldr r1, [sp, #32] + bcc .L3914 + ldr r3, [sp, #36] + ldr r1, [sp, #36] cmp r3, #1 movls r3, #0 movhi r3, #1 @@ -23265,294 +23530,349 @@ write_idblock: ldr r3, [sp, #16] cmp r3, #0 cmpne r1, #1 - bls .L3850 - ldr r3, [r5] + bls .L3915 + ldr r3, [r4] add r3, r3, #1 cmp r2, r3 - beq .L3849 -.L3850: + beq .L3914 +.L3915: mov r1, #0 mov r2, #512 - ldr r0, [sp, #12] + ldr r0, [sp, #8] bl memset - ldr r8, [r5, #4] - ldr r3, [r9, #1204] - mov r2, r4 - ldr r9, [r9, #4] - mul r8, r8, fp - ldrb r3, [r3, #9] @ zero_extendqisi2 - ldr r0, .L3887+28 - mov r1, r8 - str r3, [sp, #24] - ldrh r3, [sp, #24] - smulbb r9, r9, r3 + ldr r6, [r4, #4] + mov r2, r10 + ldr r0, .L3959+28 + ldr r3, [sp, #12] + mul r6, r6, r3 + ldr r3, [r7, #44] + ldr r7, [r7, #4] + ldrb r9, [r3, #9] @ zero_extendqisi2 + mov r1, r6 bl printk mov r0, #0 bl flash_boot_enter_slc_mode - mov r0, r8 - uxth r9, r9 - ldr r1, [sp, #24] + mov r1, r9 + mov r0, r6 bl __aeabi_uidiv + smulbb r7, r7, r9 + uxth r7, r7 mov r1, r0 mov r0, #0 mov r2, r0 bl FlashEraseBlock - cmp r4, r9 - movls r10, #1 - bls .L3851 + cmp r10, r7 + movls r8, #1 + bls .L3916 mov r0, #0 - add r1, r8, r9 + add r1, r6, r7 mov r2, r0 - mov r10, #2 + mov r8, #2 bl FlashEraseBlock -.L3851: +.L3916: mov r0, #0 bl flash_boot_exit_slc_mode - ldr r3, [r7, #1204] + ldr r3, [r5, #44] ldrh r0, [r3, #10] ldrb r1, [r3, #12] @ zero_extendqisi2 mov r0, r0, asl #2 - mul r0, r10, r0 + mul r0, r8, r0 bl __aeabi_idiv - mov r1, r9 - mov r9, #0 - str r0, [sp, #52] - mov r0, r8 + mov r1, r7 + mov r8, #0 + str r0, [sp, #48] + mov r0, r6 bl __aeabi_uidivmod mov ip, r1 - rsb r3, r1, r8 - str r6, [sp, #28] - str r3, [sp, #40] -.L3852: - ldr r3, [sp, #52] - cmp r9, r3 - bcs .L3886 - add r3, r9, ip + rsb r3, r1, r6 + str fp, [sp, #24] + str r3, [sp, #28] +.L3917: + ldr r3, [sp, #48] + ldr r7, .L3959 + cmp r8, r3 + bcs .L3957 + add r3, r8, ip ubfx r3, r3, #2, #16 cmp r3, #0 - beq .L3853 + beq .L3918 add r2, r3, #1 - add r1, r7, r2, asl #1 - ldrh r10, [r1, #144] - ldrb r1, [r7, #140] @ zero_extendqisi2 + add r1, r5, r2, asl #1 + ldrh r7, [r1, #148] + ldrb r1, [r5, #144] @ zero_extendqisi2 cmp r1, #0 - beq .L3854 - ldr r1, [r7, #2256] - ldr r0, .L3887+32 + beq .L3919 + ldr r1, [r5, #2264] + ldr r0, .L3959+32 cmp r1, r0 - moveq r10, r2 -.L3854: - sub r10, r10, #-1073741823 - mov r10, r10, asl #2 - str r10, [sp, #64] -.L3853: + moveq r7, r2 +.L3919: + sub r7, r7, #-1073741823 + mov r7, r7, asl #2 + str r7, [sp, #64] +.L3918: movw r2, #61424 str r2, [sp, #68] - add r2, r7, r3, asl #1 - ldrh r10, [r2, #144] - ldrb r2, [r7, #140] @ zero_extendqisi2 + add r2, r5, r3, asl #1 + ldrh r7, [r2, #148] + ldrb r2, [r5, #144] @ zero_extendqisi2 cmp r2, #0 - beq .L3855 - ldr r2, [r7, #2256] - ldr r1, .L3887+32 + beq .L3920 + ldr r2, [r5, #2264] + ldr r1, .L3959+32 cmp r2, r1 - moveq r10, r3 -.L3855: - ldr r3, [sp, #24] - add r9, r9, #4 - ldr r2, [sp, #40] - str ip, [sp, #60] - uxth r9, r9 - mla r2, r3, r10, r2 - ldr r3, .L3887 - ldrb r3, [r3, #2304] @ zero_extendqisi2 - str r2, [sp, #56] - str r3, [sp, #48] - ldr r3, .L3887+20 - ldrb r0, [r3, #1710] @ zero_extendqisi2 + moveq r7, r3 +.L3920: + ldr r3, [sp, #28] + add r8, r8, #4 + str ip, [sp, #56] + uxth r8, r8 + mla r2, r9, r7, r3 + ldr r3, .L3959 + ldrb r3, [r3, #2312] @ zero_extendqisi2 + str r2, [sp, #52] + str r3, [sp, #32] + ldr r3, .L3959+20 + ldrb r0, [r3, #1714] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 bl flash_boot_enter_slc_mode - ldr r3, .L3887 - ldr r3, [r3, #1204] + ldr r3, .L3959 + ldr r3, [r3, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 - ldr r2, [sp, #56] + ldr r2, [sp, #52] mov r0, r2 bl __aeabi_uidiv add r3, sp, #64 mov r1, r0 - ldr r2, [sp, #28] + ldr r2, [sp, #24] mov r0, #0 bl FlashProgPage mov r0, #0 bl flash_boot_exit_slc_mode - ldr r0, [sp, #48] + ldr r0, [sp, #32] bl FlashBchSel - ldr r1, [sp, #24] - ldr r0, [sp, #40] + mov r1, r9 + ldr r0, [sp, #28] bl __aeabi_uidiv - add r2, r10, #1 + add r2, r7, #1 uxth r2, r2 mov r1, r0 mov r0, #0 bl FlashPageProgMsbFFData - ldr r3, [sp, #28] - ldr ip, [sp, #60] + ldr r3, [sp, #24] + ldr ip, [sp, #56] add r3, r3, #2048 - str r3, [sp, #28] - b .L3852 -.L3886: - mov r1, r8 + str r3, [sp, #24] + b .L3917 +.L3957: + mov r1, r6 + mov r2, r10 mov r3, #0 - mov r2, r4 - ldr r0, .L3887+36 + ldr r0, .L3959+36 bl printk - ldr r0, [r5, #4] - mov r1, r4 - mov r8, #0 - mul r0, r0, fp - ldr r2, [sp, #12] - bl IdBlockReadData - mov r3, r6 - ldr r2, [sp, #12] -.L3860: - mov r10, r2 - mov r9, r3 - ldr r0, [r10] + ldr r6, [r4, #4] + ldr r8, [r7, #4] + mov r2, r10 + ldr r0, .L3959+40 + mov r9, #0 + ldr r3, [sp, #12] + mul r6, r6, r3 + ldr r3, [r7, #44] + ldrb r3, [r3, #9] @ zero_extendqisi2 + mov r1, r6 + str r3, [sp, #24] + ldrh r3, [sp, #24] + smulbb r8, r8, r3 + bl printk + mov r0, r6 + uxth r8, r8 + mov r1, r8 + bl __aeabi_uidivmod + rsb r3, r1, r6 + str r3, [sp, #48] + ldr r3, [sp, #24] + str r1, [sp, #28] + mul ip, r3, r1 + ldr r3, [sp, #8] + ubfx ip, ip, #2, #2 + str r3, [sp, #32] +.L3922: + cmp r9, r10 + bcs .L3958 + ldr r3, [sp, #28] + rsb r8, ip, #4 + ldrb r1, [r5, #144] @ zero_extendqisi2 + add r3, r9, r3 + uxth r8, r8 + ubfx r3, r3, #2, #16 + cmp r1, #0 + add r2, r5, r3, asl #1 + ldrh r2, [r2, #148] + beq .L3923 + ldr r1, [r5, #2264] + ldr r0, .L3959+32 + cmp r1, r0 + moveq r2, r3 +.L3923: + ldr r3, [sp, #48] + add r9, r8, r9 + ldr r1, [sp, #24] + add r3, ip, r3 + ldrb ip, [r7, #2312] @ zero_extendqisi2 + uxth r9, r9 + mla r3, r1, r2, r3 + ldr r2, [r7, #44] + str ip, [sp, #52] + ldrb r1, [r2, #9] @ zero_extendqisi2 + ldr r2, .L3959+20 + str r3, [sp, #60] + str r1, [sp, #56] + ldrb r0, [r2, #1714] @ zero_extendqisi2 + bl FlashBchSel + mov r0, #0 + bl flash_boot_enter_slc_mode + ldr r3, [sp, #60] + ldr r1, [sp, #56] + mov r0, r3 + bl __aeabi_uidiv + mov r1, r0 + mov r0, #0 + mov r3, r0 + ldr r2, [sp, #32] + bl FlashReadPage + mov r0, #0 + bl flash_boot_exit_slc_mode + ldr ip, [sp, #52] + mov r0, ip + bl FlashBchSel + mov ip, #0 + ldr r3, [sp, #32] + add r3, r3, r8, asl #9 + str r3, [sp, #32] + b .L3922 +.L3958: + mov r1, r6 + mov r2, r10 + mov r3, #0 + ldr r0, .L3959+44 + bl printk + mov r6, #0 + mov r3, fp + ldr r2, [sp, #8] +.L3928: + mov r8, r2 + mov r7, r3 + ldr r0, [r8] add r2, r2, #4 - ldr r1, [r9] + ldr r1, [r7] add r3, r3, #4 cmp r0, r1 - beq .L3857 + beq .L3925 mov r1, #0 mov r2, #512 - ldr r0, [sp, #12] + ldr r0, [sp, #8] bl memset - ldr r3, [r10] - ldr r0, .L3887+40 + ldr r3, [r8] + ldr r0, .L3959+48 str r3, [sp] - ldr r3, [r9] - bic r9, r8, #255 + ldr r3, [r7] + bic r7, r6, #255 ldr r1, [sp, #16] - mov r9, r9, asl #2 + mov r7, r7, asl #2 str r3, [sp, #4] - mov r3, r8 - ldr r2, [r5, #4] + mov r3, r6 + ldr r2, [r4, #4] bl printk - ldr r0, .L3887+44 - add r1, r6, r9 + ldr r0, .L3959+52 + add r1, fp, r7 mov r2, #4 mov r3, #256 bl rknand_print_hex mov r2, #4 - ldr r0, .L3887+48 - ldr r3, [sp, #12] - add r1, r3, r9 + ldr r0, .L3959+56 + ldr r3, [sp, #8] + add r1, r3, r7 mov r3, #256 bl rknand_print_hex mov r0, #0 bl flash_boot_enter_slc_mode - ldr r1, [r5, #4] + ldr r1, [r4, #4] mov r0, #0 mov r2, r0 - mul r1, r1, fp + ldr r3, [sp, #12] + mul r1, r1, r3 bl FlashEraseBlock ldr r3, [sp, #44] cmp r3, #0 - beq .L3858 - ldr r1, [r5, #4] + beq .L3926 + ldr r1, [r4, #4] mov r0, #0 + ldr r3, [sp, #12] mov r2, r0 - mla r1, r1, fp, fp + mla r1, r1, r3, r3 bl FlashEraseBlock -.L3858: +.L3926: mov r0, #0 bl flash_boot_exit_slc_mode - ldr r0, .L3887+52 - ldr r1, [r5, #4] + ldr r0, .L3959+60 + ldr r1, [r4, #4] bl printk - ldr r3, [sp, #36] - cmp r8, r3 - bcc .L3849 - b .L3859 -.L3857: - ldr r1, [sp, #36] - add r8, r8, #1 - cmp r8, r1 - bne .L3860 -.L3859: + ldr r3, [sp, #40] + cmp r6, r3 + bcc .L3914 + b .L3927 +.L3925: + ldr r1, [sp, #40] + add r6, r6, #1 + cmp r6, r1 + bne .L3928 +.L3927: ldr r3, [sp, #20] add r3, r3, #1 str r3, [sp, #20] -.L3849: +.L3914: ldr r3, [sp, #16] - add r5, r5, #4 + add r4, r4, #4 add r3, r3, #1 str r3, [sp, #16] cmp r3, #5 - bne .L3861 - ldr r0, [sp, #12] + bne .L3929 + ldr r0, [sp, #8] bl ftl_free ldr r3, [sp, #20] clz r0, r3 mov r0, r0, lsr #5 rsb r0, r0, #0 - b .L3842 -.L3865: + b .L3907 +.L3933: mvn r0, #0 -.L3842: +.L3907: add sp, sp, #132 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3888: +.L3960: .align 2 -.L3887: +.L3959: .word .LANCHOR0 .word -52655045 - .word .LC170 - .word .LC171 - .word .LC172 - .word .LANCHOR2 .word .LC173 .word .LC174 - .word 1446522928 .word .LC175 + .word .LANCHOR2 .word .LC176 .word .LC177 + .word 1446522928 .word .LC178 .word .LC179 + .word .LC180 + .word .LC181 + .word .LC182 + .word .LC183 + .word .LC184 .fnend .size write_idblock, .-write_idblock .align 2 - .global CRC_32 - .type CRC_32, %function -CRC_32: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr ip, .L3893 - add r1, r0, r1 - mov r2, #0 -.L3890: - cmp r0, r1 - beq .L3892 - ldrb r3, [r0], #1 @ zero_extendqisi2 - eor r3, r3, r2, lsr #24 - add r3, ip, r3, asl #2 - ldr r3, [r3, #3360] - eor r2, r3, r2, asl #8 - b .L3890 -.L3892: - mov r0, r2 - bx lr -.L3894: - .align 2 -.L3893: - .word .LANCHOR1 - .fnend - .size CRC_32, .-CRC_32 - .align 2 .global write_loader_lba .type write_loader_lba, %function write_loader_lba: @@ -23567,36 +23887,36 @@ write_loader_lba: sub sp, sp, #52 mov r6, r1 mov r8, r2 - ldr r4, .L3918 - bne .L3896 + ldr r4, .L3984 + bne .L3962 ldr r2, [r2] - ldr r3, .L3918+4 + ldr r3, .L3984+4 cmp r2, r3 - bne .L3896 + bne .L3962 mov r0, #256000 mov r3, #1 - strb r3, [r4, #2016] + strb r3, [r4, #2020] bl ftl_malloc mov r1, #0 mov r2, #256000 - str r0, [r4, #2020] + str r0, [r4, #2024] bl ftl_memset - str r5, [r4, #2024] -.L3896: + str r5, [r4, #2028] +.L3962: str r6, [sp] mov r3, r5 - ldr r0, .L3918+8 - ldr r1, [r4, #2020] + ldr r0, .L3984+8 + ldr r1, [r4, #2024] ldr r2, [r8] bl printk - ldrb r3, [r4, #2016] @ zero_extendqisi2 - ldr r9, .L3918 + ldrb r3, [r4, #2020] @ zero_extendqisi2 + ldr r9, .L3984 cmp r3, #0 - beq .L3895 + beq .L3961 sub r0, r5, #64 - ldr r7, [r9, #2020] + ldr r7, [r9, #2024] cmp r0, #500 - bcs .L3898 + bcs .L3964 rsb r2, r5, #564 add r0, r7, r0, asl #9 cmp r2, r6 @@ -23604,38 +23924,38 @@ write_loader_lba: movcs r2, r6 mov r2, r2, asl #9 bl ftl_memcpy - b .L3899 -.L3898: + b .L3965 +.L3964: cmp r5, #564 - bcs .L3907 -.L3899: - ldr r3, [r4, #2024] + bcs .L3973 +.L3965: + ldr r3, [r4, #2028] cmp r3, r5 - beq .L3905 - ldr r2, .L3918 + beq .L3971 + ldr r2, .L3984 mov r3, #0 cmp r7, r3 mov r8, r3 - strb r3, [r2, #2016] - beq .L3906 + strb r3, [r2, #2020] + beq .L3972 mov r0, r7 bl ftl_free -.L3906: - str r8, [r4, #2020] -.L3905: +.L3972: + str r8, [r4, #2024] +.L3971: add r5, r5, r6 - str r5, [r4, #2024] - b .L3895 -.L3907: - ldr r3, .L3918+12 - ldr r0, [r9, #2024] - ldr r3, [r3, #1204] + str r5, [r4, #2028] + b .L3961 +.L3973: + ldr r3, .L3984+12 + ldr r0, [r9, #2028] + ldr r3, [r3, #44] sub r0, r0, #64 cmp r0, #500 ldrb r3, [r3, #9] @ zero_extendqisi2 movcs r0, #500 cmp r3, #4 - beq .L3908 + beq .L3974 mov r3, #2 str r3, [sp, #8] mov r3, #3 @@ -23646,10 +23966,10 @@ write_loader_lba: str r3, [sp, #20] mov r3, #6 str r3, [sp, #24] - b .L3901 -.L3908: + b .L3967 +.L3974: mov r3, #0 -.L3900: +.L3966: cmp r0, #256 add r1, sp, #8 mov r2, r3, asl #1 @@ -23657,40 +23977,40 @@ write_loader_lba: str r2, [r1, r3, asl #2] add r3, r3, #1 cmp r3, #5 - bne .L3900 -.L3901: + bne .L3966 +.L3967: movw r3, #63872 -.L3904: +.L3970: ldr r2, [r7, r3, asl #2] cmp r2, #0 addne r3, r3, #128 movne r0, r3, asl #2 - bne .L3903 -.L3902: + bne .L3969 +.L3968: sub r3, r3, #1 cmp r3, #4096 - bne .L3904 + bne .L3970 mov r0, r0, asl #9 -.L3903: +.L3969: mov r1, r7 add r2, sp, #8 bl write_idblock - ldr r0, [r4, #2020] + ldr r0, [r4, #2024] mov r7, #0 - strb r7, [r4, #2016] + strb r7, [r4, #2020] bl ftl_free - str r7, [r4, #2020] - b .L3905 -.L3895: + str r7, [r4, #2024] + b .L3971 +.L3961: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3919: +.L3985: .align 2 -.L3918: +.L3984: .word .LANCHOR4 .word -52655045 - .word .LC180 + .word .LC185 .word .LANCHOR0 .fnend .size write_loader_lba, .-write_loader_lba @@ -23714,12 +24034,12 @@ FtlWrite: cmp r0, #0 movne r2, #0 cmp r2, #0 - beq .L3921 + beq .L3987 mov r0, r1 mov r2, r3 mov r1, r6 bl write_loader_lba -.L3921: +.L3987: mov r0, r7 mov r1, r4 mov r2, r6 @@ -23733,439 +24053,204 @@ FtlWrite: .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: .fnstart - @ args = 0, pretend = 0, frame = 528 + @ args = 0, pretend = 0, frame = 520 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L4032 + ldr r3, .L4049 stmfd sp!, {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} cmp r1, r3 - .pad #532 - sub sp, sp, #532 + .pad #524 + sub sp, sp, #524 mov r4, r1 mov r5, r2 - beq .L3928 - bhi .L3929 - sub r3, r3, #3456 - sub r3, r3, #5 + beq .L3994 + bhi .L3995 + sub r3, r3, #2080 + sub r3, r3, #6 cmp r1, r3 - beq .L3930 - bhi .L3931 - sub r3, r3, #125 + beq .L3996 + bhi .L3997 + sub r3, r3, #238 cmp r1, r3 - beq .L3932 - bhi .L3933 - sub r3, r3, #237 + beq .L3998 + add r3, r3, #237 cmp r1, r3 - bne .L3989 - bl rknand_dev_flush - b .L4020 -.L3933: - ldr r3, .L4032+4 + beq .L3999 + b .L4029 +.L3997: + ldr r3, .L4049+4 cmp r1, r3 - beq .L3935 + beq .L4000 add r3, r3, #1 cmp r1, r3 - beq .L3936 - b .L3989 -.L3931: - ldr r3, .L4032+8 + beq .L4001 + sub r3, r3, #124 cmp r1, r3 - beq .L3937 - bhi .L3938 - sub r3, r3, #1952 - sub r3, r3, #9 - cmp r1, r3 - beq .L3939 - b .L3989 -.L3938: - ldr r3, .L4032+12 - cmp r1, r3 - beq .L3937 - add r3, r3, #10 - cmp r1, r3 - beq .L3937 - b .L3989 -.L3929: - ldr r3, .L4032+16 - cmp r1, r3 - beq .L3940 - bhi .L3941 - sub r3, r3, #78 - cmp r1, r3 - beq .L3942 - bcc .L3943 - add r3, r3, #21 - cmp r1, r3 - beq .L3944 - add r3, r3, #56 - cmp r1, r3 - beq .L3945 - b .L3989 -.L3941: - ldr r3, .L4032+20 + bne .L4029 + b .L4047 +.L3995: + ldr r3, .L4049+8 cmp r1, r3 mov r6, r3 - beq .L3946 - bhi .L3947 - sub r3, r3, #956 - sub r3, r3, #1 + beq .L4003 + bhi .L4004 + sub r3, r3, #2512 + sub r3, r3, #14 cmp r1, r3 - beq .L3948 - add r3, r3, #956 + beq .L3994 + add r3, r3, #10 cmp r1, r3 - beq .L3949 - b .L3989 -.L3947: - ldr r3, .L4032+24 + beq .L3994 + b .L4029 +.L4004: + ldr r3, .L4049+12 cmp r1, r3 - beq .L3949 + beq .L4003 + bcc .L4005 add r3, r3, #1 cmp r1, r3 - beq .L3946 - b .L3989 -.L3943: - ldr r0, .L4032+28 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r4, r0, #0 - bne .L3950 -.L3955: - mvn r0, #11 - b .L3927 -.L3950: - mov r1, r5 - mov r2, #512 - bl rk_copy_from_user - cmp r0, #0 - bne .L4026 - ldr r0, .L4032+32 - ldmia r4, {r1, r2} - bl printk - ldr r3, [r4, #4] - cmp r3, #8 - str r3, [sp, #4] - bhi .L4024 - bl rknand_device_lock - mov r2, r4 - ldr r0, [r4] - ldr r1, [sp, #4] - bl IdBlockReadData - bl rknand_device_unlock - mov r0, r5 - mov r1, r4 - ldr r2, [sp, #4] - mov r2, r2, asl #9 - bl rk_copy_to_user - cmp r0, #0 - beq .L4019 - ldr r0, .L4032+36 -.L4022: - bl printk -.L4024: - mov r0, r4 -.L4025: - bl ftl_free -.L4023: - mvn r0, #13 - b .L3927 -.L3942: - ldr r0, .L4032+40 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r4, r0, #0 - beq .L3955 - mov r1, r5 - mov r2, #4096 - bl rk_copy_from_user - cmp r0, #0 - beq .L3956 -.L4026: - ldr r0, .L4032+44 - b .L4022 -.L3956: - ldr r5, .L4032+48 - ldr r0, .L4032+52 - ldmia r4, {r1, r2} - bl printk - ldr r6, [r5, #2028] - mov r7, r5 - cmp r6, #0 - bne .L3957 - mov r0, #260096 - bl ftl_malloc - cmp r0, #0 - str r0, [r5, #2028] - beq .L4024 - mov r1, r6 - mov r2, #260096 - bl memset -.L3957: - ldr r2, [r4, #4] - movw r3, #4088 - cmp r2, r3 - bhi .L4024 - ldr r3, [r4] - cmp r3, #251904 - bhi .L4024 - ldr r0, [r7, #2028] - add r1, r4, #8 - add r0, r0, r3 - bl memcpy -.L4019: - mov r0, r4 - bl ftl_free -.L4020: - mov r4, #0 - b .L3954 -.L3945: - ldr r0, .L4032+56 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r6, r0, #0 - beq .L3955 - mov r1, r5 - mov r2, #28 - bl rk_copy_from_user - cmp r0, #0 - beq .L3960 - ldr r0, .L4032+44 - bl printk - b .L3961 -.L3960: - ldmia r6, {r1, r2} - ldr r0, .L4032+60 - bl printk - ldr r1, [r6] - cmp r1, #256000 - bhi .L3961 - ldr r5, .L4032+48 - ldr r0, [r5, #2028] - cmp r0, #0 - beq .L3961 - bl CRC_32 - ldr r3, [r6, #4] - cmp r3, r0 - beq .L3963 - mov r0, r6 - bl ftl_free - b .L3990 -.L3963: - bl rknand_device_lock - ldr r1, [r5, #2028] - add r2, r6, #8 - ldr r0, [r6] - bl write_idblock - mov r4, #0 - bl rknand_device_unlock - ldr r0, [r5, #2028] - bl ftl_free - str r4, [r5, #2028] - mov r0, r6 - b .L3967 -.L3961: - mov r0, r6 - b .L4025 -.L3944: - ldr r0, .L4032+64 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r6, r0, #0 - beq .L3955 - bl ftl_read_flash_info - mov r0, r5 - mov r1, r6 - mov r2, #11 - b .L4030 -.L3928: - ldr r0, .L4032+68 - bl printk - bl nand_blk_add_whole_disk - mov r0, #4096 - bl ftl_malloc - subs r6, r0, #0 - beq .L3955 - mov r1, #0 - mov r2, #64 - bl ftl_memset - mov r0, r5 - mov r1, r6 - mov r2, #64 - b .L4030 -.L3940: - ldr r0, .L4032+72 - bl printk - ldr r3, .L4032+48 - mov r0, r5 - mov r2, #4 - ldr r3, [r3, #2032] - ldr r3, [r3, #20] - add r1, sp, #528 - str r3, [r1, #-524]! -.L4014: - bl rk_copy_to_user - cmp r0, #0 - bne .L4023 - b .L4020 -.L3948: - ldr r0, .L4032+76 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r6, r0, #0 - beq .L3955 - bl rknand_device_lock - mov r1, #264 - mov r2, #2 - mov r3, r6 - mov r0, #16 - bl ftl_read - bl rknand_device_unlock - mov r0, r5 - mov r1, r6 - mov r2, #1024 -.L4030: - bl rk_copy_to_user - subs r4, r0, #0 - mov r0, r6 - bne .L4025 -.L3967: - bl ftl_free - b .L3954 -.L3932: - ldr r0, .L4032+80 + beq .L4005 + b .L4029 +.L3999: + ldr r0, .L4049+16 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user - subs r4, r0, #0 - beq .L3968 -.L3973: - ldr r0, .L4032+44 + cmp r0, #0 + beq .L4006 +.L4012: + ldr r0, .L4049+20 bl printk - b .L4023 -.L3968: - ldr r2, [sp, #8] - ldr r3, .L4032+84 + b .L4044 +.L4006: + ldr r2, [sp] + ldr r3, .L4049+24 cmp r2, r3 - beq .L3969 -.L3970: + beq .L4007 +.L4009: mvn r4, #0 - b .L3954 -.L3969: - ldr r3, [sp, #12] + b .L4008 +.L4007: + ldr r3, [sp, #4] cmp r3, #512 - bhi .L3970 - ldr r6, .L4032+48 + bhi .L4009 + ldr r4, .L4049+28 mov r2, #512 - add r0, sp, #8 - ldr r1, [r6, #2032] + mov r0, sp + ldr r1, [r4, #2032] bl memcpy - ldr r2, [r6, #2036] - ldr r3, .L4032+88 + ldr r2, [r4, #2036] + ldr r3, .L4049+32 cmp r2, r3 - beq .L3971 - add r0, sp, #72 - mov r1, r4 - mov r2, #128 - str r4, [sp, #16] - str r4, [sp, #20] - bl memset -.L3971: + beq .L4010 mov r1, #0 - mov r2, #256 - add r0, sp, #264 - str r1, [sp, #24] + add r0, sp, #64 + mov r2, #128 + str r1, [sp, #8] + str r1, [sp, #12] bl memset - b .L4028 -.L3935: - ldr r0, .L4032+92 +.L4010: + mov r1, #0 + add r0, sp, #256 + mov r2, #256 + str r1, [sp, #16] + bl memset +.L4039: + mov r0, r5 + mov r1, sp + mov r2, #520 + bl rk_copy_to_user + cmp r0, #0 + bne .L4044 + b .L4043 +.L3996: + ldr r0, .L4049+36 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3973 - ldr r2, [sp, #8] - ldr r3, .L4032+84 + bne .L4012 + ldr r2, [sp] + ldr r3, .L4049+24 cmp r2, r3 - bne .L3970 - ldr r3, [sp, #12] + bne .L4009 + ldr r3, [sp, #4] cmp r3, #512 - bhi .L3970 - ldr r2, .L4032+48 - ldr r3, .L4032+88 + bhi .L4009 + ldr r2, .L4049+28 + ldr r3, .L4049+32 ldr r1, [r2, #2036] cmp r1, r3 - bne .L3990 - ldr r3, [sp, #20] + mvnne r0, #1 + bne .L3993 + ldr r3, [sp, #12] sub r1, r3, #1 cmp r1, #127 mvnhi r0, #2 - bhi .L3927 + bhi .L3993 ldr r4, [r2, #2032] - add r1, sp, #72 + add r1, sp, #64 add r0, r4, #64 str r3, [r4, #12] - ldr r2, [sp, #20] + ldr r2, [sp, #12] bl memcpy mov r0, #1 mov r1, r4 - b .L4021 -.L3939: - ldr r0, .L4032+96 + b .L4042 +.L4001: + ldr r0, .L4049+40 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3973 - ldr r2, [sp, #8] - ldr r3, .L4032+100 + bne .L4012 + ldr r2, [sp] + ldr r3, .L4049+44 cmp r2, r3 - bne .L3970 - ldr r3, [sp, #12] + bne .L4009 + ldr r3, [sp, #4] cmp r3, #512 - bhi .L3970 - ldr r5, .L4032+48 + bhi .L4009 + ldr r5, .L4049+28 ldr r3, [r5, #2040] cmp r3, #0 - bne .L3974 -.L3977: + bne .L4013 +.L4016: mov r0, #0 - b .L3927 -.L3974: + b .L3993 +.L4013: ldr r3, [r5, #2044] - ldr r2, .L4032+104 + ldr r2, .L4049+48 ldr r1, [r3] cmp r1, r2 - beq .L3975 + beq .L4014 str r2, [r3] mov r2, #504 - ldr r3, [r5, #2044] + ldr r3, .L4049+28 + ldr r3, [r3, #2044] str r2, [r3, #4] mov r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L3975: +.L4014: ldr r1, [r5, #2044] mov r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore ldr r3, [r5, #2032] - ldr r2, .L4032+84 + ldr r2, .L4049+24 ldr r1, [r3] cmp r1, r2 strne r2, [r3] ldr r6, [r5, #2032] - ldrne r3, .L4032+48 + ldrne r3, .L4049+28 movne r2, #504 add r0, r6, #64 ldrne r3, [r3, #2032] @@ -24180,50 +24265,53 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore str r4, [r5, #2040] str r4, [r5, #2036] - b .L3954 -.L3930: - ldr r0, .L4032+108 + b .L4008 +.L4000: + ldr r0, .L4049+52 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3973 - ldr r2, [sp, #8] - ldr r3, .L4032+112 + bne .L4012 + ldr r2, [sp] + ldr r3, .L4049+56 cmp r2, r3 - bne .L3970 - ldr r3, [sp, #12] + bne .L4009 + ldr r3, [sp, #4] cmp r3, #512 - bhi .L3970 - ldr r5, .L4032+48 + bhi .L4009 + ldr r5, .L4049+28 ldr r3, [r5, #2040] cmp r3, #1 - beq .L3977 + beq .L4016 + ldr r2, [r5, #2044] + ldr r3, .L4049+48 + ldr r1, [r2] + cmp r1, r3 + beq .L4017 + str r3, [r2] + mov r2, #504 ldr r3, [r5, #2044] - mov r4, #0 - ldr r2, .L4032+104 - ldr r1, [r3] - cmp r1, r2 - strne r2, [r3] + str r2, [r3, #4] + mov r2, #0 + str r2, [r3, #8] + str r2, [r3, #12] +.L4017: ldr r1, [r5, #2044] - ldrne r3, [r5, #2044] - movne r2, #504 - strne r0, [r3, #8] - strne r2, [r3, #4] - strne r0, [r3, #12] mov r3, #1 mov r0, #0 + mov r4, #0 str r3, [r1, #16] bl StorageSysDataStore ldr r3, [r5, #2032] - ldr r2, .L4032+84 + ldr r2, .L4049+24 ldr r1, [r3] cmp r1, r2 strne r2, [r3] ldr r6, [r5, #2032] - ldrne r3, .L4032+48 + ldrne r3, .L4049+28 movne r1, #504 movne r2, #0 add r0, r6, #64 @@ -24238,83 +24326,85 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore mov r3, #1 str r3, [r5, #2040] - b .L3954 -.L3936: - ldr r0, .L4032+116 + b .L4008 +.L4047: + ldr r0, .L4049+60 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3973 - ldr r2, [sp, #8] - ldr r3, .L4032+120 + bne .L4012 + ldr r2, [sp] + ldr r3, .L4049+64 cmp r2, r3 - bne .L3970 - ldr r2, [sp, #12] + bne .L4009 + ldr r2, [sp, #4] cmp r2, #512 - addls r0, sp, #16 - ldrls r1, .L4032+124 - bls .L4027 - b .L3970 -.L3937: - ldr r0, .L4032+12 + addls r0, sp, #8 + ldrls r1, .L4049+68 + bls .L4045 + b .L4009 +.L3994: + ldr r0, .L4049+72 cmp r4, r0 mov r7, r0 - ldreq r0, .L4032+128 - beq .L4017 - ldr r3, .L4032+132 + ldreq r0, .L4049+76 + beq .L4041 + ldr r3, .L4049+80 cmp r4, r3 - ldreq r0, .L4032+136 - ldrne r0, .L4032+140 -.L4017: + ldreq r0, .L4049+84 + ldrne r0, .L4049+88 +.L4041: bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3973 - ldr r2, [sp, #8] - ldr r3, .L4032+144 + bne .L4012 + ldr r2, [sp] + ldr r3, .L4049+92 cmp r2, r3 - bne .L4023 - ldr r3, .L4032+132 - ldr r6, .L4032+48 + bne .L4044 + ldr r3, .L4049+80 + ldr r6, .L4049+28 cmp r4, r3 - bne .L3983 + bne .L4023 ldr r3, [r6, #2032] mov r0, r5 - add r1, sp, #8 + mov r1, sp mov r2, #16 ldr r3, [r3, #20] - str r3, [sp, #12] - strb r3, [sp, #16] + str r3, [sp, #4] + strb r3, [sp, #8] bl rk_copy_to_user cmp r0, #0 - beq .L3927 - b .L4023 -.L3983: + beq .L3993 + b .L4044 +.L4023: ldr r3, [r6, #2560] cmp r3, #10 - bhi .L4023 + bhi .L4044 ldr r1, [r6, #2032] - ldr r2, [sp, #12] + ldr r2, [sp, #4] ldr r3, [r1, #24] cmp r3, r2 cmpne r3, #0 movne r3, #1 moveq r3, #0 - beq .L3984 - ldr r0, .L4032+148 + beq .L4024 + ldr r0, .L4049+96 mov r1, r2 bl printk ldr r3, [r6, #2560] add r3, r3, #1 str r3, [r6, #2560] - b .L4023 -.L3984: +.L4044: + mvn r0, #13 + b .L3993 +.L4024: cmp r4, r7 str r3, [r6, #2560] mov r0, #1 @@ -24325,135 +24415,122 @@ rknand_sys_storage_ioctl: str r3, [r1, #20] bl StorageSysDataStore cmn r0, #1 - bne .L4020 - mvn r4, #1 - b .L3954 -.L3949: - ldr r0, .L4032+152 + bne .L4043 + b .L4048 +.L4003: + ldr r0, .L4049+100 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3973 - ldr r2, [sp, #8] - ldr r3, .L4032+156 + bne .L4012 + ldr r2, [sp] + ldr r3, .L4049+104 cmp r2, r3 - bne .L3970 - ldr r2, [sp, #12] + bne .L4009 + ldr r2, [sp, #4] cmp r2, #504 - bhi .L3970 - ldr r3, .L4032+160 - add r0, sp, #16 - cmp r4, r3 - ldr r3, .L4032+48 + bhi .L4009 + ldr r3, .L4049+28 + cmp r4, r6 + add r0, sp, #8 ldreq r1, [r3, #2564] ldrne r1, [r3, #2568] add r1, r1, #8 -.L4027: +.L4045: bl memcpy -.L4028: - mov r0, r5 - add r1, sp, #8 - mov r2, #520 - b .L4014 -.L3946: - ldr r0, .L4032+164 + b .L4039 +.L4005: + ldr r0, .L4049+108 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3973 - ldr r2, [sp, #8] - ldr r3, .L4032+156 + bne .L4012 + ldr r2, [sp] + ldr r3, .L4049+104 cmp r2, r3 - bne .L3970 - ldr r2, [sp, #12] + bne .L4009 + ldr r2, [sp, #4] cmp r2, #504 - bhi .L3970 - cmp r4, r6 + bhi .L4009 + ldr r3, .L4049+112 add r2, r2, #8 - ldr r4, .L4032+48 - bne .L3988 - add r1, sp, #8 + cmp r4, r3 + ldr r4, .L4049+28 + bne .L4028 + mov r1, sp ldr r0, [r4, #2564] bl memcpy mov r0, #2 ldr r1, [r4, #2564] - b .L4021 -.L3988: - add r1, sp, #8 + b .L4042 +.L4028: + mov r1, sp ldr r0, [r4, #2568] bl memcpy ldr r1, [r4, #2568] mov r0, #3 -.L4021: +.L4042: bl StorageSysDataStore mov r4, r0 -.L3954: - ldr r0, .L4032+168 + b .L4008 +.L3998: + bl rknand_dev_flush +.L4043: + mov r4, #0 + b .L4008 +.L4048: + mvn r4, #1 +.L4008: + ldr r0, .L4049+116 mov r1, r4 bl printk mov r0, r4 - b .L3927 -.L3989: + b .L3993 +.L4029: mvn r0, #21 - b .L3927 -.L3990: - mvn r0, #1 -.L3927: - add sp, sp, #532 +.L3993: + add sp, sp, #524 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L4033: +.L4050: .align 2 -.L4032: - .word 1074033155 - .word 1074029570 +.L4049: .word 1074031656 - .word 1074031666 - .word 1074033235 - .word 1074034193 + .word 1074029694 + .word 1074034192 .word 1074034194 - .word .LC181 - .word .LC183 - .word .LC184 - .word .LC185 - .word .LC182 - .word .LANCHOR4 .word .LC186 .word .LC187 + .word 1263358532 + .word .LANCHOR4 + .word -1067903959 .word .LC188 .word .LC189 - .word .LC190 - .word .LC191 - .word .LC192 - .word .LC193 - .word 1263358532 - .word -1067903959 - .word .LC194 - .word .LC195 .word 1112753220 .word 1146313043 - .word .LC196 + .word .LC190 .word 1112755781 - .word .LC197 + .word .LC191 .word 1094995539 .word .LANCHOR4+2048 - .word .LC198 + .word 1074031666 + .word .LC192 .word 1074031676 - .word .LC199 - .word .LC200 + .word .LC193 + .word .LC194 .word 1280262987 - .word .LC201 - .word .LC202 + .word .LC195 + .word .LC196 .word 1145980246 - .word 1074034192 - .word .LC203 - .word .LC204 + .word .LC197 + .word 1074034193 + .word .LC198 .fnend .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 2 @@ -24466,21 +24543,21 @@ rk_ftl_storage_sys_init: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r2, #512 - ldr r4, .L4044 + ldr r4, .L4061 mvn r3, #0 mov r5, #0 add r0, r4, #2048 - ldr r1, [r4, #2000] - str r3, [r4, #2024] + ldr r1, [r4, #2004] + str r3, [r4, #2028] add r3, r1, #512 str r3, [r4, #2032] str r1, [r4, #2044] add r3, r1, #1024 add r1, r1, #1536 str r3, [r4, #2564] - strb r5, [r4, #2016] - str r5, [r4, #2020] - str r5, [r4, #2028] + strb r5, [r4, #2020] + str r5, [r4, #2024] + str r5, [r4, #2572] str r1, [r4, #2568] bl ftl_memcpy ldr r6, [r4, #2044] @@ -24490,23 +24567,23 @@ rk_ftl_storage_sys_init: ldr r3, [r6, #16] cmp r7, r5 str r3, [r4, #2040] - beq .L4035 + beq .L4052 mov r0, r6 mov r1, #508 bl js_hash cmp r7, r0 - beq .L4035 + beq .L4052 str r5, [r6, #16] - ldr r0, .L4044+4 + ldr r0, .L4061+4 str r5, [r4, #2040] bl printk -.L4035: +.L4052: ldr r3, [r4, #2040] mov r0, #2 ldr r1, [r4, #2564] cmp r3, #0 - ldrne r3, .L4044 - ldrne r2, .L4044+8 + ldrne r3, .L4061 + ldrne r2, .L4061+8 strne r2, [r3, #2036] bl StorageSysDataLoad ldr r1, [r4, #2568] @@ -24514,11 +24591,11 @@ rk_ftl_storage_sys_init: bl StorageSysDataLoad ldmfd sp!, {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L4045: +.L4062: .align 2 -.L4044: +.L4061: .word .LANCHOR4 - .word .LC205 + .word .LC199 .word -1067903959 .fnend .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init @@ -24545,33 +24622,33 @@ rk_ftl_vendor_storage_init: .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r0, #65536 bl ftl_malloc - ldr r6, .L4058 + ldr r6, .L4075 cmp r0, #0 - str r0, [r6, #2572] - beq .L4053 - ldr r9, .L4058+4 + str r0, [r6, #2576] + beq .L4070 + ldr r9, .L4075+4 mov r8, #0 mov r4, r8 mov r7, r8 mov r10, r6 -.L4051: +.L4068: mov r0, r7, asl #7 mov r1, #128 - ldr r2, [r6, #2572] + ldr r2, [r6, #2576] bl FlashBootVendorRead cmp r0, #0 - bne .L4049 - ldr r3, [r10, #2572] - ldr r0, .L4058+8 + bne .L4066 + ldr r3, [r10, #2576] + ldr r0, .L4075+8 add r2, r3, #61440 ldr r1, [r3] ldr r2, [r2, #4092] ldr r3, [r3, #4] bl printk - ldr r5, [r10, #2572] + ldr r5, [r10, #2576] ldr r3, [r5] cmp r3, r9 - bne .L4050 + bne .L4067 add r2, r5, #61440 ldr r3, [r5, #4] ldr r1, [r2, #4092] @@ -24583,51 +24660,51 @@ rk_ftl_vendor_storage_init: cmp r2, #0 movne r8, r7 movne r4, r3 -.L4050: +.L4067: cmp r7, #1 movne r7, #1 - bne .L4051 -.L4057: + bne .L4068 +.L4074: cmp r4, #0 - beq .L4052 + beq .L4069 mov r0, r8, asl #7 mov r1, #128 mov r2, r5 bl FlashBootVendorRead cmp r0, #0 - bne .L4049 + bne .L4066 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4052: +.L4069: mov r0, r5 mov r1, r4 mov r2, #65536 bl memset - ldr r3, .L4058+4 + ldr r3, .L4075+4 str r7, [r5, #4] mov r0, r4 str r3, [r5] add r3, r5, #61440 str r7, [r3, #4092] - ldr r3, .L4058+12 + ldr r3, .L4075+12 strh r4, [r5, #12] @ movhi strh r3, [r5, #14] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4049: - ldr r0, [r6, #2572] +.L4066: + ldr r0, [r6, #2576] bl kfree mov r3, #0 mvn r0, #0 - str r3, [r6, #2572] + str r3, [r6, #2576] ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4053: +.L4070: mvn r0, #11 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4059: +.L4076: .align 2 -.L4058: +.L4075: .word .LANCHOR4 .word 1380668996 - .word .LC206 + .word .LC200 .word -1032 .fnend .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init @@ -24640,19 +24717,19 @@ rk_ftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L4067 - ldr ip, [r3, #2572] + ldr r3, .L4084 + ldr ip, [r3, #2576] cmp ip, #0 ldrneh r4, [ip, #10] movne r3, #0 - beq .L4065 -.L4062: + beq .L4082 +.L4079: cmp r3, r4 - bcs .L4065 + bcs .L4082 add lr, ip, r3, asl #3 ldrh r5, [lr, #16] cmp r5, r0 - bne .L4063 + bne .L4080 ldrh r3, [lr, #20] mov r0, r1 ldrh r1, [lr, #18] @@ -24665,15 +24742,15 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L4063: +.L4080: add r3, r3, #1 - b .L4062 -.L4065: + b .L4079 +.L4082: mvn r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L4068: +.L4085: .align 2 -.L4067: +.L4084: .word .LANCHOR4 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -24687,12 +24764,12 @@ rk_ftl_vendor_write: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r2 - ldr r2, .L4092 + ldr r2, .L4109 .pad #28 sub sp, sp, #28 - ldr r4, [r2, #2572] + ldr r4, [r2, #2576] cmp r4, #0 - beq .L4084 + beq .L4101 mov r3, r1 add r7, r9, #63 ldrh r1, [r4, #8] @@ -24701,31 +24778,31 @@ rk_ftl_vendor_write: mov ip, r0 mov r6, #0 str r1, [sp, #4] -.L4071: +.L4088: cmp r6, r2 - bcs .L4090 + bcs .L4107 add r5, r4, r6, asl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L4072 + bne .L4089 ldrh r1, [r5, #20] add fp, r4, #1024 add r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L4073 + bls .L4090 ldrh r1, [r4, #14] cmp r1, r7 subcs r2, r2, #1 strcs r2, [sp, #12] ldrcsh r8, [r5, #18] - bcc .L4084 -.L4074: + bcc .L4101 +.L4091: ldr r2, [sp, #12] add r5, r5, #8 cmp r6, r2 - bcs .L4091 + bcs .L4108 ldrh r10, [r5, #20] add r0, fp, r8 ldrh r2, [r5, #16] @@ -24744,8 +24821,8 @@ rk_ftl_vendor_write: add r8, r8, r10 ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L4074 -.L4091: + b .L4091 +.L4108: add r6, r4, r6, asl #3 uxth r8, r8 add r0, fp, r8 @@ -24763,22 +24840,22 @@ rk_ftl_vendor_write: add r5, r3, r5 rsb r7, r7, r5 strh r7, [r4, #14] @ movhi - b .L4089 -.L4073: + b .L4106 +.L4090: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, fp, r0 bl memcpy strh r9, [r5, #20] @ movhi - b .L4089 -.L4072: + b .L4106 +.L4089: add r6, r6, #1 - b .L4071 -.L4090: + b .L4088 +.L4107: ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4084 + bcc .L4101 add r2, r4, r2, asl #3 uxth r7, r7 rsb r1, r7, r1 @@ -24798,7 +24875,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] add r3, r3, #1 strh r3, [r4, #10] @ movhi -.L4089: +.L4106: ldr r3, [r4, #4] add r2, r4, #61440 mov r1, #128 @@ -24816,16 +24893,16 @@ rk_ftl_vendor_write: mov r0, r3, asl #7 bl FlashBootVendorWrite mov r0, #0 - b .L4070 -.L4084: + b .L4087 +.L4101: mvn r0, #0 -.L4070: +.L4087: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4093: +.L4110: .align 2 -.L4092: +.L4109: .word .LANCHOR4 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -24844,34 +24921,34 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc subs r4, r0, #0 mvneq r5, #0 - beq .L4095 - ldr r3, .L4111 + beq .L4112 + ldr r3, .L4128 cmp r6, r3 - beq .L4097 + beq .L4114 add r3, r3, #1 cmp r6, r3 - beq .L4098 - b .L4109 -.L4097: + beq .L4115 + b .L4126 +.L4114: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4109 + bne .L4126 ldr r2, [r4] - ldr r3, .L4111+4 + ldr r3, .L4128+4 cmp r2, r3 - beq .L4100 -.L4101: + beq .L4117 +.L4118: mvn r5, #0 - b .L4096 -.L4100: + b .L4113 +.L4117: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read cmn r0, #1 - beq .L4101 + beq .L4118 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -24881,49 +24958,48 @@ rk_ftl_vendor_storage_ioctl: cmp r0, #0 moveq r5, #0 mvnne r5, #13 - b .L4096 -.L4098: + b .L4113 +.L4115: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4109 + bne .L4126 ldr r2, [r4] - ldr r3, .L4111+4 + ldr r3, .L4128+4 cmp r2, r3 - bne .L4101 + bne .L4118 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L4101 + bhi .L4118 mov r0, r4 mov r1, r5 add r2, r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4109 + bne .L4126 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L4096 -.L4109: + b .L4113 +.L4126: mvn r5, #13 -.L4096: +.L4113: mov r0, r4 bl kfree -.L4095: +.L4112: mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L4112: +.L4129: .align 2 -.L4111: +.L4128: .word 1074034177 .word 1448232273 .fnend .size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl - .global gTable_Crc32 .global SecureBootUnlockTryCount .global SecureBootCheckOK .global SecureBootEn @@ -25152,6 +25228,7 @@ rk_ftl_vendor_storage_ioctl: .global gNandMaxChip .global gNandMaxDie .global gFlashInterfaceMode + .global gFlashCurMode .global gFlashSlcMode .global gFlashOnfiModeEn .global gFlashToggleModeEn @@ -25169,9 +25246,9 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 2 .LANCHOR3 = . + 0 - .type __func__.20269, %object - .size __func__.20269, 11 -__func__.20269: + .type __func__.20390, %object + .size __func__.20390, 11 +__func__.20390: .ascii "FtlMemInit\000" .LC0: .byte 60 @@ -25179,32 +25256,169 @@ __func__.20269: .byte 24 .byte 16 .space 1 - .type __func__.21044, %object - .size __func__.21044, 17 -__func__.21044: + .type samsung_14nm_slc_rr, %object + .size samsung_14nm_slc_rr, 26 +samsung_14nm_slc_rr: + .byte 0 + .byte 10 + .byte -10 + .byte 20 + .byte -20 + .byte 30 + .byte -30 + .byte 40 + .byte -40 + .byte 50 + .byte -50 + .byte 60 + .byte -60 + .byte -70 + .byte -80 + .byte -90 + .byte -100 + .byte -110 + .byte -120 + .byte -9 + .byte 70 + .byte 80 + .byte 90 + .byte -125 + .byte -115 + .byte 100 + .space 2 + .type samsung_14nm_mlc_rr, %object + .size samsung_14nm_mlc_rr, 104 +samsung_14nm_mlc_rr: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -4 + .byte 3 + .byte -4 + .byte -6 + .byte 6 + .byte 0 + .byte 6 + .byte -10 + .byte -10 + .byte 4 + .byte -10 + .byte 16 + .byte 12 + .byte -4 + .byte 12 + .byte 8 + .byte -16 + .byte 10 + .byte -16 + .byte 24 + .byte 18 + .byte -14 + .byte 18 + .byte -4 + .byte -22 + .byte -16 + .byte -22 + .byte -8 + .byte 24 + .byte -9 + .byte 24 + .byte 8 + .byte -28 + .byte -4 + .byte -28 + .byte 16 + .byte 30 + .byte 10 + .byte 30 + .byte 10 + .byte -34 + .byte 6 + .byte -34 + .byte 0 + .byte 36 + .byte -8 + .byte 36 + .byte -8 + .byte -40 + .byte -2 + .byte -40 + .byte -20 + .byte -46 + .byte -4 + .byte -46 + .byte -30 + .byte 3 + .byte 0 + .byte 3 + .byte -3 + .byte -2 + .byte -4 + .byte -2 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -10 + .byte -6 + .byte -8 + .byte -6 + .byte -14 + .byte -9 + .byte -8 + .byte -9 + .byte -18 + .byte -52 + .byte 22 + .byte -52 + .byte 10 + .byte 42 + .byte 4 + .byte 42 + .byte 4 + .byte 48 + .byte -9 + .byte 48 + .byte 4 + .byte -58 + .byte 12 + .byte -58 + .byte 0 + .byte -64 + .byte -24 + .byte -64 + .byte -6 + .byte 9 + .byte 18 + .byte 9 + .byte 8 + .type __func__.21169, %object + .size __func__.21169, 17 +__func__.21169: .ascii "FtlDumpBlockInfo\000" .space 3 - .type __func__.21063, %object - .size __func__.21063, 16 -__func__.21063: + .type __func__.21188, %object + .size __func__.21188, 16 +__func__.21188: .ascii "FtlScanAllBlock\000" - .type __func__.21329, %object - .size __func__.21329, 17 -__func__.21329: + .type __func__.21456, %object + .size __func__.21456, 17 +__func__.21456: .ascii "ftl_scan_all_ppa\000" .space 3 - .type __func__.21012, %object - .size __func__.21012, 12 -__func__.21012: + .type __func__.21137, %object + .size __func__.21137, 12 +__func__.21137: .ascii "FtlCheckVpc\000" - .type __func__.21311, %object - .size __func__.21311, 21 -__func__.21311: + .type __func__.21436, %object + .size __func__.21436, 21 +__func__.21436: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.20342, %object - .size __func__.20342, 8 -__func__.20342: + .type __func__.20463, %object + .size __func__.20463, 8 +__func__.20463: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -25362,7 +25576,7 @@ __func__.20342: .LC76: .ascii "%s\012\000" .LC77: - .ascii "FTL version: 5.0.60 20200218\000" + .ascii "FTL version: 5.0.63 20200923\000" .LC78: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" @@ -25400,238 +25614,227 @@ __func__.20342: .LC94: .ascii "micron RR %d row=%x,count %d,status=%d\012\000" .LC95: - .ascii "ECC:%d\012\000" + .ascii "samsung RR %d row=%x,count %d,status=%d\012\000" .LC96: - .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" + .ascii "ECC:%d\012\000" .LC97: - .ascii "FlashLoadPhyInfo fail %x!!\012\000" + .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" .LC98: - .ascii "Read pageadd=%x ecc=%x err=%x\012\000" + .ascii "FlashLoadPhyInfo fail %x!!\012\000" .LC99: - .ascii "data:\000" + .ascii "Read pageadd=%x ecc=%x err=%x\012\000" .LC100: - .ascii "spare:\000" + .ascii "data:\000" .LC101: - .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" + .ascii "spare:\000" .LC102: - .ascii "FLFB:%d %d\012\000" + .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" .LC103: - .ascii "prog error: = %x\012\000" + .ascii "FLFB:%d %d\012\000" .LC104: - .ascii "prog read error: = %x\012\000" + .ascii "prog error: = %x\012\000" .LC105: - .ascii "prog read s error: = %x %x %x\012\000" + .ascii "prog read error: = %x\012\000" .LC106: - .ascii "prog read d error: = %x %x %x\012\000" + .ascii "prog read REFRESH: = %x\012\000" .LC107: + .ascii "prog read s error: = %x %x %x\012\000" +.LC108: + .ascii "prog read d error: = %x %x %x\012\000" +.LC109: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012" .ascii "\000" -.LC108: - .ascii "...%s enter...\012\000" -.LC109: - .ascii "superBlkID = %x vpc=%x\012\000" .LC110: - .ascii "flashmode = %x pagenum = %x %x\012\000" + .ascii "...%s enter...\012\000" .LC111: + .ascii "superBlkID = %x vpc=%x\012\000" +.LC112: + .ascii "flashmode = %x pagenum = %x %x\012\000" +.LC113: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC112: +.LC114: .ascii "blk = %x vpc=%x mode = %x\012\000" -.LC113: +.LC115: .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC114: +.LC116: .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC115: - .ascii "ftl_scan_all_ppa blk %x page %x\012\000" -.LC116: +.LC117: + .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000" +.LC118: + .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........." + .ascii "..... is bad block\012\000" +.LC119: .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC117: - .ascii "%s finished\012\000" -.LC118: - .ascii "FlashMakeFactorBbt %d\012\000" -.LC119: - .ascii "bad block:%d %d\012\000" .LC120: - .ascii "FMFB:%d %d\012\000" + .ascii "%s finished\012\000" .LC121: - .ascii "E:bad block:%d\012\000" + .ascii "FlashMakeFactorBbt %d\012\000" .LC122: - .ascii "FMFB:Save %d %d\012\000" + .ascii "bad block:%d %d\012\000" .LC123: - .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" + .ascii "FMFB:%d %d\012\000" .LC124: - .ascii "FtlBbmTblFlush error:%x\012\000" + .ascii "E:bad block:%d\012\000" .LC125: - .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" + .ascii "FMFB:Save %d %d\012\000" .LC126: - .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" + .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" .LC127: - .ascii "decrement_vpc_count %x = %d\012\000" + .ascii "FtlBbmTblFlush error:%x\012\000" .LC128: - .ascii "decrement_vpc_count %x = %d in free list\012\000" + .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" .LC129: - .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" + .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" .LC130: - .ascii "page map lost: %x %x\012\000" + .ascii "decrement_vpc_count %x = %d\012\000" .LC131: - .ascii "FtlMapWritePage error = %x\012\000" + .ascii "decrement_vpc_count %x = %d in free list\012\000" .LC132: - .ascii "FtlMapWritePage error = %x error count = %d\012\000" + .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" .LC133: - .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" + .ascii "page map lost: %x %x\012\000" .LC134: - .ascii "no ect\000" + .ascii "FtlMapWritePage error = %x\012\000" .LC135: - .ascii "slc mode\000" + .ascii "FtlMapWritePage error = %x error count = %d\012\000" .LC136: - .ascii "BBT:\000" + .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" .LC137: - .ascii "region_id = %x phyAddr = %x\012\000" + .ascii "no ect\000" .LC138: - .ascii "map_ppn:\000" + .ascii "slc mode\000" .LC139: - .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" + .ascii "BBT:\000" .LC140: - .ascii "FtlCheckVpc2 %x = %x %x\012\000" + .ascii "region_id = %x phyAddr = %x\012\000" .LC141: - .ascii "free blk vpc error %x = %x %x\012\000" + .ascii "map_ppn:\000" .LC142: - .ascii "Ftlscanalldata = %x\012\000" + .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" .LC143: - .ascii "scan lpa = %x ppa= %x\012\000" + .ascii "FtlCheckVpc2 %x = %x %x\012\000" .LC144: + .ascii "free blk vpc error %x = %x %x\012\000" +.LC145: + .ascii "error_flag %x\012\000" +.LC146: + .ascii "Ftlscanalldata = %x\012\000" +.LC147: + .ascii "scan lpa = %x ppa= %x\012\000" +.LC148: .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC145: - .ascii "RSB refresh addr %x\012\000" -.LC146: - .ascii "spuer block %x vpn is 0\012 \000" -.LC147: - .ascii "g_recovery_ppa %x ver %x\012 \000" -.LC148: - .ascii "FtlCheckVpc %x = %x %x\012\000" .LC149: - .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" + .ascii "RSB refresh addr %x\012\000" .LC150: - .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" + .ascii "spuer block %x vpn is 0\012 \000" .LC151: - .ascii "GC des block %x done\012\000" + .ascii "g_recovery_ppa %x ver %x\012 \000" .LC152: - .ascii "%d GC datablk = %x vpc %x %x\012\000" + .ascii "FtlCheckVpc %x = %x %x\012\000" .LC153: - .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" + .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" .LC154: - .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" + .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" .LC155: - .ascii "rk_ftl_de_init %x\012\000" + .ascii "GC des block %x done\012\000" .LC156: + .ascii "too many bad block = %d %d\012\000" +.LC157: + .ascii "%d GC datablk = %x vpc %x %x\012\000" +.LC158: + .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" +.LC159: + .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" +.LC160: + .ascii "rk_ftl_de_init %x\012\000" +.LC161: .ascii "...%s: no bad block mapping table, format device\012" .ascii "\000" -.LC157: - .ascii "...%s FtlSysBlkInit error ,format device!\012\000" -.LC158: - .ascii "FtlInit %x\012\000" -.LC159: - .ascii "fix power lost blk = %x vpc=%x\012\000" -.LC160: - .ascii "erase power lost blk = %x vpc=%x\012\000" -.LC161: - .ascii "FtlWrite: lpa error:%x %x\012\000" .LC162: + .ascii "...%s FtlSysBlkInit error ,format device!\012\000" +.LC163: + .ascii "FtlInit %x\012\000" +.LC164: + .ascii "fix power lost blk = %x vpc=%x\012\000" +.LC165: + .ascii "erase power lost blk = %x vpc=%x\012\000" +.LC166: + .ascii "FtlWrite: lpa error:%x %x\012\000" +.LC167: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012" .ascii "\000" -.LC163: +.LC168: .ascii ":\000" -.LC164: +.LC169: .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC165: - .ascii "Mblk:\000" -.LC166: - .ascii "L2P:\000" -.LC167: - .ascii "L2PC:\000" -.LC168: - .ascii "IdBlockReadData %x %x\012\000" -.LC169: - .ascii "IdBlockReadData %x %x ret= %x\012\000" .LC170: - .ascii "write_idblock fix data %x %x\012\000" + .ascii "Mblk:\000" .LC171: - .ascii "idblk:\000" + .ascii "L2P:\000" .LC172: - .ascii "idb reverse %x %x\012\000" + .ascii "L2PC:\000" .LC173: - .ascii "write_idblock totle_sec %x %x %x %x\012\000" + .ascii "write_idblock fix data %x %x\012\000" .LC174: - .ascii "IDBlockWriteData %x %x\012\000" + .ascii "idblk:\000" .LC175: - .ascii "IDBlockWriteData %x %x ret= %x\012\000" + .ascii "idb reverse %x %x\012\000" .LC176: + .ascii "write_idblock totle_sec %x %x %x %x\012\000" +.LC177: + .ascii "IDBlockWriteData %x %x\012\000" +.LC178: + .ascii "IDBlockWriteData %x %x ret= %x\012\000" +.LC179: + .ascii "IdBlockReadData %x %x\012\000" +.LC180: + .ascii "IdBlockReadData %x %x ret= %x\012\000" +.LC181: .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x" .ascii "\012\000" -.LC177: - .ascii "write\000" -.LC178: - .ascii "read\000" -.LC179: - .ascii "write_idblock error %d\012\000" -.LC180: - .ascii "wl_lba %p %x %x %x\012\000" -.LC181: - .ascii "READ_SECTOR_IO\012\000" .LC182: - .ascii "rk_copy_from_user error\012\000" + .ascii "write\000" .LC183: - .ascii "READ_SECTOR_IO %x %x\012\000" + .ascii "read\000" .LC184: - .ascii "rk_copy_to_user error\012\000" + .ascii "write_idblock error %d\012\000" .LC185: - .ascii "WRITE_SECTOR_IO\012\000" + .ascii "wl_lba %p %x %x %x\012\000" .LC186: - .ascii "WRITE_SECTOR_IO %x %x\012\000" -.LC187: - .ascii "END_WRITE_SECTOR_IO\012\000" -.LC188: - .ascii "END_WRITE_SECTOR_IO %x %x\012\000" -.LC189: - .ascii "GET_FLASH_INFO_IO\012\000" -.LC190: - .ascii "GET_BAD_BLOCK_IO\012\000" -.LC191: - .ascii "GET_LOCK_FLAG_IO\012\000" -.LC192: - .ascii "GET_PUBLIC_KEY_IO\012\000" -.LC193: .ascii "RKNAND_GET_DRM_KEY\012\000" -.LC194: +.LC187: + .ascii "rk_copy_from_user error\012\000" +.LC188: .ascii "RKNAND_STORE_DRM_KEY\012\000" -.LC195: +.LC189: .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" -.LC196: +.LC190: .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" -.LC197: +.LC191: .ascii "RKNAND_GET_SN_SECTOR\012\000" -.LC198: +.LC192: .ascii "RKNAND_LOADER_UNLOCK\012\000" -.LC199: +.LC193: .ascii "RKNAND_LOADER_STATUS\012\000" -.LC200: +.LC194: .ascii "RKNAND_LOADER_LOCK\012\000" -.LC201: +.LC195: .ascii "LockKey not match %d\012\000" -.LC202: +.LC196: .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" -.LC203: +.LC197: .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" -.LC204: +.LC198: .ascii "return ret = %lx\012\000" -.LC205: +.LC199: .ascii "secureBootEn check error\012\000" -.LC206: +.LC200: .ascii "\0013vendor storage %x,%x,%x\012\000" .data .align 2 @@ -26023,7 +26226,7 @@ gNandParaInfo: gFtlInitStatus: .word -1 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2656 + .size NandFlashParaTbl, 2752 NandFlashParaTbl: .byte 6 .byte 44 @@ -27352,6 +27555,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte -119 + .byte -120 + .byte 36 + .byte 59 + .byte -87 + .byte 0 + .byte 7 + .byte 1 + .byte 16 + .short 192 + .byte 2 + .byte 2 + .short 2048 + .short 279 + .byte 12 + .byte 0 + .byte 24 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .space 4 + .byte 6 .byte -104 .byte -41 .byte -124 @@ -27716,6 +27945,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte -104 + .byte -34 + .byte -108 + .byte -109 + .byte 118 + .byte -47 + .byte 1 + .byte 1 + .byte 32 + .short 256 + .byte 2 + .byte 2 + .short 1074 + .short 1497 + .byte 2 + .byte 35 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 4 + .byte 0 + .byte 0 + .byte 0 + .space 4 + .byte 6 .byte 69 .byte -34 .byte -108 @@ -28027,7 +28282,7 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 - .byte 6 + .byte 5 .byte -20 .byte -41 .byte -108 @@ -28183,6 +28438,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 + .byte 6 + .byte -20 + .byte -34 + .byte -108 + .byte -61 + .byte -92 + .byte -54 + .byte 0 + .byte 1 + .byte 32 + .short 792 + .byte 2 + .byte 1 + .short 688 + .short 1217 + .byte 11 + .byte 50 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .space 4 .type NandOptPara, %object .size NandOptPara, 128 NandOptPara: @@ -28331,265 +28612,6 @@ ftl_gc_temp_block_bops_scan_page_addr: .size power_up_flag, 4 power_up_flag: .word 1 - .type gTable_Crc32, %object - .size gTable_Crc32, 1024 -gTable_Crc32: - .word 0 - .word 79760823 - .word 159521646 - .word 222500569 - .word 319043292 - .word 398801771 - .word 445001138 - .word 507977733 - .word 638086584 - .word 583622671 - .word 797603542 - .word 726367073 - .word 890002276 - .word 835540691 - .word 1015955466 - .word 944721341 - .word 1276173168 - .word 1221711559 - .word 1167245342 - .word 1096011177 - .word 1595207084 - .word 1540743195 - .word 1452734146 - .word 1381497717 - .word 1780004552 - .word 1859763071 - .word 1671081382 - .word 1734058001 - .word 2031910932 - .word 2111671715 - .word 1889442682 - .word 1952421581 - .word -1742620960 - .word -1662993577 - .word -1851544178 - .word -1788698567 - .word -1960476612 - .word -1880846965 - .word -2102944942 - .word -2040097051 - .word -1104553128 - .word -1159145745 - .word -1213480906 - .word -1284846207 - .word -1389499004 - .word -1444093901 - .word -1531971862 - .word -1603339427 - .word -734958192 - .word -789553113 - .word -575441154 - .word -646808759 - .word -952804532 - .word -1007397125 - .word -826851294 - .word -898216555 - .word -231145432 - .word -151515745 - .word -71623866 - .word -8775951 - .word -516081932 - .word -436454589 - .word -390124134 - .word -327278547 - .word 880959607 - .word 809725376 - .word 1023441689 - .word 968980142 - .word 663115435 - .word 591878940 - .word 772033989 - .word 717570162 - .word 311037391 - .word 374014072 - .word 453514913 - .word 533273366 - .word 26098451 - .word 89077412 - .word 135012477 - .word 214773194 - .word 2022882055 - .word 2085861040 - .word 1896915049 - .word 1976675806 - .word 1805028827 - .word 1868005484 - .word 1645516469 - .word 1725274882 - .word 1587205823 - .word 1515969288 - .word 1461243345 - .word 1406779494 - .word 1302257763 - .word 1231023572 - .word 1142749965 - .word 1088288442 - .word -1398548841 - .word -1469916384 - .word -1524511239 - .word -1579106226 - .word -1079517109 - .word -1150882308 - .word -1239024859 - .word -1293617518 - .word -1968456913 - .word -1905609064 - .word -2094423999 - .word -2014794250 - .word -1716548109 - .word -1653702588 - .word -1876060515 - .word -1796433110 - .word -525136409 - .word -462290864 - .word -382658935 - .word -303031490 - .word -206095557 - .word -143247732 - .word -97181611 - .word -17551902 - .word -960798625 - .word -1032163864 - .word -818316495 - .word -872909178 - .word -708880765 - .word -780248268 - .word -599962131 - .word -654557094 - .word 1761919214 - .word 1841679705 - .word 1619450752 - .word 1682429495 - .word 2046883378 - .word 2126642053 - .word 1937960284 - .word 2000937195 - .word 1326230870 - .word 1271767265 - .word 1183757880 - .word 1112521615 - .word 1544067978 - .word 1489606205 - .word 1435140324 - .word 1363905875 - .word 622074782 - .word 567612969 - .word 748028144 - .word 676793671 - .word 907029826 - .word 852566261 - .word 1066546732 - .word 995310491 - .word 52196902 - .word 131955601 - .word 178154824 - .word 241131775 - .word 270024954 - .word 349785421 - .word 429546388 - .word 492525091 - .word -249203186 - .word -169575495 - .word -123245216 - .word -60399401 - .word -501137198 - .word -421507739 - .word -341615684 - .word -278768117 - .word -684909642 - .word -739502591 - .word -558956328 - .word -630321809 - .word -1003934358 - .word -1058529059 - .word -844417532 - .word -915784781 - .word -1120555650 - .word -1175150391 - .word -1263028720 - .word -1334395993 - .word -1372480606 - .word -1427073515 - .word -1481408308 - .word -1552773765 - .word -1690451770 - .word -1610822287 - .word -1832920152 - .word -1770072545 - .word -2009467366 - .word -1929839699 - .word -2118390412 - .word -2055544637 - .word 1569104025 - .word 1497869614 - .word 1409596407 - .word 1355134528 - .word 1317180997 - .word 1245944818 - .word 1191218475 - .word 1136754844 - .word 2072956193 - .word 2135933078 - .word 1913443919 - .word 1993202680 - .word 1753938941 - .word 1816917578 - .word 1627971731 - .word 1707732260 - .word 295074793 - .word 358053470 - .word 403988615 - .word 483749168 - .word 43142453 - .word 106119298 - .word 185620059 - .word 265378796 - .word 933107281 - .word 861871078 - .word 1042025791 - .word 987562120 - .word 614080653 - .word 542846266 - .word 756562915 - .word 702101076 - .word -978905479 - .word -1050272818 - .word -869987049 - .word -924581728 - .word -693952347 - .word -765317870 - .word -551470133 - .word -606062980 - .word -475038783 - .word -412191114 - .word -366124881 - .word -286495464 - .word -257209059 - .word -194363222 - .word -114731405 - .word -35103804 - .word -1984443127 - .word -1921597250 - .word -2143955353 - .word -2064327728 - .word -1699480619 - .word -1636632990 - .word -1825447749 - .word -1745818356 - .word -1346395983 - .word -1417761530 - .word -1505903649 - .word -1560496536 - .word -1128556947 - .word -1199924262 - .word -1254519549 - .word -1309114188 .bss .align 2 .LANCHOR0 = . + 0 @@ -28617,6 +28639,10 @@ gNandRandomizer: .size gNandChipMap, 32 gNandChipMap: .space 32 + .type gpNandParaInfo, %object + .size gpNandParaInfo, 4 +gpNandParaInfo: + .space 4 .type gNandOptPara, %object .size gNandOptPara, 32 gNandOptPara: @@ -28677,10 +28703,6 @@ DieAddrs: .type FlashWaitBusyScheduleEn, %object .size FlashWaitBusyScheduleEn, 4 FlashWaitBusyScheduleEn: - .space 4 - .type gpNandParaInfo, %object - .size gpNandParaInfo, 4 -gpNandParaInfo: .space 4 .type g_retryMode, %object .size g_retryMode, 1 @@ -28707,6 +28729,10 @@ IDByte: .size gDieOp, 128 gDieOp: .space 128 + .type gFlashCurMode, %object + .size gFlashCurMode, 1 +gFlashCurMode: + .space 1 .type gFlashInterfaceMode, %object .size gFlashInterfaceMode, 1 gFlashInterfaceMode: @@ -28715,11 +28741,20 @@ gFlashInterfaceMode: .size gNandMaxDie, 1 gNandMaxDie: .space 1 - .space 2 + .space 1 .type DieCsIndex, %object .size DieCsIndex, 8 DieCsIndex: .space 8 + .type gMultiPageProgEn, %object + .size gMultiPageProgEn, 1 +gMultiPageProgEn: + .space 1 + .space 3 + .type g_inkDie_check_enable, %object + .size g_inkDie_check_enable, 4 +g_inkDie_check_enable: + .space 4 .type idb_flash_slc_mode, %object .size idb_flash_slc_mode, 4 idb_flash_slc_mode: @@ -28761,15 +28796,7 @@ gNandcEccBits: .size gNandFlashEccBits, 1 gNandFlashEccBits: .space 1 - .type gMultiPageProgEn, %object - .size gMultiPageProgEn, 1 -gMultiPageProgEn: - .space 1 - .space 2 - .type g_inkDie_check_enable, %object - .size g_inkDie_check_enable, 4 -g_inkDie_check_enable: - .space 4 + .space 3 .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: @@ -29533,10 +29560,6 @@ idb_buf: .type idb_last_lba, %object .size idb_last_lba, 4 idb_last_lba: - .space 4 - .type g_idb_buffer, %object - .size g_idb_buffer, 4 -g_idb_buffer: .space 4 .type gpDrmKeyInfo, %object .size gpDrmKeyInfo, 4 @@ -29569,6 +29592,10 @@ gpVendor0Info: .type gpVendor1Info, %object .size gpVendor1Info, 4 gpVendor1Info: + .space 4 + .type g_idb_buffer, %object + .size g_idb_buffer, 4 +g_idb_buffer: .space 4 .type g_vendor, %object .size g_vendor, 4 diff --git a/drivers/rk_nand/rk_ftl_arm_v7_thumb.S b/drivers/rk_nand/rk_ftl_arm_v7_thumb.S index b0907fe82b7d..af0eb2538e46 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: 2020-02-18 + * date: 2020-09-23 */ .syntax unified .arch armv7-a @@ -201,30 +201,39 @@ FlashReadCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, lr} - .save {r4, lr} + ldr r2, .L47 + push {r4, r5, lr} + .save {r4, r5, lr} + add r3, r2, r0, lsl #3 + ldr r2, [r2, #44] + ldr r4, [r3, #12] + ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb r2, [r2, #7] @ zero_extendqisi2 + lsls r3, r3, #8 + cmp r2, #1 + it eq + addeq r2, r4, r3 + add r3, r3, r4 + itt eq + moveq r5, #38 + streq r5, [r2, #2056] + movs r2, #0 + str r2, [r3, #2056] + str r2, [r3, #2052] + str r2, [r3, #2052] + uxtb r2, r1 + str r2, [r3, #2052] + lsrs r2, r1, #8 + str r2, [r3, #2052] lsrs r2, r1, #16 - ldr r4, .L46 - add r4, r4, r0, lsl #3 - ldr r3, [r4, #12] - ldrb r4, [r4, #16] @ zero_extendqisi2 - add r3, r3, r4, lsl #8 - movs r4, #0 - str r4, [r3, #2056] - str r4, [r3, #2052] - str r4, [r3, #2052] - uxtb r4, r1 - str r4, [r3, #2052] - lsrs r4, r1, #8 - str r4, [r3, #2052] str r2, [r3, #2052] movs r2, #48 str r2, [r3, #2056] - pop {r4, lr} + pop {r4, r5, lr} b FlashSetRandomizer -.L47: +.L48: .align 2 -.L46: +.L47: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -240,17 +249,17 @@ FlashReadDpDataOutCmd: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} uxtb r6, r1 - ldr r4, .L52 + ldr r4, .L53 lsrs r5, r1, #8 add r3, r4, r0, lsl #3 - ldrb r4, [r4, #60] @ zero_extendqisi2 + ldrb r4, [r4, #64] @ zero_extendqisi2 ldr r2, [r3, #12] ldrb r3, [r3, #16] @ zero_extendqisi2 cmp r4, #1 lsr r4, r1, #16 lsl r3, r3, #8 add r3, r3, r2 - bne .L49 + bne .L50 movs r2, #6 str r2, [r3, #2056] movs r2, #0 @@ -259,8 +268,8 @@ FlashReadDpDataOutCmd: str r6, [r3, #2052] str r5, [r3, #2052] str r4, [r3, #2052] - b .L51 -.L49: + b .L52 +.L50: movs r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -272,14 +281,14 @@ FlashReadDpDataOutCmd: str r4, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] -.L51: +.L52: movs r2, #224 str r2, [r3, #2056] pop {r4, r5, r6, lr} b FlashSetRandomizer -.L53: +.L54: .align 2 -.L52: +.L53: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd @@ -295,7 +304,7 @@ FlashProgFirstCmd: push {r4, lr} .save {r4, lr} lsrs r2, r1, #16 - ldr r4, .L55 + ldr r4, .L56 add r4, r4, r0, lsl #3 ldr r3, [r4, #12] ldrb r4, [r4, #16] @ zero_extendqisi2 @@ -312,9 +321,9 @@ FlashProgFirstCmd: str r2, [r3, #2052] pop {r4, lr} b FlashSetRandomizer -.L56: +.L57: .align 2 -.L55: +.L56: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -329,12 +338,12 @@ FlashEraseCmd: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, lr} .save {r4, r5, lr} - ldr r5, .L62 + ldr r5, .L63 add r0, r5, r0, lsl #3 ldrb r3, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] lsls r3, r3, #8 - cbz r2, .L58 + cbz r2, .L59 adds r2, r4, r3 movs r0, #96 str r0, [r2, #2056] @@ -346,7 +355,7 @@ FlashEraseCmd: str r0, [r2, #2052] ldr r2, [r5, #4] add r1, r1, r2 -.L58: +.L59: add r3, r3, r4 movs r2, #96 str r2, [r3, #2056] @@ -359,9 +368,9 @@ FlashEraseCmd: movs r2, #208 str r2, [r3, #2056] pop {r4, r5, pc} -.L63: +.L64: .align 2 -.L62: +.L63: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -377,9 +386,9 @@ FlashProgDpSecondCmd: push {r4, r5, lr} .save {r4, r5, lr} lsrs r2, r1, #16 - ldr r4, .L65 + ldr r4, .L66 add r5, r4, r0, lsl #3 - ldrb r4, [r4, #55] @ zero_extendqisi2 + ldrb r4, [r4, #59] @ zero_extendqisi2 ldr r3, [r5, #12] ldrb r5, [r5, #16] @ zero_extendqisi2 add r3, r3, r5, lsl #8 @@ -394,9 +403,9 @@ FlashProgDpSecondCmd: str r2, [r3, #2052] pop {r4, r5, lr} b FlashSetRandomizer -.L66: +.L67: .align 2 -.L65: +.L66: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -411,21 +420,21 @@ FlashProgSecondCmd: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L68 + ldr r3, .L69 add r0, r3, r0, lsl #3 - ldr r3, .L68+4 + ldr r3, .L69+4 ldr r4, [r0, #12] ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r3, [r3, #4] - ldr r0, .L68+8 + ldr r0, .L69+8 blx r3 add r4, r4, r5, lsl #8 movs r3, #16 str r3, [r4, #2056] pop {r3, r4, r5, pc} -.L69: +.L70: .align 2 -.L68: +.L69: .word .LANCHOR0 .word arm_delay_ops .word 214748300 @@ -441,17 +450,17 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L71 + ldr r2, .L72 add r0, r2, r0, lsl #3 - ldrb r2, [r2, #54] @ zero_extendqisi2 + ldrb r2, [r2, #58] @ zero_extendqisi2 ldrb r1, [r0, #16] @ zero_extendqisi2 ldr r3, [r0, #12] add r3, r3, r1, lsl #8 str r2, [r3, #2056] bx lr -.L72: +.L73: .align 2 -.L71: +.L72: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd @@ -464,25 +473,25 @@ js_hash: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L77 + ldr r3, .L78 add r1, r1, r0 push {r4, lr} .save {r4, lr} -.L74: +.L75: cmp r0, r1 - beq .L76 + beq .L77 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 .L74 -.L76: + b .L75 +.L77: mov r0, r3 pop {r4, pc} -.L78: +.L79: .align 2 -.L77: +.L78: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -523,28 +532,28 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L82 - ldr r2, [r3, #76] + ldr r3, .L83 + ldr r2, [r3, #80] ldr r1, [r2] - str r1, [r3, #80] - ldr r1, [r2, #4] str r1, [r3, #84] - ldr r1, [r2, #8] + ldr r1, [r2, #4] str r1, [r3, #88] - ldr r1, [r2, #12] + ldr r1, [r2, #8] str r1, [r3, #92] - ldr r1, [r2, #304] + ldr r1, [r2, #12] str r1, [r3, #96] - ldr r1, [r2, #308] + ldr r1, [r2, #304] str r1, [r3, #100] + ldr r1, [r2, #308] + str r1, [r3, #104] ldr r1, [r2, #336] ldr r2, [r2, #344] - str r1, [r3, #104] - str r2, [r3, #108] + str r1, [r3, #108] + str r2, [r3, #112] bx lr -.L83: +.L84: .align 2 -.L82: +.L83: .word .LANCHOR0 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend @@ -562,14 +571,14 @@ LogAddr2PhyAddr: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r0 - ldr r0, .L89 + ldr r0, .L90 mov r8, r3 ldr r4, [r7, #4] mov r10, r1 mov r9, r2 - ldrh r3, [r0, #126] + ldrh r3, [r0, #130] bic r4, r4, #-2147483648 - ldrh r5, [r0, #124] + ldrh r5, [r0, #128] mov r6, r0 ldrh fp, [r0, #4] smulbb r5, r5, r3 @@ -592,38 +601,38 @@ LogAddr2PhyAddr: smulbb r5, r0, r5 sub r3, r3, r5 uxth r3, r3 - bne .L86 - ldrb r2, [r6, #140] @ zero_extendqisi2 - cbnz r2, .L86 - ldr r2, .L89 + bne .L87 + ldrb r2, [r6, #144] @ zero_extendqisi2 + cbnz r2, .L87 + ldr r2, .L90 add r1, r2, r1, lsl #1 - ldrh r1, [r1, #144] -.L86: + ldrh r1, [r1, #148] +.L87: add r6, r6, r0, lsl #2 - ldr r2, [r6, #1168] + ldr r2, [r6, #1172] mla fp, fp, r3, r2 ldrb r3, [sp, #48] @ zero_extendqisi2 cmp r3, #1 add r1, r1, fp str r1, [r9] str r0, [r8] - bls .L88 + bls .L89 ldr r0, [r7, #4] ldr r3, [r7, #40] add r0, r0, #1024 subs r3, r0, r3 rsbs r0, r3, #0 adcs r0, r0, r3 - b .L87 -.L88: + b .L88 +.L89: movs r0, #0 -.L87: +.L88: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L90: +.L91: .align 2 -.L89: +.L90: .word .LANCHOR0 .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -637,14 +646,14 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L92 - ldr r2, [r3, #1200] - str r0, [r3, #1200] + ldr r3, .L93 + ldr r2, [r3, #1204] + str r0, [r3, #1204] mov r0, r2 bx lr -.L93: +.L94: .align 2 -.L92: +.L93: .word .LANCHOR0 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -658,13 +667,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L95 - ldr r3, [r3, #1204] + ldr r3, .L96 + ldr r3, [r3, #44] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L96: +.L97: .align 2 -.L95: +.L96: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -691,16 +700,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L99 + ldr r3, .L100 add r0, r3, r0, lsl #3 ldrb r2, [r0, #16] @ zero_extendqisi2 ldr r0, [r0, #12] adds r2, r2, #8 add r0, r0, r2, lsl #8 bx lr -.L100: +.L101: .align 2 -.L99: +.L100: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -714,16 +723,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L102 - ldr r2, [r3, #76] + ldr r3, .L103 + ldr r2, [r3, #80] lsls r3, r0, #8 orr r0, r3, r0, lsl #16 orr r3, r0, #1 str r3, [r2, #304] bx lr -.L103: +.L104: .align 2 -.L102: +.L103: .word .LANCHOR0 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara @@ -737,14 +746,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L105 + ldr r3, .L106 orr r0, r0, #16640 - ldr r3, [r3, #76] + ldr r3, [r3, #80] str r0, [r3, #344] bx lr -.L106: +.L107: .align 2 -.L105: +.L106: .word .LANCHOR0 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv @@ -758,20 +767,20 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L110 - ldr r2, [r3, #76] + ldr r3, .L111 + ldr r2, [r3, #80] ldr r3, [r2] - cbnz r0, .L108 + cbnz r0, .L109 bfi r3, r0, #13, #1 - b .L109 -.L108: - orr r3, r3, #253952 + b .L110 .L109: + orr r3, r3, #253952 +.L110: str r3, [r2] bx lr -.L111: +.L112: .align 2 -.L110: +.L111: .word .LANCHOR0 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode @@ -785,11 +794,11 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L119 + ldr r3, .L120 ands r1, r0, #6 - ldr r2, [r3, #76] + ldr r2, [r3, #80] ldr r3, [r2] - beq .L113 + beq .L114 orr r3, r3, #24576 lsls r1, r0, #29 bfc r3, #15, #1 @@ -805,16 +814,16 @@ NandcSetMode: str r1, [r2, #308] movs r1, #39 str r1, [r2, #308] - b .L115 -.L113: + b .L116 +.L114: bfi r3, r1, #13, #1 -.L115: +.L116: str r3, [r2] movs r0, #0 bx lr -.L120: +.L121: .align 2 -.L119: +.L120: .word .LANCHOR0 .fnend .size NandcSetMode, .-NandcSetMode @@ -828,7 +837,7 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L122 + ldr r2, .L123 add r0, r2, r0, lsl #3 movs r2, #1 ldr r1, [r0, #12] @@ -838,9 +847,9 @@ NandcFlashCs: bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L123: +.L124: .align 2 -.L122: +.L123: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -854,7 +863,7 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L125 + ldr r3, .L126 add r0, r3, r0, lsl #3 ldr r2, [r0, #12] ldr r3, [r2] @@ -862,9 +871,9 @@ NandcFlashDeCs: bfc r3, #17, #1 str r3, [r2] bx lr -.L126: +.L127: .align 2 -.L125: +.L126: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs @@ -880,17 +889,17 @@ NandcDelayns: push {r3, lr} .save {r3, lr} addw r0, r0, #999 - ldr r3, .L128 + ldr r3, .L129 umull r0, r1, r0, r3 - ldr r3, .L128+4 + ldr r3, .L129+4 ldr r3, [r3, #8] lsrs r0, r1, #6 blx r3 movs r0, #0 pop {r3, pc} -.L129: +.L130: .align 2 -.L128: +.L129: .word 274877907 .word arm_delay_ops .fnend @@ -907,7 +916,7 @@ FlashReadStatus: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r2, #112 - ldr r3, .L131 + ldr r3, .L132 add r0, r3, r0, lsl #3 ldrb r4, [r0, #16] @ zero_extendqisi2 ldr r5, [r0, #12] @@ -919,9 +928,9 @@ FlashReadStatus: bl NandcDelayns ldr r0, [r5, r4] pop {r3, r4, r5, pc} -.L132: +.L133: .align 2 -.L131: +.L132: .word .LANCHOR0 .fnend .size FlashReadStatus, .-FlashReadStatus @@ -937,16 +946,16 @@ ToshibaSetRRPara: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r8, r1, r1, lsl #2 - ldr r9, .L142+8 + ldr r9, .L143+8 movs r4, #0 - ldr r7, .L142 + ldr r7, .L143 mov r5, r0 add r10, r9, #256 mov r6, r1 -.L134: +.L135: ldrb r3, [r7, #1209] @ zero_extendqisi2 cmp r4, r3 - bcs .L141 + bcs .L142 movs r3, #85 str r3, [r5, #8] ldrsb r3, [r4, r10] @@ -955,31 +964,31 @@ ToshibaSetRRPara: bl NandcDelayns ldrb r3, [r7, #1208] @ zero_extendqisi2 cmp r3, #34 - bne .L135 + bne .L136 add r3, r4, r8 add r3, r3, r10 - b .L140 -.L135: + b .L141 +.L136: cmp r3, #35 - bne .L137 - ldr r2, .L142+4 + bne .L138 + ldr r2, .L143+4 add r3, r4, r8 add r3, r3, r2 -.L140: +.L141: ldrsb r3, [r3, #5] - b .L139 -.L137: + b .L140 +.L138: add r3, r9, r6 ldrsb r3, [r3, #400] -.L139: +.L140: str r3, [r5] adds r4, r4, #1 - b .L134 -.L141: - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L143: - .align 2 + b .L135 .L142: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L144: + .align 2 +.L143: .word .LANCHOR0 .word .LANCHOR1+304 .word .LANCHOR1 @@ -994,21 +1003,21 @@ SamsungSetRRPara: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L148 + ldr r3, .L149 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r1, r3, r1, lsl #2 movs r4, #0 - ldr r8, .L148+4 + ldr r8, .L149+4 adds r5, r1, #3 mov r9, #161 mov r6, r0 mov r7, r3 mov r10, r4 -.L145: +.L146: ldrb r3, [r8, #1209] @ zero_extendqisi2 cmp r4, r3 - bcs .L147 + bcs .L148 str r9, [r6, #8] mov r0, #300 str r10, [r6] @@ -1018,12 +1027,12 @@ SamsungSetRRPara: ldrsb r3, [r5, #1]! str r3, [r6] bl NandcDelayns - b .L145 -.L147: - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L149: - .align 2 + b .L146 .L148: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L150: + .align 2 +.L149: .word .LANCHOR1+408 .word .LANCHOR0 .fnend @@ -1041,29 +1050,29 @@ HynixSetRRPara: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r3 - ldr r5, .L158 + ldr r5, .L159 mov r6, r0 mov r9, r1 mov fp, r2 - ldr r3, [r5, #1204] + ldr r3, [r5, #44] ldrb r4, [r3, #19] @ zero_extendqisi2 lsls r3, r0, #3 cmp r4, #6 - bne .L151 + bne .L152 add r4, r5, r0, lsl #6 addw r4, r4, #1230 add r4, r4, r7, lsl #2 - b .L152 -.L151: + b .L153 +.L152: cmp r4, #7 - bne .L153 + bne .L154 mov r10, #160 add r4, r7, r7, lsl #2 mla r10, r10, r0, r5 addw r10, r10, #1238 add r4, r10, r4, lsl #1 - b .L152 -.L153: + b .L153 +.L154: cmp r4, #8 iteet ne addne r4, r7, r3 @@ -1073,7 +1082,7 @@ HynixSetRRPara: ite eq addeq r4, r4, r2 addwne r4, r4, #1230 -.L152: +.L153: add r3, r3, r5 mov r0, r6 add r9, r9, #-1 @@ -1088,9 +1097,9 @@ HynixSetRRPara: add r3, r10, r8 mov fp, r3 str r2, [r3, #2056] -.L155: +.L156: cmp r1, r9 - beq .L157 + beq .L158 ldrb r3, [r1, #1]! @ zero_extendqisi2 movs r0, #200 str r3, [fp, #2052] @@ -1099,8 +1108,8 @@ HynixSetRRPara: ldrsb r3, [r4, #1]! str r3, [fp, #2048] ldr r1, [sp, #4] - b .L155 -.L157: + b .L156 +.L158: add r8, r8, r10 movs r3, #22 mov r0, r6 @@ -1111,9 +1120,9 @@ HynixSetRRPara: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L159: +.L160: .align 2 -.L158: +.L159: .word .LANCHOR0 .fnend .size HynixSetRRPara, .-HynixSetRRPara @@ -1128,33 +1137,33 @@ FlashSetReadRetryDefault: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L166 - ldr r2, [r3, #1204] + ldr r3, .L167 + ldr r2, [r3, #44] ldrb r2, [r2, #19] @ zero_extendqisi2 subs r2, r2, #1 cmp r2, #7 - bhi .L160 + bhi .L161 movs r4, #0 mov r5, r3 -.L161: - ldr r2, .L166+4 +.L162: + ldr r2, .L167+4 uxtb r0, r4 ldrb r3, [r2, r4, lsl #3] @ zero_extendqisi2 cmp r3, #173 - bne .L162 + bne .L163 ldrb r1, [r5, #1211] @ zero_extendqisi2 subw r2, r2, #854 movs r3, #0 bl HynixSetRRPara -.L162: +.L163: adds r4, r4, #1 cmp r4, #4 - bne .L161 -.L160: + bne .L162 +.L161: pop {r3, r4, r5, pc} -.L167: +.L168: .align 2 -.L166: +.L167: .word .LANCHOR0 .word .LANCHOR0+2068 .fnend @@ -1170,51 +1179,51 @@ FlashReadStatusEN: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r5, .L178 + ldr r5, .L179 add r0, r5, r0, lsl #3 - ldr r3, [r5, #1204] + ldr r3, [r5, #44] ldrb r4, [r0, #16] @ zero_extendqisi2 ldr r6, [r0, #12] ldrb r3, [r3, #8] @ zero_extendqisi2 cmp r3, #2 lsl r3, r4, #8 add r4, r4, #8 - bne .L169 - cbnz r2, .L170 - ldrb r2, [r5, #57] @ zero_extendqisi2 - b .L177 -.L170: - ldrb r2, [r5, #58] @ zero_extendqisi2 -.L177: + bne .L170 + cbnz r2, .L171 + ldrb r2, [r5, #61] @ zero_extendqisi2 + b .L178 +.L171: + ldrb r2, [r5, #62] @ zero_extendqisi2 +.L178: add r3, r3, r6 str r2, [r3, #2056] - ldrb r0, [r5, #59] @ zero_extendqisi2 - cbz r0, .L173 + ldrb r0, [r5, #63] @ zero_extendqisi2 + cbz r0, .L174 movs r3, #0 add r5, r6, r4, lsl #8 -.L172: +.L173: cmp r3, r0 - bcs .L173 + bcs .L174 lsls r2, r3, #3 adds r3, r3, #1 lsr r2, r1, r2 uxtb r2, r2 str r2, [r5, #4] - b .L172 -.L169: + b .L173 +.L170: add r3, r3, r6 movs r2, #112 str r2, [r3, #2056] -.L173: +.L174: movs r0, #80 lsls r4, r4, #8 bl NandcDelayns ldr r0, [r6, r4] uxtb r0, r0 pop {r4, r5, r6, pc} -.L179: +.L180: .align 2 -.L178: +.L179: .word .LANCHOR0 .fnend .size FlashReadStatusEN, .-FlashReadStatusEN @@ -1232,16 +1241,21 @@ FlashWaitReadyEN: mov r4, r0 mov r5, r1 mov r6, r2 -.L184: +.L182: mov r0, r4 mov r1, r5 mov r2, r6 bl FlashReadStatusEN cmp r0, #255 mov r3, r0 - beq .L184 + beq .L182 lsls r3, r3, #25 - bpl .L184 + bmi .L183 + movs r0, #1 + movs r1, #3 + bl usleep_range + b .L182 +.L183: pop {r4, r5, r6, pc} .fnend .size FlashWaitReadyEN, .-FlashWaitReadyEN @@ -1266,7 +1280,7 @@ FlashWaitCmdDone: mov r0, r6 bl NandcFlashCs ldr r1, [r4, #2104] - ldr r2, [r5, #1168] + ldr r2, [r5, #1172] mov r0, r6 adds r2, r2, #0 it ne @@ -1393,7 +1407,7 @@ NandcWaitFlashReady: add r0, r3, r0, lsl #3 ldr r4, .L211+4 ldr r5, [r0, #12] - movs r0, #150 + movs r0, #130 bl NandcDelayns .L208: ldr r3, [r5] @@ -1401,8 +1415,9 @@ NandcWaitFlashReady: ldr r3, [sp, #4] lsls r3, r3, #22 bmi .L209 - movs r0, #10 - bl NandcDelayns + movs r0, #1 + movs r1, #2 + bl usleep_range subs r4, r4, #1 bne .L208 mov r0, #-1 @@ -1460,19 +1475,23 @@ flash_enter_slc_mode: .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 r4, .L218 - ldrb r3, [r4, #140] @ zero_extendqisi2 + push {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + mov r7, r0 + ldr r6, .L222 + ldrb r3, [r6, #144] @ zero_extendqisi2 cbz r3, .L216 - add r4, r4, r5, lsl #3 + add r4, r6, r7, lsl #3 bl NandcFlashCs - movs r0, #100 - ldr r3, [r4, #12] - ldrb r4, [r4, #16] @ zero_extendqisi2 - add r4, r3, r4, lsl #8 + ldrb r3, [r4, #2068] @ zero_extendqisi2 + ldrb r5, [r4, #16] @ zero_extendqisi2 + cmp r3, #44 + ldr r8, [r4, #12] + lsl r5, r5, #8 + bne .L218 + add r4, r8, r5 movs r3, #239 + movs r0, #50 str r3, [r4, #2056] movs r3, #145 str r3, [r4, #2052] @@ -1485,18 +1504,21 @@ flash_enter_slc_mode: str r3, [r4, #2048] str r3, [r4, #2048] bl NandcDelayns - mov r0, r5 +.L218: + add r5, r5, r8 + mov r0, r7 bl NandcWaitFlashReadyNoDelay movs r3, #218 - mov r0, r5 - str r3, [r4, #2056] - pop {r3, r4, r5, lr} - b NandcWaitFlashReady + mov r0, r7 + str r3, [r5, #2056] + bl NandcWaitFlashReady + movs r3, #2 + strb r3, [r6, #2228] .L216: - pop {r3, r4, r5, pc} -.L219: + pop {r4, r5, r6, r7, r8, pc} +.L223: .align 2 -.L218: +.L222: .word .LANCHOR0 .fnend .size flash_enter_slc_mode, .-flash_enter_slc_mode @@ -1509,19 +1531,23 @@ flash_exit_slc_mode: .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 r4, .L222 - ldrb r3, [r4, #140] @ zero_extendqisi2 - cbz r3, .L220 - add r4, r4, r5, lsl #3 + push {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + mov r7, r0 + ldr r6, .L230 + ldrb r3, [r6, #144] @ zero_extendqisi2 + cbz r3, .L224 + add r4, r6, r7, lsl #3 bl NandcFlashCs - movs r0, #100 - ldr r3, [r4, #12] - ldrb r4, [r4, #16] @ zero_extendqisi2 - add r4, r3, r4, lsl #8 + ldrb r3, [r4, #2068] @ zero_extendqisi2 + ldrb r5, [r4, #16] @ zero_extendqisi2 + cmp r3, #44 + ldr r8, [r4, #12] + lsl r5, r5, #8 + bne .L226 + add r4, r8, r5 movs r3, #239 + movs r0, #50 str r3, [r4, #2056] movs r3, #145 str r3, [r4, #2052] @@ -1535,18 +1561,21 @@ flash_exit_slc_mode: str r3, [r4, #2048] str r3, [r4, #2048] bl NandcDelayns - mov r0, r5 +.L226: + add r5, r5, r8 + mov r0, r7 bl NandcWaitFlashReadyNoDelay movs r3, #223 - mov r0, r5 - str r3, [r4, #2056] - pop {r3, r4, r5, lr} - b NandcWaitFlashReady -.L220: - pop {r3, r4, r5, pc} -.L223: + mov r0, r7 + str r3, [r5, #2056] + bl NandcWaitFlashReady + movs r3, #0 + strb r3, [r6, #2228] +.L224: + pop {r4, r5, r6, r7, r8, pc} +.L231: .align 2 -.L222: +.L230: .word .LANCHOR0 .fnend .size flash_exit_slc_mode, .-flash_exit_slc_mode @@ -1596,13 +1625,13 @@ FlashSetInterfaceMode: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r5, .L253 + ldr r5, .L261 movs r4, #0 movs r7, #239 mov lr, #128 mov ip, #1 mov r8, #35 - ldrb r3, [r5, #2228] @ zero_extendqisi2 + ldrb r3, [r5, #2229] @ zero_extendqisi2 mov r9, #32 mov r10, #5 and r2, r3, #1 @@ -1613,81 +1642,81 @@ FlashSetInterfaceMode: str r3, [sp, #8] add r3, r5, #12 str r3, [sp, #4] -.L235: - ldr r1, .L253+4 +.L243: + ldr r1, .L261+4 ldr r3, [sp, #4] ldrb r1, [r4, r1] @ zero_extendqisi2 ldr r6, [r4, r3] add r3, r3, r4 cmp r1, #152 ldr r3, [r3, #4] - beq .L226 + beq .L234 cmp r1, #69 - beq .L226 + beq .L234 cmp r1, #173 - beq .L226 + beq .L234 cmp r1, #44 - bne .L227 -.L226: + bne .L235 +.L234: cmp r0, #1 uxtb r3, r3 - bne .L228 + bne .L236 ldr r5, [sp, #12] - cbz r5, .L227 + cbz r5, .L235 lsls r3, r3, #8 cmp r1, #173 add fp, r6, r3 str r7, [fp, #2056] - bne .L229 + bne .L237 str r0, [fp, #2052] - b .L252 -.L229: + b .L260 +.L237: cmp r1, #44 itete eq streq r0, [fp, #2052] strne lr, [fp, #2052] streq r10, [fp, #2048] strne r0, [fp, #2048] - b .L233 -.L228: + b .L241 +.L236: ldr r5, [sp, #8] - cbz r5, .L227 + cbz r5, .L235 lsls r3, r3, #8 cmp r1, #173 add fp, r6, r3 str r7, [fp, #2056] - bne .L232 + bne .L240 str ip, [fp, #2052] str r9, [fp, #2048] - b .L233 -.L232: + b .L241 +.L240: cmp r1, #44 - bne .L234 + bne .L242 str ip, [fp, #2052] str r8, [fp, #2048] - b .L233 -.L234: + b .L241 +.L242: str lr, [fp, #2052] -.L252: +.L260: str r2, [fp, #2048] -.L233: +.L241: add r3, r3, r6 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L227: +.L235: adds r4, r4, #8 cmp r4, #32 - bne .L235 + bne .L243 movs r0, #0 bl NandcWaitFlashReady movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L254: +.L262: .align 2 -.L253: +.L261: .word .LANCHOR0 .word .LANCHOR0+2068 .fnend @@ -1704,8 +1733,8 @@ FlashReadSpare: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r2 - ldr r5, .L256 - ldr r3, .L256+4 + ldr r5, .L264 + ldr r3, .L264+4 add r5, r5, r0, lsl #3 ldrb r3, [r3, #481] @ zero_extendqisi2 ldrb r2, [r5, #16] @ zero_extendqisi2 @@ -1729,9 +1758,9 @@ FlashReadSpare: ldr r3, [r4, #2048] strb r3, [r6] pop {r4, r5, r6, pc} -.L257: +.L265: .align 2 -.L256: +.L264: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -1745,7 +1774,7 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L259 + ldr r2, .L267 push {r4, lr} .save {r4, lr} add r2, r2, r0, lsl #3 @@ -1775,9 +1804,9 @@ SandiskProgTestBadBlock: ldr r0, [r4, #2048] and r0, r0, #1 pop {r4, pc} -.L260: +.L268: .align 2 -.L259: +.L267: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -1800,15 +1829,15 @@ SandiskSetRRPara: movs r0, #200 mov r4, r1 bl NandcDelayns - ldr r0, .L268 - ldr r1, .L268+4 + ldr r0, .L276 + ldr r1, .L276+4 add r4, r4, r4, lsl #2 movs r2, #0 sub r6, r0, #48 -.L262: +.L270: ldrb r3, [r1, #1209] @ zero_extendqisi2 cmp r2, r3 - bcs .L267 + bcs .L275 ldrb r3, [r1, #1208] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 @@ -1818,14 +1847,14 @@ SandiskSetRRPara: adds r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L262 -.L267: + b .L270 +.L275: movs r0, #0 pop {r4, r5, r6, lr} b NandcWaitFlashReady -.L269: +.L277: .align 2 -.L268: +.L276: .word .LANCHOR1+304 .word .LANCHOR0 .fnend @@ -1844,7 +1873,7 @@ micron_auto_read_calibration_config: mov r4, r0 mov r5, r1 bl NandcWaitFlashReady - ldr r3, .L271 + ldr r3, .L279 movs r0, #200 add r2, r3, r4, lsl #3 ldrb r4, [r2, #16] @ zero_extendqisi2 @@ -1861,9 +1890,9 @@ micron_auto_read_calibration_config: str r3, [r4, #2048] str r3, [r4, #2048] pop {r3, r4, r5, pc} -.L272: +.L280: .align 2 -.L271: +.L279: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -1879,15 +1908,15 @@ FlashEraseSLc2KBlocks: push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} movs r5, #0 - ldr r8, .L284+4 + ldr r8, .L292+4 .pad #20 sub sp, sp, #20 mov r6, r0 mov r9, r1 mov r7, r5 -.L274: +.L282: cmp r7, r9 - beq .L283 + beq .L291 rsb r3, r7, r9 add r2, sp, #8 adds r0, r6, r5 @@ -1896,14 +1925,14 @@ FlashEraseSLc2KBlocks: str r3, [sp] add r3, sp, #12 bl LogAddr2PhyAddr - ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldrb r2, [r8, #2230] @ zero_extendqisi2 ldr r3, [sp, #12] cmp r3, r2 - bcc .L275 + bcc .L283 mov r3, #-1 str r3, [r6, r5] - b .L276 -.L275: + b .L284 +.L283: add r2, r8, r3 add r3, r8, r3, lsl #4 ldrb r4, [r2, #2232] @ zero_extendqisi2 @@ -1940,30 +1969,188 @@ FlashEraseSLc2KBlocks: strmi r3, [r6, r5] ldr r3, [r6, r5] adds r3, r3, #1 - bne .L278 - ldr r0, .L284 + bne .L286 + ldr r0, .L292 ldr r1, [sp, #8] bl printk -.L278: +.L286: mov r0, r4 bl NandcFlashDeCs -.L276: +.L284: adds r7, r7, #1 adds r5, r5, #36 - b .L274 -.L283: + b .L282 +.L291: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L285: +.L293: .align 2 -.L284: +.L292: .word .LC1 .word .LANCHOR0 .fnend .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks .align 1 + .global FlashEraseBlocks + .thumb + .thumb_func + .type FlashEraseBlocks, %function +FlashEraseBlocks: + .fnstart + @ 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} + mov r9, r0 + ldr r4, .L328 + .pad #28 + sub sp, sp, #28 + mov r10, r1 + mov r8, r2 + ldrb r5, [r4] @ zero_extendqisi2 + cbz r5, .L312 + mov r1, r2 + bl FlashEraseSLc2KBlocks + b .L296 +.L312: + mov fp, r4 +.L295: + cmp r5, r8 + bcs .L326 + movs r3, #36 + movs r1, #0 + add r2, sp, #16 + mul r6, r3, r5 + add r3, r9, r6 + str r3, [sp, #12] + rsb r3, r5, r8 + ldr r0, [sp, #12] + uxtb r3, r3 + str r3, [sp] + add r3, sp, #20 + bl LogAddr2PhyAddr + ldrb r3, [r4, #2230] @ zero_extendqisi2 + mov r7, r0 + ldr r0, [sp, #20] + cmp r0, r3 + bcc .L297 + mov r3, #-1 + str r3, [r9, r6] + b .L298 +.L297: + ldrb r3, [fp, #2240] @ zero_extendqisi2 + cmp r3, #0 + add r3, r4, r0, lsl #4 + it eq + moveq r7, #0 + ldr r3, [r3, #2108] + cbz r3, .L300 + uxtb r0, r0 + bl FlashWaitCmdDone +.L300: + ldr r1, [sp, #20] + ldr r3, [sp, #12] + lsls r2, r1, #4 + add lr, r4, r2 + str r3, [lr, #2108] + movs r3, #0 + str r3, [lr, #2112] + ldr r3, [sp, #16] + str r3, [lr, #2104] + cbz r7, .L301 + add r3, r6, #36 + add r3, r3, r9 + str r3, [lr, #2112] +.L301: + add r1, r1, r4 + add r2, r2, r4 + ldrb r6, [r1, #2232] @ zero_extendqisi2 + mov r0, r6 + strb r6, [r2, #2100] + bl NandcFlashCs + cmp r10, #1 + mov r0, r6 + bne .L302 + ldrb r3, [fp, #144] @ zero_extendqisi2 + cbz r3, .L302 + bl flash_enter_slc_mode + b .L303 +.L302: + bl flash_exit_slc_mode +.L303: + ldr r3, [sp, #20] + mov r0, r6 + ldr r1, [sp, #16] + add r5, r5, r7 + add r3, r4, r3, lsl #2 + ldr r2, [r3, #1172] + adds r2, r2, #0 + it ne + movne r2, #1 + bl FlashWaitReadyEN + mov r0, r6 + mov r2, r7 + ldr r1, [sp, #16] + bl FlashEraseCmd + mov r0, r6 + bl NandcFlashDeCs +.L298: + adds r5, r5, #1 + b .L295 +.L326: + ldr r6, .L328 + movs r5, #0 + addw r7, r6, #2100 +.L305: + ldrb r2, [r4, #2230] @ zero_extendqisi2 + ldr r3, .L328 + cmp r5, r2 + bcs .L327 + uxtb r0, r5 + bl FlashWaitCmdDone + cmp r10, #1 + bne .L306 + ldrb r3, [r6, #144] @ zero_extendqisi2 + cbz r3, .L306 + lsls r3, r5, #4 + ldrb r0, [r7, r3] @ zero_extendqisi2 + bl flash_exit_slc_mode +.L306: + adds r5, r5, #1 + b .L305 +.L327: + ldr r2, [r3, #2244] + cbnz r2, .L308 +.L310: + movs r0, #0 + b .L296 +.L308: + ldrb r3, [r3, #2068] @ zero_extendqisi2 + cmp r3, #69 + bne .L310 + movs r3, #0 + movs r2, #36 + mov r1, r3 +.L309: + cmp r3, r8 + beq .L310 + mul r0, r2, r3 + adds r3, r3, #1 + str r1, [r9, r0] + b .L309 +.L296: + add sp, sp, #28 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L329: + .align 2 +.L328: + .word .LANCHOR0 + .fnend + .size FlashEraseBlocks, .-FlashEraseBlocks + .align 1 .global FlashReadDpCmd .thumb .thumb_func @@ -1972,59 +2159,82 @@ FlashReadDpCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L290 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} - mov r5, r2 - add r2, r3, r0, lsl #3 - ldrb r6, [r3, #52] @ zero_extendqisi2 - mov r7, r1 - uxtb lr, r1 - ldrb r4, [r2, #16] @ zero_extendqisi2 - uxtb r10, r5 - ldr ip, [r2, #12] - lsr r9, r5, #8 - ldrb r2, [r3, #60] @ zero_extendqisi2 - mov r8, r0 - lsls r4, r4, #8 - ldrb r3, [r3, #53] @ zero_extendqisi2 + mov r7, r0 + ldr r0, .L335 + mov r6, r1 + uxtb r9, r2 + lsr r8, r2, #8 + add r3, r0, r7, lsl #3 + lsrs r5, r2, #16 + ldrb r1, [r0, #64] @ zero_extendqisi2 + uxtb ip, r6 + ldr r4, [r3, #12] + lsr lr, r6, #8 + ldrb r3, [r3, #16] @ zero_extendqisi2 + cmp r1, #1 + ldr r2, [r0, #44] + lsr r1, r6, #16 + lsl r3, r3, #8 + ldrb r2, [r2, #7] @ zero_extendqisi2 + bne .L331 cmp r2, #1 - add r4, r4, ip - lsr r2, r1, #8 - lsr r5, r5, #16 - lsr r1, r1, #16 - str r6, [r4, #2056] - bne .L287 - movs r6, #0 - str r6, [r4, #2052] - str r6, [r4, #2052] + itt eq + addeq r2, r4, r3 + moveq r10, #38 + add r4, r4, r3 + it eq + streq r10, [r2, #2056] + mov r10, #0 + ldrb r3, [r0, #57] @ zero_extendqisi2 + ldrb r2, [r0, #56] @ zero_extendqisi2 + mov r0, r7 + str r2, [r4, #2056] + str r10, [r4, #2052] + str r10, [r4, #2052] + str ip, [r4, #2052] str lr, [r4, #2052] - str r2, [r4, #2052] str r1, [r4, #2052] str r3, [r4, #2056] bl NandcWaitFlashReady - str r6, [r4, #2056] - str r6, [r4, #2052] - str r6, [r4, #2052] - b .L289 -.L287: - str lr, [r4, #2052] - str r2, [r4, #2052] - str r1, [r4, #2052] - str r3, [r4, #2056] -.L289: - str r10, [r4, #2052] + str r10, [r4, #2056] movs r3, #48 + str r10, [r4, #2052] + str r10, [r4, #2052] str r9, [r4, #2052] - mov r0, r8 + str r8, [r4, #2052] str r5, [r4, #2052] - mov r1, r7 str r3, [r4, #2056] + b .L333 +.L331: + cmp r2, #1 + itt eq + addeq r2, r4, r3 + moveq r10, #38 + add r3, r3, r4 + it eq + streq r10, [r2, #2056] + ldrb r2, [r0, #56] @ zero_extendqisi2 + str r2, [r3, #2056] + ldrb r2, [r0, #57] @ zero_extendqisi2 + str ip, [r3, #2052] + str lr, [r3, #2052] + str r1, [r3, #2052] + str r2, [r3, #2056] + movs r2, #48 + str r9, [r3, #2052] + str r8, [r3, #2052] + str r5, [r3, #2052] + str r2, [r3, #2056] +.L333: + mov r0, r7 + mov r1, r6 pop {r4, r5, r6, r7, r8, r9, r10, lr} b FlashSetRandomizer -.L291: +.L336: .align 2 -.L290: +.L335: .word .LANCHOR0 .fnend .size FlashReadDpCmd, .-FlashReadDpCmd @@ -2040,37 +2250,37 @@ ftl_flash_de_init: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r0, #0 - ldr r4, .L302 + ldr r4, .L347 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldr r0, [r4, #2240] - cbz r0, .L293 + ldr r0, [r4, #2248] + cbz r0, .L338 movs r0, #0 bl flash_enter_slc_mode - b .L294 -.L293: + b .L339 +.L338: bl flash_exit_slc_mode -.L294: - ldrb r3, [r4, #2244] @ zero_extendqisi2 - ldr r5, .L302 - cbz r3, .L295 - ldrb r3, [r5, #2228] @ zero_extendqisi2 +.L339: + ldrb r3, [r4, #2252] @ zero_extendqisi2 + ldr r5, .L347 + cbz r3, .L340 + ldrb r3, [r5, #2229] @ zero_extendqisi2 lsls r3, r3, #31 - bpl .L295 + bpl .L340 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode movs r3, #0 - strb r3, [r5, #2244] -.L295: + strb r3, [r5, #2252] +.L340: ldr r3, [r4, #12] movs r0, #0 str r0, [r3, #336] pop {r3, r4, r5, pc} -.L303: +.L348: .align 2 -.L302: +.L347: .word .LANCHOR0 .fnend .size ftl_flash_de_init, .-ftl_flash_de_init @@ -2084,14 +2294,14 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L305 + ldr r3, .L350 add r0, r3, r0, lsl #3 ldr r3, [r0, #12] str r1, [r3, #336] bx lr -.L306: +.L351: .align 2 -.L305: +.L350: .word .LANCHOR0 .fnend .size NandcRandmzSel, .-NandcRandmzSel @@ -2110,45 +2320,45 @@ NandcTimeCfg: mov r4, r0 movs r0, #0 bl rknand_get_clk_rate - ldr r1, .L317 + ldr r1, .L362 bl __aeabi_idiv - ldr r3, .L317+4 - ldr r3, [r3, #76] + ldr r3, .L362+4 + ldr r3, [r3, #80] cmp r0, #250 - ble .L308 + ble .L353 movw r2, #8354 - b .L315 -.L308: + b .L360 +.L353: cmp r0, #220 - bgt .L316 + bgt .L361 cmp r0, #185 - ble .L311 + ble .L356 movw r2, #4226 - b .L315 -.L311: + b .L360 +.L356: cmp r0, #160 - ble .L312 + ble .L357 movw r2, #4194 - b .L315 -.L312: + b .L360 +.L357: cmp r4, #35 - bhi .L313 + bhi .L358 movw r2, #4193 - b .L315 -.L313: + b .L360 +.L358: cmp r4, #99 - bls .L314 -.L316: + bls .L359 +.L361: movw r2, #8322 - b .L315 -.L314: + b .L360 +.L359: movw r2, #4225 -.L315: +.L360: str r2, [r3, #4] pop {r4, pc} -.L318: +.L363: .align 2 -.L317: +.L362: .word 1000000 .word .LANCHOR0 .fnend @@ -2166,25 +2376,25 @@ FlashTimingCfg: sub r3, r0, #4192 subs r3, r3, #1 cmp r3, #1 - bls .L320 + bls .L365 sub r3, r0, #4224 subs r3, r3, #1 cmp r3, #1 - bls .L320 + bls .L365 movw r3, #8322 cmp r0, r3 - bne .L321 -.L320: - ldr r3, .L322 - ldr r3, [r3, #76] + bne .L366 +.L365: + ldr r3, .L367 + ldr r3, [r3, #80] str r0, [r3, #4] -.L321: - ldr r3, .L322+4 +.L366: + ldr r3, .L367+4 ldrb r0, [r3, #493] @ zero_extendqisi2 b NandcTimeCfg -.L323: +.L368: .align 2 -.L322: +.L367: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2201,7 +2411,7 @@ NandcInit: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r1, #0 - ldr r3, .L326 + ldr r3, .L371 movs r2, #1 movs r5, #0 str r1, [r3, #16] @@ -2213,7 +2423,7 @@ NandcInit: movs r2, #3 str r0, [r3, #28] str r0, [r3, #36] - str r0, [r3, #76] + str r0, [r3, #80] str r2, [r3, #40] ldr r2, [r0] and r2, r2, #253952 @@ -2221,39 +2431,39 @@ NandcInit: bfi r2, r1, #13, #1 ldr r1, [r0, #352] orr r2, r2, #256 - str r4, [r3, #2248] + str r4, [r3, #2256] movw r4, #2049 ubfx r1, r1, #16, #4 - str r1, [r3, #2252] + str r1, [r3, #2260] ldr r1, [r0, #352] cmp r1, r4 mov r4, r3 - str r1, [r3, #2256] + str r1, [r3, #2264] itt eq moveq r3, #8 - streq r3, [r4, #2252] + streq r3, [r4, #2260] str r2, [r0] movs r0, #40 - ldr r3, [r4, #76] + ldr r3, [r4, #80] str r5, [r3, #336] bl NandcTimeCfg - ldr r3, [r4, #76] + ldr r3, [r4, #80] movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L326+4 + ldr r2, .L371+4 str r2, [r3, #304] bl ftl_malloc - str r5, [r4, #2288] str r5, [r4, #2296] - str r0, [r4, #2260] - str r0, [r4, #2264] - add r0, r0, #32768 + str r5, [r4, #2304] str r0, [r4, #2268] + str r0, [r4, #2272] + add r0, r0, #32768 + str r0, [r4, #2276] pop {r3, r4, r5, pc} -.L327: +.L372: .align 2 -.L326: +.L371: .word .LANCHOR0 .word 1579009 .fnend @@ -2269,26 +2479,26 @@ NandcGetTimeCfg: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, lr} .save {r4, r5, lr} - ldr r4, .L329 - ldr r5, [r4, #76] + ldr r4, .L374 + ldr r5, [r4, #80] ldr r5, [r5, #4] str r5, [r0] - ldr r0, [r4, #76] + ldr r0, [r4, #80] ldr r0, [r0] str r0, [r1] - ldr r1, [r4, #76] + ldr r1, [r4, #80] ldr r1, [r1, #304] str r1, [r2] - ldr r1, [r4, #76] + ldr r1, [r4, #80] ldr r2, [r1, #308] ldr r1, [r1, #344] uxtb r2, r2 orr r2, r2, r1, lsl #16 str r2, [r3] pop {r4, r5, pc} -.L330: +.L375: .align 2 -.L329: +.L374: .word .LANCHOR0 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -2302,37 +2512,37 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L339 + ldr r3, .L384 movs r1, #1 - ldr r2, [r3, #76] - str r0, [r3, #2300] + ldr r2, [r3, #80] + str r0, [r3, #2308] movs r3, #0 str r1, [r2, #8] movs r1, #16 cmp r0, r1 bfi r3, r1, #8, #8 bfc r3, #18, #1 - bne .L332 -.L335: + bne .L377 +.L380: bfc r3, #4, #1 - b .L333 -.L332: + b .L378 +.L377: cmp r0, #24 - bne .L334 + bne .L379 orr r3, r3, #16 - b .L333 -.L334: + b .L378 +.L379: cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - beq .L335 -.L333: + beq .L380 +.L378: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L340: +.L385: .align 2 -.L339: +.L384: .word .LANCHOR0 .fnend .size NandcBchSel, .-NandcBchSel @@ -2346,12 +2556,12 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L342 - strb r0, [r3, #2304] + ldr r3, .L387 + strb r0, [r3, #2312] b NandcBchSel -.L343: +.L388: .align 2 -.L342: +.L387: .word .LANCHOR0 .fnend .size FlashBchSel, .-FlashBchSel @@ -2364,61 +2574,61 @@ ftl_flash_resume: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L352 + ldr r3, .L397 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r2, [r3, #76] + ldr r2, [r3, #80] addw r6, r3, #2068 - ldr r1, [r3, #80] + ldr r1, [r3, #84] mov r4, r3 str r1, [r2] - ldr r1, [r3, #84] - ldr r2, [r3, #76] - str r1, [r2, #4] ldr r1, [r3, #88] - str r1, [r2, #8] + ldr r2, [r3, #80] + str r1, [r2, #4] ldr r1, [r3, #92] - str r1, [r2, #12] + str r1, [r2, #8] ldr r1, [r3, #96] - str r1, [r2, #304] + str r1, [r2, #12] ldr r1, [r3, #100] - str r1, [r2, #308] + str r1, [r2, #304] ldr r1, [r3, #104] - str r1, [r2, #336] + str r1, [r2, #308] ldr r1, [r3, #108] + str r1, [r2, #336] + ldr r1, [r3, #112] str r1, [r2, #344] -.L346: +.L391: ldrb r3, [r6, r5, lsl #3] @ zero_extendqisi2 subs r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L345 + bhi .L390 uxtb r0, r5 bl FlashReset -.L345: +.L390: adds r5, r5, #1 cmp r5, #4 - bne .L346 - ldrb r3, [r4, #2244] @ zero_extendqisi2 - ldr r5, .L352 - cbz r3, .L347 + bne .L391 + ldrb r3, [r4, #2252] @ zero_extendqisi2 + ldr r5, .L397 + cbz r3, .L392 movs r0, #1 bl NandcSetMode - ldrb r0, [r5, #2228] @ zero_extendqisi2 + ldrb r0, [r5, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #2228] @ zero_extendqisi2 + ldrb r0, [r5, #2229] @ zero_extendqisi2 bl NandcSetMode - ldrb r0, [r5, #97] @ zero_extendqisi2 + ldrb r0, [r5, #101] @ zero_extendqisi2 bl NandcSetDdrPara -.L347: - ldr r3, [r4, #1204] +.L392: + ldr r3, [r4, #44] pop {r4, r5, r6, lr} ldrb r0, [r3, #20] @ zero_extendqisi2 b FlashBchSel -.L353: +.L398: .align 2 -.L352: +.L397: .word .LANCHOR0 .fnend .size ftl_flash_resume, .-ftl_flash_resume @@ -2464,193 +2674,11 @@ NandcIqrWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, lr} - .save {r4, lr} - mov r4, r0 - bl rk_nandc_rb_irq_flag_init - 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] - lsls r3, r3, #22 - bmi .L357 - mov r0, r4 - pop {r4, lr} - b wait_for_nand_flash_ready -.L357: - 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} + @ link register save eliminated. + bx lr .fnend .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady .align 1 - .global FlashEraseBlocks - .thumb - .thumb_func - .type FlashEraseBlocks, %function -FlashEraseBlocks: - .fnstart - @ 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} - mov r9, r0 - ldr r4, .L392 - .pad #28 - sub sp, sp, #28 - mov r10, r1 - mov r8, r2 - ldrb r5, [r4] @ zero_extendqisi2 - cbz r5, .L376 - mov r1, r2 - bl FlashEraseSLc2KBlocks - b .L360 -.L376: - mov fp, r4 -.L359: - cmp r5, r8 - bcs .L390 - movs r3, #36 - movs r1, #0 - add r2, sp, #16 - mul r6, r3, r5 - add r3, r9, r6 - str r3, [sp, #12] - rsb r3, r5, r8 - ldr r0, [sp, #12] - uxtb r3, r3 - str r3, [sp] - add r3, sp, #20 - bl LogAddr2PhyAddr - ldrb r3, [r4, #2229] @ zero_extendqisi2 - mov r7, r0 - ldr r0, [sp, #20] - cmp r0, r3 - bcc .L361 - mov r3, #-1 - str r3, [r9, r6] - b .L362 -.L361: - ldrb r3, [fp, #2305] @ zero_extendqisi2 - cmp r3, #0 - add r3, r4, r0, lsl #4 - it eq - moveq r7, #0 - ldr r3, [r3, #2108] - cbz r3, .L364 - uxtb r0, r0 - bl FlashWaitCmdDone -.L364: - ldr r1, [sp, #20] - ldr r3, [sp, #12] - lsls r2, r1, #4 - add lr, r4, r2 - str r3, [lr, #2108] - movs r3, #0 - str r3, [lr, #2112] - ldr r3, [sp, #16] - str r3, [lr, #2104] - cbz r7, .L365 - add r3, r6, #36 - add r3, r3, r9 - str r3, [lr, #2112] -.L365: - add r1, r1, r4 - add r2, r2, r4 - ldrb r6, [r1, #2232] @ zero_extendqisi2 - mov r0, r6 - strb r6, [r2, #2100] - bl NandcFlashCs - cmp r10, #1 - mov r0, r6 - bne .L366 - ldrb r3, [fp, #140] @ zero_extendqisi2 - cbz r3, .L366 - bl flash_enter_slc_mode - b .L367 -.L366: - bl flash_exit_slc_mode -.L367: - ldr r3, [sp, #20] - mov r0, r6 - ldr r1, [sp, #16] - add r5, r5, r7 - add r3, r4, r3, lsl #2 - ldr r2, [r3, #1168] - adds r2, r2, #0 - it ne - movne r2, #1 - bl FlashWaitReadyEN - mov r0, r6 - mov r2, r7 - ldr r1, [sp, #16] - bl FlashEraseCmd - mov r0, r6 - bl NandcFlashDeCs -.L362: - adds r5, r5, #1 - b .L359 -.L390: - ldr r0, [r4, #76] - movs r5, #0 - bl NandcIqrWaitFlashReady - ldr r6, .L392 - addw r7, r6, #2100 -.L369: - ldrb r2, [r4, #2229] @ zero_extendqisi2 - ldr r3, .L392 - cmp r5, r2 - bcs .L391 - uxtb r0, r5 - bl FlashWaitCmdDone - cmp r10, #1 - bne .L370 - ldrb r3, [r6, #140] @ zero_extendqisi2 - cbz r3, .L370 - lsls r3, r5, #4 - ldrb r0, [r7, r3] @ zero_extendqisi2 - bl flash_exit_slc_mode -.L370: - adds r5, r5, #1 - b .L369 -.L391: - ldr r2, [r3, #2308] - cbnz r2, .L372 -.L374: - movs r0, #0 - b .L360 -.L372: - ldrb r3, [r3, #2068] @ zero_extendqisi2 - cmp r3, #69 - bne .L374 - movs r3, #0 - movs r2, #36 - mov r1, r3 -.L373: - cmp r3, r8 - beq .L374 - mul r0, r2, r3 - adds r3, r3, #1 - str r1, [r9, r0] - b .L373 -.L360: - add sp, sp, #28 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L393: - .align 2 -.L392: - .word .LANCHOR0 - .fnend - .size FlashEraseBlocks, .-FlashEraseBlocks - .align 1 .global rk_nandc_flash_xfer_completed .thumb .thumb_func @@ -2682,7 +2710,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L396 + ldr r3, .L404 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -2695,9 +2723,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L397: +.L405: .align 2 -.L396: +.L404: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -2713,12 +2741,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L399: +.L407: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #11 - bpl .L399 + bpl .L407 add sp, sp, #8 @ sp needed bx lr @@ -2740,15 +2768,15 @@ NandcXferStart: mov r6, r1 ldr r1, [sp, #60] ldr fp, [sp, #56] - cbnz r1, .L416 + cbnz r1, .L424 adds r1, fp, #0 it ne movne r1, #1 - b .L403 -.L416: + b .L411 +.L424: movs r1, #1 -.L403: - ldr r5, .L421 +.L411: + ldr r5, .L429 mov lr, #16 movs r4, #0 add r0, r5, r0, lsl #3 @@ -2766,27 +2794,27 @@ NandcXferStart: orr r4, r4, #536870912 orr r4, r4, #1024 bfi r4, r3, #4, #1 - ldr r3, [r5, #2252] + ldr r3, [r5, #2260] cmp r3, #3 - bls .L404 + bls .L412 ldr r3, [r7, #16] str r3, [sp, #12] ldr r3, [sp, #12] bic r3, r3, #4 str r3, [sp, #12] cmp r1, #0 - beq .L405 - cbnz r6, .L406 -.L414: + beq .L413 + cbnz r6, .L414 +.L422: adds r2, r2, #1 asrs r2, r2, #1 bfi r4, r2, #22, #6 cmp fp, #0 - beq .L407 + beq .L415 mov r0, fp - b .L408 -.L406: - ldr r3, [r5, #2300] + b .L416 +.L414: + ldr r3, [r5, #2308] mov r9, r5 ldr lr, [sp, #60] cmp r3, #25 @@ -2798,53 +2826,53 @@ NandcXferStart: str r3, [sp, #4] movs r3, #0 mov r0, r3 -.L410: +.L418: ldr r1, [sp, #4] cmp r0, r1 - bcs .L414 + bcs .L422 ldr r1, [sp, #60] lsr r10, r3, #2 - cbz r1, .L411 + cbz r1, .L419 ldrh r1, [lr, #2] ldrh ip, [lr], #4 orr ip, ip, r1, lsl #16 - ldr r1, [r9, #2268] + ldr r1, [r9, #2276] str ip, [r1, r10, lsl #2] - b .L412 -.L411: - ldr r1, [r9, #2268] + b .L420 +.L419: + ldr r1, [r9, #2276] mov ip, r1 mov r1, #-1 str r1, [ip, r10, lsl #2] -.L412: +.L420: ldr r1, [sp] adds r0, r0, #1 add r3, r3, r1 - b .L410 -.L407: - ldr r0, [r5, #2264] -.L408: - ldr r3, [r5, #2268] + b .L418 +.L415: + ldr r0, [r5, #2272] +.L416: + ldr r3, [r5, #2276] ubfx r9, r4, #22, #5 mov r2, r6 - str r0, [r5, #2272] + str r0, [r5, #2280] lsl r1, r9, #10 - str r3, [r5, #2276] + str r3, [r5, #2284] bl rknand_dma_map_single mov r2, r6 lsl r1, r9, #7 clz r6, r6 lsrs r6, r6, #5 - str r0, [r5, #2280] - ldr r0, [r5, #2276] + str r0, [r5, #2288] + ldr r0, [r5, #2284] bl rknand_dma_map_single movs r3, #1 - str r3, [r5, #2288] + str r3, [r5, #2296] tst fp, #3 - ldr r3, [r5, #2280] - str r0, [r5, #2284] + ldr r3, [r5, #2288] + str r0, [r5, #2292] str r3, [r7, #20] - ldr r3, [r5, #2284] + ldr r3, [r5, #2292] str r3, [r7, #24] mov r3, #0 str r3, [sp, #12] @@ -2870,10 +2898,10 @@ NandcXferStart: ldr r3, [sp, #12] orr r3, r3, #1 str r3, [sp, #12] -.L405: +.L413: ldr r3, [sp, #12] str r3, [r7, #16] -.L404: +.L412: str r8, [r7, #12] str r4, [r7, #8] orr r4, r4, #4 @@ -2881,9 +2909,9 @@ NandcXferStart: add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L422: +.L430: .align 2 -.L421: +.L429: .word .LANCHOR0 .fnend .size NandcXferStart, .-NandcXferStart @@ -2899,14 +2927,14 @@ Ftl_log2: @ link register save eliminated. movs r1, #0 movs r2, #1 -.L424: +.L432: cmp r2, r0 uxth r3, r1 add r1, r1, #1 - bhi .L426 + bhi .L434 lsls r2, r2, #1 - b .L424 -.L426: + b .L432 +.L434: subs r0, r3, #1 uxth r0, r0 bx lr @@ -2935,25 +2963,25 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L430 + ldr r3, .L438 cmp r0, #23 it ls movls r0, #24 - ldrh r2, [r3, #2316] - ldrh r1, [r3, #2326] - str r0, [r3, #2312] + ldrh r2, [r3, #2320] + ldrh r1, [r3, #2330] + str r0, [r3, #2316] muls r2, r0, r2 subs r0, r1, r0 - ldr r1, [r3, #2332] - strh r0, [r3, #2324] @ movhi + ldr r1, [r3, #2336] + strh r0, [r3, #2328] @ movhi movs r0, #0 - str r2, [r3, #2320] + str r2, [r3, #2324] subs r2, r1, r2 - str r2, [r3, #2328] + str r2, [r3, #2332] bx lr -.L431: +.L439: .align 2 -.L430: +.L438: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -2972,29 +3000,29 @@ FtlConstantsInit: sub sp, sp, #20 ldrh r1, [r0, #14] mov r5, r0 - ldr r4, .L460 + ldr r4, .L468 ldrh lr, [r0, #8] str r1, [sp] ldrh r1, [sp] ldrh r2, [r0, #10] ldrh r3, [r0, #12] - addw r0, r4, #2344 - strh r1, [r4, #2326] @ movhi + addw r0, r4, #2348 + strh r1, [r4, #2330] @ movhi movs r1, #0 - strh lr, [r4, #2336] @ movhi - strh r2, [r4, #2338] @ movhi - strh r3, [r4, #2340] @ movhi -.L433: + strh lr, [r4, #2340] @ movhi + strh r2, [r4, #2342] @ movhi + strh r3, [r4, #2344] @ movhi +.L441: strb r1, [r1, r0] adds r1, r1, #1 cmp r1, #32 - bne .L433 + bne .L441 ldrh r0, [r5, #14] ldrh r1, [r5, #20] cmp r1, r0, lsr #8 - bcs .L434 + bcs .L442 uxtb r10, r3 - ldr r9, .L460+4 + ldr r9, .L468+4 lsl r1, r10, #1 uxtb r1, r1 str r1, [sp, #8] @@ -3002,9 +3030,9 @@ FtlConstantsInit: muls r1, r3, r1 str r1, [sp, #4] movs r1, #0 -.L435: +.L443: cmp r1, r3 - bcs .L437 + bcs .L445 ldr r6, [sp, #4] rsb ip, r3, r1 uxtb r0, r1 @@ -3014,10 +3042,10 @@ FtlConstantsInit: str r6, [sp, #12] movs r6, #0 mov r8, r6 -.L438: +.L446: cmp r8, r2 add r6, r6, r3 - bcs .L459 + bcs .L467 ldr r7, [sp, #12] add fp, r0, r10 strb r0, [ip, r6] @@ -3026,161 +3054,161 @@ FtlConstantsInit: ldr r7, [sp, #8] add r0, r0, r7 uxtb r0, r0 - b .L438 -.L459: + b .L446 +.L467: adds r1, r1, #1 - b .L435 -.L437: + b .L443 +.L445: lsls r2, r2, #1 - strh r2, [r4, #2338] @ movhi + strh r2, [r4, #2342] @ movhi ldr r2, [sp] lsrs r7, r2, #1 - strh r7, [r4, #2326] @ movhi -.L434: + strh r7, [r4, #2330] @ movhi +.L442: cmp lr, #1 mov r2, #5 - strh r2, [r4, #2376] @ movhi + strh r2, [r4, #2380] @ movhi mov r2, #0 - strh r2, [r4, #2378] @ movhi + strh r2, [r4, #2382] @ movhi it eq - ldreq r2, .L460 + ldreq r2, .L468 ldrb r9, [r4] @ zero_extendqisi2 it eq - strheq lr, [r2, #2376] @ movhi + strheq lr, [r2, #2380] @ movhi mov r2, #4352 - strh r2, [r4, #2380] @ movhi + strh r2, [r4, #2384] @ movhi cmp r9, #0 - beq .L440 - ldr r2, .L460 + beq .L448 + ldr r2, .L468 mov r1, #384 - strh r1, [r2, #2380] @ movhi -.L440: - ldrh r7, [r4, #2338] - ldrh r6, [r4, #2326] + strh r1, [r2, #2384] @ movhi +.L448: + ldrh r7, [r4, #2342] + ldrh r6, [r4, #2330] ldrh r8, [r5, #16] smulbb r7, r7, r3 ldrh fp, [r5, #20] smulbb r3, r6, r3 ldrh r1, [r5, #18] mov r0, fp - strh r8, [r4, #2384] @ movhi - strh fp, [r4, #2390] @ movhi + strh r8, [r4, #2388] @ movhi + strh fp, [r4, #2394] @ movhi uxth r7, r7 - strh r1, [r4, #2386] @ movhi + strh r1, [r4, #2390] @ movhi str r1, [sp] - strh r3, [r4, #2382] @ movhi + strh r3, [r4, #2386] @ movhi smulbb r3, r7, r8 - strh r7, [r4, #2316] @ movhi - strh r3, [r4, #2388] @ movhi + strh r7, [r4, #2320] @ movhi + strh r3, [r4, #2392] @ movhi bl Ftl_log2 lsl r3, fp, #9 cmp r6, #1024 uxth r3, r3 - strh r3, [r4, #2394] @ movhi - it hi - ldrhi r2, .L460 - lsr r3, r3, #8 - strh r3, [r4, #2396] @ movhi - ldrh r3, [r5, #26] strh r3, [r4, #2398] @ movhi + it hi + ldrhi r2, .L468 + lsr r3, r3, #8 + strh r3, [r4, #2400] @ movhi + ldrh r3, [r5, #26] + strh r3, [r4, #2402] @ movhi mul r3, r6, r7 - str r3, [r4, #2332] + str r3, [r4, #2336] itt hi uxtbhi r3, r6 - strhhi r3, [r2, #2378] @ movhi + strhhi r3, [r2, #2382] @ movhi mov r10, r0 - ldrh r5, [r4, #2378] + ldrh r5, [r4, #2382] ldr r1, [sp] subs r5, r6, r5 - strh r0, [r4, #2392] @ movhi - ldrh r0, [r4, #2380] + strh r0, [r4, #2396] @ movhi + ldrh r0, [r4, #2384] muls r5, r7, r5 - ldr r3, .L460 + ldr r3, .L468 lsls r0, r0, #3 mul r1, r1, fp str r3, [sp] mul r5, fp, r5 mul r5, r8, r5 asrs r5, r5, #11 - str r5, [r4, #2400] + str r5, [r4, #2404] bl __aeabi_idiv ldr r3, [sp] uxth r0, r0 cmp r0, #4 itet ls movls r2, #4 - strhhi r0, [r3, #2404] @ movhi - strhls r2, [r3, #2404] @ movhi + strhhi r0, [r3, #2408] @ movhi + strhls r2, [r3, #2408] @ movhi cmp r9, #0 - beq .L444 + beq .L452 mov r3, #640 - strh r3, [r4, #2380] @ movhi -.L444: - ldrh r3, [r4, #2380] + strh r3, [r4, #2384] @ movhi +.L452: + ldrh r3, [r4, #2384] lsls r6, r6, #6 mov r1, r7 - ldr r5, .L460 + ldr r5, .L468 asr r3, r3, r10 add r10, r10, #9 asr r6, r6, r10 adds r3, r3, #2 - strh r3, [r4, #2406] @ movhi + strh r3, [r4, #2410] @ movhi uxth r0, r6 - strh r6, [r4, #2408] @ movhi + strh r6, [r4, #2412] @ movhi add r6, r0, #8 mul r3, r7, r0 - ldrh r0, [r4, #2404] - str r3, [r4, #2412] + ldrh r0, [r4, #2408] + str r3, [r4, #2416] bl __aeabi_uidiv cmp r7, #1 uxtah r0, r6, r0 - ldr r6, .L460 + ldr r6, .L468 it eq addeq r0, r0, #4 - str r0, [r5, #2312] - ldrh r0, [r4, #2312] + str r0, [r5, #2316] + ldrh r0, [r4, #2316] bl FtlSysBlkNumInit - ldr r3, [r4, #2312] - ldr r5, [r4, #2328] + ldr r3, [r4, #2316] + ldr r5, [r4, #2332] mov r0, #2048 - ldrh r7, [r4, #2390] - str r3, [r4, #2416] - ldrh r3, [r4, #2384] + ldrh r7, [r4, #2394] + str r3, [r4, #2420] + ldrh r3, [r4, #2388] lsls r5, r5, #2 mov r1, r7 muls r5, r3, r5 - ldrh r3, [r4, #2392] + ldrh r3, [r4, #2396] adds r3, r3, #9 lsrs r5, r5, r3 adds r5, r5, #2 uxth r5, r5 - strh r5, [r4, #2420] @ movhi + strh r5, [r4, #2424] @ movhi bl __aeabi_idiv - ldrh r2, [r4, #2404] + ldrh r2, [r4, #2408] movs r3, #0 - str r3, [r4, #2424] + str r3, [r4, #2428] adds r3, r2, #3 - strh r3, [r4, #2404] @ movhi - ldr r3, [r4, #2412] + strh r3, [r4, #2408] @ movhi + ldr r3, [r4, #2416] adds r1, r3, #3 - str r1, [r4, #2412] - strh r0, [r4, #2422] @ movhi - ldrb r0, [r4, #140] @ zero_extendqisi2 - cbz r0, .L447 + str r1, [r4, #2416] + strh r0, [r4, #2426] @ movhi + ldrb r0, [r4, #144] @ zero_extendqisi2 + cbz r0, .L455 adds r2, r2, #4 adds r3, r3, #5 - strh r2, [r6, #2404] @ movhi - b .L458 -.L447: + strh r2, [r6, #2408] @ movhi + b .L466 +.L455: cmp r1, #7 - bhi .L448 + bhi .L456 movs r3, #8 -.L458: - str r3, [r6, #2412] -.L448: - ldrh r2, [r4, #2324] +.L466: + str r3, [r6, #2416] +.L456: + ldrh r2, [r4, #2328] movs r3, #0 - strh r3, [r4, #2428] @ movhi + strh r3, [r4, #2432] @ movhi movs r0, #0 lsrs r3, r2, #3 add r3, r3, r2, lsl #1 @@ -3189,16 +3217,16 @@ FtlConstantsInit: cmp r5, r7, lsl #9 ittt cc movcc r2, #1 - ldrcc r3, .L460 - strhcc r2, [r3, #2428] @ movhi + ldrcc r3, .L468 + strhcc r2, [r3, #2432] @ movhi add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L461: +.L469: .align 2 -.L460: +.L468: .word .LANCHOR0 - .word .LANCHOR0+2344 + .word .LANCHOR0+2348 .fnend .size FtlConstantsInit, .-FtlConstantsInit .align 1 @@ -3211,26 +3239,26 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L469 - ldrh r3, [r2, #2430] - cbz r3, .L468 - ldr r3, [r2, #2432] - ldrh r2, [r2, #2404] + ldr r2, .L477 + ldrh r3, [r2, #2434] + cbz r3, .L476 + ldr r3, [r2, #2436] + ldrh r2, [r2, #2408] add r2, r3, r2, lsl #1 -.L464: +.L472: cmp r3, r2 - beq .L468 + beq .L476 ldrh r1, [r3], #2 cmp r1, r0 - bne .L464 + bne .L472 movs r0, #1 bx lr -.L468: +.L476: movs r0, #0 bx lr -.L470: +.L478: .align 2 -.L469: +.L477: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -3243,34 +3271,34 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L479 + ldr r2, .L487 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r3, [r2, #2436] - cbz r3, .L478 - ldr r5, [r2, #2440] + ldr r3, [r2, #2440] + cbz r3, .L486 + ldr r5, [r2, #2444] movs r6, #36 movs r2, #0 -.L474: +.L482: mla r4, r6, r2, r5 ldr r4, [r4, #16] cmp r4, r0 - bcc .L473 + bcc .L481 cmp r4, r1 - bls .L476 -.L473: + bls .L484 +.L481: adds r2, r2, #1 cmp r2, r3 - bne .L474 -.L478: + bne .L482 +.L486: movs r0, #0 pop {r4, r5, r6, pc} -.L476: +.L484: movs r0, #1 pop {r4, r5, r6, pc} -.L480: +.L488: .align 2 -.L479: +.L487: .word .LANCHOR0 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -3284,16 +3312,35 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L482 - ldr r0, [r3, #2424] + ldr r3, .L490 + ldr r0, [r3, #2428] bx lr -.L483: +.L491: .align 2 -.L482: +.L490: .word .LANCHOR0 .fnend .size FtlGetCap, .-FtlGetCap .align 1 + .global FtlGetCapacity + .thumb + .thumb_func + .type FtlGetCapacity, %function +FtlGetCapacity: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L493 + ldr r0, [r3, #2428] + bx lr +.L494: + .align 2 +.L493: + .word .LANCHOR0 + .fnend + .size FtlGetCapacity, .-FtlGetCapacity + .align 1 .global ftl_get_density .thumb .thumb_func @@ -3303,12 +3350,12 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L485 - ldr r0, [r3, #2424] + ldr r3, .L496 + ldr r0, [r3, #2428] bx lr -.L486: +.L497: .align 2 -.L485: +.L496: .word .LANCHOR0 .fnend .size ftl_get_density, .-ftl_get_density @@ -3322,12 +3369,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L488 - ldr r0, [r3, #2444] + ldr r3, .L499 + ldr r0, [r3, #2448] bx lr -.L489: +.L500: .align 2 -.L488: +.L499: .word .LANCHOR0 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -3344,14 +3391,14 @@ FtlBbmMapBadBlock: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r0 - ldr r5, .L491 - ldrh r4, [r5, #2382] + ldr r5, .L502 + ldrh r4, [r5, #2386] mov r1, r4 bl __aeabi_uidiv uxth r2, r0 smulbb r3, r2, r4 add r1, r5, r2, lsl #2 - ldr r4, [r1, #2476] + ldr r4, [r1, #2480] movs r1, #1 subs r3, r6, r3 uxth r3, r3 @@ -3360,21 +3407,21 @@ FtlBbmMapBadBlock: lsls r1, r1, r0 ldr r0, [r4, r7, lsl #2] orrs r1, r1, r0 - ldr r0, .L491+4 + ldr r0, .L502+4 str r1, [r4, r7, lsl #2] str r1, [sp] mov r1, r6 bl printk - ldrh r3, [r5, #2454] + ldrh r3, [r5, #2458] movs r0, #0 adds r3, r3, #1 - strh r3, [r5, #2454] @ movhi + strh r3, [r5, #2458] @ movhi add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L492: +.L503: .align 2 -.L491: +.L502: .word .LANCHOR0 .word .LC2 .fnend @@ -3392,8 +3439,8 @@ FtlBbmIsBadBlock: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r5, .L494 - ldrh r6, [r5, #2382] + ldr r5, .L505 + ldrh r6, [r5, #2386] mov r1, r6 bl __aeabi_uidivmod mov r0, r7 @@ -3404,14 +3451,14 @@ FtlBbmIsBadBlock: and r4, r4, #31 uxth r0, r0 add r5, r5, r0, lsl #2 - ldr r3, [r5, #2476] + ldr r3, [r5, #2480] ldr r0, [r3, r2, lsl #2] lsrs r0, r0, r4 and r0, r0, #1 pop {r3, r4, r5, r6, r7, pc} -.L495: +.L506: .align 2 -.L494: +.L505: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -3440,28 +3487,28 @@ FtlBbtCalcTotleCnt: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L505 - ldrh r6, [r4, #2382] - ldrh r3, [r4, #2338] + ldr r4, .L516 + ldrh r6, [r4, #2386] + ldrh r3, [r4, #2342] mov r4, r5 muls r6, r3, r6 -.L498: +.L509: uxth r0, r5 cmp r0, r6 - bge .L504 + bge .L515 bl FtlBbmIsBadBlock - cbz r0, .L499 + cbz r0, .L510 adds r4, r4, #1 uxth r4, r4 -.L499: +.L510: adds r5, r5, #1 - b .L498 -.L504: + b .L509 +.L515: mov r0, r4 pop {r4, r5, r6, pc} -.L506: +.L517: .align 2 -.L505: +.L516: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -3477,22 +3524,22 @@ V2P_block: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r1 - ldr r6, .L508 + ldr r6, .L519 mov r7, r0 - ldrh r5, [r6, #2340] + ldrh r5, [r6, #2344] mov r1, r5 bl __aeabi_uidivmod mov r0, r7 smlabb r4, r4, r5, r1 mov r1, r5 bl __aeabi_uidiv - ldrh r3, [r6, #2382] + ldrh r3, [r6, #2386] smlabb r0, r3, r0, r4 uxth r0, r0 pop {r3, r4, r5, r6, r7, pc} -.L509: +.L520: .align 2 -.L508: +.L519: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -3505,12 +3552,12 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L511 + ldr r3, .L522 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 - ldrh r1, [r3, #2382] - ldrh r5, [r3, #2340] + ldrh r1, [r3, #2386] + ldrh r5, [r3, #2344] bl __aeabi_uidiv mov r1, r5 smulbb r4, r0, r5 @@ -3519,9 +3566,9 @@ P2V_plane: add r1, r1, r4 uxth r0, r1 pop {r4, r5, r6, pc} -.L512: +.L523: .align 2 -.L511: +.L522: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -3536,17 +3583,17 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L514 - ldrh r1, [r4, #2382] + ldr r4, .L525 + ldrh r1, [r4, #2386] bl __aeabi_uidivmod uxth r0, r1 - ldrh r1, [r4, #2340] + ldrh r1, [r4, #2344] bl __aeabi_uidiv uxth r0, r0 pop {r4, pc} -.L515: +.L526: .align 2 -.L514: +.L525: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -3561,14 +3608,14 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L517 + bls .L528 subs r0, r0, r1 cmp r0, #-2147483648 ite hi movhi r0, #0 movls r0, #1 bx lr -.L517: +.L528: subs r0, r1, r0 cmp r0, #-2147483648 ite ls @@ -3587,14 +3634,14 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L520 - ldrh r0, [r3, #2514] + ldr r3, .L531 + ldrh r0, [r3, #2518] clz r0, r0 lsrs r0, r0, #5 bx lr -.L521: +.L532: .align 2 -.L520: +.L531: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -3608,15 +3655,15 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L523 - ldrh r0, [r3, #2514] + ldr r3, .L534 + ldrh r0, [r3, #2518] sub r3, r0, #1024 rsbs r0, r3, #0 adcs r0, r0, r3 bx lr -.L524: +.L535: .align 2 -.L523: +.L534: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -3636,45 +3683,45 @@ FtlFreeSysBlkQueueIn: mov r6, r0 uxth r3, r3 cmp r3, r2 - bhi .L525 - ldr r4, .L534 - ldrh r3, [r4, #2514] + bhi .L536 + ldr r4, .L545 + ldrh r3, [r4, #2518] cmp r3, #1024 - beq .L525 - cbz r1, .L527 - ldr r5, .L534+4 - ldr r3, [r5, #220] - cbnz r3, .L527 + beq .L536 + cbz r1, .L538 + ldr r5, .L545+4 + ldr r3, [r5, #224] + cbnz r3, .L538 bl P2V_block_in_plane movs r1, #1 lsls r3, r6, #10 mov r2, r1 mov r7, r0 - ldr r0, [r5, #224] + ldr r0, [r5, #228] str r3, [r0, #4] bl FlashEraseBlocks - ldr r2, [r5, #228] + ldr r2, [r5, #232] ldrh r3, [r2, r7, lsl #1] adds r3, r3, #1 strh r3, [r2, r7, lsl #1] @ movhi - ldr r3, [r5, #232] + ldr r3, [r5, #236] adds r3, r3, #1 - str r3, [r5, #232] -.L527: - ldrh r3, [r4, #2514] + str r3, [r5, #236] +.L538: + ldrh r3, [r4, #2518] adds r3, r3, #1 - strh r3, [r4, #2514] @ movhi - ldrh r3, [r4, #2512] + strh r3, [r4, #2518] @ movhi + ldrh r3, [r4, #2516] add r2, r4, r3, lsl #1 adds r3, r3, #1 ubfx r3, r3, #0, #10 - strh r3, [r4, #2512] @ movhi - strh r6, [r2, #2516] @ movhi -.L525: + strh r3, [r4, #2516] @ movhi + strh r6, [r2, #2520] @ movhi +.L536: pop {r3, r4, r5, r6, r7, pc} -.L535: +.L546: .align 2 -.L534: +.L545: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -3688,42 +3735,42 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L547 + ldr r3, .L558 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldrh r4, [r3, #264] - ldr r3, .L547+4 - ldrh r2, [r3, #2514] - cbz r2, .L536 + ldrh r4, [r3, #268] + ldr r3, .L558+4 + ldrh r2, [r3, #2518] + cbz r2, .L547 movs r0, #0 - ldrh r1, [r3, #2510] - ldrh r2, [r3, #2512] + ldrh r1, [r3, #2514] + ldrh r2, [r3, #2516] and r4, r4, #31 mov r6, r0 -.L538: +.L549: uxth r5, r0 adds r0, r0, #1 cmp r5, r4 - bge .L546 + bge .L557 add r5, r3, r1, lsl #1 adds r1, r1, #1 ubfx r1, r1, #0, #10 - ldrh r6, [r5, #2516] + ldrh r6, [r5, #2520] add r5, r3, r2, lsl #1 - strh r6, [r5, #2516] @ movhi + strh r6, [r5, #2520] @ movhi movs r6, #1 add r2, r2, r6 ubfx r2, r2, #0, #10 - b .L538 -.L546: - cbz r6, .L536 - strh r1, [r3, #2510] @ movhi - strh r2, [r3, #2512] @ movhi -.L536: - pop {r4, r5, r6, pc} -.L548: - .align 2 + b .L549 +.L557: + cbz r6, .L547 + strh r1, [r3, #2514] @ movhi + strh r2, [r3, #2516] @ movhi .L547: + pop {r4, r5, r6, pc} +.L559: + .align 2 +.L558: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -3739,70 +3786,70 @@ FtlFreeSysBlkQueueOut: @ 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} - ldr r4, .L559 - ldr r6, .L559+4 + ldr r4, .L570 + ldr r6, .L570+4 mov r7, r4 -.L550: - ldrh r1, [r4, #2514] - cbz r1, .L551 - ldrh r3, [r4, #2510] +.L561: + ldrh r1, [r4, #2518] + cbz r1, .L562 + ldrh r3, [r4, #2514] subs r1, r1, #1 - ldr r10, [r6, #220] - strh r1, [r4, #2514] @ movhi + ldr r10, [r6, #224] + strh r1, [r4, #2518] @ movhi add r2, r4, r3, lsl #1 adds r3, r3, #1 ubfx r3, r3, #0, #10 - ldr r8, .L559+4 - ldrh r5, [r2, #2516] - strh r3, [r4, #2510] @ movhi + ldr r8, .L570+4 + ldrh r5, [r2, #2520] + strh r3, [r4, #2514] @ movhi cmp r10, #0 - bne .L552 + bne .L563 mov r0, r5 bl P2V_block_in_plane lsls r3, r5, #10 mov r9, r0 - ldr r0, [r6, #224] + ldr r0, [r6, #228] str r3, [r0, #4] - ldrb r3, [r4, #140] @ zero_extendqisi2 - cbz r3, .L553 + ldrb r3, [r4, #144] @ zero_extendqisi2 + cbz r3, .L564 mov r1, r10 movs r2, #1 bl FlashEraseBlocks -.L553: +.L564: movs r1, #1 - ldr r0, [r8, #224] + ldr r0, [r8, #228] mov r2, r1 bl FlashEraseBlocks - ldr r2, [r8, #228] + ldr r2, [r8, #232] ldrh r3, [r2, r9, lsl #1] adds r3, r3, #1 strh r3, [r2, r9, lsl #1] @ movhi - ldr r3, [r8, #232] + ldr r3, [r8, #236] adds r3, r3, #1 - str r3, [r8, #232] - b .L552 -.L551: - ldr r0, .L559+8 + str r3, [r8, #236] + b .L563 +.L562: + ldr r0, .L570+8 bl printk -.L554: - b .L554 -.L552: +.L565: + b .L565 +.L563: subs r3, r5, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L555 + bls .L566 mov r1, r5 - ldrh r2, [r7, #2514] - ldr r0, .L559+12 + ldrh r2, [r7, #2518] + ldr r0, .L570+12 bl printk - b .L550 -.L555: + b .L561 +.L566: mov r0, r5 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L560: +.L571: .align 2 -.L559: +.L570: .word .LANCHOR0 .word .LANCHOR2 .word .LC3 @@ -3818,35 +3865,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L566 + ldr r3, .L577 push {r4, r5, lr} .save {r4, r5, lr} movw r5, #65535 - ldr r4, [r3, #284] + ldr r4, [r3, #288] ldr r2, [r0] - ldr r3, .L566+4 + ldr r3, .L577+4 subs r0, r2, r4 asrs r0, r0, #1 muls r3, r0, r3 movs r0, #6 uxth r3, r3 -.L563: +.L574: cmp r1, r3 - beq .L564 + beq .L575 ldrh r3, [r2] cmp r3, r5 - beq .L565 + beq .L576 mla r2, r0, r3, r4 - b .L563 -.L564: + b .L574 +.L575: movs r0, #1 pop {r4, r5, pc} -.L565: +.L576: movs r0, #0 pop {r4, r5, pc} -.L567: +.L578: .align 2 -.L566: +.L577: .word .LANCHOR2 .word -1431655765 .fnend @@ -3863,113 +3910,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, .L584 - ldrh r3, [r5, #2324] + ldr r5, .L595 + ldrh r3, [r5, #2328] cmp r3, r0 - bls .L570 + bls .L581 movs r4, #6 - ldr r2, .L584+4 + ldr r2, .L595+4 movw r3, #65535 muls r4, r0, r4 - ldr lr, [r2, #284] + ldr lr, [r2, #288] mov r7, r2 add r1, lr, r4 strh r3, [r1, #2] @ movhi strh r3, [lr, r4] @ movhi - ldr r3, [r2, #288] + ldr r3, [r2, #292] cmp r3, #0 - beq .L583 - ldr r8, [r2, #292] + beq .L594 + ldr r8, [r2, #296] lsl fp, r0, #1 ldrh r2, [r1, #4] ldrh r6, [r8, r0, lsl #1] - cbz r2, .L581 + cbz r2, .L592 muls r6, r2, r6 - b .L572 -.L581: + b .L583 +.L592: mov r6, #-1 -.L572: - ldr ip, [r7, #284] - ldr r2, .L584+8 +.L583: + ldr ip, [r7, #288] + ldr r2, .L595+8 rsb r9, ip, r3 - ldrh r5, [r5, #2324] + ldrh r5, [r5, #2328] asr r9, r9, #1 str r5, [sp] mul r2, r2, r9 - ldr r9, [r7, #228] + ldr r9, [r7, #232] add r5, r9, fp str r5, [sp, #4] movs r5, #0 uxth r2, r2 -.L579: +.L590: adds r5, r5, #1 ldr r7, [sp] uxth r5, r5 cmp r5, r7 - bhi .L570 + bhi .L581 cmp r0, r2 - beq .L570 + beq .L581 ldrh r7, [r3, #4] lsl r10, r2, #1 ldrh fp, [r8, r2, lsl #1] - cbz r7, .L582 + cbz r7, .L593 mul r7, r7, fp - b .L574 -.L582: + b .L585 +.L593: mov r7, #-1 -.L574: +.L585: cmp r7, r6 - bne .L575 + bne .L586 ldr r7, [sp, #4] ldrh r10, [r9, r10] ldrh r7, [r7] cmp r10, r7 - bcc .L577 - b .L576 -.L575: - bhi .L576 -.L577: + bcc .L588 + b .L587 +.L586: + bhi .L587 +.L588: ldrh r7, [r3] movw r10, #65535 cmp r7, r10 - bne .L578 + bne .L589 strh r2, [r1, #2] @ movhi strh r0, [r3] @ movhi - ldr r3, .L584+4 - str r1, [r3, #296] - b .L570 -.L578: + ldr r3, .L595+4 + str r1, [r3, #300] + b .L581 +.L589: movs r3, #6 mov r2, r7 mla r3, r3, r7, ip - b .L579 -.L576: + b .L590 +.L587: strh r2, [lr, r4] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L584+4 - ldr r4, [r2, #288] + ldr r2, .L595+4 + ldr r4, [r2, #292] cmp r3, r4 - bne .L580 + bne .L591 strh r0, [r3, #2] @ movhi -.L583: - str r1, [r2, #288] - b .L570 -.L580: +.L594: + str r1, [r2, #292] + b .L581 +.L591: ldrh r4, [r3, #2] - ldr r1, [r2, #284] + ldr r1, [r2, #288] movs r2, #6 muls r2, r4, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L570: +.L581: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L585: +.L596: .align 2 -.L584: +.L595: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -3987,14 +4034,14 @@ INSERT_DATA_LIST: push {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L587 - ldrh r3, [r2, #300] + ldr r2, .L598 + ldrh r3, [r2, #304] adds r3, r3, #1 - strh r3, [r2, #300] @ movhi + strh r3, [r2, #304] @ movhi pop {r3, pc} -.L588: +.L599: .align 2 -.L587: +.L598: .word .LANCHOR2 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -4011,64 +4058,64 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r5, #65535 cmp r0, r5 - beq .L590 + beq .L601 movs r1, #6 - ldr r2, .L597 + ldr r2, .L608 mul lr, r1, r0 - ldr ip, [r2, #284] + ldr ip, [r2, #288] mov r7, r2 add r6, ip, lr strh r5, [r6, #2] @ movhi strh r5, [ip, lr] @ movhi - ldr r3, [r2, #304] - cbz r3, .L596 - ldr r8, [r2, #284] - ldr r9, [r2, #228] + ldr r3, [r2, #308] + cbz r3, .L607 + ldr r8, [r2, #288] + ldr r9, [r2, #232] rsb r4, r8, r3 - ldr r2, .L597+4 + ldr r2, .L608+4 asrs r4, r4, #1 ldrh r10, [r9, r0, lsl #1] muls r4, r2, r4 uxth r2, r4 -.L594: +.L605: ldrh r4, [r9, r2, lsl #1] cmp r4, r10 - bcs .L592 + bcs .L603 ldrh r4, [r3] cmp r4, r5 - bne .L593 + bne .L604 strh r2, [r6, #2] @ movhi strh r0, [r3] @ movhi - b .L590 -.L593: + b .L601 +.L604: mla r3, r1, r4, r8 mov r2, r4 - b .L594 -.L592: + b .L605 +.L603: ldrh r1, [r3, #2] strh r1, [r6, #2] @ movhi strh r2, [ip, lr] @ movhi - ldr r1, [r7, #304] - ldr r2, .L597 + ldr r1, [r7, #308] + ldr r2, .L608 cmp r3, r1 - bne .L595 + bne .L606 strh r0, [r3, #2] @ movhi -.L596: - str r6, [r2, #304] - b .L590 -.L595: +.L607: + str r6, [r2, #308] + b .L601 +.L606: ldrh r4, [r3, #2] - ldr r1, [r2, #284] + ldr r1, [r2, #288] movs r2, #6 muls r2, r4, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L590: +.L601: movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L598: +.L609: .align 2 -.L597: +.L608: .word .LANCHOR2 .word -1431655765 .fnend @@ -4085,14 +4132,14 @@ INSERT_FREE_LIST: push {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L600 - ldrh r3, [r2, #308] + ldr r2, .L611 + ldrh r3, [r2, #312] adds r3, r3, #1 - strh r3, [r2, #308] @ movhi + strh r3, [r2, #312] @ movhi pop {r3, pc} -.L601: +.L612: .align 2 -.L600: +.L611: .word .LANCHOR2 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -4108,15 +4155,15 @@ List_remove_node: push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movs r4, #6 - ldr r7, .L607 + ldr r7, .L618 movw r6, #65535 muls r1, r4, r1 ldr r3, [r0] - ldr r2, [r7, #284] + ldr r2, [r7, #288] adds r5, r2, r1 cmp r5, r3 ldrh r3, [r2, r1] - bne .L603 + bne .L614 cmp r3, r6 ittee eq moveq r3, #0 @@ -4125,33 +4172,33 @@ List_remove_node: strne r3, [r0] it ne strhne r6, [r3, #2] @ movhi - b .L605 -.L603: + b .L616 +.L614: cmp r3, r6 ldrh r0, [r5, #2] - bne .L606 + bne .L617 cmp r0, r3 - beq .L605 + beq .L616 muls r0, r4, r0 strh r3, [r2, r0] @ movhi - b .L605 -.L606: + b .L616 +.L617: mla r3, r4, r3, r2 strh r0, [r3, #2] @ movhi ldrh r6, [r5, #2] ldrh r0, [r2, r1] - ldr r3, [r7, #284] + ldr r3, [r7, #288] muls r4, r6, r4 strh r0, [r3, r4] @ movhi -.L605: +.L616: movw r3, #65535 movs r0, #0 strh r3, [r2, r1] @ movhi strh r3, [r5, #2] @ movhi pop {r4, r5, r6, r7, pc} -.L608: +.L619: .align 2 -.L607: +.L618: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -4167,16 +4214,16 @@ List_pop_index_node: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldr r3, [r0] - cbz r3, .L615 - ldr r2, .L616 + cbz r3, .L626 + ldr r2, .L627 movs r6, #6 movw r5, #65535 - ldr r4, [r2, #284] -.L611: - cbnz r1, .L612 -.L614: + ldr r4, [r2, #288] +.L622: + cbnz r1, .L623 +.L625: subs r4, r3, r4 - ldr r3, .L616+4 + ldr r3, .L627+4 asrs r4, r4, #1 muls r4, r3, r4 uxth r4, r4 @@ -4184,20 +4231,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 pop {r4, r5, r6, pc} -.L612: +.L623: ldrh r2, [r3] cmp r2, r5 - beq .L614 + beq .L625 subs r1, r1, #1 mla r3, r6, r2, r4 uxth r1, r1 - b .L611 -.L615: + b .L622 +.L626: movw r0, #65535 pop {r4, r5, r6, pc} -.L617: +.L628: .align 2 -.L616: +.L627: .word .LANCHOR2 .word -1431655765 .fnend @@ -4211,36 +4258,36 @@ List_get_gc_head_node: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L625 + ldr r2, .L636 push {r4, lr} .save {r4, lr} - ldr r3, [r2, #288] - cbz r3, .L623 + ldr r3, [r2, #292] + cbz r3, .L634 movs r4, #6 - ldr r1, [r2, #284] + ldr r1, [r2, #288] movw r2, #65535 -.L620: - cbz r0, .L621 +.L631: + cbz r0, .L632 ldrh r3, [r3] cmp r3, r2 - beq .L623 + beq .L634 subs r0, r0, #1 mla r3, r4, r3, r1 uxth r0, r0 - b .L620 -.L623: + b .L631 +.L634: movw r0, #65535 pop {r4, pc} -.L621: +.L632: subs r3, r3, r1 - ldr r0, .L625+4 + ldr r0, .L636+4 asrs r3, r3, #1 muls r0, r3, r0 uxth r0, r0 pop {r4, pc} -.L626: +.L637: .align 2 -.L625: +.L636: .word .LANCHOR2 .word -1431655765 .fnend @@ -4257,73 +4304,73 @@ List_update_data_list: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, r0 - ldr r4, .L634 - ldrh r3, [r4, #312] + ldr r4, .L645 + ldrh r3, [r4, #316] cmp r3, r0 - beq .L628 - ldrh r3, [r4, #360] + beq .L639 + ldrh r3, [r4, #364] cmp r3, r0 - beq .L628 - ldrh r3, [r4, #408] + beq .L639 + ldrh r3, [r4, #412] cmp r3, r0 - beq .L628 + beq .L639 movs r3, #6 - ldr r1, [r4, #284] - ldr r2, [r4, #288] + ldr r1, [r4, #288] + ldr r2, [r4, #292] muls r3, r0, r3 adds r0, r1, r3 cmp r0, r2 - beq .L628 - ldr r6, [r4, #292] + beq .L639 + ldr r6, [r4, #296] ldrh r2, [r0, #4] ldrh r7, [r6, r5, lsl #1] - cbz r2, .L632 + cbz r2, .L643 muls r2, r7, r2 - b .L629 -.L632: + b .L640 +.L643: mov r2, #-1 -.L629: +.L640: ldrh r0, [r0, #2] movw r7, #65535 cmp r0, r7 - bne .L630 + bne .L641 ldrh r3, [r1, r3] cmp r3, r0 - beq .L628 -.L630: + beq .L639 +.L641: movs r3, #6 muls r3, r0, r3 - ldr r0, .L634+4 + ldr r0, .L645+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, .L633 + cbz r3, .L644 muls r3, r0, r3 - b .L631 -.L633: + b .L642 +.L644: mov r3, #-1 -.L631: +.L642: cmp r2, r3 - bcs .L628 - ldr r0, .L634+8 + bcs .L639 + ldr r0, .L645+8 mov r1, r5 bl List_remove_node - ldrh r3, [r4, #300] + ldrh r3, [r4, #304] mov r0, r5 subs r3, r3, #1 - strh r3, [r4, #300] @ movhi + strh r3, [r4, #304] @ movhi bl INSERT_DATA_LIST -.L628: +.L639: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L635: +.L646: .align 2 -.L634: +.L645: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2+288 + .word .LANCHOR2+292 .fnend .size List_update_data_list, .-List_update_data_list .align 1 @@ -4341,16 +4388,16 @@ ftl_map_blk_alloc_new_blk: ldrh r1, [r0, #10] mov r4, r0 ldr r2, [r0, #12] -.L637: +.L648: uxth r5, r3 cmp r5, r1 - bcs .L640 + bcs .L651 mov r7, r2 adds r3, r3, #1 ldrh r6, [r7] adds r2, r2, #2 cmp r6, #0 - bne .L637 + bne .L648 bl FtlFreeSysBlkQueueOut movw r2, #65533 subs r3, r0, #1 @@ -4358,14 +4405,14 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7] @ movhi uxth r3, r3 cmp r3, r2 - bls .L638 - ldr r3, .L643 - ldr r0, .L643+4 - ldrh r2, [r3, #2514] + bls .L649 + ldr r3, .L654 + ldr r0, .L654+4 + ldrh r2, [r3, #2518] bl printk -.L639: - b .L639 -.L638: +.L650: + b .L650 +.L649: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi adds r3, r3, #1 @@ -4374,12 +4421,12 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi adds r3, r3, #1 strh r3, [r4, #8] @ movhi -.L640: +.L651: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L644: +.L655: .align 2 -.L643: +.L654: .word .LANCHOR0 .word .LC5 .fnend @@ -4396,70 +4443,70 @@ select_l2p_ram_region: push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movs r1, #0 - ldr r3, .L659 + ldr r3, .L670 movs r4, #12 - ldr r7, .L659+4 + ldr r7, .L670+4 movw r5, #65535 - ldrh r2, [r3, #2422] - ldr r3, [r7, #456] -.L646: + ldrh r2, [r3, #2426] + ldr r3, [r7, #460] +.L657: uxth r0, r1 cmp r0, r2 - bcs .L657 + bcs .L668 adds r1, r1, #1 mla r6, r4, r1, r3 ldrh r6, [r6, #-12] cmp r6, r5 - bne .L646 - b .L647 -.L657: + bne .L657 + b .L658 +.L668: movs r1, #0 mov r6, #-2147483648 mov lr, #12 mov r0, r2 -.L649: +.L660: uxth r5, r1 cmp r5, r2 - bcs .L658 + bcs .L669 mla r4, lr, r1, r3 ldr r4, [r4, #4] cmp r4, #0 - blt .L650 + blt .L661 cmp r4, r6 itt cc movcc r6, r4 movcc r0, r5 -.L650: +.L661: adds r1, r1, #1 - b .L649 -.L658: + b .L660 +.L669: cmp r0, r2 - bcc .L647 - ldrh r7, [r7, #460] + bcc .L658 + ldrh r7, [r7, #464] movs r1, #0 mov r4, #-1 mov r0, r2 -.L652: +.L663: uxth r5, r1 cmp r5, r2 - bcs .L647 + bcs .L658 ldr r6, [r3, #4] cmp r6, r4 - bcs .L653 + bcs .L664 ldrh lr, [r3] cmp lr, r7 itt ne movne r4, r6 movne r0, r5 -.L653: +.L664: adds r1, r1, #1 adds r3, r3, #12 - b .L652 -.L647: + b .L663 +.L658: pop {r4, r5, r6, r7, pc} -.L660: +.L671: .align 2 -.L659: +.L670: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4473,41 +4520,41 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L668 + ldr r1, .L679 push {r4, r5, lr} .save {r4, r5, lr} - ldrh r2, [r1, #462] + ldrh r2, [r1, #466] mov r3, r1 cmp r2, #4 - bhi .L662 - cbnz r0, .L662 + bhi .L673 + cbnz r0, .L673 adds r2, r2, #1 - strh r2, [r1, #462] @ movhi + strh r2, [r1, #466] @ movhi pop {r4, r5, pc} -.L662: - ldr r1, .L668+4 +.L673: + ldr r1, .L679+4 movs r2, #0 - strh r2, [r3, #462] @ movhi + strh r2, [r3, #466] @ movhi movw r5, #65535 - str r2, [r3, #464] - ldrh r1, [r1, #2324] - ldr r2, [r3, #292] + str r2, [r3, #468] + ldrh r1, [r1, #2328] + ldr r2, [r3, #296] add r1, r2, r1, lsl #1 -.L663: +.L674: cmp r2, r1 - beq .L667 + beq .L678 ldrh r4, [r2], #2 cmp r4, r5 ittt ne - ldrne r0, [r3, #464] + ldrne r0, [r3, #468] addne r0, r0, r4 - strne r0, [r3, #464] - b .L663 -.L667: + strne r0, [r3, #468] + b .L674 +.L678: pop {r4, r5, pc} -.L669: +.L680: .align 2 -.L668: +.L679: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4523,28 +4570,28 @@ ftl_set_blk_mode: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. lsrs r3, r0, #5 - ldr r2, .L673 + ldr r2, .L684 and r0, r0, #31 uxth r3, r3 - cbz r1, .L671 - ldr r1, [r2, #468] + cbz r1, .L682 + ldr r1, [r2, #472] 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 -.L671: - ldr r1, [r2, #468] +.L682: + ldr r1, [r2, #472] 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 -.L674: +.L685: .align 2 -.L673: +.L684: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4558,17 +4605,17 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L676 + ldr r3, .L687 lsrs r1, r0, #5 - ldr r2, [r3, #468] + ldr r2, [r3, #472] and r3, r0, #31 ldr r0, [r2, r1, lsl #2] lsrs r0, r0, r3 and r0, r0, #1 bx lr -.L677: +.L688: .align 2 -.L676: +.L687: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4583,16 +4630,16 @@ ftl_sb_update_avl_pages: @ frame_needed = 0, uses_anonymous_args = 0 movs r3, #0 strh r3, [r0, #4] @ movhi - ldr r3, .L687 + ldr r3, .L698 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} adds r4, r2, #7 - ldrh r5, [r3, #2316] + ldrh r5, [r3, #2320] movw r7, #65535 add r4, r0, r4, lsl #1 -.L679: +.L690: cmp r2, r5 - bcs .L685 + bcs .L696 ldrh r6, [r4, #2]! adds r2, r2, #1 cmp r6, r7 @@ -4601,16 +4648,16 @@ ftl_sb_update_avl_pages: ldrhne r6, [r0, #4] addne r6, r6, #1 strhne r6, [r0, #4] @ movhi - b .L679 -.L685: - ldrh r6, [r3, #2384] + b .L690 +.L696: + ldrh r6, [r3, #2388] add r4, r0, #14 movs r2, #0 movw r7, #65535 -.L682: +.L693: uxth r3, r2 cmp r3, r5 - bcs .L686 + bcs .L697 ldrh r3, [r4, #2]! adds r2, r2, #1 cmp r3, r7 @@ -4621,12 +4668,12 @@ ftl_sb_update_avl_pages: subne r3, r3, r1 it ne strhne r3, [r0, #4] @ movhi - b .L682 -.L686: + b .L693 +.L697: pop {r4, r5, r6, r7, pc} -.L688: +.L699: .align 2 -.L687: +.L698: .word .LANCHOR0 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages @@ -4642,62 +4689,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, .L702 + ldr r6, .L713 add r7, r0, #16 mov r4, r0 mov r5, r3 - addw r10, r6, #2344 + addw r10, r6, #2348 movw r9, #65535 - ldrh r8, [r6, #2316] + ldrh r8, [r6, #2320] strh r3, [r0, #4] @ movhi strb r3, [r0, #7] -.L690: +.L701: uxth r3, r5 cmp r3, r8 - bcs .L701 + bcs .L712 ldrb r0, [r10, r5] @ zero_extendqisi2 ldrh r1, [r4] bl V2P_block strh r9, [r7] @ movhi mov fp, r0 bl FtlBbmIsBadBlock - cbnz r0, .L691 + cbnz r0, .L702 strh fp, [r7] @ movhi ldrb r3, [r4, #7] @ zero_extendqisi2 adds r3, r3, #1 strb r3, [r4, #7] -.L691: +.L702: adds r5, r5, #1 adds r7, r7, #2 - b .L690 -.L701: + b .L701 +.L712: ldrb r2, [r4, #7] @ zero_extendqisi2 - ldrh r3, [r6, #2384] + ldrh r3, [r6, #2388] smulbb r3, r2, r3 strh r3, [r4, #4] @ movhi movs r3, #0 strb r3, [r4, #9] - ldr r3, [r6, #2308] - cbz r3, .L693 - ldr r3, .L702+4 + ldr r3, [r6, #2244] + cbz r3, .L704 + ldr r3, .L713+4 ldrh r2, [r4] - ldr r3, [r3, #228] + ldr r3, [r3, #232] ldrh r3, [r3, r2, lsl #1] cmp r3, #79 itt ls movls r3, #1 strbls r3, [r4, #9] -.L693: +.L704: ldrb r3, [r6] @ zero_extendqisi2 - cbz r3, .L694 + cbz r3, .L705 movs r3, #1 strb r3, [r4, #9] -.L694: +.L705: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L703: +.L714: .align 2 -.L702: +.L713: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4714,43 +4761,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, .L713 + ldr r3, .L724 mov r7, r0 mov r4, r5 - addw r6, r3, #2344 - ldrh r8, [r3, #2316] - ldrh r9, [r3, #2384] -.L705: + addw r6, r3, #2348 + ldrh r8, [r3, #2320] + ldrh r9, [r3, #2388] +.L716: uxth r3, r5 cmp r3, r8 - bcs .L712 + bcs .L723 mov r1, r7 ldrb r0, [r6, r5] @ zero_extendqisi2 bl V2P_block bl FtlBbmIsBadBlock - cbnz r0, .L706 + cbnz r0, .L717 add r4, r4, r9 uxth r4, r4 -.L706: +.L717: adds r5, r5, #1 - b .L705 -.L712: - cbz r4, .L708 + b .L716 +.L723: + cbz r4, .L719 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L708: - ldr r3, .L713+4 +.L719: + ldr r3, .L724+4 movs r2, #6 movs r0, #0 - ldr r3, [r3, #284] + ldr r3, [r3, #288] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L714: +.L725: .align 2 -.L713: +.L724: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4765,22 +4812,22 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L718 - ldr r0, [r2, #304] - cbz r0, .L716 - ldr r3, [r2, #284] + ldr r2, .L729 + ldr r0, [r2, #308] + cbz r0, .L727 + ldr r3, [r2, #288] subs r0, r0, r3 - ldr r3, .L718+4 + ldr r3, .L729+4 asrs r0, r0, #1 muls r0, r3, r0 - ldr r3, [r2, #228] + ldr r3, [r2, #232] uxth r0, r0 ldrh r0, [r3, r0, lsl #1] -.L716: +.L727: bx lr -.L719: +.L730: .align 2 -.L718: +.L729: .word .LANCHOR2 .word -1431655765 .fnend @@ -4794,14 +4841,14 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L728 + ldr r1, .L739 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} - ldr r3, [r1, #304] - cbz r3, .L726 - ldrh r2, [r1, #308] + ldr r3, [r1, #308] + cbz r3, .L737 + ldrh r2, [r1, #312] movs r6, #6 - ldr r4, [r1, #284] + ldr r4, [r1, #288] movw r7, #65535 rsb r2, r2, r2, lsl #3 subs r3, r3, r4 @@ -4810,32 +4857,32 @@ GetFreeBlockMaxEraseCount: cmp r0, r2 it gt uxthgt r0, r2 - ldr r2, .L728+4 + ldr r2, .L739+4 muls r3, r2, r3 movs r2, #0 uxth r3, r3 -.L723: +.L734: uxth r5, r2 cmp r5, r0 - bcs .L725 + bcs .L736 mul r5, r6, r3 adds r2, r2, #1 ldrh r5, [r4, r5] cmp r5, r7 - bne .L727 -.L725: - ldr r2, [r1, #228] + bne .L738 +.L736: + ldr r2, [r1, #232] ldrh r0, [r2, r3, lsl #1] pop {r4, r5, r6, r7, pc} -.L727: +.L738: mov r3, r5 - b .L723 -.L726: + b .L734 +.L737: mov r0, r3 pop {r4, r5, r6, r7, pc} -.L729: +.L740: .align 2 -.L728: +.L739: .word .LANCHOR2 .word -1431655765 .fnend @@ -4852,34 +4899,34 @@ FtlPrintInfo2buf: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r6, r0 - ldr r8, .L740+240 + ldr r8, .L751+240 add r4, r6, #12 - ldr r1, .L740 + ldr r1, .L751 .pad #32 sub sp, sp, #32 bl strcpy mov r0, r4 - ldr r1, .L740+4 - ldr r2, [r8, #112] + ldr r1, .L751+4 + ldr r2, [r8, #116] bl sprintf - ldr r1, .L740+8 - ldr r2, [r8, #2400] + ldr r1, .L751+8 + ldr r2, [r8, #2404] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L740+12 + ldr r3, .L751+12 ldr r3, [r3, #504] cmp r3, #1 add r4, r4, r0 - bne .L736 + bne .L747 add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 add r3, sp, #28 bl NandcGetTimeCfg mov r0, r4 - ldr r1, .L740+16 - ldr r7, .L740+20 + ldr r1, .L751+16 + ldr r7, .L751+20 ldr r3, [sp, #24] ldr r2, [sp, #16] str r3, [sp] @@ -4887,290 +4934,290 @@ FtlPrintInfo2buf: str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L740+24 + ldr r1, .L751+24 add r4, r4, r0 add r5, r4, #10 mov r0, r4 bl strcpy mov r0, r5 - ldr r1, .L740+28 - ldr r2, [r8, #2444] + ldr r1, .L751+28 + ldr r2, [r8, #2448] bl sprintf - ldr r1, .L740+32 - ldr r2, [r7, #464] + ldr r1, .L751+32 + ldr r2, [r7, #468] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+36 - ldr r2, [r7, #472] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L740+40 + ldr r1, .L751+36 ldr r2, [r7, #476] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+44 + ldr r1, .L751+40 ldr r2, [r7, #480] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+48 + ldr r1, .L751+44 ldr r2, [r7, #484] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+52 + ldr r1, .L751+48 ldr r2, [r7, #488] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+56 + ldr r1, .L751+52 ldr r2, [r7, #492] add r5, r5, r0 mov r0, r5 bl sprintf + ldr r1, .L751+56 ldr r2, [r7, #496] - ldr r1, .L740+60 - lsrs r2, r2, #11 add r5, r5, r0 mov r0, r5 bl sprintf ldr r2, [r7, #500] - ldr r1, .L740+64 + ldr r1, .L751+60 lsrs r2, r2, #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+68 ldr r2, [r7, #504] + ldr r1, .L751+64 + lsrs r2, r2, #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+72 + ldr r1, .L751+68 ldr r2, [r7, #508] add r5, r5, r0 mov r0, r5 bl sprintf + ldr r1, .L751+72 + ldr r2, [r7, #512] + add r5, r5, r0 + mov r0, r5 + bl sprintf add r5, r5, r0 bl FtlBbtCalcTotleCnt - ldr r1, .L740+76 - ldrh r2, [r8, #2454] + ldr r1, .L751+76 + ldrh r2, [r8, #2458] mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L740+80 - ldrh r2, [r7, #308] + ldr r1, .L751+80 + ldrh r2, [r7, #312] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+84 - ldr r2, [r7, #512] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L740+88 + ldr r1, .L751+84 ldr r2, [r7, #516] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+92 + ldr r1, .L751+88 ldr r2, [r7, #520] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+96 - ldr r2, [r7, #232] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L740+100 + ldr r1, .L751+92 ldr r2, [r7, #524] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+104 + ldr r1, .L751+96 + ldr r2, [r7, #236] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L751+100 ldr r2, [r7, #528] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+108 - ldrh r2, [r7, #266] + ldr r1, .L751+104 + ldr r2, [r7, #532] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+112 - ldrh r2, [r7, #264] + ldr r1, .L751+108 + ldrh r2, [r7, #270] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+116 - ldr r2, [r8, #2424] + ldr r1, .L751+112 + ldrh r2, [r7, #268] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+120 - ldr r2, [r8, #2416] + ldr r1, .L751+116 + ldr r2, [r8, #2428] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+124 - ldr r2, [r8, #2312] + ldr r1, .L751+120 + ldr r2, [r8, #2420] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+128 - ldrh r2, [r8, #2514] + ldr r1, .L751+124 + ldr r2, [r8, #2316] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+132 - ldrh r2, [r8, #2324] + ldr r1, .L751+128 + ldrh r2, [r8, #2518] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+136 - ldrh r2, [r7, #532] + ldr r1, .L751+132 + ldrh r2, [r8, #2328] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+140 - ldr r2, [r8, #2328] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L740+144 + ldr r1, .L751+136 ldrh r2, [r7, #536] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+148 - ldrh r2, [r8, #2448] + ldr r1, .L751+140 + ldr r2, [r8, #2332] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+152 - ldrh r2, [r7, #314] + ldr r1, .L751+144 + ldrh r2, [r7, #540] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+156 - ldrb r2, [r7, #318] @ zero_extendqisi2 + ldr r1, .L751+148 + ldrh r2, [r8, #2452] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+160 - ldrh r2, [r7, #312] + ldr r1, .L751+152 + ldrh r2, [r7, #318] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+164 - ldrb r2, [r7, #320] @ zero_extendqisi2 + ldr r1, .L751+156 + ldrb r2, [r7, #322] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+168 + ldr r1, .L751+160 ldrh r2, [r7, #316] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r3, [r7, #292] - ldrh r2, [r7, #312] - ldr r1, .L740+172 + ldr r1, .L751+164 + ldrb r2, [r7, #324] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L751+168 + ldrh r2, [r7, #320] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r3, [r7, #296] + ldrh r2, [r7, #316] + ldr r1, .L751+172 ldrh r2, [r3, r2, lsl #1] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+176 - ldrh r2, [r7, #362] + ldr r1, .L751+176 + ldrh r2, [r7, #366] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+180 - ldrb r2, [r7, #366] @ zero_extendqisi2 + ldr r1, .L751+180 + ldrb r2, [r7, #370] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+184 - ldrh r2, [r7, #360] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L740+188 - ldrb r2, [r7, #368] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L740+192 + ldr r1, .L751+184 ldrh r2, [r7, #364] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r3, [r7, #292] - ldrh r2, [r7, #360] - ldr r1, .L740+196 + ldr r1, .L751+188 + ldrb r2, [r7, #372] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L751+192 + ldrh r2, [r7, #368] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r3, [r7, #296] + ldrh r2, [r7, #364] + ldr r1, .L751+196 ldrh r2, [r3, r2, lsl #1] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+200 - ldrh r2, [r7, #410] + ldr r1, .L751+200 + ldrh r2, [r7, #414] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+204 - ldrb r2, [r7, #414] @ zero_extendqisi2 + ldr r1, .L751+204 + ldrb r2, [r7, #418] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+208 - ldrh r2, [r7, #408] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L740+212 - ldrb r2, [r7, #416] @ zero_extendqisi2 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L740+216 + ldr r1, .L751+208 ldrh r2, [r7, #412] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+220 - ldrh r2, [r7, #554] + ldr r1, .L751+212 + ldrb r2, [r7, #420] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+224 - ldrb r2, [r7, #558] @ zero_extendqisi2 + ldr r1, .L751+216 + ldrh r2, [r7, #416] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+228 - ldrh r2, [r7, #552] + ldr r1, .L751+220 + ldrh r2, [r7, #558] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+232 - ldrb r2, [r7, #560] @ zero_extendqisi2 + ldr r1, .L751+224 + ldrb r2, [r7, #562] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L740+236 + ldr r1, .L751+228 ldrh r2, [r7, #556] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, [r7, #688] - ldr r3, [r8, #2308] - ldr r2, [r7, #600] - b .L741 -.L742: + ldr r1, .L751+232 + ldrb r2, [r7, #564] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L751+236 + ldrh r2, [r7, #560] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, [r7, #692] + ldr r3, [r8, #2244] + ldr r2, [r7, #604] + b .L752 +.L753: .align 2 -.L740: +.L751: .word .LC6 .word .LC7 .word .LC8 @@ -5232,141 +5279,141 @@ FtlPrintInfo2buf: .word .LC62 .word .LC63 .word .LANCHOR0 -.L741: +.L752: orr r2, r3, r2, lsl #8 str r1, [sp] add r5, r5, r0 - ldr r1, [r7, #680] + ldr r1, [r7, #684] mov r0, r5 str r1, [sp, #4] - ldr r3, [r7, #684] - ldr r1, .L743 + ldr r3, [r7, #688] + ldr r1, .L754 bl sprintf - ldr r1, .L743+4 - ldr r2, [r7, #676] + ldr r1, .L754+4 + ldr r2, [r7, #680] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L743+8 - ldr r2, [r7, #700] + ldr r1, .L754+8 + ldr r2, [r7, #704] adds r4, r5, r0 mov r0, r4 bl sprintf - ldr r1, .L743+12 - ldrh r2, [r7, #1116] + ldr r1, .L754+12 + ldrh r2, [r7, #1120] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L743+16 - ldrh r2, [r7, #1118] + ldr r1, .L754+16 + ldrh r2, [r7, #1122] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L743+20 - ldr r2, [r7, #1120] + ldr r1, .L754+20 + ldr r2, [r7, #1124] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L743+24 - ldrh r2, [r7, #1124] + ldr r1, .L754+24 + ldrh r2, [r7, #1128] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L743+28 + ldr r1, .L754+28 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 - ldrh r0, [r7, #308] + ldrh r0, [r7, #312] bl GetFreeBlockMaxEraseCount - ldr r1, .L743+32 + ldr r1, .L754+32 mov r2, r0 mov r0, r4 bl sprintf - ldrh r3, [r7, #552] + ldrh r3, [r7, #556] movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L733 - ldr r2, [r7, #292] + beq .L744 + ldr r2, [r7, #296] mov r0, r4 - ldr r1, .L743+36 + ldr r1, .L754+36 ldrh r2, [r2, r3, lsl #1] bl sprintf add r4, r4, r0 -.L733: +.L744: movs r0, #0 movs r5, #0 bl List_get_gc_head_node mov r9, #6 movw r10, #65535 uxth r3, r0 -.L735: +.L746: cmp r3, r10 - beq .L734 - ldr r2, [r7, #292] + beq .L745 + ldr r2, [r7, #296] mov r0, r4 mul r8, r9, r3 - ldr r1, .L743+40 + ldr r1, .L754+40 ldrh r2, [r2, r3, lsl #1] str r2, [sp] - ldr r2, [r7, #284] + ldr r2, [r7, #288] add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp, #4] - ldr r2, [r7, #228] + ldr r2, [r7, #232] ldrh r2, [r2, r3, lsl #1] str r2, [sp, #8] mov r2, r5 bl sprintf adds r5, r5, #1 - ldr r3, [r7, #284] + ldr r3, [r7, #288] cmp r5, #16 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L735 -.L734: - ldr r2, [r7, #284] + bne .L746 +.L745: + ldr r2, [r7, #288] movs r5, #0 - ldr r3, [r7, #304] + ldr r3, [r7, #308] mov r9, #6 movw r10, #65535 subs r3, r3, r2 - ldr r2, .L743+44 + ldr r2, .L754+44 asrs r3, r3, #1 muls r3, r2, r3 uxth r3, r3 -.L737: +.L748: cmp r3, r10 - beq .L736 + beq .L747 mul r8, r9, r3 - ldr r2, [r7, #284] + ldr r2, [r7, #288] mov r0, r4 - ldr r1, .L743+48 + ldr r1, .L754+48 add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp] - ldr r2, [r7, #228] + ldr r2, [r7, #232] ldrh r2, [r2, r3, lsl #1] str r2, [sp, #4] mov r2, r5 bl sprintf adds r5, r5, #1 - ldr r3, [r7, #284] + ldr r3, [r7, #288] cmp r5, #4 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L737 -.L736: + bne .L748 +.L747: subs r0, r4, r6 add sp, sp, #32 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L744: +.L755: .align 2 -.L743: +.L754: .word .LC64 .word .LC65 .word .LC66 @@ -5394,8 +5441,8 @@ ftl_proc_ftl_read: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L746 - ldr r2, .L746+4 + ldr r1, .L757 + ldr r2, .L757+4 bl sprintf adds r4, r5, r0 mov r0, r4 @@ -5403,9 +5450,9 @@ ftl_proc_ftl_read: add r0, r0, r4 subs r0, r0, r5 pop {r3, r4, r5, pc} -.L747: +.L758: .align 2 -.L746: +.L757: .word .LC76 .word .LC77 .fnend @@ -5423,181 +5470,181 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L776 - ldr r2, [r4, #520] - ldr r3, [r4, #528] + ldr r4, .L787 + ldr r2, [r4, #524] + ldr r3, [r4, #532] cmp r2, r3 - bcs .L749 - ldr r2, .L776+4 + bcs .L760 + ldr r2, .L787+4 movs r3, #0 - ldr r0, [r4, #228] - str r3, [r4, #512] - ldrh r1, [r2, #2324] + ldr r0, [r4, #232] + str r3, [r4, #516] + ldrh r1, [r2, #2328] mov r5, r2 -.L750: +.L761: cmp r3, r1 - bcs .L775 + bcs .L786 ldrh r6, [r0, r3, lsl #1] adds r3, r3, #1 - ldr r2, [r4, #512] + ldr r2, [r4, #516] add r2, r2, r6 - str r2, [r4, #512] - b .L750 -.L775: - ldr r6, [r4, #512] + str r2, [r4, #516] + b .L761 +.L786: + ldr r6, [r4, #516] mov r0, r6 bl __aeabi_uidiv - ldrh r1, [r5, #2376] - str r0, [r4, #520] - ldr r0, [r4, #516] + ldrh r1, [r5, #2380] + str r0, [r4, #524] + ldr r0, [r4, #520] subs r0, r6, r0 bl __aeabi_uidiv - str r0, [r4, #512] - b .L752 -.L749: - ldr r3, [r4, #524] + str r0, [r4, #516] + b .L763 +.L760: + ldr r3, [r4, #528] cmp r2, r3 - bls .L752 - ldr r0, .L776+4 + bls .L763 + ldr r0, .L787+4 adds r3, r3, #1 - str r3, [r4, #524] + str r3, [r4, #528] movs r3, #0 -.L754: - ldrh r2, [r0, #2324] +.L765: + ldrh r2, [r0, #2328] cmp r3, r2 - bcs .L752 - ldr r1, [r4, #228] + bcs .L763 + ldr r1, [r4, #232] ldrh r2, [r1, r3, lsl #1] adds r2, r2, #1 strh r2, [r1, r3, lsl #1] @ movhi adds r3, r3, #1 - b .L754 -.L752: - ldr r6, [r4, #528] - ldr r8, [r4, #520] + b .L765 +.L763: + ldr r6, [r4, #532] + ldr r8, [r4, #524] add r3, r6, #256 cmp r3, r8 - bls .L757 - ldr r2, .L776 + bls .L768 + ldr r2, .L787 add r3, r6, #768 - ldr r2, [r2, #524] + ldr r2, [r2, #528] cmp r3, r2 - bls .L757 - ldr r3, .L776+4 - ldr r3, [r3, #2308] - cbnz r3, .L758 -.L760: + bls .L768 + ldr r3, .L787+4 + ldr r3, [r3, #2244] + cbnz r3, .L769 +.L771: movw r0, #65535 - b .L759 -.L758: + b .L770 +.L769: cmp r6, #40 - bhi .L760 -.L757: - ldrh r0, [r4, #308] + bhi .L771 +.L768: + ldrh r0, [r4, #312] add r0, r0, r0, lsl #1 ubfx r0, r0, #2, #16 bl GetFreeBlockMaxEraseCount add r3, r6, #64 cmp r0, r3 mov r9, r0 - bcs .L761 + bcs .L772 cmp r6, #40 - bhi .L760 -.L761: - ldr r3, [r4, #288] - ldr r2, .L776 + bhi .L771 +.L772: + ldr r3, [r4, #292] + ldr r2, .L787 cmp r3, #0 - beq .L760 - ldr r1, .L776+4 + beq .L771 + ldr r1, .L787+4 movw r7, #65535 - ldr r0, [r2, #284] + ldr r0, [r2, #288] mov ip, #6 - ldr r10, [r2, #228] + ldr r10, [r2, #232] mov r5, r7 - ldrh r1, [r1, #2324] + ldrh r1, [r1, #2328] mov lr, r7 str r1, [sp, #20] movs r1, #0 -.L762: +.L773: ldrh r2, [r3] cmp r2, lr str r2, [sp, #16] - beq .L764 + beq .L775 adds r1, r1, #1 ldr r2, [sp, #20] uxth r1, r1 cmp r1, r2 - bhi .L760 + bhi .L771 ldrh fp, [r3, #4] cmp fp, #0 - beq .L763 + beq .L774 subs r3, r3, r0 - ldr r2, .L776+8 + ldr r2, .L787+8 asrs r3, r3, #1 muls r3, r2, r3 uxth r3, r3 ldrh fp, [r10, r3, lsl #1] cmp fp, r6 - bls .L768 + bls .L779 cmp fp, r7 itt cc movcc r7, fp movcc r5, r3 -.L763: +.L774: ldr r3, [sp, #16] mla r3, ip, r3, r0 - b .L762 -.L768: + b .L773 +.L779: mov r5, r3 -.L764: +.L775: movw r3, #65535 cmp r5, r3 - beq .L760 + beq .L771 ldrh fp, [r10, r5, lsl #1] lsls r3, r5, #1 cmp fp, r6 - bls .L766 + bls .L777 str r3, [sp, #16] bl GetFreeBlockMinEraseCount ldr r3, [sp, #16] cmp r0, r6 it hi - strhi r7, [r4, #528] -.L766: + strhi r7, [r4, #532] +.L777: cmp fp, r8 - bcs .L760 + bcs .L771 add r2, fp, #128 cmp r9, r2 - ble .L760 + ble .L771 add r2, fp, #256 cmp r2, r8 - bcc .L767 - ldr r2, [r4, #524] + bcc .L778 + ldr r2, [r4, #528] add fp, fp, #768 cmp fp, r2 - bcs .L760 -.L767: - ldr r2, [r4, #292] + bcs .L771 +.L778: + ldr r2, [r4, #296] mov r1, r5 - ldr r0, .L776+12 + ldr r0, .L787+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, #524] + ldr r3, [r4, #528] bl printk mov r0, r5 movs r3, #1 - str r3, [r4, #1128] -.L759: + str r3, [r4, #1132] +.L770: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L777: +.L788: .align 2 -.L776: +.L787: .word .LANCHOR2 .word .LANCHOR0 .word -1431655765 @@ -5617,18 +5664,18 @@ free_data_superblock: cmp r0, r2 push {r3, lr} .save {r3, lr} - beq .L779 - ldr r2, .L780 + beq .L790 + ldr r2, .L791 movs r1, #0 - ldr r2, [r2, #292] + ldr r2, [r2, #296] strh r1, [r2, r0, lsl #1] @ movhi bl INSERT_FREE_LIST -.L779: +.L790: movs r0, #0 pop {r3, pc} -.L781: +.L792: .align 2 -.L780: +.L791: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5641,9 +5688,9 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L793 + ldr r2, .L804 mov ip, #36 - ldr r0, .L793+4 + ldr r0, .L804+4 movs r3, #0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} @@ -5651,68 +5698,68 @@ FtlGcBufInit: mov lr, #1 mov r6, r0 mov r4, r2 - str r3, [r2, #1132] -.L783: - ldrh r1, [r0, #2316] + str r3, [r2, #1136] +.L794: + ldrh r1, [r0, #2320] adds r5, r3, #1 uxth r3, r3 - ldr r8, .L793+4 + ldr r8, .L804+4 cmp r3, r1 - bcs .L791 + bcs .L802 mul r8, r7, r3 - ldr r9, [r2, #1136] + ldr r9, [r2, #1140] add r1, r9, r8 str lr, [r1, #8] - ldrh r1, [r0, #2394] + ldrh r1, [r0, #2398] muls r1, r3, r1 it mi addmi r1, r1, #3 bic r10, r1, #3 - ldr r1, [r4, #1140] + ldr r1, [r4, #1144] add r1, r1, r10 str r1, [r9, r8] - ldr r10, [r2, #1136] - ldrh r1, [r6, #2396] + ldr r10, [r2, #1140] + ldrh r1, [r6, #2400] muls r1, r3, r1 it mi addmi r1, r1, #3 add r9, r10, r8 bic fp, r1, #3 - ldr r1, [r4, #1144] + ldr r1, [r4, #1148] add r1, r1, fp str r1, [r9, #4] - ldr r1, [r2, #1148] + ldr r1, [r2, #1152] 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 .L783 -.L791: - ldr r0, .L793 + b .L794 +.L802: + ldr r0, .L804 mov lr, #12 movs r5, #0 -.L787: - ldr r3, [r2, #1152] +.L798: + ldr r3, [r2, #1156] cmp r1, r3 - bcs .L792 + bcs .L803 mul r7, lr, r1 - ldr r6, [r0, #1136] - ldr r4, [r0, #1140] + ldr r6, [r0, #1140] + ldr r4, [r0, #1144] adds r3, r6, r7 str r5, [r3, #8] - ldrh r3, [r8, #2394] + ldrh r3, [r8, #2398] 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, #1136] - ldr r6, [r0, #1144] + ldr r3, [r2, #1140] + ldr r6, [r0, #1148] add r7, r7, r3 - ldrh r3, [r8, #2396] + ldrh r3, [r8, #2400] muls r3, r1, r3 add r1, r1, #1 it mi @@ -5721,12 +5768,12 @@ FtlGcBufInit: uxth r1, r1 add r3, r3, r6 str r3, [r7, #4] - b .L787 -.L792: + b .L798 +.L803: pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L794: +.L805: .align 2 -.L793: +.L804: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -5740,41 +5787,41 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L802 + ldr r3, .L813 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r5, #0 - ldr lr, [r3, #1152] + ldr lr, [r3, #1156] mov r10, #36 - ldr r6, [r3, #1136] + ldr r6, [r3, #1140] mov r8, #12 mov ip, r5 -.L796: +.L807: uxth r4, r5 cmp r4, r1 - bcs .L795 + bcs .L806 mla r4, r10, r4, r0 movs r2, #0 -.L797: +.L808: uxth r3, r2 cmp r3, lr - bcs .L798 + bcs .L809 mul r3, r8, r3 ldr r7, [r4, #8] adds r2, r2, #1 add r9, r6, r3 ldr r3, [r6, r3] cmp r3, r7 - bne .L797 + bne .L808 str ip, [r9, #8] -.L798: +.L809: adds r5, r5, #1 - b .L796 -.L795: + b .L807 +.L806: pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L803: +.L814: .align 2 -.L802: +.L813: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -5787,43 +5834,43 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L812 + ldr r3, .L823 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, #1152] + ldr r5, [r3, #1156] mov lr, #12 - ldr r6, [r3, #1136] + ldr r6, [r3, #1140] mov r8, #36 -.L805: +.L816: uxth r2, r4 cmp r2, r1 - bcs .L811 + bcs .L822 mov r9, #0 -.L806: +.L817: uxth r3, r9 cmp r3, r5 - bcs .L807 + bcs .L818 mla r3, lr, r3, r6 add r9, r9, #1 ldr r7, [r3, #8] cmp r7, #0 - bne .L806 + bne .L817 mla r2, r8, r2, r0 ldr r7, [r3] str ip, [r3, #8] str r7, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L807: +.L818: adds r4, r4, #1 - b .L805 -.L811: + b .L816 +.L822: pop {r4, r5, r6, r7, r8, r9, pc} -.L813: +.L824: .align 2 -.L812: +.L823: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -5837,24 +5884,24 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L820 - ldr r3, [r2, #1156] - ldrh r2, [r2, #1160] + ldr r2, .L831 + ldr r3, [r2, #1160] + ldrh r2, [r2, #1164] add r2, r3, r2, lsl #1 -.L815: +.L826: cmp r3, r2 - beq .L819 + beq .L830 ldrh r1, [r3], #2 cmp r1, r0 - bne .L815 + bne .L826 movs r0, #1 bx lr -.L819: +.L830: movs r0, #0 bx lr -.L821: +.L832: .align 2 -.L820: +.L831: .word .LANCHOR2 .fnend .size IsBlkInGcList, .-IsBlkInGcList @@ -5874,42 +5921,42 @@ FtlGcUpdatePage: mov r7, r1 mov r8, r2 bl P2V_block_in_plane - ldr r3, .L829 + ldr r3, .L840 movs r4, #0 - ldrh r1, [r3, #1160] - ldr r2, [r3, #1156] -.L823: + ldrh r1, [r3, #1164] + ldr r2, [r3, #1160] +.L834: uxth r5, r4 cmp r5, r1 - bcs .L827 + bcs .L838 adds r4, r4, #1 add lr, r2, r4, lsl #1 ldrh lr, [lr, #-2] cmp lr, r0 - bne .L823 -.L827: + bne .L834 +.L838: cmp r5, r1 - bne .L825 + bne .L836 strh r0, [r2, r5, lsl #1] @ movhi - ldrh r0, [r3, #1160] + ldrh r0, [r3, #1164] adds r0, r0, #1 - strh r0, [r3, #1160] @ movhi -.L825: - ldrh r2, [r3, #1168] + strh r0, [r3, #1164] @ movhi +.L836: + ldrh r2, [r3, #1172] movs r0, #12 muls r0, r2, r0 - ldr r2, [r3, #1164] + ldr r2, [r3, #1168] adds r1, r2, r0 str r7, [r1, #4] str r8, [r1, #8] str r6, [r2, r0] - ldrh r2, [r3, #1168] + ldrh r2, [r3, #1172] adds r2, r2, #1 - strh r2, [r3, #1168] @ movhi + strh r2, [r3, #1172] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L830: +.L841: .align 2 -.L829: +.L840: .word .LANCHOR2 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage @@ -5925,51 +5972,51 @@ FtlGcRefreshOpenBlock: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L838 - ldrh r3, [r4, #1170] - cmp r3, r0 - beq .L833 - ldrh r3, [r4, #1172] - cmp r3, r0 - beq .L833 + ldr r4, .L849 ldrh r3, [r4, #1174] cmp r3, r0 - beq .L833 + beq .L844 ldrh r3, [r4, #1176] cmp r3, r0 - beq .L833 - ldr r0, .L838+4 + beq .L844 + ldrh r3, [r4, #1178] + cmp r3, r0 + beq .L844 + ldrh r3, [r4, #1180] + cmp r3, r0 + beq .L844 + ldr r0, .L849+4 mov r1, r5 bl printk - ldrh r2, [r4, #1170] + ldrh r2, [r4, #1174] movw r3, #65535 cmp r2, r3 - bne .L835 - strh r5, [r4, #1170] @ movhi - b .L833 -.L835: - ldrh r2, [r4, #1172] - cmp r2, r3 - bne .L836 - strh r5, [r4, #1172] @ movhi - b .L833 -.L836: - ldrh r2, [r4, #1174] - cmp r2, r3 - bne .L837 + bne .L846 strh r5, [r4, #1174] @ movhi - b .L833 -.L837: + b .L844 +.L846: ldrh r2, [r4, #1176] cmp r2, r3 + bne .L847 + strh r5, [r4, #1176] @ movhi + b .L844 +.L847: + ldrh r2, [r4, #1178] + cmp r2, r3 + bne .L848 + strh r5, [r4, #1178] @ movhi + b .L844 +.L848: + ldrh r2, [r4, #1180] + cmp r2, r3 it eq - strheq r5, [r4, #1176] @ movhi -.L833: + strheq r5, [r4, #1180] @ movhi +.L844: movs r0, #0 pop {r3, r4, r5, pc} -.L839: +.L850: .align 2 -.L838: +.L849: .word .LANCHOR2 .word .LC79 .fnend @@ -5986,54 +6033,54 @@ FtlGcRefreshBlock: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L850 - ldrh r3, [r4, #1170] - cmp r3, r0 - beq .L848 - ldrh r3, [r4, #1172] - cmp r3, r0 - beq .L848 + ldr r4, .L861 ldrh r3, [r4, #1174] cmp r3, r0 - beq .L848 + beq .L859 ldrh r3, [r4, #1176] cmp r3, r0 - beq .L848 - ldr r0, .L850+4 + beq .L859 + ldrh r3, [r4, #1178] + cmp r3, r0 + beq .L859 + ldrh r3, [r4, #1180] + cmp r3, r0 + beq .L859 + ldr r0, .L861+4 mov r1, r5 bl printk - ldrh r2, [r4, #1170] + ldrh r2, [r4, #1174] movw r3, #65535 cmp r2, r3 - bne .L842 - strh r5, [r4, #1170] @ movhi - b .L848 -.L842: - ldrh r2, [r4, #1172] - cmp r2, r3 - bne .L843 - strh r5, [r4, #1172] @ movhi - b .L848 -.L843: - ldrh r2, [r4, #1174] - cmp r2, r3 - bne .L844 + bne .L853 strh r5, [r4, #1174] @ movhi - b .L848 -.L844: + b .L859 +.L853: ldrh r2, [r4, #1176] cmp r2, r3 - bne .L849 + bne .L854 strh r5, [r4, #1176] @ movhi -.L848: + b .L859 +.L854: + ldrh r2, [r4, #1178] + cmp r2, r3 + bne .L855 + strh r5, [r4, #1178] @ movhi + b .L859 +.L855: + ldrh r2, [r4, #1180] + cmp r2, r3 + bne .L860 + strh r5, [r4, #1180] @ movhi +.L859: movs r0, #0 pop {r3, r4, r5, pc} -.L849: +.L860: mov r0, #-1 pop {r3, r4, r5, pc} -.L851: +.L862: .align 2 -.L850: +.L861: .word .LANCHOR2 .word .LC79 .fnend @@ -6051,55 +6098,55 @@ FtlGcMarkBadPhyBlk: .save {r4, r5, r6, lr} mov r5, r0 bl P2V_block_in_plane - ldr r4, .L861 + ldr r4, .L872 mov r2, r5 - ldrh r1, [r4, #1178] + ldrh r1, [r4, #1182] mov r6, r0 - ldr r0, .L861+4 + ldr r0, .L872+4 bl printk mov r0, r6 bl FtlGcRefreshBlock - ldr r3, .L861+8 - ldr r2, [r3, #2308] + ldr r3, .L872+8 + ldr r2, [r3, #2244] mov r3, r4 - cbz r2, .L853 - ldr r1, [r4, #228] + cbz r2, .L864 + ldr r1, [r4, #232] ldrh r2, [r1, r6, lsl #1] cmp r2, #39 itt hi subhi r2, r2, #40 strhhi r2, [r1, r6, lsl #1] @ movhi -.L853: - ldrh r2, [r3, #1178] +.L864: + ldrh r2, [r3, #1182] movs r1, #0 - ldr r4, .L861+12 -.L854: + ldr r4, .L872+12 +.L865: uxth r0, r1 cmp r0, r2 - bcs .L860 + bcs .L871 adds r1, r1, #1 add r0, r4, r1, lsl #1 ldrh r0, [r0, #-2] cmp r0, r5 - bne .L854 - b .L855 -.L860: + bne .L865 + b .L866 +.L871: cmp r2, #15 itttt ls addls r1, r2, #1 - strhls r1, [r3, #1178] @ movhi + strhls r1, [r3, #1182] @ movhi addls r3, r3, r2, lsl #1 - strhls r5, [r3, #1180] @ movhi -.L855: + strhls r5, [r3, #1184] @ movhi +.L866: movs r0, #0 pop {r4, r5, r6, pc} -.L862: +.L873: .align 2 -.L861: +.L872: .word .LANCHOR2 .word .LC80 .word .LANCHOR0 - .word .LANCHOR2+1180 + .word .LANCHOR2+1184 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 1 @@ -6113,32 +6160,32 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L869 - ldrh r3, [r4, #1178] - cbz r3, .L864 - ldrh r1, [r4, #1170] + ldr r4, .L880 + ldrh r3, [r4, #1182] + cbz r3, .L875 + ldrh r1, [r4, #1174] movw r2, #65535 cmp r1, r2 - bne .L864 - ldrh r2, [r4, #1214] + bne .L875 + ldrh r2, [r4, #1218] cmp r2, r3 itt cs movcs r3, #0 - strhcs r3, [r4, #1214] @ movhi - ldrh r3, [r4, #1214] + strhcs r3, [r4, #1218] @ movhi + ldrh r3, [r4, #1218] add r3, r4, r3, lsl #1 - ldrh r0, [r3, #1180] + ldrh r0, [r3, #1184] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh r3, [r4, #1214] + ldrh r3, [r4, #1218] adds r3, r3, #1 - strh r3, [r4, #1214] @ movhi -.L864: + strh r3, [r4, #1218] @ movhi +.L875: movs r0, #0 pop {r4, pc} -.L870: +.L881: .align 2 -.L869: +.L880: .word .LANCHOR2 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -6167,29 +6214,29 @@ BuildFlashLsbPageTable: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r1 - cbnz r0, .L873 - ldr r3, .L907 -.L874: + cbnz r0, .L884 + ldr r3, .L926 +.L885: strh r0, [r3, r0, lsl #1] @ movhi adds r0, r0, #1 - cmp r0, #256 - bne .L874 -.L878: + cmp r0, #512 + bne .L885 +.L889: movs r1, #255 - ldr r0, .L907+4 + ldr r0, .L926+4 mov r2, #2048 uxth r4, r4 bl ftl_memset movs r3, #0 - ldr r1, .L907 - ldr r0, .L907+8 - b .L875 -.L873: + ldr r1, .L926 + ldr r0, .L926+8 + b .L886 +.L884: cmp r0, #1 - bne .L876 - ldr r5, .L907 + bne .L887 + ldr r5, .L926 movs r3, #0 -.L877: +.L888: uxth r2, r3 cmp r2, #3 ite ls @@ -6205,15 +6252,15 @@ BuildFlashLsbPageTable: movne r2, r1 strh r2, [r5, r3, lsl #1] @ movhi adds r3, r3, #1 - cmp r3, #256 - bne .L877 - b .L878 -.L876: + cmp r3, #512 + bne .L888 + b .L889 +.L887: cmp r0, #2 - bne .L879 - ldr r0, .L907 + bne .L890 + ldr r0, .L926 movs r3, #0 -.L880: +.L891: uxth r2, r3 lsls r1, r2, #1 subs r1, r1, #1 @@ -6222,15 +6269,15 @@ BuildFlashLsbPageTable: movhi r2, r1 strh r2, [r0, r3, lsl #1] @ movhi adds r3, r3, #1 - cmp r3, #256 - bne .L880 - b .L878 -.L879: + cmp r3, #512 + bne .L891 + b .L889 +.L890: cmp r0, #3 - bne .L881 - ldr r5, .L907 + bne .L892 + ldr r5, .L926 movs r3, #0 -.L882: +.L893: uxth r2, r3 cmp r2, #5 ite ls @@ -6246,29 +6293,29 @@ BuildFlashLsbPageTable: movne r2, r1 strh r2, [r5, r3, lsl #1] @ movhi adds r3, r3, #1 - cmp r3, #256 - bne .L882 - b .L878 -.L881: + cmp r3, #512 + bne .L893 + b .L889 +.L892: cmp r0, #4 mov r3, #0 - bne .L883 - ldr r2, .L907+12 - strh r3, [r2, #144] @ movhi - movs r3, #1 - strh r0, [r2, #152] @ movhi - strh r3, [r2, #146] @ movhi - movs r3, #2 + bne .L894 + ldr r2, .L926+12 strh r3, [r2, #148] @ movhi - movs r3, #3 + movs r3, #1 + strh r0, [r2, #156] @ movhi strh r3, [r2, #150] @ movhi - movs r3, #5 + movs r3, #2 + strh r3, [r2, #152] @ movhi + movs r3, #3 strh r3, [r2, #154] @ movhi + movs r3, #5 + strh r3, [r2, #158] @ movhi movs r3, #7 - strh r3, [r2, #156] @ movhi + strh r3, [r2, #160] @ movhi movs r3, #8 - strh r3, [r2, #158]! @ movhi -.L884: + strh r3, [r2, #162]! @ movhi +.L895: tst r3, #1 ite ne movne r1, #7 @@ -6277,31 +6324,31 @@ BuildFlashLsbPageTable: adds r3, r3, #1 strh r1, [r2, #2]! @ movhi uxth r3, r3 - cmp r3, #256 - bne .L884 - b .L878 -.L883: + cmp r3, #512 + bne .L895 + b .L889 +.L894: cmp r0, #5 - bne .L885 - ldr r2, .L907 -.L886: + bne .L896 + ldr r2, .L926 +.L897: strh r3, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #16 - bne .L886 - ldr r2, .L907+16 -.L887: + bne .L897 + ldr r2, .L926+16 +.L898: strh r3, [r2, #2]! @ movhi adds r3, r3, #2 uxth r3, r3 - cmp r3, #496 - bne .L887 - b .L878 -.L885: + cmp r3, #1008 + bne .L898 + b .L889 +.L896: cmp r0, #6 - bne .L888 - ldr r5, .L907 -.L889: + bne .L899 + ldr r5, .L926 +.L900: uxth r2, r3 cmp r2, #5 ite ls @@ -6318,65 +6365,111 @@ BuildFlashLsbPageTable: movne r2, r1 strh r2, [r5, r3, lsl #1] @ movhi adds r3, r3, #1 - cmp r3, #256 - bne .L889 - b .L878 -.L888: + cmp r3, #512 + bne .L900 + b .L889 +.L899: cmp r0, #9 - bne .L890 - ldr r2, .L907+12 - movw r1, #509 - strh r3, [r2, #144] @ movhi + bne .L901 + ldr r2, .L926+12 + movw r1, #1021 + strh r3, [r2, #148] @ movhi movs r3, #1 - strh r3, [r2, #146] @ movhi + strh r3, [r2, #150] @ movhi movs r3, #2 - strh r3, [r2, #148]! @ movhi + strh r3, [r2, #152]! @ movhi movs r3, #3 -.L891: +.L902: strh r3, [r2, #2]! @ movhi adds r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L891 - b .L878 -.L890: + bne .L902 + b .L889 +.L901: cmp r0, #10 - bne .L878 - ldr r2, .L907 -.L892: + bne .L903 + ldr r2, .L926 +.L904: strh r3, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #63 - bne .L892 - ldr r2, .L907+20 + bne .L904 + ldr r2, .L926+20 movw r1, #961 -.L893: +.L905: strh r3, [r2, #2]! @ movhi adds r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L893 - b .L878 -.L875: + bne .L905 + b .L889 +.L903: + cmp r0, #11 + bne .L906 + ldr r2, .L926 + movs r3, #0 +.L907: + strh r3, [r2, r3, lsl #1] @ movhi + adds r3, r3, #1 + cmp r3, #8 + bne .L907 + ldr r1, .L926+24 +.L908: + tst r3, #1 + ite ne + movne r2, #7 + moveq r2, #6 + rsb r2, r2, r3, lsl #1 + adds r3, r3, #1 + strh r2, [r1, #2]! @ movhi + uxth r3, r3 + cmp r3, #512 + bne .L908 + b .L889 +.L906: + cmp r0, #12 + bne .L889 + ldr r3, .L926+12 + movs r2, #0 + strh r2, [r3, #148] @ movhi + movs r2, #1 + strh r2, [r3, #150] @ movhi + movs r2, #2 + strh r2, [r3, #152] @ movhi + movs r2, #3 + strh r2, [r3, #154]! @ movhi + movs r2, #4 +.L909: + subs r1, r2, #1 + add r1, r1, r2, lsr #1 + adds r2, r2, #1 + strh r1, [r3, #2]! @ movhi + uxth r2, r2 + cmp r2, #512 + bne .L909 + b .L889 +.L886: uxth r2, r3 cmp r2, r4 - bcs .L906 + bcs .L925 ldrh r2, [r1, r3, lsl #1] adds r3, r3, #1 add r5, r0, r2, lsl #1 - strh r2, [r5, #1216] @ movhi - b .L875 -.L906: + strh r2, [r5, #1220] @ movhi + b .L886 +.L925: pop {r4, r5, r6, pc} -.L908: +.L927: .align 2 -.L907: - .word .LANCHOR0+144 - .word .LANCHOR2+1216 +.L926: + .word .LANCHOR0+148 + .word .LANCHOR2+1220 .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+174 - .word .LANCHOR0+268 + .word .LANCHOR0+178 + .word .LANCHOR0+272 + .word .LANCHOR0+162 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 1 @@ -6391,14 +6484,14 @@ FlashDieInfoInit: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r7, #0 - ldr r3, .L923 - ldr r4, .L923+4 - ldr r6, .L923+8 + ldr r3, .L942 + ldr r4, .L942+4 + ldr r6, .L942+8 ldrh r0, [r3, #482] addw fp, r4, #2068 - strb r7, [r4, #2229] + strb r7, [r4, #2230] mov r9, r4 - strb r7, [r6, #3264] + strb r7, [r6, #3268] bl FlashBlockAlignInit mov r1, r7 movs r2, #8 @@ -6406,81 +6499,81 @@ FlashDieInfoInit: bl ftl_memset mov r1, r7 movs r2, #32 - add r0, r4, #1168 + addw r0, r4, #1172 bl ftl_memset addw r0, r4, #2100 mov r1, r7 movs r2, #128 bl ftl_memset - ldr r5, [r4, #1204] + ldr r5, [r4, #44] add r8, r5, #1 -.L911: +.L930: mov r0, r8 add r1, fp, r7, lsl #3 ldrb r2, [r5] @ zero_extendqisi2 bl FlashMemCmp8 - ldr r10, .L923+12 - cbnz r0, .L910 - ldrb r3, [r9, #2229] @ zero_extendqisi2 + ldr r10, .L942+12 + cbnz r0, .L929 + ldrb r3, [r9, #2230] @ zero_extendqisi2 add r2, r9, r3, lsl #2 - str r0, [r2, #1168] + str r0, [r2, #1172] adds r2, r3, #1 add r3, r3, r9 - strb r2, [r9, #2229] + strb r2, [r9, #2230] strb r7, [r3, #2232] -.L910: +.L929: adds r7, r7, #1 cmp r7, #4 - bne .L911 - ldrb r3, [r4, #2229] @ zero_extendqisi2 - ldr r2, .L923+4 - strb r3, [r6, #3264] + bne .L930 + ldrb r3, [r4, #2230] @ zero_extendqisi2 + ldr r2, .L942+4 + strb r3, [r6, #3268] ldrb r3, [r5, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L912 -.L916: + beq .L931 +.L935: ldrb r3, [r5, #13] @ zero_extendqisi2 - ldrb r2, [r4, #2229] @ zero_extendqisi2 + ldrb r2, [r4, #2230] @ zero_extendqisi2 smulbb r2, r2, r3 ldrh r3, [r5, #14] smulbb r3, r2, r3 - strh r3, [r6, #3266] @ movhi + strh r3, [r6, #3270] @ movhi pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L912: +.L931: ldr r9, [r2, #4] movs r7, #0 mov fp, r2 -.L915: +.L934: mov r0, r8 add r1, r10, r7, lsl #3 ldrb r2, [r5] @ zero_extendqisi2 bl FlashMemCmp8 - cbnz r0, .L913 + cbnz r0, .L932 ldrb r0, [r5, #13] @ zero_extendqisi2 ldrh r3, [r5, #14] - ldrb r2, [fp, #2229] @ zero_extendqisi2 + ldrb r2, [fp, #2230] @ zero_extendqisi2 mul r0, r9, r0 and r3, r3, #65280 add r1, fp, r2, lsl #2 muls r3, r0, r3 - str r3, [r1, #1168] + str r3, [r1, #1172] ldrb r0, [r5, #23] @ zero_extendqisi2 - cbz r0, .L914 + cbz r0, .L933 lsls r3, r3, #1 - str r3, [r1, #1168] -.L914: + str r3, [r1, #1172] +.L933: adds r3, r2, #1 add r2, r2, r4 - strb r3, [r4, #2229] + strb r3, [r4, #2230] strb r7, [r2, #2232] -.L913: +.L932: adds r7, r7, #1 cmp r7, #4 - bne .L915 - b .L916 -.L924: + bne .L934 + b .L935 +.L943: .align 2 -.L923: +.L942: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -6502,20 +6595,20 @@ ftl_read_flash_info: movs r2, #11 mov r4, r0 bl ftl_memset - ldr r3, .L929 + ldr r3, .L948 movs r5, #1 - ldr r2, [r3, #1204] + ldr r2, [r3, #44] ldrb r1, [r2, #9] @ zero_extendqisi2 ldr r2, [r3, #4] smulbb r2, r1, r2 strh r2, [r4, #4] @ unaligned - ldrb r2, [r3, #2304] @ zero_extendqisi2 + ldrb r2, [r3, #2312] @ zero_extendqisi2 strb r2, [r4, #7] - ldr r2, [r3, #2424] + ldr r2, [r3, #2428] str r2, [r4] @ unaligned - ldr r2, [r3, #1204] + ldr r2, [r3, #44] addw r3, r3, #2232 - ldrb r0, [r3, #-3] @ zero_extendqisi2 + ldrb r0, [r3, #-2] @ zero_extendqisi2 ldrb r1, [r2, #9] @ zero_extendqisi2 strb r1, [r4, #6] movs r1, #32 @@ -6524,22 +6617,22 @@ ftl_read_flash_info: strb r2, [r4, #9] movs r2, #0 strb r2, [r4, #10] -.L926: +.L945: uxtb r1, r2 cmp r1, r0 - bcs .L928 + bcs .L947 ldrb r1, [r2, r3] @ zero_extendqisi2 adds r2, r2, #1 lsl r6, r5, r1 ldrb r1, [r4, #10] @ zero_extendqisi2 orrs r1, r1, r6 strb r1, [r4, #10] - b .L926 -.L928: + b .L945 +.L947: pop {r4, r5, r6, pc} -.L930: +.L949: .align 2 -.L929: +.L948: .word .LANCHOR0 .fnend .size ftl_read_flash_info, .-ftl_read_flash_info @@ -6555,374 +6648,374 @@ FtlMemInit: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r0, #1024 - ldr r4, .L1035 + ldr r4, .L1054 movs r6, #0 - ldr r5, .L1035+4 + ldr r5, .L1054+4 movw r3, #65535 movs r7, #12 mov r8, #36 - strh r6, [r4, #3268] @ movhi - str r6, [r4, #3272] - str r6, [r4, #600] - str r6, [r4, #504] - str r6, [r4, #508] - str r6, [r4, #492] - str r6, [r4, #480] - str r6, [r4, #476] - str r6, [r4, #484] - str r6, [r4, #488] - str r6, [r4, #472] - str r6, [r4, #512] - str r6, [r4, #516] - str r6, [r4, #232] - str r6, [r4, #524] - str r6, [r4, #528] + strh r6, [r4, #3272] @ movhi str r6, [r4, #3276] - str r6, [r4, #1128] - str r3, [r4, #3280] - str r6, [r4, #3284] - str r6, [r4, #1120] + str r6, [r4, #604] + str r6, [r4, #508] + str r6, [r4, #512] + str r6, [r4, #496] + str r6, [r4, #484] + str r6, [r4, #480] + str r6, [r4, #488] + str r6, [r4, #492] + str r6, [r4, #476] + str r6, [r4, #516] + str r6, [r4, #520] + str r6, [r4, #236] + str r6, [r4, #528] + str r6, [r4, #532] + str r6, [r4, #3280] + str r6, [r4, #1132] + str r3, [r4, #3284] str r6, [r4, #3288] - strh r3, [r4, #1170] @ movhi - strh r3, [r4, #1172] @ movhi + str r6, [r4, #1124] + str r6, [r4, #3292] strh r3, [r4, #1174] @ movhi strh r3, [r4, #1176] @ movhi + strh r3, [r4, #1178] @ movhi + strh r3, [r4, #1180] @ movhi movs r3, #32 - strh r6, [r4, #1124] @ movhi - strh r3, [r4, #1116] @ movhi + strh r6, [r4, #1128] @ movhi + strh r3, [r4, #1120] @ movhi movs r3, #128 - strh r6, [r4, #1178] @ movhi - strh r3, [r4, #1118] @ movhi - strh r6, [r4, #3292] @ movhi - strh r6, [r4, #1214] @ movhi - ldrh r1, [r5, #2390] + strh r6, [r4, #1182] @ movhi + strh r3, [r4, #1122] @ movhi + strh r6, [r4, #3296] @ movhi + strh r6, [r4, #1218] @ movhi + ldrh r1, [r5, #2394] bl __aeabi_idiv - ldrh r3, [r5, #2316] - str r6, [r5, #2436] + ldrh r3, [r5, #2320] + str r6, [r5, #2440] lsls r3, r3, #2 cmp r0, r3 - str r0, [r4, #3296] - ldrh r0, [r5, #2388] + str r0, [r4, #3300] + ldrh r0, [r5, #2392] it hi - strhi r3, [r4, #3296] + strhi r3, [r4, #3300] lsls r0, r0, #1 bl ftl_malloc - str r0, [r4, #1156] - ldrh r0, [r5, #2388] + str r0, [r4, #1160] + ldrh r0, [r5, #2392] muls r0, r7, r0 bl ftl_malloc - ldrh r6, [r5, #2316] + ldrh r6, [r5, #2320] mul r6, r8, r6 lsl r9, r6, #3 - str r0, [r4, #1164] + str r0, [r4, #1168] mov r0, r9 bl ftl_malloc - str r0, [r4, #3300] - mov r0, r6 - bl ftl_malloc str r0, [r4, #3304] - mov r0, r9 + mov r0, r6 bl ftl_malloc str r0, [r4, #3308] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #224] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #1148] - ldr r0, [r4, #3296] - mul r0, r8, r0 - bl ftl_malloc - ldrh r6, [r5, #2394] - ldrh r3, [r5, #2316] - lsls r3, r3, #1 - adds r3, r3, #1 - str r3, [r4, #1152] - str r0, [r5, #2440] - mov r0, r6 + mov r0, r9 bl ftl_malloc str r0, [r4, #3312] mov r0, r6 bl ftl_malloc + str r0, [r4, #228] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #1152] + ldr r0, [r4, #3300] + mul r0, r8, r0 + bl ftl_malloc + ldrh r6, [r5, #2398] + ldrh r3, [r5, #2320] + lsls r3, r3, #1 + adds r3, r3, #1 + str r3, [r4, #1156] + str r0, [r5, #2444] + mov r0, r6 + bl ftl_malloc str r0, [r4, #3316] mov r0, r6 bl ftl_malloc str r0, [r4, #3320] - ldr r0, [r4, #1152] - muls r0, r6, r0 - bl ftl_malloc - str r0, [r4, #1140] - ldr r0, [r4, #3296] - muls r0, r6, r0 + mov r0, r6 bl ftl_malloc str r0, [r4, #3324] - mov r0, r6 + ldr r0, [r4, #1156] + muls r0, r6, r0 + bl ftl_malloc + str r0, [r4, #1144] + ldr r0, [r4, #3300] + muls r0, r6, r0 bl ftl_malloc str r0, [r4, #3328] mov r0, r6 bl ftl_malloc str r0, [r4, #3332] - ldr r0, [r4, #1152] - muls r0, r7, r0 - bl ftl_malloc - ldrh r3, [r5, #2316] - ldrh r6, [r5, #2396] - muls r6, r3, r6 - str r0, [r4, #1136] mov r0, r6 bl ftl_malloc str r0, [r4, #3336] + ldr r0, [r4, #1156] + muls r0, r7, r0 + bl ftl_malloc + ldrh r3, [r5, #2320] + ldrh r6, [r5, #2400] + muls r6, r3, r6 + str r0, [r4, #1140] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #3340] lsls r0, r6, #3 bl ftl_malloc - ldrh r3, [r5, #2396] - str r0, [r4, #3340] - ldr r0, [r4, #1152] - muls r0, r3, r0 - bl ftl_malloc - ldrh r3, [r5, #2396] - str r0, [r4, #1144] - ldr r0, [r4, #3296] - muls r0, r3, r0 - bl ftl_malloc + ldrh r3, [r5, #2400] str r0, [r4, #3344] - ldrh r0, [r5, #2326] + ldr r0, [r4, #1156] + muls r0, r3, r0 + bl ftl_malloc + ldrh r3, [r5, #2400] + str r0, [r4, #1148] + ldr r0, [r4, #3300] + muls r0, r3, r0 + bl ftl_malloc + str r0, [r4, #3348] + ldrh r0, [r5, #2330] lsls r0, r0, #1 uxth r0, r0 - strh r0, [r4, #3348] @ movhi + strh r0, [r4, #3352] @ movhi bl ftl_malloc - str r0, [r4, #3352] - ldrh r0, [r4, #3348] + str r0, [r4, #3356] + ldrh r0, [r4, #3352] addw r0, r0, #547 lsrs r0, r0, #9 - strh r0, [r4, #3348] @ movhi + strh r0, [r4, #3352] @ movhi lsls r0, r0, #9 bl ftl_malloc - ldrh r6, [r5, #2326] + ldrh r6, [r5, #2330] lsls r6, r6, #1 - str r0, [r4, #3356] - adds r0, r0, #32 - str r0, [r4, #228] - mov r0, r6 - bl ftl_malloc str r0, [r4, #3360] - mov r0, r6 - bl ftl_malloc - ldr r6, [r5, #2412] - lsls r6, r6, #1 - str r0, [r4, #292] + adds r0, r0, #32 + str r0, [r4, #232] mov r0, r6 bl ftl_malloc str r0, [r4, #3364] mov r0, r6 bl ftl_malloc + ldr r6, [r5, #2416] + lsls r6, r6, #1 + str r0, [r4, #296] + mov r0, r6 + bl ftl_malloc str r0, [r4, #3368] - ldrh r0, [r5, #2326] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #3372] + ldrh r0, [r5, #2330] lsrs r0, r0, #3 adds r0, r0, #4 bl ftl_malloc - str r0, [r4, #468] - ldrh r0, [r5, #2404] + str r0, [r4, #472] + ldrh r0, [r5, #2408] lsls r0, r0, #1 bl ftl_malloc - str r0, [r5, #2432] - ldrh r0, [r5, #2404] + str r0, [r5, #2436] + ldrh r0, [r5, #2408] lsls r0, r0, #1 bl ftl_malloc - str r0, [r4, #3372] - ldrh r0, [r5, #2404] - lsls r0, r0, #2 - bl ftl_malloc str r0, [r4, #3376] - ldrh r0, [r5, #2406] + ldrh r0, [r5, #2408] lsls r0, r0, #2 bl ftl_malloc - ldrh r2, [r5, #2406] + str r0, [r4, #3380] + ldrh r0, [r5, #2410] + lsls r0, r0, #2 + bl ftl_malloc + ldrh r2, [r5, #2410] movs r1, #0 lsls r2, r2, #2 - str r0, [r4, #3380] + str r0, [r4, #3384] bl ftl_memset - ldrh r6, [r5, #2420] + ldrh r6, [r5, #2424] lsls r6, r6, #2 mov r0, r6 bl ftl_malloc - str r0, [r4, #3384] + str r0, [r4, #3388] mov r0, r6 bl ftl_malloc - ldr r6, .L1035+8 - str r0, [r4, #3388] - ldr r0, [r5, #2412] + ldr r6, .L1054+8 + str r0, [r4, #3392] + ldr r0, [r5, #2416] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #3392] - ldrh r0, [r5, #2422] + str r0, [r4, #3396] + ldrh r0, [r5, #2426] muls r0, r7, r0 bl ftl_malloc - ldrh r3, [r5, #2422] - str r0, [r4, #456] - ldrh r0, [r5, #2394] + ldrh r3, [r5, #2426] + str r0, [r4, #460] + ldrh r0, [r5, #2398] muls r0, r3, r0 bl ftl_malloc - ldrh r3, [r5, #2326] - str r0, [r4, #3396] + ldrh r3, [r5, #2330] + str r0, [r4, #3400] movs r0, #6 muls r0, r3, r0 bl ftl_malloc - ldrh r3, [r5, #2382] + ldrh r3, [r5, #2386] adds r3, r3, #31 asrs r3, r3, #5 - strh r3, [r4, #3400] @ movhi - str r0, [r4, #284] - ldrh r0, [r5, #2338] + strh r3, [r4, #3404] @ movhi + str r0, [r4, #288] + ldrh r0, [r5, #2342] muls r0, r3, r0 lsls r0, r0, #2 bl ftl_malloc - ldrh r2, [r4, #3400] - ldrh r7, [r5, #2338] + ldrh r2, [r4, #3404] + ldrh r7, [r5, #2342] movs r3, #1 lsls r2, r2, #2 mov r1, r2 - str r0, [r5, #2476] -.L933: + str r0, [r5, #2480] +.L952: cmp r3, r7 - bcs .L1033 - ldr r0, [r5, #2476] + bcs .L1052 + ldr r0, [r5, #2480] adds r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [r6, #4]! - b .L933 -.L1033: - ldr r2, .L1035+12 + b .L952 +.L1052: + ldr r2, .L1054+12 movs r1, #0 -.L935: +.L954: cmp r3, #8 - beq .L1034 + beq .L1053 add r0, r2, r3, lsl #2 adds r3, r3, #1 str r1, [r0, #28] - b .L935 -.L1034: - ldr r2, [r4, #3364] - ldr r3, .L1035 - cbnz r2, .L937 -.L939: - ldr r1, .L1035+16 - ldr r0, .L1035+20 + b .L954 +.L1053: + ldr r2, [r4, #3368] + ldr r3, .L1054 + cbnz r2, .L956 +.L958: + ldr r1, .L1054+16 + ldr r0, .L1054+20 bl printk mov r0, #-1 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1036: +.L1055: .align 2 -.L1035: +.L1054: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+2476 - .word .LANCHOR0+2448 + .word .LANCHOR0+2480 + .word .LANCHOR0+2452 .word .LANCHOR3 .word .LC81 -.L937: - ldr r2, [r3, #3368] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3384] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3392] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #456] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3396] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #284] - cmp r2, #0 - beq .L939 - ldr r2, [r5, #2476] - cmp r2, #0 - beq .L939 - ldr r3, [r3, #292] - cmp r3, #0 - beq .L939 - ldr r2, [r4, #1156] - ldr r3, .L1037 - cmp r2, #0 - beq .L939 - ldr r2, [r3, #1164] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3300] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3308] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #224] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #1148] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3304] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3312] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3316] - cmp r2, #0 - beq .L939 - ldr r3, [r3, #3320] - cmp r3, #0 - beq .L939 - ldr r2, [r4, #1140] - ldr r3, .L1037 - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3328] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3332] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #1136] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3336] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #3340] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #1144] - cmp r2, #0 - beq .L939 - ldr r2, [r3, #228] - cmp r2, #0 - beq .L939 - ldr r3, [r3, #3352] - cmp r3, #0 - beq .L939 - ldr r3, .L1037+4 - ldr r3, [r3, #2432] - cmp r3, #0 - beq .L939 - ldr r3, .L1037 +.L956: ldr r2, [r3, #3372] cmp r2, #0 - beq .L939 + beq .L958 + ldr r2, [r3, #3388] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3396] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #460] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3400] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #288] + cmp r2, #0 + beq .L958 + ldr r2, [r5, #2480] + cmp r2, #0 + beq .L958 + ldr r3, [r3, #296] + cmp r3, #0 + beq .L958 + ldr r2, [r4, #1160] + ldr r3, .L1056 + cmp r2, #0 + beq .L958 + ldr r2, [r3, #1168] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3304] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3312] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #228] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #1152] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3308] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3316] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3320] + cmp r2, #0 + beq .L958 + ldr r3, [r3, #3324] + cmp r3, #0 + beq .L958 + ldr r2, [r4, #1144] + ldr r3, .L1056 + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3332] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3336] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #1140] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3340] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #3344] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #1148] + cmp r2, #0 + beq .L958 + ldr r2, [r3, #232] + cmp r2, #0 + beq .L958 + ldr r3, [r3, #3356] + cmp r3, #0 + beq .L958 + ldr r3, .L1056+4 + ldr r3, [r3, #2436] + cmp r3, #0 + beq .L958 + ldr r3, .L1056 ldr r2, [r3, #3376] cmp r2, #0 - beq .L939 - ldr r3, [r3, #3380] + beq .L958 + ldr r2, [r3, #3380] + cmp r2, #0 + beq .L958 + ldr r3, [r3, #3384] cmp r3, #0 - beq .L939 + beq .L958 movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1038: +.L1057: .align 2 -.L1037: +.L1056: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -6939,22 +7032,22 @@ FtlBbt2Bitmap: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r0 - ldr r3, .L1044 + ldr r3, .L1063 mov r0, r1 mov r5, r1 movs r1, #0 movs r7, #1 - ldrh r2, [r3, #3400] + ldrh r2, [r3, #3404] lsls r2, r2, #2 bl ftl_memset - ldr r1, .L1044+4 + ldr r1, .L1063+4 subs r2, r4, #2 addw r4, r4, #1022 movw lr, #65535 -.L1041: +.L1060: ldrh r3, [r2, #2]! cmp r3, lr - beq .L1039 + beq .L1058 lsrs r0, r3, #5 and r3, r3, #31 lsl r3, r7, r3 @@ -6962,15 +7055,15 @@ FtlBbt2Bitmap: ldr r6, [r5, r0, lsl #2] orr r3, r3, r6 str r3, [r5, r0, lsl #2] - ldrh r3, [r1, #2454] + ldrh r3, [r1, #2458] add r3, r3, #1 - strh r3, [r1, #2454] @ movhi - bne .L1041 -.L1039: + strh r3, [r1, #2458] @ movhi + bne .L1060 +.L1058: pop {r3, r4, r5, r6, r7, pc} -.L1045: +.L1064: .align 2 -.L1044: +.L1063: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -6985,18 +7078,18 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1047 + ldr r0, .L1066 movw r3, #65535 movs r1, #255 movs r2, #16 - addw r0, r0, #2460 + add r0, r0, #2464 strh r3, [r0, #-12] @ movhi movs r3, #0 strh r3, [r0, #-6] @ movhi b ftl_memset -.L1048: +.L1067: .align 2 -.L1047: +.L1066: .word .LANCHOR0 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit @@ -7009,23 +7102,23 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1050 + ldr r3, .L1069 mov r2, #2048 push {r4, lr} .save {r4, lr} movs r4, #0 - strh r0, [r3, #2508] @ movhi - addw r0, r3, #2516 + strh r0, [r3, #2512] @ movhi + addw r0, r3, #2520 mov r1, r4 - strh r4, [r3, #2510] @ movhi - strh r4, [r3, #2512] @ movhi strh r4, [r3, #2514] @ movhi + strh r4, [r3, #2516] @ movhi + strh r4, [r3, #2518] @ movhi bl ftl_memset mov r0, r4 pop {r4, pc} -.L1051: +.L1070: .align 2 -.L1050: +.L1069: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -7050,65 +7143,65 @@ ftl_free_no_use_map_blk: mov r0, r6 bl ftl_memset movs r1, #0 -.L1053: +.L1072: ldrh r2, [r4, #6] uxth r3, r1 cmp r2, r3 - bls .L1072 + bls .L1091 ldr r2, [r5, r3, lsl #2] movs r0, #0 ubfx r2, r2, #10, #16 -.L1054: +.L1073: ldrh lr, [r4, #10] uxth r3, r0 cmp lr, r3 - bls .L1073 + bls .L1092 ldrh lr, [r7, r3, lsl #1] cmp lr, r2 - bne .L1055 - cbz r2, .L1055 + bne .L1074 + cbz r2, .L1074 ldrh lr, [r6, r3, lsl #1] add lr, lr, #1 strh lr, [r6, r3, lsl #1] @ movhi -.L1055: +.L1074: adds r0, r0, #1 - b .L1054 -.L1073: + b .L1073 +.L1092: adds r1, r1, #1 - b .L1053 -.L1072: - ldr r3, .L1076 + b .L1072 +.L1091: + ldr r3, .L1095 mov r8, #0 mov r10, r8 - ldrh r2, [r3, #2386] + ldrh r2, [r3, #2390] ldrh r3, [r4] strh r2, [r6, r3, lsl #1] @ movhi mov r2, r8 ldrh r9, [r6] -.L1058: +.L1077: ldrh r3, [r4, #10] uxth r5, r8 cmp r3, r5 - bls .L1074 + bls .L1093 ldrh r3, [r6, r5, lsl #1] lsls r1, r5, #1 cmp r9, r3 - bls .L1059 + bls .L1078 ldrh r0, [r7, r5, lsl #1] add fp, r7, r1 - cbnz r0, .L1060 - b .L1061 -.L1059: - cbnz r3, .L1061 + cbnz r0, .L1079 + b .L1080 +.L1078: + cbnz r3, .L1080 ldrh r0, [r7, r1] add fp, r7, r1 - cbz r0, .L1061 + cbz r0, .L1080 mov r5, r2 - b .L1063 -.L1060: - cbnz r3, .L1075 + b .L1082 +.L1079: + cbnz r3, .L1094 mov r9, r3 -.L1063: +.L1082: movs r1, #1 bl FtlFreeSysBlkQueueIn strh r10, [fp] @ movhi @@ -7116,19 +7209,19 @@ ftl_free_no_use_map_blk: mov r2, r5 subs r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1061: +.L1080: add r8, r8, #1 - b .L1058 -.L1075: + b .L1077 +.L1094: mov r2, r5 mov r9, r3 - b .L1061 -.L1074: + b .L1080 +.L1093: mov r0, r2 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1077: +.L1096: .align 2 -.L1076: +.L1095: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -7144,71 +7237,71 @@ FtlL2PDataInit: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} movs r1, #0 - ldr r4, .L1082 + ldr r4, .L1101 movs r7, #0 - ldr r5, .L1082+4 + ldr r5, .L1101+4 mov r6, r7 - ldr r2, [r4, #2412] + ldr r2, [r4, #2416] mov r9, r4 - ldr r0, [r5, #3368] + ldr r0, [r5, #3372] lsls r2, r2, #1 bl ftl_memset - ldrh r3, [r4, #2394] - ldrh r2, [r4, #2422] + ldrh r3, [r4, #2398] + ldrh r2, [r4, #2426] movs r1, #255 - ldr r0, [r5, #3396] + ldr r0, [r5, #3400] muls r2, r3, r2 bl ftl_memset mov r3, r5 movs r5, #12 mov r2, r4 movw lr, #65535 -.L1079: - ldrh ip, [r2, #2422] +.L1098: + ldrh ip, [r2, #2426] adds r0, r7, #1 uxth r7, r7 - ldr r1, .L1082 + ldr r1, .L1101 cmp ip, r7 - bls .L1081 + bls .L1100 mul r1, r5, r7 - ldr ip, [r3, #456] + ldr ip, [r3, #460] add r8, ip, r1 str r6, [r8, #4] strh lr, [ip, r1] @ movhi - ldr r4, [r3, #456] + ldr r4, [r3, #460] add ip, r4, r1 - ldrh r1, [r9, #2394] + ldrh r1, [r9, #2398] muls r1, r7, r1 - ldr r7, [r3, #3396] + ldr r7, [r3, #3400] bic r1, r1, #3 add r1, r1, r7 mov r7, r0 str r1, [ip, #8] - b .L1079 -.L1081: + b .L1098 +.L1100: movw r2, #65535 - strh r2, [r3, #3406] @ movhi - strh r2, [r3, #3404] @ movhi - ldr r2, [r1, #2412] - strh r2, [r3, #3414] @ movhi - movw r2, #61634 - strh r2, [r3, #3408] @ movhi - ldrh r2, [r3, #3448] - strh r2, [r3, #3412] @ movhi - ldrh r2, [r1, #2420] strh r2, [r3, #3410] @ movhi - ldr r2, [r3, #3364] - str r2, [r3, #3416] - ldr r2, [r3, #3392] - str r2, [r3, #3420] + strh r2, [r3, #3408] @ movhi + ldr r2, [r1, #2416] + strh r2, [r3, #3418] @ movhi + movw r2, #61634 + strh r2, [r3, #3412] @ movhi + ldrh r2, [r3, #3452] + strh r2, [r3, #3416] @ movhi + ldrh r2, [r1, #2424] + strh r2, [r3, #3414] @ movhi ldr r2, [r3, #3368] + str r2, [r3, #3420] + ldr r2, [r3, #3396] str r2, [r3, #3424] - ldr r2, [r3, #3384] + ldr r2, [r3, #3372] str r2, [r3, #3428] + ldr r2, [r3, #3388] + str r2, [r3, #3432] pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1083: +.L1102: .align 2 -.L1082: +.L1101: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7225,47 +7318,47 @@ FtlVariablesInit: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r4, #0 - ldr r6, .L1085 + ldr r6, .L1104 movw r3, #65535 - ldr r5, .L1085+4 + ldr r5, .L1104+4 mov r1, r4 - ldrh r2, [r6, #2404] - ldr r0, [r6, #2432] - strh r3, [r5, #3456] @ movhi + ldrh r2, [r6, #2408] + ldr r0, [r6, #2436] + strh r3, [r5, #3460] @ movhi mov r3, #-1 lsls r2, r2, #1 - str r3, [r5, #3468] - str r4, [r5, #3452] - str r4, [r5, #3460] + str r3, [r5, #3472] + str r4, [r5, #3456] str r4, [r5, #3464] - str r4, [r6, #2308] - strh r4, [r6, #2430] @ movhi + str r4, [r5, #3468] + str r4, [r6, #2244] + strh r4, [r6, #2434] @ movhi bl ftl_memset - ldrh r2, [r6, #2326] + ldrh r2, [r6, #2330] mov r1, r4 - ldr r0, [r5, #228] + ldr r0, [r5, #232] lsls r2, r2, #1 bl ftl_memset - ldrh r2, [r6, #2326] + ldrh r2, [r6, #2330] mov r1, r4 - ldr r0, [r5, #3352] + ldr r0, [r5, #3356] lsls r2, r2, #1 bl ftl_memset mov r1, r4 - add r0, r5, #236 + add r0, r5, #240 movs r2, #48 bl ftl_memset mov r1, r4 mov r2, #512 - add r0, r5, #604 + add r0, r5, #608 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r4 pop {r4, r5, r6, pc} -.L1086: +.L1105: .align 2 -.L1085: +.L1104: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7282,110 +7375,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, .L1098 + ldr r6, .L1117 movs r5, #0 - ldr r4, .L1098+4 + ldr r4, .L1117+4 .pad #20 sub sp, sp, #20 movs r1, #0 mov r9, r5 - ldrh r3, [r6, #2326] + ldrh r3, [r6, #2330] mov r10, r5 - ldr r0, [r4, #284] + ldr r0, [r4, #288] mov r8, r6 muls r2, r3, r2 bl ftl_memset - str r5, [r4, #304] - str r5, [r4, #288] - str r5, [r4, #296] - strh r5, [r4, #300] @ movhi - strh r5, [r4, #308] @ movhi - strh r5, [r4, #3268] @ movhi -.L1088: + str r5, [r4, #308] + str r5, [r4, #292] + str r5, [r4, #300] + strh r5, [r4, #304] @ movhi + strh r5, [r4, #312] @ movhi + strh r5, [r4, #3272] @ movhi +.L1107: uxth fp, r5 - ldrh r2, [r8, #2324] + ldrh r2, [r8, #2328] sxth r7, fp cmp r7, r2 - bge .L1095 - ldr r3, .L1098 + bge .L1114 + ldr r3, .L1117 movs r2, #0 mov r6, r2 - ldrh ip, [r3, #2316] - ldrh r3, [r3, #2384] + ldrh ip, [r3, #2320] + ldrh r3, [r3, #2388] str r3, [sp, #4] -.L1096: +.L1115: sxth r1, r2 cmp r1, ip - bge .L1097 + bge .L1116 add r1, r1, r8 str r2, [sp, #12] str ip, [sp, #8] - ldrb r0, [r1, #2344] @ zero_extendqisi2 + ldrb r0, [r1, #2348] @ zero_extendqisi2 mov r1, fp bl V2P_block bl FtlBbmIsBadBlock ldr ip, [sp, #8] ldr r2, [sp, #12] - cbnz r0, .L1089 + cbnz r0, .L1108 ldr r3, [sp, #4] add r6, r6, r3 uxth r6, r6 -.L1089: +.L1108: adds r2, r2, #1 - b .L1096 -.L1097: - cbz r6, .L1091 + b .L1115 +.L1116: + cbz r6, .L1110 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L1092 -.L1091: - ldr r1, [r4, #292] + b .L1111 +.L1110: + ldr r1, [r4, #296] sxth r2, fp movw r0, #65535 strh r0, [r1, r2, lsl #1] @ movhi -.L1092: +.L1111: add r0, r7, r7, lsl #1 - ldr r1, [r4, #284] - ldr r2, .L1098+4 + ldr r1, [r4, #288] + ldr r2, .L1117+4 add r1, r1, r0, lsl #1 strh r6, [r1, #4] @ movhi - ldrh r1, [r4, #312] + ldrh r1, [r4, #316] cmp r7, r1 - beq .L1093 - ldrh r1, [r2, #360] + beq .L1112 + ldrh r1, [r2, #364] cmp r7, r1 - beq .L1093 - ldrh r1, [r2, #408] + beq .L1112 + ldrh r1, [r2, #412] cmp r7, r1 - beq .L1093 - ldr r2, [r2, #292] + beq .L1112 + ldr r2, [r2, #296] ldrh r2, [r2, r7, lsl #1] - cbnz r2, .L1094 + cbnz r2, .L1113 add r9, r9, #1 mov r0, fp uxth r9, r9 bl INSERT_FREE_LIST - b .L1093 -.L1094: + b .L1112 +.L1113: add r10, r10, #1 mov r0, fp uxth r10, r10 bl INSERT_DATA_LIST -.L1093: +.L1112: adds r5, r5, #1 - b .L1088 -.L1095: + b .L1107 +.L1114: movs r0, #0 - strh r10, [r4, #300] @ movhi - strh r9, [r4, #308] @ movhi + strh r10, [r4, #304] @ movhi + strh r9, [r4, #312] @ movhi add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1099: +.L1118: .align 2 -.L1098: +.L1117: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7402,26 +7495,26 @@ FtlGcPageVarInit: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r1, #255 - ldr r5, .L1101 + ldr r5, .L1120 movs r3, #0 - ldr r4, .L1101+4 - ldrh r2, [r5, #2388] - ldr r0, [r4, #1156] - strh r3, [r4, #1160] @ movhi + ldr r4, .L1120+4 + ldrh r2, [r5, #2392] + ldr r0, [r4, #1160] + strh r3, [r4, #1164] @ movhi lsls r2, r2, #1 - strh r3, [r4, #1168] @ movhi + strh r3, [r4, #1172] @ movhi bl ftl_memset - ldrh r3, [r5, #2388] + ldrh r3, [r5, #2392] movs r2, #12 - ldr r0, [r4, #1164] + ldr r0, [r4, #1168] movs r1, #255 muls r2, r3, r2 bl ftl_memset pop {r3, r4, r5, lr} b FtlGcBufInit -.L1102: +.L1121: .align 2 -.L1101: +.L1120: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7451,14 +7544,14 @@ FlashReadIdbData: push {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L1105 + ldr r1, .L1124 bl ftl_memcpy movs r0, #0 pop {r3, pc} -.L1106: +.L1125: .align 2 -.L1105: - .word .LANCHOR2+3472 +.L1124: + .word .LANCHOR2+3476 .fnend .size FlashReadIdbData, .-FlashReadIdbData .align 1 @@ -7473,65 +7566,65 @@ FlashLoadPhyInfoInRam: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movs r4, #0 - ldr r5, .L1119 -.L1111: + ldr r5, .L1138 +.L1130: mov r0, r5 - ldr r1, .L1119+4 + ldr r1, .L1138+4 ldrb r2, [r5, #-1] @ zero_extendqisi2 bl FlashMemCmp8 mov r6, r0 - cbnz r0, .L1108 - ldr r5, .L1119+8 + cbnz r0, .L1127 + ldr r5, .L1138+8 lsls r4, r4, #5 add r2, r5, #508 adds r7, r2, r4 - beq .L1114 + beq .L1133 add r4, r4, r5 mov r3, r0 - addw r1, r5, #3164 + addw r1, r5, #3260 ldrb r2, [r4, #530] @ zero_extendqisi2 - b .L1113 -.L1108: + b .L1132 +.L1127: adds r4, r4, #1 adds r5, r5, #32 - cmp r4, #83 - bne .L1111 - b .L1114 -.L1118: + cmp r4, #86 + bne .L1130 + b .L1133 +.L1137: adds r3, r3, #1 cmp r3, #4 - beq .L1112 -.L1113: + beq .L1131 +.L1132: lsls r0, r3, #5 ldrb r0, [r0, r1] @ zero_extendqisi2 cmp r0, r2 - bne .L1118 -.L1112: - ldr r1, .L1119+12 + bne .L1137 +.L1131: + ldr r1, .L1138+12 movs r2, #32 - ldr r0, .L1119+16 + ldr r0, .L1138+16 add r1, r1, r3, lsl #5 bl ftl_memcpy mov r1, r7 movs r2, #32 - ldr r0, .L1119+20 + ldr r0, .L1138+20 bl ftl_memcpy ldrh r0, [r5, #482] bl FlashBlockAlignInit - b .L1109 -.L1114: + b .L1128 +.L1133: mov r6, #-1 -.L1109: +.L1128: mov r0, r6 pop {r3, r4, r5, r6, r7, pc} -.L1120: +.L1139: .align 2 -.L1119: +.L1138: .word .LANCHOR1+509 .word .LANCHOR0+2068 .word .LANCHOR1 - .word .LANCHOR1+3164 - .word .LANCHOR0+44 + .word .LANCHOR1+3260 + .word .LANCHOR0+48 .word .LANCHOR1+472 .fnend .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam @@ -7552,14 +7645,14 @@ NandcCopy1KB: ldr r6, [sp, #16] add r5, r0, #512 add r2, r2, r4, lsl #9 - bne .L1122 - cbz r3, .L1123 + bne .L1141 + cbz r3, .L1142 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L1123: - cbz r6, .L1121 +.L1142: + cbz r6, .L1140 ldrb r3, [r6, #2] @ zero_extendqisi2 lsrs r4, r4, #1 ldrb r2, [r6, #1] @ zero_extendqisi2 @@ -7573,14 +7666,14 @@ NandcCopy1KB: orr r3, r3, r2, lsl #24 str r3, [r5, r4, lsl #2] pop {r4, r5, r6, pc} -.L1122: - cbz r3, .L1126 +.L1141: + cbz r3, .L1145 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L1126: - cbz r6, .L1121 +.L1145: + cbz r6, .L1140 lsrs r4, r4, #1 add r4, r4, r4, lsl #1 lsls r4, r4, #2 @@ -7592,7 +7685,7 @@ NandcCopy1KB: lsrs r3, r3, #24 strb r2, [r6, #2] strb r3, [r6, #3] -.L1121: +.L1140: pop {r4, r5, r6, pc} .fnend .size NandcCopy1KB, .-NandcCopy1KB @@ -7608,14 +7701,14 @@ ftl_memcpy32: movs r3, #0 push {r4, lr} .save {r4, lr} -.L1138: +.L1157: cmp r3, r2 - beq .L1140 + beq .L1159 ldr r4, [r1, r3, lsl #2] str r4, [r0, r3, lsl #2] adds r3, r3, #1 - b .L1138 -.L1140: + b .L1157 +.L1159: pop {r4, pc} .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -7642,12 +7735,12 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1143 + ldr r3, .L1162 ldr r0, [r3] b jiffies_to_msecs -.L1144: +.L1163: .align 2 -.L1143: +.L1162: .word jiffies .fnend .size timer_get_time, .-timer_get_time @@ -7663,20 +7756,20 @@ FlashSramLoadStore: push {r4, r5, lr} .save {r4, r5, lr} mov r5, r0 - ldr r4, .L1148 - ldr r4, [r4, #1176] + ldr r4, .L1167 + ldr r4, [r4, #1180] add r4, r4, #4096 add r1, r1, r4 - cbz r2, .L1147 + cbz r2, .L1166 mov r0, r1 mov r1, r5 -.L1147: +.L1166: mov r2, r3 pop {r4, r5, lr} b ftl_memcpy -.L1149: +.L1168: .align 2 -.L1148: +.L1167: .word .LANCHOR4 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore @@ -7729,12 +7822,12 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1154 - ldr r0, [r3, #2424] + ldr r3, .L1173 + ldr r0, [r3, #2428] bx lr -.L1155: +.L1174: .align 2 -.L1154: +.L1173: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -7795,46 +7888,46 @@ rknand_print_hex: mov r7, r2 mov r8, r3 mov r4, r5 -.L1160: +.L1179: cmp r4, r8 - beq .L1168 - cbnz r5, .L1161 - ldr r0, .L1169 + beq .L1187 + cbnz r5, .L1180 + ldr r0, .L1188 mov r1, r9 mov r2, r6 mov r3, r4 bl printk -.L1161: +.L1180: cmp r7, #4 - ldr r0, .L1169+4 - bne .L1162 + ldr r0, .L1188+4 + bne .L1181 ldr r1, [r6, r4, lsl #2] - b .L1167 -.L1162: + b .L1186 +.L1181: cmp r7, #2 ite eq ldrsheq r1, [r6, r4, lsl #1] ldrbne r1, [r6, r4] @ zero_extendqisi2 -.L1167: +.L1186: adds r5, r5, #1 bl printk cmp r5, #15 - bls .L1165 - ldr r0, .L1169+8 + bls .L1184 + ldr r0, .L1188+8 movs r5, #0 - ldr r1, .L1169+12 + ldr r1, .L1188+12 bl printk -.L1165: +.L1184: adds r4, r4, #1 - b .L1160 -.L1168: - ldr r0, .L1169+8 - ldr r1, .L1169+12 + b .L1179 +.L1187: + ldr r0, .L1188+8 + ldr r1, .L1188+12 pop {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L1170: +.L1189: .align 2 -.L1169: +.L1188: .word .LC82 .word .LC83 .word .LC76 @@ -7853,7 +7946,7 @@ 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 r7, .L1280 + ldr r7, .L1299 mov r3, #172 mov r1, #173 mov r2, #174 @@ -7866,17 +7959,17 @@ HynixGetReadRetryDefault: strb r1, [r7, #1215] strb r2, [r7, #1216] strb r3, [r7, #1217] - bne .L1172 + bne .L1191 movs r3, #167 strb r3, [r7, #1214] - ldr r3, .L1280+4 + ldr r3, .L1299+4 movs r2, #247 movs r5, #7 - strb r2, [r3, #3309] - b .L1233 -.L1172: + strb r2, [r3, #3405] + b .L1252 +.L1191: cmp r0, #3 - bne .L1174 + bne .L1193 movs r3, #176 strb r3, [r7, #1214] movs r3, #177 @@ -7892,10 +7985,10 @@ HynixGetReadRetryDefault: movs r3, #182 strb r3, [r7, #1220] movs r3, #183 - b .L1274 -.L1174: + b .L1293 +.L1193: cmp r0, #4 - bne .L1175 + bne .L1194 movs r0, #204 strb r1, [r7, #1219] strb r0, [r7, #1214] @@ -7908,14 +8001,14 @@ HynixGetReadRetryDefault: strb r0, [r7, #1217] movs r0, #205 strb r0, [r7, #1218] -.L1274: +.L1293: movs r5, #8 strb r3, [r7, #1221] mov r6, r5 - b .L1173 -.L1175: + b .L1192 +.L1194: cmp r0, #5 - bne .L1176 + bne .L1195 movs r3, #56 movs r5, #8 strb r3, [r7, #1214] @@ -7925,10 +8018,10 @@ HynixGetReadRetryDefault: strb r3, [r7, #1216] movs r3, #59 strb r3, [r7, #1217] - b .L1233 -.L1176: + b .L1252 +.L1195: cmp r0, #6 - bne .L1177 + bne .L1196 movs r3, #14 movs r5, #12 strb r3, [r7, #1214] @@ -7938,10 +8031,10 @@ HynixGetReadRetryDefault: strb r3, [r7, #1216] movs r3, #17 strb r3, [r7, #1217] - b .L1233 -.L1177: + b .L1252 +.L1196: cmp r0, #7 - bne .L1178 + bne .L1197 movs r3, #176 movs r5, #12 strb r3, [r7, #1214] @@ -7964,11 +8057,11 @@ HynixGetReadRetryDefault: strb r3, [r7, #1222] movs r3, #213 strb r3, [r7, #1223] - b .L1173 -.L1178: + b .L1192 +.L1197: cmp r0, #8 mov r5, #7 - bne .L1233 + bne .L1252 movs r3, #6 strb r5, [r7, #1215] strb r3, [r7, #1214] @@ -7979,21 +8072,21 @@ HynixGetReadRetryDefault: movs r6, #5 movs r3, #10 strb r3, [r7, #1218] - b .L1173 -.L1233: + b .L1192 +.L1252: movs r6, #4 -.L1173: +.L1192: subs r3, r4, #1 cmp r3, #1 - bhi .L1271 - ldr r1, .L1280+8 + bhi .L1290 + ldr r1, .L1299+8 mov r10, #0 -.L1179: - ldrb r3, [r7, #2229] @ zero_extendqisi2 +.L1198: + ldrb r3, [r7, #2230] @ zero_extendqisi2 uxtb r8, r10 - ldr r2, .L1280 + ldr r2, .L1299 cmp r3, r8 - bls .L1186 + bls .L1205 add r8, r8, r2 addw fp, r2, #1213 ldrb r3, [r8, #2232] @ zero_extendqisi2 @@ -8007,7 +8100,7 @@ HynixGetReadRetryDefault: mov r3, r4 add r8, r0, r8, lsl #8 addw ip, r8, #2056 -.L1181: +.L1200: str r2, [ip] ldrb r0, [fp, #1]! @ zero_extendqisi2 str r1, [sp, #16] @@ -8026,23 +8119,23 @@ HynixGetReadRetryDefault: ldr r1, [sp, #16] uxtb r0, r0 cmp r0, r6 - bcc .L1181 + bcc .L1200 movs r2, #0 -.L1182: +.L1201: movs r3, #1 add lr, r1, r2 -.L1183: +.L1202: ldrb ip, [lr, r3, lsl #2] @ zero_extendqisi2 ldrb r0, [r9] @ zero_extendqisi2 add r0, r0, ip strb r0, [r9, r3, lsl #3] adds r3, r3, #1 cmp r3, #7 - bne .L1183 + bne .L1202 adds r2, r2, #1 add r9, r9, #1 cmp r2, #4 - bne .L1182 + bne .L1201 movs r3, #0 add r10, r10, #1 strb r3, [r4, #16] @@ -8052,11 +8145,11 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L1179 -.L1271: + b .L1198 +.L1290: subs r3, r4, #3 cmp r3, #5 - bhi .L1186 + bhi .L1205 smulbb r2, r6, r5 lsls r3, r2, #4 asrs r2, r2, #1 @@ -8064,28 +8157,28 @@ HynixGetReadRetryDefault: lsls r3, r2, #1 str r3, [sp, #8] movs r3, #0 -.L1278: +.L1297: str r3, [sp, #20] ldrb r3, [sp, #20] @ zero_extendqisi2 str r3, [sp, #16] - ldr r3, .L1280 + ldr r3, .L1299 ldr r2, [sp, #16] - ldrb r3, [r3, #2229] @ zero_extendqisi2 + ldrb r3, [r3, #2230] @ zero_extendqisi2 cmp r3, r2 - bhi .L1231 -.L1186: - ldr r3, .L1280 + bhi .L1250 +.L1205: + ldr r3, .L1299 strb r6, [r3, #1211] strb r5, [r3, #1212] add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1231: +.L1250: ldr r2, [sp, #16] - ldr r3, .L1280 + ldr r3, .L1299 add r3, r3, r2 ldrb fp, [r3, #2232] @ zero_extendqisi2 - ldr r3, .L1280 + ldr r3, .L1299 add r3, r3, fp, lsl #3 mov r0, fp ldr r10, [r3, #12] @@ -8097,56 +8190,56 @@ HynixGetReadRetryDefault: str r3, [r8, #2056] bl NandcWaitFlashReady cmp r4, #7 - bne .L1188 - ldr r2, .L1280+12 + bne .L1207 + ldr r2, .L1299+12 movs r3, #160 mla ip, r3, fp, r2 add r3, ip, #28 - b .L1275 -.L1188: + b .L1294 +.L1207: cmp r4, #8 - beq .L1190 - ldr r2, .L1280+12 + beq .L1209 + ldr r2, .L1299+12 add ip, r2, fp, lsl #6 add r3, ip, #20 -.L1275: +.L1294: add r7, r7, r10 cmp r4, #4 str r3, [sp, #24] mov r3, #54 str r3, [r7, #2056] - bne .L1191 + bne .L1210 movs r3, #255 str r3, [r7, #2052] movs r3, #64 str r3, [r7, #2048] movs r3, #204 - b .L1276 -.L1191: + b .L1295 +.L1210: subs r3, r4, #5 cmp r3, #1 - bhi .L1193 - ldr r3, .L1280 + bhi .L1212 + ldr r3, .L1299 ldrb r2, [r3, #1214] @ zero_extendqisi2 ldr r3, [sp, #4] add r3, r10, r3, lsl #8 str r2, [r3, #2052] movs r2, #82 str r2, [r3, #2048] - b .L1192 -.L1193: + b .L1211 +.L1212: cmp r4, #7 - bne .L1192 + bne .L1211 movs r3, #174 str r3, [r7, #2052] movs r3, #0 str r3, [r7, #2048] movs r3, #176 -.L1276: +.L1295: str r3, [r7, #2052] movs r3, #77 str r3, [r7, #2048] -.L1192: +.L1211: ldr r3, [sp, #4] cmp r4, #6 mov r2, #22 @@ -8169,7 +8262,7 @@ HynixGetReadRetryDefault: str r2, [r3, #2052] movs r2, #0 str r2, [r3, #2052] -.L1232: +.L1251: ldr r3, [sp, #4] movs r2, #48 mov r0, fp @@ -8179,148 +8272,148 @@ HynixGetReadRetryDefault: subs r3, r4, #5 cmp r3, #1 str r3, [sp, #28] - bls .L1236 + bls .L1255 cmp r4, #8 - beq .L1236 + beq .L1255 cmp r4, #7 ite ne movne r2, #2 moveq r2, #32 - b .L1196 -.L1281: + b .L1215 +.L1300: .align 2 -.L1280: +.L1299: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR1+3292 + .word .LANCHOR1+3388 .word .LANCHOR0+1210 -.L1236: +.L1255: movs r2, #16 -.L1196: - ldr r3, .L1282 +.L1215: + ldr r3, .L1301 ldr r1, [sp, #4] - ldr r3, [r3, #1180] + ldr r3, [r3, #1184] add r0, r10, r1, lsl #8 mov r7, r3 -.L1197: +.L1216: ldr r1, [r0, #2048] strb r1, [r7], #1 subs r1, r7, r3 uxtb r1, r1 cmp r1, r2 - bcc .L1197 + bcc .L1216 cmp r4, #8 - bne .L1198 + bne .L1217 movs r2, #0 -.L1200: +.L1219: ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2 uxtb r1, r2 cmp r7, #50 - beq .L1199 + beq .L1218 add r7, r3, r2, lsl #2 ldrb r7, [r7, #1] @ zero_extendqisi2 cmp r7, #5 - beq .L1199 + beq .L1218 adds r2, r2, #1 cmp r2, #8 - bne .L1200 - b .L1201 -.L1199: + bne .L1219 + b .L1220 +.L1218: cmp r1, #7 - bne .L1202 -.L1201: - ldr r0, .L1282+4 + bne .L1221 +.L1220: + ldr r0, .L1301+4 movs r1, #0 bl printk -.L1203: - b .L1203 -.L1198: +.L1222: + b .L1222 +.L1217: cmp r4, #7 - bne .L1204 + bne .L1223 movs r2, #0 -.L1206: +.L1225: ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2 uxtb r1, r2 cmp r7, #12 - beq .L1205 + beq .L1224 add r7, r3, r2, lsl #2 ldrb r7, [r7, #1] @ zero_extendqisi2 cmp r7, #10 - beq .L1205 + beq .L1224 adds r2, r2, #1 cmp r2, #8 - bne .L1206 - b .L1207 -.L1205: + bne .L1225 + b .L1226 +.L1224: cmp r1, #7 - bne .L1202 -.L1207: - ldr r0, .L1282+4 + bne .L1221 +.L1226: + ldr r0, .L1301+4 movs r1, #0 bl printk -.L1208: - b .L1208 -.L1204: +.L1227: + b .L1227 +.L1223: cmp r4, #6 - bne .L1202 + bne .L1221 subs r2, r3, #1 adds r3, r3, #7 -.L1209: +.L1228: ldrb r1, [r2, #1]! @ zero_extendqisi2 cmp r1, #12 - beq .L1202 + beq .L1221 ldrb r1, [r2, #8] @ zero_extendqisi2 cmp r1, #4 - beq .L1202 + beq .L1221 cmp r2, r3 - bne .L1209 - ldr r0, .L1282+4 + bne .L1228 + ldr r0, .L1301+4 movs r1, #0 bl printk -.L1211: - b .L1211 -.L1202: - ldr r1, .L1282 +.L1230: + b .L1230 +.L1221: + ldr r1, .L1301 ldr r7, [sp, #36] - ldr r2, [r1, #1180] + ldr r2, [r1, #1184] adds r7, r2, r7 mov r3, r2 -.L1212: +.L1231: cmp r3, r7 - beq .L1279 + beq .L1298 ldr lr, [r0, #2048] strb lr, [r3], #1 - b .L1212 -.L1279: - ldr r3, [r1, #1180] + b .L1231 +.L1298: + ldr r3, [r1, #1184] movs r0, #8 ldr r1, [sp, #8] adds r1, r3, r1 str r1, [sp, #32] -.L1215: +.L1234: ldr r7, [sp, #8] add lr, r1, r7 -.L1214: +.L1233: ldrh r7, [r1] mvns r7, r7 strh r7, [r1], #2 @ movhi cmp r1, lr - bne .L1214 + bne .L1233 ldr r7, [sp, #8] subs r0, r0, #1 add r1, r1, r7 - bne .L1215 + bne .L1234 str r3, [sp, #12] -.L1216: +.L1235: movs r7, #0 mov r0, r7 -.L1219: +.L1238: movs r3, #1 mov lr, #0 mov r8, #16 lsl r1, r3, r0 mov ip, lr -.L1217: +.L1236: ldr r3, [sp, #12] ldrh r9, [r3, lr] ldr r3, [sp, #8] @@ -8330,80 +8423,80 @@ HynixGetReadRetryDefault: addeq ip, ip, #1 subs r8, r8, #1 add lr, lr, r3 - bne .L1217 + bne .L1236 cmp ip, #8 add r0, r0, #1 itt hi orrhi r7, r7, r1 uxthhi r7, r7 cmp r0, #16 - bne .L1219 + bne .L1238 ldr r3, [sp, #12] strh r7, [r3], #2 @ movhi str r3, [sp, #12] ldr r1, [sp, #12] ldr r3, [sp, #32] cmp r1, r3 - bne .L1216 - ldr r3, .L1282 - ldr r1, [r3, #1180] + bne .L1235 + ldr r3, .L1301 + ldr r1, [r3, #1184] movs r3, #0 subs r0, r1, #4 add r7, r1, #28 -.L1221: +.L1240: ldr lr, [r0, #4]! cmp lr, #0 it eq addeq r3, r3, #1 cmp r0, r7 - bne .L1221 + bne .L1240 cmp r3, #7 - ble .L1222 - ldr r0, .L1282+8 + ble .L1241 + ldr r0, .L1301+8 movs r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L1282+4 + ldr r0, .L1301+4 movs r1, #0 bl printk -.L1223: - b .L1223 -.L1222: +.L1242: + b .L1242 +.L1241: cmp r4, #6 - beq .L1238 + beq .L1257 cmp r4, #7 - beq .L1239 + beq .L1258 cmp r4, #8 ite ne movne r0, #8 moveq r0, #5 - b .L1224 -.L1238: + b .L1243 +.L1257: movs r0, #4 - b .L1224 -.L1239: + b .L1243 +.L1258: movs r0, #10 -.L1224: +.L1243: add r9, r6, #-1 ldr r1, [sp, #24] movs r7, #0 uxtb r9, r9 add r9, r9, #1 -.L1225: +.L1244: mov ip, r1 mov r3, r2 -.L1226: +.L1245: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [ip], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, r6 - bcc .L1226 + bcc .L1245 adds r7, r7, #1 add r2, r2, r9 cmp r7, r5 add r1, r1, r0 - blt .L1225 + blt .L1244 ldr r3, [sp, #4] mov r0, fp add r7, r10, r3, lsl #8 @@ -8412,10 +8505,10 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr r3, [sp, #28] cmp r3, #1 - bhi .L1228 + bhi .L1247 movs r3, #54 str r3, [r7, #2056] - ldr r3, .L1282+12 + ldr r3, .L1301+12 mov r1, #-1 ldr r0, [sp, #16] ldrb r3, [r3, #1214] @ zero_extendqisi2 @@ -8425,20 +8518,20 @@ HynixGetReadRetryDefault: movs r3, #22 str r3, [r7, #2056] bl FlashReadCmd - b .L1229 -.L1228: + b .L1248 +.L1247: cmp r4, #8 ite eq moveq r3, #190 movne r3, #56 str r3, [r7, #2056] -.L1229: +.L1248: mov r0, fp bl NandcWaitFlashReady ldr r3, [sp, #20] adds r3, r3, #1 - b .L1278 -.L1190: + b .L1297 +.L1209: movs r3, #120 movs r2, #23 str r3, [r8, #2056] @@ -8460,12 +8553,12 @@ HynixGetReadRetryDefault: str r1, [r8, #2052] str r2, [r8, #2052] str r3, [r8, #2052] - ldr r3, .L1282+16 + ldr r3, .L1301+16 str r3, [sp, #24] - b .L1232 -.L1283: + b .L1251 +.L1302: .align 2 -.L1282: +.L1301: .word .LANCHOR4 .word .LC85 .word .LC86 @@ -8485,74 +8578,74 @@ FlashGetReadRetryDefault: @ link register save eliminated. mov r3, r0 cmp r0, #0 - beq .L1284 + beq .L1303 subs r2, r0, #1 cmp r2, #7 - bhi .L1286 + bhi .L1305 b HynixGetReadRetryDefault -.L1286: +.L1305: cmp r0, #49 - bne .L1287 - ldr r0, .L1307 + bne .L1306 + ldr r0, .L1326 movs r2, #64 - ldr r1, .L1307+4 + ldr r1, .L1326+4 addw r0, r0, #1214 strb r3, [r0, #-4] movs r3, #4 strb r3, [r0, #-3] movs r3, #15 strb r3, [r0, #-2] - b .L1305 -.L1287: + b .L1324 +.L1306: cmp r0, #33 - beq .L1288 + beq .L1307 sub r2, r0, #65 cmp r2, #1 - bhi .L1289 -.L1288: - ldr r0, .L1307 + bhi .L1308 +.L1307: + ldr r0, .L1326 strb r3, [r0, #1210] movs r3, #4 - b .L1306 -.L1289: + b .L1325 +.L1308: cmp r0, #34 - beq .L1290 + beq .L1309 cmp r0, #67 - bne .L1291 -.L1290: - ldr r0, .L1307 + bne .L1310 +.L1309: + ldr r0, .L1326 strb r3, [r0, #1210] movs r3, #5 -.L1306: +.L1325: strb r3, [r0, #1211] movs r2, #45 movs r3, #7 addw r0, r0, #1214 strb r3, [r0, #-2] - ldr r1, .L1307+8 - b .L1305 -.L1291: + ldr r1, .L1326+8 + b .L1324 +.L1310: cmp r0, #35 - beq .L1292 + beq .L1311 cmp r0, #68 - bne .L1284 -.L1292: - ldr r0, .L1307 + bne .L1303 +.L1311: + ldr r0, .L1326 movs r2, #95 - ldr r1, .L1307+12 + ldr r1, .L1326+12 addw r0, r0, #1214 strb r3, [r0, #-4] movs r3, #5 strb r3, [r0, #-3] movs r3, #17 strb r3, [r0, #-2] -.L1305: +.L1324: b ftl_memcpy -.L1284: +.L1303: bx lr -.L1308: +.L1327: .align 2 -.L1307: +.L1326: .word .LANCHOR0 .word .LANCHOR1+408 .word .LANCHOR1+256 @@ -8571,149 +8664,149 @@ NandcXferComp: push {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L1348 + ldr r5, .L1367 add r0, r5, r0, lsl #3 - ldr r3, [r5, #2252] + ldr r3, [r5, #2260] ldr r4, [r0, #12] cmp r3, #3 - bls .L1340 + bls .L1359 ldr r3, [r4, #16] lsls r6, r3, #29 - bpl .L1340 + bpl .L1359 ldr r6, [r4, #16] ldr r3, [r4, #8] ubfx r6, r6, #1, #1 str r3, [sp] cmp r6, #0 - beq .L1322 + beq .L1341 movs r6, #0 -.L1312: +.L1331: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L1320 - ldr r3, [r5, #2252] + bge .L1339 + ldr r3, [r5, #2260] cmp r3, #5 - bhi .L1313 -.L1316: + bhi .L1332 +.L1335: adds r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L1315 + bne .L1334 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L1348+4 + ldr r0, .L1367+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L1348+8 + ldr r0, .L1367+8 mov r1, r4 movs r2, #4 mov r3, #512 bl rknand_print_hex - b .L1315 -.L1313: + b .L1334 +.L1332: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] lsls r0, r3, #18 - bpl .L1316 + bpl .L1335 ldr r3, [sp, #4] lsls r1, r3, #14 - bpl .L1316 -.L1320: - ldr r3, [r5, #2288] - ldr r4, .L1348 + bpl .L1335 +.L1339: + ldr r3, [r5, #2296] + ldr r4, .L1367 cmp r3, #0 - beq .L1321 + beq .L1340 ldr r1, [sp] movs r2, #0 - ldr r0, [r4, #2280] + ldr r0, [r4, #2288] ubfx r1, r1, #22, #5 lsls r1, r1, #10 bl rknand_dma_unmap_single - ldr r0, [r4, #2284] + ldr r0, [r4, #2292] movs r2, #0 ldr r1, [sp] ubfx r1, r1, #22, #5 lsls r1, r1, #7 bl rknand_dma_unmap_single - b .L1321 -.L1315: - movs r0, #5 - movs r1, #10 + b .L1340 +.L1334: + movs r0, #1 + movs r1, #5 bl usleep_range - b .L1312 -.L1324: + b .L1331 +.L1343: ldr r3, [r4, #8] adds r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 - cbnz r3, .L1323 + cbnz r3, .L1342 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L1348+12 + ldr r0, .L1367+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L1348+8 + ldr r0, .L1367+8 mov r1, r4 movs r2, #4 mov r3, #512 bl rknand_print_hex -.L1323: - movs r0, #5 - movs r1, #10 +.L1342: + movs r0, #1 + movs r1, #5 bl usleep_range -.L1322: +.L1341: ldr r3, [sp] lsls r2, r3, #11 - bpl .L1324 - ldr r3, [r5, #2296] - cbz r3, .L1325 + bpl .L1343 + ldr r3, [r5, #2304] + cbz r3, .L1344 mov r0, r4 bl NandcSendDumpDataStart -.L1325: - ldr r3, [r5, #2288] - ldr r6, .L1348 - cbz r3, .L1326 +.L1344: + ldr r3, [r5, #2296] + ldr r6, .L1367 + cbz r3, .L1345 ldr r1, [sp] movs r2, #1 - ldr r0, [r6, #2280] + ldr r0, [r6, #2288] ubfx r1, r1, #22, #5 lsls r1, r1, #10 bl rknand_dma_unmap_single - ldr r0, [r6, #2284] + ldr r0, [r6, #2292] movs r2, #1 ldr r1, [sp] ubfx r1, r1, #22, #5 lsls r1, r1, #7 bl rknand_dma_unmap_single -.L1326: - ldr r3, [r5, #2296] - cbz r3, .L1321 +.L1345: + ldr r3, [r5, #2304] + cbz r3, .L1340 mov r0, r4 bl NandcSendDumpDataDone -.L1321: - movs r3, #0 - str r3, [r5, #2288] - b .L1309 .L1340: + movs r3, #0 + str r3, [r5, #2296] + b .L1328 +.L1359: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] lsls r3, r3, #11 - bpl .L1340 -.L1309: + bpl .L1359 +.L1328: add sp, sp, #8 @ sp needed pop {r4, r5, r6, pc} -.L1349: +.L1368: .align 2 -.L1348: +.L1367: .word .LANCHOR0 .word .LC87 .word .LC88 @@ -8732,7 +8825,7 @@ NandcXferData: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r10, r3 - ldr r6, .L1394 + ldr r6, .L1413 tst r10, #63 .pad #92 sub sp, sp, #92 @@ -8741,16 +8834,16 @@ NandcXferData: mov r5, r1 mov r7, r2 ldr r8, [r3, #12] - bne .L1351 + bne .L1370 ldr r3, [sp, #128] - cbnz r3, .L1352 + cbnz r3, .L1371 add r0, sp, #24 movs r1, #255 movs r2, #64 bl ftl_memset add r3, sp, #24 str r3, [sp, #128] -.L1352: +.L1371: ldr r3, [sp, #128] mov r0, r9 mov r1, r5 @@ -8763,8 +8856,8 @@ NandcXferData: mov r1, r5 bl NandcXferComp cmp r5, #0 - bne .L1378 - ldr r3, [r6, #2300] + bne .L1397 + ldr r3, [r6, #2308] lsrs r4, r7, #1 mov r2, r5 mov r1, r5 @@ -8773,12 +8866,12 @@ NandcXferData: ite cc movcc lr, #64 movcs lr, #128 -.L1355: +.L1374: cmp r1, r4 add r3, r3, #4 add ip, r2, lr - bcs .L1392 - ldr r0, [r6, #2268] + bcs .L1411 + ldr r0, [r6, #2276] lsrs r2, r2, #2 adds r1, r1, #1 ldr r2, [r0, r2, lsl #2] @@ -8790,30 +8883,30 @@ NandcXferData: strb r0, [r3, #-2] strb r2, [r3, #-1] mov r2, ip - b .L1355 -.L1392: + b .L1374 +.L1411: movs r2, #0 - ldr r0, [r6, #2300] - ldr r1, [r6, #2252] + ldr r0, [r6, #2308] + ldr r1, [r6, #2260] lsrs r7, r7, #2 mov fp, r2 -.L1357: +.L1376: cmp r2, r7 - bcs .L1353 + bcs .L1372 cmp r0, #0 - beq .L1353 + beq .L1372 add r3, r2, #8 ldr r3, [r8, r3, lsl #2] str r3, [sp, #20] ldr r3, [sp, #20] lsls r4, r3, #29 - bmi .L1381 + bmi .L1400 ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L1381 + bne .L1400 cmp r1, #5 - bls .L1359 + bls .L1378 ldr r4, [sp, #20] ldr r3, [sp, #20] ubfx r4, r4, #3, #5 @@ -8834,10 +8927,10 @@ NandcXferData: ite hi ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L1391 -.L1359: + b .L1410 +.L1378: cmp r1, #3 - bls .L1361 + bls .L1380 ldr r4, [sp, #20] ldr r3, [sp, #20] ubfx r4, r4, #3, #5 @@ -8858,40 +8951,40 @@ NandcXferData: ite hi ubfxhi r4, r4, #28, #1 ubfxls r4, r4, #30, #1 -.L1391: +.L1410: orr r4, r3, r4, lsl #5 -.L1361: +.L1380: cmp fp, r4 it cc movcc fp, r4 - b .L1358 -.L1381: + b .L1377 +.L1400: mov fp, #-1 -.L1358: +.L1377: adds r2, r2, #1 - b .L1357 -.L1378: + b .L1376 +.L1397: mov fp, #0 -.L1353: +.L1372: movs r3, #0 str r3, [r8, #16] - b .L1364 -.L1351: + b .L1383 +.L1370: cmp r1, #1 mov r4, #0 - bne .L1390 + bne .L1409 mov fp, r4 -.L1365: +.L1384: cmp r4, r7 - bcs .L1393 + bcs .L1412 and ip, r4, #3 cmp r10, #0 - beq .L1384 + beq .L1403 add r3, r10, r4, lsl #9 - b .L1367 -.L1384: + b .L1386 +.L1403: mov r3, r10 -.L1367: +.L1386: ldr r2, [sp, #128] mov r0, r8 ldr r1, [sp, #128] @@ -8917,11 +9010,11 @@ NandcXferData: mov r0, r9 movs r1, #1 bl NandcXferComp - b .L1365 -.L1393: + b .L1384 +.L1412: mov fp, #0 - b .L1364 -.L1390: + b .L1383 +.L1409: str r4, [sp] mov r1, r4 str r4, [sp, #4] @@ -8930,9 +9023,9 @@ NandcXferData: mov fp, r4 bl NandcXferStart str r10, [sp, #8] -.L1370: +.L1389: cmp r4, r7 - bcs .L1364 + bcs .L1383 mov r0, r9 mov r1, r5 bl NandcXferComp @@ -8940,7 +9033,7 @@ NandcXferData: add ip, r4, #2 cmp ip, r7 str r3, [sp, #20] - bcs .L1371 + bcs .L1390 movs r3, #0 mov r0, r9 str r3, [sp] @@ -8951,10 +9044,10 @@ NandcXferData: str ip, [sp, #12] bl NandcXferStart ldr ip, [sp, #12] -.L1371: +.L1390: ldr r3, [sp, #20] lsls r3, r3, #29 - bmi .L1386 + bmi .L1405 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -8963,10 +9056,10 @@ NandcXferData: cmp fp, r3 it cc movcc fp, r3 - b .L1372 -.L1386: + b .L1391 +.L1405: mov fp, #-1 -.L1372: +.L1391: ldr r1, [sp, #128] cmp r10, #0 ldr r3, [sp, #8] @@ -8990,12 +9083,12 @@ NandcXferData: mov r4, ip add r3, r3, #1024 str r3, [sp, #8] - b .L1370 -.L1364: - ldr r3, [r6, #2252] + b .L1389 +.L1383: + ldr r3, [r6, #2260] cmp r3, #5 - bls .L1376 - cbnz r5, .L1376 + bls .L1395 + cbnz r5, .L1395 ldr r3, [r8] and r2, r3, #139264 cmp r2, #139264 @@ -9003,14 +9096,14 @@ NandcXferData: moveq fp, #-1 orreq r3, r3, #131072 streq r3, [r8] -.L1376: +.L1395: mov r0, fp add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1395: +.L1414: .align 2 -.L1394: +.L1413: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -9027,20 +9120,20 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1398 + ldr r3, .L1417 mov r6, r1 mov r7, r2 mov r4, r0 ldrb r5, [r3, #481] @ zero_extendqisi2 - cbnz r0, .L1397 - ldr r2, .L1398+4 + cbnz r0, .L1416 + ldr r2, .L1417+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r2, [r2, #4] muls r2, r3, r2 cmp r1, r2 it cc movcc r5, #4 -.L1397: +.L1416: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -9063,9 +9156,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1399: +.L1418: .align 2 -.L1398: +.L1417: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -9082,23 +9175,23 @@ 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, .L1426 + ldr r4, .L1445 .pad #20 sub sp, sp, #20 mov r10, r0 mov fp, r2 str r1, [sp] - ldr r3, [r4, #76] + ldr r3, [r4, #80] ldr r3, [r3, #304] str r3, [sp, #8] - ldr r3, [r4, #2252] + ldr r3, [r4, #2260] cmp r3, #8 ldr r3, [sp, #56] ite cc movcc r9, #6 movcs r9, #12 cmp r3, #0 - beq .L1414 + beq .L1433 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 @@ -9111,48 +9204,48 @@ FlashDdrTunningRead: ldr r1, [sp] bl FlashReadRawPage mov r6, r0 - ldrb r0, [r4, #2228] @ zero_extendqisi2 + ldrb r0, [r4, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #2228] @ zero_extendqisi2 + ldrb r0, [r4, #2229] @ zero_extendqisi2 bl NandcSetMode adds r3, r6, #1 - bne .L1403 -.L1412: + bne .L1422 +.L1431: mov r6, #-1 - b .L1404 -.L1403: + b .L1423 +.L1422: mov r2, r6 - ldr r0, .L1426+4 + ldr r0, .L1445+4 ldr r1, [sp] bl printk cmp r6, #9 itt ls addls r4, r4, r10, lsl #3 ldrls r3, [r4, #12] - ldr r4, .L1426+8 + ldr r4, .L1445+8 itttt ls ldrls r2, [r3, #3840] ldrls r2, [r3] orrls r2, r2, #131072 strls r2, [r3] - ldr r3, [r4, #1184] + ldr r3, [r4, #1188] adds r3, r3, #1 - str r3, [r4, #1184] + str r3, [r4, #1188] cmp r3, #2048 - bcc .L1404 + bcc .L1423 movs r7, #0 - str r7, [r4, #1184] + str r7, [r4, #1188] mov fp, r7 - b .L1402 -.L1414: + b .L1421 +.L1433: mov r6, #1024 -.L1402: +.L1421: movs r4, #0 mov r8, #-1 str r4, [sp, #4] mov ip, r4 mov r5, r4 -.L1410: +.L1429: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara @@ -9164,74 +9257,74 @@ FlashDdrTunningRead: adds r3, r6, #1 cmp r0, r3 ldr ip, [sp, #12] - bhi .L1406 + bhi .L1425 cmp r0, #2 - bhi .L1416 + bhi .L1435 adds r5, r5, #1 cmp r5, #9 - bls .L1416 + bls .L1435 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L1408 -.L1406: + b .L1427 +.L1425: ldr r3, [sp, #4] cmp r3, r5 - bcs .L1417 + bcs .L1436 cmp r5, #7 rsb ip, r5, r4 - bhi .L1418 + bhi .L1437 str r5, [sp, #4] - b .L1417 -.L1416: + b .L1436 +.L1435: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L1407 -.L1417: + b .L1426 +.L1436: movs r5, #0 -.L1407: +.L1426: add r9, r9, #2 cmp r9, #69 - bls .L1410 -.L1408: + bls .L1429 +.L1427: ldr r3, [sp, #4] cmp r3, r5 it cs movcs r4, ip - b .L1409 -.L1418: + b .L1428 +.L1437: mov r4, ip -.L1409: - cbz r4, .L1411 - ldr r0, .L1426+12 +.L1428: + cbz r4, .L1430 + ldr r0, .L1445+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1411: +.L1430: cmp r8, #0 - beq .L1404 - ldr r0, .L1426+16 + beq .L1423 + ldr r0, .L1445+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L1412 + beq .L1431 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1404: +.L1423: mov r0, r6 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1427: +.L1446: .align 2 -.L1426: +.L1445: .word .LANCHOR0 .word .LC90 .word .LANCHOR4 @@ -9258,18 +9351,18 @@ FlashReadPage: bl FlashReadRawPage adds r2, r0, #1 mov r4, r0 - bne .L1429 - ldr r9, .L1448+4 + bne .L1448 + ldr r9, .L1467+4 ldrb fp, [r9, #8] @ zero_extendqisi2 mov r10, r9 cmp fp, #0 - bne .L1430 -.L1432: - ldrb r3, [r10, #2244] @ zero_extendqisi2 - ldr r9, .L1448+4 - cbz r3, .L1429 - b .L1447 -.L1430: + bne .L1449 +.L1451: + ldrb r3, [r10, #2252] @ zero_extendqisi2 + ldr r9, .L1467+4 + cbz r3, .L1448 + b .L1466 +.L1449: movs r3, #0 mov r0, r5 strb r3, [r9, #8] @@ -9279,11 +9372,11 @@ FlashReadPage: bl FlashReadRawPage strb fp, [r9, #8] adds r3, r0, #1 - beq .L1432 + beq .L1451 mov r4, r0 - b .L1429 -.L1447: - ldr r3, [r9, #76] + b .L1448 +.L1466: + ldr r3, [r9, #80] mov r1, r6 mov r0, r5 mov r2, r8 @@ -9294,20 +9387,20 @@ FlashReadPage: bl FlashDdrTunningRead adds r1, r0, #1 mov r4, r0 - beq .L1433 - ldrb r3, [r9, #2304] @ zero_extendqisi2 + beq .L1452 + ldrb r3, [r9, #2312] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1429 -.L1433: + bls .L1448 +.L1452: ubfx r0, r10, #8, #8 bl NandcSetDdrPara -.L1429: - ldr r9, .L1448+8 - ldr ip, [r9, #1188] +.L1448: + ldr r9, .L1467+8 + ldr ip, [r9, #1192] cmp ip, #0 - beq .L1434 + beq .L1453 adds r2, r4, #1 - bne .L1434 + bne .L1453 mov r1, r6 mov r2, r8 mov r3, r7 @@ -9316,17 +9409,17 @@ FlashReadPage: mov r3, r6 mov r2, r5 mov r4, r0 - ldr r0, .L1448 + ldr r0, .L1467 mov r1, r4 bl printk adds r3, r4, #1 - bne .L1434 - ldr r3, .L1448+4 - ldrb r3, [r3, #140] @ zero_extendqisi2 - cbz r3, .L1434 + bne .L1453 + ldr r3, .L1467+4 + ldrb r3, [r3, #144] @ zero_extendqisi2 + cbz r3, .L1453 mov r0, r5 bl flash_enter_slc_mode - ldr r4, [r9, #1188] + ldr r4, [r9, #1192] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9335,14 +9428,14 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1434: +.L1453: mov r0, r4 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1449: +.L1468: .align 2 -.L1448: +.L1467: .word .LC93 .word .LANCHOR0 .word .LANCHOR4 @@ -9361,12 +9454,12 @@ FlashDdrParaScan: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r0 - ldr r4, .L1460 + ldr r4, .L1479 mov r6, r1 movs r5, #0 - ldrb r0, [r4, #2228] @ zero_extendqisi2 + ldrb r0, [r4, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #2228] @ zero_extendqisi2 + ldrb r0, [r4, #2229] @ zero_extendqisi2 bl NandcSetMode mov r1, r6 mov r2, r5 @@ -9381,32 +9474,32 @@ FlashDdrParaScan: mov r0, r7 bl FlashReadRawPage adds r0, r0, #1 - beq .L1451 + beq .L1470 cmp r8, #-1 - bne .L1452 -.L1451: - ldrb r3, [r4, #2228] @ zero_extendqisi2 + bne .L1471 +.L1470: + ldrb r3, [r4, #2229] @ zero_extendqisi2 lsls r3, r3, #31 - bpl .L1452 + bpl .L1471 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode - ldr r3, .L1460 + ldr r3, .L1479 movs r2, #0 - strb r2, [r3, #2244] - b .L1453 -.L1452: + strb r2, [r3, #2252] + b .L1472 +.L1471: movs r3, #1 - strb r3, [r4, #2244] -.L1453: + strb r3, [r4, #2252] +.L1472: movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1461: +.L1480: .align 2 -.L1460: +.L1479: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9423,125 +9516,125 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r3, .L1477 + ldr r3, .L1496 movs r4, #0 - ldr r7, .L1477+4 + ldr r7, .L1496+4 mov r9, #4 - ldr r5, .L1477+8 + ldr r5, .L1496+8 mov r8, #-1 ldr r0, [r3] @ unaligned ldr r3, [r7, #4] - str r4, [r5, #1196] + str r4, [r5, #1200] mov r6, r5 str r0, [sp, #12] @ unaligned mov r0, r4 str r3, [sp, #4] - ldr r3, [r5, #1180] - str r3, [r5, #1192] + ldr r3, [r5, #1184] + str r3, [r5, #1196] bl flash_enter_slc_mode -.L1463: +.L1482: add fp, r4, #1 mov r10, #0 -.L1465: +.L1484: add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 mov r1, r4 - ldr r2, [r5, #1180] + ldr r2, [r5, #1184] mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1464 + bne .L1483 movs r0, #0 mov r1, fp - ldr r2, [r6, #1180] + ldr r2, [r6, #1184] mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1464 + bne .L1483 add r10, r10, #1 cmp r10, #4 - beq .L1466 - b .L1465 -.L1467: + beq .L1485 + b .L1484 +.L1486: add r0, fp, #12 movw r1, #2036 bl js_hash ldr r3, [fp, #8] cmp r3, r0 - bne .L1473 - ldr r8, .L1477+24 + bne .L1492 + ldr r8, .L1496+24 add r1, fp, #160 movs r2, #32 add r0, r8, #472 bl ftl_memcpy - ldr r1, [r6, #1192] + ldr r1, [r6, #1196] movs r2, #32 - ldr r0, .L1477+12 + ldr r0, .L1496+12 adds r1, r1, #192 bl ftl_memcpy - ldr r1, [r6, #1192] + ldr r1, [r6, #1196] mov r2, #852 - ldr r0, .L1477+16 + ldr r0, .L1496+16 adds r1, r1, #224 bl ftl_memcpy ldrh r0, [r8, #482] bl FlashBlockAlignInit - ldr r8, [r6, #1192] - str r4, [r6, #1196] + ldr r8, [r6, #1196] + str r4, [r6, #1200] mov r0, r4 ldr r1, [r7, #4] ldr r3, [r8, #1076] - strb r3, [r7, #2244] + strb r3, [r7, #2252] bl __aeabi_uidiv adds r0, r0, #1 cmp r0, #1 itee hi - strhi r0, [r6, #1200] + strhi r0, [r6, #1204] movls r3, #2 - strls r3, [r6, #1200] + strls r3, [r6, #1204] ldrh r3, [r8, #14] mov r8, #0 - strb r3, [r5, #1204] -.L1466: + strb r3, [r5, #1208] +.L1485: ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L1463 + bne .L1482 mov r0, r9 -.L1476: +.L1495: bl flash_exit_slc_mode mov r0, r8 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1464: - ldr fp, [r5, #1192] - ldr r2, .L1477+20 +.L1483: + ldr fp, [r5, #1196] + ldr r2, .L1496+20 ldr r3, [fp] cmp r3, r2 - bne .L1466 + bne .L1485 cmp r8, #0 - bne .L1467 + bne .L1486 mov r0, r4 ldr r1, [r7, #4] bl __aeabi_uidiv - ldr r3, .L1477+8 + ldr r3, .L1496+8 adds r0, r0, #1 - str r0, [r3, #1200] + str r0, [r3, #1204] mov r0, r8 - b .L1476 -.L1473: + b .L1495 +.L1492: mov r8, #-1 - b .L1466 -.L1478: + b .L1485 +.L1497: .align 2 -.L1477: +.L1496: .word .LANCHOR3+11 .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR0+44 + .word .LANCHOR0+48 .word .LANCHOR0+1210 .word 1312902724 .word .LANCHOR1 @@ -9565,7 +9658,7 @@ ToshibaReadRetrial: str r2, [sp, #8] str r1, [sp, #16] bl NandcWaitFlashReady - ldr r4, .L1507 + ldr r4, .L1526 add r3, r4, r9, lsl #3 ldrb r2, [r3, #16] @ zero_extendqisi2 ldr r7, [r3, #12] @@ -9576,56 +9669,56 @@ ToshibaReadRetrial: cmp r3, #1 lsl r3, r2, #8 str r3, [sp, #12] - bls .L1496 - ldrb r5, [r4, #2244] @ zero_extendqisi2 - cbz r5, .L1497 + bls .L1515 + ldrb r5, [r4, #2252] @ zero_extendqisi2 + cbz r5, .L1516 movs r0, #0 str r2, [sp, #20] bl NandcSetDdrMode movs r3, #1 ldr r2, [sp, #20] str r3, [sp, #4] - b .L1481 -.L1497: + b .L1500 +.L1516: str r5, [sp, #4] -.L1481: +.L1500: ldr r3, [sp, #12] movs r1, #92 adds r3, r7, r3 str r1, [r3, #2056] movs r1, #197 str r1, [r3, #2056] - b .L1480 -.L1496: + b .L1499 +.L1515: movs r3, #0 str r3, [sp, #4] -.L1480: +.L1499: mov r8, #1 mov r10, #-1 lsls r3, r2, #8 str r3, [sp, #20] -.L1482: - ldr r3, .L1507+4 - ldrb r3, [r3, #1205] @ zero_extendqisi2 +.L1501: + ldr r3, .L1526+4 + ldrb r3, [r3, #1209] @ zero_extendqisi2 adds r3, r3, #1 cmp r8, r3 - bcs .L1506 + bcs .L1525 ldrb r3, [r4, #1208] @ zero_extendqisi2 mov r0, r6 uxtb r1, r8 subs r3, r3, #67 cmp r3, #1 - bhi .L1483 + bhi .L1502 bl SandiskSetRRPara - b .L1484 -.L1483: + b .L1503 +.L1502: bl ToshibaSetRRPara -.L1484: +.L1503: ldrb r3, [r4, #1208] @ zero_extendqisi2 cmp r3, #34 - bne .L1485 - ldr r3, .L1507+4 - ldrb r3, [r3, #1205] @ zero_extendqisi2 + bne .L1504 + ldr r3, .L1526+4 + ldrb r3, [r3, #1209] @ zero_extendqisi2 subs r3, r3, #3 cmp r8, r3 itttt eq @@ -9633,7 +9726,7 @@ ToshibaReadRetrial: ldreq r3, [sp, #20] addeq r3, r7, r3 streq r2, [r3, #2056] -.L1485: +.L1504: ldr r3, [sp, #12] movs r2, #38 adds r3, r7, r3 @@ -9641,7 +9734,7 @@ ToshibaReadRetrial: movs r2, #93 str r2, [r3, #2056] ldr r3, [sp, #4] - cbz r3, .L1486 + cbz r3, .L1505 movs r0, #4 bl NandcSetDdrMode mov r0, r9 @@ -9652,69 +9745,69 @@ ToshibaReadRetrial: mov r5, r0 movs r0, #0 bl NandcSetDdrMode - b .L1487 -.L1486: + b .L1506 +.L1505: mov r0, r9 ldr r1, [sp, #16] ldr r2, [sp, #8] mov r3, fp bl FlashReadRawPage mov r5, r0 -.L1487: +.L1506: adds r2, r5, #1 - beq .L1488 - ldrb r2, [r4, #2304] @ zero_extendqisi2 + beq .L1507 + ldrb r2, [r4, #2312] @ zero_extendqisi2 cmp r10, #-1 it eq moveq r10, r5 add r2, r2, r2, lsl #1 cmp r5, r2, asr #2 - bcc .L1490 + bcc .L1509 mov fp, #0 str fp, [sp, #8] -.L1488: +.L1507: add r8, r8, #1 - b .L1482 -.L1506: + b .L1501 +.L1525: mov r5, r10 -.L1490: +.L1509: ldrb r2, [r4, #1208] @ zero_extendqisi2 mov r0, r6 movs r1, #0 subs r2, r2, #67 cmp r2, #1 - bhi .L1492 + bhi .L1511 bl SandiskSetRRPara - b .L1493 -.L1492: + b .L1512 +.L1511: bl ToshibaSetRRPara -.L1493: +.L1512: ldr r3, [sp, #12] movs r2, #255 add r7, r7, r3 str r2, [r7, #2056] - ldrb r2, [r4, #2304] @ zero_extendqisi2 + ldrb r2, [r4, #2312] @ zero_extendqisi2 add r2, r2, r2, lsl #1 cmp r5, r2, asr #2 - bcc .L1494 + bcc .L1513 adds r3, r5, #1 it ne movne r5, #256 -.L1494: +.L1513: mov r0, r9 bl NandcWaitFlashReady ldr r3, [sp, #4] - cbz r3, .L1495 + cbz r3, .L1514 movs r0, #4 bl NandcSetDdrMode -.L1495: +.L1514: mov r0, r5 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1508: +.L1527: .align 2 -.L1507: +.L1526: .word .LANCHOR0 .word .LANCHOR4 .fnend @@ -9731,7 +9824,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, .L1522 + ldr r5, .L1541 mov r9, r2 mov r7, r3 mov fp, r1 @@ -9743,12 +9836,12 @@ SamsungReadRetrial: ldr r6, [r2, #12] adds r3, r3, #8 add r6, r6, r3, lsl #8 -.L1510: - ldr r3, .L1522+4 - ldrb r3, [r3, #1205] @ zero_extendqisi2 +.L1529: + ldr r3, .L1541+4 + ldrb r3, [r3, #1209] @ zero_extendqisi2 adds r3, r3, #1 cmp r10, r3 - bcs .L1513 + bcs .L1532 mov r0, r6 uxtb r1, r10 bl SamsungSetRRPara @@ -9758,38 +9851,38 @@ SamsungReadRetrial: mov r3, r7 bl FlashReadRawPage adds r2, r0, #1 - beq .L1511 - ldrb r3, [r5, #2304] @ zero_extendqisi2 + beq .L1530 + ldrb r3, [r5, #2312] @ zero_extendqisi2 cmp r4, #-1 it eq moveq r4, r0 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1516 + bcc .L1535 movs r7, #0 mov r9, r7 -.L1511: +.L1530: add r10, r10, #1 - b .L1510 -.L1516: + b .L1529 +.L1535: mov r4, r0 -.L1513: +.L1532: mov r0, r6 movs r1, #0 bl SamsungSetRRPara - ldrb r3, [r5, #2304] @ zero_extendqisi2 + ldrb r3, [r5, #2312] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r4, r3, asr #2 - bcc .L1515 + bcc .L1534 adds r3, r4, #1 it ne movne r4, #256 -.L1515: +.L1534: mov r0, r4 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1523: +.L1542: .align 2 -.L1522: +.L1541: .word .LANCHOR0 .word .LANCHOR4 .fnend @@ -9806,28 +9899,28 @@ MicronReadRetrial: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r3 - ldr r3, .L1548 + ldr r3, .L1567 .pad #36 sub sp, sp, #36 mov r6, r0 mov fp, r2 str r1, [sp, #20] - ldrb r5, [r3, #2304] @ zero_extendqisi2 - ldrb r3, [r3, #140] @ zero_extendqisi2 - cbnz r3, .L1525 + ldrb r5, [r3, #2312] @ zero_extendqisi2 + ldrb r3, [r3, #144] @ zero_extendqisi2 + cbnz r3, .L1544 add r5, r5, r5, lsl #1 ubfx r5, r5, #2, #8 - b .L1526 -.L1525: - ldr r2, .L1548+4 + b .L1545 +.L1544: + ldr r2, .L1567+4 smull r2, r3, r5, r2 uxtb r5, r3 -.L1526: - ldr r3, .L1548 +.L1545: + ldr r3, .L1567 mov r10, #0 add r3, r3, r6, lsl #3 str r3, [sp, #24] -.L1536: +.L1555: mov r0, r6 mov r9, #0 bl NandcWaitFlashReady @@ -9841,11 +9934,11 @@ MicronReadRetrial: ldr r2, [sp, #16] ldr r3, [sp, #12] add r7, r3, r2, lsl #8 -.L1527: - ldr r3, .L1548+8 - ldrb r3, [r3, #1205] @ zero_extendqisi2 +.L1546: + ldr r3, .L1567+8 + ldrb r3, [r3, #1209] @ zero_extendqisi2 cmp r9, r3 - bcs .L1530 + bcs .L1549 movs r3, #239 movs r0, #200 str r3, [r7, #2056] @@ -9866,23 +9959,23 @@ MicronReadRetrial: str ip, [sp, #28] bl FlashReadRawPage adds r3, r0, #1 - beq .L1528 + beq .L1547 cmp r4, #-1 it eq moveq r4, r0 cmp r0, r5 ldr ip, [sp, #28] - bcc .L1538 + bcc .L1557 mov r8, ip mov fp, ip -.L1528: +.L1547: ldr r9, [sp, #8] - b .L1527 -.L1538: + b .L1546 +.L1557: mov r4, r0 mov r8, ip mov fp, ip -.L1530: +.L1549: ldr r2, [sp, #16] movs r0, #200 ldr r3, [sp, #12] @@ -9900,9 +9993,9 @@ MicronReadRetrial: str r7, [r3, #2048] str r7, [r3, #2048] str r7, [r3, #2048] - bcc .L1532 + bcc .L1551 adds r1, r4, #1 - ldr r0, .L1548+12 + ldr r0, .L1567+12 it ne movne r4, #256 mov r1, r9 @@ -9911,40 +10004,40 @@ MicronReadRetrial: ldr r2, [sp, #20] bl printk cmp r10, #0 - bne .L1534 - ldr r3, .L1548 - ldrb r3, [r3, #140] @ zero_extendqisi2 - cbz r3, .L1543 + bne .L1553 + ldr r3, .L1567 + ldrb r3, [r3, #144] @ zero_extendqisi2 + cbz r3, .L1562 adds r2, r4, #1 - bne .L1543 + bne .L1562 mov r0, r6 movs r1, #3 bl micron_auto_read_calibration_config mov r10, #1 - b .L1536 -.L1534: + b .L1555 +.L1553: mov r0, r6 mov r1, r7 bl micron_auto_read_calibration_config adds r3, r4, #1 it ne movne r4, #256 - b .L1543 -.L1532: + b .L1562 +.L1551: cmp r10, #0 - beq .L1543 + beq .L1562 mov r0, r6 mov r1, r7 bl micron_auto_read_calibration_config mov r4, #256 -.L1543: +.L1562: mov r0, r4 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1549: +.L1568: .align 2 -.L1548: +.L1567: .word .LANCHOR0 .word 1431655766 .word .LANCHOR4 @@ -9964,13 +10057,13 @@ HynixReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r3 - ldr r5, .L1567 + ldr r5, .L1586 mov r10, r2 mov r7, r0 mov fp, r1 adds r2, r5, r0 mov r6, #-1 - ldr r3, [r5, #1204] + ldr r3, [r5, #44] ldrb r4, [r2, #1222] @ zero_extendqisi2 ldrb r9, [r5, #1212] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 @@ -9980,14 +10073,14 @@ HynixReadRetrial: ldrbls r4, [r2, #1230] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L1552: +.L1571: cmp ip, r9 - bcs .L1556 + bcs .L1575 adds r4, r4, #1 mov r0, r7 ldrb r1, [r5, #1211] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L1567+4 + ldr r2, .L1586+4 cmp r4, r9 it cs movcs r4, #0 @@ -10001,50 +10094,226 @@ HynixReadRetrial: bl FlashReadRawPage adds r2, r0, #1 ldr ip, [sp, #4] - beq .L1554 - ldrb r3, [r5, #2304] @ zero_extendqisi2 + beq .L1573 + ldrb r3, [r5, #2312] @ zero_extendqisi2 cmp r6, #-1 it eq moveq r6, r0 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1561 + bcc .L1580 mov r8, #0 mov r10, r8 -.L1554: +.L1573: add ip, ip, #1 - b .L1552 -.L1561: + b .L1571 +.L1580: mov r6, r0 -.L1556: - ldr r3, [r5, #1204] +.L1575: + ldr r3, [r5, #44] add r7, r7, r5 ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #7 cmp r3, #1 - ldrb r3, [r5, #2304] @ zero_extendqisi2 + ldrb r3, [r5, #2312] @ zero_extendqisi2 ite ls strbls r4, [r7, #1230] strbhi r4, [r7, #1222] add r3, r3, r3, lsl #1 cmp r6, r3, asr #2 - bcc .L1560 + bcc .L1579 adds r3, r6, #1 it ne movne r6, #256 -.L1560: +.L1579: mov r0, r6 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1568: +.L1587: .align 2 -.L1567: +.L1586: .word .LANCHOR0 .word .LANCHOR0+1214 .fnend .size HynixReadRetrial, .-HynixReadRetrial .align 1 + .thumb + .thumb_func + .type samsung_read_retrial, %function +samsung_read_retrial: + .fnstart + @ 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 #36 + sub sp, sp, #36 + mov r9, r0 + mov r10, r2 + mov r7, r3 + str r1, [sp, #16] + bl NandcWaitFlashReady + ldr r3, .L1614 + add r2, r3, r9, lsl #3 + ldr r4, [r2, #12] + ldrb r2, [r2, #16] @ zero_extendqisi2 + str r2, [sp, #12] + ldrb r2, [r3, #2228] @ zero_extendqisi2 + str r3, [sp, #20] + cmp r2, #0 + bne .L1589 + ldr r3, [sp, #12] + mov r5, #-1 + movs r6, #1 + lsl fp, r3, #8 + add r8, r4, fp + addw r3, r8, #2056 + str r3, [sp, #24] +.L1593: + ldr r3, [sp, #24] + mov ip, #0 + ldr r1, [sp, #16] + mov r0, r9 + str ip, [sp, #28] + mov r2, r3 + movs r3, #239 + str r3, [r2] + movs r3, #141 + str r3, [r8, #2052] + mov r2, r10 + ldr r3, .L1614+4 + ldrsb r3, [r6, r3] + str r3, [r8, #2048] + mov r3, r7 + str ip, [r8, #2048] + str ip, [r8, #2048] + str ip, [r8, #2048] + bl FlashReadRawPage + adds r1, r0, #1 + beq .L1590 + ldr r3, [sp, #20] + cmp r5, #-1 + it eq + moveq r5, r0 + ldrb r3, [r3, #2312] @ zero_extendqisi2 + add r3, r3, r3, lsl #1 + cmp r0, r3, asr #2 + bcc .L1601 + ldr ip, [sp, #28] + mov r7, ip + mov r10, ip +.L1590: + adds r6, r6, #1 + cmp r6, #26 + bne .L1593 + b .L1592 +.L1601: + mov r5, r0 +.L1592: + add fp, fp, r4 + movs r3, #239 + str r3, [fp, #2056] + ldr r3, [sp, #12] + add r4, r4, r3, lsl #8 + movs r3, #141 + b .L1613 +.L1589: + ldr r3, [sp, #12] + mov r5, #-1 + ldr r8, .L1614+12 + movs r6, #1 + lsl ip, r3, #8 + add fp, r4, ip + addw r3, fp, #2056 + str r3, [sp, #24] +.L1598: + ldr r3, [sp, #24] + mov r0, r9 + ldr r1, [sp, #16] + str ip, [sp, #28] + mov r2, r3 + movs r3, #239 + str r3, [r2] + movs r3, #137 + str r3, [fp, #2052] + mov r2, r10 + ldrb r3, [r8, #4] @ zero_extendqisi2 + str r3, [fp, #2048] + ldrb r3, [r8, #5] @ zero_extendqisi2 + str r3, [fp, #2048] + ldrb r3, [r8, #6] @ zero_extendqisi2 + str r3, [fp, #2048] + ldrb r3, [r8, #7] @ zero_extendqisi2 + str r3, [fp, #2048] + mov r3, r7 + bl FlashReadRawPage + adds r2, r0, #1 + ldr ip, [sp, #28] + beq .L1595 + ldr r3, [sp, #20] + cmp r5, #-1 + it eq + moveq r5, r0 + ldrb r3, [r3, #2312] @ zero_extendqisi2 + add r3, r3, r3, lsl #1 + cmp r0, r3, asr #2 + bcc .L1602 + movs r7, #0 + mov r10, r7 +.L1595: + adds r6, r6, #1 + add r8, r8, #4 + cmp r6, #26 + bne .L1598 + b .L1597 +.L1602: + mov r5, r0 +.L1597: + add ip, ip, r4 + movs r3, #239 + str r3, [ip, #2056] + ldr r3, [sp, #12] + add r4, r4, r3, lsl #8 + movs r3, #137 +.L1613: + str r3, [r4, #2052] + movs r3, #0 + str r3, [r4, #2048] + str r3, [r4, #2048] + str r3, [r4, #2048] + str r3, [r4, #2048] + ldr r3, [sp, #20] + ldrb r3, [r3, #2312] @ zero_extendqisi2 + add r3, r3, r3, lsl #1 + cmp r5, r3, asr #2 + bcc .L1599 + adds r3, r5, #1 + ldr r0, .L1614+8 + it ne + movne r5, #256 + mov r1, r6 + str r5, [sp] + mov r3, r6 + ldr r2, [sp, #16] + bl printk +.L1599: + mov r0, r9 + bl NandcWaitFlashReady + mov r0, r5 + add sp, sp, #36 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1615: + .align 2 +.L1614: + .word .LANCHOR0 + .word .LANCHOR3+16 + .word .LC95 + .word .LANCHOR3+44 + .fnend + .size samsung_read_retrial, .-samsung_read_retrial + .align 1 .global FlashProgPage .thumb .thumb_func @@ -10057,23 +10326,23 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1572 + ldr r3, .L1619 mov r5, r1 mov r7, r2 mov r4, r0 ldrb r6, [r3, #481] @ zero_extendqisi2 - cbnz r0, .L1570 - ldr r2, .L1572+4 + cbnz r0, .L1617 + ldr r2, .L1619+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r1, [r2, #4] muls r1, r3, r1 cmp r5, r1 - bcs .L1570 + bcs .L1617 ldrb r3, [r2] @ zero_extendqisi2 cmp r3, #0 it ne movne r6, #4 -.L1570: +.L1617: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -10102,9 +10371,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1573: +.L1620: .align 2 -.L1572: +.L1619: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -10121,125 +10390,142 @@ 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, .L1583 - ldr r5, .L1583+4 - ldr r8, .L1583+12 - ldr r3, [r4, #1180] - mov r9, r4 - ldrb r0, [r4, #1206] @ zero_extendqisi2 + ldr r4, .L1634 + ldr r5, .L1634+4 + ldr r8, .L1634+12 + ldr r3, [r4, #1184] + mov fp, r4 + ldrb r0, [r4, #1210] @ zero_extendqisi2 mov r10, r5 - str r3, [r4, #1192] + str r3, [r4, #1196] bl FlashBchSel movs r1, #0 mov r2, #2048 - ldr r0, [r4, #1180] + ldr r0, [r4, #1184] bl ftl_memset - ldr r3, [r4, #1192] + ldr r3, [r4, #1196] addw r1, r5, #2068 movs r2, #32 str r8, [r3] - ldr r0, [r4, #1192] - ldrb r3, [r5, #2229] @ zero_extendqisi2 + ldr r0, [r4, #1196] + ldrb r3, [r5, #2230] @ 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, #2244] @ zero_extendqisi2 + ldrb r3, [r5, #2252] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy - ldr r0, [r4, #1192] + ldr r0, [r4, #1196] addw r1, r5, #2232 movs r2, #8 adds r0, r0, #80 bl ftl_memcpy - ldr r0, [r4, #1192] - add r1, r5, #1168 + ldr r0, [r4, #1196] + addw r1, r5, #1172 movs r2, #32 adds r0, r0, #96 bl ftl_memcpy - ldr r0, [r4, #1192] - ldr r1, .L1583+8 + ldr r0, [r4, #1196] + ldr r1, .L1634+8 movs r2, #32 adds r0, r0, #160 bl ftl_memcpy - ldr r0, [r4, #1192] - add r1, r5, #44 + ldr r0, [r4, #1196] + add r1, r5, #48 movs r2, #32 adds r0, r0, #192 bl ftl_memcpy - ldr r0, [r4, #1192] + ldr r0, [r4, #1196] mov r2, #852 addw r1, r5, #1210 adds r0, r0, #224 bl ftl_memcpy - ldr r6, [r4, #1192] + ldr r6, [r4, #1196] movw r1, #2036 add r0, r6, #12 bl js_hash mov r3, #1592 str r3, [r6, #4] - ldr r3, [r4, #1208] - str r3, [r4, #1192] + ldr r3, [r4, #1212] + str r3, [r4, #1196] str r0, [r6, #8] movs r0, #0 bl flash_enter_slc_mode movs r6, #0 mov r7, r6 -.L1577: +.L1627: ldr r1, [r5, #4] movs r0, #0 mov r2, r0 muls r1, r7, r1 bl FlashEraseBlock + ldrb r9, [r5, #144] @ zero_extendqisi2 + cmp r9, #0 + beq .L1622 + mov r9, #0 +.L1623: ldr r1, [r5, #4] movs r0, #0 - ldr r2, [r4, #1180] - muls r1, r7, r1 + ldr r2, [r4, #1184] mov r3, r0 + mla r1, r1, r7, r9 + add r9, r9, #1 bl FlashProgPage - ldr r1, [r5, #4] - movs r0, #0 - ldr r2, [r4, #1180] + cmp r9, #10 + bne .L1623 + b .L1624 +.L1622: + ldr r1, [r10, #4] + mov r3, r9 + ldr r2, [r4, #1184] + mov r0, r9 + muls r1, r7, r1 + bl FlashProgPage + ldr r1, [r10, #4] + mov r0, r9 + ldr r2, [r4, #1184] + mov r3, r9 muls r1, r7, r1 - mov r3, r0 adds r1, r1, #1 bl FlashProgPage +.L1624: ldr r1, [r5, #4] movs r0, #0 - ldr r2, [r4, #1208] - muls r1, r7, r1 + ldr r2, [r4, #1212] mov r3, r0 + muls r1, r7, r1 bl FlashReadRawPage adds r2, r7, #1 adds r0, r0, #1 - beq .L1575 - ldr fp, [r9, #1192] - ldr r3, [fp] + beq .L1625 + ldr r9, [fp, #1196] + ldr r3, [r9] cmp r3, r8 - bne .L1575 - add r0, fp, #12 + bne .L1625 + add r0, r9, #12 movw r1, #2036 str r2, [sp, #4] bl js_hash - ldr r3, [fp, #8] + ldr r3, [r9, #8] cmp r3, r0 ldr r2, [sp, #4] - bne .L1575 + bne .L1625 ldr r3, [r10, #4] cmp r6, #1 - str r2, [r9, #1200] + str r2, [fp, #1204] mul r3, r3, r7 - str r3, [r9, #1196] - beq .L1578 + str r3, [fp, #1200] + beq .L1628 movs r6, #1 -.L1575: +.L1625: cmp r2, #4 mov r7, r2 - bne .L1577 - b .L1576 -.L1578: + bne .L1627 + b .L1626 +.L1628: movs r6, #2 -.L1576: +.L1626: movs r0, #0 bl flash_exit_slc_mode clz r0, r6 @@ -10248,9 +10534,9 @@ FlashSavePhyInfo: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1584: +.L1635: .align 2 -.L1583: +.L1634: .word .LANCHOR4 .word .LANCHOR0 .word .LANCHOR1+472 @@ -10270,93 +10556,93 @@ FlashReadIdbDataRaw: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r9, r0 - ldr r3, .L1604 - ldr r4, .L1604+4 + ldr r3, .L1655 + ldr r4, .L1655+4 ldr r0, [r3] @ unaligned - ldr r3, [r4, #2240] - ldrb r10, [r4, #2304] @ zero_extendqisi2 + ldr r3, [r4, #2248] + ldrb r10, [r4, #2312] @ zero_extendqisi2 str r0, [sp, #4] @ unaligned - cbz r3, .L1586 + cbz r3, .L1637 movs r0, #0 bl flash_enter_slc_mode -.L1586: +.L1637: mov r0, r9 movs r1, #0 mov r2, #2048 mov r8, #-1 bl ftl_memset movs r5, #2 -.L1587: +.L1638: ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r5, r3 - bcs .L1591 + bcs .L1642 movs r7, #0 -.L1589: +.L1640: add r3, sp, #4 - ldr r6, .L1604+8 + ldr r6, .L1655+8 ldrb fp, [r7, r3] @ zero_extendqisi2 mov r0, fp bl FlashBchSel ldr r1, [r4, #4] movs r0, #0 - ldr r2, [r6, #1180] + ldr r2, [r6, #1184] muls r1, r5, r1 mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1588 + bne .L1639 adds r7, r7, #1 cmp r7, #4 - bne .L1589 - b .L1590 -.L1588: - ldr r3, [r6, #1180] - ldr r2, .L1604+12 + bne .L1640 + b .L1641 +.L1639: + ldr r3, [r6, #1184] + ldr r2, .L1655+12 ldr r3, [r3] cmp r3, r2 - bne .L1590 + bne .L1641 mov r1, fp - ldr r0, .L1604+16 + ldr r0, .L1655+16 bl printk mov r2, #2048 mov r0, r9 - ldr r1, [r6, #1180] + ldr r1, [r6, #1184] bl ftl_memcpy - ldr r3, [r6, #1180] - ldr r2, .L1604+4 + ldr r3, [r6, #1184] + ldr r2, .L1655+4 ldr r3, [r3, #512] strb r3, [r2, #1] - ldr r3, [r6, #1200] + ldr r3, [r6, #1204] cmp r3, r5 - bls .L1594 - str r5, [r6, #1200] + bls .L1645 + str r5, [r6, #1204] bl FlashSavePhyInfo mov r8, #0 -.L1590: +.L1641: adds r5, r5, #1 - b .L1587 -.L1594: + b .L1638 +.L1645: mov r8, #0 -.L1591: +.L1642: mov r0, r10 bl FlashBchSel - ldr r3, [r4, #2240] - cbz r3, .L1598 + ldr r3, [r4, #2248] + cbz r3, .L1649 movs r0, #0 bl flash_exit_slc_mode -.L1598: +.L1649: mov r0, r8 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1605: +.L1656: .align 2 -.L1604: +.L1655: .word .LANCHOR3+11 .word .LANCHOR0 .word .LANCHOR4 .word -52655045 - .word .LC95 + .word .LC96 .fnend .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .align 1 @@ -10375,40 +10661,41 @@ FlashInit: sub sp, sp, #20 mov r0, #32768 bl ftl_malloc - ldr r6, .L1725 - ldr r4, .L1725+4 + ldr r4, .L1780 + ldr r6, .L1780+4 movs r7, #0 - add r9, r4, #12 - mov r8, r6 - str r0, [r6, #1180] + add r9, r6, #12 + mov r8, r4 + str r0, [r4, #1184] mov r0, #32768 bl ftl_malloc - str r0, [r6, #1208] + str r0, [r4, #1212] mov r0, #4096 bl ftl_malloc - str r0, [r6, #1212] + str r0, [r4, #1216] mov r0, #32768 bl ftl_malloc - str r0, [r6, #1216] + str r0, [r4, #1220] mov r0, #4096 bl ftl_malloc movs r3, #50 - str r7, [r6, #1200] - strb r3, [r4, #1] - strb r3, [r6, #1204] + str r7, [r4, #1204] + strb r3, [r4, #1208] + strb r3, [r6, #1] movs r3, #128 - strb r7, [r4, #2244] - str r3, [r4, #4] + str r7, [r4, #1188] + str r3, [r6, #4] movs r3, #60 - str r7, [r6, #1184] - strb r7, [r4] - strb r7, [r6, #1224] - strb r3, [r6, #1206] - str r0, [r6, #1220] + strb r7, [r4, #1228] + strb r3, [r4, #1210] + strb r7, [r6, #2252] + strb r7, [r6] + str r0, [r4, #1224] mov r0, r5 bl NandcInit - addw r5, r4, #2068 -.L1612: + addw r5, r6, #2068 + mov r4, r6 +.L1663: add r3, r9, r7, lsl #3 uxtb fp, r7 ldr r6, [r9, r7, lsl #3] @@ -10438,7 +10725,7 @@ FlashInit: strb r1, [r5, #4] ldr r1, [r6, #2048] strb r1, [r5, #5] - bne .L1607 + bne .L1658 movs r2, #239 movs r0, #200 str r2, [r6, #2056] @@ -10450,17 +10737,17 @@ FlashInit: str r10, [r6, #2048] str r10, [r6, #2048] str r10, [r6, #2048] -.L1607: +.L1658: mov r0, fp bl NandcFlashDeCs ldrb r2, [r5] @ zero_extendqisi2 subs r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1608 + bhi .L1659 ldrb r1, [r5, #2] @ zero_extendqisi2 ldrb r3, [r5, #1] @ zero_extendqisi2 - ldr r0, .L1725+8 + ldr r0, .L1780+8 str r1, [sp] ldrb r1, [r5, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -10470,18 +10757,18 @@ FlashInit: str r1, [sp, #12] adds r1, r7, #1 bl printk -.L1608: - cbnz r7, .L1609 +.L1659: + cbnz r7, .L1660 ldrb r3, [r4, #2068] @ zero_extendqisi2 subs r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1664 - ldr r3, .L1725+4 + bhi .L1716 + ldr r3, .L1780+4 ldrb r3, [r3, #2069] @ zero_extendqisi2 cmp r3, #255 - beq .L1664 -.L1609: + beq .L1716 +.L1660: ldrb r3, [r5] @ zero_extendqisi2 adds r7, r7, #1 adds r5, r5, #8 @@ -10490,451 +10777,472 @@ FlashInit: moveq r3, #44 strbeq r3, [r5, #-8] cmp r7, #4 - bne .L1612 + bne .L1663 ldrb r3, [r4, #2068] @ zero_extendqisi2 cmp r3, #173 - beq .L1613 - ldr r3, .L1725+4 - ldr r0, [r3, #2248] + beq .L1664 + ldr r3, .L1780+4 + ldr r0, [r3, #2256] bl NandcSetDdrMode -.L1613: - ldr r6, .L1725+4 - mov r2, #852 +.L1664: + ldr r6, .L1780+4 movs r1, #0 - ldr r5, .L1725+12 + mov r2, #852 + ldr r5, .L1780+12 addw r0, r6, #1210 bl ftl_memset - ldr r3, .L1725+16 - ldr r2, [r4, #2256] - ldrb r0, [r4, #2069] @ zero_extendqisi2 - cmp r2, r5 - str r3, [r4, #1204] - mov r3, #0 + ldr r0, .L1780+16 + add r3, r0, #472 + str r3, [r4, #44] + movs r3, #0 strb r3, [r4, #8] - itt eq - moveq r3, #1 - streq r3, [r6, #2240] - cmp r0, #161 - beq .L1615 - cmp r0, #241 - beq .L1615 - cmp r0, #218 - beq .L1615 - and r3, r0, #253 - cmp r3, #209 - beq .L1615 - cmp r0, #220 - bne .L1616 - ldr r3, .L1725+4 - ldrb r3, [r3, #2071] @ zero_extendqisi2 - cmp r3, #149 - bne .L1616 -.L1615: + ldr r3, [r4, #2264] + cmp r3, r5 + bne .L1665 + ldrb r2, [r0, #491] @ zero_extendqisi2 + cmp r2, #50 + itt ne + movne r2, #1 + strne r2, [r6, #2248] +.L1665: + ldrb r6, [r4, #2069] @ zero_extendqisi2 + cmp r6, #161 + beq .L1666 + cmp r6, #241 + beq .L1666 + cmp r6, #218 + beq .L1666 + and r2, r6, #253 + cmp r2, #209 + beq .L1666 + cmp r6, #220 + bne .L1667 + ldr r2, .L1780+4 + ldrb r2, [r2, #2071] @ zero_extendqisi2 + cmp r2, #149 + bne .L1667 +.L1666: + movs r7, #16 + strb r7, [r4, #1] + strb r7, [r8, #1210] + movs r1, #1 ldrb r7, [r4, #2068] @ zero_extendqisi2 - movs r3, #16 - strb r3, [r4, #1] - movs r6, #1 - strb r3, [r8, #1206] + strb r1, [r4] cmp r7, #152 - ldr r3, .L1725+20 - strb r6, [r4] - ldr r1, .L1725 - strb r7, [r3, #3321] - strb r0, [r3, #3322] - bne .L1618 - ldr r7, .L1725+4 + ldr r2, .L1780 + strb r7, [r0, #3417] + strb r6, [r0, #3418] + bne .L1669 + ldr r7, .L1780+4 ldrsb r7, [r7, #2072] cmp r7, #0 - blt .L1619 - movs r6, #24 - strb r6, [r1, #1206] -.L1618: - cmp r2, r5 - beq .L1621 - movw r1, #2049 - cmp r2, r1 - bne .L1622 -.L1621: - movs r2, #16 - strb r2, [r8, #1206] -.L1622: - cmp r0, #218 - bne .L1623 - mov r2, #2048 - b .L1720 -.L1623: - cmp r0, #220 - bne .L1625 - mov r2, #4096 -.L1720: - strh r2, [r3, #3334] @ movhi - strb r0, [r3, #3322] - b .L1624 -.L1625: - cmp r0, #211 + blt .L1670 + movs r1, #24 + strb r1, [r2, #1210] +.L1669: + cmp r3, r5 + beq .L1672 + movw r2, #2049 + cmp r3, r2 + bne .L1673 +.L1672: + movs r3, #16 + strb r3, [r8, #1210] +.L1673: + cmp r6, #218 + bne .L1674 + mov r3, #2048 + b .L1775 +.L1674: + cmp r6, #220 + bne .L1676 + mov r3, #4096 +.L1775: + strh r3, [r0, #3430] @ movhi + strb r6, [r0, #3418] + b .L1675 +.L1676: + cmp r6, #211 itttt eq - moveq r2, #4096 - strheq r2, [r3, #3334] @ movhi - moveq r2, #2 - strbeq r2, [r3, #3333] -.L1624: - ldr r1, .L1725+24 + moveq r3, #4096 + strheq r3, [r0, #3430] @ movhi + moveq r3, #2 + strbeq r3, [r0, #3429] +.L1675: + ldr r1, .L1780+20 movs r2, #32 - ldr r0, .L1725+28 + ldr r0, .L1780+24 bl ftl_memcpy - ldr r0, .L1725+16 + ldr r0, .L1780+28 movs r2, #32 - add r1, r0, #2848 + add r1, r0, #2944 bl ftl_memcpy -.L1616: +.L1667: ldrb r3, [r4] @ zero_extendqisi2 - ldr r6, .L1725+4 + ldr r6, .L1780+4 cmp r3, #0 - bne .L1626 + bne .L1677 bl FlashLoadPhyInfoInRam - cbnz r0, .L1628 - ldr r3, [r6, #1204] + cbnz r0, .L1679 + ldr r3, [r6, #44] ldrh r3, [r3, #16] lsrs r3, r3, #8 lsls r7, r3, #31 and r0, r3, #7 - strb r0, [r6, #2228] - bmi .L1628 + strb r0, [r6, #2229] + bmi .L1679 movs r3, #1 - strb r3, [r6, #2244] + strb r3, [r6, #2252] bl FlashSetInterfaceMode - ldrb r0, [r6, #2228] @ zero_extendqisi2 + ldrb r0, [r6, #2229] @ zero_extendqisi2 bl NandcSetMode -.L1628: - ldr r3, [r4, #1204] - ldr r6, .L1725+4 +.L1679: + ldr r3, [r4, #44] + ldr r6, .L1780+4 ldrb r3, [r3, #26] @ zero_extendqisi2 - strb r3, [r4, #140] + strb r3, [r4, #144] bl FlashLoadPhyInfo cmp r0, #0 - beq .L1626 - ldr r3, [r6, #2248] - cbz r3, .L1631 + beq .L1677 + ldr r3, [r6, #2256] + cbz r3, .L1682 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 - b .L1721 -.L1726: + b .L1776 +.L1781: .align 2 -.L1725: +.L1780: .word .LANCHOR4 .word .LANCHOR0 - .word .LC96 + .word .LC97 .word 1446522928 - .word .LANCHOR1+472 .word .LANCHOR1 - .word .LANCHOR1+3196 - .word .LANCHOR0+44 -.L1631: - ldrb r0, [r6, #2228] @ zero_extendqisi2 + .word .LANCHOR1+3292 + .word .LANCHOR0+48 + .word .LANCHOR1+472 +.L1682: + ldrb r0, [r6, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r6, #2228] @ zero_extendqisi2 -.L1721: + ldrb r0, [r6, #2229] @ zero_extendqisi2 +.L1776: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L1626 + beq .L1677 movs r0, #1 - ldr r6, .L1727 + ldr r6, .L1782 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode - ldr r3, [r4, #1204] - ldr r0, .L1727+4 + ldr r3, [r4, #44] + ldr r0, .L1782+4 ldrh r1, [r3, #14] bl printk bl FlashLoadPhyInfoInRam adds r1, r0, #1 - beq .L1683 + beq .L1736 bl FlashDieInfoInit - ldr r3, [r6, #1204] + ldr r3, [r6, #44] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault - ldr r2, .L1727+8 - ldr r3, [r6, #1204] - ldrh r2, [r2, #3266] + ldr r2, .L1782+8 + ldr r3, [r6, #44] + ldrh r2, [r2, #3270] ldrb r1, [r3, #9] @ zero_extendqisi2 addw r2, r2, #4095 cmp r1, r2, asr #12 - blt .L1633 + blt .L1684 ldrh r2, [r3, #14] adds r2, r2, #255 cmp r1, r2, asr #8 - bge .L1634 -.L1633: + bge .L1685 +.L1684: ldrh r2, [r3, #14] bic r2, r2, #255 strh r2, [r3, #14] @ movhi -.L1634: - ldrb r3, [r4, #2228] @ zero_extendqisi2 +.L1685: + ldrb r3, [r4, #2229] @ zero_extendqisi2 tst r3, #6 - beq .L1635 + beq .L1686 bl FlashSavePhyInfo movs r0, #0 - ldr r1, [r8, #1196] + bl flash_enter_slc_mode + movs r0, #0 + ldr r1, [r8, #1200] bl FlashDdrParaScan -.L1635: + movs r0, #0 + bl flash_exit_slc_mode +.L1686: bl FlashSavePhyInfo -.L1626: - ldr r2, [r4, #1204] - ldr r7, .L1727 - ldr r6, .L1727+12 +.L1677: + ldr r2, [r4, #44] + mov r9, #0 + str r9, [r8, #1192] + ldr r7, .L1782 ldrb r3, [r2, #26] @ zero_extendqisi2 ldrh r0, [r2, #10] - ldrb r9, [r2, #18] @ zero_extendqisi2 - strb r3, [r4, #140] + ldrb r10, [r2, #18] @ zero_extendqisi2 + strb r3, [r4, #144] ldrh r3, [r2, #16] + ldr r6, .L1782+12 ubfx r1, r3, #7, #1 strb r1, [r4, #8] ubfx r1, r3, #3, #1 - strb r1, [r8, #1225] + strb r1, [r8, #1229] ubfx r1, r3, #4, #1 ubfx r3, r3, #8, #3 - strb r1, [r4, #2305] - strb r3, [r4, #2228] - movs r3, #0 + strb r1, [r4, #2240] + strb r3, [r4, #2229] ldrb r1, [r2, #12] @ zero_extendqisi2 - str r3, [r8, #1188] bl __aeabi_idiv mov r1, r0 - mov r0, r9 + mov r0, r10 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr r3, [r4, #1204] + ldr r3, [r4, #44] ldrh r2, [r3, #16] lsls r2, r2, #25 - bpl .L1637 + bpl .L1688 ldrb r0, [r3, #19] @ zero_extendqisi2 ldrb r3, [r7, #1211] @ zero_extendqisi2 strb r0, [r7, #1208] strb r3, [r7, #1209] ldrb r3, [r7, #1212] @ zero_extendqisi2 - strb r3, [r6, #1205] + strb r3, [r6, #1209] subs r3, r0, #1 cmp r3, #7 - bhi .L1638 - ldr r3, .L1727+16 - str r3, [r6, #1188] + bhi .L1689 + ldr r3, .L1782+16 + str r3, [r6, #1192] subs r3, r0, #5 cmp r3, #1 - bls .L1639 + bls .L1690 cmp r0, #8 - bne .L1640 -.L1639: + bne .L1691 +.L1690: cmp r0, #7 mov r3, #1 - str r3, [r4, #2296] - beq .L1665 + str r3, [r4, #2304] + beq .L1717 cmp r0, #8 - b .L1724 -.L1665: - ldr r3, .L1727+20 -.L1642: + b .L1779 +.L1717: + ldr r3, .L1782+20 +.L1693: subs r1, r3, #1 movs r2, #0 adds r3, r3, #31 -.L1643: +.L1694: ldrsb r6, [r1, #1]! cmp r6, #0 it eq addeq r2, r2, #1 cmp r1, r3 - bne .L1643 + bne .L1694 cmp r2, #27 - bls .L1637 + bls .L1688 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1637 -.L1638: + b .L1688 +.L1689: sub r3, r0, #17 cmp r3, #2 - bhi .L1645 - ldr r3, .L1727+24 + bhi .L1696 + ldr r3, .L1782+24 cmp r0, #19 - str r3, [r6, #1188] + str r3, [r6, #1192] ite ne movne r3, #7 moveq r3, #15 - strb r3, [r6, #1205] - b .L1637 -.L1645: + strb r3, [r6, #1209] + b .L1688 +.L1696: cmp r0, #33 - beq .L1647 + beq .L1698 sub r3, r0, #65 cmp r3, #1 - bhi .L1648 -.L1647: - ldr r3, .L1727+28 - str r3, [r8, #1188] + bhi .L1699 +.L1698: + ldr r3, .L1782+28 + str r3, [r8, #1192] movs r3, #4 strb r3, [r4, #1209] movs r3, #7 - strb r3, [r8, #1205] - b .L1637 -.L1648: + strb r3, [r8, #1209] + b .L1688 +.L1699: sub r3, r0, #67 uxtb r3, r3 cmp r3, #1 - bls .L1649 + bls .L1700 sub r2, r0, #34 cmp r2, #1 - bhi .L1650 -.L1649: - ldr r2, .L1727+28 + bhi .L1701 +.L1700: + ldr r2, .L1782+28 cmp r0, #35 - str r2, [r8, #1188] - beq .L1651 + str r2, [r8, #1192] + beq .L1702 cmp r0, #68 - beq .L1651 - ldr r2, .L1727+12 + beq .L1702 + ldr r2, .L1782+12 movs r1, #7 - strb r1, [r2, #1205] - b .L1652 -.L1651: + strb r1, [r2, #1209] + b .L1703 +.L1702: movs r2, #17 - strb r2, [r8, #1205] -.L1652: + strb r2, [r8, #1209] +.L1703: cmp r3, #1 ite ls movls r3, #4 movhi r3, #5 strb r3, [r4, #1209] - b .L1637 -.L1650: + b .L1688 +.L1701: cmp r0, #49 - itt eq - ldreq r3, .L1727+32 - streq r3, [r6, #1188] -.L1637: - ldr r2, [r4, #2256] - ldr r3, .L1727 + bne .L1705 + ldr r3, .L1782+32 + str r3, [r6, #1192] + b .L1688 +.L1705: + cmp r0, #50 + ittt eq + streq r9, [r7, #2248] + ldreq r3, .L1782+36 + streq r3, [r6, #1192] +.L1688: + ldr r2, [r4, #2264] + ldr r3, .L1782 cmp r2, r5 - bne .L1654 - ldrb r1, [r3, #140] @ zero_extendqisi2 - cbz r1, .L1654 - ldr r3, [r3, #1204] + bne .L1706 + ldrb r1, [r3, #144] @ zero_extendqisi2 + cbz r1, .L1706 + ldr r3, [r3, #44] movs r1, #0 strb r1, [r3, #18] -.L1654: +.L1706: ldrb r1, [r4, #2068] @ zero_extendqisi2 - ldr r3, .L1727 + ldr r3, .L1782 cmp r1, #44 - bne .L1655 - ldrb r1, [r3, #2244] @ zero_extendqisi2 - cbz r1, .L1655 + bne .L1707 + ldrb r1, [r3, #2252] @ zero_extendqisi2 + cbz r1, .L1707 cmp r2, r5 - bne .L1656 - ldrb r3, [r3, #140] @ zero_extendqisi2 - cbnz r3, .L1655 -.L1656: + bne .L1708 + ldrb r3, [r3, #144] @ zero_extendqisi2 + cbnz r3, .L1707 +.L1708: movs r0, #1 movs r3, #0 - strb r3, [r4, #2244] + strb r3, [r4, #2252] bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode -.L1655: - ldrb r3, [r4, #2228] @ zero_extendqisi2 +.L1707: + ldrb r3, [r4, #2229] @ zero_extendqisi2 tst r3, #6 - beq .L1657 - ldr r2, .L1727 - ldrb r2, [r2, #2244] @ zero_extendqisi2 - cbnz r2, .L1658 + beq .L1709 + ldr r2, .L1782 + ldrb r2, [r2, #2252] @ zero_extendqisi2 + cbnz r2, .L1710 lsls r3, r3, #31 - bmi .L1657 -.L1658: + bmi .L1709 +.L1710: movs r0, #0 bl flash_enter_slc_mode movs r0, #0 - ldr r1, [r8, #1196] + ldr r1, [r8, #1200] bl FlashDdrParaScan movs r0, #0 bl flash_exit_slc_mode -.L1657: - ldr r3, [r4, #1204] - mov r8, #16 - ldr r6, .L1727 +.L1709: + ldr r3, [r4, #44] + movs r7, #16 + ldr r6, .L1782 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel - ldr r0, .L1727+36 + ldr r0, .L1782+40 bl FlashReadIdbDataRaw - ldr r0, .L1727+40 - strb r8, [r4, #1] + ldr r0, .L1782+44 + strb r7, [r4, #1] bl FlashTimingCfg - ldr r5, [r4, #1204] + ldr r5, [r4, #44] + ldrb r2, [r4, #2069] @ zero_extendqisi2 ldrb r3, [r5, #12] @ zero_extendqisi2 - ldrh r7, [r5, #14] - strh r3, [r4, #120] @ movhi - ldrb r3, [r5, #7] @ zero_extendqisi2 - str r3, [r4, #116] - ldr r3, [r4, #2068] - str r3, [r4, #112] - ldrb r3, [r4, #2229] @ zero_extendqisi2 - strh r3, [r4, #122] @ movhi - ldrb r3, [r5, #13] @ zero_extendqisi2 - strh r7, [r4, #126] @ movhi + ldrh r8, [r5, #14] strh r3, [r4, #124] @ movhi - ldrh r3, [r5, #10] + ldrb r3, [r5, #7] @ zero_extendqisi2 + str r3, [r4, #120] + lsl r3, r2, r7 + orr r2, r3, r2, lsl #8 + ldrb r3, [r4, #2068] @ zero_extendqisi2 + orrs r3, r3, r2 + ldrb r2, [r4, #2071] @ zero_extendqisi2 + orr r3, r3, r2, lsl #24 + str r3, [r4, #116] + ldrb r3, [r4, #2230] @ zero_extendqisi2 + strh r3, [r4, #126] @ movhi + ldrb r3, [r5, #13] @ zero_extendqisi2 + strh r8, [r4, #130] @ movhi strh r3, [r4, #128] @ movhi + ldrh r3, [r5, #10] + strh r3, [r4, #132] @ movhi ldrb r1, [r5, #12] @ zero_extendqisi2 ldrh r0, [r5, #10] bl __aeabi_idiv - strh r0, [r4, #130] @ movhi + strh r0, [r4, #134] @ movhi ldrb r2, [r5, #9] @ zero_extendqisi2 - strh r2, [r4, #132] @ movhi + strh r2, [r4, #136] @ movhi ldrb r1, [r5, #9] @ zero_extendqisi2 ldrh r3, [r5, #10] smulbb r3, r1, r3 mov r1, #512 - strh r1, [r4, #136] @ movhi + strh r1, [r4, #140] @ movhi ldrb r1, [r4, #1] @ zero_extendqisi2 - strh r1, [r4, #138] @ movhi + strh r1, [r4, #142] @ movhi uxth r3, r3 ldrb r1, [r4] @ zero_extendqisi2 - strh r3, [r4, #134] @ movhi + strh r3, [r4, #138] @ movhi cmp r1, #1 - bne .L1660 + bne .L1712 lsls r3, r3, #1 - lsrs r1, r7, #1 + lsr r1, r8, #1 lsls r2, r2, #1 - strh r3, [r6, #134] @ movhi - strb r8, [r6, #1] - movs r3, #8 - strh r1, [r6, #126] @ movhi - strh r2, [r6, #132] @ movhi strh r3, [r6, #138] @ movhi -.L1660: + strb r7, [r6, #1] + movs r3, #8 + strh r1, [r6, #130] @ movhi + strh r2, [r6, #136] @ movhi + strh r3, [r6, #142] @ movhi +.L1712: ldrb r0, [r5, #20] @ zero_extendqisi2 bl FlashBchSel bl ftl_flash_suspend movs r0, #0 - b .L1683 -.L1664: + b .L1736 +.L1716: mvn r0, #1 - b .L1683 -.L1640: + b .L1736 +.L1691: cmp r0, #7 -.L1724: - beq .L1665 - ldr r3, .L1727+44 - b .L1642 -.L1619: - strb r6, [r1, #1224] - b .L1618 -.L1683: +.L1779: + beq .L1717 + ldr r3, .L1782+48 + b .L1693 +.L1670: + strb r1, [r2, #1228] + b .L1669 +.L1736: add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1728: +.L1783: .align 2 -.L1727: +.L1782: .word .LANCHOR0 - .word .LC97 + .word .LC98 .word .LANCHOR2 .word .LANCHOR4 .word HynixReadRetrial @@ -10942,7 +11250,8 @@ FlashInit: .word MicronReadRetrial .word ToshibaReadRetrial .word SamsungReadRetrial - .word .LANCHOR2+3472 + .word samsung_read_retrial + .word .LANCHOR2+3476 .word 150000 .word .LANCHOR0+1230 .fnend @@ -10959,58 +11268,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, .L1750 - mov r9, r1 - mov r8, r0 - ldr r3, [r2, #1204] + ldr r2, .L1805 + mov r8, r1 + mov r7, r0 + ldr r3, [r2, #44] mov r5, r2 - ldrb r1, [r2, #140] @ zero_extendqisi2 + ldrb r1, [r2, #144] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 - cbz r1, .L1730 - ldr r2, [r2, #2240] - cbnz r2, .L1729 -.L1730: + cbz r1, .L1785 + ldr r2, [r2, #2248] + cbnz r2, .L1784 +.L1785: subs r2, r3, #5 cmp r2, #2 - bls .L1731 + bls .L1786 + cmp r3, #50 + beq .L1786 cmp r3, #68 - beq .L1731 + beq .L1786 cmp r3, #35 - beq .L1731 + beq .L1786 cmp r3, #19 - bne .L1729 -.L1731: - ldr r10, .L1750+8 - movw r7, #65535 - ldr r6, .L1750+4 -.L1735: - ldr r3, [r5, #1204] + bne .L1784 +.L1786: + ldr r9, .L1805+8 + movw r10, #65535 + ldr r6, .L1805+4 +.L1788: + ldr r3, [r5, #44] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1749 - add r3, r10, r4, lsl #1 - ldrh r3, [r3, #1216] - cmp r3, r7 - bne .L1729 + bls .L1784 + add r3, r9, r4, lsl #1 + ldrh r3, [r3, #1220] + cmp r3, r10 + bne .L1784 movs r1, #255 mov r2, #32768 - ldr r0, [r6, #1208] + ldr r0, [r6, #1212] bl ftl_memset - ldr r2, [r6, #1208] - add r1, r4, r9 + ldr r2, [r6, #1212] + add r1, r4, r8 adds r4, r4, #1 - mov r0, r8 + mov r0, r7 mov r3, r2 uxth r4, r4 bl FlashProgPage - b .L1735 -.L1749: + b .L1788 +.L1784: pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1729: - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1751: +.L1806: .align 2 -.L1750: +.L1805: .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR2 @@ -11025,7 +11334,7 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1802 + ldr r3, .L1857 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r7, #0 @@ -11036,29 +11345,29 @@ FlashReadSlc2KPages: str r1, [sp, #16] str r2, [sp, #20] str r3, [sp, #12] -.L1753: +.L1808: ldr r3, [sp, #16] cmp r7, r3 - beq .L1801 + beq .L1856 ldr r3, [sp, #16] add r2, sp, #28 mov r0, r4 ldr r1, [sp, #20] subs r3, r3, r7 - ldr r8, .L1802+20 + ldr r8, .L1857+20 uxtb r3, r3 str r3, [sp] add r3, sp, #24 mov fp, r8 bl LogAddr2PhyAddr - ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldrb r2, [r8, #2230] @ zero_extendqisi2 ldr r3, [sp, #24] cmp r3, r2 - bcc .L1754 + bcc .L1809 mov r3, #-1 str r3, [r4] - b .L1755 -.L1754: + b .L1810 +.L1809: add r3, r3, r8 mov r9, #0 ldrb r6, [r3, #2232] @ zero_extendqisi2 @@ -11066,7 +11375,7 @@ FlashReadSlc2KPages: bl NandcWaitFlashReady mov r0, r6 bl NandcFlashCs -.L1756: +.L1811: ldr r1, [sp, #28] mov r0, r6 bl FlashReadCmd @@ -11079,36 +11388,36 @@ FlashReadSlc2KPages: ldr r2, [sp, #12] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1802+4 - ldrb r3, [r3, #1224] @ zero_extendqisi2 + ldr r3, .L1857+4 + ldrb r3, [r3, #1228] @ zero_extendqisi2 mov r5, r0 - cbnz r3, .L1757 -.L1760: + cbnz r3, .L1812 +.L1815: adds r3, r5, #1 - beq .L1758 - b .L1759 -.L1757: + beq .L1813 + b .L1814 +.L1812: mov r0, r6 bl flash_read_ecc cmp r0, #5 - bls .L1760 + bls .L1815 mov r5, #256 - b .L1759 -.L1758: + b .L1814 +.L1813: cmp r9, #10 - beq .L1779 + beq .L1834 add r9, r9, #1 - b .L1756 -.L1759: + b .L1811 +.L1814: cmp r9, #0 it ne movne r5, #256 - b .L1761 -.L1779: + b .L1816 +.L1834: mov r5, #256 -.L1761: +.L1816: mov r9, #0 -.L1762: +.L1817: ldr r3, [sp, #28] mov r0, r6 ldr r1, [fp, #4] @@ -11117,114 +11426,114 @@ FlashReadSlc2KPages: mov r0, r6 bl NandcWaitFlashReady ldr r3, [r4, #8] - cbz r3, .L1763 + cbz r3, .L1818 add r3, r3, #2048 -.L1763: +.L1818: ldr r2, [r4, #12] - cbz r2, .L1764 + cbz r2, .L1819 adds r2, r2, #8 -.L1764: +.L1819: str r2, [sp] mov r0, r6 ldr r2, [sp, #12] movs r1, #0 bl NandcXferData - ldr r3, .L1802+4 - ldrb r2, [r3, #1224] @ zero_extendqisi2 + ldr r3, .L1857+4 + ldrb r2, [r3, #1228] @ zero_extendqisi2 mov r10, r0 - cbnz r2, .L1765 -.L1768: + cbnz r2, .L1820 +.L1823: cmp r10, #-1 - beq .L1766 - b .L1767 -.L1765: + beq .L1821 + b .L1822 +.L1820: mov r0, r6 bl flash_read_ecc cmp r0, #5 - bls .L1768 + bls .L1823 mov r10, #256 - b .L1767 -.L1766: + b .L1822 +.L1821: cmp r9, #10 - beq .L1783 + beq .L1838 add r9, r9, #1 - b .L1762 -.L1767: + b .L1817 +.L1822: cmp r9, #0 it ne movne r10, #256 - b .L1769 -.L1783: + b .L1824 +.L1838: mov r10, #256 -.L1769: +.L1824: mov r0, r6 bl NandcFlashDeCs - ldrb r3, [r8, #2304] @ zero_extendqisi2 + ldrb r3, [r8, #2312] @ zero_extendqisi2 cmp r5, r10 add r3, r3, r3, lsl #1 it cc movcc r5, r10 cmp r5, r3, asr #2 - bls .L1770 + bls .L1825 adds r0, r5, #1 it ne movne r5, #256 str r5, [r4] - b .L1772 -.L1770: + b .L1827 +.L1825: movs r3, #0 str r3, [r4] -.L1772: +.L1827: ldr r3, [r4, #12] - cbz r3, .L1773 + cbz r3, .L1828 ldr r2, [r3, #12] adds r2, r2, #1 - bne .L1773 + bne .L1828 ldr r2, [r3, #8] adds r1, r2, #1 - bne .L1773 + bne .L1828 ldr r3, [r3] adds r3, r3, #1 it ne strne r2, [r4] -.L1773: +.L1828: ldr r3, [r4] adds r2, r3, #1 - bne .L1755 + bne .L1810 ldr r1, [r4, #4] - ldr r0, .L1802+8 - ldrb r2, [r8, #2304] @ zero_extendqisi2 + ldr r0, .L1857+8 + ldrb r2, [r8, #2312] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] - cbz r1, .L1775 - ldr r0, .L1802+12 + cbz r1, .L1830 + ldr r0, .L1857+12 movs r2, #4 movs r3, #8 bl rknand_print_hex -.L1775: +.L1830: ldr r1, [r4, #12] - cbz r1, .L1755 + cbz r1, .L1810 movs r2, #4 - ldr r0, .L1802+16 + ldr r0, .L1857+16 mov r3, r2 bl rknand_print_hex -.L1755: +.L1810: adds r7, r7, #1 adds r4, r4, #36 - b .L1753 -.L1801: + b .L1808 +.L1856: movs r0, #0 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1803: +.L1858: .align 2 -.L1802: +.L1857: .word .LANCHOR1 .word .LANCHOR4 - .word .LC98 .word .LC99 .word .LC100 + .word .LC101 .word .LANCHOR0 .fnend .size FlashReadSlc2KPages, .-FlashReadSlc2KPages @@ -11237,31 +11546,31 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1903 + ldr r3, .L1958 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, #481] @ zero_extendqisi2 mov r10, r0 - ldr r5, .L1903+4 + ldr r5, .L1958+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, .L1847 + cbz r3, .L1902 bl FlashReadSlc2KPages - b .L1898 -.L1847: + b .L1953 +.L1902: mov r8, r3 str r3, [sp, #12] -.L1805: +.L1860: ldr r3, [sp, #12] ldr r2, [sp, #28] cmp r3, r2 - bcs .L1900 + bcs .L1955 ldr r3, [sp, #12] mov r9, #36 ldr r2, [sp, #12] @@ -11277,85 +11586,85 @@ FlashReadPages: str r3, [sp] add r3, sp, #40 bl LogAddr2PhyAddr - ldrb r2, [r5, #2229] @ zero_extendqisi2 + ldrb r2, [r5, #2230] @ zero_extendqisi2 ldr r3, [sp, #40] mov r6, r0 cmp r3, r2 - bcc .L1807 + bcc .L1862 mov r3, #-1 str r3, [r10, r9] - b .L1808 -.L1807: + b .L1863 +.L1862: add r3, r3, r5 ldrb r4, [r3, #2232] @ zero_extendqisi2 - ldr r3, .L1903+8 + ldr r3, .L1958+8 mov r0, r4 - ldrb r3, [r3, #1225] @ zero_extendqisi2 + ldrb r3, [r3, #1229] @ zero_extendqisi2 cmp r3, #0 it eq moveq r6, #0 bl NandcWaitFlashReady - ldr r3, .L1903+4 - ldr r3, [r3, #1204] + ldr r3, .L1958+4 + ldr r3, [r3, #44] ldrb r2, [r3, #19] @ zero_extendqisi2 subs r3, r2, #1 cmp r3, #7 - bhi .L1810 + bhi .L1865 subs r2, r2, #7 adds r1, r5, r4 cmp r2, #1 - ldr r2, .L1903+4 + ldr r2, .L1958+4 ldrb r3, [r1, #1222] @ zero_extendqisi2 add r2, r2, r4 it ls ldrbls r3, [r1, #1230] @ zero_extendqisi2 ldrb r2, [r2, #2064] @ zero_extendqisi2 cmp r2, r3 - beq .L1810 + beq .L1865 mov r0, r4 ldrb r1, [r5, #1211] @ zero_extendqisi2 - ldr r2, .L1903+12 + ldr r2, .L1958+12 bl HynixSetRRPara -.L1810: +.L1865: mov r0, r4 and r3, fp, #-2147483648 str r3, [sp, #20] bl NandcFlashCs ldr r3, [sp, #16] cmp r3, #1 - beq .L1812 + beq .L1867 ldr r3, [sp, #20] - cbz r3, .L1813 -.L1812: - ldr r3, .L1903+4 - ldrb r3, [r3, #140] @ zero_extendqisi2 - cbz r3, .L1813 + cbz r3, .L1868 +.L1867: + ldr r3, .L1958+4 + ldrb r3, [r3, #144] @ zero_extendqisi2 + cbz r3, .L1868 mov r0, r4 bl flash_enter_slc_mode -.L1815: +.L1870: mov fp, #0 - b .L1814 -.L1813: + b .L1869 +.L1868: mov r0, r4 bl flash_exit_slc_mode - b .L1815 -.L1901: + b .L1870 +.L1956: cmp r4, #255 - beq .L1848 -.L1816: - cbz r6, .L1818 + beq .L1903 +.L1871: + cbz r6, .L1873 ldr r2, [r5, #4] mov r0, r4 add r2, r2, r1 bl FlashReadDpCmd -.L1819: +.L1874: mov r0, r4 bl NandcWaitFlashReady - cbz r6, .L1817 + cbz r6, .L1872 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1817: +.L1872: ldr r3, [r7, #12] mov r0, r4 movs r1, #0 @@ -11365,27 +11674,27 @@ FlashReadPages: bl NandcXferData ldrb r3, [r5, #8] @ zero_extendqisi2 mov ip, r0 - cbz r3, .L1850 + cbz r3, .L1905 cmp r0, #-1 - bne .L1850 + bne .L1905 movs r6, #0 strb fp, [r5, #8] -.L1814: +.L1869: ldr r1, [sp, #44] adds r0, r1, #1 - bne .L1816 - b .L1901 -.L1818: + bne .L1871 + b .L1956 +.L1873: mov r0, r4 bl FlashReadCmd - b .L1819 -.L1848: + b .L1874 +.L1903: movs r6, #0 - b .L1817 -.L1850: + b .L1872 +.L1905: mov fp, ip - cbz r6, .L1821 - ldr r3, .L1903+4 + cbz r6, .L1876 + ldr r3, .L1958+4 mov r0, r4 str ip, [sp, #36] ldr r1, [r3, #4] @@ -11406,7 +11715,7 @@ FlashReadPages: it eq moveq r6, #0 mov r8, r0 -.L1821: +.L1876: mov r0, r4 str ip, [sp, #36] bl NandcFlashDeCs @@ -11414,16 +11723,16 @@ FlashReadPages: ldrb r3, [sp, #32] @ zero_extendqisi2 cmp ip, #-1 strb r3, [r5, #8] - bne .L1828 - ldrb r3, [r5, #2244] @ zero_extendqisi2 - cbnz r3, .L1823 -.L1827: - ldr r3, .L1903+8 - ldr r6, [r3, #1188] - cbnz r6, .L1824 - b .L1902 -.L1823: - ldr r3, [r5, #76] + bne .L1883 + ldrb r3, [r5, #2252] @ zero_extendqisi2 + cbnz r3, .L1878 +.L1882: + ldr r3, .L1958+8 + ldr r6, [r3, #1192] + cbnz r6, .L1879 + b .L1957 +.L1878: + ldr r3, [r5, #80] mov r0, r4 ldr r1, [sp, #44] ldr r6, [r3, #304] @@ -11434,17 +11743,17 @@ FlashReadPages: bl FlashDdrTunningRead cmp r0, #-1 mov fp, r0 - beq .L1826 - ldrb r3, [r5, #2304] @ zero_extendqisi2 + beq .L1881 + ldrb r3, [r5, #2312] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1852 -.L1826: + bls .L1907 +.L1881: ubfx r0, r6, #8, #8 bl NandcSetDdrPara cmp fp, #-1 - beq .L1827 - b .L1852 -.L1824: + beq .L1882 + b .L1907 +.L1879: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] @@ -11452,161 +11761,161 @@ FlashReadPages: blx r6 cmp r0, #-1 mov fp, r0 - bne .L1829 - ldr r3, [r5, #1204] + bne .L1884 + ldr r3, [r5, #44] ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #1 cmp r3, #7 - bhi .L1830 + bhi .L1885 mov r0, r4 ldrb r1, [r5, #1211] @ zero_extendqisi2 - ldr r2, .L1903+12 + ldr r2, .L1958+12 movs r3, #0 bl HynixSetRRPara -.L1830: +.L1885: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage ldr r1, [r7, #4] - ldrb r2, [r5, #2304] @ zero_extendqisi2 + ldrb r2, [r5, #2312] @ zero_extendqisi2 mov fp, r0 - ldr r0, .L1903+16 + ldr r0, .L1958+16 mov r3, fp bl printk cmp fp, #-1 - bne .L1829 - ldrb r6, [r5, #140] @ zero_extendqisi2 - cbz r6, .L1831 + bne .L1884 + ldrb r6, [r5, #144] @ zero_extendqisi2 + cbz r6, .L1886 ldr r3, [sp, #16] mov r0, r4 cmp r3, #1 - beq .L1832 + beq .L1887 ldr r3, [sp, #20] - cbz r3, .L1833 -.L1832: + cbz r3, .L1888 +.L1887: bl flash_enter_slc_mode - b .L1834 -.L1833: + b .L1889 +.L1888: bl flash_exit_slc_mode -.L1834: - ldr r3, .L1903+8 +.L1889: + ldr r3, .L1958+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] - ldr r6, [r3, #1188] + ldr r6, [r3, #1192] ldr r3, [r7, #12] blx r6 movs r6, #0 mov fp, r0 - b .L1835 -.L1902: + b .L1890 +.L1957: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage mov fp, r0 - b .L1835 -.L1852: + b .L1890 +.L1907: movs r6, #0 -.L1828: - ldrb r3, [r5, #2304] @ zero_extendqisi2 +.L1883: + ldrb r3, [r5, #2312] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp fp, r3, asr #2 - bls .L1837 - ldr r3, .L1903+8 - ldr r3, [r3, #1188] - cbz r3, .L1854 -.L1835: + bls .L1892 + ldr r3, .L1958+8 + ldr r3, [r3, #1192] + cbz r3, .L1909 +.L1890: cmp fp, #-1 - beq .L1831 - b .L1837 -.L1854: + beq .L1886 + b .L1892 +.L1909: mov fp, #256 -.L1831: +.L1886: str fp, [r10, r9] - b .L1838 -.L1904: + b .L1893 +.L1959: .align 2 -.L1903: +.L1958: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR0+1214 - .word .LC101 -.L1829: + .word .LC102 +.L1884: movs r6, #0 -.L1837: +.L1892: cmp fp, #256 - beq .L1831 + beq .L1886 movs r3, #0 str r3, [r10, r9] -.L1838: +.L1893: ldr r3, [r10, r9] adds r2, r3, #1 - bne .L1840 + bne .L1895 ldr r1, [r7, #4] - ldr r0, .L1905 - ldrb r2, [r5, #2304] @ zero_extendqisi2 + ldr r0, .L1960 + ldrb r2, [r5, #2312] @ zero_extendqisi2 bl printk ldr r1, [r7, #12] - cbz r1, .L1840 + cbz r1, .L1895 movs r2, #4 - ldr r0, .L1905+4 + ldr r0, .L1960+4 mov r3, r2 bl rknand_print_hex -.L1840: - cbz r6, .L1842 - ldrb r3, [r5, #2304] @ zero_extendqisi2 +.L1895: + cbz r6, .L1897 + ldrb r3, [r5, #2312] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r8, r3, asr #2 - bls .L1843 - ldr r3, .L1905+8 - ldr r3, [r3, #1188] + bls .L1898 + ldr r3, .L1960+8 + ldr r3, [r3, #1192] cmp r3, #0 it eq moveq r8, #256 -.L1843: +.L1898: add r9, r9, #36 cmp r8, #-1 str r8, [r10, r9] - beq .L1842 + beq .L1897 cmp r8, #256 itt ne movne r3, #0 strne r3, [r10, r9] -.L1842: +.L1897: ldr r3, [sp, #12] add r3, r3, r6 str r3, [sp, #12] ldr r3, [sp, #16] cmp r3, #1 - beq .L1844 + beq .L1899 ldr r3, [sp, #20] - cbz r3, .L1808 -.L1844: - ldrb r3, [r5, #140] @ zero_extendqisi2 - cbz r3, .L1808 + cbz r3, .L1863 +.L1899: + ldrb r3, [r5, #144] @ zero_extendqisi2 + cbz r3, .L1863 mov r0, r4 bl flash_exit_slc_mode -.L1808: +.L1863: ldr r3, [sp, #12] adds r3, r3, #1 str r3, [sp, #12] - b .L1805 -.L1900: + b .L1860 +.L1955: movs r0, #0 -.L1898: +.L1953: add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1906: +.L1961: .align 2 -.L1905: - .word .LC98 - .word .LC100 +.L1960: + .word .LC99 + .word .LC101 .word .LANCHOR4 .fnend .size FlashReadPages, .-FlashReadPages @@ -11622,37 +11931,37 @@ FlashLoadFactorBbt: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r1, #0 - ldr r7, .L1919 + ldr r7, .L1974 .pad #52 sub sp, sp, #52 - ldr r4, .L1919+4 + ldr r4, .L1974+4 movs r2, #16 movs r5, #0 mov fp, #-1 - ldrh r3, [r7, #126] - addw r0, r4, #1228 - ldrh r6, [r7, #124] + ldrh r3, [r7, #130] + add r0, r4, #1232 + ldrh r6, [r7, #128] mov r10, r5 mov r8, r7 mov r9, r4 smulbb r6, r6, r3 bl ftl_memset - ldr r3, [r4, #1212] + ldr r3, [r4, #1216] uxth r6, r6 str r5, [sp, #20] str r3, [sp, #24] -.L1908: - ldrb r3, [r8, #2229] @ zero_extendqisi2 +.L1963: + ldrb r3, [r8, #2230] @ zero_extendqisi2 uxtb r7, r5 cmp r3, r7 - bls .L1918 + bls .L1973 mul ip, r6, r7 subs r4, r6, #1 sub r3, r6, #12 uxth r4, r4 -.L1909: +.L1964: cmp r4, r3 - ble .L1911 + ble .L1966 add r2, ip, r4 movs r1, #1 add r0, sp, #12 @@ -11666,44 +11975,44 @@ FlashLoadFactorBbt: ldr ip, [sp] adds r2, r2, #1 ldr r3, [sp, #4] - beq .L1910 - ldr r2, [r9, #1212] + beq .L1965 + ldr r2, [r9, #1216] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L1910 + bne .L1965 mov r1, r7 - ldr r0, .L1919+8 + ldr r0, .L1974+8 mov r2, r4 add r10, r10, #1 bl printk - ldr r3, .L1919+4 + ldr r3, .L1974+4 uxth r10, r10 add r7, r3, r7, lsl #1 - strh r4, [r7, #1228] @ movhi - b .L1911 -.L1910: + strh r4, [r7, #1232] @ movhi + b .L1966 +.L1965: subs r4, r4, #1 uxth r4, r4 - b .L1909 -.L1911: - ldrb r3, [r8, #2229] @ zero_extendqisi2 + b .L1964 +.L1966: + ldrb r3, [r8, #2230] @ zero_extendqisi2 adds r5, r5, #1 cmp r3, r10 it eq moveq fp, #0 - b .L1908 -.L1918: + b .L1963 +.L1973: mov r0, fp add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1920: +.L1975: .align 2 -.L1919: +.L1974: .word .LANCHOR0 .word .LANCHOR4 - .word .LC102 + .word .LC103 .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 1 @@ -11715,25 +12024,24 @@ FlashProgSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L2005 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + movs r6, #0 + ldr r8, .L2005+24 .pad #68 sub sp, sp, #68 - ldr r8, .L1951+20 - movs r7, #0 - str r3, [sp, #12] - mov r6, r1 - ldr r3, .L1951 + ldrb r3, [r3, #481] @ zero_extendqisi2 + mov r7, r1 mov r9, r2 mov r4, r0 mov r10, r0 mov fp, r8 - ldrb r3, [r3, #481] @ zero_extendqisi2 - str r3, [sp, #8] -.L1922: - cmp r7, r6 - beq .L1950 - subs r3, r6, r7 + str r3, [sp, #12] +.L1977: + cmp r6, r7 + beq .L2003 + subs r3, r7, r6 add r2, sp, #20 mov r0, r10 mov r1, r9 @@ -11741,14 +12049,14 @@ FlashProgSlc2KPages: str r3, [sp] add r3, sp, #24 bl LogAddr2PhyAddr - ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldrb r2, [r8, #2230] @ zero_extendqisi2 ldr r3, [sp, #24] cmp r3, r2 - bcc .L1923 + bcc .L1978 mov r3, #-1 str r3, [r10] - b .L1924 -.L1923: + b .L1979 +.L1978: add r3, r3, r8 ldrb r5, [r3, #2232] @ zero_extendqisi2 mov r0, r5 @@ -11761,7 +12069,7 @@ FlashProgSlc2KPages: ldr r3, [r10, #12] movs r1, #1 mov r0, r5 - ldr r2, [sp, #8] + ldr r2, [sp, #12] str r3, [sp] ldr r3, [r10, #8] bl NandcXferData @@ -11781,16 +12089,16 @@ FlashProgSlc2KPages: add r1, r1, r3 bl FlashProgFirstCmd ldr r3, [r10, #8] - cbz r3, .L1925 + cbz r3, .L1980 add r3, r3, #2048 -.L1925: +.L1980: ldr r2, [r10, #12] - cbz r2, .L1926 + cbz r2, .L1981 adds r2, r2, #8 -.L1926: +.L1981: str r2, [sp] movs r1, #1 - ldr r2, [sp, #8] + ldr r2, [sp, #12] mov r0, r5 bl NandcXferData ldr r1, [fp, #4] @@ -11809,107 +12117,113 @@ FlashProgSlc2KPages: movmi r3, #-1 strmi r3, [r10] bl NandcFlashDeCs -.L1924: - adds r7, r7, #1 +.L1979: + adds r6, r6, #1 add r10, r10, #36 - b .L1922 -.L1950: - ldr r3, [sp, #12] - cmp r3, #0 - beq .L1949 - ldr r8, .L1951+24 + b .L1977 +.L2003: + ldr r8, .L2005+28 mov r10, #0 mov fp, r8 -.L1929: - cmp r10, r6 - beq .L1949 +.L1984: + cmp r10, r7 + beq .L2004 ldr r3, [r4] adds r3, r3, #1 - bne .L1930 + bne .L1985 ldr r1, [r4, #4] - ldr r0, .L1951+4 + ldr r0, .L2005+4 bl printk - b .L1931 -.L1930: - rsb r3, r10, r6 + b .L1986 +.L1985: + rsb r3, r10, r7 mov r1, r9 add r2, sp, #20 mov r0, r4 uxtb r3, r3 str r3, [sp] add r3, sp, #24 - mov r7, r4 + mov r6, r4 bl LogAddr2PhyAddr - ldr r2, [r8, #1216] + ldr r2, [r8, #1220] movs r3, #0 str r3, [r2] - ldr r2, [r8, #1220] + ldr r2, [r8, #1224] str r3, [r2] - ldmia r7!, {r0, r1, r2, r3} + ldmia r6!, {r0, r1, r2, r3} add r5, sp, #28 stmia r5!, {r0, r1, r2, r3} - ldmia r7!, {r0, r1, r2, r3} + ldmia r6!, {r0, r1, r2, r3} stmia r5!, {r0, r1, r2, r3} add r0, sp, #28 - ldr r3, [r7] + ldr r3, [r6] movs r1, #1 mov r2, r9 str r3, [r5] - ldr r3, [r8, #1216] - str r3, [sp, #36] ldr r3, [r8, #1220] + str r3, [sp, #36] + ldr r3, [r8, #1224] str r3, [sp, #40] bl FlashReadPages ldr r5, [sp, #28] adds r3, r5, #1 - bne .L1932 - ldr r0, .L1951+8 + bne .L1987 + ldr r0, .L2005+8 ldr r1, [r4, #4] bl printk str r5, [r4] -.L1932: +.L1987: + ldr r5, [sp, #28] + cmp r5, #256 + bne .L1988 + ldr r0, .L2005+12 + ldr r1, [r4, #4] + bl printk + str r5, [r4] +.L1988: ldr r3, [r4, #12] - cbz r3, .L1933 + cbz r3, .L1989 + ldr r2, [r3] + ldr r3, [fp, #1224] + ldr r3, [r3] + cmp r2, r3 + beq .L1989 + ldr r0, .L2005+16 + ldr r1, [r4, #4] + bl printk + mov r3, #-1 + str r3, [r4] +.L1989: + ldr r3, [r4, #8] + cbz r3, .L1986 ldr r2, [r3] ldr r3, [fp, #1220] ldr r3, [r3] cmp r2, r3 - beq .L1933 - ldr r0, .L1951+12 + beq .L1986 + ldr r0, .L2005+20 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L1933: - ldr r3, [r4, #8] - cbz r3, .L1931 - ldr r2, [r3] - ldr r3, [fp, #1216] - ldr r3, [r3] - cmp r2, r3 - beq .L1931 - ldr r0, .L1951+16 - ldr r1, [r4, #4] - bl printk - mov r3, #-1 - str r3, [r4] -.L1931: +.L1986: add r10, r10, #1 adds r4, r4, #36 - b .L1929 -.L1949: + b .L1984 +.L2004: movs r0, #0 add sp, sp, #68 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1952: +.L2006: .align 2 -.L1951: +.L2005: .word .LANCHOR1 - .word .LC103 .word .LC104 .word .LC105 .word .LC106 + .word .LC107 + .word .LC108 .word .LANCHOR0 .word .LANCHOR4 .fnend @@ -11926,62 +12240,62 @@ 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 r3, .L1964 - ldr r7, .L1964+4 - ldr r5, .L1964+8 - ldr r2, [r3, #3312] - subw r8, r7, #2458 - ldr r9, [r3, #3336] + ldr r3, .L2018 + ldr r7, .L2018+4 + ldr r5, .L2018+8 + ldr r2, [r3, #3316] + subw r8, r7, #2462 + ldr r9, [r3, #3340] mov r10, r8 - str r2, [r5, #1252] - str r9, [r5, #1256] -.L1954: - ldrh r3, [r8, #2338] + str r2, [r5, #1256] + str r9, [r5, #1260] +.L2008: + ldrh r3, [r8, #2342] cmp r6, r3 - bcs .L1963 - ldrh r4, [r8, #2382] + bcs .L2017 + ldrh r4, [r8, #2386] movw fp, #61664 movw r3, #65535 strh r3, [r7, #2]! @ movhi subs r4, r4, #1 uxth r4, r4 -.L1955: - ldrh r3, [r10, #2382] +.L2009: + ldrh r3, [r10, #2386] sub r2, r3, #16 cmp r4, r2 - ble .L1957 + ble .L2011 mla r3, r3, r6, r4 movs r1, #1 - ldr r0, .L1964+12 + ldr r0, .L2018+12 mov r2, r1 lsls r3, r3, #10 - str r3, [r5, #1248] + str r3, [r5, #1252] bl FlashReadPages - ldr r3, [r5, #1244] + ldr r3, [r5, #1248] adds r3, r3, #1 - beq .L1956 + beq .L2010 ldrh r3, [r9] cmp r3, fp - bne .L1956 + bne .L2010 strh r4, [r7] @ movhi - b .L1957 -.L1956: + b .L2011 +.L2010: subs r4, r4, #1 uxth r4, r4 - b .L1955 -.L1957: + b .L2009 +.L2011: adds r6, r6, #1 - b .L1954 -.L1963: + b .L2008 +.L2017: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1965: +.L2019: .align 2 -.L1964: +.L2018: .word .LANCHOR2 - .word .LANCHOR0+2458 + .word .LANCHOR0+2462 .word .LANCHOR4 - .word .LANCHOR4+1244 + .word .LANCHOR4+1248 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 1 @@ -11993,17 +12307,17 @@ FtlGetLastWrittenPage: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1977 + ldr r3, .L2031 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, #2386] + ldrheq r4, [r3, #2390] mov r8, r1 it ne - ldrhne r4, [r3, #2384] + ldrhne r4, [r3, #2388] lsls r6, r0, #10 add r3, sp, #40 add r0, sp, #4 @@ -12020,12 +12334,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] adds r3, r3, #1 - bne .L1969 -.L1970: + bne .L2023 +.L2024: sxth r3, r7 sxth r4, r5 cmp r3, r4 - bgt .L1969 + bgt .L2023 add r4, r4, r3 add r0, sp, #4 movs r1, #1 @@ -12038,28 +12352,28 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] adds r3, r3, #1 - bne .L1971 + bne .L2025 ldr r3, [sp, #44] adds r3, r3, #1 - bne .L1971 + bne .L2025 ldr r3, [sp, #4] adds r3, r3, #1 - beq .L1971 + beq .L2025 subs r4, r4, #1 uxth r5, r4 - b .L1970 -.L1971: + b .L2024 +.L2025: adds r3, r4, #1 uxth r7, r3 - b .L1970 -.L1969: + b .L2024 +.L2023: sxth r0, r5 add sp, sp, #104 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1978: +.L2032: .align 2 -.L1977: +.L2031: .word .LANCHOR0 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -12074,168 +12388,168 @@ FtlLoadBbt: @ 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 r8, .L2008+16 - ldr r4, .L2008 - ldr r5, .L2008+4 - ldr r3, [r8, #3312] - ldr r7, [r8, #3336] + ldr r8, .L2062+16 + ldr r4, .L2062 + ldr r5, .L2062+4 + ldr r3, [r8, #3316] + ldr r7, [r8, #3340] mov r9, r4 - str r3, [r4, #1252] - str r7, [r4, #1256] + str r3, [r4, #1256] + str r7, [r4, #1260] bl FtlBbtMemInit - ldrh r6, [r5, #2382] + ldrh r6, [r5, #2386] subs r6, r6, #1 uxth r6, r6 -.L1980: - ldrh r3, [r5, #2382] +.L2034: + ldrh r3, [r5, #2386] subs r3, r3, #48 cmp r6, r3 - ble .L1983 + ble .L2037 movs r1, #1 - ldr r0, .L2008+8 + ldr r0, .L2062+8 lsls r3, r6, #10 - str r3, [r4, #1248] + str r3, [r4, #1252] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #1244] + ldr r3, [r4, #1248] adds r3, r3, #1 - bne .L1981 + bne .L2035 movs r1, #1 - ldr r3, [r9, #1248] - ldr r0, .L2008+8 + ldr r3, [r9, #1252] + ldr r0, .L2062+8 mov r2, r1 adds r3, r3, #1 - str r3, [r9, #1248] + str r3, [r9, #1252] bl FlashReadPages -.L1981: - ldr r3, [r4, #1244] +.L2035: + ldr r3, [r4, #1248] adds r3, r3, #1 - beq .L1982 + beq .L2036 ldrh r2, [r7] movw r3, #61649 cmp r2, r3 - bne .L1982 + bne .L2036 ldr r3, [r7, #4] - strh r6, [r5, #2448] @ movhi - str r3, [r5, #2456] + strh r6, [r5, #2452] @ movhi + str r3, [r5, #2460] ldrh r3, [r7, #8] - strh r3, [r5, #2452] @ movhi - b .L1983 -.L1982: + strh r3, [r5, #2456] @ movhi + b .L2037 +.L2036: subs r6, r6, #1 uxth r6, r6 - b .L1980 -.L1983: - ldrh r3, [r5, #2448] + b .L2034 +.L2037: + ldrh r3, [r5, #2452] movw r2, #65535 - ldr r6, .L2008+4 + ldr r6, .L2062+4 cmp r3, r2 - beq .L1997 - ldrh r3, [r6, #2452] + beq .L2051 + ldrh r3, [r6, #2456] cmp r3, r2 - beq .L1987 + beq .L2041 movs r1, #1 - ldr r0, .L2008+8 + ldr r0, .L2062+8 lsls r3, r3, #10 - str r3, [r4, #1248] + str r3, [r4, #1252] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #1244] + ldr r3, [r4, #1248] adds r3, r3, #1 - beq .L1987 + beq .L2041 ldrh r2, [r7] movw r3, #61649 cmp r2, r3 - bne .L1987 + bne .L2041 ldr r3, [r7, #4] - ldr r2, [r6, #2456] + ldr r2, [r6, #2460] cmp r3, r2 itttt hi - strhi r3, [r6, #2456] - ldrhhi r2, [r6, #2452] + strhi r3, [r6, #2460] + ldrhhi r2, [r6, #2456] ldrhhi r3, [r7, #8] - strhhi r2, [r6, #2448] @ movhi + strhhi r2, [r6, #2452] @ movhi it hi - strhhi r3, [r6, #2452] @ movhi -.L1987: - ldrh r0, [r5, #2448] + strhhi r3, [r6, #2456] @ movhi +.L2041: + ldrh r0, [r5, #2452] movs r1, #1 bl FtlGetLastWrittenPage movw r9, #61649 uxth r6, r0 adds r0, r0, #1 - strh r0, [r5, #2450] @ movhi -.L1989: + strh r0, [r5, #2454] @ movhi +.L2043: sxth r3, r6 cmp r3, #0 - blt .L1994 - ldrh r2, [r5, #2448] + blt .L2048 + ldrh r2, [r5, #2452] movs r1, #1 - ldr r0, .L2008+8 + ldr r0, .L2062+8 orr r3, r3, r2, lsl #10 - str r3, [r4, #1248] - ldr r3, [r8, #3312] - mov r2, r1 str r3, [r4, #1252] + ldr r3, [r8, #3316] + mov r2, r1 + str r3, [r4, #1256] bl FlashReadPages - ldr r3, [r4, #1244] + ldr r3, [r4, #1248] adds r3, r3, #1 - beq .L1990 + beq .L2044 ldrh r3, [r7] cmp r3, r9 - bne .L1990 -.L1994: + bne .L2044 +.L2048: ldrh r2, [r7, #10] ldrh r0, [r7, #12] - ldr r3, .L2008+4 - strh r2, [r5, #2454] @ movhi + ldr r3, .L2062+4 + strh r2, [r5, #2458] @ movhi movw r2, #65535 cmp r0, r2 - bne .L1991 - b .L1992 -.L1990: + bne .L2045 + b .L2046 +.L2044: subs r6, r6, #1 uxth r6, r6 - b .L1989 -.L1991: - ldr r2, [r3, #2312] + b .L2043 +.L2045: + ldr r2, [r3, #2316] cmp r0, r2 - beq .L1992 - ldrh r3, [r3, #2326] + beq .L2046 + ldrh r3, [r3, #2330] lsrs r3, r3, #2 cmp r2, r3 - bcs .L1992 + bcs .L2046 cmp r0, r3 - bcs .L1992 + bcs .L2046 bl FtlSysBlkNumInit -.L1992: - ldr r7, .L2008+12 +.L2046: + ldr r7, .L2062+12 movs r6, #0 -.L1995: - ldrh r3, [r5, #2338] +.L2049: + ldrh r3, [r5, #2342] cmp r6, r3 - bcs .L2007 - ldrh r2, [r8, #3400] - ldr r1, [r4, #1252] + bcs .L2061 + ldrh r2, [r8, #3404] + ldr r1, [r4, #1256] ldr r0, [r7, #4]! lsls r2, r2, #2 mla r1, r6, r2, r1 bl ftl_memcpy adds r6, r6, #1 - b .L1995 -.L2007: + b .L2049 +.L2061: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1997: +.L2051: mov r0, #-1 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L2009: +.L2063: .align 2 -.L2008: +.L2062: .word .LANCHOR4 .word .LANCHOR0 - .word .LANCHOR4+1244 - .word .LANCHOR0+2472 + .word .LANCHOR4+1248 + .word .LANCHOR0+2476 .word .LANCHOR2 .fnend .size FtlLoadBbt, .-FtlLoadBbt @@ -12251,64 +12565,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, .L2095 + ldr r5, .L2149 .pad #36 sub sp, sp, #36 - ldr r4, .L2095+4 + ldr r4, .L2149+4 mov r1, r6 - ldr r2, [r5, #2412] - ldr r0, [r4, #3392] + ldr r2, [r5, #2416] + ldr r0, [r4, #3396] mov r9, r4 - strh r6, [r5, #2430] @ movhi + strh r6, [r5, #2434] @ movhi lsls r2, r2, #2 - strh r6, [r4, #3448] @ movhi + strh r6, [r4, #3452] @ movhi bl ftl_memset - ldr r2, [r5, #2412] + ldr r2, [r5, #2416] mov r1, r6 - ldr r0, [r4, #3364] + ldr r0, [r4, #3368] lsls r2, r2, #1 bl ftl_memset - ldrh r2, [r5, #2404] + ldrh r2, [r5, #2408] mov r1, r6 - ldr r0, [r4, #3376] + ldr r0, [r4, #3380] lsls r2, r2, #2 bl ftl_memset - ldrh r2, [r5, #2404] - ldr r0, [r5, #2432] + ldrh r2, [r5, #2408] + ldr r0, [r5, #2436] mov r1, r6 lsls r2, r2, #1 bl ftl_memset - add r0, r4, #536 + add r0, r4, #540 movs r1, #255 movs r2, #16 bl ftl_memset - ldrh r3, [r5, #2324] + ldrh r3, [r5, #2328] str r5, [sp, #12] mov r5, r4 str r3, [sp, #4] -.L2011: - ldr r6, .L2095 +.L2065: + ldr r6, .L2149 ldr r2, [sp, #4] - ldrh r3, [r6, #2326] + ldrh r3, [r6, #2330] mov r0, r6 cmp r3, r2 - bls .L2053 - ldr r1, [r4, #1144] + bls .L2107 + ldr r1, [r4, #1148] mov r10, #36 - ldrh r8, [r6, #2316] + ldrh r8, [r6, #2320] movs r7, #0 - ldr r2, [r4, #3300] + ldr r2, [r4, #3304] str r1, [sp, #8] - ldr r3, [r4, #1140] - ldrh r1, [r6, #2396] + ldr r3, [r4, #1144] + ldrh r1, [r6, #2400] str r7, [sp] str r1, [sp, #16] - addw r1, r6, #2344 + addw r1, r6, #2348 str r1, [sp, #20] -.L2054: +.L2108: uxth r1, r7 cmp r1, r8 - bcs .L2090 + bcs .L2144 str r3, [sp, #28] ldr r3, [sp, #20] ldr r1, [sp, #4] @@ -12319,7 +12633,7 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr r2, [sp, #24] ldr r3, [sp, #28] - cbnz r0, .L2012 + cbnz r0, .L2066 ldr r1, [sp] ldr r6, [sp] mla r0, r10, r1, r2 @@ -12338,40 +12652,40 @@ FtlScanSysBlk: adds r1, r1, #1 uxth r1, r1 str r1, [sp] -.L2012: +.L2066: adds r7, r7, #1 - b .L2054 -.L2090: + b .L2108 +.L2144: ldr r3, [sp] cmp r3, #0 - beq .L2016 + beq .L2070 mov r1, r3 - ldr r0, [r4, #3300] + ldr r0, [r4, #3304] movs r2, #1 - ldr r8, .L2095 + ldr r8, .L2149 bl FlashReadPages movs r3, #0 str r3, [sp, #8] -.L2017: +.L2071: ldrh r3, [sp, #8] ldr r2, [sp] cmp r3, r2 - bcs .L2016 + bcs .L2070 ldr r3, [sp, #8] mov r10, #36 mul r10, r10, r3 - ldr r3, [r4, #3300] + ldr r3, [r4, #3304] add r2, r3, r10 ldr r3, [r3, r10] ldr r6, [r2, #4] adds r3, r3, #1 ldr r7, [r2, #12] ubfx r6, r6, #10, #16 - bne .L2019 + bne .L2073 mov fp, #16 movw r3, #65535 -.L2018: - ldr r0, [r4, #3300] +.L2072: + ldr r0, [r4, #3304] movs r1, #1 str r3, [sp, #16] add r0, r0, r10 @@ -12383,69 +12697,69 @@ FtlScanSysBlk: ldrh r2, [r7] ldr r3, [sp, #16] cmp r2, r3 - bne .L2020 - ldr r3, [r9, #3300] + bne .L2074 + ldr r3, [r9, #3304] mov r2, #-1 str r2, [r3, r10] - b .L2019 -.L2020: - ldr r2, [r5, #3300] + b .L2073 +.L2074: + ldr r2, [r5, #3304] ldr r2, [r2, r10] adds r2, r2, #1 - bne .L2019 + bne .L2073 add fp, fp, #-1 uxth fp, fp cmp fp, #0 - bne .L2018 -.L2019: - ldr r3, [r5, #3300] + bne .L2072 +.L2073: + ldr r3, [r5, #3304] ldr r3, [r3, r10] adds r3, r3, #1 - beq .L2022 - ldr r2, [r5, #504] + beq .L2076 + ldr r2, [r5, #508] ldr r3, [r7, #4] adds r1, r2, #1 - beq .L2023 + beq .L2077 cmp r2, r3 - bhi .L2024 -.L2023: + bhi .L2078 +.L2077: adds r2, r3, #1 itt ne addne r2, r3, #1 - strne r2, [r9, #504] -.L2024: + strne r2, [r9, #508] +.L2078: ldrh r2, [r7] movw r1, #61604 cmp r2, r1 - beq .L2026 - bhi .L2027 + beq .L2080 + bhi .L2081 movw r3, #61574 cmp r2, r3 - bne .L2025 + bne .L2079 ldr r3, [sp, #12] ldr r2, [sp, #12] - ldrh r10, [r3, #2404] - ldrh r0, [r2, #2430] - ldr r2, [r9, #3376] + ldrh r10, [r3, #2408] + ldrh r0, [r2, #2434] + ldr r2, [r9, #3380] add lr, r10, #-1 uxth r3, lr rsb lr, r0, lr str r2, [sp, #16] - b .L2040 -.L2027: + b .L2094 +.L2081: movw r3, #61634 cmp r2, r3 - beq .L2029 + beq .L2083 movw r3, #65535 cmp r2, r3 - bne .L2025 + bne .L2079 mov r0, r6 - b .L2089 -.L2029: + b .L2143 +.L2083: ldr r3, [sp, #12] - ldrh r0, [r4, #3448] - ldr r2, [r4, #3392] - ldr r1, [r3, #2412] + ldrh r0, [r4, #3452] + ldr r2, [r4, #3396] + ldr r1, [r3, #2416] str r2, [sp, #16] uxth lr, r1 add r3, lr, #-1 @@ -12453,279 +12767,279 @@ FtlScanSysBlk: add lr, lr, #-1 uxth r3, r3 sxth lr, lr -.L2031: +.L2085: sxth ip, r3 cmp ip, lr - ble .L2091 + ble .L2145 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 .L2032 + bls .L2086 ldr r2, [sp, #16] ldr r2, [r2] - cbnz r2, .L2033 + cbnz r2, .L2087 cmp r0, r1 itt ne addne r0, r0, #1 - strhne r0, [r9, #3448] @ movhi -.L2033: + strhne r0, [r9, #3452] @ movhi +.L2087: movs r1, #0 uxth lr, r3 -.L2034: +.L2088: uxth r2, r1 cmp r2, lr - bcs .L2092 - ldr r0, [r5, #3392] + bcs .L2146 + ldr r0, [r5, #3396] 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, #3364] + ldr r0, [r5, #3368] add r10, r0, r2, lsl #1 ldrh r10, [r10, #2] strh r10, [r0, r2, lsl #1] @ movhi - b .L2034 -.L2092: + b .L2088 +.L2146: ldr r1, [r7, #4] - ldr r2, [r4, #3392] + ldr r2, [r4, #3396] str r1, [r2, fp] sxth r1, r3 - ldr r2, [r4, #3364] + ldr r2, [r4, #3368] cmp r1, #0 strh r6, [r2, ip, lsl #1] @ movhi - bge .L2036 - b .L2025 -.L2032: + bge .L2090 + b .L2079 +.L2086: subs r3, r3, #1 uxth r3, r3 - b .L2031 -.L2091: + b .L2085 +.L2145: cmp ip, #0 - bge .L2067 - b .L2025 -.L2036: - ldrh r0, [r5, #3448] - ldr r2, [r8, #2412] + bge .L2121 + b .L2079 +.L2090: + ldrh r0, [r5, #3452] + ldr r2, [r8, #2416] subs r2, r2, r0 subs r2, r2, #1 sxth r2, r2 cmp r1, r2 - bgt .L2025 -.L2067: - ldr r2, [r4, #3392] + bgt .L2079 +.L2121: + ldr r2, [r4, #3396] sxth r3, r3 ldr r1, [r7, #4] adds r0, r0, #1 - strh r0, [r4, #3448] @ movhi + strh r0, [r4, #3452] @ movhi str r1, [r2, r3, lsl #2] - ldr r2, [r4, #3364] - b .L2087 -.L2046: + ldr r2, [r4, #3368] + b .L2141 +.L2100: ldr r1, [sp, #16] lsl fp, ip, #2 ldr r2, [r7, #4] ldr r1, [r1, ip, lsl #2] cmp r2, r1 - bhi .L2093 + bhi .L2147 subs r3, r3, #1 uxth r3, r3 -.L2040: +.L2094: sxth ip, r3 cmp ip, lr - bgt .L2046 - b .L2045 -.L2096: + bgt .L2100 + b .L2099 +.L2150: .align 2 -.L2095: +.L2149: .word .LANCHOR0 .word .LANCHOR2 -.L2093: +.L2147: ldr r2, [sp, #16] ldr r2, [r2] - cbnz r2, .L2042 + cbnz r2, .L2096 cmp r0, r10 itt ne addne r0, r0, #1 - strhne r0, [r8, #2430] @ movhi -.L2042: + strhne r0, [r8, #2434] @ movhi +.L2096: movs r1, #0 uxth lr, r3 -.L2043: +.L2097: uxth r2, r1 cmp r2, lr - bcs .L2094 - ldr r0, [r4, #3376] + bcs .L2148 + ldr r0, [r4, #3380] 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, #2432] + ldr r0, [r8, #2436] add r10, r0, r2, lsl #1 ldrh r10, [r10, #2] strh r10, [r0, r2, lsl #1] @ movhi - b .L2043 -.L2094: - ldr r2, [r5, #3376] + b .L2097 +.L2148: + ldr r2, [r5, #3380] ldr r1, [r7, #4] str r1, [r2, fp] - ldr r2, .L2097 - ldr r2, [r2, #2432] + ldr r2, .L2151 + ldr r2, [r2, #2436] strh r6, [r2, ip, lsl #1] @ movhi -.L2045: +.L2099: sxth r3, r3 cmp r3, #0 - blt .L2025 - ldrh r2, [r8, #2404] - ldrh r1, [r8, #2430] + blt .L2079 + ldrh r2, [r8, #2408] + ldrh r1, [r8, #2434] subs r2, r2, #1 subs r2, r2, r1 sxth r2, r2 cmp r3, r2 - bgt .L2025 + bgt .L2079 adds r1, r1, #1 - ldr r2, [r9, #3376] - strh r1, [r8, #2430] @ movhi + ldr r2, [r9, #3380] + strh r1, [r8, #2434] @ movhi ldr r1, [r7, #4] str r1, [r2, r3, lsl #2] - ldr r2, [r8, #2432] -.L2087: + ldr r2, [r8, #2436] +.L2141: strh r6, [r2, r3, lsl #1] @ movhi - b .L2025 -.L2026: - ldrh r1, [r9, #536] + b .L2079 +.L2080: + ldrh r1, [r9, #540] movw r2, #65535 cmp r1, r2 - bne .L2047 - strh r6, [r5, #536] @ movhi - b .L2088 -.L2047: - ldrh r0, [r5, #540] + bne .L2101 + strh r6, [r5, #540] @ movhi + b .L2142 +.L2101: + ldrh r0, [r5, #544] cmp r0, r2 - beq .L2048 + beq .L2102 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L2048: - ldr r2, [r9, #544] +.L2102: + ldr r2, [r9, #548] ldr r3, [r7, #4] cmp r2, r3 - bcs .L2049 - ldrh r3, [r5, #536] - strh r6, [r5, #536] @ movhi - strh r3, [r5, #540] @ movhi - ldr r3, [r7, #4] -.L2088: - str r3, [r5, #544] - b .L2025 -.L2049: + bcs .L2103 + ldrh r3, [r5, #540] strh r6, [r5, #540] @ movhi - b .L2025 -.L2022: - ldrb r1, [r8, #140] @ zero_extendqisi2 + strh r3, [r5, #544] @ movhi + ldr r3, [r7, #4] +.L2142: + str r3, [r5, #548] + b .L2079 +.L2103: + strh r6, [r5, #544] @ movhi + b .L2079 +.L2076: + ldrb r1, [r8, #144] @ zero_extendqisi2 mov r0, r6 - cbz r1, .L2050 -.L2089: + cbz r1, .L2104 +.L2143: movs r1, #0 -.L2050: +.L2104: bl FtlFreeSysBlkQueueIn -.L2025: +.L2079: ldr r3, [sp, #8] adds r3, r3, #1 str r3, [sp, #8] - b .L2017 -.L2016: + b .L2071 +.L2070: ldr r6, [sp, #4] adds r6, r6, #1 uxth r3, r6 str r3, [sp, #4] - b .L2011 -.L2053: - ldr r3, .L2097+4 - ldr r5, [r3, #3364] + b .L2065 +.L2107: + ldr r3, .L2151+4 + ldr r5, [r3, #3368] ldrh r2, [r5] - cbz r2, .L2055 -.L2058: - ldr r5, [r0, #2432] - ldr r3, .L2097 + cbz r2, .L2109 +.L2112: + ldr r5, [r0, #2436] + ldr r3, .L2151 ldrh r2, [r5] - cbz r2, .L2056 - b .L2079 -.L2055: - ldrh r3, [r3, #3448] + cbz r2, .L2110 + b .L2133 +.L2109: + ldrh r3, [r3, #3452] cmp r3, #0 - beq .L2058 - ldr r6, [r6, #2412] -.L2059: + beq .L2112 + ldr r6, [r6, #2416] +.L2113: uxth r3, r2 sxth r1, r3 cmp r1, r6 - bcs .L2058 + bcs .L2112 ldrh r7, [r5, r1, lsl #1] adds r2, r2, #1 cmp r7, #0 - beq .L2059 + beq .L2113 mov lr, #0 -.L2060: - ldr r5, [r0, #2412] +.L2114: + ldr r5, [r0, #2416] sxth r2, r3 cmp r2, r5 - bcs .L2058 - ldr r5, [r4, #3364] + bcs .L2112 + ldr r5, [r4, #3368] 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, #3392] + ldr r5, [r4, #3396] ldr r7, [r5, r2, lsl #2] str r7, [r5, r6, lsl #2] - ldr r5, [r4, #3364] + ldr r5, [r4, #3368] strh lr, [r5, r2, lsl #1] @ movhi - b .L2060 -.L2056: - ldrh r1, [r3, #2430] - cbz r1, .L2079 - ldrh r6, [r3, #2404] -.L2063: + b .L2114 +.L2110: + ldrh r1, [r3, #2434] + cbz r1, .L2133 + ldrh r6, [r3, #2408] +.L2117: uxth r3, r2 sxth r1, r3 cmp r1, r6 - bge .L2079 + bge .L2133 ldrh r7, [r5, r1, lsl #1] adds r2, r2, #1 cmp r7, #0 - beq .L2063 - ldr r5, .L2097 + beq .L2117 + ldr r5, .L2151 mov ip, #0 -.L2064: - ldrh r6, [r0, #2404] +.L2118: + ldrh r6, [r0, #2408] sxth r2, r3 cmp r2, r6 - bge .L2079 - ldr r6, [r5, #2432] + bge .L2133 + ldr r6, [r5, #2436] 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, #3376] + ldr r6, [r4, #3380] ldr r7, [r6, r2, lsl #2] str r7, [r6, lr, lsl #2] - ldr r6, [r5, #2432] + ldr r6, [r5, #2436] strh ip, [r6, r2, lsl #1] @ movhi - b .L2064 -.L2079: + b .L2118 +.L2133: movs r0, #0 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2098: +.L2152: .align 2 -.L2097: +.L2151: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -12742,274 +13056,275 @@ FtlLoadSysInfo: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r1, #0 - ldr r4, .L2127 + ldr r4, .L2181 .pad #44 sub sp, sp, #44 - ldr r7, .L2127+4 - ldr r5, .L2127+8 - ldr r3, [r4, #3312] - ldrh r2, [r7, #2324] - ldr r0, [r4, #292] - str r3, [r5, #1252] - ldr r3, [r4, #3336] - lsls r2, r2, #1 + ldr r7, .L2181+4 + ldr r5, .L2181+8 + ldr r3, [r4, #3316] + ldrh r2, [r7, #2328] + ldr r0, [r4, #296] str r3, [r5, #1256] + ldr r3, [r4, #3340] + lsls r2, r2, #1 + str r3, [r5, #1260] bl ftl_memset - ldrh r0, [r4, #536] + ldrh r0, [r4, #540] movw r3, #65535 cmp r0, r3 - bne .L2100 -.L2111: + bne .L2154 +.L2165: mov r0, #-1 - b .L2101 -.L2100: + b .L2155 +.L2154: movs r1, #1 mov r8, r5 bl FtlGetLastWrittenPage - ldrh r10, [r4, #536] + ldrh r10, [r4, #540] uxth r6, r0 adds r0, r0, #1 - strh r0, [r4, #538] @ movhi -.L2102: + strh r0, [r4, #542] @ movhi +.L2156: sxth r3, r6 cmp r3, #0 - blt .L2110 + blt .L2164 sxth fp, r10 movs r1, #1 - ldr r0, .L2127+12 + ldr r0, .L2181+12 orr r3, r3, fp, lsl #10 - str r3, [r5, #1248] - ldr r3, [r4, #3312] - mov r2, r1 - ldr r9, .L2127 str r3, [r5, #1252] + ldr r3, [r4, #3316] + mov r2, r1 + ldr r9, .L2181 + str r3, [r5, #1256] bl FlashReadPages ldrb r3, [r7] @ zero_extendqisi2 cmp r3, #0 - beq .L2103 - ldr r3, [r8, #1256] + beq .L2157 + ldr r3, [r8, #1260] ldr r2, [r3, #12] cmp r2, #0 - beq .L2103 - ldr ip, [r8, #1252] + beq .L2157 + ldr ip, [r8, #1256] str r3, [sp, #32] - ldr r3, .L2127+4 + ldr r3, .L2181+4 mov r0, ip str r2, [sp, #36] str ip, [sp, #28] - ldrh r1, [r3, #2394] + ldrh r1, [r3, #2398] bl js_hash ldr r2, [sp, #36] cmp r2, r0 - beq .L2103 + beq .L2157 ldr ip, [sp, #28] ldr r3, [sp, #32] - cbnz r6, .L2104 - ldrh r1, [r9, #540] + cbnz r6, .L2158 + ldrh r1, [r9, #544] cmp fp, r1 - beq .L2104 + beq .L2158 ldr r0, [r3] - ldrh r1, [r9, #536] + ldrh r1, [r9, #540] str r0, [sp] ldr r0, [r3, #4] str r0, [sp, #4] ldr r3, [r3, #8] str r2, [sp, #12] - ldr r0, .L2127+16 + ldr r0, .L2181+16 str r3, [sp, #8] ldr r3, [ip] str r3, [sp, #16] - ldr r3, [r8, #1248] - ldr r2, [r8, #1244] + ldr r3, [r8, #1252] + ldr r2, [r8, #1248] bl printk - ldr r3, .L2127+4 - ldrh r10, [r9, #540] - ldrh r6, [r3, #2386] - b .L2106 -.L2104: + ldr r3, .L2181+4 + ldrh r10, [r9, #544] + ldrh r6, [r3, #2390] + b .L2160 +.L2158: mov r3, #-1 - str r3, [r5, #1244] -.L2103: - ldr r3, [r5, #1244] + str r3, [r5, #1248] +.L2157: + ldr r3, [r5, #1248] adds r3, r3, #1 - beq .L2106 - ldr r3, [r4, #3312] - ldr r2, .L2127+20 + beq .L2160 + ldr r3, [r4, #3316] + ldr r2, .L2181+20 ldr r3, [r3] cmp r3, r2 - bne .L2106 - ldr r3, .L2127 - ldr r3, [r3, #3336] + bne .L2160 + ldr r3, .L2181 + ldr r3, [r3, #3340] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L2106 -.L2110: - ldr r6, .L2127 + bne .L2160 +.L2164: + ldr r6, .L2181 movs r2, #48 - ldr r1, [r5, #1252] - add r0, r6, #236 - ldr r8, .L2127+4 + ldr r1, [r5, #1256] + add r0, r6, #240 + ldr r8, .L2181+4 bl ftl_memcpy - ldrh r2, [r7, #2324] - ldr r1, [r5, #1252] - ldr r0, [r4, #292] + ldrh r2, [r7, #2328] + ldr r1, [r5, #1256] + ldr r0, [r4, #296] adds r1, r1, #48 lsls r2, r2, #1 bl ftl_memcpy - ldrh r2, [r7, #2324] - ldr r3, [r5, #1252] - add r1, r2, #24 - ldr r0, [r4, #468] - ubfx r1, r1, #1, #30 + ldrh r2, [r7, #2328] + ldr r1, [r5, #1256] + ldr r0, [r4, #472] + lsls r3, r2, #1 lsrs r2, r2, #3 + adds r3, r3, #51 adds r2, r2, #4 - add r1, r3, r1, lsl #2 + bic r3, r3, #3 + add r1, r1, r3 bl ftl_memcpy - ldrh r3, [r7, #2428] - cbz r3, .L2108 - ldrh r2, [r8, #2324] - ldr r0, [r6, #3388] + ldrh r3, [r7, #2432] + cbz r3, .L2162 + ldrh r2, [r8, #2328] + ldr r0, [r6, #3392] lsrs r3, r2, #3 add r3, r3, r2, lsl #1 - ldr r2, .L2127+8 + ldr r2, .L2181+8 adds r3, r3, #52 ubfx r3, r3, #2, #14 - ldr r1, [r2, #1252] - ldrh r2, [r8, #2420] + ldr r1, [r2, #1256] + ldrh r2, [r8, #2424] add r1, r1, r3, lsl #2 lsls r2, r2, #2 bl ftl_memcpy - b .L2108 -.L2106: + b .L2162 +.L2160: subs r6, r6, #1 uxth r6, r6 - b .L2102 -.L2108: - ldr r2, [r4, #236] - ldr r3, .L2127+20 - ldr r6, .L2127 + b .L2156 +.L2162: + ldr r2, [r4, #240] + ldr r3, .L2181+20 + ldr r6, .L2181 cmp r2, r3 - bne .L2111 - ldrb r0, [r6, #246] @ zero_extendqisi2 - ldrh r1, [r7, #2338] - ldrh r2, [r6, #244] + bne .L2165 + ldrb r0, [r6, #250] @ zero_extendqisi2 + ldrh r1, [r7, #2342] + ldrh r2, [r6, #248] cmp r0, r1 - ldr r3, .L2127+4 - strh r2, [r6, #542] @ movhi - bne .L2111 - ldrh r1, [r3, #2384] - ldrh r0, [r3, #2390] - str r2, [r5, #1280] + ldr r3, .L2181+4 + strh r2, [r6, #546] @ movhi + bne .L2165 + ldrh r1, [r3, #2388] + ldrh r0, [r3, #2394] + str r2, [r5, #1284] muls r1, r2, r1 - str r1, [r3, #2444] + str r1, [r3, #2448] muls r1, r0, r1 - ldrh r0, [r3, #2454] - str r1, [r3, #2424] - ldr r1, [r3, #2328] + ldrh r0, [r3, #2458] + str r1, [r3, #2428] + ldr r1, [r3, #2332] subs r0, r1, r0 - ldrh r1, [r3, #2316] + ldrh r1, [r3, #2320] subs r0, r0, r2 bl __aeabi_uidiv - ldrh r3, [r6, #252] - ldrh r1, [r6, #250] + ldrh r3, [r6, #256] + ldrh r1, [r6, #254] lsrs r2, r3, #6 - strh r2, [r6, #314] @ movhi - ldrh r2, [r6, #254] - and r3, r3, #63 - strb r3, [r6, #318] - ldrb r3, [r6, #247] @ zero_extendqisi2 - strh r2, [r6, #360] @ movhi - ldrh r2, [r6, #256] - strb r3, [r6, #320] - movw r3, #65535 - strh r1, [r6, #312] @ movhi - strh r3, [r6, #552] @ movhi - movs r3, #0 - strh r3, [r6, #554] @ movhi - strb r3, [r6, #558] - strb r3, [r6, #560] - str r3, [r6, #492] - strh r0, [r6, #532] @ movhi - lsrs r0, r2, #6 - and r2, r2, #63 - strb r2, [r6, #366] - ldrb r2, [r6, #248] @ zero_extendqisi2 - strh r0, [r6, #362] @ movhi - strb r2, [r6, #368] + strh r2, [r6, #318] @ movhi ldrh r2, [r6, #258] - strh r2, [r6, #408] @ movhi + and r3, r3, #63 + strb r3, [r6, #322] + ldrb r3, [r6, #251] @ zero_extendqisi2 + strh r2, [r6, #364] @ movhi ldrh r2, [r6, #260] + strb r3, [r6, #324] + movw r3, #65535 + strh r1, [r6, #316] @ movhi + strh r3, [r6, #556] @ movhi + movs r3, #0 + strh r3, [r6, #558] @ movhi + strb r3, [r6, #562] + strb r3, [r6, #564] + str r3, [r6, #496] + strh r0, [r6, #536] @ movhi lsrs r0, r2, #6 and r2, r2, #63 - strb r2, [r6, #414] - ldrb r2, [r6, #249] @ zero_extendqisi2 - strh r0, [r6, #410] @ movhi - strb r2, [r6, #416] - str r3, [r6, #480] - ldr r2, [r6, #268] - str r3, [r6, #472] - str r3, [r6, #488] - str r3, [r6, #516] - str r3, [r6, #524] + strb r2, [r6, #370] + ldrb r2, [r6, #252] @ zero_extendqisi2 + strh r0, [r6, #366] @ movhi + strb r2, [r6, #372] + ldrh r2, [r6, #262] + strh r2, [r6, #412] @ movhi + ldrh r2, [r6, #264] + lsrs r0, r2, #6 + and r2, r2, #63 + strb r2, [r6, #418] + ldrb r2, [r6, #253] @ zero_extendqisi2 + strh r0, [r6, #414] @ movhi + strb r2, [r6, #420] str r3, [r6, #484] - ldr r3, [r6, #276] - str r2, [r6, #512] - ldr r2, [r6, #504] + ldr r2, [r6, #272] + str r3, [r6, #476] + str r3, [r6, #492] + str r3, [r6, #520] + str r3, [r6, #528] + str r3, [r6, #488] + ldr r3, [r6, #280] + str r2, [r6, #516] + ldr r2, [r6, #508] cmp r3, r2 - ldr r2, [r4, #508] + ldr r2, [r4, #512] it hi - strhi r3, [r6, #504] - ldr r3, [r4, #272] + strhi r3, [r6, #508] + ldr r3, [r4, #276] cmp r3, r2 itt hi - ldrhi r2, .L2127 - strhi r3, [r2, #508] + ldrhi r2, .L2181 + strhi r3, [r2, #512] movw r3, #65535 cmp r1, r3 - beq .L2114 - ldr r0, .L2127+24 + beq .L2168 + ldr r0, .L2181+24 bl make_superblock -.L2114: - ldrh r2, [r4, #360] +.L2168: + ldrh r2, [r4, #364] movw r3, #65535 cmp r2, r3 - beq .L2115 - ldr r0, .L2127+28 + beq .L2169 + ldr r0, .L2181+28 bl make_superblock -.L2115: - ldrh r2, [r4, #408] +.L2169: + ldrh r2, [r4, #412] movw r3, #65535 cmp r2, r3 - beq .L2116 - ldr r0, .L2127+32 + beq .L2170 + ldr r0, .L2181+32 bl make_superblock -.L2116: - ldrh r2, [r4, #552] +.L2170: + ldrh r2, [r4, #556] movw r3, #65535 cmp r2, r3 - beq .L2117 - ldr r0, .L2127+36 + beq .L2171 + ldr r0, .L2181+36 bl make_superblock -.L2117: +.L2171: movs r0, #0 -.L2101: +.L2155: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2128: +.L2182: .align 2 -.L2127: +.L2181: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR4+1244 - .word .LC107 + .word .LANCHOR4+1248 + .word .LC109 .word 1179929683 - .word .LANCHOR2+312 - .word .LANCHOR2+360 - .word .LANCHOR2+408 - .word .LANCHOR2+552 + .word .LANCHOR2+316 + .word .LANCHOR2+364 + .word .LANCHOR2+412 + .word .LANCHOR2+556 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 1 @@ -13028,69 +13343,69 @@ FtlDumpBlockInfo: sub sp, sp, #100 mov r8, r1 bl P2V_block_in_plane - ldr r4, .L2145 - ldr r7, .L2145+4 - ldr r1, .L2145+8 - ldrh r9, [r4, #2384] + ldr r4, .L2199 + ldr r7, .L2199+4 + ldr r1, .L2199+8 + ldrh r9, [r4, #2388] mov r6, r0 - ldr r0, .L2145+12 + ldr r0, .L2199+12 bl printk - ldr r3, [r7, #292] + ldr r3, [r7, #296] mov r1, r6 - ldr r0, .L2145+16 + ldr r0, .L2199+16 ldrh r2, [r3, r6, lsl #1] bl printk add r0, sp, #96 strh r6, [r0, #-48]! @ movhi bl make_superblock - ldrb r5, [r4, #140] @ zero_extendqisi2 + ldrb r5, [r4, #144] @ zero_extendqisi2 str r7, [sp, #44] - cbz r5, .L2130 + cbz r5, .L2184 cmp r8, #0 - bne .L2141 + bne .L2195 mov r0, r6 bl ftl_get_blk_mode cmp r0, #1 mov r5, r0 - bne .L2130 - ldrh r9, [r4, #2386] - b .L2130 -.L2141: + bne .L2184 + ldrh r9, [r4, #2390] + b .L2184 +.L2195: movs r5, #0 -.L2130: - ldr r0, .L2145+20 +.L2184: + ldr r0, .L2199+20 mov r1, r5 mov r2, r9 - ldrh r3, [r4, #2384] + ldrh r3, [r4, #2388] bl printk - ldr r10, .L2145 + ldr r10, .L2199 movs r6, #0 -.L2131: - ldr r3, .L2145+4 +.L2185: + ldr r3, .L2199+4 movs r2, #0 - ldrh fp, [r10, #2316] + ldrh fp, [r10, #2320] add lr, sp, #62 - ldrh r0, [r10, #2396] + ldrh r0, [r10, #2400] mov r8, #36 - ldr r3, [r3, #3300] + ldr r3, [r3, #3304] mov r4, r2 movw ip, #65535 str r3, [sp, #28] - ldr r3, .L2145+4 - ldr r3, [r3, #1140] - str r3, [sp, #32] - ldrh r3, [r10, #2394] - str r3, [sp, #36] - ldr r3, .L2145+4 + ldr r3, .L2199+4 ldr r3, [r3, #1144] + str r3, [sp, #32] + ldrh r3, [r10, #2398] + str r3, [sp, #36] + ldr r3, .L2199+4 + ldr r3, [r3, #1148] str r3, [sp, #40] -.L2132: +.L2186: uxth r3, r2 cmp r3, fp - bcs .L2143 + bcs .L2197 ldrh r3, [lr, #2]! cmp r3, ip - beq .L2133 + beq .L2187 ldr r1, [sp, #28] orr r3, r6, r3, lsl #10 ldr r7, [sp, #32] @@ -13113,25 +13428,25 @@ FtlDumpBlockInfo: uxth r4, r4 add r3, r3, r7 str r3, [r1, #12] -.L2133: +.L2187: adds r2, r2, #1 - b .L2132 -.L2143: - ldr r3, .L2145+4 + b .L2186 +.L2197: + ldr r3, .L2199+4 mov r1, r4 mov r2, r5 mov r8, #0 mov fp, #36 - ldr r0, [r3, #3300] + ldr r0, [r3, #3304] bl FlashReadPages -.L2137: +.L2191: uxth r3, r8 cmp r3, r4 - bcs .L2144 + bcs .L2198 ldr r3, [sp, #44] mul r2, fp, r8 ldrh r1, [sp, #48] - ldr ip, [r3, #3300] + ldr ip, [r3, #3304] add r8, r8, #1 add lr, ip, r2 ldr r3, [lr, #12] @@ -13147,32 +13462,32 @@ FtlDumpBlockInfo: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2145+24 + ldr r0, .L2199+24 str r3, [sp, #20] ldr r2, [ip, r2] ldr r3, [lr, #4] bl printk - b .L2137 -.L2144: + b .L2191 +.L2198: adds r6, r6, #1 uxth r6, r6 cmp r6, r9 - bne .L2131 -.L2139: + bne .L2185 +.L2193: movs r0, #0 add sp, sp, #100 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2146: +.L2200: .align 2 -.L2145: +.L2199: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR3+16 - .word .LC108 - .word .LC109 + .word .LANCHOR3+148 .word .LC110 .word .LC111 + .word .LC112 + .word .LC113 .fnend .size FtlDumpBlockInfo, .-FtlDumpBlockInfo .align 1 @@ -13188,53 +13503,53 @@ FtlScanAllBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #92 sub sp, sp, #92 - ldr r0, .L2163 + ldr r0, .L2217 mov r8, #0 - ldr r1, .L2163+4 + ldr r1, .L2217+4 bl printk - ldr r5, .L2163+8 + ldr r5, .L2217+8 mov r7, r5 -.L2148: - ldr r3, .L2163+12 +.L2202: + ldr r3, .L2217+12 uxth r4, r8 - ldrh r3, [r3, #2326] + ldrh r3, [r3, #2330] cmp r3, r4 - bls .L2159 + bls .L2213 add r9, sp, #88 mov r0, r4 mov fp, #36 movw r10, #65535 strh r4, [r9, #-48]! @ movhi bl ftl_get_blk_mode - ldr r2, [r5, #292] + ldr r2, [r5, #296] mov r1, r4 ldrh r2, [r2, r4, lsl #1] mov r3, r0 - ldr r0, .L2163+16 + ldr r0, .L2217+16 bl printk mov r0, r9 bl make_superblock - ldr r3, .L2163+12 + ldr r3, .L2217+12 movs r2, #0 - ldr r9, [r5, #1144] - ldrh lr, [r3, #2316] + ldr r9, [r5, #1148] + ldrh lr, [r3, #2320] mov r4, r2 - ldr r3, [r5, #3300] + ldr r3, [r5, #3304] str r3, [sp, #28] add ip, sp, #54 - ldr r3, [r5, #1140] + ldr r3, [r5, #1144] str r3, [sp, #32] - ldr r3, .L2163+12 - ldrh r0, [r3, #2394] - ldrh r3, [r3, #2396] + ldr r3, .L2217+12 + ldrh r0, [r3, #2398] + ldrh r3, [r3, #2400] str r3, [sp, #36] -.L2149: +.L2203: uxth r3, r2 cmp r3, lr - bcs .L2160 + bcs .L2214 ldrh r3, [ip, #2]! cmp r3, r10 - beq .L2150 + beq .L2204 ldr r1, [sp, #28] lsls r3, r3, #10 ldr r6, [sp, #32] @@ -13256,22 +13571,22 @@ FtlScanAllBlock: uxth r4, r4 add r3, r3, r9 str r3, [r1, #12] -.L2150: +.L2204: adds r2, r2, #1 - b .L2149 -.L2160: - ldr r0, [r7, #3300] + b .L2203 +.L2214: + ldr r0, [r7, #3304] mov r1, r4 movs r2, #0 mov r9, #0 bl FlashReadPages mov r10, #36 -.L2154: +.L2208: uxth r3, r9 cmp r3, r4 - bcs .L2161 + bcs .L2215 mul r2, r10, r9 - ldr ip, [r7, #3300] + ldr ip, [r7, #3304] ldrh r1, [sp, #40] add r9, r9, #1 add lr, ip, r2 @@ -13288,25 +13603,25 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2163+20 + ldr r0, .L2217+20 str r3, [sp, #20] ldr r2, [ip, r2] ldr r3, [lr, #4] bl printk - b .L2154 -.L2161: - ldr r0, [r7, #3300] + b .L2208 +.L2215: + ldr r0, [r7, #3304] mov r1, r4 movs r2, #1 mov r9, #0 bl FlashReadPages mov r10, #36 -.L2156: +.L2210: uxth r3, r9 cmp r3, r4 - bcs .L2162 + bcs .L2216 mul r2, r10, r9 - ldr ip, [r7, #3300] + ldr ip, [r7, #3304] ldrh r1, [sp, #40] add r9, r9, #1 add lr, ip, r2 @@ -13323,30 +13638,30 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2163+24 + ldr r0, .L2217+24 str r3, [sp, #20] ldr r2, [ip, r2] ldr r3, [lr, #4] bl printk - b .L2156 -.L2162: + b .L2210 +.L2216: add r8, r8, #1 - b .L2148 -.L2159: + b .L2202 +.L2213: movs r0, #0 add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2164: +.L2218: .align 2 -.L2163: - .word .LC108 - .word .LANCHOR3+36 +.L2217: + .word .LC110 + .word .LANCHOR3+168 .word .LANCHOR2 .word .LANCHOR0 - .word .LC112 - .word .LC113 .word .LC114 + .word .LC115 + .word .LC116 .fnend .size FtlScanAllBlock, .-FtlScanAllBlock .align 1 @@ -13356,45 +13671,80 @@ FtlScanAllBlock: .type ftl_scan_all_ppa, %function ftl_scan_all_ppa: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #28 - sub sp, sp, #28 - ldr r6, .L2171 - movs r7, #0 - ldr r0, .L2171+4 - ldr r4, .L2171+8 - ldrh r1, [r6, #2382] - ldrh r2, [r6, #2384] + 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 r6, .L2237 + ldr r5, .L2237+4 + ldrh r4, [r6, #2386] + mov r10, r6 + subs r4, r4, #16 +.L2220: + ldrh r3, [r6, #2386] + cmp r4, r3 + bge .L2235 + uxth r8, r4 + mov r0, r8 + bl ftl_get_blk_mode + ldrb r3, [r10, #144] @ zero_extendqisi2 + cbz r3, .L2221 + ldrh r3, [r10, #2328] + cmp r4, r3 + bge .L2222 + ldrh r3, [r10, #2402] + cmp r4, r3 + blt .L2222 +.L2221: + cmp r0, #1 + bne .L2223 +.L2222: + ldrh r7, [r6, #2390] + mov r9, #-2147483648 + b .L2224 +.L2223: + ldrh r7, [r6, #2388] + mov r9, #0 +.L2224: + ldr r0, .L2237+8 + mov r1, r4 + mov r2, r7 + mov r3, r9 bl printk - ldr r8, .L2171+28 -.L2166: - ldrh r3, [r6, #2382] - cmp r7, r3 - bcs .L2168 - lsl r9, r7, #10 - movs r5, #0 -.L2169: - ldrh r3, [r6, #2384] - cmp r5, r3 - bcs .L2170 - add r3, r5, r9 - str r3, [r4, #1248] - ldr r3, [r8, #3312] + mov r0, r8 + bl FtlBbmIsBadBlock + cbz r0, .L2225 + ldr r0, .L2237+12 + mov r1, r4 + mov r2, r7 + mov r3, r9 + bl printk +.L2225: + ldr fp, .L2237+32 + lsl ip, r4, #10 + mov r8, #0 +.L2226: + cmp r8, r7 + beq .L2236 + add r3, r9, ip movs r2, #0 + add r3, r3, r8 + str r3, [r5, #1252] + ldr r3, [fp, #3316] movs r1, #1 - ldr r0, .L2171+12 - str r2, [r4, #1244] - adds r5, r5, #1 - str r3, [r4, #1252] - ldr r3, [r8, #3336] - str r3, [r4, #1256] + ldr r0, .L2237+16 + add r8, r8, #1 + str ip, [sp, #28] + str r3, [r5, #1256] + ldr r3, [fp, #3340] + str r2, [r5, #1248] + str r3, [r5, #1260] bl FlashReadPages - ldr r3, [r4, #1256] - ldr r2, [r4, #1252] - ldr r0, .L2171+16 + ldr r3, [r5, #1260] + ldr r2, [r5, #1256] + ldr r0, .L2237+20 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -13404,32 +13754,34 @@ ftl_scan_all_ppa: ldr r1, [r2] str r1, [sp, #12] ldr r2, [r2, #4] - ldr r1, [r4, #1248] + ldr r1, [r5, #1252] str r2, [sp, #16] - ldr r2, [r4, #1244] + ldr r2, [r5, #1248] ldr r3, [r3] bl printk - b .L2169 -.L2170: - adds r7, r7, #1 - b .L2166 -.L2168: - ldr r0, .L2171+20 - ldr r1, .L2171+24 - add sp, sp, #28 + ldr ip, [sp, #28] + b .L2226 +.L2236: + adds r4, r4, #1 + b .L2220 +.L2235: + ldr r0, .L2237+24 + ldr r1, .L2237+28 + add sp, sp, #36 @ sp needed - pop {r4, r5, r6, r7, r8, r9, lr} + pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} b printk -.L2172: +.L2238: .align 2 -.L2171: +.L2237: .word .LANCHOR0 - .word .LC115 .word .LANCHOR4 - .word .LANCHOR4+1244 - .word .LC116 .word .LC117 - .word .LANCHOR3+52 + .word .LC118 + .word .LANCHOR4+1248 + .word .LC119 + .word .LC120 + .word .LANCHOR3+184 .word .LANCHOR2 .fnend .size ftl_scan_all_ppa, .-ftl_scan_all_ppa @@ -13446,25 +13798,25 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 sub sp, sp, #76 - ldr r5, .L2228 + ldr r6, .L2293 mov r4, r0 str r1, [sp, #8] mov r9, r2 str r3, [sp, #20] - ldr r6, [r5, #1204] - ldrb r7, [r5] @ zero_extendqisi2 - ldrb r6, [r6, #19] @ zero_extendqisi2 - str r6, [sp, #16] - ldr r6, .L2228+4 - ldrb r6, [r6, #481] @ zero_extendqisi2 - str r6, [sp, #12] - cbz r7, .L2174 + ldr r5, [r6, #44] + ldrb r7, [r6] @ zero_extendqisi2 + ldrb r5, [r5, #19] @ zero_extendqisi2 + str r5, [sp, #16] + ldr r5, .L2293+4 + ldrb r5, [r5, #481] @ zero_extendqisi2 + str r5, [sp, #12] + cbz r7, .L2240 bl FlashProgSlc2KPages - b .L2175 -.L2188: + b .L2241 +.L2253: movs r3, #36 - add r2, sp, #28 mov r1, r9 + add r2, sp, #28 mul r8, r3, r7 ldr r3, [sp, #8] subs r3, r3, r7 @@ -13474,190 +13826,183 @@ FlashProgPages: mov r0, fp add r3, sp, #32 bl LogAddr2PhyAddr - ldrb r2, [r5, #2229] @ zero_extendqisi2 - ldr r3, [sp, #32] + ldrb r3, [r6, #2230] @ zero_extendqisi2 mov r10, r0 - cmp r3, r2 - bcc .L2176 + ldr r0, [sp, #32] + cmp r0, r3 + bcc .L2242 mov r3, #-1 str r3, [r4, r8] -.L2177: +.L2243: adds r7, r7, #1 -.L2174: +.L2240: ldr r3, [sp, #8] - ldr r6, .L2228 + ldr r8, .L2293 cmp r7, r3 - bcc .L2188 - b .L2226 -.L2176: - add r3, r5, r3, lsl #4 - ldrb r1, [r5, #2305] @ zero_extendqisi2 - ldr r3, [r3, #2108] - cmp r1, #0 + bcc .L2253 + b .L2291 +.L2242: + ldrb r3, [r6, #2240] @ zero_extendqisi2 + cmp r3, #0 + add r3, r6, r0, lsl #4 it eq moveq r10, #0 - cbz r3, .L2179 - cmp r2, #1 - bne .L2180 - ldr r0, [r5, #76] - bl NandcIqrWaitFlashReady -.L2180: - ldrb r0, [sp, #32] @ zero_extendqisi2 + ldr r3, [r3, #2108] + cbz r3, .L2245 + uxtb r0, r0 bl FlashWaitCmdDone -.L2179: +.L2245: ldr r3, [sp, #32] movs r0, #0 - add r2, r5, r3, lsl #4 + add r2, r6, r3, lsl #4 addw r1, r2, #2108 str r0, [r2, #2112] ldr r0, [sp, #28] str fp, [r2, #2108] str r0, [r2, #2104] cmp r10, #0 - beq .L2181 + beq .L2246 add r2, r8, #36 add r2, r2, r4 str r2, [r1, #4] -.L2181: - adds r2, r5, r3 - add r3, r5, r3, lsl #4 - ldrb r6, [r2, #2232] @ zero_extendqisi2 - strb r6, [r3, #2100] - mov r0, r6 - ldrb r3, [r5, #2229] @ zero_extendqisi2 +.L2246: + adds r2, r6, r3 + add r3, r6, r3, lsl #4 + ldrb r5, [r2, #2232] @ zero_extendqisi2 + strb r5, [r3, #2100] + mov r0, r5 + ldrb r3, [r6, #2230] @ zero_extendqisi2 cmp r3, #1 - bne .L2182 + bne .L2247 bl NandcWaitFlashReady - b .L2183 -.L2182: + b .L2248 +.L2247: bl NandcFlashCs - mov r0, r6 + mov r0, r5 ldr r3, [sp, #32] ldr r1, [sp, #28] - add r3, r5, r3, lsl #2 - ldr r2, [r3, #1168] + add r3, r6, r3, lsl #2 + ldr r2, [r3, #1172] adds r2, r2, #0 it ne movne r2, #1 bl FlashWaitReadyEN - mov r0, r6 + mov r0, r5 bl NandcFlashDeCs -.L2183: +.L2248: ldr r3, [sp, #16] subs r3, r3, #1 cmp r3, #7 - bhi .L2184 - adds r3, r5, r6 + bhi .L2249 + adds r3, r6, r5 ldrb r3, [r3, #2064] @ zero_extendqisi2 - cbz r3, .L2184 - mov r0, r6 - ldrb r1, [r5, #1211] @ zero_extendqisi2 - ldr r2, .L2228+8 + cbz r3, .L2249 + mov r0, r5 + ldrb r1, [r6, #1211] @ zero_extendqisi2 + ldr r2, .L2293+8 movs r3, #0 bl HynixSetRRPara -.L2184: - mov r0, r6 +.L2249: + mov r0, r5 bl NandcFlashCs cmp r9, #1 - mov r0, r6 - bne .L2185 - ldrb r3, [r5, #140] @ zero_extendqisi2 - cbz r3, .L2185 + mov r0, r5 + bne .L2250 + ldrb r3, [r6, #144] @ zero_extendqisi2 + cbz r3, .L2250 bl flash_enter_slc_mode - b .L2186 -.L2185: + b .L2251 +.L2250: bl flash_exit_slc_mode -.L2186: - mov r0, r6 +.L2251: + mov r0, r5 ldr r1, [sp, #28] bl FlashProgFirstCmd ldr r3, [fp, #12] - mov r0, r6 + mov r0, r5 movs r1, #1 str r3, [sp] ldr r2, [sp, #12] ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L2187 - mov r0, r6 + beq .L2252 + mov r0, r5 ldr r1, [sp, #28] bl FlashProgDpFirstCmd - mov r0, r6 + mov r0, r5 add r8, r8, #36 add r8, r8, r4 ldr r3, [sp, #32] ldr r1, [sp, #28] - add r3, r5, r3, lsl #2 - ldr r2, [r3, #1168] + add r3, r6, r3, lsl #2 + ldr r2, [r3, #1172] adds r2, r2, #0 it ne movne r2, #1 bl FlashWaitReadyEN - ldr r1, [r5, #4] - mov r0, r6 + ldr r1, [r6, #4] + mov r0, r5 ldr r3, [sp, #28] add r1, r1, r3 bl FlashProgDpSecondCmd ldr r3, [r8, #12] - mov r0, r6 + mov r0, r5 movs r1, #1 str r3, [sp] ldr r2, [sp, #12] ldr r3, [r8, #8] bl NandcXferData -.L2187: - mov r0, r6 +.L2252: + mov r0, r5 ldr r1, [sp, #28] bl FlashProgSecondCmd - mov r0, r6 + mov r0, r5 bl NandcFlashDeCs add r7, r7, r10 - b .L2177 -.L2226: - ldr r0, [r6, #76] + b .L2243 +.L2291: movs r5, #0 - bl NandcIqrWaitFlashReady - addw r8, r6, #2100 - mov r7, r6 -.L2189: - ldrb r3, [r6, #2229] @ zero_extendqisi2 + addw r7, r8, #2100 + mov r6, r8 +.L2254: + ldrb r3, [r8, #2230] @ zero_extendqisi2 cmp r5, r3 - bcs .L2227 + bcs .L2292 uxtb r0, r5 bl FlashWaitCmdDone cmp r9, #1 - bne .L2190 - ldrb r3, [r7, #140] @ zero_extendqisi2 - cbz r3, .L2190 + bne .L2255 + ldrb r3, [r6, #144] @ zero_extendqisi2 + cbz r3, .L2255 lsls r3, r5, #4 - ldrb r0, [r8, r3] @ zero_extendqisi2 + ldrb r0, [r7, r3] @ zero_extendqisi2 bl flash_exit_slc_mode -.L2190: +.L2255: adds r5, r5, #1 - b .L2189 -.L2227: + b .L2254 +.L2292: ldr r3, [sp, #20] - cbnz r3, .L2192 -.L2200: + cbnz r3, .L2257 +.L2265: movs r0, #0 - b .L2175 -.L2192: - ldr r7, .L2228+12 + b .L2241 +.L2257: + ldr r7, .L2293+12 mov r8, #0 mov r10, r7 -.L2193: +.L2258: ldr r3, [sp, #8] cmp r8, r3 - beq .L2200 + beq .L2265 ldr r3, [r4] adds r3, r3, #1 - bne .L2194 + bne .L2259 ldr r1, [r4, #4] - ldr r0, .L2228+16 + ldr r0, .L2293+16 bl printk - b .L2195 -.L2194: + b .L2260 +.L2259: ldr r3, [sp, #8] mov r1, r9 add r2, sp, #28 @@ -13668,10 +14013,10 @@ FlashProgPages: str r3, [sp] add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r7, #1216] + ldr r2, [r7, #1220] movs r3, #0 str r3, [r2] - ldr r2, [r7, #1220] + ldr r2, [r7, #1224] str r3, [r2] ldmia r6!, {r0, r1, r2, r3} add r5, sp, #36 @@ -13683,63 +14028,63 @@ FlashProgPages: movs r1, #1 mov r2, r9 str r3, [r5] - ldr r3, [r7, #1216] - str r3, [sp, #44] ldr r3, [r7, #1220] + str r3, [sp, #44] + ldr r3, [r7, #1224] str r3, [sp, #48] bl FlashReadPages ldr r5, [sp, #36] adds r3, r5, #1 - bne .L2196 - ldr r0, .L2228+20 + bne .L2261 + ldr r0, .L2293+20 ldr r1, [r4, #4] bl printk str r5, [r4] -.L2196: +.L2261: ldr r3, [r4, #12] - cbz r3, .L2197 + cbz r3, .L2262 + ldr r2, [r3] + ldr r3, [r10, #1224] + ldr r3, [r3] + cmp r2, r3 + beq .L2262 + ldr r0, .L2293+24 + ldr r1, [r4, #4] + bl printk + mov r3, #-1 + str r3, [r4] +.L2262: + ldr r3, [r4, #8] + cbz r3, .L2260 ldr r2, [r3] ldr r3, [r10, #1220] ldr r3, [r3] cmp r2, r3 - beq .L2197 - ldr r0, .L2228+24 + beq .L2260 + ldr r0, .L2293+28 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L2197: - ldr r3, [r4, #8] - cbz r3, .L2195 - ldr r2, [r3] - ldr r3, [r10, #1216] - ldr r3, [r3] - cmp r2, r3 - beq .L2195 - ldr r0, .L2228+28 - ldr r1, [r4, #4] - bl printk - mov r3, #-1 - str r3, [r4] -.L2195: +.L2260: add r8, r8, #1 adds r4, r4, #36 - b .L2193 -.L2175: + b .L2258 +.L2241: add sp, sp, #76 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2229: +.L2294: .align 2 -.L2228: +.L2293: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR0+1214 .word .LANCHOR4 - .word .LC103 .word .LC104 .word .LC105 - .word .LC106 + .word .LC107 + .word .LC108 .fnend .size FlashProgPages, .-FlashProgPages .align 1 @@ -13754,13 +14099,13 @@ FlashTestBlk: push {r4, r5, lr} .save {r4, r5, lr} mov r4, r0 - ldr r5, .L2233 + ldr r5, .L2298 .pad #108 sub sp, sp, #108 - ldr r3, [r5, #1200] + ldr r3, [r5, #1204] cmp r0, r3 - bcc .L2232 - ldr r3, [r5, #1208] + bcc .L2297 + ldr r3, [r5, #1212] add r0, sp, #40 movs r1, #165 movs r2, #32 @@ -13768,7 +14113,7 @@ FlashTestBlk: lsls r4, r4, #10 str r3, [sp, #12] bl ftl_memset - ldr r0, [r5, #1208] + ldr r0, [r5, #1212] movs r1, #90 movs r2, #8 bl ftl_memset @@ -13791,17 +14136,17 @@ FlashTestBlk: movne r4, #1 negs r4, r4 bl FlashEraseBlocks - b .L2231 -.L2232: + b .L2296 +.L2297: movs r4, #0 -.L2231: +.L2296: mov r0, r4 add sp, sp, #108 @ sp needed pop {r4, r5, pc} -.L2234: +.L2299: .align 2 -.L2233: +.L2298: .word .LANCHOR4 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -13818,23 +14163,23 @@ FlashMakeFactorBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #84 sub sp, sp, #84 - ldr r5, .L2293 + ldr r5, .L2361 movs r1, #1 - ldr r4, .L2293+4 - ldr r0, .L2293+8 - ldr r3, [r5, #1212] - ldrh r8, [r4, #124] + ldr r4, .L2361+4 + ldr r0, .L2361+8 + ldr r3, [r5, #1216] + ldrh r8, [r4, #128] str r3, [sp, #20] - ldrh r3, [r4, #126] + ldrh r3, [r4, #130] smulbb r8, r8, r3 - ldr r3, [r4, #1204] + ldr r3, [r4, #44] ldrb r3, [r3, #24] @ zero_extendqisi2 uxth r8, r8 str r3, [sp, #24] ldrh r3, [r4, #4] str r3, [sp, #16] ldrb r3, [r4] @ zero_extendqisi2 - ldr r4, .L2293+4 + ldr r4, .L2361+4 cmp r3, #1 itttt eq ldreq r3, [sp, #16] @@ -13842,27 +14187,27 @@ FlashMakeFactorBbt: uxtheq r3, r3 streq r3, [sp, #16] bl printk - ldr r0, [r5, #1212] + ldr r0, [r5, #1216] movs r1, #0 mov r2, #4096 bl ftl_memset - ldr r5, .L2293 + ldr r5, .L2361 lsr r3, r8, #4 str r3, [sp, #28] movs r3, #0 str r3, [sp, #8] -.L2237: +.L2302: ldrb r7, [sp, #8] @ zero_extendqisi2 - ldrb r3, [r4, #2229] @ zero_extendqisi2 + ldrb r3, [r4, #2230] @ zero_extendqisi2 cmp r3, r7 - bls .L2289 + bls .L2357 add r3, r5, r7, lsl #1 - ldrh r6, [r3, #1228] + ldrh r6, [r3, #1232] cmp r6, #0 - bne .L2267 - ldrh r2, [r4, #132] + bne .L2332 + ldrh r2, [r4, #136] mov r1, r6 - ldr r0, [r5, #1180] + ldr r0, [r5, #1184] mov r9, r6 lsls r2, r2, #9 bl ftl_memset @@ -13872,18 +14217,18 @@ FlashMakeFactorBbt: add fp, r4, r3 str r6, [sp, #4] str r3, [sp, #32] -.L2239: +.L2304: ldrh r3, [sp, #4] cmp r3, r8 str r3, [sp, #12] - bcs .L2249 + bcs .L2314 movs r3, #255 strb r3, [sp, #42] strb r3, [sp, #43] ldr r3, [sp, #24] lsls r1, r3, #31 - bpl .L2241 - ldr r3, [fp, #1168] + bpl .L2306 + ldr r3, [fp, #1172] add r2, sp, #42 mov r0, r10 add r3, r3, r6 @@ -13893,7 +14238,7 @@ FlashMakeFactorBbt: ldrb r2, [r4] @ zero_extendqisi2 cmp r2, #1 ldr r3, [sp, #36] - bne .L2241 + bne .L2306 ldr r1, [r4, #4] add r2, sp, #43 mov r0, r10 @@ -13903,62 +14248,66 @@ FlashMakeFactorBbt: ldrb r2, [sp, #43] @ zero_extendqisi2 ands r3, r3, r2 strb r3, [sp, #42] -.L2241: +.L2306: ldr r3, [sp, #24] lsls r2, r3, #30 - bpl .L2243 - ldr r3, [r4, #1204] + bpl .L2308 + ldr r3, [r4, #44] mov r0, r10 add r2, sp, #43 ldrh r1, [r3, #10] - ldr r3, [fp, #1168] + ldr r3, [fp, #1172] subs r1, r1, #1 add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L2243: - ldr r3, [r4, #1204] +.L2308: + ldr r3, [r4, #44] ldrb r2, [r3, #7] @ zero_extendqisi2 - ldrb r3, [sp, #42] @ zero_extendqisi2 cmp r2, #1 - beq .L2244 + beq .L2309 cmp r2, #8 - bne .L2245 -.L2244: - cbz r3, .L2266 + beq .L2309 + ldrb r3, [r3, #18] @ zero_extendqisi2 + cmp r3, #12 + bne .L2310 +.L2309: + ldrb r3, [sp, #42] @ zero_extendqisi2 + cbz r3, .L2331 ldrb r0, [sp, #43] @ zero_extendqisi2 clz r0, r0 lsrs r0, r0, #5 - b .L2246 -.L2245: + b .L2311 +.L2310: + ldrb r3, [sp, #42] @ zero_extendqisi2 cmp r3, #255 - bne .L2266 + bne .L2331 ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 it ne movne r0, #1 - b .L2246 -.L2266: + b .L2311 +.L2331: movs r0, #1 -.L2246: +.L2311: ldr r3, [sp, #24] lsls r3, r3, #29 - bpl .L2247 - ldr r3, .L2293+4 + bpl .L2312 + ldr r3, .L2361+4 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 - ldr r1, [r3, #1168] + ldr r1, [r3, #1172] add r1, r1, r6 bl SandiskProgTestBadBlock -.L2247: - cbz r0, .L2248 +.L2312: + cbz r0, .L2313 mov r1, r7 ldr r2, [sp, #4] - ldr r0, .L2293+12 + ldr r0, .L2361+12 add r9, r9, #1 bl printk - ldr r2, [r5, #1180] + ldr r2, [r5, #1184] uxth r9, r9 ldr r3, [sp, #12] and r0, r3, #31 @@ -13969,50 +14318,50 @@ FlashMakeFactorBbt: orrs r3, r3, r0 str r3, [r2, r1, lsl #2] ldr r2, [sp, #28] - ldrb r3, [r4, #2229] @ zero_extendqisi2 + ldrb r3, [r4, #2230] @ zero_extendqisi2 muls r3, r2, r3 cmp r9, r3 - bgt .L2249 -.L2248: + bgt .L2314 +.L2313: ldr r3, [sp, #4] adds r3, r3, #1 str r3, [sp, #4] ldr r3, [sp, #16] add r6, r6, r3 - b .L2239 -.L2249: + b .L2304 +.L2314: mov r2, r9 - ldr r0, .L2293+16 + ldr r0, .L2361+16 mov r1, r7 bl printk - ldrb r3, [r4, #2229] @ zero_extendqisi2 + ldrb r3, [r4, #2230] @ zero_extendqisi2 ldr r2, [sp, #28] muls r3, r2, r3 cmp r9, r3 - blt .L2251 - ldrh r2, [r4, #132] + blt .L2316 + ldrh r2, [r4, #136] movs r1, #0 - ldr r0, [r5, #1180] + ldr r0, [r5, #1184] lsls r2, r2, #9 bl ftl_memset -.L2251: +.L2316: cmp r7, #0 - bne .L2253 - ldrh r10, [r5, #1200] + bne .L2318 + ldrh r10, [r5, #1204] mov r9, #1 mov r6, r7 -.L2254: - ldr r3, .L2293+4 +.L2319: + ldr r3, .L2361+4 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, r10 - bls .L2290 + bls .L2358 mov r0, r10 bl FlashTestBlk - cbz r0, .L2255 + cbz r0, .L2320 mov r1, r10 - ldr r0, .L2293+20 + ldr r0, .L2361+20 bl printk - ldr r2, [r5, #1180] + ldr r2, [r5, #1184] lsr r0, r10, #5 adds r6, r6, #1 and r3, r10, #31 @@ -14021,82 +14370,82 @@ FlashMakeFactorBbt: lsl r3, r9, r3 orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2255: +.L2320: add r10, r10, #1 uxth r10, r10 - b .L2254 -.L2290: + b .L2319 +.L2358: add fp, r8, #-1 sub r9, r8, #50 mov r10, #1 uxth fp, fp -.L2257: +.L2322: cmp fp, r9 - ble .L2291 + ble .L2359 mov r0, fp bl FlashTestBlk - cbz r0, .L2258 + cbz r0, .L2323 mov r1, fp - ldr r0, .L2293+20 + ldr r0, .L2361+20 bl printk - ldr r2, [r5, #1180] + ldr r2, [r5, #1184] 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] -.L2258: +.L2323: add fp, fp, #-1 uxth fp, fp - b .L2257 -.L2291: - ldr r3, .L2293+4 - ldr r2, [r5, #1200] + b .L2322 +.L2359: + ldr r3, .L2361+4 + ldr r2, [r5, #1204] ldrb r3, [r3, #1] @ zero_extendqisi2 subs r3, r3, r2 cmp r6, r3 - bcc .L2253 - ldrh r2, [r4, #132] + bcc .L2318 + ldrh r2, [r4, #136] movs r1, #0 - ldr r0, [r5, #1180] + ldr r0, [r5, #1184] lsls r2, r2, #9 bl ftl_memset -.L2253: +.L2318: ldrb r6, [sp, #8] @ zero_extendqisi2 add r10, r8, #-1 add r9, r5, r7, lsl #1 uxth r10, r10 mul r6, r8, r6 -.L2261: +.L2326: mov r1, r7 - ldr r0, .L2293+24 + ldr r0, .L2361+24 mov r2, r10 bl printk - ldr r1, [r5, #1180] -.L2262: + ldr r1, [r5, #1184] +.L2327: lsr r3, r10, #5 and r2, r10, #31 ldr r3, [r1, r3, lsl #2] lsrs r3, r3, r2 ands r3, r3, #1 - beq .L2292 + beq .L2360 add r10, r10, #-1 uxth r10, r10 - b .L2262 -.L2292: + b .L2327 +.L2360: ldr r1, [sp, #20] movw r2, #61664 - strh r10, [r9, #1228] @ movhi + strh r10, [r9, #1232] @ 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, #1180] + ldr r3, [r5, #1184] mov r2, r1 str r3, [sp, #52] - ldr r3, [r5, #1212] + ldr r3, [r5, #1216] str r3, [sp, #56] add r3, r10, r6 lsls r3, r3, #10 @@ -14108,29 +14457,29 @@ FlashMakeFactorBbt: add r0, sp, #44 bl FlashProgPages ldr r3, [sp, #44] - cbz r3, .L2267 + cbz r3, .L2332 add r10, r10, #-1 uxth r10, r10 - b .L2261 -.L2267: + b .L2326 +.L2332: ldr r3, [sp, #8] adds r3, r3, #1 str r3, [sp, #8] - b .L2237 -.L2289: + b .L2302 +.L2357: add sp, sp, #84 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2294: +.L2362: .align 2 -.L2293: +.L2361: .word .LANCHOR4 .word .LANCHOR0 - .word .LC118 - .word .LC119 - .word .LC120 .word .LC121 .word .LC122 + .word .LC123 + .word .LC124 + .word .LC125 .fnend .size FlashMakeFactorBbt, .-FlashMakeFactorBbt .align 1 @@ -14146,51 +14495,51 @@ FtlLowFormatEraseBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r7, .L2347 + ldr r7, .L2415 str r0, [sp, #4] str r1, [sp] - ldrb r3, [r7, #2305] @ zero_extendqisi2 + ldrb r3, [r7, #2240] @ zero_extendqisi2 str r3, [sp, #16] - ldr r3, .L2347+4 - ldr r2, [r3, #220] + ldr r3, .L2415+4 + ldr r2, [r3, #224] mov fp, r3 cmp r2, #0 - bne .L2324 - ldrb r3, [r7, #140] @ zero_extendqisi2 + bne .L2392 + ldrb r3, [r7, #144] @ zero_extendqisi2 mov r8, #36 mov r9, r2 mov r5, r2 mov r4, r2 mov r10, fp str r3, [sp, #8] - str r0, [fp, #3288] -.L2297: - ldrh r0, [r7, #2316] + str r0, [fp, #3292] +.L2365: + ldrh r0, [r7, #2320] uxth r1, r9 - ldr r3, .L2347 + ldr r3, .L2415 cmp r0, r1 - bls .L2342 + bls .L2410 mul r6, r8, r1 - ldr r0, [fp, #224] + ldr r0, [fp, #228] movs r3, #0 str r3, [r0, r6] - ldr r3, .L2347 + ldr r3, .L2415 add r1, r1, r3 - ldrb r0, [r1, #2344] @ zero_extendqisi2 + ldrb r0, [r1, #2348] @ zero_extendqisi2 ldr r1, [sp, #4] bl V2P_block ldr r3, [sp] mov r6, r0 - cbz r3, .L2298 + cbz r3, .L2366 bl IsBlkInVendorPart - cbnz r0, .L2299 -.L2298: + cbnz r0, .L2367 +.L2366: mov r0, r6 bl FtlBbmIsBadBlock - cbnz r0, .L2300 - ldr r3, [fp, #224] + cbnz r0, .L2368 + ldr r3, [fp, #228] lsls r6, r6, #10 - ldrh r1, [r7, #2396] + ldrh r1, [r7, #2400] muls r1, r5, r1 it mi addmi r1, r1, #3 @@ -14199,117 +14548,117 @@ FtlLowFormatEraseBlock: bic r1, r1, #3 uxth r5, r5 str r0, [lr, #8] - ldr r0, [r10, #3340] + ldr r0, [r10, #3344] str r6, [lr, #4] add r1, r1, r0 str r1, [lr, #12] - b .L2299 -.L2300: + b .L2367 +.L2368: adds r4, r4, #1 uxth r4, r4 -.L2299: +.L2367: add r9, r9, #1 - b .L2297 -.L2342: + b .L2365 +.L2410: cmp r5, #0 - beq .L2323 + beq .L2391 ldr r2, [sp, #8] mov r8, #0 - ldr r0, [fp, #224] + ldr r0, [fp, #228] mov r9, #36 adds r6, r2, #0 mov r2, r5 it ne movne r6, #1 - strb r8, [r3, #2305] + strb r8, [r3, #2240] str r3, [sp, #8] mov r1, r6 bl FlashEraseBlocks ldrb r2, [sp, #16] @ zero_extendqisi2 ldr r3, [sp, #8] - strb r2, [r3, #2305] -.L2304: + strb r2, [r3, #2240] +.L2372: uxth r2, r8 cmp r2, r5 - bcs .L2343 + bcs .L2411 mul r2, r9, r8 - ldr r1, [fp, #224] + ldr r1, [fp, #228] adds r0, r1, r2 ldr r2, [r1, r2] adds r2, r2, #1 - bne .L2305 + bne .L2373 ldr r0, [r0, #4] adds r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L2305: +.L2373: add r8, r8, #1 - b .L2304 -.L2343: + b .L2372 +.L2411: ldr r3, [sp] - cbnz r3, .L2307 + cbnz r3, .L2375 movs r3, #6 uxth r6, r6 str r3, [sp, #12] movs r3, #1 str r3, [sp, #8] - b .L2308 -.L2307: - ldrh r3, [r7, #2386] + b .L2376 +.L2375: + ldrh r3, [r7, #2390] str r3, [sp, #8] - ldrb r3, [r7, #140] @ zero_extendqisi2 - cbnz r3, .L2325 + ldrb r3, [r7, #144] @ zero_extendqisi2 + cbnz r3, .L2393 ldr r3, [sp, #8] movs r6, #1 lsrs r3, r3, #2 str r3, [sp, #12] - b .L2308 -.L2325: + b .L2376 +.L2393: movs r6, #1 str r6, [sp, #12] -.L2308: - ldr r8, .L2347+4 +.L2376: + ldr r8, .L2415+4 movs r7, #0 mov r10, r8 -.L2318: +.L2386: mov fp, #0 mov r5, fp -.L2309: - ldr r9, .L2347 +.L2377: + ldr r9, .L2415 uxth r3, fp - ldrh r1, [r9, #2316] + ldrh r1, [r9, #2320] cmp r1, r3 - bls .L2344 + bls .L2412 movs r2, #36 - ldr r0, [r8, #224] + ldr r0, [r8, #228] mul r1, r2, r3 movs r2, #0 str r2, [r0, r1] - ldr r2, .L2347 + ldr r2, .L2415 ldr r1, [sp, #4] add r3, r3, r2 - ldrb r0, [r3, #2344] @ zero_extendqisi2 + ldrb r0, [r3, #2348] @ zero_extendqisi2 bl V2P_block ldr r3, [sp] mov r9, r0 - cbz r3, .L2310 + cbz r3, .L2378 bl IsBlkInVendorPart - cbnz r0, .L2311 -.L2310: + cbnz r0, .L2379 +.L2378: mov r0, r9 bl FtlBbmIsBadBlock - cbnz r0, .L2311 - ldr r1, [r10, #224] + cbnz r0, .L2379 + ldr r1, [r10, #228] movs r3, #36 - ldr r0, [r8, #3332] + ldr r0, [r8, #3336] mla r1, r3, r5, r1 add r3, r7, r9, lsl #10 str r3, [r1, #4] - ldr r3, [r10, #3328] + ldr r3, [r10, #3332] str r3, [r1, #8] - ldr r3, .L2347 - ldrh r3, [r3, #2396] + ldr r3, .L2415 + ldrh r3, [r3, #2400] muls r3, r5, r3 add r5, r5, #1 it mi @@ -14318,32 +14667,32 @@ FtlLowFormatEraseBlock: uxth r5, r5 add r3, r3, r0 str r3, [r1, #12] -.L2311: +.L2379: add fp, fp, #1 - b .L2309 -.L2344: + b .L2377 +.L2412: cmp r5, #0 - beq .L2323 + beq .L2391 mov r2, r6 movs r3, #1 - ldr r0, [r8, #224] + ldr r0, [r8, #228] mov r1, r5 mov fp, #0 - strb fp, [r9, #2305] + strb fp, [r9, #2240] bl FlashProgPages movs r2, #36 ldrb r3, [sp, #16] @ zero_extendqisi2 - strb r3, [r9, #2305] - ldr r9, .L2347+4 -.L2315: + strb r3, [r9, #2240] + ldr r9, .L2415+4 +.L2383: uxth r3, fp cmp r3, r5 - bcs .L2345 + bcs .L2413 mul r3, r2, fp - ldr r1, [r10, #224] + ldr r1, [r10, #228] adds r0, r1, r3 ldr r3, [r1, r3] - cbz r3, .L2316 + cbz r3, .L2384 ldr r0, [r0, #4] adds r4, r4, #1 str r2, [sp, #20] @@ -14351,59 +14700,59 @@ FtlLowFormatEraseBlock: uxth r4, r4 bl FtlBbmMapBadBlock ldr r2, [sp, #20] -.L2316: +.L2384: add fp, fp, #1 - b .L2315 -.L2345: + b .L2383 +.L2413: ldr r3, [sp, #12] add r7, r7, r3 ldr r3, [sp, #8] uxth r7, r7 cmp r7, r3 - bcc .L2318 + bcc .L2386 movs r7, #0 mov r8, #36 -.L2319: +.L2387: uxth r3, r7 cmp r3, r5 - bcs .L2346 + bcs .L2414 ldr r3, [sp] - cbz r3, .L2320 + cbz r3, .L2388 mul r3, r8, r7 - ldr r2, [r9, #224] + ldr r2, [r9, #228] adds r1, r2, r3 ldr r3, [r2, r3] - cbnz r3, .L2320 + cbnz r3, .L2388 ldr r0, [r1, #4] movs r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L2320: +.L2388: adds r7, r7, #1 - b .L2319 -.L2346: + b .L2387 +.L2414: ldr r3, [sp, #4] cmp r3, #63 - bls .L2322 + bls .L2390 ldr r3, [sp] - cbz r3, .L2323 -.L2322: - ldr r0, [r9, #224] + cbz r3, .L2391 +.L2390: + ldr r0, [r9, #228] mov r1, r6 mov r2, r5 bl FlashEraseBlocks -.L2323: +.L2391: mov r0, r4 - b .L2296 -.L2324: + b .L2364 +.L2392: movs r0, #0 -.L2296: +.L2364: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2348: +.L2416: .align 2 -.L2347: +.L2415: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -14421,144 +14770,144 @@ FtlBbmTblFlush: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r7, .L2366 - ldr r6, [r7, #220] + ldr r7, .L2434 + ldr r6, [r7, #224] cmp r6, #0 - bne .L2351 - ldr r4, .L2366+4 + bne .L2419 + ldr r4, .L2434+4 mov r1, r6 - ldr r0, [r7, #3312] - ldr r5, .L2366+8 - addw r9, r4, #2472 - ldr r3, [r7, #3336] - ldrh r2, [r4, #2394] - str r0, [r5, #1252] - str r3, [r5, #1256] + ldr r0, [r7, #3316] + ldr r5, .L2434+8 + addw r9, r4, #2476 + ldr r3, [r7, #3340] + ldrh r2, [r4, #2398] + str r0, [r5, #1256] + str r3, [r5, #1260] bl ftl_memset -.L2352: - ldrh r3, [r4, #2338] - ldr r8, .L2366+4 +.L2420: + ldrh r3, [r4, #2342] + ldr r8, .L2434+4 cmp r6, r3 - bge .L2365 - ldrh r2, [r7, #3400] - ldr r3, [r5, #1252] + bge .L2433 + ldrh r2, [r7, #3404] + ldr r3, [r5, #1256] ldr r1, [r9, #4]! mul r0, r2, r6 lsls r2, r2, #2 adds r6, r6, #1 add r0, r3, r0, lsl #2 bl ftl_memcpy - b .L2352 -.L2365: - ldr r6, [r5, #1256] + b .L2420 +.L2433: + ldr r6, [r5, #1260] movs r1, #255 movs r2, #16 - ldr fp, .L2366 + ldr fp, .L2434 mov r0, r6 bl ftl_memset movw r3, #61649 strh r3, [r6] @ movhi - ldr r3, [r8, #2456] + ldr r3, [r8, #2460] str r3, [r6, #4] - ldrh r3, [r8, #2448] - strh r3, [r6, #2] @ movhi ldrh r3, [r8, #2452] + strh r3, [r6, #2] @ movhi + ldrh r3, [r8, #2456] strh r3, [r6, #8] @ movhi - ldrh r3, [r8, #2454] + ldrh r3, [r8, #2458] strh r3, [r6, #10] @ movhi - ldr r3, [r8, #2312] + ldr r3, [r8, #2316] mov r8, #0 mov r10, r8 strh r3, [r6, #12] @ movhi -.L2354: - ldr r3, [r7, #3312] +.L2422: + ldr r3, [r7, #3316] mov ip, #0 - ldrh r1, [r4, #2448] - ldrh r2, [r4, #2450] - str r3, [r5, #1252] - ldr r3, [r7, #3336] - str ip, [r5, #1244] - str ip, [sp, #12] + ldrh r1, [r4, #2452] + ldrh r2, [r4, #2454] str r3, [r5, #1256] + ldr r3, [r7, #3340] + str ip, [r5, #1248] + str ip, [sp, #12] + str r3, [r5, #1260] orr r3, r2, r1, lsl #10 ldrh r0, [r6, #10] - str r3, [r5, #1248] - ldrh r3, [r4, #2452] + str r3, [r5, #1252] + ldrh r3, [r4, #2456] str r0, [sp] - ldr r0, .L2366+12 + ldr r0, .L2434+12 bl printk - ldrh r3, [r4, #2386] - ldrh r2, [r4, #2450] + ldrh r3, [r4, #2390] + ldrh r2, [r4, #2454] subs r3, r3, #1 - ldr r9, .L2366+4 + ldr r9, .L2434+4 cmp r2, r3 ldr ip, [sp, #12] - blt .L2355 - ldrh r2, [r9, #2448] + blt .L2423 + ldrh r2, [r9, #2452] movs r1, #1 - ldr r3, [r9, #2456] - ldr r0, [fp, #224] + ldr r3, [r9, #2460] + ldr r0, [fp, #228] adds r3, r3, #1 - str r3, [r9, #2456] + str r3, [r9, #2460] str r3, [r6, #4] strh r2, [r6, #8] @ movhi - ldrh r3, [r9, #2452] - strh r2, [r9, #2452] @ movhi - ldr r2, .L2366+8 - strh r3, [r9, #2448] @ movhi + ldrh r3, [r9, #2456] + strh r2, [r9, #2456] @ movhi + ldr r2, .L2434+8 + strh r3, [r9, #2452] @ movhi lsls r3, r3, #10 - strh ip, [r9, #2450] @ movhi - str r3, [r2, #1248] + strh ip, [r9, #2454] @ movhi + str r3, [r2, #1252] mov r2, r1 str r3, [r0, #4] bl FlashEraseBlocks -.L2355: +.L2423: movs r1, #1 - ldr r9, .L2366+8 + ldr r9, .L2434+8 mov r2, r1 mov r3, r1 - addw r0, r9, #1244 + add r0, r9, #1248 bl FlashProgPages - ldrh r3, [r4, #2450] + ldrh r3, [r4, #2454] adds r3, r3, #1 - strh r3, [r4, #2450] @ movhi - ldr r3, [r5, #1244] + strh r3, [r4, #2454] @ movhi + ldr r3, [r5, #1248] adds r2, r3, #1 - bne .L2356 + bne .L2424 add r8, r8, #1 - ldr r0, .L2366+16 - ldr r1, [r9, #1248] + ldr r0, .L2434+16 + ldr r1, [r9, #1252] uxth r8, r8 bl printk cmp r8, #3 - bls .L2354 - ldr r0, .L2366+20 + bls .L2422 + ldr r0, .L2434+20 mov r2, r8 - ldr r1, [r9, #1248] + ldr r1, [r9, #1252] bl printk movs r3, #1 - str r3, [r7, #220] - b .L2351 -.L2356: + str r3, [r7, #224] + b .L2419 +.L2424: add r10, r10, #1 cmp r10, #1 - beq .L2354 + beq .L2422 cmp r3, #256 - beq .L2354 -.L2351: + beq .L2422 +.L2419: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2367: +.L2435: .align 2 -.L2366: +.L2434: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR4 - .word .LC123 - .word .LC124 - .word .LC125 + .word .LC126 + .word .LC127 + .word .LC128 .fnend .size FtlBbmTblFlush, .-FtlBbmTblFlush .align 1 @@ -14573,103 +14922,103 @@ 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, .L2424 + ldr r4, .L2492 .pad #20 sub sp, sp, #20 - ldr r3, [r4, #220] + ldr r3, [r4, #224] cmp r3, #0 - bne .L2369 - ldr r9, .L2424+16 + bne .L2437 + ldr r9, .L2492+16 mov r8, r4 -.L2370: - ldr r3, .L2424+4 +.L2438: + ldr r3, .L2492+4 ldrb r2, [r5, #8] @ zero_extendqisi2 cmp r5, r3 - bne .L2371 - ldrh r7, [r8, #308] - ldr r6, [r8, #1128] + bne .L2439 + ldrh r7, [r8, #312] + ldr r6, [r8, #1132] lsrs r1, r7, #1 mul r0, r6, r7 adds r3, r1, #1 add r3, r3, r0, lsr #2 - ldr r0, [r9, #2308] + ldr r0, [r9, #2244] uxth r3, r3 - cbz r0, .L2394 - ldr r0, [r8, #528] + cbz r0, .L2462 + ldr r0, [r8, #532] cmp r0, #39 - bhi .L2394 + bhi .L2462 cmp r0, #2 - bls .L2399 + bls .L2467 lsls r0, r7, #31 - bpl .L2372 - cbz r6, .L2396 - b .L2372 -.L2371: + bpl .L2440 + cbz r6, .L2464 + b .L2440 +.L2439: cmp r2, #1 - bne .L2399 - ldrh r3, [r9, #2336] + bne .L2467 + ldrh r3, [r9, #2340] cmp r3, #1 - beq .L2399 - ldrb r3, [r9, #140] @ zero_extendqisi2 - cbnz r3, .L2399 - ldrh r0, [r8, #308] - ldr r3, [r9, #2308] + beq .L2467 + ldrb r3, [r9, #144] @ zero_extendqisi2 + cbnz r3, .L2467 + ldrh r0, [r8, #312] + ldr r3, [r9, #2244] lsrs r1, r0, #3 - cbz r3, .L2372 - ldr r3, [r8, #528] + cbz r3, .L2440 + ldr r3, [r8, #532] cmp r3, #1 - bhi .L2372 + bhi .L2440 rsb r0, r0, r0, lsl #3 ubfx r1, r0, #3, #16 - b .L2372 -.L2394: + b .L2440 +.L2462: mov r1, r3 -.L2372: - cbz r1, .L2373 +.L2440: + cbz r1, .L2441 subs r1, r1, #1 uxth r1, r1 - b .L2373 -.L2396: + b .L2441 +.L2464: mov r1, r6 - b .L2373 -.L2399: + b .L2441 +.L2467: movs r1, #0 -.L2373: - ldr r0, .L2424+8 +.L2441: + ldr r0, .L2492+8 bl List_pop_index_node - ldrh r3, [r4, #308] + ldrh r3, [r4, #312] subs r3, r3, #1 - strh r3, [r4, #308] @ movhi - ldrh r3, [r9, #2324] + strh r3, [r4, #312] @ movhi + ldrh r3, [r9, #2328] uxth r6, r0 cmp r3, r6 - bls .L2370 - ldr r3, [r8, #292] + bls .L2438 + ldr r3, [r8, #296] ldrh r7, [r3, r6, lsl #1] cmp r7, #0 - bne .L2370 + bne .L2438 strh r6, [r5] @ movhi mov r0, r5 bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 - cbz r3, .L2375 - ldr r0, [r8, #224] + cbz r3, .L2443 + ldr r0, [r8, #228] movs r2, #36 - ldrh ip, [r9, #2316] + ldrh ip, [r9, #2320] add lr, r5, #14 movw r10, #65535 mov r3, r0 mla r1, r2, ip, r0 mov ip, r7 str r1, [sp, #4] - b .L2376 -.L2375: - ldr r3, [r8, #292] - b .L2419 -.L2376: + b .L2444 +.L2443: + ldr r3, [r8, #296] + b .L2487 +.L2444: ldr r1, [sp, #4] cmp r3, r1 - beq .L2421 + beq .L2489 str ip, [r3, #8] adds r3, r3, #36 str ip, [r3, #-24] @@ -14682,70 +15031,70 @@ allocate_data_superblock: uxthne r7, r7 it ne strne r1, [fp, #4] - b .L2376 -.L2421: - ldr r3, [r9, #2308] - cbz r3, .L2379 - ldr r3, .L2424+12 + b .L2444 +.L2489: + ldr r3, [r9, #2244] + cbz r3, .L2447 + ldr r3, .L2492+12 cmp r5, r3 - bne .L2379 - ldr r3, [r8, #228] + bne .L2447 + ldr r3, [r8, #232] ldrh r3, [r3, r6, lsl #1] cmp r3, #40 itt hi movhi r3, #0 - strbhi r3, [r8, #320] -.L2379: + strbhi r3, [r8, #324] +.L2447: ldrb r3, [r5, #8] @ zero_extendqisi2 - ldr r2, [r4, #228] - cbnz r3, .L2380 + ldr r2, [r4, #232] + cbnz r3, .L2448 ldrh r1, [r2, r6, lsl #1] - cbz r1, .L2400 - ldrh r3, [r9, #2376] + cbz r1, .L2468 + ldrh r3, [r9, #2380] add r3, r3, r1 uxth r3, r3 - b .L2381 -.L2400: + b .L2449 +.L2468: movs r3, #2 -.L2381: +.L2449: strh r3, [r2, r6, lsl #1] @ movhi mov r0, r6 - ldr r3, [r4, #512] + ldr r3, [r4, #516] movs r1, #0 adds r3, r3, #1 - str r3, [r4, #512] + str r3, [r4, #516] bl ftl_set_blk_mode - b .L2382 -.L2380: + b .L2450 +.L2448: 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, #516] - ldr r2, [r4, #468] + ldr r3, [r4, #520] + ldr r2, [r4, #472] adds r3, r3, #1 - str r3, [r4, #516] + str r3, [r4, #520] movs r3, #1 lsls r3, r3, r1 ldr r1, [r2, r0, lsl #2] orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2382: - ldr r3, [r4, #228] - ldr r2, [r4, #524] - ldr r0, [r4, #512] +.L2450: + ldr r3, [r4, #232] + ldr r2, [r4, #528] + ldr r0, [r4, #516] ldrh r3, [r3, r6, lsl #1] - ldrh r1, [r9, #2324] + ldrh r1, [r9, #2328] cmp r3, r2 - ldrh r2, [r9, #2376] + ldrh r2, [r9, #2380] it hi - strhi r3, [r8, #524] - ldr r3, [r4, #516] + strhi r3, [r8, #528] + ldr r3, [r4, #520] mla r0, r0, r2, r3 bl __aeabi_uidiv - ldr r2, [r4, #3356] - ldr r1, [r4, #224] + ldr r2, [r4, #3360] + ldr r1, [r4, #228] ldr r3, [r2, #16] adds r3, r3, #1 str r3, [r2, #16] @@ -14753,46 +15102,46 @@ allocate_data_superblock: adds r2, r1, #4 mla r3, r3, r7, r1 adds r3, r3, #40 - str r0, [r4, #520] -.L2384: + str r0, [r4, #524] +.L2452: adds r2, r2, #36 cmp r2, r3 - beq .L2422 + beq .L2490 ldr r1, [r2, #-36] bic r1, r1, #1020 bic r1, r1, #3 str r1, [r2, #-36] - b .L2384 -.L2422: - ldrb r3, [r9, #140] @ zero_extendqisi2 - cbz r3, .L2386 + b .L2452 +.L2490: + ldrb r3, [r9, #144] @ zero_extendqisi2 + cbz r3, .L2454 ldrb r3, [r5, #8] @ zero_extendqisi2 mov r2, r7 - ldr r0, [r4, #224] + ldr r0, [r4, #228] cmp r3, #1 ite eq moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2386: +.L2454: mov r2, r7 - ldr r0, [r4, #224] + ldr r0, [r4, #228] ldrb r1, [r5, #8] @ zero_extendqisi2 mov r10, #0 bl FlashEraseBlocks add r2, r5, #16 mov ip, #36 mov fp, r10 -.L2388: +.L2456: uxth r3, r10 cmp r3, r7 - bcs .L2423 + bcs .L2491 mul r3, ip, r10 - ldr r1, [r4, #224] + ldr r1, [r4, #228] adds r0, r1, r3 ldr r3, [r1, r3] adds r1, r3, #1 - bne .L2389 + bne .L2457 ldr r0, [r0, #4] add fp, fp, #1 str ip, [sp, #12] @@ -14807,53 +15156,53 @@ allocate_data_superblock: ldrb r3, [r5, #7] @ zero_extendqisi2 subs r3, r3, #1 strb r3, [r5, #7] -.L2389: +.L2457: add r10, r10, #1 adds r2, r2, #2 - b .L2388 -.L2423: + b .L2456 +.L2491: cmp fp, #0 - beq .L2391 + beq .L2459 mov r0, r6 bl update_multiplier_value bl FtlBbmTblFlush -.L2391: +.L2459: ldrb r3, [r5, #7] @ zero_extendqisi2 - cbnz r3, .L2392 - ldr r3, [r4, #292] -.L2419: + cbnz r3, .L2460 + ldr r3, [r4, #296] +.L2487: movw r2, #65535 strh r2, [r3, r6, lsl #1] @ movhi - b .L2370 -.L2392: - ldr r2, .L2424+16 - ldrh r2, [r2, #2384] + b .L2438 +.L2460: + ldr r2, .L2492+16 + ldrh r2, [r2, #2388] strh r6, [r5] @ movhi smulbb r3, r2, r3 movs r2, #0 strh r2, [r5, #2] @ movhi strb r2, [r5, #6] - ldr r2, [r4, #504] + ldr r2, [r4, #508] uxth r3, r3 strh r3, [r5, #4] @ movhi str r2, [r5, #12] adds r2, r2, #1 - str r2, [r4, #504] - ldr r2, [r4, #292] + str r2, [r4, #508] + ldr r2, [r4, #296] ldrh r1, [r5] strh r3, [r2, r1, lsl #1] @ movhi -.L2369: +.L2437: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2425: +.L2493: .align 2 -.L2424: +.L2492: .word .LANCHOR2 - .word .LANCHOR2+408 - .word .LANCHOR2+304 - .word .LANCHOR2+312 + .word .LANCHOR2+412 + .word .LANCHOR2+308 + .word .LANCHOR2+316 .word .LANCHOR0 .fnend .size allocate_data_superblock, .-allocate_data_superblock @@ -14869,77 +15218,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, .L2439 + ldr r5, .L2507 str r0, [sp] - ldrh r3, [r5, #1178] + ldrh r3, [r5, #1182] cmp r3, #0 - beq .L2428 - ldr r7, .L2439+4 + beq .L2496 + ldr r7, .L2507+4 mov r10, #0 mov r8, r5 -.L2427: - ldrh r2, [r7, #2316] +.L2495: + ldrh r2, [r7, #2320] uxth r3, r10 cmp r2, r3 - bls .L2436 + bls .L2504 add r3, r3, r7 ldr r1, [sp] mov fp, #0 - ldrb r0, [r3, #2344] @ zero_extendqisi2 + ldrb r0, [r3, #2348] @ zero_extendqisi2 bl V2P_block - ldr r2, .L2439+8 + ldr r2, .L2507+8 mov r9, r0 -.L2429: - ldrh r3, [r5, #1178] +.L2497: + ldrh r3, [r5, #1182] uxth r4, fp cmp r3, r4 - bls .L2437 + bls .L2505 lsls r6, r4, #1 add r3, r8, r6 - ldrh r3, [r3, #1180] + ldrh r3, [r3, #1184] cmp r3, r9 - bne .L2430 + bne .L2498 mov r1, r9 - ldr r0, .L2439+12 + ldr r0, .L2507+12 str r2, [sp, #4] bl printk mov r0, r9 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh r1, [r8, #1178] + ldrh r1, [r8, #1182] ldr r2, [sp, #4] adds r3, r2, r6 -.L2431: +.L2499: cmp r4, r1 - bcs .L2438 + bcs .L2506 ldrh r0, [r3, #2] adds r4, r4, #1 uxth r4, r4 strh r0, [r3], #2 @ movhi - b .L2431 -.L2438: + b .L2499 +.L2506: subs r1, r1, #1 - strh r1, [r5, #1178] @ movhi -.L2430: + strh r1, [r5, #1182] @ movhi +.L2498: add fp, fp, #1 - b .L2429 -.L2437: + b .L2497 +.L2505: add r10, r10, #1 - b .L2427 -.L2436: + b .L2495 +.L2504: bl FtlGcReFreshBadBlk -.L2428: +.L2496: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2440: +.L2508: .align 2 -.L2439: +.L2507: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+1180 - .word .LC126 + .word .LANCHOR2+1184 + .word .LC129 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 1 @@ -14951,53 +15300,53 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2450 + ldr r2, .L2518 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r3, [r2, #292] + ldr r3, [r2, #296] mov r5, r2 ldrh r3, [r3, r0, lsl #1] - cbnz r3, .L2442 - ldrh r1, [r2, #552] + cbnz r3, .L2510 + ldrh r1, [r2, #556] cmp r1, r0 - bne .L2443 + bne .L2511 movw r3, #65535 - strh r3, [r2, #552] @ movhi - b .L2444 -.L2443: - ldrh r1, [r2, #312] + strh r3, [r2, #556] @ movhi + b .L2512 +.L2511: + ldrh r1, [r2, #316] cmp r1, r0 - beq .L2449 - ldrh r1, [r2, #360] + beq .L2517 + ldrh r1, [r2, #364] cmp r1, r0 - beq .L2449 - ldrh r2, [r2, #408] + beq .L2517 + ldrh r2, [r2, #412] cmp r2, r0 - beq .L2449 -.L2444: + beq .L2517 +.L2512: mov r1, r4 - ldr r0, .L2450+4 + ldr r0, .L2518+4 bl List_remove_node - ldrh r3, [r5, #300] + ldrh r3, [r5, #304] mov r0, r4 subs r3, r3, #1 - strh r3, [r5, #300] @ movhi + strh r3, [r5, #304] @ movhi bl free_data_superblock mov r0, r4 bl FtlGcFreeBadSuperBlk movs r0, #1 pop {r3, r4, r5, pc} -.L2442: +.L2510: bl List_update_data_list -.L2449: +.L2517: movs r0, #0 pop {r3, r4, r5, pc} -.L2451: +.L2519: .align 2 -.L2450: +.L2518: .word .LANCHOR2 - .word .LANCHOR2+288 + .word .LANCHOR2+292 .fnend .size update_vpc_list, .-update_vpc_list .align 1 @@ -15014,67 +15363,67 @@ decrement_vpc_count: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - ldr r5, .L2462 - beq .L2453 - ldr r3, [r5, #292] + ldr r5, .L2530 + beq .L2521 + ldr r3, [r5, #296] ldrh r2, [r3, r0, lsl #1] - cbnz r2, .L2454 + cbnz r2, .L2522 mov r1, r4 - ldr r0, .L2462+4 + ldr r0, .L2530+4 bl printk - ldr r3, [r5, #292] + ldr r3, [r5, #296] movs r2, #32 - add r0, r5, #304 + add r0, r5, #308 mov r1, r4 strh r2, [r3, r4, lsl #1] @ movhi bl test_node_in_list - cbz r0, .L2455 + cbz r0, .L2523 mov r1, r4 - add r0, r5, #304 + add r0, r5, #308 bl List_remove_node - ldrh r3, [r5, #308] + ldrh r3, [r5, #312] mov r0, r4 subs r3, r3, #1 - strh r3, [r5, #308] @ movhi + strh r3, [r5, #312] @ movhi bl INSERT_DATA_LIST - ldr r3, [r5, #292] - ldr r0, .L2462+8 + ldr r3, [r5, #296] + ldr r0, .L2530+8 mov r1, r4 ldrh r2, [r3, r4, lsl #1] bl printk -.L2455: +.L2523: mov r0, r4 bl FtlGcRefreshBlock - b .L2458 -.L2454: + b .L2526 +.L2522: subs r2, r2, #1 strh r2, [r3, r0, lsl #1] @ movhi -.L2453: - ldrh r0, [r5, #3456] +.L2521: + ldrh r0, [r5, #3460] movw r3, #65535 - ldr r6, .L2462 + ldr r6, .L2530 cmp r0, r3 - bne .L2457 - strh r4, [r6, #3456] @ movhi - b .L2458 -.L2457: + bne .L2525 + strh r4, [r6, #3460] @ movhi + b .L2526 +.L2525: cmp r0, r4 - beq .L2458 + beq .L2526 bl update_vpc_list - strh r4, [r6, #3456] @ movhi + strh r4, [r6, #3460] @ movhi adds r0, r0, #0 it ne movne r0, #1 pop {r4, r5, r6, pc} -.L2458: +.L2526: movs r0, #0 pop {r4, r5, r6, pc} -.L2463: +.L2531: .align 2 -.L2462: +.L2530: .word .LANCHOR2 - .word .LC127 - .word .LC128 + .word .LC130 + .word .LC131 .fnend .size decrement_vpc_count, .-decrement_vpc_count .align 1 @@ -15091,22 +15440,22 @@ FtlSlcSuperblockCheck: mov r4, r0 ldrh r3, [r0, #4] cmp r3, #0 - beq .L2464 + beq .L2532 ldrh r3, [r0] movw r5, #65535 cmp r3, r5 - beq .L2464 + beq .L2532 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r7, .L2476 + ldr r7, .L2544 adds r3, r3, #8 - ldr r6, .L2476+4 + ldr r6, .L2544+4 ldrh r3, [r0, r3, lsl #1] -.L2468: +.L2536: cmp r3, r5 - bne .L2475 -.L2470: + bne .L2543 +.L2538: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r2, [r7, #2316] + ldrh r2, [r7, #2320] adds r3, r3, #1 uxtb r3, r3 strb r3, [r4, #6] @@ -15121,18 +15470,18 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r3, [r4, r3, lsl #1] - b .L2468 -.L2475: + b .L2536 +.L2543: ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2471 - ldrb r3, [r7, #140] @ zero_extendqisi2 - cbnz r3, .L2471 + bne .L2539 + ldrb r3, [r7, #144] @ zero_extendqisi2 + cbnz r3, .L2539 ldrh r3, [r4, #2] add r3, r6, r3, lsl #1 - ldrh r3, [r3, #1216] + ldrh r3, [r3, #1220] cmp r3, r5 - bne .L2471 + bne .L2539 ldrh r3, [r4, #4] ldrh r0, [r4] subs r3, r3, #1 @@ -15140,39 +15489,39 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L2470 + bne .L2538 ldrh r3, [r4, #2] strb r2, [r4, #6] adds r3, r3, #1 strh r3, [r4, #2] @ movhi pop {r3, r4, r5, r6, r7, pc} -.L2471: - ldr r2, .L2476 - ldrb r3, [r2, #140] @ zero_extendqisi2 - cbz r3, .L2464 +.L2539: + ldr r2, .L2544 + ldrb r3, [r2, #144] @ zero_extendqisi2 + cbz r3, .L2532 cmp r1, #1 - bne .L2464 + bne .L2532 ldrh r1, [r4, #2] - ldrh r3, [r2, #2386] + ldrh r3, [r2, #2390] cmp r1, r3 - bcc .L2464 - ldr r3, .L2476+4 + bcc .L2532 + ldr r3, .L2544+4 ldrh r0, [r4] ldrh r5, [r4, #4] - ldr r1, [r3, #292] + ldr r1, [r3, #296] ldrh r3, [r1, r0, lsl #1] subs r3, r3, r5 strh r3, [r1, r0, lsl #1] @ movhi - ldrh r2, [r2, #2384] + ldrh r2, [r2, #2388] movs r3, #0 strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L2464: +.L2532: pop {r3, r4, r5, r6, r7, pc} -.L2477: +.L2545: .align 2 -.L2476: +.L2544: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -15193,17 +15542,17 @@ get_new_active_ppa: mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 movw r7, #65535 - ldr r8, .L2495+4 + ldr r8, .L2563+4 adds r3, r3, #8 - ldr r5, .L2495 + ldr r5, .L2563 ldrh r2, [r0, r3, lsl #1] -.L2479: +.L2547: cmp r2, r7 - ldr r6, .L2495+4 - bne .L2494 -.L2480: + ldr r6, .L2563+4 + bne .L2562 +.L2548: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r2, [r8, #2316] + ldrh r2, [r8, #2320] adds r3, r3, #1 uxtb r3, r3 strb r3, [r4, #6] @@ -15218,34 +15567,34 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r2, [r4, r3, lsl #1] - b .L2479 -.L2494: + b .L2547 +.L2562: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r1, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L2482 - ldrb r0, [r8, #140] @ zero_extendqisi2 - cbnz r0, .L2482 + bne .L2550 + ldrb r0, [r8, #144] @ zero_extendqisi2 + cbnz r0, .L2550 add r0, r5, r1, lsl #1 - ldrh r0, [r0, #1216] + ldrh r0, [r0, #1220] cmp r0, r7 - bne .L2482 + bne .L2550 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2480 -.L2482: + b .L2548 +.L2550: movw r7, #65535 orr r5, r1, r2, lsl #10 mov r8, r7 subs r3, r3, #1 strh r3, [r4, #4] @ movhi -.L2483: +.L2551: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r1, [r6, #2316] -.L2485: + ldrh r1, [r6, #2320] +.L2553: adds r3, r3, #1 uxtb r3, r3 cmp r3, r1 @@ -15257,52 +15606,52 @@ get_new_active_ppa: add r2, r3, #8 ldrh r2, [r4, r2, lsl #1] cmp r2, r7 - beq .L2485 + beq .L2553 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2490 - ldrb r3, [r6, #140] @ zero_extendqisi2 - cbnz r3, .L2487 + bne .L2558 + ldrb r3, [r6, #144] @ zero_extendqisi2 + cbnz r3, .L2555 ldrh r2, [r4, #2] - ldr r3, .L2495 + ldr r3, .L2563 add r3, r3, r2, lsl #1 - ldrh r3, [r3, #1216] + ldrh r3, [r3, #1220] cmp r3, r8 - bne .L2487 + bne .L2555 ldrh r3, [r4, #4] - cbz r3, .L2487 + cbz r3, .L2555 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2483 -.L2487: - ldrb r3, [r6, #140] @ zero_extendqisi2 - ldr r2, .L2495+4 - cbz r3, .L2490 + b .L2551 +.L2555: + ldrb r3, [r6, #144] @ zero_extendqisi2 + ldr r2, .L2563+4 + cbz r3, .L2558 ldrh r1, [r4, #2] - ldrh r3, [r2, #2386] + ldrh r3, [r2, #2390] cmp r1, r3 - bcc .L2490 - ldr r3, .L2495 + bcc .L2558 + ldr r3, .L2563 ldrh r0, [r4] ldrh r6, [r4, #4] - ldr r1, [r3, #292] + ldr r1, [r3, #296] ldrh r3, [r1, r0, lsl #1] subs r3, r3, r6 strh r3, [r1, r0, lsl #1] @ movhi - ldrh r2, [r2, #2384] + ldrh r2, [r2, #2388] movs r3, #0 strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L2490: +.L2558: mov r0, r5 pop {r4, r5, r6, r7, r8, pc} -.L2496: +.L2564: .align 2 -.L2495: +.L2563: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -15318,198 +15667,199 @@ FtlVpcTblFlush: @ 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, .L2520 - ldr r3, [r4, #220] + ldr r4, .L2588 + ldr r3, [r4, #224] cmp r3, #0 - bne .L2499 - ldr r5, .L2520+4 + bne .L2567 + ldr r5, .L2588+4 movs r1, #255 - ldr r2, [r4, #3312] - ldr r7, [r4, #3336] - ldr r6, .L2520+8 - str r2, [r5, #1252] - ldrh r2, [r4, #536] - str r7, [r5, #1256] + ldr r2, [r4, #3316] + ldr r7, [r4, #3340] + ldr r6, .L2588+8 + str r2, [r5, #1256] + ldrh r2, [r4, #540] + str r7, [r5, #1260] str r3, [r7, #12] strh r2, [r7, #2] @ movhi movw r2, #61604 strh r2, [r7] @ movhi - ldr r2, [r4, #544] + ldr r2, [r4, #548] str r3, [r7, #8] - ldr r3, .L2520+12 + ldr r3, .L2588+12 str r2, [r7, #4] - ldrh r2, [r4, #314] - str r3, [r4, #236] - ldr r3, .L2520+16 + ldrh r2, [r4, #318] str r3, [r4, #240] - ldrh r3, [r4, #542] - strh r3, [r4, #244] @ movhi - ldrh r3, [r6, #2338] - strb r3, [r4, #246] - ldrh r3, [r4, #312] - strh r3, [r4, #250] @ movhi - ldrb r3, [r4, #318] @ zero_extendqisi2 - orr r3, r3, r2, lsl #6 - strh r3, [r4, #252] @ movhi - ldrb r3, [r4, #320] @ zero_extendqisi2 - ldrh r2, [r4, #362] - strb r3, [r4, #247] - ldrh r3, [r4, #360] + ldr r3, .L2588+16 + str r3, [r4, #244] + ldrh r3, [r4, #546] + strh r3, [r4, #248] @ movhi + ldrh r3, [r6, #2342] + strb r3, [r4, #250] + ldrh r3, [r4, #316] strh r3, [r4, #254] @ movhi - ldrb r3, [r4, #366] @ zero_extendqisi2 + ldrb r3, [r4, #322] @ zero_extendqisi2 orr r3, r3, r2, lsl #6 strh r3, [r4, #256] @ movhi - ldrb r3, [r4, #368] @ zero_extendqisi2 - strb r3, [r4, #248] - ldrh r3, [r4, #408] + ldrb r3, [r4, #324] @ zero_extendqisi2 + ldrh r2, [r4, #366] + strb r3, [r4, #251] + ldrh r3, [r4, #364] strh r3, [r4, #258] @ movhi - ldrh r2, [r4, #410] - ldrb r3, [r4, #414] @ zero_extendqisi2 - ldr r0, [r5, #1252] + ldrb r3, [r4, #370] @ zero_extendqisi2 orr r3, r3, r2, lsl #6 strh r3, [r4, #260] @ movhi - ldrb r3, [r4, #416] @ zero_extendqisi2 - ldrh r2, [r6, #2394] - strb r3, [r4, #249] - ldr r3, [r4, #512] - str r3, [r4, #268] - ldr r3, [r4, #504] - str r3, [r4, #276] - ldr r3, [r4, #508] + ldrb r3, [r4, #372] @ zero_extendqisi2 + strb r3, [r4, #252] + ldrh r3, [r4, #412] + strh r3, [r4, #262] @ movhi + ldrh r2, [r4, #414] + ldrb r3, [r4, #418] @ zero_extendqisi2 + ldr r0, [r5, #1256] + orr r3, r3, r2, lsl #6 + strh r3, [r4, #264] @ movhi + ldrb r3, [r4, #420] @ zero_extendqisi2 + ldrh r2, [r6, #2398] + strb r3, [r4, #253] + ldr r3, [r4, #516] str r3, [r4, #272] - ldrh r3, [r4, #1170] - strh r3, [r4, #280] @ movhi - ldrh r3, [r4, #1172] - strh r3, [r4, #282] @ movhi + ldr r3, [r4, #508] + str r3, [r4, #280] + ldr r3, [r4, #512] + str r3, [r4, #276] + ldrh r3, [r4, #1174] + strh r3, [r4, #284] @ movhi + ldrh r3, [r4, #1176] + strh r3, [r4, #286] @ movhi bl ftl_memset - add r1, r4, #236 + add r1, r4, #240 movs r2, #48 - ldr r0, [r5, #1252] + ldr r0, [r5, #1256] bl ftl_memcpy - ldrh r2, [r6, #2324] - ldr r0, [r5, #1252] - ldr r1, [r4, #292] + ldrh r2, [r6, #2328] + ldr r0, [r5, #1256] + ldr r1, [r4, #296] lsls r2, r2, #1 adds r0, r0, #48 bl ftl_memcpy - ldrh r2, [r6, #2324] - ldr r0, [r5, #1252] - add r3, r2, #24 - ldr r1, [r4, #468] - ubfx r3, r3, #1, #30 + ldrh r2, [r6, #2328] + ldr r0, [r5, #1256] + ldr r1, [r4, #472] + lsls r3, r2, #1 lsrs r2, r2, #3 + adds r3, r3, #51 adds r2, r2, #4 - add r0, r0, r3, lsl #2 + bic r3, r3, #3 + add r0, r0, r3 bl ftl_memcpy - ldrh r3, [r6, #2428] - cbz r3, .L2500 - ldrh r2, [r6, #2324] - ldr r0, [r5, #1252] - ldr r1, [r4, #3384] + ldrh r3, [r6, #2432] + cbz r3, .L2568 + ldrh r2, [r6, #2328] + ldr r0, [r5, #1256] + ldr r1, [r4, #3388] lsrs r3, r2, #3 add r3, r3, r2, lsl #1 - ldrh r2, [r6, #2420] + ldrh r2, [r6, #2424] adds r3, r3, #52 ubfx r3, r3, #2, #14 lsls r2, r2, #2 add r0, r0, r3, lsl #2 bl ftl_memcpy -.L2500: +.L2568: movs r0, #0 - ldr r10, .L2520 + ldr r10, .L2588 bl FtlUpdateVaildLpn - ldr fp, .L2520+8 + ldr fp, .L2588+8 mov r8, #0 movw r9, #65535 -.L2501: - ldr r3, [r4, #3312] - ldrh r2, [r4, #536] - ldrh r1, [r4, #538] - str r3, [r5, #1252] - ldr r3, [r4, #3336] +.L2569: + ldr r3, [r4, #3316] + ldrh r2, [r4, #540] + ldrh r1, [r4, #542] str r3, [r5, #1256] + ldr r3, [r4, #3340] + str r3, [r5, #1260] orr r3, r1, r2, lsl #10 - str r3, [r5, #1248] - ldrh r3, [r6, #2386] + str r3, [r5, #1252] + ldrh r3, [r6, #2390] subs r3, r3, #1 cmp r1, r3 - blt .L2502 + blt .L2570 movs r3, #0 - ldrh r9, [r10, #540] - strh r3, [r10, #538] @ movhi - strh r2, [r10, #540] @ movhi + ldrh r9, [r10, #544] + strh r3, [r10, #542] @ movhi + strh r2, [r10, #544] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [r10, #504] - ldr r1, .L2520+4 + ldr r3, [r10, #508] + ldr r1, .L2588+4 adds r2, r3, #1 - str r2, [r10, #504] - str r3, [r10, #544] + str r2, [r10, #508] + str r3, [r10, #548] lsls r2, r0, #10 - strh r0, [r10, #536] @ movhi - str r2, [r1, #1248] + strh r0, [r10, #540] @ movhi + str r2, [r1, #1252] str r3, [r7, #4] strh r0, [r7, #2] @ movhi -.L2502: +.L2570: ldrb r3, [r6] @ zero_extendqisi2 - cbz r3, .L2503 - ldr r0, [r4, #3312] - ldrh r1, [fp, #2394] + cbz r3, .L2571 + ldr r0, [r4, #3316] + ldrh r1, [fp, #2398] bl js_hash str r0, [r7, #12] -.L2503: +.L2571: movs r1, #1 - ldr r0, .L2520+20 + ldr r0, .L2588+20 mov r2, r1 mov r3, r1 bl FlashProgPages - ldrh r3, [r4, #538] - ldr r2, [r5, #1244] + ldrh r3, [r4, #542] + ldr r2, [r5, #1248] adds r3, r3, #1 adds r1, r2, #1 uxth r3, r3 - strh r3, [r4, #538] @ movhi - bne .L2504 + strh r3, [r4, #542] @ movhi + bne .L2572 cmp r3, #1 add r8, r8, #1 it eq - ldrheq r3, [r6, #2386] + ldrheq r3, [r6, #2390] uxth r8, r8 itt eq addeq r3, r3, #-1 - strheq r3, [r10, #538] @ movhi + strheq r3, [r10, #542] @ movhi cmp r8, #3 - bls .L2501 - ldr r0, .L2520+24 + bls .L2569 + ldr r0, .L2588+24 mov r2, r8 - ldr r1, [r5, #1248] + ldr r1, [r5, #1252] bl printk movs r3, #1 - str r3, [r4, #220] - b .L2499 -.L2504: + str r3, [r4, #224] + b .L2567 +.L2572: cmp r3, #1 - beq .L2501 + beq .L2569 cmp r2, #256 - beq .L2501 + beq .L2569 movw r3, #65535 cmp r9, r3 - beq .L2499 + beq .L2567 mov r0, r9 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L2499: +.L2567: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2521: +.L2589: .align 2 -.L2520: +.L2588: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR0 .word 1179929683 - .word 1342177376 - .word .LANCHOR4+1244 - .word .LC129 + .word 1342177379 + .word .LANCHOR4+1248 + .word .LC132 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 1 @@ -15524,34 +15874,34 @@ FtlSuperblockPowerLostFix: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r0 - ldr r5, .L2538 + ldr r5, .L2606 .pad #44 sub sp, sp, #44 - ldr r3, [r5, #220] + ldr r3, [r5, #224] cmp r3, #0 - bne .L2522 - ldr r2, .L2538+4 - ldrb r6, [r2, #140] @ zero_extendqisi2 + bne .L2590 + ldr r2, .L2606+4 + ldrb r6, [r2, #144] @ zero_extendqisi2 mov r8, r2 - cbz r6, .L2537 + cbz r6, .L2605 ldrb r6, [r0, #8] @ zero_extendqisi2 cmp r6, #1 - bne .L2533 + bne .L2601 ldrh fp, [r0, #4] - b .L2524 -.L2533: + b .L2592 +.L2601: mov r6, r3 -.L2537: +.L2605: mov fp, #12 -.L2524: - ldr r7, [r5, #3336] +.L2592: + ldr r7, [r5, #3340] mov r3, #-1 str r3, [sp, #20] mov r9, #0 - ldr r3, [r5, #3312] + ldr r3, [r5, #3316] movw r2, #61589 str r7, [sp, #16] - ldr r10, .L2538 + ldr r10, .L2606 str r3, [sp, #12] mvn r3, #2 str r3, [r7, #8] @@ -15560,38 +15910,38 @@ FtlSuperblockPowerLostFix: ldrh r3, [r4] strh r9, [r7] @ movhi strh r3, [r7, #2] @ movhi - ldr r3, [r5, #3312] + ldr r3, [r5, #3316] str r2, [r3] add r2, r2, #304087040 - ldr r3, [r5, #3312] + ldr r3, [r5, #3316] add r2, r2, #1269760 addw r2, r2, #1507 str r2, [r3, #4] -.L2525: +.L2593: adds fp, fp, #-1 - bcc .L2528 + bcc .L2596 ldrh r3, [r4, #4] - cbnz r3, .L2526 -.L2528: - ldr r2, [r5, #292] + cbnz r3, .L2594 +.L2596: + ldr r2, [r5, #296] ldrh r1, [r4] ldrh r0, [r4, #4] ldrh r3, [r2, r1, lsl #1] subs r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi - ldrh r3, [r8, #2384] + ldrh r3, [r8, #2388] strh r3, [r4, #2] @ movhi movs r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - b .L2522 -.L2526: + b .L2590 +.L2594: mov r0, r4 bl get_new_active_ppa str r0, [sp, #8] adds r0, r0, #1 - beq .L2528 - ldr r3, [r5, #508] + beq .L2596 + ldr r3, [r5, #512] movs r1, #1 add r0, sp, #4 str r3, [r7, #4] @@ -15600,19 +15950,19 @@ FtlSuperblockPowerLostFix: mov r2, r6 it eq moveq r3, r9 - str r3, [r10, #508] + str r3, [r10, #512] movs r3, #0 bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L2525 -.L2522: + b .L2593 +.L2590: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2539: +.L2607: .align 2 -.L2538: +.L2606: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -15637,14 +15987,14 @@ ftl_map_blk_gc: ldrh r2, [r4, #8] subs r3, r3, #4 cmp r2, r3 - blt .L2541 + blt .L2609 uxth r0, r0 ldrh r10, [r5, r0, lsl #1] cmp r10, #0 - beq .L2541 + beq .L2609 ldr r3, [r4, #32] cmp r3, #0 - bne .L2541 + bne .L2609 movs r2, #1 str r2, [r4, #32] strh r3, [r5, r0, lsl #1] @ movhi @@ -15652,92 +16002,92 @@ ftl_map_blk_gc: ldrh r2, [r4, #2] subs r3, r3, #1 strh r3, [r4, #8] @ movhi - ldr r3, .L2553 - ldrh r3, [r3, #2386] + ldr r3, .L2621 + ldrh r3, [r3, #2390] cmp r2, r3 - bcc .L2542 + bcc .L2610 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2542: - ldr r6, .L2553+4 +.L2610: + ldr r6, .L2621+4 mov fp, #0 - ldr r9, .L2553+16 -.L2543: + ldr r9, .L2621+16 +.L2611: ldrh r2, [r4, #6] uxth r5, fp cmp r2, r5 - bls .L2552 + bls .L2620 ldr r2, [r8, r5, lsl #2] add ip, r8, r5, lsl #2 cmp r10, r2, lsr #10 - bne .L2544 - ldr r2, [r9, #3316] + bne .L2612 + ldr r2, [r9, #3320] movs r1, #1 - ldr r7, [r9, #3336] - ldr r0, .L2553+8 - str r2, [r6, #1252] - str r7, [r6, #1256] + ldr r7, [r9, #3340] + ldr r0, .L2621+8 + str r2, [r6, #1256] + str r7, [r6, #1260] ldr r2, [r8, r5, lsl #2] str ip, [sp, #4] - str r2, [r6, #1248] + str r2, [r6, #1252] mov r2, r1 bl FlashReadPages - ldr r2, [r6, #1244] + ldr r2, [r6, #1248] adds r2, r2, #1 ldr ip, [sp, #4] - bne .L2545 -.L2547: + bne .L2613 +.L2615: movs r3, #0 str r3, [ip] - ldr r3, .L2553+4 + ldr r3, .L2621+4 ldrh r2, [r7, #8] - ldr r0, .L2553+12 - ldr r1, [r3, #1248] + ldr r0, .L2621+12 + ldr r1, [r3, #1252] bl printk - ldr r3, .L2553+16 + ldr r3, .L2621+16 movs r2, #1 - str r2, [r3, #220] - b .L2546 -.L2545: + str r2, [r3, #224] + b .L2614 +.L2613: ldrh r1, [r7, #8] cmp r1, r5 - bne .L2547 + bne .L2615 ldrh r0, [r7] ldrh r2, [r4, #4] cmp r0, r2 - bne .L2547 + bne .L2615 mov r0, r4 - ldr r2, [r6, #1252] + ldr r2, [r6, #1256] bl FtlMapWritePage -.L2544: +.L2612: add fp, fp, #1 - b .L2543 -.L2552: + b .L2611 +.L2620: mov r0, r10 movs r1, #1 bl FtlFreeSysBlkQueueIn movs r3, #0 str r3, [r4, #32] -.L2541: - ldr r3, .L2553 +.L2609: + ldr r3, .L2621 ldrh r2, [r4, #2] - ldrh r3, [r3, #2386] + ldrh r3, [r3, #2390] cmp r2, r3 - bcc .L2546 + bcc .L2614 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2546: +.L2614: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2554: +.L2622: .align 2 -.L2553: +.L2621: .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR4+1244 - .word .LC130 + .word .LANCHOR4+1248 + .word .LC133 .word .LANCHOR2 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc @@ -15753,16 +16103,16 @@ Ftl_write_map_blk_to_last_page: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r0 - ldr r6, .L2566 + ldr r6, .L2634 ldr r7, [r0, #12] ldr r10, [r0, #24] - ldr r5, [r6, #220] + ldr r5, [r6, #224] cmp r5, #0 - bne .L2556 + bne .L2624 ldrh r3, [r0] movw r2, #65535 cmp r3, r2 - bne .L2557 + bne .L2625 ldrh r3, [r0, #8] adds r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -15773,19 +16123,19 @@ Ftl_write_map_blk_to_last_page: adds r3, r3, #1 strh r5, [r4] @ movhi str r3, [r4, #28] - b .L2556 -.L2557: + b .L2624 +.L2625: ldrh r9, [r7, r3, lsl #1] movs r1, #255 - ldr fp, .L2566+12 + ldr fp, .L2634+12 ldrh r3, [r0, #2] - ldr r7, [r6, #3336] + ldr r7, [r6, #3340] orr r3, r3, r9, lsl #10 - str r3, [fp, #1248] - ldr r3, [r6, #3312] - str r7, [fp, #1256] - ldr r8, .L2566+4 str r3, [fp, #1252] + ldr r3, [r6, #3316] + str r7, [fp, #1260] + ldr r8, .L2634+4 + str r3, [fp, #1256] ldr r3, [r0, #28] str r3, [r7, #4] movw r3, #64245 @@ -15793,42 +16143,42 @@ Ftl_write_map_blk_to_last_page: ldrh r3, [r0, #4] strh r9, [r7, #2] @ movhi strh r3, [r7] @ movhi - ldrh r2, [r8, #2386] - ldr r0, [r6, #3312] + ldrh r2, [r8, #2390] + ldr r0, [r6, #3316] lsls r2, r2, #3 bl ftl_memset mov r1, r5 -.L2558: +.L2626: ldrh r2, [r4, #6] uxth r3, r1 cmp r2, r3 - bls .L2565 + bls .L2633 ldr r2, [r10, r3, lsl #2] cmp r9, r2, lsr #10 - bne .L2559 + bne .L2627 adds r5, r5, #1 - ldr r2, [r6, #3312] + ldr r2, [r6, #3316] uxth r5, r5 str r3, [r2, r5, lsl #3] ldr r2, [r10, r3, lsl #2] - ldr r3, [r6, #3312] + ldr r3, [r6, #3316] add r3, r3, r5, lsl #3 str r2, [r3, #4] -.L2559: +.L2627: adds r1, r1, #1 - b .L2558 -.L2565: + b .L2626 +.L2633: ldrb r3, [r8] @ zero_extendqisi2 - cbz r3, .L2561 - ldr r3, .L2566+4 - ldr r0, [fp, #1252] - ldrh r1, [r3, #2394] + cbz r3, .L2629 + ldr r3, .L2634+4 + ldr r0, [fp, #1256] + ldrh r1, [r3, #2398] bl js_hash str r0, [r7, #12] -.L2561: +.L2629: movs r1, #1 movs r3, #0 - ldr r0, .L2566+8 + ldr r0, .L2634+8 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -15836,15 +16186,15 @@ Ftl_write_map_blk_to_last_page: adds r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2556: +.L2624: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2567: +.L2635: .align 2 -.L2566: +.L2634: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR4+1244 + .word .LANCHOR4+1248 .word .LANCHOR4 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page @@ -15861,67 +16211,67 @@ FtlMapWritePage: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movs r6, #0 - ldr r7, .L2592 + ldr r7, .L2660 mov r4, r0 mov r9, r1 str r2, [sp] -.L2569: - ldr r3, [r7, #488] - ldr fp, .L2592+4 +.L2637: + ldr r3, [r7, #492] + ldr fp, .L2660+4 adds r3, r3, #1 - str r3, [r7, #488] - ldr r3, .L2592+4 + str r3, [r7, #492] + ldr r3, .L2660+4 ldrh r2, [r4, #2] - ldrh r3, [r3, #2386] + ldrh r3, [r3, #2390] subs r3, r3, #1 cmp r2, r3 - bge .L2570 + bge .L2638 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L2571 -.L2570: + bne .L2639 +.L2638: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L2571: - ldr r3, .L2592 - ldr r1, [r3, #220] +.L2639: + ldr r3, .L2660 + ldr r1, [r3, #224] cmp r1, #0 - bne .L2587 + bne .L2655 ldrh r2, [r4] ldr r3, [r4, #12] - ldr r5, .L2592+8 - ldr r0, [r7, #3336] + ldr r5, .L2660+8 + ldr r0, [r7, #3340] ldrh r8, [r3, r2, lsl #1] movs r2, #16 ldrh r3, [r4, #2] mov r10, r5 - str r0, [r5, #1256] + str r0, [r5, #1260] orr r3, r3, r8, lsl #10 - str r3, [r5, #1248] - ldr r3, [sp] str r3, [r5, #1252] + ldr r3, [sp] + str r3, [r5, #1256] bl ftl_memset ldr r2, [r4, #28] - ldr r3, [r5, #1256] + ldr r3, [r5, #1260] str r2, [r3, #4] strh r9, [r3, #8] @ movhi ldrh r2, [r4, #4] strh r8, [r3, #2] @ movhi strh r2, [r3] @ movhi ldrb r2, [fp] @ zero_extendqisi2 - cbz r2, .L2573 + cbz r2, .L2641 str r3, [sp, #4] - ldr r3, .L2592+4 - ldr r0, [r5, #1252] - ldrh r1, [r3, #2394] + ldr r3, .L2660+4 + ldr r0, [r5, #1256] + ldrh r1, [r3, #2398] bl js_hash ldr r3, [sp, #4] str r0, [r3, #12] -.L2573: - ldr ip, .L2592+8 +.L2641: + ldr ip, .L2660+8 movs r1, #1 - addw r0, ip, #1244 + add r0, ip, #1248 mov r2, r1 mov r3, r1 str ip, [sp, #4] @@ -15930,66 +16280,66 @@ FtlMapWritePage: adds r3, r3, #1 uxth r3, r3 strh r3, [r4, #2] @ movhi - ldr r2, [r5, #1244] + ldr r2, [r5, #1248] adds r1, r2, #1 ldr ip, [sp, #4] - bne .L2574 - ldr r0, .L2592+12 + bne .L2642 + ldr r0, .L2660+12 adds r6, r6, #1 - ldr r1, [ip, #1248] + ldr r1, [ip, #1252] bl printk ldrh r3, [r4, #2] uxth r6, r6 cmp r3, #2 ittt ls - ldrhls r3, [fp, #2386] + ldrhls r3, [fp, #2390] addls r3, r3, #-1 strhls r3, [r4, #2] @ movhi cmp r6, #3 - bls .L2569 + bls .L2637 mov r2, r6 - ldr r0, .L2592+16 - ldr r1, [r10, #1248] + ldr r0, .L2660+16 + ldr r1, [r10, #1252] bl printk - ldr r3, .L2592 + ldr r3, .L2660 movs r2, #1 - str r2, [r3, #220] - b .L2587 -.L2574: - cbz r2, .L2577 + str r2, [r3, #224] + b .L2655 +.L2642: + cbz r2, .L2645 cmp r3, #1 strh r8, [r4, #40] @ movhi - bne .L2578 -.L2579: + bne .L2646 +.L2647: movs r3, #0 str r3, [r4, #36] - b .L2569 -.L2578: + b .L2637 +.L2646: cmp r2, #256 - b .L2591 -.L2577: + b .L2659 +.L2645: cmp r3, #1 -.L2591: - beq .L2579 +.L2659: + beq .L2647 ldr r3, [r4, #36] cmp r3, #0 - bne .L2579 - ldr r2, [r10, #1248] + bne .L2647 + ldr r2, [r10, #1252] ldr r3, [r4, #24] str r2, [r3, r9, lsl #2] -.L2587: +.L2655: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2593: +.L2661: .align 2 -.L2592: +.L2660: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR4 - .word .LC131 - .word .LC132 + .word .LC134 + .word .LC135 .fnend .size FtlMapWritePage, .-FtlMapWritePage .align 1 @@ -16004,24 +16354,24 @@ flush_l2p_region: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r4, #12 - ldr r5, .L2595 + ldr r5, .L2663 muls r4, r0, r4 - addw r0, r5, #3404 - ldr r3, [r5, #456] + add r0, r5, #3408 + ldr r3, [r5, #460] adds r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] bl FtlMapWritePage - ldr r3, [r5, #456] + ldr r3, [r5, #460] movs r0, #0 add r4, r4, r3 ldr r3, [r4, #4] bic r3, r3, #-2147483648 str r3, [r4, #4] pop {r3, r4, r5, pc} -.L2596: +.L2664: .align 2 -.L2595: +.L2663: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -16048,19 +16398,19 @@ FtlMapTblRecovery: lsl r2, r9, #2 ldr r8, [r0, #12] mov r0, r7 - ldr r10, .L2639+12 + ldr r10, .L2707+12 str r3, [sp, #8] bl ftl_memset - ldr r3, .L2639 + ldr r3, .L2707 movs r0, #1 - ldr r2, .L2639+4 + ldr r2, .L2707+4 str r0, [r4, #36] - ldr r1, [r3, #3312] - ldr r6, [r3, #3336] + ldr r1, [r3, #3316] + ldr r6, [r3, #3340] mov r5, r2 - str r1, [r2, #1252] + str r1, [r2, #1256] movw r1, #65535 - str r6, [r2, #1256] + str r6, [r2, #1260] strh r1, [r4] @ movhi strh r1, [r4, #2] @ movhi movs r1, #0 @@ -16068,18 +16418,18 @@ FtlMapTblRecovery: str r1, [r4, #28] str r1, [sp, #4] str r3, [sp, #20] -.L2598: +.L2666: ldrh r2, [sp, #4] ldr r1, [sp, #8] - ldr fp, .L2639+12 + ldr fp, .L2707+12 sxth r3, r2 cmp r3, r1 - bge .L2616 + bge .L2684 ldr r1, [sp, #8] subs r1, r1, #1 cmp r3, r1 lsl r1, r3, #1 - bne .L2599 + bne .L2667 ldrh r0, [r8, r3, lsl #1] str r2, [sp, #16] add r2, r8, r1 @@ -16087,7 +16437,7 @@ FtlMapTblRecovery: str r2, [sp, #4] str r3, [sp, #8] bl FtlGetLastWrittenPage - ldr r10, .L2639+4 + ldr r10, .L2707+4 mov r8, #0 ldr r2, [sp, #16] adds r1, r0, #1 @@ -16101,131 +16451,131 @@ FtlMapTblRecovery: str r3, [r4, #28] adds r3, r0, #1 str r3, [sp, #8] -.L2600: +.L2668: ldr r3, [sp, #8] sxth r2, r8 cmp r2, r3 - bge .L2616 + bge .L2684 ldr r3, [sp, #4] - ldr r0, .L2639+8 + ldr r0, .L2707+8 ldrh r1, [r3] orr r2, r2, r1, lsl #10 movs r1, #1 - str r2, [r5, #1248] + str r2, [r5, #1252] mov r2, r1 bl FlashReadPages ldrb r2, [fp] @ zero_extendqisi2 - cbz r2, .L2601 - ldr r2, [r10, #1256] + cbz r2, .L2669 + ldr r2, [r10, #1260] ldr r2, [r2, #12] - cbz r2, .L2601 - ldr r1, .L2639+12 - ldr r0, [r10, #1252] + cbz r2, .L2669 + ldr r1, .L2707+12 + ldr r0, [r10, #1256] str r2, [sp, #12] - ldrh r1, [r1, #2394] + ldrh r1, [r1, #2398] bl js_hash ldr r2, [sp, #12] cmp r2, r0 itt ne movne r2, #-1 - strne r2, [r10, #1244] -.L2601: - ldr r2, [r10, #1244] + strne r2, [r10, #1248] +.L2669: + ldr r2, [r10, #1248] adds r2, r2, #1 - beq .L2602 + beq .L2670 ldrh r2, [r6, #8] cmp r2, r9 - bcs .L2602 + bcs .L2670 ldrh r1, [r4, #4] ldrh r0, [r6] cmp r0, r1 itt eq - ldreq r1, [r10, #1248] + ldreq r1, [r10, #1252] streq r1, [r7, r2, lsl #2] -.L2602: +.L2670: add r8, r8, #1 - b .L2600 -.L2616: + b .L2668 +.L2684: mov r0, r4 bl ftl_free_no_use_map_blk ldrh r2, [r4, #2] - ldrh r3, [fp, #2386] + ldrh r3, [fp, #2390] cmp r2, r3 - bne .L2605 + bne .L2673 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2605 -.L2599: + b .L2673 +.L2667: ldr r2, [sp, #20] - ldr r0, .L2639+8 - ldr r2, [r2, #3312] - str r2, [r5, #1252] + ldr r0, .L2707+8 + ldr r2, [r2, #3316] + str r2, [r5, #1256] add r2, r8, r1 str r2, [sp, #16] movs r1, #1 ldrh r2, [r8, r3, lsl #1] - ldrh r3, [r10, #2386] + ldrh r3, [r10, #2390] subs r3, r3, #1 orr r3, r3, r2, lsl #10 mov r2, r1 - str r3, [r5, #1248] + str r3, [r5, #1252] bl FlashReadPages - ldr r3, [r5, #1244] + ldr r3, [r5, #1248] adds r3, r3, #1 - beq .L2618 + beq .L2686 ldrh r2, [r6] ldrh r3, [r4, #4] cmp r2, r3 - bne .L2618 + bne .L2686 ldrh r2, [r6, #8] movw r3, #64245 cmp r2, r3 - bne .L2618 + bne .L2686 movs r1, #0 mov lr, #8 mov ip, #4 -.L2607: +.L2675: uxth r3, r1 - ldrh r2, [r10, #2386] + ldrh r2, [r10, #2390] sxth r0, r3 subs r2, r2, #1 cmp r0, r2 - bge .L2610 - ldr r2, .L2639 + bge .L2678 + ldr r2, .L2707 adds r1, r1, #1 - ldr r2, [r2, #3312] + ldr r2, [r2, #3316] ldrh r0, [r2, r0, lsl #3] cmp r0, r9 ittt cc smlabbcc r3, r3, lr, ip ldrcc r3, [r2, r3] strcc r3, [r7, r0, lsl #2] - b .L2607 -.L2618: - ldr r3, .L2639+4 + b .L2675 +.L2686: + ldr r3, .L2707+4 mov fp, #0 -.L2638: - ldrh r1, [r10, #2386] +.L2706: + ldrh r1, [r10, #2390] sxth r2, fp cmp r2, r1 - bge .L2610 + bge .L2678 ldr r1, [sp, #16] - ldr r0, .L2639+8 + ldr r0, .L2707+8 str r3, [sp, #24] ldrh r1, [r1] orr r2, r2, r1, lsl #10 movs r1, #1 - str r2, [r3, #1248] + str r2, [r3, #1252] mov r2, r1 bl FlashReadPages ldrb r2, [r10] @ zero_extendqisi2 ldr r3, [sp, #24] - cbz r2, .L2611 - ldr r2, [r3, #1256] + cbz r2, .L2679 + ldr r2, [r3, #1260] ldr r2, [r2, #12] - cbz r2, .L2611 - ldr r0, [r3, #1252] - ldrh r1, [r10, #2394] + cbz r2, .L2679 + ldr r0, [r3, #1256] + ldrh r1, [r10, #2398] str r2, [sp, #28] bl js_hash ldr r2, [sp, #28] @@ -16233,30 +16583,30 @@ FtlMapTblRecovery: cmp r2, r0 itt ne movne r2, #-1 - strne r2, [r3, #1244] -.L2611: - ldr r2, .L2639+4 - ldr r2, [r2, #1244] + strne r2, [r3, #1248] +.L2679: + ldr r2, .L2707+4 + ldr r2, [r2, #1248] adds r2, r2, #1 - beq .L2612 + beq .L2680 ldrh r2, [r6, #8] cmp r2, r9 - bcs .L2612 + bcs .L2680 ldrh r1, [r4, #4] ldrh r0, [r6] cmp r0, r1 itt eq - ldreq r1, [r3, #1248] + ldreq r1, [r3, #1252] streq r1, [r7, r2, lsl #2] -.L2612: +.L2680: add fp, fp, #1 - b .L2638 -.L2610: + b .L2706 +.L2678: ldr r3, [sp, #4] adds r3, r3, #1 str r3, [sp, #4] - b .L2598 -.L2605: + b .L2666 +.L2673: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -16265,12 +16615,12 @@ FtlMapTblRecovery: add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2640: +.L2708: .align 2 -.L2639: +.L2707: .word .LANCHOR2 .word .LANCHOR4 - .word .LANCHOR4+1244 + .word .LANCHOR4+1248 .word .LANCHOR0 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery @@ -16285,32 +16635,32 @@ FtlLoadVonderInfo: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L2642 - ldr r0, .L2642+4 - ldrh r2, [r3, #2404] - addw r0, r0, #1284 + ldr r3, .L2710 + ldr r0, .L2710+4 + ldrh r2, [r3, #2408] + add r0, r0, #1288 strh r2, [r0, #10] @ movhi movw r2, #61574 strh r2, [r0, #4] @ movhi - ldrh r2, [r3, #2430] + ldrh r2, [r3, #2434] strh r2, [r0, #8] @ movhi - ldrh r2, [r3, #2406] - ldr r3, [r3, #2432] + ldrh r2, [r3, #2410] + ldr r3, [r3, #2436] strh r2, [r0, #6] @ movhi str r3, [r0, #12] - ldr r3, .L2642+8 - ldr r2, [r3, #3376] + ldr r3, .L2710+8 + ldr r2, [r3, #3380] str r2, [r0, #16] - ldr r2, [r3, #3372] - ldr r3, [r3, #3380] + ldr r2, [r3, #3376] + ldr r3, [r3, #3384] str r2, [r0, #20] str r3, [r0, #24] bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2643: +.L2711: .align 2 -.L2642: +.L2710: .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR2 @@ -16328,14 +16678,14 @@ FtlLoadMapInfo: push {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2645 + ldr r0, .L2713 bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2646: +.L2714: .align 2 -.L2645: - .word .LANCHOR2+3404 +.L2713: + .word .LANCHOR2+3408 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 1 @@ -16347,36 +16697,36 @@ FtlVendorPartWrite: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2660 + ldr r3, .L2728 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, #2380] + ldrh r1, [r3, #2384] .pad #60 sub sp, sp, #60 mov r10, r2 - ldrh r2, [r3, #2392] + ldrh r2, [r3, #2396] cmp r0, r1 str r3, [sp, #4] - bhi .L2655 - ldr r7, .L2660+4 + bhi .L2723 + ldr r7, .L2728+4 lsr r6, r5, r2 mov fp, #0 lsls r3, r6, #2 str r3, [sp] -.L2649: +.L2717: cmp r4, #0 - beq .L2659 - ldr r3, .L2660+4 + beq .L2727 + ldr r3, .L2728+4 mov r0, r5 ldr r2, [sp] - ldr r3, [r3, #3380] + ldr r3, [r3, #3384] ldr ip, [r3, r2] ldr r3, [sp, #4] str ip, [sp, #12] - ldrh r2, [r3, #2390] + ldrh r2, [r3, #2394] mov r1, r2 str r2, [sp, #8] bl __aeabi_uidivmod @@ -16389,10 +16739,10 @@ FtlVendorPartWrite: it hi uxthhi r9, r4 cmp ip, #0 - beq .L2651 + beq .L2719 cmp r9, r2 - beq .L2651 - ldr r2, [r7, #3320] + beq .L2719 + ldr r2, [r7, #3324] movs r1, #1 add r0, sp, #20 str ip, [sp, #24] @@ -16401,16 +16751,16 @@ FtlVendorPartWrite: str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2652 -.L2651: + b .L2720 +.L2719: ldr r3, [sp, #4] movs r1, #0 - ldr r0, [r7, #3320] - ldrh r2, [r3, #2394] + ldr r0, [r7, #3324] + ldrh r2, [r3, #2398] bl ftl_memset -.L2652: +.L2720: lsl ip, r9, #9 - ldr r0, [r7, #3320] + ldr r0, [r7, #3324] uxth r8, r8 mov r1, r10 mov r2, ip @@ -16419,9 +16769,9 @@ FtlVendorPartWrite: rsb r4, r9, r4 bl ftl_memcpy mov r1, r6 - ldr r0, .L2660+8 + ldr r0, .L2728+8 adds r6, r6, #1 - ldr r2, [r7, #3320] + ldr r2, [r7, #3324] add r5, r5, r9 bl FtlMapWritePage ldr r3, [sp] @@ -16432,22 +16782,22 @@ FtlVendorPartWrite: adds r3, r3, #4 str r3, [sp] add r10, r10, ip - b .L2649 -.L2659: + b .L2717 +.L2727: mov r0, fp - b .L2648 -.L2655: + b .L2716 +.L2723: mov r0, #-1 -.L2648: +.L2716: add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2661: +.L2729: .align 2 -.L2660: +.L2728: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR4+1284 + .word .LANCHOR4+1288 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 1 @@ -16460,31 +16810,31 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2664 - ldr r3, .L2664+4 - ldr r1, [r2, #604] + ldr r2, .L2732 + ldr r3, .L2732+4 + ldr r1, [r2, #608] cmp r1, r3 - bne .L2662 - ldr r3, .L2664+8 + bne .L2730 + ldr r3, .L2732+8 movs r0, #0 movs r1, #1 - str r3, [r2, #608] - ldr r3, [r2, #496] - str r3, [r2, #692] + str r3, [r2, #612] ldr r3, [r2, #500] str r3, [r2, #696] - ldr r3, [r2, #492] - str r3, [r2, #612] - ldr r3, [r2, #480] + ldr r3, [r2, #504] + str r3, [r2, #700] + ldr r3, [r2, #496] str r3, [r2, #616] - ldr r3, [r2, #472] + ldr r3, [r2, #484] str r3, [r2, #620] - ldr r3, [r2, #488] + ldr r3, [r2, #476] str r3, [r2, #624] - ldr r3, [r2, #516] - str r3, [r2, #632] - ldr r3, [r2, #232] - add r2, r2, #604 + ldr r3, [r2, #492] + str r3, [r2, #628] + ldr r3, [r2, #520] + str r3, [r2, #636] + ldr r3, [r2, #236] + add r2, r2, #608 str r3, [r2, #32] ldr r3, [r2, #-128] str r3, [r2, #36] @@ -16499,14 +16849,14 @@ Ftl_save_ext_data: ldr r3, [r2, #2668] str r3, [r2, #64] b FtlVendorPartWrite -.L2662: +.L2730: bx lr -.L2665: +.L2733: .align 2 -.L2664: +.L2732: .word .LANCHOR2 .word 1179929683 - .word 1342177376 + .word 1342177379 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 1 @@ -16518,44 +16868,44 @@ FtlEctTblFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2673 + ldr r3, .L2741 push {r4, lr} .save {r4, lr} - ldr r2, [r3, #2308] - ldr r3, .L2673+4 - cbz r2, .L2671 - ldr r2, [r3, #528] + ldr r2, [r3, #2244] + ldr r3, .L2741+4 + cbz r2, .L2739 + ldr r2, [r3, #532] cmp r2, #39 ite hi movhi r1, #32 movls r1, #4 - b .L2667 -.L2671: + b .L2735 +.L2739: movs r1, #32 -.L2667: - ldr r4, .L2673+8 - ldrh r2, [r4, #1328] +.L2735: + ldr r4, .L2741+8 + ldrh r2, [r4, #1332] cmp r2, #31 ittt ls addls r2, r2, #1 movls r1, #1 - strhls r2, [r4, #1328] @ movhi - cbnz r0, .L2669 - ldr r0, [r3, #3356] + strhls r2, [r4, #1332] @ movhi + cbnz r0, .L2737 + ldr r0, [r3, #3360] ldr r2, [r0, #20] add r2, r2, r1 ldr r1, [r0, #16] cmp r1, r2 - bcc .L2670 -.L2669: - ldr r2, [r3, #3356] + bcc .L2738 +.L2737: + ldr r2, [r3, #3360] movs r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L2673+12 + ldr r1, .L2741+12 str r1, [r2] - ldr r2, [r3, #3356] - ldrh r1, [r3, #3348] + ldr r2, [r3, #3360] + ldrh r1, [r3, #3352] lsls r3, r1, #9 str r3, [r2, #12] ldr r3, [r2, #8] @@ -16565,12 +16915,12 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2670: +.L2738: movs r0, #0 pop {r4, pc} -.L2674: +.L2742: .align 2 -.L2673: +.L2741: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR4 @@ -16586,35 +16936,35 @@ FtlVendorPartRead: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2686 + ldr r3, .L2754 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, r0 mov r4, r1 add r0, r0, r1 - ldrh r1, [r3, #2380] + ldrh r1, [r3, #2384] .pad #60 sub sp, sp, #60 mov r7, r2 - ldrh r2, [r3, #2392] + ldrh r2, [r3, #2396] cmp r0, r1 str r3, [sp, #12] - bhi .L2684 - ldr r10, .L2686+4 + bhi .L2752 + ldr r10, .L2754+4 lsr r5, r6, r2 mov fp, #0 lsls r3, r5, #2 str r3, [sp, #4] -.L2677: +.L2745: cmp r4, #0 - beq .L2685 - ldr r3, .L2686+4 + beq .L2753 + ldr r3, .L2754+4 mov r0, r6 ldr r2, [sp, #4] - ldr r3, [r3, #3380] + ldr r3, [r3, #3384] ldr r8, [r3, r2] ldr r3, [sp, #12] - ldrh r9, [r3, #2390] + ldrh r9, [r3, #2394] mov r1, r9 bl __aeabi_uidivmod rsb r3, r1, r9 @@ -16624,8 +16974,8 @@ FtlVendorPartRead: it hi uxthhi r9, r4 cmp r8, #0 - beq .L2679 - ldr r2, [r10, #3320] + beq .L2747 + ldr r2, [r10, #3324] movs r1, #1 add r0, sp, #20 str r8, [sp, #24] @@ -16634,36 +16984,36 @@ FtlVendorPartRead: str r2, [sp, #32] mov r2, r1 bl FlashReadPages - ldr r3, .L2686+8 + ldr r3, .L2754+8 ldr r2, [sp, #20] adds r2, r2, #1 - ldr r2, [r3, #1244] + ldr r2, [r3, #1248] it eq moveq fp, #-1 cmp r2, #256 - bne .L2681 + bne .L2749 mov r1, r5 mov r2, r8 - ldr r0, .L2686+12 + ldr r0, .L2754+12 bl printk - ldr r0, .L2686+16 + ldr r0, .L2754+16 mov r1, r5 - ldr r2, [r10, #3320] + ldr r2, [r10, #3324] bl FtlMapWritePage -.L2681: +.L2749: ldrh r8, [sp, #8] mov r0, r7 - ldr r1, [r10, #3320] + ldr r1, [r10, #3324] lsl r2, r9, #9 add r1, r1, r8, lsl #9 bl ftl_memcpy - b .L2682 -.L2679: + b .L2750 +.L2747: mov r0, r7 mov r1, r8 lsl r2, r9, #9 bl ftl_memset -.L2682: +.L2750: ldr r3, [sp, #4] adds r5, r5, #1 rsb r4, r9, r4 @@ -16671,24 +17021,24 @@ FtlVendorPartRead: adds r3, r3, #4 add r7, r7, r9, lsl #9 str r3, [sp, #4] - b .L2677 -.L2685: + b .L2745 +.L2753: mov r0, fp - b .L2676 -.L2684: + b .L2744 +.L2752: mov r0, #-1 -.L2676: +.L2744: add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2687: +.L2755: .align 2 -.L2686: +.L2754: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR4 - .word .LC133 - .word .LANCHOR4+1284 + .word .LC136 + .word .LANCHOR4+1288 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 1 @@ -16703,32 +17053,32 @@ FtlLoadEctTbl: push {r4, lr} .save {r4, lr} movs r0, #64 - ldr r4, .L2690 - ldr r2, [r4, #3356] - ldrh r1, [r4, #3348] + ldr r4, .L2758 + ldr r2, [r4, #3360] + ldrh r1, [r4, #3352] bl FtlVendorPartRead - ldr r3, [r4, #3356] + ldr r3, [r4, #3360] ldr r2, [r3] - ldr r3, .L2690+4 + ldr r3, .L2758+4 cmp r2, r3 - beq .L2689 - ldr r1, .L2690+8 - ldr r0, .L2690+12 + beq .L2757 + ldr r1, .L2758+8 + ldr r0, .L2758+12 bl printk - ldrh r2, [r4, #3348] - ldr r0, [r4, #3356] + ldrh r2, [r4, #3352] + ldr r0, [r4, #3360] movs r1, #0 lsls r2, r2, #9 bl ftl_memset -.L2689: +.L2757: movs r0, #0 pop {r4, pc} -.L2691: +.L2759: .align 2 -.L2690: +.L2758: .word .LANCHOR2 .word 1112818501 - .word .LC134 + .word .LC137 .word .LC76 .fnend .size FtlLoadEctTbl, .-FtlLoadEctTbl @@ -16744,88 +17094,88 @@ Ftl_load_ext_data: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r0, #0 - ldr r4, .L2697 + ldr r4, .L2765 movs r1, #1 - ldr r5, .L2697+4 - add r2, r4, #604 + ldr r5, .L2765+4 + add r2, r4, #608 bl FtlVendorPartRead - ldr r3, [r4, #604] + ldr r3, [r4, #608] cmp r3, r5 - beq .L2693 - add r0, r4, #604 + beq .L2761 + add r0, r4, #608 movs r1, #0 mov r2, #512 bl ftl_memset - str r5, [r4, #604] -.L2693: - ldr r2, [r4, #604] - ldr r3, .L2697 + str r5, [r4, #608] +.L2761: + ldr r2, [r4, #608] + ldr r3, .L2765 cmp r2, r5 - bne .L2694 - ldr r2, [r3, #692] - str r2, [r3, #496] + bne .L2762 ldr r2, [r3, #696] str r2, [r3, #500] - ldr r2, [r3, #612] - str r2, [r3, #492] + ldr r2, [r3, #700] + str r2, [r3, #504] ldr r2, [r3, #616] - str r2, [r3, #480] + str r2, [r3, #496] ldr r2, [r3, #620] - str r2, [r3, #472] - ldr r2, [r3, #624] - str r2, [r3, #488] - ldr r2, [r3, #632] - str r2, [r3, #516] - ldr r2, [r3, #636] - str r2, [r3, #232] - ldr r2, [r3, #640] - str r2, [r3, #476] - ldr r2, [r3, #644] str r2, [r3, #484] + ldr r2, [r3, #624] + str r2, [r3, #476] + ldr r2, [r3, #628] + str r2, [r3, #492] + ldr r2, [r3, #636] + str r2, [r3, #520] + ldr r2, [r3, #640] + str r2, [r3, #236] + ldr r2, [r3, #644] + str r2, [r3, #480] ldr r2, [r3, #648] - str r2, [r3, #524] + str r2, [r3, #488] ldr r2, [r3, #652] str r2, [r3, #528] - ldr r2, [r3, #664] - str r2, [r3, #600] -.L2694: - ldr r1, [r4, #672] + ldr r2, [r3, #656] + str r2, [r3, #532] + ldr r2, [r3, #668] + str r2, [r3, #604] +.L2762: + ldr r1, [r4, #676] movs r3, #0 - ldr r2, .L2697+8 - str r3, [r4, #3272] + ldr r2, .L2765+8 + str r3, [r4, #3276] cmp r1, r2 - ldr r5, .L2697+12 - bne .L2695 - ldrb r2, [r5, #140] @ zero_extendqisi2 - cbz r2, .L2696 - ldr r2, .L2697 - str r3, [r2, #672] + ldr r5, .L2765+12 + bne .L2763 + ldrb r2, [r5, #144] @ zero_extendqisi2 + cbz r2, .L2764 + ldr r2, .L2765 + str r3, [r2, #676] bl Ftl_save_ext_data - b .L2695 -.L2696: - ldr r0, .L2697+16 + b .L2763 +.L2764: + ldr r0, .L2765+16 movs r3, #1 - ldr r1, .L2697+20 - str r3, [r5, #2308] + ldr r1, .L2765+20 + str r3, [r5, #2244] bl printk -.L2695: - ldrh r2, [r5, #2376] - ldr r3, [r4, #516] - ldr r0, [r4, #512] - ldrh r1, [r5, #2324] +.L2763: + ldrh r2, [r5, #2380] + ldr r3, [r4, #520] + ldr r0, [r4, #516] + ldrh r1, [r5, #2328] mla r0, r0, r2, r3 bl __aeabi_uidiv - str r0, [r4, #520] + str r0, [r4, #524] pop {r3, r4, r5, pc} -.L2698: +.L2766: .align 2 -.L2697: +.L2765: .word .LANCHOR2 .word 1179929683 .word 305432421 .word .LANCHOR0 .word .LC76 - .word .LC135 + .word .LC138 .fnend .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 1 @@ -16843,44 +17193,44 @@ FtlMapBlkWriteDumpData: ldr r3, [r0, #36] ldrh r5, [r0, #6] ldr r1, [r0, #24] - cbz r3, .L2699 - ldr r2, .L2705 + cbz r3, .L2767 + ldr r2, .L2773 movs r3, #0 str r3, [r0, #36] - ldr r3, [r2, #220] - cbnz r3, .L2699 + ldr r3, [r2, #224] + cbnz r3, .L2767 subs r5, r5, #1 - ldr r3, .L2705+4 - ldr r0, [r2, #3316] - ldr r2, [r2, #3336] + ldr r3, .L2773+4 + ldr r0, [r2, #3320] + ldr r2, [r2, #3340] uxth r5, r5 mov r4, r3 - str r0, [r3, #1252] - str r2, [r3, #1256] + str r0, [r3, #1256] + str r2, [r3, #1260] ldr r2, [r1, r5, lsl #2] - str r2, [r3, #1248] - cbz r2, .L2703 + str r2, [r3, #1252] + cbz r2, .L2771 movs r1, #1 - addw r0, r3, #1244 + add r0, r3, #1248 mov r2, r1 bl FlashReadPages - b .L2704 -.L2703: - ldr r3, .L2705+8 + b .L2772 +.L2771: + ldr r3, .L2773+8 movs r1, #255 - ldrh r2, [r3, #2394] + ldrh r2, [r3, #2398] bl ftl_memset -.L2704: +.L2772: mov r0, r6 mov r1, r5 - ldr r2, [r4, #1252] + ldr r2, [r4, #1256] pop {r4, r5, r6, lr} b FtlMapWritePage -.L2699: +.L2767: pop {r4, r5, r6, pc} -.L2706: +.L2774: .align 2 -.L2705: +.L2773: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR0 @@ -16895,31 +17245,31 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2721 + ldr r3, .L2789 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r2 - ldrh r2, [r3, #124] + ldrh r2, [r3, #128] mov r7, r1 - ldrh r3, [r3, #126] + ldrh r3, [r3, #130] .pad #40 sub sp, sp, #40 mov r5, r0 smulbb r3, r2, r3 - ldr r2, .L2721+4 - ldr r1, [r2, #1180] + ldr r2, .L2789+4 + ldr r1, [r2, #1184] mov r9, r2 uxth r3, r3 subs r6, r3, #1 str r1, [sp, #12] mul r10, r3, r7 - ldr r1, [r2, #1212] + ldr r1, [r2, #1216] uxth r6, r6 sub r4, r3, #16 str r1, [sp, #16] -.L2708: +.L2776: cmp r6, r4 - ble .L2720 + ble .L2788 movs r1, #1 add r3, r6, r10 add r0, sp, #4 @@ -16929,62 +17279,62 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] adds r3, r3, #1 - beq .L2709 - ldr r3, [r9, #1212] + beq .L2777 + ldr r3, [r9, #1216] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L2709 - cbz r5, .L2715 - cbz r7, .L2716 -.L2713: - ldr r1, [r9, #1180] + bne .L2777 + cbz r5, .L2783 + cbz r7, .L2784 +.L2781: + ldr r1, [r9, #1184] mov r2, r8 mov r0, r5 bl ftl_memcpy movs r2, #4 - ldr r0, .L2721+8 + ldr r0, .L2789+8 mov r1, r5 mov r3, r2 bl rknand_print_hex movs r0, #0 - b .L2710 -.L2716: - ldr r6, .L2721+4 + b .L2778 +.L2784: + ldr r6, .L2789+4 mov lr, #1 -.L2711: - ldr r2, [r9, #1200] +.L2779: + ldr r2, [r9, #1204] uxth r3, r7 adds r7, r7, #1 cmp r3, r2 - bcs .L2713 - ldr r2, [r6, #1180] + bcs .L2781 + ldr r2, [r6, #1184] 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 .L2711 -.L2709: + b .L2779 +.L2777: subs r6, r6, #1 uxth r6, r6 - b .L2708 -.L2720: + b .L2776 +.L2788: mov r0, #-1 - b .L2710 -.L2715: + b .L2778 +.L2783: mov r0, r5 -.L2710: +.L2778: add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2722: +.L2790: .align 2 -.L2721: +.L2789: .word .LANCHOR0 .word .LANCHOR4 - .word .LC136 + .word .LC139 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData .align 1 @@ -16996,36 +17346,36 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2733 + ldr r3, .L2801 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 - ldr r3, [r3, #1204] - ldr r6, .L2733+4 + ldr r3, [r3, #44] + ldr r6, .L2801+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] - ldr r0, [r6, #1208] + ldr r0, [r6, #1212] smulbb r4, r4, r3 uxth r4, r4 adds r2, r4, #7 asrs r2, r2, #3 bl FlashReadFacBbtData adds r0, r0, #1 - bne .L2724 -.L2728: + bne .L2792 +.L2796: movs r3, #0 - b .L2725 -.L2724: + b .L2793 +.L2792: movs r1, #0 lsr lr, r4, #4 mov ip, #1 subs r4, r4, #1 mov r3, r1 -.L2726: +.L2794: uxth r2, r1 cmp r2, r4 - bge .L2725 - ldr r7, [r6, #1208] + bge .L2793 + ldr r7, [r6, #1212] lsrs r0, r2, #5 and r8, r2, #31 adds r1, r1, #1 @@ -17037,16 +17387,16 @@ FlashGetBadBlockList: addne r0, r3, #1 uxthne r3, r0 cmp r3, lr - bcc .L2726 - b .L2728 -.L2725: + bcc .L2794 + b .L2796 +.L2793: movw r2, #65535 movs r0, #0 strh r2, [r5, r3, lsl #1] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L2734: +.L2802: .align 2 -.L2733: +.L2801: .word .LANCHOR0 .word .LANCHOR4 .fnend @@ -17063,73 +17413,73 @@ 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 r5, .L2759 - ldr r4, [r5, #220] + ldr r5, .L2827 + ldr r4, [r5, #224] cmp r4, #0 - bne .L2736 + bne .L2804 bl FtlBbtMemInit - ldr r6, .L2759+4 + ldr r6, .L2827+4 bl FtlLoadFactoryBbt - ldr r9, .L2759+16 + ldr r9, .L2827+16 sub r8, r6, #18 - subw r7, r6, #2476 -.L2737: - ldrh r3, [r7, #2338] - ldr r10, .L2759+8 + sub r7, r6, #2480 +.L2805: + ldrh r3, [r7, #2342] + ldr r10, .L2827+8 cmp r4, r3 - bcs .L2756 - ldr r3, [r5, #3336] + bcs .L2824 + ldr r3, [r5, #3340] movw r2, #65535 - ldr r0, [r5, #3312] - ldr fp, .L2759+16 + ldr r0, [r5, #3316] + ldr fp, .L2827+16 str r3, [sp] - str r3, [r9, #1256] + str r3, [r9, #1260] ldrh r3, [r8, #2]! - str r0, [r9, #1252] + str r0, [r9, #1256] cmp r3, r2 - beq .L2738 - ldrh ip, [r7, #2382] + beq .L2806 + ldrh ip, [r7, #2386] movs r1, #1 - addw r0, fp, #1244 + add r0, fp, #1248 mov r2, r1 mla ip, ip, r4, r3 lsl r3, ip, #10 str ip, [sp] - str r3, [r9, #1248] + str r3, [r9, #1252] bl FlashReadPages - ldrh r2, [r7, #2382] + ldrh r2, [r7, #2386] ldr r0, [r6] adds r2, r2, #7 - ldr r1, [r9, #1252] + ldr r1, [r9, #1256] asrs r2, r2, #3 bl ftl_memcpy ldr ip, [sp] - b .L2739 -.L2738: + b .L2807 +.L2806: mov r1, r4 bl FlashGetBadBlockList - ldr r0, [r9, #1252] + ldr r0, [r9, #1256] ldr r1, [r6] bl FtlBbt2Bitmap - ldrh r3, [r7, #2382] + ldrh r3, [r7, #2386] subs r3, r3, #1 -.L2755: +.L2823: uxth r10, r3 -.L2740: - ldr r3, .L2759+8 - ldrh r0, [r3, #2382] +.L2808: + ldr r3, .L2827+8 + ldrh r0, [r3, #2386] smlabb r0, r0, r4, r10 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - bne .L2757 + bne .L2825 add r3, r10, #-1 - b .L2755 -.L2757: + b .L2823 +.L2825: movs r1, #0 movs r2, #16 strh r10, [r8] @ movhi - ldr r0, [r5, #3336] + ldr r0, [r5, #3340] bl ftl_memset movw r3, #61664 ldr r2, [sp] @@ -17137,125 +17487,125 @@ FtlMakeBbt: movs r3, #0 str r3, [r2, #4] ldrh r3, [r8] - ldrh ip, [r7, #2382] + ldrh ip, [r7, #2386] strh r3, [r2, #2] @ movhi ldrh r3, [r8] - ldrh r2, [r5, #3400] + ldrh r2, [r5, #3404] ldr r1, [r6] mla ip, ip, r4, r3 lsls r2, r2, #2 - ldr r0, [fp, #1252] + ldr r0, [fp, #1256] lsl r3, ip, #10 str ip, [sp, #4] - str r3, [fp, #1248] + str r3, [fp, #1252] bl ftl_memcpy movs r1, #1 - ldr r0, .L2759+12 + ldr r0, .L2827+12 mov r2, r1 bl FlashEraseBlocks movs r1, #1 - ldr r0, .L2759+12 + ldr r0, .L2827+12 mov r3, r1 mov r2, r1 bl FlashProgPages - ldr r3, [fp, #1244] + ldr r3, [fp, #1248] adds r3, r3, #1 ldr ip, [sp, #4] - bne .L2739 + bne .L2807 uxth r0, ip bl FtlBbmMapBadBlock - b .L2740 -.L2739: + b .L2808 +.L2807: uxth r0, ip adds r4, r4, #1 bl FtlBbmMapBadBlock adds r6, r6, #4 - b .L2737 -.L2756: + b .L2805 +.L2824: movs r4, #0 -.L2744: - ldrh r3, [r10, #2398] +.L2812: + ldrh r3, [r10, #2402] uxth r0, r4 - ldr r6, .L2759+8 + ldr r6, .L2827+8 adds r4, r4, #1 cmp r3, r0 - bls .L2758 + bls .L2826 bl FtlBbmMapBadBlock - b .L2744 -.L2758: - ldrh r4, [r6, #2460] + b .L2812 +.L2826: + ldrh r4, [r6, #2464] movw r7, #65535 subs r4, r4, #1 uxth r4, r4 -.L2746: - ldrh r3, [r10, #2460] +.L2814: + ldrh r3, [r10, #2464] subs r3, r3, #48 cmp r4, r3 - ble .L2750 + ble .L2818 mov r0, r4 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2747 + beq .L2815 mov r0, r4 bl FlashTestBlk - cbz r0, .L2748 + cbz r0, .L2816 mov r0, r4 bl FtlBbmMapBadBlock - b .L2747 -.L2748: - ldrh r3, [r6, #2448] + b .L2815 +.L2816: + ldrh r3, [r6, #2452] cmp r3, r7 - bne .L2749 - strh r4, [r6, #2448] @ movhi - b .L2747 -.L2749: - ldr r3, .L2759+8 - strh r4, [r3, #2452] @ movhi - b .L2750 -.L2747: + bne .L2817 + strh r4, [r6, #2452] @ movhi + b .L2815 +.L2817: + ldr r3, .L2827+8 + strh r4, [r3, #2456] @ movhi + b .L2818 +.L2815: subs r4, r4, #1 uxth r4, r4 - b .L2746 -.L2750: - ldr r0, [r5, #224] + b .L2814 +.L2818: + ldr r0, [r5, #228] movs r4, #0 - ldrh r3, [r10, #2448] + ldrh r3, [r10, #2452] movs r2, #2 - str r4, [r10, #2456] + str r4, [r10, #2460] movs r1, #1 - strh r4, [r10, #2450] @ movhi + strh r4, [r10, #2454] @ movhi lsls r3, r3, #10 str r3, [r0, #4] - ldrh r3, [r10, #2452] + ldrh r3, [r10, #2456] lsls r3, r3, #10 str r3, [r0, #40] bl FlashEraseBlocks - ldrh r0, [r10, #2448] - bl FtlBbmMapBadBlock ldrh r0, [r10, #2452] bl FtlBbmMapBadBlock + ldrh r0, [r10, #2456] + bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldr r3, [r10, #2456] - ldrh r2, [r10, #2452] + ldr r3, [r10, #2460] + ldrh r2, [r10, #2456] adds r3, r3, #1 - str r3, [r10, #2456] - ldrh r3, [r10, #2448] - strh r4, [r10, #2450] @ movhi - strh r2, [r10, #2448] @ movhi - strh r3, [r10, #2452] @ movhi + str r3, [r10, #2460] + ldrh r3, [r10, #2452] + strh r4, [r10, #2454] @ movhi + strh r2, [r10, #2452] @ movhi + strh r3, [r10, #2456] @ movhi bl FtlBbmTblFlush -.L2736: +.L2804: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2760: +.L2828: .align 2 -.L2759: +.L2827: .word .LANCHOR2 - .word .LANCHOR0+2476 + .word .LANCHOR0+2480 .word .LANCHOR0 - .word .LANCHOR4+1244 + .word .LANCHOR4+1248 .word .LANCHOR4 .fnend .size FtlMakeBbt, .-FtlMakeBbt @@ -17272,42 +17622,42 @@ log2phys: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L2777 + ldr r6, .L2845 mov r9, r0 str r2, [sp, #8] mov r10, r1 - ldr r3, [r6, #2444] - ldrh r2, [r6, #2392] + ldr r3, [r6, #2448] + ldrh r2, [r6, #2396] cmp r0, r3 - bcs .L2762 + bcs .L2830 adds r3, r2, #7 - ldr r2, .L2777+4 + ldr r2, .L2845+4 lsr r5, r0, r3 str r3, [sp, #4] - ldrh r1, [r6, #2422] + ldrh r1, [r6, #2426] movs r4, #0 - ldr fp, [r2, #456] + ldr fp, [r2, #460] mov r8, r2 uxth r5, r5 movs r2, #12 - b .L2763 -.L2762: + b .L2831 +.L2830: ldr r3, [sp, #8] mov r0, #-1 cmp r3, #0 - bne .L2764 + bne .L2832 str r0, [r1] - b .L2764 -.L2768: + b .L2832 +.L2836: adds r4, r4, #1 mla r0, r2, r4, fp ldrh r0, [r0, #-12] cmp r0, r5 - beq .L2765 -.L2763: + beq .L2833 +.L2831: uxth r7, r4 cmp r7, r1 - bcc .L2768 + bcc .L2836 bl select_l2p_ram_region movs r4, #12 movw r3, #65535 @@ -17316,27 +17666,27 @@ log2phys: add r2, fp, r4 ldrh r1, [fp, r4] cmp r1, r3 - bne .L2776 -.L2769: - ldr r3, [r8, #3384] - ldr fp, .L2777+4 + bne .L2844 +.L2837: + ldr r3, [r8, #3388] + ldr fp, .L2845+4 ldr r3, [r3, r5, lsl #2] cmp r3, #0 - bne .L2770 - ldr r2, [fp, #456] + bne .L2838 + ldr r2, [fp, #460] movs r1, #255 str r3, [sp, #12] add r2, r2, r4 ldr r0, [r2, #8] - ldrh r2, [r6, #2394] + ldrh r2, [r6, #2398] bl ftl_memset - ldr r2, [fp, #456] + ldr r2, [fp, #460] strh r5, [r2, r4] @ movhi - ldr r2, [fp, #456] + ldr r2, [fp, #460] add r4, r4, r2 ldr r3, [sp, #12] str r3, [r4, #4] -.L2765: +.L2833: ldr r3, [sp, #4] movs r2, #1 ldr r1, [sp, #8] @@ -17344,117 +17694,117 @@ log2phys: movs r3, #12 subs r2, r2, #1 and r9, r9, r2 - ldr r2, .L2777+4 + ldr r2, .L2845+4 uxth r9, r9 - cbnz r1, .L2766 - ldr r1, [r2, #456] + cbnz r1, .L2834 + ldr r1, [r2, #460] mla r3, r3, r7, r1 ldr r3, [r3, #8] ldr r3, [r3, r9, lsl #2] str r3, [r10] - b .L2767 -.L2766: + b .L2835 +.L2834: muls r3, r7, r3 - ldr r1, [r2, #456] + ldr r1, [r2, #460] ldr r0, [r10] add r1, r1, r3 ldr r1, [r1, #8] str r0, [r1, r9, lsl #2] - ldr r1, [r2, #456] - strh r5, [r2, #460] @ movhi + ldr r1, [r2, #460] + strh r5, [r2, #464] @ movhi add r3, r3, r1 ldr r1, [r3, #4] orr r1, r1, #-2147483648 str r1, [r3, #4] -.L2767: - ldr r2, [r2, #456] +.L2835: + ldr r2, [r2, #460] movs r3, #12 mla r7, r3, r7, r2 ldr r3, [r7, #4] adds r2, r3, #1 - beq .L2774 + beq .L2842 adds r3, r3, #1 str r3, [r7, #4] - b .L2774 -.L2776: + b .L2842 +.L2844: ldr r3, [r2, #4] cmp r3, #0 - bge .L2769 + bge .L2837 bl flush_l2p_region - b .L2769 -.L2770: - ldr r2, [fp, #456] + b .L2837 +.L2838: + ldr r2, [fp, #460] movs r1, #1 - ldr r8, .L2777+24 + ldr r8, .L2845+24 add r2, r2, r4 str r3, [sp, #12] - addw r0, r8, #1244 + add r0, r8, #1248 ldr r2, [r2, #8] - str r3, [r8, #1248] - str r2, [r8, #1252] - ldr r2, [fp, #3336] + str r3, [r8, #1252] str r2, [r8, #1256] + ldr r2, [fp, #3340] + str r2, [r8, #1260] mov r2, r1 bl FlashReadPages - ldr r2, [r8, #1256] + ldr r2, [r8, #1260] ldrh r2, [r2, #8] cmp r2, r5 ldr r3, [sp, #12] - beq .L2771 + beq .L2839 mov r2, r3 mov r1, r5 - ldr r0, .L2777+8 + ldr r0, .L2845+8 bl printk movs r2, #4 - ldr r0, .L2777+12 + ldr r0, .L2845+12 mov r3, r2 - ldr r1, [r8, #1256] + ldr r1, [r8, #1260] bl rknand_print_hex - ldrh r3, [r6, #2420] - ldr r0, .L2777+16 + ldrh r3, [r6, #2424] + ldr r0, .L2845+16 movs r2, #4 - ldr r1, [fp, #3384] + ldr r1, [fp, #3388] bl rknand_print_hex movs r3, #1 - str r3, [fp, #220] - b .L2772 -.L2771: - ldr r2, [r8, #1244] + str r3, [fp, #224] + b .L2840 +.L2839: + ldr r2, [r8, #1248] cmp r2, #256 - bne .L2772 + bne .L2840 mov r2, r3 mov r1, r5 - ldr r0, .L2777+20 + ldr r0, .L2845+20 bl printk - ldr r3, [fp, #456] - addw r0, fp, #3404 + ldr r3, [fp, #460] + add r0, fp, #3408 mov r1, r5 add r3, r3, r4 ldr r2, [r3, #8] bl FtlMapWritePage -.L2772: - ldr r3, .L2777+4 +.L2840: + ldr r3, .L2845+4 movs r1, #0 - ldr r3, [r3, #456] + ldr r3, [r3, #460] adds r2, r3, r4 str r1, [r2, #4] strh r5, [r3, r4] @ movhi - b .L2765 -.L2774: + b .L2833 +.L2842: movs r0, #0 -.L2764: +.L2832: add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2778: +.L2846: .align 2 -.L2777: +.L2845: .word .LANCHOR0 .word .LANCHOR2 - .word .LC137 - .word .LC100 - .word .LC138 - .word .LC139 + .word .LC140 + .word .LC101 + .word .LC141 + .word .LC142 .word .LANCHOR4 .fnend .size log2phys, .-log2phys @@ -17471,34 +17821,34 @@ FtlWriteDumpData: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #40 sub sp, sp, #40 - ldr r4, .L2797 - ldr r3, [r4, #220] + ldr r4, .L2865 + ldr r3, [r4, #224] cmp r3, #0 - bne .L2779 - ldrh r2, [r4, #316] + bne .L2847 + ldrh r2, [r4, #320] cmp r2, #0 - beq .L2781 - ldrb r3, [r4, #320] @ zero_extendqisi2 + beq .L2849 + ldrb r3, [r4, #324] @ zero_extendqisi2 cmp r3, #0 - bne .L2781 - ldr r7, .L2797+4 - ldrb r1, [r4, #319] @ zero_extendqisi2 - ldrh r3, [r7, #2384] + bne .L2849 + ldr r7, .L2865+4 + ldrb r1, [r4, #323] @ zero_extendqisi2 + ldrh r3, [r7, #2388] muls r3, r1, r3 cmp r2, r3 - beq .L2781 - ldrb r9, [r4, #322] @ zero_extendqisi2 - ldr r6, [r7, #2444] - ldrh r8, [r7, #2316] + beq .L2849 + ldrb r9, [r4, #326] @ zero_extendqisi2 + ldr r6, [r7, #2448] + ldrh r8, [r7, #2320] cmp r9, #0 - bne .L2779 + bne .L2847 subs r6, r6, #1 mov r1, sp mov r2, r9 mov r0, r6 bl log2phys - ldr r5, [r4, #3336] - ldr r0, [r4, #3312] + ldr r5, [r4, #3340] + ldr r0, [r4, #3316] ldr r3, [sp] str r6, [sp, #20] str r0, [sp, #12] @@ -17506,37 +17856,37 @@ FtlWriteDumpData: adds r3, r3, #1 str r5, [sp, #16] str r9, [r5, #4] - beq .L2783 + beq .L2851 movs r1, #1 mov r2, r9 add r0, sp, #4 bl FlashReadPages - b .L2784 -.L2783: + b .L2852 +.L2851: movs r1, #255 - ldrh r2, [r7, #2394] + ldrh r2, [r7, #2398] bl ftl_memset -.L2784: +.L2852: movs r7, #0 - ldr r10, .L2797 + ldr r10, .L2865 lsl r8, r8, #2 movw r3, #61589 mov r9, r7 strh r3, [r5] @ movhi -.L2785: +.L2853: cmp r7, r8 - beq .L2786 - ldrh r3, [r4, #316] - cbz r3, .L2786 + beq .L2854 + ldrh r3, [r4, #320] + cbz r3, .L2854 ldr r3, [sp, #8] adds r7, r7, #1 str r6, [r5, #8] - ldr r0, .L2797+8 + ldr r0, .L2865+8 str r3, [r5, #12] - ldrh r3, [r10, #312] + ldrh r3, [r10, #316] strh r3, [r5, #2] @ movhi bl get_new_active_ppa - ldr r3, [r10, #508] + ldr r3, [r10, #512] movs r1, #1 str r0, [sp, #8] add r0, sp, #4 @@ -17546,29 +17896,29 @@ FtlWriteDumpData: mov r2, #0 it eq moveq r3, r9 - str r3, [r10, #508] + str r3, [r10, #512] mov r3, r2 bl FlashProgPages - ldrh r0, [r4, #312] + ldrh r0, [r4, #316] bl decrement_vpc_count - b .L2785 -.L2786: + b .L2853 +.L2854: movs r3, #1 - b .L2796 -.L2781: + b .L2864 +.L2849: movs r3, #0 -.L2796: - strb r3, [r4, #322] -.L2779: +.L2864: + strb r3, [r4, #326] +.L2847: add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2798: +.L2866: .align 2 -.L2797: +.L2865: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+312 + .word .LANCHOR2+316 .fnend .size FtlWriteDumpData, .-FtlWriteDumpData .align 1 @@ -17584,29 +17934,29 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData movs r4, #0 - ldr r5, .L2804 + ldr r5, .L2872 movs r7, #12 - ldr r6, .L2804+4 -.L2800: - ldrh r3, [r5, #2422] + ldr r6, .L2872+4 +.L2868: + ldrh r3, [r5, #2426] uxth r0, r4 cmp r3, r0 - bls .L2803 - ldr r3, [r6, #456] + bls .L2871 + ldr r3, [r6, #460] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L2801 + bge .L2869 bl flush_l2p_region -.L2801: +.L2869: adds r4, r4, #1 - b .L2800 -.L2803: + b .L2868 +.L2871: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L2805: +.L2873: .align 2 -.L2804: +.L2872: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -17623,89 +17973,89 @@ allocate_new_data_superblock: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 - ldr r4, .L2832 + ldr r4, .L2900 ldrh r5, [r0] - ldr r3, [r4, #220] + ldr r3, [r4, #224] cmp r3, #0 - bne .L2807 + bne .L2875 movw r3, #65535 cmp r5, r3 - beq .L2808 - ldr r3, [r4, #292] + beq .L2876 + ldr r3, [r4, #296] mov r0, r5 ldrh r3, [r3, r5, lsl #1] - cbz r3, .L2809 + cbz r3, .L2877 bl INSERT_DATA_LIST - b .L2808 -.L2809: + b .L2876 +.L2877: bl INSERT_FREE_LIST -.L2808: - ldr r2, .L2832 +.L2876: + ldr r2, .L2900 movs r3, #0 strb r3, [r6, #8] - add r3, r2, #360 + add r3, r2, #364 cmp r6, r3 - beq .L2810 - ldr r3, .L2832+4 - ldrh r1, [r3, #2336] + beq .L2878 + ldr r3, .L2900+4 + ldrh r1, [r3, #2340] cmp r1, #1 - beq .L2810 - ldrb r0, [r3, #140] @ zero_extendqisi2 - cbz r0, .L2811 -.L2810: + beq .L2878 + ldrb r0, [r3, #144] @ zero_extendqisi2 + cbz r0, .L2879 +.L2878: movs r3, #1 strb r3, [r6, #8] - b .L2812 -.L2811: - add r0, r2, #312 + b .L2880 +.L2879: + add r0, r2, #316 cmp r6, r0 - bne .L2812 + bne .L2880 cmp r1, #3 - beq .L2814 - ldr r2, [r2, #600] + beq .L2882 + ldr r2, [r2, #604] cmp r2, #1 - bne .L2815 -.L2814: + bne .L2883 +.L2882: movs r2, #1 - strb r2, [r4, #320] -.L2815: - ldr r3, [r3, #2308] - cbz r3, .L2812 - ldr r3, [r4, #528] + strb r2, [r4, #324] +.L2883: + ldr r3, [r3, #2244] + cbz r3, .L2880 + ldr r3, [r4, #532] cmp r3, #39 ittt ls movls r2, #1 - ldrls r3, .L2832 - strbls r2, [r3, #320] -.L2812: - ldrh r0, [r4, #3456] + ldrls r3, .L2900 + strbls r2, [r3, #324] +.L2880: + ldrh r0, [r4, #3460] movw r3, #65535 cmp r0, r3 - beq .L2817 + beq .L2885 cmp r5, r0 - bne .L2818 - ldr r3, .L2832 - ldr r3, [r3, #292] + bne .L2886 + ldr r3, .L2900 + ldr r3, [r3, #296] ldrh r3, [r3, r0, lsl #1] - cbz r3, .L2819 -.L2818: + cbz r3, .L2887 +.L2886: bl update_vpc_list -.L2819: +.L2887: movw r3, #65535 - strh r3, [r4, #3456] @ movhi -.L2817: + strh r3, [r4, #3460] @ movhi +.L2885: mov r0, r6 bl allocate_data_superblock bl l2p_flush movs r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2807: +.L2875: movs r0, #0 pop {r4, r5, r6, pc} -.L2833: +.L2901: .align 2 -.L2832: +.L2900: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -17719,110 +18069,126 @@ FtlCheckVpc: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #12 + push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + .pad #8 movs r4, #0 - ldr r1, .L2854 - ldr r0, .L2854+4 + ldr r1, .L2924 + ldr r0, .L2924+4 bl printk - ldr r0, .L2854+8 + ldr r0, .L2924+8 movs r1, #0 mov r2, #8192 bl memset - ldr r5, .L2854+12 - ldr r7, .L2854+16 -.L2835: - ldr r3, [r5, #2444] - ldr r6, .L2854+12 + ldr r5, .L2924+12 + ldr r6, .L2924+16 +.L2903: + ldr r3, [r5, #2448] + ldr r9, .L2924+12 cmp r4, r3 - bcs .L2852 + bcs .L2922 mov r0, r4 add r1, sp, #4 movs r2, #0 bl log2phys ldr r0, [sp, #4] adds r3, r0, #1 - beq .L2836 + beq .L2904 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - add r0, r7, r0, lsl #1 - ldrh r3, [r0, #1332] + add r0, r6, r0, lsl #1 + ldrh r3, [r0, #1336] adds r3, r3, #1 - strh r3, [r0, #1332] @ movhi -.L2836: + strh r3, [r0, #1336] @ movhi +.L2904: adds r4, r4, #1 - b .L2835 -.L2852: - ldr r8, .L2854+20 - movs r4, #0 - ldr r7, .L2854+16 -.L2838: - ldrh r3, [r6, #2324] - uxth r1, r4 - ldr r5, .L2854+20 - cmp r3, r1 - bls .L2853 - ldr r3, [r8, #292] - ldrh r2, [r3, r1, lsl #1] - add r3, r7, r1, lsl #1 - ldrh r3, [r3, #1332] + b .L2903 +.L2922: + movs r7, #0 + ldr r8, .L2924+20 + ldr r10, .L2924+16 + mov r6, r7 +.L2906: + ldrh r3, [r9, #2328] + uxth r4, r7 + ldr r5, .L2924+20 + cmp r3, r4 + bls .L2923 + ldr r3, [r8, #296] + add r5, r10, r4, lsl #1 + ldrh r2, [r3, r4, lsl #1] + ldrh r3, [r5, #1336] cmp r2, r3 - beq .L2839 - ldr r0, .L2854+24 + beq .L2907 + ldr r0, .L2924+24 + mov r1, r4 bl printk -.L2839: - adds r4, r4, #1 - b .L2838 -.L2853: - ldr r3, [r5, #304] - cbz r3, .L2834 - ldr r2, [r5, #284] - movs r6, #0 - ldrh r7, [r5, #308] - mov r9, #6 + ldr r3, [r8, #296] + movw r2, #65535 + ldrh r3, [r3, r4, lsl #1] + cmp r3, r2 + beq .L2907 + ldrh r2, [r5, #1336] + cmp r2, r3 + it hi + movhi r6, #1 +.L2907: + adds r7, r7, #1 + b .L2906 +.L2923: + ldr r3, [r5, #308] + cbz r3, .L2909 + ldr r2, [r5, #288] + movs r7, #0 + ldrh r8, [r5, #312] subs r3, r3, r2 - ldr r2, .L2854+28 - ldr r8, .L2854+16 + ldr r2, .L2924+28 + ldr r9, .L2924+16 asrs r3, r3, #1 muls r3, r2, r3 uxth r4, r3 -.L2842: - uxth r3, r6 - cmp r3, r7 - bcs .L2834 - ldr r3, [r5, #292] +.L2910: + uxth r3, r7 + cmp r3, r8 + bcs .L2909 + ldr r3, [r5, #296] ldrh r2, [r3, r4, lsl #1] - cbz r2, .L2843 - add r3, r8, r4, lsl #1 - ldr r0, .L2854+32 + cbz r2, .L2911 + add r3, r9, r4, lsl #1 + ldr r0, .L2924+32 mov r1, r4 - ldrh r3, [r3, #1332] + movs r6, #1 + ldrh r3, [r3, #1336] bl printk -.L2843: - mul r4, r9, r4 - ldr r3, [r5, #284] - adds r6, r6, #1 - ldrh r4, [r3, r4] +.L2911: + movs r3, #6 + ldr r2, [r5, #288] + adds r7, r7, #1 + muls r4, r3, r4 movw r3, #65535 + ldrh r4, [r2, r4] cmp r4, r3 - bne .L2842 -.L2834: - add sp, sp, #12 + bne .L2910 +.L2909: + mov r1, r6 + ldr r0, .L2924+36 + bl printk + add sp, sp, #8 @ sp needed - pop {r4, r5, r6, r7, r8, r9, pc} -.L2855: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L2925: .align 2 -.L2854: - .word .LANCHOR3+72 - .word .LC108 - .word .LANCHOR4+1332 +.L2924: + .word .LANCHOR3+204 + .word .LC110 + .word .LANCHOR4+1336 .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR2 - .word .LC140 + .word .LC143 .word -1431655765 - .word .LC141 + .word .LC144 + .word .LC145 .fnend .size FtlCheckVpc, .-FtlCheckVpc .align 1 @@ -17839,53 +18205,53 @@ Ftlscanalldata: movs r1, #0 .pad #36 sub sp, sp, #36 - ldr r0, .L2871 + ldr r0, .L2941 bl printk - ldr r7, .L2871+4 - ldr r5, .L2871+8 + ldr r7, .L2941+4 + ldr r5, .L2941+8 movs r4, #0 -.L2857: - ldr r3, [r7, #2444] +.L2927: + ldr r3, [r7, #2448] cmp r4, r3 - bcs .L2870 + bcs .L2940 mov r0, r4 add r1, sp, #28 movs r2, #0 bl log2phys ubfx r3, r4, #0, #11 - cbnz r3, .L2858 - ldr r0, .L2871+12 + cbnz r3, .L2928 + ldr r0, .L2941+12 mov r1, r4 ldr r2, [sp, #28] bl printk -.L2858: +.L2928: ldr r3, [sp, #28] adds r2, r3, #1 - beq .L2860 - str r3, [r5, #1248] + beq .L2930 + str r3, [r5, #1252] movs r1, #1 - ldr r3, .L2871+16 - ldr r0, .L2871+20 - str r4, [r5, #1260] - ldr r2, [r3, #3312] - ldr r6, [r3, #3336] - str r2, [r5, #1252] + ldr r3, .L2941+16 + ldr r0, .L2941+20 + str r4, [r5, #1264] + ldr r2, [r3, #3316] + ldr r6, [r3, #3340] + str r2, [r5, #1256] movs r2, #0 - str r6, [r5, #1256] - str r2, [r5, #1244] + str r6, [r5, #1260] + str r2, [r5, #1248] bl FlashReadPages - ldr r3, [r5, #1244] - ldr r2, .L2871+8 + ldr r3, [r5, #1248] + ldr r2, .L2941+8 cmp r3, #256 - beq .L2861 + beq .L2931 adds r3, r3, #1 - beq .L2861 + beq .L2931 ldr r3, [r6, #8] cmp r3, r4 - beq .L2860 -.L2861: - ldr r3, [r2, #1256] - ldr r1, [r2, #1252] + beq .L2930 +.L2931: + ldr r3, [r2, #1260] + ldr r1, [r2, #1256] ldr r0, [r3, #4] str r0, [sp] ldr r0, [r3, #8] @@ -17895,29 +18261,29 @@ Ftlscanalldata: ldr r0, [r1] str r0, [sp, #12] ldr r1, [r1, #4] - ldr r0, .L2871+24 + ldr r0, .L2941+24 str r1, [sp, #16] mov r1, r4 - ldr r2, [r2, #1248] + ldr r2, [r2, #1252] ldr r3, [r3] bl printk -.L2860: +.L2930: adds r4, r4, #1 - b .L2857 -.L2870: + b .L2927 +.L2940: add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, pc} -.L2872: +.L2942: .align 2 -.L2871: - .word .LC142 +.L2941: + .word .LC146 .word .LANCHOR0 .word .LANCHOR4 - .word .LC143 + .word .LC147 .word .LANCHOR2 - .word .LANCHOR4+1244 - .word .LC144 + .word .LANCHOR4+1248 + .word .LC148 .fnend .size Ftlscanalldata, .-Ftlscanalldata .align 1 @@ -17936,51 +18302,51 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r5, .L2882 - ldr r4, [r5, #292] + ldr r5, .L2952 + ldr r4, [r5, #296] ldrh r3, [r4, r0, lsl #1] - cbnz r3, .L2874 - ldr r4, [r5, #304] - cbz r4, .L2875 - ldr r1, [r5, #284] + cbnz r3, .L2944 + ldr r4, [r5, #308] + cbz r4, .L2945 + ldr r1, [r5, #288] mov lr, #6 - ldr r2, .L2882+4 + ldr r2, .L2952+4 movw ip, #65535 subs r4, r4, r1 - ldrh r7, [r5, #308] + ldrh r7, [r5, #312] asrs r4, r4, #1 muls r4, r2, r4 uxth r4, r4 -.L2876: +.L2946: uxth r2, r3 cmp r2, r7 - bcs .L2875 + bcs .L2945 cmp r4, r0 - bne .L2877 + bne .L2947 mov r1, r4 - ldr r0, .L2882+8 + ldr r0, .L2952+8 bl List_remove_node - ldrh r3, [r5, #308] + ldrh r3, [r5, #312] mov r0, r4 subs r3, r3, #1 - strh r3, [r5, #308] @ movhi + strh r3, [r5, #312] @ movhi bl INSERT_DATA_LIST - ldr r2, [r5, #292] + ldr r2, [r5, #296] ldrh r3, [r2, r4, lsl #1] adds r3, r3, #1 strh r3, [r2, r4, lsl #1] @ movhi - b .L2875 -.L2877: + b .L2945 +.L2947: mul r4, lr, r4 adds r3, r3, #1 ldrh r4, [r1, r4] cmp r4, ip - bne .L2876 - b .L2875 -.L2874: + bne .L2946 + b .L2945 +.L2944: adds r3, r3, #1 strh r3, [r4, r0, lsl #1] @ movhi -.L2875: +.L2945: mov r0, r6 add r1, sp, #4 movs r2, #1 @@ -17988,12 +18354,12 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L2883: +.L2953: .align 2 -.L2882: +.L2952: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2+304 + .word .LANCHOR2+308 .fnend .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 1 @@ -18013,60 +18379,60 @@ FtlRecoverySuperblock: sub sp, sp, #68 mov r4, r0 cmp r3, r7 - beq .L3031 + beq .L3101 ldrh r3, [r0, #2] movs r5, #0 - ldr r6, .L3047 + ldr r6, .L3117 str r3, [sp, #12] ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r2, [sp, #12] str r3, [sp, #28] - ldrh r3, [r6, #2384] + ldrh r3, [r6, #2388] cmp r3, r2 - bne .L2887 + bne .L2957 strh r5, [r0, #4] @ movhi strb r5, [r0, #6] - b .L3031 -.L2887: + b .L3101 +.L2957: ldrh r0, [r0, #16] -.L2888: +.L2958: cmp r0, r7 add r5, r5, #1 - bne .L3042 + bne .L3112 uxth r3, r5 adds r3, r3, #8 ldrh r0, [r4, r3, lsl #1] - b .L2888 -.L3042: + b .L2958 +.L3112: ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2890 + bne .L2960 bl FtlGetLastWrittenPage adds r2, r0, #1 mov r5, r0 - beq .L2891 - ldrb r3, [r6, #140] @ zero_extendqisi2 - cbnz r3, .L3033 - ldr r3, .L3047 + beq .L2961 + ldrb r3, [r6, #144] @ zero_extendqisi2 + cbnz r3, .L3103 + ldr r3, .L3117 add r3, r3, r0, lsl #1 - ldrh r7, [r3, #144] - b .L2965 -.L2890: + ldrh r7, [r3, #148] + b .L3035 +.L2960: movs r1, #0 bl FtlGetLastWrittenPage adds r3, r0, #1 mov r5, r0 - beq .L2891 -.L3033: + beq .L2961 +.L3103: mov r7, r5 -.L2965: - ldr r3, .L3047+4 +.L3035: + ldr r3, .L3117+4 movw r9, #65535 - ldrh ip, [r6, #2316] + ldrh ip, [r6, #2320] mov r10, #36 - ldrh r0, [r6, #2396] - ldr r2, [r3, #3300] - ldr r8, [r3, #1144] + ldrh r0, [r6, #2400] + ldr r2, [r3, #3304] + ldr r8, [r3, #1148] add r3, r4, #14 str r3, [sp, #20] str r2, [sp, #4] @@ -18074,16 +18440,16 @@ FtlRecoverySuperblock: mov lr, r3 mov r6, r2 mov fp, r2 - b .L2893 -.L2891: + b .L2963 +.L2961: movs r3, #0 strh r3, [r4, #2] @ movhi strb r3, [r4, #6] - b .L3031 -.L2896: + b .L3101 +.L2966: ldrh r3, [lr, #2]! cmp r3, r9 - beq .L2894 + beq .L2964 ldr r1, [sp, #4] orr r3, r7, r3, lsl #10 mla r1, r10, r6, r1 @@ -18098,105 +18464,105 @@ FtlRecoverySuperblock: bic r3, r3, #3 add r3, r3, r8 str r3, [r1, #12] -.L2894: +.L2964: adds r2, r2, #1 -.L2893: +.L2963: uxth r3, r2 cmp r3, ip - bcc .L2896 + bcc .L2966 ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2967 - ldr r3, .L3047 - ldrb r1, [r3, #140] @ zero_extendqisi2 + bne .L3037 + ldr r3, .L3117 + ldrb r1, [r3, #144] @ zero_extendqisi2 adds r3, r1, #0 it ne movne r3, #1 - b .L3034 -.L2967: + b .L3104 +.L3037: movs r3, #0 -.L3034: - ldr r8, .L3047+4 +.L3104: + ldr r8, .L3117+4 mov r1, r6 str r3, [sp, #24] mov fp, #0 ldr r2, [sp, #24] - ldr r0, [r8, #3300] + ldr r0, [r8, #3304] bl FlashReadPages - ldr r3, [r8, #508] + ldr r3, [r8, #512] subs r3, r3, #1 str r8, [sp, #8] str r3, [sp, #4] movw r3, #65535 str r3, [sp, #16] -.L2898: +.L2968: uxth r9, fp cmp r9, r6 - bcs .L2905 + bcs .L2975 movs r1, #36 - ldr r0, [r8, #3300] + ldr r0, [r8, #3304] mul r1, r1, fp add lr, r0, r1 ldr r1, [r0, r1] - cbnz r1, .L2899 + cbnz r1, .L2969 ldr r3, [lr, #12] ldr r10, [r3, #4] cmp r10, #-1 - beq .L2900 + beq .L2970 mov r0, r10 - ldr r1, [r8, #508] + ldr r1, [r8, #512] str r3, [sp, #32] bl ftl_cmp_data_ver ldr r3, [sp, #32] - cbz r0, .L2900 + cbz r0, .L2970 add r1, r10, #1 - str r1, [r8, #508] -.L2900: + str r1, [r8, #512] +.L2970: ldr r1, [r3] adds r1, r1, #1 - bne .L2901 -.L2905: + bne .L2971 +.L2975: cmp r9, r6 - ldr r6, .L3047+4 - bne .L3032 - ldr r3, [r6, #3300] + ldr r6, .L3117+4 + bne .L3102 + ldr r3, [r6, #3304] adds r5, r5, #1 uxth r10, r5 ldr r0, [r3, #4] - b .L3035 -.L2899: + b .L3105 +.L2969: ldr r1, [lr, #4] - ldr r0, .L3047+8 + ldr r0, .L3117+8 bl printk uxth r3, r7 ldrh r1, [r4] str r3, [sp, #16] - ldr r3, .L3047+12 - strh r1, [r3, #836] @ movhi -.L2901: + ldr r3, .L3117+12 + strh r1, [r3, #840] @ movhi +.L2971: add fp, fp, #1 - b .L2898 -.L3032: + b .L2968 +.L3102: ldr r3, [sp, #8] movs r2, #36 uxth r10, r5 - ldr r3, [r3, #3300] + ldr r3, [r3, #3304] mla r9, r2, r9, r3 ldr r0, [r9, #4] -.L3035: +.L3105: ubfx r0, r0, #10, #16 bl P2V_plane ldrb r5, [r4, #8] @ zero_extendqisi2 - ldr r2, .L3047 + ldr r2, .L3117 cmp r5, #1 str r0, [sp, #8] - bne .L2907 - ldrb r3, [r2, #140] @ zero_extendqisi2 - cbnz r3, .L2907 + bne .L2977 + ldrb r3, [r2, #144] @ zero_extendqisi2 + cbnz r3, .L2977 add r3, r2, r10, lsl #1 - ldrh r10, [r3, #144] -.L2907: - ldrh r3, [r2, #2384] + ldrh r10, [r3, #148] +.L2977: + ldrh r3, [r2, #2388] cmp r3, r10 itttt eq strheq r10, [r4, #2] @ movhi @@ -18207,34 +18573,34 @@ FtlRecoverySuperblock: str r3, [sp, #32] ldr r3, [sp, #12] cmp r10, r3 - bne .L2909 + bne .L2979 ldr r3, [sp, #8] ldr r2, [sp, #32] cmp r3, r2 - bne .L2909 + bne .L2979 mov r0, r4 mov r1, r10 mov r2, r3 - b .L3040 -.L2909: + b .L3110 +.L2979: ldr r2, [sp, #16] movw r3, #65535 cmp r2, r3 - bne .L2910 + bne .L2980 cmp r5, #0 - bne .L2911 -.L2910: - ldr r3, [r6, #3468] + bne .L2981 +.L2980: + ldr r3, [r6, #3472] uxth fp, r7 mov r9, #-1 - ldr r7, .L3047+4 + ldr r7, .L3117+4 adds r3, r3, #1 mov r8, r9 ittt eq - ldreq r3, .L3047+4 + ldreq r3, .L3117+4 ldreq r2, [sp, #4] - streq r2, [r3, #3468] - ldr r3, [r6, #3468] + streq r2, [r3, #3472] + ldr r3, [r6, #3472] str r3, [sp, #16] ldr r3, [sp, #12] adds r3, r3, #7 @@ -18243,24 +18609,24 @@ FtlRecoverySuperblock: subgt r5, fp, #7 ldrle r5, [sp, #12] uxthgt r5, r5 -.L2914: +.L2984: cmp r5, fp - bhi .L2927 - ldr r3, .L3047 + bhi .L2997 + ldr r3, .L3117 ldr r1, [sp, #20] - ldrh ip, [r3, #2316] - ldr r3, [r7, #3300] + ldrh ip, [r3, #2320] + ldr r3, [r7, #3304] str r3, [sp, #28] movs r3, #0 mov r6, r3 -.L2928: +.L2998: uxth r2, r3 cmp r2, ip - bcs .L3043 + bcs .L3113 ldrh r2, [r1, #2]! movw r0, #65535 cmp r2, r0 - beq .L2915 + beq .L2985 ldr r0, [sp, #28] mov lr, #36 orr r2, r5, r2, lsl #10 @@ -18268,129 +18634,129 @@ FtlRecoverySuperblock: adds r6, r6, #1 uxth r6, r6 str r2, [r0, #4] -.L2915: +.L2985: adds r3, r3, #1 - b .L2928 -.L3043: + b .L2998 +.L3113: mov r1, r6 ldr r2, [sp, #24] - ldr r0, [r7, #3300] + ldr r0, [r7, #3304] bl FlashReadPages - ldr r3, .L3047 + ldr r3, .L3117 movs r2, #36 add lr, r7, r5, lsl #1 movw r1, #65535 - ldrb r0, [r3, #140] @ zero_extendqisi2 - ldr r3, [r7, #3300] + ldrb r0, [r3, #144] @ zero_extendqisi2 + ldr r3, [r7, #3304] mla r6, r2, r6, r3 -.L2917: +.L2987: cmp r3, r6 - beq .L3044 + beq .L3114 ldr r2, [r3] - cbnz r2, .L2918 + cbnz r2, .L2988 ldr r2, [r3, #12] ldrh ip, [r2] cmp ip, r1 - beq .L2919 + beq .L2989 ldr r2, [r2, #4] cmp r2, #-1 - beq .L2919 + beq .L2989 cmp r9, #-1 - ldr r8, [r7, #3468] - str r2, [r7, #3468] - bne .L2919 - ldrh r2, [lr, #1216] + ldr r8, [r7, #3472] + str r2, [r7, #3472] + bne .L2989 + ldrh r2, [lr, #1220] cmp r2, r1 - bne .L2920 + bne .L2990 cmp r0, #0 - beq .L2919 -.L2920: + beq .L2989 +.L2990: ldr r2, [sp, #4] cmp r8, r2 ite ne movne r9, r8 moveq r9, #-1 - b .L2919 -.L3048: + b .L2989 +.L3118: .align 2 -.L3047: +.L3117: .word .LANCHOR0 .word .LANCHOR2 - .word .LC145 + .word .LC149 .word .LANCHOR5 -.L2918: - ldr r3, .L3049 +.L2988: + ldr r3, .L3119 ldrh r2, [r4] - strh r2, [r3, #836] @ movhi + strh r2, [r3, #840] @ movhi ldrb r3, [r4, #8] @ zero_extendqisi2 - cbnz r3, .L2911 - ldr r3, .L3049+4 + cbnz r3, .L2981 + ldr r3, .L3119+4 movw r2, #65535 add r5, r3, r5, lsl #1 - ldrh r1, [r5, #1216] + ldrh r1, [r5, #1220] cmp r1, r2 - bne .L2922 + bne .L2992 cmp r9, #-1 - beq .L2923 - str r9, [r3, #3468] - b .L2911 -.L2923: + beq .L2993 + str r9, [r3, #3472] + b .L2981 +.L2993: ldr r2, [sp, #16] ldr r1, [sp, #4] cmp r2, r1 - bne .L3036 - ldr r2, [r3, #3468] - b .L3041 -.L2922: + bne .L3106 + ldr r2, [r3, #3472] + b .L3111 +.L2992: ldr r2, [sp, #4] cmp r8, r2 - beq .L2925 + beq .L2995 cmp r8, #-1 - beq .L2911 - str r8, [r3, #3468] - b .L2911 -.L2925: - ldr r2, [r3, #3468] + beq .L2981 + str r8, [r3, #3472] + b .L2981 +.L2995: + ldr r2, [r3, #3472] ldr r1, [sp, #4] cmp r2, r1 - beq .L2911 -.L3041: + beq .L2981 +.L3111: subs r2, r2, #1 - b .L3036 -.L2919: + b .L3106 +.L2989: adds r3, r3, #36 - b .L2917 -.L3044: + b .L2987 +.L3114: adds r5, r5, #1 uxth r5, r5 - b .L2914 -.L2927: - ldr r3, .L3049+4 + b .L2984 +.L2997: + ldr r3, .L3119+4 mov r2, #-1 -.L3036: - str r2, [r3, #3468] -.L2911: - ldr r3, .L3049 +.L3106: + str r2, [r3, #3472] +.L2981: + ldr r3, .L3119 movs r2, #1 ldr fp, [sp, #12] - ldr r5, .L3049+4 - strh r2, [r3, #838] @ movhi -.L2929: - ldr r3, .L3049+8 + ldr r5, .L3119+4 + strh r2, [r3, #842] @ movhi +.L2999: + ldr r3, .L3119+8 movw r9, #65535 - ldr r1, [r5, #3300] + ldr r1, [r5, #3304] movs r6, #0 ldr r7, [sp, #20] - ldrh r8, [r3, #2316] - ldrb r0, [r3, #140] @ zero_extendqisi2 + ldrh r8, [r3, #2320] + ldrb r0, [r3, #144] @ zero_extendqisi2 str r6, [sp, #16] -.L2930: +.L3000: uxth r3, r6 cmp r3, r8 - bcs .L3045 + bcs .L3115 ldrh r3, [r7, #2]! cmp r3, r9 - beq .L2931 + beq .L3001 ldr r2, [sp, #16] mov lr, #36 orr r3, fp, r3, lsl #10 @@ -18398,33 +18764,33 @@ FtlRecoverySuperblock: str r3, [r2, #4] ldrb lr, [r4, #8] @ zero_extendqisi2 cmp lr, #1 - bne .L2932 - cbz r0, .L2932 + bne .L3002 + cbz r0, .L3002 orr r3, r3, #-2147483648 str r3, [r2, #4] -.L2932: +.L3002: ldr r3, [sp, #16] add ip, r3, #1 uxth r3, ip str r3, [sp, #16] -.L2931: +.L3001: adds r6, r6, #1 - b .L2930 -.L3045: - ldr r0, [r5, #3300] + b .L3000 +.L3115: + ldr r0, [r5, #3304] ldr r1, [sp, #16] ldr r2, [sp, #24] bl FlashReadPages movs r3, #0 -.L3039: +.L3109: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L3046 + bcs .L3116 ldr r3, [sp, #28] movs r6, #36 - ldr r9, [r5, #3300] + ldr r9, [r5, #3304] muls r6, r3, r6 add r8, r9, r6 ldr r7, [r8, #4] @@ -18433,41 +18799,41 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #12] cmp fp, r3 - bcc .L2935 - bne .L2936 + bcc .L3005 + bne .L3006 ldr r3, [sp, #32] cmp r0, r3 - bcc .L2935 -.L2936: + bcc .L3005 +.L3006: cmp fp, r10 - bne .L2937 + bne .L3007 ldr r3, [sp, #8] cmp r0, r3 - beq .L2938 -.L2937: + beq .L3008 +.L3007: ldr r3, [r9, r6] adds r3, r3, #1 - beq .L2939 + beq .L3009 ldr r8, [r8, #12] movw r3, #61589 ldrh r2, [r8] cmp r2, r3 - beq .L2940 + beq .L3010 ldrh r0, [r4] - b .L3037 -.L2940: + b .L3107 +.L3010: ldr r3, [r8, #4] adds r7, r3, #1 str r3, [sp, #4] - beq .L2941 + beq .L3011 mov r0, r3 - ldr r1, [r5, #508] + ldr r1, [r5, #512] bl ftl_cmp_data_ver - cbz r0, .L2941 + cbz r0, .L3011 ldr r3, [sp, #4] adds r3, r3, #1 - str r3, [r5, #508] -.L2941: + str r3, [r5, #512] +.L3011: ldr r7, [r8, #8] add r1, sp, #56 ldr r3, [r8, #12] @@ -18475,268 +18841,268 @@ FtlRecoverySuperblock: mov r0, r7 str r3, [sp, #52] bl log2phys - ldr r1, [r5, #3468] + ldr r1, [r5, #3472] adds r0, r1, #1 - beq .L2942 + beq .L3012 ldr r0, [sp, #4] bl ftl_cmp_data_ver cmp r0, #0 - beq .L2942 + beq .L3012 ldr r3, [sp, #52] adds r2, r3, #1 - beq .L2943 - ldr r0, [r5, #3300] + beq .L3013 + ldr r0, [r5, #3304] movs r2, #0 movs r1, #1 add r0, r0, r6 str r3, [r0, #4] ldr r9, [r0, #12] bl FlashReadPages - ldr r2, [r5, #3300] + ldr r2, [r5, #3304] ldr r3, [r9, #4] add ip, r2, r6 str r3, [sp, #36] ldr r3, [r2, r6] adds r3, r3, #1 - bne .L2944 - b .L2945 -.L2943: + bne .L3014 + b .L3015 +.L3013: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - bne .L2935 + bne .L3005 mov r0, r7 add r1, sp, #52 movs r2, #1 bl log2phys - b .L2935 -.L2944: + b .L3005 +.L3014: ldr r8, [r9, #8] cmp r8, r7 - bne .L2945 - ldr r0, [r5, #3468] + bne .L3015 + ldr r0, [r5, #3472] 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, .L2945 + cbz r0, .L3015 ldr r3, [sp, #56] ldr r1, [sp, #60] cmp r3, r1 - beq .L2950 + beq .L3020 ldr r1, [sp, #52] cmp r3, r1 - beq .L2945 + beq .L3015 adds r7, r3, #1 - beq .L2948 + beq .L3018 str r3, [ip, #4] mov r0, ip movs r1, #1 movs r2, #0 ldr r9, [ip, #12] bl FlashReadPages - b .L2949 -.L2948: + b .L3019 +.L3018: str r3, [r2, r6] -.L2949: - ldr r3, [r5, #3300] +.L3019: + ldr r3, [r5, #3304] ldr r3, [r3, r6] adds r3, r3, #1 - beq .L2950 + beq .L3020 ldr r6, [r9, #4] - ldr r0, [r5, #3468] + ldr r0, [r5, #3472] mov r1, r6 bl ftl_cmp_data_ver - cbz r0, .L2950 + cbz r0, .L3020 ldr r0, [sp, #36] mov r1, r6 bl ftl_cmp_data_ver - cbz r0, .L2945 -.L2950: + cbz r0, .L3015 +.L3020: mov r0, r8 ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L2945: +.L3015: mov r3, #-1 str r3, [sp, #52] - b .L2952 -.L3050: + b .L3022 +.L3120: .align 2 -.L3049: +.L3119: .word .LANCHOR5 .word .LANCHOR2 .word .LANCHOR0 -.L2942: +.L3012: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - beq .L2952 + beq .L3022 ldr r3, [sp, #52] adds r0, r3, #1 - beq .L2954 - ldr r2, .L3051 + beq .L3024 + ldr r2, .L3121 ubfx r3, r3, #10, #21 - ldr r2, [r2, #2332] + ldr r2, [r2, #2336] cmp r3, r2 - bcs .L2935 -.L2954: + bcs .L3005 +.L3024: mov r0, r7 add r1, sp, #60 movs r2, #1 bl log2phys ldr r8, [sp, #56] cmp r8, #-1 - beq .L2952 + beq .L3022 ldr r3, [sp, #52] cmp r8, r3 - beq .L2952 + beq .L3022 ubfx r0, r8, #10, #16 bl P2V_block_in_plane - ldrh r3, [r5, #312] + ldrh r3, [r5, #316] cmp r3, r0 - beq .L2956 - ldrh r3, [r5, #360] + beq .L3026 + ldrh r3, [r5, #364] cmp r3, r0 - beq .L2956 - ldrh r3, [r5, #408] + beq .L3026 + ldrh r3, [r5, #412] cmp r3, r0 - bne .L2952 -.L2956: - ldr r3, .L3051+4 + bne .L3022 +.L3026: + ldr r3, .L3121+4 movs r1, #1 movs r2, #0 - ldr r0, [r3, #3300] + ldr r0, [r3, #3304] str r8, [r0, #4] ldr r6, [r0, #12] bl FlashReadPages - ldr r3, .L3051+4 + ldr r3, .L3121+4 ldr r1, [r6, #4] - ldr r3, [r3, #3300] + ldr r3, [r3, #3304] ldr r3, [r3] adds r3, r3, #1 - beq .L2952 + beq .L3022 ldr r0, [sp, #4] bl ftl_cmp_data_ver - cbnz r0, .L2952 + cbnz r0, .L3022 mov r0, r7 add r1, sp, #56 movs r2, #1 bl log2phys -.L2952: +.L3022: ldr r0, [sp, #52] adds r1, r0, #1 - beq .L2935 + beq .L3005 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r5, #292] + ldr r3, [r5, #296] ldrh r3, [r3, r0, lsl #1] mov r1, r0 - cbz r3, .L2957 -.L3037: + cbz r3, .L3027 +.L3107: bl decrement_vpc_count - b .L2935 -.L2957: - ldr r0, .L3051+8 + b .L3005 +.L3027: + ldr r0, .L3121+8 bl printk - b .L2935 -.L2939: + b .L3005 +.L3009: ldrh r3, [r4] mov r1, r7 - ldr r2, .L3051+12 - ldr r0, .L3051+16 - strh r3, [r2, #836] @ movhi + ldr r2, .L3121+12 + ldr r0, .L3121+16 + strh r3, [r2, #840] @ movhi ldr r2, [sp, #4] bl printk - ldr r3, .L3051+12 - ldr r3, [r3, #840] + ldr r3, .L3121+12 + ldr r3, [r3, #844] cmp r3, #31 - bhi .L2958 - ldr r2, .L3051+12 + bhi .L3028 + ldr r2, .L3121+12 ldr r1, [sp, #60] add r2, r2, r3, lsl #2 adds r3, r3, #1 - str r1, [r2, #844] - ldr r2, .L3051+12 - str r3, [r2, #840] -.L2958: + str r1, [r2, #848] + ldr r2, .L3121+12 + str r3, [r2, #844] +.L3028: ldrh r0, [r4] bl decrement_vpc_count - ldr r3, [r5, #3468] + ldr r3, [r5, #3472] adds r2, r3, #1 - bne .L2959 + bne .L3029 ldr r3, [sp, #4] - b .L3038 -.L2959: + b .L3108 +.L3029: ldr r2, [sp, #4] cmp r3, r2 - bls .L2935 + bls .L3005 mov r3, r2 -.L3038: - str r3, [r5, #3468] -.L2935: +.L3108: + str r3, [r5, #3472] +.L3005: ldr r3, [sp, #28] adds r3, r3, #1 - b .L3039 -.L3046: + b .L3109 +.L3116: ldrb r3, [r4, #8] @ zero_extendqisi2 add fp, fp, #1 cmp r3, #1 uxth fp, fp - ldr r3, .L3051 - bne .L2961 - ldrb r2, [r3, #140] @ zero_extendqisi2 - cbz r2, .L2961 - ldrh r2, [r3, #2386] + ldr r3, .L3121 + bne .L3031 + ldrb r2, [r3, #144] @ zero_extendqisi2 + cbz r2, .L3031 + ldrh r2, [r3, #2390] cmp r2, fp - bne .L2961 + bne .L3031 cmp r10, fp - beq .L2938 -.L2961: - ldrh r3, [r3, #2384] + beq .L3008 +.L3031: + ldrh r3, [r3, #2388] cmp fp, r3 - bne .L2929 - ldr r2, .L3051 + bne .L2999 + ldr r2, .L3121 movw r0, #65535 movs r3, #0 strh fp, [r4, #2] @ movhi strh r3, [r4, #4] @ movhi - ldrh r1, [r2, #2316] -.L2962: + ldrh r1, [r2, #2320] +.L3032: uxth r2, r3 cmp r2, r1 - bcs .L3031 + bcs .L3101 ldr r6, [sp, #20] adds r3, r3, #1 ldrh r5, [r6, #2]! cmp r5, r0 str r6, [sp, #20] - beq .L2962 + beq .L3032 strb r2, [r4, #6] - b .L3031 -.L2938: + b .L3101 +.L3008: 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] -.L3040: +.L3110: bl ftl_sb_update_avl_pages -.L3031: +.L3101: movs r0, #0 add sp, sp, #68 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3052: +.L3122: .align 2 -.L3051: +.L3121: .word .LANCHOR0 .word .LANCHOR2 - .word .LC146 + .word .LC150 .word .LANCHOR5 - .word .LC147 + .word .LC151 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 1 @@ -18752,95 +19118,95 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 movs r4, #0 - ldr r7, .L3066 - ldr r1, .L3066+4 - ldr r0, .L3066+8 + ldr r7, .L3136 + ldr r1, .L3136+4 + ldr r0, .L3136+8 bl printk - ldr r5, .L3066+12 - ldrh r2, [r7, #2326] + ldr r5, .L3136+12 + ldrh r2, [r7, #2330] movs r1, #0 - ldr r0, [r5, #3360] + ldr r0, [r5, #3364] lsls r2, r2, #1 bl ftl_memset -.L3054: - ldr r3, [r7, #2444] +.L3124: + ldr r3, [r7, #2448] cmp r4, r3 - bcs .L3064 + bcs .L3134 mov r0, r4 add r1, sp, #4 movs r2, #0 bl log2phys ldr r0, [sp, #4] adds r3, r0, #1 - beq .L3055 + beq .L3125 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r5, #3360] + ldr r2, [r5, #3364] ldrh r3, [r2, r0, lsl #1] adds r3, r3, #1 strh r3, [r2, r0, lsl #1] @ movhi -.L3055: +.L3125: adds r4, r4, #1 - b .L3054 -.L3064: - ldr r6, .L3066+12 + b .L3124 +.L3134: + ldr r6, .L3136+12 mov r8, #0 movw r9, #65535 -.L3057: - ldrh r3, [r7, #2324] +.L3127: + ldrh r3, [r7, #2328] uxth r4, r8 cmp r3, r4 - bls .L3065 - ldr r3, [r5, #292] + bls .L3135 + ldr r3, [r5, #296] ldrh r2, [r3, r4, lsl #1] - ldr r3, [r5, #3360] + ldr r3, [r5, #3364] ldrh r3, [r3, r4, lsl #1] cmp r2, r3 - beq .L3058 + beq .L3128 cmp r2, r9 - beq .L3058 - ldrh r1, [r6, #312] + beq .L3128 + ldrh r1, [r6, #316] cmp r1, r4 - beq .L3058 - ldrh r1, [r6, #408] + beq .L3128 + ldrh r1, [r6, #412] cmp r1, r4 - beq .L3058 - ldrh r1, [r6, #360] + beq .L3128 + ldrh r1, [r6, #364] cmp r1, r4 - beq .L3058 - ldr r0, .L3066+16 + beq .L3128 + ldr r0, .L3136+16 mov r1, r4 bl printk - ldr r3, [r6, #292] + ldr r3, [r6, #296] ldrh r2, [r3, r4, lsl #1] - cbnz r2, .L3059 - ldr r2, [r6, #3360] + cbnz r2, .L3129 + ldr r2, [r6, #3364] ldrh r2, [r2, r4, lsl #1] strh r2, [r3, r4, lsl #1] @ movhi - b .L3058 -.L3059: - ldr r2, [r6, #3360] + b .L3128 +.L3129: + ldr r2, [r6, #3364] mov r0, r4 ldrh r2, [r2, r4, lsl #1] strh r2, [r3, r4, lsl #1] @ movhi bl update_vpc_list -.L3058: +.L3128: add r8, r8, #1 - b .L3057 -.L3065: + b .L3127 +.L3135: bl l2p_flush bl FtlVpcTblFlush add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3067: +.L3137: .align 2 -.L3066: +.L3136: .word .LANCHOR0 - .word .LANCHOR3+84 - .word .LC108 + .word .LANCHOR3+216 + .word .LC110 .word .LANCHOR2 - .word .LC148 + .word .LC152 .fnend .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 1 @@ -18852,67 +19218,67 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3122 + ldr r3, .L3192 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 sub sp, sp, #76 - ldrh r5, [r3, #3352] + ldrh r5, [r3, #3448] movw r3, #65535 mov r4, r0 str r1, [sp, #20] cmp r5, r3 - beq .L3104 - cbnz r5, .L3069 - b .L3070 -.L3104: + beq .L3174 + cbnz r5, .L3139 + b .L3140 +.L3174: movs r5, #0 -.L3069: - ldr r3, .L3122+4 +.L3139: + ldr r3, .L3192+4 ldr r2, [sp, #20] - ldrh r3, [r3, #2384] + ldrh r3, [r3, #2388] cmp r2, r3 - bne .L3071 -.L3070: + bne .L3141 +.L3140: bl FtlGcPageVarInit -.L3071: - ldr r6, .L3122+8 +.L3141: + ldr r6, .L3192+8 mov r3, #-1 str r3, [sp, #16] movs r3, #0 str r3, [sp, #4] -.L3072: +.L3142: ldrh r1, [r4] movw r3, #65535 movs r2, #0 strb r2, [r4, #8] cmp r1, r3 - beq .L3073 -.L3074: - ldr r10, .L3122+4 -.L3101: - ldr r3, [r6, #3300] + beq .L3143 +.L3144: + ldr r10, .L3192+4 +.L3171: + ldr r3, [r6, #3304] movs r2, #0 - ldrh lr, [r10, #2316] + ldrh lr, [r10, #2320] add ip, r4, #14 - ldr r8, [r6, #1144] + ldr r8, [r6, #1148] mov fp, #36 str r3, [sp, #8] mov r7, r2 - ldr r3, [r6, #1140] + ldr r3, [r6, #1144] movw r9, #65535 str r3, [sp, #12] - ldrh r3, [r10, #2394] + ldrh r3, [r10, #2398] str r3, [sp, #24] - ldrh r3, [r10, #2396] + ldrh r3, [r10, #2400] str r3, [sp, #28] -.L3075: +.L3145: uxth r3, r2 cmp r3, lr - bcs .L3120 + bcs .L3190 ldrh r3, [ip, #2]! cmp r3, r9 - beq .L3076 + beq .L3146 ldr r1, [sp, #8] orr r3, r5, r3, lsl #10 mla r1, fp, r7, r1 @@ -18935,25 +19301,25 @@ FtlGcScanTempBlk: bic r3, r3, #3 add r3, r3, r8 str r3, [r1, #12] -.L3076: +.L3146: adds r2, r2, #1 - b .L3075 -.L3120: - ldr r0, [r6, #3300] + b .L3145 +.L3190: + ldr r0, [r6, #3304] mov r1, r7 movs r2, #0 bl FlashReadPages movs r3, #0 -.L3119: +.L3189: str r3, [sp, #8] ldrh r3, [sp, #8] cmp r3, r7 - bcs .L3121 + bcs .L3191 ldr r3, [sp, #8] mov r9, #36 mul r9, r9, r3 - ldr r3, .L3122+8 - ldr r8, [r3, #3300] + ldr r3, .L3192+8 + ldr r8, [r3, #3304] add fp, r8, r9 ldr r3, [fp, #4] ubfx r0, r3, #10, #16 @@ -18961,41 +19327,41 @@ FtlGcScanTempBlk: bl P2V_plane ldr r8, [r8, r9] ldr r3, [fp, #12] - ldr ip, .L3122+4 - ldr fp, .L3122+8 + ldr ip, .L3192+4 + ldr fp, .L3192+8 mov r2, r0 cmp r8, #0 - bne .L3081 + bne .L3151 ldrh r0, [r3] movw r1, #65535 cmp r0, r1 - bne .L3082 -.L3085: - ldrb r3, [ip, #140] @ zero_extendqisi2 - cbz r3, .L3116 + bne .L3152 +.L3155: + ldrb r3, [ip, #144] @ zero_extendqisi2 + cbz r3, .L3186 movs r3, #1 - str r3, [fp, #3464] - b .L3073 -.L3082: + str r3, [fp, #3468] + b .L3143 +.L3152: ldr r0, [r3, #8] - ldr r1, [r10, #2444] + ldr r1, [r10, #2448] cmp r0, r1 - bls .L3117 - b .L3085 -.L3116: + bls .L3187 + b .L3155 +.L3186: ldrh r1, [r4] - ldr r2, [fp, #292] + ldr r2, [fp, #296] strh r3, [r2, r1, lsl #1] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST movw r3, #65535 strh r3, [r4] @ movhi - strh r3, [fp, #552] @ movhi - b .L3118 -.L3117: + strh r3, [fp, #556] @ movhi + b .L3188 +.L3187: ldrb r2, [r10] @ zero_extendqisi2 cmp r2, #0 - beq .L3089 + beq .L3159 add r1, sp, #32 mov r2, r8 str r3, [sp, #24] @@ -19004,37 +19370,37 @@ FtlGcScanTempBlk: ldr r2, [sp, #32] ldr r1, [r3, #12] cmp r2, r1 - bne .L3089 + bne .L3159 adds r1, r2, #1 - beq .L3089 + beq .L3159 str r2, [sp, #40] movs r1, #1 - ldr r2, [r6, #3332] + ldr r2, [r6, #3336] add r0, sp, #36 str r2, [sp, #44] - ldr r2, [r6, #3340] + ldr r2, [r6, #3344] str r2, [sp, #48] mov r2, r8 bl FlashReadPages - ldrh r2, [r10, #2390] - ldr r1, [r6, #3300] + ldrh r2, [r10, #2394] + ldr r1, [r6, #3304] lsl lr, r2, #7 add r9, r9, r1 ldr r0, [sp, #44] ldr r3, [sp, #24] -.L3091: +.L3161: cmp r8, lr - beq .L3089 + beq .L3159 ldr r1, [r9, #8] ldr r2, [r0, r8, lsl #2] ldr r1, [r1, r8, lsl #2] cmp r1, r2 - beq .L3092 + beq .L3162 ldrh r1, [r4] ldr r2, [sp, #40] - ldr r0, .L3122+12 + ldr r0, .L3192+12 bl printk - ldr r3, [r6, #292] + ldr r3, [r6, #296] ldrh r2, [r4] movs r1, #0 strh r1, [r3, r2, lsl #1] @ movhi @@ -19042,60 +19408,60 @@ FtlGcScanTempBlk: bl INSERT_FREE_LIST movw r3, #65535 strh r3, [r4] @ movhi - strh r3, [r6, #552] @ movhi - b .L3118 -.L3092: + strh r3, [r6, #556] @ movhi + b .L3188 +.L3162: add r8, r8, #1 - b .L3091 -.L3089: + b .L3161 +.L3159: ldr r0, [r3, #12] ldr r2, [r3, #8] ldr r1, [sp, #12] bl FtlGcUpdatePage ldr r3, [sp, #8] adds r3, r3, #1 - b .L3119 -.L3081: + b .L3189 +.L3151: ldr r2, [sp, #12] - ldr r0, .L3122+16 + ldr r0, .L3192+16 ldrh r1, [r4] str ip, [sp, #8] bl printk ldrh r3, [r4] ldr ip, [sp, #8] - ldr r2, [ip, #2308] - cbnz r2, .L3095 - ldrb r2, [ip, #140] @ zero_extendqisi2 - cbz r2, .L3096 -.L3095: - ldr r2, [fp, #228] + ldr r2, [ip, #2244] + cbnz r2, .L3165 + ldrb r2, [ip, #144] @ zero_extendqisi2 + cbz r2, .L3166 +.L3165: + ldr r2, [fp, #232] ldrh r2, [r2, r3, lsl #1] cmp r2, #159 - bls .L3097 -.L3096: - ldr r2, [fp, #3300] + bls .L3167 +.L3166: + ldr r2, [fp, #3304] ldr r2, [r2, r9] adds r2, r2, #1 - bne .L3098 -.L3097: - ldr r2, [fp, #3300] + bne .L3168 +.L3167: + ldr r2, [fp, #3304] add r9, r9, r2 ldr r2, [r9, #4] str r2, [sp, #16] -.L3098: - ldr r2, .L3122+8 +.L3168: + ldr r2, .L3192+8 movs r1, #0 - ldr r2, [r2, #292] + ldr r2, [r2, #296] strh r1, [r2, r3, lsl #1] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST movw r3, #65535 strh r3, [r4] @ movhi -.L3118: +.L3188: bl FtlGcPageVarInit movs r5, #0 - b .L3072 -.L3121: + b .L3142 +.L3191: ldr r3, [sp, #4] adds r5, r5, #1 ldr r2, [sp, #20] @@ -19103,48 +19469,48 @@ FtlGcScanTempBlk: uxth r5, r5 cmp r3, r2 str r3, [sp, #4] - bcs .L3100 -.L3102: - ldrh r3, [r10, #2384] + bcs .L3170 +.L3172: + ldrh r3, [r10, #2388] cmp r3, r5 - bhi .L3101 + bhi .L3171 movs r2, #0 - b .L3073 -.L3100: - ldr r2, .L3122 + b .L3143 +.L3170: + ldr r2, .L3192 movw r1, #65535 - ldrh r3, [r2, #3352] + ldrh r3, [r2, #3448] cmp r3, r1 - beq .L3102 + beq .L3172 ldr r1, [sp, #4] add r3, r3, r1 - strh r3, [r2, #3352] @ movhi - ldrh r3, [r10, #2384] + strh r3, [r2, #3448] @ movhi + ldrh r3, [r10, #2388] cmp r3, r5 - bls .L3102 - b .L3103 -.L3073: - ldr r3, .L3122 + bls .L3172 + b .L3173 +.L3143: + ldr r3, .L3192 movw r1, #65535 strh r5, [r4, #2] @ movhi mov r0, r4 strb r2, [r4, #6] - strh r1, [r3, #3352] @ movhi + strh r1, [r3, #3448] @ movhi mov r1, r5 bl ftl_sb_update_avl_pages -.L3103: +.L3173: ldr r0, [sp, #16] add sp, sp, #76 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3123: +.L3193: .align 2 -.L3122: +.L3192: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LC149 - .word .LC150 + .word .LC153 + .word .LC154 .fnend .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 1 @@ -19160,32 +19526,32 @@ FtlReadRefresh: .save {r4, r5, r6, r7, r8, r9, lr} .pad #44 sub sp, sp, #44 - ldr r5, .L3140 - ldr r4, .L3140+4 - ldr r9, [r5, #684] + ldr r5, .L3210 + ldr r4, .L3210+4 + ldr r9, [r5, #688] mov r6, r5 cmp r9, #0 - beq .L3125 - ldr r2, [r5, #688] - ldr r3, [r4, #2444] + beq .L3195 + ldr r2, [r5, #692] + ldr r3, [r4, #2448] cmp r2, r3 - bcs .L3126 + bcs .L3196 mov r5, #2048 mov r7, r6 -.L3131: - ldr r0, [r6, #688] - ldr r3, [r4, #2444] +.L3201: + ldr r0, [r6, #692] + ldr r3, [r4, #2448] cmp r0, r3 - bcs .L3130 + bcs .L3200 mov r1, sp movs r2, #0 bl log2phys - ldr r3, [r7, #688] + ldr r3, [r7, #692] adds r3, r3, #1 - str r3, [r7, #688] + str r3, [r7, #692] ldr r2, [sp] adds r1, r2, #1 - beq .L3129 + beq .L3199 add r0, sp, #40 str r2, [sp, #8] movs r1, #1 @@ -19197,38 +19563,38 @@ FtlReadRefresh: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L3130 + bne .L3200 ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3130: +.L3200: mov r0, #-1 - b .L3133 -.L3129: + b .L3203 +.L3199: subs r5, r5, #1 - bne .L3131 - b .L3130 -.L3126: - ldr r3, [r5, #472] + bne .L3201 + b .L3200 +.L3196: + ldr r3, [r5, #476] movs r0, #0 - str r0, [r5, #684] str r0, [r5, #688] - str r3, [r5, #680] - b .L3133 -.L3125: - ldr r8, [r5, #472] - ldr r1, [r5, #524] - ldr r7, [r5, #680] + str r0, [r5, #692] + str r3, [r5, #684] + b .L3203 +.L3195: + ldr r8, [r5, #476] + ldr r1, [r5, #528] + ldr r7, [r5, #684] add r2, r8, #1048576 - ldr r3, [r4, #2444] + ldr r3, [r4, #2448] movw r4, #10000 cmp r1, r4 ite hi movhi r4, #31 movls r4, #63 cmp r7, r2 - bhi .L3135 + bhi .L3205 mov r0, #1000 lsrs r1, r1, #10 adds r1, r1, #1 @@ -19236,31 +19602,31 @@ FtlReadRefresh: bl __aeabi_uidiv add r0, r0, r7 cmp r0, r8 - bcc .L3135 - ldrh r3, [r5, #264] + bcc .L3205 + ldrh r3, [r5, #268] ands r0, r4, r3 - bne .L3137 - ldr r2, [r5, #704] + bne .L3207 + ldr r2, [r5, #708] cmp r2, r3 - beq .L3133 -.L3135: - ldrh r3, [r6, #264] + beq .L3203 +.L3205: + ldrh r3, [r6, #268] movs r0, #0 - str r8, [r6, #680] - str r0, [r6, #688] - str r3, [r6, #704] + str r8, [r6, #684] + str r0, [r6, #692] + str r3, [r6, #708] movs r3, #1 - str r3, [r6, #684] - b .L3133 -.L3137: + str r3, [r6, #688] + b .L3203 +.L3207: mov r0, r9 -.L3133: +.L3203: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3141: +.L3211: .align 2 -.L3140: +.L3210: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -19277,114 +19643,114 @@ 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 r5, .L3180 - ldr r6, .L3180+4 - ldr r2, [r5, #220] + ldr r5, .L3250 + ldr r6, .L3250+4 + ldr r2, [r5, #224] mov r4, r5 - ldrh r1, [r6, #2384] + ldrh r1, [r6, #2388] cmp r2, #0 - bne .L3178 - ldrh r5, [r5, #408] + bne .L3248 + ldrh r5, [r5, #412] movw r7, #65535 cmp r5, r7 - bne .L3145 -.L3154: - ldrh r2, [r4, #408] + bne .L3215 +.L3224: + ldrh r2, [r4, #412] movw r3, #65535 movs r7, #0 - ldr r5, .L3180 + ldr r5, .L3250 cmp r2, r3 - str r7, [r4, #3464] - beq .L3178 + str r7, [r4, #3468] + beq .L3248 bl FtlCacheWriteBack - ldrb r0, [r5, #415] @ zero_extendqisi2 - ldrh r3, [r6, #2384] + ldrb r0, [r5, #419] @ zero_extendqisi2 + ldrh r3, [r6, #2388] mov r10, #12 - ldr r2, [r5, #292] - ldrh r1, [r5, #408] + ldr r2, [r5, #296] + ldrh r1, [r5, #412] smulbb r3, r0, r3 strh r3, [r2, r1, lsl #1] @ movhi - ldr r3, [r5, #492] - ldrh r2, [r5, #1168] + ldr r3, [r5, #496] + ldrh r2, [r5, #1172] add r3, r3, r2 - str r3, [r5, #492] - b .L3155 -.L3145: - cbz r0, .L3148 - ldr r3, .L3180+8 - ldrh r0, [r3, #3352] + str r3, [r5, #496] + b .L3225 +.L3215: + cbz r0, .L3218 + ldr r3, .L3250+8 + ldrh r0, [r3, #3448] cmp r0, r7 - beq .L3149 -.L3150: + beq .L3219 +.L3220: movs r1, #2 - b .L3148 -.L3149: - strh r2, [r3, #3352] @ movhi - ldrh r3, [r4, #308] + b .L3218 +.L3219: + strh r2, [r3, #3448] @ movhi + ldrh r3, [r4, #312] cmp r3, #17 - bhi .L3150 -.L3148: - ldr r7, .L3180 - add r0, r7, #408 + bhi .L3220 +.L3218: + ldr r7, .L3250 + add r0, r7, #412 bl FtlGcScanTempBlk str r0, [sp, #4] adds r0, r0, #1 - beq .L3151 - ldr r2, [r7, #228] + beq .L3221 + ldr r2, [r7, #232] ldrh r3, [r2, r5, lsl #1] cmp r3, #4 - bls .L3152 + bls .L3222 subs r3, r3, #5 movs r0, #1 strh r3, [r2, r5, lsl #1] @ movhi bl FtlEctTblFlush -.L3152: - ldr r3, [r4, #3464] - ldr r2, .L3180 - cbnz r3, .L3153 +.L3222: + ldr r3, [r4, #3468] + ldr r2, .L3250 + cbnz r3, .L3223 ldr r0, [sp, #4] - ldr r3, [r2, #700] + ldr r3, [r2, #704] ubfx r0, r0, #10, #16 adds r3, r3, #1 - str r3, [r2, #700] + str r3, [r2, #704] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3153: +.L3223: movs r3, #0 - str r3, [r4, #3464] - b .L3165 -.L3151: - ldr r3, .L3180+8 - ldrh r2, [r3, #3352] + str r3, [r4, #3468] + b .L3235 +.L3221: + ldr r3, .L3250+8 + ldrh r2, [r3, #3448] movw r3, #65535 cmp r2, r3 - bne .L3165 - b .L3154 -.L3158: + bne .L3235 + b .L3224 +.L3228: ldr r3, [r9, #4] cmp r0, r3 - bne .L3176 -.L3157: + bne .L3246 +.L3227: adds r7, r7, #1 -.L3155: - ldrh r3, [r4, #1168] +.L3225: + ldrh r3, [r4, #1172] uxth r8, r7 cmp r3, r8 - bls .L3179 + bls .L3249 mul r8, r10, r8 - ldr fp, [r5, #1164] - ldr r3, [r6, #2444] + ldr fp, [r5, #1168] + ldr r3, [r6, #2448] add r9, fp, r8 ldr r0, [r9, #8] cmp r0, r3 - bcs .L3176 + bcs .L3246 add r1, sp, #4 movs r2, #0 bl log2phys ldr r3, [fp, r8] ldr r0, [sp, #4] cmp r0, r3 - bne .L3158 + bne .L3228 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, r9, #4 @@ -19393,83 +19759,83 @@ FtlGcFreeTempBlock: ldr r0, [r9, #8] bl log2phys mov r0, r8 - b .L3177 -.L3176: - ldrh r0, [r5, #408] -.L3177: + b .L3247 +.L3246: + ldrh r0, [r5, #412] +.L3247: bl decrement_vpc_count - b .L3157 -.L3179: + b .L3227 +.L3249: movw r0, #65535 bl decrement_vpc_count - ldrb r3, [r6, #140] @ zero_extendqisi2 - cbz r3, .L3160 - ldr r3, .L3180 - ldr r0, .L3180+12 - ldrh r1, [r3, #408] + ldrb r3, [r6, #144] @ zero_extendqisi2 + cbz r3, .L3230 + ldr r3, .L3250 + ldr r0, .L3250+12 + ldrh r1, [r3, #412] bl printk -.L3160: - ldrh r0, [r4, #408] - ldr r3, [r4, #292] +.L3230: + ldrh r0, [r4, #412] + ldr r3, [r4, #296] ldrh r3, [r3, r0, lsl #1] - cbz r3, .L3161 + cbz r3, .L3231 bl INSERT_DATA_LIST - b .L3162 -.L3161: + b .L3232 +.L3231: bl INSERT_FREE_LIST -.L3162: +.L3232: movw r8, #65535 movs r5, #0 - strh r8, [r4, #408] @ movhi - strh r5, [r4, #1168] @ movhi - strh r5, [r4, #1160] @ movhi + strh r8, [r4, #412] @ movhi + strh r5, [r4, #1172] @ movhi + strh r5, [r4, #1164] @ movhi bl l2p_flush bl FtlVpcTblFlush - ldr r3, [r6, #2308] - ldr r7, .L3180 - strh r8, [r4, #552] @ movhi - cbz r3, .L3163 - ldr r3, [r7, #528] + ldr r3, [r6, #2244] + ldr r7, .L3250 + strh r8, [r4, #556] @ movhi + cbz r3, .L3233 + ldr r3, [r7, #532] cmp r3, #39 - bhi .L3163 - ldrh r3, [r7, #532] - ldrh r2, [r7, #308] + bhi .L3233 + ldrh r3, [r7, #536] + ldrh r2, [r7, #312] cmp r2, r3 - bcs .L3178 + bcs .L3248 lsls r3, r3, #1 - strh r3, [r7, #1116] @ movhi - b .L3178 -.L3163: - ldrh r3, [r4, #532] - ldrh r1, [r4, #308] - ldr r2, .L3180 + strh r3, [r7, #1120] @ movhi + b .L3248 +.L3233: + ldrh r3, [r4, #536] + ldrh r1, [r4, #312] + ldr r2, .L3250 add r0, r3, r3, lsl #1 cmp r1, r0, asr #2 - ble .L3178 - ldrb r0, [r6, #140] @ zero_extendqisi2 - cbz r0, .L3164 + ble .L3248 + ldrb r0, [r6, #144] @ zero_extendqisi2 + cbz r0, .L3234 subs r3, r3, #2 - strh r3, [r2, #1116] @ movhi -.L3178: + strh r3, [r2, #1120] @ movhi +.L3248: movs r0, #0 - b .L3144 -.L3164: + b .L3214 +.L3234: movs r3, #20 - strh r3, [r2, #1116] @ movhi - b .L3144 -.L3165: + strh r3, [r2, #1120] @ movhi + b .L3214 +.L3235: movs r0, #1 -.L3144: +.L3214: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3181: +.L3251: .align 2 -.L3180: +.L3250: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR1 - .word .LC151 + .word .LC155 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 1 @@ -19483,26 +19849,26 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r5, .L3184 - ldr r4, .L3184+4 - ldrh r1, [r5, #2384] - add r0, r4, #408 + ldr r5, .L3254 + ldr r4, .L3254+4 + ldrh r1, [r5, #2388] + add r0, r4, #412 bl FtlGcScanTempBlk - ldrh r2, [r4, #410] - ldrh r3, [r5, #2384] + ldrh r2, [r4, #414] + ldrh r3, [r5, #2388] cmp r2, r3 - bcc .L3182 - addw r0, r4, #3404 + bcc .L3252 + add r0, r4, #3408 bl FtlMapBlkWriteDumpData movs r0, #0 bl FtlGcFreeTempBlock movs r3, #0 - str r3, [r4, #3464] -.L3182: + str r3, [r4, #3468] +.L3252: pop {r3, r4, r5, pc} -.L3185: +.L3255: .align 2 -.L3184: +.L3254: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -19519,12 +19885,12 @@ FtlPowerLostRecovery: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L3187 - ldr r3, .L3187+4 - add r6, r4, #312 - add r4, r4, #360 + ldr r4, .L3257 + ldr r3, .L3257+4 + add r6, r4, #316 + add r4, r4, #364 mov r0, r6 - str r5, [r3, #840] + str r5, [r3, #844] bl FtlRecoverySuperblock mov r0, r6 bl FtlSlcSuperblockCheck @@ -19537,9 +19903,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r5 pop {r4, r5, r6, pc} -.L3188: +.L3258: .align 2 -.L3187: +.L3257: .word .LANCHOR2 .word .LANCHOR5 .fnend @@ -19556,26 +19922,26 @@ FtlSysBlkInit: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movs r3, #0 - ldr r5, .L3206 + ldr r5, .L3276 movw r7, #65535 - ldr r6, .L3206+4 - ldr r4, .L3206+8 - ldrh r0, [r5, #2320] - strh r3, [r6, #838] @ movhi - strh r7, [r6, #836] @ movhi + ldr r6, .L3276+4 + ldr r4, .L3276+8 + ldrh r0, [r5, #2324] + strh r3, [r6, #842] @ movhi + strh r7, [r6, #840] @ movhi bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh r3, [r4, #536] + ldrh r3, [r4, #540] cmp r3, r7 - bne .L3190 -.L3192: + bne .L3260 +.L3262: mov r7, #-1 - b .L3191 -.L3190: + b .L3261 +.L3260: bl FtlLoadSysInfo mov r7, r0 cmp r0, #0 - bne .L3192 + bne .L3262 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -19585,90 +19951,90 @@ FtlSysBlkInit: bl FtlPowerLostRecovery movs r0, #1 bl FtlUpdateVaildLpn - ldrh r1, [r5, #2422] - ldr r2, [r4, #456] + ldrh r1, [r5, #2426] + ldr r2, [r4, #460] movs r0, #12 mov r3, r7 -.L3193: +.L3263: cmp r3, r1 - bge .L3198 + bge .L3268 mla lr, r0, r3, r2 ldr lr, [lr, #4] cmp lr, #0 - bge .L3194 -.L3198: - ldrh r2, [r4, #264] + bge .L3264 +.L3268: + ldrh r2, [r4, #268] cmp r3, r1 add r2, r2, #1 - strh r2, [r4, #264] @ movhi - bge .L3205 - b .L3195 -.L3194: + strh r2, [r4, #268] @ movhi + bge .L3275 + b .L3265 +.L3264: adds r3, r3, #1 - b .L3193 -.L3205: - ldrh r3, [r6, #838] - cbz r3, .L3199 -.L3195: - ldrh r1, [r4, #312] - ldr r2, [r4, #292] - ldrh r0, [r4, #316] + b .L3263 +.L3275: + ldrh r3, [r6, #842] + cbz r3, .L3269 +.L3265: + ldrh r1, [r4, #316] + ldr r2, [r4, #296] + ldrh r0, [r4, #320] ldrh r3, [r2, r1, lsl #1] subs r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi - ldr r1, [r4, #292] - ldrh r3, [r5, #2384] - ldrh r0, [r4, #360] - ldrh r6, [r4, #364] - strh r3, [r4, #314] @ movhi + ldr r1, [r4, #296] + ldrh r3, [r5, #2388] + ldrh r0, [r4, #364] + ldrh r6, [r4, #368] + strh r3, [r4, #318] @ movhi movs r3, #0 - strb r3, [r4, #318] - strh r3, [r4, #316] @ movhi + strb r3, [r4, #322] + strh r3, [r4, #320] @ movhi ldrh r2, [r1, r0, lsl #1] subs r2, r2, r6 strh r2, [r1, r0, lsl #1] @ movhi - ldrh r2, [r5, #2384] - strb r3, [r4, #366] - strh r3, [r4, #364] @ movhi - ldrh r3, [r4, #266] - strh r2, [r4, #362] @ movhi + ldrh r2, [r5, #2388] + strb r3, [r4, #370] + strh r3, [r4, #368] @ movhi + ldrh r3, [r4, #270] + strh r2, [r4, #366] @ movhi adds r3, r3, #1 - strh r3, [r4, #266] @ movhi + strh r3, [r4, #270] @ movhi bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3199: - ldrh r0, [r4, #312] +.L3269: + ldrh r0, [r4, #316] movw r3, #65535 - ldr r6, .L3206+8 + ldr r6, .L3276+8 cmp r0, r3 - beq .L3200 - ldrh r3, [r6, #316] - cbnz r3, .L3200 - ldrh r3, [r6, #364] - cbnz r3, .L3200 + beq .L3270 + ldrh r3, [r6, #320] + cbnz r3, .L3270 + ldrh r3, [r6, #368] + cbnz r3, .L3270 bl FtlGcRefreshOpenBlock - ldrh r0, [r6, #360] + ldrh r0, [r6, #364] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush - add r0, r6, #312 + add r0, r6, #316 bl allocate_new_data_superblock - add r0, r6, #360 + add r0, r6, #364 bl allocate_new_data_superblock -.L3200: +.L3270: ldrb r3, [r5] @ zero_extendqisi2 - cbnz r3, .L3201 - ldrh r3, [r4, #264] + cbnz r3, .L3271 + ldrh r3, [r4, #268] lsls r3, r3, #27 - bne .L3191 -.L3201: + bne .L3261 +.L3271: bl FtlVpcCheckAndModify -.L3191: +.L3261: mov r0, r7 pop {r3, r4, r5, r6, r7, pc} -.L3207: +.L3277: .align 2 -.L3206: +.L3276: .word .LANCHOR0 .word .LANCHOR5 .word .LANCHOR2 @@ -19681,57 +20047,58 @@ FtlSysBlkInit: .type FtlLowFormat, %function FtlLowFormat: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ 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, .L3242 - ldr r6, [r4, #220] + 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, .L3312 + ldr r6, [r4, #224] cmp r6, #0 - bne .L3210 - ldr r5, .L3242+4 + bne .L3280 + ldr r5, .L3312+4 + mov r1, r6 + ldr r0, [r4, #3392] + ldrh r2, [r5, #2424] + lsls r2, r2, #2 + bl ftl_memset + ldrh r2, [r5, #2424] mov r1, r6 ldr r0, [r4, #3388] - ldrh r2, [r5, #2420] lsls r2, r2, #2 bl ftl_memset - ldrh r2, [r5, #2420] - mov r1, r6 - ldr r0, [r4, #3384] - lsls r2, r2, #2 - bl ftl_memset - ldrh r0, [r5, #2320] - str r6, [r4, #504] + ldrh r0, [r5, #2324] str r6, [r4, #508] + str r6, [r4, #512] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L3211 + cbz r0, .L3281 bl FtlMakeBbt -.L3211: - ldr r0, .L3242+8 +.L3281: + ldr r0, .L3312+8 movs r2, #0 -.L3212: - ldrh r1, [r5, #2390] +.L3282: + ldrh r1, [r5, #2394] uxth r3, r2 adds r2, r2, #1 cmp r3, r1, lsl #7 - bge .L3239 - ldr r6, [r4, #3328] + bge .L3309 + ldr r6, [r4, #3332] mvns r1, r3 orr r1, r3, r1, lsl #16 str r1, [r6, r3, lsl #2] - ldr r1, [r4, #3332] + ldr r1, [r4, #3336] str r0, [r1, r3, lsl #2] - b .L3212 -.L3239: - ldr r3, .L3242+4 + b .L3282 +.L3309: + ldr r3, .L3312+4 movs r6, #0 - ldrh r7, [r3, #2324] -.L3214: - ldrh r3, [r5, #2326] - ldr r8, .L3242+4 + ldrh r7, [r3, #2328] +.L3284: + ldrh r3, [r5, #2330] + ldr r8, .L3312+4 cmp r3, r7 - bls .L3240 + bls .L3310 mov r0, r7 movs r1, #1 bl FtlLowFormatEraseBlock @@ -19739,228 +20106,244 @@ FtlLowFormat: uxth r7, r7 add r0, r0, r6 uxth r6, r0 - b .L3214 -.L3240: - ldrh r1, [r8, #2316] + b .L3284 +.L3310: + ldrh r1, [r8, #2320] subs r3, r6, #3 cmp r3, r1, lsl #1 - bge .L3216 -.L3220: - movs r6, #0 - mov r7, r6 - b .L3217 -.L3216: + blt .L3286 mov r0, r6 + movs r6, #0 bl __aeabi_uidiv - ldr r3, [r8, #2416] + ldr r3, [r8, #2420] add r0, r0, r3 uxth r0, r0 bl FtlSysBlkNumInit - ldrh r0, [r8, #2320] + ldrh r0, [r8, #2324] bl FtlFreeSysBlkQueueInit - ldrh r6, [r8, #2324] -.L3218: - ldrh r3, [r5, #2326] - cmp r3, r6 - bls .L3220 - mov r0, r6 - adds r6, r6, #1 + ldrh r7, [r8, #2328] +.L3287: + ldrh r3, [r5, #2330] + cmp r3, r7 + bls .L3286 + mov r0, r7 movs r1, #1 bl FtlLowFormatEraseBlock - uxth r6, r6 - b .L3218 -.L3217: - ldrh r3, [r5, #2324] - uxth r0, r6 - ldr r10, .L3242+4 - adds r6, r6, #1 + adds r7, r7, #1 + uxth r7, r7 + add r0, r0, r6 + uxth r6, r0 + b .L3287 +.L3286: + mov r8, #0 + mov r7, r8 +.L3289: + ldrh r3, [r5, #2328] + uxth r0, r8 + ldr fp, .L3312+4 + add r8, r8, #1 cmp r3, r0 - bls .L3241 + bls .L3311 movs r1, #0 bl FtlLowFormatEraseBlock add r0, r0, r7 uxth r7, r0 - b .L3217 -.L3241: - ldrh r3, [r10, #2326] - ldrh r6, [r10, #2316] - ldr fp, [r10, #2328] - str r3, [r4, #3288] - mov r1, r6 - mov r0, fp + b .L3289 +.L3311: + ldr r2, [fp, #2332] + ldrh r3, [fp, #2330] + ldrh r8, [fp, #2320] + mov r0, r2 + str r2, [sp, #4] + str r3, [r4, #3292] + mov r1, r8 bl __aeabi_uidiv - ubfx r8, r0, #5, #16 - mov r9, r0 - add r3, r8, #36 - strh r3, [r4, #532] @ movhi + ubfx r9, r0, #5, #16 + mov r10, r0 + add r3, r9, #36 + strh r3, [r4, #536] @ movhi movs r3, #24 - str r0, [r10, #2444] - muls r3, r6, r3 + str r0, [fp, #2448] + ldr r2, [sp, #4] + mul r3, r3, r8 cmp r7, r3 - ble .L3222 - rsb r0, r7, fp - mov r1, r6 + ble .L3291 + subs r0, r2, r7 + mov r1, r8 bl __aeabi_uidiv - ldr r3, .L3242 - str r0, [r10, #2444] + ldr r3, .L3312 + str r0, [fp, #2448] lsrs r0, r0, #5 adds r0, r0, #24 - strh r0, [r3, #532] @ movhi -.L3222: - ldr r3, [r5, #2308] + strh r0, [r3, #536] @ movhi +.L3291: + ldr r3, [r5, #2244] cmp r3, #1 - bne .L3223 + bne .L3292 mov r0, r7 - mov r1, r6 + mov r1, r8 bl __aeabi_uidiv - ldrh r10, [r4, #532] - uxtah r0, r10, r0 - add r10, r10, r0, asr #2 - strh r10, [r4, #532] @ movhi -.L3223: - ldrb r3, [r5, #140] @ zero_extendqisi2 - cbz r3, .L3224 + ldrh fp, [r4, #536] + uxtah r0, fp, r0 + add fp, fp, r0, asr #2 + strh fp, [r4, #536] @ movhi +.L3292: + ldrb r3, [r5, #144] @ zero_extendqisi2 + cbz r3, .L3293 mov r0, r7 - mov r1, r6 + mov r1, r8 bl __aeabi_uidiv - ldrh r10, [r4, #532] - uxtah r0, r10, r0 - add r10, r10, r0, asr #2 - strh r10, [r4, #532] @ movhi -.L3224: - ldrh r3, [r5, #2378] - cbz r3, .L3226 - ldrh r2, [r4, #532] + ldrh fp, [r4, #536] + uxtah r0, fp, r0 + add fp, fp, r0, asr #2 + strh fp, [r4, #536] @ movhi +.L3293: + ldrh r3, [r5, #2382] + cbz r3, .L3295 + ldrh r2, [r4, #536] add r2, r2, r3, lsr #1 - strh r2, [r4, #532] @ movhi - mul r2, r6, r3 + strh r2, [r4, #536] @ movhi + mul r2, r8, r3 cmp r2, r7 itttt gt addgt r3, r3, #32 - ldrgt r2, .L3242+4 - addgt r3, r3, r8 - strgt r9, [r2, #2444] + ldrgt r2, .L3312+4 + addgt r3, r3, r9 + strgt r10, [r2, #2448] itt gt - ldrgt r2, .L3242 - strhgt r3, [r2, #532] @ movhi -.L3226: - ldrh r2, [r4, #532] - ldr r3, [r5, #2444] - ldr r7, .L3242+12 + ldrgt r2, .L3312 + strhgt r3, [r2, #536] @ movhi +.L3295: + ldrh r2, [r4, #536] + ldr r3, [r5, #2448] subs r3, r3, r2 - ldr r8, .L3242 - muls r6, r3, r6 - ldrh r3, [r5, #2384] - str r6, [r7, #1280] - muls r6, r3, r6 - ldrh r3, [r5, #2390] - str r6, [r5, #2444] - muls r6, r3, r6 - str r6, [r5, #2424] + ldrh r2, [r5, #2388] + mul r3, r8, r3 + ldr r8, .L3312+20 + str r3, [r8, #1284] + muls r3, r2, r3 + ldrh r2, [r5, #2394] + str r3, [r5, #2448] + muls r3, r2, r3 + str r3, [r5, #2428] bl FtlBbmTblFlush - ldrh r2, [r5, #2326] + ldr r2, [r5, #2336] + adds r1, r7, r6 + ldrh r3, [r5, #2402] + add r3, r3, r2, lsr #3 + cmp r1, r3 + bls .L3297 + ldr r0, .L3312+12 + lsrs r2, r2, #5 + bl printk +.L3297: + ldrh r2, [r5, #2330] movs r1, #0 - ldr r0, [r4, #292] + ldr r0, [r4, #296] + movs r7, #0 movw r6, #65535 lsls r2, r2, #1 bl ftl_memset - ldrh r2, [r5, #2324] - ldr r0, [r4, #468] + ldrh r2, [r5, #2328] + ldr r0, [r4, #472] movs r1, #255 - movs r3, #0 - strh r6, [r4, #552] @ movhi + str r7, [r4, #468] + movs r3, #1 lsrs r2, r2, #3 - str r3, [r4, #464] - strh r3, [r4, #554] @ movhi - strb r3, [r4, #558] - strb r3, [r4, #560] - strh r3, [r4, #314] @ movhi - strb r3, [r4, #318] - strh r3, [r4, #312] @ movhi - movs r3, #1 - strb r3, [r4, #320] + strh r7, [r4, #558] @ movhi + strb r7, [r4, #562] + strb r7, [r4, #564] + strh r7, [r4, #318] @ movhi + strb r7, [r4, #322] + strh r7, [r4, #316] @ movhi + strh r6, [r4, #556] @ movhi + strb r3, [r4, #324] bl ftl_memset -.L3228: - ldr r5, .L3242 - add r0, r5, #312 + ldr r7, .L3312 +.L3298: + ldr r5, .L3312 + add r0, r5, #316 bl make_superblock - ldrb r3, [r4, #319] @ zero_extendqisi2 - ldrh r2, [r4, #312] - cbnz r3, .L3229 - ldr r3, [r8, #292] + ldrb r3, [r4, #323] @ zero_extendqisi2 + ldrh r2, [r4, #316] + cbnz r3, .L3299 + ldr r3, [r7, #296] strh r6, [r3, r2, lsl #1] @ movhi - ldrh r3, [r8, #312] + ldrh r3, [r7, #316] adds r3, r3, #1 - strh r3, [r8, #312] @ movhi - b .L3228 -.L3229: - ldr r3, [r5, #504] - movw r8, #65535 - ldrh r1, [r5, #316] - str r3, [r5, #324] + strh r3, [r7, #316] @ movhi + b .L3298 +.L3299: + ldr r3, [r5, #508] + movw r7, #65535 + ldrh r1, [r5, #320] + str r3, [r5, #328] adds r3, r3, #1 - str r3, [r5, #504] - ldr r3, [r5, #292] + str r3, [r5, #508] + ldr r3, [r5, #296] strh r1, [r3, r2, lsl #1] @ movhi movs r3, #0 - strh r3, [r5, #362] @ movhi - strb r3, [r5, #366] - ldrh r3, [r5, #312] + strh r3, [r5, #366] @ movhi + strb r3, [r5, #370] + ldrh r3, [r5, #316] adds r3, r3, #1 - strh r3, [r5, #360] @ movhi + strh r3, [r5, #364] @ movhi movs r3, #1 - strb r3, [r5, #368] -.L3230: - ldr r6, .L3242 - add r0, r6, #360 + strb r3, [r5, #372] +.L3300: + ldr r6, .L3312 + add r0, r6, #364 bl make_superblock - ldrb r3, [r4, #367] @ zero_extendqisi2 - ldrh r2, [r4, #360] - cbnz r3, .L3231 - ldr r3, [r5, #292] - strh r8, [r3, r2, lsl #1] @ movhi - ldrh r3, [r5, #360] + ldrb r3, [r4, #371] @ zero_extendqisi2 + ldrh r2, [r4, #364] + cbnz r3, .L3301 + ldr r3, [r5, #296] + strh r7, [r3, r2, lsl #1] @ movhi + ldrh r3, [r5, #364] adds r3, r3, #1 - strh r3, [r5, #360] @ movhi - b .L3230 -.L3231: - ldr r3, [r6, #504] + strh r3, [r5, #364] @ movhi + b .L3300 +.L3301: + ldr r3, [r6, #508] movw r4, #65535 - ldrh r1, [r6, #364] - str r3, [r6, #372] + ldrh r1, [r6, #368] + str r3, [r6, #376] adds r3, r3, #1 - str r3, [r6, #504] - ldr r3, [r6, #292] + str r3, [r6, #508] + ldr r3, [r6, #296] strh r1, [r3, r2, lsl #1] @ movhi - strh r4, [r6, #408] @ movhi + strh r4, [r6, #412] @ movhi bl FtlFreeSysBlkQueueOut movs r3, #0 - strh r3, [r6, #538] @ movhi - ldr r3, [r7, #1280] - strh r4, [r6, #540] @ movhi strh r3, [r6, #542] @ movhi - ldr r3, [r6, #504] - str r3, [r6, #544] + ldr r3, [r8, #1284] + strh r4, [r6, #544] @ movhi + strh r3, [r6, #546] @ movhi + ldr r3, [r6, #508] + str r3, [r6, #548] adds r3, r3, #1 - str r3, [r6, #504] - strh r0, [r6, #536] @ movhi + str r3, [r6, #508] + strh r0, [r6, #540] @ movhi bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz r0, .L3210 - ldr r3, .L3242+16 + cbnz r0, .L3280 + ldr r3, .L3312+16 movs r2, #1 str r2, [r3, #504] -.L3210: +.L3280: movs r0, #0 - pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3243: + add sp, sp, #12 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L3313: .align 2 -.L3242: +.L3312: .word .LANCHOR2 .word .LANCHOR0 .word 168778952 - .word .LANCHOR4 + .word .LC156 .word .LANCHOR1 + .word .LANCHOR4 .fnend .size FtlLowFormat, .-FtlLowFormat .align 1 @@ -19975,25 +20358,25 @@ FtlReInitForSDUpdata: push {r0, r1, r2, r3, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #16 - ldr r4, .L3272 - ldrb r3, [r4, #140] @ zero_extendqisi2 - cbz r3, .L3245 -.L3247: + ldr r4, .L3342 + ldrb r3, [r4, #144] @ zero_extendqisi2 + cbz r3, .L3315 +.L3317: movs r0, #0 - b .L3246 -.L3245: - ldr r5, .L3272+4 - ldr r0, [r5, #1176] + b .L3316 +.L3315: + ldr r5, .L3342+4 + ldr r0, [r5, #1180] bl FlashInit cmp r0, #0 - bne .L3247 + bne .L3317 bl FlashLoadFactorBbt - cbz r0, .L3248 + cbz r0, .L3318 bl FlashMakeFactorBbt -.L3248: - ldr r0, [r5, #1208] +.L3318: + ldr r0, [r5, #1212] bl FlashReadIdbDataRaw - cbz r0, .L3249 + cbz r0, .L3319 movs r1, #0 movs r2, #16 mov r0, sp @@ -20002,7 +20385,7 @@ FtlReInitForSDUpdata: movs r3, #0 mov r2, r3 ldr r1, [sp] -.L3250: +.L3320: lsl r5, r6, r2 adds r0, r3, #1 tst r5, r1 @@ -20010,12 +20393,12 @@ FtlReInitForSDUpdata: it ne movne r3, r0 cmp r2, #16 - bne .L3250 + bne .L3320 cmp r3, #6 - bls .L3268 + bls .L3338 movs r2, #0 movs r6, #1 -.L3253: +.L3323: lsl r5, r6, r2 adds r0, r3, #1 tst r5, r1 @@ -20023,59 +20406,59 @@ FtlReInitForSDUpdata: it ne movne r3, r0 cmp r2, #24 - bne .L3253 + bne .L3323 cmp r3, #17 - bhi .L3254 -.L3268: + bhi .L3324 +.L3338: strb r2, [r4, #1] - b .L3252 -.L3254: + b .L3322 +.L3324: movs r3, #36 strb r3, [r4, #1] -.L3252: +.L3322: ldrb r3, [r4, #1] @ zero_extendqisi2 - strh r3, [r4, #138] @ movhi -.L3249: - ldr r1, .L3272+8 - ldr r0, .L3272+12 + strh r3, [r4, #142] @ movhi +.L3319: + ldr r1, .L3342+8 + ldr r0, .L3342+12 bl printk - ldr r0, .L3272+16 + ldr r0, .L3342+16 bl FtlConstantsInit bl FtlVariablesInit - ldrh r0, [r4, #2320] + ldrh r0, [r4, #2324] bl FtlFreeSysBlkQueueInit movs r4, #1 -.L3255: +.L3325: bl FtlLoadBbt - cbz r0, .L3256 -.L3270: + cbz r0, .L3326 +.L3340: bl FtlLowFormat cmp r4, #3 - bhi .L3271 + bhi .L3341 adds r4, r4, #1 - b .L3255 -.L3271: + b .L3325 +.L3341: mov r0, #-1 - b .L3246 -.L3256: + b .L3316 +.L3326: bl FtlSysBlkInit cmp r0, #0 - bne .L3270 - ldr r3, .L3272+20 + bne .L3340 + ldr r3, .L3342+20 movs r2, #1 str r2, [r3, #504] -.L3246: +.L3316: add sp, sp, #16 @ sp needed pop {r4, r5, r6, pc} -.L3273: +.L3343: .align 2 -.L3272: +.L3342: .word .LANCHOR0 .word .LANCHOR4 .word .LC77 .word .LC76 - .word .LANCHOR0+112 + .word .LANCHOR0+116 .word .LANCHOR1 .fnend .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata @@ -20090,83 +20473,83 @@ Ftl_gc_temp_data_write_back: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r5, .L3290 - ldr r3, [r5, #220] - cbz r3, .L3275 -.L3278: + ldr r5, .L3360 + ldr r3, [r5, #224] + cbz r3, .L3345 +.L3348: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L3275: - ldr r3, .L3290+4 - ldrb r3, [r3, #140] @ zero_extendqisi2 - cbz r3, .L3277 - ldr r3, [r5, #1132] +.L3345: + ldr r3, .L3360+4 + ldrb r3, [r3, #144] @ zero_extendqisi2 + cbz r3, .L3347 + ldr r3, [r5, #1136] lsls r3, r3, #31 - bpl .L3277 - ldrh r3, [r5, #412] + bpl .L3347 + ldrh r3, [r5, #416] cmp r3, #0 - bne .L3278 -.L3277: + bne .L3348 +.L3347: movs r2, #0 - ldr r0, [r5, #3304] - ldr r1, [r5, #1132] + ldr r0, [r5, #3308] + ldr r1, [r5, #1136] movs r6, #0 mov r3, r2 - ldr r7, .L3290 + ldr r7, .L3360 bl FlashProgPages mov r8, #36 -.L3279: - ldr r1, [r5, #1132] +.L3349: + ldr r1, [r5, #1136] uxth r3, r6 - ldr r4, .L3290 + ldr r4, .L3360 cmp r3, r1 - bcs .L3289 + bcs .L3359 mul r3, r8, r3 - ldr r0, [r7, #3304] + ldr r0, [r7, #3308] adds r6, r6, #1 adds r1, r0, r3 ldr r0, [r0, r3] ldr r2, [r1, #12] cmp r0, #-1 - bne .L3280 - ldrh r1, [r4, #408] + bne .L3350 + ldrh r1, [r4, #412] movs r5, #0 - ldr r2, [r4, #292] + ldr r2, [r4, #296] strh r5, [r2, r1, lsl #1] @ movhi - ldr r2, [r4, #700] - strh r0, [r4, #408] @ movhi + ldr r2, [r4, #704] + strh r0, [r4, #412] @ movhi adds r2, r2, #1 - str r2, [r4, #700] - ldr r2, [r4, #3304] + str r2, [r4, #704] + ldr r2, [r4, #3308] add r3, r3, r2 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3288 -.L3280: + b .L3358 +.L3350: ldr r0, [r2, #12] ldr r1, [r1, #4] ldr r2, [r2, #8] bl FtlGcUpdatePage - b .L3279 -.L3289: - ldr r0, [r4, #3304] + b .L3349 +.L3359: + ldr r0, [r4, #3308] bl FtlGcBufFree movs r3, #0 - str r3, [r4, #1132] - ldrh r3, [r4, #412] + str r3, [r4, #1136] + ldrh r3, [r4, #416] cmp r3, #0 - bne .L3278 + bne .L3348 movs r0, #1 bl FtlGcFreeTempBlock -.L3288: +.L3358: movs r0, #1 pop {r4, r5, r6, r7, r8, pc} -.L3291: +.L3361: .align 2 -.L3290: +.L3360: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -20183,35 +20566,35 @@ Ftl_get_new_temp_ppa: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movw r3, #65535 - ldr r4, .L3295 - ldrh r2, [r4, #408] + ldr r4, .L3365 + ldrh r2, [r4, #412] cmp r2, r3 - beq .L3293 - ldrh r3, [r4, #412] - cbnz r3, .L3294 -.L3293: + beq .L3363 + ldrh r3, [r4, #416] + cbnz r3, .L3364 +.L3363: bl FtlCacheWriteBack movs r0, #0 movs r5, #0 bl FtlGcFreeTempBlock - ldr r0, .L3295+4 - strb r5, [r4, #416] + ldr r0, .L3365+4 + strb r5, [r4, #420] bl allocate_data_superblock - strh r5, [r4, #1160] @ movhi - strh r5, [r4, #1168] @ movhi + strh r5, [r4, #1164] @ movhi + strh r5, [r4, #1172] @ movhi bl l2p_flush mov r0, r5 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3294: - ldr r0, .L3295+4 +.L3364: + ldr r0, .L3365+4 pop {r3, r4, r5, lr} b get_new_active_ppa -.L3296: +.L3366: .align 2 -.L3295: +.L3365: .word .LANCHOR2 - .word .LANCHOR2+408 + .word .LANCHOR2+412 .fnend .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa .align 1 @@ -20223,146 +20606,146 @@ ftl_do_gc: .fnstart @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3470 + ldr r3, .L3540 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r0 - ldr r0, [r3, #220] + ldr r0, [r3, #224] .pad #44 sub sp, sp, #44 mov r6, r1 mov r7, r3 cmp r0, #0 - bne .L3397 - ldr r2, .L3470+4 - ldr r1, [r2, #504] - adds r1, r1, #1 - beq .L3457 - ldr r4, [r3, #3276] - cmp r4, #0 - bne .L3457 - ldrh r1, [r3, #300] - cmp r1, #47 - bls .L3400 - ldrh r1, [r2, #3352] + bne .L3467 + ldr r1, .L3540+4 + ldr r4, [r1, #504] + cmp r4, #1 + bne .L3527 + ldr r2, [r3, #3280] + cmp r2, #0 + bne .L3527 + ldrh r0, [r3, #304] + cmp r0, #47 + bls .L3470 + ldrh r1, [r1, #3448] movw r2, #65535 cmp r1, r2 - bne .L3299 -.L3302: - ldrh r4, [r7, #1172] + bne .L3369 +.L3372: + ldrh r4, [r7, #1176] movw r1, #65535 - ldr r3, .L3470 + ldr r3, .L3540 cmp r4, r1 - bne .L3300 - b .L3301 -.L3299: - ldrh r3, [r3, #408] + bne .L3370 + b .L3371 +.L3369: + ldrh r3, [r3, #412] cmp r3, r2 - beq .L3302 - movs r0, #1 + beq .L3372 + mov r0, r4 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L3302 - movs r0, #1 - b .L3457 -.L3300: - ldrh r2, [r3, #1170] + beq .L3372 + mov r0, r4 + b .L3527 +.L3370: + ldrh r2, [r3, #1174] cmp r2, r1 - bne .L3301 - ldrh r0, [r3, #1174] + bne .L3371 + ldrh r0, [r3, #1178] cmp r0, r2 - beq .L3301 - ldrh r1, [r3, #1176] + beq .L3371 + ldrh r1, [r3, #1180] cmp r1, r2 itttt ne - strhne r4, [r3, #1170] @ movhi - strhne r0, [r3, #1172] @ movhi - strhne r1, [r3, #1174] @ movhi - strhne r2, [r3, #1176] @ movhi -.L3301: - ldr r4, [r7, #1120] + strhne r4, [r3, #1174] @ movhi + strhne r0, [r3, #1176] @ movhi + strhne r1, [r3, #1178] @ movhi + strhne r2, [r3, #1180] @ movhi +.L3371: + ldr r4, [r7, #1124] cmp r8, #1 add r4, r4, #1 add r4, r4, r8, lsl #7 - str r4, [r7, #1120] - bne .L3313 - ldr r3, .L3470+8 - ldr r2, [r3, #2308] + str r4, [r7, #1124] + bne .L3383 + ldr r3, .L3540+8 + ldr r2, [r3, #2244] mov r10, r3 - cbnz r2, .L3304 - ldrb r3, [r3, #140] @ zero_extendqisi2 + cbnz r2, .L3374 + ldrb r3, [r3, #144] @ zero_extendqisi2 cmp r3, #0 - beq .L3313 -.L3304: - ldr r3, [r7, #528] - ldr r5, .L3470 + beq .L3383 +.L3374: + ldr r3, [r7, #532] + ldr r5, .L3540 cmp r3, #39 - bhi .L3313 - ldr r9, .L3470+12 - ldrh r3, [r9, #972] + bhi .L3383 + ldr r9, .L3540+12 + ldrh r3, [r9, #976] add r4, r4, r3 - str r4, [r5, #1120] + str r4, [r5, #1124] bl FtlGcReFreshBadBlk - ldrh r3, [r5, #552] + ldrh r3, [r5, #556] movw r2, #65535 cmp r3, r2 - bne .L3313 - ldrh r2, [r5, #1170] + bne .L3383 + ldrh r2, [r5, #1174] cmp r2, r3 - bne .L3313 - ldr r3, [r5, #1120] + bne .L3383 + ldr r3, [r5, #1124] cmp r3, #1024 - bhi .L3305 - ldrh r3, [r5, #308] + bhi .L3375 + ldrh r3, [r5, #312] cmp r3, #63 - bhi .L3313 -.L3305: - ldrh r3, [r7, #1118] + bhi .L3383 +.L3375: + ldrh r3, [r7, #1122] movs r0, #0 - ldrh r4, [r7, #308] + ldrh r4, [r7, #312] adds r3, r3, #64 - ldr r2, .L3470+12 + ldr r2, .L3540+12 cmp r4, r3 - strh r0, [r9, #972] @ movhi - ldr r1, .L3470 - bgt .L3313 - ldr r3, [r1, #528] - str r0, [r1, #1120] - cbnz r3, .L3306 + strh r0, [r9, #976] @ movhi + ldr r1, .L3540 + bgt .L3383 + ldr r3, [r1, #532] + str r0, [r1, #1124] + cbnz r3, .L3376 movs r3, #6 - b .L3458 -.L3306: + b .L3528 +.L3376: cmp r3, #5 - bhi .L3307 + bhi .L3377 movs r3, #18 -.L3458: - strh r3, [r2, #972] @ movhi -.L3307: +.L3528: + strh r3, [r2, #976] @ movhi +.L3377: movs r0, #32 bl List_get_gc_head_node movw ip, #65535 uxth r2, r0 cmp r2, ip - beq .L3312 - ldrh r0, [r7, #1124] - ldr r5, .L3470 + beq .L3382 + ldrh r0, [r7, #1128] + ldr r5, .L3540 cmp r0, #0 - beq .L3309 - ldrh r4, [r10, #2386] - ldrh r3, [r10, #2316] - ldr fp, [r5, #292] + beq .L3379 + ldrh r4, [r10, #2390] + ldrh r3, [r10, #2320] + ldr fp, [r5, #296] muls r3, r4, r3 ldrh r1, [fp, r2, lsl #1] adds r3, r3, #1 cmp r1, r3 - bgt .L3312 + bgt .L3382 adds r1, r0, #1 str ip, [sp, #20] str r2, [sp, #16] mov r10, #0 uxth r1, r1 - str r10, [r5, #1128] - strh r1, [r5, #1124] @ movhi + str r10, [r5, #1132] + strh r1, [r5, #1128] @ movhi str r1, [sp, #12] bl List_get_gc_head_node ldr ip, [sp, #20] @@ -20370,405 +20753,405 @@ ftl_do_gc: ldr r1, [sp, #12] cmp r4, ip ldr r2, [sp, #16] - beq .L3312 + beq .L3382 ldrh r2, [fp, r2, lsl #1] ldrh r3, [fp, r4, lsl #1] - ldr r0, .L3470+16 + ldr r0, .L3540+16 str r2, [sp] mov r2, r4 bl printk - ldrh r3, [r5, #1124] + ldrh r3, [r5, #1128] cmp r3, #40 - bls .L3310 - ldr r3, [r5, #292] + bls .L3380 + ldr r3, [r5, #296] ldrh r3, [r3, r4, lsl #1] cmp r3, #32 it hi - strhhi r10, [r5, #1124] @ movhi -.L3310: + strhhi r10, [r5, #1128] @ movhi +.L3380: movs r3, #6 - strh r3, [r9, #972] @ movhi - b .L3329 -.L3309: + strh r3, [r9, #976] @ movhi + b .L3399 +.L3379: movs r3, #1 - strh r3, [r5, #1124] @ movhi -.L3312: + strh r3, [r5, #1128] @ movhi +.L3382: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov r4, r0 - bne .L3329 + bne .L3399 movs r3, #0 - strh r3, [r9, #972] @ movhi -.L3313: - ldrh r3, [r7, #552] + strh r3, [r9, #976] @ movhi +.L3383: + ldrh r3, [r7, #556] movw r4, #65535 - ldr r5, .L3470 + ldr r5, .L3540 cmp r3, r4 - bne .L3463 - ldrh r4, [r5, #408] + bne .L3533 + ldrh r4, [r5, #412] cmp r4, r3 - bne .L3314 - ldrh r10, [r5, #1170] + bne .L3384 + ldrh r10, [r5, #1174] cmp r10, r4 - bne .L3315 - ldrh r3, [r5, #308] - ldr r2, [r5, #1120] + bne .L3385 + ldrh r3, [r5, #312] + ldr r2, [r5, #1124] cmp r3, #24 ite cc movcc r3, #5120 movcs r3, #1024 cmp r2, r3 - bls .L3317 - ldr r2, .L3470+12 + bls .L3387 + ldr r2, .L3540+12 movs r3, #0 - str r3, [r7, #1120] + str r3, [r7, #1124] mov r9, r5 - strh r3, [r2, #972] @ movhi + strh r3, [r2, #976] @ movhi bl GetSwlReplaceBlock cmp r0, r10 mov r4, r0 - bne .L3318 - ldrh r2, [r5, #308] - ldrh r3, [r5, #1118] + bne .L3388 + ldrh r2, [r5, #312] + ldrh r3, [r5, #1122] cmp r2, r3 - bcs .L3319 + bcs .L3389 movs r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - bne .L3464 -.L3328: + bne .L3534 +.L3398: bl FtlGcReFreshBadBlk cmp r8, #0 - beq .L3465 -.L3329: - ldrh r2, [r7, #408] + beq .L3535 +.L3399: + ldrh r2, [r7, #412] movw r3, #65535 cmp r2, r3 - bne .L3340 -.L3395: - ldrh r3, [r7, #1170] + bne .L3410 +.L3465: + ldrh r3, [r7, #1174] movw r2, #65535 cmp r3, r2 - bne .L3340 + bne .L3410 cmp r4, r3 - bne .L3340 -.L3396: - ldrh r1, [r7, #552] + bne .L3410 +.L3466: + ldrh r1, [r7, #556] movw r3, #65535 - ldr r2, .L3470 + ldr r2, .L3540 cmp r1, r3 - beq .L3341 -.L3345: + beq .L3411 +.L3415: movw r4, #65535 - b .L3340 -.L3341: + b .L3410 +.L3411: movs r3, #0 - ldrh r1, [r2, #308] - str r3, [r2, #1128] - ldrh r3, [r2, #1116] - ldr r4, .L3470+12 + ldrh r1, [r2, #312] + str r3, [r2, #1132] + ldrh r3, [r2, #1120] + ldr r4, .L3540+12 cmp r1, r3 - bls .L3342 - ldrh r3, [r4, #972] - cbnz r3, .L3343 - ldr r3, .L3470+8 - ldr r2, [r2, #464] - ldr r3, [r3, #2444] + bls .L3412 + ldrh r3, [r4, #976] + cbnz r3, .L3413 + ldr r3, .L3540+8 + ldr r2, [r2, #468] + ldr r3, [r3, #2448] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L3408 -.L3343: - ldrh r3, [r7, #532] + bcs .L3478 +.L3413: + ldrh r3, [r7, #536] add r3, r3, r3, lsl #1 ubfx r3, r3, #2, #16 - b .L3344 -.L3408: + b .L3414 +.L3478: movs r3, #18 -.L3344: - strh r3, [r7, #1116] @ movhi +.L3414: + strh r3, [r7, #1120] @ movhi bl FtlReadRefresh movs r0, #0 bl List_get_gc_head_node - ldr r3, [r7, #292] + ldr r3, [r7, #296] uxth r0, r0 ldrh r3, [r3, r0, lsl #1] cmp r3, #4 - bls .L3342 - ldrh r0, [r4, #972] - b .L3457 -.L3342: - ldrh r0, [r4, #972] + bls .L3412 + ldrh r0, [r4, #976] + b .L3527 +.L3412: + ldrh r0, [r4, #976] cmp r0, #0 - bne .L3345 - ldrh r4, [r7, #532] + bne .L3415 + ldrh r4, [r7, #536] add r3, r4, r4, lsl #1 asrs r3, r3, #2 - strh r3, [r7, #1116] @ movhi + strh r3, [r7, #1120] @ movhi bl List_get_gc_head_node - ldr r3, [r7, #292] + ldr r3, [r7, #296] uxth r0, r0 ldrh r2, [r3, r0, lsl #1] - ldr r3, .L3470+8 - ldrh r1, [r3, #2386] - ldrh r3, [r3, #2316] + ldr r3, .L3540+8 + ldrh r1, [r3, #2390] + ldrh r3, [r3, #2320] muls r3, r1, r3 add r3, r3, r3, lsr #31 cmp r2, r3, asr #1 - ble .L3346 - ldr r3, .L3470 + ble .L3416 + ldr r3, .L3540 subs r4, r4, #1 - ldrh r3, [r3, #308] + ldrh r3, [r3, #312] cmp r3, r4 - blt .L3346 + blt .L3416 bl FtlReadRefresh - b .L3462 -.L3346: + b .L3532 +.L3416: cmp r2, #0 - bne .L3345 + bne .L3415 movw r0, #65535 bl decrement_vpc_count - ldrh r0, [r7, #308] + ldrh r0, [r7, #312] adds r0, r0, #1 - b .L3457 -.L3471: + b .L3527 +.L3541: .align 2 -.L3470: +.L3540: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR5 - .word .LC152 -.L3340: - ldr r3, .L3472 - ldr r3, [r3, #2308] + .word .LC157 +.L3410: + ldr r3, .L3542 + ldr r3, [r3, #2244] cmp r3, #0 ite eq moveq r5, #1 movne r5, #2 - b .L3339 -.L3465: + b .L3409 +.L3535: movw r3, #65535 cmp r4, r3 - bne .L3329 -.L3394: - ldrh r4, [r7, #308] + bne .L3399 +.L3464: + ldrh r4, [r7, #312] cmp r4, #24 - bhi .L3404 - ldr r3, .L3472 + bhi .L3474 + ldr r3, .L3542 cmp r4, #16 - ldrh r5, [r3, #2384] - bls .L3331 + ldrh r5, [r3, #2388] + bls .L3401 lsrs r5, r5, #5 -.L3330: - ldrh r3, [r7, #1116] - ldr r2, .L3472+4 +.L3400: + ldrh r3, [r7, #1120] + ldr r2, .L3542+4 cmp r3, r4 - bcc .L3466 -.L3334: - ldr r3, .L3472 - ldr r3, [r3, #2308] + bcc .L3536 +.L3404: + ldr r3, .L3542 + ldr r3, [r3, #2244] cmp r3, #0 - bne .L3467 -.L3407: + bne .L3537 +.L3477: movw r4, #65535 -.L3339: - ldrh r2, [r7, #552] +.L3409: + ldrh r2, [r7, #556] movw r1, #65535 - ldr r3, .L3472+4 + ldr r3, .L3542+4 cmp r2, r1 - bne .L3348 + bne .L3418 cmp r4, r2 - beq .L3349 - strh r4, [r3, #552] @ movhi - b .L3350 -.L3349: - ldrh r2, [r3, #1170] + beq .L3419 + strh r4, [r3, #556] @ movhi + b .L3420 +.L3419: + ldrh r2, [r3, #1174] cmp r2, r4 - beq .L3350 - ldr r1, [r3, #292] + beq .L3420 + ldr r1, [r3, #296] ldrh r2, [r1, r2, lsl #1] - cbnz r2, .L3351 - strh r4, [r3, #1170] @ movhi -.L3351: - ldrh r3, [r7, #1170] - strh r3, [r7, #552] @ movhi + cbnz r2, .L3421 + strh r4, [r3, #1174] @ movhi +.L3421: + ldrh r3, [r7, #1174] + strh r3, [r7, #556] @ movhi movw r3, #65535 - strh r3, [r7, #1170] @ movhi -.L3350: - ldrh r0, [r7, #552] + strh r3, [r7, #1174] @ movhi +.L3420: + ldrh r0, [r7, #556] movw r6, #65535 movs r3, #0 - strb r3, [r7, #560] + strb r3, [r7, #564] cmp r0, r6 - beq .L3348 + beq .L3418 bl IsBlkInGcList - cbz r0, .L3353 - ldr r3, .L3472+4 - strh r6, [r3, #552] @ movhi -.L3353: - ldr r3, .L3472 - ldrb r3, [r3, #140] @ zero_extendqisi2 - cbz r3, .L3354 - ldrh r0, [r7, #552] + cbz r0, .L3423 + ldr r3, .L3542+4 + strh r6, [r3, #556] @ movhi +.L3423: + ldr r3, .L3542 + ldrb r3, [r3, #144] @ zero_extendqisi2 + cbz r3, .L3424 + ldrh r0, [r7, #556] bl ftl_get_blk_mode - strb r0, [r7, #560] -.L3354: - ldrh r2, [r7, #552] + strb r0, [r7, #564] +.L3424: + ldrh r2, [r7, #556] movw r3, #65535 - ldr r6, .L3472+4 + ldr r6, .L3542+4 cmp r2, r3 - beq .L3348 - add r0, r6, #552 + beq .L3418 + add r0, r6, #556 bl make_superblock - ldr r2, .L3472+8 + ldr r2, .L3542+8 movs r3, #0 - ldrh r1, [r6, #552] - strh r3, [r6, #554] @ movhi - strb r3, [r6, #558] - strh r3, [r2, #974] @ movhi - ldr r3, [r6, #292] + ldrh r1, [r6, #556] + strh r3, [r6, #558] @ movhi + strb r3, [r6, #562] + strh r3, [r2, #978] @ movhi + ldr r3, [r6, #296] ldrh r3, [r3, r1, lsl #1] - strh r3, [r2, #976] @ movhi -.L3348: - ldrh r3, [r7, #552] - ldrh r1, [r7, #312] - ldr r2, .L3472+4 + strh r3, [r2, #980] @ movhi +.L3418: + ldrh r3, [r7, #556] + ldrh r1, [r7, #316] + ldr r2, .L3542+4 cmp r1, r3 - beq .L3355 - ldrh r1, [r2, #360] + beq .L3425 + ldrh r1, [r2, #364] cmp r1, r3 - beq .L3355 - ldrh r2, [r2, #408] + beq .L3425 + ldrh r2, [r2, #412] cmp r2, r3 - bne .L3356 -.L3355: + bne .L3426 +.L3425: movw r3, #65535 - strh r3, [r7, #552] @ movhi -.L3356: - ldr r7, .L3472 -.L3389: - ldr r6, .L3472+4 + strh r3, [r7, #556] @ movhi +.L3426: + ldr r7, .L3542 +.L3459: + ldr r6, .L3542+4 movw r3, #65535 - ldrh r2, [r6, #552] + ldrh r2, [r6, #556] mov fp, r6 cmp r2, r3 - bne .L3357 + bne .L3427 mov r10, r6 movs r3, #0 - str r3, [r6, #1128] -.L3358: - ldrh r9, [fp, #1124] + str r3, [r6, #1132] +.L3428: + ldrh r9, [fp, #1128] mov r0, r9 bl List_get_gc_head_node movw r2, #65535 uxth r3, r0 - strh r3, [fp, #552] @ movhi + strh r3, [fp, #556] @ movhi cmp r3, r2 - bne .L3359 - ldr r3, .L3472+4 + bne .L3429 + ldr r3, .L3542+4 movs r2, #0 movs r0, #8 - strh r2, [r3, #1124] @ movhi - b .L3457 -.L3359: + strh r2, [r3, #1128] @ movhi + b .L3527 +.L3429: mov r0, r3 str r3, [sp, #12] bl IsBlkInGcList add r9, r9, #1 ldr r3, [sp, #12] - cbz r0, .L3360 - strh r9, [r10, #1124] @ movhi - b .L3358 -.L3360: - ldrh lr, [r7, #2316] + cbz r0, .L3430 + strh r9, [r10, #1128] @ movhi + b .L3428 +.L3430: + ldrh lr, [r7, #2320] uxth r9, r9 - ldrh r2, [r7, #2384] - ldr r1, [r10, #292] - strh r9, [r10, #1124] @ movhi + ldrh r2, [r7, #2388] + ldr r1, [r10, #296] + strh r9, [r10, #1128] @ movhi mul r2, lr, r2 ldrh r0, [r1, r3, lsl #1] add lr, r2, r2, lsr #31 cmp r0, lr, asr #1 - bgt .L3362 + bgt .L3432 cmp r9, #48 - bls .L3363 + bls .L3433 cmp r0, #8 - bls .L3363 - ldrh r0, [r10, #1160] + bls .L3433 + ldrh r0, [r10, #1164] cmp r0, #35 - bhi .L3363 -.L3362: + bhi .L3433 +.L3432: movs r0, #0 - strh r0, [fp, #1124] @ movhi -.L3363: + strh r0, [fp, #1128] @ movhi +.L3433: ldrh r1, [r1, r3, lsl #1] cmp r1, r2 - blt .L3364 + blt .L3434 movw r2, #65535 cmp r4, r2 - bne .L3364 - ldrh r0, [fp, #1124] - ldr r2, .L3472+4 + bne .L3434 + ldrh r0, [fp, #1128] + ldr r2, .L3542+4 cmp r0, #3 - bhi .L3364 + bhi .L3434 movs r3, #0 - strh r4, [r2, #552] @ movhi - strh r3, [r2, #1124] @ movhi -.L3462: - ldr r3, .L3472+8 - ldrh r0, [r3, #972] - b .L3457 -.L3364: - cbnz r1, .L3365 + strh r4, [r2, #556] @ movhi + strh r3, [r2, #1128] @ movhi +.L3532: + ldr r3, .L3542+8 + ldrh r0, [r3, #976] + b .L3527 +.L3434: + cbnz r1, .L3435 movw r0, #65535 bl decrement_vpc_count - ldrh r3, [fp, #1124] + ldrh r3, [fp, #1128] adds r3, r3, #1 - strh r3, [fp, #1124] @ movhi - b .L3358 -.L3365: + strh r3, [fp, #1128] @ movhi + b .L3428 +.L3435: movs r2, #0 - strb r2, [r6, #560] - ldr r2, .L3472 - ldrb r2, [r2, #140] @ zero_extendqisi2 - cbz r2, .L3366 + strb r2, [r6, #564] + ldr r2, .L3542 + ldrb r2, [r2, #144] @ zero_extendqisi2 + cbz r2, .L3436 mov r0, r3 bl ftl_get_blk_mode - ldr r3, .L3472+4 - strb r0, [r3, #560] -.L3366: - ldr r0, .L3472+12 + ldr r3, .L3542+4 + strb r0, [r3, #564] +.L3436: + ldr r0, .L3542+12 bl make_superblock - ldr r2, .L3472+8 - ldrh r0, [r6, #552] + ldr r2, .L3542+8 + ldrh r0, [r6, #556] movs r3, #0 - ldr r1, [r6, #292] - strh r3, [r2, #974] @ movhi + ldr r1, [r6, #296] + strh r3, [r2, #978] @ movhi ldrh r1, [r1, r0, lsl #1] - strh r3, [r6, #554] @ movhi - strb r3, [r6, #558] - strh r1, [r2, #976] @ movhi -.L3357: + strh r3, [r6, #558] @ movhi + strb r3, [r6, #562] + strh r1, [r2, #980] @ movhi +.L3427: cmp r8, #1 - bne .L3367 + bne .L3437 bl FtlReadRefresh -.L3367: +.L3437: movs r3, #1 - str r3, [r6, #3276] - ldrh r3, [r7, #2384] + str r3, [r6, #3280] + ldrh r3, [r7, #2388] str r3, [sp, #12] - ldrb r3, [r7, #140] @ zero_extendqisi2 - cbz r3, .L3368 - ldr r3, .L3472+4 - ldrb r3, [r3, #560] @ zero_extendqisi2 + ldrb r3, [r7, #144] @ zero_extendqisi2 + cbz r3, .L3438 + ldr r3, .L3542+4 + ldrb r3, [r3, #564] @ zero_extendqisi2 cmp r3, #1 itt eq - ldrheq r3, [r7, #2386] + ldrheq r3, [r7, #2390] streq r3, [sp, #12] -.L3368: - ldrh r3, [r6, #554] +.L3438: + ldrh r3, [r6, #558] ldr r1, [sp, #12] adds r2, r3, r5 cmp r2, r1 @@ -20777,29 +21160,29 @@ ftl_do_gc: subgt r3, r2, r3 uxthgt r5, r3 movs r3, #0 -.L3461: +.L3531: str r3, [sp, #16] ldrh r3, [sp, #16] - ldr r6, .L3472+4 + ldr r6, .L3542+4 cmp r3, r5 - bcs .L3377 - ldr r3, [r6, #1148] - addw r1, r6, #566 + bcs .L3447 + ldr r3, [r6, #1152] + addw r1, r6, #570 ldr r2, [sp, #16] movw lr, #65535 - ldrh r10, [r7, #2316] + ldrh r10, [r7, #2320] str r3, [sp, #20] - ldrh r3, [r6, #554] + ldrh r3, [r6, #558] add ip, r3, r2 movs r3, #0 mov r9, r3 -.L3378: +.L3448: uxth r2, r3 cmp r2, r10 - bcs .L3468 + bcs .L3538 ldrh r2, [r1, #2]! cmp r2, lr - beq .L3371 + beq .L3441 ldr r0, [sp, #20] mov fp, #36 orr r2, ip, r2, lsl #10 @@ -20807,46 +21190,46 @@ ftl_do_gc: add r9, r9, #1 uxth r9, r9 str r2, [fp, #4] -.L3371: +.L3441: adds r3, r3, #1 - b .L3378 -.L3473: + b .L3448 +.L3543: .align 2 -.L3472: +.L3542: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR5 - .word .LANCHOR2+552 -.L3468: - ldr r0, [r6, #1148] + .word .LANCHOR2+556 +.L3538: + ldr r0, [r6, #1152] mov r1, r9 - ldrb r2, [r6, #560] @ zero_extendqisi2 + ldrb r2, [r6, #564] @ zero_extendqisi2 mov fp, #0 bl FlashReadPages - ldr r6, .L3474 -.L3373: + ldr r6, .L3544 +.L3443: uxth r3, fp cmp r3, r9 - bcs .L3469 + bcs .L3539 mov ip, #36 - ldr r2, [r6, #1148] + ldr r2, [r6, #1152] mul r10, ip, fp add r3, r2, r10 ldr r2, [r2, r10] ldr r3, [r3, #12] adds r2, r2, #1 - beq .L3411 + beq .L3481 ldrh r1, [r3] movw r2, #61589 cmp r1, r2 - bne .L3411 + bne .L3481 ldr r0, [r3, #8] add r1, sp, #32 movs r2, #0 str ip, [sp, #24] str r3, [sp, #20] bl log2phys - ldr r1, [r6, #1148] + ldr r1, [r6, #1152] add r1, r1, r10 ldr r0, [r1, #4] ldr r2, [sp, #32] @@ -20854,27 +21237,27 @@ ftl_do_gc: bic r2, r2, #-2147483648 ldr ip, [sp, #24] cmp r2, r0 - bne .L3411 + bne .L3481 str r3, [sp, #28] - ldr r3, .L3474+4 - ldr r0, [r6, #1132] + ldr r3, .L3544+4 + ldr r0, [r6, #1136] ldr r1, [r1, #16] - ldrh r2, [r3, #974] + ldrh r2, [r3, #978] adds r2, r2, #1 - strh r2, [r3, #974] @ movhi - ldr r2, [r6, #3304] + strh r2, [r3, #978] @ movhi + ldr r2, [r6, #3308] mla r2, ip, r0, r2 str r1, [r2, #16] str r2, [sp, #20] bl Ftl_get_new_temp_ppa - ldr r1, [r6, #1132] + ldr r1, [r6, #1136] ldr r2, [sp, #20] ldr ip, [sp, #24] ldr r3, [sp, #28] str r0, [r2, #4] - ldr r2, [r6, #3304] + ldr r2, [r6, #3308] mla ip, ip, r1, r2 - ldr r2, [r6, #1148] + ldr r2, [r6, #1152] add r2, r2, r10 ldr r1, [r2, #8] str r1, [ip, #8] @@ -20883,281 +21266,281 @@ ftl_do_gc: str r2, [ip, #12] ldr r2, [sp, #32] str r2, [r3, #12] - ldrh r2, [r6, #408] + ldrh r2, [r6, #412] strh r2, [r3, #2] @ movhi - ldr r2, [r6, #508] - ldr r0, [r6, #1148] + ldr r2, [r6, #512] + ldr r0, [r6, #1152] str r2, [r3, #4] add r0, r0, r10 - ldr r3, [r6, #1132] + ldr r3, [r6, #1136] adds r3, r3, #1 - str r3, [r6, #1132] + str r3, [r6, #1136] bl FtlGcBufAlloc - ldrb r3, [r7, #140] @ zero_extendqisi2 - cbnz r3, .L3375 - ldrb r3, [r6, #415] @ zero_extendqisi2 - ldr r2, [r6, #1132] + ldrb r3, [r7, #144] @ zero_extendqisi2 + cbnz r3, .L3445 + ldrb r3, [r6, #419] @ zero_extendqisi2 + ldr r2, [r6, #1136] cmp r2, r3 - beq .L3375 - ldrh r3, [r6, #412] - cbnz r3, .L3411 -.L3375: + beq .L3445 + ldrh r3, [r6, #416] + cbnz r3, .L3481 +.L3445: bl Ftl_gc_temp_data_write_back - cbz r0, .L3411 - ldr r3, .L3474 + cbz r0, .L3481 + ldr r3, .L3544 movs r2, #0 movw r1, #65535 - str r2, [r3, #3276] - strh r1, [r3, #552] @ movhi - strh r2, [r3, #554] @ movhi - b .L3462 -.L3411: + str r2, [r3, #3280] + strh r1, [r3, #556] @ movhi + strh r2, [r3, #558] @ movhi + b .L3532 +.L3481: add fp, fp, #1 - b .L3373 -.L3469: + b .L3443 +.L3539: ldr r3, [sp, #16] adds r3, r3, #1 - b .L3461 -.L3377: - ldrh r3, [r6, #554] + b .L3531 +.L3447: + ldrh r3, [r6, #558] add r5, r5, r3 ldr r3, [sp, #12] uxth r5, r5 - strh r5, [r6, #554] @ movhi + strh r5, [r6, #558] @ movhi cmp r5, r3 - bcc .L3379 - ldr r3, [r6, #1132] - ldr r5, .L3474+4 - cbz r3, .L3380 + bcc .L3449 + ldr r3, [r6, #1136] + ldr r5, .L3544+4 + cbz r3, .L3450 bl Ftl_gc_temp_data_write_back - cbz r0, .L3380 + cbz r0, .L3450 movs r3, #0 - ldrh r0, [r5, #972] - str r3, [r6, #3276] - b .L3457 -.L3380: - ldrh r5, [r5, #974] - cbnz r5, .L3381 - ldrh r2, [r6, #552] - ldr r3, [r6, #292] + ldrh r0, [r5, #976] + str r3, [r6, #3280] + b .L3527 +.L3450: + ldrh r5, [r5, #978] + cbnz r5, .L3451 + ldrh r2, [r6, #556] + ldr r3, [r6, #296] ldrh r3, [r3, r2, lsl #1] - cbz r3, .L3381 -.L3382: - ldr r3, [r7, #2444] + cbz r3, .L3451 +.L3452: + ldr r3, [r7, #2448] cmp r5, r3 - bcs .L3387 + bcs .L3457 mov r0, r5 add r1, sp, #36 movs r2, #0 bl log2phys ldr r0, [sp, #36] adds r3, r0, #1 - beq .L3383 + beq .L3453 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldrh r3, [r6, #552] + ldrh r3, [r6, #556] cmp r3, r0 - bne .L3383 -.L3387: - ldr r3, .L3474+8 - ldr r3, [r3, #2444] + bne .L3453 +.L3457: + ldr r3, .L3544+8 + ldr r3, [r3, #2448] cmp r5, r3 - bcc .L3381 - ldrh r2, [r6, #552] + bcc .L3451 + ldrh r2, [r6, #556] movs r1, #0 - ldr r3, [r6, #292] + ldr r3, [r6, #296] strh r1, [r3, r2, lsl #1] @ movhi - ldrh r0, [r6, #552] + ldrh r0, [r6, #556] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3381 -.L3383: + b .L3451 +.L3453: adds r5, r5, #1 - b .L3382 -.L3381: + b .L3452 +.L3451: movw r3, #65535 - strh r3, [r6, #552] @ movhi -.L3379: - ldrh r3, [r6, #308] + strh r3, [r6, #556] @ movhi +.L3449: + ldrh r3, [r6, #312] cmp r3, #2 - bhi .L3388 - ldrh r5, [r7, #2384] - b .L3389 -.L3388: - ldr r2, .L3474 + bhi .L3458 + ldrh r5, [r7, #2388] + b .L3459 +.L3458: + ldr r2, .L3544 movs r1, #0 - str r1, [r2, #3276] - ldr r2, .L3474+4 - ldrh r0, [r2, #972] + str r1, [r2, #3280] + ldr r2, .L3544+4 + ldrh r0, [r2, #976] cmp r0, #0 - bne .L3457 + bne .L3527 adds r0, r3, #1 - b .L3457 -.L3397: + b .L3527 +.L3467: movs r0, #0 - b .L3457 -.L3400: - mov r0, r4 - b .L3457 -.L3464: - ldr r2, [r5, #3272] - ldr r5, .L3474+8 - cbnz r2, .L3321 - ldrh r2, [r5, #2336] + b .L3527 +.L3470: + mov r0, r2 + b .L3527 +.L3534: + ldr r2, [r5, #3276] + ldr r5, .L3544+8 + cbnz r2, .L3391 + ldrh r2, [r5, #2340] cmp r2, #3 - beq .L3321 - ldr r2, [r9, #600] - cbnz r2, .L3321 - ldr r2, [r5, #2308] - cbnz r2, .L3321 - ldrb r0, [r5, #140] @ zero_extendqisi2 - cbz r0, .L3322 -.L3321: - ldr r2, [r7, #292] - ldrh r0, [r5, #2336] + beq .L3391 + ldr r2, [r9, #604] + cbnz r2, .L3391 + ldr r2, [r5, #2244] + cbnz r2, .L3391 + ldrb r0, [r5, #144] @ zero_extendqisi2 + cbz r0, .L3392 +.L3391: + ldr r2, [r7, #296] + ldrh r0, [r5, #2340] ldrh r1, [r2, r3, lsl #1] cmp r0, #3 - ldrh r3, [r5, #2386] - ldrh r2, [r5, #2316] + ldrh r3, [r5, #2390] + ldrh r2, [r5, #2320] mul r2, r2, r3 ite eq lsreq r3, r3, #1 movne r3, #0 add r3, r3, r2 cmp r1, r3 - bgt .L3324 + bgt .L3394 movs r0, #0 bl List_get_gc_head_node - ldr r3, [r5, #2444] - ldr r2, .L3474 - ldr r1, [r7, #464] + ldr r3, [r5, #2448] + ldr r2, .L3544 + ldr r1, [r7, #468] add r3, r3, r3, lsl #1 cmp r1, r3, lsr #2 ite hi movhi r3, #128 movls r3, #160 - strh r3, [r2, #1118] @ movhi + strh r3, [r2, #1122] @ movhi uxth r4, r0 - b .L3326 -.L3324: + b .L3396 +.L3394: movs r3, #128 - b .L3460 -.L3322: - ldr r2, [r9, #292] + b .L3530 +.L3392: + ldr r2, [r9, #296] ldrh r3, [r2, r3, lsl #1] cmp r3, #7 - bhi .L3327 + bhi .L3397 bl List_get_gc_head_node movs r3, #128 - strh r3, [r7, #1118] @ movhi + strh r3, [r7, #1122] @ movhi uxth r4, r0 - b .L3326 -.L3327: + b .L3396 +.L3397: movs r3, #64 -.L3460: - strh r3, [r7, #1118] @ movhi - b .L3328 -.L3319: +.L3530: + strh r3, [r7, #1122] @ movhi + b .L3398 +.L3389: movs r3, #80 - strh r3, [r5, #1118] @ movhi - b .L3328 -.L3326: + strh r3, [r5, #1122] @ movhi + b .L3398 +.L3396: movw r3, #65535 cmp r4, r3 - beq .L3328 -.L3318: - ldr r1, [r7, #228] - ldr r3, [r7, #292] - ldrh r2, [r7, #308] + beq .L3398 +.L3388: + ldr r1, [r7, #232] + ldr r3, [r7, #296] + ldrh r2, [r7, #312] ldrh r1, [r1, r4, lsl #1] ldrh r3, [r3, r4, lsl #1] - ldr r0, .L3474+12 + ldr r0, .L3544+12 str r1, [sp] - ldrh r1, [r7, #1116] + ldrh r1, [r7, #1120] str r1, [sp, #4] mov r1, r4 bl printk - b .L3328 -.L3331: + b .L3398 +.L3401: cmp r4, #12 - bls .L3332 + bls .L3402 lsrs r5, r5, #4 - b .L3330 -.L3332: + b .L3400 +.L3402: cmp r4, #8 - bls .L3330 + bls .L3400 lsrs r5, r5, #2 - b .L3330 -.L3404: + b .L3400 +.L3474: movs r5, #1 - b .L3330 -.L3466: - ldrh r3, [r2, #408] + b .L3400 +.L3536: + ldrh r3, [r2, #412] movw r1, #65535 cmp r3, r1 - bne .L3335 - ldrh r1, [r2, #1170] + bne .L3405 + ldrh r1, [r2, #1174] cmp r1, r3 - bne .L3335 - ldr r3, .L3474+4 - ldrh r0, [r3, #972] - cbnz r0, .L3336 - ldr r3, .L3474+8 - ldr r2, [r2, #464] - ldr r3, [r3, #2444] + bne .L3405 + ldr r3, .L3544+4 + ldrh r0, [r3, #976] + cbnz r0, .L3406 + ldr r3, .L3544+8 + ldr r2, [r2, #468] + ldr r3, [r3, #2448] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L3405 -.L3336: - ldrh r3, [r7, #532] + bcs .L3475 +.L3406: + ldrh r3, [r7, #536] add r3, r3, r3, lsl #1 ubfx r3, r3, #2, #16 - b .L3337 -.L3475: + b .L3407 +.L3545: .align 2 -.L3474: +.L3544: .word .LANCHOR2 .word .LANCHOR5 .word .LANCHOR0 - .word .LC153 -.L3405: + .word .LC158 +.L3475: movs r3, #18 -.L3337: - strh r3, [r7, #1116] @ movhi +.L3407: + strh r3, [r7, #1120] @ movhi movs r3, #0 - str r3, [r7, #1128] - b .L3457 -.L3335: - ldrh r3, [r7, #532] + str r3, [r7, #1132] + b .L3527 +.L3405: + ldrh r3, [r7, #536] add r3, r3, r3, lsl #1 asrs r3, r3, #2 - strh r3, [r7, #1116] @ movhi - b .L3334 -.L3467: + strh r3, [r7, #1120] @ movhi + b .L3404 +.L3537: cmp r6, #2 - bhi .L3407 + bhi .L3477 adds r5, r5, #1 uxth r5, r5 - b .L3407 -.L3463: + b .L3477 +.L3533: cmp r8, #0 - beq .L3394 - b .L3329 -.L3315: + beq .L3464 + b .L3399 +.L3385: cmp r8, #0 - beq .L3394 - b .L3395 -.L3314: + beq .L3464 + b .L3465 +.L3384: cmp r8, #0 - beq .L3394 - b .L3345 -.L3317: + beq .L3464 + b .L3415 +.L3387: cmp r8, #0 - beq .L3394 - b .L3396 -.L3457: + beq .L3464 + b .L3466 +.L3527: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} @@ -21175,139 +21558,139 @@ 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, .L3519 - ldr r7, .L3519+4 - ldr r5, [r3, #980] - ldr r3, [r7, #220] + ldr r3, .L3589 + ldr r7, .L3589+4 + ldr r5, [r3, #984] + ldr r3, [r7, #224] cmp r3, #0 - bne .L3478 - ldr r4, .L3519+8 - ldr r1, [r4, #2436] + bne .L3548 + ldr r4, .L3589+8 + ldr r1, [r4, #2440] cmp r1, #0 - beq .L3478 - ldrb r3, [r4, #140] @ zero_extendqisi2 - cbz r3, .L3501 + beq .L3548 + ldrb r3, [r4, #144] @ zero_extendqisi2 + cbz r3, .L3571 ldrb r8, [r5, #8] @ zero_extendqisi2 add r0, r8, #-1 rsbs r8, r0, #0 adc r8, r8, r0 - b .L3480 -.L3501: + b .L3550 +.L3571: mov r8, r3 -.L3480: - ldr r0, [r4, #2440] +.L3550: + ldr r0, [r4, #2444] mov r2, r8 ldrb r3, [r5, #9] @ zero_extendqisi2 mov r9, #0 bl FlashProgPages - ldr r10, .L3519+8 + ldr r10, .L3589+8 mov fp, #36 -.L3481: - ldr r3, [r4, #2436] +.L3551: + ldr r3, [r4, #2440] cmp r9, r3 - bcs .L3499 + bcs .L3569 mul r6, fp, r9 - ldr r3, [r10, #2440] + ldr r3, [r10, #2444] adds r2, r3, r6 ldr r3, [r3, r6] adds r3, r3, #1 - beq .L3502 + beq .L3572 ldr r3, [r2, #4] cmp r8, #0 - beq .L3515 + beq .L3585 orr r3, r3, #-2147483648 -.L3515: +.L3585: ldr r0, [r2, #16] add r1, sp, #4 movs r2, #1 str r3, [sp, #4] bl log2phys - ldr r3, [r4, #2440] + ldr r3, [r4, #2444] add r6, r6, r3 ldr r3, [r6, #12] ldr r0, [r3, #12] adds r2, r0, #1 - beq .L3485 + beq .L3555 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r7, #292] + ldr r3, [r7, #296] ldrh r2, [r3, r0, lsl #1] mov r6, r0 - cbnz r2, .L3486 - ldr r0, .L3519+12 + cbnz r2, .L3556 + ldr r0, .L3589+12 mov r1, r6 bl printk -.L3486: +.L3556: mov r0, r6 bl decrement_vpc_count -.L3485: +.L3555: add r9, r9, #1 - b .L3481 -.L3517: + b .L3551 +.L3587: movw r5, #16386 -.L3498: - ldrh r3, [r7, #1178] - cbz r3, .L3499 +.L3568: + ldrh r3, [r7, #1182] + cbz r3, .L3569 movs r0, #1 mov r1, r0 bl ftl_do_gc subs r5, r5, #1 - bne .L3498 -.L3499: + bne .L3568 +.L3569: movs r3, #0 - str r3, [r4, #2436] - b .L3478 -.L3502: - ldr r10, .L3519+8 + str r3, [r4, #2440] + b .L3548 +.L3572: + ldr r10, .L3589+8 mov r9, #0 -.L3482: - ldr r3, [r4, #2436] +.L3552: + ldr r3, [r4, #2440] cmp r9, r3 - bcs .L3517 + bcs .L3587 movs r6, #36 - ldr r3, [r10, #2440] + ldr r3, [r10, #2444] mov fp, #0 mov r2, #-1 mul r6, r6, r9 str r2, [r3, r6] -.L3488: - ldr r3, [r4, #2440] +.L3558: + ldr r3, [r4, #2444] adds r2, r3, r6 ldr r3, [r3, r6] adds r3, r3, #1 - bne .L3518 + bne .L3588 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3489 - ldr r1, [r7, #292] + bne .L3559 + ldr r1, [r7, #296] ldrh r0, [r5, #4] ldrh r2, [r1, r3, lsl #1] subs r2, r2, r0 strh r2, [r1, r3, lsl #1] @ movhi - ldrh r3, [r10, #2384] + ldrh r3, [r10, #2388] strb fp, [r5, #6] strh fp, [r5, #4] @ movhi strh r3, [r5, #2] @ movhi -.L3489: +.L3559: ldrh r3, [r5, #4] - cbnz r3, .L3490 + cbnz r3, .L3560 mov r0, r5 bl allocate_new_data_superblock -.L3490: - ldr r3, [r7, #700] +.L3560: + ldr r3, [r7, #704] adds r3, r3, #1 - str r3, [r7, #700] - ldr r3, [r4, #2440] + str r3, [r7, #704] + ldr r3, [r4, #2444] add r3, r3, r6 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlGcMarkBadPhyBlk mov r0, r5 bl get_new_active_ppa - ldr r3, [r4, #2440] + ldr r3, [r4, #2444] mov r2, r8 movs r1, #1 add r3, r3, r6 @@ -21316,61 +21699,61 @@ FtlCacheWriteBack: mov r0, r3 ldrb r3, [r5, #9] @ zero_extendqisi2 bl FlashProgPages - ldr r3, [r4, #2440] + ldr r3, [r4, #2444] ldr r3, [r3, r6] adds r3, r3, #1 ittt eq moveq r3, #1 - ldreq r2, .L3519+4 - streq r3, [r2, #220] - ldr r3, [r7, #220] + ldreq r2, .L3589+4 + streq r3, [r2, #224] + ldr r3, [r7, #224] cmp r3, #0 - beq .L3488 - b .L3478 -.L3518: + beq .L3558 + b .L3548 +.L3588: ldr r3, [r2, #4] cmp r8, #0 - beq .L3516 + beq .L3586 orr r3, r3, #-2147483648 -.L3516: +.L3586: ldr r0, [r2, #16] add r1, sp, #4 movs r2, #1 str r3, [sp, #4] bl log2phys - ldr r3, [r4, #2440] + ldr r3, [r4, #2444] add r6, r6, r3 ldr r3, [r6, #12] ldr r0, [r3, #12] adds r3, r0, #1 - beq .L3495 + beq .L3565 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r7, #292] + ldr r3, [r7, #296] ldrh r2, [r3, r0, lsl #1] mov r6, r0 - cbnz r2, .L3496 - ldr r0, .L3519+12 + cbnz r2, .L3566 + ldr r0, .L3589+12 mov r1, r6 bl printk -.L3496: +.L3566: mov r0, r6 bl decrement_vpc_count -.L3495: +.L3565: add r9, r9, #1 - b .L3482 -.L3478: + b .L3552 +.L3548: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3520: +.L3590: .align 2 -.L3519: +.L3589: .word .LANCHOR5 .word .LANCHOR2 .word .LANCHOR0 - .word .LC154 + .word .LC159 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 1 @@ -21382,26 +21765,26 @@ FtlSysFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, lr} - .save {r3, lr} - ldr r3, .L3526 - ldr r3, [r3, #220] - cbnz r3, .L3522 - ldr r3, .L3526+4 - ldr r3, [r3, #504] - adds r3, r3, #1 - beq .L3522 + ldr r3, .L3593 + push {r4, lr} + .save {r4, lr} + ldr r3, [r3, #224] + cbnz r3, .L3592 + ldr r3, .L3593+4 + ldr r4, [r3, #504] + cmp r4, #1 + bne .L3592 bl FtlCacheWriteBack bl l2p_flush - movs r0, #1 + mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3522: +.L3592: movs r0, #0 - pop {r3, pc} -.L3527: + pop {r4, pc} +.L3594: .align 2 -.L3526: +.L3593: .word .LANCHOR2 .word .LANCHOR1 .fnend @@ -21417,17 +21800,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L3530 + ldr r3, .L3597 ldr r3, [r3, #504] cmp r3, #1 - bne .L3529 + bne .L3596 bl FtlSysFlush -.L3529: +.L3596: movs r0, #0 pop {r3, pc} -.L3531: +.L3598: .align 2 -.L3530: +.L3597: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -21460,14 +21843,14 @@ rk_ftl_de_init: push {r3, lr} .save {r3, lr} movs r1, #0 - ldr r0, .L3534 + ldr r0, .L3601 bl printk pop {r3, lr} b ftl_deinit -.L3535: +.L3602: .align 2 -.L3534: - .word .LC155 +.L3601: + .word .LC160 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init .align 1 @@ -21508,99 +21891,98 @@ ftl_discard: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 - adds r2, r0, r1 - ldr r7, .L3556 mov r6, r0 - mov r5, r1 - ldr r3, [r7, #2424] - cmp r2, r3 - bhi .L3545 - ldr r3, .L3556+4 - ldr r0, [r3, #504] - adds r3, r0, #1 - beq .L3539 + ldr r7, .L3624 + mov r4, r1 + ldr r5, [r7, #2428] + cmp r0, r5 + bcs .L3614 + cmp r1, r5 + bhi .L3614 + adds r3, r0, r1 + cmp r3, r5 + bhi .L3614 cmp r1, #31 - bls .L3548 - ldr r3, .L3556+8 - ldr r2, [r3, #220] + bls .L3616 + ldr r3, .L3624+4 + ldr r2, [r3, #224] mov r8, r3 cmp r2, #0 - bne .L3548 + bne .L3616 bl FtlCacheWriteBack - ldrh r4, [r7, #2390] + ldrh r5, [r7, #2394] mov r0, r6 - mov r1, r4 + mov r1, r5 bl __aeabi_uidiv - smulbb r3, r0, r4 + smulbb r3, r0, r5 mov r9, r0 subs r6, r6, r3 uxth r6, r6 - cbz r6, .L3540 - subs r4, r4, r6 + cbz r6, .L3607 + subs r5, r5, r6 add r9, r0, #1 - cmp r4, r5 + cmp r5, r4 it cs - movcs r4, r5 - uxth r4, r4 - subs r5, r5, r4 -.L3540: - ldr r4, .L3556+12 + movcs r5, r4 + uxth r5, r5 + subs r4, r4, r5 +.L3607: + ldr r5, .L3624+8 mov r3, #-1 str r3, [sp, #4] -.L3541: - ldrh r3, [r7, #2390] - cmp r5, r3 - bcc .L3555 +.L3608: + ldrh r3, [r7, #2394] + cmp r4, r3 + bcc .L3623 mov r0, r9 mov r1, sp movs r2, #0 bl log2phys ldr r3, [sp] adds r3, r3, #1 - beq .L3542 - ldr r3, [r4, #984] + beq .L3609 + ldr r3, [r5, #988] add r1, sp, #4 movs r2, #1 mov r0, r9 adds r3, r3, #1 - str r3, [r4, #984] - ldr r3, [r8, #476] + str r3, [r5, #988] + ldr r3, [r8, #480] adds r3, r3, #1 - str r3, [r8, #476] + str r3, [r8, #480] bl log2phys ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3542: - ldrh r3, [r7, #2390] +.L3609: + ldrh r3, [r7, #2394] add r9, r9, #1 - subs r5, r5, r3 - b .L3541 -.L3555: - ldr r3, .L3556+12 - ldr r2, [r3, #984] + subs r4, r4, r3 + b .L3608 +.L3623: + ldr r3, .L3624+8 + ldr r2, [r3, #988] cmp r2, #32 - bls .L3548 + bls .L3616 movs r2, #0 - str r2, [r3, #984] + str r2, [r3, #988] bl l2p_flush bl FtlVpcTblFlush - b .L3548 -.L3545: + b .L3616 +.L3614: mov r0, #-1 - b .L3539 -.L3548: + b .L3606 +.L3616: movs r0, #0 -.L3539: +.L3606: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3557: +.L3625: .align 2 -.L3556: +.L3624: .word .LANCHOR0 - .word .LANCHOR1 .word .LANCHOR2 .word .LANCHOR5 .fnend @@ -21630,113 +22012,116 @@ ftl_read: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r3 - ldr r3, .L3602 + ldr r3, .L3672 .pad #84 sub sp, sp, #84 - mov r7, r1 - str r2, [sp, #44] + mov r5, r1 + str r2, [sp, #36] ldr r3, [r3, #504] - adds r4, r3, #1 - beq .L3582 + cmp r3, #1 + bne .L3653 cmp r0, #16 - bne .L3561 + bne .L3629 add r0, r1, #256 mov r1, r2 mov r2, r8 bl FtlVendorPartRead - b .L3560 -.L3561: - ldr r3, [sp, #44] - adds r3, r1, r3 - str r3, [sp, #36] - ldr r3, .L3602+4 + b .L3628 +.L3629: + ldr r2, .L3672+4 + ldr r3, [r2, #2428] + cmp r1, r3 + bcs .L3653 ldr r1, [sp, #36] - ldr r2, [r3, #2424] - cmp r1, r2 - bhi .L3583 - ldrh r4, [r3, #2390] - mov r0, r7 + cmp r1, r3 + bhi .L3653 + adds r1, r5, r1 + str r1, [sp, #40] + cmp r1, r3 + bhi .L3653 + ldrh r4, [r2, #2394] + mov r0, r5 mov r1, r4 bl __aeabi_uidiv mov r1, r4 - ldr r3, [sp, #36] + ldr r3, [sp, #40] str r0, [sp, #28] subs r0, r3, #1 bl __aeabi_uidiv ldr r3, [sp, #28] - ldr r1, [sp, #44] + ldr r1, [sp, #36] rsb r3, r3, #1 str r0, [sp, #32] add r3, r3, r0 str r3, [sp, #24] - ldr r3, .L3602+8 + ldr r3, .L3672+8 ldr r0, [sp, #28] - ldr r2, [r3, #500] + ldr r2, [r3, #504] add r2, r2, r1 ldr r1, [sp, #24] - str r2, [r3, #500] - ldr r2, [r3, #472] + str r2, [r3, #504] + ldr r2, [r3, #476] add r2, r2, r1 ldr r1, [sp, #32] - str r2, [r3, #472] + str r2, [r3, #476] bl FtlCacheMetchLpa - cbz r0, .L3562 + cbz r0, .L3630 bl FtlCacheWriteBack -.L3562: +.L3630: mov r10, #0 - ldr r5, [sp, #28] - ldr r4, .L3602+8 - ldr r9, .L3602+4 - mov r6, r10 + ldr r6, [sp, #28] + ldr r4, .L3672+8 + ldr r9, .L3672+4 + mov r7, r10 str r10, [sp, #48] str r10, [sp, #52] -.L3563: +.L3631: ldr r3, [sp, #24] cmp r3, #0 - beq .L3601 + beq .L3671 add r1, sp, #76 - mov r0, r5 + mov r0, r6 movs r2, #0 bl log2phys ldr r3, [sp, #76] adds r1, r3, #1 - bne .L3598 + bne .L3668 mov fp, #0 -.L3564: - ldrh r0, [r9, #2390] +.L3632: + ldrh r0, [r9, #2394] cmp fp, r0 - bcs .L3568 - mla r0, r0, r5, fp - cmp r0, r7 - bcc .L3566 - ldr r3, [sp, #36] + bcs .L3636 + mla r0, r0, r6, fp + cmp r0, r5 + bcc .L3634 + ldr r3, [sp, #40] cmp r0, r3 - bcs .L3566 - subs r0, r0, r7 + bcs .L3634 + subs r0, r0, r5 movs r1, #0 mov r2, #512 add r0, r8, r0, lsl #9 bl ftl_memset -.L3566: +.L3634: add fp, fp, #1 - b .L3564 -.L3598: - ldr r2, [r4, #3300] + b .L3632 +.L3668: + ldr r2, [r4, #3304] mov fp, #36 - mla fp, fp, r6, r2 + mla fp, fp, r7, r2 str r3, [fp, #4] ldr r3, [sp, #28] - cmp r5, r3 - bne .L3569 - ldrh ip, [r9, #2390] - mov r0, r7 - ldr r3, [r4, #3328] + cmp r6, r3 + bne .L3637 + ldrh ip, [r9, #2394] + mov r0, r5 + ldr r3, [r4, #3332] mov r1, ip - str ip, [sp, #40] + str ip, [sp, #44] str r3, [fp, #8] bl __aeabi_uidivmod - ldr ip, [sp, #40] - ldr r2, [sp, #44] + ldr ip, [sp, #44] + ldr r2, [sp, #36] rsb r3, r1, ip str r1, [sp, #56] cmp r3, r2 @@ -21744,52 +22129,52 @@ ftl_read: movcs r3, r2 cmp r3, ip str r3, [sp, #48] - bne .L3570 + bne .L3638 str r8, [fp, #8] - b .L3570 -.L3569: + b .L3638 +.L3637: ldr r3, [sp, #32] - cmp r5, r3 - bne .L3571 - ldr r3, [r4, #3332] - ldrh r2, [r9, #2390] - ldr r1, [sp, #36] + cmp r6, r3 + bne .L3639 + ldr r3, [r4, #3336] + ldrh r2, [r9, #2394] + ldr r1, [sp, #40] str r3, [fp, #8] - mul r3, r2, r5 + mul r3, r2, r6 rsb r10, r3, r1 cmp r10, r2 - bne .L3570 - b .L3599 -.L3571: - ldrh r3, [r9, #2390] - muls r3, r5, r3 -.L3599: - subs r3, r3, r7 + bne .L3638 + b .L3669 +.L3639: + ldrh r3, [r9, #2394] + muls r3, r6, r3 +.L3669: + subs r3, r3, r5 add r3, r8, r3, lsl #9 str r3, [fp, #8] -.L3570: - ldrh r3, [r9, #2396] - ldr r2, [r4, #3340] - str r5, [fp, #16] - muls r3, r6, r3 - adds r6, r6, #1 +.L3638: + ldrh r3, [r9, #2400] + ldr r2, [r4, #3344] + str r6, [fp, #16] + muls r3, r7, r3 + adds r7, r7, #1 bic r3, r3, #3 add r3, r3, r2 str r3, [fp, #12] -.L3568: +.L3636: ldr r3, [sp, #24] - adds r5, r5, #1 + adds r6, r6, #1 subs r3, r3, #1 str r3, [sp, #24] - beq .L3572 - ldrh r3, [r9, #2316] - cmp r6, r3, lsl #3 - bne .L3563 -.L3572: - cmp r6, #0 - beq .L3563 - ldr r0, [r4, #3300] - mov r1, r6 + beq .L3640 + ldrh r3, [r9, #2320] + cmp r7, r3, lsl #3 + bne .L3631 +.L3640: + cmp r7, #0 + beq .L3631 + ldr r0, [r4, #3304] + mov r1, r7 movs r2, #0 bl FlashReadPages ldr r3, [sp, #56] @@ -21801,61 +22186,61 @@ ftl_read: lsl r3, r10, #9 str r3, [sp, #68] movs r3, #0 - str r3, [sp, #40] -.L3579: - ldr r3, [sp, #40] + str r3, [sp, #44] +.L3647: + ldr r3, [sp, #44] mov ip, #36 ldr r1, [sp, #28] mul fp, ip, r3 - ldr r3, [r4, #3300] + ldr r3, [r4, #3304] add r3, r3, fp ldr r2, [r3, #16] cmp r2, r1 - bne .L3574 + bne .L3642 ldr r1, [r3, #8] - ldr r3, [r4, #3328] + ldr r3, [r4, #3332] cmp r1, r3 - bne .L3575 + bne .L3643 ldr r3, [sp, #60] mov r0, r8 ldr r2, [sp, #64] add r1, r1, r3 - b .L3600 -.L3574: + b .L3670 +.L3642: ldr r1, [sp, #32] cmp r2, r1 - bne .L3575 + bne .L3643 ldr r1, [r3, #8] - ldr r3, [r4, #3332] + ldr r3, [r4, #3336] cmp r1, r3 - bne .L3575 - ldrh r0, [r9, #2390] + bne .L3643 + ldrh r0, [r9, #2394] ldr r3, [sp, #32] ldr r2, [sp, #68] muls r0, r3, r0 - subs r0, r0, r7 + subs r0, r0, r5 add r0, r8, r0, lsl #9 -.L3600: +.L3670: bl ftl_memcpy -.L3575: - ldr r2, [r4, #3300] +.L3643: + ldr r2, [r4, #3304] add r3, r2, fp ldr r1, [r2, fp] adds r2, r1, #1 itttt eq streq r1, [sp, #52] - ldreq r2, [r4, #676] + ldreq r2, [r4, #680] addeq r2, r2, #1 - streq r2, [r4, #676] + streq r2, [r4, #680] ldr r2, [r3, #12] ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L3577 - ldr r2, [r4, #676] - ldr r0, .L3602+12 + beq .L3645 + ldr r2, [r4, #680] + ldr r0, .L3672+12 adds r2, r2, #1 - str r2, [r4, #676] + str r2, [r4, #680] ldr lr, [r3, #12] ldr r2, [r3, #8] ldr r1, [lr, #4] @@ -21872,50 +22257,47 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [lr] bl printk -.L3577: - ldr r3, [r4, #3300] +.L3645: + ldr r3, [r4, #3304] add r2, r3, fp ldr r3, [r3, fp] cmp r3, #256 - bne .L3578 + bne .L3646 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3578: - ldr r3, [sp, #40] +.L3646: + ldr r3, [sp, #44] adds r3, r3, #1 - str r3, [sp, #40] - cmp r3, r6 - bne .L3579 - movs r6, #0 - b .L3563 -.L3601: - ldr r3, .L3602+8 - ldrh r3, [r3, #1178] - cbz r3, .L3581 + str r3, [sp, #44] + cmp r3, r7 + bne .L3647 + movs r7, #0 + b .L3631 +.L3671: + ldr r3, .L3672+8 + ldrh r3, [r3, #1182] + cbz r3, .L3649 ldr r0, [sp, #24] movs r1, #1 bl ftl_do_gc -.L3581: +.L3649: ldr r0, [sp, #52] - b .L3560 -.L3582: - mov r0, r3 - b .L3560 -.L3583: + b .L3628 +.L3653: mov r0, #-1 -.L3560: +.L3628: add sp, sp, #84 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3603: +.L3673: .align 2 -.L3602: +.L3672: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LC144 + .word .LC148 .fnend .size ftl_read, .-ftl_read .align 1 @@ -21954,25 +22336,25 @@ FlashBootVendorRead: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L3608 + ldr r3, .L3678 ldr r3, [r3, #504] cmp r3, #1 - bne .L3607 + bne .L3677 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_read mov r4, r0 - b .L3606 -.L3607: + b .L3676 +.L3677: mov r4, #-1 -.L3606: +.L3676: bl rknand_device_unlock mov r0, r4 pop {r4, r5, r6, pc} -.L3609: +.L3679: .align 2 -.L3608: +.L3678: .word .LANCHOR1 .fnend .size FlashBootVendorRead, .-FlashBootVendorRead @@ -22049,96 +22431,96 @@ FtlInit: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r3, #-1 - ldr r2, .L3629 - ldr r7, .L3629+4 - ldr r4, .L3629+8 - ldr r6, .L3629+12 - ldr r1, .L3629+16 - ldr r0, .L3629+20 + ldr r2, .L3699 + ldr r7, .L3699+4 + ldr r4, .L3699+8 + ldr r6, .L3699+12 + ldr r1, .L3699+16 + ldr r0, .L3699+20 str r3, [r7, #504] movs r3, #0 - str r3, [r2, #988] - str r3, [r4, #220] + str r3, [r2, #992] + str r3, [r4, #224] bl printk - add r0, r6, #112 + add r0, r6, #116 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh r0, [r6, #2320] + ldrh r0, [r6, #2324] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L3614 - ldr r0, .L3629+24 - b .L3628 -.L3614: + cbz r0, .L3684 + ldr r0, .L3699+24 + b .L3698 +.L3684: bl FtlSysBlkInit mov r5, r0 - cbz r0, .L3616 - ldr r0, .L3629+28 -.L3628: - ldr r1, .L3629+32 + cbz r0, .L3686 + ldr r0, .L3699+28 +.L3698: + ldr r1, .L3699+32 bl printk - b .L3615 -.L3616: + b .L3685 +.L3686: movs r1, #1 str r1, [r7, #504] bl ftl_do_gc - ldrh r7, [r4, #308] + ldrh r7, [r4, #312] cmp r7, #15 - bhi .L3617 + bhi .L3687 mov r8, r4 movw r6, #65535 -.L3620: - ldrh r3, [r4, #552] +.L3690: + ldrh r3, [r4, #556] cmp r3, r6 - bne .L3618 - ldrh r3, [r8, #1170] + bne .L3688 + ldrh r3, [r8, #1174] cmp r3, r6 - bne .L3618 + bne .L3688 and r0, r5, #63 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3618: +.L3688: movs r0, #1 mov r1, r0 bl ftl_do_gc movs r0, #0 movs r1, #1 bl ftl_do_gc - ldrh r2, [r4, #308] + ldrh r2, [r4, #312] adds r3, r7, #2 cmp r2, r3 - bhi .L3615 + bhi .L3685 adds r5, r5, #1 cmp r5, #4096 - bne .L3620 - b .L3615 -.L3617: - ldrb r3, [r6, #140] @ zero_extendqisi2 - cbz r3, .L3615 + bne .L3690 + b .L3685 +.L3687: + ldrb r3, [r6, #144] @ zero_extendqisi2 + cbz r3, .L3685 movs r4, #128 -.L3622: +.L3692: movs r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L3622 -.L3615: + bne .L3692 +.L3685: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L3630: +.L3700: .align 2 -.L3629: +.L3699: .word .LANCHOR5 .word .LANCHOR1 .word .LANCHOR2 .word .LANCHOR0 .word .LC77 .word .LC76 - .word .LC156 - .word .LC157 - .word .LANCHOR3+108 + .word .LC161 + .word .LC162 + .word .LANCHOR3+240 .fnend .size FtlInit, .-FtlInit .align 1 @@ -22154,44 +22536,44 @@ rk_ftl_init: .save {r4, r5, r6, lr} mov r0, #2048 bl ftl_malloc - ldr r5, .L3635 - ldr r4, .L3635+4 + ldr r5, .L3705 + ldr r4, .L3705+4 movs r6, #0 - add r1, r5, #996 - str r6, [r5, #996] - str r6, [r4, #1176] - str r0, [r5, #992] - add r0, r4, #1176 + add r1, r5, #1000 + str r6, [r5, #1000] + str r6, [r4, #1180] + str r0, [r5, #996] + addw r0, r4, #1180 bl rknand_get_reg_addr - ldr r3, [r4, #1176] - cbz r3, .L3634 + ldr r3, [r4, #1180] + cbz r3, .L3704 bl rk_nandc_irq_init mov r1, r6 mov r2, r6 mov r3, #2048 - ldr r0, [r5, #992] + ldr r0, [r5, #996] bl FlashSramLoadStore bl rknand_flash_cs_init - ldr r0, [r4, #1176] + ldr r0, [r4, #1180] bl FlashInit mov r4, r0 - cbnz r0, .L3633 + cbnz r0, .L3703 bl FtlInit -.L3633: +.L3703: mov r1, r4 - ldr r0, .L3635+8 + ldr r0, .L3705+8 bl printk mov r0, r4 pop {r4, r5, r6, pc} -.L3634: +.L3704: mov r0, #-1 pop {r4, r5, r6, pc} -.L3636: +.L3706: .align 2 -.L3635: +.L3705: .word .LANCHOR5 .word .LANCHOR4 - .word .LC158 + .word .LC163 .fnend .size rk_ftl_init, .-rk_ftl_init .align 1 @@ -22203,70 +22585,70 @@ ftl_fix_nand_power_lost_error: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3652 + ldr r3, .L3722 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, #140] @ zero_extendqisi2 + ldrb r2, [r3, #144] @ zero_extendqisi2 mov r8, r3 cmp r2, #0 - beq .L3637 - ldr r4, .L3652+4 + beq .L3707 + ldr r4, .L3722+4 movw r7, #4097 - ldr r6, .L3652+8 - ldr r0, .L3652+12 - ldr r3, [r4, #292] - ldrh r5, [r6, #836] + ldr r6, .L3722+8 + ldr r0, .L3722+12 + ldr r3, [r4, #296] + ldrh r5, [r6, #840] mov r1, r5 ldrh r2, [r3, r5, lsl #1] bl printk - ldrh r0, [r4, #312] + ldrh r0, [r4, #316] bl FtlGcRefreshOpenBlock - ldrh r0, [r4, #360] + ldrh r0, [r4, #364] bl FtlGcRefreshOpenBlock - add r0, r4, #312 + add r0, r4, #316 bl allocate_new_data_superblock - add r0, r4, #360 + add r0, r4, #364 bl allocate_new_data_superblock lsl r9, r5, #1 -.L3639: +.L3709: subs r7, r7, #1 - beq .L3643 + beq .L3713 movs r0, #1 mov r1, r0 bl ftl_do_gc - ldr r3, [r4, #292] + ldr r3, [r4, #296] ldrh r3, [r3, r9] cmp r3, #0 - bne .L3639 -.L3643: - ldr r3, [r4, #292] + bne .L3709 +.L3713: + ldr r3, [r4, #296] mov r1, r5 - ldr r0, .L3652+12 + ldr r0, .L3722+12 ldrh r2, [r3, r5, lsl #1] bl printk - ldr r3, [r4, #292] + ldr r3, [r4, #296] ldrh r7, [r3, r5, lsl #1] - cbnz r7, .L3641 + cbnz r7, .L3711 add r0, sp, #48 mov r10, #36 movw r9, #65535 strh r5, [r0, #-48]! @ movhi bl make_superblock - ldr r3, .L3652+4 - ldrh ip, [r8, #2316] - ldr r8, [r3, #224] + ldr r3, .L3722+4 + ldrh ip, [r8, #2320] + ldr r8, [r3, #228] mov r3, r7 mov lr, r3 add r0, sp, #14 -.L3644: +.L3714: uxth r2, r3 cmp r2, ip - bcs .L3651 + bcs .L3721 ldrh r2, [r0, #2]! cmp r2, r9 - beq .L3645 + beq .L3715 mla r1, r10, r7, r8 adds r7, r7, #1 lsls r2, r2, #10 @@ -22274,38 +22656,38 @@ ftl_fix_nand_power_lost_error: str r2, [r1, #4] str lr, [r1, #8] str lr, [r1, #12] -.L3645: +.L3715: adds r3, r3, #1 - b .L3644 -.L3651: - ldr r3, [r4, #292] + b .L3714 +.L3721: + ldr r3, [r4, #296] mov r1, r5 - ldr r0, .L3652+16 + ldr r0, .L3722+16 ldrh r2, [r3, r5, lsl #1] bl printk movs r1, #0 mov r2, r7 - ldr r0, [r4, #224] + ldr r0, [r4, #228] bl FlashEraseBlocks - ldr r0, [r4, #224] + ldr r0, [r4, #228] movs r1, #1 mov r2, r7 bl FlashEraseBlocks -.L3641: +.L3711: movw r3, #65535 - strh r3, [r6, #836] @ movhi -.L3637: + strh r3, [r6, #840] @ movhi +.L3707: add sp, sp, #48 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3653: +.L3723: .align 2 -.L3652: +.L3722: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR5 - .word .LC159 - .word .LC160 + .word .LC164 + .word .LC165 .fnend .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .align 1 @@ -22334,170 +22716,172 @@ ftl_write: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #92 sub sp, sp, #92 - ldr r9, .L3728+16 + ldr r9, .L3800+16 mov r8, r1 str r3, [sp, #12] - str r2, [sp, #8] - ldr r3, [r9, #220] + mov fp, r2 + ldr r3, [r9, #224] cmp r3, #0 - bne .L3697 - ldr r2, .L3728 + bne .L3767 + ldr r2, .L3800 ldr r2, [r2, #504] - adds r2, r2, #1 - beq .L3698 + cmp r2, #1 + bne .L3768 cmp r0, #16 - bne .L3657 + bne .L3727 add r0, r1, #256 ldr r2, [sp, #12] - ldr r1, [sp, #8] + mov r1, fp bl FtlVendorPartWrite - b .L3656 -.L3657: - ldr r7, .L3728+4 - ldr r3, [sp, #8] - adds r6, r1, r3 - ldr r3, [r7, #2424] + b .L3726 +.L3727: + ldr r7, .L3800+4 + ldr r3, [r7, #2428] + cmp r1, r3 + bcs .L3771 + cmp fp, r3 + bhi .L3771 + add r6, r1, fp cmp r6, r3 - bhi .L3699 - ldrh r4, [r7, #2390] + bhi .L3771 + ldrh r4, [r7, #2394] mov r3, #2048 - ldr r5, .L3728+8 + ldr r5, .L3800+8 mov r0, r1 mov r1, r4 - str r3, [r5, #1000] + str r3, [r5, #1004] bl __aeabi_uidiv mov r1, r4 - mov fp, r0 + str r0, [sp, #4] subs r0, r6, #1 bl __aeabi_uidiv - rsb r6, fp, r0 - str r0, [sp, #20] - adds r3, r6, #1 - str r3, [sp, #4] + cmp fp, r4, lsl #1 ldr r2, [sp, #4] - ldr r3, [r9, #480] - add r3, r3, r2 + str r0, [sp, #20] + sub r6, r0, r2 + add r3, r6, #1 + str r3, [sp, #8] ldr r2, [sp, #8] - str r3, [r9, #480] - ldr r3, [r9, #496] - cmp r2, r4, lsl #1 + ldr r3, [r9, #484] add r3, r3, r2 - str r3, [r9, #496] - mov r3, r2 - ldr r2, [r7, #2436] + ldr r2, [r7, #2440] + str r3, [r9, #484] + ldr r3, [r9, #500] + add r3, r3, fp + str r3, [r9, #500] ite cs movcs r3, #1 movcc r3, #0 str r3, [sp, #28] cmp r2, #0 - beq .L3659 + beq .L3729 movs r3, #36 - ldr r7, [r7, #2440] + ldr r7, [r7, #2444] muls r3, r2, r3 + ldr r2, [sp, #4] subs r3, r3, #36 add r7, r7, r3 ldr r3, [r7, #16] - cmp fp, r3 - bne .L3660 - ldr r3, [r9, #484] + cmp r2, r3 + bne .L3730 + ldr r3, [r9, #488] mov r1, r4 mov r0, r8 adds r3, r3, #1 - str r3, [r9, #484] - ldr r3, [r5, #1004] + str r3, [r9, #488] + ldr r3, [r5, #1008] adds r3, r3, #1 - str r3, [r5, #1004] + str r3, [r5, #1008] bl __aeabi_uidivmod ldr r0, [r7, #8] - ldr r3, [sp, #8] subs r4, r4, r1 add r0, r0, r1, lsl #9 + cmp r4, fp ldr r1, [sp, #12] - cmp r4, r3 it cs - movcs r4, r3 + movcs r4, fp lsl r9, r4, #9 mov r2, r9 bl ftl_memcpy - cbnz r6, .L3661 - ldr r3, [r5, #1004] + cbnz r6, .L3731 + ldr r3, [r5, #1008] cmp r3, #2 - ble .L3697 -.L3661: - ldr r3, [sp, #8] - add r8, r8, r4 - add fp, fp, #1 - str r6, [sp, #4] - subs r3, r3, r4 - str r3, [sp, #8] + ble .L3767 +.L3731: ldr r3, [sp, #12] + rsb fp, r4, fp + add r8, r8, r4 + str r6, [sp, #8] add r3, r3, r9 str r3, [sp, #12] -.L3660: + ldr r3, [sp, #4] + adds r3, r3, #1 + str r3, [sp, #4] +.L3730: movs r3, #0 - str r3, [r5, #1004] -.L3659: - mov r0, fp + str r3, [r5, #1008] +.L3729: + ldr r0, [sp, #4] ldr r1, [sp, #20] bl FtlCacheMetchLpa - cbz r0, .L3662 + cbz r0, .L3732 bl FtlCacheWriteBack -.L3662: - ldr r4, .L3728+4 - mov r6, fp - ldr r7, .L3728+12 +.L3732: + ldr r4, .L3800+4 + ldr r7, .L3800+12 + ldr r6, [sp, #4] mov r10, r4 - str r7, [r5, #980] -.L3663: - ldr r3, [sp, #4] - ldr r5, .L3728+16 + str r7, [r5, #984] +.L3733: + ldr r3, [sp, #8] + ldr r5, .L3800+16 cmp r3, #0 - beq .L3727 + beq .L3799 ldrh r3, [r7, #4] - cbnz r3, .L3664 - add r2, r5, #312 - ldr r9, .L3728 + cbnz r3, .L3734 + add r2, r5, #316 + ldr r9, .L3800 cmp r7, r2 - bne .L3665 - ldrh r7, [r5, #364] - cbnz r7, .L3666 - add r0, r5, #360 + bne .L3735 + ldrh r7, [r5, #368] + cbnz r7, .L3736 + add r0, r5, #364 bl allocate_new_data_superblock - str r7, [r9, #3356] -.L3666: - ldr r0, .L3728+12 + str r7, [r9, #3452] +.L3736: + ldr r0, .L3800+12 bl allocate_new_data_superblock - ldr r3, [r9, #3356] - cbnz r3, .L3700 -.L3668: - ldr r7, .L3728+12 - b .L3667 -.L3665: - str r3, [r9, #3356] - ldrh r3, [r5, #316] + ldr r3, [r9, #3452] + cbnz r3, .L3772 +.L3738: + ldr r7, .L3800+12 + b .L3737 +.L3735: + str r3, [r9, #3452] + ldrh r3, [r5, #320] cmp r3, #0 - bne .L3668 + bne .L3738 mov r0, r7 bl allocate_new_data_superblock - b .L3667 -.L3700: - ldr r7, .L3728+20 -.L3667: + b .L3737 +.L3772: + ldr r7, .L3800+20 +.L3737: ldrh r3, [r7, #4] - cbnz r3, .L3669 + cbnz r3, .L3739 mov r0, r7 bl allocate_new_data_superblock -.L3669: - ldr r3, .L3728+8 - str r7, [r3, #980] -.L3664: - ldr r2, [r5, #3296] - ldr r3, [r4, #2436] +.L3739: + ldr r3, .L3800+8 + str r7, [r3, #984] +.L3734: + ldr r2, [r5, #3300] + ldr r3, [r4, #2440] ldrh ip, [r7, #4] subs r3, r2, r3 - ldr r2, [sp, #4] + ldr r2, [sp, #8] cmp ip, r3 - ldr r9, .L3728+16 + ldr r9, .L3800+16 it cs movcs ip, r3 cmp ip, r2 @@ -22507,28 +22891,27 @@ ftl_write: str r3, [sp, #44] movs r3, #0 str r3, [sp, #24] -.L3670: +.L3740: ldr r3, [sp, #24] ldr r2, [sp, #44] cmp r3, r2 - beq .L3671 + beq .L3741 ldrh r3, [r7, #4] cmp r3, #0 - beq .L3671 + beq .L3741 ldr r3, [sp, #28] - cbz r3, .L3672 + cbz r3, .L3742 ldr r3, [sp, #20] cmp r6, r3 - bne .L3672 + bne .L3742 ldr r3, [sp, #24] - cbz r3, .L3672 - ldr r3, [sp, #8] - ldrh r2, [r4, #2390] - add r3, r8, r3 + cbz r3, .L3742 + ldrh r2, [r4, #2394] + add r3, r8, fp mls r3, r2, r6, r3 cmp r3, r2 - bne .L3671 -.L3672: + bne .L3741 +.L3742: add r1, sp, #48 movs r2, #0 mov r0, r6 @@ -22536,62 +22919,62 @@ ftl_write: bl log2phys mov r0, r7 bl get_new_active_ppa - ldr r3, [r4, #2436] - ldr r1, [r4, #2440] - ldrh r2, [r4, #2396] + ldr r3, [r4, #2440] + ldr r1, [r4, #2444] + ldrh r2, [r4, #2400] 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, #3344] + ldr r0, [r9, #3348] mov lr, r0 str r0, [sp, #40] ldr r0, [sp, #36] add r0, lr, r0, lsl #2 - ldrh lr, [r4, #2394] + ldrh lr, [r4, #2398] str r0, [sp, #16] str r0, [r1, #12] mul r3, r3, lr - ldr r0, [r9, #3324] + ldr r0, [r9, #3328] bic r3, r3, #3 add r3, r3, r0 ldr r0, [sp, #16] str r3, [r1, #8] movs r1, #0 bl ftl_memset - cmp r6, fp - beq .L3673 + ldr r3, [sp, #4] + cmp r6, r3 + beq .L3743 ldr r3, [sp, #20] cmp r6, r3 - bne .L3724 - ldr r3, [sp, #8] - add r5, r8, r3 - ldrh r3, [r4, #2390] + bne .L3796 + ldrh r3, [r4, #2394] + add r5, r8, fp smulbb r3, r3, r6 subs r5, r5, r3 movs r3, #0 str r3, [sp, #32] uxth r5, r5 - b .L3676 -.L3673: - ldrh r5, [r4, #2390] + b .L3746 +.L3743: + ldrh r5, [r4, #2394] mov r0, r8 mov r1, r5 bl __aeabi_uidivmod - ldr r3, [sp, #8] subs r5, r5, r1 str r1, [sp, #32] - cmp r5, r3 + cmp r5, fp it cs - movcs r5, r3 -.L3676: - ldrh r3, [r4, #2390] + movcs r5, fp +.L3746: + ldrh r3, [r4, #2394] cmp r5, r3 - bne .L3677 - cmp r6, fp + bne .L3747 + ldr r3, [sp, #4] mov lr, #36 + cmp r6, r3 ittet ne mulne r1, r6, r5 ldrne r3, [sp, #12] @@ -22600,28 +22983,28 @@ ftl_write: it ne addne r1, r3, r1, lsl #9 ldr r3, [sp, #28] - cbz r3, .L3679 - ldr r2, [r10, #2436] - ldr r5, [r10, #2440] + cbz r3, .L3749 + ldr r2, [r10, #2440] + ldr r5, [r10, #2444] mla r2, lr, r2, r5 str r1, [r2, #8] - b .L3680 -.L3679: - ldr r0, [r10, #2440] - ldr r3, [r10, #2436] - ldrh r2, [r10, #2394] + b .L3750 +.L3749: + ldr r0, [r10, #2444] + ldr r3, [r10, #2440] + ldrh r2, [r10, #2398] mla r3, lr, r3, r0 ldr r0, [r3, #8] - b .L3725 -.L3677: + b .L3797 +.L3747: ldr r2, [sp, #48] movs r3, #36 adds r1, r2, #1 - beq .L3681 - ldr r1, [r4, #2440] + beq .L3751 + ldr r1, [r4, #2444] add r0, sp, #52 str r2, [sp, #56] - ldr r2, [r4, #2436] + ldr r2, [r4, #2440] str r6, [sp, #68] mla r3, r3, r2, r1 movs r1, #1 @@ -22633,106 +23016,107 @@ ftl_write: bl FlashReadPages ldr r3, [sp, #52] adds r3, r3, #1 - bne .L3682 - ldr r3, [r9, #676] + bne .L3752 + ldr r3, [r9, #680] adds r3, r3, #1 - str r3, [r9, #676] - b .L3684 -.L3729: + str r3, [r9, #680] + b .L3754 +.L3801: .align 2 -.L3728: +.L3800: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR5 - .word .LANCHOR2+312 + .word .LANCHOR2+316 .word .LANCHOR2 - .word .LANCHOR2+360 -.L3682: + .word .LANCHOR2+364 +.L3752: ldr r3, [sp, #16] ldr r3, [r3, #8] cmp r3, r6 - beq .L3684 - ldr r3, [r9, #676] + beq .L3754 + ldr r3, [r9, #680] mov r2, r6 - ldr r0, .L3730 + ldr r0, .L3802 adds r3, r3, #1 - str r3, [r9, #676] + str r3, [r9, #680] ldr r3, [sp, #16] ldr r1, [r3, #8] bl printk - b .L3684 -.L3681: - ldr r1, [r4, #2440] - ldr r2, [r4, #2436] + b .L3754 +.L3751: + ldr r1, [r4, #2444] + ldr r2, [r4, #2440] mla r2, r3, r2, r1 movs r1, #0 ldr r0, [r2, #8] - ldrh r2, [r4, #2394] + ldrh r2, [r4, #2398] bl ftl_memset -.L3684: - cmp r6, fp +.L3754: + ldr r3, [sp, #4] mov lr, #36 - lsl r2, r5, #9 - bne .L3685 - ldr r1, [r4, #2436] - ldr r5, [r4, #2440] + lsls r2, r5, #9 + cmp r6, r3 + bne .L3755 + ldr r1, [r4, #2440] + ldr r5, [r4, #2444] ldr r3, [sp, #32] mla r1, lr, r1, r5 ldr r0, [r1, #8] ldr r1, [sp, #12] add r0, r0, r3, lsl #9 - b .L3725 -.L3685: - ldr r0, [r4, #2440] - ldr r3, [r4, #2436] - ldrh r1, [r4, #2390] + b .L3797 +.L3755: + ldr r0, [r4, #2444] + ldr r3, [r4, #2440] + ldrh r1, [r4, #2394] mla r3, lr, r3, r0 muls r1, r6, r1 ldr r0, [r3, #8] rsb r1, r8, r1 ldr r3, [sp, #12] add r1, r3, r1, lsl #9 - b .L3725 -.L3724: + b .L3797 +.L3796: ldr r3, [sp, #28] - cbz r3, .L3686 - ldr r3, [r4, #2436] - ldr r2, [r4, #2440] + cbz r3, .L3756 + ldr r3, [r4, #2440] + ldr r2, [r4, #2444] mla r5, r5, r3, r2 - ldrh r3, [r4, #2390] + ldrh r3, [r4, #2394] ldr r2, [sp, #12] muls r3, r6, r3 rsb r3, r8, r3 add r3, r2, r3, lsl #9 str r3, [r5, #8] - b .L3680 -.L3686: - ldr r2, [r4, #2440] - ldr r3, [r4, #2436] - ldrh r1, [r4, #2390] + b .L3750 +.L3756: + ldr r2, [r4, #2444] + ldr r3, [r4, #2440] + ldrh r1, [r4, #2394] mla r3, r5, r3, r2 - ldrh r2, [r4, #2394] + ldrh r2, [r4, #2398] muls r1, r6, r1 ldr r0, [r3, #8] rsb r1, r8, r1 ldr r3, [sp, #12] add r1, r3, r1, lsl #9 -.L3725: +.L3797: bl ftl_memcpy -.L3680: +.L3750: 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, #508] + ldr r3, [r9, #512] str r3, [r2, #4] adds r3, r3, #1 adds r2, r3, #1 ldr r2, [sp, #16] it eq moveq r3, #0 - str r3, [r9, #508] + str r3, [r9, #512] ldr r3, [sp, #16] str r6, [r3, #8] adds r6, r6, #1 @@ -22740,105 +23124,106 @@ ftl_write: str r3, [r2, #12] ldrh r3, [r7] strh r3, [r2, #2] @ movhi - ldr r3, [r4, #2436] + ldr r3, [r4, #2440] adds r3, r3, #1 - str r3, [r4, #2436] + str r3, [r4, #2440] ldr r3, [sp, #24] adds r3, r3, #1 str r3, [sp, #24] - b .L3670 -.L3671: - ldr r3, [sp, #4] + b .L3740 +.L3741: + ldr r3, [sp, #8] ldr r2, [sp, #24] subs r3, r3, r2 - str r3, [sp, #4] - ldr r3, .L3730+4 - ldr r2, [r10, #2436] - ldr r3, [r3, #3296] + str r3, [sp, #8] + ldr r3, .L3802+4 + ldr r2, [r10, #2440] + ldr r3, [r3, #3300] cmp r2, r3 - bcs .L3690 + bcs .L3760 ldr r3, [sp, #28] - cbnz r3, .L3690 + cbnz r3, .L3760 ldrh r3, [r7, #4] - cbz r3, .L3690 -.L3692: + cbz r3, .L3760 +.L3762: movs r3, #0 str r3, [sp, #28] - b .L3663 -.L3690: + b .L3733 +.L3760: bl FtlCacheWriteBack movs r3, #0 - str r3, [r10, #2436] - ldr r3, [sp, #4] + str r3, [r10, #2440] + ldr r3, [sp, #8] cmp r3, #1 - bhi .L3663 - b .L3692 -.L3727: + bhi .L3733 + b .L3762 +.L3799: mov r0, r3 + ldr r2, [sp, #4] ldr r3, [sp, #20] - rsb r1, fp, r3 + subs r1, r3, r2 bl ftl_do_gc - ldrh r3, [r5, #308] + ldrh r3, [r5, #312] cmp r3, #5 - bls .L3703 + bls .L3775 cmp r3, #31 - bhi .L3697 - ldr r3, .L3730+8 + bhi .L3767 + ldr r3, .L3802+8 ldrb r3, [r3] @ zero_extendqisi2 - cbnz r3, .L3697 -.L3703: - ldr r4, [sp, #4] + cbnz r3, .L3767 +.L3775: + ldr r4, [sp, #8] mov r8, #128 - ldr r6, .L3730+4 + ldr r6, .L3802+4 movw r7, #65535 -.L3716: - ldrh r3, [r5, #552] +.L3788: + ldrh r3, [r5, #556] cmp r3, r7 - bne .L3696 - ldrh r3, [r6, #1170] + bne .L3766 + ldrh r3, [r6, #1174] cmp r3, r7 - bne .L3696 - ldrh r3, [r6, #1172] + bne .L3766 + ldrh r3, [r6, #1176] cmp r3, r7 - bne .L3696 + bne .L3766 and r0, r4, #7 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3696: +.L3766: movs r0, #1 - strh r8, [r5, #1118] @ movhi - strh r8, [r5, #1116] @ movhi + strh r8, [r5, #1122] @ movhi + strh r8, [r5, #1120] @ movhi mov r1, r0 bl ftl_do_gc movs r0, #0 movs r1, #1 bl ftl_do_gc - ldr r3, [r5, #220] - cbnz r3, .L3697 - ldrh r3, [r6, #308] + ldr r3, [r5, #224] + cbnz r3, .L3767 + ldrh r3, [r6, #312] cmp r3, #2 - bhi .L3697 + bhi .L3767 adds r4, r4, #1 cmp r4, #256 - bne .L3716 - b .L3697 -.L3699: + bne .L3788 + b .L3767 +.L3771: mov r0, #-1 - b .L3656 -.L3697: + b .L3726 +.L3767: movs r0, #0 - b .L3656 -.L3698: + b .L3726 +.L3768: mov r0, r3 -.L3656: +.L3726: add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3731: +.L3803: .align 2 -.L3730: - .word .LC161 +.L3802: + .word .LC166 .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -22879,25 +23264,25 @@ FlashBootVendorWrite: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L3736 + ldr r3, .L3808 ldr r3, [r3, #504] cmp r3, #1 - bne .L3735 + bne .L3807 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_write mov r4, r0 - b .L3734 -.L3735: + b .L3806 +.L3807: mov r4, #-1 -.L3734: +.L3806: bl rknand_device_unlock mov r0, r4 pop {r4, r5, r6, pc} -.L3737: +.L3809: .align 2 -.L3736: +.L3808: .word .LANCHOR1 .fnend .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -22957,30 +23342,30 @@ FtlDumpSysBlock: push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} lsl r8, r0, #10 - ldr r5, .L3748 + ldr r5, .L3820 .pad #28 sub sp, sp, #28 - ldr r4, .L3748+4 + ldr r4, .L3820+4 mov r9, #0 - ldr r7, .L3748+8 + ldr r7, .L3820+8 mov r6, r0 - ldr r3, [r5, #3312] - str r3, [r4, #1252] - ldr r3, [r5, #3336] + ldr r3, [r5, #3316] str r3, [r4, #1256] -.L3741: - ldrh r2, [r7, #2386] + ldr r3, [r5, #3340] + str r3, [r4, #1260] +.L3813: + ldrh r2, [r7, #2390] sxth r3, r9 cmp r3, r2 - bge .L3747 + bge .L3819 movs r1, #1 - ldr r0, .L3748+12 + ldr r0, .L3820+12 orr r3, r3, r8 - str r3, [r4, #1248] + str r3, [r4, #1252] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #1256] - ldr r0, .L3748+16 + ldr r3, [r4, #1260] + ldr r0, .L3820+16 mov r1, r6 ldr r2, [r3] str r2, [sp] @@ -22989,38 +23374,38 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #1244] + ldr r2, [r4, #1248] str r3, [sp, #12] - ldr r3, [r4, #1252] - ldr r3, [r3] - str r3, [sp, #16] - ldr r3, [r4, #1248] - bl printk ldr r3, [r4, #1256] ldr r3, [r3] + str r3, [sp, #16] + ldr r3, [r4, #1252] + bl printk + ldr r3, [r4, #1260] + ldr r3, [r3] adds r3, r3, #1 - beq .L3742 - ldr r0, .L3748+20 + beq .L3814 + ldr r0, .L3820+20 movs r2, #4 - ldr r1, [r5, #3312] + ldr r1, [r5, #3316] mov r3, #768 bl rknand_print_hex -.L3742: +.L3814: add r9, r9, #1 - b .L3741 -.L3747: + b .L3813 +.L3819: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3749: +.L3821: .align 2 -.L3748: +.L3820: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR0 - .word .LANCHOR4+1244 - .word .LC162 - .word .LC163 + .word .LANCHOR4+1248 + .word .LC167 + .word .LC168 .fnend .size FtlDumpSysBlock, .-FtlDumpSysBlock .align 1 @@ -23036,29 +23421,29 @@ dump_map_info: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r4, .L3768 - addw fp, r4, #2344 - ldrh r7, [r4, #2324] + ldr r4, .L3840 + addw fp, r4, #2348 + ldrh r7, [r4, #2328] mov r9, r4 -.L3751: - ldrh r3, [r4, #2326] - ldr r6, .L3768+4 +.L3823: + ldrh r3, [r4, #2330] + ldr r6, .L3840+4 cmp r3, r7 - bls .L3765 - ldr r1, [r6, #1144] + bls .L3837 + ldr r1, [r6, #1148] mov r8, #0 - ldrh ip, [r9, #2316] + ldrh ip, [r9, #2320] mov r10, #36 - ldr r2, [r6, #3300] + ldr r2, [r6, #3304] mov r5, r8 str r1, [sp, #24] - ldr r3, [r6, #1140] - ldrh r1, [r9, #2396] + ldr r3, [r6, #1144] + ldrh r1, [r9, #2400] str r1, [sp, #28] -.L3761: +.L3833: uxth r1, r8 cmp r1, ip - bcs .L3766 + bcs .L3838 mov r1, r7 ldrb r0, [fp, r8] @ zero_extendqisi2 str r3, [sp, #44] @@ -23071,7 +23456,7 @@ dump_map_info: ldr ip, [sp, #36] ldr r2, [sp, #40] ldr r3, [sp, #44] - cbnz r0, .L3752 + cbnz r0, .L3824 mla r0, r10, r5, r2 lsls r1, r1, #10 str r1, [r0, #4] @@ -23086,23 +23471,23 @@ dump_map_info: str r3, [r0, #8] add r1, r1, lr str r1, [r0, #12] -.L3752: +.L3824: add r8, r8, #1 - b .L3761 -.L3766: - cbz r5, .L3756 - ldr r0, [r6, #3300] + b .L3833 +.L3838: + cbz r5, .L3828 + ldr r0, [r6, #3304] mov r1, r5 movs r2, #1 mov r8, #0 bl FlashReadPages mov r10, #36 -.L3757: +.L3829: uxth r3, r8 cmp r3, r5 - bcs .L3756 - ldr r3, [r6, #3300] - ldr r0, .L3768+8 + bcs .L3828 + ldr r3, [r6, #3304] + ldr r0, .L3840+8 mla r3, r10, r8, r3 add r8, r8, #1 adds r2, r3, #4 @@ -23120,39 +23505,39 @@ dump_map_info: str r3, [sp, #16] ldr r3, [lr] bl printk - b .L3757 -.L3756: + b .L3829 +.L3828: adds r7, r7, #1 uxth r7, r7 - b .L3751 -.L3765: - ldr r7, .L3768+12 + b .L3823 +.L3837: + ldr r7, .L3840+12 mov r8, #0 -.L3760: - ldrh r2, [r6, #3448] +.L3832: + ldrh r2, [r6, #3452] sxth r3, r8 - ldr r5, .L3768+4 + ldr r5, .L3840+4 cmp r3, r2 - bge .L3763 + bge .L3835 lsls r5, r3, #1 mov r9, #0 -.L3764: - ldrh r2, [r4, #2386] +.L3836: + ldrh r2, [r4, #2390] sxth r3, r9 add r9, r9, #1 cmp r3, r2 - bge .L3767 - ldr r2, [r6, #3364] + bge .L3839 + ldr r2, [r6, #3368] movs r1, #1 - ldr r0, .L3768+16 + ldr r0, .L3840+16 ldrh r2, [r2, r5] orr r3, r3, r2, lsl #10 mov r2, r1 - str r3, [r7, #1248] + str r3, [r7, #1252] bl FlashReadPages - ldr r3, [r7, #1256] - ldr r1, [r6, #3364] - ldr r2, [r7, #1252] + ldr r3, [r7, #1260] + ldr r1, [r6, #3368] + ldr r2, [r7, #1256] ldr r0, [r3] ldrh r1, [r1, r5] str r0, [sp] @@ -23161,50 +23546,50 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L3768+20 + ldr r0, .L3840+20 str r3, [sp, #12] ldr r3, [r2] str r3, [sp, #16] ldr r3, [r2, #4] str r3, [sp, #20] - ldr r2, [r7, #1244] - ldr r3, [r7, #1248] + ldr r2, [r7, #1248] + ldr r3, [r7, #1252] bl printk - b .L3764 -.L3767: + b .L3836 +.L3839: add r8, r8, #1 - b .L3760 -.L3763: - ldr r1, [r5, #3364] + b .L3832 +.L3835: + ldr r1, [r5, #3368] movs r2, #2 - ldr r3, [r4, #2412] - ldr r0, .L3768+24 + ldr r3, [r4, #2416] + ldr r0, .L3840+24 bl rknand_print_hex - ldr r1, [r5, #3384] - ldrh r3, [r4, #2420] - movs r2, #4 - ldr r0, .L3768+28 - bl rknand_print_hex - ldr r0, .L3768+32 ldr r1, [r5, #3388] + ldrh r3, [r4, #2424] movs r2, #4 - ldrh r3, [r4, #2420] + ldr r0, .L3840+28 + bl rknand_print_hex + ldr r0, .L3840+32 + ldr r1, [r5, #3392] + movs r2, #4 + ldrh r3, [r4, #2424] add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} b rknand_print_hex -.L3769: +.L3841: .align 2 -.L3768: +.L3840: .word .LANCHOR0 .word .LANCHOR2 - .word .LC164 + .word .LC169 .word .LANCHOR4 - .word .LANCHOR4+1244 - .word .LC111 - .word .LC165 - .word .LC166 - .word .LC167 + .word .LANCHOR4+1248 + .word .LC113 + .word .LC170 + .word .LC171 + .word .LC172 .fnend .size dump_map_info, .-dump_map_info .align 1 @@ -23217,17 +23602,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, .L3772 - ldr r2, [r3, #2256] - ldr r3, .L3772+4 + ldr r3, .L3844 + ldr r2, [r3, #2264] + ldr r3, .L3844+4 cmp r2, r3 - bne .L3770 + bne .L3842 b flash_enter_slc_mode -.L3770: +.L3842: bx lr -.L3773: +.L3845: .align 2 -.L3772: +.L3844: .word .LANCHOR0 .word 1446522928 .fnend @@ -23242,180 +23627,76 @@ flash_boot_exit_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L3776 - ldr r2, [r3, #2256] - ldr r3, .L3776+4 + ldr r3, .L3848 + ldr r2, [r3, #2264] + ldr r3, .L3848+4 cmp r2, r3 - bne .L3774 + bne .L3846 b flash_exit_slc_mode -.L3774: +.L3846: bx lr -.L3777: +.L3849: .align 2 -.L3776: +.L3848: .word .LANCHOR0 .word 1446522928 .fnend .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode .align 1 - .thumb - .thumb_func - .type IdBlockReadData, %function -IdBlockReadData: - .fnstart - @ 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} - mov r6, r0 - ldr r4, .L3786 - mov r8, r1 - .pad #20 - sub sp, sp, #20 - mov r1, r6 - mov fp, r2 - ldr r0, .L3786+4 - ldr r3, [r4, #1204] - mov r2, r8 - movs r7, #0 - ldrb r9, [r3, #9] @ zero_extendqisi2 - ldr r3, [r4, #4] - smulbb r5, r3, r9 - bl printk - mov r0, r6 - uxth r5, r5 - mov r1, r5 - bl __aeabi_uidivmod - mul ip, r9, r1 - mov r10, r1 - subs r3, r6, r1 - str r3, [sp] - ubfx ip, ip, #2, #2 -.L3779: - cmp r7, r8 - bcs .L3785 - add r2, r7, r10 - ldrb r1, [r4, #140] @ zero_extendqisi2 - ubfx r2, r2, #2, #16 - rsb r5, ip, #4 - add r3, r4, r2, lsl #1 - uxth r5, r5 - ldrh r3, [r3, #144] - cbz r1, .L3780 - ldr r1, .L3786 - ldr r0, .L3786+8 - ldr r1, [r1, #2256] - cmp r1, r0 - it eq - moveq r3, r2 -.L3780: - ldr r2, [sp] - add r7, r7, r5 - add r2, ip, r2 - ldrb ip, [r4, #2304] @ zero_extendqisi2 - uxth r7, r7 - mla r3, r9, r3, r2 - ldr r2, [r4, #1204] - str ip, [sp, #4] - ldrb r1, [r2, #9] @ zero_extendqisi2 - str r3, [sp, #12] - ldr r3, .L3786+12 - str r1, [sp, #8] - ldrb r0, [r3, #1206] @ zero_extendqisi2 - bl FlashBchSel - movs r0, #0 - bl flash_boot_enter_slc_mode - 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 - mov r3, r0 - bl FlashReadPage - movs r0, #0 - bl flash_boot_exit_slc_mode - ldr ip, [sp, #4] - mov r0, ip - bl FlashBchSel - mov ip, #0 - b .L3779 -.L3785: - mov r1, r6 - mov r2, r8 - movs r3, #0 - ldr r0, .L3786+16 - bl printk - movs r0, #0 - add sp, sp, #20 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3787: - .align 2 -.L3786: - .word .LANCHOR0 - .word .LC168 - .word 1446522928 - .word .LANCHOR4 - .word .LC169 - .fnend - .size IdBlockReadData, .-IdBlockReadData - .align 1 .global write_idblock .thumb .thumb_func .type write_idblock, %function write_idblock: .fnstart - @ args = 0, pretend = 0, frame = 112 + @ args = 0, pretend = 0, frame = 120 @ 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 r4, r0 - ldr r7, .L3830 - .pad #124 - sub sp, sp, #124 + mov r8, r0 + ldr r7, .L3899 + .pad #132 + sub sp, sp, #132 mov r0, #256000 - mov r6, r1 - mov r5, r2 - ldr r3, [r7, #1204] - ldr r8, [r7, #4] - ldrb r10, [r3, #9] @ zero_extendqisi2 + mov fp, r1 + mov r6, r2 + ldr r3, [r7, #44] + ldr r4, [r7, #4] + ldrb r5, [r3, #9] @ zero_extendqisi2 bl ftl_malloc - str r0, [sp, #8] + str r0, [sp, #12] cmp r0, #0 - beq .L3812 - addw r4, r4, #511 - lsrs r4, r4, #9 - cmp r4, #8 - bls .L3810 - cmp r4, #500 - bhi .L3812 - b .L3790 -.L3810: - movs r4, #8 -.L3790: - ldr r2, [r6] - ldr r3, .L3830+4 + beq .L3877 + addw r2, r8, #511 + lsr r10, r2, #9 + cmp r10, #8 + bls .L3875 + cmp r10, #500 + bhi .L3877 + b .L3852 +.L3875: + mov r10, #8 +.L3852: + ldr r2, [fp] + ldr r3, .L3899+4 cmp r2, r3 - bne .L3812 - smulbb r3, r10, r8 - uxth r9, r3 - add r0, r9, #-1 - add r0, r0, r4 - mov r1, r9 + bne .L3877 + smulbb r3, r5, r4 + uxth r3, r3 + str r3, [sp, #16] + subs r0, r3, #1 + mov r1, r3 + add r0, r0, r10 bl __aeabi_uidiv movs r3, #0 movw r2, #63871 - str r0, [sp, #28] - add r0, r6, #254976 + str r0, [sp, #40] + add r0, fp, #254976 add r0, r0, #512 -.L3794: +.L3856: ldr r1, [r0, #-4]! - cbnz r1, .L3791 - ldr r1, [r6, r3, lsl #2] + cbnz r1, .L3853 + ldr r1, [fp, r3, lsl #2] adds r3, r3, #1 cmp r3, #4096 add r2, r2, #-1 @@ -23423,351 +23704,405 @@ write_idblock: movhi r3, #0 cmp r2, #4096 str r1, [r0, #512] - bne .L3794 - b .L3793 -.L3791: - ldr r0, .L3830+8 + bne .L3856 + b .L3855 +.L3853: + ldr r0, .L3899+8 bl printk -.L3793: - mov r1, r5 +.L3855: movs r3, #5 - ldr r0, .L3830+12 + ldr r0, .L3899+12 + mov r1, r6 movs r2, #4 bl rknand_print_hex + ldr r1, [fp, #512] ldrb r2, [r7, #1] @ zero_extendqisi2 - ldr r1, [r6, #512] - subs r5, r5, #4 - ldr r0, .L3830+16 + subs r4, r6, #4 + ldr r0, .L3899+16 bl printk - ldr r2, .L3830+20 - ldrh r3, [r7, #138] - mov r1, r4 - ldr r0, .L3830+24 - ldr r2, [r2, #1200] + ldr r2, .L3899+20 + ldrh r3, [r7, #142] + mov r1, r10 + ldr r0, .L3899+24 + ldr r2, [r2, #1204] + ldr r5, .L3899 str r2, [sp] - mov r2, r4 + mov r2, r10 bl printk ldrb r3, [r7, #1] @ zero_extendqisi2 - ldr r7, .L3830 - ldr r2, [r6, #512] + ldr r2, [fp, #512] cmp r2, r3 it hi - strhi r3, [r6, #512] - lsls r3, r4, #7 - str r3, [sp, #32] + strhi r3, [fp, #512] + lsl r3, r10, #7 + str r3, [sp, #44] movs r3, #0 - str r3, [sp, #16] - str r3, [sp, #12] -.L3808: - ldr r2, [r5, #4] - ldrb r3, [r7, #1] @ zero_extendqisi2 - ldr r10, .L3830 + str r3, [sp, #24] + str r3, [sp, #20] +.L3873: + ldr r2, [r4, #4] + ldrb r3, [r5, #1] @ zero_extendqisi2 + ldr r7, .L3899 cmp r2, r3 - bcs .L3796 - ldr r3, .L3830+20 - ldr r3, [r3, #1200] + bcs .L3858 + ldr r3, .L3899+20 + ldr r3, [r3, #1204] cmp r2, r3 - bcc .L3796 - ldr r3, [sp, #28] + bcc .L3858 + ldr r3, [sp, #40] cmp r3, #1 - bls .L3797 - ldr r3, [sp, #12] - cbz r3, .L3797 - ldr r3, [r5] + bls .L3859 + ldr r3, [sp, #20] + cbz r3, .L3859 + ldr r3, [r4] adds r3, r3, #1 cmp r2, r3 - beq .L3796 -.L3797: + beq .L3858 +.L3859: movs r1, #0 mov r2, #512 - ldr r0, [sp, #8] + ldr r0, [sp, #12] bl memset - ldr r3, [r5, #4] - ldr r0, .L3830+28 - mul r8, r3, r9 - ldr r3, [r10, #1204] - ldrb r3, [r3, #9] @ zero_extendqisi2 - mov r1, r8 - str r3, [sp, #20] - ldr r3, [r10, #4] - ldrh r2, [sp, #20] - smulbb r10, r3, r2 - mov r2, r4 + ldr r6, [r4, #4] + mov r2, r10 + ldr r0, .L3899+28 + ldr r3, [sp, #16] + muls r6, r3, r6 + ldr r3, [r7, #44] + ldr r7, [r7, #4] + ldrb r9, [r3, #9] @ zero_extendqisi2 + mov r1, r6 bl printk movs r0, #0 bl flash_boot_enter_slc_mode - mov r0, r8 - uxth r10, r10 - ldr r1, [sp, #20] + mov r1, r9 + mov r0, r6 bl __aeabi_uidiv + smulbb r7, r7, r9 + uxth r7, r7 mov r1, r0 movs r0, #0 mov r2, r0 bl FlashEraseBlock - cmp r4, r10 - bls .L3813 + cmp r10, r7 + bls .L3878 movs r0, #0 - add r1, r8, r10 - mov fp, #2 + adds r1, r6, r7 + mov r8, #2 mov r2, r0 bl FlashEraseBlock - b .L3798 -.L3813: - mov fp, #1 -.L3798: + b .L3860 +.L3878: + mov r8, #1 +.L3860: movs r0, #0 bl flash_boot_exit_slc_mode - ldr r3, [r7, #1204] + ldr r3, [r5, #44] ldrh r0, [r3, #10] ldrb r1, [r3, #12] @ zero_extendqisi2 lsls r0, r0, #2 - mul r0, fp, r0 + mul r0, r8, r0 bl __aeabi_idiv - mov r1, r10 - mov r10, #0 - str r0, [sp, #44] - mov r0, r8 + mov r1, r7 + mov r8, #0 + str r0, [sp, #48] + mov r0, r6 bl __aeabi_uidivmod mov ip, r1 - rsb r3, r1, r8 - str r6, [sp, #24] - str r3, [sp, #36] -.L3799: - ldr r3, [sp, #44] - cmp r10, r3 - bcs .L3829 - add r2, r10, ip - ubfx r2, r2, #2, #16 - cbz r2, .L3800 - adds r3, r2, #1 - add r1, r7, r3, lsl #1 - ldrh fp, [r1, #144] - ldrb r1, [r7, #140] @ zero_extendqisi2 - cbz r1, .L3801 - ldr r1, [r7, #2256] - ldr r0, .L3830+32 + subs r3, r6, r1 + str fp, [sp, #28] + str r3, [sp, #32] +.L3861: + ldr r3, [sp, #48] + ldr r7, .L3899 + cmp r8, r3 + bcs .L3897 + add r3, r8, ip + ubfx r3, r3, #2, #16 + cbz r3, .L3862 + adds r2, r3, #1 + add r1, r5, r2, lsl #1 + ldrh r7, [r1, #148] + ldrb r1, [r5, #144] @ zero_extendqisi2 + cbz r1, .L3863 + ldr r1, [r5, #2264] + ldr r0, .L3899+32 cmp r1, r0 it eq - moveq fp, r3 -.L3801: - add fp, fp, #1073741824 - add fp, fp, #-1 - lsl r3, fp, #2 - str r3, [sp, #56] -.L3800: - movw r3, #61424 - str r3, [sp, #60] - add r3, r7, r2, lsl #1 - ldrh fp, [r3, #144] - ldrb r3, [r7, #140] @ zero_extendqisi2 - cbz r3, .L3802 - ldr r3, [r7, #2256] - ldr r1, .L3830+32 - cmp r3, r1 + moveq r7, r2 +.L3863: + add r7, r7, #1073741824 + subs r7, r7, #1 + lsls r7, r7, #2 + str r7, [sp, #64] +.L3862: + movw r2, #61424 + str r2, [sp, #68] + add r2, r5, r3, lsl #1 + ldrh r7, [r2, #148] + ldrb r2, [r5, #144] @ zero_extendqisi2 + cbz r2, .L3864 + ldr r2, [r5, #2264] + ldr r1, .L3899+32 + cmp r2, r1 it eq - moveq fp, r2 -.L3802: - 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, .L3830 - ldrb r3, [r3, #2304] @ zero_extendqisi2 - str r2, [sp, #48] - str r3, [sp, #40] - ldr r3, .L3830+20 - ldrb r0, [r3, #1206] @ zero_extendqisi2 + moveq r7, r3 +.L3864: + ldr r3, [sp, #32] + add r8, r8, #4 + str ip, [sp, #56] + uxth r8, r8 + mla r2, r9, r7, r3 + ldr r3, .L3899 + ldrb r3, [r3, #2312] @ zero_extendqisi2 + str r2, [sp, #52] + str r3, [sp, #36] + ldr r3, .L3899+20 + ldrb r0, [r3, #1210] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 bl flash_boot_enter_slc_mode - ldr r3, .L3830 - ldr r3, [r3, #1204] + ldr r3, .L3899 + ldr r3, [r3, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 - ldr r2, [sp, #48] + ldr r2, [sp, #52] mov r0, r2 bl __aeabi_uidiv - add r3, sp, #56 + add r3, sp, #64 mov r1, r0 - ldr r2, [sp, #24] + ldr r2, [sp, #28] movs r0, #0 bl FlashProgPage movs r0, #0 bl flash_boot_exit_slc_mode - ldr r0, [sp, #40] - bl FlashBchSel - ldr r1, [sp, #20] ldr r0, [sp, #36] + bl FlashBchSel + mov r1, r9 + ldr r0, [sp, #32] bl __aeabi_uidiv - add r2, fp, #1 + adds r2, r7, #1 uxth r2, r2 mov r1, r0 movs r0, #0 bl FlashPageProgMsbFFData - ldr r3, [sp, #24] - ldr ip, [sp, #52] + ldr r3, [sp, #28] + ldr ip, [sp, #56] add r3, r3, #2048 - str r3, [sp, #24] - b .L3799 -.L3831: + str r3, [sp, #28] + b .L3861 +.L3900: .align 2 -.L3830: +.L3899: .word .LANCHOR0 .word -52655045 - .word .LC170 - .word .LC171 - .word .LC172 - .word .LANCHOR4 .word .LC173 .word .LC174 + .word .LC175 + .word .LANCHOR4 + .word .LC176 + .word .LC177 .word 1446522928 -.L3829: - mov r1, r8 +.L3897: + mov r1, r6 + mov r2, r10 movs r3, #0 - mov r2, r4 - ldr r0, .L3832 + ldr r0, .L3901 bl printk - ldr r0, [r5, #4] - mov r1, r4 - mov r8, #0 - mul r0, r0, r9 - ldr r2, [sp, #8] - bl IdBlockReadData - mov r3, r6 - ldr r0, [sp, #8] -.L3807: - mov fp, r0 - mov r10, r3 - ldr r1, [fp] + ldr r6, [r4, #4] + ldr r0, .L3901+4 + mov r9, #0 + ldr r3, [sp, #16] + muls r6, r3, r6 + ldr r3, [r7, #44] + ldrb r3, [r3, #9] @ zero_extendqisi2 + mov r1, r6 + str r3, [sp, #28] + ldr r3, [r7, #4] + ldrh r2, [sp, #28] + smulbb r8, r3, r2 + mov r2, r10 + bl printk + mov r0, r6 + uxth r8, r8 + mov r1, r8 + bl __aeabi_uidivmod + subs r3, r6, r1 + str r3, [sp, #48] + ldr r3, [sp, #28] + str r1, [sp, #32] + mul ip, r3, r1 + ldr r3, [sp, #12] + ubfx ip, ip, #2, #2 + str r3, [sp, #36] +.L3866: + cmp r9, r10 + bcs .L3898 + ldr r3, [sp, #32] + rsb r8, ip, #4 + ldrb r1, [r5, #144] @ zero_extendqisi2 + add r3, r9, r3 + uxth r8, r8 + ubfx r3, r3, #2, #16 + add r2, r5, r3, lsl #1 + ldrh r2, [r2, #148] + cbz r1, .L3867 + ldr r1, [r5, #2264] + ldr r0, .L3901+8 + cmp r1, r0 + it eq + moveq r2, r3 +.L3867: + ldr r3, [sp, #48] + add r9, r9, r8 + ldr r1, [sp, #28] + add r3, ip, r3 + ldrb ip, [r7, #2312] @ zero_extendqisi2 + uxth r9, r9 + mla r3, r1, r2, r3 + ldr r2, [r7, #44] + str ip, [sp, #52] + ldrb r1, [r2, #9] @ zero_extendqisi2 + ldr r2, .L3901+12 + str r3, [sp, #60] + str r1, [sp, #56] + ldrb r0, [r2, #1210] @ zero_extendqisi2 + bl FlashBchSel + movs r0, #0 + bl flash_boot_enter_slc_mode + ldr r3, [sp, #60] + ldr r1, [sp, #56] + mov r0, r3 + bl __aeabi_uidiv + mov r1, r0 + movs r0, #0 + ldr r2, [sp, #36] + mov r3, r0 + bl FlashReadPage + movs r0, #0 + bl flash_boot_exit_slc_mode + ldr ip, [sp, #52] + mov r0, ip + bl FlashBchSel + mov ip, #0 + ldr r3, [sp, #36] + add r3, r3, r8, lsl #9 + str r3, [sp, #36] + b .L3866 +.L3898: + mov r1, r6 + movs r3, #0 + ldr r0, .L3901+16 + mov r2, r10 + bl printk + movs r6, #0 + mov r3, fp + ldr r0, [sp, #12] +.L3872: + mov r8, r0 + mov r7, r3 + ldr r1, [r8] adds r0, r0, #4 - ldr r2, [r10] + ldr r2, [r7] adds r3, r3, #4 cmp r1, r2 - beq .L3804 + beq .L3869 movs r1, #0 mov r2, #512 - ldr r0, [sp, #8] + ldr r0, [sp, #12] bl memset - ldr r3, [fp] - ldr r0, .L3832+4 + ldr r3, [r8] + ldr r0, .L3901+20 str r3, [sp] - ldr r3, [r10] - bic r10, r8, #255 - ldr r1, [sp, #12] - lsl r10, r10, #2 + ldr r3, [r7] + bic r7, r6, #255 + ldr r1, [sp, #20] + lsls r7, r7, #2 str r3, [sp, #4] - mov r3, r8 - ldr r2, [r5, #4] + mov r3, r6 + ldr r2, [r4, #4] bl printk - ldr r0, .L3832+8 - add r1, r6, r10 + ldr r0, .L3901+24 + add r1, fp, r7 movs r2, #4 mov r3, #256 bl rknand_print_hex movs r2, #4 - ldr r0, .L3832+12 - ldr r3, [sp, #8] - add r1, r3, r10 + ldr r0, .L3901+28 + ldr r3, [sp, #12] + adds r1, r3, r7 mov r3, #256 bl rknand_print_hex movs r0, #0 bl flash_boot_enter_slc_mode - ldr r1, [r5, #4] + ldr r1, [r4, #4] movs r0, #0 - mul r1, r1, r9 mov r2, r0 + ldr r3, [sp, #16] + muls r1, r3, r1 bl FlashEraseBlock - ldr r3, [sp, #28] + ldr r3, [sp, #40] cmp r3, #1 - bls .L3805 - ldr r1, [r5, #4] + bls .L3870 + ldr r1, [r4, #4] movs r0, #0 + ldr r3, [sp, #16] mov r2, r0 - mla r1, r1, r9, r9 + mla r1, r1, r3, r3 bl FlashEraseBlock -.L3805: +.L3870: movs r0, #0 bl flash_boot_exit_slc_mode - ldr r0, .L3832+16 - ldr r1, [r5, #4] + ldr r0, .L3901+32 + ldr r1, [r4, #4] bl printk - ldr r3, [sp, #32] - cmp r8, r3 - bcc .L3796 - b .L3806 -.L3804: - ldr r2, [sp, #32] - add r8, r8, #1 - cmp r8, r2 - bne .L3807 -.L3806: - ldr r3, [sp, #16] + ldr r3, [sp, #44] + cmp r6, r3 + bcc .L3858 + b .L3871 +.L3869: + ldr r2, [sp, #44] + adds r6, r6, #1 + cmp r6, r2 + bne .L3872 +.L3871: + ldr r3, [sp, #24] adds r3, r3, #1 - str r3, [sp, #16] -.L3796: - ldr r3, [sp, #12] - adds r5, r5, #4 + str r3, [sp, #24] +.L3858: + ldr r3, [sp, #20] + adds r4, r4, #4 adds r3, r3, #1 - str r3, [sp, #12] + str r3, [sp, #20] cmp r3, #5 - bne .L3808 - ldr r0, [sp, #8] + bne .L3873 + ldr r0, [sp, #12] bl ftl_free - ldr r3, [sp, #16] + ldr r3, [sp, #24] clz r0, r3 lsrs r0, r0, #5 negs r0, r0 - b .L3789 -.L3812: + b .L3851 +.L3877: mov r0, #-1 -.L3789: - add sp, sp, #124 +.L3851: + add sp, sp, #132 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3833: +.L3902: .align 2 -.L3832: - .word .LC175 - .word .LC176 - .word .LC177 +.L3901: .word .LC178 .word .LC179 + .word 1446522928 + .word .LANCHOR4 + .word .LC180 + .word .LC181 + .word .LC182 + .word .LC183 + .word .LC184 .fnend .size write_idblock, .-write_idblock .align 1 - .global CRC_32 - .thumb - .thumb_func - .type CRC_32, %function -CRC_32: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, lr} - .save {r4, lr} - add r1, r1, r0 - ldr r4, .L3838 - movs r2, #0 -.L3835: - cmp r0, r1 - beq .L3837 - ldrb r3, [r0], #1 @ zero_extendqisi2 - eor r3, r3, r2, lsr #24 - add r3, r4, r3, lsl #2 - ldr r3, [r3, #3360] - eor r2, r3, r2, lsl #8 - b .L3835 -.L3837: - mov r0, r2 - pop {r4, pc} -.L3839: - .align 2 -.L3838: - .word .LANCHOR1 - .fnend - .size CRC_32, .-CRC_32 - .align 1 .global write_loader_lba .thumb .thumb_func @@ -23784,36 +24119,36 @@ write_loader_lba: sub sp, sp, #52 mov r6, r1 mov r8, r2 - ldr r4, .L3862 - bne .L3841 + ldr r4, .L3925 + bne .L3904 ldr r2, [r2] - ldr r3, .L3862+4 + ldr r3, .L3925+4 cmp r2, r3 - bne .L3841 + bne .L3904 mov r0, #256000 movs r3, #1 - strb r3, [r4, #1008] + strb r3, [r4, #1012] bl ftl_malloc movs r1, #0 mov r2, #256000 - str r0, [r4, #1012] + str r0, [r4, #1016] bl ftl_memset - str r5, [r4, #1016] -.L3841: + str r5, [r4, #1020] +.L3904: str r6, [sp] mov r3, r5 - ldr r0, .L3862+8 - ldr r1, [r4, #1012] + ldr r0, .L3925+8 + ldr r1, [r4, #1016] ldr r2, [r8] bl printk - ldrb r3, [r4, #1008] @ zero_extendqisi2 - ldr r9, .L3862 + ldrb r3, [r4, #1012] @ zero_extendqisi2 + ldr r9, .L3925 cmp r3, #0 - beq .L3840 + beq .L3903 sub r0, r5, #64 - ldr r7, [r9, #1012] + ldr r7, [r9, #1016] cmp r0, #500 - bcs .L3843 + bcs .L3906 rsb r2, r5, #564 add r0, r7, r0, lsl #9 cmp r2, r6 @@ -23822,38 +24157,38 @@ write_loader_lba: movcs r2, r6 lsls r2, r2, #9 bl ftl_memcpy - b .L3844 -.L3843: + b .L3907 +.L3906: cmp r5, #564 - bcs .L3852 -.L3844: - ldr r3, [r4, #1016] + bcs .L3915 +.L3907: + ldr r3, [r4, #1020] cmp r3, r5 - beq .L3850 - ldr r2, .L3862 + beq .L3913 + ldr r2, .L3925 movs r3, #0 mov r8, r3 - strb r3, [r2, #1008] - cbz r7, .L3851 + strb r3, [r2, #1012] + cbz r7, .L3914 mov r0, r7 bl ftl_free -.L3851: - str r8, [r4, #1012] -.L3850: +.L3914: + str r8, [r4, #1016] +.L3913: add r5, r5, r6 - str r5, [r4, #1016] - b .L3840 -.L3852: - ldr r3, .L3862+12 - ldr r0, [r9, #1016] - ldr r3, [r3, #1204] + str r5, [r4, #1020] + b .L3903 +.L3915: + ldr r3, .L3925+12 + ldr r0, [r9, #1020] + ldr r3, [r3, #44] subs r0, r0, #64 cmp r0, #500 it cs movcs r0, #500 ldrb r3, [r3, #9] @ zero_extendqisi2 cmp r3, #4 - beq .L3853 + beq .L3916 movs r3, #2 str r3, [sp, #8] movs r3, #3 @@ -23864,10 +24199,10 @@ write_loader_lba: str r3, [sp, #20] movs r3, #6 str r3, [sp, #24] - b .L3846 -.L3853: + b .L3909 +.L3916: movs r3, #0 -.L3845: +.L3908: add r1, sp, #8 lsls r2, r3, #1 cmp r0, #256 @@ -23876,40 +24211,40 @@ write_loader_lba: str r2, [r1, r3, lsl #2] adds r3, r3, #1 cmp r3, #5 - bne .L3845 -.L3846: + bne .L3908 +.L3909: movw r3, #63872 -.L3849: +.L3912: ldr r2, [r7, r3, lsl #2] - cbz r2, .L3847 + cbz r2, .L3910 adds r3, r3, #128 lsls r0, r3, #2 - b .L3848 -.L3847: + b .L3911 +.L3910: subs r3, r3, #1 cmp r3, #4096 - bne .L3849 + bne .L3912 lsls r0, r0, #9 -.L3848: +.L3911: mov r1, r7 add r2, sp, #8 bl write_idblock - ldr r0, [r4, #1012] + ldr r0, [r4, #1016] movs r7, #0 - strb r7, [r4, #1008] + strb r7, [r4, #1012] bl ftl_free - str r7, [r4, #1012] - b .L3850 -.L3840: + str r7, [r4, #1016] + b .L3913 +.L3903: add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3863: +.L3926: .align 2 -.L3862: +.L3925: .word .LANCHOR5 .word -52655045 - .word .LC180 + .word .LC185 .word .LANCHOR0 .fnend .size write_loader_lba, .-write_loader_lba @@ -23930,13 +24265,13 @@ FtlWrite: cmp r3, #1984 mov r4, r1 mov r6, r2 - bcs .L3865 - cbnz r0, .L3865 + bcs .L3928 + cbnz r0, .L3928 mov r0, r1 mov r1, r2 mov r2, r5 bl write_loader_lba -.L3865: +.L3928: mov r0, r7 mov r1, r4 mov r2, r6 @@ -23952,457 +24287,193 @@ FtlWrite: .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: .fnstart - @ args = 0, pretend = 0, frame = 528 + @ args = 0, pretend = 0, frame = 520 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3974 + ldr r3, .L3988 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} cmp r1, r3 - .pad #532 - sub sp, sp, #532 + .pad #524 + sub sp, sp, #524 mov r4, r1 mov r5, r2 - beq .L3868 - bhi .L3869 - subw r3, r3, #3461 + beq .L3931 + bhi .L3932 + subw r3, r3, #2086 cmp r1, r3 - beq .L3870 - bhi .L3871 - subs r3, r3, #125 + beq .L3933 + bhi .L3934 + subs r3, r3, #238 cmp r1, r3 - beq .L3872 - bhi .L3873 - subs r3, r3, #237 + beq .L3935 + adds r3, r3, #237 cmp r1, r3 - bne .L3929 - bl rknand_dev_flush - b .L3962 -.L3873: - ldr r3, .L3974+4 + beq .L3936 + b .L3966 +.L3934: + ldr r3, .L3988+4 cmp r1, r3 - beq .L3875 + beq .L3937 adds r3, r3, #1 cmp r1, r3 - beq .L3876 - b .L3929 -.L3871: - ldr r3, .L3974+8 + beq .L3938 + subs r3, r3, #124 cmp r1, r3 - beq .L3877 - bhi .L3878 - mvn r1, #1960 - add r3, r3, r1 - cmp r4, r3 - beq .L3879 - b .L3929 -.L3878: - ldr r3, .L3974+12 - cmp r1, r3 - beq .L3877 - adds r3, r3, #10 - cmp r1, r3 - beq .L3877 - b .L3929 -.L3869: - ldr r3, .L3974+16 - cmp r1, r3 - beq .L3880 - bhi .L3881 - subs r3, r3, #78 - cmp r1, r3 - beq .L3882 - bcc .L3883 - adds r3, r3, #21 - cmp r1, r3 - beq .L3884 - adds r3, r3, #56 - cmp r1, r3 - beq .L3885 - b .L3929 -.L3881: - ldr r3, .L3974+20 + bne .L3966 + b .L3986 +.L3932: + ldr r3, .L3988+8 cmp r1, r3 mov r6, r3 - beq .L3886 - bhi .L3887 - mvn r2, #956 - add r3, r3, r2 + beq .L3940 + bhi .L3941 + subw r3, r3, #2526 cmp r1, r3 - beq .L3888 - add r3, r3, #956 + beq .L3931 + adds r3, r3, #10 cmp r1, r3 - beq .L3889 - b .L3929 -.L3887: - ldr r3, .L3974+24 + beq .L3931 + b .L3966 +.L3941: + ldr r3, .L3988+12 cmp r1, r3 - beq .L3889 + beq .L3940 + bcc .L3942 adds r3, r3, #1 cmp r1, r3 - beq .L3886 - b .L3929 -.L3883: - ldr r0, .L3974+28 - bl printk - mov r0, #4096 - bl ftl_malloc - mov r4, r0 - cbnz r0, .L3890 -.L3895: - mvn r0, #11 - b .L3867 -.L3890: - mov r1, r5 - mov r2, #512 - bl rk_copy_from_user - cbnz r0, .L3968 - ldr r0, .L3974+32 - ldmia r4, {r1, r2} - bl printk - ldr r3, [r4, #4] - cmp r3, #8 - str r3, [sp, #4] - bhi .L3966 - bl rknand_device_lock - mov r2, r4 - ldr r0, [r4] - ldr r1, [sp, #4] - bl IdBlockReadData - bl rknand_device_unlock - mov r0, r5 - mov r1, r4 - ldr r2, [sp, #4] - lsls r2, r2, #9 - bl rk_copy_to_user - cmp r0, #0 - beq .L3961 - ldr r0, .L3974+36 -.L3964: - bl printk -.L3966: - mov r0, r4 -.L3967: - bl ftl_free -.L3965: - mvn r0, #13 - b .L3867 -.L3882: - ldr r0, .L3974+40 - bl printk - mov r0, #4096 - bl ftl_malloc - mov r4, r0 - cmp r0, #0 - beq .L3895 - mov r1, r5 - mov r2, #4096 - bl rk_copy_from_user - cbz r0, .L3896 -.L3968: - ldr r0, .L3974+44 - b .L3964 -.L3896: - ldr r5, .L3974+48 - ldr r0, .L3974+52 - ldmia r4, {r1, r2} - bl printk - ldr r6, [r5, #1020] - mov r7, r5 - cbnz r6, .L3897 - mov r0, #260096 - bl ftl_malloc - str r0, [r5, #1020] - cmp r0, #0 - beq .L3966 - mov r1, r6 - mov r2, #260096 - bl memset -.L3897: - ldr r2, [r4, #4] - movw r3, #4088 - cmp r2, r3 - bhi .L3966 - ldr r3, [r4] - cmp r3, #251904 - bhi .L3966 - ldr r0, [r7, #1020] - add r1, r4, #8 - add r0, r0, r3 - bl memcpy -.L3961: - mov r0, r4 - bl ftl_free -.L3962: - movs r4, #0 - b .L3894 -.L3885: - ldr r0, .L3974+56 - bl printk - mov r0, #4096 - bl ftl_malloc - mov r6, r0 - cmp r0, #0 - beq .L3895 - mov r1, r5 - movs r2, #28 - bl rk_copy_from_user - cbz r0, .L3900 - ldr r0, .L3974+44 - bl printk - b .L3901 -.L3900: - ldmia r6, {r1, r2} - ldr r0, .L3974+60 - bl printk - ldr r1, [r6] - cmp r1, #256000 - bhi .L3901 - ldr r5, .L3974+48 - ldr r0, [r5, #1020] - cbz r0, .L3901 - bl CRC_32 - ldr r3, [r6, #4] - cmp r3, r0 - beq .L3903 - mov r0, r6 - bl ftl_free - b .L3930 -.L3903: - bl rknand_device_lock - ldr r1, [r5, #1020] - add r2, r6, #8 - ldr r0, [r6] - bl write_idblock - movs r4, #0 - bl rknand_device_unlock - ldr r0, [r5, #1020] - bl ftl_free - str r4, [r5, #1020] - mov r0, r6 - b .L3907 -.L3901: - mov r0, r6 - b .L3967 -.L3884: - ldr r0, .L3974+64 - bl printk - mov r0, #4096 - bl ftl_malloc - mov r6, r0 - cmp r0, #0 - beq .L3895 - bl ftl_read_flash_info - mov r0, r5 - mov r1, r6 - movs r2, #11 - b .L3972 -.L3868: - ldr r0, .L3974+68 - bl printk - bl nand_blk_add_whole_disk - mov r0, #4096 - bl ftl_malloc - mov r6, r0 - cmp r0, #0 - beq .L3895 - movs r1, #0 - movs r2, #64 - bl ftl_memset - mov r0, r5 - mov r1, r6 - movs r2, #64 - b .L3972 -.L3880: - ldr r0, .L3974+72 - bl printk - ldr r3, .L3974+48 - movs r2, #4 - mov r0, r5 - ldr r3, [r3, #1024] - ldr r3, [r3, #20] - add r1, sp, #4 - str r3, [sp, #4] -.L3956: - bl rk_copy_to_user - cmp r0, #0 - bne .L3965 - b .L3962 -.L3888: - ldr r0, .L3974+76 - bl printk - mov r0, #4096 - bl ftl_malloc - mov r6, r0 - cmp r0, #0 - beq .L3895 - bl rknand_device_lock - mov r1, #264 - movs r2, #2 - mov r3, r6 - movs r0, #16 - bl ftl_read - bl rknand_device_unlock - mov r2, #1024 - mov r0, r5 - mov r1, r6 -.L3972: - bl rk_copy_to_user - mov r4, r0 - mov r0, r6 - cmp r4, #0 - bne .L3967 -.L3907: - bl ftl_free - b .L3894 -.L3872: - ldr r0, .L3974+80 + beq .L3942 + b .L3966 +.L3936: + ldr r0, .L3988+16 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user - mov r4, r0 - cbz r0, .L3908 -.L3913: - ldr r0, .L3974+44 + cbz r0, .L3943 +.L3949: + ldr r0, .L3988+20 bl printk - b .L3965 -.L3908: - ldr r2, [sp, #8] - ldr r3, .L3974+84 + b .L3983 +.L3943: + ldr r2, [sp] + ldr r3, .L3988+24 cmp r2, r3 - beq .L3909 -.L3910: + beq .L3944 +.L3946: mov r4, #-1 - b .L3894 -.L3975: - .align 2 -.L3974: - .word 1074033155 - .word 1074029570 - .word 1074031656 - .word 1074031666 - .word 1074033235 - .word 1074034193 - .word 1074034194 - .word .LC181 - .word .LC183 - .word .LC184 - .word .LC185 - .word .LC182 - .word .LANCHOR5 - .word .LC186 - .word .LC187 - .word .LC188 - .word .LC189 - .word .LC190 - .word .LC191 - .word .LC192 - .word .LC193 - .word 1263358532 -.L3909: - ldr r3, [sp, #12] + b .L3945 +.L3944: + ldr r3, [sp, #4] cmp r3, #512 - bhi .L3910 - ldr r6, .L3976 + bhi .L3946 + ldr r4, .L3988+28 mov r2, #512 - add r0, sp, #8 - ldr r1, [r6, #1024] + mov r0, sp + ldr r1, [r4, #1024] bl memcpy - ldr r2, [r6, #1028] - ldr r3, .L3976+4 + ldr r2, [r4, #1028] + ldr r3, .L3988+32 cmp r2, r3 - beq .L3911 - add r0, sp, #72 - mov r1, r4 - movs r2, #128 - str r4, [sp, #16] - str r4, [sp, #20] - bl memset -.L3911: + beq .L3947 movs r1, #0 - mov r2, #256 - add r0, sp, #264 - str r1, [sp, #24] + add r0, sp, #64 + movs r2, #128 + str r1, [sp, #8] + str r1, [sp, #12] bl memset - b .L3970 -.L3875: - ldr r0, .L3976+8 +.L3947: + movs r1, #0 + add r0, sp, #256 + mov r2, #256 + str r1, [sp, #16] + bl memset +.L3978: + mov r0, r5 + mov r1, sp + mov r2, #520 + bl rk_copy_to_user + cmp r0, #0 + bne .L3983 + b .L3982 +.L3933: + ldr r0, .L3988+36 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3913 - ldr r2, [sp, #8] - ldr r3, .L3976+12 + bne .L3949 + ldr r2, [sp] + ldr r3, .L3988+24 cmp r2, r3 - bne .L3910 - ldr r3, [sp, #12] + bne .L3946 + ldr r3, [sp, #4] cmp r3, #512 - bhi .L3910 - ldr r2, .L3976 - ldr r3, .L3976+4 + bhi .L3946 + ldr r2, .L3988+28 + ldr r3, .L3988+32 ldr r1, [r2, #1028] cmp r1, r3 - bne .L3930 - ldr r3, [sp, #20] + bne .L3967 + ldr r3, [sp, #12] subs r1, r3, #1 cmp r1, #127 - bhi .L3931 + bhi .L3968 ldr r4, [r2, #1024] - add r1, sp, #72 + add r1, sp, #64 add r0, r4, #64 str r3, [r4, #12] - ldr r2, [sp, #20] + ldr r2, [sp, #12] bl memcpy movs r0, #1 mov r1, r4 - b .L3963 -.L3879: - ldr r0, .L3976+16 + b .L3981 +.L3938: + ldr r0, .L3988+40 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3913 - ldr r2, [sp, #8] - ldr r3, .L3976+20 + bne .L3949 + ldr r2, [sp] + ldr r3, .L3988+44 cmp r2, r3 - bne .L3910 - ldr r3, [sp, #12] + bne .L3946 + ldr r3, [sp, #4] cmp r3, #512 - bhi .L3910 - ldr r5, .L3976 + bhi .L3946 + ldr r5, .L3988+28 ldr r3, [r5, #1032] - cbnz r3, .L3914 -.L3917: + cbnz r3, .L3950 +.L3953: movs r0, #0 - b .L3867 -.L3914: + b .L3930 +.L3950: ldr r3, [r5, #1036] - ldr r2, .L3976+24 + ldr r2, .L3988+48 ldr r1, [r3] cmp r1, r2 - beq .L3915 + beq .L3951 str r2, [r3] mov r2, #504 - ldr r3, [r5, #1036] + ldr r3, .L3988+28 + ldr r3, [r3, #1036] str r2, [r3, #4] movs r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L3915: +.L3951: ldr r1, [r5, #1036] movs r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore ldr r3, [r5, #1024] - ldr r2, .L3976+12 + ldr r2, .L3988+24 ldr r1, [r3] cmp r1, r2 it ne @@ -24410,7 +24481,7 @@ rknand_sys_storage_ioctl: ldr r6, [r5, #1024] itt ne movne r2, #504 - ldrne r3, .L3976 + ldrne r3, .L3988+28 add r0, r6, #64 itt ne ldrne r3, [r3, #1024] @@ -24427,58 +24498,58 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore str r4, [r5, #1032] str r4, [r5, #1028] - b .L3894 -.L3870: - ldr r0, .L3976+28 + b .L3945 +.L3937: + ldr r0, .L3988+52 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3913 - ldr r2, [sp, #8] - ldr r3, .L3976+32 + bne .L3949 + ldr r2, [sp] + ldr r3, .L3988+56 cmp r2, r3 - bne .L3910 - ldr r3, [sp, #12] + bne .L3946 + ldr r3, [sp, #4] cmp r3, #512 - bhi .L3910 - ldr r5, .L3976 + bhi .L3946 + ldr r5, .L3988+28 ldr r3, [r5, #1032] cmp r3, #1 - beq .L3917 + beq .L3953 + ldr r2, [r5, #1036] + ldr r3, .L3988+48 + ldr r1, [r2] + cmp r1, r3 + beq .L3954 + str r3, [r2] + mov r2, #504 ldr r3, [r5, #1036] - ldr r2, .L3976+24 - ldr r1, [r3] - cmp r1, r2 - it ne - strne r2, [r3] + str r2, [r3, #4] + movs r2, #0 + str r2, [r3, #8] + str r2, [r3, #12] +.L3954: ldr r1, [r5, #1036] - itttt ne - movne r2, #504 - ldrne r3, [r5, #1036] - strne r2, [r3, #4] - strne r0, [r3, #8] - it ne - strne r0, [r3, #12] movs r3, #1 movs r0, #0 str r3, [r1, #16] bl StorageSysDataStore ldr r3, [r5, #1024] - ldr r2, .L3976+12 + ldr r2, .L3988+24 ldr r1, [r3] cmp r1, r2 - beq .L3919 + beq .L3955 str r2, [r3] mov r2, #504 - ldr r3, .L3976 + ldr r3, .L3988+28 ldr r3, [r3, #1024] str r2, [r3, #4] movs r2, #0 str r2, [r3, #8] -.L3919: +.L3955: ldr r6, [r5, #1024] movs r4, #0 movs r2, #128 @@ -24491,84 +24562,109 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore movs r3, #1 str r3, [r5, #1032] - b .L3894 -.L3876: - ldr r0, .L3976+36 + b .L3945 +.L3986: + ldr r0, .L3988+60 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3913 - ldr r2, [sp, #8] - ldr r3, .L3976+40 + bne .L3949 + ldr r2, [sp] + ldr r3, .L3988+64 cmp r2, r3 - bne .L3910 - ldr r2, [sp, #12] + bne .L3946 + ldr r2, [sp, #4] cmp r2, #512 - bhi .L3910 - add r0, sp, #16 - ldr r1, .L3976+44 - b .L3969 -.L3877: - ldr r0, .L3976+48 + bhi .L3946 + add r0, sp, #8 + ldr r1, .L3988+68 + b .L3984 +.L3931: + ldr r0, .L3988+72 cmp r4, r0 mov r7, r0 - bne .L3920 - ldr r0, .L3976+52 - b .L3959 -.L3920: - ldr r3, .L3976+56 + bne .L3957 + ldr r0, .L3988+76 + b .L3980 +.L3989: + .align 2 +.L3988: + .word 1074031656 + .word 1074029694 + .word 1074034192 + .word 1074034194 + .word .LC186 + .word .LC187 + .word 1263358532 + .word .LANCHOR5 + .word -1067903959 + .word .LC188 + .word .LC189 + .word 1112753220 + .word 1146313043 + .word .LC190 + .word 1112755781 + .word .LC191 + .word 1094995539 + .word .LANCHOR5+1040 + .word 1074031666 + .word .LC192 +.L3957: + ldr r3, .L3990 cmp r4, r3 ite eq - ldreq r0, .L3976+60 - ldrne r0, .L3976+64 -.L3959: + ldreq r0, .L3990+4 + ldrne r0, .L3990+8 +.L3980: bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3913 - ldr r2, [sp, #8] - ldr r3, .L3976+68 + bne .L3949 + ldr r2, [sp] + ldr r3, .L3990+12 cmp r2, r3 - bne .L3965 - ldr r3, .L3976+56 - ldr r6, .L3976 + bne .L3983 + ldr r3, .L3990 + ldr r6, .L3990+16 cmp r4, r3 - bne .L3923 + bne .L3960 ldr r3, [r6, #1024] mov r0, r5 - add r1, sp, #8 + mov r1, sp movs r2, #16 ldr r3, [r3, #20] - str r3, [sp, #12] - strb r3, [sp, #16] + str r3, [sp, #4] + strb r3, [sp, #8] bl rk_copy_to_user cmp r0, #0 - beq .L3867 - b .L3965 -.L3923: + beq .L3930 + b .L3983 +.L3960: ldr r3, [r6, #1552] cmp r3, #10 - bhi .L3965 + bhi .L3983 ldr r1, [r6, #1024] - ldr r3, [sp, #12] + ldr r3, [sp, #4] ldr r2, [r1, #24] cmp r2, r3 - beq .L3924 - cbz r2, .L3924 + beq .L3961 + cbz r2, .L3961 mov r1, r3 - ldr r0, .L3976+72 + ldr r0, .L3990+20 bl printk ldr r3, [r6, #1552] adds r3, r3, #1 str r3, [r6, #1552] - b .L3965 -.L3924: +.L3983: + mvn r0, #13 + b .L3930 +.L3961: movs r2, #0 cmp r4, r7 str r2, [r6, #1552] @@ -24581,124 +24677,110 @@ rknand_sys_storage_ioctl: str r2, [r1, #20] bl StorageSysDataStore adds r0, r0, #1 - bne .L3962 - mvn r4, #1 - b .L3894 -.L3977: - .align 2 -.L3976: - .word .LANCHOR5 - .word -1067903959 - .word .LC194 - .word 1263358532 - .word .LC195 - .word 1112753220 - .word 1146313043 - .word .LC196 - .word 1112755781 - .word .LC197 - .word 1094995539 - .word .LANCHOR5+1040 - .word 1074031666 - .word .LC198 - .word 1074031676 - .word .LC199 - .word .LC200 - .word 1280262987 - .word .LC201 -.L3889: - ldr r0, .L3978 + bne .L3982 + b .L3987 +.L3940: + ldr r0, .L3990+24 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3913 - ldr r2, [sp, #8] - ldr r3, .L3978+4 + bne .L3949 + ldr r2, [sp] + ldr r3, .L3990+28 cmp r2, r3 - bne .L3910 - ldr r2, [sp, #12] + bne .L3946 + ldr r2, [sp, #4] cmp r2, #504 - bhi .L3910 - ldr r3, .L3978+8 - add r0, sp, #16 - cmp r4, r3 - ldr r3, .L3978+12 + bhi .L3946 + ldr r3, .L3990+16 + cmp r4, r6 + add r0, sp, #8 ite eq ldreq r1, [r3, #1556] ldrne r1, [r3, #1560] adds r1, r1, #8 -.L3969: +.L3984: bl memcpy -.L3970: - mov r0, r5 - add r1, sp, #8 - mov r2, #520 - b .L3956 -.L3886: - ldr r0, .L3978+16 + b .L3978 +.L3942: + ldr r0, .L3990+32 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3913 - ldr r2, [sp, #8] - ldr r3, .L3978+4 + bne .L3949 + ldr r2, [sp] + ldr r3, .L3990+28 cmp r2, r3 - bne .L3910 - ldr r2, [sp, #12] + bne .L3946 + ldr r2, [sp, #4] cmp r2, #504 - bhi .L3910 - cmp r4, r6 - add r2, r2, #8 - ldr r4, .L3978+12 - bne .L3928 - add r1, sp, #8 + bhi .L3946 + ldr r3, .L3990+36 + adds r2, r2, #8 + cmp r4, r3 + ldr r4, .L3990+16 + bne .L3965 + mov r1, sp ldr r0, [r4, #1556] bl memcpy movs r0, #2 ldr r1, [r4, #1556] - b .L3963 -.L3928: - add r1, sp, #8 + b .L3981 +.L3965: + mov r1, sp ldr r0, [r4, #1560] bl memcpy ldr r1, [r4, #1560] movs r0, #3 -.L3963: +.L3981: bl StorageSysDataStore mov r4, r0 -.L3894: - ldr r0, .L3978+20 + b .L3945 +.L3935: + bl rknand_dev_flush +.L3982: + movs r4, #0 + b .L3945 +.L3987: + mvn r4, #1 +.L3945: + ldr r0, .L3990+40 mov r1, r4 bl printk mov r0, r4 - b .L3867 -.L3929: + b .L3930 +.L3966: mvn r0, #21 - b .L3867 -.L3930: + b .L3930 +.L3967: mvn r0, #1 - b .L3867 -.L3931: + b .L3930 +.L3968: mvn r0, #2 -.L3867: - add sp, sp, #532 +.L3930: + add sp, sp, #524 @ sp needed pop {r4, r5, r6, r7, pc} -.L3979: +.L3991: .align 2 -.L3978: - .word .LC202 - .word 1145980246 - .word 1074034192 +.L3990: + .word 1074031676 + .word .LC193 + .word .LC194 + .word 1280262987 .word .LANCHOR5 - .word .LC203 - .word .LC204 + .word .LC195 + .word .LC196 + .word 1145980246 + .word .LC197 + .word 1074034193 + .word .LC198 .fnend .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 1 @@ -24713,21 +24795,21 @@ rk_ftl_storage_sys_init: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r2, #512 - ldr r4, .L3989 + ldr r4, .L4001 mov r3, #-1 movs r5, #0 add r0, r4, #1040 - ldr r1, [r4, #992] - str r3, [r4, #1016] + ldr r1, [r4, #996] + str r3, [r4, #1020] add r3, r1, #512 str r3, [r4, #1024] str r1, [r4, #1036] add r3, r1, #1024 add r1, r1, #1536 str r3, [r4, #1556] - strb r5, [r4, #1008] - str r5, [r4, #1012] - str r5, [r4, #1020] + strb r5, [r4, #1012] + str r5, [r4, #1016] + str r5, [r4, #1564] str r1, [r4, #1560] bl ftl_memcpy ldr r6, [r4, #1036] @@ -24736,23 +24818,23 @@ rk_ftl_storage_sys_init: ldr r3, [r6, #16] ldr r7, [r6, #508] str r3, [r4, #1032] - cbz r7, .L3981 + cbz r7, .L3993 mov r0, r6 mov r1, #508 bl js_hash cmp r7, r0 - beq .L3981 + beq .L3993 str r5, [r6, #16] - ldr r0, .L3989+4 + ldr r0, .L4001+4 str r5, [r4, #1032] bl printk -.L3981: +.L3993: ldr r3, [r4, #1032] - cbz r3, .L3982 - ldr r2, .L3989+8 - ldr r3, .L3989 + cbz r3, .L3994 + ldr r2, .L4001+8 + ldr r3, .L4001 str r2, [r3, #1028] -.L3982: +.L3994: ldr r1, [r4, #1556] movs r0, #2 bl StorageSysDataLoad @@ -24761,11 +24843,11 @@ rk_ftl_storage_sys_init: bl StorageSysDataLoad pop {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L3990: +.L4002: .align 2 -.L3989: +.L4001: .word .LANCHOR5 - .word .LC205 + .word .LC199 .word -1067903959 .fnend .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init @@ -24796,62 +24878,62 @@ rk_ftl_vendor_storage_init: .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r0, #65536 bl ftl_malloc - ldr r6, .L4001 - str r0, [r6, #1564] + ldr r6, .L4013 + str r0, [r6, #1568] cmp r0, #0 - beq .L3998 + beq .L4010 mov r8, #0 - ldr r9, .L4001+8 + ldr r9, .L4013+8 mov r10, r6 mov r4, r8 mov r7, r8 -.L3996: +.L4008: lsls r0, r7, #7 movs r1, #128 - ldr r2, [r6, #1564] + ldr r2, [r6, #1568] bl FlashBootVendorRead cmp r0, #0 - bne .L3994 - ldr r3, [r10, #1564] - ldr r0, .L4001+4 + bne .L4006 + ldr r3, [r10, #1568] + ldr r0, .L4013+4 add r2, r3, #65280 adds r2, r2, #252 ldr r1, [r3] ldr r3, [r3, #4] ldr r2, [r2] bl printk - ldr r5, [r10, #1564] + ldr r5, [r10, #1568] ldr r3, [r5] cmp r3, r9 - bne .L3995 + bne .L4007 add r3, r5, #65280 ldr r2, [r5, #4] adds r3, r3, #252 ldr r3, [r3] cmp r3, r2 - bne .L3995 + bne .L4007 cmp r4, r3 itt cc movcc r8, r7 movcc r4, r3 -.L3995: - cbnz r7, .L4000 +.L4007: + cbnz r7, .L4012 movs r7, #1 - b .L3996 -.L4000: - cbz r4, .L3997 + b .L4008 +.L4012: + cbz r4, .L4009 lsl r0, r8, #7 movs r1, #128 mov r2, r5 bl FlashBootVendorRead - cbnz r0, .L3994 + cbnz r0, .L4006 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3997: +.L4009: mov r0, r5 mov r1, r4 mov r2, #65536 bl memset - ldr r3, .L4001+8 + ldr r3, .L4013+8 str r7, [r5, #4] mov r0, r4 str r3, [r5] @@ -24861,21 +24943,21 @@ rk_ftl_vendor_storage_init: strh r4, [r5, #12] @ movhi strh r3, [r5, #14] @ movhi pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3994: - ldr r0, [r6, #1564] +.L4006: + ldr r0, [r6, #1568] bl kfree movs r3, #0 mov r0, #-1 - str r3, [r6, #1564] + str r3, [r6, #1568] pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3998: +.L4010: mvn r0, #11 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L4002: +.L4014: .align 2 -.L4001: +.L4013: .word .LANCHOR5 - .word .LC206 + .word .LC200 .word 1380668996 .fnend .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init @@ -24890,18 +24972,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, .L4009 - ldr r5, [r3, #1564] - cbz r5, .L4008 + ldr r3, .L4021 + ldr r5, [r3, #1568] + cbz r5, .L4020 ldrh r7, [r5, #10] movs r3, #0 -.L4005: +.L4017: cmp r3, r7 - bcs .L4008 + bcs .L4020 add r6, r5, r3, lsl #3 ldrh r4, [r6, #16] cmp r4, r0 - bne .L4006 + bne .L4018 ldrh r3, [r6, #20] mov r0, r1 cmp r2, r3 @@ -24914,15 +24996,15 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L4006: +.L4018: adds r3, r3, #1 - b .L4005 -.L4008: + b .L4017 +.L4020: mov r0, #-1 pop {r3, r4, r5, r6, r7, pc} -.L4010: +.L4022: .align 2 -.L4009: +.L4021: .word .LANCHOR5 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -24938,45 +25020,45 @@ 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, .L4033 + ldr r2, .L4045 .pad #28 sub sp, sp, #28 mov ip, r0 mov r3, r1 - ldr r4, [r2, #1564] + ldr r4, [r2, #1568] cmp r4, #0 - beq .L4026 + beq .L4038 add r7, r9, #63 ldrh r1, [r4, #8] ldrh r2, [r4, #10] bic r7, r7, #63 movs r6, #0 str r1, [sp, #4] -.L4013: +.L4025: cmp r6, r2 - bcs .L4031 + bcs .L4043 add r5, r4, r6, lsl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L4014 + bne .L4026 ldrh r1, [r5, #20] add fp, r4, #1024 adds r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L4015 + bls .L4027 ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4026 + bcc .L4038 ldrh r8, [r5, #18] subs r2, r2, #1 str r2, [sp, #12] -.L4016: +.L4028: ldr r2, [sp, #12] adds r5, r5, #8 cmp r6, r2 - bcs .L4032 + bcs .L4044 ldrh r2, [r5, #16] add r0, fp, r8 ldrh r1, [r5, #18] @@ -24995,8 +25077,8 @@ rk_ftl_vendor_write: bl memcpy ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L4016 -.L4032: + b .L4028 +.L4044: add r6, r4, r6, lsl #3 uxth r8, r8 add r0, fp, r8 @@ -25014,22 +25096,22 @@ rk_ftl_vendor_write: add r3, r3, r5 subs r7, r3, r7 strh r7, [r4, #14] @ movhi - b .L4030 -.L4015: + b .L4042 +.L4027: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, r0, fp bl memcpy strh r9, [r5, #20] @ movhi - b .L4030 -.L4014: + b .L4042 +.L4026: adds r6, r6, #1 - b .L4013 -.L4031: + b .L4025 +.L4043: ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4026 + bcc .L4038 add r2, r4, r2, lsl #3 uxth r7, r7 subs r1, r1, r7 @@ -25049,7 +25131,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] adds r3, r3, #1 strh r3, [r4, #10] @ movhi -.L4030: +.L4042: ldr r3, [r4, #4] movw r2, #65532 movs r1, #128 @@ -25068,16 +25150,16 @@ rk_ftl_vendor_write: lsls r0, r3, #7 bl FlashBootVendorWrite movs r0, #0 - b .L4012 -.L4026: + b .L4024 +.L4038: mov r0, #-1 -.L4012: +.L4024: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4034: +.L4046: .align 2 -.L4033: +.L4045: .word .LANCHOR5 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -25098,34 +25180,34 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc mov r4, r0 cmp r0, #0 - beq .L4044 - ldr r3, .L4051 + beq .L4056 + ldr r3, .L4063 cmp r6, r3 - beq .L4038 + beq .L4050 adds r3, r3, #1 cmp r6, r3 - beq .L4039 - b .L4050 -.L4038: + beq .L4051 + b .L4062 +.L4050: mov r1, r5 movs r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4050 + bne .L4062 ldr r2, [r4] - ldr r3, .L4051+4 + ldr r3, .L4063+4 cmp r2, r3 - beq .L4041 -.L4042: + beq .L4053 +.L4054: mov r5, #-1 - b .L4037 -.L4041: + b .L4049 +.L4053: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read adds r3, r0, #1 - beq .L4042 + beq .L4054 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -25136,50 +25218,49 @@ rk_ftl_vendor_storage_ioctl: ite eq moveq r5, #0 mvnne r5, #13 - b .L4037 -.L4039: + b .L4049 +.L4051: mov r1, r5 movs r2, #8 bl rk_copy_from_user - cbnz r0, .L4050 + cbnz r0, .L4062 ldr r2, [r4] - ldr r3, .L4051+4 + ldr r3, .L4063+4 cmp r2, r3 - bne .L4042 + bne .L4054 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L4042 + bhi .L4054 mov r0, r4 mov r1, r5 adds r2, r2, #8 bl rk_copy_from_user - cbnz r0, .L4050 + cbnz r0, .L4062 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L4037 -.L4050: + b .L4049 +.L4062: mvn r5, #13 -.L4037: +.L4049: mov r0, r4 bl kfree - b .L4036 -.L4044: + b .L4048 +.L4056: mov r5, #-1 -.L4036: +.L4048: mov r0, r5 pop {r4, r5, r6, pc} -.L4052: +.L4064: .align 2 -.L4051: +.L4063: .word 1074034177 .word 1448232273 .fnend .size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl - .global gTable_Crc32 .global SecureBootUnlockTryCount .global SecureBootCheckOK .global SecureBootEn @@ -25408,6 +25489,7 @@ rk_ftl_vendor_storage_ioctl: .global gNandMaxChip .global gNandMaxDie .global gFlashInterfaceMode + .global gFlashCurMode .global gFlashSlcMode .global gFlashOnfiModeEn .global gFlashToggleModeEn @@ -25425,9 +25507,9 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 2 .LANCHOR3 = . + 0 - .type __func__.20269, %object - .size __func__.20269, 11 -__func__.20269: + .type __func__.20390, %object + .size __func__.20390, 11 +__func__.20390: .ascii "FtlMemInit\000" .LC0: .byte 60 @@ -25435,32 +25517,169 @@ __func__.20269: .byte 24 .byte 16 .space 1 - .type __func__.21044, %object - .size __func__.21044, 17 -__func__.21044: + .type samsung_14nm_slc_rr, %object + .size samsung_14nm_slc_rr, 26 +samsung_14nm_slc_rr: + .byte 0 + .byte 10 + .byte -10 + .byte 20 + .byte -20 + .byte 30 + .byte -30 + .byte 40 + .byte -40 + .byte 50 + .byte -50 + .byte 60 + .byte -60 + .byte -70 + .byte -80 + .byte -90 + .byte -100 + .byte -110 + .byte -120 + .byte -9 + .byte 70 + .byte 80 + .byte 90 + .byte -125 + .byte -115 + .byte 100 + .space 2 + .type samsung_14nm_mlc_rr, %object + .size samsung_14nm_mlc_rr, 104 +samsung_14nm_mlc_rr: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -4 + .byte 3 + .byte -4 + .byte -6 + .byte 6 + .byte 0 + .byte 6 + .byte -10 + .byte -10 + .byte 4 + .byte -10 + .byte 16 + .byte 12 + .byte -4 + .byte 12 + .byte 8 + .byte -16 + .byte 10 + .byte -16 + .byte 24 + .byte 18 + .byte -14 + .byte 18 + .byte -4 + .byte -22 + .byte -16 + .byte -22 + .byte -8 + .byte 24 + .byte -9 + .byte 24 + .byte 8 + .byte -28 + .byte -4 + .byte -28 + .byte 16 + .byte 30 + .byte 10 + .byte 30 + .byte 10 + .byte -34 + .byte 6 + .byte -34 + .byte 0 + .byte 36 + .byte -8 + .byte 36 + .byte -8 + .byte -40 + .byte -2 + .byte -40 + .byte -20 + .byte -46 + .byte -4 + .byte -46 + .byte -30 + .byte 3 + .byte 0 + .byte 3 + .byte -3 + .byte -2 + .byte -4 + .byte -2 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -10 + .byte -6 + .byte -8 + .byte -6 + .byte -14 + .byte -9 + .byte -8 + .byte -9 + .byte -18 + .byte -52 + .byte 22 + .byte -52 + .byte 10 + .byte 42 + .byte 4 + .byte 42 + .byte 4 + .byte 48 + .byte -9 + .byte 48 + .byte 4 + .byte -58 + .byte 12 + .byte -58 + .byte 0 + .byte -64 + .byte -24 + .byte -64 + .byte -6 + .byte 9 + .byte 18 + .byte 9 + .byte 8 + .type __func__.21169, %object + .size __func__.21169, 17 +__func__.21169: .ascii "FtlDumpBlockInfo\000" .space 3 - .type __func__.21063, %object - .size __func__.21063, 16 -__func__.21063: + .type __func__.21188, %object + .size __func__.21188, 16 +__func__.21188: .ascii "FtlScanAllBlock\000" - .type __func__.21329, %object - .size __func__.21329, 17 -__func__.21329: + .type __func__.21456, %object + .size __func__.21456, 17 +__func__.21456: .ascii "ftl_scan_all_ppa\000" .space 3 - .type __func__.21012, %object - .size __func__.21012, 12 -__func__.21012: + .type __func__.21137, %object + .size __func__.21137, 12 +__func__.21137: .ascii "FtlCheckVpc\000" - .type __func__.21311, %object - .size __func__.21311, 21 -__func__.21311: + .type __func__.21436, %object + .size __func__.21436, 21 +__func__.21436: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.20342, %object - .size __func__.20342, 8 -__func__.20342: + .type __func__.20463, %object + .size __func__.20463, 8 +__func__.20463: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -25618,7 +25837,7 @@ __func__.20342: .LC76: .ascii "%s\012\000" .LC77: - .ascii "FTL version: 5.0.60 20200218\000" + .ascii "FTL version: 5.0.63 20200923\000" .LC78: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" @@ -25656,238 +25875,227 @@ __func__.20342: .LC94: .ascii "micron RR %d row=%x,count %d,status=%d\012\000" .LC95: - .ascii "ECC:%d\012\000" + .ascii "samsung RR %d row=%x,count %d,status=%d\012\000" .LC96: - .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" + .ascii "ECC:%d\012\000" .LC97: - .ascii "FlashLoadPhyInfo fail %x!!\012\000" + .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" .LC98: - .ascii "Read pageadd=%x ecc=%x err=%x\012\000" + .ascii "FlashLoadPhyInfo fail %x!!\012\000" .LC99: - .ascii "data:\000" + .ascii "Read pageadd=%x ecc=%x err=%x\012\000" .LC100: - .ascii "spare:\000" + .ascii "data:\000" .LC101: - .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" + .ascii "spare:\000" .LC102: - .ascii "FLFB:%d %d\012\000" + .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" .LC103: - .ascii "prog error: = %x\012\000" + .ascii "FLFB:%d %d\012\000" .LC104: - .ascii "prog read error: = %x\012\000" + .ascii "prog error: = %x\012\000" .LC105: - .ascii "prog read s error: = %x %x %x\012\000" + .ascii "prog read error: = %x\012\000" .LC106: - .ascii "prog read d error: = %x %x %x\012\000" + .ascii "prog read REFRESH: = %x\012\000" .LC107: + .ascii "prog read s error: = %x %x %x\012\000" +.LC108: + .ascii "prog read d error: = %x %x %x\012\000" +.LC109: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012" .ascii "\000" -.LC108: - .ascii "...%s enter...\012\000" -.LC109: - .ascii "superBlkID = %x vpc=%x\012\000" .LC110: - .ascii "flashmode = %x pagenum = %x %x\012\000" + .ascii "...%s enter...\012\000" .LC111: + .ascii "superBlkID = %x vpc=%x\012\000" +.LC112: + .ascii "flashmode = %x pagenum = %x %x\012\000" +.LC113: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC112: +.LC114: .ascii "blk = %x vpc=%x mode = %x\012\000" -.LC113: +.LC115: .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC114: +.LC116: .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC115: - .ascii "ftl_scan_all_ppa blk %x page %x\012\000" -.LC116: +.LC117: + .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000" +.LC118: + .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........." + .ascii "..... is bad block\012\000" +.LC119: .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC117: - .ascii "%s finished\012\000" -.LC118: - .ascii "FlashMakeFactorBbt %d\012\000" -.LC119: - .ascii "bad block:%d %d\012\000" .LC120: - .ascii "FMFB:%d %d\012\000" + .ascii "%s finished\012\000" .LC121: - .ascii "E:bad block:%d\012\000" + .ascii "FlashMakeFactorBbt %d\012\000" .LC122: - .ascii "FMFB:Save %d %d\012\000" + .ascii "bad block:%d %d\012\000" .LC123: - .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" + .ascii "FMFB:%d %d\012\000" .LC124: - .ascii "FtlBbmTblFlush error:%x\012\000" + .ascii "E:bad block:%d\012\000" .LC125: - .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" + .ascii "FMFB:Save %d %d\012\000" .LC126: - .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" + .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" .LC127: - .ascii "decrement_vpc_count %x = %d\012\000" + .ascii "FtlBbmTblFlush error:%x\012\000" .LC128: - .ascii "decrement_vpc_count %x = %d in free list\012\000" + .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" .LC129: - .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" + .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" .LC130: - .ascii "page map lost: %x %x\012\000" + .ascii "decrement_vpc_count %x = %d\012\000" .LC131: - .ascii "FtlMapWritePage error = %x\012\000" + .ascii "decrement_vpc_count %x = %d in free list\012\000" .LC132: - .ascii "FtlMapWritePage error = %x error count = %d\012\000" + .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" .LC133: - .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" + .ascii "page map lost: %x %x\012\000" .LC134: - .ascii "no ect\000" + .ascii "FtlMapWritePage error = %x\012\000" .LC135: - .ascii "slc mode\000" + .ascii "FtlMapWritePage error = %x error count = %d\012\000" .LC136: - .ascii "BBT:\000" + .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" .LC137: - .ascii "region_id = %x phyAddr = %x\012\000" + .ascii "no ect\000" .LC138: - .ascii "map_ppn:\000" + .ascii "slc mode\000" .LC139: - .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" + .ascii "BBT:\000" .LC140: - .ascii "FtlCheckVpc2 %x = %x %x\012\000" + .ascii "region_id = %x phyAddr = %x\012\000" .LC141: - .ascii "free blk vpc error %x = %x %x\012\000" + .ascii "map_ppn:\000" .LC142: - .ascii "Ftlscanalldata = %x\012\000" + .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" .LC143: - .ascii "scan lpa = %x ppa= %x\012\000" + .ascii "FtlCheckVpc2 %x = %x %x\012\000" .LC144: + .ascii "free blk vpc error %x = %x %x\012\000" +.LC145: + .ascii "error_flag %x\012\000" +.LC146: + .ascii "Ftlscanalldata = %x\012\000" +.LC147: + .ascii "scan lpa = %x ppa= %x\012\000" +.LC148: .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC145: - .ascii "RSB refresh addr %x\012\000" -.LC146: - .ascii "spuer block %x vpn is 0\012 \000" -.LC147: - .ascii "g_recovery_ppa %x ver %x\012 \000" -.LC148: - .ascii "FtlCheckVpc %x = %x %x\012\000" .LC149: - .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" + .ascii "RSB refresh addr %x\012\000" .LC150: - .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" + .ascii "spuer block %x vpn is 0\012 \000" .LC151: - .ascii "GC des block %x done\012\000" + .ascii "g_recovery_ppa %x ver %x\012 \000" .LC152: - .ascii "%d GC datablk = %x vpc %x %x\012\000" + .ascii "FtlCheckVpc %x = %x %x\012\000" .LC153: - .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" + .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" .LC154: - .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" + .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" .LC155: - .ascii "rk_ftl_de_init %x\012\000" + .ascii "GC des block %x done\012\000" .LC156: + .ascii "too many bad block = %d %d\012\000" +.LC157: + .ascii "%d GC datablk = %x vpc %x %x\012\000" +.LC158: + .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" +.LC159: + .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" +.LC160: + .ascii "rk_ftl_de_init %x\012\000" +.LC161: .ascii "...%s: no bad block mapping table, format device\012" .ascii "\000" -.LC157: - .ascii "...%s FtlSysBlkInit error ,format device!\012\000" -.LC158: - .ascii "FtlInit %x\012\000" -.LC159: - .ascii "fix power lost blk = %x vpc=%x\012\000" -.LC160: - .ascii "erase power lost blk = %x vpc=%x\012\000" -.LC161: - .ascii "FtlWrite: lpa error:%x %x\012\000" .LC162: + .ascii "...%s FtlSysBlkInit error ,format device!\012\000" +.LC163: + .ascii "FtlInit %x\012\000" +.LC164: + .ascii "fix power lost blk = %x vpc=%x\012\000" +.LC165: + .ascii "erase power lost blk = %x vpc=%x\012\000" +.LC166: + .ascii "FtlWrite: lpa error:%x %x\012\000" +.LC167: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012" .ascii "\000" -.LC163: +.LC168: .ascii ":\000" -.LC164: +.LC169: .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC165: - .ascii "Mblk:\000" -.LC166: - .ascii "L2P:\000" -.LC167: - .ascii "L2PC:\000" -.LC168: - .ascii "IdBlockReadData %x %x\012\000" -.LC169: - .ascii "IdBlockReadData %x %x ret= %x\012\000" .LC170: - .ascii "write_idblock fix data %x %x\012\000" + .ascii "Mblk:\000" .LC171: - .ascii "idblk:\000" + .ascii "L2P:\000" .LC172: - .ascii "idb reverse %x %x\012\000" + .ascii "L2PC:\000" .LC173: - .ascii "write_idblock totle_sec %x %x %x %x\012\000" + .ascii "write_idblock fix data %x %x\012\000" .LC174: - .ascii "IDBlockWriteData %x %x\012\000" + .ascii "idblk:\000" .LC175: - .ascii "IDBlockWriteData %x %x ret= %x\012\000" + .ascii "idb reverse %x %x\012\000" .LC176: + .ascii "write_idblock totle_sec %x %x %x %x\012\000" +.LC177: + .ascii "IDBlockWriteData %x %x\012\000" +.LC178: + .ascii "IDBlockWriteData %x %x ret= %x\012\000" +.LC179: + .ascii "IdBlockReadData %x %x\012\000" +.LC180: + .ascii "IdBlockReadData %x %x ret= %x\012\000" +.LC181: .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x" .ascii "\012\000" -.LC177: - .ascii "write\000" -.LC178: - .ascii "read\000" -.LC179: - .ascii "write_idblock error %d\012\000" -.LC180: - .ascii "wl_lba %p %x %x %x\012\000" -.LC181: - .ascii "READ_SECTOR_IO\012\000" .LC182: - .ascii "rk_copy_from_user error\012\000" + .ascii "write\000" .LC183: - .ascii "READ_SECTOR_IO %x %x\012\000" + .ascii "read\000" .LC184: - .ascii "rk_copy_to_user error\012\000" + .ascii "write_idblock error %d\012\000" .LC185: - .ascii "WRITE_SECTOR_IO\012\000" + .ascii "wl_lba %p %x %x %x\012\000" .LC186: - .ascii "WRITE_SECTOR_IO %x %x\012\000" -.LC187: - .ascii "END_WRITE_SECTOR_IO\012\000" -.LC188: - .ascii "END_WRITE_SECTOR_IO %x %x\012\000" -.LC189: - .ascii "GET_FLASH_INFO_IO\012\000" -.LC190: - .ascii "GET_BAD_BLOCK_IO\012\000" -.LC191: - .ascii "GET_LOCK_FLAG_IO\012\000" -.LC192: - .ascii "GET_PUBLIC_KEY_IO\012\000" -.LC193: .ascii "RKNAND_GET_DRM_KEY\012\000" -.LC194: +.LC187: + .ascii "rk_copy_from_user error\012\000" +.LC188: .ascii "RKNAND_STORE_DRM_KEY\012\000" -.LC195: +.LC189: .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" -.LC196: +.LC190: .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" -.LC197: +.LC191: .ascii "RKNAND_GET_SN_SECTOR\012\000" -.LC198: +.LC192: .ascii "RKNAND_LOADER_UNLOCK\012\000" -.LC199: +.LC193: .ascii "RKNAND_LOADER_STATUS\012\000" -.LC200: +.LC194: .ascii "RKNAND_LOADER_LOCK\012\000" -.LC201: +.LC195: .ascii "LockKey not match %d\012\000" -.LC202: +.LC196: .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" -.LC203: +.LC197: .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" -.LC204: +.LC198: .ascii "return ret = %lx\012\000" -.LC205: +.LC199: .ascii "secureBootEn check error\012\000" -.LC206: +.LC200: .ascii "\0013vendor storage %x,%x,%x\012\000" .data .align 2 @@ -26279,7 +26487,7 @@ gNandParaInfo: gFtlInitStatus: .word -1 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2656 + .size NandFlashParaTbl, 2752 NandFlashParaTbl: .byte 6 .byte 44 @@ -27608,6 +27816,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte -119 + .byte -120 + .byte 36 + .byte 59 + .byte -87 + .byte 0 + .byte 7 + .byte 1 + .byte 16 + .short 192 + .byte 2 + .byte 2 + .short 2048 + .short 279 + .byte 12 + .byte 0 + .byte 24 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .space 4 + .byte 6 .byte -104 .byte -41 .byte -124 @@ -27972,6 +28206,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte -104 + .byte -34 + .byte -108 + .byte -109 + .byte 118 + .byte -47 + .byte 1 + .byte 1 + .byte 32 + .short 256 + .byte 2 + .byte 2 + .short 1074 + .short 1497 + .byte 2 + .byte 35 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 4 + .byte 0 + .byte 0 + .byte 0 + .space 4 + .byte 6 .byte 69 .byte -34 .byte -108 @@ -28283,7 +28543,7 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 - .byte 6 + .byte 5 .byte -20 .byte -41 .byte -108 @@ -28439,6 +28699,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 + .byte 6 + .byte -20 + .byte -34 + .byte -108 + .byte -61 + .byte -92 + .byte -54 + .byte 0 + .byte 1 + .byte 32 + .short 792 + .byte 2 + .byte 1 + .short 688 + .short 1217 + .byte 11 + .byte 50 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .space 4 .type NandOptPara, %object .size NandOptPara, 128 NandOptPara: @@ -28587,265 +28873,6 @@ ftl_gc_temp_block_bops_scan_page_addr: .size power_up_flag, 4 power_up_flag: .word 1 - .type gTable_Crc32, %object - .size gTable_Crc32, 1024 -gTable_Crc32: - .word 0 - .word 79760823 - .word 159521646 - .word 222500569 - .word 319043292 - .word 398801771 - .word 445001138 - .word 507977733 - .word 638086584 - .word 583622671 - .word 797603542 - .word 726367073 - .word 890002276 - .word 835540691 - .word 1015955466 - .word 944721341 - .word 1276173168 - .word 1221711559 - .word 1167245342 - .word 1096011177 - .word 1595207084 - .word 1540743195 - .word 1452734146 - .word 1381497717 - .word 1780004552 - .word 1859763071 - .word 1671081382 - .word 1734058001 - .word 2031910932 - .word 2111671715 - .word 1889442682 - .word 1952421581 - .word -1742620960 - .word -1662993577 - .word -1851544178 - .word -1788698567 - .word -1960476612 - .word -1880846965 - .word -2102944942 - .word -2040097051 - .word -1104553128 - .word -1159145745 - .word -1213480906 - .word -1284846207 - .word -1389499004 - .word -1444093901 - .word -1531971862 - .word -1603339427 - .word -734958192 - .word -789553113 - .word -575441154 - .word -646808759 - .word -952804532 - .word -1007397125 - .word -826851294 - .word -898216555 - .word -231145432 - .word -151515745 - .word -71623866 - .word -8775951 - .word -516081932 - .word -436454589 - .word -390124134 - .word -327278547 - .word 880959607 - .word 809725376 - .word 1023441689 - .word 968980142 - .word 663115435 - .word 591878940 - .word 772033989 - .word 717570162 - .word 311037391 - .word 374014072 - .word 453514913 - .word 533273366 - .word 26098451 - .word 89077412 - .word 135012477 - .word 214773194 - .word 2022882055 - .word 2085861040 - .word 1896915049 - .word 1976675806 - .word 1805028827 - .word 1868005484 - .word 1645516469 - .word 1725274882 - .word 1587205823 - .word 1515969288 - .word 1461243345 - .word 1406779494 - .word 1302257763 - .word 1231023572 - .word 1142749965 - .word 1088288442 - .word -1398548841 - .word -1469916384 - .word -1524511239 - .word -1579106226 - .word -1079517109 - .word -1150882308 - .word -1239024859 - .word -1293617518 - .word -1968456913 - .word -1905609064 - .word -2094423999 - .word -2014794250 - .word -1716548109 - .word -1653702588 - .word -1876060515 - .word -1796433110 - .word -525136409 - .word -462290864 - .word -382658935 - .word -303031490 - .word -206095557 - .word -143247732 - .word -97181611 - .word -17551902 - .word -960798625 - .word -1032163864 - .word -818316495 - .word -872909178 - .word -708880765 - .word -780248268 - .word -599962131 - .word -654557094 - .word 1761919214 - .word 1841679705 - .word 1619450752 - .word 1682429495 - .word 2046883378 - .word 2126642053 - .word 1937960284 - .word 2000937195 - .word 1326230870 - .word 1271767265 - .word 1183757880 - .word 1112521615 - .word 1544067978 - .word 1489606205 - .word 1435140324 - .word 1363905875 - .word 622074782 - .word 567612969 - .word 748028144 - .word 676793671 - .word 907029826 - .word 852566261 - .word 1066546732 - .word 995310491 - .word 52196902 - .word 131955601 - .word 178154824 - .word 241131775 - .word 270024954 - .word 349785421 - .word 429546388 - .word 492525091 - .word -249203186 - .word -169575495 - .word -123245216 - .word -60399401 - .word -501137198 - .word -421507739 - .word -341615684 - .word -278768117 - .word -684909642 - .word -739502591 - .word -558956328 - .word -630321809 - .word -1003934358 - .word -1058529059 - .word -844417532 - .word -915784781 - .word -1120555650 - .word -1175150391 - .word -1263028720 - .word -1334395993 - .word -1372480606 - .word -1427073515 - .word -1481408308 - .word -1552773765 - .word -1690451770 - .word -1610822287 - .word -1832920152 - .word -1770072545 - .word -2009467366 - .word -1929839699 - .word -2118390412 - .word -2055544637 - .word 1569104025 - .word 1497869614 - .word 1409596407 - .word 1355134528 - .word 1317180997 - .word 1245944818 - .word 1191218475 - .word 1136754844 - .word 2072956193 - .word 2135933078 - .word 1913443919 - .word 1993202680 - .word 1753938941 - .word 1816917578 - .word 1627971731 - .word 1707732260 - .word 295074793 - .word 358053470 - .word 403988615 - .word 483749168 - .word 43142453 - .word 106119298 - .word 185620059 - .word 265378796 - .word 933107281 - .word 861871078 - .word 1042025791 - .word 987562120 - .word 614080653 - .word 542846266 - .word 756562915 - .word 702101076 - .word -978905479 - .word -1050272818 - .word -869987049 - .word -924581728 - .word -693952347 - .word -765317870 - .word -551470133 - .word -606062980 - .word -475038783 - .word -412191114 - .word -366124881 - .word -286495464 - .word -257209059 - .word -194363222 - .word -114731405 - .word -35103804 - .word -1984443127 - .word -1921597250 - .word -2143955353 - .word -2064327728 - .word -1699480619 - .word -1636632990 - .word -1825447749 - .word -1745818356 - .word -1346395983 - .word -1417761530 - .word -1505903649 - .word -1560496536 - .word -1128556947 - .word -1199924262 - .word -1254519549 - .word -1309114188 .bss .align 2 .LANCHOR0 = . + 0 @@ -28874,6 +28901,10 @@ gNandRandomizer: .size gNandChipMap, 32 gNandChipMap: .space 32 + .type gpNandParaInfo, %object + .size gpNandParaInfo, 4 +gpNandParaInfo: + .space 4 .type gNandOptPara, %object .size gNandOptPara, 32 gNandOptPara: @@ -28934,10 +28965,6 @@ DieAddrs: .type FlashWaitBusyScheduleEn, %object .size FlashWaitBusyScheduleEn, 4 FlashWaitBusyScheduleEn: - .space 4 - .type gpNandParaInfo, %object - .size gpNandParaInfo, 4 -gpNandParaInfo: .space 4 .type g_retryMode, %object .size g_retryMode, 1 @@ -28964,6 +28991,10 @@ IDByte: .size gDieOp, 128 gDieOp: .space 128 + .type gFlashCurMode, %object + .size gFlashCurMode, 1 +gFlashCurMode: + .space 1 .type gFlashInterfaceMode, %object .size gFlashInterfaceMode, 1 gFlashInterfaceMode: @@ -28972,11 +29003,20 @@ gFlashInterfaceMode: .size gNandMaxDie, 1 gNandMaxDie: .space 1 - .space 2 + .space 1 .type DieCsIndex, %object .size DieCsIndex, 8 DieCsIndex: .space 8 + .type gMultiPageProgEn, %object + .size gMultiPageProgEn, 1 +gMultiPageProgEn: + .space 1 + .space 3 + .type g_inkDie_check_enable, %object + .size g_inkDie_check_enable, 4 +g_inkDie_check_enable: + .space 4 .type idb_flash_slc_mode, %object .size idb_flash_slc_mode, 4 idb_flash_slc_mode: @@ -29018,15 +29058,7 @@ gNandcEccBits: .size gNandFlashEccBits, 1 gNandFlashEccBits: .space 1 - .type gMultiPageProgEn, %object - .size gMultiPageProgEn, 1 -gMultiPageProgEn: - .space 1 - .space 2 - .type g_inkDie_check_enable, %object - .size g_inkDie_check_enable, 4 -g_inkDie_check_enable: - .space 4 + .space 3 .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: @@ -29790,10 +29822,6 @@ idb_buf: .type idb_last_lba, %object .size idb_last_lba, 4 idb_last_lba: - .space 4 - .type g_idb_buffer, %object - .size g_idb_buffer, 4 -g_idb_buffer: .space 4 .type gpDrmKeyInfo, %object .size gpDrmKeyInfo, 4 @@ -29826,6 +29854,10 @@ gpVendor0Info: .type gpVendor1Info, %object .size gpVendor1Info, 4 gpVendor1Info: + .space 4 + .type g_idb_buffer, %object + .size g_idb_buffer, 4 +g_idb_buffer: .space 4 .type g_vendor, %object .size g_vendor, 4 diff --git a/drivers/rk_nand/rk_ftl_arm_v8.S b/drivers/rk_nand/rk_ftl_arm_v8.S index 0a0cf928d26b..0363326b7012 100644 --- a/drivers/rk_nand/rk_ftl_arm_v8.S +++ b/drivers/rk_nand/rk_ftl_arm_v8.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: 2020-02-18 + * date: 2020-09-23 */ .cpu generic+fp+simd .file "rk_ftl_arm_v8.S" @@ -197,18 +197,28 @@ FlashBlockAlignInit: .global FlashReadCmd .type FlashReadCmd, %function FlashReadCmd: - adrp x3, .LANCHOR0 + adrp x4, .LANCHOR0 uxtb w0, w0 - add x3, x3, :lo12:.LANCHOR0 - sbfiz x5, x0, 4, 32 - add x3, x3, 8 - lsr w4, w1, 16 - add x2, x3, x5 + add x4, x4, :lo12:.LANCHOR0 + sbfiz x2, x0, 4, 32 stp x29, x30, [sp, -16]! + add x3, x4, 8 add x29, sp, 0 - ldrb w2, [x2,8] - ldr x3, [x3,x5] - add x2, x3, x2, lsl 8 + ldr x4, [x4,88] + add x5, x3, x2 + ldr x2, [x3,x2] + ldrb w4, [x4,7] + ldrb w3, [x5,8] + cmp w4, 1 + bne .L35 + sxtw x4, w3 + mov w5, 38 + add x4, x4, 8 + add x4, x2, x4, lsl 8 + str w5, [x4,8] +.L35: + ubfiz x3, x3, 8, 8 + add x2, x2, x3 and w3, w1, 255 str wzr, [x2,2056] str wzr, [x2,2052] @@ -216,8 +226,9 @@ FlashReadCmd: str w3, [x2,2052] lsr w3, w1, 8 str w3, [x2,2052] + lsr w3, w1, 16 + str w3, [x2,2052] mov w3, 48 - str w4, [x2,2052] str w3, [x2,2056] bl FlashSetRandomizer ldp x29, x30, [sp], 16 @@ -237,13 +248,13 @@ FlashReadDpDataOutCmd: add x29, sp, 0 ldr x6, [x4,x2] lsr w4, w1, 8 - ldrb w2, [x3,104] + ldrb w2, [x3,112] lsr w3, w1, 16 cmp w2, 1 ldrb w2, [x5,8] and w5, w1, 255 add x2, x6, x2, lsl 8 - bne .L36 + bne .L37 mov w6, 6 str w6, [x2,2056] str wzr, [x2,2052] @@ -251,8 +262,8 @@ FlashReadDpDataOutCmd: str w5, [x2,2052] str w4, [x2,2052] str w3, [x2,2052] - b .L38 -.L36: + b .L39 +.L37: str wzr, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] @@ -263,7 +274,7 @@ FlashReadDpDataOutCmd: str w3, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] -.L38: +.L39: mov w3, 224 str w3, [x2,2056] bl FlashSetRandomizer @@ -310,7 +321,7 @@ FlashEraseCmd: add x5, x4, x0 ldr x4, [x4,x0] ldrb w0, [x5,8] - cbz w2, .L41 + cbz w2, .L42 add x2, x4, x0, lsl 8 mov w5, 96 str w5, [x2,2056] @@ -322,7 +333,7 @@ FlashEraseCmd: str w5, [x2,2052] ldr w2, [x3,76] add w1, w1, w2 -.L41: +.L42: add x0, x4, x0, lsl 8 mov w2, 96 str w2, [x0,2056] @@ -349,7 +360,7 @@ FlashProgDpSecondCmd: add x7, x5, x4 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w6, [x2,99] + ldrb w6, [x2,107] ldrb w2, [x7,8] ldr x4, [x5,x4] add x2, x4, x2, lsl 8 @@ -399,7 +410,7 @@ FlashProgDpFirstCmd: add x1, x1, :lo12:.LANCHOR0 add x2, x1, 8 add x3, x2, x0 - ldrb w1, [x1,98] + ldrb w1, [x1,106] ldr x2, [x2,x0] ldrb w0, [x3,8] add x0, x0, 8 @@ -439,17 +450,17 @@ js_hash: mov w0, 42982 mov x2, 0 movk w0, 0x47c6, lsl 16 -.L50: +.L51: cmp w1, w2 - bls .L52 + bls .L53 lsl w3, w0, 5 ldrb w4, [x5,x2] add w3, w3, w0, lsr 2 add x2, x2, 1 add w3, w3, w4 eor w0, w0, w3 - b .L50 -.L52: + b .L51 +.L53: ret .size js_hash, .-js_hash .align 2 @@ -492,34 +503,34 @@ ToshibaSetRRPara: adrp x26, .LANCHOR0 mov w27, 85 mov x19, x2 -.L56: +.L57: add x25, x26, :lo12:.LANCHOR0 - ldrb w0, [x25,121] + ldrb w0, [x25,129] cmp w0, w20 - bls .L62 + bls .L63 add x0, x19, 256 str w27, [x22,8] ldrsb w0, [x20,x0] str w0, [x22,4] mov x0, 1000 bl __const_udelay - ldrb w0, [x25,120] + ldrb w0, [x25,128] cmp w0, 34 - bne .L57 + bne .L58 ldrsb w0, [x24,x20] - b .L61 -.L57: + b .L62 +.L58: cmp w0, 35 - bne .L59 + bne .L60 ldrsb w0, [x21,x20] - b .L61 -.L59: + b .L62 +.L60: ldrsb w0, [x23,400] -.L61: +.L62: str w0, [x22] add x20, x20, 1 - b .L56 -.L62: + b .L57 +.L63: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -546,11 +557,11 @@ SamsungSetRRPara: adrp x23, .LANCHOR0 mov w24, 161 mov x19, x2 -.L64: +.L65: add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,121] + ldrb w0, [x0,129] cmp w0, w20 - bls .L66 + bls .L67 str w24, [x21,8] add x0, x19, 408 str wzr, [x21] @@ -561,8 +572,8 @@ SamsungSetRRPara: str w0, [x21] mov x0, 1500 bl __const_udelay - b .L64 -.L66: + b .L65 +.L67: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -575,23 +586,23 @@ SamsungSetRRPara: ftl_flash_suspend: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldr x1, [x0,128] + ldr x1, [x0,136] ldr w2, [x1] - str w2, [x0,136] - ldr w2, [x1,4] - str w2, [x0,140] - ldr w2, [x1,8] str w2, [x0,144] - ldr w2, [x1,12] + ldr w2, [x1,4] str w2, [x0,148] - ldr w2, [x1,304] + ldr w2, [x1,8] str w2, [x0,152] - ldr w2, [x1,308] + ldr w2, [x1,12] str w2, [x0,156] + ldr w2, [x1,304] + str w2, [x0,160] + ldr w2, [x1,308] + str w2, [x0,164] ldr w2, [x1,336] ldr w1, [x1,344] - str w2, [x0,160] - str w1, [x0,164] + str w2, [x0,168] + str w1, [x0,172] ret .size ftl_flash_suspend, .-ftl_flash_suspend .align 2 @@ -601,8 +612,8 @@ LogAddr2PhyAddr: adrp x7, .LANCHOR0 uxtb w4, w4 add x6, x7, :lo12:.LANCHOR0 - ldrh w8, [x6,182] - ldrh w5, [x6,180] + ldrh w8, [x6,190] + ldrh w5, [x6,188] ldrh w9, [x6,76] ldrb w6, [x6,72] mul w5, w5, w8 @@ -617,29 +628,29 @@ LogAddr2PhyAddr: udiv w10, w6, w5 msub w5, w10, w5, w6 uxth w6, w5 - bne .L70 + bne .L71 add x1, x7, :lo12:.LANCHOR0 - ldrb w5, [x1,196] - cbnz w5, .L70 - add x1, x1, 200 + ldrb w5, [x1,204] + cbnz w5, .L71 + add x1, x1, 208 ldrh w8, [x1,w8,sxtw 1] -.L70: +.L71: add x7, x7, :lo12:.LANCHOR0 cmp w4, 1 - add x7, x7, 1224 + add x7, x7, 1232 mov w1, 0 ldr w5, [x7,w10,uxtw 2] madd w5, w6, w9, w5 add w5, w5, w8 str w5, [x2] str w10, [x3] - bls .L71 + bls .L72 ldr w1, [x0,4] ldr w0, [x0,60] add w1, w1, 1024 cmp w1, w0 cset w1, eq -.L71: +.L72: mov w0, w1 ret .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -657,43 +668,43 @@ FlashReadStatusEN: add x6, x5, x0 uxtb w2, w2 ldr x20, [x5,x0] - ldr x0, [x4,1256] + ldr x0, [x4,88] ldrb w19, [x6,8] ldrb w0, [x0,8] cmp w0, 2 - bne .L74 - add x4, x4, 88 - cbnz w2, .L75 + bne .L75 + add x4, x4, 96 + cbnz w2, .L76 ldrb w2, [x4,13] - b .L83 -.L75: + b .L84 +.L76: ldrb w2, [x4,14] -.L83: +.L84: add x0, x19, 8 add x3, x3, :lo12:.LANCHOR0 add x0, x20, x0, lsl 8 str w2, [x0,8] mov w2, 0 - ldrb w4, [x3,103] - cbz w4, .L78 + ldrb w4, [x3,111] + cbz w4, .L79 add x3, x19, 8 lsl x3, x3, 8 -.L82: +.L83: cmp w2, w4 - bcs .L78 + bcs .L79 add x5, x20, x3 lsl w0, w2, 3 lsr w0, w1, w0 add w2, w2, 1 and w0, w0, 255 str w0, [x5,4] - b .L82 -.L74: + b .L83 +.L75: add x0, x19, 8 mov w1, 112 add x0, x20, x0, lsl 8 str w1, [x0,8] -.L78: +.L79: add x19, x19, 8 mov x0, 400 lsl x19, x19, 8 @@ -715,15 +726,20 @@ FlashWaitReadyEN: uxtb w19, w0 mov w20, w1 uxtb w21, w2 -.L88: +.L86: mov w0, w19 mov w1, w20 mov w2, w21 bl FlashReadStatusEN cmp w0, 255 mov w3, w0 - beq .L88 - tbz x3, 6, .L88 + beq .L86 + tbnz x3, 6, .L87 + mov x0, 1 + mov x1, 3 + bl usleep_range + b .L86 +.L87: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -744,8 +760,8 @@ FlashScheduleEnSet: .global FlashGetPageSize .type FlashGetPageSize, %function FlashGetPageSize: - adrp x0, .LANCHOR0+1256 - ldr x0, [x0,#:lo12:.LANCHOR0+1256] + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] ldrb w0, [x0,9] ret .size FlashGetPageSize, .-FlashGetPageSize @@ -774,11 +790,11 @@ NandcGetChipIf: .global NandcSetDdrPara .type NandcSetDdrPara, %function NandcSetDdrPara: - adrp x1, .LANCHOR0+128 + adrp x1, .LANCHOR0+136 uxtb w0, w0 lsl w2, w0, 8 orr w0, w2, w0, lsl 16 - ldr x1, [x1,#:lo12:.LANCHOR0+128] + ldr x1, [x1,#:lo12:.LANCHOR0+136] orr w0, w0, 1 str w0, [x1,304] ret @@ -787,9 +803,9 @@ NandcSetDdrPara: .global NandcSetDdrDiv .type NandcSetDdrDiv, %function NandcSetDdrDiv: - adrp x1, .LANCHOR0+128 + adrp x1, .LANCHOR0+136 uxtb w0, w0 - ldr x2, [x1,#:lo12:.LANCHOR0+128] + ldr x2, [x1,#:lo12:.LANCHOR0+136] mov w1, 16640 orr w0, w0, w1 str w0, [x2,344] @@ -799,9 +815,9 @@ NandcSetDdrDiv: .global NandcSetDdrMode .type NandcSetDdrMode, %function NandcSetDdrMode: - adrp x1, .LANCHOR0+128 + adrp x1, .LANCHOR0+136 cmp w0, wzr - ldr x2, [x1,#:lo12:.LANCHOR0+128] + ldr x2, [x1,#:lo12:.LANCHOR0+136] ldr w1, [x2] and w3, w1, -8193 orr w1, w1, 253952 @@ -813,10 +829,10 @@ NandcSetDdrMode: .global NandcSetMode .type NandcSetMode, %function NandcSetMode: - adrp x1, .LANCHOR0+128 + adrp x1, .LANCHOR0+136 uxtb w0, w0 tst w0, 6 - ldr x2, [x1,#:lo12:.LANCHOR0+128] + ldr x2, [x1,#:lo12:.LANCHOR0+136] ldr w1, [x2] beq .L101 and w0, w0, 4 @@ -892,7 +908,7 @@ HynixSetRRPara: stp x23, x24, [sp,48] uxtb x24, w0 mov x21, x2 - ldr x0, [x19,1256] + ldr x0, [x19,88] mov x26, x24 uxtb w25, w3 ldrb w0, [x0,19] @@ -977,7 +993,7 @@ FlashSetReadRetryDefault: mov x20, 0 add x19, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - ldr x0, [x19,1256] + ldr x0, [x19,88] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 @@ -1025,7 +1041,7 @@ FlashWaitCmdDone: ldr x0, [x19,8] cbz x0, .L126 mov w0, w21 - add x20, x20, 1224 + add x20, x20, 1232 bl NandcFlashCs ldr w0, [x20,w22,sxtw 2] ldr w1, [x19,4] @@ -1109,15 +1125,16 @@ NandcWaitFlashReady: mov w19, 34464 ldr x20, [x1,x0] movk w19, 0x1, lsl 16 - mov x0, 750 + mov x0, 650 bl __const_udelay .L139: ldr w0, [x20] str w0, [x29,40] ldr w0, [x29,40] tbnz x0, 9, .L140 - mov x0, 50 - bl __const_udelay + mov x0, 1 + mov x1, 2 + bl usleep_range subs w19, w19, #1 bne .L139 mov w0, -1 @@ -1164,89 +1181,120 @@ FlashReset: .global flash_enter_slc_mode .type flash_enter_slc_mode, %function flash_enter_slc_mode: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -64]! add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR0 + str x23, [sp,48] stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - uxtb w20, w0 - add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,196] + add x20, x21, :lo12:.LANCHOR0 + uxtb w22, w0 + ldrb w0, [x20,204] cbz w0, .L143 - mov w0, w20 - add x19, x19, 8 + mov w0, w22 bl NandcFlashCs - sbfiz x0, x20, 4, 32 - add x1, x19, x0 - ldr x19, [x19,x0] + sxtw x1, w22 + add x2, x20, 8 + lsl x0, x1, 4 + add x1, x20, x1, lsl 3 + add x3, x2, x0 + ldr x23, [x2,x0] + ldrb w0, [x1,2132] + ldrb w19, [x3,8] + cmp w0, 44 + bne .L145 + ubfiz x20, x19, 8, 8 mov w0, 239 - ldrb w1, [x1,8] - add x19, x19, x1, lsl 8 - str w0, [x19,2056] + add x20, x23, x20 + str w0, [x20,2056] mov w0, 145 - str w0, [x19,2052] - mov x0, 500 + str w0, [x20,2052] + mov x0, 250 bl __const_udelay - str wzr, [x19,2048] + str wzr, [x20,2048] mov w0, 1 - str w0, [x19,2048] - str wzr, [x19,2048] + str w0, [x20,2048] + str wzr, [x20,2048] mov x0, 500 - str wzr, [x19,2048] + str wzr, [x20,2048] bl __const_udelay - mov w0, w20 +.L145: + add x19, x19, 8 + mov w0, w22 + add x21, x21, :lo12:.LANCHOR0 + add x19, x23, x19, lsl 8 bl NandcWaitFlashReadyNoDelay mov w0, 218 - str w0, [x19,2056] - mov w0, w20 + str w0, [x19,8] + mov w0, w22 bl NandcWaitFlashReady + mov w0, 2 + strb w0, [x21,2356] .L143: ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldp x21, x22, [sp,32] + ldr x23, [sp,48] + ldp x29, x30, [sp], 64 ret .size flash_enter_slc_mode, .-flash_enter_slc_mode .align 2 .global flash_exit_slc_mode .type flash_exit_slc_mode, %function flash_exit_slc_mode: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -64]! add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR0 + str x23, [sp,48] stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - uxtb w20, w0 - add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,196] - cbz w0, .L148 - mov w0, w20 - add x19, x19, 8 + add x20, x21, :lo12:.LANCHOR0 + uxtb w22, w0 + ldrb w0, [x20,204] + cbz w0, .L149 + mov w0, w22 bl NandcFlashCs - sbfiz x0, x20, 4, 32 - add x1, x19, x0 - ldr x19, [x19,x0] + sxtw x1, w22 + add x2, x20, 8 + lsl x0, x1, 4 + add x1, x20, x1, lsl 3 + add x3, x2, x0 + ldr x23, [x2,x0] + ldrb w0, [x1,2132] + ldrb w19, [x3,8] + cmp w0, 44 + bne .L151 + ubfiz x20, x19, 8, 8 mov w0, 239 - ldrb w1, [x1,8] - add x19, x19, x1, lsl 8 - str w0, [x19,2056] + add x20, x23, x20 + str w0, [x20,2056] mov w0, 145 - str w0, [x19,2052] - mov x0, 500 + str w0, [x20,2052] + mov x0, 250 bl __const_udelay mov w0, 2 - str w0, [x19,2048] + str w0, [x20,2048] mov w0, 1 - str w0, [x19,2048] - str wzr, [x19,2048] + str w0, [x20,2048] + str wzr, [x20,2048] mov x0, 500 - str wzr, [x19,2048] + str wzr, [x20,2048] bl __const_udelay - mov w0, w20 +.L151: + add x19, x19, 8 + mov w0, w22 + add x21, x21, :lo12:.LANCHOR0 + add x19, x23, x19, lsl 8 bl NandcWaitFlashReadyNoDelay mov w0, 223 - str w0, [x19,2056] - mov w0, w20 + str w0, [x19,8] + mov w0, w22 bl NandcWaitFlashReady -.L148: + strb wzr, [x21,2356] +.L149: ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldp x21, x22, [sp,32] + ldr x23, [sp,48] + ldp x29, x30, [sp], 64 ret .size flash_exit_slc_mode, .-flash_exit_slc_mode .align 2 @@ -1292,7 +1340,7 @@ FlashSetInterfaceMode: add x7, x1, 8 add x4, x1, 2132 add x29, sp, 0 - ldrb w2, [x1,2356] + ldrb w2, [x1,2357] mov w9, 128 mov w10, 1 mov w12, 35 @@ -1301,68 +1349,68 @@ FlashSetInterfaceMode: mov w13, 32 mov w14, 5 uxtb w5, w2 -.L165: +.L167: ldrb w3, [x6,x4] ldr x1, [x7] cmp w3, 152 ldrb w2, [x7,8] - beq .L155 + beq .L157 cmp w3, 69 - beq .L155 + beq .L157 cmp w3, 173 - beq .L155 + beq .L157 cmp w3, 44 - bne .L156 -.L155: - cmp w0, 1 bne .L158 - cbz w11, .L156 +.L157: + cmp w0, 1 + bne .L160 + cbz w11, .L158 ubfiz x2, x2, 8, 8 cmp w3, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L159 - str w0, [x1,2052] - b .L176 -.L159: - cmp w3, 44 bne .L161 str w0, [x1,2052] - str w14, [x1,2048] - b .L163 + b .L178 .L161: + cmp w3, 44 + bne .L163 + str w0, [x1,2052] + str w14, [x1,2048] + b .L165 +.L163: str w9, [x1,2052] str w0, [x1,2048] - b .L163 -.L158: - cbz w5, .L156 + b .L165 +.L160: + cbz w5, .L158 ubfiz x2, x2, 8, 8 cmp w3, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L162 - str w10, [x1,2052] - str w13, [x1,2048] - b .L163 -.L162: - cmp w3, 44 bne .L164 str w10, [x1,2052] - str w12, [x1,2048] - b .L163 + str w13, [x1,2048] + b .L165 .L164: + cmp w3, 44 + bne .L166 + str w10, [x1,2052] + str w12, [x1,2048] + b .L165 +.L166: str w9, [x1,2052] -.L176: +.L178: str wzr, [x1,2048] -.L163: +.L165: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L156: +.L158: add x6, x6, 8 add x7, x7, 16 cmp x6, 32 - bne .L165 + bne .L167 mov w0, 0 bl NandcWaitFlashReady mov w0, 0 @@ -1476,23 +1524,23 @@ SandiskSetRRPara: add x0, x0, x1 add x1, x2, x1 mov x2, 0 -.L180: +.L182: add x3, x5, :lo12:.LANCHOR0 - ldrb w4, [x3,121] + ldrb w4, [x3,129] cmp w4, w2 - bls .L185 - ldrb w3, [x3,120] + bls .L187 + ldrb w3, [x3,128] cmp w3, 67 - bne .L181 + bne .L183 ldrsb w3, [x0,x2] - b .L184 -.L181: + b .L186 +.L183: ldrsb w3, [x1,x2] -.L184: +.L186: str w3, [x20] add x2, x2, 1 - b .L180 -.L185: + b .L182 +.L187: mov w0, 0 bl NandcWaitFlashReady ldp x19, x20, [sp,16] @@ -1551,9 +1599,9 @@ FlashEraseSLc2KBlocks: mov w22, 0 add x25, x21, 2164 add x23, x23, :lo12:.LC0 -.L188: +.L190: cmp w22, w24 - beq .L197 + beq .L199 add x2, x29, 88 sub w4, w24, w22 mov x0, x20 @@ -1561,13 +1609,13 @@ FlashEraseSLc2KBlocks: add x3, x29, 92 bl LogAddr2PhyAddr ldr w2, [x29,92] - ldrb w0, [x21,2357] + ldrb w0, [x21,2358] cmp w2, w0 - bcc .L189 + bcc .L191 mov w0, -1 str w0, [x20] - b .L190 -.L189: + b .L192 +.L191: uxtw x2, w2 add x0, x21, x2 ldrb w19, [x0,2360] @@ -1600,24 +1648,24 @@ FlashEraseSLc2KBlocks: ldr w1, [x29,88] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L191 + tbz x0, 0, .L193 mov w0, -1 str w0, [x20] -.L191: +.L193: ldr w0, [x20] cmn w0, #1 - bne .L192 + bne .L194 ldr w1, [x29,88] mov x0, x23 bl printk -.L192: +.L194: mov w0, w19 bl NandcFlashDeCs -.L190: +.L192: add w22, w22, 1 add x20, x20, 56 - b .L188 -.L197: + b .L190 +.L199: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -1627,42 +1675,207 @@ FlashEraseSLc2KBlocks: ret .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks .align 2 + .global FlashEraseBlocks + .type FlashEraseBlocks, %function +FlashEraseBlocks: + stp x29, x30, [sp, -128]! + add x29, sp, 0 + stp x27, x28, [sp,80] + mov w27, w1 + adrp x1, .LANCHOR0 + stp x19, x20, [sp,16] + add x19, x1, :lo12:.LANCHOR0 + str x1, [x29,104] + stp x23, x24, [sp,48] + mov w23, w2 + mov x24, x0 + ldrb w2, [x19,72] + mov w20, 0 + stp x21, x22, [sp,32] + stp x25, x26, [sp,64] + cbz w2, .L201 + mov w1, w23 + bl FlashEraseSLc2KBlocks + b .L202 +.L201: + mov w28, 56 + add x25, x19, 2164 + mov x26, 24 +.L232: + cmp w20, w23 + bcs .L233 + umull x5, w20, w28 + mov w1, 0 + sub w4, w23, w20 + add x21, x24, x5 + add x2, x29, 120 + mov x0, x21 + add x3, x29, 124 + str x5, [x29,96] + bl LogAddr2PhyAddr + mov w22, w0 + ldrb w1, [x19,2358] + ldr w0, [x29,124] + ldr x5, [x29,96] + cmp w0, w1 + bcc .L203 + mov w0, -1 + str w0, [x24,x5] + b .L204 +.L203: + ldrb w1, [x19,2368] + cmp w1, wzr + uxtw x1, w0 + csel w22, w22, wzr, ne + madd x1, x1, x26, x25 + ldr x1, [x1,8] + cbz x1, .L206 + bl FlashWaitCmdDone +.L206: + ldr w0, [x29,124] + ldr w1, [x29,120] + madd x2, x0, x26, x25 + str x21, [x2,8] + str xzr, [x2,16] + str w1, [x2,4] + cbz w22, .L207 + add w1, w20, 1 + umull x1, w1, w28 + add x1, x24, x1 + str x1, [x2,16] +.L207: + add x1, x19, x0 + mul x0, x0, x26 + ldrb w21, [x1,2360] + strb w21, [x25,x0] + mov w0, w21 + bl NandcFlashCs + cmp w27, 1 + bne .L208 + ldrb w0, [x19,204] + cbz w0, .L208 + mov w0, w21 + bl flash_enter_slc_mode + b .L209 +.L208: + mov w0, w21 + bl flash_exit_slc_mode +.L209: + ldr w1, [x29,124] + add x0, x19, 1232 + add w20, w20, w22 + ldr w0, [x0,x1,lsl 2] + ldr w1, [x29,120] + cmp w0, wzr + mov w0, w21 + cset w2, ne + bl FlashWaitReadyEN + ldr w1, [x29,120] + mov w0, w21 + mov w2, w22 + bl FlashEraseCmd + mov w0, w21 + bl NandcFlashDeCs +.L204: + add w20, w20, 1 + b .L232 +.L233: + ldr x0, [x29,104] + mov x20, 0 + mov x22, 24 + add x19, x0, :lo12:.LANCHOR0 + add x21, x19, 2164 +.L211: + ldrb w0, [x19,2358] + cmp w0, w20 + bls .L234 + mov w0, w20 + bl FlashWaitCmdDone + cmp w27, 1 + bne .L212 + ldrb w0, [x19,204] + cbz w0, .L212 + mul x0, x20, x22 + ldrb w0, [x0,x21] + bl flash_exit_slc_mode +.L212: + add x20, x20, 1 + b .L211 +.L234: + ldr w0, [x19,2372] + cbnz w0, .L214 +.L216: + mov w0, 0 + b .L202 +.L214: + ldrb w0, [x19,2132] + cmp w0, 69 + bne .L216 + mov x0, 0 + mov x1, 56 +.L215: + cmp w23, w0 + bls .L216 + mul x2, x0, x1 + add x0, x0, 1 + str wzr, [x24,x2] + b .L215 +.L202: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 128 + ret + .size FlashEraseBlocks, .-FlashEraseBlocks + .align 2 .global FlashReadDpCmd .type FlashReadDpCmd, %function FlashReadDpCmd: stp x29, x30, [sp, -80]! adrp x3, .LANCHOR0 + and w8, w1, 255 add x29, sp, 0 stp x21, x22, [sp,32] - add x3, x3, :lo12:.LANCHOR0 + add x6, x3, :lo12:.LANCHOR0 uxtb w21, w0 - add x4, x3, 8 sbfiz x0, x21, 4, 32 - add x3, x3, 88 - str x23, [sp,48] + add x4, x6, 8 stp x19, x20, [sp,16] - add x5, x4, x0 + str x23, [sp,48] + add x7, x4, x0 and w23, w2, 255 - ldr x6, [x4,x0] lsr w22, w2, 8 - ldrb w0, [x3,16] - lsr w4, w1, 8 - ldrb w19, [x5,8] + ldr x5, [x4,x0] lsr w20, w2, 16 + ldrb w0, [x6,112] + ldr x2, [x6,88] cmp w0, 1 - and w5, w1, 255 + ldrb w19, [x7,8] lsr w0, w1, 16 - bne .L199 - add x19, x6, x19, lsl 8 - ldrb w2, [x3,8] + lsr w7, w1, 8 + ldrb w2, [x2,7] + bne .L236 + cmp w2, 1 + bne .L237 + sxtw x4, w19 + mov w2, 38 + add x4, x4, 8 + add x4, x5, x4, lsl 8 + str w2, [x4,8] +.L237: + add x3, x3, :lo12:.LANCHOR0 + add x19, x5, x19, lsl 8 str x1, [x29,72] + ldrb w2, [x3,104] str w2, [x19,2056] str wzr, [x19,2052] str wzr, [x19,2052] - str w5, [x19,2052] - str w4, [x19,2052] + str w8, [x19,2052] + str w7, [x19,2052] str w0, [x19,2052] - ldrb w0, [x3,9] + ldrb w0, [x3,105] str w0, [x19,2056] mov w0, w21 bl NandcWaitFlashReady @@ -1675,22 +1888,31 @@ FlashReadDpCmd: str w20, [x19,2052] str w0, [x19,2056] ldr x1, [x29,72] - b .L200 -.L199: - add x19, x6, x19, lsl 8 - ldrb w2, [x3,8] + b .L238 +.L236: + cmp w2, 1 + bne .L239 + sxtw x4, w19 + mov w2, 38 + add x4, x4, 8 + add x4, x5, x4, lsl 8 + str w2, [x4,8] +.L239: + add x3, x3, :lo12:.LANCHOR0 + add x19, x5, x19, lsl 8 + ldrb w2, [x3,104] str w2, [x19,2056] - str w5, [x19,2052] - str w4, [x19,2052] + str w8, [x19,2052] + str w7, [x19,2052] str w0, [x19,2052] - ldrb w0, [x3,9] + ldrb w0, [x3,105] str w0, [x19,2056] mov w0, 48 str w23, [x19,2052] str w22, [x19,2052] str w20, [x19,2052] str w0, [x19,2056] -.L200: +.L238: mov w0, w21 bl FlashSetRandomizer ldr x23, [sp,48] @@ -1711,25 +1933,25 @@ ftl_flash_de_init: adrp x19, .LANCHOR0 bl FlashSetReadRetryDefault add x0, x19, :lo12:.LANCHOR0 - ldr w0, [x0,2368] - cbz w0, .L202 + ldr w0, [x0,2376] + cbz w0, .L241 mov w0, 0 bl flash_enter_slc_mode - b .L203 -.L202: + b .L242 +.L241: bl flash_exit_slc_mode -.L203: +.L242: add x20, x19, :lo12:.LANCHOR0 - ldrb w0, [x20,2372] - cbz w0, .L204 - ldrb w0, [x20,2356] - tbz x0, 0, .L204 + ldrb w0, [x20,2380] + cbz w0, .L243 + ldrb w0, [x20,2357] + tbz x0, 0, .L243 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,2372] -.L204: + strb wzr, [x20,2380] +.L243: add x19, x19, :lo12:.LANCHOR0 ldr x0, [x19,8] str wzr, [x0,336] @@ -1766,37 +1988,37 @@ NandcTimeCfg: add x1, x1, :lo12:.LANCHOR0 sdiv w0, w0, w2 cmp w0, 250 - ble .L213 - ldr x0, [x1,128] + ble .L252 + ldr x0, [x1,136] mov w1, 8354 - b .L220 -.L213: + b .L259 +.L252: cmp w0, 220 - ble .L215 - ldr x0, [x1,128] - b .L221 -.L215: + ble .L254 + ldr x0, [x1,136] + b .L260 +.L254: cmp w0, 185 - ble .L216 - ldr x0, [x1,128] + ble .L255 + ldr x0, [x1,136] mov w1, 4226 - b .L220 -.L216: + b .L259 +.L255: cmp w0, 160 - ldr x0, [x1,128] - ble .L217 + ldr x0, [x1,136] + ble .L256 mov w1, 4194 - b .L220 -.L217: + b .L259 +.L256: cmp w19, 35 mov w1, 4193 - bls .L220 + bls .L259 cmp w19, 99 mov w1, 4225 - bls .L220 -.L221: + bls .L259 +.L260: mov w1, 8322 -.L220: +.L259: str w1, [x0,4] ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -1812,15 +2034,15 @@ FlashTimingCfg: and w1, w1, -33 cmp w1, 1 add x29, sp, 0 - bls .L223 + bls .L262 mov w1, 8322 cmp w0, w1 - bne .L224 -.L223: - adrp x1, .LANCHOR0+128 - ldr x1, [x1,#:lo12:.LANCHOR0+128] + bne .L263 +.L262: + adrp x1, .LANCHOR0+136 + ldr x1, [x1,#:lo12:.LANCHOR0+136] str w0, [x1,4] -.L224: +.L263: adrp x0, .LANCHOR1+493 ldrb w0, [x0,#:lo12:.LANCHOR1+493] bl NandcTimeCfg @@ -1847,29 +2069,29 @@ NandcInit: str x0, [x1,24] str x0, [x1,40] str x0, [x1,56] - str x0, [x1,128] + str x0, [x1,136] ldr w2, [x0] ubfx x3, x2, 13, 1 - str w3, [x1,2376] + str w3, [x1,2384] ldr w3, [x0,352] and w2, w2, 245760 orr w2, w2, 256 ubfx x3, x3, 16, 4 - str w3, [x1,2380] + str w3, [x1,2388] ldr w3, [x0,352] - str w3, [x1,2384] + str w3, [x1,2392] cmp w3, 2049 - bne .L226 + bne .L265 mov w3, 8 - str w3, [x1,2380] -.L226: + str w3, [x1,2388] +.L265: add x19, x19, :lo12:.LANCHOR0 str w2, [x0] - ldr x0, [x19,128] + ldr x0, [x19,136] str wzr, [x0,336] mov w0, 40 bl NandcTimeCfg - ldr x0, [x19,128] + ldr x0, [x19,136] mov w1, 8322 str w1, [x0,344] mov w1, 6145 @@ -1877,12 +2099,12 @@ NandcInit: str w1, [x0,304] mov w0, 36864 bl ftl_malloc - str wzr, [x19,2440] - str x0, [x19,2392] - str x0, [x19,2400] - add x0, x0, 32768 str wzr, [x19,2448] + str x0, [x19,2400] str x0, [x19,2408] + add x0, x0, 32768 + str wzr, [x19,2456] + str x0, [x19,2416] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1893,16 +2115,16 @@ NandcInit: NandcGetTimeCfg: adrp x4, .LANCHOR0 add x4, x4, :lo12:.LANCHOR0 - ldr x5, [x4,128] + ldr x5, [x4,136] ldr w5, [x5,4] str w5, [x0] - ldr x0, [x4,128] + ldr x0, [x4,136] ldr w0, [x0] str w0, [x1] - ldr x0, [x4,128] + ldr x0, [x4,136] ldr w0, [x0,304] str w0, [x2] - ldr x1, [x4,128] + ldr x1, [x4,136] ldr w0, [x1,308] ldr w1, [x1,344] and w0, w0, 255 @@ -1919,25 +2141,25 @@ NandcBchSel: add x1, x1, :lo12:.LANCHOR0 mov w3, 1 cmp w0, 16 - ldr x2, [x1,128] - str w0, [x1,2452] + ldr x2, [x1,136] + str w0, [x1,2460] mov w1, 4096 str w3, [x2,8] - bne .L229 -.L232: + bne .L268 +.L271: and w1, w1, -17 - b .L230 -.L229: + b .L269 +.L268: cmp w0, 24 - bne .L231 + bne .L270 orr w1, w1, 16 - b .L230 -.L231: + b .L269 +.L270: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L232 -.L230: + beq .L271 +.L269: orr w1, w1, 1 str w1, [x2,12] ret @@ -1947,10 +2169,10 @@ NandcBchSel: .type FlashBchSel, %function FlashBchSel: stp x29, x30, [sp, -16]! - adrp x1, .LANCHOR0+2456 + adrp x1, .LANCHOR0+2464 uxtb w0, w0 add x29, sp, 0 - strb w0, [x1,#:lo12:.LANCHOR0+2456] + strb w0, [x1,#:lo12:.LANCHOR0+2464] bl NandcBchSel ldp x29, x30, [sp], 16 ret @@ -1967,53 +2189,53 @@ ftl_flash_resume: add x0, x20, :lo12:.LANCHOR0 mov x21, 0 add x19, x0, 2132 - ldr x1, [x0,128] - ldr w2, [x0,136] - str w2, [x1] - ldr w2, [x0,140] - ldr x1, [x0,128] - str w2, [x1,4] + ldr x1, [x0,136] ldr w2, [x0,144] - ldr x1, [x0,128] - str w2, [x1,8] + str w2, [x1] ldr w2, [x0,148] - str w2, [x1,12] + ldr x1, [x0,136] + str w2, [x1,4] ldr w2, [x0,152] - str w2, [x1,304] + ldr x1, [x0,136] + str w2, [x1,8] ldr w2, [x0,156] - str w2, [x1,308] + str w2, [x1,12] ldr w2, [x0,160] - str w2, [x1,336] + str w2, [x1,304] ldr w2, [x0,164] + str w2, [x1,308] + ldr w2, [x0,168] + str w2, [x1,336] + ldr w2, [x0,172] str w2, [x1,344] -.L239: +.L278: lsl x0, x21, 3 ldrb w0, [x0,x19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L238 + bhi .L277 mov w0, w21 bl FlashReset -.L238: +.L277: add x21, x21, 1 cmp x21, 4 - bne .L239 + bne .L278 add x19, x20, :lo12:.LANCHOR0 - ldrb w0, [x19,2372] - cbz w0, .L240 + ldrb w0, [x19,2380] + cbz w0, .L279 mov w0, 1 bl NandcSetMode - ldrb w0, [x19,2356] + ldrb w0, [x19,2357] bl FlashSetInterfaceMode - ldrb w0, [x19,2356] + ldrb w0, [x19,2357] bl NandcSetMode - ldr w0, [x19,152] + ldr w0, [x19,160] lsr w0, w0, 8 bl NandcSetDdrPara -.L240: +.L279: add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x20,1256] + ldr x0, [x20,88] ldrb w0, [x0,20] bl FlashBchSel ldr x21, [sp,32] @@ -2044,192 +2266,9 @@ rk_nandc_flash_ready: .global NandcIqrWaitFlashReady .type NandcIqrWaitFlashReady, %function NandcIqrWaitFlashReady: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - str x19, [sp,16] - mov x19, x0 - bl rk_nandc_rb_irq_flag_init - ldr w0, [x19,368] - orr w0, w0, 2 - str w0, [x19,368] - ldr w0, [x19,364] - orr w0, w0, 2 - str w0, [x19,364] - ldr w0, [x19] - tbnz x0, 9, .L248 - mov x0, x19 - bl wait_for_nand_flash_ready - b .L247 -.L248: - ldr w0, [x19,368] - orr w0, w0, 2 - str w0, [x19,368] - ldr w0, [x19,364] - and w0, w0, -3 - str w0, [x19,364] -.L247: - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 ret .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady .align 2 - .global FlashEraseBlocks - .type FlashEraseBlocks, %function -FlashEraseBlocks: - stp x29, x30, [sp, -128]! - add x29, sp, 0 - stp x27, x28, [sp,80] - mov w27, w1 - adrp x1, .LANCHOR0 - stp x19, x20, [sp,16] - add x19, x1, :lo12:.LANCHOR0 - str x1, [x29,104] - stp x23, x24, [sp,48] - mov w23, w2 - mov x24, x0 - ldrb w2, [x19,72] - mov w20, 0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - cbz w2, .L251 - mov w1, w23 - bl FlashEraseSLc2KBlocks - b .L252 -.L251: - mov w28, 56 - add x25, x19, 2164 - mov x26, 24 -.L282: - cmp w20, w23 - bcs .L283 - umull x5, w20, w28 - mov w1, 0 - sub w4, w23, w20 - add x21, x24, x5 - add x2, x29, 120 - mov x0, x21 - add x3, x29, 124 - str x5, [x29,96] - bl LogAddr2PhyAddr - mov w22, w0 - ldrb w1, [x19,2357] - ldr w0, [x29,124] - ldr x5, [x29,96] - cmp w0, w1 - bcc .L253 - mov w0, -1 - str w0, [x24,x5] - b .L254 -.L253: - ldrb w1, [x19,2457] - cmp w1, wzr - uxtw x1, w0 - csel w22, w22, wzr, ne - madd x1, x1, x26, x25 - ldr x1, [x1,8] - cbz x1, .L256 - bl FlashWaitCmdDone -.L256: - ldr w0, [x29,124] - ldr w1, [x29,120] - madd x2, x0, x26, x25 - str x21, [x2,8] - str xzr, [x2,16] - str w1, [x2,4] - cbz w22, .L257 - add w1, w20, 1 - umull x1, w1, w28 - add x1, x24, x1 - str x1, [x2,16] -.L257: - add x1, x19, x0 - mul x0, x0, x26 - ldrb w21, [x1,2360] - strb w21, [x25,x0] - mov w0, w21 - bl NandcFlashCs - cmp w27, 1 - bne .L258 - ldrb w0, [x19,196] - cbz w0, .L258 - mov w0, w21 - bl flash_enter_slc_mode - b .L259 -.L258: - mov w0, w21 - bl flash_exit_slc_mode -.L259: - ldr w1, [x29,124] - add x0, x19, 1224 - add w20, w20, w22 - ldr w0, [x0,x1,lsl 2] - ldr w1, [x29,120] - cmp w0, wzr - mov w0, w21 - cset w2, ne - bl FlashWaitReadyEN - ldr w1, [x29,120] - mov w0, w21 - mov w2, w22 - bl FlashEraseCmd - mov w0, w21 - bl NandcFlashDeCs -.L254: - add w20, w20, 1 - b .L282 -.L283: - ldr x0, [x29,104] - mov x20, 0 - mov x22, 24 - add x19, x0, :lo12:.LANCHOR0 - add x21, x19, 2164 - ldr x0, [x19,128] - bl NandcIqrWaitFlashReady -.L261: - ldrb w0, [x19,2357] - cmp w0, w20 - bls .L284 - mov w0, w20 - bl FlashWaitCmdDone - cmp w27, 1 - bne .L262 - ldrb w0, [x19,196] - cbz w0, .L262 - mul x0, x20, x22 - ldrb w0, [x0,x21] - bl flash_exit_slc_mode -.L262: - add x20, x20, 1 - b .L261 -.L284: - ldr w0, [x19,2460] - cbnz w0, .L264 -.L266: - mov w0, 0 - b .L252 -.L264: - ldrb w0, [x19,2132] - cmp w0, 69 - bne .L266 - mov x0, 0 - mov x1, 56 -.L265: - cmp w23, w0 - bls .L266 - mul x2, x0, x1 - add x0, x0, 1 - str wzr, [x24,x2] - b .L265 -.L252: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret - .size FlashEraseBlocks, .-FlashEraseBlocks - .align 2 .global rk_nandc_flash_xfer_completed .type rk_nandc_flash_xfer_completed, %function rk_nandc_flash_xfer_completed: @@ -2270,11 +2309,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L288: +.L290: ldr w1, [x0,8] str w1, [sp,8] ldr w1, [sp,8] - tbz x1, 20, .L288 + tbz x1, 20, .L290 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -2306,12 +2345,12 @@ NandcXferStart: bfi w22, w0, 5, 3 mov w0, 1 bfi w20, w0, 5, 2 - ldr w0, [x1,2380] + ldr w0, [x1,2388] orr w20, w20, 536870912 cmp w0, 3 orr w20, w20, 1024 bfi w20, w3, 4, 1 - bls .L292 + bls .L294 ldr w0, [x21,16] cmp x5, xzr str w0, [x29,88] @@ -2319,72 +2358,72 @@ NandcXferStart: ldr w0, [x29,88] and w0, w0, -5 str w0, [x29,88] - cbnz w9, .L306 - cbz x4, .L293 -.L306: - cbnz w23, .L295 -.L303: + cbnz w9, .L308 + cbz x4, .L295 +.L308: + cbnz w23, .L297 +.L305: add w2, w2, 1 mov x0, x4 asr w2, w2, 1 bfi w20, w2, 22, 6 - cbnz x4, .L297 + cbnz x4, .L299 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2400] - b .L297 -.L295: + ldr x0, [x0,2408] + b .L299 +.L297: add x1, x19, :lo12:.LANCHOR0 mov w7, 128 mov w3, 0 lsr w10, w2, 1 mov w6, w3 mov w11, -1 - ldr w0, [x1,2452] + ldr w0, [x1,2460] cmp w0, 25 mov w0, 64 csel w7, w0, w7, cc -.L299: +.L301: cmp w6, w10 - bcs .L303 + bcs .L305 lsr w0, w3, 2 ubfiz x0, x0, 2, 30 - cbz w9, .L300 + cbz w9, .L302 ldrh w8, [x5,2] - ldr x12, [x1,2408] + ldr x12, [x1,2416] ldrh w13, [x5],4 orr w8, w13, w8, lsl 16 str w8, [x12,x0] - b .L301 -.L300: - ldr x8, [x1,2408] + b .L303 +.L302: + ldr x8, [x1,2416] str w11, [x8,x0] -.L301: +.L303: add w6, w6, 1 add w3, w3, w7 - b .L299 -.L297: + b .L301 +.L299: add x19, x19, :lo12:.LANCHOR0 ubfx x24, x20, 22, 5 mov w2, w23 str x4, [x29,72] - ldr x1, [x19,2408] - str x1, [x19,2424] + ldr x1, [x19,2416] + str x1, [x19,2432] lsl w1, w24, 10 - str x0, [x19,2416] + str x0, [x19,2424] bl rknand_dma_map_single - str w0, [x19,2432] - ldr x0, [x19,2424] + str w0, [x19,2440] + ldr x0, [x19,2432] lsl w1, w24, 7 mov w2, w23 bl rknand_dma_map_single - str w0, [x19,2436] + str w0, [x19,2444] mov w0, 1 - str w0, [x19,2440] - ldr w0, [x19,2432] + str w0, [x19,2448] + ldr w0, [x19,2440] mov w1, 16 str w0, [x21,20] ldr x4, [x29,72] - ldr w0, [x19,2436] + ldr w0, [x19,2444] str w0, [x21,24] and x4, x4, 3 str wzr, [x29,88] @@ -2394,12 +2433,12 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 448 str w0, [x29,88] - cbnz x4, .L304 + cbnz x4, .L306 ldr w0, [x29,88] mov w1, 2 bfi w0, w1, 3, 3 str w0, [x29,88] -.L304: +.L306: ldr w0, [x29,88] cmp w23, wzr cset w1, eq @@ -2411,10 +2450,10 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 1 str w0, [x29,88] -.L293: +.L295: ldr w0, [x29,88] str w0, [x21,16] -.L292: +.L294: str w22, [x21,12] str w20, [x21,8] orr w20, w20, 4 @@ -2431,14 +2470,14 @@ NandcXferStart: Ftl_log2: mov w2, 1 mov w1, 0 -.L311: +.L313: cmp w2, w0 - bhi .L313 + bhi .L315 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L311 -.L313: + b .L313 +.L315: sub w0, w1, #1 ret .size Ftl_log2, .-Ftl_log2 @@ -2458,17 +2497,17 @@ FtlSysBlkNumInit: csel w0, w0, w1, hi adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w2, [x1,2468] - ldrh w3, [x1,2478] - str w0, [x1,2464] + ldrh w2, [x1,2472] + ldrh w3, [x1,2482] + str w0, [x1,2468] mul w2, w0, w2 sub w0, w3, w0 - strh w0, [x1,2476] - ldr w0, [x1,2484] - str w2, [x1,2472] + strh w0, [x1,2480] + ldr w0, [x1,2488] + str w2, [x1,2476] sub w2, w0, w2 mov w0, 0 - str w2, [x1,2480] + str w2, [x1,2484] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 @@ -2490,35 +2529,35 @@ FtlConstantsInit: ldrh w6, [x0,8] ldrh w2, [x0,10] ldrh w0, [x0,12] - strh w6, [x1,2488] - strh w2, [x1,2490] - strh w0, [x1,2492] - strh w4, [x1,2478] -.L318: - add x5, x1, 2496 + strh w6, [x1,2492] + strh w2, [x1,2494] + strh w0, [x1,2496] + strh w4, [x1,2482] +.L320: + add x5, x1, 2504 strb w3, [x3,x5] add x3, x3, 1 cmp x3, 32 - bne .L318 + bne .L320 ldrh w3, [x23,20] ldrb w1, [x23,15] cmp w3, w1 - bcs .L319 + bcs .L321 uxtb w8, w0 mov w3, 0 mul w11, w0, w2 ubfiz w10, w8, 1, 7 add x12, x20, :lo12:.LANCHOR0 -.L320: +.L322: cmp w3, w0 - bcs .L322 + bcs .L324 uxtb w1, w3 mov w5, w3 mov w7, 0 -.L323: +.L325: cmp w7, w2 - bcs .L345 - add x9, x12, 2496 + bcs .L347 + add x9, x12, 2504 add w13, w5, w11 add w14, w1, w8 add w7, w7, 1 @@ -2527,162 +2566,162 @@ FtlConstantsInit: strb w14, [x9,x13] add w5, w5, w0 uxtb w1, w1 - b .L323 -.L345: + b .L325 +.L347: add w3, w3, 1 - b .L320 -.L322: + b .L322 +.L324: add x1, x20, :lo12:.LANCHOR0 lsl w2, w2, 1 lsr w4, w4, 1 - strh w2, [x1,2490] - strh w4, [x1,2478] -.L319: + strh w2, [x1,2494] + strh w4, [x1,2482] +.L321: add x1, x20, :lo12:.LANCHOR0 mov w2, 5 cmp w6, 1 - strh w2, [x1,2528] - strh wzr, [x1,2530] - bne .L324 - strh w6, [x1,2528] -.L324: + strh w2, [x1,2536] + strh wzr, [x1,2538] + bne .L326 + strh w6, [x1,2536] +.L326: add x1, x20, :lo12:.LANCHOR0 mov w2, 4352 ldrb w26, [x1,72] - strh w2, [x1,2532] - cbz w26, .L325 + strh w2, [x1,2540] + cbz w26, .L327 mov w2, 384 - strh w2, [x1,2532] -.L325: + strh w2, [x1,2540] +.L327: add x21, x20, :lo12:.LANCHOR0 ldrh w25, [x23,16] ldrh w24, [x23,20] ldrh w27, [x23,18] - ldrh w22, [x21,2490] - ldrh w19, [x21,2478] - strh w25, [x21,2536] + ldrh w22, [x21,2494] + ldrh w19, [x21,2482] + strh w25, [x21,2544] mul w22, w0, w22 mul w0, w19, w0 - strh w0, [x21,2534] + strh w0, [x21,2542] uxth w22, w22 - strh w27, [x21,2538] - strh w22, [x21,2468] + strh w27, [x21,2546] + strh w22, [x21,2472] mul w0, w22, w25 - strh w0, [x21,2540] + strh w0, [x21,2548] mov w0, w24 - strh w24, [x21,2542] + strh w24, [x21,2550] bl Ftl_log2 uxth w3, w0 lsl w2, w24, 9 - strh w0, [x21,2544] + strh w0, [x21,2552] ldrh w0, [x23,26] cmp w19, 1024 - strh w2, [x21,2546] + strh w2, [x21,2554] ubfx x2, x2, 9, 7 - strh w0, [x21,2550] + strh w0, [x21,2558] lsl w2, w2, 1 mul w0, w22, w19 - strh w2, [x21,2548] - str w0, [x21,2484] - bls .L326 + strh w2, [x21,2556] + str w0, [x21,2488] + bls .L328 and w0, w19, 255 - strh w0, [x21,2530] -.L326: + strh w0, [x21,2538] +.L328: add x2, x20, :lo12:.LANCHOR0 mul w0, w24, w27 - ldrh w1, [x2,2530] + ldrh w1, [x2,2538] sub w1, w19, w1 mul w1, w22, w1 mul w1, w1, w24 mul w1, w1, w25 asr w1, w1, 11 - str w1, [x2,2552] - ldrh w1, [x2,2532] + str w1, [x2,2560] + ldrh w1, [x2,2540] lsl w1, w1, 3 sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L342 + bhi .L344 mov w0, 4 -.L342: - strh w0, [x2,2556] - cbz w26, .L329 +.L344: + strh w0, [x2,2564] + cbz w26, .L331 add x0, x20, :lo12:.LANCHOR0 mov w1, 640 - strh w1, [x0,2532] -.L329: + strh w1, [x0,2540] +.L331: add x1, x20, :lo12:.LANCHOR0 lsl w19, w19, 6 cmp w22, 1 - ldrh w0, [x1,2532] + ldrh w0, [x1,2540] asr w0, w0, w3 add w3, w3, 9 asr w19, w19, w3 - strh w19, [x1,2560] + strh w19, [x1,2568] and w19, w19, 65535 add w0, w0, 2 - strh w0, [x1,2558] + strh w0, [x1,2566] mul w0, w19, w22 - str w0, [x1,2564] + str w0, [x1,2572] add w19, w19, 8 - ldrh w0, [x1,2556] + ldrh w0, [x1,2564] udiv w0, w0, w22 add w19, w19, w0 - bne .L343 + bne .L345 add w19, w19, 4 -.L343: - str w19, [x1,2464] +.L345: + str w19, [x1,2468] add x19, x20, :lo12:.LANCHOR0 - ldrh w0, [x19,2464] + ldrh w0, [x19,2468] bl FtlSysBlkNumInit - str wzr, [x19,2576] - ldr w0, [x19,2464] - str w0, [x19,2568] - ldr w0, [x19,2480] - ldrh w1, [x19,2536] + str wzr, [x19,2584] + ldr w0, [x19,2468] + str w0, [x19,2576] + ldr w0, [x19,2484] + ldrh w1, [x19,2544] lsl w0, w0, 2 - ldrh w3, [x19,2542] - ldrh w2, [x19,2556] + ldrh w3, [x19,2550] + ldrh w2, [x19,2564] mul w1, w0, w1 - ldrh w0, [x19,2544] - ldrb w5, [x19,196] + ldrh w0, [x19,2552] + ldrb w5, [x19,204] add w0, w0, 9 lsr w0, w1, w0 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x19,2574] + strh w1, [x19,2582] uxth w0, w0 - strh w0, [x19,2572] + strh w0, [x19,2580] add w1, w2, 3 - strh w1, [x19,2556] - ldr w1, [x19,2564] + strh w1, [x19,2564] + ldr w1, [x19,2572] add w4, w1, 3 - str w4, [x19,2564] - cbz w5, .L332 + str w4, [x19,2572] + cbz w5, .L334 add w2, w2, 4 add w1, w1, 5 - strh w2, [x19,2556] - b .L344 -.L332: + strh w2, [x19,2564] + b .L346 +.L334: cmp w4, 7 - bhi .L333 + bhi .L335 mov w1, 8 -.L344: - str w1, [x19,2564] -.L333: +.L346: + str w1, [x19,2572] +.L335: add x20, x20, :lo12:.LANCHOR0 - ldrh w1, [x20,2476] - strh wzr, [x20,2580] + ldrh w1, [x20,2480] + strh wzr, [x20,2588] lsr w2, w1, 3 add w1, w2, w1, lsl 1 add w1, w1, 52 add w0, w1, w0, lsl 2 cmp w0, w3, lsl 9 - bcs .L334 + bcs .L336 mov w0, 1 - strh w0, [x20,2580] -.L334: + strh w0, [x20,2588] +.L336: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -2700,24 +2739,24 @@ IsBlkInVendorPart: uxth w4, w0 add x1, x1, :lo12:.LANCHOR0 mov w0, 0 - ldrh w2, [x1,2582] - cbz w2, .L347 - ldrh w2, [x1,2556] - ldr x3, [x1,2584] + ldrh w2, [x1,2590] + cbz w2, .L349 + ldrh w2, [x1,2564] + ldr x3, [x1,2592] mov x1, 0 -.L348: +.L350: cmp w2, w1, uxth - bls .L353 + bls .L355 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L348 + bne .L350 mov w0, 1 - b .L347 -.L353: + b .L349 +.L355: mov w0, 0 -.L347: +.L349: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -2728,50 +2767,58 @@ FtlCacheMetchLpa: mov w6, w0 add x2, x2, :lo12:.LANCHOR0 mov w0, 0 - ldr w3, [x2,2592] - cbz w3, .L355 - ldr x5, [x2,2600] + ldr w3, [x2,2600] + cbz w3, .L357 + ldr x5, [x2,2608] mov x0, 56 mov x2, 0 -.L356: +.L358: cmp w3, w2 - bls .L365 + bls .L367 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L356 + bcc .L358 cmp w4, w1 - bhi .L356 + bhi .L358 mov w0, 1 - b .L355 -.L365: + b .L357 +.L367: mov w0, 0 -.L355: +.L357: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 .global FtlGetCap .type FtlGetCap, %function FtlGetCap: - adrp x0, .LANCHOR0+2576 - ldr w0, [x0,#:lo12:.LANCHOR0+2576] + adrp x0, .LANCHOR0+2584 + ldr w0, [x0,#:lo12:.LANCHOR0+2584] ret .size FtlGetCap, .-FtlGetCap .align 2 + .global FtlGetCapacity + .type FtlGetCapacity, %function +FtlGetCapacity: + adrp x0, .LANCHOR0+2584 + ldr w0, [x0,#:lo12:.LANCHOR0+2584] + ret + .size FtlGetCapacity, .-FtlGetCapacity + .align 2 .global ftl_get_density .type ftl_get_density, %function ftl_get_density: - adrp x0, .LANCHOR0+2576 - ldr w0, [x0,#:lo12:.LANCHOR0+2576] + adrp x0, .LANCHOR0+2584 + ldr w0, [x0,#:lo12:.LANCHOR0+2584] ret .size ftl_get_density, .-ftl_get_density .align 2 .global FtlGetLpn .type FtlGetLpn, %function FtlGetLpn: - adrp x0, .LANCHOR0+2608 - ldr w0, [x0,#:lo12:.LANCHOR0+2608] + adrp x0, .LANCHOR0+2616 + ldr w0, [x0,#:lo12:.LANCHOR0+2616] ret .size FtlGetLpn, .-FtlGetLpn .align 2 @@ -2785,7 +2832,7 @@ FtlBbmMapBadBlock: str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x19, x19, 2616 + add x19, x19, 2624 ldrh w3, [x19,-82] udiv w2, w1, w3 add x0, x19, x2, uxth 3 @@ -2816,11 +2863,11 @@ FtlBbmIsBadBlock: adrp x2, .LANCHOR0 uxth w0, w0 add x3, x2, :lo12:.LANCHOR0 - ldrh w1, [x3,2534] + ldrh w1, [x3,2542] udiv w2, w0, w1 msub w0, w2, w1, w0 add x2, x3, x2, uxth 3 - ldr x1, [x2,2648] + ldr x1, [x2,2656] uxth w0, w0 ubfx x3, x0, 5, 11 ldr w1, [x1,x3,lsl 2] @@ -2846,22 +2893,22 @@ FtlBbtCalcTotleCnt: str x21, [sp,32] mov w19, 0 mov w20, w19 - ldrh w1, [x0,2534] - ldrh w21, [x0,2490] + ldrh w1, [x0,2542] + ldrh w21, [x0,2494] mul w21, w1, w21 -.L373: +.L376: cmp w20, w21 - bge .L379 + bge .L382 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L374 + cbz w0, .L377 add w19, w19, 1 uxth w19, w19 -.L374: +.L377: add w20, w20, 1 uxth w20, w20 - b .L373 -.L379: + b .L376 +.L382: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -2876,11 +2923,11 @@ V2P_block: uxth w0, w0 add x3, x3, :lo12:.LANCHOR0 uxth w1, w1 - ldrh w4, [x3,2492] + ldrh w4, [x3,2496] udiv w2, w0, w4 msub w0, w2, w4, w0 madd w0, w1, w4, w0 - ldrh w1, [x3,2534] + ldrh w1, [x3,2542] madd w0, w2, w1, w0 ret .size V2P_block, .-V2P_block @@ -2891,8 +2938,8 @@ P2V_plane: adrp x2, .LANCHOR0 uxth w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrh w1, [x2,2492] - ldrh w3, [x2,2534] + ldrh w1, [x2,2496] + ldrh w3, [x2,2542] udiv w2, w0, w1 udiv w3, w0, w3 msub w0, w2, w1, w0 @@ -2906,10 +2953,10 @@ P2V_block_in_plane: adrp x2, .LANCHOR0 uxth w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrh w3, [x2,2534] + ldrh w3, [x2,2542] udiv w1, w0, w3 msub w0, w1, w3, w0 - ldrh w1, [x2,2492] + ldrh w1, [x2,2496] uxth w0, w0 udiv w0, w0, w1 ret @@ -2920,24 +2967,24 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L384 + bls .L387 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L385 -.L384: + b .L388 +.L387: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L385: +.L388: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 .global FtlFreeSysBlkQueueEmpty .type FtlFreeSysBlkQueueEmpty, %function FtlFreeSysBlkQueueEmpty: - adrp x0, .LANCHOR0+2718 - ldrh w0, [x0,#:lo12:.LANCHOR0+2718] + adrp x0, .LANCHOR0+2726 + ldrh w0, [x0,#:lo12:.LANCHOR0+2726] cmp w0, wzr cset w0, eq ret @@ -2946,8 +2993,8 @@ FtlFreeSysBlkQueueEmpty: .global FtlFreeSysBlkQueueFull .type FtlFreeSysBlkQueueFull, %function FtlFreeSysBlkQueueFull: - adrp x0, .LANCHOR0+2718 - ldrh w0, [x0,#:lo12:.LANCHOR0+2718] + adrp x0, .LANCHOR0+2726 + ldrh w0, [x0,#:lo12:.LANCHOR0+2726] cmp w0, 1024 cset w0, eq ret @@ -2965,39 +3012,39 @@ FtlFreeSysBlkQueueIn: mov w0, 65533 sub w2, w21, #1 cmp w0, w2, uxth - bcc .L388 + bcc .L391 adrp x2, .LANCHOR0 add x0, x2, :lo12:.LANCHOR0 mov x19, x2 - ldrh w0, [x0,2718] + ldrh w0, [x0,2726] cmp w0, 1024 - beq .L388 - cbz w1, .L390 + beq .L391 + cbz w1, .L393 adrp x20, .LANCHOR2 add x20, x20, :lo12:.LANCHOR2 - ldr w0, [x20,416] - cbnz w0, .L390 + ldr w0, [x20,424] + cbnz w0, .L393 mov w0, w21 bl P2V_block_in_plane uxth w22, w0 - ldr x0, [x20,424] + ldr x0, [x20,432] lsl w1, w21, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 - ldr x0, [x20,424] + ldr x0, [x20,432] bl FlashEraseBlocks ubfiz x0, x22, 1, 16 - ldr x2, [x20,432] + ldr x2, [x20,440] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x20,440] + ldr w0, [x20,448] add w0, w0, 1 - str w0, [x20,440] -.L390: + str w0, [x20,448] +.L393: add x1, x19, :lo12:.LANCHOR0 - add x1, x1, 2712 + add x1, x1, 2720 ldrh w0, [x1,6] ldrh w2, [x1,4] add w0, w0, 1 @@ -3007,7 +3054,7 @@ FtlFreeSysBlkQueueIn: and w2, w2, 1023 strh w21, [x0,8] strh w2, [x1,4] -.L388: +.L391: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -3017,21 +3064,21 @@ FtlFreeSysBlkQueueIn: .global FtlFreeSysBLkSort .type FtlFreeSysBLkSort, %function FtlFreeSysBLkSort: - adrp x0, .LANCHOR2+476 - ldrh w6, [x0,#:lo12:.LANCHOR2+476] + adrp x0, .LANCHOR2+484 + ldrh w6, [x0,#:lo12:.LANCHOR2+484] adrp x0, .LANCHOR0 add x1, x0, :lo12:.LANCHOR0 - add x1, x1, 2712 + add x1, x1, 2720 ldrh w2, [x1,6] - cbz w2, .L397 + cbz w2, .L400 mov w5, 0 ldrh w3, [x1,2] ldrh w2, [x1,4] mov w4, w5 and w6, w6, 31 -.L399: +.L402: cmp w4, w6 - bge .L407 + bge .L410 add x5, x1, x3, sxtw 1 ldrh w7, [x5,8] add x5, x1, x2, sxtw 1 @@ -3043,13 +3090,13 @@ FtlFreeSysBLkSort: uxth w4, w4 and w3, w3, 1023 and w2, w2, 1023 - b .L399 -.L407: - cbz w5, .L397 + b .L402 +.L410: + cbz w5, .L400 add x0, x0, :lo12:.LANCHOR0 - strh w3, [x0,2714] - strh w2, [x0,2716] -.L397: + strh w3, [x0,2722] + strh w2, [x0,2724] +.L400: ret .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -3065,12 +3112,12 @@ FtlFreeSysBlkQueueOut: adrp x23, .LC3 stp x19, x20, [sp,16] stp x25, x26, [sp,64] - add x22, x21, 2712 + add x22, x21, 2720 add x23, x23, :lo12:.LC3 mov x24, x21 -.L409: +.L412: ldrh w1, [x22,6] - cbz w1, .L410 + cbz w1, .L413 adrp x19, .LANCHOR2 ldrh w2, [x22,2] add x25, x19, :lo12:.LANCHOR2 @@ -3079,55 +3126,55 @@ FtlFreeSysBlkQueueOut: strh w1, [x22,6] add w2, w2, 1 ldrh w20, [x0,8] - ldr w1, [x25,416] + ldr w1, [x25,424] and w2, w2, 1023 strh w2, [x22,2] - cbnz w1, .L411 + cbnz w1, .L414 mov w0, w20 str x1, [x29,88] bl P2V_block_in_plane uxth w26, w0 - ldr x0, [x25,424] + ldr x0, [x25,432] lsl w2, w20, 10 ldr x1, [x29,88] str w2, [x0,4] - ldrb w0, [x21,196] - cbz w0, .L412 - ldr x0, [x25,424] + ldrb w0, [x21,204] + cbz w0, .L415 + ldr x0, [x25,432] mov w2, 1 bl FlashEraseBlocks -.L412: +.L415: add x19, x19, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 - ldr x0, [x19,424] + ldr x0, [x19,432] bl FlashEraseBlocks ubfiz x0, x26, 1, 16 - ldr x2, [x19,432] + ldr x2, [x19,440] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x19,440] + ldr w0, [x19,448] add w0, w0, 1 - str w0, [x19,440] - b .L411 -.L410: + str w0, [x19,448] + b .L414 +.L413: adrp x0, .LC2 add x0, x0, :lo12:.LC2 bl printk -.L413: - b .L413 -.L411: +.L416: + b .L416 +.L414: sub w0, w20, #1 mov w1, 65533 cmp w1, w0, uxth - bcs .L414 - ldrh w2, [x24,2718] + bcs .L417 + ldrh w2, [x24,2726] mov x0, x23 mov w1, w20 bl printk - b .L409 -.L414: + b .L412 +.L417: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3141,31 +3188,31 @@ FtlFreeSysBlkQueueOut: .type test_node_in_list, %function test_node_in_list: ldr x2, [x0] - adrp x0, .LANCHOR2+496 + adrp x0, .LANCHOR2+504 mov x4, -6148914691236517206 uxth w1, w1 mov w5, 65535 - ldr x3, [x0,#:lo12:.LANCHOR2+496] + ldr x3, [x0,#:lo12:.LANCHOR2+504] sub x0, x2, x3 asr x0, x0, 1 madd x0, x4, x0, x0 mov w4, 6 uxth w0, w0 -.L420: +.L423: cmp w1, w0 - beq .L421 + beq .L424 ldrh w0, [x2] cmp w0, w5 - beq .L422 + beq .L425 umull x2, w0, w4 add x2, x3, x2 - b .L420 -.L421: + b .L423 +.L424: mov w0, 1 - b .L419 -.L422: + b .L422 +.L425: mov w0, 0 -.L419: +.L422: ret .size test_node_in_list, .-test_node_in_list .align 2 @@ -3175,50 +3222,50 @@ insert_data_list: adrp x9, .LANCHOR0 uxth w0, w0 add x9, x9, :lo12:.LANCHOR0 - ldrh w1, [x9,2476] + ldrh w1, [x9,2480] cmp w1, w0 - bls .L425 + bls .L428 adrp x2, .LANCHOR2 mov w7, 6 add x5, x2, :lo12:.LANCHOR2 mov w1, -1 umull x10, w0, w7 mov x3, x2 - ldr x11, [x5,496] + ldr x11, [x5,504] add x4, x11, x10 strh w1, [x4,2] strh w1, [x11,x10] - ldr x1, [x5,504] - cbnz x1, .L426 - str x4, [x5,504] - b .L425 -.L426: + ldr x1, [x5,512] + cbnz x1, .L429 + str x4, [x5,512] + b .L428 +.L429: ubfiz x8, x0, 1, 16 - ldr x13, [x5,512] + ldr x13, [x5,520] ldrh w2, [x4,4] mov x14, -6148914691236517206 - ldr x12, [x5,496] + ldr x12, [x5,504] mov w18, 65535 ldrh w6, [x13,x8] cmp w2, wzr - ldrh w17, [x9,2476] + ldrh w17, [x9,2480] mul w6, w6, w2 sub x2, x1, x12 asr x2, x2, 1 csinv w6, w6, wzr, ne madd x2, x14, x2, x2 - ldr x14, [x5,432] + ldr x14, [x5,440] mov w5, 0 add x9, x14, x8 uxth w2, w2 mov w8, w7 -.L434: +.L437: add w5, w5, 1 cmp w0, w2 uxth w5, w5 - beq .L425 + beq .L428 cmp w5, w17 - bhi .L425 + bhi .L428 ubfiz x15, x2, 1, 16 ldrh w16, [x1,4] cmp w16, wzr @@ -3226,47 +3273,47 @@ insert_data_list: mul w7, w7, w16 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L430 + bne .L433 ldrh w15, [x14,x15] ldrh w7, [x9] cmp w15, w7 - bcc .L432 - b .L431 -.L430: - bhi .L431 -.L432: + bcc .L435 + b .L434 +.L433: + bhi .L434 +.L435: ldrh w7, [x1] cmp w7, w18 - bne .L433 + bne .L436 strh w2, [x4,2] add x2, x3, :lo12:.LANCHOR2 strh w0, [x1] - str x4, [x2,520] - b .L425 -.L433: + str x4, [x2,528] + b .L428 +.L436: umull x1, w7, w8 mov w2, w7 add x1, x12, x1 - b .L434 -.L431: + b .L437 +.L434: strh w2, [x11,x10] ldrh w2, [x1,2] strh w2, [x4,2] add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,504] + ldr x3, [x2,512] cmp x1, x3 - bne .L435 + bne .L438 strh w0, [x1,2] - str x4, [x2,504] - b .L425 -.L435: + str x4, [x2,512] + b .L428 +.L438: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,496] + ldr x2, [x2,504] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L425: +.L428: mov w0, 0 ret .size insert_data_list, .-insert_data_list @@ -3279,9 +3326,9 @@ INSERT_DATA_LIST: bl insert_data_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,528] + ldrh w1, [x0,536] add w1, w1, 1 - strh w1, [x0,528] + strh w1, [x0,536] ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -3292,66 +3339,66 @@ insert_free_list: uxth w0, w0 mov w7, 65535 cmp w0, w7 - beq .L440 + beq .L443 adrp x2, .LANCHOR2 mov w6, 6 add x5, x2, :lo12:.LANCHOR2 mov w1, -1 umull x8, w0, w6 mov x3, x2 - ldr x9, [x5,496] + ldr x9, [x5,504] add x4, x9, x8 strh w1, [x4,2] strh w1, [x9,x8] - ldr x1, [x5,536] - cbnz x1, .L441 - str x4, [x5,536] - b .L440 -.L441: - ldr x11, [x5,432] + ldr x1, [x5,544] + cbnz x1, .L444 + str x4, [x5,544] + b .L443 +.L444: + ldr x11, [x5,440] ubfiz x2, x0, 1, 16 - ldr x10, [x5,496] + ldr x10, [x5,504] mov x5, -6148914691236517206 ldrh w12, [x11,x2] sub x2, x1, x10 asr x2, x2, 1 madd x2, x5, x2, x2 uxth w2, w2 -.L444: +.L447: ubfiz x5, x2, 1, 16 ldrh w5, [x11,x5] cmp w5, w12 - bcs .L442 + bcs .L445 ldrh w5, [x1] cmp w5, w7 - bne .L443 + bne .L446 strh w2, [x4,2] strh w0, [x1] - b .L440 -.L443: + b .L443 +.L446: umull x1, w5, w6 mov w2, w5 add x1, x10, x1 - b .L444 -.L442: + b .L447 +.L445: ldrh w5, [x1,2] strh w5, [x4,2] strh w2, [x9,x8] add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,536] + ldr x3, [x2,544] cmp x1, x3 - bne .L445 + bne .L448 strh w0, [x1,2] - str x4, [x2,536] - b .L440 -.L445: + str x4, [x2,544] + b .L443 +.L448: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,496] + ldr x2, [x2,504] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L440: +.L443: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -3364,9 +3411,9 @@ INSERT_FREE_LIST: bl insert_free_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,544] + ldrh w1, [x0,552] add w1, w1, 1 - strh w1, [x0,544] + strh w1, [x0,552] ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -3381,43 +3428,43 @@ List_remove_node: ldr x3, [x0] mov w7, 65535 umull x1, w1, w5 - ldr x2, [x6,496] + ldr x2, [x6,504] add x4, x2, x1 cmp x4, x3 - bne .L448 + bne .L451 ldrh w3, [x2,x1] cmp w3, w7 - bne .L449 + bne .L452 str xzr, [x0] - b .L450 -.L449: + b .L453 +.L452: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L450 -.L448: + b .L453 +.L451: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L451 + bne .L454 cmp w3, w0 - beq .L450 + beq .L453 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L450 -.L451: + b .L453 +.L454: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] ldrh w3, [x4,2] - ldr x0, [x6,496] + ldr x0, [x6,504] ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L450: +.L453: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -3434,14 +3481,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L453 - adrp x3, .LANCHOR2+496 + cbz x2, .L456 + adrp x3, .LANCHOR2+504 mov w5, w19 mov w6, 6 - ldr x4, [x3,#:lo12:.LANCHOR2+496] -.L454: - cbnz w1, .L455 + ldr x4, [x3,#:lo12:.LANCHOR2+504] .L457: + cbnz w1, .L458 +.L460: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -3449,17 +3496,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L453 -.L455: + b .L456 +.L458: ldrh w3, [x2] cmp w3, w5 - beq .L457 + beq .L460 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L454 -.L453: + b .L457 +.L456: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -3473,27 +3520,27 @@ List_get_gc_head_node: uxth w3, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 65535 - ldr x1, [x2,504] - cbz x1, .L465 - ldr x4, [x2,496] + ldr x1, [x2,512] + cbz x1, .L468 + ldr x4, [x2,504] mov w5, 6 -.L461: - cbz w3, .L462 +.L464: + cbz w3, .L465 ldrh w2, [x1] cmp w2, w0 - beq .L465 + beq .L468 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L461 -.L462: + b .L464 +.L465: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L465: +.L468: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -3506,23 +3553,23 @@ List_update_data_list: adrp x19, .LANCHOR2 uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,552] + ldrh w1, [x0,560] cmp w1, w20 - beq .L467 - ldrh w1, [x0,600] + beq .L470 + ldrh w1, [x0,608] cmp w1, w20 - beq .L467 - ldrh w1, [x0,648] + beq .L470 + ldrh w1, [x0,656] cmp w1, w20 - beq .L467 + beq .L470 mov w3, 6 - ldr x4, [x0,496] - ldr x2, [x0,504] + ldr x4, [x0,504] + ldr x2, [x0,512] umull x3, w20, w3 add x1, x4, x3 cmp x1, x2 - beq .L467 - ldr x5, [x0,512] + beq .L470 + ldr x5, [x0,520] ubfiz x0, x20, 1, 16 ldrh w2, [x5,x0] ldrh w0, [x1,4] @@ -3532,11 +3579,11 @@ List_update_data_list: mov w0, 65535 csinv w2, w2, wzr, ne cmp w1, w0 - bne .L469 + bne .L472 ldrh w0, [x4,x3] cmp w0, w1 - beq .L467 -.L469: + beq .L470 +.L472: mov w0, 6 mov x3, -6148914691236517206 umull x1, w1, w0 @@ -3549,17 +3596,17 @@ List_update_data_list: mul w0, w0, w1 csinv w0, w0, wzr, ne cmp w2, w0 - bcs .L467 + bcs .L470 add x19, x19, :lo12:.LANCHOR2 mov w1, w20 - add x0, x19, 504 + add x0, x19, 512 bl List_remove_node - ldrh w0, [x19,528] + ldrh w0, [x19,536] sub w0, w0, #1 - strh w0, [x19,528] + strh w0, [x19,536] mov w0, w20 bl INSERT_DATA_LIST -.L467: +.L470: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -3576,12 +3623,12 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L474: +.L477: cmp w20, w2 - beq .L478 + beq .L481 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L475 + cbnz w21, .L478 mov x19, x0 bl FtlFreeSysBlkQueueOut strh w0, [x22] @@ -3589,15 +3636,15 @@ ftl_map_blk_alloc_new_blk: sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L476 - adrp x2, .LANCHOR0+2718 + bcs .L479 + adrp x2, .LANCHOR0+2726 adrp x0, .LC4 add x0, x0, :lo12:.LC4 - ldrh w2, [x2,#:lo12:.LANCHOR0+2718] + ldrh w2, [x2,#:lo12:.LANCHOR0+2726] bl printk -.L477: - b .L477 -.L476: +.L480: + b .L480 +.L479: ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -3606,12 +3653,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L478 -.L475: + b .L481 +.L478: add w20, w20, 1 uxth w20, w20 - b .L474 -.L478: + b .L477 +.L481: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3622,71 +3669,71 @@ ftl_map_blk_alloc_new_blk: .global select_l2p_ram_region .type select_l2p_ram_region, %function select_l2p_ram_region: - adrp x0, .LANCHOR0+2574 + adrp x0, .LANCHOR0+2582 mov x4, 0 mov w5, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR0+2574] + ldrh w2, [x0,#:lo12:.LANCHOR0+2582] adrp x0, .LANCHOR2 add x1, x0, :lo12:.LANCHOR2 mov x3, x0 - ldr x1, [x1,696] -.L481: + ldr x1, [x1,704] +.L484: uxth w0, w4 cmp w0, w2 - bcs .L497 + bcs .L500 add x4, x4, 1 add x6, x1, x4, lsl 4 ldrh w6, [x6,-16] cmp w6, w5 - bne .L481 - b .L482 -.L497: + bne .L484 + b .L485 +.L500: mov w0, w2 mov x4, 0 mov w7, -2147483648 -.L484: +.L487: uxth w6, w4 cmp w6, w2 - bcs .L498 + bcs .L501 add x5, x1, x4, lsl 4 ldr w5, [x5,4] - tbnz w5, #31, .L493 + tbnz w5, #31, .L496 cmp w5, w7 - bcc .L485 -.L493: + bcc .L488 +.L496: mov w5, w7 mov w6, w0 -.L485: +.L488: add x4, x4, 1 mov w7, w5 mov w0, w6 - b .L484 -.L498: + b .L487 +.L501: cmp w0, w2 - bcc .L482 + bcc .L485 add x0, x3, :lo12:.LANCHOR2 add x1, x1, 4 mov w4, -1 mov w3, 0 - ldrh w5, [x0,704] + ldrh w5, [x0,712] mov w0, w2 -.L488: +.L491: cmp w3, w2 - beq .L482 + beq .L485 ldr w7, [x1] cmp w7, w4 - bcs .L489 + bcs .L492 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L489: +.L492: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L488 -.L482: + b .L491 +.L485: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -3695,36 +3742,36 @@ select_l2p_ram_region: FtlUpdateVaildLpn: adrp x1, .LANCHOR2 add x3, x1, :lo12:.LANCHOR2 - ldrh w2, [x3,706] - cbnz w0, .L500 + ldrh w2, [x3,714] + cbnz w0, .L503 cmp w2, 4 - bhi .L500 + bhi .L503 add w2, w2, 1 - strh w2, [x3,706] - b .L499 -.L500: - adrp x2, .LANCHOR0+2476 + strh w2, [x3,714] + b .L502 +.L503: + adrp x2, .LANCHOR0+2480 add x0, x1, :lo12:.LANCHOR2 mov w7, 65535 - ldrh w5, [x2,#:lo12:.LANCHOR0+2476] - strh wzr, [x0,706] - str wzr, [x0,708] - ldr x6, [x0,512] + ldrh w5, [x2,#:lo12:.LANCHOR0+2480] + strh wzr, [x0,714] + str wzr, [x0,716] + ldr x6, [x0,520] mov x0, 0 -.L501: +.L504: cmp w5, w0, uxth - bls .L499 + bls .L502 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L502 + beq .L505 add x3, x1, :lo12:.LANCHOR2 - ldr w2, [x3,708] + ldr w2, [x3,716] add w2, w4, w2 - str w2, [x3,708] -.L502: + str w2, [x3,716] +.L505: add x0, x0, 1 - b .L501 -.L499: + b .L504 +.L502: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -3734,10 +3781,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L506 + cbz w1, .L509 bl ftl_set_blk_mode.part.9 - b .L505 -.L506: + b .L508 +.L509: adrp x1, .LANCHOR0 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -3747,7 +3794,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L505: +.L508: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -3774,42 +3821,42 @@ ftl_sb_update_avl_pages: uxth w2, w2 strh wzr, [x0,4] mov w6, 65535 - ldrh w4, [x4,2468] -.L510: + ldrh w4, [x4,2472] +.L513: cmp w2, w4 - bcs .L516 + bcs .L519 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L511 + beq .L514 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L511: +.L514: add w2, w2, 1 uxth w2, w2 - b .L510 -.L516: + b .L513 +.L519: add x3, x3, :lo12:.LANCHOR0 mov w6, 65535 add x4, x0, x4, uxth 1 - ldrh w5, [x3,2536] + ldrh w5, [x3,2544] mov x3, x0 -.L513: +.L516: cmp x3, x4 - beq .L517 + beq .L520 ldrh w2, [x3,16] cmp w2, w6 - beq .L514 + beq .L517 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L514: - add x3, x3, 2 - b .L513 .L517: + add x3, x3, 2 + b .L516 +.L520: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -3831,50 +3878,50 @@ make_superblock: mov x21, 0 mov x23, x0 mov w25, -1 - ldrh w24, [x0,2468] -.L519: + ldrh w24, [x0,2472] +.L522: cmp w24, w21, uxth - bls .L530 - add x0, x23, 2496 + bls .L533 + add x0, x23, 2504 ldrh w1, [x19] ldrb w0, [x0,x21] bl V2P_block strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L520 + cbnz w0, .L523 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L520: +.L523: add x21, x21, 1 add x22, x22, 2 - b .L519 -.L530: + b .L522 +.L533: add x1, x20, :lo12:.LANCHOR0 ldrb w0, [x19,7] strb wzr, [x19,9] - ldrh w2, [x1,2536] + ldrh w2, [x1,2544] mul w0, w0, w2 strh w0, [x19,4] - ldr w0, [x1,2460] - cbz w0, .L522 - adrp x0, .LANCHOR2+432 + ldr w0, [x1,2372] + cbz w0, .L525 + adrp x0, .LANCHOR2+440 ldrh w1, [x19] - ldr x0, [x0,#:lo12:.LANCHOR2+432] + ldr x0, [x0,#:lo12:.LANCHOR2+440] ldrh w0, [x0,x1,lsl 1] cmp w0, 79 - bhi .L522 + bhi .L525 mov w0, 1 strb w0, [x19,9] -.L522: +.L525: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,72] - cbz w0, .L523 + cbz w0, .L526 mov w0, 1 strb w0, [x19,9] -.L523: +.L526: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3896,33 +3943,33 @@ update_multiplier_value: stp x23, x24, [sp,48] mov x22, 0 uxth w21, w0 - ldrh w23, [x1,2468] + ldrh w23, [x1,2472] mov w19, w22 - ldrh w24, [x1,2536] + ldrh w24, [x1,2544] mov x20, x1 -.L532: +.L535: cmp w23, w22, uxth - bls .L539 - add x0, x20, 2496 + bls .L542 + add x0, x20, 2504 mov w1, w21 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L533 + cbnz w0, .L536 add w19, w19, w24 uxth w19, w19 -.L533: +.L536: add x22, x22, 1 - b .L532 -.L539: - cbz w19, .L535 + b .L535 +.L542: + cbz w19, .L538 mov w0, 32768 sdiv w19, w0, w19 -.L535: +.L538: mov w0, 6 umull x21, w21, w0 - adrp x0, .LANCHOR2+496 - ldr x0, [x0,#:lo12:.LANCHOR2+496] + adrp x0, .LANCHOR2+504 + ldr x0, [x0,#:lo12:.LANCHOR2+504] add x21, x0, x21 mov w0, 0 strh w19, [x21,4] @@ -3938,18 +3985,18 @@ update_multiplier_value: GetFreeBlockMinEraseCount: adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldr x1, [x2,536] + ldr x1, [x2,544] mov w0, w1 - cbz x1, .L541 - ldr x0, [x2,496] + cbz x1, .L544 + ldr x0, [x2,504] sub x1, x1, x0 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 - ldr x0, [x2,432] + ldr x0, [x2,440] and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L541: +.L544: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -3959,15 +4006,15 @@ GetFreeBlockMaxEraseCount: adrp x2, .LANCHOR2 uxth w4, w0 add x5, x2, :lo12:.LANCHOR2 - ldr x1, [x5,536] + ldr x1, [x5,544] mov w0, w1 - cbz x1, .L544 - ldrh w3, [x5,544] + cbz x1, .L547 + ldrh w3, [x5,552] mov w0, 7 mov w6, 6 mov w7, 65535 mul w3, w3, w0 - ldr x0, [x5,496] + ldr x0, [x5,504] asr w3, w3, 3 cmp w4, w3 sub x1, x1, x0 @@ -3977,25 +4024,25 @@ GetFreeBlockMaxEraseCount: madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L546: +.L549: cmp w3, w4 - beq .L549 + beq .L552 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L547 -.L549: + bne .L550 +.L552: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 - ldr x0, [x2,432] + ldr x0, [x2,440] ldrh w0, [x0,x1] - b .L544 -.L547: + b .L547 +.L550: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L546 -.L544: + b .L549 +.L547: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -4016,14 +4063,14 @@ FtlPrintInfo2buf: mov x22, x0 bl strcpy add x20, x22, 12 - ldr w2, [x24,168] + ldr w2, [x24,176] adrp x1, .LC6 mov x0, x20 add x1, x1, :lo12:.LC6 bl sprintf add x20, x20, x0, sxtw adrp x1, .LC7 - ldr w2, [x24,2552] + ldr w2, [x24,2560] mov x0, x20 add x1, x1, :lo12:.LC7 bl sprintf @@ -4031,10 +4078,10 @@ FtlPrintInfo2buf: adrp x0, .LANCHOR1+504 ldr w0, [x0,#:lo12:.LANCHOR1+504] cmp w0, 1 - beq .L552 + beq .L555 sub w0, w20, w22 - b .L553 -.L552: + b .L556 +.L555: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 @@ -4056,75 +4103,75 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC9 add x21, x21, 10 bl strcpy - ldr w2, [x24,2608] + ldr w2, [x24,2616] adrp x1, .LC10 mov x0, x21 add x1, x1, :lo12:.LC10 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,708] + ldr w2, [x23,716] adrp x1, .LC11 mov x0, x21 add x1, x1, :lo12:.LC11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,712] + ldr w2, [x23,720] adrp x1, .LC12 mov x0, x21 add x1, x1, :lo12:.LC12 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,716] + ldr w2, [x23,724] adrp x1, .LC13 mov x0, x21 add x1, x1, :lo12:.LC13 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,720] + ldr w2, [x23,728] adrp x1, .LC14 mov x0, x21 add x1, x1, :lo12:.LC14 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,724] + ldr w2, [x23,732] adrp x1, .LC15 mov x0, x21 add x1, x1, :lo12:.LC15 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,728] + ldr w2, [x23,736] adrp x1, .LC16 mov x0, x21 add x1, x1, :lo12:.LC16 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,732] + ldr w2, [x23,740] adrp x1, .LC17 mov x0, x21 add x1, x1, :lo12:.LC17 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,736] + ldr w2, [x23,744] adrp x1, .LC18 mov x0, x21 add x1, x1, :lo12:.LC18 lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,740] + ldr w2, [x23,748] adrp x1, .LC19 mov x0, x21 add x1, x1, :lo12:.LC19 lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,744] + ldr w2, [x23,752] adrp x1, .LC20 mov x0, x21 add x1, x1, :lo12:.LC20 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,748] + ldr w2, [x23,756] adrp x1, .LC21 add x1, x1, :lo12:.LC21 mov x0, x21 @@ -4132,298 +4179,298 @@ FtlPrintInfo2buf: add x21, x21, x0, sxtw bl FtlBbtCalcTotleCnt uxth w3, w0 - ldrh w2, [x24,2622] + ldrh w2, [x24,2630] adrp x1, .LC22 mov x0, x21 add x1, x1, :lo12:.LC22 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,544] + ldrh w2, [x23,552] adrp x1, .LC23 mov x0, x21 add x1, x1, :lo12:.LC23 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,752] + ldr w2, [x23,760] adrp x1, .LC24 mov x0, x21 add x1, x1, :lo12:.LC24 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,756] + ldr w2, [x23,764] adrp x1, .LC25 mov x0, x21 add x1, x1, :lo12:.LC25 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,760] + ldr w2, [x23,768] adrp x1, .LC26 mov x0, x21 add x1, x1, :lo12:.LC26 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,440] + ldr w2, [x23,448] adrp x1, .LC27 mov x0, x21 add x1, x1, :lo12:.LC27 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,764] + ldr w2, [x23,772] adrp x1, .LC28 mov x0, x21 add x1, x1, :lo12:.LC28 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,768] + ldr w2, [x23,776] adrp x1, .LC29 mov x0, x21 add x1, x1, :lo12:.LC29 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,478] + ldrh w2, [x23,486] adrp x1, .LC30 mov x0, x21 add x1, x1, :lo12:.LC30 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,476] + ldrh w2, [x23,484] adrp x1, .LC31 mov x0, x21 add x1, x1, :lo12:.LC31 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,2576] + ldr w2, [x24,2584] adrp x1, .LC32 mov x0, x21 add x1, x1, :lo12:.LC32 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,2568] + ldr w2, [x24,2576] adrp x1, .LC33 mov x0, x21 add x1, x1, :lo12:.LC33 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,2464] + ldr w2, [x24,2468] adrp x1, .LC34 mov x0, x21 add x1, x1, :lo12:.LC34 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x24,2718] + ldrh w2, [x24,2726] adrp x1, .LC35 mov x0, x21 add x1, x1, :lo12:.LC35 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x24,2476] + ldrh w2, [x24,2480] adrp x1, .LC36 mov x0, x21 add x1, x1, :lo12:.LC36 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,772] + ldrh w2, [x23,780] adrp x1, .LC37 mov x0, x21 add x1, x1, :lo12:.LC37 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,2480] + ldr w2, [x24,2484] adrp x1, .LC38 mov x0, x21 add x1, x1, :lo12:.LC38 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,776] + ldrh w2, [x23,784] adrp x1, .LC39 mov x0, x21 add x1, x1, :lo12:.LC39 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x24,2616] + ldrh w2, [x24,2624] adrp x1, .LC40 mov x0, x21 add x1, x1, :lo12:.LC40 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,554] + ldrh w2, [x23,562] adrp x1, .LC41 mov x0, x21 add x1, x1, :lo12:.LC41 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,558] + ldrb w2, [x23,566] adrp x1, .LC42 mov x0, x21 add x1, x1, :lo12:.LC42 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,552] + ldrh w2, [x23,560] adrp x1, .LC43 mov x0, x21 add x1, x1, :lo12:.LC43 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,560] + ldrb w2, [x23,568] adrp x1, .LC44 mov x0, x21 add x1, x1, :lo12:.LC44 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,556] + ldrh w2, [x23,564] adrp x1, .LC45 mov x0, x21 add x1, x1, :lo12:.LC45 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x23,552] + ldrh w3, [x23,560] adrp x1, .LC46 - ldr x2, [x23,512] + ldr x2, [x23,520] mov x0, x21 add x1, x1, :lo12:.LC46 ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,602] + ldrh w2, [x23,610] adrp x1, .LC47 mov x0, x21 add x1, x1, :lo12:.LC47 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,606] + ldrb w2, [x23,614] adrp x1, .LC48 mov x0, x21 add x1, x1, :lo12:.LC48 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,600] + ldrh w2, [x23,608] adrp x1, .LC49 mov x0, x21 add x1, x1, :lo12:.LC49 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,608] + ldrb w2, [x23,616] adrp x1, .LC50 mov x0, x21 add x1, x1, :lo12:.LC50 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,604] + ldrh w2, [x23,612] adrp x1, .LC51 mov x0, x21 add x1, x1, :lo12:.LC51 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x23,600] + ldrh w3, [x23,608] adrp x1, .LC52 - ldr x2, [x23,512] + ldr x2, [x23,520] mov x0, x21 add x1, x1, :lo12:.LC52 ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,650] + ldrh w2, [x23,658] adrp x1, .LC53 mov x0, x21 add x1, x1, :lo12:.LC53 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,654] + ldrb w2, [x23,662] adrp x1, .LC54 mov x0, x21 add x1, x1, :lo12:.LC54 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,648] + ldrh w2, [x23,656] adrp x1, .LC55 mov x0, x21 add x1, x1, :lo12:.LC55 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,656] + ldrb w2, [x23,664] adrp x1, .LC56 mov x0, x21 add x1, x1, :lo12:.LC56 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,652] + ldrh w2, [x23,660] adrp x1, .LC57 mov x0, x21 add x1, x1, :lo12:.LC57 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,794] + ldrh w2, [x23,802] adrp x1, .LC58 mov x0, x21 add x1, x1, :lo12:.LC58 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,798] + ldrb w2, [x23,806] adrp x1, .LC59 mov x0, x21 add x1, x1, :lo12:.LC59 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,792] + ldrh w2, [x23,800] adrp x1, .LC60 mov x0, x21 add x1, x1, :lo12:.LC60 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,800] + ldrb w2, [x23,808] adrp x1, .LC61 mov x0, x21 add x1, x1, :lo12:.LC61 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,796] + ldrh w2, [x23,804] adrp x1, .LC62 mov x0, x21 add x1, x1, :lo12:.LC62 bl sprintf add x21, x21, x0, sxtw - ldr w3, [x23,840] + ldr w3, [x23,848] adrp x1, .LC63 - ldr w2, [x24,2460] + ldr w2, [x24,2372] add x1, x1, :lo12:.LC63 - ldr w4, [x23,932] + ldr w4, [x23,940] mov x0, x21 - ldr w5, [x23,924] + ldr w5, [x23,932] orr w2, w2, w3, lsl 8 - ldr w3, [x23,928] + ldr w3, [x23,936] bl sprintf add x19, x21, x0, sxtw - ldr w2, [x23,920] + ldr w2, [x23,928] adrp x1, .LC64 mov x0, x19 add x1, x1, :lo12:.LC64 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x23,944] + ldr w2, [x23,952] adrp x1, .LC65 mov x0, x19 add x1, x1, :lo12:.LC65 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x23,1360] + ldrh w2, [x23,1368] adrp x1, .LC66 mov x0, x19 add x1, x1, :lo12:.LC66 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x23,1362] + ldrh w2, [x23,1370] adrp x1, .LC67 mov x0, x19 add x1, x1, :lo12:.LC67 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x23,1364] + ldr w2, [x23,1372] adrp x1, .LC68 mov x0, x19 add x1, x1, :lo12:.LC68 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x23,1368] + ldrh w2, [x23,1376] adrp x1, .LC69 add x1, x1, :lo12:.LC69 mov x0, x19 @@ -4436,7 +4483,7 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC70 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x23,544] + ldrh w0, [x23,552] bl GetFreeBlockMaxEraseCount uxth w2, w0 adrp x1, .LC71 @@ -4444,19 +4491,19 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC71 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x23,792] + ldrh w0, [x23,800] mov w1, 65535 cmp w0, w1 - beq .L554 + beq .L557 ubfiz x2, x0, 1, 16 - ldr x3, [x23,512] + ldr x3, [x23,520] adrp x1, .LC72 mov x0, x19 add x1, x1, :lo12:.LC72 ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L554: +.L557: mov w0, 0 adrp x23, .LC73 mov w20, 0 @@ -4465,67 +4512,67 @@ FtlPrintInfo2buf: mov w26, 6 uxth w3, w0 add x23, x23, :lo12:.LC73 -.L556: +.L559: cmp w3, w27 - beq .L555 + beq .L558 add x21, x25, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 umull x24, w3, w26 mov x0, x19 mov w2, w20 - ldr x5, [x21,496] + ldr x5, [x21,504] mov x1, x23 - ldr x4, [x21,512] + ldr x4, [x21,520] add w20, w20, 1 - ldr x7, [x21,432] + ldr x7, [x21,440] add x5, x5, x24 ldrh w4, [x4,x6] ldrh w5, [x5,4] ldrh w6, [x7,x6] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,496] + ldr x0, [x21,504] cmp w20, 16 ldrh w3, [x0,x24] - bne .L556 -.L555: + bne .L559 +.L558: add x1, x25, :lo12:.LANCHOR2 adrp x23, .LC74 mov w20, 0 mov w27, 65535 mov w26, 6 add x23, x23, :lo12:.LC74 - ldr x0, [x1,536] - ldr x3, [x1,496] + ldr x0, [x1,544] + ldr x3, [x1,504] sub x3, x0, x3 mov x0, -6148914691236517206 asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L558: +.L561: cmp w3, w27 - beq .L557 + beq .L560 add x21, x25, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 umull x24, w3, w26 mov x0, x19 mov w2, w20 - ldr x4, [x21,496] + ldr x4, [x21,504] mov x1, x23 - ldr x6, [x21,432] + ldr x6, [x21,440] add w20, w20, 1 add x4, x4, x24 ldrh w5, [x6,x5] ldrh w4, [x4,4] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,496] + ldr x0, [x21,504] cmp w20, 4 ldrh w3, [x0,x24] - bne .L558 -.L557: + bne .L561 +.L560: sub w0, w19, w22 -.L553: +.L556: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4568,115 +4615,115 @@ GetSwlReplaceBlock: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w2, [x0,760] - ldr w1, [x0,768] + ldr w2, [x0,768] + ldr w1, [x0,776] cmp w2, w1 - bcs .L563 + bcs .L566 adrp x1, .LANCHOR0 - str wzr, [x0,752] + str wzr, [x0,760] add x2, x1, :lo12:.LANCHOR0 - ldr x5, [x0,432] + ldr x5, [x0,440] mov x0, 0 - ldrh w3, [x2,2476] -.L564: + ldrh w3, [x2,2480] +.L567: cmp w3, w0 - bls .L596 + bls .L599 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x0,lsl 1] add x0, x0, 1 - ldr w2, [x4,752] + ldr w2, [x4,760] add w2, w6, w2 - str w2, [x4,752] - b .L564 -.L596: + str w2, [x4,760] + b .L567 +.L599: add x2, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR0 - ldr w0, [x2,752] - ldrh w1, [x1,2528] + ldr w0, [x2,760] + ldrh w1, [x1,2536] udiv w3, w0, w3 - str w3, [x2,760] - ldr w3, [x2,756] + str w3, [x2,768] + ldr w3, [x2,764] sub w0, w0, w3 udiv w0, w0, w1 - str w0, [x2,752] - b .L566 -.L563: - ldr w1, [x0,764] + str w0, [x2,760] + b .L569 +.L566: + ldr w1, [x0,772] cmp w2, w1 - bls .L566 + bls .L569 add w1, w1, 1 adrp x4, .LANCHOR0 - str w1, [x0,764] + str w1, [x0,772] mov w0, 0 -.L568: +.L571: add x1, x4, :lo12:.LANCHOR0 - ldrh w1, [x1,2476] + ldrh w1, [x1,2480] cmp w0, w1 - bcs .L566 + bcs .L569 add x1, x19, :lo12:.LANCHOR2 ubfiz x2, x0, 1, 32 add w0, w0, 1 - ldr x3, [x1,432] + ldr x3, [x1,440] ldrh w1, [x3,x2] add w1, w1, 1 strh w1, [x3,x2] - b .L568 -.L566: + b .L571 +.L569: add x1, x19, :lo12:.LANCHOR2 - ldr w21, [x1,768] - ldr w24, [x1,760] + ldr w21, [x1,776] + ldr w24, [x1,768] add w0, w21, 256 cmp w0, w24 - bls .L571 - ldr w1, [x1,764] + bls .L574 + ldr w1, [x1,772] add w0, w21, 768 cmp w0, w1 - bls .L571 - adrp x0, .LANCHOR0+2460 - ldr w0, [x0,#:lo12:.LANCHOR0+2460] - cbz w0, .L574 + bls .L574 + adrp x0, .LANCHOR0+2372 + ldr w0, [x0,#:lo12:.LANCHOR0+2372] + cbz w0, .L577 cmp w21, 40 - bls .L571 -.L574: + bls .L574 +.L577: mov w0, 65535 - b .L573 -.L571: + b .L576 +.L574: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,544] + ldrh w0, [x0,552] add w0, w0, w0, lsl 1 lsr w0, w0, 2 bl GetFreeBlockMaxEraseCount uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L583 + bcs .L586 cmp w21, 40 - bhi .L574 -.L583: + bhi .L577 +.L586: add x0, x19, :lo12:.LANCHOR2 - ldr x3, [x0,504] - cbz x3, .L574 - adrp x1, .LANCHOR0+2476 + ldr x3, [x0,512] + cbz x3, .L577 + adrp x1, .LANCHOR0+2480 mov w23, 65535 - ldr x7, [x0,496] + ldr x7, [x0,504] mov w20, w23 - ldr x26, [x0,432] + ldr x26, [x0,440] mov x0, -6148914691236517206 - ldrh w9, [x1,#:lo12:.LANCHOR0+2476] + ldrh w9, [x1,#:lo12:.LANCHOR0+2480] mov w8, w23 mov w1, 0 add x0, x0, 1 mov w10, 6 -.L576: +.L579: ldrh w2, [x3] cmp w2, w8 - beq .L578 + beq .L581 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L574 + bhi .L577 ldrh w4, [x3,4] - cbz w4, .L577 + cbz w4, .L580 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -4684,61 +4731,61 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w3, [x26,x4,lsl 1] cmp w3, w21 - bls .L582 + bls .L585 cmp w3, w23 - bcs .L577 + bcs .L580 mov w23, w3 mov w20, w5 -.L577: +.L580: umull x3, w2, w10 add x3, x7, x3 - b .L576 -.L582: + b .L579 +.L585: mov w20, w5 -.L578: +.L581: mov w0, 65535 cmp w20, w0 - beq .L574 + beq .L577 ubfiz x25, x20, 1, 16 ldrh w22, [x26,x25] cmp w22, w21 - bls .L580 + bls .L583 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L580 + bcs .L583 add x0, x19, :lo12:.LANCHOR2 - str w23, [x0,768] -.L580: + str w23, [x0,776] +.L583: cmp w22, w24 - bcs .L574 + bcs .L577 add w0, w22, 128 cmp w6, w0 - ble .L574 + ble .L577 add w0, w22, 256 cmp w0, w24 - bcc .L581 + bcc .L584 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 - ldr w0, [x0,764] + ldr w0, [x0,772] cmp w22, w0 - bcs .L574 -.L581: + bcs .L577 +.L584: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC77 ldrh w5, [x26,x25] add x0, x0, :lo12:.LC77 mov w1, w20 mov w2, w24 - ldr x4, [x19,512] - ldr w3, [x19,764] + ldr x4, [x19,520] + ldr w3, [x19,772] ldrh w4, [x4,x25] bl printk mov w0, 1 - str w0, [x19,1372] + str w0, [x19,1380] mov w0, w20 -.L573: +.L576: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4755,13 +4802,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L598 - adrp x2, .LANCHOR2+512 + beq .L601 + adrp x2, .LANCHOR2+520 ubfiz x1, x0, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2+512] + ldr x2, [x2,#:lo12:.LANCHOR2+520] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L598: +.L601: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -4778,30 +4825,30 @@ FtlGcBufInit: mov w12, 1 mov w6, 4 mov w13, 56 - str wzr, [x0,1376] -.L600: + str wzr, [x0,1384] +.L603: add x5, x10, :lo12:.LANCHOR0 adrp x9, .LANCHOR0 - ldrh w0, [x5,2468] + ldrh w0, [x5,2472] cmp w1, w0 - bcs .L604 + bcs .L607 add x2, x3, :lo12:.LANCHOR2 umull x4, w1, w11 - ldr x7, [x2,1384] - ldr x8, [x2,1392] + ldr x7, [x2,1392] + ldr x8, [x2,1400] add x0, x7, x4 str w12, [x0,16] - ldrh w0, [x5,2546] + ldrh w0, [x5,2554] mul w0, w1, w0 sdiv w0, w0, w6 add x0, x8, x0, sxtw 2 str x0, [x7,x4] - ldrh w0, [x5,2548] - ldr x8, [x2,1384] - ldr x5, [x2,1400] + ldrh w0, [x5,2556] + ldr x8, [x2,1392] + ldr x5, [x2,1408] mul w0, w1, w0 add x7, x8, x4 - ldr x2, [x2,1408] + ldr x2, [x2,1416] sdiv w0, w0, w6 add x0, x5, x0, sxtw 2 str x0, [x7,8] @@ -4813,29 +4860,29 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x7,8] str x2, [x0,16] - b .L600 -.L604: + b .L603 +.L607: mov w8, 24 mov w5, 4 -.L602: +.L605: add x2, x3, :lo12:.LANCHOR2 - ldr w1, [x2,1416] + ldr w1, [x2,1424] cmp w0, w1 - bcs .L605 + bcs .L608 umull x4, w0, w8 - ldr x7, [x2,1384] + ldr x7, [x2,1392] add x6, x9, :lo12:.LANCHOR0 - ldr x10, [x2,1392] + ldr x10, [x2,1400] add x1, x7, x4 str wzr, [x1,16] - ldrh w1, [x6,2546] + ldrh w1, [x6,2554] mul w1, w0, w1 sdiv w1, w1, w5 add x1, x10, x1, sxtw 2 str x1, [x7,x4] - ldrh w1, [x6,2548] - ldr x6, [x2,1384] - ldr x2, [x2,1400] + ldrh w1, [x6,2556] + ldr x6, [x2,1392] + ldr x2, [x2,1408] mul w1, w0, w1 add x4, x6, x4 add w0, w0, 1 @@ -4843,8 +4890,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x2, x1, sxtw 2 str x1, [x4,8] - b .L602 -.L605: + b .L605 +.L608: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -4856,34 +4903,34 @@ FtlGcBufFree: add x2, x2, :lo12:.LANCHOR2 mov w7, 56 mov w9, 24 - ldr w8, [x2,1416] - ldr x5, [x2,1384] -.L607: + ldr w8, [x2,1424] + ldr x5, [x2,1392] +.L610: cmp w3, w1 - bcs .L606 + bcs .L609 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L612: +.L615: cmp w2, w8 - bcs .L609 + bcs .L612 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L608 + bne .L611 str wzr, [x10,16] - b .L609 -.L608: + b .L612 +.L611: add w2, w2, 1 uxth w2, w2 - b .L612 -.L609: + b .L615 +.L612: add w3, w3, 1 uxth w3, w3 - b .L607 -.L606: + b .L610 +.L609: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -4895,20 +4942,20 @@ FtlGcBufAlloc: add x2, x2, :lo12:.LANCHOR2 mov w8, 1 mov w9, 56 - ldr w5, [x2,1416] - ldr x6, [x2,1384] + ldr w5, [x2,1424] + ldr x6, [x2,1392] mov w2, 0 -.L614: +.L617: cmp w2, w1 - bcs .L620 + bcs .L623 mov w3, 0 -.L618: +.L621: cmp w3, w5 - bcs .L616 + bcs .L619 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L615 + cbnz w10, .L618 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -4916,16 +4963,16 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L616 -.L615: + b .L619 +.L618: add w3, w3, 1 uxth w3, w3 - b .L618 -.L616: + b .L621 +.L619: add w2, w2, 1 uxth w2, w2 - b .L614 -.L620: + b .L617 +.L623: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -4935,22 +4982,22 @@ IsBlkInGcList: adrp x1, .LANCHOR2 uxth w0, w0 add x1, x1, :lo12:.LANCHOR2 - ldrh w2, [x1,1420] - ldr x3, [x1,1424] + ldrh w2, [x1,1428] + ldr x3, [x1,1432] mov x1, 0 -.L622: +.L625: cmp w2, w1, uxth - bls .L626 + bls .L629 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L622 + bne .L625 mov w0, 1 - b .L623 -.L626: + b .L626 +.L629: mov w0, 0 -.L623: +.L626: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -4971,41 +5018,41 @@ FtlGcUpdatePage: ldr x1, [x29,32] uxth w8, w0 mov x5, 0 - ldrh w7, [x4,1420] - ldr x6, [x4,1424] -.L628: + ldrh w7, [x4,1428] + ldr x6, [x4,1432] +.L631: uxth w4, w5 cmp w4, w7 - bcs .L632 + bcs .L635 add x5, x5, 1 add x9, x6, x5, lsl 1 ldrh w9, [x9,-2] cmp w9, w8 - bne .L628 -.L632: + bne .L631 +.L635: cmp w4, w7 - bne .L630 + bne .L633 ubfiz x4, x4, 1, 16 strh w0, [x6,x4] add x0, x3, :lo12:.LANCHOR2 - ldrh w4, [x0,1420] + ldrh w4, [x0,1428] add w4, w4, 1 - strh w4, [x0,1420] -.L630: + strh w4, [x0,1428] +.L633: add x3, x3, :lo12:.LANCHOR2 mov w0, 12 - ldrh w4, [x3,1432] - ldr x5, [x3,1440] + ldrh w4, [x3,1440] + ldr x5, [x3,1448] umull x4, w4, w0 add x5, x5, x4 str w1, [x5,4] - ldr x1, [x3,1440] + ldr x1, [x3,1448] add x0, x1, x4 str w2, [x0,8] str w19, [x1,x4] - ldrh w0, [x3,1432] + ldrh w0, [x3,1440] add w0, w0, 1 - strh w0, [x3,1432] + strh w0, [x3,1440] ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -5020,46 +5067,46 @@ FtlGcRefreshOpenBlock: adrp x19, .LANCHOR2 uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,1448] + ldrh w0, [x19,1456] cmp w0, w20 - beq .L636 - ldrh w0, [x19,1450] + beq .L639 + ldrh w0, [x19,1458] cmp w0, w20 - beq .L636 - ldrh w0, [x19,1452] + beq .L639 + ldrh w0, [x19,1460] cmp w0, w20 - beq .L636 - ldrh w0, [x19,1454] + beq .L639 + ldrh w0, [x19,1462] cmp w0, w20 - beq .L636 + beq .L639 adrp x0, .LC78 mov w1, w20 add x0, x0, :lo12:.LC78 bl printk - ldrh w1, [x19,1448] + ldrh w1, [x19,1456] mov w0, 65535 cmp w1, w0 - bne .L638 - strh w20, [x19,1448] - b .L636 -.L638: - ldrh w1, [x19,1450] + bne .L641 + strh w20, [x19,1456] + b .L639 +.L641: + ldrh w1, [x19,1458] + cmp w1, w0 + bne .L642 + strh w20, [x19,1458] + b .L639 +.L642: + ldrh w1, [x19,1460] + cmp w1, w0 + bne .L643 + strh w20, [x19,1460] + b .L639 +.L643: + ldrh w1, [x19,1462] cmp w1, w0 bne .L639 - strh w20, [x19,1450] - b .L636 + strh w20, [x19,1462] .L639: - ldrh w1, [x19,1452] - cmp w1, w0 - bne .L640 - strh w20, [x19,1452] - b .L636 -.L640: - ldrh w1, [x19,1454] - cmp w1, w0 - bne .L636 - strh w20, [x19,1454] -.L636: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -5077,49 +5124,49 @@ FtlGcRefreshBlock: add x19, x19, :lo12:.LANCHOR2 str x21, [sp,32] mov w21, 0 - ldrh w0, [x19,1448] + ldrh w0, [x19,1456] cmp w0, w20 - beq .L642 - ldrh w0, [x19,1450] + beq .L645 + ldrh w0, [x19,1458] cmp w0, w20 - beq .L642 - ldrh w0, [x19,1452] + beq .L645 + ldrh w0, [x19,1460] cmp w0, w20 - beq .L642 - ldrh w0, [x19,1454] + beq .L645 + ldrh w0, [x19,1462] cmp w0, w20 - beq .L642 + beq .L645 adrp x0, .LC78 mov w1, w20 add x0, x0, :lo12:.LC78 bl printk - ldrh w1, [x19,1448] + ldrh w1, [x19,1456] mov w0, 65535 cmp w1, w0 - bne .L643 - strh w20, [x19,1448] - b .L642 -.L643: - ldrh w1, [x19,1450] + bne .L646 + strh w20, [x19,1456] + b .L645 +.L646: + ldrh w1, [x19,1458] cmp w1, w0 - bne .L644 - strh w20, [x19,1450] - b .L642 -.L644: - ldrh w1, [x19,1452] + bne .L647 + strh w20, [x19,1458] + b .L645 +.L647: + ldrh w1, [x19,1460] cmp w1, w0 - bne .L645 - strh w20, [x19,1452] - b .L642 -.L645: - ldrh w1, [x19,1454] + bne .L648 + strh w20, [x19,1460] + b .L645 +.L648: + ldrh w1, [x19,1462] cmp w1, w0 - bne .L650 - strh w20, [x19,1454] - b .L642 -.L650: + bne .L653 + strh w20, [x19,1462] + b .L645 +.L653: mov w21, -1 -.L642: +.L645: mov w0, w21 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -5141,46 +5188,46 @@ FtlGcMarkBadPhyBlk: str x23, [sp,48] bl P2V_block_in_plane uxth w21, w0 - ldrh w1, [x22,1456] + ldrh w1, [x22,1464] adrp x0, .LC79 mov w2, w20 add x0, x0, :lo12:.LC79 bl printk mov w0, w21 bl FtlGcRefreshBlock - adrp x0, .LANCHOR0+2460 - ldr w0, [x0,#:lo12:.LANCHOR0+2460] - cbz w0, .L652 + adrp x0, .LANCHOR0+2372 + ldr w0, [x0,#:lo12:.LANCHOR0+2372] + cbz w0, .L655 ubfiz x0, x21, 1, 16 - ldr x2, [x22,432] + ldr x2, [x22,440] ldrh w1, [x2,x0] cmp w1, 39 - bls .L652 + bls .L655 sub w1, w1, #40 strh w1, [x2,x0] -.L652: +.L655: add x2, x19, :lo12:.LANCHOR2 mov x0, 0 - add x2, x2, 1464 + add x2, x2, 1472 ldrh w1, [x2,-8] -.L653: +.L656: cmp w1, w0, uxth - bls .L659 + bls .L662 add x0, x0, 1 add x3, x2, x0, lsl 1 ldrh w3, [x3,-2] cmp w3, w20 - bne .L653 - b .L654 -.L659: + bne .L656 + b .L657 +.L662: cmp w1, 15 - bhi .L654 + bhi .L657 add x19, x19, :lo12:.LANCHOR2 add w0, w1, 1 - add x19, x19, 1464 + add x19, x19, 1472 strh w0, [x19,-8] strh w20, [x19,w1,sxtw 1] -.L654: +.L657: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -5197,27 +5244,27 @@ FtlGcReFreshBadBlk: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,1456] - cbz w1, .L661 - ldrh w3, [x0,1448] + ldrh w1, [x0,1464] + cbz w1, .L664 + ldrh w3, [x0,1456] mov w2, 65535 cmp w3, w2 - bne .L661 - ldrh w2, [x0,1498] + bne .L664 + ldrh w2, [x0,1506] cmp w2, w1 - bcc .L662 - strh wzr, [x0,1498] -.L662: + bcc .L665 + strh wzr, [x0,1506] +.L665: add x19, x19, :lo12:.LANCHOR2 - add x0, x19, 1464 - ldrh w1, [x19,1498] + add x0, x19, 1472 + ldrh w1, [x19,1506] ldrh w0, [x0,w1,sxtw 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,1498] + ldrh w0, [x19,1506] add w0, w0, 1 - strh w0, [x19,1498] -.L661: + strh w0, [x19,1506] +.L664: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -5242,111 +5289,111 @@ BuildFlashLsbPageTable: add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w1 - cbnz w0, .L668 + cbnz w0, .L671 adrp x1, .LANCHOR0 mov x0, 0 add x1, x1, :lo12:.LANCHOR0 -.L669: - add x2, x1, 200 +.L672: + add x2, x1, 208 strh w0, [x2,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 - bne .L669 -.L675: + cmp x0, 512 + bne .L672 +.L678: adrp x19, .LANCHOR2 mov w1, 255 add x19, x19, :lo12:.LANCHOR2 mov w2, 2048 - add x19, x19, 1500 + add x19, x19, 1508 uxth w20, w20 mov x0, x19 bl ftl_memset adrp x1, .LANCHOR0 mov x0, 0 add x1, x1, :lo12:.LANCHOR0 - b .L670 -.L668: + b .L673 +.L671: cmp w0, 1 - bne .L671 + bne .L674 adrp x3, .LANCHOR0 mov x0, 0 mov w4, 3 mov w5, 2 add x3, x3, :lo12:.LANCHOR0 -.L674: +.L677: cmp x0, 3 - uxth w1, w0 - mov w2, w1 - bls .L672 - ubfiz w2, w1, 1, 15 - and w1, w1, 1 - cmp w1, wzr - csel w1, w4, w5, ne - sub w2, w2, w1 - uxth w2, w2 -.L672: - add x1, x3, 200 - strh w2, [x1,x0,lsl 1] + uxth w2, w0 + mov w1, w2 + bls .L675 + ubfiz w1, w2, 1, 15 + and w2, w2, 1 + cmp w2, wzr + csel w2, w4, w5, ne + sub w1, w1, w2 + uxth w1, w1 +.L675: + add x2, x3, 208 + strh w1, [x2,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 - bne .L674 - b .L675 -.L671: + cmp x0, 512 + bne .L677 + b .L678 +.L674: cmp w0, 2 - bne .L676 + bne .L679 adrp x3, .LANCHOR0 mov w1, 65535 mov x0, 0 add x3, x3, :lo12:.LANCHOR0 -.L678: - add x4, x3, 200 +.L681: + add x4, x3, 208 cmp x0, 1 uxth w2, w0 csel w2, w1, w2, hi add w1, w1, 2 strh w2, [x4,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 + cmp x0, 512 uxth w1, w1 - bne .L678 - b .L675 -.L676: + bne .L681 + b .L678 +.L679: cmp w0, 3 - bne .L679 + bne .L682 adrp x3, .LANCHOR0 mov x0, 0 mov w4, 5 mov w5, 4 add x3, x3, :lo12:.LANCHOR0 -.L682: +.L685: cmp x0, 5 - uxth w1, w0 - mov w2, w1 - bls .L680 - ubfiz w2, w1, 1, 15 - and w1, w1, 1 - cmp w1, wzr - csel w1, w4, w5, ne - sub w2, w2, w1 - uxth w2, w2 -.L680: - add x1, x3, 200 - strh w2, [x1,x0,lsl 1] + uxth w2, w0 + mov w1, w2 + bls .L683 + ubfiz w1, w2, 1, 15 + and w2, w2, 1 + cmp w2, wzr + csel w2, w4, w5, ne + sub w1, w1, w2 + uxth w1, w1 +.L683: + add x2, x3, 208 + strh w1, [x2,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 - bne .L682 - b .L675 -.L679: + cmp x0, 512 + bne .L685 + b .L678 +.L682: cmp w0, 4 - bne .L683 + bne .L686 adrp x1, .LANCHOR0 mov w5, 7 add x1, x1, :lo12:.LANCHOR0 mov w4, 6 - add x2, x1, 200 + add x2, x1, 208 strh w0, [x2,8] mov w0, 5 - strh wzr, [x1,200] + strh wzr, [x1,208] mov w1, 1 strh w0, [x2,10] mov w0, 7 @@ -5359,7 +5406,7 @@ BuildFlashLsbPageTable: strh w0, [x2,14] mov w0, 8 strh w1, [x2,6] -.L685: +.L688: and w3, w0, 1 ubfiz w1, w0, 1, 15 add w0, w0, 1 @@ -5368,44 +5415,44 @@ BuildFlashLsbPageTable: add x2, x2, 2 uxth w0, w0 sub w1, w1, w3 - cmp w0, 256 + cmp w0, 512 strh w1, [x2,14] - bne .L685 - b .L675 -.L683: + bne .L688 + b .L678 +.L686: cmp w0, 5 - bne .L686 + bne .L689 adrp x2, .LANCHOR0 mov x0, 0 add x2, x2, :lo12:.LANCHOR0 -.L687: - add x1, x2, 200 +.L690: + add x1, x2, 208 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L687 + bne .L690 mov x0, 0 -.L688: +.L691: add x2, x1, x0 add w3, w0, 16 add x0, x0, 2 - cmp x0, 480 + cmp x0, 992 strh w3, [x2,32] - bne .L688 - b .L675 -.L686: + bne .L691 + b .L678 +.L689: cmp w0, 6 - bne .L689 + bne .L692 adrp x1, .LANCHOR0 mov x2, 0 mov w4, 12 mov w5, 10 add x1, x1, :lo12:.LANCHOR0 -.L692: +.L695: cmp x2, 5 uxth w3, w2 mov w0, w3 - bls .L690 + bls .L693 add w0, w3, w3, lsl 1 and w3, w3, 1 cmp w3, wzr @@ -5413,63 +5460,114 @@ BuildFlashLsbPageTable: csel w3, w4, w5, ne sub w0, w0, w3 uxth w0, w0 -.L690: - add x3, x1, 200 +.L693: + add x3, x1, 208 strh w0, [x3,x2,lsl 1] add x2, x2, 1 - cmp x2, 256 - bne .L692 - b .L675 -.L689: + cmp x2, 512 + bne .L695 + b .L678 +.L692: cmp w0, 9 - bne .L693 + bne .L696 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x1, x0, 200 - strh wzr, [x0,200] + add x1, x0, 208 + strh wzr, [x0,208] mov w0, 1 strh w0, [x1,2] mov w0, 2 strh w0, [x1,4] mov x0, 0 -.L694: +.L697: add x2, x1, x0 add w3, w0, 3 add x0, x0, 2 - cmp x0, 506 + cmp x0, 1018 strh w3, [x2,6] - bne .L694 - b .L675 -.L693: + bne .L697 + b .L678 +.L696: cmp w0, 10 - bne .L675 + bne .L698 adrp x2, .LANCHOR0 mov x0, 0 add x2, x2, :lo12:.LANCHOR0 -.L695: - add x1, x2, 200 +.L699: + add x1, x2, 208 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 63 - bne .L695 + bne .L699 mov x0, 0 -.L696: +.L700: add x2, x1, x0 add w3, w0, 63 add x0, x0, 2 cmp x0, 898 strh w3, [x2,126] - bne .L696 - b .L675 -.L670: + bne .L700 + b .L678 +.L698: + cmp w0, 11 + bne .L701 + adrp x1, .LANCHOR0 + mov x0, 0 + add x1, x1, :lo12:.LANCHOR0 +.L702: + add x2, x1, 208 + strh w0, [x2,x0,lsl 1] + add x0, x0, 1 + cmp x0, 8 + bne .L702 + mov w5, 7 + mov w4, 6 +.L704: + and w3, w0, 1 + ubfiz w1, w0, 1, 15 + add w0, w0, 1 + cmp w3, wzr + csel w3, w5, w4, ne + add x2, x2, 2 + uxth w0, w0 + sub w1, w1, w3 + cmp w0, 512 + strh w1, [x2,14] + bne .L704 + b .L678 +.L701: + cmp w0, 12 + bne .L678 + adrp x1, .LANCHOR0 + mov w2, 4 + add x1, x1, :lo12:.LANCHOR0 + add x0, x1, 208 + strh wzr, [x1,208] + mov w1, 1 + strh w1, [x0,2] + mov w1, 2 + strh w1, [x0,4] + mov w1, 3 + strh w1, [x0,6] +.L705: + sub w1, w2, #1 + add x0, x0, 2 + add w1, w1, w2, lsr 1 + add w2, w2, 1 + strh w1, [x0,6] + uxth w2, w2 + cmp w2, 512 + bne .L705 + b .L678 +.L673: cmp w20, w0, uxth - bls .L717 - add x2, x1, 200 + bls .L730 + add x2, x1, 208 ldrh w2, [x2,x0,lsl 1] add x0, x0, 1 strh w2, [x19,w2,sxtw 1] - b .L670 -.L717: + b .L673 +.L730: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5487,13 +5585,13 @@ FlashDieInfoInit: stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - strb wzr, [x0,3548] + strb wzr, [x0,3556] adrp x0, .LANCHOR1+482 add x19, x21, :lo12:.LANCHOR0 mov x24, 0 add x25, x19, 2132 ldrh w0, [x0,#:lo12:.LANCHOR1+482] - strb wzr, [x19,2357] + strb wzr, [x19,2358] bl FlashBlockAlignInit mov w1, 0 mov w2, 8 @@ -5501,66 +5599,66 @@ FlashDieInfoInit: bl ftl_memset mov w1, 0 mov w2, 32 - add x0, x19, 1224 + add x0, x19, 1232 bl ftl_memset add x0, x19, 2164 mov w1, 0 mov w2, 192 bl ftl_memset - ldr x20, [x19,1256] + ldr x20, [x19,88] add x23, x20, 1 -.L720: +.L733: ldrb w2, [x20] mov x0, x23 add x1, x25, x24, lsl 3 bl FlashMemCmp8 - cbnz w0, .L719 - ldrb w1, [x19,2357] - add x2, x19, 1224 + cbnz w0, .L732 + ldrb w1, [x19,2358] + add x2, x19, 1232 str w0, [x2,w1,sxtw 2] add w0, w1, 1 add x1, x19, x1, sxtw - strb w0, [x19,2357] + strb w0, [x19,2358] strb w24, [x1,2360] -.L719: +.L732: add x24, x24, 1 cmp x24, 4 - bne .L720 + bne .L733 add x19, x21, :lo12:.LANCHOR0 add x0, x22, :lo12:.LANCHOR2 - ldrb w1, [x19,2357] - strb w1, [x0,3548] + ldrb w1, [x19,2358] + strb w1, [x0,3556] ldrb w0, [x20,8] cmp w0, 2 - beq .L721 -.L725: + beq .L734 +.L738: add x21, x21, :lo12:.LANCHOR0 ldrb w1, [x20,13] add x22, x22, :lo12:.LANCHOR2 ldp x23, x24, [sp,48] - ldrb w0, [x21,2357] + ldrb w0, [x21,2358] ldp x25, x26, [sp,64] mul w0, w0, w1 ldrh w1, [x20,14] ldp x19, x20, [sp,16] mul w0, w0, w1 - strh w0, [x22,3550] + strh w0, [x22,3558] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 80 ret -.L721: +.L734: ldr w25, [x19,76] mov x24, 0 add x26, x19, 2132 -.L724: +.L737: ldrb w2, [x20] mov x0, x23 add x1, x26, x24, lsl 3 bl FlashMemCmp8 - cbnz w0, .L722 + cbnz w0, .L735 ldrb w1, [x20,13] - add x4, x19, 1224 - ldrb w3, [x19,2357] + add x4, x19, 1232 + ldrb w3, [x19,2358] mul w0, w1, w25 ldrh w1, [x20,14] mov x2, x3 @@ -5568,19 +5666,19 @@ FlashDieInfoInit: mul w1, w0, w1 str w1, [x4,w3,sxtw 2] ldrb w0, [x20,23] - cbz w0, .L723 + cbz w0, .L736 lsl w1, w1, 1 str w1, [x4,w3,sxtw 2] -.L723: +.L736: add x0, x19, x3 add w2, w2, 1 - strb w2, [x19,2357] + strb w2, [x19,2358] strb w24, [x0,2360] -.L722: +.L735: add x24, x24, 1 cmp x24, 4 - bne .L724 - b .L725 + bne .L737 + b .L738 .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 .global ftl_read_flash_info @@ -5596,29 +5694,29 @@ ftl_read_flash_info: adrp x1, .LANCHOR0 mov w5, 1 add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,1256] + ldr x0, [x1,88] ldrb w2, [x0,9] ldr w0, [x1,76] mul w0, w0, w2 strh w0, [x19,4] - ldrb w0, [x1,2456] + ldrb w0, [x1,2464] strb w0, [x19,7] - ldr w0, [x1,2576] + ldr w0, [x1,2584] str w0, [x19] - ldr x0, [x1,1256] - ldrb w4, [x1,2357] + ldr x0, [x1,88] + ldrb w4, [x1,2358] ldrb w0, [x0,9] strb w0, [x19,6] mov w0, 32 strb w0, [x19,8] - ldr x0, [x1,1256] + ldr x0, [x1,88] ldrb w0, [x0,7] strb w0, [x19,9] mov x0, 0 strb wzr, [x19,10] -.L733: +.L746: cmp w4, w0, uxtb - bls .L735 + bls .L748 add x2, x1, 2360 ldrb w3, [x19,10] ldrb w2, [x0,x2] @@ -5626,8 +5724,8 @@ ftl_read_flash_info: lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L733 -.L735: + b .L746 +.L748: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5647,336 +5745,336 @@ FtlMemInit: stp x19, x20, [sp,16] stp x23, x24, [sp,48] add x3, x22, :lo12:.LANCHOR0 - str w1, [x0,3564] - strh wzr, [x0,3552] + str w1, [x0,3572] + strh wzr, [x0,3560] mov w1, -1 - str wzr, [x0,3556] - strh w1, [x0,1448] - str wzr, [x0,840] - str wzr, [x0,744] - str wzr, [x0,748] - str wzr, [x0,732] - str wzr, [x0,720] - str wzr, [x0,716] - str wzr, [x0,724] - str wzr, [x0,728] - str wzr, [x0,712] + str wzr, [x0,3564] + strh w1, [x0,1456] + str wzr, [x0,848] str wzr, [x0,752] str wzr, [x0,756] - str wzr, [x0,440] + str wzr, [x0,740] + str wzr, [x0,728] + str wzr, [x0,724] + str wzr, [x0,732] + str wzr, [x0,736] + str wzr, [x0,720] + str wzr, [x0,760] str wzr, [x0,764] - str wzr, [x0,768] - str wzr, [x0,3560] - str wzr, [x0,1372] + str wzr, [x0,448] + str wzr, [x0,772] + str wzr, [x0,776] str wzr, [x0,3568] - str wzr, [x0,1364] - str wzr, [x0,3572] - strh w1, [x0,1450] - strh w1, [x0,1452] - strh w1, [x0,1454] + str wzr, [x0,1380] + str wzr, [x0,3576] + str wzr, [x0,1372] + str wzr, [x0,3580] + strh w1, [x0,1458] + strh w1, [x0,1460] + strh w1, [x0,1462] mov w1, 32 - ldrh w2, [x3,2542] - strh w1, [x0,1360] + ldrh w2, [x3,2550] + strh w1, [x0,1368] mov w1, 128 - strh w1, [x0,1362] + strh w1, [x0,1370] mov w1, 1024 - strh wzr, [x0,1368] + strh wzr, [x0,1376] sdiv w2, w1, w2 - ldrh w1, [x3,2468] - strh wzr, [x0,1456] + ldrh w1, [x3,2472] + strh wzr, [x0,1464] lsl w1, w1, 2 - strh wzr, [x0,3576] - strh wzr, [x0,1498] + strh wzr, [x0,3584] + strh wzr, [x0,1506] cmp w2, w1 - str w2, [x0,3580] - bls .L737 - str w1, [x0,3580] -.L737: + str w2, [x0,3588] + bls .L750 + str w1, [x0,3588] +.L750: add x20, x22, :lo12:.LANCHOR0 add x19, x21, :lo12:.LANCHOR2 mov w24, 56 - ldrh w0, [x20,2540] - str wzr, [x20,2592] + ldrh w0, [x20,2548] + str wzr, [x20,2600] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,1424] - ldrh w1, [x20,2540] + str x0, [x19,1432] + ldrh w1, [x20,2548] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w23, [x20,2468] - str x0, [x19,1440] + ldrh w23, [x20,2472] + str x0, [x19,1448] mul w23, w23, w24 lsl w25, w23, 3 mov w0, w25 bl ftl_malloc - str x0, [x19,3584] - mov w0, w23 - bl ftl_malloc str x0, [x19,3592] - mov w0, w25 + mov w0, w23 bl ftl_malloc str x0, [x19,3600] - mov w0, w23 - bl ftl_malloc - str x0, [x19,424] - mov w0, w23 - bl ftl_malloc - str x0, [x19,1408] - ldr w0, [x19,3580] - mul w0, w0, w24 - bl ftl_malloc - str x0, [x20,2600] - ldrh w0, [x20,2468] - ldrh w23, [x20,2546] - lsl w0, w0, 1 - add w0, w0, 1 - str w0, [x19,1416] - mov w0, w23 + mov w0, w25 bl ftl_malloc str x0, [x19,3608] mov w0, w23 bl ftl_malloc + str x0, [x19,432] + mov w0, w23 + bl ftl_malloc + str x0, [x19,1416] + ldr w0, [x19,3588] + mul w0, w0, w24 + bl ftl_malloc + str x0, [x20,2608] + ldrh w0, [x20,2472] + ldrh w23, [x20,2554] + lsl w0, w0, 1 + add w0, w0, 1 + str w0, [x19,1424] + mov w0, w23 + bl ftl_malloc str x0, [x19,3616] mov w0, w23 bl ftl_malloc str x0, [x19,3624] - ldr w0, [x19,1416] - mul w0, w23, w0 - bl ftl_malloc - str x0, [x19,1392] - ldr w0, [x19,3580] - mul w0, w23, w0 + mov w0, w23 bl ftl_malloc str x0, [x19,3632] - mov w0, w23 + ldr w0, [x19,1424] + mul w0, w23, w0 + bl ftl_malloc + str x0, [x19,1400] + ldr w0, [x19,3588] + mul w0, w23, w0 bl ftl_malloc str x0, [x19,3640] mov w0, w23 bl ftl_malloc str x0, [x19,3648] - ldr w1, [x19,1416] - mov w0, 24 - mul w0, w1, w0 - bl ftl_malloc - ldrh w23, [x20,2468] - str x0, [x19,1384] - ldrh w0, [x20,2548] - mul w23, w0, w23 mov w0, w23 bl ftl_malloc str x0, [x19,3656] - lsl w0, w23, 3 + ldr w1, [x19,1424] + mov w0, 24 + mul w0, w1, w0 + bl ftl_malloc + ldrh w23, [x20,2472] + str x0, [x19,1392] + ldrh w0, [x20,2556] + mul w23, w0, w23 + mov w0, w23 bl ftl_malloc str x0, [x19,3664] - ldrh w1, [x20,2548] - ldr w0, [x19,1416] - mul w0, w1, w0 - bl ftl_malloc - str x0, [x19,1400] - ldrh w1, [x20,2548] - ldr w0, [x19,3580] - mul w0, w1, w0 + lsl w0, w23, 3 bl ftl_malloc str x0, [x19,3672] - ldrh w0, [x20,2478] + ldrh w1, [x20,2556] + ldr w0, [x19,1424] + mul w0, w1, w0 + bl ftl_malloc + str x0, [x19,1408] + ldrh w1, [x20,2556] + ldr w0, [x19,3588] + mul w0, w1, w0 + bl ftl_malloc + str x0, [x19,3680] + ldrh w0, [x20,2482] lsl w0, w0, 1 - strh w0, [x19,3680] + strh w0, [x19,3688] and w0, w0, 65534 bl ftl_malloc - str x0, [x19,3688] - ldrh w0, [x19,3680] + str x0, [x19,3696] + ldrh w0, [x19,3688] add x0, x0, 547 lsr x0, x0, 9 - strh w0, [x19,3680] + strh w0, [x19,3688] lsl w0, w0, 9 bl ftl_malloc - ldrh w23, [x20,2478] - str x0, [x19,3696] + ldrh w23, [x20,2482] + str x0, [x19,3704] add x0, x0, 32 lsl w23, w23, 1 - str x0, [x19,432] - mov w0, w23 - bl ftl_malloc - str x0, [x19,3704] - mov w0, w23 - bl ftl_malloc - ldr w23, [x20,2564] - str x0, [x19,512] - lsl w23, w23, 1 + str x0, [x19,440] mov w0, w23 bl ftl_malloc str x0, [x19,3712] mov w0, w23 bl ftl_malloc + ldr w23, [x20,2572] + str x0, [x19,520] + lsl w23, w23, 1 + mov w0, w23 + bl ftl_malloc str x0, [x19,3720] - ldrh w0, [x20,2478] + mov w0, w23 + bl ftl_malloc + str x0, [x19,3728] + ldrh w0, [x20,2482] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc str x0, [x22,#:lo12:.LANCHOR0] - ldrh w0, [x20,2556] + ldrh w0, [x20,2564] lsl w0, w0, 1 bl ftl_malloc - str x0, [x20,2584] - ldrh w0, [x20,2556] + str x0, [x20,2592] + ldrh w0, [x20,2564] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,3728] - ldrh w0, [x20,2556] - lsl w0, w0, 2 - bl ftl_malloc str x0, [x19,3736] - ldrh w0, [x20,2558] + ldrh w0, [x20,2564] lsl w0, w0, 2 bl ftl_malloc str x0, [x19,3744] - ldrh w2, [x20,2558] + ldrh w0, [x20,2566] + lsl w0, w0, 2 + bl ftl_malloc + str x0, [x19,3752] + ldrh w2, [x20,2566] mov w1, 0 lsl w2, w2, 2 bl ftl_memset - ldrh w23, [x20,2572] + ldrh w23, [x20,2580] lsl w23, w23, 2 mov w0, w23 bl ftl_malloc - str x0, [x19,3752] + str x0, [x19,3760] mov w0, w23 bl ftl_malloc - str x0, [x19,3760] - ldr w0, [x20,2564] + str x0, [x19,3768] + ldr w0, [x20,2572] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,3768] - ldrh w0, [x20,2574] + str x0, [x19,3776] + ldrh w0, [x20,2582] lsl w0, w0, 4 bl ftl_malloc - str x0, [x19,696] - ldrh w1, [x20,2574] - ldrh w0, [x20,2546] + str x0, [x19,704] + ldrh w1, [x20,2582] + ldrh w0, [x20,2554] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,3776] - ldrh w1, [x20,2478] + str x0, [x19,3784] + ldrh w1, [x20,2482] mov w0, 6 mul w0, w1, w0 bl ftl_malloc - str x0, [x19,496] - ldrh w0, [x20,2534] - ldrh w1, [x20,2490] + str x0, [x19,504] + ldrh w0, [x20,2542] + ldrh w1, [x20,2494] add w0, w0, 31 asr w0, w0, 5 - strh w0, [x19,3784] + strh w0, [x19,3792] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,2648] - add x1, x20, 2616 - ldrh w4, [x19,3784] - ldrh w5, [x20,2490] + str x0, [x20,2656] + add x1, x20, 2624 + ldrh w4, [x19,3792] + ldrh w5, [x20,2494] mov w0, 1 mov w2, w4 -.L738: +.L751: cmp w0, w5 add x1, x1, 8 - bcs .L838 - ldr x3, [x20,2648] + bcs .L851 + ldr x3, [x20,2656] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L738 -.L838: + b .L751 +.L851: add x1, x22, :lo12:.LANCHOR0 -.L740: +.L753: cmp w0, 8 - beq .L839 + beq .L852 add x2, x1, x0, uxtw 3 add w0, w0, 1 - str xzr, [x2,2648] - b .L740 -.L839: + str xzr, [x2,2656] + b .L753 +.L852: add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,3712] - cbnz x1, .L742 -.L744: + ldr x1, [x0,3720] + cbnz x1, .L755 +.L757: adrp x0, .LC80 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC80 add x1, x1, :lo12:.LANCHOR3 bl printk mov w0, -1 - b .L743 -.L742: - ldr x1, [x0,3720] - cbz x1, .L744 - ldr x1, [x0,3752] - cbz x1, .L744 - ldr x1, [x0,3768] - cbz x1, .L744 - ldr x1, [x0,696] - cbz x1, .L744 + b .L756 +.L755: + ldr x1, [x0,3728] + cbz x1, .L757 + ldr x1, [x0,3760] + cbz x1, .L757 ldr x1, [x0,3776] - cbz x1, .L744 - ldr x1, [x0,496] - cbz x1, .L744 + cbz x1, .L757 + ldr x1, [x0,704] + cbz x1, .L757 + ldr x1, [x0,3784] + cbz x1, .L757 + ldr x1, [x0,504] + cbz x1, .L757 add x22, x22, :lo12:.LANCHOR0 - ldr x1, [x22,2648] - cbz x1, .L744 - ldr x0, [x0,512] - cbz x0, .L744 + ldr x1, [x22,2656] + cbz x1, .L757 + ldr x0, [x0,520] + cbz x0, .L757 add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,1424] - cbz x1, .L744 - ldr x1, [x0,1440] - cbz x1, .L744 - ldr x1, [x0,3584] - cbz x1, .L744 - ldr x1, [x0,3600] - cbz x1, .L744 - ldr x1, [x0,424] - cbz x1, .L744 - ldr x1, [x0,1408] - cbz x1, .L744 + ldr x1, [x0,1432] + cbz x1, .L757 + ldr x1, [x0,1448] + cbz x1, .L757 ldr x1, [x0,3592] - cbz x1, .L744 + cbz x1, .L757 ldr x1, [x0,3608] - cbz x1, .L744 - ldr x1, [x0,3616] - cbz x1, .L744 - ldr x0, [x0,3624] - cbz x0, .L744 - add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,1392] - cbz x1, .L744 - ldr x1, [x0,3640] - cbz x1, .L744 - ldr x1, [x0,3648] - cbz x1, .L744 - ldr x1, [x0,1384] - cbz x1, .L744 - ldr x1, [x0,3656] - cbz x1, .L744 - ldr x1, [x0,3664] - cbz x1, .L744 - ldr x1, [x0,1400] - cbz x1, .L744 + cbz x1, .L757 ldr x1, [x0,432] - cbz x1, .L744 - ldr x0, [x0,3688] - cbz x0, .L744 - adrp x0, .LANCHOR0+2584 - ldr x0, [x0,#:lo12:.LANCHOR0+2584] - cbz x0, .L744 + cbz x1, .L757 + ldr x1, [x0,1416] + cbz x1, .L757 + ldr x1, [x0,3600] + cbz x1, .L757 + ldr x1, [x0,3616] + cbz x1, .L757 + ldr x1, [x0,3624] + cbz x1, .L757 + ldr x0, [x0,3632] + cbz x0, .L757 + add x0, x21, :lo12:.LANCHOR2 + ldr x1, [x0,1400] + cbz x1, .L757 + ldr x1, [x0,3648] + cbz x1, .L757 + ldr x1, [x0,3656] + cbz x1, .L757 + ldr x1, [x0,1392] + cbz x1, .L757 + ldr x1, [x0,3664] + cbz x1, .L757 + ldr x1, [x0,3672] + cbz x1, .L757 + ldr x1, [x0,1408] + cbz x1, .L757 + ldr x1, [x0,440] + cbz x1, .L757 + ldr x0, [x0,3696] + cbz x0, .L757 + adrp x0, .LANCHOR0+2592 + ldr x0, [x0,#:lo12:.LANCHOR0+2592] + cbz x0, .L757 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,3728] - cbz x1, .L744 ldr x1, [x0,3736] - cbz x1, .L744 - ldr x0, [x0,3744] - cbz x0, .L744 + cbz x1, .L757 + ldr x1, [x0,3744] + cbz x1, .L757 + ldr x0, [x0,3752] + cbz x0, .L757 mov w0, 0 -.L743: +.L756: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5992,9 +6090,9 @@ FtlBbt2Bitmap: add x29, sp, 0 stp x19, x20, [sp,16] mov x20, x0 - adrp x0, .LANCHOR2+3784 + adrp x0, .LANCHOR2+3792 mov x19, x1 - ldrh w2, [x0,#:lo12:.LANCHOR2+3784] + ldrh w2, [x0,#:lo12:.LANCHOR2+3792] mov x0, x1 mov w1, 0 lsl w2, w2, 2 @@ -6004,10 +6102,10 @@ FtlBbt2Bitmap: mov w0, 65535 mov w6, 1 add x5, x5, :lo12:.LANCHOR0 -.L842: +.L855: ldrh w2, [x20,x3] cmp w2, w0 - beq .L840 + beq .L853 ubfx x4, x2, 5, 11 lsl w2, w6, w2 lsl x4, x4, 2 @@ -6016,11 +6114,11 @@ FtlBbt2Bitmap: ldr w1, [x19,x4] orr w2, w1, w2 str w2, [x19,x4] - ldrh w2, [x5,2622] + ldrh w2, [x5,2630] add w2, w2, 1 - strh w2, [x5,2622] - bne .L842 -.L840: + strh w2, [x5,2630] + bne .L855 +.L853: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6035,7 +6133,7 @@ FtlBbtMemInit: add x0, x0, :lo12:.LANCHOR0 mov w2, 16 add x29, sp, 0 - add x0, x0, 2628 + add x0, x0, 2636 strh w1, [x0,-12] mov w1, 255 strh wzr, [x0,-6] @@ -6052,11 +6150,11 @@ FtlFreeSysBlkQueueInit: stp x29, x30, [sp, -16]! add x1, x1, :lo12:.LANCHOR0 add x29, sp, 0 - strh w0, [x1,2712] - add x0, x1, 2720 - strh wzr, [x1,2714] - strh wzr, [x1,2716] - strh wzr, [x1,2718] + strh w0, [x1,2720] + add x0, x1, 2728 + strh wzr, [x1,2722] + strh wzr, [x1,2724] + strh wzr, [x1,2726] mov w1, 0 bl ftl_memset mov w0, 0 @@ -6083,76 +6181,76 @@ ftl_free_no_use_map_blk: mov x0, x21 bl ftl_memset mov w0, 0 -.L848: +.L861: ldrh w1, [x19,6] cmp w1, w0 - bls .L870 + bls .L883 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L849: +.L862: ldrh w3, [x19,10] cmp w3, w1 - bls .L871 + bls .L884 ubfiz x3, x1, 1, 16 ldrh w4, [x22,x3] cmp w2, w4 - bne .L850 - cbz w4, .L850 + bne .L863 + cbz w4, .L863 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L850: +.L863: add w1, w1, 1 uxth w1, w1 - b .L849 -.L871: + b .L862 +.L884: add w0, w0, 1 uxth w0, w0 - b .L848 -.L870: - adrp x0, .LANCHOR0+2538 + b .L861 +.L883: + adrp x0, .LANCHOR0+2546 mov w23, 0 mov w20, w23 - ldrh w1, [x0,#:lo12:.LANCHOR0+2538] + ldrh w1, [x0,#:lo12:.LANCHOR0+2546] ldrh w0, [x19] strh w1, [x21,x0,lsl 1] ldrh w24, [x21] -.L853: +.L866: ldrh w0, [x19,10] cmp w0, w20 - bls .L872 + bls .L885 ubfiz x2, x20, 1, 16 ldrh w1, [x21,x2] cmp w24, w1 - bls .L854 + bls .L867 ldrh w0, [x22,x2] add x25, x22, x2 - cbnz w0, .L855 - b .L856 -.L854: - cbnz w1, .L856 + cbnz w0, .L868 + b .L869 +.L867: + cbnz w1, .L869 ldrh w0, [x22,x2] add x25, x22, x2 - cbz w0, .L856 -.L858: + cbz w0, .L869 +.L871: mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x25] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L856: +.L869: add w20, w20, 1 uxth w20, w20 - b .L853 -.L855: + b .L866 +.L868: mov w23, w20 mov w24, w1 - cbz w1, .L858 - b .L856 -.L872: + cbz w1, .L871 + b .L869 +.L885: mov w0, w23 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -6174,34 +6272,34 @@ FtlL2PDataInit: stp x21, x22, [sp,32] add x21, x20, :lo12:.LANCHOR0 add x22, x19, :lo12:.LANCHOR2 - ldr w2, [x21,2564] - ldr x0, [x22,3720] + ldr w2, [x21,2572] + ldr x0, [x22,3728] lsl w2, w2, 1 bl ftl_memset - ldrh w3, [x21,2546] + ldrh w3, [x21,2554] mov w1, 255 - ldrh w2, [x21,2574] - ldr x0, [x22,3776] + ldrh w2, [x21,2582] + ldr x0, [x22,3784] mul w2, w3, w2 bl ftl_memset mov w1, 0 mov w5, -1 -.L874: +.L887: add x3, x20, :lo12:.LANCHOR0 - ldrh w0, [x3,2574] + ldrh w0, [x3,2582] cmp w0, w1 - bls .L876 + bls .L889 add x4, x19, :lo12:.LANCHOR2 ubfiz x0, x1, 4, 16 - ldr x2, [x4,696] + ldr x2, [x4,704] add x2, x2, x0 str wzr, [x2,4] - ldr x2, [x4,696] + ldr x2, [x4,704] strh w5, [x2,x0] - ldr x2, [x4,696] + ldr x2, [x4,704] add x2, x2, x0 - ldrh w0, [x3,2546] - ldr x3, [x4,3776] + ldrh w0, [x3,2554] + ldr x3, [x4,3784] mul w0, w0, w1 add w1, w1, 1 sxtw x0, w0 @@ -6209,28 +6307,28 @@ FtlL2PDataInit: and x0, x0, -4 add x0, x3, x0 str x0, [x2,8] - b .L874 -.L876: + b .L887 +.L889: add x0, x19, :lo12:.LANCHOR2 mov w2, -1 - add x1, x0, 3792 - strh w2, [x0,3794] - strh w2, [x0,3792] - ldr w2, [x3,2564] + add x1, x0, 3800 strh w2, [x0,3802] - mov w2, -3902 - strh w2, [x0,3796] - ldrh w2, [x0,3856] strh w2, [x0,3800] - ldrh w2, [x3,2572] - strh w2, [x0,3798] - ldr x2, [x0,3712] - str x2, [x0,3808] - ldr x2, [x0,3768] - str x2, [x0,3816] + ldr w2, [x3,2572] + strh w2, [x0,3810] + mov w2, -3902 + strh w2, [x0,3804] + ldrh w2, [x0,3864] + strh w2, [x0,3808] + ldrh w2, [x3,2580] + strh w2, [x0,3806] ldr x2, [x0,3720] + str x2, [x0,3816] + ldr x2, [x0,3776] str x2, [x0,3824] - ldr x0, [x0,3752] + ldr x2, [x0,3728] + str x2, [x0,3832] + ldr x0, [x0,3760] str x0, [x1,40] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6250,35 +6348,35 @@ FtlVariablesInit: adrp x20, .LANCHOR0 add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR0 - strh w0, [x19,3872] + strh w0, [x19,3880] mov w0, -1 - ldrh w2, [x20,2556] - str w0, [x19,3884] - ldr x0, [x20,2584] + ldrh w2, [x20,2564] + str w0, [x19,3892] + ldr x0, [x20,2592] lsl w2, w2, 1 - str xzr, [x19,3864] - str wzr, [x19,3876] - str wzr, [x19,3880] - str wzr, [x20,2460] - strh wzr, [x20,2582] + str xzr, [x19,3872] + str wzr, [x19,3884] + str wzr, [x19,3888] + str wzr, [x20,2372] + strh wzr, [x20,2590] bl ftl_memset - ldrh w2, [x20,2478] + ldrh w2, [x20,2482] mov w1, 0 - ldr x0, [x19,432] + ldr x0, [x19,440] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,2478] + ldrh w2, [x20,2482] mov w1, 0 - ldr x0, [x19,3688] + ldr x0, [x19,3696] lsl w2, w2, 1 bl ftl_memset - add x0, x19, 448 + add x0, x19, 456 mov w1, 0 mov w2, 48 bl ftl_memset mov w1, 0 mov w2, 512 - add x0, x19, 848 + add x0, x19, 856 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit @@ -6305,33 +6403,33 @@ SupperBlkListInit: adrp x21, .LANCHOR2 mov w25, 0 add x19, x21, :lo12:.LANCHOR2 - ldrh w2, [x0,2478] + ldrh w2, [x0,2482] mov w22, w25 mov w26, 32768 - ldr x0, [x19,496] + ldr x0, [x19,504] mul w2, w2, w24 bl ftl_memset - str xzr, [x19,536] - str xzr, [x19,504] - str xzr, [x19,520] - strh wzr, [x19,528] - strh wzr, [x19,544] - strh wzr, [x19,3552] + str xzr, [x19,544] + str xzr, [x19,512] + str xzr, [x19,528] + strh wzr, [x19,536] + strh wzr, [x19,552] + strh wzr, [x19,3560] mov w19, w25 -.L879: +.L892: add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2476] + ldrh w1, [x0,2480] cmp w19, w1 - bge .L886 + bge .L899 mov w20, 0 - ldrh w3, [x0,2468] - ldrh w2, [x0,2536] + ldrh w3, [x0,2472] + ldrh w2, [x0,2544] mov w28, w20 mov x27, x0 -.L887: +.L900: cmp w28, w3 - bge .L888 - add x0, x27, 2496 + bge .L901 + add x0, x27, 2504 mov w1, w19 str x2, [x29,96] str x3, [x29,104] @@ -6340,61 +6438,61 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L880 + cbnz w0, .L893 add w20, w2, w20 sxth w20, w20 -.L880: +.L893: add w28, w28, 1 sxth w28, w28 - b .L887 -.L888: - cbz w20, .L882 + b .L900 +.L901: + cbz w20, .L895 sdiv w20, w26, w20 sxth w20, w20 - b .L883 -.L882: + b .L896 +.L895: add x0, x21, :lo12:.LANCHOR2 mov w1, -1 - ldr x0, [x0,512] + ldr x0, [x0,520] strh w1, [x0,w19,sxtw 1] -.L883: +.L896: add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,496] + ldr x1, [x0,504] smaddl x1, w19, w24, x1 strh w20, [x1,4] - ldrh w1, [x0,552] + ldrh w1, [x0,560] cmp w19, w1 - beq .L884 - ldrh w1, [x0,600] + beq .L897 + ldrh w1, [x0,608] cmp w19, w1 - beq .L884 - ldrh w1, [x0,648] + beq .L897 + ldrh w1, [x0,656] cmp w19, w1 - beq .L884 - ldr x0, [x0,512] + beq .L897 + ldr x0, [x0,520] ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L885 + cbnz w0, .L898 add w4, w25, 1 mov w0, w19 uxth w25, w4 bl INSERT_FREE_LIST - b .L884 -.L885: + b .L897 +.L898: add w22, w22, 1 mov w0, w19 uxth w22, w22 bl INSERT_DATA_LIST -.L884: +.L897: add w19, w19, 1 sxth w19, w19 - b .L879 -.L886: + b .L892 +.L899: add x21, x21, :lo12:.LANCHOR2 mov w0, 0 ldp x19, x20, [sp,16] ldp x23, x24, [sp,48] - strh w25, [x21,544] - strh w22, [x21,528] + strh w25, [x21,552] + strh w22, [x21,536] ldp x25, x26, [sp,64] ldp x21, x22, [sp,32] ldp x27, x28, [sp,80] @@ -6413,15 +6511,15 @@ FtlGcPageVarInit: adrp x19, .LANCHOR2 add x20, x20, :lo12:.LANCHOR0 add x19, x19, :lo12:.LANCHOR2 - ldrh w2, [x20,2540] - ldr x0, [x19,1424] + ldrh w2, [x20,2548] + ldr x0, [x19,1432] lsl w2, w2, 1 - strh wzr, [x19,1420] - strh wzr, [x19,1432] + strh wzr, [x19,1428] + strh wzr, [x19,1440] bl ftl_memset - ldrh w3, [x20,2540] + ldrh w3, [x20,2548] mov w2, 12 - ldr x0, [x19,1440] + ldr x0, [x19,1448] mov w1, 255 mul w2, w3, w2 bl ftl_memset @@ -6450,7 +6548,7 @@ FlashReadIdbData: mov w2, 2048 add x1, x1, :lo12:.LANCHOR2 add x29, sp, 0 - add x1, x1, 3888 + add x1, x1, 3896 bl ftl_memcpy mov w0, 0 ldp x29, x30, [sp], 16 @@ -6472,46 +6570,46 @@ FlashLoadPhyInfoInRam: add x21, x21, 512 mov w20, 0 add x22, x22, 2132 -.L896: +.L909: ldrb w2, [x21] add x0, x21, 1 mov x1, x22 bl FlashMemCmp8 mov w23, w0 - cbnz w0, .L893 + cbnz w0, .L906 add x0, x19, :lo12:.LANCHOR1 ubfiz x20, x20, 5, 32 add x1, x0, 512 adds x20, x1, x20 - beq .L899 + beq .L912 ldrb w3, [x20,22] mov x2, 0 mov x1, x0 - b .L898 -.L893: + b .L911 +.L906: add w20, w20, 1 add x21, x21, 32 - cmp w20, 83 - bne .L896 - b .L899 -.L898: + cmp w20, 86 + bne .L909 + b .L912 +.L911: add x4, x1, x2, lsl 5 mov w0, w2 - ldrb w4, [x4,3168] + ldrb w4, [x4,3264] cmp w4, w3 - beq .L897 + beq .L910 add x2, x2, 1 cmp x2, 4 - bne .L898 + bne .L911 mov w0, w2 -.L897: +.L910: add x19, x19, :lo12:.LANCHOR1 ubfiz x1, x0, 5, 32 adrp x0, .LANCHOR0 - add x2, x19, 3168 + add x2, x19, 3264 add x0, x0, :lo12:.LANCHOR0 add x1, x2, x1 - add x0, x0, 88 + add x0, x0, 96 mov w2, 32 add x19, x19, 472 bl ftl_memcpy @@ -6521,10 +6619,10 @@ FlashLoadPhyInfoInRam: bl ftl_memcpy ldrh w0, [x19,10] bl FlashBlockAlignInit - b .L894 -.L899: + b .L907 +.L912: mov w23, -1 -.L894: +.L907: mov w0, w23 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -6548,14 +6646,14 @@ NandcCopy1KB: add x4, x0, 4096 add x21, x0, 512 add x2, x4, x2 - bne .L904 - cbz x3, .L905 + bne .L917 + cbz x3, .L918 mov x0, x2 mov x1, x3 mov w2, 1024 bl ftl_memcpy -.L905: - cbz x20, .L903 +.L918: + cbz x20, .L916 mov w0, 48 lsr w19, w19, 1 ldrb w1, [x20,1] @@ -6569,15 +6667,15 @@ NandcCopy1KB: ldrb w1, [x20,3] orr w0, w0, w1, lsl 24 str w0, [x21,w19,sxtw 2] - b .L903 -.L904: - cbz x3, .L908 + b .L916 +.L917: + cbz x3, .L921 mov x1, x2 mov x0, x3 mov w2, 1024 bl ftl_memcpy -.L908: - cbz x20, .L903 +.L921: + cbz x20, .L916 mov w0, 48 lsr w19, w19, 1 mul w19, w19, w0 @@ -6590,7 +6688,7 @@ NandcCopy1KB: lsr w0, w0, 24 strb w1, [x20,2] strb w0, [x20,3] -.L903: +.L916: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6601,14 +6699,14 @@ NandcCopy1KB: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L920: +.L933: cmp w2, w3 - bls .L922 + bls .L935 ldr w4, [x1,x3,lsl 2] str w4, [x0,x3,lsl 2] add x3, x3, 1 - b .L920 -.L922: + b .L933 +.L935: ret .size ftl_memcpy32, .-ftl_memcpy32 .align 2 @@ -6638,20 +6736,20 @@ timer_get_time: .global FlashSramLoadStore .type FlashSramLoadStore, %function FlashSramLoadStore: - adrp x4, .LANCHOR4+1584 + adrp x4, .LANCHOR4+1592 mov x6, x0 stp x29, x30, [sp, -16]! uxtw x1, w1 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1584] + ldr x4, [x4,#:lo12:.LANCHOR4+1592] add x4, x4, 4096 - cbnz w2, .L926 + cbnz w2, .L939 add x1, x4, x1 - b .L928 -.L926: + b .L941 +.L939: add x0, x4, x1 mov x1, x6 -.L928: +.L941: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -6687,8 +6785,8 @@ rk_nand_resume: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR0+2576 - ldr w0, [x0,#:lo12:.LANCHOR0+2576] + adrp x0, .LANCHOR0+2584 + ldr w0, [x0,#:lo12:.LANCHOR0+2584] ret .size rk_ftl_get_capacity, .-rk_ftl_get_capacity .align 2 @@ -6741,42 +6839,42 @@ rknand_print_hex: add x23, x23, :lo12:.LC81 add x21, x21, :lo12:.LC82 add x24, x24, :lo12:.LC75 -.L937: +.L950: cmp x19, x26 - beq .L945 - cbnz w20, .L938 + beq .L958 + cbnz w20, .L951 mov x0, x23 mov x1, x27 mov x2, x22 mov w3, w19 bl printk -.L938: +.L951: cmp w25, 4 mov x0, x21 - bne .L939 + bne .L952 ldr w1, [x22,x19,lsl 2] - b .L944 -.L939: + b .L957 +.L952: cmp w25, 2 - bne .L941 + bne .L954 ldrsh w1, [x22,x19,lsl 1] - b .L944 -.L941: + b .L957 +.L954: ldrb w1, [x22,x19] -.L944: +.L957: bl printk add w20, w20, 1 cmp w20, 15 - bls .L942 + bls .L955 adrp x1, .LC83 mov x0, x24 add x1, x1, :lo12:.LC83 mov w20, 0 bl printk -.L942: +.L955: add x19, x19, 1 - b .L937 -.L945: + b .L950 +.L958: adrp x0, .LC75 adrp x1, .LC83 add x1, x1, :lo12:.LC83 @@ -6815,16 +6913,16 @@ HynixGetReadRetryDefault: mov w0, -81 strb w2, [x1,6] strb w0, [x1,7] - bne .L947 + bne .L960 mov w0, -89 strb w0, [x1,4] - adrp x0, .LANCHOR1+3313 + adrp x0, .LANCHOR1+3409 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+3313] - b .L1010 -.L947: + strb w1, [x0,#:lo12:.LANCHOR1+3409] + b .L1023 +.L960: cmp w27, 3 - bne .L949 + bne .L962 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -6840,10 +6938,10 @@ HynixGetReadRetryDefault: mov w0, -74 strb w0, [x1,10] mov w0, -73 - b .L1050 -.L949: + b .L1063 +.L962: cmp w27, 4 - bne .L950 + bne .L963 mov w5, -52 strb w5, [x1,4] mov w5, -65 @@ -6856,14 +6954,14 @@ HynixGetReadRetryDefault: mov w5, -51 strb w2, [x1,10] strb w5, [x1,8] -.L1050: +.L1063: mov w26, 8 strb w0, [x1,11] mov w28, w26 - b .L948 -.L950: + b .L961 +.L963: cmp w27, 5 - bne .L951 + bne .L964 mov w0, 56 strb w0, [x1,4] mov w0, 57 @@ -6873,10 +6971,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 59 strb w0, [x1,7] - b .L1051 -.L951: + b .L1064 +.L964: cmp w27, 6 - bne .L952 + bne .L965 mov w0, 14 strb w0, [x1,4] mov w0, 15 @@ -6886,10 +6984,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 17 strb w0, [x1,7] - b .L1051 -.L952: + b .L1064 +.L965: cmp w27, 7 - bne .L953 + bne .L966 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -6912,10 +7010,10 @@ HynixGetReadRetryDefault: mov w28, 10 mov w0, -43 strb w0, [x1,13] - b .L948 -.L953: + b .L961 +.L966: cmp w27, 8 - bne .L1010 + bne .L1023 mov w0, 6 strb w0, [x1,4] mov w0, 7 @@ -6927,26 +7025,26 @@ HynixGetReadRetryDefault: mov w0, 10 mov w28, 5 strb w0, [x1,8] - b .L948 -.L1010: + b .L961 +.L1023: mov w26, 7 -.L1051: +.L1064: mov w28, 4 -.L948: +.L961: sub w0, w27, #1 cmp w0, 1 - bhi .L1047 + bhi .L1060 adrp x22, .LANCHOR1 add x25, x19, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR1 mov w21, 0 add x4, x25, 1272 add x27, x25, 8 - add x22, x22, 3296 -.L954: - ldrb w0, [x25,2357] + add x22, x22, 3392 +.L967: + ldrb w0, [x25,2358] cmp w0, w21 - bls .L961 + bls .L974 add x0, x25, x21, sxtw ldrb w0, [x0,2360] mov x23, 0 @@ -6958,7 +7056,7 @@ HynixGetReadRetryDefault: ldrb w0, [x1,8] mov w1, 55 add x24, x24, x0, lsl 8 -.L956: +.L969: add x0, x4, x23 str w1, [x24,2056] str x1, [x29,128] @@ -6973,12 +7071,12 @@ HynixGetReadRetryDefault: ldr x4, [x29,136] cmp w28, w23, uxtb ldr x1, [x29,128] - bhi .L956 + bhi .L969 mov x0, 0 -.L957: +.L970: add w2, w0, 8 mov x1, 0 -.L958: +.L971: add x3, x1, x0 add x1, x1, 4 add x3, x22, x3 @@ -6988,10 +7086,10 @@ HynixGetReadRetryDefault: add w3, w6, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L958 + bne .L971 add x0, x0, 1 cmp x0, 4 - bne .L957 + bne .L970 add w21, w21, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -7001,11 +7099,11 @@ HynixGetReadRetryDefault: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L954 -.L1047: + b .L967 +.L1060: sub w0, w27, #3 cmp w0, 5 - bhi .L961 + bhi .L974 mul w25, w28, w26 sub w24, w28, #1 add x20, x19, :lo12:.LANCHOR0 @@ -7021,11 +7119,11 @@ HynixGetReadRetryDefault: add x25, x20, 8 add x0, x24, 1 str x0, [x29,112] -.L962: - ldrb w0, [x20,2357] +.L975: + ldrb w0, [x20,2358] cmp w0, w21 - bhi .L1008 -.L961: + bhi .L1021 +.L974: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7036,7 +7134,7 @@ HynixGetReadRetryDefault: ldp x25, x26, [sp,64] ldp x29, x30, [sp], 144 ret -.L1008: +.L1021: add x0, x20, x21, sxtw ldrb w6, [x0,2360] str x6, [x29,104] @@ -7052,48 +7150,48 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady cmp w27, 7 ldr x6, [x29,104] - bne .L963 + bne .L976 mov x0, 160 madd x6, x6, x0, x20 add x6, x6, 1300 - b .L964 -.L963: + b .L977 +.L976: cmp w27, 8 - beq .L965 + beq .L978 add x6, x20, x6, lsl 6 add x6, x6, 1292 -.L964: +.L977: mov w0, 54 cmp w27, 4 str w0, [x24,2056] - bne .L966 + bne .L979 mov w0, 255 str w0, [x24,2052] mov w0, 64 str w0, [x24,2048] mov w0, 204 - b .L1052 -.L966: + b .L1065 +.L979: ldr w0, [x29,136] cmp w0, 1 - bhi .L968 + bhi .L981 ldrb w0, [x20,1276] str w0, [x24,2052] mov w0, 82 - b .L1053 -.L968: + b .L1066 +.L981: cmp w27, 7 - bne .L967 + bne .L980 mov w0, 174 str w0, [x24,2052] str wzr, [x24,2048] mov w0, 176 -.L1052: +.L1065: str w0, [x24,2052] mov w0, 77 -.L1053: +.L1066: str w0, [x24,2048] -.L967: +.L980: mov w0, 22 str w0, [x24,2056] mov w0, 23 @@ -7106,17 +7204,17 @@ HynixGetReadRetryDefault: cmp w27, 6 str wzr, [x24,2052] str wzr, [x24,2052] - bne .L969 + bne .L982 mov w0, 31 str w0, [x24,2052] - b .L970 -.L969: + b .L983 +.L982: str wzr, [x24,2052] -.L970: +.L983: mov w0, 2 str w0, [x24,2052] str wzr, [x24,2052] -.L1009: +.L1022: mov w0, 48 str w0, [x24,2056] mov w0, w22 @@ -7128,119 +7226,119 @@ HynixGetReadRetryDefault: cset w9, ls cmp w27, 8 cset w8, eq - cbnz w9, .L1012 - cbnz w8, .L1012 + cbnz w9, .L1025 + cbnz w8, .L1025 cmp w27, 7 mov w7, 32 mov w0, 2 csel w7, w0, w7, ne - b .L971 -.L1012: + b .L984 +.L1025: mov w7, 16 -.L971: +.L984: adrp x1, .LANCHOR4 mov x10, 0 add x0, x1, :lo12:.LANCHOR4 - ldr x0, [x0,1592] -.L972: + ldr x0, [x0,1600] +.L985: ldr w11, [x24,2048] strb w11, [x0,x10] add x10, x10, 1 cmp w7, w10, uxtb - bhi .L972 - cbz w8, .L973 + bhi .L985 + cbz w8, .L986 mov w7, 0 -.L975: +.L988: ldrb w10, [x0] cmp w10, 50 - beq .L974 + beq .L987 ldrb w10, [x0,1] cmp w10, 5 - beq .L974 + beq .L987 add w7, w7, 1 add x0, x0, 4 uxtb w7, w7 cmp w7, 8 - bne .L975 - b .L976 -.L974: + bne .L988 + b .L989 +.L987: cmp w7, 6 - bls .L977 -.L976: + bls .L990 +.L989: adrp x0, .LC84 mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L978: - b .L978 -.L973: +.L991: + b .L991 +.L986: cmp w27, 7 - bne .L979 + bne .L992 mov w7, w8 -.L981: +.L994: ldrb w10, [x0] cmp w10, 12 - beq .L980 + beq .L993 ldrb w10, [x0,1] cmp w10, 10 - beq .L980 + beq .L993 add w7, w7, 1 add x0, x0, 4 uxtb w7, w7 cmp w7, 8 - bne .L981 - b .L982 -.L980: + bne .L994 + b .L995 +.L993: cmp w7, 7 - bne .L977 -.L982: + bne .L990 +.L995: adrp x0, .LC84 mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L983: - b .L983 -.L979: +.L996: + b .L996 +.L992: cmp w27, 6 - bne .L977 + bne .L990 mov x7, 0 -.L984: +.L997: ldrb w10, [x0,x7] cmp w10, 12 - beq .L977 + beq .L990 add x10, x0, x7 ldrb w10, [x10,8] cmp w10, 4 - beq .L977 + beq .L990 add x7, x7, 1 cmp x7, 8 - bne .L984 + bne .L997 adrp x0, .LC84 mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L986: - b .L986 -.L977: +.L999: + b .L999 +.L990: add x0, x1, :lo12:.LANCHOR4 - ldr x11, [x0,1592] + ldr x11, [x0,1600] mov x0, 0 -.L987: +.L1000: ldr w2, [x29,128] cmp w2, w0 - ble .L1055 + ble .L1068 ldr w7, [x24,2048] strb w7, [x11,x0] add x0, x0, 1 - b .L987 -.L1055: + b .L1000 +.L1068: add x0, x1, :lo12:.LANCHOR4 mov w12, w23 mov w10, 8 - ldr x13, [x0,1592] -.L990: + ldr x13, [x0,1600] +.L1003: mov w0, 0 -.L989: +.L1002: add w7, w0, w12 add w0, w0, 1 sbfiz x7, x7, 1, 32 @@ -7248,54 +7346,54 @@ HynixGetReadRetryDefault: ldrh w14, [x13,x7] mvn w14, w14 strh w14, [x13,x7] - bne .L989 + bne .L1002 ldr w0, [x29,124] subs w10, w10, #1 add w12, w12, w0 - bne .L990 + bne .L1003 mov x10, 0 mov w18, 1 -.L991: +.L1004: mov w7, 0 mov w12, w7 -.L995: +.L1008: lsl w14, w18, w12 mov w16, w10 mov w0, 16 mov w15, 0 -.L993: +.L1006: ldrh w17, [x13,w16,sxtw 1] add w16, w16, w23 and w17, w17, w14 cmp w17, w14 csinc w15, w15, w15, ne subs w0, w0, #1 - bne .L993 + bne .L1006 cmp w15, 8 - bls .L994 + bls .L1007 orr w7, w7, w14 uxth w7, w7 -.L994: +.L1007: add w12, w12, 1 cmp w12, 16 - bne .L995 + bne .L1008 strh w7, [x13,x10,lsl 1] add x10, x10, 1 cmp w23, w10 - bgt .L991 + bgt .L1004 add x1, x1, :lo12:.LANCHOR4 mov x7, 0 mov w10, w7 - ldr x1, [x1,1592] -.L998: + ldr x1, [x1,1600] +.L1011: ldr w12, [x1,x7] add x7, x7, 4 cmp w12, wzr csinc w10, w10, w10, ne cmp x7, 32 - bne .L998 + bne .L1011 cmp w10, 7 - ble .L999 + ble .L1012 adrp x0, .LC85 mov w2, 1 add x0, x0, :lo12:.LC85 @@ -7305,36 +7403,36 @@ HynixGetReadRetryDefault: mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L1000: - b .L1000 -.L999: +.L1013: + b .L1013 +.L1012: cmp w27, 6 mov w7, 4 - beq .L1001 + beq .L1014 cmp w27, 7 mov w7, 10 - beq .L1001 + beq .L1014 cmp w8, wzr mov w7, 5 mov w1, 8 csel w7, w1, w7, eq -.L1001: +.L1014: mov w10, 0 -.L1002: +.L1015: mov x1, 0 -.L1003: +.L1016: add w12, w0, w1 ldrb w13, [x11,x1] add x1, x1, 1 cmp w28, w1, uxtb strb w13, [x6,w12,sxtw] - bhi .L1003 + bhi .L1016 add w10, w10, 1 ldr x1, [x29,112] cmp w10, w26 add w0, w0, w7 add x11, x11, x1 - blt .L1002 + blt .L1015 mov w0, 255 str w0, [x24,2056] mov w0, w22 @@ -7343,7 +7441,7 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr x9, [x29,104] ldr x8, [x29,96] - cbz w9, .L1005 + cbz w9, .L1018 mov w0, 54 str w0, [x24,2056] adrp x0, .LANCHOR0+1276 @@ -7355,20 +7453,20 @@ HynixGetReadRetryDefault: str w0, [x24,2056] mov w0, w21 bl FlashReadCmd - b .L1006 -.L1005: + b .L1019 +.L1018: mov w0, 190 - cbnz w8, .L1054 + cbnz w8, .L1067 mov w0, 56 -.L1054: +.L1067: str w0, [x24,2056] -.L1006: +.L1019: mov w0, w22 add w21, w21, 1 bl NandcWaitFlashReady uxtb w21, w21 - b .L962 -.L965: + b .L975 +.L978: mov w0, 120 str w0, [x24,2056] str wzr, [x24,2052] @@ -7390,7 +7488,7 @@ HynixGetReadRetryDefault: str w1, [x24,2052] str w0, [x24,2052] str wzr, [x24,2052] - b .L1009 + b .L1022 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 .global FlashGetReadRetryDefault @@ -7399,15 +7497,15 @@ FlashGetReadRetryDefault: stp x29, x30, [sp, -16]! mov w1, w0 add x29, sp, 0 - cbz w0, .L1056 + cbz w0, .L1069 sub w2, w0, #1 cmp w2, 7 - bhi .L1058 + bhi .L1071 bl HynixGetReadRetryDefault - b .L1056 -.L1058: + b .L1069 +.L1071: cmp w0, 49 - bne .L1059 + bne .L1072 adrp x0, .LANCHOR0 mov w2, 64 add x0, x0, :lo12:.LANCHOR0 @@ -7420,30 +7518,30 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 408 - b .L1074 -.L1059: + b .L1087 +.L1072: sub w0, w0, #65 cmp w0, 1 - bls .L1065 + bls .L1078 cmp w1, 33 - bne .L1060 -.L1065: + bne .L1073 +.L1078: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 strb w1, [x0,1272] mov w1, 4 - b .L1075 -.L1060: + b .L1088 +.L1073: cmp w1, 67 - beq .L1066 + beq .L1079 cmp w1, 34 - bne .L1062 -.L1066: + bne .L1075 +.L1079: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 strb w1, [x0,1272] mov w1, 5 -.L1075: +.L1088: strb w1, [x0,1273] mov w1, 7 strb w1, [x0,1274] @@ -7452,13 +7550,13 @@ FlashGetReadRetryDefault: add x0, x0, 1276 add x1, x1, 256 mov w2, 45 - b .L1074 -.L1062: + b .L1087 +.L1075: cmp w1, 68 - beq .L1067 + beq .L1080 cmp w1, 35 - bne .L1056 -.L1067: + bne .L1069 +.L1080: adrp x0, .LANCHOR0 mov w2, 95 add x0, x0, :lo12:.LANCHOR0 @@ -7471,9 +7569,9 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 304 -.L1074: +.L1087: bl ftl_memcpy -.L1056: +.L1069: ldp x29, x30, [sp], 16 ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault @@ -7491,36 +7589,36 @@ NandcXferComp: add x2, x1, 8 stp x21, x22, [sp,32] ldr x19, [x2,x0] - ldr w0, [x1,2380] + ldr w0, [x1,2388] cmp w0, 3 - bls .L1107 + bls .L1120 ldr w0, [x19,16] - tbz x0, 2, .L1107 + tbz x0, 2, .L1120 ldr w21, [x19,16] ldr w0, [x19,8] ubfx x21, x21, 1, 1 str w0, [x29,64] - cbz w21, .L1078 + cbz w21, .L1091 adrp x22, .LC86 adrp x23, .LC87 mov w21, 0 add x22, x22, :lo12:.LC86 add x23, x23, :lo12:.LC87 -.L1079: +.L1092: ldr w2, [x19,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1087 + bge .L1100 add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,2380] + ldr w0, [x0,2388] cmp w0, 5 - bhi .L1080 -.L1083: + bhi .L1093 +.L1096: add w21, w21, 1 and w0, w21, 16777215 - cbnz w0, .L1082 + cbnz w0, .L1095 ldr w2, [x19,28] mov w1, w21 ldr w3, [x29,64] @@ -7533,19 +7631,19 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L1082 -.L1080: + b .L1095 +.L1093: ldr w0, [x19] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1083 + tbz x0, 13, .L1096 ldr w0, [x29,72] - tbz x0, 17, .L1083 -.L1087: + tbz x0, 17, .L1096 +.L1100: add x19, x20, :lo12:.LANCHOR0 - add x19, x19, 2400 + add x19, x19, 2408 ldr w0, [x19,40] - cbz w0, .L1088 + cbz w0, .L1101 ldr w1, [x29,64] mov w2, 0 ldr w0, [x19,32] @@ -7558,25 +7656,25 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L1088 -.L1082: - mov x0, 5 - mov x1, 10 + b .L1101 +.L1095: + mov x0, 1 + mov x1, 5 bl usleep_range - b .L1079 -.L1078: + b .L1092 +.L1091: adrp x22, .LC88 adrp x23, .LC87 add x22, x22, :lo12:.LC88 add x23, x23, :lo12:.LC87 -.L1089: +.L1102: ldr w0, [x29,64] - tbnz x0, 20, .L1115 + tbnz x0, 20, .L1128 ldr w0, [x19,8] add w21, w21, 1 str w0, [x29,64] and w0, w21, 16777215 - cbnz w0, .L1090 + cbnz w0, .L1103 ldr w2, [x29,64] mov w1, w21 ldr w3, [x19,28] @@ -7588,22 +7686,22 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex -.L1090: - mov x0, 5 - mov x1, 10 +.L1103: + mov x0, 1 + mov x1, 5 bl usleep_range - b .L1089 -.L1115: + b .L1102 +.L1128: add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,2448] - cbz w0, .L1092 + ldr w0, [x0,2456] + cbz w0, .L1105 mov x0, x19 bl NandcSendDumpDataStart -.L1092: +.L1105: add x21, x20, :lo12:.LANCHOR0 - add x21, x21, 2400 + add x21, x21, 2408 ldr w0, [x21,40] - cbz w0, .L1093 + cbz w0, .L1106 ldr w1, [x29,64] mov w2, 1 ldr w0, [x21,32] @@ -7616,22 +7714,22 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single -.L1093: +.L1106: add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,2448] - cbz w0, .L1088 + ldr w0, [x0,2456] + cbz w0, .L1101 mov x0, x19 bl NandcSendDumpDataDone -.L1088: +.L1101: add x20, x20, :lo12:.LANCHOR0 - str wzr, [x20,2440] - b .L1076 -.L1107: + str wzr, [x20,2448] + b .L1089 +.L1120: ldr w0, [x19,8] str w0, [x29,64] ldr w0, [x29,64] - tbz x0, 20, .L1107 -.L1076: + tbz x0, 20, .L1120 +.L1089: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -7659,14 +7757,14 @@ NandcXferData: uxtb w24, w2 mov x26, x3 mov x22, x4 - cbnz x0, .L1117 - cbnz x4, .L1118 + cbnz x0, .L1130 + cbnz x4, .L1131 add x0, x29, 112 mov w1, 255 mov w2, 64 add x22, x29, 112 bl ftl_memset -.L1118: +.L1131: mov w0, w25 mov w1, w21 mov w2, w24 @@ -7678,21 +7776,21 @@ NandcXferData: mov w0, w25 mov w1, w21 bl NandcXferComp - cbnz w21, .L1119 + cbnz w21, .L1132 add x1, x19, :lo12:.LANCHOR0 ubfx x2, x24, 1, 7 mov w3, 128 add x2, x22, x2, lsl 2 - ldr w0, [x1,2452] + ldr w0, [x1,2460] cmp w0, 25 mov w0, 64 csel w3, w0, w3, cc mov w0, w21 -.L1121: +.L1134: cmp x22, x2 add w4, w0, w3 - beq .L1163 - ldr x5, [x1,2408] + beq .L1176 + ldr x5, [x1,2416] and x0, x0, 4294967292 add x22, x22, 4 ldr w0, [x5,x0] @@ -7704,29 +7802,29 @@ NandcXferData: lsr w0, w0, 24 strb w0, [x22,-1] mov w0, w4 - b .L1121 -.L1163: + b .L1134 +.L1176: add x0, x19, :lo12:.LANCHOR0 lsr w24, w24, 2 - ldr w5, [x0,2452] - ldr w4, [x0,2380] + ldr w5, [x0,2460] + ldr w4, [x0,2388] mov w0, 0 mov w23, w0 -.L1123: +.L1136: cmp w0, w24 - bcs .L1119 - cbz w5, .L1119 + bcs .L1132 + cbz w5, .L1132 uxtw x1, w0 add x1, x1, 8 ldr w1, [x20,x1,lsl 2] str w1, [x29,104] ldr w1, [x29,104] - tbnz x1, 2, .L1147 + tbnz x1, 2, .L1160 ldr w3, [x29,104] ubfx x3, x3, 15, 1 - cbnz w3, .L1147 + cbnz w3, .L1160 cmp w4, 5 - bls .L1125 + bls .L1138 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -7739,20 +7837,20 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L1126 + bls .L1139 ldr w1, [x29,104] ubfx x3, x3, 3, 5 ubfx x1, x1, 27, 1 orr w3, w3, w1, lsl 5 - b .L1127 -.L1126: + b .L1140 +.L1139: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 29, 1 - b .L1162 -.L1125: + b .L1175 +.L1138: cmp w4, 3 - bls .L1127 + bls .L1140 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -7765,43 +7863,43 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L1128 + bls .L1141 ubfx x1, x3, 3, 5 ldr w3, [x29,104] ubfx x3, x3, 28, 1 - b .L1162 -.L1128: + b .L1175 +.L1141: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 30, 1 -.L1162: +.L1175: orr w3, w1, w3, lsl 5 -.L1127: +.L1140: cmp w23, w3 csel w23, w23, w3, cs - b .L1124 -.L1147: + b .L1137 +.L1160: mov w23, -1 -.L1124: +.L1137: add w0, w0, 1 - b .L1123 -.L1119: + b .L1136 +.L1132: str wzr, [x20,16] - b .L1130 -.L1117: + b .L1143 +.L1130: cmp w21, 1 - bne .L1161 + bne .L1174 mov w23, 0 mov w28, 2 -.L1131: +.L1144: cmp w23, w24 - bcs .L1164 + bcs .L1177 and w27, w23, 3 mov x3, x26 - cbz x26, .L1133 + cbz x26, .L1146 ubfiz x0, x23, 9, 23 add x3, x26, x0 -.L1133: +.L1146: cmp x22, xzr mov x0, x20 csel w4, w28, wzr, ne @@ -7821,11 +7919,11 @@ NandcXferData: mov w0, w25 mov w1, 1 bl NandcXferComp - b .L1131 -.L1164: + b .L1144 +.L1177: mov w23, 0 - b .L1130 -.L1161: + b .L1143 +.L1174: mov w1, 0 mov x4, 0 mov w27, 0 @@ -7835,9 +7933,9 @@ NandcXferData: mov x5, x4 mov w23, w27 bl NandcXferStart -.L1136: +.L1149: cmp w27, w24 - bcs .L1130 + bcs .L1143 mov w0, w25 mov w1, w21 add w28, w27, 2 @@ -7845,7 +7943,7 @@ NandcXferData: ldr w0, [x20,32] cmp w28, w24 str w0, [x29,104] - bcs .L1137 + bcs .L1150 mov x4, 0 mov w0, w25 mov w1, 0 @@ -7853,9 +7951,9 @@ NandcXferData: and w3, w28, 3 mov x5, x4 bl NandcXferStart -.L1137: +.L1150: ldr w0, [x29,104] - tbnz x0, 2, .L1152 + tbnz x0, 2, .L1165 ldr w0, [x29,104] ubfx x1, x0, 3, 5 ldr w0, [x29,104] @@ -7863,16 +7961,16 @@ NandcXferData: orr w0, w1, w0, lsl 5 cmp w23, w0 csel w23, w23, w0, cs - b .L1138 -.L1152: + b .L1151 +.L1165: mov w23, -1 -.L1138: +.L1151: and w2, w27, 3 mov x3, x26 - cbz x26, .L1139 + cbz x26, .L1152 ubfiz x3, x27, 9, 23 add x3, x26, x3 -.L1139: +.L1152: cmp x22, xzr mov w0, 2 csel w4, w0, wzr, ne @@ -7882,23 +7980,23 @@ NandcXferData: mov w27, w28 add x4, x22, x4 bl NandcCopy1KB - b .L1136 -.L1130: - cbnz w21, .L1142 + b .L1149 +.L1143: + cbnz w21, .L1155 add x19, x19, :lo12:.LANCHOR0 - ldr w0, [x19,2380] + ldr w0, [x19,2388] cmp w0, 5 - bls .L1142 + bls .L1155 ldr w0, [x20] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L1142 + bne .L1155 orr w0, w0, 131072 mov w23, -1 str w0, [x20] -.L1142: +.L1155: mov w0, w23 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7921,7 +8019,7 @@ FlashReadRawPage: str x21, [sp,32] mov x21, x2 ldrb w20, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1166 + cbnz w19, .L1179 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w5, [x0,73] @@ -7930,7 +8028,7 @@ FlashReadRawPage: cmp w1, w0 mov w0, 4 csel w20, w20, w0, cs -.L1166: +.L1179: mov w0, w19 str x4, [x29,48] str x1, [x29,56] @@ -7972,7 +8070,7 @@ FlashDdrTunningRead: stp x25, x26, [sp,64] uxtb w23, w0 mov w22, 6 - ldr x0, [x19,128] + ldr x0, [x19,136] mov w24, w1 mov x28, x2 mov x27, x3 @@ -7980,11 +8078,11 @@ FlashDdrTunningRead: mov w21, 1024 ldr w0, [x0,304] str w0, [x29,124] - ldr w0, [x19,2380] + ldr w0, [x19,2388] cmp w0, 8 mov w0, 12 csel w22, w22, w0, cc - cbz w4, .L1169 + cbz w4, .L1182 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 @@ -7997,47 +8095,47 @@ FlashDdrTunningRead: mov w0, w23 bl FlashReadRawPage mov w21, w0 - ldrb w0, [x19,2356] + ldrb w0, [x19,2357] bl FlashSetInterfaceMode - ldrb w0, [x19,2356] + ldrb w0, [x19,2357] bl NandcSetMode cmn w21, #1 - bne .L1170 -.L1179: + bne .L1183 +.L1192: mov w21, -1 - b .L1171 -.L1170: + b .L1184 +.L1183: adrp x0, .LC89 mov w1, w24 add x0, x0, :lo12:.LC89 mov w2, w21 bl printk cmp w21, 9 - bhi .L1172 + bhi .L1185 add x19, x19, x23, sxtw 4 ldr x0, [x19,8] ldr w1, [x0,3840] ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L1172: +.L1185: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr w1, [x0,1600] + ldr w1, [x0,1608] add w1, w1, 1 - str w1, [x0,1600] + str w1, [x0,1608] cmp w1, 2047 - bls .L1171 + bls .L1184 mov x27, 0 - str wzr, [x0,1600] + str wzr, [x0,1608] mov x28, x27 -.L1169: +.L1182: mov w19, 0 mov w26, -1 mov w5, w19 mov w6, w19 mov w20, w19 -.L1177: +.L1190: mov w0, w22 str x5, [x29,104] str x6, [x29,112] @@ -8051,63 +8149,63 @@ FlashDdrTunningRead: ldr x6, [x29,112] cmp w0, w1 ldr x5, [x29,104] - bhi .L1173 + bhi .L1186 cmp w0, 2 - bhi .L1183 + bhi .L1196 add w20, w20, 1 cmp w20, 9 - bls .L1183 + bls .L1196 sub w19, w22, w20 mov w21, w0 mov w26, 0 - b .L1175 -.L1173: + b .L1188 +.L1186: cmp w6, w20 - bcs .L1184 + bcs .L1197 cmp w20, 7 sub w5, w19, w20 - bhi .L1185 + bhi .L1198 mov w6, w20 - b .L1184 -.L1183: + b .L1197 +.L1196: mov x27, 0 mov w19, w22 mov w21, w0 mov w26, 0 mov x28, x27 - b .L1174 -.L1184: + b .L1187 +.L1197: mov w20, 0 -.L1174: +.L1187: add w22, w22, 2 cmp w22, 69 - bls .L1177 -.L1175: + bls .L1190 +.L1188: cmp w6, w20 csel w19, w19, w5, cc - b .L1176 -.L1185: + b .L1189 +.L1198: mov w19, w5 -.L1176: - cbz w19, .L1178 +.L1189: + cbz w19, .L1191 adrp x0, .LC90 mov w1, w19 add x0, x0, :lo12:.LC90 bl printk mov w0, w19 bl NandcSetDdrPara -.L1178: - cbz w26, .L1171 +.L1191: + cbz w26, .L1184 adrp x0, .LC91 mov w1, w23 add x0, x0, :lo12:.LC91 mov w2, w24 bl printk - cbz w25, .L1179 + cbz w25, .L1192 ldr w0, [x29,124] lsr w0, w0, 8 bl NandcSetDdrPara -.L1171: +.L1184: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8135,17 +8233,17 @@ FlashReadPage: bl FlashReadRawPage cmn w0, #1 mov w19, w0 - bne .L1195 + bne .L1208 adrp x21, .LANCHOR0 add x25, x21, :lo12:.LANCHOR0 ldrb w26, [x25,80] - cbnz w26, .L1196 -.L1198: + cbnz w26, .L1209 +.L1211: add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,2372] - cbz w0, .L1195 - b .L1216 -.L1196: + ldrb w0, [x21,2380] + cbz w0, .L1208 + b .L1229 +.L1209: mov w0, w20 mov w1, w22 mov x2, x24 @@ -8154,11 +8252,11 @@ FlashReadPage: bl FlashReadRawPage strb w26, [x25,80] cmn w0, #1 - beq .L1198 + beq .L1211 mov w19, w0 - b .L1195 -.L1216: - ldr x0, [x21,128] + b .L1208 +.L1229: + ldr x0, [x21,136] mov w1, w22 mov x2, x24 mov x3, x23 @@ -8168,20 +8266,20 @@ FlashReadPage: bl FlashDdrTunningRead cmn w0, #1 mov w19, w0 - beq .L1199 - ldrb w0, [x21,2456] + beq .L1212 + ldrb w0, [x21,2464] cmp w19, w0, lsr 1 - bls .L1195 -.L1199: + bls .L1208 +.L1212: lsr w0, w25, 8 bl NandcSetDdrPara -.L1195: +.L1208: adrp x21, .LANCHOR4 cmn w19, #1 add x21, x21, :lo12:.LANCHOR4 - ldr x4, [x21,1608] - bne .L1200 - cbz x4, .L1200 + ldr x4, [x21,1616] + bne .L1213 + cbz x4, .L1213 mov w1, w22 mov x2, x24 mov x3, x23 @@ -8195,13 +8293,13 @@ FlashReadPage: mov w3, w22 bl printk cmn w19, #1 - bne .L1200 - adrp x0, .LANCHOR0+196 - ldrb w0, [x0,#:lo12:.LANCHOR0+196] - cbz w0, .L1200 + bne .L1213 + adrp x0, .LANCHOR0+204 + ldrb w0, [x0,#:lo12:.LANCHOR0+204] + cbz w0, .L1213 mov w0, w20 bl flash_enter_slc_mode - ldr x4, [x21,1608] + ldr x4, [x21,1616] mov w0, w20 mov w1, w22 mov x2, x24 @@ -8210,7 +8308,7 @@ FlashReadPage: mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L1200: +.L1213: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8231,9 +8329,9 @@ FlashDdrParaScan: stp x21, x22, [sp,32] add x22, x19, :lo12:.LANCHOR0 uxtb w21, w0 - ldrb w0, [x22,2356] + ldrb w0, [x22,2357] bl FlashSetInterfaceMode - ldrb w0, [x22,2356] + ldrb w0, [x22,2357] bl NandcSetMode mov x2, 0 mov w1, w20 @@ -8248,24 +8346,24 @@ FlashDdrParaScan: mov x3, x2 bl FlashReadRawPage cmn w0, #1 - beq .L1221 + beq .L1234 cmn w22, #1 - bne .L1218 -.L1221: + bne .L1231 +.L1234: add x20, x19, :lo12:.LANCHOR0 - ldrb w0, [x20,2356] - tbz x0, 0, .L1218 + ldrb w0, [x20,2357] + tbz x0, 0, .L1231 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,2372] - b .L1220 -.L1218: + strb wzr, [x20,2380] + b .L1233 +.L1231: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - strb w0, [x19,2372] -.L1220: + strb w0, [x19,2380] +.L1233: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8296,23 +8394,23 @@ FlashLoadPhyInfo: stp x19, x20, [sp,16] adrp x22, .LANCHOR0 add x24, x24, :lo12:.LANCHOR1 - ldr x1, [x0,1592] + ldr x1, [x0,1600] add x21, x22, :lo12:.LANCHOR0 - str x1, [x0,1616] + str x1, [x0,1624] mov w20, 0 - str wzr, [x0,1624] + str wzr, [x0,1632] mov w25, 4 mov w0, 0 mov w28, -1 add x24, x24, 472 - add x27, x21, 88 + add x27, x21, 96 ldr w26, [x21,76] bl flash_enter_slc_mode -.L1229: +.L1242: add w0, w20, 1 mov x19, 0 str w0, [x29,104] -.L1231: +.L1244: add x0, x29, 120 ldrb w0, [x19,x0] bl FlashBchSel @@ -8321,23 +8419,23 @@ FlashLoadPhyInfo: mov w1, w20 mov x3, 0 str x5, [x29,96] - ldr x2, [x5,1592] + ldr x2, [x5,1600] bl FlashReadRawPage cmn w0, #1 - bne .L1230 + bne .L1243 ldr x5, [x29,96] mov w0, 0 ldr w1, [x29,104] mov x3, 0 - ldr x2, [x5,1592] + ldr x2, [x5,1600] bl FlashReadRawPage cmn w0, #1 - bne .L1230 + bne .L1243 add x19, x19, 1 cmp x19, 4 - beq .L1232 - b .L1231 -.L1233: + beq .L1245 + b .L1244 +.L1246: add x0, x2, 12 mov w1, 2036 str x2, [x29,104] @@ -8346,13 +8444,13 @@ FlashLoadPhyInfo: ldr x2, [x29,104] ldr w1, [x2,8] cmp w1, w0 - beq .L1243 -.L1232: + beq .L1256 +.L1245: subs w25, w25, #1 add w20, w20, w26 - bne .L1229 + bne .L1242 mov w0, w25 -.L1242: +.L1255: bl flash_exit_slc_mode mov w0, w28 ldp x19, x20, [sp,16] @@ -8362,59 +8460,59 @@ FlashLoadPhyInfo: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 128 ret -.L1230: +.L1243: add x19, x23, :lo12:.LANCHOR4 mov w0, 20036 movk w0, 0x4e41, lsl 16 - ldr x2, [x19,1616] + ldr x2, [x19,1624] ldr w1, [x2] cmp w1, w0 - bne .L1232 - cbnz w28, .L1233 + bne .L1245 + cbnz w28, .L1246 add x22, x22, :lo12:.LANCHOR0 ldr w0, [x22,76] udiv w20, w20, w0 mov w0, w28 add w20, w20, 1 - str w20, [x19,1628] - b .L1242 -.L1243: + str w20, [x19,1636] + b .L1255 +.L1256: add x1, x2, 160 mov x0, x24 mov w2, 32 bl ftl_memcpy - ldr x1, [x19,1616] + ldr x1, [x19,1624] mov w2, 32 mov x0, x27 add x1, x1, 192 bl ftl_memcpy - ldr x1, [x19,1616] + ldr x1, [x19,1624] mov w2, 852 add x0, x21, 1272 add x1, x1, 224 bl ftl_memcpy ldrh w0, [x24,10] bl FlashBlockAlignInit - str w20, [x19,1624] + str w20, [x19,1632] ldr w1, [x21,76] - ldr x2, [x19,1616] + ldr x2, [x19,1624] udiv w1, w20, w1 ldr w0, [x2,1076] add w1, w1, 1 - strb w0, [x21,2372] + strb w0, [x21,2380] cmp w1, 1 - bls .L1235 - str w1, [x19,1628] - b .L1236 -.L1235: + bls .L1248 + str w1, [x19,1636] + b .L1249 +.L1248: mov w0, 2 - str w0, [x19,1628] -.L1236: + str w0, [x19,1636] +.L1249: add x0, x23, :lo12:.LANCHOR4 ldrh w1, [x2,14] mov w28, 0 - strb w1, [x0,1632] - b .L1232 + strb w1, [x0,1640] + b .L1245 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial @@ -8444,25 +8542,25 @@ ToshibaReadRetrial: str x0, [x29,120] add x20, x0, 8 mov x28, x0 - ldrb w0, [x2,120] + ldrb w0, [x2,128] add x20, x24, x20, lsl 8 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - bls .L1245 - ldrb w0, [x2,2372] - cbz w0, .L1246 + bls .L1258 + ldrb w0, [x2,2380] + cbz w0, .L1259 mov w0, w22 mov w22, 1 bl NandcSetDdrMode -.L1246: +.L1259: ubfiz x0, x28, 8, 8 mov w2, 92 add x0, x24, x0 str w2, [x0,2056] mov w2, 197 str w2, [x0,2056] -.L1245: +.L1258: ldr x0, [x29,120] mov w21, 1 mov w25, -1 @@ -8471,48 +8569,48 @@ ToshibaReadRetrial: str x0, [x29,104] ubfiz x0, x28, 8, 8 str x0, [x29,96] -.L1247: +.L1260: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1633] + ldrb w0, [x0,1641] add w0, w0, 1 cmp w21, w0 - bcs .L1272 + bcs .L1285 add x0, x19, :lo12:.LANCHOR0 mov w1, w21 - ldrb w0, [x0,120] + ldrb w0, [x0,128] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x20 - bhi .L1248 + bhi .L1261 bl SandiskSetRRPara - b .L1249 -.L1248: + b .L1262 +.L1261: bl ToshibaSetRRPara -.L1249: +.L1262: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,120] + ldrb w0, [x0,128] cmp w0, 34 - bne .L1250 + bne .L1263 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1633] + ldrb w0, [x0,1641] sub w0, w0, #3 cmp w21, w0 - bne .L1250 + bne .L1263 ldr x0, [x29,104] mov w1, 179 add x0, x24, x0 str w1, [x0,8] -.L1250: +.L1263: ldr x0, [x29,96] mov w1, 38 add x0, x24, x0 str w1, [x0,2056] mov w1, 93 str w1, [x0,2056] - cbz w22, .L1251 + cbz w22, .L1264 mov w0, 4 bl NandcSetDdrMode ldr w1, [x29,116] @@ -8523,65 +8621,65 @@ ToshibaReadRetrial: mov w28, w0 mov w0, 0 bl NandcSetDdrMode - b .L1252 -.L1251: + b .L1265 +.L1264: ldr w1, [x29,116] mov w0, w23 mov x2, x27 mov x3, x26 bl FlashReadRawPage mov w28, w0 -.L1252: +.L1265: cmn w28, #1 - beq .L1253 + beq .L1266 add x0, x19, :lo12:.LANCHOR0 cmn w25, #1 csel w25, w25, w28, ne - ldrb w0, [x0,2456] + ldrb w0, [x0,2464] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1255 + bcc .L1268 mov x26, 0 mov x27, x26 -.L1253: +.L1266: add w21, w21, 1 - b .L1247 -.L1272: + b .L1260 +.L1285: mov w28, w25 -.L1255: +.L1268: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x0,120] + ldrb w0, [x0,128] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x20 - bhi .L1257 + bhi .L1270 bl SandiskSetRRPara - b .L1258 -.L1257: + b .L1271 +.L1270: bl ToshibaSetRRPara -.L1258: +.L1271: ldr x0, [x29,120] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 add x24, x24, x0, lsl 8 mov w0, 255 str w0, [x24,8] - ldrb w0, [x19,2456] + ldrb w0, [x19,2464] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1259 + bcc .L1272 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1259: +.L1272: mov w0, w23 bl NandcWaitFlashReady - cbz w22, .L1260 + cbz w22, .L1273 mov w0, 4 bl NandcSetDdrMode -.L1260: +.L1273: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8620,12 +8718,12 @@ SamsungReadRetrial: ldrb w21, [x2,8] add x21, x21, 8 add x21, x0, x21, lsl 8 -.L1274: +.L1287: add x0, x27, :lo12:.LANCHOR4 - ldrb w0, [x0,1633] + ldrb w0, [x0,1641] add w0, w0, 1 cmp w26, w0 - bcs .L1277 + bcs .L1290 mov x0, x21 mov w1, w26 bl SamsungSetRRPara @@ -8635,34 +8733,34 @@ SamsungReadRetrial: mov x3, x23 bl FlashReadRawPage cmn w0, #1 - beq .L1275 + beq .L1288 add x1, x20, :lo12:.LANCHOR0 cmn w19, #1 csel w19, w19, w0, ne - ldrb w1, [x1,2456] + ldrb w1, [x1,2464] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1280 + bcc .L1293 mov x23, 0 mov x24, x23 -.L1275: +.L1288: add w26, w26, 1 - b .L1274 -.L1280: + b .L1287 +.L1293: mov w19, w0 -.L1277: +.L1290: mov x0, x21 mov w1, 0 add x20, x20, :lo12:.LANCHOR0 bl SamsungSetRRPara - ldrb w0, [x20,2456] + ldrb w0, [x20,2464] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1279 + bcc .L1292 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1279: +.L1292: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -8688,17 +8786,17 @@ MicronReadRetrial: stp x23, x24, [sp,48] mov w28, w1 mov x26, x2 - ldrb w19, [x0,2456] + ldrb w19, [x0,2464] mov x22, x3 - ldrb w0, [x0,196] - cbnz w0, .L1287 + ldrb w0, [x0,204] + cbnz w0, .L1300 add w19, w19, w19, lsl 1 ubfx x19, x19, 2, 8 - b .L1288 -.L1287: + b .L1301 +.L1300: mov w0, 3 sdiv w19, w19, w0 -.L1288: +.L1301: adrp x27, .LC93 mov w25, 0 add x0, x27, :lo12:.LC93 @@ -8706,7 +8804,7 @@ MicronReadRetrial: add x20, x20, :lo12:.LANCHOR0 add x23, x20, 8 add x23, x23, x21, sxtw 4 -.L1299: +.L1312: mov w0, w21 mov w24, 0 mov w27, -1 @@ -8716,12 +8814,12 @@ MicronReadRetrial: ldr x6, [x23] mov w10, 137 lsl x8, x4, 8 -.L1289: +.L1302: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1633] + ldrb w0, [x0,1641] cmp w24, w0 - bcs .L1292 + bcs .L1305 add x2, x6, x8 mov x0, 1000 str x4, [x29,104] @@ -8752,21 +8850,21 @@ MicronReadRetrial: ldr x6, [x29,120] ldr x8, [x29,112] ldr x4, [x29,104] - beq .L1290 + beq .L1303 cmn w27, #1 csel w27, w27, w0, ne cmp w0, w19 - bcc .L1301 + bcc .L1314 mov x22, 0 mov x26, x22 -.L1290: +.L1303: mov w24, w7 - b .L1289 -.L1301: + b .L1302 +.L1314: mov x22, 0 mov w27, w0 mov x26, x22 -.L1292: +.L1305: add x1, x6, x4, lsl 8 mov w0, 239 str x1, [x29,144] @@ -8781,18 +8879,18 @@ MicronReadRetrial: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] - bcc .L1294 + bcc .L1307 cmn w27, #1 mov w0, 256 csel w27, w27, w0, eq -.L1294: +.L1307: cmn w27, #1 cset w6, eq - cbnz w6, .L1303 + cbnz w6, .L1316 cmp w27, 256 cset w1, eq - cbz w1, .L1295 -.L1303: + cbz w1, .L1308 +.L1316: ldr x0, [x29,152] mov w1, w24 mov w2, w28 @@ -8800,30 +8898,30 @@ MicronReadRetrial: mov w4, w27 str x6, [x29,144] bl printk - cbnz w25, .L1297 + cbnz w25, .L1310 ldr x6, [x29,144] - cbz w6, .L1308 - ldrb w0, [x20,196] - cbz w0, .L1308 + cbz w6, .L1321 + ldrb w0, [x20,204] + cbz w0, .L1321 mov w0, w21 mov w1, 3 mov w25, 1 bl micron_auto_read_calibration_config - b .L1299 -.L1297: + b .L1312 +.L1310: mov w0, w21 mov w1, 0 bl micron_auto_read_calibration_config cmn w27, #1 mov w0, 256 csel w27, w27, w0, eq - b .L1308 -.L1295: - cbz w25, .L1308 + b .L1321 +.L1308: + cbz w25, .L1321 mov w0, w21 mov w27, 256 bl micron_auto_read_calibration_config -.L1308: +.L1321: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8851,7 +8949,7 @@ HynixReadRetrial: add x2, x0, 1272 ldrb w25, [x0,1274] mov w27, w1 - ldr x0, [x0,1256] + ldr x0, [x0,88] add x1, x2, x22 mov x23, x22 mov x24, x3 @@ -8860,18 +8958,18 @@ HynixReadRetrial: sub w0, w0, #7 uxtb w0, w0 cmp w0, 1 - bhi .L1317 + bhi .L1330 ldrb w19, [x1,20] -.L1317: +.L1330: mov w0, w23 mov w28, 0 mov w20, -1 bl NandcWaitFlashReady add x4, x21, :lo12:.LANCHOR0 add x5, x4, 1276 -.L1318: +.L1331: cmp w28, w25 - bcs .L1322 + bcs .L1335 add w19, w19, 1 ldrb w1, [x4,1273] mov x2, x5 @@ -8891,44 +8989,44 @@ HynixReadRetrial: cmn w0, #1 ldr x5, [x29,104] ldr x4, [x29,96] - beq .L1320 - ldrb w1, [x4,2456] + beq .L1333 + ldrb w1, [x4,2464] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1327 + bcc .L1340 mov x24, 0 mov x26, x24 -.L1320: +.L1333: add w28, w28, 1 - b .L1318 -.L1327: + b .L1331 +.L1340: mov w20, w0 -.L1322: +.L1335: add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0,88] add x0, x0, 1272 - ldr x1, [x0,-16] add x0, x0, x22 ldrb w1, [x1,19] sub w1, w1, #7 uxtb w1, w1 cmp w1, 1 - bhi .L1324 + bhi .L1337 strb w19, [x0,20] - b .L1325 -.L1324: + b .L1338 +.L1337: strb w19, [x0,12] -.L1325: +.L1338: add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,2456] + ldrb w0, [x21,2464] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L1326 + bcc .L1339 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L1326: +.L1339: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8939,6 +9037,182 @@ HynixReadRetrial: ret .size HynixReadRetrial, .-HynixReadRetrial .align 2 + .type samsung_read_retrial, %function +samsung_read_retrial: + stp x29, x30, [sp, -128]! + add x29, sp, 0 + stp x21, x22, [sp,32] + uxtb w22, w0 + adrp x21, .LANCHOR3 + mov w0, w22 + stp x23, x24, [sp,48] + stp x19, x20, [sp,16] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + mov w23, w1 + mov x24, x2 + mov x27, x3 + adrp x25, .LANCHOR0 + bl NandcWaitFlashReady + add x0, x25, :lo12:.LANCHOR0 + sbfiz x1, x22, 4, 32 + add x2, x0, 8 + add x3, x2, x1 + ldrb w0, [x0,2356] + ldr x5, [x2,x1] + ldrb w19, [x3,8] + cbnz w0, .L1347 + lsl x19, x19, 8 + add x21, x21, :lo12:.LANCHOR3 + mov x4, 0 + mov w20, -1 + add x28, x5, x19 + mov w6, 239 + mov w7, 141 + add x21, x21, 16 +.L1351: + str w6, [x28,2056] + add x0, x21, x4 + str w7, [x28,2052] + mov w1, w23 + mov x2, x24 + mov x3, x27 + ldrsb w0, [x0,1] + add w26, w4, 1 + str w0, [x28,2048] + mov w0, w22 + str wzr, [x28,2048] + str wzr, [x28,2048] + str wzr, [x28,2048] + str x5, [x29,96] + str x6, [x29,104] + str x7, [x29,112] + str x4, [x29,120] + bl FlashReadRawPage + cmn w0, #1 + ldr x4, [x29,120] + ldr x7, [x29,112] + ldr x6, [x29,104] + ldr x5, [x29,96] + beq .L1348 + add x1, x25, :lo12:.LANCHOR0 + cmn w20, #1 + csel w20, w20, w0, ne + ldrb w1, [x1,2464] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L1360 + mov x27, 0 + mov x24, x27 +.L1348: + add x4, x4, 1 + cmp x4, 25 + bne .L1351 + mov w26, 26 + b .L1350 +.L1360: + mov w20, w0 +.L1350: + add x3, x5, x19 + mov w0, 239 + str w0, [x3,2056] + mov w0, 141 + b .L1376 +.L1347: + add x21, x21, :lo12:.LANCHOR3 + lsl x19, x19, 8 + add x21, x21, 48 + mov w20, -1 + mov w26, 1 + add x28, x5, x19 + mov w4, 239 + mov w6, 137 +.L1356: + str w4, [x28,2056] + mov w1, w23 + str w6, [x28,2052] + mov x2, x24 + mov x3, x27 + str x5, [x29,104] + ldrb w0, [x21,4] + str w0, [x28,2048] + str x4, [x29,112] + ldrb w0, [x21,5] + str w0, [x28,2048] + str x6, [x29,120] + ldrb w0, [x21,6] + str w0, [x28,2048] + ldrb w0, [x21,7] + str w0, [x28,2048] + mov w0, w22 + bl FlashReadRawPage + cmn w0, #1 + ldr x6, [x29,120] + ldr x4, [x29,112] + ldr x5, [x29,104] + beq .L1353 + add x1, x25, :lo12:.LANCHOR0 + cmn w20, #1 + csel w20, w20, w0, ne + ldrb w1, [x1,2464] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L1361 + mov x27, 0 + mov x24, x27 +.L1353: + add w26, w26, 1 + add x21, x21, 4 + cmp w26, 26 + bne .L1356 + b .L1355 +.L1361: + mov w20, w0 +.L1355: + add x3, x5, x19 + mov w0, 239 + str w0, [x3,2056] + mov w0, 137 +.L1376: + str w0, [x3,2052] + add x25, x25, :lo12:.LANCHOR0 + str wzr, [x3,2048] + str wzr, [x3,2048] + str wzr, [x3,2048] + str wzr, [x3,2048] + ldrb w0, [x25,2464] + add w0, w0, w0, lsl 1 + cmp w20, w0, lsr 2 + bcc .L1357 + cmn w20, #1 + mov w0, 256 + csel w20, w20, w0, eq +.L1357: + cmn w20, #1 + beq .L1362 + cmp w20, 256 + bne .L1358 +.L1362: + adrp x0, .LC94 + mov w1, w26 + add x0, x0, :lo12:.LC94 + mov w2, w23 + mov w3, w26 + mov w4, w20 + bl printk +.L1358: + mov w0, w22 + bl NandcWaitFlashReady + mov w0, w20 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 128 + ret + .size samsung_read_retrial, .-samsung_read_retrial + .align 2 .global FlashProgPage .type FlashProgPage, %function FlashProgPage: @@ -8952,19 +9226,19 @@ FlashProgPage: mov w20, w1 mov x22, x2 ldrb w21, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1334 + cbnz w19, .L1378 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,73] ldr w2, [x0,76] mul w1, w1, w2 cmp w20, w1 - bcs .L1334 + bcs .L1378 ldrb w0, [x0,72] cmp w0, wzr mov w0, 4 csel w21, w21, w0, eq -.L1334: +.L1378: mov w0, w19 str x4, [x29,56] bl NandcWaitFlashReady @@ -9004,135 +9278,156 @@ FlashSavePhyInfo: add x29, sp, 0 stp x23, x24, [sp,48] adrp x23, .LANCHOR4 - adrp x24, .LANCHOR0 stp x19, x20, [sp,16] add x19, x23, :lo12:.LANCHOR4 - add x20, x24, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - mov w21, 0 - ldr x0, [x19,1592] - str x0, [x19,1616] - ldrb w0, [x19,1634] + adrp x21, .LANCHOR0 + ldr x0, [x19,1600] + add x20, x21, :lo12:.LANCHOR0 + str x0, [x19,1624] + ldrb w0, [x19,1642] bl FlashBchSel - ldr x0, [x19,1592] + ldr x0, [x19,1600] mov w1, 0 mov w2, 2048 bl ftl_memset - ldr x1, [x19,1616] + ldr x1, [x19,1624] mov w0, 20036 movk w0, 0x4e41, lsl 16 mov w2, 32 str w0, [x1] - ldr x0, [x19,1616] - ldrb w1, [x20,2357] + ldr x0, [x19,1624] + ldrb w1, [x20,2358] add x0, x0, 16 strh w1, [x0,-4] ldrb w1, [x20,73] strh w1, [x0,-2] - ldrb w1, [x20,2372] + ldrb w1, [x20,2380] str w1, [x0,1060] add x1, x20, 2132 bl ftl_memcpy - ldr x0, [x19,1616] + ldr x0, [x19,1624] add x1, x20, 2360 mov w2, 8 add x0, x0, 80 bl ftl_memcpy - ldr x0, [x19,1616] - add x1, x20, 1224 + ldr x0, [x19,1624] + add x1, x20, 1232 mov w2, 32 add x0, x0, 96 bl ftl_memcpy - ldr x0, [x19,1616] + ldr x0, [x19,1624] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 mov w2, 32 add x1, x1, 472 add x0, x0, 160 bl ftl_memcpy - ldr x0, [x19,1616] - add x1, x20, 88 + ldr x0, [x19,1624] + add x1, x20, 96 mov w2, 32 add x0, x0, 192 bl ftl_memcpy - ldr x0, [x19,1616] + ldr x0, [x19,1624] add x1, x20, 1272 mov w2, 852 + mov x20, x23 add x0, x0, 224 bl ftl_memcpy - ldr x20, [x19,1616] + ldr x22, [x19,1624] mov w1, 2036 - add x0, x20, 12 + add x0, x22, 12 bl js_hash - str w0, [x20,8] + str w0, [x22,8] mov w0, 1592 - str w0, [x20,4] - ldr x0, [x19,1640] - str x0, [x19,1616] + str w0, [x22,4] + mov w22, 0 + ldr x0, [x19,1648] + str x0, [x19,1624] mov w0, 0 - mov w19, w21 + mov w19, w22 bl flash_enter_slc_mode -.L1339: - add x22, x24, :lo12:.LANCHOR0 - mov w2, 0 +.L1386: + add x24, x21, :lo12:.LANCHOR0 mov w0, 0 - add x20, x23, :lo12:.LANCHOR4 - add w26, w19, 1 - ldr w1, [x22,76] + mov w2, 0 + ldr w1, [x24,76] mul w1, w19, w1 bl FlashEraseBlock - ldr w1, [x22,76] + ldrb w25, [x24,204] + cbz w25, .L1381 + mov w23, 0 +.L1382: + add x0, x21, :lo12:.LANCHOR0 + add x2, x20, :lo12:.LANCHOR4 mov x3, 0 - ldr x2, [x20,1592] + ldr w1, [x0,76] mov w0, 0 - mul w1, w19, w1 + ldr x2, [x2,1600] + madd w1, w19, w1, w23 + add w23, w23, 1 bl FlashProgPage - ldr w1, [x22,76] + cmp w23, 10 + bne .L1382 + b .L1383 +.L1381: + ldr w1, [x24,76] + add x23, x20, :lo12:.LANCHOR4 + mov x3, 0 + mov w0, w25 + mul w1, w19, w1 + ldr x2, [x23,1600] + bl FlashProgPage + ldr w1, [x24,76] + mov w0, w25 + ldr x2, [x23,1600] mov x3, 0 - ldr x2, [x20,1592] - mov w0, 0 mul w1, w19, w1 add w1, w1, 1 bl FlashProgPage - ldr w1, [x22,76] +.L1383: + add x26, x21, :lo12:.LANCHOR0 + add x23, x20, :lo12:.LANCHOR4 mov w0, 0 - ldr x2, [x20,1640] mov x3, 0 + add w25, w19, 1 + ldr w1, [x26,76] + ldr x2, [x23,1648] mul w1, w19, w1 bl FlashReadRawPage cmn w0, #1 - beq .L1337 - ldr x25, [x20,1616] + beq .L1384 + ldr x24, [x23,1624] mov w0, 20036 movk w0, 0x4e41, lsl 16 - ldr w1, [x25] + ldr w1, [x24] cmp w1, w0 - bne .L1337 + bne .L1384 mov w1, 2036 - add x0, x25, 12 + add x0, x24, 12 bl js_hash - ldr w1, [x25,8] + ldr w1, [x24,8] cmp w1, w0 - bne .L1337 - ldr w0, [x22,76] - cmp w21, 1 - str w26, [x20,1628] + bne .L1384 + ldr w0, [x26,76] + cmp w22, 1 + str w25, [x23,1636] mul w19, w19, w0 - str w19, [x20,1624] - beq .L1340 - mov w21, 1 -.L1337: - cmp w26, 4 - mov w19, w26 - bne .L1339 - b .L1338 -.L1340: - mov w21, 2 -.L1338: + str w19, [x23,1632] + beq .L1387 + mov w22, 1 +.L1384: + cmp w25, 4 + mov w19, w25 + bne .L1386 + b .L1385 +.L1387: + mov w22, 2 +.L1385: mov w0, 0 bl flash_exit_slc_mode - cmp w21, wzr + cmp w22, wzr csetm w0, eq ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9163,29 +9458,29 @@ FlashReadIdbDataRaw: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - ldrb w27, [x0,2456] - ldr w0, [x0,2368] - cbz w0, .L1346 + ldrb w27, [x0,2464] + ldr w0, [x0,2376] + cbz w0, .L1394 mov w0, 0 bl flash_enter_slc_mode -.L1346: +.L1394: mov x0, x26 mov w1, 0 mov w2, 2048 - adrp x24, .LC94 + adrp x24, .LC95 mov w23, -1 mov w20, 2 bl ftl_memset adrp x28, .LANCHOR4 - add x0, x24, :lo12:.LC94 + add x0, x24, :lo12:.LC95 str x0, [x29,104] -.L1347: +.L1395: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,73] cmp w20, w0 - bcs .L1351 + bcs .L1399 mov x22, 0 -.L1349: +.L1397: add x0, x29, 120 add x24, x19, :lo12:.LANCHOR0 add x21, x28, :lo12:.LANCHOR4 @@ -9194,53 +9489,53 @@ FlashReadIdbDataRaw: bl FlashBchSel ldr w1, [x24,76] mov w0, 0 - ldr x2, [x21,1592] + ldr x2, [x21,1600] mov x3, 0 mul w1, w20, w1 bl FlashReadRawPage cmn w0, #1 - bne .L1348 + bne .L1396 add x22, x22, 1 cmp x22, 4 - bne .L1349 - b .L1350 -.L1348: - ldr x0, [x21,1592] + bne .L1397 + b .L1398 +.L1396: + ldr x0, [x21,1600] ldr w1, [x0] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L1350 + bne .L1398 ldr x0, [x29,104] mov w1, w25 bl printk - ldr x1, [x21,1592] + ldr x1, [x21,1600] mov x0, x26 mov w2, 2048 bl ftl_memcpy - ldr x0, [x21,1592] + ldr x0, [x21,1600] ldr w0, [x0,512] strb w0, [x24,73] - ldr w0, [x21,1628] + ldr w0, [x21,1636] cmp w0, w20 - bls .L1354 + bls .L1402 mov w23, 0 - str w20, [x21,1628] + str w20, [x21,1636] bl FlashSavePhyInfo -.L1350: +.L1398: add w20, w20, 1 - b .L1347 -.L1354: + b .L1395 +.L1402: mov w23, 0 -.L1351: +.L1399: mov w0, w27 add x19, x19, :lo12:.LANCHOR0 bl FlashBchSel - ldr w0, [x19,2368] - cbz w0, .L1358 + ldr w0, [x19,2376] + cbz w0, .L1406 mov w0, 0 bl flash_exit_slc_mode -.L1358: +.L1406: mov w0, w23 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9266,45 +9561,45 @@ FlashInit: stp x27, x28, [sp,80] stp x25, x26, [sp,64] bl ftl_malloc - str x0, [x22,1592] + str x0, [x22,1600] mov w0, 32768 adrp x19, .LANCHOR0 add x20, x19, :lo12:.LANCHOR0 - adrp x24, .LC95 + adrp x24, .LC96 bl ftl_malloc - str x0, [x22,1640] + str x0, [x22,1648] mov w0, 4096 mov w27, 144 mov w28, 239 bl ftl_malloc - str x0, [x22,1648] + str x0, [x22,1656] mov w0, 32768 bl ftl_malloc - str x0, [x22,1656] + str x0, [x22,1664] mov w0, 4096 bl ftl_malloc - str x0, [x22,1664] + str x0, [x22,1672] mov w0, 128 str w0, [x20,76] mov w0, 60 mov w1, 50 - strb w0, [x22,1634] + strb w0, [x22,1642] mov x0, x23 - strb wzr, [x20,2372] + strb wzr, [x20,2380] add x23, x20, 8 strb w1, [x20,73] - strb w1, [x22,1632] - str wzr, [x22,1628] - str wzr, [x22,1600] + strb w1, [x22,1640] + str wzr, [x22,1636] + str wzr, [x22,1608] strb wzr, [x20,72] add x20, x20, 2132 - strb wzr, [x22,1672] + strb wzr, [x22,1680] bl NandcInit - add x0, x24, :lo12:.LC95 + add x0, x24, :lo12:.LC96 mov w22, 0 str x0, [x29,104] mov x26, x20 -.L1370: +.L1418: ldrb w2, [x23,8] uxtb w25, w22 mov w0, w25 @@ -9334,7 +9629,7 @@ FlashInit: strb w2, [x20,4] ldr w2, [x24,2048] strb w2, [x20,5] - bne .L1365 + bne .L1413 str w28, [x24,2056] mov w0, 1 str w0, [x24,2052] @@ -9345,14 +9640,14 @@ FlashInit: str wzr, [x24,2048] str wzr, [x24,2048] str wzr, [x24,2048] -.L1365: +.L1413: mov w0, w25 bl NandcFlashDeCs ldrb w2, [x20] sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L1366 + bhi .L1414 ldr x0, [x29,104] add w1, w22, 1 ldrb w3, [x20,1] @@ -9361,53 +9656,56 @@ FlashInit: ldrb w6, [x20,4] ldrb w7, [x20,5] bl printk -.L1366: - cbnz w22, .L1367 +.L1414: + cbnz w22, .L1415 ldrb w0, [x26] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L1421 + bhi .L1470 ldrb w0, [x26,1] cmp w0, 255 - beq .L1421 -.L1367: + beq .L1470 +.L1415: ldrb w0, [x20] cmp w0, 181 - bne .L1369 + bne .L1417 mov w0, 44 strb w0, [x20] -.L1369: +.L1417: add w22, w22, 1 add x23, x23, 16 cmp w22, 4 add x20, x20, 8 - bne .L1370 + bne .L1418 add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,2132] cmp w1, 173 - beq .L1371 - ldr w0, [x0,2376] + beq .L1419 + ldr w0, [x0,2384] bl NandcSetDdrMode -.L1371: +.L1419: add x20, x19, :lo12:.LANCHOR0 mov w1, 0 - add x0, x20, 1272 mov w2, 852 + add x0, x20, 1272 bl ftl_memset strb wzr, [x20,80] adrp x1, .LANCHOR1 - ldr w4, [x20,2384] + ldr w4, [x20,2392] + mov w2, 12336 add x0, x1, :lo12:.LANCHOR1 + movk w2, 0x5638, lsl 16 add x0, x0, 472 - str x0, [x20,1256] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w4, w0 - bne .L1372 + cmp w4, w2 + str x0, [x20,88] + bne .L1420 + ldrb w0, [x0,19] + cmp w0, 50 + beq .L1420 mov w0, 1 - str w0, [x20,2368] -.L1372: + str w0, [x20,2376] +.L1420: add x3, x19, :lo12:.LANCHOR0 add x3, x3, 2132 ldrb w0, [x3,1] @@ -9419,16 +9717,16 @@ FlashInit: cset w2, eq orr w2, w5, w2 orr w2, w6, w2 - cbnz w2, .L1373 + cbnz w2, .L1421 and w2, w0, -3 cmp w2, 209 - beq .L1373 + beq .L1421 cmp w0, 220 - bne .L1374 + bne .L1422 ldrb w2, [x3,3] cmp w2, 149 - bne .L1374 -.L1373: + bne .L1422 +.L1421: add x2, x19, :lo12:.LANCHOR0 add x3, x21, :lo12:.LANCHOR4 mov w7, 16 @@ -9436,410 +9734,430 @@ FlashInit: add x8, x2, 2132 strb w7, [x2,73] strb w5, [x2,72] - strb w7, [x3,1634] + strb w7, [x3,1642] ldrb w7, [x2,2132] add x2, x1, :lo12:.LANCHOR1 cmp w7, 152 - strb w7, [x2,3329] - strb w0, [x2,3330] - bne .L1376 + strb w7, [x2,3425] + strb w0, [x2,3426] + bne .L1424 ldrsb w2, [x8,4] - tbnz w2, #31, .L1377 + tbnz w2, #31, .L1425 mov w2, 24 - strb w2, [x3,1634] -.L1376: + strb w2, [x3,1642] +.L1424: cmp w4, 2049 - beq .L1424 + beq .L1473 mov w2, 12336 movk w2, 0x5638, lsl 16 cmp w4, w2 - bne .L1379 -.L1424: + bne .L1427 +.L1473: add x2, x21, :lo12:.LANCHOR4 mov w3, 16 - strb w3, [x2,1634] -.L1379: - cbz w6, .L1381 + strb w3, [x2,1642] +.L1427: + cbz w6, .L1429 add x0, x1, :lo12:.LANCHOR1 mov w2, 2048 - strh w2, [x0,3342] + strh w2, [x0,3438] mov w2, -38 - b .L1465 -.L1381: + b .L1517 +.L1429: cmp w0, 220 - bne .L1383 + bne .L1431 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3342] + strh w2, [x0,3438] mov w2, -36 -.L1465: - strb w2, [x0,3330] - b .L1382 -.L1383: +.L1517: + strb w2, [x0,3426] + b .L1430 +.L1431: cmp w0, 211 - bne .L1382 + bne .L1430 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3342] + strh w2, [x0,3438] mov w2, 2 - strb w2, [x0,3341] -.L1382: + strb w2, [x0,3437] +.L1430: add x20, x1, :lo12:.LANCHOR1 add x0, x19, :lo12:.LANCHOR0 - add x1, x20, 3200 + add x1, x20, 3296 mov w2, 32 - add x0, x0, 88 + add x0, x0, 96 bl ftl_memcpy add x0, x20, 472 - add x1, x20, 3328 + add x1, x20, 3424 mov w2, 32 bl ftl_memcpy -.L1374: +.L1422: add x20, x19, :lo12:.LANCHOR0 ldrb w0, [x20,72] - cbnz w0, .L1384 + cbnz w0, .L1432 bl FlashLoadPhyInfoInRam - cbnz w0, .L1386 - ldr x0, [x20,1256] + cbnz w0, .L1434 + ldr x0, [x20,88] ldrb w1, [x0,17] and w0, w1, 7 - strb w0, [x20,2356] - tbnz x1, 0, .L1386 + strb w0, [x20,2357] + tbnz x1, 0, .L1434 mov w1, 1 - strb w1, [x20,2372] + strb w1, [x20,2380] bl FlashSetInterfaceMode - ldrb w0, [x20,2356] + ldrb w0, [x20,2357] bl NandcSetMode -.L1386: +.L1434: add x20, x19, :lo12:.LANCHOR0 - ldr x0, [x20,1256] + ldr x0, [x20,88] ldrb w0, [x0,26] - strb w0, [x20,196] + strb w0, [x20,204] bl FlashLoadPhyInfo - cbz w0, .L1384 - ldr w0, [x20,2376] - cbz w0, .L1389 + cbz w0, .L1432 + ldr w0, [x20,2384] + cbz w0, .L1437 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L1462 -.L1389: - ldrb w0, [x20,2356] + b .L1514 +.L1437: + ldrb w0, [x20,2357] bl FlashSetInterfaceMode - ldrb w0, [x20,2356] -.L1462: + ldrb w0, [x20,2357] +.L1514: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L1384 + cbz w0, .L1432 mov w0, 1 add x20, x19, :lo12:.LANCHOR0 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - ldr x1, [x20,1256] - adrp x0, .LC96 - add x0, x0, :lo12:.LC96 + ldr x1, [x20,88] + adrp x0, .LC97 + add x0, x0, :lo12:.LC97 ldrh w1, [x1,14] bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L1438 + beq .L1488 bl FlashDieInfoInit - ldr x0, [x20,1256] + ldr x0, [x20,88] ldrb w0, [x0,19] bl FlashGetReadRetryDefault - adrp x1, .LANCHOR2+3550 - ldr x0, [x20,1256] - ldrh w1, [x1,#:lo12:.LANCHOR2+3550] + adrp x1, .LANCHOR2+3558 + ldr x0, [x20,88] + ldrh w1, [x1,#:lo12:.LANCHOR2+3558] ldrb w2, [x0,9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L1391 + blt .L1439 ldrh w1, [x0,14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L1392 -.L1391: + bge .L1440 +.L1439: ldrh w1, [x0,14] and w1, w1, -256 strh w1, [x0,14] -.L1392: +.L1440: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2356] + ldrb w0, [x0,2357] tst w0, 6 - beq .L1393 + beq .L1441 bl FlashSavePhyInfo + mov w0, 0 + bl flash_enter_slc_mode add x1, x21, :lo12:.LANCHOR4 mov w0, 0 - ldr w1, [x1,1624] + ldr w1, [x1,1632] bl FlashDdrParaScan -.L1393: + mov w0, 0 + bl flash_exit_slc_mode +.L1441: bl FlashSavePhyInfo -.L1384: +.L1432: add x20, x19, :lo12:.LANCHOR0 add x22, x21, :lo12:.LANCHOR4 - ldr x2, [x20,1256] - str xzr, [x22,1608] + ldr x2, [x20,88] + str xzr, [x22,1616] ldrb w0, [x2,26] - strb w0, [x20,196] + strb w0, [x20,204] ldrh w0, [x2,16] ldrh w3, [x2,10] ubfx x1, x0, 7, 1 strb w1, [x20,80] ubfx x1, x0, 3, 1 - strb w1, [x22,1673] + strb w1, [x22,1681] ubfx x1, x0, 4, 1 - strb w1, [x20,2457] + strb w1, [x20,2368] ldrb w1, [x2,12] ubfx x0, x0, 8, 3 - strb w0, [x20,2356] + strb w0, [x20,2357] ldrb w0, [x2,18] sdiv w1, w3, w1 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr x0, [x20,1256] + ldr x0, [x20,88] ldrh w1, [x0,16] - tbz x1, 6, .L1395 + tbz x1, 6, .L1443 ldrb w0, [x0,19] ldrb w1, [x20,1274] - strb w1, [x22,1633] + strb w1, [x22,1641] sub w1, w0, #1 ldrb w2, [x20,1273] uxtb w1, w1 - strb w0, [x20,120] - strb w2, [x20,121] + strb w0, [x20,128] + strb w2, [x20,129] cmp w1, 7 - bhi .L1396 + bhi .L1444 adrp x1, HynixReadRetrial cmp w0, 8 add x1, x1, :lo12:HynixReadRetrial - str x1, [x22,1608] + str x1, [x22,1616] sub w1, w0, #5 cset w2, eq uxtb w1, w1 cmp w1, 1 - bls .L1425 - cbz w2, .L1397 -.L1425: + bls .L1474 + cbz w2, .L1445 +.L1474: add x1, x19, :lo12:.LANCHOR0 mov w3, 1 - str w3, [x1,2448] -.L1397: + str w3, [x1,2456] +.L1445: cmp w0, 7 add x1, x19, :lo12:.LANCHOR0 - beq .L1423 - cbnz w2, .L1423 + beq .L1472 + cbnz w2, .L1472 add x1, x1, 1292 - b .L1400 -.L1423: + b .L1448 +.L1472: add x1, x1, 1300 -.L1400: +.L1448: mov x2, 0 mov w3, w2 -.L1402: +.L1450: ldrsb w4, [x1,x2] add x2, x2, 1 cmp w4, wzr csinc w3, w3, w3, ne cmp x2, 32 - bne .L1402 + bne .L1450 cmp w3, 27 - bls .L1395 + bls .L1443 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1395 -.L1396: + b .L1443 +.L1444: sub w1, w0, #17 uxtb w1, w1 cmp w1, 2 - bhi .L1404 + bhi .L1452 adrp x1, MicronReadRetrial cmp w0, 19 add x1, x1, :lo12:MicronReadRetrial - str x1, [x22,1608] - beq .L1405 + str x1, [x22,1616] + beq .L1453 mov w0, 7 - b .L1463 -.L1405: + b .L1515 +.L1453: mov w0, 15 -.L1463: - strb w0, [x22,1633] - b .L1395 -.L1404: +.L1515: + strb w0, [x22,1641] + b .L1443 +.L1452: sub w1, w0, #65 uxtb w1, w1 cmp w1, 1 - bls .L1426 + bls .L1475 cmp w0, 33 - bne .L1406 -.L1426: + bne .L1454 +.L1475: add x0, x21, :lo12:.LANCHOR4 adrp x1, ToshibaReadRetrial add x1, x1, :lo12:ToshibaReadRetrial mov w2, 4 - str x1, [x0,1608] + str x1, [x0,1616] add x1, x19, :lo12:.LANCHOR0 - strb w2, [x1,121] + strb w2, [x1,129] mov w1, 7 - strb w1, [x0,1633] - b .L1395 -.L1406: + strb w1, [x0,1641] + b .L1443 +.L1454: sub w1, w0, #67 + sub w2, w0, #34 uxtb w1, w1 + uxtb w2, w2 cmp w1, 1 - sub w1, w0, #34 - cset w2, ls - uxtb w1, w1 - cmp w1, 1 - bls .L1427 - cbz w2, .L1408 -.L1427: + cset w1, ls + cmp w2, 1 + bls .L1476 + cbz w1, .L1456 +.L1476: add x3, x21, :lo12:.LANCHOR4 - adrp x1, ToshibaReadRetrial - add x1, x1, :lo12:ToshibaReadRetrial + adrp x2, ToshibaReadRetrial + add x2, x2, :lo12:ToshibaReadRetrial cmp w0, 35 - str x1, [x3,1608] - beq .L1410 + str x2, [x3,1616] + beq .L1458 cmp w0, 68 - beq .L1410 + beq .L1458 mov w0, 7 - strb w0, [x3,1633] - b .L1411 -.L1410: + strb w0, [x3,1641] + b .L1459 +.L1458: add x0, x21, :lo12:.LANCHOR4 - mov w1, 17 - strb w1, [x0,1633] -.L1411: + mov w2, 17 + strb w2, [x0,1641] +.L1459: add x0, x19, :lo12:.LANCHOR0 + cbz w1, .L1460 mov w1, 4 - cbnz w2, .L1464 + b .L1516 +.L1460: mov w1, 5 -.L1464: - strb w1, [x0,121] - b .L1395 -.L1408: +.L1516: + strb w1, [x0,129] + b .L1443 +.L1456: cmp w0, 49 - bne .L1395 + bne .L1461 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial - str x0, [x22,1608] -.L1395: + str x0, [x22,1616] + b .L1443 +.L1461: + cmp w0, 50 + bne .L1443 + adrp x0, samsung_read_retrial + str w1, [x20,2376] + add x0, x0, :lo12:samsung_read_retrial + str x0, [x22,1616] +.L1443: add x0, x19, :lo12:.LANCHOR0 mov w1, 12336 movk w1, 0x5638, lsl 16 - ldr w2, [x0,2384] + ldr w2, [x0,2392] cmp w2, w1 - bne .L1413 - ldrb w1, [x0,196] - cbz w1, .L1413 - ldr x0, [x0,1256] + bne .L1462 + ldrb w1, [x0,204] + cbz w1, .L1462 + ldr x0, [x0,88] strb wzr, [x0,18] -.L1413: +.L1462: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,2132] cmp w1, 44 - bne .L1414 - ldrb w1, [x0,2372] - cbz w1, .L1414 + bne .L1463 + ldrb w1, [x0,2380] + cbz w1, .L1463 mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L1415 - ldrb w0, [x0,196] - cbnz w0, .L1414 -.L1415: + bne .L1464 + ldrb w0, [x0,204] + cbnz w0, .L1463 +.L1464: add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,2372] + strb wzr, [x0,2380] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L1414: +.L1463: add x1, x19, :lo12:.LANCHOR0 - ldrb w0, [x1,2356] + ldrb w0, [x1,2357] tst w0, 6 - beq .L1416 - ldrb w1, [x1,2372] - cbnz w1, .L1417 - tbnz x0, 0, .L1416 -.L1417: + beq .L1465 + ldrb w1, [x1,2380] + cbnz w1, .L1466 + tbnz x0, 0, .L1465 +.L1466: mov w0, 0 add x21, x21, :lo12:.LANCHOR4 bl flash_enter_slc_mode - ldr w1, [x21,1624] + ldr w1, [x21,1632] mov w0, 0 bl FlashDdrParaScan mov w0, 0 bl flash_exit_slc_mode -.L1416: +.L1465: add x19, x19, :lo12:.LANCHOR0 mov w20, 16 - ldr x0, [x19,1256] + ldr x0, [x19,88] ldrb w0, [x0,20] bl FlashBchSel adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 3888 + add x0, x0, 3896 bl FlashReadIdbDataRaw strb w20, [x19,73] mov w0, 18928 movk w0, 0x2, lsl 16 bl FlashTimingCfg - ldr x1, [x19,1256] + ldr x1, [x19,88] ldrb w2, [x1,12] - strh w2, [x19,176] + strh w2, [x19,184] ldrh w4, [x1,14] ldrb w2, [x1,7] - str w2, [x19,172] - ldr w2, [x19,2132] - str w2, [x19,168] - ldrb w2, [x19,2357] - strh w2, [x19,178] + str w2, [x19,180] + ldrb w2, [x19,2133] + lsl w3, w2, w20 + orr w2, w3, w2, lsl 8 + ldrb w3, [x19,2132] + orr w2, w2, w3 + ldrb w3, [x19,2135] + orr w2, w2, w3, lsl 24 + str w2, [x19,176] + ldrb w2, [x19,2358] + strh w2, [x19,186] ldrb w2, [x1,13] - strh w2, [x19,180] - strh w4, [x19,182] + strh w2, [x19,188] + strh w4, [x19,190] ldrh w2, [x1,10] - strh w2, [x19,184] + strh w2, [x19,192] ldrb w3, [x1,12] ldrh w2, [x1,10] sdiv w2, w2, w3 - strh w2, [x19,186] + strh w2, [x19,194] ldrb w3, [x1,9] - strh w3, [x19,188] + strh w3, [x19,196] ldrh w5, [x1,10] ldrb w2, [x1,9] mul w2, w2, w5 mov w5, 512 - strh w5, [x19,192] + strh w5, [x19,200] ldrb w5, [x19,73] - strh w5, [x19,194] + strh w5, [x19,202] uxth w2, w2 ldrb w5, [x19,72] - strh w2, [x19,190] + strh w2, [x19,198] cmp w5, 1 - bne .L1419 + bne .L1468 lsl w2, w2, 1 lsr w4, w4, 1 lsl w3, w3, 1 - strh w2, [x19,190] + strh w2, [x19,198] strb w20, [x19,73] mov w2, 8 - strh w4, [x19,182] - strh w3, [x19,188] - strh w2, [x19,194] -.L1419: + strh w4, [x19,190] + strh w3, [x19,196] + strh w2, [x19,202] +.L1468: ldrb w0, [x1,20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 - b .L1438 -.L1421: + b .L1488 +.L1470: mov w0, -2 - b .L1438 -.L1377: - strb w5, [x3,1672] - b .L1376 -.L1438: + b .L1488 +.L1425: + strb w5, [x3,1680] + b .L1424 +.L1488: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9863,53 +10181,55 @@ FlashPageProgMsbFFData: stp x23, x24, [sp,48] stp x25, x26, [sp,64] mov x23, x2 - ldr x3, [x0,1256] - ldrb w4, [x0,196] + ldr x3, [x0,88] + ldrb w4, [x0,204] ldrb w3, [x3,19] - cbz w4, .L1467 - ldr w0, [x0,2368] - cbnz w0, .L1466 -.L1467: + cbz w4, .L1519 + ldr w0, [x0,2376] + cbnz w0, .L1518 +.L1519: sub w2, w3, #5 uxtb w2, w2 cmp w2, 2 - bls .L1468 + bls .L1520 + cmp w3, 50 + beq .L1520 + sub w2, w3, #19 + and w2, w2, -17 + uxtb w2, w2 + cbz w2, .L1520 cmp w3, 68 - beq .L1468 - sub w3, w3, #19 - and w3, w3, -17 - uxtb w3, w3 - cbnz w3, .L1466 -.L1468: + bne .L1518 +.L1520: adrp x20, .LANCHOR2 mov w24, w1 add x20, x20, :lo12:.LANCHOR2 mov w25, 65535 - add x20, x20, 1500 + add x20, x20, 1508 adrp x26, .LANCHOR4 -.L1470: +.L1523: add x0, x23, :lo12:.LANCHOR0 - ldr x0, [x0,1256] + ldr x0, [x0,88] ldrh w0, [x0,10] cmp w0, w19 - bls .L1466 + bls .L1518 ldrh w0, [x20,w19,sxtw 1] cmp w0, w25 - bne .L1466 + bne .L1518 add x22, x26, :lo12:.LANCHOR4 mov w1, 255 mov w2, 32768 - ldr x0, [x22,1640] + ldr x0, [x22,1648] bl ftl_memset - ldr x2, [x22,1640] + ldr x2, [x22,1648] add w1, w19, w24 mov w0, w21 add w19, w19, 1 mov x3, x2 uxth w19, w19 bl FlashProgPage - b .L1470 -.L1466: + b .L1523 +.L1518: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9931,21 +10251,21 @@ FlashReadSlc2KPages: mov x19, x0 add x0, x23, :lo12:.LANCHOR0 str x0, [x29,120] - adrp x0, .LC97 + adrp x0, .LC98 str w2, [x29,116] - add x0, x0, :lo12:.LC97 + add x0, x0, :lo12:.LC98 str x0, [x29,104] stp x25, x26, [sp,64] - adrp x0, .LC99 + adrp x0, .LC100 ldrb w25, [x1,#:lo12:.LANCHOR1+481] stp x21, x22, [sp,32] - add x0, x0, :lo12:.LC99 + add x0, x0, :lo12:.LC100 mov w22, 0 stp x27, x28, [sp,80] str x0, [x29,96] -.L1479: +.L1535: cmp w22, w24 - beq .L1543 + beq .L1599 ldr w1, [x29,116] sub w4, w24, w22 mov x0, x19 @@ -9955,13 +10275,13 @@ FlashReadSlc2KPages: bl LogAddr2PhyAddr ldr x1, [x29,120] ldr w0, [x29,136] - ldrb w1, [x1,2357] + ldrb w1, [x1,2358] cmp w0, w1 - bcc .L1480 + bcc .L1536 mov w0, -1 str w0, [x19] - b .L1481 -.L1480: + b .L1537 +.L1536: ldr x1, [x29,120] add x0, x1, x0, uxtw ldrb w20, [x0,2360] @@ -9972,7 +10292,7 @@ FlashReadSlc2KPages: bl NandcWaitFlashReady mov w0, w20 bl NandcFlashCs -.L1482: +.L1538: ldr w1, [x29,140] mov w0, w20 bl FlashReadCmd @@ -9986,25 +10306,25 @@ FlashReadSlc2KPages: bl NandcXferData mov w26, w0 add x0, x27, :lo12:.LANCHOR4 - ldrb w0, [x0,1672] - cbz w0, .L1483 + ldrb w0, [x0,1680] + cbz w0, .L1539 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w26, w26, w28, ls -.L1483: +.L1539: cmn w26, #1 - bne .L1484 + bne .L1540 cmp w23, 9 - bhi .L1484 + bhi .L1540 add w23, w23, 1 - b .L1482 -.L1484: + b .L1538 +.L1540: cmp w23, wzr mov w27, 256 csel w26, w26, w27, eq mov w23, 0 -.L1486: +.L1542: add x0, x21, :lo12:.LANCHOR0 ldr w1, [x29,140] ldr w2, [x0,76] @@ -10028,20 +10348,20 @@ FlashReadSlc2KPages: mov w28, w0 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1672] - cbz w0, .L1489 + ldrb w0, [x0,1680] + cbz w0, .L1545 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w28, w28, w27, ls -.L1489: +.L1545: cmn w28, #1 - bne .L1490 + bne .L1546 cmp w23, 9 - bhi .L1490 + bhi .L1546 add w23, w23, 1 - b .L1486 -.L1490: + b .L1542 +.L1546: cmp w23, wzr mov w0, w20 mov w27, 256 @@ -10050,63 +10370,63 @@ FlashReadSlc2KPages: add x0, x21, :lo12:.LANCHOR0 cmp w28, w26 csel w28, w28, w26, cs - ldrb w0, [x0,2456] + ldrb w0, [x0,2464] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L1492 + bls .L1548 cmn w28, #1 csel w28, w28, w27, eq -.L1492: +.L1548: cmp w28, 256 - beq .L1503 + beq .L1559 cmn w28, #1 - bne .L1493 -.L1503: + bne .L1549 +.L1559: str w28, [x19] - b .L1495 -.L1493: + b .L1551 +.L1549: str wzr, [x19] -.L1495: +.L1551: ldr x0, [x19,16] - cbz x0, .L1496 + cbz x0, .L1552 ldr w1, [x0,12] cmn w1, #1 - bne .L1496 + bne .L1552 ldr w1, [x0,8] cmn w1, #1 - bne .L1496 + bne .L1552 ldr w0, [x0] cmn w0, #1 - beq .L1496 + beq .L1552 str w1, [x19] -.L1496: +.L1552: ldr w3, [x19] cmn w3, #1 - bne .L1481 + bne .L1537 add x21, x21, :lo12:.LANCHOR0 ldr w1, [x19,4] ldr x0, [x29,104] - ldrb w2, [x21,2456] + ldrb w2, [x21,2464] bl printk ldr x1, [x19,8] - cbz x1, .L1498 - adrp x0, .LC98 + cbz x1, .L1554 + adrp x0, .LC99 mov w2, 4 - add x0, x0, :lo12:.LC98 + add x0, x0, :lo12:.LC99 mov w3, 8 bl rknand_print_hex -.L1498: +.L1554: ldr x1, [x19,16] - cbz x1, .L1481 + cbz x1, .L1537 mov w2, 4 ldr x0, [x29,96] mov w3, w2 bl rknand_print_hex -.L1481: +.L1537: add w22, w22, 1 add x19, x19, 56 - b .L1479 -.L1543: + b .L1535 +.L1599: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10138,24 +10458,24 @@ FlashReadPages: ldrb w23, [x3,72] str w2, [x29,140] str w4, [x29,136] - cbz w23, .L1584 + cbz w23, .L1640 bl FlashReadSlc2KPages - b .L1633 -.L1584: - adrp x0, .LC97 + b .L1689 +.L1640: + adrp x0, .LC98 mov w24, w23 - add x0, x0, :lo12:.LC97 + add x0, x0, :lo12:.LC98 str x0, [x29,128] - adrp x0, .LC99 - add x0, x0, :lo12:.LC99 - str x0, [x29,120] adrp x0, .LC100 add x0, x0, :lo12:.LC100 + str x0, [x29,120] + adrp x0, .LC101 + add x0, x0, :lo12:.LC101 str x0, [x29,112] -.L1545: +.L1601: ldr w0, [x29,144] cmp w24, w0 - bcs .L1635 + bcs .L1691 mov w27, 56 ldr w0, [x29,144] ldr w1, [x29,140] @@ -10170,30 +10490,30 @@ FlashReadPages: add x1, x22, :lo12:.LANCHOR0 mov w20, w0 ldr w0, [x29,168] - ldrb w2, [x1,2357] + ldrb w2, [x1,2358] cmp w0, w2 - bcc .L1547 + bcc .L1603 mov w0, -1 str w0, [x26,x27] - b .L1548 -.L1547: + b .L1604 +.L1603: add x0, x1, x0, uxtw adrp x25, .LANCHOR4 ldrb w19, [x0,2360] add x0, x25, :lo12:.LANCHOR4 str x1, [x29,152] - ldrb w0, [x0,1673] + ldrb w0, [x0,1681] cmp w0, wzr mov w0, w19 csel w20, w20, wzr, ne bl NandcWaitFlashReady ldr x1, [x29,152] - ldr x0, [x1,1256] + ldr x0, [x1,88] ldrb w0, [x0,19] sub w2, w0, #1 uxtb w2, w2 cmp w2, 7 - bhi .L1550 + bhi .L1606 sub w0, w0, #7 add x1, x1, 1272 sxtw x4, w19 @@ -10201,19 +10521,19 @@ FlashReadPages: uxtb w0, w0 cmp w0, 1 ldrb w3, [x1,12] - bhi .L1551 + bhi .L1607 ldrb w3, [x1,20] -.L1551: +.L1607: add x2, x22, :lo12:.LANCHOR0 add x4, x2, x4 ldrb w0, [x4,2128] cmp w0, w3 - beq .L1550 + beq .L1606 ldrb w1, [x2,1273] mov w0, w19 add x2, x2, 1276 bl HynixSetRRPara -.L1550: +.L1606: mov w0, w19 bl NandcFlashCs ldr w0, [x29,140] @@ -10221,38 +10541,38 @@ FlashReadPages: cset w0, eq orr w0, w0, w28, lsr 31 str w0, [x29,152] - cbz w0, .L1552 + cbz w0, .L1608 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbz w0, .L1552 + ldrb w0, [x0,204] + cbz w0, .L1608 mov w0, w19 bl flash_enter_slc_mode - b .L1553 -.L1552: + b .L1609 +.L1608: mov w0, w19 bl flash_exit_slc_mode -.L1553: +.L1609: cmp w19, 255 ldr w1, [x29,172] - bne .L1591 + bne .L1647 cmn w1, #1 cset w0, ne - cbz w0, .L1585 -.L1591: - cbz w20, .L1557 + cbz w0, .L1641 +.L1647: + cbz w20, .L1613 add x0, x22, :lo12:.LANCHOR0 ldr w2, [x0,76] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L1558 -.L1557: + b .L1614 +.L1613: mov w0, w19 bl FlashReadCmd - b .L1558 -.L1585: + b .L1614 +.L1641: mov w20, w0 -.L1555: +.L1611: ldrb w2, [x29,148] mov w0, w19 ldr x3, [x21,8] @@ -10261,15 +10581,15 @@ FlashReadPages: bl NandcXferData cmn w0, #1 mov w28, w0 - bne .L1559 + bne .L1615 add x0, x22, :lo12:.LANCHOR0 ldrb w1, [x0,80] - cbz w1, .L1559 + cbz w1, .L1615 strb wzr, [x0,80] mov w20, 0 - b .L1553 -.L1559: - cbz w20, .L1560 + b .L1609 +.L1615: + cbz w20, .L1616 add x0, x22, :lo12:.LANCHOR0 ldr w1, [x29,172] ldr w2, [x0,76] @@ -10289,23 +10609,23 @@ FlashReadPages: cmn w0, #1 mov w23, w0 csel w20, w20, wzr, ne -.L1560: +.L1616: mov w0, w19 bl NandcFlashDeCs add x6, x22, :lo12:.LANCHOR0 ldrb w0, [x29,136] cmn w28, #1 strb w0, [x6,80] - bne .L1567 - ldrb w0, [x6,2372] - cbnz w0, .L1562 -.L1566: + bne .L1623 + ldrb w0, [x6,2380] + cbnz w0, .L1618 +.L1622: add x0, x25, :lo12:.LANCHOR4 - ldr x20, [x0,1608] - cbnz x20, .L1563 - b .L1636 -.L1562: - ldr x0, [x6,128] + ldr x20, [x0,1616] + cbnz x20, .L1619 + b .L1692 +.L1618: + ldr x0, [x6,136] mov w4, 1 ldr w1, [x29,172] ldr x2, [x21,8] @@ -10316,18 +10636,18 @@ FlashReadPages: bl FlashDdrTunningRead cmn w0, #1 mov w28, w0 - beq .L1565 + beq .L1621 ldr x6, [x29,104] - ldrb w0, [x6,2456] + ldrb w0, [x6,2464] cmp w28, w0, lsr 1 - bls .L1587 -.L1565: + bls .L1643 +.L1621: lsr w0, w20, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L1566 - b .L1587 -.L1563: + beq .L1622 + b .L1643 +.L1619: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -10336,20 +10656,20 @@ FlashReadPages: cmn w0, #1 mov w28, w0 mov w20, 0 - bne .L1568 + bne .L1624 add x2, x22, :lo12:.LANCHOR0 - ldr x0, [x2,1256] + ldr x0, [x2,88] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 7 - bhi .L1569 + bhi .L1625 ldrb w1, [x2,1273] mov w0, w19 add x2, x2, 1276 mov w3, w20 bl HynixSetRRPara -.L1569: +.L1625: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -10362,127 +10682,127 @@ FlashReadPages: ldr w1, [x21,4] mov w3, w28 str x4, [x29,104] - ldrb w2, [x4,2456] + ldrb w2, [x4,2464] bl printk cmn w28, #1 ldr x4, [x29,104] - bne .L1568 - ldrb w0, [x4,196] - cbz w0, .L1568 + bne .L1624 + ldrb w0, [x4,204] + cbz w0, .L1624 ldr w0, [x29,152] - cbz w0, .L1570 + cbz w0, .L1626 mov w0, w19 bl flash_enter_slc_mode - b .L1571 -.L1570: + b .L1627 +.L1626: mov w0, w19 bl flash_exit_slc_mode -.L1571: +.L1627: add x0, x25, :lo12:.LANCHOR4 ldr w1, [x29,172] ldr x2, [x21,8] mov w20, 0 ldr x3, [x21,16] - ldr x4, [x0,1608] + ldr x4, [x0,1616] mov w0, w19 blr x4 mov w28, w0 - b .L1568 -.L1636: + b .L1624 +.L1692: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] ldr x3, [x21,16] bl FlashReadRawPage mov w28, w0 - b .L1568 -.L1587: + b .L1624 +.L1643: mov w20, 0 -.L1567: +.L1623: add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,2456] + ldrb w0, [x0,2464] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L1568 + bls .L1624 add x0, x25, :lo12:.LANCHOR4 - ldr x0, [x0,1608] + ldr x0, [x0,1616] cmp x0, xzr mov w0, 256 csel w28, w28, w0, ne -.L1568: +.L1624: cmp w28, 256 - beq .L1592 + beq .L1648 cmn w28, #1 - bne .L1572 -.L1592: + bne .L1628 +.L1648: str w28, [x26,x27] - b .L1574 -.L1572: + b .L1630 +.L1628: str wzr, [x26,x27] -.L1574: +.L1630: ldr w3, [x26,x27] cmn w3, #1 - bne .L1576 + bne .L1632 add x2, x22, :lo12:.LANCHOR0 ldr w1, [x21,4] ldr x0, [x29,128] - ldrb w2, [x2,2456] + ldrb w2, [x2,2464] bl printk ldr x1, [x21,16] - cbz x1, .L1576 + cbz x1, .L1632 mov w2, 4 ldr x0, [x29,120] mov w3, w2 bl rknand_print_hex -.L1576: - cbz w20, .L1578 +.L1632: + cbz w20, .L1634 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,2456] + ldrb w0, [x0,2464] add w0, w0, w0, lsl 1 cmp w23, w0, lsr 2 - bls .L1579 + bls .L1635 add x25, x25, :lo12:.LANCHOR4 - ldr x0, [x25,1608] + ldr x0, [x25,1616] cmp x0, xzr mov w0, 256 csel w23, w23, w0, ne -.L1579: +.L1635: add w0, w24, 1 mov w1, 56 cmp w23, 256 umull x0, w0, w1 - beq .L1593 + beq .L1649 cmn w23, #1 - bne .L1580 -.L1593: + bne .L1636 +.L1649: str w23, [x26,x0] - b .L1578 -.L1580: + b .L1634 +.L1636: str wzr, [x26,x0] -.L1578: +.L1634: ldr w0, [x29,152] add w24, w24, w20 - cbz w0, .L1548 + cbz w0, .L1604 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbz w0, .L1548 + ldrb w0, [x0,204] + cbz w0, .L1604 mov w0, w19 bl flash_exit_slc_mode -.L1548: +.L1604: add w24, w24, 1 - b .L1545 -.L1635: + b .L1601 +.L1691: mov w0, 0 - b .L1633 -.L1558: + b .L1689 +.L1614: mov w0, w19 bl NandcWaitFlashReady - cbz w20, .L1555 + cbz w20, .L1611 ldr w1, [x29,172] mov w0, w19 bl FlashReadDpDataOutCmd - b .L1555 -.L1633: + b .L1611 +.L1689: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10507,37 +10827,37 @@ FlashLoadFactorBbt: stp x23, x24, [sp,48] adrp x23, .LANCHOR4 mov w27, -1 - ldrh w1, [x0,180] + ldrh w1, [x0,188] add x19, x23, :lo12:.LANCHOR4 - ldrh w21, [x0,182] - add x0, x19, 1680 + ldrh w21, [x0,190] + add x0, x19, 1688 mov w28, 0 - adrp x26, .LC101 - add x26, x26, :lo12:.LC101 + adrp x26, .LC102 + add x26, x26, :lo12:.LC102 mul w21, w1, w21 mov w1, 0 uxth w21, w21 bl ftl_memset add w25, w21, w27 - ldr x0, [x19,1648] + ldr x0, [x19,1656] str x0, [x29,152] mov w19, w28 sub w0, w21, #12 str xzr, [x29,144] uxth w25, w25 str w0, [x29,124] -.L1638: +.L1694: add x1, x22, :lo12:.LANCHOR0 - ldrb w1, [x1,2357] + ldrb w1, [x1,2358] cmp w1, w19 - bls .L1648 + bls .L1704 mul w3, w19, w21 mov w20, w25 mov w4, 61664 -.L1639: +.L1695: ldr w0, [x29,124] cmp w20, w0 - ble .L1641 + ble .L1697 add w1, w3, w20 add x0, x29, 136 lsl w1, w1, 10 @@ -10551,13 +10871,13 @@ FlashLoadFactorBbt: ldr x3, [x29,112] cmn w0, #1 ldr x4, [x29,104] - beq .L1640 + beq .L1696 add x24, x23, :lo12:.LANCHOR4 - ldr x0, [x24,1648] + ldr x0, [x24,1656] ldrh w0, [x0] cmp w0, w4 - bne .L1640 - add x24, x24, 1680 + bne .L1696 + add x24, x24, 1688 mov x0, x26 mov w1, w19 mov w2, w20 @@ -10565,20 +10885,20 @@ FlashLoadFactorBbt: bl printk strh w20, [x24,w19,sxtw 1] uxth w28, w28 - b .L1641 -.L1640: + b .L1697 +.L1696: sub w20, w20, #1 uxth w20, w20 - b .L1639 -.L1641: + b .L1695 +.L1697: add x1, x22, :lo12:.LANCHOR0 add w19, w19, 1 uxtb w19, w19 - ldrb w1, [x1,2357] + ldrb w1, [x1,2358] cmp w1, w28 csel w27, w27, wzr, ne - b .L1638 -.L1648: + b .L1694 +.L1704: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10601,18 +10921,17 @@ FlashProgSlc2KPages: stp x25, x26, [sp,64] adrp x22, .LANCHOR0 ldrb w26, [x1,#:lo12:.LANCHOR1+481] - stp x27, x28, [sp,80] stp x19, x20, [sp,16] + str x27, [sp,80] mov w24, w2 - mov w27, w3 mov x19, x0 mov x21, x0 mov w25, 0 add x22, x22, :lo12:.LANCHOR0 - mov w28, -1 -.L1650: + mov w27, -1 +.L1706: cmp w25, w23 - beq .L1679 + beq .L1732 mov w1, w24 sub w4, w23, w25 mov x0, x21 @@ -10620,12 +10939,12 @@ FlashProgSlc2KPages: add x3, x29, 100 bl LogAddr2PhyAddr ldr w0, [x29,100] - ldrb w1, [x22,2357] + ldrb w1, [x22,2358] cmp w0, w1 - bcc .L1651 - str w28, [x21] - b .L1652 -.L1651: + bcc .L1707 + str w27, [x21] + b .L1708 +.L1707: add x0, x22, x0, uxtw ldrb w20, [x0,2360] mov w0, w20 @@ -10680,36 +10999,35 @@ FlashProgSlc2KPages: ldr w1, [x29,96] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1655 - str w28, [x21] -.L1655: + tbz x0, 0, .L1711 + str w27, [x21] +.L1711: mov w0, w20 bl NandcFlashDeCs -.L1652: +.L1708: add w25, w25, 1 add x21, x21, 56 - b .L1650 -.L1679: + b .L1706 +.L1732: + adrp x25, .LC107 + adrp x26, .LC106 + adrp x27, .LC105 mov w21, 0 - cbz w27, .L1677 - adrp x25, .LC105 - adrp x26, .LC104 - adrp x27, .LC103 - add x25, x25, :lo12:.LC105 - add x26, x26, :lo12:.LC104 - add x27, x27, :lo12:.LC103 -.L1678: + add x25, x25, :lo12:.LC107 + add x26, x26, :lo12:.LC106 + add x27, x27, :lo12:.LC105 +.L1713: cmp w21, w23 - beq .L1677 + beq .L1733 ldr w0, [x19] cmn w0, #1 - bne .L1658 - adrp x0, .LC102 + bne .L1714 + adrp x0, .LC103 ldr w1, [x19,4] - add x0, x0, :lo12:.LC102 + add x0, x0, :lo12:.LC103 bl printk - b .L1659 -.L1658: + b .L1715 +.L1714: adrp x20, .LANCHOR4 sub w4, w23, w21 add x22, x20, :lo12:.LANCHOR4 @@ -10718,68 +11036,77 @@ FlashProgSlc2KPages: add x2, x29, 96 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,1656] + ldr x0, [x22,1664] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,1664] + ldr x0, [x22,1672] str wzr, [x0] add x0, x29, 104 bl memcpy - ldr x0, [x22,1656] + ldr x0, [x22,1664] mov w1, 1 str x0, [x29,112] mov w2, w24 - ldr x0, [x22,1664] + ldr x0, [x22,1672] str x0, [x29,120] add x0, x29, 104 bl FlashReadPages ldr w22, [x29,104] cmn w22, #1 - bne .L1660 + bne .L1716 + adrp x0, .LC104 + ldr w1, [x19,4] + add x0, x0, :lo12:.LC104 + bl printk + str w22, [x19] +.L1716: + ldr w22, [x29,104] + cmp w22, 256 + bne .L1717 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1660: +.L1717: ldr x0, [x19,16] - cbz x0, .L1661 + cbz x0, .L1718 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR4 - ldr x0, [x0,1664] + ldr x0, [x0,1672] ldr w3, [x0] cmp w2, w3 - beq .L1661 + beq .L1718 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1661: +.L1718: ldr x0, [x19,8] - cbz x0, .L1659 + cbz x0, .L1715 add x20, x20, :lo12:.LANCHOR4 ldr w2, [x0] - ldr x0, [x20,1656] + ldr x0, [x20,1664] ldr w3, [x0] cmp w2, w3 - beq .L1659 + beq .L1715 ldr w1, [x19,4] mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1659: +.L1715: add w21, w21, 1 add x19, x19, 56 - b .L1678 -.L1677: + b .L1713 +.L1733: mov w0, 0 + ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] ldp x29, x30, [sp], 160 ret .size FlashProgSlc2KPages, .-FlashProgSlc2KPages @@ -10797,32 +11124,32 @@ FtlLoadFactoryBbt: stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x23, x24, [sp,48] - add x19, x19, 1696 + add x19, x19, 1704 adrp x22, .LANCHOR0 - ldr x1, [x0,3608] + ldr x1, [x0,3616] add x21, x22, :lo12:.LANCHOR0 - ldr x24, [x0,3656] - add x21, x21, 2616 + ldr x24, [x0,3664] + add x21, x21, 2624 str x1, [x19,8] mov w23, 0 str x24, [x19,16] mov w25, -1 mov w26, 61664 -.L1681: +.L1735: add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,2490] + ldrh w1, [x0,2494] cmp w23, w1 - bcs .L1690 - ldrh w20, [x0,2534] + bcs .L1744 + ldrh w20, [x0,2542] strh w25, [x21,12] -.L1683: +.L1737: add x0, x22, :lo12:.LANCHOR0 sub w20, w20, #1 uxth w20, w20 - ldrh w0, [x0,2534] + ldrh w0, [x0,2542] sub w1, w0, #16 cmp w20, w1 - ble .L1684 + ble .L1738 madd w0, w23, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -10832,16 +11159,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L1683 + beq .L1737 ldrh w0, [x24] cmp w0, w26 - bne .L1683 + bne .L1737 strh w20, [x21,12] -.L1684: +.L1738: add w23, w23, 1 add x21, x21, 2 - b .L1681 -.L1690: + b .L1735 +.L1744: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10864,12 +11191,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR0 - bne .L1692 - ldrh w19, [x3,2538] - b .L1693 -.L1692: - ldrh w19, [x3,2536] -.L1693: + bne .L1746 + ldrh w19, [x3,2546] + b .L1747 +.L1746: + ldrh w19, [x3,2544] +.L1747: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -10884,12 +11211,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1694 + bne .L1748 mov w22, 0 mov w25, 2 -.L1695: +.L1749: cmp w22, w19 - bgt .L1694 + bgt .L1748 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -10901,21 +11228,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1696 + bne .L1750 ldr w0, [x24,4] cmn w0, #1 - bne .L1696 + bne .L1750 ldr w0, [x29,88] cmn w0, #1 - beq .L1696 + beq .L1750 sub w19, w20, #1 sxth w19, w19 - b .L1695 -.L1696: + b .L1749 +.L1750: add w20, w20, 1 sxth w22, w20 - b .L1695 -.L1694: + b .L1749 +.L1748: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -10939,23 +11266,23 @@ FtlLoadBbt: stp x25, x26, [sp,64] add x19, x23, :lo12:.LANCHOR4 adrp x20, .LANCHOR0 - ldr x1, [x0,3608] - add x19, x19, 1696 - ldr x22, [x0,3656] + ldr x1, [x0,3616] + add x19, x19, 1704 + ldr x22, [x0,3664] mov w25, 61649 str x1, [x19,8] str x22, [x19,16] bl FtlBbtMemInit add x0, x20, :lo12:.LANCHOR0 - ldrh w21, [x0,2534] + ldrh w21, [x0,2542] sub w21, w21, #1 uxth w21, w21 -.L1703: +.L1757: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2534] + ldrh w0, [x0,2542] sub w0, w0, #48 cmp w21, w0 - ble .L1706 + ble .L1760 lsl w0, w21, 10 mov w1, 1 str w0, [x19,4] @@ -10964,7 +11291,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - bne .L1704 + bne .L1758 ldr w0, [x19,4] mov w1, 1 mov w2, w1 @@ -10972,135 +11299,135 @@ FtlLoadBbt: str w0, [x19,4] mov x0, x19 bl FlashReadPages -.L1704: +.L1758: ldr w0, [x19] cmn w0, #1 - beq .L1705 + beq .L1759 ldrh w0, [x22] cmp w0, w25 - bne .L1705 + bne .L1759 add x1, x20, :lo12:.LANCHOR0 - add x0, x1, 2616 - strh w21, [x1,2616] + add x0, x1, 2624 + strh w21, [x1,2624] ldr w1, [x22,4] str w1, [x0,8] ldrh w1, [x22,8] strh w1, [x0,4] - b .L1706 -.L1705: + b .L1760 +.L1759: sub w21, w21, #1 uxth w21, w21 - b .L1703 -.L1706: + b .L1757 +.L1760: add x21, x20, :lo12:.LANCHOR0 mov w2, 65535 mov w0, -1 - ldrh w1, [x21,2616] + ldrh w1, [x21,2624] cmp w1, w2 - beq .L1708 - ldrh w1, [x21,2620] + beq .L1762 + ldrh w1, [x21,2628] cmp w1, w2 - beq .L1710 + beq .L1764 add x25, x23, :lo12:.LANCHOR4 lsl w1, w1, 10 - add x0, x25, 1696 + add x0, x25, 1704 str w1, [x0,4] mov w1, 1 mov w2, w1 bl FlashReadPages - ldr w0, [x25,1696] + ldr w0, [x25,1704] cmn w0, #1 - beq .L1710 + beq .L1764 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1710 + bne .L1764 ldr w0, [x22,4] - ldr w1, [x21,2624] + ldr w1, [x21,2632] cmp w0, w1 - bls .L1710 - str w0, [x21,2624] - ldrh w1, [x21,2620] + bls .L1764 + str w0, [x21,2632] + ldrh w1, [x21,2628] ldrh w0, [x22,8] - strh w1, [x21,2616] - strh w0, [x21,2620] -.L1710: + strh w1, [x21,2624] + strh w0, [x21,2628] +.L1764: add x25, x20, :lo12:.LANCHOR0 mov w1, 1 add x21, x23, :lo12:.LANCHOR4 mov w26, 61649 - add x21, x21, 1696 - ldrh w0, [x25,2616] + add x21, x21, 1704 + ldrh w0, [x25,2624] bl FtlGetLastWrittenPage sxth w19, w0 add w0, w0, 1 - strh w0, [x25,2618] -.L1712: - tbnz w19, #31, .L1717 - ldrh w0, [x25,2616] + strh w0, [x25,2626] +.L1766: + tbnz w19, #31, .L1771 + ldrh w0, [x25,2624] mov w1, 1 mov w2, w1 orr w0, w19, w0, lsl 10 str w0, [x21,4] add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,3608] + ldr x0, [x0,3616] str x0, [x21,8] mov x0, x21 bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1713 + beq .L1767 ldrh w0, [x22] cmp w0, w26 - bne .L1713 -.L1717: + bne .L1767 +.L1771: add x1, x20, :lo12:.LANCHOR0 ldrh w0, [x22,10] mov w2, 65535 - strh w0, [x1,2622] + strh w0, [x1,2630] ldrh w0, [x22,12] cmp w0, w2 - bne .L1714 - b .L1715 -.L1713: + bne .L1768 + b .L1769 +.L1767: sub w19, w19, #1 sxth w19, w19 - b .L1712 -.L1714: - ldr w2, [x1,2464] + b .L1766 +.L1768: + ldr w2, [x1,2468] cmp w0, w2 - beq .L1715 - ldrh w1, [x1,2478] + beq .L1769 + ldrh w1, [x1,2482] lsr w1, w1, 2 cmp w0, w1 - bcs .L1715 + bcs .L1769 cmp w2, w1 - bcs .L1715 + bcs .L1769 bl FtlSysBlkNumInit -.L1715: +.L1769: add x20, x20, :lo12:.LANCHOR0 mov x19, 0 - add x21, x20, 2616 + add x21, x20, 2624 add x23, x23, :lo12:.LANCHOR4 -.L1718: - ldrh w0, [x20,2490] +.L1772: + ldrh w0, [x20,2494] mov w1, w19 add x19, x19, 1 cmp w1, w0 - bcs .L1736 + bcs .L1790 add x0, x24, :lo12:.LANCHOR2 - ldr x3, [x23,1704] - ldrh w2, [x0,3784] + ldr x3, [x23,1712] + ldrh w2, [x0,3792] add x0, x21, x19, lsl 3 mul w1, w1, w2 ldr x0, [x0,24] lsl w2, w2, 2 add x1, x3, x1, lsl 2 bl ftl_memcpy - b .L1718 -.L1736: + b .L1772 +.L1790: mov w0, 0 -.L1708: +.L1762: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11124,48 +11451,48 @@ FtlScanSysBlk: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - strh wzr, [x21,3856] + strh wzr, [x21,3864] mov x24, x22 - ldr w2, [x20,2564] + ldr w2, [x20,2572] mov w22, 65535 - ldr x0, [x21,3768] + ldr x0, [x21,3776] lsl w2, w2, 2 - strh wzr, [x20,2582] + strh wzr, [x20,2590] bl ftl_memset - ldr w2, [x20,2564] + ldr w2, [x20,2572] mov w1, 0 - ldr x0, [x21,3712] + ldr x0, [x21,3720] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,2556] + ldrh w2, [x20,2564] mov w1, 0 - ldr x0, [x21,3736] + ldr x0, [x21,3744] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,2556] + ldrh w2, [x20,2564] mov w1, 0 - ldr x0, [x20,2584] + ldr x0, [x20,2592] lsl w2, w2, 1 bl ftl_memset - add x0, x21, 776 + add x0, x21, 784 mov w1, 255 mov w2, 16 bl ftl_memset - ldrh w21, [x20,2476] -.L1738: + ldrh w21, [x20,2480] +.L1792: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,2478] + ldrh w0, [x1,2482] cmp w0, w21 - bls .L1779 + bls .L1833 mov x27, 0 - ldrh w5, [x1,2468] - ldrh w4, [x1,2548] + ldrh w5, [x1,2472] + ldrh w4, [x1,2556] mov w20, w27 mov x23, x1 -.L1780: +.L1834: cmp w5, w27, uxth - bls .L1813 - add x0, x23, 2496 + bls .L1867 + add x0, x23, 2504 mov w1, w21 str x4, [x29,112] str x5, [x29,120] @@ -11175,19 +11502,19 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr x5, [x29,120] ldr x4, [x29,112] - cbnz w0, .L1739 + cbnz w0, .L1793 add x2, x24, :lo12:.LANCHOR2 mov w0, 56 lsl w28, w28, 10 mov w3, 4 umull x0, w20, w0 - ldr x1, [x2,3584] + ldr x1, [x2,3592] add x1, x1, x0 str w28, [x1,4] - ldr x1, [x2,3584] + ldr x1, [x2,3592] add x0, x1, x0 - ldr x1, [x2,1392] - ldr x2, [x2,1400] + ldr x1, [x2,1400] + ldr x2, [x2,1408] str x1, [x0,8] mul w1, w20, w4 add w20, w20, 1 @@ -11195,46 +11522,46 @@ FtlScanSysBlk: uxth w20, w20 add x1, x2, x1, sxtw 2 str x1, [x0,16] -.L1739: +.L1793: add x27, x27, 1 - b .L1780 -.L1813: - cbz w20, .L1742 + b .L1834 +.L1867: + cbz w20, .L1796 add x0, x24, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 mov x23, 0 mov w27, -1 mov w28, 61604 - ldr x0, [x0,3584] + ldr x0, [x0,3592] bl FlashReadPages -.L1743: +.L1797: cmp w20, w23, uxth - bls .L1742 + bls .L1796 mov x0, 56 mul x6, x23, x0 add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,3584] + ldr x0, [x0,3592] add x1, x0, x6 ldr w0, [x0,x6] ldr w5, [x1,4] cmn w0, #1 ldr x26, [x1,16] ubfx x25, x5, 10, 16 - bne .L1745 + bne .L1799 mov w7, 16 -.L1744: +.L1798: add x8, x24, :lo12:.LANCHOR2 str x7, [x29,104] str x8, [x29,112] str x6, [x29,120] - ldr x0, [x8,3584] + ldr x0, [x8,3592] add x0, x0, x6 ldr w1, [x0,4] add w1, w1, 1 str w1, [x0,4] mov w1, 1 - ldr x0, [x8,3584] + ldr x0, [x8,3592] mov w2, w1 add x0, x0, x6 bl FlashReadPages @@ -11243,170 +11570,170 @@ FtlScanSysBlk: cmp w0, w22 ldr x6, [x29,120] ldr x7, [x29,104] - ldr x0, [x8,3584] - bne .L1746 + ldr x0, [x8,3592] + bne .L1800 str w27, [x0,x6] - b .L1745 -.L1746: + b .L1799 +.L1800: ldr w0, [x0,x6] cmn w0, #1 - bne .L1745 + bne .L1799 sub w7, w7, #1 uxth w7, w7 - cbnz w7, .L1744 -.L1745: + cbnz w7, .L1798 +.L1799: add x0, x24, :lo12:.LANCHOR2 - ldr x1, [x0,3584] + ldr x1, [x0,3592] ldr w1, [x1,x6] cmn w1, #1 - beq .L1748 - ldr w0, [x0,744] + beq .L1802 + ldr w0, [x0,752] cmn w0, #1 - beq .L1749 + beq .L1803 ldr w1, [x26,4] cmp w0, w1 - bhi .L1750 -.L1749: + bhi .L1804 +.L1803: ldr w0, [x26,4] cmn w0, #1 - beq .L1750 + beq .L1804 add x1, x24, :lo12:.LANCHOR2 add w0, w0, 1 - str w0, [x1,744] -.L1750: + str w0, [x1,752] +.L1804: ldrh w0, [x26] cmp w0, w28 - beq .L1752 - bhi .L1753 + beq .L1806 + bhi .L1807 mov w1, 61574 cmp w0, w1 - bne .L1751 + bne .L1805 add x0, x19, :lo12:.LANCHOR0 add x7, x24, :lo12:.LANCHOR2 - ldrh w6, [x0,2556] - ldrh w0, [x0,2582] + ldrh w6, [x0,2564] + ldrh w0, [x0,2590] sub w2, w6, #1 - ldr x7, [x7,3736] + ldr x7, [x7,3744] sxth x1, w2 sub w2, w2, w0 - b .L1766 -.L1753: + b .L1820 +.L1807: mov w1, 61634 cmp w0, w1 - beq .L1755 + beq .L1809 cmp w0, w22 - bne .L1751 + bne .L1805 mov w0, w25 - b .L1812 -.L1755: + b .L1866 +.L1809: add x0, x19, :lo12:.LANCHOR0 add x7, x24, :lo12:.LANCHOR2 - ldr w6, [x0,2564] - ldrh w0, [x7,3856] - ldr x7, [x7,3768] + ldr w6, [x0,2572] + ldrh w0, [x7,3864] + ldr x7, [x7,3776] uxth w2, w6 sub w1, w2, #1 sub w2, w2, w0 sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1757: +.L1811: cmp w1, w2 - ble .L1814 + ble .L1868 sbfiz x8, x1, 2, 32 ldr w11, [x26,4] sxth x9, w1 ldr w10, [x7,x8] cmp w11, w10 - bls .L1758 + bls .L1812 ldr w2, [x7] - cbnz w2, .L1759 + cbnz w2, .L1813 cmp w0, w6 - beq .L1759 + beq .L1813 add x2, x24, :lo12:.LANCHOR2 add w0, w0, 1 - strh w0, [x2,3856] -.L1759: + strh w0, [x2,3864] +.L1813: mov w0, 0 -.L1760: +.L1814: cmp w0, w1 - beq .L1815 + beq .L1869 add x6, x24, :lo12:.LANCHOR2 sxtw x2, w0 lsl x7, x2, 2 lsl x2, x2, 1 add w0, w0, 1 - ldr x10, [x6,3768] + ldr x10, [x6,3776] sxth w0, w0 add x11, x10, x7 ldr w11, [x11,4] str w11, [x10,x7] - ldr x6, [x6,3712] + ldr x6, [x6,3720] add x7, x6, x2 ldrh w7, [x7,2] strh w7, [x6,x2] - b .L1760 -.L1815: + b .L1814 +.L1869: add x0, x24, :lo12:.LANCHOR2 ldr w6, [x26,4] - ldr x2, [x0,3768] + ldr x2, [x0,3776] str w6, [x2,x8] - ldr x2, [x0,3712] + ldr x2, [x0,3720] strh w25, [x2,x9,lsl 1] - tbz w1, #31, .L1762 - b .L1751 -.L1758: + tbz w1, #31, .L1816 + b .L1805 +.L1812: sub w1, w1, #1 sxth x1, w1 - b .L1757 -.L1814: - tbz w1, #31, .L1795 - b .L1751 -.L1762: + b .L1811 +.L1868: + tbz w1, #31, .L1849 + b .L1805 +.L1816: add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,3856] - ldr w2, [x2,2564] + ldrh w0, [x0,3864] + ldr w2, [x2,2572] sub w2, w2, w0 sub w2, w2, #1 cmp w1, w2, sxth - bgt .L1751 -.L1795: + bgt .L1805 +.L1849: add x2, x24, :lo12:.LANCHOR2 add w0, w0, 1 ldr w4, [x26,4] - strh w0, [x2,3856] - ldr x0, [x2,3768] + strh w0, [x2,3864] + ldr x0, [x2,3776] str w4, [x0,x1,lsl 2] - ldr x0, [x2,3712] - b .L1811 -.L1772: + ldr x0, [x2,3720] + b .L1865 +.L1826: sbfiz x8, x1, 2, 32 ldr w11, [x26,4] sxth x9, w1 ldr w10, [x7,x8] cmp w11, w10 - bhi .L1816 + bhi .L1870 sub w1, w1, #1 sxth x1, w1 -.L1766: +.L1820: cmp w1, w2 - bgt .L1772 - b .L1771 -.L1816: + bgt .L1826 + b .L1825 +.L1870: ldr w2, [x7] - cbnz w2, .L1768 + cbnz w2, .L1822 cmp w0, w6 - beq .L1768 + beq .L1822 add x2, x19, :lo12:.LANCHOR0 add w0, w0, 1 - strh w0, [x2,2582] -.L1768: + strh w0, [x2,2590] +.L1822: mov w0, 0 -.L1769: +.L1823: cmp w0, w1 - beq .L1817 + beq .L1871 add x2, x24, :lo12:.LANCHOR2 - ldr x7, [x2,3736] + ldr x7, [x2,3744] sxtw x2, w0 lsl x6, x2, 2 lsl x2, x2, 1 @@ -11416,150 +11743,150 @@ FtlScanSysBlk: ldr w10, [x10,4] str w10, [x7,x6] add x6, x19, :lo12:.LANCHOR0 - ldr x6, [x6,2584] + ldr x6, [x6,2592] add x7, x6, x2 ldrh w7, [x7,2] strh w7, [x6,x2] - b .L1769 -.L1817: + b .L1823 +.L1871: add x0, x24, :lo12:.LANCHOR2 ldr w2, [x26,4] - ldr x0, [x0,3736] + ldr x0, [x0,3744] str w2, [x0,x8] add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2584] + ldr x0, [x0,2592] strh w25, [x0,x9,lsl 1] -.L1771: - tbnz w1, #31, .L1751 +.L1825: + tbnz w1, #31, .L1805 add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,2556] - ldrh w6, [x2,2582] + ldrh w0, [x2,2564] + ldrh w6, [x2,2590] sub w0, w0, #1 sub w0, w0, w6 cmp w1, w0, sxth - bgt .L1751 + bgt .L1805 add x0, x24, :lo12:.LANCHOR2 add w6, w6, 1 ldr w4, [x26,4] - strh w6, [x2,2582] - ldr x0, [x0,3736] + strh w6, [x2,2590] + ldr x0, [x0,3744] str w4, [x0,x1,lsl 2] - ldr x0, [x2,2584] -.L1811: + ldr x0, [x2,2592] +.L1865: strh w25, [x0,x1,lsl 1] - b .L1751 -.L1752: + b .L1805 +.L1806: add x0, x24, :lo12:.LANCHOR2 - add x1, x0, 776 - ldrh w2, [x0,776] + add x1, x0, 784 + ldrh w2, [x0,784] cmp w2, w22 - bne .L1773 - strh w25, [x0,776] + bne .L1827 + strh w25, [x0,784] ldr w0, [x26,4] str w0, [x1,8] - b .L1751 -.L1773: + b .L1805 +.L1827: ldrh w0, [x1,4] cmp w0, w22 - beq .L1774 + beq .L1828 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1774: +.L1828: add x1, x24, :lo12:.LANCHOR2 ldr w2, [x26,4] - add x0, x1, 776 + add x0, x1, 784 ldr w6, [x0,8] cmp w6, w2 - bcs .L1775 - ldrh w2, [x1,776] + bcs .L1829 + ldrh w2, [x1,784] strh w2, [x0,4] - strh w25, [x1,776] + strh w25, [x1,784] ldr w1, [x26,4] str w1, [x0,8] - b .L1751 -.L1775: + b .L1805 +.L1829: strh w25, [x0,4] - b .L1751 -.L1748: + b .L1805 +.L1802: add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,196] + ldrb w1, [x0,204] mov w0, w25 - cbz w1, .L1776 -.L1812: + cbz w1, .L1830 +.L1866: mov w1, 0 -.L1776: +.L1830: bl FtlFreeSysBlkQueueIn -.L1751: +.L1805: add x23, x23, 1 - b .L1743 -.L1742: + b .L1797 +.L1796: add w21, w21, 1 uxth w21, w21 - b .L1738 -.L1779: + b .L1792 +.L1833: add x4, x24, :lo12:.LANCHOR2 - ldr x2, [x4,3712] + ldr x2, [x4,3720] ldrh w0, [x2] - cbz w0, .L1781 -.L1784: + cbz w0, .L1835 +.L1838: add x1, x19, :lo12:.LANCHOR0 - ldr x2, [x1,2584] + ldr x2, [x1,2592] ldrh w0, [x2] - cbz w0, .L1782 - b .L1805 -.L1781: - ldrh w4, [x4,3856] - cbz w4, .L1784 - ldr w1, [x1,2564] -.L1785: + cbz w0, .L1836 + b .L1859 +.L1835: + ldrh w4, [x4,3864] + cbz w4, .L1838 + ldr w1, [x1,2572] +.L1839: cmp w0, w1 - bcs .L1784 + bcs .L1838 ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1786 + cbz w4, .L1840 mov w7, w0 -.L1787: +.L1841: add x1, x19, :lo12:.LANCHOR0 - ldr w1, [x1,2564] + ldr w1, [x1,2572] cmp w0, w1 - bcs .L1784 + bcs .L1838 add x2, x24, :lo12:.LANCHOR2 sxtw x6, w0 sub w1, w0, w7 lsl x4, x6, 1 add w0, w0, 1 - ldr x5, [x2,3712] + ldr x5, [x2,3720] sxtw x1, w1 sxth w0, w0 ldrh w8, [x5,x4] strh w8, [x5,x1,lsl 1] - ldr x5, [x2,3768] + ldr x5, [x2,3776] ldr w6, [x5,x6,lsl 2] str w6, [x5,x1,lsl 2] - ldr x1, [x2,3712] + ldr x1, [x2,3720] strh wzr, [x1,x4] - b .L1787 -.L1786: + b .L1841 +.L1840: add w0, w0, 1 sxth w0, w0 - b .L1785 -.L1782: - ldrh w4, [x1,2582] - cbz w4, .L1805 - ldrh w1, [x1,2556] -.L1790: + b .L1839 +.L1836: + ldrh w4, [x1,2590] + cbz w4, .L1859 + ldrh w1, [x1,2564] +.L1844: cmp w0, w1 mov w7, w0 - bge .L1805 + bge .L1859 ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1791 -.L1792: + cbz w4, .L1845 +.L1846: add x2, x19, :lo12:.LANCHOR0 - ldrh w1, [x2,2556] + ldrh w1, [x2,2564] cmp w0, w1 - bge .L1805 + bge .L1859 sxtw x6, w0 sub w1, w0, w7 - ldr x5, [x2,2584] + ldr x5, [x2,2592] lsl x4, x6, 1 sxtw x1, w1 add w0, w0, 1 @@ -11567,17 +11894,17 @@ FtlScanSysBlk: sxth w0, w0 strh w8, [x5,x1,lsl 1] add x5, x24, :lo12:.LANCHOR2 - ldr x5, [x5,3736] + ldr x5, [x5,3744] ldr w6, [x5,x6,lsl 2] str w6, [x5,x1,lsl 2] - ldr x1, [x2,2584] + ldr x1, [x2,2592] strh wzr, [x1,x4] - b .L1792 -.L1791: + b .L1846 +.L1845: add w0, w0, 1 sxth w0, w0 - b .L1790 -.L1805: + b .L1844 +.L1859: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11602,258 +11929,258 @@ FtlLoadSysInfo: stp x19, x20, [sp,32] add x24, x21, :lo12:.LANCHOR2 add x19, x23, :lo12:.LANCHOR4 - add x19, x19, 1696 + add x19, x19, 1704 adrp x20, .LANCHOR0 stp x25, x26, [sp,80] stp x27, x28, [sp,96] - ldr x0, [x24,3608] - add x25, x24, 776 + ldr x0, [x24,3616] + add x25, x24, 784 str x0, [x19,8] - ldr x0, [x24,3656] + ldr x0, [x24,3664] str x0, [x19,16] add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,2476] - ldr x0, [x24,512] + ldrh w2, [x0,2480] + ldr x0, [x24,520] lsl w2, w2, 1 bl ftl_memset str x23, [x29,120] - ldrh w0, [x24,776] + ldrh w0, [x24,784] mov w1, 65535 cmp w0, w1 - bne .L1819 -.L1830: + bne .L1873 +.L1884: mov w19, -1 - b .L1820 -.L1819: + b .L1874 +.L1873: mov w1, 1 - adrp x26, .LC106 - add x26, x26, :lo12:.LC106 + adrp x26, .LC108 + add x26, x26, :lo12:.LC108 bl FtlGetLastWrittenPage - ldrsh w23, [x24,776] + ldrsh w23, [x24,784] sxth w22, w0 add w0, w0, 1 strh w0, [x25,2] -.L1821: - tbnz w22, #31, .L1829 +.L1875: + tbnz w22, #31, .L1883 orr w0, w22, w23, lsl 10 mov w1, 1 str w0, [x19,4] mov w2, w1 - ldr x0, [x24,3608] + ldr x0, [x24,3616] add x27, x20, :lo12:.LANCHOR0 str x0, [x19,8] mov x0, x19 bl FlashReadPages ldrb w0, [x27,72] - cbz w0, .L1822 + cbz w0, .L1876 ldr x25, [x19,16] ldr w7, [x25,12] - cbz w7, .L1822 + cbz w7, .L1876 ldr x2, [x19,8] - ldrh w1, [x27,2546] + ldrh w1, [x27,2554] mov x0, x2 str x7, [x29,104] str x2, [x29,112] bl js_hash ldr x7, [x29,104] cmp w7, w0 - beq .L1822 + beq .L1876 ldr x2, [x29,112] - cbnz w22, .L1823 - ldrh w0, [x24,780] + cbnz w22, .L1877 + ldrh w0, [x24,788] cmp w23, w0 - beq .L1823 + beq .L1877 ldr w0, [x2] str w0, [sp] mov x0, x26 - ldrh w1, [x24,776] + ldrh w1, [x24,784] ldr w2, [x19] ldr w3, [x19,4] ldr w4, [x25] ldr w5, [x25,4] ldr w6, [x25,8] bl printk - ldrsh w23, [x24,780] - ldrh w22, [x27,2538] - b .L1825 -.L1823: + ldrsh w23, [x24,788] + ldrh w22, [x27,2546] + b .L1879 +.L1877: mov w0, -1 str w0, [x19] -.L1822: +.L1876: ldr w0, [x19] cmn w0, #1 - beq .L1825 - ldr x0, [x24,3608] + beq .L1879 + ldr x0, [x24,3616] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1825 - ldr x0, [x24,3656] + bne .L1879 + ldr x0, [x24,3664] ldrh w1, [x0] mov w0, 61604 cmp w1, w0 - bne .L1825 -.L1829: + bne .L1879 +.L1883: ldr x0, [x29,120] add x24, x21, :lo12:.LANCHOR2 add x22, x20, :lo12:.LANCHOR0 mov w2, 48 add x19, x0, :lo12:.LANCHOR4 - add x0, x24, 448 - add x19, x19, 1696 + add x0, x24, 456 + add x19, x19, 1704 ldr x1, [x19,8] bl ftl_memcpy ldr x1, [x19,8] - ldrh w2, [x22,2476] - ldr x0, [x24,512] + ldrh w2, [x22,2480] + ldr x0, [x24,520] add x1, x1, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x22,2476] + ldrh w2, [x22,2480] ldr x3, [x19,8] + ubfiz x1, x2, 1, 16 ldr x0, [x20,#:lo12:.LANCHOR0] - uxth x1, w2 + add x1, x1, 51 lsr w2, w2, 3 - add x1, x1, 24 + and x1, x1, 262140 add w2, w2, 4 - lsr x1, x1, 1 - add x1, x3, x1, lsl 2 + add x1, x3, x1 bl ftl_memcpy - ldrh w0, [x22,2580] - cbz w0, .L1827 - ldrh w0, [x22,2476] + ldrh w0, [x22,2588] + cbz w0, .L1881 + ldrh w0, [x22,2480] ldr x3, [x19,8] lsr w1, w0, 3 - ldrh w2, [x22,2572] + ldrh w2, [x22,2580] add w1, w1, w0, lsl 1 - ldr x0, [x24,3760] + ldr x0, [x24,3768] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L1827 -.L1825: + b .L1881 +.L1879: sub w22, w22, #1 sxth w22, w22 - b .L1821 -.L1827: + b .L1875 +.L1881: add x0, x21, :lo12:.LANCHOR2 mov w1, 19539 movk w1, 0x4654, lsl 16 - ldr w2, [x0,448] + ldr w2, [x0,456] cmp w2, w1 - bne .L1830 + bne .L1884 add x1, x20, :lo12:.LANCHOR0 - ldrb w3, [x0,458] - ldrh w5, [x0,456] - strh w5, [x0,782] - ldrh w2, [x1,2490] + ldrb w3, [x0,466] + ldrh w5, [x0,464] + strh w5, [x0,790] + ldrh w2, [x1,2494] cmp w3, w2 - bne .L1830 - ldrh w3, [x1,2536] + bne .L1884 + ldrh w3, [x1,2544] ldr x2, [x29,120] - strh wzr, [x0,794] + strh wzr, [x0,802] mul w3, w3, w5 add x23, x2, :lo12:.LANCHOR4 - ldrh w2, [x1,2542] - str w3, [x1,2608] - strb wzr, [x0,798] + ldrh w2, [x1,2550] + str w3, [x1,2616] + strb wzr, [x0,806] mul w3, w3, w2 - str w3, [x1,2576] - ldrh w2, [x1,2622] - ldr w3, [x1,2480] - ldrh w1, [x1,2468] + str w3, [x1,2584] + ldrh w2, [x1,2630] + ldr w3, [x1,2484] + ldrh w1, [x1,2472] sub w2, w3, w2 - str w5, [x23,1752] + str w5, [x23,1760] sub w2, w2, w5 - ldrh w3, [x0,462] - strh w3, [x0,552] + ldrh w3, [x0,470] + strh w3, [x0,560] udiv w1, w2, w1 - ldrh w2, [x0,464] - strh w1, [x0,772] - lsr w5, w2, 6 - and w2, w2, 63 - strb w2, [x0,558] - ldrb w2, [x0,459] - strb w2, [x0,560] - mov w2, -1 - strh w2, [x0,792] - ldrh w2, [x0,466] - strh w2, [x0,600] - ldrh w2, [x0,468] - strh w5, [x0,554] - lsr w5, w2, 6 - and w2, w2, 63 - strb w2, [x0,606] - ldrb w2, [x0,460] - strb w2, [x0,608] - ldrh w2, [x0,470] - strh w2, [x0,648] ldrh w2, [x0,472] - strh w5, [x0,602] + strh w1, [x0,780] lsr w5, w2, 6 and w2, w2, 63 - strb wzr, [x0,800] - strh w5, [x0,650] - strb w2, [x0,654] - ldrb w2, [x0,461] - ldr w1, [x0,480] - strb w2, [x0,656] - str w1, [x0,752] - ldr w2, [x0,744] + strb w2, [x0,566] + ldrb w2, [x0,467] + strb w2, [x0,568] + mov w2, -1 + strh w2, [x0,800] + ldrh w2, [x0,474] + strh w2, [x0,608] + ldrh w2, [x0,476] + strh w5, [x0,562] + lsr w5, w2, 6 + and w2, w2, 63 + strb w2, [x0,614] + ldrb w2, [x0,468] + strb w2, [x0,616] + ldrh w2, [x0,478] + strh w2, [x0,656] + ldrh w2, [x0,480] + strh w5, [x0,610] + lsr w5, w2, 6 + and w2, w2, 63 + strb wzr, [x0,808] + strh w5, [x0,658] + strb w2, [x0,662] + ldrb w2, [x0,469] ldr w1, [x0,488] - str wzr, [x0,732] - str wzr, [x0,720] - cmp w1, w2 - str wzr, [x0,712] + strb w2, [x0,664] + str w1, [x0,760] + ldr w2, [x0,752] + ldr w1, [x0,496] + str wzr, [x0,740] str wzr, [x0,728] - str wzr, [x0,756] - str wzr, [x0,764] - str wzr, [x0,724] - bls .L1831 - str w1, [x0,744] -.L1831: - add x0, x21, :lo12:.LANCHOR2 - ldr w1, [x0,484] - ldr w2, [x0,748] cmp w1, w2 - bls .L1832 - str w1, [x0,748] -.L1832: + str wzr, [x0,720] + str wzr, [x0,736] + str wzr, [x0,764] + str wzr, [x0,772] + str wzr, [x0,732] + bls .L1885 + str w1, [x0,752] +.L1885: + add x0, x21, :lo12:.LANCHOR2 + ldr w1, [x0,492] + ldr w2, [x0,756] + cmp w1, w2 + bls .L1886 + str w1, [x0,756] +.L1886: mov w0, 65535 cmp w3, w0 - beq .L1833 + beq .L1887 add x0, x21, :lo12:.LANCHOR2 - add x0, x0, 552 + add x0, x0, 560 bl make_superblock -.L1833: +.L1887: add x1, x21, :lo12:.LANCHOR2 - add x0, x1, 600 - ldrh w2, [x1,600] + add x0, x1, 608 + ldrh w2, [x1,608] mov w1, 65535 cmp w2, w1 - beq .L1834 + beq .L1888 bl make_superblock -.L1834: +.L1888: add x1, x21, :lo12:.LANCHOR2 - add x0, x1, 648 - ldrh w2, [x1,648] + add x0, x1, 656 + ldrh w2, [x1,656] mov w1, 65535 cmp w2, w1 - beq .L1835 + beq .L1889 bl make_superblock -.L1835: +.L1889: add x21, x21, :lo12:.LANCHOR2 mov w1, 65535 - add x0, x21, 792 + add x0, x21, 800 mov w19, 0 - ldrh w2, [x21,792] + ldrh w2, [x21,800] cmp w2, w1 - beq .L1820 + beq .L1874 bl make_superblock -.L1820: +.L1874: sub sp, x29, #16 mov w0, w19 ldp x19, x20, [sp,32] @@ -11885,74 +12212,74 @@ FtlDumpBlockInfo: uxth w23, w0 add x1, x2, :lo12:.LANCHOR3 add x19, x22, :lo12:.LANCHOR0 - adrp x0, .LC107 - add x1, x1, 16 - add x0, x0, :lo12:.LC107 + adrp x0, .LC109 + add x1, x1, 152 + add x0, x0, :lo12:.LC109 adrp x21, .LANCHOR2 - ldrh w24, [x19,2536] + ldrh w24, [x19,2544] bl printk add x0, x21, :lo12:.LANCHOR2 ubfiz x2, x23, 1, 16 mov w1, w23 - ldr x3, [x0,512] - adrp x0, .LC108 - add x0, x0, :lo12:.LC108 + ldr x3, [x0,520] + adrp x0, .LC110 + add x0, x0, :lo12:.LC110 ldrh w2, [x3,x2] bl printk strh w23, [x29,112] add x0, x29, 112 bl make_superblock - cbnz w25, .L1855 - ldrb w0, [x19,196] - cbz w0, .L1855 + cbnz w25, .L1909 + ldrb w0, [x19,204] + cbz w0, .L1909 mov w0, w23 bl ftl_get_blk_mode cmp w0, 1 mov w23, w0 - bne .L1847 - ldrh w24, [x19,2538] - b .L1847 -.L1855: + bne .L1901 + ldrh w24, [x19,2546] + b .L1901 +.L1909: mov w23, 0 -.L1847: +.L1901: add x3, x22, :lo12:.LANCHOR0 - adrp x0, .LC109 - adrp x25, .LC110 - add x0, x0, :lo12:.LC109 + adrp x0, .LC111 + adrp x25, .LC112 + add x0, x0, :lo12:.LC111 mov w1, w23 mov w2, w24 - ldrh w3, [x3,2536] + ldrh w3, [x3,2544] mov w20, 0 mov w27, 65535 mov w28, 56 mov w26, 4 - add x25, x25, :lo12:.LC110 + add x25, x25, :lo12:.LC112 bl printk -.L1848: +.L1902: add x0, x22, :lo12:.LANCHOR0 - ldrh w5, [x0,2468] - ldrh w6, [x0,2546] - ldrh w7, [x0,2548] + ldrh w5, [x0,2472] + ldrh w6, [x0,2554] + ldrh w7, [x0,2556] mov x0, 0 mov w19, w0 -.L1849: +.L1903: cmp w5, w0, uxth - bls .L1863 + bls .L1917 add x1, x29, 112 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w27 - beq .L1850 + beq .L1904 add x3, x21, :lo12:.LANCHOR2 orr w2, w20, w2, lsl 10 umull x1, w19, w28 - ldr x4, [x3,3584] + ldr x4, [x3,3592] add x4, x4, x1 str w2, [x4,4] - ldr x2, [x3,3584] - ldr x4, [x3,1392] + ldr x2, [x3,3592] + ldr x4, [x3,1400] add x1, x2, x1 - ldr x3, [x3,1400] + ldr x3, [x3,1408] mul w2, w19, w6 sdiv w2, w2, w26 add x2, x4, x2, sxtw 2 @@ -11963,25 +12290,25 @@ FtlDumpBlockInfo: sdiv w2, w2, w26 add x2, x3, x2, sxtw 2 str x2, [x1,16] -.L1850: +.L1904: add x0, x0, 1 - b .L1849 -.L1863: + b .L1903 +.L1917: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, w23 - ldr x0, [x0,3584] + ldr x0, [x0,3592] bl FlashReadPages mov x8, 0 mov x9, 56 -.L1852: +.L1906: cmp w19, w8, uxth - bls .L1864 + bls .L1918 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,112] mul x2, x8, x9 str x9, [x29,96] - ldr x4, [x0,3584] + ldr x4, [x0,3592] str x8, [x29,104] add x3, x4, x2 ldr x0, [x3,8] @@ -12001,13 +12328,13 @@ FtlDumpBlockInfo: ldr x8, [x29,104] ldr x9, [x29,96] add x8, x8, 1 - b .L1852 -.L1864: + b .L1906 +.L1918: add w20, w20, 1 uxth w20, w20 cmp w20, w24 - bne .L1848 -.L1854: + bne .L1902 +.L1908: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -12025,30 +12352,30 @@ FtlDumpBlockInfo: FtlScanAllBlock: sub sp, sp, #144 adrp x1, .LANCHOR3 - adrp x0, .LC107 + adrp x0, .LC109 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC107 - add x1, x1, 40 + add x0, x0, :lo12:.LC109 + add x1, x1, 176 stp x29, x30, [sp,16] add x29, sp, 16 stp x23, x24, [sp,64] stp x21, x22, [sp,48] - adrp x23, .LC112 - adrp x22, .LC111 - adrp x24, .LC113 - add x22, x22, :lo12:.LC111 + adrp x23, .LC114 + adrp x22, .LC113 + adrp x24, .LC115 + add x22, x22, :lo12:.LC113 stp x19, x20, [sp,32] - add x23, x23, :lo12:.LC112 + add x23, x23, :lo12:.LC114 mov w20, 0 - add x24, x24, :lo12:.LC113 + add x24, x24, :lo12:.LC115 stp x25, x26, [sp,80] bl printk -.L1866: +.L1920: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,2478] + ldrh w0, [x19,2482] cmp w0, w20 - bls .L1875 + bls .L1929 mov w0, w20 strh w20, [x29,80] adrp x21, .LANCHOR2 @@ -12057,38 +12384,38 @@ FtlScanAllBlock: add x0, x21, :lo12:.LANCHOR2 ubfiz x2, x20, 1, 16 mov w1, w20 - ldr x4, [x0,512] + ldr x4, [x0,520] mov x0, x22 ldrh w2, [x4,x2] bl printk add x0, x29, 80 bl make_superblock mov x1, 0 - ldrh w6, [x19,2468] - ldrh w7, [x19,2546] + ldrh w6, [x19,2472] + ldrh w7, [x19,2554] mov w9, 65535 - ldrh w8, [x19,2548] + ldrh w8, [x19,2556] mov w10, 56 mov w19, w1 mov w5, 4 -.L1867: +.L1921: cmp w6, w1, uxth - bls .L1876 + bls .L1930 add x0, x29, 80 add x0, x0, x1, lsl 1 ldrh w2, [x0,16] cmp w2, w9 - beq .L1868 + beq .L1922 add x3, x21, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x0, w19, w10 - ldr x4, [x3,3584] + ldr x4, [x3,3592] add x4, x4, x0 str w2, [x4,4] - ldr x2, [x3,3584] - ldr x4, [x3,1392] + ldr x2, [x3,3592] + ldr x4, [x3,1400] add x2, x2, x0 - ldr x3, [x3,1400] + ldr x3, [x3,1408] mul w0, w19, w7 sdiv w0, w0, w5 add x0, x4, x0, sxtw 2 @@ -12099,22 +12426,22 @@ FtlScanAllBlock: sdiv w0, w0, w5 add x0, x3, x0, sxtw 2 str x0, [x2,16] -.L1868: +.L1922: add x1, x1, 1 - b .L1867 -.L1876: + b .L1921 +.L1930: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, 0 mov x25, 0 mov x26, 56 - ldr x0, [x0,3584] + ldr x0, [x0,3592] bl FlashReadPages -.L1870: +.L1924: add x0, x21, :lo12:.LANCHOR2 cmp w19, w25, uxth - bls .L1877 - ldr x4, [x0,3584] + bls .L1931 + ldr x4, [x0,3592] mul x2, x25, x26 ldrh w1, [x29,80] add x25, x25, 1 @@ -12133,22 +12460,22 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L1870 -.L1877: - ldr x0, [x0,3584] + b .L1924 +.L1931: + ldr x0, [x0,3592] mov w1, w19 mov w2, 1 mov x25, 0 mov x26, 56 bl FlashReadPages -.L1872: +.L1926: cmp w19, w25, uxth - bls .L1878 + bls .L1932 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,80] mul x2, x25, x26 add x25, x25, 1 - ldr x4, [x0,3584] + ldr x4, [x0,3592] add x3, x4, x2 ldr x0, [x3,8] ldr x7, [x3,16] @@ -12164,12 +12491,12 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L1872 -.L1878: + b .L1926 +.L1932: add w20, w20, 1 uxth w20, w20 - b .L1866 -.L1875: + b .L1920 +.L1929: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -12185,48 +12512,83 @@ FtlScanAllBlock: .type ftl_scan_all_ppa, %function ftl_scan_all_ppa: sub sp, sp, #96 - adrp x0, .LC114 - add x0, x0, :lo12:.LC114 stp x29, x30, [sp,16] add x29, sp, 16 stp x19, x20, [sp,32] adrp x20, .LANCHOR0 - str x25, [sp,80] - add x2, x20, :lo12:.LANCHOR0 adrp x19, .LANCHOR4 - stp x21, x22, [sp,48] - stp x23, x24, [sp,64] + add x0, x20, :lo12:.LANCHOR0 add x19, x19, :lo12:.LANCHOR4 - adrp x23, .LC115 - ldrh w1, [x2,2534] - mov w22, 0 - ldrh w2, [x2,2536] - add x19, x19, 1696 - add x23, x23, :lo12:.LC115 - bl printk -.L1880: + stp x23, x24, [sp,64] + stp x21, x22, [sp,48] + stp x25, x26, [sp,80] + adrp x23, .LC116 + add x19, x19, 1704 + ldrh w26, [x0,2542] + add x23, x23, :lo12:.LC116 + sub w26, w26, #16 +.L1934: + add x21, x20, :lo12:.LANCHOR0 + ldrh w0, [x21,2542] + cmp w26, w0 + bge .L1949 + uxth w22, w26 + mov w0, w22 + bl ftl_get_blk_mode + ldrb w1, [x21,204] + cbz w1, .L1935 + ldrh w1, [x21,2480] + cmp w26, w1 + bge .L1936 + ldrh w1, [x21,2558] + cmp w26, w1 + blt .L1936 +.L1935: + cmp w0, 1 + bne .L1937 +.L1936: + add x0, x20, :lo12:.LANCHOR0 + mov w21, -2147483648 + ldrh w24, [x0,2546] + b .L1938 +.L1937: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2534] - cmp w22, w0 - bcs .L1882 - lsl w25, w22, 10 mov w21, 0 - adrp x24, .LANCHOR2 -.L1883: - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2536] - cmp w21, w0 - bcs .L1884 - add w0, w21, w25 + ldrh w24, [x0,2544] +.L1938: + mov x0, x23 + mov w1, w26 + mov w2, w24 + mov w3, w21 + bl printk + mov w0, w22 + bl FtlBbmIsBadBlock + cbz w0, .L1939 + adrp x0, .LC117 + mov w1, w26 + add x0, x0, :lo12:.LC117 + mov w2, w24 + mov w3, w21 + bl printk +.L1939: + adrp x25, .LC118 + mov w22, 0 + add w21, w21, w26, lsl 10 + add x25, x25, :lo12:.LC118 +.L1940: + cmp w22, w24 + beq .L1950 + adrp x3, .LANCHOR2 + add w0, w21, w22 + add x3, x3, :lo12:.LANCHOR2 str w0, [x19,4] - add x0, x24, :lo12:.LANCHOR2 + mov w1, 1 mov w2, 0 str wzr, [x19] - add w21, w21, 1 - ldr x1, [x0,3608] - ldr x0, [x0,3656] - str x1, [x19,8] - mov w1, 1 + add w22, w22, 1 + ldr x0, [x3,3616] + str x0, [x19,8] + ldr x0, [x3,3664] str x0, [x19,16] mov x0, x19 bl FlashReadPages @@ -12234,7 +12596,7 @@ ftl_scan_all_ppa: ldr x6, [x19,16] ldr w0, [x7,4] str w0, [sp] - mov x0, x23 + mov x0, x25 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -12243,22 +12605,22 @@ ftl_scan_all_ppa: ldr w6, [x6,12] ldr w7, [x7] bl printk - b .L1883 -.L1884: - add w22, w22, 1 - b .L1880 -.L1882: + b .L1940 +.L1950: + add w26, w26, 1 + b .L1934 +.L1949: adrp x1, .LANCHOR3 - adrp x0, .LC116 + adrp x0, .LC119 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC116 - add x1, x1, 56 + add x0, x0, :lo12:.LC119 + add x1, x1, 192 bl printk sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] ldp x23, x24, [sp,64] - ldr x25, [sp,80] + ldp x25, x26, [sp,80] ldp x29, x30, [sp,16] add sp, sp, 96 ret @@ -12281,57 +12643,51 @@ FlashProgPages: stp x27, x28, [sp,80] str w6, [x29,124] mov x19, x0 - ldr x5, [x4,1256] + ldr x5, [x4,88] mov w25, w1 ldrb w4, [x4,72] mov w23, w2 mov w22, 0 ldrb w5, [x5,19] - cbz w4, .L1886 + cbz w4, .L1952 bl FlashProgSlc2KPages - b .L1887 -.L1886: + b .L1953 +.L1952: sub w0, w5, #1 mov w27, 56 mov x28, 24 str w0, [x29,116] -.L1938: +.L2003: cmp w22, w25 - bcs .L1939 + bcs .L2004 umull x20, w22, w27 - sub w4, w25, w22 + mov w1, w23 add x2, x29, 128 add x26, x19, x20 - mov w1, w23 + sub w4, w25, w22 mov x0, x26 add x3, x29, 132 bl LogAddr2PhyAddr mov w24, w0 - add x2, x21, :lo12:.LANCHOR0 + add x1, x21, :lo12:.LANCHOR0 ldr w0, [x29,132] - ldrb w4, [x2,2357] - cmp w0, w4 - bcc .L1888 + ldrb w2, [x1,2358] + cmp w0, w2 + bcc .L1954 mov w0, -1 str w0, [x19,x20] - b .L1889 -.L1888: - ldrb w1, [x2,2457] - add x3, x2, 2164 - cmp w1, wzr - uxtw x1, w0 + b .L1955 +.L1954: + ldrb w2, [x1,2368] + add x1, x1, 2164 + cmp w2, wzr + uxtw x2, w0 csel w24, w24, wzr, ne - madd x0, x1, x28, x3 - ldr x0, [x0,8] - cbz x0, .L1891 - cmp w4, 1 - bne .L1892 - ldr x0, [x2,128] - bl NandcIqrWaitFlashReady -.L1892: - ldrb w0, [x29,132] + madd x1, x2, x28, x1 + ldr x1, [x1,8] + cbz x1, .L1957 bl FlashWaitCmdDone -.L1891: +.L1957: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,132] add x0, x0, 2164 @@ -12340,30 +12696,30 @@ FlashProgPages: str x26, [x0,8] str xzr, [x0,16] str w1, [x0,4] - cbz w24, .L1893 + cbz w24, .L1958 add w1, w22, 1 umull x1, w1, w27 add x1, x19, x1 str x1, [x0,16] -.L1893: +.L1958: add x1, x21, :lo12:.LANCHOR0 add x0, x1, x2 madd x2, x2, x28, x1 ldrb w20, [x0,2360] - ldrb w0, [x1,2357] + ldrb w0, [x1,2358] strb w20, [x2,2164] cmp w0, 1 - bne .L1894 + bne .L1959 mov w0, w20 bl NandcWaitFlashReady - b .L1895 -.L1894: + b .L1960 +.L1959: mov w0, w20 str x1, [x29,104] bl NandcFlashCs ldr x1, [x29,104] ldr w0, [x29,132] - add x1, x1, 1224 + add x1, x1, 1232 ldr w0, [x1,x0,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -12372,34 +12728,34 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs -.L1895: +.L1960: ldr w0, [x29,116] cmp w0, 7 - bhi .L1896 + bhi .L1961 add x2, x21, :lo12:.LANCHOR0 add x0, x2, x20, sxtw ldrb w0, [x0,2128] - cbz w0, .L1896 + cbz w0, .L1961 ldrb w1, [x2,1273] mov w0, w20 add x2, x2, 1276 mov w3, 0 bl HynixSetRRPara -.L1896: +.L1961: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1897 + bne .L1962 add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbz w0, .L1897 + ldrb w0, [x0,204] + cbz w0, .L1962 mov w0, w20 bl flash_enter_slc_mode - b .L1898 -.L1897: + b .L1963 +.L1962: mov w0, w20 bl flash_exit_slc_mode -.L1898: +.L1963: ldr w1, [x29,128] mov w0, w20 bl FlashProgFirstCmd @@ -12409,13 +12765,13 @@ FlashProgPages: mov w1, 1 ldr x4, [x26,16] bl NandcXferData - cbz w24, .L1899 + cbz w24, .L1964 ldr w1, [x29,128] mov w0, w20 add x26, x21, :lo12:.LANCHOR0 bl FlashProgDpFirstCmd ldr w1, [x29,132] - add x0, x26, 1224 + add x0, x26, 1232 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -12436,65 +12792,63 @@ FlashProgPages: ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData -.L1899: +.L1964: ldr w1, [x29,128] mov w0, w20 add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1889: +.L1955: add w22, w22, 1 - b .L1938 -.L1939: + b .L2003 +.L2004: add x21, x21, :lo12:.LANCHOR0 mov x20, 0 add x22, x21, 2164 mov x24, 24 - ldr x0, [x21,128] - bl NandcIqrWaitFlashReady -.L1901: - ldrb w0, [x21,2357] +.L1966: + ldrb w0, [x21,2358] cmp w0, w20 - bls .L1940 + bls .L2005 mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1902 - ldrb w0, [x21,196] - cbz w0, .L1902 + bne .L1967 + ldrb w0, [x21,204] + cbz w0, .L1967 mul x0, x20, x24 ldrb w0, [x0,x22] bl flash_exit_slc_mode -.L1902: +.L1967: add x20, x20, 1 - b .L1901 -.L1940: + b .L1966 +.L2005: ldr w0, [x29,120] - cbnz w0, .L1904 -.L1912: + cbnz w0, .L1969 +.L1977: mov w0, 0 - b .L1887 -.L1904: - adrp x24, .LC105 - adrp x26, .LC104 - adrp x27, .LC103 + b .L1953 +.L1969: + adrp x24, .LC107 + adrp x26, .LC106 + adrp x27, .LC104 mov w21, 0 - add x24, x24, :lo12:.LC105 - add x26, x26, :lo12:.LC104 - add x27, x27, :lo12:.LC103 -.L1905: + add x24, x24, :lo12:.LC107 + add x26, x26, :lo12:.LC106 + add x27, x27, :lo12:.LC104 +.L1970: cmp w21, w25 - beq .L1912 + beq .L1977 ldr w0, [x19] cmn w0, #1 - bne .L1906 - adrp x0, .LC102 + bne .L1971 + adrp x0, .LC103 ldr w1, [x19,4] - add x0, x0, :lo12:.LC102 + add x0, x0, :lo12:.LC103 bl printk - b .L1907 -.L1906: + b .L1972 +.L1971: adrp x20, .LANCHOR4 sub w4, w25, w21 add x22, x20, :lo12:.LANCHOR4 @@ -12503,62 +12857,62 @@ FlashProgPages: add x2, x29, 128 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,1656] + ldr x0, [x22,1664] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,1664] + ldr x0, [x22,1672] str wzr, [x0] add x0, x29, 136 bl memcpy - ldr x0, [x22,1656] + ldr x0, [x22,1664] mov w1, 1 str x0, [x29,144] mov w2, w23 - ldr x0, [x22,1664] + ldr x0, [x22,1672] str x0, [x29,152] add x0, x29, 136 bl FlashReadPages ldr w22, [x29,136] cmn w22, #1 - bne .L1908 + bne .L1973 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1908: +.L1973: ldr x0, [x19,16] - cbz x0, .L1909 + cbz x0, .L1974 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR4 - ldr x0, [x0,1664] + ldr x0, [x0,1672] ldr w3, [x0] cmp w2, w3 - beq .L1909 + beq .L1974 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1909: +.L1974: ldr x0, [x19,8] - cbz x0, .L1907 + cbz x0, .L1972 add x20, x20, :lo12:.LANCHOR4 ldr w2, [x0] - ldr x0, [x20,1656] + ldr x0, [x20,1664] ldr w3, [x0] cmp w2, w3 - beq .L1907 + beq .L1972 ldr w1, [x19,4] mov x0, x24 bl printk mov w0, -1 str w0, [x19] -.L1907: +.L1972: add w21, w21, 1 add x19, x19, 56 - b .L1905 -.L1887: + b .L1970 +.L1953: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12579,12 +12933,12 @@ FlashTestBlk.part.18: uxth w20, w0 add x19, x19, :lo12:.LANCHOR4 lsl w20, w20, 10 - ldr x0, [x19,1640] + ldr x0, [x19,1648] str x0, [x29,48] add x0, x29, 96 str x0, [x29,56] bl ftl_memset - ldr x0, [x19,1640] + ldr x0, [x19,1648] mov w1, 90 mov w2, 8 bl ftl_memset @@ -12615,16 +12969,16 @@ FlashTestBlk.part.18: .type FlashTestBlk, %function FlashTestBlk: uxth w1, w0 - adrp x0, .LANCHOR4+1628 + adrp x0, .LANCHOR4+1636 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x0,#:lo12:.LANCHOR4+1628] + ldr w2, [x0,#:lo12:.LANCHOR4+1636] mov w0, 0 cmp w1, w2 - bcc .L1943 + bcc .L2008 mov w0, w1 bl FlashTestBlk.part.18 -.L1943: +.L2008: ldp x29, x30, [sp], 16 ret .size FlashTestBlk, .-FlashTestBlk @@ -12643,29 +12997,29 @@ FlashMakeFactorBbt: stp x25, x26, [sp,64] stp x27, x28, [sp,80] adrp x21, .LANCHOR0 - ldr x0, [x0,1648] + ldr x0, [x0,1656] str x0, [x29,136] add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,180] - ldrh w23, [x0,182] + ldrh w1, [x0,188] + ldrh w23, [x0,190] ldrh w26, [x0,76] mul w23, w1, w23 - ldr x1, [x0,1256] + ldr x1, [x0,88] ldrb w0, [x0,72] uxth w23, w23 ldrb w1, [x1,24] cmp w0, 1 str w1, [x29,132] - adrp x0, .LC117 + adrp x0, .LC120 ubfiz w1, w26, 1, 15 - add x0, x0, :lo12:.LC117 + add x0, x0, :lo12:.LC120 csel w26, w1, w26, eq mov w1, 1 bl printk add x0, x20, :lo12:.LANCHOR4 mov w1, 0 mov w2, 4096 - ldr x0, [x0,1648] + ldr x0, [x0,1656] bl ftl_memset lsr w0, w23, 4 str w0, [x29,128] @@ -12679,19 +13033,19 @@ FlashMakeFactorBbt: sub w0, w23, #1 uxth w0, w0 str w0, [x29,124] -.L1947: +.L2012: add x24, x21, :lo12:.LANCHOR0 - ldrb w0, [x24,2357] + ldrb w0, [x24,2358] cmp w0, w19 - bls .L1998 + bls .L2062 add x0, x20, :lo12:.LANCHOR4 sxtw x25, w19 - add x1, x0, 1680 + add x1, x0, 1688 ldrh w22, [x1,w19,sxtw 1] - cbnz w22, .L1977 - ldrh w2, [x24,188] + cbnz w22, .L2042 + ldrh w2, [x24,196] mov w1, w22 - ldr x0, [x0,1592] + ldr x0, [x0,1600] add x24, x24, x25 lsl w2, w2, 9 mov w27, w22 @@ -12702,19 +13056,19 @@ FlashMakeFactorBbt: and w0, w0, 4 uxtb w0, w0 str w0, [x29,120] -.L1949: +.L2014: uxth w0, w27 str w0, [x29,144] cmp w0, w23 - bcs .L1959 + bcs .L2024 mov w0, -1 strb w0, [x29,166] strb w0, [x29,167] ldr w0, [x29,116] - cbz w0, .L1951 + cbz w0, .L2016 add x4, x21, :lo12:.LANCHOR0 add x2, x29, 166 - add x0, x4, 1224 + add x0, x4, 1232 str x4, [x29,96] ldr w3, [x0,x25,lsl 2] mov w0, w28 @@ -12726,7 +13080,7 @@ FlashMakeFactorBbt: ldr x3, [x29,104] ldrb w0, [x4,72] cmp w0, 1 - bne .L1951 + bne .L2016 ldr w1, [x4,76] mov w0, w28 add x2, x29, 167 @@ -12736,58 +13090,61 @@ FlashMakeFactorBbt: ldrb w1, [x29,167] and w0, w1, w0 strb w0, [x29,166] -.L1951: +.L2016: ldr w0, [x29,112] - cbz w0, .L1953 + cbz w0, .L2018 add x0, x21, :lo12:.LANCHOR0 add x2, x29, 167 - add x0, x0, 1224 - ldr x1, [x0,32] - ldr w0, [x0,x25,lsl 2] + ldr x1, [x0,88] + add x0, x0, 1232 ldrh w1, [x1,10] + ldr w0, [x0,x25,lsl 2] sub w1, w1, #1 add w1, w1, w0 mov w0, w28 add w1, w1, w22 bl FlashReadSpare -.L1953: +.L2018: add x0, x21, :lo12:.LANCHOR0 ldrb w1, [x29,166] - ldr x0, [x0,1256] - ldrb w0, [x0,7] - cmp w0, 8 - beq .L1978 - cmp w0, 1 - bne .L1954 -.L1978: + ldr x0, [x0,88] + ldrb w2, [x0,7] + cmp w2, 8 + beq .L2019 + cmp w2, 1 + beq .L2019 + ldrb w0, [x0,18] + cmp w0, 12 + bne .L2020 +.L2019: mov w0, 1 - cbz w1, .L1956 + cbz w1, .L2021 ldrb w0, [x29,167] cmp w0, wzr cset w0, eq - b .L1956 -.L1954: + b .L2021 +.L2020: cmp w1, 255 mov w0, 1 - bne .L1956 + bne .L2021 ldrb w0, [x29,167] cmp w0, 255 cset w0, ne -.L1956: +.L2021: ldr w1, [x29,120] - cbz w1, .L1957 + cbz w1, .L2022 add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 1224 + add x0, x0, 1232 ldr w1, [x0,x25,lsl 2] mov w0, w28 add w1, w22, w1 bl SandiskProgTestBadBlock -.L1957: - cbz w0, .L1958 - adrp x0, .LC118 +.L2022: + cbz w0, .L2023 + adrp x0, .LC121 mov w1, w19 mov w2, w27 - add x0, x0, :lo12:.LC118 + add x0, x0, :lo12:.LC121 add w24, w24, 1 bl printk add x0, x20, :lo12:.LANCHOR4 @@ -12796,7 +13153,7 @@ FlashMakeFactorBbt: uxth w24, w24 ubfx x1, x1, 5, 11 lsl x1, x1, 2 - ldr x2, [x0,1592] + ldr x2, [x0,1600] mov w0, 1 lsl w0, w0, w3 ldr w3, [x2,x1] @@ -12804,48 +13161,48 @@ FlashMakeFactorBbt: str w0, [x2,x1] add x0, x21, :lo12:.LANCHOR0 ldr w1, [x29,128] - ldrb w0, [x0,2357] + ldrb w0, [x0,2358] mul w0, w1, w0 cmp w24, w0 - bgt .L1959 -.L1958: + bgt .L2024 +.L2023: add w27, w27, 1 add w22, w22, w26 - b .L1949 -.L1959: - adrp x0, .LC119 + b .L2014 +.L2024: + adrp x0, .LC122 mov w1, w19 mov w2, w24 - add x0, x0, :lo12:.LC119 + add x0, x0, :lo12:.LC122 bl printk add x1, x21, :lo12:.LANCHOR0 ldr w2, [x29,128] - ldrb w0, [x1,2357] + ldrb w0, [x1,2358] mul w0, w2, w0 cmp w24, w0 - blt .L1961 + blt .L2026 add x0, x20, :lo12:.LANCHOR4 - ldrh w2, [x1,188] + ldrh w2, [x1,196] mov w1, 0 lsl w2, w2, 9 - ldr x0, [x0,1592] + ldr x0, [x0,1600] bl ftl_memset -.L1961: - cbnz w19, .L1963 +.L2026: + cbnz w19, .L2028 add x0, x20, :lo12:.LANCHOR4 - adrp x27, .LC120 + adrp x27, .LC123 mov w22, w19 - add x27, x27, :lo12:.LC120 + add x27, x27, :lo12:.LC123 mov w24, 1 - ldrh w28, [x0,1628] -.L1964: + ldrh w28, [x0,1636] +.L2029: add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,73] cmp w0, w28 - bls .L1999 + bls .L2063 mov w0, w28 bl FlashTestBlk - cbz w0, .L1965 + cbz w0, .L2030 mov w1, w28 mov x0, x27 add w22, w22, 1 @@ -12854,87 +13211,87 @@ FlashMakeFactorBbt: ubfx x1, x28, 5, 11 lsl x1, x1, 2 uxth w22, w22 - ldr x2, [x0,1592] + ldr x2, [x0,1600] lsl w0, w24, w28 ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1965: +.L2030: add w28, w28, 1 uxth w28, w28 - b .L1964 -.L1999: - adrp x27, .LC120 + b .L2029 +.L2063: + adrp x27, .LC123 ldr w24, [x29,124] sub w28, w23, #50 - add x27, x27, :lo12:.LC120 -.L1967: + add x27, x27, :lo12:.LC123 +.L2032: cmp w24, w28 - ble .L2000 + ble .L2064 mov w0, w24 bl FlashTestBlk - cbz w0, .L1968 + cbz w0, .L2033 mov w1, w24 mov x0, x27 bl printk add x0, x20, :lo12:.LANCHOR4 ubfx x1, x24, 5, 11 lsl x1, x1, 2 - ldr x3, [x0,1592] + ldr x3, [x0,1600] mov w0, 1 lsl w0, w0, w24 ldr w4, [x3,x1] orr w0, w4, w0 str w0, [x3,x1] -.L1968: +.L2033: sub w2, w24, #1 uxth w24, w2 - b .L1967 -.L2000: + b .L2032 +.L2064: add x2, x21, :lo12:.LANCHOR0 add x1, x20, :lo12:.LANCHOR4 ldrb w0, [x2,73] - ldr w3, [x1,1628] + ldr w3, [x1,1636] sub w0, w0, w3 cmp w22, w0 - bcc .L1963 - ldrh w2, [x2,188] - ldr x0, [x1,1592] + bcc .L2028 + ldrh w2, [x2,196] + ldr x0, [x1,1600] mov w1, 0 lsl w2, w2, 9 bl ftl_memset -.L1963: - adrp x24, .LC121 +.L2028: + adrp x24, .LC124 ldr w28, [x29,124] mul w27, w19, w23 - add x24, x24, :lo12:.LC121 + add x24, x24, :lo12:.LC124 mov w22, -3872 -.L1971: +.L2036: mov w2, w28 mov x0, x24 mov w1, w19 bl printk add x0, x20, :lo12:.LANCHOR4 - ldr x2, [x0,1592] -.L1972: + ldr x2, [x0,1600] +.L2037: ubfx x0, x28, 5, 11 ldr w0, [x2,x0,lsl 2] lsr w0, w0, w28 and w1, w0, 1 - tbz x0, 0, .L2001 + tbz x0, 0, .L2065 sub w28, w28, #1 uxth w28, w28 - b .L1972 -.L2001: + b .L2037 +.L2065: add x0, x20, :lo12:.LANCHOR4 - add x2, x0, 1680 + add x2, x0, 1688 strh w28, [x2,x25,lsl 1] ldr x2, [x29,136] strh w22, [x2] strh w28, [x2,2] strh w1, [x2,8] - ldr x1, [x0,1592] - ldr x0, [x0,1648] + ldr x1, [x0,1600] + ldr x0, [x0,1656] str x0, [x29,184] add w0, w28, w27 str x1, [x29,176] @@ -12950,15 +13307,15 @@ FlashMakeFactorBbt: mov w3, w1 bl FlashProgPages ldr w0, [x29,168] - cbz w0, .L1977 + cbz w0, .L2042 sub w28, w28, #1 uxth w28, w28 - b .L1971 -.L1977: + b .L2036 +.L2042: add w19, w19, 1 uxtb w19, w19 - b .L1947 -.L1998: + b .L2012 +.L2062: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12984,52 +13341,52 @@ FtlLowFormatEraseBlock: add x1, x20, :lo12:.LANCHOR2 uxth w26, w0 stp x27, x28, [sp,80] - ldrb w0, [x24,2457] - ldr w2, [x1,416] + ldrb w0, [x24,2368] + ldr w2, [x1,424] str w0, [x29,120] mov w0, 0 - cbnz w2, .L2003 - ldrb w0, [x24,196] + cbnz w2, .L2067 + ldrb w0, [x24,204] mov w28, w2 str w0, [x29,124] mov w21, w2 - str w26, [x1,3572] + str w26, [x1,3580] mov w19, w2 mov w27, 56 -.L2004: - ldrh w0, [x24,2468] +.L2068: + ldrh w0, [x24,2472] cmp w0, w28 - bls .L2048 + bls .L2112 add x1, x20, :lo12:.LANCHOR2 umull x0, w28, w27 - ldr x1, [x1,424] + ldr x1, [x1,432] str wzr, [x1,x0] - add x0, x24, 2496 + add x0, x24, 2504 mov w1, w26 ldrb w0, [x0,w28,sxtw] bl V2P_block uxth w23, w0 mov w1, w23 - cbz w25, .L2005 + cbz w25, .L2069 str x1, [x29,112] bl IsBlkInVendorPart ldr x1, [x29,112] - cbnz w0, .L2006 -.L2005: + cbnz w0, .L2070 +.L2069: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L2007 + cbnz w0, .L2071 add x3, x20, :lo12:.LANCHOR2 lsl w23, w23, 10 umull x0, w21, w27 mov w2, 4 - ldr x1, [x3,424] + ldr x1, [x3,432] add x1, x1, x0 str w23, [x1,4] - ldr x1, [x3,424] - ldr x3, [x3,3664] + ldr x1, [x3,432] + ldr x3, [x3,3672] add x1, x1, x0 - ldrh w0, [x24,2548] + ldrh w0, [x24,2556] mul w0, w21, w0 add w21, w21, 1 str xzr, [x1,8] @@ -13037,145 +13394,145 @@ FtlLowFormatEraseBlock: uxth w21, w21 add x0, x3, x0, sxtw 2 str x0, [x1,16] - b .L2006 -.L2007: + b .L2070 +.L2071: add w19, w19, 1 uxth w19, w19 -.L2006: +.L2070: add w2, w28, 1 uxth w28, w2 - b .L2004 -.L2048: - cbz w21, .L2027 + b .L2068 +.L2112: + cbz w21, .L2091 ldr w0, [x29,124] mov w2, w21 - strb wzr, [x24,2457] + strb wzr, [x24,2368] mov x27, 56 cmp w0, wzr add x0, x20, :lo12:.LANCHOR2 cset w23, ne mov w1, w23 - ldr x0, [x0,424] + ldr x0, [x0,432] bl FlashEraseBlocks ldrb w0, [x29,120] - strb w0, [x24,2457] + strb w0, [x24,2368] mov x24, 0 -.L2010: +.L2074: cmp w21, w24, uxth - bls .L2049 + bls .L2113 add x1, x20, :lo12:.LANCHOR2 mul x0, x24, x27 - ldr x1, [x1,424] + ldr x1, [x1,432] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L2011 + bne .L2075 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L2011: +.L2075: add x24, x24, 1 - b .L2010 -.L2049: - cbnz w25, .L2013 + b .L2074 +.L2113: + cbnz w25, .L2077 mov w0, 1 uxth w23, w23 mov w28, 6 str w0, [x29,124] - b .L2014 -.L2013: + b .L2078 +.L2077: add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,2538] - ldrb w0, [x0,196] + ldrh w1, [x0,2546] + ldrb w0, [x0,204] str w1, [x29,124] - cbnz w0, .L2030 + cbnz w0, .L2094 uxtw x0, w1 mov w23, 1 lsr w28, w0, 2 - b .L2014 -.L2030: + b .L2078 +.L2094: mov w23, 1 mov w28, w23 -.L2014: +.L2078: mov w24, 0 add x22, x22, :lo12:.LANCHOR0 -.L2023: +.L2087: mov w27, 0 mov w21, w27 -.L2015: - ldrh w0, [x22,2468] +.L2079: + ldrh w0, [x22,2472] cmp w0, w27 - bls .L2050 + bls .L2114 add x1, x20, :lo12:.LANCHOR2 mov w0, 56 umull x0, w27, w0 - ldr x1, [x1,424] + ldr x1, [x1,432] str wzr, [x1,x0] - add x0, x22, 2496 + add x0, x22, 2504 mov w1, w26 ldrb w0, [x0,w27,sxtw] bl V2P_block uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w25, .L2016 + cbz w25, .L2080 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L2017 -.L2016: + cbnz w0, .L2081 +.L2080: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L2017 + cbnz w0, .L2081 add x2, x20, :lo12:.LANCHOR2 mov w0, 56 ldr w3, [x29,112] umull x0, w21, w0 - ldr x1, [x2,424] + ldr x1, [x2,432] add w3, w24, w3, lsl 10 add x1, x1, x0 str w3, [x1,4] mov w3, 4 - ldr x1, [x2,424] + ldr x1, [x2,432] add x1, x1, x0 - ldr x0, [x2,3640] - ldr x2, [x2,3648] + ldr x0, [x2,3648] + ldr x2, [x2,3656] str x0, [x1,8] - ldrh w0, [x22,2548] + ldrh w0, [x22,2556] mul w0, w21, w0 add w21, w21, 1 sdiv w0, w0, w3 uxth w21, w21 add x0, x2, x0, sxtw 2 str x0, [x1,16] -.L2017: +.L2081: add w4, w27, 1 uxth w27, w4 - b .L2015 -.L2050: - cbz w21, .L2027 + b .L2079 +.L2114: + cbz w21, .L2091 add x0, x20, :lo12:.LANCHOR2 mov w1, w21 mov w2, w23 mov w3, 1 - strb wzr, [x22,2457] - ldr x0, [x0,424] + strb wzr, [x22,2368] + ldr x0, [x0,432] bl FlashProgPages ldrb w0, [x29,120] mov x1, 0 - strb w0, [x22,2457] -.L2020: + strb w0, [x22,2368] +.L2084: cmp w21, w1, uxth - bls .L2051 + bls .L2115 add x2, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x1, x0 - ldr x2, [x2,424] + ldr x2, [x2,432] add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L2021 + cbz w0, .L2085 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -13183,47 +13540,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L2021: +.L2085: add x1, x1, 1 - b .L2020 -.L2051: + b .L2084 +.L2115: add w24, w24, w28 ldr w0, [x29,124] uxth w24, w24 cmp w24, w0 - bcc .L2023 + bcc .L2087 mov x22, 0 mov x24, 56 -.L2024: +.L2088: cmp w21, w22, uxth - bls .L2052 - cbz w25, .L2025 + bls .L2116 + cbz w25, .L2089 add x1, x20, :lo12:.LANCHOR2 mul x0, x22, x24 - ldr x1, [x1,424] + ldr x1, [x1,432] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L2025 + cbnz w0, .L2089 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L2025: +.L2089: add x22, x22, 1 - b .L2024 -.L2052: + b .L2088 +.L2116: cmp w26, 63 - bls .L2031 - cbz w25, .L2027 -.L2031: + bls .L2095 + cbz w25, .L2091 +.L2095: add x20, x20, :lo12:.LANCHOR2 mov w1, w23 mov w2, w21 - ldr x0, [x20,424] + ldr x0, [x20,432] bl FlashEraseBlocks -.L2027: +.L2091: mov w0, w19 -.L2003: +.L2067: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13245,70 +13602,70 @@ FtlBbmTblFlush: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w1, [x2,416] - cbnz w1, .L2055 + ldr w1, [x2,424] + cbnz w1, .L2119 adrp x19, .LANCHOR4 adrp x20, .LANCHOR0 add x24, x19, :lo12:.LANCHOR4 add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x2,3608] + ldr x0, [x2,3616] mov x21, 0 - ldr x2, [x2,3656] - add x23, x20, 2616 - str x2, [x24,1712] - ldrh w2, [x20,2546] - str x0, [x24,1704] + ldr x2, [x2,3664] + add x23, x20, 2624 + str x2, [x24,1720] + ldrh w2, [x20,2554] + str x0, [x24,1712] bl ftl_memset -.L2056: - ldrh w1, [x20,2490] +.L2120: + ldrh w1, [x20,2494] mov w0, w21 add x21, x21, 1 cmp w0, w1 - bge .L2069 + bge .L2133 add x1, x22, :lo12:.LANCHOR2 - ldr x3, [x24,1704] - ldrh w2, [x1,3784] + ldr x3, [x24,1712] + ldrh w2, [x1,3792] add x1, x23, x21, lsl 3 ldr x1, [x1,24] mul w0, w0, w2 add x0, x3, x0, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - b .L2056 -.L2069: + b .L2120 +.L2133: add x19, x19, :lo12:.LANCHOR4 mov w1, 255 - add x19, x19, 1696 + add x19, x19, 1704 mov w2, 16 mov w24, 0 - adrp x26, .LC122 + adrp x26, .LC125 ldr x21, [x19,16] - adrp x27, .LC123 + adrp x27, .LC126 mov w25, w24 - add x26, x26, :lo12:.LC122 + add x26, x26, :lo12:.LC125 mov x0, x21 - add x27, x27, :lo12:.LC123 + add x27, x27, :lo12:.LC126 bl ftl_memset mov w0, -3887 strh w0, [x21] ldr w0, [x23,8] str w0, [x21,4] - ldrh w0, [x20,2616] + ldrh w0, [x20,2624] strh w0, [x21,2] ldrh w0, [x23,4] strh w0, [x21,8] ldrh w0, [x23,6] strh w0, [x21,10] - ldr w0, [x20,2464] + ldr w0, [x20,2468] strh w0, [x21,12] -.L2058: +.L2122: add x28, x22, :lo12:.LANCHOR2 - ldrh w1, [x20,2616] - ldrh w2, [x20,2618] - ldrh w3, [x20,2620] - ldr x0, [x28,3608] + ldrh w1, [x20,2624] + ldrh w2, [x20,2626] + ldrh w3, [x20,2628] + ldr x0, [x28,3616] str x0, [x19,8] - ldr x0, [x28,3656] + ldr x0, [x28,3664] str x0, [x19,16] orr w0, w2, w1, lsl 10 str w0, [x19,4] @@ -13316,64 +13673,64 @@ FtlBbmTblFlush: ldrh w4, [x21,10] str wzr, [x19] bl printk - ldrh w0, [x20,2538] - ldrh w1, [x20,2618] + ldrh w0, [x20,2546] + ldrh w1, [x20,2626] sub w0, w0, #1 cmp w1, w0 - blt .L2059 - ldr w0, [x20,2624] - strh wzr, [x20,2618] + blt .L2123 + ldr w0, [x20,2632] + strh wzr, [x20,2626] add w0, w0, 1 - str w0, [x20,2624] + str w0, [x20,2632] str w0, [x21,4] - ldrh w0, [x20,2616] - ldrh w1, [x20,2620] + ldrh w0, [x20,2624] + ldrh w1, [x20,2628] strh w0, [x21,8] - strh w0, [x20,2620] - ldr x0, [x28,424] - strh w1, [x20,2616] + strh w0, [x20,2628] + ldr x0, [x28,432] + strh w1, [x20,2624] lsl w1, w1, 10 str w1, [x19,4] str w1, [x0,4] mov w1, 1 mov w2, w1 - ldr x0, [x28,424] + ldr x0, [x28,432] bl FlashEraseBlocks -.L2059: +.L2123: mov w1, 1 mov x0, x19 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w0, [x20,2618] + ldrh w0, [x20,2626] add w0, w0, 1 - strh w0, [x20,2618] + strh w0, [x20,2626] ldr w0, [x19] cmn w0, #1 - bne .L2060 + bne .L2124 ldr w1, [x19,4] mov x0, x27 add w24, w24, 1 bl printk uxth w24, w24 cmp w24, 3 - bls .L2058 - adrp x0, .LC124 + bls .L2122 + adrp x0, .LC127 ldr w1, [x19,4] - add x0, x0, :lo12:.LC124 + add x0, x0, :lo12:.LC127 mov w2, w24 add x22, x22, :lo12:.LANCHOR2 bl printk mov w0, 1 - str w0, [x22,416] - b .L2055 -.L2060: + str w0, [x22,424] + b .L2119 +.L2124: add w25, w25, 1 cmp w25, 1 - beq .L2058 + beq .L2122 cmp w0, 256 - beq .L2058 -.L2055: + beq .L2122 +.L2119: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13395,213 +13752,213 @@ allocate_data_superblock: add x19, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w1, [x19,416] + ldr w1, [x19,424] stp x27, x28, [sp,80] - cbnz w1, .L2071 + cbnz w1, .L2135 mov x20, x0 - add x23, x19, 648 + add x23, x19, 656 adrp x22, .LANCHOR0 mov w24, 7 - add x25, x19, 536 -.L2072: + add x25, x19, 544 +.L2136: cmp x20, x23 - bne .L2073 - ldrh w2, [x19,544] - ldr w4, [x19,1372] + bne .L2137 + ldrh w2, [x19,552] + ldr w4, [x19,1380] lsr w3, w2, 1 add w1, w3, 1 mul w0, w2, w4 add w1, w1, w0, lsr 2 add x0, x22, :lo12:.LANCHOR0 uxth w1, w1 - ldr w0, [x0,2460] - cbz w0, .L2074 - ldr w0, [x19,768] + ldr w0, [x0,2372] + cbz w0, .L2138 + ldr w0, [x19,776] cmp w0, 39 - bhi .L2074 + bhi .L2138 cmp w0, 2 mov w1, 0 - bls .L2075 - tbz x2, 0, .L2102 - cbz w4, .L2075 -.L2102: + bls .L2139 + tbz x2, 0, .L2166 + cbz w4, .L2139 +.L2166: mov w1, w3 - b .L2074 -.L2073: + b .L2138 +.L2137: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L2075 + bne .L2139 add x2, x22, :lo12:.LANCHOR0 - ldrh w0, [x2,2488] + ldrh w0, [x2,2492] cmp w0, 1 - beq .L2075 - ldrb w0, [x2,196] - cbnz w0, .L2075 - ldr w2, [x2,2460] - ldrh w0, [x19,544] + beq .L2139 + ldrb w0, [x2,204] + cbnz w0, .L2139 + ldr w2, [x2,2372] + ldrh w0, [x19,552] lsr w1, w0, 3 - cbz w2, .L2074 - ldr w2, [x19,768] + cbz w2, .L2138 + ldr w2, [x19,776] cmp w2, 1 - bhi .L2074 + bhi .L2138 mul w1, w0, w24 lsr w1, w1, 3 -.L2074: - cbz w1, .L2075 +.L2138: + cbz w1, .L2139 sub w1, w1, #1 uxth w1, w1 -.L2075: +.L2139: ldrb w2, [x20,8] mov x0, x25 add x27, x22, :lo12:.LANCHOR0 bl List_pop_index_node uxth w28, w0 - ldrh w0, [x19,544] + ldrh w0, [x19,552] sub w0, w0, #1 - strh w0, [x19,544] - ldrh w0, [x27,2476] + strh w0, [x19,552] + ldrh w0, [x27,2480] cmp w0, w28 - bls .L2072 + bls .L2136 ubfiz x26, x28, 1, 16 - ldr x0, [x19,512] + ldr x0, [x19,520] ldrh w0, [x0,x26] - cbnz w0, .L2072 + cbnz w0, .L2136 strh w28, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L2127 + cbz w0, .L2191 mov x0, 0 - ldrh w5, [x27,2468] + ldrh w5, [x27,2472] mov x3, 56 mov w27, w0 mov w6, 65535 -.L2079: +.L2143: cmp w5, w0, uxth - bls .L2130 - ldr x4, [x19,424] + bls .L2194 + ldr x4, [x19,432] madd x1, x0, x3, x4 str xzr, [x1,16] str xzr, [x1,8] add x1, x20, x0, lsl 1 ldrh w1, [x1,16] cmp w1, w6 - beq .L2080 + beq .L2144 umull x2, w27, w3 add w27, w27, 1 lsl w1, w1, 10 add x2, x4, x2 uxth w27, w27 str w1, [x2,4] -.L2080: +.L2144: add x0, x0, 1 - b .L2079 -.L2130: - add x0, x19, 552 + b .L2143 +.L2194: + add x0, x19, 560 cmp x20, x0 - bne .L2082 + bne .L2146 add x1, x22, :lo12:.LANCHOR0 - ldr w1, [x1,2460] - cbz w1, .L2082 - ldr x1, [x19,432] + ldr w1, [x1,2372] + cbz w1, .L2146 + ldr x1, [x19,440] ldrh w1, [x1,x26] cmp w1, 40 - bls .L2082 - strb wzr, [x19,560] -.L2082: + bls .L2146 + strb wzr, [x19,568] +.L2146: ldrb w0, [x20,8] - cbnz w0, .L2083 - ldr x0, [x19,432] + cbnz w0, .L2147 + ldr x0, [x19,440] mov w1, 2 ldrh w2, [x0,x26] - cbz w2, .L2128 + cbz w2, .L2192 add x1, x22, :lo12:.LANCHOR0 - ldrh w1, [x1,2528] + ldrh w1, [x1,2536] add w1, w2, w1 -.L2128: +.L2192: strh w1, [x0,x26] mov w1, 0 - ldr w0, [x19,752] + ldr w0, [x19,760] add w0, w0, 1 - str w0, [x19,752] + str w0, [x19,760] mov w0, w28 bl ftl_set_blk_mode - b .L2086 -.L2083: - ldr x1, [x19,432] + b .L2150 +.L2147: + ldr x1, [x19,440] ldrh w0, [x1,x26] add w0, w0, 1 strh w0, [x1,x26] - ldr w0, [x19,756] + ldr w0, [x19,764] add w0, w0, 1 - str w0, [x19,756] + str w0, [x19,764] mov w0, w28 bl ftl_set_blk_mode.part.9 -.L2086: - ldr x0, [x19,432] - ldr w1, [x19,764] +.L2150: + ldr x0, [x19,440] + ldr w1, [x19,772] ldrh w0, [x0,x26] cmp w0, w1 - bls .L2087 - str w0, [x19,764] -.L2087: + bls .L2151 + str w0, [x19,772] +.L2151: add x2, x22, :lo12:.LANCHOR0 - ldr w3, [x19,752] - ldr w0, [x19,756] - ldrh w1, [x2,2528] + ldr w3, [x19,760] + ldr w0, [x19,764] + ldrh w1, [x2,2536] madd w0, w1, w3, w0 - ldrh w1, [x2,2476] + ldrh w1, [x2,2480] mov x3, 56 udiv w0, w0, w1 - ldr x1, [x19,3696] - str w0, [x19,760] + ldr x1, [x19,3704] + str w0, [x19,768] ldr w0, [x1,16] add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L2088: +.L2152: cmp w27, w0, uxth - bls .L2131 - ldr x1, [x19,424] + bls .L2195 + ldr x1, [x19,432] madd x1, x0, x3, x1 add x0, x0, 1 ldr w2, [x1,4] and w2, w2, -1024 str w2, [x1,4] - b .L2088 -.L2131: + b .L2152 +.L2195: add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbz w0, .L2090 + ldrb w0, [x0,204] + cbz w0, .L2154 ldrb w0, [x20,8] cmp w0, 1 - ldr x0, [x19,424] - bne .L2091 + ldr x0, [x19,432] + bne .L2155 mov w1, 0 - b .L2129 -.L2091: + b .L2193 +.L2155: mov w1, 1 -.L2129: +.L2193: mov w2, w27 bl FlashEraseBlocks -.L2090: +.L2154: ldrb w1, [x20,8] mov w2, w27 - ldr x0, [x19,424] + ldr x0, [x19,432] bl FlashEraseBlocks mov x1, 0 mov x4, 56 mov w2, w1 -.L2092: +.L2156: cmp w27, w1, uxth - bls .L2132 + bls .L2196 mul x0, x1, x4 - ldr x3, [x19,424] + ldr x3, [x19,432] add x5, x3, x0 ldr w3, [x3,x0] cmn w3, #1 - bne .L2093 + bne .L2157 ldr w0, [x5,4] add w2, w2, 1 str x4, [x29,104] @@ -13620,41 +13977,41 @@ allocate_data_superblock: ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L2093: +.L2157: add x1, x1, 1 - b .L2092 -.L2132: - cbz w2, .L2095 + b .L2156 +.L2196: + cbz w2, .L2159 mov w0, w28 bl update_multiplier_value bl FtlBbmTblFlush -.L2095: +.L2159: ldrb w0, [x20,7] - cbnz w0, .L2096 -.L2127: - ldr x0, [x19,512] + cbnz w0, .L2160 +.L2191: + ldr x0, [x19,520] mov w1, -1 strh w1, [x0,x26] - b .L2072 -.L2096: + b .L2136 +.L2160: adrp x1, .LANCHOR0 add x21, x21, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR0 strh wzr, [x20,2] strb wzr, [x20,6] - ldrh w1, [x1,2536] + ldrh w1, [x1,2544] strh w28, [x20] mul w0, w0, w1 - ldr w1, [x21,744] + ldr w1, [x21,752] str w1, [x20,12] uxth w0, w0 add w1, w1, 1 strh w0, [x20,4] - str w1, [x21,744] - ldr x1, [x21,512] + str w1, [x21,752] + ldr x1, [x21,520] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L2071: +.L2135: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13676,63 +14033,63 @@ FtlGcFreeBadSuperBlk: add x19, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] uxth w23, w0 - ldrh w0, [x19,1456] + ldrh w0, [x19,1464] stp x21, x22, [sp,32] mov w21, 0 - cbz w0, .L2135 + cbz w0, .L2199 adrp x22, .LANCHOR0 - adrp x24, .LC125 + adrp x24, .LC128 add x22, x22, :lo12:.LANCHOR0 - add x24, x24, :lo12:.LC125 -.L2143: - ldrh w0, [x22,2468] + add x24, x24, :lo12:.LC128 +.L2207: + ldrh w0, [x22,2472] cmp w0, w21 - bls .L2144 - add x0, x22, 2496 + bls .L2208 + add x0, x22, 2504 mov w1, w23 mov w20, 0 ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w25, w0 -.L2136: - ldrh w0, [x19,1456] +.L2200: + ldrh w0, [x19,1464] cmp w0, w20 - bls .L2145 - add x0, x19, 1464 + bls .L2209 + add x0, x19, 1472 ldrh w0, [x0,w20,sxtw 1] cmp w0, w25 - bne .L2137 + bne .L2201 mov w1, w25 mov x0, x24 bl printk mov w0, w25 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w2, [x19,1456] + ldrh w2, [x19,1464] mov w3, w20 -.L2138: +.L2202: cmp w3, w2 - bcs .L2146 - add x4, x19, 1464 + bcs .L2210 + add x4, x19, 1472 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L2138 -.L2146: + b .L2202 +.L2210: sub w2, w2, #1 - strh w2, [x19,1456] -.L2137: + strh w2, [x19,1464] +.L2201: add w20, w20, 1 uxth w20, w20 - b .L2136 -.L2145: + b .L2200 +.L2209: add w21, w21, 1 uxth w21, w21 - b .L2143 -.L2144: + b .L2207 +.L2208: bl FtlGcReFreshBadBlk -.L2135: +.L2199: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -13752,45 +14109,45 @@ update_vpc_list: uxth w19, w0 add x1, x20, :lo12:.LANCHOR2 ubfiz x0, x19, 1, 16 - ldr x2, [x1,512] + ldr x2, [x1,520] ldrh w2, [x2,x0] - cbnz w2, .L2148 - ldrh w0, [x1,792] + cbnz w2, .L2212 + ldrh w0, [x1,800] cmp w0, w19 - bne .L2149 + bne .L2213 mov w0, -1 - strh w0, [x1,792] - b .L2150 -.L2149: - ldrh w3, [x1,552] + strh w0, [x1,800] + b .L2214 +.L2213: + ldrh w3, [x1,560] mov w0, w2 cmp w3, w19 - beq .L2151 - ldrh w3, [x1,600] + beq .L2215 + ldrh w3, [x1,608] cmp w3, w19 - beq .L2151 - ldrh w1, [x1,648] + beq .L2215 + ldrh w1, [x1,656] cmp w1, w19 - beq .L2151 -.L2150: + beq .L2215 +.L2214: add x20, x20, :lo12:.LANCHOR2 mov w1, w19 - add x0, x20, 504 + add x0, x20, 512 bl List_remove_node - ldrh w0, [x20,528] + ldrh w0, [x20,536] sub w0, w0, #1 - strh w0, [x20,528] + strh w0, [x20,536] mov w0, w19 bl free_data_superblock mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2151 -.L2148: + b .L2215 +.L2212: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2151: +.L2215: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -13807,65 +14164,65 @@ decrement_vpc_count: stp x21, x22, [sp,32] cmp w19, w0 adrp x20, .LANCHOR2 - beq .L2156 + beq .L2220 add x21, x20, :lo12:.LANCHOR2 ubfiz x22, x19, 1, 16 - ldr x0, [x21,512] + ldr x0, [x21,520] ldrh w2, [x0,x22] - cbnz w2, .L2157 - adrp x0, .LC126 + cbnz w2, .L2221 + adrp x0, .LC129 mov w1, w19 - add x0, x0, :lo12:.LC126 - add x20, x21, 536 + add x0, x0, :lo12:.LC129 + add x20, x21, 544 bl printk - ldr x0, [x21,512] + ldr x0, [x21,520] mov w1, 32 strh w1, [x0,x22] mov x0, x20 mov w1, w19 bl test_node_in_list - cbz w0, .L2158 + cbz w0, .L2222 mov w1, w19 mov x0, x20 bl List_remove_node - ldrh w0, [x21,544] + ldrh w0, [x21,552] sub w0, w0, #1 - strh w0, [x21,544] + strh w0, [x21,552] mov w0, w19 bl INSERT_DATA_LIST - ldr x2, [x21,512] - adrp x0, .LC127 - add x0, x0, :lo12:.LC127 + ldr x2, [x21,520] + adrp x0, .LC130 + add x0, x0, :lo12:.LC130 mov w1, w19 ldrh w2, [x2,x22] bl printk -.L2158: +.L2222: mov w0, w19 bl FtlGcRefreshBlock - b .L2165 -.L2157: + b .L2229 +.L2221: sub w2, w2, #1 strh w2, [x0,x22] -.L2156: +.L2220: add x20, x20, :lo12:.LANCHOR2 mov w0, 65535 - ldrh w1, [x20,3872] + ldrh w1, [x20,3880] cmp w1, w0 - bne .L2160 - strh w19, [x20,3872] -.L2165: + bne .L2224 + strh w19, [x20,3880] +.L2229: mov w0, 0 - b .L2159 -.L2160: + b .L2223 +.L2224: cmp w1, w19 mov w0, 0 - beq .L2159 + beq .L2223 mov w0, w1 bl update_vpc_list cmp w0, wzr cset w0, ne - strh w19, [x20,3872] -.L2159: + strh w19, [x20,3880] +.L2223: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -13880,87 +14237,87 @@ FtlSlcSuperblockCheck: stp x19, x20, [sp,16] stp x21, x22, [sp,32] ldrh w1, [x0,4] - cbz w1, .L2166 + cbz w1, .L2230 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2166 + beq .L2230 mov x19, x0 ldrb w0, [x0,6] adrp x21, .LANCHOR2 adrp x22, .LANCHOR0 add x0, x0, 8 add x21, x21, :lo12:.LANCHOR2 - add x21, x21, 1500 + add x21, x21, 1508 ldrh w0, [x19,x0,lsl 1] -.L2170: +.L2234: cmp w0, w20 - bne .L2177 -.L2172: + bne .L2241 +.L2236: ldrb w0, [x19,6] add x1, x22, :lo12:.LANCHOR0 add w0, w0, 1 - ldrh w1, [x1,2468] + ldrh w1, [x1,2472] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2171 + bne .L2235 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2171: +.L2235: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2170 -.L2177: + b .L2234 +.L2241: ldrb w1, [x19,8] cmp w1, 1 - bne .L2173 + bne .L2237 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbnz w0, .L2173 + ldrb w0, [x0,204] + cbnz w0, .L2237 ldrh w0, [x19,2] ldrh w0, [x21,w0,sxtw 1] cmp w0, w20 - bne .L2173 + bne .L2237 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count ldrh w1, [x19,4] - cbnz w1, .L2172 + cbnz w1, .L2236 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2166 -.L2173: + b .L2230 +.L2237: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w2, [x0,196] - cbz w2, .L2166 + ldrb w2, [x0,204] + cbz w2, .L2230 cmp w1, 1 - bne .L2166 + bne .L2230 ldrh w2, [x19,2] - ldrh w1, [x0,2538] + ldrh w1, [x0,2546] cmp w2, w1 - bcc .L2166 - adrp x2, .LANCHOR2+512 + bcc .L2230 + adrp x2, .LANCHOR2+520 ldrh w1, [x19] ldrh w4, [x19,4] lsl x1, x1, 1 - ldr x3, [x2,#:lo12:.LANCHOR2+512] + ldr x3, [x2,#:lo12:.LANCHOR2+520] ldrh w2, [x3,x1] sub w2, w2, w4 strh w2, [x3,x1] strh wzr, [x19,4] - ldrh w0, [x0,2536] + ldrh w0, [x0,2544] strh w0, [x19,2] strb wzr, [x19,6] -.L2166: +.L2230: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -13983,48 +14340,48 @@ get_new_active_ppa: mov w22, 65535 add x0, x0, 8 adrp x23, .LANCHOR0 - add x21, x21, 1500 + add x21, x21, 1508 ldrh w0, [x19,x0,lsl 1] -.L2179: +.L2243: cmp w0, w22 adrp x20, .LANCHOR0 - bne .L2194 -.L2180: + bne .L2258 +.L2244: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR0 add w0, w0, 1 - ldrh w1, [x1,2468] + ldrh w1, [x1,2472] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2181 + bne .L2245 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2181: +.L2245: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2179 -.L2194: + b .L2243 +.L2258: ldrb w1, [x19,8] cmp w1, 1 - bne .L2182 + bne .L2246 add x1, x23, :lo12:.LANCHOR0 - ldrb w1, [x1,196] - cbnz w1, .L2182 + ldrb w1, [x1,204] + cbnz w1, .L2246 ldrh w1, [x19,2] ldrh w1, [x21,w1,sxtw 1] cmp w1, w22 - bne .L2182 + bne .L2246 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2180 -.L2182: + b .L2244 +.L2246: ldrh w1, [x19,4] adrp x21, .LANCHOR2 ldrh w22, [x19,2] @@ -14034,64 +14391,64 @@ get_new_active_ppa: orr w22, w22, w0, lsl 10 strh w1, [x19,4] mov w24, w23 - add x21, x21, 1500 -.L2183: + add x21, x21, 1508 +.L2247: add x0, x20, :lo12:.LANCHOR0 ldrb w1, [x19,6] - ldrh w2, [x0,2468] -.L2185: + ldrh w2, [x0,2472] +.L2249: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2184 + bne .L2248 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2184: +.L2248: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2185 + beq .L2249 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2190 + bne .L2254 add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbnz w0, .L2187 + ldrb w0, [x0,204] + cbnz w0, .L2251 ldrh w0, [x19,2] ldrh w0, [x21,w0,sxtw 1] cmp w0, w24 - bne .L2187 + bne .L2251 ldrh w1, [x19,4] - cbz w1, .L2187 + cbz w1, .L2251 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2183 -.L2187: + b .L2247 +.L2251: add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,196] - cbz w0, .L2190 + ldrb w0, [x20,204] + cbz w0, .L2254 ldrh w1, [x19,2] - ldrh w0, [x20,2538] + ldrh w0, [x20,2546] cmp w1, w0 - bcc .L2190 - adrp x0, .LANCHOR2+512 + bcc .L2254 + adrp x0, .LANCHOR2+520 ldrh w1, [x19] ldrh w3, [x19,4] lsl x1, x1, 1 - ldr x0, [x0,#:lo12:.LANCHOR2+512] + ldr x0, [x0,#:lo12:.LANCHOR2+520] ldrh w2, [x0,x1] sub w2, w2, w3 strh w2, [x0,x1] strh wzr, [x19,4] - ldrh w0, [x20,2536] + ldrh w0, [x20,2544] strh w0, [x19,2] strb wzr, [x19,6] -.L2190: +.L2254: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14111,17 +14468,17 @@ FtlVpcTblFlush: add x19, x23, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - ldr w0, [x19,416] + ldr w0, [x19,424] stp x27, x28, [sp,80] - cbnz w0, .L2197 + cbnz w0, .L2261 adrp x26, .LANCHOR4 - ldr x21, [x19,3656] + ldr x21, [x19,3664] add x22, x26, :lo12:.LANCHOR4 - ldr x1, [x19,3608] - ldrh w2, [x19,776] - add x20, x19, 448 + ldr x1, [x19,3616] + ldrh w2, [x19,784] + add x20, x19, 456 adrp x24, .LANCHOR0 - add x22, x22, 1696 + add x22, x22, 1704 str x1, [x22,8] add x25, x24, :lo12:.LANCHOR0 str x21, [x22,16] @@ -14129,53 +14486,53 @@ FtlVpcTblFlush: mov w2, -3932 strh w2, [x21] str w0, [x21,12] - ldr w2, [x19,784] + ldr w2, [x19,792] str w2, [x21,4] str w0, [x21,8] mov w0, 19539 - ldrh w1, [x19,552] + ldrh w1, [x19,560] movk w0, 0x4654, lsl 16 strh w1, [x20,14] - ldrh w1, [x19,554] - ldrb w2, [x19,558] - str w0, [x19,448] - mov w0, 96 + ldrh w1, [x19,562] + ldrb w2, [x19,566] + str w0, [x19,456] + mov w0, 99 orr w1, w2, w1, lsl 6 strh w1, [x20,16] - ldrh w1, [x19,600] + ldrh w1, [x19,608] movk w0, 0x5000, lsl 16 strh w1, [x20,18] - ldrh w1, [x19,602] + ldrh w1, [x19,610] str w0, [x20,4] - ldrb w2, [x19,606] - ldrh w0, [x19,782] + ldrb w2, [x19,614] + ldrh w0, [x19,790] strh w0, [x20,8] orr w1, w2, w1, lsl 6 - ldrh w0, [x25,2490] + ldrh w0, [x25,2494] strb w0, [x20,10] - ldrb w0, [x19,560] + ldrb w0, [x19,568] strb w0, [x20,11] strh w1, [x20,20] - ldrb w0, [x19,608] - ldrh w1, [x19,648] + ldrb w0, [x19,616] + ldrh w1, [x19,656] strb w0, [x20,12] strh w1, [x20,22] - ldrh w1, [x19,650] - ldrb w0, [x19,656] + ldrh w1, [x19,658] + ldrb w0, [x19,664] strb w0, [x20,13] - ldr w0, [x19,752] + ldr w0, [x19,760] str w0, [x20,32] - ldr w0, [x19,744] + ldr w0, [x19,752] str w0, [x20,40] - ldr w0, [x19,748] - ldrb w2, [x19,654] + ldr w0, [x19,756] + ldrb w2, [x19,662] str w0, [x20,36] - ldrh w0, [x19,1448] + ldrh w0, [x19,1456] orr w1, w2, w1, lsl 6 strh w0, [x20,44] - ldrh w0, [x19,1450] + ldrh w0, [x19,1458] strh w0, [x20,46] - ldrh w2, [x25,2546] + ldrh w2, [x25,2554] ldr x0, [x22,8] strh w1, [x20,24] mov w1, 255 @@ -14186,25 +14543,25 @@ FtlVpcTblFlush: mov x20, x26 bl ftl_memcpy ldr x0, [x22,8] - ldrh w2, [x25,2476] - ldr x1, [x19,512] + ldrh w2, [x25,2480] + ldr x1, [x19,520] add x0, x0, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x25,2476] + ldrh w2, [x25,2480] ldr x1, [x22,8] - uxth x0, w2 + ubfiz x0, x2, 1, 16 lsr w2, w2, 3 - add x0, x0, 24 + add x0, x0, 51 add w2, w2, 4 - lsr x0, x0, 1 - add x0, x1, x0, lsl 2 + and x0, x0, 262140 + add x0, x1, x0 ldr x1, [x24,#:lo12:.LANCHOR0] bl ftl_memcpy - ldrh w0, [x25,2580] - cbz w0, .L2198 - ldrh w0, [x25,2476] - ldrh w2, [x25,2572] + ldrh w0, [x25,2588] + cbz w0, .L2262 + ldrh w0, [x25,2480] + ldrh w2, [x25,2580] lsr w1, w0, 3 add w0, w1, w0, lsl 1 ldr x1, [x22,8] @@ -14212,96 +14569,96 @@ FtlVpcTblFlush: lsl w2, w2, 2 and x0, x0, 65532 add x0, x1, x0 - ldr x1, [x19,3752] + ldr x1, [x19,3760] bl ftl_memcpy -.L2198: +.L2262: mov w0, 0 mov w22, 0 mov w25, 65535 add x26, x20, :lo12:.LANCHOR4 add x19, x23, :lo12:.LANCHOR2 bl FtlUpdateVaildLpn -.L2199: - ldrh w1, [x19,776] - ldr x0, [x19,3608] - ldrh w2, [x19,778] - str x0, [x26,1704] - ldr x0, [x19,3656] +.L2263: + ldrh w1, [x19,784] + ldr x0, [x19,3616] + ldrh w2, [x19,786] str x0, [x26,1712] + ldr x0, [x19,3664] + str x0, [x26,1720] orr w0, w2, w1, lsl 10 - str w0, [x26,1700] + str w0, [x26,1708] add x0, x24, :lo12:.LANCHOR0 - ldrh w0, [x0,2538] + ldrh w0, [x0,2546] sub w0, w0, #1 cmp w2, w0 - blt .L2200 - ldrh w25, [x19,780] - strh wzr, [x19,778] - strh w1, [x19,780] + blt .L2264 + ldrh w25, [x19,788] + strh wzr, [x19,786] + strh w1, [x19,788] bl FtlFreeSysBlkQueueOut - ldr w1, [x19,744] - str w1, [x19,784] + ldr w1, [x19,752] + str w1, [x19,792] add w2, w1, 1 - str w2, [x19,744] + str w2, [x19,752] ubfiz w2, w0, 10, 16 - str w2, [x26,1700] - strh w0, [x19,776] + str w2, [x26,1708] + strh w0, [x19,784] str w1, [x21,4] strh w0, [x21,2] -.L2200: +.L2264: add x1, x24, :lo12:.LANCHOR0 ldrb w0, [x1,72] - cbz w0, .L2201 - ldr x0, [x19,3608] - ldrh w1, [x1,2546] + cbz w0, .L2265 + ldr x0, [x19,3616] + ldrh w1, [x1,2554] bl js_hash str w0, [x21,12] -.L2201: +.L2265: mov w1, 1 - add x0, x26, 1696 + add x0, x26, 1704 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w1, [x19,778] - ldr w2, [x26,1696] + ldrh w1, [x19,786] + ldr w2, [x26,1704] add w1, w1, 1 cmn w2, #1 uxth w1, w1 - strh w1, [x19,778] - bne .L2202 + strh w1, [x19,786] + bne .L2266 cmp w1, 1 - bne .L2203 + bne .L2267 add x1, x24, :lo12:.LANCHOR0 - ldrh w1, [x1,2538] + ldrh w1, [x1,2546] sub w1, w1, #1 - strh w1, [x19,778] -.L2203: + strh w1, [x19,786] +.L2267: add w22, w22, 1 uxth w22, w22 cmp w22, 3 - bls .L2199 + bls .L2263 add x20, x20, :lo12:.LANCHOR4 - adrp x0, .LC128 - add x0, x0, :lo12:.LC128 + adrp x0, .LC131 + add x0, x0, :lo12:.LC131 mov w2, w22 add x23, x23, :lo12:.LANCHOR2 - ldr w1, [x20,1700] + ldr w1, [x20,1708] bl printk mov w0, 1 - str w0, [x23,416] - b .L2197 -.L2202: + str w0, [x23,424] + b .L2261 +.L2266: cmp w1, 1 - beq .L2199 + beq .L2263 cmp w2, 256 - beq .L2199 + beq .L2263 mov w0, 65535 cmp w25, w0 - beq .L2197 + beq .L2261 mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L2197: +.L2261: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14322,29 +14679,29 @@ FtlSuperblockPowerLostFix: add x1, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w1, [x1,416] - cbnz w1, .L2212 + ldr w1, [x1,424] + cbnz w1, .L2276 adrp x21, .LANCHOR0 add x2, x21, :lo12:.LANCHOR0 - ldrb w22, [x2,196] - cbz w22, .L2227 + ldrb w22, [x2,204] + cbz w22, .L2291 ldrb w22, [x0,8] cmp w22, 1 - bne .L2223 + bne .L2287 ldrh w24, [x0,4] - b .L2214 -.L2223: + b .L2278 +.L2287: mov w22, w1 -.L2227: +.L2291: mov w24, 12 -.L2214: +.L2278: mov x19, x0 mov w0, -1 str w0, [x29,96] add x0, x20, :lo12:.LANCHOR2 mov w2, 61589 - ldr x23, [x0,3656] - ldr x1, [x0,3608] + ldr x23, [x0,3664] + ldr x1, [x0,3616] str x1, [x29,80] mov w1, -3 str x23, [x29,88] @@ -14354,55 +14711,55 @@ FtlSuperblockPowerLostFix: ldrh w1, [x19] strh w1, [x23,2] strh wzr, [x23] - ldr x1, [x0,3608] + ldr x1, [x0,3616] str w2, [x1] - ldr x1, [x0,3608] + ldr x1, [x0,3616] mov w0, 22136 movk w0, 0x1234, lsl 16 str w0, [x1,4] -.L2215: +.L2279: sub w24, w24, #1 cmn w24, #1 - beq .L2218 + beq .L2282 ldrh w0, [x19,4] - cbnz w0, .L2216 -.L2218: + cbnz w0, .L2280 +.L2282: add x20, x20, :lo12:.LANCHOR2 ldrh w0, [x19] ldrh w3, [x19,4] add x21, x21, :lo12:.LANCHOR0 lsl x0, x0, 1 - ldr x2, [x20,512] + ldr x2, [x20,520] ldrh w1, [x2,x0] sub w1, w1, w3 strh w1, [x2,x0] strb wzr, [x19,6] - ldrh w0, [x21,2536] + ldrh w0, [x21,2544] strh w0, [x19,2] strh wzr, [x19,4] - b .L2212 -.L2216: + b .L2276 +.L2280: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2218 + beq .L2282 add x1, x20, :lo12:.LANCHOR2 mov w2, w22 mov w3, 0 - ldr w0, [x1,748] + ldr w0, [x1,756] str w0, [x23,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x1,748] + str w0, [x1,756] add x0, x29, 72 mov w1, 1 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2215 -.L2212: + b .L2279 +.L2276: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14429,12 +14786,12 @@ ftl_map_blk_gc: ldrh w2, [x19,8] sub w1, w1, #4 cmp w2, w1 - blt .L2229 + blt .L2293 ubfiz x0, x0, 1, 16 ldrh w24, [x20,x0] - cbz w24, .L2229 + cbz w24, .L2293 ldr w1, [x19,52] - cbnz w1, .L2229 + cbnz w1, .L2293 mov w2, 1 str w2, [x19,52] strh w1, [x20,x0] @@ -14443,29 +14800,29 @@ ftl_map_blk_gc: sub w0, w0, #1 strh w0, [x19,8] add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2538] + ldrh w0, [x0,2546] cmp w1, w0 - bcc .L2230 + bcc .L2294 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2230: +.L2294: adrp x20, .LANCHOR4 mov w21, 0 add x20, x20, :lo12:.LANCHOR4 adrp x26, .LANCHOR2 - add x20, x20, 1696 -.L2231: + add x20, x20, 1704 +.L2295: ldrh w0, [x19,6] cmp w0, w21 - bls .L2240 + bls .L2304 ubfiz x0, x21, 2, 16 add x27, x25, x0 ldr w1, [x25,x0] cmp w24, w1, lsr 10 - bne .L2232 + bne .L2296 add x1, x26, :lo12:.LANCHOR2 - ldr x2, [x1,3616] - ldr x23, [x1,3656] + ldr x2, [x1,3624] + ldr x23, [x1,3664] mov w1, 1 str x2, [x20,8] mov w2, w1 @@ -14476,51 +14833,51 @@ ftl_map_blk_gc: bl FlashReadPages ldr w0, [x20] cmn w0, #1 - bne .L2233 -.L2235: + bne .L2297 +.L2299: adrp x1, .LANCHOR4 str wzr, [x27] add x1, x1, :lo12:.LANCHOR4 - adrp x0, .LC129 + adrp x0, .LC132 ldrh w2, [x23,8] - add x0, x0, :lo12:.LC129 - ldr w1, [x1,1700] + add x0, x0, :lo12:.LC132 + ldr w1, [x1,1708] bl printk adrp x0, .LANCHOR2 mov w1, 1 add x0, x0, :lo12:.LANCHOR2 - str w1, [x0,416] - b .L2234 -.L2233: + str w1, [x0,424] + b .L2298 +.L2297: ldrh w0, [x23,8] cmp w0, w21 - bne .L2235 + bne .L2299 ldrh w1, [x23] ldrh w0, [x19,4] cmp w1, w0 - bne .L2235 + bne .L2299 ldr x2, [x20,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L2232: +.L2296: add w21, w21, 1 uxth w21, w21 - b .L2231 -.L2240: + b .L2295 +.L2304: mov w0, w24 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L2229: +.L2293: add x22, x22, :lo12:.LANCHOR0 ldrh w1, [x19,2] - ldrh w0, [x22,2538] + ldrh w0, [x22,2546] cmp w1, w0 - bcc .L2234 + bcc .L2298 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2234: +.L2298: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -14542,15 +14899,15 @@ Ftl_write_map_blk_to_last_page: stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x25, x26, [sp,64] - ldr w20, [x1,416] + ldr w20, [x1,424] ldr x21, [x0,16] ldr x26, [x0,40] - cbnz w20, .L2242 + cbnz w20, .L2306 mov x19, x0 ldrh w0, [x0] mov w2, 65535 cmp w0, w2 - bne .L2243 + bne .L2307 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -14561,20 +14918,20 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L2242 -.L2243: + b .L2306 +.L2307: ubfiz x0, x0, 1, 16 ldrh w2, [x19,2] - ldr x23, [x1,3656] + ldr x23, [x1,3664] adrp x22, .LANCHOR0 ldrh w25, [x21,x0] adrp x21, .LANCHOR4 add x0, x21, :lo12:.LANCHOR4 orr w2, w2, w25, lsl 10 - str w2, [x0,1700] - ldr x2, [x1,3608] - str x2, [x0,1704] - str x23, [x0,1712] + str w2, [x0,1708] + ldr x2, [x1,3616] + str x2, [x0,1712] + str x23, [x0,1720] ldr w0, [x19,48] str w0, [x23,4] mov w0, -1291 @@ -14583,47 +14940,47 @@ Ftl_write_map_blk_to_last_page: strh w0, [x23] add x0, x22, :lo12:.LANCHOR0 strh w25, [x23,2] - ldrh w2, [x0,2538] - ldr x0, [x1,3608] + ldrh w2, [x0,2546] + ldr x0, [x1,3616] mov w1, 255 lsl w2, w2, 3 bl ftl_memset mov w0, w20 -.L2244: +.L2308: ldrh w1, [x19,6] cmp w1, w0 - bls .L2251 + bls .L2315 ubfiz x3, x0, 2, 32 ldr w1, [x26,x3] cmp w25, w1, lsr 10 - bne .L2245 + bne .L2309 add x2, x24, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 - ldr x4, [x2,3608] + ldr x4, [x2,3616] ubfiz x1, x20, 3, 16 str w0, [x4,x1] - ldr x2, [x2,3608] + ldr x2, [x2,3616] ldr w3, [x26,x3] add x1, x2, x1 str w3, [x1,4] -.L2245: +.L2309: add w0, w0, 1 uxth w0, w0 - b .L2244 -.L2251: + b .L2308 +.L2315: add x22, x22, :lo12:.LANCHOR0 ldrb w0, [x22,72] - cbz w0, .L2247 + cbz w0, .L2311 add x0, x21, :lo12:.LANCHOR4 - ldrh w1, [x22,2546] - ldr x0, [x0,1704] + ldrh w1, [x22,2554] + ldr x0, [x0,1712] bl js_hash str w0, [x23,12] -.L2247: +.L2311: mov w1, 1 add x0, x21, :lo12:.LANCHOR4 - add x0, x0, 1696 + add x0, x0, 1704 mov w2, w1 mov w3, 0 bl FlashProgPages @@ -14632,7 +14989,7 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L2242: +.L2306: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14652,51 +15009,51 @@ FtlMapWritePage: mov x28, x0 stp x23, x24, [sp,48] add x23, x27, :lo12:.LANCHOR4 - adrp x24, .LC130 + adrp x24, .LC133 stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x19, x20, [sp,16] mov w26, w1 str x2, [x29,104] mov w22, 0 - add x23, x23, 1696 - add x24, x24, :lo12:.LC130 -.L2253: + add x23, x23, 1704 + add x24, x24, :lo12:.LC133 +.L2317: adrp x19, .LANCHOR2 adrp x20, .LANCHOR0 add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,728] + ldr w0, [x1,736] add w0, w0, 1 - str w0, [x1,728] + str w0, [x1,736] add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x28,2] - ldrh w0, [x0,2538] + ldrh w0, [x0,2546] sub w0, w0, #1 cmp w1, w0 - bge .L2254 + bge .L2318 ldrh w1, [x28] mov w0, 65535 cmp w1, w0 - bne .L2255 -.L2254: + bne .L2319 +.L2318: mov x0, x28 bl Ftl_write_map_blk_to_last_page -.L2255: +.L2319: add x2, x19, :lo12:.LANCHOR2 - ldr w1, [x2,416] - cbnz w1, .L2256 + ldr w1, [x2,424] + cbnz w1, .L2320 ldrh w3, [x28] adrp x21, .LANCHOR4 ldr x0, [x28,16] ldrh w25, [x0,x3,lsl 1] add x3, x27, :lo12:.LANCHOR4 ldrh w0, [x28,2] - add x3, x3, 1696 + add x3, x3, 1704 orr w0, w0, w25, lsl 10 str w0, [x3,4] ldr x0, [x29,104] str x0, [x3,8] - ldr x0, [x2,3656] + ldr x0, [x2,3664] mov w2, 16 str x0, [x3,16] str x3, [x29,96] @@ -14711,14 +15068,14 @@ FtlMapWritePage: strh w0, [x2] strh w25, [x2,2] ldrb w0, [x1,72] - cbz w0, .L2257 + cbz w0, .L2321 ldr x0, [x3,8] - ldrh w1, [x1,2546] + ldrh w1, [x1,2554] str x2, [x29,96] bl js_hash ldr x2, [x29,96] str w0, [x2,12] -.L2257: +.L2321: mov w1, 1 mov x0, x23 mov w2, w1 @@ -14730,7 +15087,7 @@ FtlMapWritePage: strh w0, [x28,2] ldr w1, [x23] cmn w1, #1 - bne .L2258 + bne .L2322 ldr w1, [x23,4] mov x0, x24 add w22, w22, 1 @@ -14738,43 +15095,43 @@ FtlMapWritePage: uxth w22, w22 ldrh w0, [x28,2] cmp w0, 2 - bhi .L2259 + bhi .L2323 add x20, x20, :lo12:.LANCHOR0 - ldrh w0, [x20,2538] + ldrh w0, [x20,2546] sub w0, w0, #1 strh w0, [x28,2] -.L2259: +.L2323: cmp w22, 3 - bls .L2253 + bls .L2317 add x21, x21, :lo12:.LANCHOR4 - adrp x0, .LC131 - add x0, x0, :lo12:.LC131 + adrp x0, .LC134 + add x0, x0, :lo12:.LC134 mov w2, w22 add x19, x19, :lo12:.LANCHOR2 - ldr w1, [x21,1700] + ldr w1, [x21,1708] bl printk mov w0, 1 - str w0, [x19,416] - b .L2256 -.L2258: - cbz w1, .L2261 + str w0, [x19,424] + b .L2320 +.L2322: + cbz w1, .L2325 strh w25, [x28,60] -.L2261: +.L2325: cmp w0, 1 - beq .L2262 + beq .L2326 cmp w1, 256 - beq .L2262 + beq .L2326 ldr w0, [x28,56] - cbz w0, .L2263 -.L2262: + cbz w0, .L2327 +.L2326: str wzr, [x28,56] - b .L2253 -.L2263: + b .L2317 +.L2327: add x21, x21, :lo12:.LANCHOR4 ldr x0, [x28,40] - ldr w1, [x21,1700] + ldr w1, [x21,1708] str w1, [x0,w26,uxtw 2] -.L2256: +.L2320: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14794,13 +15151,13 @@ flush_l2p_region: adrp x20, .LANCHOR2 ubfiz x19, x0, 4, 16 add x20, x20, :lo12:.LANCHOR2 - add x0, x20, 3792 - ldr x1, [x20,696] + add x0, x20, 3800 + ldr x1, [x20,704] add x2, x1, x19 ldrh w1, [x1,x19] ldr x2, [x2,8] bl FtlMapWritePage - ldr x0, [x20,696] + ldr x0, [x20,704] add x19, x0, x19 ldr w0, [x19,4] and w0, w0, 2147483647 @@ -14838,11 +15195,11 @@ FtlMapTblRecovery: adrp x0, .LANCHOR4 add x4, x0, :lo12:.LANCHOR4 str x0, [x29,112] - add x4, x4, 1696 + add x4, x4, 1704 str x21, [x29,128] - ldr x2, [x1,3608] + ldr x2, [x1,3616] sub w0, w27, #1 - ldr x20, [x1,3656] + ldr x20, [x1,3664] mov w1, -1 str x2, [x4,8] str x20, [x4,16] @@ -14854,14 +15211,14 @@ FtlMapTblRecovery: str wzr, [x23,48] str w1, [x23,56] str w0, [x29,108] -.L2272: +.L2336: cmp w19, w27 adrp x22, .LANCHOR0 - bge .L2290 + bge .L2354 ldr w0, [x29,108] sxtw x2, w19 cmp w19, w0 - bne .L2273 + bne .L2337 lsl x0, x2, 1 mov w1, 1 add x21, x24, x0 @@ -14880,10 +15237,10 @@ FtlMapTblRecovery: str w0, [x23,48] ldr x0, [x29,112] add x19, x0, :lo12:.LANCHOR4 - add x19, x19, 1696 -.L2274: + add x19, x19, 1704 +.L2338: cmp w26, w24 - bge .L2290 + bge .L2354 ldrh w0, [x21] mov w1, 1 mov w2, w1 @@ -14893,57 +15250,57 @@ FtlMapTblRecovery: bl FlashReadPages add x1, x22, :lo12:.LANCHOR0 ldrb w0, [x1,72] - cbz w0, .L2275 + cbz w0, .L2339 ldr x0, [x19,16] ldr w28, [x0,12] - cbz w28, .L2275 + cbz w28, .L2339 ldr x0, [x19,8] - ldrh w1, [x1,2546] + ldrh w1, [x1,2554] bl js_hash cmp w28, w0 - beq .L2275 + beq .L2339 str w27, [x19] -.L2275: +.L2339: ldr w0, [x19] cmn w0, #1 - beq .L2276 + beq .L2340 ldrh w0, [x20,8] cmp w0, w25 - bcs .L2276 + bcs .L2340 ldrh w2, [x20] ldrh w1, [x23,4] cmp w2, w1 - bne .L2276 + bne .L2340 ubfiz x0, x0, 2, 16 ldr x2, [x29,136] ldr w1, [x19,4] str w1, [x2,x0] -.L2276: +.L2340: add w26, w26, 1 sxth w26, w26 - b .L2274 -.L2290: + b .L2338 +.L2354: mov x0, x23 add x22, x22, :lo12:.LANCHOR0 bl ftl_free_no_use_map_blk ldrh w1, [x23,2] - ldrh w0, [x22,2538] + ldrh w0, [x22,2546] cmp w1, w0 - bne .L2279 + bne .L2343 mov x0, x23 bl ftl_map_blk_alloc_new_blk - b .L2279 -.L2273: + b .L2343 +.L2337: ldr x0, [x29,128] lsl x2, x2, 1 add x0, x0, :lo12:.LANCHOR2 - ldr x0, [x0,3608] + ldr x0, [x0,3616] str x0, [x21,8] add x0, x24, x2 str x0, [x29,120] add x0, x26, :lo12:.LANCHOR0 ldrh w1, [x24,x2] - ldrh w0, [x0,2538] + ldrh w0, [x0,2546] sub w0, w0, #1 orr w0, w0, w1, lsl 10 mov w1, 1 @@ -14953,46 +15310,46 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L2291 + beq .L2355 ldrh w1, [x20] mov w22, 0 ldrh w0, [x23,4] cmp w1, w0 - bne .L2312 + bne .L2376 ldrh w1, [x20,8] mov w0, 64245 cmp w1, w0 - bne .L2312 + bne .L2376 mov w5, w22 -.L2281: +.L2345: add x0, x26, :lo12:.LANCHOR0 - ldrh w0, [x0,2538] + ldrh w0, [x0,2546] sub w0, w0, #1 cmp w5, w0 - bge .L2284 + bge .L2348 ldr x0, [x29,128] sbfiz x1, x5, 3, 32 add x0, x0, :lo12:.LANCHOR2 - ldr x2, [x0,3608] + ldr x2, [x0,3616] ldrh w0, [x2,x1] cmp w0, w25 - bcs .L2282 + bcs .L2346 add x1, x2, x1 ubfiz x0, x0, 2, 16 ldr x2, [x29,136] ldr w1, [x1,4] str w1, [x2,x0] -.L2282: +.L2346: add w5, w5, 1 sxth w5, w5 - b .L2281 -.L2291: + b .L2345 +.L2355: mov w22, 0 -.L2312: +.L2376: add x6, x26, :lo12:.LANCHOR0 - ldrh w0, [x6,2538] + ldrh w0, [x6,2546] cmp w22, w0 - bge .L2284 + bge .L2348 ldr x0, [x29,120] mov w1, 1 mov w2, w1 @@ -15004,43 +15361,43 @@ FtlMapTblRecovery: bl FlashReadPages ldr x6, [x29,96] ldrb w0, [x6,72] - cbz w0, .L2285 + cbz w0, .L2349 ldr x0, [x21,16] ldr w2, [x0,12] - cbz w2, .L2285 + cbz w2, .L2349 ldr x0, [x21,8] - ldrh w1, [x6,2546] + ldrh w1, [x6,2554] str x2, [x29,96] bl js_hash ldr x2, [x29,96] cmp w2, w0 - beq .L2285 + beq .L2349 mov w0, -1 str w0, [x21] -.L2285: +.L2349: ldr w0, [x21] cmn w0, #1 - beq .L2286 + beq .L2350 ldrh w0, [x20,8] cmp w0, w25 - bcs .L2286 + bcs .L2350 ldrh w2, [x20] ldrh w1, [x23,4] cmp w2, w1 - bne .L2286 + bne .L2350 ubfiz x0, x0, 2, 16 ldr x2, [x29,136] ldr w1, [x21,4] str w1, [x2,x0] -.L2286: +.L2350: add w5, w22, 1 sxth w22, w5 - b .L2312 -.L2284: + b .L2376 +.L2348: add w19, w19, 1 sxth w19, w19 - b .L2272 -.L2279: + b .L2336 +.L2343: mov x0, x23 bl ftl_map_blk_gc mov x0, x23 @@ -15063,24 +15420,24 @@ FtlLoadVonderInfo: add x0, x0, :lo12:.LANCHOR4 add x1, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! - add x0, x0, 1760 + add x0, x0, 1768 add x29, sp, 0 - ldrh w2, [x1,2556] + ldrh w2, [x1,2564] strh w2, [x0,10] mov w2, -3962 strh w2, [x0,4] - ldrh w2, [x1,2582] + ldrh w2, [x1,2590] strh w2, [x0,8] - ldrh w2, [x1,2558] - ldr x1, [x1,2584] + ldrh w2, [x1,2566] + ldr x1, [x1,2592] str x1, [x0,16] adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 strh w2, [x0,6] - ldr x2, [x1,3736] + ldr x2, [x1,3744] str x2, [x0,24] - ldr x2, [x1,3728] - ldr x1, [x1,3744] + ldr x2, [x1,3736] + ldr x1, [x1,3752] str x2, [x0,32] str x1, [x0,40] bl FtlMapTblRecovery @@ -15097,7 +15454,7 @@ FtlLoadMapInfo: bl FtlL2PDataInit adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 3792 + add x0, x0, 3800 bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -15119,26 +15476,26 @@ FtlVendorPartWrite: stp x21, x22, [sp,32] mov w28, w1 add w1, w26, w1 - ldrh w21, [x0,2544] + ldrh w21, [x0,2552] mov x25, x2 - ldrh w0, [x0,2532] + ldrh w0, [x0,2540] mov w20, -1 cmp w1, w0 - bhi .L2316 + bhi .L2380 adrp x24, .LANCHOR4 lsr w21, w26, w21 add x24, x24, :lo12:.LANCHOR4 mov w20, 0 adrp x27, .LANCHOR2 - add x24, x24, 1760 -.L2317: - cbz w28, .L2316 + add x24, x24, 1768 +.L2381: + cbz w28, .L2380 adrp x0, .LANCHOR2 add x2, x0, :lo12:.LANCHOR2 - ldr x0, [x2,3744] + ldr x0, [x2,3752] ldr w4, [x0,w21,uxtw 2] add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2542] + ldrh w1, [x0,2550] uxth w0, w28 udiv w22, w26, w1 msub w22, w22, w1, w26 @@ -15147,9 +15504,9 @@ FtlVendorPartWrite: cmp w19, w28 csel w19, w0, w19, hi cmp w19, w1 - beq .L2319 - cbz w4, .L2319 - ldr x0, [x2,3624] + beq .L2383 + cbz w4, .L2383 + ldr x0, [x2,3632] mov w1, 1 str x0, [x29,128] mov w2, w1 @@ -15157,22 +15514,22 @@ FtlVendorPartWrite: str w4, [x29,124] str xzr, [x29,136] bl FlashReadPages - b .L2320 -.L2319: + b .L2384 +.L2383: add x0, x27, :lo12:.LANCHOR2 add x2, x23, :lo12:.LANCHOR0 mov w1, 0 - ldr x0, [x0,3624] - ldrh w2, [x2,2546] + ldr x0, [x0,3632] + ldrh w2, [x2,2554] bl ftl_memset -.L2320: +.L2384: add x5, x27, :lo12:.LANCHOR2 lsl w4, w19, 9 ubfiz x22, x22, 9, 16 mov w2, w4 mov x1, x25 str x4, [x29,104] - ldr x0, [x5,3624] + ldr x0, [x5,3632] sub w28, w28, w19 str x5, [x29,96] add w26, w26, w19 @@ -15182,14 +15539,14 @@ FtlVendorPartWrite: mov w1, w21 mov x0, x24 add w21, w21, 1 - ldr x2, [x5,3624] + ldr x2, [x5,3632] bl FtlMapWritePage cmn w0, #1 ldr x4, [x29,104] csinv w20, w20, wzr, ne add x25, x25, x4, sxtw - b .L2317 -.L2316: + b .L2381 +.L2380: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15208,46 +15565,46 @@ Ftl_save_ext_data: add x0, x0, :lo12:.LANCHOR2 movk w1, 0x4654, lsl 16 stp x29, x30, [sp, -16]! - add x2, x0, 848 + add x2, x0, 856 add x29, sp, 0 - ldr w3, [x0,848] + ldr w3, [x0,856] cmp w3, w1 - bne .L2330 - mov w1, 96 + bne .L2394 + mov w1, 99 movk w1, 0x5000, lsl 16 str w1, [x2,4] - ldr w1, [x0,736] + ldr w1, [x0,744] str w1, [x2,88] - ldr w1, [x0,740] + ldr w1, [x0,748] str w1, [x2,92] - ldr w1, [x0,732] + ldr w1, [x0,740] str w1, [x2,8] - ldr w1, [x0,720] - str w1, [x2,12] - ldr w1, [x0,712] - str w1, [x2,16] ldr w1, [x0,728] + str w1, [x2,12] + ldr w1, [x0,720] + str w1, [x2,16] + ldr w1, [x0,736] str w1, [x2,20] - ldr w1, [x0,756] - str w1, [x2,28] - ldr w1, [x0,440] - str w1, [x2,32] - ldr w1, [x0,716] - str w1, [x2,36] - ldr w1, [x0,724] - str w1, [x2,40] ldr w1, [x0,764] + str w1, [x2,28] + ldr w1, [x0,448] + str w1, [x2,32] + ldr w1, [x0,724] + str w1, [x2,36] + ldr w1, [x0,732] + str w1, [x2,40] + ldr w1, [x0,772] str w1, [x2,44] - ldr w1, [x0,768] + ldr w1, [x0,776] str w1, [x2,48] - ldr w1, [x0,840] - ldr w0, [x0,3556] + ldr w1, [x0,848] + ldr w0, [x0,3564] str w1, [x2,60] mov w1, 1 str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2330: +.L2394: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -15255,57 +15612,57 @@ Ftl_save_ext_data: .global FtlEctTblFlush .type FtlEctTblFlush, %function FtlEctTblFlush: - adrp x1, .LANCHOR0+2460 + adrp x1, .LANCHOR0+2372 adrp x2, .LANCHOR2 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w3, [x1,#:lo12:.LANCHOR0+2460] + ldr w3, [x1,#:lo12:.LANCHOR0+2372] mov w1, 32 - cbz w3, .L2333 + cbz w3, .L2397 add x3, x2, :lo12:.LANCHOR2 - ldr w3, [x3,768] + ldr w3, [x3,776] cmp w3, 39 mov w3, 4 csel w1, w1, w3, hi -.L2333: +.L2397: adrp x3, .LANCHOR4 add x3, x3, :lo12:.LANCHOR4 - ldrh w4, [x3,1824] + ldrh w4, [x3,1832] cmp w4, 31 - bhi .L2334 + bhi .L2398 add w4, w4, 1 mov w1, 1 - strh w4, [x3,1824] -.L2334: - cbnz w0, .L2335 + strh w4, [x3,1832] +.L2398: + cbnz w0, .L2399 add x0, x2, :lo12:.LANCHOR2 - ldr x3, [x0,3696] + ldr x3, [x0,3704] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L2336 -.L2335: + bcc .L2400 +.L2399: add x2, x2, :lo12:.LANCHOR2 - ldr x0, [x2,3696] + ldr x0, [x2,3704] ldr w1, [x0,16] str w1, [x0,20] mov w1, 17221 movk w1, 0x4254, lsl 16 str w1, [x0] - ldr x0, [x2,3696] - ldrh w1, [x2,3680] + ldr x0, [x2,3704] + ldrh w1, [x2,3688] str wzr, [x0,4] lsl w3, w1, 9 str w3, [x0,12] ldr w3, [x0,8] - ldr x2, [x2,3696] + ldr x2, [x2,3704] add w3, w3, 1 str w3, [x0,8] mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2336: +.L2400: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -15327,30 +15684,30 @@ FtlVendorPartRead: stp x27, x28, [sp,80] mov x26, x2 add w3, w23, w22 - ldrh w2, [x0,2532] + ldrh w2, [x0,2540] str x1, [x29,136] cmp w3, w2 - ldrh w20, [x0,2544] + ldrh w20, [x0,2552] mov w0, -1 - bhi .L2341 + bhi .L2405 adrp x27, .LANCHOR4 - adrp x0, .LC132 - add x0, x0, :lo12:.LC132 + adrp x0, .LC135 + add x0, x0, :lo12:.LC135 add x27, x27, :lo12:.LANCHOR4 str x0, [x29,128] lsr w20, w23, w20 - add x0, x27, 1760 + add x0, x27, 1768 mov w21, 0 str x0, [x29,120] -.L2342: - cbz w22, .L2350 +.L2406: + cbz w22, .L2414 adrp x25, .LANCHOR2 add x4, x25, :lo12:.LANCHOR2 - ldr x0, [x4,3744] + ldr x0, [x4,3752] ldr w3, [x0,w20,uxtw 2] ldr x0, [x29,136] add x0, x0, :lo12:.LANCHOR0 - ldrh w19, [x0,2542] + ldrh w19, [x0,2550] uxth w0, w22 udiv w24, w23, w19 msub w24, w24, w19, w23 @@ -15359,8 +15716,8 @@ FtlVendorPartRead: cmp w19, w22 csel w19, w0, w19, hi lsl w28, w19, 9 - cbz w3, .L2344 - ldr x0, [x4,3624] + cbz w3, .L2408 + ldr x0, [x4,3632] mov w1, 1 str x0, [x29,160] mov w2, w1 @@ -15373,10 +15730,10 @@ FtlVendorPartRead: ldr w0, [x29,152] ldr x3, [x29,104] cmn w0, #1 - ldr w0, [x27,1696] + ldr w0, [x27,1704] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L2346 + bne .L2410 ldr x0, [x29,128] mov w1, w20 mov w2, w3 @@ -15384,31 +15741,31 @@ FtlVendorPartRead: ldr x4, [x29,112] mov w1, w20 ldr x0, [x29,120] - ldr x2, [x4,3624] + ldr x2, [x4,3632] bl FtlMapWritePage -.L2346: +.L2410: add x25, x25, :lo12:.LANCHOR2 ubfiz x24, x24, 9, 16 mov x0, x26 mov w2, w28 - ldr x1, [x25,3624] + ldr x1, [x25,3632] add x1, x1, x24 bl ftl_memcpy - b .L2347 -.L2344: + b .L2411 +.L2408: mov x0, x26 mov w1, w3 mov w2, w28 bl ftl_memset -.L2347: +.L2411: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 add x26, x26, x28, sxtw - b .L2342 -.L2350: + b .L2406 +.L2414: mov w0, w21 -.L2341: +.L2405: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15427,26 +15784,26 @@ FtlLoadEctTbl: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,3680] - ldr x2, [x19,3696] + ldrh w1, [x19,3688] + ldr x2, [x19,3704] bl FtlVendorPartRead - ldr x0, [x19,3696] + ldr x0, [x19,3704] ldr w1, [x0] mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L2352 + beq .L2416 adrp x0, .LC75 - adrp x1, .LC133 - add x1, x1, :lo12:.LC133 + adrp x1, .LC136 + add x1, x1, :lo12:.LC136 add x0, x0, :lo12:.LC75 bl printk - ldrh w2, [x19,3680] + ldrh w2, [x19,3688] mov w1, 0 - ldr x0, [x19,3696] + ldr x0, [x19,3704] lsl w2, w2, 9 bl ftl_memset -.L2352: +.L2416: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -15464,89 +15821,89 @@ Ftl_load_ext_data: adrp x19, .LANCHOR2 str x21, [sp,32] add x20, x19, :lo12:.LANCHOR2 - add x21, x20, 848 + add x21, x20, 856 mov x2, x21 bl FtlVendorPartRead - ldr w1, [x20,848] + ldr w1, [x20,856] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L2354 + beq .L2418 mov x0, x21 mov w1, 0 mov w2, 512 bl ftl_memset mov w0, 19539 movk w0, 0x4654, lsl 16 - str w0, [x20,848] -.L2354: + str w0, [x20,856] +.L2418: add x0, x19, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 - ldr w3, [x0,848] + ldr w3, [x0,856] cmp w3, w2 - bne .L2355 - ldr w2, [x0,936] - str w2, [x0,736] - ldr w2, [x0,940] - str w2, [x0,740] - ldr w2, [x0,856] - str w2, [x0,732] - ldr w2, [x0,860] - str w2, [x0,720] + bne .L2419 + ldr w2, [x0,944] + str w2, [x0,744] + ldr w2, [x0,948] + str w2, [x0,748] ldr w2, [x0,864] - str w2, [x0,712] + str w2, [x0,740] ldr w2, [x0,868] str w2, [x0,728] + ldr w2, [x0,872] + str w2, [x0,720] ldr w2, [x0,876] - str w2, [x0,756] - ldr w2, [x0,880] - str w2, [x0,440] + str w2, [x0,736] ldr w2, [x0,884] - str w2, [x0,716] - ldr w2, [x0,888] - str w2, [x0,724] - ldr w2, [x0,892] str w2, [x0,764] - ldr w1, [x0,908] + ldr w2, [x0,888] + str w2, [x0,448] + ldr w2, [x0,892] + str w2, [x0,724] ldr w2, [x0,896] - str w2, [x0,768] - str w1, [x0,840] -.L2355: + str w2, [x0,732] + ldr w2, [x0,900] + str w2, [x0,772] + ldr w1, [x0,916] + ldr w2, [x0,904] + str w2, [x0,776] + str w1, [x0,848] +.L2419: add x0, x19, :lo12:.LANCHOR2 mov w1, 34661 movk w1, 0x1234, lsl 16 - add x0, x0, 848 + add x0, x0, 856 adrp x20, .LANCHOR0 ldr w2, [x0,68] str wzr, [x0,2708] cmp w2, w1 - bne .L2356 + bne .L2420 add x1, x20, :lo12:.LANCHOR0 - ldrb w2, [x1,196] - cbz w2, .L2357 + ldrb w2, [x1,204] + cbz w2, .L2421 str wzr, [x0,68] bl Ftl_save_ext_data - b .L2356 -.L2357: + b .L2420 +.L2421: mov w0, 1 - str w0, [x1,2460] + str w0, [x1,2372] adrp x0, .LC75 - adrp x1, .LC134 + adrp x1, .LC137 add x0, x0, :lo12:.LC75 - add x1, x1, :lo12:.LC134 + add x1, x1, :lo12:.LC137 bl printk -.L2356: +.L2420: add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR0 ldr x21, [sp,32] - ldrh w1, [x20,2528] - ldr w2, [x19,752] - ldr w0, [x19,756] + ldrh w1, [x20,2536] + ldr w2, [x19,760] + ldr w0, [x19,764] madd w0, w1, w2, w0 - ldrh w1, [x20,2476] + ldrh w1, [x20,2480] udiv w0, w0, w1 - str w0, [x19,760] + str w0, [x19,768] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -15562,44 +15919,44 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w20, [x0,6] ldr x4, [x0,40] - cbz w1, .L2358 + cbz w1, .L2422 adrp x3, .LANCHOR2 str wzr, [x0,56] add x3, x3, :lo12:.LANCHOR2 - ldr w1, [x3,416] - cbnz w1, .L2358 + ldr w1, [x3,424] + cbnz w1, .L2422 adrp x2, .LANCHOR4 sub w20, w20, #1 add x1, x2, :lo12:.LANCHOR4 mov x21, x0 uxth w20, w20 - ldr x0, [x3,3616] - ldr x3, [x3,3656] - add x1, x1, 1696 + ldr x0, [x3,3624] + ldr x3, [x3,3664] + add x1, x1, 1704 str x3, [x1,16] ubfiz x3, x20, 2, 16 str x0, [x1,8] mov x19, x2 ldr w3, [x4,x3] str w3, [x1,4] - cbz w3, .L2362 + cbz w3, .L2426 mov x0, x1 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L2363 -.L2362: - adrp x2, .LANCHOR0+2546 + b .L2427 +.L2426: + adrp x2, .LANCHOR0+2554 mov w1, 255 - ldrh w2, [x2,#:lo12:.LANCHOR0+2546] + ldrh w2, [x2,#:lo12:.LANCHOR0+2554] bl ftl_memset -.L2363: +.L2427: add x2, x19, :lo12:.LANCHOR4 mov x0, x21 mov w1, w20 - ldr x2, [x2,1704] + ldr x2, [x2,1712] bl FtlMapWritePage -.L2358: +.L2422: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -15615,14 +15972,14 @@ FlashReadFacBbtData.part.17: str x19, [sp,16] mov w7, 1 mov x19, x0 - cbnz w1, .L2367 -.L2369: + cbnz w1, .L2431 +.L2433: add x0, x4, :lo12:.LANCHOR4 - ldr w1, [x0,1628] + ldr w1, [x0,1636] cmp w3, w1 - bcs .L2367 + bcs .L2431 ubfx x5, x3, 5, 11 - ldr x0, [x0,1592] + ldr x0, [x0,1600] lsl x5, x5, 2 lsl w6, w7, w3 add w3, w3, 1 @@ -15630,16 +15987,16 @@ FlashReadFacBbtData.part.17: uxth w3, w3 orr w6, w1, w6 str w6, [x0,x5] - b .L2369 -.L2367: + b .L2433 +.L2431: add x4, x4, :lo12:.LANCHOR4 mov x0, x19 - ldr x1, [x4,1592] + ldr x1, [x4,1600] bl ftl_memcpy mov w2, 4 - adrp x0, .LC135 + adrp x0, .LC138 mov x1, x19 - add x0, x0, :lo12:.LC135 + add x0, x0, :lo12:.LC138 mov w3, w2 bl rknand_print_hex ldr x19, [sp,16] @@ -15661,9 +16018,9 @@ FlashReadFacBbtData: stp x25, x26, [sp,64] mov x22, x0 mov w23, w1 - ldrh w0, [x4,182] + ldrh w0, [x4,190] mov w25, w2 - ldrh w3, [x4,180] + ldrh w3, [x4,188] adrp x4, .LANCHOR4 mov x21, x4 mov w26, 61664 @@ -15671,16 +16028,16 @@ FlashReadFacBbtData: add x0, x4, :lo12:.LANCHOR4 uxth w3, w3 sub w20, w3, #1 - ldr x1, [x0,1592] + ldr x1, [x0,1600] mul w24, w23, w3 - ldr x0, [x0,1648] + ldr x0, [x0,1656] uxth w20, w20 str x1, [x29,96] sub w19, w3, #16 str x0, [x29,104] -.L2372: +.L2436: cmp w20, w19 - ble .L2380 + ble .L2444 add w0, w20, w24 mov w1, 1 lsl w0, w0, 10 @@ -15690,26 +16047,26 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29,88] cmn w0, #1 - beq .L2373 + beq .L2437 add x0, x21, :lo12:.LANCHOR4 - ldr x0, [x0,1648] + ldr x0, [x0,1656] ldrh w0, [x0] cmp w0, w26 - bne .L2373 + bne .L2437 mov w0, w22 - cbz x22, .L2374 + cbz x22, .L2438 mov x0, x22 mov w1, w23 mov w2, w25 bl FlashReadFacBbtData.part.17 - b .L2374 -.L2373: + b .L2438 +.L2437: sub w20, w20, #1 uxth w20, w20 - b .L2372 -.L2380: + b .L2436 +.L2444: mov w0, -1 -.L2374: +.L2438: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15725,51 +16082,51 @@ FlashGetBadBlockList: add x29, sp, 0 str x21, [sp,32] mov x21, x0 - adrp x0, .LANCHOR0+1256 + adrp x0, .LANCHOR0+88 stp x19, x20, [sp,16] adrp x20, .LANCHOR4 - ldr x0, [x0,#:lo12:.LANCHOR0+1256] + ldr x0, [x0,#:lo12:.LANCHOR0+88] ldrb w2, [x0,13] ldrh w19, [x0,14] add x0, x20, :lo12:.LANCHOR4 mul w19, w2, w19 - ldr x0, [x0,1640] + ldr x0, [x0,1648] uxth w19, w19 add w2, w19, 7 lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L2382 -.L2386: + bne .L2446 +.L2450: mov w1, 0 - b .L2383 -.L2382: + b .L2447 +.L2446: mov w2, 0 lsr w0, w19, 4 mov w1, w2 sub w19, w19, #1 mov w5, 1 -.L2384: +.L2448: cmp w2, w19 - bge .L2383 + bge .L2447 add x3, x20, :lo12:.LANCHOR4 ubfx x4, x2, 5, 11 - ldr x6, [x3,1640] + ldr x6, [x3,1648] lsl w3, w5, w2 ldr w4, [x6,x4,lsl 2] tst w3, w4 - beq .L2385 + beq .L2449 add w3, w1, 1 ubfiz x1, x1, 1, 16 strh w2, [x21,x1] uxth w1, w3 -.L2385: +.L2449: cmp w1, w0 - bcs .L2386 + bcs .L2450 add w2, w2, 1 uxth w2, w2 - b .L2384 -.L2383: + b .L2448 +.L2447: ubfiz x1, x1, 1, 16 mov w0, -1 ldp x19, x20, [sp,16] @@ -15792,33 +16149,33 @@ FtlMakeBbt: stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w21, [x0,416] - cbnz w21, .L2392 + ldr w21, [x0,424] + cbnz w21, .L2456 adrp x19, .LANCHOR0 adrp x20, .LANCHOR4 add x24, x19, :lo12:.LANCHOR0 add x20, x20, :lo12:.LANCHOR4 - add x24, x24, 2616 - add x20, x20, 1696 + add x24, x24, 2624 + add x20, x20, 1704 mov x25, x24 mov x26, x20 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L2393: +.L2457: add x22, x19, :lo12:.LANCHOR0 - ldrh w0, [x22,2490] + ldrh w0, [x22,2494] cmp w21, w0 - bcs .L2411 + bcs .L2475 add x1, x23, :lo12:.LANCHOR2 ldrh w28, [x25,12] - ldr x0, [x1,3608] - ldr x27, [x1,3656] + ldr x0, [x1,3616] + ldr x27, [x1,3664] mov w1, 65535 str x0, [x20,8] cmp w28, w1 str x27, [x20,16] - beq .L2394 - ldrh w0, [x22,2534] + beq .L2458 + ldrh w0, [x22,2542] mov w1, 1 mov w2, w1 madd w28, w21, w0, w28 @@ -15826,36 +16183,36 @@ FtlMakeBbt: str w0, [x20,4] mov x0, x20 bl FlashReadPages - ldrh w2, [x22,2534] + ldrh w2, [x22,2542] ldr x0, [x24,32] add w2, w2, 7 ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L2395 -.L2394: + b .L2459 +.L2458: mov w1, w21 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap - ldrh w22, [x22,2534] -.L2397: + ldrh w22, [x22,2542] +.L2461: sub w22, w22, #1 uxth w22, w22 -.L2396: +.L2460: add x28, x19, :lo12:.LANCHOR0 - ldrh w0, [x28,2534] + ldrh w0, [x28,2542] madd w0, w21, w0, w22 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2397 + beq .L2461 add x3, x23, :lo12:.LANCHOR2 mov w1, 0 mov w2, 16 strh w22, [x25,12] str x3, [x29,104] - ldr x0, [x3,3656] + ldr x0, [x3,3664] bl ftl_memset str wzr, [x27,4] mov w0, -3872 @@ -15863,9 +16220,9 @@ FtlMakeBbt: ldr x3, [x29,104] ldrh w0, [x25,12] strh w0, [x27,2] - ldrh w0, [x28,2534] + ldrh w0, [x28,2542] ldrh w1, [x25,12] - ldrh w2, [x3,3784] + ldrh w2, [x3,3792] madd w28, w21, w0, w1 ldr x1, [x24,32] lsl w2, w2, 2 @@ -15884,94 +16241,94 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x26] cmn w0, #1 - bne .L2395 + bne .L2459 mov w0, w28 bl FtlBbmMapBadBlock - b .L2396 -.L2395: + b .L2460 +.L2459: mov w0, w28 add w21, w21, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L2393 -.L2411: + b .L2457 +.L2475: mov w20, 0 -.L2400: +.L2464: add x21, x19, :lo12:.LANCHOR0 - ldrh w0, [x21,2550] + ldrh w0, [x21,2558] cmp w0, w20 - bls .L2412 + bls .L2476 mov w0, w20 add w20, w20, 1 bl FtlBbmMapBadBlock uxth w20, w20 - b .L2400 -.L2412: - ldrh w20, [x21,2628] + b .L2464 +.L2476: + ldrh w20, [x21,2636] mov w24, 65535 sub w20, w20, #1 uxth w20, w20 -.L2402: - add x22, x21, 2616 +.L2466: + add x22, x21, 2624 ldrh w0, [x22,12] sub w0, w0, #48 cmp w20, w0 - ble .L2406 + ble .L2470 mov w0, w20 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2403 + beq .L2467 mov w0, w20 bl FlashTestBlk - cbz w0, .L2404 + cbz w0, .L2468 mov w0, w20 bl FtlBbmMapBadBlock - b .L2403 -.L2404: - ldrh w0, [x21,2616] + b .L2467 +.L2468: + ldrh w0, [x21,2624] cmp w0, w24 - bne .L2405 - strh w20, [x21,2616] - b .L2403 -.L2405: + bne .L2469 + strh w20, [x21,2624] + b .L2467 +.L2469: strh w20, [x22,4] - b .L2406 -.L2403: + b .L2470 +.L2467: sub w20, w20, #1 uxth w20, w20 - b .L2402 -.L2406: + b .L2466 +.L2470: add x23, x23, :lo12:.LANCHOR2 add x19, x19, :lo12:.LANCHOR0 mov w2, 2 - ldr x1, [x23,424] - ldrh w0, [x19,2616] - str wzr, [x19,2624] + ldr x1, [x23,432] + ldrh w0, [x19,2624] + str wzr, [x19,2632] lsl w0, w0, 10 str w0, [x1,4] - strh wzr, [x19,2618] - ldr x0, [x23,424] - ldrh w1, [x19,2620] + strh wzr, [x19,2626] + ldr x0, [x23,432] + ldrh w1, [x19,2628] lsl w1, w1, 10 str w1, [x0,60] mov w1, 1 bl FlashEraseBlocks - ldrh w0, [x19,2616] + ldrh w0, [x19,2624] bl FtlBbmMapBadBlock - ldrh w0, [x19,2620] + ldrh w0, [x19,2628] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - strh wzr, [x19,2618] - ldr w0, [x19,2624] - ldrh w1, [x19,2620] + strh wzr, [x19,2626] + ldr w0, [x19,2632] + ldrh w1, [x19,2628] add w0, w0, 1 - str w0, [x19,2624] - ldrh w0, [x19,2616] - strh w0, [x19,2620] - strh w1, [x19,2616] + str w0, [x19,2632] + ldrh w0, [x19,2624] + strh w0, [x19,2628] + strh w1, [x19,2624] bl FtlBbmTblFlush -.L2392: +.L2456: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15995,10 +16352,10 @@ log2phys: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w4, [x3,2608] - ldrh w27, [x3,2544] + ldr w4, [x3,2616] + ldrh w27, [x3,2552] cmp w0, w4 - bcs .L2414 + bcs .L2478 add w27, w27, 7 adrp x20, .LANCHOR2 lsr w24, w0, w27 @@ -16007,25 +16364,25 @@ log2phys: str w2, [x29,112] mov x26, x1 uxth w23, w24 - ldrh w2, [x3,2574] - ldr x22, [x0,696] + ldrh w2, [x3,2582] + ldr x22, [x0,704] mov x0, 0 - b .L2415 -.L2414: + b .L2479 +.L2478: mov w0, -1 - cbnz w2, .L2416 + cbnz w2, .L2480 str w0, [x1] - b .L2416 -.L2420: + b .L2480 +.L2484: add x0, x0, 1 add x3, x22, x0, lsl 4 ldrh w3, [x3,-16] cmp w3, w23 - beq .L2417 -.L2415: + beq .L2481 +.L2479: uxth x19, w0 cmp w19, w2 - bcc .L2420 + bcc .L2484 bl select_l2p_ram_region uxth x19, w0 ubfiz x21, x19, 4, 16 @@ -16033,27 +16390,27 @@ log2phys: add x2, x22, x21 ldrh w3, [x22,x21] cmp w3, w1 - bne .L2428 -.L2421: + bne .L2492 +.L2485: add x28, x20, :lo12:.LANCHOR2 ubfiz x0, x23, 2, 16 - ldr x1, [x28,3752] + ldr x1, [x28,3760] ldr w25, [x1,x0] - cbnz w25, .L2422 + cbnz w25, .L2486 ldr x1, [x29,120] - ldr x0, [x28,696] + ldr x0, [x28,704] add x22, x1, :lo12:.LANCHOR0 mov w1, 255 add x0, x0, x21 - ldrh w2, [x22,2546] + ldrh w2, [x22,2554] ldr x0, [x0,8] bl ftl_memset - ldr x0, [x28,696] + ldr x0, [x28,704] strh w23, [x0,x21] - ldr x0, [x28,696] + ldr x0, [x28,704] add x21, x0, x21 str w25, [x21,4] -.L2417: +.L2481: mov x0, 1 lsl x27, x0, x27 ldr w0, [x29,116] @@ -16061,112 +16418,112 @@ log2phys: and w25, w0, w27 ldr w0, [x29,112] uxth x25, w25 - cbnz w0, .L2418 + cbnz w0, .L2482 add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,696] + ldr x0, [x0,704] add x0, x0, x19, lsl 4 ldr x0, [x0,8] ldr w0, [x0,x25,lsl 2] str w0, [x26] - b .L2419 -.L2418: + b .L2483 +.L2482: add x1, x20, :lo12:.LANCHOR2 lsl x0, x19, 4 ldr w3, [x26] - ldr x2, [x1,696] + ldr x2, [x1,704] add x2, x2, x0 ldr x2, [x2,8] str w3, [x2,x25,lsl 2] - strh w23, [x1,704] - ldr x2, [x1,696] + strh w23, [x1,712] + ldr x2, [x1,704] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2419: +.L2483: add x20, x20, :lo12:.LANCHOR2 - ldr x0, [x20,696] + ldr x0, [x20,704] add x19, x0, x19, lsl 4 mov w0, 0 ldr w1, [x19,4] cmn w1, #1 - beq .L2416 + beq .L2480 add w1, w1, 1 str w1, [x19,4] - b .L2416 -.L2428: + b .L2480 +.L2492: ldr w1, [x2,4] - tbz w1, #31, .L2421 + tbz w1, #31, .L2485 bl flush_l2p_region - b .L2421 -.L2422: - ldr x0, [x28,696] + b .L2485 +.L2486: + ldr x0, [x28,704] adrp x6, .LANCHOR4 add x6, x6, :lo12:.LANCHOR4 mov w1, 1 add x0, x0, x21 - add x22, x6, 1696 + add x22, x6, 1704 mov w2, w1 str x6, [x29,104] - str w25, [x6,1700] + str w25, [x6,1708] ldr x0, [x0,8] - str x0, [x6,1704] - ldr x0, [x28,3656] str x0, [x6,1712] + ldr x0, [x28,3664] + str x0, [x6,1720] mov x0, x22 bl FlashReadPages ldr x0, [x22,16] ldr x6, [x29,104] ldrh w0, [x0,8] cmp w0, w23 - beq .L2423 - adrp x0, .LC136 + beq .L2487 + adrp x0, .LC139 uxth w1, w24 mov w2, w25 - add x0, x0, :lo12:.LC136 + add x0, x0, :lo12:.LC139 bl printk ldr x1, [x22,16] mov w2, 4 - adrp x0, .LC99 + adrp x0, .LC100 mov w3, w2 - add x0, x0, :lo12:.LC99 + add x0, x0, :lo12:.LC100 bl rknand_print_hex ldr x0, [x29,120] mov w2, 4 - ldr x1, [x28,3752] + ldr x1, [x28,3760] add x22, x0, :lo12:.LANCHOR0 - adrp x0, .LC137 - add x0, x0, :lo12:.LC137 - ldrh w3, [x22,2572] + adrp x0, .LC140 + add x0, x0, :lo12:.LC140 + ldrh w3, [x22,2580] bl rknand_print_hex mov w0, 1 - str w0, [x28,416] - b .L2424 -.L2423: - ldr w0, [x6,1696] + str w0, [x28,424] + b .L2488 +.L2487: + ldr w0, [x6,1704] cmp w0, 256 - bne .L2424 + bne .L2488 and w24, w24, 65535 - adrp x0, .LC138 + adrp x0, .LC141 mov w1, w24 mov w2, w25 - add x0, x0, :lo12:.LC138 + add x0, x0, :lo12:.LC141 bl printk - ldr x2, [x28,696] - add x0, x28, 3792 + ldr x2, [x28,704] + add x0, x28, 3800 mov w1, w24 add x2, x2, x21 ldr x2, [x2,8] bl FtlMapWritePage -.L2424: +.L2488: add x1, x20, :lo12:.LANCHOR2 - ldr x0, [x1,696] + ldr x0, [x1,704] add x0, x0, x21 str wzr, [x0,4] - ldr x0, [x1,696] + ldr x0, [x1,704] strh w23, [x0,x21] - b .L2417 -.L2416: + b .L2481 +.L2480: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16187,60 +16544,60 @@ FtlWriteDumpData: stp x23, x24, [sp,48] add x23, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w0, [x23,416] - cbnz w0, .L2429 - ldrh w2, [x23,556] - cbz w2, .L2431 - ldrb w1, [x23,560] - cbnz w1, .L2431 + ldr w0, [x23,424] + cbnz w0, .L2493 + ldrh w2, [x23,564] + cbz w2, .L2495 + ldrb w1, [x23,568] + cbnz w1, .L2495 adrp x21, .LANCHOR0 - ldrb w1, [x23,559] + ldrb w1, [x23,567] add x21, x21, :lo12:.LANCHOR0 - ldrh w3, [x21,2536] + ldrh w3, [x21,2544] mul w1, w1, w3 cmp w2, w1 - beq .L2431 - ldrb w24, [x23,562] - ldr w22, [x21,2608] - ldrh w25, [x21,2468] - cbnz w24, .L2429 + beq .L2495 + ldrb w24, [x23,570] + ldr w22, [x21,2616] + ldrh w25, [x21,2472] + cbnz w24, .L2493 sub w22, w22, #1 add x1, x29, 84 mov w0, w22 mov w2, w24 bl log2phys - ldr x20, [x23,3656] + ldr x20, [x23,3664] ldr w0, [x29,84] - ldr x1, [x23,3608] + ldr x1, [x23,3616] str w0, [x29,92] cmn w0, #1 str w22, [x29,112] str x1, [x29,96] str x20, [x29,104] str w24, [x20,4] - beq .L2433 + beq .L2497 add x0, x29, 88 mov w1, 1 mov w2, w24 bl FlashReadPages - b .L2434 -.L2433: - ldr x0, [x23,3608] + b .L2498 +.L2497: + ldr x0, [x23,3616] mov w1, 255 - ldrh w2, [x21,2546] + ldrh w2, [x21,2554] bl ftl_memset -.L2434: +.L2498: add x24, x19, :lo12:.LANCHOR2 mov w0, -3947 lsl w25, w25, 2 strh w0, [x20] mov w23, 0 - add x21, x24, 552 -.L2435: + add x21, x24, 560 +.L2499: cmp w23, w25 - beq .L2436 + beq .L2500 ldrh w0, [x21,4] - cbz w0, .L2436 + cbz w0, .L2500 ldr w0, [x29,92] add w23, w23, 1 str w0, [x20,12] @@ -16250,7 +16607,7 @@ FtlWriteDumpData: str w22, [x20,8] bl get_new_active_ppa str w0, [x29,92] - ldr w1, [x24,748] + ldr w1, [x24,756] mov w2, 0 str w1, [x20,4] mov w3, w2 @@ -16258,21 +16615,21 @@ FtlWriteDumpData: add x0, x29, 88 cmn w1, #1 csel w1, w1, wzr, ne - str w1, [x24,748] + str w1, [x24,756] mov w1, 1 bl FlashProgPages ldrh w0, [x21] bl decrement_vpc_count - b .L2435 -.L2436: + b .L2499 +.L2500: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 - strb w0, [x19,562] - b .L2429 -.L2431: + strb w0, [x19,570] + b .L2493 +.L2495: add x19, x19, :lo12:.LANCHOR2 - strb wzr, [x19,562] -.L2429: + strb wzr, [x19,570] +.L2493: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16292,24 +16649,24 @@ l2p_flush: adrp x20, .LANCHOR0 adrp x21, .LANCHOR2 bl FtlWriteDumpData -.L2447: +.L2511: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2574] + ldrh w0, [x0,2582] cmp w0, w19 - bls .L2450 + bls .L2514 add x1, x21, :lo12:.LANCHOR2 ubfiz x0, x19, 4, 16 - ldr x1, [x1,696] + ldr x1, [x1,704] add x0, x1, x0 ldr w0, [x0,4] - tbz w0, #31, .L2448 + tbz w0, #31, .L2512 mov w0, w19 bl flush_l2p_region -.L2448: +.L2512: add w19, w19, 1 uxth w19, w19 - b .L2447 -.L2450: + b .L2511 +.L2514: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -16327,89 +16684,89 @@ allocate_new_data_superblock: str x21, [sp,32] add x2, x19, :lo12:.LANCHOR2 ldrh w20, [x0] - ldr w1, [x2,416] - cbnz w1, .L2452 + ldr w1, [x2,424] + cbnz w1, .L2516 mov x21, x0 mov w0, 65535 cmp w20, w0 - beq .L2453 + beq .L2517 ubfiz x1, x20, 1, 16 - ldr x0, [x2,512] + ldr x0, [x2,520] ldrh w0, [x0,x1] - cbz w0, .L2454 + cbz w0, .L2518 mov w0, w20 bl INSERT_DATA_LIST - b .L2453 -.L2454: + b .L2517 +.L2518: mov w0, w20 bl INSERT_FREE_LIST -.L2453: +.L2517: add x2, x19, :lo12:.LANCHOR2 strb wzr, [x21,8] - add x0, x2, 600 + add x0, x2, 608 cmp x21, x0 - beq .L2455 + beq .L2519 adrp x1, .LANCHOR0 add x4, x1, :lo12:.LANCHOR0 - ldrh w3, [x4,2488] + ldrh w3, [x4,2492] cmp w3, 1 - beq .L2455 - ldrb w0, [x4,196] - cbz w0, .L2456 -.L2455: + beq .L2519 + ldrb w0, [x4,204] + cbz w0, .L2520 +.L2519: mov w0, 1 strb w0, [x21,8] - b .L2457 -.L2456: - add x0, x2, 552 + b .L2521 +.L2520: + add x0, x2, 560 cmp x21, x0 - bne .L2457 + bne .L2521 cmp w3, 3 - beq .L2459 - ldr w0, [x2,840] + beq .L2523 + ldr w0, [x2,848] cmp w0, 1 - bne .L2460 -.L2459: + bne .L2524 +.L2523: add x2, x19, :lo12:.LANCHOR2 mov w0, 1 - strb w0, [x2,560] -.L2460: + strb w0, [x2,568] +.L2524: add x1, x1, :lo12:.LANCHOR0 - ldr w0, [x1,2460] - cbz w0, .L2457 + ldr w0, [x1,2372] + cbz w0, .L2521 add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,768] + ldr w0, [x1,776] cmp w0, 39 - bhi .L2457 + bhi .L2521 mov w0, 1 - strb w0, [x1,560] -.L2457: + strb w0, [x1,568] +.L2521: add x3, x19, :lo12:.LANCHOR2 mov w0, 65535 - ldrh w1, [x3,3872] + ldrh w1, [x3,3880] cmp w1, w0 - beq .L2462 + beq .L2526 cmp w20, w1 - bne .L2463 + bne .L2527 ubfiz x2, x1, 1, 16 - ldr x0, [x3,512] + ldr x0, [x3,520] ldrh w0, [x0,x2] - cbz w0, .L2464 -.L2463: + cbz w0, .L2528 +.L2527: mov w0, w1 bl update_vpc_list -.L2464: +.L2528: add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - strh w0, [x19,3872] -.L2462: + strh w0, [x19,3880] +.L2526: mov x0, x21 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2452: +.L2516: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -16420,122 +16777,143 @@ allocate_new_data_superblock: .global FtlCheckVpc .type FtlCheckVpc, %function FtlCheckVpc: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -128]! adrp x1, .LANCHOR3 - adrp x0, .LC107 + adrp x0, .LC109 add x1, x1, :lo12:.LANCHOR3 add x29, sp, 0 - add x1, x1, 80 - add x0, x0, :lo12:.LC107 + add x1, x1, 216 + add x0, x0, :lo12:.LC109 stp x19, x20, [sp,16] adrp x20, .LANCHOR4 mov w19, 0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] + stp x27, x28, [sp,80] add x21, x20, :lo12:.LANCHOR4 bl printk - add x0, x21, 1832 + add x0, x21, 1840 mov w1, 0 mov x2, 8192 adrp x22, .LANCHOR0 bl memset -.L2478: +.L2542: add x0, x22, :lo12:.LANCHOR0 - adrp x24, .LANCHOR0 - ldr w0, [x0,2608] + adrp x26, .LANCHOR0 + ldr w0, [x0,2616] cmp w19, w0 - bcs .L2495 + bcs .L2561 mov w0, w19 - add x1, x29, 92 + add x1, x29, 124 mov w2, 0 bl log2phys - ldr w0, [x29,92] + ldr w0, [x29,124] cmn w0, #1 - beq .L2479 + beq .L2543 lsr w0, w0, 10 bl P2V_block_in_plane uxth w0, w0 - add x2, x21, 1832 + add x2, x21, 1840 ldrh w1, [x2,w0,sxtw 1] add w1, w1, 1 strh w1, [x2,w0,sxtw 1] -.L2479: +.L2543: add w19, w19, 1 - b .L2478 -.L2495: - adrp x21, .LC139 - mov w19, 0 - adrp x22, .LANCHOR2 - add x25, x20, :lo12:.LANCHOR4 - add x21, x21, :lo12:.LC139 -.L2481: - add x0, x24, :lo12:.LANCHOR0 + b .L2542 +.L2561: + mov w21, 0 + adrp x22, .LC142 + mov w19, w21 + adrp x27, .LANCHOR2 + add x28, x20, :lo12:.LANCHOR4 + add x22, x22, :lo12:.LC142 + mov w4, 65535 +.L2545: + add x0, x26, :lo12:.LANCHOR0 adrp x23, .LANCHOR2 - ldrh w0, [x0,2476] + ldrh w0, [x0,2480] cmp w0, w19 - bls .L2496 - add x1, x22, :lo12:.LANCHOR2 - ubfiz x0, x19, 1, 16 - ldr x1, [x1,512] - ldrh w2, [x1,x0] - add x0, x25, 1832 - ldrh w3, [x0,w19,sxtw 1] + bls .L2562 + add x25, x27, :lo12:.LANCHOR2 + ubfiz x24, x19, 1, 16 + add x23, x28, 1840 + sxtw x5, w19 + ldr x0, [x25,520] + ldrh w3, [x23,w19,sxtw 1] + ldrh w2, [x0,x24] cmp w2, w3 - beq .L2482 - mov x0, x21 + beq .L2546 + mov x0, x22 mov w1, w19 + str x4, [x29,96] + str x5, [x29,104] bl printk -.L2482: + ldr x0, [x25,520] + ldr x4, [x29,96] + ldrh w0, [x0,x24] + cmp w0, w4 + beq .L2546 + ldr x5, [x29,104] + ldrh w1, [x23,x5,lsl 1] + cmp w1, w0 + csinc w21, w21, wzr, ls +.L2546: add w19, w19, 1 uxth w19, w19 - b .L2481 -.L2496: + b .L2545 +.L2562: add x1, x23, :lo12:.LANCHOR2 - ldr x0, [x1,536] - cbz x0, .L2477 - ldr x19, [x1,496] - adrp x22, .LC140 - ldrh w24, [x1,544] - mov w21, 0 + ldr x0, [x1,544] + cbz x0, .L2548 + ldr x19, [x1,504] + adrp x24, .LC143 + ldrh w25, [x1,552] + mov w22, 0 sub x19, x0, x19 mov x0, -6148914691236517206 asr x19, x19, 1 - add x22, x22, :lo12:.LC140 + add x24, x24, :lo12:.LC143 add x20, x20, :lo12:.LANCHOR4 - mov w25, 6 + mov w26, 6 madd x19, x0, x19, x19 - mov w26, 65535 + mov w27, 65535 uxth w19, w19 -.L2485: - cmp w21, w24 - beq .L2477 +.L2549: + cmp w22, w25 + beq .L2548 add x1, x23, :lo12:.LANCHOR2 ubfiz x0, x19, 1, 16 - ldr x1, [x1,512] + ldr x1, [x1,520] ldrh w2, [x1,x0] - cbz w2, .L2486 - add x3, x20, 1832 - mov x0, x22 + cbz w2, .L2550 + add x3, x20, 1840 + mov x0, x24 mov w1, w19 + mov w21, 1 ldrh w3, [x3,w19,sxtw 1] bl printk -.L2486: +.L2550: add x0, x23, :lo12:.LANCHOR2 - umull x19, w19, w25 - ldr x0, [x0,496] + umull x19, w19, w26 + ldr x0, [x0,504] ldrh w19, [x0,x19] - cmp w19, w26 - beq .L2477 - add w21, w21, 1 - uxth w21, w21 - b .L2485 -.L2477: + cmp w19, w27 + beq .L2548 + add w22, w22, 1 + uxth w22, w22 + b .L2549 +.L2548: + adrp x0, .LC144 + mov w1, w21 + add x0, x0, :lo12:.LC144 + bl printk ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 128 ret .size FtlCheckVpc, .-FtlCheckVpc .align 2 @@ -16543,8 +16921,8 @@ FtlCheckVpc: .type Ftlscanalldata, %function Ftlscanalldata: sub sp, sp, #80 - adrp x0, .LC141 - add x0, x0, :lo12:.LC141 + adrp x0, .LC145 + add x0, x0, :lo12:.LC145 mov w1, 0 stp x29, x30, [sp,16] add x29, sp, 16 @@ -16553,37 +16931,37 @@ Ftlscanalldata: mov w20, 0 stp x21, x22, [sp,48] add x19, x19, :lo12:.LANCHOR4 - adrp x21, .LC142 - add x21, x21, :lo12:.LC142 - add x19, x19, 1696 + adrp x21, .LC146 + add x21, x21, :lo12:.LC146 + add x19, x19, 1704 bl printk -.L2498: - adrp x0, .LANCHOR0+2608 - ldr w0, [x0,#:lo12:.LANCHOR0+2608] +.L2564: + adrp x0, .LANCHOR0+2616 + ldr w0, [x0,#:lo12:.LANCHOR0+2616] cmp w20, w0 - bcs .L2505 + bcs .L2571 mov w0, w20 add x1, x29, 60 mov w2, 0 bl log2phys and w0, w20, 2047 - cbnz w0, .L2499 + cbnz w0, .L2565 ldr w2, [x29,60] mov x0, x21 mov w1, w20 bl printk -.L2499: +.L2565: ldr w0, [x29,60] cmn w0, #1 - beq .L2501 + beq .L2567 adrp x1, .LANCHOR2 str w0, [x19,4] add x1, x1, :lo12:.LANCHOR2 mov w2, 0 str w20, [x19,24] str wzr, [x19] - ldr x0, [x1,3608] - ldr x22, [x1,3656] + ldr x0, [x1,3616] + ldr x22, [x1,3664] mov w1, 1 str x0, [x19,8] mov x0, x19 @@ -16591,23 +16969,23 @@ Ftlscanalldata: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L2502 + beq .L2568 cmp w0, 256 - beq .L2502 + beq .L2568 ldr w0, [x22,8] cmp w0, w20 - beq .L2501 -.L2502: + beq .L2567 +.L2568: adrp x2, .LANCHOR4 mov w1, w20 add x2, x2, :lo12:.LANCHOR4 - add x2, x2, 1696 + add x2, x2, 1704 ldr x7, [x2,8] ldr x6, [x2,16] ldr w0, [x7,4] str w0, [sp] - adrp x0, .LC143 - add x0, x0, :lo12:.LC143 + adrp x0, .LC147 + add x0, x0, :lo12:.LC147 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -16615,10 +16993,10 @@ Ftlscanalldata: ldr w6, [x6,12] ldr w7, [x7] bl printk -.L2501: +.L2567: add w20, w20, 1 - b .L2498 -.L2505: + b .L2564 +.L2571: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -16642,51 +17020,51 @@ FtlReUsePrevPpa: uxth w0, w0 add x2, x21, :lo12:.LANCHOR2 ubfiz x22, x0, 1, 16 - ldr x3, [x2,512] + ldr x3, [x2,520] ldrh w1, [x3,x22] - cbnz w1, .L2507 - ldr x19, [x2,536] - cbz x19, .L2508 - ldrh w3, [x2,544] + cbnz w1, .L2573 + ldr x19, [x2,544] + cbz x19, .L2574 + ldrh w3, [x2,552] mov x4, -6148914691236517206 - ldr x2, [x2,496] + ldr x2, [x2,504] mov w5, 65535 sub x19, x19, x2 asr x19, x19, 1 madd x19, x4, x19, x19 mov w4, 6 uxth w19, w19 -.L2509: +.L2575: cmp w1, w3 - beq .L2508 + beq .L2574 cmp w19, w0 - bne .L2510 + bne .L2576 add x21, x21, :lo12:.LANCHOR2 mov w1, w19 - add x0, x21, 536 + add x0, x21, 544 bl List_remove_node - ldrh w0, [x21,544] + ldrh w0, [x21,552] sub w0, w0, #1 - strh w0, [x21,544] + strh w0, [x21,552] mov w0, w19 bl INSERT_DATA_LIST - ldr x1, [x21,512] + ldr x1, [x21,520] ldrh w0, [x1,x22] add w0, w0, 1 strh w0, [x1,x22] - b .L2508 -.L2510: + b .L2574 +.L2576: umull x19, w19, w4 ldrh w19, [x2,x19] cmp w19, w5 - beq .L2508 + beq .L2574 add w1, w1, 1 uxth w1, w1 - b .L2509 -.L2507: + b .L2575 +.L2573: add w1, w1, 1 strh w1, [x3,x22] -.L2508: +.L2574: add x1, x29, 60 mov w0, w20 mov w2, 1 @@ -16711,7 +17089,7 @@ FtlRecoverySuperblock: mov x19, x0 ldrh w0, [x0] cmp w0, w2 - beq .L2676 + beq .L2742 ldrh w0, [x19,2] adrp x23, .LANCHOR0 str w0, [x29,188] @@ -16719,74 +17097,74 @@ FtlRecoverySuperblock: str w0, [x29,176] add x0, x23, :lo12:.LANCHOR0 ldr w1, [x29,188] - ldrh w0, [x0,2536] + ldrh w0, [x0,2544] cmp w0, w1 - bne .L2518 + bne .L2584 strh wzr, [x19,4] - b .L2682 -.L2518: + b .L2748 +.L2584: ldrh w0, [x19,16] mov w1, 0 -.L2519: +.L2585: cmp w0, w2 - bne .L2685 + bne .L2751 add w1, w1, 1 uxth w1, w1 add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] - b .L2519 -.L2685: + b .L2585 +.L2751: ldrb w1, [x19,8] cmp w1, 1 - bne .L2521 + bne .L2587 bl FtlGetLastWrittenPage cmn w0, #1 mov w20, w0 - beq .L2522 + beq .L2588 add x0, x23, :lo12:.LANCHOR0 mov w24, w20 - ldrb w1, [x0,196] - cbnz w1, .L2596 - add x0, x0, 200 + ldrb w1, [x0,204] + cbnz w1, .L2662 + add x0, x0, 208 ldrh w24, [x0,w20,sxtw 1] - b .L2596 -.L2521: + b .L2662 +.L2587: mov w1, 0 bl FtlGetLastWrittenPage cmn w0, #1 mov w20, w0 - beq .L2522 + beq .L2588 mov w24, w0 -.L2596: +.L2662: add x0, x23, :lo12:.LANCHOR0 mov x2, x19 mov w26, 0 mov w8, 65535 mov w9, 56 adrp x10, .LANCHOR2 - ldrh w4, [x0,2468] + ldrh w4, [x0,2472] mov w11, 4 - ldrh w7, [x0,2548] + ldrh w7, [x0,2556] add x4, x19, x4, lsl 1 - b .L2524 -.L2522: + b .L2590 +.L2588: strh wzr, [x19,2] -.L2682: +.L2748: strb wzr, [x19,6] - b .L2676 -.L2526: + b .L2742 +.L2592: ldrh w1, [x2,16] cmp w1, w8 - beq .L2525 + beq .L2591 add x5, x10, :lo12:.LANCHOR2 orr w1, w24, w1, lsl 10 umull x0, w26, w9 add w3, w26, 1 - ldr x6, [x5,3584] + ldr x6, [x5,3592] add x6, x6, x0 str w1, [x6,4] - ldr x1, [x5,3584] - ldr x5, [x5,1400] + ldr x1, [x5,3592] + ldr x5, [x5,1408] add x0, x1, x0 mul w1, w26, w7 uxth w26, w3 @@ -16794,21 +17172,21 @@ FtlRecoverySuperblock: sdiv w1, w1, w11 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2525: +.L2591: add x2, x2, 2 -.L2524: +.L2590: cmp x2, x4 - bne .L2526 + bne .L2592 ldrb w0, [x19,8] str wzr, [x29,184] cmp w0, 1 - bne .L2527 + bne .L2593 add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,196] + ldrb w0, [x0,204] cmp w0, wzr cset w0, ne str w0, [x29,184] -.L2527: +.L2593: adrp x21, .LANCHOR2 ldr w2, [x29,184] add x22, x21, :lo12:.LANCHOR2 @@ -16816,29 +17194,29 @@ FtlRecoverySuperblock: mov x27, 0 mov w25, 65535 mov x28, 56 - ldr x0, [x22,3584] + ldr x0, [x22,3592] bl FlashReadPages - ldr w0, [x22,748] - adrp x22, .LC144 + ldr w0, [x22,756] + adrp x22, .LC148 str w0, [x29,168] - add x22, x22, :lo12:.LC144 + add x22, x22, :lo12:.LC148 uxth w0, w24 str w0, [x29,160] -.L2528: +.L2594: uxth w2, w27 cmp w2, w26 - bcs .L2535 + bcs .L2601 add x6, x21, :lo12:.LANCHOR2 mul x0, x27, x28 - ldr x4, [x6,3584] + ldr x4, [x6,3592] add x1, x4, x0 ldr w0, [x4,x0] - cbnz w0, .L2529 + cbnz w0, .L2595 ldr x7, [x1,16] ldr w4, [x7,4] cmn w4, #1 - beq .L2530 - ldr w1, [x6,748] + beq .L2596 + ldr w1, [x6,756] mov w0, w4 str x7, [x29,128] str x2, [x29,136] @@ -16849,23 +17227,23 @@ FtlRecoverySuperblock: ldr x4, [x29,144] ldr x2, [x29,136] ldr x7, [x29,128] - cbz w0, .L2530 + cbz w0, .L2596 add w4, w4, 1 - str w4, [x6,748] -.L2530: + str w4, [x6,756] +.L2596: ldr w0, [x7] cmn w0, #1 - bne .L2531 -.L2535: + bne .L2597 +.L2601: cmp w2, w26 - bne .L2677 + bne .L2743 add x0, x21, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 - ldr x0, [x0,3584] + ldr x0, [x0,3592] ldr w0, [x0,4] - b .L2678 -.L2529: + b .L2744 +.L2595: ldr w1, [x1,4] mov x0, x22 bl printk @@ -16873,104 +17251,104 @@ FtlRecoverySuperblock: adrp x0, .LANCHOR5 ldrh w1, [x19] add x0, x0, :lo12:.LANCHOR5 - strh w1, [x0,1320] -.L2531: + strh w1, [x0,1328] +.L2597: add x27, x27, 1 - b .L2528 -.L2677: + b .L2594 +.L2743: add x0, x21, :lo12:.LANCHOR2 mov w1, 56 uxth w20, w20 umull x2, w2, w1 - ldr x0, [x0,3584] + ldr x0, [x0,3592] add x2, x0, x2 ldr w0, [x2,4] -.L2678: +.L2744: lsr x0, x0, 10 bl P2V_plane uxth w26, w0 ldrb w1, [x19,8] cmp w1, 1 - bne .L2537 + bne .L2603 add x0, x23, :lo12:.LANCHOR0 - ldrb w2, [x0,196] - cbnz w2, .L2537 - add x0, x0, 200 + ldrb w2, [x0,204] + cbnz w2, .L2603 + add x0, x0, 208 ldrh w20, [x0,w20,sxtw 1] -.L2537: +.L2603: add x0, x23, :lo12:.LANCHOR0 - ldrh w0, [x0,2536] + ldrh w0, [x0,2544] cmp w0, w20 - bne .L2538 + bne .L2604 strh w20, [x19,2] strb wzr, [x19,6] strh wzr, [x19,4] -.L2538: +.L2604: ldrh w0, [x29,176] str w0, [x29,152] ldr w0, [x29,188] cmp w20, w0 - bne .L2539 + bne .L2605 ldr w0, [x29,152] cmp w26, w0 - beq .L2683 -.L2539: + beq .L2749 +.L2605: ldr w0, [x29,168] sub w22, w0, #1 mov w0, 65535 cmp w25, w0 - bne .L2540 - cbnz w1, .L2541 -.L2540: + bne .L2606 + cbnz w1, .L2607 +.L2606: add x0, x21, :lo12:.LANCHOR2 uxth w5, w24 - ldr w1, [x0,3884] + ldr w1, [x0,3892] cmn w1, #1 - bne .L2542 - str w22, [x0,3884] -.L2542: + bne .L2608 + str w22, [x0,3892] +.L2608: add x0, x21, :lo12:.LANCHOR2 ldr w25, [x29,188] - ldr w6, [x0,3884] + ldr w6, [x0,3892] ldr w0, [x29,188] add w0, w0, 7 cmp w0, w24, uxth - bge .L2543 + bge .L2609 sub w25, w5, #7 uxth w25, w25 -.L2543: +.L2609: mov w3, -1 add x28, x21, :lo12:.LANCHOR2 mov w27, w3 mov w4, 65535 mov w7, 56 - add x8, x28, 1500 -.L2544: + add x8, x28, 1508 +.L2610: cmp w25, w5 - bhi .L2557 + bhi .L2623 add x0, x23, :lo12:.LANCHOR0 mov w24, 0 - ldrh w2, [x0,2468] + ldrh w2, [x0,2472] mov x0, x19 add x2, x19, x2, lsl 1 -.L2558: +.L2624: cmp x0, x2 - beq .L2686 + beq .L2752 ldrh w1, [x0,16] cmp w1, w4 - beq .L2545 + beq .L2611 umull x9, w24, w7 - ldr x10, [x28,3584] + ldr x10, [x28,3592] add w24, w24, 1 orr w1, w25, w1, lsl 10 add x9, x10, x9 uxth w24, w24 str w1, [x9,4] -.L2545: +.L2611: add x0, x0, 2 - b .L2558 -.L2686: - ldr x0, [x28,3584] + b .L2624 +.L2752: + ldr x0, [x28,3592] mov w1, w24 ldr w2, [x29,184] str x8, [x29,128] @@ -16986,157 +17364,157 @@ FtlRecoverySuperblock: mov w1, 0 ldr x6, [x29,160] sxtw x10, w25 - ldrb w9, [x0,196] - ldr x0, [x28,3584] + ldrb w9, [x0,204] + ldr x0, [x28,3592] ldr x4, [x29,144] ldr x7, [x29,136] add x0, x0, 16 ldr x8, [x29,128] -.L2547: +.L2613: cmp w1, w24 - beq .L2687 + beq .L2753 ldr w2, [x0,-16] - cbnz w2, .L2548 + cbnz w2, .L2614 ldr x2, [x0] ldrh w11, [x2] cmp w11, w4 - beq .L2549 + beq .L2615 ldr w2, [x2,4] cmn w2, #1 - beq .L2549 - ldr w27, [x28,3884] + beq .L2615 + ldr w27, [x28,3892] cmn w3, #1 - str w2, [x28,3884] - bne .L2549 + str w2, [x28,3892] + bne .L2615 ldrh w2, [x8,x10,lsl 1] cmp w2, w4 - bne .L2550 - cbz w9, .L2549 -.L2550: + bne .L2616 + cbz w9, .L2615 +.L2616: cmp w27, w22 csinv w3, w27, wzr, ne - b .L2549 -.L2548: - adrp x0, .LANCHOR5+1320 + b .L2615 +.L2614: + adrp x0, .LANCHOR5+1328 ldrh w1, [x19] - strh w1, [x0,#:lo12:.LANCHOR5+1320] + strh w1, [x0,#:lo12:.LANCHOR5+1328] ldrb w0, [x19,8] - cbnz w0, .L2541 + cbnz w0, .L2607 add x0, x21, :lo12:.LANCHOR2 - add x1, x0, 1500 + add x1, x0, 1508 ldrh w2, [x1,w25,sxtw 1] mov w1, 65535 cmp w2, w1 - bne .L2552 + bne .L2618 cmn w3, #1 - beq .L2553 - str w3, [x0,3884] - b .L2541 -.L2553: + beq .L2619 + str w3, [x0,3892] + b .L2607 +.L2619: cmp w6, w22 - beq .L2554 - str w6, [x0,3884] - b .L2541 -.L2554: - ldr w1, [x0,3884] - b .L2684 -.L2552: + beq .L2620 + str w6, [x0,3892] + b .L2607 +.L2620: + ldr w1, [x0,3892] + b .L2750 +.L2618: cmp w27, w22 - beq .L2555 + beq .L2621 cmn w27, #1 - beq .L2541 - str w27, [x0,3884] - b .L2541 -.L2555: - ldr w1, [x0,3884] + beq .L2607 + str w27, [x0,3892] + b .L2607 +.L2621: + ldr w1, [x0,3892] cmp w1, w22 - beq .L2541 -.L2684: + beq .L2607 +.L2750: sub w1, w1, #1 - b .L2679 -.L2549: + b .L2745 +.L2615: add w1, w1, 1 add x0, x0, 56 uxth w1, w1 - b .L2547 -.L2687: + b .L2613 +.L2753: add w25, w25, 1 uxth w25, w25 - b .L2544 -.L2557: + b .L2610 +.L2623: add x0, x21, :lo12:.LANCHOR2 mov w1, -1 -.L2679: - str w1, [x0,3884] -.L2541: +.L2745: + str w1, [x0,3892] +.L2607: adrp x0, .LANCHOR5 str x0, [x29,136] add x1, x0, :lo12:.LANCHOR5 - adrp x0, .LC146 - add x0, x0, :lo12:.LC146 + adrp x0, .LC150 + add x0, x0, :lo12:.LC150 ldr w24, [x29,188] str x0, [x29,128] - adrp x0, .LC145 + adrp x0, .LC149 mov w2, 1 - add x0, x0, :lo12:.LC145 - strh w2, [x1,1322] + add x0, x0, :lo12:.LC149 + strh w2, [x1,1330] str x0, [x29,120] -.L2559: +.L2625: add x0, x23, :lo12:.LANCHOR0 mov x1, x19 str wzr, [x29,176] mov w7, 65535 mov w8, 56 - ldrh w3, [x0,2468] - ldrb w6, [x0,196] + ldrh w3, [x0,2472] + ldrb w6, [x0,204] add x3, x19, x3, lsl 1 -.L2560: +.L2626: cmp x1, x3 - beq .L2688 + beq .L2754 ldrh w2, [x1,16] cmp w2, w7 - beq .L2561 + beq .L2627 ldr w0, [x29,176] add x5, x21, :lo12:.LANCHOR2 orr w2, w24, w2, lsl 10 - ldr x4, [x5,3584] + ldr x4, [x5,3592] umull x0, w0, w8 add x4, x4, x0 str w2, [x4,4] ldrb w2, [x19,8] cmp w2, 1 - bne .L2562 - cbz w6, .L2562 - ldr x2, [x5,3584] + bne .L2628 + cbz w6, .L2628 + ldr x2, [x5,3592] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2562: +.L2628: ldr w0, [x29,176] add w0, w0, 1 uxth w0, w0 str w0, [x29,176] -.L2561: +.L2627: add x1, x1, 2 - b .L2560 -.L2688: + b .L2626 +.L2754: add x0, x21, :lo12:.LANCHOR2 ldr w1, [x29,176] ldr w2, [x29,184] - ldr x0, [x0,3584] + ldr x0, [x0,3592] bl FlashReadPages str xzr, [x29,160] -.L2564: +.L2630: ldrh w0, [x29,160] ldr w1, [x29,176] cmp w1, w0, uxth - bls .L2689 + bls .L2755 ldr x0, [x29,160] mov x25, 56 mul x25, x0, x25 add x0, x21, :lo12:.LANCHOR2 - ldr x28, [x0,3584] + ldr x28, [x0,3592] add x27, x28, x25 ldr w1, [x27,4] str w1, [x29,204] @@ -17147,41 +17525,41 @@ FtlRecoverySuperblock: ldr w1, [x29,188] cmp w24, w1 ldr x1, [x29,168] - bcc .L2565 + bcc .L2631 ldr w2, [x29,152] cmp w0, w2 - bcs .L2600 + bcs .L2666 ldr w2, [x29,188] cmp w24, w2 - beq .L2565 -.L2600: + beq .L2631 +.L2666: cmp w0, w26 - bne .L2601 + bne .L2667 cmp w24, w20 - beq .L2567 -.L2601: + beq .L2633 +.L2667: ldr w0, [x28,x25] cmn w0, #1 - beq .L2569 + beq .L2635 ldr x28, [x27,16] mov w0, 61589 ldrh w1, [x28] cmp w1, w0 - beq .L2570 + beq .L2636 ldrh w0, [x19] - b .L2680 -.L2570: + b .L2746 +.L2636: ldr w22, [x28,4] cmn w22, #1 - beq .L2571 + beq .L2637 add x27, x21, :lo12:.LANCHOR2 mov w0, w22 - ldr w1, [x27,748] + ldr w1, [x27,756] bl ftl_cmp_data_ver - cbz w0, .L2571 + cbz w0, .L2637 add w0, w22, 1 - str w0, [x27,748] -.L2571: + str w0, [x27,756] +.L2637: ldr w27, [x28,8] add x1, x29, 200 ldr w0, [x28,12] @@ -17192,52 +17570,52 @@ FtlRecoverySuperblock: ldr w28, [x29,196] add x3, x21, :lo12:.LANCHOR2 str x3, [x29,168] - ldr w1, [x3,3884] + ldr w1, [x3,3892] cmn w1, #1 - beq .L2572 + beq .L2638 mov w0, w22 bl ftl_cmp_data_ver ldr x3, [x29,168] - cbz w0, .L2572 + cbz w0, .L2638 cmn w28, #1 - beq .L2573 - ldr x0, [x3,3584] + beq .L2639 + ldr x0, [x3,3592] mov w2, 0 str x3, [x29,112] add x0, x0, x25 str w28, [x0,4] ldr x1, [x0,16] - ldr x0, [x3,3584] + ldr x0, [x3,3592] str x1, [x29,168] mov w1, 1 add x0, x0, x25 bl FlashReadPages ldr x3, [x29,112] ldr x0, [x29,168] - ldr x2, [x3,3584] + ldr x2, [x3,3592] ldr w0, [x0,4] str w0, [x29,144] add x4, x2, x25 ldr w0, [x2,x25] cmn w0, #1 - bne .L2574 - b .L2575 -.L2573: + bne .L2640 + b .L2641 +.L2639: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - bne .L2565 + bne .L2631 mov w0, w27 add x1, x29, 196 mov w2, 1 bl log2phys - b .L2565 -.L2574: + b .L2631 +.L2640: ldr x0, [x29,168] ldr w28, [x0,8] cmp w28, w27 - bne .L2575 - ldr w0, [x3,3884] + bne .L2641 + ldr w0, [x3,3892] ldr w1, [x29,144] str x2, [x29,96] str x4, [x29,104] @@ -17246,205 +17624,205 @@ FtlRecoverySuperblock: ldr x3, [x29,112] ldr x4, [x29,104] ldr x2, [x29,96] - cbz w0, .L2575 + cbz w0, .L2641 ldr w0, [x29,200] ldr w1, [x29,204] cmp w0, w1 - beq .L2580 + beq .L2646 ldr w1, [x29,196] cmp w0, w1 - beq .L2575 + beq .L2641 cmn w0, #1 - beq .L2578 + beq .L2644 str w0, [x4,4] mov w2, 0 ldr x1, [x4,16] - ldr x0, [x3,3584] + ldr x0, [x3,3592] str x1, [x29,168] mov w1, 1 add x0, x0, x25 bl FlashReadPages - b .L2579 -.L2578: + b .L2645 +.L2644: str w0, [x2,x25] -.L2579: +.L2645: add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,3584] + ldr x1, [x0,3592] ldr w1, [x1,x25] cmn w1, #1 - beq .L2580 + beq .L2646 ldr x1, [x29,168] - ldr w0, [x0,3884] + ldr w0, [x0,3892] ldr w25, [x1,4] mov w1, w25 bl ftl_cmp_data_ver - cbz w0, .L2580 + cbz w0, .L2646 ldr w0, [x29,144] mov w1, w25 bl ftl_cmp_data_ver - cbz w0, .L2575 -.L2580: + cbz w0, .L2641 +.L2646: ldr w1, [x29,196] mov w0, w28 bl FtlReUsePrevPpa -.L2575: +.L2641: mov w0, -1 str w0, [x29,196] - b .L2582 -.L2572: + b .L2648 +.L2638: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - beq .L2582 + beq .L2648 cmn w28, #1 - beq .L2584 + beq .L2650 add x0, x23, :lo12:.LANCHOR0 ubfx x28, x28, 10, 21 - ldr w0, [x0,2484] + ldr w0, [x0,2488] cmp w28, w0 - bcs .L2565 -.L2584: + bcs .L2631 +.L2650: mov w0, w27 add x1, x29, 204 mov w2, 1 bl log2phys ldr w25, [x29,200] cmn w25, #1 - beq .L2582 + beq .L2648 ldr w0, [x29,196] cmp w25, w0 - beq .L2582 + beq .L2648 lsr x0, x25, 10 bl P2V_block_in_plane uxth w0, w0 add x1, x21, :lo12:.LANCHOR2 - ldrh w2, [x1,552] + ldrh w2, [x1,560] cmp w2, w0 - beq .L2586 - ldrh w2, [x1,600] + beq .L2652 + ldrh w2, [x1,608] cmp w2, w0 - beq .L2586 - ldrh w1, [x1,648] + beq .L2652 + ldrh w1, [x1,656] cmp w1, w0 - bne .L2582 -.L2586: + bne .L2648 +.L2652: add x28, x21, :lo12:.LANCHOR2 mov w1, 1 mov w2, 0 - ldr x0, [x28,3584] + ldr x0, [x28,3592] str w25, [x0,4] ldr x3, [x0,16] - ldr x0, [x28,3584] + ldr x0, [x28,3592] str x3, [x29,168] bl FlashReadPages - ldr x0, [x28,3584] + ldr x0, [x28,3592] ldr x3, [x29,168] ldr w0, [x0] ldr w1, [x3,4] cmn w0, #1 - beq .L2582 + beq .L2648 mov w0, w22 bl ftl_cmp_data_ver - cbnz w0, .L2582 + cbnz w0, .L2648 mov w0, w27 add x1, x29, 200 mov w2, 1 bl log2phys -.L2582: +.L2648: ldr w0, [x29,196] cmn w0, #1 - beq .L2565 + beq .L2631 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 add x2, x21, :lo12:.LANCHOR2 ubfiz x3, x1, 1, 16 - ldr x2, [x2,512] + ldr x2, [x2,520] ldrh w2, [x2,x3] - cbz w2, .L2587 -.L2680: + cbz w2, .L2653 +.L2746: bl decrement_vpc_count - b .L2565 -.L2587: + b .L2631 +.L2653: ldr x0, [x29,120] bl printk - b .L2565 -.L2569: + b .L2631 +.L2635: ldr x2, [x29,136] ldrh w0, [x19] add x25, x2, :lo12:.LANCHOR5 mov w2, w22 - strh w0, [x25,1320] + strh w0, [x25,1328] ldr x0, [x29,128] bl printk - ldr w0, [x25,1324] + ldr w0, [x25,1332] cmp w0, 31 - bhi .L2588 - add x1, x25, 1328 + bhi .L2654 + add x1, x25, 1336 ldr w2, [x29,204] str w2, [x1,w0,uxtw 2] add w0, w0, 1 - str w0, [x25,1324] -.L2588: + str w0, [x25,1332] +.L2654: ldrh w0, [x19] bl decrement_vpc_count add x0, x21, :lo12:.LANCHOR2 - ldr w1, [x0,3884] + ldr w1, [x0,3892] cmn w1, #1 - beq .L2681 + beq .L2747 cmp w1, w22 - bls .L2565 -.L2681: - str w22, [x0,3884] -.L2565: + bls .L2631 +.L2747: + str w22, [x0,3892] +.L2631: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L2564 -.L2689: + b .L2630 +.L2755: ldrb w0, [x19,8] add w24, w24, 1 cmp w0, 1 uxth w24, w24 - bne .L2591 + bne .L2657 add x0, x23, :lo12:.LANCHOR0 - ldrb w1, [x0,196] - cbz w1, .L2591 + ldrb w1, [x0,204] + cbz w1, .L2657 cmp w20, w24 - bne .L2591 - ldrh w0, [x0,2538] + bne .L2657 + ldrh w0, [x0,2546] cmp w0, w24 - beq .L2567 -.L2591: + beq .L2633 +.L2657: add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2536] + ldrh w1, [x0,2544] cmp w24, w1 - bne .L2559 - ldrh w2, [x0,2468] + bne .L2625 + ldrh w2, [x0,2472] mov w3, 65535 strh w24, [x19,2] mov x0, 0 strh wzr, [x19,4] -.L2593: +.L2659: uxth w1, w0 cmp w1, w2 - bcs .L2676 + bcs .L2742 add x0, x0, 1 add x4, x19, x0, lsl 1 ldrh w4, [x4,14] cmp w4, w3 - beq .L2593 + beq .L2659 strb w1, [x19,6] - b .L2676 -.L2567: + b .L2742 +.L2633: strb w26, [x19,6] strh w20, [x19,2] -.L2683: +.L2749: mov x0, x19 mov w1, w20 mov w2, w26 bl ftl_sb_update_avl_pages -.L2676: +.L2742: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17460,11 +17838,11 @@ FtlRecoverySuperblock: FtlVpcCheckAndModify: stp x29, x30, [sp, -80]! adrp x1, .LANCHOR3 - adrp x0, .LC107 + adrp x0, .LC109 add x1, x1, :lo12:.LANCHOR3 add x29, sp, 0 - add x1, x1, 96 - add x0, x0, :lo12:.LC107 + add x1, x1, 232 + add x0, x0, :lo12:.LC109 stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] @@ -17474,84 +17852,84 @@ FtlVpcCheckAndModify: adrp x20, .LANCHOR2 add x0, x20, :lo12:.LANCHOR2 mov w19, 0 - ldrh w2, [x1,2478] + ldrh w2, [x1,2482] mov w1, 0 - ldr x0, [x0,3704] + ldr x0, [x0,3712] lsl w2, w2, 1 bl ftl_memset -.L2691: +.L2757: add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2608] + ldr w0, [x0,2616] cmp w19, w0 - bcs .L2707 + bcs .L2773 mov w0, w19 add x1, x29, 76 mov w2, 0 bl log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2692 + beq .L2758 lsr x0, x0, 10 bl P2V_block_in_plane ubfiz x0, x0, 1, 16 add x1, x20, :lo12:.LANCHOR2 - ldr x2, [x1,3704] + ldr x2, [x1,3712] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] -.L2692: +.L2758: add w19, w19, 1 - b .L2691 -.L2707: - adrp x23, .LC147 + b .L2757 +.L2773: + adrp x23, .LC151 mov w19, 0 add x20, x20, :lo12:.LANCHOR2 mov w24, 65535 - add x23, x23, :lo12:.LC147 -.L2694: + add x23, x23, :lo12:.LC151 +.L2760: add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2476] + ldrh w0, [x0,2480] cmp w0, w19 - bls .L2708 + bls .L2774 ubfiz x21, x19, 1, 16 - ldr x0, [x20,512] + ldr x0, [x20,520] ldrh w2, [x0,x21] - ldr x0, [x20,3704] + ldr x0, [x20,3712] cmp w2, w24 ldrh w3, [x0,x21] - beq .L2695 + beq .L2761 cmp w2, w3 - beq .L2695 - ldrh w0, [x20,552] + beq .L2761 + ldrh w0, [x20,560] cmp w0, w19 - beq .L2695 - ldrh w0, [x20,648] + beq .L2761 + ldrh w0, [x20,656] cmp w0, w19 - beq .L2695 - ldrh w0, [x20,600] + beq .L2761 + ldrh w0, [x20,608] cmp w0, w19 - beq .L2695 + beq .L2761 mov w1, w19 mov x0, x23 bl printk - ldr x0, [x20,512] + ldr x0, [x20,520] ldrh w1, [x0,x21] - cbnz w1, .L2696 - ldr x1, [x20,3704] + cbnz w1, .L2762 + ldr x1, [x20,3712] ldrh w1, [x1,x21] strh w1, [x0,x21] - b .L2695 -.L2696: - ldr x1, [x20,3704] + b .L2761 +.L2762: + ldr x1, [x20,3712] ldrh w1, [x1,x21] strh w1, [x0,x21] mov w0, w19 bl update_vpc_list -.L2695: +.L2761: add w19, w19, 1 uxth w19, w19 - b .L2694 -.L2708: + b .L2760 +.L2774: bl l2p_flush bl FtlVpcTblFlush ldp x19, x20, [sp,16] @@ -17576,39 +17954,39 @@ FtlGcScanTempBlk: stp x25, x26, [sp,64] stp x27, x28, [sp,80] str x0, [x29,136] - ldrh w27, [x1,3360] + ldrh w27, [x1,3456] mov w1, 65535 cmp w27, w1 - beq .L2742 - cbnz w27, .L2710 - b .L2711 -.L2742: + beq .L2808 + cbnz w27, .L2776 + b .L2777 +.L2808: mov w27, 0 -.L2710: - adrp x0, .LANCHOR0+2536 +.L2776: + adrp x0, .LANCHOR0+2544 ldr w1, [x29,148] - ldrh w0, [x0,#:lo12:.LANCHOR0+2536] + ldrh w0, [x0,#:lo12:.LANCHOR0+2544] cmp w1, w0 - bne .L2712 -.L2711: + bne .L2778 +.L2777: bl FtlGcPageVarInit -.L2712: +.L2778: mov w0, -1 str w0, [x29,152] - adrp x0, .LC149 + adrp x0, .LC153 mov w23, 0 - add x0, x0, :lo12:.LC149 + add x0, x0, :lo12:.LC153 adrp x28, .LANCHOR0 str x0, [x29,128] -.L2713: +.L2779: ldrh w1, [x20] mov w0, 65535 strb wzr, [x20,8] cmp w1, w0 - beq .L2743 -.L2715: + beq .L2809 +.L2781: str w0, [x29,156] -.L2739: +.L2805: adrp x0, .LANCHOR0 mov x2, x20 add x0, x0, :lo12:.LANCHOR0 @@ -17616,27 +17994,27 @@ FtlGcScanTempBlk: mov w10, 56 adrp x11, .LANCHOR2 mov w7, 4 - ldrh w5, [x0,2468] - ldrh w8, [x0,2546] - ldrh w9, [x0,2548] + ldrh w5, [x0,2472] + ldrh w8, [x0,2554] + ldrh w9, [x0,2556] add x5, x20, x5, lsl 1 -.L2716: +.L2782: cmp x2, x5 - beq .L2762 + beq .L2828 ldrh w1, [x2,16] ldr w0, [x29,156] cmp w1, w0 - beq .L2717 + beq .L2783 add x4, x11, :lo12:.LANCHOR2 orr w1, w27, w1, lsl 10 umull x0, w21, w10 - ldr x6, [x4,3584] + ldr x6, [x4,3592] add x6, x6, x0 str w1, [x6,4] - ldr x1, [x4,3584] - ldr x6, [x4,1392] + ldr x1, [x4,3592] + ldr x6, [x4,1400] add x0, x1, x0 - ldr x4, [x4,1400] + ldr x4, [x4,1408] mul w1, w21, w8 sdiv w1, w1, w7 add x1, x6, x1, sxtw 2 @@ -17647,24 +18025,24 @@ FtlGcScanTempBlk: sdiv w1, w1, w7 add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L2717: +.L2783: add x2, x2, 2 - b .L2716 -.L2762: + b .L2782 +.L2828: adrp x19, .LANCHOR2 mov w1, w21 add x0, x19, :lo12:.LANCHOR2 mov w2, 0 mov x24, 0 - ldr x0, [x0,3584] + ldr x0, [x0,3592] bl FlashReadPages -.L2719: +.L2785: cmp w21, w24, uxth - bls .L2763 + bls .L2829 add x25, x19, :lo12:.LANCHOR2 mov x0, 56 mul x22, x24, x0 - ldr x1, [x25,3584] + ldr x1, [x25,3592] str x1, [x29,112] add x2, x1, x22 str x2, [x29,120] @@ -17676,36 +18054,36 @@ FtlGcScanTempBlk: ldr x2, [x29,120] ldr w8, [x1,x22] ldr x4, [x2,16] - cbnz w8, .L2720 + cbnz w8, .L2786 ldrh w0, [x4] ldr w1, [x29,156] cmp w0, w1 - bne .L2721 -.L2724: + bne .L2787 +.L2790: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbz w0, .L2758 + ldrb w0, [x0,204] + cbz w0, .L2824 add x19, x19, :lo12:.LANCHOR2 mov w0, 1 - str w0, [x19,3880] - b .L2714 -.L2721: + str w0, [x19,3888] + b .L2780 +.L2787: add x7, x28, :lo12:.LANCHOR0 ldr w0, [x4,8] - ldr w1, [x7,2608] + ldr w1, [x7,2616] cmp w0, w1 - bls .L2759 - b .L2724 -.L2758: + bls .L2825 + b .L2790 +.L2824: add x19, x19, :lo12:.LANCHOR2 ldrh w2, [x20] - ldr x1, [x19,512] + ldr x1, [x19,520] strh w0, [x1,x2,lsl 1] - b .L2761 -.L2759: + b .L2827 +.L2825: ldrb w1, [x7,72] - cbz w1, .L2728 + cbz w1, .L2794 add x1, x29, 164 mov w2, w8 str x4, [x29,120] @@ -17716,144 +18094,144 @@ FtlGcScanTempBlk: ldr w1, [x29,164] ldr w0, [x4,12] cmp w1, w0 - bne .L2728 + bne .L2794 cmn w1, #1 - beq .L2728 + beq .L2794 str w0, [x29,172] mov w1, 1 - ldr x0, [x25,3648] + ldr x0, [x25,3656] ldr x8, [x29,112] str x0, [x29,176] - ldr x0, [x25,3664] + ldr x0, [x25,3672] mov w2, w8 str x0, [x29,184] add x0, x29, 168 bl FlashReadPages ldr x7, [x29,104] - ldr x0, [x25,3584] + ldr x0, [x25,3592] ldr x5, [x29,176] - ldrh w2, [x7,2542] + ldrh w2, [x7,2550] add x22, x0, x22 ldr x4, [x29,120] mov x0, 0 lsl w2, w2, 7 -.L2730: +.L2796: cmp w2, w0 - bls .L2728 + bls .L2794 lsl x1, x0, 2 ldr x6, [x22,8] add x0, x0, 1 ldr w6, [x6,x1] ldr w1, [x5,x1] cmp w6, w1 - beq .L2730 + beq .L2796 ldrh w1, [x20] - adrp x0, .LC148 + adrp x0, .LC152 ldr w2, [x29,172] - add x0, x0, :lo12:.LC148 + add x0, x0, :lo12:.LC152 add x19, x19, :lo12:.LANCHOR2 bl printk ldrh w1, [x20] - ldr x0, [x19,512] + ldr x0, [x19,520] strh wzr, [x0,x1,lsl 1] -.L2761: +.L2827: ldrh w0, [x20] bl INSERT_FREE_LIST mov w0, -1 strh w0, [x20] - strh w0, [x19,792] - b .L2760 -.L2728: + strh w0, [x19,800] + b .L2826 +.L2794: ldr w0, [x4,12] mov w1, w26 ldr w2, [x4,8] add x24, x24, 1 bl FtlGcUpdatePage - b .L2719 -.L2720: + b .L2785 +.L2786: ldrh w1, [x20] mov w2, w26 ldr x0, [x29,128] bl printk adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldr w1, [x0,2460] - cbnz w1, .L2733 - ldrb w0, [x0,196] - cbz w0, .L2734 -.L2733: + ldr w1, [x0,2372] + cbnz w1, .L2799 + ldrb w0, [x0,204] + cbz w0, .L2800 +.L2799: add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x20] - ldr x0, [x0,432] + ldr x0, [x0,440] ldrh w0, [x0,x1,lsl 1] cmp w0, 159 - bls .L2735 -.L2734: + bls .L2801 +.L2800: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,3584] + ldr x0, [x0,3592] ldr w0, [x0,x22] cmn w0, #1 - bne .L2736 -.L2735: + bne .L2802 +.L2801: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,3584] + ldr x0, [x0,3592] add x22, x0, x22 ldr w0, [x22,4] str w0, [x29,152] -.L2736: +.L2802: add x19, x19, :lo12:.LANCHOR2 ldrh w1, [x20] - ldr x0, [x19,512] + ldr x0, [x19,520] strh wzr, [x0,x1,lsl 1] ldrh w0, [x20] bl INSERT_FREE_LIST mov w0, -1 strh w0, [x20] -.L2760: +.L2826: bl FtlGcPageVarInit mov w27, 0 - b .L2713 -.L2763: + b .L2779 +.L2829: ldr w0, [x29,148] add w23, w23, 1 add w3, w27, 1 cmp w23, w0 uxth w27, w3 - bcs .L2738 -.L2740: + bcs .L2804 +.L2806: add x0, x28, :lo12:.LANCHOR0 - ldrh w0, [x0,2536] + ldrh w0, [x0,2544] cmp w0, w27 - bhi .L2739 - b .L2743 -.L2738: + bhi .L2805 + b .L2809 +.L2804: ldr x0, [x29,136] ldr w2, [x29,156] add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3360] + ldrh w0, [x1,3456] cmp w0, w2 - beq .L2740 + beq .L2806 add w0, w0, w23 - strh w0, [x1,3360] + strh w0, [x1,3456] add x0, x28, :lo12:.LANCHOR0 - ldrh w0, [x0,2536] + ldrh w0, [x0,2544] cmp w0, w27 - bls .L2740 - b .L2741 -.L2743: + bls .L2806 + b .L2807 +.L2809: mov w5, 0 -.L2714: +.L2780: ldr x0, [x29,136] mov w1, -1 strh w27, [x20,2] mov w2, w5 add x0, x0, :lo12:.LANCHOR1 strb w5, [x20,6] - strh w1, [x0,3360] + strh w1, [x0,3456] mov x0, x20 mov w1, w27 bl ftl_sb_update_avl_pages -.L2741: +.L2807: ldr w0, [x29,152] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17871,26 +18249,26 @@ FtlReadRefresh: adrp x2, .LANCHOR2 add x1, x2, :lo12:.LANCHOR2 add x29, sp, 0 - add x3, x1, 848 + add x3, x1, 856 stp x19, x20, [sp,16] stp x21, x22, [sp,32] adrp x20, .LANCHOR0 ldr w0, [x3,80] - cbz w0, .L2765 + cbz w0, .L2831 add x0, x20, :lo12:.LANCHOR0 ldr w2, [x3,84] - ldr w0, [x0,2608] + ldr w0, [x0,2616] cmp w2, w0 - bcs .L2766 + bcs .L2832 mov w21, 2048 mov x19, x1 -.L2771: - add x22, x19, 848 +.L2837: + add x22, x19, 856 add x1, x20, :lo12:.LANCHOR0 ldr w0, [x22,84] - ldr w1, [x1,2608] + ldr w1, [x1,2616] cmp w0, w1 - bcs .L2770 + bcs .L2836 add x1, x29, 52 mov w2, 0 bl log2phys @@ -17899,7 +18277,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x22,84] cmn w1, #1 - beq .L2769 + beq .L2835 str w1, [x29,60] mov w2, 0 str w0, [x29,80] @@ -17911,29 +18289,29 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29,56] cmp w0, 256 - bne .L2770 + bne .L2836 ldr w0, [x29,52] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2770: +.L2836: mov w0, -1 - b .L2773 -.L2769: + b .L2839 +.L2835: subs w21, w21, #1 - bne .L2771 - b .L2770 -.L2766: - ldr w0, [x1,712] + bne .L2837 + b .L2836 +.L2832: + ldr w0, [x1,720] str wzr, [x3,80] str wzr, [x3,84] str w0, [x3,76] - b .L2780 -.L2765: - ldr w4, [x1,764] + b .L2846 +.L2831: + ldr w4, [x1,772] mov w6, 10000 mov w8, 63 - ldr w7, [x1,712] + ldr w7, [x1,720] cmp w4, w6 mov w6, 31 csel w8, w6, w8, hi @@ -17941,8 +18319,8 @@ FtlReadRefresh: add x20, x20, :lo12:.LANCHOR0 add w9, w7, 1048576 cmp w6, w9 - ldr w5, [x20,2608] - bhi .L2775 + ldr w5, [x20,2616] + bhi .L2841 mov w9, 1000 lsr w4, w4, 10 add w4, w4, 1 @@ -17950,25 +18328,25 @@ FtlReadRefresh: udiv w4, w5, w4 add w4, w4, w6 cmp w4, w7 - bcc .L2775 - ldrh w1, [x1,476] + bcc .L2841 + ldrh w1, [x1,484] tst w8, w1 - bne .L2773 + bne .L2839 ldr w3, [x3,100] cmp w3, w1 - beq .L2773 -.L2775: + beq .L2839 +.L2841: add x0, x2, :lo12:.LANCHOR2 - add x1, x0, 848 - ldrh w0, [x0,476] + add x1, x0, 856 + ldrh w0, [x0,484] str w0, [x1,100] mov w0, 1 str wzr, [x1,84] str w0, [x1,80] str w7, [x1,76] -.L2780: +.L2846: mov w0, 0 -.L2773: +.L2839: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 @@ -17988,117 +18366,117 @@ FtlGcFreeTempBlock: stp x25, x26, [sp,64] adrp x21, .LANCHOR0 add x1, x21, :lo12:.LANCHOR0 - ldr w3, [x2,416] - ldrh w1, [x1,2536] - cbnz w3, .L2817 - ldrh w20, [x2,648] + ldr w3, [x2,424] + ldrh w1, [x1,2544] + cbnz w3, .L2883 + ldrh w20, [x2,656] mov w4, 65535 cmp w20, w4 - bne .L2784 -.L2793: + bne .L2850 +.L2859: add x20, x19, :lo12:.LANCHOR2 mov w0, 65535 - add x22, x20, 648 - ldrh w1, [x20,648] - str wzr, [x20,3880] + add x22, x20, 656 + ldrh w1, [x20,656] + str wzr, [x20,3888] cmp w1, w0 - beq .L2817 + beq .L2883 bl FtlCacheWriteBack mov w26, 12 add x3, x21, :lo12:.LANCHOR0 ldrb w0, [x22,7] - ldr x1, [x20,512] + ldr x1, [x20,520] mov w22, 0 - ldrh w2, [x20,648] - ldrh w3, [x3,2536] + ldrh w2, [x20,656] + ldrh w3, [x3,2544] mul w0, w0, w3 strh w0, [x1,x2,lsl 1] - ldr w0, [x20,732] - ldrh w1, [x20,1432] + ldr w0, [x20,740] + ldrh w1, [x20,1440] add w0, w1, w0 - str w0, [x20,732] - b .L2794 -.L2784: - cbz w0, .L2787 + str w0, [x20,740] + b .L2860 +.L2850: + cbz w0, .L2853 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3360] + ldrh w5, [x0,3456] cmp w5, w4 - beq .L2788 -.L2789: + beq .L2854 +.L2855: mov w1, 2 - b .L2787 -.L2788: - strh w3, [x0,3360] - ldrh w0, [x2,544] + b .L2853 +.L2854: + strh w3, [x0,3456] + ldrh w0, [x2,552] cmp w0, 17 - bhi .L2789 -.L2787: + bhi .L2855 +.L2853: add x22, x19, :lo12:.LANCHOR2 - add x0, x22, 648 + add x0, x22, 656 bl FtlGcScanTempBlk str w0, [x29,92] cmn w0, #1 - beq .L2790 + beq .L2856 ubfiz x20, x20, 1, 16 - ldr x1, [x22,432] + ldr x1, [x22,440] ldrh w0, [x1,x20] cmp w0, 4 - bls .L2791 + bls .L2857 sub w0, w0, #5 strh w0, [x1,x20] mov w0, 1 bl FtlEctTblFlush -.L2791: +.L2857: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,3880] - cbnz w1, .L2792 - ldr w1, [x0,944] + ldr w1, [x0,3888] + cbnz w1, .L2858 + ldr w1, [x0,952] add w1, w1, 1 - str w1, [x0,944] + str w1, [x0,952] ldr w0, [x29,92] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2792: +.L2858: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 - str wzr, [x19,3880] - b .L2783 -.L2790: - adrp x0, .LANCHOR1+3360 + str wzr, [x19,3888] + b .L2849 +.L2856: + adrp x0, .LANCHOR1+3456 mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3360] + ldrh w2, [x0,#:lo12:.LANCHOR1+3456] mov w0, 1 cmp w2, w1 - bne .L2783 - b .L2793 -.L2797: + bne .L2849 + b .L2859 +.L2863: ldr w1, [x23,4] cmp w0, w1 - bne .L2815 -.L2796: + bne .L2881 +.L2862: add w22, w22, 1 uxth w22, w22 -.L2794: - ldrh w0, [x20,1432] +.L2860: + ldrh w0, [x20,1440] cmp w0, w22 - bls .L2818 + bls .L2884 umull x24, w22, w26 - ldr x25, [x20,1440] + ldr x25, [x20,1448] add x1, x21, :lo12:.LANCHOR0 add x23, x25, x24 - ldr w1, [x1,2608] + ldr w1, [x1,2616] ldr w0, [x23,8] cmp w0, w1 - bcs .L2815 + bcs .L2881 add x1, x29, 92 mov w2, 0 bl log2phys ldr w0, [x29,92] ldr w1, [x25,x24] cmp w0, w1 - bne .L2797 + bne .L2863 lsr x0, x0, 10 bl P2V_block_in_plane mov w24, w0 @@ -18107,74 +18485,74 @@ FtlGcFreeTempBlock: mov w2, 1 bl log2phys mov w0, w24 - b .L2816 -.L2815: - ldrh w0, [x20,648] -.L2816: + b .L2882 +.L2881: + ldrh w0, [x20,656] +.L2882: bl decrement_vpc_count - b .L2796 -.L2818: + b .L2862 +.L2884: mov w0, -1 bl decrement_vpc_count add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbz w0, .L2799 - adrp x0, .LC150 - ldrh w1, [x20,648] - add x0, x0, :lo12:.LC150 + ldrb w0, [x0,204] + cbz w0, .L2865 + adrp x0, .LC154 + ldrh w1, [x20,656] + add x0, x0, :lo12:.LC154 bl printk -.L2799: +.L2865: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,648] - ldr x1, [x1,512] + ldrh w0, [x1,656] + ldr x1, [x1,520] ubfiz x2, x0, 1, 16 ldrh w1, [x1,x2] - cbz w1, .L2800 + cbz w1, .L2866 bl INSERT_DATA_LIST - b .L2801 -.L2800: + b .L2867 +.L2866: bl INSERT_FREE_LIST -.L2801: +.L2867: add x20, x19, :lo12:.LANCHOR2 mov w22, -1 - strh wzr, [x20,1432] - strh w22, [x20,648] - strh wzr, [x20,1420] + strh wzr, [x20,1440] + strh w22, [x20,656] + strh wzr, [x20,1428] bl l2p_flush bl FtlVpcTblFlush - strh w22, [x20,792] + strh w22, [x20,800] add x0, x21, :lo12:.LANCHOR0 - ldr w0, [x0,2460] - cbz w0, .L2802 - ldr w0, [x20,768] + ldr w0, [x0,2372] + cbz w0, .L2868 + ldr w0, [x20,776] cmp w0, 39 - bhi .L2802 - ldrh w0, [x20,772] - ldrh w1, [x20,544] + bhi .L2868 + ldrh w0, [x20,780] + ldrh w1, [x20,552] cmp w1, w0 - bcs .L2817 + bcs .L2883 lsl w0, w0, 1 - strh w0, [x20,1360] -.L2817: + strh w0, [x20,1368] +.L2883: mov w0, 0 - b .L2783 -.L2802: + b .L2849 +.L2868: add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,772] - ldrh w0, [x19,544] + ldrh w1, [x19,780] + ldrh w0, [x19,552] add w2, w1, w1, lsl 1 cmp w0, w2, lsr 2 - ble .L2817 + ble .L2883 add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,196] - cbz w0, .L2803 + ldrb w0, [x21,204] + cbz w0, .L2869 sub w1, w1, #2 - strh w1, [x19,1360] - b .L2817 -.L2803: + strh w1, [x19,1368] + b .L2883 +.L2869: mov w1, 20 - strh w1, [x19,1360] -.L2783: + strh w1, [x19,1368] +.L2849: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18194,20 +18572,20 @@ FtlGcPageRecovery: add x20, x20, :lo12:.LANCHOR0 add x19, x19, :lo12:.LANCHOR2 str x21, [sp,32] - add x21, x19, 648 + add x21, x19, 656 mov x0, x21 - ldrh w1, [x20,2536] + ldrh w1, [x20,2544] bl FtlGcScanTempBlk - ldrh w1, [x19,650] - ldrh w0, [x20,2536] + ldrh w1, [x19,658] + ldrh w0, [x20,2544] cmp w1, w0 - bcc .L2819 - add x0, x19, 3792 + bcc .L2885 + add x0, x19, 3800 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock - str wzr, [x19,3880] -.L2819: + str wzr, [x19,3888] +.L2885: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -18218,14 +18596,14 @@ FtlGcPageRecovery: .type FtlPowerLostRecovery, %function FtlPowerLostRecovery: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR5+1324 + adrp x0, .LANCHOR5+1332 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR5+1324] + str wzr, [x0,#:lo12:.LANCHOR5+1332] add x19, x19, :lo12:.LANCHOR2 - add x20, x19, 552 - add x19, x19, 600 + add x20, x19, 560 + add x19, x19, 608 mov x0, x20 bl FtlRecoverySuperblock mov x0, x20 @@ -18258,22 +18636,22 @@ FtlSysBlkInit: add x24, x20, :lo12:.LANCHOR0 adrp x19, .LANCHOR2 add x23, x19, :lo12:.LANCHOR2 - strh w1, [x0,1320] - strh wzr, [x0,1322] - ldrh w0, [x24,2472] + strh w1, [x0,1328] + strh wzr, [x0,1330] + ldrh w0, [x24,2476] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh w1, [x23,776] + ldrh w1, [x23,784] mov w0, 65535 cmp w1, w0 - bne .L2823 -.L2825: + bne .L2889 +.L2891: mov w22, -1 - b .L2824 -.L2823: + b .L2890 +.L2889: bl FtlLoadSysInfo mov w22, w0 - cbnz w0, .L2825 + cbnz w0, .L2891 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18283,89 +18661,89 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x24,2574] + ldrh w2, [x24,2582] mov x1, 0 - ldr x0, [x23,696] -.L2826: + ldr x0, [x23,704] +.L2892: cmp w1, w2 mov w3, w1 - bge .L2830 + bge .L2896 add x4, x0, x1, lsl 4 add x1, x1, 1 ldr w4, [x4,4] - tbz w4, #31, .L2826 -.L2830: + tbz w4, #31, .L2892 +.L2896: add x0, x19, :lo12:.LANCHOR2 cmp w3, w2 - ldrh w1, [x0,476] + ldrh w1, [x0,484] add w1, w1, 1 - strh w1, [x0,476] - blt .L2827 + strh w1, [x0,484] + blt .L2893 add x21, x21, :lo12:.LANCHOR5 - ldrh w0, [x21,1322] - cbz w0, .L2831 -.L2827: + ldrh w0, [x21,1330] + cbz w0, .L2897 +.L2893: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,552] - ldr x4, [x1,512] + ldrh w2, [x1,560] + ldr x4, [x1,520] lsl x2, x2, 1 - ldrh w5, [x1,556] + ldrh w5, [x1,564] ldrh w3, [x4,x2] sub w3, w3, w5 strh w3, [x4,x2] add x4, x20, :lo12:.LANCHOR0 - strb wzr, [x1,558] - ldr x5, [x1,512] - strh wzr, [x1,556] - ldrh w2, [x4,2536] - strh w2, [x1,554] - ldrh w2, [x1,600] - ldrh w6, [x1,604] + strb wzr, [x1,566] + ldr x5, [x1,520] + strh wzr, [x1,564] + ldrh w2, [x4,2544] + strh w2, [x1,562] + ldrh w2, [x1,608] + ldrh w6, [x1,612] lsl x2, x2, 1 ldrh w3, [x5,x2] sub w3, w3, w6 strh w3, [x5,x2] - strb wzr, [x1,606] - ldrh w0, [x1,478] - ldrh w2, [x4,2536] + strb wzr, [x1,614] + ldrh w0, [x1,486] + ldrh w2, [x4,2544] add w0, w0, 1 - strh w2, [x1,602] - strh wzr, [x1,604] - strh w0, [x1,478] + strh w2, [x1,610] + strh wzr, [x1,612] + strh w0, [x1,486] bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L2831: +.L2897: add x21, x19, :lo12:.LANCHOR2 mov w1, 65535 - add x24, x21, 552 - ldrh w0, [x21,552] + add x24, x21, 560 + ldrh w0, [x21,560] cmp w0, w1 - beq .L2832 - ldrh w1, [x21,556] - cbnz w1, .L2832 - ldrh w1, [x21,604] - add x23, x21, 600 - cbnz w1, .L2832 + beq .L2898 + ldrh w1, [x21,564] + cbnz w1, .L2898 + ldrh w1, [x21,612] + add x23, x21, 608 + cbnz w1, .L2898 bl FtlGcRefreshOpenBlock - ldrh w0, [x21,600] + ldrh w0, [x21,608] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush mov x0, x24 bl allocate_new_data_superblock mov x0, x23 bl allocate_new_data_superblock -.L2832: +.L2898: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,72] - cbnz w0, .L2833 + cbnz w0, .L2899 add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,476] + ldrh w0, [x19,484] and w0, w0, 31 - cbnz w0, .L2824 -.L2833: + cbnz w0, .L2890 +.L2899: bl FtlVpcCheckAndModify -.L2824: +.L2890: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18384,273 +18762,286 @@ FtlLowFormat: add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w22, [x20,416] - cbnz w22, .L2841 - adrp x21, .LANCHOR0 + ldr w21, [x20,424] + cbnz w21, .L2907 + adrp x22, .LANCHOR0 + ldr x0, [x20,3768] + add x23, x22, :lo12:.LANCHOR0 + mov w1, w21 + ldrh w2, [x23,2580] + lsl w2, w2, 2 + bl ftl_memset + ldrh w2, [x23,2580] + mov w1, w21 ldr x0, [x20,3760] - add x23, x21, :lo12:.LANCHOR0 - mov w1, w22 - ldrh w2, [x23,2572] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x23,2572] - mov w1, w22 - ldr x0, [x20,3752] - lsl w2, w2, 2 - bl ftl_memset - str w22, [x20,744] - ldrh w0, [x23,2472] - str w22, [x20,748] + str w21, [x20,752] + ldrh w0, [x23,2476] + str w21, [x20,756] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2842 + cbz w0, .L2908 bl FtlMakeBbt -.L2842: +.L2908: mov w0, 0 -.L2843: - add x1, x21, :lo12:.LANCHOR0 - ldrh w2, [x1,2542] +.L2909: + add x1, x22, :lo12:.LANCHOR0 + ldrh w2, [x1,2550] cmp w0, w2, lsl 7 - bge .L2870 + bge .L2936 add x3, x19, :lo12:.LANCHOR2 ubfiz x2, x0, 2, 16 mvn w1, w0 - ldr x4, [x3,3640] + ldr x4, [x3,3648] orr w1, w0, w1, lsl 16 add w0, w0, 1 str w1, [x4,x2] mov w1, 23752 movk w1, 0xa0f, lsl 16 uxth w0, w0 - ldr x3, [x3,3648] + ldr x3, [x3,3656] str w1, [x3,x2] - b .L2843 -.L2870: - ldrh w22, [x1,2476] + b .L2909 +.L2936: + ldrh w21, [x1,2480] mov w20, 0 -.L2845: - add x23, x21, :lo12:.LANCHOR0 - ldrh w0, [x23,2478] - cmp w0, w22 - bls .L2871 - mov w0, w22 +.L2911: + add x23, x22, :lo12:.LANCHOR0 + ldrh w0, [x23,2482] + cmp w0, w21 + bls .L2937 + mov w0, w21 mov w1, 1 - add w22, w22, 1 + add w21, w21, 1 bl FtlLowFormatEraseBlock add w0, w20, w0 - uxth w22, w22 + uxth w21, w21 uxth w20, w0 - b .L2845 -.L2871: - ldrh w0, [x23,2468] + b .L2911 +.L2937: + ldrh w0, [x23,2472] sub w1, w20, #3 cmp w1, w0, lsl 1 - bge .L2847 -.L2851: + blt .L2913 + udiv w0, w20, w0 + ldr w20, [x23,2576] + add w0, w0, w20 mov w20, 0 - mov w22, w20 - b .L2848 -.L2847: - udiv w20, w20, w0 - ldr w0, [x23,2568] - add w0, w20, w0 bl FtlSysBlkNumInit - ldrh w0, [x23,2472] + ldrh w0, [x23,2476] bl FtlFreeSysBlkQueueInit - ldrh w20, [x23,2476] -.L2849: - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2478] - cmp w0, w20 - bls .L2851 - mov w0, w20 + ldrh w21, [x23,2480] +.L2914: + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,2482] + cmp w0, w21 + bls .L2913 + mov w0, w21 mov w1, 1 - add w20, w20, 1 - bl FtlLowFormatEraseBlock - uxth w20, w20 - b .L2849 -.L2848: - add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,2476] - cmp w1, w22 - bls .L2872 - mov w0, w22 - mov w1, 0 - add w22, w22, 1 + add w21, w21, 1 bl FtlLowFormatEraseBlock add w0, w20, w0 - uxth w22, w22 + uxth w21, w21 uxth w20, w0 - b .L2848 -.L2872: + b .L2914 +.L2913: + mov w23, 0 + mov w21, w23 +.L2916: + add x0, x22, :lo12:.LANCHOR0 + ldrh w1, [x0,2480] + cmp w1, w21 + bls .L2938 + mov w0, w21 + mov w1, 0 + add w21, w21, 1 + bl FtlLowFormatEraseBlock + add w0, w23, w0 + uxth w21, w21 + uxth w23, w0 + b .L2916 +.L2938: add x4, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,2478] - ldrh w2, [x0,2468] - str w1, [x4,3572] - ldr w1, [x0,2480] + ldrh w1, [x0,2482] + ldrh w2, [x0,2472] + str w1, [x4,3580] + ldr w1, [x0,2484] udiv w3, w1, w2 - str w3, [x0,2608] + str w3, [x0,2616] ubfx x6, x3, 5, 16 add w5, w6, 36 - strh w5, [x4,772] + strh w5, [x4,780] mov w5, 24 mul w5, w2, w5 - cmp w20, w5 - ble .L2853 - sub w1, w1, w20 + cmp w23, w5 + ble .L2918 + sub w1, w1, w23 udiv w1, w1, w2 - str w1, [x0,2608] + str w1, [x0,2616] lsr w1, w1, 5 add w1, w1, 24 - strh w1, [x4,772] -.L2853: - add x0, x21, :lo12:.LANCHOR0 - ldr w0, [x0,2460] + strh w1, [x4,780] +.L2918: + add x0, x22, :lo12:.LANCHOR0 + ldr w0, [x0,2372] cmp w0, 1 - bne .L2854 + bne .L2919 add x1, x19, :lo12:.LANCHOR2 - udiv w0, w20, w2 - ldrh w4, [x1,772] + udiv w0, w23, w2 + ldrh w4, [x1,780] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,772] -.L2854: - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbz w0, .L2855 + strh w0, [x1,780] +.L2919: + add x0, x22, :lo12:.LANCHOR0 + ldrb w0, [x0,204] + cbz w0, .L2920 add x1, x19, :lo12:.LANCHOR2 - udiv w0, w20, w2 - ldrh w4, [x1,772] + udiv w0, w23, w2 + ldrh w4, [x1,780] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,772] -.L2855: - add x5, x21, :lo12:.LANCHOR0 - ldrh w1, [x5,2530] - cbz w1, .L2857 + strh w0, [x1,780] +.L2920: + add x5, x22, :lo12:.LANCHOR0 + ldrh w1, [x5,2538] + cbz w1, .L2922 add x0, x19, :lo12:.LANCHOR2 - ldrh w4, [x0,772] + ldrh w4, [x0,780] add w4, w4, w1, lsr 1 - strh w4, [x0,772] + strh w4, [x0,780] mul w4, w1, w2 - cmp w4, w20 - ble .L2857 + cmp w4, w23 + ble .L2922 add w1, w1, 32 - str w3, [x5,2608] + str w3, [x5,2616] add w1, w6, w1 - strh w1, [x0,772] -.L2857: - add x19, x19, :lo12:.LANCHOR2 - add x22, x21, :lo12:.LANCHOR0 - adrp x24, .LANCHOR4 - add x20, x19, 552 - mov w23, -1 - ldr w1, [x22,2608] - ldrh w0, [x19,772] + strh w1, [x0,780] +.L2922: + add x24, x22, :lo12:.LANCHOR0 + add x0, x19, :lo12:.LANCHOR2 + adrp x21, .LANCHOR4 + ldr w1, [x24,2616] + ldrh w0, [x0,780] sub w0, w1, w0 - add x1, x24, :lo12:.LANCHOR4 + add x1, x21, :lo12:.LANCHOR4 mul w0, w0, w2 - str w0, [x1,1752] - ldrh w1, [x22,2536] + str w0, [x1,1760] + ldrh w1, [x24,2544] mul w0, w0, w1 - ldrh w1, [x22,2542] - str w0, [x22,2608] + ldrh w1, [x24,2550] + str w0, [x24,2616] mul w0, w0, w1 - str w0, [x22,2576] + str w0, [x24,2584] bl FtlBbmTblFlush - ldrh w2, [x22,2478] + ldr w2, [x24,2488] + add w1, w23, w20 + ldrh w0, [x24,2558] + add w0, w0, w2, lsr 3 + cmp w1, w0 + bls .L2924 + adrp x0, .LC155 + lsr w2, w2, 5 + add x0, x0, :lo12:.LC155 + bl printk +.L2924: + add x24, x22, :lo12:.LANCHOR0 + add x19, x19, :lo12:.LANCHOR2 mov w1, 0 - ldr x0, [x19,512] + add x20, x19, 560 + mov w23, -1 + ldrh w2, [x24,2482] + ldr x0, [x19,520] lsl w2, w2, 1 bl ftl_memset - str wzr, [x19,708] + str wzr, [x19,716] mov w0, 1 - ldrh w2, [x22,2476] + ldrh w2, [x24,2480] strb w0, [x20,8] mov w1, 255 - ldr x0, [x21,#:lo12:.LANCHOR0] + ldr x0, [x22,#:lo12:.LANCHOR0] lsr w2, w2, 3 - mov x21, x24 - strh w23, [x19,792] - strh wzr, [x19,794] - strb wzr, [x19,798] - strb wzr, [x19,800] + strh w23, [x19,800] + strh wzr, [x19,802] + strb wzr, [x19,806] + strb wzr, [x19,808] strh wzr, [x20,2] strb wzr, [x20,6] - strh wzr, [x19,552] + strh wzr, [x19,560] bl ftl_memset -.L2859: +.L2925: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2860 + cbnz w0, .L2926 ldrh w1, [x20] - ldr x0, [x19,512] + ldr x0, [x19,520] strh w23, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2859 -.L2860: - ldr w0, [x19,744] + b .L2925 +.L2926: + ldr w0, [x19,752] mov w22, -1 str w0, [x20,12] add w0, w0, 1 ldrh w1, [x20] - str w0, [x19,744] - ldr x0, [x19,512] + str w0, [x19,752] + ldr x0, [x19,520] ldrh w2, [x20,4] strh w2, [x0,x1,lsl 1] - add x0, x19, 600 - strh wzr, [x19,602] + add x0, x19, 608 + strh wzr, [x19,610] ldrh w1, [x20] mov x20, x0 - strb wzr, [x19,606] + strb wzr, [x19,614] add w1, w1, 1 - strh w1, [x19,600] + strh w1, [x19,608] mov w1, 1 - strb w1, [x19,608] -.L2861: + strb w1, [x19,616] +.L2927: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2862 + cbnz w0, .L2928 ldrh w1, [x20] - ldr x0, [x19,512] + ldr x0, [x19,520] strh w22, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2861 -.L2862: - ldr w0, [x19,744] + b .L2927 +.L2928: + ldr w0, [x19,752] add x21, x21, :lo12:.LANCHOR4 str w0, [x20,12] add w0, w0, 1 ldrh w1, [x20] - str w0, [x19,744] - ldr x0, [x19,512] + str w0, [x19,752] + ldr x0, [x19,520] ldrh w2, [x20,4] mov w20, -1 strh w2, [x0,x1,lsl 1] - strh w20, [x19,648] + strh w20, [x19,656] bl FtlFreeSysBlkQueueOut - strh w0, [x19,776] - ldr w0, [x21,1752] - strh w0, [x19,782] - ldr w0, [x19,744] - str w0, [x19,784] + strh w0, [x19,784] + ldr w0, [x21,1760] + strh w0, [x19,790] + ldr w0, [x19,752] + str w0, [x19,792] add w0, w0, 1 - strh wzr, [x19,778] - strh w20, [x19,780] - str w0, [x19,744] + strh wzr, [x19,786] + strh w20, [x19,788] + str w0, [x19,752] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L2841 + cbnz w0, .L2907 adrp x0, .LANCHOR1+504 mov w1, 1 str w1, [x0,#:lo12:.LANCHOR1+504] -.L2841: +.L2907: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18667,25 +19058,25 @@ FtlReInitForSDUpdata: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbz w0, .L2874 -.L2876: + ldrb w0, [x0,204] + cbz w0, .L2940 +.L2942: mov w0, 0 - b .L2875 -.L2874: + b .L2941 +.L2940: adrp x20, .LANCHOR4 add x0, x20, :lo12:.LANCHOR4 - ldr x0, [x0,1584] + ldr x0, [x0,1592] bl FlashInit - cbnz w0, .L2876 + cbnz w0, .L2942 bl FlashLoadFactorBbt - cbz w0, .L2877 + cbz w0, .L2943 bl FlashMakeFactorBbt -.L2877: +.L2943: add x20, x20, :lo12:.LANCHOR4 - ldr x0, [x20,1640] + ldr x0, [x20,1648] bl FlashReadIdbDataRaw - cbz w0, .L2878 + cbz w0, .L2944 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -18694,70 +19085,70 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L2880: +.L2946: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L2880 + bne .L2946 cmp w0, 6 - bhi .L2881 + bhi .L2947 add x0, x19, :lo12:.LANCHOR0 - b .L2903 -.L2881: + b .L2969 +.L2947: mov w1, 0 mov w4, 1 -.L2884: +.L2950: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L2884 + bne .L2950 cmp w0, 17 add x0, x19, :lo12:.LANCHOR0 - bls .L2903 + bls .L2969 mov w1, 36 -.L2903: +.L2969: strb w1, [x0,73] add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,73] - strh w1, [x0,194] -.L2878: + strh w1, [x0,202] +.L2944: adrp x0, .LC75 adrp x1, .LC76 add x1, x1, :lo12:.LC76 add x0, x0, :lo12:.LC75 add x19, x19, :lo12:.LANCHOR0 bl printk - add x0, x19, 168 + add x0, x19, 176 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x19,2472] + ldrh w0, [x19,2476] mov w19, 1 bl FtlFreeSysBlkQueueInit -.L2886: +.L2952: bl FtlLoadBbt - cbz w0, .L2887 -.L2905: + cbz w0, .L2953 +.L2971: bl FtlLowFormat cmp w19, 3 - bhi .L2906 + bhi .L2972 add w19, w19, 1 - b .L2886 -.L2906: + b .L2952 +.L2972: mov w0, -1 - b .L2875 -.L2887: + b .L2941 +.L2953: bl FtlSysBlkInit - cbnz w0, .L2905 + cbnz w0, .L2971 adrp x1, .LANCHOR1+504 mov w2, 1 str w2, [x1,#:lo12:.LANCHOR1+504] -.L2875: +.L2941: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -18772,74 +19163,74 @@ Ftl_gc_temp_data_write_back: adrp x21, .LANCHOR2 add x0, x21, :lo12:.LANCHOR2 stp x19, x20, [sp,16] - ldr w1, [x0,416] - cbz w1, .L2908 -.L2911: + ldr w1, [x0,424] + cbz w1, .L2974 +.L2977: mov w0, 0 - b .L2909 -.L2908: - adrp x1, .LANCHOR0+196 - ldrb w1, [x1,#:lo12:.LANCHOR0+196] - cbz w1, .L2910 - ldr w1, [x0,1376] - tbz x1, 0, .L2910 - ldrh w0, [x0,652] - cbnz w0, .L2911 -.L2910: + b .L2975 +.L2974: + adrp x1, .LANCHOR0+204 + ldrb w1, [x1,#:lo12:.LANCHOR0+204] + cbz w1, .L2976 + ldr w1, [x0,1384] + tbz x1, 0, .L2976 + ldrh w0, [x0,660] + cbnz w0, .L2977 +.L2976: add x1, x21, :lo12:.LANCHOR2 mov w2, 0 mov w3, w2 mov w20, 0 mov w22, 56 - ldr x0, [x1,3592] - ldr w1, [x1,1376] + ldr x0, [x1,3600] + ldr w1, [x1,1384] bl FlashProgPages -.L2912: +.L2978: add x19, x21, :lo12:.LANCHOR2 - ldr w1, [x19,1376] + ldr w1, [x19,1384] cmp w20, w1 - bcs .L2922 + bcs .L2988 umull x0, w20, w22 - ldr x3, [x19,3592] + ldr x3, [x19,3600] add x1, x3, x0 ldr w3, [x3,x0] cmn w3, #1 ldr x2, [x1,16] - bne .L2913 - ldrh w2, [x19,648] - ldr x1, [x19,512] + bne .L2979 + ldrh w2, [x19,656] + ldr x1, [x19,520] strh wzr, [x1,x2,lsl 1] - strh w3, [x19,648] - ldr w1, [x19,944] + strh w3, [x19,656] + ldr w1, [x19,952] add w1, w1, 1 - str w1, [x19,944] - ldr x1, [x19,3592] + str w1, [x19,952] + ldr x1, [x19,3600] add x0, x1, x0 ldr w0, [x0,4] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L2921 -.L2913: + b .L2987 +.L2979: ldr w0, [x2,12] add w20, w20, 1 ldr w1, [x1,4] ldr w2, [x2,8] uxth w20, w20 bl FtlGcUpdatePage - b .L2912 -.L2922: - ldr x0, [x19,3592] + b .L2978 +.L2988: + ldr x0, [x19,3600] bl FtlGcBufFree - str wzr, [x19,1376] - ldrh w0, [x19,652] - cbnz w0, .L2911 + str wzr, [x19,1384] + ldrh w0, [x19,660] + cbnz w0, .L2977 mov w0, 1 bl FtlGcFreeTempBlock -.L2921: +.L2987: mov w0, 1 -.L2909: +.L2975: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -18854,30 +19245,30 @@ Ftl_get_new_temp_ppa: stp x19, x20, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 648 - ldrh w2, [x0,648] + add x1, x0, 656 + ldrh w2, [x0,656] mov w0, 65535 cmp w2, w0 - beq .L2924 + beq .L2990 ldrh w0, [x1,4] - cbnz w0, .L2925 -.L2924: + cbnz w0, .L2991 +.L2990: bl FtlCacheWriteBack add x20, x19, :lo12:.LANCHOR2 mov w0, 0 bl FtlGcFreeTempBlock - strb wzr, [x20,656] - add x0, x20, 648 + strb wzr, [x20,664] + add x0, x20, 656 bl allocate_data_superblock - strh wzr, [x20,1420] - strh wzr, [x20,1432] + strh wzr, [x20,1428] + strh wzr, [x20,1440] bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2925: +.L2991: add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 648 + add x0, x0, 656 bl get_new_active_ppa ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -18897,621 +19288,621 @@ ftl_do_gc: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w4, [x3,416] - cbnz w4, .L3079 + ldr w4, [x3,424] + cbnz w4, .L3145 adrp x4, .LANCHOR1 add x4, x4, :lo12:.LANCHOR1 - ldr w5, [x4,504] - cmn w5, #1 - beq .L3079 - ldr w5, [x3,3560] - cbnz w5, .L3079 - ldrh w5, [x3,528] + ldr w20, [x4,504] + cmp w20, 1 + bne .L3145 + ldr w5, [x3,3568] + cbnz w5, .L3145 + ldrh w5, [x3,536] cmp w5, 47 - bls .L3079 + bls .L3145 mov w22, w1 - ldrh w1, [x4,3360] + ldrh w1, [x4,3456] str w0, [x29,124] mov w0, 65535 cmp w1, w0 - bne .L2928 -.L2931: + bne .L2994 +.L2997: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w4, [x0,1450] + ldrh w4, [x0,1458] cmp w4, w2 - bne .L2929 - b .L2930 -.L2928: - ldrh w1, [x3,648] + bne .L2995 + b .L2996 +.L2994: + ldrh w1, [x3,656] cmp w1, w0 - beq .L2931 - mov w0, 1 + beq .L2997 + mov w0, w20 bl FtlGcFreeTempBlock - mov w2, 1 - cbz w0, .L2931 - b .L3079 -.L2929: - ldrh w1, [x0,1448] + mov w2, w20 + cbz w0, .L2997 + b .L3145 +.L2995: + ldrh w1, [x0,1456] cmp w1, w2 - bne .L2930 - ldrh w3, [x0,1452] + bne .L2996 + ldrh w3, [x0,1460] cmp w3, w1 - beq .L2930 - ldrh w2, [x0,1454] + beq .L2996 + ldrh w2, [x0,1462] cmp w2, w1 - beq .L2930 + beq .L2996 mov w1, -1 - strh w4, [x0,1448] - strh w3, [x0,1450] - strh w2, [x0,1452] - strh w1, [x0,1454] -.L2930: + strh w4, [x0,1456] + strh w3, [x0,1458] + strh w2, [x0,1460] + strh w1, [x0,1462] +.L2996: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x29,124] cmp w2, 1 - ldr w0, [x1,1364] + ldr w0, [x1,1372] add w0, w0, 1 add w0, w0, w2, lsl 7 - str w0, [x1,1364] - bne .L2942 + str w0, [x1,1372] + bne .L3008 adrp x2, .LANCHOR0 add x1, x2, :lo12:.LANCHOR0 mov x26, x2 - ldr w3, [x1,2460] - cbnz w3, .L2933 - ldrb w1, [x1,196] - cbz w1, .L2942 -.L2933: + ldr w3, [x1,2372] + cbnz w3, .L2999 + ldrb w1, [x1,204] + cbz w1, .L3008 +.L2999: add x20, x19, :lo12:.LANCHOR2 - ldr w1, [x20,768] + ldr w1, [x20,776] cmp w1, 39 - bhi .L2942 + bhi .L3008 adrp x21, .LANCHOR5 add x1, x21, :lo12:.LANCHOR5 - ldrh w1, [x1,1456] + ldrh w1, [x1,1464] add w0, w0, w1 - str w0, [x20,1364] + str w0, [x20,1372] bl FtlGcReFreshBadBlk - ldrh w0, [x20,792] + ldrh w0, [x20,800] mov w1, 65535 cmp w0, w1 - bne .L2942 - ldrh w1, [x20,1448] + bne .L3008 + ldrh w1, [x20,1456] cmp w1, w0 - bne .L2942 - ldr w0, [x20,1364] + bne .L3008 + ldr w0, [x20,1372] cmp w0, 1024 - bhi .L2934 - ldrh w0, [x20,544] + bhi .L3000 + ldrh w0, [x20,552] cmp w0, 63 - bhi .L2942 -.L2934: + bhi .L3008 +.L3000: add x0, x19, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR5 - ldrh w2, [x0,1362] - ldrh w3, [x0,544] + ldrh w2, [x0,1370] + ldrh w3, [x0,552] add w2, w2, 64 - strh wzr, [x1,1456] + strh wzr, [x1,1464] cmp w3, w2 - bgt .L2942 - str wzr, [x0,1364] - ldr w0, [x0,768] - cbnz w0, .L2935 + bgt .L3008 + str wzr, [x0,1372] + ldr w0, [x0,776] + cbnz w0, .L3001 mov w0, 6 - b .L3101 -.L2935: + b .L3167 +.L3001: cmp w0, 5 - bhi .L2936 + bhi .L3002 mov w0, 18 -.L3101: - strh w0, [x1,1456] -.L2936: +.L3167: + strh w0, [x1,1464] +.L3002: mov w0, 32 mov w28, 65535 bl List_get_gc_head_node uxth w25, w0 cmp w25, w28 - beq .L2941 + beq .L3007 add x23, x19, :lo12:.LANCHOR2 - ldrh w0, [x23,1368] - cbz w0, .L2938 + ldrh w0, [x23,1376] + cbz w0, .L3004 add x2, x26, :lo12:.LANCHOR0 - ldr x27, [x23,512] + ldr x27, [x23,520] ubfiz x25, x25, 1, 16 - ldrh w1, [x2,2538] - ldrh w2, [x2,2468] + ldrh w1, [x2,2546] + ldrh w2, [x2,2472] ldrh w3, [x27,x25] mul w1, w1, w2 add w1, w1, 1 cmp w3, w1 - bgt .L2941 + bgt .L3007 add w1, w0, 1 - str wzr, [x23,1372] + str wzr, [x23,1380] uxth w1, w1 - strh w1, [x23,1368] + strh w1, [x23,1376] str x1, [x29,112] bl List_get_gc_head_node uxth w20, w0 cmp w20, w28 ldr x1, [x29,112] - beq .L2941 + beq .L3007 ubfiz x26, x20, 1, 16 - adrp x0, .LC151 + adrp x0, .LC156 ldrh w4, [x27,x25] - add x0, x0, :lo12:.LC151 + add x0, x0, :lo12:.LC156 mov w2, w20 ldrh w3, [x27,x26] bl printk - ldrh w0, [x23,1368] + ldrh w0, [x23,1376] cmp w0, 40 - bls .L2939 - ldr x0, [x23,512] + bls .L3005 + ldr x0, [x23,520] ldrh w0, [x0,x26] cmp w0, 32 - bls .L2939 - strh wzr, [x23,1368] -.L2939: + bls .L3005 + strh wzr, [x23,1376] +.L3005: add x21, x21, :lo12:.LANCHOR5 mov w0, 6 - strh w0, [x21,1456] - b .L2943 -.L2938: + strh w0, [x21,1464] + b .L3009 +.L3004: mov w0, 1 - strh w0, [x23,1368] -.L2941: + strh w0, [x23,1376] +.L3007: bl GetSwlReplaceBlock uxth w20, w0 mov w0, 65535 cmp w20, w0 - bne .L2943 + bne .L3009 add x21, x21, :lo12:.LANCHOR5 - strh wzr, [x21,1456] -.L2942: + strh wzr, [x21,1464] +.L3008: add x21, x19, :lo12:.LANCHOR2 mov w0, 65535 - ldrh w20, [x21,792] + ldrh w20, [x21,800] cmp w20, w0 - bne .L3105 - ldrh w0, [x21,648] + bne .L3171 + ldrh w0, [x21,656] cmp w0, w20 - beq .L3106 -.L2943: + beq .L3172 +.L3009: mov w0, 65535 cmp w20, w0 cset w2, eq - cbz w2, .L2956 + cbz w2, .L3022 ldr w0, [x29,124] - cbnz w0, .L2956 + cbnz w0, .L3022 add x0, x19, :lo12:.LANCHOR2 mov w21, 1 - ldrh w1, [x0,544] + ldrh w1, [x0,552] cmp w1, 24 - bhi .L2957 + bhi .L3023 adrp x0, .LANCHOR0 cmp w1, 16 add x0, x0, :lo12:.LANCHOR0 - ldrh w21, [x0,2536] - bls .L2958 + ldrh w21, [x0,2544] + bls .L3024 lsr w21, w21, 5 - b .L2957 -.L2958: + b .L3023 +.L3024: cmp w1, 12 - bls .L2959 + bls .L3025 lsr w21, w21, 4 - b .L2957 -.L2959: + b .L3023 +.L3025: cmp w1, 8 - bls .L2957 + bls .L3023 lsr w21, w21, 2 -.L2957: +.L3023: add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,1360] + ldrh w2, [x0,1368] cmp w2, w1 - bcs .L2961 - ldrh w1, [x0,648] + bcs .L3027 + ldrh w1, [x0,656] mov w2, 65535 cmp w1, w2 - bne .L2962 - ldrh w2, [x0,1448] + bne .L3028 + ldrh w2, [x0,1456] cmp w2, w1 - bne .L2962 - adrp x1, .LANCHOR5+1456 - ldrh w2, [x1,#:lo12:.LANCHOR5+1456] - cbnz w2, .L2963 - adrp x1, .LANCHOR0+2608 - ldr w3, [x0,708] - ldr w1, [x1,#:lo12:.LANCHOR0+2608] + bne .L3028 + adrp x1, .LANCHOR5+1464 + ldrh w2, [x1,#:lo12:.LANCHOR5+1464] + cbnz w2, .L3029 + adrp x1, .LANCHOR0+2616 + ldr w3, [x0,716] + ldr w1, [x1,#:lo12:.LANCHOR0+2616] add w1, w1, w1, lsl 1 cmp w3, w1, lsr 2 - bcs .L2964 -.L2963: + bcs .L3030 +.L3029: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,772] + ldrh w0, [x1,780] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,1360] - b .L2965 -.L2964: + strh w0, [x1,1368] + b .L3031 +.L3030: mov w1, 18 - strh w1, [x0,1360] -.L2965: + strh w1, [x0,1368] +.L3031: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,1372] - b .L3079 -.L2962: + str wzr, [x19,1380] + b .L3145 +.L3028: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,772] + ldrh w0, [x1,780] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,1360] -.L2961: + strh w0, [x1,1368] +.L3027: cmp w22, 2 - bhi .L3033 - adrp x0, .LANCHOR0+2460 - ldr w0, [x0,#:lo12:.LANCHOR0+2460] - cbz w0, .L3033 + bhi .L3099 + adrp x0, .LANCHOR0+2372 + ldr w0, [x0,#:lo12:.LANCHOR0+2372] + cbz w0, .L3099 add w21, w21, 1 uxth w21, w21 - b .L3033 -.L2956: + b .L3099 +.L3022: add x0, x19, :lo12:.LANCHOR2 mov w3, 65535 - ldrh w1, [x0,648] + ldrh w1, [x0,656] cmp w1, w3 - bne .L2968 - cbz w2, .L2968 - ldrh w2, [x0,1448] + bne .L3034 + cbz w2, .L3034 + ldrh w2, [x0,1456] cmp w2, w1 - bne .L2968 - ldrh w2, [x0,792] + bne .L3034 + ldrh w2, [x0,800] cmp w2, w1 - beq .L2969 -.L2974: + beq .L3035 +.L3040: mov w20, 65535 - b .L2968 -.L2969: - ldrh w2, [x0,544] + b .L3034 +.L3035: + ldrh w2, [x0,552] adrp x20, .LANCHOR5 - ldrh w1, [x0,1360] - str wzr, [x0,1372] + ldrh w1, [x0,1368] + str wzr, [x0,1380] cmp w2, w1 - bls .L2970 + bls .L3036 add x1, x20, :lo12:.LANCHOR5 - ldrh w1, [x1,1456] - cbnz w1, .L2971 - adrp x1, .LANCHOR0+2608 - ldr w2, [x0,708] - ldr w1, [x1,#:lo12:.LANCHOR0+2608] + ldrh w1, [x1,1464] + cbnz w1, .L3037 + adrp x1, .LANCHOR0+2616 + ldr w2, [x0,716] + ldr w1, [x1,#:lo12:.LANCHOR0+2616] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bcs .L2972 -.L2971: + bcs .L3038 +.L3037: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,772] + ldrh w0, [x1,780] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,1360] - b .L2973 -.L2972: + strh w0, [x1,1368] + b .L3039 +.L3038: mov w1, 18 - strh w1, [x0,1360] -.L2973: + strh w1, [x0,1368] +.L3039: bl FtlReadRefresh mov w0, 0 bl List_get_gc_head_node ubfiz x0, x0, 1, 16 add x1, x19, :lo12:.LANCHOR2 - ldr x1, [x1,512] + ldr x1, [x1,520] ldrh w0, [x1,x0] cmp w0, 4 - bls .L2970 + bls .L3036 add x20, x20, :lo12:.LANCHOR5 - ldrh w2, [x20,1456] - b .L3079 -.L2970: + ldrh w2, [x20,1464] + b .L3145 +.L3036: add x21, x20, :lo12:.LANCHOR5 - ldrh w0, [x21,1456] - cbnz w0, .L2974 + ldrh w0, [x21,1464] + cbnz w0, .L3040 add x22, x19, :lo12:.LANCHOR2 - ldrh w20, [x22,772] + ldrh w20, [x22,780] add w1, w20, w20, lsl 1 asr w1, w1, 2 - strh w1, [x22,1360] + strh w1, [x22,1368] bl List_get_gc_head_node ubfiz x0, x0, 1, 16 - ldr x1, [x22,512] + ldr x1, [x22,520] ldrh w2, [x1,x0] adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w0, [x1,2538] - ldrh w1, [x1,2468] + ldrh w0, [x1,2546] + ldrh w1, [x1,2472] mul w0, w0, w1 mov w1, 2 sdiv w0, w0, w1 cmp w2, w0 - ble .L2975 - ldrh w0, [x22,544] + ble .L3041 + ldrh w0, [x22,552] sub w20, w20, #1 cmp w0, w20 - blt .L2975 + blt .L3041 bl FtlReadRefresh - b .L3104 -.L2975: - cbnz w2, .L2974 + b .L3170 +.L3041: + cbnz w2, .L3040 mov w0, -1 add x19, x19, :lo12:.LANCHOR2 bl decrement_vpc_count - ldrh w2, [x19,544] + ldrh w2, [x19,552] add w2, w2, 1 - b .L3079 -.L2968: - adrp x0, .LANCHOR0+2460 + b .L3145 +.L3034: + adrp x0, .LANCHOR0+2372 mov w21, 2 - ldr w0, [x0,#:lo12:.LANCHOR0+2460] + ldr w0, [x0,#:lo12:.LANCHOR0+2372] cmp w0, wzr csinc w21, w21, wzr, ne - b .L2967 -.L3033: + b .L3033 +.L3099: mov w20, 65535 -.L2967: +.L3033: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w1, [x0,792] + ldrh w1, [x0,800] cmp w1, w2 - bne .L2977 + bne .L3043 cmp w20, w1 - beq .L2978 - strh w20, [x0,792] - b .L2979 -.L2978: - ldrh w1, [x0,1448] + beq .L3044 + strh w20, [x0,800] + b .L3045 +.L3044: + ldrh w1, [x0,1456] cmp w1, w20 - beq .L2979 + beq .L3045 ubfiz x1, x1, 1, 16 - ldr x2, [x0,512] + ldr x2, [x0,520] ldrh w1, [x2,x1] - cbnz w1, .L2980 + cbnz w1, .L3046 mov w1, -1 - strh w1, [x0,1448] -.L2980: + strh w1, [x0,1456] +.L3046: add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,1448] - strh w1, [x0,792] + ldrh w1, [x0,1456] + strh w1, [x0,800] mov w1, -1 - strh w1, [x0,1448] -.L2979: + strh w1, [x0,1456] +.L3045: add x22, x19, :lo12:.LANCHOR2 mov w1, 65535 - ldrh w0, [x22,792] - strb wzr, [x22,800] + ldrh w0, [x22,800] + strb wzr, [x22,808] cmp w0, w1 - beq .L2977 + beq .L3043 bl IsBlkInGcList - cbz w0, .L2982 + cbz w0, .L3048 mov w0, -1 - strh w0, [x22,792] -.L2982: - adrp x0, .LANCHOR0+196 - ldrb w0, [x0,#:lo12:.LANCHOR0+196] - cbz w0, .L2983 + strh w0, [x22,800] +.L3048: + adrp x0, .LANCHOR0+204 + ldrb w0, [x0,#:lo12:.LANCHOR0+204] + cbz w0, .L3049 add x0, x19, :lo12:.LANCHOR2 - add x22, x0, 792 - ldrh w0, [x0,792] + add x22, x0, 800 + ldrh w0, [x0,800] bl ftl_get_blk_mode strb w0, [x22,8] -.L2983: +.L3049: add x22, x19, :lo12:.LANCHOR2 mov w0, 65535 - add x23, x22, 792 - ldrh w1, [x22,792] + add x23, x22, 800 + ldrh w1, [x22,800] cmp w1, w0 - beq .L2977 + beq .L3043 mov x0, x23 bl make_superblock - strh wzr, [x22,794] + strh wzr, [x22,802] adrp x0, .LANCHOR5 - ldrh w2, [x22,792] + ldrh w2, [x22,800] add x0, x0, :lo12:.LANCHOR5 - ldr x1, [x22,512] - strb wzr, [x22,798] - strh wzr, [x0,1458] + ldr x1, [x22,520] + strb wzr, [x22,806] + strh wzr, [x0,1466] ldrh w1, [x1,x2,lsl 1] - strh w1, [x0,1460] -.L2977: + strh w1, [x0,1468] +.L3043: add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,792] - ldrh w2, [x0,552] + ldrh w1, [x0,800] + ldrh w2, [x0,560] cmp w2, w1 - beq .L2984 - ldrh w2, [x0,600] + beq .L3050 + ldrh w2, [x0,608] cmp w2, w1 - beq .L2984 - ldrh w0, [x0,648] + beq .L3050 + ldrh w0, [x0,656] cmp w0, w1 - bne .L2985 -.L2984: + bne .L3051 +.L3050: add x0, x19, :lo12:.LANCHOR2 mov w1, -1 - strh w1, [x0,792] -.L2985: + strh w1, [x0,800] +.L3051: add x24, x19, :lo12:.LANCHOR2 mov w25, 65535 -.L3018: - ldrh w0, [x24,792] +.L3084: + ldrh w0, [x24,800] cmp w0, w25 - bne .L2986 - str wzr, [x24,1372] -.L2987: - ldrh w22, [x24,1368] + bne .L3052 + str wzr, [x24,1380] +.L3053: + ldrh w22, [x24,1376] mov w0, w22 bl List_get_gc_head_node uxth w23, w0 cmp w23, w25 - strh w23, [x24,792] - bne .L2988 - strh wzr, [x24,1368] + strh w23, [x24,800] + bne .L3054 + strh wzr, [x24,1376] mov w2, 8 - b .L3079 -.L2988: + b .L3145 +.L3054: mov w0, w23 add w22, w22, 1 bl IsBlkInGcList - cbz w0, .L2989 - strh w22, [x24,1368] - b .L2987 -.L2989: + cbz w0, .L3055 + strh w22, [x24,1376] + b .L3053 +.L3055: adrp x0, .LANCHOR0 ubfiz x1, x23, 1, 16 add x5, x0, :lo12:.LANCHOR0 - ldr x2, [x24,512] + ldr x2, [x24,520] uxth w22, w22 mov w3, 2 - strh w22, [x24,1368] - ldrh w0, [x5,2536] - ldrh w5, [x5,2468] + strh w22, [x24,1376] + ldrh w0, [x5,2544] + ldrh w5, [x5,2472] ldrh w4, [x2,x1] mul w0, w0, w5 sdiv w5, w0, w3 cmp w4, w5 - bgt .L2991 + bgt .L3057 cmp w4, 8 - bls .L2992 + bls .L3058 cmp w22, 48 - bls .L2992 - ldrh w4, [x24,1420] + bls .L3058 + ldrh w4, [x24,1428] cmp w4, 35 - bhi .L2992 -.L2991: - strh wzr, [x24,1368] -.L2992: + bhi .L3058 +.L3057: + strh wzr, [x24,1376] +.L3058: cmp w20, w25 ldrh w1, [x2,x1] - bne .L2993 + bne .L3059 cmp w1, w0 - blt .L2993 - ldrh w0, [x24,1368] + blt .L3059 + ldrh w0, [x24,1376] cmp w0, 3 - bhi .L2993 + bhi .L3059 mov w0, -1 - strh w0, [x24,792] - adrp x0, .LANCHOR5+1456 - strh wzr, [x24,1368] - ldrh w2, [x0,#:lo12:.LANCHOR5+1456] - b .L3079 -.L2993: - cbnz w1, .L2994 + strh w0, [x24,800] + adrp x0, .LANCHOR5+1464 + strh wzr, [x24,1376] + ldrh w2, [x0,#:lo12:.LANCHOR5+1464] + b .L3145 +.L3059: + cbnz w1, .L3060 mov w0, -1 bl decrement_vpc_count - ldrh w0, [x24,1368] + ldrh w0, [x24,1376] add w0, w0, 1 - strh w0, [x24,1368] - b .L2987 -.L2994: + strh w0, [x24,1376] + b .L3053 +.L3060: adrp x0, .LANCHOR0 - strb wzr, [x24,800] + strb wzr, [x24,808] add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbz w0, .L2995 + ldrb w0, [x0,204] + cbz w0, .L3061 mov w0, w23 bl ftl_get_blk_mode - strb w0, [x24,800] -.L2995: - add x22, x24, 792 + strb w0, [x24,808] +.L3061: + add x22, x24, 800 mov x0, x22 bl make_superblock adrp x1, .LANCHOR5 - ldrh w2, [x24,792] + ldrh w2, [x24,800] add x1, x1, :lo12:.LANCHOR5 - ldr x0, [x24,512] - strh wzr, [x1,1458] + ldr x0, [x24,520] + strh wzr, [x1,1466] ldrh w0, [x0,x2,lsl 1] - strh w0, [x1,1460] - strh wzr, [x24,794] - strb wzr, [x24,798] -.L2986: + strh w0, [x1,1468] + strh wzr, [x24,802] + strb wzr, [x24,806] +.L3052: ldr w0, [x29,124] cmp w0, 1 - bne .L2996 + bne .L3062 bl FtlReadRefresh -.L2996: +.L3062: mov w0, 1 - str w0, [x24,3560] + str w0, [x24,3568] adrp x0, .LANCHOR0 adrp x22, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,196] - ldrh w26, [x0,2536] - cbz w1, .L2997 - ldrb w1, [x24,800] + ldrb w1, [x0,204] + ldrh w26, [x0,2544] + cbz w1, .L3063 + ldrb w1, [x24,808] cmp w1, 1 - bne .L2997 - ldrh w26, [x0,2538] -.L2997: - ldrh w0, [x24,794] + bne .L3063 + ldrh w26, [x0,2546] +.L3063: + ldrh w0, [x24,802] add w1, w0, w21 cmp w1, w26 - ble .L2998 + ble .L3064 sub w21, w26, w0 uxth w21, w21 -.L2998: +.L3064: mov w27, 0 -.L2999: +.L3065: cmp w21, w27, uxth - bls .L3006 - add x1, x24, 792 + bls .L3072 + add x1, x24, 800 add x0, x22, :lo12:.LANCHOR0 ldrh w4, [x1,2] - ldrh w6, [x0,2468] + ldrh w6, [x0,2472] mov x0, 0 add w4, w4, w27 mov w23, w0 -.L3007: +.L3073: cmp w6, w0, uxth - bls .L3107 + bls .L3173 add x2, x1, x0, lsl 1 ldrh w2, [x2,16] cmp w2, w25 - beq .L3000 + beq .L3066 mov w3, 56 - ldr x7, [x24,1408] + ldr x7, [x24,1416] orr w2, w4, w2, lsl 10 umull x5, w23, w3 add w23, w23, 1 add x5, x7, x5 uxth w23, w23 str w2, [x5,4] -.L3000: +.L3066: add x0, x0, 1 - b .L3007 -.L3107: - ldr x0, [x24,1408] + b .L3073 +.L3173: + ldr x0, [x24,1416] mov w1, w23 - ldrb w2, [x24,800] + ldrb w2, [x24,808] mov x28, 0 bl FlashReadPages -.L3002: +.L3068: cmp w23, w28, uxth - bls .L3108 + bls .L3174 mov x0, 56 mul x4, x28, x0 - ldr x0, [x24,1408] + ldr x0, [x24,1416] add x1, x0, x4 ldr w0, [x0,x4] cmn w0, #1 ldr x5, [x1,16] - beq .L3036 + beq .L3102 ldrh w0, [x5] mov w1, 61589 cmp w0, w1 - bne .L3036 + bne .L3102 ldr w0, [x5,8] add x1, x29, 136 mov w2, 0 str x4, [x29,104] str x5, [x29,112] bl log2phys - ldr x2, [x24,1408] + ldr x2, [x24,1416] ldr x4, [x29,104] ldr w0, [x29,136] add x2, x2, x4 @@ -19519,17 +19910,17 @@ ftl_do_gc: and w0, w0, 2147483647 ldr w1, [x2,4] cmp w0, w1 - bne .L3036 + bne .L3102 adrp x0, .LANCHOR5 mov x3, 56 add x1, x0, :lo12:.LANCHOR5 str x4, [x29,96] str x5, [x29,104] - ldrh w0, [x1,1458] + ldrh w0, [x1,1466] add w0, w0, 1 - strh w0, [x1,1458] - ldr w0, [x24,1376] - ldr x1, [x24,3592] + strh w0, [x1,1466] + ldr w0, [x24,1384] + ldr x1, [x24,3600] madd x1, x0, x3, x1 ldr w0, [x2,24] str x1, [x29,112] @@ -19540,185 +19931,185 @@ ftl_do_gc: ldr x4, [x29,96] ldr x5, [x29,104] str w0, [x1,4] - ldr w0, [x24,1376] - ldr x1, [x24,3592] + ldr w0, [x24,1384] + ldr x1, [x24,3600] madd x0, x0, x2, x1 - ldr x1, [x24,1408] + ldr x1, [x24,1416] add x1, x1, x4 ldr x2, [x1,8] str x2, [x0,8] - add x2, x24, 648 + add x2, x24, 656 str x2, [x29,112] ldr x1, [x1,16] str x1, [x0,16] mov w1, 1 ldr w0, [x29,136] str w0, [x5,12] - ldrh w0, [x24,648] + ldrh w0, [x24,656] strh w0, [x5,2] - ldr w0, [x24,748] + ldr w0, [x24,756] str w0, [x5,4] - ldr w0, [x24,1376] + ldr w0, [x24,1384] add w0, w0, 1 - str w0, [x24,1376] - ldr x0, [x24,1408] + str w0, [x24,1384] + ldr x0, [x24,1416] add x0, x0, x4 bl FtlGcBufAlloc add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,196] - cbnz w0, .L3004 + ldrb w0, [x0,204] + cbnz w0, .L3070 ldr x2, [x29,112] - ldr w1, [x24,1376] + ldr w1, [x24,1384] ldrb w0, [x2,7] cmp w1, w0 - beq .L3004 + beq .L3070 ldrh w0, [x2,4] - cbnz w0, .L3036 -.L3004: + cbnz w0, .L3102 +.L3070: bl Ftl_gc_temp_data_write_back - cbz w0, .L3036 + cbz w0, .L3102 add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - strh w0, [x19,792] + strh w0, [x19,800] adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - str wzr, [x19,3560] - strh wzr, [x19,794] - ldrh w2, [x0,1456] - b .L3079 -.L3036: + str wzr, [x19,3568] + strh wzr, [x19,802] + ldrh w2, [x0,1464] + b .L3145 +.L3102: add x28, x28, 1 - b .L3002 -.L3108: + b .L3068 +.L3174: add w27, w27, 1 - b .L2999 -.L3006: - ldrh w0, [x24,794] + b .L3065 +.L3072: + ldrh w0, [x24,802] add w21, w21, w0 uxth w21, w21 - strh w21, [x24,794] + strh w21, [x24,802] cmp w21, w26 - bcc .L3008 - ldr w0, [x24,1376] + bcc .L3074 + ldr w0, [x24,1384] adrp x21, .LANCHOR5 - cbz w0, .L3009 + cbz w0, .L3075 bl Ftl_gc_temp_data_write_back - cbz w0, .L3009 - str wzr, [x24,3560] + cbz w0, .L3075 + str wzr, [x24,3568] add x21, x21, :lo12:.LANCHOR5 -.L3104: - ldrh w2, [x21,1456] - b .L3079 -.L3009: +.L3170: + ldrh w2, [x21,1464] + b .L3145 +.L3075: add x21, x21, :lo12:.LANCHOR5 - ldrh w21, [x21,1458] - cbnz w21, .L3010 - ldrh w1, [x24,792] - ldr x0, [x24,512] + ldrh w21, [x21,1466] + cbnz w21, .L3076 + ldrh w1, [x24,800] + ldr x0, [x24,520] ldrh w0, [x0,x1,lsl 1] - cbz w0, .L3010 -.L3011: + cbz w0, .L3076 +.L3077: add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2608] + ldr w0, [x0,2616] cmp w21, w0 - bcs .L3016 + bcs .L3082 mov w0, w21 add x1, x29, 140 mov w2, 0 bl log2phys ldr w0, [x29,140] cmn w0, #1 - beq .L3012 + beq .L3078 lsr w0, w0, 10 bl P2V_block_in_plane - ldrh w1, [x24,792] + ldrh w1, [x24,800] cmp w1, w0, uxth - bne .L3012 -.L3016: + bne .L3078 +.L3082: add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2608] + ldr w0, [x0,2616] cmp w21, w0 - bcc .L3010 - ldrh w1, [x24,792] - ldr x0, [x24,512] + bcc .L3076 + ldrh w1, [x24,800] + ldr x0, [x24,520] strh wzr, [x0,x1,lsl 1] - ldrh w0, [x24,792] + ldrh w0, [x24,800] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3010 -.L3012: + b .L3076 +.L3078: add w21, w21, 1 - b .L3011 -.L3010: + b .L3077 +.L3076: mov w0, -1 - strh w0, [x24,792] -.L3008: - ldrh w0, [x24,544] + strh w0, [x24,800] +.L3074: + ldrh w0, [x24,552] cmp w0, 2 - bhi .L3017 + bhi .L3083 add x22, x22, :lo12:.LANCHOR0 - ldrh w21, [x22,2536] - b .L3018 -.L3017: - adrp x1, .LANCHOR5+1456 - str wzr, [x24,3560] - ldrh w2, [x1,#:lo12:.LANCHOR5+1456] + ldrh w21, [x22,2544] + b .L3084 +.L3083: + adrp x1, .LANCHOR5+1464 + str wzr, [x24,3568] + ldrh w2, [x1,#:lo12:.LANCHOR5+1464] cmp w2, wzr csinc w2, w2, w0, ne - b .L3079 -.L3106: - ldrh w25, [x21,1448] + b .L3145 +.L3172: + ldrh w25, [x21,1456] cmp w25, w20 - bne .L2943 - ldrh w0, [x21,544] + bne .L3009 + ldrh w0, [x21,552] mov w2, 1024 - ldr w1, [x21,1364] + ldr w1, [x21,1372] cmp w0, 24 mov w0, 5120 csel w0, w0, w2, cc cmp w1, w0 - bls .L2943 - adrp x0, .LANCHOR5+1456 - str wzr, [x21,1364] + bls .L3009 + adrp x0, .LANCHOR5+1464 + str wzr, [x21,1372] mov x23, x21 - strh wzr, [x0,#:lo12:.LANCHOR5+1456] + strh wzr, [x0,#:lo12:.LANCHOR5+1464] bl GetSwlReplaceBlock uxth w20, w0 cmp w20, w25 - bne .L2945 - ldrh w1, [x21,544] - ldrh w0, [x21,1362] + bne .L3011 + ldrh w1, [x21,552] + ldrh w0, [x21,1370] cmp w1, w0 - bcs .L2946 + bcs .L3012 mov w0, 64 bl List_get_gc_head_node uxth w0, w0 cmp w0, w20 - beq .L2955 - ldr w2, [x21,3556] + beq .L3021 + ldr w2, [x21,3564] uxtw x1, w0 adrp x21, .LANCHOR0 - cbnz w2, .L2948 + cbnz w2, .L3014 add x0, x21, :lo12:.LANCHOR0 - ldrh w2, [x0,2488] + ldrh w2, [x0,2492] cmp w2, 3 - beq .L2948 - ldr w2, [x23,840] - cbnz w2, .L2948 - ldr w2, [x0,2460] - cbnz w2, .L2948 - ldrb w0, [x0,196] - cbz w0, .L2949 -.L2948: + beq .L3014 + ldr w2, [x23,848] + cbnz w2, .L3014 + ldr w2, [x0,2372] + cbnz w2, .L3014 + ldrb w0, [x0,204] + cbz w0, .L3015 +.L3014: add x0, x19, :lo12:.LANCHOR2 add x3, x21, :lo12:.LANCHOR0 - ldr x0, [x0,512] + ldr x0, [x0,520] ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x3,2538] - ldrh w0, [x3,2468] - ldrh w3, [x3,2488] + ldrh w1, [x3,2546] + ldrh w0, [x3,2472] + ldrh w3, [x3,2492] mul w2, w1, w0 cmp w3, 3 mov w0, 0 @@ -19726,73 +20117,73 @@ ftl_do_gc: csel w0, w1, w0, eq add w0, w2, w0 cmp w4, w0 - bgt .L2951 + bgt .L3017 mov w0, 0 add x21, x21, :lo12:.LANCHOR0 bl List_get_gc_head_node uxth w20, w0 add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x21,2608] - ldr w2, [x1,708] + ldr w0, [x21,2616] + ldr w2, [x1,716] add w0, w0, w0, lsl 1 cmp w2, w0, lsr 2 - bls .L2952 + bls .L3018 mov w0, 128 - b .L3102 -.L2952: + b .L3168 +.L3018: mov w0, 160 -.L3102: - strh w0, [x1,1362] - b .L2953 -.L2951: +.L3168: + strh w0, [x1,1370] + b .L3019 +.L3017: add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - b .L3103 -.L2949: - ldr x2, [x23,512] + b .L3169 +.L3015: + ldr x2, [x23,520] ldrh w1, [x2,x1,lsl 1] cmp w1, 7 - bhi .L2954 + bhi .L3020 bl List_get_gc_head_node uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - strh w1, [x0,1362] - b .L2953 -.L2954: + strh w1, [x0,1370] + b .L3019 +.L3020: add x0, x19, :lo12:.LANCHOR2 mov w1, 64 -.L3103: - strh w1, [x0,1362] - b .L2955 -.L2946: +.L3169: + strh w1, [x0,1370] + b .L3021 +.L3012: mov w0, 80 - strh w0, [x21,1362] - b .L2955 -.L2953: + strh w0, [x21,1370] + b .L3021 +.L3019: mov w0, 65535 cmp w20, w0 - beq .L2955 -.L2945: + beq .L3021 +.L3011: add x5, x19, :lo12:.LANCHOR2 ubfiz x4, x20, 1, 32 - adrp x0, .LC152 + adrp x0, .LC157 mov w1, w20 - add x0, x0, :lo12:.LC152 - ldr x3, [x5,512] - ldr x6, [x5,432] - ldrh w2, [x5,544] + add x0, x0, :lo12:.LC157 + ldr x3, [x5,520] + ldr x6, [x5,440] + ldrh w2, [x5,552] ldrh w3, [x3,x4] - ldrh w5, [x5,1360] + ldrh w5, [x5,1368] ldrh w4, [x6,x4] bl printk -.L2955: +.L3021: bl FtlGcReFreshBadBlk - b .L2943 -.L3105: + b .L3009 +.L3171: mov w20, w0 - b .L2943 -.L3079: + b .L3009 +.L3145: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19807,119 +20198,119 @@ ftl_do_gc: .type FtlCacheWriteBack, %function FtlCacheWriteBack: stp x29, x30, [sp, -128]! - adrp x0, .LANCHOR5+1464 + adrp x0, .LANCHOR5+1472 add x29, sp, 0 stp x21, x22, [sp,32] adrp x22, .LANCHOR2 stp x19, x20, [sp,16] - ldr x20, [x0,#:lo12:.LANCHOR5+1464] + ldr x20, [x0,#:lo12:.LANCHOR5+1472] add x0, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w23, [x0,416] - cbnz w23, .L3111 + ldr w23, [x0,424] + cbnz w23, .L3177 adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2592] - cbz w1, .L3111 - ldrb w0, [x0,196] - cbz w0, .L3113 + ldr w1, [x0,2600] + cbz w1, .L3177 + ldrb w0, [x0,204] + cbz w0, .L3179 ldrb w0, [x20,8] cmp w0, 1 cset w23, eq -.L3113: +.L3179: add x0, x19, :lo12:.LANCHOR0 ldrb w3, [x20,9] - adrp x26, .LC153 + adrp x26, .LC158 mov w2, w23 mov w24, 0 mov w27, 56 - ldr x0, [x0,2600] - add x26, x26, :lo12:.LC153 + ldr x0, [x0,2608] + add x26, x26, :lo12:.LC158 bl FlashProgPages -.L3114: +.L3180: add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2592] + ldr w1, [x0,2600] cmp w24, w1 - bcs .L3132 + bcs .L3198 umull x21, w24, w27 - ldr x1, [x0,2600] + ldr x1, [x0,2608] add x0, x1, x21 ldr w25, [x1,x21] cmn w25, #1 - beq .L3135 + beq .L3201 ldr w1, [x0,4] - cbz w23, .L3149 + cbz w23, .L3215 orr w1, w1, -2147483648 -.L3149: +.L3215: ldr w0, [x0,24] mov w2, 1 str w1, [x29,124] add x1, x29, 124 bl log2phys add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2600] + ldr x0, [x0,2608] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L3118 + beq .L3184 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 add x2, x22, :lo12:.LANCHOR2 ubfiz x0, x1, 1, 16 mov w21, w1 - ldr x2, [x2,512] + ldr x2, [x2,520] ldrh w2, [x2,x0] - cbnz w2, .L3119 + cbnz w2, .L3185 mov x0, x26 bl printk -.L3119: +.L3185: mov w0, w21 bl decrement_vpc_count -.L3118: +.L3184: add w24, w24, 1 - b .L3114 -.L3151: + b .L3180 +.L3217: mov w20, 16386 -.L3131: +.L3197: add x0, x22, :lo12:.LANCHOR2 - ldrh w0, [x0,1456] - cbz w0, .L3132 + ldrh w0, [x0,1464] + cbz w0, .L3198 mov w0, 1 mov w1, w0 bl ftl_do_gc subs w20, w20, #1 - bne .L3131 -.L3132: + bne .L3197 +.L3198: add x19, x19, :lo12:.LANCHOR0 - str wzr, [x19,2592] - b .L3111 -.L3135: - adrp x26, .LC153 + str wzr, [x19,2600] + b .L3177 +.L3201: + adrp x26, .LC158 mov w24, 0 mov w27, 56 str w25, [x29,108] mov w28, 1 - add x26, x26, :lo12:.LC153 -.L3115: + add x26, x26, :lo12:.LC158 +.L3181: add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2592] + ldr w1, [x0,2600] cmp w24, w1 - bcs .L3151 + bcs .L3217 umull x21, w24, w27 - ldr x0, [x0,2600] + ldr x0, [x0,2608] ldr w1, [x29,108] str w1, [x0,x21] -.L3121: +.L3187: add x2, x19, :lo12:.LANCHOR0 - ldr x0, [x2,2600] + ldr x0, [x2,2608] add x1, x0, x21 ldr w0, [x0,x21] cmn w0, #1 - bne .L3152 + bne .L3218 ldr w0, [x1,4] str x2, [x29,96] lsr x0, x0, 10 @@ -19927,31 +20318,31 @@ FtlCacheWriteBack: ldrh w1, [x20] cmp w1, w0, uxth ldr x2, [x29,96] - bne .L3122 + bne .L3188 add x0, x22, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 ldrh w4, [x20,4] - ldr x3, [x0,512] + ldr x3, [x0,520] ldrh w0, [x3,x1] sub w0, w0, w4 strh w0, [x3,x1] strb wzr, [x20,6] - ldrh w0, [x2,2536] + ldrh w0, [x2,2544] strh w0, [x20,2] strh wzr, [x20,4] -.L3122: +.L3188: ldrh w0, [x20,4] - cbnz w0, .L3123 + cbnz w0, .L3189 mov x0, x20 bl allocate_new_data_superblock -.L3123: +.L3189: add x5, x22, :lo12:.LANCHOR2 add x25, x19, :lo12:.LANCHOR0 str x5, [x29,96] - ldr w0, [x5,944] + ldr w0, [x5,952] add w0, w0, 1 - str w0, [x5,944] - ldr x0, [x25,2600] + str w0, [x5,952] + ldr x0, [x25,2608] add x0, x0, x21 ldr w0, [x0,4] lsr x0, x0, 10 @@ -19959,61 +20350,61 @@ FtlCacheWriteBack: mov x0, x20 bl get_new_active_ppa str w0, [x29,124] - ldr x1, [x25,2600] + ldr x1, [x25,2608] mov w2, w23 add x1, x1, x21 str w0, [x1,4] mov w1, 1 - ldr x0, [x25,2600] + ldr x0, [x25,2608] ldrb w3, [x20,9] add x0, x0, x21 bl FlashProgPages - ldr x0, [x25,2600] + ldr x0, [x25,2608] ldr x5, [x29,96] ldr w0, [x0,x21] cmn w0, #1 - bne .L3124 - str w28, [x5,416] -.L3124: + bne .L3190 + str w28, [x5,424] +.L3190: add x0, x22, :lo12:.LANCHOR2 - ldr w0, [x0,416] - cbz w0, .L3121 - b .L3111 -.L3152: + ldr w0, [x0,424] + cbz w0, .L3187 + b .L3177 +.L3218: ldr w0, [x1,4] - cbz w23, .L3150 + cbz w23, .L3216 orr w0, w0, -2147483648 -.L3150: +.L3216: str w0, [x29,124] mov w2, 1 ldr w0, [x1,24] add x1, x29, 124 bl log2phys add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2600] + ldr x0, [x0,2608] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L3128 + beq .L3194 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 add x2, x22, :lo12:.LANCHOR2 ubfiz x0, x1, 1, 16 mov w21, w1 - ldr x2, [x2,512] + ldr x2, [x2,520] ldrh w2, [x2,x0] - cbnz w2, .L3129 + cbnz w2, .L3195 mov x0, x26 bl printk -.L3129: +.L3195: mov w0, w21 bl decrement_vpc_count -.L3128: +.L3194: add w24, w24, 1 - b .L3115 -.L3111: + b .L3181 +.L3177: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -20027,23 +20418,25 @@ FtlCacheWriteBack: .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: - adrp x0, .LANCHOR2+416 - stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR2+424 + stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2+416] - cbnz w0, .L3154 + ldr w0, [x0,#:lo12:.LANCHOR2+424] + str x19, [sp,16] + cbnz w0, .L3220 adrp x0, .LANCHOR1+504 - ldr w0, [x0,#:lo12:.LANCHOR1+504] - cmn w0, #1 - beq .L3154 + ldr w19, [x0,#:lo12:.LANCHOR1+504] + cmp w19, 1 + bne .L3220 bl FtlCacheWriteBack bl l2p_flush - mov w0, 1 + mov w0, w19 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3154: +.L3220: mov w0, 0 - ldp x29, x30, [sp], 16 + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 ret .size FtlSysFlush, .-FtlSysFlush .align 2 @@ -20055,9 +20448,9 @@ FtlDeInit: add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR1+504] cmp w0, 1 - bne .L3159 + bne .L3222 bl FtlSysFlush -.L3159: +.L3222: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -20079,10 +20472,10 @@ ftl_deinit: .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! - adrp x0, .LC154 + adrp x0, .LC159 mov w1, 0 add x29, sp, 0 - add x0, x0, :lo12:.LC154 + add x0, x0, :lo12:.LC159 bl printk bl ftl_deinit ldp x29, x30, [sp], 16 @@ -20113,67 +20506,68 @@ rk_ftl_cache_write_back: .type ftl_discard, %function ftl_discard: stp x29, x30, [sp, -80]! - add w2, w0, w1 add x29, sp, 0 stp x21, x22, [sp,32] adrp x22, .LANCHOR0 str x23, [sp,48] add x21, x22, :lo12:.LANCHOR0 stp x19, x20, [sp,16] - mov w19, w1 mov w20, w0 - ldr w1, [x21,2576] + mov w19, w1 + ldr w2, [x21,2584] + cmp w1, w2 + bhi .L3234 + cmp w0, w2 + cset w1, cs + cbnz w1, .L3234 + add w3, w0, w19 mov w0, -1 - cmp w2, w1 - bhi .L3165 - adrp x0, .LANCHOR1+504 - ldr w1, [x0,#:lo12:.LANCHOR1+504] - cmn w1, #1 - mov w0, w1 - beq .L3165 + cmp w3, w2 + bhi .L3228 cmp w19, 31 - mov w0, 0 - bls .L3165 + mov w0, w1 + bls .L3228 adrp x23, .LANCHOR2 - add x1, x23, :lo12:.LANCHOR2 - ldr w1, [x1,416] - cbnz w1, .L3165 + add x0, x23, :lo12:.LANCHOR2 + ldr w2, [x0,424] + mov w0, w1 + cbnz w2, .L3228 bl FtlCacheWriteBack - ldrh w1, [x21,2542] + ldrh w1, [x21,2550] udiv w21, w20, w1 msub w20, w1, w21, w20 uxth w20, w20 - cbz w20, .L3166 - sub w1, w1, w20 + cbz w20, .L3229 + sub w20, w1, w20 add w21, w21, 1 - cmp w1, w19 - csel w1, w1, w19, ls - sub w19, w19, w1, uxth -.L3166: + cmp w20, w19 + csel w20, w20, w19, ls + sub w19, w19, w20, uxth +.L3229: mov w0, -1 adrp x20, .LANCHOR5 str w0, [x29,76] -.L3167: +.L3230: add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2542] + ldrh w0, [x0,2550] cmp w19, w0 - bcc .L3181 + bcc .L3244 mov w0, w21 add x1, x29, 72 mov w2, 0 bl log2phys ldr w0, [x29,72] cmn w0, #1 - beq .L3168 + beq .L3231 add x1, x20, :lo12:.LANCHOR5 mov w2, 1 - ldr w0, [x1,1472] + ldr w0, [x1,1480] add w0, w0, 1 - str w0, [x1,1472] + str w0, [x1,1480] add x1, x23, :lo12:.LANCHOR2 - ldr w0, [x1,716] + ldr w0, [x1,724] add w0, w0, 1 - str w0, [x1,716] + str w0, [x1,724] add x1, x29, 76 mov w0, w21 bl log2phys @@ -20181,24 +20575,27 @@ ftl_discard: lsr x0, x0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L3168: +.L3231: add x0, x22, :lo12:.LANCHOR0 add w21, w21, 1 - ldrh w0, [x0,2542] + ldrh w0, [x0,2550] sub w19, w19, w0 - b .L3167 -.L3181: + b .L3230 +.L3244: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,1472] + ldr w1, [x0,1480] cmp w1, 32 - bls .L3170 - str wzr, [x0,1472] + bls .L3233 + str wzr, [x0,1480] bl l2p_flush bl FtlVpcTblFlush -.L3170: +.L3233: mov w0, 0 -.L3165: + b .L3228 +.L3234: + mov w0, -1 +.L3228: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -20224,173 +20621,177 @@ ftl_read: adrp x0, .LANCHOR1+504 stp x29, x30, [sp,16] add x29, sp, 16 - ldr w5, [x0,#:lo12:.LANCHOR1+504] - stp x19, x20, [sp,32] stp x21, x22, [sp,48] + ldr w21, [x0,#:lo12:.LANCHOR1+504] + mov w0, -1 + stp x19, x20, [sp,32] stp x23, x24, [sp,64] stp x25, x26, [sp,80] stp x27, x28, [sp,96] - cmn w5, #1 - mov w0, w5 - beq .L3184 + cmp w21, 1 + bne .L3247 cmp w4, 16 - mov x24, x3 - mov w27, w2 + mov x25, x3 + mov w26, w2 mov w20, w1 - bne .L3185 + bne .L3248 add w0, w1, 256 mov w1, w2 mov x2, x3 bl FtlVendorPartRead - b .L3184 -.L3185: - adrp x21, .LANCHOR0 - add w0, w1, w2 - add x1, x21, :lo12:.LANCHOR0 + b .L3247 +.L3248: + adrp x22, .LANCHOR0 + add x2, x22, :lo12:.LANCHOR0 + ldr w1, [x2,2584] + cmp w20, w1 + bcs .L3271 + cmp w26, w1 + bhi .L3271 + add w0, w20, w26 str w0, [x29,168] mov w0, -1 ldr w3, [x29,168] - ldr w2, [x1,2576] - cmp w3, w2 - bhi .L3184 - ldrh w0, [x1,2542] - sub w26, w3, #1 + cmp w3, w1 + bhi .L3247 + ldrh w0, [x2,2550] + sub w27, w3, #1 adrp x19, .LANCHOR2 udiv w1, w20, w0 str w1, [x29,172] - udiv w26, w26, w0 + udiv w27, w27, w0 ldr w0, [x29,172] - sub w25, w26, w0 + sub w21, w21, w0 add x0, x19, :lo12:.LANCHOR2 - add w25, w25, 1 - ldr w1, [x0,740] - add w1, w27, w1 - str w1, [x0,740] - ldr w1, [x0,712] - add w1, w25, w1 - str w1, [x0,712] + add w21, w21, w27 + ldr w1, [x0,748] + add w1, w26, w1 + str w1, [x0,748] + ldr w1, [x0,720] + add w1, w21, w1 + str w1, [x0,720] ldr w0, [x29,172] - mov w1, w26 + mov w1, w27 bl FtlCacheMetchLpa - cbz w0, .L3186 + cbz w0, .L3249 bl FtlCacheWriteBack -.L3186: +.L3249: mov w28, 0 - adrp x0, .LC143 - ldr w22, [x29,172] - add x0, x0, :lo12:.LC143 + adrp x0, .LC147 + ldr w23, [x29,172] + add x0, x0, :lo12:.LC147 str w28, [x29,156] - mov w23, w28 + mov w24, w28 str w28, [x29,152] str x0, [x29,112] -.L3187: - cbz w25, .L3231 - mov w0, w22 +.L3250: + cbz w21, .L3295 + mov w0, w23 add x1, x29, 188 mov w2, 0 bl log2phys ldr w3, [x29,188] cmn w3, #1 - bne .L3228 + bne .L3292 mov w3, 0 -.L3188: - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2542] +.L3251: + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,2550] cmp w3, w0 - bcs .L3192 - madd w0, w22, w0, w3 + bcs .L3255 + madd w0, w23, w0, w3 cmp w0, w20 - bcc .L3190 + bcc .L3253 ldr w1, [x29,168] cmp w0, w1 - bcs .L3190 + bcs .L3253 sub w0, w0, w20 mov w1, 0 ubfiz x0, x0, 9, 23 mov w2, 512 - add x0, x24, x0 + add x0, x25, x0 str x3, [x29,160] bl ftl_memset ldr x3, [x29,160] -.L3190: +.L3253: add w3, w3, 1 - b .L3188 -.L3228: + b .L3251 +.L3292: mov w0, 56 - umull x1, w23, w0 + umull x1, w24, w0 add x0, x19, :lo12:.LANCHOR2 - ldr x2, [x0,3584] + ldr x2, [x0,3592] add x2, x2, x1 str w3, [x2,4] ldr w2, [x29,172] - cmp w22, w2 - ldr x2, [x0,3584] + cmp w23, w2 + ldr x2, [x0,3592] add x2, x2, x1 - bne .L3193 - ldr x0, [x0,3640] + bne .L3256 + ldr x0, [x0,3648] str x0, [x2,8] - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2542] + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,2550] udiv w3, w20, w0 msub w3, w3, w0, w20 str w3, [x29,128] sub w3, w0, w3 - cmp w3, w27 - csel w3, w3, w27, ls + cmp w3, w26 + csel w3, w3, w26, ls str w3, [x29,156] cmp w3, w0 - bne .L3194 - str x24, [x2,8] - b .L3194 -.L3193: - cmp w22, w26 - bne .L3195 - ldr x0, [x0,3648] + bne .L3257 + str x25, [x2,8] + b .L3257 +.L3256: + cmp w23, w27 + bne .L3258 + ldr x0, [x0,3656] str x0, [x2,8] - add x0, x21, :lo12:.LANCHOR0 + add x0, x22, :lo12:.LANCHOR0 ldr w4, [x29,168] - ldrh w3, [x0,2542] - mul w0, w22, w3 + ldrh w3, [x0,2550] + mul w0, w23, w3 sub w28, w4, w0 cmp w28, w3 - bne .L3194 - b .L3229 -.L3195: - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2542] - mul w0, w22, w0 -.L3229: + bne .L3257 + b .L3293 +.L3258: + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,2550] + mul w0, w23, w0 +.L3293: sub w0, w0, w20 ubfiz x0, x0, 9, 23 - add x0, x24, x0 + add x0, x25, x0 str x0, [x2,8] -.L3194: +.L3257: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,3584] - ldr x2, [x2,3664] + ldr x0, [x2,3592] + ldr x2, [x2,3672] add x1, x0, x1 - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2548] - str w22, [x1,24] - mul w0, w23, w0 - add w23, w23, 1 + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,2556] + str w23, [x1,24] + mul w0, w24, w0 + add w24, w24, 1 and x0, x0, 4294967292 add x0, x2, x0 str x0, [x1,16] -.L3192: - subs w25, w25, #1 - add w22, w22, 1 - beq .L3196 - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2468] - cmp w23, w0, lsl 3 - bne .L3187 -.L3196: - cbz w23, .L3187 +.L3255: + subs w21, w21, #1 + add w23, w23, 1 + beq .L3259 + add x0, x22, :lo12:.LANCHOR0 + ldrh w0, [x0,2472] + cmp w24, w0, lsl 3 + bne .L3250 +.L3259: + cbz w24, .L3250 add x0, x19, :lo12:.LANCHOR2 - mov w1, w23 + mov w1, w24 mov w2, 0 - ldr x0, [x0,3584] + ldr x0, [x0,3592] bl FlashReadPages str xzr, [x29,160] ldr x0, [x29,128] @@ -20401,70 +20802,70 @@ ftl_read: str w0, [x29,124] lsl w0, w28, 9 str w0, [x29,120] -.L3198: +.L3261: ldr w0, [x29,160] - cmp w23, w0 - bls .L3232 + cmp w24, w0 + bls .L3296 ldr x0, [x29,160] add x2, x19, :lo12:.LANCHOR2 mov x1, 56 ldr w3, [x29,172] mul x8, x0, x1 - ldr x0, [x2,3584] + ldr x0, [x2,3592] add x0, x0, x8 ldr w1, [x0,24] cmp w1, w3 - bne .L3199 - ldr x1, [x0,8] - ldr x0, [x2,3640] - cmp x1, x0 - bne .L3200 - ldr x2, [x29,144] - mov x0, x24 - str x8, [x29,104] - add x1, x1, x2 - ldr w2, [x29,124] - b .L3230 -.L3199: - cmp w1, w26 - bne .L3200 + bne .L3262 ldr x1, [x0,8] ldr x0, [x2,3648] cmp x1, x0 - bne .L3200 - add x0, x21, :lo12:.LANCHOR0 + bne .L3263 + ldr x2, [x29,144] + mov x0, x25 + str x8, [x29,104] + add x1, x1, x2 + ldr w2, [x29,124] + b .L3294 +.L3262: + cmp w1, w27 + bne .L3263 + ldr x1, [x0,8] + ldr x0, [x2,3656] + cmp x1, x0 + bne .L3263 + add x0, x22, :lo12:.LANCHOR0 ldr w2, [x29,120] str x8, [x29,104] - ldrh w0, [x0,2542] - mul w0, w26, w0 + ldrh w0, [x0,2550] + mul w0, w27, w0 sub w0, w0, w20 ubfiz x0, x0, 9, 23 - add x0, x24, x0 -.L3230: + add x0, x25, x0 +.L3294: bl ftl_memcpy ldr x8, [x29,104] -.L3200: +.L3263: add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,3584] + ldr x1, [x0,3592] add x2, x1, x8 ldr w3, [x1,x8] cmn w3, #1 - bne .L3201 - ldr w1, [x0,920] + bne .L3264 + ldr w1, [x0,928] str w3, [x29,152] add w1, w1, 1 - str w1, [x0,920] -.L3201: + str w1, [x0,928] +.L3264: ldr x0, [x2,16] ldr w1, [x2,24] ldr w0, [x0,8] cmp w1, w0 - beq .L3202 + beq .L3265 add x0, x19, :lo12:.LANCHOR2 str x8, [x29,104] - ldr w1, [x0,920] + ldr w1, [x0,928] add w1, w1, 1 - str w1, [x0,920] + str w1, [x0,928] ldr x7, [x2,8] ldr x6, [x2,16] ldr w0, [x7,4] @@ -20479,35 +20880,38 @@ ftl_read: ldr w7, [x7] bl printk ldr x8, [x29,104] -.L3202: +.L3265: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,3584] + ldr x0, [x0,3592] add x1, x0, x8 ldr w0, [x0,x8] cmp w0, 256 - bne .L3203 + bne .L3266 ldr w0, [x1,4] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3203: +.L3266: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L3198 -.L3232: - mov w23, 0 - b .L3187 -.L3231: + b .L3261 +.L3296: + mov w24, 0 + b .L3250 +.L3295: add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,1456] - cbz w0, .L3206 - mov w0, w25 + ldrh w0, [x19,1464] + cbz w0, .L3269 + mov w0, w21 mov w1, 1 bl ftl_do_gc -.L3206: +.L3269: ldr w0, [x29,152] -.L3184: + b .L3247 +.L3271: + mov w0, -1 +.L3247: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -20552,10 +20956,10 @@ FlashBootVendorRead: ldr x0, [x29,40] ldr w3, [x3,#:lo12:.LANCHOR1+504] cmp w3, 1 - bne .L3235 + bne .L3299 bl ftl_vendor_read mov w19, w0 -.L3235: +.L3299: bl rknand_device_unlock mov w0, w19 ldr x19, [sp,16] @@ -20630,80 +21034,80 @@ FtlInit: adrp x19, .LANCHOR2 add x21, x21, :lo12:.LANCHOR0 str w0, [x22,504] - adrp x0, .LANCHOR5+1476 + adrp x0, .LANCHOR5+1484 add x19, x19, :lo12:.LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR5+1476] + str wzr, [x0,#:lo12:.LANCHOR5+1484] adrp x0, .LC75 add x0, x0, :lo12:.LC75 - str wzr, [x19,416] + str wzr, [x19,424] bl printk - add x0, x21, 168 + add x0, x21, 176 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh w0, [x21,2472] + ldrh w0, [x21,2476] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3241 - adrp x0, .LC155 - add x0, x0, :lo12:.LC155 - b .L3255 -.L3241: + cbz w0, .L3305 + adrp x0, .LC160 + add x0, x0, :lo12:.LC160 + b .L3319 +.L3305: bl FtlSysBlkInit mov w20, w0 - cbz w0, .L3243 - adrp x0, .LC156 - add x0, x0, :lo12:.LC156 -.L3255: + cbz w0, .L3307 + adrp x0, .LC161 + add x0, x0, :lo12:.LC161 +.L3319: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 - add x1, x1, 120 + add x1, x1, 256 bl printk - b .L3242 -.L3243: + b .L3306 +.L3307: mov w1, 1 str w1, [x22,504] bl ftl_do_gc - ldrh w0, [x19,544] + ldrh w0, [x19,552] cmp w0, 15 - bhi .L3244 + bhi .L3308 mov w22, 65535 add w21, w0, 2 -.L3247: - ldrh w0, [x19,792] +.L3311: + ldrh w0, [x19,800] cmp w0, w22 - bne .L3245 - ldrh w0, [x19,1448] + bne .L3309 + ldrh w0, [x19,1456] cmp w0, w22 - bne .L3245 + bne .L3309 and w0, w20, 63 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3245: +.L3309: mov w0, 1 mov w1, w0 bl ftl_do_gc mov w0, 0 mov w1, 1 bl ftl_do_gc - ldrh w0, [x19,544] + ldrh w0, [x19,552] cmp w0, w21 - bhi .L3242 + bhi .L3306 add w20, w20, 1 cmp w20, 4096 - bne .L3247 - b .L3242 -.L3244: - ldrb w0, [x21,196] - cbz w0, .L3242 + bne .L3311 + b .L3306 +.L3308: + ldrb w0, [x21,204] + cbz w0, .L3306 mov w19, 128 -.L3249: +.L3313: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3249 -.L3242: + bne .L3313 +.L3306: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -20723,34 +21127,34 @@ rk_ftl_init: add x20, x20, :lo12:.LANCHOR5 bl ftl_malloc add x19, x19, :lo12:.LANCHOR4 - add x1, x20, 1488 - str x0, [x20,1480] - add x0, x19, 1584 - str xzr, [x19,1584] - str xzr, [x20,1488] + add x1, x20, 1496 + str x0, [x20,1488] + add x0, x19, 1592 + str xzr, [x19,1592] + str xzr, [x20,1496] bl rknand_get_reg_addr - ldr x1, [x19,1584] + ldr x1, [x19,1592] mov w0, -1 - cbz x1, .L3257 + cbz x1, .L3321 bl rk_nandc_irq_init mov w1, 0 - ldr x0, [x20,1480] + ldr x0, [x20,1488] mov w2, w1 mov w3, 2048 bl FlashSramLoadStore bl rknand_flash_cs_init - ldr x0, [x19,1584] + ldr x0, [x19,1592] bl FlashInit mov w19, w0 - cbnz w0, .L3258 + cbnz w0, .L3322 bl FtlInit -.L3258: - adrp x0, .LC157 +.L3322: + adrp x0, .LC162 mov w1, w19 - add x0, x0, :lo12:.LC157 + add x0, x0, :lo12:.LC162 bl printk mov w0, w19 -.L3257: +.L3321: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -20768,104 +21172,104 @@ ftl_fix_nand_power_lost_error: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldrb w0, [x0,196] - cbz w0, .L3261 + ldrb w0, [x0,204] + cbz w0, .L3325 adrp x21, .LANCHOR5 adrp x19, .LANCHOR2 add x0, x21, :lo12:.LANCHOR5 add x24, x19, :lo12:.LANCHOR2 - adrp x25, .LC158 - add x27, x24, 552 - add x26, x24, 600 - ldrh w23, [x0,1320] - add x0, x25, :lo12:.LC158 - ldr x2, [x24,512] + adrp x25, .LC163 + add x27, x24, 560 + add x26, x24, 608 + ldrh w23, [x0,1328] + add x0, x25, :lo12:.LC163 + ldr x2, [x24,520] ubfiz x22, x23, 1, 16 mov w1, w23 ldrh w2, [x2,x22] bl printk - ldrh w0, [x24,552] + ldrh w0, [x24,560] bl FtlGcRefreshOpenBlock - ldrh w0, [x24,600] + ldrh w0, [x24,608] mov w24, 4097 bl FtlGcRefreshOpenBlock mov x0, x27 bl allocate_new_data_superblock mov x0, x26 bl allocate_new_data_superblock -.L3263: +.L3327: subs w24, w24, #1 - beq .L3267 + beq .L3331 mov w0, 1 mov w1, w0 bl ftl_do_gc add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,512] + ldr x0, [x0,520] ldrh w0, [x0,x22] - cbnz w0, .L3263 -.L3267: + cbnz w0, .L3327 +.L3331: add x24, x19, :lo12:.LANCHOR2 - add x0, x25, :lo12:.LC158 + add x0, x25, :lo12:.LC163 mov w1, w23 - ldr x2, [x24,512] + ldr x2, [x24,520] ldrh w2, [x2,x22] bl printk - ldr x0, [x24,512] + ldr x0, [x24,520] ldrh w0, [x0,x22] - cbnz w0, .L3265 + cbnz w0, .L3329 add x0, x29, 96 add x20, x20, :lo12:.LANCHOR0 strh w23, [x29,96] bl make_superblock mov x0, 0 - ldrh w5, [x20,2468] + ldrh w5, [x20,2472] mov w6, 65535 mov w20, w0 mov w7, 56 -.L3268: +.L3332: cmp w5, w0, uxth - bls .L3275 + bls .L3339 add x1, x29, 96 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w6 - beq .L3269 + beq .L3333 add x4, x19, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x1, w20, w7 add w20, w20, 1 - ldr x3, [x4,424] + ldr x3, [x4,432] uxth w20, w20 add x3, x3, x1 str w2, [x3,4] - ldr x2, [x4,424] + ldr x2, [x4,432] add x1, x2, x1 str xzr, [x1,8] str xzr, [x1,16] -.L3269: +.L3333: add x0, x0, 1 - b .L3268 -.L3275: + b .L3332 +.L3339: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC159 + adrp x0, .LC164 mov w1, w23 - add x0, x0, :lo12:.LC159 - ldr x2, [x19,512] + add x0, x0, :lo12:.LC164 + ldr x2, [x19,520] ldrh w2, [x2,x22] bl printk - ldr x0, [x19,424] + ldr x0, [x19,432] mov w1, 0 mov w2, w20 bl FlashEraseBlocks - ldr x0, [x19,424] + ldr x0, [x19,432] mov w1, 1 mov w2, w20 bl FlashEraseBlocks -.L3265: +.L3329: add x21, x21, :lo12:.LANCHOR5 mov w0, -1 - strh w0, [x21,1320] -.L3261: + strh w0, [x21,1328] +.L3325: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20903,66 +21307,70 @@ ftl_write: stp x27, x28, [sp,80] mov x26, x3 str x1, [x29,176] - ldr w3, [x2,416] - cbnz w3, .L3278 + ldr w3, [x2,424] + cbnz w3, .L3342 adrp x1, .LANCHOR1 str x1, [x29,152] add x3, x1, :lo12:.LANCHOR1 ldr w3, [x3,504] - cmn w3, #1 - beq .L3278 + cmp w3, 1 + bne .L3342 cmp w4, 16 - bne .L3279 + bne .L3343 add w0, w23, 256 mov w1, w25 mov x2, x26 bl FtlVendorPartWrite - b .L3278 -.L3279: + b .L3342 +.L3343: adrp x21, .LANCHOR0 - add w3, w23, w25 add x4, x21, :lo12:.LANCHOR0 + ldr w1, [x4,2584] + cmp w23, w1 + bcs .L3385 + cmp w25, w1 + bhi .L3385 + add w3, w23, w25 mov w0, -1 - ldr w1, [x4,2576] cmp w3, w1 - bhi .L3278 + bhi .L3342 adrp x5, .LANCHOR5 - ldrh w1, [x4,2542] + ldrh w1, [x4,2550] add x22, x5, :lo12:.LANCHOR5 sub w3, w3, #1 mov w0, 2048 str x5, [x29,144] udiv w27, w23, w1 cmp w25, w1, lsl 1 - str w0, [x22,1496] + str w0, [x22,1504] udiv w0, w3, w1 - ldr w3, [x4,2592] + ldr w3, [x4,2600] str w0, [x29,208] sub w24, w0, w27 add w20, w24, 1 - ldr w0, [x2,720] + ldr w0, [x2,728] add w0, w20, w0 - str w0, [x2,720] - ldr w0, [x2,736] + str w0, [x2,728] + ldr w0, [x2,744] add w0, w25, w0 - str w0, [x2,736] + str w0, [x2,744] cset w0, cs str w0, [x29,212] - cbz w3, .L3281 + cbz w3, .L3345 mov w0, 56 sub w3, w3, #1 umull x3, w3, w0 - ldr x0, [x4,2600] + ldr x0, [x4,2608] add x3, x0, x3 ldr w0, [x3,24] cmp w27, w0 - bne .L3282 - ldr w0, [x2,724] + bne .L3346 + ldr w0, [x2,732] add w0, w0, 1 - str w0, [x2,724] - ldr w0, [x22,1500] + str w0, [x2,732] + ldr w0, [x22,1508] add w0, w0, 1 - str w0, [x22,1500] + str w0, [x22,1508] msub w0, w27, w1, w23 sub w1, w1, w0 ubfiz x0, x0, 9, 23 @@ -20974,90 +21382,90 @@ ftl_write: mov w2, w20 mov x1, x26 bl ftl_memcpy - cbnz w24, .L3283 - ldr w0, [x22,1500] + cbnz w24, .L3347 + ldr w0, [x22,1508] cmp w0, 2 - bgt .L3283 -.L3317: + bgt .L3347 +.L3381: mov w0, 0 - b .L3278 -.L3283: + b .L3342 +.L3347: add x26, x26, x20 sub w25, w25, w19 add w23, w23, w19 add w27, w27, 1 mov w20, w24 -.L3282: +.L3346: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,1500] -.L3281: + str wzr, [x0,1508] +.L3345: ldr w1, [x29,208] mov w0, w27 bl FtlCacheMetchLpa - cbz w0, .L3284 + cbz w0, .L3348 bl FtlCacheWriteBack -.L3284: +.L3348: ldr x0, [x29,144] ldr x1, [x29,176] add x0, x0, :lo12:.LANCHOR5 str w27, [x29,192] add x24, x1, :lo12:.LANCHOR2 - add x22, x24, 552 + add x22, x24, 560 str x22, [x29,184] - str x22, [x0,1464] - adrp x0, .LC160 - add x0, x0, :lo12:.LC160 + str x22, [x0,1472] + adrp x0, .LC165 + add x0, x0, :lo12:.LC165 str x0, [x29,104] -.L3285: - cbz w20, .L3348 +.L3349: + cbz w20, .L3413 ldrh w0, [x22,4] - cbnz w0, .L3286 + cbnz w0, .L3350 ldr x1, [x29,184] cmp x22, x1 - bne .L3287 - add x0, x24, 600 + bne .L3351 + add x0, x24, 608 ldrh w19, [x0,4] - cbnz w19, .L3288 + cbnz w19, .L3352 bl allocate_new_data_superblock ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR1 - str w19, [x0,3364] -.L3288: + str w19, [x0,3460] +.L3352: ldr x0, [x29,184] - add x22, x24, 600 + add x22, x24, 608 bl allocate_new_data_superblock ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR1 - ldr w0, [x0,3364] - cbnz w0, .L3289 -.L3290: + ldr w0, [x0,3460] + cbnz w0, .L3353 +.L3354: ldr x22, [x29,184] - b .L3289 -.L3287: + b .L3353 +.L3351: ldr x1, [x29,152] add x1, x1, :lo12:.LANCHOR1 - str w0, [x1,3364] + str w0, [x1,3460] ldr x0, [x29,184] ldrh w0, [x0,4] - cbnz w0, .L3290 + cbnz w0, .L3354 mov x0, x22 bl allocate_new_data_superblock -.L3289: +.L3353: ldrh w0, [x22,4] - cbnz w0, .L3291 + cbnz w0, .L3355 mov x0, x22 bl allocate_new_data_superblock -.L3291: +.L3355: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR5 - str x22, [x0,1464] -.L3286: + str x22, [x0,1472] +.L3350: add x2, x21, :lo12:.LANCHOR0 - ldr w0, [x24,3580] + ldr w0, [x24,3588] ldrh w1, [x22,4] str xzr, [x29,200] - ldr w2, [x2,2592] + ldr w2, [x2,2600] sub w0, w0, w2 cmp w1, w0 csel w0, w1, w0, ls @@ -21069,29 +21477,29 @@ ftl_write: str w0, [x29,116] add w0, w25, w23 str w0, [x29,136] -.L3292: +.L3356: ldr w0, [x29,200] ldr w2, [x29,140] ldr w1, [x29,192] cmp w0, w2 add w28, w1, w0 - bcs .L3349 + bcs .L3414 ldrh w1, [x22,4] - cbz w1, .L3324 + cbz w1, .L3389 ldr w1, [x29,208] cmp w28, w1 cset w6, eq - cbz w0, .L3294 + cbz w0, .L3358 ldr w1, [x29,116] tst w6, w1 - beq .L3294 + beq .L3358 add x1, x21, :lo12:.LANCHOR0 ldr w2, [x29,136] - ldrh w1, [x1,2542] + ldrh w1, [x1,2550] msub w2, w28, w1, w2 cmp w2, w1 - bne .L3324 -.L3294: + bne .L3389 +.L3358: add x1, x29, 228 mov w2, 0 mov w0, w28 @@ -21100,29 +21508,29 @@ ftl_write: bl log2phys mov x0, x22 bl get_new_active_ppa - ldr w5, [x19,2592] + ldr w5, [x19,2600] mov w4, 56 - ldr x2, [x19,2600] + ldr x2, [x19,2608] str x4, [x29,160] umull x1, w5, w4 add x2, x2, x1 str w0, [x2,4] - ldrh w2, [x19,2548] - ldr x0, [x19,2600] + ldrh w2, [x19,2556] + ldr x0, [x19,2608] add x1, x0, x1 mul w0, w2, w5 and x0, x0, 4294967292 str x0, [x29,128] - ldr x0, [x24,3672] + ldr x0, [x24,3680] ldr x3, [x29,128] str x0, [x29,120] add x0, x0, x3 str x0, [x29,216] str x0, [x1,16] - ldrh w0, [x19,2546] + ldrh w0, [x19,2554] str w28, [x1,24] mul w0, w0, w5 - ldr x5, [x24,3632] + ldr x5, [x24,3640] and x0, x0, 4294967292 add x0, x5, x0 str x0, [x1,8] @@ -21132,65 +21540,65 @@ ftl_write: cmp w28, w27 cset w0, eq str w0, [x29,196] - cbnz w0, .L3328 + cbnz w0, .L3393 ldr x6, [x29,96] ldr x4, [x29,160] - cbz w6, .L3295 + cbz w6, .L3359 ldr w0, [x29,136] - ldrh w19, [x19,2542] + ldrh w19, [x19,2550] msub w19, w28, w19, w0 ldr w0, [x29,196] str w0, [x29,160] uxth w19, w19 - b .L3298 -.L3328: - ldrh w19, [x19,2542] + b .L3362 +.L3393: + ldrh w19, [x19,2550] udiv w0, w23, w19 msub w0, w0, w19, w23 str w0, [x29,160] sub w19, w19, w0 cmp w19, w25 csel w19, w19, w25, ls -.L3298: +.L3362: add x2, x21, :lo12:.LANCHOR0 - ldrh w0, [x2,2542] + ldrh w0, [x2,2550] cmp w19, w0 - bne .L3299 + bne .L3363 ldr w0, [x29,196] mov x1, x26 - cbnz w0, .L3300 + cbnz w0, .L3364 mul w1, w19, w28 sub w1, w1, w23 ubfiz x1, x1, 9, 23 add x1, x26, x1 -.L3300: +.L3364: ldr w2, [x29,212] mov w0, 56 add x4, x21, :lo12:.LANCHOR0 - cbz w2, .L3301 - ldr w2, [x4,2592] + cbz w2, .L3365 + ldr w2, [x4,2600] umull x0, w2, w0 - ldr x2, [x4,2600] + ldr x2, [x4,2608] add x0, x2, x0 - b .L3346 -.L3301: - ldr w2, [x4,2592] + b .L3411 +.L3365: + ldr w2, [x4,2600] umull x0, w2, w0 - ldr x2, [x4,2600] + ldr x2, [x4,2608] add x0, x2, x0 - ldrh w2, [x4,2546] + ldrh w2, [x4,2554] ldr x0, [x0,8] - b .L3347 -.L3299: + b .L3412 +.L3363: ldr w0, [x29,228] cmn w0, #1 - beq .L3303 + beq .L3367 str w0, [x29,236] mov w1, 56 - ldr w0, [x2,2592] + ldr w0, [x2,2600] str w28, [x29,256] umull x0, w0, w1 - ldr x1, [x2,2600] + ldr x1, [x2,2608] mov w2, 0 add x0, x1, x0 ldr x1, [x0,8] @@ -21202,195 +21610,197 @@ ftl_write: bl FlashReadPages ldr w0, [x29,232] cmn w0, #1 - bne .L3304 - ldr w0, [x24,920] + bne .L3368 + ldr w0, [x24,928] add w0, w0, 1 - str w0, [x24,920] - b .L3306 -.L3304: + str w0, [x24,928] + b .L3370 +.L3368: ldr x0, [x29,216] ldr w0, [x0,8] cmp w0, w28 - beq .L3306 - ldr w0, [x24,920] + beq .L3370 + ldr w0, [x24,928] mov w2, w28 ldr x1, [x29,216] add w0, w0, 1 - str w0, [x24,920] + str w0, [x24,928] ldr x0, [x29,104] ldr w1, [x1,8] bl printk - b .L3306 -.L3303: - ldr w0, [x2,2592] + b .L3370 +.L3367: + ldr w0, [x2,2600] mov w1, 56 umull x0, w0, w1 - ldr x1, [x2,2600] - ldrh w2, [x2,2546] + ldr x1, [x2,2608] + ldrh w2, [x2,2554] add x0, x1, x0 mov w1, 0 ldr x0, [x0,8] bl ftl_memset -.L3306: +.L3370: ldr w1, [x29,196] mov w0, 56 lsl w2, w19, 9 - cbz w1, .L3307 + cbz w1, .L3371 add x1, x21, :lo12:.LANCHOR0 - ldr w4, [x1,2592] + ldr w4, [x1,2600] umull x0, w4, w0 - ldr x4, [x1,2600] + ldr x4, [x1,2608] add x4, x4, x0 ldr x0, [x29,160] ubfiz x0, x0, 9, 23 ldr x1, [x4,8] add x0, x1, x0 mov x1, x26 - b .L3347 -.L3307: + b .L3412 +.L3371: add x5, x21, :lo12:.LANCHOR0 - ldr w4, [x5,2592] - ldr x1, [x5,2600] + ldr w4, [x5,2600] + ldr x1, [x5,2608] umull x0, w4, w0 add x0, x1, x0 - ldrh w1, [x5,2542] + ldrh w1, [x5,2550] mul w1, w28, w1 ldr x0, [x0,8] sub w1, w1, w23 ubfiz x1, x1, 9, 23 add x1, x26, x1 - b .L3347 -.L3295: + b .L3412 +.L3359: ldr w0, [x29,212] - ldrh w1, [x19,2542] - ldr w2, [x19,2592] - cbz w0, .L3308 + ldrh w1, [x19,2550] + ldr w2, [x19,2600] + cbz w0, .L3372 mul w1, w28, w1 umull x0, w2, w4 sub w1, w1, w23 - ldr x2, [x19,2600] + ldr x2, [x19,2608] ubfiz x1, x1, 9, 23 add x0, x2, x0 add x1, x26, x1 -.L3346: +.L3411: str x1, [x0,8] - b .L3302 -.L3308: + b .L3366 +.L3372: umull x0, w2, w4 - ldr x2, [x19,2600] + ldr x2, [x19,2608] mul w1, w28, w1 add x0, x2, x0 - ldrh w2, [x19,2546] + ldrh w2, [x19,2554] sub w1, w1, w23 ubfiz x1, x1, 9, 23 ldr x0, [x0,8] add x1, x26, x1 -.L3347: +.L3412: bl ftl_memcpy -.L3302: +.L3366: ldr x1, [x29,120] mov w0, -3947 ldr x2, [x29,128] strh w0, [x1,x2] ldr x1, [x29,216] - ldr w0, [x24,748] + ldr w0, [x24,756] str w0, [x1,4] add w0, w0, 1 cmn w0, #1 str w28, [x1,8] csel w0, w0, wzr, ne - str w0, [x24,748] + str w0, [x24,756] ldr w0, [x29,228] str w0, [x1,12] ldrh w0, [x22] strh w0, [x1,2] add x1, x21, :lo12:.LANCHOR0 - ldr w0, [x1,2592] + ldr w0, [x1,2600] add w0, w0, 1 - str w0, [x1,2592] + str w0, [x1,2600] ldr x0, [x29,200] add x0, x0, 1 str x0, [x29,200] - b .L3292 -.L3349: + b .L3356 +.L3414: str w28, [x29,192] mov x0, x2 - b .L3293 -.L3324: + b .L3357 +.L3389: str w28, [x29,192] -.L3293: +.L3357: sub w20, w20, w0 ldr w0, [x29,212] - cbnz w0, .L3312 + cbnz w0, .L3376 add x0, x21, :lo12:.LANCHOR0 - ldr w1, [x0,2592] - ldr w0, [x24,3580] + ldr w1, [x0,2600] + ldr w0, [x24,3588] cmp w1, w0 - bcs .L3312 + bcs .L3376 ldrh w0, [x22,4] - cbz w0, .L3312 -.L3314: + cbz w0, .L3376 +.L3378: str wzr, [x29,212] - b .L3285 -.L3312: + b .L3349 +.L3376: bl FtlCacheWriteBack add x0, x21, :lo12:.LANCHOR0 cmp w20, 1 - str wzr, [x0,2592] - bhi .L3285 - b .L3314 -.L3348: + str wzr, [x0,2600] + bhi .L3349 + b .L3378 +.L3413: ldr w1, [x29,208] mov w0, w20 sub w1, w1, w27 bl ftl_do_gc ldr x0, [x29,176] add x0, x0, :lo12:.LANCHOR2 - ldrh w0, [x0,544] + ldrh w0, [x0,552] cmp w0, 5 - bls .L3316 + bls .L3380 cmp w0, 31 - bhi .L3317 + bhi .L3381 add x21, x21, :lo12:.LANCHOR0 ldrb w0, [x21,72] - cbnz w0, .L3317 -.L3316: + cbnz w0, .L3381 +.L3380: ldr x0, [x29,176] mov w21, 65535 mov w22, 128 add x19, x0, :lo12:.LANCHOR2 -.L3339: - ldrh w0, [x19,792] +.L3404: + ldrh w0, [x19,800] cmp w0, w21 - bne .L3318 - ldrh w0, [x19,1448] + bne .L3382 + ldrh w0, [x19,1456] cmp w0, w21 - bne .L3318 - ldrh w0, [x19,1450] + bne .L3382 + ldrh w0, [x19,1458] cmp w0, w21 - bne .L3318 + bne .L3382 and w0, w20, 7 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3318: +.L3382: mov w0, 1 - strh w22, [x19,1362] + strh w22, [x19,1370] mov w1, w0 - strh w22, [x19,1360] + strh w22, [x19,1368] bl ftl_do_gc mov w0, 0 mov w1, 1 bl ftl_do_gc - ldr w0, [x19,416] - cbnz w0, .L3317 - ldrh w0, [x19,544] + ldr w0, [x19,424] + cbnz w0, .L3381 + ldrh w0, [x19,552] cmp w0, 2 - bhi .L3317 + bhi .L3381 add w20, w20, 1 cmp w20, 256 - bne .L3339 - b .L3317 -.L3278: + bne .L3404 + b .L3381 +.L3385: + mov w0, -1 +.L3342: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -21433,10 +21843,10 @@ FlashBootVendorWrite: ldr x0, [x29,40] ldr w3, [x3,#:lo12:.LANCHOR1+504] cmp w3, 1 - bne .L3352 + bne .L3417 bl ftl_vendor_write mov w19, w0 -.L3352: +.L3417: bl rknand_device_unlock mov w0, w19 ldr x19, [sp,16] @@ -21493,22 +21903,22 @@ FtlDumpSysBlock: uxth w23, w0 add x0, x21, :lo12:.LANCHOR2 str x25, [sp,80] - add x19, x19, 1696 - adrp x22, .LC161 - adrp x24, .LC162 + add x19, x19, 1704 + adrp x22, .LC166 + adrp x24, .LC167 lsl w25, w23, 10 - ldr x1, [x0,3608] + ldr x1, [x0,3616] mov w20, 0 - ldr x0, [x0,3656] - add x22, x22, :lo12:.LC161 + ldr x0, [x0,3664] + add x22, x22, :lo12:.LC166 str x1, [x19,8] - add x24, x24, :lo12:.LC162 + add x24, x24, :lo12:.LC167 str x0, [x19,16] -.L3357: - adrp x0, .LANCHOR0+2538 - ldrh w0, [x0,#:lo12:.LANCHOR0+2538] +.L3422: + adrp x0, .LANCHOR0+2546 + ldrh w0, [x0,#:lo12:.LANCHOR0+2546] cmp w20, w0 - bge .L3363 + bge .L3428 mov w1, 1 orr w0, w20, w25 mov w2, w1 @@ -21531,18 +21941,18 @@ FtlDumpSysBlock: ldr x0, [x19,16] ldr w0, [x0] cmn w0, #1 - beq .L3358 + beq .L3423 add x1, x21, :lo12:.LANCHOR2 mov x0, x24 mov w2, 4 mov w3, 768 - ldr x1, [x1,3608] + ldr x1, [x1,3616] bl rknand_print_hex -.L3358: +.L3423: add w20, w20, 1 sxth w20, w20 - b .L3357 -.L3363: + b .L3422 +.L3428: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -21566,26 +21976,26 @@ dump_map_info: stp x25, x26, [sp,80] stp x21, x22, [sp,48] stp x27, x28, [sp,96] - adrp x23, .LC163 + adrp x23, .LC168 mov w25, 56 - ldrh w21, [x0,2476] + ldrh w21, [x0,2480] adrp x24, .LANCHOR2 mov w26, 4 - add x23, x23, :lo12:.LC163 -.L3365: + add x23, x23, :lo12:.LC168 +.L3430: add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,2478] + ldrh w0, [x2,2482] cmp w0, w21 - bls .L3378 + bls .L3443 mov x22, 0 - ldrh w5, [x2,2468] - ldrh w4, [x2,2548] + ldrh w5, [x2,2472] + ldrh w4, [x2,2556] mov w27, w22 mov x20, x2 -.L3374: +.L3439: cmp w5, w22, uxth - bls .L3379 - add x0, x20, 2496 + bls .L3444 + add x0, x20, 2504 mov w1, w21 str x4, [x29,96] str x5, [x29,104] @@ -21595,42 +22005,42 @@ dump_map_info: bl FtlBbmIsBadBlock ldr x5, [x29,104] ldr x4, [x29,96] - cbnz w0, .L3366 + cbnz w0, .L3431 add x3, x24, :lo12:.LANCHOR2 lsl w28, w28, 10 umull x0, w27, w25 mul w2, w27, w4 - ldr x1, [x3,3584] + ldr x1, [x3,3592] add w27, w27, 1 add x1, x1, x0 uxth w27, w27 sdiv w2, w2, w26 str w28, [x1,4] - ldr x1, [x3,3584] + ldr x1, [x3,3592] add x0, x1, x0 - ldr x1, [x3,1392] - str x1, [x0,8] ldr x1, [x3,1400] + str x1, [x0,8] + ldr x1, [x3,1408] add x2, x1, x2, sxtw 2 str x2, [x0,16] -.L3366: +.L3431: add x22, x22, 1 - b .L3374 -.L3379: - cbz w27, .L3369 + b .L3439 +.L3444: + cbz w27, .L3434 add x0, x24, :lo12:.LANCHOR2 mov w1, w27 mov w2, 1 mov x20, 0 adrp x22, .LANCHOR2 mov x28, 56 - ldr x0, [x0,3584] + ldr x0, [x0,3592] bl FlashReadPages -.L3370: +.L3435: cmp w27, w20, uxth - bls .L3369 + bls .L3434 add x0, x22, :lo12:.LANCHOR2 - ldr x3, [x0,3584] + ldr x3, [x0,3592] madd x3, x20, x28, x3 add x20, x20, 1 ldr x7, [x3,8] @@ -21646,36 +22056,36 @@ dump_map_info: ldr w7, [x7] ldr w6, [x6,12] bl printk - b .L3370 -.L3369: + b .L3435 +.L3434: add w21, w21, 1 uxth w21, w21 - b .L3365 -.L3378: + b .L3430 +.L3443: adrp x20, .LANCHOR4 - adrp x23, .LC110 + adrp x23, .LC112 add x20, x20, :lo12:.LANCHOR4 mov w22, 0 adrp x27, .LANCHOR2 - add x20, x20, 1696 - add x23, x23, :lo12:.LC110 -.L3373: + add x20, x20, 1704 + add x23, x23, :lo12:.LC112 +.L3438: add x21, x27, :lo12:.LANCHOR2 adrp x26, .LANCHOR2 - ldrh w0, [x21,3856] + ldrh w0, [x21,3864] cmp w22, w0 - bge .L3376 + bge .L3441 sbfiz x24, x22, 1, 32 mov w21, 0 -.L3377: +.L3442: add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2538] + ldrh w0, [x0,2546] cmp w21, w0 - bge .L3380 + bge .L3445 add x25, x26, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 - ldr x0, [x25,3712] + ldr x0, [x25,3720] ldrh w0, [x0,x24] orr w0, w21, w0, lsl 10 str w0, [x20,4] @@ -21684,7 +22094,7 @@ dump_map_info: bl FlashReadPages sxth w21, w21 ldr x0, [x20,8] - ldr x1, [x25,3712] + ldr x1, [x25,3720] ldr x7, [x20,16] ldr w2, [x0] ldrh w1, [x1,x24] @@ -21699,29 +22109,29 @@ dump_map_info: ldr w3, [x20,4] ldr w7, [x7,12] bl printk - b .L3377 -.L3380: + b .L3442 +.L3445: add w22, w22, 1 sxth w22, w22 - b .L3373 -.L3376: + b .L3438 +.L3441: add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x21,3712] - adrp x0, .LC164 + ldr x1, [x21,3720] + adrp x0, .LC169 mov w2, 2 - add x0, x0, :lo12:.LC164 - ldr w3, [x19,2564] - bl rknand_print_hex - ldr x1, [x21,3752] - adrp x0, .LC165 - ldrh w3, [x19,2572] - add x0, x0, :lo12:.LC165 - mov w2, 4 + add x0, x0, :lo12:.LC169 + ldr w3, [x19,2572] bl rknand_print_hex ldr x1, [x21,3760] - adrp x0, .LC166 - ldrh w3, [x19,2572] - add x0, x0, :lo12:.LC166 + adrp x0, .LC170 + ldrh w3, [x19,2580] + add x0, x0, :lo12:.LC170 + mov w2, 4 + bl rknand_print_hex + ldr x1, [x21,3768] + adrp x0, .LC171 + ldrh w3, [x19,2580] + add x0, x0, :lo12:.LC171 mov w2, 4 bl rknand_print_hex sub sp, x29, #16 @@ -21738,17 +22148,17 @@ dump_map_info: .global flash_boot_enter_slc_mode .type flash_boot_enter_slc_mode, %function flash_boot_enter_slc_mode: - adrp x1, .LANCHOR0+2384 + adrp x1, .LANCHOR0+2392 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+2384] + ldr w2, [x1,#:lo12:.LANCHOR0+2392] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L3381 + bne .L3446 bl flash_enter_slc_mode -.L3381: +.L3446: ldp x29, x30, [sp], 16 ret .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode @@ -21756,161 +22166,61 @@ flash_boot_enter_slc_mode: .global flash_boot_exit_slc_mode .type flash_boot_exit_slc_mode, %function flash_boot_exit_slc_mode: - adrp x1, .LANCHOR0+2384 + adrp x1, .LANCHOR0+2392 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+2384] + ldr w2, [x1,#:lo12:.LANCHOR0+2392] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L3383 + bne .L3448 bl flash_exit_slc_mode -.L3383: +.L3448: ldp x29, x30, [sp], 16 ret .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode .align 2 - .type IdBlockReadData, %function -IdBlockReadData: - stp x29, x30, [sp, -128]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - mov w23, w0 - ldr x0, [x19,1256] - stp x25, x26, [sp,64] - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - ldr w20, [x19,76] - mov w26, w1 - ldrb w27, [x0,9] - adrp x0, .LC167 - mov x21, x2 - add x0, x0, :lo12:.LC167 - mov w1, w23 - mov w2, w26 - mul w20, w20, w27 - bl printk - mov w25, 0 - mov w5, 4 - adrp x6, .LANCHOR4 - uxth w20, w20 - udiv w24, w23, w20 - msub w24, w24, w20, w23 - sub w28, w23, w24 - mul w3, w24, w27 - ubfx x3, x3, 2, 2 -.L3386: - cmp w25, w26 - bcs .L3392 - add w0, w25, w24 - add x1, x19, 200 - ubfx x0, x0, 2, 16 - sub w20, w5, w3 - uxth w20, w20 - ldrh w4, [x1,w0,sxtw 1] - ldrb w1, [x19,196] - cbz w1, .L3387 - ldr w2, [x19,2384] - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w2, w1 - csel w4, w4, w0, ne -.L3387: - ldr x0, [x19,1256] - add w3, w3, w28 - str x5, [x29,96] - madd w22, w4, w27, w3 - ldrb w1, [x0,9] - add x0, x6, :lo12:.LANCHOR4 - ldrb w4, [x19,2456] - str x6, [x29,120] - ldrb w0, [x0,1634] - str x4, [x29,112] - str x1, [x29,104] - bl FlashBchSel - mov w0, 0 - bl flash_boot_enter_slc_mode - ldr x1, [x29,104] - mov x2, x21 - mov x3, 0 - mov w0, 0 - udiv w1, w22, w1 - bl FlashReadPage - mov w0, 0 - bl flash_boot_exit_slc_mode - ldr x4, [x29,112] - mov w0, w4 - bl FlashBchSel - ubfiz x0, x20, 9, 16 - add w20, w20, w25 - add x21, x21, x0 - mov w3, 0 - uxth w25, w20 - ldr x5, [x29,96] - ldr x6, [x29,120] - b .L3386 -.L3392: - adrp x0, .LC168 - mov w1, w23 - mov w2, w26 - mov w3, 0 - add x0, x0, :lo12:.LC168 - bl printk - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret - .size IdBlockReadData, .-IdBlockReadData - .align 2 .global write_idblock .type write_idblock, %function write_idblock: stp x29, x30, [sp, -304]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR0 - mov x23, x2 + stp x25, x26, [sp,64] + adrp x25, .LANCHOR0 stp x19, x20, [sp,16] mov w19, w0 - add x0, x24, :lo12:.LANCHOR0 + add x0, x25, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - stp x25, x26, [sp,64] + stp x23, x24, [sp,48] stp x27, x28, [sp,80] mov x22, x1 - mov x28, x24 - ldr x1, [x0,1256] + mov x23, x2 + ldr x1, [x0,88] ldr w21, [x0,76] mov w0, 59392 movk w0, 0x3, lsl 16 ldrb w20, [x1,9] bl ftl_malloc - mov x26, x0 + mov x27, x0 mov w0, -1 - cbz x26, .L3431 + cbz x27, .L3493 add w19, w19, 511 lsr w19, w19, 9 cmp w19, 8 - bls .L3415 + bls .L3475 cmp w19, 500 - bhi .L3431 - b .L3395 -.L3415: + bhi .L3493 + b .L3452 +.L3475: mov w19, 8 -.L3395: +.L3452: ldr w2, [x22] mov w1, 35899 movk w1, 0xfcdc, lsl 16 mov w0, -1 cmp w2, w1 - bne .L3431 + bne .L3493 mul w21, w20, w21 mov w3, 0 mov w2, 63871 @@ -21919,12 +22229,12 @@ write_idblock: add w0, w21, w0 add w0, w0, w19 udiv w0, w0, w21 - str w0, [x29,224] + str w0, [x29,216] add x0, x22, 253952 add x0, x0, 1532 -.L3399: +.L3456: ldr w1, [x0] - cbnz w1, .L3396 + cbnz w1, .L3453 ldr w1, [x22,w3,uxtw 2] add w3, w3, 1 cmp w3, w4 @@ -21933,176 +22243,176 @@ write_idblock: csel w3, w3, wzr, cc cmp w2, 4096 sub x0, x0, #4 - bne .L3399 - b .L3398 -.L3396: - adrp x0, .LC169 - add x0, x0, :lo12:.LC169 + bne .L3456 + b .L3455 +.L3453: + adrp x0, .LC172 + add x0, x0, :lo12:.LC172 bl printk -.L3398: - adrp x0, .LC170 +.L3455: + adrp x0, .LC173 mov w3, 5 - add x20, x28, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC170 + add x20, x25, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LC173 mov x1, x23 mov w2, 4 adrp x24, .LANCHOR4 bl rknand_print_hex ldr w1, [x22,512] - adrp x0, .LC171 + adrp x0, .LC174 ldrb w2, [x20,73] - add x0, x0, :lo12:.LC171 + add x0, x0, :lo12:.LC174 bl printk add x4, x24, :lo12:.LANCHOR4 - adrp x0, .LC172 - ldrh w3, [x20,194] + adrp x0, .LC175 + ldrh w3, [x20,202] mov w1, w19 - add x0, x0, :lo12:.LC172 + add x0, x0, :lo12:.LC175 mov w2, w19 - ldr w4, [x4,1628] + ldr w4, [x4,1636] bl printk - str x24, [x29,208] + str x24, [x29,224] ldrb w0, [x20,73] ldr w1, [x22,512] cmp w1, w0 - bls .L3400 + bls .L3457 str w0, [x22,512] -.L3400: +.L3457: lsl w0, w19, 7 str w0, [x29,204] - adrp x0, .LC173 + adrp x0, .LC176 mov x20, 0 - add x0, x0, :lo12:.LC173 + add x0, x0, :lo12:.LC176 str x0, [x29,192] - adrp x0, .LC174 + adrp x0, .LC177 str w20, [x29,236] - add x0, x0, :lo12:.LC174 + add x0, x0, :lo12:.LC177 str x0, [x29,184] - adrp x0, .LC175 - add x0, x0, :lo12:.LC175 + adrp x0, .LC178 + add x0, x0, :lo12:.LC178 str x0, [x29,176] -.L3413: - add x0, x28, :lo12:.LANCHOR0 +.L3473: + add x0, x25, :lo12:.LANCHOR0 ldr w1, [x23,x20,lsl 2] str w20, [x29,232] ldrb w0, [x0,73] cmp w1, w0 - bcs .L3401 - ldr x0, [x29,208] + bcs .L3458 + ldr x0, [x29,224] add x0, x0, :lo12:.LANCHOR4 - ldr w0, [x0,1628] + ldr w0, [x0,1636] cmp w1, w0 - bcc .L3401 - ldr w0, [x29,224] + bcc .L3458 + ldr w0, [x29,216] cmp w0, 1 cset w0, hi - str w0, [x29,228] + str w0, [x29,220] uxtw x0, w20 - cbz w0, .L3402 - ldr w0, [x29,228] - cbz w0, .L3402 + cbz w0, .L3459 + ldr w0, [x29,220] + cbz w0, .L3459 uxtw x0, w20 sub w0, w0, #1 ldr w0, [x23,x0,lsl 2] add w0, w0, 1 cmp w1, w0 - beq .L3401 -.L3402: + beq .L3458 +.L3459: mov w1, 0 mov x2, 512 - mov x0, x26 + mov x0, x27 bl memset ldr w24, [x23,x20,lsl 2] - add x0, x28, :lo12:.LANCHOR0 + add x0, x25, :lo12:.LANCHOR0 mov w2, w19 mul w24, w21, w24 - ldr x1, [x0,1256] - ldr w25, [x0,76] + ldr x1, [x0,88] + ldr w26, [x0,76] ldr x0, [x29,192] - ldrb w27, [x1,9] + ldrb w28, [x1,9] mov w1, w24 bl printk mov w0, 0 - mul w25, w25, w27 + mul w26, w26, w28 bl flash_boot_enter_slc_mode - udiv w1, w24, w27 + udiv w1, w24, w28 mov w2, 0 mov w0, 0 - uxth w25, w25 + uxth w26, w26 bl FlashEraseBlock - cmp w19, w25 + cmp w19, w26 mov w2, 1 - bls .L3403 + bls .L3460 mov w2, 0 mov w0, 0 - add w1, w24, w25 + add w1, w24, w26 bl FlashEraseBlock mov w2, 2 -.L3403: +.L3460: mov w0, 0 - str x2, [x29,216] + str x2, [x29,208] bl flash_boot_exit_slc_mode - add x4, x28, :lo12:.LANCHOR0 - ldr x2, [x29,216] - udiv w8, w24, w25 + add x4, x25, :lo12:.LANCHOR0 + ldr x2, [x29,208] + udiv w8, w24, w26 mov w6, 0 mov w10, 1073741823 mov w11, 61424 - ldr x1, [x4,1256] + ldr x1, [x4,88] ldrh w0, [x1,10] ldrb w5, [x1,12] lsl w0, w0, 2 - msub w8, w8, w25, w24 + msub w8, w8, w26, w24 mul w0, w0, w2 - mov x25, x22 + mov x26, x22 sdiv w5, w0, w5 sub w0, w24, w8 - str w0, [x29,216] -.L3404: + str w0, [x29,208] +.L3461: cmp w6, w5 - bcs .L3442 + bcs .L3505 add w0, w6, w8 lsr w0, w0, 2 uxth w1, w0 and w0, w0, 65535 - cbz w1, .L3405 + cbz w1, .L3462 add w2, w0, 1 - add x1, x4, 200 - ldrb w3, [x4,196] + add x1, x4, 208 + ldrb w3, [x4,204] ldrh w1, [x1,w2,sxtw 1] - cbz w3, .L3406 - ldr w7, [x4,2384] + cbz w3, .L3463 + ldr w7, [x4,2392] mov w3, 12336 movk w3, 0x5638, lsl 16 cmp w7, w3 csel w1, w1, w2, ne -.L3406: +.L3463: add w1, w1, w10 lsl w1, w1, 2 str w1, [x29,240] -.L3405: - add x1, x4, 200 +.L3462: + add x1, x4, 208 str w11, [x29,244] ldrh w7, [x1,w0,sxtw 1] - ldrb w1, [x4,196] - cbz w1, .L3407 - ldr w2, [x4,2384] + ldrb w1, [x4,204] + cbz w1, .L3464 + ldr w2, [x4,2392] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 csel w7, w7, w0, ne -.L3407: - ldr w0, [x29,216] - ldrb w12, [x4,2456] +.L3464: + ldr w0, [x29,208] + ldrb w12, [x4,2464] str x11, [x29,104] - madd w2, w7, w27, w0 - ldr x0, [x29,208] + madd w2, w7, w28, w0 + ldr x0, [x29,224] str x10, [x29,112] add x0, x0, :lo12:.LANCHOR4 str x6, [x29,120] str x8, [x29,128] str x5, [x29,136] - ldrb w0, [x0,1634] + ldrb w0, [x0,1642] str x7, [x29,144] str x12, [x29,160] str x2, [x29,152] @@ -22113,22 +22423,22 @@ write_idblock: ldr x4, [x29,168] add x3, x29, 240 ldr x2, [x29,152] - ldr x0, [x4,1256] + ldr x0, [x4,88] ldrb w1, [x0,9] mov w0, 0 udiv w1, w2, w1 - mov x2, x25 - add x25, x25, 2048 + mov x2, x26 + add x26, x26, 2048 bl FlashProgPage mov w0, 0 bl flash_boot_exit_slc_mode ldr x12, [x29,160] mov w0, w12 bl FlashBchSel - ldr w1, [x29,216] + ldr w1, [x29,208] mov w0, 0 ldr x7, [x29,144] - udiv w1, w1, w27 + udiv w1, w1, w28 add w2, w7, 1 bl FlashPageProgMsbFFData ldr x6, [x29,120] @@ -22139,61 +22449,151 @@ write_idblock: uxth w6, w6 ldr x5, [x29,136] ldr x4, [x29,168] - b .L3404 -.L3442: + b .L3461 +.L3505: ldr x0, [x29,184] mov w1, w24 mov w2, w19 mov w3, 0 + add x24, x25, :lo12:.LANCHOR0 bl printk - ldr w0, [x23,x20,lsl 2] - mov w1, w19 - mov x2, x26 - mul w0, w21, w0 - bl IdBlockReadData + ldr w5, [x23,x20,lsl 2] + mov w2, w19 + ldr x0, [x24,88] + ldr w26, [x24,76] + mul w5, w21, w5 + ldrb w7, [x0,9] + ldr x0, [x29,176] + mov w1, w5 + str x7, [x29,168] + mul w26, w26, w7 + str x5, [x29,208] + bl printk + ldr x5, [x29,208] + mov w12, 0 + uxth w26, w26 + ldr x7, [x29,168] + mov w11, 4 + udiv w8, w5, w26 + msub w8, w8, w26, w5 + mov x26, x27 + sub w10, w5, w8 + mul w0, w8, w7 + ubfx x0, x0, 2, 2 +.L3466: + cmp w12, w19 + bcs .L3506 + add w4, w12, w8 + add x1, x24, 208 + ubfx x4, x4, 2, 16 + sub w6, w11, w0 + uxth w6, w6 + ldrh w3, [x1,w4,sxtw 1] + ldrb w1, [x24,204] + cbz w1, .L3467 + ldr w2, [x24,2392] + mov w1, 12336 + movk w1, 0x5638, lsl 16 + cmp w2, w1 + csel w3, w3, w4, ne +.L3467: + add w0, w0, w10 + ldrb w4, [x24,2464] + str x11, [x29,112] + madd w28, w3, w7, w0 + ldr x0, [x24,88] + str x12, [x29,120] + str x6, [x29,128] + ldrb w1, [x0,9] + ldr x0, [x29,224] + str x8, [x29,136] + add x0, x0, :lo12:.LANCHOR4 + str x5, [x29,144] + str x10, [x29,152] + str x7, [x29,160] + ldrb w0, [x0,1642] + str x4, [x29,208] + str x1, [x29,168] + bl FlashBchSel + mov w0, 0 + bl flash_boot_enter_slc_mode + ldr x1, [x29,168] mov x2, x26 + mov x3, 0 + mov w0, 0 + udiv w1, w28, w1 + bl FlashReadPage + mov w0, 0 + bl flash_boot_exit_slc_mode + ldr x4, [x29,208] + mov w0, w4 + bl FlashBchSel + ldr x6, [x29,128] + ldr x12, [x29,120] + ubfiz x0, x6, 9, 16 + ldr x11, [x29,112] + add x26, x26, x0 + add w0, w6, w12 + ldr x8, [x29,136] + uxth w12, w0 + ldr x5, [x29,144] + mov w0, 0 + ldr x10, [x29,152] + ldr x7, [x29,160] + b .L3466 +.L3506: + adrp x0, .LC179 + mov w1, w5 + mov w2, w19 + add x0, x0, :lo12:.LC179 + mov w3, 0 + bl printk + mov x2, x27 mov x1, x22 mov x0, 0 -.L3409: +.L3469: ldr w4, [x29,204] mov w3, w0 cmp w0, w4 - bcs .L3443 - mov x27, x2 - mov x25, x1 + bcs .L3507 + mov x4, x2 + mov x26, x1 mov x24, x0 add x2, x2, 4 add x0, x0, 1 add x1, x1, 4 - ldr w5, [x27] - ldr w4, [x25] - cmp w5, w4 - beq .L3409 + ldr w6, [x4] + ldr w5, [x26] + cmp w6, w5 + beq .L3469 mov w1, 0 mov x2, 512 - mov x0, x26 - str x3, [x29,216] + mov x0, x27 + str x4, [x29,168] + str x3, [x29,208] and x24, x24, -256 bl memset lsl x24, x24, 2 - ldr w4, [x27] - ldr w5, [x25] + ldr x4, [x29,168] + adrp x0, .LC180 + ldr w5, [x26] + add x0, x0, :lo12:.LC180 ldr w1, [x29,232] + ldr w4, [x4] ldr w2, [x23,x20,lsl 2] - ldr x3, [x29,216] - ldr x0, [x29,176] + ldr x3, [x29,208] bl printk - adrp x0, .LC176 + adrp x0, .LC181 add x1, x22, x24 - add x0, x0, :lo12:.LC176 + add x0, x0, :lo12:.LC181 mov w2, 4 mov w3, 256 bl rknand_print_hex - adrp x0, .LC177 - add x1, x26, x24 + adrp x0, .LC182 + add x1, x27, x24 mov w2, 4 mov w3, 256 - add x0, x0, :lo12:.LC177 + add x0, x0, :lo12:.LC182 bl rknand_print_hex mov w0, 0 bl flash_boot_enter_slc_mode @@ -22202,35 +22602,35 @@ write_idblock: mov w2, 0 mul w1, w21, w1 bl FlashEraseBlock - ldr w0, [x29,228] - cbz w0, .L3410 + ldr w0, [x29,220] + cbz w0, .L3470 ldr w1, [x23,x20,lsl 2] mov w0, 0 mov w2, 0 madd w1, w1, w21, w21 bl FlashEraseBlock -.L3410: +.L3470: mov w0, 0 bl flash_boot_exit_slc_mode - adrp x0, .LC178 + adrp x0, .LC183 ldr w1, [x23,x20,lsl 2] - add x0, x0, :lo12:.LC178 + add x0, x0, :lo12:.LC183 bl printk - b .L3401 -.L3443: + b .L3458 +.L3507: ldr w0, [x29,236] add w0, w0, 1 str w0, [x29,236] -.L3401: +.L3458: add x20, x20, 1 cmp x20, 5 - bne .L3413 - mov x0, x26 + bne .L3473 + mov x0, x27 bl ftl_free ldr w0, [x29,236] cmp w0, wzr csetm w0, eq -.L3431: +.L3493: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22240,28 +22640,6 @@ write_idblock: ret .size write_idblock, .-write_idblock .align 2 - .global CRC_32 - .type CRC_32, %function -CRC_32: - mov x2, 0 - adrp x3, .LANCHOR1 - mov x5, x0 - add x3, x3, :lo12:.LANCHOR1 - mov w0, w2 -.L3445: - cmp w1, w2 - bls .L3447 - ldrb w4, [x5,x2] - add x6, x3, 3368 - add x2, x2, 1 - eor w4, w4, w0, lsr 24 - ldr w4, [x6,w4,uxtw 2] - eor w0, w4, w0, lsl 8 - b .L3445 -.L3447: - ret - .size CRC_32, .-CRC_32 - .align 2 .global write_loader_lba .type write_loader_lba, %function write_loader_lba: @@ -22275,39 +22653,39 @@ write_loader_lba: mov w21, w1 mov x24, x2 adrp x20, .LANCHOR5 - bne .L3449 + bne .L3509 ldr w1, [x2] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L3449 + bne .L3509 add x22, x20, :lo12:.LANCHOR5 mov w0, 1 - strb w0, [x22,1504] + strb w0, [x22,1512] mov w0, 59392 movk w0, 0x3, lsl 16 bl ftl_malloc - str x0, [x22,1512] + str x0, [x22,1520] mov w2, 59392 mov w1, 0 movk w2, 0x3, lsl 16 bl ftl_memset - str w19, [x22,1520] -.L3449: + str w19, [x22,1528] +.L3509: add x23, x20, :lo12:.LANCHOR5 - adrp x0, .LC179 + adrp x0, .LC184 ldr w2, [x24] - add x0, x0, :lo12:.LC179 + add x0, x0, :lo12:.LC184 mov w3, w19 mov w4, w21 - ldr x1, [x23,1512] + ldr x1, [x23,1520] bl printk - ldrb w0, [x23,1504] - cbz w0, .L3448 + ldrb w0, [x23,1512] + cbz w0, .L3508 sub w0, w19, #64 - ldr x22, [x23,1512] + ldr x22, [x23,1520] cmp w0, 499 - bhi .L3451 + bhi .L3511 mov w3, 564 ubfiz x0, x0, 9, 25 sub w3, w3, w19 @@ -22317,38 +22695,38 @@ write_loader_lba: csel w2, w3, w21, ls lsl w2, w2, 9 bl ftl_memcpy - b .L3452 -.L3451: + b .L3512 +.L3511: cmp w19, 563 - bhi .L3462 -.L3452: + bhi .L3522 +.L3512: add x0, x20, :lo12:.LANCHOR5 - ldr w1, [x0,1520] + ldr w1, [x0,1528] cmp w1, w19 - beq .L3460 - strb wzr, [x0,1504] - cbz x22, .L3461 + beq .L3520 + strb wzr, [x0,1512] + cbz x22, .L3521 mov x0, x22 bl ftl_free -.L3461: +.L3521: add x0, x20, :lo12:.LANCHOR5 - str xzr, [x0,1512] -.L3460: + str xzr, [x0,1520] +.L3520: add x20, x20, :lo12:.LANCHOR5 add w19, w19, w21 - str w19, [x20,1520] - b .L3448 -.L3462: - ldr w2, [x23,1520] + str w19, [x20,1528] + b .L3508 +.L3522: + ldr w2, [x23,1528] mov w0, 500 sub w2, w2, #64 cmp w2, 500 csel w2, w2, w0, ls - adrp x0, .LANCHOR0+1256 - ldr x0, [x0,#:lo12:.LANCHOR0+1256] + adrp x0, .LANCHOR0+88 + ldr x0, [x0,#:lo12:.LANCHOR0+88] ldrb w0, [x0,9] cmp w0, 4 - beq .L3463 + beq .L3523 mov w0, 2 str w0, [x29,72] mov w0, 3 @@ -22359,49 +22737,49 @@ write_loader_lba: str w0, [x29,84] mov w0, 6 str w0, [x29,88] - b .L3454 -.L3463: + b .L3514 +.L3523: mov x3, 0 -.L3453: +.L3513: cmp w2, 256 add x0, x29, 72 - bls .L3455 + bls .L3515 lsl w1, w3, 1 str w1, [x0,x3,lsl 2] - b .L3456 -.L3455: + b .L3516 +.L3515: str w3, [x0,x3,lsl 2] -.L3456: +.L3516: add x3, x3, 1 cmp x3, 5 - bne .L3453 -.L3454: + bne .L3513 +.L3514: add x0, x22, 253952 mov w3, 63872 add x0, x0, 1536 -.L3459: +.L3519: ldr w1, [x0] - cbz w1, .L3457 + cbz w1, .L3517 add w3, w3, 128 lsl w0, w3, 2 - b .L3458 -.L3457: + b .L3518 +.L3517: sub w3, w3, #1 sub x0, x0, #4 cmp w3, 4096 - bne .L3459 + bne .L3519 lsl w0, w2, 9 -.L3458: +.L3518: mov x1, x22 add x2, x29, 72 add x22, x20, :lo12:.LANCHOR5 bl write_idblock - ldr x0, [x22,1512] - strb wzr, [x22,1504] + ldr x0, [x22,1520] + strb wzr, [x22,1512] bl ftl_free - str xzr, [x22,1512] - b .L3460 -.L3448: + str xzr, [x22,1520] + b .L3520 +.L3508: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22421,15 +22799,15 @@ FtlWrite: cmp w0, 1983 mov w19, w1 mov w20, w2 - bhi .L3473 - cbnz w21, .L3473 + bhi .L3533 + cbnz w21, .L3533 mov w0, w1 mov w1, w2 mov x2, x3 str x3, [x29,56] bl write_loader_lba ldr x3, [x29,56] -.L3473: +.L3533: mov w1, w19 mov w2, w20 mov w0, w21 @@ -22444,414 +22822,156 @@ FtlWrite: .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: sub sp, sp, #528 - mov w0, 29187 + mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp,16] - stp x21, x22, [sp,32] mov w19, w1 mov x20, x2 - beq .L3482 - mov w0, 29187 + beq .L3542 + mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3483 - mov w0, 25726 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3484 - mov w0, 25726 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3485 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3486 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3487 - mov w0, 25364 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bne .L3544 - bl rknand_dev_flush - b .L3578 -.L3487: + bhi .L3543 mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3489 - mov w0, 25603 + beq .L3544 + mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3490 - b .L3544 -.L3485: - mov w0, 27688 + bhi .L3545 + mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3491 - mov w0, 27688 + beq .L3546 + mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3492 + beq .L3547 + b .L3578 +.L3545: + mov w0, 25726 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3548 mov w0, 25727 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3493 - b .L3544 -.L3492: - mov w0, 27698 + beq .L3549 + mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3491 - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3491 - b .L3544 -.L3483: - mov w0, 29267 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3494 - mov w0, 29267 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3495 - mov w0, 29189 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3496 - mov w0, 29189 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bcc .L3497 - mov w0, 29210 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3498 - mov w0, 29266 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3499 - b .L3544 -.L3495: - mov w0, 30225 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3500 - mov w0, 30225 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3501 - mov w0, 29268 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3502 + bne .L3578 + b .L3600 +.L3543: mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3503 - b .L3544 -.L3501: + beq .L3551 + mov w0, 30224 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bhi .L3552 + mov w0, 27698 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3542 + mov w0, 27708 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3542 + b .L3578 +.L3552: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3503 + beq .L3551 + mov w0, 30226 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bcc .L3553 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3500 - b .L3544 -.L3497: - adrp x0, .LC180 - add x0, x0, :lo12:.LC180 - bl printk - mov w0, 4096 - bl ftl_malloc - mov x19, x0 - cbnz x0, .L3504 -.L3509: - mov x0, -12 - b .L3481 -.L3504: - mov x1, x20 - mov x2, 512 - bl rk_copy_from_user - cbnz x0, .L3585 - adrp x0, .LC182 - ldr w1, [x19] - ldr w2, [x19,4] - add x0, x0, :lo12:.LC182 - bl printk - ldr w0, [x19,4] - str w0, [x29,52] - cmp w0, 8 - bhi .L3582 - bl rknand_device_lock - ldr w1, [x29,52] - mov x2, x19 - ldr w0, [x19] - bl IdBlockReadData - bl rknand_device_unlock - ldr w2, [x29,52] - mov x0, x20 - mov x1, x19 - ubfiz x2, x2, 9, 23 - bl rk_copy_to_user - cbz x0, .L3588 - adrp x0, .LC183 - add x0, x0, :lo12:.LC183 -.L3580: - bl printk -.L3582: - mov x0, x19 -.L3583: - bl ftl_free -.L3581: - mov x0, -14 - b .L3481 -.L3496: - adrp x0, .LC184 - add x0, x0, :lo12:.LC184 - bl printk - mov w0, 4096 - bl ftl_malloc - mov x19, x0 - cbz x0, .L3509 - mov x1, x20 - mov x2, 4096 - bl rk_copy_from_user - cbnz x0, .L3585 + beq .L3553 + b .L3578 +.L3547: adrp x0, .LC185 - ldr w1, [x19] - ldr w2, [x19,4] add x0, x0, :lo12:.LC185 bl printk - adrp x0, .LANCHOR5 - add x22, x0, :lo12:.LANCHOR5 - mov x20, x0 - ldr x21, [x22,1528] - cbnz x21, .L3511 - mov w0, 260096 - bl ftl_malloc - str x0, [x22,1528] - cbz x0, .L3582 - mov w1, w21 - mov x2, 260096 - bl memset -.L3511: - ldr w2, [x19,4] - cmp w2, 4088 - bhi .L3582 - ldr w0, [x19] - mov w1, 55296 - movk w1, 0x3, lsl 16 - cmp w0, w1 - bhi .L3582 - add x20, x20, :lo12:.LANCHOR5 - uxtw x2, w2 - ldr x1, [x20,1528] - add x0, x1, x0, uxtw - add x1, x19, 8 - bl memcpy -.L3588: - mov x0, x19 - bl ftl_free - b .L3578 -.L3499: + add x0, x29, 40 + mov x1, x20 + mov x2, 520 + bl rk_copy_from_user + cbz x0, .L3554 +.L3560: adrp x0, .LC186 add x0, x0, :lo12:.LC186 bl printk - mov w0, 4096 - bl ftl_malloc - mov x19, x0 - cbz x0, .L3509 - mov x1, x20 - mov x2, 28 - bl rk_copy_from_user - cbz x0, .L3514 -.L3585: - adrp x0, .LC181 - add x0, x0, :lo12:.LC181 - b .L3580 -.L3514: - ldr w1, [x19] - adrp x0, .LC187 - ldr w2, [x19,4] - add x0, x0, :lo12:.LC187 - bl printk - ldr w1, [x19] - mov w0, 59392 - movk w0, 0x3, lsl 16 - cmp w1, w0 - bhi .L3582 - adrp x20, .LANCHOR5 - add x20, x20, :lo12:.LANCHOR5 - ldr x0, [x20,1528] - cbz x0, .L3582 - bl CRC_32 - ldr w1, [x19,4] - cmp w1, w0 - beq .L3517 - mov x0, x19 - bl ftl_free - mov x0, -2 - b .L3481 -.L3517: - bl rknand_device_lock - ldr x1, [x20,1528] - add x2, x19, 8 - ldr w0, [x19] - bl write_idblock - bl rknand_device_unlock - ldr x0, [x20,1528] - bl ftl_free - str xzr, [x20,1528] - b .L3588 -.L3498: - adrp x0, .LC188 - add x0, x0, :lo12:.LC188 - bl printk - mov w0, 4096 - bl ftl_malloc - mov x21, x0 - cbz x0, .L3509 - bl ftl_read_flash_info - mov x0, x20 - mov x1, x21 - mov x2, 11 - b .L3590 -.L3482: - adrp x0, .LC189 - add x0, x0, :lo12:.LC189 - bl printk - bl nand_blk_add_whole_disk - mov w0, 4096 - bl ftl_malloc - mov x21, x0 - cbz x0, .L3509 - mov w1, 0 - mov w2, 64 - bl ftl_memset - mov x0, x20 - mov x1, x21 - mov x2, 64 - b .L3590 -.L3494: - adrp x0, .LC190 - add x0, x0, :lo12:.LC190 - bl printk - adrp x0, .LANCHOR5+1536 - add x1, x29, 52 - mov x2, 4 - ldr x0, [x0,#:lo12:.LANCHOR5+1536] - ldr w0, [x0,20] - str w0, [x29,52] - mov x0, x20 -.L3573: - bl rk_copy_to_user - cbnz x0, .L3581 - b .L3578 -.L3502: - adrp x0, .LC191 - add x0, x0, :lo12:.LC191 - bl printk - mov w0, 4096 - bl ftl_malloc - mov x21, x0 - cbz x0, .L3509 - bl rknand_device_lock - mov w1, 264 - mov w2, 2 - mov x3, x21 - mov w0, 16 - bl ftl_read - bl rknand_device_unlock - mov x0, x20 - mov x1, x21 - mov x2, 1024 -.L3590: - bl rk_copy_to_user - mov x19, x0 - mov x0, x21 - cbnz x19, .L3583 - bl ftl_free - b .L3508 -.L3486: - adrp x0, .LC192 - add x0, x0, :lo12:.LC192 - bl printk - add x0, x29, 56 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - mov x19, x0 - cbz x0, .L3522 -.L3527: - adrp x0, .LC181 - add x0, x0, :lo12:.LC181 - bl printk - b .L3581 -.L3522: - ldr w1, [x29,56] + b .L3597 +.L3554: + ldr w1, [x29,40] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L3523 -.L3524: + beq .L3555 +.L3557: mov x19, -1 - b .L3508 -.L3523: - ldr w0, [x29,60] + b .L3556 +.L3555: + ldr w0, [x29,44] cmp w0, 512 - bhi .L3524 - adrp x21, .LANCHOR5 - add x0, x29, 56 - add x21, x21, :lo12:.LANCHOR5 + bhi .L3557 + adrp x19, .LANCHOR5 + add x0, x29, 40 + add x19, x19, :lo12:.LANCHOR5 mov x2, 512 - ldr x1, [x21,1536] + ldr x1, [x19,1536] bl memcpy - ldr w1, [x21,1544] + ldr w1, [x19,1544] mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L3525 - add x0, x29, 120 - mov w1, w19 + beq .L3558 + add x0, x29, 104 + mov w1, 0 mov x2, 128 - str w19, [x29,64] - str w19, [x29,68] + str wzr, [x29,48] + str wzr, [x29,52] bl memset -.L3525: - add x0, x29, 312 +.L3558: + add x0, x29, 296 mov w1, 0 mov x2, 256 - str wzr, [x29,72] + str wzr, [x29,56] bl memset - b .L3587 -.L3489: - adrp x0, .LC193 - add x0, x0, :lo12:.LC193 +.L3592: + mov x0, x20 + add x1, x29, 40 + mov x2, 520 + bl rk_copy_to_user + cbnz x0, .L3597 + b .L3595 +.L3544: + adrp x0, .LC187 + add x0, x0, :lo12:.LC187 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3527 - ldr w1, [x29,56] + cbnz x0, .L3560 + ldr w1, [x29,40] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L3524 - ldr w0, [x29,60] + bne .L3557 + ldr w0, [x29,44] cmp w0, 512 - bhi .L3524 + bhi .L3557 adrp x1, .LANCHOR5 mov w2, 5161 add x1, x1, :lo12:.LANCHOR5 @@ -22859,52 +22979,53 @@ rknand_sys_storage_ioctl: mov x0, -2 ldr w3, [x1,1544] cmp w3, w2 - bne .L3481 - ldr w2, [x29,68] + bne .L3541 + ldr w2, [x29,52] mov x0, -3 sub w3, w2, #1 cmp w3, 127 - bhi .L3481 + bhi .L3541 ldr x19, [x1,1536] - add x1, x29, 120 + add x1, x29, 104 add x0, x19, 64 str w2, [x19,12] - ldr w2, [x29,68] + ldr w2, [x29,52] bl memcpy mov w0, 1 mov x1, x19 - b .L3579 -.L3493: - adrp x0, .LC194 - add x0, x0, :lo12:.LC194 + b .L3596 +.L3549: + adrp x0, .LC188 + add x0, x0, :lo12:.LC188 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3527 - ldr w1, [x29,56] + cbnz x0, .L3560 + ldr w1, [x29,40] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L3524 - ldr w0, [x29,60] + bne .L3557 + ldr w0, [x29,44] cmp w0, 512 - bhi .L3524 + bhi .L3557 adrp x19, .LANCHOR5 add x0, x19, :lo12:.LANCHOR5 - ldr w1, [x0,1548] - cbnz w1, .L3528 -.L3531: + ldr w0, [x0,1548] + cbnz w0, .L3561 +.L3564: mov x0, 0 - b .L3481 -.L3528: - ldr x1, [x0,1552] + b .L3541 +.L3561: + add x0, x19, :lo12:.LANCHOR5 mov w2, 22867 movk w2, 0x4453, lsl 16 + ldr x1, [x0,1552] ldr w3, [x1] cmp w3, w2 - beq .L3529 + beq .L3562 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] @@ -22914,7 +23035,7 @@ rknand_sys_storage_ioctl: ldr x0, [x0,1552] str wzr, [x0,8] str wzr, [x0,12] -.L3529: +.L3562: add x20, x19, :lo12:.LANCHOR5 mov w0, 0 ldr x1, [x20,1552] @@ -22925,7 +23046,7 @@ rknand_sys_storage_ioctl: movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3530 + beq .L3563 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] @@ -22934,7 +23055,7 @@ rknand_sys_storage_ioctl: str w1, [x0,4] ldr x0, [x20,1536] str wzr, [x0,8] -.L3530: +.L3563: add x19, x19, :lo12:.LANCHOR5 mov w1, 0 mov x2, 128 @@ -22947,45 +23068,46 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore str wzr, [x19,1548] str wzr, [x19,1544] - b .L3578 -.L3484: - adrp x0, .LC195 - add x0, x0, :lo12:.LC195 + b .L3595 +.L3548: + adrp x0, .LC189 + add x0, x0, :lo12:.LC189 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3527 - ldr w2, [x29,56] - mov w1, 20037 - movk w1, 0x4253, lsl 16 - cmp w2, w1 - bne .L3524 - ldr w1, [x29,60] - cmp w1, 512 - bhi .L3524 + cbnz x0, .L3560 + ldr w1, [x29,40] + mov w0, 20037 + movk w0, 0x4253, lsl 16 + cmp w1, w0 + bne .L3557 + ldr w0, [x29,44] + cmp w0, 512 + bhi .L3557 adrp x19, .LANCHOR5 - add x1, x19, :lo12:.LANCHOR5 - ldr w2, [x1,1548] - cmp w2, 1 - beq .L3531 - ldr x2, [x1,1552] - mov w3, 22867 - movk w3, 0x4453, lsl 16 - ldr w4, [x2] - cmp w4, w3 - beq .L3532 - mov w3, 22867 - movk w3, 0x4453, lsl 16 - str w3, [x2] - mov w3, 504 - ldr x2, [x1,1552] - str w3, [x2,4] - ldr x1, [x1,1552] - str w0, [x1,8] - str w0, [x1,12] -.L3532: + add x0, x19, :lo12:.LANCHOR5 + ldr w1, [x0,1548] + cmp w1, 1 + beq .L3564 + ldr x0, [x0,1552] + mov w1, 22867 + movk w1, 0x4453, lsl 16 + ldr w2, [x0] + cmp w2, w1 + beq .L3565 + mov w1, 22867 + mov w2, 504 + movk w1, 0x4453, lsl 16 + str w1, [x0] + add x0, x19, :lo12:.LANCHOR5 + ldr x1, [x0,1552] + str w2, [x1,4] + ldr x0, [x0,1552] + str wzr, [x0,8] + str wzr, [x0,12] +.L3565: add x20, x19, :lo12:.LANCHOR5 mov w0, 1 ldr x1, [x20,1552] @@ -22997,7 +23119,7 @@ rknand_sys_storage_ioctl: movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3533 + beq .L3566 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] @@ -23006,7 +23128,7 @@ rknand_sys_storage_ioctl: str w1, [x0,4] ldr x0, [x20,1536] str wzr, [x0,8] -.L3533: +.L3566: add x19, x19, :lo12:.LANCHOR5 mov w1, 0 mov x2, 128 @@ -23019,210 +23141,209 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore mov w0, 1 str w0, [x19,1548] - b .L3578 -.L3490: - adrp x0, .LC196 - add x0, x0, :lo12:.LC196 + b .L3595 +.L3600: + adrp x0, .LC190 + add x0, x0, :lo12:.LC190 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3527 - ldr w1, [x29,56] + cbnz x0, .L3560 + ldr w1, [x29,40] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L3524 - ldr w2, [x29,60] + bne .L3557 + ldr w2, [x29,44] cmp w2, 512 - bhi .L3524 + bhi .L3557 adrp x1, .LANCHOR5 - add x0, x29, 64 + add x0, x29, 48 add x1, x1, :lo12:.LANCHOR5 uxtw x2, w2 add x1, x1, 1560 - b .L3586 -.L3491: + b .L3598 +.L3542: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3534 - adrp x0, .LC197 - add x0, x0, :lo12:.LC197 - b .L3576 -.L3534: + bne .L3568 + adrp x0, .LC191 + add x0, x0, :lo12:.LC191 + b .L3594 +.L3568: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3536 - adrp x0, .LC198 - add x0, x0, :lo12:.LC198 - b .L3576 -.L3536: - adrp x0, .LC199 - add x0, x0, :lo12:.LC199 -.L3576: + bne .L3570 + adrp x0, .LC192 + add x0, x0, :lo12:.LC192 + b .L3594 +.L3570: + adrp x0, .LC193 + add x0, x0, :lo12:.LC193 +.L3594: bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3527 - ldr w1, [x29,56] + cbnz x0, .L3560 + ldr w1, [x29,40] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3581 + bne .L3597 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x0, .LANCHOR5 - bne .L3537 + bne .L3571 add x0, x0, :lo12:.LANCHOR5 - add x1, x29, 56 + add x1, x29, 40 mov x2, 16 ldr x0, [x0,1536] ldr w0, [x0,20] - str w0, [x29,60] - strb w0, [x29,64] + str w0, [x29,44] + strb w0, [x29,48] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3481 - b .L3581 -.L3537: + cbz x0, .L3541 + b .L3597 +.L3571: add x20, x0, :lo12:.LANCHOR5 ldr w1, [x20,2072] cmp w1, 10 - bhi .L3581 + bhi .L3597 ldr x1, [x20,1536] - ldr w2, [x29,60] + ldr w2, [x29,44] ldr w3, [x1,24] cmp w3, w2 - beq .L3538 - cbz w3, .L3538 - adrp x0, .LC200 + beq .L3572 + cbz w3, .L3572 + adrp x0, .LC194 mov w1, w2 - add x0, x0, :lo12:.LC200 + add x0, x0, :lo12:.LC194 bl printk ldr w0, [x20,2072] add w0, w0, 1 str w0, [x20,2072] - b .L3581 -.L3538: +.L3597: + mov x0, -14 + b .L3541 +.L3572: add x0, x0, :lo12:.LANCHOR5 str wzr, [x0,2072] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3539 + bne .L3573 str wzr, [x1,20] str wzr, [x1,24] - b .L3540 -.L3539: + b .L3574 +.L3573: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L3540: +.L3574: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L3578 - b .L3508 -.L3503: - adrp x0, .LC201 - add x0, x0, :lo12:.LC201 + bne .L3595 + b .L3556 +.L3551: + adrp x0, .LC195 + add x0, x0, :lo12:.LC195 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3527 - ldr w1, [x29,56] + cbnz x0, .L3560 + ldr w1, [x29,40] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3524 - ldr w2, [x29,60] + bne .L3557 + ldr w2, [x29,44] cmp w2, 504 - bhi .L3524 + bhi .L3557 mov w0, 30224 adrp x1, .LANCHOR5 movk w0, 0x4004, lsl 16 uxtw x2, w2 cmp w19, w0 add x1, x1, :lo12:.LANCHOR5 - add x0, x29, 64 - bne .L3541 + add x0, x29, 48 + bne .L3575 ldr x1, [x1,2080] - b .L3577 -.L3541: + b .L3599 +.L3575: ldr x1, [x1,2088] -.L3577: +.L3599: add x1, x1, 8 -.L3586: +.L3598: bl memcpy -.L3587: - mov x0, x20 - add x1, x29, 56 - mov x2, 520 - b .L3573 -.L3500: - adrp x0, .LC202 - add x0, x0, :lo12:.LC202 + b .L3592 +.L3553: + adrp x0, .LC196 + add x0, x0, :lo12:.LC196 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3527 - ldr w1, [x29,56] + cbnz x0, .L3560 + ldr w1, [x29,40] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3524 - ldr w2, [x29,60] + bne .L3557 + ldr w2, [x29,44] cmp w2, 504 - bhi .L3524 + bhi .L3557 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x19, .LANCHOR5 add x19, x19, :lo12:.LANCHOR5 - bne .L3543 + bne .L3577 ldr x0, [x19,2080] - add x1, x29, 56 + add x1, x29, 40 bl memcpy mov w0, 2 ldr x1, [x19,2080] - b .L3579 -.L3543: + b .L3596 +.L3577: ldr x0, [x19,2088] - add x1, x29, 56 + add x1, x29, 40 bl memcpy ldr x1, [x19,2088] mov w0, 3 -.L3579: +.L3596: bl StorageSysDataStore uxtw x19, w0 - b .L3508 -.L3578: + b .L3556 +.L3546: + bl rknand_dev_flush +.L3595: mov x19, 0 -.L3508: - adrp x0, .LC203 +.L3556: + adrp x0, .LC197 mov x1, x19 - add x0, x0, :lo12:.LC203 + add x0, x0, :lo12:.LC197 bl printk mov x0, x19 - b .L3481 -.L3544: + b .L3541 +.L3578: mov x0, -22 -.L3481: +.L3541: ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldp x29, x30, [sp], 32 add sp, sp, 528 ret .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl @@ -23238,8 +23359,8 @@ rk_ftl_storage_sys_init: adrp x20, .LANCHOR5 add x19, x20, :lo12:.LANCHOR5 stp x21, x22, [sp,32] - ldr x1, [x19,1480] - str w0, [x19,1520] + ldr x1, [x19,1488] + str w0, [x19,1528] add x0, x1, 512 str x0, [x19,1536] add x0, x1, 1024 @@ -23247,9 +23368,9 @@ rk_ftl_storage_sys_init: str x0, [x19,2080] add x1, x1, 1536 add x0, x19, 1560 - strb wzr, [x19,1504] - str xzr, [x19,1512] - str xzr, [x19,1528] + strb wzr, [x19,1512] + str xzr, [x19,1520] + str xzr, [x19,2096] str x1, [x19,2088] bl ftl_memcpy ldr x21, [x19,1552] @@ -23258,25 +23379,25 @@ rk_ftl_storage_sys_init: ldr w0, [x21,16] ldr w22, [x21,508] str w0, [x19,1548] - cbz w22, .L3593 + cbz w22, .L3602 mov x0, x21 mov w1, 508 bl js_hash cmp w22, w0 - beq .L3593 - adrp x0, .LC204 + beq .L3602 + adrp x0, .LC198 str wzr, [x21,16] - add x0, x0, :lo12:.LC204 + add x0, x0, :lo12:.LC198 str wzr, [x19,1548] bl printk -.L3593: +.L3602: add x0, x20, :lo12:.LANCHOR5 ldr w1, [x0,1548] - cbz w1, .L3594 + cbz w1, .L3603 mov w1, 5161 movk w1, 0xc059, lsl 16 str w1, [x0,1544] -.L3594: +.L3603: add x20, x20, :lo12:.LANCHOR5 mov w0, 2 ldr x1, [x20,2080] @@ -23311,55 +23432,55 @@ rk_ftl_vendor_storage_init: bl ftl_malloc add x1, x21, :lo12:.LANCHOR5 mov w19, -12 - str x0, [x1,2096] - cbz x0, .L3603 + str x0, [x1,2104] + cbz x0, .L3612 mov w23, 0 - adrp x24, .LC205 + adrp x24, .LC199 mov w19, w23 mov w22, w23 - add x24, x24, :lo12:.LC205 -.L3607: + add x24, x24, :lo12:.LC199 +.L3616: add x20, x21, :lo12:.LANCHOR5 lsl w0, w22, 7 mov w1, 128 - ldr x2, [x20,2096] + ldr x2, [x20,2104] bl FlashBootVendorRead - cbnz w0, .L3604 - ldr x3, [x20,2096] + cbnz w0, .L3613 + ldr x3, [x20,2104] mov x0, x24 add x2, x3, 61440 ldr w1, [x3] ldr w3, [x3,4] ldr w2, [x2,4092] bl printk - ldr x20, [x20,2096] + ldr x20, [x20,2104] mov w0, 22084 movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L3605 + bne .L3614 ldr w0, [x20,4] cmp w19, w0 - bcs .L3605 + bcs .L3614 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L3605: - cbnz w22, .L3615 +.L3614: + cbnz w22, .L3624 mov w22, 1 - b .L3607 -.L3615: - cbz w19, .L3608 + b .L3616 +.L3624: + cbz w19, .L3617 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L3603 - b .L3604 -.L3608: + cbz w0, .L3612 + b .L3613 +.L3617: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -23373,14 +23494,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L3603 -.L3604: + b .L3612 +.L3613: add x21, x21, :lo12:.LANCHOR5 mov w19, -1 - ldr x0, [x21,2096] + ldr x0, [x21,2104] bl kfree - str xzr, [x21,2096] -.L3603: + str xzr, [x21,2104] +.L3612: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -23392,24 +23513,24 @@ rk_ftl_vendor_storage_init: .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR5+2096 + adrp x3, .LANCHOR5+2104 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR5+2096] + ldr x5, [x3,#:lo12:.LANCHOR5+2104] mov w3, -1 str x19, [sp,16] - cbz x5, .L3617 + cbz x5, .L3626 ldrh w3, [x5,10] mov x4, 0 -.L3618: +.L3627: cmp w4, w3 mov w6, w4 - bcs .L3622 + bcs .L3631 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L3618 + bne .L3627 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -23421,10 +23542,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L3617 -.L3622: + b .L3626 +.L3631: mov w3, -1 -.L3617: +.L3626: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -23436,10 +23557,10 @@ rk_ftl_vendor_read: rk_ftl_vendor_write: stp x29, x30, [sp, -112]! mov w6, w0 - adrp x0, .LANCHOR5+2096 + adrp x0, .LANCHOR5+2104 add x29, sp, 0 stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR5+2096] + ldr x19, [x0,#:lo12:.LANCHOR5+2104] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x21, x22, [sp,32] @@ -23447,38 +23568,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L3624 + cbz x19, .L3633 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L3625: +.L3634: cmp w2, w3 mov w4, w2 - bcs .L3640 + bcs .L3649 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L3625 + bne .L3634 add x21, x19, x4, uxtw 3 ldrh w24, [x21,20] add x5, x19, 1024 add w24, w24, 63 and w24, w24, -64 cmp w26, w24 - bls .L3626 + bls .L3635 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L3624 + bcc .L3633 ldrh w21, [x21,18] add w22, w3, w2 -.L3627: +.L3636: cmp w4, w22 uxtw x3, w4 - bcs .L3641 + bcs .L3650 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -23501,8 +23622,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L3627 -.L3641: + b .L3636 +.L3650: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -23519,20 +23640,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L3639 -.L3626: + b .L3648 +.L3635: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L3639 -.L3640: + b .L3648 +.L3649: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L3624 + bcc .L3633 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -23552,7 +23673,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L3639: +.L3648: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -23569,7 +23690,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L3624: +.L3633: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -23593,37 +23714,37 @@ rk_ftl_vendor_storage_ioctl: mov x21, x2 bl ftl_malloc mov x19, x0 - cbz x0, .L3643 + cbz x0, .L3652 mov w2, 30209 ldr x1, [x29,56] movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3645 + beq .L3654 mov w2, 30210 movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3646 - b .L3657 -.L3645: + beq .L3655 + b .L3666 +.L3654: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3657 + cbnz x0, .L3666 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3648 -.L3649: + beq .L3657 +.L3658: mov x20, -1 - b .L3644 -.L3648: + b .L3653 +.L3657: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L3649 + beq .L3658 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -23633,45 +23754,44 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L3644 -.L3646: + b .L3653 +.L3655: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3657 + cbnz x0, .L3666 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L3649 + bne .L3658 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L3649 + bhi .L3658 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L3657 + cbnz x0, .L3666 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L3644 -.L3657: + b .L3653 +.L3666: mov x20, -14 -.L3644: +.L3653: mov x0, x19 bl kfree -.L3643: +.L3652: mov x0, x20 ldr x21, [sp,32] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 ret .size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl - .global gTable_Crc32 .global SecureBootUnlockTryCount .global SecureBootCheckOK .global SecureBootEn @@ -23900,6 +24020,7 @@ rk_ftl_vendor_storage_ioctl: .global gNandMaxChip .global gNandMaxDie .global gFlashInterfaceMode + .global gFlashCurMode .global gFlashSlcMode .global gFlashOnfiModeEn .global gFlashToggleModeEn @@ -23917,38 +24038,175 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.20892, %object - .size __func__.20892, 11 -__func__.20892: + .type __func__.20995, %object + .size __func__.20995, 11 +__func__.20995: .string "FtlMemInit" .zero 5 - .type __func__.21667, %object - .size __func__.21667, 17 -__func__.21667: + .type samsung_14nm_slc_rr, %object + .size samsung_14nm_slc_rr, 26 +samsung_14nm_slc_rr: + .byte 0 + .byte 10 + .byte -10 + .byte 20 + .byte -20 + .byte 30 + .byte -30 + .byte 40 + .byte -40 + .byte 50 + .byte -50 + .byte 60 + .byte -60 + .byte -70 + .byte -80 + .byte -90 + .byte -100 + .byte -110 + .byte -120 + .byte -9 + .byte 70 + .byte 80 + .byte 90 + .byte -125 + .byte -115 + .byte 100 + .zero 6 + .type samsung_14nm_mlc_rr, %object + .size samsung_14nm_mlc_rr, 104 +samsung_14nm_mlc_rr: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -4 + .byte 3 + .byte -4 + .byte -6 + .byte 6 + .byte 0 + .byte 6 + .byte -10 + .byte -10 + .byte 4 + .byte -10 + .byte 16 + .byte 12 + .byte -4 + .byte 12 + .byte 8 + .byte -16 + .byte 10 + .byte -16 + .byte 24 + .byte 18 + .byte -14 + .byte 18 + .byte -4 + .byte -22 + .byte -16 + .byte -22 + .byte -8 + .byte 24 + .byte -9 + .byte 24 + .byte 8 + .byte -28 + .byte -4 + .byte -28 + .byte 16 + .byte 30 + .byte 10 + .byte 30 + .byte 10 + .byte -34 + .byte 6 + .byte -34 + .byte 0 + .byte 36 + .byte -8 + .byte 36 + .byte -8 + .byte -40 + .byte -2 + .byte -40 + .byte -20 + .byte -46 + .byte -4 + .byte -46 + .byte -30 + .byte 3 + .byte 0 + .byte 3 + .byte -3 + .byte -2 + .byte -4 + .byte -2 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -10 + .byte -6 + .byte -8 + .byte -6 + .byte -14 + .byte -9 + .byte -8 + .byte -9 + .byte -18 + .byte -52 + .byte 22 + .byte -52 + .byte 10 + .byte 42 + .byte 4 + .byte 42 + .byte 4 + .byte 48 + .byte -9 + .byte 48 + .byte 4 + .byte -58 + .byte 12 + .byte -58 + .byte 0 + .byte -64 + .byte -24 + .byte -64 + .byte -6 + .byte 9 + .byte 18 + .byte 9 + .byte 8 + .type __func__.21774, %object + .size __func__.21774, 17 +__func__.21774: .string "FtlDumpBlockInfo" .zero 7 - .type __func__.21686, %object - .size __func__.21686, 16 -__func__.21686: + .type __func__.21793, %object + .size __func__.21793, 16 +__func__.21793: .string "FtlScanAllBlock" - .type __func__.21952, %object - .size __func__.21952, 17 -__func__.21952: + .type __func__.22061, %object + .size __func__.22061, 17 +__func__.22061: .string "ftl_scan_all_ppa" .zero 7 - .type __func__.21635, %object - .size __func__.21635, 12 -__func__.21635: + .type __func__.21742, %object + .size __func__.21742, 12 +__func__.21742: .string "FtlCheckVpc" .zero 4 - .type __func__.21934, %object - .size __func__.21934, 21 -__func__.21934: + .type __func__.22041, %object + .size __func__.22041, 21 +__func__.22041: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.20965, %object - .size __func__.20965, 8 -__func__.20965: + .type __func__.21068, %object + .size __func__.21068, 8 +__func__.21068: .string "FtlInit" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -24104,7 +24362,7 @@ __func__.20965: .LC75: .string "%s\n" .LC76: - .string "FTL version: 5.0.60 20200218" + .string "FTL version: 5.0.63 20200923" .LC77: .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" .LC78: @@ -24140,228 +24398,216 @@ __func__.20965: .LC93: .string "micron RR %d row=%x,count %d,status=%d\n" .LC94: - .string "ECC:%d\n" + .string "samsung RR %d row=%x,count %d,status=%d\n" .LC95: - .string "No.%d FLASH ID:%x %x %x %x %x %x\n" + .string "ECC:%d\n" .LC96: - .string "FlashLoadPhyInfo fail %x!!\n" + .string "No.%d FLASH ID:%x %x %x %x %x %x\n" .LC97: - .string "Read pageadd=%x ecc=%x err=%x\n" + .string "FlashLoadPhyInfo fail %x!!\n" .LC98: - .string "data:" + .string "Read pageadd=%x ecc=%x err=%x\n" .LC99: - .string "spare:" + .string "data:" .LC100: - .string "ReadRetry pageadd=%x ecc=%x err=%x\n" + .string "spare:" .LC101: - .string "FLFB:%d %d\n" + .string "ReadRetry pageadd=%x ecc=%x err=%x\n" .LC102: - .string "prog error: = %x\n" + .string "FLFB:%d %d\n" .LC103: - .string "prog read error: = %x\n" + .string "prog error: = %x\n" .LC104: - .string "prog read s error: = %x %x %x\n" + .string "prog read error: = %x\n" .LC105: - .string "prog read d error: = %x %x %x\n" + .string "prog read REFRESH: = %x\n" .LC106: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n" + .string "prog read s error: = %x %x %x\n" .LC107: - .string "...%s enter...\n" + .string "prog read d error: = %x %x %x\n" .LC108: - .string "superBlkID = %x vpc=%x\n" + .string "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n" .LC109: - .string "flashmode = %x pagenum = %x %x\n" + .string "...%s enter...\n" .LC110: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "superBlkID = %x vpc=%x\n" .LC111: - .string "blk = %x vpc=%x mode = %x\n" + .string "flashmode = %x pagenum = %x %x\n" .LC112: - .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" .LC113: - .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "blk = %x vpc=%x mode = %x\n" .LC114: - .string "ftl_scan_all_ppa blk %x page %x\n" + .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" .LC115: - .string "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n" + .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" .LC116: - .string "%s finished\n" + .string "ftl_scan_all_ppa blk %x page %x flag: %x\n" .LC117: - .string "FlashMakeFactorBbt %d\n" + .string "ftl_scan_all_ppa blk %x page %x flag: %x ............... is bad block\n" .LC118: - .string "bad block:%d %d\n" + .string "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n" .LC119: - .string "FMFB:%d %d\n" + .string "%s finished\n" .LC120: - .string "E:bad block:%d\n" + .string "FlashMakeFactorBbt %d\n" .LC121: - .string "FMFB:Save %d %d\n" + .string "bad block:%d %d\n" .LC122: - .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" + .string "FMFB:%d %d\n" .LC123: - .string "FtlBbmTblFlush error:%x\n" + .string "E:bad block:%d\n" .LC124: - .string "FtlBbmTblFlush error = %x error count = %d\n" + .string "FMFB:Save %d %d\n" .LC125: - .string "FtlGcFreeBadSuperBlk 0x%x\n" + .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" .LC126: - .string "decrement_vpc_count %x = %d\n" + .string "FtlBbmTblFlush error:%x\n" .LC127: - .string "decrement_vpc_count %x = %d in free list\n" + .string "FtlBbmTblFlush error = %x error count = %d\n" .LC128: - .string "FtlVpcTblFlush error = %x error count = %d\n" + .string "FtlGcFreeBadSuperBlk 0x%x\n" .LC129: - .string "page map lost: %x %x\n" + .string "decrement_vpc_count %x = %d\n" .LC130: - .string "FtlMapWritePage error = %x\n" + .string "decrement_vpc_count %x = %d in free list\n" .LC131: - .string "FtlMapWritePage error = %x error count = %d\n" + .string "FtlVpcTblFlush error = %x error count = %d\n" .LC132: - .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" + .string "page map lost: %x %x\n" .LC133: - .string "no ect" + .string "FtlMapWritePage error = %x\n" .LC134: - .string "slc mode" + .string "FtlMapWritePage error = %x error count = %d\n" .LC135: - .string "BBT:" + .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" .LC136: - .string "region_id = %x phyAddr = %x\n" + .string "no ect" .LC137: - .string "map_ppn:" + .string "slc mode" .LC138: - .string "load_l2p_region refresh = %x phyAddr = %x\n" + .string "BBT:" .LC139: - .string "FtlCheckVpc2 %x = %x %x\n" + .string "region_id = %x phyAddr = %x\n" .LC140: - .string "free blk vpc error %x = %x %x\n" + .string "map_ppn:" .LC141: - .string "Ftlscanalldata = %x\n" + .string "load_l2p_region refresh = %x phyAddr = %x\n" .LC142: - .string "scan lpa = %x ppa= %x\n" + .string "FtlCheckVpc2 %x = %x %x\n" .LC143: - .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "free blk vpc error %x = %x %x\n" .LC144: - .string "RSB refresh addr %x\n" + .string "error_flag %x\n" .LC145: - .string "spuer block %x vpn is 0\n " + .string "Ftlscanalldata = %x\n" .LC146: - .string "g_recovery_ppa %x ver %x\n " + .string "scan lpa = %x ppa= %x\n" .LC147: - .string "FtlCheckVpc %x = %x %x\n" + .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .LC148: - .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" + .string "RSB refresh addr %x\n" .LC149: - .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" + .string "spuer block %x vpn is 0\n " .LC150: - .string "GC des block %x done\n" + .string "g_recovery_ppa %x ver %x\n " .LC151: - .string "%d GC datablk = %x vpc %x %x\n" + .string "FtlCheckVpc %x = %x %x\n" .LC152: - .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" + .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" .LC153: - .string "Ftlwrite decrement_vpc_count %x = %d\n" + .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" .LC154: - .string "rk_ftl_de_init %x\n" + .string "GC des block %x done\n" .LC155: - .string "...%s: no bad block mapping table, format device\n" + .string "too many bad block = %d %d\n" .LC156: - .string "...%s FtlSysBlkInit error ,format device!\n" + .string "%d GC datablk = %x vpc %x %x\n" .LC157: - .string "FtlInit %x\n" + .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" .LC158: - .string "fix power lost blk = %x vpc=%x\n" + .string "Ftlwrite decrement_vpc_count %x = %d\n" .LC159: - .string "erase power lost blk = %x vpc=%x\n" + .string "rk_ftl_de_init %x\n" .LC160: - .string "FtlWrite: lpa error:%x %x\n" + .string "...%s: no bad block mapping table, format device\n" .LC161: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" + .string "...%s FtlSysBlkInit error ,format device!\n" .LC162: - .string ":" + .string "FtlInit %x\n" .LC163: - .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "fix power lost blk = %x vpc=%x\n" .LC164: - .string "Mblk:" + .string "erase power lost blk = %x vpc=%x\n" .LC165: - .string "L2P:" + .string "FtlWrite: lpa error:%x %x\n" .LC166: - .string "L2PC:" + .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" .LC167: - .string "IdBlockReadData %x %x\n" + .string ":" .LC168: - .string "IdBlockReadData %x %x ret= %x\n" + .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .LC169: - .string "write_idblock fix data %x %x\n" + .string "Mblk:" .LC170: - .string "idblk:" + .string "L2P:" .LC171: - .string "idb reverse %x %x\n" + .string "L2PC:" .LC172: - .string "write_idblock totle_sec %x %x %x %x\n" + .string "write_idblock fix data %x %x\n" .LC173: - .string "IDBlockWriteData %x %x\n" + .string "idblk:" .LC174: - .string "IDBlockWriteData %x %x ret= %x\n" + .string "idb reverse %x %x\n" .LC175: - .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n" + .string "write_idblock totle_sec %x %x %x %x\n" .LC176: - .string "write" + .string "IDBlockWriteData %x %x\n" .LC177: - .string "read" + .string "IDBlockWriteData %x %x ret= %x\n" .LC178: - .string "write_idblock error %d\n" + .string "IdBlockReadData %x %x\n" .LC179: - .string "wl_lba %p %x %x %x\n" + .string "IdBlockReadData %x %x ret= %x\n" .LC180: - .string "READ_SECTOR_IO\n" + .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n" .LC181: - .string "rk_copy_from_user error\n" + .string "write" .LC182: - .string "READ_SECTOR_IO %x %x\n" + .string "read" .LC183: - .string "rk_copy_to_user error\n" + .string "write_idblock error %d\n" .LC184: - .string "WRITE_SECTOR_IO\n" + .string "wl_lba %p %x %x %x\n" .LC185: - .string "WRITE_SECTOR_IO %x %x\n" -.LC186: - .string "END_WRITE_SECTOR_IO\n" -.LC187: - .string "END_WRITE_SECTOR_IO %x %x\n" -.LC188: - .string "GET_FLASH_INFO_IO\n" -.LC189: - .string "GET_BAD_BLOCK_IO\n" -.LC190: - .string "GET_LOCK_FLAG_IO\n" -.LC191: - .string "GET_PUBLIC_KEY_IO\n" -.LC192: .string "RKNAND_GET_DRM_KEY\n" -.LC193: +.LC186: + .string "rk_copy_from_user error\n" +.LC187: .string "RKNAND_STORE_DRM_KEY\n" -.LC194: +.LC188: .string "RKNAND_DIASBLE_SECURE_BOOT\n" -.LC195: +.LC189: .string "RKNAND_ENASBLE_SECURE_BOOT\n" -.LC196: +.LC190: .string "RKNAND_GET_SN_SECTOR\n" -.LC197: +.LC191: .string "RKNAND_LOADER_UNLOCK\n" -.LC198: +.LC192: .string "RKNAND_LOADER_STATUS\n" -.LC199: +.LC193: .string "RKNAND_LOADER_LOCK\n" -.LC200: +.LC194: .string "LockKey not match %d\n" -.LC201: +.LC195: .string "RKNAND_GET_VENDOR_SECTOR\n" -.LC202: +.LC196: .string "RKNAND_STORE_VENDOR_SECTOR\n" -.LC203: +.LC197: .string "return ret = %lx\n" -.LC204: +.LC198: .string "secureBootEn check error\n" -.LC205: +.LC199: .string "\0013vendor storage %x,%x,%x\n" .data .align 3 @@ -24754,7 +25000,7 @@ gFtlInitStatus: .word -1 .zero 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2656 + .size NandFlashParaTbl, 2752 NandFlashParaTbl: .byte 6 .byte 44 @@ -26083,6 +26329,32 @@ NandFlashParaTbl: .byte 0 .zero 4 .byte 6 + .byte -119 + .byte -120 + .byte 36 + .byte 59 + .byte -87 + .byte 0 + .byte 7 + .byte 1 + .byte 16 + .hword 192 + .byte 2 + .byte 2 + .hword 2048 + .hword 279 + .byte 12 + .byte 0 + .byte 24 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .zero 4 + .byte 6 .byte -104 .byte -41 .byte -124 @@ -26447,6 +26719,32 @@ NandFlashParaTbl: .byte 0 .zero 4 .byte 6 + .byte -104 + .byte -34 + .byte -108 + .byte -109 + .byte 118 + .byte -47 + .byte 1 + .byte 1 + .byte 32 + .hword 256 + .byte 2 + .byte 2 + .hword 1074 + .hword 1497 + .byte 2 + .byte 35 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 4 + .byte 0 + .byte 0 + .byte 0 + .zero 4 + .byte 6 .byte 69 .byte -34 .byte -108 @@ -26758,7 +27056,7 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 - .byte 6 + .byte 5 .byte -20 .byte -41 .byte -108 @@ -26914,6 +27212,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 + .byte 6 + .byte -20 + .byte -34 + .byte -108 + .byte -61 + .byte -92 + .byte -54 + .byte 0 + .byte 1 + .byte 32 + .hword 792 + .byte 2 + .byte 1 + .hword 688 + .hword 1217 + .byte 11 + .byte 50 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .zero 4 .type NandOptPara, %object .size NandOptPara, 128 NandOptPara: @@ -27063,265 +27387,6 @@ ftl_gc_temp_block_bops_scan_page_addr: .size power_up_flag, 4 power_up_flag: .word 1 - .type gTable_Crc32, %object - .size gTable_Crc32, 1024 -gTable_Crc32: - .word 0 - .word 79760823 - .word 159521646 - .word 222500569 - .word 319043292 - .word 398801771 - .word 445001138 - .word 507977733 - .word 638086584 - .word 583622671 - .word 797603542 - .word 726367073 - .word 890002276 - .word 835540691 - .word 1015955466 - .word 944721341 - .word 1276173168 - .word 1221711559 - .word 1167245342 - .word 1096011177 - .word 1595207084 - .word 1540743195 - .word 1452734146 - .word 1381497717 - .word 1780004552 - .word 1859763071 - .word 1671081382 - .word 1734058001 - .word 2031910932 - .word 2111671715 - .word 1889442682 - .word 1952421581 - .word -1742620960 - .word -1662993577 - .word -1851544178 - .word -1788698567 - .word -1960476612 - .word -1880846965 - .word -2102944942 - .word -2040097051 - .word -1104553128 - .word -1159145745 - .word -1213480906 - .word -1284846207 - .word -1389499004 - .word -1444093901 - .word -1531971862 - .word -1603339427 - .word -734958192 - .word -789553113 - .word -575441154 - .word -646808759 - .word -952804532 - .word -1007397125 - .word -826851294 - .word -898216555 - .word -231145432 - .word -151515745 - .word -71623866 - .word -8775951 - .word -516081932 - .word -436454589 - .word -390124134 - .word -327278547 - .word 880959607 - .word 809725376 - .word 1023441689 - .word 968980142 - .word 663115435 - .word 591878940 - .word 772033989 - .word 717570162 - .word 311037391 - .word 374014072 - .word 453514913 - .word 533273366 - .word 26098451 - .word 89077412 - .word 135012477 - .word 214773194 - .word 2022882055 - .word 2085861040 - .word 1896915049 - .word 1976675806 - .word 1805028827 - .word 1868005484 - .word 1645516469 - .word 1725274882 - .word 1587205823 - .word 1515969288 - .word 1461243345 - .word 1406779494 - .word 1302257763 - .word 1231023572 - .word 1142749965 - .word 1088288442 - .word -1398548841 - .word -1469916384 - .word -1524511239 - .word -1579106226 - .word -1079517109 - .word -1150882308 - .word -1239024859 - .word -1293617518 - .word -1968456913 - .word -1905609064 - .word -2094423999 - .word -2014794250 - .word -1716548109 - .word -1653702588 - .word -1876060515 - .word -1796433110 - .word -525136409 - .word -462290864 - .word -382658935 - .word -303031490 - .word -206095557 - .word -143247732 - .word -97181611 - .word -17551902 - .word -960798625 - .word -1032163864 - .word -818316495 - .word -872909178 - .word -708880765 - .word -780248268 - .word -599962131 - .word -654557094 - .word 1761919214 - .word 1841679705 - .word 1619450752 - .word 1682429495 - .word 2046883378 - .word 2126642053 - .word 1937960284 - .word 2000937195 - .word 1326230870 - .word 1271767265 - .word 1183757880 - .word 1112521615 - .word 1544067978 - .word 1489606205 - .word 1435140324 - .word 1363905875 - .word 622074782 - .word 567612969 - .word 748028144 - .word 676793671 - .word 907029826 - .word 852566261 - .word 1066546732 - .word 995310491 - .word 52196902 - .word 131955601 - .word 178154824 - .word 241131775 - .word 270024954 - .word 349785421 - .word 429546388 - .word 492525091 - .word -249203186 - .word -169575495 - .word -123245216 - .word -60399401 - .word -501137198 - .word -421507739 - .word -341615684 - .word -278768117 - .word -684909642 - .word -739502591 - .word -558956328 - .word -630321809 - .word -1003934358 - .word -1058529059 - .word -844417532 - .word -915784781 - .word -1120555650 - .word -1175150391 - .word -1263028720 - .word -1334395993 - .word -1372480606 - .word -1427073515 - .word -1481408308 - .word -1552773765 - .word -1690451770 - .word -1610822287 - .word -1832920152 - .word -1770072545 - .word -2009467366 - .word -1929839699 - .word -2118390412 - .word -2055544637 - .word 1569104025 - .word 1497869614 - .word 1409596407 - .word 1355134528 - .word 1317180997 - .word 1245944818 - .word 1191218475 - .word 1136754844 - .word 2072956193 - .word 2135933078 - .word 1913443919 - .word 1993202680 - .word 1753938941 - .word 1816917578 - .word 1627971731 - .word 1707732260 - .word 295074793 - .word 358053470 - .word 403988615 - .word 483749168 - .word 43142453 - .word 106119298 - .word 185620059 - .word 265378796 - .word 933107281 - .word 861871078 - .word 1042025791 - .word 987562120 - .word 614080653 - .word 542846266 - .word 756562915 - .word 702101076 - .word -978905479 - .word -1050272818 - .word -869987049 - .word -924581728 - .word -693952347 - .word -765317870 - .word -551470133 - .word -606062980 - .word -475038783 - .word -412191114 - .word -366124881 - .word -286495464 - .word -257209059 - .word -194363222 - .word -114731405 - .word -35103804 - .word -1984443127 - .word -1921597250 - .word -2143955353 - .word -2064327728 - .word -1699480619 - .word -1636632990 - .word -1825447749 - .word -1745818356 - .word -1346395983 - .word -1417761530 - .word -1505903649 - .word -1560496536 - .word -1128556947 - .word -1199924262 - .word -1254519549 - .word -1309114188 .bss .align 3 .LANCHOR0 = . + 0 @@ -27354,6 +27419,10 @@ gBlockPageAlignSize: gNandRandomizer: .zero 1 .zero 7 + .type gpNandParaInfo, %object + .size gpNandParaInfo, 8 +gpNandParaInfo: + .zero 8 .type gNandOptPara, %object .size gNandOptPara, 32 gNandOptPara: @@ -27420,10 +27489,6 @@ slcPageToMlcPageTbl: .size DieAddrs, 32 DieAddrs: .zero 32 - .type gpNandParaInfo, %object - .size gpNandParaInfo, 8 -gpNandParaInfo: - .zero 8 .type FlashWaitBusyScheduleEn, %object .size FlashWaitBusyScheduleEn, 4 FlashWaitBusyScheduleEn: @@ -27446,6 +27511,10 @@ IDByte: .size gDieOp, 192 gDieOp: .zero 192 + .type gFlashCurMode, %object + .size gFlashCurMode, 1 +gFlashCurMode: + .zero 1 .type gFlashInterfaceMode, %object .size gFlashInterfaceMode, 1 gFlashInterfaceMode: @@ -27454,11 +27523,20 @@ gFlashInterfaceMode: .size gNandMaxDie, 1 gNandMaxDie: .zero 1 - .zero 2 + .zero 1 .type DieCsIndex, %object .size DieCsIndex, 8 DieCsIndex: .zero 8 + .type gMultiPageProgEn, %object + .size gMultiPageProgEn, 1 +gMultiPageProgEn: + .zero 1 + .zero 3 + .type g_inkDie_check_enable, %object + .size g_inkDie_check_enable, 4 +g_inkDie_check_enable: + .zero 4 .type idb_flash_slc_mode, %object .size idb_flash_slc_mode, 4 idb_flash_slc_mode: @@ -27501,15 +27579,7 @@ gNandcEccBits: .size gNandFlashEccBits, 1 gNandFlashEccBits: .zero 1 - .type gMultiPageProgEn, %object - .size gMultiPageProgEn, 1 -gMultiPageProgEn: - .zero 1 - .zero 2 - .type g_inkDie_check_enable, %object - .size g_inkDie_check_enable, 4 -g_inkDie_check_enable: - .zero 4 + .zero 3 .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: @@ -27551,7 +27621,7 @@ c_ftl_nand_die_num: .size c_ftl_nand_planes_per_die, 2 c_ftl_nand_planes_per_die: .zero 2 - .zero 2 + .zero 6 .type p_plane_order_table, %object .size p_plane_order_table, 32 p_plane_order_table: @@ -28281,10 +28351,6 @@ idb_buf: idb_last_lba: .zero 4 .zero 4 - .type g_idb_buffer, %object - .size g_idb_buffer, 8 -g_idb_buffer: - .zero 8 .type gpDrmKeyInfo, %object .size gpDrmKeyInfo, 8 gpDrmKeyInfo: @@ -28317,6 +28383,10 @@ gpVendor0Info: .type gpVendor1Info, %object .size gpVendor1Info, 8 gpVendor1Info: + .zero 8 + .type g_idb_buffer, %object + .size g_idb_buffer, 8 +g_idb_buffer: .zero 8 .type g_vendor, %object .size g_vendor, 8 diff --git a/drivers/rk_nand/rk_ftlv5_arm32.S b/drivers/rk_nand/rk_ftlv5_arm32.S index 7eb0c5d18693..7f9593473737 100644 --- a/drivers/rk_nand/rk_ftlv5_arm32.S +++ b/drivers/rk_nand/rk_ftlv5_arm32.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: 2020-02-18 + * date: 2020-09-23 * function: rk ftl v5 for rockchip soc base on arm v7 to support MLC NAND. */ .arch armv7-a @@ -19,7 +19,7 @@ .eabi_attribute 30, 4 .eabi_attribute 34, 1 .eabi_attribute 18, 4 - .file "rk_ftlv5_arm_v7.S" + .file "rk_ftlv5_arm_v8.c" #APP .syntax unified .text @@ -184,28 +184,37 @@ FlashReadCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr ip, .L47 + ldr ip, .L49 + str lr, [sp, #-4]! + .save {lr} + add r3, ip, r0, asl #3 + ldr ip, [ip, #44] + ldr r2, [r3, #12] + ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb ip, [ip, #7] @ zero_extendqisi2 + mov r3, r3, asl #8 + cmp ip, #1 + addeq ip, r2, r3 + add r3, r2, r3 + moveq lr, #38 + mov r2, #0 + streq lr, [ip, #2056] + str r2, [r3, #2056] + str r2, [r3, #2052] + str r2, [r3, #2052] + uxtb r2, r1 + str r2, [r3, #2052] + mov r2, r1, lsr #8 + str r2, [r3, #2052] mov r2, r1, lsr #16 - add ip, ip, r0, asl #3 - ldr r3, [ip, #12] - ldrb ip, [ip, #16] @ zero_extendqisi2 - add r3, r3, ip, asl #8 - mov ip, #0 - str ip, [r3, #2056] - str ip, [r3, #2052] - str ip, [r3, #2052] - uxtb ip, r1 - str ip, [r3, #2052] - mov ip, r1, lsr #8 - str ip, [r3, #2052] str r2, [r3, #2052] mov r2, #48 str r2, [r3, #2056] + ldr lr, [sp], #4 b FlashSetRandomizer -.L48: +.L50: .align 2 -.L47: +.L49: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -216,11 +225,11 @@ FlashReadDpDataOutCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L54 + ldr ip, .L56 stmfd sp!, {r4, lr} .save {r4, lr} add r3, ip, r0, asl #3 - ldrb ip, [ip, #60] @ zero_extendqisi2 + ldrb ip, [ip, #64] @ zero_extendqisi2 uxtb r4, r1 ldr r2, [r3, #12] mov lr, r1, lsr #8 @@ -229,7 +238,7 @@ FlashReadDpDataOutCmd: mov ip, r1, lsr #16 mov r3, r3, asl #8 add r3, r2, r3 - bne .L50 + bne .L52 mov r2, #6 str r2, [r3, #2056] mov r2, #0 @@ -238,8 +247,8 @@ FlashReadDpDataOutCmd: str r4, [r3, #2052] str lr, [r3, #2052] str ip, [r3, #2052] - b .L53 -.L50: + b .L55 +.L52: mov r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -251,14 +260,14 @@ FlashReadDpDataOutCmd: str ip, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] -.L53: +.L55: mov r2, #224 str r2, [r3, #2056] ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L55: +.L57: .align 2 -.L54: +.L56: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd @@ -270,7 +279,7 @@ FlashProgFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L57 + ldr ip, .L59 mov r2, r1, lsr #16 add ip, ip, r0, asl #3 ldr r3, [ip, #12] @@ -287,9 +296,9 @@ FlashProgFirstCmd: str ip, [r3, #2052] str r2, [r3, #2052] b FlashSetRandomizer -.L58: +.L60: .align 2 -.L57: +.L59: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -303,12 +312,12 @@ FlashEraseCmd: str lr, [sp, #-4]! .save {lr} cmp r2, #0 - ldr lr, .L65 + ldr lr, .L67 add r0, lr, r0, asl #3 ldrb r3, [r0, #16] @ zero_extendqisi2 ldr ip, [r0, #12] mov r3, r3, asl #8 - beq .L60 + beq .L62 add r2, ip, r3 mov r0, #96 str r0, [r2, #2056] @@ -320,7 +329,7 @@ FlashEraseCmd: str r0, [r2, #2052] ldr r2, [lr, #4] add r1, r1, r2 -.L60: +.L62: add r3, ip, r3 mov r2, #96 str r2, [r3, #2056] @@ -333,9 +342,9 @@ FlashEraseCmd: mov r2, #208 str r2, [r3, #2056] ldr pc, [sp], #4 -.L66: +.L68: .align 2 -.L65: +.L67: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -346,12 +355,12 @@ FlashProgDpSecondCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L69 + ldr ip, .L71 mov r2, r1, lsr #16 str lr, [sp, #-4]! .save {lr} add lr, ip, r0, asl #3 - ldrb ip, [ip, #55] @ zero_extendqisi2 + ldrb ip, [ip, #59] @ zero_extendqisi2 ldr r3, [lr, #12] ldrb lr, [lr, #16] @ zero_extendqisi2 add r3, r3, lr, asl #8 @@ -366,9 +375,9 @@ FlashProgDpSecondCmd: str r2, [r3, #2052] ldr lr, [sp], #4 b FlashSetRandomizer -.L70: +.L72: .align 2 -.L69: +.L71: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -381,21 +390,21 @@ FlashProgSecondCmd: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L73 + ldr r3, .L75 add r0, r3, r0, asl #3 - ldr r3, .L73+4 + ldr r3, .L75+4 ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] ldr r3, [r3, #4] add r4, r4, r5, asl #8 - ldr r0, .L73+8 + ldr r0, .L75+8 blx r3 mov r3, #16 str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, pc} -.L74: +.L76: .align 2 -.L73: +.L75: .word .LANCHOR0 .word arm_delay_ops .word 214748300 @@ -409,17 +418,17 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L76 + ldr r2, .L78 add r0, r2, r0, asl #3 - ldrb r2, [r2, #54] @ zero_extendqisi2 + ldrb r2, [r2, #58] @ zero_extendqisi2 ldrb r1, [r0, #16] @ zero_extendqisi2 ldr r3, [r0, #12] add r3, r3, r1, asl #8 str r2, [r3, #2056] bx lr -.L77: +.L79: .align 2 -.L76: +.L78: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd @@ -431,23 +440,23 @@ js_hash: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L82 + ldr r3, .L84 add r1, r0, r1 -.L79: +.L81: cmp r0, r1 - beq .L81 + beq .L83 mov r2, r3, asl #5 ldrb ip, [r0], #1 @ zero_extendqisi2 add r2, r2, r3, lsr #2 add r2, r2, ip eor r3, r3, r2 - b .L79 -.L81: + b .L81 +.L83: mov r0, r3 bx lr -.L83: +.L85: .align 2 -.L82: +.L84: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -474,30 +483,30 @@ BuildFlashLsbPageTable: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r1 - bne .L86 - ldr r3, .L121 -.L87: + bne .L88 + ldr r3, .L131 +.L89: mov r2, r0, asl #1 strh r0, [r2, r3] @ movhi add r0, r0, #1 - cmp r0, #256 - bne .L87 -.L91: + cmp r0, #512 + bne .L89 +.L93: mov r2, #2048 - ldr r0, .L121+4 + ldr r0, .L131+4 mov r1, #255 uxth r4, r4 bl ftl_memset - ldr r2, .L121 + ldr r2, .L131 mov r3, #0 add r0, r2, #1024 - b .L88 -.L86: + b .L90 +.L88: cmp r0, #1 - bne .L89 - ldr ip, .L121 + bne .L91 + ldr ip, .L131 mov r3, #0 -.L90: +.L92: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #3 @@ -510,32 +519,32 @@ BuildFlashLsbPageTable: cmp r0, #0 rsb r1, r1, r2, asl #1 movne r2, r1 - cmp r3, #256 + cmp r3, #512 strh r2, [lr, ip] @ movhi - bne .L90 - b .L91 -.L89: - cmp r0, #2 bne .L92 - ldr r1, .L121 + b .L93 +.L91: + cmp r0, #2 + bne .L94 + ldr r1, .L131 mov r3, #0 -.L93: +.L95: uxth r2, r3 mov r0, r3, asl #1 cmp r2, #1 add r3, r3, #1 mov ip, r2, asl #1 subhi r2, ip, #1 - cmp r3, #256 + cmp r3, #512 strh r2, [r0, r1] @ movhi - bne .L93 - b .L91 -.L92: + bne .L95 + b .L93 +.L94: cmp r0, #3 - bne .L94 - ldr ip, .L121 + bne .L96 + ldr ip, .L131 mov r3, #0 -.L95: +.L97: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #5 @@ -548,30 +557,30 @@ BuildFlashLsbPageTable: cmp r0, #0 rsb r1, r1, r2, asl #1 movne r2, r1 - cmp r3, #256 + cmp r3, #512 strh r2, [lr, ip] @ movhi - bne .L95 - b .L91 -.L94: + bne .L97 + b .L93 +.L96: cmp r0, #4 mov r3, #0 - bne .L96 - ldr r2, .L121+8 - strh r3, [r2, #76] @ movhi - mov r3, #1 - strh r0, [r2, #84] @ movhi - strh r3, [r2, #78] @ movhi - mov r3, #2 + bne .L98 + ldr r2, .L131+8 strh r3, [r2, #80] @ movhi - mov r3, #3 + mov r3, #1 + strh r0, [r2, #88] @ movhi strh r3, [r2, #82] @ movhi - mov r3, #5 + mov r3, #2 + strh r3, [r2, #84] @ movhi + mov r3, #3 strh r3, [r2, #86] @ movhi + mov r3, #5 + strh r3, [r2, #90] @ movhi mov r3, #7 - strh r3, [r2, #88] @ movhi + strh r3, [r2, #92] @ movhi mov r3, #8 - strh r3, [r2, #90]! @ movhi -.L97: + strh r3, [r2, #94]! @ movhi +.L99: tst r3, #1 movne r1, #7 moveq r1, #6 @@ -579,32 +588,32 @@ BuildFlashLsbPageTable: add r3, r3, #1 strh r1, [r2, #2]! @ movhi uxth r3, r3 - cmp r3, #256 - bne .L97 - b .L91 -.L96: + cmp r3, #512 + bne .L99 + b .L93 +.L98: cmp r0, #5 - bne .L98 - ldr r2, .L121 -.L99: + bne .L100 + ldr r2, .L131 +.L101: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #16 - bne .L99 - ldr r2, .L121+12 -.L100: + bne .L101 + ldr r2, .L131+12 +.L102: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 - cmp r3, #496 - bne .L100 - b .L91 -.L98: + cmp r3, #1008 + bne .L102 + b .L93 +.L100: cmp r0, #6 - bne .L101 - ldr r1, .L121+16 -.L102: + bne .L103 + ldr r1, .L131+16 +.L104: cmp r3, #5 add r2, r3, r3, asl #1 movls r0, #0 @@ -618,67 +627,113 @@ BuildFlashLsbPageTable: add r3, r3, #1 strh r2, [r1, #2]! @ movhi uxth r3, r3 - cmp r3, #256 - bne .L102 - b .L91 -.L101: - cmp r0, #9 - bne .L103 - ldr r2, .L121+8 - movw r1, #509 - strh r3, [r2, #76] @ movhi - mov r3, #1 - strh r3, [r2, #78] @ movhi - mov r3, #2 - strh r3, [r2, #80]! @ movhi - mov r3, #3 -.L104: - strh r3, [r2, #2]! @ movhi - add r3, r3, #2 - uxth r3, r3 - cmp r3, r1 + cmp r3, #512 bne .L104 - b .L91 + b .L93 .L103: - cmp r0, #10 - bne .L91 - ldr r2, .L121 -.L105: - mov r1, r3, asl #1 - strh r3, [r1, r2] @ movhi - add r3, r3, #1 - cmp r3, #63 + cmp r0, #9 bne .L105 - ldr r2, .L121+20 - movw r1, #961 + ldr r2, .L131+8 + movw r1, #1021 + strh r3, [r2, #80] @ movhi + mov r3, #1 + strh r3, [r2, #82] @ movhi + mov r3, #2 + strh r3, [r2, #84]! @ movhi + mov r3, #3 .L106: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 bne .L106 - b .L91 -.L88: + b .L93 +.L105: + cmp r0, #10 + bne .L107 + ldr r2, .L131 +.L108: + mov r1, r3, asl #1 + strh r3, [r1, r2] @ movhi + add r3, r3, #1 + cmp r3, #63 + bne .L108 + ldr r2, .L131+20 + movw r1, #961 +.L109: + strh r3, [r2, #2]! @ movhi + add r3, r3, #2 + uxth r3, r3 + cmp r3, r1 + bne .L109 + b .L93 +.L107: + cmp r0, #11 + bne .L110 + ldr r2, .L131 + mov r3, #0 +.L111: + mov r1, r3, asl #1 + strh r3, [r1, r2] @ movhi + add r3, r3, #1 + cmp r3, #8 + bne .L111 + ldr r1, .L131+24 +.L112: + tst r3, #1 + movne r2, #7 + moveq r2, #6 + rsb r2, r2, r3, asl #1 + add r3, r3, #1 + strh r2, [r1, #2]! @ movhi + uxth r3, r3 + cmp r3, #512 + bne .L112 + b .L93 +.L110: + cmp r0, #12 + bne .L93 + ldr r3, .L131+8 + mov r2, #0 + strh r2, [r3, #80] @ movhi + mov r2, #1 + strh r2, [r3, #82] @ movhi + mov r2, #2 + strh r2, [r3, #84] @ movhi + mov r2, #3 + strh r2, [r3, #86]! @ movhi + mov r2, #4 +.L113: + sub r1, r2, #1 + add r1, r1, r2, lsr #1 + add r2, r2, #1 + strh r1, [r3, #2]! @ movhi + uxth r2, r2 + cmp r2, #512 + bne .L113 + b .L93 +.L90: uxth r1, r3 cmp r1, r4 - bcs .L120 + bcs .L130 mov r1, r3, asl #1 add r3, r3, #1 ldrh r1, [r1, r2] mov ip, r1, asl #1 strh r1, [r0, ip] @ movhi - b .L88 -.L120: + b .L90 +.L130: ldmfd sp!, {r4, pc} -.L122: +.L132: .align 2 -.L121: - .word .LANCHOR0+76 - .word .LANCHOR0+1100 +.L131: + .word .LANCHOR0+80 + .word .LANCHOR0+1104 .word .LANCHOR0 - .word .LANCHOR0+106 - .word .LANCHOR0+74 - .word .LANCHOR0+200 + .word .LANCHOR0+110 + .word .LANCHOR0+78 + .word .LANCHOR0+204 + .word .LANCHOR0+94 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 2 @@ -702,100 +757,101 @@ FlashDieInfoInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r3, .L139 - ldr r4, .L139+4 - ldr r9, .L139+8 + ldr r3, .L149 + ldr r4, .L149+4 + ldr r9, .L149+8 ldrh r0, [r3, #10] - strb r5, [r4, #3148] - strb r5, [r4, #3149] + strb r5, [r4, #3152] + strb r5, [r4, #3153] bl FlashBlockAlignInit mov r1, r5 mov r2, #8 - add r0, r4, #3152 + ldr r0, .L149+12 bl ftl_memset mov r1, r5 mov r2, #32 - ldr r0, .L139+12 + ldr r0, .L149+16 bl ftl_memset - ldr r0, .L139+16 + ldr r0, .L149+20 mov r1, r5 mov r2, #128 bl ftl_memset - ldr r7, [r4, #3320] + ldr r7, [r4, #44] add r6, r7, #1 -.L126: +.L136: mov r0, r6 add r1, r9, r5, asl #3 ldrb r2, [r7] @ zero_extendqisi2 bl FlashMemCmp8 - ldr r8, .L139+8 + ldr r8, .L149+8 cmp r0, #0 - bne .L125 - ldrb r3, [r4, #3148] @ zero_extendqisi2 + bne .L135 + ldrb r3, [r4, #3152] @ zero_extendqisi2 add r2, r4, r3, asl #2 - str r0, [r2, #3160] + str r0, [r2, #3164] add r2, r3, #1 add r3, r4, r3 - strb r2, [r4, #3148] - strb r5, [r3, #3152] -.L125: + strb r2, [r4, #3152] + strb r5, [r3, #3156] +.L135: add r5, r5, #1 cmp r5, #4 - bne .L126 - ldrb r3, [r4, #3148] @ zero_extendqisi2 - strb r3, [r4, #3149] + bne .L136 + ldrb r3, [r4, #3152] @ zero_extendqisi2 + strb r3, [r4, #3153] ldrb r3, [r7, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L127 -.L131: + beq .L137 +.L141: ldrb r3, [r7, #13] @ zero_extendqisi2 - ldrb r2, [r4, #3148] @ zero_extendqisi2 + ldrb r2, [r4, #3152] @ zero_extendqisi2 smulbb r2, r2, r3 ldrh r3, [r7, #14] smulbb r3, r2, r3 movw r2, #3324 strh r3, [r4, r2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L127: - ldr r3, .L139+4 +.L137: + ldr r3, .L149+4 mov r5, #0 ldr r9, [r3, #4] -.L130: +.L140: mov r0, r6 add r1, r8, r5, asl #3 ldrb r2, [r7] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L128 + bne .L138 ldrb r1, [r7, #13] @ zero_extendqisi2 ldrh r3, [r7, #14] - ldrb r2, [r4, #3148] @ zero_extendqisi2 + ldrb r2, [r4, #3152] @ zero_extendqisi2 mul r1, r9, r1 and r3, r3, #65280 add r0, r4, r2, asl #2 mul r3, r3, r1 - str r3, [r0, #3160] + str r3, [r0, #3164] ldrb r1, [r7, #23] @ zero_extendqisi2 cmp r1, #0 movne r3, r3, asl #1 - strne r3, [r0, #3160] + strne r3, [r0, #3164] add r3, r2, #1 add r2, r4, r2 - strb r3, [r4, #3148] - strb r5, [r2, #3152] -.L128: + strb r3, [r4, #3152] + strb r5, [r2, #3156] +.L138: add r5, r5, #1 cmp r5, #4 - bne .L130 - b .L131 -.L140: + bne .L140 + b .L141 +.L150: .align 2 -.L139: +.L149: .word .LANCHOR1+256 .word .LANCHOR0 .word IDByte - .word .LANCHOR0+3160 - .word .LANCHOR0+3192 + .word .LANCHOR0+3156 + .word .LANCHOR0+3164 + .word .LANCHOR0+3196 .fnend .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 @@ -808,13 +864,13 @@ FlashReadIdbData: stmfd sp!, {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L143 + ldr r1, .L153 bl ftl_memcpy mov r0, #0 ldmfd sp!, {r3, pc} -.L144: +.L154: .align 2 -.L143: +.L153: .word .LANCHOR0+3328 .fnend .size FlashReadIdbData, .-FlashReadIdbData @@ -828,43 +884,43 @@ FlashLoadPhyInfoInRam: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r6, #0 - ldr r8, .L158 -.L149: + ldr r8, .L168 +.L159: mov r4, r6, asl #5 - ldr r1, .L158+4 + ldr r1, .L168+4 add r0, r4, #1 ldrb r2, [r8, r6, asl #5] @ zero_extendqisi2 add r0, r8, r0 - ldr r5, .L158+8 + ldr r5, .L168+8 bl FlashMemCmp8 add r9, r5, #288 subs r7, r0, #0 - bne .L146 + bne .L156 adds r9, r9, r4 - beq .L152 + beq .L162 add r4, r5, r4 - add r5, r5, #2944 + add r5, r5, #3040 ldrb r3, [r4, #310] @ zero_extendqisi2 mov r4, r7 - b .L151 -.L146: + b .L161 +.L156: add r6, r6, #1 - cmp r6, #83 - bne .L149 - b .L152 -.L157: + cmp r6, #86 + bne .L159 + b .L162 +.L167: add r4, r4, #1 cmp r4, #4 - beq .L150 -.L151: + beq .L160 +.L161: ldrb r2, [r5, r4, asl #5] @ zero_extendqisi2 cmp r2, r3 - bne .L157 -.L150: - ldr r6, .L158+12 + bne .L167 +.L160: + ldr r6, .L168+12 mov r2, #32 - ldr r1, .L158+16 - ldr r0, .L158+20 + ldr r1, .L168+16 + ldr r0, .L168+20 add r1, r1, r4, asl #5 bl ftl_memcpy mov r0, r6 @@ -873,21 +929,21 @@ FlashLoadPhyInfoInRam: bl ftl_memcpy ldrh r0, [r6, #10] bl FlashBlockAlignInit - b .L147 -.L152: + b .L157 +.L162: mvn r7, #0 -.L147: +.L157: mov r0, r7 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L159: +.L169: .align 2 -.L158: +.L168: .word .LANCHOR1+288 .word IDByte .word .LANCHOR1 .word .LANCHOR1+256 - .word .LANCHOR1+2944 - .word .LANCHOR0+44 + .word .LANCHOR1+3040 + .word .LANCHOR0+48 .fnend .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam .align 2 @@ -898,7 +954,7 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L161 + ldr r3, .L171 ldr r2, [r3, #-2808] ldr r1, [r2] str r1, [r3, #-2804] @@ -917,9 +973,9 @@ ftl_flash_suspend: str r1, [r3, #-2780] str r2, [r3, #-2776] bx lr -.L162: +.L172: .align 2 -.L161: +.L171: .word .LANCHOR2 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend @@ -935,9 +991,9 @@ LogAddr2PhyAddr: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r9, r3 - ldr r3, .L169 + ldr r3, .L179 mov fp, r1 - ldr r7, .L169+4 + ldr r7, .L179+4 mov r5, r0 mov r8, r2 ldrh r4, [r3, #12] @@ -963,16 +1019,16 @@ LogAddr2PhyAddr: ubfx r1, r3, #0, #10 rsb r6, r4, r6 uxth r6, r6 - bne .L165 - ldr r3, .L169+8 + bne .L175 + ldr r3, .L179+8 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 addeq r1, r7, r1, asl #1 - ldreqh r1, [r1, #76] -.L165: + ldreqh r1, [r1, #80] +.L175: add lr, r7, r0, asl #2 ldrb r3, [sp, #48] @ zero_extendqisi2 - ldr ip, [lr, #3160] + ldr ip, [lr, #3164] cmp r3, #1 mla ip, r10, r6, ip add r1, ip, r1 @@ -988,9 +1044,9 @@ LogAddr2PhyAddr: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L170: +.L180: .align 2 -.L169: +.L179: .word .LANCHOR2-2772 .word .LANCHOR0 .word .LANCHOR2 @@ -1009,45 +1065,46 @@ ftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r2, .L176 + ldr r2, .L186 + ldr r0, .L186+4 mov ip, #1 - add r2, r2, #3152 - ldr r3, [r2, #168] + ldr r3, [r2, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 - ldr r3, [r2, #-3148] + ldr r3, [r2, #4] smulbb r3, r1, r3 strh r3, [r4, #4] @ unaligned - ldr r3, .L176+4 + ldr r3, .L186+8 ldrb r1, [r3, #-2743] @ zero_extendqisi2 ldr r3, [r3, #-2740] strb r1, [r4, #7] str r3, [r4] @ unaligned - ldr r3, [r2, #168] - ldrb r0, [r2, #-4] @ zero_extendqisi2 + ldr r3, [r2, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 strb r1, [r4, #6] mov r1, #32 strb r1, [r4, #8] + ldrb r1, [r2, #3152] @ zero_extendqisi2 ldrb r3, [r3, #7] @ zero_extendqisi2 strb r3, [r4, #9] mov r3, #0 strb r3, [r4, #10] -.L172: - uxtb r1, r3 - cmp r1, r0 - bcs .L175 - ldrb lr, [r3, r2] @ zero_extendqisi2 +.L182: + uxtb r2, r3 + cmp r2, r1 + bcs .L185 + ldrb lr, [r3, r0] @ zero_extendqisi2 add r3, r3, #1 - ldrb r1, [r4, #10] @ zero_extendqisi2 - orr r1, r1, ip, asl lr - strb r1, [r4, #10] - b .L172 -.L175: + ldrb r2, [r4, #10] @ zero_extendqisi2 + orr r2, r2, ip, asl lr + strb r2, [r4, #10] + b .L182 +.L185: ldmfd sp!, {r4, pc} -.L177: +.L187: .align 2 -.L176: +.L186: .word .LANCHOR0 + .word .LANCHOR0+3156 .word .LANCHOR2 .fnend .size ftl_read_flash_info, .-ftl_read_flash_info @@ -1059,14 +1116,14 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L179 + ldr r3, .L189 ldr r2, [r3, #-2736] str r0, [r3, #-2736] mov r0, r2 bx lr -.L180: +.L190: .align 2 -.L179: +.L189: .word .LANCHOR2 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -1078,13 +1135,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L182 - ldr r3, [r3, #3320] + ldr r3, .L192 + ldr r3, [r3, #44] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L183: +.L193: .align 2 -.L182: +.L192: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -1107,16 +1164,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L186 + ldr r3, .L196 add r0, r3, r0, asl #3 ldrb r2, [r0, #16] @ zero_extendqisi2 ldr r0, [r0, #12] add r2, r2, #8 add r0, r0, r2, asl #8 bx lr -.L187: +.L197: .align 2 -.L186: +.L196: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -1128,16 +1185,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L189 + ldr r3, .L199 ldr r2, [r3, #-2808] mov r3, r0, asl #8 orr r0, r3, r0, asl #16 orr r3, r0, #1 str r3, [r2, #304] bx lr -.L190: +.L200: .align 2 -.L189: +.L199: .word .LANCHOR2 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara @@ -1149,14 +1206,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L192 + ldr r3, .L202 orr r0, r0, #16640 ldr r3, [r3, #-2808] str r0, [r3, #344] bx lr -.L193: +.L203: .align 2 -.L192: +.L202: .word .LANCHOR2 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv @@ -1168,7 +1225,7 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L197 + ldr r3, .L207 cmp r0, #0 ldr r2, [r3, #-2808] ldr r3, [r2] @@ -1176,9 +1233,9 @@ NandcSetDdrMode: orrne r3, r3, #253952 str r3, [r2] bx lr -.L198: +.L208: .align 2 -.L197: +.L207: .word .LANCHOR2 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode @@ -1190,18 +1247,18 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L206 + ldr r3, .L216 ands r1, r0, #6 ldr r2, [r3, #-2808] ldr r3, [r2] bfieq r3, r1, #13, #1 - beq .L202 + beq .L212 orr r3, r3, #24576 movw r1, #8322 bfc r3, #15, #1 str r1, [r2, #344] orr r3, r3, #196608 - ldr r1, .L206+4 + ldr r1, .L216+4 tst r0, #4 orrne r3, r3, #32768 str r1, [r2, #304] @@ -1209,13 +1266,13 @@ NandcSetMode: str r1, [r2, #308] mov r1, #39 str r1, [r2, #308] -.L202: +.L212: str r3, [r2] mov r0, #0 bx lr -.L207: +.L217: .align 2 -.L206: +.L216: .word .LANCHOR2 .word 1052675 .fnend @@ -1228,7 +1285,7 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L209 + ldr r2, .L219 add r0, r2, r0, asl #3 mov r2, #1 ldr r1, [r0, #12] @@ -1238,9 +1295,9 @@ NandcFlashCs: bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L210: +.L220: .align 2 -.L209: +.L219: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -1252,7 +1309,7 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L212 + ldr r3, .L222 add r0, r3, r0, asl #3 ldr r2, [r0, #12] ldr r3, [r2] @@ -1260,9 +1317,9 @@ NandcFlashDeCs: bfc r3, #17, #1 str r3, [r2] bx lr -.L213: +.L223: .align 2 -.L212: +.L222: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs @@ -1276,18 +1333,18 @@ NandcDelayns: stmfd sp!, {r3, lr} .save {r3, lr} add r0, r0, #996 - ldr r3, .L216 + ldr r3, .L226 add r0, r0, #3 umull r0, r1, r0, r3 - ldr r3, .L216+4 + ldr r3, .L226+4 ldr r3, [r3, #8] mov r0, r1, lsr #6 blx r3 mov r0, #0 ldmfd sp!, {r3, pc} -.L217: +.L227: .align 2 -.L216: +.L226: .word 274877907 .word arm_delay_ops .fnend @@ -1302,7 +1359,7 @@ FlashReadStatus: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, #112 - ldr r3, .L220 + ldr r3, .L230 add r0, r3, r0, asl #3 ldrb r4, [r0, #16] @ zero_extendqisi2 ldr r5, [r0, #12] @@ -1313,9 +1370,9 @@ FlashReadStatus: bl NandcDelayns ldr r0, [r5, r4, asl #8] ldmfd sp!, {r3, r4, r5, pc} -.L221: +.L231: .align 2 -.L220: +.L230: .word .LANCHOR0 .fnend .size FlashReadStatus, .-FlashReadStatus @@ -1329,51 +1386,51 @@ ToshibaSetRRPara: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r7, r1, r1, asl #2 - ldr r8, .L232 + ldr r8, .L242 mov r5, r0 - ldr r10, .L232+4 + ldr r10, .L242+4 mov r6, r1 - add r9, r8, #3072 + add r9, r8, #3168 mov r4, #0 -.L223: +.L233: ldrb r3, [r10] @ zero_extendqisi2 cmp r4, r3 - bcs .L231 + bcs .L241 mov r3, #85 str r3, [r5, #8] ldrsb r3, [r4, r9] mov r0, #200 str r3, [r5, #4] bl NandcDelayns - ldr r3, .L232+8 + ldr r3, .L242+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #34 addeq r3, r4, r7 addeq r3, r9, r3 - beq .L230 + beq .L240 cmp r3, #35 addne r3, r8, r6 - addne r3, r3, #3216 + addne r3, r3, #3312 ldrnesb r3, [r3] - bne .L229 - ldr r3, .L232+12 + bne .L239 + ldr r3, .L242+12 add r2, r4, r7 add r3, r3, r2 -.L230: +.L240: ldrsb r3, [r3, #5] -.L229: +.L239: str r3, [r5] add r4, r4, #1 - b .L223 -.L231: + b .L233 +.L241: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L233: +.L243: .align 2 -.L232: +.L242: .word .LANCHOR1 .word g_maxRegNum .word g_retryMode - .word .LANCHOR1+3120 + .word .LANCHOR1+3216 .fnend .size ToshibaSetRRPara, .-ToshibaSetRRPara .align 2 @@ -1383,21 +1440,21 @@ SamsungSetRRPara: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L239 + ldr r3, .L249 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r1, r3, r1, asl #2 - ldr r8, .L239+4 + ldr r8, .L249+4 mov r4, #0 add r5, r1, #3 mov r6, r0 mov r7, r3 mov r9, #161 mov r10, r4 -.L235: +.L245: ldrb r3, [r8] @ zero_extendqisi2 cmp r4, r3 - bcs .L238 + bcs .L248 str r9, [r6, #8] mov r0, #300 str r10, [r6] @@ -1407,13 +1464,13 @@ SamsungSetRRPara: ldrsb r3, [r5, #1]! str r3, [r6] bl NandcDelayns - b .L235 -.L238: + b .L245 +.L248: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L240: +.L250: .align 2 -.L239: - .word .LANCHOR1+3224 +.L249: + .word .LANCHOR1+3320 .word g_maxRegNum .fnend .size SamsungSetRRPara, .-SamsungSetRRPara @@ -1428,39 +1485,39 @@ HynixSetRRPara: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r6, r3 - ldr r3, .L250 + ldr r3, .L260 mov r10, r2 mov r7, r0 mov r9, r1 - ldr r2, [r3, #3320] + ldr r2, [r3, #44] ldrb r4, [r2, #19] @ zero_extendqisi2 mov r2, r0, asl #3 cmp r4, #6 - ldreq r4, .L250+4 + ldreq r4, .L260+4 addeq r4, r4, r0, asl #6 addeq r4, r4, #20 addeq r4, r4, r6, asl #2 - beq .L243 -.L242: + beq .L253 +.L252: cmp r4, #7 - bne .L244 - ldr r1, .L250+4 + bne .L254 + ldr r1, .L260+4 mov r4, #160 mla r4, r4, r0, r1 add r1, r6, r6, asl #2 add r4, r4, #28 add r4, r4, r1, asl #1 - b .L243 -.L244: + b .L253 +.L254: cmp r4, #8 addne r4, r6, r2 addeq r1, r6, r6, asl #2 - ldrne r1, .L250+4 - ldreq r4, .L250+8 + ldrne r1, .L260+4 + ldreq r4, .L260+8 addne r4, r1, r4, asl #3 addeq r4, r4, r1 addne r4, r4, #20 -.L243: +.L253: add r3, r3, r2 mov r0, r7 sub r9, r9, #1 @@ -1474,9 +1531,9 @@ HynixSetRRPara: mov r3, #54 add r5, r8, fp str r3, [r5, #2056] -.L246: +.L256: cmp r2, r10 - beq .L249 + beq .L259 ldrb r3, [r2, #1]! @ zero_extendqisi2 mov r0, #200 str r3, [r5, #2052] @@ -1485,22 +1542,22 @@ HynixSetRRPara: ldrsb r3, [r4, #1]! str r3, [r5, #2048] ldr r2, [sp, #4] - b .L246 -.L249: + b .L256 +.L259: add r8, r8, fp mov r3, #22 mov r0, r7 str r3, [r8, #2056] bl NandcFlashDeCs - ldr r3, .L250+12 + ldr r3, .L260+12 add r7, r3, r7 strb r6, [r7, #-1880] add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L251: +.L261: .align 2 -.L250: +.L260: .word .LANCHOR0 .word .LANCHOR2-2732 .word .LANCHOR2-2704 @@ -1514,8 +1571,8 @@ FlashSetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L260 - ldr r3, [r3, #3320] + ldr r3, .L270 + ldr r3, [r3, #44] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 cmp r3, #7 @@ -1523,25 +1580,25 @@ FlashSetReadRetryDefault: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, #0 - ldr r5, .L260+4 - ldr r6, .L260+8 -.L253: + ldr r5, .L270+4 + ldr r6, .L270+8 +.L263: ldrb r3, [r5, r4, asl #3] @ zero_extendqisi2 uxtb r0, r4 cmp r3, #173 - bne .L254 + bne .L264 ldrb r1, [r6, #-2731] @ zero_extendqisi2 mov r3, #0 - ldr r2, .L260+12 + ldr r2, .L270+12 bl HynixSetRRPara -.L254: +.L264: add r4, r4, #1 cmp r4, #4 - bne .L253 + bne .L263 ldmfd sp!, {r4, r5, r6, pc} -.L261: +.L271: .align 2 -.L260: +.L270: .word .LANCHOR0 .word IDByte .word .LANCHOR2 @@ -1555,11 +1612,11 @@ FlashReadStatusEN: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L273 + ldr ip, .L283 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} add r0, ip, r0, asl #3 - ldr r3, [ip, #3320] + ldr r3, [ip, #44] ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] ldrb r3, [r3, #8] @ zero_extendqisi2 @@ -1569,35 +1626,35 @@ FlashReadStatusEN: add r5, r5, #8 movne r2, #112 strne r2, [r3, #2056] - bne .L267 + bne .L277 cmp r2, #0 add r3, r4, r3 - ldrneb r2, [ip, #58] @ zero_extendqisi2 - ldreqb r2, [ip, #57] @ zero_extendqisi2 + ldrneb r2, [ip, #62] @ zero_extendqisi2 + ldreqb r2, [ip, #61] @ zero_extendqisi2 str r2, [r3, #2056] - ldrb r0, [ip, #59] @ zero_extendqisi2 + ldrb r0, [ip, #63] @ zero_extendqisi2 cmp r0, #0 addne ip, r4, r5, asl #8 movne r2, #0 - beq .L267 -.L266: + beq .L277 +.L276: cmp r2, r0 - bcs .L267 + bcs .L277 mov r3, r2, asl #3 add r2, r2, #1 mov r3, r1, lsr r3 uxtb r3, r3 str r3, [ip, #4] - b .L266 -.L267: + b .L276 +.L277: mov r0, #80 bl NandcDelayns ldr r0, [r4, r5, asl #8] uxtb r0, r0 ldmfd sp!, {r3, r4, r5, pc} -.L274: +.L284: .align 2 -.L273: +.L283: .word .LANCHOR0 .fnend .size FlashReadStatusEN, .-FlashReadStatusEN @@ -1613,16 +1670,19 @@ FlashWaitReadyEN: mov r4, r0 mov r5, r1 mov r6, r2 -.L279: +.L286: mov r0, r4 mov r1, r5 mov r2, r6 bl FlashReadStatusEN cmp r0, #255 - beq .L279 + beq .L286 tst r0, #64 - beq .L279 - ldmfd sp!, {r4, r5, r6, pc} + ldmnefd sp!, {r4, r5, r6, pc} + mov r0, #1 + mov r1, #3 + bl usleep_range + b .L286 .fnend .size FlashWaitReadyEN, .-FlashWaitReadyEN .align 2 @@ -1634,40 +1694,40 @@ FlashWaitCmdDone: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r5, .L291 + ldr r5, .L300 add r4, r5, r0, asl #4 - ldr r3, [r4, #3200] - ldrb r7, [r4, #3192] @ zero_extendqisi2 + ldr r3, [r4, #3204] + ldrb r7, [r4, #3196] @ zero_extendqisi2 cmp r3, #0 - beq .L285 + beq .L294 mov r6, r0 mov r0, r7 add r5, r5, r6, asl #2 bl NandcFlashCs - ldr r1, [r4, #3196] + ldr r1, [r4, #3200] mov r0, r7 - ldr r2, [r5, #3160] + ldr r2, [r5, #3164] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN mov r5, r0 mov r0, r7 bl NandcFlashDeCs - ldr r2, [r4, #3200] + ldr r2, [r4, #3204] sbfx r3, r5, #0, #1 str r3, [r2] mov r2, #0 - ldr r1, [r4, #3204] - str r2, [r4, #3200] + ldr r1, [r4, #3208] + str r2, [r4, #3204] cmp r1, r2 strne r3, [r1] - strne r2, [r4, #3204] -.L285: + strne r2, [r4, #3208] +.L294: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L292: +.L301: .align 2 -.L291: +.L300: .word .LANCHOR0 .fnend .size FlashWaitCmdDone, .-FlashWaitCmdDone @@ -1677,7 +1737,7 @@ flash_read_ecc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L295 + ldr r2, .L304 stmfd sp!, {r4, lr} .save {r4, lr} add r0, r2, r0, asl #3 @@ -1703,9 +1763,9 @@ flash_read_ecc: cmp r0, r3 movcc r0, r3 ldmfd sp!, {r4, pc} -.L296: +.L305: .align 2 -.L295: +.L304: .word .LANCHOR0 .fnend .size flash_read_ecc, .-flash_read_ecc @@ -1716,34 +1776,34 @@ NandcWaitFlashReadyNoDelay: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L303 + ldr r3, .L312 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, asl #3 - ldr r4, .L303+4 + ldr r4, .L312+4 ldr r5, [r0, #12] -.L299: +.L308: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L300 + bne .L309 mov r0, #10 bl NandcDelayns subs r4, r4, #1 - bne .L299 + bne .L308 mvn r0, #0 - b .L298 -.L300: + b .L307 +.L309: mov r0, #0 -.L298: +.L307: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L304: +.L313: .align 2 -.L303: +.L312: .word .LANCHOR0 .word 100000 .fnend @@ -1755,36 +1815,37 @@ NandcWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L311 + ldr r3, .L320 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, asl #3 - ldr r4, .L311+4 + ldr r4, .L320+4 ldr r5, [r0, #12] - mov r0, #150 + mov r0, #130 bl NandcDelayns -.L307: +.L316: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L308 - mov r0, #10 - bl NandcDelayns + bne .L317 + mov r0, #1 + mov r1, #2 + bl usleep_range subs r4, r4, #1 - bne .L307 + bne .L316 mvn r0, #0 - b .L306 -.L308: + b .L315 +.L317: mov r0, #0 -.L306: +.L315: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L312: +.L321: .align 2 -.L311: +.L320: .word .LANCHOR0 .word 100000 .fnend @@ -1796,7 +1857,7 @@ FlashReset: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L315 + ldr r3, .L324 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} add r3, r3, r0, asl #3 @@ -1812,9 +1873,9 @@ FlashReset: mov r0, r4 ldmfd sp!, {r4, r5, r6, lr} b NandcFlashDeCs -.L316: +.L325: .align 2 -.L315: +.L324: .word .LANCHOR0 .fnend .size FlashReset, .-FlashReset @@ -1825,21 +1886,26 @@ flash_enter_slc_mode: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - ldr r3, .L320 - ldrb r3, [r3, #-2744] @ zero_extendqisi2 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + ldr r6, .L333 + ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - ldmeqfd sp!, {r3, r4, r5, pc} + ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} mov r5, r0 bl NandcFlashCs - ldr r3, .L320+4 - mov r0, #100 + ldr r3, .L333+4 add r3, r3, r5, asl #3 - ldr r4, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 - add r4, r4, r3, asl #8 + ldrb r8, [r3, #16] @ zero_extendqisi2 + ldr r7, [r3, #12] + ldr r3, .L333+8 + mov r8, r8, asl #8 + ldrb r3, [r3, r5, asl #3] @ zero_extendqisi2 + cmp r3, #44 + bne .L328 + add r4, r7, r8 mov r3, #239 + mov r0, #50 str r3, [r4, #2056] mov r3, #145 str r3, [r4, #2052] @@ -1852,18 +1918,23 @@ flash_enter_slc_mode: str r3, [r4, #2048] str r3, [r4, #2048] bl NandcDelayns +.L328: + add r7, r7, r8 mov r0, r5 bl NandcWaitFlashReadyNoDelay mov r3, #218 mov r0, r5 - str r3, [r4, #2056] - ldmfd sp!, {r3, r4, r5, lr} - b NandcWaitFlashReady -.L321: + str r3, [r7, #2056] + bl NandcWaitFlashReady + mov r3, #2 + strb r3, [r6, #-1876] + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L334: .align 2 -.L320: +.L333: .word .LANCHOR2 .word .LANCHOR0 + .word IDByte .fnend .size flash_enter_slc_mode, .-flash_enter_slc_mode .align 2 @@ -1873,21 +1944,26 @@ flash_exit_slc_mode: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - ldr r3, .L325 - ldrb r3, [r3, #-2744] @ zero_extendqisi2 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + ldr r6, .L342 + ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - ldmeqfd sp!, {r3, r4, r5, pc} + ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} mov r5, r0 bl NandcFlashCs - ldr r3, .L325+4 - mov r0, #100 + ldr r3, .L342+4 add r3, r3, r5, asl #3 - ldr r4, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 - add r4, r4, r3, asl #8 + ldrb r8, [r3, #16] @ zero_extendqisi2 + ldr r7, [r3, #12] + ldr r3, .L342+8 + mov r8, r8, asl #8 + ldrb r3, [r3, r5, asl #3] @ zero_extendqisi2 + cmp r3, #44 + bne .L337 + add r4, r7, r8 mov r3, #239 + mov r0, #50 str r3, [r4, #2056] mov r3, #145 str r3, [r4, #2052] @@ -1901,18 +1977,23 @@ flash_exit_slc_mode: str r3, [r4, #2048] str r3, [r4, #2048] bl NandcDelayns +.L337: + add r7, r7, r8 mov r0, r5 bl NandcWaitFlashReadyNoDelay mov r3, #223 mov r0, r5 - str r3, [r4, #2056] - ldmfd sp!, {r3, r4, r5, lr} - b NandcWaitFlashReady -.L326: + str r3, [r7, #2056] + bl NandcWaitFlashReady + mov r3, #0 + strb r3, [r6, #-1876] + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L343: .align 2 -.L325: +.L342: .word .LANCHOR2 .word .LANCHOR0 + .word IDByte .fnend .size flash_exit_slc_mode, .-flash_exit_slc_mode .align 2 @@ -1953,14 +2034,14 @@ FlashSetInterfaceMode: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L352 + ldr r3, .L369 stmfd sp!, {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 lr, #0 - ldrb r2, [r3, #-1876] @ zero_extendqisi2 + ldrb r2, [r3, #-1875] @ zero_extendqisi2 mov r4, #239 - ldr r7, .L352+4 + ldr r7, .L369+4 mov r5, #128 and r3, r2, #1 and r2, r2, #4 @@ -1972,71 +2053,71 @@ FlashSetInterfaceMode: mov r9, #32 mov r10, #5 str r3, [sp] -.L339: - ldr r3, .L352+8 +.L356: + ldr r3, .L369+8 ldrb ip, [lr, r7] @ zero_extendqisi2 ldr r1, [r3, lr]! cmp ip, #69 cmpne ip, #152 ldrb r3, [r3, #4] @ zero_extendqisi2 - beq .L330 + beq .L347 cmp ip, #44 cmpne ip, #173 - bne .L331 -.L330: + bne .L348 +.L347: cmp r0, #1 - bne .L332 + bne .L349 ldr fp, [sp, #4] cmp fp, #0 - beq .L331 + beq .L348 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r0, [fp, #2052] - beq .L351 + beq .L368 cmp ip, #44 streq r0, [fp, #2052] strne r5, [fp, #2052] streq r10, [fp, #2048] strne r0, [fp, #2048] - b .L337 -.L332: + b .L354 +.L349: ldr fp, [sp] cmp fp, #0 - beq .L331 + beq .L348 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r6, [fp, #2052] streq r9, [fp, #2048] - beq .L337 + beq .L354 cmp ip, #44 streq r6, [fp, #2052] streq r8, [fp, #2048] - beq .L337 + beq .L354 str r5, [fp, #2052] -.L351: +.L368: str r2, [fp, #2048] -.L337: +.L354: add r3, r1, r3 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L331: +.L348: add lr, lr, #8 cmp lr, #32 - bne .L339 + bne .L356 mov r0, #0 bl NandcWaitFlashReady mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L353: +.L370: .align 2 -.L352: +.L369: .word .LANCHOR2 .word IDByte .word .LANCHOR0+12 @@ -2049,11 +2130,11 @@ FlashReadSpare: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L356 + ldr ip, .L373 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} add ip, ip, r0, asl #3 - ldr r3, .L356+4 + ldr r3, .L373+4 mov r5, r2 ldrb r2, [ip, #16] @ zero_extendqisi2 ldr r4, [ip, #12] @@ -2077,9 +2158,9 @@ FlashReadSpare: ldr r3, [r4, #2048] strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L357: +.L374: .align 2 -.L356: +.L373: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2091,7 +2172,7 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L360 + ldr r2, .L377 stmfd sp!, {r4, lr} .save {r4, lr} add r2, r2, r0, asl #3 @@ -2121,9 +2202,9 @@ SandiskProgTestBadBlock: ldr r0, [r4, #2048] and r0, r0, #1 ldmfd sp!, {r4, pc} -.L361: +.L378: .align 2 -.L360: +.L377: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -2144,16 +2225,16 @@ SandiskSetRRPara: mov r0, #200 mov r4, r1 bl NandcDelayns - ldr r1, .L370 - ldr r0, .L370+4 + ldr r1, .L387 + ldr r0, .L387+4 add r4, r4, r4, asl #2 - ldr ip, .L370+8 + ldr ip, .L387+8 sub lr, r1, #48 mov r2, #0 -.L363: +.L380: ldrb r3, [r0] @ zero_extendqisi2 cmp r2, r3 - bcs .L369 + bcs .L386 ldrb r3, [ip] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 @@ -2162,15 +2243,15 @@ SandiskSetRRPara: add r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L363 -.L369: + b .L380 +.L386: mov r0, #0 ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L371: +.L388: .align 2 -.L370: - .word .LANCHOR1+3120 +.L387: + .word .LANCHOR1+3216 .word g_maxRegNum .word g_retryMode .fnend @@ -2187,7 +2268,7 @@ micron_auto_read_calibration_config: mov r4, r0 mov r5, r1 bl NandcWaitFlashReady - ldr r3, .L374 + ldr r3, .L391 mov r0, #200 add r2, r3, r4, asl #3 ldrb r4, [r2, #16] @ zero_extendqisi2 @@ -2204,9 +2285,9 @@ micron_auto_read_calibration_config: str r3, [r4, #2048] str r3, [r4, #2048] ldmfd sp!, {r3, r4, r5, pc} -.L375: +.L392: .align 2 -.L374: +.L391: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -2220,15 +2301,15 @@ FlashEraseSLc2KBlocks: stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r8, .L388 + ldr r8, .L405 .pad #20 sub sp, sp, #20 mov r6, r0 mov r9, r1 mov r7, r5 -.L377: +.L394: cmp r7, r9 - beq .L387 + beq .L404 rsb r3, r7, r9 add r2, sp, #8 add r0, r6, r5 @@ -2237,16 +2318,16 @@ FlashEraseSLc2KBlocks: str r3, [sp] add r3, sp, #12 bl LogAddr2PhyAddr - ldrb r2, [r8, #3148] @ zero_extendqisi2 + ldrb r2, [r8, #3152] @ zero_extendqisi2 ldr r3, [sp, #12] cmp r3, r2 mvncs r3, #0 strcs r3, [r6, r5] - bcs .L379 + bcs .L396 add r2, r8, r3 add r3, r8, r3, asl #4 - ldrb r4, [r2, #3152] @ zero_extendqisi2 - strb r4, [r3, #3192] + ldrb r4, [r2, #3156] @ zero_extendqisi2 + strb r4, [r3, #3196] mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -2278,37 +2359,197 @@ FlashEraseSLc2KBlocks: strne r3, [r6, r5] ldr r3, [r6, r5] cmn r3, #1 - bne .L381 - ldr r0, .L388+4 + bne .L398 + ldr r0, .L405+4 ldr r1, [sp, #8] bl printk -.L381: +.L398: mov r0, r4 bl NandcFlashDeCs -.L379: +.L396: add r7, r7, #1 add r5, r5, #36 - b .L377 -.L387: + b .L394 +.L404: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L389: +.L406: .align 2 -.L388: +.L405: .word .LANCHOR0 .word .LC1 .fnend .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks .align 2 + .global FlashEraseBlocks + .type FlashEraseBlocks, %function +FlashEraseBlocks: + .fnstart + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + mov r8, r2 + ldr r4, .L442 + .pad #28 + sub sp, sp, #28 + ldrb r5, [r4] @ zero_extendqisi2 + cmp r5, #0 + beq .L425 + mov r1, r2 + bl FlashEraseSLc2KBlocks + b .L409 +.L425: + ldr fp, .L442+4 + mov r9, r0 + mov r10, r1 +.L408: + cmp r5, r8 + bcs .L440 + mov r3, #36 + mov r1, #0 + mul r6, r3, r5 + add r2, sp, #16 + add r3, r9, r6 + str r3, [sp, #12] + rsb r3, r5, r8 + ldr r0, [sp, #12] + uxtb r3, r3 + str r3, [sp] + add r3, sp, #20 + bl LogAddr2PhyAddr + ldrb r3, [r4, #3152] @ zero_extendqisi2 + mov r7, r0 + ldr r0, [sp, #20] + cmp r0, r3 + mvncs r3, #0 + strcs r3, [r9, r6] + bcs .L411 + ldrb r3, [fp, #-1874] @ zero_extendqisi2 + cmp r3, #0 + add r3, r4, r0, asl #4 + ldr r3, [r3, #3204] + moveq r7, #0 + cmp r3, #0 + beq .L413 + uxtb r0, r0 + bl FlashWaitCmdDone +.L413: + ldr r2, [sp, #20] + cmp r7, #0 + ldr r0, [sp, #12] + addne ip, r6, #36 + addne ip, r9, ip + mov r3, r2, asl #4 + add r2, r4, r2 + add r1, r4, r3 + add r3, r4, r3 + ldrb r6, [r2, #3156] @ zero_extendqisi2 + str r0, [r1, #3204] + mov r0, #0 + str r0, [r1, #3208] + ldr r0, [sp, #16] + strne ip, [r1, #3208] + strb r6, [r3, #3196] + str r0, [r1, #3200] + mov r0, r6 + bl NandcFlashCs + cmp r10, #1 + mov r0, r6 + bne .L415 + ldr r3, .L442+4 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 + cmp r3, #0 + beq .L415 + bl flash_enter_slc_mode + b .L416 +.L415: + bl flash_exit_slc_mode +.L416: + ldr r3, [sp, #20] + mov r0, r6 + ldr r1, [sp, #16] + add r5, r5, r7 + add r3, r4, r3, asl #2 + ldr r2, [r3, #3164] + adds r2, r2, #0 + movne r2, #1 + bl FlashWaitReadyEN + mov r0, r6 + mov r2, r7 + ldr r1, [sp, #16] + bl FlashEraseCmd + mov r0, r6 + bl NandcFlashDeCs +.L411: + add r5, r5, #1 + b .L408 +.L440: + ldr r6, .L442+4 + mov r5, #0 + ldr r7, .L442+8 +.L418: + ldrb r3, [r4, #3152] @ zero_extendqisi2 + cmp r5, r3 + bcs .L441 + uxtb r0, r5 + bl FlashWaitCmdDone + cmp r10, #1 + bne .L419 + ldrb r3, [r6, #-2744] @ zero_extendqisi2 + cmp r3, #0 + beq .L419 + ldrb r0, [r7, r5, asl #4] @ zero_extendqisi2 + bl flash_exit_slc_mode +.L419: + add r5, r5, #1 + b .L418 +.L441: + ldr r3, .L442+4 + ldr r3, [r3, #-1872] + cmp r3, #0 + bne .L421 +.L423: + mov r0, #0 + b .L409 +.L421: + ldr r3, .L442+12 + ldrb r3, [r3] @ zero_extendqisi2 + cmp r3, #69 + bne .L423 + mov r3, #0 + mov r2, #36 + mov r1, r3 +.L422: + cmp r3, r8 + beq .L423 + mul r0, r2, r3 + add r3, r3, #1 + str r1, [r9, r0] + b .L422 +.L409: + add sp, sp, #28 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L443: + .align 2 +.L442: + .word .LANCHOR0 + .word .LANCHOR2 + .word .LANCHOR0+3196 + .word IDByte + .fnend + .size FlashEraseBlocks, .-FlashEraseBlocks + .align 2 .global HynixGetReadRetryDefault .type HynixGetReadRetryDefault, %function HynixGetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L499 + ldr r3, .L553 mvn r2, #83 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} @@ -2324,17 +2565,17 @@ HynixGetReadRetryDefault: strb r0, [r3, #-2727] strb r1, [r3, #-2726] strb r2, [r3, #-2725] - bne .L391 + bne .L445 mvn r2, #88 strb r2, [r3, #-2728] - ldr r3, .L499+4 + ldr r3, .L553+4 mvn r2, #8 mov r5, #7 - strb r2, [r3, #3305] - b .L452 -.L391: + strb r2, [r3, #3401] + b .L506 +.L445: cmp r4, #3 - bne .L393 + bne .L447 mvn r2, #79 strb r2, [r3, #-2728] mvn r2, #78 @@ -2350,10 +2591,10 @@ HynixGetReadRetryDefault: mvn r2, #73 strb r2, [r3, #-2722] mvn r2, #72 - b .L493 -.L393: + b .L547 +.L447: cmp r4, #4 - bne .L394 + bne .L448 mvn ip, #51 strb r0, [r3, #-2723] strb ip, [r3, #-2728] @@ -2366,14 +2607,14 @@ HynixGetReadRetryDefault: strb ip, [r3, #-2725] mvn ip, #50 strb ip, [r3, #-2724] -.L493: +.L547: mov r5, #8 strb r2, [r3, #-2721] mov r6, r5 - b .L392 -.L394: + b .L446 +.L448: cmp r4, #5 - bne .L395 + bne .L449 mov r2, #56 mov r5, #8 strb r2, [r3, #-2728] @@ -2383,10 +2624,10 @@ HynixGetReadRetryDefault: strb r2, [r3, #-2726] mov r2, #59 strb r2, [r3, #-2725] - b .L452 -.L395: + b .L506 +.L449: cmp r4, #6 - bne .L396 + bne .L450 mov r2, #14 mov r5, #12 strb r2, [r3, #-2728] @@ -2396,10 +2637,10 @@ HynixGetReadRetryDefault: strb r2, [r3, #-2726] mov r2, #17 strb r2, [r3, #-2725] - b .L452 -.L396: + b .L506 +.L450: cmp r4, #7 - bne .L397 + bne .L451 mvn r2, #79 mov r5, #12 strb r2, [r3, #-2728] @@ -2422,11 +2663,11 @@ HynixGetReadRetryDefault: strb r2, [r3, #-2720] mvn r2, #42 strb r2, [r3, #-2719] - b .L392 -.L397: + b .L446 +.L451: cmp r4, #8 mov r5, #7 - bne .L452 + bne .L506 mov r2, #6 strb r5, [r3, #-2727] strb r2, [r3, #-2728] @@ -2437,24 +2678,24 @@ HynixGetReadRetryDefault: mov r6, #5 mov r2, #10 strb r2, [r3, #-2724] - b .L392 -.L452: + b .L446 +.L506: mov r6, #4 -.L392: +.L446: sub r3, r4, #1 cmp r3, #1 - bhi .L489 - ldr r10, .L499+8 + bhi .L543 + ldr r10, .L553+8 mov r9, #0 -.L398: - ldr r3, .L499+12 +.L452: + ldr r3, .L553+12 uxtb r2, r9 - ldrb r1, [r3, #3148] @ zero_extendqisi2 + ldrb r1, [r3, #3152] @ zero_extendqisi2 cmp r1, r2 - bls .L405 + bls .L459 add r2, r3, r2 - ldr r8, .L499+16 - ldrb r2, [r2, #3152] @ zero_extendqisi2 + ldr r8, .L553+16 + ldrb r2, [r2, #3156] @ zero_extendqisi2 add r3, r3, r2, asl #3 add r4, r8, r2, asl #6 add r4, r4, #20 @@ -2465,7 +2706,7 @@ HynixGetReadRetryDefault: mov r2, r4 add r7, r1, r7, asl #8 mov r1, #55 -.L400: +.L454: str r1, [r7, #2056] mov r0, #80 ldrb r3, [r8, #1]! @ zero_extendqisi2 @@ -2480,23 +2721,23 @@ HynixGetReadRetryDefault: rsb r3, r4, r2 uxtb r3, r3 cmp r3, r6 - bcc .L400 + bcc .L454 mov r2, #0 -.L401: +.L455: add r0, r10, r2 mov r3, #1 -.L402: +.L456: ldrb r1, [r0, r3, asl #2] @ zero_extendqisi2 ldrb ip, [fp] @ zero_extendqisi2 add r1, r1, ip strb r1, [fp, r3, asl #3] add r3, r3, #1 cmp r3, #7 - bne .L402 + bne .L456 add r2, r2, #1 add fp, fp, #1 cmp r2, #4 - bne .L401 + bne .L455 mov r3, #0 add r9, r9, #1 strb r3, [r4, #16] @@ -2506,13 +2747,13 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L398 -.L489: + b .L452 +.L543: sub r3, r4, #3 cmp r3, #5 - bhi .L405 + bhi .L459 smulbb r8, r6, r5 - ldr fp, .L499 + ldr fp, .L553 mov r3, r8, asl #4 mov r8, r8, asr #1 str r3, [sp, #36] @@ -2520,27 +2761,27 @@ HynixGetReadRetryDefault: str r3, [sp, #4] mov r3, #0 str r3, [sp, #16] -.L406: +.L460: ldrb r3, [sp, #16] @ zero_extendqisi2 str r3, [sp, #12] - ldr r3, .L499+12 + ldr r3, .L553+12 ldr r2, [sp, #12] - ldrb r3, [r3, #3148] @ zero_extendqisi2 + ldrb r3, [r3, #3152] @ zero_extendqisi2 cmp r3, r2 - bhi .L450 -.L405: - ldr r3, .L499 + bhi .L504 +.L459: + ldr r3, .L553 strb r6, [r3, #-2731] strb r5, [r3, #-2730] add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L450: +.L504: ldr r2, [sp, #12] - ldr r3, .L499+12 + ldr r3, .L553+12 add r3, r3, r2 - ldrb r10, [r3, #3152] @ zero_extendqisi2 - ldr r3, .L499+12 + ldrb r10, [r3, #3156] @ zero_extendqisi2 + ldr r3, .L553+12 add r3, r3, r10, asl #3 mov r0, r10 ldr r8, [r3, #12] @@ -2552,50 +2793,50 @@ HynixGetReadRetryDefault: str r3, [r7, #2056] bl NandcWaitFlashReady cmp r4, #7 - ldreq r7, .L499+16 + ldreq r7, .L553+16 moveq r3, #160 mlaeq r7, r3, r10, r7 addeq r3, r7, #28 - beq .L494 -.L407: + beq .L548 +.L461: cmp r4, #8 - beq .L409 - ldr r7, .L499+16 + beq .L463 + ldr r7, .L553+16 add r7, r7, r10, asl #6 add r3, r7, #20 -.L494: +.L548: str r3, [sp, #20] cmp r4, #4 add r3, r8, r9 mov r2, #54 str r2, [r3, #2056] - bne .L410 + bne .L464 mov r2, #255 str r2, [r3, #2052] mov r2, #64 str r2, [r3, #2048] mov r2, #204 - b .L495 -.L410: + b .L549 +.L464: sub r2, r4, #5 cmp r2, #1 ldrlsb r2, [fp, #-2728] @ zero_extendqisi2 strls r2, [r3, #2052] movls r2, #82 - bls .L496 + bls .L550 cmp r4, #7 - bne .L411 + bne .L465 mov r2, #174 str r2, [r3, #2052] mov r2, #0 str r2, [r3, #2048] mov r2, #176 -.L495: +.L549: str r2, [r3, #2052] mov r2, #77 -.L496: +.L550: str r2, [r3, #2048] -.L411: +.L465: add r9, r8, r9 cmp r4, #6 mov r3, #22 @@ -2616,7 +2857,7 @@ HynixGetReadRetryDefault: str r3, [r9, #2052] mov r3, #0 str r3, [r9, #2052] -.L451: +.L505: ldr r3, [sp, #8] mov r2, #48 mov r0, r10 @@ -2636,134 +2877,134 @@ HynixGetReadRetryDefault: ldr r3, [sp, #24] orrs r3, r3, r2 movne ip, #16 - bne .L415 + bne .L469 cmp r4, #7 movne ip, #2 moveq ip, #32 -.L415: +.L469: ldr r2, [sp, #8] - ldr r3, [fp, #-1872] + ldr r3, [fp, #-1868] add r1, r8, r2, asl #8 mov r0, r3 -.L416: +.L470: ldr r2, [r1, #2048] strb r2, [r0], #1 rsb r2, r3, r0 uxtb r2, r2 cmp r2, ip - bcc .L416 + bcc .L470 ldr r2, [sp] cmp r2, #0 - beq .L417 + beq .L471 mov r2, #0 -.L419: +.L473: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #50 - beq .L418 + beq .L472 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #5 - beq .L418 + beq .L472 add r2, r2, #1 cmp r2, #8 - bne .L419 - b .L420 -.L418: + bne .L473 + b .L474 +.L472: cmp r0, #6 - bls .L421 -.L420: - ldr r0, .L499+20 + bls .L475 +.L474: + ldr r0, .L553+20 mov r1, #0 bl printk -.L422: - b .L422 -.L417: +.L476: + b .L476 +.L471: cmp r4, #7 - bne .L423 + bne .L477 ldr r2, [sp] -.L425: +.L479: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #12 - beq .L424 + beq .L478 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #10 - beq .L424 + beq .L478 add r2, r2, #1 cmp r2, #8 - bne .L425 - b .L426 -.L424: + bne .L479 + b .L480 +.L478: cmp r0, #7 - bne .L421 -.L426: - ldr r0, .L499+20 + bne .L475 +.L480: + ldr r0, .L553+20 mov r1, #0 bl printk -.L427: - b .L427 -.L423: +.L481: + b .L481 +.L477: cmp r4, #6 - bne .L421 + bne .L475 sub r2, r3, #1 add r3, r3, #7 -.L428: +.L482: ldrb r0, [r2, #1]! @ zero_extendqisi2 cmp r0, #12 - beq .L421 + beq .L475 ldrb r0, [r2, #8] @ zero_extendqisi2 cmp r0, #4 - beq .L421 + beq .L475 cmp r2, r3 - bne .L428 - ldr r0, .L499+20 + bne .L482 + ldr r0, .L553+20 mov r1, #0 bl printk -.L430: - b .L430 -.L421: - ldr r2, [fp, #-1872] +.L484: + b .L484 +.L475: + ldr r2, [fp, #-1868] ldr r0, [sp, #36] add r0, r2, r0 mov r3, r2 -.L431: +.L485: cmp r3, r0 ldrne ip, [r1, #2048] strneb ip, [r3], #1 - bne .L431 -.L498: - ldr r3, .L499 + bne .L485 +.L552: + ldr r3, .L553 mov r0, #8 ldr r1, [sp, #4] - ldr r3, [r3, #-1872] + ldr r3, [r3, #-1868] add r1, r3, r1 str r1, [sp, #28] -.L434: +.L488: ldr ip, [sp, #4] add lr, r1, ip -.L433: +.L487: ldrh ip, [r1] mvn ip, ip strh ip, [r1], #2 @ movhi cmp r1, lr - bne .L433 + bne .L487 ldr ip, [sp, #4] subs r0, r0, #1 add r1, r1, ip - bne .L434 -.L435: + bne .L488 +.L489: mov ip, #0 mov r0, ip -.L438: +.L492: mov r1, #1 mov lr, #0 mov r1, r1, asl r0 mov r7, #16 str r7, [sp, #32] mov r7, lr -.L436: +.L490: ldrh r9, [r3, lr] and r9, r9, r1 cmp r9, r1 @@ -2773,70 +3014,70 @@ HynixGetReadRetryDefault: ldr r9, [sp, #32] subs r9, r9, #1 str r9, [sp, #32] - bne .L436 + bne .L490 cmp r7, #8 add r0, r0, #1 orrhi ip, ip, r1 uxthhi ip, ip cmp r0, #16 - bne .L438 + bne .L492 ldr r1, [sp, #28] strh ip, [r3], #2 @ movhi cmp r3, r1 - bne .L435 - ldr r1, [fp, #-1872] + bne .L489 + ldr r1, [fp, #-1868] mov r3, #0 sub r0, r1, #4 add ip, r1, #28 -.L440: +.L494: ldr lr, [r0, #4]! cmp lr, #0 addeq r3, r3, #1 cmp r0, ip - bne .L440 + bne .L494 cmp r3, #7 - ble .L441 - ldr r0, .L499+24 + ble .L495 + ldr r0, .L553+24 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L499+20 + ldr r0, .L553+20 mov r1, #0 bl printk -.L442: - b .L442 -.L441: +.L496: + b .L496 +.L495: cmp r4, #6 moveq r0, #4 - beq .L443 + beq .L497 cmp r4, #7 moveq r0, #10 - beq .L443 + beq .L497 ldr r3, [sp] cmp r3, #0 moveq r0, #8 movne r0, #5 -.L443: +.L497: sub r9, r6, #1 ldr r1, [sp, #20] mov ip, #0 uxtb r9, r9 add r9, r9, #1 -.L444: +.L498: mov r7, r1 mov r3, r2 -.L445: +.L499: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [r7], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, r6 - bcc .L445 + bcc .L499 add ip, ip, #1 add r2, r2, r9 cmp ip, r5 add r1, r1, r0 - blt .L444 + blt .L498 ldr r3, [sp, #8] mov r0, r10 add r7, r8, r3, asl #8 @@ -2845,7 +3086,7 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr r3, [sp, #24] cmp r3, #0 - beq .L447 + beq .L501 mov r3, #54 str r3, [r7, #2056] ldrb r3, [fp, #-2728] @ zero_extendqisi2 @@ -2857,21 +3098,21 @@ HynixGetReadRetryDefault: mov r3, #22 str r3, [r7, #2056] bl FlashReadCmd - b .L448 -.L447: + b .L502 +.L501: ldr r3, [sp] cmp r3, #0 movne r3, #190 moveq r3, #56 str r3, [r7, #2056] -.L448: +.L502: mov r0, r10 bl NandcWaitFlashReady ldr r3, [sp, #16] add r3, r3, #1 str r3, [sp, #16] - b .L406 -.L409: + b .L460 +.L463: mov r3, #120 mov r2, #23 str r3, [r7, #2056] @@ -2893,15 +3134,15 @@ HynixGetReadRetryDefault: str r1, [r7, #2052] str r2, [r7, #2052] str r3, [r7, #2052] - ldr r3, .L499+28 + ldr r3, .L553+28 str r3, [sp, #20] - b .L451 -.L500: + b .L505 +.L554: .align 2 -.L499: +.L553: .word .LANCHOR2 .word .LANCHOR1 - .word .LANCHOR1+3288 + .word .LANCHOR1+3384 .word .LANCHOR0 .word .LANCHOR2-2732 .word .LC2 @@ -2921,67 +3162,67 @@ FlashGetReadRetryDefault: bxeq lr sub r2, r3, #1 cmp r2, #7 - bhi .L503 + bhi .L557 b HynixGetReadRetryDefault -.L503: +.L557: cmp r3, #49 - bne .L504 - ldr r2, .L515 - ldr r0, .L515+4 - ldr r1, .L515+8 + bne .L558 + ldr r2, .L569 + ldr r0, .L569+4 + ldr r1, .L569+8 strb r3, [r2, #-2732] mov r3, #4 strb r3, [r2, #-2731] mov r3, #15 strb r3, [r2, #-2730] mov r2, #64 - b .L513 -.L504: + b .L567 +.L558: sub r2, r3, #65 cmp r3, #33 cmpne r2, #1 - ldrls r2, .L515 + ldrls r2, .L569 strlsb r3, [r2, #-2732] movls r3, #4 - bls .L514 -.L505: + bls .L568 +.L559: cmp r3, #34 cmpne r3, #67 - bne .L506 - ldr r2, .L515 + bne .L560 + ldr r2, .L569 strb r3, [r2, #-2732] mov r3, #5 -.L514: +.L568: strb r3, [r2, #-2731] mov r3, #7 - ldr r0, .L515+4 + ldr r0, .L569+4 strb r3, [r2, #-2730] mov r2, #45 - ldr r1, .L515+12 - b .L513 -.L506: + ldr r1, .L569+12 + b .L567 +.L560: cmp r3, #35 cmpne r3, #68 bxne lr - ldr r2, .L515 - ldr r0, .L515+4 - ldr r1, .L515+16 + ldr r2, .L569 + ldr r0, .L569+4 + ldr r1, .L569+16 strb r3, [r2, #-2732] mov r3, #5 strb r3, [r2, #-2731] mov r3, #17 strb r3, [r2, #-2730] mov r2, #95 -.L513: +.L567: b ftl_memcpy -.L516: +.L570: .align 2 -.L515: +.L569: .word .LANCHOR2 .word .LANCHOR2-2728 - .word .LANCHOR1+3224 - .word .LANCHOR1+3072 - .word .LANCHOR1+3120 + .word .LANCHOR1+3320 + .word .LANCHOR1+3168 + .word .LANCHOR1+3216 .fnend .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .align 2 @@ -2991,58 +3232,78 @@ FlashReadDpCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r6, r1 - ldr r3, .L522 - mov r7, r0 - uxtb lr, r6 - mov ip, r6, lsr #8 - add r1, r3, r0, asl #3 - uxtb r9, r2 - ldrb r10, [r3, #52] @ zero_extendqisi2 - mov r8, r2, lsr #8 - ldrb r4, [r1, #16] @ zero_extendqisi2 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + mov r8, r0 + ldr r0, .L577 + mov r7, r1 + uxtb r10, r2 + mov r9, r2, lsr #8 + add r3, r0, r8, asl #3 mov r5, r2, lsr #16 - ldr fp, [r1, #12] - ldrb r1, [r3, #60] @ zero_extendqisi2 - mov r4, r4, asl #8 - ldrb r3, [r3, #53] @ zero_extendqisi2 + ldrb r1, [r0, #64] @ zero_extendqisi2 + uxtb lr, r7 + ldr r4, [r3, #12] + mov ip, r7, lsr #8 + ldrb r3, [r3, #16] @ zero_extendqisi2 cmp r1, #1 - add r4, fp, r4 - mov r1, r6, lsr #16 - str r10, [r4, #2056] - bne .L518 - mov r10, #0 - str r10, [r4, #2052] - str r10, [r4, #2052] + ldr r2, [r0, #44] + mov r1, r7, lsr #16 + mov r3, r3, asl #8 + ldrb r2, [r2, #7] @ zero_extendqisi2 + bne .L572 + cmp r2, #1 + addeq r2, r4, r3 + add r4, r4, r3 + moveq r6, #38 + streq r6, [r2, #2056] + mov r6, #0 + ldrb r3, [r0, #57] @ zero_extendqisi2 + ldrb r2, [r0, #56] @ zero_extendqisi2 + mov r0, r8 + str r2, [r4, #2056] + str r6, [r4, #2052] + str r6, [r4, #2052] str lr, [r4, #2052] str ip, [r4, #2052] str r1, [r4, #2052] str r3, [r4, #2056] bl NandcWaitFlashReady - str r10, [r4, #2056] - str r10, [r4, #2052] - str r10, [r4, #2052] - b .L521 -.L518: - str lr, [r4, #2052] - str ip, [r4, #2052] - str r1, [r4, #2052] - str r3, [r4, #2056] -.L521: - str r9, [r4, #2052] + str r6, [r4, #2056] mov r3, #48 - str r8, [r4, #2052] - mov r0, r7 + str r6, [r4, #2052] + str r6, [r4, #2052] + str r10, [r4, #2052] + str r9, [r4, #2052] str r5, [r4, #2052] - mov r1, r6 str r3, [r4, #2056] - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + b .L574 +.L572: + cmp r2, #1 + addeq r2, r4, r3 + add r3, r4, r3 + moveq r6, #38 + streq r6, [r2, #2056] + ldrb r2, [r0, #56] @ zero_extendqisi2 + str r2, [r3, #2056] + ldrb r2, [r0, #57] @ zero_extendqisi2 + str lr, [r3, #2052] + str ip, [r3, #2052] + str r1, [r3, #2052] + str r2, [r3, #2056] + mov r2, #48 + str r10, [r3, #2052] + str r9, [r3, #2052] + str r5, [r3, #2052] + str r2, [r3, #2056] +.L574: + mov r0, r8 + mov r1, r7 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} b FlashSetRandomizer -.L523: +.L578: .align 2 -.L522: +.L577: .word .LANCHOR0 .fnend .size FlashReadDpCmd, .-FlashReadDpCmd @@ -3058,39 +3319,39 @@ ftl_flash_de_init: mov r0, #0 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldr r3, .L535 - ldr r0, [r3, #-1868] + ldr r3, .L590 + ldr r0, [r3, #-1864] mov r4, r3 cmp r0, #0 - beq .L525 + beq .L580 mov r0, #0 bl flash_enter_slc_mode - b .L526 -.L525: + b .L581 +.L580: bl flash_exit_slc_mode -.L526: - ldrb r3, [r4, #-1864] @ zero_extendqisi2 - ldr r5, .L535 +.L581: + ldrb r3, [r4, #-1860] @ zero_extendqisi2 + ldr r5, .L590 cmp r3, #0 - beq .L527 - ldrb r3, [r5, #-1876] @ zero_extendqisi2 + beq .L582 + ldrb r3, [r5, #-1875] @ zero_extendqisi2 tst r3, #1 - beq .L527 + beq .L582 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode mov r3, #0 - strb r3, [r5, #-1864] -.L527: - ldr r3, .L535+4 + strb r3, [r5, #-1860] +.L582: + ldr r3, .L590+4 mov r0, #0 ldr r3, [r3, #12] str r0, [r3, #336] ldmfd sp!, {r3, r4, r5, pc} -.L536: +.L591: .align 2 -.L535: +.L590: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -3103,14 +3364,14 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L538 + ldr r3, .L593 add r0, r3, r0, asl #3 ldr r3, [r0, #12] str r1, [r3, #336] bx lr -.L539: +.L594: .align 2 -.L538: +.L593: .word .LANCHOR0 .fnend .size NandcRandmzSel, .-NandcRandmzSel @@ -3127,35 +3388,35 @@ NandcTimeCfg: mov r4, r0 mov r0, #0 bl rknand_get_clk_rate - ldr r1, .L551 + ldr r1, .L606 bl __aeabi_idiv - ldr r3, .L551+4 + ldr r3, .L606+4 ldr r3, [r3, #-2808] cmp r0, #250 movwgt r2, #8354 - bgt .L549 + bgt .L604 cmp r0, #220 - bgt .L550 + bgt .L605 cmp r0, #185 movwgt r2, #4226 - bgt .L549 + bgt .L604 cmp r0, #160 movwgt r2, #4194 - bgt .L549 + bgt .L604 cmp r4, #35 movwls r2, #4193 - bls .L549 + bls .L604 cmp r4, #99 movwls r2, #4225 - bls .L549 -.L550: + bls .L604 +.L605: movw r2, #8322 -.L549: +.L604: str r2, [r3, #4] ldmfd sp!, {r4, pc} -.L552: +.L607: .align 2 -.L551: +.L606: .word 1000000 .word .LANCHOR2 .fnend @@ -3172,21 +3433,21 @@ FlashTimingCfg: sub r3, r3, #33 bic r3, r3, #32 cmp r3, #1 - bls .L554 + bls .L609 movw r3, #8322 cmp r0, r3 - bne .L555 -.L554: - ldr r3, .L556 + bne .L610 +.L609: + ldr r3, .L611 ldr r3, [r3, #-2808] str r0, [r3, #4] -.L555: - ldr r3, .L556+4 +.L610: + ldr r3, .L611+4 ldrb r0, [r3, #277] @ zero_extendqisi2 b NandcTimeCfg -.L557: +.L612: .align 2 -.L556: +.L611: .word .LANCHOR2 .word .LANCHOR1 .fnend @@ -3201,9 +3462,9 @@ NandcInit: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, #0 - ldr r4, .L561 + ldr r4, .L616 mov r1, #1 - ldr r3, .L561+4 + ldr r3, .L616+4 mov r5, #0 str r0, [r4, #-2808] str r2, [r3, #16] @@ -3222,15 +3483,15 @@ NandcInit: bfi r3, r2, #13, #1 ldr r2, [r0, #352] orr r3, r3, #256 - str r1, [r4, #-1860] + str r1, [r4, #-1856] movw r1, #2049 ubfx r2, r2, #16, #4 - str r2, [r4, #-1856] + str r2, [r4, #-1852] ldr r2, [r0, #352] cmp r2, r1 - str r2, [r4, #-1852] + str r2, [r4, #-1848] moveq r2, #8 - streq r2, [r4, #-1856] + streq r2, [r4, #-1852] str r3, [r0] mov r0, #40 ldr r3, [r4, #-2808] @@ -3240,19 +3501,19 @@ NandcInit: movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L561+8 + ldr r2, .L616+8 str r2, [r3, #304] bl ftl_malloc - str r5, [r4, #-1820] - str r5, [r4, #-1812] - str r0, [r4, #-1848] + str r5, [r4, #-1816] + str r5, [r4, #-1808] str r0, [r4, #-1844] - add r0, r0, #32768 str r0, [r4, #-1840] + add r0, r0, #32768 + str r0, [r4, #-1836] ldmfd sp!, {r3, r4, r5, pc} -.L562: +.L617: .align 2 -.L561: +.L616: .word .LANCHOR2 .word .LANCHOR0 .word 1579009 @@ -3265,7 +3526,7 @@ NandcGetTimeCfg: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L565 + ldr ip, .L620 str lr, [sp, #-4]! .save {lr} ldr lr, [ip, #-2808] @@ -3284,9 +3545,9 @@ NandcGetTimeCfg: orr r2, r2, r1, asl #16 str r2, [r3] ldr pc, [sp], #4 -.L566: +.L621: .align 2 -.L565: +.L620: .word .LANCHOR2 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -3298,35 +3559,35 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L575 + ldr r3, .L630 mov r1, #1 ldr r2, [r3, #-2808] - str r0, [r3, #-1808] + str r0, [r3, #-1804] mov r3, #0 str r1, [r2, #8] mov r1, #16 cmp r0, r1 bfi r3, r1, #8, #8 bfc r3, #18, #1 - bne .L568 -.L571: + bne .L623 +.L626: bfc r3, #4, #1 - b .L569 -.L568: + b .L624 +.L623: cmp r0, #24 orreq r3, r3, #16 - beq .L569 + beq .L624 cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - beq .L571 -.L569: + beq .L626 +.L624: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L576: +.L631: .align 2 -.L575: +.L630: .word .LANCHOR2 .fnend .size NandcBchSel, .-NandcBchSel @@ -3338,12 +3599,12 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L578 + ldr r3, .L633 strb r0, [r3, #-2743] b NandcBchSel -.L579: +.L634: .align 2 -.L578: +.L633: .word .LANCHOR2 .fnend .size FlashBchSel, .-FlashBchSel @@ -3354,14 +3615,14 @@ ftl_flash_resume: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L589 + ldr r3, .L644 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 ldr r2, [r3, #-2808] mov r4, r3 ldr r1, [r3, #-2804] - ldr r6, .L589+4 + ldr r6, .L644+4 str r1, [r2] ldr r1, [r3, #-2800] ldr r2, [r3, #-2808] @@ -3378,39 +3639,39 @@ ftl_flash_resume: str r1, [r2, #336] ldr r1, [r3, #-2776] str r1, [r2, #344] -.L582: +.L637: ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L581 + bhi .L636 uxtb r0, r5 bl FlashReset -.L581: +.L636: add r5, r5, #1 cmp r5, #4 - bne .L582 - ldrb r3, [r4, #-1864] @ zero_extendqisi2 - ldr r5, .L589 + bne .L637 + ldrb r3, [r4, #-1860] @ zero_extendqisi2 + ldr r5, .L644 cmp r3, #0 - beq .L583 + beq .L638 mov r0, #1 bl NandcSetMode - ldrb r0, [r5, #-1876] @ zero_extendqisi2 + ldrb r0, [r5, #-1875] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #-1876] @ zero_extendqisi2 + ldrb r0, [r5, #-1875] @ zero_extendqisi2 bl NandcSetMode ldrb r0, [r5, #-2787] @ zero_extendqisi2 bl NandcSetDdrPara -.L583: - ldr r3, .L589+8 +.L638: + ldr r3, .L644+8 ldmfd sp!, {r4, r5, r6, lr} - ldr r3, [r3, #3320] + ldr r3, [r3, #44] ldrb r0, [r3, #20] @ zero_extendqisi2 b FlashBchSel -.L590: +.L645: .align 2 -.L589: +.L644: .word .LANCHOR2 .word IDByte .word .LANCHOR0 @@ -3435,194 +3696,11 @@ NandcIqrWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, lr} - .save {r4, lr} - mov r4, r0 - bl rk_nandc_rb_irq_flag_init - 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] - tst r3, #512 - bne .L593 - mov r0, r4 - ldmfd sp!, {r4, lr} - b wait_for_nand_flash_ready -.L593: - ldr r3, [r4, #368] - orr r3, r3, #2 - str r3, [r4, #368] - ldr r3, [r4, #364] - bic r3, r3, #2 - str r3, [r4, #364] - ldmfd sp!, {r4, pc} + @ link register save eliminated. + bx lr .fnend .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady .align 2 - .global FlashEraseBlocks - .type FlashEraseBlocks, %function -FlashEraseBlocks: - .fnstart - @ args = 0, pretend = 0, frame = 16 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r8, r2 - ldr r4, .L630 - .pad #28 - sub sp, sp, #28 - ldrb r5, [r4] @ zero_extendqisi2 - cmp r5, #0 - beq .L613 - mov r1, r2 - bl FlashEraseSLc2KBlocks - b .L597 -.L613: - ldr fp, .L630+4 - mov r9, r0 - mov r10, r1 -.L596: - cmp r5, r8 - bcs .L628 - mov r3, #36 - mov r1, #0 - mul r6, r3, r5 - add r2, sp, #16 - add r3, r9, r6 - str r3, [sp, #12] - rsb r3, r5, r8 - ldr r0, [sp, #12] - uxtb r3, r3 - str r3, [sp] - add r3, sp, #20 - bl LogAddr2PhyAddr - ldrb r3, [r4, #3148] @ zero_extendqisi2 - mov r7, r0 - ldr r0, [sp, #20] - cmp r0, r3 - mvncs r3, #0 - strcs r3, [r9, r6] - bcs .L599 - ldrb r3, [fp, #-1804] @ zero_extendqisi2 - cmp r3, #0 - add r3, r4, r0, asl #4 - ldr r3, [r3, #3200] - moveq r7, #0 - cmp r3, #0 - beq .L601 - uxtb r0, r0 - bl FlashWaitCmdDone -.L601: - ldr r2, [sp, #20] - cmp r7, #0 - ldr r0, [sp, #12] - addne ip, r6, #36 - addne ip, r9, ip - mov r3, r2, asl #4 - add r2, r4, r2 - add r1, r4, r3 - add r3, r4, r3 - ldrb r6, [r2, #3152] @ zero_extendqisi2 - str r0, [r1, #3200] - mov r0, #0 - str r0, [r1, #3204] - ldr r0, [sp, #16] - strne ip, [r1, #3204] - strb r6, [r3, #3192] - str r0, [r1, #3196] - mov r0, r6 - bl NandcFlashCs - cmp r10, #1 - mov r0, r6 - bne .L603 - ldr r3, .L630+4 - ldrb r3, [r3, #-2744] @ zero_extendqisi2 - cmp r3, #0 - beq .L603 - bl flash_enter_slc_mode - b .L604 -.L603: - bl flash_exit_slc_mode -.L604: - ldr r3, [sp, #20] - mov r0, r6 - ldr r1, [sp, #16] - add r5, r5, r7 - add r3, r4, r3, asl #2 - ldr r2, [r3, #3160] - adds r2, r2, #0 - movne r2, #1 - bl FlashWaitReadyEN - mov r0, r6 - mov r2, r7 - ldr r1, [sp, #16] - bl FlashEraseCmd - mov r0, r6 - bl NandcFlashDeCs -.L599: - add r5, r5, #1 - b .L596 -.L628: - ldr r5, .L630+4 - mov r6, #0 - ldr r7, .L630+8 - ldr r0, [r5, #-2808] - bl NandcIqrWaitFlashReady -.L606: - ldrb r3, [r4, #3148] @ zero_extendqisi2 - cmp r6, r3 - bcs .L629 - uxtb r0, r6 - bl FlashWaitCmdDone - cmp r10, #1 - bne .L607 - ldrb r3, [r5, #-2744] @ zero_extendqisi2 - cmp r3, #0 - beq .L607 - ldrb r0, [r7, r6, asl #4] @ zero_extendqisi2 - bl flash_exit_slc_mode -.L607: - add r6, r6, #1 - b .L606 -.L629: - ldr r3, [r5, #-1800] - cmp r3, #0 - bne .L609 -.L611: - mov r0, #0 - b .L597 -.L609: - ldr r3, .L630+12 - ldrb r3, [r3] @ zero_extendqisi2 - cmp r3, #69 - bne .L611 - mov r3, #0 - mov r2, #36 - mov r1, r3 -.L610: - cmp r3, r8 - beq .L611 - mul r0, r2, r3 - add r3, r3, #1 - str r1, [r9, r0] - b .L610 -.L597: - add sp, sp, #28 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L631: - .align 2 -.L630: - .word .LANCHOR0 - .word .LANCHOR2 - .word .LANCHOR0+3192 - .word IDByte - .fnend - .size FlashEraseBlocks, .-FlashEraseBlocks - .align 2 .global NandcSendDumpDataStart .type NandcSendDumpDataStart, %function NandcSendDumpDataStart: @@ -3633,7 +3711,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L634 + ldr r3, .L650 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -3646,9 +3724,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L635: +.L651: .align 2 -.L634: +.L650: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -3662,12 +3740,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L637: +.L653: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #1048576 - beq .L637 + beq .L653 add sp, sp, #8 @ sp needed bx lr @@ -3683,10 +3761,10 @@ NandcXferStart: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, #0 - ldr lr, .L659 + ldr lr, .L675 .pad #28 sub sp, sp, #28 - ldr r5, .L659+4 + ldr r5, .L675+4 add r0, lr, r0, asl #3 mov lr, #16 ldr r8, [sp, #64] @@ -3705,9 +3783,9 @@ NandcXferStart: mov r3, r3, lsr r0 orr r4, r4, #1024 bfi r4, r3, #4, #1 - ldr r3, [r5, #-1856] + ldr r3, [r5, #-1852] cmp r3, #3 - bls .L642 + bls .L658 ldr r3, [r6, #16] str r3, [sp, #20] ldr r3, [sp, #20] @@ -3718,19 +3796,19 @@ NandcXferStart: cmp ip, #0 cmpeq r8, #0 str r3, [sp, #8] - beq .L643 + beq .L659 cmp r1, #0 - bne .L644 -.L652: + bne .L660 +.L668: add r2, r2, #1 cmp r8, #0 mov r2, r2, asr #1 movne r0, r8 bfi r4, r2, #22, #6 - ldreq r0, [r5, #-1844] - b .L646 -.L644: - ldr r3, [r5, #-1808] + ldreq r0, [r5, #-1840] + b .L662 +.L660: + ldr r3, [r5, #-1804] mov r9, r5 cmp r3, #25 movcc r3, #64 @@ -3740,10 +3818,10 @@ NandcXferStart: str r3, [sp, #12] mov r3, #0 mov r0, r3 -.L648: +.L664: ldr lr, [sp, #12] cmp r0, lr - bcs .L652 + bcs .L668 ldr lr, [sp, #8] mov r10, r3, lsr #2 add r0, r0, #1 @@ -3751,37 +3829,37 @@ NandcXferStart: ldrneh fp, [ip, #2] mvneq fp, #0 ldrneh lr, [ip], #4 - ldreq lr, [r9, #-1840] + ldreq lr, [r9, #-1836] orrne lr, lr, fp, asl #16 - ldrne fp, [r9, #-1840] + ldrne fp, [r9, #-1836] streq fp, [lr, r10, asl #2] strne lr, [fp, r10, asl #2] ldr lr, [sp, #4] add r3, r3, lr - b .L648 -.L646: - ldr r3, [r5, #-1840] + b .L664 +.L662: + ldr r3, [r5, #-1836] ubfx r10, r4, #22, #5 mov r9, r1 - str r0, [r5, #-1836] + str r0, [r5, #-1832] mov r2, r9 mov r1, r10, asl #10 - str r3, [r5, #-1832] + str r3, [r5, #-1828] bl rknand_dma_map_single mov r2, r9 mov r1, r10, asl #7 clz r9, r9 mov r9, r9, lsr #5 - str r0, [r5, #-1828] - ldr r0, [r5, #-1832] + str r0, [r5, #-1824] + ldr r0, [r5, #-1828] bl rknand_dma_map_single mov r3, #1 - str r3, [r5, #-1820] + str r3, [r5, #-1816] tst r8, #3 - ldr r3, [r5, #-1828] - str r0, [r5, #-1824] - str r3, [r6, #20] ldr r3, [r5, #-1824] + str r0, [r5, #-1820] + str r3, [r6, #20] + ldr r3, [r5, #-1820] str r3, [r6, #24] mov r3, #0 str r3, [sp, #20] @@ -3806,10 +3884,10 @@ NandcXferStart: ldr r3, [sp, #20] orr r3, r3, #1 str r3, [sp, #20] -.L643: +.L659: ldr r3, [sp, #20] str r3, [r6, #16] -.L642: +.L658: str r7, [r6, #12] str r4, [r6, #8] orr r4, r4, #4 @@ -3817,9 +3895,9 @@ NandcXferStart: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L660: +.L676: .align 2 -.L659: +.L675: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -3834,154 +3912,154 @@ NandcXferComp: stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L701 - ldr r3, .L701+4 + ldr r5, .L717 + ldr r3, .L717+4 add r0, r3, r0, asl #3 - ldr r3, [r5, #-1856] + ldr r3, [r5, #-1852] cmp r3, #3 ldr r4, [r0, #12] - bls .L692 + bls .L708 ldr r3, [r4, #16] tst r3, #4 - beq .L692 + beq .L708 ldr r6, [r4, #16] ldr r3, [r4, #8] ubfx r6, r6, #1, #1 cmp r6, #0 str r3, [sp] movne r6, #0 - beq .L674 -.L664: + beq .L690 +.L680: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L672 - ldr r3, [r5, #-1856] + bge .L688 + ldr r3, [r5, #-1852] cmp r3, #5 - bhi .L665 -.L668: + bhi .L681 +.L684: add r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L667 + bne .L683 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L701+8 + ldr r0, .L717+8 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L701+12 + ldr r0, .L717+12 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex - b .L667 -.L665: + b .L683 +.L681: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L668 + beq .L684 ldr r3, [sp, #4] tst r3, #131072 - beq .L668 -.L672: - ldr r3, [r5, #-1820] - ldr r4, .L701 + beq .L684 +.L688: + ldr r3, [r5, #-1816] + ldr r4, .L717 cmp r3, #0 - beq .L673 + beq .L689 ldr r1, [sp] mov r2, #0 - ldr r0, [r4, #-1828] + ldr r0, [r4, #-1824] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r4, #-1824] + ldr r0, [r4, #-1820] mov r2, #0 ldr r1, [sp] ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single - b .L673 -.L667: - mov r0, #5 - mov r1, #10 + b .L689 +.L683: + mov r0, #1 + mov r1, #5 bl usleep_range - b .L664 -.L676: + b .L680 +.L692: ldr r3, [r4, #8] add r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 cmp r3, #0 - bne .L675 + bne .L691 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L701+16 + ldr r0, .L717+16 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L701+12 + ldr r0, .L717+12 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L675: - mov r0, #5 - mov r1, #10 +.L691: + mov r0, #1 + mov r1, #5 bl usleep_range -.L674: +.L690: ldr r3, [sp] tst r3, #1048576 - beq .L676 - ldr r3, [r5, #-1812] + beq .L692 + ldr r3, [r5, #-1808] cmp r3, #0 - beq .L677 + beq .L693 mov r0, r4 bl NandcSendDumpDataStart -.L677: - ldr r3, [r5, #-1820] - ldr r6, .L701 +.L693: + ldr r3, [r5, #-1816] + ldr r6, .L717 cmp r3, #0 - beq .L678 + beq .L694 ldr r1, [sp] mov r2, #1 - ldr r0, [r6, #-1828] + ldr r0, [r6, #-1824] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r6, #-1824] + ldr r0, [r6, #-1820] mov r2, #1 ldr r1, [sp] ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single -.L678: - ldr r3, [r5, #-1812] +.L694: + ldr r3, [r5, #-1808] cmp r3, #0 - beq .L673 + beq .L689 mov r0, r4 bl NandcSendDumpDataDone -.L673: +.L689: mov r3, #0 - str r3, [r5, #-1820] - b .L661 -.L692: + str r3, [r5, #-1816] + b .L677 +.L708: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] tst r3, #1048576 - beq .L692 -.L661: + beq .L708 +.L677: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L702: +.L718: .align 2 -.L701: +.L717: .word .LANCHOR2 .word .LANCHOR0 .word .LC4 @@ -4004,14 +4082,14 @@ NandcCopy1KB: ldr r5, [sp, #16] add r6, r0, #512 add r2, r2, r4, asl #9 - bne .L704 + bne .L720 cmp r3, #0 - beq .L705 + beq .L721 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L705: +.L721: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} ldrb r3, [r5, #2] @ zero_extendqisi2 @@ -4026,14 +4104,14 @@ NandcCopy1KB: orr r3, r3, r2, asl #24 str r3, [r6, r4, asl #4] ldmfd sp!, {r4, r5, r6, pc} -.L704: +.L720: cmp r3, #0 - beq .L708 + beq .L724 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L708: +.L724: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} mov r4, r4, lsr #1 @@ -4059,7 +4137,7 @@ NandcXferData: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r3 - ldr r3, .L768 + ldr r3, .L784 .pad #92 sub sp, sp, #92 tst fp, #63 @@ -4069,15 +4147,15 @@ NandcXferData: mov r8, r2 ldr r5, [sp, #128] ldr r9, [r3, #12] - bne .L721 + bne .L737 cmp r5, #0 - bne .L722 + bne .L738 add r0, sp, #24 mov r1, #255 mov r2, #64 bl ftl_memset add r5, sp, #24 -.L722: +.L738: mov r0, r10 mov r1, r7 mov r2, r8 @@ -4090,21 +4168,21 @@ NandcXferData: bl NandcXferComp cmp r7, #0 movne r6, #0 - bne .L723 - ldr r4, .L768+4 + bne .L739 + ldr r4, .L784+4 mov r1, r8, lsr #1 mov r2, r7 - ldr r3, [r4, #-1808] + ldr r3, [r4, #-1804] cmp r3, #25 mov r3, r7 movcc ip, #64 movcs ip, #128 -.L725: +.L741: cmp r2, r1 add r5, r5, #4 add r0, r3, ip - bcs .L766 - ldr lr, [r4, #-1840] + bcs .L782 + ldr lr, [r4, #-1836] mov r3, r3, lsr #2 add r2, r2, #1 ldr r3, [lr, r3, asl #2] @@ -4116,30 +4194,30 @@ NandcXferData: strb lr, [r5, #-2] strb r3, [r5, #-1] mov r3, r0 - b .L725 -.L766: - ldr r0, [r4, #-1808] + b .L741 +.L782: + ldr r0, [r4, #-1804] mov r2, #0 - ldr r1, [r4, #-1856] + ldr r1, [r4, #-1852] mov r8, r8, lsr #2 mov r6, r2 -.L727: +.L743: cmp r2, r8 - bcs .L723 + bcs .L739 cmp r0, #0 - beq .L723 + beq .L739 add r3, r2, #8 ldr r3, [r9, r3, asl #2] str r3, [sp, #20] ldr r3, [sp, #20] tst r3, #4 - bne .L751 + bne .L767 ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L751 + bne .L767 cmp r1, #5 - bls .L729 + bls .L745 ldr ip, [sp, #20] ldr r4, [sp, #20] ldr r3, [sp, #20] @@ -4158,10 +4236,10 @@ NandcXferData: ubfxls r3, r3, #16, #5 ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L765 -.L729: + b .L781 +.L745: cmp r1, #3 - bls .L731 + bls .L747 ldr ip, [sp, #20] ldr r4, [sp, #20] ldr r3, [sp, #20] @@ -4173,41 +4251,41 @@ NandcXferData: orr ip, ip, r4, asl #5 orr r3, r3, lr, asl #5 cmp ip, r3 - bls .L732 + bls .L748 ldr r3, [sp, #20] ldr r4, [sp, #20] ubfx r3, r3, #3, #5 ubfx r4, r4, #28, #1 -.L765: +.L781: orr r4, r3, r4, asl #5 - b .L731 -.L732: + b .L747 +.L748: ldr r5, [sp, #20] ldr r4, [sp, #20] ubfx r5, r5, #16, #5 ubfx r4, r4, #30, #1 orr r4, r5, r4, asl #5 -.L731: +.L747: cmp r6, r4 movcc r6, r4 - b .L728 -.L751: + b .L744 +.L767: mvn r6, #0 -.L728: +.L744: add r2, r2, #1 - b .L727 -.L723: + b .L743 +.L739: mov r3, #0 str r3, [r9, #16] - b .L734 -.L721: + b .L750 +.L737: cmp r1, #1 mov r4, #0 - bne .L763 + bne .L779 mov r6, r4 -.L735: +.L751: cmp r4, r8 - bcs .L767 + bcs .L783 cmp fp, #0 and ip, r4, #3 addne r3, fp, r4, asl #9 @@ -4234,11 +4312,11 @@ NandcXferData: mov r0, r10 mov r1, #1 bl NandcXferComp - b .L735 -.L767: + b .L751 +.L783: mov r6, #0 - b .L734 -.L763: + b .L750 +.L779: str r4, [sp] mov r1, r4 str r4, [sp, #4] @@ -4247,9 +4325,9 @@ NandcXferData: mov r6, r4 bl NandcXferStart str fp, [sp, #8] -.L740: +.L756: cmp r4, r8 - bcs .L734 + bcs .L750 mov r0, r10 mov r1, r7 bl NandcXferComp @@ -4257,7 +4335,7 @@ NandcXferData: add ip, r4, #2 cmp ip, r8 str r3, [sp, #20] - bcs .L741 + bcs .L757 mov r3, #0 mov r0, r10 str r3, [sp] @@ -4268,11 +4346,11 @@ NandcXferData: str ip, [sp, #12] bl NandcXferStart ldr ip, [sp, #12] -.L741: +.L757: ldr r3, [sp, #20] tst r3, #4 mvnne r6, #0 - bne .L742 + bne .L758 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -4280,7 +4358,7 @@ NandcXferData: orr r3, r2, r3, asl #5 cmp r6, r3 movcc r6, r3 -.L742: +.L758: cmp fp, #0 ldr r3, [sp, #8] sub r2, ip, #2 @@ -4300,30 +4378,30 @@ NandcXferData: mov r4, ip add r3, r3, #1024 str r3, [sp, #8] - b .L740 -.L734: - ldr r3, .L768+4 + b .L756 +.L750: + ldr r3, .L784+4 clz r7, r7 mov r7, r7, lsr #5 - ldr r3, [r3, #-1856] + ldr r3, [r3, #-1852] cmp r3, #5 movls r7, #0 cmp r7, #0 - beq .L746 + beq .L762 ldr r3, [r9] and r2, r3, #139264 cmp r2, #139264 orreq r3, r3, #131072 streq r3, [r9] mvneq r6, #0 -.L746: +.L762: mov r0, r6 add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L769: +.L785: .align 2 -.L768: +.L784: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4339,19 +4417,19 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L773 + ldr r3, .L789 subs r4, r0, #0 mov r6, r1 mov r7, r2 ldrb r5, [r3, #265] @ zero_extendqisi2 - bne .L771 - ldr r2, .L773+4 + bne .L787 + ldr r2, .L789+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r2, [r2, #4] mul r2, r2, r3 cmp r1, r2 movcc r5, #4 -.L771: +.L787: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -4374,9 +4452,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L774: +.L790: .align 2 -.L773: +.L789: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -4391,7 +4469,7 @@ FlashDdrTunningRead: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r3 - ldr r4, .L802 + ldr r4, .L818 .pad #20 sub sp, sp, #20 mov r10, r0 @@ -4400,14 +4478,14 @@ FlashDdrTunningRead: ldr r3, [r4, #-2808] ldr r3, [r3, #304] str r3, [sp, #8] - ldr r3, [r4, #-1856] + ldr r3, [r4, #-1852] cmp r3, #8 ldr r3, [sp, #56] movcc r9, #6 movcs r9, #12 cmp r3, #0 moveq r6, #1024 - beq .L777 + beq .L793 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 @@ -4420,46 +4498,46 @@ FlashDdrTunningRead: ldr r1, [sp] bl FlashReadRawPage mov r6, r0 - ldrb r0, [r4, #-1876] @ zero_extendqisi2 + ldrb r0, [r4, #-1875] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #-1876] @ zero_extendqisi2 + ldrb r0, [r4, #-1875] @ zero_extendqisi2 bl NandcSetMode cmn r6, #1 - bne .L778 -.L787: + bne .L794 +.L803: mvn r6, #0 - b .L779 -.L778: - ldr r0, .L802+4 + b .L795 +.L794: + ldr r0, .L818+4 mov r2, r6 ldr r1, [sp] bl printk cmp r6, #9 - bhi .L780 - ldr r3, .L802+8 + bhi .L796 + ldr r3, .L818+8 add r3, r3, r10, asl #3 ldr r3, [r3, #12] ldr r2, [r3, #3840] ldr r2, [r3] orr r2, r2, #131072 str r2, [r3] -.L780: - ldr r3, [r4, #-1796] +.L796: + ldr r3, [r4, #-1800] add r3, r3, #1 - str r3, [r4, #-1796] + str r3, [r4, #-1800] cmp r3, #2048 - bcc .L779 - ldr r3, .L802 + bcc .L795 + ldr r3, .L818 mov r7, #0 mov fp, r7 - str r7, [r3, #-1796] -.L777: + str r7, [r3, #-1800] +.L793: mov r4, #0 mvn r8, #0 mov ip, r4 mov r5, r4 str r4, [sp, #4] -.L785: +.L801: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara @@ -4471,74 +4549,74 @@ FlashDdrTunningRead: add r3, r6, #1 cmp r0, r3 ldr ip, [sp, #12] - bhi .L781 + bhi .L797 cmp r0, #2 - bhi .L791 + bhi .L807 add r5, r5, #1 cmp r5, #9 - bls .L791 + bls .L807 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L783 -.L781: + b .L799 +.L797: ldr r3, [sp, #4] cmp r3, r5 - bcs .L792 + bcs .L808 cmp r5, #7 rsb ip, r5, r4 - bhi .L793 + bhi .L809 str r5, [sp, #4] - b .L792 -.L791: + b .L808 +.L807: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L782 -.L792: + b .L798 +.L808: mov r5, #0 -.L782: +.L798: add r9, r9, #2 cmp r9, #69 - bls .L785 -.L783: + bls .L801 +.L799: ldr r3, [sp, #4] cmp r3, r5 movcs r4, ip - b .L784 -.L793: + b .L800 +.L809: mov r4, ip -.L784: +.L800: cmp r4, #0 - beq .L786 - ldr r0, .L802+12 + beq .L802 + ldr r0, .L818+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L786: +.L802: cmn r8, #1 - bne .L779 - ldr r0, .L802+16 + bne .L795 + ldr r0, .L818+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L787 + beq .L803 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L779: +.L795: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L803: +.L819: .align 2 -.L802: +.L818: .word .LANCHOR2 .word .LC7 .word .LANCHOR0 @@ -4561,21 +4639,21 @@ FlashReadPage: mov r8, r2 mov r7, r3 bl FlashReadRawPage - ldr r10, .L825 + ldr r10, .L841 cmn r0, #1 mov r4, r0 - bne .L805 - ldr r9, .L825+4 + bne .L821 + ldr r9, .L841+4 ldrb fp, [r9, #8] @ zero_extendqisi2 cmp fp, #0 - bne .L806 -.L808: - ldrb r3, [r10, #-1864] @ zero_extendqisi2 - ldr r9, .L825 + bne .L822 +.L824: + ldrb r3, [r10, #-1860] @ zero_extendqisi2 + ldr r9, .L841 cmp r3, #0 - beq .L805 - b .L824 -.L806: + beq .L821 + b .L840 +.L822: mov r3, #0 mov r0, r5 strb r3, [r9, #8] @@ -4586,9 +4664,9 @@ FlashReadPage: strb fp, [r9, #8] cmn r0, #1 movne r4, r0 - beq .L808 - b .L805 -.L824: + beq .L824 + b .L821 +.L840: ldr r3, [r9, #-2808] mov r0, r5 mov r1, r6 @@ -4600,22 +4678,22 @@ FlashReadPage: bl FlashDdrTunningRead cmn r0, #1 mov r4, r0 - beq .L809 + beq .L825 ldrb r3, [r9, #-2743] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L805 -.L809: + bls .L821 +.L825: ubfx r0, fp, #8, #8 bl NandcSetDdrPara -.L805: - ldr ip, [r10, #-1792] - ldr r9, .L825 +.L821: + ldr ip, [r10, #-1796] + ldr r9, .L841 adds r3, ip, #0 movne r3, #1 cmn r4, #1 movne r3, #0 cmp r3, #0 - beq .L810 + beq .L826 mov r1, r6 mov r2, r8 mov r3, r7 @@ -4624,17 +4702,17 @@ FlashReadPage: mov r2, r5 mov r3, r6 mov r4, r0 - ldr r0, .L825+8 + ldr r0, .L841+8 mov r1, r4 bl printk cmn r4, #1 - bne .L810 + bne .L826 ldrb r3, [r9, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L810 + beq .L826 mov r0, r5 bl flash_enter_slc_mode - ldr ip, [r9, #-1792] + ldr ip, [r9, #-1796] mov r0, r5 mov r1, r6 mov r2, r8 @@ -4643,14 +4721,14 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L810: +.L826: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L826: +.L842: .align 2 -.L825: +.L841: .word .LANCHOR2 .word .LANCHOR0 .word .LC10 @@ -4667,12 +4745,12 @@ FlashDdrParaScan: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r0 - ldr r5, .L837 + ldr r5, .L853 mov r6, r1 mov r4, #0 - ldrb r0, [r5, #-1876] @ zero_extendqisi2 + ldrb r0, [r5, #-1875] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #-1876] @ zero_extendqisi2 + ldrb r0, [r5, #-1875] @ zero_extendqisi2 bl NandcSetMode mov r1, r6 mov r2, r4 @@ -4689,27 +4767,27 @@ FlashDdrParaScan: mov r3, r5 cmn r0, #1 cmnne r8, #1 - bne .L828 - ldrb r2, [r5, #-1876] @ zero_extendqisi2 + bne .L844 + ldrb r2, [r5, #-1875] @ zero_extendqisi2 tst r2, #1 - beq .L828 + beq .L844 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - strb r4, [r5, #-1864] - b .L829 -.L828: + strb r4, [r5, #-1860] + b .L845 +.L844: mov r2, #1 - strb r2, [r3, #-1864] -.L829: + strb r2, [r3, #-1860] +.L845: mov r0, #0 add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L838: +.L854: .align 2 -.L837: +.L853: .word .LANCHOR2 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -4724,123 +4802,123 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r3, .L855 + ldr r3, .L871 mov r4, #0 - ldr r8, .L855+4 + ldr r8, .L871+4 mov r9, #4 - ldr r5, .L855+8 + ldr r5, .L871+8 mvn r7, #0 ldr r0, [r3] @ unaligned ldr r3, [r8, #4] - str r4, [r5, #-1784] + str r4, [r5, #-1788] mov r6, r5 str r0, [sp, #12] @ unaligned mov r0, r4 str r3, [sp, #4] - ldr r3, [r5, #-1872] - str r3, [r5, #-1788] + ldr r3, [r5, #-1868] + str r3, [r5, #-1792] bl flash_enter_slc_mode -.L840: +.L856: add fp, r4, #1 mov r10, #0 -.L842: +.L858: add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 mov r1, r4 - ldr r2, [r5, #-1872] + ldr r2, [r5, #-1868] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L841 + bne .L857 mov r0, #0 mov r1, fp - ldr r2, [r6, #-1872] + ldr r2, [r6, #-1868] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L841 + bne .L857 add r10, r10, #1 cmp r10, #4 - beq .L843 - b .L842 -.L844: + beq .L859 + b .L858 +.L860: add r0, fp, #12 movw r1, #2036 bl js_hash ldr r3, [fp, #8] cmp r3, r0 mvnne r7, #0 - bne .L843 - ldr r7, .L855+12 + bne .L859 + ldr r7, .L871+12 add r1, fp, #160 mov r2, #32 mov r0, r7 bl ftl_memcpy - ldr r1, [r6, #-1788] + ldr r1, [r6, #-1792] mov r2, #32 - ldr r0, .L855+16 + ldr r0, .L871+16 add r1, r1, #192 bl ftl_memcpy - ldr r1, [r6, #-1788] + ldr r1, [r6, #-1792] mov r2, #852 - ldr r0, .L855+20 + ldr r0, .L871+20 add r1, r1, #224 bl ftl_memcpy ldrh r0, [r7, #10] bl FlashBlockAlignInit - ldr r7, [r6, #-1788] - str r4, [r6, #-1784] + ldr r7, [r6, #-1792] + str r4, [r6, #-1788] mov r0, r4 ldr r1, [r8, #4] ldr r3, [r7, #1076] - strb r3, [r6, #-1864] + strb r3, [r6, #-1860] bl __aeabi_uidiv add r0, r0, #1 cmp r0, #1 - strhi r0, [r6, #-1780] + strhi r0, [r6, #-1784] movls r3, #2 - strls r3, [r6, #-1780] + strls r3, [r6, #-1784] ldrh r3, [r7, #14] mov r7, #0 - strb r3, [r5, #-1776] -.L843: + strb r3, [r5, #-1780] +.L859: ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L840 + bne .L856 mov r0, r9 -.L854: +.L870: bl flash_exit_slc_mode mov r0, r7 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L841: - ldr fp, [r5, #-1788] - ldr r2, .L855+24 +.L857: + ldr fp, [r5, #-1792] + ldr r2, .L871+24 ldr r3, [fp] cmp r3, r2 - bne .L843 + bne .L859 cmp r7, #0 - bne .L844 + bne .L860 mov r0, r4 ldr r1, [r8, #4] bl __aeabi_uidiv - ldr r3, .L855+8 + ldr r3, .L871+8 add r0, r0, #1 - str r0, [r3, #-1780] + str r0, [r3, #-1784] mov r0, r7 - b .L854 -.L856: + b .L870 +.L872: .align 2 -.L855: +.L871: .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR1+256 - .word .LANCHOR0+44 + .word .LANCHOR0+48 .word .LANCHOR2-2732 .word 1312902724 .fnend @@ -4861,14 +4939,14 @@ ToshibaReadRetrial: str r1, [sp, #20] str r2, [sp, #8] bl NandcWaitFlashReady - ldr r3, .L886 + ldr r3, .L902 add r3, r3, r8, asl #3 ldr r5, [r3, #12] ldrb r3, [r3, #16] @ zero_extendqisi2 add r6, r3, #8 add r6, r5, r6, asl #8 str r3, [sp, #4] - ldr r3, .L886+4 + ldr r3, .L902+4 ldrb r7, [r3] @ zero_extendqisi2 str r3, [sp, #12] sub r4, r7, #67 @@ -4877,47 +4955,47 @@ ToshibaReadRetrial: mov r3, r3, asl #8 movls r4, #0 str r3, [sp, #16] - bls .L858 - ldr r3, .L886+8 - ldrb r4, [r3, #-1864] @ zero_extendqisi2 + bls .L874 + ldr r3, .L902+8 + ldrb r4, [r3, #-1860] @ zero_extendqisi2 cmp r4, #0 - beq .L859 + beq .L875 mov r0, #0 mov r4, #1 bl NandcSetDdrMode -.L859: +.L875: ldr r3, [sp, #16] mov r2, #92 add r3, r5, r3 str r2, [r3, #2056] mov r2, #197 str r2, [r3, #2056] -.L858: +.L874: mov r7, #1 mvn r9, #0 -.L860: - ldr r3, .L886+12 +.L876: + ldr r3, .L902+12 ldrb r3, [r3] @ zero_extendqisi2 add r3, r3, #1 cmp r7, r3 - bcs .L885 + bcs .L901 ldr r3, [sp, #12] mov r0, r6 uxtb r1, r7 ldrb r3, [r3] @ zero_extendqisi2 sub r3, r3, #67 cmp r3, #1 - bhi .L861 + bhi .L877 bl SandiskSetRRPara - b .L862 -.L861: + b .L878 +.L877: bl ToshibaSetRRPara -.L862: +.L878: ldr r3, [sp, #12] ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #34 - bne .L863 - ldr r3, .L886+12 + bne .L879 + ldr r3, .L902+12 ldrb r3, [r3] @ zero_extendqisi2 sub r3, r3, #3 cmp r7, r3 @@ -4925,7 +5003,7 @@ ToshibaReadRetrial: moveq r2, #179 addeq r3, r5, r3, asl #8 streq r2, [r3, #2056] -.L863: +.L879: ldr r3, [sp, #16] cmp r4, #0 mov r2, #38 @@ -4933,7 +5011,7 @@ ToshibaReadRetrial: str r2, [r3, #2056] mov r2, #93 str r2, [r3, #2056] - beq .L864 + beq .L880 mov r0, #4 bl NandcSetDdrMode mov r0, r8 @@ -4944,70 +5022,70 @@ ToshibaReadRetrial: mov fp, r0 mov r0, #0 bl NandcSetDdrMode - b .L865 -.L864: + b .L881 +.L880: mov r0, r8 ldr r1, [sp, #20] ldr r2, [sp, #8] mov r3, r10 bl FlashReadRawPage mov fp, r0 -.L865: +.L881: cmn fp, #1 - beq .L866 - ldr r3, .L886+8 + beq .L882 + ldr r3, .L902+8 cmn r9, #1 moveq r9, fp ldrb r2, [r3, #-2743] @ zero_extendqisi2 add r2, r2, r2, asl #1 cmp fp, r2, asr #2 - bcc .L868 + bcc .L884 mov r10, #0 str r10, [sp, #8] -.L866: +.L882: add r7, r7, #1 - b .L860 -.L885: + b .L876 +.L901: mov fp, r9 -.L868: +.L884: ldr r3, [sp, #12] mov r0, r6 mov r1, #0 ldrb r2, [r3] @ zero_extendqisi2 sub r2, r2, #67 cmp r2, #1 - bhi .L870 + bhi .L886 bl SandiskSetRRPara - b .L871 -.L870: + b .L887 +.L886: bl ToshibaSetRRPara -.L871: +.L887: ldr r3, [sp, #16] mov r2, #255 add r5, r5, r3 str r2, [r5, #2056] - ldr r2, .L886+8 + ldr r2, .L902+8 ldrb r2, [r2, #-2743] @ zero_extendqisi2 add r2, r2, r2, asl #1 cmp fp, r2, asr #2 - bcc .L872 + bcc .L888 cmn fp, #1 movne fp, #256 -.L872: +.L888: mov r0, r8 bl NandcWaitFlashReady cmp r4, #0 - beq .L873 + beq .L889 mov r0, #4 bl NandcSetDdrMode -.L873: +.L889: mov r0, fp add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L887: +.L903: .align 2 -.L886: +.L902: .word .LANCHOR0 .word g_retryMode .word .LANCHOR2 @@ -5025,25 +5103,25 @@ SamsungReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r0 - ldr r4, .L902 + ldr r4, .L918 mov r7, r3 mov fp, r1 mov r9, r2 add r4, r4, r8, asl #3 bl NandcWaitFlashReady - ldr r10, .L902+4 + ldr r10, .L918+4 mov r6, #1 ldrb r3, [r4, #16] @ zero_extendqisi2 ldr r5, [r4, #12] mvn r4, #0 add r3, r3, #8 - ldr ip, .L902+8 + ldr ip, .L918+8 add r5, r5, r3, asl #8 -.L889: +.L905: ldrb r3, [r10] @ zero_extendqisi2 add r3, r3, #1 cmp r6, r3 - bcs .L892 + bcs .L908 mov r0, r5 uxtb r1, r6 str ip, [sp, #4] @@ -5055,39 +5133,39 @@ SamsungReadRetrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L890 + beq .L906 ldrb r3, [ip, #-2743] @ zero_extendqisi2 cmn r4, #1 moveq r4, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L895 + bcc .L911 mov r7, #0 mov r9, r7 -.L890: +.L906: add r6, r6, #1 - b .L889 -.L895: + b .L905 +.L911: mov r4, r0 -.L892: +.L908: mov r0, r5 mov r1, #0 bl SamsungSetRRPara - ldr r3, .L902+8 + ldr r3, .L918+8 ldrb r3, [r3, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L894 + bcc .L910 cmn r4, #1 movne r4, #256 -.L894: +.L910: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L903: +.L919: .align 2 -.L902: +.L918: .word .LANCHOR0 .word g_maxRetryCount .word .LANCHOR2 @@ -5100,11 +5178,11 @@ MicronReadRetrial: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 -.L906: +.L922: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r3 - ldr r3, .L930 + ldr r3, .L946 mov fp, r2 .pad #36 sub sp, sp, #36 @@ -5115,14 +5193,14 @@ MicronReadRetrial: str r1, [sp, #20] cmp r3, #0 addeq r5, r5, r5, asl #1 - ldrne r2, .L930+4 + ldrne r2, .L946+4 ubfxeq r5, r5, #2, #8 smullne r2, r3, r5, r2 uxtbne r5, r3 - ldr r3, .L930+8 + ldr r3, .L946+8 add r3, r3, r0, asl #3 str r3, [sp, #24] -.L916: +.L932: mov r0, r6 mov r9, #0 bl NandcWaitFlashReady @@ -5136,11 +5214,11 @@ MicronReadRetrial: ldr r2, [sp, #16] ldr r3, [sp, #12] add r7, r3, r2, asl #8 -.L907: - ldr r3, .L930+12 +.L923: + ldr r3, .L946+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r9, r3 - bcs .L910 + bcs .L926 mov r3, #239 mov r0, #200 str r3, [r7, #2056] @@ -5161,22 +5239,22 @@ MicronReadRetrial: str ip, [sp, #28] bl FlashReadRawPage cmn r0, #1 - beq .L908 + beq .L924 cmn r4, #1 ldr ip, [sp, #28] moveq r4, r0 cmp r0, r5 - bcc .L918 + bcc .L934 mov r8, ip mov fp, ip -.L908: +.L924: ldr r9, [sp, #8] - b .L907 -.L918: + b .L923 +.L934: mov r4, r0 mov r8, ip mov fp, ip -.L910: +.L926: ldr r2, [sp, #16] mov r0, #200 ldr r3, [sp, #12] @@ -5192,10 +5270,10 @@ MicronReadRetrial: str r3, [r7, #2048] str r3, [r7, #2048] str r3, [r7, #2048] - bcc .L912 + bcc .L928 cmn r4, #1 movne r4, #256 -.L912: +.L928: cmn r4, #1 movne r7, #0 moveq r7, #1 @@ -5203,48 +5281,48 @@ MicronReadRetrial: movne r1, r7 orreq r1, r7, #1 cmp r1, #0 - beq .L913 + beq .L929 str r4, [sp] mov r1, r9 - ldr r0, .L930+16 + ldr r0, .L946+16 mov r3, r9 ldr r2, [sp, #20] bl printk cmp r10, #0 - bne .L914 - ldr r3, .L930 + bne .L930 + ldr r3, .L946 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 moveq r7, #0 andne r7, r7, #1 cmp r7, #0 - beq .L923 + beq .L939 mov r0, r6 mov r1, #3 bl micron_auto_read_calibration_config mov r10, #1 - b .L916 -.L914: + b .L932 +.L930: mov r0, r6 mov r1, #0 bl micron_auto_read_calibration_config cmn r4, #1 movne r4, #256 - b .L923 -.L913: + b .L939 +.L929: cmp r10, #0 - beq .L923 + beq .L939 mov r0, r6 mov r4, #256 bl micron_auto_read_calibration_config -.L923: +.L939: mov r0, r4 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L931: +.L947: .align 2 -.L930: +.L946: .word .LANCHOR2 .word 1431655766 .word .LANCHOR0 @@ -5263,12 +5341,12 @@ HynixReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r10, r2 - ldr r2, .L950 + ldr r2, .L966 mov fp, r1 - ldr ip, .L950+4 + ldr ip, .L966+4 mov r8, r3 mov r5, r0 - ldr r1, [r2, #3320] + ldr r1, [r2, #44] add r3, ip, r0 ldrb r9, [ip, #-2730] @ zero_extendqisi2 mov r7, ip @@ -5281,14 +5359,14 @@ HynixReadRetrial: ldrlsb r4, [r3, #-2712] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L934: +.L950: cmp ip, r9 - bcs .L938 + bcs .L954 add r4, r4, #1 mov r0, r5 ldrb r1, [r7, #-2731] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L950+8 + ldr r2, .L966+8 cmp r4, r9 str ip, [sp, #4] movcs r4, #0 @@ -5301,24 +5379,24 @@ HynixReadRetrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L936 + beq .L952 ldrb r3, [r7, #-2743] @ zero_extendqisi2 cmn r6, #1 moveq r6, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L943 + bcc .L959 mov r8, #0 mov r10, r8 -.L936: +.L952: add ip, ip, #1 - b .L934 -.L943: + b .L950 +.L959: mov r6, r0 -.L938: +.L954: ldr r3, [sp] add r5, r7, r5 - ldr r3, [r3, #3320] + ldr r3, [r3, #44] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #7 cmp r3, #1 @@ -5327,23 +5405,192 @@ HynixReadRetrial: strhib r4, [r5, #-2720] add r3, r3, r3, asl #1 cmp r6, r3, asr #2 - bcc .L942 + bcc .L958 cmn r6, #1 movne r6, #256 -.L942: +.L958: mov r0, r6 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L951: +.L967: .align 2 -.L950: +.L966: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2-2728 .fnend .size HynixReadRetrial, .-HynixReadRetrial .align 2 + .type samsung_read_retrial, %function +samsung_read_retrial: + .fnstart + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {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 + mov r10, r0 + mov fp, r2 + mov r8, r3 + str r1, [sp, #12] + bl NandcWaitFlashReady + ldr r3, .L998 + add r3, r3, r10, asl #3 + ldr r4, [r3, #12] + ldrb r3, [r3, #16] @ zero_extendqisi2 + str r3, [sp, #8] + ldr r3, .L998+4 + ldrb r2, [r3, #-1876] @ zero_extendqisi2 + str r3, [sp, #16] + cmp r2, #0 + bne .L969 + ldr r3, [sp, #8] + mvn r5, #0 + mov r6, #1 + mov r9, r3, asl #8 + add r7, r4, r9 +.L973: + mov r3, #239 + str r3, [r7, #2056] + mov r3, #141 + str r3, [r7, #2052] + ldr r3, .L998+8 + mov ip, #0 + mov r0, r10 + ldr r1, [sp, #12] + mov r2, fp + str ip, [sp, #20] + ldrsb r3, [r6, r3] + str r3, [r7, #2048] + mov r3, r8 + str ip, [r7, #2048] + str ip, [r7, #2048] + str ip, [r7, #2048] + bl FlashReadRawPage + cmn r0, #1 + beq .L970 + ldr r3, [sp, #16] + cmn r5, #1 + moveq r5, r0 + ldrb r3, [r3, #-2743] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp r0, r3, asr #2 + bcc .L981 + ldr ip, [sp, #20] + mov r8, ip + mov fp, ip +.L970: + add r6, r6, #1 + cmp r6, #26 + bne .L973 + b .L972 +.L981: + mov r5, r0 +.L972: + add r9, r4, r9 + mov r3, #239 + str r3, [r9, #2056] + ldr r3, [sp, #8] + add r4, r4, r3, asl #8 + mov r3, #141 + b .L997 +.L969: + ldr r3, [sp, #8] + mvn r5, #0 + ldr r7, .L998+12 + mov r6, #1 + mov ip, r3, asl #8 + add r9, r4, ip +.L978: + mov r3, #239 + str r3, [r9, #2056] + mov r3, #137 + str r3, [r9, #2052] + ldrb r3, [r7, #4] @ zero_extendqisi2 + mov r0, r10 + ldr r1, [sp, #12] + mov r2, fp + str ip, [sp, #20] + str r3, [r9, #2048] + ldrb r3, [r7, #5] @ zero_extendqisi2 + str r3, [r9, #2048] + ldrb r3, [r7, #6] @ zero_extendqisi2 + str r3, [r9, #2048] + ldrb r3, [r7, #7] @ zero_extendqisi2 + str r3, [r9, #2048] + mov r3, r8 + bl FlashReadRawPage + cmn r0, #1 + ldr ip, [sp, #20] + beq .L975 + ldr r3, [sp, #16] + cmn r5, #1 + moveq r5, r0 + ldrb r3, [r3, #-2743] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp r0, r3, asr #2 + bcc .L982 + mov r8, #0 + mov fp, r8 +.L975: + add r6, r6, #1 + add r7, r7, #4 + cmp r6, #26 + bne .L978 + b .L977 +.L982: + mov r5, r0 +.L977: + add ip, r4, ip + mov r3, #239 + str r3, [ip, #2056] + ldr r3, [sp, #8] + add r4, r4, r3, asl #8 + mov r3, #137 +.L997: + str r3, [r4, #2052] + mov r3, #0 + str r3, [r4, #2048] + str r3, [r4, #2048] + str r3, [r4, #2048] + str r3, [r4, #2048] + ldr r3, [sp, #16] + ldrb r3, [r3, #-2743] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp r5, r3, asr #2 + bcc .L979 + cmn r5, #1 + movne r5, #256 +.L979: + cmn r5, #1 + cmpne r5, #256 + bne .L980 + str r5, [sp] + mov r1, r6 + ldr r0, .L998+16 + mov r3, r6 + ldr r2, [sp, #12] + bl printk +.L980: + mov r0, r10 + bl NandcWaitFlashReady + mov r0, r5 + add sp, sp, #28 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L999: + .align 2 +.L998: + .word .LANCHOR0 + .word .LANCHOR2 + .word .LANCHOR3+4 + .word .LANCHOR3+32 + .word .LC12 + .fnend + .size samsung_read_retrial, .-samsung_read_retrial + .align 2 .global FlashProgPage .type FlashProgPage, %function FlashProgPage: @@ -5354,22 +5601,22 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L956 + ldr r3, .L1004 subs r4, r0, #0 mov r5, r1 mov r7, r2 ldrb r6, [r3, #265] @ zero_extendqisi2 - bne .L953 - ldr r2, .L956+4 + bne .L1001 + ldr r2, .L1004+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r1, [r2, #4] mul r1, r1, r3 cmp r5, r1 - bcs .L953 + bcs .L1001 ldrb r3, [r2] @ zero_extendqisi2 cmp r3, #0 movne r6, #4 -.L953: +.L1001: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -5398,9 +5645,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L957: +.L1005: .align 2 -.L956: +.L1004: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -5415,141 +5662,159 @@ FlashSavePhyInfo: stmfd sp!, {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, .L968 - ldr r5, .L968+4 - ldr r8, .L968+8 - ldr r3, [r4, #-1872] - mov r9, r4 - ldrb r0, [r4, #-1775] @ zero_extendqisi2 - mov r10, r5 - str r3, [r4, #-1788] + ldr r4, .L1020 + ldr r7, .L1020+4 + ldr r9, .L1020+8 + ldr r3, [r4, #-1868] + mov r8, r4 + ldrb r0, [r4, #-1779] @ zero_extendqisi2 + mov fp, r7 + str r3, [r4, #-1792] bl FlashBchSel mov r1, #0 mov r2, #2048 - ldr r0, [r4, #-1872] + ldr r0, [r4, #-1868] bl ftl_memset - ldr r3, [r4, #-1788] - ldr r1, .L968+12 + ldr r3, [r4, #-1792] + ldr r1, .L1020+12 mov r2, #32 - str r8, [r3] - ldr r0, [r4, #-1788] - ldrb r3, [r5, #3148] @ zero_extendqisi2 + str r9, [r3] + ldr r0, [r4, #-1792] + ldrb r3, [r7, #3152] @ zero_extendqisi2 add r0, r0, #16 strh r3, [r0, #-4] @ movhi - ldrb r3, [r5, #1] @ zero_extendqisi2 + ldrb r3, [r7, #1] @ zero_extendqisi2 strh r3, [r0, #-2] @ movhi - ldrb r3, [r4, #-1864] @ zero_extendqisi2 + ldrb r3, [r4, #-1860] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy - ldr r0, [r4, #-1788] - add r1, r5, #3152 + ldr r0, [r4, #-1792] + ldr r1, .L1020+16 mov r2, #8 add r0, r0, #80 bl ftl_memcpy - ldr r0, [r4, #-1788] - ldr r1, .L968+16 + ldr r0, [r4, #-1792] + ldr r1, .L1020+20 mov r2, #32 add r0, r0, #96 bl ftl_memcpy - ldr r0, [r4, #-1788] - ldr r1, .L968+20 + ldr r0, [r4, #-1792] + ldr r1, .L1020+24 mov r2, #32 add r0, r0, #160 bl ftl_memcpy - ldr r0, [r4, #-1788] - add r1, r5, #44 + ldr r0, [r4, #-1792] + add r1, r7, #48 mov r2, #32 add r0, r0, #192 bl ftl_memcpy - ldr r0, [r4, #-1788] + ldr r0, [r4, #-1792] mov r2, #852 - ldr r1, .L968+24 + ldr r1, .L1020+28 add r0, r0, #224 bl ftl_memcpy - ldr r6, [r4, #-1788] + ldr r5, [r4, #-1792] movw r1, #2036 - add r0, r6, #12 + add r0, r5, #12 bl js_hash movw r3, #1592 - str r3, [r6, #4] - ldr r3, [r4, #-1772] - str r3, [r4, #-1788] - str r0, [r6, #8] + str r3, [r5, #4] + ldr r3, [r4, #-1776] + str r3, [r4, #-1792] + str r0, [r5, #8] mov r0, #0 bl flash_enter_slc_mode - mov r6, #0 - mov r7, r6 -.L961: - ldr r1, [r5, #4] + mov r5, #0 + mov r6, r5 +.L1012: + ldr r1, [r7, #4] mov r0, #0 mov r2, r0 - mul r1, r1, r7 + mul r1, r1, r6 bl FlashEraseBlock - ldr r1, [r5, #4] + ldrb r10, [r4, #-2744] @ zero_extendqisi2 + cmp r10, #0 + beq .L1007 + mov r10, #0 +.L1008: + ldr r1, [r7, #4] mov r0, #0 - ldr r2, [r4, #-1872] + ldr r2, [r4, #-1868] mov r3, r0 - mul r1, r1, r7 + mla r1, r1, r6, r10 + add r10, r10, #1 bl FlashProgPage - ldr r1, [r5, #4] - mov r0, #0 - ldr r2, [r4, #-1872] - mov r3, r0 - mul r1, r1, r7 + cmp r10, #10 + bne .L1008 + b .L1009 +.L1007: + ldr r1, [fp, #4] + mov r3, r10 + ldr r2, [r8, #-1868] + mov r0, r10 + mul r1, r1, r6 + bl FlashProgPage + ldr r1, [fp, #4] + mov r0, r10 + ldr r2, [r8, #-1868] + mov r3, r10 + mul r1, r1, r6 add r1, r1, #1 bl FlashProgPage - ldr r1, [r5, #4] +.L1009: + ldr r1, [r7, #4] mov r0, #0 - ldr r2, [r4, #-1772] + ldr r2, [r4, #-1776] mov r3, r0 - mul r1, r1, r7 + mul r1, r1, r6 bl FlashReadRawPage - add r2, r7, #1 + add r2, r6, #1 cmn r0, #1 - beq .L959 - ldr fp, [r9, #-1788] - ldr r3, [fp] - cmp r3, r8 - bne .L959 - add r0, fp, #12 + beq .L1010 + ldr r10, [r8, #-1792] + ldr r3, [r10] + cmp r3, r9 + bne .L1010 + add r0, r10, #12 movw r1, #2036 str r2, [sp, #4] bl js_hash - ldr r3, [fp, #8] + ldr r3, [r10, #8] cmp r3, r0 ldr r2, [sp, #4] - bne .L959 - ldr r3, [r10, #4] - cmp r6, #1 - str r2, [r9, #-1780] - mul r7, r3, r7 - str r7, [r9, #-1784] - beq .L962 - mov r6, #1 -.L959: + bne .L1010 + ldr r3, [fp, #4] + cmp r5, #1 + str r2, [r8, #-1784] + mul r6, r3, r6 + str r6, [r8, #-1788] + beq .L1013 + mov r5, #1 +.L1010: cmp r2, #4 - mov r7, r2 - bne .L961 - b .L960 -.L962: - mov r6, #2 -.L960: + mov r6, r2 + bne .L1012 + b .L1011 +.L1013: + mov r5, #2 +.L1011: mov r0, #0 bl flash_exit_slc_mode - clz r0, r6 + clz r0, r5 mov r0, r0, lsr #5 rsb r0, r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L969: +.L1021: .align 2 -.L968: +.L1020: .word .LANCHOR2 .word .LANCHOR0 .word 1312902724 .word IDByte - .word .LANCHOR0+3160 + .word .LANCHOR0+3156 + .word .LANCHOR0+3164 .word .LANCHOR1+256 .word .LANCHOR2-2732 .fnend @@ -5564,101 +5829,101 @@ FlashReadIdbDataRaw: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r0 - ldr r3, .L990 + ldr r3, .L1042 .pad #20 sub sp, sp, #20 - ldr r5, .L990+4 + ldr r5, .L1042+4 ldr r0, [r3] @ unaligned ldrb r3, [r5, #-2743] @ zero_extendqisi2 str r0, [sp, #12] @ unaligned str r3, [sp] - ldr r3, [r5, #-1868] + ldr r3, [r5, #-1864] cmp r3, #0 - beq .L971 + beq .L1023 mov r0, #0 bl flash_enter_slc_mode -.L971: +.L1023: mov r0, r9 mov r1, #0 mov r2, #2048 - ldr r10, .L990+8 + ldr r10, .L1042+8 bl ftl_memset mvn r8, #0 mov r4, #2 mov fp, r10 -.L972: +.L1024: ldrb r3, [r10, #1] @ zero_extendqisi2 cmp r4, r3 - bcs .L976 + bcs .L1028 mov r7, #0 -.L974: +.L1026: add r3, sp, #12 - ldr r6, .L990+4 + ldr r6, .L1042+4 ldrb ip, [r7, r3] @ zero_extendqisi2 mov r0, ip str ip, [sp, #4] bl FlashBchSel ldr r1, [fp, #4] mov r0, #0 - ldr r2, [r5, #-1872] + ldr r2, [r5, #-1868] mov r3, r0 mul r1, r1, r4 bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - bne .L973 + bne .L1025 add r7, r7, #1 cmp r7, #4 - bne .L974 - b .L975 -.L973: - ldr r3, [r6, #-1872] - ldr r2, .L990+12 + bne .L1026 + b .L1027 +.L1025: + ldr r3, [r6, #-1868] + ldr r2, .L1042+12 ldr r3, [r3] cmp r3, r2 - bne .L975 + bne .L1027 mov r1, ip - ldr r0, .L990+16 + ldr r0, .L1042+16 bl printk mov r0, r9 - ldr r1, [r6, #-1872] + ldr r1, [r6, #-1868] mov r2, #2048 bl ftl_memcpy - ldr r3, [r6, #-1872] + ldr r3, [r6, #-1868] ldr r3, [r3, #512] strb r3, [fp, #1] - ldr r3, [r6, #-1780] + ldr r3, [r6, #-1784] cmp r3, r4 - bls .L979 - str r4, [r6, #-1780] + bls .L1031 + str r4, [r6, #-1784] bl FlashSavePhyInfo mov r8, #0 -.L975: +.L1027: add r4, r4, #1 - b .L972 -.L979: + b .L1024 +.L1031: mov r8, #0 -.L976: +.L1028: ldr r0, [sp] bl FlashBchSel - ldr r3, [r5, #-1868] + ldr r3, [r5, #-1864] cmp r3, #0 - beq .L983 + beq .L1035 mov r0, #0 bl flash_exit_slc_mode -.L983: +.L1035: mov r0, r8 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L991: +.L1043: .align 2 -.L990: +.L1042: .word .LANCHOR3 .word .LANCHOR2 .word .LANCHOR0 .word -52655045 - .word .LC12 + .word .LC13 .fnend .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .align 2 @@ -5675,40 +5940,40 @@ FlashInit: sub sp, sp, #20 mov r0, #32768 bl ftl_malloc - ldr r4, .L1087 - ldr r5, .L1087+4 + ldr r4, .L1143 + ldr r5, .L1143+4 mov r7, #0 - str r0, [r4, #-1872] + str r0, [r4, #-1868] mov r0, #32768 bl ftl_malloc - str r0, [r4, #-1772] + str r0, [r4, #-1776] mov r0, #4096 bl ftl_malloc - str r0, [r4, #-1768] + str r0, [r4, #-1772] mov r0, #32768 bl ftl_malloc - str r0, [r4, #-1764] + str r0, [r4, #-1768] mov r0, #4096 bl ftl_malloc mov r3, #50 - str r7, [r4, #-1780] + str r7, [r4, #-1784] strb r3, [r5, #1] - strb r3, [r4, #-1776] + strb r3, [r4, #-1780] mov r3, #128 - strb r7, [r4, #-1864] + strb r7, [r4, #-1860] str r3, [r5, #4] mov r3, #60 - str r7, [r4, #-1796] + str r7, [r4, #-1800] strb r7, [r5] - strb r7, [r4, #-1756] - strb r3, [r4, #-1775] - str r0, [r4, #-1760] + strb r7, [r4, #-1760] + strb r3, [r4, #-1779] + str r0, [r4, #-1764] mov r0, r6 bl NandcInit - ldr r6, .L1087+8 + ldr r6, .L1143+8 mov r8, r6 -.L998: - ldr r3, .L1087+12 +.L1050: + ldr r3, .L1143+12 uxtb r9, r7 add r2, r3, r7, asl #3 mov r0, r9 @@ -5738,7 +6003,7 @@ FlashInit: strb r0, [r6, #4] ldr r0, [fp, #2048] strb r0, [r6, #5] - bne .L993 + bne .L1045 mov r1, #239 mov r0, #200 str r1, [fp, #2056] @@ -5750,17 +6015,17 @@ FlashInit: str r10, [fp, #2048] str r10, [fp, #2048] str r10, [fp, #2048] -.L993: +.L1045: mov r0, r9 bl NandcFlashDeCs ldrb r2, [r6] @ zero_extendqisi2 sub r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L994 + bhi .L1046 ldrb r1, [r6, #2] @ zero_extendqisi2 ldrb r3, [r6, #1] @ zero_extendqisi2 - ldr r0, .L1087+16 + ldr r0, .L1143+16 str r1, [sp] ldrb r1, [r6, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -5770,20 +6035,20 @@ FlashInit: str r1, [sp, #12] add r1, r7, #1 bl printk -.L994: +.L1046: cmp r7, #0 - bne .L995 + bne .L1047 ldrb r3, [r8] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1044 - ldr r3, .L1087+8 + bhi .L1097 + ldr r3, .L1143+8 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, #255 - beq .L1044 + beq .L1097 bl FlashCs123Init -.L995: +.L1047: ldrb r3, [r6] @ zero_extendqisi2 add r7, r7, #1 add r6, r6, #8 @@ -5791,194 +6056,202 @@ FlashInit: moveq r3, #44 streqb r3, [r6, #-8] cmp r7, #4 - bne .L998 + bne .L1050 ldrb r3, [r8] @ zero_extendqisi2 cmp r3, #173 - beq .L999 - ldr r0, [r4, #-1860] + beq .L1051 + ldr r0, [r4, #-1856] bl NandcSetDdrMode -.L999: +.L1051: mov r2, #852 - ldr r0, .L1087+20 + ldr r0, .L1143+20 mov r1, #0 - ldr r7, .L1087+24 + ldr r7, .L1143+24 bl ftl_memset - ldr r6, [r4, #-1852] - ldr r3, .L1087+28 - cmp r6, r7 - ldrb r0, [r8, #1] @ zero_extendqisi2 - str r3, [r5, #3320] + ldr r2, [r4, #-1848] + ldr r0, .L1143+28 + cmp r2, r7 + add r3, r0, #256 + str r3, [r5, #44] mov r3, #0 strb r3, [r5, #8] - sub ip, r0, #218 - ldreq r3, .L1087 + bne .L1052 + ldrb r3, [r0, #275] @ zero_extendqisi2 + cmp r3, #50 + ldrne r3, .L1143 + movne r1, #1 + strne r1, [r3, #-1864] +.L1052: + ldrb r6, [r8, #1] @ zero_extendqisi2 + sub ip, r6, #218 + cmp r6, #161 + cmpne r6, #241 clz ip, ip - moveq r2, #1 - mov ip, ip, lsr #5 - streq r2, [r3, #-1868] - cmp r0, #161 - cmpne r0, #241 - and r2, r0, #253 + and r1, r6, #253 moveq r3, #1 movne r3, #0 + mov ip, ip, lsr #5 orr r3, ip, r3 - cmp r2, #209 + cmp r1, #209 orreq r3, r3, #1 cmp r3, #0 - bne .L1001 - cmp r0, #220 - bne .L1002 - ldr r3, .L1087+8 + bne .L1053 + cmp r6, #220 + bne .L1054 + ldr r3, .L1143+8 ldrb r3, [r3, #3] @ zero_extendqisi2 cmp r3, #149 - bne .L1002 -.L1001: - ldrb lr, [r8] @ zero_extendqisi2 - mov r3, #16 - strb r3, [r5, #1] + bne .L1054 +.L1053: + mov lr, #16 + strb lr, [r5, #1] + strb lr, [r4, #-1779] mov r1, #1 - strb r3, [r4, #-1775] - cmp lr, #152 - ldr r3, .L1087+32 + ldrb lr, [r8] @ zero_extendqisi2 strb r1, [r5] - ldr r2, .L1087 - strb lr, [r3, #3317] - strb r0, [r3, #3318] - bne .L1004 - ldr lr, .L1087+8 + cmp lr, #152 + ldr r3, .L1143 + strb lr, [r0, #3413] + strb r6, [r0, #3414] + bne .L1056 + ldr lr, .L1143+8 ldrsb lr, [lr, #4] cmp lr, #0 - strltb r1, [r2, #-1756] + strltb r1, [r3, #-1760] movge r1, #24 - strgeb r1, [r2, #-1775] -.L1004: - movw r2, #2049 - cmp r6, r7 - cmpne r6, r2 - moveq r2, #16 - streqb r2, [r4, #-1775] + strgeb r1, [r3, #-1779] +.L1056: + movw r3, #2049 + cmp r2, r7 + cmpne r2, r3 + moveq r3, #16 + streqb r3, [r4, #-1779] cmp ip, #0 - ldrne r2, .L1087+36 - movne r1, #2048 - strneh r1, [r2, #14] @ movhi - mvnne r2, #37 - bne .L1081 -.L1008: - cmp r0, #220 - bne .L1010 - ldr r2, .L1087+36 - mov r1, #4096 - strh r1, [r2, #14] @ movhi - mvn r2, #35 -.L1081: - strb r2, [r3, #3318] - b .L1009 -.L1010: - cmp r0, #211 - ldreq r2, .L1087+36 - moveq r1, #4096 - streqh r1, [r2, #14] @ movhi - moveq r2, #2 - streqb r2, [r3, #3329] -.L1009: - ldr r1, .L1087+40 + ldrne r3, .L1143+32 + movne r2, #2048 + strneh r2, [r3, #14] @ movhi + mvnne r3, #37 + bne .L1137 +.L1060: + cmp r6, #220 + bne .L1062 + ldr r3, .L1143+32 + mov r2, #4096 + strh r2, [r3, #14] @ movhi + mvn r3, #35 +.L1137: + strb r3, [r0, #3414] + b .L1061 +.L1062: + cmp r6, #211 + ldreq r3, .L1143+32 + moveq r2, #4096 + streqh r2, [r3, #14] @ movhi + moveq r3, #2 + streqb r3, [r0, #3425] +.L1061: + ldr r1, .L1143+36 mov r2, #32 - ldr r0, .L1087+44 + ldr r0, .L1143+40 bl ftl_memcpy - ldr r0, .L1087+28 - ldr r1, .L1087+36 + ldr r0, .L1143+44 + ldr r1, .L1143+32 mov r2, #32 bl ftl_memcpy -.L1002: +.L1054: ldrb r3, [r5] @ zero_extendqisi2 cmp r3, #0 - bne .L1011 + bne .L1063 bl FlashLoadPhyInfoInRam cmp r0, #0 - bne .L1013 - ldr r3, .L1087+4 - ldr r6, .L1087 - ldr r3, [r3, #3320] + bne .L1065 + ldr r3, .L1143+4 + ldr r6, .L1143 + ldr r3, [r3, #44] ldrh r3, [r3, #16] mov r3, r3, lsr #8 tst r3, #1 and r0, r3, #7 - strb r0, [r4, #-1876] - bne .L1013 + strb r0, [r4, #-1875] + bne .L1065 mov r3, #1 - strb r3, [r6, #-1864] + strb r3, [r6, #-1860] bl FlashSetInterfaceMode - ldrb r0, [r6, #-1876] @ zero_extendqisi2 + ldrb r0, [r6, #-1875] @ zero_extendqisi2 bl NandcSetMode -.L1013: - ldr r3, [r5, #3320] - ldr r6, .L1087 +.L1065: + ldr r3, [r5, #44] + ldr r6, .L1143 ldrb r3, [r3, #26] @ zero_extendqisi2 strb r3, [r4, #-2744] bl FlashLoadPhyInfo cmp r0, #0 - beq .L1011 - ldr r3, [r6, #-1860] + beq .L1063 + ldr r3, [r6, #-1856] cmp r3, #0 - beq .L1016 + beq .L1068 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 - b .L1082 -.L1016: - ldrb r0, [r6, #-1876] @ zero_extendqisi2 + b .L1138 +.L1068: + ldrb r0, [r6, #-1875] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r6, #-1876] @ zero_extendqisi2 -.L1082: + ldrb r0, [r6, #-1875] @ zero_extendqisi2 +.L1138: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L1011 + beq .L1063 mov r0, #1 - ldr r6, .L1087+4 + ldr r6, .L1143+4 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r3, [r5, #3320] - ldr r0, .L1087+48 + ldr r3, [r5, #44] + ldr r0, .L1143+48 ldrh r1, [r3, #14] bl printk bl FlashLoadPhyInfoInRam cmn r0, #1 - beq .L1057 + beq .L1111 bl FlashDieInfoInit - ldr r3, [r6, #3320] + ldr r3, [r6, #44] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault movw r3, #3324 - ldr r2, [r6, #3320] + ldr r2, [r6, #44] ldrh r3, [r6, r3] add r3, r3, #4080 ldrb r1, [r2, #9] @ zero_extendqisi2 add r3, r3, #15 cmp r1, r3, asr #12 ldrh r3, [r2, #14] - blt .L1018 + blt .L1070 add r0, r3, #255 cmp r1, r0, asr #8 - bge .L1019 -.L1018: + bge .L1071 +.L1070: bic r3, r3, #255 strh r3, [r2, #14] @ movhi -.L1019: - ldrb r3, [r4, #-1876] @ zero_extendqisi2 +.L1071: + ldrb r3, [r4, #-1875] @ zero_extendqisi2 tst r3, #6 - beq .L1020 + beq .L1072 bl FlashSavePhyInfo - ldr r3, .L1087 mov r0, #0 - ldr r1, [r3, #-1784] + bl flash_enter_slc_mode + ldr r3, .L1143 + mov r0, #0 + ldr r1, [r3, #-1788] bl FlashDdrParaScan -.L1020: + mov r0, #0 + bl flash_exit_slc_mode +.L1072: bl FlashSavePhyInfo -.L1011: - ldr r2, [r5, #3320] - ldr r6, .L1087 +.L1063: + ldr r2, [r5, #44] + ldr r6, .L1143 ldrb r3, [r2, #26] @ zero_extendqisi2 ldrh r0, [r2, #10] ldrb r9, [r2, #18] @ zero_extendqisi2 @@ -5987,185 +6260,198 @@ FlashInit: ubfx r1, r3, #7, #1 strb r1, [r5, #8] ubfx r1, r3, #3, #1 - strb r1, [r4, #-1755] + strb r1, [r4, #-1759] ubfx r1, r3, #4, #1 ubfx r3, r3, #8, #3 - strb r1, [r4, #-1804] - strb r3, [r4, #-1876] + strb r1, [r4, #-1874] + strb r3, [r4, #-1875] mov r3, #0 ldrb r1, [r2, #12] @ zero_extendqisi2 - str r3, [r4, #-1792] + str r3, [r4, #-1796] bl __aeabi_idiv mov r1, r0 mov r0, r9 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr r3, [r5, #3320] + ldr r3, [r5, #44] ldrh r2, [r3, #16] tst r2, #64 - beq .L1022 + beq .L1074 ldrb r0, [r3, #19] @ zero_extendqisi2 - ldr r3, .L1087+52 - ldrb r2, [r6, #-2731] @ zero_extendqisi2 - ldr r1, .L1087+56 + ldr r3, .L1143+52 + ldr r2, .L1143+56 + ldrb r1, [r6, #-2730] @ zero_extendqisi2 strb r0, [r3] - ldr r3, .L1087+60 - strb r2, [r3] - mov ip, r3 - ldrb r2, [r6, #-2730] @ zero_extendqisi2 - strb r2, [r1] - sub r2, r0, #1 - cmp r2, #7 - bhi .L1023 - ldr r3, .L1087+64 - sub r2, r0, #8 - clz r2, r2 - str r3, [r6, #-1792] - sub r3, r0, #5 + ldrb r3, [r6, #-2731] @ zero_extendqisi2 + mov ip, r2 + strb r3, [r2] + ldr r3, .L1143+60 + strb r1, [r3] + sub r1, r0, #1 + cmp r1, #7 + bhi .L1075 + ldr r3, .L1143+64 + sub r2, r0, #5 cmp r0, #8 - cmpne r3, #1 - mov r2, r2, lsr #5 + cmpne r2, #1 + sub r1, r0, #8 + clz r1, r1 + str r3, [r6, #-1796] movls r3, #1 - strls r3, [r6, #-1812] + strls r3, [r6, #-1808] cmp r0, #7 - ldreq r6, .L1087+68 - beq .L1026 - ldr r3, .L1087+68 - cmp r2, #0 - sub r6, r3, #8 - movne r6, r3 -.L1026: - sub r2, r6, #1 - add r6, r6, #31 - mov r3, #0 -.L1027: - ldrsb r1, [r2, #1]! + mov r1, r1, lsr #5 + ldreq r3, .L1143+68 + beq .L1078 + ldr r2, .L1143+68 cmp r1, #0 - addeq r3, r3, #1 - cmp r2, r6 - bne .L1027 - cmp r3, #27 - bls .L1022 + sub r3, r2, #8 + movne r3, r2 +.L1078: + sub r1, r3, #1 + add r3, r3, #31 + mov r2, #0 +.L1079: + ldrsb ip, [r1, #1]! + cmp ip, #0 + addeq r2, r2, #1 + cmp r1, r3 + bne .L1079 + cmp r2, #27 + bls .L1074 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1022 -.L1023: - sub r2, r0, #17 - cmp r2, #2 - bhi .L1029 - ldr r3, .L1087+72 + b .L1074 +.L1075: + sub r1, r0, #17 + cmp r1, #2 + bhi .L1081 + ldr r2, .L1143+72 cmp r0, #19 - str r3, [r6, #-1792] - moveq r3, #15 - bne .L1086 - b .L1084 -.L1029: - sub r2, r0, #65 + str r2, [r6, #-1796] + moveq r2, #15 + bne .L1142 + b .L1140 +.L1081: + sub r1, r0, #65 cmp r0, #33 - cmpne r2, #1 - bhi .L1031 - ldr r2, .L1087+76 - str r2, [r6, #-1792] - mov r2, #4 + cmpne r1, #1 + bhi .L1083 + ldr r1, .L1143+76 + str r1, [r6, #-1796] + mov r1, #4 + strb r1, [r2] +.L1142: + mov r2, #7 +.L1140: strb r2, [r3] -.L1086: - mov r3, #7 -.L1084: - strb r3, [r1] - b .L1022 -.L1031: - sub r3, r0, #67 + b .L1074 +.L1083: + sub r1, r0, #67 sub r2, r0, #34 - cmp r3, #1 - movhi lr, #0 - movls lr, #1 - cmp r3, #1 - cmphi r2, #1 - bhi .L1032 - ldr r3, .L1087+76 + cmp r1, #1 + movhi r1, #0 + movls r1, #1 + cmp r2, #1 + movhi r2, r1 + orrls r2, r1, #1 + cmp r2, #0 + beq .L1084 + ldr r2, .L1143+76 cmp r0, #68 cmpne r0, #35 - str r3, [r6, #-1792] - movne r3, #7 - moveq r3, #17 - cmp lr, #0 - strb r3, [r1] + str r2, [r6, #-1796] + movne r2, #7 + moveq r2, #17 + cmp r1, #0 + strb r2, [r3] movne r3, #4 moveq r3, #5 strb r3, [ip] - b .L1022 -.L1032: + b .L1074 +.L1084: cmp r0, #49 - ldreq r3, .L1087+80 - streq r3, [r6, #-1792] -.L1022: - ldr r3, [r4, #-1852] + ldreq r3, .L1143+80 + streq r3, [r6, #-1796] + beq .L1074 + cmp r0, #50 + streq r2, [r6, #-1864] + ldreq r3, .L1143+84 + streq r3, [r6, #-1796] +.L1074: + ldr r3, [r4, #-1848] cmp r3, r7 - bne .L1036 - ldr r2, .L1087 + bne .L1089 + ldr r2, .L1143 ldrb r2, [r2, #-2744] @ zero_extendqisi2 cmp r2, #0 - ldrne r2, [r5, #3320] + ldrne r2, [r5, #44] movne r1, #0 strneb r1, [r2, #18] -.L1036: +.L1089: ldrb r2, [r8] @ zero_extendqisi2 cmp r2, #44 - bne .L1037 - ldrb r2, [r4, #-1864] @ zero_extendqisi2 + bne .L1090 + ldrb r2, [r4, #-1860] @ zero_extendqisi2 cmp r2, #0 - beq .L1037 + beq .L1090 cmp r3, r7 - bne .L1038 - ldr r3, .L1087 + bne .L1091 + ldr r3, .L1143 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L1037 -.L1038: + bne .L1090 +.L1091: mov r0, #1 mov r3, #0 - strb r3, [r4, #-1864] + strb r3, [r4, #-1860] bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode -.L1037: - ldrb r3, [r4, #-1876] @ zero_extendqisi2 +.L1090: + ldrb r3, [r4, #-1875] @ zero_extendqisi2 tst r3, #6 - beq .L1039 - ldr r2, .L1087 - ldrb r2, [r2, #-1864] @ zero_extendqisi2 + beq .L1092 + ldr r2, .L1143 + ldrb r2, [r2, #-1860] @ zero_extendqisi2 cmp r2, #0 - bne .L1040 + bne .L1093 tst r3, #1 - bne .L1039 -.L1040: + bne .L1092 +.L1093: mov r0, #0 bl flash_enter_slc_mode mov r0, #0 - ldr r1, [r4, #-1784] + ldr r1, [r4, #-1788] bl FlashDdrParaScan mov r0, #0 bl flash_exit_slc_mode -.L1039: - ldr r3, [r5, #3320] +.L1092: + ldr r3, [r5, #44] mov r10, #16 - ldr r9, .L1087+4 - ldr r6, .L1087+84 + ldr r9, .L1143+4 + ldr r6, .L1143+88 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel add r0, r9, #3328 bl FlashReadIdbDataRaw - ldr r0, .L1087+88 + ldr r0, .L1143+92 strb r10, [r5, #1] bl FlashTimingCfg - ldr r7, [r5, #3320] + ldr r7, [r5, #44] + ldrb r2, [r8, #1] @ zero_extendqisi2 ldrb r3, [r7, #12] @ zero_extendqisi2 strh r3, [r6, #8] @ movhi ldrb r3, [r7, #7] @ zero_extendqisi2 str r3, [r4, #-2768] - ldr r3, [r8] @ unaligned + mov r3, r2, asl r10 + orr r2, r3, r2, asl #8 + ldrb r3, [r8] @ zero_extendqisi2 + orr r3, r2, r3 + ldrb r2, [r8, #3] @ zero_extendqisi2 + orr r3, r3, r2, asl #24 str r3, [r4, #-2772] - ldrb r3, [r5, #3148] @ zero_extendqisi2 + ldrb r3, [r5, #3152] @ zero_extendqisi2 ldrh r4, [r7, #14] strh r3, [r6, #10] @ movhi ldrb r3, [r7, #13] @ zero_extendqisi2 @@ -6190,52 +6476,53 @@ FlashInit: ldrb r1, [r5] @ zero_extendqisi2 strh r3, [r6, #22] @ movhi cmp r1, #1 - bne .L1042 + bne .L1095 mov r3, r3, asl #1 - mov r1, r4, lsr #1 + mov r4, r4, lsr #1 mov r2, r2, asl #1 strh r3, [r6, #22] @ movhi strb r10, [r9, #1] mov r3, #8 - strh r1, [r6, #14] @ movhi + strh r4, [r6, #14] @ movhi strh r2, [r6, #20] @ movhi strh r3, [r6, #26] @ movhi -.L1042: +.L1095: ldrb r0, [r7, #20] @ zero_extendqisi2 bl FlashBchSel bl ftl_flash_suspend mov r0, #0 - b .L1057 -.L1044: + b .L1111 +.L1097: mvn r0, #1 -.L1057: +.L1111: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1088: +.L1144: .align 2 -.L1087: +.L1143: .word .LANCHOR2 .word .LANCHOR0 .word IDByte .word .LANCHOR0+12 - .word .LC13 + .word .LC14 .word .LANCHOR2-2732 .word 1446522928 - .word .LANCHOR1+256 .word .LANCHOR1 - .word .LANCHOR1+3316 - .word .LANCHOR1+2976 - .word .LANCHOR0+44 - .word .LC14 + .word .LANCHOR1+3412 + .word .LANCHOR1+3072 + .word .LANCHOR0+48 + .word .LANCHOR1+256 + .word .LC15 .word g_retryMode - .word g_maxRetryCount .word g_maxRegNum + .word g_maxRetryCount .word HynixReadRetrial .word .LANCHOR2-2704 .word MicronReadRetrial .word ToshibaReadRetrial .word SamsungReadRetrial + .word samsung_read_retrial .word .LANCHOR2-2772 .word 150000 .fnend @@ -6249,60 +6536,66 @@ FlashPageProgMsbFFData: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} - mov r4, r2 - ldr r5, .L1103 mov r7, r1 - ldr r2, .L1103+4 + ldr r5, .L1162 + mov r4, r2 + ldr r1, .L1162+4 mov r6, r0 - ldrb r1, [r5, #-2744] @ zero_extendqisi2 - ldr r3, [r2, #3320] - mov r8, r2 - cmp r1, #0 + ldrb r2, [r5, #-2744] @ zero_extendqisi2 + ldr r3, [r1, #44] + mov r8, r1 + cmp r2, #0 ldrb r3, [r3, #19] @ zero_extendqisi2 - beq .L1090 - ldr r2, [r5, #-1868] + beq .L1146 + ldr r2, [r5, #-1864] cmp r2, #0 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1090: +.L1146: sub r2, r3, #5 - cmp r3, #68 + cmp r3, #50 cmpne r2, #2 - bls .L1091 - sub r3, r3, #19 - tst r3, #239 - ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1091: - ldr r9, .L1103+8 + bls .L1147 + sub r2, r3, #19 + tst r2, #239 + moveq r2, #1 + movne r2, #0 + cmp r3, #68 + movne r3, r2 + orreq r3, r2, #1 + cmp r3, #0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L1147: + ldr r9, .L1162+8 movw r10, #65535 -.L1093: - ldr r3, [r8, #3320] +.L1149: + ldr r3, [r8, #44] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1102 + bls .L1161 mov r3, r4, asl #1 ldrh r3, [r9, r3] cmp r3, r10 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mov r1, #255 mov r2, #32768 - ldr r0, [r5, #-1772] + ldr r0, [r5, #-1776] bl ftl_memset - ldr r2, [r5, #-1772] + ldr r2, [r5, #-1776] add r1, r4, r7 add r4, r4, #1 mov r0, r6 mov r3, r2 uxth r4, r4 bl FlashProgPage - b .L1093 -.L1102: + b .L1149 +.L1161: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1104: +.L1163: .align 2 -.L1103: +.L1162: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+1100 + .word .LANCHOR0+1104 .fnend .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData .align 2 @@ -6312,46 +6605,46 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1156 + ldr r3, .L1215 stmfd sp!, {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 ldrb r3, [r3, #265] @ zero_extendqisi2 mov r4, r0 - ldr r10, .L1156+4 + ldr r10, .L1215+4 mov r9, #0 str r1, [sp, #16] str r2, [sp, #20] str r3, [sp, #12] -.L1106: +.L1165: ldr r3, [sp, #16] cmp r9, r3 - beq .L1155 + beq .L1214 ldr r3, [sp, #16] mov r0, r4 ldr r1, [sp, #20] add r2, sp, #28 rsb r3, r9, r3 - ldr r8, .L1156+8 + ldr r8, .L1215+8 uxtb r3, r3 str r3, [sp] add r3, sp, #24 bl LogAddr2PhyAddr - ldrb r3, [r8, #3148] @ zero_extendqisi2 + ldrb r3, [r8, #3152] @ zero_extendqisi2 ldr r5, [sp, #24] cmp r5, r3 mvncs r3, #0 strcs r3, [r4] - bcs .L1108 + bcs .L1167 add r5, r8, r5 mov r7, #0 - ldrb r5, [r5, #3152] @ zero_extendqisi2 + ldrb r5, [r5, #3156] @ zero_extendqisi2 mov r0, r5 bl NandcWaitFlashReady mov r0, r5 bl NandcFlashCs -.L1109: +.L1168: ldr r1, [sp, #28] mov r0, r5 bl FlashReadCmd @@ -6364,27 +6657,27 @@ FlashReadSlc2KPages: ldr r2, [sp, #12] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1156+4 - ldrb r3, [r3, #-1756] @ zero_extendqisi2 + ldr r3, .L1215+4 + ldrb r3, [r3, #-1760] @ zero_extendqisi2 cmp r3, #0 mov r6, r0 - beq .L1110 + beq .L1169 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi r6, #256 -.L1110: +.L1169: cmp r7, #9 cmnls r6, #1 moveq r3, #1 movne r3, #0 addeq r7, r7, #1 - beq .L1109 -.L1111: + beq .L1168 +.L1170: cmp r7, #0 mov r7, r3 movne r6, #256 -.L1113: +.L1172: ldr r3, [sp, #28] mov r0, r5 ldr r1, [r8, #4] @@ -6403,20 +6696,20 @@ FlashReadSlc2KPages: str r2, [sp] ldr r2, [sp, #12] bl NandcXferData - ldrb r2, [r10, #-1756] @ zero_extendqisi2 + ldrb r2, [r10, #-1760] @ zero_extendqisi2 cmp r2, #0 mov fp, r0 - beq .L1116 + beq .L1175 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi fp, #256 -.L1116: +.L1175: cmp r7, #9 cmnls fp, #1 addeq r7, r7, #1 - beq .L1113 -.L1117: + beq .L1172 +.L1176: cmp r7, #0 mov r0, r5 movne fp, #256 @@ -6427,67 +6720,67 @@ FlashReadSlc2KPages: movcc r3, r6 add r2, r2, r2, asl #1 cmp r3, r2, asr #2 - bls .L1119 + bls .L1178 cmn r3, #1 movne r3, #256 -.L1119: +.L1178: cmp r3, #256 cmnne r3, #1 movne r3, #0 str r3, [r4] ldr r3, [r4, #12] cmp r3, #0 - beq .L1122 + beq .L1181 ldr r2, [r3, #12] cmn r2, #1 - bne .L1122 + bne .L1181 ldr r2, [r3, #8] cmn r2, #1 - bne .L1122 + bne .L1181 ldr r3, [r3] cmn r3, #1 strne r2, [r4] -.L1122: +.L1181: ldr r3, [r4] cmn r3, #1 - bne .L1108 + bne .L1167 ldr r1, [r4, #4] - ldr r0, .L1156+12 + ldr r0, .L1215+12 ldrb r2, [r10, #-2743] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cmp r1, #0 - beq .L1124 - ldr r0, .L1156+16 + beq .L1183 + ldr r0, .L1215+16 mov r2, #4 mov r3, #8 bl rknand_print_hex -.L1124: +.L1183: ldr r1, [r4, #12] cmp r1, #0 - beq .L1108 + beq .L1167 mov r2, #4 - ldr r0, .L1156+20 + ldr r0, .L1215+20 mov r3, r2 bl rknand_print_hex -.L1108: +.L1167: add r9, r9, #1 add r4, r4, #36 - b .L1106 -.L1155: + b .L1165 +.L1214: mov r0, #0 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1157: +.L1216: .align 2 -.L1156: +.L1215: .word .LANCHOR1 .word .LANCHOR2 .word .LANCHOR0 - .word .LC15 .word .LC16 .word .LC17 + .word .LC18 .fnend .size FlashReadSlc2KPages, .-FlashReadSlc2KPages .align 2 @@ -6497,12 +6790,12 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1233 + ldr r3, .L1292 stmfd sp!, {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 - ldr r9, .L1233+4 + ldr r9, .L1292+4 ldrb r3, [r3, #265] @ zero_extendqisi2 str r1, [sp, #20] ldrb r8, [r9] @ zero_extendqisi2 @@ -6511,17 +6804,17 @@ FlashReadPages: cmp r8, #0 str r2, [sp, #24] str r3, [sp, #28] - beq .L1195 + beq .L1254 bl FlashReadSlc2KPages - b .L1228 -.L1195: - ldr r7, .L1233+8 + b .L1287 +.L1254: + ldr r7, .L1292+8 mov r10, r0 mov fp, r8 -.L1159: +.L1218: ldr r3, [sp, #20] cmp fp, r3 - bcs .L1231 + bcs .L1290 mov r3, #36 add r2, sp, #44 mul r3, r3, fp @@ -6537,42 +6830,42 @@ FlashReadPages: str r3, [sp] add r3, sp, #40 bl LogAddr2PhyAddr - ldrb r2, [r9, #3148] @ zero_extendqisi2 + ldrb r2, [r9, #3152] @ zero_extendqisi2 ldr r3, [sp, #40] mov r5, r0 cmp r3, r2 ldrcs r2, [sp, #8] mvncs r3, #0 strcs r3, [r10, r2] - bcs .L1162 + bcs .L1221 add r3, r9, r3 - ldrb r4, [r3, #3152] @ zero_extendqisi2 - ldrb r3, [r7, #-1755] @ zero_extendqisi2 + ldrb r4, [r3, #3156] @ zero_extendqisi2 + ldrb r3, [r7, #-1759] @ zero_extendqisi2 cmp r3, #0 mov r0, r4 moveq r5, #0 bl NandcWaitFlashReady - ldr r3, .L1233+4 - ldr r3, [r3, #3320] + ldr r3, .L1292+4 + ldr r3, [r3, #44] ldrb r2, [r3, #19] @ zero_extendqisi2 sub r3, r2, #1 cmp r3, #7 - bhi .L1164 + bhi .L1223 sub r2, r2, #7 add r1, r7, r4 cmp r2, #1 - ldr r2, .L1233+8 + ldr r2, .L1292+8 ldrb r3, [r1, #-2720] @ zero_extendqisi2 add r2, r2, r4 ldrlsb r3, [r1, #-2712] @ zero_extendqisi2 ldrb r2, [r2, #-1880] @ zero_extendqisi2 cmp r2, r3 - beq .L1164 + beq .L1223 mov r0, r4 ldrb r1, [r7, #-2731] @ zero_extendqisi2 - ldr r2, .L1233+12 + ldr r2, .L1292+12 bl HynixSetRRPara -.L1164: +.L1223: mov r0, r4 bl NandcFlashCs mov r0, r4 @@ -6583,41 +6876,41 @@ FlashReadPages: orreq r3, r3, #1 str r3, [sp, #12] cmp r3, #0 - beq .L1166 + beq .L1225 ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1166 + beq .L1225 bl flash_enter_slc_mode - b .L1167 -.L1166: + b .L1226 +.L1225: bl flash_exit_slc_mode -.L1167: +.L1226: ldr r1, [sp, #44] cmn r1, #1 cmpeq r4, #255 moveq r3, #0 movne r3, #1 moveq r5, r3 - beq .L1169 + beq .L1228 cmp r5, #0 - beq .L1170 + beq .L1229 ldr r2, [r9, #4] mov r0, r4 add r2, r1, r2 bl FlashReadDpCmd - b .L1171 -.L1170: + b .L1230 +.L1229: mov r0, r4 bl FlashReadCmd -.L1171: +.L1230: mov r0, r4 bl NandcWaitFlashReady cmp r5, #0 - beq .L1169 + beq .L1228 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1169: +.L1228: ldr r3, [r6, #12] mov r0, r4 ldr r2, [sp, #16] @@ -6635,11 +6928,11 @@ FlashReadPages: movne r3, #0 strneb r3, [r9, #8] movne r5, r3 - bne .L1167 -.L1172: + bne .L1226 +.L1231: cmp r5, #0 - beq .L1173 - ldr r3, .L1233+4 + beq .L1232 + ldr r3, .L1292+4 str r0, [sp, #32] mov r0, r4 str r2, [sp, #36] @@ -6662,7 +6955,7 @@ FlashReadPages: ldr ip, [sp, #32] mov r8, r0 moveq r5, #0 -.L1173: +.L1232: mov r0, r4 str ip, [sp, #32] bl NandcFlashDeCs @@ -6670,16 +6963,16 @@ FlashReadPages: ldrb r3, [sp, #28] @ zero_extendqisi2 cmn ip, #1 strb r3, [r9, #8] - bne .L1180 - ldrb r3, [r7, #-1864] @ zero_extendqisi2 + bne .L1239 + ldrb r3, [r7, #-1860] @ zero_extendqisi2 cmp r3, #0 - bne .L1175 -.L1179: - ldr r5, [r7, #-1792] + bne .L1234 +.L1238: + ldr r5, [r7, #-1796] cmp r5, #0 - bne .L1176 - b .L1232 -.L1175: + bne .L1235 + b .L1291 +.L1234: ldr r3, [r7, #-2808] mov r0, r4 ldr r1, [sp, #44] @@ -6691,19 +6984,19 @@ FlashReadPages: bl FlashDdrTunningRead cmn r0, #1 mov ip, r0 - beq .L1178 + beq .L1237 ldrb r3, [r7, #-2743] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1198 -.L1178: + bls .L1257 +.L1237: ubfx r0, r5, #8, #8 str ip, [sp, #32] bl NandcSetDdrPara ldr ip, [sp, #32] cmn ip, #1 - beq .L1179 - b .L1198 -.L1176: + beq .L1238 + b .L1257 +.L1235: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] @@ -6711,18 +7004,18 @@ FlashReadPages: blx r5 cmn r0, #1 mov ip, r0 - bne .L1200 - ldr r3, [r9, #3320] + bne .L1259 + ldr r3, [r9, #44] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 cmp r3, #7 - bhi .L1182 + bhi .L1241 mov r0, r4 ldrb r1, [r7, #-2731] @ zero_extendqisi2 - ldr r2, .L1233+12 + ldr r2, .L1292+12 mov r3, #0 bl HynixSetRRPara -.L1182: +.L1241: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r6, #8] @@ -6731,56 +7024,56 @@ FlashReadPages: ldr r1, [r6, #4] ldrb r2, [r7, #-2743] @ zero_extendqisi2 mov ip, r0 - ldr r0, .L1233+16 + ldr r0, .L1292+16 mov r3, ip str ip, [sp, #32] bl printk ldr ip, [sp, #32] cmn ip, #1 - bne .L1200 + bne .L1259 ldrb r5, [r7, #-2744] @ zero_extendqisi2 cmp r5, #0 - beq .L1181 + beq .L1240 ldr r3, [sp, #12] mov r0, r4 cmp r3, #0 - beq .L1183 + beq .L1242 bl flash_enter_slc_mode - b .L1184 -.L1183: + b .L1243 +.L1242: bl flash_exit_slc_mode -.L1184: - ldr r3, .L1233+8 +.L1243: + ldr r3, .L1292+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] - ldr ip, [r3, #-1792] + ldr ip, [r3, #-1796] ldr r3, [r6, #12] blx ip mov ip, r0 - b .L1200 -.L1232: + b .L1259 +.L1291: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] ldr r3, [r6, #12] bl FlashReadRawPage mov ip, r0 - b .L1181 -.L1198: + b .L1240 +.L1257: mov r5, #0 -.L1180: +.L1239: ldrb r3, [r7, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bls .L1181 - ldr r3, [r7, #-1792] + bls .L1240 + ldr r3, [r7, #-1796] cmp r3, #0 moveq ip, #256 - b .L1181 -.L1200: + b .L1240 +.L1259: mov r5, #0 -.L1181: +.L1240: cmp ip, #256 cmnne ip, #1 ldreq r3, [sp, #8] @@ -6791,29 +7084,29 @@ FlashReadPages: ldr r3, [sp, #8] ldr r3, [r10, r3] cmn r3, #1 - bne .L1188 + bne .L1247 ldr r1, [r6, #4] - ldr r0, .L1233+20 + ldr r0, .L1292+20 ldrb r2, [r7, #-2743] @ zero_extendqisi2 bl printk ldr r1, [r6, #12] cmp r1, #0 - beq .L1188 + beq .L1247 mov r2, #4 - ldr r0, .L1233+24 + ldr r0, .L1292+24 mov r3, r2 bl rknand_print_hex -.L1188: +.L1247: cmp r5, #0 - beq .L1190 + beq .L1249 ldrb r3, [r7, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r8, r3, asr #2 - bls .L1191 - ldr r3, [r7, #-1792] + bls .L1250 + ldr r3, [r7, #-1796] cmp r3, #0 moveq r8, #256 -.L1191: +.L1250: ldr r3, [sp, #8] cmp r8, #256 cmnne r8, #1 @@ -6821,35 +7114,35 @@ FlashReadPages: movne r2, #0 streq r8, [r10, r3] strne r2, [r10, r3] -.L1190: +.L1249: ldr r3, [sp, #12] add fp, fp, r5 cmp r3, #0 - beq .L1162 + beq .L1221 ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1162 + beq .L1221 mov r0, r4 bl flash_exit_slc_mode -.L1162: +.L1221: add fp, fp, #1 - b .L1159 -.L1231: + b .L1218 +.L1290: mov r0, #0 -.L1228: +.L1287: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1234: +.L1293: .align 2 -.L1233: +.L1292: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2-2728 + .word .LC19 + .word .LC16 .word .LC18 - .word .LC15 - .word .LC17 .fnend .size FlashReadPages, .-FlashReadPages .align 2 @@ -6862,36 +7155,36 @@ FlashLoadFactorBbt: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r1, #0 - ldr r5, .L1248 + ldr r5, .L1307 .pad #52 sub sp, sp, #52 mov r2, #16 - ldr r9, .L1248+4 - add r0, r5, #1020 - ldr fp, .L1248+8 + ldr r9, .L1307+4 + add r0, r5, #1016 + ldr fp, .L1307+8 ldrh r7, [r5, #12] mvn r10, #0 ldrh r4, [r5, #14] bl ftl_memset - ldr r3, [r9, #-1768] + ldr r3, [r9, #-1772] mov r5, #0 mov r8, r5 smulbb r7, r7, r4 uxth r6, r7 str r5, [sp, #20] str r3, [sp, #24] -.L1236: - ldrb r3, [fp, #3148] @ zero_extendqisi2 +.L1295: + ldrb r3, [fp, #3152] @ zero_extendqisi2 uxtb r7, r5 cmp r3, r7 - bls .L1247 + bls .L1306 mul ip, r6, r7 sub r4, r6, #1 sub r3, r6, #12 uxth r4, r4 -.L1237: +.L1296: cmp r4, r3 - ble .L1239 + ble .L1298 add r2, ip, r4 mov r1, #1 add r0, sp, #12 @@ -6905,46 +7198,46 @@ FlashLoadFactorBbt: ldr ip, [sp] cmn r2, #1 ldr r3, [sp, #4] - beq .L1238 - ldr r2, [r9, #-1768] + beq .L1297 + ldr r2, [r9, #-1772] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L1238 + bne .L1297 mov r1, r7 - ldr r0, .L1248+12 + ldr r0, .L1307+12 mov r2, r4 mov r7, r7, asl #1 bl printk - ldr r3, .L1248+16 + ldr r3, .L1307+16 add r8, r8, #1 strh r4, [r3, r7] @ movhi uxth r8, r8 - b .L1239 -.L1238: + b .L1298 +.L1297: sub r4, r4, #1 uxth r4, r4 - b .L1237 -.L1239: - ldr r3, .L1248+8 + b .L1296 +.L1298: + ldr r3, .L1307+8 add r5, r5, #1 - ldrb r3, [r3, #3148] @ zero_extendqisi2 + ldrb r3, [r3, #3152] @ zero_extendqisi2 cmp r3, r8 moveq r10, #0 - b .L1236 -.L1247: + b .L1295 +.L1306: mov r0, r10 add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1249: +.L1308: .align 2 -.L1248: +.L1307: .word .LANCHOR2-2772 .word .LANCHOR2 .word .LANCHOR0 - .word .LC19 - .word .LANCHOR2-1752 + .word .LC20 + .word .LANCHOR2-1756 .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 2 @@ -6954,7 +7247,7 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1265 + ldr r3, .L1324 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r2 @@ -6963,21 +7256,21 @@ FlashReadFacBbtData: sub sp, sp, #40 ldrh r2, [r3, #12] mov r5, r0 - ldr r9, .L1265+4 + ldr r9, .L1324+4 mov r7, r1 smulbb r4, r2, r4 - ldr r2, [r9, #-1872] + ldr r2, [r9, #-1868] str r2, [sp, #12] - ldr r2, [r9, #-1768] + ldr r2, [r9, #-1772] uxth r3, r4 sub r6, r3, #1 sub r4, r3, #16 mul r10, r3, r1 uxth r6, r6 str r2, [sp, #16] -.L1251: +.L1310: cmp r6, r4 - ble .L1264 + ble .L1323 mov r1, #1 add r3, r6, r10 add r0, sp, #4 @@ -6987,60 +7280,60 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] cmn r3, #1 - beq .L1252 - ldr r3, [r9, #-1768] + beq .L1311 + ldr r3, [r9, #-1772] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L1252 + bne .L1311 cmp r5, #0 moveq r0, r5 - beq .L1253 + beq .L1312 cmp r7, #0 - ldreq ip, .L1265+4 + ldreq ip, .L1324+4 moveq lr, #1 - beq .L1254 -.L1256: - ldr r1, [r9, #-1872] + beq .L1313 +.L1315: + ldr r1, [r9, #-1868] mov r2, r8 mov r0, r5 bl ftl_memcpy mov r2, #4 - ldr r0, .L1265+8 + ldr r0, .L1324+8 mov r1, r5 mov r3, r2 bl rknand_print_hex mov r0, #0 - b .L1253 -.L1254: - ldr r3, [r9, #-1780] + b .L1312 +.L1313: + ldr r3, [r9, #-1784] uxth r4, r7 add r7, r7, #1 cmp r4, r3 - bcs .L1256 - ldr r1, [ip, #-1872] + bcs .L1315 + ldr r1, [ip, #-1868] mov r0, r4, lsr #5 and r3, r4, #31 ldr r2, [r1, r0, asl #2] orr r3, r2, lr, asl r3 str r3, [r1, r0, asl #2] - b .L1254 -.L1252: + b .L1313 +.L1311: sub r6, r6, #1 uxth r6, r6 - b .L1251 -.L1264: + b .L1310 +.L1323: mvn r0, #0 -.L1253: +.L1312: add sp, sp, #40 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1266: +.L1325: .align 2 -.L1265: +.L1324: .word .LANCHOR2-2772 .word .LANCHOR2 - .word .LC20 + .word .LC21 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData .align 2 @@ -7050,36 +7343,36 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1278 + ldr r3, .L1337 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 - ldr r3, [r3, #3320] - ldr r6, .L1278+4 + ldr r3, [r3, #44] + ldr r6, .L1337+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] - ldr r0, [r6, #-1772] + ldr r0, [r6, #-1776] smulbb r4, r4, r3 uxth r4, r4 add r2, r4, #7 mov r2, r2, asr #3 bl FlashReadFacBbtData cmn r0, #1 - bne .L1268 -.L1272: + bne .L1327 +.L1331: mov r3, #0 - b .L1269 -.L1268: + b .L1328 +.L1327: mov lr, r4, lsr #4 mov ip, #0 sub r4, r4, #1 mov r3, ip mov r7, #1 -.L1270: +.L1329: uxth r0, ip cmp r0, r4 - bge .L1269 - ldr r8, [r6, #-1772] + bge .L1328 + ldr r8, [r6, #-1776] mov r1, r0, lsr #5 and r2, r0, #31 add ip, ip, #1 @@ -7090,17 +7383,17 @@ FlashGetBadBlockList: strneh r0, [r5, r3] @ movhi uxthne r3, r2 cmp r3, lr - bcc .L1270 - b .L1272 -.L1269: + bcc .L1329 + b .L1331 +.L1328: mov r3, r3, asl #1 mvn r2, #0 mov r0, #0 strh r2, [r5, r3] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1279: +.L1338: .align 2 -.L1278: +.L1337: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7112,24 +7405,23 @@ FlashProgSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L1369 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 sub sp, sp, #68 - ldr r8, .L1311 + ldr r8, .L1369+4 mov r6, r1 - str r3, [sp, #12] + ldrb r3, [r3, #265] @ zero_extendqisi2 mov r9, r2 - ldr r3, .L1311+4 mov r4, r0 mov r10, r0 mov r7, #0 mov fp, r8 - ldrb r3, [r3, #265] @ zero_extendqisi2 - str r3, [sp, #8] -.L1281: + str r3, [sp, #12] +.L1340: cmp r7, r6 - beq .L1310 + beq .L1367 rsb r3, r7, r6 add r2, sp, #20 mov r0, r10 @@ -7138,14 +7430,14 @@ FlashProgSlc2KPages: str r3, [sp] add r3, sp, #24 bl LogAddr2PhyAddr - ldrb r2, [r8, #3148] @ zero_extendqisi2 + ldrb r2, [r8, #3152] @ zero_extendqisi2 ldr r3, [sp, #24] cmp r3, r2 mvncs r3, #0 strcs r3, [r10] - bcs .L1283 + bcs .L1342 add r3, r8, r3 - ldrb r5, [r3, #3152] @ zero_extendqisi2 + ldrb r5, [r3, #3156] @ zero_extendqisi2 mov r0, r5 bl NandcWaitFlashReady mov r0, r5 @@ -7156,7 +7448,7 @@ FlashProgSlc2KPages: ldr r3, [r10, #12] mov r1, #1 mov r0, r5 - ldr r2, [sp, #8] + ldr r2, [sp, #12] str r3, [sp] ldr r3, [r10, #8] bl NandcXferData @@ -7184,7 +7476,7 @@ FlashProgSlc2KPages: cmp r2, #0 addne r2, r2, #8 str r2, [sp] - ldr r2, [sp, #8] + ldr r2, [sp, #12] bl NandcXferData ldr r1, [fp, #4] mov r0, r5 @@ -7201,28 +7493,25 @@ FlashProgSlc2KPages: mvnne r3, #0 strne r3, [r10] bl NandcFlashDeCs -.L1283: +.L1342: add r7, r7, #1 add r10, r10, #36 - b .L1281 -.L1310: - ldr r3, [sp, #12] - cmp r3, #0 - beq .L1308 - ldr r5, .L1311+8 + b .L1340 +.L1367: + ldr r5, .L1369+8 mov r7, #0 mov r8, r5 -.L1288: +.L1347: cmp r7, r6 - beq .L1308 + beq .L1368 ldr r3, [r4] cmn r3, #1 - bne .L1289 + bne .L1348 ldr r1, [r4, #4] - ldr r0, .L1311+12 + ldr r0, .L1369+12 bl printk - b .L1290 -.L1289: + b .L1349 +.L1348: rsb r3, r7, r6 mov r1, r9 add r2, sp, #20 @@ -7231,11 +7520,11 @@ FlashProgSlc2KPages: str r3, [sp] add r3, sp, #24 bl LogAddr2PhyAddr - ldr r2, [r5, #-1764] + ldr r2, [r5, #-1768] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r5, #-1760] + ldr r2, [r5, #-1764] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} add ip, sp, #28 @@ -7247,65 +7536,74 @@ FlashProgSlc2KPages: mov r1, #1 mov r2, r9 str r3, [ip] - ldr r3, [r5, #-1764] + ldr r3, [r5, #-1768] str r3, [sp, #36] - ldr r3, [r5, #-1760] + ldr r3, [r5, #-1764] str r3, [sp, #40] bl FlashReadPages ldr r10, [sp, #28] cmn r10, #1 - bne .L1291 - ldr r0, .L1311+16 + bne .L1350 + ldr r0, .L1369+16 ldr r1, [r4, #4] bl printk str r10, [r4] -.L1291: - ldr r3, [r4, #12] - cmp r3, #0 - beq .L1292 - ldr r2, [r3] - ldr r3, [r8, #-1760] - ldr r3, [r3] - cmp r2, r3 - beq .L1292 - ldr r0, .L1311+20 +.L1350: + ldr r10, [sp, #28] + cmp r10, #256 + bne .L1351 + ldr r0, .L1369+20 ldr r1, [r4, #4] bl printk - mvn r3, #0 - str r3, [r4] -.L1292: - ldr r3, [r4, #8] + str r10, [r4] +.L1351: + ldr r3, [r4, #12] cmp r3, #0 - beq .L1290 + beq .L1352 ldr r2, [r3] ldr r3, [r8, #-1764] ldr r3, [r3] cmp r2, r3 - beq .L1290 - ldr r0, .L1311+24 + beq .L1352 + ldr r0, .L1369+24 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1290: +.L1352: + ldr r3, [r4, #8] + cmp r3, #0 + beq .L1349 + ldr r2, [r3] + ldr r3, [r8, #-1768] + ldr r3, [r3] + cmp r2, r3 + beq .L1349 + ldr r0, .L1369+28 + ldr r1, [r4, #4] + bl printk + mvn r3, #0 + str r3, [r4] +.L1349: add r7, r7, #1 add r4, r4, #36 - b .L1288 -.L1308: + b .L1347 +.L1368: mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1312: +.L1370: .align 2 -.L1311: - .word .LANCHOR0 +.L1369: .word .LANCHOR1 + .word .LANCHOR0 .word .LANCHOR2 - .word .LC21 .word .LC22 .word .LC23 .word .LC24 + .word .LC25 + .word .LC26 .fnend .size FlashProgSlc2KPages, .-FlashProgSlc2KPages .align 2 @@ -7313,310 +7611,305 @@ FlashProgSlc2KPages: .type FlashProgPages, %function FlashProgPages: .fnstart - @ args = 0, pretend = 0, frame = 72 + @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #84 - sub sp, sp, #84 - ldr r6, .L1369 - str r1, [sp, #16] - str r3, [sp, #28] - ldr ip, [r6, #3320] - ldrb r7, [r6] @ zero_extendqisi2 - ldrb ip, [ip, #19] @ zero_extendqisi2 - cmp r7, #0 - str ip, [sp, #24] - ldr ip, .L1369+4 - ldrb ip, [ip, #265] @ zero_extendqisi2 - str ip, [sp, #20] - beq .L1341 - bl FlashProgSlc2KPages - b .L1315 -.L1341: - ldr r9, .L1369+8 + .pad #76 + sub sp, sp, #76 + ldr r6, .L1427 mov r4, r0 - mov r8, r2 -.L1314: - ldr r3, [sp, #16] - ldr r5, .L1369 - cmp r7, r3 - bcs .L1367 - mov r3, #36 - add r2, sp, #36 - mul r3, r3, r7 - mov r1, r8 - add fp, r4, r3 - str r3, [sp, #12] - mov r0, fp - ldr r3, [sp, #16] - rsb r3, r7, r3 + str r1, [sp, #8] + mov r9, r2 + str r3, [sp, #20] + ldr ip, [r6, #44] + ldrb r8, [r6] @ zero_extendqisi2 + ldrb ip, [ip, #19] @ zero_extendqisi2 + cmp r8, #0 + str ip, [sp, #16] + ldr ip, .L1427+4 + ldrb ip, [ip, #265] @ zero_extendqisi2 + str ip, [sp, #12] + beq .L1372 + bl FlashProgSlc2KPages + b .L1373 +.L1385: + mov r7, #36 + ldr r3, [sp, #8] + mul r7, r7, r8 + rsb r3, r8, r3 + mov r1, r9 + add r2, sp, #28 uxtb r3, r3 str r3, [sp] - add r3, sp, #40 + add fp, r4, r7 + add r3, sp, #32 + mov r0, fp bl LogAddr2PhyAddr - ldrb r2, [r6, #3148] @ zero_extendqisi2 - ldr r3, [sp, #40] + ldrb r3, [r6, #3152] @ zero_extendqisi2 mov r10, r0 - cmp r3, r2 - ldrcs r2, [sp, #12] + ldr r0, [sp, #32] + cmp r0, r3 mvncs r3, #0 - strcs r3, [r4, r2] - bcs .L1317 - ldrb r1, [r9, #-1804] @ zero_extendqisi2 - add r3, r6, r3, asl #4 - cmp r1, #0 - ldr r3, [r3, #3200] + strcs r3, [r4, r7] + bcc .L1424 +.L1375: + add r8, r8, #1 +.L1372: + ldr r3, [sp, #8] + ldr r5, .L1427 + cmp r8, r3 + bcc .L1385 + b .L1425 +.L1424: + ldr r3, .L1427+8 + ldrb r3, [r3, #-1874] @ zero_extendqisi2 + cmp r3, #0 + add r3, r6, r0, asl #4 + ldr r3, [r3, #3204] moveq r10, #0 cmp r3, #0 - beq .L1319 - cmp r2, #1 - bne .L1320 - ldr r3, .L1369+8 - ldr r0, [r3, #-2808] - bl NandcIqrWaitFlashReady -.L1320: - ldrb r0, [sp, #40] @ zero_extendqisi2 + beq .L1377 + uxtb r0, r0 bl FlashWaitCmdDone -.L1319: - ldr r3, [sp, #40] +.L1377: + ldr r3, [sp, #32] mov r1, #0 cmp r10, #0 add r2, r6, r3, asl #4 - str r1, [r2, #3204] - ldr r1, [sp, #36] - str fp, [r2, #3200] - str r1, [r2, #3196] - ldrne r1, [sp, #12] - addne r1, r1, #36 + str r1, [r2, #3208] + ldr r1, [sp, #28] + str fp, [r2, #3204] + str r1, [r2, #3200] + addne r1, r7, #36 addne r1, r4, r1 - strne r1, [r2, #3204] + strne r1, [r2, #3208] add r2, r6, r3 add r3, r6, r3, asl #4 - ldrb r5, [r2, #3152] @ zero_extendqisi2 - strb r5, [r3, #3192] + ldrb r5, [r2, #3156] @ zero_extendqisi2 + strb r5, [r3, #3196] mov r0, r5 - ldrb r3, [r6, #3148] @ zero_extendqisi2 + ldrb r3, [r6, #3152] @ zero_extendqisi2 cmp r3, #1 - bne .L1322 + bne .L1379 bl NandcWaitFlashReady - b .L1323 -.L1322: + b .L1380 +.L1379: bl NandcFlashCs mov r0, r5 - ldr r3, [sp, #40] - ldr r1, [sp, #36] + ldr r3, [sp, #32] + ldr r1, [sp, #28] add r3, r6, r3, asl #2 - ldr r2, [r3, #3160] + ldr r2, [r3, #3164] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN mov r0, r5 bl NandcFlashDeCs -.L1323: - ldr r3, [sp, #24] +.L1380: + ldr r3, [sp, #16] sub r3, r3, #1 cmp r3, #7 - bhi .L1324 - add r3, r9, r5 + bhi .L1381 + ldr r3, .L1427+8 + add r3, r3, r5 ldrb r3, [r3, #-1880] @ zero_extendqisi2 cmp r3, #0 - beq .L1324 + beq .L1381 + ldr r3, .L1427+8 mov r0, r5 - ldrb r1, [r9, #-2731] @ zero_extendqisi2 - ldr r2, .L1369+12 + ldr r2, .L1427+12 + ldrb r1, [r3, #-2731] @ zero_extendqisi2 mov r3, #0 bl HynixSetRRPara -.L1324: +.L1381: mov r0, r5 bl NandcFlashCs - cmp r8, #1 + cmp r9, #1 mov r0, r5 - bne .L1325 - ldrb r3, [r9, #-2744] @ zero_extendqisi2 + bne .L1382 + ldr r3, .L1427+8 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1325 + beq .L1382 bl flash_enter_slc_mode - b .L1326 -.L1325: + b .L1383 +.L1382: bl flash_exit_slc_mode -.L1326: +.L1383: mov r0, r5 - ldr r1, [sp, #36] + ldr r1, [sp, #28] bl FlashProgFirstCmd ldr r3, [fp, #12] mov r0, r5 mov r1, #1 str r3, [sp] - ldr r2, [sp, #20] + ldr r2, [sp, #12] ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L1327 + beq .L1384 mov r0, r5 - ldr r1, [sp, #36] + ldr r1, [sp, #28] bl FlashProgDpFirstCmd mov r0, r5 - ldr r3, [sp, #40] - ldr r1, [sp, #36] + add r7, r7, #36 + add r7, r4, r7 + ldr r3, [sp, #32] + ldr r1, [sp, #28] add r3, r6, r3, asl #2 - ldr r2, [r3, #3160] + ldr r2, [r3, #3164] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN ldr r1, [r6, #4] mov r0, r5 - ldr r3, [sp, #36] + ldr r3, [sp, #28] add r1, r1, r3 bl FlashProgDpSecondCmd + ldr r3, [r7, #12] mov r0, r5 mov r1, #1 - ldr r3, [sp, #12] - add r3, r3, #36 - add r3, r4, r3 - ldr r2, [r3, #12] - str r2, [sp] - ldr r2, [sp, #20] - ldr r3, [r3, #8] + str r3, [sp] + ldr r2, [sp, #12] + ldr r3, [r7, #8] bl NandcXferData -.L1327: +.L1384: mov r0, r5 - ldr r1, [sp, #36] + ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r5 bl NandcFlashDeCs - add r7, r7, r10 -.L1317: - add r7, r7, #1 - b .L1314 -.L1367: - ldr r6, .L1369+8 - mov r7, #0 - ldr r9, .L1369+16 - ldr r0, [r6, #-2808] - bl NandcIqrWaitFlashReady -.L1329: - ldrb r3, [r5, #3148] @ zero_extendqisi2 - cmp r7, r3 - bcs .L1368 - uxtb r0, r7 + add r8, r8, r10 + b .L1375 +.L1425: + ldr r7, .L1427+8 + mov r6, #0 + ldr r8, .L1427+16 +.L1386: + ldrb r3, [r5, #3152] @ zero_extendqisi2 + cmp r6, r3 + bcs .L1426 + uxtb r0, r6 bl FlashWaitCmdDone - cmp r8, #1 - bne .L1330 - ldrb r3, [r6, #-2744] @ zero_extendqisi2 + cmp r9, #1 + bne .L1387 + ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1330 - ldrb r0, [r9, r7, asl #4] @ zero_extendqisi2 + beq .L1387 + ldrb r0, [r8, r6, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L1330: - add r7, r7, #1 - b .L1329 -.L1368: - ldr r3, [sp, #28] +.L1387: + add r6, r6, #1 + b .L1386 +.L1426: + ldr r3, [sp, #20] cmp r3, #0 - movne r5, #0 - bne .L1333 -.L1340: + bne .L1389 +.L1397: mov r0, #0 - b .L1315 -.L1339: + b .L1373 +.L1389: + ldr r5, .L1427+8 + mov r6, #0 + mov r7, r5 +.L1390: + ldr r3, [sp, #8] + cmp r6, r3 + beq .L1397 ldr r3, [r4] cmn r3, #1 - bne .L1334 - ldr r0, .L1369+20 + bne .L1391 ldr r1, [r4, #4] + ldr r0, .L1427+20 bl printk -.L1335: - add r5, r5, #1 - add r4, r4, #36 -.L1333: - ldr r3, [sp, #16] - cmp r5, r3 - bne .L1339 - b .L1340 -.L1334: - ldr r3, [sp, #16] - mov r1, r8 - add r2, sp, #36 + b .L1392 +.L1391: + ldr r3, [sp, #8] + mov r1, r9 + add r2, sp, #28 mov r0, r4 - rsb r3, r5, r3 + rsb r3, r6, r3 uxtb r3, r3 str r3, [sp] - add r3, sp, #40 + add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r6, #-1764] + ldr r2, [r5, #-1768] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r6, #-1760] + ldr r2, [r5, #-1764] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} - add ip, sp, #44 + add ip, sp, #36 stmia ip!, {r0, r1, r2, r3} ldmia lr!, {r0, r1, r2, r3} stmia ip!, {r0, r1, r2, r3} - add r0, sp, #44 + add r0, sp, #36 ldr r3, [lr] mov r1, #1 - mov r2, r8 + mov r2, r9 str r3, [ip] - ldr r3, [r6, #-1764] - str r3, [sp, #52] - ldr r3, [r6, #-1760] - str r3, [sp, #56] + ldr r3, [r5, #-1768] + str r3, [sp, #44] + ldr r3, [r5, #-1764] + str r3, [sp, #48] bl FlashReadPages - ldr r7, [sp, #44] - cmn r7, #1 - bne .L1336 - ldr r0, .L1369+24 + ldr r8, [sp, #36] + cmn r8, #1 + bne .L1393 + ldr r0, .L1427+24 ldr r1, [r4, #4] bl printk - str r7, [r4] -.L1336: + str r8, [r4] +.L1393: ldr r3, [r4, #12] cmp r3, #0 - beq .L1337 + beq .L1394 ldr r2, [r3] - ldr r3, [r6, #-1760] + ldr r3, [r7, #-1764] ldr r3, [r3] cmp r2, r3 - beq .L1337 - ldr r0, .L1369+28 + beq .L1394 + ldr r0, .L1427+28 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1337: +.L1394: ldr r3, [r4, #8] cmp r3, #0 - beq .L1335 + beq .L1392 ldr r2, [r3] - ldr r3, [r6, #-1764] + ldr r3, [r7, #-1768] ldr r3, [r3] cmp r2, r3 - beq .L1335 - ldr r0, .L1369+32 + beq .L1392 + ldr r0, .L1427+32 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] - b .L1335 -.L1315: - add sp, sp, #84 +.L1392: + add r6, r6, #1 + add r4, r4, #36 + b .L1390 +.L1373: + add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1370: +.L1428: .align 2 -.L1369: +.L1427: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR2 .word .LANCHOR2-2728 - .word .LANCHOR0+3192 - .word .LC21 + .word .LANCHOR0+3196 .word .LC22 .word .LC23 - .word .LC24 + .word .LC25 + .word .LC26 .fnend .size FlashProgPages, .-FlashProgPages .align 2 @@ -7630,12 +7923,12 @@ FlashTestBlk: .save {r4, r5, lr} .pad #108 sub sp, sp, #108 - ldr r5, .L1375 - ldr r3, [r5, #-1780] + ldr r5, .L1433 + ldr r3, [r5, #-1784] cmp r0, r3 movcc r4, #0 - bcc .L1372 - ldr r3, [r5, #-1772] + bcc .L1430 + ldr r3, [r5, #-1776] mov r4, r0 mov r1, #165 add r0, sp, #40 @@ -7645,7 +7938,7 @@ FlashTestBlk: bl ftl_memset mov r1, #90 mov r2, #8 - ldr r0, [r5, #-1772] + ldr r0, [r5, #-1776] mov r4, r4, asl #10 bl ftl_memset mov r1, #1 @@ -7666,14 +7959,14 @@ FlashTestBlk: movne r4, #1 rsb r4, r4, #0 bl FlashEraseBlocks -.L1372: +.L1430: mov r0, r4 add sp, sp, #108 @ sp needed ldmfd sp!, {r4, r5, pc} -.L1376: +.L1434: .align 2 -.L1375: +.L1433: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -7688,18 +7981,18 @@ FlashMakeFactorBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #84 sub sp, sp, #84 - ldr r4, .L1432 + ldr r4, .L1491 mov r1, #1 - ldr r5, .L1432+4 - ldr r0, .L1432+8 - ldr r3, [r4, #-1768] + ldr r5, .L1491+4 + ldr r0, .L1491+8 + ldr r3, [r4, #-1772] ldrh r8, [r5, #12] - ldr r7, .L1432+12 + ldr r7, .L1491+12 str r3, [sp, #20] ldrh r3, [r5, #14] smulbb r8, r8, r3 - ldr r3, .L1432+12 - ldr r2, [r3, #3320] + ldr r3, .L1491+12 + ldr r2, [r3, #44] uxth r8, r8 ldrb r2, [r2, #24] @ zero_extendqisi2 str r2, [sp, #24] @@ -7712,50 +8005,50 @@ FlashMakeFactorBbt: uxtheq r3, r3 streq r3, [sp, #16] bl printk - ldr r0, [r4, #-1768] + ldr r0, [r4, #-1772] mov r1, #0 mov r2, #4096 bl ftl_memset - ldr r4, .L1432 + ldr r4, .L1491 mov r3, r8, lsr #4 str r3, [sp, #28] mov r3, #0 str r3, [sp, #8] -.L1379: +.L1437: ldrb r6, [sp, #8] @ zero_extendqisi2 - ldrb r3, [r7, #3148] @ zero_extendqisi2 + ldrb r3, [r7, #3152] @ zero_extendqisi2 cmp r3, r6 - bls .L1428 - ldr r3, .L1432+16 + bls .L1487 + ldr r3, .L1491+16 mov r2, r6, asl #1 ldrh r5, [r3, r2] cmp r5, #0 - bne .L1408 - sub r3, r3, #1020 - ldr r0, [r4, #-1872] + bne .L1467 + sub r3, r3, #1016 + ldr r0, [r4, #-1868] mov r1, r5 mov r9, r5 ldrh r2, [r3, #20] mov r2, r2, asl #9 bl ftl_memset add r3, r7, r6 - ldrb r10, [r3, #3152] @ zero_extendqisi2 + ldrb r10, [r3, #3156] @ zero_extendqisi2 mov r3, r6, asl #2 add fp, r7, r3 str r5, [sp, #4] str r3, [sp, #32] -.L1381: +.L1439: ldrh r3, [sp, #4] cmp r3, r8 str r3, [sp, #12] - bcs .L1390 + bcs .L1449 mvn r3, #0 strb r3, [sp, #42] strb r3, [sp, #43] ldr r3, [sp, #24] tst r3, #1 - beq .L1383 - ldr r3, [fp, #3160] + beq .L1441 + ldr r3, [fp, #3164] add r2, sp, #42 mov r0, r10 add r3, r5, r3 @@ -7765,7 +8058,7 @@ FlashMakeFactorBbt: ldrb r2, [r7] @ zero_extendqisi2 cmp r2, #1 ldr r3, [sp, #36] - bne .L1383 + bne .L1441 ldr r1, [r7, #4] add r2, sp, #43 mov r0, r10 @@ -7775,61 +8068,65 @@ FlashMakeFactorBbt: ldrb r2, [sp, #43] @ zero_extendqisi2 and r3, r3, r2 strb r3, [sp, #42] -.L1383: +.L1441: ldr r3, [sp, #24] tst r3, #2 - beq .L1385 - ldr r3, [r7, #3320] + beq .L1443 + ldr r3, [r7, #44] mov r0, r10 add r2, sp, #43 ldrh r1, [r3, #10] - ldr r3, [fp, #3160] + ldr r3, [fp, #3164] sub r1, r1, #1 add r1, r1, r3 add r1, r1, r5 bl FlashReadSpare -.L1385: - ldr r3, [r7, #3320] - ldrb r3, [r3, #7] @ zero_extendqisi2 +.L1443: + ldr r2, [r7, #44] + ldrb r3, [r2, #7] @ zero_extendqisi2 cmp r3, #1 cmpne r3, #8 ldrb r3, [sp, #42] @ zero_extendqisi2 - bne .L1386 + beq .L1444 + ldrb r2, [r2, #18] @ zero_extendqisi2 + cmp r2, #12 + bne .L1445 +.L1444: cmp r3, #0 ldrneb r0, [sp, #43] @ zero_extendqisi2 clzne r0, r0 movne r0, r0, lsr #5 - bne .L1387 - b .L1407 -.L1386: + bne .L1446 + b .L1466 +.L1445: cmp r3, #255 - bne .L1407 + bne .L1466 ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 movne r0, #1 - b .L1387 -.L1407: + b .L1446 +.L1466: mov r0, #1 -.L1387: +.L1446: ldr r3, [sp, #24] tst r3, #4 - beq .L1388 - ldr r3, .L1432+12 + beq .L1447 + ldr r3, .L1491+12 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 - ldr r1, [r3, #3160] + ldr r1, [r3, #3164] add r1, r5, r1 bl SandiskProgTestBadBlock -.L1388: +.L1447: cmp r0, #0 - beq .L1389 + beq .L1448 mov r1, r6 ldr r2, [sp, #4] - ldr r0, .L1432+20 + ldr r0, .L1491+20 add r9, r9, #1 bl printk - ldr r1, [r4, #-1872] + ldr r1, [r4, #-1868] mov ip, #1 uxth r9, r9 ldr r3, [sp, #12] @@ -7839,53 +8136,53 @@ FlashMakeFactorBbt: orr r3, r2, ip, asl r3 ldr r2, [sp, #28] str r3, [r1, r0, asl #2] - ldrb r3, [r7, #3148] @ zero_extendqisi2 + ldrb r3, [r7, #3152] @ zero_extendqisi2 mul r3, r3, r2 cmp r9, r3 - bgt .L1390 -.L1389: + bgt .L1449 +.L1448: ldr r3, [sp, #4] add r3, r3, #1 str r3, [sp, #4] ldr r3, [sp, #16] add r5, r5, r3 - b .L1381 -.L1390: + b .L1439 +.L1449: mov r2, r9 - ldr r0, .L1432+24 + ldr r0, .L1491+24 mov r1, r6 bl printk - ldrb r3, [r7, #3148] @ zero_extendqisi2 + ldrb r3, [r7, #3152] @ zero_extendqisi2 ldr r2, [sp, #28] mul r3, r3, r2 cmp r9, r3 - blt .L1392 - ldr r3, .L1432+4 + blt .L1451 + ldr r3, .L1491+4 mov r1, #0 - ldr r0, [r4, #-1872] + ldr r0, [r4, #-1868] ldrh r2, [r3, #20] mov r2, r2, asl #9 bl ftl_memset -.L1392: +.L1451: cmp r6, #0 - bne .L1394 - ldr r3, [r4, #-1780] + bne .L1453 + ldr r3, [r4, #-1784] mov r5, r6 mov r9, #1 uxth r10, r3 -.L1395: - ldr r3, .L1432+12 +.L1454: + ldr r3, .L1491+12 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, r10 - bls .L1429 + bls .L1488 mov r0, r10 bl FlashTestBlk cmp r0, #0 - beq .L1396 + beq .L1455 mov r1, r10 - ldr r0, .L1432+28 + ldr r0, .L1491+28 bl printk - ldr r1, [r4, #-1872] + ldr r1, [r4, #-1868] mov r0, r10, lsr #5 add r5, r5, #1 and r3, r10, #31 @@ -7893,62 +8190,62 @@ FlashMakeFactorBbt: uxth r5, r5 orr r3, r2, r9, asl r3 str r3, [r1, r0, asl #2] -.L1396: +.L1455: add r10, r10, #1 uxth r10, r10 - b .L1395 -.L1429: + b .L1454 +.L1488: sub fp, r8, #1 sub r9, r8, #50 mov r10, #1 uxth fp, fp -.L1398: +.L1457: cmp fp, r9 - ble .L1430 + ble .L1489 mov r0, fp bl FlashTestBlk cmp r0, #0 - beq .L1399 + beq .L1458 mov r1, fp - ldr r0, .L1432+28 + ldr r0, .L1491+28 bl printk - ldr r1, [r4, #-1872] + ldr r1, [r4, #-1868] mov r0, fp, lsr #5 and r3, fp, #31 ldr r2, [r1, r0, asl #2] orr r3, r2, r10, asl r3 str r3, [r1, r0, asl #2] -.L1399: +.L1458: sub fp, fp, #1 uxth fp, fp - b .L1398 -.L1430: - ldr r3, .L1432+12 - ldr r2, [r4, #-1780] + b .L1457 +.L1489: + ldr r3, .L1491+12 + ldr r2, [r4, #-1784] ldrb r3, [r3, #1] @ zero_extendqisi2 rsb r3, r2, r3 cmp r5, r3 - bcc .L1394 - ldr r3, .L1432+4 + bcc .L1453 + ldr r3, .L1491+4 mov r1, #0 - ldr r0, [r4, #-1872] + ldr r0, [r4, #-1868] ldrh r2, [r3, #20] mov r2, r2, asl #9 bl ftl_memset -.L1394: +.L1453: ldrb r5, [sp, #8] @ zero_extendqisi2 sub r10, r8, #1 - ldr r9, .L1432+16 + ldr r9, .L1491+16 uxth r10, r10 mul r5, r8, r5 add r9, r9, r6, asl #1 -.L1402: +.L1461: mov r1, r6 - ldr r0, .L1432+32 + ldr r0, .L1491+32 mov r2, r10 bl printk - ldr r1, [r4, #-1872] -.L1403: + ldr r1, [r4, #-1868] +.L1462: mov r2, r10, lsr #5 and r3, r10, #31 ldr r2, [r1, r2, asl #2] @@ -7956,20 +8253,20 @@ FlashMakeFactorBbt: ands r3, r3, #1 subne r10, r10, #1 uxthne r10, r10 - bne .L1403 -.L1431: + bne .L1462 +.L1490: ldr r1, [sp, #20] add r0, sp, #44 - ldr r2, .L1432+36 + ldr r2, .L1491+36 strh r10, [r9] @ movhi strh r10, [r1, #2] @ movhi strh r2, [r1] @ movhi strh r3, [r1, #8] @ movhi mov r1, #1 - ldr r3, [r4, #-1872] + ldr r3, [r4, #-1868] mov r2, r1 str r3, [sp, #52] - ldr r3, [r4, #-1768] + ldr r3, [r4, #-1772] str r3, [sp, #56] add r3, r10, r5 mov r3, r3, asl #10 @@ -7984,28 +8281,28 @@ FlashMakeFactorBbt: cmp r3, #0 subne r10, r10, #1 uxthne r10, r10 - bne .L1402 -.L1408: + bne .L1461 +.L1467: ldr r3, [sp, #8] add r3, r3, #1 str r3, [sp, #8] - b .L1379 -.L1428: + b .L1437 +.L1487: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1433: +.L1492: .align 2 -.L1432: +.L1491: .word .LANCHOR2 .word .LANCHOR2-2772 - .word .LC25 - .word .LANCHOR0 - .word .LANCHOR2-1752 - .word .LC26 .word .LC27 + .word .LANCHOR0 + .word .LANCHOR2-1756 .word .LC28 .word .LC29 + .word .LC30 + .word .LC31 .word -3872 .fnend .size FlashMakeFactorBbt, .-FlashMakeFactorBbt @@ -8019,13 +8316,13 @@ Ftl_log2: @ link register save eliminated. mov r1, #0 mov r2, #1 -.L1435: +.L1494: cmp r2, r0 uxth r3, r1 add r1, r1, #1 movls r2, r2, asl #1 - bls .L1435 -.L1437: + bls .L1494 +.L1496: sub r0, r3, #1 uxth r0, r0 bx lr @@ -8050,26 +8347,26 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1441 + ldr r3, .L1500 cmp r0, #23 - sub r2, r3, #1728 + sub ip, r3, #1728 movls r0, #24 - sub ip, r3, #1712 - str r0, [r3, #-1736] - ldrh r2, [r2, #-4] - ldrh r1, [ip, #-10] + sub r1, r3, #1712 + str r0, [r3, #-1740] + ldrh r2, [ip, #-8] + ldrh r1, [r1, #-14] mul r2, r2, r0 rsb r0, r0, r1 - ldr r1, [r3, #-1716] - strh r0, [ip, #-12] @ movhi + ldr r1, [r3, #-1720] + strh r0, [ip] @ movhi mov r0, #0 - str r2, [r3, #-1728] + str r2, [r3, #-1732] rsb r2, r2, r1 - str r2, [r3, #-1720] + str r2, [r3, #-1724] bx lr -.L1442: +.L1501: .align 2 -.L1441: +.L1500: .word .LANCHOR2 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -8078,248 +8375,243 @@ FtlSysBlkNumInit: .type FtlConstantsInit, %function FtlConstantsInit: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {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 - ldr r9, .L1471 - mov r5, r0 - ldrh r7, [r0, #8] - mov r8, #0 - ldrh ip, [r0, #10] - add r2, r9, #8 - ldrh r6, [r0, #12] - mov r3, r9 - ldrh r4, [r0, #14] - strh r7, [r3], #16 @ movhi - strh ip, [r3, #-14] @ movhi - strh r6, [r3, #-12] @ movhi - strh r4, [r9, #-10] @ movhi + .pad #20 + sub sp, sp, #20 + ldr r4, .L1529 + mov ip, r0 + ldrh r8, [r0, #8] + mov r10, #0 + ldrh r5, [r0, #10] + add r3, r4, #4 + ldrh r7, [r0, #12] + ldrh r6, [r0, #14] + strh r8, [r4, #-4] @ movhi + strh r5, [r4, #-2] @ movhi + strh r7, [r4] @ movhi + strh r6, [r4, #-14] @ movhi +.L1503: + strb r10, [r10, r3] + add r10, r10, #1 + cmp r10, #32 + bne .L1503 + ldrh r2, [ip, #14] + ldrh r3, [ip, #20] + cmp r3, r2, lsr #8 + bcs .L1504 + sub r3, r5, #1 + uxtb r9, r7 + mul r3, r7, r3 + mov fp, r9, asl #1 + uxtb fp, fp str r3, [sp, #4] -.L1444: - strb r8, [r8, r2] - add r8, r8, #1 - cmp r8, #32 - bne .L1444 - ldrh r1, [r5, #14] - ldrh r2, [r5, #20] - cmp r2, r1, lsr #8 - bcs .L1445 - uxtb r10, r6 - ldr r8, .L1471+4 - mov r2, r10, asl #1 - uxtb r2, r2 - str r2, [sp, #12] - sub r2, ip, #1 - mul r2, r6, r2 - str r2, [sp, #8] - mov r2, #0 -.L1446: - cmp r2, r6 - bcs .L1448 - ldr r3, [sp, #8] - uxtb r1, r2 - rsb fp, r6, r2 - add r0, r2, r3 - add r3, r8, r0 - mov r0, #0 - mov lr, r0 - str r3, [sp, #16] - add r3, r8, fp - str r3, [sp, #20] -.L1449: - cmp lr, ip - add r0, r0, r6 - bcs .L1470 - ldr fp, [sp, #20] - add lr, lr, #1 - ldr r3, [sp, #16] - strb r1, [fp, r0] - add fp, r1, r10 - strb fp, [r3, r0] - ldr r3, [sp, #12] - add r1, r1, r3 - uxtb r1, r1 - b .L1449 -.L1470: - add r2, r2, #1 - b .L1446 -.L1448: - ldr r3, [sp, #4] - mov ip, ip, asl #1 - mov r4, r4, lsr #1 - strh r4, [r9, #-10] @ movhi - strh ip, [r3, #-14] @ movhi -.L1445: - ldr r3, [sp, #4] - cmp r7, #1 - ldr r2, .L1471+8 - mov r1, #5 - ldrh r4, [r9, #-10] - ldr ip, .L1471+12 - strh r1, [r2, #-8] @ movhi - mov r1, #0 - streqh r7, [r2, #-8] @ movhi - sub r8, ip, #1664 - ldrh r7, [r3, #-14] - sub r3, ip, #1728 - strh r1, [r2, #-6] @ movhi - mov r1, #4352 - strh r1, [r2, #-4] @ movhi - smulbb r7, r7, r6 - ldr r2, .L1471+16 - ldrh fp, [r5, #16] - smulbb r6, r4, r6 - ldrb r10, [r2] @ zero_extendqisi2 - strh fp, [r8] @ movhi - cmp r10, #0 - uxth r7, r7 - strh r7, [r3, #-4] @ movhi - ldrne r2, .L1471+8 - movne r1, #384 - smulbb r3, r7, fp - strh r6, [r8, #-2] @ movhi - strneh r1, [r2, #-4] @ movhi - sub r6, ip, #1648 - ldrh r2, [r5, #20] - ldrh r1, [r5, #18] - str ip, [sp, #12] - mov r0, r2 - strh r3, [r6, #-12] @ movhi - strh r1, [r6, #-14] @ movhi - strh r2, [r6, #-10] @ movhi + mov r3, #0 +.L1505: + cmp r3, r7 + bcs .L1507 + ldr r1, [sp, #4] + uxtb r2, r3 + ldr r0, .L1529+4 + add r1, r3, r1 + ldr lr, .L1529+4 + add r1, r0, r1 str r1, [sp, #8] + mov r1, #0 + rsb r0, r7, r3 + mov r10, r1 + add r0, lr, r0 + str r0, [sp, #12] +.L1508: + cmp r10, r5 + add r1, r1, r7 + bcs .L1528 + ldr r0, [sp, #12] + add r10, r10, #1 + strb r2, [r0, r1] + add r0, r2, r9 + add r2, r2, fp + mov lr, r0 + ldr r0, [sp, #8] + uxtb r2, r2 + strb lr, [r0, r1] + b .L1508 +.L1528: + add r3, r3, #1 + b .L1505 +.L1507: + mov r5, r5, asl #1 + mov r6, r6, lsr #1 + strh r5, [r4, #-2] @ movhi + strh r6, [r4, #-14] @ movhi +.L1504: + ldr r6, .L1529+8 + cmp r8, #1 + mov r3, #5 + ldrh r9, [ip, #16] + ldr r5, .L1529+12 + strh r3, [r6, #-12] @ movhi + mov r3, #0 + streqh r8, [r6, #-12] @ movhi + sub r10, r5, #1728 + ldrh r8, [r4, #-2] + strh r3, [r6, #-10] @ movhi + mov r3, #4352 + strh r3, [r6, #-8] @ movhi + ldr r3, .L1529+16 + smulbb r8, r8, r7 + ldrh r4, [r4, #-14] + ldrb fp, [r3] @ zero_extendqisi2 + ldrh r1, [ip, #18] + cmp fp, #0 + strh r9, [r6, #-4] @ movhi + smulbb r7, r4, r7 + ldrne r3, .L1529+8 + uxth r8, r8 + movne r2, #384 + strh r1, [r6, #-2] @ movhi + strneh r2, [r3, #-8] @ movhi + smulbb r3, r8, r9 + ldrh r2, [ip, #20] + strh r7, [r6, #-6] @ movhi + sub r7, r5, #1648 + strh r8, [r10, #-8] @ movhi + mov r0, r2 + strh r2, [r7, #-14] @ movhi + str r1, [sp, #12] + strh r3, [r6] @ movhi + str ip, [sp, #8] str r2, [sp, #4] bl Ftl_log2 cmp r4, #1024 ldr r2, [sp, #4] mov r3, r0 - strh r0, [r6, #-8] @ movhi - ldr ip, [sp, #12] + strh r0, [r7, #-12] @ movhi + ldr ip, [sp, #8] mov r0, r2, asl #9 - ldr r1, [sp, #8] + ldr r1, [sp, #12] str r3, [sp, #4] uxth r0, r0 - strh r0, [r6, #-6] @ movhi + strh r0, [r7, #-10] @ movhi mul r1, r1, r2 mov r0, r0, lsr #8 - strh r0, [r6, #-4] @ movhi - ldrh r0, [r5, #26] - mov r5, ip - strh r0, [r6, #-2] @ movhi - mul r0, r4, r7 - str r0, [ip, #-1716] + strh r0, [r7, #-8] @ movhi + ldrh r0, [ip, #26] + subhi ip, r5, #1664 + strh r0, [r7, #-6] @ movhi + mul r0, r4, r8 + str r0, [r5, #-1720] uxtbhi r0, r4 - strhih r0, [r8, #-6] @ movhi - ldrh r0, [r8, #-6] + strhih r0, [ip, #-10] @ movhi + ldrh r0, [r6, #-10] rsb r0, r0, r4 mov r4, r4, asl #6 - mul r0, r0, r7 + mul r0, r0, r8 mul r0, r2, r0 - mul fp, fp, r0 - ldrh r0, [r8, #-4] + mul r9, r9, r0 + ldrh r0, [r6, #-8] mov r0, r0, asl #3 - mov fp, fp, asr #11 - str fp, [ip, #-1648] + mov r9, r9, asr #11 + str r9, [r5, #-1652] bl __aeabi_idiv - ldr fp, .L1471+20 - mov r1, r7 + mov r1, r8 uxth r0, r0 ldr r3, [sp, #4] cmp r0, #4 - strhih r0, [fp, #-12] @ movhi - add r0, r3, #9 + strhih r0, [r7] @ movhi movls r2, #4 - strlsh r2, [fp, #-12] @ movhi - cmp r10, #0 - mov r0, r4, asr r0 - strh r0, [fp, #-8] @ movhi + strlsh r2, [r7] @ movhi + cmp fp, #0 + ldr fp, .L1529+12 + ldrh r0, [r7] movne r2, #640 - strneh r2, [r8, #-4] @ movhi - ldrh r2, [r8, #-4] - uxth r0, r0 - add r4, r0, #8 - ldr r10, .L1471+12 + strneh r2, [r6, #-8] @ movhi + ldrh r2, [r6, #-8] + sub r9, fp, #1632 mov r2, r2, asr r3 - mul r3, r7, r0 + add r3, r3, #9 + mov r4, r4, asr r3 + strh r4, [r9, #-12] @ movhi add r2, r2, #2 - ldrh r0, [fp, #-12] - strh r2, [fp, #-10] @ movhi - str r3, [r5, #-1636] + strh r2, [r9, #-14] @ movhi + uxth r4, r4 + mul r3, r8, r4 + add r4, r4, #8 + str r3, [r5, #-1640] bl __aeabi_uidiv - cmp r7, #1 - ldr r7, .L1471+12 + cmp r8, #1 uxtah r0, r4, r0 - addeq r0, r0, #4 - str r0, [r10, #-1736] - ldr r3, [r5, #-1736] + strne r0, [fp, #-1740] + addeq r4, r0, #4 + streq r4, [fp, #-1740] + ldr r3, [r5, #-1740] + ldr r4, .L1529+12 uxth r0, r3 + sub fp, r4, #1648 bl FtlSysBlkNumInit - ldr r3, [r5, #-1736] - ldr r2, [r5, #-1720] + ldr r3, [r5, #-1740] + ldr r2, [r5, #-1724] mov r0, #2048 - ldrh r4, [r6, #-8] - str r3, [r5, #-1632] - ldrh r3, [r8] + ldrh r8, [r7, #-12] + str r3, [r5, #-1636] + ldrh r3, [r6, #-4] mov r2, r2, asl #2 - add r4, r4, #9 - ldrh r6, [r6, #-10] - sub r8, r7, #1616 + add r8, r8, #9 + ldrh r6, [r7, #-14] mul r3, r3, r2 mov r1, r6 - mov r4, r3, lsr r4 - add r4, r4, #2 - uxth r4, r4 - strh r4, [r8, #-12] @ movhi + mov r8, r3, lsr r8 + add r8, r8, #2 + uxth r8, r8 + strh r8, [r9] @ movhi bl __aeabi_idiv mov r3, #0 + ldrb r1, [r5, #-2744] @ zero_extendqisi2 + sub r9, r4, #1616 str r3, [r5, #-2740] - sub r1, r7, #1632 - ldrh r3, [fp, #-12] + ldrh r3, [r7] + cmp r1, #0 add r2, r3, #3 - strh r2, [fp, #-12] @ movhi - ldr fp, [r5, #-1636] - add r2, fp, #3 - str r2, [r5, #-1636] - strh r0, [r8, #-10] @ movhi - ldrb r0, [r5, #-2744] @ zero_extendqisi2 - cmp r0, #0 + strh r2, [r7] @ movhi + ldr r7, [r5, #-1640] + add r2, r7, #3 + str r2, [r5, #-1640] + strh r0, [r9, #-14] @ movhi addne r3, r3, #4 - addne fp, fp, #5 - strneh r3, [r1, #-12] @ movhi - strne fp, [r7, #-1636] - bne .L1459 -.L1458: + addne r7, r7, #5 + strneh r3, [fp] @ movhi + strne r7, [r4, #-1640] + bne .L1518 +.L1517: cmp r2, #7 movls r3, #8 - strls r3, [r7, #-1636] -.L1459: - ldrh r2, [r9, #-12] + strls r3, [r4, #-1640] +.L1518: + ldrh r2, [r10] mov r3, #0 - strh r3, [r8, #-8] @ movhi + strh r3, [r9, #-12] @ movhi mov r0, #0 mov r3, r2, lsr #3 add r3, r3, r2, asl #1 add r3, r3, #52 - add r4, r3, r4, asl #2 - cmp r4, r6, asl #9 - ldrcc r3, .L1471+24 + add r8, r3, r8, asl #2 + cmp r8, r6, asl #9 + ldrcc r3, .L1529+20 movcc r2, #1 - strcch r2, [r3, #-8] @ movhi - add sp, sp, #28 + strcch r2, [r3, #-12] @ movhi + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1472: +.L1530: .align 2 -.L1471: +.L1529: .word .LANCHOR2-1712 - .word .LANCHOR2-1704 + .word .LANCHOR2-1708 .word .LANCHOR2-1664 .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-1632 .word .LANCHOR2-1616 .fnend .size FtlConstantsInit, .-FtlConstantsInit @@ -8328,36 +8620,37 @@ FtlConstantsInit: .type FtlMemInit, %function FtlMemInit: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r5, #0 - ldr r4, .L1578 + stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .pad #12 movw r3, #65535 + ldr r4, .L1636 + mov r5, #0 mov r0, #1024 - mov r10, #36 - sub r2, r4, #1536 + mov r10, #12 sub r6, r4, #1520 - sub r7, r4, #1616 - str r3, [r4, #-1552] - strh r5, [r6, #-4] @ movhi + sub r2, r4, #1536 + sub r8, r4, #1616 + str r3, [r4, #-1556] + strh r5, [r6, #-8] @ movhi mvn r3, #0 - strh r5, [r6, #-2] @ movhi + strh r5, [r6, #-6] @ movhi sub r9, r4, #1728 + strh r3, [r2, #-4] @ movhi + strh r3, [r2, #-2] @ movhi strh r3, [r2] @ movhi strh r3, [r6, #-14] @ movhi - strh r3, [r6, #-12] @ movhi - strh r3, [r6, #-10] @ movhi mov r3, #32 - strh r5, [r6] @ movhi - strh r3, [r6, #-8] @ movhi + strh r5, [r6, #-4] @ movhi + strh r3, [r6, #-12] @ movhi mov r3, #128 - strh r3, [r6, #-6] @ movhi - sub r3, r4, #1504 + strh r5, [r6, #-2] @ movhi + strh r3, [r6, #-10] @ movhi sub r6, r4, #1648 - strh r5, [r7, #-6] @ movhi - strh r5, [r3, #-14] @ movhi + strh r5, [r8, #-10] @ movhi + str r5, [r4, #-1624] str r5, [r4, #-1620] str r5, [r4, #-1616] str r5, [r4, #-1612] @@ -8374,336 +8667,343 @@ FtlMemInit: str r5, [r4, #-1568] str r5, [r4, #-1564] str r5, [r4, #-1560] - str r5, [r4, #-1556] + str r5, [r4, #-1552] str r5, [r4, #-1548] str r5, [r4, #-1544] - str r5, [r4, #-1540] - ldrh r1, [r6, #-10] + ldrh r1, [r6, #-14] bl __aeabi_idiv - ldrh r8, [r9, #-4] - str r5, [r4, #-1512] - mov r8, r8, asl #2 - cmp r0, r8 - str r0, [r4, #-1516] - ldrh r0, [r6, #-12] - strhi r8, [r4, #-1516] - mov r8, #12 + ldrh r7, [r9, #-8] + str r5, [r4, #-1516] + ldr r5, .L1636+4 + mov r7, r7, asl #2 + cmp r0, r7 + str r0, [r4, #-1520] + ldrh r0, [r5] + strhi r7, [r4, #-1520] + mov r7, r5 mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-1508] - ldrh r0, [r6, #-12] - mul r0, r8, r0 + str r0, [r4, #-1512] + ldrh r0, [r7], #-48 + mul r0, r10, r0 + bl ftl_malloc + ldrh fp, [r9, #-8] + mov r3, #36 + mul fp, r3, fp + mov r2, fp, asl #3 + str r0, [r4, #-1508] + mov r0, r2 + str r3, [sp, #4] + str r2, [sp] bl ftl_malloc - ldrh r5, [r9, #-4] - mul r5, r10, r5 - mov fp, r5, asl #3 str r0, [r4, #-1504] mov r0, fp bl ftl_malloc + ldr r2, [sp] str r0, [r4, #-1500] - mov r0, r5 + mov r0, r2 bl ftl_malloc str r0, [r4, #-1496] mov r0, fp bl ftl_malloc str r0, [r4, #-1492] - mov r0, r5 + mov r0, fp bl ftl_malloc + ldr r3, [sp, #4] str r0, [r4, #-1488] - mov r0, r5 + ldr r0, [r4, #-1520] + mul r0, r3, r0 bl ftl_malloc - str r0, [r4, #-1484] - ldr r0, [r4, #-1516] - mul r0, r10, r0 - bl ftl_malloc - ldrh r5, [r6, #-6] - ldrh r3, [r9, #-4] + ldrh fp, [r6, #-10] + ldrh r3, [r9, #-8] mov r3, r3, asl #1 add r3, r3, #1 - str r3, [r4, #-1476] - str r0, [r4, #-1480] - mov r0, r5 + str r3, [r4, #-1480] + str r0, [r4, #-1484] + mov r0, fp + bl ftl_malloc + str r0, [r4, #-1476] + mov r0, fp bl ftl_malloc str r0, [r4, #-1472] - mov r0, r5 + mov r0, fp bl ftl_malloc str r0, [r4, #-1468] - mov r0, r5 + ldr r0, [r4, #-1480] + mul r0, r0, fp bl ftl_malloc str r0, [r4, #-1464] - ldr r0, [r4, #-1476] - mul r0, r0, r5 + ldr r0, [r4, #-1520] + mul r0, r0, fp bl ftl_malloc str r0, [r4, #-1460] - ldr r0, [r4, #-1516] - mul r0, r0, r5 + mov r0, fp bl ftl_malloc str r0, [r4, #-1456] - mov r0, r5 + mov r0, fp bl ftl_malloc str r0, [r4, #-1452] - mov r0, r5 + ldr r0, [r4, #-1480] + mul r0, r10, r0 bl ftl_malloc + ldrh r3, [r6, #-8] + ldrh r9, [r9, #-8] + mul r9, r9, r3 str r0, [r4, #-1448] - ldr r0, [r4, #-1476] - mul r0, r8, r0 + mov r0, r9 bl ftl_malloc - ldrh r3, [r9, #-4] - ldrh r5, [r6, #-4] - mul r5, r3, r5 str r0, [r4, #-1444] - mov r0, r5 + mov r0, r9, asl #3 bl ftl_malloc + ldrh r3, [r6, #-8] str r0, [r4, #-1440] - mov r0, r5, asl #3 + ldr r0, [r4, #-1480] + mul r0, r0, r3 bl ftl_malloc - ldrh r3, [r6, #-4] - ldr r5, .L1578+4 - add r9, r5, #288 + ldrh r3, [r6, #-8] str r0, [r4, #-1436] - ldr r0, [r4, #-1476] + ldr r0, [r4, #-1520] mul r0, r0, r3 bl ftl_malloc - ldrh r3, [r6, #-4] str r0, [r4, #-1432] - ldr r0, [r4, #-1516] - mul r0, r0, r3 - bl ftl_malloc - str r0, [r4, #-1428] - ldrh r0, [r5, #-10] + ldrh r0, [r7, #-14] mov r0, r0, asl #1 uxth r0, r0 - strh r0, [r9] @ movhi + strh r0, [r5, #236] @ movhi bl ftl_malloc - str r0, [r4, #-1420] - ldrh r0, [r9] + str r0, [r4, #-1424] + ldrh r0, [r5, #236] add r0, r0, #544 add r0, r0, #3 mov r0, r0, lsr #9 - strh r0, [r9] @ movhi + strh r0, [r5, #236] @ movhi mov r0, r0, asl #9 bl ftl_malloc - ldrh r9, [r5, #-10] + ldrh r9, [r7, #-14] mov r9, r9, asl #1 - str r0, [r4, #-1416] + str r0, [r4, #-1420] add r0, r0, #32 + str r0, [r4, #-1416] + mov r0, r9 + bl ftl_malloc str r0, [r4, #-1412] mov r0, r9 bl ftl_malloc + ldr r9, [r4, #-1640] + mov r9, r9, asl #1 str r0, [r4, #-1408] mov r0, r9 bl ftl_malloc - ldr r9, [r4, #-1636] - mov r9, r9, asl #1 str r0, [r4, #-1404] mov r0, r9 bl ftl_malloc str r0, [r4, #-1400] - mov r0, r9 - bl ftl_malloc - str r0, [r4, #-1396] - ldrh r0, [r5, #-10] + ldrh r0, [r7, #-14] mov r0, r0, lsr #3 add r0, r0, #4 bl ftl_malloc + str r0, [r4, #-1396] + ldrh r0, [r6] + mov r0, r0, asl #1 + bl ftl_malloc str r0, [r4, #-1392] - ldrh r0, [r5, #68] + ldrh r0, [r6] mov r0, r0, asl #1 bl ftl_malloc str r0, [r4, #-1388] - ldrh r0, [r5, #68] - mov r0, r0, asl #1 + ldrh r0, [r6] + mov r0, r0, asl #2 bl ftl_malloc str r0, [r4, #-1384] - ldrh r0, [r5, #68] + ldrh r0, [r5, #18] mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-1380] - ldrh r0, [r5, #70] - mov r0, r0, asl #2 - bl ftl_malloc - ldrh r2, [r5, #70] + ldrh r2, [r5, #18] mov r1, #0 mov r2, r2, asl #2 - str r0, [r4, #-1376] + str r0, [r4, #-1380] bl ftl_memset - ldrh r9, [r7, #-12] + ldrh r9, [r5, #32] mov r9, r9, asl #2 mov r0, r9 bl ftl_malloc - str r0, [r4, #-1372] + str r0, [r4, #-1376] mov r0, r9 bl ftl_malloc - str r0, [r4, #-1368] - ldr r0, [r4, #-1636] + str r0, [r4, #-1372] + ldr r0, [r4, #-1640] mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-1364] - ldrh r0, [r7, #-10] - mul r0, r8, r0 + str r0, [r4, #-1368] + ldrh r0, [r8, #-14] + mul r0, r10, r0 bl ftl_malloc - ldrh r3, [r7, #-10] - add r7, r5, #16 - str r0, [r4, #-1360] - ldrh r0, [r6, #-6] - add r6, r5, #368 + ldrh r3, [r8, #-14] + str r0, [r4, #-1364] + ldrh r0, [r6, #-10] + add r6, r5, #320 mul r0, r0, r3 bl ftl_malloc - ldrh r3, [r5, #-10] - str r0, [r4, #-1356] + ldrh r3, [r7, #-14] + str r0, [r4, #-1360] mov r0, #6 mul r0, r0, r3 bl ftl_malloc - ldrh r3, [r5, #46] + ldrh r3, [r5, #-6] + add r5, r5, #344 add r3, r3, #31 mov r3, r3, asr #5 - strh r3, [r6, #-4] @ movhi - str r0, [r4, #-1352] - ldrh r0, [r5, #2] + strh r3, [r6, #-8] @ movhi + str r0, [r4, #-1356] + ldrh r0, [r7, #-2] mul r0, r0, r3 mov r0, r0, asl #2 bl ftl_malloc - ldrh r2, [r6, #-4] - ldrh ip, [r5, #2] - add r5, r5, #396 + ldrh r2, [r6, #-8] + ldrh ip, [r7, #-2] mov r3, #1 mov r2, r2, asl #2 mov r1, r2 - str r0, [r4, #-1316] -.L1475: + str r0, [r4, #-1320] +.L1533: cmp r3, ip - bcs .L1576 - ldr r0, [r4, #-1316] + bcs .L1634 + ldr r0, [r4, #-1320] add r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [r5, #4]! - b .L1475 -.L1576: - mov r2, #0 -.L1477: + b .L1533 +.L1634: + ldr r2, .L1636+8 + mov r1, #0 +.L1535: cmp r3, #8 - addne r1, r6, r3, asl #2 + addne r0, r2, r3, asl #2 addne r3, r3, #1 - strne r2, [r1, #28] - bne .L1477 -.L1577: - ldr r2, [r4, #-1400] - ldr r3, .L1578 + strne r1, [r0, #28] + bne .L1535 +.L1635: + ldr r2, [r4, #-1404] + ldr r3, .L1636 cmp r2, #0 - bne .L1479 -.L1481: - ldr r1, .L1578+8 - ldr r0, .L1578+12 + bne .L1537 +.L1539: + ldr r0, .L1636+12 + ldr r1, .L1636+16 bl printk mvn r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1479: - ldr r2, [r3, #-1396] + b .L1538 +.L1537: + ldr r2, [r3, #-1400] cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1372] + beq .L1539 + ldr r2, [r3, #-1376] cmp r2, #0 - beq .L1481 + beq .L1539 + ldr r2, [r3, #-1368] + cmp r2, #0 + beq .L1539 ldr r2, [r3, #-1364] cmp r2, #0 - beq .L1481 + beq .L1539 ldr r2, [r3, #-1360] cmp r2, #0 - beq .L1481 + beq .L1539 ldr r2, [r3, #-1356] cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1352] + beq .L1539 + ldr r2, [r3, #-1320] cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1316] - cmp r2, #0 - beq .L1481 - ldr r3, [r3, #-1404] + beq .L1539 + ldr r3, [r3, #-1408] cmp r3, #0 - beq .L1481 - ldr r2, [r4, #-1508] - ldr r3, .L1578 + beq .L1539 + ldr r2, [r4, #-1512] + ldr r3, .L1636 cmp r2, #0 - beq .L1481 + beq .L1539 + ldr r2, [r3, #-1508] + cmp r2, #0 + beq .L1539 ldr r2, [r3, #-1504] cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1500] - cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1492] - cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1488] - cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1484] - cmp r2, #0 - beq .L1481 + beq .L1539 ldr r2, [r3, #-1496] cmp r2, #0 - beq .L1481 + beq .L1539 + ldr r2, [r3, #-1492] + cmp r2, #0 + beq .L1539 + ldr r2, [r3, #-1488] + cmp r2, #0 + beq .L1539 + ldr r2, [r3, #-1500] + cmp r2, #0 + beq .L1539 + ldr r2, [r3, #-1476] + cmp r2, #0 + beq .L1539 ldr r2, [r3, #-1472] cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1468] - cmp r2, #0 - beq .L1481 - ldr r3, [r3, #-1464] + beq .L1539 + ldr r3, [r3, #-1468] cmp r3, #0 - beq .L1481 - ldr r2, [r4, #-1460] - ldr r3, .L1578 + beq .L1539 + ldr r2, [r4, #-1464] + ldr r3, .L1636 cmp r2, #0 - beq .L1481 + beq .L1539 + ldr r2, [r3, #-1456] + cmp r2, #0 + beq .L1539 ldr r2, [r3, #-1452] cmp r2, #0 - beq .L1481 + beq .L1539 ldr r2, [r3, #-1448] cmp r2, #0 - beq .L1481 + beq .L1539 ldr r2, [r3, #-1444] cmp r2, #0 - beq .L1481 + beq .L1539 ldr r2, [r3, #-1440] cmp r2, #0 - beq .L1481 + beq .L1539 ldr r2, [r3, #-1436] cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1432] + beq .L1539 + ldr r2, [r3, #-1416] cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1412] + beq .L1539 + ldr r2, [r3, #-1424] cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1420] - cmp r2, #0 - beq .L1481 - ldr r3, [r3, #-1388] + beq .L1539 + ldr r3, [r3, #-1392] cmp r3, #0 - beq .L1481 - ldr r3, .L1578 + beq .L1539 + ldr r3, .L1636 + ldr r2, [r3, #-1388] + cmp r2, #0 + beq .L1539 ldr r2, [r3, #-1384] cmp r2, #0 - beq .L1481 - ldr r2, [r3, #-1380] - cmp r2, #0 - beq .L1481 - ldr r3, [r3, #-1376] + beq .L1539 + ldr r3, [r3, #-1380] cmp r3, #0 - beq .L1481 + beq .L1539 mov r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1579: +.L1538: + add sp, sp, #12 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1637: .align 2 -.L1578: +.L1636: .word .LANCHOR2 - .word .LANCHOR2-1712 - .word .LANCHOR3+4 - .word .LC30 + .word .LANCHOR2-1664 + .word .LANCHOR2-1348 + .word .LC32 + .word .LANCHOR3+136 .fnend .size FtlMemInit, .-FtlMemInit .align 2 @@ -8714,29 +9014,29 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1587 + ldr r2, .L1645 sub r3, r2, #1280 - ldrh r3, [r3, #-4] + ldrh r3, [r3, #-8] cmp r3, #0 - beq .L1586 - ldr r3, [r2, #-1388] - sub r2, r2, #1632 - ldrh r2, [r2, #-12] + beq .L1644 + ldr r3, [r2, #-1392] + sub r2, r2, #1648 + ldrh r2, [r2] add r2, r3, r2, asl #1 -.L1582: +.L1640: cmp r3, r2 - beq .L1586 + beq .L1644 ldrh r1, [r3], #2 cmp r1, r0 - bne .L1582 + bne .L1640 mov r0, #1 bx lr -.L1586: +.L1644: mov r0, #0 bx lr -.L1588: +.L1646: .align 2 -.L1587: +.L1645: .word .LANCHOR2 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -8747,16 +9047,16 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1596 - ldr r3, [r2, #-1512] + ldr r2, .L1654 + ldr r3, [r2, #-1516] cmp r3, #0 - beq .L1592 + beq .L1650 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov r5, #36 - ldr r4, [r2, #-1480] + ldr r4, [r2, #-1484] mov r2, #0 -.L1591: +.L1649: mla ip, r5, r2, r4 ldr lr, [ip, #16] cmp lr, r0 @@ -8765,21 +9065,21 @@ FtlCacheMetchLpa: cmp lr, r1 movhi ip, #0 cmp ip, #0 - bne .L1593 + bne .L1651 add r2, r2, #1 cmp r2, r3 - bne .L1591 + bne .L1649 mov r0, ip ldmfd sp!, {r4, r5, pc} -.L1592: +.L1650: mov r0, r3 bx lr -.L1593: +.L1651: mov r0, #1 ldmfd sp!, {r4, r5, pc} -.L1597: +.L1655: .align 2 -.L1596: +.L1654: .word .LANCHOR2 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -8791,16 +9091,33 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1599 + ldr r3, .L1657 ldr r0, [r3, #-2740] bx lr -.L1600: +.L1658: .align 2 -.L1599: +.L1657: .word .LANCHOR2 .fnend .size FtlGetCap, .-FtlGetCap .align 2 + .global FtlGetCapacity + .type FtlGetCapacity, %function +FtlGetCapacity: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L1660 + ldr r0, [r3, #-2740] + bx lr +.L1661: + .align 2 +.L1660: + .word .LANCHOR2 + .fnend + .size FtlGetCapacity, .-FtlGetCapacity + .align 2 .global ftl_get_density .type ftl_get_density, %function ftl_get_density: @@ -8808,12 +9125,12 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1602 + ldr r3, .L1663 ldr r0, [r3, #-2740] bx lr -.L1603: +.L1664: .align 2 -.L1602: +.L1663: .word .LANCHOR2 .fnend .size ftl_get_density, .-ftl_get_density @@ -8825,12 +9142,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1605 - ldr r0, [r3, #-1280] + ldr r3, .L1666 + ldr r0, [r3, #-1284] bx lr -.L1606: +.L1667: .align 2 -.L1605: +.L1666: .word .LANCHOR2 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -8845,40 +9162,40 @@ FtlBbmMapBadBlock: .save {r4, r5, r6, lr} .pad #8 mov r6, r0 - ldr r5, .L1609 + ldr r5, .L1670 sub r3, r5, #1664 - ldrh r4, [r3, #-2] + ldrh r4, [r3, #-6] mov r1, r4 bl __aeabi_uidiv uxth r2, r0 smulbb r3, r2, r4 add r1, r5, r2, asl #2 mov r4, #1 - sub r5, r5, #1344 - ldr ip, [r1, #-1316] + ldr ip, [r1, #-1320] rsb r3, r3, r6 uxth r3, r3 and r1, r3, #31 mov lr, r3, lsr #5 ldr r0, [ip, lr, asl #2] orr r1, r0, r4, asl r1 - ldr r0, .L1609+4 + ldr r0, .L1670+4 str r1, [ip, lr, asl #2] str r1, [sp] mov r1, r6 bl printk - ldrh r3, [r5, #6] + sub r2, r5, #1344 mov r0, #0 + ldrh r3, [r2, #2] add r3, r3, r4 - strh r3, [r5, #6] @ movhi + strh r3, [r2, #2] @ movhi add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L1610: +.L1671: .align 2 -.L1609: +.L1670: .word .LANCHOR2 - .word .LC31 + .word .LC33 .fnend .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock .global __aeabi_uidivmod @@ -8892,9 +9209,9 @@ FtlBbmIsBadBlock: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r5, .L1613 + ldr r5, .L1674 sub r3, r5, #1664 - ldrh r6, [r3, #-2] + ldrh r6, [r3, #-6] mov r1, r6 bl __aeabi_uidivmod mov r0, r7 @@ -8905,14 +9222,14 @@ FtlBbmIsBadBlock: and r4, r4, #31 uxth r0, r0 add r5, r5, r0, asl #2 - ldr r3, [r5, #-1316] + ldr r3, [r5, #-1320] ldr r0, [r3, r2, asl #2] mov r0, r0, lsr r4 and r0, r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1614: +.L1675: .align 2 -.L1613: +.L1674: .word .LANCHOR2 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -8937,10 +9254,11 @@ FtlBbt2Bitmap: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - ldr r5, .L1622 + ldr r5, .L1683 mov r0, r1 mov r6, r1 mov r1, #0 + sub r5, r5, #4 ldrh r2, [r5, #-4] mov r2, r2, asl #2 bl ftl_memset @@ -8949,7 +9267,7 @@ FtlBbt2Bitmap: sub r1, r4, #2 mov lr, #1 movw r4, #65535 -.L1618: +.L1679: ldrh r2, [r1, #2]! cmp r2, r4 ldmeqfd sp!, {r4, r5, r6, pc} @@ -8962,11 +9280,11 @@ FtlBbt2Bitmap: ldrh r2, [r5, #6] add r2, r2, #1 strh r2, [r5, #6] @ movhi - bne .L1618 + bne .L1679 ldmfd sp!, {r4, r5, r6, pc} -.L1623: +.L1684: .align 2 -.L1622: +.L1683: .word .LANCHOR2-1344 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap @@ -8975,156 +9293,154 @@ FtlBbt2Bitmap: .type FtlBbmTblFlush, %function FtlBbmTblFlush: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} + stmfd sp!, {r0, r1, r2, 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, .L1642 - ldr r5, [r4, #-1276] + .pad #12 + ldr r4, .L1703 + ldr r5, [r4, #-1280] cmp r5, #0 - bne .L1626 - ldr r3, [r4, #-1440] + bne .L1687 + ldr r3, [r4, #-1444] mov r1, r5 - ldr r0, [r4, #-1472] - sub r7, r4, #1344 - ldr r8, .L1642+4 - sub fp, r7, #4 - str r3, [r4, #-1260] - sub r3, r4, #1648 - str r0, [r4, #-1264] + ldr r0, [r4, #-1476] + sub r8, r4, #1344 + ldr r6, .L1703+4 mov r10, r4 - ldrh r2, [r3, #-6] + str r3, [r4, #-1264] + sub r3, r4, #1648 + str r0, [r4, #-1268] + sub fp, r6, #28 + ldrh r2, [r3, #-10] bl ftl_memset - ldr r9, .L1642+8 -.L1627: + ldr r9, .L1703+8 +.L1688: ldrh r3, [r9] - ldr r6, .L1642 + ldr r7, .L1703 cmp r5, r3 - bge .L1641 + bge .L1702 ldrh r2, [fp] - ldr r3, [r10, #-1264] - ldr r1, [r8, #4]! + ldr r3, [r10, #-1268] + ldr r1, [r6, #4]! mul r0, r2, r5 mov r2, r2, asl #2 add r5, r5, #1 add r0, r3, r0, asl #2 bl ftl_memcpy - b .L1627 -.L1641: - ldr r5, [r6, #-1260] + b .L1688 +.L1702: + ldr r6, [r7, #-1264] mov r1, #255 mov r2, #16 - ldr r10, .L1642+12 - mov r8, #0 - mov r0, r5 - mov r9, r8 + ldr r5, .L1703+12 + mov r0, r6 bl ftl_memset - ldr r3, .L1642+16 - strh r3, [r5] @ movhi - ldr r3, [r6, #-1336] - str r3, [r5, #4] - ldrh r3, [r7] - strh r3, [r5, #2] @ movhi - ldrh r3, [r7, #4] - strh r3, [r5, #8] @ movhi - ldrh r3, [r7, #6] - strh r3, [r5, #10] @ movhi - ldr r3, [r6, #-1736] - strh r3, [r5, #12] @ movhi -.L1629: - ldr r3, [r4, #-1472] - mov ip, #0 - ldrh r1, [r7] - ldrh r2, [r7, #2] - str r3, [r4, #-1264] - ldr r3, [r4, #-1440] - str ip, [r4, #-1272] - str ip, [sp, #12] - str r3, [r4, #-1260] - orr r3, r2, r1, asl #10 - ldrh r0, [r5, #10] + ldr r3, .L1703+16 + mov r10, r5 + strh r3, [r6] @ movhi + ldr r3, [r7, #-1340] + str r3, [r6, #4] + ldrh r3, [r8, #-4] + mov r8, #0 + mov r9, r8 + strh r3, [r6, #2] @ movhi + ldrh r3, [r5, #4] + strh r3, [r6, #8] @ movhi + ldrh r3, [r5, #6] + strh r3, [r6, #10] @ movhi + ldr r3, [r7, #-1740] + strh r3, [r6, #12] @ movhi +.L1690: + ldr r3, [r4, #-1476] + mov fp, #0 + ldrh r1, [r5] + ldrh r2, [r5, #2] str r3, [r4, #-1268] - ldrh r3, [r7, #4] + ldr r3, [r4, #-1444] + str fp, [r4, #-1276] + str r3, [r4, #-1264] + orr r3, r2, r1, asl #10 + ldrh r0, [r6, #10] + str r3, [r4, #-1272] + ldrh r3, [r5, #4] str r0, [sp] - ldr r0, .L1642+20 + ldr r0, .L1703+20 bl printk - ldrh r3, [r10] - ldrh r2, [r7, #2] + ldr r3, .L1703+24 + ldrh r2, [r5, #2] + ldrh r3, [r3] sub r3, r3, #1 - ldr fp, .L1642+24 cmp r2, r3 - ldr ip, [sp, #12] - blt .L1630 - ldr r3, [r6, #-1336] + blt .L1691 + ldr r3, [r7, #-1340] mov r1, #1 - ldrh r2, [fp] + ldrh r2, [r5] add r3, r3, #1 - ldr r0, [r6, #-1488] - str r3, [r6, #-1336] - str r3, [r5, #4] - ldrh r3, [fp, #4] - strh r2, [r5, #8] @ movhi - strh r2, [fp, #4] @ movhi + ldr r0, [r7, #-1492] + str r3, [r7, #-1340] + str r3, [r6, #4] + ldrh r3, [r5, #4] + strh r2, [r6, #8] @ movhi + strh r2, [r5, #4] @ movhi mov r2, r1 - strh r3, [fp] @ movhi + strh r3, [r5] @ movhi mov r3, r3, asl #10 - str r3, [r6, #-1268] + str r3, [r7, #-1272] str r3, [r0, #4] - strh ip, [fp, #2] @ movhi + strh fp, [r5, #2] @ movhi bl FlashEraseBlocks -.L1630: +.L1691: mov r1, #1 - ldr r0, .L1642+28 + ldr r0, .L1703+28 mov r3, r1 mov r2, r1 bl FlashProgPages - ldrh r3, [r7, #2] - ldr fp, .L1642 + ldrh r3, [r10, #2] + ldr fp, .L1703 add r3, r3, #1 - strh r3, [r7, #2] @ movhi - ldr r3, [r4, #-1272] + strh r3, [r10, #2] @ movhi + ldr r3, [r4, #-1276] cmn r3, #1 - bne .L1631 + bne .L1692 add r8, r8, #1 - ldr r0, .L1642+32 - ldr r1, [r6, #-1268] + ldr r0, .L1703+32 + ldr r1, [r7, #-1272] uxth r8, r8 bl printk cmp r8, #3 - bls .L1629 - ldr r0, .L1642+36 + bls .L1690 + ldr r0, .L1703+36 mov r2, r8 - ldr r1, [fp, #-1268] + ldr r1, [fp, #-1272] bl printk mov r3, #1 - str r3, [fp, #-1276] - b .L1626 -.L1631: + str r3, [fp, #-1280] + b .L1687 +.L1692: add r9, r9, #1 cmp r9, #1 - beq .L1629 + beq .L1690 cmp r3, #256 - beq .L1629 -.L1626: + beq .L1690 +.L1687: mov r0, #0 - add sp, sp, #20 + add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1643: +.L1704: .align 2 -.L1642: +.L1703: .word .LANCHOR2 - .word .LANCHOR2-1320 - .word .LANCHOR2-1710 - .word .LANCHOR2-1662 + .word .LANCHOR2-1324 + .word .LANCHOR2-1714 + .word .LANCHOR2-1348 .word -3887 - .word .LC32 - .word .LANCHOR2-1344 - .word .LANCHOR2-1272 - .word .LC33 .word .LC34 + .word .LANCHOR2-1666 + .word .LANCHOR2-1276 + .word .LC35 + .word .LC36 .fnend .size FtlBbmTblFlush, .-FtlBbmTblFlush .align 2 @@ -9134,65 +9450,65 @@ FtlLoadFactoryBbt: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1656 + ldr r2, .L1717 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r5, #0 - ldr r6, .L1656+4 + ldr r6, .L1717+4 mov r9, r2 - ldr r3, [r2, #-1472] - ldr r7, [r2, #-1440] + ldr r3, [r2, #-1476] + ldr r7, [r2, #-1444] sub r8, r6, #376 - str r3, [r2, #-1264] - str r7, [r2, #-1260] -.L1645: + str r3, [r2, #-1268] + str r7, [r2, #-1264] +.L1706: ldrh r3, [r8] cmp r5, r3 - bcs .L1655 - ldr r2, .L1656+8 + bcs .L1716 + ldr r2, .L1717+8 mvn r3, #0 strh r3, [r6, #2]! @ movhi ldrh r3, [r2] mov r10, r2 sub r3, r3, #1 uxth r4, r3 -.L1646: +.L1707: ldrh r3, [r10] sub r2, r3, #16 cmp r4, r2 - ble .L1648 + ble .L1709 mla r3, r3, r5, r4 mov r1, #1 - ldr r0, .L1656+12 + ldr r0, .L1717+12 mov r2, r1 mov r3, r3, asl #10 - str r3, [r9, #-1268] + str r3, [r9, #-1272] bl FlashReadPages - ldr r3, [r9, #-1272] + ldr r3, [r9, #-1276] cmn r3, #1 - beq .L1647 + beq .L1708 ldrh r2, [r7] movw r3, #61664 cmp r2, r3 streqh r4, [r6] @ movhi - beq .L1648 -.L1647: + beq .L1709 +.L1708: sub r4, r4, #1 uxth r4, r4 - b .L1646 -.L1648: + b .L1707 +.L1709: add r5, r5, #1 - b .L1645 -.L1655: + b .L1706 +.L1716: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1657: +.L1718: .align 2 -.L1656: +.L1717: .word .LANCHOR2 - .word .LANCHOR2-1334 - .word .LANCHOR2-1666 - .word .LANCHOR2-1272 + .word .LANCHOR2-1338 + .word .LANCHOR2-1670 + .word .LANCHOR2-1276 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 @@ -9203,18 +9519,18 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1659 - mvn r3, #0 + ldr r0, .L1720 + mvn r2, #0 mov r1, #255 + add r0, r0, #8 + strh r2, [r0, #-12] @ movhi + mov r2, #0 + strh r2, [r0, #-6] @ movhi mov r2, #16 - add r0, r0, #12 - strh r3, [r0, #-12] @ movhi - mov r3, #0 - strh r3, [r0, #-6] @ movhi b ftl_memset -.L1660: +.L1721: .align 2 -.L1659: +.L1720: .word .LANCHOR2-1344 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit @@ -9228,27 +9544,27 @@ FtlBbtCalcTotleCnt: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 - ldr r4, .L1670 - ldrh r6, [r4, #-2] - ldrh r3, [r4, #-46] + ldr r4, .L1731 + ldrh r6, [r4, #-6] + ldrh r3, [r4, #-50] mov r4, r5 mul r6, r3, r6 -.L1662: +.L1723: uxth r0, r5 cmp r0, r6 - bge .L1669 + bge .L1730 bl FtlBbmIsBadBlock add r5, r5, #1 cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - b .L1662 -.L1669: + b .L1723 +.L1730: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1671: +.L1732: .align 2 -.L1670: +.L1731: .word .LANCHOR2-1664 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -9257,82 +9573,71 @@ FtlBbtCalcTotleCnt: .type FtlMakeBbt, %function FtlMakeBbt: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {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 r7, .L1697 - ldr r6, [r7, #-1276] - cmp r6, #0 - bne .L1673 + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + ldr r7, .L1756 + ldr r5, [r7, #-1280] + cmp r5, #0 + bne .L1734 bl FtlBbtMemInit - ldr r8, .L1697+4 + ldr r8, .L1756+4 bl FtlLoadFactoryBbt - sub r4, r7, #1344 + mov r4, r7 sub r9, r8, #18 - mov r5, r7 -.L1674: - ldr r3, .L1697+8 - ldrh r2, [r3] - cmp r6, r2 - bcs .L1694 - ldrh r2, [r9, #2]! - movw r1, #65535 - ldr r0, [r5, #-1472] - ldr r10, [r5, #-1440] - cmp r2, r1 - str r0, [r5, #-1264] - str r10, [r5, #-1260] - beq .L1675 - ldrh fp, [r3, #44] +.L1735: + ldr r6, .L1756+8 + ldrh r3, [r6] + cmp r5, r3 + bcs .L1754 + ldrh r3, [r9, #2]! + movw r2, #65535 + ldr r0, [r4, #-1476] + ldr r10, [r4, #-1444] + cmp r3, r2 + str r0, [r4, #-1268] + str r10, [r4, #-1264] + beq .L1736 + ldrh fp, [r6, #44] mov r1, #1 - ldr r0, .L1697+12 - str r3, [sp, #4] - mla fp, fp, r6, r2 - mov r2, fp, asl #10 - str r2, [r5, #-1268] mov r2, r1 + ldr r0, .L1756+12 + mla fp, fp, r5, r3 + mov r3, fp, asl #10 + str r3, [r4, #-1272] bl FlashReadPages + ldrh r2, [r6, #44] ldr r0, [r8] - ldr r1, [r5, #-1264] - ldr r3, [sp, #4] - ldrh r2, [r3, #44] add r2, r2, #7 + ldr r1, [r4, #-1268] mov r2, r2, asr #3 bl ftl_memcpy - b .L1676 -.L1675: - mov r1, r6 - str r3, [sp, #4] + b .L1737 +.L1736: + mov r1, r5 bl FlashGetBadBlockList - ldr r0, [r5, #-1264] + ldr r0, [r4, #-1268] ldr r1, [r8] bl FtlBbt2Bitmap - ldr r3, [sp, #4] - ldrh r3, [r3, #44] -.L1693: - sub r3, r3, #1 - uxth r3, r3 - str r3, [sp, #4] -.L1677: - ldr fp, .L1697+16 - ldr r3, [sp, #4] + ldrh r6, [r6, #44] +.L1739: + sub r6, r6, #1 + uxth r6, r6 +.L1738: + ldr fp, .L1756+16 ldrh r0, [fp] - smlabb r0, r0, r6, r3 + smlabb r0, r0, r5, r6 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - ldreq r3, [sp, #4] - beq .L1693 -.L1695: - ldrh r3, [sp, #4] + beq .L1739 mov r1, #0 mov r2, #16 - ldr r0, [r5, #-1440] - strh r3, [r9] @ movhi + strh r6, [r9] @ movhi + ldr r0, [r4, #-1444] bl ftl_memset - ldr r3, .L1697+20 + ldr r3, .L1756+20 strh r3, [r10] @ movhi mov r3, #0 str r3, [r10, #4] @@ -9341,122 +9646,125 @@ FtlMakeBbt: strh r3, [r10, #2] @ movhi ldrh r3, [r9] ldr r1, [r8] - ldr r0, [r5, #-1264] - mla fp, fp, r6, r3 + ldr r0, [r4, #-1268] + mla fp, fp, r5, r3 mov r3, fp, asl #10 - str r3, [r5, #-1268] - ldr r3, .L1697+24 + str r3, [r4, #-1272] + ldr r3, .L1756+24 ldrh r2, [r3] mov r2, r2, asl #2 bl ftl_memcpy mov r1, #1 mov r2, r1 - ldr r0, .L1697+12 + ldr r0, .L1756+12 bl FlashEraseBlocks mov r1, #1 mov r3, r1 - ldr r0, .L1697+12 + ldr r0, .L1756+12 mov r2, r1 bl FlashProgPages - ldr r3, [r5, #-1272] + ldr r3, [r4, #-1276] cmn r3, #1 - bne .L1676 + bne .L1737 uxth r0, fp bl FtlBbmMapBadBlock - b .L1677 -.L1676: + b .L1738 +.L1737: uxth r0, fp - add r6, r6, #1 + add r5, r5, #1 bl FtlBbmMapBadBlock add r8, r8, #4 - b .L1674 -.L1694: - add r5, r3, #60 - mov r6, #0 -.L1681: - ldrh r3, [r5] - uxth r0, r6 - add r6, r6, #1 + b .L1735 +.L1754: + add r6, r6, #60 + mov r4, #0 +.L1742: + ldrh r3, [r6] + uxth r0, r4 + add r4, r4, #1 cmp r3, r0 - bls .L1696 + bls .L1755 bl FtlBbmMapBadBlock - b .L1681 -.L1696: - ldrh r5, [r4, #12] + b .L1742 +.L1755: + ldr r6, .L1756+28 movw r8, #65535 - ldr r6, .L1697+28 - sub r5, r5, #1 - uxth r5, r5 -.L1683: - ldrh r3, [r4, #12] + ldrh r4, [r6, #12] + sub r4, r4, #1 + uxth r4, r4 +.L1744: + ldrh r3, [r6, #12] + ldr r5, .L1756+28 sub r3, r3, #48 - cmp r5, r3 - ble .L1687 - mov r0, r5 + cmp r4, r3 + ble .L1748 + mov r0, r4 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1684 - mov r0, r5 + beq .L1745 + mov r0, r4 bl FlashTestBlk cmp r0, #0 - beq .L1685 - mov r0, r5 + beq .L1746 + mov r0, r4 bl FtlBbmMapBadBlock - b .L1684 -.L1685: + b .L1745 +.L1746: ldrh r3, [r6] cmp r3, r8 - streqh r5, [r6] @ movhi -.L1686: - ldrne r3, .L1697+28 - strneh r5, [r3, #4] @ movhi - bne .L1687 -.L1684: - sub r5, r5, #1 - uxth r5, r5 - b .L1683 -.L1687: - ldr r0, [r7, #-1488] - mov r5, #0 - ldrh r3, [r4] - mov r2, #2 - str r5, [r7, #-1336] + streqh r4, [r6] @ movhi +.L1747: + strneh r4, [r5, #4] @ movhi + bne .L1748 +.L1745: + sub r4, r4, #1 + uxth r4, r4 + b .L1744 +.L1748: + ldr r3, .L1756+32 + mov r4, #0 + ldr r0, [r7, #-1492] mov r1, #1 - strh r5, [r4, #2] @ movhi + str r4, [r7, #-1340] + mov r2, #2 + ldrh r3, [r3, #-4] + strh r4, [r5, #2] @ movhi mov r3, r3, asl #10 str r3, [r0, #4] - ldrh r3, [r4, #4] + ldrh r3, [r5, #4] mov r3, r3, asl #10 str r3, [r0, #40] bl FlashEraseBlocks - ldrh r0, [r4] + ldr r3, .L1756+32 + ldrh r0, [r3, #-4] bl FtlBbmMapBadBlock - ldrh r0, [r4, #4] + ldrh r0, [r5, #4] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldr r3, [r7, #-1336] - ldrh r2, [r4, #4] + ldr r3, [r7, #-1340] + ldrh r2, [r5, #4] add r3, r3, #1 - str r3, [r7, #-1336] - ldrh r3, [r4] - strh r5, [r4, #2] @ movhi - strh r2, [r4] @ movhi - strh r3, [r4, #4] @ movhi + str r3, [r7, #-1340] + ldr r3, .L1756+32 + ldr r1, .L1756+32 + strh r4, [r5, #2] @ movhi + ldrh r3, [r3, #-4] + strh r2, [r1, #-4] @ movhi + strh r3, [r5, #4] @ movhi bl FtlBbmTblFlush -.L1673: +.L1734: mov r0, #0 - add sp, sp, #12 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1698: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1757: .align 2 -.L1697: +.L1756: .word .LANCHOR2 - .word .LANCHOR2-1316 - .word .LANCHOR2-1710 - .word .LANCHOR2-1272 - .word .LANCHOR2-1666 + .word .LANCHOR2-1320 + .word .LANCHOR2-1714 + .word .LANCHOR2-1276 + .word .LANCHOR2-1670 .word -3872 + .word .LANCHOR2-1352 .word .LANCHOR2-1348 .word .LANCHOR2-1344 .fnend @@ -9471,24 +9779,24 @@ V2P_block: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, r1 - ldr r4, .L1701 + ldr r4, .L1760 mov r7, r0 - sub r3, r4, #1696 + sub r3, r4, #1712 sub r4, r4, #1664 - ldrh r6, [r3, #-12] + ldrh r6, [r3] mov r1, r6 bl __aeabi_uidivmod mov r0, r7 smlabb r5, r5, r6, r1 mov r1, r6 bl __aeabi_uidiv - ldrh r3, [r4, #-2] + ldrh r3, [r4, #-6] smlabb r0, r3, r0, r5 uxth r0, r0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1702: +.L1761: .align 2 -.L1701: +.L1760: .word .LANCHOR2 .fnend .size V2P_block, .-V2P_block @@ -9499,14 +9807,14 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1705 + ldr r3, .L1764 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - sub r2, r3, #1696 + sub r2, r3, #1712 sub r3, r3, #1664 mov r6, r0 - ldrh r5, [r2, #-12] - ldrh r1, [r3, #-2] + ldrh r5, [r2] + ldrh r1, [r3, #-6] bl __aeabi_uidiv mov r1, r5 smulbb r4, r0, r5 @@ -9515,9 +9823,9 @@ P2V_plane: add r1, r4, r1 uxth r0, r1 ldmfd sp!, {r4, r5, r6, pc} -.L1706: +.L1765: .align 2 -.L1705: +.L1764: .word .LANCHOR2 .fnend .size P2V_plane, .-P2V_plane @@ -9530,19 +9838,19 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L1709 + ldr r4, .L1768 sub r3, r4, #1664 - sub r4, r4, #1696 - ldrh r1, [r3, #-2] + sub r4, r4, #1712 + ldrh r1, [r3, #-6] bl __aeabi_uidivmod uxth r0, r1 - ldrh r1, [r4, #-12] + ldrh r1, [r4] bl __aeabi_uidiv uxth r0, r0 ldmfd sp!, {r4, pc} -.L1710: +.L1769: .align 2 -.L1709: +.L1768: .word .LANCHOR2 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -9555,13 +9863,13 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L1712 + bls .L1771 rsb r0, r1, r0 cmp r0, #-2147483648 movhi r0, #0 movls r0, #1 bx lr -.L1712: +.L1771: rsb r0, r0, r1 cmp r0, #-2147483648 movls r0, #0 @@ -9576,38 +9884,37 @@ FtlGetLastWrittenPage: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L1785 cmp r1, #1 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} .pad #104 sub sp, sp, #104 - ldreq r3, .L1726 + ldreqh r4, [r3, #-2] mov r8, r1 - ldrne r3, .L1726+4 + ldrneh r4, [r3, #-4] mov r6, r0, asl #10 - mov r1, #1 - add r0, sp, #4 - ldreqh r4, [r3, #-14] - mov r2, r8 - ldrneh r4, [r3] add r3, sp, #40 - str r3, [sp, #16] - mov r7, #0 + add r0, sp, #4 sub r5, r4, #1 - str r7, [sp, #12] + str r3, [sp, #16] + mov r1, #1 + mov r2, r8 uxth r5, r5 + mov r7, #0 + str r7, [sp, #12] sxth r3, r5 orr r3, r3, r6 str r3, [sp, #8] bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1717 -.L1718: + bne .L1776 +.L1777: sxth r4, r7 sxth r3, r5 cmp r4, r3 - bgt .L1717 + bgt .L1776 add r4, r4, r3 add r0, sp, #4 mov r1, #1 @@ -9620,28 +9927,27 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1719 + bne .L1778 ldr r3, [sp, #44] cmn r3, #1 - bne .L1719 + bne .L1778 ldr r3, [sp, #4] cmn r3, #1 subne r4, r4, #1 uxthne r5, r4 - bne .L1718 -.L1719: + bne .L1777 +.L1778: add r3, r4, #1 uxth r7, r3 - b .L1718 -.L1717: + b .L1777 +.L1776: sxth r0, r5 add sp, sp, #104 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1727: +.L1786: .align 2 -.L1726: - .word .LANCHOR2-1648 +.L1785: .word .LANCHOR2-1664 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -9654,172 +9960,175 @@ FtlLoadBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r4, .L1761 - ldr r3, [r4, #-1472] + ldr r4, .L1820 + ldr r3, [r4, #-1476] mov r7, r4 - ldr r6, [r4, #-1440] - str r3, [r4, #-1264] - str r6, [r4, #-1260] + ldr r6, [r4, #-1444] + str r3, [r4, #-1268] + str r6, [r4, #-1264] bl FtlBbtMemInit sub r3, r4, #1664 - sub r8, r3, #2 - ldrh r5, [r3, #-2] + sub r8, r3, #6 + ldrh r5, [r3, #-6] sub r5, r5, #1 uxth r5, r5 -.L1729: +.L1788: ldrh r3, [r8] sub r3, r3, #48 cmp r5, r3 - ble .L1732 + ble .L1791 mov r1, #1 - ldr r0, .L1761+4 + ldr r0, .L1820+4 mov r2, r1 mov r3, r5, asl #10 - str r3, [r7, #-1268] + str r3, [r7, #-1272] bl FlashReadPages - ldr r3, [r7, #-1272] + ldr r3, [r7, #-1276] cmn r3, #1 - bne .L1730 - ldr r3, [r7, #-1268] + bne .L1789 + ldr r3, [r7, #-1272] mov r1, #1 - ldr r0, .L1761+4 + ldr r0, .L1820+4 mov r2, r1 add r3, r3, #1 - str r3, [r7, #-1268] + str r3, [r7, #-1272] bl FlashReadPages -.L1730: - ldr r3, [r4, #-1272] - ldr r2, .L1761 - cmn r3, #1 - beq .L1731 +.L1789: + ldr r2, [r4, #-1276] + ldr r3, .L1820 + cmn r2, #1 + beq .L1790 ldrh r1, [r6] - movw r3, #61649 - cmp r1, r3 - bne .L1731 - ldr r1, [r6, #4] - sub r3, r2, #1344 - strh r5, [r3] @ movhi - str r1, [r2, #-1336] + movw r2, #61649 + cmp r1, r2 + bne .L1790 + sub r2, r3, #1344 + strh r5, [r2, #-4] @ movhi + ldr r2, [r6, #4] + str r2, [r3, #-1340] + ldr r3, .L1820+8 ldrh r2, [r6, #8] strh r2, [r3, #4] @ movhi - b .L1732 -.L1731: + b .L1791 +.L1790: sub r5, r5, #1 uxth r5, r5 - b .L1729 -.L1732: - ldr r7, .L1761 + b .L1788 +.L1791: + ldr r8, .L1820 movw r2, #65535 - sub r5, r7, #1344 - ldrh r3, [r5] + sub r7, r8, #1344 + sub r5, r7, #4 + ldrh r3, [r7, #-4] cmp r3, r2 - beq .L1746 + beq .L1805 ldrh r3, [r5, #4] cmp r3, r2 - beq .L1736 + beq .L1795 mov r1, #1 add r0, r5, #72 mov r2, r1 mov r3, r3, asl #10 - str r3, [r7, #-1268] + str r3, [r8, #-1272] bl FlashReadPages - ldr r3, [r7, #-1272] + ldr r3, [r8, #-1276] cmn r3, #1 - beq .L1736 + beq .L1795 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L1736 + bne .L1795 ldr r3, [r6, #4] - ldr r2, [r7, #-1336] + ldr r2, [r8, #-1340] cmp r3, r2 - strhi r3, [r7, #-1336] + strhi r3, [r8, #-1340] ldrhih r2, [r5, #4] ldrhih r3, [r6, #8] - strhih r2, [r5] @ movhi + strhih r2, [r7, #-4] @ movhi strhih r3, [r5, #4] @ movhi -.L1736: - ldrh r0, [r5] +.L1795: + ldrh r0, [r7, #-4] mov r1, #1 bl FtlGetLastWrittenPage movw r8, #61649 uxth r7, r0 add r0, r0, #1 strh r0, [r5, #2] @ movhi -.L1738: +.L1797: sxth r3, r7 cmp r3, #0 - blt .L1743 + blt .L1802 ldrh r2, [r5] mov r1, #1 - ldr r0, .L1761+4 + ldr r0, .L1820+4 orr r3, r3, r2, asl #10 - str r3, [r4, #-1268] - ldr r3, [r4, #-1472] + str r3, [r4, #-1272] + ldr r3, [r4, #-1476] mov r2, r1 - str r3, [r4, #-1264] + str r3, [r4, #-1268] bl FlashReadPages - ldr r3, [r4, #-1272] + ldr r3, [r4, #-1276] cmn r3, #1 - beq .L1739 + beq .L1798 ldrh r3, [r6] cmp r3, r8 - bne .L1739 -.L1743: + bne .L1798 +.L1802: ldrh r2, [r6, #10] ldrh r0, [r6, #12] - ldr r3, .L1761 + ldr r3, .L1820 strh r2, [r5, #6] @ movhi movw r2, #65535 cmp r0, r2 - bne .L1740 - b .L1741 -.L1739: + bne .L1799 + b .L1800 +.L1798: sub r7, r7, #1 uxth r7, r7 - b .L1738 -.L1740: - ldr r2, [r3, #-1736] + b .L1797 +.L1799: + ldr r2, [r3, #-1740] cmp r0, r2 - beq .L1741 + beq .L1800 sub r3, r3, #1712 - ldrh r3, [r3, #-10] + ldrh r3, [r3, #-14] mov r3, r3, lsr #2 cmp r0, r3 cmpcc r2, r3 - bcs .L1741 + bcs .L1800 bl FtlSysBlkNumInit -.L1741: - ldr r5, .L1761+8 +.L1800: + ldr r5, .L1820+12 mov r4, #0 - ldr r7, .L1761 - ldr r6, .L1761+12 + ldr r7, .L1820 + ldr r6, .L1820+16 sub r8, r5, #28 -.L1744: +.L1803: ldrh r3, [r6] cmp r4, r3 - bcs .L1760 + bcs .L1819 ldrh r2, [r8] - ldr r1, [r7, #-1264] + ldr r1, [r7, #-1268] ldr r0, [r5, #4]! mov r2, r2, asl #2 mla r1, r4, r2, r1 bl ftl_memcpy add r4, r4, #1 - b .L1744 -.L1760: + b .L1803 +.L1819: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1746: +.L1805: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1762: +.L1821: .align 2 -.L1761: +.L1820: .word .LANCHOR2 - .word .LANCHOR2-1272 - .word .LANCHOR2-1320 - .word .LANCHOR2-1710 + .word .LANCHOR2-1276 + .word .LANCHOR2-1348 + .word .LANCHOR2-1324 + .word .LANCHOR2-1714 .fnend .size FtlLoadBbt, .-FtlLoadBbt .align 2 @@ -9829,24 +10138,23 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1765 + ldr r3, .L1824 + mov r2, #2048 stmfd sp!, {r4, lr} .save {r4, lr} - sub r2, r3, #4 mov r4, #0 - strh r0, [r3, #-4] @ movhi - strh r4, [r2, #4] @ movhi - add r0, r3, #4 + strh r0, [r3, #-8] @ movhi mov r1, r4 - mov r2, #2048 + mov r0, r3 + strh r4, [r3, #-6] @ movhi + strh r4, [r3, #-4] @ movhi strh r4, [r3, #-2] @ movhi - strh r4, [r3, #2] @ movhi bl ftl_memset mov r0, r4 ldmfd sp!, {r4, pc} -.L1766: +.L1825: .align 2 -.L1765: +.L1824: .word .LANCHOR2-1232 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -9858,15 +10166,15 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1768 + ldr r3, .L1827 ldrh r0, [r3, #6] clz r0, r0 mov r0, r0, lsr #5 bx lr -.L1769: +.L1828: .align 2 -.L1768: - .word .LANCHOR2-1236 +.L1827: + .word .LANCHOR2-1240 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty .align 2 @@ -9877,16 +10185,16 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1771 + ldr r3, .L1830 ldrh r0, [r3, #6] sub r0, r0, #1024 clz r0, r0 mov r0, r0, lsr #5 bx lr -.L1772: +.L1831: .align 2 -.L1771: - .word .LANCHOR2-1236 +.L1830: + .word .LANCHOR2-1240 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull .align 2 @@ -9904,33 +10212,33 @@ FtlFreeSysBlkQueueIn: uxth r3, r3 cmp r3, r2 ldmhifd sp!, {r3, r4, r5, r6, r7, pc} - ldr r4, .L1783 - ldr r5, .L1783+4 + ldr r4, .L1842 + ldr r5, .L1842+4 ldrh r3, [r4, #6] cmp r3, #1024 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r1, #0 - beq .L1775 - ldr r3, [r5, #-1276] + beq .L1834 + ldr r3, [r5, #-1280] cmp r3, #0 - bne .L1775 + bne .L1834 bl P2V_block_in_plane mov r1, #1 mov r3, r7, asl #10 mov r2, r1 mov r6, r0 - ldr r0, [r5, #-1488] + ldr r0, [r5, #-1492] str r3, [r0, #4] bl FlashEraseBlocks - ldr r1, [r5, #-1412] + ldr r1, [r5, #-1416] mov r3, r6, asl #1 ldrh r2, [r1, r3] add r2, r2, #1 strh r2, [r1, r3] @ movhi - ldr r3, [r5, #-1572] + ldr r3, [r5, #-1576] add r3, r3, #1 - str r3, [r5, #-1572] -.L1775: + str r3, [r5, #-1576] +.L1834: ldrh r3, [r4, #6] add r3, r3, #1 strh r3, [r4, #6] @ movhi @@ -9941,10 +10249,10 @@ FtlFreeSysBlkQueueIn: strh r3, [r4, #4] @ movhi strh r7, [r2, #8] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1784: +.L1843: .align 2 -.L1783: - .word .LANCHOR2-1236 +.L1842: + .word .LANCHOR2-1240 .word .LANCHOR2 .fnend .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn @@ -9959,13 +10267,13 @@ FtlLowFormatEraseBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r9, .L1835 - ldr r5, [r9, #-1276] - ldrb r3, [r9, #-1804] @ zero_extendqisi2 + ldr r9, .L1894 + ldr r5, [r9, #-1280] + ldrb r3, [r9, #-1874] @ zero_extendqisi2 cmp r5, #0 str r3, [sp, #16] movne r0, #0 - bne .L1786 + bne .L1845 ldrb r3, [r9, #-2744] @ zero_extendqisi2 mov fp, r1 mov r10, r5 @@ -9974,38 +10282,38 @@ FtlLowFormatEraseBlock: mov r8, #36 str r0, [sp, #4] str r3, [sp, #8] - str r0, [r9, #-1540] -.L1787: - ldr r3, .L1835+4 + str r0, [r9, #-1544] +.L1846: + ldr r3, .L1894+4 uxth r1, r10 - ldr r6, .L1835 + ldr r6, .L1894 ldrh r0, [r3] cmp r0, r1 - bls .L1830 + bls .L1889 mul r0, r8, r1 - ldr ip, [r7, #-1488] + ldr ip, [r7, #-1492] add r1, r7, r1 mov r3, #0 str r3, [ip, r0] - ldrb r0, [r1, #-1704] @ zero_extendqisi2 + ldrb r0, [r1, #-1708] @ zero_extendqisi2 ldr r1, [sp, #4] bl V2P_block cmp fp, #0 mov r6, r0 - beq .L1788 + beq .L1847 bl IsBlkInVendorPart cmp r0, #0 - bne .L1789 -.L1788: + bne .L1848 +.L1847: mov r0, r6 bl FtlBbmIsBadBlock cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - bne .L1789 - ldr r3, .L1835+8 + bne .L1848 + ldr r3, .L1894+8 mov r6, r6, asl #10 - ldr ip, [r9, #-1488] + ldr ip, [r9, #-1492] ldrh r1, [r3] mla ip, r8, r5, ip mul r1, r1, r5 @@ -10016,58 +10324,58 @@ FtlLowFormatEraseBlock: add r0, r1, #3 str r6, [ip, #4] movlt r1, r0 - ldr r0, [r9, #-1436] + ldr r0, [r9, #-1440] bic r1, r1, #3 add r1, r0, r1 str r1, [ip, #12] -.L1789: +.L1848: add r10, r10, #1 - b .L1787 -.L1830: + b .L1846 +.L1889: cmp r5, #0 - beq .L1810 + beq .L1869 ldr r3, [sp, #8] mov r2, r5 - ldr r0, [r6, #-1488] + ldr r0, [r6, #-1492] mov r8, #0 adds r7, r3, #0 - strb r8, [r6, #-1804] + strb r8, [r6, #-1874] movne r7, #1 mov r1, r7 bl FlashEraseBlocks ldrb r3, [sp, #16] @ zero_extendqisi2 - strb r3, [r6, #-1804] + strb r3, [r6, #-1874] mov r6, #36 -.L1793: +.L1852: uxth r2, r8 cmp r2, r5 - bcs .L1831 + bcs .L1890 mul r2, r6, r8 - ldr r1, [r9, #-1488] + ldr r1, [r9, #-1492] add r0, r1, r2 ldr r2, [r1, r2] cmn r2, #1 - bne .L1794 + bne .L1853 ldr r0, [r0, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L1794: +.L1853: add r8, r8, #1 - b .L1793 -.L1831: + b .L1852 +.L1890: cmp fp, #0 - bne .L1796 + bne .L1855 mov r3, #6 uxth r6, r7 str r3, [sp, #12] mov r3, #1 str r3, [sp, #8] - b .L1797 -.L1796: - ldr r2, .L1835+12 - ldrh r3, [r2, #-14] + b .L1856 +.L1855: + ldr r2, .L1894+12 + ldrh r3, [r2, #-2] str r3, [sp, #8] ldrb r3, [r9, #-2744] @ zero_extendqisi2 cmp r3, #0 @@ -10077,46 +10385,46 @@ FtlLowFormatEraseBlock: strne r6, [sp, #12] moveq r3, r3, lsr #2 streq r3, [sp, #12] -.L1797: - ldr r10, .L1835 +.L1856: + ldr r10, .L1894 mov r7, #0 -.L1806: +.L1865: mov r8, #0 mov r5, r8 -.L1798: - ldr r3, .L1835+4 - ldr r9, .L1835 +.L1857: + ldr r3, .L1894+4 + ldr r9, .L1894 ldrh r2, [r3] uxth r3, r8 cmp r2, r3 - bls .L1832 + bls .L1891 mov r2, #36 - ldr r1, [r10, #-1488] + ldr r1, [r10, #-1492] mul r2, r2, r3 add r3, r10, r3 mov r0, #0 str r0, [r1, r2] ldr r1, [sp, #4] - ldrb r0, [r3, #-1704] @ zero_extendqisi2 + ldrb r0, [r3, #-1708] @ zero_extendqisi2 bl V2P_block cmp fp, #0 mov r9, r0 - beq .L1799 + beq .L1858 bl IsBlkInVendorPart cmp r0, #0 - bne .L1800 -.L1799: + bne .L1859 +.L1858: mov r0, r9 bl FtlBbmIsBadBlock cmp r0, #0 - bne .L1800 - ldr r2, [r10, #-1488] + bne .L1859 + ldr r2, [r10, #-1492] mov r3, #36 add r9, r7, r9, asl #10 mla r2, r3, r5, r2 - ldr r3, [r10, #-1452] + ldr r3, [r10, #-1456] str r3, [r2, #8] - ldr r3, .L1835+8 + ldr r3, .L1894+8 str r9, [r2, #4] ldrh r3, [r3] mul r3, r3, r5 @@ -10125,40 +10433,40 @@ FtlLowFormatEraseBlock: add r1, r3, #3 cmp r3, #0 movlt r3, r1 - ldr r1, [r10, #-1448] + ldr r1, [r10, #-1452] bic r3, r3, #3 add r3, r1, r3 str r3, [r2, #12] -.L1800: +.L1859: add r8, r8, #1 - b .L1798 -.L1832: + b .L1857 +.L1891: cmp r5, #0 - beq .L1810 - ldr r2, .L1835 + beq .L1869 + ldr r2, .L1894 mov r3, #0 mov r1, r5 mov r8, #0 - strb r3, [r2, #-1804] + strb r3, [r2, #-1874] mov r3, #1 - ldr r0, [r2, #-1488] + ldr r0, [r2, #-1492] mov r2, r6 bl FlashProgPages - ldr r3, .L1835 + ldr r3, .L1894 mov r1, #36 ldrb r2, [sp, #16] @ zero_extendqisi2 - strb r2, [r3, #-1804] -.L1803: + strb r2, [r3, #-1874] +.L1862: uxth r3, r8 cmp r3, r5 - bcs .L1833 + bcs .L1892 mul r3, r1, r8 - ldr r2, .L1835 - ldr r2, [r2, #-1488] + ldr r2, .L1894 + ldr r2, [r2, #-1492] add r0, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - beq .L1804 + beq .L1863 ldr r0, [r0, #4] add r4, r4, #1 str r1, [sp, #20] @@ -10166,62 +10474,62 @@ FtlLowFormatEraseBlock: uxth r4, r4 bl FtlBbmMapBadBlock ldr r1, [sp, #20] -.L1804: +.L1863: add r8, r8, #1 - b .L1803 -.L1833: + b .L1862 +.L1892: ldr r3, [sp, #12] add r7, r7, r3 ldr r3, [sp, #8] uxth r7, r7 cmp r7, r3 - bcc .L1806 + bcc .L1865 mov r7, #0 mov r8, #36 -.L1807: +.L1866: uxth r3, r7 cmp r3, r5 - bcs .L1834 + bcs .L1893 cmp fp, #0 - beq .L1808 + beq .L1867 mul r3, r8, r7 - ldr r2, [r9, #-1488] + ldr r2, [r9, #-1492] add r1, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - bne .L1808 + bne .L1867 ldr r0, [r1, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L1808: +.L1867: add r7, r7, #1 - b .L1807 -.L1834: + b .L1866 +.L1893: adds r3, fp, #0 ldr r2, [sp, #4] movne r3, #1 cmp r2, #63 orrls r3, r3, #1 cmp r3, #0 - beq .L1810 - ldr r0, [r9, #-1488] + beq .L1869 + ldr r0, [r9, #-1492] mov r1, r6 mov r2, r5 bl FlashEraseBlocks -.L1810: +.L1869: mov r0, r4 -.L1786: +.L1845: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1836: +.L1895: .align 2 -.L1835: +.L1894: .word .LANCHOR2 - .word .LANCHOR2-1732 - .word .LANCHOR2-1652 - .word .LANCHOR2-1648 + .word .LANCHOR2-1736 + .word .LANCHOR2-1656 + .word .LANCHOR2-1664 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 @@ -10231,9 +10539,9 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1850 + ldr r3, .L1909 ldrh ip, [r3, #28] - ldr r3, .L1850+4 + ldr r3, .L1909+4 ldrh r2, [r3, #6] cmp r2, #0 bxeq lr @@ -10244,11 +10552,11 @@ FtlFreeSysBLkSort: and ip, ip, #31 ldrh r2, [r3, #4] mov r4, r0 -.L1839: +.L1898: uxth lr, r0 add r0, r0, #1 cmp lr, ip - bge .L1849 + bge .L1908 add lr, r3, r1, asl #1 add r1, r1, #1 ubfx r1, r1, #0, #10 @@ -10258,17 +10566,17 @@ FtlFreeSysBLkSort: mov r4, #1 add r2, r2, r4 ubfx r2, r2, #0, #10 - b .L1839 -.L1849: + b .L1898 +.L1908: cmp r4, #0 strneh r1, [r3, #2] @ movhi strneh r2, [r3, #4] @ movhi ldmfd sp!, {r4, pc} -.L1851: +.L1910: .align 2 -.L1850: - .word .LANCHOR2+820 - .word .LANCHOR2-1236 +.L1909: + .word .LANCHOR2+816 + .word .LANCHOR2-1240 .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -10280,16 +10588,16 @@ FtlFreeSysBlkQueueOut: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r6, .L1863 - ldr r5, .L1863+4 + ldr r6, .L1922 + ldr r5, .L1922+4 mov r7, r6 -.L1853: +.L1912: ldrh r1, [r5, #6] cmp r1, #0 - beq .L1854 + beq .L1913 ldrh r3, [r5, #2] sub r1, r1, #1 - ldr r9, [r6, #-1276] + ldr r9, [r6, #-1280] strh r1, [r5, #6] @ movhi add r2, r5, r3, asl #1 cmp r9, #0 @@ -10297,60 +10605,60 @@ FtlFreeSysBlkQueueOut: ubfx r3, r3, #0, #10 ldrh r4, [r2, #8] strh r3, [r5, #2] @ movhi - bne .L1855 + bne .L1914 mov r0, r4 bl P2V_block_in_plane mov r3, r4, asl #10 mov r8, r0 - ldr r0, [r6, #-1488] + ldr r0, [r6, #-1492] str r3, [r0, #4] ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1856 + beq .L1915 mov r1, r9 mov r2, #1 bl FlashEraseBlocks -.L1856: +.L1915: mov r1, #1 - ldr r0, [r7, #-1488] + ldr r0, [r7, #-1492] mov r2, r1 bl FlashEraseBlocks - ldr r1, [r7, #-1412] + ldr r1, [r7, #-1416] mov r3, r8, asl #1 ldrh r2, [r1, r3] add r2, r2, #1 strh r2, [r1, r3] @ movhi - ldr r3, [r7, #-1572] + ldr r3, [r7, #-1576] add r3, r3, #1 - str r3, [r7, #-1572] - b .L1855 -.L1854: - ldr r0, .L1863+8 + str r3, [r7, #-1576] + b .L1914 +.L1913: + ldr r0, .L1922+8 bl printk -.L1857: - b .L1857 -.L1855: +.L1916: + b .L1916 +.L1914: sub r3, r4, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L1858 - ldr r3, .L1863+4 + bls .L1917 + ldr r3, .L1922+4 mov r1, r4 - ldr r0, .L1863+12 + ldr r0, .L1922+12 ldrh r2, [r3, #6] bl printk - b .L1853 -.L1858: + b .L1912 +.L1917: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1864: +.L1923: .align 2 -.L1863: +.L1922: .word .LANCHOR2 - .word .LANCHOR2-1236 - .word .LC35 - .word .LC36 + .word .LANCHOR2-1240 + .word .LC37 + .word .LC38 .fnend .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 2 @@ -10360,35 +10668,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1871 + ldr r3, .L1930 str lr, [sp, #-4]! .save {lr} movw lr, #65535 - ldr ip, [r3, #-1352] + ldr ip, [r3, #-1356] ldr r2, [r0] - ldr r3, .L1871+4 + ldr r3, .L1930+4 rsb r0, ip, r2 mov r0, r0, asr #1 mul r3, r3, r0 mov r0, #6 uxth r3, r3 -.L1867: +.L1926: cmp r1, r3 - beq .L1868 + beq .L1927 ldrh r3, [r2] cmp r3, lr - beq .L1869 + beq .L1928 mla r2, r0, r3, ip - b .L1867 -.L1868: + b .L1926 +.L1927: mov r0, #1 ldr pc, [sp], #4 -.L1869: +.L1928: mov r0, #0 ldr pc, [sp], #4 -.L1872: +.L1931: .align 2 -.L1871: +.L1930: .word .LANCHOR2 .word -1431655765 .fnend @@ -10403,41 +10711,41 @@ insert_data_list: stmfd sp!, {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 r2, .L1890 - sub r5, r2, #1712 - ldrh r3, [r5, #-12] + ldr r2, .L1949 + sub r5, r2, #1728 + ldrh r3, [r5] cmp r3, r0 - bls .L1875 + bls .L1934 mov lr, #6 - ldr r6, [r2, #-1352] + ldr r6, [r2, #-1356] mul lr, lr, r0 mvn ip, #0 add r1, r6, lr strh ip, [r1, #2] @ movhi strh ip, [r6, lr] @ movhi - ldr r3, [r2, #868] + ldr r3, [r2, #864] cmp r3, #0 - beq .L1889 - ldr r8, [r2, #-1404] + beq .L1948 + ldr r8, [r2, #-1408] mov r4, r0, asl #1 mov r10, r2 ldrh r2, [r1, #4] - ldrh r5, [r5, #-12] + ldrh r5, [r5] ldrh r7, [r8, r4] cmp r2, #0 str r5, [sp] mulne ip, r2, r7 - ldr r7, [r10, #-1352] - ldr r2, .L1890+4 + ldr r7, [r10, #-1356] + ldr r2, .L1949+4 rsb r9, r7, r3 mov r9, r9, asr #1 mul r2, r2, r9 - ldr r9, [r10, #-1412] + ldr r9, [r10, #-1416] add r4, r9, r4 str r4, [sp, #4] mov r4, #0 uxth r2, r2 -.L1884: +.L1943: add r4, r4, #1 ldr r5, [sp] uxth r4, r4 @@ -10447,7 +10755,7 @@ insert_data_list: cmp r0, r2 orreq r5, r5, #1 cmp r5, #0 - bne .L1875 + bne .L1934 mov r10, r2, asl #1 ldrh r5, [r3, #4] ldrh fp, [r8, r10] @@ -10455,56 +10763,56 @@ insert_data_list: mvneq r5, #0 mulne r5, r5, fp cmp r5, ip - bne .L1880 + bne .L1939 ldr r5, [sp, #4] ldrh r10, [r9, r10] ldrh r5, [r5] cmp r10, r5 - bcc .L1882 - b .L1881 -.L1880: - bhi .L1881 -.L1882: + bcc .L1941 + b .L1940 +.L1939: + bhi .L1940 +.L1941: ldrh r5, [r3] movw r10, #65535 cmp r5, r10 streqh r2, [r1, #2] @ movhi streqh r0, [r3] @ movhi - ldreq r3, .L1890 - streq r1, [r3, #872] - beq .L1875 -.L1883: + ldreq r3, .L1949 + streq r1, [r3, #868] + beq .L1934 +.L1942: mov r3, #6 mov r2, r5 mla r3, r3, r5, r7 - b .L1884 -.L1881: + b .L1943 +.L1940: strh r2, [r6, lr] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L1890 - ldr ip, [r2, #868] + ldr r2, .L1949 + ldr ip, [r2, #864] cmp r3, ip - bne .L1885 + bne .L1944 strh r0, [r3, #2] @ movhi -.L1889: - str r1, [r2, #868] - b .L1875 -.L1885: +.L1948: + str r1, [r2, #864] + b .L1934 +.L1944: ldrh ip, [r3, #2] - ldr r1, [r2, #-1352] + ldr r1, [r2, #-1356] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L1875: +.L1934: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1891: +.L1950: .align 2 -.L1890: +.L1949: .word .LANCHOR2 .word -1431655765 .fnend @@ -10519,15 +10827,15 @@ INSERT_DATA_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L1894 + ldr r2, .L1953 ldrh r3, [r2] add r3, r3, #1 strh r3, [r2] @ movhi ldmfd sp!, {r3, pc} -.L1895: +.L1954: .align 2 -.L1894: - .word .LANCHOR2+876 +.L1953: + .word .LANCHOR2+872 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST .align 2 @@ -10541,67 +10849,67 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r4, #65535 cmp r0, r4 - beq .L1897 - ldr r2, .L1905 + beq .L1956 + ldr r2, .L1964 mov lr, #6 mul r6, lr, r0 mvn r3, #0 - ldr r7, [r2, #-1352] + ldr r7, [r2, #-1356] mov r5, r2 add ip, r7, r6 strh r3, [ip, #2] @ movhi strh r3, [r7, r6] @ movhi - ldr r3, [r2, #880] + ldr r3, [r2, #876] cmp r3, #0 - beq .L1904 - ldr r9, [r2, #-1412] + beq .L1963 + ldr r9, [r2, #-1416] mov r2, r0, asl #1 - ldr r8, [r5, #-1352] + ldr r8, [r5, #-1356] rsb r1, r8, r3 ldrh r10, [r9, r2] - ldr r2, .L1905+4 + ldr r2, .L1964+4 mov r1, r1, asr #1 mul r1, r2, r1 uxth r2, r1 -.L1901: +.L1960: mov r1, r2, asl #1 ldrh r1, [r9, r1] cmp r1, r10 - bcs .L1899 + bcs .L1958 ldrh r1, [r3] cmp r1, r4 streqh r2, [ip, #2] @ movhi streqh r0, [r3] @ movhi - beq .L1897 -.L1900: + beq .L1956 +.L1959: mla r3, lr, r1, r8 mov r2, r1 - b .L1901 -.L1899: + b .L1960 +.L1958: ldrh r1, [r3, #2] strh r1, [ip, #2] @ movhi strh r2, [r7, r6] @ movhi - ldr r1, [r5, #880] - ldr r2, .L1905 + ldr r1, [r5, #876] + ldr r2, .L1964 cmp r3, r1 - bne .L1902 + bne .L1961 strh r0, [r3, #2] @ movhi -.L1904: - str ip, [r2, #880] - b .L1897 -.L1902: +.L1963: + str ip, [r2, #876] + b .L1956 +.L1961: ldrh ip, [r3, #2] - ldr r1, [r2, #-1352] + ldr r1, [r2, #-1356] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L1897: +.L1956: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1906: +.L1965: .align 2 -.L1905: +.L1964: .word .LANCHOR2 .word -1431655765 .fnend @@ -10616,15 +10924,15 @@ INSERT_FREE_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L1909 + ldr r2, .L1968 ldrh r3, [r2] add r3, r3, #1 strh r3, [r2] @ movhi ldmfd sp!, {r3, pc} -.L1910: +.L1969: .align 2 -.L1909: - .word .LANCHOR2+884 +.L1968: + .word .LANCHOR2+880 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST .align 2 @@ -10637,15 +10945,15 @@ List_remove_node: stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov ip, #6 - ldr r4, .L1917 + ldr r4, .L1976 movw r5, #65535 mul r1, ip, r1 ldr r3, [r0] - ldr r2, [r4, #-1352] + ldr r2, [r4, #-1356] add lr, r2, r1 cmp lr, r3 ldrh r3, [r2, r1] - bne .L1912 + bne .L1971 cmp r3, r5 mlane r3, ip, r3, r2 moveq r3, #0 @@ -10653,33 +10961,33 @@ List_remove_node: strne r3, [r0] mvnne r0, #0 strneh r0, [r3, #2] @ movhi - b .L1914 -.L1912: + b .L1973 +.L1971: cmp r3, r5 ldrh r0, [lr, #2] - bne .L1915 + bne .L1974 cmp r0, r3 mulne r0, ip, r0 mvnne r3, #0 strneh r3, [r2, r0] @ movhi - b .L1914 -.L1915: + b .L1973 +.L1974: mla r3, ip, r3, r2 strh r0, [r3, #2] @ movhi ldrh r5, [lr, #2] ldrh r0, [r2, r1] - ldr r3, [r4, #-1352] + ldr r3, [r4, #-1356] mul ip, ip, r5 strh r0, [r3, ip] @ movhi -.L1914: +.L1973: mvn r3, #0 mov r0, #0 strh r3, [r2, r1] @ movhi strh r3, [lr, #2] @ movhi ldmfd sp!, {r4, r5, pc} -.L1918: +.L1977: .align 2 -.L1917: +.L1976: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -10692,19 +11000,19 @@ List_pop_index_node: @ frame_needed = 0, uses_anonymous_args = 0 ldr r3, [r0] cmp r3, #0 - beq .L1925 - ldr r2, .L1928 + beq .L1984 + ldr r2, .L1987 movw ip, #65535 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 - ldr r4, [r2, #-1352] -.L1921: + ldr r4, [r2, #-1356] +.L1980: cmp r1, #0 - bne .L1922 -.L1924: + bne .L1981 +.L1983: rsb r4, r4, r3 - ldr r3, .L1928+4 + ldr r3, .L1987+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -10712,20 +11020,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 ldmfd sp!, {r4, pc} -.L1922: +.L1981: ldrh r2, [r3] cmp r2, ip - beq .L1924 + beq .L1983 sub r1, r1, #1 mla r3, lr, r2, r4 uxth r1, r1 - b .L1921 -.L1925: + b .L1980 +.L1984: movw r0, #65535 bx lr -.L1929: +.L1988: .align 2 -.L1928: +.L1987: .word .LANCHOR2 .word -1431655765 .fnend @@ -10738,35 +11046,35 @@ List_get_gc_head_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1937 - ldr r3, [r2, #868] + ldr r2, .L1996 + ldr r3, [r2, #864] cmp r3, #0 - ldrne r1, [r2, #-1352] + ldrne r1, [r2, #-1356] movne ip, #6 movwne r2, #65535 - beq .L1935 -.L1932: + beq .L1994 +.L1991: cmp r0, #0 - beq .L1933 + beq .L1992 ldrh r3, [r3] cmp r3, r2 subne r0, r0, #1 mlane r3, ip, r3, r1 uxthne r0, r0 - bne .L1932 -.L1935: + bne .L1991 +.L1994: movw r0, #65535 bx lr -.L1933: +.L1992: rsb r3, r1, r3 - ldr r0, .L1937+4 + ldr r0, .L1996+4 mov r3, r3, asr #1 mul r0, r0, r3 uxth r0, r0 bx lr -.L1938: +.L1997: .align 2 -.L1937: +.L1996: .word .LANCHOR2 .word -1431655765 .fnend @@ -10778,29 +11086,29 @@ List_update_data_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1948 - add r2, r3, #888 + ldr r3, .L2007 + add r2, r3, #884 ldrh r2, [r2] cmp r2, r0 - beq .L1947 - add r2, r3, #936 + beq .L2006 + add r2, r3, #932 ldrh r2, [r2] cmp r2, r0 - beq .L1947 - add r2, r3, #984 + beq .L2006 + add r2, r3, #980 ldrh r2, [r2] cmp r2, r0 - beq .L1947 + beq .L2006 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 mul lr, lr, r0 - ldr r1, [r3, #-1352] - ldr r2, [r3, #868] + ldr r1, [r3, #-1356] + ldr r2, [r3, #864] add ip, r1, lr cmp ip, r2 - beq .L1940 - ldr r4, [r3, #-1404] + beq .L1999 + ldr r4, [r3, #-1408] mov r3, r0, asl #1 ldrh r2, [r4, r3] ldrh r3, [ip, #4] @@ -10810,14 +11118,14 @@ List_update_data_list: mvneq r2, #0 movw r3, #65535 cmp ip, r3 - bne .L1942 + bne .L2001 ldrh r3, [r1, lr] cmp r3, ip - beq .L1940 -.L1942: + beq .L1999 +.L2001: mov r3, #6 mul ip, r3, ip - ldr r3, .L1948+4 + ldr r3, .L2007+4 add r1, r1, ip mov lr, ip, asr #1 mul r3, r3, lr @@ -10828,30 +11136,30 @@ List_update_data_list: mulne r3, r3, lr mvneq r3, #0 cmp r2, r3 - bcs .L1940 + bcs .L1999 mov r4, r0 - ldr r0, .L1948+8 + ldr r0, .L2007+8 mov r1, r4 bl List_remove_node - ldr r2, .L1948+12 + ldr r2, .L2007+12 mov r0, r4 ldrh r3, [r2] sub r3, r3, #1 strh r3, [r2] @ movhi bl INSERT_DATA_LIST -.L1940: +.L1999: mov r0, #0 ldmfd sp!, {r4, pc} -.L1947: +.L2006: mov r0, #0 bx lr -.L1949: +.L2008: .align 2 -.L1948: +.L2007: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2+868 - .word .LANCHOR2+876 + .word .LANCHOR2+864 + .word .LANCHOR2+872 .fnend .size List_update_data_list, .-List_update_data_list .align 2 @@ -10873,19 +11181,19 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r2, #0 -.L1951: +.L2010: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L1971 + bls .L2030 ldr r0, [r6, r3, asl #2] mov r1, #0 ubfx r0, r0, #10, #16 -.L1952: +.L2011: ldrh ip, [r4, #10] uxth r3, r1 cmp ip, r3 - bls .L1972 + bls .L2031 mov r3, r3, asl #1 add r1, r1, #1 ldrh ip, [r7, r3] @@ -10898,50 +11206,50 @@ ftl_free_no_use_map_blk: ldrneh ip, [r5, r3] addne ip, ip, #1 strneh ip, [r5, r3] @ movhi - b .L1952 -.L1972: + b .L2011 +.L2031: add r2, r2, #1 - b .L1951 -.L1971: - ldr r3, .L1974 + b .L2010 +.L2030: + ldr r3, .L2033 mov r8, #0 mov r1, r8 mov fp, r8 - ldrh r2, [r3, #-14] + ldrh r2, [r3, #-2] ldrh r3, [r4] mov r3, r3, asl #1 strh r2, [r5, r3] @ movhi ldrh r9, [r5] -.L1956: +.L2015: ldrh r3, [r4, #10] uxth r6, r8 cmp r3, r6 - bls .L1973 + bls .L2032 mov r2, r6, asl #1 ldrh r3, [r5, r2] cmp r9, r3 - bls .L1957 + bls .L2016 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 - bne .L1958 - b .L1959 -.L1957: + bne .L2017 + b .L2018 +.L2016: cmp r3, #0 - bne .L1959 + bne .L2018 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 movne r6, r1 - beq .L1959 - b .L1961 -.L1958: + beq .L2018 + b .L2020 +.L2017: cmp r3, #0 movne r1, r6 movne r9, r3 - bne .L1959 + bne .L2018 mov r9, r3 -.L1961: +.L2020: mov r1, #1 bl FtlFreeSysBlkQueueIn strh fp, [r10] @ movhi @@ -10949,16 +11257,16 @@ ftl_free_no_use_map_blk: mov r1, r6 sub r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1959: +.L2018: add r8, r8, #1 - b .L1956 -.L1973: + b .L2015 +.L2032: mov r0, r1 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1975: +.L2034: .align 2 -.L1974: - .word .LANCHOR2-1648 +.L2033: + .word .LANCHOR2-1664 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .align 2 @@ -10973,16 +11281,16 @@ ftl_map_blk_alloc_new_blk: mov r3, #0 ldrh r1, [r0, #10] ldr r2, [r0, #12] -.L1977: +.L2036: uxth r5, r3 cmp r5, r1 - bcs .L1980 + bcs .L2039 mov r7, r2 add r3, r3, #1 ldrh r6, [r7] add r2, r2, #2 cmp r6, #0 - bne .L1977 + bne .L2036 mov r4, r0 bl FtlFreeSysBlkQueueOut movw r2, #65533 @@ -10991,14 +11299,14 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7] @ movhi uxth r3, r3 cmp r3, r2 - bls .L1978 - ldr r3, .L1984 - ldr r0, .L1984+4 + bls .L2037 + ldr r3, .L2043 + ldr r0, .L2043+4 ldrh r2, [r3, #6] bl printk -.L1979: - b .L1979 -.L1978: +.L2038: + b .L2038 +.L2037: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi add r3, r3, #1 @@ -11007,14 +11315,14 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi add r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1980: +.L2039: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1985: +.L2044: .align 2 -.L1984: - .word .LANCHOR2-1236 - .word .LC37 +.L2043: + .word .LANCHOR2-1240 + .word .LC39 .fnend .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk .align 2 @@ -11028,67 +11336,67 @@ FtlMapWritePage: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r0 - ldr fp, .L2005 + ldr fp, .L2064 mov r8, r1 - ldr r9, .L2005+4 + ldr r9, .L2064+4 mov r5, #0 str r2, [sp] mov r10, fp -.L1987: - ldr r3, [fp, #-1588] - ldr r6, .L2005 +.L2046: + ldr r3, [fp, #-1592] + ldr r6, .L2064 add r3, r3, #1 - str r3, [fp, #-1588] + str r3, [fp, #-1592] ldrh r3, [r9] ldrh r2, [r4, #2] sub r3, r3, #1 cmp r2, r3 - bge .L1988 + bge .L2047 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L1989 -.L1988: + bne .L2048 +.L2047: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L1989: - ldr r1, [r10, #-1276] +.L2048: + ldr r1, [r10, #-1280] cmp r1, #0 - bne .L1990 + bne .L2049 ldrh r3, [r4] ldr r2, [r4, #12] - ldr r0, [fp, #-1440] + ldr r0, [fp, #-1444] mov r3, r3, asl #1 ldrh r7, [r2, r3] mov r2, #16 ldrh r3, [r4, #2] - str r0, [fp, #-1260] + str r0, [fp, #-1264] orr r3, r3, r7, asl #10 - str r3, [fp, #-1268] + str r3, [fp, #-1272] ldr r3, [sp] - str r3, [fp, #-1264] + str r3, [fp, #-1268] bl ftl_memset ldr r2, [r4, #28] - ldr r3, [fp, #-1260] + ldr r3, [fp, #-1264] str r2, [r3, #4] strh r8, [r3, #8] @ movhi ldrh r2, [r4, #4] strh r7, [r3, #2] @ movhi strh r2, [r3] @ movhi - ldr r2, .L2005+8 + ldr r2, .L2064+8 ldrb r2, [r2] @ zero_extendqisi2 cmp r2, #0 - beq .L1991 - ldr r2, .L2005+12 - ldr r0, [fp, #-1264] + beq .L2050 + ldr r2, .L2064+12 + ldr r0, [fp, #-1268] str r3, [sp, #4] ldrh r1, [r2] bl js_hash ldr r3, [sp, #4] str r0, [r3, #12] -.L1991: +.L2050: mov r1, #1 - ldr r0, .L2005+16 + ldr r0, .L2064+16 mov r2, r1 mov r3, r1 bl FlashProgPages @@ -11096,12 +11404,12 @@ FtlMapWritePage: add r3, r3, #1 uxth r3, r3 strh r3, [r4, #2] @ movhi - ldr r2, [r10, #-1272] + ldr r2, [r10, #-1276] cmn r2, #1 - bne .L1992 - ldr r0, .L2005+20 + bne .L2051 + ldr r0, .L2064+20 add r5, r5, #1 - ldr r1, [fp, #-1268] + ldr r1, [fp, #-1272] bl printk ldrh r3, [r4, #2] uxth r5, r5 @@ -11110,46 +11418,46 @@ FtlMapWritePage: subls r3, r3, #1 strlsh r3, [r4, #2] @ movhi cmp r5, #3 - bls .L1987 - ldr r0, .L2005+24 + bls .L2046 + ldr r0, .L2064+24 mov r2, r5 - ldr r1, [r6, #-1268] + ldr r1, [r6, #-1272] bl printk mov r3, #1 - str r3, [r6, #-1276] - b .L1990 -.L1992: + str r3, [r6, #-1280] + b .L2049 +.L2051: cmp r2, #0 strneh r7, [r4, #40] @ movhi cmp r2, #256 cmpne r3, #1 - beq .L1996 + beq .L2055 ldr r3, [r4, #36] cmp r3, #0 - beq .L1997 -.L1996: + beq .L2056 +.L2055: mov r3, #0 str r3, [r4, #36] - b .L1987 -.L1997: - ldr r2, [r6, #-1268] + b .L2046 +.L2056: + ldr r2, [r6, #-1272] ldr r3, [r4, #24] str r2, [r3, r8, asl #2] -.L1990: +.L2049: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2006: +.L2065: .align 2 -.L2005: +.L2064: .word .LANCHOR2 - .word .LANCHOR2-1662 + .word .LANCHOR2-1666 .word .LANCHOR0 - .word .LANCHOR2-1654 - .word .LANCHOR2-1272 - .word .LC38 - .word .LC39 + .word .LANCHOR2-1658 + .word .LANCHOR2-1276 + .word .LC40 + .word .LC41 .fnend .size FtlMapWritePage, .-FtlMapWritePage .align 2 @@ -11169,17 +11477,17 @@ ftl_map_blk_gc: ldrh r3, [r4, #10] ldrh r2, [r4, #8] sub r3, r3, #4 - ldr r8, .L2021 + ldr r8, .L2080 cmp r2, r3 - blt .L2008 + blt .L2067 uxth r0, r0 mov r0, r0, asl #1 ldrh r10, [r5, r0] cmp r10, #0 - beq .L2008 + beq .L2067 ldr r3, [r4, #32] cmp r3, #0 - bne .L2008 + bne .L2067 mov r2, #1 str r2, [r4, #32] strh r3, [r5, r0] @ movhi @@ -11187,90 +11495,90 @@ ftl_map_blk_gc: ldrh r2, [r4, #2] sub r3, r3, #1 strh r3, [r4, #8] @ movhi - ldrh r3, [r8, #-14] + ldrh r3, [r8, #-2] cmp r2, r3 - bcc .L2009 + bcc .L2068 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2009: - ldr r5, .L2021+4 +.L2068: + ldr r5, .L2080+4 mov fp, #0 -.L2010: +.L2069: ldrh r3, [r4, #6] uxth r6, fp cmp r3, r6 - bls .L2020 + bls .L2079 ldr r3, [r7, r6, asl #2] add ip, r7, r6, asl #2 cmp r10, r3, lsr #10 - bne .L2011 - ldr r3, [r5, #-1468] + bne .L2070 + ldr r3, [r5, #-1472] mov r1, #1 - ldr r9, [r5, #-1440] + ldr r9, [r5, #-1444] mov r2, r1 - ldr r0, .L2021+8 - str r3, [r5, #-1264] - str r9, [r5, #-1260] + ldr r0, .L2080+8 + str r3, [r5, #-1268] + str r9, [r5, #-1264] ldr r3, [r7, r6, asl #2] str ip, [sp, #4] - str r3, [r5, #-1268] + str r3, [r5, #-1272] bl FlashReadPages - ldr r3, [r5, #-1272] + ldr r3, [r5, #-1276] cmn r3, #1 - ldr r3, .L2021+4 + ldr r3, .L2080+4 ldr ip, [sp, #4] - bne .L2012 -.L2014: + bne .L2071 +.L2073: mov r2, #0 - ldr r0, .L2021+12 + ldr r0, .L2080+12 str r2, [ip] - ldr r1, [r3, #-1268] + ldr r1, [r3, #-1272] ldrh r2, [r9, #8] str r3, [sp, #4] bl printk mov r2, #1 ldr r3, [sp, #4] - str r2, [r3, #-1276] - b .L2013 -.L2012: + str r2, [r3, #-1280] + b .L2072 +.L2071: ldrh r1, [r9, #8] cmp r1, r6 - bne .L2014 + bne .L2073 ldrh r0, [r9] ldrh r2, [r4, #4] cmp r0, r2 - bne .L2014 + bne .L2073 mov r0, r4 - ldr r2, [r5, #-1264] + ldr r2, [r5, #-1268] bl FtlMapWritePage -.L2011: +.L2070: add fp, fp, #1 - b .L2010 -.L2020: + b .L2069 +.L2079: mov r0, r10 mov r1, #1 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L2008: +.L2067: ldrh r2, [r4, #2] - ldrh r3, [r8, #-14] + ldrh r3, [r8, #-2] cmp r2, r3 - bcc .L2013 + bcc .L2072 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2013: +.L2072: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2022: +.L2081: .align 2 -.L2021: - .word .LANCHOR2-1648 +.L2080: + .word .LANCHOR2-1664 .word .LANCHOR2 - .word .LANCHOR2-1272 - .word .LC40 + .word .LANCHOR2-1276 + .word .LC42 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 @@ -11280,19 +11588,19 @@ Ftl_write_map_blk_to_last_page: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - ldr r5, .L2035 + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + .save {r3, r4, r5, r6, r7, r8, r9, lr} + ldr r5, .L2094 ldr r7, [r0, #12] ldr r8, [r0, #24] - ldr r6, [r5, #-1276] + ldr r6, [r5, #-1280] cmp r6, #0 - bne .L2024 + bne .L2083 ldrh r3, [r0] movw r2, #65535 mov r4, r0 cmp r3, r2 - bne .L2025 + bne .L2084 ldrh r3, [r0, #8] add r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -11303,63 +11611,64 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r6, [r4] @ movhi str r3, [r4, #28] - b .L2024 -.L2025: + b .L2083 +.L2084: mov r3, r3, asl #1 - sub r10, r5, #1648 mov r1, #255 ldrh r9, [r7, r3] ldrh r3, [r0, #2] - ldr r7, [r5, #-1440] + ldr r7, [r5, #-1444] orr r3, r3, r9, asl #10 + str r3, [r5, #-1272] + ldr r3, [r5, #-1476] + str r7, [r5, #-1264] str r3, [r5, #-1268] - ldr r3, [r5, #-1472] - str r7, [r5, #-1260] - str r3, [r5, #-1264] ldr r3, [r0, #28] str r3, [r7, #4] - ldr r3, .L2035+4 + ldr r3, .L2094+4 strh r3, [r7, #8] @ movhi ldrh r3, [r0, #4] strh r9, [r7, #2] @ movhi strh r3, [r7] @ movhi - ldrh r2, [r10, #-14] - ldr r0, [r5, #-1472] + sub r3, r5, #1664 + ldr r0, [r5, #-1476] + ldrh r2, [r3, #-2] mov r2, r2, asl #3 bl ftl_memset - mov r2, r6 -.L2026: + mov r3, r6 +.L2085: ldrh r1, [r4, #6] - uxth r3, r2 - cmp r1, r3 - bls .L2034 - ldr r1, [r8, r3, asl #2] + uxth r2, r6 + cmp r1, r2 + bls .L2093 + ldr r1, [r8, r2, asl #2] cmp r9, r1, lsr #10 - bne .L2027 + bne .L2086 + add r3, r3, #1 + ldr r1, [r5, #-1476] + uxth r3, r3 + str r2, [r1, r3, asl #3] + ldr r1, [r8, r2, asl #2] + ldr r2, [r5, #-1476] + add r2, r2, r3, asl #3 + str r1, [r2, #4] +.L2086: add r6, r6, #1 - ldr r1, [r5, #-1472] - uxth r6, r6 - str r3, [r1, r6, asl #3] - ldr r1, [r8, r3, asl #2] - ldr r3, [r5, #-1472] - add r3, r3, r6, asl #3 - str r1, [r3, #4] -.L2027: - add r2, r2, #1 - b .L2026 -.L2034: - ldr r3, .L2035+8 + b .L2085 +.L2093: + ldr r3, .L2094+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2029 - ldr r0, [r5, #-1264] - ldrh r1, [r10, #-6] + beq .L2088 + ldr r3, .L2094+12 + ldr r0, [r5, #-1268] + ldrh r1, [r3, #-10] bl js_hash str r0, [r7, #12] -.L2029: +.L2088: mov r1, #1 mov r3, #0 - ldr r0, .L2035+12 + ldr r0, .L2094+16 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -11367,16 +11676,17 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2024: +.L2083: mov r0, #0 - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2036: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} +.L2095: .align 2 -.L2035: +.L2094: .word .LANCHOR2 .word -1291 .word .LANCHOR0 - .word .LANCHOR2-1272 + .word .LANCHOR2-1648 + .word .LANCHOR2-1276 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 @@ -11389,25 +11699,25 @@ flush_l2p_region: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #12 - ldr r5, .L2039 + ldr r5, .L2098 mul r4, r4, r0 add r0, r5, #1024 - ldr r3, [r5, #-1360] - add r0, r0, #8 + ldr r3, [r5, #-1364] + add r0, r0, #4 add r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] bl FtlMapWritePage - ldr r3, [r5, #-1360] + ldr r3, [r5, #-1364] mov r0, #0 add r4, r3, r4 ldr r3, [r4, #4] bic r3, r3, #-2147483648 str r3, [r4, #4] ldmfd sp!, {r3, r4, r5, pc} -.L2040: +.L2099: .align 2 -.L2039: +.L2098: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -11418,74 +11728,75 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, lr} - .save {r4, r5, r6, r7, lr} + ldr r3, .L2116 mov r1, #0 - ldr r4, .L2057 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + sub r2, r3, #1616 + ldr r3, [r3, #-1364] mov ip, #12 + ldrh r2, [r2, #-14] movw lr, #65535 - sub r3, r4, #1616 - ldrh r2, [r3, #-10] - ldr r3, [r4, #-1360] -.L2042: +.L2101: uxth r0, r1 cmp r0, r2 - bcs .L2054 + bcs .L2113 add r1, r1, #1 - mla r5, ip, r1, r3 - ldrh r5, [r5, #-12] - cmp r5, lr - bne .L2042 - ldmfd sp!, {r4, r5, r6, r7, pc} -.L2054: + mla r4, ip, r1, r3 + ldrh r4, [r4, #-12] + cmp r4, lr + bne .L2101 + ldmfd sp!, {r4, r5, r6, pc} +.L2113: mov r0, r2 mov r1, #0 mov ip, #-2147483648 - mov r6, #12 -.L2045: - uxth r5, r1 - cmp r5, r2 - bcs .L2055 - mla lr, r6, r1, r3 + mov r5, #12 +.L2104: + uxth r4, r1 + cmp r4, r2 + bcs .L2114 + mla lr, r5, r1, r3 add r1, r1, #1 ldr lr, [lr, #4] cmp lr, ip - mvn r7, lr - mov r7, r7, lsr #31 - movcs r7, #0 - cmp r7, #0 + mvn r6, lr + mov r6, r6, lsr #31 + movcs r6, #0 + cmp r6, #0 movne ip, lr - movne r0, r5 - b .L2045 -.L2055: + movne r0, r4 + b .L2104 +.L2114: cmp r0, r2 - ldmccfd sp!, {r4, r5, r6, r7, pc} - movw r1, #1076 + ldmccfd sp!, {r4, r5, r6, pc} + ldr r1, .L2116+4 mov r0, r2 - ldrh r5, [r4, r1] mvn ip, #0 + ldrh r5, [r1] mov r1, #0 -.L2048: +.L2107: uxth lr, r1 cmp lr, r2 - bcs .L2056 + bcs .L2115 ldr r4, [r3, #4] cmp r4, ip - bcs .L2049 + bcs .L2108 ldrh r6, [r3] cmp r6, r5 movne ip, r4 movne r0, lr -.L2049: +.L2108: add r1, r1, #1 add r3, r3, #12 - b .L2048 -.L2056: - ldmfd sp!, {r4, r5, r6, r7, pc} -.L2058: + b .L2107 +.L2115: + ldmfd sp!, {r4, r5, r6, pc} +.L2117: .align 2 -.L2057: +.L2116: .word .LANCHOR2 + .word .LANCHOR2+1072 .fnend .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -11499,41 +11810,41 @@ log2phys: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L2076 + ldr r6, .L2135 sub r3, r6, #1648 str r3, [sp, #8] - ldr ip, [r6, #-1280] - ldrh r10, [r3, #-8] + ldr ip, [r6, #-1284] + ldrh r10, [r3, #-12] cmp r0, ip - bcs .L2060 + bcs .L2119 add r10, r10, #7 mov fp, r6 mov r6, r0, lsr r10 sub r3, fp, #1616 str r2, [sp, #12] mov r9, r1 - ldrh r2, [r3, #-10] + ldrh r2, [r3, #-14] uxth r6, r6 str r0, [sp, #4] mov r3, #0 - ldr r4, [fp, #-1360] + ldr r4, [fp, #-1364] mov r1, #12 - b .L2061 -.L2060: + b .L2120 +.L2119: cmp r2, #0 mvn r0, #0 streq r0, [r1] - b .L2062 -.L2066: + b .L2121 +.L2125: add r3, r3, #1 mla r0, r1, r3, r4 ldrh r0, [r0, #-12] cmp r0, r6 - beq .L2063 -.L2061: + beq .L2122 +.L2120: uxth r7, r3 cmp r7, r2 - bcc .L2066 + bcc .L2125 bl select_l2p_ram_region mov r5, #12 movw r2, #65535 @@ -11542,26 +11853,26 @@ log2phys: add r3, r4, r5 ldrh r1, [r4, r5] cmp r1, r2 - bne .L2075 -.L2067: - ldr r3, [fp, #-1372] - ldr r4, .L2076 + bne .L2134 +.L2126: + ldr r3, [fp, #-1376] + ldr r4, .L2135 ldr r8, [r3, r6, asl #2] cmp r8, #0 - bne .L2068 - ldr r2, [r4, #-1360] + bne .L2127 + ldr r2, [r4, #-1364] mov r1, #255 ldr r3, [sp, #8] add r2, r2, r5 ldr r0, [r2, #8] - ldrh r2, [r3, #-6] + ldrh r2, [r3, #-10] bl ftl_memset - ldr r2, [r4, #-1360] + ldr r2, [r4, #-1364] strh r6, [r2, r5] @ movhi - ldr r2, [r4, #-1360] + ldr r2, [r4, #-1364] add r5, r2, r5 str r8, [r5, #4] -.L2063: +.L2122: ldr r3, [sp, #4] mvn r2, #0 bic r10, r3, r2, asl r10 @@ -11569,29 +11880,29 @@ log2phys: cmp r3, #0 uxth r10, r10 mov r3, #12 - bne .L2064 - ldr r2, [fp, #-1360] + bne .L2123 + ldr r2, [fp, #-1364] mla r3, r3, r7, r2 ldr r3, [r3, #8] ldr r3, [r3, r10, asl #2] str r3, [r9] - b .L2065 -.L2064: + b .L2124 +.L2123: mul r3, r3, r7 - ldr r2, [fp, #-1360] + ldr r2, [fp, #-1364] ldr r1, [r9] add r2, r2, r3 ldr r2, [r2, #8] str r1, [r2, r10, asl #2] - ldr r2, [fp, #-1360] + ldr r2, [fp, #-1364] add r3, r2, r3 ldr r2, [r3, #4] orr r2, r2, #-2147483648 str r2, [r3, #4] - movw r3, #1076 - strh r6, [fp, r3] @ movhi -.L2065: - ldr r2, [fp, #-1360] + ldr r3, .L2135+4 + strh r6, [r3] @ movhi +.L2124: + ldr r2, [fp, #-1364] mov r3, #12 mov r0, #0 mla r7, r3, r7, r2 @@ -11599,82 +11910,83 @@ log2phys: cmn r3, #1 addne r3, r3, #1 strne r3, [r7, #4] - b .L2062 -.L2075: + b .L2121 +.L2134: ldr r3, [r3, #4] cmp r3, #0 - bge .L2067 + bge .L2126 bl flush_l2p_region - b .L2067 -.L2068: - ldr r2, [r4, #-1360] + b .L2126 +.L2127: + ldr r2, [r4, #-1364] mov r1, #1 - ldr r0, .L2076+4 + ldr r0, .L2135+8 add r2, r2, r5 - str r8, [r4, #-1268] + str r8, [r4, #-1272] ldr r2, [r2, #8] + str r2, [r4, #-1268] + ldr r2, [r4, #-1444] str r2, [r4, #-1264] - ldr r2, [r4, #-1440] - str r2, [r4, #-1260] mov r2, r1 bl FlashReadPages - ldr r2, [r4, #-1260] + ldr r2, [r4, #-1264] ldrh r2, [r2, #8] cmp r2, r6 - beq .L2069 + beq .L2128 mov r1, r6 mov r2, r8 - ldr r0, .L2076+8 + ldr r0, .L2135+12 bl printk mov r2, #4 mov r3, r2 - ldr r0, .L2076+12 - ldr r1, [r4, #-1260] + ldr r0, .L2135+16 + ldr r1, [r4, #-1264] bl rknand_print_hex - sub r3, r4, #1616 - ldr r0, .L2076+16 + sub r3, r4, #1632 + ldr r0, .L2135+20 mov r2, #4 - ldrh r3, [r3, #-12] - ldr r1, [r4, #-1372] + ldrh r3, [r3] + ldr r1, [r4, #-1376] bl rknand_print_hex mov r3, #1 - str r3, [r4, #-1276] - b .L2070 -.L2069: - ldr r2, [r4, #-1272] + str r3, [r4, #-1280] + b .L2129 +.L2128: + ldr r2, [r4, #-1276] cmp r2, #256 - bne .L2070 + bne .L2129 mov r1, r6 mov r2, r8 - ldr r0, .L2076+20 + ldr r0, .L2135+24 bl printk - ldr r3, [r4, #-1360] - ldr r0, .L2076+24 + ldr r3, [r4, #-1364] + ldr r0, .L2135+28 mov r1, r6 add r3, r3, r5 ldr r2, [r3, #8] bl FtlMapWritePage -.L2070: - ldr r3, [fp, #-1360] +.L2129: + ldr r3, [fp, #-1364] mov r1, #0 add r2, r3, r5 str r1, [r2, #4] strh r6, [r3, r5] @ movhi - b .L2063 -.L2062: + b .L2122 +.L2121: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2077: +.L2136: .align 2 -.L2076: +.L2135: .word .LANCHOR2 - .word .LANCHOR2-1272 - .word .LC41 - .word .LC17 - .word .LC42 + .word .LANCHOR2+1072 + .word .LANCHOR2-1276 .word .LC43 - .word .LANCHOR2+1032 + .word .LC18 + .word .LC44 + .word .LC45 + .word .LANCHOR2+1028 .fnend .size log2phys, .-log2phys .align 2 @@ -11687,17 +11999,17 @@ FtlVendorPartWrite: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r2 - ldr r6, .L2089 + ldr r6, .L2148 add r2, r0, r1 mov r7, r0 .pad #60 sub sp, sp, #60 mov r4, r1 - ldrh r3, [r6, #-20] - ldrh r5, [r6, #-8] + ldrh r3, [r6, #-24] + ldrh r5, [r6, #-12] cmp r2, r3 mvnhi r0, #0 - bhi .L2079 + bhi .L2138 mov r5, r7, lsr r5 mov r3, #0 str r3, [sp] @@ -11705,14 +12017,14 @@ FtlVendorPartWrite: mov r10, r5, asl #2 str r3, [sp, #4] mov r8, r3 -.L2080: +.L2139: cmp r4, #0 - beq .L2088 + beq .L2147 ldr r3, [sp, #4] mov r0, r7 - ldr r3, [r3, #-1376] + ldr r3, [r3, #-1380] ldr ip, [r3, r10] - ldr r3, .L2089+4 + ldr r3, .L2148+4 str ip, [sp, #12] ldrh r2, [r3] mov r1, r2 @@ -11729,8 +12041,8 @@ FtlVendorPartWrite: cmpne ip, #0 movne r1, #1 moveq r1, #0 - beq .L2082 - ldr r2, [r8, #-1464] + beq .L2141 + ldr r2, [r8, #-1468] mov r1, #1 add r0, sp, #20 str ip, [sp, #24] @@ -11739,15 +12051,15 @@ FtlVendorPartWrite: str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2083 -.L2082: - ldr r2, .L2089+8 - ldr r0, [r8, #-1464] + b .L2142 +.L2141: + ldr r2, .L2148+8 + ldr r0, [r8, #-1468] ldrh r2, [r2] bl ftl_memset -.L2083: +.L2142: mov ip, r6, asl #9 - ldr r0, [r8, #-1464] + ldr r0, [r8, #-1468] uxth r9, r9 mov r1, fp mov r2, ip @@ -11756,9 +12068,9 @@ FtlVendorPartWrite: rsb r4, r6, r4 bl ftl_memcpy mov r1, r5 - ldr r0, .L2089+12 + ldr r0, .L2148+12 add r5, r5, #1 - ldr r2, [r8, #-1464] + ldr r2, [r8, #-1468] add r7, r7, r6 bl FtlMapWritePage add r10, r10, #4 @@ -11768,20 +12080,20 @@ FtlVendorPartWrite: mvneq r3, #0 add fp, fp, ip str r3, [sp] - b .L2080 -.L2088: + b .L2139 +.L2147: ldr r0, [sp] -.L2079: +.L2138: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2090: +.L2149: .align 2 -.L2089: +.L2148: .word .LANCHOR2-1648 + .word .LANCHOR2-1662 .word .LANCHOR2-1658 - .word .LANCHOR2-1654 - .word .LANCHOR2+1080 + .word .LANCHOR2+1076 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 @@ -11794,17 +12106,17 @@ FtlVendorPartRead: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r2 - ldr r6, .L2103 + ldr r6, .L2162 add r2, r0, r1 mov r8, r0 .pad #60 sub sp, sp, #60 mov r7, r1 - ldrh r3, [r6, #-20] - ldrh r5, [r6, #-8] + ldrh r3, [r6, #-24] + ldrh r5, [r6, #-12] cmp r2, r3 mvnhi r0, #0 - bhi .L2092 + bhi .L2151 add r6, r6, #1648 mov r5, r8, lsr r5 mov r10, r6 @@ -11812,15 +12124,15 @@ FtlVendorPartRead: str r3, [sp, #4] mov r3, #0 str r3, [sp] -.L2093: +.L2152: cmp r7, #0 - beq .L2102 + beq .L2161 ldr r2, [sp, #4] mov r0, r8 - ldr r3, [r6, #-1376] + ldr r3, [r6, #-1380] ldr r3, [r3, r2] str r3, [sp, #12] - ldr r3, .L2103+4 + ldr r3, .L2162+4 ldrh r4, [r3] mov r1, r4 bl __aeabi_uidivmod @@ -11832,8 +12144,8 @@ FtlVendorPartRead: uxthhi r4, r7 cmp r3, #0 mov fp, r4, asl #9 - beq .L2095 - ldr r2, [r10, #-1464] + beq .L2154 + ldr r2, [r10, #-1468] mov r1, #1 add r0, sp, #20 str r3, [sp, #24] @@ -11846,34 +12158,34 @@ FtlVendorPartRead: ldr r2, [sp, #20] ldr r3, [sp] cmn r2, #1 - ldr r2, [r10, #-1272] + ldr r2, [r10, #-1276] mvneq r3, #0 cmp r2, #256 str r3, [sp] ldr r3, [sp, #12] - bne .L2097 + bne .L2156 mov r1, r5 mov r2, r3 - ldr r0, .L2103+8 + ldr r0, .L2162+8 bl printk - ldr r0, .L2103+12 + ldr r0, .L2162+12 mov r1, r5 - ldr r2, [r6, #-1464] + ldr r2, [r6, #-1468] bl FtlMapWritePage -.L2097: +.L2156: ldrh r3, [sp, #8] mov r0, r9 - ldr r1, [r10, #-1464] + ldr r1, [r10, #-1468] mov r2, fp add r1, r1, r3, asl #9 bl ftl_memcpy - b .L2098 -.L2095: + b .L2157 +.L2154: mov r0, r9 mov r1, r3 mov r2, fp bl ftl_memset -.L2098: +.L2157: ldr r3, [sp, #4] add r5, r5, #1 rsb r7, r4, r7 @@ -11881,20 +12193,20 @@ FtlVendorPartRead: add r3, r3, #4 add r9, r9, fp str r3, [sp, #4] - b .L2093 -.L2102: + b .L2152 +.L2161: ldr r0, [sp] -.L2092: +.L2151: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2104: +.L2163: .align 2 -.L2103: +.L2162: .word .LANCHOR2-1648 - .word .LANCHOR2-1658 - .word .LC44 - .word .LANCHOR2+1080 + .word .LANCHOR2-1662 + .word .LC46 + .word .LANCHOR2+1076 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 @@ -11904,39 +12216,38 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L2113 - movw r1, #1124 - ldrh r2, [ip, r1] + ldr r3, .L2172 + add r1, r3, #1120 + ldrh r2, [r1] cmp r2, #4 cmpls r0, #0 addeq r2, r2, #1 - streqh r2, [ip, r1] @ movhi + streqh r2, [r1] @ movhi bxeq lr str lr, [sp, #-4]! .save {lr} mov r2, #0 - strh r2, [ip, r1] @ movhi - sub r1, ip, #1712 - str r2, [ip, #1128] - mov r3, ip - ldrh r0, [r1, #-12] - ldr r2, [ip, #-1404] + strh r2, [r1] @ movhi + sub r1, r3, #1728 + str r2, [r3, #1124] movw ip, #65535 + ldrh r0, [r1] + ldr r2, [r3, #-1408] add r0, r2, r0, asl #1 -.L2107: +.L2166: cmp r2, r0 - beq .L2112 + beq .L2171 ldrh r1, [r2], #2 cmp r1, ip - ldrne lr, [r3, #1128] + ldrne lr, [r3, #1124] addne r1, r1, lr - strne r1, [r3, #1128] - b .L2107 -.L2112: + strne r1, [r3, #1124] + b .L2166 +.L2171: ldr pc, [sp], #4 -.L2114: +.L2173: .align 2 -.L2113: +.L2172: .word .LANCHOR2 .fnend .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn @@ -11954,44 +12265,44 @@ FtlMapBlkWriteDumpData: cmp r2, #0 ldr r3, [r0, #24] ldmeqfd sp!, {r4, r5, r6, pc} - ldr r4, .L2122 + ldr r4, .L2181 mov r2, #0 str r2, [r0, #36] - ldr r2, [r4, #-1276] + ldr r2, [r4, #-1280] cmp r2, #0 ldmnefd sp!, {r4, r5, r6, pc} sub r5, r5, #1 mov r6, r0 - ldr r2, [r4, #-1440] - ldr r0, [r4, #-1468] + ldr r2, [r4, #-1444] + ldr r0, [r4, #-1472] uxth r5, r5 - str r2, [r4, #-1260] - str r0, [r4, #-1264] + str r2, [r4, #-1264] + str r0, [r4, #-1268] ldr r3, [r3, r5, asl #2] cmp r3, #0 - str r3, [r4, #-1268] - beq .L2119 + str r3, [r4, #-1272] + beq .L2178 mov r1, #1 - ldr r0, .L2122+4 + ldr r0, .L2181+4 mov r2, r1 bl FlashReadPages - b .L2120 -.L2119: + b .L2179 +.L2178: sub r3, r4, #1648 mov r1, #255 - ldrh r2, [r3, #-6] + ldrh r2, [r3, #-10] bl ftl_memset -.L2120: +.L2179: mov r0, r6 mov r1, r5 - ldr r2, [r4, #-1264] + ldr r2, [r4, #-1268] ldmfd sp!, {r4, r5, r6, lr} b FtlMapWritePage -.L2123: +.L2182: .align 2 -.L2122: +.L2181: .word .LANCHOR2 - .word .LANCHOR2-1272 + .word .LANCHOR2-1276 .fnend .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .align 2 @@ -12003,212 +12314,213 @@ FtlVpcTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldr r4, .L2142 - ldr r3, [r4, #-1276] + ldr r4, .L2201 + ldr r3, [r4, #-1280] cmp r3, #0 - bne .L2126 - ldr r2, [r4, #-1472] - add r5, r4, #820 - ldr r6, [r4, #-1440] + bne .L2185 + ldr r2, [r4, #-1476] + add r5, r4, #816 + ldr r6, [r4, #-1444] mov r1, #255 - ldr r7, .L2142+4 - str r2, [r4, #-1264] - movw r2, #1132 + ldr r7, .L2201+4 + str r2, [r4, #-1268] + movw r2, #1128 ldrh r2, [r4, r2] - str r6, [r4, #-1260] + str r6, [r4, #-1264] str r3, [r6, #12] strh r2, [r6, #2] @ movhi - ldr r2, .L2142+8 + ldr r2, .L2201+8 strh r2, [r6] @ movhi - ldr r2, [r4, #1140] + ldr r2, [r4, #1136] stmib r6, {r2, r3} - ldr r3, .L2142+12 + ldr r3, .L2201+12 + str r3, [r4, #816] + ldr r3, .L2201+16 str r3, [r4, #820] - ldr r3, .L2142+16 - str r3, [r4, #824] ldrh r3, [r7, #6] strh r3, [r5, #8] @ movhi - sub r3, r4, #1696 - ldrh r3, [r3, #-14] - strb r3, [r4, #830] - add r3, r4, #888 + sub r3, r4, #1712 + ldrh r3, [r3, #-2] + strb r3, [r4, #826] + add r3, r4, #884 ldrh r2, [r3] strh r2, [r5, #14] @ movhi ldrh r2, [r3, #2] - ldrb r3, [r4, #894] @ zero_extendqisi2 + ldrb r3, [r4, #890] @ zero_extendqisi2 orr r3, r3, r2, asl #6 strh r3, [r5, #16] @ movhi - ldrb r3, [r4, #896] @ zero_extendqisi2 - strb r3, [r4, #831] - add r3, r4, #936 + ldrb r3, [r4, #892] @ zero_extendqisi2 + strb r3, [r4, #827] + add r3, r4, #932 ldrh r2, [r3] strh r2, [r5, #18] @ movhi ldrh r2, [r3, #2] - ldrb r3, [r4, #942] @ zero_extendqisi2 + ldrb r3, [r4, #938] @ zero_extendqisi2 orr r3, r3, r2, asl #6 strh r3, [r5, #20] @ movhi - ldrb r3, [r4, #944] @ zero_extendqisi2 - strb r3, [r4, #832] - add r3, r4, #984 + ldrb r3, [r4, #940] @ zero_extendqisi2 + strb r3, [r4, #828] + add r3, r4, #980 ldrh r2, [r3] strh r2, [r5, #22] @ movhi ldrh r2, [r3, #2] - ldrb r3, [r4, #990] @ zero_extendqisi2 - ldr r0, [r4, #-1264] + ldrb r3, [r4, #986] @ zero_extendqisi2 + ldr r0, [r4, #-1268] orr r3, r3, r2, asl #6 strh r3, [r5, #24] @ movhi - ldrb r3, [r4, #992] @ zero_extendqisi2 - strb r3, [r4, #833] - ldr r3, [r4, #-1580] - str r3, [r4, #852] - ldr r3, [r4, #-1612] - str r3, [r4, #860] - ldr r3, [r4, #-1608] + ldrb r3, [r4, #988] @ zero_extendqisi2 + strb r3, [r4, #829] + ldr r3, [r4, #-1584] + str r3, [r4, #848] + ldr r3, [r4, #-1616] str r3, [r4, #856] + ldr r3, [r4, #-1612] + str r3, [r4, #852] sub r3, r4, #1536 - ldrh r3, [r3] - strh r3, [r5, #44] @ movhi - sub r3, r4, #1520 - ldrh r3, [r3, #-14] + ldrh r2, [r3, #-4] + ldrh r3, [r3, #-2] + strh r2, [r5, #44] @ movhi strh r3, [r5, #46] @ movhi sub r3, r4, #1648 - ldrh r2, [r3, #-6] + ldrh r2, [r3, #-10] bl ftl_memset mov r1, r5 - sub r5, r4, #1712 + sub r5, r4, #1728 mov r2, #48 - ldr r0, [r4, #-1264] + ldr r0, [r4, #-1268] bl ftl_memcpy - ldrh r2, [r5, #-12] - ldr r0, [r4, #-1264] - ldr r1, [r4, #-1404] + ldrh r2, [r5] + ldr r0, [r4, #-1268] + ldr r1, [r4, #-1408] mov r2, r2, asl #1 add r0, r0, #48 bl ftl_memcpy - ldrh r2, [r5, #-12] - ldr r0, [r4, #-1264] - add r3, r2, #24 - ldr r1, [r4, #-1392] - ubfx r3, r3, #1, #30 + ldrh r2, [r5] + ldr r0, [r4, #-1268] + ldr r1, [r4, #-1396] + mov r3, r2, asl #1 mov r2, r2, lsr #3 + add r3, r3, #51 add r2, r2, #4 - add r0, r0, r3, asl #2 + bic r3, r3, #3 + add r0, r0, r3 bl ftl_memcpy - sub r2, r4, #1616 - ldrh r3, [r2, #-8] + sub r3, r4, #1616 + ldrh r3, [r3, #-12] cmp r3, #0 - beq .L2127 - ldrh r1, [r5, #-12] - ldrh r2, [r2, #-12] - ldr r0, [r4, #-1264] - mov r3, r1, lsr #3 - add r3, r3, r1, asl #1 - mov r2, r2, asl #2 + beq .L2186 + ldrh r2, [r5] + ldr r0, [r4, #-1268] + ldr r1, [r4, #-1376] + mov r3, r2, lsr #3 + add r3, r3, r2, asl #1 + sub r2, r4, #1632 add r3, r3, #52 - ldr r1, [r4, #-1372] + ldrh r2, [r2] ubfx r3, r3, #2, #14 add r0, r0, r3, asl #2 + mov r2, r2, asl #2 bl ftl_memcpy -.L2127: +.L2186: mov r0, #0 - ldr r9, .L2142 + ldr r9, .L2201 bl FtlUpdateVaildLpn - ldr fp, .L2142+4 + ldr fp, .L2201+4 mov r8, #0 movw r10, #65535 -.L2128: - ldr r3, [r4, #-1472] +.L2187: + ldr r3, [r4, #-1476] ldrh r2, [r7] ldrh r1, [r7, #2] - str r3, [r4, #-1264] - ldr r3, [r4, #-1440] - str r3, [r4, #-1260] - orr r3, r1, r2, asl #10 str r3, [r4, #-1268] - ldr r3, .L2142+20 + ldr r3, [r4, #-1444] + str r3, [r4, #-1264] + orr r3, r1, r2, asl #10 + str r3, [r4, #-1272] + ldr r3, .L2201+20 ldrh r3, [r3] sub r3, r3, #1 cmp r1, r3 - blt .L2129 + blt .L2188 mov r3, #0 ldrh r10, [fp, #4] strh r3, [fp, #2] @ movhi strh r2, [fp, #4] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [r9, #-1612] + ldr r3, [r9, #-1616] add r2, r3, #1 - str r2, [r9, #-1612] - str r3, [r9, #1140] + str r2, [r9, #-1616] + str r3, [r9, #1136] mov r2, r0, asl #10 strh r0, [fp] @ movhi - str r2, [r9, #-1268] + str r2, [r9, #-1272] str r3, [r6, #4] strh r0, [r6, #2] @ movhi -.L2129: - ldr r3, .L2142+24 +.L2188: + ldr r3, .L2201+24 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2130 - ldr r3, .L2142+28 - ldr r0, [r4, #-1472] + beq .L2189 + ldr r3, .L2201+28 + ldr r0, [r4, #-1476] ldrh r1, [r3] bl js_hash str r0, [r6, #12] -.L2130: +.L2189: mov r1, #1 - ldr r0, .L2142+32 + ldr r0, .L2201+32 mov r3, r1 mov r2, r1 bl FlashProgPages ldrh r5, [r7, #2] - ldr r3, [r4, #-1272] + ldr r3, [r4, #-1276] add r5, r5, #1 cmn r3, #1 uxth r5, r5 strh r5, [r7, #2] @ movhi - bne .L2131 + bne .L2190 cmp r5, #1 add r8, r8, #1 - ldreq r3, .L2142+20 + ldreq r3, .L2201+20 uxth r8, r8 ldreqh r3, [r3] subeq r3, r3, #1 streqh r3, [fp, #2] @ movhi cmp r8, #3 - bls .L2128 - ldr r0, .L2142+36 + bls .L2187 + ldr r0, .L2201+36 mov r2, r8 - ldr r1, [r4, #-1268] + ldr r1, [r4, #-1272] bl printk mov r3, #1 - str r3, [r4, #-1276] - b .L2126 -.L2131: + str r3, [r4, #-1280] + b .L2185 +.L2190: cmp r3, #256 cmpne r5, #1 - beq .L2128 + beq .L2187 movw r3, #65535 cmp r10, r3 - beq .L2126 + beq .L2185 mov r0, r10 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2126: +.L2185: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2143: +.L2202: .align 2 -.L2142: +.L2201: .word .LANCHOR2 - .word .LANCHOR2+1132 + .word .LANCHOR2+1128 .word -3932 .word 1179929683 - .word 1342177376 - .word .LANCHOR2-1662 + .word 1342177379 + .word .LANCHOR2-1666 .word .LANCHOR0 - .word .LANCHOR2-1654 - .word .LANCHOR2-1272 - .word .LC45 + .word .LANCHOR2-1658 + .word .LANCHOR2-1276 + .word .LC47 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 2 @@ -12216,436 +12528,437 @@ FtlVpcTblFlush: .type FtlScanSysBlk, %function FtlScanSysBlk: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r3, #1148 - ldr r4, .L2230 - mov r5, #0 - mov r1, r5 - .pad #28 - sub sp, sp, #28 - sub r6, r4, #1632 - ldr r2, [r4, #-1636] - mov r8, r4 - strh r5, [r4, r3] @ movhi - sub r3, r4, #1280 - ldr r0, [r4, #-1364] + movw r3, #1144 + ldr r9, .L2289 + mov r10, #0 + mov r1, r10 + .pad #36 + sub sp, sp, #36 + sub r5, r9, #1648 + ldr r2, [r9, #-1640] + mov r4, r9 + strh r10, [r9, r3] @ movhi + sub r3, r9, #1280 + ldr r0, [r9, #-1368] + mov r6, r9 mov r2, r2, asl #2 - strh r5, [r3, #-4] @ movhi + strh r10, [r3, #-8] @ movhi bl ftl_memset - ldr r2, [r4, #-1636] - mov r1, r5 - ldr r0, [r4, #-1400] + ldr r2, [r9, #-1640] + mov r1, r10 + ldr r0, [r9, #-1404] mov r2, r2, asl #1 bl ftl_memset - ldrh r2, [r6, #-12] - mov r1, r5 - ldr r0, [r4, #-1380] + ldrh r2, [r5] + mov r1, r10 + ldr r0, [r9, #-1384] mov r2, r2, asl #2 bl ftl_memset - ldrh r2, [r6, #-12] - mov r1, r5 - ldr r0, [r4, #-1388] - mov r5, r4 + ldrh r2, [r5] + mov r1, r10 + ldr r0, [r9, #-1392] mov r2, r2, asl #1 bl ftl_memset - ldr r0, .L2230+4 + ldr r0, .L2289+4 mov r1, #255 mov r2, #16 bl ftl_memset - sub r3, r4, #1712 - ldrh r3, [r3, #-12] - str r3, [sp] -.L2145: - ldr r3, .L2230+8 - ldr r2, [sp] - ldr r1, .L2230 + sub r3, r9, #1728 + ldrh r3, [r3] + str r5, [sp, #16] + mov r5, r9 + str r3, [sp, #8] +.L2204: + ldr r3, .L2289+8 + ldr r2, [sp, #8] + ldr r1, .L2289 ldrh r3, [r3] cmp r3, r2 - bls .L2186 - ldr r1, [r5, #-1432] - mov r6, #0 - ldr r3, .L2230+12 - mov fp, r6 - ldr r2, [r5, #-1500] - mov r9, #36 - str r1, [sp, #4] - ldr r1, .L2230+16 + bls .L2245 + ldr r3, .L2289+12 + mov r8, #36 + ldr r1, .L2289+16 + mov r7, #0 + ldr r2, [r5, #-1504] ldrh ip, [r3] - ldr r3, [r5, #-1460] - sub r7, r1, #52 + sub r9, r1, #52 + ldr r3, [r5, #-1464] + ldr fp, [r5, #-1436] ldrh r10, [r1] -.L2187: - uxth r1, r6 + str r7, [sp, #4] +.L2246: + uxth r1, r7 cmp r1, ip - bcs .L2225 - ldr r1, [sp] - ldrb r0, [r7, r6] @ zero_extendqisi2 - str r3, [sp, #20] - str r2, [sp, #16] - str ip, [sp, #12] + bcs .L2284 + ldr r1, [sp, #8] + ldrb r0, [r9, r7] @ zero_extendqisi2 + str r3, [sp, #28] + str r2, [sp, #24] + str ip, [sp, #20] bl V2P_block - str r0, [sp, #8] + str r0, [sp, #12] bl FtlBbmIsBadBlock cmp r0, #0 - ldr r1, [sp, #8] - ldr ip, [sp, #12] - ldr r2, [sp, #16] - ldr r3, [sp, #20] - bne .L2146 - mla r0, r9, fp, r2 + ldr r1, [sp, #12] + ldr ip, [sp, #20] + ldr r2, [sp, #24] + ldr r3, [sp, #28] + bne .L2205 + ldr r0, [sp, #4] mov r1, r1, asl #10 + mla r0, r8, r0, r2 stmib r0, {r1, r3} - mul r1, r10, fp + ldr r1, [sp, #4] + mul r1, r10, r1 add lr, r1, #3 cmp r1, #0 movlt r1, lr - ldr lr, [sp, #4] bic r1, r1, #3 - add r1, lr, r1 + add r1, fp, r1 str r1, [r0, #12] - add r1, fp, #1 - uxth fp, r1 -.L2146: - add r6, r6, #1 - b .L2187 -.L2225: - cmp fp, #0 - beq .L2149 - ldr r0, [r4, #-1500] - mov r1, fp + ldr r1, [sp, #4] + add r1, r1, #1 + uxth r1, r1 + str r1, [sp, #4] +.L2205: + add r7, r7, #1 + b .L2246 +.L2284: + ldr r3, [sp, #4] + cmp r3, #0 + beq .L2208 + mov r1, r3 + ldr r0, [r4, #-1504] mov r2, #1 bl FlashReadPages mov r3, #0 -.L2223: - str r3, [sp, #4] - ldrh r3, [sp, #4] - cmp r3, fp - bcs .L2149 - ldr r3, [sp, #4] +.L2282: + str r3, [sp, #12] + ldr r2, [sp, #4] + ldrh r3, [sp, #12] + cmp r3, r2 + bcs .L2208 + ldr r3, [sp, #12] mov r9, #36 mul r9, r9, r3 - ldr r3, [r4, #-1500] + ldr r3, [r4, #-1504] add r2, r3, r9 ldr r3, [r3, r9] - ldr r6, [r2, #4] + ldr r7, [r2, #4] cmn r3, #1 - ldr r7, [r2, #12] - ubfx r6, r6, #10, #16 - bne .L2152 + ldr r8, [r2, #12] + ubfx r7, r7, #10, #16 + bne .L2211 mov r10, #16 - movw ip, #65535 -.L2151: - ldr r0, [r4, #-1500] + movw fp, #65535 +.L2210: + ldr r0, [r4, #-1504] mov r1, #1 mov r2, r1 - str ip, [sp, #8] add r0, r0, r9 ldr r3, [r0, #4] add r3, r3, #1 str r3, [r0, #4] bl FlashReadPages - ldrh r3, [r7] - ldr ip, [sp, #8] - cmp r3, ip - ldreq r3, [r8, #-1500] + ldrh r3, [r8] + cmp r3, fp + ldreq r3, [r6, #-1504] mvneq r2, #0 streq r2, [r3, r9] - beq .L2152 -.L2153: - ldr r3, [r5, #-1500] + beq .L2211 +.L2212: + ldr r3, [r5, #-1504] ldr r3, [r3, r9] cmn r3, #1 - bne .L2152 + bne .L2211 sub r10, r10, #1 uxth r10, r10 cmp r10, #0 - bne .L2151 -.L2152: - ldr r3, [r5, #-1500] + bne .L2210 +.L2211: + ldr r3, [r5, #-1504] ldr r3, [r3, r9] cmn r3, #1 - beq .L2155 - ldr r2, [r5, #-1612] - ldr r3, [r7, #4] + beq .L2214 + ldr r2, [r5, #-1616] + ldr r3, [r8, #4] cmn r2, #1 - beq .L2156 + beq .L2215 cmp r2, r3 - bhi .L2157 -.L2156: + bhi .L2216 +.L2215: cmn r3, #1 addne r2, r3, #1 - strne r2, [r8, #-1612] -.L2157: - ldrh r2, [r7] + strne r2, [r6, #-1616] +.L2216: + ldrh r2, [r8] movw r1, #61604 cmp r2, r1 - beq .L2159 - bhi .L2160 + beq .L2218 + bhi .L2219 movw r3, #61574 cmp r2, r3 - bne .L2158 - ldr ip, .L2230+20 - ldr r9, [r4, #-1380] - add r2, ip, #360 - ldrh lr, [ip] + bne .L2217 + ldr r3, [sp, #16] + ldr r2, .L2289+20 + ldr lr, [r4, #-1384] + ldrh ip, [r3] ldrh r1, [r2] - sub r0, lr, #1 - rsb r2, r1, r0 - str r2, [sp, #8] + sub r0, ip, #1 uxth r3, r0 - b .L2173 -.L2160: + rsb r0, r1, r0 + b .L2232 +.L2219: movw r3, #61634 cmp r2, r3 - beq .L2162 + beq .L2221 movw r3, #65535 cmp r2, r3 - moveq r0, r6 - beq .L2224 - b .L2158 -.L2162: - ldr lr, [r4, #-1636] - ldr ip, .L2230+24 - ldr r9, [r4, #-1364] - uxth r1, lr - ldrh r2, [ip] + moveq r0, r7 + beq .L2283 + b .L2217 +.L2221: + ldr ip, [r4, #-1640] + ldr fp, .L2289+24 + ldr lr, [r4, #-1368] + uxth r1, ip + ldrh r2, [fp] sub r3, r1, #1 rsb r1, r2, r1 uxth r3, r3 sub r1, r1, #1 sxth r1, r1 - str r1, [sp, #12] -.L2164: - ldr r1, [sp, #12] + str r1, [sp, #20] +.L2223: + ldr r1, [sp, #20] sxth r0, r3 cmp r0, r1 - ble .L2226 + ble .L2285 + ldr r9, [lr, r0, asl #2] mov r10, r0, asl #2 - ldr r1, [r7, #4] - str r10, [sp, #8] - ldr r10, [r9, r0, asl #2] - cmp r1, r10 - bls .L2165 - ldr r1, [r9] + ldr r1, [r8, #4] + cmp r1, r9 + bls .L2224 + ldr r1, [lr] cmp r1, #0 - bne .L2166 - cmp r2, lr + bne .L2225 + cmp r2, ip addne r2, r2, #1 - strneh r2, [ip] @ movhi -.L2166: - uxth r9, r3 + ldrne r1, .L2289+24 + strneh r2, [r1] @ movhi +.L2225: + uxth lr, r3 mov r1, #0 -.L2167: +.L2226: uxth r2, r1 - cmp r2, r9 - bcs .L2227 - ldr lr, [r5, #-1364] + cmp r2, lr + bcs .L2286 + ldr ip, [r5, #-1368] sxth r2, r2 add r1, r1, #1 - add r10, lr, r2, asl #2 - ldr r10, [r10, #4] - str r10, [lr, r2, asl #2] + add r9, ip, r2, asl #2 + ldr r9, [r9, #4] + str r9, [ip, r2, asl #2] mov r2, r2, asl #1 - ldr lr, [r5, #-1400] - add r10, lr, r2 - ldrh r10, [r10, #2] - strh r10, [lr, r2] @ movhi - b .L2167 -.L2227: - ldr r2, [r8, #-1364] + ldr ip, [r5, #-1404] + add r9, ip, r2 + ldrh r9, [r9, #2] + strh r9, [ip, r2] @ movhi + b .L2226 +.L2286: + ldr r2, [r6, #-1368] mov r0, r0, asl #1 - ldr r1, [r7, #4] - ldr lr, [sp, #8] - str r1, [r2, lr] - ldr r2, [r8, #-1400] - strh r6, [r2, r0] @ movhi + ldr r1, [r8, #4] + str r1, [r2, r10] + ldr r2, [r6, #-1404] + strh r7, [r2, r0] @ movhi sxth r0, r3 cmp r0, #0 - bge .L2169 - b .L2158 -.L2165: + bge .L2228 + b .L2217 +.L2224: sub r3, r3, #1 uxth r3, r3 - b .L2164 -.L2226: + b .L2223 +.L2285: cmp r0, #0 - bge .L2200 - b .L2158 -.L2169: - ldrh r2, [ip] - ldr r1, [r5, #-1636] + bge .L2259 + b .L2217 +.L2228: + ldr r2, .L2289+24 + ldr r1, [r5, #-1640] + ldrh r2, [r2] rsb r1, r2, r1 sub r1, r1, #1 sxth r1, r1 cmp r0, r1 - bgt .L2158 -.L2200: + bgt .L2217 +.L2259: add r2, r2, #1 - ldr r1, [r7, #4] - strh r2, [ip] @ movhi + ldr r1, [r8, #4] + strh r2, [fp] @ movhi sxth r3, r3 - ldr r2, [r4, #-1364] + ldr r2, [r4, #-1368] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r4, #-1400] - b .L2221 -.L2179: - mov r10, r2, asl #2 - ldr r0, [r7, #4] - str r10, [sp, #12] - ldr r10, [r9, r2, asl #2] - cmp r0, r10 - bhi .L2228 + ldr r2, [r4, #-1404] + b .L2280 +.L2238: + ldr r10, [r8, #4] + mov fp, r2, asl #2 + ldr r9, [lr, r2, asl #2] + cmp r10, r9 + bhi .L2287 sub r3, r3, #1 uxth r3, r3 -.L2173: - ldr r0, [sp, #8] +.L2232: sxth r2, r3 cmp r2, r0 - bgt .L2179 - b .L2178 -.L2228: - ldr r0, [r9] + bgt .L2238 + b .L2237 +.L2287: + ldr r0, [lr] cmp r0, #0 - bne .L2175 - cmp r1, lr + bne .L2234 + cmp r1, ip addne r1, r1, #1 - ldrne r0, .L2230+28 + ldrne r0, .L2289+20 strneh r1, [r0] @ movhi -.L2175: - uxth r9, r3 +.L2234: + uxth lr, r3 mov r0, #0 -.L2176: +.L2235: uxth r1, r0 - cmp r1, r9 - bcs .L2229 - ldr lr, [r5, #-1380] + cmp r1, lr + bcs .L2288 + ldr ip, [r5, #-1384] sxth r1, r1 add r0, r0, #1 - add r10, lr, r1, asl #2 - ldr r10, [r10, #4] - str r10, [lr, r1, asl #2] + add r9, ip, r1, asl #2 + ldr r9, [r9, #4] + str r9, [ip, r1, asl #2] mov r1, r1, asl #1 - ldr lr, [r5, #-1388] - add r10, lr, r1 - ldrh r10, [r10, #2] - strh r10, [lr, r1] @ movhi - b .L2176 -.L2229: - ldr r1, [r8, #-1380] + ldr ip, [r5, #-1392] + add r9, ip, r1 + ldrh r9, [r9, #2] + strh r9, [ip, r1] @ movhi + b .L2235 +.L2288: + ldr r1, [r6, #-1384] mov r2, r2, asl #1 - ldr r0, [r7, #4] - ldr lr, [sp, #12] - str r0, [r1, lr] - ldr r1, [r8, #-1388] - strh r6, [r1, r2] @ movhi -.L2178: + ldr r0, [r8, #4] + str r0, [r1, fp] + ldr r1, [r6, #-1392] + strh r7, [r1, r2] @ movhi +.L2237: sxth r3, r3 cmp r3, #0 - blt .L2158 - ldr r1, .L2230+28 - ldrh ip, [ip] - ldrh r2, [r1] - sub ip, ip, #1 - rsb ip, r2, ip - sxth ip, ip - cmp r3, ip - bgt .L2158 - add r2, r2, #1 - strh r2, [r1] @ movhi - ldr r2, [r5, #-1380] - ldr r1, [r7, #4] + blt .L2217 + ldr r0, .L2289+20 + sub r2, r0, #360 + ldrh r1, [r0] + ldrh r2, [r2] + sub r2, r2, #1 + rsb r2, r1, r2 + sxth r2, r2 + cmp r3, r2 + bgt .L2217 + add r1, r1, #1 + ldr r2, [r5, #-1384] + strh r1, [r0] @ movhi + ldr r1, [r8, #4] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r5, #-1388] -.L2221: - strh r6, [r2, r3] @ movhi - b .L2158 -.L2159: - ldr r2, .L2230+4 - ldr r9, .L2230+4 + ldr r2, [r5, #-1392] +.L2280: + strh r7, [r2, r3] @ movhi + b .L2217 +.L2218: + ldr r2, .L2289+4 + ldr r9, .L2289+4 ldrh r1, [r2] movw r2, #65535 cmp r1, r2 moveq r2, r9 - streqh r6, [r2] @ movhi - beq .L2222 - ldr r3, .L2230+4 + streqh r7, [r2] @ movhi + beq .L2281 + ldr r3, .L2289+4 ldrh r0, [r3, #4] cmp r0, r2 - beq .L2181 + beq .L2240 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2181: - ldr r3, [r7, #4] - ldr r2, [r8, #1140] +.L2240: + ldr r3, [r8, #4] + ldr r2, [r6, #1136] cmp r2, r3 - strcsh r6, [r9, #4] @ movhi - bcs .L2158 + strcsh r7, [r9, #4] @ movhi + bcs .L2217 ldrh r3, [r9] - strh r6, [r9] @ movhi + strh r7, [r9] @ movhi strh r3, [r9, #4] @ movhi - ldr r3, [r7, #4] -.L2222: - str r3, [r5, #1140] - b .L2158 -.L2155: + ldr r3, [r8, #4] +.L2281: + str r3, [r5, #1136] + b .L2217 +.L2214: ldrb r1, [r5, #-2744] @ zero_extendqisi2 - mov r0, r6 + mov r0, r7 cmp r1, #0 - beq .L2183 -.L2224: + beq .L2242 +.L2283: mov r1, #0 -.L2183: +.L2242: bl FtlFreeSysBlkQueueIn -.L2158: - ldr r3, [sp, #4] +.L2217: + ldr r3, [sp, #12] add r3, r3, #1 - b .L2223 -.L2149: - ldr r3, [sp] - add r6, r3, #1 - uxth r3, r6 - str r3, [sp] - b .L2145 -.L2186: - ldr ip, [r1, #-1400] + b .L2282 +.L2208: + ldr r3, [sp, #8] + add r7, r3, #1 + uxth r3, r7 + str r3, [sp, #8] + b .L2204 +.L2245: + ldr ip, [r1, #-1404] ldrh r2, [ip] cmp r2, #0 - beq .L2188 -.L2191: - ldr r0, [r1, #-1388] - ldrh r2, [r0] + beq .L2247 +.L2250: + ldr ip, [r1, #-1392] + ldrh r2, [ip] cmp r2, #0 - beq .L2189 - b .L2212 -.L2188: - movw r3, #1148 + beq .L2248 + b .L2271 +.L2247: + movw r3, #1144 ldrh r3, [r1, r3] cmp r3, #0 - ldrne lr, [r1, #-1636] - beq .L2191 -.L2192: + ldrne lr, [r1, #-1640] + beq .L2250 +.L2251: uxth r3, r2 sxth r0, r3 cmp r0, lr - bcs .L2191 + bcs .L2250 mov r4, r0, asl #1 add r2, r2, #1 ldrh r4, [ip, r4] cmp r4, #0 - beq .L2192 - ldr ip, .L2230 + beq .L2251 + ldr ip, .L2289 mov r6, #0 -.L2193: - ldr lr, [r1, #-1636] +.L2252: + ldr lr, [r1, #-1640] sxth r2, r3 cmp r2, lr - bcs .L2191 - ldr r4, [ip, #-1400] + bcs .L2250 + ldr r4, [ip, #-1404] mov lr, r2, asl #1 rsb r5, r0, r2 add r3, r3, #1 @@ -12653,67 +12966,65 @@ FtlScanSysBlk: mov r7, r5, asl #1 uxth r3, r3 strh r8, [r4, r7] @ movhi - ldr r4, [ip, #-1364] + ldr r4, [ip, #-1368] ldr r2, [r4, r2, asl #2] str r2, [r4, r5, asl #2] - ldr r2, [ip, #-1400] + ldr r2, [ip, #-1404] strh r6, [r2, lr] @ movhi - b .L2193 -.L2189: - ldr r3, .L2230+32 - ldrh r1, [r3, #-4] - cmp r1, #0 - subne r3, r3, #352 - ldrneh ip, [r3, #-12] - beq .L2212 -.L2196: + b .L2252 +.L2248: + ldr r1, .L2289+28 + ldrh r3, [r1, #-8] + cmp r3, #0 + subne r1, r1, #368 + ldrneh lr, [r1] + beq .L2271 +.L2255: uxth r3, r2 - sxth r1, r3 - cmp r1, ip - bge .L2212 - mov lr, r1, asl #1 + sxth r0, r3 + cmp r0, lr + bge .L2271 + mov r4, r0, asl #1 add r2, r2, #1 - ldrh lr, [r0, lr] - cmp lr, #0 - beq .L2196 - ldr r0, .L2230 + ldrh r4, [ip, r4] + cmp r4, #0 + beq .L2255 + ldr ip, .L2289 mov r6, #0 - ldr r5, .L2230+20 -.L2197: - ldrh ip, [r5] +.L2256: + ldrh lr, [r1] sxth r2, r3 - cmp r2, ip - bge .L2212 - ldr lr, [r0, #-1388] - mov ip, r2, asl #1 - rsb r4, r1, r2 + cmp r2, lr + bge .L2271 + ldr r4, [ip, #-1392] + mov lr, r2, asl #1 + rsb r5, r0, r2 add r3, r3, #1 - ldrh r8, [lr, ip] - mov r7, r4, asl #1 + ldrh r8, [r4, lr] + mov r7, r5, asl #1 uxth r3, r3 - strh r8, [lr, r7] @ movhi - ldr lr, [r0, #-1380] - ldr r2, [lr, r2, asl #2] - str r2, [lr, r4, asl #2] - ldr r2, [r0, #-1388] - strh r6, [r2, ip] @ movhi - b .L2197 -.L2212: + strh r8, [r4, r7] @ movhi + ldr r4, [ip, #-1384] + ldr r2, [r4, r2, asl #2] + str r2, [r4, r5, asl #2] + ldr r2, [ip, #-1392] + strh r6, [r2, lr] @ movhi + b .L2256 +.L2271: mov r0, #0 - add sp, sp, #28 + add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2231: +.L2290: .align 2 -.L2230: +.L2289: .word .LANCHOR2 - .word .LANCHOR2+1132 - .word .LANCHOR2-1722 - .word .LANCHOR2-1732 - .word .LANCHOR2-1652 - .word .LANCHOR2-1644 - .word .LANCHOR2+1148 - .word .LANCHOR2-1284 + .word .LANCHOR2+1128 + .word .LANCHOR2-1726 + .word .LANCHOR2-1736 + .word .LANCHOR2-1656 + .word .LANCHOR2-1288 + .word .LANCHOR2+1144 .word .LANCHOR2-1280 .fnend .size FtlScanSysBlk, .-FtlScanSysBlk @@ -12727,34 +13038,34 @@ FtlLoadEctTbl: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #64 - ldr r4, .L2235 + ldr r4, .L2294 sub r5, r4, #1424 - ldr r2, [r4, #-1416] - ldrh r1, [r5] + ldr r2, [r4, #-1420] + ldrh r1, [r5, #-4] bl FtlVendorPartRead - ldr r3, [r4, #-1416] + ldr r3, [r4, #-1420] ldr r2, [r3] - ldr r3, .L2235+4 + ldr r3, .L2294+4 cmp r2, r3 - beq .L2233 - ldr r1, .L2235+8 - ldr r0, .L2235+12 + beq .L2292 + ldr r1, .L2294+8 + ldr r0, .L2294+12 bl printk - ldrh r2, [r5] - ldr r0, [r4, #-1416] + ldrh r2, [r5, #-4] + ldr r0, [r4, #-1420] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L2233: +.L2292: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L2236: +.L2295: .align 2 -.L2235: +.L2294: .word .LANCHOR2 .word 1112818501 - .word .LC47 - .word .LC46 + .word .LC49 + .word .LC48 .fnend .size FtlLoadEctTbl, .-FtlLoadEctTbl .align 2 @@ -12765,21 +13076,21 @@ ftl_set_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2241 + ldr r2, .L2300 mov r3, r0, lsr #5 cmp r1, #0 and r0, r0, #31 uxth r3, r3 mov ip, #1 - ldr r1, [r2, #-1392] + ldr r1, [r2, #-1396] ldr r2, [r1, r3, asl #2] orrne r0, r2, ip, asl r0 biceq r0, r2, ip, asl r0 str r0, [r1, r3, asl #2] bx lr -.L2242: +.L2301: .align 2 -.L2241: +.L2300: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -12791,17 +13102,17 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2244 + ldr r3, .L2303 mov r2, r0, lsr #5 and r0, r0, #31 - ldr r3, [r3, #-1392] + ldr r3, [r3, #-1396] ldr r3, [r3, r2, asl #2] mov r0, r3, lsr r0 and r0, r0, #1 bx lr -.L2245: +.L2304: .align 2 -.L2244: +.L2303: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -12816,109 +13127,122 @@ FtlCheckVpc: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r4, #0 - ldr r1, .L2267 - ldr r0, .L2267+4 + ldr r1, .L2328 + ldr r0, .L2328+4 bl printk - ldr r0, .L2267+8 + ldr r0, .L2328+8 mov r1, #0 mov r2, #8192 bl memset - ldr r5, .L2267+12 - add r7, r5, #1152 -.L2247: - ldr r3, [r5, #-1280] - ldr r6, .L2267+12 + ldr r7, .L2328+12 + ldr r5, .L2328+8 +.L2306: + ldr r3, [r7, #-1284] + ldr r6, .L2328+12 cmp r4, r3 - bcs .L2265 + bcs .L2326 mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L2248 + beq .L2307 ubfx r0, r0, #10, #16 bl P2V_block_in_plane mov r0, r0, asl #1 - ldrh r3, [r7, r0] + ldrh r3, [r5, r0] add r3, r3, #1 - strh r3, [r7, r0] @ movhi -.L2248: + strh r3, [r5, r0] @ movhi +.L2307: add r4, r4, #1 - b .L2247 -.L2265: - ldr r5, .L2267+16 - add r8, r6, #1152 + b .L2306 +.L2326: + ldr r9, .L2328+8 mov r4, #0 - mov r7, r6 -.L2250: - ldrh r3, [r5] + mov r5, r4 + mov r8, r6 +.L2309: + ldr r2, .L2328+12 uxth r1, r4 - ldr r0, .L2267+12 + sub r3, r2, #1728 + ldrh r3, [r3] cmp r3, r1 - bls .L2266 - ldr r2, [r7, #-1404] - mov r3, r1, asl #1 - ldrh r2, [r2, r3] - ldrh r3, [r8, r3] + bls .L2327 + ldr r3, [r8, #-1408] + mov r7, r1, asl #1 + ldrh r2, [r3, r7] + ldrh r3, [r9, r7] cmp r2, r3 - beq .L2251 - ldr r0, .L2267+20 + beq .L2310 + ldr r0, .L2328+16 bl printk -.L2251: + ldr r3, [r8, #-1408] + movw r2, #65535 + ldrh r3, [r3, r7] + cmp r3, r2 + beq .L2310 + ldrh r2, [r9, r7] + cmp r2, r3 + movhi r5, #1 +.L2310: add r4, r4, #1 - b .L2250 -.L2266: - ldr r3, [r0, #880] + b .L2309 +.L2327: + ldr r3, [r2, #876] cmp r3, #0 - beq .L2246 - add r2, r0, #884 - add r8, r0, #1152 - mov r5, #0 - mov r9, #6 - ldrh r7, [r2] - ldr r2, [r0, #-1352] + beq .L2312 + add r1, r2, #880 + ldr r2, [r2, #-1356] + add r9, r1, #268 + mov r8, #0 rsb r3, r2, r3 - ldr r2, .L2267+24 + ldr r2, .L2328+20 + ldrh r7, [r1] mov r3, r3, asr #1 mul r3, r2, r3 uxth r4, r3 -.L2254: - uxth r3, r5 +.L2313: + uxth r3, r8 cmp r3, r7 - bcs .L2246 - ldr r2, [r6, #-1404] + bcs .L2312 + ldr r2, [r6, #-1408] mov r3, r4, asl #1 ldrh r2, [r2, r3] cmp r2, #0 - beq .L2255 - ldr r0, .L2267+28 + beq .L2314 + ldr r0, .L2328+24 mov r1, r4 - ldrh r3, [r8, r3] + ldrh r3, [r9, r3] + mov r5, #1 bl printk -.L2255: - mul r4, r9, r4 - ldr r3, [r6, #-1352] - add r5, r5, #1 - ldrh r4, [r3, r4] +.L2314: + mov r3, #6 + ldr r2, [r6, #-1356] + mul r4, r3, r4 movw r3, #65535 + add r8, r8, #1 + ldrh r4, [r2, r4] cmp r4, r3 - bne .L2254 -.L2246: + bne .L2313 +.L2312: + mov r1, r5 + ldr r0, .L2328+28 + bl printk add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2268: +.L2329: .align 2 -.L2267: - .word .LANCHOR3+16 - .word .LC48 - .word .LANCHOR2+1152 - .word .LANCHOR2 - .word .LANCHOR2-1724 - .word .LC49 - .word -1431655765 +.L2328: + .word .LANCHOR3+148 .word .LC50 + .word .LANCHOR2+1148 + .word .LANCHOR2 + .word .LC51 + .word -1431655765 + .word .LC52 + .word .LC53 .fnend .size FtlCheckVpc, .-FtlCheckVpc .align 2 @@ -12931,30 +13255,30 @@ FtlDumpSysBlock: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r7, r0, asl #10 - ldr r4, .L2278 + ldr r4, .L2339 .pad #24 sub sp, sp, #24 - ldr r8, .L2278+4 + ldr r8, .L2339+4 mov r6, r0 mov r5, #0 - ldr r3, [r4, #-1472] + ldr r3, [r4, #-1476] + str r3, [r4, #-1268] + ldr r3, [r4, #-1444] str r3, [r4, #-1264] - ldr r3, [r4, #-1440] - str r3, [r4, #-1260] -.L2270: +.L2331: ldrh r2, [r8] sxth r3, r5 cmp r3, r2 - bge .L2277 + bge .L2338 mov r1, #1 - ldr r0, .L2278+8 + ldr r0, .L2339+8 mov r2, r1 orr r3, r3, r7 - str r3, [r4, #-1268] + str r3, [r4, #-1272] bl FlashReadPages - ldr r3, [r4, #-1260] + ldr r3, [r4, #-1264] mov r1, r6 - ldr r0, .L2278+12 + ldr r0, .L2339+12 ldr r2, [r3] str r2, [sp] ldr r2, [r3, #4] @@ -12962,37 +13286,37 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #-1272] + ldr r2, [r4, #-1276] str r3, [sp, #12] - ldr r3, [r4, #-1264] + ldr r3, [r4, #-1268] ldr r3, [r3] str r3, [sp, #16] - ldr r3, [r4, #-1268] + ldr r3, [r4, #-1272] bl printk - ldr r3, [r4, #-1260] + ldr r3, [r4, #-1264] ldr r3, [r3] cmn r3, #1 - beq .L2271 - ldr r0, .L2278+16 + beq .L2332 + ldr r0, .L2339+16 mov r2, #4 - ldr r1, [r4, #-1472] + ldr r1, [r4, #-1476] mov r3, #768 bl rknand_print_hex -.L2271: +.L2332: add r5, r5, #1 - b .L2270 -.L2277: + b .L2331 +.L2338: add sp, sp, #24 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2279: +.L2340: .align 2 -.L2278: +.L2339: .word .LANCHOR2 - .word .LANCHOR2-1662 - .word .LANCHOR2-1272 - .word .LC51 - .word .LC52 + .word .LANCHOR2-1666 + .word .LANCHOR2-1276 + .word .LC54 + .word .LC55 .fnend .size FtlDumpSysBlock, .-FtlDumpSysBlock .align 2 @@ -13007,52 +13331,52 @@ Ftlscanalldata: mov r1, #0 .pad #36 sub sp, sp, #36 - ldr r0, .L2290 + ldr r0, .L2351 bl printk - ldr r6, .L2290+4 + ldr r6, .L2351+4 mov r5, #0 mov r4, r6 -.L2281: - ldr r3, [r6, #-1280] +.L2342: + ldr r3, [r6, #-1284] cmp r5, r3 - bcs .L2289 + bcs .L2350 mov r0, r5 add r1, sp, #28 mov r2, #0 bl log2phys ubfx r3, r5, #0, #11 cmp r3, #0 - bne .L2282 - ldr r0, .L2290+8 + bne .L2343 + ldr r0, .L2351+8 mov r1, r5 ldr r2, [sp, #28] bl printk -.L2282: +.L2343: ldr r3, [sp, #28] cmn r3, #1 - beq .L2284 - str r3, [r4, #-1268] + beq .L2345 + str r3, [r4, #-1272] mov r2, #0 - ldr r3, [r4, #-1472] + ldr r3, [r4, #-1476] mov r1, #1 - ldr r7, [r4, #-1440] - ldr r0, .L2290+12 - str r3, [r4, #-1264] - str r5, [r4, #-1256] - str r7, [r4, #-1260] - str r2, [r4, #-1272] + ldr r7, [r4, #-1444] + ldr r0, .L2351+12 + str r3, [r4, #-1268] + str r5, [r4, #-1260] + str r7, [r4, #-1264] + str r2, [r4, #-1276] bl FlashReadPages - ldr r3, [r4, #-1272] + ldr r3, [r4, #-1276] cmn r3, #1 cmpne r3, #256 - beq .L2285 + beq .L2346 ldr r3, [r7, #8] cmp r3, r5 - beq .L2284 -.L2285: - ldr r3, [r4, #-1260] - ldr r2, [r4, #-1264] - ldr r0, .L2290+16 + beq .L2345 +.L2346: + ldr r3, [r4, #-1264] + ldr r2, [r4, #-1268] + ldr r0, .L2351+16 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -13064,24 +13388,24 @@ Ftlscanalldata: mov r1, r5 ldr r2, [r2, #4] str r2, [sp, #16] - ldr r2, [r4, #-1268] + ldr r2, [r4, #-1272] ldr r3, [r3] bl printk -.L2284: +.L2345: add r5, r5, #1 - b .L2281 -.L2289: + b .L2342 +.L2350: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2291: +.L2352: .align 2 -.L2290: - .word .LC53 +.L2351: + .word .LC56 .word .LANCHOR2 - .word .LC54 - .word .LANCHOR2-1272 - .word .LC55 + .word .LC57 + .word .LANCHOR2-1276 + .word .LC58 .fnend .size Ftlscanalldata, .-Ftlscanalldata .align 2 @@ -13095,29 +13419,29 @@ dump_map_info: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r5, .L2310 - ldr fp, .L2310+4 - ldrh r6, [r5, #-12] - add r5, r5, #1712 + ldr r5, .L2371 + ldr fp, .L2371+4 + ldrh r6, [r5] + add r5, r5, #1728 mov r8, r5 -.L2293: +.L2354: ldrh r3, [fp] cmp r3, r6 - bls .L2306 - ldr r1, .L2310+8 + bls .L2367 + ldr r1, .L2371+8 mov r7, #0 - ldr r2, [r5, #-1500] + ldr r2, [r5, #-1504] mov r4, r7 - ldr r3, [r5, #-1460] + ldr r3, [r5, #-1464] add r1, r1, #28 - ldr r10, [r5, #-1432] + ldr r10, [r5, #-1436] ldrh ip, [r1, #-28] ldrh r9, [r1, #52] str r1, [sp, #28] -.L2302: +.L2363: uxth r1, r7 cmp r1, ip - bcs .L2308 + bcs .L2369 str r3, [sp, #44] mov r1, r6 ldr r3, [sp, #28] @@ -13132,7 +13456,7 @@ dump_map_info: ldr ip, [sp, #36] ldr r2, [sp, #40] ldr r3, [sp, #44] - bne .L2294 + bne .L2355 mov r0, #36 mov r1, r1, asl #10 mla r0, r0, r4, r2 @@ -13146,24 +13470,24 @@ dump_map_info: bic r1, r1, #3 add r1, r10, r1 str r1, [r0, #12] -.L2294: +.L2355: add r7, r7, #1 - b .L2302 -.L2308: + b .L2363 +.L2369: cmp r4, #0 - beq .L2297 - ldr r0, [r8, #-1500] + beq .L2358 + ldr r0, [r8, #-1504] mov r1, r4 mov r2, #1 mov r7, #0 bl FlashReadPages mov r9, #36 -.L2298: +.L2359: uxth r3, r7 cmp r3, r4 - bcs .L2297 - ldr r3, [r8, #-1500] - ldr r0, .L2310+12 + bcs .L2358 + ldr r3, [r8, #-1504] + ldr r0, .L2371+12 mla r3, r9, r7, r3 add r7, r7, #1 ldmib r3, {r2, r3, ip} @@ -13180,41 +13504,41 @@ dump_map_info: str r3, [sp, #16] ldr r3, [ip] bl printk - b .L2298 -.L2297: + b .L2359 +.L2358: add r6, r6, #1 uxth r6, r6 - b .L2293 -.L2306: - ldr r4, .L2310+16 + b .L2354 +.L2367: + ldr r4, .L2371+16 mov r7, #0 - ldr r8, .L2310+20 -.L2301: + ldr r8, .L2371+20 +.L2362: ldrh r3, [r8] sxth r6, r7 - ldr r5, .L2310+16 + ldr r5, .L2371+16 cmp r6, r3 - bge .L2304 - ldr r9, .L2310+24 + bge .L2365 + ldr r9, .L2371+24 mov r6, r6, asl #1 mov r5, #0 -.L2305: +.L2366: ldrh r2, [r9] sxth r3, r5 add r5, r5, #1 cmp r3, r2 - bge .L2309 - ldr r2, [r4, #-1400] + bge .L2370 + ldr r2, [r4, #-1404] mov r1, #1 - ldr r0, .L2310+28 + ldr r0, .L2371+28 ldrh r2, [r2, r6] orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r4, #-1268] + str r3, [r4, #-1272] bl FlashReadPages - ldr r3, [r4, #-1260] - ldr r1, [r4, #-1400] - ldr r2, [r4, #-1264] + ldr r3, [r4, #-1264] + ldr r1, [r4, #-1404] + ldr r2, [r4, #-1268] ldr r0, [r3] ldrh r1, [r1, r6] str r0, [sp] @@ -13223,54 +13547,54 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L2310+32 + ldr r0, .L2371+32 str r3, [sp, #12] ldr r3, [r2] str r3, [sp, #16] ldr r3, [r2, #4] str r3, [sp, #20] - ldr r2, [r4, #-1272] - ldr r3, [r4, #-1268] + ldr r2, [r4, #-1276] + ldr r3, [r4, #-1272] bl printk - b .L2305 -.L2309: + b .L2366 +.L2370: add r7, r7, #1 - b .L2301 -.L2304: - sub r4, r5, #1616 - ldr r1, [r5, #-1400] - ldr r3, [r5, #-1636] + b .L2362 +.L2365: + sub r4, r5, #1632 + ldr r1, [r5, #-1404] + ldr r3, [r5, #-1640] mov r2, #2 - ldr r0, .L2310+36 + ldr r0, .L2371+36 bl rknand_print_hex + ldr r1, [r5, #-1376] + ldrh r3, [r4] + mov r2, #4 + ldr r0, .L2371+40 + bl rknand_print_hex + ldr r0, .L2371+44 ldr r1, [r5, #-1372] - ldrh r3, [r4, #-12] mov r2, #4 - ldr r0, .L2310+40 - bl rknand_print_hex - ldr r0, .L2310+44 - ldr r1, [r5, #-1368] - mov r2, #4 - ldrh r3, [r4, #-12] + ldrh r3, [r4] add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b rknand_print_hex -.L2311: +.L2372: .align 2 -.L2310: - .word .LANCHOR2-1712 - .word .LANCHOR2-1722 - .word .LANCHOR2-1732 - .word .LC56 - .word .LANCHOR2 - .word .LANCHOR2+1148 - .word .LANCHOR2-1662 - .word .LANCHOR2-1272 - .word .LC57 - .word .LC58 +.L2371: + .word .LANCHOR2-1728 + .word .LANCHOR2-1726 + .word .LANCHOR2-1736 .word .LC59 + .word .LANCHOR2 + .word .LANCHOR2+1144 + .word .LANCHOR2-1666 + .word .LANCHOR2-1276 .word .LC60 + .word .LC61 + .word .LC62 + .word .LC63 .fnend .size dump_map_info, .-dump_map_info .align 2 @@ -13294,34 +13618,34 @@ FtlMapTblRecovery: mov r2, r9, asl #2 ldr r8, [r0, #12] mov r0, r7 - ldr r5, .L2355 + ldr r5, .L2416 str r3, [sp, #8] bl ftl_memset mov r1, #0 str r1, [r4, #32] - ldr r3, [r5, #-1472] + ldr r3, [r5, #-1476] mov r10, r5 - ldr r6, [r5, #-1440] + ldr r6, [r5, #-1444] str r1, [r4, #28] - str r3, [r5, #-1264] + str r3, [r5, #-1268] mvn r3, #0 - str r6, [r5, #-1260] + str r6, [r5, #-1264] strh r3, [r4] @ movhi strh r3, [r4, #2] @ movhi mov r3, #1 str r3, [r4, #36] str r1, [sp, #4] -.L2313: +.L2374: ldrh r2, [sp, #4] ldr r3, [sp, #8] sxth fp, r2 cmp fp, r3 - bge .L2331 + bge .L2392 ldr r3, [sp, #8] sub r1, r3, #1 cmp fp, r1 mov r1, fp, asl #1 - bne .L2314 + bne .L2375 ldrh r0, [r8, r1] add r10, r8, r1 mov r1, #1 @@ -13335,103 +13659,103 @@ FtlMapTblRecovery: ldr r3, [sp, #12] strh r2, [r4] @ movhi ldr r3, [r3, fp, asl #2] - ldr fp, .L2355 + ldr fp, .L2416 str r3, [r4, #28] add r3, r0, #1 str r3, [sp, #4] -.L2315: +.L2376: ldr r2, [sp, #4] sxth r3, r8 cmp r3, r2 - bge .L2331 + bge .L2392 ldrh r2, [r10] mov r1, #1 - ldr r0, .L2355+4 + ldr r0, .L2416+4 orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r5, #-1268] + str r3, [r5, #-1272] bl FlashReadPages - ldr r3, .L2355+8 + ldr r3, .L2416+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2316 - ldr r3, [fp, #-1260] + beq .L2377 + ldr r3, [fp, #-1264] ldr r3, [r3, #12] cmp r3, #0 - beq .L2316 - ldr r2, .L2355+12 - ldr r0, [fp, #-1264] + beq .L2377 + ldr r2, .L2416+12 + ldr r0, [fp, #-1268] str r3, [sp, #8] ldrh r1, [r2] bl js_hash ldr r3, [sp, #8] cmp r3, r0 mvnne r3, #0 - strne r3, [fp, #-1272] -.L2316: - ldr r3, [fp, #-1272] + strne r3, [fp, #-1276] +.L2377: + ldr r3, [fp, #-1276] cmn r3, #1 - beq .L2317 + beq .L2378 ldrh r3, [r6, #8] cmp r3, r9 - bcs .L2317 + bcs .L2378 ldrh r2, [r4, #4] ldrh r1, [r6] cmp r1, r2 - ldreq r2, [fp, #-1268] + ldreq r2, [fp, #-1272] streq r2, [r7, r3, asl #2] -.L2317: +.L2378: add r8, r8, #1 - b .L2315 -.L2331: + b .L2376 +.L2392: mov r0, r4 bl ftl_free_no_use_map_blk - ldr r3, .L2355+16 + ldr r3, .L2416+16 ldrh r2, [r4, #2] - ldrh r3, [r3, #-14] + ldrh r3, [r3, #-2] cmp r2, r3 - bne .L2320 + bne .L2381 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2320 -.L2314: - ldr r2, [r5, #-1472] + b .L2381 +.L2375: + ldr r2, [r5, #-1476] add r3, r8, r1 str r3, [sp, #16] - ldr r3, .L2355+20 - str r2, [r5, #-1264] + ldr r3, .L2416+20 + str r2, [r5, #-1268] ldrh r1, [r8, r1] ldrh r2, [r3] - ldr r0, .L2355+4 + ldr r0, .L2416+4 sub r2, r2, #1 orr r2, r2, r1, asl #10 mov r1, #1 - str r2, [r5, #-1268] + str r2, [r5, #-1272] mov r2, r1 bl FlashReadPages - ldr r2, [r5, #-1272] + ldr r2, [r5, #-1276] cmn r2, #1 - beq .L2333 + beq .L2394 ldrh r1, [r6] ldrh r2, [r4, #4] cmp r1, r2 - bne .L2333 + bne .L2394 ldrh r1, [r6, #8] movw r2, #64245 cmp r1, r2 - bne .L2333 + bne .L2394 mov r0, #0 mov fp, #8 mov lr, #4 -.L2322: - ldr r3, .L2355+20 +.L2383: + ldr r3, .L2416+20 uxth r2, r0 sxth r1, r2 ldrh ip, [r3] sub ip, ip, #1 cmp r1, ip - bge .L2325 - ldr ip, [r10, #-1472] + bge .L2386 + ldr ip, [r10, #-1476] add r0, r0, #1 ldr r1, [ip, r1, asl #3] uxth r1, r1 @@ -13439,61 +13763,61 @@ FtlMapTblRecovery: smlabbcc r2, r2, fp, lr ldrcc r2, [ip, r2] strcc r2, [r7, r1, asl #2] - b .L2322 -.L2333: + b .L2383 +.L2394: mov fp, #0 -.L2353: - ldr r3, .L2355+20 +.L2414: + ldr r3, .L2416+20 sxth r2, fp ldrh r1, [r3] cmp r2, r1 - bge .L2325 + bge .L2386 ldr r3, [sp, #16] - ldr r0, .L2355+4 + ldr r0, .L2416+4 ldrh r1, [r3] orr r2, r2, r1, asl #10 mov r1, #1 - str r2, [r10, #-1268] + str r2, [r10, #-1272] mov r2, r1 bl FlashReadPages - ldr r2, .L2355+8 + ldr r2, .L2416+8 ldrb r2, [r2] @ zero_extendqisi2 cmp r2, #0 - beq .L2326 - ldr r2, [r10, #-1260] + beq .L2387 + ldr r2, [r10, #-1264] ldr r2, [r2, #12] cmp r2, #0 - beq .L2326 - ldr r1, .L2355+12 - ldr r0, [r10, #-1264] + beq .L2387 + ldr r1, .L2416+12 + ldr r0, [r10, #-1268] str r2, [sp, #20] ldrh r1, [r1] bl js_hash ldr r2, [sp, #20] cmp r2, r0 mvnne r2, #0 - strne r2, [r10, #-1272] -.L2326: - ldr r2, [r10, #-1272] + strne r2, [r10, #-1276] +.L2387: + ldr r2, [r10, #-1276] cmn r2, #1 - beq .L2327 + beq .L2388 ldrh r2, [r6, #8] cmp r2, r9 - bcs .L2327 + bcs .L2388 ldrh r1, [r4, #4] ldrh r0, [r6] cmp r0, r1 - ldreq r1, [r10, #-1268] + ldreq r1, [r10, #-1272] streq r1, [r7, r2, asl #2] -.L2327: +.L2388: add fp, fp, #1 - b .L2353 -.L2325: + b .L2414 +.L2386: ldr r3, [sp, #4] add r3, r3, #1 str r3, [sp, #4] - b .L2313 -.L2320: + b .L2374 +.L2381: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -13502,15 +13826,15 @@ FtlMapTblRecovery: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2356: +.L2417: .align 2 -.L2355: +.L2416: .word .LANCHOR2 - .word .LANCHOR2-1272 + .word .LANCHOR2-1276 .word .LANCHOR0 - .word .LANCHOR2-1654 - .word .LANCHOR2-1648 - .word .LANCHOR2-1662 + .word .LANCHOR2-1658 + .word .LANCHOR2-1664 + .word .LANCHOR2-1666 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 @@ -13522,33 +13846,34 @@ FtlLoadVonderInfo: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2359 - sub r2, r3, #1632 + ldr r3, .L2420 + sub r2, r3, #1648 add r0, r3, #1072 - add r0, r0, #8 - ldrh r1, [r2, #-12] - ldrh r2, [r2, #-10] - strh r1, [r0, #10] @ movhi + add r0, r0, #4 + ldrh r2, [r2] + strh r2, [r0, #10] @ movhi + ldr r2, .L2420+4 + strh r2, [r0, #4] @ movhi + sub r2, r3, #1280 + ldrh r2, [r2, #-8] + strh r2, [r0, #8] @ movhi + sub r2, r3, #1632 + ldrh r2, [r2, #-14] strh r2, [r0, #6] @ movhi - ldr r2, [r3, #-1388] - ldr r1, .L2359+4 - str r2, [r3, #1092] - ldr r2, [r3, #-1380] - strh r1, [r0, #4] @ movhi - sub r1, r3, #1280 - str r2, [r3, #1096] + ldr r2, [r3, #-1392] + str r2, [r3, #1088] ldr r2, [r3, #-1384] - ldrh r1, [r1, #-4] + str r2, [r3, #1092] + ldr r2, [r3, #-1388] + str r2, [r3, #1096] + ldr r2, [r3, #-1380] str r2, [r3, #1100] - ldr r2, [r3, #-1376] - strh r1, [r0, #8] @ movhi - str r2, [r3, #1104] bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2360: +.L2421: .align 2 -.L2359: +.L2420: .word .LANCHOR2 .word -3962 .fnend @@ -13563,78 +13888,78 @@ FtlL2PDataInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r1, #0 - ldr r4, .L2366 + ldr r4, .L2427 mvn r6, #0 - ldr r2, [r4, #-1636] - ldr r0, [r4, #-1396] + ldr r2, [r4, #-1640] + ldr r0, [r4, #-1400] mov r2, r2, asl #1 bl ftl_memset sub r3, r4, #1648 sub r2, r4, #1616 mov r1, #255 - ldrh r3, [r3, #-6] - ldrh r2, [r2, #-10] - ldr r0, [r4, #-1356] + ldrh r3, [r3, #-10] + ldrh r2, [r2, #-14] + ldr r0, [r4, #-1360] mul r2, r2, r3 bl ftl_memset - ldr r0, .L2366+4 + ldr r0, .L2427+4 mov r1, #0 mov lr, #12 sub r7, r0, #28 mov r5, r1 -.L2362: +.L2423: ldrh r2, [r0] add ip, r1, #1 uxth r1, r1 - ldr r3, .L2366 + ldr r3, .L2427 cmp r2, r1 - sub r8, r3, #1616 - bls .L2365 + bls .L2426 mul r8, lr, r1 - ldr r3, [r4, #-1360] + ldr r3, [r4, #-1364] add r2, r3, r8 str r5, [r2, #4] strh r6, [r3, r8] @ movhi ldrh r2, [r7] - ldr r3, [r4, #-1360] + ldr r3, [r4, #-1364] mul r2, r1, r2 add r3, r3, r8 - ldr r1, [r4, #-1356] + ldr r1, [r4, #-1360] bic r2, r2, #3 add r2, r1, r2 mov r1, ip str r2, [r3, #8] - b .L2362 -.L2365: - ldr r2, .L2366+8 - movw r0, #1032 + b .L2423 +.L2426: + ldr r2, .L2427+8 + movw r0, #1028 mvn r1, #0 strh r1, [r3, r0] @ movhi strh r1, [r2, #2] @ movhi - ldr r1, [r3, #-1636] + ldr r1, [r3, #-1640] strh r1, [r2, #10] @ movhi - ldr r1, .L2366+12 + ldr r1, .L2427+12 strh r1, [r2, #4] @ movhi - movw r1, #1148 + movw r1, #1144 ldrh r1, [r3, r1] strh r1, [r2, #8] @ movhi - ldrh r1, [r8, #-12] + sub r1, r3, #1632 + ldrh r1, [r1] strh r1, [r2, #6] @ movhi - ldr r2, [r3, #-1400] + ldr r2, [r3, #-1404] + str r2, [r3, #1040] + ldr r2, [r3, #-1368] str r2, [r3, #1044] - ldr r2, [r3, #-1364] + ldr r2, [r3, #-1400] str r2, [r3, #1048] - ldr r2, [r3, #-1396] + ldr r2, [r3, #-1376] str r2, [r3, #1052] - ldr r2, [r3, #-1372] - str r2, [r3, #1056] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2367: +.L2428: .align 2 -.L2366: +.L2427: .word .LANCHOR2 - .word .LANCHOR2-1626 - .word .LANCHOR2+1032 + .word .LANCHOR2-1630 + .word .LANCHOR2+1028 .word -3902 .fnend .size FtlL2PDataInit, .-FtlL2PDataInit @@ -13648,14 +13973,14 @@ FtlLoadMapInfo: stmfd sp!, {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2370 + ldr r0, .L2431 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2371: +.L2432: .align 2 -.L2370: - .word .LANCHOR2+1032 +.L2431: + .word .LANCHOR2+1028 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 2 @@ -13667,16 +13992,16 @@ ftl_sb_update_avl_pages: @ frame_needed = 0, uses_anonymous_args = 0 mov r3, #0 strh r3, [r0, #4] @ movhi - ldr r3, .L2382 + ldr r3, .L2443 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} movw r4, #65535 - ldrh lr, [r3, #-4] + ldrh lr, [r3, #-8] add r3, r2, #7 add r3, r0, r3, asl #1 -.L2373: +.L2434: cmp r2, lr - bcs .L2380 + bcs .L2441 ldrh ip, [r3, #2]! add r2, r2, #1 cmp ip, r4 @@ -13684,17 +14009,17 @@ ftl_sb_update_avl_pages: ldrneh ip, [r0, #4] addne ip, ip, #1 strneh ip, [r0, #4] @ movhi - b .L2373 -.L2380: - ldr r3, .L2382+4 + b .L2434 +.L2441: + ldr r3, .L2443+4 add ip, r0, #14 mov r2, #0 movw r5, #65535 - ldrh r4, [r3] -.L2376: + ldrh r4, [r3, #-4] +.L2437: uxth r3, r2 cmp r3, lr - bcs .L2381 + bcs .L2442 ldrh r3, [ip, #2]! add r2, r2, #1 cmp r3, r5 @@ -13703,12 +14028,12 @@ ftl_sb_update_avl_pages: subne r3, r3, #1 rsbne r3, r1, r3 strneh r3, [r0, #4] @ movhi - b .L2376 -.L2381: + b .L2437 +.L2442: ldmfd sp!, {r4, r5, pc} -.L2383: +.L2444: .align 2 -.L2382: +.L2443: .word .LANCHOR2-1728 .word .LANCHOR2-1664 .fnend @@ -13727,20 +14052,20 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r6, .L2394 - ldr r4, [r6, #-1404] + ldr r6, .L2455 + ldr r4, [r6, #-1408] mov r7, r0, asl #1 ldrh r3, [r4, r7] cmp r3, #0 addne r3, r3, #1 strneh r3, [r4, r7] @ movhi - bne .L2386 - ldr r4, [r6, #880] + bne .L2447 + ldr r4, [r6, #876] cmp r4, #0 - beq .L2386 - ldr r1, [r6, #-1352] - add r2, r6, #884 - ldr lr, .L2394+4 + beq .L2447 + ldr r1, [r6, #-1356] + add r2, r6, #880 + ldr lr, .L2455+4 movw r9, #65535 rsb r4, r1, r4 ldrh ip, [r2] @@ -13749,32 +14074,32 @@ FtlReUsePrevPpa: mul r4, lr, r4 mov lr, #6 uxth r4, r4 -.L2387: +.L2448: uxth r2, r3 cmp r2, ip - bcs .L2386 + bcs .L2447 cmp r4, r0 - bne .L2388 + bne .L2449 mov r1, r4 - ldr r0, .L2394+8 + ldr r0, .L2455+8 bl List_remove_node ldrh r3, [r8] mov r0, r4 sub r3, r3, #1 strh r3, [r8] @ movhi bl INSERT_DATA_LIST - ldr r2, [r6, #-1404] + ldr r2, [r6, #-1408] ldrh r3, [r2, r7] add r3, r3, #1 strh r3, [r2, r7] @ movhi - b .L2386 -.L2388: + b .L2447 +.L2449: mul r4, lr, r4 add r3, r3, #1 ldrh r4, [r1, r4] cmp r4, r9 - bne .L2387 -.L2386: + bne .L2448 +.L2447: mov r0, r5 add r1, sp, #4 mov r2, #1 @@ -13782,12 +14107,12 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2395: +.L2456: .align 2 -.L2394: +.L2455: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2+880 + .word .LANCHOR2+876 .fnend .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 @@ -13797,21 +14122,21 @@ make_superblock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2410 + ldr r3, .L2471 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r6, r0, #16 - ldrh r8, [r3, #-4] - add r7, r3, #24 + ldrh r8, [r3, #-8] + add r7, r3, #20 mov r4, r0 mvn r9, #0 mov r5, #0 strh r5, [r0, #4] @ movhi strb r5, [r0, #7] -.L2397: +.L2458: uxth r3, r5 cmp r3, r8 - bcs .L2409 + bcs .L2470 ldrb r0, [r7, r5] @ zero_extendqisi2 add r6, r6, #2 ldrh r1, [r4] @@ -13825,37 +14150,37 @@ make_superblock: ldreqb r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 streqb r3, [r4, #7] - b .L2397 -.L2409: - ldr r2, .L2410+4 + b .L2458 +.L2470: + ldr r2, .L2471+4 ldrb r1, [r4, #7] @ zero_extendqisi2 sub r3, r2, #1664 - ldrh r3, [r3] + ldrh r3, [r3, #-4] smulbb r3, r1, r3 strh r3, [r4, #4] @ movhi mov r3, #0 strb r3, [r4, #9] - ldr r3, [r2, #-1800] + ldr r3, [r2, #-1872] cmp r3, #0 - beq .L2400 + beq .L2461 ldrh r3, [r4] - ldr r2, [r2, #-1412] + ldr r2, [r2, #-1416] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #79 movls r3, #1 strlsb r3, [r4, #9] -.L2400: - ldr r3, .L2410+8 +.L2461: + ldr r3, .L2471+8 mov r0, #0 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 movne r3, #1 strneb r3, [r4, #9] ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2411: +.L2472: .align 2 -.L2410: +.L2471: .word .LANCHOR2-1728 .word .LANCHOR2 .word .LANCHOR0 @@ -13871,59 +14196,59 @@ FtlLoadSysInfo: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r1, #0 - ldr r4, .L2441 + ldr r4, .L2502 .pad #44 sub sp, sp, #44 - movw r6, #1132 - ldr r8, .L2441+4 - sub r5, r4, #1712 - ldr r3, [r4, #-1472] - ldrh r2, [r5, #-12] - ldr r0, [r4, #-1404] - str r3, [r4, #-1264] - ldr r3, [r4, #-1440] + movw r7, #1128 + ldr r9, .L2502+4 + sub r6, r4, #1728 + ldr r3, [r4, #-1476] + ldrh r2, [r6] + ldr r0, [r4, #-1408] + str r3, [r4, #-1268] + ldr r3, [r4, #-1444] mov r2, r2, asl #1 - str r3, [r4, #-1260] + str r3, [r4, #-1264] bl ftl_memset - ldrh r0, [r4, r6] + ldrh r0, [r4, r7] movw r3, #65535 cmp r0, r3 - str r5, [sp, #28] - bne .L2413 -.L2424: + bne .L2474 +.L2485: mvn r0, #0 - b .L2414 -.L2413: + b .L2475 +.L2474: mov r1, #1 bl FtlGetLastWrittenPage - ldrh r9, [r4, r6] - mov r6, r4 + ldrh r3, [r4, r7] + mov r7, r4 uxth r5, r0 + str r3, [sp, #28] add r0, r0, #1 - strh r0, [r8, #2] @ movhi -.L2415: + strh r0, [r9, #2] @ movhi +.L2476: sxth r3, r5 cmp r3, #0 - blt .L2423 - sxth fp, r9 + blt .L2484 + ldrsh fp, [sp, #28] mov r1, #1 - ldr r0, .L2441+8 + ldr r0, .L2502+8 mov r2, r1 orr r3, r3, fp, asl #10 + str r3, [r4, #-1272] + ldr r3, [r4, #-1476] str r3, [r4, #-1268] - ldr r3, [r4, #-1472] - str r3, [r4, #-1264] bl FlashReadPages - ldr r3, .L2441+12 + ldr r3, .L2502+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2416 - ldr r7, [r6, #-1260] - ldr r3, [r7, #12] + beq .L2477 + ldr r8, [r7, #-1264] + ldr r3, [r8, #12] cmp r3, #0 - beq .L2416 - ldr r2, [r6, #-1264] - ldr r10, .L2441+16 + beq .L2477 + ldr r2, [r7, #-1268] + ldr r10, .L2502+16 str r3, [sp, #36] mov r0, r2 str r2, [sp, #32] @@ -13931,233 +14256,235 @@ FtlLoadSysInfo: bl js_hash ldr r3, [sp, #36] cmp r3, r0 - beq .L2416 + beq .L2477 cmp r5, #0 ldr r2, [sp, #32] - bne .L2417 - ldrh r1, [r8, #4] - ldr ip, .L2441+4 + bne .L2478 + ldrh r1, [r9, #4] + ldr ip, .L2502+4 cmp fp, r1 - beq .L2417 - ldr r0, [r7] + beq .L2478 + ldr r0, [r8] ldrh r1, [ip] - str ip, [sp, #32] + str ip, [sp, #28] str r0, [sp] - ldr r0, [r7, #4] + ldr r0, [r8, #4] str r0, [sp, #4] - ldr r0, [r7, #8] + ldr r0, [r8, #8] str r3, [sp, #12] str r0, [sp, #8] ldr r3, [r2] - ldr r0, .L2441+20 + ldr r0, .L2502+20 str r3, [sp, #16] - ldr r2, [r6, #-1272] - ldr r3, [r6, #-1268] + ldr r3, [r7, #-1272] + ldr r2, [r7, #-1276] bl printk ldrh r5, [r10, #-8] - ldr ip, [sp, #32] - ldrh r9, [ip, #4] - b .L2419 -.L2417: + ldr ip, [sp, #28] + ldrh r3, [ip, #4] + str r3, [sp, #28] + b .L2480 +.L2478: mvn r3, #0 - str r3, [r4, #-1272] -.L2416: - ldr r3, [r4, #-1272] + str r3, [r4, #-1276] +.L2477: + ldr r3, [r4, #-1276] cmn r3, #1 - beq .L2419 - ldr r3, [r6, #-1472] - ldr r2, .L2441+24 + beq .L2480 + ldr r3, [r7, #-1476] + ldr r2, .L2502+24 ldr r3, [r3] cmp r3, r2 - bne .L2419 - ldr r3, [r6, #-1440] + bne .L2480 + ldr r3, [r7, #-1444] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L2419 -.L2423: - ldr r5, .L2441 + bne .L2480 +.L2484: + ldr r5, .L2502 mov r2, #48 - ldr r1, [r4, #-1264] - add r0, r5, #820 - sub r6, r5, #1712 + ldr r1, [r4, #-1268] + add r0, r5, #816 + sub r7, r5, #1728 bl ftl_memcpy - ldr r1, [r4, #-1264] - ldr r0, [r4, #-1404] + ldrh r2, [r6] + ldr r1, [r4, #-1268] + ldr r0, [r4, #-1408] add r1, r1, #48 - ldr r3, [sp, #28] - ldrh r2, [r3, #-12] mov r2, r2, asl #1 bl ftl_memcpy - ldr r1, [r4, #-1264] - ldr r0, [r4, #-1392] - ldr r3, [sp, #28] - ldrh r2, [r3, #-12] - add r3, r2, #24 - ubfx r3, r3, #1, #30 + ldrh r2, [r6] + ldr r1, [r4, #-1268] + ldr r0, [r4, #-1396] + mov r3, r2, asl #1 mov r2, r2, lsr #3 + add r3, r3, #51 add r2, r2, #4 - add r1, r1, r3, asl #2 + bic r3, r3, #3 + add r1, r1, r3 bl ftl_memcpy - sub r2, r5, #1616 - ldrh r3, [r2, #-8] + sub r3, r5, #1616 + ldrh r3, [r3, #-12] cmp r3, #0 - beq .L2421 - ldrh r1, [r6, #-12] - ldrh r2, [r2, #-12] - ldr r0, [r5, #-1368] - mov r3, r1, lsr #3 - add r3, r3, r1, asl #1 - ldr r1, [r5, #-1264] + beq .L2482 + ldrh r2, [r7] + ldr r1, [r5, #-1268] + ldr r0, [r5, #-1372] + mov r3, r2, lsr #3 + add r3, r3, r2, asl #1 + sub r2, r5, #1632 add r3, r3, #52 - mov r2, r2, asl #2 + ldrh r2, [r2] ubfx r3, r3, #2, #14 add r1, r1, r3, asl #2 + mov r2, r2, asl #2 bl ftl_memcpy - b .L2421 -.L2419: + b .L2482 +.L2480: sub r5, r5, #1 uxth r5, r5 - b .L2415 -.L2421: - ldr r2, [r4, #820] - ldr r3, .L2441+24 - ldr r5, .L2441 + b .L2476 +.L2482: + ldr r2, [r4, #816] + ldr r3, .L2502+24 + ldr r5, .L2502 cmp r2, r3 - bne .L2424 - sub r2, r5, #1696 - add r6, r5, #820 - ldrb r1, [r5, #830] @ zero_extendqisi2 - ldrh r2, [r2, #-14] - ldrh r3, [r6, #8] + bne .L2485 + sub r2, r5, #1712 + add r8, r5, #816 + ldrb r1, [r5, #826] @ zero_extendqisi2 + ldrh r2, [r2, #-2] + ldrh r3, [r8, #8] cmp r1, r2 - strh r3, [r8, #6] @ movhi - bne .L2424 + strh r3, [r9, #6] @ movhi + bne .L2485 sub r2, r5, #1664 sub r1, r5, #1648 - ldr r7, .L2441+28 - ldrh r2, [r2] - ldrh r1, [r1, #-10] - str r3, [r7, #1160] + ldr r7, .L2502+28 + ldrh r2, [r2, #-4] + ldrh r1, [r1, #-14] + str r3, [r7, #1156] mul r2, r3, r2 - str r2, [r5, #-1280] + str r2, [r5, #-1284] mul r2, r1, r2 + ldrh r1, [r6, #-8] + mov r6, #0 str r2, [r5, #-2740] - sub r2, r5, #1344 + ldr r2, .L2502+32 ldrh r0, [r2, #6] - ldr r2, [r5, #-1720] + ldr r2, [r5, #-1724] rsb r0, r0, r2 - sub r2, r5, #1728 rsb r0, r3, r0 - ldrh r1, [r2, #-4] bl __aeabi_uidiv - movw r3, #1164 - ldrh ip, [r6, #14] - add r2, r5, #888 - add lr, r7, #1168 - strh ip, [r2] @ movhi - mov r8, lr - strh r0, [r7, r3] @ movhi - ldrh r3, [r6, #16] - mov r1, r3, lsr #6 - strh r1, [r2, #2] @ movhi - ldrh r1, [r6, #18] - add r2, r5, #936 - and r3, r3, #63 - strb r3, [r5, #894] - ldrb r3, [r5, #831] @ zero_extendqisi2 + movw r3, #1160 + ldrh r1, [r8, #14] + add r2, r5, #884 + strb r6, [r7, #1170] + strb r6, [r7, #1172] strh r1, [r2] @ movhi - ldrh r1, [r6, #20] - strb r3, [r5, #896] - mvn r3, #0 - strh r3, [lr] @ movhi - mov r3, #0 - mov r0, r1, lsr #6 - and r1, r1, #63 - strb r1, [r5, #942] - ldrb r1, [r5, #832] @ zero_extendqisi2 + str r6, [r5, #-1608] + strh r0, [r7, r3] @ movhi + ldrh r3, [r8, #16] + mov r0, r3, lsr #6 + and r3, r3, #63 + strb r3, [r5, #890] + ldrb r3, [r5, #827] @ zero_extendqisi2 strh r0, [r2, #2] @ movhi - add r0, r5, #984 - strb r3, [r7, #1174] - strb r1, [r5, #944] - ldrh r1, [r6, #22] - strb r3, [r7, #1176] - mov r7, r0 - strh r3, [lr, #2] @ movhi - strh r1, [r0] @ movhi - ldrh r1, [r6, #24] - str r3, [r5, #-1604] - mov r6, r1, lsr #6 - and r1, r1, #63 - strb r1, [r5, #990] - ldrb r1, [r5, #833] @ zero_extendqisi2 - strh r6, [r0, #2] @ movhi - mov r6, r2 - strb r1, [r5, #992] - str r3, [r5, #-1600] - ldr r1, [r5, #852] - str r3, [r5, #-1584] - str r3, [r5, #-1588] - str r3, [r5, #-1576] - str r3, [r5, #-1568] - str r3, [r5, #-1592] - ldr r3, [r5, #860] - str r1, [r5, #-1580] - ldr r1, [r5, #-1612] - ldr r2, [r4, #-1608] - cmp r3, r1 - strhi r3, [r5, #-1612] - ldr r3, [r4, #856] + mvn r2, #0 + strb r3, [r5, #892] + movw r3, #1164 + strh r2, [r7, r3] @ movhi + ldr r3, .L2502+36 + ldrh r2, [r8, #18] + strh r6, [r3, #2] @ movhi + add r3, r5, #932 + strh r2, [r3] @ movhi + ldrh r2, [r8, #20] + mov r0, r2, lsr #6 + and r2, r2, #63 + strb r2, [r5, #938] + ldrb r2, [r5, #828] @ zero_extendqisi2 + strh r0, [r3, #2] @ movhi + ldrh r0, [r8, #22] + ldrh r8, [r8, #24] + strb r2, [r5, #940] + add r2, r5, #980 + strh r0, [r2] @ movhi + mov r0, r8, lsr #6 + strh r0, [r2, #2] @ movhi + and r8, r8, #63 + ldrb r0, [r5, #829] @ zero_extendqisi2 + mov r9, r2 + strb r8, [r5, #986] + strb r0, [r5, #988] + str r6, [r5, #-1604] + ldr r0, [r5, #848] + ldr r2, [r4, #-1612] + ldr ip, [r5, #-1616] + str r0, [r5, #-1584] + ldr r0, [r5, #856] + str r6, [r5, #-1588] + str r6, [r5, #-1592] + cmp r0, ip + str r6, [r5, #-1580] + str r6, [r5, #-1572] + str r6, [r5, #-1596] + mov r6, r3 + ldr r3, [r4, #852] + strhi r0, [r5, #-1616] cmp r3, r2 - ldrhi r2, .L2441 - strhi r3, [r2, #-1608] + ldrhi r2, .L2502 + strhi r3, [r2, #-1612] movw r3, #65535 - cmp ip, r3 - beq .L2427 - ldr r0, .L2441+32 + cmp r1, r3 + beq .L2488 + ldr r0, .L2502+40 bl make_superblock -.L2427: +.L2488: ldrh r2, [r6] movw r3, #65535 cmp r2, r3 - beq .L2428 - ldr r0, .L2441+36 + beq .L2489 + ldr r0, .L2502+44 bl make_superblock -.L2428: - ldrh r2, [r7] +.L2489: + ldrh r2, [r9] movw r3, #65535 cmp r2, r3 - beq .L2429 - ldr r0, .L2441+40 + beq .L2490 + ldr r0, .L2502+48 bl make_superblock -.L2429: - ldrh r2, [r8] +.L2490: + movw r3, #1164 + ldrh r2, [r7, r3] movw r3, #65535 cmp r2, r3 - beq .L2430 - ldr r0, .L2441+44 + beq .L2491 + ldr r0, .L2502+36 bl make_superblock -.L2430: +.L2491: mov r0, #0 -.L2414: +.L2475: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2442: +.L2503: .align 2 -.L2441: +.L2502: .word .LANCHOR2 - .word .LANCHOR2+1132 - .word .LANCHOR2-1272 + .word .LANCHOR2+1128 + .word .LANCHOR2-1276 .word .LANCHOR0 - .word .LANCHOR2-1654 - .word .LC61 + .word .LANCHOR2-1658 + .word .LC64 .word 1179929683 .word .LANCHOR4 - .word .LANCHOR2+888 - .word .LANCHOR2+936 - .word .LANCHOR2+984 - .word .LANCHOR4+1168 + .word .LANCHOR2-1348 + .word .LANCHOR4+1164 + .word .LANCHOR2+884 + .word .LANCHOR2+932 + .word .LANCHOR2+980 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 @@ -14174,82 +14501,81 @@ FtlDumpBlockInfo: sub sp, sp, #100 mov r4, r1 bl P2V_block_in_plane - ldr r6, .L2457 - ldr r1, .L2457+4 - sub r5, r6, #1664 - ldrh r9, [r5] - mov r7, r0 - ldr r0, .L2457+8 + ldr r7, .L2518 + ldr r1, .L2518+4 + sub r5, r7, #1664 + ldrh r9, [r5, #-4] + mov r6, r0 + ldr r0, .L2518+8 bl printk - ldr r2, [r6, #-1404] - mov r3, r7, asl #1 - mov r1, r7 - ldr r0, .L2457+12 + ldr r2, [r7, #-1408] + mov r3, r6, asl #1 + mov r1, r6 + ldr r0, .L2518+12 ldrh r2, [r2, r3] bl printk add r0, sp, #96 - strh r7, [r0, #-48]! @ movhi + strh r6, [r0, #-48]! @ movhi bl make_superblock - ldrb r2, [r6, #-2744] @ zero_extendqisi2 + ldrb r2, [r7, #-2744] @ zero_extendqisi2 clz r3, r4 cmp r2, #0 mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 moveq r4, r3 - beq .L2444 - mov r0, r7 + str r7, [sp, #44] + beq .L2505 + mov r0, r6 bl ftl_get_blk_mode cmp r0, #1 mov r4, r0 - subeq r3, r6, #1648 - ldreqh r9, [r3, #-14] -.L2444: - ldr r0, .L2457+16 + ldreqh r9, [r5, #-2] +.L2505: + ldr r0, .L2518+16 mov r1, r4 mov r2, r9 - ldrh r3, [r5] + ldrh r3, [r5, #-4] bl printk - ldr r8, .L2457 - mov r7, #0 -.L2445: - ldr r3, .L2457+20 + ldr r8, .L2518 + mov r6, #0 +.L2506: + ldr r3, .L2518+20 mov r2, #0 add r0, sp, #62 mov r5, r2 movw lr, #65535 mov r10, #36 ldrh r3, [r3] + mov r7, r3 + ldr r3, [r8, #-1504] str r3, [sp, #28] - ldr r3, [r8, #-1500] + ldr r3, [r8, #-1464] str r3, [sp, #32] - ldr r3, [r8, #-1460] - str r3, [sp, #36] - ldr r3, .L2457+24 + ldr r3, .L2518+24 ldrh r3, [r3] + str r3, [sp, #36] + ldr r3, [r8, #-1436] str r3, [sp, #40] - ldr r3, [r8, #-1432] - str r3, [sp, #44] - ldr r3, .L2457+28 + ldr r3, .L2518+28 ldrh ip, [r3] -.L2446: - ldr r1, [sp, #28] +.L2507: uxth r3, r2 - cmp r3, r1 - bcs .L2455 + cmp r3, r7 + bcs .L2516 ldrh r3, [r0, #2]! cmp r3, lr - beq .L2447 - ldr r1, [sp, #32] - orr r3, r7, r3, asl #10 + beq .L2508 + ldr r1, [sp, #28] + orr r3, r6, r3, asl #10 mla r1, r10, r5, r1 str r3, [r1, #4] - ldr r3, [sp, #40] + ldr r3, [sp, #36] mul r3, r3, r5 add fp, r3, #3 cmp r3, #0 movlt r3, fp - ldr fp, [sp, #36] + ldr fp, [sp, #32] bic r3, r3, #3 add r3, fp, r3 str r3, [r1, #8] @@ -14259,70 +14585,71 @@ FtlDumpBlockInfo: add fp, r3, #3 cmp r3, #0 movlt r3, fp - ldr fp, [sp, #44] + ldr fp, [sp, #40] bic r3, r3, #3 add r3, fp, r3 str r3, [r1, #12] -.L2447: +.L2508: add r2, r2, #1 - b .L2446 -.L2455: - ldr r0, [r8, #-1500] + b .L2507 +.L2516: + ldr r0, [r8, #-1504] mov r1, r5 mov r2, r4 mov r10, #0 bl FlashReadPages -.L2449: + mov fp, #36 +.L2510: uxth r3, r10 cmp r3, r5 - bcs .L2456 - mov r3, #36 - ldr lr, [r6, #-1500] - mul r2, r3, r10 + bcs .L2517 + ldr r3, [sp, #44] + mul r2, fp, r10 ldrh r1, [sp, #48] + ldr lr, [r3, #-1504] add r10, r10, #1 add ip, lr, r2 ldr r3, [ip, #12] ldr r0, [ip, #8] - ldr fp, [r3] - str fp, [sp] - ldr fp, [r3, #4] - str fp, [sp, #4] - ldr fp, [r3, #8] - str fp, [sp, #8] + ldr r7, [r3] + str r7, [sp] + ldr r7, [r3, #4] + str r7, [sp, #4] + ldr r7, [r3, #8] + str r7, [sp, #8] ldr r3, [r3, #12] str r3, [sp, #12] ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2457+32 + ldr r0, .L2518+32 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2449 -.L2456: - add r7, r7, #1 - uxth r7, r7 - cmp r7, r9 - bne .L2445 -.L2451: + b .L2510 +.L2517: + add r6, r6, #1 + uxth r6, r6 + cmp r6, r9 + bne .L2506 +.L2512: mov r0, #0 add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2458: +.L2519: .align 2 -.L2457: +.L2518: .word .LANCHOR2 - .word .LANCHOR3+28 - .word .LC48 - .word .LC62 - .word .LC63 - .word .LANCHOR2-1732 - .word .LANCHOR2-1654 - .word .LANCHOR2-1652 - .word .LC57 + .word .LANCHOR3+160 + .word .LC50 + .word .LC65 + .word .LC66 + .word .LANCHOR2-1736 + .word .LANCHOR2-1658 + .word .LANCHOR2-1656 + .word .LC60 .fnend .size FtlDumpBlockInfo, .-FtlDumpBlockInfo .align 2 @@ -14336,54 +14663,54 @@ FtlScanAllBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #92 sub sp, sp, #92 - ldr r0, .L2474 + ldr r0, .L2535 mov r7, #0 - ldr r1, .L2474+4 + ldr r1, .L2535+4 bl printk - ldr r5, .L2474+8 + ldr r5, .L2535+8 mov r6, r5 -.L2460: - ldr r3, .L2474+12 +.L2521: + ldr r3, .L2535+12 uxth r4, r7 ldrh r3, [r3] cmp r3, r4 - bls .L2470 + bls .L2531 add r8, sp, #88 mov r0, r4 movw r9, #65535 mov r10, #36 strh r4, [r8, #-48]! @ movhi bl ftl_get_blk_mode - ldr ip, [r5, #-1404] + ldr ip, [r5, #-1408] mov r2, r4, asl #1 mov r1, r4 ldrh r2, [ip, r2] mov r3, r0 - ldr r0, .L2474+16 + ldr r0, .L2535+16 bl printk mov r0, r8 bl make_superblock - ldr r3, .L2474+20 - ldr lr, [r5, #-1432] + ldr r3, .L2535+20 + ldr lr, [r5, #-1436] ldrh r2, [r3] ldrh ip, [r3, #78] ldrh r8, [r3, #80] str r2, [sp, #28] add r0, sp, #54 - ldr r2, [r5, #-1500] + ldr r2, [r5, #-1504] str r2, [sp, #32] - ldr r2, [r5, #-1460] + ldr r2, [r5, #-1464] str r2, [sp, #36] mov r2, #0 mov r4, r2 -.L2461: +.L2522: ldr r1, [sp, #28] uxth r3, r2 cmp r3, r1 - bcs .L2471 + bcs .L2532 ldrh r3, [r0, #2]! cmp r3, r9 - beq .L2462 + beq .L2523 ldr r1, [sp, #32] mov r3, r3, asl #10 mla r1, r10, r4, r1 @@ -14405,22 +14732,22 @@ FtlScanAllBlock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2462: +.L2523: add r2, r2, #1 - b .L2461 -.L2471: - ldr r0, [r6, #-1500] + b .L2522 +.L2532: + ldr r0, [r6, #-1504] mov r1, r4 mov r2, #0 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2464: +.L2525: uxth r3, r8 cmp r3, r4 - bcs .L2472 + bcs .L2533 mul r2, r9, r8 - ldr lr, [r6, #-1500] + ldr lr, [r6, #-1504] ldrh r1, [sp, #40] add r8, r8, #1 add ip, lr, r2 @@ -14437,25 +14764,25 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2474+24 + ldr r0, .L2535+24 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2464 -.L2472: - ldr r0, [r6, #-1500] + b .L2525 +.L2533: + ldr r0, [r6, #-1504] mov r1, r4 mov r2, #1 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2466: +.L2527: uxth r3, r8 cmp r3, r4 - bcs .L2473 + bcs .L2534 mul r2, r9, r8 - ldr lr, [r6, #-1500] + ldr lr, [r6, #-1504] ldrh r1, [sp, #40] add r8, r8, #1 add ip, lr, r2 @@ -14472,31 +14799,31 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2474+28 + ldr r0, .L2535+28 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2466 -.L2473: + b .L2527 +.L2534: add r7, r7, #1 - b .L2460 -.L2470: + b .L2521 +.L2531: mov r0, #0 add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2475: +.L2536: .align 2 -.L2474: - .word .LC48 - .word .LANCHOR3+48 +.L2535: + .word .LC50 + .word .LANCHOR3+180 .word .LANCHOR2 - .word .LANCHOR2-1722 - .word .LC64 - .word .LANCHOR2-1732 - .word .LC65 - .word .LC66 + .word .LANCHOR2-1726 + .word .LC67 + .word .LANCHOR2-1736 + .word .LC68 + .word .LC69 .fnend .size FtlScanAllBlock, .-FtlScanAllBlock .align 2 @@ -14509,41 +14836,40 @@ SupperBlkListInit: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r2, #6 - ldr r6, .L2488 + ldr r4, .L2549 mov r1, #0 .pad #28 sub sp, sp, #28 - sub r3, r6, #1712 - ldr r0, [r6, #-1352] - mov r5, r6 - ldrh r3, [r3, #-10] - mov fp, r6 + sub r3, r4, #1712 + ldr r0, [r4, #-1356] + mov fp, r4 + ldrh r3, [r3, #-14] mul r2, r2, r3 bl ftl_memset mov r3, #0 - add r1, r6, #876 - add r2, r6, #884 - sub r0, r6, #1616 - mov r4, r3 + add r1, r4, #872 + add r2, r4, #880 + sub r0, r4, #1616 + mov r5, r3 mov r8, r3 mov r9, r3 - str r3, [r6, #880] - str r3, [r6, #868] - str r3, [r6, #872] + str r3, [r4, #876] + str r3, [r4, #864] + str r3, [r4, #868] strh r3, [r1] @ movhi strh r3, [r2] @ movhi - strh r3, [r0, #-6] @ movhi + strh r3, [r0, #-10] @ movhi str r1, [sp, #8] str r2, [sp, #12] -.L2477: - ldr r3, .L2488+4 - uxth r7, r4 +.L2538: + ldr r3, .L2549+4 + uxth r7, r5 sxth r10, r7 ldrh r2, [r3] cmp r10, r2 - bge .L2484 + bge .L2545 sub r3, r3, #8 - ldr r2, .L2488+8 + ldr r2, .L2549+8 mov ip, r7 ldrh r3, [r3] str r3, [sp] @@ -14551,15 +14877,15 @@ SupperBlkListInit: mov r2, #0 mov r6, r2 str r3, [sp, #4] -.L2485: +.L2546: ldr r3, [sp] sxth r1, r2 cmp r1, r3 - bge .L2487 - add r1, r5, r1 + bge .L2548 + add r1, r4, r1 str r2, [sp, #20] str ip, [sp, #16] - ldrb r0, [r1, #-1704] @ zero_extendqisi2 + ldrb r0, [r1, #-1708] @ zero_extendqisi2 mov r1, ip bl V2P_block bl FtlBbmIsBadBlock @@ -14570,54 +14896,54 @@ SupperBlkListInit: add r2, r2, #1 addeq r6, r3, r6 uxtheq r6, r6 - b .L2485 -.L2487: + b .L2546 +.L2548: cmp r6, #0 - beq .L2480 + beq .L2541 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L2481 -.L2480: + b .L2542 +.L2541: sxth r7, r7 - ldr r2, [r5, #-1404] + ldr r2, [r4, #-1408] mvn r1, #0 mov r7, r7, asl #1 strh r1, [r2, r7] @ movhi -.L2481: +.L2542: mov r1, r10, asl #1 - ldr r2, [r5, #-1352] + ldr r2, [r4, #-1356] add r0, r1, r10 add r2, r2, r0, asl #1 strh r6, [r2, #4] @ movhi - ldr r2, .L2488+12 + ldr r2, .L2549+12 ldrh r0, [r2] cmp r10, r0 - beq .L2482 + beq .L2543 ldrh r0, [r2, #48] cmp r10, r0 - beq .L2482 + beq .L2543 ldrh r2, [r2, #96] cmp r10, r2 - beq .L2482 - ldr r3, [fp, #-1404] - uxth r0, r4 + beq .L2543 + ldr r3, [fp, #-1408] + uxth r0, r5 ldrh r3, [r3, r1] cmp r3, #0 - bne .L2483 + bne .L2544 add r8, r8, #1 uxth r8, r8 bl INSERT_FREE_LIST - b .L2482 -.L2483: + b .L2543 +.L2544: add r9, r9, #1 uxth r9, r9 bl INSERT_DATA_LIST -.L2482: - add r4, r4, #1 - b .L2477 -.L2484: +.L2543: + add r5, r5, #1 + b .L2538 +.L2545: ldr r3, [sp, #8] mov r0, #0 strh r9, [r3] @ movhi @@ -14626,13 +14952,13 @@ SupperBlkListInit: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2489: +.L2550: .align 2 -.L2488: +.L2549: .word .LANCHOR2 - .word .LANCHOR2-1724 - .word .LANCHOR2-1664 - .word .LANCHOR2+888 + .word .LANCHOR2-1728 + .word .LANCHOR2-1668 + .word .LANCHOR2+884 .fnend .size SupperBlkListInit, .-SupperBlkListInit .align 2 @@ -14643,53 +14969,54 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2492 - ldr r3, .L2492+4 - ldr r1, [r2, #1216] - cmp r1, r3 + ldr r3, .L2553 + ldr r2, .L2553+4 + ldr r1, [r3, #1212] + cmp r1, r2 bxne lr - ldr r3, .L2492+8 + ldr r2, .L2553+8 mov r0, #0 - add r2, r2, #1216 - str r3, [r2, #4] - ldr r3, [r2, #512] - str r3, [r2, #88] - ldr r3, [r2, #516] - str r3, [r2, #92] - ldr r3, .L2492+12 - ldr r1, [r3, #-1604] - str r1, [r2, #8] - ldr r1, [r3, #-1600] - str r1, [r2, #12] - ldr r1, [r3, #-1584] - str r1, [r2, #16] - ldr r1, [r3, #-1588] - str r1, [r2, #20] - ldr r1, [r3, #-1576] - str r1, [r2, #28] - ldr r1, [r3, #-1572] - str r1, [r2, #32] - ldr r1, [r3, #-1596] - str r1, [r2, #36] - ldr r1, [r3, #-1592] - str r1, [r2, #40] - ldr r1, [r3, #-1568] - str r1, [r2, #44] - ldr r1, [r3, #-1564] - str r1, [r2, #48] - ldr r1, [r3, #-1616] - ldr r3, [r3, #-1620] - str r1, [r2, #60] + str r2, [r3, #1216] + ldr r2, [r3, #1724] + str r2, [r3, #1300] + ldr r2, [r3, #1728] + str r2, [r3, #1304] + ldr r2, .L2553+12 + ldr r1, [r2, #-1608] + str r1, [r3, #1220] + ldr r1, [r2, #-1604] + str r1, [r3, #1224] + ldr r1, [r2, #-1588] + str r1, [r3, #1228] + ldr r1, [r2, #-1592] + str r1, [r3, #1232] + ldr r1, [r2, #-1580] + str r1, [r3, #1240] + ldr r1, [r2, #-1576] + str r1, [r3, #1244] + ldr r1, [r2, #-1600] + str r1, [r3, #1248] + ldr r1, [r2, #-1596] + str r1, [r3, #1252] + ldr r1, [r2, #-1572] + str r1, [r3, #1256] + ldr r1, [r2, #-1568] + str r1, [r3, #1260] + ldr r1, [r2, #-1620] + ldr r2, [r2, #-1624] + str r1, [r3, #1272] mov r1, #1 - str r3, [r2, #64] + str r2, [r3, #1276] + ldr r2, .L2553+16 b FtlVendorPartWrite -.L2493: +.L2554: .align 2 -.L2492: +.L2553: .word .LANCHOR4 .word 1179929683 - .word 1342177376 + .word 1342177379 .word .LANCHOR2 + .word .LANCHOR4+1212 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 @@ -14701,41 +15028,41 @@ FtlEctTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2502 - ldr r2, [r3, #-1800] + ldr r3, .L2563 + ldr r2, [r3, #-1872] cmp r2, #0 moveq r2, #32 - beq .L2495 - ldr r2, [r3, #-1564] + beq .L2556 + ldr r2, [r3, #-1568] cmp r2, #39 movhi r2, #32 movls r2, #4 -.L2495: - ldr lr, .L2502+4 - movw ip, #1736 +.L2556: + ldr lr, .L2563+4 + movw ip, #1732 ldrh r1, [lr, ip] cmp r1, #31 addls r1, r1, #1 strlsh r1, [lr, ip] @ movhi movls r2, #1 cmp r0, #0 - bne .L2497 - ldr r1, [r3, #-1416] + bne .L2558 + ldr r1, [r3, #-1420] ldr r0, [r1, #20] ldr r1, [r1, #16] add r2, r2, r0 cmp r1, r2 - bcc .L2498 -.L2497: - ldr r2, [r3, #-1416] + bcc .L2559 +.L2558: + ldr r2, [r3, #-1420] mov r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L2502+8 + ldr r1, .L2563+8 str r1, [r2] - ldr r2, [r3, #-1416] - ldr r3, .L2502+12 - ldrh r1, [r3] + ldr r2, [r3, #-1420] + ldr r3, .L2563+12 + ldrh r1, [r3, #-4] mov r3, r1, asl #9 str r3, [r2, #12] ldr r3, [r2, #8] @@ -14745,12 +15072,12 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2498: +.L2559: mov r0, #0 ldmfd sp!, {r3, pc} -.L2503: +.L2564: .align 2 -.L2502: +.L2563: .word .LANCHOR2 .word .LANCHOR4 .word 1112818501 @@ -14767,91 +15094,92 @@ Ftl_load_ext_data: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r5, .L2510 + ldr r5, .L2571 mov r1, #1 - ldr r4, .L2510+4 - add r2, r5, #1216 + ldr r2, .L2571+4 bl FtlVendorPartRead - ldr r3, [r5, #1216] + ldr r4, .L2571+8 + ldr r3, [r5, #1212] cmp r3, r4 - beq .L2505 - add r0, r5, #1216 + beq .L2566 + ldr r0, .L2571+4 mov r1, #0 mov r2, #512 bl ftl_memset - str r4, [r5, #1216] -.L2505: - ldr r2, [r5, #1216] - ldr r3, .L2510 + str r4, [r5, #1212] +.L2566: + ldr r2, [r5, #1212] + ldr r3, .L2571 cmp r2, r4 - ldr r4, .L2510+8 - bne .L2506 + ldr r4, .L2571+12 + bne .L2567 + ldr r2, [r3, #1300] + str r2, [r3, #1724] ldr r2, [r3, #1304] str r2, [r3, #1728] - ldr r2, [r3, #1308] - str r2, [r3, #1732] + ldr r2, [r3, #1220] + str r2, [r4, #-1608] ldr r2, [r3, #1224] str r2, [r4, #-1604] ldr r2, [r3, #1228] - str r2, [r4, #-1600] - ldr r2, [r3, #1232] - str r2, [r4, #-1584] - ldr r2, [r3, #1236] str r2, [r4, #-1588] + ldr r2, [r3, #1232] + str r2, [r4, #-1592] + ldr r2, [r3, #1240] + str r2, [r4, #-1580] ldr r2, [r3, #1244] str r2, [r4, #-1576] ldr r2, [r3, #1248] - str r2, [r4, #-1572] + str r2, [r4, #-1600] ldr r2, [r3, #1252] str r2, [r4, #-1596] ldr r2, [r3, #1256] - str r2, [r4, #-1592] + str r2, [r4, #-1572] ldr r2, [r3, #1260] + ldr r3, [r3, #1272] str r2, [r4, #-1568] - ldr r2, [r3, #1264] - ldr r3, [r3, #1276] - str r2, [r4, #-1564] - str r3, [r4, #-1616] -.L2506: - ldr r0, [r5, #1284] + str r3, [r4, #-1620] +.L2567: + ldr r0, [r5, #1280] mov r2, #0 - ldr r1, .L2510+12 - ldr r3, .L2510+8 + ldr r1, .L2571+16 + ldr r3, .L2571+12 cmp r0, r1 - str r2, [r4, #-1620] - bne .L2507 + str r2, [r4, #-1624] + bne .L2568 ldrb r1, [r3, #-2744] @ zero_extendqisi2 cmp r1, r2 - beq .L2508 - ldr r3, .L2510 - str r2, [r3, #1284] + beq .L2569 + ldr r3, .L2571 + str r2, [r3, #1280] bl Ftl_save_ext_data - b .L2507 -.L2508: - ldr r0, .L2510+16 + b .L2568 +.L2569: + ldr r0, .L2571+20 mov r2, #1 - ldr r1, .L2510+20 - str r2, [r3, #-1800] + ldr r1, .L2571+24 + str r2, [r3, #-1872] bl printk -.L2507: - ldr r3, .L2510+24 - ldr r2, [r4, #-1576] - ldr r0, [r4, #-1580] - ldrh r1, [r3, #-8] +.L2568: + ldr r3, .L2571+28 + ldr r2, [r4, #-1580] + ldr r0, [r4, #-1584] + ldrh r1, [r3, #-12] mla r0, r0, r1, r2 - ldrh r1, [r3, #-60] + ldrh r1, [r3, #-64] bl __aeabi_uidiv - str r0, [r5, #1740] + str r0, [r5, #1736] ldmfd sp!, {r3, r4, r5, pc} -.L2511: +.L2572: .align 2 -.L2510: +.L2571: .word .LANCHOR4 + .word .LANCHOR4+1212 .word 1179929683 .word .LANCHOR2 .word 305432421 - .word .LC46 - .word .LC67 + .word .LC48 + .word .LC70 .word .LANCHOR2-1664 .fnend .size Ftl_load_ext_data, .-Ftl_load_ext_data @@ -14862,43 +15190,81 @@ ftl_scan_all_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #28 - sub sp, sp, #28 - ldr r5, .L2519 - mov r7, #0 - ldr r0, .L2519+4 - sub r9, r5, #2 - add r4, r5, #1664 - ldrh r1, [r5, #-2] - ldrh r2, [r5] - bl printk -.L2513: + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + .pad #24 + sub sp, sp, #24 + ldr r7, .L2592 + ldr r9, .L2592+4 + ldrh r4, [r7, #-6] + add r7, r7, #1664 + sub r4, r4, #16 + mov r5, r7 +.L2574: ldrh r3, [r9] - cmp r7, r3 - bcs .L2515 - mov r8, r7, asl #10 + cmp r4, r3 + bge .L2590 + uxth r10, r4 + mov r0, r10 + bl ftl_get_blk_mode + ldrb r3, [r7, #-2744] @ zero_extendqisi2 + cmp r3, #0 + beq .L2575 + ldr r3, .L2592+8 + ldrh r2, [r3] + cmp r4, r2 + bge .L2576 + ldrh r3, [r3, #74] + cmp r4, r3 + blt .L2576 +.L2575: + cmp r0, #1 + bne .L2577 +.L2576: + ldr r3, .L2592+12 + mov r6, #-2147483648 + ldrh r8, [r3] + b .L2578 +.L2577: + ldr r3, .L2592+16 mov r6, #0 -.L2516: - ldrh r3, [r5] - cmp r6, r3 - bcs .L2518 - add r3, r6, r8 - str r3, [r4, #-1268] - ldr r3, [r4, #-1472] + ldrh r8, [r3] +.L2578: + mov r1, r4 + mov r2, r8 + mov r3, r6 + ldr r0, .L2592+20 + bl printk + mov r0, r10 + bl FtlBbmIsBadBlock + cmp r0, #0 + beq .L2579 + ldr r0, .L2592+24 + mov r1, r4 + mov r2, r8 + mov r3, r6 + bl printk +.L2579: + add r6, r6, r4, asl #10 + mov r10, #0 +.L2580: + cmp r10, r8 + beq .L2591 + add r3, r6, r10 + str r3, [r5, #-1272] + ldr r3, [r5, #-1476] mov r2, #0 mov r1, #1 - ldr r0, .L2519+8 - str r2, [r4, #-1272] - add r6, r6, #1 - str r3, [r4, #-1264] - ldr r3, [r4, #-1440] - str r3, [r4, #-1260] + ldr r0, .L2592+28 + str r2, [r5, #-1276] + add r10, r10, #1 + str r3, [r5, #-1268] + ldr r3, [r5, #-1444] + str r3, [r5, #-1264] bl FlashReadPages - ldr r3, [r4, #-1260] - ldr r2, [r4, #-1264] - ldr r0, .L2519+12 + ldr r3, [r5, #-1264] + ldr r2, [r5, #-1268] + ldr r0, .L2592+32 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -14909,30 +15275,35 @@ ftl_scan_all_ppa: str r1, [sp, #12] ldr r2, [r2, #4] str r2, [sp, #16] - ldr r1, [r4, #-1268] - ldr r2, [r4, #-1272] + ldr r1, [r5, #-1272] + ldr r2, [r5, #-1276] ldr r3, [r3] bl printk - b .L2516 -.L2518: - add r7, r7, #1 - b .L2513 -.L2515: - ldr r0, .L2519+16 - ldr r1, .L2519+20 - add sp, sp, #28 + b .L2580 +.L2591: + add r4, r4, #1 + b .L2574 +.L2590: + ldr r0, .L2592+36 + ldr r1, .L2592+40 + add sp, sp, #24 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, lr} + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} b printk -.L2520: +.L2593: .align 2 -.L2519: +.L2592: .word .LANCHOR2-1664 - .word .LC68 - .word .LANCHOR2-1272 - .word .LC69 - .word .LC70 - .word .LANCHOR3+64 + .word .LANCHOR2-1670 + .word .LANCHOR2-1728 + .word .LANCHOR2-1666 + .word .LANCHOR2-1668 + .word .LC71 + .word .LC72 + .word .LANCHOR2-1276 + .word .LC73 + .word .LC74 + .word .LANCHOR3+196 .fnend .size ftl_scan_all_ppa, .-ftl_scan_all_ppa .align 2 @@ -14945,16 +15316,16 @@ update_multiplier_value: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r3, .L2531 + ldr r3, .L2604 mov r7, r0 mov r4, r5 - add r6, r3, #24 - ldrh r8, [r3, #-4] - ldrh r9, [r3, #64] -.L2522: + add r6, r3, #20 + ldrh r8, [r3, #-8] + ldrh r9, [r3, #60] +.L2595: uxth r3, r5 cmp r3, r8 - bcs .L2530 + bcs .L2603 ldrb r0, [r6, r5] @ zero_extendqisi2 mov r1, r7 bl V2P_block @@ -14963,25 +15334,25 @@ update_multiplier_value: cmp r0, #0 addeq r4, r4, r9 uxtheq r4, r4 - b .L2522 -.L2530: + b .L2595 +.L2603: cmp r4, #0 - beq .L2525 + beq .L2598 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L2525: - ldr r3, .L2531+4 +.L2598: + ldr r3, .L2604+4 mov r2, #6 mov r0, #0 - ldr r3, [r3, #-1352] + ldr r3, [r3, #-1356] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2532: +.L2605: .align 2 -.L2531: +.L2604: .word .LANCHOR2-1728 .word .LANCHOR2 .fnend @@ -14994,23 +15365,23 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2536 - ldr r0, [r2, #880] + ldr r2, .L2609 + ldr r0, [r2, #876] cmp r0, #0 bxeq lr - ldr r3, [r2, #-1352] + ldr r3, [r2, #-1356] rsb r0, r3, r0 - ldr r3, .L2536+4 + ldr r3, .L2609+4 mov r0, r0, asr #1 mul r0, r3, r0 - ldr r3, [r2, #-1412] + ldr r3, [r2, #-1416] uxth r0, r0 mov r0, r0, asl #1 ldrh r0, [r3, r0] bx lr -.L2537: +.L2610: .align 2 -.L2536: +.L2609: .word .LANCHOR2 .word -1431655765 .fnend @@ -15022,50 +15393,50 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L2548 - ldr r3, [r1, #880] + ldr r1, .L2621 + ldr r3, [r1, #876] cmp r3, #0 - beq .L2544 - add r2, r1, #884 + beq .L2617 + add r2, r1, #880 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov r4, #6 ldrh r2, [r2] movw r5, #65535 - ldr ip, [r1, #-1352] + ldr ip, [r1, #-1356] rsb r2, r2, r2, asl #3 rsb r3, ip, r3 mov r2, r2, asr #3 mov r3, r3, asr #1 cmp r0, r2 uxthgt r0, r2 - ldr r2, .L2548+4 + ldr r2, .L2621+4 mul r3, r2, r3 mov r2, #0 uxth r3, r3 -.L2541: +.L2614: uxth lr, r2 cmp lr, r0 - bcs .L2543 + bcs .L2616 mul lr, r4, r3 add r2, r2, #1 ldrh lr, [ip, lr] cmp lr, r5 - bne .L2545 -.L2543: - ldr r2, [r1, #-1412] + bne .L2618 +.L2616: + ldr r2, [r1, #-1416] mov r3, r3, asl #1 ldrh r0, [r2, r3] ldmfd sp!, {r4, r5, pc} -.L2545: +.L2618: mov r3, lr - b .L2541 -.L2544: + b .L2614 +.L2617: mov r0, r3 bx lr -.L2549: +.L2622: .align 2 -.L2548: +.L2621: .word .LANCHOR2 .word -1431655765 .fnend @@ -15080,36 +15451,36 @@ FtlPrintInfo2buf: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r7, r0 - ldr r6, .L2561 + ldr r6, .L2634 add r5, r7, #12 - ldr r1, .L2561+4 + ldr r1, .L2634+4 .pad #32 sub sp, sp, #32 bl strcpy mov r0, r5 - ldr r1, .L2561+8 + ldr r1, .L2634+8 ldr r2, [r6, #-2772] bl sprintf - ldr r1, .L2561+12 - ldr r2, [r6, #-1648] + ldr r1, .L2634+12 + ldr r2, [r6, #-1652] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r3, .L2561+16 - ldr r3, [r3, #3348] + ldr r3, .L2634+16 + ldr r3, [r3, #3444] cmp r3, #1 add r4, r5, r0 - bne .L2556 + bne .L2629 add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 add r3, sp, #28 bl NandcGetTimeCfg mov r0, r4 - ldr r1, .L2561+20 - sub r8, r6, #1344 - add r9, r6, #884 - add r10, r6, #820 + ldr r1, .L2634+20 + add r10, r6, #880 + ldr r8, .L2634+24 + add r9, r6, #816 ldr r3, [sp, #24] ldr r2, [sp, #16] str r3, [sp] @@ -15117,445 +15488,442 @@ FtlPrintInfo2buf: str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L2561+24 + ldr r1, .L2634+28 add r4, r4, r0 add r5, r4, #10 mov r0, r4 - ldr r4, .L2561+28 + sub r4, r6, #1344 bl strcpy mov r0, r5 - ldr r1, .L2561+32 - ldr r2, [r6, #-1280] + ldr r1, .L2634+32 + ldr r2, [r6, #-1284] bl sprintf - ldr r1, .L2561+36 - ldr r2, [r6, #1128] + ldr r1, .L2634+36 + ldr r2, [r6, #1124] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+40 - ldr r2, [r6, #-1584] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L2561+44 - ldr r2, [r6, #-1596] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L2561+48 - ldr r2, [r6, #-1600] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L2561+52 - ldr r2, [r6, #-1592] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L2561+56 + ldr r1, .L2634+40 ldr r2, [r6, #-1588] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+60 + ldr r1, .L2634+44 + ldr r2, [r6, #-1600] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L2634+48 ldr r2, [r6, #-1604] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r4, #1728] - ldr r1, .L2561+64 - mov r2, r2, lsr #11 + ldr r1, .L2634+52 + ldr r2, [r6, #-1596] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r4, #1732] - ldr r1, .L2561+68 - mov r2, r2, lsr #11 + ldr r1, .L2634+56 + ldr r2, [r6, #-1592] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+72 - ldr r2, [r6, #-1612] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L2561+76 + ldr r1, .L2634+60 ldr r2, [r6, #-1608] add r5, r5, r0 mov r0, r5 bl sprintf + ldr r2, [r8, #1724] + ldr r1, .L2634+64 + mov r2, r2, lsr #11 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r2, [r8, #1728] + ldr r1, .L2634+68 + mov r2, r2, lsr #11 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L2634+72 + ldr r2, [r6, #-1616] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L2634+76 + ldr r2, [r6, #-1612] + add r5, r5, r0 + mov r0, r5 + bl sprintf add r5, r5, r0 bl FtlBbtCalcTotleCnt - ldrh r2, [r8, #6] - ldr r1, .L2561+80 + ldrh r2, [r4, #2] + ldr r1, .L2634+80 mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+84 - ldrh r2, [r9] + ldr r1, .L2634+84 + ldrh r2, [r10] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+88 + ldr r1, .L2634+88 + ldr r2, [r6, #-1584] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L2634+92 ldr r2, [r6, #-1580] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+92 + ldr r1, .L2634+96 + ldr r2, [r8, #1736] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L2634+100 ldr r2, [r6, #-1576] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r4, #1740] - ldr r1, .L2561+96 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L2561+100 + ldr r1, .L2634+104 ldr r2, [r6, #-1572] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+104 + ldr r1, .L2634+108 ldr r2, [r6, #-1568] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+108 - ldr r2, [r6, #-1564] + ldrh r2, [r9, #30] + ldr r1, .L2634+112 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #30] - ldr r1, .L2561+112 + ldrh r2, [r9, #28] + ldr r1, .L2634+116 + movw r9, #1164 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #28] - ldr r1, .L2561+116 - sub r10, r6, #1520 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L2561+120 + ldr r1, .L2634+120 ldr r2, [r6, #-2740] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+124 - ldr r2, [r6, #-1632] + ldr r1, .L2634+124 + ldr r2, [r6, #-1636] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+128 - ldr r2, [r6, #-1736] + ldr r1, .L2634+128 + ldr r2, [r6, #-1740] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8, #114] - ldr r1, .L2561+132 + ldrh r2, [r4, #110] + ldr r1, .L2634+132 add r5, r5, r0 mov r0, r5 bl sprintf - sub r3, r6, #1712 - ldr r1, .L2561+136 - ldrh r2, [r3, #-12] + sub r3, r6, #1728 + ldr r1, .L2634+136 + ldrh r2, [r3] add r5, r5, r0 mov r0, r5 bl sprintf - movw r3, #1164 - ldrh r2, [r4, r3] - ldr r1, .L2561+140 + movw r3, #1160 + ldrh r2, [r8, r3] + ldr r1, .L2634+140 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+144 - ldr r2, [r6, #-1720] + ldr r1, .L2634+144 + ldr r2, [r6, #-1724] add r5, r5, r0 mov r0, r5 bl sprintf - movw r3, #1132 + movw r3, #1128 ldrh r2, [r6, r3] - ldr r1, .L2561+148 + ldr r1, .L2634+148 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8] - ldr r1, .L2561+152 - add r8, r6, #888 + ldrh r2, [r4, #-4] + ldr r1, .L2634+152 + add r4, r6, #884 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8, #2] - ldr r1, .L2561+156 + ldrh r2, [r4, #2] + ldr r1, .L2634+156 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+160 - ldrb r2, [r6, #894] @ zero_extendqisi2 + ldr r1, .L2634+160 + ldrb r2, [r6, #890] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8] - ldr r1, .L2561+164 + ldrh r2, [r4] + ldr r1, .L2634+164 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+168 - ldrb r2, [r6, #896] @ zero_extendqisi2 + ldr r1, .L2634+168 + ldrb r2, [r6, #892] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8, #4] - ldr r1, .L2561+172 + ldrh r2, [r4, #4] + ldr r1, .L2634+172 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r3, [r8] - ldr r2, [r6, #-1404] - add r8, r6, #936 - ldr r1, .L2561+176 + ldrh r3, [r4] + ldr r2, [r6, #-1408] + add r4, r6, #932 + ldr r1, .L2634+176 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8, #2] - ldr r1, .L2561+180 + ldrh r2, [r4, #2] + ldr r1, .L2634+180 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+184 - ldrb r2, [r6, #942] @ zero_extendqisi2 + ldr r1, .L2634+184 + ldrb r2, [r6, #938] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8] - ldr r1, .L2561+188 + ldrh r2, [r4] + ldr r1, .L2634+188 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+192 - ldrb r2, [r6, #944] @ zero_extendqisi2 + ldr r1, .L2634+192 + ldrb r2, [r6, #940] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8, #4] - ldr r1, .L2561+196 + ldrh r2, [r4, #4] + ldr r1, .L2634+196 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r3, [r8] - ldr r2, [r6, #-1404] - add r8, r6, #984 - ldr r1, .L2561+200 + ldrh r3, [r4] + ldr r2, [r6, #-1408] + add r4, r6, #980 + ldr r1, .L2634+200 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8, #2] - ldr r1, .L2561+204 + ldrh r2, [r4, #2] + ldr r1, .L2634+204 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+208 - ldrb r2, [r6, #990] @ zero_extendqisi2 + ldr r1, .L2634+208 + ldrb r2, [r6, #986] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8] - ldr r1, .L2561+212 + ldrh r2, [r4] + ldr r1, .L2634+212 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+216 - ldrb r2, [r6, #992] @ zero_extendqisi2 + ldr r1, .L2634+216 + ldrb r2, [r6, #988] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r8, #4] - ldr r1, .L2561+220 - add r8, r4, #1168 + ldrh r2, [r4, #4] + ldr r1, .L2634+220 + ldr r4, .L2634+224 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+224 - ldrh r2, [r8, #2] + ldrh r2, [r4, #2] + ldr r1, .L2634+228 add r5, r5, r0 mov r0, r5 bl sprintf - ldrb r2, [r4, #1174] @ zero_extendqisi2 - ldr r1, .L2561+228 + ldr r1, .L2634+232 + ldrb r2, [r8, #1170] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+232 - ldrh r2, [r8] + ldr r1, .L2634+236 + ldrh r2, [r8, r9] add r5, r5, r0 mov r0, r5 bl sprintf - ldrb r2, [r4, #1176] @ zero_extendqisi2 - ldr r1, .L2561+236 + ldr r1, .L2634+240 + ldrb r2, [r8, #1172] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2561+240 - ldrh r2, [r8, #4] + ldrh r2, [r4, #4] + ldr r1, .L2634+244 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, [r4, #1300] - ldr r2, [r6, #-1616] - ldr r3, [r6, #-1800] + ldr r1, [r8, #1296] + ldr r2, [r6, #-1620] + ldr r3, [r6, #-1872] orr r2, r3, r2, asl #8 str r1, [sp] add r5, r5, r0 - ldr r1, [r4, #1292] + ldr r1, [r8, #1288] mov r0, r5 str r1, [sp, #4] - ldr r1, .L2561+244 - ldr r3, [r4, #1296] + ldr r1, .L2634+248 + ldr r3, [r8, #1292] bl sprintf - ldr r2, [r4, #1288] - ldr r1, .L2561+248 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r2, [r4, #1312] - ldr r1, .L2561+252 - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L2561+256 - ldrh r2, [r10, #-8] - add r5, r5, r0 - mov r0, r5 - bl sprintf - ldr r1, .L2561+260 - ldrh r2, [r10, #-6] + ldr r1, .L2634+252 + ldr r2, [r8, #1284] add r4, r5, r0 + sub r5, r6, #1520 mov r0, r4 bl sprintf - ldr r1, .L2561+264 - ldr r2, [r6, #-1544] + ldr r1, .L2634+256 + ldr r2, [r8, #1308] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L2561+268 - ldrh r2, [r10, #-4] + ldr r1, .L2634+260 + ldrh r2, [r5, #-12] + add r4, r4, r0 + mov r0, r4 + bl sprintf + ldr r1, .L2634+264 + ldrh r2, [r5, #-10] + add r4, r4, r0 + mov r0, r4 + bl sprintf + ldr r1, .L2634+268 + ldr r2, [r6, #-1548] + add r4, r4, r0 + mov r0, r4 + bl sprintf + ldr r1, .L2634+272 + ldrh r2, [r5, #-8] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L2561+272 + ldr r1, .L2634+276 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 - ldrh r0, [r9] + ldrh r0, [r10] bl GetFreeBlockMaxEraseCount - ldr r1, .L2561+276 + ldr r1, .L2634+280 mov r2, r0 mov r0, r4 bl sprintf - ldrh r3, [r8] + ldrh r3, [r8, r9] movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L2553 - ldr r2, [r6, #-1404] + beq .L2626 + ldr r2, [r6, #-1408] mov r3, r3, asl #1 mov r0, r4 - ldr r1, .L2561+280 + ldr r1, .L2634+284 ldrh r2, [r2, r3] bl sprintf add r4, r4, r0 -.L2553: +.L2626: mov r0, #0 mov r5, #0 bl List_get_gc_head_node movw r10, #65535 mov r9, #6 uxth r3, r0 -.L2555: +.L2628: cmp r3, r10 - beq .L2554 - ldr r2, [r6, #-1404] + beq .L2627 + ldr r2, [r6, #-1408] mov r1, r3, asl #1 mul r8, r9, r3 mov r0, r4 ldrh r2, [r2, r1] str r2, [sp] - ldr r2, [r6, #-1352] + ldr r2, [r6, #-1356] add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp, #4] - ldr r2, [r6, #-1412] + ldr r2, [r6, #-1416] ldrh r2, [r2, r1] - ldr r1, .L2561+284 + ldr r1, .L2634+288 str r2, [sp, #8] mov r2, r5 bl sprintf add r5, r5, #1 - ldr r3, [r6, #-1352] + ldr r3, [r6, #-1356] cmp r5, #16 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L2555 -.L2554: - ldr r2, [r6, #-1352] + bne .L2628 +.L2627: + ldr r2, [r6, #-1356] mov r5, #0 - ldr r3, [r6, #880] + ldr r3, [r6, #876] movw r10, #65535 mov r9, #6 rsb r3, r2, r3 - ldr r2, .L2561+288 + ldr r2, .L2634+292 mov r3, r3, asr #1 mul r3, r2, r3 uxth r3, r3 -.L2557: +.L2630: cmp r3, r10 - beq .L2556 + beq .L2629 mul r8, r9, r3 - ldr r2, [r6, #-1352] - ldr r1, [r6, #-1412] + ldr r2, [r6, #-1356] + ldr r1, [r6, #-1416] mov r0, r4 add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp] mov r2, r3, asl #1 ldrh r2, [r1, r2] - ldr r1, .L2561+292 + ldr r1, .L2634+296 str r2, [sp, #4] mov r2, r5 bl sprintf add r5, r5, #1 - ldr r3, [r6, #-1352] + ldr r3, [r6, #-1356] cmp r5, #4 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L2557 -.L2556: + bne .L2630 +.L2629: rsb r0, r7, r4 add sp, sp, #32 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2562: +.L2635: .align 2 -.L2561: +.L2634: .word .LANCHOR2 - .word .LC71 - .word .LC72 - .word .LC73 - .word .LANCHOR1 - .word .LC74 .word .LC75 - .word .LANCHOR4 .word .LC76 .word .LC77 + .word .LANCHOR1 .word .LC78 + .word .LANCHOR4 .word .LC79 .word .LC80 .word .LC81 @@ -15605,6 +15973,7 @@ FtlPrintInfo2buf: .word .LC125 .word .LC126 .word .LC127 + .word .LANCHOR4+1164 .word .LC128 .word .LC129 .word .LC130 @@ -15617,8 +15986,12 @@ FtlPrintInfo2buf: .word .LC137 .word .LC138 .word .LC139 - .word -1431655765 .word .LC140 + .word .LC141 + .word .LC142 + .word .LC143 + .word -1431655765 + .word .LC144 .fnend .size FtlPrintInfo2buf, .-FtlPrintInfo2buf .align 2 @@ -15631,8 +16004,8 @@ ftl_proc_ftl_read: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L2565 - ldr r2, .L2565+4 + ldr r1, .L2638 + ldr r2, .L2638+4 bl sprintf add r4, r5, r0 mov r0, r4 @@ -15640,11 +16013,11 @@ ftl_proc_ftl_read: add r0, r4, r0 rsb r0, r5, r0 ldmfd sp!, {r3, r4, r5, pc} -.L2566: +.L2639: .align 2 -.L2565: - .word .LC46 - .word .LC141 +.L2638: + .word .LC48 + .word .LC145 .fnend .size ftl_proc_ftl_read, .-ftl_proc_ftl_read .align 2 @@ -15658,84 +16031,84 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L2597 - ldr r4, .L2597+4 - ldr r6, [r5, #1740] - ldr r3, [r4, #-1564] - cmp r6, r3 - bcs .L2568 - sub r3, r4, #1712 - mov r6, #0 - str r6, [r4, #-1580] - ldrh r1, [r3, #-12] - ldr r3, [r4, #-1412] - sub r3, r3, #2 -.L2569: - cmp r6, r1 - bcs .L2596 - ldrh r2, [r3, #2]! - add r6, r6, #1 - ldr r0, [r4, #-1580] - add r2, r2, r0 - str r2, [r4, #-1580] - b .L2569 -.L2596: - ldr r6, [r4, #-1580] - mov r0, r6 - bl __aeabi_uidiv - ldr r3, .L2597+8 - ldrh r1, [r3, #-8] - str r0, [r5, #1740] - ldr r0, [r4, #-1576] - rsb r0, r0, r6 - bl __aeabi_uidiv - str r0, [r4, #-1580] - b .L2571 -.L2568: + ldr r5, .L2670 + ldr r4, .L2670+4 + ldr r6, [r5, #1736] ldr r3, [r4, #-1568] cmp r6, r3 - bls .L2571 - ldr ip, .L2597+12 + bcs .L2641 + sub r3, r4, #1728 + mov r6, #0 + str r6, [r4, #-1584] + ldrh r1, [r3] + ldr r3, [r4, #-1416] + sub r3, r3, #2 +.L2642: + cmp r6, r1 + bcs .L2669 + ldrh r2, [r3, #2]! + add r6, r6, #1 + ldr r0, [r4, #-1584] + add r2, r2, r0 + str r2, [r4, #-1584] + b .L2642 +.L2669: + ldr r6, [r4, #-1584] + mov r0, r6 + bl __aeabi_uidiv + ldr r3, .L2670+8 + ldrh r1, [r3, #-12] + str r0, [r5, #1736] + ldr r0, [r4, #-1580] + rsb r0, r0, r6 + bl __aeabi_uidiv + str r0, [r4, #-1584] + b .L2644 +.L2641: + ldr r3, [r4, #-1572] + cmp r6, r3 + bls .L2644 add r3, r3, #1 - mov lr, r4 - str r3, [r4, #-1568] + mov ip, r4 + str r3, [r4, #-1572] mov r3, #0 -.L2573: - ldrh r2, [ip] +.L2646: + ldr r2, .L2670+12 + ldrh r2, [r2] cmp r3, r2 - bcs .L2571 - ldr r0, [lr, #-1412] + bcs .L2644 + ldr r0, [ip, #-1416] mov r1, r3, asl #1 add r3, r3, #1 ldrh r2, [r0, r1] add r2, r2, #1 strh r2, [r0, r1] @ movhi - b .L2573 -.L2571: - ldr r6, [r4, #-1564] - ldr r8, [r5, #1740] + b .L2646 +.L2644: + ldr r6, [r4, #-1568] + ldr r8, [r5, #1736] add r3, r6, #256 - ldr r2, .L2597+4 + ldr r2, .L2670+4 cmp r3, r8 - bls .L2576 - ldr r1, [r2, #-1568] + bls .L2649 + ldr r1, [r2, #-1572] add r3, r6, #768 cmp r3, r1 - bls .L2576 + bls .L2649 cmp r6, #40 - ldr r2, [r2, #-1800] + ldr r2, [r2, #-1872] movls r3, #0 movhi r3, #1 cmp r2, #0 orreq r3, r3, #1 cmp r3, #0 - beq .L2576 -.L2578: + beq .L2649 +.L2651: movw r0, #65535 - b .L2577 -.L2576: - ldr r10, .L2597+4 - add r3, r10, #884 + b .L2650 +.L2649: + ldr r10, .L2670+4 + add r3, r10, #880 ldrh r0, [r3] add r0, r0, r0, asl #1 ubfx r0, r0, #2, #16 @@ -15748,32 +16121,32 @@ GetSwlReplaceBlock: cmp r6, #40 movls r1, #0 cmp r1, #0 - bne .L2578 - ldr r3, [r10, #868] + bne .L2651 + ldr r3, [r10, #864] cmp r3, #0 - beq .L2578 - sub r2, r10, #1712 - ldr r0, [r10, #-1352] - ldr ip, .L2597+16 + beq .L2651 + sub r2, r10, #1728 + ldr r0, [r10, #-1356] + ldr ip, .L2670+16 movw r7, #65535 - ldrh r2, [r2, #-12] + ldrh r2, [r2] mov r5, r7 - ldr r10, [r10, #-1412] + ldr r10, [r10, #-1416] mov lr, #6 str r2, [sp, #20] -.L2579: +.L2652: ldrh r2, [r3] movw fp, #65535 cmp r2, fp - beq .L2581 + beq .L2654 add r1, r1, #1 ldr fp, [sp, #20] uxth r1, r1 cmp r1, fp - bhi .L2578 + bhi .L2651 ldrh fp, [r3, #4] cmp fp, #0 - beq .L2580 + beq .L2653 rsb r3, r0, r3 mov r3, r3, asr #1 mul r3, ip, r3 @@ -15781,68 +16154,68 @@ GetSwlReplaceBlock: mov fp, r3, asl #1 ldrh fp, [r10, fp] cmp fp, r6 - bls .L2585 + bls .L2658 cmp fp, r7 movcc r7, fp movcc r5, r3 -.L2580: +.L2653: mla r3, lr, r2, r0 - b .L2579 -.L2585: + b .L2652 +.L2658: mov r5, r3 -.L2581: +.L2654: movw r3, #65535 cmp r5, r3 - beq .L2578 + beq .L2651 mov r3, r5, asl #1 ldrh fp, [r10, r3] cmp fp, r6 - bls .L2583 + bls .L2656 str r3, [sp, #20] bl GetFreeBlockMinEraseCount ldr r3, [sp, #20] cmp r0, r6 - strhi r7, [r4, #-1564] -.L2583: + strhi r7, [r4, #-1568] +.L2656: cmp fp, r8 - bcs .L2578 + bcs .L2651 add r2, fp, #128 cmp r9, r2 - ble .L2578 + ble .L2651 add r2, fp, #256 cmp r2, r8 - bcc .L2584 - ldr r2, [r4, #-1568] + bcc .L2657 + ldr r2, [r4, #-1572] add fp, fp, #768 cmp fp, r2 - bcs .L2578 -.L2584: - ldr r2, [r4, #-1404] + bcs .L2651 +.L2657: + ldr r2, [r4, #-1408] mov r1, r5 - ldr r0, .L2597+20 + ldr r0, .L2670+20 ldrh r2, [r2, r3] str r2, [sp] mov r2, r8 ldrh r3, [r10, r3] stmib sp, {r3, r9} - ldr r3, [r4, #-1568] + ldr r3, [r4, #-1572] bl printk mov r0, r5 mov r3, #1 - str r3, [r4, #-1556] -.L2577: + str r3, [r4, #-1560] +.L2650: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2598: +.L2671: .align 2 -.L2597: +.L2670: .word .LANCHOR4 .word .LANCHOR2 .word .LANCHOR2-1664 - .word .LANCHOR2-1724 + .word .LANCHOR2-1728 .word -1431655765 - .word .LC142 + .word .LC146 .fnend .size GetSwlReplaceBlock, .-GetSwlReplaceBlock .align 2 @@ -15856,19 +16229,19 @@ free_data_superblock: cmp r0, r2 stmfd sp!, {r3, lr} .save {r3, lr} - beq .L2600 - ldr r2, .L2602 + beq .L2673 + ldr r2, .L2675 mov r3, r0, asl #1 mov r1, #0 - ldr r2, [r2, #-1404] + ldr r2, [r2, #-1408] strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L2600: +.L2673: mov r0, #0 ldmfd sp!, {r3, pc} -.L2603: +.L2676: .align 2 -.L2602: +.L2675: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -15883,104 +16256,104 @@ allocate_data_superblock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L2659 - ldr r3, [r4, #-1276] + ldr r4, .L2732 + ldr r3, [r4, #-1280] cmp r3, #0 - bne .L2605 + bne .L2678 + sub r10, r4, #1728 mov r5, r0 mov r6, r4 -.L2606: - ldr r3, .L2659+4 +.L2679: + ldr r7, .L2732+4 ldrb r2, [r5, #8] @ zero_extendqisi2 - cmp r5, r3 - sub r7, r3, #100 - bne .L2607 - ldrh r3, [r7] - ldr ip, [r6, #-1556] + cmp r5, r7 + bne .L2680 + ldrh r3, [r7, #-100] + ldr ip, [r6, #-1560] mov r0, r3, lsr #1 mul lr, ip, r3 add r1, r0, #1 add r1, r1, lr, lsr #2 - ldr lr, [r6, #-1800] + ldr lr, [r6, #-1872] cmp lr, #0 uxth r1, r1 - beq .L2608 - ldr lr, [r6, #-1564] + beq .L2681 + ldr lr, [r6, #-1568] cmp lr, #39 - bhi .L2608 + bhi .L2681 cmp lr, #2 - bls .L2633 + bls .L2706 cmp ip, #0 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 moveq r1, r0 - beq .L2608 - b .L2633 -.L2607: + beq .L2681 + b .L2706 +.L2680: cmp r2, #1 - bne .L2633 - ldr r3, .L2659+8 + bne .L2706 + ldr r3, .L2732+8 ldrh r3, [r3] cmp r3, #1 - beq .L2633 + beq .L2706 ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L2633 - ldr r0, [r6, #-1800] - ldrh r3, [r7] + bne .L2706 + ldr r0, [r6, #-1872] + ldrh r3, [r7, #-100] cmp r0, #0 mov r1, r3, lsr #3 - beq .L2608 - ldr r0, [r6, #-1564] + beq .L2681 + ldr r0, [r6, #-1568] cmp r0, #1 rsbls r3, r3, r3, asl #3 ubfxls r1, r3, #3, #16 -.L2608: +.L2681: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 - b .L2609 -.L2633: + b .L2682 +.L2706: mov r1, #0 -.L2609: - ldr r0, .L2659+12 +.L2682: + ldr r0, .L2732+12 bl List_pop_index_node - ldr r10, .L2659+16 - ldrh r3, [r7] + ldrh r3, [r7, #-100] sub r3, r3, #1 - strh r3, [r7] @ movhi + strh r3, [r7, #-100] @ movhi ldrh r3, [r10] uxth r9, r0 cmp r3, r9 - bls .L2606 - ldr r3, [r6, #-1404] + bls .L2679 + ldr r3, [r6, #-1408] mov r8, r9, asl #1 ldrh r7, [r3, r8] cmp r7, #0 - bne .L2606 + bne .L2679 strh r9, [r5] @ movhi mov r0, r5 bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - beq .L2611 - ldr r0, [r6, #-1488] - mov r2, #36 - ldrh lr, [r10, #-8] + beq .L2684 + ldr r2, .L2732+16 add ip, r5, #14 + ldr r0, [r6, #-1492] + ldrh lr, [r2] + mov r2, #36 mov r3, r0 mla r1, r2, lr, r0 mov lr, r7 - str r1, [sp, #4] - b .L2612 -.L2611: - ldr r3, [r6, #-1404] - b .L2654 -.L2612: - ldr r1, [sp, #4] + str r1, [sp] + b .L2685 +.L2684: + ldr r3, [r6, #-1408] + b .L2727 +.L2685: + ldr r1, [sp] cmp r3, r1 - beq .L2656 + beq .L2729 str lr, [r3, #8] movw fp, #65535 str lr, [r3, #12] @@ -15992,181 +16365,184 @@ allocate_data_superblock: addne r7, r7, #1 uxthne r7, r7 strne r1, [fp, #4] - b .L2612 -.L2656: - ldr r3, .L2659+20 - ldr r2, [r4, #-1800] + b .L2685 +.L2729: + ldr r3, .L2732+20 + ldr r2, [r4, #-1872] rsb r3, r3, r5 clz r3, r3 cmp r2, #0 mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L2615 - ldr r3, [r6, #-1412] + beq .L2688 + ldr r3, [r6, #-1416] ldrh r3, [r3, r8] cmp r3, #40 movhi r3, #0 - strhib r3, [r6, #896] -.L2615: + strhib r3, [r6, #892] +.L2688: ldrb r3, [r5, #8] @ zero_extendqisi2 - ldr r2, [r4, #-1412] + ldr r2, [r4, #-1416] cmp r3, #0 ldrh r3, [r2, r8] - bne .L2616 + bne .L2689 cmp r3, #0 mov r0, r9 - ldrne r1, .L2659+24 + ldrne r1, .L2732+24 moveq r3, #2 ldrneh r1, [r1] addne r3, r3, r1 mov r1, #0 uxthne r3, r3 strh r3, [r2, r8] @ movhi - ldr r3, [r4, #-1580] + ldr r3, [r4, #-1584] add r3, r3, #1 - str r3, [r4, #-1580] + str r3, [r4, #-1584] bl ftl_set_blk_mode - b .L2618 -.L2616: + b .L2691 +.L2689: add r3, r3, #1 strh r3, [r2, r8] @ movhi - ldr r1, [r4, #-1392] + ldr r1, [r4, #-1396] mov r0, r9, lsr #5 - ldr r3, [r4, #-1576] + ldr r3, [r4, #-1580] mov ip, #1 add r3, r3, #1 - str r3, [r4, #-1576] + str r3, [r4, #-1580] ldr r2, [r1, r0, asl #2] and r3, r9, #31 orr r3, r2, ip, asl r3 str r3, [r1, r0, asl #2] -.L2618: - ldr r3, [r4, #-1412] - ldr r2, [r4, #-1568] - ldr r0, [r4, #-1580] +.L2691: + ldr r3, [r4, #-1416] + ldr r2, [r4, #-1572] + ldr r0, [r4, #-1584] ldrh r3, [r3, r8] - ldrh r1, [r10] cmp r3, r2 - strhi r3, [r6, #-1568] - ldr r3, .L2659+24 + strhi r3, [r6, #-1572] + ldr r3, .L2732+24 ldrh r2, [r3] - ldr r3, [r4, #-1576] + ldr r3, [r4, #-1580] mla r0, r0, r2, r3 + ldr r3, .L2732+28 + ldrh r1, [r3] bl __aeabi_uidiv - ldr r2, [r4, #-1416] - ldr r3, .L2659+28 - str r0, [r3, #1740] + ldr r2, [r4, #-1420] + ldr r3, .L2732+32 + str r0, [r3, #1736] ldr r3, [r2, #16] add r3, r3, #1 str r3, [r2, #16] - ldr r2, [r4, #-1488] + ldr r2, [r4, #-1492] mov r3, #36 add r1, r2, #4 mla r3, r3, r7, r2 add r3, r3, #40 -.L2620: +.L2693: add r1, r1, #36 cmp r1, r3 ldrne r2, [r1, #-36] bicne r2, r2, #1020 bicne r2, r2, #3 strne r2, [r1, #-36] - bne .L2620 -.L2657: + bne .L2693 +.L2730: ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L2622 + beq .L2695 ldrb r3, [r5, #8] @ zero_extendqisi2 mov r2, r7 - ldr r0, [r6, #-1488] + ldr r0, [r6, #-1492] cmp r3, #1 moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2622: +.L2695: ldrb r1, [r5, #8] @ zero_extendqisi2 mov r2, r7 - ldr r0, [r4, #-1488] - mov r10, #0 + ldr r0, [r4, #-1492] + mov fp, #0 bl FlashEraseBlocks - add r2, r5, #16 - mov fp, r10 - mov r1, #36 -.L2624: - uxth r3, r10 + add r1, r5, #16 + mov r2, fp + mov ip, #36 +.L2697: + uxth r3, fp cmp r3, r7 - bcs .L2658 - mul r3, r1, r10 - ldr ip, [r4, #-1488] - add r0, ip, r3 - ldr r3, [ip, r3] + bcs .L2731 + mul r3, ip, fp + ldr lr, [r4, #-1492] + add r0, lr, r3 + ldr r3, [lr, r3] cmn r3, #1 - bne .L2625 + bne .L2698 ldr r0, [r0, #4] - add fp, fp, #1 - str r1, [sp, #12] + add r2, r2, #1 + stmib sp, {r1, r3, ip} ubfx r0, r0, #10, #16 - stmib sp, {r2, r3} + str r2, [sp] bl FtlBbmMapBadBlock - ldmib sp, {r2, r3} - ldr r1, [sp, #12] - strh r3, [r2] @ movhi + ldmib sp, {r1, r3} + ldr ip, [sp, #12] + ldr r2, [sp] + strh r3, [r1] @ movhi ldrb r3, [r5, #7] @ zero_extendqisi2 sub r3, r3, #1 strb r3, [r5, #7] -.L2625: - add r10, r10, #1 - add r2, r2, #2 - b .L2624 -.L2658: - cmp fp, #0 - beq .L2627 +.L2698: + add fp, fp, #1 + add r1, r1, #2 + b .L2697 +.L2731: + cmp r2, #0 + beq .L2700 mov r0, r9 bl update_multiplier_value bl FtlBbmTblFlush -.L2627: +.L2700: ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L2628 - ldr r3, [r4, #-1404] -.L2654: + bne .L2701 + ldr r3, [r4, #-1408] +.L2727: mvn r2, #0 strh r2, [r3, r8] @ movhi - b .L2606 -.L2628: - ldr r2, .L2659+32 - ldrh r2, [r2] + b .L2679 +.L2701: + ldr r2, .L2732+36 + ldrh r2, [r2, #-4] strh r9, [r5] @ movhi smulbb r3, r2, r3 mov r2, #0 strh r2, [r5, #2] @ movhi strb r2, [r5, #6] - ldr r2, [r4, #-1612] - ldr r1, [r4, #-1404] + ldr r2, [r4, #-1616] + ldr r1, [r4, #-1408] uxth r3, r3 strh r3, [r5, #4] @ movhi str r2, [r5, #12] add r2, r2, #1 - str r2, [r4, #-1612] + str r2, [r4, #-1616] ldrh r2, [r5] mov r2, r2, asl #1 strh r3, [r1, r2] @ movhi -.L2605: +.L2678: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2660: +.L2733: .align 2 -.L2659: +.L2732: .word .LANCHOR2 - .word .LANCHOR2+984 - .word .LANCHOR2-1712 - .word .LANCHOR2+880 - .word .LANCHOR2-1724 - .word .LANCHOR2+888 - .word .LANCHOR2-1672 + .word .LANCHOR2+980 + .word .LANCHOR2-1716 + .word .LANCHOR2+876 + .word .LANCHOR2-1736 + .word .LANCHOR2+884 + .word .LANCHOR2-1676 + .word .LANCHOR2-1728 .word .LANCHOR4 .word .LANCHOR2-1664 .fnend @@ -16181,23 +16557,23 @@ FtlGcBufInit: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r4, #12 - ldr lr, .L2669 + ldr lr, .L2742 mov r5, #1 - ldr r2, .L2669+4 + ldr r2, .L2742+4 mov r7, #36 - ldr r1, .L2669+8 + ldr r1, .L2742+8 add r6, lr, #78 mov r3, #0 - str r3, [r2, #1744] -.L2662: + str r3, [r2, #1740] +.L2735: ldrh r2, [lr] add ip, r3, #1 uxth r3, r3 - ldr r0, .L2669+8 + ldr r0, .L2742+8 cmp r3, r2 - bcs .L2667 + bcs .L2740 mul r0, r4, r3 - ldr r8, [r1, #-1444] + ldr r8, [r1, #-1448] add r2, r8, r0 str r5, [r2, #8] ldrh r2, [r6] @@ -16205,41 +16581,41 @@ FtlGcBufInit: add r9, r2, #3 cmp r2, #0 movlt r2, r9 - ldr r9, [r1, #-1460] + ldr r9, [r1, #-1464] bic r2, r2, #3 add r2, r9, r2 str r2, [r8, r0] - ldr r2, .L2669+12 - ldr r9, [r1, #-1444] + ldr r2, .L2742+12 + ldr r9, [r1, #-1448] ldrh r2, [r2] add r8, r9, r0 mul r2, r2, r3 add r10, r2, #3 cmp r2, #0 movlt r2, r10 - ldr r10, [r1, #-1432] + ldr r10, [r1, #-1436] bic r2, r2, #3 add r2, r10, r2 str r2, [r8, #4] - ldr r2, [r1, #-1484] + ldr r2, [r1, #-1488] mla r3, r7, r3, r2 ldr r2, [r9, r0] str r2, [r3, #8] ldr r2, [r8, #4] str r2, [r3, #12] mov r3, ip - b .L2662 -.L2667: - ldr r4, .L2669+16 + b .L2735 +.L2740: + ldr r4, .L2742+16 mov r1, r0 mov ip, #12 mov lr, #0 -.L2664: - ldr r3, [r0, #-1476] +.L2737: + ldr r3, [r0, #-1480] cmp r2, r3 - bcs .L2668 + bcs .L2741 mul r5, ip, r2 - ldr r7, [r1, #-1444] + ldr r7, [r1, #-1448] add r3, r7, r5 str lr, [r3, #8] ldrh r3, [r4] @@ -16247,12 +16623,12 @@ FtlGcBufInit: add r6, r3, #3 cmp r3, #0 movlt r3, r6 - ldr r6, [r1, #-1460] + ldr r6, [r1, #-1464] bic r3, r3, #3 add r3, r6, r3 str r3, [r7, r5] - ldr r3, .L2669+12 - ldr r6, [r1, #-1444] + ldr r3, .L2742+12 + ldr r6, [r1, #-1448] ldrh r3, [r3] add r5, r6, r5 mul r3, r3, r2 @@ -16261,21 +16637,21 @@ FtlGcBufInit: add r6, r3, #3 cmp r3, #0 movlt r3, r6 - ldr r6, [r1, #-1432] + ldr r6, [r1, #-1436] bic r3, r3, #3 add r3, r6, r3 str r3, [r5, #4] - b .L2664 -.L2668: + b .L2737 +.L2741: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2670: +.L2743: .align 2 -.L2669: - .word .LANCHOR2-1732 +.L2742: + .word .LANCHOR2-1736 .word .LANCHOR4 .word .LANCHOR2 - .word .LANCHOR2-1652 - .word .LANCHOR2-1654 + .word .LANCHOR2-1656 + .word .LANCHOR2-1658 .fnend .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -16287,51 +16663,52 @@ FtlVariablesInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - movw r2, #1752 - ldr r6, .L2673 + movw r2, #1748 + ldr r6, .L2746 mvn r3, #0 - ldr r5, .L2673+4 + ldr r5, .L2746+4 mov r4, #0 mov r1, r4 strh r3, [r6, r2] @ movhi sub r7, r5, #1712 - str r3, [r6, #1764] + str r3, [r6, #1760] sub r3, r5, #1280 - ldr r0, [r5, #-1388] - strh r4, [r3, #-4] @ movhi - sub r3, r5, #1632 - str r4, [r6, #1748] - ldrh r2, [r3, #-12] + ldr r0, [r5, #-1392] + strh r4, [r3, #-8] @ movhi + sub r3, r5, #1648 + str r4, [r6, #1744] + ldrh r2, [r3] + str r4, [r6, #1752] str r4, [r6, #1756] - str r4, [r6, #1760] mov r2, r2, asl #1 - str r4, [r5, #-1800] + str r4, [r5, #-1872] bl ftl_memset - ldrh r2, [r7, #-10] + ldrh r2, [r7, #-14] mov r1, r4 - ldr r0, [r5, #-1412] + ldr r0, [r5, #-1416] mov r2, r2, asl #1 bl ftl_memset - ldrh r2, [r7, #-10] + ldrh r2, [r7, #-14] mov r1, r4 - ldr r0, [r5, #-1420] + ldr r0, [r5, #-1424] mov r2, r2, asl #1 bl ftl_memset mov r1, r4 - add r0, r5, #820 + add r0, r5, #816 mov r2, #48 bl ftl_memset + add r0, r6, #1200 mov r1, r4 mov r2, #512 - add r0, r6, #1216 + add r0, r0, #12 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2674: +.L2747: .align 2 -.L2673: +.L2746: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -16343,39 +16720,39 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2683 + ldr r3, .L2756 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov lr, #0 - ldr r6, [r3, #-1476] + ldr r6, [r3, #-1480] mov r5, #36 - ldr r4, [r3, #-1444] + ldr r4, [r3, #-1448] mov r7, lr mov r8, #12 -.L2676: +.L2749: uxth ip, lr cmp ip, r1 ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mla ip, r5, ip, r0 mov r2, #0 -.L2677: +.L2750: uxth r3, r2 cmp r3, r6 - bcs .L2678 + bcs .L2751 mul r3, r8, r3 add r2, r2, #1 add r9, r4, r3 ldr r10, [r4, r3] ldr r3, [ip, #8] cmp r10, r3 - bne .L2677 + bne .L2750 str r7, [r9, #8] -.L2678: +.L2751: add lr, lr, #1 - b .L2676 -.L2684: + b .L2749 +.L2757: .align 2 -.L2683: +.L2756: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -16386,43 +16763,43 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2694 + ldr r3, .L2767 mov ip, #0 stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r6, #12 - ldr r4, [r3, #-1476] + ldr r4, [r3, #-1480] mov r7, #1 - ldr r5, [r3, #-1444] + ldr r5, [r3, #-1448] mov r8, #36 -.L2686: +.L2759: uxth r2, ip cmp r2, r1 - bcs .L2693 + bcs .L2766 mov lr, #0 -.L2687: +.L2760: uxth r3, lr cmp r3, r4 - bcs .L2688 + bcs .L2761 mla r3, r6, r3, r5 add lr, lr, #1 ldr r9, [r3, #8] cmp r9, #0 - bne .L2687 + bne .L2760 mla r2, r8, r2, r0 ldr lr, [r3] str r7, [r3, #8] str lr, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L2688: +.L2761: add ip, ip, #1 - b .L2686 -.L2693: + b .L2759 +.L2766: ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2695: +.L2768: .align 2 -.L2694: +.L2767: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -16434,26 +16811,26 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r1, .L2702 - movw r2, #1768 - ldr r3, .L2702+4 + ldr r1, .L2775 + movw r2, #1764 + ldr r3, .L2775+4 ldrh r2, [r1, r2] - ldr r3, [r3, #-1508] + ldr r3, [r3, #-1512] add r2, r3, r2, asl #1 -.L2697: +.L2770: cmp r3, r2 - beq .L2701 + beq .L2774 ldrh r1, [r3], #2 cmp r1, r0 - bne .L2697 + bne .L2770 mov r0, #1 bx lr -.L2701: +.L2774: mov r0, #0 bx lr -.L2703: +.L2776: .align 2 -.L2702: +.L2775: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -16472,36 +16849,36 @@ FtlGcUpdatePage: mov r5, r1 mov r6, r2 bl P2V_block_in_plane - ldr lr, .L2712 - movw r2, #1768 - ldr r3, .L2712+4 - ldr r1, [lr, #-1508] + ldr lr, .L2785 + movw r2, #1764 + ldr r3, .L2785+4 + ldr r1, [lr, #-1512] ldrh r7, [r3, r2] mov r2, #0 sub r8, r1, #2 -.L2705: +.L2778: uxth ip, r2 cmp ip, r7 - bcs .L2709 + bcs .L2782 ldrh r9, [r8, #2]! add r2, r2, #1 cmp r9, r0 - bne .L2705 -.L2709: + bne .L2778 +.L2782: cmp ip, r7 - bne .L2707 + bne .L2780 mov ip, ip, asl #1 - movw r2, #1768 + movw r2, #1764 strh r0, [r1, ip] @ movhi ldrh r0, [r3, r2] add r0, r0, #1 strh r0, [r3, r2] @ movhi -.L2707: - movw r0, #1770 +.L2780: + movw r0, #1766 mov ip, #12 ldrh r2, [r3, r0] mul ip, ip, r2 - ldr r2, [lr, #-1504] + ldr r2, [lr, #-1508] add r1, r2, ip stmib r1, {r5, r6} str r4, [r2, ip] @@ -16509,9 +16886,9 @@ FtlGcUpdatePage: add r2, r2, #1 strh r2, [r3, r0] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2713: +.L2786: .align 2 -.L2712: +.L2785: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -16525,30 +16902,30 @@ FtlGcPageVarInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - movw r1, #1768 - ldr r3, .L2716 + movw r1, #1764 + ldr r3, .L2789 mov r2, #0 - ldr r4, .L2716+4 - sub r5, r4, #1648 + ldr r4, .L2789+4 + sub r5, r4, #1664 strh r2, [r3, r1] @ movhi - movw r1, #1770 - ldr r0, [r4, #-1508] + movw r1, #1766 + ldr r0, [r4, #-1512] strh r2, [r3, r1] @ movhi mov r1, #255 - ldrh r2, [r5, #-12] + ldrh r2, [r5] mov r2, r2, asl #1 bl ftl_memset - ldrh r3, [r5, #-12] + ldrh r3, [r5] mov r2, #12 - ldr r0, [r4, #-1504] + ldr r0, [r4, #-1508] mov r1, #255 mul r2, r2, r3 bl ftl_memset ldmfd sp!, {r3, r4, r5, lr} b FtlGcBufInit -.L2717: +.L2790: .align 2 -.L2716: +.L2789: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -16560,8 +16937,8 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2771 - movw r3, #3352 + ldr r2, .L2844 + movw r3, #3448 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 @@ -16571,58 +16948,58 @@ FtlGcScanTempBlk: mov r4, r0 str r1, [sp, #8] cmp r5, r3 - beq .L2752 + beq .L2825 cmp r5, #0 - bne .L2719 - b .L2720 -.L2752: + bne .L2792 + b .L2793 +.L2825: mov r5, #0 -.L2719: - ldr r3, .L2771+4 +.L2792: + ldr r3, .L2844+4 ldr r2, [sp, #8] - ldrh r3, [r3] + ldrh r3, [r3, #-4] cmp r2, r3 - bne .L2721 -.L2720: + bne .L2794 +.L2793: bl FtlGcPageVarInit -.L2721: - ldr r6, .L2771+8 +.L2794: + ldr r6, .L2844+8 mov r2, #0 mvn r3, #0 stmia sp, {r2, r3} -.L2722: +.L2795: ldrh r1, [r4] movw r3, #65535 mov r2, #0 strb r2, [r4, #8] cmp r1, r3 - beq .L2723 -.L2724: -.L2749: - ldr r3, .L2771+12 + beq .L2796 +.L2797: +.L2822: + ldr r3, .L2844+12 mov r7, #0 - ldr r0, [r6, #-1432] + ldr r0, [r6, #-1436] add r1, r4, #14 mov r8, r7 movw lr, #65535 ldrh r3, [r3] mov r9, #36 str r3, [sp, #12] - ldr r3, [r6, #-1500] + ldr r3, [r6, #-1504] str r3, [sp, #16] - ldr r3, [r6, #-1460] + ldr r3, [r6, #-1464] str r3, [sp, #20] - ldr r3, .L2771+16 + ldr r3, .L2844+16 ldrh fp, [r3] ldrh ip, [r3, #2] -.L2725: +.L2798: ldr r2, [sp, #12] uxth r3, r7 cmp r3, r2 - bcs .L2769 + bcs .L2842 ldrh r3, [r1, #2]! cmp r3, lr - beq .L2726 + beq .L2799 ldr r2, [sp, #16] orr r3, r5, r3, asl #10 mla r2, r9, r8, r2 @@ -16644,63 +17021,63 @@ FtlGcScanTempBlk: bic r3, r3, #3 add r3, r0, r3 str r3, [r2, #12] -.L2726: +.L2799: add r7, r7, #1 - b .L2725 -.L2769: - ldr r0, [r6, #-1500] + b .L2798 +.L2842: + ldr r0, [r6, #-1504] mov r1, r8 mov r2, #0 mov r10, #0 bl FlashReadPages -.L2728: +.L2801: uxth r3, r10 cmp r3, r8 - bcs .L2770 - ldr r3, .L2771+8 + bcs .L2843 + ldr r3, .L2844+8 mov r9, #36 mul r9, r9, r10 - ldr r7, [r3, #-1500] + ldr r7, [r3, #-1504] add r3, r7, r9 str r3, [sp, #12] ldr fp, [r3, #4] ubfx r0, fp, #10, #16 bl P2V_plane ldr r7, [r7, r9] - ldr ip, .L2771+8 + ldr ip, .L2844+8 cmp r7, #0 ldr r3, [sp, #12] mov r2, r0 ldr r3, [r3, #12] - bne .L2729 + bne .L2802 ldrh r0, [r3] movw r1, #65535 cmp r0, r1 - bne .L2730 -.L2733: + bne .L2803 +.L2806: ldrb r1, [ip, #-2744] @ zero_extendqisi2 cmp r1, #0 - beq .L2764 - ldr r3, .L2771+20 + beq .L2837 + ldr r3, .L2844+20 mov r1, #1 - str r1, [r3, #1760] - b .L2723 -.L2730: + str r1, [r3, #1756] + b .L2796 +.L2803: ldr r0, [r3, #8] - ldr r1, [r6, #-1280] + ldr r1, [r6, #-1284] cmp r0, r1 - bls .L2765 - b .L2733 -.L2764: + bls .L2838 + b .L2806 +.L2837: ldrh r3, [r4] - ldr r2, [r6, #-1404] + ldr r2, [r6, #-1408] mov r3, r3, asl #1 - b .L2768 -.L2765: - ldr r2, .L2771+24 + b .L2841 +.L2838: + ldr r2, .L2844+24 ldrb r2, [r2] @ zero_extendqisi2 cmp r2, #0 - beq .L2737 + beq .L2810 add r1, sp, #24 mov r2, r7 str r3, [sp, #12] @@ -16714,105 +17091,105 @@ FtlGcScanTempBlk: mov r0, r0, lsr #5 moveq r0, #0 cmp r0, #0 - beq .L2737 + beq .L2810 str r2, [sp, #32] mov r1, #1 - ldr r2, [r6, #-1448] + ldr r2, [r6, #-1452] add r0, sp, #28 str r2, [sp, #36] - ldr r2, [r6, #-1436] + ldr r2, [r6, #-1440] str r2, [sp, #40] mov r2, r7 bl FlashReadPages - ldr r2, .L2771+28 - ldr r1, [r6, #-1500] + ldr r2, .L2844+28 + ldr r1, [r6, #-1504] ldrh r2, [r2] add r9, r1, r9 mov r2, r2, asl #7 ldr r1, [sp, #36] ldr r3, [sp, #12] - b .L2739 -.L2740: + b .L2812 +.L2813: add r7, r7, #1 -.L2739: +.L2812: cmp r7, r2 - beq .L2737 + beq .L2810 ldr r0, [r9, #8] ldr ip, [r0, r7, asl #2] ldr r0, [r1, r7, asl #2] cmp ip, r0 - beq .L2740 + beq .L2813 ldrh r1, [r4] ldr r2, [sp, #32] - ldr r0, .L2771+32 + ldr r0, .L2844+32 bl printk ldrh r3, [r4] - ldr r2, [r6, #-1404] + ldr r2, [r6, #-1408] mov r1, #0 mov r3, r3, asl #1 -.L2768: +.L2841: strh r1, [r2, r3] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST - ldr r2, .L2771+36 + ldr r2, .L2844+36 mvn r3, #0 strh r3, [r4] @ movhi strh r3, [r2] @ movhi - b .L2767 -.L2737: + b .L2840 +.L2810: ldr r0, [r3, #12] mov r1, fp ldr r2, [r3, #8] add r10, r10, #1 bl FtlGcUpdatePage - b .L2728 -.L2729: - ldr r0, .L2771+40 + b .L2801 +.L2802: + ldr r0, .L2844+40 mov r2, fp ldrh r1, [r4] str ip, [sp, #12] bl printk - ldr r3, .L2771+8 + ldr r3, .L2844+8 ldrh r5, [r4] - ldr r3, [r3, #-1800] + ldr r3, [r3, #-1872] cmp r3, #0 ldr ip, [sp, #12] - bne .L2743 - ldr r3, .L2771+8 + bne .L2816 + ldr r3, .L2844+8 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L2744 -.L2743: - ldr r2, [ip, #-1412] + beq .L2817 +.L2816: + ldr r2, [ip, #-1416] mov r3, r5, asl #1 ldrh r3, [r2, r3] cmp r3, #159 - bls .L2745 -.L2744: - ldr r3, [ip, #-1500] + bls .L2818 +.L2817: + ldr r3, [ip, #-1504] ldr r3, [r3, r9] cmn r3, #1 - bne .L2746 -.L2745: - ldr r3, [ip, #-1500] + bne .L2819 +.L2818: + ldr r3, [ip, #-1504] add r9, r3, r9 ldr r3, [r9, #4] str r3, [sp, #4] -.L2746: - ldr r3, .L2771+8 +.L2819: + ldr r3, .L2844+8 mov r5, r5, asl #1 mov r2, #0 - ldr r3, [r3, #-1404] + ldr r3, [r3, #-1408] strh r2, [r3, r5] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST mvn r3, #0 strh r3, [r4] @ movhi -.L2767: +.L2840: bl FtlGcPageVarInit mov r5, #0 - b .L2722 -.L2770: + b .L2795 +.L2843: ldr r3, [sp] add r5, r5, #1 ldr r2, [sp, #8] @@ -16820,30 +17197,30 @@ FtlGcScanTempBlk: uxth r5, r5 cmp r3, r2 str r3, [sp] - ldr r2, .L2771+4 - bcs .L2748 -.L2750: + ldr r2, .L2844+44 + bcs .L2821 +.L2823: ldrh r3, [r2] cmp r3, r5 - bhi .L2749 + bhi .L2822 mov r2, #0 - b .L2723 -.L2748: - ldr r1, .L2771+44 + b .L2796 +.L2821: + ldr r1, .L2844+48 movw r0, #65535 ldrh r3, [r1] cmp r3, r0 - beq .L2750 + beq .L2823 ldr r0, [sp] add r3, r3, r0 strh r3, [r1] @ movhi ldrh r3, [r2] cmp r3, r5 - bls .L2750 - b .L2751 -.L2723: - ldr r1, .L2771 - movw r3, #3352 + bls .L2823 + b .L2824 +.L2796: + ldr r1, .L2844 + movw r3, #3448 mvn r0, #0 strh r5, [r4, #2] @ movhi strb r2, [r4, #6] @@ -16851,26 +17228,27 @@ FtlGcScanTempBlk: mov r0, r4 mov r1, r5 bl ftl_sb_update_avl_pages -.L2751: +.L2824: ldr r0, [sp, #4] add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2772: +.L2845: .align 2 -.L2771: +.L2844: .word .LANCHOR1 .word .LANCHOR2-1664 .word .LANCHOR2 - .word .LANCHOR2-1732 - .word .LANCHOR2-1654 + .word .LANCHOR2-1736 + .word .LANCHOR2-1658 .word .LANCHOR4 .word .LANCHOR0 - .word .LANCHOR2-1658 - .word .LC143 - .word .LANCHOR4+1168 - .word .LC144 - .word .LANCHOR1+3352 + .word .LANCHOR2-1662 + .word .LC147 + .word .LANCHOR4+1164 + .word .LC148 + .word .LANCHOR2-1668 + .word .LANCHOR1+3448 .fnend .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -16883,47 +17261,47 @@ FtlGcRefreshOpenBlock: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldr r6, .L2781 - ldrh r3, [r6] + ldr r4, .L2854 + ldrh r3, [r4, #-4] cmp r3, r0 - beq .L2775 - add r4, r6, #16 - ldrh r3, [r4, #-14] + beq .L2848 + ldrh r3, [r4, #-2] cmp r3, r0 - beq .L2775 - ldrh r3, [r4, #-12] + beq .L2848 + ldrh r3, [r4] cmp r3, r0 - beq .L2775 - ldrh r3, [r4, #-10] + beq .L2848 + add r6, r4, #16 + ldrh r3, [r6, #-14] cmp r3, r0 - beq .L2775 - ldr r0, .L2781+4 + beq .L2848 + ldr r0, .L2854+4 mov r1, r5 bl printk - ldrh r2, [r6] + ldrh r2, [r4, #-4] movw r3, #65535 cmp r2, r3 - streqh r5, [r6] @ movhi - beq .L2775 - ldrh r2, [r4, #-14] + streqh r5, [r4, #-4] @ movhi + beq .L2848 + ldrh r2, [r4, #-2] cmp r2, r3 - streqh r5, [r4, #-14] @ movhi - beq .L2775 - ldrh r2, [r4, #-12] + streqh r5, [r4, #-2] @ movhi + beq .L2848 + ldrh r2, [r4] cmp r2, r3 - streqh r5, [r4, #-12] @ movhi - beq .L2775 - ldrh r2, [r4, #-10] + streqh r5, [r4] @ movhi + beq .L2848 + ldrh r2, [r6, #-14] cmp r2, r3 - streqh r5, [r4, #-10] @ movhi -.L2775: + streqh r5, [r6, #-14] @ movhi +.L2848: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2782: +.L2855: .align 2 -.L2781: +.L2854: .word .LANCHOR2-1536 - .word .LC145 + .word .LC149 .fnend .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock .align 2 @@ -16936,51 +17314,51 @@ FtlGcRefreshBlock: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldr r6, .L2794 - ldrh r3, [r6] + ldr r4, .L2867 + ldrh r3, [r4, #-4] cmp r3, r0 - beq .L2791 - add r4, r6, #16 - ldrh r3, [r4, #-14] + beq .L2864 + ldrh r3, [r4, #-2] cmp r3, r0 - beq .L2791 - ldrh r3, [r4, #-12] + beq .L2864 + ldrh r3, [r4] cmp r3, r0 - beq .L2791 - ldrh r3, [r4, #-10] + beq .L2864 + add r6, r4, #16 + ldrh r3, [r6, #-14] cmp r3, r0 - beq .L2791 - ldr r0, .L2794+4 + beq .L2864 + ldr r0, .L2867+4 mov r1, r5 bl printk - ldrh r2, [r6] + ldrh r2, [r4, #-4] movw r3, #65535 cmp r2, r3 - streqh r5, [r6] @ movhi - beq .L2791 - ldrh r2, [r4, #-14] + streqh r5, [r4, #-4] @ movhi + beq .L2864 + ldrh r2, [r4, #-2] cmp r2, r3 - streqh r5, [r4, #-14] @ movhi - beq .L2791 - ldrh r2, [r4, #-12] + streqh r5, [r4, #-2] @ movhi + beq .L2864 + ldrh r2, [r4] cmp r2, r3 - streqh r5, [r4, #-12] @ movhi - beq .L2791 - ldrh r2, [r4, #-10] + streqh r5, [r4] @ movhi + beq .L2864 + ldrh r2, [r6, #-14] cmp r2, r3 - bne .L2792 - strh r5, [r4, #-10] @ movhi -.L2791: + bne .L2865 + strh r5, [r6, #-14] @ movhi +.L2864: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2792: +.L2865: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2795: +.L2868: .align 2 -.L2794: +.L2867: .word .LANCHOR2-1536 - .word .LC145 + .word .LC149 .fnend .size FtlGcRefreshBlock, .-FtlGcRefreshBlock .align 2 @@ -16994,54 +17372,54 @@ FtlGcMarkBadPhyBlk: .save {r3, r4, r5, r6, r7, lr} mov r5, r0 bl P2V_block_in_plane - ldr r6, .L2806 + ldr r6, .L2879 mov r2, r5 sub r7, r6, #1520 - ldrh r1, [r7, #-2] + ldrh r1, [r7, #-6] mov r4, r0 - ldr r0, .L2806+4 + ldr r0, .L2879+4 bl printk mov r0, r4 bl FtlGcRefreshBlock - ldr r3, [r6, #-1800] + ldr r3, [r6, #-1872] cmp r3, #0 - beq .L2797 - ldr r2, [r6, #-1412] + beq .L2870 + ldr r2, [r6, #-1416] mov r4, r4, asl #1 ldrh r3, [r2, r4] cmp r3, #39 subhi r3, r3, #40 strhih r3, [r2, r4] @ movhi -.L2797: - ldrh r3, [r7, #-2] +.L2870: + ldrh r3, [r7, #-6] mov r2, #0 - ldr r0, .L2806+8 -.L2798: + ldr r0, .L2879+8 +.L2871: uxth r1, r2 cmp r1, r3 - bcs .L2805 + bcs .L2878 add r2, r2, #1 add r1, r0, r2, asl #1 ldrh r1, [r1, #-2] cmp r1, r5 - bne .L2798 - b .L2799 -.L2805: + bne .L2871 + b .L2872 +.L2878: cmp r3, #15 addls r2, r3, #1 - strlsh r2, [r7, #-2] @ movhi - ldrls r2, .L2806+8 + strlsh r2, [r7, #-6] @ movhi + ldrls r2, .L2879+8 movls r3, r3, asl #1 strlsh r5, [r2, r3] @ movhi -.L2799: +.L2872: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2807: +.L2880: .align 2 -.L2806: +.L2879: .word .LANCHOR2 - .word .LC146 - .word .LANCHOR4+1772 + .word .LC150 + .word .LANCHOR4+1768 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 2 @@ -17053,36 +17431,35 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L2815 - ldrh r3, [r4, #-2] + ldr r4, .L2888 + ldrh r3, [r4, #-6] cmp r3, #0 - beq .L2809 - ldrh r1, [r4, #-16] + beq .L2882 + ldrh r1, [r4, #-20] movw r2, #65535 cmp r1, r2 - bne .L2809 - add r4, r4, #16 - ldrh r2, [r4, #-14] + bne .L2882 + ldrh r2, [r4, #-2] cmp r2, r3 - ldr r2, .L2815+4 + ldr r2, .L2888+4 movcs r3, #0 - strcsh r3, [r4, #-14] @ movhi - ldrh r3, [r4, #-14] + strcsh r3, [r4, #-2] @ movhi + ldrh r3, [r4, #-2] mov r3, r3, asl #1 ldrh r0, [r2, r3] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh r3, [r4, #-14] + ldrh r3, [r4, #-2] add r3, r3, #1 - strh r3, [r4, #-14] @ movhi -.L2809: + strh r3, [r4, #-2] @ movhi +.L2882: mov r0, #0 ldmfd sp!, {r4, pc} -.L2816: +.L2889: .align 2 -.L2815: +.L2888: .word .LANCHOR2-1520 - .word .LANCHOR4+1772 + .word .LANCHOR4+1768 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk .align 2 @@ -17095,40 +17472,40 @@ FtlGcFreeBadSuperBlk: stmfd sp!, {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, .L2831 - ldrh r3, [r5, #-2] + ldr r5, .L2904 + ldrh r3, [r5, #-6] cmp r3, #0 - beq .L2819 - sub r5, r5, #2 + beq .L2892 + sub r5, r5, #6 mov r8, r0 mov r7, #0 mov r9, r5 -.L2818: - ldr r3, .L2831+4 +.L2891: + ldr r3, .L2904+4 uxth r2, r7 ldrh r3, [r3] cmp r3, r2 - bls .L2828 - ldr r3, .L2831+8 + bls .L2901 + ldr r3, .L2904+8 mov r1, r8 mov r10, #0 add r3, r3, r2 - ldrb r0, [r3, #-1704] @ zero_extendqisi2 + ldrb r0, [r3, #-1708] @ zero_extendqisi2 bl V2P_block - ldr ip, .L2831+12 + ldr ip, .L2904+12 mov fp, r0 -.L2820: +.L2893: ldrh r3, [r5] uxth r4, r10 cmp r3, r4 - bls .L2829 + bls .L2902 mov r3, r4, asl #1 add r6, ip, r3 ldrh r3, [ip, r3] cmp r3, fp - bne .L2821 + bne .L2894 mov r1, fp - ldr r0, .L2831+16 + ldr r0, .L2904+16 str ip, [sp, #4] bl printk mov r0, fp @@ -17137,37 +17514,37 @@ FtlGcFreeBadSuperBlk: ldrh r2, [r5] mov r3, r6 ldr ip, [sp, #4] -.L2822: +.L2895: cmp r4, r2 ldrcch r1, [r3, #2] addcc r4, r4, #1 uxthcc r4, r4 strcch r1, [r3], #2 @ movhi - bcc .L2822 -.L2830: + bcc .L2895 +.L2903: sub r2, r2, #1 strh r2, [r9] @ movhi -.L2821: +.L2894: add r10, r10, #1 - b .L2820 -.L2829: + b .L2893 +.L2902: add r7, r7, #1 - b .L2818 -.L2828: + b .L2891 +.L2901: bl FtlGcReFreshBadBlk -.L2819: +.L2892: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2832: +.L2905: .align 2 -.L2831: +.L2904: .word .LANCHOR2-1520 - .word .LANCHOR2-1732 + .word .LANCHOR2-1736 .word .LANCHOR2 - .word .LANCHOR4+1772 - .word .LC147 + .word .LANCHOR4+1768 + .word .LC151 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 2 @@ -17177,38 +17554,39 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2843 + ldr r2, .L2916 mov r3, r0, asl #1 stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r0 - ldr r1, [r2, #-1404] + ldr r1, [r2, #-1408] ldrh r3, [r1, r3] cmp r3, #0 - bne .L2834 - ldr r1, .L2843+4 - ldrh r0, [r1] - cmp r0, r4 + bne .L2907 + ldr r0, .L2916+4 + movw r1, #1164 + ldrh ip, [r0, r1] + cmp ip, r4 mvneq r3, #0 - streqh r3, [r1] @ movhi - beq .L2836 - add r1, r2, #888 + streqh r3, [r0, r1] @ movhi + beq .L2909 + add r1, r2, #884 ldrh r1, [r1] cmp r1, r4 - beq .L2842 - add r1, r2, #936 + beq .L2915 + add r1, r2, #932 ldrh r1, [r1] cmp r1, r4 - beq .L2842 - add r2, r2, #984 + beq .L2915 + add r2, r2, #980 ldrh r2, [r2] cmp r2, r4 - beq .L2842 -.L2836: + beq .L2915 +.L2909: mov r1, r4 - ldr r0, .L2843+8 + ldr r0, .L2916+8 bl List_remove_node - ldr r2, .L2843+12 + ldr r2, .L2916+12 mov r0, r4 ldrh r3, [r2] sub r3, r3, #1 @@ -17218,18 +17596,18 @@ update_vpc_list: bl FtlGcFreeBadSuperBlk mov r0, #1 ldmfd sp!, {r4, pc} -.L2834: +.L2907: bl List_update_data_list -.L2842: +.L2915: mov r0, #0 ldmfd sp!, {r4, pc} -.L2844: +.L2917: .align 2 -.L2843: +.L2916: .word .LANCHOR2 - .word .LANCHOR4+1168 - .word .LANCHOR2+868 - .word .LANCHOR2+876 + .word .LANCHOR4 + .word .LANCHOR2+864 + .word .LANCHOR2+872 .fnend .size update_vpc_list, .-update_vpc_list .align 2 @@ -17244,68 +17622,68 @@ decrement_vpc_count: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - beq .L2846 - ldr r5, .L2856 + beq .L2919 + ldr r5, .L2929 mov r6, r0, asl #1 - ldr r3, [r5, #-1404] + ldr r3, [r5, #-1408] ldrh r2, [r3, r6] cmp r2, #0 subne r2, r2, #1 strneh r2, [r3, r6] @ movhi - bne .L2846 + bne .L2919 mov r1, r4 - ldr r0, .L2856+4 + ldr r0, .L2929+4 bl printk - ldr r3, [r5, #-1404] + ldr r3, [r5, #-1408] mov r2, #32 - add r0, r5, #880 + add r0, r5, #876 mov r1, r4 strh r2, [r3, r6] @ movhi bl test_node_in_list cmp r0, #0 - beq .L2848 + beq .L2921 mov r1, r4 - add r0, r5, #880 + add r0, r5, #876 bl List_remove_node - add r2, r5, #884 + add r2, r5, #880 mov r0, r4 ldrh r3, [r2] sub r3, r3, #1 strh r3, [r2] @ movhi bl INSERT_DATA_LIST - ldr r3, [r5, #-1404] - ldr r0, .L2856+8 + ldr r3, [r5, #-1408] + ldr r0, .L2929+8 mov r1, r4 ldrh r2, [r3, r6] bl printk -.L2848: +.L2921: mov r0, r4 bl FtlGcRefreshBlock - b .L2851 -.L2846: - ldr r6, .L2856+12 - movw r5, #1752 + b .L2924 +.L2919: + ldr r6, .L2929+12 + movw r5, #1748 movw r3, #65535 ldrh r0, [r6, r5] cmp r0, r3 streqh r4, [r6, r5] @ movhi - beq .L2851 + beq .L2924 cmp r0, r4 - beq .L2851 + beq .L2924 bl update_vpc_list strh r4, [r6, r5] @ movhi adds r0, r0, #0 movne r0, #1 ldmfd sp!, {r4, r5, r6, pc} -.L2851: +.L2924: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2857: +.L2930: .align 2 -.L2856: +.L2929: .word .LANCHOR2 - .word .LC148 - .word .LC149 + .word .LC152 + .word .LC153 .word .LANCHOR4 .fnend .size decrement_vpc_count, .-decrement_vpc_count @@ -17320,7 +17698,7 @@ FtlRecoverySuperblock: movw r2, #65535 mov r1, r0 cmp r3, r2 - beq .L3002 + beq .L3075 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 @@ -17330,55 +17708,55 @@ FtlRecoverySuperblock: ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r0, [sp, #8] str r3, [sp] - ldr r3, .L3017 - ldrh r3, [r3] + ldr r3, .L3090 + ldrh r3, [r3, #-4] cmp r3, r0 mov r3, #0 streqh r3, [r1, #4] @ movhi streqb r3, [r1, #6] ldrneh r0, [r1, #16] - beq .L2999 -.L2862: + beq .L3072 +.L2935: cmp r0, r2 add r3, r3, #1 uxtheq r0, r3 addeq r0, r1, r0, asl #1 ldreqh r0, [r0, #16] - beq .L2862 -.L3012: + beq .L2935 +.L3085: mov r9, r1 ldrb r1, [r1, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2864 + bne .L2937 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L2865 - ldr r3, .L3017+4 + beq .L2938 + ldr r3, .L3090+4 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L3003 - ldr r3, .L3017+8 + bne .L3076 + ldr r3, .L3090+8 add r3, r3, r0, asl #1 - ldrh r6, [r3, #76] - b .L2936 -.L2864: + ldrh r6, [r3, #80] + b .L3009 +.L2937: mov r1, #0 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L2865 -.L3003: + beq .L2938 +.L3076: mov r6, r4 -.L2936: - ldr r3, .L3017+4 +.L3009: + ldr r3, .L3090+4 movw r8, #65535 sub r2, r3, #1728 sub r3, r3, #1648 - ldr ip, [r3, #148] - ldr lr, [r3, #216] - ldrh r2, [r2, #-4] - ldrh r7, [r3, #-4] + ldr ip, [r3, #144] + ldr lr, [r3, #212] + ldrh r2, [r2, #-8] + ldrh r7, [r3, #-8] add r3, r9, #14 str r3, [sp, #20] str r2, [sp, #4] @@ -17386,16 +17764,16 @@ FtlRecoverySuperblock: mov r0, r3 mov r5, r2 mov r10, r2 - b .L2867 -.L2865: + b .L2940 +.L2938: mov r3, #0 strh r3, [r9, #2] @ movhi strb r3, [r9, #6] - b .L2999 -.L2869: + b .L3072 +.L2942: ldrh r3, [r0, #2]! cmp r3, r8 - beq .L2868 + beq .L2941 mov r1, #36 orr r3, r6, r3, asl #10 mla r1, r1, r5, ip @@ -17409,49 +17787,49 @@ FtlRecoverySuperblock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2868: +.L2941: add r2, r2, #1 -.L2867: +.L2940: ldr r1, [sp, #4] uxth r3, r2 cmp r3, r1 - bcc .L2869 + bcc .L2942 ldrb r3, [r9, #8] @ zero_extendqisi2 - ldr fp, .L3017+4 + ldr fp, .L3090+4 cmp r3, #1 movne r3, #0 - bne .L3004 + bne .L3077 ldrb lr, [fp, #-2744] @ zero_extendqisi2 adds r3, lr, #0 movne r3, #1 -.L3004: +.L3077: str r3, [sp, #24] mov r1, r5 ldr r2, [sp, #24] mov r10, #0 - ldr r0, [fp, #-1500] + ldr r0, [fp, #-1504] bl FlashReadPages - ldr r3, [fp, #-1608] - ldr r2, .L3017+4 + ldr r3, [fp, #-1612] + ldr r2, .L3090+4 str r3, [sp, #28] movw r3, #65535 str r3, [sp, #16] -.L2871: +.L2944: uxth r7, r10 cmp r7, r5 - bcs .L2878 + bcs .L2951 mov r1, #36 - ldr r0, [r2, #-1500] + ldr r0, [r2, #-1504] mul r1, r1, r10 add ip, r0, r1 ldr r1, [r0, r1] cmp r1, #0 - bne .L2872 + bne .L2945 ldr ip, [ip, #12] ldr r8, [ip, #4] cmn r8, #1 - beq .L2873 - ldr r1, [r2, #-1608] + beq .L2946 + ldr r1, [r2, #-1612] mov r0, r8 str ip, [sp, #12] str r2, [sp, #4] @@ -17460,61 +17838,61 @@ FtlRecoverySuperblock: cmp r0, #0 ldr ip, [sp, #12] addne r8, r8, #1 - strne r8, [r2, #-1608] -.L2873: + strne r8, [r2, #-1612] +.L2946: ldr r1, [ip] cmn r1, #1 - bne .L2874 -.L2878: + bne .L2947 +.L2951: cmp r7, r5 - ldr r5, .L3017+4 - bne .L3000 + ldr r5, .L3090+4 + bne .L3073 add fp, r4, #1 uxth r3, fp str r3, [sp, #4] - ldr r3, [r5, #-1500] + ldr r3, [r5, #-1504] ldr r0, [r3, #4] - b .L3005 -.L2872: + b .L3078 +.L2945: ldr r1, [ip, #4] - ldr r0, .L3017+12 + ldr r0, .L3090+12 str r2, [sp, #4] bl printk uxth r3, r6 ldrh r1, [r9] str r3, [sp, #16] ldr r2, [sp, #4] - ldr r3, .L3017+16 + ldr r3, .L3090+16 strh r1, [r3] @ movhi -.L2874: +.L2947: add r10, r10, #1 - b .L2871 -.L3000: + b .L2944 +.L3073: uxth r3, r4 str r3, [sp, #4] - ldr r3, [fp, #-1500] + ldr r3, [fp, #-1504] mov r2, #36 mla r7, r2, r7, r3 ldr r0, [r7, #4] -.L3005: +.L3078: ubfx r0, r0, #10, #16 bl P2V_plane ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #1 str r0, [sp, #12] - bne .L2880 + bne .L2953 ldrb r2, [r5, #-2744] @ zero_extendqisi2 cmp r2, #0 ldreq r1, [sp, #4] - ldreq r2, .L3017+8 + ldreq r2, .L3090+8 addeq r2, r2, r1, asl #1 - ldreqh r2, [r2, #76] + ldreqh r2, [r2, #80] streq r2, [sp, #4] -.L2880: - ldr r2, .L3017 +.L2953: + ldr r2, .L3090 ldr r1, [sp, #4] ldr r0, [sp, #12] - ldrh r2, [r2] + ldrh r2, [r2, #-4] cmp r2, r1 ldr r1, [sp, #8] ldreqh r2, [sp, #4] @@ -17530,7 +17908,7 @@ FtlRecoverySuperblock: cmpeq r0, ip moveq r0, r9 moveq r1, r2 - beq .L3010 + beq .L3083 clz r3, r3 ldr r2, [sp, #28] ldr r1, [sp, #16] @@ -17541,39 +17919,39 @@ FtlRecoverySuperblock: cmp r1, r2 orrne r3, r3, #1 cmp r3, #0 - beq .L2884 - ldr r3, .L3017+20 + beq .L2957 + ldr r3, .L3090+20 uxth fp, r6 - ldr r8, .L3017+4 + ldr r8, .L3090+4 mvn r7, #0 mov r6, r7 - ldr r2, [r3, #1764] + ldr r2, [r3, #1760] cmn r2, #1 ldreq r2, [sp] - streq r2, [r3, #1764] - ldr r10, [r3, #1764] + streq r2, [r3, #1760] + ldr r10, [r3, #1760] ldr r3, [sp, #8] add r3, r3, #7 cmp fp, r3 subgt r4, fp, #7 ldrle r4, [sp, #8] uxthgt r4, r4 -.L2887: +.L2960: cmp r4, fp - bhi .L2900 - ldr r3, .L3017+24 + bhi .L2973 + ldr r3, .L3090+24 mov r0, #36 - ldr lr, [r8, #-1500] + ldr lr, [r8, #-1504] ldr r1, [sp, #20] ldrh r3, [r3] str r3, [sp, #16] mov r3, #0 mov r5, r3 -.L2901: +.L2974: ldr ip, [sp, #16] uxth r2, r3 cmp r2, ip - bcs .L3013 + bcs .L3086 ldrh r2, [r1, #2]! movw ip, #65535 add r3, r3, #1 @@ -17583,156 +17961,156 @@ FtlRecoverySuperblock: addne r5, r5, #1 uxthne r5, r5 strne r2, [ip, #4] - b .L2901 -.L3013: + b .L2974 +.L3086: mov r1, r5 ldr r2, [sp, #24] - ldr r0, [r8, #-1500] + ldr r0, [r8, #-1504] bl FlashReadPages - ldr r3, [r8, #-1500] + ldr r3, [r8, #-1504] mov r2, #36 ldrb ip, [r8, #-2744] @ zero_extendqisi2 movw r1, #65535 mla r5, r2, r5, r3 - ldr r2, .L3017+28 + ldr r2, .L3090+28 add r2, r2, r4, asl #1 -.L2890: +.L2963: cmp r3, r5 - beq .L3014 + beq .L3087 ldr r0, [r3] cmp r0, #0 - bne .L2891 + bne .L2964 ldr r0, [r3, #12] ldrh lr, [r0] cmp lr, r1 - beq .L2892 + beq .L2965 ldr r0, [r0, #4] cmn r0, #1 - beq .L2892 - ldr lr, .L3017+20 + beq .L2965 + ldr lr, .L3090+20 cmn r7, #1 - ldr r6, [lr, #1764] - str r0, [lr, #1764] - bne .L2892 + ldr r6, [lr, #1760] + str r0, [lr, #1760] + bne .L2965 ldrh r0, [r2] cmp r0, r1 - bne .L2893 + bne .L2966 cmp ip, #0 - beq .L2892 -.L2893: + beq .L2965 +.L2966: ldr r0, [sp] cmp r6, r0 mvneq r7, #0 movne r7, r6 - b .L2892 -.L2891: + b .L2965 +.L2964: ldrh r1, [r9] - movw r2, #1806 - ldr r3, .L3017+20 + movw r2, #1802 + ldr r3, .L3090+20 strh r1, [r3, r2] @ movhi ldrb r2, [r9, #8] @ zero_extendqisi2 cmp r2, #0 - bne .L2884 - ldr r2, .L3017+28 + bne .L2957 + ldr r2, .L3090+28 mov r4, r4, asl #1 ldrh r1, [r2, r4] movw r2, #65535 cmp r1, r2 - bne .L2895 + bne .L2968 cmn r7, #1 - strne r7, [r3, #1764] - bne .L2884 + strne r7, [r3, #1760] + bne .L2957 ldr r2, [sp] cmp r10, r2 - strne r10, [r3, #1764] - ldreq r2, [r3, #1764] - bne .L2884 - b .L3011 -.L2895: + strne r10, [r3, #1760] + ldreq r2, [r3, #1760] + bne .L2957 + b .L3084 +.L2968: ldr r2, [sp] cmp r6, r2 - beq .L2898 + beq .L2971 cmn r6, #1 - strne r6, [r3, #1764] - b .L2884 -.L2898: - ldr r2, [r3, #1764] + strne r6, [r3, #1760] + b .L2957 +.L2971: + ldr r2, [r3, #1760] ldr r1, [sp] cmp r2, r1 - beq .L2884 -.L3011: + beq .L2957 +.L3084: sub r2, r2, #1 - b .L3006 -.L2892: + b .L3079 +.L2965: add r3, r3, #36 - b .L2890 -.L3014: + b .L2963 +.L3087: add r4, r4, #1 uxth r4, r4 - b .L2887 -.L2900: - ldr r3, .L3017+20 + b .L2960 +.L2973: + ldr r3, .L3090+20 mvn r2, #0 -.L3006: - str r2, [r3, #1764] -.L2884: - ldr fp, .L3017+32 - mov r3, #1 +.L3079: + str r2, [r3, #1760] +.L2957: + ldr fp, .L3090+20 + movw r3, #1804 ldr r10, [sp, #8] - strh r3, [fp] @ movhi - sub fp, fp, #1808 -.L2902: - ldr r3, .L3017+4 + mov r2, #1 + strh r2, [fp, r3] @ movhi +.L2975: + ldr r3, .L3090+4 movw lr, #65535 - ldr r2, .L3017+24 + ldr r2, .L3090+24 mov r1, #36 ldr r5, [sp, #20] mov r4, #0 - ldr r7, [r3, #-1500] + ldr r7, [r3, #-1504] ldrh r6, [r2] ldrb r8, [r3, #-2744] @ zero_extendqisi2 str r4, [sp, #16] -.L2903: +.L2976: uxth r3, r4 cmp r3, r6 - bcs .L3015 + bcs .L3088 ldrh r3, [r5, #2]! cmp r3, lr - beq .L2904 + beq .L2977 ldr r2, [sp, #16] orr r3, r10, r3, asl #10 mla r2, r1, r2, r7 str r3, [r2, #4] ldrb r0, [r9, #8] @ zero_extendqisi2 cmp r0, #1 - bne .L2905 + bne .L2978 cmp r8, #0 orrne r3, r3, #-2147483648 strne r3, [r2, #4] -.L2905: +.L2978: ldr r3, [sp, #16] add ip, r3, #1 uxth r3, ip str r3, [sp, #16] -.L2904: +.L2977: add r4, r4, #1 - b .L2903 -.L3015: - ldr r4, .L3017+4 + b .L2976 +.L3088: + ldr r4, .L3090+4 ldr r1, [sp, #16] ldr r2, [sp, #24] - ldr r0, [r4, #-1500] + ldr r0, [r4, #-1504] bl FlashReadPages mov r3, #0 -.L3009: +.L3082: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L3016 + bcs .L3089 ldr r3, [sp, #28] mov r5, #36 - ldr r8, [r4, #-1500] + ldr r8, [r4, #-1504] mul r5, r5, r3 add r7, r8, r5 ldr r6, [r7, #4] @@ -17741,7 +18119,7 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #8] cmp r10, r3 - bcc .L2908 + bcc .L2981 ldr r3, [sp, #32] ldr r2, [sp, #8] cmp r0, r3 @@ -17750,33 +18128,33 @@ FtlRecoverySuperblock: cmp r10, r2 movne r3, #0 cmp r3, #0 - bne .L2908 + bne .L2981 ldr r3, [sp, #12] ldr r2, [sp, #4] cmp r0, r3 cmpeq r10, r2 - beq .L2909 + beq .L2982 ldr r3, [r8, r5] cmn r3, #1 - beq .L2910 + beq .L2983 ldr r7, [r7, #12] movw r3, #61589 ldrh r2, [r7] cmp r2, r3 ldrneh r0, [r9] - bne .L3007 + bne .L3080 ldr r3, [r7, #4] cmn r3, #1 str r3, [sp] - beq .L2912 + beq .L2985 mov r0, r3 - ldr r1, [r4, #-1608] + ldr r1, [r4, #-1612] bl ftl_cmp_data_ver cmp r0, #0 ldrne r3, [sp] addne r3, r3, #1 - strne r3, [r4, #-1608] -.L2912: + strne r3, [r4, #-1612] +.L2985: ldr r6, [r7, #8] add r1, sp, #56 ldr r3, [r7, #12] @@ -17784,46 +18162,46 @@ FtlRecoverySuperblock: mov r0, r6 str r3, [sp, #52] bl log2phys - ldr r1, [fp, #1764] + ldr r1, [fp, #1760] cmn r1, #1 - beq .L2913 + beq .L2986 ldr r0, [sp] bl ftl_cmp_data_ver cmp r0, #0 - beq .L2913 + beq .L2986 ldr r3, [sp, #52] cmn r3, #1 - beq .L2914 - ldr r0, [r4, #-1500] + beq .L2987 + ldr r0, [r4, #-1504] mov r2, #0 mov r1, #1 add r0, r0, r5 str r3, [r0, #4] ldr r8, [r0, #12] bl FlashReadPages - ldr r2, [r4, #-1500] + ldr r2, [r4, #-1504] ldr r3, [r8, #4] add ip, r2, r5 str r3, [sp, #36] ldr r3, [r2, r5] cmn r3, #1 - bne .L2915 - b .L2916 -.L2914: + bne .L2988 + b .L2989 +.L2987: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - bne .L2908 + bne .L2981 mov r0, r6 add r1, sp, #52 mov r2, #1 bl log2phys - b .L2908 -.L2915: + b .L2981 +.L2988: ldr r7, [r8, #8] cmp r7, r6 - bne .L2916 - ldr r0, [fp, #1764] + bne .L2989 + ldr r0, [fp, #1760] ldr r1, [sp, #36] str r2, [sp, #44] str ip, [sp, #40] @@ -17831,228 +18209,227 @@ FtlRecoverySuperblock: cmp r0, #0 ldr ip, [sp, #40] ldr r2, [sp, #44] - beq .L2916 + beq .L2989 ldr r3, [sp, #56] ldr r1, [sp, #60] cmp r3, r1 - beq .L2921 + beq .L2994 ldr r1, [sp, #52] cmp r3, r1 - beq .L2916 + beq .L2989 cmn r3, #1 streq r3, [r2, r5] - beq .L2920 + beq .L2993 str r3, [ip, #4] mov r0, ip mov r1, #1 mov r2, #0 ldr r8, [ip, #12] bl FlashReadPages -.L2920: - ldr r3, [r4, #-1500] +.L2993: + ldr r3, [r4, #-1504] ldr r3, [r3, r5] cmn r3, #1 - beq .L2921 + beq .L2994 ldr r5, [r8, #4] - ldr r0, [fp, #1764] + ldr r0, [fp, #1760] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L2921 + beq .L2994 ldr r0, [sp, #36] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L2916 -.L2921: + beq .L2989 +.L2994: mov r0, r7 ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L2916: +.L2989: mvn r3, #0 str r3, [sp, #52] - b .L2923 -.L2913: + b .L2996 +.L2986: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - beq .L2923 + beq .L2996 ldr r3, [sp, #52] cmn r3, #1 - beq .L2925 - ldr r2, [r4, #-1716] + beq .L2998 + ldr r2, [r4, #-1720] ubfx r3, r3, #10, #21 cmp r3, r2 - bcs .L2908 -.L2925: + bcs .L2981 +.L2998: mov r0, r6 add r1, sp, #60 mov r2, #1 bl log2phys ldr r8, [sp, #56] cmn r8, #1 - beq .L2923 + beq .L2996 ldr r3, [sp, #52] cmp r8, r3 - beq .L2923 + beq .L2996 ubfx r0, r8, #10, #16 - ldr r5, .L3017+36 + ldr r5, .L3090+32 bl P2V_block_in_plane ldrh r3, [r5] - sub r5, r5, #888 cmp r3, r0 - beq .L2927 - add r3, r5, #936 + beq .L3000 + add r2, r5, #48 + ldrh r2, [r2] + cmp r2, r0 + beq .L3000 + add r3, r5, #96 ldrh r3, [r3] cmp r3, r0 - beq .L2927 - add r3, r5, #984 - ldrh r3, [r3] - cmp r3, r0 - bne .L2923 -.L2927: - ldr r0, [r5, #-1500] + bne .L2996 +.L3000: + ldr r0, [r5, #-2388] mov r1, #1 mov r2, #0 str r8, [r0, #4] ldr r7, [r0, #12] bl FlashReadPages - ldr r3, [r5, #-1500] + ldr r3, [r5, #-2388] ldr r1, [r7, #4] ldr r3, [r3] cmn r3, #1 - beq .L2923 + beq .L2996 ldr r0, [sp] bl ftl_cmp_data_ver cmp r0, #0 - bne .L2923 + bne .L2996 mov r0, r6 add r1, sp, #56 mov r2, #1 bl log2phys -.L2923: +.L2996: ldr r0, [sp, #52] cmn r0, #1 - beq .L2908 + beq .L2981 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r4, #-1404] + ldr r2, [r4, #-1408] mov r3, r0, asl #1 mov r1, r0 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2928 -.L3007: + beq .L3001 +.L3080: bl decrement_vpc_count - b .L2908 -.L2928: - ldr r0, .L3017+40 + b .L2981 +.L3001: + ldr r0, .L3090+36 bl printk - b .L2908 -.L2910: + b .L2981 +.L2983: ldrh r2, [r9] mov r1, r6 - ldr r3, .L3017+16 - ldr r0, .L3017+44 + ldr r3, .L3090+16 + ldr r0, .L3090+40 strh r2, [r3] @ movhi ldr r2, [sp] bl printk - ldr r3, [fp, #1812] + ldr r3, [fp, #1808] cmp r3, #31 addls r2, fp, r3, asl #2 addls r3, r3, #1 - strls r3, [fp, #1812] + strls r3, [fp, #1808] ldrls r1, [sp, #60] - strls r1, [r2, #1816] + strls r1, [r2, #1812] ldrh r0, [r9] bl decrement_vpc_count - ldr r3, .L3017+20 - ldr r3, [r3, #1764] + ldr r3, .L3090+20 + ldr r3, [r3, #1760] cmn r3, #1 ldreq r3, [sp] - beq .L3008 + beq .L3081 ldr r2, [sp] cmp r3, r2 - bls .L2908 + bls .L2981 mov r3, r2 -.L3008: - str r3, [fp, #1764] -.L2908: +.L3081: + str r3, [fp, #1760] +.L2981: ldr r3, [sp, #28] add r3, r3, #1 - b .L3009 -.L3016: + b .L3082 +.L3089: ldrb r3, [r9, #8] @ zero_extendqisi2 add r10, r10, #1 cmp r3, #1 uxth r10, r10 - bne .L2932 - ldr r3, .L3017+4 + bne .L3005 + ldr r3, .L3090+4 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L2932 - ldr r3, .L3017+48 + beq .L3005 + ldr r3, .L3090+44 ldr r2, [sp, #4] ldrh r3, [r3] cmp r2, r10 cmpeq r3, r10 - beq .L2909 -.L2932: - ldr r2, .L3017 + beq .L2982 +.L3005: + ldr r2, .L3090+48 ldrh r3, [r2] cmp r10, r3 - bne .L2902 + bne .L2975 ldrh r1, [r2, #-68] movw r0, #65535 mov r3, #0 strh r10, [r9, #2] @ movhi strh r3, [r9, #4] @ movhi -.L2933: +.L3006: uxth r2, r3 cmp r2, r1 - bcs .L2999 + bcs .L3072 ldr lr, [sp, #20] add r3, r3, #1 ldrh ip, [lr, #2]! cmp ip, r0 str lr, [sp, #20] - beq .L2933 + beq .L3006 strb r2, [r9, #6] - b .L2999 -.L2909: + b .L3072 +.L2982: ldrb r3, [sp, #12] @ zero_extendqisi2 mov r0, r9 ldr r1, [sp, #4] strb r3, [r9, #6] ldrh r3, [sp, #4] strh r3, [r9, #2] @ movhi -.L3010: +.L3083: ldr r2, [sp, #12] bl ftl_sb_update_avl_pages -.L2999: +.L3072: mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3002: +.L3075: mov r0, #0 bx lr -.L3018: +.L3091: .align 2 -.L3017: +.L3090: .word .LANCHOR2-1664 .word .LANCHOR2 .word .LANCHOR0 - .word .LC150 - .word .LANCHOR4+1806 + .word .LC154 + .word .LANCHOR4+1802 .word .LANCHOR4 - .word .LANCHOR2-1732 - .word .LANCHOR0+1100 - .word .LANCHOR4+1808 - .word .LANCHOR2+888 - .word .LC151 - .word .LC152 - .word .LANCHOR2-1662 + .word .LANCHOR2-1736 + .word .LANCHOR0+1104 + .word .LANCHOR2+884 + .word .LC155 + .word .LC156 + .word .LANCHOR2-1666 + .word .LANCHOR2-1668 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 @@ -18073,16 +18450,16 @@ FtlSlcSuperblockCheck: ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} ldrb r3, [r0, #6] @ zero_extendqisi2 mov r4, r0 - ldr r5, .L3033 - ldr r6, .L3033+4 + ldr r5, .L3105 + ldr r6, .L3105+4 add r3, r0, r3, asl #1 - ldr r7, .L3033+8 + ldr r7, .L3105+8 ldrh r3, [r3, #16] -.L3023: - movw r1, #65535 - cmp r3, r1 - bne .L3032 -.L3025: +.L3096: + movw r2, #65535 + cmp r3, r2 + bne .L3104 +.L3098: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -18097,19 +18474,19 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] - b .L3023 -.L3032: - ldrb r2, [r4, #8] @ zero_extendqisi2 - cmp r2, #1 - bne .L3026 + b .L3096 +.L3104: + ldrb r1, [r4, #8] @ zero_extendqisi2 + cmp r1, #1 + bne .L3099 ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L3026 + bne .L3099 ldrh r3, [r4, #2] mov r3, r3, asl #1 ldrh r3, [r6, r3] - cmp r3, r1 - bne .L3026 + cmp r3, r2 + bne .L3099 ldrh r3, [r4, #4] ldrh r0, [r4] sub r3, r3, #1 @@ -18117,43 +18494,43 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L3025 + bne .L3098 ldrh r3, [r4, #2] - add r3, r3, #1 - b .L3031 -.L3026: - ldr r3, .L3033 - ldrb r1, [r3, #-2744] @ zero_extendqisi2 - cmp r1, #0 - ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} - cmp r2, #1 - ldmnefd sp!, {r3, r4, r5, r6, r7, pc} - sub r2, r3, #1648 - ldrh r1, [r4, #2] - ldrh r2, [r2, #-14] - cmp r1, r2 - ldmccfd sp!, {r3, r4, r5, r6, r7, pc} - ldrh r2, [r4] - sub r3, r3, #1664 - ldr r0, [r3, #260] - ldrh ip, [r4, #4] - mov r2, r2, asl #1 - ldrh r1, [r0, r2] - rsb r1, ip, r1 - strh r1, [r0, r2] @ movhi - ldrh r3, [r3] - mov r2, #0 - strh r2, [r4, #4] @ movhi -.L3031: - strh r3, [r4, #2] @ movhi strb r2, [r4, #6] + add r3, r3, #1 + strh r3, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3034: +.L3099: + ldr r2, .L3105 + ldrb r3, [r2, #-2744] @ zero_extendqisi2 + cmp r3, #0 + ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} + cmp r1, #1 + ldmnefd sp!, {r3, r4, r5, r6, r7, pc} + sub r1, r2, #1664 + ldrh r0, [r4, #2] + ldrh r3, [r1, #-2] + cmp r0, r3 + ldmccfd sp!, {r3, r4, r5, r6, r7, pc} + ldrh r3, [r4] + ldr r0, [r2, #-1408] + ldrh ip, [r4, #4] + mov r3, r3, asl #1 + ldrh r2, [r0, r3] + rsb r2, ip, r2 + strh r2, [r0, r3] @ movhi + ldrh r2, [r1, #-4] + mov r3, #0 + strh r3, [r4, #4] @ movhi + strb r3, [r4, #6] + strh r2, [r4, #2] @ movhi + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L3106: .align 2 -.L3033: +.L3105: .word .LANCHOR2 - .word .LANCHOR0+1100 - .word .LANCHOR2-1732 + .word .LANCHOR0+1104 + .word .LANCHOR2-1736 .fnend .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 @@ -18169,17 +18546,17 @@ get_new_active_ppa: strb r3, [r0, #10] mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r7, .L3053 - ldr r8, .L3053+4 + ldr r7, .L3125 + ldr r8, .L3125+4 add r3, r0, r3, asl #1 - ldr r9, .L3053+8 + ldr r9, .L3125+8 ldrh r2, [r3, #16] -.L3036: +.L3108: movw r1, #65535 cmp r2, r1 - ldr r6, .L3053 - bne .L3052 -.L3037: + ldr r6, .L3125 + bne .L3124 +.L3109: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -18194,35 +18571,35 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r2, [r3, #16] - b .L3036 -.L3052: + b .L3108 +.L3124: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r5, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L3039 + bne .L3111 ldrb r0, [r8, #-2744] @ zero_extendqisi2 cmp r0, #0 - bne .L3039 + bne .L3111 mov r0, r5, asl #1 ldrh r0, [r9, r0] cmp r0, r1 - bne .L3039 + bne .L3111 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L3037 -.L3039: - ldr r7, .L3053+4 + b .L3109 +.L3111: + ldr r7, .L3125+4 orr r5, r5, r2, asl #10 sub r3, r3, #1 strh r3, [r4, #4] @ movhi -.L3040: +.L3112: ldrb r3, [r4, #6] @ zero_extendqisi2 movw r2, #65535 ldrh r0, [r6] -.L3042: +.L3114: add r3, r3, #1 uxtb r3, r3 cmp r3, r0 @@ -18233,61 +18610,60 @@ get_new_active_ppa: add r1, r4, r3, asl #1 ldrh r1, [r1, #16] cmp r1, r2 - beq .L3042 + beq .L3114 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L3047 + bne .L3119 ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L3044 + bne .L3116 ldrh r3, [r4, #2] - ldr r2, .L3053+8 + ldr r2, .L3125+8 mov r3, r3, asl #1 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L3044 + bne .L3116 ldrh r3, [r4, #4] cmp r3, #0 - beq .L3044 + beq .L3116 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L3040 -.L3044: - ldr r3, .L3053+4 - ldrb r2, [r3, #-2744] @ zero_extendqisi2 - cmp r2, #0 - beq .L3047 - sub r2, r3, #1648 - ldrh r1, [r4, #2] - ldrh r2, [r2, #-14] - cmp r1, r2 - bcc .L3047 - ldrh r2, [r4] - sub r3, r3, #1664 - ldr r0, [r3, #260] + b .L3112 +.L3116: + ldr r2, .L3125+4 + ldrb r3, [r2, #-2744] @ zero_extendqisi2 + cmp r3, #0 + beq .L3119 + sub r1, r2, #1664 + ldrh r0, [r4, #2] + ldrh r3, [r1, #-2] + cmp r0, r3 + bcc .L3119 + ldrh r3, [r4] + ldr r0, [r2, #-1408] ldrh ip, [r4, #4] - mov r2, r2, asl #1 - ldrh r1, [r0, r2] - rsb r1, ip, r1 - strh r1, [r0, r2] @ movhi - ldrh r3, [r3] - mov r2, #0 - strh r2, [r4, #4] @ movhi - strb r2, [r4, #6] - strh r3, [r4, #2] @ movhi -.L3047: + mov r3, r3, asl #1 + ldrh r2, [r0, r3] + rsb r2, ip, r2 + strh r2, [r0, r3] @ movhi + ldrh r2, [r1, #-4] + mov r3, #0 + strh r3, [r4, #4] @ movhi + strb r3, [r4, #6] + strh r2, [r4, #2] @ movhi +.L3119: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3054: +.L3126: .align 2 -.L3053: - .word .LANCHOR2-1732 +.L3125: + .word .LANCHOR2-1736 .word .LANCHOR2 - .word .LANCHOR0+1100 + .word .LANCHOR0+1104 .fnend .size get_new_active_ppa, .-get_new_active_ppa .align 2 @@ -18301,36 +18677,36 @@ FtlWriteDumpData: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r4, .L3074 - ldr r3, [r4, #-1276] + ldr r4, .L3146 + ldr r3, [r4, #-1280] cmp r3, #0 - bne .L3055 - add r7, r4, #888 + bne .L3127 + add r7, r4, #884 ldrh r5, [r7, #4] cmp r5, #0 - beq .L3057 - ldrb r3, [r4, #896] @ zero_extendqisi2 + beq .L3129 + ldrb r3, [r4, #892] @ zero_extendqisi2 cmp r3, #0 - bne .L3057 + bne .L3129 sub r3, r4, #1664 - ldrb r2, [r4, #895] @ zero_extendqisi2 - ldrh r3, [r3] + ldrb r2, [r4, #891] @ zero_extendqisi2 + ldrh r3, [r3, #-4] mul r3, r3, r2 cmp r5, r3 - beq .L3057 - ldrb r8, [r4, #898] @ zero_extendqisi2 + beq .L3129 + ldrb r8, [r4, #894] @ zero_extendqisi2 sub r3, r4, #1728 - ldr r6, [r4, #-1280] + ldr r6, [r4, #-1284] cmp r8, #0 - ldrh r9, [r3, #-4] - bne .L3055 + ldrh r9, [r3, #-8] + bne .L3127 sub r6, r6, #1 mov r1, sp mov r2, r8 mov r0, r6 bl log2phys - ldr r5, [r4, #-1440] - ldr r0, [r4, #-1472] + ldr r5, [r4, #-1444] + ldr r0, [r4, #-1476] ldr r3, [sp] str r6, [sp, #20] cmn r3, #1 @@ -18338,31 +18714,31 @@ FtlWriteDumpData: str r3, [sp, #8] str r5, [sp, #16] str r8, [r5, #4] - beq .L3059 + beq .L3131 mov r1, #1 mov r2, r8 add r0, sp, #4 bl FlashReadPages - b .L3060 -.L3059: + b .L3132 +.L3131: sub r3, r4, #1648 mov r1, #255 - ldrh r2, [r3, #-6] + ldrh r2, [r3, #-10] bl ftl_memset -.L3060: - ldr r3, .L3074+4 +.L3132: + ldr r3, .L3146+4 mov r8, #0 - ldr fp, .L3074 + ldr fp, .L3146 mov r9, r9, asl #2 mov r10, r8 strh r3, [r5] @ movhi -.L3061: +.L3133: cmp r8, r9 - beq .L3062 + beq .L3134 ldrh r3, [r7, #4] - ldr r0, .L3074+8 + ldr r0, .L3146+8 cmp r3, #0 - beq .L3062 + beq .L3134 ldr r3, [sp, #8] add r8, r8, #1 str r6, [r5, #8] @@ -18370,7 +18746,7 @@ FtlWriteDumpData: ldrh r3, [r0] strh r3, [r5, #2] @ movhi bl get_new_active_ppa - ldr r3, [fp, #-1608] + ldr r3, [fp, #-1612] mov r2, #0 mov r1, #1 str r0, [sp, #8] @@ -18379,29 +18755,29 @@ FtlWriteDumpData: add r3, r3, #1 cmn r3, #1 moveq r3, r10 - str r3, [fp, #-1608] + str r3, [fp, #-1612] mov r3, r2 bl FlashProgPages ldrh r0, [r7] bl decrement_vpc_count - b .L3061 -.L3062: + b .L3133 +.L3134: mov r3, #1 - b .L3073 -.L3057: + b .L3145 +.L3129: mov r3, #0 -.L3073: - strb r3, [r4, #898] -.L3055: +.L3145: + strb r3, [r4, #894] +.L3127: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3075: +.L3147: .align 2 -.L3074: +.L3146: .word .LANCHOR2 .word -3947 - .word .LANCHOR2+888 + .word .LANCHOR2+884 .fnend .size FtlWriteDumpData, .-FtlWriteDumpData .align 2 @@ -18415,31 +18791,31 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData mov r4, #0 - ldr r6, .L3082 + ldr r6, .L3154 mov r7, #12 - ldr r5, .L3082+4 -.L3077: + ldr r5, .L3154+4 +.L3149: ldrh r3, [r5] uxth r0, r4 cmp r3, r0 - bls .L3081 - ldr r3, [r6, #-1360] + bls .L3153 + ldr r3, [r6, #-1364] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L3078 + bge .L3150 bl flush_l2p_region -.L3078: +.L3150: add r4, r4, #1 - b .L3077 -.L3081: + b .L3149 +.L3153: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3083: +.L3155: .align 2 -.L3082: +.L3154: .word .LANCHOR2 - .word .LANCHOR2-1626 + .word .LANCHOR2-1630 .fnend .size l2p_flush, .-l2p_flush .align 2 @@ -18453,30 +18829,30 @@ FtlSuperblockPowerLostFix: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #40 sub sp, sp, #40 - ldr r5, .L3101 - ldr r3, [r5, #-1276] + ldr r5, .L3173 + ldr r3, [r5, #-1280] cmp r3, #0 - bne .L3084 + bne .L3156 ldrb r6, [r5, #-2744] @ zero_extendqisi2 cmp r6, #0 - beq .L3100 + beq .L3172 ldrb r6, [r0, #8] @ zero_extendqisi2 cmp r6, #1 ldreqh r10, [r0, #4] - beq .L3086 + beq .L3158 mov r6, r3 -.L3100: +.L3172: mov r10, #12 -.L3086: - ldr r7, [r5, #-1440] +.L3158: + ldr r7, [r5, #-1444] mvn r3, #0 str r3, [sp, #20] mov r8, #0 - ldr r3, [r5, #-1472] + ldr r3, [r5, #-1476] movw r2, #61589 str r7, [sp, #16] mov r4, r0 - ldr r9, .L3101 + ldr r9, .L3173 str r3, [sp, #12] mvn r3, #2 str r3, [r7, #8] @@ -18485,39 +18861,39 @@ FtlSuperblockPowerLostFix: ldrh r3, [r0] strh r8, [r7] @ movhi strh r3, [r7, #2] @ movhi - ldr r3, [r5, #-1472] + ldr r3, [r5, #-1476] str r2, [r3] - ldr r2, .L3101+4 - ldr r3, [r5, #-1472] + ldr r2, .L3173+4 + ldr r3, [r5, #-1476] str r2, [r3, #4] -.L3087: +.L3159: subs r10, r10, #1 - bcc .L3090 + bcc .L3162 ldrh r3, [r4, #4] cmp r3, #0 - bne .L3088 -.L3090: + bne .L3160 +.L3162: ldrh r3, [r4] - ldr r1, [r5, #-1404] + ldr r1, [r5, #-1408] ldrh r0, [r4, #4] mov r3, r3, asl #1 ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L3101+8 - ldrh r3, [r3] + ldr r3, .L3173+8 + ldrh r3, [r3, #-4] strh r3, [r4, #2] @ movhi mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - b .L3084 -.L3088: + b .L3156 +.L3160: mov r0, r4 bl get_new_active_ppa cmn r0, #1 str r0, [sp, #8] - beq .L3090 - ldr r3, [r5, #-1608] + beq .L3162 + ldr r3, [r5, #-1612] mov r1, #1 mov r2, r6 add r0, sp, #4 @@ -18525,19 +18901,19 @@ FtlSuperblockPowerLostFix: add r3, r3, #1 cmn r3, #1 moveq r3, r8 - str r3, [r9, #-1608] + str r3, [r9, #-1612] mov r3, #0 bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L3087 -.L3084: + b .L3159 +.L3156: add sp, sp, #40 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3102: +.L3174: .align 2 -.L3101: +.L3173: .word .LANCHOR2 .word 305419896 .word .LANCHOR2-1664 @@ -18554,97 +18930,98 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r5, #0 - ldr r4, .L3120 - ldr r1, .L3120+4 - ldr r0, .L3120+8 + ldr r4, .L3192 + ldr r1, .L3192+4 + ldr r0, .L3192+8 bl printk sub r3, r4, #1712 - ldr r0, [r4, #-1408] + ldr r0, [r4, #-1412] mov r1, #0 - ldrh r2, [r3, #-10] + ldrh r2, [r3, #-14] mov r6, r4 mov r2, r2, asl #1 bl ftl_memset -.L3104: - ldr r3, [r4, #-1280] +.L3176: + ldr r3, [r4, #-1284] cmp r5, r3 - bcs .L3118 + bcs .L3190 mov r0, r5 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L3105 + beq .L3177 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r6, #-1408] + ldr r2, [r6, #-1412] mov r0, r0, asl #1 ldrh r3, [r2, r0] add r3, r3, #1 strh r3, [r2, r0] @ movhi -.L3105: +.L3177: add r5, r5, #1 - b .L3104 -.L3118: - ldr r6, .L3120 + b .L3176 +.L3190: + ldr r5, .L3192 mov r7, #0 - ldr r8, .L3120+12 - add r9, r6, #888 -.L3107: - ldrh r3, [r8] + add r8, r5, #884 + add r9, r5, #980 +.L3179: + ldr r3, .L3192+12 uxth r4, r7 + ldrh r3, [r3] cmp r3, r4 - bls .L3119 - ldr r3, [r6, #-1404] - mov r5, r4, asl #1 + bls .L3191 + ldr r3, [r5, #-1408] + mov r6, r4, asl #1 movw r1, #65535 - ldrh r2, [r3, r5] - ldr r3, [r6, #-1408] - ldrh r3, [r3, r5] + ldrh r2, [r3, r6] + ldr r3, [r5, #-1412] + ldrh r3, [r3, r6] cmp r2, r1 cmpne r2, r3 - beq .L3108 + beq .L3180 + ldrh r1, [r8] + cmp r1, r4 + beq .L3180 ldrh r1, [r9] cmp r1, r4 - beq .L3108 - ldr r1, .L3120+16 - ldrh r0, [r1] - cmp r0, r4 - beq .L3108 - ldrh r1, [r1, #-48] + beq .L3180 + ldr r1, .L3192+16 + ldrh r1, [r1] cmp r1, r4 - beq .L3108 - ldr r0, .L3120+20 + beq .L3180 + ldr r0, .L3192+20 mov r1, r4 bl printk - ldr r3, [r6, #-1404] - ldrh r2, [r3, r5] + ldr r3, [r5, #-1408] + ldrh r2, [r3, r6] cmp r2, #0 - ldr r2, [r6, #-1408] - ldrh r2, [r2, r5] - strh r2, [r3, r5] @ movhi - beq .L3108 + ldr r2, [r5, #-1412] + ldrh r2, [r2, r6] + strh r2, [r3, r6] @ movhi + beq .L3180 mov r0, r4 bl update_vpc_list -.L3108: +.L3180: add r7, r7, #1 - b .L3107 -.L3119: + b .L3179 +.L3191: bl l2p_flush bl FtlVpcTblFlush add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3121: +.L3193: .align 2 -.L3120: +.L3192: .word .LANCHOR2 - .word .LANCHOR3+84 - .word .LC48 - .word .LANCHOR2-1724 - .word .LANCHOR2+984 - .word .LC153 + .word .LANCHOR3+216 + .word .LC50 + .word .LANCHOR2-1728 + .word .LANCHOR2+932 + .word .LC157 .fnend .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 @@ -18656,98 +19033,98 @@ allocate_new_data_superblock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r5, .L3149 + ldr r5, .L3221 ldrh r7, [r0] - ldr r3, [r5, #-1276] + ldr r3, [r5, #-1280] cmp r3, #0 - bne .L3123 + bne .L3195 movw r3, #65535 cmp r7, r3 mov r4, r0 - beq .L3124 - ldr r2, [r5, #-1404] + beq .L3196 + ldr r2, [r5, #-1408] mov r3, r7, asl #1 mov r0, r7 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3125 + beq .L3197 bl INSERT_DATA_LIST - b .L3124 -.L3125: + b .L3196 +.L3197: bl INSERT_FREE_LIST -.L3124: +.L3196: mov r3, #0 strb r3, [r4, #8] - ldr r3, .L3149 - add r2, r3, #936 + ldr r3, .L3221 + add r2, r3, #932 cmp r4, r2 - beq .L3126 + beq .L3198 sub r2, r3, #1712 - ldrh r2, [r2] + ldrh r2, [r2, #-4] cmp r2, #1 - beq .L3126 + beq .L3198 ldrb r1, [r3, #-2744] @ zero_extendqisi2 cmp r1, #0 - beq .L3127 -.L3126: + beq .L3199 +.L3198: mov r3, #1 strb r3, [r4, #8] - b .L3128 -.L3127: - add r1, r3, #888 + b .L3200 +.L3199: + add r1, r3, #884 cmp r4, r1 - bne .L3128 + bne .L3200 cmp r2, #3 - beq .L3130 - ldr r3, [r3, #-1616] + beq .L3202 + ldr r3, [r3, #-1620] cmp r3, #1 - bne .L3131 -.L3130: + bne .L3203 +.L3202: mov r3, #1 - strb r3, [r5, #896] -.L3131: - ldr r2, [r5, #-1800] - ldr r3, .L3149 + strb r3, [r5, #892] +.L3203: + ldr r2, [r5, #-1872] + ldr r3, .L3221 cmp r2, #0 - beq .L3128 - ldr r2, [r3, #-1564] + beq .L3200 + ldr r2, [r3, #-1568] cmp r2, #39 movls r2, #1 - strlsb r2, [r3, #896] -.L3128: - ldr r3, .L3149+4 - movw r2, #1752 + strlsb r2, [r3, #892] +.L3200: + ldr r3, .L3221+4 + movw r2, #1748 ldrh r0, [r3, r2] movw r2, #65535 mov r6, r3 cmp r0, r2 - beq .L3133 + beq .L3205 cmp r7, r0 - bne .L3134 - ldr r2, [r5, #-1404] + bne .L3206 + ldr r2, [r5, #-1408] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3135 -.L3134: + beq .L3207 +.L3206: bl update_vpc_list -.L3135: - movw r3, #1752 +.L3207: + movw r3, #1748 mvn r2, #0 strh r2, [r6, r3] @ movhi -.L3133: +.L3205: mov r0, r4 bl allocate_data_superblock bl l2p_flush mov r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3123: +.L3195: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3150: +.L3222: .align 2 -.L3149: +.L3221: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -18763,31 +19140,31 @@ FtlReadRefresh: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #40 sub sp, sp, #40 - ldr r7, .L3168 - ldr r5, .L3168+4 - ldr r10, [r7, #1296] + ldr r7, .L3240 + ldr r5, .L3240+4 + ldr r10, [r7, #1292] mov r6, r7 cmp r10, #0 - beq .L3152 - ldr r2, [r7, #1300] - ldr r3, [r5, #-1280] + beq .L3224 + ldr r2, [r7, #1296] + ldr r3, [r5, #-1284] cmp r2, r3 - bcs .L3153 + bcs .L3225 mov r4, #2048 -.L3158: - ldr r0, [r6, #1300] - ldr r3, [r5, #-1280] +.L3230: + ldr r0, [r6, #1296] + ldr r3, [r5, #-1284] cmp r0, r3 - bcs .L3157 + bcs .L3229 mov r2, #0 mov r1, sp bl log2phys - ldr r3, [r7, #1300] + ldr r3, [r7, #1296] add r3, r3, #1 - str r3, [r7, #1300] + str r3, [r7, #1296] ldr r2, [sp] cmn r2, #1 - beq .L3156 + beq .L3228 add r0, sp, #40 str r2, [sp, #8] mov r1, #1 @@ -18799,38 +19176,38 @@ FtlReadRefresh: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L3157 + bne .L3229 ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3157: +.L3229: mvn r0, #0 - b .L3160 -.L3156: + b .L3232 +.L3228: subs r4, r4, #1 - bne .L3158 - b .L3157 -.L3153: - ldr r3, [r5, #-1584] + bne .L3230 + b .L3229 +.L3225: + ldr r3, [r5, #-1588] mov r0, #0 + str r0, [r7, #1292] str r0, [r7, #1296] - str r0, [r7, #1300] - str r3, [r7, #1292] - b .L3160 -.L3152: - ldr r1, [r5, #-1568] + str r3, [r7, #1288] + b .L3232 +.L3224: + ldr r1, [r5, #-1572] movw r4, #10000 - ldr r9, [r5, #-1584] - add r5, r5, #820 + ldr r9, [r5, #-1588] + add r5, r5, #816 cmp r1, r4 - ldr r8, [r7, #1292] + ldr r8, [r7, #1288] add r2, r9, #1048576 ldr r3, [r5, #-2100] movhi r4, #31 movls r4, #63 cmp r8, r2 - bhi .L3162 + bhi .L3234 mov r1, r1, lsr #10 mov r0, #1000 mul r0, r0, r3 @@ -18838,29 +19215,29 @@ FtlReadRefresh: bl __aeabi_uidiv add r0, r0, r8 cmp r0, r9 - bcc .L3162 + bcc .L3234 ldrh r3, [r5, #28] ands r0, r4, r3 movne r0, r10 - bne .L3160 - ldr r2, [r7, #1316] + bne .L3232 + ldr r2, [r7, #1312] cmp r2, r3 - beq .L3160 -.L3162: + beq .L3232 +.L3234: ldrh r3, [r5, #28] mov r0, #0 - str r9, [r6, #1292] - str r0, [r6, #1300] - str r3, [r6, #1316] + str r9, [r6, #1288] + str r0, [r6, #1296] + str r3, [r6, #1312] mov r3, #1 - str r3, [r6, #1296] -.L3160: + str r3, [r6, #1292] +.L3232: add sp, sp, #40 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3169: +.L3241: .align 2 -.L3168: +.L3240: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -18872,980 +19249,985 @@ ftl_do_gc: .fnstart @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3333 - ldr r2, [r3, #-1276] - cmp r2, #0 - bne .L3264 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r9, .L3333+4 - ldr ip, [r9, #3348] - cmn ip, #1 - beq .L3266 - ldr r4, [r3, #-1560] - cmp r4, #0 - bne .L3266 - add r2, r3, #876 - ldrh r2, [r2] - cmp r2, #47 - movls r0, r4 - bls .L3323 - movw r2, #3352 - str r1, [sp, #12] - ldrh r1, [r9, r2] - movw r2, #65535 - mov r5, r3 - str r0, [sp, #20] - cmp r1, r2 - bne .L3172 -.L3175: - ldr r4, .L3333+8 - movw r1, #65535 - ldrh ip, [r4, #-14] - cmp ip, r1 - bne .L3173 - b .L3174 -.L3172: - add r3, r3, #984 - ldrh r3, [r3] - cmp r3, r2 - beq .L3175 - mov r0, #1 + ldr r5, .L3406 + ldr r8, [r5, #-1280] + cmp r8, #0 + movne r0, #0 + bne .L3395 + ldr r2, .L3406+4 + ldr r6, [r2, #3444] + cmp r6, #1 + bne .L3338 + ldr r3, [r5, #-1564] + cmp r3, #0 + bne .L3338 + mov r4, r0 + add r0, r5, #872 + ldrh r0, [r0] + cmp r0, #47 + movls r0, r3 + bls .L3395 + movw r3, #3448 + mov r7, r5 + ldrh r2, [r2, r3] + movw r3, #65535 + mov r9, r1 + str r4, [sp, #20] + cmp r2, r3 + bne .L3244 +.L3247: + ldr r8, .L3406+8 + movw r5, #65535 + ldrh r4, [r8, #-2] + cmp r4, r5 + bne .L3245 + b .L3246 +.L3244: + add r5, r5, #980 + ldrh r2, [r5] + cmp r2, r3 + beq .L3247 + mov r0, r6 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L3175 - mov r0, #1 - b .L3323 -.L3173: - mov r3, r4 - ldrh r2, [r3, #-16]! - cmp r2, r1 - bne .L3174 - ldrh r0, [r4, #-12] - cmp r0, r2 - beq .L3174 - ldrh r1, [r4, #-10] - cmp r1, r2 - strneh ip, [r3] @ movhi - strneh r0, [r4, #-14] @ movhi + beq .L3247 + mov r0, r6 + b .L3395 +.L3245: + ldrh r3, [r8, #-4] + cmp r3, r5 + bne .L3246 + ldrh r0, [r8] + cmp r0, r3 + beq .L3246 + ldrh r1, [r8, #2] + cmp r1, r3 + strneh r4, [r8, #-4] @ movhi + strneh r0, [r8, #-2] @ movhi mvnne r3, #0 - strneh r1, [r4, #-12] @ movhi - strneh r3, [r4, #-10] @ movhi -.L3174: - ldr r2, [sp, #20] - ldr r7, [r5, #-1544] - cmp r2, #1 - ldr r3, .L3333 - add r7, r7, #1 - ldr r6, .L3333+12 - add r7, r7, r2, asl #7 - str r7, [r5, #-1544] - bne .L3186 - ldr r2, [r3, #-1800] + strneh r1, [r8] @ movhi + strneh r3, [r8, #2] @ movhi +.L3246: + ldr r1, [sp, #20] + ldr r3, [r7, #-1548] + cmp r1, #1 + ldr r2, .L3406 + add r3, r3, #1 + ldr r6, .L3406+12 + add r3, r3, r1, asl #7 + str r3, [r7, #-1548] + bne .L3258 + ldr r1, [r2, #-1872] + cmp r1, #0 + bne .L3249 + ldrb r2, [r2, #-2744] @ zero_extendqisi2 cmp r2, #0 - bne .L3177 - ldrb r3, [r3, #-2744] @ zero_extendqisi2 - cmp r3, #0 - beq .L3186 -.L3177: - ldr r3, [r5, #-1564] - ldr r10, .L3333 - cmp r3, #39 - bhi .L3186 - ldr r9, .L3333+16 - movw r3, #1944 - ldrh r3, [r9, r3] - add r7, r7, r3 - str r7, [r10, #-1544] + beq .L3258 +.L3249: + ldr r2, [r7, #-1568] + ldr r4, .L3406 + cmp r2, #39 + bhi .L3258 + movw r2, #1940 + ldrh r2, [r6, r2] + add r3, r3, r2 + str r3, [r4, #-1548] bl FtlGcReFreshBadBlk - ldrh r3, [r6] + movw r3, #1164 + ldrh r3, [r6, r3] movw r2, #65535 cmp r3, r2 - bne .L3186 - sub r2, r10, #1536 - ldrh r2, [r2] + bne .L3258 + ldrh r2, [r8, #-4] cmp r2, r3 - bne .L3186 - ldr r3, [r10, #-1544] - add r10, r10, #884 + bne .L3258 + ldr r3, [r4, #-1548] + add r4, r4, #880 cmp r3, #1024 - bhi .L3178 - ldrh r3, [r10] + bhi .L3250 + ldrh r3, [r4] cmp r3, #63 - bhi .L3186 -.L3178: - ldrh r2, [r4, #-6] - movw r3, #1944 - ldrh lr, [r10] - mov ip, #0 - add r2, r2, #64 - ldr r1, .L3333+16 - cmp lr, r2 - strh ip, [r9, r3] @ movhi - ldr r0, .L3333 - bgt .L3186 - ldr r2, [r0, #-1564] - str ip, [r0, #-1544] - cmp r2, ip - moveq r2, #6 - beq .L3325 - cmp r2, #5 - bhi .L3180 - mov r2, #18 -.L3325: - strh r2, [r1, r3] @ movhi -.L3180: + bhi .L3258 +.L3250: + ldr ip, .L3406 + movw r3, #1940 + ldrh r0, [r4] + mov r1, #0 + sub r4, ip, #1520 + ldr r2, .L3406+12 + strh r1, [r6, r3] @ movhi + ldrh r10, [r4, #-10] + add r5, r10, #64 + cmp r0, r5 + bgt .L3258 + str r1, [ip, #-1548] + ldr r1, [ip, #-1568] + cmp r1, #0 + moveq r1, #6 + beq .L3397 + cmp r1, #5 + bhi .L3252 + mov r1, #18 +.L3397: + strh r1, [r2, r3] @ movhi +.L3252: mov r0, #32 bl List_get_gc_head_node - movw r3, #65535 - uxth r10, r0 - cmp r10, r3 - beq .L3185 - ldrh r0, [r4, #-4] - ldr r7, .L3333 + movw ip, #65535 + uxth r2, r0 + cmp r2, ip + beq .L3257 + ldrh r0, [r4, #-8] + ldr r5, .L3406 cmp r0, #0 - sub r8, r7, #1520 - beq .L3182 - sub r1, r7, #1648 - ldr r2, [r7, #-1404] - mov r10, r10, asl #1 - ldrh fp, [r1, #-14] - sub r1, r7, #1728 - ldrh lr, [r2, r10] - ldrh r1, [r1, #-4] - mul r1, r1, fp + sub r10, r5, #1520 + beq .L3254 + sub r1, r5, #1664 + ldr r3, [r5, #-1408] + mov r2, r2, asl #1 + ldrh r4, [r1, #-2] + sub r1, r5, #1728 + ldrh lr, [r3, r2] + ldrh r1, [r1, #-8] + mul r1, r1, r4 add r1, r1, #1 cmp lr, r1 - bgt .L3185 + bgt .L3257 add r1, r0, #1 - str r3, [sp, #28] - str r2, [sp, #24] - mov r3, #0 + str r2, [sp, #28] + str ip, [sp, #24] + mov fp, #0 uxth r1, r1 - str r3, [r7, #-1556] - strh r1, [r8, #-4] @ movhi - str r1, [sp, #16] + str r3, [sp, #16] + strh r1, [r10, #-8] @ movhi + str r1, [sp, #12] + str fp, [r5, #-1560] bl List_get_gc_head_node - ldr r3, [sp, #28] - uxth fp, r0 - ldr r1, [sp, #16] - cmp fp, r3 - ldr r2, [sp, #24] - beq .L3185 - mov r9, fp, asl #1 - ldr r0, .L3333+20 - ldrh r3, [r2, r9] - ldrh r2, [r2, r10] - str r2, [sp] - mov r2, fp + ldr ip, [sp, #24] + uxth r4, r0 + ldr r1, [sp, #12] + cmp r4, ip + ldr r3, [sp, #16] + ldr r2, [sp, #28] + beq .L3257 + mov ip, r4, asl #1 + ldr r0, .L3406+16 + str ip, [sp, #12] + ldrh lr, [r3, ip] + ldrh r3, [r3, r2] + mov r2, r4 + str r3, [sp] + mov r3, lr bl printk - ldrh r3, [r8, #-4] + ldrh r3, [r10, #-8] cmp r3, #40 - bls .L3183 - ldr r3, [r7, #-1404] - ldrh r3, [r3, r9] + ldr ip, [sp, #12] + bls .L3255 + ldr r3, [r5, #-1408] + ldrh r3, [r3, ip] cmp r3, #32 - movhi r3, #0 - strhih r3, [r8, #-4] @ movhi -.L3183: - ldr r2, .L3333+16 - movw r3, #1944 - mov r1, #6 - strh r1, [r2, r3] @ movhi - b .L3187 -.L3182: + strhih fp, [r10, #-8] @ movhi +.L3255: + movw r3, #1940 + mov r2, #6 + strh r2, [r6, r3] @ movhi + b .L3259 +.L3254: mov r3, #1 - strh r3, [r8, #-4] @ movhi -.L3185: + strh r3, [r10, #-8] @ movhi +.L3257: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 - mov fp, r0 - bne .L3187 - movw r3, #1944 + mov r4, r0 + bne .L3259 + movw r3, #1940 mov r2, #0 - strh r2, [r9, r3] @ movhi -.L3186: - ldrh r9, [r6] + strh r2, [r6, r3] @ movhi +.L3258: + movw r3, #1164 + movw r4, #65535 + ldrh r3, [r6, r3] + cmp r3, r4 + bne .L3259 + ldr r5, .L3406 + add r2, r5, #980 + ldrh r4, [r2] + cmp r4, r3 + movne r4, r3 + beq .L3402 +.L3259: movw r0, #65535 - cmp r9, r0 - bne .L3328 - ldr r7, .L3333 - add r3, r7, #984 - ldrh r0, [r3] - cmp r0, r9 - movne fp, r9 - beq .L3330 -.L3187: - movw ip, #65535 - rsb r3, ip, fp + rsb r3, r0, r4 clz r3, r3 ldr r2, [sp, #20] mov r3, r3, lsr #5 cmp r2, #0 - movne r0, #0 - andeq r0, r3, #1 - cmp r0, #0 - beq .L3200 - ldr r3, .L3333+24 + movne r1, #0 + andeq r1, r3, #1 + cmp r1, #0 + beq .L3272 + ldr r3, .L3406+20 + ldrh r0, [r3] + cmp r0, #24 + movhi r5, #1 + bhi .L3273 + sub r3, r3, #2544 + cmp r0, #16 + ldrh r5, [r3, #-4] + movhi r5, r5, lsr #5 + bhi .L3273 + cmp r0, #12 + movhi r5, r5, lsr #4 + bhi .L3273 + cmp r0, #8 + movhi r5, r5, lsr #2 +.L3273: + ldr r1, .L3406 + sub r2, r1, #1520 + ldrh r3, [r2, #-12] + cmp r3, r0 + bcs .L3277 + add r3, r1, #980 + movw r0, #65535 ldrh r3, [r3] - cmp r3, #24 - movhi r7, #1 - bhi .L3201 - ldr r2, .L3333+28 - cmp r3, #16 - ldrh r7, [r2] - movhi r7, r7, lsr #5 - bhi .L3201 - cmp r3, #12 - movhi r7, r7, lsr #4 - bhi .L3201 - cmp r3, #8 - movhi r7, r7, lsr #2 -.L3201: - ldrh r1, [r4, #-8] - ldr r2, .L3333 - cmp r1, r3 - bcs .L3205 - add r3, r2, #984 - movw r1, #65535 - ldrh r3, [r3] - cmp r3, r1 - ldr r1, .L3333+16 - bne .L3206 - sub r0, r2, #1536 - ldrh r0, [r0] + cmp r3, r0 + bne .L3278 + ldrh r0, [r8, #-4] cmp r0, r3 - bne .L3206 - movw r3, #1944 - ldrh r0, [r1, r3] + bne .L3278 + movw r3, #1940 + ldrh r0, [r6, r3] cmp r0, #0 - bne .L3207 - ldr r3, [r2, #-1280] - ldr r2, [r2, #1128] + bne .L3279 + ldr r3, [r1, #-1284] + ldr r1, [r1, #1124] add r3, r3, r3, asl #1 - cmp r2, r3, lsr #2 + cmp r1, r3, lsr #2 movcs r3, #18 - bcs .L3208 -.L3207: - movw r3, #1164 - ldrh r3, [r1, r3] + bcs .L3280 +.L3279: + movw r3, #1160 + ldrh r3, [r6, r3] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3208: - strh r3, [r4, #-8] @ movhi +.L3280: + strh r3, [r2, #-12] @ movhi mov r3, #0 - str r3, [r5, #-1556] - b .L3323 -.L3206: - movw r3, #1164 - ldrh r3, [r1, r3] + str r3, [r7, #-1560] + b .L3395 +.L3278: + movw r3, #1160 + ldrh r3, [r6, r3] add r3, r3, r3, asl #1 mov r3, r3, asr #2 - strh r3, [r4, #-8] @ movhi -.L3205: - ldr r8, [sp, #12] - movw fp, #65535 - ldr r3, [r5, #-1800] - cmp r8, #2 - movhi r8, #0 - movls r8, #1 + strh r3, [r2, #-12] @ movhi +.L3277: + cmp r9, #2 + ldr r3, [r7, #-1872] + movw r4, #65535 + movhi r9, #0 + movls r9, #1 cmp r3, #0 - moveq r8, #0 - cmp r8, #0 - addne r7, r7, #1 - uxthne r7, r7 - b .L3210 -.L3200: - ldr r1, .L3333 - add r2, r1, #984 + moveq r9, #0 + cmp r9, #0 + addne r5, r5, #1 + uxthne r5, r5 + b .L3282 +.L3272: + ldr r5, .L3406 + add r2, r5, #980 ldrh r2, [r2] - cmp r2, ip - bne .L3211 - sub ip, r1, #1536 - ldrh ip, [ip] - cmp ip, r2 + cmp r2, r0 + bne .L3283 + ldrh r0, [r8, #-4] + cmp r0, r2 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L3211 - ldrh r3, [r6] - ldr r10, .L3333+16 + beq .L3283 + movw r3, #1164 + ldrh r3, [r6, r3] cmp r3, r2 - beq .L3212 -.L3216: - movw fp, #65535 - b .L3211 -.L3212: - add r7, r1, #884 - ldrh r3, [r4, #-8] - str r0, [r1, #-1556] - ldrh r2, [r7] + beq .L3284 +.L3288: + movw r4, #65535 + b .L3283 +.L3284: + add r4, r5, #880 + sub r10, r5, #1520 + str r1, [r5, #-1560] + ldrh r2, [r4] + ldrh r3, [r10, #-12] cmp r2, r3 - bls .L3213 - movw r3, #1944 - ldrh r3, [r10, r3] + bls .L3285 + ldr r2, .L3406+12 + movw r3, #1940 + ldrh r3, [r2, r3] cmp r3, #0 - bne .L3214 - ldr r3, [r1, #-1280] - ldr r2, [r1, #1128] + bne .L3286 + ldr r3, [r5, #-1284] + ldr r2, [r5, #1124] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movcs r3, #18 - bcs .L3215 -.L3214: - movw r3, #1164 - ldrh r3, [r10, r3] + bcs .L3287 +.L3286: + movw r3, #1160 + ldrh r3, [r6, r3] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3215: - strh r3, [r4, #-8] @ movhi +.L3287: + strh r3, [r10, #-12] @ movhi bl FtlReadRefresh mov r0, #0 bl List_get_gc_head_node - ldr r3, [r5, #-1404] + ldr r3, [r7, #-1408] uxth r0, r0 mov r0, r0, asl #1 ldrh r3, [r3, r0] cmp r3, #4 - movwhi r3, #1944 - ldrhih r0, [r10, r3] - bhi .L3323 -.L3213: - movw r8, #1944 - ldr r9, .L3333+16 - ldrh r0, [r10, r8] + movwhi r3, #1940 + ldrhih r0, [r6, r3] + bhi .L3395 +.L3285: + movw r5, #1940 + ldr r9, .L3406+12 + ldrh r0, [r6, r5] cmp r0, #0 - bne .L3216 - movw r3, #1164 - ldrh r10, [r9, r3] - add r3, r10, r10, asl #1 + bne .L3288 + movw r3, #1160 + ldrh fp, [r9, r3] + add r3, fp, fp, asl #1 mov r3, r3, asr #2 - strh r3, [r4, #-8] @ movhi + strh r3, [r10, #-12] @ movhi bl List_get_gc_head_node - ldr r3, [r5, #-1404] + ldr r3, [r7, #-1408] uxth r0, r0 mov r0, r0, asl #1 - ldrh r2, [r3, r0] - ldr r3, .L3333+32 - ldrh r1, [r3, #-14] - ldrh r4, [r3, #-84] - mul r4, r4, r1 - add r4, r4, r4, lsr #31 - cmp r2, r4, asr #1 - ble .L3217 - ldrh r1, [r7] - sub r3, r10, #1 - cmp r1, r3 - blt .L3217 + ldrh r1, [r3, r0] + ldr r3, .L3406+24 + ldrh r2, [r3, #-2] + ldrh r3, [r3, #-72] + mul r3, r3, r2 + add r3, r3, r3, lsr #31 + cmp r1, r3, asr #1 + ble .L3289 + ldrh r3, [r4] + sub r2, fp, #1 + cmp r3, r2 + blt .L3289 bl FtlReadRefresh - ldrh r0, [r9, r8] - b .L3323 -.L3217: - cmp r2, #0 - bne .L3216 + ldrh r0, [r9, r5] + b .L3395 +.L3289: + cmp r1, #0 + bne .L3288 movw r0, #65535 bl decrement_vpc_count - ldrh r0, [r7] + ldrh r0, [r4] add r0, r0, #1 - b .L3323 -.L3211: - ldr r3, [r5, #-1800] + b .L3395 +.L3283: + ldr r3, [r7, #-1872] cmp r3, #0 - moveq r7, #1 - movne r7, #2 -.L3210: - ldrh r3, [r6] - movw r2, #65535 - cmp r3, r2 - bne .L3219 - cmp fp, r3 - ldrne r3, .L3333+12 - strneh fp, [r3] @ movhi - bne .L3221 - ldr r1, .L3333 - sub r3, r1, #1536 - ldrh r2, [r3] - cmp r2, fp - beq .L3221 - ldr r1, [r1, #-1404] - mov r2, r2, asl #1 - ldrh r2, [r1, r2] - cmp r2, #0 - mvneq r2, #0 - streqh r2, [r3] @ movhi - ldrh r2, [r3] - strh r2, [r6] @ movhi - mvn r2, #0 - strh r2, [r3] @ movhi -.L3221: - ldr r3, .L3333+16 - mov r2, #0 - ldrh r0, [r6] - add r8, r3, #1168 - strb r2, [r3, #1176] - movw r2, #65535 - cmp r0, r2 - mov r4, r3 - beq .L3219 + moveq r5, #1 + movne r5, #2 +.L3282: + movw r3, #1164 + movw r1, #65535 + ldrh r2, [r6, r3] + cmp r2, r1 + bne .L3291 + cmp r4, r2 + ldrne r2, .L3406+12 + strneh r4, [r2, r3] @ movhi + bne .L3293 + ldrh r3, [r8, #-4] + ldr r2, .L3406 + cmp r3, r4 + sub r1, r2, #1536 + beq .L3293 + ldr r2, [r2, #-1408] + mov r3, r3, asl #1 + ldrh r3, [r2, r3] + cmp r3, #0 + mvneq r3, #0 + streqh r3, [r1, #-4] @ movhi + ldrh r2, [r8, #-4] + movw r3, #1164 + strh r2, [r6, r3] @ movhi + mvn r3, #0 + strh r3, [r8, #-4] @ movhi +.L3293: + movw r8, #1164 + mov r3, #0 + ldrh r0, [r6, r8] + strb r3, [r6, #1172] + movw r3, #65535 + cmp r0, r3 + beq .L3291 bl IsBlkInGcList cmp r0, #0 - mvnne r3, #0 - strneh r3, [r8] @ movhi - ldrb r3, [r5, #-2744] @ zero_extendqisi2 + ldrne r3, .L3406+12 + mvnne r2, #0 + strneh r2, [r3, r8] @ movhi + ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3225 - ldrh r0, [r6] + beq .L3297 + movw r3, #1164 + ldrh r0, [r6, r3] bl ftl_get_blk_mode - strb r0, [r4, #1176] -.L3225: - ldrh r2, [r6] + strb r0, [r6, #1172] +.L3297: + movw r9, #1164 movw r3, #65535 - ldr r8, .L3333+16 + ldrh r2, [r6, r9] + ldr r8, .L3406+12 cmp r2, r3 - add r4, r8, #1168 - beq .L3219 - mov r0, r4 + ldr r10, .L3406+28 + beq .L3291 + mov r0, r10 bl make_superblock - movw r2, #1946 + movw r2, #1942 mov r3, #0 strh r3, [r8, r2] @ movhi - strh r3, [r4, #2] @ movhi - strb r3, [r8, #1174] - ldrh r3, [r4] - ldr r2, [r5, #-1404] + strh r3, [r10, #2] @ movhi + strb r3, [r8, #1170] + ldrh r3, [r8, r9] + ldr r2, [r7, #-1408] mov r3, r3, asl #1 ldrh r2, [r2, r3] - movw r3, #1948 + movw r3, #1944 strh r2, [r8, r3] @ movhi -.L3219: - ldr r2, .L3333+36 - ldrh r3, [r6] +.L3291: + ldr r2, .L3406+32 + movw r3, #1164 + ldrh r3, [r6, r3] ldrh r1, [r2] cmp r1, r3 - beq .L3226 + beq .L3298 ldrh r1, [r2, #48] cmp r1, r3 - beq .L3226 + beq .L3298 ldrh r2, [r2, #96] cmp r2, r3 - bne .L3260 -.L3226: - mvn r3, #0 - strh r3, [r6] @ movhi -.L3260: - ldr r6, .L3333+12 + bne .L3332 +.L3298: + movw r3, #1164 + mvn r2, #0 + strh r2, [r6, r3] @ movhi +.L3332: + ldr r8, .L3406+28 movw r3, #65535 - ldr r5, .L3333 - ldrh r2, [r6] + ldr r7, .L3406 + ldrh r2, [r8] cmp r2, r3 - bne .L3228 + bne .L3300 + mov fp, r7 mov r3, #0 - str r3, [r5, #-1556] -.L3229: - ldr r9, .L3333+40 - ldr r8, .L3333+16 - ldrh r4, [r9] - mov r0, r4 + str r3, [r7, #-1560] +.L3301: + ldr r10, .L3406+36 + ldr r9, .L3406+12 + ldrh r6, [r10] + mov r0, r6 bl List_get_gc_head_node - ldr r3, .L3333+12 - uxth r10, r0 - strh r10, [r3] @ movhi - movw r3, #65535 - cmp r10, r3 + ldr r2, .L3406+28 + uxth r3, r0 + strh r3, [r2] @ movhi + movw r2, #65535 + cmp r3, r2 moveq r3, #0 moveq r0, #8 - streqh r3, [r9] @ movhi - beq .L3323 -.L3230: - mov r0, r10 - add r4, r4, #1 + streqh r3, [r10] @ movhi + beq .L3395 +.L3302: + mov r0, r3 + str r3, [sp, #12] bl IsBlkInGcList + add r6, r6, #1 cmp r0, #0 - ldrne r3, .L3333+40 - strneh r4, [r3] @ movhi - bne .L3229 - ldr r3, .L3333+40 - uxth r4, r4 - ldrh r2, [r9, #-208] - mov r1, r10, asl #1 - strh r4, [r3] @ movhi - ldr r3, .L3333 - ldr r0, [r3, #-1404] - ldrh r3, [r9, #-140] - ldrh ip, [r0, r1] - mul r3, r2, r3 - add r2, r3, r3, lsr #31 - cmp ip, r2, asr #1 - bgt .L3233 - cmp ip, #8 - cmphi r4, #48 - bls .L3234 - ldr r2, .L3333+44 + ldr r3, [sp, #12] + ldrne r3, .L3406+36 + strneh r6, [r3] @ movhi + bne .L3301 + ldr r2, .L3406+36 + uxth r6, r6 + ldrh r1, [r10, #-208] + mov r0, r3, asl #1 + ldr ip, [fp, #-1408] + strh r6, [r2] @ movhi + ldrh r2, [r10, #-140] + ldrh lr, [ip, r0] + mul r2, r1, r2 + add r1, r2, r2, lsr #31 + cmp lr, r1, asr #1 + bgt .L3305 + cmp lr, #8 + cmphi r6, #48 + bls .L3306 + ldr r1, .L3406+40 + ldrh r1, [r1] + cmp r1, #35 + bhi .L3306 +.L3305: + ldr lr, .L3406+36 + mov r1, #0 + strh r1, [lr] @ movhi +.L3306: + ldrh r1, [ip, r0] + movw r0, #65535 + cmp r1, r2 + cmpge r4, r0 + bne .L3307 + ldr r2, .L3406+36 ldrh r2, [r2] - cmp r2, #35 - bhi .L3234 -.L3233: - ldr ip, .L3333+40 + cmp r2, #3 + bhi .L3307 + movw r3, #1164 + mvn r2, #0 + strh r2, [r9, r3] @ movhi mov r2, #0 - strh r2, [ip] @ movhi -.L3234: - ldrh r2, [r0, r1] - movw r1, #65535 - cmp r2, r3 - cmpge fp, r1 - bne .L3235 - ldr r3, .L3333+40 - ldrh r3, [r3] - cmp r3, #3 - bhi .L3235 - ldr r2, .L3333+12 - mvn r3, #0 - strh r3, [r2] @ movhi - mov r2, #0 - ldr r3, .L3333+40 + ldr r3, .L3406+36 strh r2, [r3] @ movhi - movw r3, #1944 - ldrh r0, [r8, r3] - b .L3323 -.L3235: - cmp r2, #0 - bne .L3236 + b .L3400 +.L3307: + cmp r1, #0 + bne .L3308 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L3333+40 - ldr r2, .L3333+40 + ldr r3, .L3406+36 + ldr r2, .L3406+36 ldrh r3, [r3] add r3, r3, #1 strh r3, [r2] @ movhi - b .L3229 -.L3236: - mov r3, #0 - strb r3, [r8, #1176] - ldrb r3, [r5, #-2744] @ zero_extendqisi2 - cmp r3, #0 - beq .L3237 - mov r0, r10 + b .L3301 +.L3308: + mov r2, #0 + strb r2, [r9, #1172] + ldrb r2, [r7, #-2744] @ zero_extendqisi2 + cmp r2, #0 + beq .L3309 + mov r0, r3 bl ftl_get_blk_mode - ldr r3, .L3333+16 - strb r0, [r3, #1176] -.L3237: - ldr r0, .L3333+12 + ldr r3, .L3406+12 + strb r0, [r3, #1172] +.L3309: + ldr r0, .L3406+28 bl make_superblock - ldrh r2, [r6] - ldr r1, .L3333+48 + ldrh r2, [r8] + ldr r1, .L3406+44 mov r3, #0 - ldr r0, [r5, #-1404] + ldr r0, [r7, #-1408] mov r2, r2, asl #1 strh r3, [r1] @ movhi ldrh r2, [r0, r2] - strh r3, [r6, #2] @ movhi - strb r3, [r8, #1174] + strh r3, [r8, #2] @ movhi + strb r3, [r9, #1170] strh r2, [r1, #2] @ movhi -.L3228: +.L3300: ldr r3, [sp, #20] cmp r3, #1 - bne .L3238 + bne .L3310 bl FtlReadRefresh -.L3238: +.L3310: mov r3, #1 - str r3, [r5, #-1560] - ldr r3, .L3333+28 + str r3, [r7, #-1564] + ldr r3, .L3406+48 ldrh r2, [r3] str r2, [sp, #12] - ldrb r2, [r5, #-2744] @ zero_extendqisi2 + ldrb r2, [r7, #-2744] @ zero_extendqisi2 cmp r2, #0 - beq .L3239 - ldr r2, .L3333+16 - ldrb r2, [r2, #1176] @ zero_extendqisi2 + beq .L3311 + ldr r2, .L3406+12 + ldrb r2, [r2, #1172] @ zero_extendqisi2 cmp r2, #1 ldreqh r3, [r3, #2] streq r3, [sp, #12] -.L3239: - ldrh r3, [r6, #2] +.L3311: + ldrh r3, [r8, #2] ldr r1, [sp, #12] - add r2, r3, r7 - ldr r6, .L3333+16 + add r2, r3, r5 + ldr r8, .L3406+12 cmp r2, r1 movgt r2, r1 rsbgt r3, r3, r2 - uxthgt r7, r3 + uxthgt r5, r3 mov r3, #0 str r3, [sp, #16] -.L3241: - ldrh r3, [sp, #16] - ldr r5, .L3333 - cmp r3, r7 - ldr r4, .L3333+12 - bcs .L3248 - ldr r3, .L3333+52 - mov r2, #0 - ldrh r0, [r4, #2] - movw lr, #65535 - ldr r8, [r5, #-1484] - mov ip, #36 - ldrh r9, [r3] - ldr r3, [sp, #16] - add r0, r0, r3 - add r3, r4, #14 - mov r4, r2 -.L3249: - uxth r1, r2 - cmp r1, r9 - bcs .L3331 - ldrh r1, [r3, #2]! - add r2, r2, #1 - cmp r1, lr - orrne r1, r0, r1, asl #10 - mlane r10, ip, r4, r8 - addne r4, r4, #1 - uxthne r4, r4 - strne r1, [r10, #4] - b .L3249 -.L3331: - ldr r0, [r5, #-1484] - mov r1, r4 - ldrb r2, [r6, #1176] @ zero_extendqisi2 - mov r9, #0 + b .L3313 +.L3405: + ldr r0, [r7, #-1488] + mov r1, r6 + ldrb r2, [r8, #1172] @ zero_extendqisi2 + mov r10, #0 bl FlashReadPages - ldr r5, .L3333 -.L3244: - uxth r3, r9 - cmp r3, r4 - bcs .L3332 + ldr r7, .L3406 +.L3316: + uxth r3, r10 + cmp r3, r6 + bcs .L3403 mov r3, #36 - ldr r2, [r5, #-1484] - mul r8, r3, r9 - add r1, r2, r8 - ldr r2, [r2, r8] - ldr r10, [r1, #12] + ldr r2, [r7, #-1488] + mul r9, r3, r10 + add r1, r2, r9 + ldr r2, [r2, r9] + ldr fp, [r1, #12] cmn r2, #1 - beq .L3280 - ldrh r1, [r10] + beq .L3352 + ldrh r1, [fp] movw r2, #61589 cmp r1, r2 - bne .L3280 + bne .L3352 add r1, sp, #32 mov r2, #0 - ldr r0, [r10, #8] + ldr r0, [fp, #8] str r3, [sp, #24] bl log2phys - ldr r2, [r5, #-1484] - add r2, r2, r8 - ldr r0, [r2, #4] - ldr r1, [sp, #32] + ldr r1, [r7, #-1488] + add r1, r1, r9 + ldr r0, [r1, #4] + ldr r2, [sp, #32] ldr r3, [sp, #24] - bic r1, r1, #-2147483648 - cmp r1, r0 - bne .L3280 - ldr r0, .L3333+48 - ldr r2, [r2, #16] + bic r2, r2, #-2147483648 + cmp r2, r0 + bne .L3352 + ldr r0, .L3406+44 + ldr r1, [r1, #16] str r3, [sp, #28] - ldrh r1, [r0] - add r1, r1, #1 - strh r1, [r0] @ movhi - ldr r0, [r6, #1744] - ldr r1, [r5, #-1496] - mla r1, r3, r0, r1 - str r2, [r1, #16] - str r1, [sp, #24] + ldrh r2, [r0] + add r2, r2, #1 + strh r2, [r0] @ movhi + ldr r0, [r8, #1740] + ldr r2, [r7, #-1500] + mla r2, r3, r0, r2 + str r1, [r2, #16] + str r2, [sp, #24] bl Ftl_get_new_temp_ppa - ldr r2, [r5, #-1496] - ldr r1, [sp, #24] + ldr r1, [r8, #1740] + ldr r2, [sp, #24] ldr r3, [sp, #28] - str r0, [r1, #4] - ldr r1, [r6, #1744] + str r0, [r2, #4] + ldr r2, [r7, #-1500] mla r3, r3, r1, r2 - ldr r2, [r5, #-1484] - add r2, r2, r8 + ldr r2, [r7, #-1488] + add r2, r2, r9 ldr r1, [r2, #8] str r1, [r3, #8] mov r1, #1 ldr r2, [r2, #12] str r2, [r3, #12] ldr r3, [sp, #32] - str r3, [r10, #12] - ldr r3, .L3333+56 + str r3, [fp, #12] + ldr r3, .L3406+52 ldrh r2, [r3] str r3, [sp, #24] - strh r2, [r10, #2] @ movhi - ldr r2, [r5, #-1608] - ldr r0, [r5, #-1484] - str r2, [r10, #4] - add r0, r0, r8 - ldr r2, [r6, #1744] + strh r2, [fp, #2] @ movhi + ldr r2, [r7, #-1612] + ldr r0, [r7, #-1488] + str r2, [fp, #4] + add r0, r0, r9 + ldr r2, [r8, #1740] + ldr r9, .L3406+12 add r2, r2, #1 - str r2, [r6, #1744] + str r2, [r8, #1740] bl FtlGcBufAlloc - ldrb r2, [r5, #-2744] @ zero_extendqisi2 + ldrb r2, [r7, #-2744] @ zero_extendqisi2 cmp r2, #0 - bne .L3246 - ldrb r2, [r5, #991] @ zero_extendqisi2 - ldr r1, [r6, #1744] - cmp r1, r2 - beq .L3246 - ldr r3, [sp, #24] - ldrh r3, [r3, #4] - cmp r3, #0 - bne .L3280 -.L3246: + beq .L3404 +.L3318: bl Ftl_gc_temp_data_write_back cmp r0, #0 - beq .L3280 - ldr r3, .L3333 - mov r2, #0 + beq .L3352 + ldr r2, .L3406 + mov r3, #0 mvn r1, #0 - str r2, [r3, #-1560] - ldr r3, .L3333+12 - strh r2, [r3, #2] @ movhi - sub r2, r3, #1168 - strh r1, [r3] @ movhi - movw r3, #1944 - ldrh r0, [r2, r3] - b .L3323 -.L3280: - add r9, r9, #1 - b .L3244 -.L3332: + str r3, [r2, #-1564] + movw r2, #1164 + strh r1, [r9, r2] @ movhi + ldr r2, .L3406+28 + strh r3, [r2, #2] @ movhi +.L3400: + movw r3, #1940 + ldrh r0, [r9, r3] + b .L3395 +.L3403: ldr r3, [sp, #16] add r3, r3, #1 str r3, [sp, #16] - b .L3241 -.L3248: - ldrh r3, [r4, #2] - sub r6, r4, #1168 - add r7, r7, r3 - ldr r3, [sp, #12] - uxth r7, r7 - strh r7, [r4, #2] @ movhi - cmp r7, r3 - mov r7, r6 - bcc .L3250 - ldr r3, [r4, #576] +.L3313: + ldrh r3, [sp, #16] + ldr r7, .L3406 + cmp r3, r5 + ldr r6, .L3406+28 + bcs .L3320 + ldr r3, .L3406+56 + mov r2, #0 + ldrh r0, [r6, #2] + movw lr, #65535 + ldr r9, [r7, #-1488] + mov ip, #36 + ldrh r10, [r3] + ldr r3, [sp, #16] + add r0, r0, r3 + add r3, r6, #14 + mov r6, r2 +.L3321: + uxth r1, r2 + cmp r1, r10 + bcs .L3405 + ldrh r1, [r3, #2]! + add r2, r2, #1 + cmp r1, lr + orrne r1, r0, r1, asl #10 + mlane fp, ip, r6, r9 + addne r6, r6, #1 + uxthne r6, r6 + strne r1, [fp, #4] + b .L3321 +.L3404: + ldrb r2, [r7, #987] @ zero_extendqisi2 + ldr r1, [r8, #1740] + cmp r1, r2 + beq .L3318 + ldr r3, [sp, #24] + ldrh r3, [r3, #4] cmp r3, #0 - beq .L3251 + beq .L3318 +.L3352: + add r10, r10, #1 + b .L3316 +.L3320: + ldrh r3, [r6, #2] + ldr r8, .L3406+12 + add r5, r5, r3 + ldr r3, [sp, #12] + uxth r5, r5 + mov r9, r8 + cmp r5, r3 + strh r5, [r6, #2] @ movhi + bcc .L3322 + ldr r3, [r8, #1740] + cmp r3, #0 + beq .L3323 bl Ftl_gc_temp_data_write_back cmp r0, #0 movne r3, #0 - strne r3, [r5, #-1560] - movwne r3, #1944 - ldrneh r0, [r6, r3] - bne .L3323 -.L3251: - ldr r3, .L3333+48 - ldrh r6, [r3] - cmp r6, #0 - bne .L3252 - ldrh r3, [r4] - ldr r2, [r5, #-1404] + strne r3, [r7, #-1564] + movwne r3, #1940 + ldrneh r0, [r8, r3] + bne .L3395 +.L3323: + ldr r3, .L3406+44 + ldrh r5, [r3] + cmp r5, #0 + bne .L3324 + ldrh r3, [r6] + ldr r2, [r7, #-1408] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3252 -.L3253: - ldr r3, [r5, #-1280] - cmp r6, r3 - bcs .L3258 - mov r0, r6 + beq .L3324 +.L3325: + ldr r3, [r7, #-1284] + cmp r5, r3 + bcs .L3330 + mov r0, r5 add r1, sp, #36 mov r2, #0 bl log2phys ldr r0, [sp, #36] cmn r0, #1 - beq .L3254 + beq .L3326 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldrh r3, [r4] + ldrh r3, [r6] cmp r3, r0 - bne .L3254 -.L3258: - ldr r3, [r5, #-1280] - cmp r6, r3 - bcc .L3252 - ldr r2, .L3333 + bne .L3326 +.L3330: + ldr r3, [r7, #-1284] + cmp r5, r3 + bcc .L3324 + ldr r2, .L3406 mov r1, #0 - ldrh r3, [r4] - ldr r2, [r2, #-1404] + ldrh r3, [r6] + ldr r2, [r2, #-1408] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - ldrh r0, [r4] + ldrh r0, [r6] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3252 -.L3254: - add r6, r6, #1 - b .L3253 -.L3252: + b .L3324 +.L3326: + add r5, r5, #1 + b .L3325 +.L3324: mvn r3, #0 - strh r3, [r4] @ movhi -.L3250: - ldr r5, .L3333 - add r3, r5, #884 + strh r3, [r6] @ movhi +.L3322: + ldr r2, .L3406 + add r3, r2, #880 ldrh r3, [r3] cmp r3, #2 - subls r5, r5, #1664 - ldrlsh r7, [r5] - bls .L3260 -.L3259: - mov r2, #0 - str r2, [r5, #-1560] - movw r2, #1944 - ldrh r0, [r7, r2] - cmp r0, #0 + ldrls r3, .L3406+48 + ldrlsh r5, [r3] + bls .L3332 +.L3331: + mov r1, #0 + str r1, [r2, #-1564] + movw r2, #1940 + ldrh r0, [r9, r2] + cmp r0, r1 addeq r0, r3, #1 - b .L3323 -.L3264: - mov r0, #0 - bx lr -.L3266: - mov r0, r2 - b .L3323 -.L3330: - sub r3, r7, #1536 - ldrh r10, [r3] - cmp r10, r0 - bne .L3328 - add r9, r7, #884 - ldr r2, [r7, #-1544] - ldrh r3, [r9] + b .L3395 +.L3338: + mov r0, r8 + b .L3395 +.L3402: + ldrh fp, [r8, #-4] + cmp fp, r4 + bne .L3259 + add r10, r5, #880 + ldr r2, [r5, #-1548] + ldrh r3, [r10] cmp r3, #24 movcc r3, #5120 movcs r3, #1024 cmp r2, r3 - movls fp, r10 - bls .L3187 - ldr r1, .L3333+16 - movw r2, #1944 + movls r4, fp + bls .L3259 + movw r2, #1940 mov r3, #0 - str r3, [r5, #-1544] - strh r3, [r1, r2] @ movhi + str r3, [r7, #-1548] + strh r3, [r6, r2] @ movhi bl GetSwlReplaceBlock - cmp r0, r10 - mov fp, r0 - bne .L3189 - ldrh r2, [r4, #-6] - sub r3, r7, #1520 - ldrh r1, [r9] - cmp r1, r2 - movcs r2, #80 - strcsh r2, [r3, #-6] @ movhi - bcs .L3199 + cmp r0, fp + mov r4, r0 + sub fp, r5, #1520 + bne .L3261 + ldrh r2, [r10] + ldrh r3, [fp, #-10] + cmp r2, r3 + bcs .L3262 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 - cmp r3, fp - beq .L3199 - ldr r2, [r7, #-1620] - sub r1, r7, #1712 + cmp r3, r4 + beq .L3271 + ldr r2, [r5, #-1624] + sub r1, r5, #1712 cmp r2, #0 - bne .L3192 - ldrh r2, [r1] + bne .L3264 + ldrh r2, [r1, #-4] cmp r2, #3 - beq .L3192 - ldr r2, [r7, #-1616] + beq .L3264 + ldr r2, [r5, #-1620] cmp r2, #0 - bne .L3192 - ldr r2, [r7, #-1800] + bne .L3264 + ldr r2, [r5, #-1872] cmp r2, #0 - bne .L3192 - ldrb r0, [r7, #-2744] @ zero_extendqisi2 + bne .L3264 + ldrb r0, [r5, #-2744] @ zero_extendqisi2 cmp r0, #0 - beq .L3193 -.L3192: - ldr r2, [r5, #-1404] + beq .L3265 +.L3264: + ldr r2, [r7, #-1408] mov r3, r3, asl #1 - ldrh r1, [r1] + ldrh r1, [r1, #-4] ldrh r0, [r2, r3] cmp r1, #3 - ldr r2, .L3333+32 - ldrh r3, [r2, #-14] - ldrh r2, [r2, #-84] + ldr r2, .L3406+24 + ldrh r3, [r2, #-2] + ldrh r2, [r2, #-72] mul r2, r2, r3 moveq r3, r3, lsr #1 movne r3, #0 add r3, r2, r3 cmp r0, r3 - bgt .L3195 + bgt .L3267 mov r0, #0 bl List_get_gc_head_node - ldr r3, [r5, #-1280] - ldr r2, [r5, #1128] + ldr r3, [r7, #-1284] + ldr r2, [r7, #1124] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movls r3, #160 - uxth fp, r0 - bls .L3326 - b .L3329 -.L3193: - ldr r2, [r7, #-1404] + uxth r4, r0 + bls .L3398 + b .L3401 +.L3265: + ldr r2, [r5, #-1408] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #7 - bhi .L3198 + bhi .L3270 bl List_get_gc_head_node - uxth fp, r0 -.L3329: + uxth r4, r0 +.L3401: mov r3, #128 -.L3326: - strh r3, [r4, #-6] @ movhi +.L3398: + strh r3, [fp, #-10] @ movhi movw r3, #65535 - cmp fp, r3 - beq .L3199 - b .L3189 -.L3195: + cmp r4, r3 + beq .L3271 + b .L3261 +.L3267: mov r3, #128 - b .L3327 -.L3198: + b .L3399 +.L3270: mov r3, #64 -.L3327: - strh r3, [r4, #-6] @ movhi - b .L3199 -.L3189: - ldr r0, [r5, #-1412] - mov r1, fp, asl #1 - ldr r3, [r5, #-1404] - ldrh r2, [r9] + b .L3399 +.L3262: + mov r3, #80 +.L3399: + strh r3, [fp, #-10] @ movhi + b .L3271 +.L3261: + ldr r0, [r7, #-1416] + mov r1, r4, asl #1 + ldr r3, [r7, #-1408] + ldrh r2, [r10] ldrh r3, [r3, r1] ldrh r1, [r0, r1] - ldr r0, .L3333+60 + ldr r0, .L3406+60 str r1, [sp] - ldrh r1, [r4, #-8] + ldrh r1, [fp, #-12] str r1, [sp, #4] - mov r1, fp + mov r1, r4 bl printk -.L3199: +.L3271: bl FtlGcReFreshBadBlk - b .L3187 -.L3328: - mov fp, r0 - b .L3187 -.L3323: + b .L3259 +.L3395: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3334: +.L3407: .align 2 -.L3333: +.L3406: .word .LANCHOR2 .word .LANCHOR1 - .word .LANCHOR2-1520 - .word .LANCHOR4+1168 + .word .LANCHOR2-1536 .word .LANCHOR4 - .word .LC154 - .word .LANCHOR2+884 + .word .LC158 + .word .LANCHOR2+880 .word .LANCHOR2-1664 - .word .LANCHOR2-1648 - .word .LANCHOR2+888 - .word .LANCHOR2-1524 - .word .LANCHOR4+1768 - .word .LANCHOR4+1946 - .word .LANCHOR2-1732 - .word .LANCHOR2+984 - .word .LC155 + .word .LANCHOR4+1164 + .word .LANCHOR2+884 + .word .LANCHOR2-1528 + .word .LANCHOR4+1764 + .word .LANCHOR4+1942 + .word .LANCHOR2-1668 + .word .LANCHOR2+980 + .word .LANCHOR2-1736 + .word .LC159 .fnend .size ftl_do_gc, .-ftl_do_gc .align 2 @@ -19858,38 +20240,38 @@ FtlCacheWriteBack: stmfd sp!, {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, .L3379 - ldr r8, .L3379+4 - ldr r3, [r4, #-1276] - ldr r5, [r8, #1952] + ldr r4, .L3452 + ldr r8, .L3452+4 + ldr r3, [r4, #-1280] + ldr r5, [r8, #1948] cmp r3, #0 - bne .L3337 - ldr r1, [r4, #-1512] + bne .L3410 + ldr r1, [r4, #-1516] cmp r1, #0 - beq .L3337 + beq .L3410 ldrb r6, [r4, #-2744] @ zero_extendqisi2 mov r7, #0 - ldr r0, [r4, #-1480] + ldr r0, [r4, #-1484] mov r10, #36 cmp r6, #0 ldrb r3, [r5, #9] @ zero_extendqisi2 - ldr r9, .L3379 + ldr r9, .L3452 ldrneb r6, [r5, #8] @ zero_extendqisi2 subne r6, r6, #1 clzne r6, r6 movne r6, r6, lsr #5 mov r2, r6 bl FlashProgPages -.L3340: - ldr r3, [r4, #-1512] +.L3413: + ldr r3, [r4, #-1516] cmp r7, r3 - bcs .L3358 + bcs .L3431 mul fp, r10, r7 - ldr r3, [r9, #-1480] + ldr r3, [r9, #-1484] add r2, r3, fp ldr r3, [r3, fp] cmn r3, #1 - beq .L3361 + beq .L3434 ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] @@ -19898,99 +20280,99 @@ FtlCacheWriteBack: orrne r3, r3, #-2147483648 str r3, [sp, #4] bl log2phys - ldr r3, [r4, #-1480] + ldr r3, [r4, #-1484] add r3, r3, fp ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3344 + beq .L3417 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r9, #-1404] + ldr r2, [r9, #-1408] mov r3, r0, asl #1 mov fp, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3345 - ldr r0, .L3379+8 + bne .L3418 + ldr r0, .L3452+8 mov r1, fp bl printk -.L3345: +.L3418: mov r0, fp bl decrement_vpc_count -.L3344: +.L3417: add r7, r7, #1 - b .L3340 -.L3377: - ldr r6, .L3379+12 + b .L3413 +.L3450: + ldr r6, .L3452+12 movw r5, #16386 -.L3357: +.L3430: ldrh r3, [r6] cmp r3, #0 - beq .L3358 + beq .L3431 mov r0, #1 mov r1, r0 bl ftl_do_gc subs r5, r5, #1 - bne .L3357 -.L3358: + bne .L3430 +.L3431: mov r3, #0 - str r3, [r4, #-1512] - b .L3337 -.L3361: - ldr r9, .L3379 - mov r10, #0 -.L3341: - ldr r3, [r4, #-1512] - cmp r10, r3 - bcs .L3377 + str r3, [r4, #-1516] + b .L3410 +.L3434: + ldr r10, .L3452 + mov r9, #0 +.L3414: + ldr r3, [r4, #-1516] + cmp r9, r3 + bcs .L3450 mov r7, #36 - ldr r3, [r9, #-1480] - mul r7, r7, r10 + ldr r3, [r10, #-1484] + mul r7, r7, r9 mov fp, #0 mvn r2, #0 str r2, [r3, r7] -.L3347: - ldr r3, [r4, #-1480] +.L3420: + ldr r3, [r4, #-1484] add r2, r3, r7 ldr r3, [r3, r7] cmn r3, #1 - bne .L3378 + bne .L3451 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3348 - ldr r1, [r9, #-1404] + bne .L3421 + ldr r1, [r10, #-1408] mov r3, r3, asl #1 ldrh r0, [r5, #4] ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L3379+16 + ldr r3, .L3452+16 strb fp, [r5, #6] strh fp, [r5, #4] @ movhi ldrh r3, [r3] strh r3, [r5, #2] @ movhi -.L3348: +.L3421: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3349 + bne .L3422 mov r0, r5 bl allocate_new_data_superblock -.L3349: - ldr r3, [r8, #1312] +.L3422: + ldr r3, [r8, #1308] add r3, r3, #1 - str r3, [r8, #1312] - ldr r3, [r4, #-1480] + str r3, [r8, #1308] + ldr r3, [r4, #-1484] add r3, r3, r7 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlGcMarkBadPhyBlk mov r0, r5 bl get_new_active_ppa - ldr r3, [r4, #-1480] + ldr r3, [r4, #-1484] mov r1, #1 mov r2, r6 add r3, r3, r7 @@ -19999,16 +20381,16 @@ FtlCacheWriteBack: mov r0, r3 ldrb r3, [r5, #9] @ zero_extendqisi2 bl FlashProgPages - ldr r3, [r4, #-1480] + ldr r3, [r4, #-1484] ldr r3, [r3, r7] cmn r3, #1 moveq r3, #1 - streq r3, [r9, #-1276] - ldr r3, [r4, #-1276] + streq r3, [r10, #-1280] + ldr r3, [r4, #-1280] cmp r3, #0 - beq .L3347 - b .L3337 -.L3378: + beq .L3420 + b .L3410 +.L3451: ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] @@ -20017,42 +20399,42 @@ FtlCacheWriteBack: orrne r3, r3, #-2147483648 str r3, [sp, #4] bl log2phys - ldr r3, [r4, #-1480] + ldr r3, [r4, #-1484] add r7, r3, r7 ldr r3, [r7, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3354 + beq .L3427 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r9, #-1404] + ldr r2, [r10, #-1408] mov r3, r0, asl #1 mov r7, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3355 - ldr r0, .L3379+8 + bne .L3428 + ldr r0, .L3452+8 mov r1, r7 bl printk -.L3355: +.L3428: mov r0, r7 bl decrement_vpc_count -.L3354: - add r10, r10, #1 - b .L3341 -.L3337: +.L3427: + add r9, r9, #1 + b .L3414 +.L3410: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3380: +.L3453: .align 2 -.L3379: +.L3452: .word .LANCHOR2 .word .LANCHOR4 - .word .LC156 - .word .LANCHOR2-1522 - .word .LANCHOR2-1664 + .word .LC160 + .word .LANCHOR2-1526 + .word .LANCHOR2-1668 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 @@ -20062,27 +20444,30 @@ FtlSysFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, lr} - .save {r3, lr} - ldr r3, .L3387 - ldr r3, [r3, #-1276] + ldr r3, .L3458 + ldr r3, [r3, #-1280] cmp r3, #0 - bne .L3382 - ldr r3, .L3387+4 - ldr r3, [r3, #3348] - cmn r3, #1 - beq .L3382 + bne .L3457 + ldr r3, .L3458+4 + stmfd sp!, {r4, lr} + .save {r4, lr} + ldr r4, [r3, #3444] + cmp r4, #1 + bne .L3455 bl FtlCacheWriteBack bl l2p_flush - mov r0, #1 + mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3382: +.L3455: mov r0, #0 - ldmfd sp!, {r3, pc} -.L3388: + ldmfd sp!, {r4, pc} +.L3457: + mov r0, #0 + bx lr +.L3459: .align 2 -.L3387: +.L3458: .word .LANCHOR2 .word .LANCHOR1 .fnend @@ -20096,17 +20481,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L3392 - ldr r3, [r3, #3348] + ldr r3, .L3463 + ldr r3, [r3, #3444] cmp r3, #1 - bne .L3390 + bne .L3461 bl FtlSysFlush -.L3390: +.L3461: mov r0, #0 ldmfd sp!, {r3, pc} -.L3393: +.L3464: .align 2 -.L3392: +.L3463: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -20146,102 +20531,101 @@ ftl_discard: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} .pad #8 - add r2, r0, r1 - ldr r4, .L3415 mov r6, r0 - mov r5, r1 - ldr r3, [r4, #-2740] + ldr r5, .L3486 + mov r4, r1 + ldr r3, [r5, #-2740] + cmp r1, r3 + cmpls r0, r3 + bcs .L3477 + add r2, r0, r1 cmp r2, r3 - mvnhi r0, #0 - bhi .L3398 - ldr r3, .L3415+4 - ldr r0, [r3, #3348] - cmn r0, #1 - beq .L3398 + bhi .L3477 cmp r1, #31 - bhi .L3399 -.L3400: + bhi .L3470 +.L3471: mov r0, #0 - b .L3398 -.L3399: - ldr r3, [r4, #-1276] + b .L3469 +.L3470: + ldr r3, [r5, #-1280] cmp r3, #0 - bne .L3400 - sub r4, r4, #1648 + bne .L3471 + sub r5, r5, #1648 bl FtlCacheWriteBack mov r0, r6 - ldrh r4, [r4, #-10] - mov r1, r4 + ldrh r5, [r5, #-14] + mov r1, r5 bl __aeabi_uidiv - smulbb r3, r0, r4 + smulbb r3, r0, r5 mov r7, r0 rsb r6, r3, r6 uxth r6, r6 cmp r6, #0 - beq .L3401 - rsb r4, r6, r4 + beq .L3472 + rsb r5, r6, r5 add r7, r0, #1 - cmp r4, r5 - movcs r4, r5 - uxth r4, r4 - rsb r5, r4, r5 -.L3401: - ldr r4, .L3415+8 + cmp r5, r4 + movcs r5, r4 + uxth r5, r5 + rsb r4, r5, r4 +.L3472: + ldr r5, .L3486+4 mvn r3, #0 - ldr r8, .L3415 + ldr r8, .L3486 str r3, [sp, #4] - mov r6, r4 -.L3402: - ldrh r3, [r4] - cmp r5, r3 - bcc .L3414 + mov r6, r5 +.L3473: + ldrh r3, [r5] + cmp r4, r3 + bcc .L3485 mov r0, r7 mov r1, sp mov r2, #0 bl log2phys ldr r3, [sp] cmn r3, #1 - beq .L3403 - ldr r2, .L3415+12 + beq .L3474 + ldr r2, .L3486+8 add r1, sp, #4 mov r0, r7 - ldr r3, [r2, #1956] + ldr r3, [r2, #1952] add r3, r3, #1 - str r3, [r2, #1956] - ldr r3, [r8, #-1596] + str r3, [r2, #1952] + ldr r3, [r8, #-1600] mov r2, #1 add r3, r3, #1 - str r3, [r8, #-1596] + str r3, [r8, #-1600] bl log2phys ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3403: +.L3474: ldrh r3, [r6] add r7, r7, #1 - rsb r5, r3, r5 - b .L3402 -.L3414: - ldr r3, .L3415+12 - ldr r2, [r3, #1956] + rsb r4, r3, r4 + b .L3473 +.L3485: + ldr r3, .L3486+8 + ldr r2, [r3, #1952] cmp r2, #32 - bls .L3400 + bls .L3471 mov r4, #0 - str r4, [r3, #1956] + str r4, [r3, #1952] bl l2p_flush bl FtlVpcTblFlush - b .L3400 -.L3398: + b .L3471 +.L3477: + mvn r0, #0 +.L3469: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3416: +.L3487: .align 2 -.L3415: +.L3486: .word .LANCHOR2 - .word .LANCHOR1 - .word .LANCHOR2-1658 + .word .LANCHOR2-1662 .word .LANCHOR4 .fnend .size ftl_discard, .-ftl_discard @@ -20256,119 +20640,119 @@ FtlGcFreeTempBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L3456 + ldr r6, .L3527 sub r9, r6, #1664 - ldr r8, [r6, #-1276] - ldrh r1, [r9] + ldr r8, [r6, #-1280] + ldrh r1, [r9, #-4] cmp r8, #0 - bne .L3454 - add r4, r6, #984 + bne .L3525 + add r4, r6, #980 mov r5, r6 movw ip, #65535 ldrh r6, [r4] cmp r6, ip - bne .L3420 -.L3429: + bne .L3491 +.L3500: ldrh r2, [r4] movw r3, #65535 - ldr r6, .L3456+4 + ldr r6, .L3527+4 mov r7, #0 - ldr r8, .L3456 + ldr r8, .L3527 cmp r2, r3 - str r7, [r6, #1760] - add r10, r8, #984 - beq .L3454 + str r7, [r6, #1756] + add r10, r8, #980 + beq .L3525 bl FtlCacheWriteBack - ldrh r2, [r9] - ldrb r0, [r8, #991] @ zero_extendqisi2 + ldrh r2, [r9, #-4] + ldrb r0, [r8, #987] @ zero_extendqisi2 ldrh r3, [r10] mov r10, #12 - ldr r1, [r8, #-1404] + ldr r1, [r8, #-1408] smulbb r2, r0, r2 mov r3, r3, asl #1 - ldr r9, .L3456+8 + ldr r9, .L3527+8 strh r2, [r1, r3] @ movhi - movw r3, #1770 - ldr r2, [r8, #-1604] + movw r3, #1766 + ldr r2, [r8, #-1608] ldrh r3, [r6, r3] add r3, r3, r2 - str r3, [r8, #-1604] - b .L3430 -.L3420: + str r3, [r8, #-1608] + b .L3501 +.L3491: cmp r0, #0 - beq .L3423 - ldr r2, .L3456+12 - movw r3, #3352 + beq .L3494 + ldr r2, .L3527+12 + movw r3, #3448 ldrh r0, [r2, r3] cmp r0, ip - beq .L3424 -.L3425: + beq .L3495 +.L3496: mov r1, #2 - b .L3423 -.L3424: + b .L3494 +.L3495: strh r8, [r2, r3] @ movhi - add r3, r5, #884 + add r3, r5, #880 ldrh r3, [r3] cmp r3, #17 - bhi .L3425 -.L3423: - ldr r7, .L3456 - add r0, r7, #984 + bhi .L3496 +.L3494: + ldr r7, .L3527 + add r0, r7, #980 bl FtlGcScanTempBlk cmn r0, #1 str r0, [sp, #12] - beq .L3426 - ldr r2, [r7, #-1412] + beq .L3497 + ldr r2, [r7, #-1416] mov r6, r6, asl #1 ldrh r3, [r2, r6] cmp r3, #4 - bls .L3427 + bls .L3498 sub r3, r3, #5 mov r0, #1 strh r3, [r2, r6] @ movhi bl FtlEctTblFlush -.L3427: - ldr r4, .L3456+4 - ldr r3, [r4, #1760] +.L3498: + ldr r4, .L3527+4 + ldr r3, [r4, #1756] cmp r3, #0 - bne .L3428 + bne .L3499 ldr r0, [sp, #12] - ldr r3, [r4, #1312] + ldr r3, [r4, #1308] ubfx r0, r0, #10, #16 add r3, r3, #1 - str r3, [r4, #1312] + str r3, [r4, #1308] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3428: +.L3499: mov r3, #0 - str r3, [r4, #1760] - b .L3440 -.L3426: - ldr r2, .L3456+12 - movw r3, #3352 + str r3, [r4, #1756] + b .L3511 +.L3497: + ldr r2, .L3527+12 + movw r3, #3448 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L3440 - b .L3429 -.L3433: + bne .L3511 + b .L3500 +.L3504: ldr r3, [fp, #4] cmp r0, r3 - bne .L3452 -.L3432: + bne .L3523 +.L3503: add r7, r7, #1 -.L3430: +.L3501: ldrh r3, [r9] uxth r8, r7 cmp r3, r8 - bls .L3455 + bls .L3526 mul r8, r10, r8 - ldr r3, [r5, #-1504] - ldr r2, [r5, #-1280] + ldr r3, [r5, #-1508] + ldr r2, [r5, #-1284] add fp, r3, r8 ldr r0, [fp, #8] cmp r0, r2 - bcs .L3452 + bcs .L3523 add r1, sp, #12 mov r2, #0 str r3, [sp, #4] @@ -20377,7 +20761,7 @@ FtlGcFreeTempBlock: ldr r0, [sp, #12] ldr r3, [r3, r8] cmp r0, r3 - bne .L3433 + bne .L3504 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, fp, #4 @@ -20386,94 +20770,94 @@ FtlGcFreeTempBlock: ldr r0, [fp, #8] bl log2phys mov r0, r8 - b .L3453 -.L3452: + b .L3524 +.L3523: ldrh r0, [r4] -.L3453: +.L3524: bl decrement_vpc_count - b .L3432 -.L3455: + b .L3503 +.L3526: movw r0, #65535 bl decrement_vpc_count ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3435 - ldr r0, .L3456+16 + beq .L3506 + ldr r0, .L3527+16 ldrh r1, [r4] bl printk -.L3435: +.L3506: ldrh r0, [r4] - ldr r2, [r5, #-1404] + ldr r2, [r5, #-1408] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3436 + beq .L3507 bl INSERT_DATA_LIST - b .L3437 -.L3436: + b .L3508 +.L3507: bl INSERT_FREE_LIST -.L3437: - movw r3, #1770 - mvn r9, #0 - ldr r8, .L3456+4 - strh r9, [r4] @ movhi +.L3508: + movw r3, #1766 + mvn r8, #0 + strh r8, [r4] @ movhi mov r4, #0 strh r4, [r6, r3] @ movhi - movw r3, #1768 + movw r3, #1764 strh r4, [r6, r3] @ movhi bl l2p_flush bl FtlVpcTblFlush - add r3, r8, #1168 - ldr r7, .L3456 - strh r9, [r3] @ movhi - ldr r3, [r5, #-1800] - add r1, r7, #884 - cmp r3, r4 - beq .L3438 - ldr r3, [r7, #-1564] - cmp r3, #39 - bhi .L3438 movw r3, #1164 + strh r8, [r6, r3] @ movhi + ldr r3, [r5, #-1872] + ldr r7, .L3527 + cmp r3, r4 + add r1, r7, #880 + beq .L3509 + ldr r3, [r7, #-1568] + cmp r3, #39 + bhi .L3509 + ldr r2, .L3527+4 + movw r3, #1160 + ldrh r3, [r2, r3] ldrh r2, [r1] - ldrh r3, [r8, r3] cmp r2, r3 subcc r7, r7, #1520 movcc r3, r3, asl #1 - strcch r3, [r7, #-8] @ movhi - b .L3454 -.L3438: - movw r3, #1164 + strcch r3, [r7, #-12] @ movhi + b .L3525 +.L3509: + movw r3, #1160 ldrh r1, [r1] ldrh r2, [r6, r3] - ldr r3, .L3456 + ldr r3, .L3527 add r0, r2, r2, asl #1 cmp r1, r0, asr #2 - ble .L3454 + ble .L3525 ldrb r0, [r3, #-2744] @ zero_extendqisi2 sub r3, r3, #1520 cmp r0, #0 moveq r2, #20 - streqh r2, [r3, #-8] @ movhi - beq .L3419 + streqh r2, [r3, #-12] @ movhi + beq .L3490 sub r2, r2, #2 - strh r2, [r3, #-8] @ movhi -.L3454: + strh r2, [r3, #-12] @ movhi +.L3525: mov r0, #0 - b .L3419 -.L3440: + b .L3490 +.L3511: mov r0, #1 -.L3419: +.L3490: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3457: +.L3528: .align 2 -.L3456: +.L3527: .word .LANCHOR2 .word .LANCHOR4 - .word .LANCHOR4+1770 + .word .LANCHOR4+1766 .word .LANCHOR1 - .word .LC157 + .word .LC161 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 @@ -20485,27 +20869,27 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r4, .L3461 - ldr r5, .L3461+4 + ldr r4, .L3532 + ldr r5, .L3532+4 mov r0, r4 - ldrh r1, [r5] + ldrh r1, [r5, #-4] bl FtlGcScanTempBlk ldrh r2, [r4, #2] - ldrh r3, [r5] + ldrh r3, [r5, #-4] cmp r2, r3 ldmccfd sp!, {r3, r4, r5, pc} add r0, r4, #48 bl FtlMapBlkWriteDumpData mov r0, #0 bl FtlGcFreeTempBlock - ldr r3, .L3461+8 + ldr r3, .L3532+8 mov r2, #0 - str r2, [r3, #1760] + str r2, [r3, #1756] ldmfd sp!, {r3, r4, r5, pc} -.L3462: +.L3533: .align 2 -.L3461: - .word .LANCHOR2+984 +.L3532: + .word .LANCHOR2+980 .word .LANCHOR2-1664 .word .LANCHOR4 .fnend @@ -20520,12 +20904,12 @@ FtlPowerLostRecovery: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 - ldr r4, .L3465 - ldr r3, .L3465+4 - add r6, r4, #888 - add r4, r4, #936 + ldr r4, .L3536 + ldr r3, .L3536+4 + add r6, r4, #884 + add r4, r4, #932 mov r0, r6 - str r5, [r3, #1812] + str r5, [r3, #1808] bl FtlRecoverySuperblock mov r0, r6 bl FtlSlcSuperblockCheck @@ -20538,9 +20922,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L3466: +.L3537: .align 2 -.L3465: +.L3536: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -20552,34 +20936,33 @@ FtlSysBlkInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3485 - mov r2, #0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - add r8, r3, #1808 - ldr r4, .L3485+4 - mvn r1, #0 - strh r2, [r8] @ movhi - movw r2, #1806 - strh r1, [r3, r2] @ movhi - ldr r3, [r4, #-1728] + movw r3, #1804 + ldr r7, .L3556 + mov r2, #0 + ldr r4, .L3556+4 + strh r2, [r7, r3] @ movhi + movw r3, #1802 + mvn r2, #0 + strh r2, [r7, r3] @ movhi + ldr r3, [r4, #-1732] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - movw r3, #1132 + movw r3, #1128 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - bne .L3468 -.L3470: - mvn r7, #0 - b .L3469 -.L3468: + bne .L3539 +.L3541: + mvn r8, #0 + b .L3540 +.L3539: bl FtlLoadSysInfo - subs r7, r0, #0 - bne .L3470 + subs r8, r0, #0 + bne .L3541 bl FtlLoadMapInfo - mov r6, r7 bl FtlLoadVonderInfo bl Ftl_load_ext_data bl FtlLoadEctTbl @@ -20589,57 +20972,59 @@ FtlSysBlkInit: mov r0, #1 bl FtlUpdateVaildLpn sub r3, r4, #1616 - mov r1, #12 - ldrh r2, [r3, #-10] - ldr r3, [r4, #-1360] -.L3471: - cmp r6, r2 - bge .L3476 - mla r0, r1, r6, r3 - ldr r0, [r0, #4] - cmp r0, #0 - bge .L3472 -.L3476: - ldr r5, .L3485+8 - cmp r6, r2 + ldr r2, [r4, #-1364] + mov r0, #12 + ldrh r1, [r3, #-14] + mov r3, r8 +.L3542: + cmp r3, r1 + bge .L3547 + mla ip, r0, r3, r2 + ldr ip, [ip, #4] + cmp ip, #0 + bge .L3543 +.L3547: + ldr r5, .L3556+8 + cmp r3, r1 add r6, r5, #68 - ldrh r3, [r5, #28] + ldrh r2, [r5, #28] + add r2, r2, #1 + strh r2, [r5, #28] @ movhi + bge .L3554 + b .L3544 +.L3543: add r3, r3, #1 - strh r3, [r5, #28] @ movhi - bge .L3483 - b .L3473 -.L3472: - add r6, r6, #1 - b .L3471 -.L3483: - ldrh r3, [r8] + b .L3542 +.L3554: + movw r3, #1804 + ldrh r3, [r7, r3] cmp r3, #0 - beq .L3477 -.L3473: + beq .L3548 +.L3544: ldrh r3, [r6] - ldr r1, [r4, #-1404] - ldr ip, .L3485+12 + ldr r1, [r4, #-1408] + ldr ip, .L3556+12 mov r3, r3, asl #1 ldrh r0, [r6, #4] ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldrh r3, [ip] + ldrh r3, [ip, #-4] mov r2, #0 - ldr lr, [r4, #-1404] - strb r2, [r4, #894] + ldr lr, [r4, #-1408] + strb r2, [r4, #890] strh r3, [r6, #2] @ movhi - ldr r3, .L3485+16 + ldr r3, .L3556+16 strh r2, [r6, #4] @ movhi ldrh r1, [r3] - ldrh r8, [r3, #4] + ldrh r7, [r3, #4] mov r1, r1, asl #1 ldrh r0, [lr, r1] - rsb r0, r8, r0 + rsb r0, r7, r0 strh r0, [lr, r1] @ movhi - ldrh r1, [ip] + ldrh r1, [ip, #-4] strh r2, [r3, #4] @ movhi - strb r2, [r4, #942] + strb r2, [r4, #938] strh r1, [r3, #2] @ movhi ldrh r3, [r5, #30] add r3, r3, #1 @@ -20647,49 +21032,49 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3477: +.L3548: ldrh r0, [r6] movw r3, #65535 - ldr r8, .L3485+20 + ldr r7, .L3556+20 cmp r0, r3 - beq .L3478 - ldrh r3, [r8, #4] + beq .L3549 + ldrh r3, [r7, #4] cmp r3, #0 - bne .L3478 - ldrh r3, [r8, #52] - add r4, r8, #48 + bne .L3549 + ldrh r3, [r7, #52] + add r4, r7, #48 cmp r3, #0 - bne .L3478 + bne .L3549 bl FtlGcRefreshOpenBlock - ldrh r0, [r8, #48] + ldrh r0, [r7, #48] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush - mov r0, r8 + mov r0, r7 bl allocate_new_data_superblock mov r0, r4 bl allocate_new_data_superblock -.L3478: - ldr r3, .L3485+24 +.L3549: + ldr r3, .L3556+24 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L3479 + bne .L3550 ldrh r3, [r5, #28] tst r3, #31 - bne .L3469 -.L3479: + bne .L3540 +.L3550: bl FtlVpcCheckAndModify -.L3469: - mov r0, r7 +.L3540: + mov r0, r8 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3486: +.L3557: .align 2 -.L3485: +.L3556: .word .LANCHOR4 .word .LANCHOR2 - .word .LANCHOR2+820 + .word .LANCHOR2+816 .word .LANCHOR2-1664 - .word .LANCHOR2+936 - .word .LANCHOR2+888 + .word .LANCHOR2+932 + .word .LANCHOR2+884 .word .LANCHOR0 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit @@ -20698,336 +21083,358 @@ FtlSysBlkInit: .type FtlLowFormat, %function FtlLowFormat: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #12 - ldr r4, .L3522 - ldr r5, [r4, #-1276] + .pad #20 + sub sp, sp, #20 + ldr r4, .L3593 + ldr r5, [r4, #-1280] cmp r5, #0 - bne .L3489 - sub r6, r4, #1616 - mov r1, r5 - ldr r0, [r4, #-1368] - ldrh r2, [r6, #-12] - mov r2, r2, asl #2 - bl ftl_memset - ldrh r2, [r6, #-12] + bne .L3560 + sub r6, r4, #1632 mov r1, r5 ldr r0, [r4, #-1372] + ldrh r2, [r6] mov r2, r2, asl #2 bl ftl_memset - ldr r3, [r4, #-1728] + ldrh r2, [r6] + mov r1, r5 + ldr r0, [r4, #-1376] + mov r2, r2, asl #2 + bl ftl_memset + ldr r3, [r4, #-1732] + str r5, [r4, #-1616] str r5, [r4, #-1612] - str r5, [r4, #-1608] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L3490 + beq .L3561 bl FtlMakeBbt -.L3490: - ldr r0, .L3522 +.L3561: + ldr r0, .L3593 mov r2, #0 - ldr ip, .L3522+4 - ldr lr, .L3522+8 -.L3491: + ldr ip, .L3593+4 + ldr lr, .L3593+8 +.L3562: ldrh r1, [ip] uxth r3, r2 add r2, r2, #1 cmp r3, r1, asl #7 - bge .L3519 - ldr r5, [r0, #-1452] + bge .L3590 + ldr r5, [r0, #-1456] mvn r1, r3 orr r1, r3, r1, asl #16 str r1, [r5, r3, asl #2] - ldr r1, [r0, #-1448] + ldr r1, [r0, #-1452] str lr, [r1, r3, asl #2] - b .L3491 -.L3519: - ldr r8, .L3522+12 + b .L3562 +.L3590: + ldr r9, .L3593+12 mov r7, #0 - sub fp, r8, #10 - ldrh r6, [r8, #-12] -.L3493: - ldrh r3, [fp] - ldr r9, .L3522 - cmp r3, r6 - sub r10, r9, #1712 - sub r5, r10, #10 - bls .L3520 - mov r0, r6 + add r10, r9, #2 + ldrh r5, [r9] +.L3564: + ldrh r3, [r10] + ldr r6, .L3593 + cmp r3, r5 + ldr r8, .L3593+16 + bls .L3591 + mov r0, r5 mov r1, #1 bl FtlLowFormatEraseBlock - add r6, r6, #1 - uxth r6, r6 + add r5, r5, #1 + uxth r5, r5 add r0, r7, r0 uxth r7, r0 - b .L3493 -.L3520: - sub r6, r9, #1728 + b .L3564 +.L3591: + ldrh r1, [r9, #-8] sub r3, r7, #3 - ldrh r1, [r6, #-4] + sub r5, r6, #1728 cmp r3, r1, asl #1 - bge .L3495 -.L3499: - mov r5, #0 - ldr r9, .L3522+16 - mov r7, r5 - b .L3496 -.L3495: + blt .L3566 mov r0, r7 + mov r7, #0 bl __aeabi_uidiv - ldr r3, [r9, #-1632] + ldr r3, [r6, #-1636] add r0, r0, r3 uxth r0, r0 bl FtlSysBlkNumInit - ldr r0, [r9, #-1728] + ldr r0, [r6, #-1732] uxth r0, r0 bl FtlFreeSysBlkQueueInit - ldrh r7, [r10, #-12] -.L3497: - ldrh r3, [r5] - cmp r3, r7 - bls .L3499 - mov r0, r7 - add r7, r7, #1 + ldrh r5, [r5] +.L3567: + ldrh r3, [r8] + cmp r3, r5 + bls .L3566 + mov r0, r5 mov r1, #1 bl FtlLowFormatEraseBlock - uxth r7, r7 - b .L3497 -.L3496: - ldrh r1, [r9] - uxth r0, r5 - ldr fp, .L3522 add r5, r5, #1 - cmp r1, r0 - sub r2, fp, #1712 - bls .L3521 - mov r1, #0 - bl FtlLowFormatEraseBlock + uxth r5, r5 add r0, r7, r0 uxth r7, r0 - b .L3496 -.L3521: - ldrh r2, [r2, #-10] - ldrh r6, [r6, #-4] - ldr r5, .L3522+20 - str r2, [fp, #-1540] - ldr r2, [fp, #-1720] - mov r1, r6 - mov r0, r2 - str r2, [sp, #4] + b .L3567 +.L3566: + mov r5, #0 + mov r6, r5 +.L3569: + ldrh r1, [r9] + uxth r0, r5 + ldr r10, .L3593 + add r5, r5, #1 + cmp r1, r0 + sub r2, r10, #1728 + bls .L3592 + mov r1, #0 + bl FtlLowFormatEraseBlock + add r0, r6, r0 + uxth r6, r0 + b .L3569 +.L3592: + sub r5, r10, #1712 + ldr ip, [r10, #-1724] + ldrh r8, [r2, #-8] + ldrh r1, [r5, #-14] + mov r0, ip + str ip, [sp, #8] + str r1, [r10, #-1544] + mov r1, r8 bl __aeabi_uidiv - movw r3, #1164 - ubfx r9, r0, #5, #16 - mov r10, r0 - add r1, r9, #36 - strh r1, [r5, r3] @ movhi + movw r2, #1160 + ubfx r3, r0, #5, #16 + mov fp, r0 + str r0, [r10, #-1284] + add r1, r3, #36 + ldr r0, .L3593+20 + str r5, [sp, #4] + str r3, [sp] + strh r1, [r0, r2] @ movhi mov r1, #24 - str r0, [fp, #-1280] - mul r1, r1, r6 - ldr r2, [sp, #4] - cmp r7, r1 - ble .L3501 - rsb r0, r7, r2 - mov r1, r6 - str r3, [sp, #4] + mul r1, r1, r8 + mov r5, r0 + ldr ip, [sp, #8] + cmp r6, r1 + ble .L3571 + rsb r0, r6, ip + mov r1, r8 + str r2, [sp, #8] bl __aeabi_uidiv - ldr r3, [sp, #4] - str r0, [fp, #-1280] + ldr r2, [sp, #8] + str r0, [r10, #-1284] mov r0, r0, lsr #5 add r0, r0, #24 - strh r0, [r5, r3] @ movhi -.L3501: - ldr r3, [r4, #-1800] + strh r0, [r5, r2] @ movhi +.L3571: + ldr r3, [r4, #-1872] cmp r3, #1 - bne .L3502 - movw r3, #1164 - mov r0, r7 - mov r1, r6 - ldrh fp, [r5, r3] - str r3, [sp, #4] + bne .L3572 + movw r2, #1160 + mov r0, r6 + ldrh r3, [r5, r2] + mov r1, r8 + str r2, [sp, #12] + str r3, [sp, #8] bl __aeabi_uidiv - ldr r3, [sp, #4] - uxtah r0, fp, r0 - add fp, fp, r0, asr #2 - strh fp, [r5, r3] @ movhi -.L3502: + ldr r3, [sp, #8] + ldr r2, [sp, #12] + uxtah r0, r3, r0 + add r3, r3, r0, asr #2 + strh r3, [r5, r2] @ movhi +.L3572: ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3503 - movw r3, #1164 - mov r0, r7 - mov r1, r6 - ldrh fp, [r5, r3] - str r3, [sp, #4] + beq .L3573 + movw r2, #1160 + mov r0, r6 + ldrh r3, [r5, r2] + mov r1, r8 + str r2, [sp, #12] + str r3, [sp, #8] bl __aeabi_uidiv - ldr r3, [sp, #4] - uxtah r0, fp, r0 - add fp, fp, r0, asr #2 - strh fp, [r5, r3] @ movhi -.L3503: - ldr ip, .L3522 + ldr r3, [sp, #8] + ldr r2, [sp, #12] + uxtah r0, r3, r0 + add r3, r3, r0, asr #2 + strh r3, [r5, r2] @ movhi +.L3573: + ldr ip, .L3593 sub r2, ip, #1664 - ldrh r3, [r2, #-6] + ldrh r3, [r2, #-10] cmp r3, #0 - beq .L3505 - movw r1, #1164 + beq .L3575 + movw r1, #1160 ldrh r0, [r5, r1] add r0, r0, r3, lsr #1 strh r0, [r5, r1] @ movhi - mul r0, r6, r3 - cmp r0, r7 - strgt r10, [ip, #-1280] + mul r0, r8, r3 + cmp r0, r6 + strgt fp, [ip, #-1284] addgt r3, r3, #32 - ldrgt r0, .L3522+20 - addgt r3, r9, r3 + ldrgt r0, [sp] + addgt r3, r0, r3 + ldrgt r0, .L3593+20 strgth r3, [r0, r1] @ movhi -.L3505: - movw r3, #1164 - ldr r10, .L3522+24 +.L3575: + movw r3, #1160 + ldr r10, .L3593+24 ldrh r1, [r5, r3] - mvn r9, #0 - ldr r3, [r4, #-1280] - ldr r7, .L3522+28 + ldr r3, [r4, #-1284] rsb r3, r1, r3 - mul r6, r6, r3 - ldrh r3, [r2] - ldrh r2, [r10, #-10] - add r10, r10, #1648 - mov fp, r7 - mul r3, r3, r6 - str r6, [r5, #1160] - mov r6, #0 - str r3, [r4, #-1280] - mul r3, r2, r3 - str r3, [r4, #-2740] + mul r8, r8, r3 + ldrh r3, [r2, #-4] + str r8, [r5, #1156] + mul r8, r3, r8 + ldrh r3, [r10, #-14] + str r8, [r4, #-1284] + mul r8, r3, r8 + str r8, [r4, #-2740] bl FtlBbmTblFlush - ldrh r2, [r8, #-10] + ldr r2, [r4, #-1720] + add r1, r6, r7 + ldrh r3, [r10, #-6] + add r3, r3, r2, lsr #3 + cmp r1, r3 + bls .L3577 + ldr r0, .L3593+28 + mov r2, r2, lsr #5 + bl printk +.L3577: + ldr r3, [sp, #4] mov r1, #0 - ldr r0, [r4, #-1404] + ldr r0, [r4, #-1408] + mvn r7, #0 + ldr r6, .L3593+32 + ldrh r2, [r3, #-14] + sub fp, r6, #884 + mov r10, r6 mov r2, r2, asl #1 bl ftl_memset - ldrh r2, [r8, #-12] - ldr r3, .L3522+32 + movw r2, #1164 + strh r7, [r5, r2] @ movhi + mov r3, #0 + ldr r2, .L3593+36 mov r1, #255 - ldr r0, [r4, #-1392] + ldr r0, [r4, #-1396] + str r3, [r4, #1124] + strh r3, [r2, #2] @ movhi + ldrh r2, [r9] + strb r3, [r5, #1170] + strb r3, [r5, #1172] mov r2, r2, lsr #3 - str r6, [r4, #1128] - strh r9, [r3] @ movhi - strh r6, [r3, #2] @ movhi + strh r3, [r6, #2] @ movhi + strb r3, [r4, #890] + strh r3, [r6] @ movhi mov r3, #1 - strb r6, [r5, #1174] - strb r6, [r5, #1176] - strh r6, [r7, #2] @ movhi - strb r6, [r4, #894] - strh r6, [r7] @ movhi - strb r3, [r4, #896] + strb r3, [r4, #892] bl ftl_memset -.L3507: - ldr r6, .L3522 - add r8, r6, #888 +.L3578: + ldr r9, .L3593 + add r8, r9, #884 mov r0, r8 bl make_superblock - ldrb r3, [r4, #895] @ zero_extendqisi2 + ldrb r3, [r4, #891] @ zero_extendqisi2 cmp r3, #0 - ldrh r3, [r7] - bne .L3508 - ldr r2, [r10, #-1404] + ldrh r3, [r6] + bne .L3579 + ldr r2, [fp, #-1408] mov r3, r3, asl #1 - strh r9, [r2, r3] @ movhi - ldrh r3, [fp] - add r8, r3, #1 - strh r8, [fp] @ movhi - b .L3507 -.L3508: - ldr r2, [r6, #-1612] + strh r7, [r2, r3] @ movhi + ldrh r3, [r10] + add r3, r3, #1 + strh r3, [r10] @ movhi + b .L3578 +.L3579: + ldr r2, [r9, #-1616] mov r3, r3, asl #1 ldrh r1, [r8, #4] mvn fp, #0 - str r2, [r6, #900] + str r2, [r9, #896] add r2, r2, #1 - str r2, [r6, #-1612] - ldr r2, [r6, #-1404] + str r2, [r9, #-1616] + ldr r2, [r9, #-1408] strh r1, [r2, r3] @ movhi - add r2, r6, #936 + add r2, r9, #932 mov r3, #0 - strb r3, [r6, #942] + strb r3, [r9, #938] strh r3, [r2, #2] @ movhi - mov r10, r2 + mov r7, r2 ldrh r3, [r8] - mov r8, r2 + mov r10, r2 add r3, r3, #1 strh r3, [r2] @ movhi mov r3, #1 - strb r3, [r6, #944] -.L3509: - ldr r7, .L3522 - add r9, r7, #936 - mov r0, r9 + strb r3, [r9, #940] +.L3580: + ldr r6, .L3593 + add r8, r6, #932 + mov r0, r8 bl make_superblock - ldrb r3, [r4, #943] @ zero_extendqisi2 + ldrb r3, [r4, #939] @ zero_extendqisi2 cmp r3, #0 - ldrh r3, [r8] - bne .L3510 - ldr r2, [r6, #-1404] + ldrh r3, [r7] + bne .L3581 + ldr r2, [r9, #-1408] mov r3, r3, asl #1 strh fp, [r2, r3] @ movhi ldrh r3, [r10] add r3, r3, #1 strh r3, [r10] @ movhi - b .L3509 -.L3510: - ldr r2, [r7, #-1612] + b .L3580 +.L3581: + ldr r2, [r6, #-1616] mov r3, r3, asl #1 - ldrh r1, [r9, #4] + ldrh r1, [r8, #4] mvn r4, #0 - str r2, [r7, #948] + str r2, [r6, #944] add r2, r2, #1 - str r2, [r7, #-1612] - ldr r2, [r7, #-1404] + str r2, [r6, #-1616] + ldr r2, [r6, #-1408] strh r1, [r2, r3] @ movhi - add r3, r7, #984 + add r3, r6, #980 strh r4, [r3] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L3522+36 - movw r2, #1132 + ldr r3, .L3593+40 + movw r2, #1128 strh r4, [r3, #4] @ movhi - strh r0, [r7, r2] @ movhi + strh r0, [r6, r2] @ movhi mov r2, #0 strh r2, [r3, #2] @ movhi - ldr r2, [r5, #1160] + ldr r2, [r5, #1156] strh r2, [r3, #6] @ movhi - ldr r3, [r7, #-1612] - str r3, [r7, #1140] + ldr r3, [r6, #-1616] + str r3, [r6, #1136] add r3, r3, #1 - str r3, [r7, #-1612] + str r3, [r6, #-1616] bl FtlVpcTblFlush bl FtlSysBlkInit cmp r0, #0 - ldreq r3, .L3522+40 + ldreq r3, .L3593+44 moveq r2, #1 - streq r2, [r3, #3348] -.L3489: + streq r2, [r3, #3444] +.L3560: mov r0, #0 - add sp, sp, #12 + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3523: +.L3594: .align 2 -.L3522: +.L3593: .word .LANCHOR2 - .word .LANCHOR2-1658 + .word .LANCHOR2-1662 .word 168778952 - .word .LANCHOR2-1712 - .word .LANCHOR2-1724 + .word .LANCHOR2-1728 + .word .LANCHOR2-1726 .word .LANCHOR4 .word .LANCHOR2-1648 - .word .LANCHOR2+888 - .word .LANCHOR4+1168 - .word .LANCHOR2+1132 + .word .LC162 + .word .LANCHOR2+884 + .word .LANCHOR4+1164 + .word .LANCHOR2+1128 .word .LANCHOR1 .fnend .size FtlLowFormat, .-FtlLowFormat @@ -21041,28 +21448,28 @@ FtlReInitForSDUpdata: stmfd sp!, {r0, r1, r2, r3, r4, lr} .save {r4, lr} .pad #16 - ldr r4, .L3553 + ldr r4, .L3624 ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3525 -.L3527: + beq .L3596 +.L3598: mov r0, #0 - b .L3526 -.L3525: - ldr r3, .L3553+4 + b .L3597 +.L3596: + ldr r3, .L3624+4 ldr r0, [r3] bl FlashInit cmp r0, #0 - bne .L3527 + bne .L3598 bl FlashLoadFactorBbt cmp r0, #0 - beq .L3528 + beq .L3599 bl FlashMakeFactorBbt -.L3528: - ldr r0, [r4, #-1772] +.L3599: + ldr r0, [r4, #-1776] bl FlashReadIdbDataRaw cmp r0, #0 - beq .L3529 + beq .L3600 mov r1, #0 mov r2, #16 mov r0, sp @@ -21071,77 +21478,77 @@ FtlReInitForSDUpdata: mov r2, r3 mov ip, #1 ldr r1, [sp] -.L3530: +.L3601: ands lr, r1, ip, asl r2 add r0, r3, #1 add r2, r2, #1 movne r3, r0 cmp r2, #16 - bne .L3530 + bne .L3601 cmp r3, #6 - ldrls r3, .L3553+8 - bls .L3549 + ldrls r3, .L3624+8 + bls .L3620 mov r2, #0 mov ip, #1 -.L3533: +.L3604: ands lr, r1, ip, asl r2 add r0, r3, #1 add r2, r2, #1 movne r3, r0 cmp r2, #24 - bne .L3533 + bne .L3604 cmp r3, #17 - ldr r3, .L3553+8 + ldr r3, .L3624+8 movhi r2, #36 -.L3549: +.L3620: strb r2, [r3, #1] - ldr r3, .L3553+8 + ldr r3, .L3624+8 ldrb r2, [r3, #1] @ zero_extendqisi2 - ldr r3, .L3553+12 + ldr r3, .L3624+12 strh r2, [r3, #26] @ movhi -.L3529: - ldr r1, .L3553+16 - ldr r0, .L3553+20 +.L3600: + ldr r1, .L3624+16 + ldr r0, .L3624+20 bl printk - ldr r0, .L3553+12 + ldr r0, .L3624+12 bl FtlConstantsInit bl FtlVariablesInit - ldr r0, [r4, #-1728] + ldr r0, [r4, #-1732] mov r4, #1 uxth r0, r0 bl FtlFreeSysBlkQueueInit -.L3535: +.L3606: bl FtlLoadBbt cmp r0, #0 - beq .L3536 -.L3551: + beq .L3607 +.L3622: bl FtlLowFormat cmp r4, #3 addls r4, r4, #1 - bls .L3535 -.L3552: + bls .L3606 +.L3623: mvn r0, #0 - b .L3526 -.L3536: + b .L3597 +.L3607: bl FtlSysBlkInit cmp r0, #0 - bne .L3551 - ldr r3, .L3553+24 + bne .L3622 + ldr r3, .L3624+24 mov r2, #1 - str r2, [r3, #3348] -.L3526: + str r2, [r3, #3444] +.L3597: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, pc} -.L3554: +.L3625: .align 2 -.L3553: +.L3624: .word .LANCHOR2 .word RK29_NANDC_REG_BASE .word .LANCHOR0 .word .LANCHOR2-2772 - .word .LC141 - .word .LC46 + .word .LC145 + .word .LC48 .word .LANCHOR1 .fnend .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata @@ -21154,92 +21561,92 @@ Ftl_gc_temp_data_write_back: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r4, .L3572 - ldr r3, [r4, #-1276] + ldr r4, .L3643 + ldr r3, [r4, #-1280] cmp r3, #0 - beq .L3556 -.L3559: + beq .L3627 +.L3630: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3556: +.L3627: ldrb r3, [r4, #-2744] @ zero_extendqisi2 - ldr r6, .L3572+4 + ldr r6, .L3643+4 cmp r3, #0 - beq .L3558 - ldr r3, [r6, #1744] + beq .L3629 + ldr r3, [r6, #1740] tst r3, #1 - beq .L3558 - add r3, r4, #984 + beq .L3629 + add r3, r4, #980 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3559 -.L3558: + bne .L3630 +.L3629: mov r2, #0 - ldr r0, [r4, #-1496] - ldr r1, [r6, #1744] + ldr r0, [r4, #-1500] + ldr r1, [r6, #1740] mov r3, r2 bl FlashProgPages mov r7, #0 mov r8, #36 -.L3560: - ldr r1, [r6, #1744] +.L3631: + ldr r1, [r6, #1740] uxth r3, r7 - ldr r5, .L3572+4 + ldr r5, .L3643+4 cmp r3, r1 - bcs .L3571 + bcs .L3642 mul r3, r8, r3 - ldr r0, [r4, #-1496] - ldr r2, .L3572 + ldr r0, [r4, #-1500] + ldr r2, .L3643 add r7, r7, #1 add r1, r0, r3 ldr lr, [r0, r3] ldr ip, [r1, #12] cmn lr, #1 - bne .L3561 - add r0, r2, #984 - ldr ip, [r2, #-1404] + bne .L3632 + add r0, r2, #980 + ldr ip, [r2, #-1408] mov r4, #0 ldrh r1, [r0] mov r1, r1, asl #1 strh r4, [ip, r1] @ movhi - ldr r2, [r2, #-1496] - ldr r1, [r5, #1312] + ldr r2, [r2, #-1500] + ldr r1, [r5, #1308] add r3, r2, r3 strh lr, [r0] @ movhi add r1, r1, #1 - str r1, [r5, #1312] + str r1, [r5, #1308] ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3570 -.L3561: + b .L3641 +.L3632: ldr r0, [ip, #12] ldr r1, [r1, #4] ldr r2, [ip, #8] bl FtlGcUpdatePage - b .L3560 -.L3571: - ldr r0, [r4, #-1496] + b .L3631 +.L3642: + ldr r0, [r4, #-1500] bl FtlGcBufFree mov r3, #0 - str r3, [r5, #1744] - ldr r3, .L3572+8 + str r3, [r5, #1740] + ldr r3, .L3643+8 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3559 + bne .L3630 mov r0, #1 bl FtlGcFreeTempBlock -.L3570: +.L3641: mov r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3573: +.L3644: .align 2 -.L3572: +.L3643: .word .LANCHOR2 .word .LANCHOR4 - .word .LANCHOR2+984 + .word .LANCHOR2+980 .fnend .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 @@ -21249,42 +21656,42 @@ Ftl_get_new_temp_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3578 + ldr r3, .L3649 movw r2, #65535 stmfd sp!, {r4, lr} .save {r4, lr} ldrh r1, [r3] cmp r1, r2 - beq .L3575 + beq .L3646 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3576 -.L3575: + bne .L3647 +.L3646: bl FtlCacheWriteBack mov r0, #0 bl FtlGcFreeTempBlock - ldr r0, .L3578+4 + ldr r0, .L3649+4 mov r4, #0 - add r0, r0, #984 + add r0, r0, #980 strb r4, [r0, #8] bl allocate_data_superblock - ldr r3, .L3578+8 - movw r2, #1768 + ldr r3, .L3649+8 + movw r2, #1764 strh r4, [r3, r2] @ movhi - movw r2, #1770 + movw r2, #1766 strh r4, [r3, r2] @ movhi bl l2p_flush mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3576: - ldr r0, .L3578 +.L3647: + ldr r0, .L3649 ldmfd sp!, {r4, lr} b get_new_active_ppa -.L3579: +.L3650: .align 2 -.L3578: - .word .LANCHOR2+984 +.L3649: + .word .LANCHOR2+980 .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -21299,86 +21706,85 @@ ftl_read: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r1 - ldr r1, .L3627 + ldr r1, .L3699 .pad #84 sub sp, sp, #84 - ldr r5, [r1, #3348] - cmn r5, #1 - moveq r0, r5 - beq .L3581 + ldr r1, [r1, #3444] + cmp r1, #1 + bne .L3676 cmp r0, #16 mov r8, r3 - str r2, [sp, #36] - bne .L3582 + mov r9, r2 + bne .L3653 mov r1, r2 add r0, r4, #256 mov r2, r3 bl FtlVendorPartRead - b .L3581 -.L3582: - ldr r3, [sp, #36] - ldr r5, .L3627+4 - add r3, r4, r3 - str r3, [sp, #40] - ldr r2, [sp, #40] + b .L3652 +.L3653: + ldr r5, .L3699+4 ldr r3, [r5, #-2740] cmp r2, r3 - mvnhi r0, #0 - bhi .L3581 + cmpls r4, r3 + bcs .L3676 + add r2, r4, r2 + str r2, [sp, #40] + cmp r2, r3 + bhi .L3676 sub r3, r5, #1648 mov r0, r4 - ldrh r6, [r3, #-10] + ldrh r6, [r3, #-14] mov r1, r6 bl __aeabi_uidiv mov r1, r6 ldr r3, [sp, #40] - str r0, [sp, #28] + str r0, [sp, #32] sub r0, r3, #1 bl __aeabi_uidiv - ldr r2, .L3627+8 - ldr r3, [sp, #28] - ldr r1, [sp, #36] + ldr r2, .L3699+8 + ldr r3, [sp, #32] + str r0, [sp, #36] rsb r3, r3, #1 - str r0, [sp, #32] + ldr r1, [sp, #36] add r3, r3, r0 - str r3, [sp, #24] - ldr r3, [r2, #1732] - ldr r0, [sp, #28] - add r3, r1, r3 - str r3, [r2, #1732] - ldr r3, [r5, #-1584] - ldr r2, [sp, #24] - ldr r1, [sp, #32] + str r3, [sp, #28] + ldr r3, [r2, #1728] + ldr r0, [sp, #32] + add r3, r9, r3 + str r3, [r2, #1728] + ldr r3, [r5, #-1588] + ldr r2, [sp, #28] add r3, r2, r3 - str r3, [r5, #-1584] + str r3, [r5, #-1588] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3583 + beq .L3654 bl FtlCacheWriteBack -.L3583: - ldr r6, [sp, #28] - mov r9, #0 - ldr r5, .L3627+4 - mov r7, r9 - str r9, [sp, #48] - str r9, [sp, #52] -.L3584: - ldr r3, [sp, #24] +.L3654: + ldr r6, [sp, #32] + mov r3, #0 + ldr r5, .L3699+4 + mov r7, r3 + str r3, [sp, #24] + str r3, [sp, #48] + str r3, [sp, #52] +.L3655: + ldr r3, [sp, #28] cmp r3, #0 - beq .L3626 + beq .L3698 mov r0, r6 add r1, sp, #76 mov r2, #0 bl log2phys ldr r3, [sp, #76] cmn r3, #1 - bne .L3622 + bne .L3694 mov r10, #0 -.L3585: - ldr r3, .L3627+12 +.L3656: + ldr r3, .L3699+12 ldrh r0, [r3] cmp r10, r0 - bcs .L3589 + bcs .L3660 mla r0, r0, r6, r10 ldr r2, [sp, #40] cmp r0, r4 @@ -21387,64 +21793,64 @@ ftl_read: cmp r0, r2 movcs r3, #0 cmp r3, #0 - beq .L3587 + beq .L3658 rsb r0, r4, r0 mov r1, #0 mov r2, #512 add r0, r8, r0, asl #9 bl ftl_memset -.L3587: +.L3658: add r10, r10, #1 - b .L3585 -.L3622: - ldr r2, [r5, #-1500] + b .L3656 +.L3694: + ldr r2, [r5, #-1504] mov r10, #36 mla r10, r10, r7, r2 str r3, [r10, #4] - ldr r3, [sp, #28] + ldr r3, [sp, #32] cmp r6, r3 - bne .L3590 - ldr r3, [r5, #-1452] + bne .L3661 + ldr r3, [r5, #-1456] mov r0, r4 str r3, [r10, #8] - ldr r3, .L3627+12 + ldr r3, .L3699+12 ldrh fp, [r3] mov r1, fp bl __aeabi_uidivmod - ldr r2, [sp, #36] rsb r3, r1, fp str r1, [sp, #56] - cmp r3, r2 - movcs r3, r2 + cmp r3, r9 + movcs r3, r9 cmp r3, fp str r3, [sp, #48] streq r8, [r10, #8] - b .L3591 -.L3590: - ldr r3, [sp, #32] + b .L3662 +.L3661: + ldr r3, [sp, #36] cmp r6, r3 - bne .L3592 - ldr r3, [r5, #-1448] + bne .L3663 + ldr r3, [r5, #-1452] ldr r1, [sp, #40] str r3, [r10, #8] - ldr r3, .L3627+12 + ldr r3, .L3699+12 ldrh r2, [r3] mul r3, r2, r6 - rsb r9, r3, r1 - cmp r9, r2 - bne .L3591 - b .L3624 -.L3592: - ldr r3, .L3627+12 + rsb r1, r3, r1 + str r1, [sp, #24] + cmp r1, r2 + bne .L3662 + b .L3696 +.L3663: + ldr r3, .L3699+12 ldrh r3, [r3] mul r3, r3, r6 -.L3624: +.L3696: rsb r3, r4, r3 add r3, r8, r3, asl #9 str r3, [r10, #8] -.L3591: - ldr r3, .L3627+16 - ldr r2, [r5, #-1436] +.L3662: + ldr r3, .L3699+16 + ldr r2, [r5, #-1440] str r6, [r10, #16] ldrh r3, [r3] mul r3, r3, r7 @@ -21452,23 +21858,23 @@ ftl_read: bic r3, r3, #3 add r3, r2, r3 str r3, [r10, #12] -.L3589: - ldr r3, [sp, #24] +.L3660: + ldr r3, [sp, #28] add r6, r6, #1 subs r3, r3, #1 - str r3, [sp, #24] - beq .L3593 - ldr r3, .L3627+20 + str r3, [sp, #28] + beq .L3664 + ldr r3, .L3699+20 ldrh r3, [r3] cmp r7, r3, asl #3 - bne .L3584 -.L3593: + bne .L3655 +.L3664: cmp r7, #0 - beq .L3584 - ldr r0, [r5, #-1500] + beq .L3655 + ldr r0, [r5, #-1504] mov r1, r7 mov r2, #0 - ldr fp, .L3627+8 + ldr fp, .L3699+8 bl FlashReadPages ldr r3, [sp, #56] mov r3, r3, asl #9 @@ -21476,64 +21882,65 @@ ftl_read: ldr r3, [sp, #48] mov r3, r3, asl #9 str r3, [sp, #64] - mov r3, r9, asl #9 + ldr r3, [sp, #24] + mov r3, r3, asl #9 str r3, [sp, #68] mov r3, #0 str r3, [sp, #44] -.L3600: +.L3671: ldr r3, [sp, #44] mov ip, #36 - ldr r1, [sp, #28] + ldr r1, [sp, #32] mul r10, ip, r3 - ldr r3, [r5, #-1500] + ldr r3, [r5, #-1504] add r3, r3, r10 ldr r2, [r3, #16] cmp r2, r1 - bne .L3595 + bne .L3666 ldr r1, [r3, #8] - ldr r3, [r5, #-1452] + ldr r3, [r5, #-1456] cmp r1, r3 - bne .L3596 + bne .L3667 ldr r3, [sp, #60] mov r0, r8 ldr r2, [sp, #64] add r1, r1, r3 - b .L3625 -.L3595: - ldr r1, [sp, #32] + b .L3697 +.L3666: + ldr r1, [sp, #36] cmp r2, r1 - bne .L3596 + bne .L3667 ldr r1, [r3, #8] - ldr r3, [r5, #-1448] + ldr r3, [r5, #-1452] cmp r1, r3 - bne .L3596 - ldr r3, .L3627+12 + bne .L3667 + ldr r3, .L3699+12 ldr r2, [sp, #68] ldrh r0, [r3] - ldr r3, [sp, #32] + ldr r3, [sp, #36] mul r0, r0, r3 rsb r0, r4, r0 add r0, r8, r0, asl #9 -.L3625: +.L3697: bl ftl_memcpy -.L3596: - ldr r2, [r5, #-1500] +.L3667: + ldr r2, [r5, #-1504] add r3, r2, r10 ldr r1, [r2, r10] cmn r1, #1 streq r1, [sp, #52] - ldreq r2, [fp, #1288] + ldreq r2, [fp, #1284] addeq r2, r2, #1 - streq r2, [fp, #1288] + streq r2, [fp, #1284] ldr r2, [r3, #12] ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L3598 - ldr r2, [fp, #1288] - ldr r0, .L3627+24 + beq .L3669 + ldr r2, [fp, #1284] + ldr r0, .L3699+24 add r2, r2, #1 - str r2, [fp, #1288] + str r2, [fp, #1284] ldr lr, [r3, #12] ldr r2, [r3, #8] ldr r1, [lr, #4] @@ -21550,48 +21957,51 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [lr] bl printk -.L3598: - ldr r3, [r5, #-1500] +.L3669: + ldr r3, [r5, #-1504] add r2, r3, r10 ldr r3, [r3, r10] cmp r3, #256 - bne .L3599 + bne .L3670 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3599: +.L3670: ldr r3, [sp, #44] add r3, r3, #1 str r3, [sp, #44] cmp r3, r7 - bne .L3600 + bne .L3671 mov r7, #0 - b .L3584 -.L3626: - ldr r3, .L3627+28 - ldrh r3, [r3, #-2] + b .L3655 +.L3698: + ldr r3, .L3699+28 + ldrh r3, [r3, #-6] cmp r3, #0 - beq .L3602 - ldr r0, [sp, #24] + beq .L3673 + ldr r0, [sp, #28] mov r1, #1 bl ftl_do_gc -.L3602: +.L3673: ldr r0, [sp, #52] -.L3581: + b .L3652 +.L3676: + mvn r0, #0 +.L3652: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3628: +.L3700: .align 2 -.L3627: +.L3699: .word .LANCHOR1 .word .LANCHOR2 .word .LANCHOR4 - .word .LANCHOR2-1658 - .word .LANCHOR2-1652 - .word .LANCHOR2-1732 - .word .LC55 + .word .LANCHOR2-1662 + .word .LANCHOR2-1656 + .word .LANCHOR2-1736 + .word .LC58 .word .LANCHOR2-1520 .fnend .size ftl_read, .-ftl_read @@ -21640,99 +22050,101 @@ FtlInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mvn r3, #0 - ldr r4, .L3649 - ldr r6, .L3649+4 - ldr r8, .L3649+8 - ldr r1, .L3649+12 - ldr r0, .L3649+16 - str r3, [r6, #3348] + ldr r2, .L3721 + ldr r5, .L3721+4 + ldr r6, .L3721+8 + ldr r1, .L3721+12 + ldr r0, .L3721+16 + str r3, [r6, #3444] mov r3, #0 - str r3, [r8, #1960] - str r3, [r4, #-1276] + str r3, [r2, #1956] + str r3, [r5, #-1280] bl printk - ldr r0, .L3649+20 + ldr r0, .L3721+20 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldr r3, [r4, #-1728] + ldr r3, [r5, #-1732] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - ldrne r0, .L3649+24 - bne .L3648 + ldrne r0, .L3721+24 + bne .L3720 bl FtlSysBlkInit - subs r5, r0, #0 - beq .L3635 - ldr r0, .L3649+28 -.L3648: - ldr r1, .L3649+32 + subs r4, r0, #0 + beq .L3707 + ldr r0, .L3721+28 +.L3720: + ldr r1, .L3721+32 bl printk - b .L3634 -.L3635: + b .L3706 +.L3707: mov r1, #1 - str r1, [r6, #3348] + str r1, [r6, #3444] bl ftl_do_gc - add r3, r4, #884 - ldrh r9, [r3] - mov r7, r3 - cmp r9, #15 - bhi .L3636 - add r8, r8, #1168 - sub r4, r4, #1536 - movw r6, #65535 -.L3639: + add r3, r5, #880 + ldrh r7, [r3] + mov r6, r3 + cmp r7, #15 + bhi .L3708 + ldr r8, .L3721+36 + movw r5, #65535 + ldr r9, .L3721+40 +.L3711: ldrh r3, [r8] - cmp r3, r6 - bne .L3637 - ldrh r3, [r4] - cmp r3, r6 - bne .L3637 - and r0, r5, #63 + cmp r3, r5 + bne .L3709 + ldrh r3, [r9] + cmp r3, r5 + bne .L3709 + and r0, r4, #63 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3637: +.L3709: mov r0, #1 mov r1, r0 bl ftl_do_gc mov r0, #0 mov r1, #1 bl ftl_do_gc - ldrh r2, [r7] - add r3, r9, #2 + ldrh r2, [r6] + add r3, r7, #2 cmp r2, r3 - bhi .L3634 - add r5, r5, #1 - cmp r5, #4096 - bne .L3639 - b .L3634 -.L3636: - ldrb r3, [r4, #-2744] @ zero_extendqisi2 + bhi .L3706 + add r4, r4, #1 + cmp r4, #4096 + bne .L3711 + b .L3706 +.L3708: + ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3634 + beq .L3706 mov r4, #128 -.L3641: +.L3713: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L3641 -.L3634: + bne .L3713 +.L3706: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3650: +.L3722: .align 2 -.L3649: +.L3721: + .word .LANCHOR4 .word .LANCHOR2 .word .LANCHOR1 - .word .LANCHOR4 - .word .LC141 - .word .LC46 + .word .LC145 + .word .LC48 .word .LANCHOR2-2772 - .word .LC158 - .word .LC159 - .word .LANCHOR3+108 + .word .LC163 + .word .LC164 + .word .LANCHOR3+240 + .word .LANCHOR4+1164 + .word .LANCHOR2-1540 .fnend .size FtlInit, .-FtlInit .align 2 @@ -21746,37 +22158,39 @@ ftl_write: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #100 sub sp, sp, #100 - ldr r10, .L3724 + ldr r10, .L3797 str r3, [sp, #8] - ldr r3, [r10, #-1276] + ldr r3, [r10, #-1280] cmp r3, #0 - bne .L3692 + bne .L3764 mov r8, r2 - ldr r2, .L3724+4 - ldr r2, [r2, #3348] - cmn r2, #1 - moveq r0, r3 - beq .L3652 + ldr r2, .L3797+4 + ldr r2, [r2, #3444] + cmp r2, #1 + movne r0, r3 + bne .L3724 cmp r0, #16 mov r7, r1 - bne .L3653 + bne .L3725 add r0, r1, #256 ldr r2, [sp, #8] mov r1, r8 bl FtlVendorPartWrite - b .L3652 -.L3653: + b .L3724 +.L3725: ldr r3, [r10, #-2740] + cmp r8, r3 + cmpls r1, r3 + bcs .L3767 add r5, r1, r8 cmp r5, r3 - mvnhi r0, #0 - bhi .L3652 - ldr r6, .L3724+8 + bhi .L3767 + ldr r6, .L3797+8 mov r3, #2048 mov r0, r1 - str r3, [r6, #1964] + str r3, [r6, #1960] sub r3, r10, #1648 - ldrh r4, [r3, #-10] + ldrh r4, [r3, #-14] mov r1, r4 bl __aeabi_uidiv mov r1, r4 @@ -21790,35 +22204,35 @@ ftl_write: add r3, r5, #1 str r3, [sp, #4] ldr r2, [sp, #4] - ldr r3, [r10, #-1600] + ldr r3, [r10, #-1604] add r3, r2, r3 - ldr r2, [r10, #-1512] - str r3, [r10, #-1600] - ldr r3, [r6, #1728] + ldr r2, [r10, #-1516] + str r3, [r10, #-1604] + ldr r3, [r6, #1724] add r3, r8, r3 - str r3, [r6, #1728] + str r3, [r6, #1724] movcs r3, #1 movcc r3, #0 cmp r2, #0 str r3, [sp, #24] - beq .L3655 + beq .L3727 mov r3, #36 - ldr r9, [r10, #-1480] + ldr r9, [r10, #-1484] mul r3, r3, r2 ldr r2, [sp, #12] sub r3, r3, #36 add r9, r9, r3 ldr r3, [r9, #16] cmp r2, r3 - bne .L3656 - ldr r3, [r10, #-1592] + bne .L3728 + ldr r3, [r10, #-1596] mov r1, r4 mov r0, r7 add r3, r3, #1 - str r3, [r10, #-1592] - ldr r3, [r6, #1968] + str r3, [r10, #-1596] + ldr r3, [r6, #1964] add r3, r3, #1 - str r3, [r6, #1968] + str r3, [r6, #1964] bl __aeabi_uidivmod ldr r0, [r9, #8] rsb r4, r1, r4 @@ -21830,11 +22244,11 @@ ftl_write: mov r2, r10 bl ftl_memcpy cmp r5, #0 - bne .L3657 - ldr r3, [r6, #1968] + bne .L3729 + ldr r3, [r6, #1964] cmp r3, #2 - ble .L3692 -.L3657: + ble .L3764 +.L3729: ldr r3, [sp, #8] rsb r8, r4, r8 add r7, r7, r4 @@ -21844,70 +22258,70 @@ ftl_write: ldr r3, [sp, #12] add r3, r3, #1 str r3, [sp, #12] -.L3656: +.L3728: mov r3, #0 - str r3, [r6, #1968] -.L3655: + str r3, [r6, #1964] +.L3727: ldr r0, [sp, #12] ldr r1, [sp, #28] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3658 + beq .L3730 bl FtlCacheWriteBack -.L3658: - ldr r5, .L3724+12 +.L3730: + ldr r5, .L3797+12 mov r3, #0 str r3, [sp, #16] - sub r4, r5, #888 + sub r4, r5, #884 str r3, [sp, #32] - str r5, [r6, #1952] + str r5, [r6, #1948] ldr r6, [sp, #12] -.L3659: +.L3731: ldr r3, [sp, #4] cmp r3, #0 - beq .L3723 + beq .L3796 ldrh r2, [r5, #4] cmp r2, #0 - bne .L3660 - ldr r3, .L3724+12 - ldr r9, .L3724+4 + bne .L3732 + ldr r3, .L3797+12 + ldr r9, .L3797+4 cmp r5, r3 - bne .L3661 + bne .L3733 add r0, r5, #48 ldrh r10, [r0, #4] cmp r10, #0 - bne .L3662 + bne .L3734 bl allocate_new_data_superblock - str r10, [r9, #3356] -.L3662: - ldr r0, .L3724+12 + str r10, [r9, #3452] +.L3734: + ldr r0, .L3797+12 bl allocate_new_data_superblock - ldr r3, [r9, #3356] + ldr r3, [r9, #3452] cmp r3, #0 - ldrne r5, .L3724+16 - bne .L3663 -.L3664: - ldr r5, .L3724+12 - b .L3663 -.L3661: + ldrne r5, .L3797+16 + bne .L3735 +.L3736: + ldr r5, .L3797+12 + b .L3735 +.L3733: ldrh r3, [r3, #4] - str r2, [r9, #3356] + str r2, [r9, #3452] cmp r3, #0 - bne .L3664 + bne .L3736 mov r0, r5 bl allocate_new_data_superblock -.L3663: +.L3735: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3665 + bne .L3737 mov r0, r5 bl allocate_new_data_superblock -.L3665: - ldr r3, .L3724+8 - str r5, [r3, #1952] -.L3660: - ldr r3, [r4, #-1516] - ldr r1, [r4, #-1512] +.L3737: + ldr r3, .L3797+8 + str r5, [r3, #1948] +.L3732: + ldr r3, [r4, #-1520] + ldr r1, [r4, #-1516] ldrh r2, [r5, #4] rsb r3, r1, r3 cmp r2, r3 @@ -21917,15 +22331,15 @@ ftl_write: movcc r3, r2 str r3, [sp, #44] mov r3, #0 -.L3721: +.L3794: str r3, [sp, #20] ldr r3, [sp, #20] ldr r2, [sp, #44] cmp r3, r2 - beq .L3667 + beq .L3739 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3667 + beq .L3739 ldr r3, [sp, #28] ldr r2, [sp, #20] rsb ip, r3, r6 @@ -21937,14 +22351,14 @@ ftl_write: moveq r3, #0 andne r3, r3, #1 cmp r3, #0 - beq .L3668 - ldr r3, .L3724+20 + beq .L3740 + ldr r3, .L3797+20 ldrh r2, [r3] add r3, r8, r7 mls r3, r2, r6, r3 cmp r3, r2 - bne .L3667 -.L3668: + bne .L3739 +.L3740: add r1, sp, #56 mov r2, #0 mov r0, r6 @@ -21952,10 +22366,10 @@ ftl_write: bl log2phys mov r0, r5 bl get_new_active_ppa - ldr r10, [r4, #-1512] - ldr r1, [r4, #-1480] + ldr r10, [r4, #-1516] + ldr r1, [r4, #-1484] mov r3, #36 - ldr fp, .L3724+24 + ldr fp, .L3797+24 mla r1, r3, r10, r1 ldrh r2, [fp] str r6, [r1, #16] @@ -21965,13 +22379,13 @@ ftl_write: bic r3, r0, #3 str r3, [sp, #36] ldr r0, [sp, #36] - ldr r3, [r4, #-1428] + ldr r3, [r4, #-1432] add r9, r3, r0 ldrh r0, [fp, #-2] str r9, [r1, #12] str r3, [sp, #40] mul r10, r10, r0 - ldr r0, [r4, #-1456] + ldr r0, [r4, #-1460] bic r10, r10, #3 add r10, r0, r10 mov r0, r9 @@ -21985,9 +22399,9 @@ ftl_write: mov r10, r10, lsr #5 orrs r3, r10, ip ldr r3, [sp, #48] - beq .L3669 + beq .L3741 cmp r10, #0 - beq .L3670 + beq .L3742 ldrh fp, [fp, #-6] mov r0, r7 mov r1, fp @@ -21999,11 +22413,11 @@ ftl_write: movcc r3, r2 movcs r3, r8 str r3, [sp, #16] - b .L3671 -.L3670: + b .L3743 +.L3742: cmp ip, #0 - beq .L3671 - ldr r3, .L3724+20 + beq .L3743 + ldr r3, .L3797+20 add r2, r8, r7 str r10, [sp, #32] ldrh r1, [r3] @@ -22011,20 +22425,20 @@ ftl_write: rsb r2, r1, r2 uxth r3, r2 str r3, [sp, #16] -.L3671: - ldr r3, .L3724+20 +.L3743: + ldr r3, .L3797+20 ldr r2, [sp, #16] ldrh r3, [r3] cmp r2, r3 - bne .L3672 + bne .L3744 cmp r10, #0 - ldr r0, .L3724 + ldr r0, .L3797 moveq r3, r2 - ldr r2, .L3724 + ldr r2, .L3797 muleq r1, r6, r3 ldreq r3, [sp, #8] - ldr r2, [r2, #-1512] - ldr r0, [r0, #-1480] + ldr r2, [r2, #-1516] + ldr r0, [r0, #-1484] rsbeq r1, r7, r1 ldrne r1, [sp, #8] addeq r1, r3, r1, asl #9 @@ -22033,20 +22447,20 @@ ftl_write: mov r3, #36 mla r3, r3, r2, r0 strne r1, [r3, #8] - bne .L3675 + bne .L3747 ldr r0, [r3, #8] - ldr r3, .L3724+28 + ldr r3, .L3797+28 ldrh r2, [r3] - b .L3719 -.L3672: + b .L3792 +.L3744: ldr r2, [sp, #56] mov r3, #36 cmn r2, #1 - beq .L3676 - ldr r1, [r4, #-1480] + beq .L3748 + ldr r1, [r4, #-1484] add r0, sp, #60 str r2, [sp, #64] - ldr r2, [r4, #-1512] + ldr r2, [r4, #-1516] str r6, [sp, #76] mla r3, r3, r2, r1 mov r1, #1 @@ -22058,79 +22472,79 @@ ftl_write: bl FlashReadPages ldr r3, [sp, #60] cmn r3, #1 - ldreq r2, .L3724+8 - ldreq r3, [r2, #1288] + ldreq r2, .L3797+8 + ldreq r3, [r2, #1284] addeq r3, r3, #1 - streq r3, [r2, #1288] - beq .L3679 -.L3677: + streq r3, [r2, #1284] + beq .L3751 +.L3749: ldr r3, [r9, #8] cmp r3, r6 - beq .L3679 - ldr r2, .L3724+8 - ldr r0, .L3724+32 - ldr r3, [r2, #1288] + beq .L3751 + ldr r2, .L3797+8 + ldr r0, .L3797+32 + ldr r3, [r2, #1284] add r3, r3, #1 - str r3, [r2, #1288] + str r3, [r2, #1284] mov r2, r6 ldr r1, [r9, #8] bl printk - b .L3679 -.L3676: - ldr r2, [r4, #-1512] - ldr r1, [r4, #-1480] + b .L3751 +.L3748: + ldr r2, [r4, #-1516] + ldr r1, [r4, #-1484] mla r3, r3, r2, r1 mov r1, #0 ldr r0, [r3, #8] - ldr r3, .L3724+28 + ldr r3, .L3797+28 ldrh r2, [r3] bl ftl_memset -.L3679: +.L3751: cmp r10, #0 mov r3, #36 - beq .L3680 - ldr r1, [r4, #-1480] - ldr r2, [r4, #-1512] + beq .L3752 + ldr r1, [r4, #-1484] + ldr r2, [r4, #-1516] mla r3, r3, r2, r1 ldr r1, [sp, #8] ldr r0, [r3, #8] ldr r3, [sp, #32] add r0, r0, r3, asl #9 - b .L3722 -.L3680: - ldr r1, [r4, #-1512] - ldr r2, [r4, #-1480] + b .L3795 +.L3752: + ldr r1, [r4, #-1516] + ldr r2, [r4, #-1484] mla r3, r3, r1, r2 - ldr r2, .L3724+20 + ldr r2, .L3797+20 ldrh r1, [r2] ldr r0, [r3, #8] mul r1, r1, r6 ldr r3, [sp, #8] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3722: +.L3795: ldr r3, [sp, #16] mov r2, r3, asl #9 - b .L3719 -.L3669: + b .L3792 +.L3741: ldr r2, [sp, #24] cmp r2, #0 - ldr r2, [r4, #-1512] - beq .L3681 - ldr r1, [r4, #-1480] + ldr r2, [r4, #-1516] + beq .L3753 + ldr r1, [r4, #-1484] mla r3, r3, r2, r1 - ldr r2, .L3724+20 + ldr r2, .L3797+20 ldrh fp, [r2] ldr r2, [sp, #8] mul fp, fp, r6 rsb fp, r7, fp add fp, r2, fp, asl #9 str fp, [r3, #8] - b .L3675 -.L3681: - ldr r0, [r4, #-1480] + b .L3747 +.L3753: + ldr r0, [r4, #-1484] mla r3, r3, r2, r0 - ldr r2, .L3724+20 + ldr r2, .L3797+20 ldrh r1, [r2] ldrh r2, [fp, #-2] ldr r0, [r3, #8] @@ -22138,140 +22552,145 @@ ftl_write: ldr r3, [sp, #8] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3719: +.L3792: bl ftl_memcpy -.L3675: - ldr r3, .L3724+36 +.L3747: + ldr r3, .L3797+36 ldr r2, [sp, #40] ldr r1, [sp, #36] strh r3, [r2, r1] @ movhi - ldr r3, [r4, #-1608] + ldr r3, [r4, #-1612] str r6, [r9, #8] add r6, r6, #1 str r3, [r9, #4] add r3, r3, #1 cmn r3, #1 moveq r3, #0 - str r3, [r4, #-1608] + str r3, [r4, #-1612] ldr r3, [sp, #56] str r3, [r9, #12] ldrh r3, [r5] strh r3, [r9, #2] @ movhi - ldr r3, [r4, #-1512] + ldr r3, [r4, #-1516] add r3, r3, #1 - str r3, [r4, #-1512] + str r3, [r4, #-1516] ldr r3, [sp, #20] add r3, r3, #1 - b .L3721 -.L3667: + b .L3794 +.L3739: ldr r3, [sp, #4] ldr r2, [sp, #20] ldr r1, [sp, #24] rsb r3, r2, r3 - ldr r2, [r4, #-1516] + ldr r2, [r4, #-1520] str r3, [sp, #4] - ldr r3, [r4, #-1512] + ldr r3, [r4, #-1516] cmp r3, r2 orrcs r1, r1, #1 cmp r1, #0 - bne .L3685 + bne .L3757 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3685 -.L3687: + beq .L3757 +.L3759: mov r3, #0 str r3, [sp, #24] - b .L3659 -.L3685: + b .L3731 +.L3757: bl FtlCacheWriteBack - ldr r2, .L3724 + ldr r2, .L3797 mov r3, #0 - str r3, [r2, #-1512] + str r3, [r2, #-1516] ldr r3, [sp, #4] cmp r3, #1 - bhi .L3659 - b .L3687 -.L3723: + bhi .L3731 + b .L3759 +.L3796: mov r0, r3 ldr r2, [sp, #12] ldr r3, [sp, #28] - ldr r5, .L3724+40 rsb r1, r2, r3 bl ftl_do_gc - ldrh r4, [r5] - cmp r4, #5 - bls .L3697 - cmp r4, #31 - bhi .L3692 - ldr r3, .L3724+44 + ldr r1, .L3797+40 + ldrh r3, [r1] + mov r6, r1 + cmp r3, #5 + bls .L3770 + cmp r3, #31 + bhi .L3764 + ldr r3, .L3797+44 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L3692 -.L3697: - ldr r6, .L3724 + bne .L3764 +.L3770: + ldr r5, .L3797+48 ldr r4, [sp, #4] - ldr r7, .L3724+48 - sub r8, r6, #1536 -.L3710: + ldr r7, .L3797+52 + add r8, r5, #2 +.L3783: ldrh r2, [r7] movw r3, #65535 cmp r2, r3 - bne .L3691 - ldrh r3, [r8] + bne .L3763 + ldrh r3, [r5] cmp r3, r2 - bne .L3691 - ldr r2, .L3724+52 - ldrh r2, [r2] + bne .L3763 + ldrh r2, [r8] cmp r2, r3 - bne .L3691 + bne .L3763 and r0, r4, #7 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3691: - ldr r3, .L3724+56 +.L3763: + ldr r2, .L3797+56 mov r0, #1 mov r1, r0 - mov r2, #128 - strh r2, [r3] @ movhi - strh r2, [r3, #-2] @ movhi + mov r3, #128 + strh r3, [r2] @ movhi + strh r3, [r2, #-2] @ movhi bl ftl_do_gc mov r0, #0 mov r1, #1 bl ftl_do_gc - ldr r3, [r6, #-1276] + ldr r3, .L3797 + ldr r3, [r3, #-1280] cmp r3, #0 - bne .L3692 - ldrh r3, [r5] + bne .L3764 + ldrh r3, [r6] cmp r3, #2 - bhi .L3692 + bhi .L3764 add r4, r4, #1 cmp r4, #256 - bne .L3710 -.L3692: + bne .L3783 + b .L3764 +.L3767: + mvn r0, #0 + b .L3724 +.L3764: mov r0, #0 -.L3652: +.L3724: add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3725: +.L3798: .align 2 -.L3724: +.L3797: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR4 - .word .LANCHOR2+888 - .word .LANCHOR2+936 - .word .LANCHOR2-1658 - .word .LANCHOR2-1652 - .word .LANCHOR2-1654 - .word .LC160 - .word -3947 .word .LANCHOR2+884 + .word .LANCHOR2+932 + .word .LANCHOR2-1662 + .word .LANCHOR2-1656 + .word .LANCHOR2-1658 + .word .LC165 + .word -3947 + .word .LANCHOR2+880 .word .LANCHOR0 - .word .LANCHOR4+1168 - .word .LANCHOR2-1534 - .word .LANCHOR2-1526 + .word .LANCHOR2-1540 + .word .LANCHOR4+1164 + .word .LANCHOR2-1530 .fnend .size ftl_write, .-ftl_write .align 2 @@ -22320,17 +22739,17 @@ ftl_fix_nand_power_lost_error: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r4, .L3745 + ldr r4, .L3818 ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3729 - ldr r8, .L3745+4 - movw r3, #1806 - add r9, r4, #888 - add r5, r4, #936 - ldr r0, .L3745+8 + beq .L3802 + ldr r8, .L3818+4 + movw r3, #1802 + add r9, r4, #884 + add r5, r4, #932 + ldr r0, .L3818+8 ldrh r7, [r8, r3] - ldr r3, [r4, #-1404] + ldr r3, [r4, #-1408] mov r6, r7, asl #1 mov r1, r7 ldrh r2, [r3, r6] @@ -22344,42 +22763,42 @@ ftl_fix_nand_power_lost_error: mov r0, r5 bl allocate_new_data_superblock movw r5, #4097 -.L3731: +.L3804: subs r5, r5, #1 - beq .L3735 + beq .L3808 mov r0, #1 mov r1, r0 bl ftl_do_gc - ldr r3, [r4, #-1404] + ldr r3, [r4, #-1408] ldrh r3, [r3, r6] cmp r3, #0 - bne .L3731 -.L3735: - ldr r3, [r4, #-1404] + bne .L3804 +.L3808: + ldr r3, [r4, #-1408] mov r1, r7 - ldr r0, .L3745+8 - ldr r9, .L3745 + ldr r0, .L3818+8 + ldr r9, .L3818 ldrh r2, [r3, r6] bl printk - ldr r3, [r4, #-1404] + ldr r3, [r4, #-1408] ldrh r5, [r3, r6] cmp r5, #0 - bne .L3733 + bne .L3806 add r0, sp, #48 movw r10, #65535 mov fp, #36 strh r7, [r0, #-48]! @ movhi bl make_superblock sub r3, r9, #1728 - ldr r9, [r9, #-1488] - ldrh lr, [r3, #-4] + ldr r9, [r9, #-1492] + ldrh lr, [r3, #-8] mov r3, r5 mov ip, r3 add r0, sp, #14 -.L3736: +.L3809: uxth r2, r3 cmp r2, lr - bcs .L3744 + bcs .L3817 ldrh r2, [r0, #2]! add r3, r3, #1 cmp r2, r10 @@ -22389,36 +22808,36 @@ ftl_fix_nand_power_lost_error: uxthne r5, r5 stmneib r1, {r2, ip} strne ip, [r1, #12] - b .L3736 -.L3744: - ldr r3, [r4, #-1404] + b .L3809 +.L3817: + ldr r3, [r4, #-1408] mov r1, r7 - ldr r0, .L3745+12 + ldr r0, .L3818+12 ldrh r2, [r3, r6] bl printk mov r1, #0 mov r2, r5 - ldr r0, [r4, #-1488] + ldr r0, [r4, #-1492] bl FlashEraseBlocks - ldr r0, [r4, #-1488] + ldr r0, [r4, #-1492] mov r1, #1 mov r2, r5 bl FlashEraseBlocks -.L3733: - movw r3, #1806 +.L3806: + movw r3, #1802 mvn r2, #0 strh r2, [r8, r3] @ movhi -.L3729: +.L3802: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3746: +.L3819: .align 2 -.L3745: +.L3818: .word .LANCHOR2 .word .LANCHOR4 - .word .LC161 - .word .LC162 + .word .LC166 + .word .LC167 .fnend .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .global gc_ink_free_return_value @@ -22634,6 +23053,7 @@ ftl_fix_nand_power_lost_error: .global gNandMaxChip .global gNandMaxDie .global gFlashInterfaceMode + .global gFlashCurMode .global gFlashSlcMode .global gFlashOnfiModeEn .global gFlashToggleModeEn @@ -22655,37 +23075,174 @@ ftl_fix_nand_power_lost_error: .byte 40 .byte 24 .byte 16 - .type __func__.20261, %object - .size __func__.20261, 11 -__func__.20261: + .type samsung_14nm_slc_rr, %object + .size samsung_14nm_slc_rr, 26 +samsung_14nm_slc_rr: + .byte 0 + .byte 10 + .byte -10 + .byte 20 + .byte -20 + .byte 30 + .byte -30 + .byte 40 + .byte -40 + .byte 50 + .byte -50 + .byte 60 + .byte -60 + .byte -70 + .byte -80 + .byte -90 + .byte -100 + .byte -110 + .byte -120 + .byte -9 + .byte 70 + .byte 80 + .byte 90 + .byte -125 + .byte -115 + .byte 100 + .space 2 + .type samsung_14nm_mlc_rr, %object + .size samsung_14nm_mlc_rr, 104 +samsung_14nm_mlc_rr: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -4 + .byte 3 + .byte -4 + .byte -6 + .byte 6 + .byte 0 + .byte 6 + .byte -10 + .byte -10 + .byte 4 + .byte -10 + .byte 16 + .byte 12 + .byte -4 + .byte 12 + .byte 8 + .byte -16 + .byte 10 + .byte -16 + .byte 24 + .byte 18 + .byte -14 + .byte 18 + .byte -4 + .byte -22 + .byte -16 + .byte -22 + .byte -8 + .byte 24 + .byte -9 + .byte 24 + .byte 8 + .byte -28 + .byte -4 + .byte -28 + .byte 16 + .byte 30 + .byte 10 + .byte 30 + .byte 10 + .byte -34 + .byte 6 + .byte -34 + .byte 0 + .byte 36 + .byte -8 + .byte 36 + .byte -8 + .byte -40 + .byte -2 + .byte -40 + .byte -20 + .byte -46 + .byte -4 + .byte -46 + .byte -30 + .byte 3 + .byte 0 + .byte 3 + .byte -3 + .byte -2 + .byte -4 + .byte -2 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -10 + .byte -6 + .byte -8 + .byte -6 + .byte -14 + .byte -9 + .byte -8 + .byte -9 + .byte -18 + .byte -52 + .byte 22 + .byte -52 + .byte 10 + .byte 42 + .byte 4 + .byte 42 + .byte 4 + .byte 48 + .byte -9 + .byte 48 + .byte 4 + .byte -58 + .byte 12 + .byte -58 + .byte 0 + .byte -64 + .byte -24 + .byte -64 + .byte -6 + .byte 9 + .byte 18 + .byte 9 + .byte 8 + .type __func__.20378, %object + .size __func__.20378, 11 +__func__.20378: .ascii "FtlMemInit\000" .space 1 - .type __func__.21004, %object - .size __func__.21004, 12 -__func__.21004: + .type __func__.21125, %object + .size __func__.21125, 12 +__func__.21125: .ascii "FtlCheckVpc\000" - .type __func__.21036, %object - .size __func__.21036, 17 -__func__.21036: + .type __func__.21157, %object + .size __func__.21157, 17 +__func__.21157: .ascii "FtlDumpBlockInfo\000" .space 3 - .type __func__.21055, %object - .size __func__.21055, 16 -__func__.21055: + .type __func__.21176, %object + .size __func__.21176, 16 +__func__.21176: .ascii "FtlScanAllBlock\000" - .type __func__.21321, %object - .size __func__.21321, 17 -__func__.21321: + .type __func__.21444, %object + .size __func__.21444, 17 +__func__.21444: .ascii "ftl_scan_all_ppa\000" .space 3 - .type __func__.21303, %object - .size __func__.21303, 21 -__func__.21303: + .type __func__.21424, %object + .size __func__.21424, 21 +__func__.21424: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.20334, %object - .size __func__.20334, 8 -__func__.20334: + .type __func__.20451, %object + .size __func__.20451, 8 +__func__.20451: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -22712,318 +23269,329 @@ __func__.20334: .LC11: .ascii "micron RR %d row=%x,count %d,status=%d\012\000" .LC12: - .ascii "ECC:%d\012\000" + .ascii "samsung RR %d row=%x,count %d,status=%d\012\000" .LC13: - .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" + .ascii "ECC:%d\012\000" .LC14: - .ascii "FlashLoadPhyInfo fail %x!!\012\000" + .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" .LC15: - .ascii "Read pageadd=%x ecc=%x err=%x\012\000" + .ascii "FlashLoadPhyInfo fail %x!!\012\000" .LC16: - .ascii "data:\000" + .ascii "Read pageadd=%x ecc=%x err=%x\012\000" .LC17: - .ascii "spare:\000" + .ascii "data:\000" .LC18: - .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" + .ascii "spare:\000" .LC19: - .ascii "FLFB:%d %d\012\000" + .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" .LC20: - .ascii "BBT:\000" + .ascii "FLFB:%d %d\012\000" .LC21: - .ascii "prog error: = %x\012\000" + .ascii "BBT:\000" .LC22: - .ascii "prog read error: = %x\012\000" + .ascii "prog error: = %x\012\000" .LC23: - .ascii "prog read s error: = %x %x %x\012\000" + .ascii "prog read error: = %x\012\000" .LC24: - .ascii "prog read d error: = %x %x %x\012\000" + .ascii "prog read REFRESH: = %x\012\000" .LC25: - .ascii "FlashMakeFactorBbt %d\012\000" + .ascii "prog read s error: = %x %x %x\012\000" .LC26: - .ascii "bad block:%d %d\012\000" + .ascii "prog read d error: = %x %x %x\012\000" .LC27: - .ascii "FMFB:%d %d\012\000" + .ascii "FlashMakeFactorBbt %d\012\000" .LC28: - .ascii "E:bad block:%d\012\000" + .ascii "bad block:%d %d\012\000" .LC29: - .ascii "FMFB:Save %d %d\012\000" + .ascii "FMFB:%d %d\012\000" .LC30: - .ascii "%s error allocating memory. return -1\012\000" + .ascii "E:bad block:%d\012\000" .LC31: + .ascii "FMFB:Save %d %d\012\000" +.LC32: + .ascii "%s error allocating memory. return -1\012\000" +.LC33: .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" .ascii "\000" -.LC32: - .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" -.LC33: - .ascii "FtlBbmTblFlush error:%x\012\000" .LC34: - .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" + .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" .LC35: - .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000" + .ascii "FtlBbmTblFlush error:%x\012\000" .LC36: + .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" +.LC37: + .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000" +.LC38: .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" .ascii "\000" -.LC37: - .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" -.LC38: - .ascii "FtlMapWritePage error = %x\012\000" .LC39: - .ascii "FtlMapWritePage error = %x error count = %d\012\000" + .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" .LC40: - .ascii "page map lost: %x %x\012\000" + .ascii "FtlMapWritePage error = %x\012\000" .LC41: - .ascii "region_id = %x phyAddr = %x\012\000" + .ascii "FtlMapWritePage error = %x error count = %d\012\000" .LC42: - .ascii "map_ppn:\000" + .ascii "page map lost: %x %x\012\000" .LC43: - .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" + .ascii "region_id = %x phyAddr = %x\012\000" .LC44: - .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" + .ascii "map_ppn:\000" .LC45: - .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" + .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" .LC46: - .ascii "%s\012\000" + .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" .LC47: - .ascii "no ect\000" + .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" .LC48: - .ascii "...%s enter...\012\000" + .ascii "%s\012\000" .LC49: - .ascii "FtlCheckVpc2 %x = %x %x\012\000" + .ascii "no ect\000" .LC50: - .ascii "free blk vpc error %x = %x %x\012\000" + .ascii "...%s enter...\012\000" .LC51: + .ascii "FtlCheckVpc2 %x = %x %x\012\000" +.LC52: + .ascii "free blk vpc error %x = %x %x\012\000" +.LC53: + .ascii "error_flag %x\012\000" +.LC54: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012" .ascii "\000" -.LC52: - .ascii ":\000" -.LC53: - .ascii "Ftlscanalldata = %x\012\000" -.LC54: - .ascii "scan lpa = %x ppa= %x\012\000" .LC55: + .ascii ":\000" +.LC56: + .ascii "Ftlscanalldata = %x\012\000" +.LC57: + .ascii "scan lpa = %x ppa= %x\012\000" +.LC58: .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC56: +.LC59: .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC57: +.LC60: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC58: - .ascii "Mblk:\000" -.LC59: - .ascii "L2P:\000" -.LC60: - .ascii "L2PC:\000" .LC61: + .ascii "Mblk:\000" +.LC62: + .ascii "L2P:\000" +.LC63: + .ascii "L2PC:\000" +.LC64: .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012" .ascii "\000" -.LC62: - .ascii "superBlkID = %x vpc=%x\012\000" -.LC63: - .ascii "flashmode = %x pagenum = %x %x\012\000" -.LC64: - .ascii "blk = %x vpc=%x mode = %x\012\000" .LC65: + .ascii "superBlkID = %x vpc=%x\012\000" +.LC66: + .ascii "flashmode = %x pagenum = %x %x\012\000" +.LC67: + .ascii "blk = %x vpc=%x mode = %x\012\000" +.LC68: .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC66: +.LC69: .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " .ascii "%x\012\000" -.LC67: +.LC70: .ascii "slc mode\000" -.LC68: - .ascii "ftl_scan_all_ppa blk %x page %x\012\000" -.LC69: +.LC71: + .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000" +.LC72: + .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........." + .ascii "..... is bad block\012\000" +.LC73: .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC70: - .ascii "%s finished\012\000" -.LC71: - .ascii "FLASH INFO:\012\000" -.LC72: - .ascii "FLASH ID: %x\012\000" -.LC73: - .ascii "Device Capacity: %d MB\012\000" .LC74: - .ascii "FMWAIT: %x %x %x %x\012\000" + .ascii "%s finished\012\000" .LC75: - .ascii "FTL INFO:\012\000" + .ascii "FLASH INFO:\012\000" .LC76: - .ascii "g_MaxLpn = 0x%x\012\000" + .ascii "FLASH ID: %x\012\000" .LC77: - .ascii "g_VaildLpn = 0x%x\012\000" + .ascii "Device Capacity: %d MB\012\000" .LC78: - .ascii "read_page_count = 0x%x\012\000" + .ascii "FMWAIT: %x %x %x %x\012\000" .LC79: - .ascii "discard_page_count = 0x%x\012\000" + .ascii "FTL INFO:\012\000" .LC80: - .ascii "write_page_count = 0x%x\012\000" + .ascii "g_MaxLpn = 0x%x\012\000" .LC81: - .ascii "cache_write_count = 0x%x\012\000" + .ascii "g_VaildLpn = 0x%x\012\000" .LC82: - .ascii "l2p_write_count = 0x%x\012\000" + .ascii "read_page_count = 0x%x\012\000" .LC83: - .ascii "gc_page_count = 0x%x\012\000" + .ascii "discard_page_count = 0x%x\012\000" .LC84: - .ascii "totle_write = %d MB\012\000" + .ascii "write_page_count = 0x%x\012\000" .LC85: - .ascii "totle_read = %d MB\012\000" + .ascii "cache_write_count = 0x%x\012\000" .LC86: - .ascii "GSV = 0x%x\012\000" + .ascii "l2p_write_count = 0x%x\012\000" .LC87: - .ascii "GDV = 0x%x\012\000" + .ascii "gc_page_count = 0x%x\012\000" .LC88: - .ascii "bad blk num = %d %d\012\000" + .ascii "totle_write = %d MB\012\000" .LC89: - .ascii "free_superblocks = 0x%x\012\000" + .ascii "totle_read = %d MB\012\000" .LC90: - .ascii "mlc_EC = 0x%x\012\000" + .ascii "GSV = 0x%x\012\000" .LC91: - .ascii "slc_EC = 0x%x\012\000" + .ascii "GDV = 0x%x\012\000" .LC92: - .ascii "avg_EC = 0x%x\012\000" + .ascii "bad blk num = %d %d\012\000" .LC93: - .ascii "sys_EC = 0x%x\012\000" + .ascii "free_superblocks = 0x%x\012\000" .LC94: - .ascii "max_EC = 0x%x\012\000" + .ascii "mlc_EC = 0x%x\012\000" .LC95: - .ascii "min_EC = 0x%x\012\000" + .ascii "slc_EC = 0x%x\012\000" .LC96: - .ascii "PLT = 0x%x\012\000" + .ascii "avg_EC = 0x%x\012\000" .LC97: - .ascii "POT = 0x%x\012\000" + .ascii "sys_EC = 0x%x\012\000" .LC98: - .ascii "MaxSector = 0x%x\012\000" + .ascii "max_EC = 0x%x\012\000" .LC99: - .ascii "init_sys_blks_pp = 0x%x\012\000" + .ascii "min_EC = 0x%x\012\000" .LC100: - .ascii "sys_blks_pp = 0x%x\012\000" + .ascii "PLT = 0x%x\012\000" .LC101: - .ascii "free sysblock = 0x%x\012\000" + .ascii "POT = 0x%x\012\000" .LC102: - .ascii "data_blks_pp = 0x%x\012\000" + .ascii "MaxSector = 0x%x\012\000" .LC103: - .ascii "data_op_blks_pp = 0x%x\012\000" + .ascii "init_sys_blks_pp = 0x%x\012\000" .LC104: - .ascii "max_data_blks = 0x%x\012\000" + .ascii "sys_blks_pp = 0x%x\012\000" .LC105: - .ascii "Sys.id = 0x%x\012\000" + .ascii "free sysblock = 0x%x\012\000" .LC106: - .ascii "Bbt.id = 0x%x\012\000" + .ascii "data_blks_pp = 0x%x\012\000" .LC107: - .ascii "ACT.page = 0x%x\012\000" + .ascii "data_op_blks_pp = 0x%x\012\000" .LC108: - .ascii "ACT.plane = 0x%x\012\000" + .ascii "max_data_blks = 0x%x\012\000" .LC109: - .ascii "ACT.id = 0x%x\012\000" + .ascii "Sys.id = 0x%x\012\000" .LC110: - .ascii "ACT.mode = 0x%x\012\000" + .ascii "Bbt.id = 0x%x\012\000" .LC111: - .ascii "ACT.a_pages = 0x%x\012\000" + .ascii "ACT.page = 0x%x\012\000" .LC112: - .ascii "ACT VPC = 0x%x\012\000" + .ascii "ACT.plane = 0x%x\012\000" .LC113: - .ascii "BUF.page = 0x%x\012\000" + .ascii "ACT.id = 0x%x\012\000" .LC114: - .ascii "BUF.plane = 0x%x\012\000" + .ascii "ACT.mode = 0x%x\012\000" .LC115: - .ascii "BUF.id = 0x%x\012\000" + .ascii "ACT.a_pages = 0x%x\012\000" .LC116: - .ascii "BUF.mode = 0x%x\012\000" + .ascii "ACT VPC = 0x%x\012\000" .LC117: - .ascii "BUF.a_pages = 0x%x\012\000" + .ascii "BUF.page = 0x%x\012\000" .LC118: - .ascii "BUF VPC = 0x%x\012\000" + .ascii "BUF.plane = 0x%x\012\000" .LC119: - .ascii "TMP.page = 0x%x\012\000" + .ascii "BUF.id = 0x%x\012\000" .LC120: - .ascii "TMP.plane = 0x%x\012\000" + .ascii "BUF.mode = 0x%x\012\000" .LC121: - .ascii "TMP.id = 0x%x\012\000" + .ascii "BUF.a_pages = 0x%x\012\000" .LC122: - .ascii "TMP.mode = 0x%x\012\000" + .ascii "BUF VPC = 0x%x\012\000" .LC123: - .ascii "TMP.a_pages = 0x%x\012\000" + .ascii "TMP.page = 0x%x\012\000" .LC124: - .ascii "GC.page = 0x%x\012\000" + .ascii "TMP.plane = 0x%x\012\000" .LC125: - .ascii "GC.plane = 0x%x\012\000" + .ascii "TMP.id = 0x%x\012\000" .LC126: - .ascii "GC.id = 0x%x\012\000" + .ascii "TMP.mode = 0x%x\012\000" .LC127: - .ascii "GC.mode = 0x%x\012\000" + .ascii "TMP.a_pages = 0x%x\012\000" .LC128: - .ascii "GC.a_pages = 0x%x\012\000" + .ascii "GC.page = 0x%x\012\000" .LC129: - .ascii "WR_CHK = 0x%x %x %x %x\012\000" + .ascii "GC.plane = 0x%x\012\000" .LC130: - .ascii "Read Err = 0x%x\012\000" + .ascii "GC.id = 0x%x\012\000" .LC131: - .ascii "Prog Err = 0x%x\012\000" + .ascii "GC.mode = 0x%x\012\000" .LC132: - .ascii "gc_free_blk_th= 0x%x\012\000" + .ascii "GC.a_pages = 0x%x\012\000" .LC133: - .ascii "gc_merge_free_blk_th= 0x%x\012\000" + .ascii "WR_CHK = 0x%x %x %x %x\012\000" .LC134: - .ascii "gc_skip_write_count= 0x%x\012\000" + .ascii "Read Err = 0x%x\012\000" .LC135: - .ascii "gc_blk_index= 0x%x\012\000" + .ascii "Prog Err = 0x%x\012\000" .LC136: - .ascii "free min EC= 0x%x\012\000" + .ascii "gc_free_blk_th= 0x%x\012\000" .LC137: - .ascii "free max EC= 0x%x\012\000" + .ascii "gc_merge_free_blk_th= 0x%x\012\000" .LC138: - .ascii "GC__SB VPC = 0x%x\012\000" + .ascii "gc_skip_write_count= 0x%x\012\000" .LC139: - .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" + .ascii "gc_blk_index= 0x%x\012\000" .LC140: - .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" + .ascii "free min EC= 0x%x\012\000" .LC141: - .ascii "FTL version: 5.0.60 20200218\000" + .ascii "free max EC= 0x%x\012\000" .LC142: + .ascii "GC__SB VPC = 0x%x\012\000" +.LC143: + .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" +.LC144: + .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" +.LC145: + .ascii "FTL version: 5.0.63 20200923\000" +.LC146: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" -.LC143: - .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" -.LC144: - .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" -.LC145: - .ascii "FtlGcRefreshBlock 0x%x\012\000" -.LC146: - .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" .LC147: - .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" + .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" .LC148: - .ascii "decrement_vpc_count %x = %d\012\000" + .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" .LC149: - .ascii "decrement_vpc_count %x = %d in free list\012\000" + .ascii "FtlGcRefreshBlock 0x%x\012\000" .LC150: - .ascii "RSB refresh addr %x\012\000" + .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" .LC151: - .ascii "spuer block %x vpn is 0\012 \000" + .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" .LC152: - .ascii "g_recovery_ppa %x ver %x\012 \000" + .ascii "decrement_vpc_count %x = %d\012\000" .LC153: - .ascii "FtlCheckVpc %x = %x %x\012\000" + .ascii "decrement_vpc_count %x = %d in free list\012\000" .LC154: - .ascii "%d GC datablk = %x vpc %x %x\012\000" + .ascii "RSB refresh addr %x\012\000" .LC155: - .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" + .ascii "spuer block %x vpn is 0\012 \000" .LC156: - .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" + .ascii "g_recovery_ppa %x ver %x\012 \000" .LC157: - .ascii "GC des block %x done\012\000" + .ascii "FtlCheckVpc %x = %x %x\012\000" .LC158: + .ascii "%d GC datablk = %x vpc %x %x\012\000" +.LC159: + .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" +.LC160: + .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" +.LC161: + .ascii "GC des block %x done\012\000" +.LC162: + .ascii "too many bad block = %d %d\012\000" +.LC163: .ascii "...%s: no bad block mapping table, format device\012" .ascii "\000" -.LC159: +.LC164: .ascii "...%s FtlSysBlkInit error ,format device!\012\000" -.LC160: +.LC165: .ascii "FtlWrite: lpa error:%x %x\012\000" -.LC161: +.LC166: .ascii "fix power lost blk = %x vpc=%x\012\000" -.LC162: +.LC167: .ascii "erase power lost blk = %x vpc=%x\012\000" .data .align 2 @@ -23185,7 +23753,7 @@ gNandParaInfo: .byte 0 .space 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2656 + .size NandFlashParaTbl, 2752 NandFlashParaTbl: .byte 6 .byte 44 @@ -24514,6 +25082,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte -119 + .byte -120 + .byte 36 + .byte 59 + .byte -87 + .byte 0 + .byte 7 + .byte 1 + .byte 16 + .short 192 + .byte 2 + .byte 2 + .short 2048 + .short 279 + .byte 12 + .byte 0 + .byte 24 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .space 4 + .byte 6 .byte -104 .byte -41 .byte -124 @@ -24878,6 +25472,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte -104 + .byte -34 + .byte -108 + .byte -109 + .byte 118 + .byte -47 + .byte 1 + .byte 1 + .byte 32 + .short 256 + .byte 2 + .byte 2 + .short 1074 + .short 1497 + .byte 2 + .byte 35 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 4 + .byte 0 + .byte 0 + .byte 0 + .space 4 + .byte 6 .byte 69 .byte -34 .byte -108 @@ -25189,7 +25809,7 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 - .byte 6 + .byte 5 .byte -20 .byte -41 .byte -108 @@ -25345,6 +25965,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 + .byte 6 + .byte -20 + .byte -34 + .byte -108 + .byte -61 + .byte -92 + .byte -54 + .byte 0 + .byte 1 + .byte 32 + .short 792 + .byte 2 + .byte 1 + .short 688 + .short 1217 + .byte 11 + .byte 50 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .space 4 .type NandOptPara, %object .size NandOptPara, 128 NandOptPara: @@ -25750,6 +26396,10 @@ gNandRandomizer: .size gNandChipMap, 32 gNandChipMap: .space 32 + .type gpNandParaInfo, %object + .size gpNandParaInfo, 4 +gpNandParaInfo: + .space 4 .type gNandOptPara, %object .size gNandOptPara, 32 gNandOptPara: @@ -25783,10 +26433,6 @@ DieAddrs: .size gDieOp, 128 gDieOp: .space 128 - .type gpNandParaInfo, %object - .size gpNandParaInfo, 4 -gpNandParaInfo: - .space 4 .type gTotleBlock, %object .size gTotleBlock, 2 gTotleBlock: @@ -25861,11 +26507,23 @@ gReadRetryInfo: .size read_retry_cur_offset, 4 read_retry_cur_offset: .space 4 + .type gFlashCurMode, %object + .size gFlashCurMode, 1 +gFlashCurMode: + .space 1 .type gFlashInterfaceMode, %object .size gFlashInterfaceMode, 1 gFlashInterfaceMode: .space 1 - .space 3 + .type gMultiPageProgEn, %object + .size gMultiPageProgEn, 1 +gMultiPageProgEn: + .space 1 + .space 1 + .type g_inkDie_check_enable, %object + .size g_inkDie_check_enable, 4 +g_inkDie_check_enable: + .space 4 .type gFlashPageBuffer0, %object .size gFlashPageBuffer0, 4 gFlashPageBuffer0: @@ -25906,15 +26564,6 @@ gNandcDumpWriteEn: .type gNandcEccBits, %object .size gNandcEccBits, 4 gNandcEccBits: - .space 4 - .type gMultiPageProgEn, %object - .size gMultiPageProgEn, 1 -gMultiPageProgEn: - .space 1 - .space 3 - .type g_inkDie_check_enable, %object - .size g_inkDie_check_enable, 4 -g_inkDie_check_enable: .space 4 .type FlashDdrTunningReadCount, %object .size FlashDdrTunningReadCount, 4 diff --git a/drivers/rk_nand/rk_ftlv5_arm64.S b/drivers/rk_nand/rk_ftlv5_arm64.S index f009b0efc192..3cb85970b8e7 100644 --- a/drivers/rk_nand/rk_ftlv5_arm64.S +++ b/drivers/rk_nand/rk_ftlv5_arm64.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2020-02-18 + * date: 2020-09-23 * function: rk ftl v5 for rockchip soc base on arm v8 to support MLC NAND. */ .cpu generic+fp+simd @@ -239,18 +239,28 @@ FlashBlockAlignInit: .global FlashReadCmd .type FlashReadCmd, %function FlashReadCmd: - adrp x3, .LANCHOR0 + adrp x4, .LANCHOR0 uxtb w0, w0 - add x3, x3, :lo12:.LANCHOR0 - sbfiz x5, x0, 4, 32 - add x3, x3, 24 - lsr w4, w1, 16 - add x2, x3, x5 + add x4, x4, :lo12:.LANCHOR0 + sbfiz x2, x0, 4, 32 stp x29, x30, [sp, -16]! + add x3, x4, 24 add x29, sp, 0 - ldrb w2, [x2,8] - ldr x3, [x3,x5] - add x2, x3, x2, lsl 8 + ldr x4, [x4,104] + add x5, x3, x2 + ldr x2, [x3,x2] + ldrb w4, [x4,7] + ldrb w3, [x5,8] + cmp w4, 1 + bne .L42 + sxtw x4, w3 + mov w5, 38 + add x4, x4, 8 + add x4, x2, x4, lsl 8 + str w5, [x4,8] +.L42: + ubfiz x3, x3, 8, 8 + add x2, x2, x3 and w3, w1, 255 str wzr, [x2,2056] str wzr, [x2,2052] @@ -258,8 +268,9 @@ FlashReadCmd: str w3, [x2,2052] lsr w3, w1, 8 str w3, [x2,2052] + lsr w3, w1, 16 + str w3, [x2,2052] mov w3, 48 - str w4, [x2,2052] str w3, [x2,2056] bl FlashSetRandomizer ldp x29, x30, [sp], 16 @@ -279,13 +290,13 @@ FlashReadDpDataOutCmd: add x29, sp, 0 ldr x6, [x4,x2] lsr w4, w1, 8 - ldrb w2, [x3,120] + ldrb w2, [x3,128] lsr w3, w1, 16 cmp w2, 1 ldrb w2, [x5,8] and w5, w1, 255 add x2, x6, x2, lsl 8 - bne .L43 + bne .L44 mov w6, 6 str w6, [x2,2056] str wzr, [x2,2052] @@ -293,8 +304,8 @@ FlashReadDpDataOutCmd: str w5, [x2,2052] str w4, [x2,2052] str w3, [x2,2052] - b .L45 -.L43: + b .L46 +.L44: str wzr, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] @@ -305,7 +316,7 @@ FlashReadDpDataOutCmd: str w3, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] -.L45: +.L46: mov w3, 224 str w3, [x2,2056] bl FlashSetRandomizer @@ -352,7 +363,7 @@ FlashEraseCmd: add x5, x4, x0 ldr x4, [x4,x0] ldrb w0, [x5,8] - cbz w2, .L48 + cbz w2, .L49 add x2, x4, x0, lsl 8 mov w5, 96 str w5, [x2,2056] @@ -364,7 +375,7 @@ FlashEraseCmd: str w5, [x2,2052] ldr w2, [x3,92] add w1, w1, w2 -.L48: +.L49: add x0, x4, x0, lsl 8 mov w2, 96 str w2, [x0,2056] @@ -391,7 +402,7 @@ FlashProgDpSecondCmd: add x7, x5, x4 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w6, [x2,115] + ldrb w6, [x2,123] ldrb w2, [x7,8] ldr x4, [x5,x4] add x2, x4, x2, lsl 8 @@ -441,7 +452,7 @@ FlashProgDpFirstCmd: add x1, x1, :lo12:.LANCHOR0 add x2, x1, 24 add x3, x2, x0 - ldrb w1, [x1,114] + ldrb w1, [x1,122] ldr x2, [x2,x0] ldrb w0, [x3,8] add x0, x0, 8 @@ -481,17 +492,17 @@ js_hash: mov w0, 42982 mov x2, 0 movk w0, 0x47c6, lsl 16 -.L57: +.L58: cmp w1, w2 - bls .L59 + bls .L60 lsl w3, w0, 5 ldrb w4, [x5,x2] add w3, w3, w0, lsr 2 add x2, x2, 1 add w3, w3, w4 eor w0, w0, w3 - b .L57 -.L59: + b .L58 +.L60: ret .size js_hash, .-js_hash .align 2 @@ -509,104 +520,104 @@ BuildFlashLsbPageTable: adrp x2, .LANCHOR0 add x29, sp, 0 stp x19, x20, [sp,16] - mov w20, w1 - cbnz w0, .L62 + mov w19, w1 + cbnz w0, .L63 mov x0, 0 add x3, x2, :lo12:.LANCHOR0 -.L63: - add x1, x3, 136 +.L64: + add x1, x3, 144 strh w0, [x1,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 - bne .L63 -.L69: - add x19, x2, :lo12:.LANCHOR0 + cmp x0, 512 + bne .L64 +.L70: + add x20, x2, :lo12:.LANCHOR0 mov w1, 255 mov w2, 2048 - add x0, x19, 1160 - uxth w20, w20 + add x0, x20, 1168 + uxth w19, w19 bl ftl_memset mov x0, 0 - mov x2, x19 - b .L64 -.L62: + mov x2, x20 + b .L65 +.L63: cmp w0, 1 - bne .L65 + bne .L66 mov x0, 0 mov w5, 3 mov w6, 2 add x4, x2, :lo12:.LANCHOR0 -.L68: +.L69: cmp x0, 3 - uxth w1, w0 - mov w3, w1 - bls .L66 - ubfiz w3, w1, 1, 15 - and w1, w1, 1 - cmp w1, wzr - csel w1, w5, w6, ne - sub w3, w3, w1 - uxth w3, w3 -.L66: - add x1, x4, 136 - strh w3, [x1,x0,lsl 1] + uxth w3, w0 + mov w1, w3 + bls .L67 + ubfiz w1, w3, 1, 15 + and w3, w3, 1 + cmp w3, wzr + csel w3, w5, w6, ne + sub w1, w1, w3 + uxth w1, w1 +.L67: + add x3, x4, 144 + strh w1, [x3,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 - bne .L68 - b .L69 -.L65: + cmp x0, 512 + bne .L69 + b .L70 +.L66: cmp w0, 2 - bne .L70 + bne .L71 mov w1, 65535 mov x0, 0 add x5, x2, :lo12:.LANCHOR0 -.L72: - add x4, x5, 136 +.L73: + add x4, x5, 144 cmp x0, 1 uxth w3, w0 csel w3, w1, w3, hi add w1, w1, 2 strh w3, [x4,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 + cmp x0, 512 uxth w1, w1 - bne .L72 - b .L69 -.L70: - cmp w0, 3 bne .L73 + b .L70 +.L71: + cmp w0, 3 + bne .L74 mov x0, 0 - mov w5, 5 - mov w6, 4 - add x4, x2, :lo12:.LANCHOR0 -.L76: + mov w6, 5 + mov w7, 4 + add x5, x2, :lo12:.LANCHOR0 +.L77: cmp x0, 5 - uxth w1, w0 - mov w3, w1 - bls .L74 - ubfiz w3, w1, 1, 15 - and w1, w1, 1 - cmp w1, wzr - csel w1, w5, w6, ne - sub w3, w3, w1 + uxth w4, w0 + mov w3, w4 + bls .L75 + ubfiz w1, w4, 1, 15 + and w4, w4, 1 + cmp w4, wzr + csel w3, w6, w7, ne + sub w3, w1, w3 uxth w3, w3 -.L74: - add x1, x4, 136 +.L75: + add x1, x5, 144 strh w3, [x1,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 - bne .L76 - b .L69 -.L73: - cmp w0, 4 + cmp x0, 512 bne .L77 + b .L70 +.L74: + cmp w0, 4 + bne .L78 add x1, x2, :lo12:.LANCHOR0 mov w6, 7 - add x3, x1, 136 + add x3, x1, 144 mov w5, 6 strh w0, [x3,8] mov w0, 5 - strh wzr, [x1,136] + strh wzr, [x1,144] mov w1, 1 strh w0, [x3,10] mov w0, 7 @@ -619,7 +630,7 @@ BuildFlashLsbPageTable: strh w0, [x3,14] mov w0, 8 strh w1, [x3,6] -.L79: +.L80: and w4, w0, 1 ubfiz w1, w0, 1, 15 add w0, w0, 1 @@ -628,42 +639,42 @@ BuildFlashLsbPageTable: add x3, x3, 2 uxth w0, w0 sub w1, w1, w4 - cmp w0, 256 + cmp w0, 512 strh w1, [x3,14] - bne .L79 - b .L69 -.L77: - cmp w0, 5 bne .L80 + b .L70 +.L78: + cmp w0, 5 + bne .L81 mov x0, 0 add x3, x2, :lo12:.LANCHOR0 -.L81: - add x1, x3, 136 +.L82: + add x1, x3, 144 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L81 + bne .L82 mov x0, 0 -.L82: +.L83: add x3, x1, x0 add w4, w0, 16 add x0, x0, 2 - cmp x0, 480 + cmp x0, 992 strh w4, [x3,32] - bne .L82 - b .L69 -.L80: - cmp w0, 6 bne .L83 + b .L70 +.L81: + cmp w0, 6 + bne .L84 mov x3, 0 mov w6, 12 mov w7, 10 add x5, x2, :lo12:.LANCHOR0 -.L86: +.L87: cmp x3, 5 uxth w4, w3 mov w0, w4 - bls .L84 + bls .L85 add w0, w4, w4, lsl 1 and w4, w4, 1 cmp w4, wzr @@ -671,62 +682,111 @@ BuildFlashLsbPageTable: csel w1, w6, w7, ne sub w0, w0, w1 uxth w0, w0 -.L84: - add x1, x5, 136 +.L85: + add x1, x5, 144 strh w0, [x1,x3,lsl 1] add x3, x3, 1 - cmp x3, 256 - bne .L86 - b .L69 -.L83: - cmp w0, 9 + cmp x3, 512 bne .L87 + b .L70 +.L84: + cmp w0, 9 + bne .L88 add x0, x2, :lo12:.LANCHOR0 - add x1, x0, 136 - strh wzr, [x0,136] + add x1, x0, 144 + strh wzr, [x0,144] mov w0, 1 strh w0, [x1,2] mov w0, 2 strh w0, [x1,4] mov x0, 0 -.L88: +.L89: add x3, x1, x0 add w4, w0, 3 add x0, x0, 2 - cmp x0, 506 + cmp x0, 1018 strh w4, [x3,6] - bne .L88 - b .L69 -.L87: + bne .L89 + b .L70 +.L88: cmp w0, 10 - bne .L69 + bne .L90 mov x0, 0 add x3, x2, :lo12:.LANCHOR0 -.L89: - add x1, x3, 136 +.L91: + add x1, x3, 144 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 63 - bne .L89 + bne .L91 mov x0, 0 -.L90: +.L92: add x3, x1, x0 add w4, w0, 63 add x0, x0, 2 cmp x0, 898 strh w4, [x3,126] - bne .L90 - b .L69 -.L64: - cmp w20, w0, uxth - bls .L111 - add x1, x2, 136 - add x3, x2, 1160 + bne .L92 + b .L70 +.L90: + cmp w0, 11 + bne .L93 + mov x0, 0 + add x1, x2, :lo12:.LANCHOR0 +.L94: + add x3, x1, 144 + strh w0, [x3,x0,lsl 1] + add x0, x0, 1 + cmp x0, 8 + bne .L94 + mov w6, 7 + mov w5, 6 +.L96: + and w4, w0, 1 + ubfiz w1, w0, 1, 15 + add w0, w0, 1 + cmp w4, wzr + csel w4, w6, w5, ne + add x3, x3, 2 + uxth w0, w0 + sub w1, w1, w4 + cmp w0, 512 + strh w1, [x3,14] + bne .L96 + b .L70 +.L93: + cmp w0, 12 + bne .L70 + add x1, x2, :lo12:.LANCHOR0 + mov w3, 4 + add x0, x1, 144 + strh wzr, [x1,144] + mov w1, 1 + strh w1, [x0,2] + mov w1, 2 + strh w1, [x0,4] + mov w1, 3 + strh w1, [x0,6] +.L97: + sub w1, w3, #1 + add x0, x0, 2 + add w1, w1, w3, lsr 1 + add w3, w3, 1 + strh w1, [x0,6] + uxth w3, w3 + cmp w3, 512 + bne .L97 + b .L70 +.L65: + cmp w19, w0, uxth + bls .L122 + add x1, x2, 144 + add x3, x2, 1168 ldrh w1, [x1,x0,lsl 1] add x0, x0, 1 strh w1, [x3,w1,sxtw 1] - b .L64 -.L111: + b .L65 +.L122: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -765,10 +825,10 @@ ToshibaSetRRPara: add x24, x24, :lo12:g_maxRegNum mov x19, x2 add x26, x26, :lo12:g_retryMode -.L114: +.L125: ldrb w0, [x24] cmp w0, w20 - bls .L120 + bls .L131 mov w0, 85 str w0, [x22,8] add x0, x19, 256 @@ -778,21 +838,21 @@ ToshibaSetRRPara: bl __const_udelay ldrb w0, [x26] cmp w0, 34 - bne .L115 + bne .L126 ldrsb w0, [x25,x20] - b .L119 -.L115: + b .L130 +.L126: cmp w0, 35 - bne .L117 + bne .L128 ldrsb w0, [x21,x20] - b .L119 -.L117: + b .L130 +.L128: ldrsb w0, [x23,400] -.L119: +.L130: str w0, [x22] add x20, x20, 1 - b .L114 -.L120: + b .L125 +.L131: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -819,10 +879,10 @@ SamsungSetRRPara: add x22, x22, :lo12:g_maxRegNum mov w24, 161 mov x19, x2 -.L122: +.L133: ldrb w0, [x22] cmp w0, w20 - bls .L124 + bls .L135 str w24, [x21,8] add x0, x19, 408 str wzr, [x21] @@ -833,8 +893,8 @@ SamsungSetRRPara: str w0, [x21] mov x0, 1500 bl __const_udelay - b .L122 -.L124: + b .L133 +.L135: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -856,14 +916,14 @@ FlashDieInfoInit: str x27, [sp,80] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - strb wzr, [x19,3208] - add x25, x19, 3212 - strb wzr, [x19,3209] + strb wzr, [x19,3216] + add x25, x19, 3220 + strb wzr, [x19,3217] bl FlashBlockAlignInit mov w1, 0 mov w2, 8 mov x0, x25 - add x24, x19, 3220 + add x24, x19, 3228 adrp x26, IDByte mov x23, 0 bl ftl_memset @@ -872,63 +932,63 @@ FlashDieInfoInit: mov w2, 32 mov x0, x24 bl ftl_memset - add x0, x19, 3252 + add x0, x19, 3260 mov w1, 0 mov w2, 192 bl ftl_memset - ldr x20, [x19,3448] + ldr x20, [x19,104] add x22, x20, 1 -.L127: +.L138: ldrb w2, [x20] mov x0, x22 add x1, x26, x23, lsl 3 bl FlashMemCmp8 - cbnz w0, .L126 - ldrb w1, [x19,3208] + cbnz w0, .L137 + ldrb w1, [x19,3216] str w0, [x24,w1,sxtw 2] add w0, w1, 1 strb w23, [x25,w1,sxtw] - strb w0, [x19,3208] -.L126: + strb w0, [x19,3216] +.L137: add x23, x23, 1 cmp x23, 4 - bne .L127 + bne .L138 add x19, x21, :lo12:.LANCHOR0 - ldrb w0, [x19,3208] - strb w0, [x19,3209] + ldrb w0, [x19,3216] + strb w0, [x19,3217] ldrb w0, [x20,8] cmp w0, 2 - beq .L128 -.L132: + beq .L139 +.L143: add x21, x21, :lo12:.LANCHOR0 ldrb w1, [x20,13] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldrb w0, [x21,3208] + ldrb w0, [x21,3216] ldr x27, [sp,80] mul w0, w0, w1 ldrh w1, [x20,14] ldp x19, x20, [sp,16] mul w0, w0, w1 - strh w0, [x21,3456] + strh w0, [x21,3452] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 96 ret -.L128: +.L139: adrp x24, IDByte ldr w26, [x19,92] mov x23, 0 add x24, x24, :lo12:IDByte - add x25, x19, 3220 - add x27, x19, 3212 -.L131: + add x25, x19, 3228 + add x27, x19, 3220 +.L142: ldrb w2, [x20] mov x0, x22 add x1, x24, x23, lsl 3 bl FlashMemCmp8 - cbnz w0, .L129 + cbnz w0, .L140 ldrb w1, [x20,13] - ldrb w3, [x19,3208] + ldrb w3, [x19,3216] mul w2, w1, w26 ldrh w1, [x20,14] mov x0, x3 @@ -936,18 +996,18 @@ FlashDieInfoInit: mul w1, w2, w1 str w1, [x25,w3,sxtw 2] ldrb w2, [x20,23] - cbz w2, .L130 + cbz w2, .L141 lsl w1, w1, 1 str w1, [x25,w3,sxtw 2] -.L130: +.L141: add w0, w0, 1 strb w23, [x27,x3] - strb w0, [x19,3208] -.L129: + strb w0, [x19,3216] +.L140: add x23, x23, 1 cmp x23, 4 - bne .L131 - b .L132 + bne .L142 + b .L143 .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 .global FlashReadIdbData @@ -958,7 +1018,7 @@ FlashReadIdbData: mov w2, 2048 add x1, x1, :lo12:.LANCHOR0 add x29, sp, 0 - add x1, x1, 3464 + add x1, x1, 3456 bl ftl_memcpy mov w0, 0 ldp x29, x30, [sp], 16 @@ -979,46 +1039,46 @@ FlashLoadPhyInfoInRam: add x21, x21, 504 mov w20, 0 add x23, x23, :lo12:IDByte -.L144: +.L155: ldrb w2, [x21] add x0, x21, 1 mov x1, x23 bl FlashMemCmp8 mov w22, w0 - cbnz w0, .L141 + cbnz w0, .L152 add x0, x19, :lo12:.LANCHOR1 ubfiz x20, x20, 5, 32 add x1, x0, 504 adds x20, x1, x20 - beq .L147 + beq .L158 ldrb w3, [x20,22] mov x2, 0 mov x1, x0 - b .L146 -.L141: + b .L157 +.L152: add w20, w20, 1 add x21, x21, 32 - cmp w20, 83 - bne .L144 - b .L147 -.L146: + cmp w20, 86 + bne .L155 + b .L158 +.L157: add x4, x1, x2, lsl 5 mov w0, w2 - ldrb w4, [x4,3160] + ldrb w4, [x4,3256] cmp w4, w3 - beq .L145 + beq .L156 add x2, x2, 1 cmp x2, 4 - bne .L146 + bne .L157 mov w0, w2 -.L145: +.L156: add x19, x19, :lo12:.LANCHOR1 ubfiz x1, x0, 5, 32 adrp x0, .LANCHOR0 - add x2, x19, 3160 + add x2, x19, 3256 add x0, x0, :lo12:.LANCHOR0 add x1, x2, x1 - add x0, x0, 104 + add x0, x0, 112 mov w2, 32 add x19, x19, 472 bl ftl_memcpy @@ -1028,10 +1088,10 @@ FlashLoadPhyInfoInRam: bl ftl_memcpy ldrh w0, [x19,10] bl FlashBlockAlignInit - b .L142 -.L147: + b .L153 +.L158: mov w22, -1 -.L142: +.L153: mov w0, w22 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -1045,23 +1105,23 @@ FlashLoadPhyInfoInRam: ftl_flash_suspend: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,1160] + ldr x1, [x0,1152] ldr w2, [x1] - str w2, [x0,1168] + str w2, [x0,1160] ldr w2, [x1,4] - str w2, [x0,1172] + str w2, [x0,1164] ldr w2, [x1,8] - str w2, [x0,1176] + str w2, [x0,1168] ldr w2, [x1,12] - str w2, [x0,1180] + str w2, [x0,1172] ldr w2, [x1,304] - str w2, [x0,1184] + str w2, [x0,1176] ldr w2, [x1,308] - str w2, [x0,1188] + str w2, [x0,1180] ldr w2, [x1,336] ldr w1, [x1,344] - str w2, [x0,1192] - str w1, [x0,1196] + str w2, [x0,1184] + str w1, [x0,1188] ret .size ftl_flash_suspend, .-ftl_flash_suspend .align 2 @@ -1072,7 +1132,7 @@ LogAddr2PhyAddr: uxtb w4, w4 add x7, x6, :lo12:.LANCHOR2 mov x9, x6 - add x7, x7, 1200 + add x7, x7, 1192 ldrh w5, [x7,12] ldrh w7, [x7,14] mul w5, w5, w7 @@ -1091,30 +1151,30 @@ LogAddr2PhyAddr: udiv w11, w6, w5 msub w5, w11, w5, w6 uxth w6, w5 - bne .L154 + bne .L165 add x1, x9, :lo12:.LANCHOR2 - ldrb w1, [x1,1228] - cbnz w1, .L154 + ldrb w1, [x1,1220] + cbnz w1, .L165 add x1, x7, :lo12:.LANCHOR0 - add x1, x1, 136 + add x1, x1, 144 ldrh w8, [x1,w8,sxtw 1] -.L154: +.L165: add x7, x7, :lo12:.LANCHOR0 cmp w4, 1 - add x7, x7, 3220 + add x7, x7, 3228 mov w1, 0 ldr w5, [x7,w11,uxtw 2] madd w5, w6, w10, w5 add w5, w5, w8 str w5, [x2] str w11, [x3] - bls .L155 + bls .L166 ldr w1, [x0,4] ldr w0, [x0,60] add w1, w1, 1024 cmp w1, w0 cset w1, eq -.L155: +.L166: mov w0, w1 ret .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -1132,43 +1192,43 @@ FlashReadStatusEN: add x6, x5, x0 uxtb w2, w2 ldr x20, [x5,x0] - ldr x0, [x4,3448] + ldr x0, [x4,104] ldrb w19, [x6,8] ldrb w0, [x0,8] cmp w0, 2 - bne .L158 - add x4, x4, 104 - cbnz w2, .L159 + bne .L169 + add x4, x4, 112 + cbnz w2, .L170 ldrb w2, [x4,13] - b .L167 -.L159: + b .L178 +.L170: ldrb w2, [x4,14] -.L167: +.L178: add x0, x19, 8 add x3, x3, :lo12:.LANCHOR0 add x0, x20, x0, lsl 8 str w2, [x0,8] mov w2, 0 - ldrb w4, [x3,119] - cbz w4, .L162 + ldrb w4, [x3,127] + cbz w4, .L173 add x3, x19, 8 lsl x3, x3, 8 -.L166: +.L177: cmp w2, w4 - bcs .L162 + bcs .L173 add x5, x20, x3 lsl w0, w2, 3 lsr w0, w1, w0 add w2, w2, 1 and w0, w0, 255 str w0, [x5,4] - b .L166 -.L158: + b .L177 +.L169: add x0, x19, 8 mov w1, 112 add x0, x20, x0, lsl 8 str w1, [x0,8] -.L162: +.L173: add x19, x19, 8 mov x0, 400 lsl x19, x19, 8 @@ -1190,15 +1250,20 @@ FlashWaitReadyEN: uxtb w19, w0 mov w20, w1 uxtb w21, w2 -.L172: +.L180: mov w0, w19 mov w1, w20 mov w2, w21 bl FlashReadStatusEN cmp w0, 255 mov w3, w0 - beq .L172 - tbz x3, 6, .L172 + beq .L180 + tbnz x3, 6, .L181 + mov x0, 1 + mov x1, 3 + bl usleep_range + b .L180 +.L181: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -1218,40 +1283,40 @@ ftl_read_flash_info: adrp x1, .LANCHOR0 mov w5, 1 add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,3448] + ldr x0, [x1,104] ldrb w2, [x0,9] ldr w0, [x1,92] - add x1, x1, 3212 mul w0, w0, w2 strh w0, [x19,4] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrb w2, [x0,1229] - ldr w0, [x0,1232] + ldrb w2, [x0,1221] + ldr w0, [x0,1224] str w0, [x19] strb w2, [x19,7] - ldrb w4, [x1,-4] - ldr x0, [x1,236] + ldrb w4, [x1,3216] + ldr x0, [x1,104] ldrb w0, [x0,9] strb w0, [x19,6] mov w0, 32 strb w0, [x19,8] - ldr x0, [x1,236] + ldr x0, [x1,104] + add x1, x1, 3220 ldrb w0, [x0,7] strb w0, [x19,9] mov x0, 0 strb wzr, [x19,10] -.L176: +.L186: cmp w4, w0, uxtb - bls .L178 + bls .L188 ldrb w2, [x0,x1] add x0, x0, 1 ldrb w3, [x19,10] lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L176 -.L178: + b .L186 +.L188: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1262,8 +1327,8 @@ ftl_read_flash_info: FlashScheduleEnSet: adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - ldr w2, [x1,1236] - str w0, [x1,1236] + ldr w2, [x1,1228] + str w0, [x1,1228] mov w0, w2 ret .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -1271,8 +1336,8 @@ FlashScheduleEnSet: .global FlashGetPageSize .type FlashGetPageSize, %function FlashGetPageSize: - adrp x0, .LANCHOR0+3448 - ldr x0, [x0,#:lo12:.LANCHOR0+3448] + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrb w0, [x0,9] ret .size FlashGetPageSize, .-FlashGetPageSize @@ -1301,11 +1366,11 @@ NandcGetChipIf: .global NandcSetDdrPara .type NandcSetDdrPara, %function NandcSetDdrPara: - adrp x1, .LANCHOR2+1160 + adrp x1, .LANCHOR2+1152 uxtb w0, w0 lsl w2, w0, 8 orr w0, w2, w0, lsl 16 - ldr x1, [x1,#:lo12:.LANCHOR2+1160] + ldr x1, [x1,#:lo12:.LANCHOR2+1152] orr w0, w0, 1 str w0, [x1,304] ret @@ -1314,9 +1379,9 @@ NandcSetDdrPara: .global NandcSetDdrDiv .type NandcSetDdrDiv, %function NandcSetDdrDiv: - adrp x1, .LANCHOR2+1160 + adrp x1, .LANCHOR2+1152 uxtb w0, w0 - ldr x2, [x1,#:lo12:.LANCHOR2+1160] + ldr x2, [x1,#:lo12:.LANCHOR2+1152] mov w1, 16640 orr w0, w0, w1 str w0, [x2,344] @@ -1326,9 +1391,9 @@ NandcSetDdrDiv: .global NandcSetDdrMode .type NandcSetDdrMode, %function NandcSetDdrMode: - adrp x1, .LANCHOR2+1160 + adrp x1, .LANCHOR2+1152 cmp w0, wzr - ldr x2, [x1,#:lo12:.LANCHOR2+1160] + ldr x2, [x1,#:lo12:.LANCHOR2+1152] ldr w1, [x2] and w3, w1, -8193 orr w1, w1, 253952 @@ -1340,12 +1405,12 @@ NandcSetDdrMode: .global NandcSetMode .type NandcSetMode, %function NandcSetMode: - adrp x1, .LANCHOR2+1160 + adrp x1, .LANCHOR2+1152 uxtb w0, w0 tst w0, 6 - ldr x2, [x1,#:lo12:.LANCHOR2+1160] + ldr x2, [x1,#:lo12:.LANCHOR2+1152] ldr w1, [x2] - beq .L189 + beq .L199 and w0, w0, 4 orr w1, w1, 24576 cmp w0, wzr @@ -1362,10 +1427,10 @@ NandcSetMode: csel w1, w3, w1, ne mov w0, 39 str w0, [x2,308] - b .L191 -.L189: + b .L201 +.L199: and w1, w1, -8193 -.L191: +.L201: str w1, [x2] mov w0, 0 ret @@ -1420,41 +1485,41 @@ HynixSetRRPara: stp x21, x22, [sp,32] mov x20, x2 mov x26, x23 - ldr x0, [x0,3448] + ldr x0, [x0,104] uxtb w27, w1 uxtb w25, w3 mov x2, x4 add x19, x24, :lo12:.LANCHOR2 ldrb w0, [x0,19] cmp w0, 6 - bne .L197 + bne .L207 add x19, x19, x23, lsl 6 lsl w4, w25, 2 - add x19, x19, 1260 - b .L203 -.L197: + add x19, x19, 1252 + b .L213 +.L207: cmp w0, 7 - bne .L199 + bne .L209 mov x3, 160 mov w4, 10 madd x19, x23, x3, x19 mul w4, w25, w4 - add x19, x19, 1268 -.L203: + add x19, x19, 1260 +.L213: add x19, x19, x4, sxtw - b .L198 -.L199: + b .L208 +.L209: cmp w0, 8 - bne .L200 - add x19, x19, 1268 + bne .L210 + add x19, x19, 1260 add w4, w25, w25, lsl 2 - b .L203 -.L200: + b .L213 +.L210: lsl x4, x23, 3 add x4, x4, x25, sxtw add x19, x19, x4, lsl 3 - add x19, x19, 1260 -.L198: + add x19, x19, 1252 +.L208: add x4, x2, :lo12:.LANCHOR0 lsl x0, x23, 4 add x4, x4, 24 @@ -1469,9 +1534,9 @@ HynixSetRRPara: add x21, x21, x22 mov x22, 0 str w0, [x21,2056] -.L201: +.L211: cmp x22, x27 - beq .L204 + beq .L214 ldrb w0, [x20,x22] str w0, [x21,2052] mov x0, 1000 @@ -1479,15 +1544,15 @@ HynixSetRRPara: ldrsb w0, [x19,x22] add x22, x22, 1 str w0, [x21,2048] - b .L201 -.L204: + b .L211 +.L214: add x24, x24, :lo12:.LANCHOR2 mov w0, 22 add x23, x24, x23 str w0, [x21,2056] mov w0, w26 bl NandcFlashDeCs - strb w25, [x23,2096] + strb w25, [x23,2088] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -1500,10 +1565,10 @@ HynixSetRRPara: .global FlashSetReadRetryDefault .type FlashSetReadRetryDefault, %function FlashSetReadRetryDefault: - adrp x0, .LANCHOR0+3448 + adrp x0, .LANCHOR0+104 stp x29, x30, [sp, -48]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR0+3448] + ldr x0, [x0,#:lo12:.LANCHOR0+104] stp x19, x20, [sp,16] stp x21, x22, [sp,32] mov x19, 0 @@ -1511,27 +1576,27 @@ FlashSetReadRetryDefault: sub w0, w0, #1 uxtb w0, w0 cmp w0, 7 - bhi .L205 + bhi .L215 adrp x20, .LANCHOR2 adrp x21, IDByte add x20, x20, :lo12:.LANCHOR2 add x21, x21, :lo12:IDByte - add x22, x20, 1244 -.L210: + add x22, x20, 1236 +.L220: lsl x1, x19, 3 uxtb w0, w19 ldrb w1, [x1,x21] cmp w1, 173 - bne .L207 - ldrb w1, [x20,1241] + bne .L217 + ldrb w1, [x20,1233] mov x2, x22 mov w3, 0 bl HynixSetRRPara -.L207: +.L217: add x19, x19, 1 cmp x19, 4 - bne .L210 -.L205: + bne .L220 +.L215: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -1551,13 +1616,13 @@ FlashWaitCmdDone: add x20, x20, :lo12:.LANCHOR0 mov x22, x1 mul x1, x1, x2 - add x0, x20, 3252 + add x0, x20, 3260 add x19, x0, x1 ldrb w21, [x0,x1] ldr x0, [x19,8] - cbz x0, .L214 + cbz x0, .L224 mov w0, w21 - add x20, x20, 3220 + add x20, x20, 3228 bl NandcFlashCs ldr w0, [x20,w22,sxtw 2] ldr w1, [x19,4] @@ -1573,10 +1638,10 @@ FlashWaitCmdDone: str w0, [x1] str xzr, [x19,8] ldr x1, [x19,16] - cbz x1, .L214 + cbz x1, .L224 str w0, [x1] str xzr, [x19,16] -.L214: +.L224: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -1609,20 +1674,20 @@ NandcWaitFlashReadyNoDelay: mov w19, 34464 ldr x20, [x1,x0] movk w19, 0x1, lsl 16 -.L222: +.L232: ldr w0, [x20] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L223 + tbnz x0, 9, .L233 mov x0, 50 bl __const_udelay subs w19, w19, #1 - bne .L222 + bne .L232 mov w0, -1 - b .L221 -.L223: + b .L231 +.L233: mov w0, 0 -.L221: +.L231: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1641,22 +1706,23 @@ NandcWaitFlashReady: mov w19, 34464 ldr x20, [x1,x0] movk w19, 0x1, lsl 16 - mov x0, 750 + mov x0, 650 bl __const_udelay -.L227: +.L237: ldr w0, [x20] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L228 - mov x0, 50 - bl __const_udelay + tbnz x0, 9, .L238 + mov x0, 1 + mov x1, 2 + bl usleep_range subs w19, w19, #1 - bne .L227 + bne .L237 mov w0, -1 - b .L226 -.L228: + b .L236 +.L238: mov w0, 0 -.L226: +.L236: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1696,91 +1762,128 @@ FlashReset: .global flash_enter_slc_mode .type flash_enter_slc_mode, %function flash_enter_slc_mode: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -64]! add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR2 + uxtb w22, w0 + add x0, x21, :lo12:.LANCHOR2 + str x23, [sp,48] stp x19, x20, [sp,16] - uxtb w20, w0 - adrp x0, .LANCHOR2+1228 - ldrb w0, [x0,#:lo12:.LANCHOR2+1228] - cbz w0, .L231 - mov w0, w20 + ldrb w0, [x0,1220] + cbz w0, .L241 + mov w0, w22 bl NandcFlashCs - adrp x2, .LANCHOR0 - sbfiz x0, x20, 4, 32 - add x2, x2, :lo12:.LANCHOR0 - add x2, x2, 24 - add x1, x2, x0 - ldr x19, [x2,x0] + adrp x1, .LANCHOR0 + sxtw x0, w22 + add x1, x1, :lo12:.LANCHOR0 + lsl x2, x0, 4 + add x1, x1, 24 + lsl x0, x0, 3 + add x3, x1, x2 + ldr x23, [x1,x2] + adrp x1, IDByte + add x1, x1, :lo12:IDByte + ldrb w19, [x3,8] + ldrb w0, [x1,x0] + cmp w0, 44 + bne .L243 + ubfiz x20, x19, 8, 8 mov w0, 239 - ldrb w1, [x1,8] - add x19, x19, x1, lsl 8 - str w0, [x19,2056] + add x20, x23, x20 + str w0, [x20,2056] mov w0, 145 - str w0, [x19,2052] - mov x0, 500 + str w0, [x20,2052] + mov x0, 250 bl __const_udelay - str wzr, [x19,2048] + str wzr, [x20,2048] mov w0, 1 - str w0, [x19,2048] - str wzr, [x19,2048] + str w0, [x20,2048] + str wzr, [x20,2048] mov x0, 500 - str wzr, [x19,2048] + str wzr, [x20,2048] bl __const_udelay - mov w0, w20 +.L243: + add x19, x19, 8 + mov w0, w22 + add x21, x21, :lo12:.LANCHOR2 + add x19, x23, x19, lsl 8 bl NandcWaitFlashReadyNoDelay mov w0, 218 - str w0, [x19,2056] - mov w0, w20 + str w0, [x19,8] + mov w0, w22 bl NandcWaitFlashReady -.L231: + mov w0, 2 + strb w0, [x21,2092] +.L241: ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldp x21, x22, [sp,32] + ldr x23, [sp,48] + ldp x29, x30, [sp], 64 ret .size flash_enter_slc_mode, .-flash_enter_slc_mode .align 2 .global flash_exit_slc_mode .type flash_exit_slc_mode, %function flash_exit_slc_mode: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -64]! add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR2 + uxtb w22, w0 + add x0, x21, :lo12:.LANCHOR2 + str x23, [sp,48] stp x19, x20, [sp,16] - uxtb w20, w0 - adrp x0, .LANCHOR2+1228 - ldrb w0, [x0,#:lo12:.LANCHOR2+1228] - cbz w0, .L236 - mov w0, w20 + ldrb w0, [x0,1220] + cbz w0, .L247 + mov w0, w22 bl NandcFlashCs - adrp x2, .LANCHOR0 - sbfiz x0, x20, 4, 32 - add x2, x2, :lo12:.LANCHOR0 - add x2, x2, 24 - add x1, x2, x0 - ldr x19, [x2,x0] + adrp x1, .LANCHOR0 + sxtw x0, w22 + add x1, x1, :lo12:.LANCHOR0 + lsl x2, x0, 4 + add x1, x1, 24 + lsl x0, x0, 3 + add x3, x1, x2 + ldr x23, [x1,x2] + adrp x1, IDByte + add x1, x1, :lo12:IDByte + ldrb w19, [x3,8] + ldrb w0, [x1,x0] + cmp w0, 44 + bne .L249 + ubfiz x20, x19, 8, 8 mov w0, 239 - ldrb w1, [x1,8] - add x19, x19, x1, lsl 8 - str w0, [x19,2056] + add x20, x23, x20 + str w0, [x20,2056] mov w0, 145 - str w0, [x19,2052] - mov x0, 500 + str w0, [x20,2052] + mov x0, 250 bl __const_udelay mov w0, 2 - str w0, [x19,2048] + str w0, [x20,2048] mov w0, 1 - str w0, [x19,2048] - str wzr, [x19,2048] + str w0, [x20,2048] + str wzr, [x20,2048] mov x0, 500 - str wzr, [x19,2048] + str wzr, [x20,2048] bl __const_udelay - mov w0, w20 +.L249: + add x19, x19, 8 + mov w0, w22 + add x21, x21, :lo12:.LANCHOR2 + add x19, x23, x19, lsl 8 bl NandcWaitFlashReadyNoDelay mov w0, 223 - str w0, [x19,2056] - mov w0, w20 + str w0, [x19,8] + mov w0, w22 bl NandcWaitFlashReady -.L236: + strb wzr, [x21,2092] +.L247: ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldp x21, x22, [sp,32] + ldr x23, [sp,48] + ldp x29, x30, [sp], 64 ret .size flash_exit_slc_mode, .-flash_exit_slc_mode .align 2 @@ -1818,13 +1921,13 @@ FlashEraseBlock: .global FlashSetInterfaceMode .type FlashSetInterfaceMode, %function FlashSetInterfaceMode: - adrp x1, .LANCHOR2+2100 + adrp x1, .LANCHOR2+2093 adrp x3, .LANCHOR0 stp x29, x30, [sp, -16]! add x3, x3, :lo12:.LANCHOR0 adrp x7, IDByte add x29, sp, 0 - ldrb w1, [x1,#:lo12:.LANCHOR2+2100] + ldrb w1, [x1,#:lo12:.LANCHOR2+2093] add x3, x3, 24 mov x6, 0 add x7, x7, :lo12:IDByte @@ -1837,68 +1940,68 @@ FlashSetInterfaceMode: mov w12, 35 mov w13, 32 mov w14, 5 -.L253: +.L265: ldrb w4, [x6,x7] ldr x1, [x3] cmp w4, 152 ldrb w2, [x3,8] - beq .L243 + beq .L255 cmp w4, 69 - beq .L243 + beq .L255 cmp w4, 173 - beq .L243 + beq .L255 cmp w4, 44 - bne .L244 -.L243: + bne .L256 +.L255: cmp w0, 1 - bne .L246 - cbz w11, .L244 + bne .L258 + cbz w11, .L256 ubfiz x2, x2, 8, 8 cmp w4, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L247 + bne .L259 str w0, [x1,2052] - b .L264 -.L247: + b .L276 +.L259: cmp w4, 44 - bne .L249 + bne .L261 str w0, [x1,2052] str w14, [x1,2048] - b .L251 -.L249: + b .L263 +.L261: str w9, [x1,2052] str w0, [x1,2048] - b .L251 -.L246: - cbz w5, .L244 + b .L263 +.L258: + cbz w5, .L256 ubfiz x2, x2, 8, 8 cmp w4, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L250 + bne .L262 str w10, [x1,2052] str w13, [x1,2048] - b .L251 -.L250: + b .L263 +.L262: cmp w4, 44 - bne .L252 + bne .L264 str w10, [x1,2052] str w12, [x1,2048] - b .L251 -.L252: - str w9, [x1,2052] + b .L263 .L264: + str w9, [x1,2052] +.L276: str wzr, [x1,2048] -.L251: +.L263: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L244: +.L256: add x6, x6, 8 add x3, x3, 16 cmp x6, 32 - bne .L253 + bne .L265 mov w0, 0 bl NandcWaitFlashReady mov w0, 0 @@ -2015,22 +2118,22 @@ SandiskSetRRPara: add x1, x2, x1 add x4, x4, :lo12:g_retryMode mov x2, 0 -.L268: +.L280: ldrb w5, [x0] cmp w5, w2 - bls .L273 + bls .L285 ldrb w5, [x4] cmp w5, 67 - bne .L269 + bne .L281 ldrsb w5, [x3,x2] - b .L272 -.L269: + b .L284 +.L281: ldrsb w5, [x1,x2] -.L272: +.L284: str w5, [x20] add x2, x2, 1 - b .L268 -.L273: + b .L280 +.L285: mov w0, 0 bl NandcWaitFlashReady ldp x19, x20, [sp,16] @@ -2087,11 +2190,11 @@ FlashEraseSLc2KBlocks: mov w24, w1 mov x20, x0 mov w22, 0 - add x25, x21, 3212 + add x25, x21, 3220 add x23, x23, :lo12:.LC1 -.L276: +.L288: cmp w22, w24 - beq .L285 + beq .L297 add x2, x29, 88 sub w4, w24, w22 mov x0, x20 @@ -2099,19 +2202,19 @@ FlashEraseSLc2KBlocks: add x3, x29, 92 bl LogAddr2PhyAddr ldr w2, [x29,92] - ldrb w0, [x21,3208] + ldrb w0, [x21,3216] cmp w2, w0 - bcc .L277 + bcc .L289 mov w0, -1 str w0, [x20] - b .L278 -.L277: + b .L290 +.L289: uxtw x2, w2 mov x0, 24 ldrb w19, [x25,x2] madd x2, x2, x0, x21 mov w0, w19 - strb w19, [x2,3252] + strb w19, [x2,3260] bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs @@ -2137,24 +2240,24 @@ FlashEraseSLc2KBlocks: ldr w1, [x29,88] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L279 + tbz x0, 0, .L291 mov w0, -1 str w0, [x20] -.L279: +.L291: ldr w0, [x20] cmn w0, #1 - bne .L280 + bne .L292 ldr w1, [x29,88] mov x0, x23 bl printk -.L280: +.L292: mov w0, w19 bl NandcFlashDeCs -.L278: +.L290: add w22, w22, 1 add x20, x20, 56 - b .L276 -.L285: + b .L288 +.L297: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -2164,6 +2267,172 @@ FlashEraseSLc2KBlocks: ret .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks .align 2 + .global FlashEraseBlocks + .type FlashEraseBlocks, %function +FlashEraseBlocks: + stp x29, x30, [sp, -128]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR0 + mov w20, 0 + stp x25, x26, [sp,64] + mov w26, w1 + add x1, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] + stp x21, x22, [sp,32] + stp x27, x28, [sp,80] + mov x24, x0 + mov w23, w2 + ldrb w1, [x1,88] + cbz w1, .L299 + mov w1, w2 + bl FlashEraseSLc2KBlocks + b .L300 +.L299: + mov w27, 56 + adrp x28, .LANCHOR2 + mov x25, 24 +.L330: + cmp w20, w23 + bcs .L331 + umull x5, w20, w27 + mov w1, 0 + add x2, x29, 120 + add x21, x24, x5 + sub w4, w23, w20 + mov x0, x21 + add x3, x29, 124 + str x5, [x29,104] + bl LogAddr2PhyAddr + mov w22, w0 + add x1, x19, :lo12:.LANCHOR0 + ldr w0, [x29,124] + ldr x5, [x29,104] + ldrb w2, [x1,3216] + cmp w0, w2 + bcc .L301 + mov w0, -1 + str w0, [x24,x5] + b .L302 +.L301: + add x2, x28, :lo12:.LANCHOR2 + add x1, x1, 3260 + ldrb w2, [x2,2094] + cmp w2, wzr + uxtw x2, w0 + csel w22, w22, wzr, ne + madd x1, x2, x25, x1 + ldr x1, [x1,8] + cbz x1, .L304 + bl FlashWaitCmdDone +.L304: + add x0, x19, :lo12:.LANCHOR0 + ldr w1, [x29,124] + add x0, x0, 3260 + ldr w2, [x29,120] + madd x0, x1, x25, x0 + str x21, [x0,8] + str xzr, [x0,16] + str w2, [x0,4] + cbz w22, .L305 + add w2, w20, 1 + umull x2, w2, w27 + add x2, x24, x2 + str x2, [x0,16] +.L305: + add x0, x19, :lo12:.LANCHOR0 + add x2, x0, 3220 + ldrb w21, [x2,x1] + madd x1, x1, x25, x0 + mov w0, w21 + strb w21, [x1,3260] + bl NandcFlashCs + cmp w26, 1 + bne .L306 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldrb w0, [x0,1220] + cbz w0, .L306 + mov w0, w21 + bl flash_enter_slc_mode + b .L307 +.L306: + mov w0, w21 + bl flash_exit_slc_mode +.L307: + add x0, x19, :lo12:.LANCHOR0 + ldr w1, [x29,124] + add x0, x0, 3228 + add w20, w20, w22 + ldr w0, [x0,x1,lsl 2] + ldr w1, [x29,120] + cmp w0, wzr + mov w0, w21 + cset w2, ne + bl FlashWaitReadyEN + ldr w1, [x29,120] + mov w0, w21 + mov w2, w22 + bl FlashEraseCmd + mov w0, w21 + bl NandcFlashDeCs +.L302: + add w20, w20, 1 + b .L330 +.L331: + add x19, x19, :lo12:.LANCHOR0 + mov x20, 0 + adrp x21, .LANCHOR2 + add x22, x19, 3260 + mov x25, 24 +.L309: + ldrb w0, [x19,3216] + cmp w0, w20 + bls .L332 + mov w0, w20 + bl FlashWaitCmdDone + cmp w26, 1 + bne .L310 + add x0, x21, :lo12:.LANCHOR2 + ldrb w0, [x0,1220] + cbz w0, .L310 + mul x0, x20, x25 + ldrb w0, [x0,x22] + bl flash_exit_slc_mode +.L310: + add x20, x20, 1 + b .L309 +.L332: + adrp x0, .LANCHOR2+2096 + ldr w0, [x0,#:lo12:.LANCHOR2+2096] + cbnz w0, .L312 +.L314: + mov w0, 0 + b .L300 +.L312: + adrp x0, IDByte + ldrb w0, [x0,#:lo12:IDByte] + cmp w0, 69 + bne .L314 + mov x0, 0 + mov x1, 56 +.L313: + cmp w23, w0 + bls .L314 + mul x2, x0, x1 + add x0, x0, 1 + str wzr, [x24,x2] + b .L313 +.L300: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 128 + ret + .size FlashEraseBlocks, .-FlashEraseBlocks + .align 2 .global HynixGetReadRetryDefault .type HynixGetReadRetryDefault, %function HynixGetReadRetryDefault: @@ -2176,28 +2445,28 @@ HynixGetReadRetryDefault: stp x25, x26, [sp,64] mov w26, w0 add x0, x20, :lo12:.LANCHOR2 - add x1, x0, 1240 + add x1, x0, 1232 cmp w26, 2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - strb w26, [x0,1240] + strb w26, [x0,1232] mov w0, -84 strb w4, [x1,5] strb w0, [x1,4] mov w0, -81 strb w3, [x1,6] strb w0, [x1,7] - bne .L287 + bne .L334 mov w0, -89 strb w0, [x1,4] - adrp x0, .LANCHOR1+3305 + adrp x0, .LANCHOR1+3401 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+3305] - b .L350 -.L287: + strb w1, [x0,#:lo12:.LANCHOR1+3401] + b .L397 +.L334: cmp w26, 3 - bne .L289 + bne .L336 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -2213,10 +2482,10 @@ HynixGetReadRetryDefault: mov w0, -74 strb w0, [x1,10] mov w0, -73 - b .L390 -.L289: + b .L437 +.L336: cmp w26, 4 - bne .L290 + bne .L337 mov w5, -52 strb w5, [x1,4] mov w5, -65 @@ -2229,14 +2498,14 @@ HynixGetReadRetryDefault: mov w5, -51 strb w3, [x1,10] strb w5, [x1,8] -.L390: +.L437: mov w28, 8 strb w0, [x1,11] mov w27, w28 - b .L288 -.L290: + b .L335 +.L337: cmp w26, 5 - bne .L291 + bne .L338 mov w0, 56 strb w0, [x1,4] mov w0, 57 @@ -2246,10 +2515,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 59 strb w0, [x1,7] - b .L391 -.L291: + b .L438 +.L338: cmp w26, 6 - bne .L292 + bne .L339 mov w0, 14 strb w0, [x1,4] mov w0, 15 @@ -2259,10 +2528,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 17 strb w0, [x1,7] - b .L391 -.L292: + b .L438 +.L339: cmp w26, 7 - bne .L293 + bne .L340 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -2285,10 +2554,10 @@ HynixGetReadRetryDefault: mov w27, 10 mov w0, -43 strb w0, [x1,13] - b .L288 -.L293: + b .L335 +.L340: cmp w26, 8 - bne .L350 + bne .L397 mov w0, 6 strb w0, [x1,4] mov w0, 7 @@ -2300,29 +2569,29 @@ HynixGetReadRetryDefault: mov w0, 10 mov w27, 5 strb w0, [x1,8] - b .L288 -.L350: + b .L335 +.L397: mov w28, 7 -.L391: +.L438: mov w27, 4 -.L288: +.L335: sub w0, w26, #1 cmp w0, 1 - bhi .L387 + bhi .L434 adrp x23, .LANCHOR0 adrp x24, .LANCHOR1 add x23, x23, :lo12:.LANCHOR0 add x24, x24, :lo12:.LANCHOR1 mov w21, 0 - add x4, x23, 3212 + add x4, x23, 3220 add x5, x20, :lo12:.LANCHOR2 - add x24, x24, 3288 -.L294: - ldrb w0, [x23,3208] + add x24, x24, 3384 +.L341: + ldrb w0, [x23,3216] cmp w0, w21 - bls .L301 + bls .L348 ldrb w1, [x4,w21,sxtw] - add x0, x5, 1240 + add x0, x5, 1232 add x2, x23, 24 mov x25, 0 mov x22, x0 @@ -2334,7 +2603,7 @@ HynixGetReadRetryDefault: ldrb w1, [x3,8] add x26, x26, x1, lsl 8 mov w1, 55 -.L296: +.L343: add x0, x22, x25 str w1, [x26,2056] str x5, [x29,120] @@ -2351,12 +2620,12 @@ HynixGetReadRetryDefault: cmp w27, w25, uxtb ldr x4, [x29,128] ldr x5, [x29,120] - bhi .L296 + bhi .L343 mov x0, 0 -.L297: +.L344: add w2, w0, 8 mov x1, 0 -.L298: +.L345: add x3, x1, x0 add x1, x1, 4 add x3, x24, x3 @@ -2366,10 +2635,10 @@ HynixGetReadRetryDefault: add w3, w6, w3 strb w3, [x19,w2,sxtw] add w2, w2, 8 - bne .L298 + bne .L345 add x0, x0, 1 cmp x0, 4 - bne .L297 + bne .L344 add w21, w21, 1 strb wzr, [x19,16] strb wzr, [x19,24] @@ -2379,11 +2648,11 @@ HynixGetReadRetryDefault: strb wzr, [x19,48] strb wzr, [x19,41] strb wzr, [x19,49] - b .L294 -.L387: + b .L341 +.L434: sub w0, w26, #3 cmp w0, 5 - bhi .L301 + bhi .L348 mul w0, w27, w28 adrp x24, .LANCHOR0 sub w25, w27, #1 @@ -2394,28 +2663,28 @@ HynixGetReadRetryDefault: lsl w0, w23, 1 uxtb x25, w25 str w0, [x29,128] - add x0, x24, 3212 + add x0, x24, 3220 mov w21, 0 str x0, [x29,120] add x0, x25, 1 str x0, [x29,112] -.L302: - ldrb w0, [x24,3208] +.L349: + ldrb w0, [x24,3216] adrp x25, .LANCHOR0 cmp w0, w21 - bhi .L348 -.L301: + bhi .L395 +.L348: add x20, x20, :lo12:.LANCHOR2 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - strb w27, [x20,1241] - strb w28, [x20,1242] + strb w27, [x20,1233] + strb w28, [x20,1234] ldp x25, x26, [sp,64] ldp x19, x20, [sp,16] ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L348: +.L395: ldr x0, [x29,120] ldrb w1, [x0,w21,sxtw] add x0, x24, 24 @@ -2433,50 +2702,50 @@ HynixGetReadRetryDefault: cmp w26, 7 sub w7, w26, #5 ldr x1, [x29,104] - bne .L303 + bne .L350 add x3, x20, :lo12:.LANCHOR2 mov x0, 160 madd x3, x1, x0, x3 - add x3, x3, 1268 - b .L304 -.L303: + add x3, x3, 1260 + b .L351 +.L350: cmp w26, 8 - beq .L305 + beq .L352 add x3, x20, :lo12:.LANCHOR2 add x3, x3, x1, lsl 6 - add x3, x3, 1260 -.L304: + add x3, x3, 1252 +.L351: mov w0, 54 cmp w26, 4 str w0, [x19,2056] - bne .L306 + bne .L353 mov w0, 255 str w0, [x19,2052] mov w0, 64 str w0, [x19,2048] mov w0, 204 - b .L392 -.L306: + b .L439 +.L353: cmp w7, 1 - bhi .L308 + bhi .L355 add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1244] + ldrb w0, [x0,1236] str w0, [x19,2052] mov w0, 82 - b .L393 -.L308: + b .L440 +.L355: cmp w26, 7 - bne .L307 + bne .L354 mov w0, 174 str w0, [x19,2052] str wzr, [x19,2048] mov w0, 176 -.L392: +.L439: str w0, [x19,2052] mov w0, 77 -.L393: +.L440: str w0, [x19,2048] -.L307: +.L354: mov w0, 22 str w0, [x19,2056] mov w0, 23 @@ -2489,17 +2758,17 @@ HynixGetReadRetryDefault: cmp w26, 6 str wzr, [x19,2052] str wzr, [x19,2052] - bne .L309 + bne .L356 mov w0, 31 str w0, [x19,2052] - b .L310 -.L309: + b .L357 +.L356: str wzr, [x19,2052] -.L310: +.L357: mov w0, 2 str w0, [x19,2052] str wzr, [x19,2052] -.L349: +.L396: mov w0, 48 str w0, [x19,2056] mov w0, w22 @@ -2512,115 +2781,115 @@ HynixGetReadRetryDefault: cset w8, ls cmp w26, 8 cset w7, eq - cbnz w8, .L352 - cbnz w7, .L352 + cbnz w8, .L399 + cbnz w7, .L399 cmp w26, 7 mov w1, 32 mov w0, 2 csel w1, w0, w1, ne - b .L311 -.L352: + b .L358 +.L399: mov w1, 16 -.L311: +.L358: ldr x0, [x25,#:lo12:.LANCHOR0] mov x9, 0 -.L312: +.L359: ldr w10, [x19,2048] strb w10, [x0,x9] add x9, x9, 1 cmp w1, w9, uxtb - bhi .L312 - cbz w7, .L313 + bhi .L359 + cbz w7, .L360 mov w1, 0 -.L315: +.L362: ldrb w9, [x0] cmp w9, 50 - beq .L314 + beq .L361 ldrb w9, [x0,1] cmp w9, 5 - beq .L314 + beq .L361 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L315 - b .L316 -.L314: + bne .L362 + b .L363 +.L361: cmp w1, 6 - bls .L317 -.L316: + bls .L364 +.L363: adrp x0, .LC2 mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L318: - b .L318 -.L313: +.L365: + b .L365 +.L360: cmp w26, 7 - bne .L319 + bne .L366 mov w1, w7 -.L321: +.L368: ldrb w9, [x0] cmp w9, 12 - beq .L320 + beq .L367 ldrb w9, [x0,1] cmp w9, 10 - beq .L320 + beq .L367 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L321 - b .L322 -.L320: + bne .L368 + b .L369 +.L367: cmp w1, 7 - bne .L317 -.L322: + bne .L364 +.L369: adrp x0, .LC2 mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L323: - b .L323 -.L319: +.L370: + b .L370 +.L366: cmp w26, 6 - bne .L317 + bne .L364 mov x1, 0 -.L324: +.L371: ldrb w9, [x0,x1] cmp w9, 12 - beq .L317 + beq .L364 add x9, x0, x1 ldrb w9, [x9,8] cmp w9, 4 - beq .L317 + beq .L364 add x1, x1, 1 cmp x1, 8 - bne .L324 + bne .L371 adrp x0, .LC2 mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L326: - b .L326 -.L317: +.L373: + b .L373 +.L364: ldr x10, [x25,#:lo12:.LANCHOR0] mov x0, 0 -.L327: +.L374: ldr w1, [x29,136] cmp w1, w0 - ble .L395 + ble .L442 ldr w1, [x19,2048] strb w1, [x10,x0] add x0, x0, 1 - b .L327 -.L395: + b .L374 +.L442: ldr x12, [x25,#:lo12:.LANCHOR0] mov w11, w23 mov w9, 8 -.L330: +.L377: mov w0, 0 -.L329: +.L376: add w1, w0, w11 add w0, w0, 1 sbfiz x1, x1, 1, 32 @@ -2628,53 +2897,53 @@ HynixGetReadRetryDefault: ldrh w13, [x12,x1] mvn w13, w13 strh w13, [x12,x1] - bne .L329 + bne .L376 ldr w0, [x29,128] subs w9, w9, #1 add w11, w11, w0 - bne .L330 + bne .L377 mov x9, 0 mov w17, 1 -.L331: +.L378: mov w1, 0 mov w11, w1 -.L335: +.L382: lsl w13, w17, w11 mov w15, w9 mov w0, 16 mov w14, 0 -.L333: +.L380: ldrh w16, [x12,w15,sxtw 1] add w15, w15, w23 and w16, w16, w13 cmp w16, w13 csinc w14, w14, w14, ne subs w0, w0, #1 - bne .L333 + bne .L380 cmp w14, 8 - bls .L334 + bls .L381 orr w1, w1, w13 uxth w1, w1 -.L334: +.L381: add w11, w11, 1 cmp w11, 16 - bne .L335 + bne .L382 strh w1, [x12,x9,lsl 1] add x9, x9, 1 cmp w23, w9 - bgt .L331 + bgt .L378 mov x6, 0 ldr x1, [x25,#:lo12:.LANCHOR0] mov w9, w6 -.L338: +.L385: ldr w11, [x1,x6] add x6, x6, 4 cmp w11, wzr csinc w9, w9, w9, ne cmp x6, 32 - bne .L338 + bne .L385 cmp w9, 7 - ble .L339 + ble .L386 adrp x0, .LC3 mov w2, 1 add x0, x0, :lo12:.LC3 @@ -2684,36 +2953,36 @@ HynixGetReadRetryDefault: mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L340: - b .L340 -.L339: +.L387: + b .L387 +.L386: cmp w26, 6 mov w6, 4 - beq .L341 + beq .L388 cmp w26, 7 mov w6, 10 - beq .L341 + beq .L388 cmp w7, wzr mov w6, 5 mov w1, 8 csel w6, w1, w6, eq -.L341: +.L388: mov w9, 0 -.L342: +.L389: mov x1, 0 -.L343: +.L390: add w11, w0, w1 ldrb w12, [x10,x1] add x1, x1, 1 cmp w27, w1, uxtb strb w12, [x3,w11,sxtw] - bhi .L343 + bhi .L390 add w9, w9, 1 ldr x1, [x29,112] cmp w9, w28 add w0, w0, w6 add x10, x10, x1 - blt .L342 + blt .L389 mov w0, 255 str w0, [x19,2056] mov w0, w22 @@ -2722,32 +2991,32 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr x8, [x29,104] ldr x7, [x29,96] - cbz w8, .L345 + cbz w8, .L392 mov w0, 54 str w0, [x19,2056] - adrp x0, .LANCHOR2+1244 + adrp x0, .LANCHOR2+1236 mov w1, -1 - ldrb w0, [x0,#:lo12:.LANCHOR2+1244] + ldrb w0, [x0,#:lo12:.LANCHOR2+1236] str w0, [x19,2052] mov w0, 22 str wzr, [x19,2048] str w0, [x19,2056] mov w0, w21 bl FlashReadCmd - b .L346 -.L345: + b .L393 +.L392: mov w0, 190 - cbnz w7, .L394 + cbnz w7, .L441 mov w0, 56 -.L394: +.L441: str w0, [x19,2056] -.L346: +.L393: mov w0, w22 add w21, w21, 1 bl NandcWaitFlashReady uxtb w21, w21 - b .L302 -.L305: + b .L349 +.L352: mov w0, 120 str w0, [x19,2056] str wzr, [x19,2052] @@ -2759,7 +3028,7 @@ HynixGetReadRetryDefault: str w0, [x19,2056] mov w0, 4 str w0, [x19,2056] - add x3, x3, 1268 + add x3, x3, 1260 str w1, [x19,2056] mov w1, 218 str w1, [x19,2056] @@ -2770,7 +3039,7 @@ HynixGetReadRetryDefault: str w1, [x19,2052] str w0, [x19,2052] str wzr, [x19,2052] - b .L349 + b .L396 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 .global FlashGetReadRetryDefault @@ -2779,19 +3048,19 @@ FlashGetReadRetryDefault: stp x29, x30, [sp, -16]! mov w1, w0 add x29, sp, 0 - cbz w0, .L396 + cbz w0, .L443 sub w2, w0, #1 cmp w2, 7 - bhi .L398 + bhi .L445 bl HynixGetReadRetryDefault - b .L396 -.L398: + b .L443 +.L445: cmp w0, 49 - bne .L399 + bne .L446 adrp x0, .LANCHOR2 mov w2, 64 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1244 + add x0, x0, 1236 strb w1, [x0,-4] mov w1, 4 strb w1, [x0,-3] @@ -2800,49 +3069,49 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 408 - b .L414 -.L399: + b .L461 +.L446: sub w0, w0, #65 cmp w0, 1 - bls .L405 + bls .L452 cmp w1, 33 - bne .L400 -.L405: + bne .L447 +.L452: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - strb w1, [x0,1240] + strb w1, [x0,1232] mov w1, 4 - b .L415 -.L400: + b .L462 +.L447: cmp w1, 67 - beq .L406 + beq .L453 cmp w1, 34 - bne .L402 -.L406: + bne .L449 +.L453: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - strb w1, [x0,1240] + strb w1, [x0,1232] mov w1, 5 -.L415: - strb w1, [x0,1241] +.L462: + strb w1, [x0,1233] mov w1, 7 - strb w1, [x0,1242] + strb w1, [x0,1234] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, 1244 + add x0, x0, 1236 add x1, x1, 256 mov w2, 45 - b .L414 -.L402: + b .L461 +.L449: cmp w1, 68 - beq .L407 + beq .L454 cmp w1, 35 - bne .L396 -.L407: + bne .L443 +.L454: adrp x0, .LANCHOR2 mov w2, 95 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1244 + add x0, x0, 1236 strb w1, [x0,-4] mov w1, 5 strb w1, [x0,-3] @@ -2851,9 +3120,9 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 304 -.L414: +.L461: bl ftl_memcpy -.L396: +.L443: ldp x29, x30, [sp], 16 ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault @@ -2863,37 +3132,47 @@ FlashGetReadRetryDefault: FlashReadDpCmd: stp x29, x30, [sp, -80]! adrp x3, .LANCHOR0 + and w8, w1, 255 add x29, sp, 0 stp x21, x22, [sp,32] - add x3, x3, :lo12:.LANCHOR0 + add x6, x3, :lo12:.LANCHOR0 uxtb w21, w0 - add x4, x3, 24 sbfiz x0, x21, 4, 32 - add x3, x3, 104 - str x23, [sp,48] + add x4, x6, 24 stp x19, x20, [sp,16] - add x5, x4, x0 + str x23, [sp,48] + add x7, x4, x0 and w23, w2, 255 - ldr x6, [x4,x0] lsr w22, w2, 8 - ldrb w0, [x3,16] - lsr w4, w1, 8 - ldrb w19, [x5,8] + ldr x5, [x4,x0] lsr w20, w2, 16 + ldrb w0, [x6,128] + ldr x2, [x6,104] cmp w0, 1 - and w5, w1, 255 + ldrb w19, [x7,8] lsr w0, w1, 16 - bne .L417 - add x19, x6, x19, lsl 8 - ldrb w2, [x3,8] + lsr w7, w1, 8 + ldrb w2, [x2,7] + bne .L464 + cmp w2, 1 + bne .L465 + sxtw x4, w19 + mov w2, 38 + add x4, x4, 8 + add x4, x5, x4, lsl 8 + str w2, [x4,8] +.L465: + add x3, x3, :lo12:.LANCHOR0 + add x19, x5, x19, lsl 8 str x1, [x29,72] + ldrb w2, [x3,120] str w2, [x19,2056] str wzr, [x19,2052] str wzr, [x19,2052] - str w5, [x19,2052] - str w4, [x19,2052] + str w8, [x19,2052] + str w7, [x19,2052] str w0, [x19,2052] - ldrb w0, [x3,9] + ldrb w0, [x3,121] str w0, [x19,2056] mov w0, w21 bl NandcWaitFlashReady @@ -2906,22 +3185,31 @@ FlashReadDpCmd: str w20, [x19,2052] str w0, [x19,2056] ldr x1, [x29,72] - b .L418 -.L417: - add x19, x6, x19, lsl 8 - ldrb w2, [x3,8] + b .L466 +.L464: + cmp w2, 1 + bne .L467 + sxtw x4, w19 + mov w2, 38 + add x4, x4, 8 + add x4, x5, x4, lsl 8 + str w2, [x4,8] +.L467: + add x3, x3, :lo12:.LANCHOR0 + add x19, x5, x19, lsl 8 + ldrb w2, [x3,120] str w2, [x19,2056] - str w5, [x19,2052] - str w4, [x19,2052] + str w8, [x19,2052] + str w7, [x19,2052] str w0, [x19,2052] - ldrb w0, [x3,9] + ldrb w0, [x3,121] str w0, [x19,2056] mov w0, 48 str w23, [x19,2052] str w22, [x19,2052] str w20, [x19,2052] str w0, [x19,2056] -.L418: +.L466: mov w0, w21 bl FlashSetRandomizer ldr x23, [sp,48] @@ -2942,25 +3230,25 @@ ftl_flash_de_init: bl NandcWaitFlashReady bl FlashSetReadRetryDefault add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2104] - cbz w0, .L420 + ldr w0, [x0,2100] + cbz w0, .L469 mov w0, 0 bl flash_enter_slc_mode - b .L421 -.L420: + b .L470 +.L469: bl flash_exit_slc_mode -.L421: +.L470: add x19, x19, :lo12:.LANCHOR2 - ldrb w0, [x19,2108] - cbz w0, .L422 - ldrb w0, [x19,2100] - tbz x0, 0, .L422 + ldrb w0, [x19,2104] + cbz w0, .L471 + ldrb w0, [x19,2093] + tbz x0, 0, .L471 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x19,2108] -.L422: + strb wzr, [x19,2104] +.L471: adrp x0, .LANCHOR0+24 ldr x0, [x0,#:lo12:.LANCHOR0+24] str wzr, [x0,336] @@ -2997,37 +3285,37 @@ NandcTimeCfg: add x1, x1, :lo12:.LANCHOR2 sdiv w0, w0, w2 cmp w0, 250 - ble .L431 - ldr x0, [x1,1160] + ble .L480 + ldr x0, [x1,1152] mov w1, 8354 - b .L438 -.L431: + b .L487 +.L480: cmp w0, 220 - ble .L433 - ldr x0, [x1,1160] - b .L439 -.L433: + ble .L482 + ldr x0, [x1,1152] + b .L488 +.L482: cmp w0, 185 - ble .L434 - ldr x0, [x1,1160] + ble .L483 + ldr x0, [x1,1152] mov w1, 4226 - b .L438 -.L434: + b .L487 +.L483: cmp w0, 160 - ldr x0, [x1,1160] - ble .L435 + ldr x0, [x1,1152] + ble .L484 mov w1, 4194 - b .L438 -.L435: + b .L487 +.L484: cmp w19, 35 mov w1, 4193 - bls .L438 + bls .L487 cmp w19, 99 mov w1, 4225 - bls .L438 -.L439: + bls .L487 +.L488: mov w1, 8322 -.L438: +.L487: str w1, [x0,4] ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -3043,15 +3331,15 @@ FlashTimingCfg: and w1, w1, -33 cmp w1, 1 add x29, sp, 0 - bls .L441 + bls .L490 mov w1, 8322 cmp w0, w1 - bne .L442 -.L441: - adrp x1, .LANCHOR2+1160 - ldr x1, [x1,#:lo12:.LANCHOR2+1160] + bne .L491 +.L490: + adrp x1, .LANCHOR2+1152 + ldr x1, [x1,#:lo12:.LANCHOR2+1152] str w0, [x1,4] -.L442: +.L491: adrp x0, .LANCHOR1+493 ldrb w0, [x0,#:lo12:.LANCHOR1+493] bl NandcTimeCfg @@ -3081,29 +3369,29 @@ NandcInit: str x0, [x1,16] str x0, [x1,32] str x0, [x1,48] - str x0, [x2,1160] + str x0, [x2,1152] ldr w1, [x0] ubfx x3, x1, 13, 1 - str w3, [x2,2112] + str w3, [x2,2108] ldr w3, [x0,352] and w1, w1, 245760 orr w1, w1, 256 ubfx x3, x3, 16, 4 - str w3, [x2,2116] + str w3, [x2,2112] ldr w3, [x0,352] - str w3, [x2,2120] - cmp w3, 2049 - bne .L444 - mov w3, 8 str w3, [x2,2116] -.L444: + cmp w3, 2049 + bne .L493 + mov w3, 8 + str w3, [x2,2112] +.L493: add x19, x19, :lo12:.LANCHOR2 str w1, [x0] - ldr x0, [x19,1160] + ldr x0, [x19,1152] str wzr, [x0,336] mov w0, 40 bl NandcTimeCfg - ldr x0, [x19,1160] + ldr x0, [x19,1152] mov w1, 8322 str w1, [x0,344] mov w1, 6145 @@ -3111,12 +3399,12 @@ NandcInit: str w1, [x0,304] mov w0, 36864 bl ftl_malloc - str wzr, [x19,2176] + str wzr, [x19,2168] + str x0, [x19,2120] str x0, [x19,2128] - str x0, [x19,2136] add x0, x0, 32768 - str wzr, [x19,2184] - str x0, [x19,2144] + str wzr, [x19,2176] + str x0, [x19,2136] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3127,16 +3415,16 @@ NandcInit: NandcGetTimeCfg: adrp x4, .LANCHOR2 add x4, x4, :lo12:.LANCHOR2 - ldr x5, [x4,1160] + ldr x5, [x4,1152] ldr w5, [x5,4] str w5, [x0] - ldr x0, [x4,1160] + ldr x0, [x4,1152] ldr w0, [x0] str w0, [x1] - ldr x0, [x4,1160] + ldr x0, [x4,1152] ldr w0, [x0,304] str w0, [x2] - ldr x1, [x4,1160] + ldr x1, [x4,1152] ldr w0, [x1,308] ldr w1, [x1,344] and w0, w0, 255 @@ -3153,25 +3441,25 @@ NandcBchSel: add x1, x1, :lo12:.LANCHOR2 mov w3, 1 cmp w0, 16 - ldr x2, [x1,1160] - str w0, [x1,2188] + ldr x2, [x1,1152] + str w0, [x1,2180] mov w1, 4096 str w3, [x2,8] - bne .L447 -.L450: + bne .L496 +.L499: and w1, w1, -17 - b .L448 -.L447: + b .L497 +.L496: cmp w0, 24 - bne .L449 + bne .L498 orr w1, w1, 16 - b .L448 -.L449: + b .L497 +.L498: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L450 -.L448: + beq .L499 +.L497: orr w1, w1, 1 str w1, [x2,12] ret @@ -3181,10 +3469,10 @@ NandcBchSel: .type FlashBchSel, %function FlashBchSel: stp x29, x30, [sp, -16]! - adrp x1, .LANCHOR2+1229 + adrp x1, .LANCHOR2+1221 uxtb w0, w0 add x29, sp, 0 - strb w0, [x1,#:lo12:.LANCHOR2+1229] + strb w0, [x1,#:lo12:.LANCHOR2+1221] bl NandcBchSel ldp x29, x30, [sp], 16 ret @@ -3202,53 +3490,53 @@ ftl_flash_resume: adrp x21, IDByte mov x20, 0 add x21, x21, :lo12:IDByte - ldr x1, [x0,1160] - ldr w2, [x0,1168] + ldr x1, [x0,1152] + ldr w2, [x0,1160] str w2, [x1] - ldr w2, [x0,1172] - ldr x1, [x0,1160] + ldr w2, [x0,1164] + ldr x1, [x0,1152] str w2, [x1,4] - ldr w2, [x0,1176] - ldr x1, [x0,1160] + ldr w2, [x0,1168] + ldr x1, [x0,1152] str w2, [x1,8] - ldr w2, [x0,1180] + ldr w2, [x0,1172] str w2, [x1,12] - ldr w2, [x0,1184] + ldr w2, [x0,1176] str w2, [x1,304] - ldr w2, [x0,1188] + ldr w2, [x0,1180] str w2, [x1,308] - ldr w2, [x0,1192] + ldr w2, [x0,1184] str w2, [x1,336] - ldr w0, [x0,1196] + ldr w0, [x0,1188] str w0, [x1,344] -.L457: +.L506: lsl x0, x20, 3 ldrb w0, [x0,x21] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L456 + bhi .L505 mov w0, w20 bl FlashReset -.L456: +.L505: add x20, x20, 1 cmp x20, 4 - bne .L457 + bne .L506 add x19, x19, :lo12:.LANCHOR2 - ldrb w0, [x19,2108] - cbz w0, .L458 + ldrb w0, [x19,2104] + cbz w0, .L507 mov w0, 1 bl NandcSetMode - ldrb w0, [x19,2100] + ldrb w0, [x19,2093] bl FlashSetInterfaceMode - ldrb w0, [x19,2100] + ldrb w0, [x19,2093] bl NandcSetMode - ldr w0, [x19,1184] + ldr w0, [x19,1176] lsr w0, w0, 8 bl NandcSetDdrPara -.L458: - adrp x0, .LANCHOR0+3448 - ldr x0, [x0,#:lo12:.LANCHOR0+3448] +.L507: + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrb w0, [x0,20] bl FlashBchSel ldr x21, [sp,32] @@ -3267,204 +3555,9 @@ ftl_nandc_get_irq_status: .global NandcIqrWaitFlashReady .type NandcIqrWaitFlashReady, %function NandcIqrWaitFlashReady: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - str x19, [sp,16] - mov x19, x0 - bl rk_nandc_rb_irq_flag_init - ldr w0, [x19,368] - orr w0, w0, 2 - str w0, [x19,368] - ldr w0, [x19,364] - orr w0, w0, 2 - str w0, [x19,364] - ldr w0, [x19] - tbnz x0, 9, .L465 - mov x0, x19 - bl wait_for_nand_flash_ready - b .L464 -.L465: - ldr w0, [x19,368] - orr w0, w0, 2 - str w0, [x19,368] - ldr w0, [x19,364] - and w0, w0, -3 - str w0, [x19,364] -.L464: - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 ret .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady .align 2 - .global FlashEraseBlocks - .type FlashEraseBlocks, %function -FlashEraseBlocks: - stp x29, x30, [sp, -128]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - mov w20, 0 - stp x25, x26, [sp,64] - mov w26, w1 - add x1, x19, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - mov x24, x0 - mov w23, w2 - ldrb w1, [x1,88] - cbz w1, .L468 - mov w1, w2 - bl FlashEraseSLc2KBlocks - b .L469 -.L468: - mov w27, 56 - adrp x28, .LANCHOR2 - mov x25, 24 -.L499: - cmp w20, w23 - bcs .L500 - umull x5, w20, w27 - mov w1, 0 - add x2, x29, 120 - add x21, x24, x5 - sub w4, w23, w20 - mov x0, x21 - add x3, x29, 124 - str x5, [x29,104] - bl LogAddr2PhyAddr - mov w22, w0 - add x1, x19, :lo12:.LANCHOR0 - ldr w0, [x29,124] - ldr x5, [x29,104] - ldrb w2, [x1,3208] - cmp w0, w2 - bcc .L470 - mov w0, -1 - str w0, [x24,x5] - b .L471 -.L470: - add x2, x28, :lo12:.LANCHOR2 - add x1, x1, 3252 - ldrb w2, [x2,2192] - cmp w2, wzr - uxtw x2, w0 - csel w22, w22, wzr, ne - madd x1, x2, x25, x1 - ldr x1, [x1,8] - cbz x1, .L473 - bl FlashWaitCmdDone -.L473: - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x29,124] - add x0, x0, 3252 - ldr w2, [x29,120] - madd x0, x1, x25, x0 - str x21, [x0,8] - str xzr, [x0,16] - str w2, [x0,4] - cbz w22, .L474 - add w2, w20, 1 - umull x2, w2, w27 - add x2, x24, x2 - str x2, [x0,16] -.L474: - add x0, x19, :lo12:.LANCHOR0 - add x2, x0, 3212 - ldrb w21, [x2,x1] - madd x1, x1, x25, x0 - mov w0, w21 - strb w21, [x1,3252] - bl NandcFlashCs - cmp w26, 1 - bne .L475 - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbz w0, .L475 - mov w0, w21 - bl flash_enter_slc_mode - b .L476 -.L475: - mov w0, w21 - bl flash_exit_slc_mode -.L476: - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x29,124] - add x0, x0, 3220 - add w20, w20, w22 - ldr w0, [x0,x1,lsl 2] - ldr w1, [x29,120] - cmp w0, wzr - mov w0, w21 - cset w2, ne - bl FlashWaitReadyEN - ldr w1, [x29,120] - mov w0, w21 - mov w2, w22 - bl FlashEraseCmd - mov w0, w21 - bl NandcFlashDeCs -.L471: - add w20, w20, 1 - b .L499 -.L500: - adrp x20, .LANCHOR2 - add x19, x19, :lo12:.LANCHOR0 - add x0, x20, :lo12:.LANCHOR2 - mov x21, 0 - add x22, x19, 3252 - mov x25, 24 - ldr x0, [x0,1160] - bl NandcIqrWaitFlashReady -.L478: - ldrb w0, [x19,3208] - cmp w0, w21 - bls .L501 - mov w0, w21 - bl FlashWaitCmdDone - cmp w26, 1 - bne .L479 - add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbz w0, .L479 - mul x0, x21, x25 - ldrb w0, [x0,x22] - bl flash_exit_slc_mode -.L479: - add x21, x21, 1 - b .L478 -.L501: - add x20, x20, :lo12:.LANCHOR2 - ldr w0, [x20,2196] - cbnz w0, .L481 -.L483: - mov w0, 0 - b .L469 -.L481: - adrp x0, IDByte - ldrb w0, [x0,#:lo12:IDByte] - cmp w0, 69 - bne .L483 - mov x0, 0 - mov x1, 56 -.L482: - cmp w23, w0 - bls .L483 - mul x2, x0, x1 - add x0, x0, 1 - str wzr, [x24,x2] - b .L482 -.L469: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret - .size FlashEraseBlocks, .-FlashEraseBlocks - .align 2 .global NandcSendDumpDataStart .type NandcSendDumpDataStart, %function NandcSendDumpDataStart: @@ -3493,11 +3586,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L504: +.L516: ldr w1, [x0,8] str w1, [sp,8] ldr w1, [sp,8] - tbz x1, 20, .L504 + tbz x1, 20, .L516 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -3533,10 +3626,10 @@ NandcXferStart: add x0, x19, :lo12:.LANCHOR2 orr w20, w20, 536870912 orr w20, w20, 1024 - ldr w0, [x0,2116] + ldr w0, [x0,2112] bfi w20, w3, 4, 1 cmp w0, 3 - bls .L508 + bls .L520 ldr w0, [x21,16] cmp x5, xzr str w0, [x29,88] @@ -3544,72 +3637,72 @@ NandcXferStart: ldr w0, [x29,88] and w0, w0, -5 str w0, [x29,88] - cbnz w9, .L522 - cbz x4, .L509 -.L522: - cbnz w23, .L511 -.L519: + cbnz w9, .L534 + cbz x4, .L521 +.L534: + cbnz w23, .L523 +.L531: add w2, w2, 1 mov x0, x4 asr w2, w2, 1 bfi w20, w2, 22, 6 - cbnz x4, .L513 + cbnz x4, .L525 add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2136] - b .L513 -.L511: + ldr x0, [x0,2128] + b .L525 +.L523: add x1, x19, :lo12:.LANCHOR2 mov w7, 128 mov w3, 0 lsr w10, w2, 1 mov w6, w3 mov w11, -1 - ldr w0, [x1,2188] + ldr w0, [x1,2180] cmp w0, 25 mov w0, 64 csel w7, w0, w7, cc -.L515: +.L527: cmp w6, w10 - bcs .L519 + bcs .L531 lsr w0, w3, 2 ubfiz x0, x0, 2, 30 - cbz w9, .L516 + cbz w9, .L528 ldrh w8, [x5,2] - ldr x12, [x1,2144] + ldr x12, [x1,2136] ldrh w13, [x5],4 orr w8, w13, w8, lsl 16 str w8, [x12,x0] - b .L517 -.L516: - ldr x8, [x1,2144] + b .L529 +.L528: + ldr x8, [x1,2136] str w11, [x8,x0] -.L517: +.L529: add w6, w6, 1 add w3, w3, w7 - b .L515 -.L513: + b .L527 +.L525: add x19, x19, :lo12:.LANCHOR2 ubfx x24, x20, 22, 5 mov w2, w23 str x4, [x29,72] - ldr x1, [x19,2144] - str x1, [x19,2160] + ldr x1, [x19,2136] + str x1, [x19,2152] lsl w1, w24, 10 - str x0, [x19,2152] + str x0, [x19,2144] bl rknand_dma_map_single - str w0, [x19,2168] - ldr x0, [x19,2160] + str w0, [x19,2160] + ldr x0, [x19,2152] lsl w1, w24, 7 mov w2, w23 bl rknand_dma_map_single - str w0, [x19,2172] + str w0, [x19,2164] mov w0, 1 - str w0, [x19,2176] - ldr w0, [x19,2168] + str w0, [x19,2168] + ldr w0, [x19,2160] mov w1, 16 str w0, [x21,20] ldr x4, [x29,72] - ldr w0, [x19,2172] + ldr w0, [x19,2164] str w0, [x21,24] and x4, x4, 3 str wzr, [x29,88] @@ -3619,12 +3712,12 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 448 str w0, [x29,88] - cbnz x4, .L520 + cbnz x4, .L532 ldr w0, [x29,88] mov w1, 2 bfi w0, w1, 3, 3 str w0, [x29,88] -.L520: +.L532: ldr w0, [x29,88] cmp w23, wzr cset w1, eq @@ -3636,10 +3729,10 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 1 str w0, [x29,88] -.L509: +.L521: ldr w0, [x29,88] str w0, [x21,16] -.L508: +.L520: str w22, [x21,12] str w20, [x21,8] orr w20, w20, 4 @@ -3666,36 +3759,36 @@ NandcXferComp: adrp x20, .LANCHOR2 ldr x19, [x1,x0] add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,2116] + ldr w0, [x0,2112] cmp w0, 3 - bls .L557 + bls .L569 ldr w0, [x19,16] - tbz x0, 2, .L557 + tbz x0, 2, .L569 ldr w21, [x19,16] ldr w0, [x19,8] ubfx x21, x21, 1, 1 str w0, [x29,64] - cbz w21, .L528 + cbz w21, .L540 adrp x22, .LC4 adrp x23, .LC5 mov w21, 0 add x22, x22, :lo12:.LC4 add x23, x23, :lo12:.LC5 -.L529: +.L541: ldr w2, [x19,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L537 + bge .L549 add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,2116] + ldr w0, [x0,2112] cmp w0, 5 - bhi .L530 -.L533: + bhi .L542 +.L545: add w21, w21, 1 and w0, w21, 16777215 - cbnz w0, .L532 + cbnz w0, .L544 ldr w2, [x19,28] mov w1, w21 ldr w3, [x29,64] @@ -3708,19 +3801,19 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L532 -.L530: + b .L544 +.L542: ldr w0, [x19] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L533 + tbz x0, 13, .L545 ldr w0, [x29,72] - tbz x0, 17, .L533 -.L537: + tbz x0, 17, .L545 +.L549: add x19, x20, :lo12:.LANCHOR2 - add x19, x19, 2136 + add x19, x19, 2128 ldr w0, [x19,40] - cbz w0, .L538 + cbz w0, .L550 ldr w1, [x29,64] mov w2, 0 ldr w0, [x19,32] @@ -3733,25 +3826,25 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L538 -.L532: - mov x0, 5 - mov x1, 10 + b .L550 +.L544: + mov x0, 1 + mov x1, 5 bl usleep_range - b .L529 -.L528: + b .L541 +.L540: adrp x22, .LC6 adrp x23, .LC5 add x22, x22, :lo12:.LC6 add x23, x23, :lo12:.LC5 -.L539: +.L551: ldr w0, [x29,64] - tbnz x0, 20, .L565 + tbnz x0, 20, .L577 ldr w0, [x19,8] add w21, w21, 1 str w0, [x29,64] and w0, w21, 16777215 - cbnz w0, .L540 + cbnz w0, .L552 ldr w2, [x29,64] mov w1, w21 ldr w3, [x19,28] @@ -3763,22 +3856,22 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex -.L540: - mov x0, 5 - mov x1, 10 +.L552: + mov x0, 1 + mov x1, 5 bl usleep_range - b .L539 -.L565: + b .L551 +.L577: add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,2184] - cbz w0, .L542 + ldr w0, [x0,2176] + cbz w0, .L554 mov x0, x19 bl NandcSendDumpDataStart -.L542: +.L554: add x21, x20, :lo12:.LANCHOR2 - add x21, x21, 2136 + add x21, x21, 2128 ldr w0, [x21,40] - cbz w0, .L543 + cbz w0, .L555 ldr w1, [x29,64] mov w2, 1 ldr w0, [x21,32] @@ -3791,22 +3884,22 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single -.L543: +.L555: add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,2184] - cbz w0, .L538 + ldr w0, [x0,2176] + cbz w0, .L550 mov x0, x19 bl NandcSendDumpDataDone -.L538: +.L550: add x20, x20, :lo12:.LANCHOR2 - str wzr, [x20,2176] - b .L526 -.L557: + str wzr, [x20,2168] + b .L538 +.L569: ldr w0, [x19,8] str w0, [x29,64] ldr w0, [x29,64] - tbz x0, 20, .L557 -.L526: + tbz x0, 20, .L569 +.L538: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -3829,14 +3922,14 @@ NandcCopy1KB: add x4, x0, 4096 add x21, x0, 512 add x2, x4, x2 - bne .L567 - cbz x3, .L568 + bne .L579 + cbz x3, .L580 mov x0, x2 mov x1, x3 mov w2, 1024 bl ftl_memcpy -.L568: - cbz x20, .L566 +.L580: + cbz x20, .L578 mov w0, 48 lsr w19, w19, 1 ldrb w1, [x20,1] @@ -3850,15 +3943,15 @@ NandcCopy1KB: ldrb w1, [x20,3] orr w0, w0, w1, lsl 24 str w0, [x21,w19,sxtw 2] - b .L566 -.L567: - cbz x3, .L571 + b .L578 +.L579: + cbz x3, .L583 mov x1, x2 mov x0, x3 mov w2, 1024 bl ftl_memcpy -.L571: - cbz x20, .L566 +.L583: + cbz x20, .L578 mov w0, 48 lsr w19, w19, 1 mul w19, w19, w0 @@ -3871,7 +3964,7 @@ NandcCopy1KB: lsr w0, w0, 24 strb w1, [x20,2] strb w0, [x20,3] -.L566: +.L578: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -3898,14 +3991,14 @@ NandcXferData: uxtb w23, w2 mov x25, x3 mov x21, x4 - cbnz x0, .L583 - cbnz x4, .L584 + cbnz x0, .L595 + cbnz x4, .L596 add x0, x29, 112 mov w1, 255 mov w2, 64 add x21, x29, 112 bl ftl_memset -.L584: +.L596: mov w0, w24 mov w1, w20 mov w2, w23 @@ -3917,22 +4010,22 @@ NandcXferData: mov w0, w24 mov w1, w20 bl NandcXferComp - cbnz w20, .L585 + cbnz w20, .L597 adrp x0, .LANCHOR2 ubfx x3, x23, 1, 7 add x2, x0, :lo12:.LANCHOR2 mov w4, 128 add x3, x21, x3, lsl 2 - ldr w1, [x2,2188] + ldr w1, [x2,2180] cmp w1, 25 mov w1, 64 csel w4, w1, w4, cc mov w1, w20 -.L587: +.L599: cmp x21, x3 add w5, w1, w4 - beq .L629 - ldr x6, [x2,2144] + beq .L641 + ldr x6, [x2,2136] and x1, x1, 4294967292 add x21, x21, 4 ldr w1, [x6,x1] @@ -3944,29 +4037,29 @@ NandcXferData: lsr w1, w1, 24 strb w1, [x21,-1] mov w1, w5 - b .L587 -.L629: + b .L599 +.L641: add x0, x0, :lo12:.LANCHOR2 lsr w23, w23, 2 - ldr w4, [x0,2188] - ldr w5, [x0,2116] + ldr w4, [x0,2180] + ldr w5, [x0,2112] mov w0, 0 mov w22, w0 -.L589: +.L601: cmp w0, w23 - bcs .L585 - cbz w4, .L585 + bcs .L597 + cbz w4, .L597 uxtw x1, w0 add x1, x1, 8 ldr w1, [x19,x1,lsl 2] str w1, [x29,104] ldr w1, [x29,104] - tbnz x1, 2, .L613 + tbnz x1, 2, .L625 ldr w3, [x29,104] ubfx x3, x3, 15, 1 - cbnz w3, .L613 + cbnz w3, .L625 cmp w5, 5 - bls .L591 + bls .L603 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -3979,20 +4072,20 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L592 + bls .L604 ldr w1, [x29,104] ubfx x3, x3, 3, 5 ubfx x1, x1, 27, 1 orr w3, w3, w1, lsl 5 - b .L593 -.L592: + b .L605 +.L604: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 29, 1 - b .L628 -.L591: + b .L640 +.L603: cmp w5, 3 - bls .L593 + bls .L605 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -4005,43 +4098,43 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L594 + bls .L606 ubfx x1, x3, 3, 5 ldr w3, [x29,104] ubfx x3, x3, 28, 1 - b .L628 -.L594: + b .L640 +.L606: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 30, 1 -.L628: +.L640: orr w3, w1, w3, lsl 5 -.L593: +.L605: cmp w22, w3 csel w22, w22, w3, cs - b .L590 -.L613: + b .L602 +.L625: mov w22, -1 -.L590: +.L602: add w0, w0, 1 - b .L589 -.L585: + b .L601 +.L597: str wzr, [x19,16] - b .L596 -.L583: + b .L608 +.L595: cmp w20, 1 - bne .L627 + bne .L639 mov w22, 0 mov w27, 2 -.L597: +.L609: cmp w22, w23 - bcs .L630 + bcs .L642 and w26, w22, 3 mov x3, x25 - cbz x25, .L599 + cbz x25, .L611 ubfiz x0, x22, 9, 23 add x3, x25, x0 -.L599: +.L611: cmp x21, xzr mov x0, x19 csel w4, w27, wzr, ne @@ -4061,11 +4154,11 @@ NandcXferData: mov w0, w24 mov w1, 1 bl NandcXferComp - b .L597 -.L630: + b .L609 +.L642: mov w22, 0 - b .L596 -.L627: + b .L608 +.L639: mov w1, 0 mov x4, 0 mov w26, 0 @@ -4076,9 +4169,9 @@ NandcXferData: mov w22, w26 mov w27, 2 bl NandcXferStart -.L602: +.L614: cmp w26, w23 - bcs .L596 + bcs .L608 mov w0, w24 mov w1, w20 add w28, w26, 2 @@ -4086,7 +4179,7 @@ NandcXferData: ldr w0, [x19,32] cmp w28, w23 str w0, [x29,104] - bcs .L603 + bcs .L615 mov x4, 0 mov w0, w24 mov w1, 0 @@ -4094,9 +4187,9 @@ NandcXferData: and w3, w28, 3 mov x5, x4 bl NandcXferStart -.L603: +.L615: ldr w0, [x29,104] - tbnz x0, 2, .L618 + tbnz x0, 2, .L630 ldr w0, [x29,104] ubfx x1, x0, 3, 5 ldr w0, [x29,104] @@ -4104,16 +4197,16 @@ NandcXferData: orr w0, w1, w0, lsl 5 cmp w22, w0 csel w22, w22, w0, cs - b .L604 -.L618: + b .L616 +.L630: mov w22, -1 -.L604: +.L616: and w2, w26, 3 mov x3, x25 - cbz x25, .L605 + cbz x25, .L617 ubfiz x3, x26, 9, 23 add x3, x25, x3 -.L605: +.L617: cmp x21, xzr mov x0, x19 csel w4, w27, wzr, ne @@ -4122,23 +4215,23 @@ NandcXferData: mov w26, w28 add x4, x21, x4 bl NandcCopy1KB - b .L602 -.L596: - cbnz w20, .L608 - adrp x0, .LANCHOR2+2116 - ldr w0, [x0,#:lo12:.LANCHOR2+2116] + b .L614 +.L608: + cbnz w20, .L620 + adrp x0, .LANCHOR2+2112 + ldr w0, [x0,#:lo12:.LANCHOR2+2112] cmp w0, 5 - bls .L608 + bls .L620 ldr w0, [x19] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L608 + bne .L620 orr w0, w0, 131072 mov w22, -1 str w0, [x19] -.L608: +.L620: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4161,7 +4254,7 @@ FlashReadRawPage: str x21, [sp,32] mov x21, x2 ldrb w20, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L632 + cbnz w19, .L644 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w5, [x0,89] @@ -4170,7 +4263,7 @@ FlashReadRawPage: cmp w1, w0 mov w0, 4 csel w20, w20, w0, cs -.L632: +.L644: mov w0, w19 str x4, [x29,48] str x1, [x29,56] @@ -4214,7 +4307,7 @@ FlashDdrTunningRead: stp x27, x28, [sp,80] mov w26, w1 mov w0, 12 - ldr x1, [x20,1160] + ldr x1, [x20,1152] mov w22, 6 mov x25, x2 mov x23, x3 @@ -4222,10 +4315,10 @@ FlashDdrTunningRead: mov w21, 1024 ldr w1, [x1,304] str w1, [x29,124] - ldr w1, [x20,2116] + ldr w1, [x20,2112] cmp w1, 8 csel w22, w22, w0, cc - cbz w4, .L635 + cbz w4, .L647 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 @@ -4238,23 +4331,23 @@ FlashDdrTunningRead: mov w0, w24 bl FlashReadRawPage mov w21, w0 - ldrb w0, [x20,2100] + ldrb w0, [x20,2093] bl FlashSetInterfaceMode - ldrb w0, [x20,2100] + ldrb w0, [x20,2093] bl NandcSetMode cmn w21, #1 - bne .L636 -.L645: + bne .L648 +.L657: mov w21, -1 - b .L637 -.L636: + b .L649 +.L648: adrp x0, .LC7 mov w1, w26 add x0, x0, :lo12:.LC7 mov w2, w21 bl printk cmp w21, 9 - bhi .L638 + bhi .L650 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x0, x0, x24, sxtw 4 @@ -4263,23 +4356,23 @@ FlashDdrTunningRead: ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L638: +.L650: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2200] + ldr w1, [x0,2184] add w1, w1, 1 - str w1, [x0,2200] + str w1, [x0,2184] cmp w1, 2047 - bls .L637 + bls .L649 mov x23, 0 - str wzr, [x0,2200] + str wzr, [x0,2184] mov x25, x23 -.L635: +.L647: mov w19, 0 mov w28, -1 mov w5, w19 mov w6, w19 mov w20, w19 -.L643: +.L655: mov w0, w22 str x5, [x29,104] str x6, [x29,112] @@ -4293,63 +4386,63 @@ FlashDdrTunningRead: ldr x6, [x29,112] cmp w0, w1 ldr x5, [x29,104] - bhi .L639 + bhi .L651 cmp w0, 2 - bhi .L649 + bhi .L661 add w20, w20, 1 cmp w20, 9 - bls .L649 + bls .L661 sub w19, w22, w20 mov w21, w0 mov w28, 0 - b .L641 -.L639: + b .L653 +.L651: cmp w6, w20 - bcs .L650 + bcs .L662 cmp w20, 7 sub w5, w19, w20 - bhi .L651 + bhi .L663 mov w6, w20 - b .L650 -.L649: + b .L662 +.L661: mov x23, 0 mov w19, w22 mov w21, w0 mov w28, 0 mov x25, x23 - b .L640 -.L650: + b .L652 +.L662: mov w20, 0 -.L640: +.L652: add w22, w22, 2 cmp w22, 69 - bls .L643 -.L641: + bls .L655 +.L653: cmp w6, w20 csel w19, w19, w5, cc - b .L642 -.L651: + b .L654 +.L663: mov w19, w5 -.L642: - cbz w19, .L644 +.L654: + cbz w19, .L656 adrp x0, .LC8 mov w1, w19 add x0, x0, :lo12:.LC8 bl printk mov w0, w19 bl NandcSetDdrPara -.L644: - cbz w28, .L637 +.L656: + cbz w28, .L649 adrp x0, .LC9 mov w1, w24 add x0, x0, :lo12:.LC9 mov w2, w26 bl printk - cbz w27, .L645 + cbz w27, .L657 ldr w0, [x29,124] lsr w0, w0, 8 bl NandcSetDdrPara -.L637: +.L649: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4378,17 +4471,17 @@ FlashReadPage: cmn w0, #1 mov w19, w0 adrp x21, .LANCHOR2 - bne .L661 + bne .L673 adrp x23, .LANCHOR0 add x23, x23, :lo12:.LANCHOR0 ldrb w26, [x23,96] - cbnz w26, .L662 -.L664: + cbnz w26, .L674 +.L676: add x23, x21, :lo12:.LANCHOR2 - ldrb w0, [x23,2108] - cbz w0, .L661 - b .L682 -.L662: + ldrb w0, [x23,2104] + cbz w0, .L673 + b .L694 +.L674: mov w0, w20 mov w1, w22 mov x2, x25 @@ -4397,11 +4490,11 @@ FlashReadPage: bl FlashReadRawPage strb w26, [x23,96] cmn w0, #1 - beq .L664 + beq .L676 mov w19, w0 - b .L661 -.L682: - ldr x0, [x23,1160] + b .L673 +.L694: + ldr x0, [x23,1152] mov w1, w22 mov x2, x25 mov x3, x24 @@ -4411,19 +4504,19 @@ FlashReadPage: bl FlashDdrTunningRead cmn w0, #1 mov w19, w0 - beq .L665 - ldrb w0, [x23,1229] + beq .L677 + ldrb w0, [x23,1221] cmp w19, w0, lsr 1 - bls .L661 -.L665: + bls .L673 +.L677: lsr w0, w26, 8 bl NandcSetDdrPara -.L661: +.L673: add x21, x21, :lo12:.LANCHOR2 cmn w19, #1 - ldr x4, [x21,2208] - bne .L666 - cbz x4, .L666 + ldr x4, [x21,2192] + bne .L678 + cbz x4, .L678 mov w1, w22 mov x2, x25 mov x3, x24 @@ -4437,12 +4530,12 @@ FlashReadPage: mov w3, w22 bl printk cmn w19, #1 - bne .L666 - ldrb w0, [x21,1228] - cbz w0, .L666 + bne .L678 + ldrb w0, [x21,1220] + cbz w0, .L678 mov w0, w20 bl flash_enter_slc_mode - ldr x4, [x21,2208] + ldr x4, [x21,2192] mov w0, w20 mov w1, w22 mov x2, x25 @@ -4451,7 +4544,7 @@ FlashReadPage: mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L666: +.L678: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4472,9 +4565,9 @@ FlashDdrParaScan: stp x21, x22, [sp,32] add x22, x19, :lo12:.LANCHOR2 uxtb w21, w0 - ldrb w0, [x22,2100] + ldrb w0, [x22,2093] bl FlashSetInterfaceMode - ldrb w0, [x22,2100] + ldrb w0, [x22,2093] bl NandcSetMode mov x2, 0 mov w1, w20 @@ -4489,24 +4582,24 @@ FlashDdrParaScan: mov x3, x2 bl FlashReadRawPage cmn w0, #1 - beq .L687 + beq .L699 cmn w22, #1 - bne .L684 -.L687: + bne .L696 +.L699: add x20, x19, :lo12:.LANCHOR2 - ldrb w0, [x20,2100] - tbz x0, 0, .L684 + ldrb w0, [x20,2093] + tbz x0, 0, .L696 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,2108] - b .L686 -.L684: + strb wzr, [x20,2104] + b .L698 +.L696: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 - strb w0, [x19,2108] -.L686: + strb w0, [x19,2104] +.L698: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4543,16 +4636,16 @@ FlashLoadPhyInfo: mov w23, 4 ldr x0, [x20,#:lo12:.LANCHOR0] mov w26, -1 - str x0, [x19,2216] + str x0, [x19,2200] add x22, x22, 472 mov w0, 0 - add x25, x19, 1240 - str wzr, [x19,2224] + add x25, x19, 1232 + str wzr, [x19,2208] bl flash_enter_slc_mode -.L695: +.L707: add w28, w21, 1 mov x27, 0 -.L697: +.L709: add x0, x29, 104 ldrb w0, [x27,x0] bl FlashBchSel @@ -4562,32 +4655,32 @@ FlashLoadPhyInfo: mov x3, 0 bl FlashReadRawPage cmn w0, #1 - bne .L696 + bne .L708 ldr x2, [x20,#:lo12:.LANCHOR0] mov w0, 0 mov w1, w28 mov x3, 0 bl FlashReadRawPage cmn w0, #1 - bne .L696 + bne .L708 add x27, x27, 1 cmp x27, 4 - beq .L698 - b .L697 -.L699: + beq .L710 + b .L709 +.L711: mov w1, 2036 add x0, x27, 12 mov w26, -1 bl js_hash ldr w1, [x27,8] cmp w1, w0 - beq .L710 -.L698: + beq .L722 +.L710: subs w23, w23, #1 add w21, w21, w24 - bne .L695 + bne .L707 mov w0, w23 -.L709: +.L721: bl flash_exit_slc_mode mov w0, w26 ldp x19, x20, [sp,16] @@ -4597,55 +4690,55 @@ FlashLoadPhyInfo: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 ret -.L696: - ldr x27, [x19,2216] +.L708: + ldr x27, [x19,2200] mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr w1, [x27] cmp w1, w0 - bne .L698 - cbnz w26, .L699 + bne .L710 + cbnz w26, .L711 add x20, x20, :lo12:.LANCHOR0 ldr w0, [x20,92] udiv w21, w21, w0 mov w0, w26 add w21, w21, 1 str w21, [x20,8] - b .L709 -.L710: + b .L721 +.L722: add x1, x27, 160 mov w2, 32 mov x0, x22 add x26, x20, :lo12:.LANCHOR0 bl ftl_memcpy - ldr x1, [x19,2216] + ldr x1, [x19,2200] mov w2, 32 - add x0, x26, 104 + add x0, x26, 112 add x1, x1, 192 bl ftl_memcpy - ldr x1, [x19,2216] + ldr x1, [x19,2200] mov w2, 852 mov x0, x25 add x1, x1, 224 bl ftl_memcpy ldrh w0, [x22,10] bl FlashBlockAlignInit - str w21, [x19,2224] - ldr x0, [x19,2216] + str w21, [x19,2208] + ldr x0, [x19,2200] ldr w1, [x0,1076] - strb w1, [x19,2108] + strb w1, [x19,2104] ldr w1, [x26,92] udiv w1, w21, w1 add w1, w1, 1 cmp w1, 1 - bhi .L708 + bhi .L720 mov w1, 2 -.L708: +.L720: ldrh w0, [x0,14] str w1, [x26,8] mov w26, 0 - strb w0, [x19,2228] - b .L698 + strb w0, [x19,2212] + b .L710 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial @@ -4681,21 +4774,21 @@ ToshibaReadRetrial: sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - bls .L712 - adrp x0, .LANCHOR2+2108 - ldrb w0, [x0,#:lo12:.LANCHOR2+2108] - cbz w0, .L713 + bls .L724 + adrp x0, .LANCHOR2+2104 + ldrb w0, [x0,#:lo12:.LANCHOR2+2104] + cbz w0, .L725 mov w0, w22 mov w22, 1 bl NandcSetDdrMode -.L713: +.L725: ubfiz x0, x28, 8, 8 mov w2, 92 add x0, x24, x0 str w2, [x0,2056] mov w2, 197 str w2, [x0,2056] -.L712: +.L724: adrp x0, g_maxRetryCount mov w21, 1 add x0, x0, :lo12:g_maxRetryCount @@ -4707,44 +4800,44 @@ ToshibaReadRetrial: str x0, [x29,112] ubfiz x0, x28, 8, 8 str x0, [x29,104] -.L714: +.L726: adrp x0, g_maxRetryCount ldrb w0, [x0,#:lo12:g_maxRetryCount] add w0, w0, 1 cmp w21, w0 - bcs .L739 + bcs .L751 ldrb w0, [x20,#:lo12:g_retryMode] mov w1, w21 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x19 - bhi .L715 + bhi .L727 bl SandiskSetRRPara - b .L716 -.L715: + b .L728 +.L727: bl ToshibaSetRRPara -.L716: +.L728: ldrb w0, [x20,#:lo12:g_retryMode] cmp w0, 34 - bne .L717 + bne .L729 ldr x0, [x29,120] ldrb w0, [x0] sub w0, w0, #3 cmp w21, w0 - bne .L717 + bne .L729 ldr x0, [x29,112] mov w1, 179 add x0, x24, x0 str w1, [x0,8] -.L717: +.L729: ldr x0, [x29,104] mov w1, 38 add x0, x24, x0 str w1, [x0,2056] mov w1, 93 str w1, [x0,2056] - cbz w22, .L718 + cbz w22, .L730 mov w0, 4 bl NandcSetDdrMode ldr w1, [x29,132] @@ -4755,64 +4848,64 @@ ToshibaReadRetrial: mov w28, w0 mov w0, 0 bl NandcSetDdrMode - b .L719 -.L718: + b .L731 +.L730: ldr w1, [x29,132] mov w0, w23 mov x2, x27 mov x3, x26 bl FlashReadRawPage mov w28, w0 -.L719: +.L731: cmn w28, #1 - beq .L720 - adrp x0, .LANCHOR2+1229 + beq .L732 + adrp x0, .LANCHOR2+1221 cmn w25, #1 csel w25, w25, w28, ne - ldrb w0, [x0,#:lo12:.LANCHOR2+1229] + ldrb w0, [x0,#:lo12:.LANCHOR2+1221] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L722 + bcc .L734 mov x26, 0 mov x27, x26 -.L720: +.L732: add w21, w21, 1 - b .L714 -.L739: + b .L726 +.L751: mov w28, w25 -.L722: +.L734: ldrb w0, [x20,#:lo12:g_retryMode] mov w1, 0 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x19 - bhi .L724 + bhi .L736 bl SandiskSetRRPara - b .L725 -.L724: + b .L737 +.L736: bl ToshibaSetRRPara -.L725: +.L737: ldr x0, [x29,136] add x0, x0, 8 add x24, x24, x0, lsl 8 mov w0, 255 str w0, [x24,8] - adrp x0, .LANCHOR2+1229 - ldrb w0, [x0,#:lo12:.LANCHOR2+1229] + adrp x0, .LANCHOR2+1221 + ldrb w0, [x0,#:lo12:.LANCHOR2+1221] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L726 + bcc .L738 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L726: +.L738: mov w0, w23 bl NandcWaitFlashReady - cbz w22, .L727 + cbz w22, .L739 mov w0, 4 bl NandcSetDdrMode -.L727: +.L739: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4853,11 +4946,11 @@ SamsungReadRetrial: ldrb w20, [x1,8] add x20, x20, 8 add x20, x0, x20, lsl 8 -.L741: +.L753: ldrb w0, [x26] add w0, w0, 1 cmp w25, w0 - bcs .L744 + bcs .L756 mov x0, x20 mov w1, w25 bl SamsungSetRRPara @@ -4867,34 +4960,34 @@ SamsungReadRetrial: mov x3, x22 bl FlashReadRawPage cmn w0, #1 - beq .L742 + beq .L754 add x1, x27, :lo12:.LANCHOR2 cmn w19, #1 csel w19, w19, w0, ne - ldrb w1, [x1,1229] + ldrb w1, [x1,1221] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L747 + bcc .L759 mov x22, 0 mov x23, x22 -.L742: +.L754: add w25, w25, 1 - b .L741 -.L747: + b .L753 +.L759: mov w19, w0 -.L744: +.L756: mov x0, x20 mov w1, 0 bl SamsungSetRRPara - adrp x0, .LANCHOR2+1229 - ldrb w0, [x0,#:lo12:.LANCHOR2+1229] + adrp x0, .LANCHOR2+1221 + ldrb w0, [x0,#:lo12:.LANCHOR2+1221] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L746 + bcc .L758 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L746: +.L758: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -4921,17 +5014,17 @@ MicronReadRetrial: stp x23, x24, [sp,48] str x0, [x29,152] mov x25, x2 - ldrb w19, [x1,1229] + ldrb w19, [x1,1221] mov x22, x3 - ldrb w1, [x1,1228] - cbnz w1, .L754 + ldrb w1, [x1,1220] + cbnz w1, .L766 add w19, w19, w19, lsl 1 ubfx x19, x19, 2, 8 - b .L755 -.L754: + b .L767 +.L766: mov w0, 3 sdiv w19, w19, w0 -.L755: +.L767: adrp x26, g_maxRetryCount adrp x27, .LC11 adrp x20, .LANCHOR0 @@ -4942,7 +5035,7 @@ MicronReadRetrial: add x20, x20, :lo12:.LANCHOR0 add x20, x20, 24 add x20, x20, x21, sxtw 4 -.L766: +.L778: mov w0, w21 mov w23, 0 mov w26, -1 @@ -4952,11 +5045,11 @@ MicronReadRetrial: ldr x6, [x20] mov w10, 137 lsl x8, x4, 8 -.L756: +.L768: ldr x0, [x29,144] ldrb w0, [x0] cmp w23, w0 - bcs .L759 + bcs .L771 add x2, x6, x8 mov x0, 1000 str x4, [x29,96] @@ -4987,21 +5080,21 @@ MicronReadRetrial: ldr x6, [x29,112] ldr x8, [x29,104] ldr x4, [x29,96] - beq .L757 + beq .L769 cmn w26, #1 csel w26, w26, w0, ne cmp w0, w19 - bcc .L768 + bcc .L780 mov x22, 0 mov x25, x22 -.L757: +.L769: mov w23, w7 - b .L756 -.L768: + b .L768 +.L780: mov x22, 0 mov w26, w0 mov x25, x22 -.L759: +.L771: add x1, x6, x4, lsl 8 mov w0, 239 str x1, [x29,136] @@ -5016,18 +5109,18 @@ MicronReadRetrial: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] - bcc .L761 + bcc .L773 cmn w26, #1 mov w0, 256 csel w26, w26, w0, eq -.L761: +.L773: cmn w26, #1 cset w6, eq - cbnz w6, .L770 + cbnz w6, .L782 cmp w26, 256 cset w1, eq - cbz w1, .L762 -.L770: + cbz w1, .L774 +.L782: mov x0, x27 mov w1, w23 mov w2, w28 @@ -5035,32 +5128,32 @@ MicronReadRetrial: mov w4, w26 str x6, [x29,136] bl printk - cbnz w24, .L764 + cbnz w24, .L776 ldr x6, [x29,136] - cbz w6, .L775 + cbz w6, .L787 ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbz w0, .L775 + ldrb w0, [x0,1220] + cbz w0, .L787 mov w0, w21 mov w1, 3 mov w24, 1 bl micron_auto_read_calibration_config - b .L766 -.L764: + b .L778 +.L776: mov w0, w21 mov w1, 0 bl micron_auto_read_calibration_config cmn w26, #1 mov w0, 256 csel w26, w26, w0, eq - b .L775 -.L762: - cbz w24, .L775 + b .L787 +.L774: + cbz w24, .L787 mov w0, w21 mov w26, 256 bl micron_auto_read_calibration_config -.L775: +.L787: mov w0, w26 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5082,7 +5175,7 @@ HynixReadRetrial: stp x23, x24, [sp,48] uxtb x23, w0 add x0, x21, :lo12:.LANCHOR2 - add x0, x0, 1240 + add x0, x0, 1232 mov x24, x23 stp x27, x28, [sp,80] stp x25, x26, [sp,64] @@ -5094,25 +5187,25 @@ HynixReadRetrial: mov x27, x2 mov x25, x3 ldrb w19, [x1,12] - ldr x0, [x0,3448] + ldr x0, [x0,104] ldrb w0, [x0,19] sub w0, w0, #7 uxtb w0, w0 cmp w0, 1 - bhi .L784 + bhi .L796 ldrb w19, [x1,20] -.L784: +.L796: mov w0, w24 mov w20, -1 bl NandcWaitFlashReady add x5, x21, :lo12:.LANCHOR2 mov w4, 0 - add x6, x5, 1244 -.L785: + add x6, x5, 1236 +.L797: cmp w4, w26 - bcs .L789 + bcs .L801 add w19, w19, 1 - ldrb w1, [x5,1241] + ldrb w1, [x5,1233] mov x2, x6 mov w0, w24 uxtb w19, w19 @@ -5132,44 +5225,44 @@ HynixReadRetrial: ldr x6, [x29,120] ldr x5, [x29,112] ldr x4, [x29,104] - beq .L787 - ldrb w1, [x5,1229] + beq .L799 + ldrb w1, [x5,1221] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L794 + bcc .L806 mov x25, 0 mov x27, x25 -.L787: +.L799: add w4, w4, 1 - b .L785 -.L794: + b .L797 +.L806: mov w20, w0 -.L789: +.L801: add x22, x22, :lo12:.LANCHOR0 - ldr x0, [x22,3448] + ldr x0, [x22,104] ldrb w0, [x0,19] sub w0, w0, #7 uxtb w0, w0 cmp w0, 1 add x0, x21, :lo12:.LANCHOR2 add x23, x0, x23 - bhi .L791 - strb w19, [x23,1260] - b .L792 -.L791: + bhi .L803 strb w19, [x23,1252] -.L792: + b .L804 +.L803: + strb w19, [x23,1244] +.L804: add x21, x21, :lo12:.LANCHOR2 - ldrb w0, [x21,1229] + ldrb w0, [x21,1221] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L793 + bcc .L805 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L793: +.L805: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5180,6 +5273,183 @@ HynixReadRetrial: ret .size HynixReadRetrial, .-HynixReadRetrial .align 2 + .type samsung_read_retrial, %function +samsung_read_retrial: + stp x29, x30, [sp, -128]! + add x29, sp, 0 + stp x21, x22, [sp,32] + uxtb w22, w0 + adrp x21, .LANCHOR3 + mov w0, w22 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x19, x20, [sp,16] + mov w23, w1 + mov x24, x2 + stp x27, x28, [sp,80] + mov x26, x3 + bl NandcWaitFlashReady + adrp x0, .LANCHOR0 + sbfiz x1, x22, 4, 32 + add x0, x0, :lo12:.LANCHOR0 + adrp x25, .LANCHOR2 + add x0, x0, 24 + add x2, x0, x1 + ldr x5, [x0,x1] + add x0, x25, :lo12:.LANCHOR2 + ldrb w19, [x2,8] + ldrb w0, [x0,2092] + cbnz w0, .L813 + lsl x19, x19, 8 + mov x4, 0 + mov w20, -1 + add x27, x5, x19 + mov w6, 239 + mov w7, 141 + add x21, x21, :lo12:.LANCHOR3 +.L817: + str w6, [x27,2056] + add x0, x21, x4 + str w7, [x27,2052] + mov w1, w23 + mov x2, x24 + mov x3, x26 + ldrsb w0, [x0,1] + add w28, w4, 1 + str w0, [x27,2048] + mov w0, w22 + str wzr, [x27,2048] + str wzr, [x27,2048] + str wzr, [x27,2048] + str x5, [x29,96] + str x6, [x29,104] + str x7, [x29,112] + str x4, [x29,120] + bl FlashReadRawPage + cmn w0, #1 + ldr x4, [x29,120] + ldr x7, [x29,112] + ldr x6, [x29,104] + ldr x5, [x29,96] + beq .L814 + add x1, x25, :lo12:.LANCHOR2 + cmn w20, #1 + csel w20, w20, w0, ne + ldrb w1, [x1,1221] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L826 + mov x26, 0 + mov x24, x26 +.L814: + add x4, x4, 1 + cmp x4, 25 + bne .L817 + mov w28, 26 + b .L816 +.L826: + mov w20, w0 +.L816: + add x3, x5, x19 + mov w0, 239 + str w0, [x3,2056] + mov w0, 141 + b .L842 +.L813: + add x21, x21, :lo12:.LANCHOR3 + lsl x19, x19, 8 + add x21, x21, 32 + mov w20, -1 + mov w28, 1 + add x27, x5, x19 + mov w4, 239 + mov w6, 137 +.L822: + str w4, [x27,2056] + mov w1, w23 + str w6, [x27,2052] + mov x2, x24 + mov x3, x26 + str x5, [x29,104] + ldrb w0, [x21,4] + str w0, [x27,2048] + str x4, [x29,112] + ldrb w0, [x21,5] + str w0, [x27,2048] + str x6, [x29,120] + ldrb w0, [x21,6] + str w0, [x27,2048] + ldrb w0, [x21,7] + str w0, [x27,2048] + mov w0, w22 + bl FlashReadRawPage + cmn w0, #1 + ldr x6, [x29,120] + ldr x4, [x29,112] + ldr x5, [x29,104] + beq .L819 + add x1, x25, :lo12:.LANCHOR2 + cmn w20, #1 + csel w20, w20, w0, ne + ldrb w1, [x1,1221] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L827 + mov x26, 0 + mov x24, x26 +.L819: + add w28, w28, 1 + add x21, x21, 4 + cmp w28, 26 + bne .L822 + b .L821 +.L827: + mov w20, w0 +.L821: + add x3, x5, x19 + mov w0, 239 + str w0, [x3,2056] + mov w0, 137 +.L842: + str w0, [x3,2052] + add x25, x25, :lo12:.LANCHOR2 + str wzr, [x3,2048] + str wzr, [x3,2048] + str wzr, [x3,2048] + str wzr, [x3,2048] + ldrb w0, [x25,1221] + add w0, w0, w0, lsl 1 + cmp w20, w0, lsr 2 + bcc .L823 + cmn w20, #1 + mov w0, 256 + csel w20, w20, w0, eq +.L823: + cmn w20, #1 + beq .L828 + cmp w20, 256 + bne .L824 +.L828: + adrp x0, .LC12 + mov w1, w28 + add x0, x0, :lo12:.LC12 + mov w2, w23 + mov w3, w28 + mov w4, w20 + bl printk +.L824: + mov w0, w22 + bl NandcWaitFlashReady + mov w0, w20 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 128 + ret + .size samsung_read_retrial, .-samsung_read_retrial + .align 2 .global FlashProgPage .type FlashProgPage, %function FlashProgPage: @@ -5193,19 +5463,19 @@ FlashProgPage: mov w20, w1 mov x22, x2 ldrb w21, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L801 + cbnz w19, .L844 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,89] ldr w2, [x0,92] mul w1, w1, w2 cmp w20, w1 - bcs .L801 + bcs .L844 ldrb w0, [x0,88] cmp w0, wzr mov w0, 4 csel w21, w21, w0, eq -.L801: +.L844: mov w0, w19 str x4, [x29,56] bl NandcWaitFlashReady @@ -5245,136 +5515,156 @@ FlashSavePhyInfo: add x29, sp, 0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - adrp x22, .LANCHOR0 - adrp x23, .LANCHOR2 + adrp x21, .LANCHOR0 + adrp x24, .LANCHOR2 stp x19, x20, [sp,16] - add x19, x23, :lo12:.LANCHOR2 - add x20, x22, :lo12:.LANCHOR0 + add x19, x24, :lo12:.LANCHOR2 + add x20, x21, :lo12:.LANCHOR0 stp x25, x26, [sp,64] - ldr x0, [x22,#:lo12:.LANCHOR0] - mov w21, 0 - str x0, [x19,2216] - ldrb w0, [x19,2229] + ldr x0, [x21,#:lo12:.LANCHOR0] + mov w23, 0 + str x0, [x19,2200] + mov w22, w23 + ldrb w0, [x19,2213] bl FlashBchSel - ldr x0, [x22,#:lo12:.LANCHOR0] + ldr x0, [x21,#:lo12:.LANCHOR0] mov w1, 0 mov w2, 2048 bl ftl_memset - ldr x1, [x19,2216] + ldr x1, [x19,2200] mov w0, 20036 movk w0, 0x4e41, lsl 16 mov w2, 32 str w0, [x1] - ldr x0, [x19,2216] - ldrb w1, [x20,3208] + ldr x0, [x19,2200] + ldrb w1, [x20,3216] add x0, x0, 16 strh w1, [x0,-4] ldrb w1, [x20,89] strh w1, [x0,-2] - ldrb w1, [x19,2108] + ldrb w1, [x19,2104] str w1, [x0,1060] adrp x1, IDByte add x1, x1, :lo12:IDByte bl ftl_memcpy - ldr x0, [x19,2216] - add x1, x20, 3212 + ldr x0, [x19,2200] + add x1, x20, 3220 mov w2, 8 add x0, x0, 80 bl ftl_memcpy - ldr x0, [x19,2216] - add x1, x20, 3220 + ldr x0, [x19,2200] + add x1, x20, 3228 mov w2, 32 add x0, x0, 96 bl ftl_memcpy - ldr x0, [x19,2216] + ldr x0, [x19,2200] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 mov w2, 32 add x1, x1, 472 add x0, x0, 160 bl ftl_memcpy - ldr x0, [x19,2216] - add x1, x20, 104 + ldr x0, [x19,2200] + add x1, x20, 112 mov w2, 32 add x0, x0, 192 bl ftl_memcpy - ldr x0, [x19,2216] - add x1, x19, 1240 + ldr x0, [x19,2200] + add x1, x19, 1232 mov w2, 852 add x0, x0, 224 bl ftl_memcpy - ldr x20, [x19,2216] + ldr x20, [x19,2200] mov w1, 2036 add x0, x20, 12 bl js_hash str w0, [x20,8] mov w0, 1592 str w0, [x20,4] - ldr x0, [x19,2232] - str x0, [x19,2216] + ldr x0, [x19,2216] + str x0, [x19,2200] mov w0, 0 - mov w19, w21 + mov x19, x21 bl flash_enter_slc_mode -.L806: - add x20, x22, :lo12:.LANCHOR0 +.L852: + add x21, x19, :lo12:.LANCHOR0 + mov w0, 0 mov w2, 0 - mov w0, 0 - add x24, x23, :lo12:.LANCHOR2 - add w26, w19, 1 - ldr w1, [x20,92] - mul w1, w19, w1 + ldr w1, [x21,92] + mul w1, w22, w1 bl FlashEraseBlock - ldr w1, [x20,92] + add x0, x24, :lo12:.LANCHOR2 + ldrb w20, [x0,1220] + cbz w20, .L847 + mov w20, 0 +.L848: + add x0, x19, :lo12:.LANCHOR0 + ldr x2, [x19,#:lo12:.LANCHOR0] mov x3, 0 - ldr x2, [x22,#:lo12:.LANCHOR0] + ldr w1, [x0,92] mov w0, 0 - mul w1, w19, w1 + madd w1, w22, w1, w20 + add w20, w20, 1 bl FlashProgPage - ldr w1, [x20,92] + cmp w20, 10 + bne .L848 + b .L849 +.L847: + ldr w1, [x21,92] mov x3, 0 - ldr x2, [x22,#:lo12:.LANCHOR0] - mov w0, 0 - mul w1, w19, w1 + ldr x2, [x19,#:lo12:.LANCHOR0] + mov w0, w20 + mul w1, w22, w1 + bl FlashProgPage + ldr w1, [x21,92] + mov w0, w20 + ldr x2, [x19,#:lo12:.LANCHOR0] + mov x3, 0 + mul w1, w22, w1 add w1, w1, 1 bl FlashProgPage - ldr w1, [x20,92] +.L849: + add x21, x19, :lo12:.LANCHOR0 + add x20, x24, :lo12:.LANCHOR2 mov w0, 0 - ldr x2, [x24,2232] mov x3, 0 - mul w1, w19, w1 + add w26, w22, 1 + ldr w1, [x21,92] + ldr x2, [x20,2216] + mul w1, w22, w1 bl FlashReadRawPage cmn w0, #1 - beq .L804 - ldr x25, [x24,2216] + beq .L850 + ldr x25, [x20,2200] mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr w1, [x25] cmp w1, w0 - bne .L804 + bne .L850 mov w1, 2036 add x0, x25, 12 bl js_hash ldr w1, [x25,8] cmp w1, w0 - bne .L804 - ldr w0, [x20,92] - cmp w21, 1 - str w26, [x20,8] - mul w19, w19, w0 - str w19, [x24,2224] - beq .L807 - mov w21, 1 -.L804: + bne .L850 + ldr w0, [x21,92] + cmp w23, 1 + str w26, [x21,8] + mul w22, w22, w0 + str w22, [x20,2208] + beq .L853 + mov w23, 1 +.L850: cmp w26, 4 - mov w19, w26 - bne .L806 - b .L805 -.L807: - mov w21, 2 -.L805: + mov w22, w26 + bne .L852 + b .L851 +.L853: + mov w23, 2 +.L851: mov w0, 0 bl flash_exit_slc_mode - cmp w21, wzr + cmp w23, wzr csetm w0, eq ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5405,29 +5695,29 @@ FlashReadIdbDataRaw: stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - ldrb w28, [x0,1229] - ldr w0, [x0,2104] - cbz w0, .L813 + ldrb w28, [x0,1221] + ldr w0, [x0,2100] + cbz w0, .L860 mov w0, 0 bl flash_enter_slc_mode -.L813: +.L860: adrp x26, .LANCHOR0 - adrp x24, .LC12 + adrp x24, .LC13 mov x0, x25 mov w1, 0 mov w2, 2048 mov w23, -1 mov w20, 2 mov x27, x26 - add x24, x24, :lo12:.LC12 + add x24, x24, :lo12:.LC13 bl ftl_memset -.L814: +.L861: add x0, x26, :lo12:.LANCHOR0 ldrb w0, [x0,89] cmp w20, w0 - bcs .L818 + bcs .L865 mov x22, 0 -.L816: +.L863: add x0, x29, 120 add x19, x27, :lo12:.LANCHOR0 ldrb w4, [x22,x0] @@ -5442,18 +5732,18 @@ FlashReadIdbDataRaw: bl FlashReadRawPage cmn w0, #1 ldr x4, [x29,104] - bne .L815 + bne .L862 add x22, x22, 1 cmp x22, 4 - bne .L816 - b .L817 -.L815: + bne .L863 + b .L864 +.L862: ldr x0, [x19] ldr w1, [x0] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L817 + bne .L864 mov w1, w4 mov x0, x24 bl printk @@ -5466,24 +5756,24 @@ FlashReadIdbDataRaw: strb w0, [x19,89] ldr w0, [x19,8] cmp w0, w20 - bls .L821 + bls .L868 mov w23, 0 str w20, [x19,8] bl FlashSavePhyInfo -.L817: +.L864: add w20, w20, 1 - b .L814 -.L821: + b .L861 +.L868: mov w23, 0 -.L818: +.L865: mov w0, w28 add x21, x21, :lo12:.LANCHOR2 bl FlashBchSel - ldr w0, [x21,2104] - cbz w0, .L825 + ldr w0, [x21,2100] + cbz w0, .L872 mov w0, 0 bl flash_exit_slc_mode -.L825: +.L872: mov w0, w23 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5513,41 +5803,41 @@ FlashInit: str x0, [x20,#:lo12:.LANCHOR0] mov w0, 32768 add x22, x20, :lo12:.LANCHOR0 - adrp x24, .LC13 + adrp x24, .LC14 bl ftl_malloc - str x0, [x21,2232] + str x0, [x21,2216] mov w0, 4096 add x22, x22, 24 mov w27, 1 mov w28, 4 bl ftl_malloc - str x0, [x21,2240] + str x0, [x21,2224] mov w0, 32768 bl ftl_malloc - str x0, [x21,2248] + str x0, [x21,2232] mov w0, 4096 bl ftl_malloc - str x0, [x21,2256] + str x0, [x21,2240] mov w0, 128 str w0, [x22,68] mov w0, 60 mov w1, 50 - strb w0, [x21,2229] + strb w0, [x21,2213] mov x0, x23 strb w1, [x22,65] mov w23, 0 - strb w1, [x21,2228] + strb w1, [x21,2212] str wzr, [x22,-16] - strb wzr, [x21,2108] - str wzr, [x21,2200] + strb wzr, [x21,2104] + str wzr, [x21,2184] strb wzr, [x22,64] - strb wzr, [x21,2264] + strb wzr, [x21,2248] bl NandcInit adrp x21, IDByte - add x0, x24, :lo12:.LC13 + add x0, x24, :lo12:.LC14 add x26, x21, :lo12:IDByte str x0, [x29,104] -.L837: +.L884: ldrb w2, [x22,8] uxtb w25, w23 mov w0, w25 @@ -5578,7 +5868,7 @@ FlashInit: strb w2, [x26,4] ldr w2, [x24,2048] strb w2, [x26,5] - bne .L832 + bne .L879 mov w0, 239 str w0, [x24,2056] str w27, [x24,2052] @@ -5588,14 +5878,14 @@ FlashInit: str wzr, [x24,2048] str wzr, [x24,2048] str wzr, [x24,2048] -.L832: +.L879: mov w0, w25 bl NandcFlashDeCs ldrb w2, [x26] sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L833 + bhi .L880 ldr x0, [x29,104] add w1, w23, 1 ldrb w3, [x26,1] @@ -5604,56 +5894,59 @@ FlashInit: ldrb w6, [x26,4] ldrb w7, [x26,5] bl printk -.L833: - cbnz w23, .L834 +.L880: + cbnz w23, .L881 ldrb w0, [x21,#:lo12:IDByte] add x1, x21, :lo12:IDByte sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L888 + bhi .L936 ldrb w0, [x1,1] cmp w0, 255 - beq .L888 + beq .L936 bl FlashCs123Init -.L834: +.L881: ldrb w0, [x26] cmp w0, 181 - bne .L836 + bne .L883 mov w0, 44 strb w0, [x26] -.L836: +.L883: add w23, w23, 1 add x22, x22, 16 cmp w23, 4 add x26, x26, 8 - bne .L837 + bne .L884 ldrb w0, [x21,#:lo12:IDByte] cmp w0, 173 - beq .L838 + beq .L885 add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2112] + ldr w0, [x0,2108] bl NandcSetDdrMode -.L838: +.L885: add x22, x19, :lo12:.LANCHOR2 mov w1, 0 mov w2, 852 - add x0, x22, 1240 + add x0, x22, 1232 bl ftl_memset - add x0, x20, :lo12:.LANCHOR0 + add x2, x20, :lo12:.LANCHOR0 adrp x1, .LANCHOR1 - add x2, x1, :lo12:.LANCHOR1 - ldr w4, [x22,2120] - add x2, x2, 472 - strb wzr, [x0,96] - str x2, [x0,3448] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w4, w0 - bne .L839 + add x0, x1, :lo12:.LANCHOR1 + ldr w4, [x22,2116] + add x0, x0, 472 + strb wzr, [x2,96] + str x0, [x2,104] + mov w2, 12336 + movk w2, 0x5638, lsl 16 + cmp w4, w2 + bne .L886 + ldrb w0, [x0,19] + cmp w0, 50 + beq .L886 mov w0, 1 - str w0, [x22,2104] -.L839: + str w0, [x22,2100] +.L886: add x3, x21, :lo12:IDByte ldrb w0, [x3,1] cmp w0, 218 @@ -5664,16 +5957,16 @@ FlashInit: cset w2, eq orr w2, w5, w2 orr w2, w6, w2 - cbnz w2, .L840 + cbnz w2, .L887 and w2, w0, -3 cmp w2, 209 - beq .L840 + beq .L887 cmp w0, 220 - bne .L841 + bne .L888 ldrb w2, [x3,3] cmp w2, 149 - bne .L841 -.L840: + bne .L888 +.L887: add x2, x20, :lo12:.LANCHOR0 add x3, x19, :lo12:.LANCHOR2 mov w7, 16 @@ -5682,173 +5975,177 @@ FlashInit: strb w7, [x2,89] strb w5, [x2,88] add x2, x1, :lo12:.LANCHOR1 - strb w7, [x3,2229] + strb w7, [x3,2213] ldrb w7, [x21,#:lo12:IDByte] - strb w7, [x2,3321] - strb w0, [x2,3322] + strb w7, [x2,3417] + strb w0, [x2,3418] cmp w7, 152 - bne .L843 + bne .L890 ldrsb w2, [x8,4] - tbnz w2, #31, .L844 + tbnz w2, #31, .L891 mov w2, 24 - strb w2, [x3,2229] -.L843: + strb w2, [x3,2213] +.L890: cmp w4, 2049 - beq .L891 + beq .L939 mov w2, 12336 movk w2, 0x5638, lsl 16 cmp w4, w2 - bne .L846 -.L891: + bne .L893 +.L939: add x2, x19, :lo12:.LANCHOR2 mov w3, 16 - strb w3, [x2,2229] -.L846: - cbz w6, .L848 + strb w3, [x2,2213] +.L893: + cbz w6, .L895 add x0, x1, :lo12:.LANCHOR1 mov w2, 2048 - strh w2, [x0,3334] + strh w2, [x0,3430] mov w2, -38 - b .L933 -.L848: + b .L984 +.L895: cmp w0, 220 - bne .L850 + bne .L897 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3334] + strh w2, [x0,3430] mov w2, -36 -.L933: - strb w2, [x0,3322] - b .L849 -.L850: +.L984: + strb w2, [x0,3418] + b .L896 +.L897: cmp w0, 211 - bne .L849 + bne .L896 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3334] + strh w2, [x0,3430] mov w2, 2 - strb w2, [x0,3333] -.L849: + strb w2, [x0,3429] +.L896: add x22, x1, :lo12:.LANCHOR1 add x0, x20, :lo12:.LANCHOR0 - add x1, x22, 3192 + add x1, x22, 3288 mov w2, 32 - add x0, x0, 104 + add x0, x0, 112 bl ftl_memcpy add x0, x22, 472 - add x1, x22, 3320 + add x1, x22, 3416 mov w2, 32 bl ftl_memcpy -.L841: +.L888: add x22, x20, :lo12:.LANCHOR0 ldrb w0, [x22,88] - cbnz w0, .L851 + cbnz w0, .L898 bl FlashLoadPhyInfoInRam - cbnz w0, .L853 - ldr x0, [x22,3448] + cbnz w0, .L900 + ldr x0, [x22,104] add x22, x19, :lo12:.LANCHOR2 ldrb w1, [x0,17] and w0, w1, 7 - strb w0, [x22,2100] - tbnz x1, 0, .L853 + strb w0, [x22,2093] + tbnz x1, 0, .L900 mov w1, 1 - strb w1, [x22,2108] + strb w1, [x22,2104] bl FlashSetInterfaceMode - ldrb w0, [x22,2100] + ldrb w0, [x22,2093] bl NandcSetMode -.L853: +.L900: add x0, x20, :lo12:.LANCHOR0 add x22, x19, :lo12:.LANCHOR2 - ldr x0, [x0,3448] + ldr x0, [x0,104] ldrb w0, [x0,26] - strb w0, [x22,1228] + strb w0, [x22,1220] bl FlashLoadPhyInfo - cbz w0, .L851 - ldr w0, [x22,2112] - cbz w0, .L856 + cbz w0, .L898 + ldr w0, [x22,2108] + cbz w0, .L903 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L929 -.L856: - ldrb w0, [x22,2100] + b .L980 +.L903: + ldrb w0, [x22,2093] bl FlashSetInterfaceMode - ldrb w0, [x22,2100] -.L929: + ldrb w0, [x22,2093] +.L980: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L851 + cbz w0, .L898 mov w0, 1 add x22, x20, :lo12:.LANCHOR0 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - ldr x1, [x22,3448] - adrp x0, .LC14 - add x0, x0, :lo12:.LC14 + ldr x1, [x22,104] + adrp x0, .LC15 + add x0, x0, :lo12:.LC15 ldrh w1, [x1,14] bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L905 + beq .L954 bl FlashDieInfoInit - ldr x0, [x22,3448] + ldr x0, [x22,104] ldrb w0, [x0,19] bl FlashGetReadRetryDefault - ldr x0, [x22,3448] - ldrh w1, [x22,3456] + ldr x0, [x22,104] + ldrh w1, [x22,3452] ldrb w2, [x0,9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L858 + blt .L905 ldrh w1, [x0,14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L859 -.L858: + bge .L906 +.L905: ldrh w1, [x0,14] and w1, w1, -256 strh w1, [x0,14] -.L859: +.L906: add x22, x19, :lo12:.LANCHOR2 - ldrb w0, [x22,2100] + ldrb w0, [x22,2093] tst w0, 6 - beq .L860 + beq .L907 bl FlashSavePhyInfo - ldr w1, [x22,2224] + mov w0, 0 + bl flash_enter_slc_mode + ldr w1, [x22,2208] mov w0, 0 bl FlashDdrParaScan -.L860: + mov w0, 0 + bl flash_exit_slc_mode +.L907: bl FlashSavePhyInfo -.L851: +.L898: add x23, x20, :lo12:.LANCHOR0 add x22, x19, :lo12:.LANCHOR2 - ldr x2, [x23,3448] - str xzr, [x22,2208] + ldr x2, [x23,104] + str xzr, [x22,2192] ldrb w0, [x2,26] - strb w0, [x22,1228] + strb w0, [x22,1220] ldrh w0, [x2,16] ldrh w3, [x2,10] ubfx x1, x0, 7, 1 strb w1, [x23,96] ubfx x1, x0, 3, 1 - strb w1, [x22,2265] + strb w1, [x22,2249] ubfx x1, x0, 4, 1 - strb w1, [x22,2192] + strb w1, [x22,2094] ldrb w1, [x2,12] ubfx x0, x0, 8, 3 - strb w0, [x22,2100] + strb w0, [x22,2093] ldrb w0, [x2,18] sdiv w1, w3, w1 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr x0, [x23,3448] + ldr x0, [x23,104] ldrh w1, [x0,16] - tbz x1, 6, .L862 + tbz x1, 6, .L909 adrp x1, g_retryMode ldrb w0, [x0,19] - ldrb w2, [x22,1241] - ldrb w3, [x22,1242] + ldrb w2, [x22,1233] + ldrb w3, [x22,1234] strb w0, [x1,#:lo12:g_retryMode] adrp x1, g_maxRegNum strb w2, [x1,#:lo12:g_maxRegNum] @@ -5858,234 +6155,248 @@ FlashInit: uxtb w3, w3 cmp w3, 7 mov x3, x2 - bhi .L863 + bhi .L910 adrp x1, HynixReadRetrial cmp w0, 8 add x1, x1, :lo12:HynixReadRetrial - str x1, [x22,2208] + str x1, [x22,2192] sub w1, w0, #5 cset w2, eq uxtb w1, w1 cmp w1, 1 - bls .L892 - cbz w2, .L864 -.L892: + bls .L940 + cbz w2, .L911 +.L940: add x1, x19, :lo12:.LANCHOR2 mov w3, 1 - str w3, [x1,2184] -.L864: + str w3, [x1,2176] +.L911: cmp w0, 7 add x1, x19, :lo12:.LANCHOR2 - beq .L890 - cbnz w2, .L890 + beq .L938 + cbnz w2, .L938 + add x1, x1, 1252 + b .L914 +.L938: add x1, x1, 1260 - b .L867 -.L890: - add x1, x1, 1268 -.L867: +.L914: mov x2, 0 mov w3, w2 -.L869: +.L916: ldrsb w4, [x1,x2] add x2, x2, 1 cmp w4, wzr csinc w3, w3, w3, ne cmp x2, 32 - bne .L869 + bne .L916 cmp w3, 27 - bls .L862 + bls .L909 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L862 -.L863: + b .L909 +.L910: sub w4, w0, #17 uxtb w4, w4 cmp w4, 2 - bhi .L871 + bhi .L918 adrp x1, MicronReadRetrial cmp w0, 19 add x1, x1, :lo12:MicronReadRetrial - str x1, [x22,2208] - beq .L872 + str x1, [x22,2192] + beq .L919 mov w0, 7 - b .L931 -.L872: + b .L982 +.L919: mov w0, 15 -.L931: +.L982: strb w0, [x2,#:lo12:g_maxRetryCount] - b .L862 -.L871: + b .L909 +.L918: sub w2, w0, #65 uxtb w2, w2 cmp w2, 1 - bls .L893 + bls .L941 cmp w0, 33 - bne .L873 -.L893: + bne .L920 +.L941: add x0, x19, :lo12:.LANCHOR2 adrp x2, ToshibaReadRetrial add x2, x2, :lo12:ToshibaReadRetrial - str x2, [x0,2208] + str x2, [x0,2192] mov w0, 4 strb w0, [x1,#:lo12:g_maxRegNum] mov w0, 7 strb w0, [x3,#:lo12:g_maxRetryCount] - b .L862 -.L873: + b .L909 +.L920: sub w2, w0, #67 + sub w4, w0, #34 uxtb w2, w2 + uxtb w4, w4 cmp w2, 1 - sub w2, w0, #34 - cset w5, ls - uxtb w2, w2 - cmp w2, 1 - bls .L894 - cbz w5, .L875 -.L894: - add x2, x19, :lo12:.LANCHOR2 - adrp x4, ToshibaReadRetrial - add x4, x4, :lo12:ToshibaReadRetrial + cset w2, ls + cmp w4, 1 + bls .L942 + cbz w2, .L922 +.L942: + add x4, x19, :lo12:.LANCHOR2 + adrp x5, ToshibaReadRetrial + add x5, x5, :lo12:ToshibaReadRetrial cmp w0, 35 - str x4, [x2,2208] - beq .L877 + str x5, [x4,2192] + beq .L924 cmp w0, 68 - beq .L877 + beq .L924 mov w0, 7 - b .L930 -.L877: + b .L981 +.L924: mov w0, 17 -.L930: +.L981: strb w0, [x3,#:lo12:g_maxRetryCount] mov w0, 4 - cbnz w5, .L932 + cbnz w2, .L983 mov w0, 5 -.L932: +.L983: strb w0, [x1,#:lo12:g_maxRegNum] - b .L862 -.L875: + b .L909 +.L922: cmp w0, 49 - bne .L862 + bne .L927 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial - str x0, [x22,2208] -.L862: + str x0, [x22,2192] + b .L909 +.L927: + cmp w0, 50 + bne .L909 + adrp x0, samsung_read_retrial + str w2, [x22,2100] + add x0, x0, :lo12:samsung_read_retrial + str x0, [x22,2192] +.L909: add x0, x19, :lo12:.LANCHOR2 mov w1, 12336 movk w1, 0x5638, lsl 16 - ldr w2, [x0,2120] + ldr w2, [x0,2116] cmp w2, w1 - bne .L880 - ldrb w0, [x0,1228] - cbz w0, .L880 + bne .L928 + ldrb w0, [x0,1220] + cbz w0, .L928 add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,3448] + ldr x0, [x0,104] strb wzr, [x0,18] -.L880: +.L928: ldrb w0, [x21,#:lo12:IDByte] cmp w0, 44 - bne .L881 + bne .L929 add x0, x19, :lo12:.LANCHOR2 - ldrb w1, [x0,2108] - cbz w1, .L881 + ldrb w1, [x0,2104] + cbz w1, .L929 mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L882 - ldrb w0, [x0,1228] - cbnz w0, .L881 -.L882: + bne .L930 + ldrb w0, [x0,1220] + cbnz w0, .L929 +.L930: add x0, x19, :lo12:.LANCHOR2 - strb wzr, [x0,2108] + strb wzr, [x0,2104] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L881: +.L929: add x1, x19, :lo12:.LANCHOR2 - ldrb w0, [x1,2100] + ldrb w0, [x1,2093] tst w0, 6 - beq .L883 - ldrb w1, [x1,2108] - cbnz w1, .L884 - tbnz x0, 0, .L883 -.L884: + beq .L931 + ldrb w1, [x1,2104] + cbnz w1, .L932 + tbnz x0, 0, .L931 +.L932: mov w0, 0 bl flash_enter_slc_mode add x1, x19, :lo12:.LANCHOR2 mov w0, 0 - ldr w1, [x1,2224] + ldr w1, [x1,2208] bl FlashDdrParaScan mov w0, 0 bl flash_exit_slc_mode -.L883: +.L931: add x20, x20, :lo12:.LANCHOR0 mov w22, 16 add x19, x19, :lo12:.LANCHOR2 - add x21, x21, :lo12:IDByte - ldr x0, [x20,3448] + ldr x0, [x20,104] ldrb w0, [x0,20] bl FlashBchSel - add x0, x20, 3464 + add x0, x20, 3456 bl FlashReadIdbDataRaw strb w22, [x20,89] mov w0, 18928 movk w0, 0x2, lsl 16 bl FlashTimingCfg - ldr x1, [x20,3448] + ldr x1, [x20,104] + add x4, x21, :lo12:IDByte ldrb w2, [x1,12] - strh w2, [x19,1208] - ldrh w4, [x1,14] + strh w2, [x19,1200] ldrb w2, [x1,7] - str w2, [x19,1204] - ldr w2, [x21] - str w2, [x19,1200] - ldrb w2, [x20,3208] - strh w2, [x19,1210] + str w2, [x19,1196] + ldrb w2, [x4,1] + lsl w3, w2, w22 + orr w2, w3, w2, lsl 8 + ldrb w3, [x21,#:lo12:IDByte] + orr w2, w2, w3 + ldrb w3, [x4,3] + ldrh w4, [x1,14] + orr w2, w2, w3, lsl 24 + str w2, [x19,1192] + ldrb w2, [x20,3216] + strh w2, [x19,1202] ldrb w2, [x1,13] - strh w2, [x19,1212] - strh w4, [x19,1214] + strh w2, [x19,1204] + strh w4, [x19,1206] ldrh w2, [x1,10] - strh w2, [x19,1216] + strh w2, [x19,1208] ldrb w3, [x1,12] ldrh w2, [x1,10] sdiv w2, w2, w3 - strh w2, [x19,1218] + strh w2, [x19,1210] ldrb w3, [x1,9] - strh w3, [x19,1220] + strh w3, [x19,1212] ldrh w5, [x1,10] ldrb w2, [x1,9] mul w2, w2, w5 mov w5, 512 - strh w5, [x19,1224] + strh w5, [x19,1216] ldrb w5, [x20,89] - strh w5, [x19,1226] + strh w5, [x19,1218] uxth w2, w2 ldrb w5, [x20,88] - strh w2, [x19,1222] + strh w2, [x19,1214] cmp w5, 1 - bne .L886 + bne .L934 lsl w2, w2, 1 lsr w4, w4, 1 lsl w3, w3, 1 - strh w2, [x19,1222] + strh w2, [x19,1214] strb w22, [x20,89] mov w2, 8 - strh w4, [x19,1214] - strh w3, [x19,1220] - strh w2, [x19,1226] -.L886: + strh w4, [x19,1206] + strh w3, [x19,1212] + strh w2, [x19,1218] +.L934: ldrb w0, [x1,20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 - b .L905 -.L888: + b .L954 +.L936: mov w0, -2 - b .L905 -.L844: - strb w5, [x3,2264] - b .L843 -.L905: + b .L954 +.L891: + strb w5, [x3,2248] + b .L890 +.L954: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6101,60 +6412,62 @@ FlashPageProgMsbFFData: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp,16] + uxth w19, w2 adrp x20, .LANCHOR0 + adrp x2, .LANCHOR2 str x25, [sp,64] stp x21, x22, [sp,32] - uxtb w21, w0 + add x3, x2, :lo12:.LANCHOR2 + uxtb w22, w0 add x0, x20, :lo12:.LANCHOR0 + mov x21, x2 stp x23, x24, [sp,48] - uxth w19, w2 - adrp x2, .LANCHOR2 - ldr x0, [x0,3448] - mov x22, x2 - ldrb w3, [x0,19] - add x0, x2, :lo12:.LANCHOR2 - ldrb w4, [x0,1228] - cbz w4, .L935 - ldr w0, [x0,2104] - cbnz w0, .L934 -.L935: - sub w0, w3, #5 - uxtb w0, w0 - cmp w0, 2 - bls .L936 - cmp w3, 68 - beq .L936 - sub w3, w3, #19 - and w3, w3, -17 - uxtb w3, w3 - cbnz w3, .L934 -.L936: + ldr x0, [x0,104] + ldrb w4, [x3,1220] + ldrb w0, [x0,19] + cbz w4, .L986 + ldr w2, [x3,2100] + cbnz w2, .L985 +.L986: + sub w2, w0, #5 + uxtb w2, w2 + cmp w2, 2 + bls .L987 + cmp w0, 50 + beq .L987 + sub w2, w0, #19 + and w2, w2, -17 + uxtb w2, w2 + cbz w2, .L987 + cmp w0, 68 + bne .L985 +.L987: mov w23, w1 add x20, x20, :lo12:.LANCHOR0 mov w25, 65535 -.L938: - ldr x0, [x20,3448] +.L990: + ldr x0, [x20,104] ldrh w0, [x0,10] cmp w0, w19 - bls .L934 - add x0, x20, 1160 + bls .L985 + add x0, x20, 1168 ldrh w0, [x0,w19,sxtw 1] cmp w0, w25 - bne .L934 - add x24, x22, :lo12:.LANCHOR2 + bne .L985 + add x24, x21, :lo12:.LANCHOR2 mov w1, 255 mov w2, 32768 - ldr x0, [x24,2232] + ldr x0, [x24,2216] bl ftl_memset - ldr x2, [x24,2232] + ldr x2, [x24,2216] add w1, w19, w23 - mov w0, w21 + mov w0, w22 add w19, w19, 1 mov x3, x2 uxth w19, w19 bl FlashProgPage - b .L938 -.L934: + b .L990 +.L985: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6177,19 +6490,19 @@ FlashReadSlc2KPages: mov x19, x0 add x0, x23, :lo12:.LANCHOR0 str x0, [x29,120] - add x0, x0, 3212 + add x0, x0, 3220 stp x25, x26, [sp,64] str x0, [x29,104] - adrp x0, .LC15 + adrp x0, .LC16 ldrb w25, [x1,#:lo12:.LANCHOR1+481] - add x0, x0, :lo12:.LC15 + add x0, x0, :lo12:.LC16 stp x21, x22, [sp,32] stp x27, x28, [sp,80] mov w22, 0 str x0, [x29,96] -.L947: +.L1002: cmp w22, w24 - beq .L1011 + beq .L1066 ldr w1, [x29,116] sub w4, w24, w22 mov x0, x19 @@ -6198,13 +6511,13 @@ FlashReadSlc2KPages: bl LogAddr2PhyAddr ldr x1, [x29,120] ldr w0, [x29,136] - ldrb w1, [x1,3208] + ldrb w1, [x1,3216] cmp w0, w1 - bcc .L948 + bcc .L1003 mov w0, -1 str w0, [x19] - b .L949 -.L948: + b .L1004 +.L1003: ldr x1, [x29,104] mov w23, 0 adrp x27, .LANCHOR2 @@ -6214,7 +6527,7 @@ FlashReadSlc2KPages: bl NandcWaitFlashReady mov w0, w20 bl NandcFlashCs -.L950: +.L1005: ldr w1, [x29,140] mov w0, w20 adrp x21, .LANCHOR2 @@ -6229,25 +6542,25 @@ FlashReadSlc2KPages: bl NandcXferData mov w26, w0 add x0, x27, :lo12:.LANCHOR2 - ldrb w0, [x0,2264] - cbz w0, .L951 + ldrb w0, [x0,2248] + cbz w0, .L1006 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w26, w26, w28, ls -.L951: +.L1006: cmn w26, #1 - bne .L952 + bne .L1007 cmp w23, 9 - bhi .L952 + bhi .L1007 add w23, w23, 1 - b .L950 -.L952: + b .L1005 +.L1007: cmp w23, wzr mov w27, 256 csel w26, w26, w27, eq mov w23, 0 -.L954: +.L1009: adrp x0, .LANCHOR0 ldr w1, [x29,140] add x0, x0, :lo12:.LANCHOR0 @@ -6271,20 +6584,20 @@ FlashReadSlc2KPages: bl NandcXferData mov w28, w0 add x0, x21, :lo12:.LANCHOR2 - ldrb w0, [x0,2264] - cbz w0, .L957 + ldrb w0, [x0,2248] + cbz w0, .L1012 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w28, w28, w27, ls -.L957: +.L1012: cmn w28, #1 - bne .L958 + bne .L1013 cmp w23, 9 - bhi .L958 + bhi .L1013 add w23, w23, 1 - b .L954 -.L958: + b .L1009 +.L1013: cmp w23, wzr mov w0, w20 mov w27, 256 @@ -6293,64 +6606,64 @@ FlashReadSlc2KPages: add x0, x21, :lo12:.LANCHOR2 cmp w28, w26 csel w28, w28, w26, cs - ldrb w0, [x0,1229] + ldrb w0, [x0,1221] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L960 + bls .L1015 cmn w28, #1 csel w28, w28, w27, eq -.L960: +.L1015: cmp w28, 256 - beq .L971 + beq .L1026 cmn w28, #1 - bne .L961 -.L971: + bne .L1016 +.L1026: str w28, [x19] - b .L963 -.L961: + b .L1018 +.L1016: str wzr, [x19] -.L963: +.L1018: ldr x0, [x19,16] - cbz x0, .L964 + cbz x0, .L1019 ldr w1, [x0,12] cmn w1, #1 - bne .L964 + bne .L1019 ldr w1, [x0,8] cmn w1, #1 - bne .L964 + bne .L1019 ldr w0, [x0] cmn w0, #1 - beq .L964 + beq .L1019 str w1, [x19] -.L964: +.L1019: ldr w3, [x19] cmn w3, #1 - bne .L949 + bne .L1004 add x21, x21, :lo12:.LANCHOR2 ldr w1, [x19,4] ldr x0, [x29,96] - ldrb w2, [x21,1229] + ldrb w2, [x21,1221] bl printk ldr x1, [x19,8] - cbz x1, .L966 - adrp x0, .LC16 - mov w2, 4 - add x0, x0, :lo12:.LC16 - mov w3, 8 - bl rknand_print_hex -.L966: - ldr x1, [x19,16] - cbz x1, .L949 + cbz x1, .L1021 adrp x0, .LC17 mov w2, 4 add x0, x0, :lo12:.LC17 + mov w3, 8 + bl rknand_print_hex +.L1021: + ldr x1, [x19,16] + cbz x1, .L1004 + adrp x0, .LC18 + mov w2, 4 + add x0, x0, :lo12:.LC18 mov w3, w2 bl rknand_print_hex -.L949: +.L1004: add w22, w22, 1 add x19, x19, 56 - b .L947 -.L1011: + b .L1002 +.L1066: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6382,21 +6695,21 @@ FlashReadPages: str w1, [x29,132] str w2, [x29,128] str w3, [x29,116] - cbz w24, .L1052 + cbz w24, .L1107 bl FlashReadSlc2KPages - b .L1101 -.L1052: - add x0, x23, 3212 + b .L1156 +.L1107: + add x0, x23, 3220 str x0, [x29,104] adrp x0, .LANCHOR2 mov w25, w24 add x21, x0, :lo12:.LANCHOR2 - add x0, x21, 1244 + add x0, x21, 1236 str x0, [x29,120] -.L1013: +.L1068: ldr w0, [x29,132] cmp w25, w0 - bcs .L1103 + bcs .L1158 mov w27, 56 ldr w0, [x29,132] ldr w1, [x29,128] @@ -6408,49 +6721,49 @@ FlashReadPages: mov x0, x22 ldr w28, [x22,4] bl LogAddr2PhyAddr - ldrb w1, [x23,3208] + ldrb w1, [x23,3216] mov w20, w0 ldr w0, [x29,152] cmp w0, w1 - bcc .L1015 + bcc .L1070 mov w0, -1 str w0, [x26,x27] - b .L1016 -.L1015: + b .L1071 +.L1070: ldr x1, [x29,104] ldrb w19, [x1,w0,uxtw] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrb w0, [x0,2265] + ldrb w0, [x0,2249] cmp w0, wzr mov w0, w19 csel w20, w20, wzr, ne bl NandcWaitFlashReady - ldr x0, [x23,3448] + ldr x0, [x23,104] ldrb w1, [x0,19] sub w0, w1, #1 uxtb w0, w0 cmp w0, 7 - bhi .L1018 + bhi .L1073 sub w1, w1, #7 - add x0, x21, 1240 + add x0, x21, 1232 sxtw x2, w19 add x0, x0, x2 uxtb w1, w1 cmp w1, 1 ldrb w3, [x0,12] - bhi .L1019 + bhi .L1074 ldrb w3, [x0,20] -.L1019: +.L1074: add x2, x21, x2 - ldrb w0, [x2,2096] + ldrb w0, [x2,2088] cmp w0, w3 - beq .L1018 - ldrb w1, [x21,1241] + beq .L1073 + ldrb w1, [x21,1233] mov w0, w19 ldr x2, [x29,120] bl HynixSetRRPara -.L1018: +.L1073: mov w0, w19 bl NandcFlashCs ldr w0, [x29,128] @@ -6458,36 +6771,36 @@ FlashReadPages: cset w0, eq orr w0, w0, w28, lsr 31 str w0, [x29,140] - cbz w0, .L1020 - ldrb w0, [x21,1228] - cbz w0, .L1020 + cbz w0, .L1075 + ldrb w0, [x21,1220] + cbz w0, .L1075 mov w0, w19 bl flash_enter_slc_mode - b .L1021 -.L1020: + b .L1076 +.L1075: mov w0, w19 bl flash_exit_slc_mode -.L1021: +.L1076: cmp w19, 255 ldr w1, [x29,156] - bne .L1059 + bne .L1114 cmn w1, #1 cset w0, ne - cbz w0, .L1053 -.L1059: - cbz w20, .L1025 + cbz w0, .L1108 +.L1114: + cbz w20, .L1080 ldr w2, [x23,92] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L1026 -.L1025: + b .L1081 +.L1080: mov w0, w19 bl FlashReadCmd - b .L1026 -.L1053: + b .L1081 +.L1108: mov w20, w0 -.L1023: +.L1078: ldrb w2, [x29,136] mov w0, w19 ldr x3, [x22,8] @@ -6496,14 +6809,14 @@ FlashReadPages: bl NandcXferData cmn w0, #1 mov w28, w0 - bne .L1027 + bne .L1082 ldrb w0, [x23,96] - cbz w0, .L1027 + cbz w0, .L1082 strb wzr, [x23,96] mov w20, 0 - b .L1021 -.L1027: - cbz w20, .L1028 + b .L1076 +.L1082: + cbz w20, .L1083 ldr w2, [x23,92] mov w0, w19 ldr w1, [x29,156] @@ -6522,21 +6835,21 @@ FlashReadPages: cmn w0, #1 mov w24, w0 csel w20, w20, wzr, ne -.L1028: +.L1083: mov w0, w19 bl NandcFlashDeCs ldrb w0, [x29,116] cmn w28, #1 strb w0, [x23,96] - bne .L1035 - ldrb w0, [x21,2108] - cbnz w0, .L1030 -.L1034: - ldr x20, [x21,2208] - cbnz x20, .L1031 - b .L1104 -.L1030: - ldr x0, [x21,1160] + bne .L1090 + ldrb w0, [x21,2104] + cbnz w0, .L1085 +.L1089: + ldr x20, [x21,2192] + cbnz x20, .L1086 + b .L1159 +.L1085: + ldr x0, [x21,1152] mov w4, 1 ldr w1, [x29,156] ldr x2, [x22,8] @@ -6546,17 +6859,17 @@ FlashReadPages: bl FlashDdrTunningRead cmn w0, #1 mov w28, w0 - beq .L1033 - ldrb w0, [x21,1229] + beq .L1088 + ldrb w0, [x21,1221] cmp w28, w0, lsr 1 - bls .L1055 -.L1033: + bls .L1110 +.L1088: lsr w0, w20, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L1034 - b .L1055 -.L1031: + beq .L1089 + b .L1110 +.L1086: ldr w1, [x29,156] mov w0, w19 ldr x2, [x22,8] @@ -6565,19 +6878,19 @@ FlashReadPages: cmn w0, #1 mov w28, w0 mov w20, 0 - bne .L1036 - ldr x0, [x23,3448] + bne .L1091 + ldr x0, [x23,104] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 7 - bhi .L1037 - ldrb w1, [x21,1241] + bhi .L1092 + ldrb w1, [x21,1233] mov w0, w19 ldr x2, [x29,120] mov w3, w20 bl HynixSetRRPara -.L1037: +.L1092: ldr w1, [x29,156] mov w0, w19 ldr x2, [x22,8] @@ -6586,25 +6899,25 @@ FlashReadPages: bl FlashReadRawPage mov w28, w0 ldr w1, [x22,4] - adrp x0, .LC18 - ldrb w2, [x21,1229] - add x0, x0, :lo12:.LC18 + adrp x0, .LC19 + ldrb w2, [x21,1221] + add x0, x0, :lo12:.LC19 mov w3, w28 bl printk cmn w28, #1 - bne .L1036 - ldrb w0, [x21,1228] - cbz w0, .L1036 + bne .L1091 + ldrb w0, [x21,1220] + cbz w0, .L1091 ldr w0, [x29,140] - cbz w0, .L1038 + cbz w0, .L1093 mov w0, w19 bl flash_enter_slc_mode - b .L1039 -.L1038: + b .L1094 +.L1093: mov w0, w19 bl flash_exit_slc_mode -.L1039: - ldr x4, [x21,2208] +.L1094: + ldr x4, [x21,2192] mov w0, w19 ldr w1, [x29,156] mov w20, 0 @@ -6612,98 +6925,98 @@ FlashReadPages: ldr x3, [x22,16] blr x4 mov w28, w0 - b .L1036 -.L1104: + b .L1091 +.L1159: ldr w1, [x29,156] mov w0, w19 ldr x2, [x22,8] ldr x3, [x22,16] bl FlashReadRawPage mov w28, w0 - b .L1036 -.L1055: + b .L1091 +.L1110: mov w20, 0 -.L1035: - ldrb w0, [x21,1229] +.L1090: + ldrb w0, [x21,1221] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L1036 - ldr x0, [x21,2208] + bls .L1091 + ldr x0, [x21,2192] cmp x0, xzr mov w0, 256 csel w28, w28, w0, ne -.L1036: +.L1091: cmp w28, 256 - beq .L1060 + beq .L1115 cmn w28, #1 - bne .L1040 -.L1060: + bne .L1095 +.L1115: str w28, [x26,x27] - b .L1042 -.L1040: + b .L1097 +.L1095: str wzr, [x26,x27] -.L1042: +.L1097: ldr w3, [x26,x27] cmn w3, #1 - bne .L1044 + bne .L1099 ldr w1, [x22,4] - adrp x0, .LC15 - ldrb w2, [x21,1229] - add x0, x0, :lo12:.LC15 + adrp x0, .LC16 + ldrb w2, [x21,1221] + add x0, x0, :lo12:.LC16 bl printk ldr x1, [x22,16] - cbz x1, .L1044 - adrp x0, .LC17 + cbz x1, .L1099 + adrp x0, .LC18 mov w2, 4 - add x0, x0, :lo12:.LC17 + add x0, x0, :lo12:.LC18 mov w3, w2 bl rknand_print_hex -.L1044: - cbz w20, .L1046 - ldrb w0, [x21,1229] +.L1099: + cbz w20, .L1101 + ldrb w0, [x21,1221] add w0, w0, w0, lsl 1 cmp w24, w0, lsr 2 - bls .L1047 - ldr x0, [x21,2208] + bls .L1102 + ldr x0, [x21,2192] cmp x0, xzr mov w0, 256 csel w24, w24, w0, ne -.L1047: +.L1102: add w0, w25, 1 mov w1, 56 cmp w24, 256 umull x0, w0, w1 - beq .L1061 + beq .L1116 cmn w24, #1 - bne .L1048 -.L1061: + bne .L1103 +.L1116: str w24, [x26,x0] - b .L1046 -.L1048: + b .L1101 +.L1103: str wzr, [x26,x0] -.L1046: +.L1101: ldr w0, [x29,140] add w25, w25, w20 - cbz w0, .L1016 - ldrb w0, [x21,1228] - cbz w0, .L1016 + cbz w0, .L1071 + ldrb w0, [x21,1220] + cbz w0, .L1071 mov w0, w19 bl flash_exit_slc_mode -.L1016: +.L1071: add w25, w25, 1 - b .L1013 -.L1103: + b .L1068 +.L1158: mov w0, 0 - b .L1101 -.L1026: + b .L1156 +.L1081: mov w0, w19 bl NandcWaitFlashReady - cbz w20, .L1023 + cbz w20, .L1078 ldr w1, [x29,156] mov w0, w19 bl FlashReadDpDataOutCmd - b .L1023 -.L1101: + b .L1078 +.L1156: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6729,33 +7042,33 @@ FlashLoadFactorBbt: stp x23, x24, [sp,48] mov w27, -1 mov w28, 0 - ldrh w0, [x19,1212] - adrp x25, .LC19 - ldrh w21, [x19,1214] + ldrh w0, [x19,1204] + adrp x25, .LC20 + ldrh w21, [x19,1206] adrp x26, .LANCHOR0 - add x25, x25, :lo12:.LC19 + add x25, x25, :lo12:.LC20 mul w21, w0, w21 - add x0, x19, 2272 + add x0, x19, 2256 uxth w21, w21 bl ftl_memset add w24, w21, w27 - ldr x0, [x19,2240] + ldr x0, [x19,2224] str xzr, [x29,144] mov w19, w28 str x0, [x29,152] uxth w24, w24 -.L1106: +.L1161: add x1, x26, :lo12:.LANCHOR0 - ldrb w1, [x1,3208] + ldrb w1, [x1,3216] cmp w1, w19 - bls .L1116 + bls .L1171 mul w4, w19, w21 mov w20, w24 sub w3, w21, #12 mov w5, 61664 -.L1107: +.L1162: cmp w20, w3 - ble .L1109 + ble .L1164 add w1, w4, w20 add x0, x29, 136 lsl w1, w1, 10 @@ -6771,13 +7084,13 @@ FlashLoadFactorBbt: cmn w0, #1 ldr x3, [x29,112] ldr x5, [x29,104] - beq .L1108 + beq .L1163 add x23, x22, :lo12:.LANCHOR2 - ldr x0, [x23,2240] + ldr x0, [x23,2224] ldrh w0, [x0] cmp w0, w5 - bne .L1108 - add x23, x23, 2272 + bne .L1163 + add x23, x23, 2256 mov x0, x25 mov w1, w19 mov w2, w20 @@ -6785,21 +7098,21 @@ FlashLoadFactorBbt: bl printk strh w20, [x23,w19,sxtw 1] uxth w28, w28 - b .L1109 -.L1108: + b .L1164 +.L1163: sub w20, w20, #1 uxth w20, w20 - b .L1107 -.L1109: + b .L1162 +.L1164: adrp x0, .LANCHOR0 add w19, w19, 1 add x1, x0, :lo12:.LANCHOR0 uxtb w19, w19 - ldrb w1, [x1,3208] + ldrb w1, [x1,3216] cmp w1, w28 csel w27, w27, wzr, ne - b .L1106 -.L1116: + b .L1161 +.L1171: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6824,11 +7137,11 @@ FlashReadFacBbtData: stp x25, x26, [sp,64] mov w23, w1 mov w25, w2 - ldrh w1, [x0,1214] + ldrh w1, [x0,1206] mov x21, x4 - ldrh w3, [x0,1212] + ldrh w3, [x0,1204] mov w26, 61664 - ldr x0, [x0,2240] + ldr x0, [x0,2224] str x0, [x29,104] mul w3, w3, w1 adrp x1, .LANCHOR0 @@ -6839,9 +7152,9 @@ FlashReadFacBbtData: str x1, [x29,96] uxth w20, w20 sub w19, w3, #16 -.L1118: +.L1173: cmp w20, w19 - ble .L1126 + ble .L1181 add w0, w20, w24 mov w1, 1 lsl w0, w0, 10 @@ -6851,26 +7164,26 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29,88] cmn w0, #1 - beq .L1119 + beq .L1174 add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,2240] + ldr x0, [x0,2224] ldrh w0, [x0] cmp w0, w26 - bne .L1119 + bne .L1174 mov w0, w22 - cbz x22, .L1120 + cbz x22, .L1175 mov x0, x22 mov w1, w23 mov w2, w25 bl FlashReadFacBbtData.part.6 - b .L1120 -.L1119: + b .L1175 +.L1174: sub w20, w20, #1 uxth w20, w20 - b .L1118 -.L1126: + b .L1173 +.L1181: mov w0, -1 -.L1120: +.L1175: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6886,51 +7199,51 @@ FlashGetBadBlockList: add x29, sp, 0 str x21, [sp,32] mov x21, x0 - adrp x0, .LANCHOR0+3448 + adrp x0, .LANCHOR0+104 stp x19, x20, [sp,16] adrp x20, .LANCHOR2 - ldr x0, [x0,#:lo12:.LANCHOR0+3448] + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrb w2, [x0,13] ldrh w19, [x0,14] add x0, x20, :lo12:.LANCHOR2 mul w19, w2, w19 - ldr x0, [x0,2232] + ldr x0, [x0,2216] uxth w19, w19 add w2, w19, 7 lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L1128 -.L1132: + bne .L1183 +.L1187: mov w1, 0 - b .L1129 -.L1128: + b .L1184 +.L1183: mov w2, 0 lsr w0, w19, 4 mov w1, w2 sub w19, w19, #1 mov w5, 1 -.L1130: +.L1185: cmp w2, w19 - bge .L1129 + bge .L1184 add x3, x20, :lo12:.LANCHOR2 ubfx x4, x2, 5, 11 - ldr x6, [x3,2232] + ldr x6, [x3,2216] lsl w3, w5, w2 ldr w4, [x6,x4,lsl 2] tst w3, w4 - beq .L1131 + beq .L1186 add w3, w1, 1 ubfiz x1, x1, 1, 16 strh w2, [x21,x1] uxth w1, w3 -.L1131: +.L1186: cmp w1, w0 - bcs .L1132 + bcs .L1187 add w2, w2, 1 uxth w2, w2 - b .L1130 -.L1129: + b .L1185 +.L1184: ubfiz x1, x1, 1, 16 mov w0, -1 ldp x19, x20, [sp,16] @@ -6951,20 +7264,19 @@ FlashProgSlc2KPages: adrp x1, .LANCHOR1+481 stp x21, x22, [sp,32] adrp x22, .LANCHOR0 - mov w24, w2 + str x27, [sp,80] stp x25, x26, [sp,64] add x22, x22, :lo12:.LANCHOR0 ldrb w26, [x1,#:lo12:.LANCHOR1+481] - stp x27, x28, [sp,80] stp x19, x20, [sp,16] - mov w27, w3 + mov w24, w2 mov x19, x0 mov x21, x0 mov w25, 0 - add x28, x22, 3212 -.L1138: + add x27, x22, 3220 +.L1193: cmp w25, w23 - beq .L1167 + beq .L1219 mov w1, w24 sub w4, w23, w25 mov x0, x21 @@ -6972,14 +7284,14 @@ FlashProgSlc2KPages: add x3, x29, 100 bl LogAddr2PhyAddr ldr w0, [x29,100] - ldrb w1, [x22,3208] + ldrb w1, [x22,3216] cmp w0, w1 - bcc .L1139 + bcc .L1194 mov w0, -1 str w0, [x21] - b .L1140 -.L1139: - ldrb w20, [x28,w0,uxtw] + b .L1195 +.L1194: + ldrb w20, [x27,w0,uxtw] mov w0, w20 bl NandcWaitFlashReady mov w0, w20 @@ -7032,37 +7344,36 @@ FlashProgSlc2KPages: ldr w1, [x29,96] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1143 + tbz x0, 0, .L1198 mov w0, -1 str w0, [x21] -.L1143: +.L1198: mov w0, w20 bl NandcFlashDeCs -.L1140: +.L1195: add w25, w25, 1 add x21, x21, 56 - b .L1138 -.L1167: + b .L1193 +.L1219: + adrp x25, .LC25 + adrp x26, .LC24 + adrp x27, .LC23 mov w21, 0 - cbz w27, .L1165 - adrp x25, .LC23 - adrp x26, .LC22 - adrp x27, .LC21 - add x25, x25, :lo12:.LC23 - add x26, x26, :lo12:.LC22 - add x27, x27, :lo12:.LC21 -.L1166: + add x25, x25, :lo12:.LC25 + add x26, x26, :lo12:.LC24 + add x27, x27, :lo12:.LC23 +.L1200: cmp w21, w23 - beq .L1165 + beq .L1220 ldr w0, [x19] cmn w0, #1 - bne .L1146 - adrp x0, .LC20 + bne .L1201 + adrp x0, .LC21 ldr w1, [x19,4] - add x0, x0, :lo12:.LC20 + add x0, x0, :lo12:.LC21 bl printk - b .L1147 -.L1146: + b .L1202 +.L1201: adrp x20, .LANCHOR2 sub w4, w23, w21 add x22, x20, :lo12:.LANCHOR2 @@ -7071,68 +7382,77 @@ FlashProgSlc2KPages: add x2, x29, 96 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,2248] + ldr x0, [x22,2232] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,2256] + ldr x0, [x22,2240] str wzr, [x0] add x0, x29, 104 bl memcpy - ldr x0, [x22,2248] + ldr x0, [x22,2232] mov w1, 1 str x0, [x29,112] mov w2, w24 - ldr x0, [x22,2256] + ldr x0, [x22,2240] str x0, [x29,120] add x0, x29, 104 bl FlashReadPages ldr w22, [x29,104] cmn w22, #1 - bne .L1148 + bne .L1203 + adrp x0, .LC22 + ldr w1, [x19,4] + add x0, x0, :lo12:.LC22 + bl printk + str w22, [x19] +.L1203: + ldr w22, [x29,104] + cmp w22, 256 + bne .L1204 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1148: +.L1204: ldr x0, [x19,16] - cbz x0, .L1149 + cbz x0, .L1205 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,2256] + ldr x0, [x0,2240] ldr w3, [x0] cmp w2, w3 - beq .L1149 + beq .L1205 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1149: +.L1205: ldr x0, [x19,8] - cbz x0, .L1147 + cbz x0, .L1202 add x20, x20, :lo12:.LANCHOR2 ldr w2, [x0] - ldr x0, [x20,2248] + ldr x0, [x20,2232] ldr w3, [x0] cmp w2, w3 - beq .L1147 + beq .L1202 ldr w1, [x19,4] mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1147: +.L1202: add w21, w21, 1 add x19, x19, 56 - b .L1166 -.L1165: + b .L1200 +.L1220: mov w0, 0 + ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] ldp x29, x30, [sp], 160 ret .size FlashProgSlc2KPages, .-FlashProgSlc2KPages @@ -7152,8 +7472,8 @@ FlashProgPages: stp x25, x26, [sp,64] stp x27, x28, [sp,80] mov x19, x0 - mov w26, w1 - ldr x5, [x4,3448] + mov w25, w1 + ldr x5, [x4,104] mov w23, w2 ldrb w4, [x4,88] ldrb w5, [x5,19] @@ -7161,89 +7481,83 @@ FlashProgPages: adrp x5, .LANCHOR1+481 ldrb w5, [x5,#:lo12:.LANCHOR1+481] str w5, [x29,124] - cbz w4, .L1169 + cbz w4, .L1222 bl FlashProgSlc2KPages - b .L1170 -.L1169: + b .L1223 +.L1222: adrp x28, .LANCHOR2 - add x24, x28, :lo12:.LANCHOR2 - add x0, x24, 1244 + add x26, x28, :lo12:.LANCHOR2 + add x0, x26, 1236 str x0, [x29,104] -.L1221: - cmp w22, w26 - bcs .L1222 +.L1273: + cmp w22, w25 + bcs .L1274 mov w20, 56 mov w1, w23 - add x3, x29, 132 - sub w4, w26, w22 - umull x20, w22, w20 add x2, x29, 128 + sub w4, w25, w22 + umull x20, w22, w20 + add x3, x29, 132 add x27, x19, x20 mov x0, x27 bl LogAddr2PhyAddr - mov w25, w0 + mov w24, w0 add x1, x21, :lo12:.LANCHOR0 ldr w0, [x29,132] - ldrb w3, [x1,3208] - cmp w0, w3 - bcc .L1171 + ldrb w2, [x1,3216] + cmp w0, w2 + bcc .L1224 mov w0, -1 str w0, [x19,x20] - b .L1172 -.L1171: + b .L1225 +.L1224: add x2, x28, :lo12:.LANCHOR2 - ldrb w2, [x2,2192] + add x1, x1, 3260 + mov x3, 24 + ldrb w2, [x2,2094] cmp w2, wzr - add x2, x1, 3252 - uxtw x1, w0 - mov x0, 24 - csel w25, w25, wzr, ne - madd x0, x1, x0, x2 - ldr x0, [x0,8] - cbz x0, .L1174 - cmp w3, 1 - bne .L1175 - ldr x0, [x24,1160] - bl NandcIqrWaitFlashReady -.L1175: - ldrb w0, [x29,132] + uxtw x2, w0 + csel w24, w24, wzr, ne + madd x1, x2, x3, x1 + ldr x1, [x1,8] + cbz x1, .L1227 bl FlashWaitCmdDone -.L1174: +.L1227: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,132] mov x1, 24 - add x0, x0, 3252 + add x0, x0, 3260 madd x0, x2, x1, x0 ldr w1, [x29,128] str x27, [x0,8] str xzr, [x0,16] str w1, [x0,4] - cbz w25, .L1176 + cbz w24, .L1228 add w1, w22, 1 mov w3, 56 umull x1, w1, w3 add x1, x19, x1 str x1, [x0,16] -.L1176: +.L1228: add x1, x21, :lo12:.LANCHOR0 - add x0, x1, 3212 + add x0, x1, 3220 ldrb w20, [x0,x2] mov x0, 24 madd x2, x2, x0, x1 - ldrb w0, [x1,3208] - strb w20, [x2,3252] + ldrb w0, [x1,3216] + strb w20, [x2,3260] cmp w0, 1 - bne .L1177 + bne .L1229 mov w0, w20 bl NandcWaitFlashReady - b .L1178 -.L1177: + b .L1230 +.L1229: mov w0, w20 str x1, [x29,96] bl NandcFlashCs ldr x1, [x29,96] ldr w0, [x29,132] - add x1, x1, 3220 + add x1, x1, 3228 ldr w0, [x1,x0,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -7252,33 +7566,33 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs -.L1178: +.L1230: ldr w0, [x29,120] sub w0, w0, #1 cmp w0, 7 - bhi .L1179 - add x0, x24, x20, sxtw - ldrb w0, [x0,2096] - cbz w0, .L1179 - ldrb w1, [x24,1241] + bhi .L1231 + add x0, x26, x20, sxtw + ldrb w0, [x0,2088] + cbz w0, .L1231 + ldrb w1, [x26,1233] mov w0, w20 ldr x2, [x29,104] mov w3, 0 bl HynixSetRRPara -.L1179: +.L1231: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1180 - ldrb w0, [x24,1228] - cbz w0, .L1180 + bne .L1232 + ldrb w0, [x26,1220] + cbz w0, .L1232 mov w0, w20 bl flash_enter_slc_mode - b .L1181 -.L1180: + b .L1233 +.L1232: mov w0, w20 bl flash_exit_slc_mode -.L1181: +.L1233: ldr w1, [x29,128] mov w0, w20 bl FlashProgFirstCmd @@ -7288,13 +7602,13 @@ FlashProgPages: mov w1, 1 ldr x4, [x27,16] bl NandcXferData - cbz w25, .L1182 + cbz w24, .L1234 ldr w1, [x29,128] mov w0, w20 add x27, x21, :lo12:.LANCHOR0 bl FlashProgDpFirstCmd ldr w1, [x29,132] - add x0, x27, 3220 + add x0, x27, 3228 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -7316,131 +7630,129 @@ FlashProgPages: ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData -.L1182: +.L1234: ldr w1, [x29,128] mov w0, w20 - add w22, w22, w25 + add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1172: +.L1225: add w22, w22, 1 - b .L1221 -.L1222: - adrp x20, .LANCHOR2 + b .L1273 +.L1274: add x21, x21, :lo12:.LANCHOR0 - add x0, x20, :lo12:.LANCHOR2 - mov x22, 0 - add x24, x21, 3252 - mov x25, 24 - ldr x0, [x0,1160] - bl NandcIqrWaitFlashReady -.L1184: - ldrb w0, [x21,3208] - cmp w0, w22 - bls .L1223 - mov w0, w22 + mov x20, 0 + adrp x22, .LANCHOR2 + add x24, x21, 3260 + mov x26, 24 +.L1236: + ldrb w0, [x21,3216] + cmp w0, w20 + bls .L1275 + mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1185 - add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbz w0, .L1185 - mul x0, x22, x25 + bne .L1237 + add x0, x22, :lo12:.LANCHOR2 + ldrb w0, [x0,1220] + cbz w0, .L1237 + mul x0, x20, x26 ldrb w0, [x0,x24] bl flash_exit_slc_mode -.L1185: - add x22, x22, 1 - b .L1184 -.L1223: +.L1237: + add x20, x20, 1 + b .L1236 +.L1275: ldr w0, [x29,116] - cbnz w0, .L1187 -.L1195: + cbnz w0, .L1239 +.L1247: mov w0, 0 - b .L1170 -.L1187: - adrp x24, .LC23 - adrp x25, .LC22 - adrp x27, .LC21 + b .L1223 +.L1239: + adrp x24, .LC25 + adrp x26, .LC24 + adrp x27, .LC22 mov w21, 0 - add x24, x24, :lo12:.LC23 - add x25, x25, :lo12:.LC22 - add x27, x27, :lo12:.LC21 -.L1188: - cmp w21, w26 - beq .L1195 + add x24, x24, :lo12:.LC25 + add x26, x26, :lo12:.LC24 + add x27, x27, :lo12:.LC22 +.L1240: + cmp w21, w25 + beq .L1247 ldr w0, [x19] cmn w0, #1 - bne .L1189 - adrp x0, .LC20 + bne .L1241 + adrp x0, .LC21 ldr w1, [x19,4] - add x0, x0, :lo12:.LC20 + add x0, x0, :lo12:.LC21 bl printk - b .L1190 -.L1189: + b .L1242 +.L1241: + adrp x20, .LANCHOR2 + sub w4, w25, w21 add x22, x20, :lo12:.LANCHOR2 - sub w4, w26, w21 add x3, x29, 132 mov w1, w23 add x2, x29, 128 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,2248] + ldr x0, [x22,2232] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,2256] + ldr x0, [x22,2240] str wzr, [x0] add x0, x29, 136 bl memcpy - ldr x0, [x22,2248] + ldr x0, [x22,2232] mov w1, 1 str x0, [x29,144] mov w2, w23 - ldr x0, [x22,2256] + ldr x0, [x22,2240] str x0, [x29,152] add x0, x29, 136 bl FlashReadPages ldr w22, [x29,136] cmn w22, #1 - bne .L1191 + bne .L1243 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1191: +.L1243: ldr x0, [x19,16] - cbz x0, .L1192 + cbz x0, .L1244 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,2256] + ldr x0, [x0,2240] ldr w3, [x0] cmp w2, w3 - beq .L1192 + beq .L1244 ldr w1, [x19,4] - mov x0, x25 + mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1192: +.L1244: ldr x0, [x19,8] - cbz x0, .L1190 + cbz x0, .L1242 + add x20, x20, :lo12:.LANCHOR2 ldr w2, [x0] - add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,2248] + ldr x0, [x20,2232] ldr w3, [x0] cmp w2, w3 - beq .L1190 + beq .L1242 ldr w1, [x19,4] mov x0, x24 bl printk mov w0, -1 str w0, [x19] -.L1190: +.L1242: add w21, w21, 1 add x19, x19, 56 - b .L1188 -.L1170: + b .L1240 +.L1223: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7461,12 +7773,12 @@ FlashTestBlk.part.7: uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 lsl w20, w20, 10 - ldr x0, [x19,2232] + ldr x0, [x19,2216] str x0, [x29,48] add x0, x29, 96 str x0, [x29,56] bl ftl_memset - ldr x0, [x19,2232] + ldr x0, [x19,2216] mov w1, 90 mov w2, 8 bl ftl_memset @@ -7503,10 +7815,10 @@ FlashTestBlk: ldr w2, [x0,#:lo12:.LANCHOR0+8] mov w0, 0 cmp w1, w2 - bcc .L1226 + bcc .L1278 mov w0, w1 bl FlashTestBlk.part.7 -.L1226: +.L1278: ldp x29, x30, [sp], 16 ret .size FlashTestBlk, .-FlashTestBlk @@ -7515,26 +7827,25 @@ FlashTestBlk: .type FlashMakeFactorBbt, %function FlashMakeFactorBbt: stp x29, x30, [sp, -240]! - adrp x4, .LANCHOR0 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - add x0, x22, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] stp x23, x24, [sp,48] + adrp x23, .LANCHOR2 + add x0, x23, :lo12:.LANCHOR2 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov x20, x4 - mov w19, 0 - ldr x1, [x0,2240] - add x25, x20, :lo12:.LANCHOR0 - ldrh w21, [x0,1214] + adrp x19, .LANCHOR0 + mov w20, 0 + ldr x1, [x0,2224] + ldrh w22, [x0,1206] str x1, [x29,160] - ldrh w1, [x0,1212] - add x0, x4, :lo12:.LANCHOR0 - mul w21, w1, w21 - ldr x1, [x0,3448] - uxth w21, w21 + ldrh w1, [x0,1204] + add x0, x19, :lo12:.LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + mul w22, w1, w22 + ldr x1, [x0,104] + uxth w22, w22 ldrb w1, [x1,24] str w1, [x29,128] ldrh w1, [x0,92] @@ -7545,70 +7856,70 @@ FlashMakeFactorBbt: ldr w0, [x29,172] csel w0, w1, w0, eq str w0, [x29,172] - adrp x0, .LC24 + adrp x0, .LC26 mov w1, 1 - add x0, x0, :lo12:.LC24 + add x0, x0, :lo12:.LC26 bl printk - add x0, x22, :lo12:.LANCHOR2 + add x0, x23, :lo12:.LANCHOR2 mov w1, 0 mov w2, 4096 - ldr x0, [x0,2240] + ldr x0, [x0,2224] bl ftl_memset - lsr w0, w21, 4 + lsr w0, w22, 4 str w0, [x29,168] - add x0, x25, 3212 + add x0, x19, 3220 str x0, [x29,112] ldr w0, [x29,128] and w0, w0, 1 str w0, [x29,108] - sub w0, w21, #1 + sub w0, w22, #1 uxth w0, w0 str w0, [x29,124] -.L1230: - ldrb w0, [x25,3208] - cmp w0, w19 - bls .L1281 - add x0, x22, :lo12:.LANCHOR2 - sxtw x24, w19 - add x1, x0, 2272 - ldrh w20, [x1,w19,sxtw 1] - cbnz w20, .L1260 - ldrh w2, [x0,1220] - mov w1, w20 - ldr x0, [x25] - mov w26, w20 +.L1282: + ldrb w0, [x19,3216] + cmp w0, w20 + bls .L1332 + add x0, x23, :lo12:.LANCHOR2 + sxtw x25, w20 + add x1, x0, 2256 + ldrh w21, [x1,w20,sxtw 1] + cbnz w21, .L1312 + ldrh w2, [x0,1212] + mov w1, w21 + ldr x0, [x19] + mov w26, w21 lsl w2, w2, 9 - mov w23, w20 - add x28, x25, 3220 + mov w24, w21 + add x28, x19, 3228 bl ftl_memset ldr x0, [x29,112] - ldrb w27, [x0,x24] + ldrb w27, [x0,x25] ldr w0, [x29,128] and w0, w0, 2 uxtb w0, w0 str w0, [x29,120] -.L1232: +.L1284: uxth w0, w26 str w0, [x29,144] - cmp w0, w21 - bcs .L1242 + cmp w0, w22 + bcs .L1294 mov w0, -1 strb w0, [x29,182] strb w0, [x29,183] ldr w0, [x29,108] - cbz w0, .L1234 - ldr w3, [x28,x24,lsl 2] + cbz w0, .L1286 + ldr w3, [x28,x25,lsl 2] mov w0, w27 add x2, x29, 182 - add w3, w20, w3 + add w3, w21, w3 str x3, [x29,96] mov w1, w3 bl FlashReadSpare - ldrb w0, [x25,88] + ldrb w0, [x19,88] ldr x3, [x29,96] cmp w0, 1 - bne .L1234 - ldr w1, [x25,92] + bne .L1286 + ldr w1, [x19,92] mov w0, w27 add x2, x29, 183 add w1, w3, w1 @@ -7617,58 +7928,61 @@ FlashMakeFactorBbt: ldrb w1, [x29,183] and w0, w1, w0 strb w0, [x29,182] -.L1234: +.L1286: ldr w0, [x29,120] - cbz w0, .L1236 - ldr x0, [x25,3448] + cbz w0, .L1288 + ldr x0, [x19,104] add x2, x29, 183 ldrh w1, [x0,10] - ldr w0, [x28,x24,lsl 2] + ldr w0, [x28,x25,lsl 2] sub w1, w1, #1 add w1, w1, w0 mov w0, w27 - add w1, w1, w20 + add w1, w1, w21 bl FlashReadSpare -.L1236: - ldr x0, [x25,3448] +.L1288: + ldr x0, [x19,104] ldrb w1, [x29,182] - ldrb w0, [x0,7] - cmp w0, 8 - beq .L1261 - cmp w0, 1 - bne .L1237 -.L1261: + ldrb w2, [x0,7] + cmp w2, 8 + beq .L1289 + cmp w2, 1 + beq .L1289 + ldrb w0, [x0,18] + cmp w0, 12 + bne .L1290 +.L1289: mov w0, 1 - cbz w1, .L1239 + cbz w1, .L1291 ldrb w0, [x29,183] cmp w0, wzr cset w0, eq - b .L1239 -.L1237: + b .L1291 +.L1290: cmp w1, 255 mov w0, 1 - bne .L1239 + bne .L1291 ldrb w0, [x29,183] cmp w0, 255 cset w0, ne -.L1239: +.L1291: ldr x1, [x29,128] - tbz x1, 2, .L1240 - ldr w1, [x28,x24,lsl 2] + tbz x1, 2, .L1292 + ldr w1, [x28,x25,lsl 2] mov w0, w27 - add w1, w20, w1 + add w1, w21, w1 bl SandiskProgTestBadBlock -.L1240: - cbz w0, .L1241 - adrp x0, .LC25 - mov w1, w19 +.L1292: + cbz w0, .L1293 + adrp x0, .LC27 + mov w1, w20 mov w2, w26 - add x0, x0, :lo12:.LC25 - add w23, w23, 1 + add x0, x0, :lo12:.LC27 + add w24, w24, 1 bl printk ldr x0, [x29,144] - uxth w23, w23 - ldr x2, [x25] + uxth w24, w24 + ldr x2, [x19] ubfx x1, x0, 5, 11 ldrb w3, [x29,144] lsl x1, x1, 2 @@ -7678,134 +7992,134 @@ FlashMakeFactorBbt: orr w0, w3, w0 str w0, [x2,x1] ldr w1, [x29,168] - ldrb w0, [x25,3208] + ldrb w0, [x19,3216] mul w0, w1, w0 - cmp w23, w0 - bgt .L1242 -.L1241: + cmp w24, w0 + bgt .L1294 +.L1293: ldr w0, [x29,172] add w26, w26, 1 - add w20, w20, w0 - b .L1232 -.L1242: - adrp x0, .LC26 - mov w1, w19 - add x0, x0, :lo12:.LC26 - mov w2, w23 + add w21, w21, w0 + b .L1284 +.L1294: + adrp x0, .LC28 + mov w1, w20 + add x0, x0, :lo12:.LC28 + mov w2, w24 bl printk - ldrb w0, [x25,3208] + ldrb w0, [x19,3216] ldr w1, [x29,168] mul w0, w1, w0 - cmp w23, w0 - blt .L1244 - add x0, x22, :lo12:.LANCHOR2 + cmp w24, w0 + blt .L1296 + add x0, x23, :lo12:.LANCHOR2 mov w1, 0 - ldrh w2, [x0,1220] - ldr x0, [x25] + ldrh w2, [x0,1212] + ldr x0, [x19] lsl w2, w2, 9 bl ftl_memset -.L1244: - cbnz w19, .L1246 - adrp x26, .LC27 - ldrh w27, [x25,8] - mov w20, w19 - add x26, x26, :lo12:.LC27 - mov w23, 1 -.L1247: - ldrb w0, [x25,89] +.L1296: + cbnz w20, .L1298 + adrp x26, .LC29 + ldrh w27, [x19,8] + mov w21, w20 + add x26, x26, :lo12:.LC29 + mov w24, 1 +.L1299: + ldrb w0, [x19,89] cmp w0, w27 - bls .L1282 + bls .L1333 mov w0, w27 bl FlashTestBlk - cbz w0, .L1248 + cbz w0, .L1300 mov w1, w27 mov x0, x26 - add w20, w20, 1 + add w21, w21, 1 bl printk ubfx x1, x27, 5, 11 - ldr x2, [x25] + ldr x2, [x19] lsl x1, x1, 2 - lsl w0, w23, w27 - uxth w20, w20 + lsl w0, w24, w27 + uxth w21, w21 ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1248: +.L1300: add w27, w27, 1 uxth w27, w27 - b .L1247 -.L1282: - adrp x26, .LC27 + b .L1299 +.L1333: + adrp x26, .LC29 ldr w28, [x29,124] - sub w27, w21, #50 - add x26, x26, :lo12:.LC27 - mov w23, 1 -.L1250: + sub w27, w22, #50 + add x26, x26, :lo12:.LC29 + mov w24, 1 +.L1302: cmp w28, w27 - ble .L1283 + ble .L1334 mov w0, w28 bl FlashTestBlk - cbz w0, .L1251 + cbz w0, .L1303 mov w1, w28 mov x0, x26 bl printk ubfx x1, x28, 5, 11 - ldr x2, [x25] + ldr x2, [x19] lsl x1, x1, 2 - lsl w0, w23, w28 + lsl w0, w24, w28 ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1251: +.L1303: sub w28, w28, #1 uxth w28, w28 - b .L1250 -.L1283: - ldrb w0, [x25,89] - ldr w1, [x25,8] + b .L1302 +.L1334: + ldrb w0, [x19,89] + ldr w1, [x19,8] sub w0, w0, w1 - cmp w20, w0 - bcc .L1246 - add x0, x22, :lo12:.LANCHOR2 + cmp w21, w0 + bcc .L1298 + add x0, x23, :lo12:.LANCHOR2 mov w1, 0 - ldrh w2, [x0,1220] - ldr x0, [x25] + ldrh w2, [x0,1212] + ldr x0, [x19] lsl w2, w2, 9 bl ftl_memset -.L1246: - adrp x23, .LC28 +.L1298: + adrp x24, .LC30 ldr w27, [x29,124] - mul w26, w19, w21 - add x23, x23, :lo12:.LC28 - add x28, x22, :lo12:.LANCHOR2 - mov w20, -3872 -.L1254: + mul w26, w20, w22 + add x24, x24, :lo12:.LC30 + add x28, x23, :lo12:.LANCHOR2 + mov w21, -3872 +.L1306: mov w2, w27 - mov x0, x23 - mov w1, w19 + mov x0, x24 + mov w1, w20 bl printk - ldr x2, [x25] -.L1255: + ldr x2, [x19] +.L1307: ubfx x0, x27, 5, 11 ldr w0, [x2,x0,lsl 2] lsr w0, w0, w27 and w1, w0, 1 - tbz x0, 0, .L1284 + tbz x0, 0, .L1335 sub w27, w27, #1 uxth w27, w27 - b .L1255 -.L1284: - add x0, x28, 2272 - strh w27, [x0,x24,lsl 1] + b .L1307 +.L1335: + add x0, x28, 2256 + strh w27, [x0,x25,lsl 1] ldr x0, [x29,160] - strh w20, [x0] + strh w21, [x0] strh w27, [x0,2] strh w1, [x0,8] mov w1, 1 - ldr x0, [x25] + ldr x0, [x19] mov w2, w1 str x0, [x29,192] - ldr x0, [x28,2240] + ldr x0, [x28,2224] str x0, [x29,200] add w0, w27, w26 lsl w0, w0, 10 @@ -7818,15 +8132,15 @@ FlashMakeFactorBbt: mov w3, w1 bl FlashProgPages ldr w0, [x29,184] - cbz w0, .L1260 + cbz w0, .L1312 sub w27, w27, #1 uxth w27, w27 - b .L1254 -.L1260: - add w19, w19, 1 - uxtb w19, w19 - b .L1230 -.L1281: + b .L1306 +.L1312: + add w20, w20, 1 + uxtb w20, w20 + b .L1282 +.L1332: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7841,14 +8155,14 @@ FlashMakeFactorBbt: Ftl_log2: mov w2, 1 mov w1, 0 -.L1286: +.L1337: cmp w2, w0 - bhi .L1288 + bhi .L1339 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L1286 -.L1288: + b .L1337 +.L1339: sub w0, w1, #1 ret .size Ftl_log2, .-Ftl_log2 @@ -7868,17 +8182,17 @@ FtlSysBlkNumInit: csel w0, w0, w1, hi adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - ldrh w2, [x1,2292] - ldrh w3, [x1,2302] - str w0, [x1,2288] + ldrh w2, [x1,2276] + ldrh w3, [x1,2286] + str w0, [x1,2272] mul w2, w0, w2 sub w0, w3, w0 - strh w0, [x1,2300] - ldr w0, [x1,2308] - str w2, [x1,2296] + strh w0, [x1,2284] + ldr w0, [x1,2292] + str w2, [x1,2280] sub w2, w0, w2 mov w0, 0 - str w2, [x1,2304] + str w2, [x1,2288] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 @@ -7900,35 +8214,35 @@ FtlConstantsInit: ldrh w6, [x0,8] ldrh w2, [x0,10] ldrh w0, [x0,12] - strh w6, [x1,2312] - strh w2, [x1,2314] - strh w0, [x1,2316] - strh w4, [x1,2302] -.L1293: - add x5, x1, 2320 + strh w6, [x1,2296] + strh w2, [x1,2298] + strh w0, [x1,2300] + strh w4, [x1,2286] +.L1344: + add x5, x1, 2304 strb w3, [x3,x5] add x3, x3, 1 cmp x3, 32 - bne .L1293 + bne .L1344 ldrh w3, [x23,20] ldrb w1, [x23,15] cmp w3, w1 - bcs .L1294 + bcs .L1345 uxtb w8, w0 mov w3, 0 mul w11, w0, w2 ubfiz w10, w8, 1, 7 add x12, x20, :lo12:.LANCHOR2 -.L1295: +.L1346: cmp w3, w0 - bcs .L1297 + bcs .L1348 uxtb w1, w3 mov w5, w3 mov w7, 0 -.L1298: +.L1349: cmp w7, w2 - bcs .L1320 - add x9, x12, 2320 + bcs .L1371 + add x9, x12, 2304 add w13, w5, w11 add w14, w1, w8 add w7, w7, 1 @@ -7937,163 +8251,163 @@ FtlConstantsInit: strb w14, [x9,x13] add w5, w5, w0 uxtb w1, w1 - b .L1298 -.L1320: + b .L1349 +.L1371: add w3, w3, 1 - b .L1295 -.L1297: + b .L1346 +.L1348: add x1, x20, :lo12:.LANCHOR2 lsl w2, w2, 1 lsr w4, w4, 1 - strh w2, [x1,2314] - strh w4, [x1,2302] -.L1294: + strh w2, [x1,2298] + strh w4, [x1,2286] +.L1345: add x1, x20, :lo12:.LANCHOR2 mov w2, 5 cmp w6, 1 - strh w2, [x1,2352] - strh wzr, [x1,2354] - bne .L1299 - strh w6, [x1,2352] -.L1299: + strh w2, [x1,2336] + strh wzr, [x1,2338] + bne .L1350 + strh w6, [x1,2336] +.L1350: add x1, x20, :lo12:.LANCHOR2 mov w2, 4352 - strh w2, [x1,2356] + strh w2, [x1,2340] adrp x2, .LANCHOR0+88 ldrb w26, [x2,#:lo12:.LANCHOR0+88] - cbz w26, .L1300 + cbz w26, .L1351 mov w2, 384 - strh w2, [x1,2356] -.L1300: + strh w2, [x1,2340] +.L1351: add x21, x20, :lo12:.LANCHOR2 ldrh w25, [x23,16] ldrh w24, [x23,20] ldrh w27, [x23,18] - ldrh w22, [x21,2314] - ldrh w19, [x21,2302] - strh w25, [x21,2360] + ldrh w22, [x21,2298] + ldrh w19, [x21,2286] + strh w25, [x21,2344] mul w22, w0, w22 mul w0, w19, w0 - strh w0, [x21,2358] + strh w0, [x21,2342] uxth w22, w22 - strh w27, [x21,2362] - strh w22, [x21,2292] + strh w27, [x21,2346] + strh w22, [x21,2276] mul w0, w22, w25 - strh w0, [x21,2364] + strh w0, [x21,2348] mov w0, w24 - strh w24, [x21,2366] + strh w24, [x21,2350] bl Ftl_log2 uxth w3, w0 lsl w2, w24, 9 - strh w0, [x21,2368] + strh w0, [x21,2352] ldrh w0, [x23,26] cmp w19, 1024 - strh w2, [x21,2370] + strh w2, [x21,2354] ubfx x2, x2, 9, 7 - strh w0, [x21,2374] + strh w0, [x21,2358] lsl w2, w2, 1 mul w0, w22, w19 - strh w2, [x21,2372] - str w0, [x21,2308] - bls .L1301 + strh w2, [x21,2356] + str w0, [x21,2292] + bls .L1352 and w0, w19, 255 - strh w0, [x21,2354] -.L1301: + strh w0, [x21,2338] +.L1352: add x2, x20, :lo12:.LANCHOR2 mul w0, w24, w27 - ldrh w1, [x2,2354] + ldrh w1, [x2,2338] sub w1, w19, w1 mul w1, w22, w1 mul w1, w1, w24 mul w1, w1, w25 asr w1, w1, 11 - str w1, [x2,2376] - ldrh w1, [x2,2356] + str w1, [x2,2360] + ldrh w1, [x2,2340] lsl w1, w1, 3 sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L1317 + bhi .L1368 mov w0, 4 -.L1317: - strh w0, [x2,2380] - cbz w26, .L1304 +.L1368: + strh w0, [x2,2364] + cbz w26, .L1355 add x0, x20, :lo12:.LANCHOR2 mov w1, 640 - strh w1, [x0,2356] -.L1304: + strh w1, [x0,2340] +.L1355: add x1, x20, :lo12:.LANCHOR2 lsl w19, w19, 6 cmp w22, 1 - ldrh w0, [x1,2356] + ldrh w0, [x1,2340] asr w0, w0, w3 add w3, w3, 9 asr w19, w19, w3 - strh w19, [x1,2384] + strh w19, [x1,2368] and w19, w19, 65535 add w0, w0, 2 - strh w0, [x1,2382] + strh w0, [x1,2366] mul w0, w19, w22 - str w0, [x1,2388] + str w0, [x1,2372] add w19, w19, 8 - ldrh w0, [x1,2380] + ldrh w0, [x1,2364] udiv w0, w0, w22 add w19, w19, w0 - bne .L1318 + bne .L1369 add w19, w19, 4 -.L1318: - str w19, [x1,2288] +.L1369: + str w19, [x1,2272] add x19, x20, :lo12:.LANCHOR2 - ldrh w0, [x19,2288] + ldrh w0, [x19,2272] bl FtlSysBlkNumInit - str wzr, [x19,1232] + str wzr, [x19,1224] + ldr w0, [x19,2272] + str w0, [x19,2376] ldr w0, [x19,2288] - str w0, [x19,2392] - ldr w0, [x19,2304] - ldrh w1, [x19,2360] + ldrh w1, [x19,2344] lsl w0, w0, 2 - ldrh w3, [x19,2366] - ldrh w2, [x19,2380] + ldrh w3, [x19,2350] + ldrh w2, [x19,2364] mul w1, w0, w1 - ldrh w0, [x19,2368] - ldrb w5, [x19,1228] + ldrh w0, [x19,2352] + ldrb w5, [x19,1220] add w0, w0, 9 lsr w0, w1, w0 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x19,2398] + strh w1, [x19,2382] uxth w0, w0 - strh w0, [x19,2396] + strh w0, [x19,2380] add w1, w2, 3 - strh w1, [x19,2380] - ldr w1, [x19,2388] + strh w1, [x19,2364] + ldr w1, [x19,2372] add w4, w1, 3 - str w4, [x19,2388] - cbz w5, .L1307 + str w4, [x19,2372] + cbz w5, .L1358 add w2, w2, 4 add w1, w1, 5 - strh w2, [x19,2380] - b .L1319 -.L1307: + strh w2, [x19,2364] + b .L1370 +.L1358: cmp w4, 7 - bhi .L1308 + bhi .L1359 mov w1, 8 -.L1319: - str w1, [x19,2388] -.L1308: +.L1370: + str w1, [x19,2372] +.L1359: add x20, x20, :lo12:.LANCHOR2 - ldrh w1, [x20,2300] - strh wzr, [x20,2400] + ldrh w1, [x20,2284] + strh wzr, [x20,2384] lsr w2, w1, 3 add w1, w2, w1, lsl 1 add w1, w1, 52 add w0, w1, w0, lsl 2 cmp w0, w3, lsl 9 - bcs .L1309 + bcs .L1360 mov w0, 1 - strh w0, [x20,2400] -.L1309: + strh w0, [x20,2384] +.L1360: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -8115,12 +8429,16 @@ FtlMemInit: str x23, [sp,48] add x0, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - str w1, [x0,2472] + str w1, [x0,2456] mov w1, -1 - strh wzr, [x0,2402] - strh w1, [x0,2488] - strh w1, [x0,2490] - strh w1, [x0,2492] + strh wzr, [x0,2386] + strh w1, [x0,2472] + strh w1, [x0,2474] + strh w1, [x0,2476] + str wzr, [x0,2388] + str wzr, [x0,2392] + str wzr, [x0,2396] + str wzr, [x0,2400] str wzr, [x0,2404] str wzr, [x0,2408] str wzr, [x0,2412] @@ -8134,315 +8452,312 @@ FtlMemInit: str wzr, [x0,2444] str wzr, [x0,2448] str wzr, [x0,2452] - str wzr, [x0,2456] str wzr, [x0,2460] str wzr, [x0,2464] str wzr, [x0,2468] - str wzr, [x0,2476] - str wzr, [x0,2480] - str wzr, [x0,2484] - strh w1, [x0,2494] + strh w1, [x0,2478] mov w1, 32 - ldrh w2, [x0,2366] - strh w1, [x0,2496] + ldrh w2, [x0,2350] + strh w1, [x0,2480] mov w1, 128 - strh w1, [x0,2498] + strh w1, [x0,2482] mov w1, 1024 - strh wzr, [x0,2500] + strh wzr, [x0,2484] sdiv w2, w1, w2 - ldrh w1, [x0,2292] - strh wzr, [x0,2502] + ldrh w1, [x0,2276] + strh wzr, [x0,2486] lsl w1, w1, 2 - strh wzr, [x0,2504] - strh wzr, [x0,2506] + strh wzr, [x0,2488] + strh wzr, [x0,2490] cmp w2, w1 - str w2, [x0,2508] - bls .L1322 - str w1, [x0,2508] -.L1322: + str w2, [x0,2492] + bls .L1373 + str w1, [x0,2492] +.L1373: add x19, x20, :lo12:.LANCHOR2 mov w22, 56 - ldrh w0, [x19,2364] - str wzr, [x19,2512] + ldrh w0, [x19,2348] + str wzr, [x19,2496] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,2520] - ldrh w1, [x19,2364] + str x0, [x19,2504] + ldrh w1, [x19,2348] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,2292] - str x0, [x19,2528] + ldrh w21, [x19,2276] + str x0, [x19,2512] mul w21, w21, w22 lsl w23, w21, 3 mov w0, w23 bl ftl_malloc + str x0, [x19,2520] + mov w0, w21 + bl ftl_malloc + str x0, [x19,2528] + mov w0, w23 + bl ftl_malloc str x0, [x19,2536] mov w0, w21 bl ftl_malloc str x0, [x19,2544] - mov w0, w23 + mov w0, w21 bl ftl_malloc str x0, [x19,2552] - mov w0, w21 - bl ftl_malloc - str x0, [x19,2560] - mov w0, w21 - bl ftl_malloc - str x0, [x19,2568] - ldr w0, [x19,2508] + ldr w0, [x19,2492] mul w0, w0, w22 bl ftl_malloc - str x0, [x19,2576] - ldrh w0, [x19,2292] - ldrh w21, [x19,2370] + str x0, [x19,2560] + ldrh w0, [x19,2276] + ldrh w21, [x19,2354] lsl w0, w0, 1 add w0, w0, 1 - str w0, [x19,2584] + str w0, [x19,2568] + mov w0, w21 + bl ftl_malloc + str x0, [x19,2576] + mov w0, w21 + bl ftl_malloc + str x0, [x19,2584] mov w0, w21 bl ftl_malloc str x0, [x19,2592] - mov w0, w21 + ldr w0, [x19,2568] + mul w0, w21, w0 bl ftl_malloc str x0, [x19,2600] - mov w0, w21 + ldr w0, [x19,2492] + mul w0, w21, w0 bl ftl_malloc str x0, [x19,2608] - ldr w0, [x19,2584] - mul w0, w21, w0 + mov w0, w21 bl ftl_malloc str x0, [x19,2616] - ldr w0, [x19,2508] - mul w0, w21, w0 + mov w0, w21 bl ftl_malloc str x0, [x19,2624] - mov w0, w21 - bl ftl_malloc - str x0, [x19,2632] - mov w0, w21 - bl ftl_malloc - str x0, [x19,2640] - ldr w1, [x19,2584] + ldr w1, [x19,2568] mov w0, 24 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,2292] - str x0, [x19,2648] - ldrh w0, [x19,2372] + ldrh w21, [x19,2276] + str x0, [x19,2632] + ldrh w0, [x19,2356] mul w21, w0, w21 mov w0, w21 bl ftl_malloc - str x0, [x19,2656] + str x0, [x19,2640] lsl w0, w21, 3 bl ftl_malloc + str x0, [x19,2648] + ldrh w1, [x19,2356] + ldr w0, [x19,2568] + mul w0, w1, w0 + bl ftl_malloc + str x0, [x19,2656] + ldrh w1, [x19,2356] + ldr w0, [x19,2492] + mul w0, w1, w0 + bl ftl_malloc str x0, [x19,2664] - ldrh w1, [x19,2372] - ldr w0, [x19,2584] - mul w0, w1, w0 - bl ftl_malloc - str x0, [x19,2672] - ldrh w1, [x19,2372] - ldr w0, [x19,2508] - mul w0, w1, w0 - bl ftl_malloc - str x0, [x19,2680] - ldrh w0, [x19,2302] + ldrh w0, [x19,2286] lsl w0, w0, 1 - strh w0, [x19,2688] + strh w0, [x19,2672] and w0, w0, 65534 bl ftl_malloc - str x0, [x19,2696] - ldrh w0, [x19,2688] + str x0, [x19,2680] + ldrh w0, [x19,2672] add x0, x0, 547 lsr x0, x0, 9 - strh w0, [x19,2688] + strh w0, [x19,2672] lsl w0, w0, 9 bl ftl_malloc - ldrh w21, [x19,2302] - str x0, [x19,2704] + ldrh w21, [x19,2286] + str x0, [x19,2688] add x0, x0, 32 lsl w21, w21, 1 + str x0, [x19,2696] + mov w0, w21 + bl ftl_malloc + str x0, [x19,2704] + mov w0, w21 + bl ftl_malloc + ldr w21, [x19,2372] str x0, [x19,2712] + lsl w21, w21, 1 mov w0, w21 bl ftl_malloc str x0, [x19,2720] mov w0, w21 bl ftl_malloc - ldr w21, [x19,2388] str x0, [x19,2728] - lsl w21, w21, 1 - mov w0, w21 - bl ftl_malloc - str x0, [x19,2736] - mov w0, w21 - bl ftl_malloc - str x0, [x19,2744] - ldrh w0, [x19,2302] + ldrh w0, [x19,2286] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc adrp x1, .LANCHOR0+16 str x0, [x1,#:lo12:.LANCHOR0+16] - ldrh w0, [x19,2380] + ldrh w0, [x19,2364] lsl w0, w0, 1 bl ftl_malloc + str x0, [x19,2736] + ldrh w0, [x19,2364] + lsl w0, w0, 1 + bl ftl_malloc + str x0, [x19,2744] + ldrh w0, [x19,2364] + lsl w0, w0, 2 + bl ftl_malloc str x0, [x19,2752] - ldrh w0, [x19,2380] - lsl w0, w0, 1 + ldrh w0, [x19,2366] + lsl w0, w0, 2 bl ftl_malloc str x0, [x19,2760] - ldrh w0, [x19,2380] - lsl w0, w0, 2 - bl ftl_malloc - str x0, [x19,2768] - ldrh w0, [x19,2382] - lsl w0, w0, 2 - bl ftl_malloc - str x0, [x19,2776] - ldrh w2, [x19,2382] + ldrh w2, [x19,2366] mov w1, 0 lsl w2, w2, 2 bl ftl_memset - ldrh w21, [x19,2396] + ldrh w21, [x19,2380] lsl w21, w21, 2 mov w0, w21 bl ftl_malloc - str x0, [x19,2784] + str x0, [x19,2768] mov w0, w21 bl ftl_malloc - str x0, [x19,2792] - ldr w0, [x19,2388] + str x0, [x19,2776] + ldr w0, [x19,2372] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,2800] - ldrh w0, [x19,2398] + str x0, [x19,2784] + ldrh w0, [x19,2382] lsl w0, w0, 4 bl ftl_malloc - str x0, [x19,2808] - ldrh w1, [x19,2398] - ldrh w0, [x19,2370] + str x0, [x19,2792] + ldrh w1, [x19,2382] + ldrh w0, [x19,2354] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,2816] - ldrh w1, [x19,2302] + str x0, [x19,2800] + ldrh w1, [x19,2286] mov w0, 6 mul w0, w1, w0 bl ftl_malloc - str x0, [x19,2824] - ldrh w0, [x19,2358] - ldrh w1, [x19,2314] + str x0, [x19,2808] + ldrh w0, [x19,2342] + ldrh w1, [x19,2298] add w0, w0, 31 asr w0, w0, 5 - strh w0, [x19,2832] + strh w0, [x19,2816] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,2872] - add x1, x19, 2840 - ldrh w4, [x19,2832] - ldrh w5, [x19,2314] + str x0, [x19,2856] + add x1, x19, 2824 + ldrh w4, [x19,2816] + ldrh w5, [x19,2298] mov w0, 1 mov w2, w4 -.L1323: +.L1374: cmp w0, w5 add x1, x1, 8 - bcs .L1423 - ldr x3, [x19,2872] + bcs .L1474 + ldr x3, [x19,2856] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L1323 -.L1423: + b .L1374 +.L1474: add x1, x20, :lo12:.LANCHOR2 -.L1325: +.L1376: cmp w0, 8 - beq .L1424 + beq .L1475 add x2, x1, x0, uxtw 3 add w0, w0, 1 - str xzr, [x2,2872] - b .L1325 -.L1424: + str xzr, [x2,2856] + b .L1376 +.L1475: add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,2736] - cbnz x1, .L1327 -.L1329: - adrp x0, .LC29 + ldr x1, [x0,2720] + cbnz x1, .L1378 +.L1380: adrp x1, .LANCHOR3 - add x0, x0, :lo12:.LC29 + adrp x0, .LC31 add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC31 + add x1, x1, 136 bl printk mov w0, -1 - b .L1328 -.L1327: - ldr x1, [x0,2744] - cbz x1, .L1329 + b .L1379 +.L1378: + ldr x1, [x0,2728] + cbz x1, .L1380 + ldr x1, [x0,2768] + cbz x1, .L1380 ldr x1, [x0,2784] - cbz x1, .L1329 + cbz x1, .L1380 + ldr x1, [x0,2792] + cbz x1, .L1380 ldr x1, [x0,2800] - cbz x1, .L1329 + cbz x1, .L1380 ldr x1, [x0,2808] - cbz x1, .L1329 - ldr x1, [x0,2816] - cbz x1, .L1329 - ldr x1, [x0,2824] - cbz x1, .L1329 - ldr x1, [x0,2872] - cbz x1, .L1329 - ldr x0, [x0,2728] - cbz x0, .L1329 + cbz x1, .L1380 + ldr x1, [x0,2856] + cbz x1, .L1380 + ldr x0, [x0,2712] + cbz x0, .L1380 add x0, x20, :lo12:.LANCHOR2 + ldr x1, [x0,2504] + cbz x1, .L1380 + ldr x1, [x0,2512] + cbz x1, .L1380 ldr x1, [x0,2520] - cbz x1, .L1329 - ldr x1, [x0,2528] - cbz x1, .L1329 + cbz x1, .L1380 ldr x1, [x0,2536] - cbz x1, .L1329 - ldr x1, [x0,2552] - cbz x1, .L1329 - ldr x1, [x0,2560] - cbz x1, .L1329 - ldr x1, [x0,2568] - cbz x1, .L1329 + cbz x1, .L1380 ldr x1, [x0,2544] - cbz x1, .L1329 - ldr x1, [x0,2592] - cbz x1, .L1329 - ldr x1, [x0,2600] - cbz x1, .L1329 - ldr x0, [x0,2608] - cbz x0, .L1329 + cbz x1, .L1380 + ldr x1, [x0,2552] + cbz x1, .L1380 + ldr x1, [x0,2528] + cbz x1, .L1380 + ldr x1, [x0,2576] + cbz x1, .L1380 + ldr x1, [x0,2584] + cbz x1, .L1380 + ldr x0, [x0,2592] + cbz x0, .L1380 add x0, x20, :lo12:.LANCHOR2 + ldr x1, [x0,2600] + cbz x1, .L1380 ldr x1, [x0,2616] - cbz x1, .L1329 + cbz x1, .L1380 + ldr x1, [x0,2624] + cbz x1, .L1380 ldr x1, [x0,2632] - cbz x1, .L1329 + cbz x1, .L1380 ldr x1, [x0,2640] - cbz x1, .L1329 + cbz x1, .L1380 ldr x1, [x0,2648] - cbz x1, .L1329 + cbz x1, .L1380 ldr x1, [x0,2656] - cbz x1, .L1329 - ldr x1, [x0,2664] - cbz x1, .L1329 - ldr x1, [x0,2672] - cbz x1, .L1329 - ldr x1, [x0,2712] - cbz x1, .L1329 + cbz x1, .L1380 ldr x1, [x0,2696] - cbz x1, .L1329 - ldr x0, [x0,2752] - cbz x0, .L1329 + cbz x1, .L1380 + ldr x1, [x0,2680] + cbz x1, .L1380 + ldr x0, [x0,2736] + cbz x0, .L1380 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,2760] - cbz x1, .L1329 - ldr x1, [x0,2768] - cbz x1, .L1329 - ldr x0, [x0,2776] - cbz x0, .L1329 + ldr x1, [x0,2744] + cbz x1, .L1380 + ldr x1, [x0,2752] + cbz x1, .L1380 + ldr x0, [x0,2760] + cbz x0, .L1380 mov w0, 0 -.L1328: +.L1379: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -8457,24 +8772,24 @@ IsBlkInVendorPart: uxth w4, w0 add x1, x1, :lo12:.LANCHOR2 mov w0, 0 - ldrh w2, [x1,2936] - cbz w2, .L1426 - ldrh w2, [x1,2380] - ldr x3, [x1,2752] + ldrh w2, [x1,2920] + cbz w2, .L1477 + ldrh w2, [x1,2364] + ldr x3, [x1,2736] mov x1, 0 -.L1427: +.L1478: cmp w2, w1, uxth - bls .L1432 + bls .L1483 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L1427 + bne .L1478 mov w0, 1 - b .L1426 -.L1432: + b .L1477 +.L1483: mov w0, 0 -.L1426: +.L1477: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -8485,50 +8800,58 @@ FtlCacheMetchLpa: mov w6, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 0 - ldr w3, [x2,2512] - cbz w3, .L1434 - ldr x5, [x2,2576] + ldr w3, [x2,2496] + cbz w3, .L1485 + ldr x5, [x2,2560] mov x0, 56 mov x2, 0 -.L1435: +.L1486: cmp w3, w2 - bls .L1444 + bls .L1495 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L1435 + bcc .L1486 cmp w4, w1 - bhi .L1435 + bhi .L1486 mov w0, 1 - b .L1434 -.L1444: + b .L1485 +.L1495: mov w0, 0 -.L1434: +.L1485: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 .global FtlGetCap .type FtlGetCap, %function FtlGetCap: - adrp x0, .LANCHOR2+1232 - ldr w0, [x0,#:lo12:.LANCHOR2+1232] + adrp x0, .LANCHOR2+1224 + ldr w0, [x0,#:lo12:.LANCHOR2+1224] ret .size FtlGetCap, .-FtlGetCap .align 2 + .global FtlGetCapacity + .type FtlGetCapacity, %function +FtlGetCapacity: + adrp x0, .LANCHOR2+1224 + ldr w0, [x0,#:lo12:.LANCHOR2+1224] + ret + .size FtlGetCapacity, .-FtlGetCapacity + .align 2 .global ftl_get_density .type ftl_get_density, %function ftl_get_density: - adrp x0, .LANCHOR2+1232 - ldr w0, [x0,#:lo12:.LANCHOR2+1232] + adrp x0, .LANCHOR2+1224 + ldr w0, [x0,#:lo12:.LANCHOR2+1224] ret .size ftl_get_density, .-ftl_get_density .align 2 .global FtlGetLpn .type FtlGetLpn, %function FtlGetLpn: - adrp x0, .LANCHOR2+2940 - ldr w0, [x0,#:lo12:.LANCHOR2+2940] + adrp x0, .LANCHOR2+2924 + ldr w0, [x0,#:lo12:.LANCHOR2+2924] ret .size FtlGetLpn, .-FtlGetLpn .align 2 @@ -8542,8 +8865,8 @@ FtlBbmMapBadBlock: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w3, [x19,2358] - add x19, x19, 2840 + ldrh w3, [x19,2342] + add x19, x19, 2824 udiv w2, w1, w3 add x0, x19, x2, uxth 3 ldr x0, [x0,32] @@ -8555,8 +8878,8 @@ FtlBbmMapBadBlock: ldr w5, [x0,x6] orr w4, w4, w5 str w4, [x0,x6] - adrp x0, .LC30 - add x0, x0, :lo12:.LC30 + adrp x0, .LC32 + add x0, x0, :lo12:.LC32 bl printk ldrh w0, [x19,6] add w0, w0, 1 @@ -8573,11 +8896,11 @@ FtlBbmIsBadBlock: adrp x2, .LANCHOR2 uxth w0, w0 add x3, x2, :lo12:.LANCHOR2 - ldrh w1, [x3,2358] + ldrh w1, [x3,2342] udiv w2, w0, w1 msub w0, w2, w1, w0 add x2, x3, x2, uxth 3 - ldr x1, [x2,2872] + ldr x1, [x2,2856] uxth w0, w0 ubfx x3, x0, 5, 11 ldr w1, [x1,x3,lsl 2] @@ -8605,16 +8928,16 @@ FtlBbt2Bitmap: mov x20, x1 mov x0, x1 mov w1, 0 - ldrh w2, [x19,2832] + ldrh w2, [x19,2816] lsl w2, w2, 2 bl ftl_memset mov x3, 0 mov w0, 65535 mov w5, 1 -.L1453: +.L1505: ldrh w2, [x21,x3] cmp w2, w0 - beq .L1451 + beq .L1503 ubfx x4, x2, 5, 11 lsl w2, w5, w2 lsl x4, x4, 2 @@ -8623,11 +8946,11 @@ FtlBbt2Bitmap: ldr w1, [x20,x4] orr w2, w1, w2 str w2, [x20,x4] - ldrh w2, [x19,2846] + ldrh w2, [x19,2830] add w2, w2, 1 - strh w2, [x19,2846] - bne .L1453 -.L1451: + strh w2, [x19,2830] + bne .L1505 +.L1503: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -8644,128 +8967,128 @@ FtlBbmTblFlush: add x19, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w1, [x19,2944] + ldr w1, [x19,2928] stp x25, x26, [sp,64] - cbnz w1, .L1458 - ldr x0, [x19,2592] + cbnz w1, .L1510 + ldr x0, [x19,2576] mov x22, 0 - ldr x3, [x19,2656] - add x21, x19, 2840 - ldrh w2, [x19,2370] - str x0, [x19,2960] - str x3, [x19,2968] + ldr x3, [x19,2640] + add x21, x19, 2824 + ldrh w2, [x19,2354] + str x0, [x19,2944] + str x3, [x19,2952] bl ftl_memset -.L1459: - ldrh w1, [x19,2314] +.L1511: + ldrh w1, [x19,2298] mov w0, w22 - add x20, x19, 2952 + add x20, x19, 2936 add x22, x22, 1 cmp w0, w1 - bge .L1472 + bge .L1524 add x1, x21, x22, lsl 3 - ldrh w2, [x19,2832] + ldrh w2, [x19,2816] ldr x3, [x20,8] ldr x1, [x1,24] mul w0, w0, w2 add x0, x3, x0, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - b .L1459 -.L1472: + b .L1511 +.L1524: ldr x26, [x20,16] mov w1, 255 mov w2, 16 mov w22, 0 mov x0, x26 - adrp x24, .LC31 - adrp x25, .LC32 + adrp x24, .LC33 + adrp x25, .LC34 mov w23, w22 bl ftl_memset - add x24, x24, :lo12:.LC31 + add x24, x24, :lo12:.LC33 mov w0, -3887 strh w0, [x26] - add x25, x25, :lo12:.LC32 + add x25, x25, :lo12:.LC34 ldr w0, [x21,8] str w0, [x26,4] - ldrh w0, [x19,2840] + ldrh w0, [x19,2824] strh w0, [x26,2] ldrh w0, [x21,4] strh w0, [x26,8] ldrh w0, [x21,6] strh w0, [x26,10] - ldr w0, [x19,2288] + ldr w0, [x19,2272] strh w0, [x26,12] -.L1461: - ldr x0, [x19,2592] +.L1513: + ldr x0, [x19,2576] str x0, [x20,8] - ldrh w1, [x19,2840] - ldr x0, [x19,2656] + ldrh w1, [x19,2824] + ldr x0, [x19,2640] str x0, [x20,16] - ldrh w2, [x19,2842] - ldrh w3, [x19,2844] + ldrh w2, [x19,2826] + ldrh w3, [x19,2828] orr w0, w2, w1, lsl 10 ldrh w4, [x26,10] str w0, [x20,4] mov x0, x24 str wzr, [x20] bl printk - ldrh w1, [x19,2362] - ldrh w0, [x19,2842] + ldrh w1, [x19,2346] + ldrh w0, [x19,2826] sub w1, w1, #1 cmp w0, w1 - blt .L1462 - ldr w1, [x19,2848] - ldrh w0, [x19,2840] + blt .L1514 + ldr w1, [x19,2832] + ldrh w0, [x19,2824] add w1, w1, 1 - str w1, [x19,2848] + str w1, [x19,2832] str w1, [x26,4] strh w0, [x26,8] - ldrh w1, [x19,2844] - strh w0, [x19,2844] - ldr x0, [x19,2560] - strh w1, [x19,2840] + ldrh w1, [x19,2828] + strh w0, [x19,2828] + ldr x0, [x19,2544] + strh w1, [x19,2824] lsl w1, w1, 10 str w1, [x20,4] str w1, [x0,4] mov w1, 1 mov w2, w1 - strh wzr, [x19,2842] - ldr x0, [x19,2560] + strh wzr, [x19,2826] + ldr x0, [x19,2544] bl FlashEraseBlocks -.L1462: +.L1514: mov w1, 1 mov x0, x20 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w1, [x19,2842] + ldrh w1, [x19,2826] ldr w0, [x20] add w1, w1, 1 - strh w1, [x19,2842] + strh w1, [x19,2826] cmn w0, #1 - bne .L1463 + bne .L1515 ldr w1, [x20,4] mov x0, x25 add w22, w22, 1 bl printk uxth w22, w22 cmp w22, 3 - bls .L1461 - adrp x0, .LC33 + bls .L1513 + adrp x0, .LC35 ldr w1, [x20,4] - add x0, x0, :lo12:.LC33 + add x0, x0, :lo12:.LC35 mov w2, w22 bl printk mov w0, 1 - str w0, [x19,2944] - b .L1458 -.L1463: + str w0, [x19,2928] + b .L1510 +.L1515: add w23, w23, 1 cmp w23, 1 - beq .L1461 + beq .L1513 cmp w0, 256 - beq .L1461 -.L1458: + beq .L1513 +.L1510: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8786,29 +9109,29 @@ FtlLoadFactoryBbt: stp x25, x26, [sp,64] stp x19, x20, [sp,16] stp x23, x24, [sp,48] - add x21, x1, 2952 - add x23, x1, 2840 - ldr x0, [x1,2592] + add x21, x1, 2936 + add x23, x1, 2824 + ldr x0, [x1,2576] mov w22, 0 - ldr x24, [x1,2656] + ldr x24, [x1,2640] mov x19, x1 str x0, [x21,8] mov w25, -1 str x24, [x21,16] mov w26, 61664 -.L1474: - ldrh w0, [x19,2314] +.L1526: + ldrh w0, [x19,2298] cmp w22, w0 - bcs .L1483 - ldrh w20, [x19,2358] + bcs .L1535 + ldrh w20, [x19,2342] strh w25, [x23,12] -.L1476: +.L1528: sub w20, w20, #1 - ldrh w0, [x19,2358] + ldrh w0, [x19,2342] uxth w20, w20 sub w1, w0, #16 cmp w20, w1 - ble .L1477 + ble .L1529 madd w0, w22, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -8818,16 +9141,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1476 + beq .L1528 ldrh w0, [x24] cmp w0, w26 - bne .L1476 + bne .L1528 strh w20, [x23,12] -.L1477: +.L1529: add w22, w22, 1 add x23, x23, 2 - b .L1474 -.L1483: + b .L1526 +.L1535: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8846,7 +9169,7 @@ FtlBbtMemInit: add x0, x0, :lo12:.LANCHOR2 mov w2, 16 add x29, sp, 0 - add x0, x0, 2852 + add x0, x0, 2836 strh w1, [x0,-12] mov w1, 255 strh wzr, [x0,-6] @@ -8866,22 +9189,22 @@ FtlBbtCalcTotleCnt: str x21, [sp,32] mov w19, 0 mov w20, w19 - ldrh w1, [x0,2358] - ldrh w21, [x0,2314] + ldrh w1, [x0,2342] + ldrh w21, [x0,2298] mul w21, w1, w21 -.L1486: +.L1538: cmp w20, w21 - bge .L1492 + bge .L1544 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L1487 + cbz w0, .L1539 add w19, w19, 1 uxth w19, w19 -.L1487: +.L1539: add w20, w20, 1 uxth w20, w20 - b .L1486 -.L1492: + b .L1538 +.L1544: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -8902,28 +9225,28 @@ FtlMakeBbt: stp x25, x26, [sp,64] stp x27, x28, [sp,80] mov x21, x19 - ldr w22, [x20,2944] - cbnz w22, .L1494 - add x24, x20, 2840 + ldr w22, [x20,2928] + cbnz w22, .L1546 + add x24, x20, 2824 mov x19, x20 mov x25, x24 - add x20, x20, 2952 + add x20, x20, 2936 mov w28, -3872 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L1495: - ldrh w0, [x19,2314] +.L1547: + ldrh w0, [x19,2298] cmp w22, w0 - bcs .L1513 + bcs .L1565 ldrh w4, [x25,12] mov w1, 65535 - ldr x0, [x19,2592] - ldr x26, [x19,2656] + ldr x0, [x19,2576] + ldr x26, [x19,2640] cmp w4, w1 str x0, [x20,8] str x26, [x20,16] - beq .L1496 - ldrh w0, [x19,2358] + beq .L1548 + ldrh w0, [x19,2342] mov w1, 1 mov w2, w1 madd w27, w22, w0, w4 @@ -8931,41 +9254,41 @@ FtlMakeBbt: str w0, [x20,4] mov x0, x20 bl FlashReadPages - ldrh w2, [x19,2358] + ldrh w2, [x19,2342] ldr x0, [x24,32] add w2, w2, 7 ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L1497 -.L1496: + b .L1549 +.L1548: mov w1, w22 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap - ldrh w23, [x19,2358] -.L1499: + ldrh w23, [x19,2342] +.L1551: sub w23, w23, #1 uxth w23, w23 -.L1498: - ldrh w0, [x19,2358] +.L1550: + ldrh w0, [x19,2342] madd w0, w22, w0, w23 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1499 - ldr x0, [x19,2656] + beq .L1551 + ldr x0, [x19,2640] mov w1, 0 mov w2, 16 strh w23, [x25,12] bl ftl_memset strh w28, [x26] str wzr, [x26,4] - ldrh w2, [x19,2832] + ldrh w2, [x19,2816] ldrh w0, [x25,12] strh w0, [x26,2] lsl w2, w2, 2 - ldrh w0, [x19,2358] + ldrh w0, [x19,2342] ldrh w4, [x25,12] ldr x1, [x24,32] madd w27, w22, w0, w4 @@ -8984,93 +9307,93 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x20] cmn w0, #1 - bne .L1497 + bne .L1549 mov w0, w27 bl FtlBbmMapBadBlock - b .L1498 -.L1497: + b .L1550 +.L1549: mov w0, w27 add w22, w22, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L1495 -.L1513: + b .L1547 +.L1565: mov w19, 0 -.L1502: +.L1554: add x20, x21, :lo12:.LANCHOR2 - ldrh w0, [x20,2374] + ldrh w0, [x20,2358] cmp w0, w19 - bls .L1514 + bls .L1566 mov w0, w19 add w19, w19, 1 bl FtlBbmMapBadBlock uxth w19, w19 - b .L1502 -.L1514: - ldrh w19, [x20,2852] + b .L1554 +.L1566: + ldrh w19, [x20,2836] mov w23, 65535 sub w19, w19, #1 uxth w19, w19 -.L1504: - add x22, x20, 2840 +.L1556: + add x22, x20, 2824 ldrh w0, [x22,12] sub w0, w0, #48 cmp w19, w0 - ble .L1508 + ble .L1560 mov w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1505 + beq .L1557 mov w0, w19 bl FlashTestBlk - cbz w0, .L1506 + cbz w0, .L1558 mov w0, w19 bl FtlBbmMapBadBlock - b .L1505 -.L1506: - ldrh w0, [x20,2840] + b .L1557 +.L1558: + ldrh w0, [x20,2824] cmp w0, w23 - bne .L1507 - strh w19, [x20,2840] - b .L1505 -.L1507: + bne .L1559 + strh w19, [x20,2824] + b .L1557 +.L1559: strh w19, [x22,4] - b .L1508 -.L1505: + b .L1560 +.L1557: sub w19, w19, #1 uxth w19, w19 - b .L1504 -.L1508: + b .L1556 +.L1560: add x19, x21, :lo12:.LANCHOR2 mov w2, 2 - ldr x1, [x19,2560] - ldrh w0, [x19,2840] - str wzr, [x19,2848] + ldr x1, [x19,2544] + ldrh w0, [x19,2824] + str wzr, [x19,2832] lsl w0, w0, 10 str w0, [x1,4] - strh wzr, [x19,2842] - ldr x0, [x19,2560] - ldrh w1, [x19,2844] + strh wzr, [x19,2826] + ldr x0, [x19,2544] + ldrh w1, [x19,2828] lsl w1, w1, 10 str w1, [x0,60] mov w1, 1 bl FlashEraseBlocks - ldrh w0, [x19,2840] + ldrh w0, [x19,2824] bl FtlBbmMapBadBlock - ldrh w0, [x19,2844] + ldrh w0, [x19,2828] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - strh wzr, [x19,2842] - ldr w0, [x19,2848] - ldrh w1, [x19,2844] + strh wzr, [x19,2826] + ldr w0, [x19,2832] + ldrh w1, [x19,2828] add w0, w0, 1 - str w0, [x19,2848] - ldrh w0, [x19,2840] - strh w0, [x19,2844] - strh w1, [x19,2840] + str w0, [x19,2832] + ldrh w0, [x19,2824] + strh w0, [x19,2828] + strh w1, [x19,2824] bl FtlBbmTblFlush -.L1494: +.L1546: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9088,11 +9411,11 @@ V2P_block: uxth w0, w0 add x3, x3, :lo12:.LANCHOR2 uxth w1, w1 - ldrh w4, [x3,2316] + ldrh w4, [x3,2300] udiv w2, w0, w4 msub w0, w2, w4, w0 madd w0, w1, w4, w0 - ldrh w1, [x3,2358] + ldrh w1, [x3,2342] madd w0, w2, w1, w0 ret .size V2P_block, .-V2P_block @@ -9103,8 +9426,8 @@ P2V_plane: adrp x2, .LANCHOR2 uxth w0, w0 add x2, x2, :lo12:.LANCHOR2 - ldrh w1, [x2,2316] - ldrh w3, [x2,2358] + ldrh w1, [x2,2300] + ldrh w3, [x2,2342] udiv w2, w0, w1 udiv w3, w0, w3 msub w0, w2, w1, w0 @@ -9118,10 +9441,10 @@ P2V_block_in_plane: adrp x2, .LANCHOR2 uxth w0, w0 add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,2358] + ldrh w3, [x2,2342] udiv w1, w0, w3 msub w0, w1, w3, w0 - ldrh w1, [x2,2316] + ldrh w1, [x2,2300] uxth w0, w0 udiv w0, w0, w1 ret @@ -9132,16 +9455,16 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L1519 + bls .L1571 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L1520 -.L1519: + b .L1572 +.L1571: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L1520: +.L1572: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 @@ -9158,12 +9481,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR2 - bne .L1522 - ldrh w19, [x3,2362] - b .L1523 -.L1522: - ldrh w19, [x3,2360] -.L1523: + bne .L1574 + ldrh w19, [x3,2346] + b .L1575 +.L1574: + ldrh w19, [x3,2344] +.L1575: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -9178,12 +9501,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1524 + bne .L1576 mov w22, 0 mov w25, 2 -.L1525: +.L1577: cmp w22, w19 - bgt .L1524 + bgt .L1576 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -9195,21 +9518,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1526 + bne .L1578 ldr w0, [x24,4] cmn w0, #1 - bne .L1526 + bne .L1578 ldr w0, [x29,88] cmn w0, #1 - beq .L1526 + beq .L1578 sub w19, w20, #1 sxth w19, w19 - b .L1525 -.L1526: + b .L1577 +.L1578: add w20, w20, 1 sxth w22, w20 - b .L1525 -.L1524: + b .L1577 +.L1576: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -9230,20 +9553,20 @@ FtlLoadBbt: add x23, x19, :lo12:.LANCHOR2 mov w24, 61649 stp x21, x22, [sp,32] - add x21, x23, 2952 - ldr x0, [x23,2592] - ldr x22, [x23,2656] + add x21, x23, 2936 + ldr x0, [x23,2576] + ldr x22, [x23,2640] str x0, [x21,8] str x22, [x21,16] bl FtlBbtMemInit - ldrh w20, [x23,2358] + ldrh w20, [x23,2342] sub w20, w20, #1 uxth w20, w20 -.L1533: - ldrh w0, [x23,2358] +.L1585: + ldrh w0, [x23,2342] sub w0, w0, #48 cmp w20, w0 - ble .L1536 + ble .L1588 lsl w0, w20, 10 mov w1, 1 str w0, [x21,4] @@ -9252,7 +9575,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - bne .L1534 + bne .L1586 ldr w0, [x21,4] mov w1, 1 mov w2, w1 @@ -9260,128 +9583,128 @@ FtlLoadBbt: str w0, [x21,4] mov x0, x21 bl FlashReadPages -.L1534: +.L1586: ldr w0, [x21] cmn w0, #1 - beq .L1535 + beq .L1587 ldrh w0, [x22] cmp w0, w24 - bne .L1535 + bne .L1587 ldr w1, [x22,4] - str w1, [x23,2848] - strh w20, [x23,2840] + str w1, [x23,2832] + strh w20, [x23,2824] ldrh w1, [x22,8] - strh w1, [x23,2844] - b .L1536 -.L1535: + strh w1, [x23,2828] + b .L1588 +.L1587: sub w20, w20, #1 uxth w20, w20 - b .L1533 -.L1536: + b .L1585 +.L1588: add x21, x19, :lo12:.LANCHOR2 mov w2, 65535 mov w0, -1 - ldrh w1, [x21,2840] + ldrh w1, [x21,2824] cmp w1, w2 - beq .L1538 - ldrh w1, [x21,2844] + beq .L1590 + ldrh w1, [x21,2828] cmp w1, w2 - beq .L1540 - add x0, x21, 2952 + beq .L1592 + add x0, x21, 2936 lsl w1, w1, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 bl FlashReadPages - ldr w0, [x21,2952] + ldr w0, [x21,2936] cmn w0, #1 - beq .L1540 + beq .L1592 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1540 + bne .L1592 ldr w0, [x22,4] - ldr w1, [x21,2848] + ldr w1, [x21,2832] cmp w0, w1 - bls .L1540 - str w0, [x21,2848] - ldrh w1, [x21,2844] + bls .L1592 + str w0, [x21,2832] + ldrh w1, [x21,2828] ldrh w0, [x22,8] - strh w1, [x21,2840] - strh w0, [x21,2844] -.L1540: + strh w1, [x21,2824] + strh w0, [x21,2828] +.L1592: add x20, x19, :lo12:.LANCHOR2 mov w1, 1 - add x23, x20, 2952 + add x23, x20, 2936 mov w24, 61649 - ldrh w0, [x20,2840] + ldrh w0, [x20,2824] bl FtlGetLastWrittenPage sxth w21, w0 add w0, w0, 1 - strh w0, [x20,2842] -.L1542: - tbnz w21, #31, .L1547 - ldrh w0, [x20,2840] + strh w0, [x20,2826] +.L1594: + tbnz w21, #31, .L1599 + ldrh w0, [x20,2824] mov w1, 1 mov w2, w1 orr w0, w21, w0, lsl 10 str w0, [x23,4] - ldr x0, [x20,2592] + ldr x0, [x20,2576] str x0, [x23,8] mov x0, x23 bl FlashReadPages ldr w0, [x23] cmn w0, #1 - beq .L1543 + beq .L1595 ldrh w0, [x22] cmp w0, w24 - bne .L1543 -.L1547: + bne .L1595 +.L1599: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x22,10] mov w2, 65535 - strh w0, [x1,2846] + strh w0, [x1,2830] ldrh w0, [x22,12] cmp w0, w2 - bne .L1544 - b .L1545 -.L1543: + bne .L1596 + b .L1597 +.L1595: sub w21, w21, #1 sxth w21, w21 - b .L1542 -.L1544: - ldr w2, [x1,2288] + b .L1594 +.L1596: + ldr w2, [x1,2272] cmp w0, w2 - beq .L1545 - ldrh w1, [x1,2302] + beq .L1597 + ldrh w1, [x1,2286] lsr w1, w1, 2 cmp w0, w1 - bcs .L1545 + bcs .L1597 cmp w2, w1 - bcs .L1545 + bcs .L1597 bl FtlSysBlkNumInit -.L1545: +.L1597: add x19, x19, :lo12:.LANCHOR2 mov x20, 0 - add x21, x19, 2840 -.L1548: - ldrh w0, [x19,2314] + add x21, x19, 2824 +.L1600: + ldrh w0, [x19,2298] mov w1, w20 add x20, x20, 1 cmp w1, w0 - bcs .L1566 - ldrh w2, [x19,2832] + bcs .L1618 + ldrh w2, [x19,2816] add x0, x21, x20, lsl 3 - ldr x3, [x19,2960] + ldr x3, [x19,2944] mul w1, w1, w2 ldr x0, [x0,24] lsl w2, w2, 2 add x1, x3, x1, lsl 2 bl ftl_memcpy - b .L1548 -.L1566: + b .L1600 +.L1618: mov w0, 0 -.L1538: +.L1590: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9397,11 +9720,11 @@ FtlFreeSysBlkQueueInit: stp x29, x30, [sp, -16]! add x1, x1, :lo12:.LANCHOR2 add x29, sp, 0 - strh w0, [x1,3008] - add x0, x1, 3016 - strh wzr, [x1,3010] - strh wzr, [x1,3012] - strh wzr, [x1,3014] + strh w0, [x1,2992] + add x0, x1, 3000 + strh wzr, [x1,2994] + strh wzr, [x1,2996] + strh wzr, [x1,2998] mov w1, 0 bl ftl_memset mov w0, 0 @@ -9412,8 +9735,8 @@ FtlFreeSysBlkQueueInit: .global FtlFreeSysBlkQueueEmpty .type FtlFreeSysBlkQueueEmpty, %function FtlFreeSysBlkQueueEmpty: - adrp x0, .LANCHOR2+3014 - ldrh w0, [x0,#:lo12:.LANCHOR2+3014] + adrp x0, .LANCHOR2+2998 + ldrh w0, [x0,#:lo12:.LANCHOR2+2998] cmp w0, wzr cset w0, eq ret @@ -9422,8 +9745,8 @@ FtlFreeSysBlkQueueEmpty: .global FtlFreeSysBlkQueueFull .type FtlFreeSysBlkQueueFull, %function FtlFreeSysBlkQueueFull: - adrp x0, .LANCHOR2+3014 - ldrh w0, [x0,#:lo12:.LANCHOR2+3014] + adrp x0, .LANCHOR2+2998 + ldrh w0, [x0,#:lo12:.LANCHOR2+2998] cmp w0, 1024 cset w0, eq ret @@ -9441,37 +9764,37 @@ FtlFreeSysBlkQueueIn: mov w0, 65533 sub w2, w21, #1 cmp w0, w2, uxth - bcc .L1570 + bcc .L1622 adrp x2, .LANCHOR2 add x20, x2, :lo12:.LANCHOR2 mov x19, x2 - ldrh w0, [x20,3014] + ldrh w0, [x20,2998] cmp w0, 1024 - beq .L1570 - cbz w1, .L1572 - ldr w0, [x20,2944] - cbnz w0, .L1572 + beq .L1622 + cbz w1, .L1624 + ldr w0, [x20,2928] + cbnz w0, .L1624 mov w0, w21 bl P2V_block_in_plane uxth w22, w0 - ldr x0, [x20,2560] + ldr x0, [x20,2544] lsl w1, w21, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 - ldr x0, [x20,2560] + ldr x0, [x20,2544] bl FlashEraseBlocks ubfiz x0, x22, 1, 16 - ldr x2, [x20,2712] + ldr x2, [x20,2696] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x20,2452] + ldr w0, [x20,2436] add w0, w0, 1 - str w0, [x20,2452] -.L1572: + str w0, [x20,2436] +.L1624: add x1, x19, :lo12:.LANCHOR2 - add x1, x1, 3008 + add x1, x1, 2992 ldrh w0, [x1,6] ldrh w2, [x1,4] add w0, w0, 1 @@ -9481,7 +9804,7 @@ FtlFreeSysBlkQueueIn: and w2, w2, 1023 strh w21, [x0,8] strh w2, [x1,4] -.L1570: +.L1622: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -9499,53 +9822,53 @@ FtlLowFormatEraseBlock: add x28, x21, :lo12:.LANCHOR2 stp x25, x26, [sp,64] uxth w25, w0 - ldr w2, [x28,2944] - ldrb w0, [x28,2192] + ldr w2, [x28,2928] + ldrb w0, [x28,2094] stp x23, x24, [sp,48] str w0, [x29,120] uxtb w24, w1 stp x19, x20, [sp,16] mov w0, 0 - cbnz w2, .L1580 - ldrb w0, [x28,1228] + cbnz w2, .L1632 + ldrb w0, [x28,1220] mov w26, w2 str w0, [x29,124] mov w20, w2 - str w25, [x28,2484] + str w25, [x28,2468] mov w19, w2 mov w23, 56 mov w27, 4 -.L1581: - ldrh w0, [x28,2292] +.L1633: + ldrh w0, [x28,2276] cmp w0, w26 - bls .L1625 + bls .L1677 umull x0, w26, w23 - ldr x1, [x28,2560] + ldr x1, [x28,2544] str wzr, [x1,x0] - add x0, x28, 2320 + add x0, x28, 2304 mov w1, w25 ldrb w0, [x0,w26,sxtw] bl V2P_block uxth w22, w0 mov w1, w22 - cbz w24, .L1582 + cbz w24, .L1634 str x1, [x29,112] bl IsBlkInVendorPart ldr x1, [x29,112] - cbnz w0, .L1583 -.L1582: + cbnz w0, .L1635 +.L1634: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1584 + cbnz w0, .L1636 umull x0, w20, w23 - ldr x1, [x28,2560] + ldr x1, [x28,2544] lsl w22, w22, 10 add x1, x1, x0 str w22, [x1,4] - ldr x1, [x28,2560] - ldr x3, [x28,2664] + ldr x1, [x28,2544] + ldr x3, [x28,2648] add x1, x1, x0 - ldrh w0, [x28,2372] + ldrh w0, [x28,2356] mul w0, w20, w0 add w20, w20, 1 str xzr, [x1,8] @@ -9553,140 +9876,140 @@ FtlLowFormatEraseBlock: uxth w20, w20 add x0, x3, x0, sxtw 2 str x0, [x1,16] - b .L1583 -.L1584: + b .L1635 +.L1636: add w19, w19, 1 uxth w19, w19 -.L1583: +.L1635: add w2, w26, 1 uxth w26, w2 - b .L1581 -.L1625: - cbz w20, .L1604 + b .L1633 +.L1677: + cbz w20, .L1656 ldr w0, [x29,124] mov w2, w20 - strb wzr, [x28,2192] + strb wzr, [x28,2094] mov x23, 0 cmp w0, wzr - ldr x0, [x28,2560] + ldr x0, [x28,2544] cset w22, ne mov x26, 56 mov w1, w22 bl FlashEraseBlocks ldrb w0, [x29,120] - strb w0, [x28,2192] -.L1587: + strb w0, [x28,2094] +.L1639: cmp w20, w23, uxth - bls .L1626 + bls .L1678 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 - ldr x1, [x1,2560] + ldr x1, [x1,2544] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L1588 + bne .L1640 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L1588: +.L1640: add x23, x23, 1 - b .L1587 -.L1626: - cbnz w24, .L1590 + b .L1639 +.L1678: + cbnz w24, .L1642 mov w0, 1 uxth w22, w22 mov w27, 6 str w0, [x29,124] - b .L1591 -.L1590: + b .L1643 +.L1642: add x0, x21, :lo12:.LANCHOR2 - ldrh w1, [x0,2362] - ldrb w0, [x0,1228] + ldrh w1, [x0,2346] + ldrb w0, [x0,1220] str w1, [x29,124] - cbnz w0, .L1607 + cbnz w0, .L1659 uxtw x0, w1 mov w22, 1 lsr w27, w0, 2 - b .L1591 -.L1607: + b .L1643 +.L1659: mov w22, 1 mov w27, w22 -.L1591: +.L1643: mov w23, 0 add x28, x21, :lo12:.LANCHOR2 -.L1600: +.L1652: mov w26, 0 mov w20, w26 -.L1592: - ldrh w0, [x28,2292] +.L1644: + ldrh w0, [x28,2276] cmp w0, w26 - bls .L1627 + bls .L1679 mov w0, 56 - ldr x1, [x28,2560] + ldr x1, [x28,2544] umull x0, w26, w0 str wzr, [x1,x0] - add x0, x28, 2320 + add x0, x28, 2304 mov w1, w25 ldrb w0, [x0,w26,sxtw] bl V2P_block uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w24, .L1593 + cbz w24, .L1645 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L1594 -.L1593: + cbnz w0, .L1646 +.L1645: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1594 + cbnz w0, .L1646 mov w0, 56 - ldr x1, [x28,2560] + ldr x1, [x28,2544] ldr w2, [x29,112] umull x0, w20, w0 add x1, x1, x0 add w2, w23, w2, lsl 10 str w2, [x1,4] mov w2, 4 - ldr x1, [x28,2560] + ldr x1, [x28,2544] add x1, x1, x0 - ldr x0, [x28,2632] + ldr x0, [x28,2616] str x0, [x1,8] - ldrh w0, [x28,2372] + ldrh w0, [x28,2356] mul w0, w20, w0 add w20, w20, 1 sdiv w0, w0, w2 uxth w20, w20 - ldr x2, [x28,2640] + ldr x2, [x28,2624] add x0, x2, x0, sxtw 2 str x0, [x1,16] -.L1594: +.L1646: add w3, w26, 1 uxth w26, w3 - b .L1592 -.L1627: - cbz w20, .L1604 - ldr x0, [x28,2560] + b .L1644 +.L1679: + cbz w20, .L1656 + ldr x0, [x28,2544] mov w1, w20 mov w2, w22 mov w3, 1 - strb wzr, [x28,2192] + strb wzr, [x28,2094] bl FlashProgPages ldrb w0, [x29,120] mov x1, 0 - strb w0, [x28,2192] -.L1597: + strb w0, [x28,2094] +.L1649: cmp w20, w1, uxth - bls .L1628 + bls .L1680 mov x0, 56 - ldr x2, [x28,2560] + ldr x2, [x28,2544] mul x0, x1, x0 add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L1598 + cbz w0, .L1650 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -9694,47 +10017,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L1598: +.L1650: add x1, x1, 1 - b .L1597 -.L1628: + b .L1649 +.L1680: add w23, w23, w27 ldr w0, [x29,124] uxth w23, w23 cmp w23, w0 - bcc .L1600 + bcc .L1652 mov x23, 0 mov x26, 56 -.L1601: +.L1653: cmp w20, w23, uxth - bls .L1629 - cbz w24, .L1602 + bls .L1681 + cbz w24, .L1654 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 - ldr x1, [x1,2560] + ldr x1, [x1,2544] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L1602 + cbnz w0, .L1654 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L1602: +.L1654: add x23, x23, 1 - b .L1601 -.L1629: + b .L1653 +.L1681: cmp w25, 63 - bls .L1608 - cbz w24, .L1604 -.L1608: + bls .L1660 + cbz w24, .L1656 +.L1660: add x21, x21, :lo12:.LANCHOR2 mov w1, w22 mov w2, w20 - ldr x0, [x21,2560] + ldr x0, [x21,2544] bl FlashEraseBlocks -.L1604: +.L1656: mov w0, w19 -.L1580: +.L1632: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9747,21 +10070,21 @@ FtlLowFormatEraseBlock: .global FtlFreeSysBLkSort .type FtlFreeSysBLkSort, %function FtlFreeSysBLkSort: - adrp x0, .LANCHOR4+740 - ldrh w6, [x0,#:lo12:.LANCHOR4+740] + adrp x0, .LANCHOR4+724 + ldrh w6, [x0,#:lo12:.LANCHOR4+724] adrp x0, .LANCHOR2 add x1, x0, :lo12:.LANCHOR2 - add x1, x1, 3008 + add x1, x1, 2992 ldrh w2, [x1,6] - cbz w2, .L1630 + cbz w2, .L1682 mov w5, 0 ldrh w3, [x1,2] ldrh w2, [x1,4] mov w4, w5 and w6, w6, 31 -.L1632: +.L1684: cmp w4, w6 - bge .L1640 + bge .L1692 add x5, x1, x3, sxtw 1 ldrh w7, [x5,8] add x5, x1, x2, sxtw 1 @@ -9773,13 +10096,13 @@ FtlFreeSysBLkSort: uxth w4, w4 and w3, w3, 1023 and w2, w2, 1023 - b .L1632 -.L1640: - cbz w5, .L1630 + b .L1684 +.L1692: + cbz w5, .L1682 add x0, x0, :lo12:.LANCHOR2 - strh w3, [x0,3010] - strh w2, [x0,3012] -.L1630: + strh w3, [x0,2994] + strh w2, [x0,2996] +.L1682: ret .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -9792,71 +10115,71 @@ FtlFreeSysBlkQueueOut: adrp x19, .LANCHOR2 stp x23, x24, [sp,48] add x19, x19, :lo12:.LANCHOR2 - adrp x23, .LC35 + adrp x23, .LC37 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - add x21, x19, 3008 + add x21, x19, 2992 mov w24, 65533 - add x23, x23, :lo12:.LC35 -.L1642: + add x23, x23, :lo12:.LC37 +.L1694: ldrh w1, [x21,6] adrp x22, .LANCHOR2 - cbz w1, .L1643 + cbz w1, .L1695 ldrh w2, [x21,2] sub w1, w1, #1 add x0, x21, x2, sxtw 1 strh w1, [x21,6] add w2, w2, 1 - ldr w1, [x19,2944] + ldr w1, [x19,2928] and w2, w2, 1023 strh w2, [x21,2] ldrh w20, [x0,8] - cbnz w1, .L1644 + cbnz w1, .L1696 mov w0, w20 str x1, [x29,88] bl P2V_block_in_plane uxth w26, w0 - ldr x0, [x19,2560] + ldr x0, [x19,2544] lsl w2, w20, 10 ldr x1, [x29,88] str w2, [x0,4] - ldrb w0, [x19,1228] - cbz w0, .L1645 - ldr x0, [x19,2560] + ldrb w0, [x19,1220] + cbz w0, .L1697 + ldr x0, [x19,2544] mov w2, 1 bl FlashEraseBlocks -.L1645: +.L1697: add x25, x22, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 - ldr x0, [x25,2560] + ldr x0, [x25,2544] bl FlashEraseBlocks ubfiz x0, x26, 1, 16 - ldr x2, [x25,2712] + ldr x2, [x25,2696] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x25,2452] + ldr w0, [x25,2436] add w0, w0, 1 - str w0, [x25,2452] - b .L1644 -.L1643: - adrp x0, .LC34 - add x0, x0, :lo12:.LC34 + str w0, [x25,2436] + b .L1696 +.L1695: + adrp x0, .LC36 + add x0, x0, :lo12:.LC36 bl printk -.L1646: - b .L1646 -.L1644: +.L1698: + b .L1698 +.L1696: sub w0, w20, #1 cmp w24, w0, uxth - bcs .L1647 + bcs .L1699 add x22, x22, :lo12:.LANCHOR2 mov x0, x23 mov w1, w20 - ldrh w2, [x22,3014] + ldrh w2, [x22,2998] bl printk - b .L1642 -.L1647: + b .L1694 +.L1699: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9870,31 +10193,31 @@ FtlFreeSysBlkQueueOut: .type test_node_in_list, %function test_node_in_list: ldr x2, [x0] - adrp x0, .LANCHOR2+2824 + adrp x0, .LANCHOR2+2808 mov x4, -6148914691236517206 uxth w1, w1 mov w5, 65535 - ldr x3, [x0,#:lo12:.LANCHOR2+2824] + ldr x3, [x0,#:lo12:.LANCHOR2+2808] sub x0, x2, x3 asr x0, x0, 1 madd x0, x4, x0, x0 mov w4, 6 uxth w0, w0 -.L1653: +.L1705: cmp w1, w0 - beq .L1654 + beq .L1706 ldrh w0, [x2] cmp w0, w5 - beq .L1655 + beq .L1707 umull x2, w0, w4 add x2, x3, x2 - b .L1653 -.L1654: + b .L1705 +.L1706: mov w0, 1 - b .L1652 -.L1655: + b .L1704 +.L1707: mov w0, 0 -.L1652: +.L1704: ret .size test_node_in_list, .-test_node_in_list .align 2 @@ -9906,11 +10229,11 @@ insert_data_list: add x3, x10, :lo12:.LANCHOR2 uxth w0, w0 str x19, [sp] - ldrh w1, [x3,2300] + ldrh w1, [x3,2284] cmp w1, w0 - bls .L1658 + bls .L1710 mov w7, 6 - ldr x12, [x3,2824] + ldr x12, [x3,2808] adrp x2, .LANCHOR4 mov w1, -1 umull x11, w0, w7 @@ -9919,21 +10242,21 @@ insert_data_list: add x5, x12, x11 strh w1, [x5,2] strh w1, [x12,x11] - ldr x1, [x6,760] - cbnz x1, .L1659 - str x5, [x6,760] - b .L1658 -.L1659: + ldr x1, [x6,744] + cbnz x1, .L1711 + str x5, [x6,744] + b .L1710 +.L1711: ubfiz x8, x0, 1, 16 - ldr x14, [x3,2728] + ldr x14, [x3,2712] ldrh w2, [x5,4] mov x9, -6148914691236517206 - ldr x13, [x3,2824] + ldr x13, [x3,2808] mov w19, 65535 ldrh w6, [x14,x8] cmp w2, wzr - ldr x15, [x3,2712] - ldrh w18, [x3,2300] + ldr x15, [x3,2696] + ldrh w18, [x3,2284] mov w3, 0 mul w6, w6, w2 sub x2, x1, x13 @@ -9943,13 +10266,13 @@ insert_data_list: add x9, x15, x8 mov w8, w7 uxth w2, w2 -.L1667: +.L1719: add w3, w3, 1 cmp w0, w2 uxth w3, w3 - beq .L1658 + beq .L1710 cmp w3, w18 - bhi .L1658 + bhi .L1710 ubfiz x16, x2, 1, 16 ldrh w17, [x1,4] cmp w17, wzr @@ -9957,48 +10280,48 @@ insert_data_list: mul w7, w7, w17 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L1663 + bne .L1715 ldrh w16, [x15,x16] ldrh w7, [x9] cmp w16, w7 - bcc .L1665 - b .L1664 -.L1663: - bhi .L1664 -.L1665: + bcc .L1717 + b .L1716 +.L1715: + bhi .L1716 +.L1717: ldrh w7, [x1] cmp w7, w19 - bne .L1666 + bne .L1718 strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR4 strh w0, [x1] - str x5, [x2,768] - b .L1658 -.L1666: + str x5, [x2,752] + b .L1710 +.L1718: umull x1, w7, w8 mov w2, w7 add x1, x13, x1 - b .L1667 -.L1664: + b .L1719 +.L1716: strh w2, [x12,x11] ldrh w2, [x1,2] strh w2, [x5,2] add x2, x4, :lo12:.LANCHOR4 - ldr x3, [x2,760] + ldr x3, [x2,744] cmp x1, x3 - bne .L1668 + bne .L1720 strh w0, [x1,2] - str x5, [x2,760] - b .L1658 -.L1668: + str x5, [x2,744] + b .L1710 +.L1720: ldrh w2, [x1,2] add x3, x10, :lo12:.LANCHOR2 mov w4, 6 - ldr x3, [x3,2824] + ldr x3, [x3,2808] umull x2, w2, w4 strh w0, [x3,x2] strh w0, [x1,2] -.L1658: +.L1710: mov w0, 0 ldr x19, [sp] add sp, sp, 16 @@ -10013,9 +10336,9 @@ INSERT_DATA_LIST: bl insert_data_list adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrh w1, [x0,776] + ldrh w1, [x0,760] add w1, w1, 1 - strh w1, [x0,776] + strh w1, [x0,760] ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -10026,7 +10349,7 @@ insert_free_list: uxth w0, w0 mov w5, 65535 cmp w0, w5 - beq .L1673 + beq .L1725 adrp x3, .LANCHOR2 mov w4, 6 add x8, x3, :lo12:.LANCHOR2 @@ -10034,62 +10357,62 @@ insert_free_list: umull x6, w0, w4 mov w1, -1 add x9, x2, :lo12:.LANCHOR4 - ldr x7, [x8,2824] + ldr x7, [x8,2808] mov x11, x3 mov x3, x2 add x12, x7, x6 strh w1, [x12,2] strh w1, [x7,x6] - ldr x1, [x9,784] - cbnz x1, .L1674 - str x12, [x9,784] - b .L1673 -.L1674: - ldr x10, [x8,2712] + ldr x1, [x9,768] + cbnz x1, .L1726 + str x12, [x9,768] + b .L1725 +.L1726: + ldr x10, [x8,2696] ubfiz x2, x0, 1, 16 - ldr x9, [x8,2824] + ldr x9, [x8,2808] mov x8, -6148914691236517206 ldrh w13, [x10,x2] sub x2, x1, x9 asr x2, x2, 1 madd x2, x8, x2, x2 uxth w2, w2 -.L1677: +.L1729: ubfiz x8, x2, 1, 16 ldrh w8, [x10,x8] cmp w8, w13 - bcs .L1675 + bcs .L1727 ldrh w8, [x1] cmp w8, w5 - bne .L1676 + bne .L1728 strh w2, [x12,2] strh w0, [x1] - b .L1673 -.L1676: + b .L1725 +.L1728: umull x1, w8, w4 mov w2, w8 add x1, x9, x1 - b .L1677 -.L1675: + b .L1729 +.L1727: ldrh w4, [x1,2] strh w4, [x12,2] strh w2, [x7,x6] add x2, x3, :lo12:.LANCHOR4 - ldr x3, [x2,784] + ldr x3, [x2,768] cmp x1, x3 - bne .L1678 + bne .L1730 strh w0, [x1,2] - str x12, [x2,784] - b .L1673 -.L1678: + str x12, [x2,768] + b .L1725 +.L1730: ldrh w2, [x1,2] add x3, x11, :lo12:.LANCHOR2 mov w4, 6 - ldr x3, [x3,2824] + ldr x3, [x3,2808] umull x2, w2, w4 strh w0, [x3,x2] strh w0, [x1,2] -.L1673: +.L1725: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -10102,9 +10425,9 @@ INSERT_FREE_LIST: bl insert_free_list adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrh w1, [x0,792] + ldrh w1, [x0,776] add w1, w1, 1 - strh w1, [x0,792] + strh w1, [x0,776] ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -10119,43 +10442,43 @@ List_remove_node: ldr x3, [x0] mov w7, 65535 umull x1, w1, w5 - ldr x2, [x6,2824] + ldr x2, [x6,2808] add x4, x2, x1 cmp x4, x3 - bne .L1681 + bne .L1733 ldrh w3, [x2,x1] cmp w3, w7 - bne .L1682 + bne .L1734 str xzr, [x0] - b .L1683 -.L1682: + b .L1735 +.L1734: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L1683 -.L1681: + b .L1735 +.L1733: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L1684 + bne .L1736 cmp w3, w0 - beq .L1683 + beq .L1735 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L1683 -.L1684: + b .L1735 +.L1736: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] ldrh w3, [x4,2] - ldr x0, [x6,2824] + ldr x0, [x6,2808] ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L1683: +.L1735: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -10172,14 +10495,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L1686 - adrp x3, .LANCHOR2+2824 + cbz x2, .L1738 + adrp x3, .LANCHOR2+2808 mov w5, w19 mov w6, 6 - ldr x4, [x3,#:lo12:.LANCHOR2+2824] -.L1687: - cbnz w1, .L1688 -.L1690: + ldr x4, [x3,#:lo12:.LANCHOR2+2808] +.L1739: + cbnz w1, .L1740 +.L1742: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -10187,17 +10510,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L1686 -.L1688: + b .L1738 +.L1740: ldrh w3, [x2] cmp w3, w5 - beq .L1690 + beq .L1742 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L1687 -.L1686: + b .L1739 +.L1738: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -10208,31 +10531,31 @@ List_pop_index_node: .type List_get_gc_head_node, %function List_get_gc_head_node: uxth w3, w0 - adrp x0, .LANCHOR4+760 - ldr x1, [x0,#:lo12:.LANCHOR4+760] + adrp x0, .LANCHOR4+744 + ldr x1, [x0,#:lo12:.LANCHOR4+744] mov w0, 65535 - cbz x1, .L1698 - adrp x0, .LANCHOR2+2824 + cbz x1, .L1750 + adrp x0, .LANCHOR2+2808 mov w5, 6 - ldr x4, [x0,#:lo12:.LANCHOR2+2824] + ldr x4, [x0,#:lo12:.LANCHOR2+2808] mov w0, 65535 -.L1694: - cbz w3, .L1695 +.L1746: + cbz w3, .L1747 ldrh w2, [x1] cmp w2, w0 - beq .L1698 + beq .L1750 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L1694 -.L1695: + b .L1746 +.L1747: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L1698: +.L1750: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -10245,26 +10568,26 @@ List_update_data_list: adrp x19, .LANCHOR4 uxth w20, w0 add x4, x19, :lo12:.LANCHOR4 - ldrh w0, [x4,800] + ldrh w0, [x4,784] cmp w0, w20 - beq .L1700 - ldrh w0, [x4,848] + beq .L1752 + ldrh w0, [x4,832] cmp w0, w20 - beq .L1700 - ldrh w0, [x4,896] + beq .L1752 + ldrh w0, [x4,880] cmp w0, w20 - beq .L1700 + beq .L1752 adrp x3, .LANCHOR2 mov w2, 6 add x3, x3, :lo12:.LANCHOR2 - ldr x0, [x4,760] + ldr x0, [x4,744] umull x2, w20, w2 - ldr x5, [x3,2824] + ldr x5, [x3,2808] add x1, x5, x2 cmp x1, x0 - beq .L1700 + beq .L1752 ubfiz x0, x20, 1, 16 - ldr x4, [x3,2728] + ldr x4, [x3,2712] ldrh w6, [x1,4] ldrh w1, [x1,2] ldrh w3, [x4,x0] @@ -10273,11 +10596,11 @@ List_update_data_list: mul w3, w3, w6 csinv w3, w3, wzr, ne cmp w1, w0 - bne .L1702 + bne .L1754 ldrh w0, [x5,x2] cmp w0, w1 - beq .L1700 -.L1702: + beq .L1752 +.L1754: mov w0, 6 umull x1, w1, w0 mov x0, -6148914691236517206 @@ -10290,17 +10613,17 @@ List_update_data_list: mul w1, w2, w4 csinv w1, w1, wzr, ne cmp w3, w1 - bcs .L1700 + bcs .L1752 add x19, x19, :lo12:.LANCHOR4 mov w1, w20 - add x0, x19, 760 + add x0, x19, 744 bl List_remove_node - ldrh w1, [x19,776] + ldrh w1, [x19,760] mov w0, w20 sub w1, w1, #1 - strh w1, [x19,776] + strh w1, [x19,760] bl INSERT_DATA_LIST -.L1700: +.L1752: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -10326,76 +10649,76 @@ ftl_free_no_use_map_blk: mov x0, x21 bl ftl_memset mov w0, 0 -.L1707: +.L1759: ldrh w1, [x19,6] cmp w1, w0 - bls .L1729 + bls .L1781 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L1708: +.L1760: ldrh w3, [x19,10] cmp w3, w1 - bls .L1730 + bls .L1782 ubfiz x3, x1, 1, 16 ldrh w4, [x22,x3] cmp w2, w4 - bne .L1709 - cbz w4, .L1709 + bne .L1761 + cbz w4, .L1761 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L1709: +.L1761: add w1, w1, 1 uxth w1, w1 - b .L1708 -.L1730: + b .L1760 +.L1782: add w0, w0, 1 uxth w0, w0 - b .L1707 -.L1729: - adrp x0, .LANCHOR2+2362 + b .L1759 +.L1781: + adrp x0, .LANCHOR2+2346 mov w23, 0 mov w20, w23 - ldrh w1, [x0,#:lo12:.LANCHOR2+2362] + ldrh w1, [x0,#:lo12:.LANCHOR2+2346] ldrh w0, [x19] strh w1, [x21,x0,lsl 1] ldrh w24, [x21] -.L1712: +.L1764: ldrh w0, [x19,10] cmp w0, w20 - bls .L1731 + bls .L1783 ubfiz x2, x20, 1, 16 ldrh w1, [x21,x2] cmp w24, w1 - bls .L1713 + bls .L1765 ldrh w0, [x22,x2] add x25, x22, x2 - cbnz w0, .L1714 - b .L1715 -.L1713: - cbnz w1, .L1715 + cbnz w0, .L1766 + b .L1767 +.L1765: + cbnz w1, .L1767 ldrh w0, [x22,x2] add x25, x22, x2 - cbz w0, .L1715 -.L1717: + cbz w0, .L1767 +.L1769: mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x25] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L1715: +.L1767: add w20, w20, 1 uxth w20, w20 - b .L1712 -.L1714: + b .L1764 +.L1766: mov w23, w20 mov w24, w1 - cbz w1, .L1717 - b .L1715 -.L1731: + cbz w1, .L1769 + b .L1767 +.L1783: mov w0, w23 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -10415,12 +10738,12 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L1733: +.L1785: cmp w20, w2 - beq .L1737 + beq .L1789 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L1734 + cbnz w21, .L1786 mov x19, x0 bl FtlFreeSysBlkQueueOut strh w0, [x22] @@ -10428,15 +10751,15 @@ ftl_map_blk_alloc_new_blk: sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L1735 - adrp x2, .LANCHOR2+3014 - adrp x0, .LC36 - add x0, x0, :lo12:.LC36 - ldrh w2, [x2,#:lo12:.LANCHOR2+3014] + bcs .L1787 + adrp x2, .LANCHOR2+2998 + adrp x0, .LC38 + add x0, x0, :lo12:.LC38 + ldrh w2, [x2,#:lo12:.LANCHOR2+2998] bl printk -.L1736: - b .L1736 -.L1735: +.L1788: + b .L1788 +.L1787: ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -10445,12 +10768,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L1737 -.L1734: + b .L1789 +.L1786: add w20, w20, 1 uxth w20, w20 - b .L1733 -.L1737: + b .L1785 +.L1789: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10466,7 +10789,7 @@ FtlMapWritePage: stp x25, x26, [sp,64] stp x23, x24, [sp,48] adrp x26, .LANCHOR2 - adrp x23, .LC37 + adrp x23, .LC39 stp x21, x22, [sp,32] stp x27, x28, [sp,80] stp x19, x20, [sp,16] @@ -10476,39 +10799,39 @@ FtlMapWritePage: mov w22, 0 mov w28, 65535 add x21, x26, :lo12:.LANCHOR2 - add x23, x23, :lo12:.LC37 -.L1740: + add x23, x23, :lo12:.LC39 +.L1792: add x0, x26, :lo12:.LANCHOR2 adrp x20, .LANCHOR2 - ldr w1, [x0,2436] + ldr w1, [x0,2420] add w1, w1, 1 - str w1, [x0,2436] - ldrh w0, [x0,2362] + str w1, [x0,2420] + ldrh w0, [x0,2346] ldrh w1, [x19,2] sub w0, w0, #1 cmp w1, w0 - bge .L1741 + bge .L1793 ldrh w0, [x19] cmp w0, w28 - bne .L1742 -.L1741: + bne .L1794 +.L1793: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L1742: - ldr w1, [x21,2944] - cbnz w1, .L1743 +.L1794: + ldr w1, [x21,2928] + cbnz w1, .L1795 ldrh w2, [x19] - add x3, x21, 2952 + add x3, x21, 2936 ldr x0, [x19,16] str x3, [x29,104] ldrh w24, [x0,x2,lsl 1] mov w2, 16 ldrh w0, [x19,2] - str x27, [x21,2960] + str x27, [x21,2944] orr w0, w0, w24, lsl 10 - str w0, [x21,2956] - ldr x0, [x21,2656] - str x0, [x21,2968] + str w0, [x21,2940] + ldr x0, [x21,2640] + str x0, [x21,2952] bl ftl_memset ldr x3, [x29,104] ldr w0, [x19,48] @@ -10520,15 +10843,15 @@ FtlMapWritePage: adrp x0, .LANCHOR0+88 strh w24, [x2,2] ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L1744 + cbz w0, .L1796 ldr x0, [x3,8] - ldrh w1, [x21,2370] + ldrh w1, [x21,2354] str x2, [x29,104] bl js_hash ldr x2, [x29,104] str w0, [x2,12] -.L1744: - add x4, x21, 2952 +.L1796: + add x4, x21, 2936 mov w1, 1 mov w2, w1 mov x0, x4 @@ -10540,9 +10863,9 @@ FtlMapWritePage: add w1, w1, 1 uxth w1, w1 strh w1, [x19,2] - ldr w2, [x21,2952] + ldr w2, [x21,2936] cmn w2, #1 - bne .L1745 + bne .L1797 ldr w1, [x4,4] mov x0, x23 add w22, w22, 1 @@ -10550,41 +10873,41 @@ FtlMapWritePage: uxth w22, w22 ldrh w0, [x19,2] cmp w0, 2 - bhi .L1746 - ldrh w0, [x21,2362] + bhi .L1798 + ldrh w0, [x21,2346] sub w0, w0, #1 strh w0, [x19,2] -.L1746: +.L1798: cmp w22, 3 - bls .L1740 + bls .L1792 add x20, x20, :lo12:.LANCHOR2 - adrp x0, .LC38 - add x0, x0, :lo12:.LC38 + adrp x0, .LC40 + add x0, x0, :lo12:.LC40 mov w2, w22 - ldr w1, [x20,2956] + ldr w1, [x20,2940] bl printk mov w0, 1 - str w0, [x20,2944] - b .L1743 -.L1745: - cbz w2, .L1748 + str w0, [x20,2928] + b .L1795 +.L1797: + cbz w2, .L1800 strh w24, [x19,60] -.L1748: +.L1800: cmp w1, 1 - beq .L1749 + beq .L1801 cmp w2, 256 - beq .L1749 + beq .L1801 ldr w0, [x19,56] - cbz w0, .L1750 -.L1749: + cbz w0, .L1802 +.L1801: str wzr, [x19,56] - b .L1740 -.L1750: + b .L1792 +.L1802: add x20, x20, :lo12:.LANCHOR2 ldr x0, [x19,40] - ldr w1, [x20,2956] + ldr w1, [x20,2940] str w1, [x0,w25,uxtw 2] -.L1743: +.L1795: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10614,12 +10937,12 @@ ftl_map_blk_gc: ldrh w2, [x19,8] sub w1, w1, #4 cmp w2, w1 - blt .L1758 + blt .L1810 ubfiz x1, x0, 1, 16 ldrh w24, [x21,x1] - cbz w24, .L1758 + cbz w24, .L1810 ldr w0, [x19,52] - cbnz w0, .L1758 + cbnz w0, .L1810 mov w2, 1 str w2, [x19,52] strh w0, [x21,x1] @@ -10628,26 +10951,26 @@ ftl_map_blk_gc: sub w0, w0, #1 strh w0, [x19,8] add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,2362] + ldrh w0, [x0,2346] cmp w1, w0 - bcc .L1759 + bcc .L1811 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1759: +.L1811: add x26, x20, :lo12:.LANCHOR2 mov w21, 0 - add x22, x26, 2952 -.L1760: + add x22, x26, 2936 +.L1812: ldrh w0, [x19,6] cmp w0, w21 - bls .L1769 + bls .L1821 ubfiz x0, x21, 2, 16 add x27, x25, x0 ldr w1, [x25,x0] cmp w24, w1, lsr 10 - bne .L1761 - ldr x1, [x26,2600] - ldr x23, [x26,2656] + bne .L1813 + ldr x1, [x26,2584] + ldr x23, [x26,2640] str x1, [x22,8] mov w1, 1 str x23, [x22,16] @@ -10658,48 +10981,48 @@ ftl_map_blk_gc: bl FlashReadPages ldr w0, [x22] cmn w0, #1 - bne .L1762 -.L1764: + bne .L1814 +.L1816: add x20, x20, :lo12:.LANCHOR2 str wzr, [x27] - adrp x0, .LC39 + adrp x0, .LC41 ldrh w2, [x23,8] - add x0, x0, :lo12:.LC39 - ldr w1, [x20,2956] + add x0, x0, :lo12:.LC41 + ldr w1, [x20,2940] bl printk mov w0, 1 - str w0, [x20,2944] - b .L1763 -.L1762: + str w0, [x20,2928] + b .L1815 +.L1814: ldrh w0, [x23,8] cmp w0, w21 - bne .L1764 + bne .L1816 ldrh w1, [x23] ldrh w0, [x19,4] cmp w1, w0 - bne .L1764 + bne .L1816 ldr x2, [x22,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L1761: +.L1813: add w21, w21, 1 uxth w21, w21 - b .L1760 -.L1769: + b .L1812 +.L1821: mov w0, w24 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L1758: +.L1810: add x20, x20, :lo12:.LANCHOR2 ldrh w1, [x19,2] - ldrh w0, [x20,2362] + ldrh w0, [x20,2346] cmp w1, w0 - bcc .L1763 + bcc .L1815 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1763: +.L1815: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -10720,15 +11043,15 @@ Ftl_write_map_blk_to_last_page: add x1, x21, :lo12:.LANCHOR2 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - ldr w20, [x1,2944] + ldr w20, [x1,2928] ldr x22, [x0,16] ldr x24, [x0,40] - cbnz w20, .L1771 + cbnz w20, .L1823 mov x19, x0 ldrh w0, [x0] mov w2, 65535 cmp w0, w2 - bne .L1772 + bne .L1824 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -10739,17 +11062,17 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L1771 -.L1772: + b .L1823 +.L1824: ubfiz x0, x0, 1, 16 ldrh w2, [x19,2] ldrh w23, [x22,x0] - ldr x22, [x1,2656] - str x22, [x1,2968] + ldr x22, [x1,2640] + str x22, [x1,2952] orr w2, w2, w23, lsl 10 - str w2, [x1,2956] - ldr x2, [x1,2592] - str x2, [x1,2960] + str w2, [x1,2940] + ldr x2, [x1,2576] + str x2, [x1,2944] ldr w0, [x19,48] str w0, [x22,4] mov w0, -1291 @@ -10757,47 +11080,47 @@ Ftl_write_map_blk_to_last_page: ldrh w0, [x19,4] strh w0, [x22] strh w23, [x22,2] - ldrh w2, [x1,2362] - ldr x0, [x1,2592] + ldrh w2, [x1,2346] + ldr x0, [x1,2576] mov w1, 255 lsl w2, w2, 3 bl ftl_memset mov w0, w20 -.L1773: +.L1825: ldrh w1, [x19,6] cmp w1, w0 - bls .L1780 + bls .L1832 ubfiz x3, x0, 2, 32 ldr w1, [x24,x3] cmp w23, w1, lsr 10 - bne .L1774 + bne .L1826 add x2, x21, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 - ldr x4, [x2,2592] + ldr x4, [x2,2576] ubfiz x1, x20, 3, 16 str w0, [x4,x1] - ldr x2, [x2,2592] + ldr x2, [x2,2576] ldr w3, [x24,x3] add x1, x2, x1 str w3, [x1,4] -.L1774: +.L1826: add w0, w0, 1 uxth w0, w0 - b .L1773 -.L1780: + b .L1825 +.L1832: adrp x0, .LANCHOR0+88 ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L1776 + cbz w0, .L1828 add x1, x21, :lo12:.LANCHOR2 - ldr x0, [x1,2960] - ldrh w1, [x1,2370] + ldr x0, [x1,2944] + ldrh w1, [x1,2354] bl js_hash str w0, [x22,12] -.L1776: +.L1828: mov w1, 1 add x0, x21, :lo12:.LANCHOR2 - add x0, x0, 2952 + add x0, x0, 2936 mov w2, w1 mov w3, 0 bl FlashProgPages @@ -10806,7 +11129,7 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L1771: +.L1823: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10826,13 +11149,13 @@ flush_l2p_region: add x20, x20, :lo12:.LANCHOR2 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 944 - ldr x1, [x20,2808] + add x0, x0, 928 + ldr x1, [x20,2792] add x2, x1, x19 ldrh w1, [x1,x19] ldr x2, [x2,8] bl FtlMapWritePage - ldr x0, [x20,2808] + ldr x0, [x20,2792] add x19, x0, x19 ldr w0, [x19,4] and w0, w0, 2147483647 @@ -10850,65 +11173,65 @@ select_l2p_ram_region: mov x3, 0 add x0, x0, :lo12:.LANCHOR2 mov w4, 65535 - ldrh w2, [x0,2398] - ldr x1, [x0,2808] -.L1783: + ldrh w2, [x0,2382] + ldr x1, [x0,2792] +.L1835: uxth w0, w3 cmp w0, w2 - bcs .L1799 + bcs .L1851 add x3, x3, 1 add x5, x1, x3, lsl 4 ldrh w5, [x5,-16] cmp w5, w4 - bne .L1783 - b .L1784 -.L1799: + bne .L1835 + b .L1836 +.L1851: mov w0, w2 mov x3, 0 mov w6, -2147483648 -.L1786: +.L1838: uxth w5, w3 cmp w5, w2 - bcs .L1800 + bcs .L1852 add x4, x1, x3, lsl 4 ldr w4, [x4,4] - tbnz w4, #31, .L1795 + tbnz w4, #31, .L1847 cmp w4, w6 - bcc .L1787 -.L1795: + bcc .L1839 +.L1847: mov w4, w6 mov w5, w0 -.L1787: +.L1839: add x3, x3, 1 mov w6, w4 mov w0, w5 - b .L1786 -.L1800: + b .L1838 +.L1852: cmp w0, w2 - bcc .L1784 - adrp x0, .LANCHOR4+1008 + bcc .L1836 + adrp x0, .LANCHOR4+992 add x1, x1, 4 mov w4, -1 mov w3, 0 - ldrh w5, [x0,#:lo12:.LANCHOR4+1008] + ldrh w5, [x0,#:lo12:.LANCHOR4+992] mov w0, w2 -.L1790: +.L1842: cmp w3, w2 - beq .L1784 + beq .L1836 ldr w7, [x1] cmp w7, w4 - bcs .L1791 + bcs .L1843 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L1791: +.L1843: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L1790 -.L1784: + b .L1842 +.L1836: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -10924,10 +11247,10 @@ log2phys: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w5, [x4,2940] - ldrh w3, [x4,2368] + ldr w5, [x4,2924] + ldrh w3, [x4,2352] cmp w0, w5 - bcs .L1802 + bcs .L1854 add w27, w3, 7 str x1, [x29,104] lsr w28, w0, w27 @@ -10935,24 +11258,24 @@ log2phys: str w2, [x29,100] mov x0, 0 uxth w22, w28 - ldrh w1, [x4,2398] - ldr x19, [x4,2808] - b .L1803 -.L1802: + ldrh w1, [x4,2382] + ldr x19, [x4,2792] + b .L1855 +.L1854: mov w0, -1 - cbnz w2, .L1804 + cbnz w2, .L1856 str w0, [x1] - b .L1804 -.L1808: + b .L1856 +.L1860: add x0, x0, 1 add x2, x19, x0, lsl 4 ldrh w2, [x2,-16] cmp w2, w22 - beq .L1805 -.L1803: + beq .L1857 +.L1855: uxth x20, w0 cmp w20, w1 - bcc .L1808 + bcc .L1860 bl select_l2p_ram_region uxth x20, w0 ubfiz x26, x20, 4, 16 @@ -10960,136 +11283,136 @@ log2phys: add x1, x19, x26 ldrh w3, [x19,x26] cmp w3, w2 - bne .L1816 -.L1809: + bne .L1868 +.L1861: add x19, x21, :lo12:.LANCHOR2 ubfiz x0, x22, 2, 16 - ldr x1, [x19,2784] + ldr x1, [x19,2768] ldr w24, [x1,x0] - cbnz w24, .L1810 - ldr x0, [x19,2808] + cbnz w24, .L1862 + ldr x0, [x19,2792] mov w1, 255 - ldrh w2, [x19,2370] + ldrh w2, [x19,2354] add x0, x0, x26 ldr x0, [x0,8] bl ftl_memset - ldr x0, [x19,2808] + ldr x0, [x19,2792] strh w22, [x0,x26] - ldr x0, [x19,2808] + ldr x0, [x19,2792] add x26, x0, x26 str w24, [x26,4] -.L1805: +.L1857: mov x1, 1 lsl x3, x1, x27 ldr w1, [x29,100] sub w3, w3, #1 and w0, w25, w3 uxth x0, w0 - cbnz w1, .L1806 + cbnz w1, .L1858 add x1, x21, :lo12:.LANCHOR2 - ldr x1, [x1,2808] + ldr x1, [x1,2792] add x1, x1, x20, lsl 4 ldr x1, [x1,8] ldr w0, [x1,x0,lsl 2] ldr x1, [x29,104] str w0, [x1] - b .L1807 -.L1806: + b .L1859 +.L1858: ldr x2, [x29,104] add x3, x21, :lo12:.LANCHOR2 lsl x1, x20, 4 ldr w4, [x2] - ldr x2, [x3,2808] + ldr x2, [x3,2792] add x2, x2, x1 ldr x2, [x2,8] str w4, [x2,x0,lsl 2] - ldr x0, [x3,2808] + ldr x0, [x3,2792] add x0, x0, x1 ldr w1, [x0,4] orr w1, w1, -2147483648 str w1, [x0,4] - adrp x0, .LANCHOR4+1008 - strh w22, [x0,#:lo12:.LANCHOR4+1008] -.L1807: + adrp x0, .LANCHOR4+992 + strh w22, [x0,#:lo12:.LANCHOR4+992] +.L1859: add x21, x21, :lo12:.LANCHOR2 - ldr x0, [x21,2808] + ldr x0, [x21,2792] add x20, x0, x20, lsl 4 mov w0, 0 ldr w1, [x20,4] cmn w1, #1 - beq .L1804 + beq .L1856 add w1, w1, 1 str w1, [x20,4] - b .L1804 -.L1816: + b .L1856 +.L1868: ldr w1, [x1,4] - tbz w1, #31, .L1809 + tbz w1, #31, .L1861 bl flush_l2p_region - b .L1809 -.L1810: - ldr x0, [x19,2808] + b .L1861 +.L1862: + ldr x0, [x19,2792] mov w1, 1 - add x23, x19, 2952 + add x23, x19, 2936 mov w2, w1 add x0, x0, x26 - str w24, [x19,2956] + str w24, [x19,2940] ldr x0, [x0,8] - str x0, [x19,2960] - ldr x0, [x19,2656] - str x0, [x19,2968] + str x0, [x19,2944] + ldr x0, [x19,2640] + str x0, [x19,2952] mov x0, x23 bl FlashReadPages - ldr x0, [x19,2968] + ldr x0, [x19,2952] ldrh w0, [x0,8] cmp w0, w22 - beq .L1811 - adrp x0, .LC40 - uxth w1, w28 - mov w2, w24 - add x0, x0, :lo12:.LC40 - bl printk - mov w2, 4 - ldr x1, [x19,2968] - adrp x0, .LC17 - mov w3, w2 - add x0, x0, :lo12:.LC17 - bl rknand_print_hex - adrp x0, .LC41 - ldr x1, [x19,2784] - ldrh w3, [x19,2396] - add x0, x0, :lo12:.LC41 - mov w2, 4 - bl rknand_print_hex - mov w0, 1 - str w0, [x19,2944] - b .L1812 -.L1811: - ldr w0, [x19,2952] - cmp w0, 256 - bne .L1812 - and w28, w28, 65535 + beq .L1863 adrp x0, .LC42 - mov w1, w28 + uxth w1, w28 mov w2, w24 add x0, x0, :lo12:.LC42 bl printk - ldr x2, [x19,2808] + mov w2, 4 + ldr x1, [x19,2952] + adrp x0, .LC18 + mov w3, w2 + add x0, x0, :lo12:.LC18 + bl rknand_print_hex + adrp x0, .LC43 + ldr x1, [x19,2768] + ldrh w3, [x19,2380] + add x0, x0, :lo12:.LC43 + mov w2, 4 + bl rknand_print_hex + mov w0, 1 + str w0, [x19,2928] + b .L1864 +.L1863: + ldr w0, [x19,2936] + cmp w0, 256 + bne .L1864 + and w28, w28, 65535 + adrp x0, .LC44 + mov w1, w28 + mov w2, w24 + add x0, x0, :lo12:.LC44 + bl printk + ldr x2, [x19,2792] adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 mov w1, w28 add x2, x2, x26 - add x0, x0, 944 + add x0, x0, 928 ldr x2, [x2,8] bl FtlMapWritePage -.L1812: +.L1864: add x1, x21, :lo12:.LANCHOR2 - ldr x0, [x1,2808] + ldr x0, [x1,2792] add x0, x0, x26 str wzr, [x0,4] - ldr x0, [x1,2808] + ldr x0, [x1,2792] strh w22, [x0,x26] - b .L1805 -.L1804: + b .L1857 +.L1856: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11114,22 +11437,22 @@ FtlVendorPartWrite: stp x27, x28, [sp,80] mov w21, w1 add w1, w23, w1 - ldrh w22, [x0,2368] + ldrh w22, [x0,2352] mov x26, x2 - ldrh w0, [x0,2356] + ldrh w0, [x0,2340] mov w20, -1 cmp w1, w0 - bhi .L1818 + bhi .L1870 adrp x27, .LANCHOR4 lsr w22, w23, w22 add x27, x27, :lo12:.LANCHOR4 mov w20, 0 - add x27, x27, 1016 -.L1819: - cbz w21, .L1818 + add x27, x27, 1000 +.L1871: + cbz w21, .L1870 add x2, x24, :lo12:.LANCHOR2 - ldrh w1, [x2,2366] - ldr x0, [x2,2776] + ldrh w1, [x2,2350] + ldr x0, [x2,2760] udiv w25, w23, w1 ldr w3, [x0,w22,uxtw 2] uxth w0, w21 @@ -11139,9 +11462,9 @@ FtlVendorPartWrite: cmp w19, w21 csel w19, w0, w19, hi cmp w19, w1 - beq .L1821 - cbz w3, .L1821 - ldr x0, [x2,2608] + beq .L1873 + cbz w3, .L1873 + ldr x0, [x2,2592] mov w1, 1 str x0, [x29,128] mov w2, w1 @@ -11149,21 +11472,21 @@ FtlVendorPartWrite: str w3, [x29,124] str xzr, [x29,136] bl FlashReadPages - b .L1822 -.L1821: + b .L1874 +.L1873: add x2, x24, :lo12:.LANCHOR2 mov w1, 0 - ldr x0, [x2,2608] - ldrh w2, [x2,2370] + ldr x0, [x2,2592] + ldrh w2, [x2,2354] bl ftl_memset -.L1822: +.L1874: add x3, x24, :lo12:.LANCHOR2 lsl w28, w19, 9 ubfiz x25, x25, 9, 16 mov x1, x26 mov w2, w28 str x3, [x29,104] - ldr x0, [x3,2608] + ldr x0, [x3,2592] sub w21, w21, w19 add w23, w23, w19 add x26, x26, x28, sxtw @@ -11173,12 +11496,12 @@ FtlVendorPartWrite: mov w1, w22 mov x0, x27 add w22, w22, 1 - ldr x2, [x3,2608] + ldr x2, [x3,2592] bl FtlMapWritePage cmn w0, #1 csinv w20, w20, wzr, ne - b .L1819 -.L1818: + b .L1871 +.L1870: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11205,25 +11528,25 @@ FtlVendorPartRead: mov w22, w1 mov x27, x2 add w2, w23, w1 - ldrh w1, [x0,2356] - ldrh w20, [x0,2368] + ldrh w1, [x0,2340] + ldrh w20, [x0,2352] mov w0, -1 cmp w2, w1 - bhi .L1833 - adrp x0, .LC43 + bhi .L1885 + adrp x0, .LC45 adrp x26, .LANCHOR4 - add x0, x0, :lo12:.LC43 + add x0, x0, :lo12:.LC45 add x26, x26, :lo12:.LANCHOR4 str x0, [x29,120] lsr w20, w23, w20 - add x0, x26, 1016 + add x0, x26, 1000 mov w21, 0 str x0, [x29,112] -.L1834: - cbz w22, .L1842 +.L1886: + cbz w22, .L1894 add x26, x25, :lo12:.LANCHOR2 - ldrh w19, [x26,2366] - ldr x0, [x26,2776] + ldrh w19, [x26,2350] + ldr x0, [x26,2760] udiv w24, w23, w19 ldr w4, [x0,w20,uxtw 2] uxth w0, w22 @@ -11233,8 +11556,8 @@ FtlVendorPartRead: cmp w19, w22 csel w19, w0, w19, hi lsl w28, w19, 9 - cbz w4, .L1836 - ldr x0, [x26,2608] + cbz w4, .L1888 + ldr x0, [x26,2592] mov w1, 1 str x0, [x29,144] mov w2, w1 @@ -11246,41 +11569,41 @@ FtlVendorPartRead: ldr w0, [x29,136] ldr x4, [x29,104] cmn w0, #1 - ldr w0, [x26,2952] + ldr w0, [x26,2936] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L1838 + bne .L1890 ldr x0, [x29,120] mov w1, w20 mov w2, w4 bl printk ldr x0, [x29,112] mov w1, w20 - ldr x2, [x26,2608] + ldr x2, [x26,2592] bl FtlMapWritePage -.L1838: +.L1890: add x0, x25, :lo12:.LANCHOR2 ubfiz x24, x24, 9, 16 mov w2, w28 - ldr x1, [x0,2608] + ldr x1, [x0,2592] mov x0, x27 add x1, x1, x24 bl ftl_memcpy - b .L1839 -.L1836: + b .L1891 +.L1888: mov x0, x27 mov w1, w4 mov w2, w28 bl ftl_memset -.L1839: +.L1891: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 add x27, x27, x28, sxtw - b .L1834 -.L1842: + b .L1886 +.L1894: mov w0, w21 -.L1833: +.L1885: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11295,37 +11618,37 @@ FtlVendorPartRead: FtlUpdateVaildLpn: adrp x1, .LANCHOR4 add x3, x1, :lo12:.LANCHOR4 - ldrh w2, [x3,1080] - cbnz w0, .L1844 + ldrh w2, [x3,1064] + cbnz w0, .L1896 cmp w2, 4 - bhi .L1844 + bhi .L1896 add w2, w2, 1 - strh w2, [x3,1080] - b .L1843 -.L1844: + strh w2, [x3,1064] + b .L1895 +.L1896: add x0, x1, :lo12:.LANCHOR4 mov w7, 65535 - strh wzr, [x0,1080] - str wzr, [x0,1084] + strh wzr, [x0,1064] + str wzr, [x0,1068] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w5, [x0,2300] - ldr x6, [x0,2728] + ldrh w5, [x0,2284] + ldr x6, [x0,2712] mov x0, 0 -.L1845: +.L1897: cmp w5, w0, uxth - bls .L1843 + bls .L1895 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L1846 + beq .L1898 add x3, x1, :lo12:.LANCHOR4 - ldr w2, [x3,1084] + ldr w2, [x3,1068] add w2, w4, w2 - str w2, [x3,1084] -.L1846: + str w2, [x3,1068] +.L1898: add x0, x0, 1 - b .L1845 -.L1843: + b .L1897 +.L1895: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -11339,41 +11662,41 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w19, [x0,6] ldr x4, [x0,40] - cbz w1, .L1849 + cbz w1, .L1901 adrp x1, .LANCHOR2 str wzr, [x0,56] add x2, x1, :lo12:.LANCHOR2 mov x21, x1 - ldr w3, [x2,2944] - cbnz w3, .L1849 + ldr w3, [x2,2928] + cbnz w3, .L1901 mov x20, x0 sub w19, w19, #1 - add x0, x2, 2952 - ldr x3, [x2,2656] + add x0, x2, 2936 + ldr x3, [x2,2640] uxth w19, w19 - ldr x1, [x2,2600] + ldr x1, [x2,2584] str x3, [x0,16] ubfiz x3, x19, 2, 16 str x1, [x0,8] ldr w3, [x4,x3] str w3, [x0,4] - cbz w3, .L1853 + cbz w3, .L1905 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L1854 -.L1853: - ldrh w2, [x2,2370] + b .L1906 +.L1905: + ldrh w2, [x2,2354] mov x0, x1 mov w1, 255 bl ftl_memset -.L1854: +.L1906: add x2, x21, :lo12:.LANCHOR2 mov x0, x20 mov w1, w19 - ldr x2, [x2,2960] + ldr x2, [x2,2944] bl FtlMapWritePage -.L1849: +.L1901: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -11392,50 +11715,50 @@ FtlVpcTblFlush: add x19, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w1, [x19,2944] - cbnz w1, .L1857 - ldr x0, [x19,2592] + ldr w1, [x19,2928] + cbnz w1, .L1909 + ldr x0, [x19,2576] adrp x25, .LANCHOR4 - str x0, [x19,2960] + str x0, [x19,2944] add x0, x25, :lo12:.LANCHOR4 - ldr x21, [x19,2656] - add x20, x0, 712 - str x21, [x19,2968] + ldr x21, [x19,2640] + add x20, x0, 696 + str x21, [x19,2952] adrp x23, .LANCHOR0 - ldrh w3, [x0,1088] + ldrh w3, [x0,1072] strh w3, [x21,2] mov w3, -3932 strh w3, [x21] str w1, [x21,12] - ldr w3, [x0,1096] + ldr w3, [x0,1080] str w1, [x21,8] mov w1, 19539 movk w1, 0x4654, lsl 16 str w3, [x21,4] - ldrh w2, [x0,800] - str w1, [x0,712] - mov w1, 96 + ldrh w2, [x0,784] + str w1, [x0,696] + mov w1, 99 strh w2, [x20,14] movk w1, 0x5000, lsl 16 - ldrh w2, [x0,802] - ldrb w3, [x0,806] + ldrh w2, [x0,786] + ldrb w3, [x0,790] str w1, [x20,4] - ldrh w1, [x0,1094] + ldrh w1, [x0,1078] orr w2, w3, w2, lsl 6 strh w1, [x20,8] - ldrh w1, [x19,2314] + ldrh w1, [x19,2298] strb w1, [x20,10] - ldrb w1, [x0,808] + ldrb w1, [x0,792] strh w2, [x20,16] strb w1, [x20,11] - ldrh w2, [x0,848] - ldrb w1, [x0,856] + ldrh w2, [x0,832] + ldrb w1, [x0,840] strb w1, [x20,12] - add x1, x0, 896 + add x1, x0, 880 strh w2, [x20,18] - ldrh w2, [x0,850] - ldrb w3, [x0,854] - ldrh w0, [x0,896] + ldrh w2, [x0,834] + ldrb w3, [x0,838] + ldrh w0, [x0,880] orr w2, w3, w2, lsl 6 strh w0, [x20,22] strh w2, [x20,20] @@ -11446,139 +11769,139 @@ FtlVpcTblFlush: ldrb w0, [x1,8] mov w1, 255 strb w0, [x20,13] - ldr w0, [x19,2444] + ldr w0, [x19,2428] str w0, [x20,32] - ldr w0, [x19,2412] + ldr w0, [x19,2396] str w0, [x20,40] - ldr w0, [x19,2416] + ldr w0, [x19,2400] str w0, [x20,36] - ldrh w0, [x19,2488] + ldrh w0, [x19,2472] strh w0, [x20,44] - ldrh w0, [x19,2490] + ldrh w0, [x19,2474] strh w0, [x20,46] - ldrh w2, [x19,2370] - ldr x0, [x19,2960] + ldrh w2, [x19,2354] + ldr x0, [x19,2944] bl ftl_memset - ldr x0, [x19,2960] + ldr x0, [x19,2944] mov x1, x20 mov w2, 48 mov x20, x25 bl ftl_memcpy - ldr x0, [x19,2960] - ldrh w2, [x19,2300] - ldr x1, [x19,2728] + ldr x0, [x19,2944] + ldrh w2, [x19,2284] + ldr x1, [x19,2712] add x0, x0, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x19,2300] + ldrh w2, [x19,2284] add x1, x23, :lo12:.LANCHOR0 - ldr x3, [x19,2960] - uxth x0, w2 - ldr x1, [x1,16] - add x0, x0, 24 + ldr x3, [x19,2944] + ubfiz x0, x2, 1, 16 lsr w2, w2, 3 - lsr x0, x0, 1 + add x0, x0, 51 + ldr x1, [x1,16] + and x0, x0, 262140 add w2, w2, 4 - add x0, x3, x0, lsl 2 + add x0, x3, x0 bl ftl_memcpy - ldrh w0, [x19,2400] - cbz w0, .L1858 - ldrh w0, [x19,2300] - ldrh w2, [x19,2396] + ldrh w0, [x19,2384] + cbz w0, .L1910 + ldrh w0, [x19,2284] + ldrh w2, [x19,2380] lsr w1, w0, 3 add w0, w1, w0, lsl 1 - ldr x1, [x19,2960] + ldr x1, [x19,2944] add w0, w0, 52 lsl w2, w2, 2 and x0, x0, 65532 add x0, x1, x0 - ldr x1, [x19,2784] + ldr x1, [x19,2768] bl ftl_memcpy -.L1858: +.L1910: mov w0, 0 mov w24, 0 mov w25, 65535 add x19, x22, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR4 bl FtlUpdateVaildLpn -.L1859: - ldrh w1, [x20,1088] - ldr x0, [x19,2592] - ldrh w2, [x20,1090] - str x0, [x19,2960] - ldr x0, [x19,2656] - str x0, [x19,2968] +.L1911: + ldrh w1, [x20,1072] + ldr x0, [x19,2576] + ldrh w2, [x20,1074] + str x0, [x19,2944] + ldr x0, [x19,2640] + str x0, [x19,2952] orr w0, w2, w1, lsl 10 - str w0, [x19,2956] - ldrh w0, [x19,2362] + str w0, [x19,2940] + ldrh w0, [x19,2346] sub w0, w0, #1 cmp w2, w0 - blt .L1860 - ldrh w25, [x20,1092] - strh wzr, [x20,1090] - strh w1, [x20,1092] + blt .L1912 + ldrh w25, [x20,1076] + strh wzr, [x20,1074] + strh w1, [x20,1076] bl FtlFreeSysBlkQueueOut - ldr w1, [x19,2412] - str w1, [x20,1096] + ldr w1, [x19,2396] + str w1, [x20,1080] add w2, w1, 1 - str w2, [x19,2412] + str w2, [x19,2396] ubfiz w2, w0, 10, 16 - str w2, [x19,2956] - strh w0, [x20,1088] + str w2, [x19,2940] + strh w0, [x20,1072] str w1, [x21,4] strh w0, [x21,2] -.L1860: +.L1912: add x0, x23, :lo12:.LANCHOR0 ldrb w0, [x0,88] - cbz w0, .L1861 - ldr x0, [x19,2592] - ldrh w1, [x19,2370] + cbz w0, .L1913 + ldr x0, [x19,2576] + ldrh w1, [x19,2354] bl js_hash str w0, [x21,12] -.L1861: +.L1913: mov w1, 1 - add x0, x19, 2952 + add x0, x19, 2936 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w1, [x20,1090] - ldr w2, [x19,2952] + ldrh w1, [x20,1074] + ldr w2, [x19,2936] add w1, w1, 1 cmn w2, #1 uxth w1, w1 - strh w1, [x20,1090] - bne .L1862 + strh w1, [x20,1074] + bne .L1914 cmp w1, 1 - bne .L1863 - ldrh w1, [x19,2362] + bne .L1915 + ldrh w1, [x19,2346] sub w1, w1, #1 - strh w1, [x20,1090] -.L1863: + strh w1, [x20,1074] +.L1915: add w24, w24, 1 uxth w24, w24 cmp w24, 3 - bls .L1859 + bls .L1911 add x22, x22, :lo12:.LANCHOR2 - adrp x0, .LC44 - add x0, x0, :lo12:.LC44 + adrp x0, .LC46 + add x0, x0, :lo12:.LC46 mov w2, w24 - ldr w1, [x22,2956] + ldr w1, [x22,2940] bl printk mov w0, 1 - str w0, [x22,2944] - b .L1857 -.L1862: + str w0, [x22,2928] + b .L1909 +.L1914: cmp w1, 1 - beq .L1859 + beq .L1911 cmp w2, 256 - beq .L1859 + beq .L1911 mov w0, 65535 cmp w25, w0 - beq .L1857 + beq .L1909 mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1857: +.L1909: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -11604,48 +11927,48 @@ FtlScanSysBlk: stp x25, x26, [sp,64] stp x27, x28, [sp,80] add x21, x19, :lo12:.LANCHOR4 - strh wzr, [x20,2936] - ldr w2, [x20,2388] + strh wzr, [x20,2920] + ldr w2, [x20,2372] mov x24, x22 - ldr x0, [x20,2800] + ldr x0, [x20,2784] mov w22, 65535 lsl w2, w2, 2 - strh wzr, [x21,1104] + strh wzr, [x21,1088] bl ftl_memset - ldr w2, [x20,2388] + ldr w2, [x20,2372] + mov w1, 0 + ldr x0, [x20,2720] + lsl w2, w2, 1 + bl ftl_memset + ldrh w2, [x20,2364] + mov w1, 0 + ldr x0, [x20,2752] + lsl w2, w2, 2 + bl ftl_memset + ldrh w2, [x20,2364] mov w1, 0 ldr x0, [x20,2736] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,2380] - mov w1, 0 - ldr x0, [x20,2768] - lsl w2, w2, 2 - bl ftl_memset - ldrh w2, [x20,2380] - mov w1, 0 - ldr x0, [x20,2752] - lsl w2, w2, 1 - bl ftl_memset - add x0, x21, 1088 + add x0, x21, 1072 mov w1, 255 mov w2, 16 bl ftl_memset - ldrh w21, [x20,2300] -.L1873: + ldrh w21, [x20,2284] +.L1925: add x1, x24, :lo12:.LANCHOR2 - ldrh w0, [x1,2302] + ldrh w0, [x1,2286] cmp w0, w21 - bls .L1914 + bls .L1966 mov x27, 0 - ldrh w4, [x1,2292] - ldrh w2, [x1,2372] + ldrh w4, [x1,2276] + ldrh w2, [x1,2356] mov w20, w27 mov x23, x1 -.L1915: +.L1967: cmp w4, w27, uxth - bls .L1948 - add x0, x23, 2320 + bls .L2000 + add x0, x23, 2304 mov w1, w21 str x2, [x29,112] str x4, [x29,120] @@ -11655,18 +11978,18 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr x4, [x29,120] ldr x2, [x29,112] - cbnz w0, .L1874 + cbnz w0, .L1926 mov w0, 56 - ldr x1, [x23,2536] + ldr x1, [x23,2520] lsl w28, w28, 10 mov w3, 4 umull x0, w20, w0 add x1, x1, x0 str w28, [x1,4] - ldr x1, [x23,2536] - ldr x5, [x23,2672] + ldr x1, [x23,2520] + ldr x5, [x23,2656] add x0, x1, x0 - ldr x1, [x23,2616] + ldr x1, [x23,2600] str x1, [x0,8] mul w1, w20, w2 add w20, w20, 1 @@ -11674,46 +11997,46 @@ FtlScanSysBlk: uxth w20, w20 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L1874: +.L1926: add x27, x27, 1 - b .L1915 -.L1948: - cbz w20, .L1877 + b .L1967 +.L2000: + cbz w20, .L1929 add x0, x24, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 mov x23, 0 mov w27, -1 mov w28, 61604 - ldr x0, [x0,2536] + ldr x0, [x0,2520] bl FlashReadPages -.L1878: +.L1930: cmp w20, w23, uxth - bls .L1877 + bls .L1929 mov x0, 56 mul x6, x23, x0 add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,2536] + ldr x0, [x0,2520] add x1, x0, x6 ldr w0, [x0,x6] ldr w5, [x1,4] cmn w0, #1 ldr x26, [x1,16] ubfx x25, x5, 10, 16 - bne .L1880 + bne .L1932 mov w7, 16 -.L1879: +.L1931: add x8, x24, :lo12:.LANCHOR2 str x7, [x29,104] str x8, [x29,112] str x6, [x29,120] - ldr x0, [x8,2536] + ldr x0, [x8,2520] add x0, x0, x6 ldr w1, [x0,4] add w1, w1, 1 str w1, [x0,4] mov w1, 1 - ldr x0, [x8,2536] + ldr x0, [x8,2520] mov w2, w1 add x0, x0, x6 bl FlashReadPages @@ -11722,99 +12045,174 @@ FtlScanSysBlk: cmp w0, w22 ldr x6, [x29,120] ldr x7, [x29,104] - ldr x0, [x8,2536] - bne .L1881 + ldr x0, [x8,2520] + bne .L1933 str w27, [x0,x6] - b .L1880 -.L1881: + b .L1932 +.L1933: ldr w0, [x0,x6] cmn w0, #1 - bne .L1880 + bne .L1932 sub w7, w7, #1 uxth w7, w7 - cbnz w7, .L1879 -.L1880: + cbnz w7, .L1931 +.L1932: add x0, x24, :lo12:.LANCHOR2 - ldr x1, [x0,2536] + ldr x1, [x0,2520] ldr w1, [x1,x6] cmn w1, #1 - beq .L1883 - ldr w0, [x0,2412] + beq .L1935 + ldr w0, [x0,2396] cmn w0, #1 - beq .L1884 + beq .L1936 ldr w1, [x26,4] cmp w0, w1 - bhi .L1885 -.L1884: + bhi .L1937 +.L1936: ldr w0, [x26,4] cmn w0, #1 - beq .L1885 + beq .L1937 add x1, x24, :lo12:.LANCHOR2 add w0, w0, 1 - str w0, [x1,2412] -.L1885: + str w0, [x1,2396] +.L1937: ldrh w0, [x26] cmp w0, w28 - beq .L1887 - bhi .L1888 + beq .L1939 + bhi .L1940 mov w1, 61574 cmp w0, w1 - bne .L1886 + bne .L1938 add x6, x24, :lo12:.LANCHOR2 - ldrh w7, [x6,2380] - ldrh w0, [x6,2936] + ldrh w7, [x6,2364] + ldrh w0, [x6,2920] sub w2, w7, #1 - ldr x6, [x6,2768] + ldr x6, [x6,2752] sxth x1, w2 sub w2, w2, w0 - b .L1901 -.L1888: + b .L1953 +.L1940: mov w1, 61634 cmp w0, w1 - beq .L1890 + beq .L1942 cmp w0, w22 - bne .L1886 + bne .L1938 mov w0, w25 - b .L1947 -.L1890: + b .L1999 +.L1942: add x7, x24, :lo12:.LANCHOR2 add x0, x19, :lo12:.LANCHOR4 - ldr w6, [x7,2388] - ldrh w0, [x0,1104] - ldr x7, [x7,2800] + ldr w6, [x7,2372] + ldrh w0, [x0,1088] + ldr x7, [x7,2784] uxth w2, w6 sub w1, w2, #1 sub w2, w2, w0 sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1892: +.L1944: cmp w1, w2 - ble .L1949 + ble .L2001 sbfiz x8, x1, 2, 32 ldr w11, [x26,4] sxth x9, w1 ldr w10, [x7,x8] cmp w11, w10 - bls .L1893 + bls .L1945 ldr w2, [x7] - cbnz w2, .L1894 + cbnz w2, .L1946 cmp w0, w6 - beq .L1894 + beq .L1946 add x2, x19, :lo12:.LANCHOR4 add w0, w0, 1 - strh w0, [x2,1104] -.L1894: + strh w0, [x2,1088] +.L1946: mov w0, 0 -.L1895: +.L1947: cmp w0, w1 - beq .L1950 + beq .L2002 add x6, x24, :lo12:.LANCHOR2 sxtw x2, w0 lsl x7, x2, 2 lsl x2, x2, 1 add w0, w0, 1 - ldr x10, [x6,2800] + ldr x10, [x6,2784] + sxth w0, w0 + add x11, x10, x7 + ldr w11, [x11,4] + str w11, [x10,x7] + ldr x6, [x6,2720] + add x7, x6, x2 + ldrh w7, [x7,2] + strh w7, [x6,x2] + b .L1947 +.L2002: + add x2, x24, :lo12:.LANCHOR2 + ldr w6, [x26,4] + ldr x0, [x2,2784] + str w6, [x0,x8] + ldr x0, [x2,2720] + strh w25, [x0,x9,lsl 1] + tbz w1, #31, .L1949 + b .L1938 +.L1945: + sub w1, w1, #1 + sxth x1, w1 + b .L1944 +.L2001: + tbz w1, #31, .L1982 + b .L1938 +.L1949: + add x0, x19, :lo12:.LANCHOR4 + ldr w2, [x2,2372] + ldrh w0, [x0,1088] + sub w2, w2, w0 + sub w2, w2, #1 + cmp w1, w2, sxth + bgt .L1938 +.L1982: + add x2, x19, :lo12:.LANCHOR4 + add w0, w0, 1 + ldr w4, [x26,4] + strh w0, [x2,1088] + add x0, x24, :lo12:.LANCHOR2 + ldr x2, [x0,2784] + str w4, [x2,x1,lsl 2] + ldr x0, [x0,2720] + b .L1998 +.L1959: + sbfiz x8, x1, 2, 32 + ldr w11, [x26,4] + sxth x9, w1 + ldr w10, [x6,x8] + cmp w11, w10 + bhi .L2003 + sub w1, w1, #1 + sxth x1, w1 +.L1953: + cmp w1, w2 + bgt .L1959 + b .L1958 +.L2003: + ldr w2, [x6] + cbnz w2, .L1955 + cmp w0, w7 + beq .L1955 + add x2, x24, :lo12:.LANCHOR2 + add w0, w0, 1 + strh w0, [x2,2920] +.L1955: + mov w0, 0 +.L1956: + cmp w0, w1 + beq .L2004 + add x6, x24, :lo12:.LANCHOR2 + sxtw x2, w0 + lsl x7, x2, 2 + lsl x2, x2, 1 + add w0, w0, 1 + ldr x10, [x6,2752] sxth w0, w0 add x11, x10, x7 ldr w11, [x11,4] @@ -11823,180 +12221,139 @@ FtlScanSysBlk: add x7, x6, x2 ldrh w7, [x7,2] strh w7, [x6,x2] - b .L1895 -.L1950: - add x2, x24, :lo12:.LANCHOR2 - ldr w6, [x26,4] - ldr x0, [x2,2800] - str w6, [x0,x8] - ldr x0, [x2,2736] - strh w25, [x0,x9,lsl 1] - tbz w1, #31, .L1897 - b .L1886 -.L1893: - sub w1, w1, #1 - sxth x1, w1 - b .L1892 -.L1949: - tbz w1, #31, .L1930 - b .L1886 -.L1897: - add x0, x19, :lo12:.LANCHOR4 - ldr w2, [x2,2388] - ldrh w0, [x0,1104] - sub w2, w2, w0 - sub w2, w2, #1 - cmp w1, w2, sxth - bgt .L1886 -.L1930: - add x2, x19, :lo12:.LANCHOR4 - add w0, w0, 1 - ldr w4, [x26,4] - strh w0, [x2,1104] - add x0, x24, :lo12:.LANCHOR2 - ldr x2, [x0,2800] - str w4, [x2,x1,lsl 2] - ldr x0, [x0,2736] - b .L1946 -.L1907: - sbfiz x8, x1, 2, 32 - ldr w11, [x26,4] - sxth x9, w1 - ldr w10, [x6,x8] - cmp w11, w10 - bhi .L1951 - sub w1, w1, #1 - sxth x1, w1 -.L1901: - cmp w1, w2 - bgt .L1907 - b .L1906 -.L1951: - ldr w2, [x6] - cbnz w2, .L1903 - cmp w0, w7 - beq .L1903 - add x2, x24, :lo12:.LANCHOR2 - add w0, w0, 1 - strh w0, [x2,2936] -.L1903: - mov w0, 0 -.L1904: - cmp w0, w1 - beq .L1952 - add x6, x24, :lo12:.LANCHOR2 - sxtw x2, w0 - lsl x7, x2, 2 - lsl x2, x2, 1 - add w0, w0, 1 - ldr x10, [x6,2768] - sxth w0, w0 - add x11, x10, x7 - ldr w11, [x11,4] - str w11, [x10,x7] - ldr x6, [x6,2752] - add x7, x6, x2 - ldrh w7, [x7,2] - strh w7, [x6,x2] - b .L1904 -.L1952: + b .L1956 +.L2004: add x0, x24, :lo12:.LANCHOR2 ldr w6, [x26,4] - ldr x2, [x0,2768] + ldr x2, [x0,2752] str w6, [x2,x8] - ldr x0, [x0,2752] + ldr x0, [x0,2736] strh w25, [x0,x9,lsl 1] -.L1906: - tbnz w1, #31, .L1886 +.L1958: + tbnz w1, #31, .L1938 add x0, x24, :lo12:.LANCHOR2 - ldrh w2, [x0,2380] - ldrh w6, [x0,2936] + ldrh w2, [x0,2364] + ldrh w6, [x0,2920] sub w2, w2, #1 sub w2, w2, w6 cmp w1, w2, sxth - bgt .L1886 - ldr x2, [x0,2768] + bgt .L1938 + ldr x2, [x0,2752] add w6, w6, 1 ldr w4, [x26,4] - strh w6, [x0,2936] + strh w6, [x0,2920] str w4, [x2,x1,lsl 2] - ldr x0, [x0,2752] -.L1946: + ldr x0, [x0,2736] +.L1998: strh w25, [x0,x1,lsl 1] - b .L1886 -.L1887: + b .L1938 +.L1939: add x0, x19, :lo12:.LANCHOR4 - add x1, x0, 1088 - ldrh w2, [x0,1088] + add x1, x0, 1072 + ldrh w2, [x0,1072] cmp w2, w22 - bne .L1908 - strh w25, [x0,1088] + bne .L1960 + strh w25, [x0,1072] ldr w0, [x26,4] str w0, [x1,8] - b .L1886 -.L1908: + b .L1938 +.L1960: ldrh w0, [x1,4] cmp w0, w22 - beq .L1909 + beq .L1961 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1909: +.L1961: add x1, x19, :lo12:.LANCHOR4 ldr w2, [x26,4] - add x0, x1, 1088 + add x0, x1, 1072 ldr w6, [x0,8] cmp w6, w2 - bcs .L1910 - ldrh w2, [x1,1088] + bcs .L1962 + ldrh w2, [x1,1072] strh w2, [x0,4] - strh w25, [x1,1088] + strh w25, [x1,1072] ldr w1, [x26,4] str w1, [x0,8] - b .L1886 -.L1910: + b .L1938 +.L1962: strh w25, [x0,4] - b .L1886 -.L1883: - ldrb w1, [x0,1228] + b .L1938 +.L1935: + ldrb w1, [x0,1220] mov w0, w25 - cbz w1, .L1911 -.L1947: + cbz w1, .L1963 +.L1999: mov w1, 0 -.L1911: +.L1963: bl FtlFreeSysBlkQueueIn -.L1886: +.L1938: add x23, x23, 1 - b .L1878 -.L1877: + b .L1930 +.L1929: add w21, w21, 1 uxth w21, w21 - b .L1873 -.L1914: + b .L1925 +.L1966: + ldr x2, [x1,2720] + ldrh w0, [x2] + cbz w0, .L1968 +.L1971: + add x1, x24, :lo12:.LANCHOR2 ldr x2, [x1,2736] ldrh w0, [x2] - cbz w0, .L1916 -.L1919: - add x1, x24, :lo12:.LANCHOR2 - ldr x2, [x1,2752] - ldrh w0, [x2] - cbz w0, .L1917 - b .L1940 -.L1916: + cbz w0, .L1969 + b .L1992 +.L1968: add x19, x19, :lo12:.LANCHOR4 - ldrh w4, [x19,1104] - cbz w4, .L1919 - ldr w1, [x1,2388] -.L1920: + ldrh w4, [x19,1088] + cbz w4, .L1971 + ldr w1, [x1,2372] +.L1972: cmp w0, w1 - bcs .L1919 + bcs .L1971 ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1921 + cbz w4, .L1973 mov w7, w0 -.L1922: +.L1974: add x1, x24, :lo12:.LANCHOR2 - ldr w2, [x1,2388] + ldr w2, [x1,2372] cmp w0, w2 - bcs .L1919 + bcs .L1971 + sxtw x6, w0 + sub w2, w0, w7 + ldr x5, [x1,2720] + lsl x4, x6, 1 + sxtw x2, w2 + add w0, w0, 1 + ldrh w8, [x5,x4] + sxth w0, w0 + strh w8, [x5,x2,lsl 1] + ldr x5, [x1,2784] + ldr w6, [x5,x6,lsl 2] + str w6, [x5,x2,lsl 2] + ldr x1, [x1,2720] + strh wzr, [x1,x4] + b .L1974 +.L1973: + add w0, w0, 1 + sxth w0, w0 + b .L1972 +.L1969: + ldrh w4, [x1,2920] + cbz w4, .L1992 + ldrh w1, [x1,2364] +.L1977: + cmp w0, w1 + mov w7, w0 + bge .L1992 + ldrh w4, [x2,w0,sxtw 1] + cbz w4, .L1978 +.L1979: + add x1, x24, :lo12:.LANCHOR2 + ldrh w2, [x1,2364] + cmp w0, w2 + bge .L1992 sxtw x6, w0 sub w2, w0, w7 ldr x5, [x1,2736] @@ -12006,51 +12363,17 @@ FtlScanSysBlk: ldrh w8, [x5,x4] sxth w0, w0 strh w8, [x5,x2,lsl 1] - ldr x5, [x1,2800] + ldr x5, [x1,2752] ldr w6, [x5,x6,lsl 2] str w6, [x5,x2,lsl 2] ldr x1, [x1,2736] strh wzr, [x1,x4] - b .L1922 -.L1921: + b .L1979 +.L1978: add w0, w0, 1 sxth w0, w0 - b .L1920 -.L1917: - ldrh w4, [x1,2936] - cbz w4, .L1940 - ldrh w1, [x1,2380] -.L1925: - cmp w0, w1 - mov w7, w0 - bge .L1940 - ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1926 -.L1927: - add x1, x24, :lo12:.LANCHOR2 - ldrh w2, [x1,2380] - cmp w0, w2 - bge .L1940 - sxtw x6, w0 - sub w2, w0, w7 - ldr x5, [x1,2752] - lsl x4, x6, 1 - sxtw x2, w2 - add w0, w0, 1 - ldrh w8, [x5,x4] - sxth w0, w0 - strh w8, [x5,x2,lsl 1] - ldr x5, [x1,2768] - ldr w6, [x5,x6,lsl 2] - str w6, [x5,x2,lsl 2] - ldr x1, [x1,2752] - strh wzr, [x1,x4] - b .L1927 -.L1926: - add w0, w0, 1 - sxth w0, w0 - b .L1925 -.L1940: + b .L1977 +.L1992: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12070,26 +12393,26 @@ FtlLoadEctTbl: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,2688] - ldr x2, [x19,2704] + ldrh w1, [x19,2672] + ldr x2, [x19,2688] bl FtlVendorPartRead - ldr x0, [x19,2704] + ldr x0, [x19,2688] ldr w1, [x0] mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L1954 - adrp x0, .LC45 - adrp x1, .LC46 - add x1, x1, :lo12:.LC46 - add x0, x0, :lo12:.LC45 + beq .L2006 + adrp x0, .LC47 + adrp x1, .LC48 + add x1, x1, :lo12:.LC48 + add x0, x0, :lo12:.LC47 bl printk - ldrh w2, [x19,2688] + ldrh w2, [x19,2672] mov w1, 0 - ldr x0, [x19,2704] + ldr x0, [x19,2688] lsl w2, w2, 9 bl ftl_memset -.L1954: +.L2006: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -12102,10 +12425,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L1956 + cbz w1, .L2008 bl ftl_set_blk_mode.part.17 - b .L1955 -.L1956: + b .L2007 +.L2008: adrp x1, .LANCHOR0+16 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -12115,7 +12438,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L1955: +.L2007: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -12136,119 +12459,138 @@ ftl_get_blk_mode: .global FtlCheckVpc .type FtlCheckVpc, %function FtlCheckVpc: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -128]! adrp x1, .LANCHOR3 - adrp x0, .LC47 + adrp x0, .LC49 add x1, x1, :lo12:.LANCHOR3 add x29, sp, 0 - add x1, x1, 16 - add x0, x0, :lo12:.LC47 + add x1, x1, 152 + add x0, x0, :lo12:.LC49 stp x19, x20, [sp,16] - adrp x19, .LANCHOR4 - mov w20, 0 + adrp x20, .LANCHOR4 + mov w19, 0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - add x21, x19, :lo12:.LANCHOR4 + stp x27, x28, [sp,80] + add x21, x20, :lo12:.LANCHOR4 bl printk - add x0, x21, 1112 + add x0, x21, 1096 mov w1, 0 mov x2, 8192 - adrp x23, .LANCHOR2 - bl memset -.L1960: - add x0, x23, :lo12:.LANCHOR2 adrp x22, .LANCHOR2 - ldr w0, [x0,2940] - cmp w20, w0 - bcs .L1977 - mov w0, w20 - add x1, x29, 92 + bl memset +.L2012: + add x0, x22, :lo12:.LANCHOR2 + adrp x23, .LANCHOR2 + ldr w0, [x0,2924] + cmp w19, w0 + bcs .L2031 + mov w0, w19 + add x1, x29, 124 mov w2, 0 bl log2phys - ldr w0, [x29,92] + ldr w0, [x29,124] cmn w0, #1 - beq .L1961 + beq .L2013 lsr w0, w0, 10 bl P2V_block_in_plane uxth w0, w0 - add x2, x21, 1112 + add x2, x21, 1096 ldrh w1, [x2,w0,sxtw 1] add w1, w1, 1 strh w1, [x2,w0,sxtw 1] -.L1961: - add w20, w20, 1 - b .L1960 -.L1977: - adrp x21, .LC48 - mov w20, 0 - add x23, x19, :lo12:.LANCHOR4 - add x21, x21, :lo12:.LC48 -.L1963: - add x2, x22, :lo12:.LANCHOR2 - ldrh w0, [x2,2300] - cmp w0, w20 - bls .L1978 - ubfiz x0, x20, 1, 16 - ldr x1, [x2,2728] - ldrh w2, [x1,x0] - add x0, x23, 1112 - ldrh w3, [x0,w20,sxtw 1] - cmp w2, w3 - beq .L1964 - mov x0, x21 - mov w1, w20 - bl printk -.L1964: - add w20, w20, 1 - uxth w20, w20 - b .L1963 -.L1978: - add x1, x19, :lo12:.LANCHOR4 - ldr x0, [x1,784] - cbz x0, .L1959 - ldr x19, [x2,2824] - adrp x23, .LC49 - ldrh w24, [x1,792] +.L2013: + add w19, w19, 1 + b .L2012 +.L2031: mov w21, 0 + adrp x24, .LC50 + mov w19, w21 + add x27, x20, :lo12:.LANCHOR4 + add x24, x24, :lo12:.LC50 + mov w28, 65535 +.L2015: + add x22, x23, :lo12:.LANCHOR2 + ldrh w0, [x22,2284] + cmp w0, w19 + bls .L2032 + ubfiz x26, x19, 1, 16 + ldr x0, [x22,2712] + add x25, x27, 1096 + sxtw x4, w19 + ldrh w2, [x0,x26] + ldrh w3, [x25,w19,sxtw 1] + cmp w2, w3 + beq .L2016 + mov x0, x24 + mov w1, w19 + str x4, [x29,104] + bl printk + ldr x0, [x22,2712] + ldrh w0, [x0,x26] + cmp w0, w28 + beq .L2016 + ldr x4, [x29,104] + ldrh w1, [x25,x4,lsl 1] + cmp w1, w0 + csinc w21, w21, wzr, ls +.L2016: + add w19, w19, 1 + uxth w19, w19 + b .L2015 +.L2032: + add x2, x20, :lo12:.LANCHOR4 + ldr x0, [x2,768] + cbz x0, .L2018 + ldr x19, [x22,2808] + adrp x24, .LC51 + ldrh w25, [x2,776] + mov w22, 0 sub x19, x0, x19 mov x0, -6148914691236517206 asr x19, x19, 1 - add x23, x23, :lo12:.LC49 - mov x20, x1 - mov w25, 6 + add x24, x24, :lo12:.LC51 + mov x20, x2 + mov w26, 6 madd x19, x0, x19, x19 - mov w26, 65535 + mov w27, 65535 uxth w19, w19 -.L1967: - cmp w21, w24 - beq .L1959 - add x1, x22, :lo12:.LANCHOR2 +.L2019: + cmp w22, w25 + beq .L2018 + add x1, x23, :lo12:.LANCHOR2 ubfiz x0, x19, 1, 16 - ldr x1, [x1,2728] + ldr x1, [x1,2712] ldrh w2, [x1,x0] - cbz w2, .L1968 - add x3, x20, 1112 - mov x0, x23 + cbz w2, .L2020 + add x3, x20, 1096 + mov x0, x24 mov w1, w19 + mov w21, 1 ldrh w3, [x3,w19,sxtw 1] bl printk -.L1968: - add x0, x22, :lo12:.LANCHOR2 - umull x19, w19, w25 - ldr x0, [x0,2824] +.L2020: + add x0, x23, :lo12:.LANCHOR2 + umull x19, w19, w26 + ldr x0, [x0,2808] ldrh w19, [x0,x19] - cmp w19, w26 - beq .L1959 - add w21, w21, 1 - uxth w21, w21 - b .L1967 -.L1959: + cmp w19, w27 + beq .L2018 + add w22, w22, 1 + uxth w22, w22 + b .L2019 +.L2018: + adrp x0, .LC52 + mov w1, w21 + add x0, x0, :lo12:.LC52 + bl printk ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 128 ret .size FtlCheckVpc, .-FtlCheckVpc .align 2 @@ -12264,23 +12606,23 @@ FtlDumpSysBlock: stp x21, x22, [sp,48] stp x23, x24, [sp,64] str x25, [sp,80] - add x19, x2, 2952 + add x19, x2, 2936 uxth w23, w0 - adrp x22, .LC50 - ldr x0, [x2,2592] - adrp x25, .LC51 + adrp x22, .LC53 + ldr x0, [x2,2576] + adrp x25, .LC54 str x0, [x19,8] lsl w24, w23, 10 - ldr x0, [x2,2656] + ldr x0, [x2,2640] mov w20, 0 str x0, [x19,16] mov x21, x2 - add x22, x22, :lo12:.LC50 - add x25, x25, :lo12:.LC51 -.L1980: - ldrh w0, [x21,2362] + add x22, x22, :lo12:.LC53 + add x25, x25, :lo12:.LC54 +.L2034: + ldrh w0, [x21,2346] cmp w20, w0 - bge .L1986 + bge .L2040 mov w1, 1 orr w0, w20, w24 mov w2, w1 @@ -12303,17 +12645,17 @@ FtlDumpSysBlock: ldr x0, [x19,16] ldr w0, [x0] cmn w0, #1 - beq .L1981 - ldr x1, [x21,2592] + beq .L2035 + ldr x1, [x21,2576] mov x0, x25 mov w2, 4 mov w3, 768 bl rknand_print_hex -.L1981: +.L2035: add w20, w20, 1 sxth w20, w20 - b .L1980 -.L1986: + b .L2034 +.L2040: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -12328,67 +12670,67 @@ FtlDumpSysBlock: .type Ftlscanalldata, %function Ftlscanalldata: sub sp, sp, #96 - adrp x0, .LC52 - add x0, x0, :lo12:.LC52 + adrp x0, .LC55 + add x0, x0, :lo12:.LC55 mov w1, 0 stp x29, x30, [sp,16] add x29, sp, 16 stp x23, x24, [sp,64] adrp x23, .LANCHOR2 stp x21, x22, [sp,48] - adrp x21, .LC53 + adrp x21, .LC56 add x22, x23, :lo12:.LANCHOR2 stp x19, x20, [sp,32] - add x21, x21, :lo12:.LC53 + add x21, x21, :lo12:.LC56 mov w20, 0 - add x19, x22, 2952 + add x19, x22, 2936 bl printk -.L1988: +.L2042: add x0, x23, :lo12:.LANCHOR2 - ldr w0, [x0,2940] + ldr w0, [x0,2924] cmp w20, w0 - bcs .L1995 + bcs .L2049 mov w0, w20 add x1, x29, 76 mov w2, 0 bl log2phys and w0, w20, 2047 - cbnz w0, .L1989 + cbnz w0, .L2043 ldr w2, [x29,76] mov x0, x21 mov w1, w20 bl printk -.L1989: +.L2043: ldr w0, [x29,76] cmn w0, #1 - beq .L1991 + beq .L2045 str w0, [x19,4] mov w1, 1 - ldr x0, [x22,2592] + ldr x0, [x22,2576] mov w2, 0 str x0, [x19,8] mov x0, x19 - ldr x24, [x22,2656] + ldr x24, [x22,2640] str w20, [x19,24] str x24, [x19,16] str wzr, [x19] bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L1992 + beq .L2046 cmp w0, 256 - beq .L1992 + beq .L2046 ldr w0, [x24,8] cmp w0, w20 - beq .L1991 -.L1992: + beq .L2045 +.L2046: ldr x7, [x19,8] mov w1, w20 ldr x6, [x19,16] ldr w0, [x7,4] str w0, [sp] - adrp x0, .LC54 - add x0, x0, :lo12:.LC54 + adrp x0, .LC57 + add x0, x0, :lo12:.LC57 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -12396,10 +12738,10 @@ Ftlscanalldata: ldr w6, [x6,12] ldr w7, [x7] bl printk -.L1991: +.L2045: add w20, w20, 1 - b .L1988 -.L1995: + b .L2042 +.L2049: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -12422,25 +12764,25 @@ dump_map_info: stp x23, x24, [sp,64] stp x27, x28, [sp,96] stp x21, x22, [sp,48] - adrp x24, .LC55 + adrp x24, .LC58 mov w25, 56 - ldrh w22, [x0,2300] + ldrh w22, [x0,2284] mov w26, 4 mov x27, 56 - add x24, x24, :lo12:.LC55 -.L1997: + add x24, x24, :lo12:.LC58 +.L2051: add x20, x19, :lo12:.LANCHOR2 - ldrh w0, [x20,2302] + ldrh w0, [x20,2286] cmp w0, w22 - bls .L2010 + bls .L2064 mov x23, 0 - ldrh w3, [x20,2292] - ldrh w2, [x20,2372] + ldrh w3, [x20,2276] + ldrh w2, [x20,2356] mov w21, w23 -.L2006: +.L2060: cmp w3, w23, uxth - bls .L2011 - add x0, x20, 2320 + bls .L2065 + add x0, x20, 2304 mov w1, w22 str x2, [x29,96] str x3, [x29,104] @@ -12450,16 +12792,16 @@ dump_map_info: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L1998 + cbnz w0, .L2052 umull x0, w21, w25 - ldr x1, [x20,2536] + ldr x1, [x20,2520] lsl w28, w28, 10 add x1, x1, x0 str w28, [x1,4] - ldr x1, [x20,2536] - ldr x4, [x20,2672] + ldr x1, [x20,2520] + ldr x4, [x20,2656] add x0, x1, x0 - ldr x1, [x20,2616] + ldr x1, [x20,2600] str x1, [x0,8] mul w1, w21, w2 add w21, w21, 1 @@ -12467,22 +12809,22 @@ dump_map_info: uxth w21, w21 add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L1998: +.L2052: add x23, x23, 1 - b .L2006 -.L2011: - cbz w21, .L2001 + b .L2060 +.L2065: + cbz w21, .L2055 add x0, x19, :lo12:.LANCHOR2 mov w1, w21 mov w2, 1 mov x20, 0 - ldr x0, [x0,2536] + ldr x0, [x0,2520] bl FlashReadPages -.L2002: +.L2056: cmp w21, w20, uxth - bls .L2001 + bls .L2055 add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2536] + ldr x0, [x0,2520] madd x0, x20, x27, x0 add x20, x20, 1 ldr x7, [x0,8] @@ -12498,29 +12840,29 @@ dump_map_info: ldr w7, [x7] ldr w6, [x6,12] bl printk - b .L2002 -.L2001: + b .L2056 +.L2055: add w22, w22, 1 uxth w22, w22 - b .L1997 -.L2010: - adrp x23, .LC56 + b .L2051 +.L2064: + adrp x23, .LC59 mov w22, 0 adrp x26, .LANCHOR4 - add x25, x20, 2952 - add x23, x23, :lo12:.LC56 -.L2005: + add x25, x20, 2936 + add x23, x23, :lo12:.LC59 +.L2059: add x1, x26, :lo12:.LANCHOR4 - ldrh w1, [x1,1104] + ldrh w1, [x1,1088] cmp w22, w1 - bge .L2008 + bge .L2062 sbfiz x24, x22, 1, 32 mov w21, 0 -.L2009: - ldrh w0, [x20,2362] +.L2063: + ldrh w0, [x20,2346] cmp w21, w0 - bge .L2012 - ldr x0, [x20,2736] + bge .L2066 + ldr x0, [x20,2720] ldrh w1, [x0,x24] mov x0, x25 orr w1, w21, w1, lsl 10 @@ -12531,7 +12873,7 @@ dump_map_info: sxth w21, w21 bl FlashReadPages ldr x2, [x25,8] - ldr x0, [x20,2736] + ldr x0, [x20,2720] ldr x7, [x25,16] ldrh w1, [x0,x24] ldr w0, [x2] @@ -12546,29 +12888,29 @@ dump_map_info: ldr w3, [x25,4] ldr w7, [x7,12] bl printk - b .L2009 -.L2012: + b .L2063 +.L2066: add w22, w22, 1 sxth w22, w22 - b .L2005 -.L2008: + b .L2059 +.L2062: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC57 - add x0, x0, :lo12:.LC57 + adrp x0, .LC60 + add x0, x0, :lo12:.LC60 mov w2, 2 - ldr x1, [x19,2736] - ldr w3, [x19,2388] + ldr x1, [x19,2720] + ldr w3, [x19,2372] bl rknand_print_hex - ldr x1, [x19,2784] - adrp x0, .LC58 - ldrh w3, [x19,2396] - add x0, x0, :lo12:.LC58 + ldr x1, [x19,2768] + adrp x0, .LC61 + ldrh w3, [x19,2380] + add x0, x0, :lo12:.LC61 mov w2, 4 bl rknand_print_hex - ldr x1, [x19,2792] - adrp x0, .LC59 - ldrh w3, [x19,2396] - add x0, x0, :lo12:.LC59 + ldr x1, [x19,2776] + adrp x0, .LC62 + ldrh w3, [x19,2380] + add x0, x0, :lo12:.LC62 mov w2, 4 bl rknand_print_hex sub sp, x29, #16 @@ -12608,15 +12950,15 @@ FtlMapTblRecovery: str x20, [x29,128] add x6, x20, :lo12:.LANCHOR2 str wzr, [x27,52] - add x4, x6, 2952 + add x4, x6, 2936 str wzr, [x27,48] mov x20, x6 mov x25, x4 - ldr x0, [x6,2592] - ldr x21, [x6,2656] - str x0, [x6,2960] + ldr x0, [x6,2576] + ldr x21, [x6,2640] + str x0, [x6,2944] mov w0, -1 - str x21, [x6,2968] + str x21, [x6,2952] strh w0, [x27] strh w0, [x27,2] mov w0, 1 @@ -12624,14 +12966,14 @@ FtlMapTblRecovery: ldr w0, [x29,136] sub w0, w0, #1 str w0, [x29,116] -.L2014: +.L2068: ldr w0, [x29,136] cmp w19, w0 - bge .L2032 + bge .L2086 ldr w0, [x29,116] sxtw x28, w19 cmp w19, w0 - bne .L2015 + bne .L2069 lsl x0, x28, 1 mov w1, 1 add x25, x23, x0 @@ -12648,10 +12990,10 @@ FtlMapTblRecovery: str w0, [x27,48] ldr x0, [x29,128] add x23, x0, :lo12:.LANCHOR2 - add x28, x23, 2952 -.L2016: + add x28, x23, 2936 +.L2070: cmp w20, w19 - bge .L2032 + bge .L2086 ldrh w0, [x25] mov w1, 1 mov w2, w1 @@ -12661,57 +13003,57 @@ FtlMapTblRecovery: bl FlashReadPages add x0, x26, :lo12:.LANCHOR0 ldrb w0, [x0,88] - cbz w0, .L2017 + cbz w0, .L2071 ldr x0, [x28,16] ldr w2, [x0,12] - cbz w2, .L2017 + cbz w2, .L2071 ldr x0, [x28,8] - ldrh w1, [x23,2370] + ldrh w1, [x23,2354] str x2, [x29,136] bl js_hash ldr x2, [x29,136] cmp w2, w0 - beq .L2017 + beq .L2071 mov w0, -1 str w0, [x28] -.L2017: +.L2071: ldr w0, [x28] cmn w0, #1 - beq .L2018 + beq .L2072 ldrh w0, [x21,8] cmp w0, w24 - bcs .L2018 + bcs .L2072 ldrh w2, [x21] ldrh w1, [x27,4] cmp w2, w1 - bne .L2018 + bne .L2072 ubfiz x0, x0, 2, 16 ldr w1, [x28,4] str w1, [x22,x0] -.L2018: +.L2072: add w4, w20, 1 sxth w20, w4 - b .L2016 -.L2032: + b .L2070 +.L2086: mov x0, x27 bl ftl_free_no_use_map_blk ldr x0, [x29,128] ldrh w1, [x27,2] add x20, x0, :lo12:.LANCHOR2 - ldrh w0, [x20,2362] + ldrh w0, [x20,2346] cmp w1, w0 - bne .L2021 + bne .L2075 mov x0, x27 bl ftl_map_blk_alloc_new_blk - b .L2021 -.L2015: - ldr x0, [x20,2592] + b .L2075 +.L2069: + ldr x0, [x20,2576] str x0, [x25,8] lsl x0, x28, 1 add x1, x23, x0 str x1, [x29,120] ldrh w1, [x23,x0] - ldrh w0, [x20,2362] + ldrh w0, [x20,2346] sub w0, w0, #1 orr w0, w0, w1, lsl 10 mov w1, 1 @@ -12721,41 +13063,41 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x25] cmn w0, #1 - beq .L2033 + beq .L2087 ldrh w1, [x21] mov w28, 0 ldrh w0, [x27,4] cmp w1, w0 - bne .L2054 + bne .L2108 ldrh w1, [x21,8] mov w0, 64245 cmp w1, w0 - bne .L2054 + bne .L2108 mov w5, w28 -.L2023: - ldrh w0, [x20,2362] +.L2077: + ldrh w0, [x20,2346] sub w0, w0, #1 cmp w5, w0 - bge .L2026 - ldr x2, [x20,2592] + bge .L2080 + ldr x2, [x20,2576] sbfiz x1, x5, 3, 32 ldrh w0, [x2,x1] cmp w0, w24 - bcs .L2024 + bcs .L2078 add x1, x2, x1 ubfiz x0, x0, 2, 16 ldr w1, [x1,4] str w1, [x22,x0] -.L2024: +.L2078: add w5, w5, 1 sxth w5, w5 - b .L2023 -.L2033: + b .L2077 +.L2087: mov w28, 0 -.L2054: - ldrh w0, [x20,2362] +.L2108: + ldrh w0, [x20,2346] cmp w28, w0 - bge .L2026 + bge .L2080 ldr x0, [x29,120] mov w1, 1 mov w2, w1 @@ -12767,42 +13109,42 @@ FtlMapTblRecovery: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,88] - cbz w0, .L2027 + cbz w0, .L2081 ldr x0, [x25,16] ldr w2, [x0,12] - cbz w2, .L2027 + cbz w2, .L2081 ldr x0, [x25,8] - ldrh w1, [x20,2370] + ldrh w1, [x20,2354] str x2, [x29,104] bl js_hash ldr x2, [x29,104] cmp w2, w0 - beq .L2027 + beq .L2081 mov w0, -1 str w0, [x25] -.L2027: +.L2081: ldr w0, [x25] cmn w0, #1 - beq .L2028 + beq .L2082 ldrh w0, [x21,8] cmp w0, w24 - bcs .L2028 + bcs .L2082 ldrh w2, [x21] ldrh w1, [x27,4] cmp w2, w1 - bne .L2028 + bne .L2082 ubfiz x0, x0, 2, 16 ldr w1, [x25,4] str w1, [x22,x0] -.L2028: +.L2082: add w5, w28, 1 sxth w28, w5 - b .L2054 -.L2026: + b .L2108 +.L2080: add w19, w19, 1 sxth w19, w19 - b .L2014 -.L2021: + b .L2068 +.L2075: mov x0, x27 bl ftl_map_blk_gc mov x0, x27 @@ -12825,22 +13167,22 @@ FtlLoadVonderInfo: add x0, x0, :lo12:.LANCHOR4 add x1, x1, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! - add x0, x0, 1016 + add x0, x0, 1000 add x29, sp, 0 - ldrh w2, [x1,2380] + ldrh w2, [x1,2364] strh w2, [x0,10] mov w2, -3962 strh w2, [x0,4] - ldrh w2, [x1,2936] + ldrh w2, [x1,2920] strh w2, [x0,8] - ldrh w2, [x1,2382] + ldrh w2, [x1,2366] strh w2, [x0,6] - ldr x2, [x1,2752] + ldr x2, [x1,2736] str x2, [x0,16] - ldr x2, [x1,2768] + ldr x2, [x1,2752] str x2, [x0,24] - ldr x2, [x1,2760] - ldr x1, [x1,2776] + ldr x2, [x1,2744] + ldr x1, [x1,2760] str x2, [x0,32] str x1, [x0,40] bl FtlMapTblRecovery @@ -12858,33 +13200,33 @@ FtlL2PDataInit: stp x19, x20, [sp,16] adrp x20, .LANCHOR2 add x19, x20, :lo12:.LANCHOR2 - ldr w2, [x19,2388] - ldr x0, [x19,2744] + ldr w2, [x19,2372] + ldr x0, [x19,2728] lsl w2, w2, 1 bl ftl_memset - ldrh w3, [x19,2370] + ldrh w3, [x19,2354] mov w1, 255 - ldrh w2, [x19,2398] - ldr x0, [x19,2816] + ldrh w2, [x19,2382] + ldr x0, [x19,2800] mul w2, w3, w2 bl ftl_memset mov w2, 0 mov w4, -1 -.L2057: +.L2111: add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,2398] + ldrh w1, [x0,2382] cmp w1, w2 - bls .L2059 - ldr x3, [x0,2808] + bls .L2113 + ldr x3, [x0,2792] ubfiz x1, x2, 4, 16 add x3, x3, x1 str wzr, [x3,4] - ldr x3, [x0,2808] + ldr x3, [x0,2792] strh w4, [x3,x1] - ldr x3, [x0,2808] + ldr x3, [x0,2792] add x3, x3, x1 - ldrh w1, [x0,2370] - ldr x0, [x0,2816] + ldrh w1, [x0,2354] + ldr x0, [x0,2800] mul w1, w1, w2 add w2, w2, 1 sxtw x1, w1 @@ -12892,28 +13234,28 @@ FtlL2PDataInit: and x1, x1, -4 add x0, x0, x1 str x0, [x3,8] - b .L2057 -.L2059: + b .L2111 +.L2113: adrp x2, .LANCHOR4 mov w3, -1 add x2, x2, :lo12:.LANCHOR4 - add x1, x2, 944 - strh w3, [x2,946] - strh w3, [x2,944] - ldr w3, [x0,2388] - strh w3, [x2,954] + add x1, x2, 928 + strh w3, [x2,930] + strh w3, [x2,928] + ldr w3, [x0,2372] + strh w3, [x2,938] mov w3, -3902 - strh w3, [x2,948] - ldrh w2, [x2,1104] + strh w3, [x2,932] + ldrh w2, [x2,1088] strh w2, [x1,8] - ldrh w2, [x0,2396] + ldrh w2, [x0,2380] strh w2, [x1,6] - ldr x2, [x0,2736] + ldr x2, [x0,2720] str x2, [x1,16] - ldr x2, [x0,2800] + ldr x2, [x0,2784] str x2, [x1,24] - ldr x2, [x0,2744] - ldr x0, [x0,2784] + ldr x2, [x0,2728] + ldr x0, [x0,2768] str x2, [x1,32] str x0, [x1,40] ldp x19, x20, [sp,16] @@ -12929,7 +13271,7 @@ FtlLoadMapInfo: bl FtlL2PDataInit adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 944 + add x0, x0, 928 bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -12945,42 +13287,42 @@ ftl_sb_update_avl_pages: uxth w2, w2 strh wzr, [x0,4] mov w6, 65535 - ldrh w4, [x4,2292] -.L2062: + ldrh w4, [x4,2276] +.L2116: cmp w2, w4 - bcs .L2068 + bcs .L2122 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L2063 + beq .L2117 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L2063: +.L2117: add w2, w2, 1 uxth w2, w2 - b .L2062 -.L2068: + b .L2116 +.L2122: add x3, x3, :lo12:.LANCHOR2 mov w6, 65535 add x4, x0, x4, uxth 1 - ldrh w5, [x3,2360] + ldrh w5, [x3,2344] mov x3, x0 -.L2065: +.L2119: cmp x3, x4 - beq .L2069 + beq .L2123 ldrh w2, [x3,16] cmp w2, w6 - beq .L2066 + beq .L2120 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L2066: +.L2120: add x3, x3, 2 - b .L2065 -.L2069: + b .L2119 +.L2123: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -13001,54 +13343,54 @@ FtlReUsePrevPpa: add x4, x2, :lo12:.LANCHOR2 ubfiz x23, x0, 1, 16 mov x22, x2 - ldr x3, [x4,2728] + ldr x3, [x4,2712] ldrh w1, [x3,x23] - cbnz w1, .L2071 + cbnz w1, .L2125 adrp x21, .LANCHOR4 add x2, x21, :lo12:.LANCHOR4 - ldr x19, [x2,784] - cbz x19, .L2072 - ldrh w3, [x2,792] + ldr x19, [x2,768] + cbz x19, .L2126 + ldrh w3, [x2,776] mov w5, 65535 - ldr x2, [x4,2824] + ldr x2, [x4,2808] mov x4, -6148914691236517206 sub x19, x19, x2 asr x19, x19, 1 madd x19, x4, x19, x19 mov w4, 6 uxth w19, w19 -.L2073: +.L2127: cmp w1, w3 - beq .L2072 + beq .L2126 cmp w19, w0 - bne .L2074 + bne .L2128 add x21, x21, :lo12:.LANCHOR4 mov w1, w19 - add x0, x21, 784 + add x0, x21, 768 bl List_remove_node - ldrh w0, [x21,792] + ldrh w0, [x21,776] sub w0, w0, #1 - strh w0, [x21,792] + strh w0, [x21,776] mov w0, w19 bl INSERT_DATA_LIST add x2, x22, :lo12:.LANCHOR2 - ldr x1, [x2,2728] + ldr x1, [x2,2712] ldrh w0, [x1,x23] add w0, w0, 1 strh w0, [x1,x23] - b .L2072 -.L2074: + b .L2126 +.L2128: umull x19, w19, w4 ldrh w19, [x2,x19] cmp w19, w5 - beq .L2072 + beq .L2126 add w1, w1, 1 uxth w1, w1 - b .L2073 -.L2071: + b .L2127 +.L2125: add w1, w1, 1 strh w1, [x3,x23] -.L2072: +.L2126: add x1, x29, 76 mov w0, w20 mov w2, 1 @@ -13079,49 +13421,49 @@ make_superblock: mov x20, x0 mov x23, x1 mov w25, -1 - ldrh w24, [x1,2292] -.L2080: + ldrh w24, [x1,2276] +.L2134: cmp w24, w21, uxth - bls .L2091 - add x0, x23, 2320 + bls .L2145 + add x0, x23, 2304 ldrh w1, [x19] ldrb w0, [x0,x21] bl V2P_block strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L2081 + cbnz w0, .L2135 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L2081: +.L2135: add x21, x21, 1 add x22, x22, 2 - b .L2080 -.L2091: + b .L2134 +.L2145: add x0, x20, :lo12:.LANCHOR2 ldrb w1, [x19,7] strb wzr, [x19,9] - ldrh w2, [x0,2360] + ldrh w2, [x0,2344] mul w1, w1, w2 strh w1, [x19,4] - ldr w1, [x0,2196] - cbz w1, .L2083 + ldr w1, [x0,2096] + cbz w1, .L2137 ldrh w1, [x19] - ldr x0, [x0,2712] + ldr x0, [x0,2696] ldrh w0, [x0,x1,lsl 1] cmp w0, 79 - bhi .L2083 + bhi .L2137 mov w0, 1 strb w0, [x19,9] -.L2083: +.L2137: adrp x0, .LANCHOR0+88 ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L2084 + cbz w0, .L2138 mov w0, 1 strb w0, [x19,9] -.L2084: +.L2138: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13143,68 +13485,68 @@ FtlLoadSysInfo: stp x23, x24, [sp,64] add x23, x22, :lo12:.LANCHOR2 stp x19, x20, [sp,32] - add x20, x23, 2952 + add x20, x23, 2936 adrp x19, .LANCHOR4 stp x25, x26, [sp,80] stp x27, x28, [sp,96] - ldr x0, [x23,2592] + ldr x0, [x23,2576] add x24, x19, :lo12:.LANCHOR4 str x0, [x20,8] - add x25, x24, 1088 - ldr x0, [x23,2656] - ldrh w2, [x23,2300] + add x25, x24, 1072 + ldr x0, [x23,2640] + ldrh w2, [x23,2284] str x0, [x20,16] - ldr x0, [x23,2728] + ldr x0, [x23,2712] lsl w2, w2, 1 bl ftl_memset - ldrh w0, [x24,1088] + ldrh w0, [x24,1072] mov w1, 65535 cmp w0, w1 - bne .L2093 -.L2104: + bne .L2147 +.L2158: mov w19, -1 - b .L2094 -.L2093: + b .L2148 +.L2147: mov w1, 1 - adrp x26, .LC60 - add x26, x26, :lo12:.LC60 + adrp x26, .LC63 + add x26, x26, :lo12:.LC63 bl FtlGetLastWrittenPage sxth w21, w0 add w0, w0, 1 strh w0, [x25,2] - ldrsh w25, [x24,1088] -.L2095: - tbnz w21, #31, .L2103 + ldrsh w25, [x24,1072] +.L2149: + tbnz w21, #31, .L2157 orr w0, w21, w25, lsl 10 mov w1, 1 str w0, [x20,4] mov w2, w1 - ldr x0, [x23,2592] + ldr x0, [x23,2576] str x0, [x20,8] mov x0, x20 bl FlashReadPages adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,88] - cbz w0, .L2096 + cbz w0, .L2150 ldr x24, [x20,16] ldr w7, [x24,12] - cbz w7, .L2096 + cbz w7, .L2150 ldr x28, [x20,8] - ldrh w1, [x23,2370] + ldrh w1, [x23,2354] mov x0, x28 str x7, [x29,104] bl js_hash ldr x7, [x29,104] cmp w7, w0 - beq .L2096 - cbnz w21, .L2097 + beq .L2150 + cbnz w21, .L2151 add x0, x19, :lo12:.LANCHOR4 - add x27, x0, 1088 - ldrh w1, [x0,1092] + add x27, x0, 1072 + ldrh w1, [x0,1076] cmp w25, w1 - beq .L2097 - ldrh w1, [x0,1088] + beq .L2151 + ldrh w1, [x0,1072] ldr w0, [x28] str w0, [sp] mov x0, x26 @@ -13215,188 +13557,188 @@ FtlLoadSysInfo: ldr w6, [x24,8] bl printk ldrsh w25, [x27,4] - ldrh w21, [x23,2362] - b .L2099 -.L2097: + ldrh w21, [x23,2346] + b .L2153 +.L2151: mov w0, -1 str w0, [x20] -.L2096: +.L2150: ldr w0, [x20] cmn w0, #1 - beq .L2099 - ldr x0, [x23,2592] + beq .L2153 + ldr x0, [x23,2576] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L2099 - ldr x0, [x23,2656] + bne .L2153 + ldr x0, [x23,2640] ldrh w1, [x0] mov w0, 61604 cmp w1, w0 - bne .L2099 -.L2103: + bne .L2153 +.L2157: add x20, x22, :lo12:.LANCHOR2 add x0, x19, :lo12:.LANCHOR4 - add x21, x20, 2952 + add x21, x20, 2936 mov w2, 48 - add x0, x0, 712 + add x0, x0, 696 ldr x1, [x21,8] bl ftl_memcpy ldr x1, [x21,8] - ldrh w2, [x20,2300] - ldr x0, [x20,2728] + ldrh w2, [x20,2284] + ldr x0, [x20,2712] add x1, x1, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x20,2300] + ldrh w2, [x20,2284] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldr x3, [x21,8] - uxth x1, w2 + ubfiz x1, x2, 1, 16 lsr w2, w2, 3 - add x1, x1, 24 - ldr x0, [x0,16] - lsr x1, x1, 1 + add x1, x1, 51 add w2, w2, 4 - add x1, x3, x1, lsl 2 + and x1, x1, 262140 + ldr x0, [x0,16] + add x1, x3, x1 bl ftl_memcpy - ldrh w0, [x20,2400] - cbz w0, .L2101 - ldrh w0, [x20,2300] + ldrh w0, [x20,2384] + cbz w0, .L2155 + ldrh w0, [x20,2284] ldr x3, [x21,8] lsr w1, w0, 3 - ldrh w2, [x20,2396] + ldrh w2, [x20,2380] add w1, w1, w0, lsl 1 - ldr x0, [x20,2792] + ldr x0, [x20,2776] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L2101 -.L2099: + b .L2155 +.L2153: sub w21, w21, #1 sxth w21, w21 - b .L2095 -.L2101: + b .L2149 +.L2155: add x6, x19, :lo12:.LANCHOR4 mov w0, 19539 movk w0, 0x4654, lsl 16 - ldr w2, [x6,712] + ldr w2, [x6,696] cmp w2, w0 - bne .L2104 + bne .L2158 add x0, x22, :lo12:.LANCHOR2 - ldrb w3, [x6,722] - ldrh w5, [x6,720] - strh w5, [x6,1094] - ldrh w2, [x0,2314] + ldrb w3, [x6,706] + ldrh w5, [x6,704] + strh w5, [x6,1078] + ldrh w2, [x0,2298] cmp w3, w2 - bne .L2104 - ldrh w3, [x0,2360] + bne .L2158 + ldrh w3, [x0,2344] adrp x7, .LANCHOR5 - ldrh w2, [x0,2366] + ldrh w2, [x0,2350] add x4, x7, :lo12:.LANCHOR5 mov x20, x7 mul w3, w3, w5 - str w3, [x0,2940] - str w5, [x4,600] + str w3, [x0,2924] + str w5, [x4,584] mul w3, w3, w2 - str w3, [x0,1232] - ldrh w2, [x0,2846] - ldr w3, [x0,2304] - strh wzr, [x4,610] + str w3, [x0,1224] + ldrh w2, [x0,2830] + ldr w3, [x0,2288] + strh wzr, [x4,594] sub w2, w3, w2 - ldrh w3, [x0,2292] + ldrh w3, [x0,2276] sub w2, w2, w5 - strb wzr, [x4,614] - strb wzr, [x4,616] + strb wzr, [x4,598] + strb wzr, [x4,600] udiv w2, w2, w3 mov w3, -1 - strh w2, [x4,604] - strh w3, [x4,608] - ldrh w5, [x6,726] - strh w5, [x6,800] - ldrh w2, [x6,728] + strh w2, [x4,588] + strh w3, [x4,592] + ldrh w5, [x6,710] + strh w5, [x6,784] + ldrh w2, [x6,712] lsr w8, w2, 6 and w2, w2, 63 - strb w2, [x6,806] - ldrb w2, [x6,723] - strb w2, [x6,808] - ldrh w2, [x6,730] - strh w2, [x6,848] - ldrh w2, [x6,732] - strh w8, [x6,802] + strb w2, [x6,790] + ldrb w2, [x6,707] + strb w2, [x6,792] + ldrh w2, [x6,714] + strh w2, [x6,832] + ldrh w2, [x6,716] + strh w8, [x6,786] lsr w4, w2, 6 and w2, w2, 63 - strb w2, [x6,854] - ldrb w2, [x6,724] - strb w2, [x6,856] - ldrh w2, [x6,734] - strh w2, [x6,896] - ldrh w2, [x6,736] - strh w4, [x6,850] + strb w2, [x6,838] + ldrb w2, [x6,708] + strb w2, [x6,840] + ldrh w2, [x6,718] + strh w2, [x6,880] + ldrh w2, [x6,720] + strh w4, [x6,834] lsr w4, w2, 6 and w2, w2, 63 - strh w4, [x6,898] - strb w2, [x6,902] - ldrb w2, [x6,725] - strb w2, [x6,904] - ldr w2, [x6,744] - str w2, [x0,2444] - ldr w1, [x0,2412] - ldr w2, [x6,752] - str wzr, [x0,2420] - str wzr, [x0,2424] + strh w4, [x6,882] + strb w2, [x6,886] + ldrb w2, [x6,709] + strb w2, [x6,888] + ldr w2, [x6,728] + str w2, [x0,2428] + ldr w1, [x0,2396] + ldr w2, [x6,736] + str wzr, [x0,2404] + str wzr, [x0,2408] cmp w2, w1 - str wzr, [x0,2440] - str wzr, [x0,2436] - str wzr, [x0,2448] - str wzr, [x0,2456] + str wzr, [x0,2424] + str wzr, [x0,2420] str wzr, [x0,2432] - bls .L2105 - str w2, [x0,2412] -.L2105: + str wzr, [x0,2440] + str wzr, [x0,2416] + bls .L2159 + str w2, [x0,2396] +.L2159: add x0, x19, :lo12:.LANCHOR4 add x22, x22, :lo12:.LANCHOR2 - ldr w0, [x0,748] - ldr w1, [x22,2416] + ldr w0, [x0,732] + ldr w1, [x22,2400] cmp w0, w1 - bls .L2106 - str w0, [x22,2416] -.L2106: + bls .L2160 + str w0, [x22,2400] +.L2160: mov w0, 65535 cmp w5, w0 - beq .L2107 + beq .L2161 add x0, x19, :lo12:.LANCHOR4 - add x0, x0, 800 + add x0, x0, 784 bl make_superblock -.L2107: +.L2161: add x2, x19, :lo12:.LANCHOR4 mov w1, 65535 - add x0, x2, 848 - ldrh w2, [x2,848] + add x0, x2, 832 + ldrh w2, [x2,832] cmp w2, w1 - beq .L2108 + beq .L2162 bl make_superblock -.L2108: +.L2162: add x19, x19, :lo12:.LANCHOR4 mov w1, 65535 - add x0, x19, 896 - ldrh w2, [x19,896] + add x0, x19, 880 + ldrh w2, [x19,880] cmp w2, w1 - beq .L2109 + beq .L2163 bl make_superblock -.L2109: +.L2163: add x1, x20, :lo12:.LANCHOR5 mov w19, 0 - add x0, x1, 608 - ldrh w2, [x1,608] + add x0, x1, 592 + ldrh w2, [x1,592] mov w1, 65535 cmp w2, w1 - beq .L2094 + beq .L2148 bl make_superblock -.L2094: +.L2148: sub sp, x29, #16 mov w0, w19 ldp x19, x20, [sp,32] @@ -13428,72 +13770,72 @@ FtlDumpBlockInfo: uxth w22, w0 add x1, x2, :lo12:.LANCHOR3 add x19, x20, :lo12:.LANCHOR2 - adrp x0, .LC47 - add x1, x1, 32 - add x0, x0, :lo12:.LC47 - ldrh w23, [x19,2360] + adrp x0, .LC49 + add x1, x1, 168 + add x0, x0, :lo12:.LC49 + ldrh w23, [x19,2344] bl printk - ldr x3, [x19,2728] + ldr x3, [x19,2712] ubfiz x2, x22, 1, 16 - adrp x0, .LC61 + adrp x0, .LC64 mov w1, w22 - add x0, x0, :lo12:.LC61 + add x0, x0, :lo12:.LC64 ldrh w2, [x3,x2] bl printk strh w22, [x29,112] add x0, x29, 112 bl make_superblock - cbnz w24, .L2129 - ldrb w0, [x19,1228] - cbz w0, .L2129 + cbnz w24, .L2183 + ldrb w0, [x19,1220] + cbz w0, .L2183 mov w0, w22 bl ftl_get_blk_mode cmp w0, 1 mov w22, w0 - bne .L2121 - ldrh w23, [x19,2362] - b .L2121 -.L2129: + bne .L2175 + ldrh w23, [x19,2346] + b .L2175 +.L2183: mov w22, 0 -.L2121: +.L2175: add x3, x20, :lo12:.LANCHOR2 - adrp x0, .LC62 - adrp x24, .LC56 - add x0, x0, :lo12:.LC62 + adrp x0, .LC65 + adrp x24, .LC59 + add x0, x0, :lo12:.LC65 mov w1, w22 mov w2, w23 - ldrh w3, [x3,2360] + ldrh w3, [x3,2344] mov w21, 0 mov w26, 65535 mov w27, 56 mov w25, 4 - add x24, x24, :lo12:.LC56 + add x24, x24, :lo12:.LC59 bl printk -.L2122: +.L2176: add x0, x20, :lo12:.LANCHOR2 mov x3, 0 mov w19, w3 - ldrh w5, [x0,2292] - ldrh w6, [x0,2370] - ldrh w7, [x0,2372] -.L2123: + ldrh w5, [x0,2276] + ldrh w6, [x0,2354] + ldrh w7, [x0,2356] +.L2177: cmp w5, w3, uxth - bls .L2137 + bls .L2191 add x0, x29, 112 add x0, x0, x3, lsl 1 ldrh w1, [x0,16] cmp w1, w26 - beq .L2124 + beq .L2178 add x2, x20, :lo12:.LANCHOR2 orr w1, w21, w1, lsl 10 umull x0, w19, w27 - ldr x4, [x2,2536] + ldr x4, [x2,2520] add x4, x4, x0 str w1, [x4,4] - ldr x1, [x2,2536] - ldr x4, [x2,2616] + ldr x1, [x2,2520] + ldr x4, [x2,2600] add x0, x1, x0 - ldr x2, [x2,2672] + ldr x2, [x2,2656] mul w1, w19, w6 sdiv w1, w1, w25 add x1, x4, x1, sxtw 2 @@ -13504,26 +13846,26 @@ FtlDumpBlockInfo: sdiv w1, w1, w25 add x1, x2, x1, sxtw 2 str x1, [x0,16] -.L2124: +.L2178: add x3, x3, 1 - b .L2123 -.L2137: + b .L2177 +.L2191: add x0, x20, :lo12:.LANCHOR2 mov w1, w19 mov w2, w22 mov x28, 0 - ldr x0, [x0,2536] + ldr x0, [x0,2520] bl FlashReadPages mov x8, 56 -.L2126: +.L2180: cmp w19, w28, uxth - bls .L2138 + bls .L2192 add x0, x20, :lo12:.LANCHOR2 ldrh w1, [x29,112] mul x2, x28, x8 str x8, [x29,104] add x28, x28, 1 - ldr x4, [x0,2536] + ldr x4, [x0,2520] add x3, x4, x2 ldr x0, [x3,8] ldr x7, [x3,16] @@ -13540,13 +13882,13 @@ FtlDumpBlockInfo: ldr w7, [x7,12] bl printk ldr x8, [x29,104] - b .L2126 -.L2138: + b .L2180 +.L2192: add w21, w21, 1 uxth w21, w21 cmp w21, w23 - bne .L2122 -.L2128: + bne .L2176 +.L2182: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -13564,35 +13906,35 @@ FtlDumpBlockInfo: FtlScanAllBlock: sub sp, sp, #144 adrp x1, .LANCHOR3 - adrp x0, .LC47 + adrp x0, .LC49 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC47 - add x1, x1, 56 + add x0, x0, :lo12:.LC49 + add x1, x1, 192 stp x29, x30, [sp,16] add x29, sp, 16 stp x23, x24, [sp,64] stp x21, x22, [sp,48] - adrp x23, .LC64 - adrp x22, .LC63 - adrp x24, .LC65 - add x22, x22, :lo12:.LC63 + adrp x23, .LC67 + adrp x22, .LC66 + adrp x24, .LC68 + add x22, x22, :lo12:.LC66 stp x19, x20, [sp,32] - add x23, x23, :lo12:.LC64 + add x23, x23, :lo12:.LC67 mov w20, 0 - add x24, x24, :lo12:.LC65 + add x24, x24, :lo12:.LC68 stp x25, x26, [sp,80] bl printk -.L2140: +.L2194: adrp x21, .LANCHOR2 add x19, x21, :lo12:.LANCHOR2 - ldrh w0, [x19,2302] + ldrh w0, [x19,2286] cmp w0, w20 - bls .L2149 + bls .L2203 mov w0, w20 strh w20, [x29,80] bl ftl_get_blk_mode mov w3, w0 - ldr x4, [x19,2728] + ldr x4, [x19,2712] ubfiz x2, x20, 1, 16 mov w1, w20 mov x0, x22 @@ -13601,31 +13943,31 @@ FtlScanAllBlock: add x0, x29, 80 bl make_superblock mov x1, 0 - ldrh w6, [x19,2292] - ldrh w7, [x19,2370] + ldrh w6, [x19,2276] + ldrh w7, [x19,2354] mov w9, 65535 - ldrh w8, [x19,2372] + ldrh w8, [x19,2356] mov w10, 56 mov w19, w1 mov w5, 4 -.L2141: +.L2195: cmp w6, w1, uxth - bls .L2150 + bls .L2204 add x0, x29, 80 add x0, x0, x1, lsl 1 ldrh w0, [x0,16] cmp w0, w9 - beq .L2142 + beq .L2196 add x3, x21, :lo12:.LANCHOR2 lsl w0, w0, 10 umull x2, w19, w10 - ldr x4, [x3,2536] + ldr x4, [x3,2520] add x4, x4, x2 str w0, [x4,4] - ldr x0, [x3,2536] - ldr x4, [x3,2616] + ldr x0, [x3,2520] + ldr x4, [x3,2600] add x2, x0, x2 - ldr x3, [x3,2672] + ldr x3, [x3,2656] mul w0, w19, w7 sdiv w0, w0, w5 add x0, x4, x0, sxtw 2 @@ -13636,22 +13978,22 @@ FtlScanAllBlock: sdiv w0, w0, w5 add x0, x3, x0, sxtw 2 str x0, [x2,16] -.L2142: +.L2196: add x1, x1, 1 - b .L2141 -.L2150: + b .L2195 +.L2204: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, 0 mov x25, 0 mov x26, 56 - ldr x0, [x0,2536] + ldr x0, [x0,2520] bl FlashReadPages -.L2144: +.L2198: add x0, x21, :lo12:.LANCHOR2 cmp w19, w25, uxth - bls .L2151 - ldr x4, [x0,2536] + bls .L2205 + ldr x4, [x0,2520] mul x2, x25, x26 ldrh w1, [x29,80] add x25, x25, 1 @@ -13670,22 +14012,22 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L2144 -.L2151: - ldr x0, [x0,2536] + b .L2198 +.L2205: + ldr x0, [x0,2520] mov w1, w19 mov w2, 1 mov x25, 0 mov x26, 56 bl FlashReadPages -.L2146: +.L2200: cmp w19, w25, uxth - bls .L2152 + bls .L2206 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,80] mul x2, x25, x26 add x25, x25, 1 - ldr x4, [x0,2536] + ldr x4, [x0,2520] add x3, x4, x2 ldr x0, [x3,8] ldr x7, [x3,16] @@ -13701,12 +14043,12 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L2146 -.L2152: + b .L2200 +.L2206: add w20, w20, 1 uxth w20, w20 - b .L2140 -.L2149: + b .L2194 +.L2203: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -13733,36 +14075,36 @@ SupperBlkListInit: stp x27, x28, [sp,80] mov w25, 6 adrp x22, .LANCHOR4 - ldrh w2, [x19,2302] + ldrh w2, [x19,2286] add x21, x22, :lo12:.LANCHOR4 - ldr x0, [x19,2824] + ldr x0, [x19,2808] mov w28, 0 mov w24, w28 mov w26, -1 mul w2, w2, w25 mov w27, 32768 bl ftl_memset - strh wzr, [x19,2402] - str xzr, [x21,784] - mov w19, w28 - str xzr, [x21,760] + strh wzr, [x19,2386] str xzr, [x21,768] + mov w19, w28 + str xzr, [x21,744] + str xzr, [x21,752] + strh wzr, [x21,760] strh wzr, [x21,776] - strh wzr, [x21,792] -.L2154: +.L2208: add x0, x23, :lo12:.LANCHOR2 - ldrh w1, [x0,2300] + ldrh w1, [x0,2284] cmp w19, w1 - bge .L2161 + bge .L2215 mov w20, 0 - ldrh w5, [x0,2292] - ldrh w4, [x0,2360] + ldrh w5, [x0,2276] + ldrh w4, [x0,2344] mov w3, w20 mov x2, x0 -.L2162: +.L2216: cmp w3, w5 - bge .L2163 - add x0, x2, 2320 + bge .L2217 + add x0, x2, 2304 mov w1, w19 str x4, [x29,96] str x5, [x29,104] @@ -13775,60 +14117,60 @@ SupperBlkListInit: ldr x2, [x29,112] ldr x5, [x29,104] ldr x4, [x29,96] - cbnz w0, .L2155 + cbnz w0, .L2209 add w20, w4, w20 sxth w20, w20 -.L2155: +.L2209: add w3, w3, 1 sxth w3, w3 - b .L2162 -.L2163: - cbz w20, .L2157 + b .L2216 +.L2217: + cbz w20, .L2211 sdiv w20, w27, w20 sxth w20, w20 - b .L2158 -.L2157: + b .L2212 +.L2211: add x0, x23, :lo12:.LANCHOR2 - ldr x0, [x0,2728] + ldr x0, [x0,2712] strh w26, [x0,w19,sxtw 1] -.L2158: +.L2212: add x1, x23, :lo12:.LANCHOR2 - ldr x0, [x1,2824] + ldr x0, [x1,2808] smaddl x0, w19, w25, x0 strh w20, [x0,4] - ldrh w0, [x21,800] + ldrh w0, [x21,784] cmp w19, w0 - beq .L2159 - ldrh w0, [x21,848] + beq .L2213 + ldrh w0, [x21,832] cmp w19, w0 - beq .L2159 - ldrh w0, [x21,896] + beq .L2213 + ldrh w0, [x21,880] cmp w19, w0 - beq .L2159 - ldr x0, [x1,2728] + beq .L2213 + ldr x0, [x1,2712] ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L2160 + cbnz w0, .L2214 add w28, w28, 1 mov w0, w19 uxth w28, w28 bl INSERT_FREE_LIST - b .L2159 -.L2160: + b .L2213 +.L2214: add w24, w24, 1 mov w0, w19 uxth w24, w24 bl INSERT_DATA_LIST -.L2159: +.L2213: add w19, w19, 1 sxth w19, w19 - b .L2154 -.L2161: + b .L2208 +.L2215: add x22, x22, :lo12:.LANCHOR4 mov w0, 0 ldp x19, x20, [sp,16] ldp x25, x26, [sp,64] - strh w24, [x22,776] - strh w28, [x22,792] + strh w24, [x22,760] + strh w28, [x22,776] ldp x23, x24, [sp,48] ldp x21, x22, [sp,32] ldp x27, x28, [sp,80] @@ -13844,48 +14186,48 @@ Ftl_save_ext_data: add x0, x0, :lo12:.LANCHOR5 movk w1, 0x4654, lsl 16 stp x29, x30, [sp, -16]! - add x2, x0, 656 + add x2, x0, 640 add x29, sp, 0 - ldr w3, [x0,656] + ldr w3, [x0,640] cmp w3, w1 - bne .L2164 - mov w1, 96 + bne .L2218 + mov w1, 99 movk w1, 0x5000, lsl 16 str w1, [x2,4] - ldr w1, [x0,1168] - ldr w0, [x0,1172] + ldr w1, [x0,1152] + ldr w0, [x0,1156] str w0, [x2,92] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 str w1, [x2,88] - ldr w1, [x0,2420] + ldr w1, [x0,2404] str w1, [x2,8] - ldr w1, [x0,2424] - str w1, [x2,12] - ldr w1, [x0,2440] - str w1, [x2,16] - ldr w1, [x0,2436] - str w1, [x2,20] - ldr w1, [x0,2448] - str w1, [x2,28] - ldr w1, [x0,2452] - str w1, [x2,32] - ldr w1, [x0,2428] - str w1, [x2,36] - ldr w1, [x0,2432] - str w1, [x2,40] - ldr w1, [x0,2456] - str w1, [x2,44] - ldr w1, [x0,2460] - str w1, [x2,48] ldr w1, [x0,2408] - ldr w0, [x0,2404] + str w1, [x2,12] + ldr w1, [x0,2424] + str w1, [x2,16] + ldr w1, [x0,2420] + str w1, [x2,20] + ldr w1, [x0,2432] + str w1, [x2,28] + ldr w1, [x0,2436] + str w1, [x2,32] + ldr w1, [x0,2412] + str w1, [x2,36] + ldr w1, [x0,2416] + str w1, [x2,40] + ldr w1, [x0,2440] + str w1, [x2,44] + ldr w1, [x0,2444] + str w1, [x2,48] + ldr w1, [x0,2392] + ldr w0, [x0,2388] str w1, [x2,60] mov w1, 1 str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2164: +.L2218: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -13898,51 +14240,51 @@ FtlEctTblFlush: add x3, x2, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w4, [x3,2196] - cbz w4, .L2167 - ldr w3, [x3,2460] + ldr w4, [x3,2096] + cbz w4, .L2221 + ldr w3, [x3,2444] cmp w3, 39 mov w3, 4 csel w1, w1, w3, hi -.L2167: +.L2221: adrp x3, .LANCHOR5 add x3, x3, :lo12:.LANCHOR5 - ldrh w4, [x3,1176] + ldrh w4, [x3,1160] cmp w4, 31 - bhi .L2168 + bhi .L2222 add w4, w4, 1 mov w1, 1 - strh w4, [x3,1176] -.L2168: - cbnz w0, .L2169 + strh w4, [x3,1160] +.L2222: + cbnz w0, .L2223 add x0, x2, :lo12:.LANCHOR2 - ldr x3, [x0,2704] + ldr x3, [x0,2688] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L2170 -.L2169: + bcc .L2224 +.L2223: add x2, x2, :lo12:.LANCHOR2 - ldr x0, [x2,2704] + ldr x0, [x2,2688] ldr w1, [x0,16] str w1, [x0,20] mov w1, 17221 movk w1, 0x4254, lsl 16 str w1, [x0] - ldr x0, [x2,2704] - ldrh w1, [x2,2688] + ldr x0, [x2,2688] + ldrh w1, [x2,2672] str wzr, [x0,4] lsl w3, w1, 9 str w3, [x0,12] ldr w3, [x0,8] - ldr x2, [x2,2704] + ldr x2, [x2,2688] add w3, w3, 1 str w3, [x0,8] mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2170: +.L2224: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -13959,91 +14301,91 @@ Ftl_load_ext_data: adrp x19, .LANCHOR5 str x21, [sp,32] add x20, x19, :lo12:.LANCHOR5 - add x21, x20, 656 + add x21, x20, 640 mov x2, x21 bl FtlVendorPartRead - ldr w1, [x20,656] + ldr w1, [x20,640] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L2175 + beq .L2229 mov x0, x21 mov w1, 0 mov w2, 512 bl ftl_memset mov w0, 19539 movk w0, 0x4654, lsl 16 - str w0, [x20,656] -.L2175: + str w0, [x20,640] +.L2229: add x1, x19, :lo12:.LANCHOR5 mov w2, 19539 movk w2, 0x4654, lsl 16 - add x0, x1, 656 + add x0, x1, 640 adrp x20, .LANCHOR2 - ldr w3, [x1,656] + ldr w3, [x1,640] cmp w3, w2 - bne .L2176 - ldr w2, [x1,744] - str w2, [x1,1168] - ldr w2, [x1,748] - str w2, [x1,1172] + bne .L2230 + ldr w2, [x1,728] + str w2, [x1,1152] + ldr w2, [x1,732] + str w2, [x1,1156] add x1, x20, :lo12:.LANCHOR2 ldr w2, [x0,8] - str w2, [x1,2420] + str w2, [x1,2404] ldr w2, [x0,12] - str w2, [x1,2424] + str w2, [x1,2408] ldr w2, [x0,16] - str w2, [x1,2440] + str w2, [x1,2424] ldr w2, [x0,20] - str w2, [x1,2436] + str w2, [x1,2420] ldr w2, [x0,28] - str w2, [x1,2448] - ldr w2, [x0,32] - str w2, [x1,2452] - ldr w2, [x0,36] - str w2, [x1,2428] - ldr w2, [x0,40] str w2, [x1,2432] + ldr w2, [x0,32] + str w2, [x1,2436] + ldr w2, [x0,36] + str w2, [x1,2412] + ldr w2, [x0,40] + str w2, [x1,2416] ldr w2, [x0,44] - str w2, [x1,2456] + str w2, [x1,2440] ldr w2, [x0,48] ldr w0, [x0,60] - str w2, [x1,2460] - str w0, [x1,2408] -.L2176: + str w2, [x1,2444] + str w0, [x1,2392] +.L2230: add x0, x19, :lo12:.LANCHOR5 add x1, x20, :lo12:.LANCHOR2 mov w2, 34661 - add x0, x0, 656 + add x0, x0, 640 movk w2, 0x1234, lsl 16 ldr w3, [x0,68] - str wzr, [x1,2404] + str wzr, [x1,2388] cmp w3, w2 - bne .L2177 - ldrb w2, [x1,1228] - cbz w2, .L2178 + bne .L2231 + ldrb w2, [x1,1220] + cbz w2, .L2232 str wzr, [x0,68] bl Ftl_save_ext_data - b .L2177 -.L2178: + b .L2231 +.L2232: mov w0, 1 - str w0, [x1,2196] - adrp x0, .LC45 - adrp x1, .LC66 - add x0, x0, :lo12:.LC45 - add x1, x1, :lo12:.LC66 + str w0, [x1,2096] + adrp x0, .LC47 + adrp x1, .LC69 + add x0, x0, :lo12:.LC47 + add x1, x1, :lo12:.LC69 bl printk -.L2177: +.L2231: add x0, x20, :lo12:.LANCHOR2 add x19, x19, :lo12:.LANCHOR5 ldr x21, [sp,32] - ldrh w2, [x0,2352] - ldr w3, [x0,2444] - ldr w1, [x0,2448] - ldrh w0, [x0,2300] + ldrh w2, [x0,2336] + ldr w3, [x0,2428] + ldr w1, [x0,2432] + ldrh w0, [x0,2284] madd w1, w2, w3, w1 udiv w0, w1, w0 - str w0, [x19,1180] + str w0, [x19,1164] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -14052,41 +14394,82 @@ Ftl_load_ext_data: .global ftl_scan_all_ppa .type ftl_scan_all_ppa, %function ftl_scan_all_ppa: - sub sp, sp, #80 - adrp x0, .LC67 - add x0, x0, :lo12:.LC67 + sub sp, sp, #112 stp x29, x30, [sp,16] add x29, sp, 16 - stp x19, x20, [sp,32] - adrp x19, .LANCHOR2 - add x19, x19, :lo12:.LANCHOR2 - stp x23, x24, [sp,64] - adrp x23, .LC68 - add x20, x19, 2952 - ldrh w1, [x19,2358] - add x23, x23, :lo12:.LC68 - ldrh w2, [x19,2360] stp x21, x22, [sp,48] + adrp x21, .LANCHOR2 + add x0, x21, :lo12:.LANCHOR2 + stp x25, x26, [sp,80] + stp x23, x24, [sp,64] + stp x19, x20, [sp,32] + stp x27, x28, [sp,96] + adrp x24, .LC70 + adrp x25, .LC71 + ldrh w19, [x0,2342] + adrp x26, .LC72 + add x24, x24, :lo12:.LC70 + add x25, x25, :lo12:.LC71 + sub w19, w19, #16 + add x26, x26, :lo12:.LC72 +.L2234: + add x20, x21, :lo12:.LANCHOR2 + ldrh w0, [x20,2342] + cmp w19, w0 + bge .L2249 + uxth w27, w19 + mov w0, w27 + bl ftl_get_blk_mode + ldrb w1, [x20,1220] + cbz w1, .L2235 + ldrh w1, [x20,2284] + cmp w19, w1 + bge .L2236 + ldrh w1, [x20,2358] + cmp w19, w1 + blt .L2236 +.L2235: + cmp w0, 1 + bne .L2237 +.L2236: + add x0, x21, :lo12:.LANCHOR2 + mov w22, -2147483648 + ldrh w23, [x0,2346] + b .L2238 +.L2237: + add x0, x21, :lo12:.LANCHOR2 mov w22, 0 + ldrh w23, [x0,2344] +.L2238: + mov x0, x24 + mov w1, w19 + mov w2, w23 + mov w3, w22 bl printk -.L2180: - ldrh w0, [x19,2358] - cmp w22, w0 - bcs .L2182 - lsl w24, w22, 10 - mov w21, 0 -.L2183: - ldrh w0, [x19,2360] - cmp w21, w0 - bcs .L2184 - add w0, w21, w24 + mov w0, w27 + bl FtlBbmIsBadBlock + cbz w0, .L2239 + mov x0, x25 + mov w1, w19 + mov w2, w23 + mov w3, w22 + bl printk +.L2239: + add x28, x21, :lo12:.LANCHOR2 + mov w27, 0 + add x20, x28, 2936 + add w22, w22, w19, lsl 10 +.L2240: + cmp w27, w23 + beq .L2250 + add w0, w22, w27 str w0, [x20,4] - ldr x0, [x19,2592] + ldr x0, [x28,2576] mov w1, 1 str x0, [x20,8] mov w2, 0 - ldr x0, [x19,2656] - add w21, w21, 1 + ldr x0, [x28,2640] + add w27, w27, 1 str x0, [x20,16] mov x0, x20 str wzr, [x20] @@ -14095,7 +14478,7 @@ ftl_scan_all_ppa: ldr x6, [x20,16] ldr w0, [x7,4] str w0, [sp] - mov x0, x23 + mov x0, x26 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -14104,23 +14487,25 @@ ftl_scan_all_ppa: ldr w6, [x6,12] ldr w7, [x7] bl printk - b .L2183 -.L2184: - add w22, w22, 1 - b .L2180 -.L2182: + b .L2240 +.L2250: + add w19, w19, 1 + b .L2234 +.L2249: adrp x1, .LANCHOR3 - adrp x0, .LC69 + adrp x0, .LC73 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC69 - add x1, x1, 72 + add x0, x0, :lo12:.LC73 + add x1, x1, 208 bl printk sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] ldp x23, x24, [sp,64] + ldp x25, x26, [sp,80] + ldp x27, x28, [sp,96] ldp x29, x30, [sp,16] - add sp, sp, 80 + add sp, sp, 112 ret .size ftl_scan_all_ppa, .-ftl_scan_all_ppa .align 2 @@ -14138,33 +14523,33 @@ update_multiplier_value: stp x23, x24, [sp,48] mov x22, 0 mov x21, x0 - ldrh w24, [x1,2292] + ldrh w24, [x1,2276] mov w19, w22 - ldrh w25, [x1,2360] + ldrh w25, [x1,2344] mov x23, x1 -.L2186: +.L2252: cmp w24, w22, uxth - bls .L2193 - add x0, x23, 2320 + bls .L2259 + add x0, x23, 2304 mov w1, w20 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L2187 + cbnz w0, .L2253 add w19, w19, w25 uxth w19, w19 -.L2187: +.L2253: add x22, x22, 1 - b .L2186 -.L2193: - cbz w19, .L2189 + b .L2252 +.L2259: + cbz w19, .L2255 mov w0, 32768 sdiv w19, w0, w19 -.L2189: +.L2255: add x0, x21, :lo12:.LANCHOR2 mov w1, 6 umull x20, w20, w1 - ldr x0, [x0,2824] + ldr x0, [x0,2808] add x20, x0, x20 mov w0, 0 strh w19, [x20,4] @@ -14179,21 +14564,21 @@ update_multiplier_value: .global GetFreeBlockMinEraseCount .type GetFreeBlockMinEraseCount, %function GetFreeBlockMinEraseCount: - adrp x0, .LANCHOR4+784 - ldr x1, [x0,#:lo12:.LANCHOR4+784] + adrp x0, .LANCHOR4+768 + ldr x1, [x0,#:lo12:.LANCHOR4+768] mov w0, w1 - cbz x1, .L2195 + cbz x1, .L2261 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x2, [x0,2824] - ldr x0, [x0,2712] + ldr x2, [x0,2808] + ldr x0, [x0,2696] sub x1, x1, x2 mov x2, -6148914691236517206 asr x1, x1, 1 madd x1, x2, x1, x1 and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L2195: +.L2261: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -14203,10 +14588,10 @@ GetFreeBlockMaxEraseCount: adrp x2, .LANCHOR4 uxth w4, w0 add x2, x2, :lo12:.LANCHOR4 - ldr x1, [x2,784] + ldr x1, [x2,768] mov w0, w1 - cbz x1, .L2198 - ldrh w2, [x2,792] + cbz x1, .L2264 + ldrh w2, [x2,776] mov w0, 7 mov x3, -6148914691236517206 mov w6, 6 @@ -14217,31 +14602,31 @@ GetFreeBlockMaxEraseCount: csel w4, w2, w4, gt adrp x2, .LANCHOR2 add x0, x2, :lo12:.LANCHOR2 - ldr x0, [x0,2824] + ldr x0, [x0,2808] sub x1, x1, x0 asr x1, x1, 1 madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L2200: +.L2266: cmp w3, w4 - beq .L2203 + beq .L2269 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L2201 -.L2203: + bne .L2267 +.L2269: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 - ldr x0, [x2,2712] + ldr x0, [x2,2696] ldrh w0, [x0,x1] - b .L2198 -.L2201: + b .L2264 +.L2267: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L2200 -.L2198: + b .L2266 +.L2264: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -14249,11 +14634,11 @@ GetFreeBlockMaxEraseCount: .type FtlPrintInfo2buf, %function FtlPrintInfo2buf: stp x29, x30, [sp, -112]! - adrp x1, .LC70 + adrp x1, .LC74 add x29, sp, 0 stp x23, x24, [sp,48] adrp x24, .LANCHOR2 - add x1, x1, :lo12:.LC70 + add x1, x1, :lo12:.LC74 stp x21, x22, [sp,32] add x22, x24, :lo12:.LANCHOR2 mov x23, x0 @@ -14262,25 +14647,25 @@ FtlPrintInfo2buf: stp x27, x28, [sp,80] bl strcpy add x20, x23, 12 - ldr w2, [x22,1200] - adrp x1, .LC71 + ldr w2, [x22,1192] + adrp x1, .LC75 mov x0, x20 - add x1, x1, :lo12:.LC71 + add x1, x1, :lo12:.LC75 bl sprintf add x20, x20, x0, sxtw - adrp x1, .LC72 - ldr w2, [x22,2376] + adrp x1, .LC76 + ldr w2, [x22,2360] mov x0, x20 - add x1, x1, :lo12:.LC72 + add x1, x1, :lo12:.LC76 bl sprintf add x20, x20, x0, sxtw - adrp x0, .LANCHOR1+3352 - ldr w0, [x0,#:lo12:.LANCHOR1+3352] + adrp x0, .LANCHOR1+3448 + ldr w0, [x0,#:lo12:.LANCHOR1+3448] cmp w0, 1 - beq .L2206 + beq .L2272 sub w0, w20, w23 - b .L2207 -.L2206: + b .L2273 +.L2272: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 @@ -14289,492 +14674,492 @@ FtlPrintInfo2buf: bl NandcGetTimeCfg add x25, x26, :lo12:.LANCHOR4 ldr w4, [x29,104] - adrp x1, .LC73 + adrp x1, .LC77 ldr w5, [x29,108] mov x0, x20 ldr w3, [x29,100] - add x1, x1, :lo12:.LC73 + add x1, x1, :lo12:.LC77 ldr w2, [x29,96] bl sprintf add x21, x20, x0, sxtw - adrp x1, .LC74 + adrp x1, .LC78 mov x0, x21 - add x1, x1, :lo12:.LC74 + add x1, x1, :lo12:.LC78 add x21, x21, 10 adrp x20, .LANCHOR5 bl strcpy add x20, x20, :lo12:.LANCHOR5 - ldr w2, [x22,2940] - adrp x1, .LC75 - mov x0, x21 - add x1, x1, :lo12:.LC75 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x25,1084] - adrp x1, .LC76 - mov x0, x21 - add x1, x1, :lo12:.LC76 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x22,2440] - adrp x1, .LC77 - mov x0, x21 - add x1, x1, :lo12:.LC77 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x22,2428] - adrp x1, .LC78 - mov x0, x21 - add x1, x1, :lo12:.LC78 - bl sprintf - add x21, x21, x0, sxtw - ldr w2, [x22,2424] + ldr w2, [x22,2924] adrp x1, .LC79 mov x0, x21 add x1, x1, :lo12:.LC79 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2432] + ldr w2, [x25,1068] adrp x1, .LC80 mov x0, x21 add x1, x1, :lo12:.LC80 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2436] + ldr w2, [x22,2424] adrp x1, .LC81 mov x0, x21 add x1, x1, :lo12:.LC81 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2420] + ldr w2, [x22,2412] adrp x1, .LC82 mov x0, x21 add x1, x1, :lo12:.LC82 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x20,1168] + ldr w2, [x22,2408] adrp x1, .LC83 mov x0, x21 add x1, x1, :lo12:.LC83 - lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x20,1172] + ldr w2, [x22,2416] adrp x1, .LC84 mov x0, x21 add x1, x1, :lo12:.LC84 - lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2412] + ldr w2, [x22,2420] adrp x1, .LC85 mov x0, x21 add x1, x1, :lo12:.LC85 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2416] + ldr w2, [x22,2404] adrp x1, .LC86 - add x1, x1, :lo12:.LC86 mov x0, x21 + add x1, x1, :lo12:.LC86 bl sprintf add x21, x21, x0, sxtw - bl FtlBbtCalcTotleCnt - uxth w3, w0 - ldrh w2, [x22,2846] + ldr w2, [x20,1152] adrp x1, .LC87 mov x0, x21 add x1, x1, :lo12:.LC87 + lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,792] + ldr w2, [x20,1156] adrp x1, .LC88 mov x0, x21 add x1, x1, :lo12:.LC88 + lsr w2, w2, 11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2444] + ldr w2, [x22,2396] adrp x1, .LC89 mov x0, x21 add x1, x1, :lo12:.LC89 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2448] + ldr w2, [x22,2400] adrp x1, .LC90 - mov x0, x21 add x1, x1, :lo12:.LC90 + mov x0, x21 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x20,1180] + bl FtlBbtCalcTotleCnt + uxth w3, w0 + ldrh w2, [x22,2830] adrp x1, .LC91 mov x0, x21 add x1, x1, :lo12:.LC91 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2452] + ldrh w2, [x25,776] adrp x1, .LC92 mov x0, x21 add x1, x1, :lo12:.LC92 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2456] + ldr w2, [x22,2428] adrp x1, .LC93 mov x0, x21 add x1, x1, :lo12:.LC93 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2460] + ldr w2, [x22,2432] adrp x1, .LC94 mov x0, x21 add x1, x1, :lo12:.LC94 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,742] + ldr w2, [x20,1164] adrp x1, .LC95 mov x0, x21 add x1, x1, :lo12:.LC95 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,740] + ldr w2, [x22,2436] adrp x1, .LC96 mov x0, x21 add x1, x1, :lo12:.LC96 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,1232] + ldr w2, [x22,2440] adrp x1, .LC97 mov x0, x21 add x1, x1, :lo12:.LC97 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2392] + ldr w2, [x22,2444] adrp x1, .LC98 mov x0, x21 add x1, x1, :lo12:.LC98 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2288] + ldrh w2, [x25,726] adrp x1, .LC99 mov x0, x21 add x1, x1, :lo12:.LC99 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3014] + ldrh w2, [x25,724] adrp x1, .LC100 mov x0, x21 add x1, x1, :lo12:.LC100 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,2300] + ldr w2, [x22,1224] adrp x1, .LC101 mov x0, x21 add x1, x1, :lo12:.LC101 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,604] + ldr w2, [x22,2376] adrp x1, .LC102 mov x0, x21 add x1, x1, :lo12:.LC102 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,2304] + ldr w2, [x22,2272] adrp x1, .LC103 mov x0, x21 add x1, x1, :lo12:.LC103 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,1088] + ldrh w2, [x22,2998] adrp x1, .LC104 mov x0, x21 add x1, x1, :lo12:.LC104 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,2840] + ldrh w2, [x22,2284] adrp x1, .LC105 mov x0, x21 add x1, x1, :lo12:.LC105 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,802] + ldrh w2, [x20,588] adrp x1, .LC106 mov x0, x21 add x1, x1, :lo12:.LC106 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x25,806] + ldr w2, [x22,2288] adrp x1, .LC107 mov x0, x21 add x1, x1, :lo12:.LC107 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,800] + ldrh w2, [x25,1072] adrp x1, .LC108 mov x0, x21 add x1, x1, :lo12:.LC108 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x25,808] + ldrh w2, [x22,2824] adrp x1, .LC109 mov x0, x21 add x1, x1, :lo12:.LC109 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,804] + ldrh w2, [x25,786] adrp x1, .LC110 mov x0, x21 add x1, x1, :lo12:.LC110 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x25,800] + ldrb w2, [x25,790] adrp x1, .LC111 - ldr x2, [x22,2728] mov x0, x21 add x1, x1, :lo12:.LC111 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,850] + ldrh w2, [x25,784] adrp x1, .LC112 mov x0, x21 add x1, x1, :lo12:.LC112 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x25,854] + ldrb w2, [x25,792] adrp x1, .LC113 mov x0, x21 add x1, x1, :lo12:.LC113 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,848] + ldrh w2, [x25,788] adrp x1, .LC114 mov x0, x21 add x1, x1, :lo12:.LC114 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x25,856] + ldrh w3, [x25,784] adrp x1, .LC115 + ldr x2, [x22,2712] mov x0, x21 add x1, x1, :lo12:.LC115 + ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,852] + ldrh w2, [x25,834] adrp x1, .LC116 mov x0, x21 add x1, x1, :lo12:.LC116 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x25,848] + ldrb w2, [x25,838] adrp x1, .LC117 - ldr x2, [x22,2728] mov x0, x21 add x1, x1, :lo12:.LC117 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,898] + ldrh w2, [x25,832] adrp x1, .LC118 mov x0, x21 add x1, x1, :lo12:.LC118 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x25,902] + ldrb w2, [x25,840] adrp x1, .LC119 mov x0, x21 add x1, x1, :lo12:.LC119 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,896] + ldrh w2, [x25,836] adrp x1, .LC120 mov x0, x21 add x1, x1, :lo12:.LC120 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x25,904] + ldrh w3, [x25,832] adrp x1, .LC121 + ldr x2, [x22,2712] mov x0, x21 add x1, x1, :lo12:.LC121 + ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x25,900] + ldrh w2, [x25,882] adrp x1, .LC122 mov x0, x21 add x1, x1, :lo12:.LC122 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,610] + ldrb w2, [x25,886] adrp x1, .LC123 mov x0, x21 add x1, x1, :lo12:.LC123 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x20,614] + ldrh w2, [x25,880] adrp x1, .LC124 mov x0, x21 add x1, x1, :lo12:.LC124 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,608] + ldrb w2, [x25,888] adrp x1, .LC125 mov x0, x21 add x1, x1, :lo12:.LC125 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x20,616] + ldrh w2, [x25,884] adrp x1, .LC126 mov x0, x21 add x1, x1, :lo12:.LC126 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,612] + ldrh w2, [x20,594] adrp x1, .LC127 mov x0, x21 add x1, x1, :lo12:.LC127 bl sprintf add x21, x21, x0, sxtw - ldr w3, [x22,2408] + ldrb w2, [x20,598] adrp x1, .LC128 - ldr w2, [x22,2196] - add x1, x1, :lo12:.LC128 - ldr w4, [x20,740] mov x0, x21 - ldr w5, [x20,732] - orr w2, w2, w3, lsl 8 - ldr w3, [x20,736] + add x1, x1, :lo12:.LC128 bl sprintf - add x19, x21, x0, sxtw - ldr w2, [x20,728] + add x21, x21, x0, sxtw + ldrh w2, [x20,592] adrp x1, .LC129 - mov x0, x19 + mov x0, x21 add x1, x1, :lo12:.LC129 bl sprintf - add x19, x19, x0, sxtw - ldr w2, [x20,752] + add x21, x21, x0, sxtw + ldrb w2, [x20,600] adrp x1, .LC130 - mov x0, x19 + mov x0, x21 add x1, x1, :lo12:.LC130 bl sprintf - add x19, x19, x0, sxtw - ldrh w2, [x22,2496] + add x21, x21, x0, sxtw + ldrh w2, [x20,596] adrp x1, .LC131 - mov x0, x19 + mov x0, x21 add x1, x1, :lo12:.LC131 bl sprintf - add x19, x19, x0, sxtw - ldrh w2, [x22,2498] + add x21, x21, x0, sxtw + ldr w3, [x22,2392] adrp x1, .LC132 - mov x0, x19 + ldr w2, [x22,2096] add x1, x1, :lo12:.LC132 + ldr w4, [x20,724] + mov x0, x21 + ldr w5, [x20,716] + orr w2, w2, w3, lsl 8 + ldr w3, [x20,720] bl sprintf - add x19, x19, x0, sxtw - ldr w2, [x22,2480] + add x19, x21, x0, sxtw + ldr w2, [x20,712] adrp x1, .LC133 mov x0, x19 add x1, x1, :lo12:.LC133 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,2500] + ldr w2, [x20,736] adrp x1, .LC134 - add x1, x1, :lo12:.LC134 mov x0, x19 + add x1, x1, :lo12:.LC134 bl sprintf add x19, x19, x0, sxtw - bl GetFreeBlockMinEraseCount - uxth w2, w0 + ldrh w2, [x22,2480] adrp x1, .LC135 mov x0, x19 add x1, x1, :lo12:.LC135 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x25,792] - bl GetFreeBlockMaxEraseCount - uxth w2, w0 + ldrh w2, [x22,2482] adrp x1, .LC136 mov x0, x19 add x1, x1, :lo12:.LC136 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x20,608] - mov w1, 65535 - cmp w0, w1 - beq .L2208 - ubfiz x2, x0, 1, 16 - ldr x3, [x22,2728] + ldr w2, [x22,2464] adrp x1, .LC137 mov x0, x19 add x1, x1, :lo12:.LC137 + bl sprintf + add x19, x19, x0, sxtw + ldrh w2, [x22,2484] + adrp x1, .LC138 + add x1, x1, :lo12:.LC138 + mov x0, x19 + bl sprintf + add x19, x19, x0, sxtw + bl GetFreeBlockMinEraseCount + uxth w2, w0 + adrp x1, .LC139 + mov x0, x19 + add x1, x1, :lo12:.LC139 + bl sprintf + add x19, x19, x0, sxtw + ldrh w0, [x25,776] + bl GetFreeBlockMaxEraseCount + uxth w2, w0 + adrp x1, .LC140 + mov x0, x19 + add x1, x1, :lo12:.LC140 + bl sprintf + add x19, x19, x0, sxtw + ldrh w0, [x20,592] + mov w1, 65535 + cmp w0, w1 + beq .L2274 + ubfiz x2, x0, 1, 16 + ldr x3, [x22,2712] + adrp x1, .LC141 + mov x0, x19 + add x1, x1, :lo12:.LC141 ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L2208: +.L2274: mov w0, 0 - adrp x22, .LC138 + adrp x22, .LC142 mov w20, 0 mov w28, 65535 bl List_get_gc_head_node mov w27, 6 uxth w3, w0 - add x22, x22, :lo12:.LC138 -.L2210: + add x22, x22, :lo12:.LC142 +.L2276: cmp w3, w28 - beq .L2209 + beq .L2275 add x21, x24, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 umull x25, w3, w27 mov x0, x19 mov w2, w20 - ldr x5, [x21,2824] + ldr x5, [x21,2808] mov x1, x22 - ldr x4, [x21,2728] + ldr x4, [x21,2712] add w20, w20, 1 - ldr x7, [x21,2712] + ldr x7, [x21,2696] add x5, x5, x25 ldrh w4, [x4,x6] ldrh w5, [x5,4] ldrh w6, [x7,x6] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,2824] + ldr x0, [x21,2808] cmp w20, 16 ldrh w3, [x0,x25] - bne .L2210 -.L2209: + bne .L2276 +.L2275: add x26, x26, :lo12:.LANCHOR4 add x1, x24, :lo12:.LANCHOR2 - adrp x22, .LC139 + adrp x22, .LC143 mov w20, 0 mov w27, 65535 - add x22, x22, :lo12:.LC139 - ldr x0, [x26,784] + add x22, x22, :lo12:.LC143 + ldr x0, [x26,768] mov w26, 6 - ldr x3, [x1,2824] + ldr x3, [x1,2808] sub x3, x0, x3 mov x0, -6148914691236517206 asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L2212: +.L2278: cmp w3, w27 - beq .L2211 + beq .L2277 add x21, x24, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 umull x25, w3, w26 mov x0, x19 mov w2, w20 - ldr x4, [x21,2824] + ldr x4, [x21,2808] mov x1, x22 - ldr x6, [x21,2712] + ldr x6, [x21,2696] add w20, w20, 1 add x4, x4, x25 ldrh w5, [x6,x5] ldrh w4, [x4,4] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,2824] + ldr x0, [x21,2808] cmp w20, 4 ldrh w3, [x0,x25] - bne .L2212 -.L2211: + bne .L2278 +.L2277: sub w0, w19, w23 -.L2207: +.L2273: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14788,11 +15173,11 @@ FtlPrintInfo2buf: .type ftl_proc_ftl_read, %function ftl_proc_ftl_read: stp x29, x30, [sp, -32]! - adrp x1, .LC45 - adrp x2, .LC140 + adrp x1, .LC47 + adrp x2, .LC144 add x29, sp, 0 - add x1, x1, :lo12:.LC45 - add x2, x2, :lo12:.LC140 + add x1, x1, :lo12:.LC47 + add x2, x2, :lo12:.LC144 stp x19, x20, [sp,16] mov x20, x0 bl sprintf @@ -14818,113 +15203,113 @@ GetSwlReplaceBlock: stp x23, x24, [sp,48] stp x25, x26, [sp,64] adrp x19, .LANCHOR2 - ldr w3, [x1,1180] + ldr w3, [x1,1164] add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,2460] + ldr w2, [x1,2444] cmp w3, w2 - bcs .L2217 - str wzr, [x1,2444] - ldrh w3, [x1,2300] - ldr x5, [x1,2712] + bcs .L2283 + str wzr, [x1,2428] + ldrh w3, [x1,2284] + ldr x5, [x1,2696] mov x1, 0 -.L2218: +.L2284: cmp w3, w1 - bls .L2250 + bls .L2316 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x1,lsl 1] add x1, x1, 1 - ldr w2, [x4,2444] + ldr w2, [x4,2428] add w2, w6, w2 - str w2, [x4,2444] - b .L2218 -.L2250: + str w2, [x4,2428] + b .L2284 +.L2316: add x2, x19, :lo12:.LANCHOR2 add x4, x0, :lo12:.LANCHOR5 - ldr w1, [x2,2444] + ldr w1, [x2,2428] udiv w3, w1, w3 - str w3, [x4,1180] - ldr w3, [x2,2448] + str w3, [x4,1164] + ldr w3, [x2,2432] sub w1, w1, w3 - ldrh w3, [x2,2352] + ldrh w3, [x2,2336] udiv w1, w1, w3 - str w1, [x2,2444] - b .L2220 -.L2217: - ldr w2, [x1,2456] + str w1, [x2,2428] + b .L2286 +.L2283: + ldr w2, [x1,2440] cmp w3, w2 - bls .L2220 + bls .L2286 add w2, w2, 1 - str w2, [x1,2456] + str w2, [x1,2440] mov w1, 0 -.L2222: +.L2288: add x2, x19, :lo12:.LANCHOR2 - ldrh w3, [x2,2300] + ldrh w3, [x2,2284] cmp w1, w3 - bcs .L2220 + bcs .L2286 ubfiz x3, x1, 1, 32 - ldr x4, [x2,2712] + ldr x4, [x2,2696] add w1, w1, 1 ldrh w2, [x4,x3] add w2, w2, 1 strh w2, [x4,x3] - b .L2222 -.L2220: + b .L2288 +.L2286: add x1, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR5 - ldr w21, [x1,2460] - ldr w23, [x0,1180] + ldr w21, [x1,2444] + ldr w23, [x0,1164] add w0, w21, 256 cmp w0, w23 - bls .L2225 - ldr w2, [x1,2456] + bls .L2291 + ldr w2, [x1,2440] add w0, w21, 768 cmp w0, w2 - bls .L2225 - ldr w0, [x1,2196] - cbz w0, .L2228 + bls .L2291 + ldr w0, [x1,2096] + cbz w0, .L2294 cmp w21, 40 - bls .L2225 -.L2228: + bls .L2291 +.L2294: mov w0, 65535 - b .L2227 -.L2225: + b .L2293 +.L2291: adrp x20, .LANCHOR4 add x0, x20, :lo12:.LANCHOR4 - ldrh w0, [x0,792] + ldrh w0, [x0,776] add w0, w0, w0, lsl 1 lsr w0, w0, 2 bl GetFreeBlockMaxEraseCount uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L2237 + bcs .L2303 cmp w21, 40 - bhi .L2228 -.L2237: + bhi .L2294 +.L2303: add x20, x20, :lo12:.LANCHOR4 - ldr x3, [x20,760] - cbz x3, .L2228 + ldr x3, [x20,744] + cbz x3, .L2294 add x0, x19, :lo12:.LANCHOR2 mov w26, 65535 mov w1, 0 mov w20, w26 mov w8, w26 mov w10, 6 - ldrh w9, [x0,2300] - ldr x7, [x0,2824] - ldr x25, [x0,2712] + ldrh w9, [x0,2284] + ldr x7, [x0,2808] + ldr x25, [x0,2696] mov x0, -6148914691236517206 add x0, x0, 1 -.L2230: +.L2296: ldrh w5, [x3] cmp w5, w8 - beq .L2232 + beq .L2298 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L2228 + bhi .L2294 ldrh w2, [x3,4] - cbz w2, .L2231 + cbz w2, .L2297 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -14932,61 +15317,61 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w2, [x25,x4,lsl 1] cmp w2, w21 - bls .L2236 + bls .L2302 cmp w2, w26 - bcs .L2231 + bcs .L2297 mov w26, w2 mov w20, w3 -.L2231: +.L2297: umull x3, w5, w10 add x3, x7, x3 - b .L2230 -.L2236: + b .L2296 +.L2302: mov w20, w3 -.L2232: +.L2298: mov w0, 65535 cmp w20, w0 - beq .L2228 + beq .L2294 ubfiz x24, x20, 1, 16 ldrh w22, [x25,x24] cmp w22, w21 - bls .L2234 + bls .L2300 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L2234 + bcs .L2300 add x0, x19, :lo12:.LANCHOR2 - str w26, [x0,2460] -.L2234: + str w26, [x0,2444] +.L2300: cmp w22, w23 - bcs .L2228 + bcs .L2294 add w0, w22, 128 cmp w6, w0 - ble .L2228 + ble .L2294 add w0, w22, 256 cmp w0, w23 - bcc .L2235 + bcc .L2301 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 - ldr w0, [x0,2456] + ldr w0, [x0,2440] cmp w22, w0 - bcs .L2228 -.L2235: + bcs .L2294 +.L2301: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC141 + adrp x0, .LC145 ldrh w5, [x25,x24] - add x0, x0, :lo12:.LC141 + add x0, x0, :lo12:.LC145 mov w1, w20 mov w2, w23 - ldr x4, [x19,2728] - ldr w3, [x19,2456] + ldr x4, [x19,2712] + ldr w3, [x19,2440] ldrh w4, [x4,x24] bl printk mov w0, 1 - str w0, [x19,2468] + str w0, [x19,2452] mov w0, w20 -.L2227: +.L2293: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15003,13 +15388,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L2252 - adrp x2, .LANCHOR2+2728 + beq .L2318 + adrp x2, .LANCHOR2+2712 ubfiz x1, x0, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2+2728] + ldr x2, [x2,#:lo12:.LANCHOR2+2712] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L2252: +.L2318: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -15027,227 +15412,227 @@ allocate_data_superblock: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w1, [x1,2944] - cbnz w1, .L2254 + ldr w1, [x1,2928] + cbnz w1, .L2320 adrp x21, .LANCHOR4 mov x20, x0 add x21, x21, :lo12:.LANCHOR4 - add x23, x21, 896 + add x23, x21, 880 mov x22, x21 - add x24, x21, 784 -.L2255: + add x24, x21, 768 +.L2321: cmp x20, x23 - bne .L2256 + bne .L2322 add x2, x19, :lo12:.LANCHOR2 - ldrh w0, [x21,792] + ldrh w0, [x21,776] lsr w3, w0, 1 - ldr w4, [x2,2468] + ldr w4, [x2,2452] add w5, w3, 1 mul w1, w0, w4 add w1, w5, w1, lsr 2 - ldr w5, [x2,2196] + ldr w5, [x2,2096] uxth w1, w1 - cbz w5, .L2257 - ldr w2, [x2,2460] + cbz w5, .L2323 + ldr w2, [x2,2444] cmp w2, 39 - bhi .L2257 + bhi .L2323 cmp w2, 2 mov w1, 0 - bls .L2258 - tbz x0, 0, .L2285 - cbz w4, .L2258 -.L2285: + bls .L2324 + tbz x0, 0, .L2351 + cbz w4, .L2324 +.L2351: mov w1, w3 - b .L2257 -.L2256: + b .L2323 +.L2322: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L2258 + bne .L2324 add x2, x19, :lo12:.LANCHOR2 - ldrh w0, [x2,2312] + ldrh w0, [x2,2296] cmp w0, 1 - beq .L2258 - ldrb w0, [x2,1228] - cbnz w0, .L2258 - ldr w3, [x2,2196] - ldrh w0, [x21,792] + beq .L2324 + ldrb w0, [x2,1220] + cbnz w0, .L2324 + ldr w3, [x2,2096] + ldrh w0, [x21,776] lsr w1, w0, 3 - cbz w3, .L2257 - ldr w2, [x2,2460] + cbz w3, .L2323 + ldr w2, [x2,2444] cmp w2, 1 - bhi .L2257 + bhi .L2323 mov w1, 7 mul w1, w0, w1 lsr w1, w1, 3 -.L2257: - cbz w1, .L2258 +.L2323: + cbz w1, .L2324 sub w1, w1, #1 uxth w1, w1 -.L2258: +.L2324: ldrb w2, [x20,8] mov x0, x24 add x26, x19, :lo12:.LANCHOR2 bl List_pop_index_node uxth w27, w0 - ldrh w0, [x22,792] + ldrh w0, [x22,776] sub w0, w0, #1 - strh w0, [x22,792] - ldrh w0, [x26,2300] + strh w0, [x22,776] + ldrh w0, [x26,2284] cmp w0, w27 - bls .L2255 + bls .L2321 ubfiz x25, x27, 1, 16 - ldr x0, [x26,2728] + ldr x0, [x26,2712] ldrh w0, [x0,x25] - cbnz w0, .L2255 + cbnz w0, .L2321 strh w27, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L2261 + cbz w0, .L2327 mov x0, 0 - ldrh w5, [x26,2292] + ldrh w5, [x26,2276] mov x3, 56 mov w26, w0 mov w6, 65535 - b .L2262 -.L2261: - ldr x0, [x26,2728] - b .L2310 -.L2264: + b .L2328 +.L2327: + ldr x0, [x26,2712] + b .L2376 +.L2330: add x1, x19, :lo12:.LANCHOR2 - ldr x4, [x1,2560] + ldr x4, [x1,2544] madd x1, x0, x3, x4 str xzr, [x1,16] str xzr, [x1,8] add x1, x20, x0, lsl 1 ldrh w1, [x1,16] cmp w1, w6 - beq .L2263 + beq .L2329 umull x2, w26, w3 add w26, w26, 1 lsl w1, w1, 10 add x2, x4, x2 uxth w26, w26 str w1, [x2,4] -.L2263: +.L2329: add x0, x0, 1 -.L2262: +.L2328: cmp w5, w0, uxth - bhi .L2264 - add x0, x22, 800 + bhi .L2330 + add x0, x22, 784 cmp x20, x0 - bne .L2265 + bne .L2331 add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,2196] - cbz w2, .L2265 - ldr x1, [x1,2712] + ldr w2, [x1,2096] + cbz w2, .L2331 + ldr x1, [x1,2696] ldrh w1, [x1,x25] cmp w1, 40 - bls .L2265 - strb wzr, [x22,808] -.L2265: + bls .L2331 + strb wzr, [x22,792] +.L2331: ldrb w0, [x20,8] - cbnz w0, .L2266 + cbnz w0, .L2332 add x1, x19, :lo12:.LANCHOR2 - ldr x0, [x1,2712] + ldr x0, [x1,2696] ldrh w2, [x0,x25] - cbz w2, .L2267 - ldrh w1, [x1,2352] + cbz w2, .L2333 + ldrh w1, [x1,2336] add w1, w2, w1 - b .L2311 -.L2267: + b .L2377 +.L2333: mov w1, 2 -.L2311: +.L2377: strh w1, [x0,x25] add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,2444] + ldr w0, [x1,2428] add w0, w0, 1 - str w0, [x1,2444] + str w0, [x1,2428] mov w0, w27 mov w1, 0 bl ftl_set_blk_mode - b .L2269 -.L2266: + b .L2335 +.L2332: add x0, x19, :lo12:.LANCHOR2 - ldr x2, [x0,2712] + ldr x2, [x0,2696] ldrh w1, [x2,x25] add w1, w1, 1 strh w1, [x2,x25] - ldr w1, [x0,2448] + ldr w1, [x0,2432] add w1, w1, 1 - str w1, [x0,2448] + str w1, [x0,2432] mov w0, w27 bl ftl_set_blk_mode.part.17 -.L2269: +.L2335: add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,2712] - ldr w2, [x0,2456] + ldr x1, [x0,2696] + ldr w2, [x0,2440] ldrh w1, [x1,x25] cmp w1, w2 - bls .L2270 - str w1, [x0,2456] -.L2270: + bls .L2336 + str w1, [x0,2440] +.L2336: add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,2352] - ldr w3, [x0,2444] - ldr w1, [x0,2448] + ldrh w2, [x0,2336] + ldr w3, [x0,2428] + ldr w1, [x0,2432] madd w1, w2, w3, w1 - ldrh w2, [x0,2300] + ldrh w2, [x0,2284] mov x3, 56 udiv w1, w1, w2 - adrp x2, .LANCHOR5+1180 - str w1, [x2,#:lo12:.LANCHOR5+1180] - ldr x1, [x0,2704] + adrp x2, .LANCHOR5+1164 + str w1, [x2,#:lo12:.LANCHOR5+1164] + ldr x1, [x0,2688] ldr w0, [x1,16] add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L2271: +.L2337: cmp w26, w0, uxth - bls .L2313 + bls .L2379 add x1, x19, :lo12:.LANCHOR2 - ldr x1, [x1,2560] + ldr x1, [x1,2544] madd x1, x0, x3, x1 add x0, x0, 1 ldr w2, [x1,4] and w2, w2, -1024 str w2, [x1,4] - b .L2271 -.L2313: + b .L2337 +.L2379: add x0, x19, :lo12:.LANCHOR2 - ldrb w1, [x0,1228] - cbz w1, .L2273 + ldrb w1, [x0,1220] + cbz w1, .L2339 ldrb w1, [x20,8] - ldr x0, [x0,2560] + ldr x0, [x0,2544] cmp w1, 1 - bne .L2274 + bne .L2340 mov w1, 0 - b .L2312 -.L2274: + b .L2378 +.L2340: mov w1, 1 -.L2312: +.L2378: mov w2, w26 bl FlashEraseBlocks -.L2273: +.L2339: add x0, x19, :lo12:.LANCHOR2 ldrb w1, [x20,8] mov w2, w26 mov x28, 0 - ldr x0, [x0,2560] + ldr x0, [x0,2544] bl FlashEraseBlocks mov w1, w28 mov x3, 56 -.L2275: +.L2341: cmp w26, w28, uxth - bls .L2314 + bls .L2380 add x2, x19, :lo12:.LANCHOR2 mul x0, x28, x3 - ldr x2, [x2,2560] + ldr x2, [x2,2544] add x4, x2, x0 ldr w2, [x2,x0] cmn w2, #1 - bne .L2276 + bne .L2342 ldr w0, [x4,4] add w1, w1, 1 str x3, [x29,96] @@ -15264,40 +15649,40 @@ allocate_data_superblock: ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L2276: +.L2342: add x28, x28, 1 - b .L2275 -.L2314: - cbz w1, .L2278 + b .L2341 +.L2380: + cbz w1, .L2344 mov w0, w27 bl update_multiplier_value bl FtlBbmTblFlush -.L2278: +.L2344: ldrb w0, [x20,7] - cbnz w0, .L2279 + cbnz w0, .L2345 add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2728] -.L2310: + ldr x0, [x0,2712] +.L2376: mov w1, -1 strh w1, [x0,x25] - b .L2255 -.L2279: + b .L2321 +.L2345: add x19, x19, :lo12:.LANCHOR2 strh wzr, [x20,2] strb wzr, [x20,6] - ldrh w1, [x19,2360] + ldrh w1, [x19,2344] strh w27, [x20] mul w0, w0, w1 - ldr w1, [x19,2412] + ldr w1, [x19,2396] str w1, [x20,12] uxth w0, w0 add w1, w1, 1 strh w0, [x20,4] - str w1, [x19,2412] - ldr x1, [x19,2728] + str w1, [x19,2396] + ldr x1, [x19,2712] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L2254: +.L2320: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15311,36 +15696,36 @@ allocate_data_superblock: .global FtlGcBufInit .type FtlGcBufInit, %function FtlGcBufInit: - adrp x0, .LANCHOR5+1184 + adrp x0, .LANCHOR5+1168 mov w1, 0 adrp x7, .LANCHOR2 mov w8, 24 mov w9, 1 mov w4, 4 - str wzr, [x0,#:lo12:.LANCHOR5+1184] + str wzr, [x0,#:lo12:.LANCHOR5+1168] mov w10, 56 -.L2316: +.L2382: add x2, x7, :lo12:.LANCHOR2 adrp x6, .LANCHOR2 - ldrh w0, [x2,2292] + ldrh w0, [x2,2276] cmp w1, w0 - bcs .L2320 + bcs .L2386 umull x3, w1, w8 - ldr x5, [x2,2648] - ldr x6, [x2,2616] + ldr x5, [x2,2632] + ldr x6, [x2,2600] add x0, x5, x3 str w9, [x0,16] - ldrh w0, [x2,2370] + ldrh w0, [x2,2354] mul w0, w1, w0 sdiv w0, w0, w4 add x0, x6, x0, sxtw 2 str x0, [x5,x3] - ldrh w0, [x2,2372] - ldr x6, [x2,2648] - ldr x11, [x2,2672] + ldrh w0, [x2,2356] + ldr x6, [x2,2632] + ldr x11, [x2,2656] mul w0, w1, w0 add x5, x6, x3 - ldr x2, [x2,2568] + ldr x2, [x2,2552] sdiv w0, w0, w4 add x0, x11, x0, sxtw 2 str x0, [x5,8] @@ -15352,28 +15737,28 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x5,8] str x2, [x0,16] - b .L2316 -.L2320: + b .L2382 +.L2386: mov w7, 24 mov w4, 4 -.L2318: +.L2384: add x1, x6, :lo12:.LANCHOR2 - ldr w2, [x1,2584] + ldr w2, [x1,2568] cmp w0, w2 - bcs .L2321 + bcs .L2387 umull x3, w0, w7 - ldr x5, [x1,2648] - ldr x8, [x1,2616] + ldr x5, [x1,2632] + ldr x8, [x1,2600] add x2, x5, x3 str wzr, [x2,16] - ldrh w2, [x1,2370] + ldrh w2, [x1,2354] mul w2, w0, w2 sdiv w2, w2, w4 add x2, x8, x2, sxtw 2 str x2, [x5,x3] - ldrh w2, [x1,2372] - ldr x5, [x1,2648] - ldr x1, [x1,2672] + ldrh w2, [x1,2356] + ldr x5, [x1,2632] + ldr x1, [x1,2656] mul w2, w0, w2 add x3, x5, x3 add w0, w0, 1 @@ -15381,8 +15766,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x1, x2, sxtw 2 str x1, [x3,8] - b .L2318 -.L2321: + b .L2384 +.L2387: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -15398,37 +15783,37 @@ FtlVariablesInit: adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR5 - ldrh w2, [x19,2380] - strh w0, [x20,1200] + ldrh w2, [x19,2364] + strh w0, [x20,1184] mov w0, -1 - str w0, [x20,1212] + str w0, [x20,1196] lsl w2, w2, 1 - ldr x0, [x19,2752] - str xzr, [x20,1192] - str wzr, [x20,1204] - str wzr, [x20,1208] - str wzr, [x19,2196] - strh wzr, [x19,2936] + ldr x0, [x19,2736] + str xzr, [x20,1176] + str wzr, [x20,1188] + str wzr, [x20,1192] + str wzr, [x19,2096] + strh wzr, [x19,2920] bl ftl_memset - ldrh w2, [x19,2302] - mov w1, 0 - ldr x0, [x19,2712] - lsl w2, w2, 1 - bl ftl_memset - ldrh w2, [x19,2302] + ldrh w2, [x19,2286] mov w1, 0 ldr x0, [x19,2696] lsl w2, w2, 1 bl ftl_memset + ldrh w2, [x19,2286] + mov w1, 0 + ldr x0, [x19,2680] + lsl w2, w2, 1 + bl ftl_memset adrp x0, .LANCHOR4 mov w1, 0 add x0, x0, :lo12:.LANCHOR4 mov w2, 48 - add x0, x0, 712 + add x0, x0, 696 bl ftl_memset mov w1, 0 mov w2, 512 - add x0, x20, 656 + add x0, x20, 640 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit @@ -15446,34 +15831,34 @@ FtlGcBufFree: add x2, x2, :lo12:.LANCHOR2 mov w7, 56 mov w9, 24 - ldr w8, [x2,2584] - ldr x5, [x2,2648] -.L2324: + ldr w8, [x2,2568] + ldr x5, [x2,2632] +.L2390: cmp w3, w1 - bcs .L2323 + bcs .L2389 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L2329: +.L2395: cmp w2, w8 - bcs .L2326 + bcs .L2392 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L2325 + bne .L2391 str wzr, [x10,16] - b .L2326 -.L2325: + b .L2392 +.L2391: add w2, w2, 1 uxth w2, w2 - b .L2329 -.L2326: + b .L2395 +.L2392: add w3, w3, 1 uxth w3, w3 - b .L2324 -.L2323: + b .L2390 +.L2389: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -15485,20 +15870,20 @@ FtlGcBufAlloc: add x2, x2, :lo12:.LANCHOR2 mov w8, 1 mov w9, 56 - ldr w5, [x2,2584] - ldr x6, [x2,2648] + ldr w5, [x2,2568] + ldr x6, [x2,2632] mov w2, 0 -.L2331: +.L2397: cmp w2, w1 - bcs .L2337 + bcs .L2403 mov w3, 0 -.L2335: +.L2401: cmp w3, w5 - bcs .L2333 + bcs .L2399 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L2332 + cbnz w10, .L2398 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -15506,41 +15891,41 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L2333 -.L2332: + b .L2399 +.L2398: add w3, w3, 1 uxth w3, w3 - b .L2335 -.L2333: + b .L2401 +.L2399: add w2, w2, 1 uxth w2, w2 - b .L2331 -.L2337: + b .L2397 +.L2403: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 .global IsBlkInGcList .type IsBlkInGcList, %function IsBlkInGcList: - adrp x1, .LANCHOR5+1216 + adrp x1, .LANCHOR5+1200 uxth w0, w0 - ldrh w2, [x1,#:lo12:.LANCHOR5+1216] - adrp x1, .LANCHOR2+2520 - ldr x3, [x1,#:lo12:.LANCHOR2+2520] + ldrh w2, [x1,#:lo12:.LANCHOR5+1200] + adrp x1, .LANCHOR2+2504 + ldr x3, [x1,#:lo12:.LANCHOR2+2504] mov x1, 0 -.L2339: +.L2405: cmp w2, w1, uxth - bls .L2343 + bls .L2409 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L2339 + bne .L2405 mov w0, 1 - b .L2340 -.L2343: + b .L2406 +.L2409: mov w0, 0 -.L2340: +.L2406: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -15561,44 +15946,44 @@ FtlGcUpdatePage: ldr x1, [x29,32] uxth w9, w0 mov x6, 0 - ldrh w8, [x4,1216] + ldrh w8, [x4,1200] adrp x4, .LANCHOR2 add x5, x4, :lo12:.LANCHOR2 - ldr x7, [x5,2520] -.L2345: + ldr x7, [x5,2504] +.L2411: uxth w5, w6 cmp w5, w8 - bcs .L2349 + bcs .L2415 add x6, x6, 1 add x10, x7, x6, lsl 1 ldrh w10, [x10,-2] cmp w10, w9 - bne .L2345 -.L2349: + bne .L2411 +.L2415: cmp w5, w8 - bne .L2347 + bne .L2413 ubfiz x5, x5, 1, 16 strh w0, [x7,x5] add x0, x3, :lo12:.LANCHOR5 - ldrh w5, [x0,1216] + ldrh w5, [x0,1200] add w5, w5, 1 - strh w5, [x0,1216] -.L2347: + strh w5, [x0,1200] +.L2413: add x3, x3, :lo12:.LANCHOR5 add x4, x4, :lo12:.LANCHOR2 mov w0, 12 - ldrh w5, [x3,1218] - ldr x6, [x4,2528] + ldrh w5, [x3,1202] + ldr x6, [x4,2512] umull x5, w5, w0 add x6, x6, x5 str w1, [x6,4] - ldr x1, [x4,2528] + ldr x1, [x4,2512] add x0, x1, x5 str w2, [x0,8] str w19, [x1,x5] - ldrh w0, [x3,1218] + ldrh w0, [x3,1202] add w0, w0, 1 - strh w0, [x3,1218] + strh w0, [x3,1202] ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -15615,15 +16000,15 @@ FtlGcPageVarInit: adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 add x0, x0, :lo12:.LANCHOR5 - ldrh w2, [x19,2364] - strh wzr, [x0,1216] - strh wzr, [x0,1218] + ldrh w2, [x19,2348] + strh wzr, [x0,1200] + strh wzr, [x0,1202] lsl w2, w2, 1 - ldr x0, [x19,2520] + ldr x0, [x19,2504] bl ftl_memset - ldrh w3, [x19,2364] + ldrh w3, [x19,2348] mov w2, 12 - ldr x0, [x19,2528] + ldr x0, [x19,2512] mov w1, 255 mul w2, w3, w2 bl ftl_memset @@ -15648,66 +16033,66 @@ FtlGcScanTempBlk: stp x25, x26, [sp,64] stp x27, x28, [sp,80] str x0, [x29,128] - ldrh w27, [x1,3356] + ldrh w27, [x1,3452] mov w1, 65535 cmp w27, w1 - beq .L2385 - cbnz w27, .L2353 - b .L2354 -.L2385: + beq .L2451 + cbnz w27, .L2419 + b .L2420 +.L2451: mov w27, 0 -.L2353: - adrp x0, .LANCHOR2+2360 +.L2419: + adrp x0, .LANCHOR2+2344 ldr w1, [x29,136] - ldrh w0, [x0,#:lo12:.LANCHOR2+2360] + ldrh w0, [x0,#:lo12:.LANCHOR2+2344] cmp w1, w0 - bne .L2355 -.L2354: + bne .L2421 +.L2420: bl FtlGcPageVarInit -.L2355: +.L2421: mov w0, -1 adrp x23, .LANCHOR2 str w0, [x29,140] - adrp x0, .LC143 - add x0, x0, :lo12:.LC143 + adrp x0, .LC147 + add x0, x0, :lo12:.LC147 mov w24, 0 mov x22, x23 str x0, [x29,120] -.L2356: +.L2422: ldrh w1, [x19] mov w0, 65535 strb wzr, [x19,8] cmp w1, w0 - beq .L2386 -.L2358: + beq .L2452 +.L2424: mov w28, w0 -.L2382: +.L2448: adrp x0, .LANCHOR2 mov x2, x19 add x0, x0, :lo12:.LANCHOR2 mov w20, 0 mov w10, 56 mov w7, 4 - ldrh w5, [x0,2292] - ldrh w8, [x0,2370] - ldrh w9, [x0,2372] + ldrh w5, [x0,2276] + ldrh w8, [x0,2354] + ldrh w9, [x0,2356] add x5, x19, x5, lsl 1 -.L2359: +.L2425: cmp x2, x5 - beq .L2404 + beq .L2470 ldrh w1, [x2,16] cmp w1, w28 - beq .L2360 + beq .L2426 add x4, x23, :lo12:.LANCHOR2 orr w1, w27, w1, lsl 10 umull x0, w20, w10 - ldr x6, [x4,2536] + ldr x6, [x4,2520] add x6, x6, x0 str w1, [x6,4] - ldr x1, [x4,2536] - ldr x6, [x4,2616] + ldr x1, [x4,2520] + ldr x6, [x4,2600] add x0, x1, x0 - ldr x4, [x4,2672] + ldr x4, [x4,2656] mul w1, w20, w8 sdiv w1, w1, w7 add x1, x6, x1, sxtw 2 @@ -15718,23 +16103,23 @@ FtlGcScanTempBlk: sdiv w1, w1, w7 add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L2360: +.L2426: add x2, x2, 2 - b .L2359 -.L2404: + b .L2425 +.L2470: add x0, x23, :lo12:.LANCHOR2 mov w1, w20 mov w2, 0 mov x25, 0 - ldr x0, [x0,2536] + ldr x0, [x0,2520] bl FlashReadPages -.L2362: +.L2428: cmp w20, w25, uxth - bls .L2405 + bls .L2471 add x26, x23, :lo12:.LANCHOR2 mov x0, 56 mul x21, x25, x0 - ldr x1, [x26,2536] + ldr x1, [x26,2520] str x1, [x29,104] add x2, x1, x21 str x2, [x29,112] @@ -15748,41 +16133,41 @@ FtlGcScanTempBlk: ldr x2, [x29,112] ldr w7, [x1,x21] ldr x5, [x2,16] - cbnz w7, .L2363 + cbnz w7, .L2429 ldrh w0, [x5] cmp w0, w28 - bne .L2364 -.L2367: + bne .L2430 +.L2433: add x1, x22, :lo12:.LANCHOR2 adrp x20, .LANCHOR5 - ldrb w0, [x1,1228] - cbz w0, .L2401 + ldrb w0, [x1,1220] + cbz w0, .L2467 add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - str w0, [x20,1208] - b .L2357 -.L2364: + str w0, [x20,1192] + b .L2423 +.L2430: ldr w0, [x5,8] - ldr w1, [x26,2940] + ldr w1, [x26,2924] cmp w0, w1 - bls .L2402 - b .L2367 -.L2401: + bls .L2468 + b .L2433 +.L2467: ldrh w2, [x19] add x20, x20, :lo12:.LANCHOR5 - ldr x1, [x1,2728] + ldr x1, [x1,2712] strh w0, [x1,x2,lsl 1] ldrh w0, [x19] bl INSERT_FREE_LIST mov w0, -1 strh w0, [x19] - strh w0, [x20,608] - b .L2403 -.L2402: + strh w0, [x20,592] + b .L2469 +.L2468: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 ldrb w1, [x1,88] - cbz w1, .L2371 + cbz w1, .L2437 add x1, x29, 164 mov w2, w7 str x5, [x29,112] @@ -15792,140 +16177,140 @@ FtlGcScanTempBlk: ldr w1, [x29,164] ldr w0, [x5,12] cmp w1, w0 - bne .L2371 + bne .L2437 cmn w1, #1 - beq .L2371 + beq .L2437 str w0, [x29,172] mov w1, 1 - ldr x0, [x26,2640] + ldr x0, [x26,2624] ldr x7, [x29,104] str x0, [x29,176] - ldr x0, [x26,2664] + ldr x0, [x26,2648] mov w2, w7 str x0, [x29,184] add x0, x29, 168 bl FlashReadPages - ldr x0, [x26,2536] - ldrh w2, [x26,2366] + ldr x0, [x26,2520] + ldrh w2, [x26,2350] ldr x4, [x29,176] add x21, x0, x21 ldr x5, [x29,112] lsl w2, w2, 7 mov x0, 0 -.L2373: +.L2439: cmp w2, w0 - bls .L2371 + bls .L2437 lsl x1, x0, 2 ldr x6, [x21,8] add x0, x0, 1 ldr w6, [x6,x1] ldr w1, [x4,x1] cmp w6, w1 - beq .L2373 + beq .L2439 ldrh w1, [x19] - adrp x0, .LC142 + adrp x0, .LC146 ldr w2, [x29,172] - add x0, x0, :lo12:.LC142 + add x0, x0, :lo12:.LC146 bl printk add x0, x22, :lo12:.LANCHOR2 ldrh w1, [x19] - ldr x0, [x0,2728] + ldr x0, [x0,2712] strh wzr, [x0,x1,lsl 1] ldrh w0, [x19] bl INSERT_FREE_LIST - adrp x1, .LANCHOR5+608 + adrp x1, .LANCHOR5+592 mov w0, -1 strh w0, [x19] - strh w0, [x1,#:lo12:.LANCHOR5+608] - b .L2403 -.L2371: + strh w0, [x1,#:lo12:.LANCHOR5+592] + b .L2469 +.L2437: ldr w0, [x5,12] add x25, x25, 1 ldr w1, [x29,144] ldr w2, [x5,8] bl FtlGcUpdatePage - b .L2362 -.L2363: + b .L2428 +.L2429: ldr x0, [x29,120] ldrh w1, [x19] ldr w2, [x29,144] bl printk - ldr w0, [x26,2196] - cbnz w0, .L2376 - ldrb w0, [x26,1228] - cbz w0, .L2377 -.L2376: + ldr w0, [x26,2096] + cbnz w0, .L2442 + ldrb w0, [x26,1220] + cbz w0, .L2443 +.L2442: add x0, x22, :lo12:.LANCHOR2 ldrh w1, [x19] - ldr x0, [x0,2712] + ldr x0, [x0,2696] ldrh w0, [x0,x1,lsl 1] cmp w0, 159 - bls .L2378 -.L2377: + bls .L2444 +.L2443: add x0, x22, :lo12:.LANCHOR2 - ldr x0, [x0,2536] + ldr x0, [x0,2520] ldr w0, [x0,x21] cmn w0, #1 - bne .L2379 -.L2378: + bne .L2445 +.L2444: add x0, x22, :lo12:.LANCHOR2 - ldr x0, [x0,2536] + ldr x0, [x0,2520] add x21, x0, x21 ldr w0, [x21,4] str w0, [x29,140] -.L2379: +.L2445: add x0, x22, :lo12:.LANCHOR2 ldrh w1, [x19] - ldr x0, [x0,2728] + ldr x0, [x0,2712] strh wzr, [x0,x1,lsl 1] ldrh w0, [x19] bl INSERT_FREE_LIST mov w0, -1 strh w0, [x19] -.L2403: +.L2469: bl FtlGcPageVarInit mov w27, 0 - b .L2356 -.L2405: + b .L2422 +.L2471: ldr w0, [x29,136] add w24, w24, 1 add w3, w27, 1 cmp w24, w0 uxth w27, w3 - bcs .L2381 -.L2383: + bcs .L2447 +.L2449: add x0, x23, :lo12:.LANCHOR2 - ldrh w0, [x0,2360] + ldrh w0, [x0,2344] cmp w0, w27 - bhi .L2382 - b .L2386 -.L2381: + bhi .L2448 + b .L2452 +.L2447: ldr x0, [x29,128] add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3356] + ldrh w0, [x1,3452] cmp w0, w28 - beq .L2383 + beq .L2449 add w0, w0, w24 - strh w0, [x1,3356] + strh w0, [x1,3452] add x0, x23, :lo12:.LANCHOR2 - ldrh w0, [x0,2360] + ldrh w0, [x0,2344] cmp w0, w27 - bls .L2383 - b .L2384 -.L2386: + bls .L2449 + b .L2450 +.L2452: mov w6, 0 -.L2357: +.L2423: ldr x0, [x29,128] mov w1, -1 strh w27, [x19,2] mov w2, w6 add x0, x0, :lo12:.LANCHOR1 strb w6, [x19,6] - strh w1, [x0,3356] + strh w1, [x0,3452] mov x0, x19 mov w1, w27 bl ftl_sb_update_avl_pages -.L2384: +.L2450: ldr w0, [x29,140] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15945,46 +16330,46 @@ FtlGcRefreshOpenBlock: adrp x19, .LANCHOR2 uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,2488] + ldrh w0, [x19,2472] cmp w0, w20 - beq .L2408 - ldrh w0, [x19,2490] + beq .L2474 + ldrh w0, [x19,2474] cmp w0, w20 - beq .L2408 - ldrh w0, [x19,2492] + beq .L2474 + ldrh w0, [x19,2476] cmp w0, w20 - beq .L2408 - ldrh w0, [x19,2494] + beq .L2474 + ldrh w0, [x19,2478] cmp w0, w20 - beq .L2408 - adrp x0, .LC144 + beq .L2474 + adrp x0, .LC148 mov w1, w20 - add x0, x0, :lo12:.LC144 + add x0, x0, :lo12:.LC148 bl printk - ldrh w1, [x19,2488] + ldrh w1, [x19,2472] mov w0, 65535 cmp w1, w0 - bne .L2410 - strh w20, [x19,2488] - b .L2408 -.L2410: - ldrh w1, [x19,2490] + bne .L2476 + strh w20, [x19,2472] + b .L2474 +.L2476: + ldrh w1, [x19,2474] cmp w1, w0 - bne .L2411 - strh w20, [x19,2490] - b .L2408 -.L2411: - ldrh w1, [x19,2492] + bne .L2477 + strh w20, [x19,2474] + b .L2474 +.L2477: + ldrh w1, [x19,2476] cmp w1, w0 - bne .L2412 - strh w20, [x19,2492] - b .L2408 -.L2412: - ldrh w1, [x19,2494] + bne .L2478 + strh w20, [x19,2476] + b .L2474 +.L2478: + ldrh w1, [x19,2478] cmp w1, w0 - bne .L2408 - strh w20, [x19,2494] -.L2408: + bne .L2474 + strh w20, [x19,2478] +.L2474: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -16002,49 +16387,49 @@ FtlGcRefreshBlock: add x19, x19, :lo12:.LANCHOR2 str x21, [sp,32] mov w21, 0 - ldrh w0, [x19,2488] + ldrh w0, [x19,2472] cmp w0, w20 - beq .L2414 - ldrh w0, [x19,2490] + beq .L2480 + ldrh w0, [x19,2474] cmp w0, w20 - beq .L2414 - ldrh w0, [x19,2492] + beq .L2480 + ldrh w0, [x19,2476] cmp w0, w20 - beq .L2414 - ldrh w0, [x19,2494] + beq .L2480 + ldrh w0, [x19,2478] cmp w0, w20 - beq .L2414 - adrp x0, .LC144 + beq .L2480 + adrp x0, .LC148 mov w1, w20 - add x0, x0, :lo12:.LC144 + add x0, x0, :lo12:.LC148 bl printk - ldrh w1, [x19,2488] + ldrh w1, [x19,2472] mov w0, 65535 cmp w1, w0 - bne .L2415 - strh w20, [x19,2488] - b .L2414 -.L2415: - ldrh w1, [x19,2490] + bne .L2481 + strh w20, [x19,2472] + b .L2480 +.L2481: + ldrh w1, [x19,2474] cmp w1, w0 - bne .L2416 - strh w20, [x19,2490] - b .L2414 -.L2416: - ldrh w1, [x19,2492] + bne .L2482 + strh w20, [x19,2474] + b .L2480 +.L2482: + ldrh w1, [x19,2476] cmp w1, w0 - bne .L2417 - strh w20, [x19,2492] - b .L2414 -.L2417: - ldrh w1, [x19,2494] + bne .L2483 + strh w20, [x19,2476] + b .L2480 +.L2483: + ldrh w1, [x19,2478] cmp w1, w0 - bne .L2422 - strh w20, [x19,2494] - b .L2414 -.L2422: + bne .L2488 + strh w20, [x19,2478] + b .L2480 +.L2488: mov w21, -1 -.L2414: +.L2480: mov w0, w21 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -16066,49 +16451,49 @@ FtlGcMarkBadPhyBlk: str x23, [sp,48] bl P2V_block_in_plane uxth w21, w0 - ldrh w1, [x22,2502] - adrp x0, .LC145 + ldrh w1, [x22,2486] + adrp x0, .LC149 mov w2, w20 - add x0, x0, :lo12:.LC145 + add x0, x0, :lo12:.LC149 bl printk mov w0, w21 bl FtlGcRefreshBlock - ldr w0, [x22,2196] - cbz w0, .L2424 + ldr w0, [x22,2096] + cbz w0, .L2490 ubfiz x0, x21, 1, 16 - ldr x2, [x22,2712] + ldr x2, [x22,2696] ldrh w1, [x2,x0] cmp w1, 39 - bls .L2424 + bls .L2490 sub w1, w1, #40 strh w1, [x2,x0] -.L2424: +.L2490: add x0, x19, :lo12:.LANCHOR2 adrp x1, .LANCHOR5 add x1, x1, :lo12:.LANCHOR5 - add x1, x1, 1224 - ldrh w3, [x0,2502] + add x1, x1, 1208 + ldrh w3, [x0,2486] mov x0, 0 -.L2425: +.L2491: cmp w3, w0, uxth - bls .L2431 + bls .L2497 add x0, x0, 1 add x2, x1, x0, lsl 1 ldrh w2, [x2,-2] cmp w2, w20 - bne .L2425 - b .L2426 -.L2431: + bne .L2491 + b .L2492 +.L2497: cmp w3, 15 - bhi .L2426 + bhi .L2492 adrp x1, .LANCHOR5 add x19, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR5 add w0, w3, 1 - add x1, x1, 1224 - strh w0, [x19,2502] + add x1, x1, 1208 + strh w0, [x19,2486] strh w20, [x1,w3,sxtw 1] -.L2426: +.L2492: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -16125,29 +16510,29 @@ FtlGcReFreshBadBlk: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,2502] - cbz w1, .L2433 - ldrh w3, [x0,2488] + ldrh w1, [x0,2486] + cbz w1, .L2499 + ldrh w3, [x0,2472] mov w2, 65535 cmp w3, w2 - bne .L2433 - ldrh w2, [x0,2506] + bne .L2499 + ldrh w2, [x0,2490] cmp w2, w1 - bcc .L2434 - strh wzr, [x0,2506] -.L2434: + bcc .L2500 + strh wzr, [x0,2490] +.L2500: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - add x0, x0, 1224 - ldrh w1, [x19,2506] + add x0, x0, 1208 + ldrh w1, [x19,2490] ldrh w0, [x0,w1,sxtw 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,2506] + ldrh w0, [x19,2490] add w0, w0, 1 - strh w0, [x19,2506] -.L2433: + strh w0, [x19,2490] +.L2499: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -16165,65 +16550,65 @@ FtlGcFreeBadSuperBlk: add x19, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] uxth w23, w0 - ldrh w0, [x19,2502] + ldrh w0, [x19,2486] stp x21, x22, [sp,32] stp x25, x26, [sp,64] mov w21, 0 - cbz w0, .L2440 + cbz w0, .L2506 adrp x24, .LANCHOR5 - adrp x22, .LC146 - add x22, x22, :lo12:.LC146 + adrp x22, .LC150 + add x22, x22, :lo12:.LC150 add x25, x24, :lo12:.LANCHOR5 -.L2448: - ldrh w0, [x19,2292] +.L2514: + ldrh w0, [x19,2276] cmp w0, w21 - bls .L2449 - add x0, x19, 2320 + bls .L2515 + add x0, x19, 2304 mov w1, w23 mov w20, 0 add x27, x24, :lo12:.LANCHOR5 ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w26, w0 -.L2441: - ldrh w0, [x19,2502] +.L2507: + ldrh w0, [x19,2486] cmp w0, w20 - bls .L2450 - add x0, x27, 1224 + bls .L2516 + add x0, x27, 1208 ldrh w0, [x0,w20,sxtw 1] cmp w0, w26 - bne .L2442 + bne .L2508 mov w1, w26 mov x0, x22 bl printk mov w0, w26 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w2, [x19,2502] + ldrh w2, [x19,2486] mov w3, w20 -.L2443: +.L2509: cmp w3, w2 - bcs .L2451 - add x4, x25, 1224 + bcs .L2517 + add x4, x25, 1208 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L2443 -.L2451: + b .L2509 +.L2517: sub w2, w2, #1 - strh w2, [x19,2502] -.L2442: + strh w2, [x19,2486] +.L2508: add w20, w20, 1 uxth w20, w20 - b .L2441 -.L2450: + b .L2507 +.L2516: add w21, w21, 1 uxth w21, w21 - b .L2448 -.L2449: + b .L2514 +.L2515: bl FtlGcReFreshBadBlk -.L2440: +.L2506: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -16238,54 +16623,54 @@ FtlGcFreeBadSuperBlk: .type update_vpc_list, %function update_vpc_list: stp x29, x30, [sp, -32]! - adrp x1, .LANCHOR2+2728 + adrp x1, .LANCHOR2+2712 add x29, sp, 0 stp x19, x20, [sp,16] uxth w19, w0 - ldr x1, [x1,#:lo12:.LANCHOR2+2728] + ldr x1, [x1,#:lo12:.LANCHOR2+2712] ubfiz x0, x19, 1, 16 ldrh w1, [x1,x0] - cbnz w1, .L2453 + cbnz w1, .L2519 adrp x0, .LANCHOR5 adrp x20, .LANCHOR4 add x0, x0, :lo12:.LANCHOR5 - ldrh w2, [x0,608] + ldrh w2, [x0,592] cmp w2, w19 - bne .L2454 + bne .L2520 mov w1, -1 - strh w1, [x0,608] - b .L2455 -.L2454: + strh w1, [x0,592] + b .L2521 +.L2520: add x2, x20, :lo12:.LANCHOR4 mov w0, w1 - ldrh w3, [x2,800] + ldrh w3, [x2,784] cmp w3, w19 - beq .L2456 - ldrh w3, [x2,848] + beq .L2522 + ldrh w3, [x2,832] cmp w3, w19 - beq .L2456 - ldrh w2, [x2,896] + beq .L2522 + ldrh w2, [x2,880] cmp w2, w19 - beq .L2456 -.L2455: + beq .L2522 +.L2521: add x20, x20, :lo12:.LANCHOR4 mov w1, w19 - add x0, x20, 760 + add x0, x20, 744 bl List_remove_node - ldrh w0, [x20,776] + ldrh w0, [x20,760] sub w0, w0, #1 - strh w0, [x20,776] + strh w0, [x20,760] mov w0, w19 bl free_data_superblock mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2456 -.L2453: + b .L2522 +.L2519: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2456: +.L2522: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -16302,69 +16687,69 @@ decrement_vpc_count: stp x21, x22, [sp,32] str x23, [sp,48] cmp w19, w0 - beq .L2461 + beq .L2527 adrp x20, .LANCHOR2 ubfiz x22, x19, 1, 16 add x20, x20, :lo12:.LANCHOR2 - ldr x0, [x20,2728] + ldr x0, [x20,2712] ldrh w2, [x0,x22] - cbnz w2, .L2462 - adrp x0, .LC147 + cbnz w2, .L2528 + adrp x0, .LC151 mov w1, w19 - add x0, x0, :lo12:.LC147 + add x0, x0, :lo12:.LC151 adrp x21, .LANCHOR4 add x21, x21, :lo12:.LANCHOR4 bl printk - add x23, x21, 784 - ldr x0, [x20,2728] + add x23, x21, 768 + ldr x0, [x20,2712] mov w1, 32 strh w1, [x0,x22] mov x0, x23 mov w1, w19 bl test_node_in_list - cbz w0, .L2463 + cbz w0, .L2529 mov w1, w19 mov x0, x23 bl List_remove_node - ldrh w0, [x21,792] + ldrh w0, [x21,776] sub w0, w0, #1 - strh w0, [x21,792] + strh w0, [x21,776] mov w0, w19 bl INSERT_DATA_LIST - ldr x2, [x20,2728] - adrp x0, .LC148 - add x0, x0, :lo12:.LC148 + ldr x2, [x20,2712] + adrp x0, .LC152 + add x0, x0, :lo12:.LC152 mov w1, w19 ldrh w2, [x2,x22] bl printk -.L2463: +.L2529: mov w0, w19 bl FtlGcRefreshBlock - b .L2470 -.L2462: + b .L2536 +.L2528: sub w2, w2, #1 strh w2, [x0,x22] -.L2461: +.L2527: adrp x20, .LANCHOR5 mov w0, 65535 add x20, x20, :lo12:.LANCHOR5 - ldrh w1, [x20,1200] + ldrh w1, [x20,1184] cmp w1, w0 - bne .L2465 - strh w19, [x20,1200] -.L2470: + bne .L2531 + strh w19, [x20,1184] +.L2536: mov w0, 0 - b .L2464 -.L2465: + b .L2530 +.L2531: cmp w1, w19 mov w0, 0 - beq .L2464 + beq .L2530 mov w0, w1 bl update_vpc_list cmp w0, wzr cset w0, ne - strh w19, [x20,1200] -.L2464: + strh w19, [x20,1184] +.L2530: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -16386,82 +16771,82 @@ FtlRecoverySuperblock: mov x19, x0 ldrh w0, [x0] cmp w0, w2 - beq .L2632 + beq .L2698 ldrh w0, [x19,2] adrp x20, .LANCHOR2 str w0, [x29,204] add x0, x20, :lo12:.LANCHOR2 ldrb w28, [x19,6] ldr w1, [x29,204] - ldrh w0, [x0,2360] + ldrh w0, [x0,2344] cmp w0, w1 - bne .L2474 + bne .L2540 strh wzr, [x19,4] - b .L2638 -.L2474: + b .L2704 +.L2540: ldrh w0, [x19,16] mov w1, 0 -.L2475: +.L2541: cmp w0, w2 - bne .L2641 + bne .L2707 add w1, w1, 1 uxth w1, w1 add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] - b .L2475 -.L2641: + b .L2541 +.L2707: ldrb w1, [x19,8] cmp w1, 1 - bne .L2477 + bne .L2543 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2478 + beq .L2544 add x0, x20, :lo12:.LANCHOR2 mov w23, w21 - ldrb w0, [x0,1228] - cbnz w0, .L2552 + ldrb w0, [x0,1220] + cbnz w0, .L2618 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 136 + add x0, x0, 144 ldrh w23, [x0,w21,sxtw 1] - b .L2552 -.L2477: + b .L2618 +.L2543: mov w1, 0 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2478 + beq .L2544 mov w23, w0 -.L2552: +.L2618: add x0, x20, :lo12:.LANCHOR2 mov x2, x19 mov w25, 0 mov w8, 65535 mov w9, 56 mov w10, 4 - ldrh w4, [x0,2292] - ldrh w7, [x0,2372] + ldrh w4, [x0,2276] + ldrh w7, [x0,2356] add x4, x19, x4, lsl 1 - b .L2480 -.L2478: + b .L2546 +.L2544: strh wzr, [x19,2] -.L2638: +.L2704: strb wzr, [x19,6] - b .L2632 -.L2482: + b .L2698 +.L2548: ldrh w1, [x2,16] cmp w1, w8 - beq .L2481 + beq .L2547 add x5, x20, :lo12:.LANCHOR2 orr w1, w23, w1, lsl 10 umull x0, w25, w9 add w3, w25, 1 - ldr x6, [x5,2536] + ldr x6, [x5,2520] add x6, x6, x0 str w1, [x6,4] - ldr x1, [x5,2536] - ldr x5, [x5,2672] + ldr x1, [x5,2520] + ldr x5, [x5,2656] add x0, x1, x0 mul w1, w25, w7 uxth w25, w3 @@ -16469,51 +16854,51 @@ FtlRecoverySuperblock: sdiv w1, w1, w10 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2481: +.L2547: add x2, x2, 2 -.L2480: +.L2546: cmp x2, x4 - bne .L2482 + bne .L2548 ldrb w0, [x19,8] str wzr, [x29,200] cmp w0, 1 - bne .L2483 + bne .L2549 add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] + ldrb w0, [x0,1220] cmp w0, wzr cset w0, ne str w0, [x29,200] -.L2483: +.L2549: add x22, x20, :lo12:.LANCHOR2 ldr w2, [x29,200] mov w1, w25 mov x26, 0 mov w24, 65535 adrp x27, .LANCHOR5 - ldr x0, [x22,2536] + ldr x0, [x22,2520] bl FlashReadPages - ldr w0, [x22,2416] - adrp x22, .LC149 + ldr w0, [x22,2400] + adrp x22, .LC153 str w0, [x29,192] - add x22, x22, :lo12:.LC149 + add x22, x22, :lo12:.LC153 uxth w0, w23 str w0, [x29,184] -.L2484: +.L2550: uxth w2, w26 cmp w2, w25 - bcs .L2491 + bcs .L2557 add x6, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x26, x0 - ldr x4, [x6,2536] + ldr x4, [x6,2520] add x1, x4, x0 ldr w0, [x4,x0] - cbnz w0, .L2485 + cbnz w0, .L2551 ldr x7, [x1,16] ldr w4, [x7,4] cmn w4, #1 - beq .L2486 - ldr w1, [x6,2416] + beq .L2552 + ldr w1, [x6,2400] mov w0, w4 str x7, [x29,152] str x2, [x29,160] @@ -16524,136 +16909,136 @@ FtlRecoverySuperblock: ldr x4, [x29,168] ldr x2, [x29,160] ldr x7, [x29,152] - cbz w0, .L2486 + cbz w0, .L2552 add w4, w4, 1 - str w4, [x6,2416] -.L2486: + str w4, [x6,2400] +.L2552: ldr w0, [x7] cmn w0, #1 - bne .L2487 -.L2491: + bne .L2553 +.L2557: cmp w2, w25 - bne .L2633 + bne .L2699 add x0, x20, :lo12:.LANCHOR2 add w21, w21, 1 uxth w21, w21 - ldr x0, [x0,2536] + ldr x0, [x0,2520] ldr w0, [x0,4] - b .L2634 -.L2485: + b .L2700 +.L2551: ldr w1, [x1,4] mov x0, x22 bl printk ldr w24, [x29,184] add x0, x27, :lo12:.LANCHOR5 ldrh w1, [x19] - strh w1, [x0,1258] -.L2487: + strh w1, [x0,1242] +.L2553: add x26, x26, 1 - b .L2484 -.L2633: + b .L2550 +.L2699: add x0, x20, :lo12:.LANCHOR2 mov w1, 56 uxth w21, w21 umull x2, w2, w1 - ldr x0, [x0,2536] + ldr x0, [x0,2520] add x2, x0, x2 ldr w0, [x2,4] -.L2634: +.L2700: lsr x0, x0, 10 bl P2V_plane uxth w26, w0 ldrb w1, [x19,8] cmp w1, 1 - bne .L2493 + bne .L2559 add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbnz w0, .L2493 + ldrb w0, [x0,1220] + cbnz w0, .L2559 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 136 + add x0, x0, 144 ldrh w21, [x0,w21,sxtw 1] -.L2493: +.L2559: add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,2360] + ldrh w0, [x0,2344] cmp w0, w21 - bne .L2494 + bne .L2560 strh w21, [x19,2] strb wzr, [x19,6] strh wzr, [x19,4] -.L2494: +.L2560: uxth w0, w28 str w0, [x29,160] ldr w0, [x29,204] cmp w21, w0 - bne .L2495 + bne .L2561 ldr w0, [x29,160] cmp w26, w0 - beq .L2639 -.L2495: + beq .L2705 +.L2561: ldr w0, [x29,192] adrp x25, .LANCHOR5 sub w22, w0, #1 mov w0, 65535 cmp w24, w0 - bne .L2496 - cbnz w1, .L2497 -.L2496: + bne .L2562 + cbnz w1, .L2563 +.L2562: add x0, x25, :lo12:.LANCHOR5 uxth w6, w23 - ldr w1, [x0,1212] + ldr w1, [x0,1196] cmn w1, #1 - bne .L2498 - str w22, [x0,1212] -.L2498: + bne .L2564 + str w22, [x0,1196] +.L2564: add x0, x25, :lo12:.LANCHOR5 ldr w24, [x29,204] - ldr w3, [x0,1212] + ldr w3, [x0,1196] ldr w0, [x29,204] add w0, w0, 7 cmp w0, w23, uxth - bge .L2499 + bge .L2565 sub w24, w6, #7 uxth w24, w24 -.L2499: +.L2565: mov w28, -1 adrp x5, .LANCHOR0 mov w27, w28 mov w4, 65535 mov w7, 56 add x5, x5, :lo12:.LANCHOR0 -.L2500: +.L2566: cmp w24, w6 - bhi .L2513 + bhi .L2579 add x0, x20, :lo12:.LANCHOR2 mov w23, 0 - ldrh w2, [x0,2292] + ldrh w2, [x0,2276] mov x0, x19 add x2, x19, x2, lsl 1 -.L2514: +.L2580: cmp x0, x2 - beq .L2642 + beq .L2708 ldrh w1, [x0,16] cmp w1, w4 - beq .L2501 + beq .L2567 add x9, x20, :lo12:.LANCHOR2 orr w1, w24, w1, lsl 10 umull x8, w23, w7 add w23, w23, 1 - ldr x9, [x9,2536] + ldr x9, [x9,2520] uxth w23, w23 add x8, x9, x8 str w1, [x8,4] -.L2501: +.L2567: add x0, x0, 2 - b .L2514 -.L2642: + b .L2580 +.L2708: add x8, x20, :lo12:.LANCHOR2 ldr w2, [x29,200] mov w1, w23 str x5, [x29,144] str x7, [x29,152] - ldr x0, [x8,2536] + ldr x0, [x8,2520] str x4, [x29,168] str x3, [x29,176] str x6, [x29,184] @@ -16664,161 +17049,161 @@ FtlRecoverySuperblock: ldr x6, [x29,184] sxtw x10, w24 ldr x3, [x29,176] - ldr x0, [x8,2536] - ldrb w9, [x8,1228] + ldr x0, [x8,2520] + ldrb w9, [x8,1220] ldr x4, [x29,168] add x0, x0, 16 ldr x7, [x29,152] ldr x5, [x29,144] -.L2503: +.L2569: cmp w1, w23 - beq .L2643 + beq .L2709 ldr w2, [x0,-16] - cbnz w2, .L2504 + cbnz w2, .L2570 ldr x2, [x0] ldrh w8, [x2] cmp w8, w4 - beq .L2505 + beq .L2571 ldr w8, [x2,4] cmn w8, #1 - beq .L2505 + beq .L2571 add x2, x25, :lo12:.LANCHOR5 cmn w28, #1 - ldr w27, [x2,1212] - str w8, [x2,1212] - bne .L2505 - add x2, x5, 1160 + ldr w27, [x2,1196] + str w8, [x2,1196] + bne .L2571 + add x2, x5, 1168 ldrh w2, [x2,x10,lsl 1] cmp w2, w4 - bne .L2506 - cbz w9, .L2505 -.L2506: + bne .L2572 + cbz w9, .L2571 +.L2572: cmp w27, w22 csinv w28, w27, wzr, ne - b .L2505 -.L2504: + b .L2571 +.L2570: add x0, x25, :lo12:.LANCHOR5 ldrh w1, [x19] - strh w1, [x0,1258] + strh w1, [x0,1242] ldrb w1, [x19,8] - cbnz w1, .L2497 + cbnz w1, .L2563 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 1160 + add x1, x1, 1168 ldrh w2, [x1,w24,sxtw 1] mov w1, 65535 cmp w2, w1 - bne .L2508 + bne .L2574 cmn w28, #1 - beq .L2509 - str w28, [x0,1212] - b .L2497 -.L2509: + beq .L2575 + str w28, [x0,1196] + b .L2563 +.L2575: cmp w3, w22 - beq .L2510 - str w3, [x0,1212] - b .L2497 -.L2510: - ldr w1, [x0,1212] - b .L2640 -.L2508: + beq .L2576 + str w3, [x0,1196] + b .L2563 +.L2576: + ldr w1, [x0,1196] + b .L2706 +.L2574: cmp w27, w22 - beq .L2511 + beq .L2577 cmn w27, #1 - beq .L2497 - str w27, [x0,1212] - b .L2497 -.L2511: - ldr w1, [x0,1212] + beq .L2563 + str w27, [x0,1196] + b .L2563 +.L2577: + ldr w1, [x0,1196] cmp w1, w22 - beq .L2497 -.L2640: + beq .L2563 +.L2706: sub w1, w1, #1 - b .L2635 -.L2505: + b .L2701 +.L2571: add w1, w1, 1 add x0, x0, 56 uxth w1, w1 - b .L2503 -.L2643: + b .L2569 +.L2709: add w24, w24, 1 uxth w24, w24 - b .L2500 -.L2513: + b .L2566 +.L2579: add x0, x25, :lo12:.LANCHOR5 mov w1, -1 -.L2635: - str w1, [x0,1212] -.L2497: +.L2701: + str w1, [x0,1196] +.L2563: add x0, x25, :lo12:.LANCHOR5 mov w1, 1 ldr w23, [x29,204] - strh w1, [x0,1260] - adrp x0, .LC151 - add x0, x0, :lo12:.LC151 + strh w1, [x0,1244] + adrp x0, .LC155 + add x0, x0, :lo12:.LC155 str x0, [x29,136] - adrp x0, .LC150 - add x0, x0, :lo12:.LC150 + adrp x0, .LC154 + add x0, x0, :lo12:.LC154 str x0, [x29,128] adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 str x0, [x29,168] -.L2515: +.L2581: add x0, x20, :lo12:.LANCHOR2 mov x1, x19 str wzr, [x29,192] mov w7, 65535 mov w8, 56 - ldrh w3, [x0,2292] - ldrb w6, [x0,1228] + ldrh w3, [x0,2276] + ldrb w6, [x0,1220] add x3, x19, x3, lsl 1 -.L2516: +.L2582: cmp x1, x3 - beq .L2644 + beq .L2710 ldrh w2, [x1,16] cmp w2, w7 - beq .L2517 + beq .L2583 ldr w0, [x29,192] add x5, x20, :lo12:.LANCHOR2 orr w2, w23, w2, lsl 10 - ldr x4, [x5,2536] + ldr x4, [x5,2520] umull x0, w0, w8 add x4, x4, x0 str w2, [x4,4] ldrb w2, [x19,8] cmp w2, 1 - bne .L2518 - cbz w6, .L2518 - ldr x2, [x5,2536] + bne .L2584 + cbz w6, .L2584 + ldr x2, [x5,2520] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2518: +.L2584: ldr w0, [x29,192] add w0, w0, 1 uxth w0, w0 str w0, [x29,192] -.L2517: +.L2583: add x1, x1, 2 - b .L2516 -.L2644: + b .L2582 +.L2710: add x0, x20, :lo12:.LANCHOR2 ldr w1, [x29,192] ldr w2, [x29,200] - ldr x0, [x0,2536] + ldr x0, [x0,2520] bl FlashReadPages str xzr, [x29,176] -.L2520: +.L2586: ldrh w0, [x29,176] ldr w1, [x29,192] cmp w1, w0, uxth - bls .L2645 + bls .L2711 ldr x0, [x29,176] mov x24, 56 mul x24, x0, x24 add x0, x20, :lo12:.LANCHOR2 - ldr x28, [x0,2536] + ldr x28, [x0,2520] add x27, x28, x24 ldr w1, [x27,4] str w1, [x29,220] @@ -16829,41 +17214,41 @@ FtlRecoverySuperblock: ldr w1, [x29,204] cmp w23, w1 ldr x1, [x29,184] - bcc .L2521 + bcc .L2587 ldr w2, [x29,160] cmp w0, w2 - bcs .L2556 + bcs .L2622 ldr w2, [x29,204] cmp w23, w2 - beq .L2521 -.L2556: + beq .L2587 +.L2622: cmp w0, w26 - bne .L2557 + bne .L2623 cmp w23, w21 - beq .L2523 -.L2557: + beq .L2589 +.L2623: ldr w0, [x28,x24] cmn w0, #1 - beq .L2525 + beq .L2591 ldr x28, [x27,16] mov w0, 61589 ldrh w1, [x28] cmp w1, w0 - beq .L2526 + beq .L2592 ldrh w0, [x19] - b .L2636 -.L2526: + b .L2702 +.L2592: ldr w22, [x28,4] cmn w22, #1 - beq .L2527 + beq .L2593 add x27, x20, :lo12:.LANCHOR2 mov w0, w22 - ldr w1, [x27,2416] + ldr w1, [x27,2400] bl ftl_cmp_data_ver - cbz w0, .L2527 + cbz w0, .L2593 add w0, w22, 1 - str w0, [x27,2416] -.L2527: + str w0, [x27,2400] +.L2593: ldr w27, [x28,8] add x1, x29, 216 ldr w0, [x28,12] @@ -16874,264 +17259,264 @@ FtlRecoverySuperblock: ldr w28, [x29,212] add x0, x25, :lo12:.LANCHOR5 str x0, [x29,144] - ldr w1, [x0,1212] + ldr w1, [x0,1196] cmn w1, #1 - beq .L2528 + beq .L2594 mov w0, w22 bl ftl_cmp_data_ver - cbz w0, .L2528 + cbz w0, .L2594 cmn w28, #1 - beq .L2529 + beq .L2595 add x3, x20, :lo12:.LANCHOR2 mov w2, 0 str x3, [x29,120] - ldr x0, [x3,2536] + ldr x0, [x3,2520] add x0, x0, x24 str w28, [x0,4] ldr x1, [x0,16] - ldr x0, [x3,2536] + ldr x0, [x3,2520] str x1, [x29,184] mov w1, 1 add x0, x0, x24 bl FlashReadPages ldr x3, [x29,120] ldr x0, [x29,184] - ldr x2, [x3,2536] + ldr x2, [x3,2520] ldr w0, [x0,4] str w0, [x29,152] add x4, x2, x24 ldr w0, [x2,x24] cmn w0, #1 - bne .L2530 - b .L2531 -.L2529: + bne .L2596 + b .L2597 +.L2595: ldr w0, [x29,220] ldr w1, [x29,216] cmp w1, w0 - bne .L2521 + bne .L2587 mov w0, w27 add x1, x29, 212 mov w2, 1 bl log2phys - b .L2521 -.L2530: + b .L2587 +.L2596: ldr x0, [x29,184] ldr w28, [x0,8] cmp w28, w27 - bne .L2531 + bne .L2597 ldr x0, [x29,144] ldr w1, [x29,152] str x2, [x29,104] - ldr w0, [x0,1212] + ldr w0, [x0,1196] str x3, [x29,112] str x4, [x29,120] bl ftl_cmp_data_ver ldr x4, [x29,120] ldr x3, [x29,112] ldr x2, [x29,104] - cbz w0, .L2531 + cbz w0, .L2597 ldr w0, [x29,216] ldr w1, [x29,220] cmp w0, w1 - beq .L2536 + beq .L2602 ldr w1, [x29,212] cmp w0, w1 - beq .L2531 + beq .L2597 cmn w0, #1 - beq .L2534 + beq .L2600 str w0, [x4,4] mov w2, 0 ldr x1, [x4,16] - ldr x0, [x3,2536] + ldr x0, [x3,2520] str x1, [x29,184] mov w1, 1 add x0, x0, x24 bl FlashReadPages - b .L2535 -.L2534: + b .L2601 +.L2600: str w0, [x2,x24] -.L2535: +.L2601: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x0, [x0,2536] + ldr x0, [x0,2520] ldr w0, [x0,x24] cmn w0, #1 - beq .L2536 + beq .L2602 ldr x0, [x29,184] ldr w24, [x0,4] add x0, x25, :lo12:.LANCHOR5 mov w1, w24 - ldr w0, [x0,1212] + ldr w0, [x0,1196] bl ftl_cmp_data_ver - cbz w0, .L2536 + cbz w0, .L2602 ldr w0, [x29,152] mov w1, w24 bl ftl_cmp_data_ver - cbz w0, .L2531 -.L2536: + cbz w0, .L2597 +.L2602: ldr w1, [x29,212] mov w0, w28 bl FtlReUsePrevPpa -.L2531: +.L2597: mov w0, -1 str w0, [x29,212] - b .L2538 -.L2528: + b .L2604 +.L2594: ldr w0, [x29,220] ldr w1, [x29,216] cmp w1, w0 - beq .L2538 + beq .L2604 cmn w28, #1 - beq .L2540 + beq .L2606 add x0, x20, :lo12:.LANCHOR2 ubfx x28, x28, 10, 21 - ldr w0, [x0,2308] + ldr w0, [x0,2292] cmp w28, w0 - bcs .L2521 -.L2540: + bcs .L2587 +.L2606: mov w0, w27 add x1, x29, 220 mov w2, 1 bl log2phys ldr w28, [x29,216] cmn w28, #1 - beq .L2538 + beq .L2604 ldr w0, [x29,212] cmp w28, w0 - beq .L2538 + beq .L2604 lsr x0, x28, 10 bl P2V_block_in_plane uxth w0, w0 ldr x1, [x29,168] - ldrh w1, [x1,800] + ldrh w1, [x1,784] cmp w1, w0 - beq .L2542 + beq .L2608 ldr x1, [x29,168] - ldrh w1, [x1,848] + ldrh w1, [x1,832] cmp w1, w0 - beq .L2542 + beq .L2608 ldr x1, [x29,168] - ldrh w1, [x1,896] + ldrh w1, [x1,880] cmp w1, w0 - bne .L2538 -.L2542: + bne .L2604 +.L2608: adrp x0, .LANCHOR2 mov w1, 1 add x24, x0, :lo12:.LANCHOR2 mov w2, 0 - ldr x0, [x24,2536] + ldr x0, [x24,2520] str w28, [x0,4] ldr x3, [x0,16] - ldr x0, [x24,2536] + ldr x0, [x24,2520] str x3, [x29,184] bl FlashReadPages - ldr x0, [x24,2536] + ldr x0, [x24,2520] ldr x3, [x29,184] ldr w0, [x0] ldr w1, [x3,4] cmn w0, #1 - beq .L2538 + beq .L2604 mov w0, w22 bl ftl_cmp_data_ver - cbnz w0, .L2538 + cbnz w0, .L2604 mov w0, w27 add x1, x29, 216 mov w2, 1 bl log2phys -.L2538: +.L2604: ldr w0, [x29,212] cmn w0, #1 - beq .L2521 + beq .L2587 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 add x2, x20, :lo12:.LANCHOR2 ubfiz x3, x1, 1, 16 - ldr x2, [x2,2728] + ldr x2, [x2,2712] ldrh w2, [x2,x3] - cbz w2, .L2543 -.L2636: + cbz w2, .L2609 +.L2702: bl decrement_vpc_count - b .L2521 -.L2543: + b .L2587 +.L2609: ldr x0, [x29,128] bl printk - b .L2521 -.L2525: + b .L2587 +.L2591: add x24, x25, :lo12:.LANCHOR5 ldrh w0, [x19] mov w2, w22 - strh w0, [x24,1258] + strh w0, [x24,1242] ldr x0, [x29,136] bl printk - ldr w0, [x24,1264] + ldr w0, [x24,1248] cmp w0, 31 - bhi .L2544 - add x1, x24, 1272 + bhi .L2610 + add x1, x24, 1256 ldr w2, [x29,220] str w2, [x1,w0,uxtw 2] add w0, w0, 1 - str w0, [x24,1264] -.L2544: + str w0, [x24,1248] +.L2610: ldrh w0, [x19] bl decrement_vpc_count add x0, x25, :lo12:.LANCHOR5 - ldr w1, [x0,1212] + ldr w1, [x0,1196] cmn w1, #1 - beq .L2637 + beq .L2703 cmp w1, w22 - bls .L2521 -.L2637: - str w22, [x0,1212] -.L2521: + bls .L2587 +.L2703: + str w22, [x0,1196] +.L2587: ldr x0, [x29,176] add x0, x0, 1 str x0, [x29,176] - b .L2520 -.L2645: + b .L2586 +.L2711: ldrb w0, [x19,8] add w23, w23, 1 cmp w0, 1 uxth w23, w23 - bne .L2547 + bne .L2613 add x0, x20, :lo12:.LANCHOR2 - ldrb w1, [x0,1228] - cbz w1, .L2547 + ldrb w1, [x0,1220] + cbz w1, .L2613 cmp w21, w23 - bne .L2547 - ldrh w0, [x0,2362] + bne .L2613 + ldrh w0, [x0,2346] cmp w0, w23 - beq .L2523 -.L2547: + beq .L2589 +.L2613: add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,2360] + ldrh w1, [x0,2344] cmp w23, w1 - bne .L2515 - ldrh w2, [x0,2292] + bne .L2581 + ldrh w2, [x0,2276] mov w3, 65535 strh w23, [x19,2] mov x0, 0 strh wzr, [x19,4] -.L2549: +.L2615: uxth w1, w0 cmp w1, w2 - bcs .L2632 + bcs .L2698 add x0, x0, 1 add x4, x19, x0, lsl 1 ldrh w4, [x4,14] cmp w4, w3 - beq .L2549 + beq .L2615 strb w1, [x19,6] - b .L2632 -.L2523: + b .L2698 +.L2589: strb w26, [x19,6] strh w21, [x19,2] -.L2639: +.L2705: mov x0, x19 mov w1, w21 mov w2, w26 bl ftl_sb_update_avl_pages -.L2632: +.L2698: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17150,11 +17535,11 @@ FtlSlcSuperblockCheck: stp x19, x20, [sp,16] stp x21, x22, [sp,32] ldrh w1, [x0,4] - cbz w1, .L2646 + cbz w1, .L2712 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2646 + beq .L2712 mov x19, x0 ldrb w0, [x0,6] adrp x21, .LANCHOR0 @@ -17162,74 +17547,74 @@ FtlSlcSuperblockCheck: add x0, x0, 8 add x21, x21, :lo12:.LANCHOR0 ldrh w0, [x19,x0,lsl 1] -.L2650: +.L2716: cmp w0, w20 - bne .L2657 -.L2652: + bne .L2723 +.L2718: ldrb w0, [x19,6] add x1, x22, :lo12:.LANCHOR2 add w0, w0, 1 - ldrh w1, [x1,2292] + ldrh w1, [x1,2276] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2651 + bne .L2717 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2651: +.L2717: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2650 -.L2657: + b .L2716 +.L2723: ldrb w1, [x19,8] cmp w1, 1 - bne .L2653 + bne .L2719 add x0, x22, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbnz w0, .L2653 + ldrb w0, [x0,1220] + cbnz w0, .L2719 ldrh w2, [x19,2] - add x0, x21, 1160 + add x0, x21, 1168 ldrh w0, [x0,w2,sxtw 1] cmp w0, w20 - bne .L2653 + bne .L2719 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count ldrh w1, [x19,4] - cbnz w1, .L2652 + cbnz w1, .L2718 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2646 -.L2653: + b .L2712 +.L2719: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrb w2, [x0,1228] - cbz w2, .L2646 + ldrb w2, [x0,1220] + cbz w2, .L2712 cmp w1, 1 - bne .L2646 + bne .L2712 ldrh w2, [x19,2] - ldrh w1, [x0,2362] + ldrh w1, [x0,2346] cmp w2, w1 - bcc .L2646 + bcc .L2712 ldrh w1, [x19] - ldr x3, [x0,2728] + ldr x3, [x0,2712] lsl x1, x1, 1 ldrh w4, [x19,4] ldrh w2, [x3,x1] sub w2, w2, w4 strh w2, [x3,x1] strh wzr, [x19,4] - ldrh w0, [x0,2360] + ldrh w0, [x0,2344] strh w0, [x19,2] strb wzr, [x19,6] -.L2646: +.L2712: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -17253,47 +17638,47 @@ get_new_active_ppa: add x0, x0, 8 add x21, x21, :lo12:.LANCHOR0 ldrh w0, [x19,x0,lsl 1] -.L2659: +.L2725: cmp w0, w22 adrp x20, .LANCHOR2 - bne .L2674 -.L2660: + bne .L2740 +.L2726: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR2 add w0, w0, 1 - ldrh w1, [x1,2292] + ldrh w1, [x1,2276] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2661 + bne .L2727 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2661: +.L2727: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2659 -.L2674: + b .L2725 +.L2740: ldrb w1, [x19,8] cmp w1, 1 - bne .L2662 + bne .L2728 add x1, x23, :lo12:.LANCHOR2 - ldrb w1, [x1,1228] - cbnz w1, .L2662 + ldrb w1, [x1,1220] + cbnz w1, .L2728 ldrh w2, [x19,2] - add x1, x21, 1160 + add x1, x21, 1168 ldrh w1, [x1,w2,sxtw 1] cmp w1, w22 - bne .L2662 + bne .L2728 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2660 -.L2662: + b .L2726 +.L2728: ldrh w1, [x19,4] mov w23, 65535 ldrh w22, [x19,2] @@ -17303,63 +17688,63 @@ get_new_active_ppa: orr w22, w22, w0, lsl 10 strh w1, [x19,4] add x21, x21, :lo12:.LANCHOR0 -.L2663: +.L2729: add x0, x20, :lo12:.LANCHOR2 ldrb w1, [x19,6] - ldrh w2, [x0,2292] -.L2665: + ldrh w2, [x0,2276] +.L2731: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2664 + bne .L2730 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2664: +.L2730: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2665 + beq .L2731 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2670 + bne .L2736 add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbnz w0, .L2667 + ldrb w0, [x0,1220] + cbnz w0, .L2733 ldrh w1, [x19,2] - add x0, x21, 1160 + add x0, x21, 1168 ldrh w0, [x0,w1,sxtw 1] cmp w0, w24 - bne .L2667 + bne .L2733 ldrh w1, [x19,4] - cbz w1, .L2667 + cbz w1, .L2733 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2663 -.L2667: + b .L2729 +.L2733: add x1, x20, :lo12:.LANCHOR2 - ldrb w0, [x1,1228] - cbz w0, .L2670 + ldrb w0, [x1,1220] + cbz w0, .L2736 ldrh w2, [x19,2] - ldrh w0, [x1,2362] + ldrh w0, [x1,2346] cmp w2, w0 - bcc .L2670 + bcc .L2736 ldrh w2, [x19] - ldr x0, [x1,2728] + ldr x0, [x1,2712] lsl x2, x2, 1 ldrh w4, [x19,4] ldrh w3, [x0,x2] sub w3, w3, w4 strh w3, [x0,x2] strh wzr, [x19,4] - ldrh w0, [x1,2360] + ldrh w0, [x1,2344] strh w0, [x19,2] strb wzr, [x19,6] -.L2670: +.L2736: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17379,61 +17764,61 @@ FtlWriteDumpData: stp x19, x20, [sp,16] add x20, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] - ldr w0, [x20,2944] - cbnz w0, .L2675 + ldr w0, [x20,2928] + cbnz w0, .L2741 adrp x19, .LANCHOR4 add x1, x19, :lo12:.LANCHOR4 - add x1, x1, 800 + add x1, x1, 784 ldrh w2, [x1,4] - cbz w2, .L2677 + cbz w2, .L2743 ldrb w0, [x1,8] - cbnz w0, .L2677 + cbnz w0, .L2743 ldrb w0, [x1,7] - ldrh w3, [x20,2360] + ldrh w3, [x20,2344] mul w0, w0, w3 cmp w2, w0 - beq .L2677 + beq .L2743 ldrb w24, [x1,10] - ldr w23, [x20,2940] - ldrh w25, [x20,2292] - cbnz w24, .L2675 + ldr w23, [x20,2924] + ldrh w25, [x20,2276] + cbnz w24, .L2741 sub w23, w23, #1 add x1, x29, 84 mov w0, w23 mov w2, w24 bl log2phys - ldr x21, [x20,2656] + ldr x21, [x20,2640] ldr w0, [x29,84] - ldr x1, [x20,2592] + ldr x1, [x20,2576] str w0, [x29,92] cmn w0, #1 str w23, [x29,112] str x1, [x29,96] str x21, [x29,104] str w24, [x21,4] - beq .L2679 + beq .L2745 add x0, x29, 88 mov w1, 1 mov w2, w24 bl FlashReadPages - b .L2680 -.L2679: - ldr x0, [x20,2592] + b .L2746 +.L2745: + ldr x0, [x20,2576] mov w1, 255 - ldrh w2, [x20,2370] + ldrh w2, [x20,2354] bl ftl_memset -.L2680: +.L2746: add x20, x19, :lo12:.LANCHOR4 mov w0, -3947 lsl w25, w25, 2 strh w0, [x21] mov w24, 0 - add x20, x20, 800 -.L2681: + add x20, x20, 784 +.L2747: cmp w24, w25 - beq .L2682 + beq .L2748 ldrh w0, [x20,4] - cbz w0, .L2682 + cbz w0, .L2748 ldr w0, [x29,92] add w24, w24, 1 str w0, [x21,12] @@ -17446,27 +17831,27 @@ FtlWriteDumpData: add x0, x22, :lo12:.LANCHOR2 mov w2, 0 mov w3, w2 - ldr w1, [x0,2416] + ldr w1, [x0,2400] str w1, [x21,4] add w1, w1, 1 cmn w1, #1 csel w1, w1, wzr, ne - str w1, [x0,2416] + str w1, [x0,2400] mov w1, 1 add x0, x29, 88 bl FlashProgPages ldrh w0, [x20] bl decrement_vpc_count - b .L2681 -.L2682: + b .L2747 +.L2748: add x19, x19, :lo12:.LANCHOR4 mov w0, 1 - strb w0, [x19,810] - b .L2675 -.L2677: + strb w0, [x19,794] + b .L2741 +.L2743: add x19, x19, :lo12:.LANCHOR4 - strb wzr, [x19,810] -.L2675: + strb wzr, [x19,794] +.L2741: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17484,23 +17869,23 @@ l2p_flush: mov w19, 0 adrp x20, .LANCHOR2 bl FtlWriteDumpData -.L2693: +.L2759: add x1, x20, :lo12:.LANCHOR2 - ldrh w0, [x1,2398] + ldrh w0, [x1,2382] cmp w0, w19 - bls .L2696 - ldr x1, [x1,2808] + bls .L2762 + ldr x1, [x1,2792] ubfiz x0, x19, 4, 16 add x0, x1, x0 ldr w0, [x0,4] - tbz w0, #31, .L2694 + tbz w0, #31, .L2760 mov w0, w19 bl flush_l2p_region -.L2694: +.L2760: add w19, w19, 1 uxth w19, w19 - b .L2693 -.L2696: + b .L2759 +.L2762: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -17517,27 +17902,27 @@ FtlSuperblockPowerLostFix: str x23, [sp,48] add x2, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x2,2944] - cbnz w1, .L2697 - ldrb w21, [x2,1228] - cbz w21, .L2712 + ldr w1, [x2,2928] + cbnz w1, .L2763 + ldrb w21, [x2,1220] + cbz w21, .L2778 ldrb w21, [x0,8] cmp w21, 1 - bne .L2708 + bne .L2774 ldrh w23, [x0,4] - b .L2699 -.L2708: + b .L2765 +.L2774: mov w21, w1 -.L2712: +.L2778: mov w23, 12 -.L2699: +.L2765: mov x19, x0 mov w0, -1 str w0, [x29,96] add x0, x20, :lo12:.LANCHOR2 mov w2, 61589 - ldr x22, [x0,2656] - ldr x1, [x0,2592] + ldr x22, [x0,2640] + ldr x1, [x0,2576] str x1, [x29,80] mov w1, -3 str x22, [x29,88] @@ -17547,54 +17932,54 @@ FtlSuperblockPowerLostFix: ldrh w1, [x19] strh w1, [x22,2] strh wzr, [x22] - ldr x1, [x0,2592] + ldr x1, [x0,2576] str w2, [x1] - ldr x1, [x0,2592] + ldr x1, [x0,2576] mov w0, 22136 movk w0, 0x1234, lsl 16 str w0, [x1,4] -.L2700: +.L2766: sub w23, w23, #1 cmn w23, #1 - beq .L2703 + beq .L2769 ldrh w0, [x19,4] - cbnz w0, .L2701 -.L2703: + cbnz w0, .L2767 +.L2769: add x20, x20, :lo12:.LANCHOR2 ldrh w0, [x19] ldrh w3, [x19,4] lsl x0, x0, 1 - ldr x2, [x20,2728] + ldr x2, [x20,2712] ldrh w1, [x2,x0] sub w1, w1, w3 strh w1, [x2,x0] strb wzr, [x19,6] - ldrh w0, [x20,2360] + ldrh w0, [x20,2344] strh w0, [x19,2] strh wzr, [x19,4] - b .L2697 -.L2701: + b .L2763 +.L2767: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2703 + beq .L2769 add x1, x20, :lo12:.LANCHOR2 mov w2, w21 mov w3, 0 - ldr w0, [x1,2416] + ldr w0, [x1,2400] str w0, [x22,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x1,2416] + str w0, [x1,2400] add x0, x29, 72 mov w1, 1 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2700 -.L2697: + b .L2766 +.L2763: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -17607,11 +17992,11 @@ FtlSuperblockPowerLostFix: FtlVpcCheckAndModify: stp x29, x30, [sp, -96]! adrp x1, .LANCHOR3 - adrp x0, .LC47 + adrp x0, .LC49 add x1, x1, :lo12:.LANCHOR3 add x29, sp, 0 - add x1, x1, 96 - add x0, x0, :lo12:.LC47 + add x1, x1, 232 + add x0, x0, :lo12:.LC49 stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] @@ -17621,83 +18006,83 @@ FtlVpcCheckAndModify: mov w19, 0 add x0, x22, :lo12:.LANCHOR2 mov w1, 0 - ldrh w2, [x0,2302] - ldr x0, [x0,2720] + ldrh w2, [x0,2286] + ldr x0, [x0,2704] lsl w2, w2, 1 bl ftl_memset -.L2714: +.L2780: add x20, x22, :lo12:.LANCHOR2 - ldr w0, [x20,2940] + ldr w0, [x20,2924] cmp w19, w0 - bcs .L2730 + bcs .L2796 mov w0, w19 add x1, x29, 92 mov w2, 0 bl log2phys ldr w0, [x29,92] cmn w0, #1 - beq .L2715 + beq .L2781 lsr x0, x0, 10 bl P2V_block_in_plane ubfiz x0, x0, 1, 16 - ldr x2, [x20,2720] + ldr x2, [x20,2704] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] -.L2715: +.L2781: add w19, w19, 1 - b .L2714 -.L2730: + b .L2780 +.L2796: adrp x23, .LANCHOR4 - adrp x24, .LC152 + adrp x24, .LC156 mov w19, 0 mov w25, 65535 add x23, x23, :lo12:.LANCHOR4 - add x24, x24, :lo12:.LC152 -.L2717: + add x24, x24, :lo12:.LC156 +.L2783: add x21, x22, :lo12:.LANCHOR2 - ldrh w0, [x21,2300] + ldrh w0, [x21,2284] cmp w0, w19 - bls .L2731 + bls .L2797 ubfiz x20, x19, 1, 16 - ldr x0, [x21,2728] + ldr x0, [x21,2712] ldrh w2, [x0,x20] - ldr x0, [x21,2720] + ldr x0, [x21,2704] cmp w2, w25 ldrh w3, [x0,x20] - beq .L2718 + beq .L2784 cmp w2, w3 - beq .L2718 - ldrh w0, [x23,800] + beq .L2784 + ldrh w0, [x23,784] cmp w0, w19 - beq .L2718 - ldrh w0, [x23,896] + beq .L2784 + ldrh w0, [x23,880] cmp w0, w19 - beq .L2718 - ldrh w0, [x23,848] + beq .L2784 + ldrh w0, [x23,832] cmp w0, w19 - beq .L2718 + beq .L2784 mov w1, w19 mov x0, x24 bl printk - ldr x0, [x21,2728] + ldr x0, [x21,2712] ldrh w1, [x0,x20] - cbnz w1, .L2719 - ldr x1, [x21,2720] + cbnz w1, .L2785 + ldr x1, [x21,2704] ldrh w1, [x1,x20] strh w1, [x0,x20] - b .L2718 -.L2719: - ldr x1, [x21,2720] + b .L2784 +.L2785: + ldr x1, [x21,2704] ldrh w1, [x1,x20] strh w1, [x0,x20] mov w0, w19 bl update_vpc_list -.L2718: +.L2784: add w19, w19, 1 uxth w19, w19 - b .L2717 -.L2731: + b .L2783 +.L2797: bl l2p_flush bl FtlVpcTblFlush ldr x25, [sp,64] @@ -17717,92 +18102,92 @@ allocate_new_data_superblock: adrp x20, .LANCHOR2 add x1, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w2, [x1,2944] + ldr w2, [x1,2928] ldrh w22, [x0] - cbnz w2, .L2733 + cbnz w2, .L2799 mov x19, x0 mov w0, 65535 cmp w22, w0 - beq .L2734 + beq .L2800 ubfiz x0, x22, 1, 16 - ldr x1, [x1,2728] + ldr x1, [x1,2712] ldrh w0, [x1,x0] - cbz w0, .L2735 + cbz w0, .L2801 mov w0, w22 bl INSERT_DATA_LIST - b .L2734 -.L2735: + b .L2800 +.L2801: mov w0, w22 bl INSERT_FREE_LIST -.L2734: +.L2800: adrp x0, .LANCHOR4 strb wzr, [x19,8] add x1, x0, :lo12:.LANCHOR4 - add x2, x1, 848 + add x2, x1, 832 cmp x19, x2 - beq .L2736 + beq .L2802 add x2, x20, :lo12:.LANCHOR2 - ldrh w3, [x2,2312] + ldrh w3, [x2,2296] cmp w3, 1 - beq .L2736 - ldrb w4, [x2,1228] - cbz w4, .L2737 -.L2736: + beq .L2802 + ldrb w4, [x2,1220] + cbz w4, .L2803 +.L2802: mov w0, 1 strb w0, [x19,8] - b .L2738 -.L2737: - add x1, x1, 800 + b .L2804 +.L2803: + add x1, x1, 784 cmp x19, x1 - bne .L2738 + bne .L2804 cmp w3, 3 - beq .L2740 - ldr w1, [x2,2408] + beq .L2806 + ldr w1, [x2,2392] cmp w1, 1 - bne .L2741 -.L2740: + bne .L2807 +.L2806: add x1, x0, :lo12:.LANCHOR4 mov w2, 1 - strb w2, [x1,808] -.L2741: + strb w2, [x1,792] +.L2807: add x1, x20, :lo12:.LANCHOR2 - ldr w2, [x1,2196] - cbz w2, .L2738 - ldr w1, [x1,2460] + ldr w2, [x1,2096] + cbz w2, .L2804 + ldr w1, [x1,2444] cmp w1, 39 - bhi .L2738 + bhi .L2804 add x0, x0, :lo12:.LANCHOR4 mov w1, 1 - strb w1, [x0,808] -.L2738: + strb w1, [x0,792] +.L2804: adrp x1, .LANCHOR5 mov w2, 65535 add x0, x1, :lo12:.LANCHOR5 mov x21, x1 - ldrh w0, [x0,1200] + ldrh w0, [x0,1184] cmp w0, w2 - beq .L2743 + beq .L2809 cmp w22, w0 - bne .L2744 + bne .L2810 add x20, x20, :lo12:.LANCHOR2 ubfiz x1, x0, 1, 16 - ldr x2, [x20,2728] + ldr x2, [x20,2712] ldrh w1, [x2,x1] - cbz w1, .L2745 -.L2744: + cbz w1, .L2811 +.L2810: bl update_vpc_list -.L2745: +.L2811: add x1, x21, :lo12:.LANCHOR5 mov w0, -1 - strh w0, [x1,1200] -.L2743: + strh w0, [x1,1184] +.L2809: mov x0, x19 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2733: +.L2799: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17817,26 +18202,26 @@ FtlReadRefresh: adrp x1, .LANCHOR5 add x3, x1, :lo12:.LANCHOR5 add x29, sp, 0 - add x2, x3, 656 + add x2, x3, 640 stp x19, x20, [sp,16] stp x21, x22, [sp,32] adrp x19, .LANCHOR2 ldr w0, [x2,80] - cbz w0, .L2759 + cbz w0, .L2825 add x0, x19, :lo12:.LANCHOR2 ldr w4, [x2,84] - ldr w1, [x0,2940] + ldr w1, [x0,2924] cmp w4, w1 - bcs .L2760 + bcs .L2826 mov w21, 2048 mov x20, x3 -.L2765: - add x22, x20, 656 +.L2831: + add x22, x20, 640 add x1, x19, :lo12:.LANCHOR2 ldr w0, [x22,84] - ldr w1, [x1,2940] + ldr w1, [x1,2924] cmp w0, w1 - bcs .L2764 + bcs .L2830 add x1, x29, 52 mov w2, 0 bl log2phys @@ -17845,7 +18230,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x22,84] cmn w1, #1 - beq .L2763 + beq .L2829 str w1, [x29,60] mov w2, 0 str w0, [x29,80] @@ -17857,39 +18242,39 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29,56] cmp w0, 256 - bne .L2764 + bne .L2830 ldr w0, [x29,52] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2764: +.L2830: mov w0, -1 - b .L2767 -.L2763: + b .L2833 +.L2829: subs w21, w21, #1 - bne .L2765 - b .L2764 -.L2760: - ldr w0, [x0,2440] + bne .L2831 + b .L2830 +.L2826: + ldr w0, [x0,2424] str wzr, [x2,80] str wzr, [x2,84] str w0, [x2,76] - b .L2774 -.L2759: + b .L2840 +.L2825: add x19, x19, :lo12:.LANCHOR2 mov w5, 10000 mov w8, 63 ldr w6, [x2,76] - ldr w3, [x19,2456] - ldr w7, [x19,2440] + ldr w3, [x19,2440] + ldr w7, [x19,2424] cmp w3, w5 mov w5, 31 csel w8, w5, w8, hi add w5, w7, 1048576 cmp w6, w5 - ldr w4, [x19,2940] + ldr w4, [x19,2924] adrp x5, .LANCHOR4 - bhi .L2769 + bhi .L2835 mov w9, 1000 lsr w3, w3, 10 add w3, w3, 1 @@ -17897,26 +18282,26 @@ FtlReadRefresh: udiv w3, w4, w3 add w3, w3, w6 cmp w3, w7 - bcc .L2769 + bcc .L2835 add x3, x5, :lo12:.LANCHOR4 - ldrh w3, [x3,740] + ldrh w3, [x3,724] tst w8, w3 - bne .L2767 + bne .L2833 ldr w2, [x2,100] cmp w2, w3 - beq .L2767 -.L2769: + beq .L2833 +.L2835: add x5, x5, :lo12:.LANCHOR4 add x0, x1, :lo12:.LANCHOR5 - ldrh w1, [x5,740] - str w1, [x0,756] + ldrh w1, [x5,724] + str w1, [x0,740] mov w1, 1 - str wzr, [x0,740] - str w1, [x0,736] - str w7, [x0,732] -.L2774: + str wzr, [x0,724] + str w1, [x0,720] + str w7, [x0,716] +.L2840: mov w0, 0 -.L2767: +.L2833: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 @@ -17936,634 +18321,634 @@ ftl_do_gc: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w3, [x4,2944] - cbnz w3, .L2928 + ldr w3, [x4,2928] + cbnz w3, .L2994 adrp x3, .LANCHOR1 add x3, x3, :lo12:.LANCHOR1 - ldr w5, [x3,3352] - cmn w5, #1 - beq .L2928 - ldr w4, [x4,2464] - cbnz w4, .L2928 + ldr w20, [x3,3448] + cmp w20, 1 + bne .L2994 + ldr w4, [x4,2448] + cbnz w4, .L2994 adrp x23, .LANCHOR4 add x4, x23, :lo12:.LANCHOR4 - ldrh w5, [x4,776] + ldrh w5, [x4,760] cmp w5, 47 - bls .L2928 + bls .L2994 mov w24, w1 - ldrh w1, [x3,3356] + ldrh w1, [x3,3452] str w0, [x29,132] mov w0, 65535 cmp w1, w0 - bne .L2777 -.L2780: + bne .L2843 +.L2846: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w4, [x0,2490] + ldrh w4, [x0,2474] cmp w4, w2 - bne .L2778 - b .L2779 -.L2777: - ldrh w1, [x4,896] + bne .L2844 + b .L2845 +.L2843: + ldrh w1, [x4,880] cmp w1, w0 - beq .L2780 - mov w0, 1 + beq .L2846 + mov w0, w20 bl FtlGcFreeTempBlock - mov w2, 1 - cbz w0, .L2780 - b .L2928 -.L2778: - ldrh w1, [x0,2488] + mov w2, w20 + cbz w0, .L2846 + b .L2994 +.L2844: + ldrh w1, [x0,2472] cmp w1, w2 - bne .L2779 - ldrh w3, [x0,2492] + bne .L2845 + ldrh w3, [x0,2476] cmp w3, w1 - beq .L2779 - ldrh w2, [x0,2494] + beq .L2845 + ldrh w2, [x0,2478] cmp w2, w1 - beq .L2779 + beq .L2845 mov w1, -1 - strh w4, [x0,2488] - strh w3, [x0,2490] - strh w2, [x0,2492] - strh w1, [x0,2494] -.L2779: + strh w4, [x0,2472] + strh w3, [x0,2474] + strh w2, [x0,2476] + strh w1, [x0,2478] +.L2845: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x29,132] adrp x20, .LANCHOR5 cmp w2, 1 - ldr w0, [x1,2480] + ldr w0, [x1,2464] add w0, w0, 1 add w0, w0, w2, lsl 7 - str w0, [x1,2480] - bne .L2791 - ldr w2, [x1,2196] - cbnz w2, .L2782 - ldrb w1, [x1,1228] - cbz w1, .L2791 -.L2782: + str w0, [x1,2464] + bne .L2857 + ldr w2, [x1,2096] + cbnz w2, .L2848 + ldrb w1, [x1,1220] + cbz w1, .L2857 +.L2848: add x21, x19, :lo12:.LANCHOR2 - ldr w1, [x21,2460] + ldr w1, [x21,2444] cmp w1, 39 - bhi .L2791 + bhi .L2857 add x22, x20, :lo12:.LANCHOR5 - ldrh w1, [x22,1400] + ldrh w1, [x22,1384] add w0, w0, w1 - str w0, [x21,2480] + str w0, [x21,2464] bl FtlGcReFreshBadBlk - ldrh w0, [x22,608] + ldrh w0, [x22,592] mov w1, 65535 cmp w0, w1 - bne .L2791 - ldrh w1, [x21,2488] + bne .L2857 + ldrh w1, [x21,2472] cmp w1, w0 - bne .L2791 - ldr w0, [x21,2480] + bne .L2857 + ldr w0, [x21,2464] cmp w0, 1024 - bhi .L2783 + bhi .L2849 add x0, x23, :lo12:.LANCHOR4 - ldrh w0, [x0,792] + ldrh w0, [x0,776] cmp w0, 63 - bhi .L2791 -.L2783: + bhi .L2857 +.L2849: add x1, x23, :lo12:.LANCHOR4 add x0, x20, :lo12:.LANCHOR5 - ldrh w3, [x1,792] + ldrh w3, [x1,776] add x1, x19, :lo12:.LANCHOR2 - strh wzr, [x0,1400] - ldrh w2, [x1,2498] + strh wzr, [x0,1384] + ldrh w2, [x1,2482] add w2, w2, 64 cmp w3, w2 - bgt .L2791 - str wzr, [x1,2480] - ldr w1, [x1,2460] - cbnz w1, .L2784 + bgt .L2857 + str wzr, [x1,2464] + ldr w1, [x1,2444] + cbnz w1, .L2850 mov w1, 6 - b .L2950 -.L2784: + b .L3016 +.L2850: cmp w1, 5 - bhi .L2785 + bhi .L2851 mov w1, 18 -.L2950: - strh w1, [x0,1400] -.L2785: +.L3016: + strh w1, [x0,1384] +.L2851: mov w0, 32 mov w27, 65535 bl List_get_gc_head_node uxth w25, w0 cmp w25, w27 - beq .L2790 + beq .L2856 add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,2500] - cbz w0, .L2787 - ldrh w1, [x22,2362] + ldrh w0, [x22,2484] + cbz w0, .L2853 + ldrh w1, [x22,2346] ubfiz x25, x25, 1, 16 - ldrh w3, [x22,2292] - ldr x26, [x22,2728] + ldrh w3, [x22,2276] + ldr x26, [x22,2712] mul w1, w1, w3 ldrh w2, [x26,x25] add w1, w1, 1 cmp w2, w1 - bgt .L2790 + bgt .L2856 add w1, w0, 1 - str wzr, [x22,2468] + str wzr, [x22,2452] uxth w1, w1 - strh w1, [x22,2500] + strh w1, [x22,2484] str x1, [x29,136] bl List_get_gc_head_node uxth w21, w0 cmp w21, w27 ldr x1, [x29,136] - beq .L2790 + beq .L2856 ubfiz x27, x21, 1, 16 - adrp x0, .LC153 + adrp x0, .LC157 ldrh w4, [x26,x25] - add x0, x0, :lo12:.LC153 + add x0, x0, :lo12:.LC157 mov w2, w21 ldrh w3, [x26,x27] bl printk - ldrh w0, [x22,2500] + ldrh w0, [x22,2484] cmp w0, 40 - bls .L2788 - ldr x0, [x22,2728] + bls .L2854 + ldr x0, [x22,2712] ldrh w0, [x0,x27] cmp w0, 32 - bls .L2788 - strh wzr, [x22,2500] -.L2788: + bls .L2854 + strh wzr, [x22,2484] +.L2854: add x0, x20, :lo12:.LANCHOR5 mov w1, 6 - strh w1, [x0,1400] - b .L2792 -.L2787: + strh w1, [x0,1384] + b .L2858 +.L2853: mov w0, 1 - strh w0, [x22,2500] -.L2790: + strh w0, [x22,2484] +.L2856: bl GetSwlReplaceBlock uxth w21, w0 mov w0, 65535 cmp w21, w0 - bne .L2792 + bne .L2858 add x0, x20, :lo12:.LANCHOR5 - strh wzr, [x0,1400] -.L2791: + strh wzr, [x0,1384] +.L2857: add x1, x20, :lo12:.LANCHOR5 mov w0, 65535 - ldrh w21, [x1,608] + ldrh w21, [x1,592] cmp w21, w0 - bne .L2955 + bne .L3021 add x26, x23, :lo12:.LANCHOR4 - ldrh w0, [x26,896] + ldrh w0, [x26,880] cmp w0, w21 - beq .L2956 -.L2792: + beq .L3022 +.L2858: mov w0, 65535 cmp w21, w0 cset w0, eq - cbz w0, .L2805 + cbz w0, .L2871 ldr w1, [x29,132] - cbnz w1, .L2805 + cbnz w1, .L2871 add x0, x23, :lo12:.LANCHOR4 mov w22, 1 - ldrh w0, [x0,792] + ldrh w0, [x0,776] cmp w0, 24 - bhi .L2806 + bhi .L2872 add x1, x19, :lo12:.LANCHOR2 cmp w0, 16 - ldrh w22, [x1,2360] - bls .L2807 + ldrh w22, [x1,2344] + bls .L2873 lsr w22, w22, 5 - b .L2806 -.L2807: + b .L2872 +.L2873: cmp w0, 12 - bls .L2808 + bls .L2874 lsr w22, w22, 4 - b .L2806 -.L2808: + b .L2872 +.L2874: cmp w0, 8 - bls .L2806 + bls .L2872 lsr w22, w22, 2 -.L2806: +.L2872: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,2496] + ldrh w2, [x1,2480] cmp w2, w0 - bcs .L2810 + bcs .L2876 add x3, x23, :lo12:.LANCHOR4 mov w2, 65535 - ldrh w0, [x3,896] + ldrh w0, [x3,880] cmp w0, w2 - bne .L2811 - ldrh w2, [x1,2488] + bne .L2877 + ldrh w2, [x1,2472] cmp w2, w0 - bne .L2811 + bne .L2877 add x0, x20, :lo12:.LANCHOR5 - ldrh w2, [x0,1400] - cbnz w2, .L2812 - ldr w0, [x1,2940] - ldr w3, [x3,1084] + ldrh w2, [x0,1384] + cbnz w2, .L2878 + ldr w0, [x1,2924] + ldr w3, [x3,1068] add w0, w0, w0, lsl 1 cmp w3, w0, lsr 2 - bcs .L2813 -.L2812: + bcs .L2879 +.L2878: add x20, x20, :lo12:.LANCHOR5 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x20,604] + ldrh w0, [x20,588] add w0, w0, w0, lsl 1 asr w0, w0, 2 - b .L2953 -.L2813: + b .L3019 +.L2879: mov w0, 18 -.L2953: +.L3019: add x19, x19, :lo12:.LANCHOR2 - strh w0, [x1,2496] - str wzr, [x19,2468] - b .L2928 -.L2811: + strh w0, [x1,2480] + str wzr, [x19,2452] + b .L2994 +.L2877: add x0, x20, :lo12:.LANCHOR5 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,604] + ldrh w0, [x0,588] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,2496] -.L2810: + strh w0, [x1,2480] +.L2876: cmp w24, 2 - bhi .L2882 + bhi .L2948 add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2196] - cbz w0, .L2882 + ldr w0, [x0,2096] + cbz w0, .L2948 add w22, w22, 1 uxth w22, w22 - b .L2882 -.L2805: + b .L2948 +.L2871: add x2, x23, :lo12:.LANCHOR4 mov w3, 65535 - ldrh w1, [x2,896] + ldrh w1, [x2,880] cmp w1, w3 - bne .L2817 - cbz w0, .L2817 + bne .L2883 + cbz w0, .L2883 add x0, x19, :lo12:.LANCHOR2 - ldrh w3, [x0,2488] + ldrh w3, [x0,2472] cmp w3, w1 - bne .L2817 + bne .L2883 add x3, x20, :lo12:.LANCHOR5 - ldrh w4, [x3,608] + ldrh w4, [x3,592] cmp w4, w1 - beq .L2818 -.L2823: + beq .L2884 +.L2889: mov w21, 65535 - b .L2817 -.L2818: - ldrh w4, [x2,792] - ldrh w1, [x0,2496] - str wzr, [x0,2468] + b .L2883 +.L2884: + ldrh w4, [x2,776] + ldrh w1, [x0,2480] + str wzr, [x0,2452] cmp w4, w1 - bls .L2819 - ldrh w1, [x3,1400] - cbnz w1, .L2820 - ldr w1, [x0,2940] - ldr w2, [x2,1084] + bls .L2885 + ldrh w1, [x3,1384] + cbnz w1, .L2886 + ldr w1, [x0,2924] + ldr w2, [x2,1068] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bcs .L2821 -.L2820: + bcs .L2887 +.L2886: add x0, x20, :lo12:.LANCHOR5 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,604] + ldrh w0, [x0,588] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,2496] - b .L2822 -.L2821: + strh w0, [x1,2480] + b .L2888 +.L2887: mov w1, 18 - strh w1, [x0,2496] -.L2822: + strh w1, [x0,2480] +.L2888: bl FtlReadRefresh mov w0, 0 bl List_get_gc_head_node ubfiz x0, x0, 1, 16 add x1, x19, :lo12:.LANCHOR2 - ldr x1, [x1,2728] + ldr x1, [x1,2712] ldrh w0, [x1,x0] cmp w0, 4 - bls .L2819 + bls .L2885 add x20, x20, :lo12:.LANCHOR5 - b .L2954 -.L2819: + b .L3020 +.L2885: add x24, x20, :lo12:.LANCHOR5 - ldrh w0, [x24,1400] - cbnz w0, .L2823 - ldrh w21, [x24,604] + ldrh w0, [x24,1384] + cbnz w0, .L2889 + ldrh w21, [x24,588] add x22, x19, :lo12:.LANCHOR2 add w1, w21, w21, lsl 1 asr w1, w1, 2 - strh w1, [x22,2496] + strh w1, [x22,2480] bl List_get_gc_head_node ubfiz x0, x0, 1, 16 - ldr x1, [x22,2728] - ldrh w2, [x22,2292] + ldr x1, [x22,2712] + ldrh w2, [x22,2276] ldrh w1, [x1,x0] - ldrh w0, [x22,2362] + ldrh w0, [x22,2346] mul w0, w0, w2 mov w2, 2 sdiv w0, w0, w2 cmp w1, w0 - ble .L2824 + ble .L2890 add x0, x23, :lo12:.LANCHOR4 sub w21, w21, #1 - ldrh w0, [x0,792] + ldrh w0, [x0,776] cmp w0, w21 - blt .L2824 + blt .L2890 bl FtlReadRefresh - ldrh w2, [x24,1400] - b .L2928 -.L2824: - cbnz w1, .L2823 + ldrh w2, [x24,1384] + b .L2994 +.L2890: + cbnz w1, .L2889 mov w0, -1 add x23, x23, :lo12:.LANCHOR4 bl decrement_vpc_count - ldrh w2, [x23,792] + ldrh w2, [x23,776] add w2, w2, 1 - b .L2928 -.L2817: + b .L2994 +.L2883: add x0, x19, :lo12:.LANCHOR2 mov w22, 2 - ldr w0, [x0,2196] + ldr w0, [x0,2096] cmp w0, wzr csinc w22, w22, wzr, ne - b .L2816 -.L2882: + b .L2882 +.L2948: mov w21, 65535 -.L2816: +.L2882: add x0, x20, :lo12:.LANCHOR5 mov w2, 65535 - ldrh w1, [x0,608] + ldrh w1, [x0,592] cmp w1, w2 - bne .L2826 + bne .L2892 cmp w21, w1 - beq .L2827 - strh w21, [x0,608] - b .L2828 -.L2827: + beq .L2893 + strh w21, [x0,592] + b .L2894 +.L2893: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,2488] + ldrh w0, [x1,2472] cmp w0, w21 - beq .L2828 + beq .L2894 ubfiz x0, x0, 1, 16 - ldr x2, [x1,2728] + ldr x2, [x1,2712] ldrh w0, [x2,x0] - cbnz w0, .L2829 + cbnz w0, .L2895 mov w0, -1 - strh w0, [x1,2488] -.L2829: + strh w0, [x1,2472] +.L2895: add x1, x19, :lo12:.LANCHOR2 add x0, x20, :lo12:.LANCHOR5 - ldrh w2, [x1,2488] - strh w2, [x0,608] + ldrh w2, [x1,2472] + strh w2, [x0,592] mov w0, -1 - strh w0, [x1,2488] -.L2828: + strh w0, [x1,2472] +.L2894: add x24, x20, :lo12:.LANCHOR5 mov w1, 65535 - ldrh w0, [x24,608] - strb wzr, [x24,616] + ldrh w0, [x24,592] + strb wzr, [x24,600] cmp w0, w1 - beq .L2826 + beq .L2892 bl IsBlkInGcList - cbz w0, .L2831 + cbz w0, .L2897 mov w0, -1 - strh w0, [x24,608] -.L2831: + strh w0, [x24,592] +.L2897: add x0, x19, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbz w0, .L2832 + ldrb w0, [x0,1220] + cbz w0, .L2898 add x0, x20, :lo12:.LANCHOR5 - add x24, x0, 608 - ldrh w0, [x0,608] + add x24, x0, 592 + ldrh w0, [x0,592] bl ftl_get_blk_mode strb w0, [x24,8] -.L2832: +.L2898: add x24, x20, :lo12:.LANCHOR5 mov w0, 65535 - add x25, x24, 608 - ldrh w1, [x24,608] + add x25, x24, 592 + ldrh w1, [x24,592] cmp w1, w0 - beq .L2826 + beq .L2892 mov x0, x25 bl make_superblock - strh wzr, [x24,610] + strh wzr, [x24,594] add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x24,608] - strb wzr, [x24,614] - strh wzr, [x24,1402] - ldr x0, [x0,2728] + ldrh w1, [x24,592] + strb wzr, [x24,598] + strh wzr, [x24,1386] + ldr x0, [x0,2712] ldrh w0, [x0,x1,lsl 1] - strh w0, [x24,1404] -.L2826: + strh w0, [x24,1388] +.L2892: add x0, x20, :lo12:.LANCHOR5 add x1, x23, :lo12:.LANCHOR4 - ldrh w0, [x0,608] - ldrh w2, [x1,800] + ldrh w0, [x0,592] + ldrh w2, [x1,784] cmp w2, w0 - beq .L2833 - ldrh w2, [x1,848] + beq .L2899 + ldrh w2, [x1,832] cmp w2, w0 - beq .L2833 - ldrh w1, [x1,896] + beq .L2899 + ldrh w1, [x1,880] cmp w1, w0 - bne .L2834 -.L2833: + bne .L2900 +.L2899: add x0, x20, :lo12:.LANCHOR5 mov w1, -1 - strh w1, [x0,608] -.L2834: + strh w1, [x0,592] +.L2900: add x25, x20, :lo12:.LANCHOR5 -.L2867: - ldrh w0, [x25,608] +.L2933: + ldrh w0, [x25,592] mov w1, 65535 cmp w0, w1 - bne .L2835 + bne .L2901 add x0, x19, :lo12:.LANCHOR2 - str wzr, [x0,2468] -.L2836: + str wzr, [x0,2452] +.L2902: add x26, x19, :lo12:.LANCHOR2 - ldrh w24, [x26,2500] + ldrh w24, [x26,2484] mov w0, w24 bl List_get_gc_head_node uxth w27, w0 mov w0, 65535 - strh w27, [x25,608] + strh w27, [x25,592] cmp w27, w0 - bne .L2837 - strh wzr, [x26,2500] + bne .L2903 + strh wzr, [x26,2484] mov w2, 8 - b .L2928 -.L2837: + b .L2994 +.L2903: mov w0, w27 add w24, w24, 1 bl IsBlkInGcList - cbz w0, .L2838 - strh w24, [x26,2500] - b .L2836 -.L2838: - ldrh w5, [x26,2292] + cbz w0, .L2904 + strh w24, [x26,2484] + b .L2902 +.L2904: + ldrh w5, [x26,2276] ubfiz x1, x27, 1, 16 - ldrh w0, [x26,2360] + ldrh w0, [x26,2344] uxth w24, w24 - ldr x2, [x26,2728] + ldr x2, [x26,2712] mov w3, 2 - strh w24, [x26,2500] + strh w24, [x26,2484] mul w0, w0, w5 ldrh w4, [x2,x1] sdiv w5, w0, w3 cmp w4, w5 - bgt .L2840 + bgt .L2906 cmp w4, 8 - bls .L2841 + bls .L2907 cmp w24, 48 - bls .L2841 - ldrh w4, [x25,1216] + bls .L2907 + ldrh w4, [x25,1200] cmp w4, 35 - bhi .L2841 -.L2840: + bhi .L2907 +.L2906: add x4, x19, :lo12:.LANCHOR2 - strh wzr, [x4,2500] -.L2841: + strh wzr, [x4,2484] +.L2907: ldrh w1, [x2,x1] mov w2, 65535 cmp w21, w2 - bne .L2842 + bne .L2908 cmp w1, w0 - blt .L2842 + blt .L2908 add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,2500] + ldrh w2, [x0,2484] cmp w2, 3 - bhi .L2842 + bhi .L2908 add x20, x20, :lo12:.LANCHOR5 mov w1, -1 - strh wzr, [x0,2500] - strh w1, [x20,608] -.L2954: - ldrh w2, [x20,1400] - b .L2928 -.L2842: - cbnz w1, .L2843 + strh wzr, [x0,2484] + strh w1, [x20,592] +.L3020: + ldrh w2, [x20,1384] + b .L2994 +.L2908: + cbnz w1, .L2909 mov w0, -1 bl decrement_vpc_count add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,2500] + ldrh w0, [x1,2484] add w0, w0, 1 - strh w0, [x1,2500] - b .L2836 -.L2843: + strh w0, [x1,2484] + b .L2902 +.L2909: add x0, x19, :lo12:.LANCHOR2 - strb wzr, [x25,616] - ldrb w0, [x0,1228] - cbz w0, .L2844 + strb wzr, [x25,600] + ldrb w0, [x0,1220] + cbz w0, .L2910 mov w0, w27 bl ftl_get_blk_mode - strb w0, [x25,616] -.L2844: - add x24, x25, 608 + strb w0, [x25,600] +.L2910: + add x24, x25, 592 mov x0, x24 bl make_superblock - strh wzr, [x25,1402] + strh wzr, [x25,1386] add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x25,608] - ldr x0, [x0,2728] + ldrh w1, [x25,592] + ldr x0, [x0,2712] ldrh w0, [x0,x1,lsl 1] - strh w0, [x25,1404] - strh wzr, [x25,610] - strb wzr, [x25,614] -.L2835: + strh w0, [x25,1388] + strh wzr, [x25,594] + strb wzr, [x25,598] +.L2901: ldr w0, [x29,132] cmp w0, 1 - bne .L2845 + bne .L2911 bl FtlReadRefresh -.L2845: +.L2911: add x0, x19, :lo12:.LANCHOR2 mov w1, 1 - str w1, [x0,2464] - ldrh w1, [x0,2360] + str w1, [x0,2448] + ldrh w1, [x0,2344] str w1, [x29,136] - ldrb w1, [x0,1228] - cbz w1, .L2846 - ldrb w1, [x25,616] + ldrb w1, [x0,1220] + cbz w1, .L2912 + ldrb w1, [x25,600] cmp w1, 1 - bne .L2846 - ldrh w0, [x0,2362] + bne .L2912 + ldrh w0, [x0,2346] str w0, [x29,136] -.L2846: - ldrh w0, [x25,610] +.L2912: + ldrh w0, [x25,594] ldr w2, [x29,136] add w1, w0, w22 cmp w1, w2 - ble .L2847 + ble .L2913 sub w22, w2, w0 uxth w22, w22 -.L2847: +.L2913: mov w27, 0 -.L2848: +.L2914: cmp w22, w27, uxth - bls .L2855 - add x1, x25, 608 + bls .L2921 + add x1, x25, 592 add x0, x19, :lo12:.LANCHOR2 ldrh w4, [x1,2] - ldrh w7, [x0,2292] + ldrh w7, [x0,2276] mov x0, 0 add w4, w4, w27 mov w24, w0 -.L2856: +.L2922: cmp w7, w0, uxth - bls .L2957 + bls .L3023 add x2, x1, x0, lsl 1 mov w3, 65535 ldrh w2, [x2,16] cmp w2, w3 - beq .L2849 + beq .L2915 add x6, x19, :lo12:.LANCHOR2 mov w3, 56 orr w2, w4, w2, lsl 10 umull x5, w24, w3 - ldr x6, [x6,2568] + ldr x6, [x6,2552] add w24, w24, 1 add x5, x6, x5 uxth w24, w24 str w2, [x5,4] -.L2849: +.L2915: add x0, x0, 1 - b .L2856 -.L2957: + b .L2922 +.L3023: add x0, x19, :lo12:.LANCHOR2 - ldrb w2, [x25,616] + ldrb w2, [x25,600] mov w1, w24 mov x28, 0 - ldr x0, [x0,2568] + ldr x0, [x0,2552] bl FlashReadPages add x0, x23, :lo12:.LANCHOR4 str x0, [x29,120] -.L2851: +.L2917: cmp w24, w28, uxth - bls .L2958 + bls .L3024 add x26, x19, :lo12:.LANCHOR2 mov x0, 56 mul x5, x28, x0 - ldr x0, [x26,2568] + ldr x0, [x26,2552] add x1, x0, x5 ldr w0, [x0,x5] cmn w0, #1 ldr x6, [x1,16] - beq .L2885 + beq .L2951 ldrh w0, [x6] mov w1, 61589 cmp w0, w1 - bne .L2885 + bne .L2951 ldr w0, [x6,8] add x1, x29, 152 mov w2, 0 str x5, [x29,104] str x6, [x29,112] bl log2phys - ldr x2, [x26,2568] + ldr x2, [x26,2552] ldr x5, [x29,104] ldr w0, [x29,152] add x2, x2, x5 @@ -18571,13 +18956,13 @@ ftl_do_gc: and w0, w0, 2147483647 ldr w1, [x2,4] cmp w0, w1 - bne .L2885 - ldrh w0, [x25,1402] + bne .L2951 + ldrh w0, [x25,1386] mov x3, 56 - ldr x1, [x26,2544] + ldr x1, [x26,2528] add w0, w0, 1 - strh w0, [x25,1402] - ldr w0, [x25,1184] + strh w0, [x25,1386] + ldr w0, [x25,1168] str x5, [x29,96] str x6, [x29,104] madd x1, x0, x3, x1 @@ -18590,10 +18975,10 @@ ftl_do_gc: ldr x5, [x29,96] ldr x6, [x29,104] str w0, [x1,4] - ldr w0, [x25,1184] - ldr x1, [x26,2544] + ldr w0, [x25,1168] + ldr x1, [x26,2528] madd x0, x0, x2, x1 - ldr x1, [x26,2568] + ldr x1, [x26,2552] add x1, x1, x5 ldr x2, [x1,8] str x2, [x0,8] @@ -18603,167 +18988,167 @@ ftl_do_gc: ldr w0, [x29,152] str w0, [x6,12] ldr x0, [x29,120] - add x2, x0, 896 + add x2, x0, 880 str x2, [x29,112] - ldrh w0, [x0,896] + ldrh w0, [x0,880] strh w0, [x6,2] - ldr w0, [x26,2416] + ldr w0, [x26,2400] str w0, [x6,4] - ldr w0, [x25,1184] + ldr w0, [x25,1168] add w0, w0, 1 - str w0, [x25,1184] - ldr x0, [x26,2568] + str w0, [x25,1168] + ldr x0, [x26,2552] add x0, x0, x5 bl FtlGcBufAlloc - ldrb w0, [x26,1228] - cbnz w0, .L2853 + ldrb w0, [x26,1220] + cbnz w0, .L2919 ldr x2, [x29,112] - ldr w1, [x25,1184] + ldr w1, [x25,1168] ldrb w0, [x2,7] cmp w1, w0 - beq .L2853 + beq .L2919 ldrh w0, [x2,4] - cbnz w0, .L2885 -.L2853: + cbnz w0, .L2951 +.L2919: bl Ftl_gc_temp_data_write_back - cbz w0, .L2885 + cbz w0, .L2951 add x20, x20, :lo12:.LANCHOR5 add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - str wzr, [x19,2464] - strh w0, [x20,608] - strh wzr, [x20,610] - b .L2954 -.L2885: + str wzr, [x19,2448] + strh w0, [x20,592] + strh wzr, [x20,594] + b .L3020 +.L2951: add x28, x28, 1 - b .L2851 -.L2958: + b .L2917 +.L3024: add w27, w27, 1 - b .L2848 -.L2855: - ldrh w0, [x25,610] + b .L2914 +.L2921: + ldrh w0, [x25,594] add w22, w22, w0 ldr w0, [x29,136] uxth w22, w22 - strh w22, [x25,610] + strh w22, [x25,594] cmp w22, w0 - bcc .L2857 - ldr w0, [x25,1184] - cbz w0, .L2858 + bcc .L2923 + ldr w0, [x25,1168] + cbz w0, .L2924 bl Ftl_gc_temp_data_write_back - cbz w0, .L2858 + cbz w0, .L2924 add x19, x19, :lo12:.LANCHOR2 - ldrh w2, [x25,1400] - str wzr, [x19,2464] - b .L2928 -.L2858: - ldrh w22, [x25,1402] - cbnz w22, .L2859 + ldrh w2, [x25,1384] + str wzr, [x19,2448] + b .L2994 +.L2924: + ldrh w22, [x25,1386] + cbnz w22, .L2925 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x25,608] - ldr x0, [x0,2728] + ldrh w1, [x25,592] + ldr x0, [x0,2712] ldrh w0, [x0,x1,lsl 1] - cbz w0, .L2859 -.L2860: + cbz w0, .L2925 +.L2926: add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2940] + ldr w0, [x0,2924] cmp w22, w0 - bcs .L2865 + bcs .L2931 mov w0, w22 add x1, x29, 156 mov w2, 0 bl log2phys ldr w0, [x29,156] cmn w0, #1 - beq .L2861 + beq .L2927 lsr w0, w0, 10 bl P2V_block_in_plane - ldrh w1, [x25,608] + ldrh w1, [x25,592] cmp w1, w0, uxth - bne .L2861 -.L2865: + bne .L2927 +.L2931: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2940] + ldr w1, [x0,2924] cmp w22, w1 - bcc .L2859 - ldrh w1, [x25,608] - ldr x0, [x0,2728] + bcc .L2925 + ldrh w1, [x25,592] + ldr x0, [x0,2712] strh wzr, [x0,x1,lsl 1] - ldrh w0, [x25,608] + ldrh w0, [x25,592] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L2859 -.L2861: + b .L2925 +.L2927: add w22, w22, 1 - b .L2860 -.L2859: + b .L2926 +.L2925: mov w0, -1 - strh w0, [x25,608] -.L2857: + strh w0, [x25,592] +.L2923: add x0, x23, :lo12:.LANCHOR4 - ldrh w0, [x0,792] + ldrh w0, [x0,776] cmp w0, 2 - bhi .L2866 + bhi .L2932 add x0, x19, :lo12:.LANCHOR2 - ldrh w22, [x0,2360] - b .L2867 -.L2866: + ldrh w22, [x0,2344] + b .L2933 +.L2932: add x20, x20, :lo12:.LANCHOR5 add x19, x19, :lo12:.LANCHOR2 - ldrh w2, [x20,1400] - str wzr, [x19,2464] + ldrh w2, [x20,1384] + str wzr, [x19,2448] cmp w2, wzr csinc w2, w2, w0, ne - b .L2928 -.L2956: + b .L2994 +.L3022: add x25, x19, :lo12:.LANCHOR2 - ldrh w27, [x25,2488] + ldrh w27, [x25,2472] cmp w27, w21 - bne .L2792 - ldrh w0, [x26,792] + bne .L2858 + ldrh w0, [x26,776] mov w3, 1024 - ldr w2, [x25,2480] + ldr w2, [x25,2464] cmp w0, 24 mov w0, 5120 csel w0, w0, w3, cc cmp w2, w0 - bls .L2792 - str wzr, [x25,2480] - strh wzr, [x1,1400] + bls .L2858 + str wzr, [x25,2464] + strh wzr, [x1,1384] bl GetSwlReplaceBlock uxth w21, w0 cmp w21, w27 - bne .L2794 - ldrh w1, [x26,792] - ldrh w0, [x25,2498] + bne .L2860 + ldrh w1, [x26,776] + ldrh w0, [x25,2482] cmp w1, w0 - bcs .L2795 + bcs .L2861 mov w0, 64 bl List_get_gc_head_node uxth w0, w0 cmp w0, w21 - beq .L2804 - ldr w2, [x25,2404] + beq .L2870 + ldr w2, [x25,2388] uxtw x1, w0 - cbnz w2, .L2797 - ldrh w0, [x25,2312] + cbnz w2, .L2863 + ldrh w0, [x25,2296] cmp w0, 3 - beq .L2797 - ldr w0, [x25,2408] - cbnz w0, .L2797 - ldr w0, [x25,2196] - cbnz w0, .L2797 - ldrb w0, [x25,1228] - cbz w0, .L2798 -.L2797: + beq .L2863 + ldr w0, [x25,2392] + cbnz w0, .L2863 + ldr w0, [x25,2096] + cbnz w0, .L2863 + ldrb w0, [x25,1220] + cbz w0, .L2864 +.L2863: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,2728] + ldr x0, [x2,2712] ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x2,2362] - ldrh w0, [x2,2292] - ldrh w2, [x2,2312] + ldrh w1, [x2,2346] + ldrh w0, [x2,2276] + ldrh w2, [x2,2296] mul w3, w1, w0 cmp w2, 3 mov w0, 0 @@ -18771,74 +19156,74 @@ ftl_do_gc: csel w0, w1, w0, eq add w0, w3, w0 cmp w4, w0 - bgt .L2800 + bgt .L2866 mov w0, 0 bl List_get_gc_head_node uxth w21, w0 add x1, x19, :lo12:.LANCHOR2 add x2, x23, :lo12:.LANCHOR4 - ldr w0, [x1,2940] - ldr w2, [x2,1084] + ldr w0, [x1,2924] + ldr w2, [x2,1068] add w0, w0, w0, lsl 1 cmp w2, w0, lsr 2 - bls .L2801 + bls .L2867 mov w0, 128 - b .L2951 -.L2801: + b .L3017 +.L2867: mov w0, 160 -.L2951: - strh w0, [x1,2498] - b .L2802 -.L2800: +.L3017: + strh w0, [x1,2482] + b .L2868 +.L2866: add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - b .L2952 -.L2798: - ldr x2, [x25,2728] + b .L3018 +.L2864: + ldr x2, [x25,2712] ldrh w1, [x2,x1,lsl 1] cmp w1, 7 - bhi .L2803 + bhi .L2869 bl List_get_gc_head_node uxth w21, w0 add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - strh w1, [x0,2498] - b .L2802 -.L2803: + strh w1, [x0,2482] + b .L2868 +.L2869: add x0, x19, :lo12:.LANCHOR2 mov w1, 64 -.L2952: - strh w1, [x0,2498] - b .L2804 -.L2795: +.L3018: + strh w1, [x0,2482] + b .L2870 +.L2861: mov w0, 80 - strh w0, [x25,2498] - b .L2804 -.L2802: + strh w0, [x25,2482] + b .L2870 +.L2868: mov w0, 65535 cmp w21, w0 - beq .L2804 -.L2794: + beq .L2870 +.L2860: add x5, x19, :lo12:.LANCHOR2 ubfiz x4, x21, 1, 32 add x2, x23, :lo12:.LANCHOR4 - adrp x0, .LC154 - add x0, x0, :lo12:.LC154 + adrp x0, .LC158 + add x0, x0, :lo12:.LC158 mov w1, w21 - ldr x3, [x5,2728] - ldr x6, [x5,2712] - ldrh w2, [x2,792] + ldr x3, [x5,2712] + ldr x6, [x5,2696] + ldrh w2, [x2,776] ldrh w3, [x3,x4] - ldrh w5, [x5,2496] + ldrh w5, [x5,2480] ldrh w4, [x6,x4] bl printk -.L2804: +.L2870: bl FtlGcReFreshBadBlk - b .L2792 -.L2955: + b .L2858 +.L3021: mov w21, w0 - b .L2792 -.L2928: + b .L2858 +.L2994: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18862,108 +19247,108 @@ FtlCacheWriteBack: stp x25, x26, [sp,64] stp x27, x28, [sp,80] adrp x19, .LANCHOR2 - ldr x20, [x0,1408] + ldr x20, [x0,1392] add x0, x19, :lo12:.LANCHOR2 - ldr w22, [x0,2944] - cbnz w22, .L2961 - ldr w1, [x0,2512] - cbz w1, .L2961 - ldrb w0, [x0,1228] - cbz w0, .L2963 + ldr w22, [x0,2928] + cbnz w22, .L3027 + ldr w1, [x0,2496] + cbz w1, .L3027 + ldrb w0, [x0,1220] + cbz w0, .L3029 ldrb w0, [x20,8] cmp w0, 1 cset w22, eq -.L2963: +.L3029: add x0, x19, :lo12:.LANCHOR2 ldrb w3, [x20,9] - adrp x26, .LC155 + adrp x26, .LC159 mov w2, w22 mov w24, 0 mov w27, 56 - ldr x0, [x0,2576] - add x26, x26, :lo12:.LC155 + ldr x0, [x0,2560] + add x26, x26, :lo12:.LC159 bl FlashProgPages -.L2964: +.L3030: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2512] + ldr w1, [x0,2496] cmp w24, w1 - bcs .L2982 + bcs .L3048 umull x21, w24, w27 - ldr x1, [x0,2576] + ldr x1, [x0,2560] add x0, x1, x21 ldr w25, [x1,x21] cmn w25, #1 - beq .L2985 + beq .L3051 ldr w1, [x0,4] - cbz w22, .L2999 + cbz w22, .L3065 orr w1, w1, -2147483648 -.L2999: +.L3065: ldr w0, [x0,24] mov w2, 1 str w1, [x29,124] add x25, x19, :lo12:.LANCHOR2 add x1, x29, 124 bl log2phys - ldr x0, [x25,2576] + ldr x0, [x25,2560] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2968 + beq .L3034 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 ubfiz x0, x1, 1, 16 - ldr x2, [x25,2728] + ldr x2, [x25,2712] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2969 + cbnz w2, .L3035 mov x0, x26 bl printk -.L2969: +.L3035: mov w0, w21 bl decrement_vpc_count -.L2968: +.L3034: add w24, w24, 1 - b .L2964 -.L3001: + b .L3030 +.L3067: mov w20, 16386 -.L2981: +.L3047: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,2502] - cbz w0, .L2982 + ldrh w0, [x0,2486] + cbz w0, .L3048 mov w0, 1 mov w1, w0 bl ftl_do_gc subs w20, w20, #1 - bne .L2981 -.L2982: + bne .L3047 +.L3048: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,2512] - b .L2961 -.L2985: - adrp x26, .LC155 + str wzr, [x19,2496] + b .L3027 +.L3051: + adrp x26, .LC159 add x0, x23, :lo12:.LANCHOR5 mov w24, 0 mov w27, 56 str x0, [x29,104] - add x26, x26, :lo12:.LC155 -.L2965: + add x26, x26, :lo12:.LC159 +.L3031: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2512] + ldr w1, [x0,2496] cmp w24, w1 - bcs .L3001 + bcs .L3067 umull x21, w24, w27 - ldr x0, [x0,2576] + ldr x0, [x0,2560] mov w28, 1 str w25, [x0,x21] -.L2971: +.L3037: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,2576] + ldr x0, [x2,2560] add x1, x0, x21 ldr w0, [x0,x21] cmn w0, #1 - bne .L3002 + bne .L3068 ldr w0, [x1,4] str x2, [x29,96] lsr x0, x0, 10 @@ -18971,30 +19356,30 @@ FtlCacheWriteBack: ldrh w1, [x20] cmp w1, w0, uxth ldr x2, [x29,96] - bne .L2972 - ldr x3, [x2,2728] + bne .L3038 + ldr x3, [x2,2712] ubfiz x1, x1, 1, 16 ldrh w4, [x20,4] ldrh w0, [x3,x1] sub w0, w0, w4 strh w0, [x3,x1] strb wzr, [x20,6] - ldrh w0, [x2,2360] + ldrh w0, [x2,2344] strh w0, [x20,2] strh wzr, [x20,4] -.L2972: +.L3038: ldrh w0, [x20,4] - cbnz w0, .L2973 + cbnz w0, .L3039 mov x0, x20 bl allocate_new_data_superblock -.L2973: +.L3039: ldr x0, [x29,104] add x23, x19, :lo12:.LANCHOR2 - add x1, x0, 656 - ldr w0, [x0,752] + add x1, x0, 640 + ldr w0, [x0,736] add w0, w0, 1 str w0, [x1,96] - ldr x0, [x23,2576] + ldr x0, [x23,2560] add x0, x0, x21 ldr w0, [x0,4] lsr x0, x0, 10 @@ -19002,59 +19387,59 @@ FtlCacheWriteBack: mov x0, x20 bl get_new_active_ppa str w0, [x29,124] - ldr x1, [x23,2576] + ldr x1, [x23,2560] mov w2, w22 add x1, x1, x21 str w0, [x1,4] mov w1, 1 - ldr x0, [x23,2576] + ldr x0, [x23,2560] ldrb w3, [x20,9] add x0, x0, x21 bl FlashProgPages - ldr x0, [x23,2576] + ldr x0, [x23,2560] ldr w0, [x0,x21] cmn w0, #1 - bne .L2974 - str w28, [x23,2944] -.L2974: + bne .L3040 + str w28, [x23,2928] +.L3040: add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2944] - cbz w0, .L2971 - b .L2961 -.L3002: + ldr w0, [x0,2928] + cbz w0, .L3037 + b .L3027 +.L3068: ldr w0, [x1,4] - cbz w22, .L3000 + cbz w22, .L3066 orr w0, w0, -2147483648 -.L3000: +.L3066: str w0, [x29,124] mov w2, 1 ldr w0, [x1,24] add x28, x19, :lo12:.LANCHOR2 add x1, x29, 124 bl log2phys - ldr x0, [x28,2576] + ldr x0, [x28,2560] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] cmn w0, #1 - beq .L2978 + beq .L3044 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 ubfiz x0, x1, 1, 16 - ldr x2, [x28,2728] + ldr x2, [x28,2712] mov w21, w1 ldrh w2, [x2,x0] - cbnz w2, .L2979 + cbnz w2, .L3045 mov x0, x26 bl printk -.L2979: +.L3045: mov w0, w21 bl decrement_vpc_count -.L2978: +.L3044: add w24, w24, 1 - b .L2965 -.L2961: + b .L3031 +.L3027: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19068,37 +19453,39 @@ FtlCacheWriteBack: .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: - adrp x0, .LANCHOR2+2944 - stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR2+2928 + stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2+2944] - cbnz w0, .L3004 - adrp x0, .LANCHOR1+3352 - ldr w0, [x0,#:lo12:.LANCHOR1+3352] - cmn w0, #1 - beq .L3004 + ldr w0, [x0,#:lo12:.LANCHOR2+2928] + str x19, [sp,16] + cbnz w0, .L3070 + adrp x0, .LANCHOR1+3448 + ldr w19, [x0,#:lo12:.LANCHOR1+3448] + cmp w19, 1 + bne .L3070 bl FtlCacheWriteBack bl l2p_flush - mov w0, 1 + mov w0, w19 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3004: +.L3070: mov w0, 0 - ldp x29, x30, [sp], 16 + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 ret .size FtlSysFlush, .-FtlSysFlush .align 2 .global FtlDeInit .type FtlDeInit, %function FtlDeInit: - adrp x0, .LANCHOR1+3352 + adrp x0, .LANCHOR1+3448 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR1+3352] + ldr w0, [x0,#:lo12:.LANCHOR1+3448] cmp w0, 1 - bne .L3009 + bne .L3072 bl FtlSysFlush -.L3009: +.L3072: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -19130,7 +19517,6 @@ ftl_cache_flush: .type ftl_discard, %function ftl_discard: stp x29, x30, [sp, -80]! - add w2, w0, w1 add x29, sp, 0 stp x21, x22, [sp,32] adrp x22, .LANCHOR2 @@ -19139,79 +19525,82 @@ ftl_discard: stp x19, x20, [sp,16] mov w19, w1 mov w20, w0 - ldr w1, [x21,1232] + ldr w1, [x21,1224] + cmp w19, w1 + bhi .L3083 + cmp w0, w1 + bcs .L3083 + add w2, w0, w19 mov w0, -1 cmp w2, w1 - bhi .L3013 - adrp x0, .LANCHOR1+3352 - ldr w1, [x0,#:lo12:.LANCHOR1+3352] - cmn w1, #1 - mov w0, w1 - beq .L3013 + bhi .L3076 cmp w19, 31 - bls .L3028 - ldr w0, [x21,2944] - cbnz w0, .L3028 + bls .L3091 + ldr w0, [x21,2928] + cbnz w0, .L3091 bl FtlCacheWriteBack - ldrh w1, [x21,2366] + ldrh w1, [x21,2350] udiv w21, w20, w1 msub w20, w1, w21, w20 uxth w20, w20 - cbz w20, .L3016 - sub w1, w1, w20 + cbz w20, .L3079 + sub w20, w1, w20 add w21, w21, 1 - cmp w1, w19 - csel w1, w1, w19, ls - sub w19, w19, w1, uxth -.L3016: + cmp w20, w19 + csel w20, w20, w19, ls + sub w19, w19, w20, uxth +.L3079: mov w0, -1 adrp x23, .LANCHOR5 str w0, [x29,76] -.L3017: +.L3080: add x20, x22, :lo12:.LANCHOR2 - ldrh w0, [x20,2366] + ldrh w0, [x20,2350] cmp w19, w0 - bcc .L3029 + bcc .L3092 mov w0, w21 add x1, x29, 72 mov w2, 0 bl log2phys ldr w0, [x29,72] cmn w0, #1 - beq .L3018 + beq .L3081 add x1, x23, :lo12:.LANCHOR5 mov w2, 1 - ldr w0, [x1,1416] + ldr w0, [x1,1400] add w0, w0, 1 - str w0, [x1,1416] - ldr w0, [x20,2428] + str w0, [x1,1400] + ldr w0, [x20,2412] add x1, x29, 76 add w0, w0, 1 - str w0, [x20,2428] + str w0, [x20,2412] mov w0, w21 bl log2phys ldr w0, [x29,72] lsr x0, x0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L3018: +.L3081: add x0, x22, :lo12:.LANCHOR2 add w21, w21, 1 - ldrh w0, [x0,2366] + ldrh w0, [x0,2350] sub w19, w19, w0 - b .L3017 -.L3029: + b .L3080 +.L3092: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,1416] + ldr w1, [x0,1400] cmp w1, 32 - bls .L3028 - str wzr, [x0,1416] + bls .L3091 + str wzr, [x0,1400] bl l2p_flush bl FtlVpcTblFlush -.L3028: +.L3091: mov w0, 0 -.L3013: + b .L3076 +.L3083: + mov w0, -1 +.L3076: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -19231,126 +19620,126 @@ FtlGcFreeTempBlock: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w3, [x2,2944] - ldrh w1, [x2,2360] - cbnz w3, .L3066 + ldr w3, [x2,2928] + ldrh w1, [x2,2344] + cbnz w3, .L3129 adrp x20, .LANCHOR4 mov w4, 65535 add x2, x20, :lo12:.LANCHOR4 - ldrh w21, [x2,896] + ldrh w21, [x2,880] cmp w21, w4 - bne .L3033 -.L3042: + bne .L3096 +.L3105: add x22, x20, :lo12:.LANCHOR4 adrp x21, .LANCHOR5 add x23, x21, :lo12:.LANCHOR5 mov w0, 65535 - add x24, x22, 896 - ldrh w1, [x22,896] - str wzr, [x23,1208] + add x24, x22, 880 + ldrh w1, [x22,880] + str wzr, [x23,1192] cmp w1, w0 - beq .L3066 + beq .L3129 bl FtlCacheWriteBack mov w25, 12 add x0, x19, :lo12:.LANCHOR2 ldrb w1, [x24,7] - ldrh w3, [x22,896] + ldrh w3, [x22,880] mov w24, 0 - ldrh w4, [x0,2360] - ldr x2, [x0,2728] + ldrh w4, [x0,2344] + ldr x2, [x0,2712] mul w1, w1, w4 strh w1, [x2,x3,lsl 1] - ldrh w2, [x23,1218] + ldrh w2, [x23,1202] mov x23, x22 - ldr w1, [x0,2420] + ldr w1, [x0,2404] add w1, w2, w1 - str w1, [x0,2420] - b .L3043 -.L3033: - cbz w0, .L3036 + str w1, [x0,2404] + b .L3106 +.L3096: + cbz w0, .L3099 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3356] + ldrh w5, [x0,3452] cmp w5, w4 - beq .L3037 -.L3038: + beq .L3100 +.L3101: mov w1, 2 - b .L3036 -.L3037: - strh w3, [x0,3356] - ldrh w0, [x2,792] + b .L3099 +.L3100: + strh w3, [x0,3452] + ldrh w0, [x2,776] cmp w0, 17 - bhi .L3038 -.L3036: + bhi .L3101 +.L3099: add x0, x20, :lo12:.LANCHOR4 - add x0, x0, 896 + add x0, x0, 880 bl FtlGcScanTempBlk str w0, [x29,108] cmn w0, #1 - beq .L3039 + beq .L3102 add x19, x19, :lo12:.LANCHOR2 ubfiz x21, x21, 1, 16 - ldr x1, [x19,2712] + ldr x1, [x19,2696] ldrh w0, [x1,x21] cmp w0, 4 - bls .L3040 + bls .L3103 sub w0, w0, #5 strh w0, [x1,x21] mov w0, 1 bl FtlEctTblFlush -.L3040: +.L3103: adrp x0, .LANCHOR5 add x1, x0, :lo12:.LANCHOR5 mov x19, x0 - ldr w2, [x1,1208] - cbnz w2, .L3041 - ldr w0, [x1,752] + ldr w2, [x1,1192] + cbnz w2, .L3104 + ldr w0, [x1,736] add w0, w0, 1 - str w0, [x1,752] + str w0, [x1,736] ldr w0, [x29,108] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3041: +.L3104: add x0, x19, :lo12:.LANCHOR5 - str wzr, [x0,1208] + str wzr, [x0,1192] mov w0, 1 - b .L3032 -.L3039: - adrp x0, .LANCHOR1+3356 + b .L3095 +.L3102: + adrp x0, .LANCHOR1+3452 mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3356] + ldrh w2, [x0,#:lo12:.LANCHOR1+3452] mov w0, 1 cmp w2, w1 - bne .L3032 - b .L3042 -.L3046: + bne .L3095 + b .L3105 +.L3109: ldr w1, [x22,4] cmp w0, w1 - bne .L3064 -.L3045: + bne .L3127 +.L3108: add w24, w24, 1 uxth w24, w24 -.L3043: +.L3106: add x0, x21, :lo12:.LANCHOR5 - ldrh w0, [x0,1218] + ldrh w0, [x0,1202] cmp w0, w24 - bls .L3067 + bls .L3130 add x1, x19, :lo12:.LANCHOR2 umull x26, w24, w25 - ldr x27, [x1,2528] - ldr w1, [x1,2940] + ldr x27, [x1,2512] + ldr w1, [x1,2924] add x22, x27, x26 ldr w0, [x22,8] cmp w0, w1 - bcs .L3064 + bcs .L3127 add x1, x29, 108 mov w2, 0 bl log2phys ldr w0, [x29,108] ldr w1, [x27,x26] cmp w0, w1 - bne .L3046 + bne .L3109 lsr x0, x0, 10 bl P2V_block_in_plane mov w26, w0 @@ -19359,78 +19748,78 @@ FtlGcFreeTempBlock: mov w2, 1 bl log2phys mov w0, w26 - b .L3065 -.L3064: - ldrh w0, [x23,896] -.L3065: + b .L3128 +.L3127: + ldrh w0, [x23,880] +.L3128: bl decrement_vpc_count - b .L3045 -.L3067: + b .L3108 +.L3130: mov w0, -1 bl decrement_vpc_count add x0, x19, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbz w0, .L3048 + ldrb w0, [x0,1220] + cbz w0, .L3111 add x1, x20, :lo12:.LANCHOR4 - adrp x0, .LC156 - add x0, x0, :lo12:.LC156 - ldrh w1, [x1,896] + adrp x0, .LC160 + add x0, x0, :lo12:.LC160 + ldrh w1, [x1,880] bl printk -.L3048: +.L3111: add x0, x20, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,896] - ldr x1, [x1,2728] + ldrh w0, [x0,880] + ldr x1, [x1,2712] ubfiz x2, x0, 1, 16 ldrh w1, [x1,x2] - cbz w1, .L3049 + cbz w1, .L3112 bl INSERT_DATA_LIST - b .L3050 -.L3049: + b .L3113 +.L3112: bl INSERT_FREE_LIST -.L3050: +.L3113: add x22, x21, :lo12:.LANCHOR5 add x23, x20, :lo12:.LANCHOR4 mov w24, -1 - strh wzr, [x22,1218] - strh w24, [x23,896] - strh wzr, [x22,1216] + strh wzr, [x22,1202] + strh w24, [x23,880] + strh wzr, [x22,1200] bl l2p_flush bl FtlVpcTblFlush - strh w24, [x22,608] + strh w24, [x22,592] add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,2196] - cbz w0, .L3051 - ldr w0, [x1,2460] + ldr w0, [x1,2096] + cbz w0, .L3114 + ldr w0, [x1,2444] cmp w0, 39 - bhi .L3051 - ldrh w0, [x22,604] - ldrh w2, [x23,792] + bhi .L3114 + ldrh w0, [x22,588] + ldrh w2, [x23,776] cmp w2, w0 - bcs .L3066 + bcs .L3129 lsl w0, w0, 1 - strh w0, [x1,2496] -.L3066: + strh w0, [x1,2480] +.L3129: mov w0, 0 - b .L3032 -.L3051: + b .L3095 +.L3114: add x21, x21, :lo12:.LANCHOR5 add x20, x20, :lo12:.LANCHOR4 - ldrh w1, [x21,604] - ldrh w0, [x20,792] + ldrh w1, [x21,588] + ldrh w0, [x20,776] add w2, w1, w1, lsl 1 cmp w0, w2, lsr 2 - ble .L3066 + ble .L3129 add x19, x19, :lo12:.LANCHOR2 - ldrb w0, [x19,1228] - cbz w0, .L3052 + ldrb w0, [x19,1220] + cbz w0, .L3115 sub w1, w1, #2 - strh w1, [x19,2496] - b .L3066 -.L3052: + strh w1, [x19,2480] + b .L3129 +.L3115: mov w1, 20 - strh w1, [x19,2496] -.L3032: + strh w1, [x19,2480] +.L3095: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -19451,21 +19840,21 @@ FtlGcPageRecovery: add x20, x20, :lo12:.LANCHOR2 add x19, x19, :lo12:.LANCHOR4 str x21, [sp,32] - add x21, x19, 896 + add x21, x19, 880 mov x0, x21 - ldrh w1, [x20,2360] + ldrh w1, [x20,2344] bl FtlGcScanTempBlk - ldrh w1, [x19,898] - ldrh w0, [x20,2360] + ldrh w1, [x19,882] + ldrh w0, [x20,2344] cmp w1, w0 - bcc .L3068 - add x0, x19, 944 + bcc .L3131 + add x0, x19, 928 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock - adrp x0, .LANCHOR5+1208 - str wzr, [x0,#:lo12:.LANCHOR5+1208] -.L3068: + adrp x0, .LANCHOR5+1192 + str wzr, [x0,#:lo12:.LANCHOR5+1192] +.L3131: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -19476,14 +19865,14 @@ FtlGcPageRecovery: .type FtlPowerLostRecovery, %function FtlPowerLostRecovery: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR5+1264 + adrp x0, .LANCHOR5+1248 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR4 - str wzr, [x0,#:lo12:.LANCHOR5+1264] + str wzr, [x0,#:lo12:.LANCHOR5+1248] add x19, x19, :lo12:.LANCHOR4 - add x20, x19, 800 - add x19, x19, 848 + add x20, x19, 784 + add x19, x19, 832 mov x0, x20 bl FtlRecoverySuperblock mov x0, x20 @@ -19515,23 +19904,23 @@ FtlSysBlkInit: add x0, x21, :lo12:.LANCHOR5 add x23, x20, :lo12:.LANCHOR2 adrp x19, .LANCHOR4 - strh w1, [x0,1258] - strh wzr, [x0,1260] - ldrh w0, [x23,2296] + strh w1, [x0,1242] + strh wzr, [x0,1244] + ldrh w0, [x23,2280] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk add x0, x19, :lo12:.LANCHOR4 - ldrh w1, [x0,1088] + ldrh w1, [x0,1072] mov w0, 65535 cmp w1, w0 - bne .L3072 -.L3074: + bne .L3135 +.L3137: mov w22, -1 - b .L3073 -.L3072: + b .L3136 +.L3135: bl FtlLoadSysInfo mov w22, w0 - cbnz w0, .L3074 + cbnz w0, .L3137 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -19541,89 +19930,89 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x23,2398] + ldrh w2, [x23,2382] mov x1, 0 - ldr x0, [x23,2808] -.L3075: + ldr x0, [x23,2792] +.L3138: cmp w1, w2 mov w3, w1 - bge .L3079 + bge .L3142 add x4, x0, x1, lsl 4 add x1, x1, 1 ldr w4, [x4,4] - tbz w4, #31, .L3075 -.L3079: + tbz w4, #31, .L3138 +.L3142: add x0, x19, :lo12:.LANCHOR4 cmp w3, w2 - ldrh w1, [x0,740] + ldrh w1, [x0,724] add w1, w1, 1 - strh w1, [x0,740] - blt .L3076 + strh w1, [x0,724] + blt .L3139 add x21, x21, :lo12:.LANCHOR5 - ldrh w0, [x21,1260] - cbz w0, .L3080 -.L3076: + ldrh w0, [x21,1244] + cbz w0, .L3143 +.L3139: add x1, x19, :lo12:.LANCHOR4 add x2, x20, :lo12:.LANCHOR2 - ldrh w3, [x1,800] - ldr x5, [x2,2728] + ldrh w3, [x1,784] + ldr x5, [x2,2712] lsl x3, x3, 1 - ldrh w6, [x1,804] + ldrh w6, [x1,788] ldrh w4, [x5,x3] sub w4, w4, w6 strh w4, [x5,x3] - strb wzr, [x1,806] - ldrh w3, [x2,2360] - strh w3, [x1,802] - ldrh w3, [x1,848] - ldr x5, [x2,2728] + strb wzr, [x1,790] + ldrh w3, [x2,2344] + strh w3, [x1,786] + ldrh w3, [x1,832] + ldr x5, [x2,2712] lsl x3, x3, 1 - strh wzr, [x1,804] - ldrh w6, [x1,852] + strh wzr, [x1,788] + ldrh w6, [x1,836] ldrh w4, [x5,x3] sub w4, w4, w6 strh w4, [x5,x3] - strb wzr, [x1,854] - ldrh w0, [x1,742] - ldrh w2, [x2,2360] + strb wzr, [x1,838] + ldrh w0, [x1,726] + ldrh w2, [x2,2344] add w0, w0, 1 - strh w2, [x1,850] - strh wzr, [x1,852] - strh w0, [x1,742] + strh w2, [x1,834] + strh wzr, [x1,836] + strh w0, [x1,726] bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3080: +.L3143: add x20, x19, :lo12:.LANCHOR4 mov w1, 65535 - add x23, x20, 800 - ldrh w0, [x20,800] + add x23, x20, 784 + ldrh w0, [x20,784] cmp w0, w1 - beq .L3081 - ldrh w1, [x20,804] - cbnz w1, .L3081 - ldrh w1, [x20,852] - add x21, x20, 848 - cbnz w1, .L3081 + beq .L3144 + ldrh w1, [x20,788] + cbnz w1, .L3144 + ldrh w1, [x20,836] + add x21, x20, 832 + cbnz w1, .L3144 bl FtlGcRefreshOpenBlock - ldrh w0, [x20,848] + ldrh w0, [x20,832] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush mov x0, x23 bl allocate_new_data_superblock mov x0, x21 bl allocate_new_data_superblock -.L3081: +.L3144: adrp x0, .LANCHOR0+88 ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbnz w0, .L3082 + cbnz w0, .L3145 add x19, x19, :lo12:.LANCHOR4 - ldrh w0, [x19,740] + ldrh w0, [x19,724] and w0, w0, 31 - cbnz w0, .L3073 -.L3082: + cbnz w0, .L3136 +.L3145: bl FtlVpcCheckAndModify -.L3073: +.L3136: mov w0, w22 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -19642,52 +20031,52 @@ FtlLowFormat: add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w21, [x20,2944] - cbnz w21, .L3090 - ldrh w2, [x20,2396] + ldr w21, [x20,2928] + cbnz w21, .L3153 + ldrh w2, [x20,2380] mov w1, w21 - ldr x0, [x20,2792] + ldr x0, [x20,2776] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,2396] + ldrh w2, [x20,2380] mov w1, w21 - ldr x0, [x20,2784] + ldr x0, [x20,2768] lsl w2, w2, 2 bl ftl_memset - str w21, [x20,2412] - ldrh w0, [x20,2296] - str w21, [x20,2416] + str w21, [x20,2396] + ldrh w0, [x20,2280] + str w21, [x20,2400] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3091 + cbz w0, .L3154 bl FtlMakeBbt -.L3091: +.L3154: mov w0, 0 -.L3092: +.L3155: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,2366] + ldrh w2, [x1,2350] cmp w0, w2, lsl 7 - bge .L3119 + bge .L3182 ubfiz x3, x0, 2, 16 - ldr x4, [x1,2632] + ldr x4, [x1,2616] mvn w2, w0 orr w2, w0, w2, lsl 16 str w2, [x4,x3] add w0, w0, 1 - ldr x2, [x1,2640] + ldr x2, [x1,2624] mov w1, 23752 movk w1, 0xa0f, lsl 16 uxth w0, w0 str w1, [x2,x3] - b .L3092 -.L3119: - ldrh w21, [x1,2300] + b .L3155 +.L3182: + ldrh w21, [x1,2284] mov w20, 0 -.L3094: +.L3157: add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,2302] + ldrh w0, [x22,2286] cmp w0, w21 - bls .L3120 + bls .L3183 mov w0, w21 mov w1, 1 add w21, w21, 1 @@ -19695,222 +20084,236 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L3094 -.L3120: - ldrh w0, [x22,2292] + b .L3157 +.L3183: + ldrh w0, [x22,2276] sub w1, w20, #3 cmp w1, w0, lsl 1 - bge .L3096 -.L3100: + blt .L3159 + udiv w0, w20, w0 + ldr w20, [x22,2376] + add w0, w0, w20 mov w20, 0 - mov w21, w20 - b .L3097 -.L3096: - udiv w20, w20, w0 - ldr w0, [x22,2392] - add w0, w20, w0 bl FtlSysBlkNumInit - ldrh w0, [x22,2296] + ldrh w0, [x22,2280] bl FtlFreeSysBlkQueueInit - ldrh w20, [x22,2300] -.L3098: + ldrh w21, [x22,2284] +.L3160: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,2302] - cmp w0, w20 - bls .L3100 - mov w0, w20 - mov w1, 1 - add w20, w20, 1 - bl FtlLowFormatEraseBlock - uxth w20, w20 - b .L3098 -.L3097: - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,2300] - cmp w1, w21 - bls .L3121 + ldrh w0, [x0,2286] + cmp w0, w21 + bls .L3159 mov w0, w21 - mov w1, 0 + mov w1, 1 add w21, w21, 1 bl FtlLowFormatEraseBlock add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L3097 -.L3121: - ldrh w1, [x0,2302] + b .L3160 +.L3159: + mov w21, 0 + mov w22, w21 +.L3162: + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x0,2284] + cmp w1, w22 + bls .L3184 + mov w0, w22 + mov w1, 0 + add w22, w22, 1 + bl FtlLowFormatEraseBlock + add w0, w21, w0 + uxth w22, w22 + uxth w21, w0 + b .L3162 +.L3184: + ldrh w1, [x0,2286] adrp x22, .LANCHOR5 - ldrh w2, [x0,2292] + ldrh w2, [x0,2276] add x6, x22, :lo12:.LANCHOR5 - str w1, [x0,2484] - ldr w1, [x0,2304] + str w1, [x0,2468] + ldr w1, [x0,2288] udiv w3, w1, w2 - str w3, [x0,2940] + str w3, [x0,2924] ubfx x5, x3, 5, 16 add w4, w5, 36 - strh w4, [x6,604] + strh w4, [x6,588] mov w4, 24 mul w4, w2, w4 - cmp w20, w4 - ble .L3102 - sub w1, w1, w20 + cmp w21, w4 + ble .L3164 + sub w1, w1, w21 udiv w1, w1, w2 - str w1, [x0,2940] + str w1, [x0,2924] lsr w1, w1, 5 add w1, w1, 24 - strh w1, [x6,604] -.L3102: + strh w1, [x6,588] +.L3164: add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2196] + ldr w0, [x0,2096] cmp w0, 1 - bne .L3103 + bne .L3165 add x1, x22, :lo12:.LANCHOR5 - udiv w0, w20, w2 - ldrh w4, [x1,604] + udiv w0, w21, w2 + ldrh w4, [x1,588] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,604] -.L3103: + strh w0, [x1,588] +.L3165: add x0, x19, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbz w0, .L3104 + ldrb w0, [x0,1220] + cbz w0, .L3166 add x1, x22, :lo12:.LANCHOR5 - udiv w0, w20, w2 - ldrh w4, [x1,604] + udiv w0, w21, w2 + ldrh w4, [x1,588] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,604] -.L3104: + strh w0, [x1,588] +.L3166: add x6, x19, :lo12:.LANCHOR2 - ldrh w1, [x6,2354] - cbz w1, .L3106 + ldrh w1, [x6,2338] + cbz w1, .L3168 add x0, x22, :lo12:.LANCHOR5 - ldrh w4, [x0,604] + ldrh w4, [x0,588] add w4, w4, w1, lsr 1 - strh w4, [x0,604] + strh w4, [x0,588] mul w4, w1, w2 - cmp w4, w20 - ble .L3106 + cmp w4, w21 + ble .L3168 add w1, w1, 32 - str w3, [x6,2940] + str w3, [x6,2924] add w1, w5, w1 - strh w1, [x0,604] -.L3106: - add x21, x22, :lo12:.LANCHOR5 + strh w1, [x0,588] +.L3168: add x23, x19, :lo12:.LANCHOR2 - adrp x20, .LANCHOR4 - mov w24, -1 - add x20, x20, :lo12:.LANCHOR4 - ldrh w0, [x21,604] - ldr w1, [x23,2940] + add x3, x22, :lo12:.LANCHOR5 + ldr w1, [x23,2924] + ldrh w0, [x3,588] sub w0, w1, w0 - ldrh w1, [x23,2360] + ldrh w1, [x23,2344] mul w0, w0, w2 - str w0, [x21,600] + str w0, [x3,584] mul w0, w0, w1 - ldrh w1, [x23,2366] - str w0, [x23,2940] + ldrh w1, [x23,2350] + str w0, [x23,2924] mul w0, w0, w1 - str w0, [x23,1232] + str w0, [x23,1224] bl FtlBbmTblFlush - ldrh w2, [x23,2302] + ldr w2, [x23,2292] + add w1, w21, w20 + ldrh w0, [x23,2358] + add w0, w0, w2, lsr 3 + cmp w1, w0 + bls .L3170 + adrp x0, .LC161 + lsr w2, w2, 5 + add x0, x0, :lo12:.LC161 + bl printk +.L3170: + add x24, x19, :lo12:.LANCHOR2 + adrp x20, .LANCHOR4 + add x20, x20, :lo12:.LANCHOR4 mov w1, 0 - ldr x0, [x23,2728] + add x21, x20, 784 + mov w23, -1 + ldrh w2, [x24,2286] + ldr x0, [x24,2712] lsl w2, w2, 1 bl ftl_memset - strh w24, [x21,608] - strh wzr, [x21,610] + str wzr, [x20,1068] mov w0, 1 - strb wzr, [x21,614] - mov w1, 255 - strb wzr, [x21,616] - add x21, x20, 800 - ldrh w2, [x23,2300] strb w0, [x21,8] adrp x0, .LANCHOR0+16 - lsr w2, w2, 3 - str wzr, [x20,1084] + add x1, x22, :lo12:.LANCHOR5 + ldrh w2, [x24,2284] strh wzr, [x21,2] ldr x0, [x0,#:lo12:.LANCHOR0+16] + lsr w2, w2, 3 + strh w23, [x1,592] + strh wzr, [x1,594] + strb wzr, [x1,598] + strb wzr, [x1,600] + mov w1, 255 strb wzr, [x21,6] - strh wzr, [x20,800] + strh wzr, [x20,784] bl ftl_memset -.L3108: +.L3171: mov x0, x21 bl make_superblock ldrb w0, [x21,7] - cbnz w0, .L3109 + cbnz w0, .L3172 add x0, x19, :lo12:.LANCHOR2 ldrh w1, [x21] - ldr x0, [x0,2728] - strh w24, [x0,x1,lsl 1] - ldrh w0, [x21] - add w0, w0, 1 - strh w0, [x21] - b .L3108 -.L3109: - add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x21] - ldrh w3, [x21,4] - mov w23, -1 - ldr w0, [x1,2412] - str w0, [x21,12] - add w0, w0, 1 - str w0, [x1,2412] - ldr x0, [x1,2728] - strh w3, [x0,x2,lsl 1] - add x0, x20, 848 - strh wzr, [x20,850] - ldrh w1, [x21] - mov x21, x0 - strb wzr, [x20,854] - add w1, w1, 1 - strh w1, [x20,848] - mov w1, 1 - strb w1, [x20,856] -.L3110: - mov x0, x21 - bl make_superblock - ldrb w0, [x21,7] - cbnz w0, .L3111 - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x21] - ldr x0, [x0,2728] + ldr x0, [x0,2712] strh w23, [x0,x1,lsl 1] ldrh w0, [x21] add w0, w0, 1 strh w0, [x21] - b .L3110 -.L3111: + b .L3171 +.L3172: + add x1, x19, :lo12:.LANCHOR2 + ldrh w2, [x21] + ldrh w3, [x21,4] + mov w23, -1 + ldr w0, [x1,2396] + str w0, [x21,12] + add w0, w0, 1 + str w0, [x1,2396] + ldr x0, [x1,2712] + strh w3, [x0,x2,lsl 1] + add x0, x20, 832 + strh wzr, [x20,834] + ldrh w1, [x21] + mov x21, x0 + strb wzr, [x20,838] + add w1, w1, 1 + strh w1, [x20,832] + mov w1, 1 + strb w1, [x20,840] +.L3173: + mov x0, x21 + bl make_superblock + ldrb w0, [x21,7] + cbnz w0, .L3174 + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x21] + ldr x0, [x0,2712] + strh w23, [x0,x1,lsl 1] + ldrh w0, [x21] + add w0, w0, 1 + strh w0, [x21] + b .L3173 +.L3174: add x19, x19, :lo12:.LANCHOR2 ldrh w1, [x21] ldrh w2, [x21,4] add x22, x22, :lo12:.LANCHOR5 - ldr w0, [x19,2412] + ldr w0, [x19,2396] str w0, [x21,12] mov w21, -1 add w0, w0, 1 - str w0, [x19,2412] - ldr x0, [x19,2728] + str w0, [x19,2396] + ldr x0, [x19,2712] strh w2, [x0,x1,lsl 1] - strh w21, [x20,896] + strh w21, [x20,880] bl FtlFreeSysBlkQueueOut - strh w0, [x20,1088] - ldr w0, [x22,600] - strh w0, [x20,1094] - ldr w0, [x19,2412] - str w0, [x20,1096] + strh w0, [x20,1072] + ldr w0, [x22,584] + strh w0, [x20,1078] + ldr w0, [x19,2396] + str w0, [x20,1080] add w0, w0, 1 - strh wzr, [x20,1090] - strh w21, [x20,1092] - str w0, [x19,2412] + strh wzr, [x20,1074] + strh w21, [x20,1076] + str w0, [x19,2396] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L3090 - adrp x0, .LANCHOR1+3352 + cbnz w0, .L3153 + adrp x0, .LANCHOR1+3448 mov w1, 1 - str w1, [x0,#:lo12:.LANCHOR1+3352] -.L3090: + str w1, [x0,#:lo12:.LANCHOR1+3448] +.L3153: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19927,24 +20330,24 @@ FtlReInitForSDUpdata: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrb w0, [x0,1228] - cbz w0, .L3123 -.L3125: + ldrb w0, [x0,1220] + cbz w0, .L3186 +.L3188: mov w0, 0 - b .L3124 -.L3123: + b .L3187 +.L3186: adrp x0, RK29_NANDC_REG_BASE ldr x0, [x0,#:lo12:RK29_NANDC_REG_BASE] bl FlashInit - cbnz w0, .L3125 + cbnz w0, .L3188 bl FlashLoadFactorBbt - cbz w0, .L3126 + cbz w0, .L3189 bl FlashMakeFactorBbt -.L3126: +.L3189: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2232] + ldr x0, [x0,2216] bl FlashReadIdbDataRaw - cbz w0, .L3127 + cbz w0, .L3190 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -19953,74 +20356,74 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L3129: +.L3192: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L3129 + bne .L3192 cmp w0, 6 - bhi .L3130 + bhi .L3193 adrp x0, .LANCHOR0+89 strb w1, [x0,#:lo12:.LANCHOR0+89] - b .L3131 -.L3130: + b .L3194 +.L3193: mov w1, 0 mov w4, 1 -.L3133: +.L3196: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L3133 + bne .L3196 cmp w0, 17 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - bls .L3152 + bls .L3215 mov w1, 36 -.L3152: +.L3215: strb w1, [x0,89] -.L3131: +.L3194: adrp x1, .LANCHOR0+89 add x0, x19, :lo12:.LANCHOR2 ldrb w1, [x1,#:lo12:.LANCHOR0+89] - strh w1, [x0,1226] -.L3127: - adrp x0, .LC45 - adrp x1, .LC140 - add x1, x1, :lo12:.LC140 - add x0, x0, :lo12:.LC45 + strh w1, [x0,1218] +.L3190: + adrp x0, .LC47 + adrp x1, .LC144 + add x1, x1, :lo12:.LC144 + add x0, x0, :lo12:.LC47 add x19, x19, :lo12:.LANCHOR2 bl printk - add x0, x19, 1200 + add x0, x19, 1192 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x19,2296] + ldrh w0, [x19,2280] mov w19, 1 bl FtlFreeSysBlkQueueInit -.L3135: +.L3198: bl FtlLoadBbt - cbz w0, .L3136 -.L3154: + cbz w0, .L3199 +.L3217: bl FtlLowFormat cmp w19, 3 - bhi .L3155 + bhi .L3218 add w19, w19, 1 - b .L3135 -.L3155: + b .L3198 +.L3218: mov w0, -1 - b .L3124 -.L3136: + b .L3187 +.L3199: bl FtlSysBlkInit - cbnz w0, .L3154 - adrp x1, .LANCHOR1+3352 + cbnz w0, .L3217 + adrp x1, .LANCHOR1+3448 mov w2, 1 - str w2, [x1,#:lo12:.LANCHOR1+3352] -.L3124: + str w2, [x1,#:lo12:.LANCHOR1+3448] +.L3187: ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -20036,82 +20439,82 @@ Ftl_gc_temp_data_write_back: str x23, [sp,48] add x0, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x0,2944] - cbz w1, .L3157 -.L3160: + ldr w1, [x0,2928] + cbz w1, .L3220 +.L3223: mov w0, 0 - b .L3158 -.L3157: - ldrb w0, [x0,1228] + b .L3221 +.L3220: + ldrb w0, [x0,1220] adrp x22, .LANCHOR5 - cbz w0, .L3159 + cbz w0, .L3222 add x0, x22, :lo12:.LANCHOR5 - ldr w0, [x0,1184] - tbz x0, 0, .L3159 - adrp x0, .LANCHOR4+900 - ldrh w0, [x0,#:lo12:.LANCHOR4+900] - cbnz w0, .L3160 -.L3159: + ldr w0, [x0,1168] + tbz x0, 0, .L3222 + adrp x0, .LANCHOR4+884 + ldrh w0, [x0,#:lo12:.LANCHOR4+884] + cbnz w0, .L3223 +.L3222: add x0, x19, :lo12:.LANCHOR2 add x1, x22, :lo12:.LANCHOR5 mov w2, 0 mov w21, 0 mov w3, w2 mov w23, 56 - ldr x0, [x0,2544] - ldr w1, [x1,1184] + ldr x0, [x0,2528] + ldr w1, [x1,1168] bl FlashProgPages -.L3161: +.L3224: add x20, x22, :lo12:.LANCHOR5 - ldr w1, [x20,1184] + ldr w1, [x20,1168] cmp w21, w1 - bcs .L3171 + bcs .L3234 add x2, x19, :lo12:.LANCHOR2 umull x0, w21, w23 - ldr x4, [x2,2544] + ldr x4, [x2,2528] add x1, x4, x0 ldr w4, [x4,x0] cmn w4, #1 ldr x3, [x1,16] - bne .L3162 + bne .L3225 adrp x1, .LANCHOR4 - ldr x3, [x2,2728] + ldr x3, [x2,2712] add x1, x1, :lo12:.LANCHOR4 - ldrh w5, [x1,896] + ldrh w5, [x1,880] strh wzr, [x3,x5,lsl 1] - strh w4, [x1,896] - ldr w1, [x20,752] + strh w4, [x1,880] + ldr w1, [x20,736] add w1, w1, 1 - str w1, [x20,752] - ldr x1, [x2,2544] + str w1, [x20,736] + ldr x1, [x2,2528] add x0, x1, x0 ldr w0, [x0,4] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3170 -.L3162: + b .L3233 +.L3225: ldr w0, [x3,12] add w21, w21, 1 ldr w1, [x1,4] ldr w2, [x3,8] uxth w21, w21 bl FtlGcUpdatePage - b .L3161 -.L3171: + b .L3224 +.L3234: add x19, x19, :lo12:.LANCHOR2 - ldr x0, [x19,2544] + ldr x0, [x19,2528] bl FtlGcBufFree - str wzr, [x20,1184] - adrp x0, .LANCHOR4+900 - ldrh w0, [x0,#:lo12:.LANCHOR4+900] - cbnz w0, .L3160 + str wzr, [x20,1168] + adrp x0, .LANCHOR4+884 + ldrh w0, [x0,#:lo12:.LANCHOR4+884] + cbnz w0, .L3223 mov w0, 1 bl FtlGcFreeTempBlock -.L3170: +.L3233: mov w0, 1 -.L3158: +.L3221: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -20127,32 +20530,32 @@ Ftl_get_new_temp_ppa: str x19, [sp,16] adrp x19, .LANCHOR4 add x0, x19, :lo12:.LANCHOR4 - add x1, x0, 896 - ldrh w2, [x0,896] + add x1, x0, 880 + ldrh w2, [x0,880] mov w0, 65535 cmp w2, w0 - beq .L3173 + beq .L3236 ldrh w0, [x1,4] - cbnz w0, .L3174 -.L3173: + cbnz w0, .L3237 +.L3236: bl FtlCacheWriteBack mov w0, 0 bl FtlGcFreeTempBlock add x0, x19, :lo12:.LANCHOR4 - add x0, x0, 896 + add x0, x0, 880 strb wzr, [x0,8] bl allocate_data_superblock adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - strh wzr, [x0,1216] - strh wzr, [x0,1218] + strh wzr, [x0,1200] + strh wzr, [x0,1202] bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3174: +.L3237: add x0, x19, :lo12:.LANCHOR4 - add x0, x0, 896 + add x0, x0, 880 bl get_new_active_ppa ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -20164,175 +20567,179 @@ Ftl_get_new_temp_ppa: ftl_read: sub sp, sp, #224 mov w4, w0 - adrp x0, .LANCHOR1+3352 + adrp x0, .LANCHOR1+3448 stp x29, x30, [sp,16] add x29, sp, 16 - ldr w5, [x0,#:lo12:.LANCHOR1+3352] - stp x19, x20, [sp,32] stp x21, x22, [sp,48] + ldr w21, [x0,#:lo12:.LANCHOR1+3448] + mov w0, -1 + stp x19, x20, [sp,32] stp x23, x24, [sp,64] stp x25, x26, [sp,80] stp x27, x28, [sp,96] - cmn w5, #1 - mov w0, w5 - beq .L3176 + cmp w21, 1 + bne .L3239 cmp w4, 16 - mov x23, x3 - mov w26, w2 + mov x24, x3 + mov w25, w2 mov w20, w1 - bne .L3177 + bne .L3240 add w0, w1, 256 mov w1, w2 mov x2, x3 bl FtlVendorPartRead - b .L3176 -.L3177: + b .L3239 +.L3240: adrp x19, .LANCHOR2 - add w0, w1, w2 add x1, x19, :lo12:.LANCHOR2 + ldr w2, [x1,1224] + cmp w20, w2 + bcs .L3263 + cmp w25, w2 + bhi .L3263 + add w0, w20, w25 str w0, [x29,188] mov w0, -1 ldr w3, [x29,188] - ldr w2, [x1,1232] cmp w3, w2 - bhi .L3176 - adrp x21, .LANCHOR5 - ldrh w0, [x1,2366] - add x2, x21, :lo12:.LANCHOR5 - sub w25, w3, #1 + bhi .L3239 + adrp x22, .LANCHOR5 + ldrh w0, [x1,2350] + add x2, x22, :lo12:.LANCHOR5 + sub w26, w3, #1 udiv w28, w20, w0 - udiv w25, w25, w0 - ldr w0, [x2,1172] - add w0, w26, w0 - sub w24, w25, w28 - str w0, [x2,1172] - add w24, w24, 1 - ldr w0, [x1,2440] - add w0, w24, w0 - str w0, [x1,2440] + sub w21, w21, w28 + udiv w26, w26, w0 + ldr w0, [x2,1156] + add w0, w25, w0 + str w0, [x2,1156] + ldr w0, [x1,2424] + add w21, w21, w26 + add w0, w21, w0 + str w0, [x1,2424] mov w0, w28 - mov w1, w25 + mov w1, w26 bl FtlCacheMetchLpa - str x21, [x29,120] - cbz w0, .L3178 + str x22, [x29,120] + cbz w0, .L3241 bl FtlCacheWriteBack -.L3178: +.L3241: mov w27, 0 - adrp x0, .LC54 - add x0, x0, :lo12:.LC54 - mov w21, w28 + adrp x0, .LC57 + add x0, x0, :lo12:.LC57 + mov w22, w28 str w27, [x29,184] - mov w22, w27 + mov w23, w27 str w27, [x29,172] str x0, [x29,112] -.L3179: - cbz w24, .L3222 - mov w0, w21 +.L3242: + cbz w21, .L3286 + mov w0, w22 add x1, x29, 204 mov w2, 0 bl log2phys ldr w3, [x29,204] cmn w3, #1 - bne .L3220 + bne .L3284 mov w3, 0 -.L3180: +.L3243: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,2366] + ldrh w0, [x0,2350] cmp w3, w0 - bcs .L3184 - madd w0, w21, w0, w3 + bcs .L3247 + madd w0, w22, w0, w3 cmp w0, w20 - bcc .L3182 + bcc .L3245 ldr w1, [x29,188] cmp w0, w1 - bcs .L3182 + bcs .L3245 sub w0, w0, w20 mov w1, 0 ubfiz x0, x0, 9, 23 mov w2, 512 - add x0, x23, x0 + add x0, x24, x0 str x3, [x29,176] bl ftl_memset ldr x3, [x29,176] -.L3182: +.L3245: add w3, w3, 1 - b .L3180 -.L3220: + b .L3243 +.L3284: add x2, x19, :lo12:.LANCHOR2 mov w0, 56 - cmp w21, w28 - umull x1, w22, w0 - ldr x0, [x2,2536] + cmp w22, w28 + umull x1, w23, w0 + ldr x0, [x2,2520] add x0, x0, x1 str w3, [x0,4] - ldrh w0, [x2,2366] - bne .L3185 - ldr x3, [x2,2536] - ldr x2, [x2,2632] + ldrh w0, [x2,2350] + bne .L3248 + ldr x3, [x2,2520] + ldr x2, [x2,2616] add x3, x3, x1 str x2, [x3,8] udiv w2, w20, w0 msub w2, w2, w0, w20 str w2, [x29,144] sub w2, w0, w2 - cmp w2, w26 - csel w2, w2, w26, ls + cmp w2, w25 + csel w2, w2, w25, ls str w2, [x29,184] cmp w2, w0 - bne .L3186 - str x23, [x3,8] - b .L3186 -.L3185: - cmp w21, w25 - bne .L3187 - ldr x3, [x2,2536] - ldr x2, [x2,2640] + bne .L3249 + str x24, [x3,8] + b .L3249 +.L3248: + cmp w22, w26 + bne .L3250 + ldr x3, [x2,2520] + ldr x2, [x2,2624] add x3, x3, x1 ldr w4, [x29,188] str x2, [x3,8] - mul w2, w21, w0 + mul w2, w22, w0 sub w27, w4, w2 cmp w27, w0 - bne .L3186 + bne .L3249 sub w2, w2, w20 ubfiz x2, x2, 9, 23 - add x2, x23, x2 + add x2, x24, x2 str x2, [x3,8] - b .L3186 -.L3187: - ldr x2, [x2,2536] - mul w0, w21, w0 + b .L3249 +.L3250: + ldr x2, [x2,2520] + mul w0, w22, w0 add x2, x2, x1 sub w0, w0, w20 ubfiz x0, x0, 9, 23 - add x0, x23, x0 + add x0, x24, x0 str x0, [x2,8] -.L3186: +.L3249: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,2536] + ldr x0, [x2,2520] add x1, x0, x1 - ldrh w0, [x2,2372] - ldr x2, [x2,2664] - mul w0, w22, w0 - str w21, [x1,24] - add w22, w22, 1 + ldrh w0, [x2,2356] + ldr x2, [x2,2648] + mul w0, w23, w0 + str w22, [x1,24] + add w23, w23, 1 and x0, x0, 4294967292 add x0, x2, x0 str x0, [x1,16] -.L3184: - subs w24, w24, #1 - add w21, w21, 1 - beq .L3188 +.L3247: + subs w21, w21, #1 + add w22, w22, 1 + beq .L3251 add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,2292] - cmp w22, w0, lsl 3 - bne .L3179 -.L3188: - cbz w22, .L3179 + ldrh w0, [x0,2276] + cmp w23, w0, lsl 3 + bne .L3242 +.L3251: + cbz w23, .L3242 add x0, x19, :lo12:.LANCHOR2 - mov w1, w22 + mov w1, w23 mov w2, 0 - ldr x0, [x0,2536] + ldr x0, [x0,2520] bl FlashReadPages str xzr, [x29,176] ldr x0, [x29,144] @@ -20346,69 +20753,69 @@ ftl_read: ldr x0, [x29,120] add x0, x0, :lo12:.LANCHOR5 str x0, [x29,160] -.L3190: +.L3253: ldr w0, [x29,176] - cmp w22, w0 - bls .L3223 + cmp w23, w0 + bls .L3287 ldr x0, [x29,176] add x2, x19, :lo12:.LANCHOR2 mov x1, 56 mul x8, x0, x1 - ldr x0, [x2,2536] + ldr x0, [x2,2520] add x0, x0, x8 ldr w1, [x0,24] cmp w1, w28 - bne .L3191 + bne .L3254 ldr x1, [x0,8] - ldr x0, [x2,2632] + ldr x0, [x2,2616] cmp x1, x0 - bne .L3192 + bne .L3255 ldr x2, [x29,136] - mov x0, x23 + mov x0, x24 str x8, [x29,104] add x1, x1, x2 ldr w2, [x29,168] - b .L3221 -.L3191: - cmp w1, w25 - bne .L3192 + b .L3285 +.L3254: + cmp w1, w26 + bne .L3255 ldr x1, [x0,8] - ldr x0, [x2,2640] + ldr x0, [x2,2624] cmp x1, x0 - bne .L3192 - ldrh w0, [x2,2366] + bne .L3255 + ldrh w0, [x2,2350] ldr w2, [x29,132] str x8, [x29,104] - mul w0, w25, w0 + mul w0, w26, w0 sub w0, w0, w20 ubfiz x0, x0, 9, 23 - add x0, x23, x0 -.L3221: + add x0, x24, x0 +.L3285: bl ftl_memcpy ldr x8, [x29,104] -.L3192: +.L3255: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2536] + ldr x0, [x0,2520] add x2, x0, x8 ldr w1, [x0,x8] cmn w1, #1 - bne .L3193 + bne .L3256 ldr x0, [x29,160] str w1, [x29,172] - add x3, x0, 656 - ldr w0, [x0,728] + add x3, x0, 640 + ldr w0, [x0,712] add w0, w0, 1 str w0, [x3,72] -.L3193: +.L3256: ldr x0, [x2,16] ldr w1, [x2,24] ldr w0, [x0,8] cmp w1, w0 - beq .L3194 + beq .L3257 ldr x0, [x29,160] str x8, [x29,104] - add x1, x0, 656 - ldr w0, [x0,728] + add x1, x0, 640 + ldr w0, [x0,712] add w0, w0, 1 str w0, [x1,72] ldr x7, [x2,8] @@ -20425,35 +20832,38 @@ ftl_read: ldr w7, [x7] bl printk ldr x8, [x29,104] -.L3194: +.L3257: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2536] + ldr x0, [x0,2520] add x1, x0, x8 ldr w0, [x0,x8] cmp w0, 256 - bne .L3195 + bne .L3258 ldr w0, [x1,4] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3195: +.L3258: ldr x0, [x29,176] add x0, x0, 1 str x0, [x29,176] - b .L3190 -.L3223: - mov w22, 0 - b .L3179 -.L3222: + b .L3253 +.L3287: + mov w23, 0 + b .L3242 +.L3286: add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,2502] - cbz w0, .L3198 - mov w0, w24 + ldrh w0, [x19,2486] + cbz w0, .L3261 + mov w0, w21 mov w1, 1 bl ftl_do_gc -.L3198: +.L3261: ldr w0, [x29,172] -.L3176: + b .L3239 +.L3263: + mov w0, -1 +.L3239: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -20501,71 +20911,71 @@ ftl_sys_read: FtlInit: stp x29, x30, [sp, -64]! mov w0, -1 - adrp x1, .LC140 + adrp x1, .LC144 add x29, sp, 0 stp x23, x24, [sp,48] adrp x23, .LANCHOR1 - add x1, x1, :lo12:.LC140 + add x1, x1, :lo12:.LC144 add x23, x23, :lo12:.LANCHOR1 stp x21, x22, [sp,32] stp x19, x20, [sp,16] adrp x22, .LANCHOR2 adrp x20, .LANCHOR5 add x21, x22, :lo12:.LANCHOR2 - str w0, [x23,3352] + str w0, [x23,3448] add x20, x20, :lo12:.LANCHOR5 - adrp x0, .LC45 - add x0, x0, :lo12:.LC45 - str wzr, [x21,2944] - str wzr, [x20,1420] + adrp x0, .LC47 + add x0, x0, :lo12:.LC47 + str wzr, [x21,2928] + str wzr, [x20,1404] bl printk - add x0, x21, 1200 + add x0, x21, 1192 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh w0, [x21,2296] + ldrh w0, [x21,2280] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3227 - adrp x0, .LC157 - add x0, x0, :lo12:.LC157 - b .L3241 -.L3227: + cbz w0, .L3291 + adrp x0, .LC162 + add x0, x0, :lo12:.LC162 + b .L3305 +.L3291: bl FtlSysBlkInit mov w19, w0 - cbz w0, .L3229 - adrp x0, .LC158 - add x0, x0, :lo12:.LC158 -.L3241: + cbz w0, .L3293 + adrp x0, .LC163 + add x0, x0, :lo12:.LC163 +.L3305: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 - add x1, x1, 120 + add x1, x1, 256 bl printk - b .L3228 -.L3229: + b .L3292 +.L3293: mov w1, 1 - str w1, [x23,3352] + str w1, [x23,3448] bl ftl_do_gc adrp x1, .LANCHOR4 add x0, x1, :lo12:.LANCHOR4 mov x24, x1 - ldrh w0, [x0,792] + ldrh w0, [x0,776] cmp w0, 15 - bhi .L3230 + bhi .L3294 mov w23, 65535 add w21, w0, 2 -.L3233: - ldrh w0, [x20,608] +.L3297: + ldrh w0, [x20,592] cmp w0, w23 - bne .L3231 + bne .L3295 add x0, x22, :lo12:.LANCHOR2 - ldrh w0, [x0,2488] + ldrh w0, [x0,2472] cmp w0, w23 - bne .L3231 + bne .L3295 and w0, w19, 63 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3231: +.L3295: mov w0, 1 mov w1, w0 bl ftl_do_gc @@ -20573,24 +20983,24 @@ FtlInit: mov w1, 1 bl ftl_do_gc add x0, x24, :lo12:.LANCHOR4 - ldrh w0, [x0,792] + ldrh w0, [x0,776] cmp w0, w21 - bhi .L3228 + bhi .L3292 add w19, w19, 1 cmp w19, 4096 - bne .L3233 - b .L3228 -.L3230: - ldrb w0, [x21,1228] - cbz w0, .L3228 + bne .L3297 + b .L3292 +.L3294: + ldrb w0, [x21,1220] + cbz w0, .L3292 mov w19, 128 -.L3235: +.L3299: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3235 -.L3228: + bne .L3299 +.L3292: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -20616,64 +21026,68 @@ ftl_write: stp x27, x28, [sp,80] mov w23, w1 mov x25, x3 - ldr w1, [x2,2944] - cbnz w1, .L3243 + ldr w1, [x2,2928] + cbnz w1, .L3307 adrp x1, .LANCHOR1 str x1, [x29,176] add x3, x1, :lo12:.LANCHOR1 - ldr w3, [x3,3352] - cmn w3, #1 - beq .L3243 + ldr w3, [x3,3448] + cmp w3, 1 + bne .L3307 cmp w4, 16 - bne .L3244 + bne .L3308 add w0, w23, 256 mov w1, w24 mov x2, x25 bl FtlVendorPartWrite - b .L3243 -.L3244: - ldr w1, [x2,1232] + b .L3307 +.L3308: + ldr w1, [x2,1224] + cmp w23, w1 + bcs .L3350 + cmp w24, w1 + bhi .L3350 add w3, w23, w24 mov w0, -1 cmp w3, w1 - bhi .L3243 + bhi .L3307 adrp x4, .LANCHOR5 - ldrh w1, [x2,2366] + ldrh w1, [x2,2350] add x21, x4, :lo12:.LANCHOR5 sub w3, w3, #1 mov w0, 2048 str x4, [x29,216] udiv w26, w23, w1 cmp w24, w1, lsl 1 - str w0, [x21,1424] + str w0, [x21,1408] udiv w0, w3, w1 - ldr w3, [x2,2512] + ldr w3, [x2,2496] str w0, [x29,208] sub w27, w0, w26 add w20, w27, 1 - ldr w0, [x2,2424] + ldr w0, [x2,2408] add w0, w20, w0 - str w0, [x2,2424] - ldr w0, [x21,1168] + str w0, [x2,2408] + ldr w0, [x21,1152] add w0, w24, w0 - str w0, [x21,1168] + str w0, [x21,1152] cset w0, cs str w0, [x29,212] - cbz w3, .L3246 + cbz w3, .L3310 mov w0, 56 sub w3, w3, #1 umull x3, w3, w0 - ldr x0, [x2,2576] + ldr x0, [x2,2560] add x3, x0, x3 ldr w0, [x3,24] cmp w26, w0 - bne .L3247 - ldr w0, [x2,2432] + bne .L3311 + ldr w0, [x2,2416] add w0, w0, 1 - str w0, [x2,2432] - ldr w0, [x21,1428] + str w0, [x2,2416] + ldr w0, [x21,1412] add w0, w0, 1 - str w0, [x21,1428] + str w0, [x21,1412] msub w0, w26, w1, w23 sub w1, w1, w0 ubfiz x0, x0, 9, 23 @@ -20685,94 +21099,94 @@ ftl_write: mov w2, w20 mov x1, x25 bl ftl_memcpy - cbnz w27, .L3248 - ldr w0, [x21,1428] + cbnz w27, .L3312 + ldr w0, [x21,1412] cmp w0, 2 - bgt .L3248 -.L3282: + bgt .L3312 +.L3346: mov w0, 0 - b .L3243 -.L3248: + b .L3307 +.L3312: add x25, x25, x20 sub w24, w24, w19 add w23, w23, w19 add w26, w26, 1 mov w20, w27 -.L3247: +.L3311: ldr x0, [x29,216] add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,1428] -.L3246: + str wzr, [x0,1412] +.L3310: ldr w1, [x29,208] mov w0, w26 bl FtlCacheMetchLpa - cbz w0, .L3249 + cbz w0, .L3313 bl FtlCacheWriteBack -.L3249: +.L3313: ldr x0, [x29,216] adrp x2, .LANCHOR4 add x1, x2, :lo12:.LANCHOR4 str w26, [x29,192] add x0, x0, :lo12:.LANCHOR5 - add x21, x1, 800 + add x21, x1, 784 str x2, [x29,128] str x1, [x29,120] - str x21, [x0,1408] - adrp x0, .LC159 - add x0, x0, :lo12:.LC159 + str x21, [x0,1392] + adrp x0, .LC164 + add x0, x0, :lo12:.LC164 str x21, [x29,184] str x0, [x29,104] -.L3250: - cbz w20, .L3313 +.L3314: + cbz w20, .L3378 ldrh w0, [x21,4] - cbnz w0, .L3251 + cbnz w0, .L3315 ldr x1, [x29,184] cmp x21, x1 - bne .L3252 + bne .L3316 ldr x0, [x29,120] - add x0, x0, 848 + add x0, x0, 832 ldrh w19, [x0,4] - cbnz w19, .L3253 + cbnz w19, .L3317 bl allocate_new_data_superblock ldr x0, [x29,176] add x0, x0, :lo12:.LANCHOR1 - str w19, [x0,3360] -.L3253: + str w19, [x0,3456] +.L3317: ldr x0, [x29,184] bl allocate_new_data_superblock ldr x0, [x29,176] ldr x1, [x29,120] add x0, x0, :lo12:.LANCHOR1 - add x21, x1, 848 - ldr w0, [x0,3360] - cbnz w0, .L3254 -.L3255: + add x21, x1, 832 + ldr w0, [x0,3456] + cbnz w0, .L3318 +.L3319: ldr x21, [x29,184] - b .L3254 -.L3252: + b .L3318 +.L3316: ldr x1, [x29,176] add x1, x1, :lo12:.LANCHOR1 - str w0, [x1,3360] + str w0, [x1,3456] ldr x0, [x29,184] ldrh w0, [x0,4] - cbnz w0, .L3255 + cbnz w0, .L3319 mov x0, x21 bl allocate_new_data_superblock -.L3254: +.L3318: ldrh w0, [x21,4] - cbnz w0, .L3256 + cbnz w0, .L3320 mov x0, x21 bl allocate_new_data_superblock -.L3256: +.L3320: ldr x0, [x29,216] add x0, x0, :lo12:.LANCHOR5 - str x21, [x0,1408] -.L3251: + str x21, [x0,1392] +.L3315: add x2, x22, :lo12:.LANCHOR2 ldrh w1, [x21,4] str xzr, [x29,200] - ldr w0, [x2,2508] - ldr w2, [x2,2512] + ldr w0, [x2,2492] + ldr w2, [x2,2496] sub w0, w0, w2 cmp w1, w0 csel w0, w1, w0, ls @@ -20784,29 +21198,29 @@ ftl_write: str w0, [x29,116] add w0, w24, w23 str w0, [x29,152] -.L3257: +.L3321: ldr w0, [x29,200] ldr w2, [x29,156] ldr w1, [x29,192] cmp w0, w2 add w28, w1, w0 - bcs .L3314 + bcs .L3379 ldrh w1, [x21,4] - cbz w1, .L3289 + cbz w1, .L3354 ldr w1, [x29,208] cmp w28, w1 cset w6, eq - cbz w0, .L3259 + cbz w0, .L3323 ldr w1, [x29,116] tst w6, w1 - beq .L3259 + beq .L3323 add x1, x22, :lo12:.LANCHOR2 ldr w2, [x29,152] - ldrh w1, [x1,2366] + ldrh w1, [x1,2350] msub w2, w28, w1, w2 cmp w2, w1 - bne .L3289 -.L3259: + bne .L3354 +.L3323: add x1, x29, 228 mov w2, 0 mov w0, w28 @@ -20815,28 +21229,28 @@ ftl_write: bl log2phys mov x0, x21 bl get_new_active_ppa - ldr w5, [x19,2512] + ldr w5, [x19,2496] mov w4, 56 - ldr x2, [x19,2576] + ldr x2, [x19,2560] str x4, [x29,160] umull x1, w5, w4 add x2, x2, x1 str w0, [x2,4] - ldrh w2, [x19,2372] - ldr x0, [x19,2576] + ldrh w2, [x19,2356] + ldr x0, [x19,2560] add x1, x0, x1 mul w0, w2, w5 and x0, x0, 4294967292 str x0, [x29,144] - ldr x0, [x19,2680] + ldr x0, [x19,2664] ldr x3, [x29,144] str x0, [x29,136] add x27, x0, x3 - ldrh w0, [x19,2370] + ldrh w0, [x19,2354] str x27, [x1,16] str w28, [x1,24] mul w0, w0, w5 - ldr x5, [x19,2624] + ldr x5, [x19,2608] and x0, x0, 4294967292 add x0, x5, x0 str x0, [x1,8] @@ -20846,65 +21260,65 @@ ftl_write: cmp w28, w26 cset w0, eq str w0, [x29,196] - cbnz w0, .L3293 + cbnz w0, .L3358 ldr x6, [x29,96] ldr x4, [x29,160] - cbz w6, .L3260 + cbz w6, .L3324 ldr w0, [x29,152] - ldrh w19, [x19,2366] + ldrh w19, [x19,2350] msub w19, w28, w19, w0 ldr w0, [x29,196] str w0, [x29,160] uxth w19, w19 - b .L3263 -.L3293: - ldrh w19, [x19,2366] + b .L3327 +.L3358: + ldrh w19, [x19,2350] udiv w0, w23, w19 msub w0, w0, w19, w23 str w0, [x29,160] sub w19, w19, w0 cmp w19, w24 csel w19, w19, w24, ls -.L3263: +.L3327: add x2, x22, :lo12:.LANCHOR2 - ldrh w0, [x2,2366] + ldrh w0, [x2,2350] cmp w19, w0 - bne .L3264 + bne .L3328 ldr w0, [x29,196] mov x1, x25 - cbnz w0, .L3265 + cbnz w0, .L3329 mul w1, w19, w28 sub w1, w1, w23 ubfiz x1, x1, 9, 23 add x1, x25, x1 -.L3265: +.L3329: ldr w2, [x29,212] mov w0, 56 add x4, x22, :lo12:.LANCHOR2 - cbz w2, .L3266 - ldr w2, [x4,2512] + cbz w2, .L3330 + ldr w2, [x4,2496] umull x0, w2, w0 - ldr x2, [x4,2576] + ldr x2, [x4,2560] add x0, x2, x0 - b .L3311 -.L3266: - ldr w2, [x4,2512] + b .L3376 +.L3330: + ldr w2, [x4,2496] umull x0, w2, w0 - ldr x2, [x4,2576] + ldr x2, [x4,2560] add x0, x2, x0 - ldrh w2, [x4,2370] + ldrh w2, [x4,2354] ldr x0, [x0,8] - b .L3312 -.L3264: + b .L3377 +.L3328: ldr w0, [x29,228] cmn w0, #1 - beq .L3268 + beq .L3332 str w0, [x29,236] mov w1, 56 - ldr w0, [x2,2512] + ldr w0, [x2,2496] str w28, [x29,256] umull x0, w0, w1 - ldr x1, [x2,2576] + ldr x1, [x2,2560] mov w2, 0 add x0, x1, x0 ldr x1, [x0,8] @@ -20916,200 +21330,202 @@ ftl_write: bl FlashReadPages ldr w0, [x29,232] cmn w0, #1 - bne .L3269 + bne .L3333 ldr x0, [x29,216] add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,728] + ldr w1, [x0,712] add w1, w1, 1 - str w1, [x0,728] - b .L3271 -.L3269: + str w1, [x0,712] + b .L3335 +.L3333: ldr w0, [x27,8] cmp w0, w28 - beq .L3271 + beq .L3335 ldr x0, [x29,216] mov w2, w28 add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,728] + ldr w1, [x0,712] add w1, w1, 1 - str w1, [x0,728] + str w1, [x0,712] ldr x0, [x29,104] ldr w1, [x27,8] bl printk - b .L3271 -.L3268: - ldr w0, [x2,2512] + b .L3335 +.L3332: + ldr w0, [x2,2496] mov w1, 56 umull x0, w0, w1 - ldr x1, [x2,2576] - ldrh w2, [x2,2370] + ldr x1, [x2,2560] + ldrh w2, [x2,2354] add x0, x1, x0 mov w1, 0 ldr x0, [x0,8] bl ftl_memset -.L3271: +.L3335: ldr w1, [x29,196] mov w0, 56 lsl w2, w19, 9 - cbz w1, .L3272 + cbz w1, .L3336 add x1, x22, :lo12:.LANCHOR2 - ldr w4, [x1,2512] + ldr w4, [x1,2496] umull x0, w4, w0 - ldr x4, [x1,2576] + ldr x4, [x1,2560] add x4, x4, x0 ldr x0, [x29,160] ubfiz x0, x0, 9, 23 ldr x1, [x4,8] add x0, x1, x0 mov x1, x25 - b .L3312 -.L3272: + b .L3377 +.L3336: add x5, x22, :lo12:.LANCHOR2 - ldr w4, [x5,2512] - ldr x1, [x5,2576] + ldr w4, [x5,2496] + ldr x1, [x5,2560] umull x0, w4, w0 add x0, x1, x0 - ldrh w1, [x5,2366] + ldrh w1, [x5,2350] mul w1, w28, w1 ldr x0, [x0,8] sub w1, w1, w23 ubfiz x1, x1, 9, 23 add x1, x25, x1 - b .L3312 -.L3260: + b .L3377 +.L3324: ldr w0, [x29,212] - ldrh w1, [x19,2366] - ldr w2, [x19,2512] - cbz w0, .L3273 + ldrh w1, [x19,2350] + ldr w2, [x19,2496] + cbz w0, .L3337 mul w1, w28, w1 umull x0, w2, w4 sub w1, w1, w23 - ldr x2, [x19,2576] + ldr x2, [x19,2560] ubfiz x1, x1, 9, 23 add x0, x2, x0 add x1, x25, x1 -.L3311: +.L3376: str x1, [x0,8] - b .L3267 -.L3273: + b .L3331 +.L3337: umull x0, w2, w4 - ldr x2, [x19,2576] + ldr x2, [x19,2560] mul w1, w28, w1 add x0, x2, x0 - ldrh w2, [x19,2370] + ldrh w2, [x19,2354] sub w1, w1, w23 ubfiz x1, x1, 9, 23 ldr x0, [x0,8] add x1, x25, x1 -.L3312: +.L3377: bl ftl_memcpy -.L3267: +.L3331: ldr x1, [x29,136] mov w0, -3947 ldr x2, [x29,144] strh w0, [x1,x2] add x1, x22, :lo12:.LANCHOR2 str w28, [x27,8] - ldr w0, [x1,2416] + ldr w0, [x1,2400] str w0, [x27,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x1,2416] + str w0, [x1,2400] ldr w0, [x29,228] str w0, [x27,12] ldrh w0, [x21] strh w0, [x27,2] - ldr w0, [x1,2512] + ldr w0, [x1,2496] add w0, w0, 1 - str w0, [x1,2512] + str w0, [x1,2496] ldr x0, [x29,200] add x0, x0, 1 str x0, [x29,200] - b .L3257 -.L3314: + b .L3321 +.L3379: str w28, [x29,192] mov x0, x2 - b .L3258 -.L3289: + b .L3322 +.L3354: str w28, [x29,192] -.L3258: +.L3322: sub w20, w20, w0 ldr w0, [x29,212] - cbnz w0, .L3277 + cbnz w0, .L3341 add x0, x22, :lo12:.LANCHOR2 - ldr w1, [x0,2512] - ldr w0, [x0,2508] + ldr w1, [x0,2496] + ldr w0, [x0,2492] cmp w1, w0 - bcs .L3277 + bcs .L3341 ldrh w0, [x21,4] - cbz w0, .L3277 -.L3279: + cbz w0, .L3341 +.L3343: str wzr, [x29,212] - b .L3250 -.L3277: + b .L3314 +.L3341: bl FtlCacheWriteBack add x0, x22, :lo12:.LANCHOR2 cmp w20, 1 - str wzr, [x0,2512] - bhi .L3250 - b .L3279 -.L3313: + str wzr, [x0,2496] + bhi .L3314 + b .L3343 +.L3378: ldr w1, [x29,208] mov w0, w20 sub w1, w1, w26 bl ftl_do_gc ldr x0, [x29,128] add x0, x0, :lo12:.LANCHOR4 - ldrh w0, [x0,792] + ldrh w0, [x0,776] cmp w0, 5 - bls .L3281 + bls .L3345 cmp w0, 31 - bhi .L3282 + bhi .L3346 adrp x0, .LANCHOR0+88 ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbnz w0, .L3282 -.L3281: + cbnz w0, .L3346 +.L3345: ldr x0, [x29,216] mov w19, 65535 mov w23, 128 add x24, x0, :lo12:.LANCHOR5 -.L3304: - ldrh w0, [x24,608] +.L3369: + ldrh w0, [x24,592] cmp w0, w19 - bne .L3283 + bne .L3347 add x0, x22, :lo12:.LANCHOR2 - ldrh w1, [x0,2488] + ldrh w1, [x0,2472] cmp w1, w19 - bne .L3283 - ldrh w0, [x0,2490] + bne .L3347 + ldrh w0, [x0,2474] cmp w0, w19 - bne .L3283 + bne .L3347 and w0, w20, 7 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3283: +.L3347: add x21, x22, :lo12:.LANCHOR2 mov w0, 1 mov w1, w0 - strh w23, [x21,2498] - strh w23, [x21,2496] + strh w23, [x21,2482] + strh w23, [x21,2480] bl ftl_do_gc mov w0, 0 mov w1, 1 bl ftl_do_gc - ldr w0, [x21,2944] - cbnz w0, .L3282 + ldr w0, [x21,2928] + cbnz w0, .L3346 ldr x0, [x29,128] add x0, x0, :lo12:.LANCHOR4 - ldrh w0, [x0,792] + ldrh w0, [x0,776] cmp w0, 2 - bhi .L3282 + bhi .L3346 add w20, w20, 1 cmp w20, 256 - bne .L3304 - b .L3282 -.L3243: + bne .L3369 + b .L3346 +.L3350: + mov w0, -1 +.L3307: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -21161,103 +21577,103 @@ ftl_fix_nand_power_lost_error: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldrb w1, [x0,1228] - cbz w1, .L3317 + ldrb w1, [x0,1220] + cbz w1, .L3382 adrp x21, .LANCHOR5 - ldr x2, [x0,2728] + ldr x2, [x0,2712] add x1, x21, :lo12:.LANCHOR5 - adrp x24, .LC160 + adrp x24, .LC165 adrp x20, .LANCHOR4 - add x0, x24, :lo12:.LC160 + add x0, x24, :lo12:.LC165 add x20, x20, :lo12:.LANCHOR4 - ldrh w23, [x1,1258] - add x26, x20, 800 - add x25, x20, 848 + ldrh w23, [x1,1242] + add x26, x20, 784 + add x25, x20, 832 ubfiz x22, x23, 1, 16 mov w1, w23 ldrh w2, [x2,x22] bl printk - ldrh w0, [x20,800] + ldrh w0, [x20,784] bl FtlGcRefreshOpenBlock - ldrh w0, [x20,848] + ldrh w0, [x20,832] mov w20, 4097 bl FtlGcRefreshOpenBlock mov x0, x26 bl allocate_new_data_superblock mov x0, x25 bl allocate_new_data_superblock -.L3319: +.L3384: subs w20, w20, #1 - beq .L3323 + beq .L3388 mov w0, 1 mov w1, w0 bl ftl_do_gc add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2728] + ldr x0, [x0,2712] ldrh w0, [x0,x22] - cbnz w0, .L3319 -.L3323: + cbnz w0, .L3384 +.L3388: add x20, x19, :lo12:.LANCHOR2 - add x0, x24, :lo12:.LC160 + add x0, x24, :lo12:.LC165 mov w1, w23 - ldr x2, [x20,2728] + ldr x2, [x20,2712] ldrh w2, [x2,x22] bl printk - ldr x0, [x20,2728] + ldr x0, [x20,2712] ldrh w0, [x0,x22] - cbnz w0, .L3321 + cbnz w0, .L3386 add x0, x29, 80 strh w23, [x29,80] bl make_superblock mov x0, 0 - ldrh w5, [x20,2292] + ldrh w5, [x20,2276] mov w6, 65535 mov w20, w0 mov w7, 56 -.L3324: +.L3389: cmp w5, w0, uxth - bls .L3331 + bls .L3396 add x1, x29, 80 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w6 - beq .L3325 + beq .L3390 add x4, x19, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x1, w20, w7 add w20, w20, 1 - ldr x3, [x4,2560] + ldr x3, [x4,2544] uxth w20, w20 add x3, x3, x1 str w2, [x3,4] - ldr x2, [x4,2560] + ldr x2, [x4,2544] add x1, x2, x1 str xzr, [x1,8] str xzr, [x1,16] -.L3325: +.L3390: add x0, x0, 1 - b .L3324 -.L3331: + b .L3389 +.L3396: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC161 + adrp x0, .LC166 mov w1, w23 - add x0, x0, :lo12:.LC161 - ldr x2, [x19,2728] + add x0, x0, :lo12:.LC166 + ldr x2, [x19,2712] ldrh w2, [x2,x22] bl printk - ldr x0, [x19,2560] + ldr x0, [x19,2544] mov w1, 0 mov w2, w20 bl FlashEraseBlocks - ldr x0, [x19,2560] + ldr x0, [x19,2544] mov w1, 1 mov w2, w20 bl FlashEraseBlocks -.L3321: +.L3386: add x21, x21, :lo12:.LANCHOR5 mov w0, -1 - strh w0, [x21,1258] -.L3317: + strh w0, [x21,1242] +.L3382: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -21478,6 +21894,7 @@ ftl_fix_nand_power_lost_error: .global gNandMaxChip .global gNandMaxDie .global gFlashInterfaceMode + .global gFlashCurMode .global gFlashSlcMode .global gFlashOnfiModeEn .global gFlashToggleModeEn @@ -21494,38 +21911,175 @@ ftl_fix_nand_power_lost_error: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.20884, %object - .size __func__.20884, 11 -__func__.20884: + .type samsung_14nm_slc_rr, %object + .size samsung_14nm_slc_rr, 26 +samsung_14nm_slc_rr: + .byte 0 + .byte 10 + .byte -10 + .byte 20 + .byte -20 + .byte 30 + .byte -30 + .byte 40 + .byte -40 + .byte 50 + .byte -50 + .byte 60 + .byte -60 + .byte -70 + .byte -80 + .byte -90 + .byte -100 + .byte -110 + .byte -120 + .byte -9 + .byte 70 + .byte 80 + .byte 90 + .byte -125 + .byte -115 + .byte 100 + .zero 6 + .type samsung_14nm_mlc_rr, %object + .size samsung_14nm_mlc_rr, 104 +samsung_14nm_mlc_rr: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -4 + .byte 3 + .byte -4 + .byte -6 + .byte 6 + .byte 0 + .byte 6 + .byte -10 + .byte -10 + .byte 4 + .byte -10 + .byte 16 + .byte 12 + .byte -4 + .byte 12 + .byte 8 + .byte -16 + .byte 10 + .byte -16 + .byte 24 + .byte 18 + .byte -14 + .byte 18 + .byte -4 + .byte -22 + .byte -16 + .byte -22 + .byte -8 + .byte 24 + .byte -9 + .byte 24 + .byte 8 + .byte -28 + .byte -4 + .byte -28 + .byte 16 + .byte 30 + .byte 10 + .byte 30 + .byte 10 + .byte -34 + .byte 6 + .byte -34 + .byte 0 + .byte 36 + .byte -8 + .byte 36 + .byte -8 + .byte -40 + .byte -2 + .byte -40 + .byte -20 + .byte -46 + .byte -4 + .byte -46 + .byte -30 + .byte 3 + .byte 0 + .byte 3 + .byte -3 + .byte -2 + .byte -4 + .byte -2 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -10 + .byte -6 + .byte -8 + .byte -6 + .byte -14 + .byte -9 + .byte -8 + .byte -9 + .byte -18 + .byte -52 + .byte 22 + .byte -52 + .byte 10 + .byte 42 + .byte 4 + .byte 42 + .byte 4 + .byte 48 + .byte -9 + .byte 48 + .byte 4 + .byte -58 + .byte 12 + .byte -58 + .byte 0 + .byte -64 + .byte -24 + .byte -64 + .byte -6 + .byte 9 + .byte 18 + .byte 9 + .byte 8 + .type __func__.20983, %object + .size __func__.20983, 11 +__func__.20983: .string "FtlMemInit" .zero 5 - .type __func__.21627, %object - .size __func__.21627, 12 -__func__.21627: + .type __func__.21730, %object + .size __func__.21730, 12 +__func__.21730: .string "FtlCheckVpc" .zero 4 - .type __func__.21659, %object - .size __func__.21659, 17 -__func__.21659: + .type __func__.21762, %object + .size __func__.21762, 17 +__func__.21762: .string "FtlDumpBlockInfo" .zero 7 - .type __func__.21678, %object - .size __func__.21678, 16 -__func__.21678: + .type __func__.21781, %object + .size __func__.21781, 16 +__func__.21781: .string "FtlScanAllBlock" - .type __func__.21944, %object - .size __func__.21944, 17 -__func__.21944: + .type __func__.22049, %object + .size __func__.22049, 17 +__func__.22049: .string "ftl_scan_all_ppa" .zero 7 - .type __func__.21926, %object - .size __func__.21926, 21 -__func__.21926: + .type __func__.22029, %object + .size __func__.22029, 21 +__func__.22029: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.20957, %object - .size __func__.20957, 8 -__func__.20957: + .type __func__.21056, %object + .size __func__.21056, 8 +__func__.21056: .string "FtlInit" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -21553,304 +22107,314 @@ __func__.20957: .LC11: .string "micron RR %d row=%x,count %d,status=%d\n" .LC12: - .string "ECC:%d\n" + .string "samsung RR %d row=%x,count %d,status=%d\n" .LC13: - .string "No.%d FLASH ID:%x %x %x %x %x %x\n" + .string "ECC:%d\n" .LC14: - .string "FlashLoadPhyInfo fail %x!!\n" + .string "No.%d FLASH ID:%x %x %x %x %x %x\n" .LC15: - .string "Read pageadd=%x ecc=%x err=%x\n" + .string "FlashLoadPhyInfo fail %x!!\n" .LC16: - .string "data:" + .string "Read pageadd=%x ecc=%x err=%x\n" .LC17: - .string "spare:" + .string "data:" .LC18: - .string "ReadRetry pageadd=%x ecc=%x err=%x\n" + .string "spare:" .LC19: - .string "FLFB:%d %d\n" + .string "ReadRetry pageadd=%x ecc=%x err=%x\n" .LC20: - .string "prog error: = %x\n" + .string "FLFB:%d %d\n" .LC21: - .string "prog read error: = %x\n" + .string "prog error: = %x\n" .LC22: - .string "prog read s error: = %x %x %x\n" + .string "prog read error: = %x\n" .LC23: - .string "prog read d error: = %x %x %x\n" + .string "prog read REFRESH: = %x\n" .LC24: - .string "FlashMakeFactorBbt %d\n" + .string "prog read s error: = %x %x %x\n" .LC25: - .string "bad block:%d %d\n" + .string "prog read d error: = %x %x %x\n" .LC26: - .string "FMFB:%d %d\n" + .string "FlashMakeFactorBbt %d\n" .LC27: - .string "E:bad block:%d\n" + .string "bad block:%d %d\n" .LC28: - .string "FMFB:Save %d %d\n" + .string "FMFB:%d %d\n" .LC29: - .string "%s error allocating memory. return -1\n" + .string "E:bad block:%d\n" .LC30: - .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" + .string "FMFB:Save %d %d\n" .LC31: - .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" + .string "%s error allocating memory. return -1\n" .LC32: - .string "FtlBbmTblFlush error:%x\n" + .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" .LC33: - .string "FtlBbmTblFlush error = %x error count = %d\n" + .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" .LC34: - .string "FtlFreeSysBlkQueueOut free count = %d\n" + .string "FtlBbmTblFlush error:%x\n" .LC35: - .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" + .string "FtlBbmTblFlush error = %x error count = %d\n" .LC36: - .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" + .string "FtlFreeSysBlkQueueOut free count = %d\n" .LC37: - .string "FtlMapWritePage error = %x\n" + .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" .LC38: - .string "FtlMapWritePage error = %x error count = %d\n" + .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" .LC39: - .string "page map lost: %x %x\n" + .string "FtlMapWritePage error = %x\n" .LC40: - .string "region_id = %x phyAddr = %x\n" + .string "FtlMapWritePage error = %x error count = %d\n" .LC41: - .string "map_ppn:" + .string "page map lost: %x %x\n" .LC42: - .string "load_l2p_region refresh = %x phyAddr = %x\n" + .string "region_id = %x phyAddr = %x\n" .LC43: - .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" + .string "map_ppn:" .LC44: - .string "FtlVpcTblFlush error = %x error count = %d\n" + .string "load_l2p_region refresh = %x phyAddr = %x\n" .LC45: - .string "%s\n" + .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" .LC46: - .string "no ect" + .string "FtlVpcTblFlush error = %x error count = %d\n" .LC47: - .string "...%s enter...\n" + .string "%s\n" .LC48: - .string "FtlCheckVpc2 %x = %x %x\n" + .string "no ect" .LC49: - .string "free blk vpc error %x = %x %x\n" + .string "...%s enter...\n" .LC50: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" + .string "FtlCheckVpc2 %x = %x %x\n" .LC51: - .string ":" + .string "free blk vpc error %x = %x %x\n" .LC52: - .string "Ftlscanalldata = %x\n" + .string "error_flag %x\n" .LC53: - .string "scan lpa = %x ppa= %x\n" + .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" .LC54: - .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" + .string ":" .LC55: - .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "Ftlscanalldata = %x\n" .LC56: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "scan lpa = %x ppa= %x\n" .LC57: - .string "Mblk:" + .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .LC58: - .string "L2P:" + .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .LC59: - .string "L2PC:" + .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" .LC60: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n" + .string "Mblk:" .LC61: - .string "superBlkID = %x vpc=%x\n" + .string "L2P:" .LC62: - .string "flashmode = %x pagenum = %x %x\n" + .string "L2PC:" .LC63: - .string "blk = %x vpc=%x mode = %x\n" + .string "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n" .LC64: - .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "superBlkID = %x vpc=%x\n" .LC65: - .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "flashmode = %x pagenum = %x %x\n" .LC66: - .string "slc mode" + .string "blk = %x vpc=%x mode = %x\n" .LC67: - .string "ftl_scan_all_ppa blk %x page %x\n" + .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" .LC68: - .string "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n" + .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" .LC69: - .string "%s finished\n" + .string "slc mode" .LC70: - .string "FLASH INFO:\n" + .string "ftl_scan_all_ppa blk %x page %x flag: %x\n" .LC71: - .string "FLASH ID: %x\n" + .string "ftl_scan_all_ppa blk %x page %x flag: %x ............... is bad block\n" .LC72: - .string "Device Capacity: %d MB\n" + .string "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n" .LC73: - .string "FMWAIT: %x %x %x %x\n" + .string "%s finished\n" .LC74: - .string "FTL INFO:\n" + .string "FLASH INFO:\n" .LC75: - .string "g_MaxLpn = 0x%x\n" + .string "FLASH ID: %x\n" .LC76: - .string "g_VaildLpn = 0x%x\n" + .string "Device Capacity: %d MB\n" .LC77: - .string "read_page_count = 0x%x\n" + .string "FMWAIT: %x %x %x %x\n" .LC78: - .string "discard_page_count = 0x%x\n" + .string "FTL INFO:\n" .LC79: - .string "write_page_count = 0x%x\n" + .string "g_MaxLpn = 0x%x\n" .LC80: - .string "cache_write_count = 0x%x\n" + .string "g_VaildLpn = 0x%x\n" .LC81: - .string "l2p_write_count = 0x%x\n" + .string "read_page_count = 0x%x\n" .LC82: - .string "gc_page_count = 0x%x\n" + .string "discard_page_count = 0x%x\n" .LC83: - .string "totle_write = %d MB\n" + .string "write_page_count = 0x%x\n" .LC84: - .string "totle_read = %d MB\n" + .string "cache_write_count = 0x%x\n" .LC85: - .string "GSV = 0x%x\n" + .string "l2p_write_count = 0x%x\n" .LC86: - .string "GDV = 0x%x\n" + .string "gc_page_count = 0x%x\n" .LC87: - .string "bad blk num = %d %d\n" + .string "totle_write = %d MB\n" .LC88: - .string "free_superblocks = 0x%x\n" + .string "totle_read = %d MB\n" .LC89: - .string "mlc_EC = 0x%x\n" + .string "GSV = 0x%x\n" .LC90: - .string "slc_EC = 0x%x\n" + .string "GDV = 0x%x\n" .LC91: - .string "avg_EC = 0x%x\n" + .string "bad blk num = %d %d\n" .LC92: - .string "sys_EC = 0x%x\n" + .string "free_superblocks = 0x%x\n" .LC93: - .string "max_EC = 0x%x\n" + .string "mlc_EC = 0x%x\n" .LC94: - .string "min_EC = 0x%x\n" + .string "slc_EC = 0x%x\n" .LC95: - .string "PLT = 0x%x\n" + .string "avg_EC = 0x%x\n" .LC96: - .string "POT = 0x%x\n" + .string "sys_EC = 0x%x\n" .LC97: - .string "MaxSector = 0x%x\n" + .string "max_EC = 0x%x\n" .LC98: - .string "init_sys_blks_pp = 0x%x\n" + .string "min_EC = 0x%x\n" .LC99: - .string "sys_blks_pp = 0x%x\n" + .string "PLT = 0x%x\n" .LC100: - .string "free sysblock = 0x%x\n" + .string "POT = 0x%x\n" .LC101: - .string "data_blks_pp = 0x%x\n" + .string "MaxSector = 0x%x\n" .LC102: - .string "data_op_blks_pp = 0x%x\n" + .string "init_sys_blks_pp = 0x%x\n" .LC103: - .string "max_data_blks = 0x%x\n" + .string "sys_blks_pp = 0x%x\n" .LC104: - .string "Sys.id = 0x%x\n" + .string "free sysblock = 0x%x\n" .LC105: - .string "Bbt.id = 0x%x\n" + .string "data_blks_pp = 0x%x\n" .LC106: - .string "ACT.page = 0x%x\n" + .string "data_op_blks_pp = 0x%x\n" .LC107: - .string "ACT.plane = 0x%x\n" + .string "max_data_blks = 0x%x\n" .LC108: - .string "ACT.id = 0x%x\n" + .string "Sys.id = 0x%x\n" .LC109: - .string "ACT.mode = 0x%x\n" + .string "Bbt.id = 0x%x\n" .LC110: - .string "ACT.a_pages = 0x%x\n" + .string "ACT.page = 0x%x\n" .LC111: - .string "ACT VPC = 0x%x\n" + .string "ACT.plane = 0x%x\n" .LC112: - .string "BUF.page = 0x%x\n" + .string "ACT.id = 0x%x\n" .LC113: - .string "BUF.plane = 0x%x\n" + .string "ACT.mode = 0x%x\n" .LC114: - .string "BUF.id = 0x%x\n" + .string "ACT.a_pages = 0x%x\n" .LC115: - .string "BUF.mode = 0x%x\n" + .string "ACT VPC = 0x%x\n" .LC116: - .string "BUF.a_pages = 0x%x\n" + .string "BUF.page = 0x%x\n" .LC117: - .string "BUF VPC = 0x%x\n" + .string "BUF.plane = 0x%x\n" .LC118: - .string "TMP.page = 0x%x\n" + .string "BUF.id = 0x%x\n" .LC119: - .string "TMP.plane = 0x%x\n" + .string "BUF.mode = 0x%x\n" .LC120: - .string "TMP.id = 0x%x\n" + .string "BUF.a_pages = 0x%x\n" .LC121: - .string "TMP.mode = 0x%x\n" + .string "BUF VPC = 0x%x\n" .LC122: - .string "TMP.a_pages = 0x%x\n" + .string "TMP.page = 0x%x\n" .LC123: - .string "GC.page = 0x%x\n" + .string "TMP.plane = 0x%x\n" .LC124: - .string "GC.plane = 0x%x\n" + .string "TMP.id = 0x%x\n" .LC125: - .string "GC.id = 0x%x\n" + .string "TMP.mode = 0x%x\n" .LC126: - .string "GC.mode = 0x%x\n" + .string "TMP.a_pages = 0x%x\n" .LC127: - .string "GC.a_pages = 0x%x\n" + .string "GC.page = 0x%x\n" .LC128: - .string "WR_CHK = 0x%x %x %x %x\n" + .string "GC.plane = 0x%x\n" .LC129: - .string "Read Err = 0x%x\n" + .string "GC.id = 0x%x\n" .LC130: - .string "Prog Err = 0x%x\n" + .string "GC.mode = 0x%x\n" .LC131: - .string "gc_free_blk_th= 0x%x\n" + .string "GC.a_pages = 0x%x\n" .LC132: - .string "gc_merge_free_blk_th= 0x%x\n" + .string "WR_CHK = 0x%x %x %x %x\n" .LC133: - .string "gc_skip_write_count= 0x%x\n" + .string "Read Err = 0x%x\n" .LC134: - .string "gc_blk_index= 0x%x\n" + .string "Prog Err = 0x%x\n" .LC135: - .string "free min EC= 0x%x\n" + .string "gc_free_blk_th= 0x%x\n" .LC136: - .string "free max EC= 0x%x\n" + .string "gc_merge_free_blk_th= 0x%x\n" .LC137: - .string "GC__SB VPC = 0x%x\n" + .string "gc_skip_write_count= 0x%x\n" .LC138: - .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" + .string "gc_blk_index= 0x%x\n" .LC139: - .string "free %d. [0x%x] 0x%x 0x%x\n" + .string "free min EC= 0x%x\n" .LC140: - .string "FTL version: 5.0.60 20200218" + .string "free max EC= 0x%x\n" .LC141: - .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" + .string "GC__SB VPC = 0x%x\n" .LC142: - .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" + .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" .LC143: - .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" + .string "free %d. [0x%x] 0x%x 0x%x\n" .LC144: - .string "FtlGcRefreshBlock 0x%x\n" + .string "FTL version: 5.0.63 20200923" .LC145: - .string "FtlGcMarkBadPhyBlk %d 0x%x\n" + .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" .LC146: - .string "FtlGcFreeBadSuperBlk 0x%x\n" + .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" .LC147: - .string "decrement_vpc_count %x = %d\n" + .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" .LC148: - .string "decrement_vpc_count %x = %d in free list\n" + .string "FtlGcRefreshBlock 0x%x\n" .LC149: - .string "RSB refresh addr %x\n" + .string "FtlGcMarkBadPhyBlk %d 0x%x\n" .LC150: - .string "spuer block %x vpn is 0\n " + .string "FtlGcFreeBadSuperBlk 0x%x\n" .LC151: - .string "g_recovery_ppa %x ver %x\n " + .string "decrement_vpc_count %x = %d\n" .LC152: - .string "FtlCheckVpc %x = %x %x\n" + .string "decrement_vpc_count %x = %d in free list\n" .LC153: - .string "%d GC datablk = %x vpc %x %x\n" + .string "RSB refresh addr %x\n" .LC154: - .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" + .string "spuer block %x vpn is 0\n " .LC155: - .string "Ftlwrite decrement_vpc_count %x = %d\n" + .string "g_recovery_ppa %x ver %x\n " .LC156: - .string "GC des block %x done\n" + .string "FtlCheckVpc %x = %x %x\n" .LC157: - .string "...%s: no bad block mapping table, format device\n" + .string "%d GC datablk = %x vpc %x %x\n" .LC158: - .string "...%s FtlSysBlkInit error ,format device!\n" + .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" .LC159: - .string "FtlWrite: lpa error:%x %x\n" + .string "Ftlwrite decrement_vpc_count %x = %d\n" .LC160: - .string "fix power lost blk = %x vpc=%x\n" + .string "GC des block %x done\n" .LC161: + .string "too many bad block = %d %d\n" +.LC162: + .string "...%s: no bad block mapping table, format device\n" +.LC163: + .string "...%s FtlSysBlkInit error ,format device!\n" +.LC164: + .string "FtlWrite: lpa error:%x %x\n" +.LC165: + .string "fix power lost blk = %x vpc=%x\n" +.LC166: .string "erase power lost blk = %x vpc=%x\n" .data .align 3 @@ -22238,7 +22802,7 @@ gNandParaInfo: .byte 0 .zero 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2656 + .size NandFlashParaTbl, 2752 NandFlashParaTbl: .byte 6 .byte 44 @@ -23567,6 +24131,32 @@ NandFlashParaTbl: .byte 0 .zero 4 .byte 6 + .byte -119 + .byte -120 + .byte 36 + .byte 59 + .byte -87 + .byte 0 + .byte 7 + .byte 1 + .byte 16 + .hword 192 + .byte 2 + .byte 2 + .hword 2048 + .hword 279 + .byte 12 + .byte 0 + .byte 24 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .zero 4 + .byte 6 .byte -104 .byte -41 .byte -124 @@ -23931,6 +24521,32 @@ NandFlashParaTbl: .byte 0 .zero 4 .byte 6 + .byte -104 + .byte -34 + .byte -108 + .byte -109 + .byte 118 + .byte -47 + .byte 1 + .byte 1 + .byte 32 + .hword 256 + .byte 2 + .byte 2 + .hword 1074 + .hword 1497 + .byte 2 + .byte 35 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 4 + .byte 0 + .byte 0 + .byte 0 + .zero 4 + .byte 6 .byte 69 .byte -34 .byte -108 @@ -24242,7 +24858,7 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 - .byte 6 + .byte 5 .byte -20 .byte -41 .byte -108 @@ -24398,6 +25014,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 + .byte 6 + .byte -20 + .byte -34 + .byte -108 + .byte -61 + .byte -92 + .byte -54 + .byte 0 + .byte 1 + .byte 32 + .hword 792 + .byte 2 + .byte 1 + .hword 688 + .hword 1217 + .byte 11 + .byte 50 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .zero 4 .type NandOptPara, %object .size NandOptPara, 128 NandOptPara: @@ -24592,6 +25234,10 @@ gBlockPageAlignSize: gNandRandomizer: .zero 1 .zero 7 + .type gpNandParaInfo, %object + .size gpNandParaInfo, 8 +gpNandParaInfo: + .zero 8 .type gNandOptPara, %object .size gNandOptPara, 32 gNandOptPara: @@ -24625,16 +25271,11 @@ DieAddrs: .size gDieOp, 192 gDieOp: .zero 192 - .zero 4 - .type gpNandParaInfo, %object - .size gpNandParaInfo, 8 -gpNandParaInfo: - .zero 8 .type gTotleBlock, %object .size gTotleBlock, 2 gTotleBlock: .zero 2 - .zero 6 + .zero 2 .type gNandIDataBuf, %object .size gNandIDataBuf, 2048 gNandIDataBuf: @@ -24705,11 +25346,23 @@ gReadRetryInfo: .size read_retry_cur_offset, 4 read_retry_cur_offset: .zero 4 + .type gFlashCurMode, %object + .size gFlashCurMode, 1 +gFlashCurMode: + .zero 1 .type gFlashInterfaceMode, %object .size gFlashInterfaceMode, 1 gFlashInterfaceMode: .zero 1 - .zero 3 + .type gMultiPageProgEn, %object + .size gMultiPageProgEn, 1 +gMultiPageProgEn: + .zero 1 + .zero 1 + .type g_inkDie_check_enable, %object + .size g_inkDie_check_enable, 4 +g_inkDie_check_enable: + .zero 4 .type idb_flash_slc_mode, %object .size idb_flash_slc_mode, 4 idb_flash_slc_mode: @@ -24730,7 +25383,6 @@ gNandcVer: .type g_nandc_version_data, %object .size g_nandc_version_data, 4 g_nandc_version_data: - .zero 4 .zero 4 .type gMasterTempBuf, %object .size gMasterTempBuf, 8 @@ -24747,15 +25399,6 @@ gNandcDumpWriteEn: .type gNandcEccBits, %object .size gNandcEccBits, 4 gNandcEccBits: - .zero 4 - .type gMultiPageProgEn, %object - .size gMultiPageProgEn, 1 -gMultiPageProgEn: - .zero 1 - .zero 3 - .type g_inkDie_check_enable, %object - .size g_inkDie_check_enable, 4 -g_inkDie_check_enable: .zero 4 .type FlashDdrTunningReadCount, %object .size FlashDdrTunningReadCount, 4 diff --git a/drivers/rk_nand/rk_zftl_arm32.S b/drivers/rk_nand/rk_zftl_arm32.S index 2368e325ee14..fe4ac3174b56 100644 --- a/drivers/rk_nand/rk_zftl_arm32.S +++ b/drivers/rk_nand/rk_zftl_arm32.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: 2020-02-18 + * date: 2020-11-30 * function: rk ftl v6 for rockchip soc base on arm v7 to support 3D/2D * TLC and MLC. */ @@ -73,7 +73,7 @@ zftl_nandc_get_irq_status: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. ldr r3, .L19 - ldrb r3, [r3, #516] @ zero_extendqisi2 + ldrb r3, [r3, #1028] @ zero_extendqisi2 cmp r3, #9 ldreq r0, [r0, #296] ldrne r0, [r0, #372] @@ -95,7 +95,7 @@ zftl_get_density: cmp r0, #0 bne .L22 ldr r3, .L25 - ldr r0, [r3, #520] + ldr r0, [r3, #1032] bx lr .L22: cmp r0, #4 @@ -120,7 +120,7 @@ _list_get_gc_head_node: beq .L32 ldr r3, .L35 mov ip, #6 - ldr r2, [r3, #524] + ldr r2, [r3, #1036] movw r3, #65535 .L29: cmp r1, #0 @@ -163,7 +163,7 @@ _list_remove_node: ldr r6, .L46 mov r7, r0 movw r3, #65535 - ldr r8, [r6, #524] + ldr r8, [r6, #1036] add r4, r8, r5 ldrh r0, [r8, r5] ldrh r1, [r4, #2] @@ -182,7 +182,7 @@ _list_remove_node: cmp r4, r3 beq .L40 ldr r1, .L46+4 - mov r2, #188 + mov r2, #202 ldr r0, .L46+8 bl printk bl dump_stack @@ -193,7 +193,7 @@ _list_remove_node: ldrh r3, [r8, r5] bne .L41 cmp r3, r2 - ldrne r2, [r6, #524] + ldrne r2, [r6, #1036] movne r1, #6 moveq r3, #0 streq r3, [r7] @@ -208,19 +208,19 @@ _list_remove_node: bne .L44 cmp r1, r3 movne r3, #6 - ldrne r2, [r6, #524] + ldrne r2, [r6, #1036] mulne r1, r3, r1 mvnne r3, #0 strneh r3, [r2, r1] @ movhi b .L43 .L44: - ldr r0, [r6, #524] + ldr r0, [r6, #1036] mov r2, #6 mla r3, r2, r3, r0 strh r1, [r3, #2] @ movhi ldrh r0, [r4, #2] ldrh r1, [r8, r5] - ldr r3, [r6, #524] + ldr r3, [r6, #1036] mul r2, r2, r0 strh r1, [r3, r2] @ movhi .L43: @@ -253,7 +253,7 @@ _list_pop_index_node: ldr r3, .L56 movw ip, #65535 mov lr, #6 - ldr r4, [r3, #524] + ldr r4, [r3, #1036] .L50: cmp r1, #0 bne .L51 @@ -346,40 +346,40 @@ zftl_flash_suspend: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. ldr r3, .L70 - ldrb r2, [r3, #516] @ zero_extendqisi2 + ldrb r2, [r3, #1028] @ zero_extendqisi2 cmp r2, #9 - ldr r2, [r3, #528] + ldr r2, [r3, #1040] ldr r1, [r2] - str r1, [r3, #532] + str r1, [r3, #1044] ldr r1, [r2, #4] - str r1, [r3, #536] + str r1, [r3, #1048] bne .L67 ldr r1, [r2, #16] - str r1, [r3, #540] + str r1, [r3, #1052] ldr r1, [r2, #32] - str r1, [r3, #544] + str r1, [r3, #1056] ldr r1, [r2, #80] - str r1, [r3, #548] + str r1, [r3, #1060] ldr r1, [r2, #84] - str r1, [r3, #552] + str r1, [r3, #1064] ldr r1, [r2, #520] ldr r2, [r2, #8] - str r1, [r3, #556] + str r1, [r3, #1068] b .L69 .L67: ldr r1, [r2, #8] - str r1, [r3, #540] + str r1, [r3, #1052] ldr r1, [r2, #12] - str r1, [r3, #544] + str r1, [r3, #1056] ldr r1, [r2, #304] - str r1, [r3, #548] + str r1, [r3, #1060] ldr r1, [r2, #308] - str r1, [r3, #552] + str r1, [r3, #1064] ldr r1, [r2, #336] ldr r2, [r2, #344] - str r1, [r3, #556] + str r1, [r3, #1068] .L69: - str r2, [r3, #560] + str r2, [r3, #1072] bx lr .L71: .align 2 @@ -394,8 +394,8 @@ _insert_free_list: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 ldr r3, .L82 - add ip, r3, #564 - ldrh ip, [ip] + movw ip, #1076 + ldrh ip, [r3, ip] cmp ip, r1 bxls lr stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} @@ -406,7 +406,7 @@ _insert_free_list: add ip, ip, #1 strh ip, [r2] @ movhi mov ip, #6 - ldr r7, [r3, #524] + ldr r7, [r3, #1036] mul r6, ip, r1 mvn r3, #0 add lr, r7, r6 @@ -415,11 +415,11 @@ _insert_free_list: ldr r3, [r0] cmp r3, #0 beq .L81 - ldr r5, [r4, #568] - add r8, r4, #572 + ldr r5, [r4, #1080] + movw r8, #1084 + ldrh r10, [r4, r8] mov r2, r1, asl #2 - ldr r9, [r4, #524] - ldrh r10, [r8] + ldr r9, [r4, #1036] movw fp, #65535 ldr r8, [r5, r1, asl #2] ldrh r2, [r5, r2] @@ -471,7 +471,7 @@ _insert_free_list: .L78: ldrh ip, [r3, #2] mov r2, #6 - ldr r0, [r4, #524] + ldr r0, [r4, #1036] mul r2, r2, ip strh r1, [r0, r2] @ movhi strh r1, [r3, #2] @ movhi @@ -492,62 +492,62 @@ _insert_data_list: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L105 - add ip, r3, #564 - ldrh ip, [ip] - cmp ip, r1 + ldr ip, .L105 + movw r3, #1076 + ldrh r3, [ip, r3] + cmp r3, r1 bxls lr stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, #6 - ldrh ip, [r2] - mov r4, r3 - mul r5, r5, r1 - add ip, ip, #1 - strh ip, [r2] @ movhi + ldrh r3, [r2] .pad #28 sub sp, sp, #28 - ldr r10, [r3, #524] + mul r5, r5, r1 + add r3, r3, #1 + strh r3, [r2] @ movhi mvn r3, #0 + ldr r10, [ip, #1036] add lr, r10, r5 strh r3, [lr, #2] @ movhi strh r3, [r10, r5] @ movhi ldr r3, [r0] cmp r3, #0 beq .L104 - ldr r2, [r4, #576] - add r8, r4, #572 - ldr r9, [r4, #568] - ldrh r8, [r8] + ldr r2, [ip, #1088] + movw r8, #1084 + ldr r9, [ip, #1080] + ldrh ip, [ip, r8] str r2, [sp, #4] mov r2, r1, asl #1 - ldr ip, [sp, #4] - ldr r7, [r9, r1, asl #2] - ldrh r6, [lr, #4] - ldrh ip, [ip, r2] - muls ip, r6, ip - str r8, [sp, #8] - ubfx r7, r7, #11, #8 - ldrneh r8, [sp, #8] + ldr r6, [sp, #4] + ldrh r4, [lr, #4] + str ip, [sp, #8] + ldrh r7, [r6, r2] + muls ip, r4, r7 + ldr r6, [r9, r1, asl #2] mov r2, r1, asl #2 + ldrneh r7, [sp, #8] + ubfx r6, r6, #11, #8 ldrh r2, [r9, r2] - smulbbne r7, r7, r8 + smulbbne r6, r6, r7 ubfx r2, r2, #0, #11 - addne r2, r2, r7 + addne r2, r2, r6 uxtahne ip, ip, r2 - ldr r2, [r4, #524] - cmp r6, #0 - mov r6, #0 - rsb r4, r2, r3 - str r2, [sp, #12] + cmp r4, #0 + ldr r4, .L105 mvneq ip, #0 + ldr r2, [r4, #1036] + rsb r6, r2, r3 + str r2, [sp, #12] ldr r2, .L105+4 - mov r4, r4, asr #1 - mul r2, r2, r4 - ldr r4, .L105+8 - ldrh r4, [r4] - uxth r2, r2 + mov r6, r6, asr #1 + mul r2, r2, r6 + movw r6, #1076 + ldrh r4, [r4, r6] + mov r6, #0 str r4, [sp, #16] + uxth r2, r2 .L94: add r6, r6, #1 ldr r4, [sp, #16] @@ -604,7 +604,7 @@ _insert_data_list: .L95: ldr r2, .L105 ldrh ip, [r3, #2] - ldr r0, [r2, #524] + ldr r0, [r2, #1036] mov r2, #6 mul r2, r2, ip strh r1, [r0, r2] @ movhi @@ -618,7 +618,6 @@ _insert_data_list: .L105: .word .LANCHOR0 .word -1431655765 - .word .LANCHOR0+564 .fnend .size _insert_data_list, .-_insert_data_list .align 2 @@ -632,7 +631,7 @@ _list_update_data_list: mov r4, r1 ldr r1, .L118 mov r6, r0 - ldr r3, [r1, #580] + ldr r3, [r1, #1092] ldrh r0, [r3, #16] cmp r0, r4 ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} @@ -644,7 +643,7 @@ _list_update_data_list: cmp r3, r4 ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mov r8, #6 - ldr r10, [r5, #524] + ldr r10, [r5, #1036] mul r8, r8, r4 ldr r3, [r6] add r9, r10, r8 @@ -659,7 +658,7 @@ _list_update_data_list: cmp r2, r3 bne .L111 ldr r1, .L118+4 - mov r2, #255 + movw r2, #273 ldr r0, .L118+8 bl printk bl dump_stack @@ -672,7 +671,7 @@ _list_update_data_list: cmp r3, r2 ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .L112: - ldr r0, [r5, #576] + ldr r0, [r5, #1088] mov r3, r4, asl #1 ldrh r1, [r0, r3] ldrh r3, [r9, #4] @@ -686,7 +685,7 @@ _list_update_data_list: mul r3, r3, ip mov r3, r3, asl #1 ldrh r0, [r0, r3] - ldr r3, [r5, #524] + ldr r3, [r5, #1036] add r2, r3, r2 ldrh r3, [r2, #4] cmp r3, #0 @@ -714,8 +713,8 @@ _list_update_data_list: .size _list_update_data_list, .-_list_update_data_list .section .text.unlikely,"ax",%progbits .align 2 - .type rk_simple_strtoull.constprop.32, %function -rk_simple_strtoull.constprop.32: + .type rk_simple_strtoull.constprop.34, %function +rk_simple_strtoull.constprop.34: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -773,7 +772,7 @@ rk_simple_strtoull.constprop.32: mla r0, lr, r0, r3 b .L123 .fnend - .size rk_simple_strtoull.constprop.32, .-rk_simple_strtoull.constprop.32 + .size rk_simple_strtoull.constprop.34, .-rk_simple_strtoull.constprop.34 .text .align 2 .global nand_flash_print_info @@ -785,19 +784,19 @@ nand_flash_print_info: stmfd sp!, {r0, r1, r2, r3, r4, lr} .save {r4, lr} .pad #16 - ldr r4, .L258 + ldr r4, .L254 ldr r3, [r4] tst r3, #4096 beq .L136 - ldr r0, .L258+4 - ldr r1, .L258+8 + ldr r0, .L254+4 + ldr r1, .L254+8 bl printk .L136: ldr r3, [r4] tst r3, #4096 beq .L137 - ldr r3, .L258+12 - ldr r0, [r3, #584] + ldr r3, .L254+12 + ldr r0, [r3, #1096] ldrb ip, [r0, #4] @ zero_extendqisi2 ldrb r1, [r0, #1] @ zero_extendqisi2 ldrb r2, [r0, #2] @ zero_extendqisi2 @@ -807,275 +806,267 @@ nand_flash_print_info: str ip, [sp, #4] ldrb r0, [r0, #6] @ zero_extendqisi2 str r0, [sp, #8] - ldr r0, .L258+16 + ldr r0, .L254+16 bl printk .L137: ldr r3, [r4] tst r3, #4096 beq .L138 - ldr r3, .L258+12 - ldr r0, .L258+20 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+20 + ldr r3, [r3, #1096] ldrb r1, [r3, #8] @ zero_extendqisi2 bl printk .L138: ldr r3, [r4] tst r3, #4096 beq .L139 - ldr r3, .L258+12 - ldr r0, .L258+24 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+24 + ldr r3, [r3, #1096] ldrb r1, [r3, #9] @ zero_extendqisi2 bl printk .L139: ldr r3, [r4] tst r3, #4096 beq .L140 - ldr r3, .L258+12 - ldr r0, .L258+28 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+28 + ldr r3, [r3, #1096] ldrh r1, [r3, #10] bl printk .L140: ldr r3, [r4] tst r3, #4096 beq .L141 - ldr r3, .L258+12 - ldr r0, .L258+32 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+32 + ldr r3, [r3, #1096] ldrb r1, [r3, #12] @ zero_extendqisi2 bl printk .L141: ldr r3, [r4] tst r3, #4096 beq .L142 - ldr r3, .L258+12 - ldr r0, .L258+36 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+36 + ldr r3, [r3, #1096] ldrb r1, [r3, #13] @ zero_extendqisi2 bl printk .L142: ldr r3, [r4] tst r3, #4096 beq .L143 - ldr r3, .L258+12 - ldr r0, .L258+40 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+40 + ldr r3, [r3, #1096] ldrh r1, [r3, #14] bl printk .L143: ldr r3, [r4] tst r3, #4096 beq .L144 - ldr r3, .L258+12 - ldr r0, .L258+44 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+44 + ldr r3, [r3, #1096] ldrb r1, [r3, #23] @ zero_extendqisi2 bl printk .L144: ldr r3, [r4] tst r3, #4096 beq .L145 - ldr r3, .L258+12 - ldr r0, .L258+48 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+48 + ldr r3, [r3, #1096] ldrb r1, [r3, #18] @ zero_extendqisi2 bl printk .L145: ldr r3, [r4] tst r3, #4096 beq .L146 - ldr r3, .L258+12 - ldr r0, .L258+52 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+52 + ldr r3, [r3, #1096] ldrb r1, [r3, #19] @ zero_extendqisi2 bl printk .L146: ldr r3, [r4] tst r3, #4096 beq .L147 - ldr r3, .L258+12 - ldr r0, .L258+56 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+56 + ldr r3, [r3, #1096] ldrb r1, [r3, #20] @ zero_extendqisi2 bl printk .L147: ldr r3, [r4] tst r3, #4096 beq .L148 - ldr r3, .L258+12 - ldr r0, .L258+60 - ldrb r1, [r3, #588] @ zero_extendqisi2 + ldr r3, .L254+12 + ldr r0, .L254+60 + ldrb r1, [r3, #1100] @ zero_extendqisi2 bl printk .L148: ldr r3, [r4] tst r3, #4096 beq .L149 - ldr r3, .L258+12 - ldr r0, .L258+64 - ldrb r1, [r3] @ zero_extendqisi2 + ldr r3, .L254+12 + ldr r0, .L254+64 + ldr r3, [r3, #1096] + ldrb r1, [r3, #22] @ zero_extendqisi2 bl printk .L149: ldr r3, [r4] tst r3, #4096 beq .L150 - ldr r3, .L258+12 - ldr r0, .L258+68 - ldr r3, [r3, #584] - ldrb r1, [r3, #22] @ zero_extendqisi2 + ldr r3, .L254+12 + ldr r0, .L254+68 + ldrb r1, [r3, #1101] @ zero_extendqisi2 bl printk .L150: ldr r3, [r4] tst r3, #4096 beq .L151 - ldr r3, .L258+12 - ldr r0, .L258+72 - ldrb r1, [r3, #589] @ zero_extendqisi2 + ldr r3, .L254+12 + ldr r0, .L254+72 + ldr r3, [r3, #1096] + ldrh r1, [r3, #16] + and r1, r1, #1 bl printk .L151: ldr r3, [r4] tst r3, #4096 beq .L152 - ldr r3, .L258+12 - ldr r0, .L258+76 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+76 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - and r1, r1, #1 + ubfx r1, r1, #1, #1 bl printk .L152: ldr r3, [r4] tst r3, #4096 beq .L153 - ldr r3, .L258+12 - ldr r0, .L258+80 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+80 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - ubfx r1, r1, #1, #1 + ubfx r1, r1, #2, #1 bl printk .L153: ldr r3, [r4] tst r3, #4096 beq .L154 - ldr r3, .L258+12 - ldr r0, .L258+84 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+84 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - ubfx r1, r1, #2, #1 + ubfx r1, r1, #3, #1 bl printk .L154: ldr r3, [r4] tst r3, #4096 beq .L155 - ldr r3, .L258+12 - ldr r0, .L258+88 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+88 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - ubfx r1, r1, #3, #1 + ubfx r1, r1, #4, #1 bl printk .L155: ldr r3, [r4] tst r3, #4096 beq .L156 - ldr r3, .L258+12 - ldr r0, .L258+92 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+92 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - ubfx r1, r1, #4, #1 + ubfx r1, r1, #5, #1 bl printk .L156: ldr r3, [r4] tst r3, #4096 beq .L157 - ldr r3, .L258+12 - ldr r0, .L258+96 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+96 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - ubfx r1, r1, #5, #1 + ubfx r1, r1, #6, #1 bl printk .L157: ldr r3, [r4] tst r3, #4096 beq .L158 - ldr r3, .L258+12 - ldr r0, .L258+100 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+100 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - ubfx r1, r1, #6, #1 + ubfx r1, r1, #7, #1 bl printk .L158: ldr r3, [r4] tst r3, #4096 beq .L159 - ldr r3, .L258+12 - ldr r0, .L258+104 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+104 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - ubfx r1, r1, #7, #1 + ubfx r1, r1, #8, #1 bl printk .L159: ldr r3, [r4] tst r3, #4096 beq .L160 - ldr r3, .L258+12 - ldr r0, .L258+108 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+108 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - ubfx r1, r1, #8, #1 + ubfx r1, r1, #9, #1 bl printk .L160: ldr r3, [r4] tst r3, #4096 beq .L161 - ldr r3, .L258+12 - ldr r0, .L258+112 - ldr r3, [r3, #584] + ldr r3, .L254+12 + ldr r0, .L254+112 + ldr r3, [r3, #1096] ldrh r1, [r3, #16] - ubfx r1, r1, #9, #1 + ubfx r1, r1, #10, #1 bl printk .L161: ldr r3, [r4] tst r3, #4096 beq .L162 - ldr r3, .L258+12 - ldr r0, .L258+116 - ldr r3, [r3, #584] - ldrh r1, [r3, #16] - ubfx r1, r1, #10, #1 + ldr r3, .L254+12 + ldr r0, .L254+116 + ldrb r1, [r3] @ zero_extendqisi2 + ldrb r2, [r3, #1102] @ zero_extendqisi2 bl printk .L162: ldr r3, [r4] tst r3, #4096 beq .L163 - ldr r3, .L258+12 - ldr r0, .L258+120 - ldrb r1, [r3] @ zero_extendqisi2 - ldrb r2, [r3, #590] @ zero_extendqisi2 + ldr r3, .L254+12 + ldr r0, .L254+120 + ldrb r1, [r3, #1113] @ zero_extendqisi2 + ldrb r2, [r3, #1114] @ zero_extendqisi2 bl printk .L163: ldr r3, [r4] tst r3, #4096 beq .L164 - ldr r3, .L258+12 - ldr r0, .L258+124 - ldrb r1, [r3, #601] @ zero_extendqisi2 - ldrb r2, [r3, #602] @ zero_extendqisi2 + ldr r3, .L254+12 + ldr r0, .L254+124 + ldrb r1, [r3, #1111] @ zero_extendqisi2 + ldrb r2, [r3, #1112] @ zero_extendqisi2 bl printk .L164: - ldr r3, [r4] - tst r3, #4096 - beq .L165 - ldr r3, .L258+12 - ldr r0, .L258+128 - ldrb r1, [r3, #599] @ zero_extendqisi2 - ldrb r2, [r3, #600] @ zero_extendqisi2 - bl printk -.L165: ldr r3, [r4] tst r3, #4096 beq .L135 - ldr r3, .L258+12 - ldr r0, .L258+132 - ldrb r1, [r3, #623] @ zero_extendqisi2 + ldr r3, .L254+12 + ldr r0, .L254+128 + ldrb r1, [r3, #1135] @ zero_extendqisi2 add sp, sp, #16 @ sp needed ldmfd sp!, {r4, lr} @@ -1084,9 +1075,9 @@ nand_flash_print_info: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, pc} -.L259: +.L255: .align 2 -.L258: +.L254: .word .LANCHOR2 .word .LC4 .word .LANCHOR1+44 @@ -1120,7 +1111,6 @@ nand_flash_print_info: .word .LC31 .word .LC32 .word .LC33 - .word .LC34 .fnend .size nand_flash_print_info, .-nand_flash_print_info .align 2 @@ -1134,39 +1124,39 @@ nandc_init: .save {r4, r5, r6, r7, lr} .pad #20 sub sp, sp, #20 - ldr r5, .L280 + ldr r5, .L276 mov r3, #0 str r3, [sp, #12] mov r7, r0 ldr r3, [r5] tst r3, #4096 - beq .L261 - ldr r0, .L280+4 + beq .L257 + ldr r0, .L276+4 mov r2, r7 - ldr r1, .L280+8 + ldr r1, .L276+8 bl printk -.L261: - ldr r4, .L280+12 +.L257: + ldr r4, .L276+12 mov r3, #6 ldr r2, [r7, #352] - ldr r6, .L280+12 - strb r3, [r4, #516] - ldr r3, .L280+16 - str r7, [r4, #528] + ldr r6, .L276+12 + strb r3, [r4, #1028] + ldr r3, .L276+16 + str r7, [r4, #1040] cmp r2, r3 ldr r2, [r7, #128] moveq r3, #8 - streqb r3, [r4, #516] - ldr r3, .L280+20 + streqb r3, [r4, #1028] + ldr r3, .L276+20 cmp r2, r3 - ldr r2, .L280+24 + ldr r2, .L276+24 moveq r3, #9 - streqb r3, [r4, #516] - ldrb r3, [r4, #516] @ zero_extendqisi2 + streqb r3, [r4, #1028] + ldrb r3, [r4, #1028] @ zero_extendqisi2 cmp r3, #9 - bne .L264 + bne .L260 mov r3, #1 - strb r3, [r6, #624] + strb r3, [r6, #1136] ldr r3, [sp, #12] orr r3, r3, #256 str r3, [sp, #12] @@ -1177,7 +1167,7 @@ nandc_init: ldr r3, [sp, #12] str r3, [r7] mov r3, #0 - ldr r0, [r6, #528] + ldr r0, [r6, #1040] str r3, [r0, #520] movw r3, #4161 str r3, [r0, #4] @@ -1190,17 +1180,17 @@ nandc_init: str r3, [r0, #84] ldr r3, [r5] tst r3, #4096 - beq .L266 + beq .L262 ldr r1, [r0] ldr r2, [r0, #8] ldr r3, [r0, #80] ldr ip, [r0, #84] ldr r0, [r0, #88] - b .L279 -.L264: + b .L275 +.L260: ldr r3, [sp, #12] mov r1, #0 - strb r1, [r6, #624] + strb r1, [r6, #1136] mov r0, #2048 orr r3, r3, #256 str r3, [sp, #12] @@ -1210,7 +1200,7 @@ nandc_init: str r3, [sp, #12] ldr r3, [sp, #12] str r3, [r7] - ldr r3, [r6, #528] + ldr r3, [r6, #1040] str r1, [r3, #336] movw r1, #4193 str r1, [r3, #4] @@ -1224,49 +1214,49 @@ nandc_init: bl ftl_malloc ldr r3, [r5] tst r3, #4096 - str r0, [r6, #628] - beq .L266 - ldr r0, [r6, #528] + str r0, [r6, #1140] + beq .L262 + ldr r0, [r6, #1040] ldr r1, [r0] ldr r2, [r0, #344] ldr r3, [r0, #304] ldr ip, [r0, #308] ldr r0, [r0, #312] -.L279: +.L275: str r0, [sp, #4] str ip, [sp] - ldr r0, .L280+28 + ldr r0, .L276+28 bl printk -.L266: - movw r2, #658 +.L262: + movw r2, #1170 mov r3, #1 - strb r3, [r4, #656] + strb r3, [r4, #1168] mov r3, #0 strh r3, [r4, r2] @ movhi - strb r3, [r4, #660] + strb r3, [r4, #1172] ldr r3, [r5] tst r3, #4096 - beq .L260 - ldr r3, .L280+12 - ldr r0, .L280+32 - ldrb r1, [r3, #516] @ zero_extendqisi2 + beq .L256 + ldr r3, .L276+12 + ldr r0, .L276+32 + ldrb r1, [r3, #1028] @ zero_extendqisi2 bl printk -.L260: +.L256: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L281: +.L277: .align 2 -.L280: +.L276: .word .LANCHOR2 - .word .LC35 + .word .LC34 .word .LANCHOR1+68 .word .LANCHOR0 .word 1446522928 .word 1446588464 .word 1052675 + .word .LC35 .word .LC36 - .word .LC37 .fnend .size nandc_init, .-nandc_init .align 2 @@ -1281,12 +1271,12 @@ timer_delay_ns: sub sp, sp, #8 mov r0, r0, lsr #4 str r0, [sp, #4] -.L283: +.L279: ldr r3, [sp, #4] cmp r3, #0 sub r2, r3, #1 str r2, [sp, #4] - bne .L283 + bne .L279 add sp, sp, #8 @ sp needed bx lr @@ -1321,45 +1311,45 @@ toshiba_set_rr_para: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r8, r1, r1, asl #2 - ldr r9, .L298 + ldr r9, .L294 mov r5, r0 - ldr r7, .L298+4 + ldr r7, .L294+4 mov r6, r1 add r10, r9, #80 mov r4, #0 -.L289: - ldrb r3, [r7, #662] @ zero_extendqisi2 +.L285: + ldrb r3, [r7, #1174] @ zero_extendqisi2 cmp r4, r3 - bcs .L297 + bcs .L293 mov r3, #85 str r3, [r5, #8] ldrsb r3, [r4, r10] mov r0, #200 str r3, [r5, #4] bl timer_delay_ns - ldrb r3, [r7, #661] @ zero_extendqisi2 + ldrb r3, [r7, #1173] @ zero_extendqisi2 cmp r3, #34 addeq r3, r4, r8 addeq r3, r10, r3 - beq .L296 + beq .L292 cmp r3, #35 addne r3, r9, r6 ldrnesb r3, [r3, #224] - bne .L295 - ldr r3, .L298+8 + bne .L291 + ldr r3, .L294+8 add r2, r4, r8 add r3, r3, r2 -.L296: +.L292: ldrsb r3, [r3, #5] -.L295: +.L291: str r3, [r5] add r4, r4, #1 - b .L289 -.L297: + b .L285 +.L293: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L299: +.L295: .align 2 -.L298: +.L294: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR1+128 @@ -1374,9 +1364,9 @@ hynix_set_rr_para: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, r0, asl #8 - ldr r3, .L307 - ldr r4, [r3, #664] - ldr r7, [r3, #528] + ldr r3, .L303 + ldr r4, [r3, #1176] + ldr r7, [r3, #1040] add lr, r4, #128 add r9, r4, #127 mov r3, r4 @@ -1394,24 +1384,24 @@ hynix_set_rr_para: add r1, r1, #32 add r3, r3, r1 sub r4, r3, #1 -.L303: +.L299: cmp r9, r8 - beq .L306 + beq .L302 ldrb r3, [r9, #1]! @ zero_extendqisi2 mov r0, #120 str r3, [r6, #2052] bl timer_delay_ns ldrsb r3, [r4, #1]! str r3, [r6, #2048] - b .L303 -.L306: + b .L299 +.L302: add r5, r7, r5 mov r3, #22 str r3, [r5, #2056] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L308: +.L304: .align 2 -.L307: +.L303: .word .LANCHOR0 .fnend .size hynix_set_rr_para, .-hynix_set_rr_para @@ -1424,12 +1414,12 @@ hynix_reconfig_rr_para: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r5, .L315 - ldrb r2, [r5, #661] @ zero_extendqisi2 + ldr r5, .L311 + ldrb r2, [r5, #1173] @ zero_extendqisi2 sub r2, r2, #1 cmp r2, #7 ldmhifd sp!, {r3, r4, r5, pc} - ldr r2, [r5, #664] + ldr r2, [r5, #1176] add r2, r2, r0 ldrb r2, [r2, #120] @ zero_extendqisi2 cmp r2, #0 @@ -1437,14 +1427,14 @@ hynix_reconfig_rr_para: mov r1, #0 mov r4, r0 bl hynix_set_rr_para - ldr r2, [r5, #664] + ldr r2, [r5, #1176] mov r3, #0 add r4, r2, r4 strb r3, [r4, #120] ldmfd sp!, {r3, r4, r5, pc} -.L316: +.L312: .align 2 -.L315: +.L311: .word .LANCHOR0 .fnend .size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para @@ -1456,9 +1446,9 @@ nandc_set_ddr_para: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L320 - ldrb r2, [r3, #516] @ zero_extendqisi2 - ldr r3, [r3, #528] + ldr r3, .L316 + ldrb r2, [r3, #1028] @ zero_extendqisi2 + ldr r3, [r3, #1040] cmp r2, #9 mov r2, r0, asl #16 mov r0, r0, asl #8 @@ -1467,9 +1457,9 @@ nandc_set_ddr_para: streq r0, [r3, #80] strne r0, [r3, #304] bx lr -.L321: +.L317: .align 2 -.L320: +.L316: .word .LANCHOR0 .fnend .size nandc_set_ddr_para, .-nandc_set_ddr_para @@ -1481,17 +1471,17 @@ nandc_get_ddr_para: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L326 - ldrb r2, [r3, #516] @ zero_extendqisi2 - ldr r3, [r3, #528] + ldr r3, .L322 + ldrb r2, [r3, #1028] @ zero_extendqisi2 + ldr r3, [r3, #1040] cmp r2, #9 ldreq r0, [r3, #80] ldrne r0, [r3, #304] ubfx r0, r0, #8, #8 bx lr -.L327: +.L323: .align 2 -.L326: +.L322: .word .LANCHOR0 .fnend .size nandc_get_ddr_para, .-nandc_get_ddr_para @@ -1503,21 +1493,21 @@ nandc_set_if_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r1, .L336 + ldr r1, .L332 ands ip, r0, #6 - ldr r3, [r1, #528] + ldr r3, [r1, #1040] ldr r2, [r3] bfieq r2, ip, #13, #1 - beq .L332 + beq .L328 orr r2, r2, #24576 - ldrb r1, [r1, #516] @ zero_extendqisi2 + ldrb r1, [r1, #1028] @ zero_extendqisi2 bfc r2, #15, #1 tst r0, #4 orr r2, r2, #196608 movw r0, #8321 orrne r2, r2, #32768 cmp r1, #9 - ldr r1, .L336+4 + ldr r1, .L332+4 streq r0, [r3, #8] strne r0, [r3, #344] streq r1, [r3, #80] @@ -1530,12 +1520,12 @@ nandc_set_if_mode: movne r1, #39 streq r1, [r3, #84] strne r1, [r3, #308] -.L332: +.L328: str r2, [r3] bx lr -.L337: +.L333: .align 2 -.L336: +.L332: .word .LANCHOR0 .word 1052675 .fnend @@ -1548,17 +1538,17 @@ nandc_cs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L339 + ldr r3, .L335 mov r2, #1 mov r0, r2, asl r0 - ldr r1, [r3, #528] + ldr r1, [r3, #1040] ldr r3, [r1] bfi r3, r0, #0, #8 str r3, [r1] bx lr -.L340: +.L336: .align 2 -.L339: +.L335: .word .LANCHOR0 .fnend .size nandc_cs, .-nandc_cs @@ -1570,16 +1560,16 @@ nandc_de_cs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L342 - ldr r2, [r3, #528] + ldr r3, .L338 + ldr r2, [r3, #1040] ldr r3, [r2] bfc r3, #0, #8 bfc r3, #17, #1 str r3, [r2] bx lr -.L343: +.L339: .align 2 -.L342: +.L338: .word .LANCHOR0 .fnend .size nandc_de_cs, .-nandc_de_cs @@ -1588,54 +1578,65 @@ nandc_de_cs: .type flash_wait_device_ready_raw, %function flash_wait_device_ready_raw: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r5, r0 + stmfd sp!, {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 r6, r0 ldr r4, .L349 - mov r6, r1 + mov r5, r1 mov r7, r2 - ldrb r3, [r4, #589] @ zero_extendqisi2 + ldrb r3, [r4, #1101] @ zero_extendqisi2 cmp r3, r0 - bhi .L345 + bhi .L341 ldr r1, .L349+4 - mov r2, #700 + movw r2, #805 ldr r0, .L349+8 bl printk bl dump_stack -.L345: - add r5, r4, r5 - ldr r4, [r4, #528] - mov r10, r6, lsr #8 - mov r9, r6, lsr #16 - ldrb r8, [r5, #668] @ zero_extendqisi2 +.L341: + add r6, r4, r6 + ldr r3, [r4, #1040] + mov r9, r5, lsr #16 + mov r10, r5, lsr #24 + ldrb r6, [r6, #1180] @ zero_extendqisi2 mov fp, #120 - mov r0, r8 - add r4, r4, r8, asl #8 + mov r2, r5, lsr #8 + str r2, [sp] + add r8, r3, r6, asl #8 +.L343: + mov r0, r6 bl nandc_cs -.L346: - str fp, [r4, #2056] - uxtb r3, r6 + str fp, [r8, #2056] + uxtb r2, r5 + str r2, [r8, #2052] + ldrb r2, [r4, #1188] @ zero_extendqisi2 mov r0, #120 - str r3, [r4, #2052] - str r10, [r4, #2052] - str r9, [r4, #2052] + cmp r2, #0 + ldr r3, [sp] + str r3, [r8, #2052] + str r9, [r8, #2052] + strne r10, [r8, #2052] bl timer_delay_ns - ldr r5, [r4, #2048] - uxtb r5, r5 - sub r3, r5, #255 - and r2, r7, r5 - clz r3, r3 - mov r3, r3, lsr #5 - cmp r2, r7 - orrne r3, r3, #1 - cmp r3, #0 - bne .L346 - mov r0, r8 + ldr r2, [r8, #2048] + mov r0, r6 + uxtb r2, r2 + str r2, [sp, #4] bl nandc_de_cs - mov r0, r5 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + ldr r2, [sp, #4] + sub r1, r2, #255 + and r0, r7, r2 + clz r1, r1 + mov r1, r1, lsr #5 + cmp r0, r7 + orrne r1, r1, #1 + cmp r1, #0 + bne .L343 + mov r0, r2 + add sp, sp, #12 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} .L350: .align 2 .L349: @@ -1657,7 +1658,7 @@ flash_wait_device_ready: ldr r6, .L363 tst r0, #50331648 mov r8, r1 - ldrb r2, [r6, #676] @ zero_extendqisi2 + ldrb r2, [r6, #1189] @ zero_extendqisi2 rsb r5, r2, #24 mov r4, r3, asl r5 mov r3, r3, asl r2 @@ -1712,7 +1713,7 @@ nandc_wait_flash_ready_no_delay: ldr r4, .L371 ldr r5, .L371+4 .L367: - ldr r3, [r5, #528] + ldr r3, [r5, #1040] ldr r3, [r3] str r3, [sp, #4] ldr r3, [sp, #4] @@ -1744,70 +1745,71 @@ zftl_flash_enter_slc_mode: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L394 - ldrb r1, [r2] @ zero_extendqisi2 - cmp r1, #0 - bxeq lr - cmp r1, #1 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - ldr r3, [r2, #528] - bne .L376 - ldr r2, .L394+4 - ldrb r2, [r2, #33] @ zero_extendqisi2 + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + ldr r3, .L393 + ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 - ldmeqfd sp!, {r3, r4, r5, pc} - b .L393 + ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} + cmp r2, #1 + ldr r5, [r3, #1040] + bne .L376 + ldr r3, .L393+4 + ldrb r3, [r3, #33] @ zero_extendqisi2 + cmp r3, #0 + addne r0, r5, r0, asl #8 + strne r3, [r0, #2056] + ldmfd sp!, {r3, r4, r5, r6, r7, pc} .L376: - cmp r1, #2 + cmp r2, #2 + mov r4, r0 bne .L378 - add r2, r2, r0 - ldrb r1, [r2, #680] @ zero_extendqisi2 - cmp r1, #0 - ldmeqfd sp!, {r3, r4, r5, pc} - mov r1, #0 - strb r1, [r2, #680] - ldr r2, .L394+4 - ldrb r2, [r2, #33] @ zero_extendqisi2 - cmp r2, r1 - ldmeqfd sp!, {r3, r4, r5, pc} -.L393: - add r0, r3, r0, asl #8 - str r2, [r0, #2056] - ldmfd sp!, {r3, r4, r5, pc} + add r3, r3, r0 + ldrb r2, [r3, #1192] @ zero_extendqisi2 + cmp r2, #0 + ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} + ldr r6, .L393+4 + mov r2, #0 + strb r2, [r3, #1192] + ldrb r3, [r6, #33] @ zero_extendqisi2 + cmp r3, r2 + ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} + bl nandc_wait_flash_ready_no_delay + add r4, r5, r4, asl #8 + ldrb r3, [r6, #33] @ zero_extendqisi2 + b .L392 .L378: - cmp r1, #3 - ldmnefd sp!, {r3, r4, r5, pc} - add r2, r2, r0 - ldrb r1, [r2, #680] @ zero_extendqisi2 - cmp r1, #0 - ldmeqfd sp!, {r3, r4, r5, pc} - add r4, r3, r0, asl #8 + cmp r2, #3 + ldmnefd sp!, {r3, r4, r5, r6, r7, pc} + add r6, r3, r0 + ldrb r3, [r6, #1192] @ zero_extendqisi2 + cmp r3, #0 + ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} + add r4, r5, r4, asl #8 + bl nandc_wait_flash_ready_no_delay mov r3, #239 - mov r0, #50 - mov r5, #0 + mov r0, #100 str r3, [r4, #2056] mov r3, #145 str r3, [r4, #2052] - strb r5, [r2, #680] + mov r7, #0 + strb r7, [r6, #1192] bl timer_delay_ns - str r5, [r4, #2048] + str r7, [r4, #2048] mov r3, #1 mov r0, #150 str r3, [r4, #2048] - str r5, [r4, #2048] - str r5, [r4, #2048] + str r7, [r4, #2048] + str r7, [r4, #2048] bl timer_delay_ns bl nandc_wait_flash_ready_no_delay mov r3, #218 - mov r0, #150 +.L392: str r3, [r4, #2056] - bl timer_delay_ns - ldmfd sp!, {r3, r4, r5, lr} - b nandc_wait_flash_ready_no_delay -.L395: - .align 2 + ldmfd sp!, {r3, r4, r5, r6, r7, pc} .L394: + .align 2 +.L393: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -1819,77 +1821,83 @@ zftl_flash_exit_slc_mode: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L421 - ldrb r2, [r3] @ zero_extendqisi2 - cmp r2, #0 - bxeq lr - cmp r2, #1 + ldr r3, .L417 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r7, [r3, #528] - ldreq r3, .L421+4 - ldreqb r3, [r3, #34] @ zero_extendqisi2 - beq .L420 - cmp r2, #2 - bne .L401 - add r3, r3, r0 - ldrb r2, [r3, #680] @ zero_extendqisi2 - cmp r2, #0 - ldmnefd sp!, {r4, r5, r6, r7, r8, pc} - ldr r1, .L421+4 - ldrb r2, [r1, #16] @ zero_extendqisi2 - cmp r2, #2 - movne r2, #4 - strb r2, [r3, #680] - ldrb r3, [r1, #34] @ zero_extendqisi2 -.L420: + ldrb r4, [r3] @ zero_extendqisi2 + cmp r4, #0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} + cmp r4, #1 + ldr r7, [r3, #1040] + bne .L398 + ldr r3, .L417+4 + ldrb r3, [r3, #34] @ zero_extendqisi2 cmp r3, #0 addne r0, r7, r0, asl #8 strne r3, [r0, #2056] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L401: - cmp r2, #3 +.L398: + cmp r4, #2 + mov r5, r0 + bne .L400 + add r3, r3, r0 + ldrb r2, [r3, #1192] @ zero_extendqisi2 + cmp r2, #0 ldmnefd sp!, {r4, r5, r6, r7, r8, pc} - add r6, r3, r0 - ldrb r3, [r6, #680] @ zero_extendqisi2 + ldr r4, .L417+4 + ldrb r2, [r4, #16] @ zero_extendqisi2 + cmp r2, #2 + movne r2, #4 + strb r2, [r3, #1192] + ldrb r3, [r4, #34] @ zero_extendqisi2 + cmp r3, #0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} + bl nandc_wait_flash_ready_no_delay + add r5, r7, r5, asl #8 + ldrb r3, [r4, #34] @ zero_extendqisi2 + b .L416 +.L400: + cmp r4, #3 + ldmnefd sp!, {r4, r5, r6, r7, r8, pc} + add r4, r3, r0 + ldrb r3, [r4, #1192] @ zero_extendqisi2 cmp r3, #0 ldmnefd sp!, {r4, r5, r6, r7, r8, pc} - ldr r8, .L421+4 - mov r4, r0, asl #8 - add r5, r7, r4 - mov r0, #50 - add r4, r7, r4 + ldr r8, .L417+4 + bl nandc_wait_flash_ready_no_delay + mov r5, r5, asl #8 + mov r0, #100 + add r6, r7, r5 + add r5, r7, r5 ldrb r3, [r8, #16] @ zero_extendqisi2 cmp r3, #2 movne r3, #4 - strb r3, [r6, #680] + strb r3, [r4, #1192] mov r3, #239 - str r3, [r5, #2056] + str r3, [r6, #2056] mov r3, #145 - str r3, [r5, #2052] + str r3, [r6, #2052] bl timer_delay_ns ldrb r3, [r8, #11] @ zero_extendqisi2 mov r0, #150 cmp r3, #9 mov r3, #1 - streq r3, [r5, #2048] - ldrneb r2, [r6, #680] @ zero_extendqisi2 - strne r2, [r5, #2048] - str r3, [r5, #2048] + streq r3, [r6, #2048] + ldrneb r2, [r4, #1192] @ zero_extendqisi2 + strne r2, [r6, #2048] + str r3, [r6, #2048] mov r3, #0 - str r3, [r5, #2048] - str r3, [r5, #2048] + str r3, [r6, #2048] + str r3, [r6, #2048] bl timer_delay_ns bl nandc_wait_flash_ready_no_delay mov r3, #223 - mov r0, #150 - str r3, [r4, #2056] - bl timer_delay_ns - ldmfd sp!, {r4, r5, r6, r7, r8, lr} - b nandc_wait_flash_ready_no_delay -.L422: +.L416: + str r3, [r5, #2056] + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L418: .align 2 -.L421: +.L417: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -1901,82 +1909,98 @@ flash_start_page_read: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L433 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - mvn r5, #0 - ldrb r4, [r2, #676] @ zero_extendqisi2 - mov r6, r0 - ldrb r3, [r2, #589] @ zero_extendqisi2 + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + mvn r2, #0 + ldr r7, .L434 + mov r5, r0 mov r8, r1 - rsb r7, r4, #24 - mvn r4, r5, asl r4 - and r4, r4, r1, lsr r7 - mov r5, r2 - uxtb r4, r4 + ldrb r3, [r7, #1189] @ zero_extendqisi2 + rsb r6, r3, #24 + mvn r2, r2, asl r3 + and r2, r2, r1, lsr r6 + ldrb r3, [r7, #1101] @ zero_extendqisi2 + uxtb r4, r2 cmp r3, r4 - bhi .L424 - ldr r1, .L433+4 - movw r2, #878 - ldr r0, .L433+8 + bhi .L420 + ldr r1, .L434+4 + movw r2, #1001 + ldr r0, .L434+8 bl printk bl dump_stack -.L424: - ldrb r3, [r5, #589] @ zero_extendqisi2 - ldr r9, .L433 +.L420: + ldrb r3, [r7, #1101] @ zero_extendqisi2 + ldr r9, .L434 cmp r3, r4 - ldmlsfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + ldmlsfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} add r4, r9, r4 mvn r3, #0 - bic r7, r8, r3, asl r7 + bic r6, r8, r3, asl r6 ubfx r8, r8, #24, #2 - ldrb r10, [r4, #668] @ zero_extendqisi2 - ldr r5, [r9, #528] - mov r0, r10 - mov r4, r10, asl #8 + ldrb fp, [r4, #1180] @ zero_extendqisi2 + ldr r4, [r9, #1040] + mov r0, fp + mov r10, fp, asl #8 bl nandc_cs cmp r8, #0 - bne .L426 - mov r0, r7 + bne .L422 + mov r0, r6 bl slc_phy_page_address_calc ldrb r3, [r9] @ zero_extendqisi2 cmp r3, #0 - mov r7, r0 - beq .L427 - mov r0, r10 + mov r6, r0 + beq .L423 + mov r0, fp bl zftl_flash_enter_slc_mode - b .L427 -.L426: - ldr r3, [r9, #584] + b .L423 +.L422: + ldr r3, [r9, #1096] ldrb r3, [r3, #12] @ zero_extendqisi2 cmp r3, #3 - bne .L428 - ldrb r3, [r9, #684] @ zero_extendqisi2 + bne .L424 + ldrb r3, [r9, #1196] @ zero_extendqisi2 cmp r3, #0 - addeq r3, r5, r4 + bne .L424 + ldrb r3, [r9, #1197] @ zero_extendqisi2 + cmp r3, #0 + addeq r3, r4, r10 streq r8, [r3, #2056] - beq .L427 -.L428: - mov r0, r10 + beq .L423 +.L424: + mov r0, fp bl zftl_flash_exit_slc_mode -.L427: - add r4, r5, r4 - mov r0, #0 - uxtb r3, r7 - str r0, [r4, #2056] - str r0, [r4, #2052] - str r0, [r4, #2052] - str r3, [r4, #2052] - mov r3, r7, lsr #8 - str r3, [r4, #2052] - mov r3, r7, lsr #16 - str r3, [r4, #2052] - str r6, [r4, #2056] - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - b nandc_de_cs -.L434: +.L423: + ldr r3, [r7, #1096] + ldrb r2, [r3, #7] @ zero_extendqisi2 + cmp r2, #1 + bne .L425 + ldrb r3, [r3, #12] @ zero_extendqisi2 + cmp r3, #2 + addeq r3, r4, r10 + moveq r2, #38 + streq r2, [r3, #2056] +.L425: + add r2, r4, r10 + mov r3, #0 + str r3, [r2, #2056] + str r3, [r2, #2052] + str r3, [r2, #2052] + uxtb r3, r6 + str r3, [r2, #2052] + mov r3, r6, lsr #8 + str r3, [r2, #2052] + mov r3, r6, lsr #16 + str r3, [r2, #2052] + ldrb r3, [r7, #1188] @ zero_extendqisi2 + cmp r3, #0 + movne r3, r6, lsr #24 + strne r3, [r2, #2052] + add r3, r4, r10 + str r5, [r3, #2056] + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L435: .align 2 -.L433: +.L434: .word .LANCHOR0 .word .LANCHOR1+260 .word .LC0 @@ -1994,30 +2018,30 @@ nandc_wait_flash_ready: .pad #12 mov r0, #150 bl timer_delay_ns - ldr r4, .L441 - ldr r5, .L441+4 -.L437: - ldr r3, [r5, #528] + ldr r4, .L442 + ldr r5, .L442+4 +.L438: + ldr r3, [r5, #1040] ldr r3, [r3] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L438 + bne .L439 mov r0, #10 bl timer_delay_ns subs r4, r4, #1 - bne .L437 + bne .L438 mvn r0, #0 - b .L436 -.L438: + b .L437 +.L439: mov r0, #0 -.L436: +.L437: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L442: +.L443: .align 2 -.L441: +.L442: .word 100000 .word .LANCHOR0 .fnend @@ -2039,16 +2063,16 @@ sandisk_set_rr_para: mov r0, #200 mov r4, r1 bl timer_delay_ns - ldr r0, .L451 - ldr r1, .L451+4 + ldr r0, .L452 + ldr r1, .L452+4 add r4, r4, r4, asl #2 sub ip, r0, #48 mov r2, #0 -.L444: - ldrb r3, [r1, #662] @ zero_extendqisi2 +.L445: + ldrb r3, [r1, #1174] @ zero_extendqisi2 cmp r2, r3 - bcs .L450 - ldrb r3, [r1, #661] @ zero_extendqisi2 + bcs .L451 + ldrb r3, [r1, #1173] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 addeq r3, ip, r3 @@ -2056,13 +2080,13 @@ sandisk_set_rr_para: add r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L444 -.L450: + b .L445 +.L451: ldmfd sp!, {r3, r4, r5, lr} b nandc_wait_flash_ready -.L452: +.L453: .align 2 -.L451: +.L452: .word .LANCHOR1+128 .word .LANCHOR0 .fnend @@ -2078,7 +2102,7 @@ toshiba_3d_set_tlc_rr_para: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} rsb r1, r1, r1, asl #3 - ldr r5, .L455 + ldr r5, .L456 mov r6, #0 mov r7, #213 mvn r3, #118 @@ -2116,9 +2140,9 @@ toshiba_3d_set_tlc_rr_para: str r6, [r4] ldmfd sp!, {r3, r4, r5, r6, r7, lr} b nandc_wait_flash_ready -.L456: +.L457: .align 2 -.L455: +.L456: .word .LANCHOR1 .fnend .size toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para @@ -2136,7 +2160,7 @@ toshiba_3d_set_slc_rr_para: mov r3, #0 str r3, [r0, #4] str r2, [r0, #4] - ldr r2, .L458 + ldr r2, .L459 add r2, r2, r1 movw r1, #685 ldrsb r2, [r2, r1] @@ -2145,9 +2169,9 @@ toshiba_3d_set_slc_rr_para: str r3, [r0] str r3, [r0] b nandc_wait_flash_ready -.L459: +.L460: .align 2 -.L458: +.L459: .word .LANCHOR1 .fnend .size toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para @@ -2159,13 +2183,13 @@ toshiba_tlc_set_rr_para: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 cmp r2, #0 - ldr r3, .L464 + ldr r3, .L465 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, #239 mov r4, r0 str r6, [r0, #8] - beq .L461 + beq .L462 rsb r1, r1, r1, asl #3 mov r2, #18 add r5, r3, r1 @@ -2190,8 +2214,8 @@ toshiba_tlc_set_rr_para: str r3, [r4] mov r3, #0 str r3, [r4] - b .L462 -.L461: + b .L463 +.L462: add r3, r3, r1 mov r0, #20 str r0, [r4, #4] @@ -2200,16 +2224,102 @@ toshiba_tlc_set_rr_para: str r2, [r4] str r2, [r4] str r2, [r4] -.L462: +.L463: ldmfd sp!, {r4, r5, r6, lr} b nandc_wait_flash_ready -.L465: +.L466: .align 2 -.L464: +.L465: .word .LANCHOR2 .fnend .size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para .align 2 + .global ymtc_3d_set_tlc_rr_para + .type ymtc_3d_set_tlc_rr_para, %function +ymtc_3d_set_tlc_rr_para: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + rsb r1, r1, r1, asl #3 + ldr r5, .L469 + mov r7, #239 + mov r3, #160 + str r7, [r0, #8] + add r5, r5, r1 + str r3, [r0, #4] + add r3, r5, #696 + mov r4, r0 + mov r6, #0 + ldrsb r3, [r3] + str r3, [r0] + add r3, r5, #700 + ldrsb r3, [r3] + str r3, [r0] + str r6, [r0] + str r6, [r0] + bl nandc_wait_flash_ready + str r7, [r4, #8] + mov r3, #161 + str r3, [r4, #4] + movw r3, #697 + ldrsb r3, [r5, r3] + str r3, [r4] + movw r3, #699 + ldrsb r3, [r5, r3] + str r3, [r4] + movw r3, #701 + ldrsb r3, [r5, r3] + str r3, [r4] + str r6, [r4] + bl nandc_wait_flash_ready + str r7, [r4, #8] + mov r3, #162 + str r3, [r4, #4] + movw r3, #698 + ldrsb r3, [r5, r3] + str r3, [r4] + movw r3, #702 + ldrsb r3, [r5, r3] + str r3, [r4] + str r6, [r4] + str r6, [r4] + ldmfd sp!, {r3, r4, r5, r6, r7, lr} + b nandc_wait_flash_ready +.L470: + .align 2 +.L469: + .word .LANCHOR1 + .fnend + .size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para + .align 2 + .global ymtc_3d_set_slc_rr_para + .type ymtc_3d_set_slc_rr_para, %function +ymtc_3d_set_slc_rr_para: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + mov r3, #239 + str r3, [r0, #8] + mov r3, #163 + str r3, [r0, #4] + ldr r3, .L472 + ldrsb r3, [r3, r1] + str r3, [r0] + mov r3, #0 + str r3, [r0] + str r3, [r0] + str r3, [r0] + b nandc_wait_flash_ready +.L473: + .align 2 +.L472: + .word .LANCHOR1+1056 + .fnend + .size ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para + .align 2 .global flash_start_plane_read .type flash_start_plane_read, %function flash_start_plane_read: @@ -2220,38 +2330,38 @@ flash_start_plane_read: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r3, #1 - ldr r8, .L485 - ubfx r7, r0, #24, #2 - ldrb r2, [r8, #676] @ zero_extendqisi2 + ldr r7, .L502 + ubfx r9, r0, #24, #2 + ldrb r2, [r7, #1189] @ zero_extendqisi2 rsb r5, r2, #24 mov r4, r3, asl r5 mov r3, r3, asl r2 sub r3, r3, #1 sub r4, r4, #1 and r5, r3, r0, lsr r5 - ldrb r3, [r8, #589] @ zero_extendqisi2 + ldrb r3, [r7, #1101] @ zero_extendqisi2 and r6, r4, r0 and r4, r4, r1 uxtb r5, r5 cmp r3, r5 - bhi .L467 - ldr r1, .L485+4 - movw r2, #977 - ldr r0, .L485+8 + bhi .L475 + ldr r1, .L502+4 + movw r2, #1128 + ldr r0, .L502+8 bl printk bl dump_stack -.L467: - add r5, r8, r5 - ldr r3, .L485 - ldr r9, [r8, #528] - ldrb r10, [r5, #668] @ zero_extendqisi2 +.L475: + add r5, r7, r5 + ldr r3, .L502 + ldr r8, [r7, #1040] + ldrb r10, [r5, #1180] @ zero_extendqisi2 str r3, [sp, #4] mov r0, r10 mov fp, r10, asl #8 bl nandc_cs - cmp r7, #0 + cmp r9, #0 ldr r3, [sp, #4] - bne .L468 + bne .L476 mov r0, r6 bl slc_phy_page_address_calc mov r6, r0 @@ -2261,83 +2371,105 @@ flash_start_plane_read: mov r4, r0 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L469 + beq .L477 mov r0, r10 bl zftl_flash_enter_slc_mode - b .L469 -.L468: - ldr r2, [r3, #584] + b .L477 +.L476: + ldr r2, [r3, #1096] ldrb r2, [r2, #12] @ zero_extendqisi2 cmp r2, #3 - bne .L470 - ldrb r3, [r3, #684] @ zero_extendqisi2 + bne .L478 + ldrb r2, [r3, #1196] @ zero_extendqisi2 + cmp r2, #0 + bne .L478 + ldrb r3, [r3, #1197] @ zero_extendqisi2 cmp r3, #0 - addeq r3, r9, fp - streq r7, [r3, #2056] - beq .L469 -.L470: + addeq r3, r8, fp + streq r9, [r3, #2056] + beq .L477 +.L478: mov r0, r10 bl zftl_flash_exit_slc_mode -.L469: - ldrb r3, [r8, #607] @ zero_extendqisi2 - uxtb r0, r6 - mov r1, r6, lsr #8 - ldr r2, .L485 - cmp r3, #1 - ldrb ip, [r8, #599] @ zero_extendqisi2 - mov r6, r6, lsr #16 - bne .L471 - ldrb r3, [r2, #600] @ zero_extendqisi2 - add r5, r9, fp - mov r8, #0 - str r2, [sp, #4] - str ip, [r5, #2056] - add fp, r9, fp - str r8, [r5, #2052] - str r8, [r5, #2052] +.L477: + ldrb r2, [r7, #1119] @ zero_extendqisi2 + uxtb ip, r6 + ldr r3, .L502 + mov r0, r6, lsr #8 + cmp r2, #1 + mov r1, r6, lsr #16 + bne .L479 + ldrb r2, [r3, #1111] @ zero_extendqisi2 + add r5, r8, fp + ldrb r3, [r3, #1188] @ zero_extendqisi2 + str r2, [r5, #2056] + mov r2, #0 + cmp r3, r2 + ldrb r3, [r7, #1112] @ zero_extendqisi2 + str r2, [r5, #2052] + movne r6, r6, lsr #24 + str r2, [r5, #2052] + str ip, [r5, #2052] str r0, [r5, #2052] str r1, [r5, #2052] - str r6, [r5, #2052] - str r3, [r5, #2056] + strne r6, [r5, #2052] + add r6, r8, fp + str r3, [r6, #2056] bl nandc_wait_flash_ready - ldr r2, [sp, #4] - ldr r3, [r2, #584] + ldr r3, [r7, #1096] ldrb r2, [r3, #12] @ zero_extendqisi2 - subs r3, r7, r8 + adds r3, r9, #0 movne r3, #1 cmp r2, #3 + add r2, r8, fp + add fp, r8, fp movne r3, #0 - cmp r3, r8 + cmp r3, #0 + mov r3, #0 + strne r9, [r6, #2056] + str r3, [r2, #2056] + str r3, [r5, #2052] + str r3, [r5, #2052] uxtb r3, r4 - strne r7, [r5, #2056] - str r8, [fp, #2056] - str r8, [r5, #2052] - str r8, [r5, #2052] str r3, [r5, #2052] mov r3, r4, lsr #8 - mov r4, r4, lsr #16 str r3, [r5, #2052] - str r4, [r5, #2052] + mov r3, r4, lsr #16 + str r3, [r5, #2052] + ldrb r3, [r7, #1188] @ zero_extendqisi2 + cmp r3, #0 mov r3, #48 + movne r4, r4, lsr #24 + strne r4, [r5, #2052] str r3, [fp, #2056] - b .L473 -.L471: - ldr r2, [r2, #584] - add r3, r9, fp - add r9, r9, fp - str ip, [r3, #2056] + b .L483 +.L479: + ldr r2, [r3, #1096] + ldrb r3, [r2, #7] @ zero_extendqisi2 + cmp r3, #1 + bne .L484 + ldrb r3, [r2, #12] @ zero_extendqisi2 + cmp r3, #2 + addeq r3, r8, fp + moveq lr, #38 + streq lr, [r3, #2056] +.L484: + ldrb lr, [r7, #1111] @ zero_extendqisi2 + add r3, r8, fp + add r8, r8, fp + str lr, [r3, #2056] + str ip, [r3, #2052] str r0, [r3, #2052] str r1, [r3, #2052] - str r6, [r3, #2052] ldrb r1, [r2, #12] @ zero_extendqisi2 - adds r2, r7, #0 + adds r2, r9, #0 movne r2, #1 cmp r1, #3 movne r2, #0 cmp r2, #0 - ldrb r2, [r8, #600] @ zero_extendqisi2 - strne r7, [r3, #2056] - str r2, [r9, #2056] + ldrb r2, [r7, #1112] @ zero_extendqisi2 + strne r9, [r3, #2056] + str r2, [r8, #2056] uxtb r2, r4 str r2, [r3, #2052] mov r2, r4, lsr #8 @@ -2345,18 +2477,18 @@ flash_start_plane_read: str r2, [r3, #2052] str r4, [r3, #2052] mov r3, #48 - str r3, [r9, #2056] -.L473: + str r3, [r8, #2056] +.L483: mov r0, r10 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b nandc_de_cs -.L486: +.L503: .align 2 -.L485: +.L502: .word .LANCHOR0 - .word .LANCHOR1+696 + .word .LANCHOR1+1068 .word .LC0 .fnend .size flash_start_plane_read, .-flash_start_plane_read @@ -2370,17 +2502,17 @@ flash_set_interface_mode: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r0 - ldr r6, .L520 + ldr r6, .L538 mov r9, #0 - ldr r10, .L520+4 + ldr r10, .L538+4 mov r7, r6 -.L499: - ldr r3, .L520+8 - ldr r5, [r6, #528] +.L516: + ldr r3, .L538+8 + ldr r5, [r6, #1040] ldrb r4, [r3, r9, asl #3] @ zero_extendqisi2 cmp r4, #69 cmpne r4, #152 - beq .L488 + beq .L505 cmp r4, #137 cmpne r4, #44 moveq r3, #1 @@ -2388,46 +2520,45 @@ flash_set_interface_mode: cmp r4, #155 orreq r3, r3, #1 cmp r3, #0 - beq .L489 -.L488: + beq .L506 +.L505: cmp r8, #1 - ldrb r1, [r7, #720] @ zero_extendqisi2 - bne .L490 + ldrb r1, [r7, #1232] @ zero_extendqisi2 + bne .L507 tst r1, #1 - beq .L489 + beq .L506 ldr r3, [r10] tst r3, #4096 - beq .L491 - ldr r0, .L520+12 + beq .L508 + ldr r0, .L538+12 bl printk -.L491: +.L508: mov r2, r9, asl #8 cmp r4, #44 cmpne r4, #137 add r3, r5, r2 mov r1, #239 str r1, [r3, #2056] - moveq r1, #1 - streq r1, [r3, #2052] - moveq r1, #5 - beq .L518 + beq .L537 cmp r4, #155 - moveq r1, #1 movne r1, #128 - streq r1, [r3, #2052] - moveq r1, #3 strne r1, [r3, #2052] movne r1, #1 - b .L518 -.L490: + bne .L535 +.L537: + mov r1, #1 + str r1, [r3, #2052] + mov r1, #5 + b .L535 +.L507: tst r1, #4 - beq .L489 + beq .L506 ldr r3, [r10] tst r3, #4096 - beq .L495 - ldr r0, .L520+16 + beq .L512 + ldr r0, .L538+16 bl printk -.L495: +.L512: mov r2, r9, asl #8 cmp r4, #44 cmpne r4, #137 @@ -2439,35 +2570,35 @@ flash_set_interface_mode: moveq r1, #1 streq r1, [r3, #2052] moveq r1, #35 - beq .L518 + beq .L535 cmp r4, #155 moveq r1, #1 streq r1, [r3, #2052] moveq r1, #37 movne r0, #128 strne r0, [r3, #2052] -.L518: +.L535: add r5, r5, r2 str r1, [r3, #2048] mov r3, #0 str r3, [r5, #2048] str r3, [r5, #2048] str r3, [r5, #2048] -.L489: +.L506: add r9, r9, #1 cmp r9, #4 - bne .L499 + bne .L516 bl nandc_wait_flash_ready mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L521: +.L539: .align 2 -.L520: +.L538: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+688 + .word .LANCHOR0+1200 + .word .LC37 .word .LC38 - .word .LC39 .fnend .size flash_set_interface_mode, .-flash_set_interface_mode .align 2 @@ -2478,15 +2609,15 @@ flash_reset: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L523 + ldr r3, .L541 mov r2, #255 - ldr r3, [r3, #528] + ldr r3, [r3, #1040] add r0, r3, r0, asl #8 str r2, [r0, #2056] b nandc_wait_flash_ready -.L524: +.L542: .align 2 -.L523: +.L541: .word .LANCHOR0 .fnend .size flash_reset, .-flash_reset @@ -2501,9 +2632,9 @@ flash_read_id: .save {r4, r5, r6, lr} .pad #16 mov r6, r0 - ldr r3, .L528 + ldr r3, .L546 mov r4, r1 - ldr r5, [r3, #528] + ldr r5, [r3, #1040] bl flash_reset mov r0, r6 add r5, r5, r6, asl #8 @@ -2536,10 +2667,10 @@ flash_read_id: sub r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L525 + bhi .L543 ldrb r1, [r4, #2] @ zero_extendqisi2 ldrb r3, [r4, #1] @ zero_extendqisi2 - ldr r0, .L528+4 + ldr r0, .L546+4 str r1, [sp] ldrb r1, [r4, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -2549,15 +2680,15 @@ flash_read_id: str r1, [sp, #12] add r1, r6, #1 bl printk -.L525: +.L543: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L529: +.L547: .align 2 -.L528: +.L546: .word .LANCHOR0 - .word .LC40 + .word .LC39 .fnend .size flash_read_id, .-flash_read_id .align 2 @@ -2570,10 +2701,10 @@ flash_read_spare: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r2 - ldr r3, .L532 - ldr r2, .L532+4 + ldr r3, .L550 + ldr r2, .L550+4 ldrb r3, [r3, #13] @ zero_extendqisi2 - ldr r4, [r2, #528] + ldr r4, [r2, #1040] mov r2, #0 add r4, r4, r0, asl #8 mov r3, r3, asl #9 @@ -2593,9 +2724,9 @@ flash_read_spare: ldr r3, [r4, #2048] strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L533: +.L551: .align 2 -.L532: +.L550: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -2607,12 +2738,12 @@ flash_read_otp_data: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L538 + ldr r3, .L556 stmfd sp!, {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, r0 - ldr r7, [r3, #528] + ldr r7, [r3, #1040] mov r10, r8, asl #8 mov r5, r1 mov r9, r2 @@ -2637,7 +2768,7 @@ flash_read_otp_data: ldr r2, [r4, #2048] ldr r3, [r4, #2048] ldr r1, [r4, #2048] - ldr r0, .L538+4 + ldr r0, .L556+4 str r1, [sp] mov r1, r5 bl printk @@ -2655,11 +2786,11 @@ flash_read_otp_data: str r3, [r4, #2056] bl nandc_wait_flash_ready add r3, r9, #16384 -.L535: +.L553: ldr r2, [r4, #2048] strb r2, [r9], #1 cmp r9, r3 - bne .L535 + bne .L553 add r7, r7, r10 mov r3, #239 mov r0, #50 @@ -2677,11 +2808,11 @@ flash_read_otp_data: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b nandc_de_cs -.L539: +.L557: .align 2 -.L538: +.L556: .word .LANCHOR0 - .word .LC41 + .word .LC40 .fnend .size flash_read_otp_data, .-flash_read_otp_data .align 2 @@ -2691,13 +2822,13 @@ sandisk_prog_test_bad_block: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L555 + ldr r3, .L573 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r7, r0, asl #8 - ldr r6, .L555+4 + ldr r6, .L573+4 mov r8, r1 - ldr r5, [r3, #528] + ldr r5, [r3, #1040] ldrb r4, [r6, #33] @ zero_extendqisi2 add r3, r5, r7 cmp r4, #0 @@ -2725,26 +2856,26 @@ sandisk_prog_test_bad_block: bl timer_delay_ns ldr r2, [r4, #2048] ands r4, r2, #5 - beq .L543 + beq .L561 ldr r3, [r6] tst r3, #4096 - beq .L543 - ldr r0, .L555+8 + beq .L561 + ldr r0, .L573+8 mov r1, r8 bl printk -.L543: +.L561: ldrb r3, [r6, #34] @ zero_extendqisi2 mov r0, r4 cmp r3, #0 addne r5, r5, r7 strne r3, [r5, #2056] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L556: +.L574: .align 2 -.L555: +.L573: .word .LANCHOR0 .word .LANCHOR2 - .word .LC42 + .word .LC41 .fnend .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block .align 2 @@ -2755,10 +2886,10 @@ nandc_rdy_status: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L559 + ldr r3, .L577 .pad #8 sub sp, sp, #8 - ldr r3, [r3, #528] + ldr r3, [r3, #1040] ldr r3, [r3] str r3, [sp, #4] ldr r0, [sp, #4] @@ -2766,9 +2897,9 @@ nandc_rdy_status: add sp, sp, #8 @ sp needed bx lr -.L560: +.L578: .align 2 -.L559: +.L577: .word .LANCHOR0 .fnend .size nandc_rdy_status, .-nandc_rdy_status @@ -2787,23 +2918,23 @@ nandc_bch_sel: ldr r2, [sp, #4] orr r2, r2, #1 str r2, [sp, #4] - ldr r2, .L574 - ldrb r1, [r2, #516] @ zero_extendqisi2 - strb r0, [r2, #660] + ldr r2, .L592 + ldrb r1, [r2, #1028] @ zero_extendqisi2 + strb r0, [r2, #1172] cmp r1, #9 - bne .L562 - ldr r1, [r2, #528] + bne .L580 + ldr r1, [r2, #1040] cmp r0, #70 ldr r2, [sp, #4] str r2, [r1, #16] - beq .L563 + beq .L581 cmp r0, #60 moveq r3, #3 - beq .L563 + beq .L581 cmp r0, #40 moveq r3, #2 movne r3, #1 -.L563: +.L581: mov r2, #0 str r2, [sp] ldr r2, [sp] @@ -2815,11 +2946,11 @@ nandc_bch_sel: str r3, [sp] ldr r3, [sp] str r3, [r1, #32] - b .L561 -.L562: + b .L579 +.L580: ldr r1, [sp, #4] cmp r0, #16 - ldr r2, [r2, #528] + ldr r2, [r2, #1040] str r1, [r2, #8] str r3, [sp] ldr r3, [sp] @@ -2829,36 +2960,36 @@ nandc_bch_sel: ldr r3, [sp] bic r3, r3, #262144 str r3, [sp] - beq .L572 + beq .L590 ldr r3, [sp] cmp r0, #24 orreq r3, r3, #16 - beq .L573 + beq .L591 orr r3, r3, #262144 str r3, [sp] ldr r3, [sp] cmp r0, #40 orr r3, r3, #16 str r3, [sp] - bne .L566 -.L572: + bne .L584 +.L590: ldr r3, [sp] bic r3, r3, #16 -.L573: +.L591: str r3, [sp] -.L566: +.L584: ldr r3, [sp] orr r3, r3, #1 str r3, [sp] ldr r3, [sp] str r3, [r2, #12] -.L561: +.L579: add sp, sp, #8 @ sp needed bx lr -.L575: +.L593: .align 2 -.L574: +.L592: .word .LANCHOR0 .fnend .size nandc_bch_sel, .-nandc_bch_sel @@ -2871,84 +3002,84 @@ zftl_flash_resume: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r4, .L587 - ldrb r3, [r4, #516] @ zero_extendqisi2 - ldr r2, [r4, #532] + ldr r4, .L605 + ldrb r3, [r4, #1028] @ zero_extendqisi2 + ldr r2, [r4, #1044] cmp r3, #9 - ldr r3, [r4, #528] + ldr r3, [r4, #1040] str r2, [r3] - ldr r2, [r4, #536] - ldr r3, [r4, #528] + ldr r2, [r4, #1048] + ldr r3, [r4, #1040] str r2, [r3, #4] - ldr r2, [r4, #540] - bne .L577 + ldr r2, [r4, #1052] + bne .L595 str r2, [r3, #16] - ldr r2, [r4, #544] + ldr r2, [r4, #1056] str r2, [r3, #32] - ldr r2, [r4, #548] + ldr r2, [r4, #1060] str r2, [r3, #80] - ldr r2, [r4, #552] + ldr r2, [r4, #1064] str r2, [r3, #84] - ldr r2, [r4, #556] + ldr r2, [r4, #1068] str r2, [r3, #520] - ldr r2, [r4, #560] + ldr r2, [r4, #1072] str r2, [r3, #8] - b .L578 -.L577: + b .L596 +.L595: str r2, [r3, #8] - ldr r2, [r4, #544] + ldr r2, [r4, #1056] str r2, [r3, #12] - ldr r2, [r4, #548] + ldr r2, [r4, #1060] str r2, [r3, #304] - ldr r2, [r4, #552] + ldr r2, [r4, #1064] str r2, [r3, #308] - ldr r2, [r4, #556] + ldr r2, [r4, #1068] str r2, [r3, #336] - ldr r2, [r4, #560] + ldr r2, [r4, #1072] str r2, [r3, #344] -.L578: - ldr r6, .L587+4 +.L596: + ldr r6, .L605+4 mov r5, #0 mov r8, #2 sub r7, r6, #8 -.L580: +.L598: ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L579 + bhi .L597 uxtb r9, r5 mov r0, r9 bl flash_reset strb r8, [r5, r7] mov r0, r9 bl zftl_flash_enter_slc_mode -.L579: +.L597: add r5, r5, #1 cmp r5, #4 - bne .L580 - ldrb r3, [r4, #623] @ zero_extendqisi2 + bne .L598 + ldrb r3, [r4, #1135] @ zero_extendqisi2 cmp r3, #0 - beq .L581 + beq .L599 mov r0, #1 bl nandc_set_if_mode mov r0, r5 bl flash_set_interface_mode mov r0, r5 bl nandc_set_if_mode - ldr r3, .L587 - ldrb r0, [r3, #549] @ zero_extendqisi2 + ldr r3, .L605 + ldrb r0, [r3, #1061] @ zero_extendqisi2 bl nandc_set_ddr_para -.L581: - ldr r3, .L587+8 +.L599: + ldr r3, .L605+8 ldrb r0, [r3, #24] @ zero_extendqisi2 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} b nandc_bch_sel -.L588: +.L606: .align 2 -.L587: +.L605: .word .LANCHOR0 - .word .LANCHOR0+688 + .word .LANCHOR0+1200 .word .LANCHOR2 .fnend .size zftl_flash_resume, .-zftl_flash_resume @@ -2960,8 +3091,8 @@ rk_nandc_flash_ready: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L592 - ldrb r3, [r3, #516] @ zero_extendqisi2 + ldr r3, .L610 + ldrb r3, [r3, #1028] @ zero_extendqisi2 cmp r3, #9 ldreq r3, [r0, #292] ldrne r3, [r0, #368] @@ -2976,9 +3107,9 @@ rk_nandc_flash_ready: streq r3, [r0, #288] strne r3, [r0, #364] bx lr -.L593: +.L611: .align 2 -.L592: +.L610: .word .LANCHOR0 .fnend .size rk_nandc_flash_ready, .-rk_nandc_flash_ready @@ -2991,11 +3122,11 @@ nandc_iqr_wait_flash_ready: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L601 - ldr r0, [r4, #528] + ldr r4, .L619 + ldr r0, [r4, #1040] bl rk_nandc_rb_irq_flag_init - ldrb r3, [r4, #516] @ zero_extendqisi2 - ldr r0, [r4, #528] + ldrb r3, [r4, #1028] @ zero_extendqisi2 + ldr r0, [r4, #1040] cmp r3, #9 ldreq r3, [r0, #292] ldrne r3, [r0, #368] @@ -3011,11 +3142,11 @@ nandc_iqr_wait_flash_ready: strne r3, [r0, #364] ldr r3, [r0] tst r3, #512 - bne .L597 + bne .L615 ldmfd sp!, {r4, lr} b wait_for_nand_flash_ready -.L597: - ldrb r3, [r4, #516] @ zero_extendqisi2 +.L615: + ldrb r3, [r4, #1028] @ zero_extendqisi2 cmp r3, #9 ldreq r3, [r0, #292] ldrne r3, [r0, #368] @@ -3030,9 +3161,9 @@ nandc_iqr_wait_flash_ready: streq r3, [r0, #288] strne r3, [r0, #364] ldmfd sp!, {r4, pc} -.L602: +.L620: .align 2 -.L601: +.L619: .word .LANCHOR0 .fnend .size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready @@ -3041,115 +3172,129 @@ nandc_iqr_wait_flash_ready: .type flash_erase_duplane_block, %function flash_erase_duplane_block: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + stmfd sp!, {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, r3 - ldr r4, .L620 - mov r5, r0 - mov fp, r1 + ldr fp, .L646 + mov r4, r0 + mov r5, r1 mov r9, r2 - ldrb r3, [r4, #589] @ zero_extendqisi2 + ldrb r3, [fp, #1101] @ zero_extendqisi2 cmp r3, r0 - bhi .L604 - ldr r1, .L620+4 - mov r2, #604 - ldr r0, .L620+8 + bhi .L622 + ldr r1, .L646+4 + mov r2, #688 + ldr r0, .L646+8 bl printk bl dump_stack -.L604: - ldrb r2, [r4, #589] @ zero_extendqisi2 - ldr r3, .L620 - cmp r2, r5 - bls .L611 - add r5, r3, r5 - ldr r7, [r3, #528] - ldr r3, .L620+12 - ldrb r6, [r5, #668] @ zero_extendqisi2 +.L622: + ldrb r2, [fp, #1101] @ zero_extendqisi2 + ldr r3, .L646 + cmp r2, r4 + mvnls r0, #0 + bls .L623 + add r4, r3, r4 + ldr r7, [r3, #1040] + ldr r3, .L646+12 + ldrb r6, [r4, #1180] @ zero_extendqisi2 ldr r3, [r3] add r10, r6, #8 tst r3, #16 add r10, r7, r10, asl #8 - beq .L606 - ldr r0, .L620+16 + beq .L624 + ldr r0, .L646+16 mov r1, r6 mov r2, r9 mov r3, r8 bl printk -.L606: +.L624: bl nandc_wait_flash_ready mov r0, r6 bl nandc_cs - cmp fp, #0 + cmp r5, #0 mov r0, r6 - bne .L607 + bne .L625 bl zftl_flash_enter_slc_mode - b .L608 -.L607: + b .L626 +.L625: bl zftl_flash_exit_slc_mode -.L608: - mov fp, r6, asl #8 - mov r3, #96 - add r5, r7, fp - str r3, [r5, #2056] - uxtb r3, r9 - str r3, [r5, #2052] - mov r3, r9, lsr #8 - str r3, [r5, #2052] - mov r3, r9, lsr #16 - str r3, [r5, #2052] - ldrb r3, [r4, #721] @ zero_extendqisi2 - cmp r3, #0 - movne r4, #0 - bne .L609 - mov r3, #208 - str r3, [r5, #2056] +.L626: + mov r3, r6, asl #8 + mov r2, #96 + add r4, r7, r3 + str r2, [r4, #2056] + uxtb r2, r9 + str r2, [r4, #2052] + mov r2, r9, lsr #8 + str r2, [r4, #2052] + mov r2, r9, lsr #16 + str r2, [r4, #2052] + ldrb r2, [fp, #1188] @ zero_extendqisi2 + cmp r2, #0 + movne r2, r9, lsr #24 + strne r2, [r4, #2052] + ldrb r2, [fp, #1233] @ zero_extendqisi2 + cmp r2, #0 + movne r5, #0 + bne .L628 + add r2, r7, r3 + mov r1, #208 + str r3, [sp, #4] + str r1, [r2, #2056] bl nandc_wait_flash_ready mov r0, r10 bl flash_read_status - and r4, r0, #5 -.L609: - add r7, r7, fp - mov r3, #96 - str r3, [r7, #2056] - uxtb r3, r8 - str r3, [r5, #2052] - mov r3, r8, lsr #8 - mov r8, r8, lsr #16 - str r3, [r5, #2052] + ldr r3, [sp, #4] + and r5, r0, #5 +.L628: + add r2, r7, r3 + mov r1, #96 + add r7, r7, r3 mov r3, #208 - str r8, [r5, #2052] + str r1, [r2, #2056] + uxtb r2, r8 + str r2, [r4, #2052] + mov r2, r8, lsr #8 + str r2, [r4, #2052] + mov r2, r8, lsr #16 + str r2, [r4, #2052] + ldrb r2, [fp, #1188] @ zero_extendqisi2 + cmp r2, #0 + movne r8, r8, lsr #24 + strne r8, [r4, #2052] str r3, [r7, #2056] bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready mov r0, r10 bl flash_read_status - mov r5, r0 + mov r4, r0 mov r0, r6 bl nandc_de_cs - and r3, r5, #5 - orrs r4, r3, r4 - beq .L610 - ldr r0, .L620+20 + and r3, r4, #5 + orrs r5, r3, r5 + beq .L630 + ldr r0, .L646+20 mov r1, r9 - mov r2, r5 + mov r2, r4 bl printk -.L610: - mov r0, r4 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L611: - mvn r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L621: +.L630: + mov r0, r5 +.L623: + add sp, sp, #12 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L647: .align 2 -.L620: +.L646: .word .LANCHOR0 - .word .LANCHOR1+720 + .word .LANCHOR1+1092 .word .LC0 .word .LANCHOR2 + .word .LC42 .word .LC43 - .word .LC44 .fnend .size flash_erase_duplane_block, .-flash_erase_duplane_block .align 2 @@ -3161,97 +3306,103 @@ flash_erase_block_en: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - mvn r9, #0 - ldr r6, .L637 + mvn r4, #0 + ldr r5, .L667 mov r7, r0 mov fp, r1 mov r8, r2 - ldrb r3, [r6, #676] @ zero_extendqisi2 + ldrb r3, [r5, #1189] @ zero_extendqisi2 rsb r3, r3, #24 - bic r9, r2, r9, asl r3 - ldrb r3, [r6, #589] @ zero_extendqisi2 + bic r4, r2, r4, asl r3 + ldrb r3, [r5, #1101] @ zero_extendqisi2 cmp r3, r0 - bhi .L623 - ldr r1, .L637+4 - movw r2, #653 - ldr r0, .L637+8 + bhi .L649 + ldr r1, .L667+4 + movw r2, #750 + ldr r0, .L667+8 bl printk bl dump_stack -.L623: - ldrb r2, [r6, #589] @ zero_extendqisi2 - ldr r3, .L637 +.L649: + ldrb r2, [r5, #1101] @ zero_extendqisi2 + ldr r3, .L667 cmp r2, r7 - bls .L629 + bls .L656 add r2, r3, r7 - ldr r4, [r3, #528] - ldr r3, .L637+12 - ldrb r5, [r2, #668] @ zero_extendqisi2 + ldr r9, [r3, #1040] + ldr r3, .L667+12 + ldrb r6, [r2, #1180] @ zero_extendqisi2 ldr r3, [r3] - add r10, r5, #8 + add r10, r6, #8 tst r3, #16 - add r10, r4, r10, asl #8 - beq .L625 - ldr r0, .L637+16 - mov r1, r5 + add r10, r9, r10, asl #8 + beq .L651 + ldr r0, .L667+16 + mov r1, r6 mov r2, r8 mov r3, fp bl printk -.L625: +.L651: bl nandc_wait_flash_ready - mov r0, r5 + mov r0, r6 bl nandc_cs cmp fp, #0 - mov r0, r5 - bne .L626 + mov r0, r6 + bne .L652 bl zftl_flash_enter_slc_mode - b .L627 -.L626: + b .L653 +.L652: bl zftl_flash_exit_slc_mode -.L627: - add r4, r4, r5, asl #8 - mov r3, #96 - str r3, [r4, #2056] - uxtb r3, r9 - str r3, [r4, #2052] - mov r3, r9, lsr #8 - mov r9, r9, lsr #16 - str r3, [r4, #2052] +.L653: + mov r2, r6, asl #8 + mov r1, #96 + add r3, r9, r2 + add r9, r9, r2 + str r1, [r3, #2056] + uxtb r1, r4 + str r1, [r3, #2052] + mov r1, r4, lsr #8 + str r1, [r3, #2052] + mov r1, r4, lsr #16 + str r1, [r3, #2052] + ldrb r1, [r5, #1188] @ zero_extendqisi2 + cmp r1, #0 + movne r4, r4, lsr #24 + strne r4, [r3, #2052] mov r3, #208 - str r9, [r4, #2052] - str r3, [r4, #2056] + str r3, [r9, #2056] bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready mov r0, r10 bl flash_read_status mov r4, r0 - mov r0, r5 + mov r0, r6 bl nandc_de_cs ands r4, r4, #5 - beq .L628 - ldrh r1, [r6, #2] + beq .L655 + ldrh r1, [r5, #2] mov r0, r8 bl __aeabi_uidiv mov r3, r4 mov r1, r7 mvn r4, #0 mov r2, r0 - ldr r0, .L637+20 + ldr r0, .L667+20 bl printk -.L628: +.L655: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L629: +.L656: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L638: +.L668: .align 2 -.L637: +.L667: .word .LANCHOR0 - .word .LANCHOR1+748 + .word .LANCHOR1+1120 .word .LC0 .word .LANCHOR2 + .word .LC44 .word .LC45 - .word .LC46 .fnend .size flash_erase_block_en, .-flash_erase_block_en .align 2 @@ -3277,45 +3428,45 @@ flash_erase_all: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r6, #0 - ldr r3, .L648 - ldr r7, .L648+4 + ldr r3, .L678 + ldr r7, .L678+4 ldrb r4, [r3, #17] @ zero_extendqisi2 ldrh r3, [r3, #18] mov r8, r7 smulbb r4, r4, r3 uxth r4, r4 -.L641: - ldrb r2, [r7, #589] @ zero_extendqisi2 +.L671: + ldrb r2, [r7, #1101] @ zero_extendqisi2 uxth r3, r6 cmp r2, r3 - bls .L646 + bls .L676 add r3, r7, r3 mov r5, #0 - ldrb r9, [r3, #668] @ zero_extendqisi2 -.L642: + ldrb r9, [r3, #1180] @ zero_extendqisi2 +.L672: uxth r3, r5 cmp r3, r4 - bcs .L647 + bcs .L677 ldrh r1, [r8, #2] mov r0, r9 mul r1, r1, r5 bl flash_erase_block add r5, r5, #1 - b .L642 -.L647: + b .L672 +.L677: add r6, r6, #1 - b .L641 -.L646: - ldr r0, .L648+8 + b .L671 +.L676: + ldr r0, .L678+8 mov r1, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L649: +.L679: .align 2 -.L648: +.L678: .word .LANCHOR2 .word .LANCHOR0 - .word .LC47 + .word .LC46 .fnend .size flash_erase_all, .-flash_erase_all .align 2 @@ -3326,8 +3477,8 @@ rk_nandc_flash_xfer_completed: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L653 - ldrb r3, [r3, #516] @ zero_extendqisi2 + ldr r3, .L683 + ldrb r3, [r3, #1028] @ zero_extendqisi2 cmp r3, #9 ldreq r3, [r0, #292] ldrne r3, [r0, #368] @@ -3342,9 +3493,9 @@ rk_nandc_flash_xfer_completed: streq r3, [r0, #288] strne r3, [r0, #364] bx lr -.L654: +.L684: .align 2 -.L653: +.L683: .word .LANCHOR0 .fnend .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed @@ -3358,15 +3509,15 @@ nandc_xfer_start: stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r5, r0 - ldr r4, .L672 + ldr r4, .L702 mov r0, r2 .pad #20 sub sp, sp, #20 and r6, r5, #1 add lr, r1, #1 - ldrb r2, [r4, #516] @ zero_extendqisi2 + ldrb r2, [r4, #1028] @ zero_extendqisi2 cmp r2, #9 - bne .L656 + bne .L686 mov r2, #0 str r2, [sp, #4] ldr r2, [sp, #4] @@ -3397,39 +3548,39 @@ nandc_xfer_start: ldr r2, [sp, #4] orr r2, r2, #128 str r2, [sp, #4] - ldrb r2, [r4, #624] @ zero_extendqisi2 + ldrb r2, [r4, #1136] @ zero_extendqisi2 cmp r2, #0 - beq .L657 - ldrb r2, [r4, #656] @ zero_extendqisi2 + beq .L687 + ldrb r2, [r4, #1168] @ zero_extendqisi2 cmp r2, #0 ldrne r2, [sp, #4] orrne r2, r2, #512 strne r2, [sp, #4] -.L657: +.L687: ldr r1, [sp, #4] mov r2, r5 - str r3, [r4, #636] + str r3, [r4, #1148] ubfx r1, r1, #22, #6 - str r0, [r4, #632] + str r0, [r4, #1144] mov r1, r1, asl #10 bl rknand_dma_map_single mov r2, r5 clz r5, r5 mov r5, r5, lsr #5 ldr r1, [sp, #4] - str r0, [r4, #640] + str r0, [r4, #1152] ubfx r1, r1, #22, #6 - ldr r0, [r4, #636] + ldr r0, [r4, #1148] mov r1, r1, asl #2 bl rknand_dma_map_single - ldr r2, [r4, #528] + ldr r2, [r4, #1040] mov r3, #1 - str r3, [r4, #648] - ldr r3, [r4, #640] + str r3, [r4, #1160] + ldr r3, [r4, #1152] str r3, [r2, #52] str r0, [r2, #56] ldr r3, [r2, #48] - str r0, [r4, #644] + str r0, [r4, #1156] str r3, [sp, #8] ldr r3, [sp, #8] bic r3, r3, #15872 @@ -3452,7 +3603,7 @@ nandc_xfer_start: ldr r3, [sp, #8] orr r3, r3, #1 str r3, [sp, #8] - movw r3, #658 + movw r3, #1170 ldrh r1, [r4, r3] ldr r3, [sp, #8] ubfx r1, r1, #0, #11 @@ -3469,14 +3620,14 @@ nandc_xfer_start: str r3, [sp, #4] ldr r3, [sp, #4] str r3, [r2, #16] - b .L655 -.L656: - ldr r2, [r4, #528] + b .L685 +.L686: + ldr r2, [r4, #1040] mov ip, #0 cmp r5, ip ubfx lr, lr, #1, #6 ldr r2, [r2, #12] - ldreq r3, [r4, #628] + ldreq r3, [r4, #1140] str r2, [sp, #12] ldr r2, [sp, #12] bic r2, r2, #65280 @@ -3515,55 +3666,55 @@ nandc_xfer_start: orr lr, r6, lr, asl #22 str lr, [sp, #4] streq r2, [r3] - beq .L663 - ldrb r2, [r4, #660] @ zero_extendqisi2 + beq .L693 + ldrb r2, [r4, #1172] @ zero_extendqisi2 mov r1, r1, lsr #1 mov r6, ip cmp r2, #25 movcc r7, #64 movcs r7, #128 -.L661: +.L691: cmp r6, r1 add r3, r3, #4 add r8, ip, r7 - bge .L663 + bge .L693 ldrh lr, [r3, #-2] mov ip, ip, lsr #2 - ldr r9, [r4, #628] + ldr r9, [r4, #1140] add r6, r6, #1 ldrh r2, [r3, #-4] orr lr, r2, lr, asl #16 str lr, [r9, ip, asl #2] mov ip, r8 - b .L661 -.L663: + b .L691 +.L693: ldr r1, [sp, #4] mov r2, r5 - ldr r3, [r4, #628] + ldr r3, [r4, #1140] ubfx r1, r1, #22, #6 - str r0, [r4, #632] + str r0, [r4, #1144] mov r1, r1, asl #10 - str r3, [r4, #636] + str r3, [r4, #1148] bl rknand_dma_map_single mov r2, r5 clz r5, r5 mov r5, r5, lsr #5 ldr r1, [sp, #4] - str r0, [r4, #640] + str r0, [r4, #1152] ubfx r1, r1, #22, #6 - ldr r0, [r4, #636] + ldr r0, [r4, #1148] mov r1, r1, asl #7 bl rknand_dma_map_single - ldr r2, [r4, #640] + ldr r2, [r4, #1152] mov r3, #1 - str r3, [r4, #648] - ldr r3, [r4, #528] + str r3, [r4, #1160] + ldr r3, [r4, #1040] str r2, [r3, #20] mov r2, #0 str r0, [r3, #24] str r2, [sp, #8] ldr r2, [sp, #8] - str r0, [r4, #644] + str r0, [r4, #1156] bic r2, r2, #15872 orr r2, r2, #8192 str r2, [sp, #8] @@ -3595,13 +3746,13 @@ nandc_xfer_start: str r2, [sp, #4] ldr r2, [sp, #4] str r2, [r3, #8] -.L655: +.L685: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L673: +.L703: .align 2 -.L672: +.L702: .word .LANCHOR0 .fnend .size nandc_xfer_start, .-nandc_xfer_start @@ -3613,26 +3764,26 @@ nandc_set_seed: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L681 + ldr r2, .L711 and r0, r0, #127 - ldr r3, .L681+4 + ldr r3, .L711+4 mov r0, r0, asl #1 - ldrb r1, [r2, #656] @ zero_extendqisi2 + ldrb r1, [r2, #1168] @ zero_extendqisi2 ldrh r3, [r3, r0] cmp r1, #0 - ldr r1, .L681 - ldrb r2, [r2, #516] @ zero_extendqisi2 + ldr r1, .L711 + ldrb r2, [r2, #1028] @ zero_extendqisi2 orrne r3, r3, #-1073741824 cmp r2, #9 - ldr r2, [r1, #528] + ldr r2, [r1, #1040] streq r3, [r2, #520] strne r3, [r2, #336] bx lr -.L682: +.L712: .align 2 -.L681: +.L711: .word .LANCHOR0 - .word .LANCHOR1+772 + .word .LANCHOR1+1144 .fnend .size nandc_set_seed, .-nandc_set_seed .align 2 @@ -3645,49 +3796,49 @@ zftl_flash_de_init: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} bl nandc_wait_flash_ready - ldr r4, .L703 + ldr r4, .L733 ldrb r3, [r4] @ zero_extendqisi2 cmp r3, #0 - beq .L684 - ldrb r0, [r4, #590] @ zero_extendqisi2 + beq .L714 + ldrb r0, [r4, #1102] @ zero_extendqisi2 cmp r0, #0 - bne .L684 - ldrb r3, [r4, #516] @ zero_extendqisi2 + bne .L714 + ldrb r3, [r4, #1028] @ zero_extendqisi2 cmp r3, #9 - beq .L684 + beq .L714 bl zftl_flash_exit_slc_mode -.L684: +.L714: mov r0, #0 - ldr r5, .L703 + ldr r5, .L733 bl hynix_reconfig_rr_para - ldrb r3, [r4, #623] @ zero_extendqisi2 + ldrb r3, [r4, #1135] @ zero_extendqisi2 cmp r3, #0 - beq .L685 - ldrb r3, [r5, #720] @ zero_extendqisi2 + beq .L715 + ldrb r3, [r5, #1232] @ zero_extendqisi2 tst r3, #1 - beq .L685 + beq .L715 mov r0, #1 bl flash_set_interface_mode mov r0, #1 bl nandc_set_if_mode mov r3, #0 - strb r3, [r5, #623] -.L685: - ldrb r3, [r4, #656] @ zero_extendqisi2 - ldr r5, .L703 + strb r3, [r5, #1135] +.L715: + ldrb r3, [r4, #1168] @ zero_extendqisi2 + ldr r5, .L733 cmp r3, #0 - beq .L686 + beq .L716 mov r0, #0 - strb r0, [r5, #656] + strb r0, [r5, #1168] bl nandc_set_seed mov r3, #1 - strb r3, [r5, #656] -.L686: + strb r3, [r5, #1168] +.L716: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L704: +.L734: .align 2 -.L703: +.L733: .word .LANCHOR0 .fnend .size zftl_flash_de_init, .-zftl_flash_de_init @@ -3699,12 +3850,12 @@ nandc_randomizer_enable: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L706 - strb r0, [r3, #656] + ldr r3, .L736 + strb r0, [r3, #1168] bx lr -.L707: +.L737: .align 2 -.L706: +.L736: .word .LANCHOR0 .fnend .size nandc_randomizer_enable, .-nandc_randomizer_enable @@ -3716,14 +3867,14 @@ nandc_get_chip_if: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L709 + ldr r3, .L739 add r0, r0, #8 - ldr r3, [r3, #528] + ldr r3, [r3, #1040] add r0, r3, r0, asl #8 bx lr -.L710: +.L740: .align 2 -.L709: +.L739: .word .LANCHOR0 .fnend .size nandc_get_chip_if, .-nandc_get_chip_if @@ -3737,11 +3888,11 @@ zbuf_init: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, #0 - ldr r4, .L715 + ldr r4, .L745 mov r7, r5 - sub r8, r4, #724 -.L712: - ldrb r0, [r8, #2260] @ zero_extendqisi2 + ldr r8, .L745+4 +.L742: + ldrb r0, [r8, #2772] @ zero_extendqisi2 uxtb r3, r5 add r2, r3, #1 strb r3, [r4, #1] @@ -3751,24 +3902,24 @@ zbuf_init: strb r7, [r4, #2] str r7, [r4, #8] bl ftl_malloc - ldr r6, .L715+4 + ldr r6, .L745+4 add r4, r4, #48 str r0, [r4, #-44] mov r0, #64 bl ftl_malloc cmp r5, #32 str r0, [r4, #-36] - bne .L712 + bne .L742 mvn r3, #0 - strb r5, [r6, #2262] - strb r3, [r6, #2212] + strb r5, [r6, #2774] + strb r3, [r6, #2724] mov r3, #0 - strb r3, [r6, #2261] + strb r3, [r6, #2773] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L716: +.L746: .align 2 -.L715: - .word .LANCHOR0+724 +.L745: + .word .LANCHOR0+1236 .word .LANCHOR0 .fnend .size zbuf_init, .-zbuf_init @@ -3780,10 +3931,10 @@ buf_reinit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L720 + ldr r2, .L750 mov r3, #0 mov r1, r3 -.L718: +.L748: uxtb r0, r3 add r3, r3, #1 cmp r3, #32 @@ -3793,18 +3944,18 @@ buf_reinit: strb ip, [r2, #-48] strb r1, [r2, #-46] str r1, [r2, #-40] - bne .L718 - ldr r2, .L720+4 + bne .L748 + ldr r2, .L750+4 mvn r1, #0 - strb r3, [r2, #2262] - strb r1, [r2, #2212] + strb r3, [r2, #2774] + strb r1, [r2, #2724] mov r1, #0 - strb r1, [r2, #2261] + strb r1, [r2, #2773] bx lr -.L721: +.L751: .align 2 -.L720: - .word .LANCHOR0+724 +.L750: + .word .LANCHOR0+1236 .word .LANCHOR0 .fnend .size buf_reinit, .-buf_reinit @@ -3823,47 +3974,47 @@ buf_add_tail: ldrb r3, [r0] @ zero_extendqisi2 mov r5, r0 cmp r3, #255 - ldrne r2, .L730 + ldrne r2, .L760 movne r1, #48 - bne .L728 + bne .L758 ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r3, #255 - bne .L724 - ldr r1, .L730+4 + bne .L754 + ldr r1, .L760+4 mov r2, #74 - ldr r0, .L730+8 + ldr r0, .L760+8 bl printk bl dump_stack -.L724: +.L754: ldrb r3, [r4, #1] @ zero_extendqisi2 strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L728: +.L758: mov r5, r3 mla r3, r1, r3, r2 - ldrb r3, [r3, #724] @ zero_extendqisi2 + ldrb r3, [r3, #1236] @ zero_extendqisi2 cmp r3, #255 - bne .L728 + bne .L758 ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r3, #255 - bne .L726 - ldr r1, .L730+4 + bne .L756 + ldr r1, .L760+4 mov r2, #81 - ldr r0, .L730+8 + ldr r0, .L760+8 bl printk bl dump_stack -.L726: - ldr r2, .L730 +.L756: + ldr r2, .L760 mov r1, #48 ldrb r3, [r4, #1] @ zero_extendqisi2 mla r5, r1, r5, r2 - strb r3, [r5, #724] + strb r3, [r5, #1236] ldmfd sp!, {r3, r4, r5, pc} -.L731: +.L761: .align 2 -.L730: +.L760: .word .LANCHOR0 - .word .LANCHOR1+1028 + .word .LANCHOR1+1400 .word .LC0 .fnend .size buf_add_tail, .-buf_add_tail @@ -3882,17 +4033,17 @@ queue_read_cmd: mov r3, #1 mov r1, r4 strb r3, [r4, #42] - ldr r0, .L734 + ldr r0, .L764 mov r3, #0 strb r3, [r4, #43] mvn r3, #0 strb r3, [r4] ldmfd sp!, {r4, lr} b buf_add_tail -.L735: +.L765: .align 2 -.L734: - .word .LANCHOR0+2263 +.L764: + .word .LANCHOR0+2775 .fnend .size queue_read_cmd, .-queue_read_cmd .align 2 @@ -3905,34 +4056,34 @@ zbuf_free: stmfd sp!, {r4, lr} .save {r4, lr} ldrb r3, [r0, #2] @ zero_extendqisi2 - ldr r4, .L746 + ldr r4, .L776 and r3, r3, #8 uxtb r3, r3 strb r3, [r0, #2] cmp r3, #0 - beq .L737 + beq .L767 ldr r3, [r0, #20] cmn r3, #1 - beq .L737 + beq .L767 mov r1, r0 - ldr r0, .L746+4 + ldr r0, .L776+4 bl buf_add_tail - b .L738 -.L737: - ldrb r3, [r4, #2261] @ zero_extendqisi2 + b .L768 +.L767: + ldrb r3, [r4, #2773] @ zero_extendqisi2 strb r3, [r0] ldrb r3, [r0, #1] @ zero_extendqisi2 - strb r3, [r4, #2261] -.L738: - ldrb r3, [r4, #2262] @ zero_extendqisi2 + strb r3, [r4, #2773] +.L768: + ldrb r3, [r4, #2774] @ zero_extendqisi2 add r3, r3, #1 - strb r3, [r4, #2262] + strb r3, [r4, #2774] ldmfd sp!, {r4, pc} -.L747: +.L777: .align 2 -.L746: +.L776: .word .LANCHOR0 - .word .LANCHOR0+2261 + .word .LANCHOR0+2773 .fnend .size zbuf_free, .-zbuf_free .align 2 @@ -3945,61 +4096,62 @@ buf_alloc: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L759 - ldrb r3, [r4, #2262] @ zero_extendqisi2 + ldr r4, .L789 + ldrb r3, [r4, #2774] @ zero_extendqisi2 cmp r3, #0 - beq .L749 -.L752: - ldr r2, .L759 + beq .L779 +.L782: + ldrb r1, [r4, #2773] @ zero_extendqisi2 cmp r5, #0 - ldrb r1, [r4, #2261] @ zero_extendqisi2 + ldr r3, .L789+4 mov r0, #48 - add r3, r2, #724 mla r0, r0, r1, r3 - beq .L750 - b .L751 -.L749: - ldr r1, .L759+4 + beq .L780 + b .L781 +.L779: + ldr r1, .L789+8 mov r2, #121 - ldr r0, .L759+8 + ldr r0, .L789+12 bl printk bl dump_stack - ldrb r3, [r4, #2262] @ zero_extendqisi2 + ldrb r3, [r4, #2774] @ zero_extendqisi2 cmp r3, #0 - bne .L752 -.L754: + bne .L782 +.L784: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L750: - ldrb r2, [r2, #2262] @ zero_extendqisi2 +.L780: + ldr r2, .L789 + ldrb r2, [r2, #2774] @ zero_extendqisi2 cmp r2, #1 - beq .L754 -.L751: + beq .L784 +.L781: mov r2, #48 mul r1, r2, r1 add r2, r4, r1 add r3, r3, r1 mov r1, #0 - ldrb ip, [r2, #724] @ zero_extendqisi2 + ldrb ip, [r2, #1236] @ zero_extendqisi2 strh r1, [r3, #34] @ movhi - str r1, [r2, #732] - strb ip, [r4, #2261] - ldrb ip, [r4, #2262] @ zero_extendqisi2 - strb r1, [r2, #764] + str r1, [r2, #1244] + strb ip, [r4, #2773] + ldrb ip, [r4, #2774] @ zero_extendqisi2 + strb r1, [r2, #1276] sub ip, ip, #1 - strb r1, [r2, #765] - strb ip, [r4, #2262] + strb r1, [r2, #1277] + strb ip, [r4, #2774] mov ip, #1 - strb ip, [r2, #726] + strb ip, [r2, #1238] mvn ip, #0 - strb ip, [r2, #724] - str ip, [r2, #744] + strb ip, [r2, #1236] + str ip, [r2, #1256] ldmfd sp!, {r3, r4, r5, pc} -.L760: +.L790: .align 2 -.L759: +.L789: .word .LANCHOR0 - .word .LANCHOR1+1044 + .word .LANCHOR0+1236 + .word .LANCHOR1+1416 .word .LC0 .fnend .size buf_alloc, .-buf_alloc @@ -4013,39 +4165,39 @@ buf_remove_buf: ldrb ip, [r1, #1] @ zero_extendqisi2 ldrb r3, [r0] @ zero_extendqisi2 cmp ip, r3 - bne .L762 + bne .L792 ldrb r3, [r1] @ zero_extendqisi2 strb r3, [r0] mov r0, #1 bx lr -.L762: - ldr r0, .L769 +.L792: + ldr r0, .L799 str lr, [sp, #-4]! .save {lr} mov lr, #48 -.L764: +.L794: cmp r3, #255 - beq .L768 + beq .L798 mov r2, r3 mla r3, lr, r3, r0 - ldrb r3, [r3, #724] @ zero_extendqisi2 + ldrb r3, [r3, #1236] @ zero_extendqisi2 cmp r3, ip - bne .L764 - ldr r0, .L769 + bne .L794 + ldr r0, .L799 mov ip, #48 ldrb r3, [r1] @ zero_extendqisi2 mla r2, ip, r2, r0 mov r0, #1 - strb r3, [r2, #724] + strb r3, [r2, #1236] mvn r3, #0 strb r3, [r1] ldr pc, [sp], #4 -.L768: +.L798: mov r0, #0 ldr pc, [sp], #4 -.L770: +.L800: .align 2 -.L769: +.L799: .word .LANCHOR0 .fnend .size buf_remove_buf, .-buf_remove_buf @@ -4056,45 +4208,113 @@ buf_remove_free: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L777 + ldr r3, .L807 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldrb r2, [r3, #2262] @ zero_extendqisi2 + ldrb r2, [r3, #2774] @ zero_extendqisi2 mov r4, r3 cmp r2, #0 - bne .L772 - ldr r1, .L777+4 + bne .L802 + ldr r1, .L807+4 mov r2, #172 - ldr r0, .L777+8 + ldr r0, .L807+8 bl printk bl dump_stack -.L772: - ldrb r3, [r4, #2262] @ zero_extendqisi2 - ldr r6, .L777 +.L802: + ldrb r3, [r4, #2774] @ zero_extendqisi2 + ldr r6, .L807 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, pc} - ldr r0, .L777+12 + ldr r0, .L807+12 mov r1, r5 bl buf_remove_buf cmp r0, #1 - ldreqb r3, [r6, #2262] @ zero_extendqisi2 + ldreqb r3, [r6, #2774] @ zero_extendqisi2 subeq r3, r3, #1 - streqb r3, [r6, #2262] + streqb r3, [r6, #2774] ldreqb r3, [r5, #2] @ zero_extendqisi2 orreq r3, r3, #1 streqb r3, [r5, #2] ldmfd sp!, {r4, r5, r6, pc} -.L778: +.L808: .align 2 -.L777: +.L807: .word .LANCHOR0 - .word .LANCHOR1+1056 + .word .LANCHOR1+1428 .word .LC0 - .word .LANCHOR0+2261 + .word .LANCHOR0+2773 .fnend .size buf_remove_free, .-buf_remove_free .align 2 + .global dump_buf_info + .type dump_buf_info, %function +dump_buf_info: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, lr} + .save {r4, r5, lr} + .pad #28 + sub sp, sp, #28 + ldr r4, .L813 + ldr r0, .L813+4 + ldrb r1, [r4, #2775] @ zero_extendqisi2 + bl printk + ldrb r1, [r4, #2776] @ zero_extendqisi2 + ldr r0, .L813+8 + bl printk + ldrb r1, [r4, #2777] @ zero_extendqisi2 + ldr r0, .L813+12 + bl printk + ldrb r1, [r4, #2778] @ zero_extendqisi2 + ldr r0, .L813+16 + bl printk + ldrb r1, [r4, #2773] @ zero_extendqisi2 + ldr r0, .L813+20 + bl printk + ldrb r1, [r4, #2774] @ zero_extendqisi2 + ldr r0, .L813+24 + bl printk + ldr r4, .L813+28 + add r5, r4, #1536 +.L810: + ldrh r0, [r4, #34] + add r4, r4, #48 + ldrb r1, [r4, #-47] @ zero_extendqisi2 + ldrb r2, [r4, #-48] @ zero_extendqisi2 + str r0, [sp] + ldrb r0, [r4, #-6] @ zero_extendqisi2 + ldrb r3, [r4, #-46] @ zero_extendqisi2 + str r0, [sp, #4] + ldr r0, [r4, #-12] + str r0, [sp, #8] + ldr r0, [r4, #-28] + str r0, [sp, #12] + ldr r0, [r4, #-24] + str r0, [sp, #16] + ldr r0, .L813+32 + bl printk + cmp r4, r5 + bne .L810 + add sp, sp, #28 + @ sp needed + ldmfd sp!, {r4, r5, pc} +.L814: + .align 2 +.L813: + .word .LANCHOR0 + .word .LC47 + .word .LC48 + .word .LC49 + .word .LC50 + .word .LC51 + .word .LC52 + .word .LANCHOR0+1236 + .word .LC53 + .fnend + .size dump_buf_info, .-dump_buf_info + .align 2 .global flash_check_bad_block .type flash_check_bad_block, %function flash_check_bad_block: @@ -4102,12 +4322,12 @@ flash_check_bad_block: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L780 + ldr r3, .L816 ldrb r2, [r3, #17] @ zero_extendqisi2 ldrh r3, [r3, #18] smulbb r3, r2, r3 - ldr r2, .L780+4 - ldr r2, [r2, #664] + ldr r2, .L816+4 + ldr r2, [r2, #1176] uxth r3, r3 add r3, r3, #31 mov r3, r3, asr #5 @@ -4122,9 +4342,9 @@ flash_check_bad_block: mov r0, r0, lsr r1 and r0, r0, #1 bx lr -.L781: +.L817: .align 2 -.L780: +.L816: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4136,7 +4356,7 @@ flash_mask_bad_block: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L784 + ldr r3, .L820 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r1 @@ -4144,15 +4364,15 @@ flash_mask_bad_block: mov r6, r0 ldrh r4, [r3, #18] mov r1, r6 - ldr r0, .L784+4 + ldr r0, .L820+4 smulbb r4, r2, r4 mov r2, r5 bl printk - ldr r3, .L784+8 + ldr r3, .L820+8 mov r2, r5, lsr #5 mov r1, #1 and r5, r5, #31 - ldr r3, [r3, #664] + ldr r3, [r3, #1176] uxth r4, r4 add r4, r4, #31 mov r4, r4, asr #5 @@ -4165,11 +4385,11 @@ flash_mask_bad_block: orr r5, r3, r1, asl r5 str r5, [r4, r2, asl #2] ldmfd sp!, {r4, r5, r6, pc} -.L785: +.L821: .align 2 -.L784: +.L820: .word .LANCHOR2 - .word .LC48 + .word .LC54 .word .LANCHOR0 .fnend .size flash_mask_bad_block, .-flash_mask_bad_block @@ -4183,39 +4403,39 @@ str2hex: @ link register save eliminated. ldrb r3, [r0] @ zero_extendqisi2 cmp r3, #48 - bne .L787 + bne .L823 ldrb r3, [r0, #1] @ zero_extendqisi2 and r3, r3, #223 cmp r3, #88 addeq r0, r0, #2 -.L787: +.L823: ldrb r3, [r0] @ zero_extendqisi2 and r3, r3, #223 cmp r3, #88 addeq r0, r0, #1 sub r3, r0, #1 mov r0, #0 -.L789: +.L825: ldrb r2, [r3, #1]! @ zero_extendqisi2 cmp r2, #0 - beq .L798 + beq .L834 sub r1, r2, #48 uxtb ip, r1 cmp ip, #9 addls r0, r1, r0, asl #4 - bls .L789 + bls .L825 sub r1, r2, #97 cmp r1, #5 subls r2, r2, #87 - bls .L797 + bls .L833 sub r1, r2, #65 cmp r1, #5 bxhi lr sub r2, r2, #55 -.L797: +.L833: add r0, r2, r0, asl #4 - b .L789 -.L798: + b .L825 +.L834: bx lr .fnend .size str2hex, .-str2hex @@ -4232,17 +4452,17 @@ zftl_proc_debug_init: mov r2, #0 mov r1, #292 str r2, [sp] - ldr r3, .L801 - ldr r0, .L801+4 + ldr r3, .L837 + ldr r0, .L837+4 bl proc_create_data add sp, sp, #12 @ sp needed ldr pc, [sp], #4 -.L802: +.L838: .align 2 -.L801: - .word .LANCHOR1+1072 - .word .LC49 +.L837: + .word .LANCHOR1+1448 + .word .LC55 .fnend .size zftl_proc_debug_init, .-zftl_proc_debug_init .align 2 @@ -4256,11 +4476,11 @@ ftl_print_info_to_buf: .save {r4, r5, r6, lr} .pad #16 mov r6, r0 - ldr r1, .L805 - ldr r2, .L805+4 + ldr r1, .L841 + ldr r2, .L841+4 bl sprintf - ldr r1, .L805+8 - ldr r5, .L805+12 + ldr r1, .L841+8 + ldr r5, .L841+12 ldrb r3, [r1, #6] @ zero_extendqisi2 ldrb r2, [r1, #5] @ zero_extendqisi2 add r4, r6, r0 @@ -4273,128 +4493,128 @@ ftl_print_info_to_buf: mov r0, r4 ldrb r1, [r1, #10] @ zero_extendqisi2 str r1, [sp, #12] - ldr r1, .L805+16 + ldr r1, .L841+16 bl sprintf - ldr r2, [r5, #520] - ldr r1, .L805+20 + ldr r2, [r5, #1032] + ldr r1, .L841+20 mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r2, [r5, #2264] - ldr r1, .L805+24 + ldr r2, [r5, #2780] + ldr r1, .L841+24 mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L805+28 + ldr r1, .L841+28 add r4, r4, r0 mov r0, r4 add r4, r4, #10 bl strcpy - ldr r2, [r5, #2268] + ldr r2, [r5, #2784] mov r0, r4 - ldr r1, .L805+32 + ldr r1, .L841+32 bl sprintf - ldr r2, [r5, #520] - ldr r1, .L805+36 + ldr r2, [r5, #1032] + ldr r1, .L841+36 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #580] - ldr r1, .L805+40 + ldr r3, [r5, #1092] + ldr r1, .L841+40 ldr r2, [r3, #524] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #580] - ldr r1, .L805+44 + ldr r3, [r5, #1092] + ldr r1, .L841+44 ldr r2, [r3, #528] add r4, r4, r0 mov r0, r4 bl sprintf - add r3, r5, #2272 - ldr r1, .L805+48 - ldrh r2, [r3] - add r4, r4, r0 - mov r0, r4 - bl sprintf - movw r3, #2274 + movw r3, #2788 ldrh r2, [r5, r3] - ldr r1, .L805+52 + ldr r1, .L841+48 add r4, r4, r0 mov r0, r4 bl sprintf - movw r3, #2276 + movw r3, #2790 ldrh r2, [r5, r3] - ldr r1, .L805+56 + ldr r1, .L841+52 add r4, r4, r0 mov r0, r4 bl sprintf - movw r3, #2278 + movw r3, #2792 ldrh r2, [r5, r3] - ldr r1, .L805+60 + ldr r1, .L841+56 add r4, r4, r0 mov r0, r4 bl sprintf - movw r3, #2280 + movw r3, #2794 ldrh r2, [r5, r3] - ldr r1, .L805+64 + ldr r1, .L841+60 add r4, r4, r0 mov r0, r4 bl sprintf - movw r3, #2282 + movw r3, #2796 ldrh r2, [r5, r3] - ldr r1, .L805+68 + ldr r1, .L841+64 add r4, r4, r0 mov r0, r4 bl sprintf - ldrb r1, [r5, #2285] @ zero_extendqisi2 - ldrb r2, [r5, #2262] @ zero_extendqisi2 - ldrb r3, [r5, #2284] @ zero_extendqisi2 + movw r3, #2798 + ldrh r2, [r5, r3] + ldr r1, .L841+68 + add r4, r4, r0 + mov r0, r4 + bl sprintf + ldrb r1, [r5, #2801] @ zero_extendqisi2 + ldrb r2, [r5, #2774] @ zero_extendqisi2 + ldrb r3, [r5, #2800] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L805+72 + ldr r1, .L841+72 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] - ldr r1, .L805+76 + ldr r3, [r5, #2804] + ldr r1, .L841+76 ldrh r2, [r3, #148] ldrh r3, [r3, #146] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] - ldr r1, .L805+80 + ldr r3, [r5, #2804] + ldr r1, .L841+80 ldr r2, [r3, #16] ldr r3, [r3, #20] add r2, r3, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] - ldr r1, .L805+84 + ldr r3, [r5, #2804] + ldr r1, .L841+84 ldr r2, [r3, #24] ldr r3, [r3, #28] add r2, r3, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] - ldr r1, .L805+88 + ldr r3, [r5, #2804] + ldr r1, .L841+88 ldr r2, [r3, #64] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] - ldr r1, .L805+92 + ldr r3, [r5, #2804] + ldr r1, .L841+92 ldr r2, [r3, #68] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #580] - ldr r2, .L805+96 - ldr r1, .L805+100 + ldr r3, [r5, #1092] + ldr r2, .L841+96 + ldr r1, .L841+100 ldr r3, [r3, #12] umull r2, r3, r3, r2 mov r2, r3, lsr #3 @@ -4402,74 +4622,74 @@ ftl_print_info_to_buf: mov r0, r4 bl sprintf ldrb r2, [r5] @ zero_extendqisi2 - ldr r1, .L805+104 + ldr r1, .L841+104 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #580] - ldr r1, .L805+108 + ldr r3, [r5, #1092] + ldr r1, .L841+108 ldr r2, [r3, #556] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #580] - ldr r1, .L805+112 + ldr r3, [r5, #1092] + ldr r1, .L841+112 ldr r2, [r3, #552] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] - ldr r1, .L805+116 + ldr r3, [r5, #2804] + ldr r1, .L841+116 ldr r2, [r3, #52] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] - ldr r1, .L805+120 + ldr r3, [r5, #2804] + ldr r1, .L841+120 ldr r2, [r3, #60] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] - ldr r1, .L805+124 + ldr r3, [r5, #2804] + ldr r1, .L841+124 ldr r2, [r3, #76] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] - ldr r1, .L805+128 + ldr r3, [r5, #2804] + ldr r1, .L841+128 ldr r2, [r3, #8] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, [r5, #580] + ldr r1, [r5, #1092] ldrh r2, [r1, #16] ldrh r3, [r1, #22] ldrb r1, [r1, #25] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L805+132 + ldr r1, .L841+132 mov r0, r4 bl sprintf - ldr r1, [r5, #580] + ldr r1, [r5, #1092] ldrh r2, [r1, #48] ldrh r3, [r1, #54] ldrb r1, [r1, #57] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L805+136 + ldr r1, .L841+136 mov r0, r4 bl sprintf - ldr r1, [r5, #580] + ldr r1, [r5, #1092] ldrh r2, [r1, #80] ldrh r3, [r1, #86] ldrb r1, [r1, #89] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L805+140 + ldr r1, .L841+140 mov r0, r4 bl sprintf - ldr r3, [r5, #2288] + ldr r3, [r5, #2804] ldrh r1, [r3, #88] ldrh r2, [r3, #74] str r1, [sp] @@ -4479,10 +4699,10 @@ ftl_print_info_to_buf: str r1, [sp, #4] ldrh r1, [r3, #96] str r1, [sp, #8] - ldr r1, .L805+144 + ldr r1, .L841+144 ldr r3, [r3, #84] bl sprintf - ldr r3, [r5, #2288] + ldr r3, [r5, #2804] ldrh r1, [r3, #90] ldrh r2, [r3, #72] str r1, [sp] @@ -4492,32 +4712,32 @@ ftl_print_info_to_buf: str r1, [sp, #4] ldrh r1, [r3, #98] str r1, [sp, #8] - ldr r1, .L805+148 + ldr r1, .L841+148 ldr r3, [r3, #80] bl sprintf - movw r3, #2292 + movw r3, #2808 ldrh r2, [r5, r3] - ldr r1, .L805+152 + ldr r1, .L841+152 add r4, r4, r0 mov r0, r4 bl sprintf - movw r1, #2298 + movw r1, #2814 ldrh r1, [r5, r1] - movw r3, #2294 + movw r3, #2810 ldrh r2, [r5, r3] - movw r3, #2296 + movw r3, #2812 ldrh r3, [r5, r3] str r1, [sp] - movw r1, #2300 - ldrh r1, [r5, r1] + add r1, r5, #2816 add r4, r4, r0 + ldrh r1, [r1] mov r0, r4 str r1, [sp, #4] - ldr r1, [r5, #2304] + ldr r1, [r5, #2820] str r1, [sp, #8] - ldr r1, .L805+156 + ldr r1, .L841+156 bl sprintf - ldr r1, [r5, #580] + ldr r1, [r5, #1092] add r3, r1, #584 ldrh r2, [r3] movw r3, #586 @@ -4530,14 +4750,14 @@ ftl_print_info_to_buf: ldrh r1, [r1, r0] mov r0, r4 str r1, [sp, #4] - ldr r1, .L805+160 + ldr r1, .L841+160 bl sprintf - ldr r3, [r5, #580] - ldr r1, .L805+164 + ldr r3, [r5, #1092] + ldr r1, .L841+164 ldr r2, [r3, #544] str r2, [sp] add r4, r4, r0 - ldr r2, [r5, #2288] + ldr r2, [r5, #2804] mov r0, r4 ldr r2, [r2, #44] str r2, [sp, #4] @@ -4551,19 +4771,13 @@ ftl_print_info_to_buf: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L806: +.L842: .align 2 -.L805: +.L841: .word .LC1 .word .LC2 .word .LANCHOR2 .word .LANCHOR0 - .word .LC50 - .word .LC51 - .word .LC52 - .word .LC53 - .word .LC54 - .word .LC55 .word .LC56 .word .LC57 .word .LC58 @@ -4578,13 +4792,13 @@ ftl_print_info_to_buf: .word .LC67 .word .LC68 .word .LC69 - .word -858993459 .word .LC70 .word .LC71 .word .LC72 .word .LC73 .word .LC74 .word .LC75 + .word -858993459 .word .LC76 .word .LC77 .word .LC78 @@ -4596,6 +4810,12 @@ ftl_print_info_to_buf: .word .LC84 .word .LC85 .word .LC86 + .word .LC87 + .word .LC88 + .word .LC89 + .word .LC90 + .word .LC91 + .word .LC92 .fnend .size ftl_print_info_to_buf, .-ftl_print_info_to_buf .align 2 @@ -4620,20 +4840,20 @@ ftl_gc_write_buf: .save {r4, lr} mov r1, r0 ldrb r3, [r0, #2] @ zero_extendqisi2 - ldr r4, .L810 + ldr r4, .L846 orr r3, r3, #2 strb r3, [r0, #2] - add r0, r4, #2304 - add r0, r0, #4 + add r0, r4, #2816 + add r0, r0, #8 bl buf_add_tail - ldrb r0, [r4, #2284] @ zero_extendqisi2 + ldrb r0, [r4, #2800] @ zero_extendqisi2 add r0, r0, #1 uxtb r0, r0 - strb r0, [r4, #2284] + strb r0, [r4, #2800] ldmfd sp!, {r4, pc} -.L811: +.L847: .align 2 -.L810: +.L846: .word .LANCHOR0 .fnend .size ftl_gc_write_buf, .-ftl_gc_write_buf @@ -4660,6 +4880,17 @@ vpn_check: .fnend .size vpn_check, .-vpn_check .align 2 + .global ftl_scan_all_data + .type ftl_scan_all_data, %function +ftl_scan_all_data: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + bx lr + .fnend + .size ftl_scan_all_data, .-ftl_scan_all_data + .align 2 .global gc_add_sblk .type gc_add_sblk, %function gc_add_sblk: @@ -4670,163 +4901,161 @@ gc_add_sblk: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #16 mov r5, r0 - ldr r8, .L855 + ldr r8, .L888 mov r4, r1 mov r9, r2 - ldr r7, .L855+4 + ldr r7, .L888+4 ldr r3, [r8] tst r3, #256 - beq .L815 - ldr r3, [r7, #568] + beq .L852 + ldr r3, [r7, #1080] mov r1, r5 - ldr r2, [r7, #576] + ldr r2, [r7, #1088] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 mov r3, r3, lsr #5 str r3, [sp] mov r3, r0, asl #1 - ldr r0, .L855+8 + ldr r0, .L888+8 ldrh r3, [r2, r3] mov r2, r4 str r3, [sp, #4] - ldr r3, .L855+12 + ldr r3, .L888+12 ldrh r3, [r3, #52] str r3, [sp, #8] - movw r3, #2298 + movw r3, #2814 ldrh r3, [r7, r3] str r3, [sp, #12] mov r3, r9 bl printk -.L815: - ldr r3, .L855+16 - ldrh r2, [r3] - mov r6, r3 - cmp r2, r5 - bhi .L816 - ldr r1, .L855+20 - movw r2, #454 - ldr r0, .L855+24 +.L852: + movw r3, #1076 + ldrh r3, [r7, r3] + cmp r3, r5 + bhi .L853 + ldr r1, .L888+16 + movw r2, #543 + ldr r0, .L888+20 bl printk bl dump_stack -.L816: - ldrh r3, [r6] - ldr r2, .L855+4 +.L853: + movw r3, #1076 + ldr r1, .L888+4 + ldrh r3, [r7, r3] cmp r3, r5 - bhi .L817 - ldr r3, [r8] - tst r3, #1024 - beq .L853 + bhi .L854 + ldr r0, [r8] + ands r0, r0, #1024 + beq .L855 mov r1, r5 mov r2, r4 mov r3, r9 - ldr r0, .L855+28 + ldr r0, .L888+24 bl printk - b .L853 -.L817: - ldr r1, [r2, #576] - mov r3, r5, asl #1 - ldrh r3, [r1, r3] - ldr r1, [r2, #568] - add r1, r1, r5, asl #2 - ldrb ip, [r1, #2] @ zero_extendqisi2 - ands r6, ip, #224 - bne .L820 - cmp r3, #0 - beq .L837 - ldr r0, .L855+24 - movw r2, #462 - ldr r1, .L855+20 - bl printk -.L853: - bl dump_stack - b .L837 -.L820: - movw r1, #2312 - ldrh r1, [r2, r1] - cmp r1, r5 - beq .L837 - ldr r2, [r2, #580] - ldrh r1, [r2, #48] - cmp r1, r5 - beq .L837 - ldrh r1, [r2, #16] - cmp r1, r5 - beq .L837 - ldrh r1, [r2, #80] - cmp r1, r5 - beq .L837 - ldr r1, .L855+12 - add lr, r1, #52 - ldrh r0, [r1, #52] - mov r1, #0 -.L821: - cmp r1, r0 - bcs .L854 - ldrh r6, [lr, #2]! - cmp r6, r5 - beq .L837 - add r1, r1, #1 - b .L821 + b .L874 .L854: + ldr r2, [r1, #1088] + mov r3, r5, asl #1 + ldrh r3, [r2, r3] + ldr r2, [r1, #1080] + add r2, r2, r5, asl #2 + ldrb ip, [r2, #2] @ zero_extendqisi2 + ands r6, ip, #224 + bne .L856 + cmp r3, #0 + beq .L874 + ldr r1, .L888+16 + movw r2, #553 + ldr r0, .L888+20 + bl printk + bl dump_stack + b .L874 +.L856: + movw r2, #2828 + ldrh r2, [r1, r2] + cmp r2, r5 + beq .L874 + ldr r2, [r1, #1092] + ldrh r0, [r2, #48] + cmp r0, r5 + beq .L874 + ldrh r0, [r2, #16] + cmp r0, r5 + beq .L874 + ldrh r0, [r2, #80] + cmp r0, r5 + beq .L874 + ldr r0, .L888+12 + add r1, r1, #2880 + ldrh lr, [r0, #52] + mov r0, #0 +.L857: + cmp r0, lr + bcs .L887 + ldrh r6, [r1, #2]! + cmp r6, r5 + beq .L874 + add r0, r0, #1 + b .L857 +.L887: cmp r4, #0 - bne .L826 - movw r1, #2908 - ldrh lr, [r7, r1] - cmp lr, r5 + bne .L862 + ldr r0, .L888+28 + ldrh r6, [r0, #-8] + cmp r6, r5 moveq r0, r4 - beq .L819 - ldr r6, .L855+32 + beq .L855 + sub r0, r0, #4 mov r1, r4 -.L825: - ldrh r10, [r1, r6] +.L861: + ldrh r10, [r1, r0] cmp r5, r10 - bne .L824 + bne .L860 ldr r0, [r8] ands r0, r0, #256 - beq .L819 - stmia sp, {r5, lr} + beq .L855 + stmia sp, {r5, r6} mov r1, r5 mov r2, ip, lsr #5 - ldr r0, .L855+36 + ldr r0, .L888+32 bl printk - b .L837 -.L824: + b .L874 +.L860: add r1, r1, #2 cmp r1, #16 - bne .L825 + bne .L861 add r6, r2, r9, asl #7 add r6, r6, #136 - b .L827 -.L826: + b .L863 +.L862: add r6, r2, #392 -.L827: +.L863: ldr r2, [r8] tst r2, #256 - beq .L828 - str r3, [sp] - movw r3, #2298 + beq .L864 + stmia sp, {r3, lr} + movw r3, #2814 ldrh r3, [r7, r3] mov r1, r5 - str r0, [sp, #4] + ldr r0, .L888+36 mov r2, r4 - ldr r0, .L855+40 str r3, [sp, #8] mov r3, ip, lsr #5 bl printk -.L828: +.L864: add r1, r6, #128 mov r3, r6 movw r0, #65535 -.L831: +.L867: mov r2, r3 add r3, r3, #2 ldrh ip, [r2] cmp ip, r0 - bne .L829 + bne .L865 cmp r4, #0 strh r5, [r2] @ movhi - ldreq r3, [r7, #580] - ldrne r2, [r7, #580] + ldreq r3, [r7, #1092] + ldrne r2, [r7, #1092] addeq r9, r3, r9, asl #1 ldrneh r3, [r2, #124] ldreqh r3, [r9, #120] @@ -4834,33 +5063,32 @@ gc_add_sblk: addeq r3, r3, #1 strneh r3, [r2, #124] @ movhi streqh r3, [r9, #120] @ movhi - b .L852 -.L829: + b .L886 +.L865: cmp r3, r1 - bne .L831 -.L852: + bne .L867 +.L886: mov r0, #1 - b .L819 -.L837: + b .L855 +.L874: mov r0, #0 -.L819: +.L855: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L856: +.L889: .align 2 -.L855: +.L888: .word .LANCHOR2 .word .LANCHOR0 - .word .LC87 - .word .LANCHOR0+2312 - .word .LANCHOR0+564 - .word .LANCHOR1+1200 + .word .LC93 + .word .LANCHOR0+2828 + .word .LANCHOR1+1608 .word .LC0 - .word .LC88 - .word .LANCHOR0+2912 - .word .LC89 - .word .LC90 + .word .LC94 + .word .LANCHOR3-3216 + .word .LC95 + .word .LC96 .fnend .size gc_add_sblk, .-gc_add_sblk .align 2 @@ -4870,64 +5098,70 @@ gc_mark_bad_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L896 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} + sub r2, r3, #3200 + ldr r5, .L896+4 mov r6, #1 - ldr r5, .L863 + ldrh r1, [r2, #-4] mov r7, r0 - add r3, r5, #2928 - ldrb r2, [r5, #676] @ zero_extendqisi2 - ldrh r3, [r3] + add r5, r5, #4096 + ldrb r2, [r5, #-2907] @ zero_extendqisi2 + mov r0, r0, lsr r1 rsb r2, r2, #24 - ldrb r1, [r5, #2930] @ zero_extendqisi2 - rsb r2, r3, r2 - mov r0, r0, lsr r3 + uxth r4, r0 + rsb r2, r1, r2 + ldrb r1, [r3, #-3202] @ zero_extendqisi2 mov r2, r6, asl r2 sub r2, r2, #1 - uxth r4, r0 and r0, r0, r2 bl __aeabi_uidiv - ldr r1, [r5, #2892] - mov r2, r4 mov r3, r7 + ldr r1, [r5, #848] + mov r2, r4 uxth r8, r0 - ldr r0, .L863+4 + ldr r0, .L896+8 bl printk mov r1, r6 - mov r2, #0 mov r0, r8 + mov r2, #0 bl gc_add_sblk - ldr r2, [r5, #2892] - ldr r0, .L863+8 + ldr r3, [r5, #848] + ldr r0, .L896+12 mov r1, #0 -.L858: - uxth r3, r1 - cmp r3, r2 - bcs .L862 - add r3, r3, #292 +.L891: + uxth r2, r1 + cmp r2, r3 + bcs .L895 + add r2, r2, #1056 add r1, r1, #1 + add r2, r2, #4 + mov r2, r2, asl #1 + ldrh r2, [r0, r2] + cmp r2, r4 + bne .L891 + b .L892 +.L895: + cmp r3, #5 + bhi .L892 + add r2, r3, #1 + add r3, r3, #1056 + add r3, r3, #4 + str r2, [r5, #848] + ldr r2, .L896+12 mov r3, r3, asl #1 - ldrh r3, [r0, r3] - cmp r3, r4 - bne .L858 - b .L859 -.L862: - cmp r2, #5 - addls r3, r2, #1 - addls r2, r2, #292 - strls r3, [r5, #2892] - ldrls r3, .L863+8 - movls r2, r2, asl #1 - strlsh r4, [r3, r2] @ movhi -.L859: + strh r4, [r2, r3] @ movhi +.L892: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L864: +.L897: .align 2 -.L863: +.L896: + .word .LANCHOR3 .word .LANCHOR0 - .word .LC91 - .word .LANCHOR0+2312 + .word .LC97 + .word .LANCHOR0+2828 .fnend .size gc_mark_bad_ppa, .-gc_mark_bad_ppa .align 2 @@ -4938,14 +5172,14 @@ gc_get_src_ppa_from_index: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L866 - ldr r3, [r3, #2932] + ldr r3, .L899 + ldr r3, [r3, #-3200] ldr r0, [r3, r0, asl #2] bx lr -.L867: +.L900: .align 2 -.L866: - .word .LANCHOR0 +.L899: + .word .LANCHOR3 .fnend .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index .align 2 @@ -4955,170 +5189,165 @@ gc_write_completed: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} + stmfd sp!, {r0, r1, r2, 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, .L899 - add r9, r4, #724 - mov r5, r4 -.L869: - ldrb r10, [r4, #2936] @ zero_extendqisi2 - cmp r10, #255 - beq .L898 + .pad #12 + ldr r5, .L932 + mov r6, r5 +.L902: + ldrb fp, [r5, #2777] @ zero_extendqisi2 + cmp fp, #255 + beq .L931 mov r3, #48 - ldr r8, .L899+4 - mul r3, r3, r10 - add r2, r4, r3 - add r3, r9, r3 - ldrb r1, [r2, #724] @ zero_extendqisi2 - ldrh r7, [r3, #32] - strb r1, [r4, #2936] - ldr r1, [r2, #760] - cmp r1, #0 - beq .L870 - add r3, r8, #2160 - ldr r2, [r2, #748] - mov r0, #1 - strh r0, [r3] @ movhi - ldr r0, .L899+8 - str r2, [r4, #2888] - bl printk - ldr r1, .L899+12 - movw r2, #805 - ldr r0, .L899+16 - bl printk - bl dump_stack -.L870: - ldrb r3, [r5, #2937] @ zero_extendqisi2 - cmp r3, #3 - bne .L871 - ldrb r3, [r4, #684] @ zero_extendqisi2 - cmp r3, #0 - ldreq r3, [r4, #580] - ldreqb r6, [r3, #89] @ zero_extendqisi2 - addeq r6, r6, r6, asl #1 - beq .L872 -.L871: - ldrb r3, [r5, #2938] @ zero_extendqisi2 - cmp r3, #0 - moveq r6, #1 - beq .L872 - ldrb r3, [r4, #2939] @ zero_extendqisi2 - cmp r3, #0 - moveq r6, #1 - movne r6, #2 -.L872: - ldr r3, .L899+20 - ldr r3, [r3] - tst r3, #256 - beq .L873 - mov r3, #48 - ldr r1, [r5, #2940] - mul r3, r3, r10 - ldr r0, .L899+24 - ldrb r1, [r1, r7] @ zero_extendqisi2 + mul r3, r3, fp add r2, r5, r3 - add r3, r8, r3 - ldrb r2, [r2, #725] @ zero_extendqisi2 - ldrh r3, [r3, #32] - str r1, [sp] - mov r1, r7 + ldrb r1, [r2, #1236] @ zero_extendqisi2 + strb r1, [r5, #2777] + ldr r1, .L932+4 + add r3, r1, r3 + ldr r1, [r2, #1272] + cmp r1, #0 + ldrh r8, [r3, #32] + beq .L903 + ldr r3, .L932+8 + mov r0, #1 + ldr r2, [r2, #1260] + strh r0, [r3] @ movhi + ldr r0, .L932+12 + str r2, [r3, #4] bl printk -.L873: - mov r3, #48 - ldr r2, [r5, #2940] - mla r3, r3, r10, r5 - mov fp, r7 - ldrb r2, [r2, r7] @ zero_extendqisi2 - ldrb r3, [r3, #725] @ zero_extendqisi2 - cmp r2, r3 - beq .L874 - ldr r1, .L899+12 - movw r2, #814 - ldr r0, .L899+16 + ldr r1, .L932+16 + mov r2, #956 + ldr r0, .L932+20 bl printk bl dump_stack -.L874: - mov r3, #48 - mla r10, r3, r10, r5 - ldrb r3, [r10, #769] @ zero_extendqisi2 +.L903: + ldr r7, .L932+24 + ldrb r3, [r7, #-3196] @ zero_extendqisi2 + mov r10, r7 cmp r3, #3 - beq .L875 - ldrb r3, [r4, #2937] @ zero_extendqisi2 + bne .L904 + ldrb r3, [r6, #1196] @ zero_extendqisi2 + cmp r3, #0 + bne .L904 + ldr r3, [r5, #1092] + ldrb r2, [r7, #-3195] @ zero_extendqisi2 + ldrb r3, [r3, #89] @ zero_extendqisi2 + cmp r2, r3 + movhi r3, #1 + bhi .L906 cmp r3, #3 - bne .L875 - ldrb r3, [r4, #2944] @ zero_extendqisi2 + movcs r3, #2 +.L906: + add r4, r3, r3, asl #1 + b .L907 +.L904: + ldrb r3, [r7, #-3194] @ zero_extendqisi2 cmp r3, #0 - bne .L875 - ldrb r3, [r4, #684] @ zero_extendqisi2 + moveq r4, #1 + beq .L907 + ldr r3, .L932+24 + ldrb r3, [r3, #-3193] @ zero_extendqisi2 cmp r3, #0 - bne .L875 - ldrb r3, [r4, #2938] @ zero_extendqisi2 - cmp r3, #0 - beq .L876 - ldrb r3, [r4, #2939] @ zero_extendqisi2 - cmp r3, #0 - bne .L875 -.L876: - ldr r2, [r5, #2940] + moveq r4, #1 + movne r4, #2 +.L907: + mov r2, #48 + ldr r1, [r7, #-3192] + mla r2, r2, fp, r6 + mov r9, r8 + ldrb r1, [r1, r8] @ zero_extendqisi2 + ldrb r2, [r2, #1237] @ zero_extendqisi2 + cmp r1, r2 + beq .L908 + ldr r1, .L932+16 + mov r2, #976 + ldr r0, .L932+20 + bl printk + bl dump_stack +.L908: + mov r2, #48 + mla fp, r2, fp, r6 + ldrb r2, [fp, #1281] @ zero_extendqisi2 + cmp r2, #3 + beq .L909 + ldrb r1, [r7, #-3196] @ zero_extendqisi2 + ldr r2, .L932+24 + cmp r1, #3 + bne .L909 + ldrb r1, [r2, #-3188] @ zero_extendqisi2 + cmp r1, #0 + bne .L909 + ldrb r1, [r5, #1196] @ zero_extendqisi2 + cmp r1, #0 + bne .L909 + ldrb r1, [r5, #1197] @ zero_extendqisi2 + cmp r1, #0 + bne .L909 + ldrb r1, [r2, #-3194] @ zero_extendqisi2 + cmp r1, #0 + beq .L910 + ldrb r2, [r2, #-3193] @ zero_extendqisi2 + cmp r2, #0 + bne .L909 +.L910: + ldr r2, [r7, #-3192] mov r3, #0 mov r1, #48 mov r0, r3 - add r7, r2, r7 - b .L877 -.L875: - ldr r3, .L899+28 - mvn r10, #0 + add ip, r2, r8 + b .L911 +.L909: + ldr r2, .L932+28 + mvn r7, #0 + mov fp, #48 + strh r8, [r2] @ movhi mov r2, #0 - strh r7, [r3] @ movhi - mov r3, #48 -.L878: - rsb r1, r7, fp +.L912: + rsb r1, r8, r9 uxth r1, r1 - cmp r1, r6 - bcs .L869 - ldr r1, [r5, #2940] - str r3, [sp, #12] - str r2, [sp, #8] - ldrb r0, [r1, fp] @ zero_extendqisi2 - strb r10, [r1, fp] - add fp, fp, #1 - mul r0, r3, r0 - add r1, r5, r0 - add r0, r8, r0 - strb r2, [r1, #769] + cmp r1, r4 + bcs .L902 + ldr r1, [r10, #-3192] + ldr r3, .L932+4 + str r2, [sp, #4] + ldrb r0, [r1, r9] @ zero_extendqisi2 + strb r7, [r1, r9] + add r9, r9, #1 + mul r0, fp, r0 + add r1, r6, r0 + add r0, r3, r0 + strb r2, [r1, #1281] bl zbuf_free - ldrb r1, [r5, #2319] @ zero_extendqisi2 + ldrb r1, [r6, #2835] @ zero_extendqisi2 sub r1, r1, #1 - strb r1, [r5, #2319] - ldr r3, [sp, #12] - ldr r2, [sp, #8] - b .L878 -.L877: + strb r1, [r6, #2835] + ldr r2, [sp, #4] + b .L912 +.L911: uxth r2, r3 - cmp r2, r6 - bcs .L869 - ldrb r2, [r7, r3] @ zero_extendqisi2 + cmp r2, r4 + bcs .L902 + ldrb r2, [ip, r3] @ zero_extendqisi2 add r3, r3, #1 - mla r2, r1, r2, r5 - strb r0, [r2, #769] - b .L877 -.L898: - add sp, sp, #20 + mla r2, r1, r2, r6 + strb r0, [r2, #1281] + b .L911 +.L931: + add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L900: +.L933: .align 2 -.L899: +.L932: .word .LANCHOR0 - .word .LANCHOR0+724 - .word .LC92 - .word .LANCHOR1+1212 + .word .LANCHOR0+1236 + .word .LANCHOR0+4936 + .word .LC98 + .word .LANCHOR1+1620 .word .LC0 - .word .LANCHOR2 - .word .LC93 - .word .LANCHOR0+2880 + .word .LANCHOR3 + .word .LANCHOR0+4932 .fnend .size gc_write_completed, .-gc_write_completed .align 2 @@ -5128,55 +5357,57 @@ gc_get_src_blk: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L911 - stmfd sp!, {r4, lr} - .save {r4, lr} - ldr r3, [r2, #580] - ldrb r0, [r2, #2945] @ zero_extendqisi2 - ldrh r1, [r3, #124] - cmp r1, #0 + ldr r1, .L944 + stmfd sp!, {r4, r5, lr} + .save {r4, r5, lr} + ldr r3, [r1, #1092] + ldr ip, .L944+4 + ldrh r2, [r3, #124] + ldrb r0, [ip, #-3187] @ zero_extendqisi2 + cmp r2, #0 addne r3, r3, #392 - movne r1, #1 - bne .L903 - add ip, r3, r0, asl #1 - ldrh ip, [ip, #120] - cmp ip, #0 - beq .L908 + movne r2, #1 + bne .L936 + add lr, r3, r0, asl #1 + ldrh lr, [lr, #120] + cmp lr, #0 + beq .L941 add r3, r3, r0, asl #7 add r3, r3, #136 -.L903: - add ip, r3, #128 - movw lr, #65535 -.L907: - mov r4, r3 +.L936: + add lr, r3, #128 + movw r4, #65535 +.L940: + mov r5, r3 ldrh r0, [r3], #2 - cmp r0, lr - beq .L905 - cmp r1, #0 + cmp r0, r4 + beq .L938 + cmp r2, #0 mvn r3, #0 - strh r3, [r4] @ movhi - ldreqb r1, [r2, #2945] @ zero_extendqisi2 - ldreq r3, [r2, #580] - ldrne r2, [r2, #580] - addeq r3, r3, r1, asl #1 + strh r3, [r5] @ movhi + ldreqb r2, [ip, #-3187] @ zero_extendqisi2 + ldreq r3, [r1, #1092] + ldrne r2, [r1, #1092] + addeq r3, r3, r2, asl #1 ldrneh r3, [r2, #124] ldreqh r2, [r3, #120] subne r3, r3, #1 subeq r2, r2, #1 strneh r3, [r2, #124] @ movhi streqh r2, [r3, #120] @ movhi - ldmfd sp!, {r4, pc} -.L905: - cmp r3, ip - bne .L907 - ldmfd sp!, {r4, pc} -.L908: + ldmfd sp!, {r4, r5, pc} +.L938: + cmp r3, lr + bne .L940 + ldmfd sp!, {r4, r5, pc} +.L941: movw r0, #65535 - ldmfd sp!, {r4, pc} -.L912: + ldmfd sp!, {r4, r5, pc} +.L945: .align 2 -.L911: +.L944: .word .LANCHOR0 + .word .LANCHOR3 .fnend .size gc_get_src_blk, .-gc_get_src_blk .align 2 @@ -5184,561 +5415,674 @@ gc_get_src_blk: .type gc_search_src_blk, %function gc_search_src_blk: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r6, r0 - ldr r5, .L1015 - .pad #20 - sub sp, sp, #20 - ldr r3, [r5, #580] - add r3, r3, r0, asl #1 + .pad #36 + sub sp, sp, #36 + ldr r5, .L1069 + str r0, [sp, #12] + str r1, [sp, #20] + ldr r9, [r5, #1092] + str r2, [sp, #8] + add r3, r9, r0, asl #1 ldrh r4, [r3, #120] cmp r4, #0 - bne .L960 - cmp r0, #0 - mov r9, r1 - mov r7, r2 - bne .L916 - movw r3, #2946 - mov fp, r0 - mov r4, r0 - strh r0, [r5, r3] @ movhi -.L917: - uxth r8, r7 - uxth r3, fp + bne .L1001 + ldr r7, .L1069+4 + ldrh r8, [r7, #52] + cmp r8, #1 + ldrls r3, .L1069+8 + strlsh r4, [r3, #-2] @ movhi + strlsh r4, [r3], #16 @ movhi + strlsh r4, [r3, #-14] @ movhi + ldr r3, [sp, #12] + cmp r3, #0 + bne .L1068 + ldr r7, [sp, #12] + ldr r9, .L1069+8 + ldr fp, .L1069+12 + mov r4, r7 +.L950: + ldr r3, [sp, #8] + add r8, r3, #1 + uxth r3, r7 cmp r3, r8 - bcs .L922 - ldr ip, .L1015+4 - add r0, ip, #2 - ldrh r2, [ip] - str ip, [sp, #12] - mov r1, r2 - str r2, [sp, #8] - bl _list_get_gc_head_node - ldr r3, .L1015+4 - ldr r2, [sp, #8] - mov r10, r0 - ldr ip, [sp, #12] - add r2, r2, #1 - uxth r2, r2 - strh r2, [r3] @ movhi - movw r3, #65535 - cmp r0, r3 - beq .L918 - ldr r3, .L1015+8 - mov ip, r0, asl #1 - ldr r3, [r3] - tst r3, #256 - beq .L919 - ldr r3, .L1015 + bge .L956 + ldrh r10, [r9] + ldr r3, .L1069+8 mov r1, r10 - ldr r0, .L1015+12 - str ip, [sp, #8] - ldr r3, [r3, #576] - ldrh r3, [r3, ip] + add r0, r3, #4 + str r3, [sp, #16] + bl _list_get_gc_head_node + add r2, r10, #1 + movw r1, #65535 + uxth r2, r2 + strh r2, [r9] @ movhi + ldr r3, [sp, #16] + cmp r0, r1 + mov r6, r0 + mov ip, r3 + beq .L952 + ldr r3, [fp] + mov r10, r0, asl #1 + tst r3, #256 + beq .L953 + ldr r3, [r5, #1088] + mov r1, r6 + ldr r0, .L1069+16 + ldrh r3, [r3, r10] bl printk - ldr ip, [sp, #8] -.L919: - ldr r3, [r5, #576] - ldrh r2, [r3, ip] - ldr r3, .L1015+16 + ldr ip, [sp, #16] +.L953: + ldr r3, [r5, #1088] + ldrh r2, [r3, r10] + ldr r3, .L1069+20 ldrh r3, [r3] cmp r2, r3 - bcs .L920 + bcs .L954 mov r1, #0 - mov r0, r10 + mov r0, r6 mov r2, r1 bl gc_add_sblk cmp r0, #0 - beq .L921 + beq .L955 add r4, r4, #1 + ldr r3, [sp, #8] uxth r4, r4 - cmp r4, r8 - bls .L921 - b .L922 -.L920: - ldr r2, .L1015 - movw r3, #2946 - mov r1, #0 - strh r1, [r2, r3] @ movhi - b .L922 -.L918: + cmp r4, r3 + bcc .L955 + b .L956 +.L954: mov r3, #0 strh r3, [ip] @ movhi - b .L922 -.L921: - add fp, fp, #1 - b .L917 -.L922: - tst r9, #2 - movne r10, #0 - ldrne fp, .L1015 - beq .L924 -.L925: - uxth r3, r10 - cmp r3, r8 - bcs .L929 - ldr r3, .L1015+20 - add r0, r3, #4 - ldrh r2, [r3] - str r3, [sp, #12] - mov r1, r2 - str r2, [sp, #8] - bl _list_get_gc_head_node - ldr r3, .L1015+20 - ldr r2, [sp, #8] - mov lr, r0 - add r1, r2, #1 - movw r2, #65535 - cmp r0, r2 - strh r1, [r3] @ movhi - ldr r3, [sp, #12] - beq .L926 - ldr r1, [fp, #576] - mov r2, r0, asl #1 - sub lr, r3, #652 - ldrh r1, [r1, r2] - ldrh r2, [lr] - cmp r1, r2 - bcs .L926 - mov r1, #0 - mov r2, r1 - bl gc_add_sblk - cmp r0, #0 - beq .L928 - add r4, r4, #1 - uxth r4, r4 - cmp r4, r8 - bls .L928 - b .L931 -.L926: + b .L956 +.L952: mov r2, #0 strh r2, [r3] @ movhi - b .L929 -.L928: - add r10, r10, #1 - b .L925 -.L929: - cmp r4, r8 - bcs .L931 - ldr r0, .L1015 - movw r1, #2300 - ldrh r2, [r5, r1] - add r3, r0, #2960 - ldrh ip, [r3] - movw r3, #2962 - ldrh lr, [r5, r3] - ldrb r3, [r5, #2964] @ zero_extendqisi2 - mul r3, r3, lr - sub r3, r3, ip, lsr #2 - cmp r2, r3 - addlt r3, r2, ip, lsr #3 - strlth r3, [r0, r1] @ movhi - b .L924 -.L931: - ldr r1, .L1015 - movw r2, #2300 - ldrh r3, [r5, r2] - add r0, r1, #2960 - ldrh r0, [r0] - cmp r3, r0 - subhi r3, r3, r0, lsr #3 - strhih r3, [r1, r2] @ movhi -.L924: - tst r9, #1 - beq .L932 - cmp r4, r8 - movcc fp, #0 - ldrcc r10, .L1015+24 - bcs .L932 -.L933: + b .L956 +.L955: + add r7, r7, #1 + b .L950 +.L956: + ldr r3, [sp, #20] + tst r3, #2 + beq .L958 + movw r3, #2798 + ldrh r3, [r5, r3] + cmp r3, #32 + bls .L958 + ldr r9, .L1069+24 + mov fp, #0 + ldr r7, .L1069+28 +.L959: uxth r3, fp + ldr r6, .L1069+24 cmp r3, r8 - bcs .L936 - ldrh r3, [r10] - ldr r2, .L1015+24 - mov r1, r3 - add r0, r2, #2 - str r2, [sp, #12] - str r3, [sp, #8] + bge .L963 + ldrh r10, [r7] + ldr r3, .L1069+28 + mov r1, r10 + add r0, r3, #6 + str r3, [sp, #16] bl _list_get_gc_head_node - ldr r3, [sp, #8] - ldr r2, [sp, #12] - add r3, r3, #1 - strh r3, [r10] @ movhi - movw r3, #65535 - cmp r0, r3 - beq .L934 + movw r1, #65535 + add r10, r10, #1 + strh r10, [r7] @ movhi + cmp r0, r1 + ldr r3, [sp, #16] + beq .L960 + ldr r10, [r5, #1088] + mov r2, r0, asl #1 + ldrh r1, [r10, r2] + ldrh r2, [r9] + cmp r1, r2 + bcs .L960 mov r1, #0 mov r2, r1 bl gc_add_sblk cmp r0, #0 - beq .L935 + beq .L962 + add r4, r4, #1 + ldr r3, [sp, #8] + uxth r4, r4 + cmp r4, r3 + bcc .L962 + b .L963 +.L960: + mov r2, #0 + strh r2, [r3] @ movhi + b .L963 +.L962: + add fp, fp, #1 + b .L959 +.L963: + ldr r3, [sp, #8] + ldr r2, .L1069+32 + cmp r4, r3 + bcs .L965 + ldrh ip, [r2, #-2] + ldrb r3, [r2, #-27] @ zero_extendqisi2 + ldrh r0, [r2, #-4] + ldrh r1, [r6] + mul r3, r3, ip + sub r3, r3, r0, lsr #2 + cmp r1, r3 + ldrlt r3, .L1069+24 + addlt r1, r1, r0, lsr #3 + strlth r1, [r3] @ movhi + b .L958 +.L965: + ldrh r2, [r2, #-4] + ldrh r3, [r6] + cmp r3, r2 + subhi r3, r3, r2, lsr #3 + ldrhi r2, .L1069+24 + strhih r3, [r2] @ movhi +.L958: + ldr r3, [sp, #20] + tst r3, #1 + beq .L966 + ldrh r6, [sp, #8] + cmp r4, r6 + bcs .L966 + ldr r7, .L1069+36 + mov r10, #0 + movw r8, #65535 +.L971: + ldrh r9, [r7] + ldr fp, .L1069+36 + mov r1, r9 + add r0, fp, #18 + bl _list_get_gc_head_node + add r9, r9, #1 + strh r9, [r7] @ movhi + cmp r0, r8 + beq .L967 + mov r1, #0 + mov r2, r1 + bl gc_add_sblk + cmp r0, #0 + beq .L968 add r4, r4, #1 uxth r4, r4 - cmp r4, r8 - bcc .L935 - b .L938 -.L934: + cmp r4, r6 + bcc .L968 + b .L969 +.L967: mov r3, #0 - strh r3, [r2] @ movhi - b .L936 -.L935: - add fp, fp, #1 - b .L933 -.L936: - cmp r4, r8 - bcs .L938 - ldr r1, .L1015 - movw r2, #2298 + strh r3, [fp] @ movhi + b .L970 +.L968: + add r10, r10, #1 + uxth r3, r10 + cmp r3, r6 + bcc .L971 +.L970: + cmp r4, r6 + bcs .L969 + ldr r1, .L1069+32 + movw r2, #2814 ldrh r3, [r5, r2] - add r0, r1, #2960 - ldrh r0, [r0] - cmp r3, r0 - addcc r3, r3, r0, lsr #3 - bcc .L1014 - b .L932 -.L938: - ldr r1, .L1015 - movw r2, #2298 + ldrh r1, [r1, #-4] + cmp r3, r1 + addcc r3, r3, r1, lsr #3 + bcc .L1067 + b .L966 +.L969: + ldr r1, .L1069+32 + movw r2, #2814 ldrh r3, [r5, r2] - add r0, r1, #2960 - ldrh r0, [r0] - cmp r3, r0, lsr #1 - bls .L932 - sub r3, r3, r0, lsr #3 -.L1014: - strh r3, [r1, r2] @ movhi - b .L932 -.L916: - ldr r2, .L1015+28 - movw r3, #570 - strh r4, [r2, r3] @ movhi - movw r3, #2972 - strh r4, [r5, r3] @ movhi - ands r3, r1, #1 - str r3, [sp, #8] - ldreq r4, [sp, #8] - beq .L939 - movw r2, #2974 - movw r3, #2280 - ldrh r2, [r5, r2] - ldrh r3, [r5, r3] - cmp r3, r2, lsr #2 - bcc .L940 - movw r2, #2278 - ldrh r2, [r5, r2] + ldrh r1, [r1, #-4] + cmp r3, r1, lsr #1 + bls .L966 + sub r3, r3, r1, lsr #3 +.L1067: + ldr r1, .L1069 + b .L1066 +.L1068: + ldr r3, .L1069+40 + sub r3, r3, #3168 + ldrb r1, [r3, #-27] @ zero_extendqisi2 + ldrh r2, [r3, #-2] + smulbb r2, r1, r2 + uxth r3, r2 + str r3, [sp, #16] + ldr r3, [sp, #8] + cmp r3, #1 + bne .L972 + cmp r8, #0 + beq .L972 + ldrh r2, [r9, #80] + movw r3, #65535 cmp r2, r3 - bls .L941 -.L940: - movw r3, #2278 - movw r10, #2966 - ldrh r3, [r5, r3] + movwne r3, #2102 + ldrneh r2, [r7, r3] + ldrne r3, [sp, #16] + rsbne r2, r2, r3 + uxthne r3, r2 + strne r3, [sp, #16] + mov r3, #8 + str r3, [sp, #8] +.L972: + movw r3, #2106 + mov r6, #0 + strh r6, [r7, r3] @ movhi + ldr r3, [sp, #20] + ldr r7, .L1069+44 + ands r3, r3, #1 + str r3, [sp, #24] + ldr r4, .L1069 + strh r6, [r7, #-12] @ movhi + ldreq r6, [sp, #24] + moveq r4, r6 + beq .L973 + movw r3, #2794 + ldrh r2, [r7, #-10] + ldrh r3, [r4, r3] + cmp r3, r2, lsr #2 + bhi .L974 + movw r2, #2796 + ldrh r2, [r4, r2] + cmp r2, r3 + movcs r4, r6 + bcs .L975 +.L974: + cmp r8, #1 + bls .L976 +.L978: + mov r4, #0 + b .L977 +.L976: + ldr r4, .L1069+8 mov r1, #0 - ldr r0, .L1015+32 - ldr r4, .L1015 mov r3, r3, lsr #2 - strh r3, [r5, r10] @ movhi + add r6, r4, #16 + strh r3, [r4, #-2] @ movhi + mov r0, r6 bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - moveq r4, #0 - beq .L942 - ldr r1, [r4, #576] - add r2, r4, #2960 + beq .L978 + ldr r1, [r5, #1088] mov r3, r0, asl #1 - ldrh r2, [r2] + ldrh r2, [r4, #12] ldrh r3, [r1, r3] - mov r1, #0 cmp r3, r2, lsr #2 - movcs r4, r1 - bcs .L942 - mov r2, r6 - strh r1, [r4, r10] @ movhi + bcs .L978 + mov r1, #0 + ldr r2, [sp, #12] + mov r3, #1 + strh r3, [r4, #-2] @ movhi bl gc_add_sblk adds r4, r0, #0 movne r4, #1 -.L942: - ldr r10, .L1015+24 +.L977: + ldr r9, .L1069+36 mov r8, #64 - movw fp, #65535 -.L944: - ldrh r2, [r10] - ldr r0, .L1015+32 - mov r1, r2 - str r2, [sp, #12] + mov r6, #0 +.L981: + ldrh fp, [r9] + ldr r3, .L1069+36 + mov r1, fp + add r0, r3, #18 + str r3, [sp, #28] bl _list_get_gc_head_node - ldr r2, [sp, #12] - cmp r0, fp - add r2, r2, #1 - strh r2, [r10] @ movhi - beq .L941 + movw r2, #65535 + cmp r0, r2 + mov r10, r0 + ldr r3, [sp, #28] + beq .L979 mov r1, #0 - mov r2, r6 + ldr r2, [sp, #12] + add fp, fp, #1 + strh fp, [r9] @ movhi bl gc_add_sblk cmp r0, #0 - beq .L943 + beq .L980 + ldr r3, [r5, #1088] + mov r10, r10, asl #1 add r4, r4, #1 + ldr r2, [sp, #8] + ldrh r3, [r3, r10] uxth r4, r4 - cmp r4, r7 - bcs .L941 -.L943: - sub r3, r8, #1 - uxth r8, r3 + add r6, r6, r3 + ldr r3, [sp, #16] + uxth r6, r6 + cmp r6, r3 + cmpls r4, r2 + bcs .L975 + ldr r2, .L1069+48 + ldr r3, .L1069+52 + ldrh r2, [r2] + ldrh r3, [r3] + cmp r3, r2, asl #1 + ble .L980 + b .L975 +.L979: + mov r2, #0 + strh r2, [r3] @ movhi + b .L975 +.L980: + sub r8, r8, #1 + uxth r8, r8 cmp r8, #0 - bne .L944 -.L941: - movw r3, #2280 + bne .L981 +.L975: + movw r3, #2796 ldrh r2, [r5, r3] - movw r3, #2974 - ldrh r3, [r5, r3] - cmp r2, r3, lsr #3 - bhi .L961 - ldr r1, .L1015 - movw r3, #2278 + ldrh r3, [r7, #-10] + cmp r2, r3, lsr #2 + bhi .L1002 + ldr r1, .L1069 + movw r3, #2794 ldrh r3, [r1, r3] add r3, r3, #8 cmp r2, r3 - bgt .L961 -.L939: - tst r9, #2 - beq .L947 - ldr r10, .L1015+20 - mov r3, #0 - movw r2, #2952 - mov r8, #64 - mov fp, r3 - strh r3, [r5, r2] @ movhi -.L952: - ldrh r2, [r10] - ldr r0, .L1015+36 - mov r1, r2 - str r2, [sp, #12] + bgt .L1002 +.L973: + ldr r3, [sp, #20] + tst r3, #2 + beq .L985 + movw r3, #2798 + ldrh r2, [r5, r3] + ldr r3, [sp, #16] + cmp r6, r3 + movcs r3, #0 + movcc r3, #1 + cmp r2, #32 + movls r3, #0 + cmp r3, #0 + beq .L985 + ldr r8, .L1069+28 + mov r7, #64 + mov r5, #0 +.L991: + ldrh fp, [r8] + ldr r9, .L1069+28 + ldr r10, .L1069 + add r0, r9, #6 + mov r1, fp bl _list_get_gc_head_node - ldr r2, [sp, #12] - add r2, r2, #1 - strh r2, [r10] @ movhi - movw r2, #65535 - cmp r0, r2 - beq .L948 - cmp r7, #1 - ldr r1, .L1015+40 - bne .L949 - ldr r3, .L1015 - add r2, r1, #668 - ldrh r2, [r2] - ldrb lr, [r3, #2964] @ zero_extendqisi2 - smulbb r2, lr, r2 - add lr, r3, #2960 - ldrh lr, [lr] - sub r2, r2, lr, lsr #3 - strh r2, [r1] @ movhi -.L949: - ldr lr, [r5, #576] - mov r2, r0, asl #1 - ldrh lr, [lr, r2] - ldrh r2, [r1] - cmp lr, r2 - bcs .L950 + movw r3, #65535 + cmp r0, r3 + beq .L986 + ldr r3, [sp, #8] + add fp, fp, #1 + strh fp, [r8] @ movhi + cmp r3, #1 + bne .L987 + ldr r3, .L1069+40 + ldrb r2, [r3, #-3195] @ zero_extendqisi2 + ldrh r3, [r9, #12] + smulbb r3, r2, r3 + ldrh r2, [r9, #10] + sub r3, r3, r2, lsr #3 + ldr r2, .L1069+56 + strh r3, [r2] @ movhi +.L987: + ldr r3, [r10, #1088] + mov r9, r0, asl #1 + ldrh r2, [r3, r9] + ldr r3, .L1069+56 + ldrh r3, [r3] + cmp r2, r3 + bcs .L988 mov r1, #0 - mov r2, r6 + ldr r2, [sp, #12] bl gc_add_sblk cmp r0, #0 - beq .L951 + beq .L989 + ldr r3, .L1069 add r4, r4, #1 - add r3, fp, #1 + ldr r2, [sp, #8] + add r5, r5, #1 uxth r4, r4 - uxth fp, r3 - cmp r4, r7 - bcc .L951 - b .L948 -.L950: - ldr r1, .L1015 - movw r2, #2952 - mov r0, #0 - strh r0, [r1, r2] @ movhi - b .L948 -.L951: - sub ip, r8, #1 - uxth r8, ip - cmp r8, #0 - bne .L952 -.L948: - cmp r4, r7 - ldr r2, .L1015+44 - bcc .L953 - cmp fp, #0 - bne .L954 - movw r3, #2282 - ldrh r1, [r5, r3] - ldrh r3, [r2, #16] + ldr r3, [r3, #1088] + uxth r5, r5 + ldrh r3, [r3, r9] + add r6, r6, r3 + ldr r3, [sp, #16] + uxth r6, r6 + cmp r6, r3 + cmpls r4, r2 + bcc .L989 + b .L990 +.L988: + ldr r3, .L1069+32 + mov r2, #0 + strh r2, [r3, #-14] @ movhi + b .L990 +.L986: + mov r3, #0 + strh r3, [r9] @ movhi + b .L990 +.L989: + sub r7, r7, #1 + uxth r7, r7 + cmp r7, #0 + bne .L991 +.L990: + ldr r3, [sp, #8] + ldr r2, .L1069+32 + cmp r4, r3 + add ip, r2, #3168 + bcc .L992 + cmp r5, #0 + bne .L993 + ldr r0, .L1069 + sub r3, ip, #3152 + movw r1, #2798 + ldrh r3, [r3, #-8] + ldrh r1, [r0, r1] cmp r1, r3 - bls .L954 -.L953: - ldrh r3, [r2] - movw r2, #2962 - ldrh ip, [r5, r2] - movw r1, #2294 - ldrb r2, [r5, #2964] @ zero_extendqisi2 - ldrh r0, [r5, r1] + bls .L993 +.L992: + ldrh r3, [r2, #-4] + movw r1, #2810 + ldrh lr, [r2, #-2] + ldrb r2, [ip, #-3195] @ zero_extendqisi2 + ldrh r0, [r10, r1] mov r3, r3, lsr #3 - mul r2, r2, ip + mul r2, r2, lr rsb r2, r3, r2 cmp r0, r2 + ldrlt r2, .L1069 addlt r3, r3, r0 - blt .L1013 - b .L947 -.L954: - ldrh r0, [r2] - movw r1, #2294 - ldrb r2, [r5, #2964] @ zero_extendqisi2 - ldrh r3, [r5, r1] + strlth r3, [r2, r1] @ movhi + b .L985 +.L993: + ldrh r0, [r2, #-4] + movw r1, #2810 + ldrb r2, [ip, #-3195] @ zero_extendqisi2 + ldrh r3, [r10, r1] mul r2, r2, r0 cmp r3, r2 - ble .L947 - sub r3, r3, r0, lsr #3 -.L1013: - ldr r2, .L1015 - strh r3, [r2, r1] @ movhi -.L947: - ldr r3, [sp, #8] + subgt r3, r3, r0, lsr #3 + bgt .L1065 + b .L966 +.L985: + ldr r3, [sp, #24] cmp r3, #0 - beq .L932 - ldr fp, .L1015 - movw r3, #2946 - mov r10, #64 - mov r2, #0 - strh r2, [r5, r3] @ movhi -.L958: - ldr r3, .L1015+4 - add r0, r3, #2 - ldrh r8, [r3] - mov r1, r8 - add r8, r8, #1 + beq .L966 + ldrh r8, [sp, #8] + ldr r3, [sp, #16] + cmp r4, r8 + cmpcc r6, r3 + bcs .L966 + ldr r9, .L1069+8 + mov r5, #64 + ldr fp, .L1069 +.L999: + ldrh r7, [r9] + ldr r3, .L1069+8 + ldr r10, .L1069 + add r0, r3, #4 + mov r1, r7 + str r3, [sp, #24] bl _list_get_gc_head_node - ldr r3, .L1015+4 movw r2, #65535 - strh r8, [r3] @ movhi + ldr r3, [sp, #24] cmp r0, r2 - beq .L955 - ldr r1, [fp, #576] - mov r2, r0, asl #1 - ldrh r1, [r1, r2] - ldr r2, .L1015+48 - ldrh ip, [r2] - cmp ip, r1 - cmphi r1, #2 - bls .L956 - ldrh r1, [r3, #28] - ldrh r2, [r2, #-16] - cmp r2, r1, lsr #1 - bls .L955 -.L956: + add ip, r3, #3184 + beq .L995 + ldr r3, [fp, #1088] + add r7, r7, #1 + strh r7, [r9] @ movhi + mov r7, r0, asl #1 + ldrh r2, [r3, r7] + ldr r3, .L1069+60 + ldrh r3, [r3] + cmp r2, r3 + bcs .L996 + ldr r3, .L1069+64 + ldrh r2, [r3] + ldr r3, .L1069+52 + ldrh r3, [r3] + cmp r3, r2, lsr #1 + bls .L997 +.L996: mov r1, #0 - mov r2, r6 + ldr r2, [sp, #12] + str ip, [sp, #24] bl gc_add_sblk cmp r0, #0 - beq .L957 + ldr ip, [sp, #24] + beq .L998 + ldr r3, [fp, #1088] add r4, r4, #1 uxth r4, r4 - cmp r4, r7 - bcs .L955 -.L957: - sub r3, r10, #1 - uxth r10, r3 - cmp r10, #0 - bne .L958 -.L955: - cmp r4, r7 - ldr r3, .L1015+44 - movw r1, #2296 - bcs .L959 - sub r0, r3, #2960 - ldrh r3, [r3] - ldrh r2, [r5, r1] - cmp r2, r3, lsr #1 - subhi r2, r2, r3, lsr #3 - strhih r2, [r0, r1] @ movhi - b .L932 -.L959: - ldrh r0, [r3] - sub ip, r3, #2960 - ldrb r3, [r5, #2964] @ zero_extendqisi2 - ldrh r2, [r5, r1] + ldrh r3, [r3, r7] + add r6, r6, r3 + ldr r3, [sp, #16] + uxth r6, r6 + cmp r6, r3 + cmpls r4, r8 + bcc .L998 + b .L997 +.L995: + cmp r7, #64 + movhi r2, #0 + strhih r2, [r3] @ movhi + b .L997 +.L998: + sub r5, r5, #1 + uxth r5, r5 + cmp r5, #0 + bne .L999 +.L997: + cmp r4, r8 + ldr r0, .L1069+32 + movw r1, #2812 + bcs .L1000 + ldrh r2, [r0, #-4] + ldrh r3, [r10, r1] + cmp r3, r2, lsr #1 + bls .L966 + sub r3, r3, r2, lsr #3 +.L1065: + ldr r2, .L1069 +.L1066: + strh r3, [r2, r1] @ movhi + b .L966 +.L1000: + ldrh r0, [r0, #-4] + ldrb r3, [ip, #-3195] @ zero_extendqisi2 + ldrh r2, [r10, r1] mul r3, r3, r0 sub r3, r3, #32 cmp r2, r3 addlt r2, r2, r0, lsr #3 - strlth r2, [ip, r1] @ movhi -.L932: - ldr r3, .L1015+8 + ldrlt r3, .L1069 + strlth r2, [r3, r1] @ movhi +.L966: + ldr r3, .L1069+12 ldr r3, [r3] tst r3, #256 - beq .L960 - str r7, [sp] - mov r1, r6 - ldr r0, .L1015+52 - mov r2, r9 + beq .L1001 + ldr r3, [sp, #8] + ldr r0, .L1069+68 + ldr r1, [sp, #12] + str r3, [sp] mov r3, r4 + ldr r2, [sp, #20] bl printk -.L960: +.L1001: mov r0, r4 - add sp, sp, #20 + add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L961: - ldr r10, .L1015+4 - movw r3, #2946 - mov r8, #64 - movw fp, #65535 - mov r2, #0 - strh r2, [r5, r3] @ movhi -.L946: - ldrh r2, [r10] - ldr r0, .L1015+56 - mov r1, r2 - str r2, [sp, #12] +.L1002: + ldr r3, [sp, #16] + cmp r6, r3 + bcs .L973 + ldr r8, .L1069+8 + mov r7, #64 + movw r9, #65535 +.L984: + ldrh r10, [r8] + ldr r3, .L1069+8 + mov r1, r10 + add r0, r3, #4 + str r3, [sp, #28] bl _list_get_gc_head_node - ldr r2, [sp, #12] - cmp r0, fp - add r2, r2, #1 - strh r2, [r10] @ movhi - beq .L939 + cmp r0, r9 + mov fp, r0 + ldr r3, [sp, #28] + beq .L982 mov r1, #0 - mov r2, r6 + ldr r2, [sp, #12] + add r10, r10, #1 + strh r10, [r8] @ movhi bl gc_add_sblk cmp r0, #0 - beq .L945 + beq .L983 + ldr r3, [r5, #1088] + mov fp, fp, asl #1 add r4, r4, #1 + ldr r2, [sp, #8] + ldrh r3, [r3, fp] uxth r4, r4 - cmp r4, r7 - bcs .L939 -.L945: - sub r3, r8, #1 - uxth r8, r3 - cmp r8, #0 - bne .L946 - b .L939 -.L1016: + add r6, r6, r3 + ldr r3, [sp, #16] + uxth r6, r6 + cmp r6, r3 + cmpls r4, r2 + bcc .L983 + b .L973 +.L982: + cmp r10, #64 + movhi r2, #0 + strhih r2, [r3] @ movhi + b .L973 +.L983: + sub r7, r7, #1 + uxth r7, r7 + cmp r7, #0 + bne .L984 + b .L973 +.L1070: .align 2 -.L1015: +.L1069: .word .LANCHOR0 - .word .LANCHOR0+2946 + .word .LANCHOR0+2828 + .word .LANCHOR3-3184 .word .LANCHOR2 - .word .LC94 - .word .LANCHOR0+2298 - .word .LANCHOR0+2952 - .word .LANCHOR0+2966 - .word .LANCHOR0+2312 - .word .LANCHOR0+2968 - .word .LANCHOR0+2956 - .word .LANCHOR0+2294 - .word .LANCHOR0+2960 - .word .LANCHOR0+2296 - .word .LC95 - .word .LANCHOR0+2948 + .word .LC99 + .word .LANCHOR0+2814 + .word .LANCHOR0+2816 + .word .LANCHOR3-3182 + .word .LANCHOR3-3168 + .word .LANCHOR3-3186 + .word .LANCHOR3 + .word .LANCHOR3-3152 + .word .LANCHOR0+2794 + .word .LANCHOR0+2796 + .word .LANCHOR0+2810 + .word .LANCHOR0+2812 + .word .LANCHOR3-3162 + .word .LC100 .fnend .size gc_search_src_blk, .-gc_search_src_blk .align 2 @@ -5750,69 +6094,74 @@ gc_free_temp_buf: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r4, .L1032 - ldrb r0, [r4, #2319] @ zero_extendqisi2 + ldr r5, .L1086 + ldrb r0, [r5, #2835] @ zero_extendqisi2 cmp r0, #0 ldmeqfd sp!, {r4, r5, r6, pc} - ldrb r3, [r4, #2262] @ zero_extendqisi2 + ldrb r3, [r5, #2774] @ zero_extendqisi2 cmp r3, #1 - bhi .L1024 - add r3, r4, #2880 - mov r0, #48 - ldrh r5, [r3] - movw r3, #2962 - ldrh r1, [r4, r3] - ldrb r3, [r4, #2964] @ zero_extendqisi2 - add r2, r5, #24 - mul r3, r3, r1 - ldr r1, [r4, #2940] + bhi .L1078 + ldr r2, .L1086+4 + movw r3, #2104 + ldr r1, .L1086+8 + ldrh r4, [r2, r3] + sub r3, r1, #3168 + mov r6, r1 + ldrh r0, [r3, #-2] + add r2, r4, #24 + ldrb r3, [r1, #-3195] @ zero_extendqisi2 + mul r3, r3, r0 + ldr r0, [r1, #-3192] + mov r1, #48 cmp r3, r2 movcs r3, r2 -.L1019: - cmp r5, r3 - bcs .L1024 - ldrb r2, [r1, r5] @ zero_extendqisi2 +.L1073: + cmp r4, r3 + bcs .L1078 + ldrb r2, [r0, r4] @ zero_extendqisi2 cmp r2, #255 - beq .L1020 - mul r2, r0, r2 - ldr r6, .L1032 - add ip, r4, r2 - ldrb ip, [ip, #769] @ zero_extendqisi2 + beq .L1074 + mul r2, r1, r2 + add ip, r5, r2 + ldrb ip, [ip, #1281] @ zero_extendqisi2 cmp ip, #0 - bne .L1020 - add r0, r6, #724 + bne .L1074 + ldr r0, .L1086+12 add r0, r0, r2 bl zbuf_free - ldr r3, .L1032+4 + ldr r3, .L1086+16 ldr r3, [r3] tst r3, #256 - beq .L1021 - ldr r3, [r6, #2940] - mov r1, r5 - ldr r0, .L1032+8 - ldrb r2, [r3, r5] @ zero_extendqisi2 + beq .L1075 + ldr r3, [r6, #-3192] + mov r1, r4 + ldr r0, .L1086+20 + ldrb r2, [r3, r4] @ zero_extendqisi2 bl printk -.L1021: - ldr r3, [r4, #2940] +.L1075: + ldr r3, [r6, #-3192] mvn r2, #0 mov r0, #1 - strb r2, [r3, r5] - ldrb r3, [r4, #2319] @ zero_extendqisi2 + strb r2, [r3, r4] + ldrb r3, [r5, #2835] @ zero_extendqisi2 add r3, r3, r2 - strb r3, [r4, #2319] + strb r3, [r5, #2835] ldmfd sp!, {r4, r5, r6, pc} -.L1020: - add r5, r5, #1 - b .L1019 -.L1024: +.L1074: + add r4, r4, #1 + b .L1073 +.L1078: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L1033: +.L1087: .align 2 -.L1032: +.L1086: .word .LANCHOR0 + .word .LANCHOR0+2828 + .word .LANCHOR3 + .word .LANCHOR0+1236 .word .LANCHOR2 - .word .LC96 + .word .LC101 .fnend .size gc_free_temp_buf, .-gc_free_temp_buf .align 2 @@ -5825,30 +6174,30 @@ print_gc_debug_info: stmfd sp!, {r0, r1, r2, r3, r4, lr} .save {lr} .pad #20 - movw r2, #2312 - ldr r0, .L1036 - movw ip, #566 + movw r2, #2828 + ldr r0, .L1090 + movw ip, #2102 add r3, r0, r2 ldrh r1, [r0, r2] ldrh r2, [r3, #2] ldrh r3, [r3, ip] - ldrb ip, [r0, #2262] @ zero_extendqisi2 + ldrb ip, [r0, #2774] @ zero_extendqisi2 str ip, [sp] - ldrb ip, [r0, #2319] @ zero_extendqisi2 + ldrb ip, [r0, #2835] @ zero_extendqisi2 str ip, [sp, #4] - movw ip, #2292 + movw ip, #2808 ldrh r0, [r0, ip] str r0, [sp, #8] - ldr r0, .L1036+4 + ldr r0, .L1090+4 bl printk add sp, sp, #20 @ sp needed ldr pc, [sp], #4 -.L1037: +.L1091: .align 2 -.L1036: +.L1090: .word .LANCHOR0 - .word .LC97 + .word .LC102 .fnend .size print_gc_debug_info, .-print_gc_debug_info .align 2 @@ -5861,20 +6210,20 @@ zftl_get_gc_node: @ link register save eliminated. cmp r1, #5 mov r3, r0 - ldreq r0, .L1042 - beq .L1041 + ldreq r0, .L1096 + beq .L1095 cmp r1, #2 - ldreq r0, .L1042+4 - ldrne r0, .L1042+8 -.L1041: + ldreq r0, .L1096+4 + ldrne r0, .L1096+8 +.L1095: mov r1, r3 b _list_get_gc_head_node -.L1043: +.L1097: .align 2 -.L1042: - .word .LANCHOR0+2956 - .word .LANCHOR0+2968 - .word .LANCHOR0+2948 +.L1096: + .word .LANCHOR3-3176 + .word .LANCHOR3-3168 + .word .LANCHOR3-3180 .fnend .size zftl_get_gc_node, .-zftl_get_gc_node .align 2 @@ -5885,30 +6234,33 @@ zftl_insert_free_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1048 + ldr r3, .L1102 mov r1, r0 - ldr r3, [r2, #568] + ldr r3, [r3, #1080] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 ands r3, r3, #24 - addeq r2, r2, #2272 - ldreq r0, .L1048+4 - beq .L1047 + ldreq r0, .L1102+4 + ldreq r2, .L1102+8 + beq .L1101 +.L1099: cmp r3, #16 - ldrne r0, .L1048+8 - ldreq r0, .L1048+12 - ldreq r2, .L1048+16 - subne r2, r0, #712 -.L1047: + ldreq r0, .L1102+12 + ldreq r2, .L1102+16 + ldrne r0, .L1102+20 + ldrne r2, .L1102+24 +.L1101: b _insert_free_list -.L1049: +.L1103: .align 2 -.L1048: +.L1102: .word .LANCHOR0 - .word .LANCHOR0+2980 - .word .LANCHOR0+2988 - .word .LANCHOR0+2984 - .word .LANCHOR0+2274 + .word .LANCHOR3-3156 + .word .LANCHOR0+2788 + .word .LANCHOR3-3152 + .word .LANCHOR0+2790 + .word .LANCHOR3-3148 + .word .LANCHOR0+2792 .fnend .size zftl_insert_free_list, .-zftl_insert_free_list .align 2 @@ -5919,36 +6271,38 @@ zftl_insert_data_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1055 + ldr r3, .L1109 mov r1, r0 - ldr r3, [r3, #568] + ldr r3, [r3, #1080] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #64 - ldreq r0, .L1055+4 - ldreq r2, .L1055+8 - beq .L1054 -.L1051: + ldreq r0, .L1109+4 + ldreq r2, .L1109+8 + beq .L1108 +.L1105: cmp r3, #96 - ldreq r0, .L1055+12 - subeq r2, r0, #668 - beq .L1054 + ldreq r0, .L1109+12 + ldreq r2, .L1109+16 + beq .L1108 +.L1106: cmp r3, #160 bxne lr - ldr r0, .L1055+16 - ldr r2, .L1055+20 -.L1054: + ldr r0, .L1109+20 + ldr r2, .L1109+24 +.L1108: b _insert_data_list -.L1056: +.L1110: .align 2 -.L1055: +.L1109: .word .LANCHOR0 - .word .LANCHOR0+2968 - .word .LANCHOR0+2278 - .word .LANCHOR0+2948 - .word .LANCHOR0+2956 - .word .LANCHOR0+2282 + .word .LANCHOR3-3168 + .word .LANCHOR0+2794 + .word .LANCHOR3-3180 + .word .LANCHOR0+2796 + .word .LANCHOR3-3176 + .word .LANCHOR0+2798 .fnend .size zftl_insert_data_list, .-zftl_insert_data_list .align 2 @@ -5962,9 +6316,9 @@ zftl_gc_get_free_sblk: .save {r4, r5, r6, r7, r8, lr} .pad #16 movw r2, #65535 - ldr r8, .L1071 + ldr r8, .L1126 mov r7, r0 - ldr r3, [r8, #580] + ldr r3, [r8, #1092] add r3, r3, #588 ldrh r4, [r3] clz r3, r0 @@ -5972,67 +6326,69 @@ zftl_gc_get_free_sblk: mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L1058 - ldr r0, .L1071+4 + beq .L1112 + ldr r0, .L1126+4 mov r1, r4 bl printk - ldr r3, [r8, #580] + ldr r3, [r8, #1092] mvn r2, #0 add r3, r3, #588 strh r2, [r3] @ movhi - b .L1059 -.L1058: - movw r3, #2274 + b .L1113 +.L1112: + movw r3, #2790 mov r6, r1 ldrh r1, [r8, r3] - movw r3, #2276 + movw r3, #2792 ldrh r3, [r8, r3] mov r5, r8 cmp r1, r3 - bls .L1060 + bcc .L1114 + movw r2, #2788 + ldrh r2, [r8, r2] + cmp r3, #0 + cmpne r2, r1 + bls .L1115 +.L1114: + cmp r7, #0 + ldr r0, .L1126+8 + rsbne r1, r1, r1, asl #3 + moveq r1, r3, lsr #2 + ubfxne r1, r1, #3, #16 + ldr r2, .L1126+12 + b .L1125 +.L1115: cmp r0, #0 - ldr r2, .L1071+8 + ldr r2, .L1126+16 movne r1, r1, lsr #3 moveq r1, r0 - ldr r0, .L1071+12 - b .L1070 -.L1060: - cmp r0, #0 - moveq r1, r3, lsr #2 - beq .L1064 - rsb r1, r1, r1, asl #3 - add r3, r1, #7 - cmp r1, #0 - movlt r1, r3 - ubfx r1, r1, #3, #16 -.L1064: - ldr r0, .L1071+16 - sub r2, r0, #712 -.L1070: + ldr r0, .L1126+20 +.L1125: bl _list_pop_index_node movw r3, #65535 uxth r4, r0 cmp r4, r3 - bne .L1065 - ldr r3, .L1071+20 + bne .L1120 + movw r3, #2788 + ldr r0, .L1126+24 + ldrh r3, [r5, r3] mov r1, r4 - ldr r0, .L1071+24 mov r2, r6 - ldrh r3, [r3] str r3, [sp] - movw r3, #2276 + movw r3, #2792 ldrh r3, [r5, r3] str r3, [sp, #4] - ldr r3, [r5, #2980] + ldr r3, .L1126+28 + ldr r3, [r3, #-3156] bl printk -.L1065: +.L1120: cmp r7, #0 - beq .L1059 - ldr r3, .L1071+28 + beq .L1113 + ldr r3, .L1126+32 ldr r3, [r3] tst r3, #256 - beq .L1059 - ldr r2, [r5, #568] + beq .L1113 + ldr r2, [r5, #1080] mov r0, r4, asl #2 add r3, r2, r0 ldr r1, [r2, r4, asl #2] @@ -6040,10 +6396,10 @@ zftl_gc_get_free_sblk: ubfx r1, r1, #11, #8 str r1, [sp] ldrh r2, [r2, r0] - ldr r0, .L1071+32 + ldr r0, .L1126+36 ubfx r2, r2, #0, #11 str r2, [sp, #4] - ldr r1, [r5, #576] + ldr r1, [r5, #1088] mov r2, r4, asl #1 ldrh r2, [r1, r2] mov r1, r4 @@ -6051,23 +6407,24 @@ zftl_gc_get_free_sblk: mov r2, r3, lsr #5 ubfx r3, r3, #3, #2 bl printk -.L1059: +.L1113: mov r0, r4 add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1072: +.L1127: .align 2 -.L1071: +.L1126: .word .LANCHOR0 - .word .LC98 - .word .LANCHOR0+2274 - .word .LANCHOR0+2984 - .word .LANCHOR0+2988 - .word .LANCHOR0+2272 - .word .LC99 + .word .LC103 + .word .LANCHOR3-3148 + .word .LANCHOR0+2792 + .word .LANCHOR0+2790 + .word .LANCHOR3-3152 + .word .LC104 + .word .LANCHOR3 .word .LANCHOR2 - .word .LC100 + .word .LC105 .fnend .size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk .align 2 @@ -6082,104 +6439,107 @@ zftl_get_free_sblk: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r1 - ldr r5, .L1088 - bne .L1074 - movw r3, #2274 + ldr r5, .L1143 + bne .L1129 + movw r3, #2790 ldrh r1, [r5, r3] - movw r3, #2276 + movw r3, #2792 ldrh r2, [r5, r3] cmp r1, r2 - bcc .L1075 - add r3, r5, #2272 - ldrh r3, [r3] + bcc .L1130 + movw r3, #2788 + ldrh r3, [r5, r3] cmp r2, #0 cmpne r3, r1 movhi r1, #1 movls r1, #0 - bls .L1076 -.L1075: - ldr r0, .L1088+4 + bls .L1131 +.L1130: + ldr r0, .L1143+4 mov r1, r2, lsr #1 - b .L1087 -.L1076: - ldr r0, .L1088+8 - ldr r2, .L1088+12 - b .L1086 -.L1074: - ldr r2, [r5, #580] + b .L1142 +.L1131: + ldr r0, .L1143+8 + ldr r2, .L1143+12 + b .L1141 +.L1129: + ldr r2, [r5, #1092] movw r7, #590 ldrh r4, [r2, r7] movw r2, #65535 cmp r1, #1 cmpne r4, r2 - beq .L1078 - ldr r0, .L1088+16 + beq .L1133 + ldr r0, .L1143+16 mov r1, r4 bl printk - ldr r3, [r5, #580] + ldr r3, [r5, #1092] mvn r2, #0 strh r2, [r3, r7] @ movhi - b .L1079 -.L1078: - add r2, r5, #2272 - movw r1, #2276 - ldrh r1, [r5, r1] + b .L1134 +.L1133: + movw r2, #2788 + movw r1, #2792 + ldrh r2, [r5, r2] mov r3, r0 - ldrh r2, [r2] + ldrh r1, [r5, r1] cmp r2, r1 - bcc .L1080 - movw r0, #2274 + bcc .L1135 + movw r0, #2790 ldrh r0, [r5, r0] cmp r1, #0 cmpne r0, r2 - bls .L1081 -.L1080: + bls .L1136 +.L1135: cmp r6, #1 - ldr r0, .L1088+4 + ldr r0, .L1143+4 moveq r3, r1, lsr #1 mov r1, r3 -.L1087: - sub r2, r0, #712 - b .L1086 -.L1081: +.L1142: + ldr r2, .L1143+20 + b .L1141 +.L1136: cmp r6, #1 - ldr r0, .L1088+20 + ldr r0, .L1143+24 moveq r3, r2, lsr #1 - sub r2, r0, #708 + ldr r2, .L1143+28 mov r1, r3 -.L1086: +.L1141: bl _list_pop_index_node movw r3, #65535 uxth r4, r0 cmp r4, r3 - bne .L1079 - ldr r3, .L1088+24 + bne .L1134 + movw r3, #2788 + ldr r0, .L1143+32 + ldrh r3, [r5, r3] mov r1, r4 - ldr r0, .L1088+28 mov r2, r6 - ldrh r3, [r3] str r3, [sp] - movw r3, #2276 + movw r3, #2792 ldrh r3, [r5, r3] str r3, [sp, #4] - ldr r3, [r5, #2980] + ldr r3, .L1143+36 + ldr r3, [r3, #-3156] bl printk -.L1079: +.L1134: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L1089: +.L1144: .align 2 -.L1088: +.L1143: .word .LANCHOR0 - .word .LANCHOR0+2988 - .word .LANCHOR0+2984 - .word .LANCHOR0+2274 - .word .LC101 - .word .LANCHOR0+2980 - .word .LANCHOR0+2272 - .word .LC99 + .word .LANCHOR3-3148 + .word .LANCHOR3-3152 + .word .LANCHOR0+2790 + .word .LC106 + .word .LANCHOR0+2792 + .word .LANCHOR3-3156 + .word .LANCHOR0+2788 + .word .LC104 + .word .LANCHOR3 .fnend .size zftl_get_free_sblk, .-zftl_get_free_sblk .align 2 @@ -6190,36 +6550,38 @@ zftl_remove_data_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1095 + ldr r3, .L1150 mov r1, r0 - ldr r3, [r3, #568] + ldr r3, [r3, #1080] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #64 - ldreq r0, .L1095+4 - ldreq r2, .L1095+8 - beq .L1094 -.L1091: + ldreq r0, .L1150+4 + ldreq r2, .L1150+8 + beq .L1149 +.L1146: cmp r3, #96 - ldreq r0, .L1095+12 - subeq r2, r0, #668 - beq .L1094 + ldreq r0, .L1150+12 + ldreq r2, .L1150+16 + beq .L1149 +.L1147: cmp r3, #160 bxne lr - ldr r0, .L1095+16 - ldr r2, .L1095+20 -.L1094: + ldr r0, .L1150+20 + ldr r2, .L1150+24 +.L1149: b _list_remove_node -.L1096: +.L1151: .align 2 -.L1095: +.L1150: .word .LANCHOR0 - .word .LANCHOR0+2968 - .word .LANCHOR0+2278 - .word .LANCHOR0+2948 - .word .LANCHOR0+2956 - .word .LANCHOR0+2282 + .word .LANCHOR3-3168 + .word .LANCHOR0+2794 + .word .LANCHOR3-3180 + .word .LANCHOR0+2796 + .word .LANCHOR3-3176 + .word .LANCHOR0+2798 .fnend .size zftl_remove_data_node, .-zftl_remove_data_node .align 2 @@ -6230,30 +6592,33 @@ zftl_remove_free_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1101 + ldr r3, .L1156 mov r1, r0 - ldr r3, [r2, #568] + ldr r3, [r3, #1080] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 ands r3, r3, #24 - addeq r2, r2, #2272 - ldreq r0, .L1101+4 - beq .L1100 + ldreq r0, .L1156+4 + ldreq r2, .L1156+8 + beq .L1155 +.L1153: cmp r3, #16 - ldrne r0, .L1101+8 - ldreq r0, .L1101+12 - ldreq r2, .L1101+16 - subne r2, r0, #712 -.L1100: + ldreq r0, .L1156+12 + ldreq r2, .L1156+16 + ldrne r0, .L1156+20 + ldrne r2, .L1156+24 +.L1155: b _list_remove_node -.L1102: +.L1157: .align 2 -.L1101: +.L1156: .word .LANCHOR0 - .word .LANCHOR0+2980 - .word .LANCHOR0+2988 - .word .LANCHOR0+2984 - .word .LANCHOR0+2274 + .word .LANCHOR3-3156 + .word .LANCHOR0+2788 + .word .LANCHOR3-3152 + .word .LANCHOR0+2790 + .word .LANCHOR3-3148 + .word .LANCHOR0+2792 .fnend .size zftl_remove_free_node, .-zftl_remove_free_node .align 2 @@ -6264,36 +6629,38 @@ zftl_list_update_data_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1108 + ldr r3, .L1163 mov r1, r0 - ldr r3, [r3, #568] + ldr r3, [r3, #1080] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #64 - ldreq r0, .L1108+4 - ldreq r2, .L1108+8 - beq .L1107 -.L1104: + ldreq r0, .L1163+4 + ldreq r2, .L1163+8 + beq .L1162 +.L1159: cmp r3, #96 - ldreq r0, .L1108+12 - subeq r2, r0, #668 - beq .L1107 + ldreq r0, .L1163+12 + ldreq r2, .L1163+16 + beq .L1162 +.L1160: cmp r3, #160 bxne lr - ldr r0, .L1108+16 - ldr r2, .L1108+20 -.L1107: + ldr r0, .L1163+20 + ldr r2, .L1163+24 +.L1162: b _list_update_data_list -.L1109: +.L1164: .align 2 -.L1108: +.L1163: .word .LANCHOR0 - .word .LANCHOR0+2968 - .word .LANCHOR0+2278 - .word .LANCHOR0+2948 - .word .LANCHOR0+2956 - .word .LANCHOR0+2282 + .word .LANCHOR3-3168 + .word .LANCHOR0+2794 + .word .LANCHOR3-3180 + .word .LANCHOR0+2796 + .word .LANCHOR3-3176 + .word .LANCHOR0+2798 .fnend .size zftl_list_update_data_list, .-zftl_list_update_data_list .align 2 @@ -6310,19 +6677,19 @@ print_list_info: .pad #36 sub sp, sp, #36 ldr r1, [r4] - ldr r0, .L1115 + ldr r0, .L1170 bl printk ldr r4, [r4] cmp r4, #0 - beq .L1110 - ldr r6, .L1115+4 + beq .L1165 + ldr r6, .L1170+4 mov r5, #0 - ldr r7, .L1115+8 -.L1113: - ldr r2, [r6, #524] + ldr r7, .L1170+8 +.L1168: + ldr r2, [r6, #1036] ldrh r0, [r4, #2] rsb r2, r2, r4 - ldr r1, [r6, #568] + ldr r1, [r6, #1080] ldrh r3, [r4] mov r2, r2, asr #1 str r0, [sp] @@ -6342,40 +6709,40 @@ print_list_info: ubfx r0, r0, #11, #8 str r0, [sp, #16] ldrh r1, [r1, ip] - ldr r0, [r6, #576] + ldr r0, [r6, #1088] ubfx r1, r1, #0, #11 str r1, [sp, #20] mov r1, r2, asl #1 ldrh r1, [r0, r1] - ldr r0, .L1115+12 + ldr r0, .L1170+12 str r1, [sp, #24] mov r1, r5 bl printk ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - beq .L1110 - ldr r3, [r6, #524] + beq .L1165 + ldr r3, [r6, #1036] mov r4, #6 add r5, r5, #1 mla r4, r4, r2, r3 - ldr r3, .L1115+16 + ldr r3, .L1170+16 uxth r5, r5 ldrh r3, [r3] cmp r3, r5 - bcs .L1113 -.L1110: + bcs .L1168 +.L1165: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L1116: +.L1171: .align 2 -.L1115: - .word .LC102 +.L1170: + .word .LC107 .word .LANCHOR0 .word -1431655765 - .word .LC103 - .word .LANCHOR0+2992 + .word .LC108 + .word .LANCHOR3-3144 .fnend .size print_list_info, .-print_list_info .align 2 @@ -6385,43 +6752,43 @@ dump_all_list_info: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, lr} - .save {r4, lr} - ldr r4, .L1119 - add r0, r4, #2976 - add r1, r4, #2272 - add r0, r0, #4 - bl print_list_info - add r0, r4, #2976 - add r1, r4, #2272 - add r0, r0, #8 - add r1, r1, #2 - bl print_list_info - add r0, r4, #2976 - add r1, r4, #2272 - add r0, r0, #12 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + ldr r5, .L1174 + ldr r4, .L1174+4 + add r1, r5, #2784 + sub r6, r4, #3152 add r1, r1, #4 + sub r0, r6, #4 bl print_list_info - add r0, r4, #2960 - add r1, r4, #2272 - add r0, r0, #8 + add r1, r5, #2784 + mov r0, r6 add r1, r1, #6 bl print_list_info - add r0, r4, #2944 - add r1, r4, #2272 - add r0, r0, #4 + sub r0, r4, #3136 + add r1, r5, #2784 + sub r4, r4, #3168 + sub r0, r0, #12 add r1, r1, #8 bl print_list_info - add r0, r4, #2944 - add r1, r4, #2272 - add r0, r0, #12 + add r1, r5, #2784 + mov r0, r4 add r1, r1, #10 - ldmfd sp!, {r4, lr} + bl print_list_info + add r1, r5, #2784 + sub r0, r4, #12 + add r1, r1, #12 + bl print_list_info + add r1, r5, #2784 + sub r0, r4, #8 + add r1, r1, #14 + ldmfd sp!, {r4, r5, r6, lr} b print_list_info -.L1120: +.L1175: .align 2 -.L1119: +.L1174: .word .LANCHOR0 + .word .LANCHOR3 .fnend .size dump_all_list_info, .-dump_all_list_info .align 2 @@ -6432,8 +6799,8 @@ ftl_tmp_into_update: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1126 - ldr r3, [r3, #2288] + ldr r3, .L1181 + ldr r3, [r3, #2804] ldr r2, [r3, #16] cmp r2, #2048 movhi r0, r2, lsr #11 @@ -6467,9 +6834,9 @@ ftl_tmp_into_update: addhi r1, r1, r0 strhi r1, [r3, #44] bx lr -.L1127: +.L1182: .align 2 -.L1126: +.L1181: .word .LANCHOR0 .fnend .size ftl_tmp_into_update, .-ftl_tmp_into_update @@ -6485,24 +6852,25 @@ ftl_get_blk_list_in_sblk: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r5, #0 - ldr r6, .L1138 + ldr r8, .L1193 mov r10, r0 - mov r7, r1 - mov r8, r5 - add r2, r6, #2928 - ldr r4, [r6, #568] - mov r9, r6 + ldr r9, .L1193+4 + mov r6, r1 + ldr r2, .L1193+8 + mov r7, r5 + ldr r4, [r8, #1080] add r4, r4, r0, asl #2 ldrb r3, [r4, #3] @ zero_extendqisi2 -.L1129: - ldrb r1, [r6, #2964] @ zero_extendqisi2 - cmp r8, r1 - bge .L1136 - mov r1, r3, asr r8 +.L1184: + ldrb r1, [r9, #-3195] @ zero_extendqisi2 + cmp r7, r1 + ldr r1, .L1193+4 + bge .L1191 + mov r1, r3, asr r7 tst r1, #1 - bne .L1130 - ldrb r4, [r9, #2930] @ zero_extendqisi2 - mov r0, r8 + bne .L1185 + ldrb r4, [r9, #-3202] @ zero_extendqisi2 + mov r0, r7 str r2, [sp, #4] mov fp, r5, asl #1 str r3, [sp] @@ -6510,7 +6878,7 @@ ftl_get_blk_list_in_sblk: mov r1, r4 bl __aeabi_idiv smulbb r4, r10, r4 - ldrb r1, [r9, #676] @ zero_extendqisi2 + ldrb r1, [r8, #1189] @ zero_extendqisi2 rsb r1, r1, #24 ldr r2, [sp, #4] ldr r3, [sp] @@ -6518,34 +6886,36 @@ ftl_get_blk_list_in_sblk: rsb r1, ip, r1 add r0, r4, r0, asl r1 uxth r4, r0 - strh r4, [r7, fp] @ movhi - ldrb r1, [r9, #2930] @ zero_extendqisi2 + strh r4, [r6, fp] @ movhi + ldrb r1, [r9, #-3202] @ zero_extendqisi2 cmp r1, #1 subhi r1, r1, #1 - andhi r1, r1, r8 + andhi r1, r1, r7 addhi r4, r4, r1 - strhih r4, [r7, fp] @ movhi -.L1130: - add r8, r8, #1 - b .L1129 -.L1136: - add r7, r7, r5, asl #1 + strhih r4, [r6, fp] @ movhi +.L1185: + add r7, r7, #1 + b .L1184 +.L1191: + add r6, r6, r5, asl #1 mov r0, r5 mvn r2, #0 -.L1133: - ldrb r3, [r6, #2964] @ zero_extendqisi2 +.L1188: + ldrb r3, [r1, #-3195] @ zero_extendqisi2 cmp r5, r3 - strlth r2, [r7], #2 @ movhi + strlth r2, [r6], #2 @ movhi addlt r5, r5, #1 - blt .L1133 -.L1137: + blt .L1188 +.L1192: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1139: +.L1194: .align 2 -.L1138: +.L1193: .word .LANCHOR0 + .word .LANCHOR3 + .word .LANCHOR3-3204 .fnend .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .align 2 @@ -6557,44 +6927,44 @@ ftl_erase_phy_blk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r7, r1 - ldr r3, .L1146 - add r2, r3, #2928 - ldrb r5, [r3, #676] @ zero_extendqisi2 - mov r4, r3 - ldrh r2, [r2] - rsb r5, r5, #24 - rsb r5, r2, r5 + mov r6, r1 + ldr r3, .L1201 + ldrb r4, [r3, #1189] @ zero_extendqisi2 + ldr r3, .L1201+4 + rsb r4, r4, #24 + sub r2, r3, #3200 + sub r7, r3, #3136 + ldrh r2, [r2, #-4] + rsb r4, r2, r4 mvn r2, #0 - mov r6, r0, asr r5 - bic r5, r0, r2, asl r5 - ldrb r2, [r3, #2938] @ zero_extendqisi2 - uxtb r6, r6 - sxth r5, r5 + mov r5, r0, asr r4 + bic r4, r0, r2, asl r4 + ldrb r2, [r3, #-3194] @ zero_extendqisi2 + uxtb r5, r5 + sxth r4, r4 cmp r2, #0 - beq .L1141 - ldrb r3, [r3, #2939] @ zero_extendqisi2 + beq .L1196 + ldrb r3, [r3, #-3193] @ zero_extendqisi2 cmp r3, #0 - bne .L1141 - movw r3, #2994 + bne .L1196 + ldrh r2, [r7, #-6] clz r1, r1 - ldrh r2, [r4, r3] - mov r0, r6 + mov r0, r5 mov r1, r1, lsr #5 - mul r2, r2, r5 + mul r2, r2, r4 bl flash_erase_block_en -.L1141: - movw r3, #2994 - mov r0, r6 - ldrh r2, [r4, r3] - uxtb r1, r7 - mul r2, r2, r5 +.L1196: + ldrh r2, [r7, #-6] + mov r0, r5 + uxtb r1, r6 + mul r2, r2, r4 ldmfd sp!, {r3, r4, r5, r6, r7, lr} b flash_erase_block_en -.L1147: +.L1202: .align 2 -.L1146: +.L1201: .word .LANCHOR0 + .word .LANCHOR3 .fnend .size ftl_erase_phy_blk, .-ftl_erase_phy_blk .align 2 @@ -6606,63 +6976,63 @@ ftl_erase_sblk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r9, r0, asl #2 - ldr r6, .L1176 + mov r10, r0, asl #2 + ldr r4, .L1231 .pad #84 sub sp, sp, #84 + ldr r9, .L1231+4 mov r8, r0 mov r7, r1 + mov r6, #0 + ldr r3, [r4, #1080] + add r3, r3, r10 + ldrb r3, [r3, #3] @ zero_extendqisi2 + str r3, [sp, #12] +.L1204: + ldrb r3, [r9, #-3140] @ zero_extendqisi2 + cmp r6, r3 + bge .L1215 + ldrb r2, [r9, #-3202] @ zero_extendqisi2 mov r5, #0 - ldr r4, [r6, #568] - mov r10, r6 - add r4, r4, r9 - ldrb r3, [r4, #3] @ zero_extendqisi2 - str r3, [sp, #8] -.L1149: - ldrb r2, [r6, #2996] @ zero_extendqisi2 - ldr r3, .L1176 - cmp r5, r2 - bge .L1160 - ldrb r2, [r10, #2930] @ zero_extendqisi2 - mov r4, #0 - sub r3, r2, #1 + sub fp, r2, #1 + mul r3, r2, r8 + mul ip, r2, r6 str r3, [sp, #4] - ldr r3, .L1176+4 - mul lr, r2, r5 - mul ip, r2, r8 + ldr r3, .L1231+8 ldrh r3, [r3] - mov r0, r3 - mov r3, r4 -.L1161: + str r3, [sp, #8] + mov r3, r5 +.L1216: cmp r3, r2 - bge .L1175 - ldr fp, [sp, #8] - add r1, r3, lr - mov r1, fp, asr r1 + bge .L1230 + ldr lr, [sp, #12] + add r1, r3, ip + mov r1, lr, asr r1 tst r1, #1 - bne .L1150 + bne .L1205 add r1, sp, #80 - add fp, r1, r4, asl #2 - ldr r1, [sp, #4] - add r4, r4, #1 - and r1, r3, r1 - add r1, ip, r1 + ldr r0, [sp, #4] + add lr, r1, r5, asl #2 + and r1, r3, fp + add r1, r0, r1 + ldr r0, [sp, #8] + add r5, r5, #1 mul r1, r0, r1 - str r1, [fp, #-64] -.L1150: + str r1, [lr, #-64] +.L1205: add r3, r3, #1 - b .L1161 -.L1175: + b .L1216 +.L1230: cmp r2, #4 - bne .L1173 - uxtb r3, r5 + bne .L1228 + uxtb r3, r6 uxtb ip, r7 mov fp, #0 -.L1152: - cmp fp, r4 - beq .L1155 +.L1207: + cmp fp, r5 + beq .L1210 mov r0, r3 - str r3, [sp, #12] + str r3, [sp, #8] add r3, sp, #16 mov r1, ip str ip, [sp, #4] @@ -6670,101 +7040,104 @@ ftl_erase_sblk: add fp, fp, #1 bl flash_erase_block_en ldr ip, [sp, #4] - ldr r3, [sp, #12] - b .L1152 -.L1173: - cmp r4, #2 - bne .L1156 - ldrb r3, [r6, #2938] @ zero_extendqisi2 - uxtb r4, r5 + ldr r3, [sp, #8] + b .L1207 +.L1228: + cmp r5, #2 + bne .L1211 + ldr r3, .L1231+4 + uxtb r5, r6 + ldrb r3, [r3, #-3194] @ zero_extendqisi2 cmp r3, #0 - beq .L1157 - ldrb r3, [r10, #2939] @ zero_extendqisi2 + beq .L1212 + ldrb r3, [r9, #-3193] @ zero_extendqisi2 cmp r3, #0 - bne .L1157 + bne .L1212 clz r1, r7 - mov r0, r4 + mov r0, r5 ldr r2, [sp, #16] mov r1, r1, lsr #5 ldr r3, [sp, #20] bl flash_erase_duplane_block -.L1157: - mov r0, r4 +.L1212: + mov r0, r5 uxtb r1, r7 ldr r2, [sp, #16] ldr r3, [sp, #20] bl flash_erase_duplane_block - b .L1155 -.L1156: - cmp r4, #1 - bne .L1155 - ldrb r3, [r6, #2938] @ zero_extendqisi2 - uxtb r4, r5 + b .L1210 +.L1211: + cmp r5, #1 + bne .L1210 + ldr r3, .L1231+4 + uxtb r5, r6 + ldrb r3, [r3, #-3194] @ zero_extendqisi2 cmp r3, #0 - beq .L1159 - ldrb r3, [r10, #2939] @ zero_extendqisi2 + beq .L1214 + ldrb r3, [r9, #-3193] @ zero_extendqisi2 cmp r3, #0 - bne .L1159 + bne .L1214 clz r1, r7 - mov r0, r4 + mov r0, r5 ldr r2, [sp, #16] mov r1, r1, lsr #5 bl flash_erase_block_en -.L1159: - mov r0, r4 +.L1214: + mov r0, r5 uxtb r1, r7 ldr r2, [sp, #16] bl flash_erase_block_en -.L1155: - add r5, r5, #1 - b .L1149 -.L1160: +.L1210: + add r6, r6, #1 + b .L1204 +.L1215: cmp r7, #0 - ldr r0, [r3, #568] - bne .L1162 - ldrh r2, [r0, r9] - ubfx r1, r2, #0, #11 - add r1, r1, #1 - bfi r2, r1, #0, #11 - strh r2, [r0, r9] @ movhi - ldr r2, [r3, #2288] - ldr r3, [r3, #568] - ldr r1, [r2, #84] - ldrh r0, [r2, #96] - add r1, r1, #1 - str r1, [r2, #84] - ldrh r3, [r3, r9] - ubfx r3, r3, #0, #11 - uxth r1, r3 + ldr r1, [r4, #1080] + bne .L1217 + ldrh r3, [r1, r10] + ubfx r2, r3, #0, #11 + add r2, r2, #1 + bfi r3, r2, #0, #11 + strh r3, [r1, r10] @ movhi + ldr r3, [r4, #2804] + ldr r2, [r3, #84] + ldrh r0, [r3, #96] + add r2, r2, #1 + str r2, [r3, #84] + ldr r2, [r4, #1080] + ldrh r2, [r2, r10] + ubfx r2, r2, #0, #11 + uxth r1, r2 cmp r0, r1 - strlth r3, [r2, #96] @ movhi - b .L1164 -.L1162: - ldr r2, [r0, r8, asl #2] - ubfx r1, r2, #11, #8 - add r1, r1, #1 - bfi r2, r1, #11, #8 - str r2, [r0, r8, asl #2] - ldr r2, [r3, #2288] - ldr r3, [r3, #568] - ldr r1, [r2, #80] - add r1, r1, #1 - str r1, [r2, #80] - ldr r3, [r3, r8, asl #2] - ldrh r1, [r2, #98] - ubfx r3, r3, #11, #8 - cmp r1, r3 - strcch r3, [r2, #98] @ movhi -.L1164: + strlth r2, [r3, #96] @ movhi + b .L1219 +.L1217: + ldr r3, [r1, r8, asl #2] + ubfx r2, r3, #11, #8 + add r2, r2, #1 + bfi r3, r2, #11, #8 + str r3, [r1, r8, asl #2] + ldr r3, [r4, #2804] + ldr r2, [r3, #80] + ldrh r1, [r3, #98] + add r2, r2, #1 + str r2, [r3, #80] + ldr r2, [r4, #1080] + ldr r2, [r2, r8, asl #2] + ubfx r2, r2, #11, #8 + cmp r1, r2 + strcch r2, [r3, #98] @ movhi +.L1219: mov r0, #0 add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1177: +.L1232: .align 2 -.L1176: +.L1231: .word .LANCHOR0 - .word .LANCHOR0+2994 + .word .LANCHOR3 + .word .LANCHOR3-3142 .fnend .size ftl_erase_sblk, .-ftl_erase_sblk .align 2 @@ -6774,10 +7147,10 @@ ftl_alloc_sys_blk: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1189 + ldr r3, .L1244 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r2, [r3, #2288] + ldr r2, [r3, #2804] mov r4, r3 ldrh r1, [r2, #136] cmp r1, #63 @@ -6785,32 +7158,32 @@ ftl_alloc_sys_blk: strhih r3, [r2, #136] @ movhi ldrh r3, [r2, #112] cmp r3, #0 - bne .L1180 - ldr r1, .L1189+4 - movw r2, #1150 - ldr r0, .L1189+8 + bne .L1235 + ldr r1, .L1244+4 + movw r2, #1283 + ldr r0, .L1244+8 bl printk bl dump_stack -.L1180: - ldr r3, [r4, #2288] +.L1235: + ldr r3, [r4, #2804] movw lr, #65535 mov ip, #0 -.L1184: +.L1239: ldrh r2, [r3, #136] add r1, r2, #79 add r1, r3, r1, asl #1 -.L1181: +.L1236: cmp r2, #63 - bgt .L1188 + bgt .L1243 ldrh r0, [r1, #2]! cmp r0, lr - bne .L1186 + bne .L1241 add r2, r2, #1 - b .L1181 -.L1188: + b .L1236 +.L1243: strh ip, [r3, #136] @ movhi - b .L1184 -.L1186: + b .L1239 +.L1241: add r1, r3, r2, asl #1 mvn ip, #0 strh ip, [r1, #160] @ movhi @@ -6819,11 +7192,11 @@ ftl_alloc_sys_blk: add r2, r2, ip strh r2, [r3, #112] @ movhi ldmfd sp!, {r4, pc} -.L1190: +.L1245: .align 2 -.L1189: +.L1244: .word .LANCHOR0 - .word .LANCHOR1+1232 + .word .LANCHOR1+1640 .word .LC0 .fnend .size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk @@ -6837,8 +7210,8 @@ ftl_free_sys_blk: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r3, .L1201 - ldr r2, [r3, #2288] + ldr r3, .L1256 + ldr r2, [r3, #2804] mov r4, r3 ldrh r1, [r2, #138] cmp r1, #63 @@ -6846,26 +7219,26 @@ ftl_free_sys_blk: strhih r3, [r2, #138] @ movhi ldrh r3, [r2, #112] cmp r3, #63 - bls .L1193 - ldr r1, .L1201+4 - movw r2, #1174 - ldr r0, .L1201+8 + bls .L1248 + ldr r1, .L1256+4 + movw r2, #1310 + ldr r0, .L1256+8 bl printk bl dump_stack -.L1193: - ldr r3, [r4, #2288] +.L1248: + ldr r3, [r4, #2804] movw ip, #65535 mov r0, #0 -.L1197: +.L1252: ldrh r2, [r3, #138] add r1, r2, #79 add r1, r3, r1, asl #1 -.L1194: +.L1249: cmp r2, #63 - bgt .L1200 + bgt .L1255 ldrh lr, [r1, #2]! cmp lr, ip - bne .L1195 + bne .L1250 add r1, r3, r2, asl #1 strh r5, [r1, #160] @ movhi strh r2, [r3, #138] @ movhi @@ -6873,17 +7246,17 @@ ftl_free_sys_blk: add r2, r2, #1 strh r2, [r3, #112] @ movhi ldmfd sp!, {r3, r4, r5, pc} -.L1195: +.L1250: add r2, r2, #1 - b .L1194 -.L1200: + b .L1249 +.L1255: strh r0, [r3, #138] @ movhi - b .L1197 -.L1202: + b .L1252 +.L1257: .align 2 -.L1201: +.L1256: .word .LANCHOR0 - .word .LANCHOR1+1252 + .word .LANCHOR1+1660 .word .LC0 .fnend .size ftl_free_sys_blk, .-ftl_free_sys_blk @@ -6900,9 +7273,9 @@ ftl_info_data_recovery: ldrh r6, [r0] cmp r6, r3 ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} - ldr r4, .L1213 + ldr r4, .L1268 mov r8, r6, asl #2 - ldr r5, [r4, #568] + ldr r5, [r4, #1080] add r7, r5, r8 ldrb r3, [r7, #2] @ zero_extendqisi2 tst r3, #224 @@ -6913,12 +7286,12 @@ ftl_info_data_recovery: strb r3, [r7, #2] bl zftl_remove_free_node ldrb r3, [r7, #2] @ zero_extendqisi2 - ldr r2, [r4, #2288] + ldr r2, [r4, #2804] tst r3, #8 ldrneh r3, [r2, #116] subne r3, r3, #1 strneh r3, [r2, #116] @ movhi - bne .L1208 + bne .L1263 tst r3, #24 ldreqh r3, [r2, #114] ldrneh r3, [r2, #118] @@ -6926,44 +7299,44 @@ ftl_info_data_recovery: subne r3, r3, #1 streqh r3, [r2, #114] @ movhi strneh r3, [r2, #118] @ movhi -.L1208: +.L1263: ldrb r3, [r7, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #160 - bne .L1210 + bne .L1265 ldr r3, [r5, r6, asl #2] ubfx r2, r3, #11, #8 add r2, r2, #1 bfi r3, r2, #11, #8 str r3, [r5, r6, asl #2] - ldr r2, [r4, #2288] + ldr r2, [r4, #2804] ldrh r3, [r2, #120] sub r3, r3, #1 strh r3, [r2, #120] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1210: +.L1265: ldrh r2, [r5, r8] cmp r3, #64 ubfx r1, r2, #0, #11 add r1, r1, #1 bfi r2, r1, #0, #11 strh r2, [r5, r8] @ movhi - bne .L1211 - ldr r2, [r4, #2288] + bne .L1266 + ldr r2, [r4, #2804] ldrh r3, [r2, #122] sub r3, r3, #1 strh r3, [r2, #122] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1211: +.L1266: cmp r3, #96 - ldreq r2, [r4, #2288] + ldreq r2, [r4, #2804] ldreqh r3, [r2, #124] subeq r3, r3, #1 streqh r3, [r2, #124] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1214: +.L1269: .align 2 -.L1213: +.L1268: .word .LANCHOR0 .fnend .size ftl_info_data_recovery, .-ftl_info_data_recovery @@ -6974,50 +7347,53 @@ ftl_get_ppa_from_index: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} mov r4, r0 - ldr r6, .L1220 - add r3, r6, #2960 - ldrb r2, [r6, #2964] @ zero_extendqisi2 - ldrh r3, [r3] - ldr r5, [r6, #580] + ldr r3, .L1275 + ldr r2, .L1275+4 + ldr r5, [r3, #1092] + sub r3, r2, #3168 + ldrb r2, [r2, #-3195] @ zero_extendqisi2 + ldrh r3, [r3, #-4] mul r1, r2, r3 cmp r0, r1 addlt r5, r5, #16 addge r5, r5, #48 smulbbge r3, r2, r3 - ldrb r7, [r5, #9] @ zero_extendqisi2 + ldrb r6, [r5, #9] @ zero_extendqisi2 rsbge r4, r3, r0 - mov r1, r7 + mov r1, r6 uxthge r4, r4 mov r0, r4 bl __aeabi_idiv movw r3, #65535 - smulbb r7, r0, r7 - mov r8, r0 - rsb r4, r7, r4 + smulbb r6, r0, r6 + mov r7, r0 + rsb r4, r6, r4 uxth r4, r4 add r5, r5, r4, asl #1 ldrh r4, [r5, #16] cmp r4, r3 - bne .L1218 - ldr r1, .L1220+4 - mov r2, #1696 - ldr r0, .L1220+8 + bne .L1273 + ldr r1, .L1275+8 + movw r2, #1937 + ldr r0, .L1275+12 bl printk bl dump_stack -.L1218: - movw r3, #2994 - ldrh r0, [r6, r3] - mla r0, r0, r4, r8 - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1221: +.L1273: + ldr r3, .L1275+16 + ldrh r0, [r3, #-6] + mla r0, r0, r4, r7 + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L1276: .align 2 -.L1220: +.L1275: .word .LANCHOR0 - .word .LANCHOR1+1272 + .word .LANCHOR3 + .word .LANCHOR1+1680 .word .LC0 + .word .LANCHOR3-3136 .fnend .size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index .align 2 @@ -7027,37 +7403,36 @@ lpa_hash_get_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r2, .L1283 uxtb r3, r0 - ldr r2, .L1228 - ldr r1, .L1228+4 - mov r3, r3, asl #1 str lr, [sp, #-4]! .save {lr} + sub r1, r2, #3136 + mov r3, r3, asl #1 + ldr ip, [r2, #-2620] ldrh r3, [r1, r3] - ldr ip, [r2, #3516] - ldr r1, [r2, #3512] + ldr r1, [r2, #-2624] movw r2, #65535 -.L1223: +.L1278: cmp r3, r2 - beq .L1227 + beq .L1282 ldr lr, [r1, r3, asl #2] cmp lr, r0 - bne .L1224 + bne .L1279 mov r0, r3 ldr lr, [sp], #4 b ftl_get_ppa_from_index -.L1224: +.L1279: mov r3, r3, asl #1 ldrh r3, [ip, r3] - b .L1223 -.L1227: + b .L1278 +.L1282: mvn r0, #0 ldr pc, [sp], #4 -.L1229: +.L1284: .align 2 -.L1228: - .word .LANCHOR0 - .word .LANCHOR0+3000 +.L1283: + .word .LANCHOR3 .fnend .size lpa_hash_get_ppa, .-lpa_hash_get_ppa .align 2 @@ -7073,44 +7448,44 @@ ftl_get_new_free_page: ldrh r2, [r0] mov r4, r0 cmp r2, r3 - bne .L1231 - ldr r1, .L1240 - movw r2, #1819 - ldr r0, .L1240+4 + bne .L1286 + ldr r1, .L1295 + mov r2, #2080 + ldr r0, .L1295+4 bl printk bl dump_stack -.L1231: - ldr r3, .L1240+8 +.L1286: + ldr r3, .L1295+8 ldrh r2, [r4, #2] - ldrh r3, [r3] + ldrh r3, [r3, #-4] cmp r2, r3 - bne .L1232 - ldr r1, .L1240 - movw r2, #1820 - ldr r0, .L1240+4 + bne .L1287 + ldr r1, .L1295 + movw r2, #2081 + ldr r0, .L1295+4 bl printk bl dump_stack -.L1232: +.L1287: ldrh r3, [r4, #6] cmp r3, #0 - bne .L1233 - ldr r1, .L1240 - movw r2, #1821 - ldr r0, .L1240+4 + bne .L1288 + ldr r1, .L1295 + movw r2, #2082 + ldr r0, .L1295+4 bl printk bl dump_stack -.L1233: +.L1288: ldrb r3, [r4, #5] @ zero_extendqisi2 movw r2, #65535 - ldr r1, .L1240+12 + ldr r1, .L1295+12 mov lr, #0 add r3, r4, r3, asl #1 - ldrb r0, [r1, #2964] @ zero_extendqisi2 + ldrb r0, [r1, #-3195] @ zero_extendqisi2 ldrh ip, [r3, #16] -.L1234: +.L1289: cmp ip, r2 ldrb r3, [r4, #5] @ zero_extendqisi2 - bne .L1239 + bne .L1294 add r3, r3, #1 uxtb r3, r3 strb r3, [r4, #5] @@ -7122,36 +7497,37 @@ ftl_get_new_free_page: ldrb r3, [r4, #5] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh ip, [r3, #16] - b .L1234 -.L1239: - movw r0, #2994 + b .L1289 +.L1294: + ldr r0, .L1295+16 add r3, r3, #1 - ldrh r0, [r1, r0] - ldrb r1, [r1, #2964] @ zero_extendqisi2 + ldrb r1, [r1, #-3195] @ zero_extendqisi2 uxtb r3, r3 ldrh r2, [r4, #2] - mul r0, r0, ip - ldrh ip, [r4, #6] + ldrh r0, [r0, #-6] cmp r1, r3 strb r3, [r4, #5] + moveq r3, #0 + streqb r3, [r4, #5] + mul r0, r0, ip + ldrh ip, [r4, #6] sub ip, ip, #1 strh ip, [r4, #6] @ movhi ldrh ip, [r4, #10] orr r0, r0, r2 - moveq r3, #0 addeq r2, r2, #1 + streqh r2, [r4, #2] @ movhi add ip, ip, #1 strh ip, [r4, #10] @ movhi - streqh r2, [r4, #2] @ movhi - streqb r3, [r4, #5] ldmfd sp!, {r4, pc} -.L1241: +.L1296: .align 2 -.L1240: - .word .LANCHOR1+1296 +.L1295: + .word .LANCHOR1+1704 .word .LC0 - .word .LANCHOR0+2960 - .word .LANCHOR0 + .word .LANCHOR3-3168 + .word .LANCHOR3 + .word .LANCHOR3-3136 .fnend .size ftl_get_new_free_page, .-ftl_get_new_free_page .align 2 @@ -7169,29 +7545,29 @@ ftl_ext_alloc_new_blk: mov r4, r0 uxth r3, r3 cmp r3, r2 - bls .L1243 - ldr r1, .L1245 - movw r2, #1852 - ldr r0, .L1245+4 + bls .L1298 + ldr r1, .L1300 + movw r2, #2117 + ldr r0, .L1300+4 bl printk bl dump_stack -.L1243: - ldr r5, .L1245+8 +.L1298: + ldr r5, .L1300+8 mov r1, #0 mov r0, r4 bl ftl_erase_phy_blk - ldr r3, [r5, #2288] + ldr r3, [r5, #2804] ldrh r0, [r3, #130] bl ftl_free_sys_blk - ldr r3, [r5, #2288] + ldr r3, [r5, #2804] mov r0, #0 strh r4, [r3, #130] @ movhi strh r0, [r3, #140] @ movhi ldmfd sp!, {r3, r4, r5, pc} -.L1246: +.L1301: .align 2 -.L1245: - .word .LANCHOR1+1320 +.L1300: + .word .LANCHOR1+1728 .word .LC0 .word .LANCHOR0 .fnend @@ -7203,43 +7579,43 @@ ftl_total_vpn_update: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1260 - add r1, r3, #3520 - ldrh r2, [r1] - cmp r2, #4 + ldr r2, .L1315 + ldrh r3, [r2, #-8] + cmp r3, #4 cmpls r0, #0 - addeq r2, r2, #1 - streqh r2, [r1] @ movhi + addeq r3, r3, #1 + streqh r3, [r2, #-8] @ movhi bxeq lr - add ip, r3, #564 - mov r0, #0 + ldr r3, .L1315+4 + movw ip, #1076 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} + mov r0, #0 + ldrh lr, [r3, ip] movw r6, #65535 - ldrh lr, [ip] + strh r0, [r2, #-8] @ movhi mov ip, r0 - strh r0, [r1] @ movhi - ldr r2, [r3, #568] - ldr r1, [r3, #576] - add lr, r2, lr, asl #2 + ldr r1, [r3, #1088] + ldr r2, [r3, #1080] sub r1, r1, #2 -.L1250: + add lr, r2, lr, asl #2 +.L1305: cmp r2, lr - beq .L1259 + beq .L1314 ldrh r4, [r1, #2]! cmp r4, r6 - beq .L1251 + beq .L1306 ldrb r5, [r2, #2] @ zero_extendqisi2 and r5, r5, #224 cmp r5, #160 addeq r0, r0, r4 addne ip, ip, r4 -.L1251: +.L1306: add r2, r2, #4 - b .L1250 -.L1259: - ldr r4, [r3, #580] - ldr r3, [r3, #2288] + b .L1305 +.L1314: + ldr r4, [r3, #1092] + ldr r3, [r3, #2804] str ip, [r4, #524] str r0, [r4, #528] ldrh r1, [r3, #120] @@ -7248,9 +7624,10 @@ ftl_total_vpn_update: bl __aeabi_uidiv str r0, [r4, #532] ldmfd sp!, {r4, r5, r6, pc} -.L1261: +.L1316: .align 2 -.L1260: +.L1315: + .word .LANCHOR3-2608 .word .LANCHOR0 .fnend .size ftl_total_vpn_update, .-ftl_total_vpn_update @@ -7261,9 +7638,39 @@ ftl_debug_info_fill: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. + ldr r3, .L1322 + ldrb r3, [r3, #2772] @ zero_extendqisi2 + cmp r3, #8 + bls .L1321 + stmfd sp!, {r4, lr} + .save {r4, lr} + sub r4, r0, #2 + clz r4, r4 + cmp r2, #0 + mov r4, r4, lsr #5 + moveq r4, #0 + cmp r4, #0 + streq r4, [r1] + streq r4, [r1, #4] + beq .L1318 + ldr r3, .L1322+4 + mov r4, r1 + mov r0, r2 + str r3, [r1] + mov r1, #1024 + bl js_hash + str r0, [r4, #4] +.L1318: + mov r0, #0 + ldmfd sp!, {r4, pc} +.L1321: mov r0, #0 bx lr +.L1323: + .align 2 +.L1322: + .word .LANCHOR0 + .word 1212240712 .fnend .size ftl_debug_info_fill, .-ftl_debug_info_fill .align 2 @@ -7277,18 +7684,18 @@ ftl_vpn_update: .save {r4, lr} mov r4, r0 bl zftl_list_update_data_list - ldr r3, .L1267 + ldr r3, .L1328 mov r4, r4, asl #1 - ldr r2, [r3, #576] + ldr r2, [r3, #1088] ldrh r2, [r2, r4] cmp r2, #0 moveq r0, #1 movne r0, #0 - streq r0, [r3, #2304] + streq r0, [r3, #2820] ldmfd sp!, {r4, pc} -.L1268: +.L1329: .align 2 -.L1267: +.L1328: .word .LANCHOR0 .fnend .size ftl_vpn_update, .-ftl_vpn_update @@ -7299,68 +7706,67 @@ ftl_vpn_decrement: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} movw r3, #65535 cmp r0, r3 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} mov r5, r0 - ldr r6, .L1279 - beq .L1270 - ldr r2, [r6, #576] + beq .L1331 + ldr r1, .L1340 mov r3, r0, asl #1 + ldr r2, [r1, #1088] ldrh r4, [r2, r3] cmp r4, #0 subne r4, r4, #1 strneh r4, [r2, r3] @ movhi - bne .L1270 - ldr r3, [r6, #568] - mov r1, r5 + bne .L1331 + ldr r3, [r1, #1080] mov r2, r4 + mov r1, r5 add r3, r3, r0, asl #2 - ldr r0, .L1279+4 + ldr r0, .L1340+4 ldrb r3, [r3, #2] @ zero_extendqisi2 mov r3, r3, lsr #5 bl printk mov r0, r4 - ldmfd sp!, {r4, r5, r6, pc} -.L1270: - movw r3, #2908 - ldr r4, .L1279 - ldrh r0, [r6, r3] + ldmfd sp!, {r3, r4, r5, pc} +.L1331: + ldr r3, .L1340+8 + ldrh r0, [r3, #-8] + mov r4, r3 cmp r0, r5 - beq .L1276 + beq .L1337 movw r2, #65535 cmp r0, r2 - streqh r5, [r4, r3] @ movhi - beq .L1276 + streqh r5, [r3, #-8] @ movhi + beq .L1337 bl ftl_vpn_update - movw r2, #3522 - ldrh r3, [r4, r2] - ldr r1, .L1279+8 - add r3, r3, #1 - uxth r3, r3 + add r3, r4, #608 + ldrh r1, [r4, #-8] + ldrh r2, [r3, #-6] + strh r5, [r4, #-8] @ movhi + add r2, r2, #1 + uxth r2, r2 adds r0, r0, #0 movne r0, #1 - cmp r3, #7 - movhi r3, #0 - strh r3, [r4, r2] @ movhi - movw r3, #3522 - movw r2, #2908 - ldrh r3, [r6, r3] - ldrh ip, [r6, r2] - strh r5, [r6, r2] @ movhi + cmp r2, #7 + movhi r2, #0 + strh r2, [r3, #-6] @ movhi + ldrh r3, [r3, #-6] + ldr r2, .L1340+12 mov r3, r3, asl #1 - strh ip, [r1, r3] @ movhi - ldmfd sp!, {r4, r5, r6, pc} -.L1276: + strh r1, [r2, r3] @ movhi + ldmfd sp!, {r3, r4, r5, pc} +.L1337: mov r0, #0 - ldmfd sp!, {r4, r5, r6, pc} -.L1280: + ldmfd sp!, {r3, r4, r5, pc} +.L1341: .align 2 -.L1279: +.L1340: .word .LANCHOR0 - .word .LC104 - .word .LANCHOR0+2912 + .word .LC109 + .word .LANCHOR3-3216 + .word .LANCHOR3-3220 .fnend .size ftl_vpn_decrement, .-ftl_vpn_decrement .align 2 @@ -7373,71 +7779,72 @@ lpa_hash_update_ppa: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} uxtb r6, r0 - ldr r3, .L1293 + ldr r3, .L1354 movw r4, #65535 - ldr ip, .L1293+4 mov r6, r6, asl #1 mov r8, r4 - ldr r7, [r3, #3512] + sub ip, r3, #3136 + ldr r7, [r3, #-2624] ldrh lr, [ip, r6] - ldr r9, [r3, #3516] -.L1282: + ldr r9, [r3, #-2620] +.L1343: cmp lr, r8 - beq .L1286 + beq .L1347 ldr r5, [r7, lr, asl #2] add r10, r7, lr, asl #2 cmp r5, r0 mov r5, lr, asl #1 - bne .L1283 + bne .L1344 mvn lr, #0 str lr, [r10] movw lr, #65535 cmp r4, lr - ldr lr, [r3, #3516] + ldr lr, [r3, #-2620] movne r4, r4, asl #1 ldreqh lr, [lr, r5] ldrneh r7, [lr, r5] streqh lr, [ip, r6] @ movhi strneh r7, [lr, r4] @ movhi mvn r4, #0 - ldr lr, [r3, #3516] + ldr lr, [r3, #-2620] strh r4, [lr, r5] @ movhi - b .L1286 -.L1283: + b .L1347 +.L1344: mov r4, lr ldrh lr, [r9, r5] - b .L1282 -.L1286: - ldr r4, [r3, #3512] + b .L1343 +.L1347: + ldr r4, [r3, #-2624] cmn r1, #1 - ldr lr, .L1293 + ldr lr, .L1354 str r0, [r4, r2, asl #2] ldrh r0, [ip, r6] - ldr r3, [r3, #3516] + ldr r3, [r3, #-2620] strh r2, [ip, r6] @ movhi mov r2, r2, asl #1 strh r0, [r3, r2] @ movhi - beq .L1288 - add r3, lr, #2928 - ldrh r0, [r3] - ldrb r3, [lr, #676] @ zero_extendqisi2 + beq .L1349 + sub r3, lr, #3200 + ldrh r0, [r3, #-4] + ldr r3, .L1354+4 mov r1, r1, lsr r0 + ldrb r3, [r3, #1189] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r0, r3 mvn r0, #0 bic r0, r1, r0, asl r3 - ldrb r1, [lr, #2930] @ zero_extendqisi2 + ldrb r1, [lr, #-3202] @ zero_extendqisi2 bl __aeabi_uidiv uxth r0, r0 bl ftl_vpn_decrement -.L1288: +.L1349: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1294: +.L1355: .align 2 -.L1293: +.L1354: + .word .LANCHOR3 .word .LANCHOR0 - .word .LANCHOR0+3000 .fnend .size lpa_hash_update_ppa, .-lpa_hash_update_ppa .align 2 @@ -7447,65 +7854,69 @@ ftl_mask_bad_block: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1303 + stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} + .pad #12 mov r3, #1 - stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - .pad #8 - add r2, r2, #2928 - ldrb r5, [r2, #2] @ zero_extendqisi2 - ldrb r4, [r2, #-2252] @ zero_extendqisi2 - ldrh r2, [r2] - rsb r1, r4, #24 + ldr r1, .L1364 + ldr r7, .L1364+4 + sub r1, r1, #3200 + ldrb r5, [r1, #-2] @ zero_extendqisi2 + ldrb r4, [r7, #1189] @ zero_extendqisi2 + ldrh r1, [r1, #-4] + rsb r2, r4, #24 mov r4, r3, asl r4 sub r4, r4, #1 - and r4, r4, r0, lsr r1 - rsb r1, r2, r1 - mov r3, r3, asl r1 - mov r1, r5 + and r4, r4, r0, lsr r2 + rsb r2, r1, r2 + mov r3, r3, asl r2 sub r3, r3, #1 uxtb r4, r4 - and r0, r3, r0, lsr r2 + and r0, r3, r0, lsr r1 + mov r1, r5 smulbb r6, r4, r5 - uxth r8, r0 + uxth r9, r0 bl __aeabi_uidiv cmp r5, #1 subhi r3, r5, #1 uxtb r6, r6 - andhi r3, r3, r8 - uxth r7, r0 + andhi r3, r3, r9 + uxth r8, r0 addhi r3, r6, r3 uxtbhi r6, r3 - ldr r3, .L1303+4 + ldr r3, .L1364+8 ldr r3, [r3] tst r3, #16384 - beq .L1297 - str r8, [sp] + beq .L1358 + str r9, [sp] mov r1, r4 - ldr r0, .L1303+8 + ldr r0, .L1364+12 mov r2, r6 - mov r3, r7 + mov r3, r8 bl printk -.L1297: - ldr r3, .L1303 - add r2, r3, #564 - ldrh r2, [r2] - cmp r2, r7 - ldrhi r4, [r3, #568] - movhi r2, #1 - addhi r4, r4, r7, asl #2 - ldrhib r3, [r4, #3] @ zero_extendqisi2 - orrhi r6, r3, r2, asl r6 - strhib r6, [r4, #3] - add sp, sp, #8 +.L1358: + movw r3, #1076 + ldrh r3, [r7, r3] + cmp r3, r8 + bls .L1356 + ldr r3, .L1364+4 + mov r2, #1 + ldr r4, [r3, #1080] + add r4, r4, r8, asl #2 + ldrb r3, [r4, #3] @ zero_extendqisi2 + orr r6, r3, r2, asl r6 + strb r6, [r4, #3] +.L1356: + add sp, sp, #12 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1304: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L1365: .align 2 -.L1303: +.L1364: + .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2 - .word .LC105 + .word .LC110 .fnend .size ftl_mask_bad_block, .-ftl_mask_bad_block .align 2 @@ -7518,94 +7929,116 @@ gc_free_bad_sblk: stmfd sp!, {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 r10, .L1320 - ldr r3, [r10, #2892] + ldr r4, .L1387 + str r0, [sp] + ldr r3, [r4, #848] cmp r3, #0 - beq .L1316 - ldr r7, .L1320+4 - mov r9, r0 - mov fp, #0 - mov r8, r7 -.L1306: - ldrb r3, [r10, #2964] @ zero_extendqisi2 - uxth r0, fp - ldr r6, .L1320 + movne r5, #0 + ldrne r7, .L1387+4 + beq .L1383 +.L1367: + ldrb r3, [r7, #-3195] @ zero_extendqisi2 + uxth r0, r5 cmp r3, r0 - bls .L1316 - ldrb r2, [r6, #2930] @ zero_extendqisi2 - add r6, r6, #2928 - mov r1, r2 - uxth r4, r2 - str r2, [sp] + bls .L1383 + ldrb r9, [r7, #-3202] @ zero_extendqisi2 + mov fp, #0 + ldr r6, .L1387+8 + mov r1, r9 + uxth r8, r9 bl __aeabi_idiv - ldrb r3, [r6, #-2252] @ zero_extendqisi2 - smulbb r5, r9, r4 - ldrh r1, [r6] + ldr r2, .L1387+12 + ldrb r3, [r6, #1189] @ zero_extendqisi2 + cmp r9, #1 + subhi r1, r8, #1 + ldrh r2, [r2] rsb r3, r3, #24 - ldr ip, .L1320 - rsb r3, r1, r3 - ldr r2, [sp] - add r0, r5, r0, asl r3 - cmp r2, #1 - uxth r5, r0 - subhi r4, r4, #1 - mov r2, #0 - andhi r4, r4, fp - addhi r5, r5, r4 - uxthhi r5, r5 -.L1308: - ldr r3, [r10, #2892] - uxth r4, r2 - cmp r4, r3 - bcs .L1318 - add r3, r4, #292 - mov r3, r3, asl #1 - ldrh r3, [r7, r3] - cmp r3, r5 - bne .L1309 - mov r1, r5 - ldr r0, .L1320+8 - stmia sp, {r2, ip} + rsb r3, r2, r3 + ldrh r2, [sp] + andhi r1, r1, r5 + smulbb r2, r2, r8 + ldr r8, .L1387+16 + add r0, r2, r0, asl r3 + mov r9, r8 + uxth r2, r0 + addhi r2, r2, r1 + uxthhi r2, r2 +.L1369: + ldr r1, [r4, #848] + uxth r10, fp + cmp r10, r1 + bcs .L1385 + add r1, r10, #1056 + add r1, r1, #4 + mov r1, r1, asl #1 + ldrh r1, [r8, r1] + cmp r1, r2 + bne .L1370 + mov r1, r2 + ldr r0, .L1387+20 + str r2, [sp, #4] bl printk - ldrh r0, [r6] - mov r0, r5, asl r0 + ldr r3, .L1387+4 + ldrb r1, [r3, #-2612] @ zero_extendqisi2 + cmp r1, #0 + ldr r2, [sp, #4] + bne .L1371 + ldrb r1, [r7, #-3194] @ zero_extendqisi2 + cmp r1, #0 + beq .L1372 +.L1371: + ldr r1, [r6, #2804] + ldr r3, .L1387+24 + ldr r1, [r1, #156] + cmp r1, r3 + beq .L1373 +.L1372: + ldr r1, .L1387+12 + str r2, [sp, #4] + ldrh r0, [r1] + mov r0, r2, asl r0 bl ftl_mask_bad_block - ldr ip, [sp, #4] - ldr r2, [sp] - ldr r1, [ip, #2892] -.L1310: - cmp r4, r1 - bcs .L1319 - add r3, r4, #292 - add r3, r3, #1 - mov r3, r3, asl #1 - ldrh r0, [r8, r3] - add r3, r4, #292 - add r4, r4, #1 - mov r3, r3, asl #1 - uxth r4, r4 - strh r0, [r8, r3] @ movhi - b .L1310 -.L1319: - sub r1, r1, #1 - str r1, [r10, #2892] -.L1309: - add r2, r2, #1 - b .L1308 -.L1318: + ldr r2, [sp, #4] +.L1373: + ldr r0, [r4, #848] +.L1374: + cmp r10, r0 + bcs .L1386 + add r1, r10, #1056 + add r3, r10, #1 + add r1, r1, #5 + mov r1, r1, asl #1 + ldrh lr, [r9, r1] + add r1, r10, #1056 + add r1, r1, #4 + uxth r10, r3 + mov r1, r1, asl #1 + strh lr, [r9, r1] @ movhi + b .L1374 +.L1386: + sub r0, r0, #1 + str r0, [r4, #848] +.L1370: add fp, fp, #1 - b .L1306 -.L1316: + b .L1369 +.L1385: + add r5, r5, #1 + b .L1367 +.L1383: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1321: +.L1388: .align 2 -.L1320: +.L1387: + .word .LANCHOR0+4096 + .word .LANCHOR3 .word .LANCHOR0 - .word .LANCHOR0+2312 - .word .LC106 + .word .LANCHOR3-3204 + .word .LANCHOR0+2828 + .word .LC111 + .word 1145785929 .fnend .size gc_free_bad_sblk, .-gc_free_bad_sblk .align 2 @@ -7617,197 +8050,246 @@ ftl_free_sblk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r2, r0, asl #2 - ldr r5, .L1344 + mov r10, r0, asl #2 + ldr r5, .L1413 .pad #20 sub sp, sp, #20 - mov r6, r0 - ldr r7, [r5, #568] - add r9, r7, r2 - ldrb r4, [r9, #2] @ zero_extendqisi2 + mov r7, r0 + ldr r6, [r5, #1080] + add r8, r6, r10 + ldrb r4, [r8, #2] @ zero_extendqisi2 tst r4, #8 mov r3, r4, lsr #5 str r3, [sp] - beq .L1324 - ldr r8, [r5, #2288] - add r1, r5, #572 - ldrh fp, [r7, r2] - ldr r10, [r7, r0, asl #2] - ldrh ip, [r8, #74] - ubfx fp, fp, #0, #11 - ldrh r3, [r8, #72] - ubfx r10, r10, #11, #8 + beq .L1390 + ldr r9, [r5, #2804] + movw r1, #1084 + ldrh r2, [r6, r10] + ldr fp, [r6, r0, asl #2] + ldrh r3, [r9, #74] + ubfx r2, r2, #0, #11 + ldrh ip, [r9, #72] + ubfx fp, fp, #11, #8 + add r3, r2, r3 + ldrh r9, [r5, r1] add ip, fp, ip - ldrh r8, [r1] - add r3, r10, r3 str r2, [sp, #12] - uxth ip, ip - str ip, [sp, #4] - mov r1, r8 uxth r3, r3 - mov r0, ip - str r3, [sp, #8] + str r3, [sp, #4] + mov r1, r9 + uxth ip, ip + mov r0, r3 + str ip, [sp, #8] bl __aeabi_uidiv - movw r1, #3524 - ldrh r1, [r5, r1] - ldr r3, [sp, #8] - ldr ip, [sp, #4] - uxtah r0, r3, r0 + ldr r1, .L1413+4 + ldrh lr, [r1, #-2] + ldr ip, [sp, #8] + ldr r3, [sp, #4] + uxtah r0, ip, r0 ldr r2, [sp, #12] - cmp r0, r1 - ble .L1325 - movw r3, #2282 - movw r1, #2274 + cmp r0, lr + ble .L1391 + movw r3, #2798 + sub r1, r1, #544 + ldrh r0, [r5, r3] + movw r3, #2790 ldrh r3, [r5, r3] - ldrh r1, [r5, r1] - add r1, r3, r1 - add r3, r5, #2976 - ldrh r3, [r3] + add r0, r0, r3 + ldrh r3, [r1, #-8] add r3, r3, #8 - cmp r1, r3 - blt .L1331 - add r1, r5, #2272 - movw r3, #2278 - ldrh r3, [r5, r3] - ldrh r1, [r1] - add r3, r3, r1 - movw r1, #2280 - ldrh r1, [r5, r1] - add r3, r3, r1 - movw r1, #3526 - ldrh r1, [r5, r1] - add r1, r1, #8 - b .L1343 -.L1325: - mla r3, r8, r3, ip - movw r1, #3528 - ldrh r1, [r5, r1] - cmp r3, r1 - ble .L1327 - add r1, r5, #2272 - movw r3, #2278 - ldrh r3, [r5, r3] - ldrh r1, [r1] - add r3, r3, r1 - movw r1, #2280 - ldrh r1, [r5, r1] - add r3, r3, r1 - movw r1, #3526 - ldrh r1, [r5, r1] - add r0, r1, #8 - cmp r3, r0 - blt .L1341 - movw r0, #2282 - ldrh ip, [r5, r0] - movw r0, #2274 + cmp r0, r3 + blt .L1397 + movw r3, #2794 + movw r0, #2788 ldrh r0, [r5, r0] - add r5, r5, #2976 - add r0, ip, r0 - ldrh ip, [r5] - add ip, ip, #8 - cmp r0, ip - blt .L1331 + ldrh r3, [r5, r3] + add r3, r3, r0 + movw r0, #2796 + ldrh ip, [r5, r0] + add ip, r3, ip + ldrh r3, [r1, #-10] + add r3, r3, #8 + cmp ip, r3 + b .L1412 +.L1391: + mla r3, r9, ip, r3 + ldrh r0, [r1] + cmp r3, r0 + ble .L1393 + movw r3, #2794 + movw r0, #2788 + ldrh r0, [r5, r0] + ldrh r3, [r5, r3] + add r3, r3, r0 + movw r0, #2796 + ldrh ip, [r5, r0] + add ip, r3, ip + sub r3, r1, #544 + ldrh r1, [r3, #-10] + add r0, r1, #8 + cmp ip, r0 + blt .L1410 + movw r0, #2798 + movw lr, #2790 + ldrh r0, [r5, r0] + ldrh lr, [r5, lr] + ldrh r3, [r3, #-8] + add r0, r0, lr + add r3, r3, #8 + cmp r0, r3 + blt .L1397 add r1, r1, #24 -.L1343: - cmp r3, r1 - bge .L1331 -.L1341: + cmp ip, r1 +.L1412: + bge .L1397 +.L1410: bfc r4, #3, #2 - b .L1340 -.L1331: + b .L1408 +.L1397: mov r3, #2 bfi r4, r3, #3, #2 -.L1340: - strb r4, [r9, #2] -.L1327: - ldrb r3, [r9, #2] @ zero_extendqisi2 +.L1408: + strb r4, [r8, #2] +.L1393: + ldrb r3, [r8, #2] @ zero_extendqisi2 ands r3, r3, #24 - bne .L1332 - mul r8, r8, r10 - ldrh r3, [r7, r2] - mov r10, r10, lsr #3 - add r8, r8, r8, asl #1 - add fp, fp, r8, asr #2 - bfi r3, fp, #0, #11 - strh r3, [r7, r2] @ movhi - ldr r4, [r7, r6, asl #2] - bfi r4, r10, #11, #8 - str r4, [r7, r6, asl #2] - b .L1324 -.L1332: + bne .L1398 + mul r9, r9, fp + ldrh r3, [r6, r10] + mov fp, fp, lsr #3 + add r9, r9, r9, asl #1 + add r2, r2, r9, asr #2 + bfi r3, r2, #0, #11 + strh r3, [r6, r10] @ movhi + ldr r4, [r6, r7, asl #2] + bfi r4, fp, #11, #8 + str r4, [r6, r7, asl #2] + b .L1399 +.L1398: cmp r3, #16 - bne .L1324 - mov r0, fp - mov r1, r8 + bne .L1399 + mov r0, r2 + mov r1, r9 str r2, [sp, #4] bl __aeabi_idiv - ldr r3, [r7, r6, asl #2] - mov fp, fp, asr #5 + ldr r3, [r6, r7, asl #2] add r0, r0, r0, asl #1 - add r10, r10, r0, asr #2 - bfi r3, r10, #11, #8 - str r3, [r7, r6, asl #2] + add fp, fp, r0, asr #2 + bfi r3, fp, #11, #8 + str r3, [r6, r7, asl #2] ldr r2, [sp, #4] - ldrh r3, [r7, r2] - bfi r3, fp, #0, #11 - strh r3, [r7, r2] @ movhi -.L1324: - mov r0, r6 - str r2, [sp, #4] + ldrh r3, [r6, r10] + mov r2, r2, asr #5 + bfi r3, r2, #0, #11 + b .L1409 +.L1390: + tst r4, #24 + bne .L1399 + movw r3, #2792 + ldrh r3, [r5, r3] + cmp r3, #0 + bne .L1399 + movw r3, #2790 + ldrh r1, [r5, r3] + cmp r1, #15 + bhi .L1399 + movw r3, #2794 + movw r2, #2788 + ldrh r2, [r5, r2] + ldrh r3, [r5, r3] + ldr r0, .L1413+8 + add r3, r3, r2 + movw r2, #2796 + ldrh r2, [r5, r2] + add r3, r3, r2 + ldrh r2, [r0, #-10] + add r2, r2, #16 + cmp r3, r2 + ble .L1399 + movw r3, #2798 + ldrh r2, [r5, r3] + ldrh r3, [r0, #-8] + add r2, r2, r1 + add r3, r3, #8 + cmp r2, r3 + bge .L1399 + mov r3, #2 + bfi r4, r3, #3, #2 + strb r4, [r8, #2] + movw r3, #1084 + ldrh r4, [r6, r10] + ldrh r1, [r5, r3] + ubfx r4, r4, #0, #11 + mov r0, r4 + mov r4, r4, asr #5 + bl __aeabi_idiv + ldr r3, [r6, r7, asl #2] + ubfx r2, r3, #11, #8 + add r0, r0, r0, asl #1 + add r0, r2, r0, asr #2 + bfi r3, r0, #11, #8 + str r3, [r6, r7, asl #2] + ldrh r3, [r6, r10] + bfi r3, r4, #0, #11 +.L1409: + strh r3, [r6, r10] @ movhi +.L1399: + mov r0, r7 bl zftl_remove_data_node - ldr r3, .L1344 + ldr r3, .L1413 mov r0, #0 - ldr r1, [r3, #568] + ldr r2, [r3, #1080] mov r4, r3 - ldr r2, [sp, #4] - add r2, r1, r2 - ldrb r1, [r2, #2] @ zero_extendqisi2 - bfc r1, #5, #3 - strb r1, [r2, #2] - ldr r1, [r3, #576] - mov r2, r6, asl #1 + add r10, r2, r10 + ldrb r2, [r10, #2] @ zero_extendqisi2 + bfc r2, #5, #3 + strb r2, [r10, #2] + ldr r1, [r3, #1088] + mov r2, r7, asl #1 strh r0, [r1, r2] @ movhi ldr r2, [sp] - add r1, r2, #6 - and r1, r1, #7 - cmp r1, #4 - bhi .L1334 - mov r0, r6 + add r2, r2, #6 + and r2, r2, #7 + cmp r2, #4 + bhi .L1402 + mov r0, r7 bl gc_free_bad_sblk -.L1334: - ldrb r3, [r9, #2] @ zero_extendqisi2 +.L1402: + ldrb r3, [r8, #2] @ zero_extendqisi2 tst r3, #8 - beq .L1335 - ldr r3, [r4, #580] + beq .L1403 + ldr r3, [r4, #1092] movw r2, #586 ldrh r1, [r3, r2] - cmp r1, r6 - bne .L1335 + cmp r1, r7 + bne .L1403 mvn r1, #0 strh r1, [r3, r2] @ movhi movw r2, #590 movw r1, #65535 ldrh r0, [r3, r2] cmp r0, r1 - bne .L1335 - strh r6, [r3, r2] @ movhi - mov r1, r6 - ldr r0, .L1344+4 + bne .L1403 + strh r7, [r3, r2] @ movhi + mov r1, r7 + ldr r0, .L1413+12 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b printk -.L1335: - mov r0, r6 +.L1403: + mov r0, r7 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b zftl_insert_free_list -.L1345: +.L1414: .align 2 -.L1344: +.L1413: .word .LANCHOR0 - .word .LC107 + .word .LANCHOR3-2608 + .word .LANCHOR3-3152 + .word .LC112 .fnend .size ftl_free_sblk, .-ftl_free_sblk .align 2 @@ -7820,44 +8302,44 @@ gc_free_src_blk: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r6, .L1385 - ldr r8, .L1385+4 + ldr r6, .L1454 + ldr r8, .L1454+4 mov r7, r6 -.L1347: +.L1416: ldrh r2, [r8, #52] uxth r3, r5 cmp r2, r3 - bls .L1384 + bls .L1453 add r3, r8, r3, asl #1 ldrh r4, [r3, #54] - ldr r3, [r6, #576] + ldr r3, [r6, #1088] mov r9, r4, asl #1 ldrh r2, [r3, r9] cmp r2, #0 - beq .L1348 - ldr r0, .L1385+8 + beq .L1417 + ldr r0, .L1454+8 mov r1, r4 bl printk -.L1348: - ldr r3, [r7, #576] +.L1417: + ldr r3, [r7, #1088] mov r2, #0 strh r2, [r3, r9] @ movhi - ldr r3, [r7, #576] + ldr r3, [r7, #1088] ldrh r3, [r3, r9] cmp r3, r2 - bne .L1349 - ldr r3, .L1385+12 - ldr r9, [r6, #568] + bne .L1418 + ldr r3, .L1454+12 + ldr r9, [r6, #1080] ldr r3, [r3] add r9, r9, r4, asl #2 tst r3, #256 - beq .L1350 + beq .L1419 ldrb r2, [r9, #2] @ zero_extendqisi2 mov r1, r4 - ldr r0, .L1385+16 + ldr r0, .L1454+16 mov r2, r2, lsr #5 bl printk -.L1350: +.L1419: ldrb r3, [r9, #2] @ zero_extendqisi2 tst r3, #192 and r3, r3, #224 @@ -7867,101 +8349,101 @@ gc_free_src_blk: movne r3, r2 orreq r3, r2, #1 cmp r3, #0 - beq .L1351 - ldr r1, .L1385+20 - movw r2, #1115 - ldr r0, .L1385+24 + beq .L1420 + ldr r1, .L1454+20 + movw r2, #1362 + ldr r0, .L1454+24 bl printk bl dump_stack -.L1351: +.L1420: mov r0, r4 bl ftl_free_sblk - ldr r3, [r7, #580] + ldr r3, [r7, #1092] ldrh r1, [r3, #124] cmp r1, #0 - beq .L1352 + beq .L1421 add r0, r3, #388 mov r2, #0 add r0, r0, #2 -.L1354: +.L1423: ldrh ip, [r0, #2]! cmp ip, r4 - bne .L1353 + bne .L1422 add r2, r2, #196 mvn r0, #0 add r1, r1, r0 mov r2, r2, asl #1 strh r0, [r3, r2] @ movhi strh r1, [r3, #124] @ movhi - b .L1352 -.L1353: + b .L1421 +.L1422: add r2, r2, #1 cmp r2, #64 - bne .L1354 -.L1352: + bne .L1423 +.L1421: ldrh r1, [r3, #120] cmp r1, #0 - beq .L1355 + beq .L1424 add r0, r3, #134 mov r2, #0 -.L1357: +.L1426: ldrh ip, [r0, #2]! cmp ip, r4 - bne .L1356 + bne .L1425 add r2, r3, r2, asl #1 mvn r0, #0 add r1, r1, r0 strh r0, [r2, #136] @ movhi strh r1, [r3, #120] @ movhi - b .L1355 -.L1356: + b .L1424 +.L1425: add r2, r2, #1 cmp r2, #64 - bne .L1357 -.L1355: + bne .L1426 +.L1424: ldrh r0, [r3, #122] cmp r0, #0 - beq .L1358 + beq .L1427 add r1, r3, #260 mov r2, #0 add r1, r1, #2 -.L1360: +.L1429: ldrh ip, [r1, #2]! cmp ip, r4 - bne .L1359 + bne .L1428 add r2, r2, #132 mvn r1, #0 add r0, r0, r1 mov r2, r2, asl #1 strh r1, [r3, r2] @ movhi strh r0, [r3, #122] @ movhi - b .L1358 -.L1359: + b .L1427 +.L1428: add r2, r2, #1 cmp r2, #64 - bne .L1360 - b .L1358 -.L1349: + bne .L1429 + b .L1427 +.L1418: mov r0, r4 mov r1, #1 bl gc_add_sblk -.L1358: +.L1427: add r5, r5, #1 - b .L1347 -.L1384: - ldr r3, .L1385+4 + b .L1416 +.L1453: + ldr r3, .L1454+4 mov r2, #0 strh r2, [r3, #52] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1386: +.L1455: .align 2 -.L1385: +.L1454: .word .LANCHOR0 - .word .LANCHOR0+2312 - .word .LC108 + .word .LANCHOR0+2828 + .word .LC113 .word .LANCHOR2 - .word .LC109 - .word .LANCHOR1+1344 + .word .LC114 + .word .LANCHOR1+1752 .word .LC0 .fnend .size gc_free_src_blk, .-gc_free_src_blk @@ -7974,41 +8456,41 @@ print_ftl_debug_info: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - movw ip, #2274 - ldr r4, .L1389 + movw ip, #2790 + ldr r4, .L1458 .pad #32 sub sp, sp, #32 - ldr r3, [r4, #2288] + ldr r3, [r4, #2804] ldrh ip, [r4, ip] - ldr r0, [r4, #580] + ldr r0, [r4, #1092] ldrh r1, [r3, #148] ldrh r2, [r3, #146] - add r3, r4, #2272 - ldrh r3, [r3] + movw r3, #2788 str ip, [sp] - movw ip, #2276 + movw ip, #2792 ldrh ip, [r4, ip] + ldrh r3, [r4, r3] str ip, [sp, #4] - movw ip, #2278 + movw ip, #2794 ldrh ip, [r4, ip] str ip, [sp, #8] - movw ip, #2280 + movw ip, #2796 ldrh ip, [r4, ip] str ip, [sp, #12] - movw ip, #2282 + movw ip, #2798 ldrh ip, [r4, ip] str ip, [sp, #16] ldr ip, [r0, #524] str ip, [sp, #20] ldr r0, [r0, #528] str r0, [sp, #24] - ldr r0, [r4, #2268] + ldr r0, [r4, #2784] str r0, [sp, #28] - ldr r0, .L1389+4 + ldr r0, .L1458+4 bl printk - ldr r2, [r4, #2288] - ldrb r3, [r4, #2285] @ zero_extendqisi2 - ldr r0, .L1389+8 + ldr r2, [r4, #2804] + ldrb r3, [r4, #2801] @ zero_extendqisi2 + ldr r0, .L1458+8 ldr r1, [r2, #8] str r1, [sp] ldr r1, [r2, #64] @@ -8016,14 +8498,14 @@ print_ftl_debug_info: ldr r1, [r2, #20] ldr r2, [r2, #28] bl printk - ldr r2, [r4, #2288] - ldr r0, .L1389+12 + ldr r2, [r4, #2804] + ldr r0, .L1458+12 ldr r3, [r2, #16] ldr r1, [r2, #52] ldr r2, [r2, #60] mov r3, r3, lsr #11 bl printk - ldr r2, [r4, #2288] + ldr r2, [r4, #2804] ldrh r0, [r2, #92] ldrh r1, [r2, #74] ldrh r3, [r2, #88] @@ -8040,26 +8522,26 @@ print_ftl_debug_info: str r0, [sp, #20] ldrh r0, [r2, #98] str r0, [sp, #24] - ldr r0, .L1389+16 + ldr r0, .L1458+16 ldr r2, [r2, #84] bl printk - movw r0, #2300 - ldrh r0, [r4, r0] - movw r3, #2294 + add r0, r4, #2816 + movw r3, #2810 + ldrh r0, [r0] ldrh r1, [r4, r3] - movw r3, #2296 + movw r3, #2812 ldrh r2, [r4, r3] - movw r3, #2298 + movw r3, #2814 ldrh r3, [r4, r3] str r0, [sp] - movw r0, #2292 + movw r0, #2808 ldrh r0, [r4, r0] str r0, [sp, #4] - ldr r0, .L1389+20 + ldr r0, .L1458+20 bl printk - ldr r0, [r4, #580] + ldr r0, [r4, #1092] movw lr, #590 - ldr ip, [r4, #2288] + ldr ip, [r4, #2804] add r3, r0, #584 ldrh r1, [r3] movw r3, #586 @@ -8072,21 +8554,21 @@ print_ftl_debug_info: str r0, [sp, #4] ldrh r0, [ip, #150] str r0, [sp, #8] - ldr r0, .L1389+24 + ldr r0, .L1458+24 bl printk add sp, sp, #32 @ sp needed ldmfd sp!, {r4, pc} -.L1390: +.L1459: .align 2 -.L1389: +.L1458: .word .LANCHOR0 - .word .LC110 - .word .LC111 - .word .LC112 - .word .LC113 - .word .LC114 .word .LC115 + .word .LC116 + .word .LC117 + .word .LC118 + .word .LC119 + .word .LC120 .fnend .size print_ftl_debug_info, .-print_ftl_debug_info .align 2 @@ -8099,63 +8581,63 @@ ftl_write_buf: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} subs r4, r0, #0 - bne .L1392 - ldr r1, .L1403 - mov r2, #676 - ldr r0, .L1403+4 + bne .L1461 + ldr r1, .L1472 + movw r2, #803 + ldr r0, .L1472+4 bl printk bl dump_stack bl print_ftl_debug_info mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L1392: - ldr r5, .L1403+8 +.L1461: + ldr r5, .L1472+8 ldrb r2, [r4, #40] @ zero_extendqisi2 - ldrb r3, [r5, #2260] @ zero_extendqisi2 + ldrb r3, [r5, #2772] @ zero_extendqisi2 cmp r2, r3 - bls .L1397 - ldr r1, .L1403 - movw r2, #681 - ldr r0, .L1403+4 + bls .L1466 + ldr r1, .L1472 + movw r2, #810 + ldr r0, .L1472+4 bl printk bl dump_stack -.L1397: +.L1466: ldrb r3, [r4, #40] @ zero_extendqisi2 cmp r3, #0 - beq .L1394 - ldrb r2, [r5, #2260] @ zero_extendqisi2 - ldr r6, .L1403+8 + beq .L1463 + ldrb r2, [r5, #2772] @ zero_extendqisi2 + ldr r6, .L1472+8 cmp r2, r3 - bcs .L1395 -.L1394: + bcs .L1464 +.L1463: mov r0, r4 bl zbuf_free - ldrb r0, [r5, #2284] @ zero_extendqisi2 + ldrb r0, [r5, #2800] @ zero_extendqisi2 ldmfd sp!, {r4, r5, r6, pc} -.L1395: +.L1464: mov r1, r4 - ldr r0, .L1403+12 + ldr r0, .L1472+12 bl buf_add_tail - ldr r3, [r6, #2288] + ldr r3, [r6, #2804] ldrb r1, [r4, #40] @ zero_extendqisi2 - ldrb r0, [r6, #2284] @ zero_extendqisi2 + ldrb r0, [r6, #2800] @ zero_extendqisi2 ldr r2, [r3, #16] add r0, r0, #1 add r2, r2, r1 str r2, [r3, #16] ldr r2, [r3, #32] uxtb r0, r0 - strb r0, [r6, #2284] + strb r0, [r6, #2800] add r2, r2, #1 str r2, [r3, #32] ldmfd sp!, {r4, r5, r6, pc} -.L1404: +.L1473: .align 2 -.L1403: - .word .LANCHOR1+1360 +.L1472: + .word .LANCHOR1+1768 .word .LC0 .word .LANCHOR0 - .word .LANCHOR0+2308 + .word .LANCHOR0+2824 .fnend .size ftl_write_buf, .-ftl_write_buf .align 2 @@ -8168,102 +8650,121 @@ ftl_write_completed: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r5, #0 - ldr r6, .L1417 - add r9, r6, #724 - mov r8, r6 -.L1406: - ldrb r10, [r6, #3530] @ zero_extendqisi2 + ldr r8, .L1492 + ldr r9, .L1492+4 + mov r6, r8 +.L1475: + ldrb r10, [r8, #2778] @ zero_extendqisi2 cmp r10, #255 - beq .L1416 + beq .L1491 mov r4, #48 + ldr r7, .L1492+8 mul r4, r4, r10 - add r7, r9, r4 - add r4, r6, r4 - add r2, r4, #748 - ldrb r3, [r4, #724] @ zero_extendqisi2 - strb r3, [r6, #3530] - ldr r3, [r4, #760] + add r7, r7, r4 + add r4, r8, r4 + ldrb r3, [r4, #1236] @ zero_extendqisi2 + strb r3, [r8, #2778] + ldr r3, [r4, #1272] cmn r3, #1 - bne .L1407 - ldr r3, .L1417+4 - ldr r2, [r4, #748] - ldrb r1, [r6, #2930] @ zero_extendqisi2 + bne .L1476 + ldr r4, .L1492+12 + ldrb r3, [r4, #-2612] @ zero_extendqisi2 + cmp r3, #0 + bne .L1477 + ldrb r3, [r4, #-3194] @ zero_extendqisi2 + cmp r3, #0 + beq .L1478 +.L1477: + ldr r3, [r6, #2804] + ldr r3, [r3, #156] + cmp r3, r9 + beq .L1479 +.L1478: + mov r5, #48 + ldr r3, .L1492+16 + mla r5, r5, r10, r6 + ldrb r1, [r4, #-3202] @ zero_extendqisi2 ldrh r0, [r3] - ldrb r3, [r6, #676] @ zero_extendqisi2 - mov r2, r2, lsr r0 + ldrb r3, [r6, #1189] @ zero_extendqisi2 rsb r3, r3, #24 + ldr r2, [r5, #1260] rsb r3, r0, r3 + mov r2, r2, lsr r0 mvn r0, #0 bic r0, r2, r0, asl r3 bl __aeabi_uidiv - ldr r3, [r6, #580] + ldr r3, [r6, #1092] movw r2, #65535 ldr r1, [r3, #560] cmp r1, r2 - uxth r5, r0 - streq r5, [r3, #560] - ldreq r2, [r4, #748] - ldr r0, .L1417+8 - mov r1, r5 + uxth r4, r0 + streq r4, [r3, #560] + ldreq r2, [r5, #1260] + ldr r0, .L1492+20 + mov r1, r4 streq r2, [r3, #564] mov r3, #48 - mla r3, r3, r10, r8 - ldr r2, [r3, #744] - ldr r3, [r3, #748] + mla r10, r3, r10, r6 + ldr r2, [r10, #1256] + ldr r3, [r10, #1260] bl printk - ldr r3, [r8, #580] + ldr r3, [r6, #1092] ldr r2, [r3, #556] add r2, r2, #1 str r2, [r3, #556] ldrh r2, [r3, #16] - cmp r2, r5 + cmp r2, r4 moveq r2, #0 streqh r2, [r3, #22] @ movhi - beq .L1410 + beq .L1479 ldrh r2, [r3, #48] - cmp r2, r5 + cmp r2, r4 moveq r2, #0 streqh r2, [r3, #54] @ movhi -.L1410: +.L1479: mov r0, r7 mov r5, #1 bl ftl_write_buf - b .L1406 -.L1407: + b .L1475 +.L1476: cmp r5, #1 - add r3, r4, #740 - bne .L1412 - ldr r1, [r3, #4] - ldr r2, [r4, #748] - ldr r0, .L1417+12 + add r3, r4, #1248 + add r3, r3, #12 + bne .L1484 + ldr r1, [r4, #1256] + ldr r2, [r4, #1260] + ldr r0, .L1492+24 bl printk mov r0, r7 bl ftl_write_buf - b .L1406 -.L1412: - ldr r0, [r3, #4] - ldr r1, [r2, #4] + b .L1475 +.L1484: + ldr r1, [r3, #4] + ldr r0, [r4, #1256] ldrh r2, [r7, #32] bl lpa_hash_update_ppa - ldrb r3, [r4, #726] @ zero_extendqisi2 + ldrb r3, [r4, #1238] @ zero_extendqisi2 and r5, r3, #4 ands r5, r5, #255 bicne r3, r3, #2 - strneb r3, [r4, #726] + strneb r3, [r4, #1238] movne r5, #0 - bne .L1406 + bne .L1475 mov r0, r7 bl zbuf_free - b .L1406 -.L1416: + b .L1475 +.L1491: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1418: +.L1493: .align 2 -.L1417: +.L1492: .word .LANCHOR0 - .word .LANCHOR0+2928 - .word .LC116 - .word .LC117 + .word 1145785929 + .word .LANCHOR0+1236 + .word .LANCHOR3 + .word .LANCHOR3-3204 + .word .LC121 + .word .LC122 .fnend .size ftl_write_completed, .-ftl_write_completed .align 2 @@ -8275,41 +8776,43 @@ zftl_add_read_buf: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - subs r5, r0, #0 - bne .L1420 - ldr r1, .L1425 - mov r2, #972 - ldr r0, .L1425+4 + subs r4, r0, #0 + bne .L1495 + ldr r1, .L1500 + movw r2, #1143 + ldr r0, .L1500+4 bl printk bl dump_stack ldmfd sp!, {r3, r4, r5, lr} b print_ftl_debug_info -.L1420: - ldr r4, .L1425+8 - ldrb r2, [r5, #40] @ zero_extendqisi2 - ldrb r3, [r4, #2260] @ zero_extendqisi2 +.L1495: + ldr r3, .L1500+8 + ldrb r2, [r4, #40] @ zero_extendqisi2 + ldrb r3, [r3, #2772] @ zero_extendqisi2 cmp r2, r3 - bls .L1422 - ldr r1, .L1425 - movw r2, #977 - ldr r0, .L1425+4 + bls .L1497 + ldr r1, .L1500 + movw r2, #1150 + ldr r0, .L1500+4 bl printk bl dump_stack -.L1422: - ldr r0, .L1425+12 - mov r1, r5 +.L1497: + ldr r5, .L1500+12 + mov r1, r4 + ldr r0, .L1500+16 bl buf_add_tail - ldrb r3, [r4, #3532] @ zero_extendqisi2 + ldrb r3, [r5, #-2605] @ zero_extendqisi2 add r3, r3, #1 - strb r3, [r4, #3532] + strb r3, [r5, #-2605] ldmfd sp!, {r3, r4, r5, pc} -.L1426: +.L1501: .align 2 -.L1425: - .word .LANCHOR1+1376 +.L1500: + .word .LANCHOR1+1784 .word .LC0 .word .LANCHOR0 - .word .LANCHOR0+3531 + .word .LANCHOR3 + .word .LANCHOR3-2606 .fnend .size zftl_add_read_buf, .-zftl_add_read_buf .align 2 @@ -8321,10 +8824,10 @@ ftl_alloc_sblk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - uxth r6, r0 + uxth r5, r0 cmp r0, #5 - mov r5, r0 - mov r1, r6 + mov r6, r0 + mov r1, r5 mov r0, #0 movne r7, #0 moveq r7, #2 @@ -8332,57 +8835,64 @@ ftl_alloc_sblk: movw r3, #65535 cmp r0, r3 mov r4, r0 - beq .L1429 - ldr r3, .L1438 - ldr r6, [r3, #568] - add r6, r6, r0, asl #2 - ldrb r3, [r6, #2] @ zero_extendqisi2 + beq .L1504 + ldr r3, .L1513 + ldr r5, [r3, #1080] + add r5, r5, r0, asl #2 + ldrb r3, [r5, #2] @ zero_extendqisi2 tst r3, #224 - beq .L1430 - ldr r1, .L1438+4 - movw r2, #846 - ldr r0, .L1438+8 + beq .L1505 + ldr r1, .L1513+4 + movw r2, #939 + ldr r0, .L1513+8 bl printk bl dump_stack -.L1430: - ldrb r3, [r6, #2] @ zero_extendqisi2 - bfi r3, r5, #5, #3 +.L1505: + ldrb r3, [r5, #2] @ zero_extendqisi2 + bfi r3, r6, #5, #3 uxtb r3, r3 ubfx r2, r3, #3, #2 orr r2, r7, r2 bfi r3, r2, #3, #2 - strb r3, [r6, #2] - b .L1437 -.L1429: + strb r3, [r5, #2] + uxtb r3, r3 + and r2, r3, #24 + cmp r7, #0 + cmpeq r2, #24 + moveq r2, #1 + bfieq r3, r2, #3, #2 + streqb r3, [r5, #2] + b .L1508 +.L1504: bl print_ftl_debug_info mov r1, r4 - mov r2, r5 - ldr r0, .L1438+12 + mov r2, r6 + ldr r0, .L1513+12 bl printk - mov r1, r6 + mov r1, r5 mov r0, #0 bl zftl_get_free_sblk - mov r2, r5 + mov r2, r6 mov r4, r0 - ldr r0, .L1438+12 + ldr r0, .L1513+12 mov r1, r4 bl printk bl dump_all_list_info - ldr r1, .L1438+4 - mov r2, #856 - ldr r0, .L1438+8 + ldr r1, .L1513+4 + movw r2, #955 + ldr r0, .L1513+8 bl printk bl dump_stack -.L1437: +.L1508: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1439: +.L1514: .align 2 -.L1438: +.L1513: .word .LANCHOR0 - .word .LANCHOR1+1396 + .word .LANCHOR1+1804 .word .LC0 - .word .LC118 + .word .LC123 .fnend .size ftl_alloc_sblk, .-ftl_alloc_sblk .align 2 @@ -8393,17 +8903,17 @@ sblk_init: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1441 + ldr r3, .L1516 mvn r2, #0 mov r0, #0 - strb r2, [r3, #2263] - strb r2, [r3, #3530] - strb r2, [r3, #3533] - strb r2, [r3, #2936] + strb r2, [r3, #2775] + strb r2, [r3, #2778] + strb r2, [r3, #2776] + strb r2, [r3, #2777] bx lr -.L1442: +.L1517: .align 2 -.L1441: +.L1516: .word .LANCHOR0 .fnend .size sblk_init, .-sblk_init @@ -8416,34 +8926,36 @@ dump_sblk_queue: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r5, .L1453 - ldr r0, .L1453+4 - ldrb r1, [r5, #2263] @ zero_extendqisi2 + ldr r4, .L1528 + ldr r0, .L1528+4 + ldrb r1, [r4, #2775] @ zero_extendqisi2 bl printk - ldrb r4, [r5, #2263] @ zero_extendqisi2 + ldrb r4, [r4, #2775] @ zero_extendqisi2 cmp r4, #255 ldmeqfd sp!, {r4, r5, r6, pc} - add r5, r5, #724 - mov r3, #48 - mov r6, r3 - mla r4, r3, r4, r5 -.L1445: + ldr r3, .L1528+8 + mov r2, #48 + mov r6, r2 + mla r4, r2, r4, r3 + mov r5, r3 +.L1520: ldrb r1, [r4, #1] @ zero_extendqisi2 ldrb r2, [r4, #42] @ zero_extendqisi2 ldr r3, [r4, #24] - ldr r0, .L1453+8 + ldr r0, .L1528+12 bl printk ldrb r4, [r4] @ zero_extendqisi2 cmp r4, #255 ldmeqfd sp!, {r4, r5, r6, pc} mla r4, r6, r4, r5 - b .L1445 -.L1454: + b .L1520 +.L1529: .align 2 -.L1453: +.L1528: .word .LANCHOR0 - .word .LC119 - .word .LC120 + .word .LC124 + .word .LANCHOR0+1236 + .word .LC125 .fnend .size dump_sblk_queue, .-dump_sblk_queue .align 2 @@ -8453,78 +8965,80 @@ queue_lun_state: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L1471 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldrb lr, [ip, #2263] @ zero_extendqisi2 - cmp lr, #255 - beq .L1463 - add r4, ip, #2928 - ldrb r3, [ip, #676] @ zero_extendqisi2 + ldr lr, .L1546 + ldrb ip, [lr, #2775] @ zero_extendqisi2 + cmp ip, #255 + beq .L1538 + ldr r4, .L1546+4 mov r2, #1 + ldrb r3, [lr, #1189] @ zero_extendqisi2 mov r9, #48 - ldrh r8, [r4] + sub r5, r4, #3200 rsb r7, r3, #24 + ldrb r4, [r4, #-3202] @ zero_extendqisi2 + ldrh r8, [r5, #-4] mov r3, r2, asl r3 - rsb r4, r8, r7 + sub r4, r4, #1 sub r3, r3, #1 - mov r2, r2, asl r4 - ldrb r4, [ip, #2930] @ zero_extendqisi2 + rsb r5, r8, r7 + mov r2, r2, asl r5 + uxth r4, r4 sub r2, r2, #1 uxth r3, r3 - sub r4, r4, #1 + and r5, r4, r0, asr r8 and r10, r3, r0, asr r7 uxth r2, r2 - uxth r4, r4 - and r5, r4, r0, asr r8 and r5, r5, r2 -.L1462: - mla r0, r9, lr, ip - ldr r6, [r0, #748] +.L1537: + mla r0, r9, ip, lr + ldr r6, [r0, #1260] and fp, r3, r6, lsr r7 cmp fp, r10 - bne .L1457 + bne .L1532 and r6, r4, r6, lsr r8 - ldrb r0, [r0, #766] @ zero_extendqisi2 + ldrb r0, [r0, #1278] @ zero_extendqisi2 and r6, r6, r2 cmp r6, r5 - bne .L1458 + bne .L1533 cmp r1, #1 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} sub r6, r0, #7 tst r6, #253 - beq .L1457 + beq .L1532 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1458: +.L1533: cmp r1, #3 ldrls pc, [pc, r1, asl #2] - b .L1457 -.L1459: - .word .L1456 - .word .L1460 - .word .L1461 - .word .L1456 -.L1460: + b .L1532 +.L1534: + .word .L1531 + .word .L1535 + .word .L1536 + .word .L1531 +.L1535: sub r6, r0, #7 tst r6, #253 - beq .L1457 + beq .L1532 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1461: +.L1536: cmp r0, #11 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1457: - mla lr, r9, lr, ip - ldrb lr, [lr, #724] @ zero_extendqisi2 - cmp lr, #255 - bne .L1462 -.L1463: +.L1532: + mla ip, r9, ip, lr + ldrb ip, [ip, #1236] @ zero_extendqisi2 + cmp ip, #255 + bne .L1537 +.L1538: mov r0, #0 -.L1456: +.L1531: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1472: +.L1547: .align 2 -.L1471: +.L1546: .word .LANCHOR0 + .word .LANCHOR3 .fnend .size queue_lun_state, .-queue_lun_state .align 2 @@ -8534,100 +9048,101 @@ queue_remove_completed_req: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1500 + ldr r3, .L1575 mov ip, #0 stmfd sp!, {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 r0, #48 - ldrb r1, [r3, #2936] @ zero_extendqisi2 - add r10, r3, #724 - ldrb r2, [r3, #2263] @ zero_extendqisi2 + ldrb r1, [r3, #2777] @ zero_extendqisi2 mov r8, r3 - ldrb r6, [r3, #3533] @ zero_extendqisi2 + ldrb r2, [r3, #2775] @ zero_extendqisi2 mvn r9, #0 - ldrb r7, [r3, #3530] @ zero_extendqisi2 + ldrb r6, [r3, #2776] @ zero_extendqisi2 mov r4, r3 + ldrb r7, [r3, #2778] @ zero_extendqisi2 mov r5, r0 + ldr r10, .L1575+4 str r1, [sp, #4] -.L1474: +.L1549: cmp r2, #255 - beq .L1475 + beq .L1550 mla fp, r0, r2, r3 mov r1, r2 - ldrb lr, [fp, #766] @ zero_extendqisi2 + ldrb lr, [fp, #1278] @ zero_extendqisi2 sub lr, lr, #12 cmp lr, #1 - bls .L1476 + bls .L1551 cmp ip, #0 - ldrne r3, .L1500 - beq .L1473 - b .L1498 -.L1476: + ldrne r3, .L1575 + beq .L1548 + b .L1573 +.L1551: mul ip, r0, r1 - ldrb r2, [fp, #724] @ zero_extendqisi2 + ldrb r2, [fp, #1236] @ zero_extendqisi2 add lr, r8, ip - ldrb fp, [lr, #767] @ zero_extendqisi2 - strb r9, [lr, #724] + ldrb fp, [lr, #1279] @ zero_extendqisi2 + strb r9, [lr, #1236] cmp fp, #1 - bne .L1479 + bne .L1554 add ip, r10, ip ldrh ip, [ip, #34] cmp ip, #0 moveq ip, r7 - ldreq lr, .L1500+4 + ldreq lr, .L1575+8 ldrne ip, [sp, #4] - ldrne lr, .L1500+8 - b .L1480 -.L1479: + ldrne lr, .L1575+12 + b .L1555 +.L1554: cmp fp, #0 - beq .L1499 -.L1481: + beq .L1574 +.L1556: mov ip, #1 - b .L1474 -.L1499: - ldr ip, [lr, #744] + b .L1549 +.L1574: + ldr ip, [lr, #1256] cmn ip, #1 movne ip, r6 - ldrne lr, .L1500+12 - beq .L1481 -.L1480: + ldrne lr, .L1575+16 + beq .L1556 +.L1555: cmp ip, #255 - bne .L1485 - strb r2, [r3, #2263] + bne .L1560 + strb r2, [r3, #2775] mov r2, #48 mla r1, r2, r1, r3 - ldrb r3, [r1, #725] @ zero_extendqisi2 + ldrb r3, [r1, #1237] @ zero_extendqisi2 strb r3, [lr] - b .L1473 -.L1485: + b .L1548 +.L1560: mov lr, ip mla ip, r0, ip, r3 - ldrb ip, [ip, #724] @ zero_extendqisi2 + ldrb ip, [ip, #1236] @ zero_extendqisi2 cmp ip, #255 - bne .L1485 + bne .L1560 mla r1, r5, r1, r4 mla lr, r5, lr, r4 - ldrb r1, [r1, #725] @ zero_extendqisi2 - strb r1, [lr, #724] - b .L1481 -.L1475: + ldrb r1, [r1, #1237] @ zero_extendqisi2 + strb r1, [lr, #1236] + b .L1556 +.L1550: cmp ip, #0 - beq .L1473 + beq .L1548 mvn r2, #0 -.L1498: - strb r2, [r3, #2263] -.L1473: +.L1573: + strb r2, [r3, #2775] +.L1548: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1501: +.L1576: .align 2 -.L1500: +.L1575: .word .LANCHOR0 - .word .LANCHOR0+3530 - .word .LANCHOR0+2936 - .word .LANCHOR0+3533 + .word .LANCHOR0+1236 + .word .LANCHOR0+2778 + .word .LANCHOR0+2777 + .word .LANCHOR0+2776 .fnend .size queue_remove_completed_req, .-queue_remove_completed_req .align 2 @@ -8637,142 +9152,147 @@ pm_alloc_new_blk: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr} - .save {r4, r5, r6, r7, lr} - .pad #12 - movw r1, #690 - ldr r4, .L1519 - ldr r2, [r4, #2288] - ldrh r3, [r2, r1] + stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + .pad #8 + movw r2, #690 + ldr r5, .L1595 + ldr r7, .L1595+4 + ldr r4, [r5, #2804] + ldrh r3, [r4, r2] add r3, r3, #1 uxth r3, r3 - strh r3, [r2, r1] @ movhi - ldrb r1, [r4, #2964] @ zero_extendqisi2 - cmp r1, r3 - bls .L1503 + strh r3, [r4, r2] @ movhi + ldrb r2, [r7, #-3195] @ zero_extendqisi2 + cmp r2, r3 + bls .L1578 add r3, r3, #336 mov r3, r3, asl #1 - ldrh r2, [r2, r3] + ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - bne .L1504 -.L1503: - ldr r5, .L1519 -.L1516: + bne .L1579 +.L1578: + ldr r4, .L1595 + movw r8, #65535 +.L1580: mov r0, #1 - ldr r7, .L1519 bl ftl_alloc_sblk - mov r1, #0 + cmp r0, r8 mov r6, r0 + beq .L1580 + mov r1, #0 bl ftl_erase_sblk - ldr r1, [r4, #2288] + ldr r1, [r5, #2804] mov r0, r6 add r1, r1, #672 bl ftl_get_blk_list_in_sblk uxth r0, r0 cmp r0, #0 - bne .L1505 + bne .L1581 mov r1, r6 - ldr r0, .L1519+4 + ldr r0, .L1595+8 bl printk - ldr r3, [r5, #568] + ldr r3, [r4, #1080] add r6, r3, r6, asl #2 ldrb r3, [r6, #2] @ zero_extendqisi2 orr r3, r3, #224 strb r3, [r6, #2] - b .L1516 -.L1505: - ldr r3, [r7, #2288] + b .L1580 +.L1581: + ldr r3, .L1595 movw r2, #690 - mov r5, #0 + mov r4, #0 movw r1, #65535 - strh r5, [r3, r2] @ movhi + ldr r3, [r3, #2804] + strh r4, [r3, r2] @ movhi add r3, r3, #412 add r3, r3, #2 mov r2, #1 - str r2, [r7, #3536] -.L1507: + str r2, [r7, #-2604] +.L1583: ldrh r0, [r3, #2]! - uxth r2, r5 + uxth r2, r4 cmp r0, r1 - beq .L1506 - add r5, r5, #1 - cmp r5, #128 - bne .L1507 - mov r2, #227 - ldr r1, .L1519+8 - ldr r0, .L1519+12 + beq .L1582 + add r4, r4, #1 + cmp r4, #128 + bne .L1583 + mov r2, #264 + ldr r1, .L1595+12 + ldr r0, .L1595+16 bl printk bl dump_stack - mov r2, r5 -.L1506: + mov r2, r4 +.L1582: add r2, r2, #208 - ldr r3, [r4, #2288] + ldr r3, [r5, #2804] mov r2, r2, asl #1 strh r6, [r3, r2] @ movhi add r3, r3, #688 ldrh r2, [r3] add r2, r2, #1 strh r2, [r3] @ movhi -.L1504: - ldr r2, [r4, #2288] +.L1579: + ldr r2, [r5, #2804] movw r3, #690 ldrh r3, [r2, r3] add r3, r3, #336 mov r3, r3, asl #1 - ldrh r5, [r2, r3] + ldrh r4, [r2, r3] movw r2, #65533 - sub r3, r5, #1 + sub r3, r4, #1 uxth r3, r3 cmp r3, r2 - bls .L1509 - ldr r1, .L1519+8 - mov r2, #232 - ldr r0, .L1519+12 + bls .L1585 + ldr r1, .L1595+12 + movw r2, #270 + ldr r0, .L1595+16 bl printk bl dump_stack -.L1509: - ldr r1, [r4, #2288] +.L1585: + ldr r1, [r5, #2804] mov r2, #0 add r3, r1, #696 strh r2, [r3] @ movhi - ldr r2, .L1519+16 - ldrb r3, [r4, #676] @ zero_extendqisi2 - ldrh r4, [r2] + ldr r2, .L1595+20 + ldrb r3, [r5, #1189] @ zero_extendqisi2 + ldrh r5, [r2, #-4] rsb r3, r3, #24 movw r2, #694 - rsb r4, r4, r3 - mov r3, r5, asr r4 + rsb r5, r5, r3 + mov r3, r4, asr r5 strh r3, [r1, r2] @ movhi - ldr r2, .L1519+20 + ldr r2, .L1595+24 add r1, r1, #692 - strh r5, [r1] @ movhi + strh r4, [r1] @ movhi ldr r2, [r2] tst r2, #4096 - beq .L1513 + beq .L1589 mvn r2, #0 uxth r3, r3 - ldr r0, .L1519+24 - mov r1, r5 + ldr r0, .L1595+28 + mov r1, r4 str r3, [sp] - mvn r2, r2, asl r4 - mov r3, r5 + mvn r2, r2, asl r5 + mov r3, r4 bl printk -.L1513: +.L1589: mov r0, #0 - add sp, sp, #12 + add sp, sp, #8 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, pc} -.L1520: + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L1596: .align 2 -.L1519: +.L1595: .word .LANCHOR0 - .word .LC121 - .word .LANCHOR1+1412 + .word .LANCHOR3 + .word .LC126 + .word .LANCHOR1+1820 .word .LC0 - .word .LANCHOR0+2928 + .word .LANCHOR3-3200 .word .LANCHOR2 - .word .LC122 + .word .LC127 .fnend .size pm_alloc_new_blk, .-pm_alloc_new_blk .align 2 @@ -8782,76 +9302,76 @@ pm_select_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1536 + ldr r2, .L1612 mov r3, #0 movw ip, #65535 -.L1523: +.L1599: mov r1, r3, asl #3 uxth r0, r3 ldrh r1, [r1, r2] cmp r1, ip - ldr r1, .L1536 + ldr r1, .L1612 bxeq lr add r3, r3, #1 cmp r3, #32 - bne .L1523 + bne .L1599 mov r2, #0 mov r0, r3 mov ip, #32768 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} -.L1525: +.L1601: add r3, r1, r2, asl #3 uxth lr, r2 ldrh r3, [r3, #2] tst r3, #32768 - bne .L1524 + bne .L1600 cmp r3, ip movcc ip, r3 movcc r0, lr -.L1524: +.L1600: add r2, r2, #1 cmp r2, #32 - bne .L1525 + bne .L1601 cmp r0, #32 mov r4, r0 ldmnefd sp!, {r4, r5, r6, pc} - ldr r3, .L1536+4 + ldr r3, .L1612+4 mvn r2, #0 - ldr r5, .L1536 - ldrb lr, [r3, #3796] @ zero_extendqisi2 + ldr r5, .L1612 + ldrb lr, [r3, #-2344] @ zero_extendqisi2 mov r3, #0 -.L1527: +.L1603: mov ip, r3, asl #3 uxth r6, r3 add r0, r1, ip ldrh r0, [r0, #2] cmp r0, r2 - bcs .L1526 + bcs .L1602 ldrh ip, [ip, r5] cmp ip, lr movne r2, r0 movne r4, r6 -.L1526: +.L1602: add r3, r3, #1 cmp r3, #32 - bne .L1527 + bne .L1603 cmp r4, #32 - bne .L1528 - ldr r1, .L1536+8 - movw r2, #331 - ldr r0, .L1536+12 + bne .L1604 + ldr r1, .L1612+8 + movw r2, #377 + ldr r0, .L1612+12 bl printk bl dump_stack -.L1528: +.L1604: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1537: +.L1613: .align 2 -.L1536: - .word .LANCHOR0+3540 - .word .LANCHOR0 - .word .LANCHOR1+1432 +.L1612: + .word .LANCHOR3-2600 + .word .LANCHOR3 + .word .LANCHOR1+1840 .word .LC0 .fnend .size pm_select_ram_region, .-pm_select_ram_region @@ -8873,34 +9393,41 @@ flash_lsb_page_tbl_build: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - cmp r0, #0 - stmfd sp!, {r3, lr} - .save {r3, lr} - bne .L1540 - ldr r3, .L1574 -.L1541: - mov r2, r0, asl #1 - strh r0, [r2, r3] @ movhi - add r0, r0, #1 - cmp r0, #256 - bne .L1541 -.L1545: - ldr r0, .L1574+4 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r6, r0 + ldr r4, .L1659 + mov r0, #1024 + ldr r3, [r4, #1096] + ldrb r1, [r3, #12] @ zero_extendqisi2 + bl __aeabi_idiv + cmp r6, #0 + uxth r5, r0 + bne .L1616 + add r4, r4, #4 +.L1617: + mov r3, r6, asl #1 + strh r6, [r3, r4] @ movhi + add r6, r6, #1 + cmp r6, #512 + bne .L1617 +.L1621: mov r1, #255 - mov r2, #1024 + ldr r0, .L1659+4 + mov r2, #2048 bl ftl_memset mov r3, #0 - ldr ip, .L1574 - ldr r0, .L1574+4 - b .L1542 -.L1540: - cmp r0, #1 - bne .L1543 - ldr ip, .L1574 + ldr r1, .L1659+8 + ldr r0, .L1659+4 + b .L1618 +.L1616: + cmp r6, #1 + bne .L1619 + add r4, r4, #4 mov r3, #0 -.L1544: +.L1620: uxth r2, r3 - mov lr, r3, asl #1 + mov ip, r3, asl #1 cmp r2, #3 movls r0, #0 movhi r0, #1 @@ -8911,34 +9438,34 @@ flash_lsb_page_tbl_build: cmp r0, #0 rsb r1, r1, r2, asl #1 movne r2, r1 - cmp r3, #256 - strh r2, [lr, ip] @ movhi - bne .L1544 - b .L1545 -.L1543: - cmp r0, #2 - bne .L1546 - ldr r1, .L1574 + cmp r3, #512 + strh r2, [ip, r4] @ movhi + bne .L1620 + b .L1621 +.L1619: + cmp r6, #2 + bne .L1622 + add r4, r4, #4 mov r3, #0 -.L1547: +.L1623: uxth r2, r3 - mov r0, r3, asl #1 + mov r1, r3, asl #1 cmp r2, #1 add r3, r3, #1 - mov ip, r2, asl #1 - subhi r2, ip, #1 - cmp r3, #256 - strh r2, [r0, r1] @ movhi - bne .L1547 - b .L1545 -.L1546: - cmp r0, #3 - bne .L1548 - ldr ip, .L1574 + mov r0, r2, asl #1 + subhi r2, r0, #1 + cmp r3, #512 + strh r2, [r1, r4] @ movhi + bne .L1623 + b .L1621 +.L1622: + cmp r6, #3 + bne .L1624 + add r4, r4, #4 mov r3, #0 -.L1549: +.L1625: uxth r2, r3 - mov lr, r3, asl #1 + mov ip, r3, asl #1 cmp r2, #5 movls r0, #0 movhi r0, #1 @@ -8949,121 +9476,160 @@ flash_lsb_page_tbl_build: cmp r0, #0 rsb r1, r1, r2, asl #1 movne r2, r1 - cmp r3, #256 - strh r2, [lr, ip] @ movhi - bne .L1549 - b .L1545 -.L1548: - cmp r0, #4 + cmp r3, #512 + strh r2, [ip, r4] @ movhi + bne .L1625 + b .L1621 +.L1624: + cmp r6, #4 mov r3, #0 - bne .L1550 - ldr r2, .L1574+8 - strh r3, [r2, #4] @ movhi + bne .L1626 + strh r3, [r4, #4] @ movhi mov r3, #1 - strh r0, [r2, #12] @ movhi - strh r3, [r2, #6] @ movhi + strh r6, [r4, #12] @ movhi + strh r3, [r4, #6] @ movhi mov r3, #2 - strh r3, [r2, #8] @ movhi + strh r3, [r4, #8] @ movhi mov r3, #3 - strh r3, [r2, #10] @ movhi + strh r3, [r4, #10] @ movhi mov r3, #5 - strh r3, [r2, #14] @ movhi + strh r3, [r4, #14] @ movhi mov r3, #7 - strh r3, [r2, #16] @ movhi + strh r3, [r4, #16] @ movhi mov r3, #8 - strh r3, [r2, #18]! @ movhi -.L1551: + strh r3, [r4, #18]! @ movhi +.L1627: tst r3, #1 - movne r1, #7 - moveq r1, #6 - rsb r1, r1, r3, asl #1 + movne r2, #7 + moveq r2, #6 + rsb r2, r2, r3, asl #1 add r3, r3, #1 - strh r1, [r2, #2]! @ movhi + strh r2, [r4, #2]! @ movhi uxth r3, r3 - cmp r3, #256 - bne .L1551 - b .L1545 -.L1550: - cmp r0, #5 - bne .L1552 - ldr r2, .L1574 -.L1553: - mov r1, r3, asl #1 - strh r3, [r1, r2] @ movhi + cmp r3, #512 + bne .L1627 + b .L1621 +.L1626: + cmp r6, #5 + bne .L1628 + add r4, r4, #4 +.L1629: + mov r2, r3, asl #1 + strh r3, [r2, r4] @ movhi add r3, r3, #1 cmp r3, #16 - bne .L1553 - ldr r2, .L1574+12 -.L1554: + bne .L1629 + ldr r2, .L1659+12 +.L1630: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 - cmp r3, #496 - bne .L1554 - b .L1545 -.L1552: - cmp r0, #8 - bne .L1555 - ldr r2, .L1574 -.L1556: - strh r3, [r3, r2] @ movhi + cmp r3, #1008 + bne .L1630 + b .L1621 +.L1628: + cmp r6, #8 + bne .L1631 + add r4, r4, #4 +.L1632: + strh r3, [r3, r4] @ movhi add r3, r3, #2 - cmp r3, #512 - bne .L1556 - b .L1545 -.L1555: - cmp r0, #9 - bne .L1557 - ldr r2, .L1574+8 - movw r1, #509 - strh r3, [r2, #4] @ movhi + cmp r3, #1024 + bne .L1632 + b .L1621 +.L1631: + cmp r6, #9 + bne .L1633 + strh r3, [r4, #4] @ movhi + movw r2, #1021 mov r3, #1 - strh r3, [r2, #6] @ movhi + strh r3, [r4, #6] @ movhi mov r3, #2 - strh r3, [r2, #8]! @ movhi + strh r3, [r4, #8]! @ movhi mov r3, #3 -.L1558: +.L1634: + strh r3, [r4, #2]! @ movhi + add r3, r3, #2 + uxth r3, r3 + cmp r3, r2 + bne .L1634 + b .L1621 +.L1633: + cmp r6, #10 + bne .L1635 + add r4, r4, #4 +.L1636: + mov r2, r3, asl #1 + strh r3, [r2, r4] @ movhi + add r3, r3, #1 + cmp r3, #63 + bne .L1636 + ldr r2, .L1659+16 + movw r1, #961 +.L1637: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L1558 - b .L1545 -.L1557: - cmp r0, #10 - bne .L1545 - ldr r2, .L1574 -.L1559: + bne .L1637 + b .L1621 +.L1635: + cmp r6, #11 + bne .L1638 + ldr r2, .L1659+8 + mov r3, #0 +.L1639: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 - cmp r3, #63 - bne .L1559 - ldr r2, .L1574+16 - movw r1, #449 -.L1560: - strh r3, [r2, #2]! @ movhi - add r3, r3, #2 + cmp r3, #8 + bne .L1639 + ldr r1, .L1659+20 +.L1640: + tst r3, #1 + movne r2, #7 + moveq r2, #6 + rsb r2, r2, r3, asl #1 + add r3, r3, #1 + strh r2, [r1, #2]! @ movhi uxth r3, r3 - cmp r3, r1 - bne .L1560 - b .L1545 -.L1542: - ldrh r2, [r3, ip] - add r3, r3, #2 cmp r3, #512 - mov r1, r2, asl #1 - strh r2, [r0, r1] @ movhi - bne .L1542 - ldmfd sp!, {r3, pc} -.L1575: + bne .L1640 + b .L1621 +.L1638: + cmp r6, #13 + bne .L1621 + ldr r2, .L1659+24 + mov r3, #0 +.L1641: + strh r3, [r2, #2]! @ movhi + add r3, r3, #3 + uxth r3, r3 + cmp r3, #1536 + bne .L1641 + b .L1621 +.L1618: + uxth r2, r3 + cmp r2, r5 + bcs .L1658 + mov r2, r3, asl #1 + add r3, r3, #1 + ldrh r2, [r2, r1] + mov ip, r2, asl #1 + strh r2, [r0, ip] @ movhi + b .L1618 +.L1658: + ldmfd sp!, {r4, r5, r6, pc} +.L1660: .align 2 -.L1574: - .word .LANCHOR0+4 - .word .LANCHOR0+3800 +.L1659: .word .LANCHOR0 + .word .LANCHOR3-2340 + .word .LANCHOR0+4 .word .LANCHOR0+34 .word .LANCHOR0+128 + .word .LANCHOR0+18 + .word .LANCHOR0+2 .fnend .size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build .align 2 @@ -9076,91 +9642,91 @@ flash_die_info_init: stmfd sp!, {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, .L1607 + ldr r5, .L1692 ldr r3, [r5] tst r3, #4096 - beq .L1577 - ldr r0, .L1607+4 - ldr r1, .L1607+8 + beq .L1662 + ldr r0, .L1692+4 + ldr r1, .L1692+8 bl printk -.L1577: - ldr r4, .L1607+12 - mov r6, #0 +.L1662: ldrh r3, [r5, #30] + mov r6, #0 + ldr r4, .L1692+12 ldrb r1, [r5, #16] @ zero_extendqisi2 - add r9, r4, #688 ldrh r0, [r5, #14] + add r9, r4, #1200 strh r3, [r4, #2] @ movhi - strb r6, [r4, #589] + strb r6, [r4, #1101] bl __aeabi_idiv - ldr r7, .L1607+16 + ldr r7, .L1692+16 mov r1, r6 mov r2, #8 strh r0, [r7] @ movhi - add r0, r4, #668 + ldr r0, .L1692+20 bl ftl_memset add r0, r7, #4 mov r1, r6 mov r2, #32 bl ftl_memset - add r7, r4, #680 -.L1582: + ldr r7, .L1692+24 +.L1667: ldrb r2, [r5, #4] @ zero_extendqisi2 add r1, r9, r6, asl #3 - ldr r8, .L1607+20 + ldr r8, .L1692+28 mov r3, #2 - ldr r0, .L1607+24 + ldr r0, .L1692+32 strb r3, [r6, r7] mov r3, #0 -.L1578: +.L1663: cmp r3, r2 - bcs .L1605 + bcs .L1690 add ip, r0, r3 ldrb lr, [ip, #1] @ zero_extendqisi2 ldrb ip, [r1, r3] @ zero_extendqisi2 cmp lr, ip - bne .L1579 + bne .L1664 add r3, r3, #1 - b .L1578 -.L1605: - ldrb r3, [r4, #589] @ zero_extendqisi2 + b .L1663 +.L1690: + ldrb r3, [r4, #1101] @ zero_extendqisi2 mov r1, #0 - ldr r2, .L1607+28 + ldr r2, .L1692+36 uxtb r0, r6 add r2, r2, r3, asl #2 - str r1, [r2, #-3356] + str r1, [r2, #-288] add r2, r3, #1 add r3, r4, r3 - strb r2, [r4, #589] - strb r0, [r3, #668] + strb r2, [r4, #1101] + strb r0, [r3, #1180] bl zftl_flash_enter_slc_mode -.L1579: +.L1664: add r6, r6, #1 cmp r6, #4 - bne .L1582 + bne .L1667 ldrb r2, [r5, #12] @ zero_extendqisi2 - ldr r3, .L1607 + ldr r3, .L1692 cmp r2, #2 - beq .L1583 -.L1590: + beq .L1668 +.L1675: ldrb r3, [r5, #17] @ zero_extendqisi2 - ldrb r2, [r4, #589] @ zero_extendqisi2 + ldrb r2, [r4, #1101] @ zero_extendqisi2 smulbb r2, r2, r3 ldrh r3, [r5, #18] smulbb r3, r2, r3 - ldr r2, .L1607+32 - strh r3, [r2, #-12] @ movhi + ldr r2, .L1692+40 + strh r3, [r2] @ movhi add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1583: +.L1668: ldrh ip, [r3, #18] mov lr, #0 ldrh r2, [r4, #2] add r3, r3, #4 and ip, ip, #65280 - ldrb r1, [r4, #589] @ zero_extendqisi2 - ldr r6, .L1607+28 + ldrb r1, [r4, #1101] @ zero_extendqisi2 + ldr r6, .L1692+36 mul r2, r2, ip ldrb ip, [r3, #13] @ zero_extendqisi2 ldrb r7, [r3] @ zero_extendqisi2 @@ -9170,50 +9736,52 @@ flash_die_info_init: mov r2, ip, asl #1 str r2, [sp, #4] mov r2, lr -.L1588: +.L1673: add r9, r8, r2, asl #3 mov r0, #0 -.L1584: +.L1669: cmp r0, r7 - bcs .L1606 + bcs .L1691 add r10, r3, r0 ldrb fp, [r10, #1] @ zero_extendqisi2 ldrb r10, [r9, r0] @ zero_extendqisi2 cmp fp, r10 - bne .L1585 + bne .L1670 add r0, r0, #1 - b .L1584 -.L1606: + b .L1669 +.L1691: ldmia sp, {r9, lr} mov r0, r1 add r1, r6, r1, asl #2 cmp r9, #0 moveq lr, ip - str lr, [r1, #-3356] + str lr, [r1, #-288] add r1, r0, #1 add r0, r4, r0 mov lr, #1 uxtb r1, r1 - strb r2, [r0, #668] -.L1585: + strb r2, [r0, #1180] +.L1670: add r2, r2, #1 cmp r2, #4 - bne .L1588 + bne .L1673 cmp lr, #0 - strneb r1, [r4, #589] - b .L1590 -.L1608: + strneb r1, [r4, #1101] + b .L1675 +.L1693: .align 2 -.L1607: +.L1692: .word .LANCHOR2 .word .LC4 - .word .LANCHOR1+1456 + .word .LANCHOR1+1864 .word .LANCHOR0 - .word .LANCHOR3-3360 - .word .LANCHOR0+688 + .word .LANCHOR3-292 + .word .LANCHOR0+1180 + .word .LANCHOR0+1192 + .word .LANCHOR0+1200 .word .LANCHOR2+4 .word .LANCHOR3 - .word .LANCHOR3-3312 + .word .LANCHOR3-256 .fnend .size flash_die_info_init, .-flash_die_info_init .align 2 @@ -9226,24 +9794,23 @@ lpa_hash_init: stmfd sp!, {r4, lr} .save {r4, lr} mov r1, #255 - ldr r4, .L1611 + ldr r4, .L1696 mov r2, #512 - add r0, r4, #2992 - add r0, r0, #8 + sub r0, r4, #3136 bl ftl_memset - add r3, r4, #2960 - ldr r0, [r4, #3516] + sub r3, r4, #3168 + ldr r0, [r4, #-2620] mov r1, #255 - ldrh r2, [r3] - ldrb r3, [r4, #2964] @ zero_extendqisi2 + ldrh r2, [r3, #-4] + ldrb r3, [r4, #-3195] @ zero_extendqisi2 mul r2, r3, r2 mov r2, r2, asl #2 ldmfd sp!, {r4, lr} b ftl_memset -.L1612: +.L1697: .align 2 -.L1611: - .word .LANCHOR0 +.L1696: + .word .LANCHOR3 .fnend .size lpa_hash_init, .-lpa_hash_init .align 2 @@ -9255,63 +9822,63 @@ lpa_rebuild_hash: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L1626 + ldr r3, .L1711 ldr r3, [r3] tst r3, #4096 - beq .L1614 - ldr r0, .L1626+4 - mov r2, #225 - ldr r1, .L1626+8 + beq .L1699 + ldr r0, .L1711+4 + mov r2, #239 + ldr r1, .L1711+8 mov r3, #0 bl printk -.L1614: - ldr r4, .L1626+12 +.L1699: + ldr r4, .L1711+12 mov r1, #255 mov r2, #512 - ldr r0, .L1626+16 - add r5, r4, #2960 + sub r5, r4, #3168 + sub r0, r4, #3136 bl ftl_memset - ldrb r3, [r4, #2964] @ zero_extendqisi2 + ldrb r3, [r4, #-3195] @ zero_extendqisi2 + ldrh r2, [r5, #-4] mov r1, #255 - ldrh r2, [r5] - ldr r0, [r4, #3516] + ldr r0, [r4, #-2620] mul r2, r3, r2 mov r2, r2, asl #2 bl ftl_memset - add lr, r5, #40 + sub lr, r5, #4 + sub r5, r4, #3136 mov r0, #0 mov ip, r4 -.L1615: - ldrh r1, [r5] +.L1700: + ldrh r1, [lr] uxth r2, r0 - ldrb r3, [r4, #2964] @ zero_extendqisi2 + ldrb r3, [r4, #-3195] @ zero_extendqisi2 mul r3, r3, r1 cmp r2, r3, asl #1 - bge .L1625 - ldr r3, [ip, #3512] + bge .L1710 + ldr r3, [ip, #-2624] ldr r3, [r3, r2, asl #2] cmn r3, #1 - beq .L1616 + beq .L1701 uxtb r3, r3 mov r3, r3, asl #1 - ldrh r1, [lr, r3] - strh r2, [lr, r3] @ movhi + ldrh r1, [r5, r3] + strh r2, [r5, r3] @ movhi mov r2, r2, asl #1 - ldr r3, [ip, #3516] + ldr r3, [ip, #-2620] strh r1, [r3, r2] @ movhi -.L1616: +.L1701: add r0, r0, #1 - b .L1615 -.L1625: + b .L1700 +.L1710: ldmfd sp!, {r3, r4, r5, pc} -.L1627: +.L1712: .align 2 -.L1626: +.L1711: .word .LANCHOR2 - .word .LC123 - .word .LANCHOR1+1476 - .word .LANCHOR0 - .word .LANCHOR0+3000 + .word .LC128 + .word .LANCHOR1+1884 + .word .LANCHOR3 .fnend .size lpa_rebuild_hash, .-lpa_rebuild_hash .align 2 @@ -9327,44 +9894,45 @@ zftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r2, .L1633 - ldr r3, .L1633+4 + ldr r2, .L1718 + ldr r3, .L1718+4 mov ip, #1 ldrh r1, [r2, #2] - add r2, r2, #668 ldrb r0, [r3, #13] @ zero_extendqisi2 smulbb r1, r0, r1 + ldr r0, .L1718+8 strh r1, [r4, #4] @ unaligned - ldrb r1, [r2, #-8] @ zero_extendqisi2 + ldrb r1, [r2, #1172] @ zero_extendqisi2 strb r1, [r4, #7] - ldr r1, [r2, #-148] + ldr r1, [r2, #1032] str r1, [r4] @ unaligned ldrb r1, [r3, #13] @ zero_extendqisi2 - ldrb r0, [r2, #-79] @ zero_extendqisi2 strb r1, [r4, #6] mov r1, #32 ldrb r3, [r3, #11] @ zero_extendqisi2 strb r1, [r4, #8] + ldrb r1, [r2, #1101] @ zero_extendqisi2 strb r3, [r4, #9] mov r3, #0 strb r3, [r4, #10] -.L1629: - uxtb r1, r3 - cmp r1, r0 - bcs .L1632 - ldrb lr, [r3, r2] @ zero_extendqisi2 +.L1714: + uxtb r2, r3 + cmp r2, r1 + bcs .L1717 + ldrb lr, [r3, r0] @ zero_extendqisi2 add r3, r3, #1 - ldrb r1, [r4, #10] @ zero_extendqisi2 - orr r1, r1, ip, asl lr - strb r1, [r4, #10] - b .L1629 -.L1632: + ldrb r2, [r4, #10] @ zero_extendqisi2 + orr r2, r2, ip, asl lr + strb r2, [r4, #10] + b .L1714 +.L1717: ldmfd sp!, {r4, pc} -.L1634: +.L1719: .align 2 -.L1633: +.L1718: .word .LANCHOR0 .word .LANCHOR2 + .word .LANCHOR0+1180 .fnend .size zftl_read_flash_info, .-zftl_read_flash_info .align 2 @@ -9374,87 +9942,85 @@ gc_init: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - movw r8, #2312 - ldr r4, .L1637 + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + .save {r3, r4, r5, r6, r7, r8, r9, lr} + movw r7, #2828 + ldr r6, .L1722 mov r5, #0 - ldr r6, .L1637+4 - movw r3, #2972 - add r7, r4, r8 + ldr r4, .L1722+4 mov r1, r5 - mov r2, #596 - strh r5, [r4, r3] @ movhi - mov r0, r7 - strb r5, [r4, #2945] - strb r5, [r6, #-3322] - str r5, [r6, #-3320] + add r9, r6, r7 + movw r2, #2132 + sub r8, r4, #3152 + mov r0, r9 + strb r5, [r4, #-3187] + strb r5, [r4, #-254] + str r5, [r4, #-252] + strh r5, [r8, #-12] @ movhi bl ftl_memset mvn r3, #0 - strh r3, [r4, r8] @ movhi - add r3, r4, #2960 - movw ip, #2296 - str r5, [r4, #2320] - ldrh r2, [r3] + strh r3, [r6, r7] @ movhi + sub r7, r4, #3168 + movw ip, #2812 + str r5, [r6, #2836] + ldrh r2, [r7, #-4] + strh r5, [r7, #-14] @ movhi mov r3, r2, lsr #1 - strh r3, [r7, #34] @ movhi - movw r3, #2966 + strh r3, [r9, #34] @ movhi + sub r3, r4, #3184 mov r0, r2, lsr #2 - strh r5, [r4, r3] @ movhi - movw r3, #2946 - strh r5, [r4, r3] @ movhi - movw r3, #2952 - strh r5, [r4, r3] @ movhi - movw r5, #2962 - ldrb r3, [r4, #2964] @ zero_extendqisi2 - strh r0, [r7, #32] @ movhi + strh r0, [r9, #32] @ movhi + strh r5, [r3, #-2] @ movhi + strh r5, [r3] @ movhi + ldrb r3, [r4, #-3195] @ zero_extendqisi2 smulbb r1, r3, r2 uxth r1, r1 sub lr, r1, #32 - strh lr, [r4, ip] @ movhi - movw ip, #2294 - strh r1, [r4, ip] @ movhi - movw r1, #2300 - strh r2, [r4, r1] @ movhi - movw r2, #2298 - strh r0, [r4, r2] @ movhi - ldrh r0, [r4, r5] + strh lr, [r6, ip] @ movhi + movw ip, #2810 + strh r1, [r6, ip] @ movhi + add r1, r6, #2816 + strh r2, [r1] @ movhi + mov r2, #4 + strh r2, [r4, #-248] @ movhi + movw r2, #2814 + strh r0, [r6, r2] @ movhi + ldrh r0, [r7, #-2] mul r0, r3, r0 mov r0, r0, asl #2 bl ftl_malloc - ldrb r3, [r4, #2964] @ zero_extendqisi2 - str r0, [r6, #-3316] - ldrh r0, [r4, r5] + ldrb r3, [r4, #-3195] @ zero_extendqisi2 + str r0, [r4, #-244] + ldrh r0, [r7, #-2] mul r0, r3, r0 mov r0, r0, asl #2 bl ftl_malloc - ldrh r3, [r4, r5] - str r0, [r6, #-3312] - ldrb r0, [r4, #2964] @ zero_extendqisi2 + ldrh r3, [r7, #-2] + str r0, [r4, #-240] + ldrb r0, [r4, #-3195] @ zero_extendqisi2 mul r0, r0, r3 bl ftl_malloc - ldrb r3, [r4, #2964] @ zero_extendqisi2 - str r0, [r4, #2940] - ldrh r0, [r4, r5] + ldrb r3, [r4, #-3195] @ zero_extendqisi2 + str r0, [r4, #-3192] + ldrh r0, [r7, #-2] mul r0, r3, r0 mov r0, r0, asl #2 bl ftl_malloc - ldrb r3, [r4, #2964] @ zero_extendqisi2 - str r0, [r4, #2932] - ldrh r0, [r4, r5] + ldrb r3, [r4, #-3195] @ zero_extendqisi2 + str r0, [r4, #-3200] + ldrh r0, [r7, #-2] mul r0, r3, r0 mov r0, r0, asl #2 bl ftl_malloc - movw r3, #2974 - ldrh r3, [r4, r3] - movw r2, #2292 + ldrh r3, [r8, #-10] + movw r2, #2808 mov r3, r3, lsr #2 - strh r3, [r4, r2] @ movhi - str r0, [r6, #-3308] - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1638: + strh r3, [r6, r2] @ movhi + str r0, [r4, #-236] + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} +.L1723: .align 2 -.L1637: +.L1722: .word .LANCHOR0 .word .LANCHOR3 .fnend @@ -9470,66 +10036,78 @@ gc_static_wearleveling: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r4, .L1755 - ldr r3, [r4, #2288] + ldr r4, .L1843 + ldr r3, [r4, #2804] ldr r3, [r3, #32] cmp r3, #10240 - bls .L1640 + bls .L1725 bl ftl_tmp_into_update -.L1640: - ldr r3, [r4, #580] +.L1725: + ldr r3, [r4, #1092] ldr r2, [r3, #568] - ldr r1, [r3, #12] + ldr r0, [r3, #12] + add r1, r2, #35840 + add r1, r1, #160 + cmp r0, r1 + bcs .L1726 + ldr r1, .L1843 + ldr ip, [r1, #2804] + ldr r1, [r3, #572] + ldr ip, [ip, #36] + add r1, r1, #256 + cmp ip, r1 + movcc r0, #0 + bcc .L1835 +.L1726: add r2, r2, #860160 add r2, r2, #3840 - cmp r1, r2 - bhi .L1641 - ldr r2, .L1755 - ldr r0, [r2, #2288] - ldr r2, [r3, #572] - ldr r0, [r0, #36] - add r2, r2, #32 cmp r0, r2 + bhi .L1728 + ldr r1, [r4, #2804] + ldr r2, [r3, #572] + ldr r1, [r1, #36] + add r2, r2, #32 + cmp r1, r2 movls r7, #0 - movls r10, r7 - bls .L1642 -.L1641: - ldr r2, [r4, #2288] + movls r9, r7 + bls .L1729 +.L1728: + ldr r2, [r4, #2804] mov r8, #0 - ldr ip, .L1755 + ldr ip, .L1843 movw r5, #65535 mov fp, r8 - mov r10, r8 - ldr r0, [r2, #36] mov r9, r8 - str r1, [r3, #568] + ldr r1, [r2, #36] + mov r10, r8 + str r0, [r3, #568] mov r6, r5 str r8, [sp, #32] - str r0, [r3, #572] + str r1, [r3, #572] ldrh r7, [r2, #134] str r8, [sp, #28] str r8, [sp, #24] str r8, [sp, #20] -.L1643: - ldr r3, .L1755 - add r2, r3, #564 +.L1730: + ldr r2, .L1843+4 + ldr r3, .L1843 ldrh r2, [r2] cmp r2, r7 - bls .L1752 - ldr r0, [ip, #568] + bls .L1840 + ldr r0, [ip, #1080] mov r1, r7, asl #2 add lr, r0, r1 ldrb r3, [lr, #2] @ zero_extendqisi2 and r2, r3, #224 cmp r2, #224 - beq .L1644 + beq .L1731 tst r3, #8 ldrneh r3, [r0, r1] ldrne r4, [r0, r1] ubfxne r3, r3, #0, #11 ubfxne r4, r4, #11, #8 - bne .L1646 -.L1645: + bne .L1733 +.L1732: tst r3, #24 ldreqh r3, [r0, r1] movweq r4, #65535 @@ -9537,27 +10115,27 @@ gc_static_wearleveling: movwne r3, #65535 ubfxeq r3, r3, #0, #11 ubfxne r4, r4, #11, #8 - bne .L1648 -.L1646: + bne .L1735 +.L1733: ldr r2, [sp, #32] - add r10, r10, #1 + add r9, r9, #1 cmp r5, r3 add r2, r2, r3 - uxth r10, r10 + uxth r9, r9 str r2, [sp, #32] - ldrhi r2, [ip, #580] + ldrhi r2, [ip, #1092] movhi r5, r3 addhi r2, r2, #584 strhih r7, [r2, #2] @ movhi -.L1690: +.L1777: ldr r2, [sp, #20] cmp r2, r3 movw r2, #65535 strcc r3, [sp, #20] movcc r8, r7 cmp r4, r2 - beq .L1650 -.L1648: + beq .L1737 +.L1735: ldr r2, [sp, #24] cmp r6, r4 add r2, r2, #1 @@ -9567,20 +10145,20 @@ gc_static_wearleveling: ldr r2, [sp, #28] add r2, r2, r4 str r2, [sp, #28] - ldrhi r2, [ip, #580] + ldrhi r2, [ip, #1092] addhi r2, r2, #584 strhih r7, [r2] @ movhi - cmp r9, r4 + cmp r10, r4 movcc fp, r7 - movcc r9, r4 -.L1650: + movcc r10, r4 +.L1737: cmp r4, #9 cmphi r3, #9 - bhi .L1644 - ldr r3, .L1755+4 + bhi .L1731 + ldr r3, .L1843+8 ldr r3, [r3] tst r3, #256 - beq .L1644 + beq .L1731 ldrh r2, [r0, r1] ldr r3, [r0, r1] ldrb r1, [lr, #2] @ zero_extendqisi2 @@ -9595,19 +10173,19 @@ gc_static_wearleveling: ldrb r1, [lr, #3] @ zero_extendqisi2 str r1, [sp, #8] mov r1, r7, asl #1 - ldr r0, [ip, #576] + ldr r0, [ip, #1088] ldrh r1, [r0, r1] - ldr r0, .L1755+8 + ldr r0, .L1843+12 str r1, [sp, #12] mov r1, r7 bl printk ldr ip, [sp, #36] -.L1644: +.L1731: add r7, r7, #1 uxth r7, r7 - b .L1643 -.L1752: - ldr r0, [r3, #580] + b .L1730 +.L1840: + ldr r0, [r3, #1092] mov r2, #0 mov r1, #255 str r3, [sp, #36] @@ -9615,223 +10193,248 @@ gc_static_wearleveling: strh r2, [r0, #-142] @ movhi mov r2, #128 bl ftl_memset - ldr ip, .L1755+4 movw r2, #586 - ldr ip, [ip] - tst ip, #1024 ldr r3, [sp, #36] - ldr r1, [r3, #580] - ldr r0, [r3, #568] + ldr r1, [r3, #1092] + ldr r7, [r3, #1080] ldrh r1, [r1, r2] - mov r2, r1, asl #2 - add r4, r0, r2 - beq .L1653 - ldrh r2, [r0, r2] - ldr ip, [r0, r1, asl #2] + ldr r2, .L1843+8 + mov ip, r1, asl #2 + ldr r2, [r2] + add r4, r7, ip + tst r2, #1024 + beq .L1740 ldrb r0, [r4, #2] @ zero_extendqisi2 - ubfx r2, r2, #0, #11 + ldrh r2, [r7, ip] + ldr lr, [r7, r1, asl #2] ubfx r0, r0, #3, #2 str r0, [sp] + ubfx r2, r2, #0, #11 ldrb r0, [r4, #2] @ zero_extendqisi2 + str ip, [sp, #36] mov r0, r0, lsr #5 str r0, [sp, #4] ldrb r0, [r4, #3] @ zero_extendqisi2 str r0, [sp, #8] - ldr r0, [r3, #576] + ldr r0, [r3, #1088] mov r3, r1, asl #1 ldrh r3, [r0, r3] - ldr r0, .L1755+12 + ldr r0, .L1843+16 str r3, [sp, #12] - ubfx r3, ip, #11, #8 + ubfx r3, lr, #11, #8 bl printk -.L1653: + ldr ip, [sp, #36] +.L1740: ldrb r3, [r4, #2] @ zero_extendqisi2 + ldr r1, .L1843 and r3, r3, #224 cmp r3, #32 - ldr r3, .L1755 - bne .L1654 - ldr r2, [r3, #2288] - add r2, r2, #688 - ldrh r2, [r2] - cmp r2, #2 - ldrhi r2, .L1755+16 - movhi r1, #1 - strhi r1, [r2, #-3304] -.L1654: + bne .L1741 + ldr r3, [r1, #2804] + add r3, r3, #688 + ldrh r3, [r3] + cmp r3, #2 + ldrhi r3, .L1843+20 + movhi r2, #1 + strhi r2, [r3, #-232] +.L1741: ldrb r2, [r4, #2] @ zero_extendqisi2 tst r2, #8 - beq .L1655 - and r1, r2, #192 - cmp r1, #64 - bne .L1656 - ldr r2, [r3, #580] + beq .L1742 + ldr r3, [r1, #2804] + ldr r0, .L1843+20 + ldr r4, .L1843 + ldrh r1, [r3, #96] + ldrh r0, [r0, #-228] + ldrh r3, [r7, ip] + ubfx r3, r3, #0, #11 + add r3, r3, r0, lsr #2 + cmp r1, r3 + ble .L1742 + and r3, r2, #192 + cmp r3, #64 + bne .L1743 + ldr r2, [r4, #1092] movw r3, #586 mov r1, #0 ldrh r0, [r2, r3] mov r2, #1 bl gc_add_sblk - ldr r2, .L1755+20 - movw r3, #570 + ldr r2, .L1843+24 + movw r3, #2106 mov r1, #1 strh r1, [r2, r3] @ movhi - b .L1655 -.L1656: + b .L1742 +.L1743: tst r2, #224 - bne .L1655 - ldr r3, [r3, #580] - movw r7, #590 - movw r2, #65535 - ldrh r1, [r3, r7] - cmp r1, r2 - bne .L1655 - movw r4, #586 - ldrh r0, [r3, r4] + bne .L1742 + ldr r3, [r4, #1092] + movw r2, #590 + movw r1, #65535 + ldrh r0, [r3, r2] + cmp r0, r1 + bne .L1742 + movw r7, #586 + str r2, [sp, #36] + ldrh r0, [r3, r7] add r3, r3, #588 ldrh r3, [r3] cmp r3, r0 - beq .L1655 + beq .L1742 bl zftl_remove_free_node - ldr r3, .L1755 - ldr r3, [r3, #580] - ldrh r2, [r3, r4] - strh r2, [r3, r7] @ movhi + ldr r3, [r4, #1092] + ldrh r1, [r3, r7] + ldr r2, [sp, #36] + strh r1, [r3, r2] @ movhi mvn r2, #0 - strh r2, [r3, r4] @ movhi -.L1655: - ldr r4, .L1755 - ldr r0, .L1755+4 - ldr r3, [r4, #580] - ldr r0, [r0] + strh r2, [r3, r7] @ movhi +.L1742: + ldr r1, .L1843 + ldr r2, .L1843+8 + ldr r3, [r1, #1092] + ldr r2, [r2] add r3, r3, #584 - tst r0, #1024 - ldrh r1, [r3] - ldr r3, [r4, #568] - mov r2, r1, asl #2 - add r7, r3, r2 - beq .L1657 - ldrb r0, [r7, #2] @ zero_extendqisi2 - ldrh r2, [r3, r2] + ldr ip, [r1, #1080] + tst r2, #1024 + ldrh r7, [r3] + mov r3, r7, asl #2 + add r4, ip, r3 + beq .L1744 + ldrb r0, [r4, #2] @ zero_extendqisi2 + ldrh r2, [ip, r3] ubfx r0, r0, #3, #2 - ldr r3, [r3, r1, asl #2] + ldr r3, [ip, r7, asl #2] str r0, [sp] ubfx r2, r2, #0, #11 - ldrb r0, [r7, #2] @ zero_extendqisi2 + ldrb r0, [r4, #2] @ zero_extendqisi2 ubfx r3, r3, #11, #8 + str ip, [sp, #36] mov r0, r0, lsr #5 str r0, [sp, #4] - ldrb r0, [r7, #3] @ zero_extendqisi2 + ldrb r0, [r4, #3] @ zero_extendqisi2 str r0, [sp, #8] - mov r0, r1, asl #1 - ldr ip, [r4, #576] - ldrh r0, [ip, r0] - str r0, [sp, #12] - ldr r0, .L1755+24 + ldr r0, [r1, #1088] + mov r1, r7, asl #1 + ldrh r1, [r0, r1] + ldr r0, .L1843+28 + str r1, [sp, #12] + mov r1, r7 bl printk -.L1657: - ldrb r3, [r7, #2] @ zero_extendqisi2 + ldr ip, [sp, #36] +.L1744: + ldrb r3, [r4, #2] @ zero_extendqisi2 + ldr r4, .L1843 tst r3, #8 - beq .L1658 + beq .L1745 + ldr r2, [r4, #2804] + ldr r0, .L1843+20 + ldrh r1, [r2, #98] + ldrh r0, [r0, #-226] + ldr r2, [ip, r7, asl #2] + ubfx r2, r2, #11, #8 + add r2, r2, r0, lsr #2 + cmp r1, r2 + ble .L1745 and r2, r3, #192 - ldr r7, .L1755 cmp r2, #64 - bne .L1659 - ldr r3, [r7, #580] + bne .L1746 + ldr r3, [r4, #1092] mov r1, #0 mov r2, #1 add r3, r3, #584 ldrh r0, [r3] bl gc_add_sblk - ldr r2, .L1755+20 - movw r3, #570 + ldr r2, .L1843+24 + movw r3, #2106 mov r1, #1 strh r1, [r2, r3] @ movhi - b .L1658 -.L1659: + b .L1745 +.L1746: and r3, r3, #248 cmp r3, #16 - bne .L1658 - ldr r3, [r7, #580] + bne .L1745 + ldr r3, [r4, #1092] add r2, r3, #588 ldrh r1, [r2] movw r2, #65535 cmp r1, r2 - bne .L1658 + bne .L1745 add r2, r3, #584 ldrh r0, [r2] movw r2, #590 ldrh r3, [r3, r2] cmp r3, r0 - beq .L1658 + beq .L1745 bl zftl_remove_free_node - ldr r3, [r7, #580] + ldr r3, [r4, #1092] add r2, r3, #588 add r3, r3, #584 ldrh r1, [r3] strh r1, [r2] @ movhi mvn r2, #0 strh r2, [r3] @ movhi -.L1658: - ldr r2, .L1755+4 - ldr ip, .L1755 - ldr r2, [r2] - ldr r3, [ip, #568] - tst r2, #1024 - beq .L1660 - mov r2, r8, asl #2 - add r1, r3, r2 - ldrh r2, [r3, r2] +.L1745: + ldr r3, .L1843+8 + ldr r0, [r4, #1080] + ldr r3, [r3] + tst r3, #1024 + beq .L1747 + mov r3, r8, asl #2 + add r1, r0, r3 + ldrh r2, [r0, r3] + ldr r3, [r0, r8, asl #2] ldrb r0, [r1, #2] @ zero_extendqisi2 - ldr r3, [r3, r8, asl #2] ubfx r2, r2, #0, #11 + ubfx r3, r3, #11, #8 ubfx r0, r0, #3, #2 str r0, [sp] ldrb r0, [r1, #2] @ zero_extendqisi2 - ubfx r3, r3, #11, #8 mov r0, r0, lsr #5 str r0, [sp, #4] ldrb r1, [r1, #3] @ zero_extendqisi2 str r1, [sp, #8] + ldr r1, .L1843 + ldr r0, [r1, #1088] mov r1, r8, asl #1 - ldr r0, [ip, #576] ldrh r1, [r0, r1] - ldr r0, .L1755+28 + ldr r0, .L1843+32 str r1, [sp, #12] mov r1, r8 bl printk -.L1660: - ldr r2, .L1755+4 - ldr ip, .L1755 - ldr r2, [r2] - ldr r3, [ip, #568] - tst r2, #1024 - beq .L1661 - mov r2, fp, asl #2 - add r1, r3, r2 - ldrh r2, [r3, r2] +.L1747: + ldr r3, .L1843+8 + ldr ip, .L1843 + ldr r3, [r3] + ldr r0, [ip, #1080] + tst r3, #1024 + beq .L1748 + mov r3, fp, asl #2 + add r1, r0, r3 + ldrh r2, [r0, r3] + ldr r3, [r0, fp, asl #2] ldrb r0, [r1, #2] @ zero_extendqisi2 - ldr r3, [r3, fp, asl #2] ubfx r2, r2, #0, #11 + ubfx r3, r3, #11, #8 ubfx r0, r0, #3, #2 str r0, [sp] ldrb r0, [r1, #2] @ zero_extendqisi2 - ubfx r3, r3, #11, #8 mov r0, r0, lsr #5 str r0, [sp, #4] ldrb r1, [r1, #3] @ zero_extendqisi2 str r1, [sp, #8] mov r1, fp, asl #1 - ldr r0, [ip, #576] + ldr r0, [ip, #1088] ldrh r1, [r0, r1] - ldr r0, .L1755+32 + ldr r0, .L1843+36 str r1, [sp, #12] mov r1, fp bl printk -.L1661: - ldr r4, [r4, #2288] - mov r1, r10 +.L1748: + ldr r4, [r4, #2804] + mov r1, r9 ldrh r3, [sp, #20] ldr r0, [sp, #32] - strh r9, [r4, #98] @ movhi + strh r10, [r4, #98] @ movhi strh r3, [r4, #96] @ movhi strh r5, [r4, #92] @ movhi strh r6, [r4, #94] @ movhi @@ -9842,66 +10445,66 @@ gc_static_wearleveling: ldr r0, [sp, #28] bl __aeabi_uidiv strh r0, [r4, #90] @ movhi - ldr r4, .L1755+4 + ldr r4, .L1843+8 ldr r3, [r4] tst r3, #1024 - beq .L1662 + beq .L1749 uxth r0, r0 - mov r1, r10 + mov r1, r9 str r0, [sp] uxth r3, r7 - ldr r0, .L1755+36 + ldr r0, .L1843+40 ldr r2, [sp, #24] bl printk -.L1662: +.L1749: ldr r3, [r4] - ldr r4, .L1755+40 + ldr r4, .L1843+20 tst r3, #1024 - beq .L1663 - str r9, [sp] + beq .L1750 + str r10, [sp] mov r1, r5 - ldrh r3, [r4, #-4] + ldrh r3, [r4, #-228] mov r2, r6 - ldr r0, .L1755+44 + ldr r0, .L1843+44 str r3, [sp, #4] - ldrh r3, [r4, #-2] + ldrh r3, [r4, #-226] str r3, [sp, #8] ldr r3, [sp, #20] bl printk -.L1663: - rsb r3, r6, r9 +.L1750: + rsb r3, r6, r10 str r3, [sp, #24] ldr r2, [sp, #24] - ldrh r3, [r4, #-2] + ldrh r3, [r4, #-226] cmp r2, r3 - bgt .L1664 - ldr r2, .L1755+40 + bgt .L1751 + ldr r2, .L1843+20 ldr r3, [sp, #20] - ldrh r2, [r2, #-4] + ldrh r2, [r2, #-228] rsb r3, r5, r3 cmp r3, r2 movle r7, #0 - movle r10, r7 - ble .L1665 -.L1664: - ldr ip, .L1755 + movle r9, r7 + ble .L1752 +.L1751: + ldr ip, .L1843 mov r7, #0 - mov r10, r7 - ldr r3, [ip, #580] - mov r9, ip + mov r9, r7 + ldr r3, [ip, #1092] + mov fp, ip ldr r4, [r3, #580] - ldr r3, [ip, #2288] + ldr r3, [ip, #2804] uxth r4, r4 - ldrh fp, [r3, #134] -.L1666: - ldr r3, .L1755+48 + ldrh r10, [r3, #134] +.L1753: + ldr r3, .L1843+4 ldrh r3, [r3] - cmp fp, r3 - bcs .L1675 + cmp r10, r3 + bcs .L1762 add r4, r4, #1 uxth r4, r4 cmp r4, r3 - ldr r3, [r9, #568] + ldr r3, [fp, #1080] movcs r4, #0 mov r8, r4, asl #2 add r2, r3, r8 @@ -9913,54 +10516,54 @@ gc_static_wearleveling: cmp r0, #224 orreq r1, r1, #1 cmp r1, #0 - bne .L1668 + bne .L1755 ubfx r2, r2, #3, #2 ands r1, r2, #1 - beq .L1669 + beq .L1756 cmp r0, #160 - b .L1750 -.L1669: + b .L1838 +.L1756: cmp r2, #2 -.L1750: - bne .L1671 - ldr r2, .L1755+52 +.L1838: + bne .L1758 + ldr r2, .L1843+20 ldr r0, [sp, #24] - ldrh r2, [r2] + ldrh r2, [r2, #-226] cmp r0, r2 - ble .L1672 + ble .L1759 ldr r2, [r3, r8] ubfx r2, r2, #11, #8 cmp r2, r6 - bls .L1673 + bls .L1760 cmp r1, #0 - beq .L1672 + beq .L1759 ldrh r2, [r3, r8] ubfx r2, r2, #0, #11 cmp r2, r5 - bgt .L1672 -.L1673: + bgt .L1759 +.L1760: mov r1, #0 mov r2, #1 mov r0, r4 str r3, [sp, #28] bl gc_add_sblk - ldr r2, .L1755+56 + ldr r2, .L1843+48 mov r1, #1 - add r10, r10, r1 + add r9, r9, r1 strh r1, [r2] @ movhi - ldr r2, .L1755+4 + ldr r2, .L1843+8 ldr r2, [r2] tst r2, #1024 ldr r3, [sp, #28] - beq .L1672 - ldr r0, [r9, #576] + beq .L1759 + ldr r0, [fp, #1088] mov r1, r4, asl r1 - ldr r2, [r9, #568] + ldr r2, [fp, #1080] ldrh lr, [r0, r1] add r2, r2, r8 - ldr r1, .L1755+20 + ldr r1, .L1843+24 ldrb r2, [r2, #2] @ zero_extendqisi2 - ldr r0, .L1755+60 + ldr r0, .L1843+52 ldrh r1, [r1, #52] str r1, [sp] ldrh r1, [r3, r8] @@ -9969,49 +10572,49 @@ gc_static_wearleveling: ldr r3, [r3, r8] ubfx r3, r3, #11, #8 str r3, [sp, #8] - b .L1751 -.L1671: - ldr r0, .L1755+64 + b .L1839 +.L1758: + ldr r0, .L1843+20 ldr r2, [sp, #20] - ldrh r0, [r0] + ldrh r0, [r0, #-228] rsb r2, r5, r2 cmp r2, r0 - ble .L1672 + ble .L1759 ldrh r2, [r3, r8] add r0, r5, #8 ubfx r2, r2, #0, #11 cmp r2, r0 - ble .L1674 + ble .L1761 cmp r1, #0 - beq .L1672 + beq .L1759 ldr r2, [r3, r8] add r1, r6, #4 ubfx r2, r2, #11, #8 cmp r2, r1 - bgt .L1672 -.L1674: + bgt .L1759 +.L1761: mov r1, #0 mov r2, #1 mov r0, r4 str r3, [sp, #28] bl gc_add_sblk - ldr r2, .L1755+56 + ldr r2, .L1843+48 mov r1, #1 add r7, r7, r1 strh r1, [r2] @ movhi - ldr r2, .L1755+4 + ldr r2, .L1843+8 ldr r2, [r2] tst r2, #1024 ldr r3, [sp, #28] - beq .L1672 - ldr r0, [r9, #576] + beq .L1759 + ldr r0, [fp, #1088] mov r1, r4, asl r1 - ldr r2, [r9, #568] + ldr r2, [fp, #1080] ldrh lr, [r0, r1] add r2, r2, r8 - ldr r1, .L1755+20 + ldr r1, .L1843+24 ldrb r2, [r2, #2] @ zero_extendqisi2 - ldr r0, .L1755+68 + ldr r0, .L1843+56 ldrh r1, [r1, #52] str r1, [sp] ldrh r1, [r3, r8] @@ -10020,54 +10623,53 @@ gc_static_wearleveling: ldr r3, [r3, r8] ubfx r3, r3, #11, #8 str r3, [sp, #8] -.L1751: +.L1839: mov r1, r4 mov r2, r2, lsr #5 mov r3, lr bl printk -.L1672: - cmp r10, #4 +.L1759: + cmp r9, #4 cmpls r7, #4 - bhi .L1675 -.L1668: - add fp, fp, #1 - uxth fp, fp - b .L1666 -.L1675: - ldr r3, .L1755 - ldr r3, [r3, #580] + bhi .L1762 +.L1755: + add r10, r10, #1 + uxth r10, r10 + b .L1753 +.L1762: + ldr r3, .L1843 + ldr r3, [r3, #1092] str r4, [r3, #580] -.L1665: - ldr r0, .L1755 +.L1752: cmp r6, #0 - ldrne r3, [r0, #2288] - movne r4, r0 - ldrneh r3, [r3, #134] - beq .L1678 -.L1679: - ldr r2, .L1755 - add r1, r2, #564 - ldrh r1, [r1] - cmp r1, r3 - bls .L1753 - ldr ip, [r4, #568] + beq .L1765 + ldr r0, .L1843 + ldr r4, .L1843+4 + ldr r3, [r0, #2804] + ldrh r3, [r3, #134] +.L1766: + ldrh r2, [r4] + cmp r2, r3 + bls .L1841 + ldr ip, [r0, #1080] mov lr, r3, asl #2 add r8, ip, lr ldr r2, [ip, r3, asl #2] ubfx r1, r2, #11, #8 cmp r1, r6 - bcc .L1680 + bcc .L1767 ldrb r8, [r8, #2] @ zero_extendqisi2 tst r8, #24 rsbne r1, r6, r1 bfine r2, r1, #11, #8 strne r2, [ip, lr] -.L1680: +.L1767: add r3, r3, #1 uxth r3, r3 - b .L1679 -.L1753: - ldr r3, [r2, #2288] + b .L1766 +.L1841: + ldr r3, .L1843 + ldr r3, [r3, #2804] ldrh r2, [r3, #72] add r2, r6, r2 strh r2, [r3, #72] @ movhi @@ -10075,37 +10677,37 @@ gc_static_wearleveling: cmp r2, r6 rsbhi r2, r6, r2 strhih r2, [r3, #98] @ movhi -.L1678: +.L1765: cmp r5, #0 - beq .L1684 - ldr r3, [r0, #2288] - ldr r4, .L1755 + beq .L1771 + ldr ip, .L1843 + ldr r6, .L1843+4 + ldr r3, [ip, #2804] ldrh r3, [r3, #134] -.L1685: - ldr r2, .L1755 - add r1, r2, #564 - ldrh r1, [r1] - cmp r1, r3 - bls .L1754 - ldr ip, [r4, #568] - mov r0, r3, asl #2 - add lr, ip, r0 - ldrh r2, [ip, r0] +.L1772: + ldrh r2, [r6] + cmp r2, r3 + bls .L1842 + ldr r4, [ip, #1080] + mov lr, r3, asl #2 + add r0, r4, lr + ldrh r2, [r4, lr] ubfx r1, r2, #0, #11 cmp r1, r5 - blt .L1686 - ldrb lr, [lr, #2] @ zero_extendqisi2 - and lr, lr, #24 - cmp lr, #16 + blt .L1773 + ldrb r0, [r0, #2] @ zero_extendqisi2 + and r0, r0, #24 + cmp r0, #16 rsbne r1, r5, r1 bfine r2, r1, #0, #11 - strneh r2, [ip, r0] @ movhi -.L1686: + strneh r2, [r4, lr] @ movhi +.L1773: add r3, r3, #1 uxth r3, r3 - b .L1685 -.L1754: - ldr r3, [r2, #2288] + b .L1772 +.L1842: + ldr r3, .L1843 + ldr r3, [r3, #2804] ldrh r2, [r3, #74] add r2, r5, r2 strh r2, [r3, #74] @ movhi @@ -10113,52 +10715,50 @@ gc_static_wearleveling: cmp r2, r5 rsbhi r2, r5, r2 strhih r2, [r3, #96] @ movhi -.L1684: - ldr r0, .L1755+72 +.L1771: + ldr r4, .L1843+60 mov r1, #0 + sub r0, r4, #8 bl _list_get_gc_head_node movw r2, #65535 - ldr r4, .L1755 cmp r0, r2 - beq .L1642 - ldr r2, [r4, #576] + beq .L1729 + ldr r2, .L1843 mov r3, r0, asl #1 - add r4, r4, #2960 - ldrh r2, [r2, r3] - ldrh r3, [r4] - cmp r2, r3 - bhi .L1642 + ldr r1, [r2, #1088] + ldrh r2, [r4, #-4] + ldrh r3, [r1, r3] + cmp r3, r2, lsr #1 + bhi .L1729 mov r1, #0 mov r2, #1 bl gc_add_sblk - add r10, r10, #1 -.L1642: - add r0, r7, r10 + add r9, r9, #1 +.L1729: + add r0, r7, r9 +.L1835: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1756: +.L1844: .align 2 -.L1755: +.L1843: .word .LANCHOR0 + .word .LANCHOR0+1076 .word .LANCHOR2 - .word .LC124 - .word .LC125 - .word .LANCHOR3 - .word .LANCHOR0+2312 - .word .LC126 - .word .LC127 - .word .LC128 .word .LC129 - .word .LANCHOR3-3296 .word .LC130 - .word .LANCHOR0+564 - .word .LANCHOR3-3298 - .word .LANCHOR0+2882 + .word .LANCHOR3 + .word .LANCHOR0+2828 .word .LC131 - .word .LANCHOR3-3300 .word .LC132 - .word .LANCHOR0+2956 + .word .LC133 + .word .LC134 + .word .LC135 + .word .LANCHOR0+4934 + .word .LC136 + .word .LC137 + .word .LANCHOR3-3168 .fnend .size gc_static_wearleveling, .-gc_static_wearleveling .align 2 @@ -10170,443 +10770,541 @@ zftl_sblk_list_init: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + movw r3, #1076 + ldr r5, .L1878 mov r2, #6 - ldr r6, .L1788 + ldr r6, .L1878+4 mov r1, #0 .pad #20 sub sp, sp, #20 - mov r9, #0 - add r8, r6, #564 - add r7, r6, #2272 - ldr r0, [r6, #524] - mov r4, r6 - ldrh r3, [r8] - ldr fp, .L1788+4 + mov fp, #0 + ldrh r3, [r5, r3] + mov r4, fp + ldr r0, [r5, #1036] + mov r8, r5 + ldr r10, .L1878+8 mul r2, r2, r3 bl ftl_memset - add r3, r6, #2992 - mov r2, #16 - strh r9, [r7] @ movhi - strh r2, [r3] @ movhi - movw r3, #2274 - strh r9, [r6, r3] @ movhi - movw r3, #2276 - strh r9, [r6, r3] @ movhi - movw r3, #2278 - strh r9, [r6, r3] @ movhi - movw r3, #2282 - strh r9, [r6, r3] @ movhi - movw r2, #2962 - movw r3, #2280 - ldrh r1, [r6, r2] - strh r9, [r6, r3] @ movhi + sub r3, r6, #3136 + mov r2, #32 + str fp, [r6, #-3156] + strh r2, [r3, #-8] @ movhi + movw r3, #2788 + strh fp, [r5, r3] @ movhi + movw r3, #2790 + strh fp, [r5, r3] @ movhi + movw r3, #2792 + strh fp, [r5, r3] @ movhi + movw r3, #2794 + strh fp, [r5, r3] @ movhi + sub r2, r6, #3168 + movw r3, #2798 + str fp, [r6, #-3152] + strh fp, [r5, r3] @ movhi + movw r3, #2796 + strh fp, [r5, r3] @ movhi mov r0, #32768 - ldrb r3, [r6, #2964] @ zero_extendqisi2 - str r9, [r6, #2980] - str r9, [r6, #2984] + ldrb r3, [r6, #-3195] @ zero_extendqisi2 + ldrh r1, [r2, #-2] + str fp, [r6, #-3148] + str fp, [r6, #-3180] mul r1, r1, r3 - str r9, [r6, #2988] - str r9, [r6, #2948] - str r9, [r6, #2968] - str r9, [r6, #2956] + str fp, [r6, #-3168] + str fp, [r6, #-3176] bl __aeabi_idiv uxth r3, r0 - str r3, [sp] - ldr r3, [r6, #2288] - str r7, [sp, #8] - mov r7, r6 - str r8, [sp, #4] - ldrh r5, [r3, #134] - strh r9, [r3, #146] @ movhi -.L1758: - ldr r3, [sp, #4] - sxth r2, r5 - ldr r1, .L1788 - ldrh r3, [r3] - cmp r2, r3 - bge .L1786 - ldr r3, [r7, #568] - add r8, r3, r2, asl #2 - ldrb r1, [r8, #3] @ zero_extendqisi2 - cmp r1, #0 - ldreq r1, [sp] - beq .L1759 - ldrb r6, [r7, #2964] @ zero_extendqisi2 - mov ip, #0 - ldrh r9, [fp] - mov r1, ip - ldr lr, [r7, #2288] -.L1760: - cmp ip, r6 - bge .L1787 - ldrb r0, [r8, #3] @ zero_extendqisi2 - mov r0, r0, asr ip - add ip, ip, #1 - tst r0, #1 - addeq r1, r9, r1 - ldrneh r0, [lr, #146] + str r3, [sp, #4] + ldr r3, [r5, #2804] + str r6, [sp, #8] + ldrh r7, [r3, #134] + strh fp, [r3, #146] @ movhi +.L1846: + ldr r2, .L1878+12 + sxth ip, r7 + ldr r3, .L1878 + ldrh r2, [r2] + cmp ip, r2 + bge .L1876 + ldr r6, [r8, #1080] + add r6, r6, ip, asl #2 + ldrb r3, [r6, #3] @ zero_extendqisi2 + cmp r3, #0 + ldreq r1, [sp, #4] + beq .L1847 + ldr r3, [sp, #8] + ldrh fp, [r10] + ldr r0, [r8, #2804] + ldrb lr, [r3, #-3195] @ zero_extendqisi2 + mov r3, #0 + mov r1, r3 +.L1848: + cmp r3, lr + bge .L1877 + ldrb r2, [r6, #3] @ zero_extendqisi2 + mov r2, r2, asr r3 + add r3, r3, #1 + tst r2, #1 + addeq r1, fp, r1 + ldrneh r2, [r0, #146] uxtheq r1, r1 - addne r0, r0, #1 - strneh r0, [lr, #146] @ movhi - b .L1760 -.L1787: + addne r2, r2, #1 + strneh r2, [r0, #146] @ movhi + b .L1848 +.L1877: cmp r1, #0 - beq .L1764 + beq .L1852 sxth r1, r1 mov r0, #32768 - str r2, [sp, #12] + str ip, [sp, #12] bl __aeabi_idiv add r0, r0, #1 - ldr r2, [sp, #12] + ldr ip, [sp, #12] uxth r1, r0 - b .L1759 -.L1764: - ldrb r0, [r8, #2] @ zero_extendqisi2 - mvn lr, #0 - orr r0, r0, #224 - strb r0, [r8, #2] - ldr ip, [r4, #576] - mov r0, r2, asl #1 - strh lr, [ip, r0] @ movhi -.L1759: - mov r10, r2, asl #1 - ldr lr, [r4, #524] - add r0, r10, r2 - mov r0, r0, asl #1 - add r6, lr, r0 - strh r1, [r6, #4] @ movhi + b .L1847 +.L1852: + ldrb r3, [r6, #2] @ zero_extendqisi2 + mvn r0, #0 + orr r3, r3, #224 + strb r3, [r6, #2] + ldr r2, [r5, #1088] + mov r3, ip, asl #1 + strh r0, [r2, r3] @ movhi +.L1847: + mov r9, ip, asl #1 + ldr r0, [r5, #1036] + add r2, r9, ip + mov r2, r2, asl #1 + add lr, r0, r2 + strh r1, [lr, #4] @ movhi mvn r1, #0 - strh r1, [r6, #2] @ movhi - strh r1, [lr, r0] @ movhi - ldrb r1, [r8, #2] @ zero_extendqisi2 - and r6, r1, #224 - cmp r6, #32 - cmpne r6, #224 - moveq r9, #1 - movne r9, #0 - beq .L1766 - ldr r0, [r7, #580] - ldrh lr, [r0, #16] - cmp r2, lr - beq .L1766 - ldrh lr, [r0, #48] - cmp r2, lr - beq .L1766 - ldrh r0, [r0, #80] - cmp r2, r0 - beq .L1766 - cmp r6, #64 - uxtheq r6, r5 - ldreq r0, .L1788+8 - ldreq r2, .L1788+12 + strh r1, [lr, #2] @ movhi + strh r1, [r0, r2] @ movhi + ldrb r2, [r6, #2] @ zero_extendqisi2 + and r2, r2, #224 + cmp r2, #32 + cmpne r2, #224 + moveq fp, #1 + movne fp, #0 + beq .L1853 + ldr r1, [r8, #1092] + ldrh r0, [r1, #16] + cmp ip, r0 + beq .L1853 + ldrh r0, [r1, #48] + cmp ip, r0 + beq .L1853 + ldrh r1, [r1, #80] + cmp ip, r1 + beq .L1853 + cmp r2, #64 + uxtheq r6, r7 + ldreq r0, .L1878+16 + ldreq r2, .L1878+20 moveq r1, r6 - beq .L1784 -.L1768: - cmp r6, #96 - uxtheq r6, r5 - ldreq r0, .L1788+16 + beq .L1874 +.L1854: + cmp r2, #96 + uxtheq r6, r7 + ldreq r0, .L1878+24 + ldreq r2, .L1878+28 moveq r1, r6 - subeq r2, r0, #668 - beq .L1784 -.L1769: - cmp r6, #160 - bne .L1770 - uxth r6, r5 - ldr r0, .L1788+20 - ldr r2, .L1788+24 + beq .L1874 +.L1855: + cmp r2, #160 + bne .L1856 + uxth r6, r7 + ldr r0, .L1878+32 + ldr r2, .L1878+36 mov r1, r6 -.L1784: +.L1874: bl _insert_data_list - ldr r3, [r7, #576] - ldrh r3, [r3, r10] + ldr r2, [r8, #1088] + ldrh r3, [r2, r9] cmp r3, #7 movls r0, r6 movls r1, #1 - movls r2, r9 - bhi .L1766 - b .L1782 -.L1770: - cmp r6, #0 - bne .L1766 - ldr r0, [r7, #576] - uxth r9, r5 - ldrh ip, [r0, r10] - cmp ip, #0 - beq .L1771 - mov r1, r2 - ldr r0, .L1788+28 - mov r2, ip + movls r2, fp + bhi .L1853 + b .L1872 +.L1856: + cmp r2, #0 + bne .L1853 + ldr r2, [r8, #1088] + uxth fp, r7 + ldrh r2, [r2, r9] + cmp r2, #0 + beq .L1857 + sxth r3, r4 + cmp r3, #2 + bgt .L1858 + mov r1, ip + ldr r0, .L1878+40 bl printk - ldrb r2, [r8, #2] @ zero_extendqisi2 - mov r0, r9 - tst r2, #16 - movne r1, #5 - moveq r1, #2 - bfi r2, r1, #5, #3 + ldrb r3, [r6, #2] @ zero_extendqisi2 + add r4, r4, #1 + mov r0, fp + tst r3, #16 mov r1, #1 - strb r2, [r8, #2] - mov r2, r6 -.L1782: + uxth r4, r4 + movne r2, #5 + moveq r2, #2 + bfi r3, r2, #5, #3 + mov r2, #0 + strb r3, [r6, #2] +.L1872: bl gc_add_sblk - b .L1766 -.L1771: - ands r1, r1, #24 - ldreq r0, .L1788+32 - moveq r1, r9 - subeq r2, r0, #708 - beq .L1780 -.L1773: - cmp r1, #16 - ldrne r0, .L1788+36 - moveq r1, r9 - ldreq r0, .L1788+40 - movne r1, r9 - ldreq r2, .L1788+44 - subne r2, r0, #712 -.L1780: + b .L1853 +.L1858: + ldr r1, .L1878+44 + movw r2, #651 + ldr r0, .L1878+48 + bl printk + bl dump_stack +.L1857: + ldrb r3, [r6, #2] @ zero_extendqisi2 + ands r3, r3, #24 + ldreq r0, .L1878+52 + moveq r1, fp + ldreq r2, .L1878+56 + beq .L1870 +.L1860: + cmp r3, #16 + ldreq r0, .L1878+60 + moveq r1, fp + ldreq r2, .L1878+64 + movne r1, fp + ldrne r0, .L1878+68 + ldrne r2, .L1878+72 +.L1870: bl _insert_free_list -.L1766: - add r5, r5, #1 - uxth r5, r5 - b .L1758 -.L1786: - ldr r2, [sp, #8] - ldr r3, [r1, #2288] - ldrh r2, [r2] - strh r2, [r3, #114] @ movhi - movw r2, #2274 - ldrh r2, [r1, r2] - strh r2, [r3, #118] @ movhi - movw r2, #2276 - ldrh r2, [r1, r2] - strh r2, [r3, #116] @ movhi - movw r2, #2278 - ldrh r2, [r1, r2] - strh r2, [r3, #122] @ movhi - movw r2, #2282 - ldrh r2, [r1, r2] - strh r2, [r3, #120] @ movhi - movw r2, #2280 - ldrh r2, [r1, r2] - strh r2, [r3, #124] @ movhi +.L1853: + add r7, r7, #1 + uxth r7, r7 + b .L1846 +.L1876: + movw r1, #2788 + ldr r2, [r3, #2804] + ldrh r1, [r3, r1] + strh r1, [r2, #114] @ movhi + movw r1, #2790 + ldrh r1, [r3, r1] + strh r1, [r2, #118] @ movhi + movw r1, #2792 + ldrh r1, [r3, r1] + strh r1, [r2, #116] @ movhi + movw r1, #2794 + ldrh r1, [r3, r1] + strh r1, [r2, #122] @ movhi + movw r1, #2798 + ldrh r1, [r3, r1] + strh r1, [r2, #120] @ movhi + movw r1, #2796 + ldrh r3, [r3, r1] + strh r3, [r2, #124] @ movhi add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1789: +.L1879: .align 2 -.L1788: +.L1878: .word .LANCHOR0 - .word .LANCHOR0+2962 - .word .LANCHOR0+2968 - .word .LANCHOR0+2278 - .word .LANCHOR0+2948 - .word .LANCHOR0+2956 - .word .LANCHOR0+2282 - .word .LC133 - .word .LANCHOR0+2980 - .word .LANCHOR0+2988 - .word .LANCHOR0+2984 - .word .LANCHOR0+2274 + .word .LANCHOR3 + .word .LANCHOR3-3170 + .word .LANCHOR0+1076 + .word .LANCHOR3-3168 + .word .LANCHOR0+2794 + .word .LANCHOR3-3180 + .word .LANCHOR0+2796 + .word .LANCHOR3-3176 + .word .LANCHOR0+2798 + .word .LC138 + .word .LANCHOR1+1904 + .word .LC0 + .word .LANCHOR3-3156 + .word .LANCHOR0+2788 + .word .LANCHOR3-3152 + .word .LANCHOR0+2790 + .word .LANCHOR3-3148 + .word .LANCHOR0+2792 .fnend .size zftl_sblk_list_init, .-zftl_sblk_list_init .align 2 + .global ftl_open_sblk_init + .type ftl_open_sblk_init, %function +ftl_open_sblk_init: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + mov r4, r0 + ldr r6, .L1888 + mov r5, r1 + ldr r8, .L1888+4 + mov r7, r6 +.L1881: + movw r10, #65535 +.L1882: + mov r0, r5 + bl ftl_alloc_sblk + cmp r0, r10 + mov r9, r0 + beq .L1882 + mov r1, #0 + ldr fp, .L1888+8 + bl ftl_erase_sblk + add r1, r4, #16 + mov r0, r9 + mov r10, r9, asl #1 + bl ftl_get_blk_list_in_sblk + strh r9, [r4] @ movhi + ldrh r2, [r8] + cmp r5, #2 + strb r5, [r4, #4] + uxtb r3, r0 + strb r3, [r4, #9] + mov r0, #0 + strh r0, [r4, #2] @ movhi + smulbb r3, r3, r2 + strb r0, [r4, #5] + strh r0, [r4, #10] @ movhi + ldrneb r0, [r6, #-3195] @ zero_extendqisi2 + ldr r1, [r7, #-2624] + strh r3, [r4, #6] @ movhi + ldrb r3, [r7, #-3195] @ zero_extendqisi2 + smulbbne r0, r0, r2 + mul r2, r3, r2 + uxthne r0, r0 + strh r0, [r4, #12] @ movhi + mov r2, r2, asl #2 + add r0, r1, r0, asl #2 + mov r1, #255 + bl ftl_memset + ldr r3, [fp, #1088] + ldrh r2, [r4, #6] + strh r2, [r3, r10] @ movhi + ldrb r3, [r4, #9] @ zero_extendqisi2 + cmp r3, #0 + ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + ldr r0, .L1888+12 + mov r1, r9 + bl printk + ldr r3, [fp, #1088] + mvn r2, #0 + strh r2, [r3, r10] @ movhi + mov r3, #7 + strb r3, [r4, #4] + b .L1881 +.L1889: + .align 2 +.L1888: + .word .LANCHOR3 + .word .LANCHOR3-3172 + .word .LANCHOR0 + .word .LC126 + .fnend + .size ftl_open_sblk_init, .-ftl_open_sblk_init + .align 2 .global pm_free_sblk .type pm_free_sblk, %function pm_free_sblk: .fnstart @ args = 0, pretend = 0, frame = 272 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1820 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #284 sub sp, sp, #284 - ldrh r2, [r3] - mov r5, r3 - cmp r2, #128 - bls .L1791 - ldr r1, .L1820+4 - mov r2, #84 - ldr r0, .L1820+8 + ldr r5, .L1920 + ldrh r3, [r5, #-224] + cmp r3, #128 + bls .L1891 + ldr r1, .L1920+4 + mov r2, #94 + ldr r0, .L1920+8 bl printk bl dump_stack -.L1791: - ldr r4, .L1820+12 +.L1891: + ldr r4, .L1920+12 mov r1, #0 - ldrh lr, [r5] + ldrh lr, [r5, #-224] mov r0, r1 - movw r5, #65535 - ldr r2, [r4, #2288] + movw r6, #65535 + ldr r2, [r4, #2804] add r3, r2, #688 add r2, r2, #412 add r2, r2, #2 ldrh ip, [r3] -.L1794: - ldrh r6, [r2, #2]! +.L1894: + ldrh r7, [r2, #2]! uxth r3, r1 - cmp r6, r5 + cmp r7, r6 addne r0, r0, #1 uxthne r0, r0 cmp r0, ip - bcs .L1793 + bcs .L1893 cmp r0, lr - bcs .L1793 + bcs .L1893 add r1, r1, #1 cmp r1, #128 - bne .L1794 + bne .L1894 mov r3, r1 -.L1793: +.L1893: add r3, r3, #1 add r0, sp, #24 mov r1, #0 mov r2, #256 uxth r3, r3 - mvn r9, #0 + mvn r8, #0 cmp r3, #128 - mov r5, #0 + mov r6, #0 movcs r3, #128 str r3, [sp, #8] bl ftl_memset - ldr r6, [r4, #2288] + ldr r7, [r4, #2804] movw r3, #698 - ldrb fp, [r4, #2930] @ zero_extendqisi2 - add r10, r6, #700 - ldrh r8, [r6, r3] - ldr r3, .L1820+16 - ldrh r7, [r3] - ldrb r3, [r4, #676] @ zero_extendqisi2 + ldrb ip, [r5, #-3202] @ zero_extendqisi2 + add r10, r7, #700 + ldrh fp, [r7, r3] + ldr r3, .L1920+16 + ldrh r9, [r3, #-4] + ldrb r3, [r4, #1189] @ zero_extendqisi2 rsb r3, r3, #24 - rsb r3, r7, r3 - mvn r9, r9, asl r3 -.L1795: - uxth r3, r5 - cmp r3, r8 - bcs .L1817 + rsb r3, r9, r3 + mvn r8, r8, asl r3 +.L1895: + uxth r3, r6 + cmp r3, fp + bcs .L1917 ldr r0, [r10, #4]! - mov r1, fp - and r0, r9, r0, lsr r7 + mov r1, ip + str ip, [sp, #16] + and r0, r8, r0, lsr r9 bl __aeabi_uidiv - add r2, r6, #412 + mov r1, #0 + uxth r3, r0 + ldr ip, [sp, #16] + str r3, [sp, #12] + add r3, r7, #412 + add r3, r3, #2 + add r2, sp, #24 +.L1896: + ldr r0, [sp, #8] + uxth lr, r1 + cmp lr, r0 + bcs .L1918 + ldrh lr, [r3, #2]! + add r1, r1, #1 + ldr r0, [sp, #12] add r2, r2, #2 - mov r3, #0 - uxth r0, r0 - add r1, sp, #24 -.L1796: - ldr lr, [sp, #8] - uxth ip, r3 - cmp ip, lr - bcs .L1818 - ldrh ip, [r2, #2]! - add r3, r3, #1 - add r1, r1, #2 - cmp ip, r0 - ldreqh ip, [r1, #-2] - addeq ip, ip, #1 - streqh ip, [r1, #-2] @ movhi - b .L1796 -.L1818: - add r5, r5, #1 - b .L1795 -.L1817: - ldr r8, .L1820+20 - mov r5, #0 - ldrb r7, [r4, #2964] @ zero_extendqisi2 - add r6, sp, #24 - ldr fp, .L1820+24 + cmp lr, r0 + ldreqh lr, [r2, #-2] + addeq lr, lr, #1 + streqh lr, [r2, #-2] @ movhi + b .L1896 +.L1918: + add r6, r6, #1 + b .L1895 +.L1917: + ldr r2, .L1920+20 + mov r6, #0 + ldrb fp, [r5, #-3195] @ zero_extendqisi2 + add r8, sp, #24 movw r10, #65535 - ldrh r3, [r8] - mov r9, r5 - str r8, [sp, #12] - smulbb r7, r7, r3 - uxth r7, r7 -.L1800: + mov r9, r6 + ldrh r3, [r2, #-4] + smulbb fp, fp, r3 + add r3, r2, #3168 + str r3, [sp, #12] + uxth r7, fp +.L1900: ldr r3, [sp, #8] - uxth r8, r5 - cmp r8, r3 - bcs .L1819 - add r3, r5, #208 - ldr r2, [r4, #2288] + uxth fp, r6 + cmp fp, r3 + bcs .L1919 + add r3, r6, #208 + ldr ip, [r4, #2804] + ldrb r1, [r5, #-3202] @ zero_extendqisi2 mov r3, r3, asl #1 - add r1, r2, #692 - str r2, [sp, #16] - ldrh r3, [r2, r3] - ldrh r0, [r1] - ldrb r1, [r4, #2930] @ zero_extendqisi2 + add r2, ip, #692 + str ip, [sp, #16] + ldrh r3, [ip, r3] + ldrh r0, [r2] str r3, [sp, #20] bl __aeabi_idiv ldr r3, [sp, #20] - ldr r2, [sp, #16] + ldr ip, [sp, #16] cmp r0, r3 - ldreq r1, .L1820+12 - ldreqb r0, [r1, #2964] @ zero_extendqisi2 - ldreq r1, [sp, #12] - ldreqh r1, [r1] - smulbbeq r1, r0, r1 movw r0, #65535 - streqh r1, [r6] @ movhi - ldrh lr, [r6] - cmp lr, #0 - cmpne r7, lr + ldreq r2, [sp, #12] + ldreqb r1, [r2, #-3195] @ zero_extendqisi2 + ldreq r2, .L1920+24 + ldreqh r2, [r2] + smulbbeq r2, r1, r2 + streqh r2, [r8] @ movhi + ldrh r2, [r8] + cmp r2, #0 + cmpne r7, r2 movhi r1, #1 movls r1, #0 cmp r1, #0 - ldrh r1, [r2, #74] - movne r9, r8 - movne r7, lr + ldrh r1, [ip, #74] + movne r9, fp + movne r7, r2 cmp r3, r0 cmpne r1, #2 - bls .L1803 - ldr r0, [r4, #568] + bls .L1903 + ldr r0, [r4, #1080] mov r1, r3, asl #2 - ldrh r2, [r2, #92] ldrh r1, [r0, r1] - add r2, r2, #4 + ldrh r0, [ip, #92] ubfx r1, r1, #0, #11 - cmp r1, r2 - bgt .L1803 + add r0, r0, #4 + cmp r1, r0 + bgt .L1903 str r1, [sp] - mov r2, lr - ldr r0, .L1820+28 - mov r1, r5 + mov r1, r6 + ldr r0, .L1920+28 + mov r10, fp bl printk - mov r10, r8 -.L1803: - ldrh r2, [r6] +.L1903: + ldrh r2, [r8] cmp r2, #0 - bne .L1804 - add r8, r5, #208 - ldr r1, [r4, #2288] + bne .L1904 + add fp, r6, #208 + ldr r1, [r4, #2804] movw r0, #65535 - mov r3, r8, asl #1 + mov r3, fp, asl #1 ldrh r3, [r1, r3] cmp r3, r0 - beq .L1804 - ldr r0, [fp] + beq .L1904 + ldr r0, .L1920+32 + ldr r0, [r0] tst r0, #4096 - beq .L1805 + beq .L1905 add r1, r1, #688 - ldr r0, .L1820+32 + ldr r0, .L1920+36 ldrh r1, [r1] str r1, [sp] - mov r1, r5 + mov r1, r6 bl printk -.L1805: - ldr r3, [r4, #2288] - mov r8, r8, asl #1 - ldrh r0, [r3, r8] +.L1905: + ldr r3, [r4, #2804] + mov fp, fp, asl #1 + ldrh r0, [r3, fp] bl ftl_free_sblk - ldr r3, [r4, #2288] + ldr r3, [r4, #2804] mvn r2, #0 - strh r2, [r3, r8] @ movhi + strh r2, [r3, fp] @ movhi add r3, r3, #688 ldrh r2, [r3] sub r2, r2, #1 strh r2, [r3] @ movhi -.L1804: - add r5, r5, #1 - add r6, r6, #2 - b .L1800 -.L1819: +.L1904: + add r6, r6, #1 + add r8, r8, #2 + b .L1900 +.L1919: movw r0, #65535 cmp r10, r0 movne r0, r10 @@ -10614,18 +11312,19 @@ pm_free_sblk: add sp, sp, #284 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1821: +.L1921: .align 2 -.L1820: - .word .LANCHOR3-3296 - .word .LANCHOR1+1496 +.L1920: + .word .LANCHOR3 + .word .LANCHOR1+1924 .word .LC0 .word .LANCHOR0 - .word .LANCHOR0+2928 - .word .LANCHOR0+2960 + .word .LANCHOR3-3200 + .word .LANCHOR3-3168 + .word .LANCHOR3-3172 + .word .LC139 .word .LANCHOR2 - .word .LC134 - .word .LC135 + .word .LC140 .fnend .size pm_free_sblk, .-pm_free_sblk .align 2 @@ -10646,49 +11345,49 @@ flash_info_data_init: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1829 + ldr r3, .L1929 stmfd sp!, {r4, lr} .save {r4, lr} ldr r3, [r3] tst r3, #4096 - beq .L1824 - ldr r0, .L1829+4 - mov r1, #105 - ldr r2, .L1829+8 + beq .L1924 + ldr r0, .L1929+4 + mov r1, #119 + ldr r2, .L1929+8 bl printk -.L1824: - ldr r4, .L1829+12 +.L1924: + ldr r4, .L1929+12 mov r1, #0 mov r2, #2048 - ldr r0, [r4, #664] + ldr r0, [r4, #1176] bl ftl_memset - ldr r3, [r4, #664] - ldr r2, .L1829+16 - ldr r1, .L1829+20 + ldr r3, [r4, #1176] + ldr r2, .L1929+16 + ldr r1, .L1929+20 str r2, [r3] mov r3, #2032 - ldr r0, [r4, #664] + ldr r0, [r4, #1176] mov r2, #32 add r0, r0, #80 str r3, [r0, #-72] mov r3, #1 strh r3, [r0, #-64] @ movhi bl ftl_memcpy - ldr r0, [r4, #664] - ldr r1, .L1829+24 + ldr r0, [r4, #1176] + ldr r1, .L1929+24 mov r2, #32 add r0, r0, #48 ldmfd sp!, {r4, lr} b ftl_memcpy -.L1830: +.L1930: .align 2 -.L1829: +.L1929: .word .LANCHOR2 - .word .LC136 - .word .LANCHOR1+1512 + .word .LC141 + .word .LANCHOR1+1940 .word .LANCHOR0 .word 1398362953 - .word .LANCHOR0+591 + .word .LANCHOR0+1103 .word .LANCHOR2+4 .fnend .size flash_info_data_init, .-flash_info_data_init @@ -10701,13 +11400,13 @@ ftl_memcpy32: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mov r3, #0 -.L1832: +.L1932: cmp r3, r2 ldrne ip, [r1, r3, asl #2] strne ip, [r0, r3, asl #2] addne r3, r3, #1 - bne .L1832 -.L1834: + bne .L1932 +.L1934: bx lr .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -10730,15 +11429,15 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1837 + ldr r3, .L1937 ldr r0, [r3] - ldr r3, .L1837+4 - ldr r3, [r3, #-3288] + ldr r3, .L1937+4 + ldr r3, [r3, #-216] rsb r0, r3, r0 b jiffies_to_msecs -.L1838: +.L1938: .align 2 -.L1837: +.L1937: .word jiffies .word .LANCHOR3 .fnend @@ -10759,20 +11458,20 @@ StorageSysDataLoad: mov r1, #0 bl ftl_memset bl rknand_device_lock - ldr r3, .L1841 + ldr r3, .L1941 mov r2, r4 mov r1, #1 mov r0, r5 - ldr r3, [r3, #-3280] + ldr r3, [r3, #-208] ldr r3, [r3, #12] blx r3 mov r4, r0 bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L1842: +.L1942: .align 2 -.L1841: +.L1941: .word .LANCHOR3 .fnend .size StorageSysDataLoad, .-StorageSysDataLoad @@ -10788,20 +11487,20 @@ StorageSysDataStore: mov r4, r1 mov r5, r0 bl rknand_device_lock - ldr r3, .L1845 + ldr r3, .L1945 mov r2, r4 mov r1, #1 mov r0, r5 - ldr r3, [r3, #-3280] + ldr r3, [r3, #-208] ldr r3, [r3, #16] blx r3 mov r4, r0 bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L1846: +.L1946: .align 2 -.L1845: +.L1945: .word .LANCHOR3 .fnend .size StorageSysDataStore, .-StorageSysDataStore @@ -10818,20 +11517,20 @@ FlashBootVendorRead: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L1849 + ldr r3, .L1949 mov r2, r4 mov r1, r5 mov r0, r6 - ldr r3, [r3, #-3280] + ldr r3, [r3, #-208] ldr r3, [r3, #4] blx r3 mov r4, r0 bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1850: +.L1950: .align 2 -.L1849: +.L1949: .word .LANCHOR3 .fnend .size FlashBootVendorRead, .-FlashBootVendorRead @@ -10848,20 +11547,20 @@ FlashBootVendorWrite: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L1853 + ldr r3, .L1953 mov r2, r4 mov r1, r5 mov r0, r6 - ldr r3, [r3, #-3280] + ldr r3, [r3, #-208] ldr r3, [r3, #8] blx r3 mov r4, r0 bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1854: +.L1954: .align 2 -.L1853: +.L1953: .word .LANCHOR3 .fnend .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -10872,13 +11571,13 @@ flash_sram_load_store: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L1859 + ldr ip, .L1959 cmp r2, #0 moveq r2, r3 - ldr ip, [ip, #-3276] + ldr ip, [ip, #-204] add ip, ip, #4096 add r1, ip, r1 - beq .L1858 + beq .L1958 str lr, [sp, #-4]! .save {lr} mov lr, r0 @@ -10886,11 +11585,11 @@ flash_sram_load_store: mov r1, lr ldr lr, [sp], #4 mov r2, r3 -.L1858: +.L1958: b ftl_memcpy -.L1860: +.L1960: .align 2 -.L1859: +.L1959: .word .LANCHOR3 .fnend .size flash_sram_load_store, .-flash_sram_load_store @@ -10915,17 +11614,17 @@ rk_ftl_de_init: stmfd sp!, {r4, lr} .save {r4, lr} mov r1, #0 - ldr r0, .L1864 + ldr r0, .L1964 bl printk - ldr r3, .L1864+4 - ldr r3, [r3, #-3280] + ldr r3, .L1964+4 + ldr r3, [r3, #-208] ldr r3, [r3, #40] ldmfd sp!, {r4, lr} bx r3 @ indirect register sibling call -.L1865: +.L1965: .align 2 -.L1864: - .word .LC137 +.L1964: + .word .LC142 .word .LANCHOR3 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init @@ -10937,14 +11636,14 @@ rk_ftl_cache_write_back: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1867 + ldr r3, .L1967 mov r0, #0 - ldr r3, [r3, #-3280] + ldr r3, [r3, #-208] ldr r3, [r3, #32] bx r3 @ indirect register sibling call -.L1868: +.L1968: .align 2 -.L1867: +.L1967: .word .LANCHOR3 .fnend .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back @@ -10956,13 +11655,13 @@ rk_nand_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1870 - ldr r3, [r3, #-3280] + ldr r3, .L1970 + ldr r3, [r3, #-208] ldr r3, [r3, #44] bx r3 @ indirect register sibling call -.L1871: +.L1971: .align 2 -.L1870: +.L1970: .word .LANCHOR3 .fnend .size rk_nand_suspend, .-rk_nand_suspend @@ -10974,13 +11673,13 @@ rk_nand_resume: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1873 - ldr r3, [r3, #-3280] + ldr r3, .L1973 + ldr r3, [r3, #-208] ldr r3, [r3, #48] bx r3 @ indirect register sibling call -.L1874: +.L1974: .align 2 -.L1873: +.L1973: .word .LANCHOR3 .fnend .size rk_nand_resume, .-rk_nand_resume @@ -10992,14 +11691,14 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1876 + ldr r3, .L1976 mov r0, #0 - ldr r3, [r3, #-3280] + ldr r3, [r3, #-208] ldr r3, [r3, #36] bx r3 -.L1877: +.L1977: .align 2 -.L1876: +.L1976: .word .LANCHOR3 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -11011,13 +11710,13 @@ rk_nandc_get_irq_status: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1879 - ldr r3, [r3, #-3280] + ldr r3, .L1979 + ldr r3, [r3, #-208] ldr r3, [r3, #60] bx r3 -.L1880: +.L1980: .align 2 -.L1879: +.L1979: .word .LANCHOR3 .fnend .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status @@ -11029,13 +11728,13 @@ rknand_proc_ftlread: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1882 - ldr r3, [r3, #-3280] + ldr r3, .L1982 + ldr r3, [r3, #-208] ldr r3, [r3, #64] bx r3 -.L1883: +.L1983: .align 2 -.L1882: +.L1982: .word .LANCHOR3 .fnend .size rknand_proc_ftlread, .-rknand_proc_ftlread @@ -11047,13 +11746,13 @@ FtlRead: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L1885 - ldr ip, [ip, #-3280] + ldr ip, .L1985 + ldr ip, [ip, #-208] ldr ip, [ip, #20] bx ip -.L1886: +.L1986: .align 2 -.L1885: +.L1985: .word .LANCHOR3 .fnend .size FtlRead, .-FtlRead @@ -11065,13 +11764,13 @@ FtlDiscard: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1888 - ldr r3, [r3, #-3280] + ldr r3, .L1988 + ldr r3, [r3, #-208] ldr r3, [r3, #28] bx r3 -.L1889: +.L1989: .align 2 -.L1888: +.L1988: .word .LANCHOR3 .fnend .size FtlDiscard, .-FtlDiscard @@ -11083,13 +11782,13 @@ rk_ftl_garbage_collect: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1891 - ldr r3, [r3, #-3280] + ldr r3, .L1991 + ldr r3, [r3, #-208] ldr r3, [r3, #52] bx r3 -.L1892: +.L1992: .align 2 -.L1891: +.L1991: .word .LANCHOR3 .fnend .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect @@ -11101,13 +11800,13 @@ ReadFlashInfo: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1894 - ldr r3, [r3, #-3280] + ldr r3, .L1994 + ldr r3, [r3, #-208] ldr r3, [r3, #56] bx r3 @ indirect register sibling call -.L1895: +.L1995: .align 2 -.L1894: +.L1994: .word .LANCHOR3 .fnend .size ReadFlashInfo, .-ReadFlashInfo @@ -11126,7 +11825,7 @@ rknand_print_hex: str r2, [sp] str r1, [sp, #4] mov r2, #0 - ldr r0, .L1898 + ldr r0, .L1998 mov r1, ip str r2, [sp, #12] str r3, [sp, #8] @@ -11135,10 +11834,10 @@ rknand_print_hex: add sp, sp, #20 @ sp needed ldr pc, [sp], #4 -.L1899: +.L1999: .align 2 -.L1898: - .word .LC138 +.L1998: + .word .LC143 .fnend .size rknand_print_hex, .-rknand_print_hex .align 2 @@ -11151,13 +11850,13 @@ hynix_get_read_retry_default: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} cmp r0, #2 - ldr r8, .L2011 + ldr r8, .L2111 .pad #36 sub sp, sp, #36 mvn r7, #81 mvn r6, #80 mov r5, r0 - ldr r4, [r8, #664] + ldr r4, [r8, #1176] add r3, r4, #128 str r3, [sp] strb r0, [r4, #112] @@ -11167,29 +11866,29 @@ hynix_get_read_retry_default: mvn r3, #82 strb r6, [r4, #131] strb r3, [r4, #129] - bne .L1901 + bne .L2001 mvn r3, #88 strb r3, [r4, #128] - ldr r3, .L2011+4 + ldr r3, .L2111+4 mvn r1, #8 mov r6, #7 strb r1, [r3, #413] - b .L1962 -.L1901: + b .L2062 +.L2001: cmp r0, #3 - bne .L1903 + bne .L2003 add r1, r4, #127 mov r3, #176 -.L1904: +.L2004: strb r3, [r1, #1]! add r3, r3, #1 uxtb r3, r3 cmp r3, #184 - bne .L1904 - b .L2005 -.L1903: + bne .L2004 + b .L2105 +.L2003: cmp r0, #4 - bne .L1905 + bne .L2005 mvn r1, #51 strb r3, [r4, #133] strb r1, [r4, #128] @@ -11203,13 +11902,13 @@ hynix_get_read_retry_default: strb r1, [r4, #131] mvn r1, #50 strb r1, [r4, #132] -.L2005: +.L2105: mov r6, #8 mov fp, r6 - b .L1902 -.L1905: + b .L2002 +.L2005: cmp r0, #5 - bne .L1906 + bne .L2006 mov r3, #56 mov r6, #8 strb r3, [r4, #128] @@ -11219,10 +11918,10 @@ hynix_get_read_retry_default: strb r3, [r4, #130] mov r3, #59 strb r3, [r4, #131] - b .L1962 -.L1906: + b .L2062 +.L2006: cmp r0, #6 - bne .L1907 + bne .L2007 mov r3, #14 mov r6, #12 strb r3, [r4, #128] @@ -11232,29 +11931,29 @@ hynix_get_read_retry_default: strb r3, [r4, #130] mov r3, #17 strb r3, [r4, #131] - b .L1962 -.L1907: + b .L2062 +.L2007: cmp r0, #7 - bne .L1908 + bne .L2008 add r1, r4, #127 mov r3, #176 -.L1909: +.L2009: strb r3, [r1, #1]! add r3, r3, #1 uxtb r3, r3 cmp r3, #184 - bne .L1909 + bne .L2009 mvn r3, #43 mov r6, #12 strb r3, [r4, #136] mov fp, #10 mvn r3, #42 strb r3, [r4, #137] - b .L1902 -.L1908: + b .L2002 +.L2008: cmp r0, #8 mov r6, #7 - bne .L1962 + bne .L2062 mov r3, #6 strb r6, [r4, #129] strb r3, [r4, #128] @@ -11265,26 +11964,26 @@ hynix_get_read_retry_default: mov fp, #5 mov r3, #10 strb r3, [r4, #132] - b .L1902 -.L1962: + b .L2002 +.L2062: mov fp, #4 -.L1902: +.L2002: sub r3, r5, #1 cmp r3, #1 - bhi .L2001 - ldr r1, .L2011+8 + bhi .L2101 + ldr r1, .L2111+8 mov r9, #0 -.L1910: - ldrb ip, [r8, #589] @ zero_extendqisi2 +.L2010: + ldrb ip, [r8, #1101] @ zero_extendqisi2 uxtb r3, r9 - ldr r0, .L2011 + ldr r0, .L2111 cmp ip, r3 - bls .L1917 + bls .L2017 add r3, r0, r3 mov r5, #160 - ldr r0, [r0, #528] + ldr r0, [r0, #1040] sub r10, fp, #1 - ldrb r7, [r3, #668] @ zero_extendqisi2 + ldrb r7, [r3, #1180] @ zero_extendqisi2 add r2, r4, #127 ldr ip, [sp] mla r5, r5, r7, r4 @@ -11293,7 +11992,7 @@ hynix_get_read_retry_default: mov ip, #55 add r5, r5, #144 sub r3, r5, #1 -.L1912: +.L2012: str ip, [r7, #2056] ldrb r0, [r2, #1]! @ zero_extendqisi2 str r1, [sp, #16] @@ -11311,24 +12010,24 @@ hynix_get_read_retry_default: ldr ip, [sp, #8] ldr r1, [sp, #16] strb r0, [r3, #1]! - bne .L1912 + bne .L2012 mov ip, r5 mov r0, #0 -.L1913: +.L2013: add r7, r1, r0 mov r3, #1 -.L1914: +.L2014: ldrb lr, [r7, r3, asl #2] @ zero_extendqisi2 ldrb r10, [ip] @ zero_extendqisi2 add lr, lr, r10 strb lr, [ip, r3, asl #3] add r3, r3, #1 cmp r3, #7 - bne .L1914 + bne .L2014 add r0, r0, #1 add ip, ip, #1 cmp r0, #4 - bne .L1913 + bne .L2013 mov r3, #0 add r9, r9, #1 strb r3, [r5, #16] @@ -11338,11 +12037,11 @@ hynix_get_read_retry_default: strb r3, [r5, #48] strb r3, [r5, #41] strb r3, [r5, #49] - b .L1910 -.L2001: + b .L2010 +.L2101: sub r3, r5, #3 cmp r3, #5 - bhi .L1917 + bhi .L2017 smulbb r2, fp, r6 mov r3, r2, asl #4 mov r2, r2, asr #1 @@ -11350,25 +12049,25 @@ hynix_get_read_retry_default: mov r3, r2, asl #1 str r3, [sp, #8] mov r3, #0 -.L2009: +.L2109: str r3, [sp, #12] - ldr r3, .L2011 - ldrb r2, [r3, #589] @ zero_extendqisi2 + ldr r3, .L2111 + ldrb r2, [r3, #1101] @ zero_extendqisi2 ldrb r3, [sp, #12] @ zero_extendqisi2 cmp r2, r3 - bhi .L1961 -.L1917: + bhi .L2061 +.L2017: strb fp, [r4, #113] strb r6, [r4, #114] add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1961: - ldr r2, .L2011 +.L2061: + ldr r2, .L2111 mov r10, #160 mov r9, #255 add r3, r2, r3 - ldrb r3, [r3, #668] @ zero_extendqisi2 + ldrb r3, [r3, #1180] @ zero_extendqisi2 mov r0, r3 str r3, [sp] bl zftl_flash_exit_slc_mode @@ -11376,8 +12075,8 @@ hynix_get_read_retry_default: mla r10, r10, r3, r4 add r3, r10, #144 str r3, [sp, #24] - ldr r3, .L2011 - ldr r3, [r3, #528] + ldr r3, .L2111 + ldr r3, [r3, #1040] str r3, [sp, #4] ldr r3, [sp] mov r8, r3, asl #8 @@ -11386,7 +12085,7 @@ hynix_get_read_retry_default: str r9, [r7, #2056] bl nandc_wait_flash_ready cmp r5, #8 - bne .L1919 + bne .L2019 add r3, r4, #144 mov r2, #23 mov r1, #25 @@ -11410,8 +12109,8 @@ hynix_get_read_retry_default: str r1, [r7, #2052] str r2, [r7, #2052] str r3, [r7, #2052] - b .L1920 -.L1919: + b .L2020 +.L2019: cmp r5, #4 mov r3, #54 str r3, [r7, #2056] @@ -11419,27 +12118,27 @@ hynix_get_read_retry_default: streq r9, [r7, #2052] streq r3, [r7, #2048] moveq r3, #204 - beq .L2006 -.L1921: + beq .L2106 +.L2021: sub r3, r5, #5 cmp r3, #1 ldrlsb r3, [r4, #128] @ zero_extendqisi2 strls r3, [r7, #2052] movls r3, #82 - bls .L2007 + bls .L2107 cmp r5, #7 - bne .L1922 + bne .L2022 mov r3, #174 str r3, [r7, #2052] mov r3, #0 str r3, [r7, #2048] mov r3, #176 -.L2006: +.L2106: str r3, [r7, #2052] mov r3, #77 -.L2007: +.L2107: str r3, [r7, #2048] -.L1922: +.L2022: ldr r3, [sp, #4] cmp r5, #6 add r8, r3, r8 @@ -11461,7 +12160,7 @@ hynix_get_read_retry_default: str r3, [r8, #2052] mov r3, #0 str r3, [r8, #2052] -.L1920: +.L2020: ldmia sp, {r2, r3} sub r10, r5, #8 sub r8, r5, #5 @@ -11477,134 +12176,134 @@ hynix_get_read_retry_default: str r3, [sp, #16] orrs r3, r3, r10 movne ip, #16 - bne .L1926 + bne .L2026 cmp r5, #7 movne ip, #2 moveq ip, #32 -.L1926: - ldr r3, .L2011+12 +.L2026: + ldr r3, .L2111+12 ldmia sp, {r1, r2} - ldr r3, [r3, #-3272] + ldr r3, [r3, #-200] add r1, r2, r1, asl #8 mov r0, r3 -.L1927: +.L2027: ldr r2, [r1, #2048] strb r2, [r0], #1 rsb r2, r3, r0 uxtb r2, r2 cmp r2, ip - bcc .L1927 + bcc .L2027 cmp r10, #0 - beq .L1928 + beq .L2028 mov r2, #0 -.L1930: +.L2030: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #50 - beq .L1929 + beq .L2029 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #5 - beq .L1929 + beq .L2029 add r2, r2, #1 cmp r2, #8 - bne .L1930 - b .L1931 -.L1929: + bne .L2030 + b .L2031 +.L2029: cmp r0, #7 - bne .L1932 -.L1931: - ldr r0, .L2011+16 + bne .L2032 +.L2031: + ldr r0, .L2111+16 mov r1, #0 bl printk -.L1933: - b .L1933 -.L1928: +.L2033: + b .L2033 +.L2028: cmp r5, #7 - bne .L1934 + bne .L2034 mov r2, r10 -.L1936: +.L2036: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #12 - beq .L1935 + beq .L2035 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #10 - beq .L1935 + beq .L2035 add r2, r2, #1 cmp r2, #8 - bne .L1936 - b .L1937 -.L1935: + bne .L2036 + b .L2037 +.L2035: cmp r0, #7 - bne .L1932 -.L1937: - ldr r0, .L2011+16 + bne .L2032 +.L2037: + ldr r0, .L2111+16 mov r1, #0 bl printk -.L1938: - b .L1938 -.L1934: +.L2038: + b .L2038 +.L2034: cmp r5, #6 - bne .L1932 + bne .L2032 sub r2, r3, #1 add r3, r3, #7 -.L1939: +.L2039: ldrb r0, [r2, #1]! @ zero_extendqisi2 cmp r0, #12 - beq .L1932 + beq .L2032 ldrb r0, [r2, #8] @ zero_extendqisi2 cmp r0, #4 - beq .L1932 + beq .L2032 cmp r2, r3 - bne .L1939 - ldr r0, .L2011+16 + bne .L2039 + ldr r0, .L2111+16 mov r1, #0 bl printk -.L1941: - b .L1941 -.L1932: - ldr r3, .L2011+12 +.L2041: + b .L2041 +.L2032: + ldr r3, .L2111+12 ldr r0, [sp, #28] - ldr r2, [r3, #-3272] + ldr r2, [r3, #-200] add r0, r2, r0 mov r3, r2 -.L1942: +.L2042: cmp r3, r0 ldrne ip, [r1, #2048] strneb ip, [r3], #1 - bne .L1942 -.L2010: - ldr r3, .L2011+12 + bne .L2042 +.L2110: + ldr r3, .L2111+12 mov r0, #8 ldr r1, [sp, #8] - ldr r3, [r3, #-3272] + ldr r3, [r3, #-200] add r1, r3, r1 str r1, [sp, #20] -.L1945: +.L2045: ldr ip, [sp, #8] add lr, r1, ip -.L1944: +.L2044: ldrh ip, [r1] mvn ip, ip strh ip, [r1], #2 @ movhi cmp r1, lr - bne .L1944 + bne .L2044 ldr ip, [sp, #8] subs r0, r0, #1 add r1, r1, ip - bne .L1945 -.L1946: + bne .L2045 +.L2046: mov ip, #0 mov r0, ip -.L1949: +.L2049: mov r1, #1 mov lr, #0 mov r1, r1, asl r0 mov r8, #16 mov r7, lr -.L1947: +.L2047: ldrh r9, [r3, lr] and r9, r9, r1 cmp r9, r1 @@ -11612,70 +12311,70 @@ hynix_get_read_retry_default: ldr r9, [sp, #8] subs r8, r8, #1 add lr, lr, r9 - bne .L1947 + bne .L2047 cmp r7, #8 add r0, r0, #1 orrhi ip, ip, r1 uxthhi ip, ip cmp r0, #16 - bne .L1949 + bne .L2049 ldr r1, [sp, #20] strh ip, [r3], #2 @ movhi cmp r3, r1 - bne .L1946 - ldr r3, .L2011+12 - ldr r1, [r3, #-3272] + bne .L2046 + ldr r3, .L2111+12 + ldr r1, [r3, #-200] mov r3, #0 sub r0, r1, #4 add ip, r1, #28 -.L1951: +.L2051: ldr lr, [r0, #4]! cmp lr, #0 addeq r3, r3, #1 cmp r0, ip - bne .L1951 + bne .L2051 cmp r3, #7 - ble .L1952 - ldr r0, .L2011+20 + ble .L2052 + ldr r0, .L2111+20 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L2011+16 + ldr r0, .L2111+16 mov r1, #0 bl printk -.L1953: - b .L1953 -.L1952: +.L2053: + b .L2053 +.L2052: cmp r5, #6 moveq r0, #4 - beq .L1954 + beq .L2054 cmp r5, #7 moveq r0, #10 - beq .L1954 + beq .L2054 cmp r10, #0 moveq r0, #8 movne r0, #5 -.L1954: +.L2054: sub r9, fp, #1 ldr r1, [sp, #24] mov ip, #0 uxtb r9, r9 add r9, r9, #1 -.L1955: +.L2055: mov r7, r1 mov r3, r2 -.L1956: +.L2056: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [r7], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, fp - bcc .L1956 + bcc .L2056 add ip, ip, #1 add r2, r2, r9 cmp ip, r6 add r1, r1, r0 - blt .L1955 + blt .L2055 ldmia sp, {r2, r3} mov r8, #255 add r7, r3, r2, asl #8 @@ -11683,7 +12382,7 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready ldr r3, [sp, #16] cmp r3, #0 - beq .L1958 + beq .L2058 mov r3, #54 str r3, [r7, #2056] ldrb r3, [r4, #128] @ zero_extendqisi2 @@ -11699,26 +12398,26 @@ hynix_get_read_retry_default: str r8, [r7, #2052] str r8, [r7, #2052] str r8, [r7, #2052] - b .L2008 -.L1958: + b .L2108 +.L2058: cmp r10, #0 movne r3, #190 moveq r3, #56 -.L2008: +.L2108: str r3, [r7, #2056] bl nandc_wait_flash_ready ldr r3, [sp, #12] add r3, r3, #1 - b .L2009 -.L2012: + b .L2109 +.L2112: .align 2 -.L2011: +.L2111: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2+396 .word .LANCHOR3 - .word .LC139 - .word .LC140 + .word .LC144 + .word .LC145 .fnend .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 @@ -11729,15 +12428,15 @@ flash_get_read_retry_tbl: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2015 + ldr r3, .L2115 ldrb r0, [r3, #23] @ zero_extendqisi2 sub r3, r0, #1 cmp r3, #7 bxhi lr b hynix_get_read_retry_default -.L2016: +.L2116: .align 2 -.L2015: +.L2115: .word .LANCHOR2 .fnend .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -11748,18 +12447,18 @@ nandc_xfer_done: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2066 + ldr r3, .L2166 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} .pad #12 mov r5, #0 - ldrb r2, [r3, #516] @ zero_extendqisi2 + ldrb r2, [r3, #1028] @ zero_extendqisi2 mov r4, r3 - ldr r7, .L2066+4 + ldr r7, .L2166+4 cmp r2, #9 - strb r5, [r7, #-3268] - bne .L2018 - ldr r6, [r3, #528] + strb r5, [r7, #-196] + bne .L2118 + ldr r6, [r3, #1040] ldr r3, [r6, #16] str r3, [sp] ldr r3, [r6, #48] @@ -11767,251 +12466,246 @@ nandc_xfer_done: cmp r3, r5 moveq r5, r3 moveq r7, r4 - beq .L2020 -.L2019: + beq .L2120 +.L2119: ldr r2, [r6, #64] ldr r3, [sp] ubfx r2, r2, #16, #6 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L2022 - ldr r3, [r4, #528] + bge .L2122 + ldr r3, [r4, #1040] ldr r3, [r3] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L2021 + beq .L2121 ldr r3, [sp, #4] tst r3, #131072 - beq .L2021 + beq .L2121 ldr r1, [sp, #4] - ldr r0, .L2066+8 + ldr r0, .L2166+8 ubfx r1, r1, #17, #1 bl printk - b .L2022 -.L2021: + b .L2122 +.L2121: ldr r3, [sp] add r5, r5, #1 ubfx r3, r3, #22, #6 cmp r5, r3, asl #12 - bne .L2023 + bne .L2123 ldr r2, [r6, #64] mov r1, r5 ldr r3, [sp] + ldr r0, .L2166+12 ubfx r2, r2, #16, #5 - ldr r0, .L2066+12 ubfx r3, r3, #22, #6 bl printk - mov r3, #64 - ldr r0, .L2066+16 - mov r2, #4 - ldr r1, [r4, #528] - bl rknand_print_hex ldr r3, [sp, #4] tst r3, #8192 mov r3, #1 - strb r3, [r7, #-3268] - bne .L2022 - ldr r3, .L2066+20 - ldr r0, .L2066+24 + strb r3, [r7, #-196] + bne .L2122 + ldr r3, .L2166+16 + ldr r0, .L2166+20 ldr r3, [r3, #4] blx r3 - b .L2022 -.L2023: + b .L2122 +.L2123: mov r0, #5 mov r1, #10 bl usleep_range - b .L2019 -.L2022: - ldr r3, [r4, #648] - ldr r5, .L2066 + b .L2119 +.L2122: + ldr r3, [r4, #1160] + ldr r5, .L2166 cmp r3, #0 - beq .L2027 + beq .L2127 ldr r1, [sp] mov r2, #0 - ldr r0, [r5, #640] + ldr r0, [r5, #1152] ubfx r1, r1, #22, #6 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r5, #644] + ldr r0, [r5, #1156] ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #2 - b .L2065 -.L2029: - ldr r3, [r4, #528] + b .L2165 +.L2129: + ldr r3, [r4, #1040] add r5, r5, #1 ldr r3, [r3, #16] str r3, [sp] bic r3, r5, #-16777216 cmp r3, #0 - bne .L2028 + bne .L2128 ldr r2, [sp] mov r1, r5 ldr r3, [r6, #64] - ldr r0, .L2066+28 + ldr r0, .L2166+24 ubfx r3, r3, #16, #6 bl printk - ldr r0, .L2066+16 - ldr r1, [r7, #528] + ldr r0, .L2166+28 + ldr r1, [r7, #1040] mov r2, #4 mov r3, #64 bl rknand_print_hex -.L2028: +.L2128: mov r0, #5 mov r1, #10 bl usleep_range -.L2020: +.L2120: ldr r3, [sp] tst r3, #1048576 - beq .L2029 - ldr r3, [r4, #648] - ldr r5, .L2066 + beq .L2129 + ldr r3, [r4, #1160] + ldr r5, .L2166 cmp r3, #0 - beq .L2027 + beq .L2127 ldr r1, [sp] mov r2, #1 - ldr r0, [r5, #640] + ldr r0, [r5, #1152] ubfx r1, r1, #22, #6 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r5, #644] + ldr r0, [r5, #1156] ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #2 - b .L2064 -.L2018: - ldr r7, [r3, #528] + b .L2164 +.L2118: + ldr r7, [r3, #1040] ldr r3, [r7, #8] str r3, [sp] ldr r6, [r7, #16] ubfx r6, r6, #1, #1 cmp r6, #0 moveq r5, r4 - beq .L2032 -.L2031: + beq .L2132 +.L2131: ldr r2, [r7, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L2034 - ldr r3, [r4, #528] + bge .L2134 + ldr r3, [r4, #1040] ldr r3, [r3] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L2033 + beq .L2133 ldr r3, [sp, #4] tst r3, #131072 - beq .L2033 + beq .L2133 ldr r1, [sp, #4] - ldr r0, .L2066+32 + ldr r0, .L2166+32 bl printk - b .L2034 -.L2033: + b .L2134 +.L2133: add r5, r5, #1 bic r3, r5, #-16777216 cmp r3, #0 - bne .L2035 + bne .L2135 ldr r2, [r7, #28] mov r1, r5 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L2066+12 + ldr r0, .L2166+12 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L2066+16 - ldr r1, [r4, #528] + ldr r0, .L2166+28 + ldr r1, [r4, #1040] mov r2, #4 mov r3, #64 bl rknand_print_hex -.L2035: +.L2135: mov r0, #5 mov r1, #10 bl usleep_range - b .L2031 -.L2034: - ldr r3, [r4, #648] - ldr r5, .L2066 + b .L2131 +.L2134: + ldr r3, [r4, #1160] + ldr r5, .L2166 cmp r3, #0 - beq .L2027 + beq .L2127 ldr r1, [sp] mov r2, #0 - ldr r0, [r5, #640] + ldr r0, [r5, #1152] ubfx r1, r1, #22, #6 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r5, #644] + ldr r0, [r5, #1156] ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #7 -.L2065: +.L2165: mov r2, #0 - b .L2063 -.L2038: - ldr r3, [r4, #528] + b .L2163 +.L2138: + ldr r3, [r4, #1040] add r6, r6, #1 ldr r3, [r3, #8] str r3, [sp] bic r3, r6, #-16777216 cmp r3, #0 - bne .L2037 + bne .L2137 ldr r2, [sp] mov r1, r6 ldr r3, [r7, #28] - ldr r0, .L2066+28 + ldr r0, .L2166+24 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L2066+16 - ldr r1, [r5, #528] + ldr r0, .L2166+28 + ldr r1, [r5, #1040] mov r2, #4 mov r3, #64 bl rknand_print_hex -.L2037: +.L2137: mov r0, #5 mov r1, #10 bl usleep_range -.L2032: +.L2132: ldr r3, [sp] tst r3, #1048576 - beq .L2038 - ldr r3, [r4, #648] - ldr r5, .L2066 + beq .L2138 + ldr r3, [r4, #1160] + ldr r5, .L2166 cmp r3, #0 - beq .L2027 + beq .L2127 ldr r1, [sp] mov r2, #1 - ldr r0, [r5, #640] + ldr r0, [r5, #1152] ubfx r1, r1, #22, #6 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r5, #644] + ldr r0, [r5, #1156] ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #7 -.L2064: +.L2164: mov r2, #1 -.L2063: +.L2163: bl rknand_dma_unmap_single -.L2027: +.L2127: mov r3, #0 - str r3, [r4, #648] + str r3, [r4, #1160] add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2067: +.L2167: .align 2 -.L2066: +.L2166: .word .LANCHOR0 .word .LANCHOR3 - .word .LC141 - .word .LC142 - .word .LC143 + .word .LC146 + .word .LC147 .word arm_delay_ops .word 2147483000 - .word .LC144 - .word .LC145 + .word .LC148 + .word .LC149 + .word .LC150 .fnend .size nandc_xfer_done, .-nandc_xfer_done .align 2 @@ -12037,19 +12731,19 @@ nandc_xfer: bl nandc_xfer_done cmp r4, #0 movne r0, #0 - bne .L2098 - ldr r5, .L2111 - ldrb r3, [r5, #516] @ zero_extendqisi2 + bne .L2198 + ldr r5, .L2211 + ldrb r3, [r5, #1028] @ zero_extendqisi2 cmp r3, #9 - bne .L2070 - ldr ip, [r5, #528] + bne .L2170 + ldr ip, [r5, #1040] mov r2, r8, lsr #2 mov r1, #1 mov lr, r4 mov r0, r4 -.L2071: +.L2171: cmp lr, r2 - bcs .L2108 + bcs .L2208 add r3, lr, #84 ldr r3, [ip, r3, asl #2] str r3, [sp, #4] @@ -12060,10 +12754,10 @@ nandc_xfer: ldr r3, [sp, #4] and r1, r1, r4 tst r3, #4 - bne .L2090 + bne .L2190 ldr r3, [sp, #4] tst r3, #262144 - bne .L2090 + bne .L2190 ldr r4, [sp, #4] ldr r3, [sp, #4] ubfx r4, r4, #3, #7 @@ -12074,55 +12768,55 @@ nandc_xfer: ubfxle r3, r3, #19, #7 cmp r0, r3 movcc r0, r3 - b .L2072 -.L2090: + b .L2172 +.L2190: mvn r0, #0 -.L2072: +.L2172: add lr, lr, #1 - b .L2071 -.L2108: - ldr r3, [r5, #528] + b .L2171 +.L2208: + ldr r3, [r5, #1040] cmp r1, #0 movne r0, #512 ldr r4, [r3] and r3, r4, #139264 cmp r3, #139264 - bne .L2077 + bne .L2177 mov r1, r4 - ldr r0, .L2111+4 + ldr r0, .L2211+4 bl printk - ldr r3, [r5, #528] + ldr r3, [r5, #1040] mvn r0, #0 orr r4, r4, #131072 str r4, [r3] -.L2077: +.L2177: tst r4, #8192 - beq .L2078 - ldr r3, .L2111+8 - ldrb r3, [r3, #-3268] @ zero_extendqisi2 + beq .L2178 + ldr r3, .L2211+8 + ldrb r3, [r3, #-196] @ zero_extendqisi2 cmp r3, #0 - beq .L2078 - ldr r0, .L2111+12 + beq .L2178 + ldr r0, .L2211+12 mov r1, r4 bl printk - ldr r3, [r5, #528] + ldr r3, [r5, #1040] mov r2, #1 str r2, [r3, #16] - b .L2079 -.L2070: - ldrb r3, [r5, #660] @ zero_extendqisi2 + b .L2179 +.L2170: + ldrb r3, [r5, #1172] @ zero_extendqisi2 mov r1, r8, lsr #1 mov r2, r4 cmp r3, #25 mov r3, r7 movcc ip, #64 movcs ip, #128 -.L2081: +.L2181: cmp r2, r1 add r0, r4, ip add r3, r3, #4 - bcs .L2109 - ldr lr, [r5, #628] + bcs .L2209 + ldr lr, [r5, #1140] mov r4, r4, lsr #2 add r2, r2, #1 ldr r4, [lr, r4, asl #2] @@ -12134,24 +12828,24 @@ nandc_xfer: strb lr, [r3, #-2] strb r4, [r3, #-1] mov r4, r0 - b .L2081 -.L2109: - ldr ip, [r5, #528] + b .L2181 +.L2209: + ldr ip, [r5, #1040] mov r1, #0 mov r2, r8, lsr #2 mov r0, r1 -.L2083: +.L2183: cmp r1, r2 - bcs .L2110 + bcs .L2210 add r3, r1, #8 ldr r3, [ip, r3, asl #2] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #4 - bne .L2093 + bne .L2193 ldr r3, [sp, #4] tst r3, #32768 - bne .L2093 + bne .L2193 ldr lr, [sp, #4] ldr r8, [sp, #4] ldr r3, [sp, #4] @@ -12173,55 +12867,55 @@ nandc_xfer: orr r4, r3, r4, asl #5 cmp r0, r4 movcc r0, r4 - b .L2084 -.L2093: + b .L2184 +.L2193: mvn r0, #0 -.L2084: +.L2184: add r1, r1, #1 - b .L2083 -.L2110: - ldr r3, [r5, #528] + b .L2183 +.L2210: + ldr r3, [r5, #1040] mov r2, #0 str r2, [r3, #16] ldr r4, [r3] and r3, r4, #139264 cmp r3, #139264 - bne .L2078 + bne .L2178 mov r1, r4 - ldr r0, .L2111+16 + ldr r0, .L2211+16 bl printk - ldr r3, .L2111 + ldr r3, .L2211 orr r4, r4, #131072 - ldr r3, [r3, #528] + ldr r3, [r3, #1040] str r4, [r3] - b .L2079 -.L2078: + b .L2179 +.L2178: cmn r0, #1 - beq .L2098 + beq .L2198 ldr r3, [r7] cmn r3, #1 - bne .L2098 + bne .L2198 ldr r3, [r7, #4] cmn r3, #1 - bne .L2098 + bne .L2198 ldr r3, [r6] cmn r3, #1 moveq r0, #512 - b .L2098 -.L2079: + b .L2198 +.L2179: mvn r0, #0 -.L2098: +.L2198: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2112: +.L2212: .align 2 -.L2111: +.L2211: .word .LANCHOR0 - .word .LC146 + .word .LC151 .word .LANCHOR3 - .word .LC147 - .word .LC148 + .word .LC152 + .word .LC153 .fnend .size nandc_xfer, .-nandc_xfer .align 2 @@ -12233,99 +12927,108 @@ flash_read_page: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov fp, r3 - ldr r7, .L2128 - mvn r4, #0 + mov r6, r0 + ldr r10, .L2229 .pad #20 sub sp, sp, #20 - mov r5, r0 - mov ip, r1 - ubfx r8, r1, #24, #2 - ldrb r3, [r7, #676] @ zero_extendqisi2 + mvn r4, #0 + ubfx r9, r1, #24, #2 str r2, [sp, #12] - rsb r3, r3, #24 - ldr r6, [r7, #528] - bic r4, r1, r4, asl r3 - ldr r3, .L2128+4 - ldr r3, [r3] - tst r3, #16 - beq .L2114 - ldr r0, .L2128+8 - mov r1, r5 - mov r2, r8 - mov r3, ip - bl printk -.L2114: + mov r8, r3 + ldrb r0, [r10, #1189] @ zero_extendqisi2 + mov r7, r10 + ldr r5, [r10, #1040] + mov r10, r6, asl #8 + rsb r0, r0, #24 + bic r4, r1, r4, asl r0 bl nandc_wait_flash_ready - mov r0, r5 + mov r0, r6 bl nandc_cs - cmp r8, #0 - mov r9, r5, asl #8 - bne .L2115 - mov r0, r5 + cmp r9, #0 + bne .L2214 + mov r0, r6 bl zftl_flash_enter_slc_mode - b .L2116 -.L2115: - ldr r3, [r7, #584] - ldrb r3, [r3, #12] @ zero_extendqisi2 - cmp r3, #3 - bne .L2117 - ldr r3, .L2128 - ldrb r3, [r3, #684] @ zero_extendqisi2 - cmp r3, #0 - addeq r3, r6, r9 - streq r8, [r3, #2056] - beq .L2116 -.L2117: - mov r0, r5 + b .L2215 +.L2214: + ldr r2, [r7, #1096] + ldrb r2, [r2, #12] @ zero_extendqisi2 + cmp r2, #3 + bne .L2216 + ldrb r2, [r7, #1196] @ zero_extendqisi2 + cmp r2, #0 + bne .L2216 + ldrb r2, [r7, #1197] @ zero_extendqisi2 + cmp r2, #0 + addeq r2, r5, r10 + streq r9, [r2, #2056] + beq .L2215 +.L2216: + mov r0, r6 bl zftl_flash_exit_slc_mode -.L2116: - add r10, r6, r9 - mov r2, #0 - str r2, [r10, #2056] - str r2, [r10, #2052] - str r2, [r10, #2052] - uxtb r2, r4 - str r2, [r10, #2052] - mov r2, r4, lsr #8 - str r2, [r10, #2052] - mov r2, r4, lsr #16 - str r2, [r10, #2052] - mov r2, #48 - str r2, [r10, #2056] - ldr r2, [r7, #584] +.L2215: + ldr r2, [r7, #1096] + ldrb r1, [r2, #7] @ zero_extendqisi2 + cmp r1, #1 + bne .L2217 ldrb r1, [r2, #12] @ zero_extendqisi2 - adds r2, r8, #0 + cmp r1, #2 + addeq r1, r5, r10 + moveq r0, #38 + streq r0, [r1, #2056] +.L2217: + add fp, r5, r10 + mov r1, #0 + mov r0, #48 + str r1, [fp, #2056] + str r1, [fp, #2052] + str r1, [fp, #2052] + uxtb r1, r4 + str r1, [fp, #2052] + mov r1, r4, lsr #8 + str r1, [fp, #2052] + mov r1, r4, lsr #16 + str r1, [fp, #2052] + ldrb r1, [r7, #1188] @ zero_extendqisi2 + cmp r1, #0 + movne r1, r4, lsr #24 + strne r1, [fp, #2052] + add r1, r5, r10 + str r0, [r1, #2056] + ldrb r1, [r2, #12] @ zero_extendqisi2 + adds r2, r9, #0 movne r2, #1 cmp r1, #3 movne r2, #0 cmp r2, #0 - beq .L2118 - ldr r2, .L2128 - ldrb r2, [r2, #684] @ zero_extendqisi2 - cmp r2, #0 + beq .L2219 + ldrb r3, [r7, #1196] @ zero_extendqisi2 + cmp r3, #0 + bne .L2219 + ldr r3, .L2229 + ldrb r3, [r3, #1197] @ zero_extendqisi2 + cmp r3, #0 addeq r4, r4, r4, asl #1 subeq r0, r4, #1 - addeq r0, r0, r8 - beq .L2127 -.L2118: + addeq r0, r0, r9 + beq .L2228 +.L2219: mov r0, r4 -.L2127: +.L2228: bl nandc_set_seed - add r6, r6, r9 - bl nandc_wait_flash_ready mov r4, #0 + bl nandc_wait_flash_ready + add r3, r5, r10 mov r1, r4 mov r2, #5 - mov r3, #224 - str r2, [r6, #2056] - mov r0, r5 - str r4, [r10, #2052] - str r4, [r10, #2052] - str r3, [r6, #2056] + mov r0, r6 + str r2, [r3, #2056] + str r4, [fp, #2052] + mov r2, #224 + str r4, [fp, #2052] + str r2, [r3, #2056] ldrb r2, [sp, #56] @ zero_extendqisi2 ldr r3, [sp, #12] - str fp, [sp] + str r8, [sp] bl nandc_xfer mov r5, r0 mov r0, r4 @@ -12334,12 +13037,10 @@ flash_read_page: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2129: +.L2230: .align 2 -.L2128: +.L2229: .word .LANCHOR0 - .word .LANCHOR2 - .word .LC149 .fnend .size flash_read_page, .-flash_read_page .align 2 @@ -12353,83 +13054,87 @@ micron_read_retrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldr r4, .L2158 - mov r6, r0 + ldr r4, .L2259 + mov r5, r0 str r3, [sp, #24] mov r9, r1 str r2, [sp, #20] mov r8, #0 - ldrb r3, [r4, #660] @ zero_extendqisi2 - ldr r10, .L2158+4 + ldrb r3, [r4, #1172] @ zero_extendqisi2 + ldr r10, .L2259+4 add r3, r3, r3, asl #1 mov r3, r3, asr #2 str r3, [sp, #12] bl nandc_wait_flash_ready - ldr r3, [r4, #528] + mov r0, r5 + bl zftl_flash_enter_slc_mode + mov r0, r5 + bl zftl_flash_exit_slc_mode + ldr r3, [r4, #1040] str r3, [sp, #16] -.L2131: +.L2232: ldr r3, [sp, #16] mov r7, #0 mvn r4, #0 - add r5, r3, r6, asl #8 -.L2132: - ldrb r3, [r10, #-3260] @ zero_extendqisi2 + add r6, r3, r5, asl #8 +.L2233: + ldrb r3, [r10, #-188] @ zero_extendqisi2 cmp r7, r3 - bcs .L2136 + bcs .L2237 mov r3, #239 mov r0, #200 - str r3, [r5, #2056] + str r3, [r6, #2056] mov r3, #137 - str r3, [r5, #2052] + str r3, [r6, #2052] add fp, r7, #1 bl timer_delay_ns - str fp, [r5, #2048] + str fp, [r6, #2048] mov r3, #0 - str r3, [r5, #2048] - str r3, [r5, #2048] - mov r0, r6 - str r3, [r5, #2048] + str r3, [r6, #2048] + str r3, [r6, #2048] + mov r0, r5 + str r3, [r6, #2048] mov r1, r9 ldr r3, [sp, #72] ldr r2, [sp, #20] str r3, [sp] ldr r3, [sp, #24] bl flash_read_page - ldr r3, .L2158+8 + ldr r3, .L2259+8 ldr r3, [r3] tst r3, #4096 mov ip, r0 - beq .L2133 + beq .L2234 str r0, [sp] mov r1, r7 str r0, [sp, #28] mov r2, r9 - ldr r0, .L2158+12 + ldr r0, .L2259+12 mov r3, r4 bl printk ldr ip, [sp, #28] -.L2133: +.L2234: cmn ip, #1 - beq .L2134 - ldr r3, [r10, #-3272] + beq .L2235 + ldr r3, [r10, #-200] cmn r4, #1 moveq r4, ip str r3, [sp, #20] - ldr r3, [r10, #-3264] + ldr r3, [r10, #-192] str r3, [sp, #24] ldr r3, [sp, #12] cmp ip, r3 - bcc .L2143 -.L2134: + bcc .L2244 +.L2235: mov r7, fp - b .L2132 -.L2143: + b .L2233 +.L2244: mov r4, ip -.L2136: +.L2237: ldr r3, [sp, #16] - mov r5, r6, asl #8 + mov r6, r5, asl #8 mov r0, #200 - add fp, r3, r5 + add fp, r3, r6 mov r3, #239 str r3, [fp, #2056] mov r3, #137 @@ -12442,10 +13147,10 @@ micron_read_retrial: str r3, [fp, #2048] ldr r3, [sp, #12] cmp r4, r3 - bcc .L2138 + bcc .L2239 cmn r4, #1 movne r4, #256 -.L2138: +.L2239: cmn r4, #1 movne fp, #0 moveq fp, #1 @@ -12453,90 +13158,90 @@ micron_read_retrial: movne r3, fp orreq r3, fp, #1 cmp r3, #0 - beq .L2139 + beq .L2240 mov r1, r7 mov r3, r7 str r4, [sp] mov r2, r9 - ldr r0, .L2158+16 + ldr r0, .L2259+16 eor r7, r8, #1 bl printk ands r7, fp, r7 - beq .L2140 + beq .L2241 bl nandc_wait_flash_ready - ldr r3, .L2158 + ldr r3, .L2259 mov r0, #200 mov r8, #1 - ldr r3, [r3, #528] - add r5, r3, r5 + ldr r3, [r3, #1040] + add r6, r3, r6 mov r3, #239 - str r3, [r5, #2056] - mov r3, #150 - str r3, [r5, #2052] - bl timer_delay_ns - mov r3, #3 - str r3, [r5, #2048] - mov r3, #0 - str r3, [r5, #2048] - str r3, [r5, #2048] - str r3, [r5, #2048] - b .L2131 -.L2140: - cmp r8, #0 - beq .L2141 - bl nandc_wait_flash_ready - ldr r3, .L2158 - mov r0, #200 - ldr r9, [r3, #528] - mov r3, #239 - add r6, r9, r6, asl #8 - add r5, r9, r5 - str r3, [r5, #2056] + str r3, [r6, #2056] mov r3, #150 str r3, [r6, #2052] bl timer_delay_ns - cmn r4, #1 - str r7, [r6, #2048] - movne r4, #256 - str r7, [r6, #2048] - str r7, [r6, #2048] - str r7, [r6, #2048] - b .L2141 -.L2139: + mov r3, #3 + str r3, [r6, #2048] + mov r3, #0 + str r3, [r6, #2048] + str r3, [r6, #2048] + str r3, [r6, #2048] + b .L2232 +.L2241: cmp r8, #0 - beq .L2141 + beq .L2242 + bl nandc_wait_flash_ready + ldr r3, .L2259 + mov r0, #200 + ldr r9, [r3, #1040] + mov r3, #239 + add r5, r9, r5, asl #8 + add r6, r9, r6 + str r3, [r6, #2056] + mov r3, #150 + str r3, [r5, #2052] + bl timer_delay_ns + cmn r4, #1 + str r7, [r5, #2048] + movne r4, #256 + str r7, [r5, #2048] + str r7, [r5, #2048] + str r7, [r5, #2048] + b .L2242 +.L2240: + cmp r8, #0 + beq .L2242 str r3, [sp, #12] bl nandc_wait_flash_ready - ldr r2, .L2158 + ldr r2, .L2259 mov r0, #200 mov r4, #256 - ldr r9, [r2, #528] + ldr r9, [r2, #1040] mov r2, #239 - add r6, r9, r6, asl #8 - add r5, r9, r5 - str r2, [r5, #2056] + add r5, r9, r5, asl #8 + add r6, r9, r6 + str r2, [r6, #2056] mov r2, #150 - str r2, [r6, #2052] + str r2, [r5, #2052] bl timer_delay_ns ldr r3, [sp, #12] - str r3, [r6, #2048] - str r3, [r6, #2048] - str r3, [r6, #2048] - str r3, [r6, #2048] -.L2141: + str r3, [r5, #2048] + str r3, [r5, #2048] + str r3, [r5, #2048] + str r3, [r5, #2048] +.L2242: bl nandc_wait_flash_ready mov r0, r4 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2159: +.L2260: .align 2 -.L2158: +.L2259: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR2 - .word .LC150 - .word .LC151 + .word .LC154 + .word .LC155 .fnend .size micron_read_retrial, .-micron_read_retrial .align 2 @@ -12556,12 +13261,12 @@ toshiba_3d_read_retrial: mov r9, r1 str r2, [sp, #12] bl nandc_wait_flash_ready - ldr r7, .L2208 + ldr r7, .L2309 add r6, r10, #8 - ldr r3, [r7, #528] + ldr r3, [r7, #1040] add r6, r3, r6, asl #8 str r3, [sp, #8] - ldrb r3, [r7, #661] @ zero_extendqisi2 + ldrb r3, [r7, #1173] @ zero_extendqisi2 cmp r3, #36 movne r3, #56 moveq r3, #46 @@ -12570,28 +13275,28 @@ toshiba_3d_read_retrial: cmp r4, #0 str r3, [sp, #16] mvn r4, #0 - bne .L2162 + bne .L2263 ldr r3, [sp, #8] mov r8, #1 add r3, r3, r10, asl #8 str r3, [sp, #16] -.L2169: - ldr r3, .L2208 +.L2270: + ldr r3, .L2309 mov r0, r6 - ldrb r3, [r3, #661] @ zero_extendqisi2 + ldrb r3, [r3, #1173] @ zero_extendqisi2 cmp r3, #36 - bne .L2163 + bne .L2264 mov r2, #0 mov r1, r8 bl toshiba_tlc_set_rr_para mov r3, #93 ldr r2, [sp, #16] str r3, [r2, #2056] - b .L2164 -.L2163: + b .L2265 +.L2264: uxtb r1, r8 bl toshiba_3d_set_slc_rr_para -.L2164: +.L2265: ldr r3, [sp, #64] mov r0, r10 mov r1, r9 @@ -12599,69 +13304,69 @@ toshiba_3d_read_retrial: str r3, [sp] mov r3, fp bl flash_read_page - ldr r3, .L2208+4 + ldr r3, .L2309+4 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2165 + beq .L2266 mov r3, ip - ldr r0, .L2208+8 + ldr r0, .L2309+8 mov r1, r8 mov r2, r9 str ip, [sp, #20] bl printk ldr ip, [sp, #20] -.L2165: +.L2266: cmn ip, #1 - beq .L2166 - ldr r3, .L2208+12 + beq .L2267 + ldr r3, .L2309+12 cmn r4, #1 moveq r4, ip - ldr r2, [r3, #-3272] - ldr fp, [r3, #-3264] - ldrb r3, [r7, #660] @ zero_extendqisi2 + ldr r2, [r3, #-200] + ldr fp, [r3, #-192] + ldrb r3, [r7, #1172] @ zero_extendqisi2 str r2, [sp, #12] add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bcc .L2184 -.L2166: + bcc .L2285 +.L2267: add r8, r8, #1 cmp r8, r5 - bne .L2169 - b .L2168 -.L2184: + bne .L2270 + b .L2269 +.L2285: mov r5, r8 mov r4, ip -.L2168: - ldr r3, .L2208 +.L2269: + ldr r3, .L2309 mov r1, #0 mov r0, r6 - ldrb r3, [r3, #661] @ zero_extendqisi2 + ldrb r3, [r3, #1173] @ zero_extendqisi2 cmp r3, #36 moveq r2, r1 - beq .L2207 + beq .L2308 bl toshiba_3d_set_slc_rr_para - b .L2171 -.L2162: + b .L2272 +.L2263: ldr r3, [sp, #8] mov r5, #1 add r8, r3, r10, asl #8 -.L2178: - ldr r3, .L2208 +.L2279: + ldr r3, .L2309 mov r0, r6 - ldrb r3, [r3, #661] @ zero_extendqisi2 + ldrb r3, [r3, #1173] @ zero_extendqisi2 cmp r3, #36 - bne .L2172 + bne .L2273 mov r1, r5 mov r2, #1 bl toshiba_tlc_set_rr_para mov r3, #93 - b .L2206 -.L2172: + b .L2307 +.L2273: uxtb r1, r5 bl toshiba_3d_set_tlc_rr_para mov r3, #38 -.L2206: +.L2307: str r3, [r8, #2056] mov r0, r10 ldr r3, [sp, #64] @@ -12670,57 +13375,57 @@ toshiba_3d_read_retrial: str r3, [sp] mov r3, fp bl flash_read_page - ldr r3, .L2208+4 + ldr r3, .L2309+4 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2174 + beq .L2275 mov r3, ip - ldr r0, .L2208+16 + ldr r0, .L2309+16 mov r1, r5 mov r2, r9 str ip, [sp, #20] bl printk ldr ip, [sp, #20] -.L2174: +.L2275: cmn ip, #1 - beq .L2175 - ldr r3, .L2208+12 + beq .L2276 + ldr r3, .L2309+12 cmn r4, #1 moveq r4, ip - ldr r2, [r3, #-3272] - ldr fp, [r3, #-3264] - ldrb r3, [r7, #660] @ zero_extendqisi2 + ldr r2, [r3, #-200] + ldr fp, [r3, #-192] + ldrb r3, [r7, #1172] @ zero_extendqisi2 str r2, [sp, #12] add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bcc .L2185 -.L2175: + bcc .L2286 +.L2276: ldr r3, [sp, #16] add r5, r5, #1 cmp r5, r3 - bne .L2178 - b .L2177 -.L2185: + bne .L2279 + b .L2278 +.L2286: mov r4, ip -.L2177: - ldr r3, .L2208 +.L2278: + ldr r3, .L2309 mov r0, r6 mov r1, #0 - ldrb r3, [r3, #661] @ zero_extendqisi2 + ldrb r3, [r3, #1173] @ zero_extendqisi2 cmp r3, #36 - bne .L2179 + bne .L2280 mov r2, #1 -.L2207: +.L2308: bl toshiba_tlc_set_rr_para - b .L2171 -.L2179: + b .L2272 +.L2280: bl toshiba_3d_set_tlc_rr_para -.L2171: - ldr r3, .L2208 - ldrb r3, [r3, #661] @ zero_extendqisi2 +.L2272: + ldr r3, .L2309 + ldrb r3, [r3, #1173] @ zero_extendqisi2 cmp r3, #36 - bne .L2180 + bne .L2281 ldr r3, [sp, #8] add r10, r3, r10, asl #8 mov r3, #85 @@ -12730,38 +13435,38 @@ toshiba_3d_read_retrial: str r3, [r10, #2048] mov r3, #255 str r3, [r10, #2056] -.L2180: - ldrb r3, [r7, #660] @ zero_extendqisi2 +.L2281: + ldrb r3, [r7, #1172] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L2181 + bcc .L2282 cmn r4, #1 movne r4, #256 -.L2181: +.L2282: cmn r4, #1 cmpne r4, #256 - bne .L2182 + bne .L2283 str r4, [sp] mov r1, r5 - ldr r0, .L2208+20 + ldr r0, .L2309+20 mov r2, r9 mov r3, r5 bl printk -.L2182: +.L2283: bl nandc_wait_flash_ready mov r0, r4 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2209: +.L2310: .align 2 -.L2208: +.L2309: .word .LANCHOR0 .word .LANCHOR2 - .word .LC152 + .word .LC156 .word .LANCHOR3 - .word .LC153 - .word .LC154 + .word .LC157 + .word .LC158 .fnend .size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial .align 2 @@ -12775,77 +13480,81 @@ toshiba_read_retrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - mov r8, r0 - ldr r4, .L2243 + mov r5, r0 + ldr r4, .L2344 str r3, [sp, #20] - add r9, r8, #8 + add r9, r5, #8 str r1, [sp, #12] str r2, [sp, #16] bl nandc_wait_flash_ready - ldrb r3, [r4, #661] @ zero_extendqisi2 - ldr r6, [r4, #528] + mov r0, r5 + bl zftl_flash_enter_slc_mode + mov r0, r5 + bl zftl_flash_exit_slc_mode + ldrb r3, [r4, #1173] @ zero_extendqisi2 + ldr r7, [r4, #1040] sub r3, r3, #67 cmp r3, #1 - add r9, r6, r9, asl #8 - mov r3, r8, asl #8 + add r9, r7, r9, asl #8 + mov r3, r5, asl #8 str r3, [sp, #24] movls r3, #0 strls r3, [sp, #8] - bls .L2211 - ldrb r5, [r4, #623] @ zero_extendqisi2 - cmp r5, #0 - streq r5, [sp, #8] - beq .L2212 + bls .L2312 + ldrb r6, [r4, #1135] @ zero_extendqisi2 + cmp r6, #0 + streq r6, [sp, #8] + beq .L2313 mov r0, #1 bl nandc_set_if_mode mov r3, #1 str r3, [sp, #8] -.L2212: +.L2313: ldr r3, [sp, #24] mov r2, #92 - add r3, r6, r3 + add r3, r7, r3 str r2, [r3, #2056] mov r2, #197 str r2, [r3, #2056] -.L2211: - ldr fp, .L2243+4 - mov r7, #1 +.L2312: + ldr fp, .L2344+4 + mov r8, #1 mvn r10, #0 - mov r3, r8, asl #8 + mov r3, r5, asl #8 str r3, [sp, #28] -.L2213: - ldrb r3, [fp, #-3260] @ zero_extendqisi2 +.L2314: + ldrb r3, [fp, #-188] @ zero_extendqisi2 add r3, r3, #1 - cmp r7, r3 - bcs .L2242 - ldrb r3, [r4, #661] @ zero_extendqisi2 + cmp r8, r3 + bcs .L2343 + ldrb r3, [r4, #1173] @ zero_extendqisi2 mov r0, r9 - uxtb r1, r7 + uxtb r1, r8 sub r3, r3, #67 cmp r3, #1 - bhi .L2214 + bhi .L2315 bl sandisk_set_rr_para - b .L2215 -.L2214: + b .L2316 +.L2315: bl toshiba_set_rr_para -.L2215: - ldrb r3, [r4, #661] @ zero_extendqisi2 +.L2316: + ldrb r3, [r4, #1173] @ zero_extendqisi2 cmp r3, #34 - bne .L2216 - ldr r3, .L2243+4 - ldrb r3, [r3, #-3260] @ zero_extendqisi2 + bne .L2317 + ldr r3, .L2344+4 + ldrb r3, [r3, #-188] @ zero_extendqisi2 sub r3, r3, #3 - cmp r7, r3 + cmp r8, r3 ldreq r3, [sp, #28] moveq r2, #179 - addeq r3, r6, r3 + addeq r3, r7, r3 streq r2, [r3, #2056] -.L2216: +.L2317: ldr r3, [sp, #24] mov r2, #38 add r1, sp, #12 - mov r0, r8 - add r3, r6, r3 + mov r0, r5 + add r3, r7, r3 str r2, [r3, #2056] mov r2, #93 str r2, [r3, #2056] @@ -12854,75 +13563,407 @@ toshiba_read_retrial: ldmia r1, {r1, r2, r3} bl flash_read_page cmn r0, #1 - mov r5, r0 - beq .L2219 - ldr r3, [fp, #-3272] + mov r6, r0 + beq .L2320 + ldr r3, [fp, #-200] cmn r10, #1 moveq r10, r0 str r3, [sp, #16] - ldr r3, [fp, #-3264] + ldr r3, [fp, #-192] str r3, [sp, #20] - ldrb r3, [r4, #660] @ zero_extendqisi2 + ldrb r3, [r4, #1172] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L2221 -.L2219: - add r7, r7, #1 - b .L2213 -.L2242: - mov r5, r10 -.L2221: - ldrb r3, [r4, #661] @ zero_extendqisi2 + bcc .L2322 +.L2320: + add r8, r8, #1 + b .L2314 +.L2343: + mov r6, r10 +.L2322: + ldrb r3, [r4, #1173] @ zero_extendqisi2 mov r0, r9 mov r1, #0 sub r3, r3, #67 cmp r3, #1 - bhi .L2223 + bhi .L2324 bl sandisk_set_rr_para - b .L2224 -.L2223: + b .L2325 +.L2324: bl toshiba_set_rr_para -.L2224: - add r6, r6, r8, asl #8 +.L2325: + add r5, r7, r5, asl #8 mov r3, #255 - str r3, [r6, #2056] - ldrb r3, [r4, #660] @ zero_extendqisi2 + str r3, [r5, #2056] + ldrb r3, [r4, #1172] @ zero_extendqisi2 add r3, r3, r3, asl #1 - cmp r5, r3, asr #2 - bcc .L2225 - cmn r5, #1 - movne r5, #256 -.L2225: - cmn r5, #1 - cmpne r5, #256 - bne .L2226 - str r5, [sp] - mov r1, r7 - ldr r0, .L2243+8 - mov r3, r7 + cmp r6, r3, asr #2 + bcc .L2326 + cmn r6, #1 + movne r6, #256 +.L2326: + cmn r6, #1 + cmpne r6, #256 + bne .L2327 + str r6, [sp] + mov r1, r8 + ldr r0, .L2344+8 + mov r3, r8 ldr r2, [sp, #12] bl printk -.L2226: +.L2327: bl nandc_wait_flash_ready ldr r3, [sp, #8] cmp r3, #0 - beq .L2227 + beq .L2328 mov r0, #4 bl nandc_set_if_mode -.L2227: - mov r0, r5 +.L2328: + mov r0, r6 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2244: +.L2345: .align 2 -.L2243: +.L2344: .word .LANCHOR0 .word .LANCHOR3 - .word .LC154 + .word .LC158 .fnend .size toshiba_read_retrial, .-toshiba_read_retrial .align 2 + .global ymtc_3d_read_retrial + .type ymtc_3d_read_retrial, %function +ymtc_3d_read_retrial: + .fnstart + @ args = 4, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + mov r8, r0 + .pad #20 + sub sp, sp, #20 + ldr r6, .L2376 + mov r9, r1 + mov fp, r3 + mov r10, r2 + bl nandc_wait_flash_ready + mov r0, r8 + add r7, r8, #8 + bl zftl_flash_enter_slc_mode + mov r0, r8 + bl zftl_flash_exit_slc_mode + ldr r3, [r6, #1040] + tst r9, #50331648 + mvn r4, #0 + add r7, r3, r7, asl #8 + mov r5, #1 + ldr ip, .L2376+4 + bne .L2356 +.L2351: + mov r0, r7 + uxtb r1, r5 + str ip, [sp, #12] + bl ymtc_3d_set_slc_rr_para + mov r0, r8 + mov r1, r9 + mov r2, r10 + ldr r3, [sp, #56] + str r3, [sp] + mov r3, fp + bl flash_read_page + cmn r0, #1 + ldr ip, [sp, #12] + beq .L2348 + ldrb r3, [r6, #1172] @ zero_extendqisi2 + cmn r4, #1 + ldr r10, [ip, #-200] + moveq r4, r0 + ldr fp, [ip, #-192] + add r3, r3, r3, asl #1 + cmp r0, r3, asr #2 + bcc .L2359 +.L2348: + add r5, r5, #1 + cmp r5, #10 + bne .L2351 + b .L2350 +.L2359: + mov r4, r0 +.L2350: + mov r0, r7 + mov r1, #0 + bl ymtc_3d_set_slc_rr_para + b .L2352 +.L2375: + ldrb r3, [r6, #1172] @ zero_extendqisi2 + cmn r4, #1 + ldr r10, [ip, #-200] + moveq r4, r0 + ldr fp, [ip, #-192] + add r3, r3, r3, asl #1 + cmp r0, r3, asr #2 + bcc .L2360 +.L2353: + add r5, r5, #1 + cmp r5, #51 + beq .L2355 +.L2356: + mov r0, r7 + uxtb r1, r5 + str ip, [sp, #12] + bl ymtc_3d_set_tlc_rr_para + mov r0, r8 + mov r1, r9 + mov r2, r10 + ldr r3, [sp, #56] + str r3, [sp] + mov r3, fp + bl flash_read_page + cmn r0, #1 + ldr ip, [sp, #12] + bne .L2375 + b .L2353 +.L2360: + mov r4, r0 +.L2355: + mov r0, r7 + mov r1, #0 + bl ymtc_3d_set_tlc_rr_para +.L2352: + ldrb r3, [r6, #1172] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp r4, r3, asr #2 + bcc .L2357 + cmn r4, #1 + movne r4, #256 +.L2357: + cmn r4, #1 + cmpne r4, #256 + bne .L2358 + str r4, [sp] + mov r1, r5 + ldr r0, .L2376+8 + mov r2, r9 + mov r3, r5 + bl printk +.L2358: + bl nandc_wait_flash_ready + mov r0, r4 + add sp, sp, #20 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2377: + .align 2 +.L2376: + .word .LANCHOR0 + .word .LANCHOR3 + .word .LC159 + .fnend + .size ymtc_3d_read_retrial, .-ymtc_3d_read_retrial + .align 2 + .global samsung_read_retrial + .type samsung_read_retrial, %function +samsung_read_retrial: + .fnstart + @ args = 4, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {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 + mov r7, r0 + mov r8, r1 + str r3, [sp, #12] + str r2, [sp, #8] + bl nandc_wait_flash_ready + mov r0, r7 + bl zftl_flash_enter_slc_mode + mov r0, r7 + bl zftl_flash_exit_slc_mode + ldr r3, .L2416 + tst r8, #50331648 + ldr r4, [r3, #1040] + str r3, [sp, #16] + bne .L2379 + mov r10, r7, asl #8 + mvn r5, #0 + add r9, r4, r10 + mov r6, #1 + mov fp, #239 +.L2384: + str fp, [r9, #2056] + mov r3, #141 + str r3, [r9, #2052] + ldr r3, .L2416+4 + ldrsb r3, [r6, r3] + str r3, [r9, #2048] + mov r3, #0 + str r3, [r9, #2048] + str r3, [r9, #2048] + str r3, [r9, #2048] + bl nandc_wait_flash_ready + mov r0, r7 + mov r1, r8 + ldr r3, [sp, #64] + ldr r2, [sp, #8] + str r3, [sp] + ldr r3, [sp, #12] + bl flash_read_page + ldr r3, .L2416+8 + ldr r3, [r3] + tst r3, #16 + mov ip, r0 + beq .L2380 + mov r3, ip + ldr r0, .L2416+12 + mov r1, r6 + mov r2, r8 + str ip, [sp, #20] + bl printk + ldr ip, [sp, #20] +.L2380: + cmn ip, #1 + beq .L2381 + ldr r3, .L2416+16 + cmn r5, #1 + moveq r5, ip + ldr r2, [r3, #-200] + ldr r3, [r3, #-192] + str r2, [sp, #8] + str r3, [sp, #12] + ldr r3, [sp, #16] + ldrb r3, [r3, #1172] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp ip, r3, asr #2 + bcc .L2393 +.L2381: + add r6, r6, #1 + cmp r6, #26 + bne .L2384 + b .L2383 +.L2393: + mov r5, ip +.L2383: + add r10, r4, r10 + mov r3, #239 + add r4, r4, r7, asl #8 + str r3, [r10, #2056] + mov r3, #141 + b .L2415 +.L2379: + mov r3, r7, asl #8 + ldr r9, .L2416+20 + add r10, r4, r3 + mvn r5, #0 + mov r6, #1 + str r3, [sp, #20] +.L2390: + mov r3, #239 + str r3, [r10, #2056] + mov r3, #137 + str r3, [r10, #2052] + ldrb r3, [r9, #4] @ zero_extendqisi2 + str r3, [r10, #2048] + ldrb r3, [r9, #5] @ zero_extendqisi2 + str r3, [r10, #2048] + ldrb r3, [r9, #6] @ zero_extendqisi2 + str r3, [r10, #2048] + ldrb r3, [r9, #7] @ zero_extendqisi2 + str r3, [r10, #2048] + bl nandc_wait_flash_ready + mov r0, r7 + mov r1, r8 + ldr r3, [sp, #64] + ldr r2, [sp, #8] + str r3, [sp] + ldr r3, [sp, #12] + bl flash_read_page + ldr r3, .L2416+8 + ldr r3, [r3] + tst r3, #16 + mov fp, r0 + beq .L2386 + ldr r0, .L2416+24 + mov r1, r6 + mov r2, r8 + mov r3, fp + bl printk +.L2386: + cmn fp, #1 + beq .L2387 + ldr r3, .L2416+16 + cmn r5, #1 + moveq r5, fp + ldr r2, [r3, #-200] + ldr r3, [r3, #-192] + str r2, [sp, #8] + str r3, [sp, #12] + ldr r3, [sp, #16] + ldrb r3, [r3, #1172] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp fp, r3, asr #2 + bcc .L2394 +.L2387: + add r6, r6, #1 + add r9, r9, #4 + cmp r6, #26 + bne .L2390 + b .L2389 +.L2394: + mov r5, fp +.L2389: + ldr r3, [sp, #20] + mov r2, #239 + add r3, r4, r3 + add r4, r4, r7, asl #8 + str r2, [r3, #2056] + mov r3, #137 +.L2415: + str r3, [r4, #2052] + mov r3, #0 + str r3, [r4, #2048] + str r3, [r4, #2048] + str r3, [r4, #2048] + str r3, [r4, #2048] + bl nandc_wait_flash_ready + ldr r3, [sp, #16] + ldrb r3, [r3, #1172] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp r5, r3, asr #2 + bcc .L2391 + cmn r5, #1 + movne r5, #256 +.L2391: + cmn r5, #1 + cmpne r5, #256 + bne .L2392 + str r5, [sp] + mov r1, r6 + ldr r0, .L2416+28 + mov r2, r8 + mov r3, r6 + bl printk +.L2392: + bl nandc_wait_flash_ready + mov r0, r5 + add sp, sp, #28 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2417: + .align 2 +.L2416: + .word .LANCHOR0 + .word .LANCHOR1+1964 + .word .LANCHOR2 + .word .LC160 + .word .LANCHOR3 + .word .LANCHOR1+1992 + .word .LC161 + .word .LC162 + .fnend + .size samsung_read_retrial, .-samsung_read_retrial + .align 2 .global hynix_read_retrial .type hynix_read_retrial, %function hynix_read_retrial: @@ -12932,14 +13973,14 @@ hynix_read_retrial: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r3 - ldr r3, .L2264 + ldr r3, .L2437 .pad #28 sub sp, sp, #28 mov r10, r2 - mov r7, r0 + mov r6, r0 mov r8, r1 - mov r6, #0 - ldr r2, [r3, #664] + mov r7, #0 + ldr r2, [r3, #1176] mvn r4, #0 str r3, [sp, #16] add r3, r2, r0 @@ -12947,19 +13988,23 @@ hynix_read_retrial: ldrb r9, [r2, #114] @ zero_extendqisi2 ldrb r5, [r3, #120] @ zero_extendqisi2 bl nandc_wait_flash_ready - ldr ip, .L2264+4 -.L2246: - cmp r6, r9 - bcs .L2250 + mov r0, r6 + bl zftl_flash_enter_slc_mode + mov r0, r6 + bl zftl_flash_exit_slc_mode + ldr ip, .L2437+4 +.L2419: + cmp r7, r9 + bcs .L2423 add r5, r5, #1 - mov r0, r7 + mov r0, r6 str ip, [sp, #20] uxtb r5, r5 cmp r5, r9 movcs r5, #0 mov r1, r5 bl hynix_set_rr_para - mov r0, r7 + mov r0, r6 mov r1, r8 mov r2, r10 ldr r3, [sp, #64] @@ -12968,53 +14013,53 @@ hynix_read_retrial: bl flash_read_page cmn r0, #1 ldr ip, [sp, #20] - beq .L2248 + beq .L2421 ldr r3, [sp, #16] cmn r4, #1 - ldr r10, [ip, #-3272] + ldr r10, [ip, #-200] moveq r4, r0 - ldr fp, [ip, #-3264] - ldrb r3, [r3, #660] @ zero_extendqisi2 + ldr fp, [ip, #-192] + ldrb r3, [r3, #1172] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L2254 -.L2248: - add r6, r6, #1 - b .L2246 -.L2254: + bcc .L2427 +.L2421: + add r7, r7, #1 + b .L2419 +.L2427: mov r4, r0 -.L2250: +.L2423: ldr r3, [sp, #12] strb r5, [r3, #120] ldr r3, [sp, #16] - ldrb r3, [r3, #660] @ zero_extendqisi2 + ldrb r3, [r3, #1172] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L2252 + bcc .L2425 cmn r4, #1 movne r4, #256 -.L2252: +.L2425: cmn r4, #1 cmpne r4, #256 - bne .L2253 + bne .L2426 str r4, [sp] - mov r1, r6 - ldr r0, .L2264+8 + mov r1, r7 + ldr r0, .L2437+8 mov r2, r8 - mov r3, r6 + mov r3, r7 bl printk -.L2253: +.L2426: bl nandc_wait_flash_ready mov r0, r4 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2265: +.L2438: .align 2 -.L2264: +.L2437: .word .LANCHOR0 .word .LANCHOR3 - .word .LC155 + .word .LC163 .fnend .size hynix_read_retrial, .-hynix_read_retrial .align 2 @@ -13041,7 +14086,7 @@ flash_ddr_tuning_read: str r0, [sp, #24] str r4, [sp, #20] str r4, [sp, #12] -.L2272: +.L2445: uxtb r0, r7 bl nandc_set_ddr_para mov r0, r8 @@ -13051,104 +14096,107 @@ flash_ddr_tuning_read: str r3, [sp] ldr r3, [sp, #16] bl flash_read_page - ldr r3, .L2290 + ldr r3, .L2466 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2267 + beq .L2440 mov r3, ip - ldr r0, .L2290+4 + ldr r0, .L2466+4 mov r1, r7 mov r2, r10 str ip, [sp, #28] bl printk ldr ip, [sp, #28] -.L2267: +.L2440: add r3, r6, #1 cmp ip, r3 - bhi .L2268 - ldr r3, .L2290+8 - ldr fp, [r3, #-3272] - ldr r3, [r3, #-3264] + bhi .L2441 + ldr r3, .L2466+8 + ldr fp, [r3, #-200] + ldr r3, [r3, #-192] str r3, [sp, #16] - ldr r3, .L2290+12 - ldrb r3, [r3, #660] @ zero_extendqisi2 + ldr r3, .L2466+12 + ldrb r3, [r3, #1172] @ zero_extendqisi2 cmp ip, r3, lsr #2 - bcs .L2278 + bcs .L2451 add r5, r5, #1 cmp r5, #7 - bls .L2278 + bls .L2451 rsb r4, r5, r7 mov r6, ip mov r9, #0 - b .L2270 -.L2268: + b .L2443 +.L2441: ldr r3, [sp, #12] cmp r3, r5 - bcs .L2279 + bcs .L2452 cmp r5, #7 rsb r3, r5, r4 str r3, [sp, #20] - bhi .L2271 + bhi .L2444 str r5, [sp, #12] - b .L2279 -.L2278: + b .L2452 +.L2451: mov r4, r7 mov r6, ip mov r9, #0 - b .L2269 -.L2279: + b .L2442 +.L2452: mov r5, #0 -.L2269: +.L2442: add r7, r7, #2 cmp r7, #50 - bne .L2272 -.L2270: + bne .L2445 +.L2443: ldr r2, [sp, #12] ldr r3, [sp, #20] cmp r2, r5 movhi r4, r3 -.L2271: +.L2444: cmp r4, #0 - beq .L2273 - ldr r3, .L2290+12 - ldr r2, .L2290+16 - ldrb r3, [r3, #660] @ zero_extendqisi2 + beq .L2446 + ldr r3, .L2466+12 + ldr r2, .L2466+16 + ldrb r3, [r3, #1172] @ zero_extendqisi2 umull r2, r3, r3, r2 ubfx r3, r3, #1, #8 cmp r6, r3 - bcs .L2273 - ldr r0, .L2290+20 + bcs .L2446 + ldr r0, .L2466+20 mov r1, r4 bl printk uxtb r0, r4 - b .L2289 -.L2273: + b .L2465 +.L2446: ldrb r0, [sp, #24] @ zero_extendqisi2 -.L2289: +.L2465: bl nandc_set_ddr_para cmn r9, #1 - bne .L2275 + bne .L2448 + ldr r5, .L2466+12 + ldrb r3, [r5, #1232] @ zero_extendqisi2 + mov r4, r5 + tst r3, #1 + beq .L2448 mov r1, r8 mov r2, r10 - ldr r0, .L2290+24 + ldr r0, .L2466+24 bl printk mov r0, r8 bl flash_reset - ldr r4, .L2290+12 mov r0, #1 bl flash_set_interface_mode mov r0, #1 bl nandc_set_if_mode - add r3, r4, r8 + add r3, r5, r8 mov r0, r8 mov r2, #2 - strb r2, [r3, #680] + strb r2, [r3, #1192] bl zftl_flash_enter_slc_mode mov r1, r10 mov r2, fp mov r0, r8 - mov r5, r4 ldr r3, [sp, #72] str r3, [sp] ldr r3, [sp, #16] @@ -13156,44 +14204,44 @@ flash_ddr_tuning_read: mov r1, r8 mov r2, r10 mov r6, r0 - ldr r0, .L2290+28 + ldr r0, .L2466+28 mov r3, r6 bl printk - ldrb r3, [r4, #660] @ zero_extendqisi2 + ldrb r3, [r5, #1172] @ zero_extendqisi2 cmp r6, r3 - bhi .L2280 - ldr r2, .L2290+8 - ldr r3, [r2, #-3256] + bhi .L2453 + ldr r2, .L2466+8 + ldr r3, [r2, #-184] add r3, r3, #1 - str r3, [r2, #-3256] + str r3, [r2, #-184] cmp r3, #100 movhi r3, #0 - strhib r3, [r4, #623] - bls .L2276 - b .L2275 -.L2280: + strhib r3, [r5, #1135] + bls .L2449 + b .L2448 +.L2453: mov r6, r9 -.L2276: - ldrb r0, [r5, #720] @ zero_extendqisi2 +.L2449: + ldrb r0, [r4, #1232] @ zero_extendqisi2 bl flash_set_interface_mode - ldrb r0, [r5, #720] @ zero_extendqisi2 + ldrb r0, [r4, #1232] @ zero_extendqisi2 bl nandc_set_if_mode -.L2275: +.L2448: mov r0, r6 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2291: +.L2467: .align 2 -.L2290: +.L2466: .word .LANCHOR2 - .word .LC156 + .word .LC164 .word .LANCHOR3 .word .LANCHOR0 .word -1431655765 - .word .LC157 - .word .LC158 - .word .LC159 + .word .LC165 + .word .LC166 + .word .LC167 .fnend .size flash_ddr_tuning_read, .-flash_ddr_tuning_read .align 2 @@ -13207,63 +14255,63 @@ flash_read_page_en: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r3 - ldr r5, .L2323 + ldr r5, .L2499 mov r10, r0 mov r4, r1 mov r8, r2 ldr r9, [sp, #48] - ldrb r3, [r5, #589] @ zero_extendqisi2 + ldrb r3, [r5, #1101] @ zero_extendqisi2 cmp r3, r0 - bhi .L2293 - ldr r1, .L2323+4 - movw r2, #405 - ldr r0, .L2323+8 + bhi .L2469 + ldr r1, .L2499+4 + mov r2, #428 + ldr r0, .L2499+8 bl printk bl dump_stack -.L2293: +.L2469: add r2, r5, r10 - ldr r3, .L2323 - ldrb r6, [r2, #668] @ zero_extendqisi2 - ldrb r2, [r5, #589] @ zero_extendqisi2 + ldr r3, .L2499 + ldrb r6, [r2, #1180] @ zero_extendqisi2 + ldrb r2, [r5, #1101] @ zero_extendqisi2 cmp r10, r2 - bcc .L2294 - ldr r3, .L2323+12 + bcc .L2470 + ldr r3, .L2499+12 ldr r3, [r3] tst r3, #64 - beq .L2322 + beq .L2498 str r2, [sp] mov r1, r6 - ldr r0, .L2323+16 + ldr r0, .L2499+16 mov r2, r10 mov r3, r4 bl printk -.L2322: +.L2498: mvn r0, #0 - b .L2319 -.L2294: + b .L2495 +.L2470: tst r4, #50331648 - bne .L2297 + bne .L2473 ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 - beq .L2298 + beq .L2474 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, #0 - beq .L2297 -.L2298: + beq .L2473 +.L2474: ldrh r10, [r5, #2] mov r0, r4 mov r1, r10 bl __aeabi_uidiv ldrb r3, [r5, #1] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L2323 + ldreq r3, .L2499 mul r0, r10, r0 rsb r4, r0, r4 mov r4, r4, asl #1 addeq r4, r3, r4 ldreqh r4, [r4, #4] add r4, r4, r0 -.L2297: +.L2473: str r9, [sp] mov r0, r6 mov r1, r4 @@ -13271,31 +14319,31 @@ flash_read_page_en: mov r3, r7 bl flash_read_page cmn r0, #1 - bne .L2319 - ldrb fp, [r5, #656] @ zero_extendqisi2 - ldr r10, .L2323 + bne .L2495 + ldrb fp, [r5, #1168] @ zero_extendqisi2 + ldr r10, .L2499 cmp fp, #0 - bne .L2301 -.L2304: - ldr r3, .L2323+20 - ldr ip, [r3, #-3252] + bne .L2477 +.L2480: + ldr r3, .L2499+20 + ldr ip, [r3, #-180] cmp ip, #0 - bne .L2302 - b .L2303 -.L2301: + bne .L2478 + b .L2479 +.L2477: mov r3, #0 mov r0, r6 - strb r3, [r10, #656] + strb r3, [r10, #1168] mov r1, r4 str r9, [sp] mov r2, r8 mov r3, r7 bl flash_read_page - strb fp, [r10, #656] + strb fp, [r10, #1168] cmn r0, #1 - beq .L2304 - b .L2319 -.L2302: + beq .L2480 + b .L2495 +.L2478: str r9, [sp] mov r0, r6 mov r1, r4 @@ -13303,18 +14351,18 @@ flash_read_page_en: mov r3, r7 blx ip cmn r0, #1 - bne .L2319 -.L2303: - ldrb r3, [r5, #656] @ zero_extendqisi2 + bne .L2495 +.L2479: + ldrb r3, [r5, #1168] @ zero_extendqisi2 mov r1, #0 - ldr r0, .L2323+24 + ldr r0, .L2499+24 mov r2, r4 str r3, [sp] mvn r3, #0 bl printk - ldrb r3, [r5, #623] @ zero_extendqisi2 + ldrb r3, [r5, #1135] @ zero_extendqisi2 cmp r3, #0 - beq .L2322 + beq .L2498 str r9, [sp, #48] mov r0, r6 mov r1, r4 @@ -13324,20 +14372,20 @@ flash_read_page_en: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b flash_ddr_tuning_read -.L2319: +.L2495: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2324: +.L2500: .align 2 -.L2323: +.L2499: .word .LANCHOR0 - .word .LANCHOR1+1536 + .word .LANCHOR1+2096 .word .LC0 .word .LANCHOR2 - .word .LC160 + .word .LC168 .word .LANCHOR3 - .word .LC161 + .word .LC169 .fnend .size flash_read_page_en, .-flash_read_page_en .align 2 @@ -13350,10 +14398,10 @@ flash_get_last_written_page: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r1 - ldr r6, .L2336 + ldr r6, .L2512 .pad #20 sub sp, sp, #20 - ldr r1, .L2336+4 + ldr r1, .L2512+4 mov r10, r0 mov fp, r2 mov r8, r3 @@ -13368,12 +14416,12 @@ flash_get_last_written_page: bl flash_read_page_en cmp r0, #512 moveq ip, #0 - bne .L2326 -.L2327: + bne .L2502 +.L2503: sxth r3, ip sxth r2, r4 cmp r3, r2 - bgt .L2326 + bgt .L2502 add r3, r3, r2 mov r0, r10 mov r2, fp @@ -13391,28 +14439,28 @@ flash_get_last_written_page: addne ip, r5, #1 uxtheq r4, r5 uxthne ip, ip - b .L2327 -.L2326: + b .L2503 +.L2502: ldr r3, [r6] sxth r4, r4 tst r3, #4096 - beq .L2331 - ldr r0, .L2336+8 + beq .L2507 + ldr r0, .L2512+8 mov r1, r9 mov r2, r4 ldr r3, [r8] bl printk -.L2331: +.L2507: mov r0, r4 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2337: +.L2513: .align 2 -.L2336: +.L2512: .word .LANCHOR2 - .word .LANCHOR3-3360 - .word .LC162 + .word .LANCHOR3-292 + .word .LC170 .fnend .size flash_get_last_written_page, .-flash_get_last_written_page .align 2 @@ -13425,13 +14473,13 @@ flash_get_last_written_page_ext: stmfd sp!, {r0, r1, r4, lr} .save {r4, lr} .pad #8 - mov r4, r1 - ldr r1, .L2340 mov lr, r2 + ldr r2, .L2516 + mov r4, r1 + ldr r1, .L2516+4 mov ip, r0 - add r1, r1, #2928 - ldrb r2, [r1, #-2252] @ zero_extendqisi2 - ldrh r1, [r1] + ldrb r2, [r2, #1189] @ zero_extendqisi2 + ldrh r1, [r1, #-4] rsb r2, r2, #24 str r3, [sp] rsb r2, r1, r2 @@ -13445,10 +14493,11 @@ flash_get_last_written_page_ext: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, pc} -.L2341: +.L2517: .align 2 -.L2340: +.L2516: .word .LANCHOR0 + .word .LANCHOR3-3200 .fnend .size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext .align 2 @@ -13462,84 +14511,83 @@ flash_ddr_para_scan: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r8, r0 - ldr r4, .L2349 + ldr r4, .L2525 mov r7, r1 mov r6, #1 - ldr r5, .L2349+4 + ldr r5, .L2525+4 mov r9, #4 - ldrb r0, [r4, #720] @ zero_extendqisi2 - strb r6, [r4, #623] + ldrb r0, [r4, #1232] @ zero_extendqisi2 + strb r6, [r4, #1135] bl flash_set_interface_mode - ldrb r0, [r4, #720] @ zero_extendqisi2 + ldrb r0, [r4, #1232] @ zero_extendqisi2 bl nandc_set_if_mode mov r1, r7 - ldr r2, [r5, #-3248] + ldr r2, [r5, #-176] mov r0, r8 - ldr r3, [r5, #-3244] + ldr r3, [r5, #-172] str r9, [sp] bl flash_ddr_tuning_read - ldr r3, [r5, #-3244] + ldr r3, [r5, #-172] mov r0, r8 mov r1, r7 - ldr r2, [r5, #-3248] + ldr r2, [r5, #-176] str r9, [sp] bl flash_read_page mov r3, r4 cmn r0, #1 - bne .L2343 - ldrb r2, [r4, #720] @ zero_extendqisi2 + bne .L2519 + ldrb r2, [r4, #1232] @ zero_extendqisi2 tst r2, #1 - beq .L2343 + beq .L2519 mov r0, r6 bl flash_set_interface_mode mov r0, r6 bl nandc_set_if_mode mov r3, #0 - strb r3, [r4, #623] - b .L2344 -.L2343: + strb r3, [r4, #1135] + b .L2520 +.L2519: mov r2, #1 - strb r2, [r3, #623] -.L2344: + strb r2, [r3, #1135] +.L2520: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2350: +.L2526: .align 2 -.L2349: +.L2525: .word .LANCHOR0 .word .LANCHOR3 .fnend .size flash_ddr_para_scan, .-flash_ddr_para_scan .global __aeabi_uidivmod + .section .text.unlikely .align 2 - .type id_block_read_data.constprop.29, %function -id_block_read_data.constprop.29: + .type id_block_read_data.constprop.31, %function +id_block_read_data.constprop.31: .fnstart @ args = 0, pretend = 0, frame = 112 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2382 + ldr r3, .L2558 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r6, r2 - ldrb r2, [r3, #13] @ zero_extendqisi2 .pad #124 sub sp, sp, #124 - ldr r4, .L2382+4 - mov r5, #0 + ldr r4, .L2558+4 + mov r6, r2 str r1, [sp, #24] + mov r5, #0 + ldrb r2, [r3, #13] @ zero_extendqisi2 mov r7, #4 - str r2, [sp, #28] - mov r10, r5 ldrh r1, [r3, #30] - ldrh r3, [sp, #28] + mov r10, r5 + ldrb r3, [r4, #1168] @ zero_extendqisi2 str r0, [sp, #40] - smulbb r1, r1, r3 - ldrb r3, [r4, #656] @ zero_extendqisi2 - strb r5, [r4, #656] + mul r1, r1, r2 str r3, [sp, #44] - uxth r1, r1 + str r2, [sp, #28] + strb r5, [r4, #1168] bl __aeabi_uidivmod ldr r3, [sp, #40] str r1, [sp, #12] @@ -13547,10 +14595,10 @@ id_block_read_data.constprop.29: str r3, [sp, #32] and r3, r1, #3 str r3, [sp, #16] -.L2352: +.L2528: ldr r3, [sp, #24] cmp r5, r3 - bcs .L2381 + bcs .L2557 ldr r3, [sp, #16] mov r1, r7 rsb r3, r3, r7 @@ -13559,37 +14607,37 @@ id_block_read_data.constprop.29: ldr r3, [sp, #12] add r0, r5, r3 bl __aeabi_uidiv - ldrb r1, [r4, #590] @ zero_extendqisi2 + ldrb r1, [r4, #1102] @ zero_extendqisi2 cmp r1, #0 uxth r0, r0 mov r3, r0, asl #1 add r2, r4, r3 ldrh r2, [r2, #4] moveq r0, r2 - beq .L2354 + beq .L2530 ldrb r2, [r4, #1] @ zero_extendqisi2 cmp r2, #0 movne r0, r3 -.L2354: +.L2530: ldr r2, [sp, #32] ldr r3, [sp, #28] ldr r1, [sp, #16] mla r3, r3, r0, r2 str r3, [sp, #36] - ldr r3, .L2382+4 + ldr r3, .L2558+4 ldr r2, [sp, #36] - ldrb r9, [r3, #588] @ zero_extendqisi2 + ldrb r9, [r3, #1100] @ zero_extendqisi2 add r0, r2, r1 - ldr r3, [r3, #584] + ldr r3, [r3, #1096] ldrb r1, [r3, #9] @ zero_extendqisi2 bl __aeabi_uidiv - ldr r3, .L2382+4 - ldrb r3, [r3, #660] @ zero_extendqisi2 + ldr r3, .L2558+4 + ldrb r3, [r3, #1172] @ zero_extendqisi2 mov fp, r0 mov r0, r9 str r3, [sp, #48] bl nandc_bch_sel -.L2355: +.L2531: str r7, [sp] mov r0, #0 mov r1, fp @@ -13598,31 +14646,31 @@ id_block_read_data.constprop.29: bl flash_read_page cmn r0, #1 mov r8, r0 - bne .L2362 - ldrb ip, [r4, #656] @ zero_extendqisi2 + bne .L2538 + ldrb ip, [r4, #1168] @ zero_extendqisi2 cmp ip, #0 - bne .L2357 -.L2360: - ldr r3, .L2382+8 - ldr ip, [r3, #-3252] + bne .L2533 +.L2536: + ldr r3, .L2558+8 + ldr ip, [r3, #-180] cmp ip, #0 - bne .L2358 - b .L2359 -.L2357: + bne .L2534 + b .L2535 +.L2533: mov r0, #0 str r7, [sp] mov r1, fp mov r2, r6 add r3, sp, #56 str ip, [sp, #52] - strb r0, [r4, #656] + strb r0, [r4, #1168] bl flash_read_page ldr ip, [sp, #52] cmn r0, #1 - strb ip, [r4, #656] - beq .L2360 - b .L2380 -.L2358: + strb ip, [r4, #1168] + beq .L2536 + b .L2556 +.L2534: str r7, [sp] mov r0, #0 mov r1, fp @@ -13630,31 +14678,31 @@ id_block_read_data.constprop.29: add r3, sp, #56 blx ip cmn r0, #1 - bne .L2380 -.L2359: - ldrb r3, [r4, #623] @ zero_extendqisi2 + bne .L2556 +.L2535: + ldrb r3, [r4, #1135] @ zero_extendqisi2 cmp r3, #0 - beq .L2362 + beq .L2538 str r7, [sp] mov r0, #0 mov r1, fp mov r2, r6 add r3, sp, #56 bl flash_ddr_tuning_read -.L2380: +.L2556: mov r8, r0 -.L2362: +.L2538: subs r9, r9, #16 movne r9, #1 cmn r8, #1 movne r9, #0 cmp r9, #0 - beq .L2363 + beq .L2539 mov r0, #16 mov r9, #16 bl nandc_bch_sel - b .L2355 -.L2363: + b .L2531 +.L2539: ldr r0, [sp, #48] bl nandc_bch_sel cmn r8, #1 @@ -13669,21 +14717,21 @@ id_block_read_data.constprop.29: movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L2365 + beq .L2541 ldr r3, [r6] - ldr r2, .L2382+12 + ldr r2, .L2558+12 cmp r3, r2 - bne .L2365 + bne .L2541 ldr r3, [sp, #24] ldr r2, [sp, #20] ldrb r7, [r6, #17] @ zero_extendqisi2 add r3, r3, r2 str r3, [sp, #24] - b .L2366 -.L2365: + b .L2542 +.L2541: ldr r3, [sp, #20] mov r2, r5 - ldr r0, .L2382+16 + ldr r0, .L2558+16 ldr r1, [sp, #36] add r6, r6, r3, asl #9 ldr r3, [sp, #60] @@ -13692,29 +14740,30 @@ id_block_read_data.constprop.29: bl printk mov r3, #0 str r3, [sp, #16] -.L2366: +.L2542: ldr r3, [sp, #20] add r5, r3, r5 uxth r5, r5 - b .L2352 -.L2381: - ldr r3, .L2382+4 + b .L2528 +.L2557: + ldr r3, .L2558+4 mov r0, r10 ldrb r2, [sp, #44] @ zero_extendqisi2 - strb r2, [r3, #656] + strb r2, [r3, #1168] add sp, sp, #124 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2383: +.L2559: .align 2 -.L2382: +.L2558: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR3 .word 1179535694 - .word .LC163 + .word .LC171 .fnend - .size id_block_read_data.constprop.29, .-id_block_read_data.constprop.29 + .size id_block_read_data.constprop.31, .-id_block_read_data.constprop.31 + .text .align 2 .global flash_prog_page .type flash_prog_page, %function @@ -13725,91 +14774,99 @@ flash_prog_page: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r3 - ldr r6, .L2396 + ldr r3, .L2576 mov r10, r2 + mvn r5, #0 + add r8, r0, #8 + mov r4, r0 .pad #20 sub sp, sp, #20 - add r8, r0, #8 - mov r5, r0 + ldrb r2, [r3, #1189] @ zero_extendqisi2 mov r7, r1 - ldrb r3, [r6, #676] @ zero_extendqisi2 + ldr r6, [r3, #1040] ubfx r9, r1, #24, #2 - ldr r4, [r6, #528] - mvn r6, #0 - rsb r3, r3, #24 - bic r6, r1, r6, asl r3 - ldr r3, .L2396+4 - add r8, r4, r8, asl #8 - ldr r2, [r3] - str r3, [sp, #12] - tst r2, #16 - beq .L2385 - ldr r0, .L2396+8 + rsb r2, r2, #24 + str r3, [sp, #8] + bic r5, r1, r5, asl r2 + ldr r2, .L2576+4 + add r8, r6, r8, asl #8 + ldr r0, [r2] + str r2, [sp, #12] + tst r0, #16 + beq .L2561 + ldr r0, .L2576+8 mov r2, r9 ldr r3, [sp, #56] bl printk -.L2385: +.L2561: bl nandc_wait_flash_ready - mov r0, r5 + mov r0, r4 bl hynix_reconfig_rr_para - mov r0, r5 + mov r0, r4 bl nandc_cs cmp r9, #0 - mov r0, r5 - bne .L2386 + mov r0, r4 + bne .L2562 bl zftl_flash_enter_slc_mode - b .L2387 -.L2386: + b .L2563 +.L2562: bl zftl_flash_exit_slc_mode -.L2387: - add r4, r4, r5, asl #8 - mov r3, #128 - mov r0, r6 - str r3, [r4, #2056] - mov r3, #0 - str r3, [r4, #2052] - str r3, [r4, #2052] - uxtb r3, r6 - str r3, [r4, #2052] - mov r3, r6, lsr #8 - str r3, [r4, #2052] - mov r3, r6, lsr #16 - str r3, [r4, #2052] +.L2563: + mov r9, r4, asl #8 + mov r2, #128 + add r3, r6, r9 + mov r0, r5 + add r6, r6, r9 + str r2, [r3, #2056] + mov r2, #0 + str r2, [r3, #2052] + str r2, [r3, #2052] + uxtb r2, r5 + str r2, [r3, #2052] + mov r2, r5, lsr #8 + str r2, [r3, #2052] + mov r2, r5, lsr #16 + str r2, [r3, #2052] + ldr r2, [sp, #8] + ldrb r2, [r2, #1188] @ zero_extendqisi2 + cmp r2, #0 + movne r2, r5, lsr #24 + strne r2, [r3, #2052] bl nandc_set_seed mov r1, #1 - mov r0, r5 + mov r0, r4 ldr r3, [sp, #12] ldrb r2, [r3, #13] @ zero_extendqisi2 mov r3, r10 str fp, [sp] bl nandc_xfer mov r3, #16 - str r3, [r4, #2056] + str r3, [r6, #2056] bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready mov r0, r8 bl flash_read_status - mov r4, r0 - mov r0, r5 + mov r5, r0 + mov r0, r4 bl nandc_de_cs - ands r2, r4, #4 - beq .L2388 - ldr r0, .L2396+12 + ands r2, r5, #4 + beq .L2565 + ldr r0, .L2576+12 mov r1, r7 bl printk mvn r2, #0 -.L2388: +.L2565: mov r0, r2 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2397: +.L2577: .align 2 -.L2396: +.L2576: .word .LANCHOR0 .word .LANCHOR2 - .word .LC164 - .word .LC165 + .word .LC172 + .word .LC173 .fnend .size flash_prog_page, .-flash_prog_page .align 2 @@ -13823,58 +14880,58 @@ flash_test_blk: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r0 - ldr r4, .L2409 + ldr r4, .L2589 mov r5, r1 mov r2, #32 mov r1, #165 - ldr r0, [r4, #-3272] + ldr r0, [r4, #-200] bl ftl_memset mov r1, #90 mov r2, #8 - ldr r0, [r4, #-3264] + ldr r0, [r4, #-192] bl ftl_memset - ldr r3, .L2409+4 + ldr r3, .L2589+4 mov r0, r6 ldrh r3, [r3, #2] mul r5, r3, r5 mov r1, r5 bl flash_erase_block cmn r0, #1 - bne .L2399 -.L2401: + bne .L2579 +.L2581: mvn r4, #0 - b .L2400 -.L2399: - ldr r7, .L2409+8 + b .L2580 +.L2579: + ldr r7, .L2589+8 mov r0, r6 mov r1, r5 ldrb r3, [r7, #13] @ zero_extendqisi2 str r3, [sp] - ldr r2, [r4, #-3272] - ldr r3, [r4, #-3264] + ldr r2, [r4, #-200] + ldr r3, [r4, #-192] bl flash_prog_page cmn r0, #1 - beq .L2401 + beq .L2581 ldrb r3, [r7, #13] @ zero_extendqisi2 mov r0, r6 mov r1, r5 str r3, [sp] - ldr r2, [r4, #-3272] - ldr r3, [r4, #-3264] + ldr r2, [r4, #-200] + ldr r3, [r4, #-192] bl flash_read_page_en cmn r0, #1 - beq .L2401 - ldr r3, [r4, #-3272] + beq .L2581 + ldr r3, [r4, #-200] ldr r2, [r3] - ldr r3, .L2409+12 + ldr r3, .L2589+12 cmp r2, r3 - bne .L2401 - ldr r3, [r4, #-3264] - ldr r4, .L2409+16 + bne .L2581 + ldr r3, [r4, #-192] + ldr r4, .L2589+16 ldr r3, [r3] subs r4, r3, r4 mvnne r4, #0 -.L2400: +.L2580: mov r0, r6 mov r1, r5 bl flash_erase_block @@ -13882,9 +14939,9 @@ flash_test_blk: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2410: +.L2590: .align 2 -.L2409: +.L2589: .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2 @@ -13893,168 +14950,298 @@ flash_test_blk: .fnend .size flash_test_blk, .-flash_test_blk .align 2 + .global flash_start_one_pass_page_prog + .type flash_start_one_pass_page_prog, %function +flash_start_one_pass_page_prog: + .fnstart + @ args = 12, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + .pad #8 + mov r10, r0 + ldr r6, .L2601 + mov r0, r3 + ldr r5, [sp, #40] + mov r9, r3 + mov r8, r2 + mov r7, r9, asl #8 + ldr r4, [r6, #1040] + bl nandc_cs + cmp r10, #0 + mov r0, r5 + add r2, r4, r7 + addne r3, r4, r7 + add r4, r4, r7 + strne r10, [r3, #2056] + mov r3, #128 + str r3, [r2, #2056] + mov r3, #0 + str r3, [r2, #2052] + str r3, [r2, #2052] + uxtb r3, r5 + str r3, [r2, #2052] + mov r3, r5, lsr #8 + str r3, [r2, #2052] + mov r3, r5, lsr #16 + str r3, [r2, #2052] + ldrb r3, [r6, #1188] @ zero_extendqisi2 + cmp r3, #0 + movne r3, r5, lsr #24 + strne r3, [r2, #2052] + bl nandc_set_seed + ldr r3, .L2601+4 + mov r0, r9 + mov r1, #1 + ldrb r2, [r3, #13] @ zero_extendqisi2 + ldr r3, [sp, #48] + str r3, [sp] + ldr r3, [sp, #44] + bl nandc_xfer + str r8, [r4, #2056] + add sp, sp, #8 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L2602: + .align 2 +.L2601: + .word .LANCHOR0 + .word .LANCHOR2 + .fnend + .size flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog + .align 2 .global flash_dual_page_prog .type flash_dual_page_prog, %function flash_dual_page_prog: .fnstart - @ args = 12, pretend = 0, frame = 8 + @ args = 12, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r10, r3 - ldr fp, .L2424 + mov r9, r3 + ldr r4, .L2616 + add r8, r0, #8 + ldr r6, .L2616+4 .pad #20 sub sp, sp, #20 - add r3, r0, #8 - ldr r7, .L2424+4 - mvn r5, #0 - mov r6, r0 - ldr r4, [fp, #528] - mov r8, r1 - mov r9, r2 - add r3, r4, r3, asl #8 - str r3, [sp, #8] - ldrb r3, [fp, #676] @ zero_extendqisi2 + mov r5, r0 + mov r7, r1 + ldr r3, [r4, #1040] + mov r10, r2 ubfx fp, r1, #24, #2 + add r8, r3, r8, asl #8 + ldrb r3, [r4, #1189] @ zero_extendqisi2 + mvn r4, #0 rsb r3, r3, #24 - bic r5, r1, r5, asl r3 - ldr r3, [r7] + bic r4, r1, r4, asl r3 + ldr r3, [r6] tst r3, #16 - beq .L2412 - ldr r0, .L2424+8 + beq .L2604 + ldr r0, .L2616+8 mov r2, fp ldr r3, [sp, #64] bl printk -.L2412: +.L2604: bl nandc_wait_flash_ready - mov r0, r6 + mov r0, r5 bl nandc_cs cmp fp, #0 - mov r0, r6 - bne .L2413 - bl zftl_flash_enter_slc_mode - b .L2414 -.L2413: - bl zftl_flash_exit_slc_mode -.L2414: - add r4, r4, r6, asl #8 - mov ip, #128 - mov fp, #0 - uxtb r3, r5 - str ip, [r4, #2056] mov r0, r5 - str fp, [r4, #2052] - str fp, [r4, #2052] - str r3, [r4, #2052] - mov r3, r5, lsr #8 - str r3, [r4, #2052] - mov r3, r5, lsr #16 - str r3, [r4, #2052] - str ip, [sp, #12] - bl nandc_set_seed - ldrb r2, [r7, #13] @ zero_extendqisi2 - mov r1, #1 - mov r3, r9 - mov r0, r6 - mov r9, #16 - str r10, [sp] - bl nandc_xfer - str r9, [r4, #2056] - bl nandc_iqr_wait_flash_ready + bne .L2605 + bl zftl_flash_enter_slc_mode + b .L2606 +.L2605: + bl zftl_flash_exit_slc_mode +.L2606: + mov r0, #0 + mov r2, #16 + mov r1, r0 + mov r3, r5 + stmia sp, {r4, r10} + add r4, r4, #1 + str r9, [sp, #8] + bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - add r0, r5, #1 - uxtb r3, r0 - ldr ip, [sp, #12] - str ip, [r4, #2056] - str fp, [r4, #2052] - str fp, [r4, #2052] - str r3, [r4, #2052] - mov r3, r0, lsr #8 - str r3, [r4, #2052] - mov r3, r0, lsr r9 - str r3, [r4, #2052] - bl nandc_set_seed - ldrb r2, [r7, #13] @ zero_extendqisi2 - mov r1, #1 - mov r0, r6 - ldr r3, [sp, #60] - str r3, [sp] + mov r0, #0 + mov r2, #16 + mov r1, r0 ldr r3, [sp, #56] - bl nandc_xfer - str r9, [r4, #2056] - bl nandc_iqr_wait_flash_ready + str r4, [sp] + str r3, [sp, #4] + ldr r3, [sp, #60] + str r3, [sp, #8] + mov r3, r5 + bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - ldr r0, [sp, #8] + mov r0, r8 bl flash_read_status mov r4, r0 - mov r0, r6 + mov r0, r5 bl nandc_de_cs ands r2, r4, #4 - beq .L2415 - ldr r3, .L2424+4 - ldr r3, [r3] + beq .L2607 + ldr r3, [r6] tst r3, #4096 - beq .L2416 - ldr r0, .L2424+12 - mov r1, r8 + beq .L2608 + ldr r0, .L2616+12 + mov r1, r7 bl printk -.L2416: +.L2608: mvn r2, #0 -.L2415: +.L2607: mov r0, r2 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2425: +.L2617: .align 2 -.L2424: +.L2616: .word .LANCHOR0 .word .LANCHOR2 - .word .LC164 - .word .LC165 + .word .LC172 + .word .LC173 .fnend .size flash_dual_page_prog, .-flash_dual_page_prog - .section .text.unlikely .align 2 - .type fw_flash_page_prog.constprop.28, %function -fw_flash_page_prog.constprop.28: + .global ymtc_flash_tlc_page_prog + .type ymtc_flash_tlc_page_prog, %function +ymtc_flash_tlc_page_prog: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} + stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #16 + mov r8, r3 + ldr r4, .L2625 + mov r6, #1 + add r7, r0, #8 + mov r5, r0 + mov r9, r2 + mov r10, r1 + ldr r3, [r4, #1040] + ldrb r4, [r4, #1189] @ zero_extendqisi2 + add r7, r3, r7, asl #8 + rsb r4, r4, #24 + mov r4, r6, asl r4 + sub r4, r4, #1 + and r4, r4, r1 + bl nandc_wait_flash_ready + mov r0, r5 + bl nandc_cs + mov r0, r5 + bl zftl_flash_exit_slc_mode + mov r1, r6 + mov r2, #26 + mov r3, r5 + mov r0, #0 + stmia sp, {r4, r9} + str r8, [sp, #8] + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + add r3, r4, r6 + mov r1, r6 + mov r2, #26 + mov r0, #0 + add r4, r4, #2 + stmia sp, {r3, r9} + mov r3, r5 + str r8, [sp, #8] + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + mov r2, #16 + mov r1, r6 + mov r3, r5 + mov r0, #0 + stmia sp, {r4, r9} + str r8, [sp, #8] + bl flash_start_one_pass_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + mov r0, r7 + bl flash_read_status + mov r4, r0 + mov r0, r5 + bl nandc_de_cs + ands r2, r4, #4 + beq .L2619 + ldr r3, .L2625+4 + ldr r3, [r3] + tst r3, #4096 + beq .L2620 + ldr r0, .L2625+8 + mov r1, r10 + bl printk +.L2620: + mvn r2, #0 +.L2619: + mov r0, r2 + add sp, sp, #16 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L2626: + .align 2 +.L2625: + .word .LANCHOR0 + .word .LANCHOR2 + .word .LC174 + .fnend + .size ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog + .section .text.unlikely + .align 2 + .type fw_flash_page_prog.constprop.30, %function +fw_flash_page_prog.constprop.30: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} mov r6, r1 - ldr r4, .L2431 + ldr r4, .L2633 + .pad #20 + sub sp, sp, #20 mov r5, r2 - ldr r3, [r4, #584] + ldr r3, [r4, #1096] ldrb r1, [r3, #9] @ zero_extendqisi2 bl __aeabi_uidiv - ldrb r8, [r4, #660] @ zero_extendqisi2 + ldrb r8, [r4, #1172] @ zero_extendqisi2 mov r7, r0 - ldrb r0, [r4, #588] @ zero_extendqisi2 + ldrb r0, [r4, #1100] @ zero_extendqisi2 bl nandc_bch_sel - ldr r3, .L2431+4 - ldrb r3, [r3, #11] @ zero_extendqisi2 - cmp r3, #9 - bne .L2427 - ldr r4, .L2431+8 - mov r1, #255 - mov r2, #16384 - ldr r0, [r4, #-3272] - bl ftl_memset - ldr r3, [r4, #-3272] + ldr r3, .L2633+4 + ldrb r2, [r3, #11] @ zero_extendqisi2 + cmp r2, #9 + bne .L2628 + ldrb r4, [r4, #1102] @ zero_extendqisi2 + cmp r4, #0 + bne .L2628 + ldrb r3, [r3, #16] @ zero_extendqisi2 + cmp r3, #3 + bne .L2629 + mov r0, r4 + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl ymtc_flash_tlc_page_prog + b .L2632 +.L2629: + ldr r9, .L2633+8 + mov r1, #255 + mov r2, #16384 + ldr r0, [r9, #-200] + bl ftl_memset + ldr r3, [r9, #-200] + mov r0, r4 mov r1, r7 mov r2, r6 - mov r0, #0 str r3, [sp] str r3, [sp, #4] mov r3, #4 str r3, [sp, #8] mov r3, r5 bl flash_dual_page_prog - b .L2430 -.L2427: + b .L2632 +.L2628: mov r3, #4 mov r0, #0 str r3, [sp] @@ -14062,22 +15249,22 @@ fw_flash_page_prog.constprop.28: mov r2, r6 mov r3, r5 bl flash_prog_page -.L2430: +.L2632: mov r4, r0 mov r0, r8 bl nandc_bch_sel mov r0, r4 - add sp, sp, #16 + add sp, sp, #20 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2432: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L2634: .align 2 -.L2431: +.L2633: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3 .fnend - .size fw_flash_page_prog.constprop.28, .-fw_flash_page_prog.constprop.28 + .size fw_flash_page_prog.constprop.30, .-fw_flash_page_prog.constprop.30 .text .align 2 .global flash_start_tlc_page_prog @@ -14090,29 +15277,29 @@ flash_start_tlc_page_prog: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r3 - ldr r3, .L2441 + ldr r3, .L2643 mov r8, r2 add r5, sp, #48 mov fp, r0 mov r7, r1 - ldrb r2, [r3, #589] @ zero_extendqisi2 + ldrb r2, [r3, #1101] @ zero_extendqisi2 mov r6, r3 ldmia r5, {r5, r9, r10} cmp r2, r4 - bhi .L2434 - ldr r1, .L2441+4 - movw r2, #749 - ldr r0, .L2441+8 + bhi .L2636 + ldr r1, .L2643+4 + movw r2, #859 + ldr r0, .L2643+8 bl printk bl dump_stack -.L2434: - ldrb r2, [r6, #589] @ zero_extendqisi2 - ldr r3, .L2441 +.L2636: + ldrb r2, [r6, #1101] @ zero_extendqisi2 + ldr r3, .L2643 cmp r2, r4 - bls .L2433 + bls .L2635 add r4, r3, r4 - ldrb r6, [r4, #668] @ zero_extendqisi2 - ldr r4, [r3, #528] + ldrb r6, [r4, #1180] @ zero_extendqisi2 + ldr r4, [r3, #1040] mov r0, r6 bl nandc_cs cmp fp, #0 @@ -14136,7 +15323,7 @@ flash_start_tlc_page_prog: sub r0, r5, #1 add r0, r0, r7 bl nandc_set_seed - ldr r3, .L2441+12 + ldr r3, .L2643+12 mov r0, r6 mov r1, #1 ldrb r2, [r3, #13] @ zero_extendqisi2 @@ -14149,15 +15336,15 @@ flash_start_tlc_page_prog: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b nandc_de_cs -.L2433: +.L2635: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2442: +.L2644: .align 2 -.L2441: +.L2643: .word .LANCHOR0 - .word .LANCHOR1+1556 + .word .LANCHOR1+2116 .word .LC0 .word .LANCHOR2 .fnend @@ -14171,24 +15358,71 @@ queue_tlc_prog_cmd: stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} .pad #16 - mov r7, #1 - ldr r8, .L2445 + mov r8, #1 + ldr r2, .L2650 mov r6, r0 ldr r3, [r0] - ldrb r4, [r8, #676] @ zero_extendqisi2 - ldr r1, [r3, #24] - rsb r2, r4, #24 - mov r4, r7, asl r4 - mov r5, r7, asl r2 + mov r7, r1 + ldrb r4, [r2, #1189] @ zero_extendqisi2 + ldr r0, [r3, #24] + rsb r1, r4, #24 + ldrb r2, [r2, #1197] @ zero_extendqisi2 + mov r4, r8, asl r4 + mov r5, r8, asl r1 sub r4, r4, #1 + cmp r2, #0 + and r4, r4, r0, lsr r1 sub r5, r5, #1 - ldrb r0, [r3, #44] @ zero_extendqisi2 - and r5, r5, r1 - and r4, r4, r1, lsr r2 - str r5, [sp] - mov r1, r7 - ldr r2, [r3, #4] + and r5, r5, r0 uxtb r4, r4 + beq .L2646 + mov r0, r4 + bl zftl_flash_exit_slc_mode + ldr r3, [r6] + mov r1, r8 + mov r0, #0 + str r5, [sp] + ldr r2, [r3, #4] + str r2, [sp, #4] + mov r2, #26 + ldr r3, [r3, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr r3, [r6, #4] + add r2, r5, r8 + mov r1, r8 + mov r0, #0 + add r5, r5, #2 + str r2, [sp] + ldr r2, [r3, #4] + str r2, [sp, #4] + mov r2, #26 + ldr r3, [r3, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr r3, [r6, #8] + mov r0, #0 + mov r1, r8 + str r5, [sp] + ldr r2, [r3, #4] + str r2, [sp, #4] + mov r2, #16 + ldr r3, [r3, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + b .L2647 +.L2646: + ldrb r0, [r3, #44] @ zero_extendqisi2 + mov r1, r8 + str r5, [sp] + ldr r2, [r3, #4] str r2, [sp, #4] mov r2, #26 ldr r3, [r3, #12] @@ -14222,22 +15456,30 @@ queue_tlc_prog_cmd: str r3, [sp, #8] mov r3, r4 bl flash_start_tlc_page_prog +.L2647: + cmp r7, #0 + beq .L2645 ldr r1, [r6] - add r0, r8, #2256 mov r3, #4 - add r0, r0, #7 + ldr r0, .L2650+4 strb r3, [r1, #42] + mov r3, #1 + strb r3, [r1, #43] mvn r3, #0 - strb r7, [r1, #43] strb r3, [r1] add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, lr} b buf_add_tail -.L2446: +.L2645: + add sp, sp, #16 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L2651: .align 2 -.L2445: +.L2650: .word .LANCHOR0 + .word .LANCHOR0+2775 .fnend .size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd .align 2 @@ -14247,27 +15489,27 @@ sblk_3d_tlc_dump_prog: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2449 - stmfd sp!, {r4, r5, r6, r7, lr} - .save {r4, r5, r6, r7, lr} + stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + .pad #16 mov r7, #1 - ldrb r4, [r3, #676] @ zero_extendqisi2 + ldr r3, .L2656 mov r5, r0 - ldr r2, [r0, #24] - .pad #20 - sub sp, sp, #20 - rsb r3, r4, #24 + ldr r1, [r0, #24] + ldrb r4, [r3, #1189] @ zero_extendqisi2 + ldrb r8, [r3, #1197] @ zero_extendqisi2 + rsb r2, r4, #24 mov r4, r7, asl r4 - mov r6, r7, asl r3 sub r4, r4, #1 + mov r6, r7, asl r2 + and r4, r4, r1, lsr r2 + cmp r8, #0 sub r6, r6, #1 - and r4, r4, r2, lsr r3 - and r6, r6, r2 - mov r3, r2 - ldr r0, .L2449+4 + and r6, r6, r1 uxtb r4, r4 - mov r1, r6 - bl printk + beq .L2653 + mov r0, r4 + bl zftl_flash_exit_slc_mode ldr r3, [r5, #4] mov r1, r7 mov r2, #26 @@ -14277,13 +15519,51 @@ sblk_3d_tlc_dump_prog: str r6, [sp] str r3, [sp, #8] mov r3, r4 + bl flash_start_one_pass_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + add r3, r6, r7 + mov r1, r7 + mov r2, #26 + mov r0, #0 + add r6, r6, #2 + str r3, [sp] + ldr r3, [r5, #4] + str r3, [sp, #4] + ldr r3, [r5, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr r3, [r5, #4] + mov r0, #0 + mov r1, r7 + mov r2, #16 + str r3, [sp, #4] + ldr r3, [r5, #12] + str r6, [sp] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + b .L2654 +.L2653: + str r6, [sp] + mov r1, r7 + ldr r3, [r0, #4] + mov r2, #26 + str r3, [sp, #4] + ldr r3, [r0, #12] + mov r0, r8 + str r3, [sp, #8] + mov r3, r4 bl flash_start_tlc_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready ldr r3, [r5, #4] mov r1, #2 mov r2, #26 - mov r0, #0 + mov r0, r8 str r3, [sp, #4] ldr r3, [r5, #12] str r6, [sp] @@ -14293,28 +15573,28 @@ sblk_3d_tlc_dump_prog: bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready ldr r3, [r5, #4] + mov r0, r8 mov r1, #3 mov r2, #16 - mov r0, #0 str r3, [sp, #4] ldr r3, [r5, #12] str r6, [sp] str r3, [sp, #8] mov r3, r4 bl flash_start_tlc_page_prog +.L2654: bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready ldr r0, [r5, #24] mov r1, #64 - add sp, sp, #20 + add sp, sp, #16 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, lr} + ldmfd sp!, {r4, r5, r6, r7, r8, lr} b flash_wait_device_ready -.L2450: +.L2657: .align 2 -.L2449: +.L2656: .word .LANCHOR0 - .word .LC166 .fnend .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog .align 2 @@ -14328,27 +15608,27 @@ flash_start_3d_mlc_page_prog: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L2455 + ldr r3, .L2662 mov r5, r2 mov r7, r0 mov r4, r1 - ldrb r2, [r3, #589] @ zero_extendqisi2 + ldrb r2, [r3, #1101] @ zero_extendqisi2 mov r6, r3 cmp r2, r1 - bhi .L2452 - ldr r1, .L2455+4 - movw r2, #781 - ldr r0, .L2455+8 + bhi .L2659 + ldr r1, .L2662+4 + mov r2, #892 + ldr r0, .L2662+8 bl printk bl dump_stack -.L2452: - ldrb r2, [r6, #589] @ zero_extendqisi2 - ldr r3, .L2455 +.L2659: + ldrb r2, [r6, #1101] @ zero_extendqisi2 + ldr r3, .L2662 cmp r2, r4 - bls .L2451 + bls .L2658 add r4, r3, r4 - ldrb r6, [r4, #668] @ zero_extendqisi2 - ldr r4, [r3, #528] + ldrb r6, [r4, #1180] @ zero_extendqisi2 + ldr r4, [r3, #1040] add r4, r4, r6, asl #8 mov r0, r6 bl nandc_cs @@ -14365,7 +15645,7 @@ flash_start_3d_mlc_page_prog: mov r3, r5, lsr #16 str r3, [r4, #2052] bl nandc_set_seed - ldr r3, .L2455+12 + ldr r3, .L2662+12 mov r0, r6 mov r1, #1 ldrb r2, [r3, #13] @ zero_extendqisi2 @@ -14374,15 +15654,15 @@ flash_start_3d_mlc_page_prog: mov r3, r8 bl nandc_xfer str r7, [r4, #2056] -.L2451: +.L2658: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2456: +.L2663: .align 2 -.L2455: +.L2662: .word .LANCHOR0 - .word .LANCHOR1+1584 + .word .LANCHOR1+2144 .word .LC0 .word .LANCHOR2 .fnend @@ -14394,12 +15674,12 @@ sblk_mlc_dump_prog: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2459 + ldr r3, .L2670 stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 mov r4, #1 - ldrb r1, [r3, #676] @ zero_extendqisi2 + ldrb r1, [r3, #1189] @ zero_extendqisi2 mov r5, r0 ldr r2, [r0, #24] rsb r3, r1, #24 @@ -14412,11 +15692,16 @@ sblk_mlc_dump_prog: uxtb r4, r4 mov r0, r4 bl zftl_flash_exit_slc_mode + ldr r3, .L2670+4 + ldr r3, [r3] + tst r3, #4096 + beq .L2665 ldr r2, [r5, #24] mov r1, r6 - ldr r0, .L2459+4 + ldr r0, .L2670+8 add r3, r2, #1 bl printk +.L2665: ldr r3, [r5, #12] mov r1, r4 mov r2, r6 @@ -14445,11 +15730,12 @@ sblk_mlc_dump_prog: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L2460: +.L2671: .align 2 -.L2459: +.L2670: .word .LANCHOR0 - .word .LC167 + .word .LANCHOR2 + .word .LC175 .fnend .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog .align 2 @@ -14461,112 +15747,115 @@ flash_start_page_prog: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mvn r5, #0 - ldr r7, .L2472 + mov fp, r3 + ldr r6, .L2687 + mvn r3, #0 mov r10, r2 .pad #20 sub sp, sp, #20 - mov r9, r0 mov r8, r1 - mov fp, r3 - ldrb r6, [r7, #676] @ zero_extendqisi2 - ldrb r2, [r7, #589] @ zero_extendqisi2 - rsb ip, r6, #24 - mvn r6, r5, asl r6 - and r4, r6, r1, lsr ip - uxtb r4, r4 - cmp r2, r4 - bhi .L2462 - ldr r1, .L2472+4 - mov r2, #832 - ldr r0, .L2472+8 - str ip, [sp, #8] + ldrb r4, [r6, #1189] @ zero_extendqisi2 + ldrb r2, [r6, #1101] @ zero_extendqisi2 + rsb r7, r4, #24 + str r0, [sp, #8] + mvn r4, r3, asl r4 + and r5, r4, r1, lsr r7 + uxtb r9, r5 + cmp r2, r9 + bhi .L2673 + ldr r1, .L2687+4 + movw r2, #945 + ldr r0, .L2687+8 bl printk bl dump_stack - ldr ip, [sp, #8] -.L2462: - ldrb r1, [r7, #589] @ zero_extendqisi2 - ldr r2, .L2472 - cmp r1, r4 - bls .L2461 - ldr r3, [r2, #528] - add r1, r2, r4 - mvn r5, #0 +.L2673: + ldrb r1, [r6, #1101] @ zero_extendqisi2 + ldr r2, .L2687 + cmp r1, r9 + bls .L2672 + add r1, r2, r9 + mvn r4, #0 str r2, [sp, #12] - bic r5, r8, r5, asl ip - ldrb r6, [r1, #668] @ zero_extendqisi2 - str r3, [sp, #8] + bic r4, r8, r4, asl r7 + ldrb r5, [r1, #1180] @ zero_extendqisi2 + ldr r7, [r2, #1040] bl nandc_rdy_status cmp r0, #0 ldr r2, [sp, #12] - bne .L2464 - ldrb r2, [r2, #589] @ zero_extendqisi2 + bne .L2675 + ldrb r2, [r2, #1101] @ zero_extendqisi2 cmp r2, #1 - bne .L2465 + bne .L2676 bl nandc_wait_flash_ready - b .L2464 -.L2465: - mov r0, r4 - mov r1, r5 + b .L2675 +.L2676: + mov r0, r9 + mov r1, r4 mov r2, #64 bl flash_wait_device_ready_raw -.L2464: - mov r0, r6 +.L2675: + mov r0, r5 bl hynix_reconfig_rr_para - mov r0, r6 + mov r0, r5 bl nandc_cs tst r8, #50331648 - bne .L2466 - mov r0, r5 + bne .L2677 + mov r0, r4 bl slc_phy_page_address_calc - ldrb r3, [r7] @ zero_extendqisi2 + ldrb r3, [r6] @ zero_extendqisi2 cmp r3, #0 - mov r5, r0 - beq .L2467 - mov r0, r6 - bl zftl_flash_enter_slc_mode - b .L2467 -.L2466: - mov r0, r6 - bl zftl_flash_exit_slc_mode -.L2467: - ldr r3, [sp, #8] + mov r4, r0 + beq .L2678 mov r0, r5 - add r4, r3, r6, asl #8 - mov r3, #128 - str r3, [r4, #2056] - mov r3, #0 - str r3, [r4, #2052] - str r3, [r4, #2052] - uxtb r3, r5 - str r3, [r4, #2052] - mov r3, r5, lsr #8 - str r3, [r4, #2052] - mov r3, r5, lsr #16 - str r3, [r4, #2052] + bl zftl_flash_enter_slc_mode + b .L2678 +.L2677: + mov r0, r5 + bl zftl_flash_exit_slc_mode +.L2678: + mov r8, r5, asl #8 + mov r2, #128 + add r3, r7, r8 + mov r0, r4 + add r7, r7, r8 + str r2, [r3, #2056] + mov r2, #0 + str r2, [r3, #2052] + str r2, [r3, #2052] + uxtb r2, r4 + str r2, [r3, #2052] + mov r2, r4, lsr #8 + str r2, [r3, #2052] + mov r2, r4, lsr #16 + str r2, [r3, #2052] + ldrb r2, [r6, #1188] @ zero_extendqisi2 + cmp r2, #0 + movne r2, r4, lsr #24 + strne r2, [r3, #2052] bl nandc_set_seed - ldr r3, .L2472+12 - mov r0, r6 + ldr r3, .L2687+12 + mov r0, r5 mov r1, #1 ldrb r2, [r3, #13] @ zero_extendqisi2 mov r3, r10 str fp, [sp] bl nandc_xfer - str r9, [r4, #2056] - mov r0, r6 + mov r0, r5 + ldr r3, [sp, #8] + str r3, [r7, #2056] add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b nandc_de_cs -.L2461: +.L2672: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2473: +.L2688: .align 2 -.L2472: +.L2687: .word .LANCHOR0 - .word .LANCHOR1+1616 + .word .LANCHOR1+2176 .word .LC0 .word .LANCHOR2 .fnend @@ -14585,51 +15874,52 @@ queue_prog_cmd: ldr r3, [r4, #12] ldr r1, [r4, #24] bl flash_start_page_prog - ldr r2, .L2483 + ldr r2, .L2698 ldr r0, [r4, #24] - ldrb r3, [r2, #2263] @ zero_extendqisi2 + ldrb r3, [r2, #2775] @ zero_extendqisi2 cmp r3, #255 - beq .L2475 - ldrb ip, [r2, #676] @ zero_extendqisi2 + beq .L2690 + ldrb ip, [r2, #1189] @ zero_extendqisi2 mvn r1, #0 mov r5, #48 rsb r6, ip, #24 mvn r1, r1, asl ip uxth r1, r1 and r0, r1, r0, asr r6 -.L2477: - mla ip, r5, r3, r2 - ldr lr, [ip, #748] - and lr, r1, lr, lsr r6 - cmp r0, lr - bne .L2476 - add lr, ip, #764 - ldrb ip, [ip, #766] @ zero_extendqisi2 - cmp ip, #7 +.L2692: + mla lr, r5, r3, r2 + ldr ip, [lr, #1260] + and ip, r1, ip, lsr r6 + cmp r0, ip + bne .L2691 + add ip, lr, #1264 + ldrb lr, [lr, #1278] @ zero_extendqisi2 + add ip, ip, #12 + cmp lr, #7 moveq r3, #3 - streqb r3, [lr, #2] - beq .L2475 -.L2476: + streqb r3, [ip, #2] + beq .L2690 +.L2691: mla r3, r5, r3, r2 - ldrb r3, [r3, #724] @ zero_extendqisi2 + ldrb r3, [r3, #1236] @ zero_extendqisi2 cmp r3, #255 - bne .L2477 -.L2475: + bne .L2692 +.L2690: mov r3, #3 mov r1, r4 strb r3, [r4, #42] mov r3, #1 - ldr r0, .L2483+4 + ldr r0, .L2698+4 strb r3, [r4, #43] mvn r3, #0 strb r3, [r4] ldmfd sp!, {r4, r5, r6, lr} b buf_add_tail -.L2484: +.L2699: .align 2 -.L2483: +.L2698: .word .LANCHOR0 - .word .LANCHOR0+2263 + .word .LANCHOR0+2775 .fnend .size queue_prog_cmd, .-queue_prog_cmd .align 2 @@ -14643,122 +15933,138 @@ flash_complete_plane_page_read: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 mvn r3, #0 - ldr r4, .L2502 + ldr r8, .L2730 mov r10, r0 mov r6, r1 mov r7, r2 - ldrb r8, [r4, #676] @ zero_extendqisi2 - rsb r9, r8, #24 - mvn r8, r3, asl r8 - and r3, r8, r0, lsr r9 - uxtb r5, r3 - ldrb r3, [r4, #589] @ zero_extendqisi2 + ldrb r4, [r8, #1189] @ zero_extendqisi2 + rsb r9, r4, #24 + mvn r4, r3, asl r4 + and r4, r4, r0, lsr r9 + ldrb r3, [r8, #1101] @ zero_extendqisi2 + uxtb r5, r4 cmp r3, r5 - bhi .L2486 - ldr r1, .L2502+4 - movw r2, #921 - ldr r0, .L2502+8 + bhi .L2701 + ldr r1, .L2730+4 + movw r2, #1055 + ldr r0, .L2730+8 bl printk bl dump_stack -.L2486: - ldrb r2, [r4, #589] @ zero_extendqisi2 - ldr r3, .L2502 +.L2701: + ldrb r2, [r8, #1101] @ zero_extendqisi2 + ldr r3, .L2730 cmp r2, r5 mvnls r0, #0 - bls .L2487 + bls .L2702 add r5, r3, r5 - mvn r2, #0 - bic r9, r10, r2, asl r9 + mvn r4, #0 + bic r4, r10, r4, asl r9 ubfx r10, r10, #24, #2 - ldrb r5, [r5, #668] @ zero_extendqisi2 - ldr r8, [r3, #528] - mov r0, r5 + ldrb r9, [r5, #1180] @ zero_extendqisi2 + ldr r5, [r3, #1040] + mov r0, r9 bl nandc_cs cmp r10, #0 - bne .L2488 - mov r0, r9 + bne .L2703 + mov r0, r4 bl slc_phy_page_address_calc - mov r9, r0 -.L2488: - ldrb r3, [r4, #607] @ zero_extendqisi2 - uxtb r0, r9 - mov r1, r9, lsr #8 - mov r2, r9, lsr #16 + mov r4, r0 +.L2703: + ldrb r3, [r8, #1119] @ zero_extendqisi2 + uxtb ip, r4 + mov r0, r4, lsr #8 + ldrb r1, [r8, #1188] @ zero_extendqisi2 cmp r3, #1 - mov r3, r5, asl #8 - addeq r3, r8, r3 - moveq ip, #6 - beq .L2501 - ldr ip, .L2502 - add r3, r8, r3 - ldr ip, [ip, #584] - ldrb ip, [ip, #12] @ zero_extendqisi2 - cmp ip, #3 - bne .L2491 - mov ip, #5 -.L2501: - str ip, [r3, #2056] - mov ip, #0 - str ip, [r3, #2052] - str ip, [r3, #2052] - str r0, [r3, #2052] - str r1, [r3, #2052] - str r2, [r3, #2052] - b .L2499 -.L2491: - mov ip, #0 - str ip, [r3, #2056] - str ip, [r3, #2052] - str ip, [r3, #2052] - str r0, [r3, #2052] - str r1, [r3, #2052] - str r2, [r3, #2052] - mov r2, #5 - str r2, [r3, #2056] - str ip, [r3, #2052] - str ip, [r3, #2052] -.L2499: + mov r3, r9, asl #8 + addeq r2, r5, r3 + moveq lr, #6 + beq .L2729 + ldr r2, .L2730 + ldr r2, [r2, #1096] + ldrb r2, [r2, #12] @ zero_extendqisi2 + cmp r2, #3 + add r2, r5, r3 + bne .L2707 + mov lr, #5 +.L2729: + add r3, r5, r3 + str lr, [r2, #2056] + mov lr, #0 + cmp r1, lr + str lr, [r2, #2052] + movne r1, r4, lsr #24 + str lr, [r2, #2052] + str ip, [r2, #2052] + str r0, [r2, #2052] + mov r0, r4, lsr #16 + str r0, [r2, #2052] + strne r1, [r2, #2052] mov r2, #224 str r2, [r3, #2056] - ldr r3, [r4, #584] - ldrb r2, [r3, #12] @ zero_extendqisi2 - adds r3, r10, #0 - movne r3, #1 - cmp r2, #3 - movne r3, #0 + b .L2706 +.L2707: + add r5, r5, r3 + mov lr, #0 + cmp r1, lr + str lr, [r2, #2056] + mov r3, #5 + str lr, [r2, #2052] + movne r1, r4, lsr #24 + str lr, [r2, #2052] + str ip, [r2, #2052] + str r0, [r2, #2052] + mov r0, r4, lsr #16 + str r0, [r2, #2052] + strne r1, [r2, #2052] + str r3, [r5, #2056] + mov r3, #0 + str r3, [r2, #2052] + str r3, [r2, #2052] + mov r3, #224 + str r3, [r5, #2056] +.L2706: + ldr r2, [r8, #1096] + ldr r3, .L2730 + ldrb r1, [r2, #12] @ zero_extendqisi2 + adds r2, r10, #0 + movne r2, #1 + cmp r1, #3 + movne r2, #0 + cmp r2, #0 + beq .L2710 + ldrb r2, [r3, #1196] @ zero_extendqisi2 + cmp r2, #0 + bne .L2710 + ldrb r3, [r3, #1197] @ zero_extendqisi2 cmp r3, #0 - beq .L2492 - ldr r3, .L2502 - ldrb r3, [r3, #684] @ zero_extendqisi2 - cmp r3, #0 - subeq r3, r10, #1 - addeq r0, r9, r9, asl #1 - addeq r0, r3, r0 - beq .L2500 -.L2492: - mov r0, r9 -.L2500: + subeq r0, r10, #1 + addeq r4, r4, r4, asl #1 + addeq r0, r0, r4 + beq .L2726 +.L2710: + mov r0, r4 +.L2726: bl nandc_set_seed - ldr r3, .L2502+12 + ldr r3, .L2730+12 mov r1, #0 - mov r0, r5 + mov r0, r9 ldrb r2, [r3, #13] @ zero_extendqisi2 mov r3, r6 str r7, [sp] bl nandc_xfer mov r4, r0 - mov r0, r5 + mov r0, r9 bl nandc_de_cs mov r0, r4 -.L2487: +.L2702: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2503: +.L2731: .align 2 -.L2502: +.L2730: .word .LANCHOR0 - .word .LANCHOR1+1640 + .word .LANCHOR1+2200 .word .LC0 .word .LANCHOR2 .fnend @@ -14773,177 +16079,189 @@ flash_complete_page_read: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, #1 - ldr r5, .L2538 + ldr r5, .L2767 .pad #20 sub sp, sp, #20 - mov r9, r0 - mov r10, r1 - mov fp, r2 - ldrb r7, [r5, #676] @ zero_extendqisi2 + mov r8, r0 + mov r9, r1 + mov r10, r2 + ldrb r7, [r5, #1189] @ zero_extendqisi2 rsb r3, r7, #24 mov r7, r6, asl r7 sub r7, r7, #1 mov r4, r6, asl r3 and r7, r7, r0, lsr r3 - ldrb r3, [r5, #589] @ zero_extendqisi2 + ldrb r3, [r5, #1101] @ zero_extendqisi2 sub r4, r4, #1 ubfx r6, r0, #24, #2 uxtb r7, r7 and r4, r4, r0 cmp r3, r7 - bhi .L2505 - ldr r1, .L2538+4 - movw r2, #1045 - ldr r0, .L2538+8 + bhi .L2733 + ldr r1, .L2767+4 + movw r2, #1212 + ldr r0, .L2767+8 bl printk bl dump_stack -.L2505: +.L2733: add r7, r5, r7 - ldrb r8, [r7, #668] @ zero_extendqisi2 - ldr r7, [r5, #528] - mov r0, r8 + ldr fp, [r5, #1040] + ldrb r7, [r7, #1180] @ zero_extendqisi2 + mov r0, r7 bl nandc_cs cmp r6, #0 - bne .L2506 + bne .L2734 mov r0, r4 bl slc_phy_page_address_calc mov r4, r0 -.L2506: - add r3, r7, r8, asl #8 - mov r2, #5 - str r2, [r3, #2056] - mov r2, #0 - str r2, [r3, #2052] - str r2, [r3, #2052] - uxtb r2, r4 - str r2, [r3, #2052] - mov r2, r4, lsr #8 - str r2, [r3, #2052] - mov r2, r4, lsr #16 - str r2, [r3, #2052] - mov r2, #224 - str r2, [r3, #2056] - ldr r3, [r5, #584] - ldrb r2, [r3, #12] @ zero_extendqisi2 - adds r3, r6, #0 - movne r3, #1 - cmp r2, #3 - movne r3, #0 - cmp r3, #0 - beq .L2507 - ldr r3, .L2538 - ldrb r3, [r3, #684] @ zero_extendqisi2 +.L2734: + mov r2, r7, asl #8 + mov r1, #5 + add r3, fp, r2 + add fp, fp, r2 + ldr r2, [r5, #1096] + str r1, [r3, #2056] + mov r1, #0 + str r1, [r3, #2052] + str r1, [r3, #2052] + ldr r1, .L2767+12 + ldrb r0, [r1, #16] @ zero_extendqisi2 + str r1, [sp, #8] + cmp r0, #3 + uxtbeq r1, r4 + streq r1, [r3, #2052] + moveq r1, r4, lsr #8 + streq r1, [r3, #2052] + moveq r1, r4, lsr #16 + streq r1, [r3, #2052] + mov r3, #224 + str r3, [fp, #2056] + ldrb r1, [r2, #12] @ zero_extendqisi2 + adds r2, r6, #0 + ldr r3, .L2767 + movne r2, #1 + cmp r1, #3 + movne r2, #0 + cmp r2, #0 + beq .L2736 + ldrb r2, [r3, #1196] @ zero_extendqisi2 + cmp r2, #0 + bne .L2736 + ldrb r3, [r3, #1197] @ zero_extendqisi2 cmp r3, #0 subeq r0, r6, #1 addeq r3, r4, r4, asl #1 addeq r0, r0, r3 - beq .L2537 -.L2507: + beq .L2766 +.L2736: mov r0, r4 -.L2537: +.L2766: bl nandc_set_seed - ldr r7, .L2538+12 - mov r0, r8 + mov r0, r7 mov r1, #0 - mov r3, r10 - ldrb r2, [r7, #13] @ zero_extendqisi2 - str fp, [sp] + ldr r3, [sp, #8] + ldrb r2, [r3, #13] @ zero_extendqisi2 + mov r3, r9 + str r10, [sp] bl nandc_xfer cmn r0, #1 - bne .L2509 - ldrb ip, [r5, #656] @ zero_extendqisi2 - cmp ip, #0 - beq .L2510 - ldr r2, .L2538 + bne .L2738 + ldrb fp, [r5, #1168] @ zero_extendqisi2 + ldr ip, .L2767 + cmp fp, #0 + beq .L2739 mov r3, #0 - mov r0, r8 + strb r3, [ip, #1168] + ldr r3, .L2767+12 + mov r0, r7 orr r1, r4, r6, asl #24 + mov r2, r9 str ip, [sp, #12] - strb r3, [r2, #656] - mov r2, r10 - ldrb r3, [r7, #13] @ zero_extendqisi2 + ldrb r3, [r3, #13] @ zero_extendqisi2 str r3, [sp] - mov r3, fp + mov r3, r10 bl flash_read_page - ldr r3, .L2538 cmp r6, #0 ldr ip, [sp, #12] - strb ip, [r3, #656] - bne .L2511 -.L2518: + strb fp, [ip, #1168] + bne .L2740 +.L2747: ldrb r3, [r5] @ zero_extendqisi2 cmp r3, #0 - beq .L2511 - ldr r3, .L2538 - ldrb r3, [r3, #660] @ zero_extendqisi2 + beq .L2740 + ldr r3, .L2767 + ldrb r3, [r3, #1172] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - blt .L2511 - ldrb r3, [r7, #23] @ zero_extendqisi2 + blt .L2740 + ldr r3, [sp, #8] + ldrb r3, [r3, #23] @ zero_extendqisi2 sub r3, r3, #4 cmp r3, #4 movls r0, #256 - b .L2525 -.L2511: + b .L2754 +.L2740: cmn r0, #1 - bne .L2525 -.L2519: - ldr r3, .L2538+16 - ldr ip, [r3, #-3252] + bne .L2754 +.L2748: + ldr r3, .L2767+16 + ldr ip, [r3, #-180] cmp ip, #0 - bne .L2514 -.L2517: - ldrb r3, [r5, #656] @ zero_extendqisi2 + bne .L2743 +.L2746: + ldrb r3, [r5, #1168] @ zero_extendqisi2 mov r1, #0 - ldr r0, .L2538+20 - mov r2, r9 + ldr r0, .L2767+20 + mov r2, r8 str r3, [sp] mvn r3, #0 bl printk - ldrb r3, [r5, #623] @ zero_extendqisi2 + ldrb r3, [r5, #1135] @ zero_extendqisi2 cmp r3, #0 mvneq r0, #0 - beq .L2525 - ldrb r3, [r7, #13] @ zero_extendqisi2 - mov r0, r8 + beq .L2754 + ldr r3, [sp, #8] + mov r0, r7 orr r1, r4, r6, asl #24 - mov r2, r10 + mov r2, r9 + ldrb r3, [r3, #13] @ zero_extendqisi2 str r3, [sp] - mov r3, fp + mov r3, r10 bl flash_ddr_tuning_read - b .L2525 -.L2514: - ldrb r3, [r7, #13] @ zero_extendqisi2 - mov r0, r8 + b .L2754 +.L2743: + ldr r3, [sp, #8] + mov r0, r7 orr r1, r4, r6, asl #24 - mov r2, r10 + mov r2, r9 + ldrb r3, [r3, #13] @ zero_extendqisi2 str r3, [sp] - mov r3, fp + mov r3, r10 blx ip cmn r0, #1 - bne .L2525 - b .L2517 -.L2509: + bne .L2754 + b .L2746 +.L2738: cmp r6, #0 - beq .L2518 - b .L2525 -.L2510: + beq .L2747 + b .L2754 +.L2739: cmp r6, #0 - beq .L2518 - b .L2519 -.L2525: + beq .L2747 + b .L2748 +.L2754: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2539: +.L2768: .align 2 -.L2538: +.L2767: .word .LANCHOR0 - .word .LANCHOR1+1672 + .word .LANCHOR1+2232 .word .LC0 .word .LANCHOR2 .word .LANCHOR3 - .word .LC168 + .word .LC176 .fnend .size flash_complete_page_read, .-flash_complete_page_read .align 2 @@ -14956,492 +16274,490 @@ queue_wait_first_req_completed: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L2636 - ldrb r5, [r4, #2263] @ zero_extendqisi2 - cmp r5, #255 - beq .L2574 + ldr r5, .L2866 + ldrb r4, [r5, #2775] @ zero_extendqisi2 + cmp r4, #255 + beq .L2803 mov r3, #48 - mla r3, r3, r5, r4 - ldrb r2, [r3, #766] @ zero_extendqisi2 - ldr r6, [r3, #748] + mla r3, r3, r4, r5 + ldrb r2, [r3, #1278] @ zero_extendqisi2 + ldr r6, [r3, #1260] sub r3, r2, #1 cmp r3, #10 ldrls pc, [pc, r3, asl #2] - b .L2574 -.L2544: - .word .L2543 - .word .L2545 - .word .L2546 - .word .L2546 - .word .L2546 - .word .L2546 - .word .L2547 - .word .L2548 - .word .L2549 - .word .L2546 - .word .L2549 -.L2543: + b .L2803 +.L2773: + .word .L2772 + .word .L2774 + .word .L2775 + .word .L2775 + .word .L2775 + .word .L2775 + .word .L2776 + .word .L2777 + .word .L2778 + .word .L2775 + .word .L2778 +.L2772: mov r0, r6 mov r1, #64 bl flash_wait_device_ready tst r0, #64 - beq .L2574 + beq .L2803 mov r3, #48 - mla r3, r3, r5, r4 - ldr r2, [r3, #732] - ldr r1, [r3, #728] + mla r3, r3, r4, r5 + ldr r2, [r3, #1244] + ldr r1, [r3, #1240] cmp r2, #0 - beq .L2551 - ldrb r0, [r3, #764] @ zero_extendqisi2 - ldr r3, .L2636 - ldrb r3, [r3, #2260] @ zero_extendqisi2 + beq .L2780 + ldrb r0, [r3, #1276] @ zero_extendqisi2 + ldr r3, .L2866 + ldrb r3, [r3, #2772] @ zero_extendqisi2 cmp r0, r3 moveq r1, r2 -.L2551: +.L2780: mov r3, #48 mov r0, r6 - mla r5, r3, r5, r4 - ldr r2, [r5, #736] + mla r5, r3, r4, r5 + ldr r2, [r5, #1248] bl flash_complete_page_read - mov r3, #13 - strb r3, [r5, #766] - ldrb r3, [r5, #726] @ zero_extendqisi2 - orr r3, r3, #8 - strb r3, [r5, #726] - str r0, [r5, #760] - b .L2574 -.L2545: + str r0, [r5, #1272] + b .L2864 +.L2774: mov r0, r6 mov r1, #64 bl flash_wait_device_ready mov r2, #48 - mla r3, r2, r5, r4 - ldr r1, .L2636 - ldrb r6, [r3, #724] @ zero_extendqisi2 + mla r3, r2, r4, r5 + ldr ip, .L2866 + add r1, r3, #1232 + add r1, r1, #4 + ldrb r6, [r3, #1236] @ zero_extendqisi2 tst r0, #64 - beq .L2574 - mla r2, r2, r6, r1 - ldr fp, [r3, #728] - ldr r9, [r2, #728] - ldr r2, [r3, #732] + beq .L2803 + mla r2, r2, r6, ip + ldr r10, [r1, #4] + ldr r8, [r2, #1240] + ldr r2, [r3, #1244] cmp r2, #0 - beq .L2552 - ldrb r0, [r3, #764] @ zero_extendqisi2 - ldrb r3, [r1, #2260] @ zero_extendqisi2 - cmp r0, r3 - moveq fp, r2 -.L2552: - mov r3, #48 - mla r3, r3, r6, r4 - ldr r2, [r3, #732] - cmp r2, #0 - beq .L2553 - ldrb r1, [r3, #764] @ zero_extendqisi2 - ldr r3, .L2636 - ldrb r3, [r3, #2260] @ zero_extendqisi2 + beq .L2781 + ldrb r1, [r3, #1276] @ zero_extendqisi2 + ldrb r3, [ip, #2772] @ zero_extendqisi2 cmp r1, r3 - moveq r9, r2 -.L2553: - mov r7, #48 - mov r1, fp - mla r3, r7, r5, r4 - mla r7, r7, r6, r4 - add ip, r3, #732 - str ip, [sp, #8] - ldr r2, [r3, #736] - ldr r0, [r3, #748] + moveq r10, r2 +.L2781: + mov r3, #48 + mla r3, r3, r6, r5 + ldr r2, [r3, #1244] + cmp r2, #0 + beq .L2782 + ldrb r1, [r3, #1276] @ zero_extendqisi2 + ldr r3, .L2866 + ldrb r3, [r3, #2772] @ zero_extendqisi2 + cmp r1, r3 + moveq r8, r2 +.L2782: + mov r9, #48 + mov r1, r10 + mla r3, r9, r4, r5 + mla r9, r9, r6, r5 + add fp, r3, #1232 + add fp, fp, #12 + ldr r2, [r3, #1248] + ldr r0, [r3, #1260] str r3, [sp, #12] bl flash_complete_plane_page_read - mov r1, r9 - ldr r2, [r7, #736] - mov r8, r0 - ldr r0, [r7, #748] + ldr r2, [r9, #1248] + mov r1, r8 + mov r7, r0 + ldr r0, [r9, #1260] bl flash_complete_plane_page_read - cmn r8, #1 - mov r10, r0 - beq .L2554 + cmn r7, #1 + mov r9, r0 + beq .L2783 ldr r3, [sp, #12] - ldr r3, [r3, #744] + ldr r3, [r3, #1256] cmn r3, #1 - beq .L2555 - ldr ip, [sp, #8] - ldr r2, [ip, #4] + beq .L2784 + ldr r2, [fp, #4] ldr r2, [r2, #4] cmp r3, r2 - beq .L2555 -.L2554: - mov r7, #48 - ldrb r0, [r4, #676] @ zero_extendqisi2 - mla r7, r7, r5, r4 + beq .L2784 +.L2783: + mov fp, #48 + ldrb r0, [r5, #1189] @ zero_extendqisi2 + mla fp, fp, r4, r5 + ldrb lr, [r5, #2772] @ zero_extendqisi2 rsb r1, r0, #24 - ldrb lr, [r4, #2260] @ zero_extendqisi2 mvn r3, #0 mvn r3, r3, asl r0 - add ip, r7, #732 - str ip, [sp, #8] - ldr r2, [r7, #748] + add ip, fp, #1232 + add ip, ip, #12 + str ip, [sp, #12] + ldr r2, [fp, #1260] str lr, [sp] and r0, r3, r2, lsr r1 bic r1, r2, r3, asl r1 - mov r2, fp - ldr r3, [r7, #736] + mov r2, r10 + ldr r3, [fp, #1248] uxtb r0, r0 bl flash_read_page_en - ldr r2, [r7, #744] + ldr r2, [fp, #1256] cmn r2, #1 - mov r8, r0 - beq .L2556 - ldr ip, [sp, #8] + mov r7, r0 + beq .L2785 + ldr ip, [sp, #12] ldr r3, [ip, #4] ldr r1, [r3, #4] cmp r2, r1 - beq .L2556 - ldr r0, .L2636+4 + beq .L2785 + ldr r0, .L2866+4 ldr r0, [r0] tst r0, #64 - beq .L2556 + beq .L2785 str r1, [sp] - ldr r0, .L2636+8 - ldr r1, [r7, #748] + ldr r0, .L2866+8 + ldr r1, [fp, #1260] ldr r3, [r3] bl printk -.L2556: +.L2785: mov r3, #48 - mla r3, r3, r5, r4 - ldr r2, [r3, #744] + mla r3, r3, r4, r5 + ldr r2, [r3, #1256] cmn r2, #1 - beq .L2555 - ldr r3, [r3, #736] + beq .L2784 + ldr r3, [r3, #1248] ldr r3, [r3, #4] cmp r2, r3 - beq .L2555 - ldr r1, .L2636+12 - mov r2, #360 - ldr r0, .L2636+16 + beq .L2784 + ldr r1, .L2866+12 + movw r2, #430 + ldr r0, .L2866+16 bl printk bl dump_stack -.L2555: +.L2784: mov r3, #48 mov r2, #13 - mla r5, r3, r5, r4 - cmn r10, #1 - strb r2, [r5, #766] - ldrb r2, [r5, #726] @ zero_extendqisi2 - str r8, [r5, #760] + mla r4, r3, r4, r5 + cmn r9, #1 + strb r2, [r4, #1278] + ldrb r2, [r4, #1238] @ zero_extendqisi2 + str r7, [r4, #1272] orr r2, r2, #8 - strb r2, [r5, #726] - beq .L2557 - ldr r2, .L2636 + strb r2, [r4, #1238] + beq .L2786 + ldr r2, .L2866 mla r3, r3, r6, r2 - ldr r2, [r3, #744] + ldr r2, [r3, #1256] cmn r2, #1 - beq .L2559 - ldr r3, [r3, #736] + beq .L2788 + ldr r3, [r3, #1248] ldr r3, [r3, #4] cmp r2, r3 - beq .L2559 -.L2557: - mov r5, #48 - ldrb r0, [r4, #676] @ zero_extendqisi2 - mla r5, r5, r6, r4 + beq .L2788 +.L2786: + mov r4, #48 + ldrb r0, [r5, #1189] @ zero_extendqisi2 + mla r4, r4, r6, r5 rsb r1, r0, #24 - ldrb ip, [r4, #2260] @ zero_extendqisi2 + ldrb ip, [r5, #2772] @ zero_extendqisi2 mvn r3, #0 mvn r3, r3, asl r0 - ldr r2, [r5, #748] + add r9, r4, #1232 + add r9, r9, #12 + ldr r2, [r4, #1260] str ip, [sp] and r0, r3, r2, lsr r1 bic r1, r2, r3, asl r1 - mov r2, r9 - ldr r3, [r5, #736] + mov r2, r8 + ldr r3, [r4, #1248] uxtb r0, r0 bl flash_read_page_en - ldr r2, [r5, #744] + ldr r2, [r4, #1256] cmn r2, #1 - beq .L2561 - ldr r3, [r5, #736] + beq .L2790 + ldr r3, [r9, #4] ldr r1, [r3, #4] cmp r2, r1 - beq .L2561 - ldr r0, .L2636+4 + beq .L2790 + ldr r0, .L2866+4 ldr r0, [r0] tst r0, #64 - beq .L2561 + beq .L2790 str r1, [sp] - ldr r0, .L2636+8 - ldr r1, [r5, #748] + ldr r0, .L2866+8 + ldr r1, [r4, #1260] ldr r3, [r3] bl printk -.L2561: +.L2790: mov r3, #48 - mla r3, r3, r6, r4 - ldr r2, [r3, #744] + mla r3, r3, r6, r5 + ldr r2, [r3, #1256] cmn r2, #1 - beq .L2559 - ldr r3, [r3, #736] + beq .L2788 + ldr r3, [r3, #1248] ldr r3, [r3, #4] cmp r2, r3 - beq .L2559 - ldr r1, .L2636+12 - movw r2, #375 - ldr r0, .L2636+16 + beq .L2788 + ldr r1, .L2866+12 + movw r2, #449 + ldr r0, .L2866+16 bl printk bl dump_stack -.L2559: +.L2788: mov r3, #48 - mla r4, r3, r6, r4 + mla r5, r3, r6, r5 + str r7, [r5, #1272] +.L2864: mov r3, #13 - strb r3, [r4, #766] - ldrb r3, [r4, #726] @ zero_extendqisi2 - str r8, [r4, #760] + strb r3, [r5, #1278] + ldrb r3, [r5, #1238] @ zero_extendqisi2 orr r3, r3, #8 - strb r3, [r4, #726] - b .L2574 -.L2546: + strb r3, [r5, #1238] + b .L2803 +.L2775: bl nandc_iqr_wait_flash_ready mov r0, r6 mov r1, #64 bl flash_wait_device_ready tst r0, #64 mov r7, r0 - beq .L2574 + beq .L2803 ands r6, r0, #5 - mov r8, #48 - beq .L2562 - mla r5, r8, r5, r4 + mov r3, #48 + beq .L2791 + mla r5, r3, r4, r5 + ldr r0, .L2866+20 mov r3, #12 - ldr r0, .L2636+20 mov r2, r7 mov r6, r7 - strb r3, [r5, #766] - ldrb r1, [r5, #725] @ zero_extendqisi2 + strb r3, [r5, #1278] + ldrb r1, [r5, #1237] @ zero_extendqisi2 str r3, [sp] - ldr r3, [r5, #748] + ldr r3, [r5, #1260] bl printk mvn r3, #0 - str r3, [r5, #760] - b .L2542 -.L2562: - mul r7, r8, r5 - mov r3, #13 - ldr r2, .L2636 - add r8, r4, r7 - strb r3, [r8, #766] - ldr r3, [r4, #2288] - str r6, [r8, #760] - ldr r1, [r3, #156] - ldr r3, .L2636+24 - cmp r1, r3 - bne .L2574 - add r9, r2, r7 - add r9, r9, #756 - ldrh r3, [r9, #2] + str r3, [r5, #1272] + b .L2771 +.L2791: + mul r3, r3, r4 + mov r2, #13 + ldr ip, .L2866 + add r7, r5, r3 + strb r2, [r7, #1278] + ldr r2, [r5, #2804] + str r6, [r7, #1272] + ldr r1, [r2, #156] + ldr r2, .L2866+24 + cmp r1, r2 + bne .L2803 + ldr r2, .L2866+28 + add r3, r3, r2 + ldrh r3, [r3, #2] cmp r3, #0 - bne .L2574 - ldrb r0, [r2, #676] @ zero_extendqisi2 + bne .L2803 + ldrb r0, [ip, #1189] @ zero_extendqisi2 mvn r3, #0 - ldr ip, [r8, #748] - ldrb r2, [r2, #2260] @ zero_extendqisi2 + ldr r2, [r7, #1260] rsb r1, r0, #24 - ldr r7, .L2636+28 + ldr r8, .L2866+32 + ldrb ip, [ip, #2772] @ zero_extendqisi2 mvn r3, r3, asl r0 - and r0, r3, ip, lsr r1 - bic r1, ip, r3, asl r1 - str r2, [sp] + and r0, r3, r2, lsr r1 + bic r1, r2, r3, asl r1 + str ip, [sp] uxtb r0, r0 - ldr r3, [r7, #-3244] - ldr r2, [r7, #-3248] + ldr r3, [r8, #-172] + ldr r2, [r8, #-176] bl flash_read_page_en cmn r0, #1 mov r3, r0 - beq .L2563 - ldr r1, [r8, #736] - ldr r2, [r7, #-3244] + beq .L2792 + ldr r1, [r7, #1248] + ldr r2, [r8, #-172] ldr r1, [r1] ldr r2, [r2] cmp r1, r2 - beq .L2574 -.L2563: + beq .L2803 +.L2792: mov r2, #48 - ldr r0, .L2636+32 - mla r5, r2, r5, r4 - ldrb r2, [r4, #656] @ zero_extendqisi2 - ldrb r1, [r5, #725] @ zero_extendqisi2 + ldr r0, .L2866+36 + mla r4, r2, r4, r5 + ldrb r2, [r5, #1168] @ zero_extendqisi2 + ldrb r1, [r4, #1237] @ zero_extendqisi2 str r2, [sp] - ldr r2, [r5, #748] + ldr r2, [r4, #1260] bl printk mvn r3, #0 - str r3, [r5, #760] - b .L2542 -.L2549: + str r3, [r4, #1272] + b .L2771 +.L2778: cmp r2, #11 - ldr r1, .L2636+36 - mov r0, #48 - mvn r2, #0 - movne r3, #3 - moveq r3, #10 - str r3, [sp, #8] - ldrb r3, [r4, #676] @ zero_extendqisi2 - mla lr, r0, r5, r1 - rsb r10, r3, #24 - mvn r3, r2, asl r3 - and ip, r3, r6, lsr r10 - str r1, [sp, #12] - uxth ip, ip -.L2565: - ldrb r8, [lr] @ zero_extendqisi2 + ldr r2, .L2866+40 + ldrb r3, [r5, #1189] @ zero_extendqisi2 + mov r1, #48 + mvn r7, #0 + movne r9, #3 + mla ip, r1, r4, r2 + rsb lr, r3, #24 + mvn r3, r7, asl r3 + and r0, r3, r6, lsr lr + moveq r9, #10 + mov r10, r3 + uxth r0, r0 +.L2794: + ldrb r8, [ip] @ zero_extendqisi2 cmp r8, #255 - beq .L2635 - mul r2, r0, r8 - ldr r1, [sp, #12] - ldr r7, .L2636 - add lr, r1, r2 - add r2, r4, r2 - ldr r1, [sp, #8] - add r9, r7, #724 - ldrb fp, [r2, #766] @ zero_extendqisi2 - cmp fp, r1 - bne .L2565 - ldr r2, [r2, #748] - and r2, r3, r2, lsr r10 - cmp ip, r2 - bne .L2565 + beq .L2865 + mul r3, r1, r8 + ldr r7, .L2866 + add ip, r2, r3 + add r3, r5, r3 + ldrb fp, [r3, #1278] @ zero_extendqisi2 + cmp fp, r9 + bne .L2794 + ldr r3, [r3, #1260] + and r3, r10, r3, lsr lr + cmp r0, r3 + bne .L2794 bl nandc_iqr_wait_flash_ready mov r0, r6 mov r1, #64 bl flash_wait_device_ready tst r0, #64 mov r6, r0 - beq .L2634 + beq .L2863 ands r2, r0, #15 mov r3, #48 - mul r3, r3, r5 - beq .L2569 + mul r3, r3, r4 + beq .L2798 add r7, r7, r3 mov r9, #12 - ldr r0, .L2636+40 + ldr r0, .L2866+44 mov r2, r6 - ldrb r1, [r7, #725] @ zero_extendqisi2 + ldrb r1, [r7, #1237] @ zero_extendqisi2 str r9, [sp] - ldr r3, [r7, #748] + ldr r3, [r7, #1260] bl printk mvn r3, #0 - strb r9, [r7, #766] - str r3, [r7, #760] - b .L2568 -.L2569: + strb r9, [r7, #1278] + str r3, [r7, #1272] + b .L2797 +.L2798: add r6, r7, r3 mov r1, #13 - str r2, [r6, #760] - ldr r2, [r7, #2288] - strb r1, [r6, #766] + str r2, [r6, #1272] + ldr r2, [r7, #2804] + strb r1, [r6, #1278] ldr r1, [r2, #156] - ldr r2, .L2636+24 + ldr r2, .L2866+24 cmp r1, r2 - bne .L2634 - add r3, r9, r3 + bne .L2863 + ldr r2, .L2866+40 + add r3, r2, r3 ldrh r3, [r3, #34] cmp r3, #0 - bne .L2634 - ldr r2, [r6, #748] + bne .L2863 + ldr r2, [r6, #1260] mvn r3, #0 - ldrb r0, [r7, #676] @ zero_extendqisi2 - ldr r9, .L2636+28 + ldrb r0, [r7, #1189] @ zero_extendqisi2 + ldr r9, .L2866+32 rsb r1, r0, #24 - ldrb ip, [r7, #2260] @ zero_extendqisi2 + ldrb ip, [r7, #2772] @ zero_extendqisi2 mvn r3, r3, asl r0 and r0, r3, r2, lsr r1 bic r1, r2, r3, asl r1 str ip, [sp] uxtb r0, r0 - ldr r3, [r9, #-3244] - ldr r2, [r9, #-3248] + ldr r3, [r9, #-172] + ldr r2, [r9, #-176] bl flash_read_page_en cmn r0, #1 mov r3, r0 - beq .L2571 - ldr r1, [r6, #736] - ldr r2, [r9, #-3244] + beq .L2800 + ldr r1, [r6, #1248] + ldr r2, [r9, #-172] ldr r1, [r1] ldr r2, [r2] cmp r1, r2 - beq .L2634 -.L2571: + beq .L2863 +.L2800: mov r6, #48 - ldrb r2, [r4, #656] @ zero_extendqisi2 - mla r6, r6, r5, r4 - ldr r0, .L2636+44 - ldrb r1, [r6, #725] @ zero_extendqisi2 + ldrb r2, [r5, #1168] @ zero_extendqisi2 + mla r6, r6, r4, r5 + ldr r0, .L2866+48 + ldrb r1, [r6, #1237] @ zero_extendqisi2 str r2, [sp] - ldr r2, [r6, #748] + ldr r2, [r6, #1260] bl printk mvn r3, #0 - str r3, [r6, #760] -.L2634: + str r3, [r6, #1272] +.L2863: mov r6, #0 -.L2568: +.L2797: mov r3, #48 - mla r5, r3, r5, r4 - mla r4, r3, r8, r4 - ldrb r2, [r5, #766] @ zero_extendqisi2 - ldr r3, [r5, #760] - strb r2, [r4, #766] - str r3, [r4, #760] - b .L2542 -.L2635: + mla r4, r3, r4, r5 + mla r5, r3, r8, r5 + ldrb r2, [r4, #1278] @ zero_extendqisi2 + ldr r3, [r4, #1272] + strb r2, [r5, #1278] + str r3, [r5, #1272] + b .L2771 +.L2865: mvn r6, #0 - b .L2542 -.L2547: + b .L2771 +.L2776: mov r0, r6 mov r1, #32 bl flash_wait_device_ready tst r0, #32 - beq .L2574 + beq .L2803 ands r6, r0, #15 mov r3, #48 - mlaeq r5, r3, r5, r4 + mlaeq r5, r3, r4, r5 movne r2, #12 - mlane r3, r3, r5, r4 + mlane r3, r3, r4, r5 moveq r3, #13 movne r6, r0 - streqb r3, [r5, #766] - streq r6, [r5, #760] - strneb r2, [r3, #766] + streqb r3, [r5, #1278] + streq r6, [r5, #1272] + strneb r2, [r3, #1278] mvnne r2, #0 - strne r2, [r3, #760] - b .L2542 -.L2548: + strne r2, [r3, #1272] + b .L2771 +.L2777: mov r0, r6 mov r1, #64 bl flash_wait_device_ready tst r0, #64 movne r3, #48 - mlane r5, r3, r5, r4 + mlane r5, r3, r4, r5 movne r3, #7 - strne r0, [r5, #760] - strneb r3, [r5, #766] -.L2574: + strne r0, [r5, #1272] + strneb r3, [r5, #1278] +.L2803: mov r6, #0 -.L2542: +.L2771: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2637: +.L2867: .align 2 -.L2636: +.L2866: .word .LANCHOR0 .word .LANCHOR2 - .word .LC169 - .word .LANCHOR1+1700 + .word .LC177 + .word .LANCHOR1+2260 .word .LC0 - .word .LC170 + .word .LC178 .word 1145785929 + .word .LANCHOR0+1268 .word .LANCHOR3 - .word .LC171 - .word .LANCHOR0+724 - .word .LC172 - .word .LC173 + .word .LC179 + .word .LANCHOR0+1236 + .word .LC180 + .word .LC181 .fnend .size queue_wait_first_req_completed, .-queue_wait_first_req_completed .align 2 @@ -15458,46 +16774,49 @@ sblk_prog_page: ldrh r3, [r0, #34] mov r5, r1 cmp r3, #0 - beq .L2639 - ldr r3, .L2667 + beq .L2869 + ldr r3, .L2900 ldr r3, [r3] tst r3, #256 - beq .L2639 - ldr r0, .L2667+4 + beq .L2869 + ldr r0, .L2900+4 mov r2, r5 ldr r1, [r4, #24] bl printk -.L2639: - ldr r8, .L2667+8 +.L2869: + ldr r8, .L2900+8 mov r6, #0 mov r9, r8 -.L2640: +.L2870: cmp r5, #0 - beq .L2664 + beq .L2897 ldrb r3, [r4] @ zero_extendqisi2 ldr r7, [r4, #24] str r3, [sp, #4] -.L2641: +.L2871: mov r0, r7 mov r1, #1 bl queue_lun_state cmp r0, #0 - beq .L2666 + beq .L2899 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2641 -.L2666: + b .L2871 +.L2899: cmp r5, #1 - beq .L2643 - ldrb r3, [r8, #721] @ zero_extendqisi2 + beq .L2873 + ldrb r3, [r8, #1233] @ zero_extendqisi2 cmp r3, #0 - bne .L2644 -.L2643: + beq .L2873 + ldrb r3, [r8, #1197] @ zero_extendqisi2 + cmp r3, #0 + beq .L2874 +.L2873: mov r0, r4 bl queue_prog_cmd - b .L2645 -.L2644: - ldrb r3, [r8, #676] @ zero_extendqisi2 + b .L2875 +.L2874: + ldrb r3, [r8, #1189] @ zero_extendqisi2 mvn fp, #0 rsb ip, r3, #24 mov ip, r7, lsr ip @@ -15505,52 +16824,53 @@ sblk_prog_page: ldrb r3, [r4] @ zero_extendqisi2 cmp r3, #255 uxth fp, fp - bne .L2646 - ldr r1, .L2667+12 - movw r2, #583 - ldr r0, .L2667+16 + bne .L2876 + ldr r1, .L2900+12 + mov r2, #696 + ldr r0, .L2900+16 bl printk bl dump_stack -.L2646: +.L2876: ldrb r3, [r4] @ zero_extendqisi2 mov r2, #48 mov r10, #1 mla r3, r2, r3, r9 - ldrb r2, [r9, #676] @ zero_extendqisi2 - ldr ip, [r3, #748] + ldrb r2, [r9, #1189] @ zero_extendqisi2 + ldr ip, [r3, #1260] rsb r3, r2, #24 mov r2, r10, asl r2 sub r2, r2, #1 and r2, r2, ip, lsr r3 uxth r2, r2 cmp fp, r2 - bne .L2647 - ldr r2, .L2667+20 - ldrb lr, [r8, #2930] @ zero_extendqisi2 + bne .L2877 + ldr r2, .L2900+20 ldrh fp, [r2] - sub lr, lr, #1 + ldr r2, .L2900+24 rsb r3, fp, r3 - uxth r1, lr - mov r3, r10, asl r3 mov r0, r10, asl fp - sub r3, r3, #1 - and r2, r1, r7, lsr fp + mov r3, r10, asl r3 sub r0, r0, #1 - and r1, r1, ip, lsr fp + ldrb lr, [r2, #-3202] @ zero_extendqisi2 + sub r3, r3, #1 + uxth r0, r0 + sub lr, lr, #1 uxth r3, r3 + uxth r1, lr + and r2, r1, r7, lsr fp + and r1, r1, ip, lsr fp and r2, r2, r3 and r3, r3, r1 subs fp, r2, r3 - uxth r0, r0 and r7, r7, r0 and ip, ip, r0 movne fp, #1 cmp r7, ip movne fp, #0 cmp fp, #0 - beq .L2648 + beq .L2878 cmp r6, lr - beq .L2647 + beq .L2877 mov r0, #17 ldr r1, [r4, #24] ldr r2, [r4, #4] @@ -15562,42 +16882,43 @@ sblk_prog_page: mov r1, r4 strb r3, [r4, #42] mvn r3, #0 - ldr r0, .L2667+24 + ldr r0, .L2900+28 strb r3, [r4] bl buf_add_tail - b .L2645 -.L2648: + b .L2875 +.L2878: mov r0, r4 mov r6, fp bl queue_prog_cmd - b .L2645 -.L2647: + b .L2875 +.L2877: mov r0, r4 mov r6, #0 bl queue_prog_cmd -.L2645: +.L2875: subs r5, r5, #1 - ldrne r3, .L2667+28 + ldrne r3, .L2900+32 movne r4, #48 ldrne r2, [sp, #4] mlane r4, r4, r2, r3 - bne .L2640 -.L2664: + bne .L2870 +.L2897: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2668: +.L2901: .align 2 -.L2667: +.L2900: .word .LANCHOR2 - .word .LC174 + .word .LC182 .word .LANCHOR0 - .word .LANCHOR1+1732 + .word .LANCHOR1+2292 .word .LC0 - .word .LANCHOR0+2928 - .word .LANCHOR0+2263 - .word .LANCHOR0+724 + .word .LANCHOR3-3204 + .word .LANCHOR3 + .word .LANCHOR0+2775 + .word .LANCHOR0+1236 .fnend .size sblk_prog_page, .-sblk_prog_page .align 2 @@ -15609,19 +16930,19 @@ sblk_wait_write_queue_completed: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L2674 -.L2670: - ldrb r3, [r4, #2263] @ zero_extendqisi2 + ldr r4, .L2907 +.L2903: + ldrb r3, [r4, #2775] @ zero_extendqisi2 cmp r3, #255 - beq .L2673 + beq .L2906 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2670 -.L2673: + b .L2903 +.L2906: ldmfd sp!, {r4, pc} -.L2675: +.L2908: .align 2 -.L2674: +.L2907: .word .LANCHOR0 .fnend .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed @@ -15634,31 +16955,33 @@ ftl_flush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r4, .L2682 - ldr r5, .L2682+4 - ldrb r1, [r4, #2285] @ zero_extendqisi2 + ldr r3, .L2915 + ldr r5, .L2915+4 + ldrb r1, [r3, #2801] @ zero_extendqisi2 + mov r4, r3 cmp r1, #0 - beq .L2677 - ldrb r2, [r5, #-3240] @ zero_extendqisi2 - add r3, r4, #724 + beq .L2910 + ldrb r2, [r5, #-168] @ zero_extendqisi2 mov r0, #48 + ldr r3, .L2915+8 mla r0, r0, r2, r3 bl sblk_prog_page -.L2677: +.L2910: mvn r3, #0 - strb r3, [r5, #-3240] + strb r3, [r5, #-168] mov r3, #0 - strb r3, [r4, #2285] + strb r3, [r4, #2801] bl sblk_wait_write_queue_completed bl ftl_write_completed movw r0, #65535 ldmfd sp!, {r3, r4, r5, lr} b ftl_vpn_decrement -.L2683: +.L2916: .align 2 -.L2682: +.L2915: .word .LANCHOR0 .word .LANCHOR3 + .word .LANCHOR0+1236 .fnend .size ftl_flush, .-ftl_flush .align 2 @@ -15670,21 +16993,21 @@ zftl_cache_flush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2689 - ldrb r3, [r3, #2285] @ zero_extendqisi2 + ldr r3, .L2922 + ldrb r3, [r3, #2801] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r3, pc} bl timer_get_time - ldr r3, .L2689+4 - ldr r3, [r3, #-3236] + ldr r3, .L2922+4 + ldr r3, [r3, #-164] add r3, r3, #100 cmp r0, r3 ldmlsfd sp!, {r3, pc} ldmfd sp!, {r3, lr} b ftl_flush -.L2690: +.L2923: .align 2 -.L2689: +.L2922: .word .LANCHOR0 .word .LANCHOR3 .fnend @@ -15724,12 +17047,12 @@ ftl_read_ppa_page: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L2695 + ldr r3, .L2928 mov r7, r1 mov r6, r2 mvn r2, #0 mov r5, r0 - ldrb r1, [r3, #676] @ zero_extendqisi2 + ldrb r1, [r3, #1189] @ zero_extendqisi2 rsb r4, r1, #24 mvn r2, r2, asl r1 and r4, r2, r0, lsr r4 @@ -15744,9 +17067,9 @@ ftl_read_ppa_page: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2696: +.L2929: .align 2 -.L2695: +.L2928: .word .LANCHOR0 .fnend .size ftl_read_ppa_page, .-ftl_read_ppa_page @@ -15761,35 +17084,35 @@ sblk_read_page: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r10, .L2725 + ldr r10, .L2958 mov r8, r0 mov r6, r1 mov r4, r0 mov r5, r1 -.L2698: +.L2931: cmp r5, #0 - beq .L2721 + beq .L2954 ldrb fp, [r4] @ zero_extendqisi2 ldr r9, [r4, #24] -.L2699: +.L2932: mov r0, r9 mov r1, #0 bl queue_lun_state cmp r0, #0 - beq .L2723 + beq .L2956 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2699 -.L2723: + b .L2932 +.L2956: cmp r5, #1 - beq .L2705 - ldr r3, .L2725+4 - ldrb r3, [r3, #-3232] @ zero_extendqisi2 + beq .L2938 + ldr r3, .L2958+4 + ldrb r3, [r3, #-160] @ zero_extendqisi2 cmp r3, #0 - beq .L2705 - ldr r3, .L2725 + beq .L2938 + ldr r3, .L2958 mvn lr, #0 - ldrb r2, [r3, #676] @ zero_extendqisi2 + ldrb r2, [r3, #1189] @ zero_extendqisi2 rsb r3, r2, #24 mov r3, r9, lsr r3 bic lr, r3, lr, asl r2 @@ -15797,103 +17120,298 @@ sblk_read_page: str r3, [sp, #4] ldrb r3, [r4] @ zero_extendqisi2 cmp r3, #255 - bne .L2704 - ldr r1, .L2725+8 - movw r2, #661 - ldr r0, .L2725+12 + bne .L2937 + ldr r1, .L2958+8 + movw r2, #781 + ldr r0, .L2958+12 bl printk bl dump_stack -.L2704: +.L2937: ldrb r3, [r4] @ zero_extendqisi2 mov r2, #48 - ldrb r0, [r10, #676] @ zero_extendqisi2 + ldrb r0, [r10, #1189] @ zero_extendqisi2 mvn ip, #0 mul r3, r2, r3 rsb r2, r0, #24 add r7, r10, r3 - ldr r1, [r7, #748] + ldr r1, [r7, #1260] mov r2, r1, lsr r2 bic r2, r2, ip, asl r0 ldr r0, [sp, #4] uxth r2, r2 cmp r0, r2 - bne .L2705 - ldr r2, .L2725+16 + bne .L2938 + ldr r2, .L2958+16 ldrh r2, [r2] add r9, r2, r9 cmp r1, r9 - bne .L2705 + bne .L2938 ldr r0, [r4, #24] mvn r9, #0 str r3, [sp, #12] add r5, r5, r9 - ldrb fp, [r7, #724] @ zero_extendqisi2 + ldrb fp, [r7, #1236] @ zero_extendqisi2 bl flash_start_plane_read mov ip, #2 mov r2, #0 strb ip, [r4, #42] mov r1, r4 strb r2, [r4, #43] - ldr r0, .L2725+20 + ldr r0, .L2958+20 strb r9, [r4] str ip, [sp, #8] str r2, [sp, #4] bl buf_add_tail - ldr r1, .L2725+24 - strb r9, [r7, #724] - ldr r0, .L2725+20 + ldr r1, .L2958+24 + strb r9, [r7, #1236] + ldr r0, .L2958+20 ldr ip, [sp, #8] ldr r2, [sp, #4] ldr r3, [sp, #12] - strb ip, [r7, #766] - strb r2, [r7, #767] + strb ip, [r7, #1278] + strb r2, [r7, #1279] add r1, r1, r3 bl buf_add_tail - b .L2703 -.L2705: + b .L2936 +.L2938: mov r0, r4 bl queue_read_cmd -.L2703: +.L2936: subs r5, r5, #1 - ldrne r3, .L2725+24 + ldrne r3, .L2958+24 movne r4, #48 mlane r4, r4, fp, r3 - bne .L2698 -.L2721: - ldr r4, .L2725+24 + bne .L2931 +.L2954: + ldr r4, .L2958+24 mov r5, #48 -.L2709: +.L2942: cmp r6, #0 - beq .L2724 + beq .L2957 ldrb r3, [r8, #42] @ zero_extendqisi2 cmp r3, #13 - bne .L2710 + bne .L2943 ldrb r3, [r8] @ zero_extendqisi2 sub r6, r6, #1 cmp r3, #255 mlane r8, r5, r3, r4 -.L2710: +.L2943: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2709 -.L2724: + b .L2942 +.L2957: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2726: +.L2959: .align 2 -.L2725: +.L2958: .word .LANCHOR0 .word .LANCHOR3 - .word .LANCHOR1+1748 + .word .LANCHOR1+2308 .word .LC0 - .word .LANCHOR0+2994 - .word .LANCHOR0+2263 - .word .LANCHOR0+724 + .word .LANCHOR3-3142 + .word .LANCHOR0+2775 + .word .LANCHOR0+1236 .fnend .size sblk_read_page, .-sblk_read_page .align 2 + .global gc_check_data_one_wl + .type gc_check_data_one_wl, %function +gc_check_data_one_wl: + .fnstart + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {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 r6, .L2996 + ldr r3, [r6, #2836] + ldr r9, [r6, #1092] + cmp r3, #0 + bne .L2961 + mov r0, #1 + bl buf_alloc + str r0, [r6, #2836] +.L2961: + ldr r4, [r6, #2836] + cmp r4, #0 + bne .L2962 + ldr r1, .L2996+4 + movw r2, #729 + ldr r0, .L2996+8 + bl printk + bl dump_stack +.L2962: + ldr fp, .L2996+12 + add r10, r9, #96 + mov r8, #0 + mov ip, fp +.L2963: + ldrb r3, [r9, #89] @ zero_extendqisi2 + ldr r5, .L2996+16 + cmp r8, r3 + bge .L2994 + mov r7, #1 +.L2974: + ldrh r3, [r5, #16] + cmp r7, r3 + bgt .L2995 + ldr r2, .L2996+20 + ldrb r1, [fp, #-3196] @ zero_extendqisi2 + ldrh r3, [r10] + ldrh r2, [r2] + cmp r1, #2 + mul r2, r2, r3 + beq .L2964 + ldr r3, .L2996 + ldrb r3, [r3, #1196] @ zero_extendqisi2 + cmp r3, #0 + beq .L2965 +.L2964: + ldrh r3, [r5, #12] + sub r3, r3, #1 + add r3, r3, r2 + add r3, r3, r7 + orr r3, r3, r1, asl #24 + b .L2993 +.L2965: + ldr r3, .L2996+16 + cmp r1, #3 + ldrh r3, [r3, #12] + addne r2, r2, r3 + strne r2, [r4, #24] + bne .L2966 + ldr r1, .L2996 + ldrb r1, [r1, #1197] @ zero_extendqisi2 + cmp r1, #0 + addne r3, r3, r3, asl #1 + addeq r3, r2, r3 + subne r3, r3, #1 + orreq r3, r3, r7, asl #24 + addne r3, r3, r2 + addne r3, r3, r7 + orrne r3, r3, #50331648 +.L2993: + str r3, [r4, #24] +.L2966: + mov r0, r4 + mov r1, #1 + str ip, [sp, #28] + bl sblk_read_page + ldr r2, [r4, #36] + cmn r2, #1 + ldr ip, [sp, #28] + beq .L2969 + ldr r0, [ip, #-244] + ldrh r1, [r5, #18] + ldr r3, [r4, #12] + ldr lr, [r0, r1, asl #2] + ldr r0, [r3, #4] + cmp lr, r0 + bne .L2969 + ldr r0, [fp, #-240] + ldr r3, [r3, #8] + ldr r1, [r0, r1, asl #2] + cmp r1, r3 + beq .L2970 +.L2969: + ldrh r3, [r5, #18] + ldr r1, [ip, #-244] + mov r0, r3, asl #2 + ldr r3, [r1, r3, asl #2] + cmn r3, #1 + beq .L2970 + ldr r1, .L2996+24 + ldr r1, [r1] + tst r1, #1024 + beq .L2971 + ldr ip, .L2996+12 + ldr r1, [r4, #12] + ldr ip, [ip, #-240] + ldr r0, [ip, r0] + str r0, [sp] + ldr r0, [r1] + str r0, [sp, #4] + ldr r0, [r1, #4] + str r0, [sp, #8] + ldr r0, [r1, #8] + str r0, [sp, #12] + ldr r1, [r1, #12] + ldr r0, .L2996+28 + str r1, [sp, #16] + ldr r1, [r4, #24] + bl printk +.L2971: + ldrh r3, [r9, #80] + mov r1, #0 + ldr r2, [r6, #1088] + mov r3, r3, asl #1 + strh r1, [r2, r3] @ movhi + ldr r2, [r6, #1092] + ldr r3, [r2, #556] + add r3, r3, #1 + str r3, [r2, #556] + ldr r3, [r6, #2804] + ldr r2, [r3, #156] + ldr r3, .L2996+32 + cmp r2, r3 + bne .L2977 + ldr r3, .L2996+12 + ldrb r3, [r3, #-2612] @ zero_extendqisi2 + cmp r3, r1 + bne .L2977 + ldr r3, .L2996+12 + ldrb r3, [r3, #-3194] @ zero_extendqisi2 + cmp r3, r1 + bne .L2977 + ldr r0, [r4, #24] + bl ftl_mask_bad_block + b .L2977 +.L2970: + ldrh r3, [r5, #18] + add r7, r7, #1 + add r3, r3, #1 + strh r3, [r5, #18] @ movhi + b .L2974 +.L2995: + add r8, r8, #1 + add r10, r10, #2 + b .L2963 +.L2994: + ldrh r3, [r5, #12] + add r2, r3, #1 + strh r2, [r5, #12] @ movhi + ldr r2, .L2996+12 + ldrb r0, [r2, #-3194] @ zero_extendqisi2 + cmp r0, #0 + addne r3, r3, #2 + strneh r3, [r5, #12] @ movhi + movne r0, #0 + b .L2972 +.L2977: + mvn r0, #0 +.L2972: + add sp, sp, #36 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2997: + .align 2 +.L2996: + .word .LANCHOR0 + .word .LANCHOR1+2324 + .word .LC0 + .word .LANCHOR3 + .word .LANCHOR0+2828 + .word .LANCHOR3-3142 + .word .LANCHOR2 + .word .LC183 + .word 1145785929 + .fnend + .size gc_check_data_one_wl, .-gc_check_data_one_wl + .align 2 .global sblk_tlc_prog_one_page .type sblk_tlc_prog_one_page, %function sblk_tlc_prog_one_page: @@ -15905,17 +17423,18 @@ sblk_tlc_prog_one_page: mov r4, r0 ldr r3, [r0] ldr r6, [r3, #24] -.L2728: +.L2999: mov r0, r6 mov r1, #1 bl queue_lun_state subs r5, r0, #0 - beq .L2731 + beq .L3002 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2728 -.L2731: + b .L2999 +.L3002: mov r0, r4 + mov r1, #1 bl queue_tlc_prog_cmd mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} @@ -15928,46 +17447,133 @@ sblk_xlc_prog_pages: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - .pad #16 - mov r5, r0 + stmfd sp!, {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 r3, [r0] - mov r8, r1 - mov r9, r2 + mov r5, r0 + mov r7, r1 + mov r10, r2 ldr r4, [r3, #24] -.L2733: +.L3004: mov r0, r4 mov r1, #1 bl queue_lun_state - cmp r0, #0 - beq .L2738 + subs r9, r0, #0 + beq .L3016 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2733 -.L2738: - cmp r9, #2 - bne .L2735 - ldr r2, .L2739 - mov r6, #1 + b .L3004 +.L3016: + cmp r10, #2 + bne .L3006 + ldr r2, .L3018 + ldr lr, [r7] + ldrb r3, [r2, #1233] @ zero_extendqisi2 + cmp r3, #0 + ldreq r4, [lr, #24] + beq .L3011 ldr r3, [r5] - ldr ip, [r8] - ldrb r4, [r2, #676] @ zero_extendqisi2 + mov fp, #1 + ldrb r4, [r2, #1189] @ zero_extendqisi2 + ldrb r2, [r2, #1197] @ zero_extendqisi2 ldr r0, [r3, #24] rsb r1, r4, #24 - ldr r7, [ip, #24] - mov r2, r6, asl r1 - mov r4, r6, asl r4 - sub r2, r2, #1 + mov r4, fp, asl r4 + mov ip, fp, asl r1 sub r4, r4, #1 - and r10, r2, r0 - and r7, r7, r2 + ldr r6, [lr, #24] and r4, r4, r0, lsr r1 - ldrb r0, [r3, #44] @ zero_extendqisi2 - str r10, [sp] - mov r1, r6 - ldr r2, [r3, #4] + cmp r2, #0 + sub ip, ip, #1 + and r8, ip, r0 + and r6, r6, ip uxtb r4, r4 + beq .L3008 + mov r0, r4 + bl zftl_flash_exit_slc_mode + ldr r3, [r5] + mov r1, fp + mov r0, r9 + str r8, [sp] + ldr r2, [r3, #4] + str r2, [sp, #4] + mov r2, #17 + ldr r3, [r3, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr r3, [r7] + mov r1, fp + mov r0, r9 + str r6, [sp] + ldr r2, [r3, #4] + str r2, [sp, #4] + mov r2, #26 + ldr r3, [r3, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr r3, [r5, #4] + add r2, r8, fp + mov r1, r10 + mov r0, r9 + add r8, r8, #2 + str r2, [sp] + ldr r2, [r3, #4] + str r2, [sp, #4] + mov r2, #17 + ldr r3, [r3, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr r3, [r7, #4] + add r2, r6, fp + mov r1, r10 + mov r0, r9 + add r6, r6, #2 + str r2, [sp] + ldr r2, [r3, #4] + str r2, [sp, #4] + mov r2, #26 + ldr r3, [r3, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr r3, [r5, #8] + mov r0, r9 + mov r1, #3 + str r8, [sp] + ldr r2, [r3, #4] + str r2, [sp, #4] + mov r2, #17 + ldr r3, [r3, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr r3, [r7, #8] + mov r0, r9 + mov r1, #3 + str r6, [sp] + ldr r2, [r3, #4] + str r2, [sp, #4] + mov r2, #16 + ldr r3, [r3, #12] + str r3, [sp, #8] + mov r3, r4 + bl flash_start_one_pass_page_prog + b .L3009 +.L3008: + ldrb r0, [r3, #44] @ zero_extendqisi2 + mov r1, fp + str r8, [sp] + ldr r2, [r3, #4] str r2, [sp, #4] mov r2, #17 ldr r3, [r3, #12] @@ -15975,11 +17581,11 @@ sblk_xlc_prog_pages: mov r3, r4 bl flash_start_tlc_page_prog bl nandc_wait_flash_ready - ldr r3, [r8] + ldr r3, [r7] ldr r2, [r5] - mov r1, r6 + mov r1, fp ldrb r0, [r2, #44] @ zero_extendqisi2 - str r7, [sp] + str r6, [sp] ldr r2, [r3, #4] str r2, [sp, #4] mov r2, #26 @@ -15987,12 +17593,11 @@ sblk_xlc_prog_pages: str r3, [sp, #8] mov r3, r4 bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready ldmia r5, {r2, r3} - mov r1, r9 + mov r1, r10 ldrb r0, [r2, #44] @ zero_extendqisi2 - str r10, [sp] + str r8, [sp] ldr r2, [r3, #4] str r2, [sp, #4] mov r2, #17 @@ -16001,11 +17606,11 @@ sblk_xlc_prog_pages: mov r3, r4 bl flash_start_tlc_page_prog bl nandc_wait_flash_ready - ldr r3, [r8, #4] + ldr r3, [r7, #4] ldr r2, [r5] - mov r1, r9 + mov r1, r10 ldrb r0, [r2, #44] @ zero_extendqisi2 - str r7, [sp] + str r6, [sp] ldr r2, [r3, #4] str r2, [sp, #4] mov r2, #26 @@ -16013,13 +17618,12 @@ sblk_xlc_prog_pages: str r3, [sp, #8] mov r3, r4 bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready ldr r3, [r5, #8] ldr r2, [r5] mov r1, #3 ldrb r0, [r2, #44] @ zero_extendqisi2 - str r10, [sp] + str r8, [sp] ldr r2, [r3, #4] str r2, [sp, #4] mov r2, #17 @@ -16028,11 +17632,11 @@ sblk_xlc_prog_pages: mov r3, r4 bl flash_start_tlc_page_prog bl nandc_wait_flash_ready - ldr r3, [r8, #8] + ldr r3, [r7, #8] ldr r2, [r5] mov r1, #3 ldrb r0, [r2, #44] @ zero_extendqisi2 - str r7, [sp] + str r6, [sp] ldr r2, [r3, #4] str r2, [sp, #4] mov r2, #16 @@ -16040,28 +17644,56 @@ sblk_xlc_prog_pages: str r3, [sp, #8] mov r3, r4 bl flash_start_tlc_page_prog +.L3009: ldr r1, [r5] mov r3, #5 - ldr r0, .L2739+4 + ldr r0, .L3018+4 strb r3, [r1, #42] + mov r3, #1 + strb r3, [r1, #43] mvn r3, #0 - strb r6, [r1, #43] strb r3, [r1] bl buf_add_tail - b .L2736 -.L2735: + b .L3010 +.L3011: + mov r0, r4 + mov r1, #1 + bl queue_lun_state + subs r6, r0, #0 + beq .L3017 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L3011 +.L3017: mov r0, r5 + mov r1, #1 bl queue_tlc_prog_cmd -.L2736: + mov r0, r7 + mov r1, r6 + bl queue_tlc_prog_cmd +.L3013: + mov r0, r4 + mov r1, #1 + bl queue_lun_state + cmp r0, #0 + beq .L3010 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L3013 +.L3006: + mov r0, r5 + mov r1, #1 + bl queue_tlc_prog_cmd +.L3010: mov r0, #0 - add sp, sp, #16 + add sp, sp, #20 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2740: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L3019: .align 2 -.L2739: +.L3018: .word .LANCHOR0 - .word .LANCHOR0+2263 + .word .LANCHOR0+2775 .fnend .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .align 2 @@ -16075,27 +17707,27 @@ sblk_3d_mlc_prog_pages: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 add r5, r0, #8 - ldr r9, .L2749 + ldr r9, .L3028 mov r7, r1 mov r8, #1 -.L2742: +.L3021: cmp r7, #0 - beq .L2747 + beq .L3026 ldr r3, [r5, #-8] ldr r4, [r3, #24] -.L2743: +.L3022: mov r0, r4 mov r1, #1 bl queue_lun_state cmp r0, #0 - beq .L2748 + beq .L3027 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2743 -.L2748: + b .L3022 +.L3027: ldr r3, [r5, #-8] sub r7, r7, #1 - ldrb r4, [r9, #676] @ zero_extendqisi2 + ldrb r4, [r9, #1189] @ zero_extendqisi2 add r5, r5, #8 ldr r2, [r3, #24] rsb r3, r4, #24 @@ -16129,23 +17761,23 @@ sblk_3d_mlc_prog_pages: bl nandc_de_cs ldr r1, [r5, #-16] mov r3, #4 - ldr r0, .L2749+4 + ldr r0, .L3028+4 strb r3, [r1, #42] mvn r3, #0 strb r8, [r1, #43] strb r3, [r1] bl buf_add_tail - b .L2742 -.L2747: + b .L3021 +.L3026: mov r0, r7 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2750: +.L3029: .align 2 -.L2749: +.L3028: .word .LANCHOR0 - .word .LANCHOR0+2263 + .word .LANCHOR0+2775 .fnend .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages .align 2 @@ -16160,67 +17792,67 @@ flash_prog_page_en: .pad #28 sub sp, sp, #28 mov r8, r3 - ldr r6, .L2781 + ldr r6, .L3060 ldrb r3, [sp, #68] @ zero_extendqisi2 mov r7, r0 mov r5, r1 mov r9, r2 ubfx r4, r1, #24, #2 str r3, [sp, #16] - ldrb r3, [r6, #589] @ zero_extendqisi2 + ldrb r3, [r6, #1101] @ zero_extendqisi2 cmp r3, r0 - bhi .L2752 - ldr r1, .L2781+4 - mov r2, #560 - ldr r0, .L2781+8 + bhi .L3031 + ldr r1, .L3060+4 + movw r2, #635 + ldr r0, .L3060+8 bl printk bl dump_stack -.L2752: - ldrb r2, [r6, #589] @ zero_extendqisi2 - ldr r3, .L2781 +.L3031: + ldrb r2, [r6, #1101] @ zero_extendqisi2 + ldr r3, .L3060 cmp r2, r7 mvnls r0, #0 - bls .L2753 + bls .L3032 add r2, r3, r7 cmp r4, #0 - ldrb r10, [r2, #668] @ zero_extendqisi2 - bne .L2765 + ldrb r10, [r2, #1180] @ zero_extendqisi2 + bne .L3044 ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 - beq .L2755 + beq .L3034 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, #0 - beq .L2765 -.L2755: + beq .L3044 +.L3034: ldrh fp, [r6, #2] mov r0, r5 mov r1, fp bl __aeabi_uidiv ldrb r3, [r6, #1] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L2781 + ldreq r3, .L3060 mul r0, fp, r0 rsb r4, r0, r5 mov r4, r4, asl #1 addeq r4, r3, r4 ldreqh r4, [r4, #4] add r4, r4, r0 - b .L2754 -.L2765: + b .L3033 +.L3044: mov r4, r5 -.L2754: - ldr fp, .L2781+12 - ldr r6, .L2781+16 -.L2760: +.L3033: + ldr fp, .L3060+12 + ldr r6, .L3060+16 +.L3039: ldr r3, [fp] tst r3, #16 - beq .L2757 - ldr r0, .L2781+20 + beq .L3036 + ldr r0, .L3060+20 mov r1, r10 mov r2, r5 mov r3, r4 bl printk -.L2757: +.L3036: ldr r3, [sp, #64] mov r0, r10 mov r1, r4 @@ -16231,14 +17863,14 @@ flash_prog_page_en: ldr r3, [sp, #16] mov ip, r0 cmp r3, #0 - beq .L2758 + beq .L3037 ldr r3, [sp, #64] mov r1, r5 str r0, [sp, #20] mov r0, r7 str r3, [sp] - ldr r3, [r6, #-3244] - ldr r2, [r6, #-3248] + ldr r3, [r6, #-172] + ldr r2, [r6, #-176] bl flash_read_page_en sub r3, r0, #512 cmp r0, #512 @@ -16246,76 +17878,76 @@ flash_prog_page_en: clz r3, r3 mov r3, r3, lsr #5 str r3, [sp, #12] - beq .L2759 - ldr r3, [r6, #-3248] + beq .L3038 + ldr r3, [r6, #-176] ldr r2, [r9] ldr ip, [sp, #20] ldr r3, [r3] cmp r2, r3 - bne .L2759 - ldr r3, [r6, #-3244] + bne .L3038 + ldr r3, [r6, #-172] ldr r2, [r8] ldr r3, [r3] cmp r2, r3 - beq .L2758 -.L2759: + beq .L3037 +.L3038: mov r2, #4 - ldr r0, .L2781+24 + ldr r0, .L3060+24 mov r3, r2 mov r1, r9 bl rknand_print_hex mov r2, #4 mov r3, r2 - ldr r0, .L2781+28 + ldr r0, .L3060+28 mov r1, r8 bl rknand_print_hex mov r2, #4 mov r3, r2 - ldr r0, .L2781+32 - ldr r1, [r6, #-3244] + ldr r0, .L3060+32 + ldr r1, [r6, #-172] bl rknand_print_hex mov r2, #4 mov r3, r2 - ldr r0, .L2781+36 - ldr r1, [r6, #-3248] + ldr r0, .L3060+36 + ldr r1, [r6, #-176] bl rknand_print_hex ldr r3, [sp, #12] cmp r3, #0 - bne .L2760 -.L2762: + bne .L3039 +.L3041: mov r1, r5 - ldr r0, .L2781+40 + ldr r0, .L3060+40 bl printk - ldr r1, .L2781+4 - movw r2, #593 - ldr r0, .L2781+8 + ldr r1, .L3060+4 + movw r2, #678 + ldr r0, .L3060+8 bl printk bl dump_stack mvn ip, #0 - b .L2761 -.L2758: + b .L3040 +.L3037: cmn ip, #1 - beq .L2762 -.L2761: + beq .L3041 +.L3040: mov r0, ip -.L2753: +.L3032: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2782: +.L3061: .align 2 -.L2781: +.L3060: .word .LANCHOR0 - .word .LANCHOR1+1764 + .word .LANCHOR1+2348 .word .LC0 .word .LANCHOR2 .word .LANCHOR3 - .word .LC175 - .word .LC176 - .word .LC177 - .word .LC178 - .word .LC179 - .word .LC180 + .word .LC184 + .word .LC185 + .word .LC186 + .word .LC187 + .word .LC188 + .word .LC189 .fnend .size flash_prog_page_en, .-flash_prog_page_en .align 2 @@ -16344,26 +17976,26 @@ ftl_prog_page: bl flash_prog_page_en cmn r0, #1 mov r4, r0 - bne .L2784 - ldr r1, .L2786 - movw r2, #2344 - ldr r0, .L2786+4 + bne .L3063 + ldr r1, .L3065 + movw r2, #2670 + ldr r0, .L3065+4 bl printk bl dump_stack - ldr r0, .L2786+8 + ldr r0, .L3065+8 mov r1, r5 bl printk -.L2784: +.L3063: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2787: +.L3066: .align 2 -.L2786: - .word .LANCHOR1+1784 +.L3065: + .word .LANCHOR1+2368 .word .LC0 - .word .LC180 + .word .LC189 .fnend .size ftl_prog_page, .-ftl_prog_page .align 2 @@ -16371,227 +18003,211 @@ ftl_prog_page: .type ftl_info_flush, %function ftl_info_flush: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r1, #0 - ldr r4, .L2830 - .pad #28 - sub sp, sp, #28 + ldr r6, .L3105 + .pad #20 + sub sp, sp, #20 mov r10, r0 - ldr r0, .L2830+4 - ldr r5, .L2830+8 - mov r9, #0 - ldrb r2, [r4, #2260] @ zero_extendqisi2 - ldr fp, .L2830 - mov r7, r5 + ldr r0, .L3105+4 + ldr r4, .L3105+8 + mov r8, #0 + ldrb r2, [r6, #2772] @ zero_extendqisi2 + ldr r9, .L3105+12 + mov r7, r4 mov r2, r2, asl #1 bl ftl_memset - ldrb r3, [r4, #2938] @ zero_extendqisi2 - cmp r3, #0 - ldrne r3, [r4, #2288] - movne r2, #0 - strneh r2, [r3, #150] @ movhi - strne r2, [r3, #156] - ldr r3, [r4, #2288] + ldr r3, [r6, #2804] ldrh r2, [r3, #74] cmp r2, #0 movne r2, #0 strneh r2, [r3, #150] @ movhi -.L2801: - ldrb r3, [r5, #-2936] @ zero_extendqisi2 - ldr r8, .L2830+12 - ldr r6, .L2830+16 +.L3079: + ldrh r3, [r4, #138] + ldr r2, [r6, #2804] + ldrb r1, [r6, #2772] @ zero_extendqisi2 str r3, [sp, #12] - ldrh r3, [r8] - add r0, r6, #64 - ldr r2, [r4, #2288] - ldrb r1, [r4, #2260] @ zero_extendqisi2 - str r3, [sp, #16] - ldrh r3, [r6, #2] - mov r1, r1, asl #9 - str r3, [sp, #20] ldr r3, [r2, #4] + ldr r0, [r4, #140] + mov r1, r1, asl #9 add r3, r3, #1 str r3, [r2, #4] - str r3, [r5, #-3188] - str r10, [r5, #-3192] + ldrb r5, [r4, #136] @ zero_extendqisi2 + str r3, [r4, #-116] + ldrh fp, [r9] + str r10, [r4, #-120] bl js_hash - ldr r3, .L2830+20 + ldr r3, .L3105+16 ldr r3, [r3] tst r3, #4096 - str r0, [r5, #-3184] - beq .L2791 - ldr r3, [fp, #2288] - ldr r0, .L2830+24 - ldrb r1, [r5, #-2936] @ zero_extendqisi2 - ldrh r2, [r6, #2] + str r0, [r4, #-112] + beq .L3069 + ldr r3, .L3105 + ldr r0, .L3105+20 + ldrb r1, [r4, #136] @ zero_extendqisi2 + ldr r3, [r3, #2804] + ldrh r2, [r4, #138] ldr r3, [r3, #4] bl printk -.L2791: - ldr r3, .L2830+28 - ldrh r0, [r6, #2] +.L3069: + ldr r3, .L3105+24 + ldrh r0, [r7, #138] ldrh r3, [r3] cmp r3, r0 - bhi .L2792 -.L2797: - ldrb r3, [r7, #-2935] @ zero_extendqisi2 + bhi .L3070 +.L3075: + ldrb r3, [r7, #137] @ zero_extendqisi2 add r3, r3, #1 uxtb r3, r3 - strb r3, [r7, #-2935] + strb r3, [r7, #137] cmp r3, #7 - bls .L2793 + bls .L3071 mov r3, #8 -.L2796: - ldr r2, [r4, #664] - sub r9, r3, #8 +.L3074: + ldr r2, [r6, #1176] + sub r5, r3, #8 add r2, r2, r3 - uxth r9, r9 + uxth r5, r5 ldrb r1, [r2, #32] @ zero_extendqisi2 add r2, r1, #127 uxtb r2, r2 cmp r2, #125 - bhi .L2794 - ldr r1, .L2830+32 - movw r2, #761 - ldr r0, .L2830+36 + bhi .L3072 + ldr r1, .L3105+28 + movw r2, #841 + ldr r0, .L3105+32 bl printk bl dump_stack - b .L2795 -.L2794: + b .L3073 +.L3072: cmp r1, #255 - bne .L2795 + bne .L3073 add r3, r3, #1 cmp r3, #16 - bne .L2796 - mov r9, #8 -.L2795: - strb r9, [r7, #-2935] - mov r9, #1 -.L2793: - ldr r3, [r4, #664] - ldrb r2, [r7, #-2935] @ zero_extendqisi2 + bne .L3074 + mov r5, #8 +.L3073: + mov r8, #1 + strb r5, [r7, #137] +.L3071: + ldr r3, [r6, #1176] + ldrb r2, [r7, #137] @ zero_extendqisi2 add r3, r3, r2 ldrb r3, [r3, #40] @ zero_extendqisi2 cmp r3, #255 - strb r3, [r7, #-2936] - beq .L2797 - ldrh r8, [r8] + strb r3, [r7, #136] + beq .L3075 + ldrh r5, [r9] mov r0, #0 - mul r8, r8, r3 - mov r1, r8 + mul r5, r5, r3 + mov r1, r5 bl flash_erase_block - ldr r3, .L2830 - ldr r2, .L2830+40 - mov r1, r8 + ldr r3, .L3105 + mov r1, r5 mov r0, #0 - ldrb r3, [r3, #2260] @ zero_extendqisi2 + ldrb r3, [r3, #2772] @ zero_extendqisi2 str r3, [sp] - sub r3, r2, #320 + ldr r3, .L3105+4 + ldr r2, [r4, #140] bl ftl_prog_page - ldr r3, .L2830+16 - mov r2, #1 - add r8, r8, r2 - strh r2, [r3, #2] @ movhi - b .L2798 -.L2792: + mov r3, #1 + strh r3, [r4, #138] @ movhi + add r5, r5, r3 + b .L3076 +.L3070: ldr r3, [sp, #12] cmp r0, #0 - ldr r2, [sp, #16] - ldr r1, [sp, #20] - mla r8, r2, r3, r1 - bne .L2798 - mov r1, r8 + mla r5, fp, r5, r3 + bne .L3076 + mov r1, r5 bl flash_erase_block -.L2798: - ldrb r3, [r4, #2260] @ zero_extendqisi2 +.L3076: + ldrb r3, [r6, #2772] @ zero_extendqisi2 mov r0, #0 - ldr r2, .L2830+40 - mov r1, r8 + ldr fp, .L3105+8 + mov r1, r5 str r3, [sp] - sub r3, r2, #320 + sub r3, fp, #120 + ldr r2, [r7, #140] bl ftl_prog_page - ldrh r3, [r6, #2] + ldrh r3, [r7, #138] add r3, r3, #1 - strh r3, [r6, #2] @ movhi - ldr r3, .L2830+44 + strh r3, [r7, #138] @ movhi cmn r0, #1 - beq .L2799 - ldrb r2, [r3, #-2856] @ zero_extendqisi2 - cmp r2, #0 - beq .L2800 -.L2799: - mov r2, #0 - strb r2, [r3, #-2856] - b .L2801 -.L2800: - cmp r9, #1 - beq .L2802 -.L2810: - ldr r3, .L2830+8 - ldrb r3, [r3, #-2936] @ zero_extendqisi2 + beq .L3077 + ldrb r3, [r4, #144] @ zero_extendqisi2 + cmp r3, #0 + beq .L3078 +.L3077: + mov r3, #0 + strb r3, [r7, #144] + b .L3079 +.L3078: + cmp r8, #1 + beq .L3080 +.L3088: + ldr r3, .L3105+8 + ldrb r3, [r3, #136] @ zero_extendqisi2 cmp r3, #255 - bne .L2804 - ldr r1, .L2830+32 - movw r2, #797 - ldr r0, .L2830+36 + bne .L3082 + ldr r1, .L3105+28 + movw r2, #885 + ldr r0, .L3105+32 bl printk bl dump_stack - b .L2804 -.L2802: - ldr r3, .L2830+8 - ldrb r5, [r3, #-2935] @ zero_extendqisi2 - add r5, r5, #1 -.L2805: - cmp r5, #7 - bhi .L2810 - ldr r3, [r4, #664] - add r3, r3, r5 - ldrb r6, [r3, #40] @ zero_extendqisi2 - add r3, r6, #127 + b .L3082 +.L3080: + ldrb r4, [fp, #137] @ zero_extendqisi2 + add r4, r4, #1 +.L3083: + cmp r4, #7 + bhi .L3088 + ldr r3, [r6, #1176] + add r3, r3, r4 + ldrb r5, [r3, #40] @ zero_extendqisi2 + add r3, r5, #127 uxtb r3, r3 cmp r3, #125 - bhi .L2806 - ldr r1, .L2830+32 - movw r2, #790 - ldr r0, .L2830+36 + bhi .L3084 + ldr r1, .L3105+28 + mov r2, #876 + ldr r0, .L3105+32 bl printk bl dump_stack - b .L2807 -.L2806: - cmp r6, #255 - beq .L2808 -.L2807: - ldr r3, .L2830+12 + b .L3085 +.L3084: + cmp r5, #255 + beq .L3086 +.L3085: + ldr r3, .L3105+12 mov r0, #0 ldrh r1, [r3] - mul r1, r1, r6 + mul r1, r1, r5 bl flash_erase_block -.L2808: - add r5, r5, #1 - uxth r5, r5 - b .L2805 -.L2804: +.L3086: + add r4, r4, #1 + uxth r4, r4 + b .L3083 +.L3082: mov r0, #0 - add sp, sp, #28 + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2831: +.L3106: .align 2 -.L2830: +.L3105: .word .LANCHOR0 - .word .LANCHOR3-3192 + .word .LANCHOR3-120 .word .LANCHOR3 - .word .LANCHOR0+2994 - .word .LANCHOR3-2936 + .word .LANCHOR3-3142 .word .LANCHOR2 - .word .LC181 - .word .LANCHOR0+2960 - .word .LANCHOR1+1800 + .word .LC190 + .word .LANCHOR3-3172 + .word .LANCHOR1+2384 .word .LC0 - .word .LANCHOR3-2872 - .word .LANCHOR4 .fnend .size ftl_info_flush, .-ftl_info_flush .align 2 @@ -16601,180 +18217,178 @@ ftl_info_blk_init: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2865 - mov r2, #1 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r8, #0 - ldr r7, .L2865+4 - mov r1, r8 - strb r2, [r3, #-2856] + mov r3, #1 + ldr r4, .L3140 + mov r6, #0 + ldr r5, .L3140+4 + mov r1, r6 + mov r2, #16384 .pad #28 sub sp, sp, #28 - strb r2, [r3, #-2854] - mov r2, #16384 - strb r8, [r3, #-2855] - add r3, r7, #564 - ldr r0, .L2865+8 - mov r6, #7 - ldrh r3, [r3] - mov r4, r7 - ldr r9, .L2865+12 - str r0, [r7, #568] + strb r3, [r4, #144] + mov r10, r4 + strb r3, [r4, #146] + movw r3, #1076 + ldr r0, [r4, #140] + ldrh r3, [r5, r3] + strb r6, [r4, #145] + str r0, [r5, #1080] add r3, r0, r3, asl #2 - str r3, [r7, #2288] + str r3, [r5, #2804] bl ftl_memset - ldr r0, .L2865+16 - mov r1, r8 + mov r1, r6 + ldr r0, [r4, #148] mov r2, #16384 bl ftl_memset - ldr r3, [r7, #664] - ldr r10, .L2865+20 - mov r5, r9 - ldr fp, .L2865+24 + ldr r3, [r5, #1176] + ldr fp, .L3140+8 + strb r6, [r4, #137] ldrb r3, [r3, #40] @ zero_extendqisi2 - strb r8, [r9, #-2935] - strb r3, [r9, #-2936] - mov r9, r7 - ldr r3, .L2865+28 - strh r8, [r3, #2] @ movhi - str r3, [sp, #16] -.L2837: - ldr r3, [r4, #664] + strh r6, [r4, #138] @ movhi + mov r6, #7 + strb r3, [r4, #136] +.L3112: + ldr r3, [r5, #1176] uxth r7, r6 + ldr ip, .L3140+4 add r3, r3, r6 ldrb r3, [r3, #40] @ zero_extendqisi2 cmp r3, #255 - beq .L2833 - ldrh ip, [r10] + beq .L3108 + ldr r2, .L3140+12 mov r0, #0 - ldr r2, .L2865+8 - mul ip, ip, r3 - ldrb r3, [r9, #2260] @ zero_extendqisi2 - str r3, [sp] - sub r3, r2, #320 - mov r1, ip str ip, [sp, #12] + ldrh r9, [r2] + ldr r2, [r4, #140] + mul r9, r9, r3 + ldrb r3, [ip, #2772] @ zero_extendqisi2 + str r3, [sp] + ldr r3, .L3140+16 + mov r1, r9 bl ftl_read_page cmn r0, #1 mov r8, r0 ldr ip, [sp, #12] - bne .L2834 - ldrb r3, [r9, #2260] @ zero_extendqisi2 + bne .L3109 + ldrb r3, [ip, #2772] @ zero_extendqisi2 mov r0, #0 - ldr r2, .L2865+8 - add r1, ip, #1 + add r1, r9, #1 str r3, [sp] - sub r3, r2, #320 + ldr r3, .L3140+16 + ldr r2, [r10, #140] bl ftl_read_page mov r8, r0 -.L2834: - ldr r3, .L2865+32 +.L3109: + ldr r3, .L3140+20 ldr r3, [r3] tst r3, #4096 - beq .L2835 - ldr r3, [r4, #2288] + beq .L3110 + ldr r3, [r5, #2804] mov r1, r6 - ldr r0, .L2865+36 + ldr r0, .L3140+24 mov r2, r8 ldr r3, [r3] str r3, [sp] - mov r3, #672 + mov r3, #744 bl printk -.L2835: +.L3110: cmn r8, #1 - beq .L2833 - ldr r3, [r4, #2288] + beq .L3108 + ldr r3, [r5, #2804] ldr r3, [r3] cmp r3, fp - beq .L2847 -.L2833: + beq .L3122 +.L3108: subs r6, r6, #1 - bcs .L2837 + bcs .L3112 movw r6, #65535 mov r7, #0 - b .L2836 -.L2847: + b .L3111 +.L3122: mov r6, r7 -.L2836: - ldr r3, .L2865+32 +.L3111: + ldr r3, .L3140+20 sxth r6, r6 - ldr r3, [r3] - tst r3, #4096 - beq .L2838 - ldr r3, [r4, #2288] + ldr r2, [r3] + str r3, [sp, #16] + tst r2, #4096 + beq .L3113 + ldr r3, [r5, #2804] mov r1, r6 - ldr r0, .L2865+40 + ldr r0, .L3140+28 mov r2, #4800 ldr r3, [r3] bl printk -.L2838: +.L3113: cmn r6, #1 - bne .L2839 + bne .L3114 mov r2, #16384 - ldr r0, .L2865+8 + ldr r0, [r4, #140] mov r1, #0 bl ftl_memset - ldr r3, [r4, #2288] - ldr r2, .L2865+24 + ldr r3, [r5, #2804] + ldr r2, .L3140+8 mov r0, r6 str r2, [r3] - ldr r2, .L2865+44 - ldr r3, [r4, #2288] + ldr r2, .L3140+32 + ldr r3, [r5, #2804] str r2, [r3, #12] - b .L2840 -.L2839: - ldr r3, [r4, #664] + b .L3115 +.L3114: + ldr r3, [r5, #1176] mov r0, #0 - ldr r2, .L2865+8 + ldr r2, [r4, #140] sxtah r3, r3, r7 - strb r7, [r5, #-2935] - ldr r9, .L2865+12 + strb r7, [r4, #137] + ldr r6, .L3140+36 + mov r7, #0 ldrb r1, [r3, #40] @ zero_extendqisi2 mov r3, #4 - ldr r10, .L2865+4 - ldr fp, .L2865+24 - strb r1, [r5, #-2936] str r3, [sp] - sub r3, r2, #320 + ldr r3, .L3140+16 + strb r1, [r4, #136] bl flash_get_last_written_page - movw r2, #2994 - ldrh r6, [r4, r2] - uxth r7, r0 - mov r8, r0 - add r3, r7, #1 + ldrh r8, [r6, #-6] + add r6, r6, #3136 + ldr fp, .L3140+8 + uxth r9, r0 + mov r10, r0 + add r3, r9, #1 uxth r3, r3 str r3, [sp, #12] - ldrb r3, [r5, #-2936] @ zero_extendqisi2 - mov r5, #0 - mul r6, r6, r3 -.L2841: - rsb r3, r5, r7 + ldrb r3, [r4, #136] @ zero_extendqisi2 + mul r8, r8, r3 +.L3116: + rsb r3, r7, r9 tst r3, #32768 - bne .L2845 - ldrb r3, [r4, #2260] @ zero_extendqisi2 - add r1, r8, r6 - ldr r2, .L2865+8 + bne .L3120 + ldrb r3, [r5, #2772] @ zero_extendqisi2 + add r1, r10, r8 + ldr ip, .L3140+4 mov r0, #0 - rsb r1, r5, r1 + rsb r1, r7, r1 + ldr r2, [r4, #140] str r3, [sp] - sub r3, r2, #320 + ldr r3, .L3140+16 + str ip, [sp, #20] bl ftl_read_page cmn r0, #1 - beq .L2842 - ldr r3, [r10, #2288] + beq .L3117 + ldr ip, [sp, #20] + ldr r3, [ip, #2804] ldr r3, [r3] cmp r3, fp - bne .L2842 - ldr r3, [r9, #-3184] + bne .L3117 + ldr r3, [r6, #-112] cmp r3, #0 - bne .L2843 -.L2845: - ldr r3, [sp, #16] - ldrh r2, [sp, #12] - strh r2, [r3, #2] @ movhi + bne .L3118 +.L3120: + ldrh r3, [sp, #12] + strh r3, [r4, #138] @ movhi bl ftl_tmp_into_update - ldr r2, [r4, #2288] + ldr r2, [r5, #2804] mov r0, #0 ldr r3, [r2, #64] add r3, r3, #1 @@ -16782,53 +18396,51 @@ ftl_info_blk_init: bl ftl_info_flush mov r0, #0 bl ftl_info_flush - ldr r3, .L2865+32 + ldr r3, [sp, #16] ldr r0, [r3] ands r0, r0, #16384 - beq .L2840 - ldr r3, .L2865+4 - ldr r0, .L2865+48 - ldr r3, [r3, #2288] + beq .L3115 + ldr r3, .L3140+4 + ldr r0, .L3140+40 + ldr r3, [r3, #2804] ldr r1, [r3, #156] bl printk mov r0, #0 - b .L2840 -.L2843: - ldrb r1, [r10, #2260] @ zero_extendqisi2 - ldr r0, .L2865+8 + b .L3115 +.L3118: + ldrb r1, [ip, #2772] @ zero_extendqisi2 + ldr r0, [r6, #140] str r3, [sp, #20] mov r1, r1, asl #9 bl js_hash ldr r3, [sp, #20] cmp r3, r0 - beq .L2845 - ldr r0, .L2865+52 - ldr r1, [r9, #-3184] + beq .L3120 + ldr r0, .L3140+44 + ldr r1, [r6, #-112] bl printk -.L2842: - add r5, r5, #1 - b .L2841 -.L2840: +.L3117: + add r7, r7, #1 + b .L3116 +.L3115: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2866: +.L3141: .align 2 -.L2865: - .word .LANCHOR4 - .word .LANCHOR0 - .word .LANCHOR3-2872 +.L3140: .word .LANCHOR3 - .word .LANCHOR4-2792 - .word .LANCHOR0+2994 + .word .LANCHOR0 .word 1229739078 - .word .LANCHOR3-2936 + .word .LANCHOR3-3142 + .word .LANCHOR3-120 .word .LANCHOR2 - .word .LC182 - .word .LC183 - .word 393248 - .word .LC185 - .word .LC184 + .word .LC191 + .word .LC192 + .word 393251 + .word .LANCHOR3-3136 + .word .LC194 + .word .LC193 .fnend .size ftl_info_blk_init, .-ftl_info_blk_init .align 2 @@ -16838,14 +18450,14 @@ ftl_ext_info_flush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - .pad #8 + stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} + .pad #12 bl timer_get_time - ldr r3, .L2883 - ldr r4, .L2883+4 + ldr r3, .L3158 + ldr r4, .L3158+4 umull r0, r1, r0, r3 - ldr r3, [r4, #580] + ldr r3, [r4, #1092] ldr r0, [r3, #520] mov r1, r1, lsr #5 cmp r1, r0 @@ -16853,110 +18465,108 @@ ftl_ext_info_flush: rsbhi r2, r0, r2 addhi r2, r2, r1 strhi r2, [r3, #12] - bhi .L2882 -.L2868: - bcs .L2869 -.L2882: + bhi .L3157 +.L3143: + bcs .L3144 +.L3157: str r1, [r3, #520] -.L2869: +.L3144: mov r0, #0 - ldr r5, .L2883+8 + ldr r7, .L3158+8 bl ftl_total_vpn_update - ldr r7, .L2883+12 - mov r6, r5 -.L2873: - ldr r3, [r4, #2288] + ldr r6, .L3158+12 +.L3148: + ldr r3, [r4, #2804] ldr r2, [r3, #56] add r2, r2, #1 str r2, [r3, #56] ldrh r2, [r3, #140] ldrh r3, [r7] cmp r2, r3 - bcc .L2871 + bcc .L3146 bl ftl_ext_alloc_new_blk -.L2871: - ldr r3, [r4, #2288] +.L3146: + ldr r3, [r4, #2804] ldrh r2, [r3, #130] movw r3, #65535 cmp r2, r3 - bne .L2872 - ldr r1, .L2883+16 - movw r2, #1926 - ldr r0, .L2883+20 + bne .L3147 + ldr r1, .L3158+16 + movw r2, #2203 + ldr r0, .L3158+20 bl printk bl dump_stack -.L2872: - ldr r1, [r4, #2288] - ldr r8, .L2883+24 - ldrb r2, [r4, #676] @ zero_extendqisi2 +.L3147: + ldr r1, [r4, #2804] + ldr r0, .L3158+24 + ldrb r2, [r4, #1189] @ zero_extendqisi2 ldrh r3, [r1, #130] - ldrh r0, [r8] + ldrh r0, [r0] rsb r2, r2, #24 - ldrh r8, [r8, #66] + ldr r8, .L3158+12 rsb r2, r0, r2 mvn r0, #0 mov r9, r3, asr r2 bic r3, r3, r0, asl r2 + ldr r2, .L3158+28 + sub r0, r8, #120 + sxth r3, r3 + ldrh r5, [r2] ldrh r2, [r1, #140] mov r1, #0 - sxth r3, r3 - ldr r10, .L2883+28 - ldr r0, .L2883+32 - mla r8, r8, r3, r2 - ldrb r2, [r4, #2260] @ zero_extendqisi2 + mla r5, r5, r3, r2 + ldrb r2, [r4, #2772] @ zero_extendqisi2 mov r2, r2, asl #1 bl ftl_memset mov r3, #0 - str r3, [r10, #-3192] - ldr r3, [r4, #2288] - ldrb r1, [r4, #2260] @ zero_extendqisi2 - ldr r0, .L2883+36 + str r3, [r6, #-120] + ldr r3, [r4, #2804] + ldrb r1, [r4, #2772] @ zero_extendqisi2 + ldr r0, [r6, #148] ldr r3, [r3, #56] mov r1, r1, asl #9 - str r3, [r10, #-3188] + str r3, [r6, #-116] bl js_hash - ldrb r3, [r4, #2260] @ zero_extendqisi2 - mov r1, r8 - ldr r2, .L2883+36 - str r0, [r10, #-3184] + ldrb r3, [r4, #2772] @ zero_extendqisi2 + mov r1, r5 + ldr r2, [r6, #148] + str r0, [r6, #-112] uxtb r0, r9 str r3, [sp] - ldr r3, .L2883+32 + sub r3, r8, #120 bl ftl_prog_page - ldr r2, [r4, #2288] + ldr r2, [r4, #2804] ldrh r3, [r2, #140] add r3, r3, #1 uxth r3, r3 strh r3, [r2, #140] @ movhi cmp r3, #1 - beq .L2873 + beq .L3148 cmn r0, #1 - beq .L2874 - ldrb r0, [r5, #-2854] @ zero_extendqisi2 + beq .L3149 + ldrb r0, [r8, #146] @ zero_extendqisi2 cmp r0, #0 - beq .L2875 -.L2874: -.L2870: + beq .L3150 +.L3149: +.L3145: mov r3, #0 - strb r3, [r6, #-2854] - b .L2873 -.L2875: - add sp, sp, #8 + strb r3, [r8, #146] + b .L3148 +.L3150: + add sp, sp, #12 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2884: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L3159: .align 2 -.L2883: +.L3158: .word 1374389535 .word .LANCHOR0 - .word .LANCHOR4 - .word .LANCHOR0+2960 - .word .LANCHOR1+1816 - .word .LC0 - .word .LANCHOR0+2928 + .word .LANCHOR3-3172 .word .LANCHOR3 - .word .LANCHOR3-3192 - .word .LANCHOR4-2792 + .word .LANCHOR1+2400 + .word .LC0 + .word .LANCHOR3-3204 + .word .LANCHOR3-3142 .fnend .size ftl_ext_info_flush, .-ftl_ext_info_flush .align 2 @@ -16964,115 +18574,120 @@ ftl_ext_info_flush: .type ftl_ext_info_init, %function ftl_ext_info_init: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L3180 + mov r2, #0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r2, #0 - ldr r4, .L2905 + sub r3, ip, #2608 + ldr r4, .L3180+4 mvn r5, #0 - .pad #20 - sub sp, sp, #20 - add r3, r4, #3520 - add r1, r4, #2928 - strh r2, [r3] @ movhi - ldr r3, [r4, #2288] - ldrh r1, [r1] - ldrh r2, [r3, #130] - ldrb r3, [r4, #676] @ zero_extendqisi2 - rsb r3, r3, #24 - rsb r3, r1, r3 - mov r6, r2, asr r3 - bic r5, r2, r5, asl r3 + strh r2, [r3, #-8] @ movhi + sub r2, ip, #3200 + .pad #28 + sub sp, sp, #28 + ldr r3, [r4, #2804] + ldrb r9, [r4, #1189] @ zero_extendqisi2 + ldrh r6, [r2, #-4] + ldrh r3, [r3, #130] + rsb r8, r9, #24 + rsb r6, r6, r8 + str ip, [sp, #12] + bic r5, r3, r5, asl r6 + mov fp, r3, asr r6 mov r3, #4 - ldr r2, .L2905+4 - uxtb r9, r6 - str r3, [sp] mov r1, r5 - ldr r3, .L2905+8 - mov r0, r9 + str r3, [sp] + uxtb r10, fp + ldr r2, [ip, #148] + sub r3, ip, #120 + mov r0, r10 bl flash_get_last_written_page - ldr r3, .L2905+12 + ldr r3, .L3180+8 ldr r2, [r3] tst r2, #4096 mov r7, r0 - str r3, [sp, #8] - beq .L2886 - ldr r3, [r4, #2288] - uxth r6, r6 - str r6, [sp] - movw r2, #1971 - ldr r0, .L2905+16 + str r3, [sp, #16] + beq .L3161 + uxth fp, fp + str fp, [sp] + ldr r3, [r4, #2804] + movw r2, #2248 + ldr r0, .L3180+12 + ldr r1, .L3180+16 ldrh r3, [r3, #130] - ldr r1, .L2905+20 str r3, [sp, #4] mov r3, r7 bl printk -.L2886: - ldr r10, .L2905 +.L3161: + ldr r9, .L3180 mov r8, #0 -.L2887: + ldr fp, .L3180+20 +.L3162: uxth r6, r7 rsb r3, r8, r6 tst r3, #32768 - bne .L2892 - ldr r3, .L2905+24 + bne .L3167 + ldr r3, .L3180+24 rsb r1, r8, r7 - ldrb r2, [r4, #2260] @ zero_extendqisi2 - mov r0, r9 - ldr fp, .L2905+28 + ldrb r2, [r4, #2772] @ zero_extendqisi2 + mov r0, r10 + ldr ip, .L3180+4 ldrh r3, [r3] str r2, [sp] - ldr r2, .L2905+4 + str ip, [sp, #20] mla r1, r3, r5, r1 - ldr r3, .L2905+8 + ldr r3, [sp, #12] + ldr r2, [r3, #148] + ldr r3, .L3180+28 bl flash_read_page_en cmp r0, #512 cmnne r0, #1 - beq .L2888 - ldr r3, [r10, #580] - ldr r2, .L2905+32 + ldr ip, [sp, #20] + beq .L3163 + ldr r3, [ip, #1092] ldr r3, [r3] - cmp r3, r2 - bne .L2888 - ldr r3, [fp, #-3184] + cmp r3, fp + bne .L3163 + ldr r3, [r9, #-112] cmp r3, #0 - bne .L2889 -.L2892: + bne .L3164 +.L3167: bl zftl_sblk_list_init - ldr r3, [r4, #2288] + ldr r3, [r4, #2804] ldrh r2, [r3, #140] cmp r2, r7 - bgt .L2891 + bgt .L3166 add r6, r6, #1 strh r6, [r3, #140] @ movhi bl ftl_ext_info_flush - b .L2891 -.L2889: - ldrb r1, [r10, #2260] @ zero_extendqisi2 - ldr r0, .L2905+4 - str r3, [sp, #12] + b .L3166 +.L3164: + ldrb r1, [ip, #2772] @ zero_extendqisi2 + ldr r0, [r9, #148] + str r3, [sp, #20] mov r1, r1, asl #9 bl js_hash - ldr r3, [sp, #12] + ldr r3, [sp, #20] cmp r3, r0 - beq .L2892 - ldr r0, .L2905+36 - ldr r1, [fp, #-3184] + beq .L3167 + ldr r0, .L3180+32 + ldr r1, [r9, #-112] bl printk -.L2888: +.L3163: add r8, r8, #1 - b .L2887 -.L2891: - ldr r5, [r4, #580] + b .L3162 +.L3166: + ldr r5, [r4, #1092] bl timer_get_time - ldr r3, .L2905+40 + ldr r3, .L3180+36 umull r0, r1, r0, r3 mov r3, r1, lsr #5 str r3, [r5, #520] - ldr r5, [r4, #580] + ldr r5, [r4, #1092] bl timer_get_time - ldr r3, [r4, #580] + ldr r3, [r4, #1092] mov r2, #0 add r1, r3, #584 str r0, [r5, #604] @@ -17087,43 +18702,43 @@ ftl_ext_info_init: strh r2, [r3, r1] @ movhi movw r1, #65535 str r2, [r3, #564] - ldr r2, [sp, #8] + ldr r2, [sp, #16] str r1, [r3, #560] ldr r2, [r2] tst r2, #4096 - beq .L2894 - ldr r6, [r3, #520] - ldr r5, [r3, #12] + beq .L3169 + ldr r5, [r3, #520] + ldr r4, [r3, #12] bl timer_get_time - ldr r1, .L2905+20 - mov r2, r6 - mov r3, r5 + ldr r1, .L3180+16 + mov r2, r5 + mov r3, r4 str r0, [sp] - ldr r0, .L2905+44 + ldr r0, .L3180+40 bl printk -.L2894: - movw r3, #2908 +.L3169: + ldr r3, .L3180+44 mvn r2, #0 mov r0, #0 - strh r2, [r4, r3] @ movhi - add sp, sp, #20 + strh r2, [r3, #-8] @ movhi + add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2906: +.L3181: .align 2 -.L2905: - .word .LANCHOR0 - .word .LANCHOR4-2792 - .word .LANCHOR3-3192 - .word .LANCHOR2 - .word .LC186 - .word .LANCHOR1+1836 - .word .LANCHOR0+2994 +.L3180: .word .LANCHOR3 + .word .LANCHOR0 + .word .LANCHOR2 + .word .LC195 + .word .LANCHOR1+2420 .word 1162432070 - .word .LC187 + .word .LANCHOR3-3142 + .word .LANCHOR3-120 + .word .LC196 .word 1374389535 - .word .LC188 + .word .LC197 + .word .LANCHOR3-3216 .fnend .size ftl_ext_info_init, .-ftl_ext_info_init .align 2 @@ -17137,10 +18752,10 @@ ftl_prog_ppa_page: .save {r4, lr} .pad #8 mov lr, r2 - ldr r2, .L2909 + ldr r2, .L3184 mov ip, r0 mov r4, r1 - ldrb r0, [r2, #676] @ zero_extendqisi2 + ldrb r0, [r2, #1189] @ zero_extendqisi2 mov r2, #1 str r3, [sp] mov r3, lr @@ -17157,9 +18772,9 @@ ftl_prog_ppa_page: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, pc} -.L2910: +.L3185: .align 2 -.L2909: +.L3184: .word .LANCHOR0 .fnend .size ftl_prog_ppa_page, .-ftl_prog_ppa_page @@ -17174,763 +18789,178 @@ ftl_write_last_log_page: .save {r4, r5, r6, r7, r8, lr} mov r4, r0 ldrh r3, [r0, #6] - ldr r5, .L2916 + ldr r5, .L3191 cmp r3, #1 - ldrh r7, [r0, #12] - ldr r6, [r5, #3512] - bne .L2913 + ldrh r8, [r0, #12] + ldr r6, [r5, #-2624] + bne .L3188 bl ftl_get_new_free_page cmn r0, #1 - mov r8, r0 - beq .L2914 + mov r7, r0 + beq .L3189 ldrh r0, [r4] - add r6, r6, r7, asl #2 + add r6, r6, r8, asl #2 bl ftl_vpn_decrement - ldr r7, .L2916+4 - ldr r3, .L2916+8 + ldr r3, .L3191+4 mov r0, r6 mov r4, #0 - str r3, [r7, #-2776] - add r3, r5, #2960 - ldrh r1, [r3] - ldrb r3, [r5, #2964] @ zero_extendqisi2 + str r3, [r5, #200] + sub r3, r5, #3168 + ldrh r1, [r3, #-4] + ldrb r3, [r5, #-3195] @ zero_extendqisi2 mul r1, r3, r1 mov r1, r1, asl #2 bl js_hash + mov r1, r5 + str r4, [r1, #216]! + mov r2, r4 + str r4, [r5, #208] + str r4, [r5, #212] + str r0, [r5, #204] + mov r0, #2 + bl ftl_debug_info_fill + ldr r3, .L3191+8 + mov r0, r7 mov r1, r6 - ldr r2, .L2916+12 - ldrb r3, [r5, #2260] @ zero_extendqisi2 - str r4, [r7, #-2768] - str r4, [r7, #-2764] - str r0, [r7, #-2772] - mov r0, r8 + add r2, r5, #200 + ldrb r3, [r3, #2772] @ zero_extendqisi2 bl ftl_prog_ppa_page - b .L2914 -.L2913: + b .L3189 +.L3188: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2914: +.L3189: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2917: +.L3192: .align 2 -.L2916: - .word .LANCHOR0 - .word .LANCHOR5 +.L3191: + .word .LANCHOR3 .word -178307901 - .word .LANCHOR5-2776 + .word .LANCHOR0 .fnend .size ftl_write_last_log_page, .-ftl_write_last_log_page .align 2 - .global ftl_open_sblk_recovery - .type ftl_open_sblk_recovery, %function -ftl_open_sblk_recovery: - .fnstart - @ args = 0, pretend = 0, frame = 216 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #228 - sub sp, sp, #228 - ldr r6, .L3048 - mov r4, r0 - str r1, [sp, #20] - ldr r3, [r6] - tst r3, #4096 - beq .L2919 - ldr r0, .L3048+4 - ldrh r1, [r4, #2] - bl printk -.L2919: - ldr r3, [r6] - tst r3, #4096 - beq .L2920 - ldr r0, .L3048+8 - ldrb r1, [r4, #5] @ zero_extendqisi2 - bl printk -.L2920: - ldr r3, [r6] - tst r3, #4096 - beq .L2921 - ldr r0, .L3048+12 - ldrh r1, [r4] - bl printk -.L2921: - ldr r3, [r6] - tst r3, #4096 - beq .L2922 - ldr r0, .L3048+16 - ldrh r1, [r4, #16] - ldrh r2, [r4, #18] - bl printk -.L2922: - ldr r3, [r6] - tst r3, #4096 - beq .L2923 - ldr r0, .L3048+20 - ldrb r1, [r4, #9] @ zero_extendqisi2 - bl printk -.L2923: - ldrh r3, [r4, #10] - ldr r7, .L3048+24 - ldrh r2, [r4] - strh r3, [r4, #14] @ movhi - ldrh r3, [r7] - cmp r2, r3 - bcs .L2918 - mov r0, #1 - sub r7, r7, #564 - bl buf_alloc - mov r1, #255 - mov r2, #64 - mov r10, #2 - mov r5, r0 - add r0, sp, #32 - bl ftl_memset - mov r1, #255 - mov r2, #64 - add r0, sp, #96 - bl ftl_memset - mov r1, #255 - mov r2, #64 - add r0, sp, #160 - bl ftl_memset - ldrb r8, [r4, #5] @ zero_extendqisi2 - ldrh r9, [r4, #2] - mov r3, #0 - str r3, [sp, #12] -.L2925: - ldr r3, .L3048+28 - ldrh r2, [r3] - cmp r2, r9 - bls .L2928 - ldrb r8, [r4, #5] @ zero_extendqisi2 - add r3, r3, #34 - str r3, [sp, #24] -.L2926: - ldrb r3, [r4, #9] @ zero_extendqisi2 - cmp r3, r8 - bls .L3044 - add r3, r4, r8, asl #1 - movw r2, #65535 - ldrh r3, [r3, #16] - cmp r3, r2 - beq .L2927 - ldr r2, [sp, #24] - ldr r1, [r5, #4] - ldrh r2, [r2] - mla r3, r2, r3, r9 - ldr r2, [r5, #12] - str r3, [sp, #16] - mov r0, r3 - ldrb r3, [r7, #2260] @ zero_extendqisi2 - bl ftl_read_ppa_page - cmp r0, #512 - mov fp, r0 - beq .L2928 - cmn r0, #1 - beq .L2929 - ldr r3, [r5, #12] - ldr r2, [r3] - cmn r2, #1 - bne .L2929 - ldr r3, [r3, #4] - cmn r3, #1 - bne .L2929 - ldr r3, [r5, #4] - ldr r3, [r3] - cmn r3, #1 - beq .L2928 -.L2929: - ldr r3, .L3048+32 - mov r2, #1 - strb r2, [r3, #-2855] - ldrb r3, [r4, #9] @ zero_extendqisi2 - ldrh r2, [r4, #10] - mla r3, r3, r9, r8 - cmp r2, r3 - beq .L2930 - ldr r1, .L3048+36 - movw r2, #1498 - ldr r0, .L3048+40 - bl printk - bl dump_stack -.L2930: - ldrh r3, [r4, #10] - ldrh r2, [r4, #6] - add r2, r2, r3 - ldr r3, .L3048+28 - ldrh r1, [r3] - ldrb r3, [r4, #9] @ zero_extendqisi2 - mul r3, r3, r1 - cmp r2, r3 - beq .L2931 - ldr r1, .L3048+36 - movw r2, #1499 - ldr r0, .L3048+40 - bl printk - bl dump_stack -.L2931: - cmn fp, #1 - beq .L2935 - ldr r3, [r5, #12] - ldr r0, [r3, #4] - cmn r0, #1 - beq .L2935 - bl lpa_hash_get_ppa - ldr r2, [sp, #20] - mov r3, r0 - cmp r2, #0 - beq .L2933 - ldr r2, [r5, #12] - ldr r1, [r2, #8] - str r2, [sp, #28] - cmp r0, r1 - cmnne r0, #1 - beq .L2933 - ldr fp, .L3048+44 - mov r10, #1 - str r3, [sp, #12] - sub r2, fp, #2928 - ldrb r1, [fp, #-2252] @ zero_extendqisi2 - ldrh r0, [fp] - rsb r1, r1, #24 - rsb r1, r0, r1 - mov r1, r10, asl r1 - sub r1, r1, #1 - and r0, r1, r3, lsr r0 - ldrb r1, [r2, #2930] @ zero_extendqisi2 - bl __aeabi_uidiv - ldr r3, [sp, #20] - uxth r0, r0 - ldr r2, [sp, #28] - ldrh r1, [r3] - ldr r3, [sp, #12] - cmp r1, r0 - bne .L2933 - ldr ip, [r2] - mov r0, r3 - ldr r1, [r5, #4] - ldrb r3, [r7, #2260] @ zero_extendqisi2 - ldr r2, .L3048+48 - str ip, [sp, #12] - bl ftl_read_ppa_page - ldr r3, .L3048+52 - ldr r3, [r3, #-3192] - ldr ip, [sp, #12] - cmp r3, ip - bcc .L2933 - ldr r3, [r5, #12] - ldr r0, [r3, #8] - cmn r0, #1 - beq .L2935 - ldrb r3, [r7, #676] @ zero_extendqisi2 - ldrh r2, [fp] - rsb r3, r3, #24 - ldrb r1, [r7, #2930] @ zero_extendqisi2 - rsb r3, r2, r3 - mov r10, r10, asl r3 - sub r10, r10, #1 - and r0, r10, r0, lsr r2 - bl __aeabi_uidiv - uxth r0, r0 - bl ftl_vpn_decrement - b .L2935 -.L2933: - ldr r2, [r5, #12] - ldr r3, [r7, #2268] - ldr r1, [r2, #4] - cmp r1, r3 - bcs .L2935 - ldr r3, .L3048+28 - ldrb r0, [r4, #9] @ zero_extendqisi2 - ldrh r1, [r4, #10] - ldrh r3, [r3] - mul r3, r3, r0 - sub r3, r3, #1 - cmp r1, r3 - bge .L2935 - ldr r3, [r7, #2288] - ldr r2, [r2] - ldr r1, [r3, #8] - cmp r2, r1 - strhi r2, [r3, #8] - ldrh r3, [r4, #12] - ldrh r2, [r4, #10] - ldr r1, [r5, #12] - add r2, r3, r2 - ldmib r1, {r0, r1} - uxth r2, r2 - bl lpa_hash_update_ppa - ldr r3, [sp, #36] - str r3, [sp, #32] - ldr r3, [sp, #40] - str r3, [sp, #36] - ldr r3, [sp, #44] - str r3, [sp, #40] - ldr r3, [sp, #16] - str r3, [sp, #44] -.L2935: - ldrh r3, [r4, #6] - mov r10, #4 - sub r3, r3, #1 - strh r3, [r4, #6] @ movhi - ldrh r3, [r4, #10] - add r3, r3, #1 - strh r3, [r4, #10] @ movhi - mov r3, #1 - str r3, [sp, #12] -.L2927: - add r8, r8, #1 - uxth r8, r8 - b .L2926 -.L3044: - add r9, r9, #1 - mov r3, #0 - strb r3, [r4, #5] - uxth r9, r9 - b .L2925 -.L2928: - ldrh r3, [r4, #6] - ldrh r7, [r4, #10] - ldrb ip, [r4, #9] @ zero_extendqisi2 - add r7, r3, r7 - ldr r3, .L3048+28 - strh r9, [r4, #2] @ movhi - strb r8, [r4, #5] - ldrh fp, [r3] - str r3, [sp, #16] - mul ip, fp, ip - cmp r7, ip - beq .L2939 - ldr r1, .L3048+36 - movw r2, #1579 - ldr r0, .L3048+40 - bl printk - bl dump_stack -.L2939: - ldr r8, .L3048+56 - mov r7, #0 - ldrh r1, [r4, #10] - mov r3, r7 - ldr r0, [r8, #3512] -.L2940: - cmp r3, r1 - bcs .L3045 - ldrh r2, [r4, #12] - add r2, r3, r2 - add r3, r3, #1 - ldr r2, [r0, r2, asl #2] - cmn r2, #1 - addne r7, r7, #1 - uxthne r7, r7 - b .L2940 -.L3045: - ldr r3, [sp, #16] - ldrb r2, [r4, #9] @ zero_extendqisi2 - ldrh r3, [r3] - smulbb r3, r2, r3 - rsb r3, r1, r3 - add r7, r7, r3 - ldr r3, [r6] - tst r3, #4096 - uxth r7, r7 - beq .L2943 - ldr r3, .L3048+56 - mov r2, r7 - ldrh r1, [r4] - ldr r0, .L3048+60 - ldr ip, [r3, #576] - mov r3, r1, asl #1 - ldrh r3, [ip, r3] - bl printk -.L2943: - ldrh r3, [r4] - ldr r2, [r8, #576] - mov r3, r3, asl #1 - strh r7, [r2, r3] @ movhi - ldr r3, [r6] - tst r3, #16384 - beq .L2944 - ldr r3, [sp, #44] - add r1, sp, #32 - ldr r0, .L3048+64 - str r3, [sp] - ldmia r1, {r1, r2, r3} - bl printk -.L2944: - ldrb r2, [r8, #2260] @ zero_extendqisi2 - mov r1, #0 - ldr r0, [r5, #4] - mov r9, #0 - mov r2, r2, asl #9 - bl ftl_memset -.L2945: - ldrb r3, [r8, #2964] @ zero_extendqisi2 - mul r3, r3, r10 - cmp r9, r3 - bcs .L3046 - add ip, sp, #32 - ldr r0, [ip, r9, asl #2] - cmn r0, #1 - bne .L2946 -.L2950: - ldr r2, [r8, #2288] - mvn r7, #0 - ldr r3, [r5, #12] - ldr r2, [r2, #8] - str r2, [r3] - ldr r3, [r5, #12] - str r7, [r3, #4] - ldr r3, [r5, #12] - str r7, [r3, #8] - mov r3, #0 - ldr r2, [r5, #12] - str r3, [r2, #12] - ldr r2, [r5, #4] - str r3, [r2] - b .L2947 -.L2946: - ldr r3, .L3048+56 - ldr r1, [r5, #4] - ldr r2, [r5, #12] - ldrb r3, [r3, #2260] @ zero_extendqisi2 - str ip, [sp, #20] - bl ftl_read_ppa_page - ldr r3, [r5, #12] - mov r7, r0 - ldr r0, [r3, #4] - bl lpa_hash_get_ppa - ldr r3, [r6] - tst r3, #16384 - mov fp, r0 - ldr ip, [sp, #20] - beq .L2948 - ldr r3, [r5, #12] - mov r1, fp - ldr r2, [ip, r9, asl #2] - ldr r0, .L3048+68 - ldr r3, [r3, #4] - bl printk - ldr ip, [sp, #20] -.L2948: - ldr r3, [ip, r9, asl #2] - mov r2, #1 - cmp fp, r3 - ldr r3, [r5, #12] - mvnne r7, #0 - cmn r7, #1 - str fp, [r3, #8] - ldr r3, [r5, #12] - str r2, [r3, #12] - beq .L2950 -.L2947: - ldr r3, [sp, #12] - cmp r3, #1 - bne .L2952 - ldrh r3, [r4, #6] - cmp r3, #1 - bls .L2952 -.L3017: - mov r0, r4 - bl ftl_get_new_free_page - ldr r3, [r6] - tst r3, #16384 - mov fp, r0 - beq .L2954 - ldrh r1, [r4, #12] - ldr r2, [r5, #12] - ldrh r3, [r4, #10] - ldr r0, .L3048+72 - add r3, r3, r1 - ldr r2, [r2, #4] - mov r1, fp - sub r3, r3, #1 - bl printk -.L2954: - ldrb r3, [r8, #2964] @ zero_extendqisi2 - ldrh r2, [r4, #6] - mul r3, r3, r10 - add r3, r3, #1 - rsb r3, r9, r3 - cmp r2, r3 - bls .L2952 - ldr r3, .L3048+56 - mov r0, fp - ldr r2, [r5, #12] - ldr r1, [r5, #4] - ldrb r3, [r3, #2260] @ zero_extendqisi2 - bl ftl_prog_ppa_page - str r0, [sp, #20] - ldrh r0, [r4] - bl ftl_vpn_decrement - adds r3, r7, #1 - movne r3, #1 - ldr r2, [sp, #20] - cmn r2, #1 - cmnne r7, #1 - beq .L2955 - add r3, sp, #96 - ldrh r2, [r4, #12] - str fp, [r3, r9, asl #2] - ldrh r3, [r4, #10] - add r3, r3, r2 - add r2, sp, #160 - sub r3, r3, #1 - str r3, [r2, r9, asl #2] - b .L2952 -.L2955: - ldrh r2, [r4, #6] - cmp r2, #1 - movls r3, #0 - andhi r3, r3, #1 - cmp r3, #0 - bne .L3017 -.L2952: - add r9, r9, #1 - b .L2945 -.L3046: - ldr fp, .L3048+56 - add r9, sp, #32 - mov r7, #0 -.L2958: - ldrb r3, [r8, #2964] @ zero_extendqisi2 - mul r3, r3, r10 - cmp r7, r3 - bcs .L3047 - add ip, sp, #96 - str ip, [sp, #12] - ldr r3, [ip, r7, asl #2] - cmn r3, #1 - beq .L2960 - ldr r0, [r9, r7, asl #2] - ldr r1, [r5, #4] - ldr r2, [r5, #12] - ldrb r3, [fp, #2260] @ zero_extendqisi2 - bl ftl_read_ppa_page - cmn r0, #1 - cmpne r0, #256 - ldr ip, [sp, #12] - bne .L2960 - ldr r0, [ip, r7, asl #2] - ldrb r3, [fp, #2260] @ zero_extendqisi2 - ldr r1, [r5, #4] - ldr r2, [r5, #12] - bl ftl_read_ppa_page - ldr r3, [r6] - tst r3, #16384 - mov ip, r0 - beq .L2962 - ldr r3, [r5, #12] - mov r1, ip - ldr r0, .L3048+72 - str ip, [sp, #12] - ldr r2, [r3, #8] - ldr r3, [r9, r7, asl #2] - bl printk - ldr ip, [sp, #12] -.L2962: - cmn ip, #1 - beq .L2960 - ldr r3, [r5, #12] - ldr r2, [r9, r7, asl #2] - ldr r1, [r3, #8] - cmp r2, r1 - bne .L2960 - ldr r1, [r6] - add ip, sp, #160 - tst r1, #16384 - beq .L2963 - ldr r1, [r3, #4] - ldr r0, .L3048+76 - ldr r3, [ip, r7, asl #2] - str ip, [sp, #12] - bl printk - ldr ip, [sp, #12] -.L2963: - ldr r3, [r5, #12] - ldr r2, [ip, r7, asl #2] - ldmib r3, {r0, r1} - uxth r2, r2 - bl lpa_hash_update_ppa -.L2960: - add r7, r7, #1 - b .L2958 -.L3047: - mov r0, r5 - bl zbuf_free - ldrh r3, [r4, #12] - ldrb r1, [r4, #9] @ zero_extendqisi2 - ldr r2, [sp, #16] - ldrh r2, [r2] - mla r3, r1, r2, r3 - ldr r2, .L3048+56 - ldr r2, [r2, #3512] - sub r3, r3, #-1073741823 - ldr r3, [r2, r3, asl #2] - cmn r3, #1 - beq .L2965 - ldr r1, .L3048+36 - movw r2, #1670 - ldr r0, .L3048+40 - bl printk - bl dump_stack -.L2965: - ldrh r3, [r4, #6] - cmp r3, #1 - bne .L2918 - mov r0, r4 - bl ftl_write_last_log_page -.L2918: - add sp, sp, #228 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3049: - .align 2 -.L3048: - .word .LANCHOR2 - .word .LC189 - .word .LC190 - .word .LC191 - .word .LC192 - .word .LC193 - .word .LANCHOR0+564 - .word .LANCHOR0+2960 - .word .LANCHOR4 - .word .LANCHOR1+1856 - .word .LC0 - .word .LANCHOR0+2928 - .word .LANCHOR3-3192 - .word .LANCHOR3 - .word .LANCHOR0 - .word .LC194 - .word .LC195 - .word .LC196 - .word .LC197 - .word .LC198 - .fnend - .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery - .align 2 .global pm_write_page .type pm_write_page, %function pm_write_page: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - .pad #8 + stmfd sp!, {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 r6, r0 - ldr r8, .L3064 + ldr r8, .L3207 mov r7, r1 + ldr r9, .L3207+4 mov r4, r8 -.L3051: - ldr r3, [r8, #2288] +.L3194: + ldr r3, [r8, #2804] ldr r2, [r3, #48] add r2, r2, #1 str r2, [r3, #48] add r2, r3, #696 ldrh r1, [r2] - ldr r2, .L3064+4 - ldrh r2, [r2] + ldrh r2, [r9] cmp r1, r2 - bcs .L3052 + bcs .L3195 add r3, r3, #692 ldrh r2, [r3] movw r3, #65535 cmp r2, r3 - bne .L3053 -.L3052: + bne .L3196 +.L3195: bl pm_alloc_new_blk mov r0, #0 bl ftl_info_flush -.L3053: - ldr r3, [r4, #2288] +.L3196: + ldr r3, [r4, #2804] add r3, r3, #692 ldrh r2, [r3] movw r3, #65535 cmp r2, r3 - bne .L3054 - ldr r1, .L3064+8 - movw r2, #263 - ldr r0, .L3064+12 + bne .L3197 + ldr r1, .L3207+8 + movw r2, #303 + ldr r0, .L3207+12 bl printk bl dump_stack -.L3054: - ldr r3, [r4, #2288] +.L3197: + ldr r3, [r4, #2804] + ldr r5, .L3207+16 add r2, r3, #692 - add r5, r3, #696 + add r3, r3, #696 ldrh r1, [r2] - ldr r2, .L3064+16 - ldrh r9, [r2] - ldrh r2, [r5] - ldr r5, .L3064+20 - mla r9, r9, r1, r2 - ldr r0, [r5, #-2520] + ldr r2, .L3207+20 + ldr r0, [r5, #456] + ldrh r10, [r2] + ldrh r2, [r3] + mla r10, r10, r1, r2 mov r2, #64 mov r1, #0 bl ftl_memset - ldr r3, [r5, #-2520] + ldr r3, [r5, #456] mov r0, r7 str r6, [r3] - ldr r3, [r4, #2288] - ldr r10, [r5, #-2520] - ldrb r1, [r4, #2260] @ zero_extendqisi2 + ldr r3, [r4, #2804] + ldr fp, [r5, #456] + ldrb r1, [r4, #2772] @ zero_extendqisi2 ldr r3, [r3, #48] mov r1, r1, asl #9 - str r3, [r10, #4] + str r3, [fp, #4] bl js_hash - ldr r3, [r4, #2288] - mov r1, r9 + ldr r3, [r4, #2804] + mov r1, r10 mov r2, r7 - str r0, [r10, #8] + str r0, [fp, #8] ldrb r0, [r3, #694] @ zero_extendqisi2 - ldrb r3, [r4, #2260] @ zero_extendqisi2 + ldrb r3, [r4, #2772] @ zero_extendqisi2 str r3, [sp] - ldr r3, [r5, #-2520] + ldr r3, [r5, #456] bl ftl_prog_page - ldr r2, [r4, #2288] + ldr r2, [r4, #2804] add r1, r2, #696 ldrh r3, [r1] add r3, r3, #1 uxth r3, r3 strh r3, [r1] @ movhi cmp r3, #1 - beq .L3055 - ldrb r3, [r5, #-2516] @ zero_extendqisi2 + beq .L3198 + ldrb r3, [r5, #460] @ zero_extendqisi2 cmp r3, #0 - beq .L3056 -.L3055: + beq .L3199 +.L3198: mov r3, #0 - strb r3, [r5, #-2516] - b .L3051 -.L3056: + strb r3, [r5, #460] + b .L3194 +.L3199: cmn r0, #1 - bne .L3058 - mov r1, r9 - ldr r0, .L3064+24 + bne .L3201 + mov r1, r10 + ldr r0, .L3207+24 bl printk - b .L3051 -.L3058: + b .L3194 +.L3201: movw r3, #698 mov r0, #0 ldrh r3, [r2, r3] cmp r6, r3 addcc r6, r6, #176 - strcc r9, [r2, r6, asl #2] - add sp, sp, #8 + strcc r10, [r2, r6, asl #2] + add sp, sp, #12 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3065: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L3208: .align 2 -.L3064: +.L3207: .word .LANCHOR0 - .word .LANCHOR0+2960 - .word .LANCHOR1+1880 + .word .LANCHOR3-3172 + .word .LANCHOR1+2440 .word .LC0 - .word .LANCHOR0+2994 - .word .LANCHOR5 - .word .LC199 + .word .LANCHOR3 + .word .LANCHOR3-3142 + .word .LC198 .fnend .size pm_write_page, .-pm_write_page .align 2 @@ -17938,59 +18968,66 @@ pm_write_page: .type ftl_dump_write_open_sblk, %function ftl_dump_write_open_sblk: .fnstart - @ args = 0, pretend = 0, frame = 56 + @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L3251 + movw r2, #1076 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov fp, r0 - ldr r4, .L3099 - .pad #100 - sub sp, sp, #100 - add r3, r4, #564 - ldrh r3, [r3] - cmp r3, r0 - bls .L3066 - ldrb r3, [r4, #2944] @ zero_extendqisi2 - cmp r3, #0 - bne .L3068 - ldrb r3, [r4, #2938] @ zero_extendqisi2 - cmp r3, #0 - beq .L3066 -.L3068: - ldr r3, [r4, #568] - mov r6, fp, asl #2 - add r1, sp, #80 - mov r0, fp - add r3, r3, r6 - strh fp, [sp, #64] @ movhi - ldr r7, .L3099+4 + mov r6, r0 + ldrh r2, [r3, r2] + .pad #116 + sub sp, sp, #116 + cmp r2, r0 + bls .L3209 + mov fp, r3 + ldr r3, .L3251+4 + ldrb r2, [r3, #-3188] @ zero_extendqisi2 + cmp r2, #0 + bne .L3211 + ldrb r2, [r3, #-3194] @ zero_extendqisi2 + cmp r2, #0 + beq .L3209 +.L3211: + ldrb r2, [fp, #1196] @ zero_extendqisi2 + cmp r2, #0 + bne .L3209 + ldr r2, .L3251 + mov r4, r6, asl #2 + add r1, sp, #96 + mov r0, r6 + strh r6, [sp, #80] @ movhi mov r5, #0 - ldrb r3, [r3, #2] @ zero_extendqisi2 - mov r8, r5 - and r3, r3, #224 - cmp r3, #160 - ldreq r3, .L3099 - movne r9, #1 - ldreqb r9, [r3, #2937] @ zero_extendqisi2 + ldr r2, [r2, #1080] + mov r7, r5 + ldr r8, .L3251+8 + mov r9, r5 + add r2, r2, r4 + ldrb r2, [r2, #2] @ zero_extendqisi2 + and r2, r2, #224 + cmp r2, #160 + ldreqb r10, [r3, #-3196] @ zero_extendqisi2 + movne r10, #1 bl ftl_get_blk_list_in_sblk - ldrh r10, [r7] - ldr r2, [r4, #568] - add r3, r2, r6 + mov r2, r8 + ldrh r3, [r2, #-4]! uxtb r0, r0 - strh r5, [sp, #66] @ movhi - strb r0, [sp, #73] - smulbb r10, r10, r0 - strb r5, [sp, #69] - strh r5, [sp, #74] @ movhi - ldr r0, .L3099+8 - strh r10, [sp, #70] @ movhi - ldrh r1, [r2, r6] - mov r6, r5 + strb r0, [sp, #89] + str r2, [sp, #44] + smulbb r0, r3, r0 + ldr r2, [fp, #1080] + strh r5, [sp, #82] @ movhi + add r3, r2, r4 + strb r5, [sp, #85] + strh r5, [sp, #90] @ movhi + strh r0, [sp, #86] @ movhi + ldrh r1, [r2, r4] ldrb r3, [r3, #2] @ zero_extendqisi2 ubfx r1, r1, #0, #11 str r1, [sp] - ldr r2, [r2, fp, asl #2] - mov r1, fp + ldr r2, [r2, r6, asl #2] + mov r1, r6 + ldr r0, .L3251+12 ubfx r2, r2, #11, #8 str r2, [sp, #4] mov r2, r3, lsr #5 @@ -17998,69 +19035,91 @@ ftl_dump_write_open_sblk: bl printk mov r0, #1 bl buf_alloc - mov ip, r7 + add r3, r8, #3168 mov r4, r0 -.L3070: - ldrh r3, [ip] - uxth r7, r5 - cmp r3, r7 - bls .L3091 - mov r3, r7, asl #1 - mov r10, #0 - sub r3, r3, #1 - str r3, [sp, #44] -.L3080: - ldrb r3, [sp, #73] @ zero_extendqisi2 - uxth r8, r10 - cmp r3, r8 - bls .L3096 - add r3, r8, #8 - mov r6, #1 - mov r3, r3, asl r6 str r3, [sp, #48] -.L3079: - cmp r6, r9 - bhi .L3097 - ldr r2, [sp, #48] - add r3, sp, #96 +.L3213: + ldr r3, [sp, #44] + uxth r8, r5 + ldrh r3, [r3] + cmp r3, r8 + bls .L3236 + mov r3, r8, asl #1 + mov ip, #0 + add r2, r3, r8 + sub r3, r3, #1 + sub r2, r2, #1 + str r3, [sp, #60] + str r2, [sp, #52] +.L3224: + ldrb r3, [sp, #89] @ zero_extendqisi2 + uxth r9, ip + cmp r3, r9 + bls .L3248 + add r3, r9, #8 + mov r7, #1 + mov r3, r3, asl r7 + str r3, [sp, #64] +.L3223: + cmp r7, r10 + bhi .L3249 + ldr r2, [sp, #64] + add r3, sp, #112 add r3, r3, r2 ldrh r2, [r3, #-32] movw r3, #65535 cmp r2, r3 - beq .L3072 - ldr r3, .L3099+12 - cmp r9, #3 + beq .L3215 + ldr r3, .L3251+16 + cmp r10, #3 ldrh r3, [r3] mul r3, r3, r2 + bne .L3216 + ldr r1, .L3251 + ldrb r1, [r1, #1197] @ zero_extendqisi2 + cmp r1, #0 uxtaheq r3, r3, r5 - orreq r3, r3, r6, asl #24 - beq .L3074 - cmp r9, #2 + ldrne r1, [sp, #52] + orreq r3, r3, r7, asl #24 + beq .L3218 + b .L3247 +.L3216: + cmp r10, #2 uxtahne r3, r3, r5 - ldreq r1, [sp, #44] - addeq r3, r3, r1 - ldreq r1, .L3099 - addeq r3, r3, r6 - ldreqb r1, [r1, #2937] @ zero_extendqisi2 - orreq r3, r3, r1, asl #24 -.L3074: + bne .L3218 + ldr r1, [sp, #60] +.L3247: + add r3, r3, r1 + ldr r1, [sp, #48] + add r3, r3, r7 + ldrb r1, [r1, #-3196] @ zero_extendqisi2 + orr r3, r3, r1, asl #24 +.L3218: str r3, [r4, #24] - mov r1, #1 mov r0, r4 - str ip, [sp, #60] - str r2, [sp, #56] - str r3, [sp, #52] + mov r1, #1 + str ip, [sp, #76] + str r2, [sp, #72] + str r3, [sp, #68] bl sblk_read_page + ldr lr, [r4, #36] + sub r3, lr, #512 + cmp lr, #512 + cmnne lr, #1 + clz r3, r3 + mov r3, r3, lsr #5 + ldr r2, [sp, #72] + str r3, [sp, #56] + ldr ip, [sp, #76] + ldr r3, [sp, #68] + bne .L3215 ldr r0, [r4, #4] - ldr r3, [r4, #36] ldr r1, [r4, #12] - str r3, [sp] + str lr, [sp] ldr lr, [r0] - ldr r2, [sp, #56] - str r3, [sp, #40] + str ip, [sp, #68] str lr, [sp, #4] ldr lr, [r0, #4] - ldr r3, [sp, #52] str lr, [sp, #8] ldr lr, [r0, #8] str lr, [sp, #12] @@ -18073,99 +19132,106 @@ ftl_dump_write_open_sblk: ldr r0, [r1, #8] str r0, [sp, #28] ldr r1, [r1, #12] - ldr r0, .L3099+16 + ldr r0, .L3251+20 str r1, [sp, #32] mov r1, r2 - mov r2, r7 + mov r2, r8 bl printk - ldr r3, [sp, #40] - ldr ip, [sp, #60] - cmp r3, #512 - beq .L3091 -.L3072: - add r6, r6, #1 - uxth r6, r6 - b .L3079 -.L3097: - add r10, r10, #1 - b .L3080 -.L3096: + ldr r3, [sp, #56] + ldr ip, [sp, #68] + cmp r3, #0 + bne .L3236 +.L3215: + add r7, r7, #1 + uxth r7, r7 + b .L3223 +.L3249: + add ip, ip, #1 + b .L3224 +.L3248: add r5, r5, #1 - b .L3070 -.L3091: -.L3076: - str r6, [sp] - mov r3, r8 - ldr r6, .L3099 - mov r1, fp - mov r2, r7 - ldr r0, .L3099+20 + b .L3213 +.L3236: +.L3221: + str r7, [sp] + mov r3, r9 + ldr r7, .L3251 + mov r1, r6 + mov r2, r8 + ldr r0, .L3251+24 bl printk mov r1, #0 - ldrb r2, [r6, #2260] @ zero_extendqisi2 - mov r5, r7 + ldrb r2, [r7, #2772] @ zero_extendqisi2 + mov r5, r8 ldr r0, [r4, #4] - mov r9, r6 + ldr r10, .L3251+28 mov r2, r2, asl #9 + ldr r9, .L3251+32 bl ftl_memset - ldrb r2, [r6, #2260] @ zero_extendqisi2 + ldrb r2, [r7, #2772] @ zero_extendqisi2 ldr r0, [r4, #12] mov r1, #0 mov r2, r2, asl #1 bl ftl_memset -.L3081: - ldr r3, .L3099+4 - ldrh r3, [r3] +.L3225: + ldrh r3, [r10] cmp r3, r5 - bls .L3086 - ldr r7, .L3099+12 - mov r10, r5, asl #1 - mov r8, #0 -.L3087: - ldrb r2, [sp, #73] @ zero_extendqisi2 - uxth r3, r8 + bls .L3231 + ldr r8, .L3251+4 + mov r7, #0 + mov r3, r5, asl #1 + str r3, [sp, #44] +.L3232: + ldrb r2, [sp, #89] @ zero_extendqisi2 + uxth r3, r7 cmp r2, r3 - bls .L3098 + bls .L3250 + ldr r2, [r9] + tst r2, #4096 + beq .L3226 mov r2, r3 - ldr r0, .L3099+24 + ldr r0, .L3251+36 mov r1, r5 - str r3, [sp, #40] + str r3, [sp, #48] bl printk - ldrb ip, [r6, #2944] @ zero_extendqisi2 + ldr r3, [sp, #48] +.L3226: + ldrb ip, [r8, #-3188] @ zero_extendqisi2 cmp ip, #0 - ldr r3, [sp, #40] - add r3, r3, #8 - beq .L3082 - add r2, sp, #96 + beq .L3227 + add r2, sp, #112 mov r0, r4 add r3, r2, r3, asl #1 - ldrh r2, [r3, #-32] - ldrh r3, [r7] + ldrh r2, [r3, #-16] + ldr r3, .L3251+16 + ldrh r3, [r3] mul r3, r3, r2 orr r3, r3, r5 str r3, [r4, #24] bl sblk_3d_tlc_dump_prog - b .L3083 -.L3082: - ldrb r2, [r9, #2937] @ zero_extendqisi2 + b .L3228 +.L3227: + ldrb r2, [r8, #-3196] @ zero_extendqisi2 cmp r2, #2 - add r2, sp, #96 + add r2, sp, #112 add r3, r2, r3, asl #1 - ldrh r2, [r3, #-32] - ldrh r3, [r7] + ldrh r2, [r3, #-16] + ldr r3, .L3251+16 + ldrh r3, [r3] mul r3, r3, r2 - bne .L3084 - orr r3, r3, r10 + bne .L3229 + ldr r2, [sp, #44] mov r0, r4 + orr r3, r3, r2 orr r3, r3, #33554432 str r3, [r4, #24] bl sblk_mlc_dump_prog - b .L3083 -.L3084: - ldrb r2, [r9, #676] @ zero_extendqisi2 + b .L3228 +.L3229: + ldrb r2, [fp, #1189] @ zero_extendqisi2 orr r3, r3, r5 mvn r0, #0 - ldrb lr, [r9, #2260] @ zero_extendqisi2 + ldrb lr, [fp, #2772] @ zero_extendqisi2 rsb r1, r2, #24 str r3, [r4, #24] mvn r2, r0, asl r2 @@ -18177,361 +19243,108 @@ ftl_dump_write_open_sblk: ldr r2, [r4, #4] ldr r3, [r4, #12] bl flash_prog_page_en -.L3083: - add r8, r8, #1 - b .L3087 -.L3098: +.L3228: + add r7, r7, #1 + b .L3232 +.L3250: add r5, r5, #1 uxth r5, r5 - b .L3081 -.L3086: + b .L3225 +.L3231: mov r0, r4 bl zbuf_free - ldr r0, .L3099+28 - mov r1, fp + ldr r0, .L3251+40 + mov r1, r6 bl printk -.L3066: - add sp, sp, #100 +.L3209: + add sp, sp, #116 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3100: +.L3252: .align 2 -.L3099: +.L3251: .word .LANCHOR0 - .word .LANCHOR0+2960 + .word .LANCHOR3 + .word .LANCHOR3-3168 + .word .LC199 + .word .LANCHOR3-3142 .word .LC200 - .word .LANCHOR0+2994 .word .LC201 + .word .LANCHOR3-3172 + .word .LANCHOR2 .word .LC202 .word .LC203 - .word .LC204 .fnend .size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk .align 2 - .global ftl_ink_check_sblk - .type ftl_ink_check_sblk, %function -ftl_ink_check_sblk: - .fnstart - @ args = 0, pretend = 0, frame = 40 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r8, r0, asl #2 - ldr r6, .L3124 - mov r5, r0 - .pad #52 - sub sp, sp, #52 - mov r1, r5 - ldr r3, [r6, #568] - ldrh r2, [r3, r8] - ldr r3, [r3, r0, asl #2] - ubfx r2, r2, #0, #11 - ldr r0, .L3124+4 - ubfx r3, r3, #11, #8 - bl printk - movw r3, #65535 - cmp r5, r3 - beq .L3101 - add r3, r6, #564 - ldrh r3, [r3] - cmp r3, r5 - bls .L3101 - mov r1, #0 - mov r0, r5 - bl ftl_erase_sblk - mov r0, r5 - mov r9, #0 - add r1, sp, #32 - strh r5, [sp, #16] @ movhi - bl ftl_get_blk_list_in_sblk - strb r0, [sp, #25] - mov r0, #1 - bl buf_alloc - ldr r3, [r6, #568] - ldrb r2, [r6, #2260] @ zero_extendqisi2 - ldrh r3, [r3, r8] - mov r2, r2, asl #9 - ubfx r3, r3, #0, #11 - cmp r3, #1 - movle r1, #85 - movgt r1, #170 - mov r4, r0 - ldr r0, [r0, #4] - bl ftl_memset - bl sblk_wait_write_queue_completed -.L3105: - ldr r3, .L3124+8 - uxth fp, r9 - ldr r2, .L3124+8 - ldrh r3, [r3] - cmp r3, fp - bls .L3120 - add r7, r2, #34 - mov r10, #0 -.L3108: - ldrb r2, [sp, #25] @ zero_extendqisi2 - uxth r3, r10 - cmp r2, r3 - bls .L3121 - add r2, sp, #48 - add r3, r2, r3, asl #1 - movw r2, #65535 - ldrh r3, [r3, #-16] - cmp r3, r2 - beq .L3106 - ldrh r1, [r7] - mov ip, #0 - ldr r2, [r4, #4] - mvn r0, #0 - mla r3, r1, r3, fp - ldr r1, .L3124+12 - str r3, [r2] - ldr r2, [r4, #4] - str r1, [r2, #4] - ldr r2, [r4, #12] - str ip, [r2] - ldrb r2, [r6, #676] @ zero_extendqisi2 - ldrb lr, [r6, #2260] @ zero_extendqisi2 - rsb r1, r2, #24 - str ip, [sp, #4] - mvn r2, r0, asl r2 - and r0, r2, r3, lsr r1 - str lr, [sp] - bic r1, r3, r2, asl r1 - uxtb r0, r0 - ldr r2, [r4, #4] - ldr r3, [r4, #12] - bl flash_prog_page_en -.L3106: - add r10, r10, #1 - b .L3108 -.L3121: - add r9, r9, #1 - b .L3105 -.L3120: - mov r7, #0 -.L3109: - ldrh r1, [r2] - uxth r10, r7 - cmp r1, r10 - bls .L3122 - mov fp, #0 -.L3114: - ldrb r1, [sp, #25] @ zero_extendqisi2 - uxth r6, fp - cmp r1, r6 - bls .L3123 - add r6, r6, #8 - add r3, sp, #48 - add r6, r3, r6, asl #1 - movw r3, #65535 - ldrh r1, [r6, #-32] - cmp r1, r3 - beq .L3111 - ldr r3, .L3124+16 - mov r0, r4 - str r2, [sp, #12] - ldrh r9, [r3] - mla r9, r9, r1, r10 - mov r1, #1 - str r9, [r4, #24] - bl sblk_read_page - ldr r1, [r4, #4] - ldr r1, [r1] - cmp r1, r9 - ldr r2, [sp, #12] - beq .L3111 - mov r0, r9 - bl ftl_mask_bad_block - mvn r1, #0 - strh r1, [r6, #-32] @ movhi - ldr r2, [sp, #12] -.L3111: - add fp, fp, #1 - b .L3114 -.L3123: - add r7, r7, #1 - b .L3109 -.L3122: - mov r0, r4 - bl zbuf_free - ldr r3, .L3124 - ldr r0, .L3124+20 - mov r1, r5 - ldr r3, [r3, #568] - ldrh r2, [r3, r8] - ldr r3, [r3, r5, asl #2] - ubfx r2, r2, #0, #11 - ubfx r3, r3, #11, #8 - bl printk -.L3101: - add sp, sp, #52 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3125: - .align 2 -.L3124: - .word .LANCHOR0 - .word .LC205 - .word .LANCHOR0+2960 - .word 1437269760 - .word .LANCHOR0+2994 - .word .LC206 - .fnend - .size ftl_ink_check_sblk, .-ftl_ink_check_sblk - .align 2 - .global ftl_open_sblk_init - .type ftl_open_sblk_init, %function -ftl_open_sblk_init: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - .save {r3, r4, r5, r6, r7, r8, r9, lr} - mov r4, r0 - ldr r6, .L3137 - mov r7, r1 - mov r8, r6 -.L3127: -.L3131: - mov r0, r7 - bl ftl_alloc_sblk - ldr r3, [r6, #2288] - ldrh r3, [r3, #150] - cmp r3, #0 - mov r5, r0 - beq .L3128 - ldr r2, [r6, #568] - mov r3, r0, asl #2 - ldrh r3, [r2, r3] - ubfx r3, r3, #0, #11 - cmp r3, #2 - bgt .L3128 - bl ftl_ink_check_sblk -.L3128: - mov r1, #0 - mov r0, r5 - bl ftl_erase_sblk - add r1, r4, #16 - mov r0, r5 - mov r9, r5, asl #1 - bl ftl_get_blk_list_in_sblk - ldr r2, .L3137+4 - strh r5, [r4] @ movhi - cmp r7, #2 - strb r7, [r4, #4] - ldrh r2, [r2] - uxtb r3, r0 - strb r3, [r4, #9] - mov r0, #0 - strh r0, [r4, #2] @ movhi - smulbb r3, r3, r2 - strb r0, [r4, #5] - strh r0, [r4, #10] @ movhi - ldrneb r0, [r6, #2964] @ zero_extendqisi2 - ldr r1, [r8, #3512] - strh r3, [r4, #6] @ movhi - ldrb r3, [r8, #2964] @ zero_extendqisi2 - smulbbne r0, r0, r2 - mul r2, r3, r2 - uxthne r0, r0 - strh r0, [r4, #12] @ movhi - mov r2, r2, asl #2 - add r0, r1, r0, asl #2 - mov r1, #255 - bl ftl_memset - ldr r3, [r8, #576] - ldrh r2, [r4, #6] - strh r2, [r3, r9] @ movhi - ldrb r3, [r4, #9] @ zero_extendqisi2 - cmp r3, #0 - ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - ldr r0, .L3137+8 - mov r1, r5 - bl printk - ldr r3, [r6, #576] - mvn r2, #0 - strh r2, [r3, r9] @ movhi - mov r3, #7 - strb r3, [r4, #4] - b .L3131 -.L3138: - .align 2 -.L3137: - .word .LANCHOR0 - .word .LANCHOR0+2960 - .word .LC121 - .fnend - .size ftl_open_sblk_init, .-ftl_open_sblk_init - .align 2 .global flash_info_flush .type flash_info_flush, %function flash_info_flush: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3153 + ldr r3, .L3267 stmfd sp!, {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 r3, [r3] tst r3, #4096 - beq .L3140 - ldr r0, .L3153+4 - movw r1, #325 - ldr r2, .L3153+8 + beq .L3254 + ldr r0, .L3267+4 + mov r1, #364 + ldr r2, .L3267+8 bl printk -.L3140: - ldr r6, .L3153+12 +.L3254: + ldr r5, .L3267+12 mov r1, #0 - ldr r5, .L3153+16 + ldr r6, .L3267+16 mov r2, #64 - ldr r8, .L3153+20 + add r8, r5, #468 mov r9, #0 - ldr r0, [r6, #-2512] + ldr r0, [r5, #464] + mov r7, r5 bl ftl_memset - ldr r0, .L3153+24 - ldr r1, [r5, #664] + ldr r0, .L3267+20 + ldr r1, [r6, #1176] mov r2, #4 mov r3, #16 mov r10, r8 bl rknand_print_hex - ldr r4, [r5, #664] + ldr r4, [r6, #1176] add r0, r4, #16 ldr r1, [r4, #8] bl js_hash str r0, [r4, #12] -.L3141: - ldrb r3, [r6, #-2508] @ zero_extendqisi2 +.L3255: + ldrb r3, [r5, #468] @ zero_extendqisi2 ldrh r4, [r8, #2] - ldrh ip, [r5, #2] + ldrh ip, [r6, #2] mov r1, r3 - ldr r0, .L3153+28 + ldr r0, .L3267+24 mov r2, r4 str r3, [sp, #8] str ip, [sp, #12] bl printk - ldr r2, .L3153+32 + ldr r2, .L3267+28 ldrh r0, [r8, #2] - ldr r7, .L3153+12 + ldr fp, .L3267+16 ldrh r2, [r2] - ldr fp, .L3153+16 sub r2, r2, #1 cmp r0, r2 ldr r3, [sp, #8] ldr ip, [sp, #12] - blt .L3142 - ldr r4, [fp, #664] - ldrb r2, [r7, #-2507] @ zero_extendqisi2 + blt .L3256 + ldr r4, [fp, #1176] + ldrb r2, [r7, #469] @ zero_extendqisi2 ldr r3, [r4, #4] mov r0, r4 add r3, r3, #1 str r3, [r4, #4] - ldrb r3, [r7, #-2508] @ zero_extendqisi2 - strb r2, [r7, #-2508] + ldrb r3, [r7, #468] @ zero_extendqisi2 + strb r2, [r7, #468] ldrh r2, [r4, #16] - strb r3, [r7, #-2507] + strb r3, [r7, #469] mov r3, #0 add r2, r2, #1 strh r2, [r0, #16]! @ movhi @@ -18539,67 +19352,66 @@ flash_info_flush: strh r3, [r8, #2] @ movhi str r3, [sp, #8] bl js_hash - ldrb r2, [r7, #-2508] @ zero_extendqisi2 + ldrb r2, [r7, #468] @ zero_extendqisi2 str r0, [r4, #12] ldr r3, [sp, #8] ldrh r4, [fp, #2] mov r0, r3 mul r4, r4, r2 - b .L3151 -.L3142: + b .L3265 +.L3256: cmp r0, #0 mla r4, ip, r3, r4 - bne .L3143 -.L3151: + bne .L3257 +.L3265: mov r1, r4 bl flash_erase_block -.L3143: - ldr r2, [r5, #664] - mov r7, #1 - ldr r3, [r6, #-2512] +.L3257: + ldr r2, [r6, #1176] + mov fp, #1 + ldr r3, [r5, #464] mov r0, #0 mov r1, r4 ldr r2, [r2, #4] str r2, [r3] - ldr r2, .L3153+36 - ldr r3, [r6, #-2512] + ldr r2, .L3267+32 + ldr r3, [r5, #464] str r2, [r3, #4] mov r2, #4 - stmia sp, {r2, r7} - ldr r2, [r5, #664] + stmia sp, {r2, fp} + ldr r2, [r6, #1176] bl flash_prog_page_en ldrh r3, [r10, #2] - add r3, r3, r7 + add r3, r3, fp strh r3, [r10, #2] @ movhi cmn r0, #1 - bne .L3144 + bne .L3258 mov r1, r4 - ldr r0, .L3153+40 + ldr r0, .L3267+36 bl printk - b .L3141 -.L3144: + b .L3255 +.L3258: cmp r9, #0 - moveq r9, r7 - beq .L3141 -.L3152: + moveq r9, fp + beq .L3255 +.L3266: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3154: +.L3268: .align 2 -.L3153: +.L3267: .word .LANCHOR2 - .word .LC136 - .word .LANCHOR1+1896 - .word .LANCHOR5 + .word .LC141 + .word .LANCHOR1+2456 + .word .LANCHOR3 .word .LANCHOR0 - .word .LANCHOR5-2508 - .word .LC207 - .word .LC208 - .word .LANCHOR3-3360 + .word .LC204 + .word .LC205 + .word .LANCHOR3-292 .word 1398362953 - .word .LC209 + .word .LC206 .fnend .size flash_info_flush, .-flash_info_flush .align 2 @@ -18609,163 +19421,173 @@ flash_info_blk_init: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3187 + ldr r3, .L3302 stmfd sp!, {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 r3, [r3] - ldr r6, .L3187+4 + ldr r6, .L3302+4 tst r3, #4096 - beq .L3156 - ldr r3, [r6, #664] - mov r1, #50 - ldr r0, .L3187+8 - ldr r2, .L3187+12 + beq .L3270 + ldr r3, [r6, #1176] + mov r1, #49 + ldr r0, .L3302+8 + ldr r2, .L3302+12 str r3, [sp] mov r3, #2048 bl printk -.L3156: - ldr fp, .L3187+4 - mov r5, #4 - ldr r8, .L3187+16 -.L3159: +.L3270: + ldr ip, .L3302+4 + mov r7, #4 + ldr fp, .L3302+16 +.L3271: + mov r5, #0 +.L3274: ldrh r1, [r6, #2] - mov r9, #4 - ldr r4, .L3187+20 + mov r8, #4 + ldr r4, .L3302+20 mov r0, #0 - str r9, [sp] - mul r1, r1, r5 - ldr r2, [r6, #664] - ldr r3, [r4, #-2512] + str r8, [sp] + mla r1, r1, r7, r5 + ldr r2, [r6, #1176] + ldr r3, [r4, #464] + str ip, [sp, #12] bl flash_read_page_en - ldr r7, .L3187+4 + ldr r9, .L3302+4 cmn r0, #1 - beq .L3157 - ldr r2, [fp, #664] - ldr r10, .L3187+16 + ldr ip, [sp, #12] + beq .L3272 + ldr r2, [ip, #1176] + ldr r10, .L3302+16 ldr r3, [r2] - cmp r3, r8 - beq .L3158 -.L3157: + cmp r3, fp + beq .L3273 +.L3272: add r5, r5, #1 - cmp r5, #16 - bne .L3159 -.L3185: - mvn r0, #0 - b .L3183 -.L3158: + cmp r5, #4 + bne .L3274 + add r7, r7, #1 + cmp r7, #16 + bne .L3271 + b .L3283 +.L3273: ldrb r1, [r2, #37] @ zero_extendqisi2 mov r0, #0 ldrb r3, [r2, #36] @ zero_extendqisi2 - strb r1, [r4, #-2507] - ldrh r1, [r7, #2] - strb r3, [r4, #-2508] - str r9, [sp] + strb r1, [r4, #469] + ldrh r1, [r9, #2] + strb r3, [r4, #468] + str r8, [sp] mul r1, r1, r3 - ldr r3, [r4, #-2512] + ldr r3, [r4, #464] bl flash_read_page_en cmn r0, #1 - beq .L3168 - ldr r3, [r7, #664] + beq .L3284 + ldr r3, [r9, #1176] ldr r2, [r3] - cmp r2, r8 + cmp r2, fp ldreq r5, [r3, #4] - beq .L3161 -.L3168: - mov r5, #0 -.L3161: - ldrb r3, [r4, #-2507] @ zero_extendqisi2 + bne .L3284 +.L3276: + ldrb r3, [r4, #469] @ zero_extendqisi2 mov r2, #4 ldrh r1, [r6, #2] mov r0, #0 str r2, [sp] - ldr r2, [r6, #664] + ldr r2, [r6, #1176] mul r1, r1, r3 - ldr r3, [r4, #-2512] + ldr r3, [r4, #464] bl flash_read_page_en - ldr r7, .L3187+20 + ldr r7, .L3302+20 cmn r0, #1 - beq .L3162 - ldr r3, .L3187+4 - ldr r3, [r3, #664] + bne .L3301 +.L3277: + ldr r2, [r6, #1176] + mov r8, #4 + ldr r3, [r4, #464] + mov r0, #0 + ldrb r1, [r4, #468] @ zero_extendqisi2 + mov r7, #0 + str r8, [sp] + bl flash_get_last_written_page + ldr r3, .L3302+24 + ldrh r9, [r6, #2] + ldr ip, .L3302+4 + uxth fp, r0 + add r2, fp, #1 + strh r2, [r3, #2] @ movhi + ldrb r3, [r4, #468] @ zero_extendqisi2 + mla r9, r9, r3, r0 +.L3278: + rsb r5, r7, fp + sxth r5, r5 + cmp r5, #0 + bge .L3281 + cmn r5, #1 + bne .L3280 + ldr r3, [r6, #1176] + ldr r0, .L3302+28 + ldr r1, [r3] + bl printk +.L3283: + mvn r0, #0 + b .L3299 +.L3284: + mov r5, #0 + b .L3276 +.L3301: + ldr r3, .L3302+4 + ldr r3, [r3, #1176] ldr r2, [r3] cmp r2, r10 - bne .L3162 + bne .L3277 ldr r2, [r3, #4] cmp r5, r2 ldrccb r2, [r3, #37] @ zero_extendqisi2 ldrccb r3, [r3, #36] @ zero_extendqisi2 - strccb r2, [r7, #-2508] - strccb r3, [r7, #-2507] -.L3162: - ldr r2, [r6, #664] - mov r8, #4 - ldr r3, [r4, #-2512] - mov r0, #0 - ldrb r1, [r4, #-2508] @ zero_extendqisi2 - mov r7, #0 - str r8, [sp] - bl flash_get_last_written_page - ldr r3, .L3187+24 - ldrh r9, [r6, #2] - ldr ip, .L3187+4 - uxth fp, r0 - add r2, fp, #1 - strh r2, [r3, #2] @ movhi - ldrb r3, [r4, #-2508] @ zero_extendqisi2 - mla r9, r9, r3, r0 -.L3163: - rsb r5, r7, fp - sxth r5, r5 - cmp r5, #0 - blt .L3186 + strccb r2, [r7, #468] + strccb r3, [r7, #469] + b .L3277 +.L3281: str r8, [sp] mov r0, #0 rsb r1, r7, r9 - ldr r2, [r6, #664] - ldr r3, [r4, #-2512] + ldr r2, [r6, #1176] + ldr r3, [r4, #464] str ip, [sp, #12] bl flash_read_page_en cmn r0, #1 ldr ip, [sp, #12] - beq .L3164 - ldr r3, [ip, #664] + beq .L3279 + ldr r3, [ip, #1176] ldr r3, [r3] cmp r3, r10 - beq .L3165 -.L3164: + beq .L3280 +.L3279: add r7, r7, #1 - b .L3163 -.L3186: - cmn r5, #1 - bne .L3165 - ldr r3, [r6, #664] - ldr r0, .L3187+28 - ldr r1, [r3] - bl printk - b .L3185 -.L3165: + b .L3278 +.L3280: cmp r7, #1 - bls .L3169 + bls .L3285 bl flash_info_flush -.L3169: +.L3285: mov r0, #0 -.L3183: +.L3299: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3188: +.L3303: .align 2 -.L3187: +.L3302: .word .LANCHOR2 .word .LANCHOR0 - .word .LC210 - .word .LANCHOR1+1916 + .word .LC207 + .word .LANCHOR1+2476 .word 1398362953 - .word .LANCHOR5 - .word .LANCHOR5-2508 - .word .LC211 + .word .LANCHOR3 + .word .LANCHOR3+468 + .word .LC208 .fnend .size flash_info_blk_init, .-flash_info_blk_init .align 2 @@ -18778,390 +19600,417 @@ nand_flash_init: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r0 - ldr r6, .L3272 + ldr r6, .L3394 ldr r3, [r6] tst r3, #4096 - beq .L3190 - ldr r0, .L3272+4 - movw r1, #2759 - ldr r2, .L3272+8 + beq .L3305 + ldr r0, .L3394+4 + movw r1, #3429 + ldr r2, .L3394+8 bl printk -.L3190: - ldr r5, .L3272+12 +.L3305: + ldr r5, .L3394+12 mov r0, r4 mov r7, #0 - ldr r4, .L3272+16 - str r7, [r5, #-3256] + ldr r4, .L3394+16 + str r7, [r5, #-184] bl nandc_init - ldr r3, .L3272+20 + ldr r3, .L3394+20 mov r1, r7 mov r2, #8 - add r0, r4, #668 - add r10, r4, #688 + ldr r0, .L3394+24 + add r10, r4, #1200 mov r9, r4 - str r3, [r4, #584] + str r3, [r4, #1096] mov r3, #1 - strb r3, [r4, #589] + strb r3, [r4, #1101] mov r3, #3 - strb r3, [r4, #676] + strb r3, [r4, #1189] bl ftl_memset - ldr r0, .L3272+24 + sub r0, r5, #288 mov r1, r7 mov r2, #32 mov fp, r10 bl ftl_memset -.L3196: +.L3311: mov r8, r7, asl #3 uxtb r0, r7 add r1, r10, r8 bl flash_read_id cmp r7, #0 - ldr r1, .L3272+28 - bne .L3191 - ldrb r3, [r9, #688] @ zero_extendqisi2 + ldr r1, .L3394+28 + bne .L3306 + ldrb r3, [r9, #1200] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bls .L3192 -.L3194: - mvn r8, #1 - b .L3263 -.L3192: - ldrb r3, [r9, #689] @ zero_extendqisi2 + bls .L3307 +.L3309: + mvn r7, #1 + b .L3383 +.L3307: + ldrb r3, [r9, #1201] @ zero_extendqisi2 cmp r3, #255 - beq .L3194 -.L3191: + beq .L3309 +.L3306: ldrb r3, [fp, r8] @ zero_extendqisi2 add r7, r7, #1 cmp r3, #181 - ldreq r3, .L3272+28 + ldreq r3, .L3394+28 moveq r2, #44 streqb r2, [r8, r3] cmp r7, #4 - bne .L3196 - ldr ip, .L3272+32 + bne .L3311 + ldr ip, .L3394+32 mov r3, #0 -.L3230: +.L3347: mov r0, r3, asl #5 ldrb r8, [ip, r3, asl #5] @ zero_extendqisi2 add r7, r0, #1 - ldr lr, .L3272+32 + ldr lr, .L3394+32 add r7, ip, r7 mov r2, #0 -.L3197: +.L3312: cmp r2, r8 - bcs .L3271 + bcs .L3393 ldrb r10, [r7, r2] @ zero_extendqisi2 ldrb r9, [r1, r2] @ zero_extendqisi2 cmp r10, r9 - bne .L3198 + bne .L3313 add r2, r2, #1 - b .L3197 -.L3271: + b .L3312 +.L3393: adds r8, lr, r0 - beq .L3194 - ldr r3, .L3272 - ldr r2, .L3272+36 + beq .L3309 + ldr r3, .L3394 + ldr r2, .L3394+36 add r0, r3, r0 mov r3, #0 ldrb r1, [r0, #446] @ zero_extendqisi2 -.L3202: +.L3317: ldrb r0, [r2, r3, asl #5] @ zero_extendqisi2 cmp r0, r1 - beq .L3201 + beq .L3316 add r3, r3, #1 cmp r3, #4 - bne .L3202 -.L3201: - ldr r1, .L3272+36 + bne .L3317 +.L3316: + ldr r1, .L3394+36 mov r2, #32 - ldr r7, .L3272 + ldr r7, .L3394 add r1, r1, r3, asl #5 - ldr r0, .L3272+40 + ldr r0, .L3394+40 bl ftl_memcpy add r0, r7, #4 mov r1, r8 mov r2, #32 bl ftl_memcpy - ldrb r3, [r4, #516] @ zero_extendqisi2 + ldrb r3, [r4, #1028] @ zero_extendqisi2 cmp r3, #8 - bhi .L3203 + bhi .L3318 ldrb r3, [r7, #24] @ zero_extendqisi2 cmp r3, #60 movhi r3, #60 strhib r3, [r7, #24] - b .L3203 -.L3198: + b .L3318 +.L3313: add r3, r3, #1 - cmp r3, #45 - bne .L3230 - b .L3194 -.L3203: + cmp r3, #49 + bne .L3347 + b .L3309 +.L3318: ldr r3, [r6] tst r3, #4096 - beq .L3232 - ldr r0, .L3272+4 - movw r1, #2781 - ldr r2, .L3272+8 + beq .L3349 + ldr r0, .L3394+4 + mov r1, #3456 + ldr r2, .L3394+8 bl printk -.L3232: - ldr r3, [r4, #584] +.L3349: + ldr r3, [r4, #1096] mov r0, #16384 - ldr r7, .L3272+44 - mov r8, #0 + mov r7, #0 ldrh r3, [r3, #10] cmp r3, #1024 - ldrcs r3, .L3272+16 + ldrcs r3, .L3394+16 movcs r2, #2 - strcsb r2, [r3, #676] + strcsb r2, [r3, #1189] bl ftl_malloc - str r0, [r5, #-3248] + str r0, [r5, #-176] mov r0, #16384 bl ftl_malloc - str r0, [r5, #-3272] + str r0, [r5, #-200] mov r0, #2048 bl ftl_malloc - str r0, [r4, #664] + str r0, [r4, #1176] mov r0, #64 bl ftl_malloc - str r0, [r5, #-3244] + str r0, [r5, #-172] mov r0, #64 bl ftl_malloc - str r0, [r5, #-3264] + str r0, [r5, #-192] mov r0, #64 bl ftl_malloc - strb r8, [r7, #-2504] - str r0, [r7, #-2512] + strb r7, [r5, #472] + str r0, [r5, #464] bl flash_die_info_init ldrb r0, [r6, #22] @ zero_extendqisi2 bl flash_lsb_page_tbl_build ldrb r0, [r6, #24] @ zero_extendqisi2 bl nandc_bch_sel - ldr r1, [r4, #584] - str r8, [r5, #-3252] + ldr r1, [r4, #1096] + str r7, [r5, #-180] ldrh r3, [r1, #16] ubfx r2, r3, #8, #3 - strb r2, [r4, #720] + strb r2, [r4, #1232] ubfx r2, r3, #3, #1 - strb r2, [r5, #-3232] + strb r2, [r5, #-160] ubfx r2, r3, #4, #1 - strb r2, [r4, #721] + strb r2, [r4, #1233] ubfx r2, r3, #12, #1 - strb r2, [r4, #2944] + strb r2, [r5, #-3188] ubfx r2, r3, #13, #1 - strb r2, [r4, #2938] + strb r2, [r5, #-3194] ubfx r2, r3, #11, #1 - strb r2, [r4, #684] + strb r2, [r4, #1196] ldrb r2, [r1, #31] @ zero_extendqisi2 + ldrb r1, [r1, #28] @ zero_extendqisi2 ubfx r0, r2, #1, #1 - ubfx r2, r2, #2, #1 - strb r2, [r7, #-2502] - ubfx r2, r3, #14, #1 + strb r0, [r5, #-2612] + ubfx r0, r2, #2, #1 + strb r0, [r5, #473] + ubfx r0, r3, #14, #1 mov r3, r3, lsr #15 - strb r3, [r4, #2939] + strb r3, [r5, #-3193] + ubfx r3, r2, #3, #1 + strb r3, [r4, #1188] mov r3, #60 - strb r3, [r4, #588] - ldrb r3, [r4, #516] @ zero_extendqisi2 - strb r2, [r4, #1] + strb r3, [r4, #1100] + ubfx r2, r2, #4, #1 + ldrb r3, [r4, #1028] @ zero_extendqisi2 + strb r2, [r4, #1197] cmp r3, #9 - ldrb r2, [r1, #28] @ zero_extendqisi2 - strb r0, [r7, #-2503] - ldreq r1, .L3272+16 + strb r1, [r4] + strb r1, [r4, #1102] + ldreq r2, .L3394+16 + ldrb r1, [r6, #35] @ zero_extendqisi2 + strb r0, [r4, #1] moveq r0, #70 - strb r2, [r4, #590] - strb r2, [r4] - ldrb r2, [r6, #11] @ zero_extendqisi2 - streqb r0, [r1, #588] - cmp r2, #9 - ldreq r2, .L3272+16 - moveq r1, #0 - streqb r1, [r2, #590] - ldrb r2, [r6, #35] @ zero_extendqisi2 - tst r2, #1 - beq .L3207 - ldr r2, .L3272 - ldrb r2, [r2, #33] @ zero_extendqisi2 - cmp r2, #0 - movne r2, #2 - moveq r2, #3 - strb r2, [r4, #590] -.L3207: + streqb r0, [r2, #1100] + tst r1, #1 + ldr r2, .L3394+16 + beq .L3321 + ldr r1, .L3394 + ldrb r1, [r1, #33] @ zero_extendqisi2 + cmp r1, #0 + movne r1, #2 + moveq r1, #3 + strb r1, [r2, #1102] +.L3321: cmp r3, #8 - bne .L3209 - ldrb r3, [r4, #688] @ zero_extendqisi2 + bne .L3323 + ldrb r3, [r4, #1200] @ zero_extendqisi2 cmp r3, #44 cmpne r3, #137 - bne .L3209 + bne .L3323 ldrb r3, [r6, #32] @ zero_extendqisi2 cmp r3, #3 - ldreq r3, .L3272+16 + ldreq r3, .L3394+16 moveq r2, #0 - streqb r2, [r3, #590] -.L3209: + streqb r2, [r3, #1102] +.L3323: ldrh r2, [r6, #20] ldrb r3, [r6, #23] @ zero_extendqisi2 tst r2, #64 - strb r3, [r4, #661] - beq .L3211 + ldr r0, .L3394+16 + strb r3, [r4, #1173] + beq .L3325 sub r2, r3, #17 sub r1, r3, #21 clz r1, r1 cmp r3, #21 cmpne r2, #2 mov r1, r1, lsr #5 - bhi .L3212 - ldr r2, .L3272+48 + bhi .L3326 + ldr r2, .L3394+44 cmp r1, #0 - ldr r3, .L3272+12 - str r2, [r5, #-3252] + ldr r3, .L3394+12 + str r2, [r5, #-180] moveq r2, #15 movne r2, #4 - strb r2, [r3, #-3260] - b .L3211 -.L3212: + strb r2, [r3, #-188] + b .L3325 +.L3326: sub r2, r3, #65 cmp r3, #33 cmpne r2, #1 - bhi .L3215 - ldr r3, .L3272+52 - mov r2, #4 - str r3, [r5, #-3252] - ldr r3, .L3272+16 - strb r2, [r3, #662] - b .L3270 -.L3215: - sub r2, r3, #67 + ldrls r3, .L3394+48 + strls r3, [r5, #-180] + movls r3, #4 + strlsb r3, [r0, #1174] + bls .L3392 +.L3329: + sub r1, r3, #67 + sub r2, r3, #34 + cmp r1, #1 sub ip, r3, #35 - cmp r2, #1 sub lr, r3, #68 - sub r1, r3, #34 clz ip, ip - clz lr, lr - movhi r0, #0 - movls r0, #1 + movhi r1, #0 + movls r1, #1 cmp r2, #1 - cmphi r1, #1 + movhi r2, r1 + orrls r2, r1, #1 + clz lr, lr + cmp r2, #0 mov ip, ip, lsr #5 mov lr, lr, lsr #5 - bhi .L3216 - ldr r2, .L3272+52 - ldr r3, .L3272+12 - str r2, [r5, #-3252] + beq .L3330 + ldr r2, .L3394+48 + ldr r3, .L3394+12 + str r2, [r5, #-180] orrs r2, lr, ip moveq r2, #7 movne r2, #17 - cmp r0, #0 - strb r2, [r3, #-3260] + cmp r1, #0 + strb r2, [r3, #-188] movne r3, #4 moveq r3, #5 - strb r3, [r4, #662] - b .L3211 -.L3216: - sub r3, r3, #36 - cmp r3, #1 - bhi .L3211 - ldr r3, .L3272+56 - str r3, [r5, #-3252] -.L3270: + strb r3, [r4, #1174] + b .L3325 +.L3330: + sub r1, r3, #36 + cmp r1, #1 + bhi .L3334 + ldr r3, .L3394+52 + str r3, [r5, #-180] +.L3392: mov r3, #7 - strb r3, [r5, #-3260] -.L3211: + b .L3390 +.L3334: + cmp r3, #50 + bne .L3335 + ldr r3, .L3394+56 + str r3, [r5, #-180] + mov r3, #25 +.L3390: + strb r3, [r5, #-188] + b .L3325 +.L3335: + cmp r3, #81 + streqb r2, [r0, #1136] + ldreq r3, .L3394+60 + streq r3, [r5, #-180] + moveq r3, #7 + streqb r3, [r5, #-188] +.L3325: ldr r3, [r6] tst r3, #4096 - beq .L3220 - ldr r0, .L3272+4 - movw r1, #2857 - ldr r2, .L3272+8 + beq .L3336 + ldr r0, .L3394+4 + movw r1, #3549 + ldr r2, .L3394+8 bl printk -.L3220: +.L3336: mov r3, #0 - strb r3, [r4, #623] - ldrb r3, [r4, #720] @ zero_extendqisi2 - mov r0, #4 + strb r3, [r4, #1135] + ldrb r3, [r4, #1232] @ zero_extendqisi2 tst r3, #1 - beq .L3221 + moveq r0, #4 + beq .L3391 + ldr r3, .L3394+16 + ldrb r3, [r3, #1200] @ zero_extendqisi2 + cmp r3, #155 + beq .L3338 + mov r0, #4 + bl flash_set_interface_mode + mov r0, #4 bl nandc_set_if_mode +.L3338: mov r0, #1 bl flash_set_interface_mode mov r0, #1 -.L3221: +.L3391: bl nandc_set_if_mode bl flash_info_blk_init cmn r0, #1 - mov r8, r0 - bne .L3223 - ldr r3, [r6] - tst r3, #4096 - beq .L3224 - ldr r0, .L3272+4 - movw r1, #2875 - ldr r2, .L3272+8 - bl printk -.L3224: - ldr r3, [r4, #664] + mov r7, r0 + bne .L3340 + ldr r3, [r4, #1176] mov r2, #17 mov r0, #0 - strb r0, [r4, #680] + strb r0, [r4, #1192] strb r2, [r3, #32] bl zftl_flash_exit_slc_mode - b .L3263 -.L3223: - ldrb r3, [r4, #661] @ zero_extendqisi2 + b .L3383 +.L3340: + ldrb r3, [r6, #11] @ zero_extendqisi2 + cmp r3, #9 + bne .L3341 + ldr r3, [r4, #1176] + ldrb r3, [r3, #20] @ zero_extendqisi2 + cmp r3, #1 + ldrne r3, .L3394+16 + movne r2, #0 + strneb r2, [r3, #1102] +.L3341: + ldrb r3, [r4, #1173] @ zero_extendqisi2 + ldr r7, .L3394+16 sub r3, r3, #1 cmp r3, #7 - ldrls r3, .L3272+60 - strls r3, [r5, #-3252] - ldrb r3, [r4, #720] @ zero_extendqisi2 - ldr r5, .L3272+16 + ldrls r3, .L3394+64 + strls r3, [r5, #-180] + ldrb r3, [r4, #1232] @ zero_extendqisi2 tst r3, #4 - beq .L3227 - ldr r3, [r5, #664] + beq .L3344 + ldr r3, [r7, #1176] ldrb r3, [r3, #19] @ zero_extendqisi2 cmp r3, #0 - beq .L3227 - ldrb r3, [r7, #-2508] @ zero_extendqisi2 + beq .L3344 + ldrb r3, [r5, #468] @ zero_extendqisi2 mov r0, #0 - ldrh r1, [r5, #2] + ldrh r1, [r7, #2] mul r1, r1, r3 bl flash_ddr_para_scan - ldrb r3, [r5, #623] @ zero_extendqisi2 + ldrb r3, [r7, #1135] @ zero_extendqisi2 cmp r3, #0 - bne .L3227 - ldr r2, [r5, #664] + bne .L3344 + ldr r2, [r7, #1176] strb r3, [r2, #19] bl flash_info_flush -.L3227: +.L3344: ldr r3, [r6] tst r3, #4096 - beq .L3229 - ldr r0, .L3272+4 - movw r1, #2929 - ldr r2, .L3272+8 + beq .L3346 + ldr r0, .L3394+4 + movw r1, #3647 + ldr r2, .L3394+8 bl printk -.L3229: +.L3346: bl nand_flash_print_info - mov r8, #0 -.L3263: - mov r0, r8 + mov r7, #0 +.L3383: + mov r0, r7 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3273: +.L3395: .align 2 -.L3272: +.L3394: .word .LANCHOR2 - .word .LC136 - .word .LANCHOR1+1936 + .word .LC141 + .word .LANCHOR1+2496 .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2+4 - .word .LANCHOR3-3356 - .word .LANCHOR0+688 + .word .LANCHOR0+1180 + .word .LANCHOR0+1200 .word .LANCHOR2+424 - .word .LANCHOR2+1864 - .word .LANCHOR0+591 - .word .LANCHOR5 + .word .LANCHOR2+1992 + .word .LANCHOR0+1103 .word micron_read_retrial .word toshiba_read_retrial .word toshiba_3d_read_retrial + .word samsung_read_retrial + .word ymtc_3d_read_retrial .word hynix_read_retrial .fnend .size nand_flash_init, .-nand_flash_init @@ -19174,30 +20023,30 @@ ftl_sysblk_dump: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r10, r0 + mov fp, r0 .pad #52 sub sp, sp, #52 mov r0, #1 bl buf_alloc - ldr ip, .L3286 + ldr r10, .L3408 mov r6, #0 mov r5, r6 - ldr fp, [r0, #4] + ldr ip, [r0, #4] mov r4, r0 -.L3275: - ldr r3, .L3286+4 +.L3397: + ldrh r3, [r10] uxth r8, r6 - ldrh r3, [r3] cmp r3, r8 - bls .L3285 - ldrh r7, [ip] + bls .L3407 + ldr r3, .L3408+4 add r6, r6, #1 - ldr r3, .L3286+8 ldr r1, [r4, #4] - mla r7, r7, r10, r8 ldr r2, [r4, #12] - ldrb r3, [r3, #2260] @ zero_extendqisi2 + ldrh r7, [r3] + ldr r3, .L3408+8 str ip, [sp, #44] + mla r7, r7, fp, r8 + ldrb r3, [r3, #2772] @ zero_extendqisi2 mov r0, r7 bl ftl_read_ppa_page ldr r2, [r4, #4] @@ -19205,13 +20054,13 @@ ftl_sysblk_dump: str r0, [sp] mov r9, r0 ldr r1, [r2] - ldr r0, .L3286+12 + ldr r0, .L3408+12 str r1, [sp, #4] ldr r1, [r2, #4] str r1, [sp, #8] ldr r1, [r2, #8] str r1, [sp, #12] - mov r1, r10 + mov r1, fp ldr r2, [r2, #12] str r2, [sp, #16] ldr r2, [r3] @@ -19229,69 +20078,729 @@ ftl_sysblk_dump: cmpne r9, #512 moveq r5, #1 ldr ip, [sp, #44] - b .L3275 -.L3285: - ldr r0, .L3286+16 - add r1, fp, #704 + b .L3397 +.L3407: + ldr r0, .L3408+16 + add r1, ip, #704 mov r2, #4 mov r3, #32 bl rknand_print_hex mov r0, r4 bl zbuf_free cmp r5, #0 - beq .L3278 - ldr r1, .L3286+20 - movw r2, #1432 - ldr r0, .L3286+24 + beq .L3400 + ldr r1, .L3408+20 + movw r2, #1611 + ldr r0, .L3408+24 bl printk bl dump_stack -.L3278: +.L3400: mov r0, r5 add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3287: +.L3409: .align 2 -.L3286: - .word .LANCHOR0+2994 - .word .LANCHOR0+2960 +.L3408: + .word .LANCHOR3-3172 + .word .LANCHOR3-3142 .word .LANCHOR0 - .word .LC201 - .word .LC212 - .word .LANCHOR1+1952 + .word .LC200 + .word .LC209 + .word .LANCHOR1+2512 .word .LC0 .fnend .size ftl_sysblk_dump, .-ftl_sysblk_dump .align 2 + .global ftl_open_sblk_recovery + .type ftl_open_sblk_recovery, %function +ftl_open_sblk_recovery: + .fnstart + @ args = 0, pretend = 0, frame = 216 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .pad #228 + sub sp, sp, #228 + ldr r5, .L3549 + mov r4, r0 + str r1, [sp, #28] + ldr r3, [r5] + tst r3, #4096 + beq .L3411 + ldr r0, .L3549+4 + ldrh r1, [r4, #2] + bl printk +.L3411: + ldr r3, [r5] + tst r3, #4096 + beq .L3412 + ldr r0, .L3549+8 + ldrb r1, [r4, #5] @ zero_extendqisi2 + bl printk +.L3412: + ldr r3, [r5] + tst r3, #4096 + beq .L3413 + ldr r0, .L3549+12 + ldrh r1, [r4] + bl printk +.L3413: + ldr r3, [r5] + tst r3, #4096 + beq .L3414 + ldr r0, .L3549+16 + ldrh r1, [r4, #16] + ldrh r2, [r4, #18] + bl printk +.L3414: + ldr r3, [r5] + tst r3, #4096 + beq .L3415 + ldr r0, .L3549+20 + ldrb r1, [r4, #9] @ zero_extendqisi2 + bl printk +.L3415: + ldrh r3, [r4, #10] + ldr r6, .L3549+24 + ldrh r2, [r4] + strh r3, [r4, #14] @ movhi + movw r3, #1076 + ldrh r3, [r6, r3] + cmp r2, r3 + bcs .L3410 + mov r0, #1 + bl buf_alloc + ldrb r3, [r6, #2772] @ zero_extendqisi2 + mov r1, #255 + sub r3, r3, #2 + ldr r2, [r0, #4] + mov r5, r0 + add r0, sp, #32 + add r3, r2, r3, asl #9 + mov r2, #64 + str r3, [sp, #16] + bl ftl_memset + mov r1, #255 + mov r2, #64 + add r0, sp, #96 + bl ftl_memset + mov r1, #255 + mov r2, #64 + add r0, sp, #160 + bl ftl_memset + ldrb r6, [r4, #5] @ zero_extendqisi2 + ldrh r7, [r4, #2] + mov r3, #2 + str r3, [sp, #12] + mov r3, #0 + str r3, [sp, #24] +.L3417: + ldr r3, .L3549+28 + ldrh r3, [r3] + cmp r3, r7 + bls .L3420 + ldrb r6, [r4, #5] @ zero_extendqisi2 + ldr r8, .L3549+24 +.L3418: + ldrb r3, [r4, #9] @ zero_extendqisi2 + cmp r3, r6 + bls .L3545 + add r3, r4, r6, asl #1 + ldrh r10, [r3, #16] + movw r3, #65535 + cmp r10, r3 + beq .L3419 + ldr r3, .L3549+32 + ldr r1, [r5, #4] + ldr r2, [r5, #12] + ldrh r3, [r3] + mla r3, r3, r10, r7 + str r3, [sp, #20] + mov r0, r3 + ldrb r3, [r8, #2772] @ zero_extendqisi2 + bl ftl_read_ppa_page + cmp r0, #512 + mov r9, r0 + beq .L3420 + cmn r0, #1 + beq .L3421 + ldr r3, [r5, #12] + ldr r2, [r3] + cmn r2, #1 + bne .L3421 + ldr r3, [r3, #4] + cmn r3, #1 + bne .L3421 + ldr r3, [r5, #4] + ldr r3, [r3] + cmn r3, #1 + beq .L3420 +.L3421: + ldr r3, .L3549+36 + mov r2, #1 + strb r2, [r3, #145] + ldrb r3, [r4, #9] @ zero_extendqisi2 + ldrh r2, [r4, #10] + mla r3, r3, r7, r6 + cmp r2, r3 + beq .L3422 + ldr r1, .L3549+40 + movw r2, #1686 + ldr r0, .L3549+44 + bl printk + bl dump_stack +.L3422: + ldrh r3, [r4, #6] + ldrh r2, [r4, #10] + add r2, r3, r2 + ldr r3, .L3549+28 + ldrh r1, [r3] + ldrb r3, [r4, #9] @ zero_extendqisi2 + mul r3, r3, r1 + cmp r2, r3 + beq .L3423 + ldr r1, .L3549+40 + movw r2, #1687 + ldr r0, .L3549+44 + bl printk + bl dump_stack +.L3423: + ldr r3, .L3549+24 + ldrb r3, [r3, #2772] @ zero_extendqisi2 + cmp r3, #8 + bls .L3424 + ldr r3, [r5, #12] + ldr r1, .L3549+48 + ldr r2, [r3] + cmp r2, r1 + beq .L3424 + cmn r9, #1 + beq .L3429 + ldr r2, [r3, #4] + cmn r2, #1 + beq .L3462 + ldr r2, [r3, #16] + ldr r1, .L3549+52 + cmp r2, r1 + bne .L3462 + ldr r0, [sp, #16] + mov r1, #1024 + ldr fp, [r3, #20] + bl js_hash + cmp fp, r0 + beq .L3462 + mov r1, #1024 + ldr r0, [sp, #16] + bl js_hash + mov r1, r10 + mov r2, r7 + str r9, [sp] + str r0, [sp, #4] + ldr r3, [sp, #20] + ldr r0, .L3549+56 + bl printk + ldr r0, .L3549+60 + mov r2, #4 + mov r3, #16 + ldr r1, [sp, #16] + bl rknand_print_hex + ldrb r3, [r8, #2772] @ zero_extendqisi2 + ldr r0, .L3549+64 + mov r2, #4 + ldr r1, [r5, #12] + mov r3, r3, lsr #1 + bl rknand_print_hex + b .L3429 +.L3424: + cmn r9, #1 + beq .L3429 +.L3462: + ldr r3, [r5, #12] + ldr r0, [r3, #4] + cmn r0, #1 + beq .L3429 + ldr r3, [r3] + ldr r2, .L3549+48 + cmp r3, r2 + beq .L3429 + bl lpa_hash_get_ppa + ldr r2, [sp, #28] + mov r3, r0 + cmp r2, #0 + beq .L3428 + ldr r2, [r5, #12] + ldr r1, [r2, #8] + str r2, [sp, #24] + cmp r0, r1 + cmnne r0, #1 + beq .L3428 + ldr r2, .L3549+24 + mov r9, #1 + ldr fp, .L3549+68 + ldr r10, .L3549+36 + ldrb r1, [r2, #1189] @ zero_extendqisi2 + ldrh r0, [fp] + rsb r1, r1, #24 + str r3, [sp, #12] + rsb r1, r0, r1 + mov r1, r9, asl r1 + sub r1, r1, #1 + and r0, r1, r3, lsr r0 + ldrb r1, [r10, #-3202] @ zero_extendqisi2 + bl __aeabi_uidiv + ldr r3, [sp, #28] + uxth r0, r0 + ldr r2, [sp, #24] + ldrh r1, [r3] + ldr r3, [sp, #12] + cmp r1, r0 + bne .L3428 + ldr ip, [r2] + mov r0, r3 + ldr r1, [r5, #4] + sub r2, r10, #120 + ldrb r3, [r8, #2772] @ zero_extendqisi2 + str ip, [sp, #12] + bl ftl_read_ppa_page + ldr r3, [r10, #-120] + ldr ip, [sp, #12] + cmp r3, ip + bcc .L3428 + ldr r3, [r5, #12] + ldr r0, [r3, #8] + cmn r0, #1 + beq .L3429 + ldrb r3, [r8, #1189] @ zero_extendqisi2 + ldrh r2, [fp] + rsb r3, r3, #24 + ldrb r1, [r10, #-3202] @ zero_extendqisi2 + rsb r3, r2, r3 + mov r9, r9, asl r3 + sub r9, r9, #1 + and r0, r9, r0, lsr r2 + bl __aeabi_uidiv + uxth r0, r0 + bl ftl_vpn_decrement + b .L3429 +.L3428: + ldr r2, [r5, #12] + ldr r3, [r8, #2784] + ldr r1, [r2, #4] + cmp r1, r3 + bcs .L3429 + ldr r3, .L3549+28 + ldrb r0, [r4, #9] @ zero_extendqisi2 + ldrh r1, [r4, #10] + ldrh r3, [r3] + mul r3, r3, r0 + sub r3, r3, #1 + cmp r1, r3 + bge .L3429 + ldr r3, [r8, #2804] + ldr r2, [r2] + ldr r1, [r3, #8] + cmp r2, r1 + strhi r2, [r3, #8] + ldrh r3, [r4, #12] + ldrh r2, [r4, #10] + ldr r1, [r5, #12] + add r2, r3, r2 + ldmib r1, {r0, r1} + uxth r2, r2 + bl lpa_hash_update_ppa + ldr r3, [sp, #36] + str r3, [sp, #32] + ldr r3, [sp, #40] + str r3, [sp, #36] + ldr r3, [sp, #44] + str r3, [sp, #40] + ldr r3, [sp, #20] + str r3, [sp, #44] +.L3429: + ldrh r3, [r4, #6] + sub r3, r3, #1 + strh r3, [r4, #6] @ movhi + ldrh r3, [r4, #10] + add r3, r3, #1 + strh r3, [r4, #10] @ movhi + mov r3, #4 + str r3, [sp, #12] + mov r3, #1 + str r3, [sp, #24] +.L3419: + add r6, r6, #1 + uxth r6, r6 + b .L3418 +.L3545: + add r7, r7, #1 + mov r3, #0 + strb r3, [r4, #5] + uxth r7, r7 + b .L3417 +.L3420: + ldrh r3, [r4, #6] + strb r6, [r4, #5] + ldrh r6, [r4, #10] + ldrb fp, [r4, #9] @ zero_extendqisi2 + add r6, r3, r6 + ldr r3, .L3549+72 + strh r7, [r4, #2] @ movhi + ldrh ip, [r3, #-4] + str r3, [sp, #16] + mul fp, ip, fp + cmp r6, fp + beq .L3433 + ldr r1, .L3549+40 + movw r2, #1794 + ldr r0, .L3549+44 + bl printk + bl dump_stack +.L3433: + ldr r9, .L3549+36 + mov r8, #0 + ldrh r6, [r4, #10] + mov r7, r8 + ldr r10, [r9, #-2624] +.L3434: + cmp r7, r6 + bcs .L3546 + ldrh r3, [r4, #12] + add r3, r7, r3 + add r7, r7, #1 + ldr r3, [r10, r3, asl #2] + cmn r3, #1 + addne r8, r8, #1 + uxthne r8, r8 + b .L3434 +.L3546: + ldr r2, [sp, #16] + ldrb r3, [r4, #9] @ zero_extendqisi2 + ldrh r10, [r2, #-4] + smulbb r3, r3, r10 + ldr r10, .L3549+24 + rsb r6, r6, r3 + add r6, r8, r6 + ldr r8, .L3549 + uxth r6, r6 + ldr r3, [r8] + tst r3, #4096 + beq .L3437 + ldrh r1, [r4] + mov r2, r6 + ldr ip, [r10, #1088] + ldr r0, .L3549+76 + mov r3, r1, asl #1 + ldrh r3, [ip, r3] + bl printk +.L3437: + ldrh r3, [r4] + ldr r2, [r10, #1088] + mov r3, r3, asl #1 + strh r6, [r2, r3] @ movhi + ldr r3, [r8] + tst r3, #16384 + beq .L3438 + ldr r3, [sp, #44] + add r1, sp, #32 + ldr r0, .L3549+80 + str r3, [sp] + ldmia r1, {r1, r2, r3} + bl printk +.L3438: + ldrb r2, [r10, #2772] @ zero_extendqisi2 + mov r1, #0 + ldr r0, [r5, #4] + mov r7, #0 + mov r2, r2, asl #9 + bl ftl_memset +.L3439: + ldrb r3, [r9, #-3195] @ zero_extendqisi2 + ldr r2, [sp, #12] + mul r3, r3, r2 + cmp r7, r3 + bcs .L3547 + add ip, sp, #32 + ldr r0, [ip, r7, asl #2] + cmn r0, #1 + bne .L3440 +.L3444: + ldr r2, [r10, #2804] + mvn r6, #0 + ldr r3, [r5, #12] + mov r0, #2 + ldr r2, [r2, #8] + str r2, [r3] + mov r2, #0 + ldr r3, [r5, #12] + str r6, [r3, #4] + ldr r3, [r5, #12] + str r6, [r3, #8] + ldr r3, [r5, #12] + str r2, [r3, #12] + ldr r3, [r5, #12] + str r2, [r3, #16] + ldr r3, [r5, #4] + str r2, [r3] + ldr r1, [r5, #12] + add r1, r1, #16 + bl ftl_debug_info_fill + b .L3441 +.L3440: + ldr r3, .L3549+24 + ldr r1, [r5, #4] + ldr r2, [r5, #12] + ldrb r3, [r3, #2772] @ zero_extendqisi2 + str ip, [sp, #20] + bl ftl_read_ppa_page + ldr r3, [r5, #12] + mov r6, r0 + ldr r0, [r3, #4] + bl lpa_hash_get_ppa + ldr r3, [r8] + tst r3, #16384 + mov fp, r0 + ldr ip, [sp, #20] + beq .L3442 + ldr r3, [r5, #12] + mov r1, fp + ldr r0, .L3549+84 + ldr r2, [ip, r7, asl #2] + ldr r3, [r3, #4] + bl printk +.L3442: + add r3, sp, #32 + mov r2, #1 + mov r0, #2 + ldr r3, [r3, r7, asl #2] + cmp fp, r3 + ldr r3, [r5, #12] + mvnne r6, #0 + str fp, [r3, #8] + ldr r3, [r5, #12] + str r2, [r3, #12] + mov r2, #0 + ldr r3, [r5, #12] + str r2, [r3, #16] + ldr r1, [r5, #12] + add r1, r1, #16 + bl ftl_debug_info_fill + cmn r6, #1 + beq .L3444 +.L3441: + ldr r3, [sp, #24] + cmp r3, #1 + bne .L3446 + ldrh r3, [r4, #6] + cmp r3, #1 + bls .L3446 +.L3516: + mov r0, r4 + bl ftl_get_new_free_page + ldr r3, [r8] + tst r3, #16384 + mov fp, r0 + beq .L3448 + ldrh r1, [r4, #12] + ldr r2, [r5, #12] + ldrh r3, [r4, #10] + ldr r0, .L3549+88 + add r3, r3, r1 + ldr r2, [r2, #4] + mov r1, fp + sub r3, r3, #1 + bl printk +.L3448: + ldrb r3, [r9, #-3195] @ zero_extendqisi2 + ldr r1, [sp, #12] + ldrh r2, [r4, #6] + mul r3, r3, r1 + add r3, r3, #1 + rsb r3, r7, r3 + cmp r2, r3 + bls .L3446 + ldr r3, .L3549+24 + mov r0, fp + ldr r2, [r5, #12] + ldr r1, [r5, #4] + ldrb r3, [r3, #2772] @ zero_extendqisi2 + bl ftl_prog_ppa_page + str r0, [sp, #20] + ldrh r0, [r4] + bl ftl_vpn_decrement + adds r3, r6, #1 + movne r3, #1 + ldr r2, [sp, #20] + cmn r2, #1 + cmnne r6, #1 + beq .L3449 + add r3, sp, #96 + ldrh r2, [r4, #12] + str fp, [r3, r7, asl #2] + ldrh r3, [r4, #10] + add r3, r3, r2 + add r2, sp, #160 + sub r3, r3, #1 + str r3, [r2, r7, asl #2] + b .L3446 +.L3449: + ldrh r2, [r4, #6] + cmp r2, #1 + movls r3, #0 + andhi r3, r3, #1 + cmp r3, #0 + bne .L3516 +.L3446: + add r7, r7, #1 + b .L3439 +.L3547: + ldr r10, .L3549+24 + mov r6, #0 +.L3452: + ldrb r3, [r9, #-3195] @ zero_extendqisi2 + ldr r2, [sp, #12] + mul r3, r3, r2 + cmp r6, r3 + bcs .L3548 + add fp, sp, #96 + ldr r3, [fp, r6, asl #2] + cmn r3, #1 + beq .L3454 + add r7, sp, #32 + ldr r1, [r5, #4] + ldr r2, [r5, #12] + ldr r0, [r7, r6, asl #2] + ldrb r3, [r10, #2772] @ zero_extendqisi2 + bl ftl_read_ppa_page + cmn r0, #1 + cmpne r0, #256 + bne .L3454 + ldr r0, [fp, r6, asl #2] + ldrb r3, [r10, #2772] @ zero_extendqisi2 + ldr r1, [r5, #4] + ldr r2, [r5, #12] + bl ftl_read_ppa_page + ldr r3, [r8] + tst r3, #16384 + mov fp, r0 + beq .L3456 + ldr r3, [r5, #12] + mov r1, fp + ldr r0, .L3549+88 + ldr r2, [r3, #8] + ldr r3, [r7, r6, asl #2] + bl printk +.L3456: + cmn fp, #1 + beq .L3454 + ldr r3, [r5, #12] + ldr r2, [r7, r6, asl #2] + ldr r1, [r3, #8] + cmp r2, r1 + bne .L3454 + ldr r1, [r8] + add r7, sp, #160 + tst r1, #16384 + beq .L3457 + ldr r1, [r3, #4] + ldr r0, .L3549+92 + ldr r3, [r7, r6, asl #2] + bl printk +.L3457: + ldr r3, [r5, #12] + ldr r2, [r7, r6, asl #2] + ldmib r3, {r0, r1} + uxth r2, r2 + bl lpa_hash_update_ppa +.L3454: + add r6, r6, #1 + b .L3452 +.L3548: + mov r0, r5 + bl zbuf_free + ldrh r3, [r4, #12] + ldrb r1, [r4, #9] @ zero_extendqisi2 + ldr r2, [sp, #16] + ldrh r2, [r2, #-4] + mla r3, r1, r2, r3 + ldr r2, .L3549+36 + ldr r2, [r2, #-2624] + sub r3, r3, #-1073741823 + ldr r3, [r2, r3, asl #2] + cmn r3, #1 + beq .L3459 + ldr r1, .L3549+40 + movw r2, #1909 + ldr r0, .L3549+44 + bl printk + bl dump_stack +.L3459: + ldrh r3, [r4, #6] + cmp r3, #1 + bne .L3410 + mov r0, r4 + bl ftl_write_last_log_page +.L3410: + add sp, sp, #228 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L3550: + .align 2 +.L3549: + .word .LANCHOR2 + .word .LC210 + .word .LC211 + .word .LC212 + .word .LC213 + .word .LC214 + .word .LANCHOR0 + .word .LANCHOR3-3172 + .word .LANCHOR3-3142 + .word .LANCHOR3 + .word .LANCHOR1+2528 + .word .LC0 + .word -178307901 + .word 1212240712 + .word .LC215 + .word .LC216 + .word .LC187 + .word .LANCHOR3-3204 + .word .LANCHOR3-3168 + .word .LC217 + .word .LC218 + .word .LC219 + .word .LC220 + .word .LC221 + .fnend + .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery + .align 2 .global dump_ftl_info .type dump_ftl_info, %function dump_ftl_info: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r4, r5, r6, lr} - .save {r4, r5, r6, lr} - .pad #8 - ldr r4, .L3290 - ldr r0, .L3290+4 - add r5, r4, #2960 - add r6, r4, #564 - ldrb r1, [r4, #2262] @ zero_extendqisi2 + stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} + .pad #12 + movw r7, #1076 + ldr r4, .L3553 + ldr r5, .L3553+4 + ldr r0, .L3553+8 + ldrb r1, [r4, #2774] @ zero_extendqisi2 + sub r6, r5, #3168 bl printk - ldr r2, .L3290+8 - ldr r0, .L3290+12 - sub r3, r2, #2928 - sub r3, r3, #8 - ldrb r1, [r2, #-2936] @ zero_extendqisi2 - ldrb r2, [r2, #-2935] @ zero_extendqisi2 - ldrh r3, [r3, #2] + ldrb r1, [r5, #136] @ zero_extendqisi2 + ldrb r2, [r5, #137] @ zero_extendqisi2 + ldrh r3, [r5, #138] + ldr r0, .L3553+12 bl printk - ldr r3, [r4, #2288] - ldr r0, .L3290+16 + ldr r3, [r4, #2804] + ldr r0, .L3553+16 ldrh r1, [r3, #130] ldrh r2, [r3, #140] bl printk - ldr r0, [r4, #580] + ldr r0, [r4, #1092] ldrh ip, [r0, #22] ldrh r1, [r0, #16] ldrh r2, [r0, #18] @@ -19299,9 +20808,9 @@ dump_ftl_info: str ip, [sp] ldrh r0, [r0, #26] str r0, [sp, #4] - ldr r0, .L3290+20 + ldr r0, .L3553+20 bl printk - ldr r0, [r4, #580] + ldr r0, [r4, #1092] ldrh ip, [r0, #54] ldrh r1, [r0, #48] ldrh r2, [r0, #50] @@ -19309,9 +20818,9 @@ dump_ftl_info: str ip, [sp] ldrh r0, [r0, #58] str r0, [sp, #4] - ldr r0, .L3290+24 + ldr r0, .L3553+24 bl printk - ldr r0, [r4, #580] + ldr r0, [r4, #1092] ldrh ip, [r0, #86] ldrh r1, [r0, #80] ldrh r2, [r0, #82] @@ -19319,67 +20828,66 @@ dump_ftl_info: str ip, [sp] ldrh r0, [r0, #90] str r0, [sp, #4] - ldr r0, .L3290+28 + ldr r0, .L3553+28 bl printk - ldrh r2, [r5] - ldrb r3, [r4, #2964] @ zero_extendqisi2 - ldr r1, [r4, #3512] - ldr r0, .L3290+32 + ldrh r2, [r6, #-4] + ldrb r3, [r5, #-3195] @ zero_extendqisi2 + ldr r1, [r5, #-2624] + ldr r0, .L3553+32 mul r3, r3, r2 mov r2, #4 mov r3, r3, asl #1 bl rknand_print_hex - ldr r1, [r4, #576] - ldrh r3, [r6] + ldr r1, [r4, #1088] + ldrh r3, [r4, r7] mov r2, #2 - ldr r0, .L3290+36 + ldr r0, .L3553+36 bl rknand_print_hex - ldr r3, [r4, #2288] + ldr r3, [r4, #2804] movw ip, #698 - ldr r0, .L3290+40 + ldr r0, .L3553+40 add r1, r3, #704 mov r2, #4 ldrh r3, [r3, ip] bl rknand_print_hex - ldr r1, [r4, #568] - ldrh r3, [r6] + ldr r1, [r4, #1080] + ldrh r3, [r4, r7] mov r2, #4 - ldr r0, .L3290+44 + ldr r0, .L3553+44 bl rknand_print_hex - add r1, r4, #2992 - ldr r0, .L3290+48 - add r1, r1, #8 + sub r1, r5, #3136 + ldr r0, .L3553+48 mov r2, #2 mov r3, #256 bl rknand_print_hex - ldrh r2, [r5] - ldrb r3, [r4, #2964] @ zero_extendqisi2 - ldr r0, .L3290+52 - ldr r1, [r4, #3516] + ldrh r2, [r6, #-4] + ldrb r3, [r5, #-3195] @ zero_extendqisi2 + ldr r0, .L3553+52 + ldr r1, [r5, #-2620] mul r3, r3, r2 mov r2, #2 mov r3, r3, asl #1 - add sp, sp, #8 + add sp, sp, #12 @ sp needed - ldmfd sp!, {r4, r5, r6, lr} + ldmfd sp!, {r4, r5, r6, r7, lr} b rknand_print_hex -.L3291: +.L3554: .align 2 -.L3290: +.L3553: .word .LANCHOR0 - .word .LC213 .word .LANCHOR3 - .word .LC214 - .word .LC215 - .word .LC216 - .word .LC217 - .word .LC218 - .word .LC219 - .word .LC220 - .word .LC212 - .word .LC221 .word .LC222 .word .LC223 + .word .LC224 + .word .LC225 + .word .LC226 + .word .LC227 + .word .LC228 + .word .LC229 + .word .LC209 + .word .LC230 + .word .LC231 + .word .LC232 .fnend .size dump_ftl_info, .-dump_ftl_info .align 2 @@ -19391,21 +20899,22 @@ pm_ppa_update_check: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r5, r2 - ldr r4, .L3296 - mov r7, r0 - mov r6, r1 - add r3, r4, #2928 - ldrb r2, [r4, #676] @ zero_extendqisi2 - ldrh r0, [r3] - mvn r3, #0 + mov r4, r2 + ldr r3, .L3559 + mov r6, r0 + ldr r7, .L3559+4 + mov r5, r1 + sub r2, r3, #3200 + mvn r1, #0 + ldrh r0, [r2, #-4] + ldrb r2, [r7, #1189] @ zero_extendqisi2 rsb r2, r2, #24 - ldrb r1, [r4, #2930] @ zero_extendqisi2 rsb r2, r0, r2 - mov r0, r5, lsr r0 - bic r0, r0, r3, asl r2 + mov r0, r4, lsr r0 + bic r0, r0, r1, asl r2 + ldrb r1, [r3, #-3202] @ zero_extendqisi2 bl __aeabi_uidiv - ldr r3, [r4, #568] + ldr r3, [r7, #1080] uxth r0, r0 add r0, r3, r0, asl #2 ldrb r0, [r0, #2] @ zero_extendqisi2 @@ -19415,19 +20924,20 @@ pm_ppa_update_check: moveq r0, #1 movne r0, #0 ldmnefd sp!, {r3, r4, r5, r6, r7, pc} - mov r1, r7 - mov r2, r6 - mov r3, r5 - ldr r0, .L3296+4 + mov r1, r6 + mov r2, r5 + mov r3, r4 + ldr r0, .L3559+8 bl printk bl dump_ftl_info mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3297: +.L3560: .align 2 -.L3296: +.L3559: + .word .LANCHOR3 .word .LANCHOR0 - .word .LC224 + .word .LC233 .fnend .size pm_ppa_update_check, .-pm_ppa_update_check .align 2 @@ -19437,152 +20947,159 @@ load_l2p_region: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 cmp r1, #31 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #12 - mov r5, r0 - mov r6, r1 - bls .L3299 - ldr r1, .L3313 + stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + .pad #8 + mov r6, r0 + mov r5, r1 + bls .L3562 + ldr r1, .L3576 mov r2, #32 - ldr r0, .L3313+4 + ldr r0, .L3576+4 bl printk bl dump_stack -.L3299: - ldr r7, .L3313+8 - movw r8, #698 - ldr r3, [r7, #2288] - mov r9, r7 - ldrh r2, [r3, r8] - cmp r5, r2 - bls .L3300 - mov r1, r5 - ldr r0, .L3313+12 +.L3562: + ldr r9, .L3576+8 + movw r10, #698 + ldr r7, .L3576+12 + ldr r3, [r9, #2804] + mov r8, r9 + ldrh r2, [r3, r10] + cmp r6, r2 + bls .L3563 + mov r1, r6 + ldr r0, .L3576+16 bl printk - ldr r3, .L3313+16 mov r4, #0 - mov r1, #255 + movw r3, #474 ldr r0, [r4, #4] - ldrh r2, [r3, #-4] + ldrh r2, [r7, r3] + mov r1, #255 bl ftl_memset - ldr r3, [r7, #2288] - ldrh r3, [r3, r8] - cmp r3, r5 - bcs .L3311 - ldr r0, .L3313+4 - mov r2, #36 - ldr r1, .L3313 - b .L3312 -.L3300: - add r2, r5, #176 - mov r6, r6, asl #3 - add r8, r7, r6 + ldr r3, [r9, #2804] + ldrh r3, [r3, r10] + cmp r3, r6 + bcs .L3574 + ldr r0, .L3576+4 + mov r2, #37 + ldr r1, .L3576 + b .L3575 +.L3563: + add r2, r6, #176 + mov r5, r5, asl #3 + add r9, r7, r5 ldr r4, [r3, r2, asl #2] - ldr r3, .L3313+20 - add r2, r3, r6 - strh r5, [r3, r6] @ movhi + ldr r3, .L3576+20 + add r2, r3, r5 + strh r6, [r3, r5] @ movhi mov r3, #0 cmp r4, r3 strh r3, [r2, #2] @ movhi - bne .L3303 - mov r1, r5 + bne .L3566 + mov r1, r6 mov r2, r4 - ldr r0, .L3313+24 + ldr r0, .L3576+24 bl printk - ldr r3, .L3313+16 - ldr r0, [r8, #3544] + movw r3, #474 + ldr r0, [r9, #-2596] mov r1, #255 - ldrh r2, [r3, #-4] + ldrh r2, [r7, r3] bl ftl_memset - b .L3311 -.L3303: - ldr r7, .L3313+28 + b .L3574 +.L3566: + ldr r2, [r7, #456] mov r0, r4 - ldrb r3, [r9, #2260] @ zero_extendqisi2 - ldr r1, [r8, #3544] - ldr r2, [r7, #-2520] + ldrb r3, [r8, #2772] @ zero_extendqisi2 + ldr r1, [r9, #-2596] bl ftl_read_ppa_page - ldr r2, [r7, #-2520] + ldr r2, [r7, #456] ldr r2, [r2] - cmp r2, r5 + cmp r2, r6 mov r3, r0 - bne .L3304 + bne .L3567 cmn r0, #1 cmpne r0, #512 - beq .L3304 -.L3307: - ldr r3, [r7, #-2520] + beq .L3567 +.L3571: + ldr r3, [r7, #456] ldr r3, [r3] - cmp r3, r5 - beq .L3311 - ldr r0, .L3313+4 - mov r2, #63 - ldr r1, .L3313 - b .L3312 -.L3304: - mov r1, r5 + cmp r3, r6 + beq .L3574 + ldr r0, .L3576+4 + mov r2, #73 + ldr r1, .L3576 + b .L3575 +.L3567: + mov r1, r6 str r4, [sp] - ldr r0, .L3313+32 - add r6, r9, r6 + ldr r0, .L3576+28 + add r5, r7, r5 bl printk - ldr r3, [r9, #2288] + ldr r3, [r8, #2804] movw ip, #698 - ldr r0, .L3313+36 + ldr r0, .L3576+32 add r1, r3, #704 mov r2, #4 ldrh r3, [r3, ip] bl rknand_print_hex - ldrb r3, [r9, #2260] @ zero_extendqisi2 - ldr r0, .L3313+40 + ldrb r3, [r8, #2772] @ zero_extendqisi2 + ldr r0, .L3576+36 mov r2, #4 - ldr r1, [r6, #3544] + ldr r1, [r5, #-2596] mov r3, r3, asl #7 + ldr r9, .L3576+12 bl rknand_print_hex - ldr r0, .L3313+44 - ldr r1, [r7, #-2520] + ldr r0, .L3576+40 + ldr r1, [r7, #456] mov r2, #4 mov r3, #16 bl rknand_print_hex - ldrb r3, [r9, #2260] @ zero_extendqisi2 mov r0, r4 - ldr r1, [r6, #3544] - ldr r2, [r7, #-2520] + ldr r1, [r5, #-2596] + ldr r2, [r7, #456] + ldrb r3, [r8, #2772] @ zero_extendqisi2 bl ftl_read_ppa_page - ldr r3, [r7, #-2520] - ldr r3, [r3] - cmp r3, r5 - bne .L3309 cmn r0, #1 cmpne r0, #512 - bne .L3307 - b .L3309 -.L3312: + bne .L3570 + movw r3, #474 + ldr r0, [r5, #-2596] + mov r1, #255 + ldrh r2, [r9, r3] + bl ftl_memset + b .L3572 +.L3570: + ldr r3, [r9, #456] + ldr r3, [r3] + cmp r3, r6 + beq .L3571 + b .L3572 +.L3575: bl printk bl dump_stack -.L3311: +.L3574: mov r0, #0 - b .L3302 -.L3309: + b .L3565 +.L3572: mvn r0, #0 -.L3302: - add sp, sp, #12 +.L3565: + add sp, sp, #8 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3314: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L3577: .align 2 -.L3313: - .word .LANCHOR1+1968 +.L3576: + .word .LANCHOR1+2552 .word .LC0 .word .LANCHOR0 - .word .LC225 - .word .LANCHOR5-2496 - .word .LANCHOR0+3540 - .word .LC226 - .word .LANCHOR5 - .word .LC227 - .word .LC228 - .word .LC229 - .word .LC230 + .word .LANCHOR3 + .word .LC234 + .word .LANCHOR3-2600 + .word .LC235 + .word .LC236 + .word .LC237 + .word .LC216 + .word .LC238 .fnend .size load_l2p_region, .-load_l2p_region .align 2 @@ -19595,137 +21112,138 @@ pm_gc: stmfd sp!, {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, .L3334 - ldr r5, .L3334+4 - ldr r3, [r4, #2288] - add r3, r3, #688 - ldrh r2, [r3] - sub r3, r5, #3296 - ldrh r0, [r3] - mov r6, r3 - sub r0, r0, #1 - cmp r2, r0 - bge .L3316 - ldr r3, [r5, #-3304] + ldr r5, .L3597 + ldr r4, [r5, #2804] + add r4, r4, #688 + ldrh r2, [r4] + ldr r4, .L3597+4 + ldrh r3, [r4, #-224] + sub r3, r3, #1 + cmp r2, r3 + bge .L3579 + ldr r3, [r4, #-232] cmp r3, #0 - beq .L3317 -.L3316: + beq .L3580 +.L3579: bl pm_free_sblk - ldr r2, [r4, #2288] + ldr r2, [r5, #2804] add r3, r2, #688 ldrh r1, [r3] - ldrh r3, [r6] + ldrh r3, [r4, #-224] sub r3, r3, #1 cmp r1, r3 - bge .L3318 - ldr r3, .L3334+4 - ldr r3, [r3, #-3304] + bge .L3581 + ldr r3, .L3597+4 + ldr r3, [r3, #-232] cmp r3, #0 - beq .L3317 -.L3318: + beq .L3580 +.L3581: uxth r0, r0 - mov r3, #0 + movw r6, #65535 add r0, r0, #208 - str r3, [r5, #-3304] - movw r5, #65535 + mov r3, #0 + str r3, [r4, #-232] mov r0, r0, asl #1 - ldrh r6, [r2, r0] - cmp r6, r5 - bne .L3320 - ldr r1, .L3334+8 - mov r2, #162 - ldr r0, .L3334+12 + ldrh r7, [r2, r0] + cmp r7, r6 + bne .L3583 + ldr r1, .L3597+8 + mov r2, #182 + ldr r0, .L3597+12 bl printk bl dump_stack bl pm_free_sblk - ldr r3, [r4, #2288] + ldr r3, [r5, #2804] uxth r0, r0 add r0, r0, #208 mov r0, r0, asl #1 - ldrh r6, [r3, r0] - cmp r6, r5 - beq .L3317 -.L3320: + ldrh r7, [r3, r0] + cmp r7, r6 + beq .L3580 +.L3583: bl pm_select_ram_region - ldr r3, .L3334+16 + ldr r3, .L3597+16 movw r2, #65535 - mov r5, r0, asl #3 - mov r9, r0 - add r7, r3, r5 - str r3, [sp, #4] - ldrh r0, [r3, r5] + mov r6, r0, asl #3 + mov r10, r0 + add r8, r3, r6 + str r3, [sp] + ldrh r0, [r3, r6] cmp r0, r2 - beq .L3321 - ldr r3, .L3334 - add r3, r3, r5 - ldr r1, [r3, #3544] + beq .L3584 + ldr r3, .L3597+4 + add r3, r3, r6 + ldr r1, [r3, #-2596] cmp r1, #0 - beq .L3321 - ldrsh r3, [r7, #2] + beq .L3584 + ldrsh r3, [r8, #2] cmp r3, #0 - bge .L3321 + bge .L3584 bl pm_write_page - ldrh r3, [r7, #2] + ldrh r3, [r8, #2] ubfx r3, r3, #0, #15 - strh r3, [r7, #2] @ movhi -.L3321: - ldr r7, .L3334 + strh r3, [r8, #2] @ movhi +.L3584: + ldr fp, .L3597 mov r8, #0 - add fp, r7, r5 -.L3322: - ldr r0, [r4, #2288] - uxth r10, r8 + ldr r9, .L3597+4 + add r3, r9, r6 + str r3, [sp, #4] +.L3585: + ldr r0, [r5, #2804] + uxth r9, r8 add r3, r0, #696 add r3, r3, #2 ldrh r3, [r3] - cmp r3, r10 - bls .L3333 - ldr r3, .L3334+20 + cmp r3, r9 + bls .L3596 + ldr r3, .L3597+20 ldrh r1, [r3] - add r3, r10, #176 + add r3, r9, #176 ldr ip, [r0, r3, asl #2] mvn r0, #0 - ldrb r3, [r7, #676] @ zero_extendqisi2 + ldrb r3, [fp, #1189] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r1, r3 mvn r0, r0, asl r3 and r0, r0, ip, lsr r1 - ldrb r1, [r7, #2930] @ zero_extendqisi2 + ldrb r1, [r4, #-3202] @ zero_extendqisi2 bl __aeabi_uidiv uxth r0, r0 - cmp r0, r6 - bne .L3323 - mov r0, r10 - mov r1, r9 + cmp r0, r7 + bne .L3586 + mov r0, r9 + mov r1, r10 bl load_l2p_region cmp r0, #0 - bne .L3324 - mov r0, r10 - ldr r1, [fp, #3544] + bne .L3587 + ldr r3, [sp, #4] + mov r0, r9 + ldr r1, [r3, #-2596] bl pm_write_page -.L3324: - ldr r2, [sp, #4] +.L3587: + ldr r2, [sp] mvn r3, #0 - strh r3, [r2, r5] @ movhi -.L3323: + strh r3, [r2, r6] @ movhi +.L3586: add r8, r8, #1 - b .L3322 -.L3333: + b .L3585 +.L3596: bl pm_free_sblk -.L3317: +.L3580: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3335: +.L3598: .align 2 -.L3334: +.L3597: .word .LANCHOR0 .word .LANCHOR3 - .word .LANCHOR1+1984 + .word .LANCHOR1+2568 .word .LC0 - .word .LANCHOR0+3540 - .word .LANCHOR0+2928 + .word .LANCHOR3-2600 + .word .LANCHOR3-3204 .fnend .size pm_gc, .-pm_gc .align 2 @@ -19738,30 +21256,30 @@ pm_flush_id: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, r0, asl #3 - ldr r4, .L3342 - ldr r3, .L3342+4 + ldr r4, .L3605 + ldr r3, .L3605+4 add r2, r4, r0 add r5, r3, r0 - ldr r1, [r2, #3544] + ldr r1, [r2, #-2596] ldrh r0, [r3, r0] bl pm_write_page ldrh r3, [r5, #2] ubfx r3, r3, #0, #15 strh r3, [r5, #2] @ movhi - ldr r3, [r4, #3536] + ldr r3, [r4, #-2604] cmp r3, #0 - beq .L3337 + beq .L3600 bl pm_gc mov r3, #0 - str r3, [r4, #3536] -.L3337: + str r3, [r4, #-2604] +.L3600: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L3343: +.L3606: .align 2 -.L3342: - .word .LANCHOR0 - .word .LANCHOR0+3540 +.L3605: + .word .LANCHOR3 + .word .LANCHOR3-2600 .fnend .size pm_flush_id, .-pm_flush_id .align 2 @@ -19774,24 +21292,24 @@ pm_flush: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #0 - ldr r5, .L3349 -.L3346: + ldr r5, .L3612 +.L3609: add r3, r5, r4, asl #3 uxth r0, r4 ldrsh r3, [r3, #2] cmp r3, #0 - bge .L3345 + bge .L3608 bl pm_flush_id -.L3345: +.L3608: add r4, r4, #1 cmp r4, #32 - bne .L3346 + bne .L3609 mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L3350: +.L3613: .align 2 -.L3349: - .word .LANCHOR0+3540 +.L3612: + .word .LANCHOR3-2600 .fnend .size pm_flush, .-pm_flush .align 2 @@ -19831,180 +21349,178 @@ zftl_deinit: .type pm_init, %function pm_init: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #12 mov r7, r0 - ldr r3, .L3379 + ldr r4, .L3642 + .pad #20 + sub sp, sp, #20 mov r0, #64 - ldr r4, .L3379+4 - mov r10, #0 - ldr r5, .L3379+8 - mvn fp, #0 - str r10, [r3, #-3304] + mov r5, #0 mov r3, #1 - str r10, [r4, #3536] - mov r8, r4 - strb r3, [r5, #-2516] + ldr r8, .L3642+4 + str r5, [r4, #-232] + mvn r9, #0 + str r5, [r4, #-2604] + strb r3, [r4, #460] bl ftl_malloc - ldr r9, .L3379+12 - str r0, [r5, #-2520] -.L3357: + ldr r10, .L3642+8 + str r0, [r4, #456] +.L3620: mov r3, #0 cmp r7, r3 - mov r6, r9 - strh fp, [r6, r10]! @ movhi + mov r6, r8 + strh r9, [r6, r5]! @ movhi strh r3, [r6, #2] @ movhi - beq .L3356 - ldrb r0, [r8, #2260] @ zero_extendqisi2 + beq .L3619 + ldrb r0, [r10, #2772] @ zero_extendqisi2 mov r0, r0, asl #9 bl ftl_malloc str r0, [r6, #4] -.L3356: - add r10, r10, #8 - cmp r10, #256 - bne .L3357 - ldr r3, [r4, #2288] - ldr r5, [r5, #-2520] - ldr r10, [r4, #3544] +.L3619: + add r5, r5, #8 + cmp r5, #256 + bne .L3620 + ldr r5, .L3642+8 + ldr r10, [r4, #-2596] + ldr r6, [r4, #456] + ldr r3, [r5, #2804] + mov r2, r10 add r3, r3, #692 ldrb r0, [r3, #2] @ zero_extendqisi2 ldrh r1, [r3] mov r3, #4 - mov r2, r10 str r3, [sp] - mov r3, r5 - ldr r9, .L3379+4 - bl flash_get_last_written_page - ldr r7, [r4, #2288] - add r3, r7, #696 - ldrh r2, [r3] - cmp r2, r0 - mov r6, r0 - bgt .L3358 - add r7, r7, #692 mov r3, r6 - ldr r0, .L3379+16 - add r6, r6, #1 - ldrh r1, [r7] + bl flash_get_last_written_page + ldr r3, [r5, #2804] + add r2, r3, #696 + ldrh r2, [r2] + cmp r2, r0 + mov r7, r0 + bgt .L3621 + add r3, r3, #692 + ldr r0, .L3642+12 + mov fp, r5 + ldrh r1, [r3] + mov r3, r7 bl printk - ldr r3, [r9, #2288] + ldr r3, [r5, #2804] + add r7, r7, #1 add r3, r3, #696 - ldrh r8, [r3] -.L3359: - sxth r3, r8 - cmp r3, r6 - bge .L3378 - ldr r2, [r4, #2288] - ldr r0, .L3379+20 + ldrh r9, [r3] +.L3622: + sxth r3, r9 + cmp r3, r7 + bge .L3641 + ldr r2, [r5, #2804] + ldr r0, .L3642+16 add r1, r2, #692 - ldrh r7, [r0] + ldrh r8, [r0] ldrh r1, [r1] ldrb r0, [r2, #694] @ zero_extendqisi2 mov r2, r10 - mla r7, r7, r1, r3 - ldrb r3, [r4, #2260] @ zero_extendqisi2 + mla r8, r8, r1, r3 + ldrb r3, [r5, #2772] @ zero_extendqisi2 str r3, [sp] - mov r3, r5 - mov r1, r7 + mov r3, r6 + mov r1, r8 bl flash_read_page_en - ldr r3, [r4, #2288] + ldr r3, [r5, #2804] add r3, r3, #692 ldr r2, [r3, #-644] add r2, r2, #1 str r2, [r3, #-644] add r3, r3, #2 - ldr r1, [r5] - mov r2, r7 + ldr r1, [r6] + mov r2, r8 ldrh r3, [r3] - mov fp, r0 - ldr r0, .L3379+24 + str r0, [sp, #12] + ldr r0, .L3642+20 bl printk - cmp fp, #512 - cmnne fp, #1 - beq .L3360 - ldr r3, [r9, #2288] - ldr r2, [r5] + ldr ip, [sp, #12] + cmp ip, #512 + cmnne ip, #1 + beq .L3623 + ldr r3, [fp, #2804] + ldr r2, [r6] add r3, r3, #696 add r3, r3, #2 ldrh r3, [r3] cmp r2, r3 - bcs .L3360 - ldr fp, [r5, #8] - cmp fp, #0 - beq .L3361 - ldrb r1, [r9, #2260] @ zero_extendqisi2 + bcs .L3623 + ldr r3, [r6, #8] + cmp r3, #0 + beq .L3624 + ldrb r1, [fp, #2772] @ zero_extendqisi2 mov r0, r10 + str r3, [sp, #12] mov r1, r1, asl #9 bl js_hash - cmp fp, r0 - beq .L3361 - ldr r1, [r5, #8] - ldr r0, .L3379+28 + ldr r3, [sp, #12] + cmp r3, r0 + beq .L3624 + ldr r1, [r6, #8] + ldr r0, .L3642+24 bl printk - b .L3360 -.L3361: - ldr r3, [r5] - ldr r2, [r4, #2288] + b .L3623 +.L3624: + ldr r3, [r6] + ldr r2, [r5, #2804] add r3, r3, #176 - str r7, [r2, r3, asl #2] -.L3360: - add r8, r8, #1 - uxth r8, r8 - b .L3359 -.L3378: - ldr r3, .L3379+32 - mov r2, #1 - strb r2, [r3, #-2855] - ldr r3, [r4, #2288] + str r8, [r2, r3, asl #2] +.L3623: + add r9, r9, #1 + uxth r9, r9 + b .L3622 +.L3641: + mov r3, #1 + strb r3, [r4, #145] + ldr r3, [r5, #2804] add r3, r3, #696 - strh r6, [r3] @ movhi + strh r7, [r3] @ movhi bl pm_free_sblk -.L3358: - ldr r3, .L3379+36 +.L3621: + movw r3, #474 mov r1, #255 - ldr r0, [r4, #3544] - ldr r5, .L3379+4 - ldrh r2, [r3, #-4] + ldrh r2, [r4, r3] + ldr r0, [r4, #-2596] bl ftl_memset mvn r0, #0 - ldr r1, [r4, #3544] + ldr r1, [r4, #-2596] bl pm_write_page - ldr r3, .L3379+32 - ldrb r3, [r3, #-2855] @ zero_extendqisi2 + ldrb r3, [r4, #145] @ zero_extendqisi2 + ldr r5, .L3642 cmp r3, #0 - beq .L3363 - ldr r1, [r5, #3544] + beq .L3626 + ldr r1, [r5, #-2596] mvn r0, #0 bl pm_write_page - ldr r1, [r5, #3544] + ldr r1, [r5, #-2596] mvn r0, #0 bl pm_write_page mvn r0, #0 - ldr r1, [r5, #3544] + ldr r1, [r5, #-2596] bl pm_write_page -.L3363: +.L3626: bl pm_free_sblk bl pm_gc mov r0, #0 - add sp, sp, #12 + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3380: +.L3643: .align 2 -.L3379: +.L3642: .word .LANCHOR3 + .word .LANCHOR3-2600 .word .LANCHOR0 - .word .LANCHOR5 - .word .LANCHOR0+3540 - .word .LC231 - .word .LANCHOR0+2994 - .word .LC232 - .word .LC233 - .word .LANCHOR4 - .word .LANCHOR5-2496 + .word .LC239 + .word .LANCHOR3-3142 + .word .LC240 + .word .LC241 .fnend .size pm_init, .-pm_init .align 2 @@ -20016,115 +21532,116 @@ pm_log2phys: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r5, r1 - ldr fp, .L3400 - mov r9, r0 - mov r7, r2 - ldrb r4, [fp, #2260] @ zero_extendqisi2 + mov r6, r1 + ldr r9, .L3663 + mov r10, r0 + mov r8, r2 + ldrb r4, [r9, #2772] @ zero_extendqisi2 mov r1, r4, asl #7 + mov r5, r4, asl #7 bl __aeabi_uidiv - mov r3, r4, asl #7 - ldr r2, [fp, #2268] - cmp r9, r2 - ldrcc r2, .L3400+4 - uxth r10, r0 - mov r6, r0 - smulbb r3, r3, r10 - rsb r3, r3, r9 - uxth r8, r3 + ldr r2, [r9, #2784] + cmp r10, r2 movcc r3, #0 - bcc .L3382 - mov r1, r9 - ldr r0, .L3400+8 + ldrcc r2, .L3663+4 + uxth fp, r0 + mov r7, r0 + smulbb r5, r5, fp + rsb r5, r5, r10 + uxth r5, r5 + bcc .L3645 + mov r1, r10 + ldr r0, .L3663+8 bl printk mvn r0, #0 - cmp r7, #0 - streq r0, [r5] + cmp r8, #0 + streq r0, [r6] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3398: +.L3661: ldrh r1, [r1, r2] - cmp r1, r10 - beq .L3385 -.L3384: + cmp r1, fp + beq .L3648 +.L3647: add r3, r3, #1 cmp r3, #32 - beq .L3397 -.L3382: + beq .L3660 +.L3645: mov r1, r3, asl #3 uxth r4, r3 add r0, r2, r1 - ldr r9, .L3400+4 + ldr r10, .L3663+4 ldr r0, [r0, #4] cmp r0, #0 - bne .L3398 - b .L3384 -.L3397: + bne .L3661 + b .L3647 +.L3660: bl pm_select_ram_region mov r3, r0, asl #3 mov r4, r0 - add r2, r9, r3 - ldrh r1, [r9, r3] + add r2, r10, r3 + ldrh r1, [r10, r3] movw r3, #65535 cmp r1, r3 - bne .L3399 -.L3388: - ldr r3, .L3400+12 - mov r0, r10 + bne .L3662 +.L3651: + ldr r3, .L3663+12 + mov r0, fp mov r1, r4 - strb r4, [r3, #-2498] + strb r4, [r3, #476] bl load_l2p_region -.L3385: - cmp r7, #0 - mov r3, r4, asl #3 - bne .L3386 - add r2, fp, r3 - mvn r1, #0 - ldr r2, [r2, #3544] - ldr r2, [r2, r8, asl #2] - str r2, [r5] - ldrb r0, [fp, #676] @ zero_extendqisi2 +.L3648: + cmp r8, #0 + ldr r1, .L3663+12 + mov r4, r4, asl #3 + bne .L3649 + add r3, r1, r4 + mvn r2, #0 + ldr r3, [r3, #-2596] + ldr r3, [r3, r5, asl #2] + str r3, [r6] + ldrb r0, [r9, #1189] @ zero_extendqisi2 rsb ip, r0, #24 - mvn r1, r1, asl r0 - and r2, r1, r2, lsr ip - ldrb r1, [fp, #2996] @ zero_extendqisi2 - cmp r2, r1 - mvncs r2, #0 - strcs r2, [r5] - b .L3387 -.L3386: - add r2, fp, r3 - ldr r1, [r5] - ldr r2, [r2, #3544] - str r1, [r2, r8, asl #2] - add r1, r9, r3 - strb r6, [fp, #3796] - ldrh r2, [r1, #2] - mvn r2, r2, asl #17 - mvn r2, r2, lsr #17 - strh r2, [r1, #2] @ movhi -.L3387: - add r3, r9, r3 - movw r1, #32767 - ldrh r2, [r3, #2] - ubfx r0, r2, #0, #15 - cmp r0, r1 + mvn r2, r2, asl r0 + and r3, r2, r3, lsr ip + ldrb r2, [r1, #-3140] @ zero_extendqisi2 + cmp r3, r2 + mvncs r3, #0 + strcs r3, [r6] + b .L3650 +.L3649: + add r3, r1, r4 + ldr r2, [r6] + ldr r3, [r3, #-2596] + str r2, [r3, r5, asl #2] + add r2, r10, r4 + strb r7, [r1, #-2344] + ldrh r3, [r2, #2] + mvn r3, r3, asl #17 + mvn r3, r3, lsr #17 + strh r3, [r2, #2] @ movhi +.L3650: + add r4, r10, r4 + movw r2, #32767 mov r0, #0 - addne r2, r2, #1 - strneh r2, [r3, #2] @ movhi + ldrh r3, [r4, #2] + ubfx r1, r3, #0, #15 + cmp r1, r2 + addne r3, r3, #1 + strneh r3, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3399: +.L3662: ldrsh r3, [r2, #2] cmp r3, #0 - bge .L3388 + bge .L3651 bl pm_flush_id - b .L3388 -.L3401: + b .L3651 +.L3664: .align 2 -.L3400: +.L3663: .word .LANCHOR0 - .word .LANCHOR0+3540 - .word .LC234 - .word .LANCHOR5 + .word .LANCHOR3-2600 + .word .LC242 + .word .LANCHOR3 .fnend .size pm_log2phys, .-pm_log2phys .align 2 @@ -20137,17 +21654,17 @@ gc_recovery: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #65535 - ldr r8, .L3486 + ldr r7, .L3765 mov r6, #0 - ldr r4, .L3486+4 + ldr r8, .L3765+4 .pad #68 sub sp, sp, #68 - ldr r5, [r8, #580] - strb r6, [r8, #2945] - strb r6, [r4, #-3322] - ldrh r7, [r5, #80] - cmp r7, r3 - beq .L3403 + ldr r5, [r7, #1092] + strb r6, [r8, #-3187] + strb r6, [r8, #-254] + ldrh r4, [r5, #80] + cmp r4, r3 + beq .L3666 mvn r3, #0 mov r0, #1 strh r3, [r5, #130] @ movhi @@ -20155,56 +21672,56 @@ gc_recovery: ldrb r3, [r5, #89] @ zero_extendqisi2 add r3, r5, r3, asl #1 ldrh r1, [r3, #94] - movw r3, #2994 - ldrh r3, [r8, r3] + sub r3, r8, #3136 + ldrh r3, [r3, #-6] mul r1, r3, r1 - ldrb r3, [r8, #2937] @ zero_extendqisi2 + ldrb r3, [r8, #-3196] @ zero_extendqisi2 cmp r3, #2 - mov r6, r0 + mov r4, r0 str r1, [sp, #56] - beq .L3404 - ldrb r2, [r8, #684] @ zero_extendqisi2 - cmp r2, #0 - beq .L3405 -.L3404: - movw r2, #2962 - ldrh r2, [r8, r2] + beq .L3667 + ldrb r2, [r7, #1196] @ zero_extendqisi2 + cmp r2, r6 + bne .L3667 + ldrb r2, [r7, #1197] @ zero_extendqisi2 + cmp r2, r6 + beq .L3668 +.L3667: + ldr r2, .L3765+8 + ldrh r2, [r2, #-2] sub r2, r2, #1 add r2, r2, r1 orr r3, r2, r3, asl #24 - b .L3483 -.L3405: + b .L3757 +.L3668: cmp r3, #3 - bne .L3406 - add r3, r8, #2960 - ldrh r3, [r3] + bne .L3669 + sub r3, r8, #3168 + ldrh r3, [r3, #-4] sub r3, r3, #1 add r3, r3, r1 orr r3, r3, #50331648 -.L3483: - str r3, [r6, #24] -.L3406: - mov r0, r6 +.L3757: + str r3, [r4, #24] +.L3669: + mov r0, r4 mov r1, #1 bl sblk_read_page - ldr r7, [r6, #36] - cmn r7, #1 - cmpne r7, #512 - moveq r7, #1 - movne r7, #0 - beq .L3407 - ldr r3, [r6, #12] - ldr r2, [r3] - ldr r3, .L3486+8 - cmp r2, r3 - beq .L3408 -.L3407: - mov r0, r6 - mov r4, #0 + ldr r3, [r4, #36] + cmn r3, #1 + cmpne r3, #512 + beq .L3670 + ldr r3, [r4, #12] + ldr r6, .L3765+12 + ldr r3, [r3] + cmp r3, r6 + beq .L3671 +.L3670: + mov r0, r4 bl zbuf_free - ldr r3, [r6, #4] - ldr r2, [r6, #12] - ldr r0, .L3486+12 + ldr r3, [r4, #4] + ldr r2, [r4, #12] + ldr r0, .L3765+16 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -20219,1063 +21736,525 @@ gc_recovery: str r1, [sp, #20] ldr r2, [r2, #12] str r2, [sp, #24] - ldr r2, [r6, #36] + ldr r1, [r4, #24] + ldr r2, [r4, #36] ldr r3, [r3] - ldr r1, [r6, #24] bl printk - ldrh r3, [r5, #80] - ldr r2, [r8, #576] - mov r3, r3, asl #1 - strh r4, [r2, r3] @ movhi - ldrh r2, [r5, #80] - ldr r3, [r8, #580] - strh r2, [r3, #130] @ movhi - b .L3409 -.L3408: - movw fp, #2962 - ldrb r3, [r8, #2964] @ zero_extendqisi2 - ldrh r2, [r8, fp] - ldr r1, [r6, #4] - ldr r0, [r4, #-3316] - mul r2, r3, r2 - ldr r10, .L3486+4 - ldr r9, .L3486 + b .L3761 +.L3671: + ldrb r2, [r8, #477] @ zero_extendqisi2 + ldr r3, .L3765+4 + cmp r2, #2 + sub r10, r3, #3168 + bne .L3673 + ldrb r2, [r3, #-3196] @ zero_extendqisi2 + cmp r2, #3 + bne .L3673 + movw r2, #474 + ldr r0, [r3, #-244] + ldrh r1, [r3, r2] + ldrh r2, [r10, #-2] + ldrb r3, [r3, #-3195] @ zero_extendqisi2 + mov ip, r1, lsr #2 mov r2, r2, asl #2 + add r0, r0, ip, asl #2 + smulbb r2, r3, r2 + rsb r2, r1, r2 + ldr r1, [r4, #4] + uxth r2, r2 bl ftl_memcpy - ldrh r2, [r8, fp] - ldrb r3, [r8, #2964] @ zero_extendqisi2 - ldrb r1, [r8, #2260] @ zero_extendqisi2 - mul r3, r3, r2 - cmp r1, r3, asr #6 - mov r2, r3, asl #2 - bge .L3410 - rsb r3, r3, r1, asl #7 - ldr r0, [r10, #-3312] - mov r1, r7 - mov r7, #1 - mov r4, r3, asl #2 + ldrb r3, [r7, #1196] @ zero_extendqisi2 + cmp r3, #0 + bne .L3674 + ldr r3, .L3765 + ldrb r3, [r3, #1197] @ zero_extendqisi2 + cmp r3, #0 + beq .L3675 +.L3674: + ldr r3, [r4, #24] + sub r3, r3, #1 + b .L3676 +.L3675: + ldr r3, [sp, #56] + ldrh r2, [r10, #-4] + sub r3, r3, #1 + add r3, r3, r2 + orr r3, r3, #33554432 +.L3676: + str r3, [r4, #24] + mov r0, r4 + mov r1, #1 + bl sblk_read_page + ldr r3, [r4, #36] + cmn r3, #1 + cmpne r3, #512 + beq .L3677 + ldr r3, [r4, #12] + ldr r3, [r3] + cmp r3, r6 + beq .L3678 +.L3677: + mov r0, r4 + bl zbuf_free +.L3761: + ldrh r4, [r5, #80] + mov r6, #0 + ldr r3, [r7, #1088] + mov r4, r4, asl #1 + strh r6, [r3, r4] @ movhi + ldrh r2, [r5, #80] + ldr r3, [r7, #1092] + strh r2, [r3, #130] @ movhi + b .L3672 +.L3678: + movw r3, #474 + ldr r0, [r8, #-244] + ldr r1, [r4, #4] + ldrh r2, [r8, r3] + b .L3758 +.L3673: + ldrh r2, [r10, #-2] + ldrb r3, [r8, #-3195] @ zero_extendqisi2 + ldr r0, [r8, #-244] + ldr r1, [r4, #4] + mul r2, r3, r2 + mov r2, r2, asl #2 +.L3758: + bl ftl_memcpy + ldrb r3, [r8, #-3195] @ zero_extendqisi2 + ldrh r2, [r10, #-2] + ldr fp, .L3765+4 + mul r2, r3, r2 + ldrb r3, [r7, #2772] @ zero_extendqisi2 + sub r6, fp, #3168 + cmp r3, r2, asr #6 + mov r2, r2, asl #2 + bge .L3680 + ldr r0, [fp, #-240] + mov r1, #0 bl ftl_memset - ldrh r1, [r9, fp] - ldrb r3, [r9, #2964] @ zero_extendqisi2 - mov r2, r4 - ldr r0, [r10, #-3312] + ldrb r9, [fp, #477] @ zero_extendqisi2 + cmp r9, #1 + movne r9, #1 + movne r6, #0 + bne .L3681 + ldrh r1, [r6, #-2] + movw r2, #474 + ldrb r3, [fp, #-3195] @ zero_extendqisi2 + ldrh r6, [fp, r2] + ldr r0, [fp, #-240] mul r3, r3, r1 - ldr r1, [r6, #4] + ldr r1, [r4, #4] + sub r6, r6, r3, asl #2 add r1, r1, r3, asl #2 + mov r2, r6 bl ftl_memcpy - b .L3411 -.L3410: - ldr r1, [r6, #4] - mov r4, r7 - ldr r0, [r10, #-3312] + b .L3681 +.L3680: + ldr r1, [r4, #4] + mov r9, #0 + ldr r0, [fp, #-240] + mov r6, r9 add r1, r1, r2 bl ftl_memcpy -.L3411: - ldr r3, .L3486 - add r2, r3, #2960 - ldrh r2, [r2] - str r2, [sp, #36] - ldrb r2, [r8, #2937] @ zero_extendqisi2 - cmp r2, #2 - str r2, [sp, #32] - bne .L3412 - ldrb r3, [r3, #2938] @ zero_extendqisi2 +.L3681: + ldrh r3, [r10, #-4] + str r3, [sp, #36] + ldrb r3, [r8, #-3196] @ zero_extendqisi2 + cmp r3, #2 + str r3, [sp, #32] + bne .L3682 + ldr r3, .L3765+4 + ldrb r3, [r3, #-3194] @ zero_extendqisi2 cmp r3, #0 - beq .L3413 -.L3412: - ldrb r3, [r8, #684] @ zero_extendqisi2 + beq .L3683 +.L3682: + ldrb r3, [r7, #1196] @ zero_extendqisi2 cmp r3, #0 - beq .L3414 -.L3413: + beq .L3684 +.L3683: ldr r3, [sp, #32] ldr r2, [sp, #36] mul r3, r3, r2 str r3, [sp, #36] mov r3, #1 str r3, [sp, #32] -.L3414: - ldr ip, .L3486 - mov r8, #0 - str r8, [sp, #40] -.L3415: +.L3684: + ldr r10, .L3765+4 + mov r7, #0 + str r7, [sp, #40] +.L3685: ldr r3, [sp, #36] - cmp r8, r3 - bcs .L3427 - add r3, r5, #96 + cmp r7, r3 + bcs .L3698 + add ip, r5, #96 + add r3, r7, r7, asl #1 + sub r3, r3, #1 str r3, [sp, #48] mov r3, #0 str r3, [sp, #44] -.L3428: +.L3699: ldrb r3, [r5, #89] @ zero_extendqisi2 ldr r2, [sp, #44] cmp r2, r3 - bge .L3424 + bge .L3695 ldr r3, [sp, #40] mov fp, #1 - ldr r10, .L3486+4 - mov r9, r3, asl #2 -.L3425: + mov r8, r3, asl #2 +.L3696: ldr r3, [sp, #32] cmp fp, r3 - bhi .L3484 - ldr r3, [sp, #48] - ldrb r1, [ip, #2937] @ zero_extendqisi2 - ldrh r2, [r3] - cmp r1, #2 - ldr r3, .L3486+16 + bhi .L3763 + ldr r3, .L3765+20 + ldrh r2, [ip] + ldrb r1, [r10, #-3196] @ zero_extendqisi2 ldrh r3, [r3] + cmp r1, #2 mul r3, r3, r2 str r3, [sp, #56] - beq .L3416 - ldrb r2, [ip, #684] @ zero_extendqisi2 + beq .L3686 + ldr r2, .L3765 + ldrb r2, [r2, #1196] @ zero_extendqisi2 cmp r2, #0 - beq .L3417 -.L3416: - sub r2, r8, #1 + beq .L3687 +.L3686: + sub r2, r7, #1 add r3, r2, r3 add r3, r3, fp orr r3, r3, r1, asl #24 - b .L3419 -.L3417: + b .L3759 +.L3687: cmp r1, #3 - add r3, r3, r8 + addne r3, r3, r7 + bne .L3759 + ldr r2, .L3765 + ldrb r2, [r2, #1197] @ zero_extendqisi2 + cmp r2, #0 + addeq r3, r3, r7 + ldrne r2, [sp, #48] orreq r3, r3, fp, asl #24 -.L3419: - str r3, [r6, #24] - mov r0, r6 + addne r3, r3, r2 + addne r3, r3, fp + orrne r3, r3, #50331648 +.L3759: + str r3, [r4, #24] + mov r0, r4 mov r1, #1 str ip, [sp, #52] bl sblk_read_page - cmp r7, #0 + cmp r9, #0 ldr ip, [sp, #52] - beq .L3420 - ldr r3, [r10, #-3312] - ldr r2, [r3, r9] + beq .L3691 + ldr r3, [r10, #-240] + ldr r2, [r3, r8] cmp r2, #0 - ldreq r2, [r6, #12] + ldreq r2, [r4, #12] ldreq r2, [r2, #8] - streq r2, [r3, r9] -.L3420: - ldr r3, [r10, #-3316] - ldr r2, [r6, #12] - ldr r3, [r3, r9] + streq r2, [r3, r8] +.L3691: + ldr r3, [r10, #-244] + ldr r2, [r4, #12] + ldr r3, [r3, r8] ldr r1, [r2, #4] cmp r3, r1 - bne .L3421 - ldr r0, [r10, #-3312] - ldr lr, [r0, r9] + bne .L3692 + ldr r0, [r10, #-240] + ldr lr, [r0, r8] ldr r0, [r2, #8] cmp lr, r0 - beq .L3448 -.L3421: - ldr r0, [r10, #-3312] + beq .L3722 +.L3692: + ldr r0, [r10, #-240] str ip, [sp, #52] - ldr r0, [r0, r9] + ldr r0, [r0, r8] str r0, [sp] ldr r0, [r2] stmib sp, {r0, r1} ldr r1, [r2, #8] - ldr r0, .L3486+20 + ldr r0, .L3765+24 str r1, [sp, #12] ldr r2, [r2, #12] str r2, [sp, #16] - ldr r1, [r6, #24] - ldr r2, [r6, #36] + ldr r1, [r4, #24] + ldr r2, [r4, #36] bl printk - ldr r3, [r10, #-3316] - ldr r3, [r3, r9] + ldr r3, [r10, #-244] + ldr r3, [r3, r8] cmn r3, #1 ldr ip, [sp, #52] - beq .L3448 - mov r0, r6 + beq .L3722 + mov r0, r4 bl zbuf_free - ldr r2, .L3486 + ldr r2, .L3765 ldrh r3, [r5, #80] mov r0, #0 - ldr r1, [r2, #576] + ldr r1, [r2, #1088] mov r3, r3, asl #1 strh r0, [r1, r3] @ movhi ldrh r1, [r5, #80] - ldr r3, [r2, #580] + ldr r3, [r2, #1092] strh r1, [r3, #130] @ movhi - b .L3409 -.L3448: + b .L3672 +.L3722: ldr r3, [sp, #40] add fp, fp, #1 - add r9, r9, #4 + add r8, r8, #4 add r3, r3, #1 str r3, [sp, #40] - b .L3425 -.L3484: + b .L3696 +.L3763: ldr r3, [sp, #44] + add ip, ip, #2 add r3, r3, #1 str r3, [sp, #44] - ldr r3, [sp, #48] - add r3, r3, #2 - str r3, [sp, #48] - b .L3428 -.L3424: - ldrb r3, [ip, #2938] @ zero_extendqisi2 + b .L3699 +.L3695: + ldrb r3, [r10, #-3194] @ zero_extendqisi2 cmp r3, #0 - addne r8, r8, #1 - add r8, r8, #1 - b .L3415 -.L3427: - mov r0, r6 - ldr r6, .L3486 + addne r7, r7, #1 + add r7, r7, #1 + b .L3685 +.L3698: + mov r0, r4 + mov r6, #0 bl zbuf_free - movw r2, #2962 - ldrb r0, [r5, #89] @ zero_extendqisi2 - mov r4, #0 - ldrh r2, [r6, r2] - mov r10, r4 - ldrh r3, [r5, #80] - mov r8, r4 - ldr r1, [r6, #576] - smulbb r2, r0, r2 - mov r3, r3, asl #1 - strh r2, [r1, r3] @ movhi -.L3429: + ldr ip, .L3765+8 + ldrb r8, [r5, #89] @ zero_extendqisi2 + mov r7, r6 + ldr r3, .L3765 + add r10, ip, #3168 + ldrh r9, [ip, #-2] + ldrh r4, [r5, #80] + ldr r3, [r3, #1088] + smulbb r8, r8, r9 + mov r4, r4, asl #1 + mov r9, r6 + strh r8, [r3, r4] @ movhi +.L3700: ldr r3, [sp, #36] - cmp r10, r3 - bcs .L3442 + cmp r9, r3 + bcs .L3714 + add r2, r9, r9, asl #1 + sub r3, r2, #1 + str r3, [sp, #48] add r3, r5, #96 str r3, [sp, #44] mov r3, #0 str r3, [sp, #40] -.L3443: +.L3715: ldrb r2, [r5, #89] @ zero_extendqisi2 ldr r3, [sp, #40] cmp r3, r2 - bge .L3439 - ldr fp, .L3486+4 - mov r7, #1 -.L3440: + bge .L3711 + mov r4, #1 +.L3712: ldr r3, [sp, #32] - cmp r7, r3 - bhi .L3485 - ldr r2, [fp, #-3316] - ldr r9, [r2, r8, asl #2] - cmn r9, #1 - beq .L3430 - ldr r2, [fp, #-3312] - mov r0, r9 - ldr r3, [r2, r8, asl #2] - str r3, [sp, #48] + cmp r4, r3 + bhi .L3764 + ldr r2, [r10, #-244] + ldr r8, [r2, r7, asl #2] + cmn r8, #1 + beq .L3701 + ldr r2, [r10, #-240] + mov r0, r8 + ldr fp, [r2, r7, asl #2] bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #60] - bne .L3431 - mov r0, r9 + bne .L3702 + mov r0, r8 add r1, sp, #60 mov r2, #0 bl pm_log2phys -.L3431: +.L3702: ldr r3, [sp, #44] - ldr r2, .L3486+16 + ldrh r2, [r3] + ldr r3, .L3765+20 ldrh r1, [r3] - ldrh r2, [r2] - mul r2, r2, r1 - ldrb r1, [r6, #2937] @ zero_extendqisi2 + ldr r3, .L3765+4 + mul r2, r1, r2 + ldrb r1, [r3, #-3196] @ zero_extendqisi2 cmp r1, #2 - beq .L3432 - ldrb r0, [r6, #684] @ zero_extendqisi2 - cmp r0, #0 - beq .L3433 -.L3432: - sub r0, r10, #1 + beq .L3703 + ldr r0, .L3765 + ldrb lr, [r0, #1196] @ zero_extendqisi2 + cmp lr, #0 + beq .L3704 +.L3703: + sub r0, r9, #1 add r2, r0, r2 - add r2, r2, r7 + add r2, r2, r4 orr r2, r2, r1, asl #24 - b .L3435 -.L3433: + b .L3760 +.L3704: cmp r1, #3 - add r2, r2, r10 - orreq r2, r2, r7, asl #24 -.L3435: + addne r2, r2, r9 + bne .L3760 + ldrb r1, [r0, #1197] @ zero_extendqisi2 + cmp r1, #0 + mov r1, r4, asl #24 + addeq r2, r2, r9 + ldrne r3, [sp, #48] + addne r2, r2, r3 + addne r2, r2, r4 + orr r2, r1, r2 +.L3760: str r2, [sp, #56] - ldr r2, .L3486+24 - ldrb r1, [r6, #676] @ zero_extendqisi2 - ldr r3, [sp, #48] + ldr r2, .L3765+28 ldrh r0, [r2] - rsb r1, r1, #24 + ldr r2, .L3765 + ldrb r1, [r2, #1189] @ zero_extendqisi2 mov r2, #1 str r2, [sp, #52] + rsb r1, r1, #24 rsb r1, r0, r1 mov r1, r2, asl r1 sub r1, r1, #1 - and r0, r1, r3, lsr r0 - ldrb r1, [r6, #2930] @ zero_extendqisi2 + and r0, r1, fp, lsr r0 + ldrb r1, [r10, #-3202] @ zero_extendqisi2 bl __aeabi_uidiv ldr r1, [sp, #60] - uxth ip, r0 - ldr r3, [sp, #48] ldr r2, [sp, #52] - cmp r1, r3 - bne .L3436 + cmp r1, fp + uxth fp, r0 + bne .L3708 + mov r0, r8 add r1, sp, #56 - mov r0, r9 - str ip, [sp, #48] bl pm_log2phys - add r4, r4, #1 - ldr ip, [sp, #48] - mov r0, ip + mov r0, fp + add r6, r6, #1 bl ftl_vpn_decrement - ldr ip, [sp, #48] - b .L3437 -.L3436: + b .L3709 +.L3708: ldr r2, [sp, #56] cmp r1, r2 - addeq r4, r4, #1 -.L3437: - ldr r3, .L3486 - add r8, r8, #1 - ldr r2, [r3, #568] - add r2, r2, ip, asl #2 + addeq r6, r6, #1 +.L3709: + ldr r1, .L3765 + add r7, r7, #1 + ldr r2, [r1, #1080] + add r2, r2, fp, asl #2 ldrb r2, [r2, #2] @ zero_extendqisi2 ands r2, r2, #224 - bne .L3430 - ldr r1, [r6, #576] - mov ip, ip, asl #1 - ldrh r0, [r1, ip] - cmp r0, #0 - strneh r2, [r1, ip] @ movhi -.L3430: - add r7, r7, #1 - b .L3440 -.L3485: + bne .L3701 + ldr r8, [r1, #1088] + mov fp, fp, asl #1 + ldrh r1, [r8, fp] + cmp r1, #0 + strneh r2, [r8, fp] @ movhi +.L3701: + add r4, r4, #1 + b .L3712 +.L3764: ldr r3, [sp, #40] add r3, r3, #1 str r3, [sp, #40] ldr r3, [sp, #44] add r3, r3, #2 str r3, [sp, #44] - b .L3443 -.L3439: - ldrb r2, [r6, #2938] @ zero_extendqisi2 + b .L3715 +.L3711: + ldrb r2, [r10, #-3194] @ zero_extendqisi2 cmp r2, #0 - addne r10, r10, #1 - add r10, r10, #1 - b .L3429 -.L3442: - ldr r2, .L3486 + addne r9, r9, #1 + add r9, r9, #1 + b .L3700 +.L3714: + ldr r2, .L3765 ldrh r3, [r5, #80] - ldr r2, [r2, #576] + ldr r2, [r2, #1088] mov r3, r3, asl #1 - strh r4, [r2, r3] @ movhi + strh r6, [r2, r3] @ movhi ldrh r0, [r5, #80] bl zftl_insert_data_list -.L3409: - ldr r6, .L3486 +.L3672: + ldr r4, .L3765 ldrh r0, [r5, #80] - ldr r2, [r6, #576] + ldr r2, [r4, #1088] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - bne .L3444 + bne .L3716 bl ftl_dump_write_open_sblk -.L3444: +.L3716: + mov r2, r6 ldrh r1, [r5, #80] - mov r2, r4 - ldr r0, .L3486+28 + ldr r0, .L3765+32 bl printk mvn r3, #0 strh r3, [r5, #80] @ movhi bl pm_flush bl ftl_ext_info_flush - ldr r3, [r6, #580] + ldr r3, [r4, #1092] + movw r2, #65535 + ldrh r3, [r3, #130] + cmp r3, r2 + beq .L3717 + ldr r1, .L3765 + movw r2, #1076 + ldrh r2, [r1, r2] + cmp r2, r3 + bhi .L3718 + ldr r1, .L3765+36 + movw r2, #517 + ldr r0, .L3765+40 + bl printk + bl dump_stack +.L3718: + ldr r3, [r4, #1092] ldrh r0, [r3, #130] - movw r3, #65535 - cmp r0, r3 - beq .L3445 bl ftl_free_sblk -.L3445: - ldr r2, [r6, #2288] +.L3717: + ldr r2, [r4, #2804] mvn r3, #0 mov r0, #0 strh r3, [r2, #126] @ movhi - ldr r2, [r6, #580] + ldr r2, [r4, #1092] strh r3, [r2, #130] @ movhi bl ftl_info_flush - b .L3402 -.L3403: + b .L3665 +.L3666: ldrh r3, [r5, #130] - cmp r3, r7 - beq .L3402 - ldr r2, [r8, #2288] + cmp r3, r4 + beq .L3665 + ldr r2, [r7, #2804] ldrh r2, [r2, #126] cmp r2, r3 - bne .L3447 + bne .L3720 bl pm_flush - ldr r3, [r8, #580] + ldr r3, [r7, #1092] ldrh r0, [r3, #130] bl ftl_free_sblk - ldr r3, [r8, #2288] + ldr r3, [r7, #2804] mvn r2, #0 mov r0, r6 strh r2, [r3, #126] @ movhi bl ftl_info_flush -.L3447: - ldr r3, [r8, #580] +.L3720: + ldr r3, [r7, #1092] mvn r2, #0 strh r2, [r3, #130] @ movhi -.L3402: +.L3665: add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3487: +.L3766: .align 2 -.L3486: +.L3765: .word .LANCHOR0 .word .LANCHOR3 + .word .LANCHOR3-3168 .word -178307901 - .word .LC235 - .word .LANCHOR0+2994 - .word .LC236 - .word .LANCHOR0+2928 - .word .LC237 + .word .LC243 + .word .LANCHOR3-3142 + .word .LC244 + .word .LANCHOR3-3204 + .word .LC245 + .word .LANCHOR1+2576 + .word .LC0 .fnend .size gc_recovery, .-gc_recovery .align 2 - .global zftl_init - .type zftl_init, %function -zftl_init: - .fnstart - @ args = 0, pretend = 0, frame = 24 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {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 - ldr fp, .L3563 - mvn r3, #0 - ldr r4, .L3563+4 - mov r8, #0 - ldr r2, .L3563+8 - mov ip, fp - ldr r1, .L3563+12 - ldr r0, .L3563+16 - str r3, [ip, #-2496]! - strb r3, [r2, #-3240] - str ip, [sp, #16] - str ip, [sp, #4] - strb r3, [r4, #2308] - strb r3, [r4, #3531] - strb r8, [r4, #2284] - strb r8, [r4, #3532] - strb r8, [r4, #2285] - bl printk - ldr r5, .L3563+20 - movw r1, #2962 - ldrb r3, [r5, #16] @ zero_extendqisi2 - ldrh r9, [r5, #14] - ldrb r2, [r5, #13] @ zero_extendqisi2 - strh r9, [r4, r1] @ movhi - mov r0, r9 - strb r2, [r4, #2260] - str r3, [sp, #4] - ldrb r3, [sp, #4] @ zero_extendqisi2 - ldr r1, [sp, #4] - str r2, [sp, #12] - strb r3, [r4, #2937] - bl __aeabi_idiv - add r1, r4, #2960 - ldrh r7, [r5, #18] - str r0, [sp, #8] - ldrh r3, [sp, #8] - ldrb r0, [r5, #17] @ zero_extendqisi2 - ldr r2, [sp, #12] - strh r3, [r1] @ movhi - ldrb r1, [r4, #589] @ zero_extendqisi2 - ldr ip, [sp, #16] - mov r10, r2, asl #9 - strb r0, [r4, #2930] - strb r1, [r4, #2996] - uxth r10, r10 - smulbb r1, r0, r1 - strh r10, [ip, #-4] @ movhi - ldrh ip, [r4, #2] - mov r0, #1 - str fp, [sp, #12] - uxtb r6, r1 - add r1, r4, #564 - strb r6, [r4, #2964] - strh r7, [r1] @ movhi - movw r1, #2994 - strh ip, [r4, r1] @ movhi -.L3489: - cmp r0, ip - uxth r1, r8 - add r8, r8, #1 - movls r0, r0, asl #1 - bls .L3489 -.L3561: - mul r3, r9, r2 - ldr r0, .L3563+24 - sub r1, r1, #1 - strh r1, [r0] @ movhi - mov r0, #0 - mov r1, #1 - mul r8, r7, r3 - mov ip, r8, lsr #21 -.L3491: - cmp r1, ip - uxth lr, r0 - add r0, r0, #1 - movls r1, r1, asl #1 - bls .L3491 -.L3562: - ldr r1, .L3563+28 - sub lr, lr, #1 - mov r0, #1 - str r3, [sp, #20] - uxth lr, lr - ldr r3, [sp, #12] - mul r1, r1, r6 - mov lr, r0, asl lr - mul r8, r6, r8 - ldr fp, .L3563+4 - mul r9, lr, r1 - mov r1, r2 - str r8, [r4, #2264] - ldr r8, .L3563+32 - add ip, r9, #24576 - str ip, [r3, #-2492] - str ip, [sp, #16] - mov r0, ip - str r9, [r4, #520] - bl __aeabi_uidiv - sub r2, r10, #1 - mov r1, r10 - ldr r10, .L3563+36 - str r0, [r4, #2268] - add r0, r2, r0, asl #2 - bl __aeabi_uidiv - ldr r3, [sp, #8] - strh r0, [r10, #-8] @ movhi - uxth r0, r0 - mul r1, r6, r3 - mov r0, r0, asl #4 - bl __aeabi_idiv - add r2, fp, #2976 - ldr r3, [sp, #20] - ldr ip, [sp, #16] - strh r0, [r8] @ movhi - mul r1, r6, r3 - mov r0, ip - str r2, [sp, #8] - sub r1, r1, #1 - bl __aeabi_uidiv - add r1, r7, r7, asl #1 - mov r7, r7, lsr #4 - movw lr, #3528 - cmp r7, #79 - mov r1, r1, asr #2 - movw ip, #3524 - ldr r2, [sp, #8] - add r0, r0, #8 - ldr r3, [sp, #4] - strh r0, [r2] @ movhi - movw r0, #3526 - strh r1, [r4, r0] @ movhi - movw r1, #2974 - strh r7, [r4, r1] @ movhi - mov r6, r2 - movls r2, #80 - strlsh r2, [fp, r1] @ movhi - ldr r2, .L3563+4 - mov r1, #2000 - cmp r3, #2 - strh r1, [r4, lr] @ movhi - mov r1, #50 - strh r1, [r4, ip] @ movhi - mov r1, #256 - strh r1, [r8, #-4] @ movhi - mov r1, #48 - strh r1, [r8, #-2] @ movhi - add r1, r2, #572 - mov r0, #32 - strh r0, [r1] @ movhi - beq .L3494 - ldrb r3, [r2, #2944] @ zero_extendqisi2 - cmp r3, #0 - beq .L3495 -.L3494: - movw r2, #3524 - mov r0, #150 - strh r0, [r4, r2] @ movhi - mov r0, #12 - strh r0, [r1] @ movhi - mov r2, #64 - ldrb r1, [r4] @ zero_extendqisi2 - ldr r3, .L3563+4 - cmp r1, #0 - strh r2, [r8, #-2] @ movhi - add r2, r3, #572 - bne .L3497 - mov r1, #4 - strh r1, [r2] @ movhi - movw r2, #3528 - mov r1, #600 - strh r1, [r3, r2] @ movhi - mov r2, #128 - ldr r3, .L3563+32 - strh r2, [r3, #-4] @ movhi - b .L3497 -.L3495: - ldrb r3, [r2, #684] @ zero_extendqisi2 - cmp r3, #0 - strneh r0, [r2, ip] @ movhi - movne r3, #1200 - strneh r3, [r2, lr] @ movhi - ldrne r3, .L3563+32 - strneh r0, [r3, #-2] @ movhi -.L3497: - ldr r3, [r5] - tst r3, #4096 - beq .L3499 - ldr r0, .L3563+40 - mov r1, r9 - bl printk -.L3499: - ldr r3, [r5] - tst r3, #4096 - beq .L3500 - ldr r0, .L3563+44 - ldr r1, [r4, #2264] - bl printk -.L3500: - ldr r3, [r5] - tst r3, #4096 - beq .L3501 - ldr r0, .L3563+48 - ldr r1, [r4, #2268] - bl printk -.L3501: - ldr r3, [r5] - tst r3, #4096 - beq .L3502 - ldr r3, [sp, #12] - ldr r0, .L3563+52 - ldr r1, [r3, #-2492] - bl printk -.L3502: - ldr r3, [r5] - tst r3, #4096 - beq .L3503 - ldr r0, .L3563+56 - ldrh r1, [r10, #-8] - bl printk -.L3503: - ldr r3, [r5] - ldr r7, .L3563+60 - tst r3, #4096 - beq .L3504 - ldr r0, .L3563+64 - ldrh r1, [r7, #-4] - bl printk -.L3504: - ldr r3, [r5] - tst r3, #4096 - beq .L3505 - ldr r0, .L3563+68 - ldrh r1, [r8] - bl printk -.L3505: - ldr r3, [r5] - tst r3, #4096 - beq .L3506 - movw r3, #2974 - ldr r0, .L3563+72 - ldrh r1, [r4, r3] - bl printk -.L3506: - ldr r3, [r5] - tst r3, #4096 - beq .L3507 - ldr r0, .L3563+76 - ldrh r1, [r6] - bl printk -.L3507: - ldr r8, .L3563+80 - bl zbuf_init - mov r0, #6 - ldr r6, .L3563+84 - ldrh r3, [r8] - mul r0, r0, r3 - bl ftl_malloc - ldrb r3, [r4, #2964] @ zero_extendqisi2 - str r0, [r4, #524] - ldrh r0, [r6] - mul r0, r3, r0 - mov r0, r0, asl #2 - bl ftl_malloc - ldrb r3, [r4, #2964] @ zero_extendqisi2 - ldrh r1, [r6] - ldr r2, .L3563+88 - mul r1, r3, r1 - str r2, [r4, #3512] - add r3, r2, r1, asl #3 - str r3, [r4, #576] - str r0, [r4, #3516] - ldrh r0, [r8] - mov r0, r0, lsr #1 - add r1, r0, r1, asl #1 - ldr r0, [r5] - tst r0, #4096 - add r1, r2, r1, asl #2 - str r1, [r4, #580] - beq .L3508 - ldr r0, .L3563+92 - bl printk -.L3508: - ldrb r3, [r4, #2964] @ zero_extendqisi2 - ldrh r6, [r6] - ldrh r2, [r8] - ldrh r10, [r10, #-8] - mul r6, r3, r6 - ldr r3, [r5] - mov r10, r10, asl #2 - tst r3, #4096 - add r10, r10, r2, asl #2 - add r10, r10, #704 - add r6, r2, r6, asl #2 - mov r6, r6, asl #1 - add r6, r6, #632 - beq .L3509 - ldr r0, .L3563+96 - mov r1, r6 - mov r2, r10 - ldrh r3, [r7, #-4] - bl printk -.L3509: - ldrh r3, [r7, #-4] - cmp r10, r3 - cmpls r6, r3 - movhi r10, #1 - movls r10, #0 - bls .L3510 -.L3559: - b .L3559 -.L3510: - bl sblk_init - bl ftl_info_blk_init - cmn r0, #1 - beq .L3512 - bl ftl_ext_info_init - bl gc_init - mov r0, #1 - bl pm_init - bl lpa_rebuild_hash - ldr r0, [r4, #580] - mov r1, r10 - add r0, r0, #16 - bl ftl_open_sblk_recovery - ldr r1, [r4, #580] - add r0, r1, #48 - add r1, r1, #16 - bl ftl_open_sblk_recovery - ldr r2, [r4, #2288] - ldr r0, [r4, #580] - ldr r3, [r2, #8] - add r0, r0, #16 - add r3, r3, #16 - str r3, [r2, #8] - bl ftl_info_data_recovery - ldr r0, [r4, #580] - add r0, r0, #48 - bl ftl_info_data_recovery - ldr r0, [r4, #580] - add r0, r0, #80 - bl ftl_info_data_recovery - bl gc_recovery - bl pm_flush - mov r0, #1 - bl ftl_total_vpn_update - ldr r3, .L3563+100 - ldrb r3, [r3, #-2855] @ zero_extendqisi2 - cmp r3, #0 - ldrne r3, .L3563+4 - ldrne r2, [r3, #2288] - ldrne r3, [r2, #68] - addne r3, r3, #1 - strne r3, [r2, #68] - bl ftl_ext_info_flush - mov r0, #0 - bl ftl_info_flush - bl print_ftl_debug_info - mov r0, #0 -.L3512: - add sp, sp, #28 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3564: - .align 2 -.L3563: - .word .LANCHOR5 - .word .LANCHOR0 - .word .LANCHOR3 - .word .LC2 - .word .LC1 - .word .LANCHOR2 - .word .LANCHOR0+2928 - .word 1892352 - .word .LANCHOR3-3296 - .word .LANCHOR5-2480 - .word .LC238 - .word .LC239 - .word .LC240 - .word .LC241 - .word .LC242 - .word .LANCHOR5-2496 - .word .LC243 - .word .LC244 - .word .LC245 - .word .LC246 - .word .LANCHOR0+564 - .word .LANCHOR0+2960 - .word .LANCHOR4-2792 - .word .LC247 - .word .LC248 - .word .LANCHOR4 - .fnend - .size zftl_init, .-zftl_init - .align 2 - .global rk_ftl_init - .type rk_ftl_init, %function -rk_ftl_init: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, lr} - .save {r3, r4, r5, r6, r7, lr} - mov r0, #68 - ldr r3, .L3581 - mov r7, #0 - ldr r4, .L3581+4 - ldr r5, .L3581+8 - ldr r3, [r3] - str r7, [r4, #-3284] - strb r7, [r5, #-2486] - str r3, [r4, #-3288] - bl ftl_malloc - cmp r0, r7 - str r0, [r4, #-3280] - bne .L3566 -.L3568: - mvn r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3566: - mov r0, #2048 - bl ftl_malloc - mov r1, r5 - str r7, [r1, #-2480]! - str r7, [r4, #-3276] - str r0, [r5, #-2484] - ldr r0, .L3581+12 - bl rknand_get_reg_addr - ldr r3, [r4, #-3276] - cmp r3, #0 - beq .L3568 - bl rk_nandc_irq_init - mov r1, r7 - mov r2, r7 - mov r3, #2048 - ldr r0, [r5, #-2484] - bl flash_sram_load_store - bl rknand_flash_cs_init - ldr r3, [r4, #-3280] - ldr r2, .L3581+16 - ldr r0, [r4, #-3276] - str r2, [r3, #40] - ldr r2, .L3581+20 - str r2, [r3, #32] - ldr r2, .L3581+24 - str r2, [r3, #44] - ldr r2, .L3581+28 - str r2, [r3, #48] - ldr r2, .L3581+32 - str r2, [r3, #36] - ldr r2, .L3581+36 - str r2, [r3, #56] - ldr r2, .L3581+40 - str r2, [r3, #20] - ldr r2, .L3581+44 - str r2, [r3, #24] - ldr r2, .L3581+48 - str r2, [r3, #12] - ldr r2, .L3581+52 - str r2, [r3, #16] - ldr r2, .L3581+56 - str r2, [r3, #4] - ldr r2, .L3581+60 - str r2, [r3, #8] - ldr r2, .L3581+64 - str r2, [r3, #60] - ldr r2, .L3581+68 - str r2, [r3, #64] - ldr r2, .L3581+72 - str r2, [r3, #52] - ldr r2, .L3581+76 - str r2, [r3, #28] - bl nand_flash_init - subs r7, r0, #0 - bne .L3569 - bl zftl_init - mov r4, r0 - bl zftl_proc_debug_init - mov r3, #1 - strb r3, [r5, #-2486] - b .L3570 -.L3569: - ldr r3, [r4, #-3280] - mov r6, r4 - ldr r2, .L3581+80 - ldr r0, [r4, #-3276] - ldr r5, .L3581+84 - str r2, [r3, #40] - ldr r2, .L3581+88 - str r2, [r3, #32] - ldr r2, .L3581+92 - str r2, [r3, #44] - ldr r2, .L3581+96 - str r2, [r3, #48] - ldr r2, .L3581+100 - str r2, [r3, #36] - ldr r2, .L3581+104 - str r2, [r3, #56] - ldr r2, .L3581+108 - str r2, [r3, #20] - ldr r2, .L3581+112 - str r2, [r3, #24] - ldr r2, .L3581+116 - str r2, [r3, #12] - ldr r2, .L3581+120 - str r2, [r3, #16] - ldr r2, .L3581+124 - str r2, [r3, #4] - ldr r2, .L3581+128 - str r2, [r3, #8] - ldr r2, .L3581+132 - str r2, [r3, #60] - ldr r2, .L3581+136 - str r2, [r3, #64] - ldr r2, .L3581+140 - str r2, [r3, #52] - ldr r2, .L3581+144 - str r2, [r3, #28] - bl FlashInit - cmn r7, #2 - mov r4, r0 - bne .L3571 - ldr r1, .L3581+148 - mov r2, #32 - add r0, r5, #4 - bl ftl_memcpy - ldrb r0, [r5, #22] @ zero_extendqisi2 - bl flash_lsb_page_tbl_build - ldrh r3, [r5, #14] - strh r3, [r5, #30] @ movhi -.L3571: - ldr r3, .L3581+152 - ldr r2, [r3] - ldr r3, .L3581+156 - cmp r2, r3 - ldr r2, .L3581+160 - bne .L3572 - ldr r3, .L3581+164 - ldrb r3, [r3] @ zero_extendqisi2 - cmp r3, #0 - bne .L3573 -.L3572: - mov r3, #0 - strb r3, [r2, #590] - strb r3, [r2] -.L3573: - ldr r1, .L3581+168 - mov r0, #1 - ldrh ip, [r5, #14] - mov r3, #0 - str r3, [r6, #-3252] - ldrb r1, [r1] @ zero_extendqisi2 - strb r1, [r2, #588] - ldr r1, .L3581+172 - ldrb r1, [r1] @ zero_extendqisi2 - strb r1, [r2, #660] -.L3574: - cmp r0, ip - uxth r1, r3 - add r3, r3, #1 - movls r0, r0, asl #1 - bls .L3574 -.L3580: - ldr r3, .L3581+176 - sub r1, r1, #1 - strh r1, [r3] @ movhi - mov r3, #0 - cmp r4, r3 - strb r3, [r2, #623] - bne .L3570 - bl FtlInit - mov r4, r0 -.L3570: - mov r1, r4 - ldr r0, .L3581+180 - bl printk - mov r0, r4 - ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3582: - .align 2 -.L3581: - .word jiffies - .word .LANCHOR3 - .word .LANCHOR5 - .word .LANCHOR3-3276 - .word zftl_deinit - .word zftl_cache_flush - .word zftl_flash_suspend - .word zftl_flash_resume - .word zftl_get_density - .word zftl_read_flash_info - .word zftl_read - .word zftl_write - .word zftl_sys_read - .word zftl_sys_write - .word zftl_vendor_read - .word zftl_vendor_write - .word zftl_nandc_get_irq_status - .word zftl_proc_ftl_read - .word zftl_do_gc - .word zftl_discard - .word ftl_deinit - .word .LANCHOR2 - .word ftl_cache_flush - .word ftl_flash_suspend - .word ftl_flash_resume - .word ftl_get_density - .word ftl_read_flash_info - .word ftl_read - .word ftl_write - .word ftl_sys_read - .word ftl_sys_write - .word ftl_vendor_read - .word ftl_vendor_write - .word ftl_nandc_get_irq_status - .word ftl_proc_ftl_read - .word ftl_do_gc - .word ftl_discard - .word gNandParaInfo - .word g_nandc_version_data - .word 1446522928 - .word .LANCHOR0 - .word gFlashSlcMode - .word gNandFlashIDBEccBits - .word gNandFlashEccBits - .word .LANCHOR0+2928 - .word .LC249 - .fnend - .size rk_ftl_init, .-rk_ftl_init - .align 2 .global gc_update_l2p_map_new .type gc_update_l2p_map_new, %function gc_update_l2p_map_new: @@ -21284,184 +22263,185 @@ gc_update_l2p_map_new: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r3, #2962 - ldr r4, .L3619 .pad #28 sub sp, sp, #28 - ldr r5, [r4, #580] - ldrh r3, [r4, r3] + ldr r4, .L3803 + ldr r3, .L3803+4 + ldr r9, .L3803+8 + ldr r5, [r4, #1092] + ldrh r3, [r3, #-2] ldrb r2, [r5, #89] @ zero_extendqisi2 mul r3, r2, r3 - str r3, [sp, #4] - bl timer_get_time - ldr r3, .L3619+4 - ldr r3, [r3] + str r3, [sp] + ldr r3, [r9] tst r3, #256 - beq .L3584 - ldr r0, .L3619+8 + beq .L3768 + ldr r0, .L3803+12 ldrh r1, [r5, #80] bl printk -.L3584: +.L3768: ldrh r3, [r5, #80] - mov r7, #0 - ldr r2, [r4, #576] - mov r6, r7 - ldr r9, .L3619+12 + mov r8, #0 + ldr r6, .L3803+16 + mov r7, r8 + ldr r1, [r4, #1088] mov r3, r3, asl #1 - ldr r1, [sp, #4] - sub r1, r1, #1 - strh r1, [r2, r3] @ movhi -.L3585: - ldr r3, [sp, #4] - cmp r6, r3 - beq .L3618 - ldr r3, [r9, #-3316] - mov r8, r6, asl #2 - ldr r10, [r3, r6, asl #2] - cmn r10, #1 - beq .L3586 - ldrb r1, [r4, #2260] @ zero_extendqisi2 - mov r0, r10 + ldr r0, [sp] + ldrb r2, [r6, #477] @ zero_extendqisi2 + rsb r2, r2, r0 + strh r2, [r1, r3] @ movhi +.L3769: + ldr r3, [sp] + cmp r7, r3 + beq .L3802 + ldr r3, [r6, #-244] + mov r10, r7, asl #2 + ldr fp, [r3, r7, asl #2] + cmn fp, #1 + beq .L3770 + ldrb r1, [r4, #2772] @ zero_extendqisi2 + mov r0, fp mov r1, r1, asl #7 bl __aeabi_uidiv uxth r3, r0 str r3, [sp, #12] - ldr r3, .L3619+4 - ldr r3, [r3] + ldr r3, [r9] tst r3, #256 - beq .L3587 - ldr r0, .L3619+16 - mov r2, r10 + beq .L3771 + ldr r0, .L3803+20 + mov r2, fp ldr r1, [sp, #12] - mov r3, r6 + mov r3, r7 bl printk -.L3587: - str r6, [sp, #8] -.L3593: - ldr r3, [r9, #-3316] - ldr r10, [r3, r8] - cmn r10, #1 - beq .L3588 - ldrb r1, [r4, #2260] @ zero_extendqisi2 - mov r0, r10 +.L3771: + str r7, [sp, #8] +.L3777: + ldr r3, [r6, #-244] + ldr fp, [r3, r10] + cmn fp, #1 + beq .L3772 + ldrb r1, [r4, #2772] @ zero_extendqisi2 + mov r0, fp mov r1, r1, asl #7 bl __aeabi_uidiv ldr r3, [sp, #12] uxth r0, r0 cmp r0, r3 - bne .L3588 - ldr r3, [r9, #-3312] - mov r0, r10 - ldr fp, [r3, r8] + bne .L3772 + ldr r3, [r6, #-240] + mov r0, fp + ldr r3, [r3, r10] + str r3, [sp, #4] bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #20] - bne .L3589 - mov r0, r10 + bne .L3773 + mov r0, fp add r1, sp, #20 mov r2, #0 bl pm_log2phys -.L3589: +.L3773: ldr r3, [sp, #20] - cmp r3, fp - bne .L3590 - ldr r3, .L3619+12 + ldr r2, [sp, #4] + cmp r3, r2 + bne .L3774 + ldr r3, .L3803+16 add r1, sp, #24 + mov r0, fp mov r2, #1 - mov r0, r10 - add r7, r7, #1 - ldr r3, [r3, #-3308] - ldr r3, [r3, r8] + add r8, r8, #1 + ldr r3, [r3, #-236] + ldr r3, [r3, r10] str r3, [r1, #-8]! bl pm_log2phys - ldr r3, .L3619+20 - ldrb r1, [r4, #2930] @ zero_extendqisi2 + ldr r3, .L3803+24 ldrh r0, [r3] - ldrb r3, [r4, #676] @ zero_extendqisi2 - mov fp, fp, lsr r0 + ldrb r3, [r4, #1189] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r0, r3 + ldr r2, [sp, #4] + mov fp, r2, lsr r0 mvn r0, #0 bic r0, fp, r0, asl r3 + ldr r3, .L3803+16 + ldrb r1, [r3, #-3202] @ zero_extendqisi2 bl __aeabi_uidiv uxth r0, r0 - b .L3617 -.L3590: - ldr r2, .L3619+4 - ldr r2, [r2] + b .L3801 +.L3774: + ldr r2, [r9] tst r2, #256 - beq .L3592 - ldr r0, .L3619+24 - mov r1, r10 - mov r2, fp - bl printk -.L3592: - ldrh r0, [r5, #80] -.L3617: - bl ftl_vpn_decrement - ldr r3, [r9, #-3316] - mvn r2, #0 - str r2, [r3, r8] - bl timer_get_time -.L3588: - ldr r3, [sp, #8] - add r8, r8, #4 + beq .L3776 + ldr r0, .L3803+28 + mov r1, fp ldr r2, [sp, #4] + bl printk +.L3776: + ldrh r0, [r5, #80] +.L3801: + bl ftl_vpn_decrement + ldr r3, [r6, #-244] + mvn r2, #0 + str r2, [r3, r10] +.L3772: + ldr r3, [sp, #8] + add r10, r10, #4 + ldr r2, [sp] add r3, r3, #1 str r3, [sp, #8] cmp r3, r2 - bne .L3593 -.L3586: - add r6, r6, #1 - b .L3585 -.L3618: - ldr r3, .L3619+4 - ldr r3, [r3] + bne .L3777 +.L3770: + add r7, r7, #1 + b .L3769 +.L3802: + ldr r3, [r9] tst r3, #256 - beq .L3595 + beq .L3779 ldrh r3, [r5, #80] - ldr r1, [r4, #580] - ldr r2, [r4, #576] + ldr r1, [r4, #1092] + ldr r2, [r4, #1088] mov r3, r3, asl #1 - ldr r0, .L3619+28 + ldr r0, .L3803+32 ldrh r1, [r1, #80] ldrh r2, [r2, r3] - mov r3, r7 + mov r3, r8 bl printk -.L3595: +.L3779: ldrh r3, [r5, #80] - ldr r2, [r4, #576] + ldr r2, [r4, #1088] mov r3, r3, asl #1 ldrh r3, [r2, r3] - cmp r3, r7 - beq .L3596 - ldr r1, .L3619+32 - movw r2, #749 - ldr r0, .L3619+36 + cmp r3, r8 + beq .L3780 + ldr r1, .L3803+36 + movw r2, #898 + ldr r0, .L3803+40 bl printk bl dump_stack -.L3596: +.L3780: ldrh r3, [r5, #80] - ldr r2, [r4, #576] + ldr r2, [r4, #1088] mov r3, r3, asl #1 - strh r7, [r2, r3] @ movhi + strh r8, [r2, r3] @ movhi ldrh r0, [r5, #80] bl zftl_insert_data_list add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3620: +.L3804: .align 2 -.L3619: +.L3803: .word .LANCHOR0 + .word .LANCHOR3-3168 .word .LANCHOR2 - .word .LC250 + .word .LC246 .word .LANCHOR3 - .word .LC251 - .word .LANCHOR0+2928 - .word .LC252 - .word .LC253 - .word .LANCHOR1+1992 + .word .LC247 + .word .LANCHOR3-3204 + .word .LC248 + .word .LC249 + .word .LANCHOR1+2588 .word .LC0 .fnend .size gc_update_l2p_map_new, .-gc_update_l2p_map_new @@ -21470,134 +22450,158 @@ gc_update_l2p_map_new: .type gc_scan_src_blk_one_page, %function gc_scan_src_blk_one_page: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #12 mov r1, #0 - ldr r5, .L3651 - mov r0, r1 - ldr r4, .L3651+4 - movw ip, #65535 - ldrb r3, [r5, #2316] @ zero_extendqisi2 - ldrb lr, [r5, #2964] @ zero_extendqisi2 + ldr r6, .L3834 + .pad #20 + sub sp, sp, #20 + ldr r4, .L3834+4 + mov lr, r1 + ldr r5, .L3834+8 + movw r0, #65535 + ldrb r3, [r6, #2832] @ zero_extendqisi2 + ldrb ip, [r5, #-3195] @ zero_extendqisi2 add r2, r4, r3, asl #1 - ldrh r6, [r2, #36] + ldrh r7, [r2, #36] ldrh r2, [r4, #2] -.L3622: - cmp r6, ip - bne .L3649 +.L3806: + cmp r7, r0 + bne .L3832 add r3, r3, #1 uxtb r3, r3 - cmp r3, lr + cmp r3, ip addeq r2, r2, #1 moveq r3, #0 - moveq r0, #1 + moveq lr, #1 add r1, r4, r3, asl #1 uxtheq r2, r2 - ldrh r6, [r1, #36] + ldrh r7, [r1, #36] mov r1, #1 - b .L3622 -.L3649: - cmp r0, #0 + b .L3806 +.L3832: mov r0, #1 + cmp lr, #0 strneh r2, [r4, #2] @ movhi cmp r1, #0 - strneb r3, [r5, #2316] + strneb r3, [r6, #2832] bl buf_alloc - ldr r7, .L3651 - mov r10, #1 - ldr r8, .L3651+8 - mov r9, r0 -.L3627: - ldrb r2, [r5, #2318] @ zero_extendqisi2 - ldr fp, .L3651 - cmp r10, r2 - bgt .L3650 - ldrh r3, [r8] - cmp r2, #2 - mul r3, r3, r6 - beq .L3628 - cmp r2, #3 - ldrneh r2, [r4, #2] - addne r3, r3, r2 - bne .L3648 - ldrb r2, [r7, #684] @ zero_extendqisi2 - cmp r2, #0 - ldreqh r2, [r4, #2] - addeq r3, r3, r2 - orreq r3, r3, r10, asl #24 - beq .L3648 -.L3628: - ldrh r2, [r4, #2] - add r3, r3, r2, asl #1 - ldrb r2, [r5, #2937] @ zero_extendqisi2 + ldr r8, .L3834 + mov r9, #1 + ldr r10, .L3834+12 + mov fp, r0 +.L3811: + ldrb r3, [r6, #2834] @ zero_extendqisi2 + ldr r2, .L3834 + cmp r9, r3 + bgt .L3833 + ldrh r2, [r10] + cmp r3, #2 + mul r2, r2, r7 + bne .L3812 + ldrh r3, [r4, #2] + add r3, r2, r3, asl #1 + ldr r2, .L3834+8 sub r3, r3, #1 - add r3, r3, r10 + add r3, r3, r9 + ldrb r2, [r2, #-3196] @ zero_extendqisi2 + b .L3830 +.L3812: + cmp r3, #3 + ldrneh r1, [r4, #2] + addne r2, r2, r1 + bne .L3831 + ldrb r3, [r8, #1196] @ zero_extendqisi2 + cmp r3, #0 + bne .L3815 + ldrb r3, [r8, #1197] @ zero_extendqisi2 + cmp r3, #0 + beq .L3816 +.L3815: + ldrh r3, [r4, #2] + add r3, r3, r3, asl #1 + sub r3, r3, #1 + add r3, r3, r2 + ldrb r2, [r5, #-3196] @ zero_extendqisi2 + add r3, r3, r9 +.L3830: orr r3, r3, r2, asl #24 -.L3648: - str r3, [r9, #24] - mov r0, r9 + str r3, [fp, #24] + b .L3813 +.L3816: + ldrh r1, [r4, #2] + add r2, r2, r1 + orr r2, r2, r9, asl #24 +.L3831: + str r2, [fp, #24] +.L3813: + mov r0, fp mov r1, #1 bl sblk_read_page - ldr r3, [r9, #36] + ldr r3, [fp, #36] cmp r3, #512 cmnne r3, #1 - beq .L3633 - ldr r3, [r9, #12] - ldr fp, [r3, #4] - mov r0, fp + beq .L3818 + ldr r3, [fp, #12] + ldr r3, [r3, #4] + mov r0, r3 + str r3, [sp, #4] bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #4] - bne .L3634 - ldr r3, [r5, #2268] - cmp fp, r3 - bcs .L3634 - mov r0, fp - add r1, sp, #4 + str r0, [sp, #12] + ldr r3, [sp, #4] + bne .L3819 + ldr r2, [r6, #2784] + cmp r3, r2 + bcs .L3819 + mov r0, r3 + add r1, sp, #12 mov r2, #0 bl pm_log2phys -.L3634: - ldr r3, [r9, #24] - ldr r2, [sp, #4] +.L3819: + ldr r3, [fp, #24] + ldr r2, [sp, #12] cmp r3, r2 ldreqh r1, [r4, #20] - ldreq r2, [r5, #2932] + ldreq r2, [r5, #-3200] streq r3, [r2, r1, asl #2] ldreqh r3, [r4, #20] addeq r3, r3, #1 streqh r3, [r4, #20] @ movhi -.L3633: +.L3818: ldrh r3, [r4, #22] - add r10, r10, #1 + add r9, r9, #1 add r3, r3, #1 strh r3, [r4, #22] @ movhi - b .L3627 -.L3650: - mov r0, r9 + b .L3811 +.L3833: + mov r0, fp + str r2, [sp, #4] bl zbuf_free - ldrb r3, [fp, #2316] @ zero_extendqisi2 - ldrb r2, [fp, #2964] @ zero_extendqisi2 + ldrb r1, [r5, #-3195] @ zero_extendqisi2 + ldr r2, [sp, #4] + ldrb r3, [r2, #2832] @ zero_extendqisi2 add r3, r3, #1 uxtb r3, r3 - strb r3, [fp, #2316] - cmp r2, r3 + strb r3, [r2, #2832] + cmp r1, r3 ldreqh r3, [r4, #2] addeq r3, r3, #1 streqh r3, [r4, #2] @ movhi moveq r3, #0 - streqb r3, [fp, #2316] - add sp, sp, #12 + streqb r3, [r2, #2832] + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3652: +.L3835: .align 2 -.L3651: +.L3834: .word .LANCHOR0 - .word .LANCHOR0+2312 - .word .LANCHOR0+2994 + .word .LANCHOR0+2828 + .word .LANCHOR3 + .word .LANCHOR3-3142 .fnend .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page .align 2 @@ -21605,56 +22609,56 @@ gc_scan_src_blk_one_page: .type gc_scan_src_blk, %function gc_scan_src_blk: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r3, #2312 - ldr r4, .L3688 - .pad #20 - sub sp, sp, #20 + movw r3, #2828 + ldr r4, .L3888 + .pad #28 + sub sp, sp, #28 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - bne .L3654 - ldr r1, .L3688+4 - movw r2, #1236 - ldr r0, .L3688+8 + bne .L3837 + ldr r1, .L3888+4 + mov r2, #1504 + ldr r0, .L3888+8 bl printk bl dump_stack -.L3654: - movw r3, #2312 +.L3837: + movw r3, #2828 ldrh r1, [r4, r3] movw r3, #65535 cmp r1, r3 moveq r0, #0 - beq .L3655 - ldr r3, .L3688+12 + beq .L3838 + ldr r3, .L3888+12 ldr r3, [r3] tst r3, #256 - beq .L3656 - ldr r3, .L3688 - ldr r0, .L3688+16 - ldr r2, [r3, #576] + beq .L3839 + ldr r3, .L3888 + ldr r0, .L3888+16 + ldr r2, [r3, #1088] mov r3, r1, asl #1 ldrh r2, [r2, r3] bl printk -.L3656: - movw r7, #2312 +.L3839: + ldr r6, .L3888 + movw r7, #2828 bl timer_get_time ldrh r0, [r4, r7] - ldr r1, .L3688+20 + add r1, r6, #2864 + ldr r5, .L3888+20 bl ftl_get_blk_list_in_sblk - ldr r6, .L3688 - ldr r5, .L3688+24 uxtb r0, r0 - strb r0, [r4, #2317] + strb r0, [r4, #2833] cmp r0, #0 mvneq r3, #0 streqh r3, [r6, r7] @ movhi - beq .L3655 + beq .L3838 ldrh r3, [r6, r7] - ldr r2, [r6, #568] + ldr r2, [r6, #1080] add r2, r2, r3, asl #2 ldrb r2, [r2, #2] @ zero_extendqisi2 tst r2, #192 @@ -21664,225 +22668,335 @@ gc_scan_src_blk: cmp r1, #224 orreq r2, r2, #1 cmp r2, #0 - bne .L3658 - ldr r2, [r6, #580] + bne .L3841 + ldr r2, [r6, #1092] ldrh ip, [r2, #16] cmp ip, r3 - beq .L3658 + beq .L3841 ldrh ip, [r2, #48] cmp ip, r3 - beq .L3658 + beq .L3841 ldrh r2, [r2, #80] cmp r2, r3 - bne .L3659 -.L3658: + bne .L3842 +.L3841: cmp r1, #0 - bne .L3660 - ldr r2, [r4, #576] + bne .L3843 + ldr r2, [r4, #1088] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3661 - ldr r1, .L3688+4 - movw r2, #1256 - ldr r0, .L3688+8 + beq .L3844 + ldr r1, .L3888+4 + movw r2, #1529 + ldr r0, .L3888+8 bl printk bl dump_stack -.L3661: - movw r3, #2312 - ldr r2, [r4, #576] +.L3844: + movw r3, #2828 + ldr r2, [r4, #1088] ldrh r3, [r4, r3] mov r1, #0 mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi -.L3660: - movw r3, #2312 +.L3843: + movw r3, #2828 mvn r2, #0 mov r0, #0 strh r2, [r4, r3] @ movhi strh r0, [r5, #20] @ movhi - b .L3655 -.L3659: + b .L3838 +.L3842: add r0, r5, r0, asl #1 movw r3, #65535 - ldrh r6, [r0, #34] - cmp r6, r3 - bne .L3662 - ldr r1, .L3688+4 - mov r2, #1264 - ldr r0, .L3688+8 + ldrh r10, [r0, #34] + cmp r10, r3 + bne .L3845 + ldr r1, .L3888+4 + movw r2, #1539 + ldr r0, .L3888+8 bl printk bl dump_stack -.L3662: - movw r3, #2994 - ldr r2, .L3688 - ldrh r3, [r4, r3] - add r8, r2, #2960 - mul r6, r3, r6 - movw r3, #2312 - ldrh r1, [r4, r3] - ldrh fp, [r8] - ldr r3, [r4, #568] - sub fp, fp, #1 - add r3, r3, r1, asl #2 - uxth r7, fp - ldrb fp, [r3, #2] @ zero_extendqisi2 - and r9, fp, #224 - cmp r9, #160 - movne fp, #1 - bne .L3663 - ldrb r3, [r2, #2937] @ zero_extendqisi2 - cmp r3, #2 - uxth fp, r3 - orr r6, r6, r3, asl #24 - movweq r3, #2962 - ldreqh r7, [r2, r3] - ldrb r3, [r4, #684] @ zero_extendqisi2 +.L3845: + movw r2, #2828 + ldr r6, .L3888+24 + ldrh r1, [r4, r2] + ldr r2, [r4, #1080] + sub r9, r6, #3168 + sub r3, r6, #3136 + str r6, [sp, #4] + add r2, r2, r1, asl #2 + ldrh r7, [r9, #-4] + ldrh r3, [r3, #-6] + ldrb r8, [r2, #2] @ zero_extendqisi2 + sub r7, r7, #1 + and r8, r8, #224 + uxth r7, r7 + cmp r8, #160 + mul r3, r3, r10 + movne r8, #1 + bne .L3846 + ldrb r2, [r6, #-3196] @ zero_extendqisi2 + cmp r2, #2 + uxth r8, r2 + orr r3, r3, r2, asl #24 + ldreqh r7, [r9, #-2] + ldrb r2, [r4, #1196] @ zero_extendqisi2 subeq r7, r7, #1 uxtheq r7, r7 - cmp r3, #0 - ldrne r2, .L3688 - movwne r3, #2962 - ldrneh r7, [r2, r3] - subne r7, r7, #1 - uxthne r7, r7 -.L3663: + cmp r2, #0 + bne .L3848 + ldr r2, .L3888 + ldrb r2, [r2, #1197] @ zero_extendqisi2 + cmp r2, #0 + beq .L3846 +.L3848: + ldrh r7, [r9, #-2] + sub r7, r7, #1 + uxth r7, r7 +.L3846: mov r0, #1 - mov r10, #0 - strb fp, [r4, #2318] - orr r6, r7, r6 - strh r10, [r5, #2] @ movhi - strb r10, [r4, #2316] - strh r10, [r5, #22] @ movhi - strh r10, [r5, #24] @ movhi + mov fp, #0 + orr r7, r7, r3 + strb r8, [r4, #2834] + strh fp, [r5, #2] @ movhi + strb fp, [r4, #2832] + strh fp, [r5, #22] @ movhi + strh fp, [r5, #24] @ movhi bl buf_alloc mov r1, #1 - ldr r9, .L3688 - str r6, [r0, #24] - mov r7, r0 + mov r6, r0 + str r7, [r0, #24] bl sblk_read_page - movw r3, #2962 - ldrh r2, [r4, r3] - mov r1, #255 - ldrb r3, [r4, #2964] @ zero_extendqisi2 - ldr r0, [r4, #2932] - mul r2, r3, r2 - mov r2, r2, asl #2 - bl ftl_memset - ldr r6, [r7, #36] - strh r10, [r5, #20] @ movhi - cmn r6, #1 - cmpne r6, #512 - moveq r6, #1 - movne r6, #0 - beq .L3686 - ldr r3, [r7, #12] + ldr r3, [r6, #36] + strh fp, [r5, #20] @ movhi + cmn r3, #1 + cmpne r3, #512 + beq .L3885 + ldr r3, [r6, #12] + ldr lr, .L3888+28 ldr r2, [r3] - ldr r3, .L3688+28 - cmp r2, r3 - beq .L3666 - ldr r1, .L3688+4 - movw r2, #1299 - ldr r0, .L3688+8 + str lr, [sp, #12] + cmp r2, lr + beq .L3850 + ldr r0, .L3888+8 + movw r2, #1577 + ldr r1, .L3888+4 +.L3886: bl printk bl dump_stack -.L3686: - mov r0, r7 +.L3885: + mov r0, r6 bl zbuf_free + b .L3883 +.L3850: + ldr r1, [sp, #4] + ldrh r0, [r9, #-4] + ldr r2, .L3888+24 + ldrb fp, [r1, #-3195] @ zero_extendqisi2 + sub r1, r2, #3168 + smulbb r0, r0, fp + smulbb r0, r0, r8 + uxth r0, r0 + str r0, [sp, #8] + ldr r0, [sp, #4] + ldrb r0, [r0, #477] @ zero_extendqisi2 + cmp r8, #3 + cmpeq r0, #2 + bne .L3851 + ldrh r8, [r1, #-2] + movw r3, #474 + ldrh r0, [r2, r3] + ldr r3, [r2, #-3200] + mov r8, r8, asl #2 + ldr r1, [r6, #4] + smulbb r8, r8, fp + rsb r8, r0, r8 + mov r0, r0, lsr #2 + uxth r8, r8 + add r0, r3, r0, asl #2 + mov r2, r8 + bl ftl_memcpy + ldr r3, [r6, #12] + ldr fp, [r3, #4] + cmp fp, #0 + beq .L3852 + ldr r0, [r6, #4] + mov r1, r8 + bl js_hash + cmp fp, r0 + beq .L3852 + mov r0, r6 + bl zbuf_free + ldr r3, [r6, #12] + ldr r0, .L3888+32 + ldr r2, [r6, #24] + ldr r1, [r3, #4] + mov r3, r8 + b .L3884 +.L3852: + ldrb r3, [r4, #1196] @ zero_extendqisi2 + cmp r3, #0 + bne .L3853 + ldr r3, .L3888 + ldrb r3, [r3, #1197] @ zero_extendqisi2 + cmp r3, #0 + beq .L3854 +.L3853: + sub r7, r7, #1 + b .L3855 +.L3854: + ldr r3, .L3888+36 + ldrh r7, [r9, #-4] + ldrh r3, [r3, #-6] + sub r7, r7, #1 + uxth r7, r7 + mul r10, r3, r10 + orr r7, r7, #33554432 + orr r7, r7, r10 +.L3855: + str r7, [r6, #24] + mov r0, r6 + mov r1, #1 + bl sblk_read_page + ldr r3, [r6, #36] + cmn r3, #1 + cmpne r3, #512 + beq .L3885 + ldr r3, [r6, #12] + ldr r2, [sp, #12] + ldr r3, [r3] + cmp r3, r2 + ldrne r0, .L3888+8 + movwne r2, #1618 + ldrne r1, .L3888+4 + bne .L3886 +.L3857: + ldr r3, [sp, #4] + ldr r2, [sp, #4] + ldr r1, [r6, #4] + ldr r0, [r3, #-3200] + movw r3, #474 + ldrh r2, [r2, r3] + b .L3882 +.L3851: + ldr r8, [r3, #4] + ldr r3, [sp, #8] + ldr r0, [r6, #4] + str r2, [sp, #12] + mov r7, r3, asl #2 + mov r1, r7 + bl js_hash + ldr r2, [sp, #12] + cmp r8, r0 + ldreq r1, [r6, #4] + ldreq r0, [r2, #-3200] + moveq r2, r7 + beq .L3882 + mov r0, r6 + bl zbuf_free + ldr r3, [r6, #12] + ldr r0, .L3888+32 + ldr r2, [r6, #24] + ldr r1, [r3, #4] + mov r3, r7 +.L3884: + bl printk +.L3883: mvn r0, #0 - b .L3655 -.L3666: - ldrh r3, [r8] - ldrb r2, [r9, #2964] @ zero_extendqisi2 - ldr r8, [r7, #4] - ldr r10, .L3688+24 - smulbb r3, r2, r3 - sub r8, r8, #4 - smulbb r3, r3, fp - mov fp, #1 - uxth r3, r3 - str r3, [sp] -.L3667: - ldr r3, [sp] - cmp r6, r3 - bge .L3687 - ldr r0, [r8, #4]! + b .L3838 +.L3882: + bl ftl_memcpy + ldr r10, .L3888+24 + ldr fp, .L3888+40 + mov r8, #0 + ldr r9, .L3888+20 + ldr r3, [sp, #4] + ldr r7, [r3, #-3200] + sub r7, r7, #4 +.L3860: + ldr r3, [sp, #8] + cmp r8, r3 + bge .L3887 + ldr r0, [r7, #4]! cmn r0, #1 - beq .L3669 + beq .L3862 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #12] - bne .L3670 - ldr r0, [r8] - add r1, sp, #12 + str r0, [sp, #20] + bne .L3863 + ldr r0, [r7] + add r1, sp, #20 mov r2, #0 bl pm_log2phys -.L3670: - ldr r3, .L3688+32 - ldr r2, [sp, #12] - ldrb r1, [r4, #2930] @ zero_extendqisi2 - ldrh r0, [r3] - ldrb r3, [r4, #676] @ zero_extendqisi2 - str r2, [sp, #4] +.L3863: + ldr r2, [sp, #20] + mvn r1, #0 + ldrb r3, [r4, #1189] @ zero_extendqisi2 + ldrh r0, [fp] rsb r3, r3, #24 + str r2, [sp, #12] rsb r3, r0, r3 - mov r3, fp, asl r3 - sub r3, r3, #1 - and r0, r3, r2, lsr r0 + mov r0, r2, lsr r0 + bic r0, r0, r1, asl r3 + ldr r3, [sp, #4] + ldrb r1, [r3, #-3202] @ zero_extendqisi2 bl __aeabi_uidiv ldrh r3, [r5] cmp r0, r3 - ldr r2, [sp, #4] - ldreq r3, [r9, #2932] - ldreqh r1, [r10, #20] + ldr r2, [sp, #12] + ldreq r3, [r10, #-3200] + ldreqh r1, [r9, #20] streq r2, [r3, r1, asl #2] - ldreqh r3, [r10, #20] + ldreqh r3, [r9, #20] addeq r3, r3, #1 - streqh r3, [r10, #20] @ movhi -.L3669: + streqh r3, [r9, #20] @ movhi +.L3862: bl timer_get_time - add r6, r6, #1 - b .L3667 -.L3687: - mov r0, r7 + add r8, r8, #1 + b .L3860 +.L3887: + mov r0, r6 bl zbuf_free - movw r3, #2312 + movw r3, #2828 ldrh r1, [r4, r3] - ldr r2, [r4, #576] + ldr r2, [r4, #1088] mov r3, r1, asl #1 ldrh r2, [r2, r3] ldrh r3, [r5, #20] cmp r2, r3 - beq .L3673 - ldr r0, .L3688+36 + beq .L3866 + ldr r0, .L3888+44 bl printk -.L3673: - movw r3, #2312 +.L3866: + movw r3, #2828 ldrh r1, [r5, #20] ldrh r3, [r4, r3] - ldr r2, [r4, #576] + ldr r2, [r4, #1088] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi mov r3, #0 ldrh r0, [r5, #20] strh r3, [r5, #24] @ movhi -.L3655: - add sp, sp, #20 +.L3838: + add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3689: +.L3889: .align 2 -.L3688: +.L3888: .word .LANCHOR0 - .word .LANCHOR1+2016 + .word .LANCHOR1+2612 .word .LC0 .word .LANCHOR2 - .word .LC254 - .word .LANCHOR0+2348 - .word .LANCHOR0+2312 + .word .LC250 + .word .LANCHOR0+2828 + .word .LANCHOR3 .word -178307901 - .word .LANCHOR0+2928 - .word .LC255 + .word .LC251 + .word .LANCHOR3-3136 + .word .LANCHOR3-3204 + .word .LC252 .fnend .size gc_scan_src_blk, .-gc_scan_src_blk .align 2 @@ -21892,74 +23006,76 @@ gc_scan_static_data: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - .pad #8 - ldr r4, .L3707 - ldr r3, [r4, #580] + stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} + .pad #12 + ldr r4, .L3907 + ldr r3, [r4, #1092] ldr r2, [r3, #544] cmn r2, #1 - beq .L3691 - mov r5, #11 - mov r6, r4 -.L3692: - ldr r3, [r4, #580] + beq .L3891 + mov r5, #0 + mov r7, r4 +.L3892: + ldr r3, [r4, #1092] add r1, sp, #4 mov r2, #0 + uxth r6, r5 ldr r0, [r3, #544] bl pm_log2phys ldr r3, [sp, #4] cmn r3, #1 - beq .L3693 + beq .L3893 mov r0, #1 bl buf_alloc mov r1, #1 ldr r3, [sp, #4] - mov r7, r0 + mov r8, r0 str r3, [r0, #24] bl sblk_read_page - ldr r3, [r7, #36] + ldr r3, [r8, #36] cmp r3, #256 - bne .L3694 - ldr r3, .L3707+4 - mov r8, #1 + bne .L3894 + ldr r3, .L3907+4 + mov r9, #1 ldr r0, [sp, #4] - ldrb r1, [r6, #2930] @ zero_extendqisi2 ldrh r2, [r3] - ldrb r3, [r6, #676] @ zero_extendqisi2 + ldrb r3, [r7, #1189] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r2, r3 - mov r3, r8, asl r3 + mov r3, r9, asl r3 sub r3, r3, #1 and r0, r3, r0, lsr r2 + ldr r3, .L3907+8 + ldrb r1, [r3, #-3202] @ zero_extendqisi2 bl __aeabi_uidiv - mov r1, r8 + mov r1, r9 mov r2, #0 uxth r0, r0 bl gc_add_sblk -.L3694: - ldr r2, [r7, #12] - ldr r3, [r4, #580] +.L3894: + ldr r2, [r8, #12] + ldr r3, [r4, #1092] ldr r2, [r2, #4] ldr r3, [r3, #544] cmp r2, r3 - beq .L3695 - ldr r1, .L3707+8 - movw r2, #1738 - ldr r0, .L3707+12 + beq .L3895 + ldr r1, .L3907+12 + movw r2, #2162 + ldr r0, .L3907+16 bl printk bl dump_stack -.L3695: - mov r0, r7 +.L3895: + mov r0, r8 bl zbuf_free -.L3693: - ldr r3, [r4, #580] - ldr r1, [r4, #2268] +.L3893: + ldr r3, [r4, #1092] + ldr r1, [r4, #2784] ldr r2, [r3, #544] add r2, r2, #1 str r2, [r3, #544] cmp r2, r1 - bcc .L3696 + bcc .L3896 mvn r2, #0 str r2, [r3, #544] ldr r2, [r3, #548] @@ -21970,48 +23086,51 @@ gc_scan_static_data: bl ftl_ext_info_flush mov r0, #0 bl ftl_info_flush - b .L3690 -.L3696: + b .L3890 +.L3896: ldr r3, [sp, #4] cmn r3, #1 - bne .L3690 - sub r5, r5, #1 - uxth r5, r5 - cmp r5, #0 - bne .L3692 - b .L3690 -.L3691: + bne .L3890 + ldr r3, .L3907+20 + add r5, r5, #1 + ldrh r3, [r3] + cmp r6, r3, lsr #2 + bcc .L3892 + b .L3890 +.L3891: ldr r2, [r3, #536] ldr r1, [r3, #12] add r2, r2, #12910592 add r2, r2, #49408 cmp r1, r2 - bhi .L3701 - ldr r0, [r4, #2288] + bhi .L3901 + ldr r0, [r4, #2804] ldr r2, [r3, #540] ldr r0, [r0, #44] add r2, r2, #4992 add r2, r2, #8 cmp r0, r2 - bls .L3690 -.L3701: - ldr r2, [r4, #2288] + bls .L3890 +.L3901: + ldr r2, [r4, #2804] ldr r2, [r2, #44] str r1, [r3, #536] str r2, [r3, #540] mov r2, #0 str r2, [r3, #544] -.L3690: - add sp, sp, #8 +.L3890: + add sp, sp, #12 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3708: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L3908: .align 2 -.L3707: +.L3907: .word .LANCHOR0 - .word .LANCHOR0+2928 - .word .LANCHOR1+2032 + .word .LANCHOR3-3204 + .word .LANCHOR3 + .word .LANCHOR1+2628 .word .LC0 + .word .LANCHOR3+474 .fnend .size gc_scan_static_data, .-gc_scan_static_data .align 2 @@ -22023,53 +23142,53 @@ gc_block_vpn_scan: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + movw r4, #1076 + ldr r5, .L3947 .pad #44 sub sp, sp, #44 - ldr r4, .L3747 - add r5, r4, #564 - ldr r2, [r4, #580] - ldrh r3, [r5] + ldr r2, [r5, #1092] + ldrh r3, [r5, r4] ldr r2, [r2, #608] cmp r2, r3 - bcs .L3709 + bcs .L3909 bl timer_get_time - ldr r6, [r4, #580] + ldr r6, [r5, #1092] ldr r3, [r6, #604] add r3, r3, #29952 add r3, r3, #48 cmp r0, r3 - bls .L3709 + bls .L3909 bl timer_get_time - ldr r3, [r4, #580] - ldrh r1, [r5] + ldr r3, [r5, #1092] + ldrh r1, [r5, r4] str r0, [r6, #604] ldr r2, [r3, #600] cmp r2, r1 - bcs .L3713 - ldr r1, [r4, #2288] + bcs .L3913 + ldr r1, [r5, #2804] ldrh r1, [r1, #134] cmp r2, r1 - bcs .L3714 -.L3713: - ldr r2, [r4, #2288] + bcs .L3914 +.L3913: + ldr r2, [r5, #2804] ldrh r2, [r2, #134] str r2, [r3, #600] -.L3714: - ldr r5, [r3, #600] +.L3914: + ldr r4, [r3, #600] movw r3, #65535 - uxth r5, r5 - cmp r5, r3 - bne .L3715 - ldr r1, .L3747+4 - movw r2, #2035 - ldr r0, .L3747+8 + uxth r4, r4 + cmp r4, r3 + bne .L3915 + ldr r1, .L3947+4 + movw r2, #2503 + ldr r0, .L3947+8 bl printk bl dump_stack -.L3715: - ldr r3, [r4, #580] - mov r0, r5 +.L3915: + ldr r3, [r5, #1092] + mov r0, r4 add r1, sp, #24 - ldr r6, .L3747 + ldr r6, .L3947 ldr r2, [r3, #600] add r2, r2, #1 str r2, [r3, #600] @@ -22079,10 +23198,10 @@ gc_block_vpn_scan: bl ftl_get_blk_list_in_sblk uxth r0, r0 cmp r0, #0 - beq .L3709 - ldr r8, [r6, #568] - add r8, r8, r5, asl #2 - ldrb r3, [r8, #2] @ zero_extendqisi2 + beq .L3909 + ldr r9, [r6, #1080] + add r9, r9, r4, asl #2 + ldrb r3, [r9, #2] @ zero_extendqisi2 tst r3, #192 and r2, r3, #224 moveq r3, #1 @@ -22090,190 +23209,193 @@ gc_block_vpn_scan: cmp r2, #224 orreq r3, r3, #1 cmp r3, #0 - bne .L3716 - ldr r3, [r6, #580] + bne .L3916 + ldr r3, [r6, #1092] ldrh r1, [r3, #16] - cmp r1, r5 - beq .L3716 + cmp r1, r4 + beq .L3916 ldrh r1, [r3, #48] - cmp r1, r5 - beq .L3716 + cmp r1, r4 + beq .L3916 ldrh r3, [r3, #80] - cmp r3, r5 - bne .L3717 -.L3716: + cmp r3, r4 + bne .L3917 +.L3916: cmp r2, #0 - bne .L3709 - ldr r3, [r4, #576] - mov r5, r5, asl #1 - ldrh r3, [r3, r5] + bne .L3909 + ldr r3, [r5, #1088] + mov r4, r4, asl #1 + ldrh r3, [r3, r4] cmp r3, #0 - beq .L3718 - ldr r1, .L3747+4 - movw r2, #2051 - ldr r0, .L3747+8 + beq .L3918 + ldr r1, .L3947+4 + movw r2, #2520 + ldr r0, .L3947+8 bl printk bl dump_stack -.L3718: - ldr r3, [r4, #576] +.L3918: + ldr r3, [r5, #1088] mov r2, #0 - strh r2, [r3, r5] @ movhi - b .L3709 -.L3717: + strh r2, [r3, r4] @ movhi + b .L3909 +.L3917: add r3, sp, #40 add r0, r3, r0, asl #1 movw r3, #65535 - ldrh r10, [r0, #-18] - cmp r10, r3 - bne .L3720 - ldr r1, .L3747+4 - movw r2, #2057 - ldr r0, .L3747+8 + ldrh fp, [r0, #-18] + cmp fp, r3 + bne .L3920 + ldr r1, .L3947+4 + mov r2, #2528 + ldr r0, .L3947+8 bl printk bl dump_stack -.L3720: - ldr r1, .L3747 - movw r3, #2994 - ldrb r2, [r8, #2] @ zero_extendqisi2 - add fp, r1, #2960 - ldrh r6, [fp] - sub r9, r6, #1 - ldrh r6, [r4, r3] - uxth r7, r9 - mul r6, r6, r10 - and r10, r2, #224 - cmp r10, #160 - movne r10, #1 - bne .L3721 - ldrb r3, [r1, #2937] @ zero_extendqisi2 +.L3920: + ldr r6, .L3947+12 + sub r10, r6, #3168 + ldrh r3, [r10, #-4] + sub r7, r3, #1 + sub r3, r6, #3136 + uxth r8, r7 + ldrb r7, [r9, #2] @ zero_extendqisi2 + ldrh r2, [r3, #-6] + and r7, r7, #224 + cmp r7, #160 + mul r2, r2, fp + movne fp, #1 + bne .L3921 + ldrb r3, [r6, #-3196] @ zero_extendqisi2 cmp r3, #2 - uxth r10, r3 - orr r6, r6, r3, asl #24 - movweq r3, #2962 - ldreqh r7, [r1, r3] - subeq r7, r7, #1 - uxtheq r7, r7 -.L3721: + uxth fp, r3 + orr r2, r2, r3, asl #24 + ldreqh r8, [r10, #-2] + subeq r8, r8, #1 + uxtheq r8, r8 +.L3921: mov r0, #1 - orr r6, r7, r6 + orr r7, r8, r2 bl buf_alloc mov r1, #1 - ldr r9, .L3747 - str r6, [r0, #24] - mov r7, r0 + str r7, [r0, #24] + mov r8, r0 bl sblk_read_page - movw r3, #2962 - ldrh r2, [r4, r3] + ldrh r2, [r10, #-2] + ldrb r3, [r6, #-3195] @ zero_extendqisi2 mov r1, #255 - ldrb r3, [r4, #2964] @ zero_extendqisi2 - ldr r0, [r4, #2932] + ldr r7, .L3947+12 + ldr r0, [r6, #-3200] mul r2, r3, r2 + sub ip, r7, #3168 mov r2, r2, asl #2 + str ip, [sp, #12] bl ftl_memset - ldr r2, [r7, #36] + ldr r2, [r8, #36] cmn r2, #1 cmpne r2, #512 moveq r2, #1 movne r2, #0 - moveq r0, r5 + moveq r0, r4 moveq r1, #1 moveq r2, #0 - beq .L3745 - ldr r3, [r7, #12] + ldr ip, [sp, #12] + beq .L3945 + ldr r3, [r8, #12] ldr r1, [r3] - ldr r3, .L3747+12 + ldr r3, .L3947+16 cmp r1, r3 - beq .L3723 - mov r0, r5 + beq .L3923 + mov r0, r4 mov r1, #1 -.L3745: +.L3945: bl gc_add_sblk - mov r0, r7 + mov r0, r8 bl zbuf_free - b .L3709 -.L3723: - ldrb r3, [r9, #2964] @ zero_extendqisi2 - add r9, r9, #2928 - ldrh fp, [fp] - mov r6, r2 + b .L3909 +.L3923: + ldrb r1, [r7, #-3195] @ zero_extendqisi2 + mov r7, r2 + ldrh r3, [ip, #-4] + ldr r10, [r8, #4] + smulbb r3, r1, r3 smulbb fp, r3, fp - smulbb fp, fp, r10 - ldr r10, [r7, #4] uxth r3, fp mov fp, r2 str r3, [sp, #12] -.L3724: +.L3924: ldr r3, [sp, #12] cmp fp, r3 - bge .L3746 + bge .L3946 ldr r0, [r10, fp, asl #2] cmn r0, #1 - beq .L3725 + beq .L3925 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #20] - bne .L3726 + bne .L3926 ldr r0, [r10, fp, asl #2] add r1, sp, #20 mov r2, #0 bl pm_log2phys -.L3726: - ldrb r2, [r4, #676] @ zero_extendqisi2 - mov r3, #1 - ldrh r1, [r9] - rsb r2, r2, #24 +.L3926: + ldr r3, .L3947+20 + ldrb r2, [r5, #1189] @ zero_extendqisi2 ldr r0, [sp, #20] + ldrh r1, [r3] + rsb r2, r2, #24 + mov r3, #1 rsb r2, r1, r2 mov r2, r3, asl r2 sub r2, r2, #1 and r0, r2, r0, lsr r1 - ldrb r1, [r4, #2930] @ zero_extendqisi2 + ldrb r1, [r6, #-3202] @ zero_extendqisi2 bl __aeabi_uidiv - cmp r0, r5 - addeq r6, r6, #1 - uxtheq r6, r6 -.L3725: + cmp r0, r4 + addeq r7, r7, #1 + uxtheq r7, r7 +.L3925: add fp, fp, #1 - b .L3724 -.L3746: - mov r0, r7 - mov r7, r5, asl #1 + b .L3924 +.L3946: + mov r0, r8 + mov r6, r4, asl #1 bl zbuf_free - ldr r3, .L3747+16 + ldr r3, .L3947+24 ldr r3, [r3] tst r3, #256 - beq .L3728 - ldr r3, [r4, #576] - mov r1, r5 - ldr r0, .L3747+20 - ldrh r2, [r3, r7] - ldrb r3, [r8, #2] @ zero_extendqisi2 + beq .L3928 + ldr r3, [r5, #1088] + mov r1, r4 + ldr r0, .L3947+28 + ldrh r2, [r3, r6] + ldrb r3, [r9, #2] @ zero_extendqisi2 mov r3, r3, lsr #5 str r3, [sp] - mov r3, r6 + mov r3, r7 bl printk -.L3728: - ldr r3, [r4, #576] - cmp r6, #31 - strh r6, [r3, r7] @ movhi - bhi .L3709 - mov r0, r5 +.L3928: + ldr r3, [r5, #1088] + cmp r7, #31 + strh r7, [r3, r6] @ movhi + bhi .L3909 + mov r0, r4 mov r1, #1 mov r2, #0 bl gc_add_sblk -.L3709: +.L3909: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3748: +.L3948: .align 2 -.L3747: +.L3947: .word .LANCHOR0 - .word .LANCHOR1+2052 + .word .LANCHOR1+2648 .word .LC0 + .word .LANCHOR3 .word -178307901 + .word .LANCHOR3-3204 .word .LANCHOR2 - .word .LC256 + .word .LC253 .fnend .size gc_block_vpn_scan, .-gc_block_vpn_scan .align 2 @@ -22286,12 +23408,12 @@ ftl_sblk_dump: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r0, asl #2 - ldr r6, .L3785 + ldr r6, .L3987 .pad #132 sub sp, sp, #132 mov r7, r0 - str r1, [sp, #64] - ldr r2, [r6, #568] + str r1, [sp, #56] + ldr r2, [r6, #1080] add r3, r2, fp ldrh r1, [r2, fp] ldrb r3, [r3, #2] @ zero_extendqisi2 @@ -22300,124 +23422,135 @@ ftl_sblk_dump: ldr r10, [r2, r0, asl #2] mov r1, r7 mov r2, r3, lsr #5 - ldr r0, .L3785+4 + ldr r0, .L3987+4 ubfx r3, r3, #3, #2 ubfx r4, r10, #11, #8 str r4, [sp, #4] bl printk movw r3, #65535 cmp r7, r3 - beq .L3771 - add r3, r6, #564 - ldrh r3, [r3] + beq .L3972 + movw r3, #1076 + ldrh r3, [r6, r3] cmp r3, r7 - bls .L3771 - ldr r3, [r6, #568] + bls .L3972 + ldr r3, [r6, #1080] add r1, sp, #112 mov r0, r7 strh r7, [sp, #96] @ movhi add r3, r3, fp - ldr r4, .L3785+8 + ldr r4, .L3987+8 mov r5, #0 ldrb r3, [r3, #2] @ zero_extendqisi2 - sub r9, r4, #2960 + mov r9, r5 and r3, r3, #224 cmp r3, #160 - ldreqb r10, [r6, #2937] @ zero_extendqisi2 + ldreq r3, .L3987+12 movne r10, #1 + ldreqb r10, [r3, #-3196] @ zero_extendqisi2 bl ftl_get_blk_list_in_sblk - ldrh r3, [r4] + mov r2, r4 mov r1, r7 + ldrh r3, [r2, #-4]! uxtb r0, r0 strh r5, [sp, #98] @ movhi strb r0, [sp, #105] smulbb r3, r3, r0 strb r5, [sp, #101] + str r2, [sp, #60] strh r5, [sp, #106] @ movhi strh r3, [sp, #102] @ movhi - ldr r3, [r6, #568] + ldr r3, [r6, #1080] add r3, r3, fp ldrb r2, [r3, #2] @ zero_extendqisi2 mov r3, r10 str r0, [sp] - ldr r0, .L3785+12 + ldr r0, .L3987+16 mov r2, r2, lsr #5 bl printk mov r0, #1 bl buf_alloc + add r3, r4, #3168 mov r6, r0 + str r5, [sp, #40] str r5, [sp, #48] - str r5, [sp, #56] - str r5, [sp, #44] -.L3752: - ldr r4, .L3785 + str r3, [sp, #68] +.L3952: + ldr r3, [sp, #60] uxth r2, r5 - str r2, [sp, #52] - add r3, r4, #2960 + str r2, [sp, #44] ldrh r3, [r3] cmp r3, r2 - bls .L3768 + bls .L3969 mov r3, r2, asl #1 add r2, r3, r2 sub r3, r3, #1 str r3, [sp, #72] mov r3, #0 sub r2, r2, #1 - str r2, [sp, #68] -.L3783: - str r3, [sp, #60] + str r2, [sp, #64] +.L3985: + str r3, [sp, #52] ldrb r2, [sp, #105] @ zero_extendqisi2 - ldrh r3, [sp, #60] + ldrh r3, [sp, #52] cmp r2, r3 - bls .L3766 + bls .L3967 add r3, r3, #8 mov r8, #1 mov r3, r3, asl r8 str r3, [sp, #76] -.L3767: +.L3968: cmp r8, r10 - bhi .L3784 + bhi .L3986 ldr r2, [sp, #76] add r3, sp, #128 add r3, r3, r2 - movw r2, #65535 - ldrh r3, [r3, #-32] - cmp r3, r2 - beq .L3753 - ldr r2, .L3785+16 + ldrh r2, [r3, #-32] + movw r3, #65535 + cmp r2, r3 + beq .L3953 + ldr r3, .L3987+20 cmp r10, #3 - ldrh r4, [r2] - mul r4, r4, r3 - bne .L3754 - ldrb r2, [r9, #684] @ zero_extendqisi2 - cmp r2, #0 - uxtaheq r4, r4, r5 - ldrne r2, [sp, #68] - orreq r4, r4, r8, asl #24 - beq .L3756 - b .L3782 -.L3754: + ldrh r3, [r3] + mul r3, r3, r2 + bne .L3954 + ldr r1, .L3987 + ldrb r0, [r1, #1196] @ zero_extendqisi2 + cmp r0, #0 + ldrne r1, [sp, #64] + bne .L3983 + ldrb r1, [r1, #1197] @ zero_extendqisi2 + mov r4, r8, asl #24 + cmp r1, #0 + uxtaheq r3, r3, r5 + ldrne r1, [sp, #64] + addne r3, r3, r1 + addne r3, r3, r8 + orr r4, r4, r3 + b .L3956 +.L3954: cmp r10, #2 - uxtahne r4, r4, r5 - bne .L3756 - ldr r2, [sp, #72] -.L3782: - add r4, r4, r2 - ldrb r2, [r9, #2937] @ zero_extendqisi2 - add r4, r4, r8 - orr r4, r4, r2, asl #24 -.L3756: + uxtahne r4, r3, r5 + bne .L3956 + ldr r1, [sp, #72] +.L3983: + add r3, r3, r1 + ldr r1, [sp, #68] + add r3, r3, r8 + ldrb r4, [r1, #-3196] @ zero_extendqisi2 + orr r4, r3, r4, asl #24 +.L3956: mov r1, #1 str r4, [r6, #24] mov r0, r6 - str r3, [sp, #84] + str r2, [sp, #84] bl sblk_read_page ldr r1, [r6, #4] ldr ip, [r6, #36] - ldr r2, [r6, #12] + ldr r3, [r6, #12] str ip, [sp] ldr r0, [r1] - ldr r3, [sp, #84] + ldr r2, [sp, #84] str ip, [sp, #80] str r0, [sp, #4] ldr r0, [r1, #4] @@ -22425,27 +23558,32 @@ ftl_sblk_dump: ldr r0, [r1, #8] str r0, [sp, #12] ldr r1, [r1, #12] - ldr r0, .L3785+20 + ldr r0, .L3987+24 str r1, [sp, #16] - ldr r1, [r2] + ldr r1, [r3] str r1, [sp, #20] - ldr r1, [r2, #4] + ldr r1, [r3, #4] str r1, [sp, #24] - ldr r1, [r2, #8] + ldr r1, [r3, #8] str r1, [sp, #28] - mov r1, r3 - ldr r2, [r2, #12] + mov r1, r2 + ldr r3, [r3, #12] + ldr r2, [sp, #44] + str r3, [sp, #32] mov r3, r4 - str r2, [sp, #32] - ldr r2, [sp, #52] bl printk + ldr r0, .L3987+28 ldr ip, [sp, #80] - ldr r3, [sp, #56] + ldr r3, [sp, #48] cmn ip, #1 cmpne ip, #512 moveq r3, #1 - str r3, [sp, #56] - ldr r3, [r9, #568] + str r3, [sp, #48] + ldr r3, .L3987+32 + ldr r3, [r3, #4] + blx r3 + ldr r3, .L3987 + ldr r3, [r3, #1080] add r3, r3, fp ldrb r2, [r3, #2] @ zero_extendqisi2 and r2, r2, #224 @@ -22453,7 +23591,7 @@ ftl_sblk_dump: cmpne r2, #32 moveq r2, #1 movne r2, #0 - beq .L3753 + beq .L3953 ldr r3, [r6, #12] str r2, [sp, #80] ldr r0, [r3, #4] @@ -22461,105 +23599,104 @@ ftl_sblk_dump: cmn r0, #1 str r0, [sp, #92] ldr r2, [sp, #80] - bne .L3759 + bne .L3960 ldr r3, [r6, #12] add r1, sp, #92 ldr r0, [r3, #4] bl pm_log2phys -.L3759: +.L3960: ldr r3, [sp, #92] cmp r3, r4 - bne .L3760 - ldr r3, [sp, #48] + bne .L3961 + ldr r3, [sp, #40] mov r1, r4 - ldr r0, .L3785+24 + ldr r0, .L3987+36 add r3, r3, #1 - str r3, [sp, #48] + str r3, [sp, #40] ldr r3, [r6, #12] ldr r2, [r3, #4] - ldr r3, [sp, #48] + ldr r3, [sp, #40] bl printk -.L3760: - ldr r3, [sp, #64] +.L3961: + ldr r3, [sp, #56] cmp r3, #0 - beq .L3762 - ldr r3, [sp, #44] - ldr r2, [sp, #44] - mov r4, r3, asl #2 - ldr r3, [sp, #64] - ldr r2, [r3, r2, asl #2] + beq .L3963 + ldr r2, [r3, r9, asl #2] + mov r4, r9, asl #2 ldr r3, [r6, #12] ldr r3, [r3, #4] cmp r3, r2 - beq .L3763 - ldr r3, .L3785+28 + beq .L3964 + ldr r3, .L3987+40 ldr r3, [r3] tst r3, #4096 - beq .L3763 - ldr r0, .L3785+32 - ldr r1, [sp, #44] + beq .L3964 + ldr r0, .L3987+44 + mov r1, r9 bl printk -.L3763: - ldr r3, [sp, #64] +.L3964: + ldr r3, [sp, #56] ldr r2, [r6, #12] ldr r3, [r3, r4] ldr r2, [r2, #4] cmp r2, r3 cmnne r3, #1 - beq .L3762 - ldr r1, .L3785+36 - movw r2, #1393 - ldr r0, .L3785+40 + beq .L3963 + ldr r1, .L3987+48 + movw r2, #1567 + ldr r0, .L3987+52 bl printk bl dump_stack -.L3762: - ldr r3, [sp, #44] - add r3, r3, #1 - str r3, [sp, #44] -.L3753: +.L3963: + add r9, r9, #1 +.L3953: add r8, r8, #1 uxth r8, r8 - b .L3767 -.L3784: - ldr r3, [sp, #60] + b .L3968 +.L3986: + ldr r3, [sp, #52] add r3, r3, #1 - b .L3783 -.L3766: + b .L3985 +.L3967: add r5, r5, #1 - b .L3752 -.L3768: + b .L3952 +.L3969: mov r0, r6 bl zbuf_free - ldr r2, [r4, #576] - mov r3, r7, asl #1 - ldr r0, .L3785+44 + ldr r3, .L3987 + ldr r0, .L3987+56 mov r1, r7 + ldr r2, [r3, #1088] + mov r3, r7, asl #1 ldrh r2, [r2, r3] - ldr r3, [sp, #48] + ldr r3, [sp, #40] bl printk - ldr r0, [sp, #56] - b .L3750 -.L3771: + ldr r0, [sp, #48] + b .L3950 +.L3972: mov r0, #0 -.L3750: +.L3950: add sp, sp, #132 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3786: +.L3988: .align 2 -.L3785: +.L3987: .word .LANCHOR0 - .word .LC257 - .word .LANCHOR0+2960 - .word .LC258 - .word .LANCHOR0+2994 - .word .LC201 - .word .LC259 + .word .LC254 + .word .LANCHOR3-3168 + .word .LANCHOR3 + .word .LC255 + .word .LANCHOR3-3142 + .word .LC200 + .word 2147483000 + .word arm_delay_ops + .word .LC256 .word .LANCHOR2 - .word .LC260 - .word .LANCHOR1+2072 + .word .LC257 + .word .LANCHOR1+2668 .word .LC0 - .word .LC261 + .word .LC258 .fnend .size ftl_sblk_dump, .-ftl_sblk_dump .align 2 @@ -22572,278 +23709,290 @@ zftl_read: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, r3 - ldr r3, .L3848 + ldr r3, .L4051 .pad #76 sub sp, sp, #76 - mov r9, r0 + mov r8, r0 mov r4, r1 - mov r8, r2 + mov r5, r2 ldr r3, [r3] tst r3, #4096 - beq .L3788 - ldr r0, .L3848+4 - mov r1, r9 + beq .L3990 + ldr r0, .L4051+4 + mov r1, r8 mov r2, r4 - mov r3, r8 + mov r3, r5 bl printk -.L3788: - cmp r9, #0 - ldreq r3, .L3848+8 - ldreq r2, [r3, #520] - moveq r3, #24576 - beq .L3790 -.L3789: - cmp r9, #3 - bhi .L3816 - mov r3, r9, asl #13 - mov r2, #8192 -.L3790: - add r1, r4, r8 - cmp r1, r2 - bhi .L3816 - add r3, r3, r4 - ldr r4, .L3848+8 - str r3, [sp, #24] - ldr r0, [sp, #24] - ldr r2, [r4, #2288] - mov r7, r4 - ldrb r5, [r4, #2260] @ zero_extendqisi2 - ldr r3, [r2, #24] - mov r1, r5 - add r3, r3, r8 - str r3, [r2, #24] +.L3990: + cmp r8, #0 + ldreq r3, .L4051+8 + moveq r8, #24576 + ldreq fp, [r3, #1032] + beq .L3992 +.L3991: + cmp r8, #3 + bhi .L4019 + mov r8, r8, asl #13 + mov fp, #8192 +.L3992: + cmp r5, fp + cmpls r4, fp + movcs r7, #1 + movcc r7, #0 + bcs .L4019 + add r3, r4, r5 + cmp r3, fp + bhi .L4019 + ldr r2, .L4051+8 + add r3, r8, r4 + str r3, [sp, #28] + ldr r0, [sp, #28] + ldr r1, [r2, #2804] + ldrb r4, [r2, #2772] @ zero_extendqisi2 + ldr r3, [r1, #24] + add r3, r3, r5 + str r3, [r1, #24] + mov r1, r4 bl __aeabi_uidiv - mov r1, r5 - ldr r3, [sp, #24] - str r0, [sp, #32] - add r3, r3, r8 - str r3, [sp, #40] + mov r1, r4 + ldr r3, [sp, #28] + str r0, [sp, #36] + add r3, r3, r5 + str r3, [sp, #44] sub r0, r3, #1 bl __aeabi_uidiv - ldr r3, [sp, #32] - ldr r5, [sp, #32] + ldr r3, [sp, #36] + str r7, [sp, #40] + ldr r4, [sp, #36] rsb r3, r3, #1 - str r0, [sp, #44] + ldr r7, .L4051+12 add r3, r3, r0 - str r3, [sp, #28] - mov r3, #0 - str r3, [sp, #36] -.L3792: - ldr r3, [sp, #28] - cmp r3, #0 - beq .L3845 + str r0, [sp, #48] + str r3, [sp, #32] +.L3994: ldr r3, [sp, #32] - ldrb r1, [r4, #2260] @ zero_extendqisi2 - rsb r2, r3, r5 - ldr r3, [sp, #44] + cmp r3, #0 + beq .L4048 + ldr r3, [sp, #36] + ldr r8, .L4051+8 + rsb r2, r3, r4 + ldr r3, [sp, #48] clz r2, r2 - rsb r3, r3, r5 - uxth r9, r1 + rsb r3, r3, r4 + ldrb r1, [r8, #2772] @ zero_extendqisi2 clz r3, r3 mov r2, r2, lsr #5 + mov r9, r8 mov r3, r3, lsr #5 - orrs r10, r3, r2 - beq .L3793 - cmp r2, #0 - beq .L3794 - ldr r0, [sp, #24] - bl __aeabi_uidivmod uxth r10, r1 - rsb r9, r10, r9 - uxth r9, r9 - cmp r9, r8 - uxthhi r9, r8 - b .L3793 -.L3794: + orrs fp, r3, r2 + beq .L3995 + cmp r2, #0 + beq .L3996 + ldr r0, [sp, #28] + bl __aeabi_uidivmod + uxth fp, r1 + rsb r10, fp, r10 + uxth r10, r10 + cmp r10, r5 + uxthhi r10, r5 + b .L3995 +.L3996: cmp r3, #0 - ldrne r3, [sp, #24] - movne r10, r2 - moveq r10, r3 - addne r3, r3, r8 - mlsne r1, r5, r1, r3 - uxtbne r9, r1 -.L3793: - ldr r2, .L3848+12 + ldrne r3, [sp, #28] + movne fp, r2 + moveq fp, r3 + addne r3, r3, r5 + mlsne r1, r4, r1, r3 + uxtbne r10, r1 +.L3995: + ldr r2, .L4051+16 mov r3, #0 -.L3797: +.L3999: ldr r1, [r2, #20] - cmp r1, r5 - bne .L3795 + cmp r1, r4 + bne .L3997 ldrb r1, [r2, #2] @ zero_extendqisi2 tst r1, #8 - beq .L3795 + beq .L3997 + ldr r1, .L4051+8 mov r2, #48 - mov r9, r9, asl #9 - mla r3, r2, r3, r4 + mov r10, r10, asl #9 mov r0, r6 - mov r2, r9 - add r6, r6, r9 - ldr r1, [r3, #728] - add r1, r1, r10, asl #9 + add r6, r6, r10 + mla r3, r2, r3, r1 + mov r2, r10 + ldr r1, [r3, #1240] + add r1, r1, fp, asl #9 bl ftl_memcpy - b .L3796 -.L3795: + b .L3998 +.L3997: add r3, r3, #1 add r2, r2, #48 cmp r3, #32 - bne .L3797 - mov r0, r5 + bne .L3999 + mov r0, r4 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #68] - bne .L3798 - mov r0, r5 + bne .L4000 + mov r0, r4 add r1, sp, #68 mov r2, #0 bl pm_log2phys -.L3798: +.L4000: ldr r3, [sp, #68] cmn r3, #1 - moveq r9, #0 - bne .L3846 -.L3800: - ldrb r3, [r7, #2260] @ zero_extendqisi2 - cmp r9, r3 - bcs .L3796 - mla r3, r3, r5, r9 - ldr r2, [sp, #24] - ldr r1, [sp, #40] + moveq r10, #0 + bne .L4049 +.L4002: + ldrb r3, [r9, #2772] @ zero_extendqisi2 + cmp r10, r3 + bcs .L3998 + mla r3, r3, r4, r10 + ldr r2, [sp, #28] + ldr r1, [sp, #44] cmp r3, r2 movcs r2, #1 movcc r2, #0 cmp r3, r1 movcs r2, #0 cmp r2, #0 - beq .L3801 + beq .L4003 mov r0, r6 mov r1, #0 mov r2, #512 add r6, r6, #512 bl ftl_memset -.L3801: - add r9, r9, #1 - b .L3800 -.L3846: +.L4003: + add r10, r10, #1 + b .L4002 +.L4049: mov r0, #0 bl buf_alloc subs r3, r0, #0 - beq .L3803 - ldr r1, [r4, #2288] + beq .L4005 + ldr r2, .L4051+8 + ldr r1, [r2, #2804] ldr r2, [r1, #40] add r2, r2, #1 str r2, [r1, #40] ldr r2, [sp, #68] str r6, [r3, #8] - add r6, r6, r9, asl #9 - str r5, [r3, #20] + add r6, r6, r10, asl #9 + str r4, [r3, #20] str r2, [r3, #24] str r2, [r3, #28] - strb r9, [r3, #40] - strb r10, [r3, #41] + strb r10, [r3, #40] + strb fp, [r3, #41] bl zftl_add_read_buf -.L3796: - ldr r3, [sp, #28] - add r5, r5, #1 +.L3998: + ldr r3, [sp, #32] + add r4, r4, #1 sub r3, r3, #1 - str r3, [sp, #28] -.L3803: - ldrb r3, [r7, #2262] @ zero_extendqisi2 - ldr r2, [sp, #28] + str r3, [sp, #32] +.L4005: + ldrb r3, [r8, #2774] @ zero_extendqisi2 + ldr r2, [sp, #32] cmp r2, #0 cmpne r3, #2 - bhi .L3792 - ldrb r1, [r4, #3532] @ zero_extendqisi2 + bhi .L3994 + ldrb r1, [r7, #-2605] @ zero_extendqisi2 cmp r1, #0 - beq .L3792 - ldrb r2, [r4, #3531] @ zero_extendqisi2 + beq .L3994 + ldrb r2, [r7, #-2606] @ zero_extendqisi2 mov r0, #48 - ldr r3, .L3848+12 + ldr r3, .L4051+16 mla r0, r0, r2, r3 bl sblk_read_page -.L3805: - ldrb r3, [r4, #3532] @ zero_extendqisi2 +.L4007: + ldrb r3, [r7, #-2605] @ zero_extendqisi2 cmp r3, #0 - beq .L3847 - ldrb r3, [r4, #3531] @ zero_extendqisi2 + beq .L4050 + ldrb r3, [r7, #-2606] @ zero_extendqisi2 cmp r3, #255 - bne .L3806 - ldr r1, .L3848+16 - mov r2, #1088 - ldr r0, .L3848+20 + bne .L4008 + ldr r1, .L4051+20 + movw r2, #1276 + ldr r0, .L4051+24 bl printk bl dump_stack -.L3806: - ldrb fp, [r7, #3531] @ zero_extendqisi2 +.L4008: + ldr r3, .L4051+12 mov r2, #48 - ldr r3, .L3848+12 - mul r2, r2, fp + ldr r8, .L4051+8 + ldr r1, .L4051+12 + ldrb r10, [r3, #-2606] @ zero_extendqisi2 + ldr r3, .L4051+16 + mul r2, r2, r10 add r3, r3, r2 - add r2, r7, r2 - str r3, [sp, #48] - ldr r10, [r2, #760] - ldrb r3, [r2, #724] @ zero_extendqisi2 - cmn r10, #1 - strb r3, [r7, #3531] - bne .L3807 - ldr r2, [r4, #580] - str r10, [sp, #36] + add r2, r8, r2 + str r3, [sp, #52] + ldr r9, [r2, #1272] + ldrb r3, [r2, #1236] @ zero_extendqisi2 + cmn r9, #1 + strb r3, [r1, #-2606] + bne .L4009 + ldr r2, [r8, #1092] + str r9, [sp, #40] ldr r3, [r2, #552] add r3, r3, #1 str r3, [r2, #552] - b .L3808 -.L3807: - cmp r10, #256 - bne .L3808 - ldr r1, .L3848+24 - mov r9, #1 - ldr r3, [r2, #748] + b .L4010 +.L4009: + cmp r9, #256 + bne .L4010 + ldr r1, .L4051+28 + ldr r3, [r2, #1260] str r2, [sp, #60] ldrh r0, [r1] - ldrb r1, [r4, #676] @ zero_extendqisi2 + ldrb r1, [r8, #1189] @ zero_extendqisi2 + mov r8, #1 str r3, [sp, #56] rsb r1, r1, #24 rsb r1, r0, r1 - mov r1, r9, asl r1 + mov r1, r8, asl r1 sub r1, r1, #1 and r0, r1, r3, lsr r0 - ldrb r1, [r4, #2930] @ zero_extendqisi2 + ldrb r1, [r7, #-3202] @ zero_extendqisi2 bl __aeabi_uidiv ldr r2, [sp, #60] - uxth ip, r0 + uxth fp, r0 ldr r3, [sp, #56] - mov r1, ip - ldr r0, .L3848+28 - ldr r2, [r2, #744] - str ip, [sp, #52] + mov r1, fp + ldr r0, .L4051+32 + ldr r2, [r2, #1256] bl printk - mov r1, r9 + mov r0, fp + mov r1, r8 mov r2, #0 - ldr ip, [sp, #52] - mov r0, ip bl gc_add_sblk -.L3808: - mov r9, #48 - cmn r10, #1 - mla r9, r9, fp, r4 - movne ip, #0 - moveq ip, #1 - ldr r3, [r9, #736] - ldr r1, [r9, #744] +.L4010: + ldr ip, .L4051+8 + mov r8, #48 + cmn r9, #1 + mla r8, r8, r10, ip + movne fp, #0 + moveq fp, #1 + add r3, r8, #1232 + add r3, r3, #12 + ldr r2, [r8, #1248] + ldr r1, [r8, #1256] + ldr r2, [r2, #4] + cmp r2, r1 + moveq r2, fp + orrne r2, fp, #1 + cmp r2, #0 + beq .L4011 + ldr r1, [ip, #1092] + ldr r0, .L4051+36 + str ip, [sp, #56] + ldr r2, [r1, #552] + add r2, r2, #1 + str r2, [r1, #552] ldr r3, [r3, #4] - cmp r3, r1 - moveq r3, ip - orrne r3, ip, #1 - cmp r3, #0 - beq .L3809 - ldr r1, [r4, #580] - ldr r0, .L3848+32 - str ip, [sp, #52] - ldr r3, [r1, #552] - add r3, r3, #1 - str r3, [r1, #552] - ldr r3, [r9, #736] - ldr r2, [r9, #748] - ldrb r1, [r9, #725] @ zero_extendqisi2 + ldr r2, [r8, #1260] + ldrb r1, [r8, #1237] @ zero_extendqisi2 str r2, [sp] ldr r2, [r3] str r2, [sp, #4] @@ -22851,17 +24000,18 @@ zftl_read: str r2, [sp, #8] ldr r2, [r3, #8] str r2, [sp, #12] - mov r2, r10 + mov r2, r9 ldr r3, [r3, #12] str r3, [sp, #16] - ldr r3, [r9, #744] + ldr r3, [r8, #1256] bl printk - ldr r3, .L3848+24 - ldr r2, [r9, #748] - ldrb r1, [r4, #2930] @ zero_extendqisi2 + ldr r3, .L4051+28 + ldr r2, [r8, #1260] + ldrb r1, [r7, #-3202] @ zero_extendqisi2 ldrh r0, [r3] - ldrb r3, [r4, #676] @ zero_extendqisi2 mov r2, r2, lsr r0 + ldr ip, [sp, #56] + ldrb r3, [ip, #1189] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r0, r3 mvn r0, #0 @@ -22870,79 +24020,81 @@ zftl_read: mov r1, #0 uxth r0, r0 bl ftl_sblk_dump - ldr ip, [sp, #52] -.L3809: +.L4011: + ldr r8, .L4051+8 mov r3, #48 - mla r3, r3, fp, r4 - ldr r2, [r3, #736] - ldr r3, [r3, #744] + mla r3, r3, r10, r8 + mov r9, r8 + ldr r2, [r3, #1248] + ldr r3, [r3, #1256] ldr r2, [r2, #4] cmp r2, r3 - orrne ip, ip, #1 - cmp ip, #0 - beq .L3810 - ldr r1, .L3848+16 - movw r2, #1109 - ldr r0, .L3848+20 + orrne fp, fp, #1 + cmp fp, #0 + beq .L4012 + ldr r1, .L4051+20 + movw r2, #1301 + ldr r0, .L4051+24 bl printk bl dump_stack -.L3810: +.L4012: mov r3, #48 - mla fp, r3, fp, r7 - ldrb r3, [r7, #2260] @ zero_extendqisi2 - ldrb r2, [fp, #764] @ zero_extendqisi2 + mla r10, r3, r10, r9 + ldrb r3, [r8, #2772] @ zero_extendqisi2 + ldrb r2, [r10, #1276] @ zero_extendqisi2 cmp r3, r2 - ldrlsb r3, [fp, #726] @ zero_extendqisi2 + ldrlsb r3, [r10, #1238] @ zero_extendqisi2 bicls r3, r3, #8 - strlsb r3, [fp, #726] - bls .L3812 - ldrb r1, [fp, #765] @ zero_extendqisi2 + strlsb r3, [r10, #1238] + bls .L4014 + ldrb r1, [r10, #1277] @ zero_extendqisi2 mov r2, r2, asl #9 - ldr r3, [fp, #728] - ldr r0, [fp, #732] + ldr r3, [r10, #1240] + ldr r0, [r10, #1244] add r1, r3, r1, asl #9 bl ftl_memcpy -.L3812: - ldr r1, [sp, #48] - ldr r0, .L3848+36 +.L4014: + ldr r1, [sp, #52] + ldr r0, .L4051+40 bl buf_remove_buf - ldr r0, [sp, #48] + ldr r0, [sp, #52] bl zbuf_free - ldrb r3, [r4, #3532] @ zero_extendqisi2 + ldrb r3, [r7, #-2605] @ zero_extendqisi2 sub r3, r3, #1 - strb r3, [r4, #3532] - b .L3805 -.L3847: + strb r3, [r7, #-2605] + b .L4007 +.L4050: + ldr r1, .L4051+12 mvn r2, #0 - strb r3, [r7, #3532] - strb r2, [r7, #3531] - b .L3792 -.L3845: + strb r3, [r1, #-2605] + strb r2, [r1, #-2606] + b .L3994 +.L4048: bl timer_get_time - ldr r3, .L3848+40 - str r0, [r3, #-2476] - ldr r0, [sp, #36] - b .L3791 -.L3816: + ldr r3, .L4051+12 + str r0, [r3, #480] + ldr r0, [sp, #40] + b .L3993 +.L4019: mvn r0, #0 -.L3791: +.L3993: add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3849: +.L4052: .align 2 -.L3848: +.L4051: .word .LANCHOR2 - .word .LC262 + .word .LC259 .word .LANCHOR0 - .word .LANCHOR0+724 - .word .LANCHOR1+2088 + .word .LANCHOR3 + .word .LANCHOR0+1236 + .word .LANCHOR1+2684 .word .LC0 - .word .LANCHOR0+2928 - .word .LC263 - .word .LC264 - .word .LANCHOR0+3533 - .word .LANCHOR5 + .word .LANCHOR3-3204 + .word .LC260 + .word .LC261 + .word .LANCHOR0+2776 .fnend .size zftl_read, .-zftl_read .align 2 @@ -22986,131 +24138,130 @@ zftl_debug_proc_write: .fnstart @ args = 0, pretend = 0, frame = 88 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} + stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} cmp r2, #79 - .pad #120 - sub sp, sp, #120 + .pad #124 + sub sp, sp, #124 mov r7, r2 add r4, sp, #40 mvnhi r0, #21 str r4, [sp, #36] - bhi .L3854 + bhi .L4057 mov r0, r4 bl rk_copy_from_user cmp r0, #0 mvnne r0, #13 - bne .L3854 + bne .L4057 add r3, sp, #120 mov r1, r4 add r3, r3, r7 strb r0, [r3, #-80] - ldr r0, .L3879 + ldr r0, .L4082 bl printk - ldr r0, .L3879+4 + ldr r0, .L4082+4 mov r1, r4 mov r2, #1 mov r3, #16 bl rknand_print_hex bl rknand_device_lock mov r0, r4 - ldr r1, .L3879+8 + ldr r1, .L4082+8 mov r2, #7 bl memcmp subs r5, r0, #0 - bne .L3855 - ldr r4, .L3879+12 + bne .L4058 + ldr r4, .L4082+12 movw ip, #698 - ldr r0, .L3879+16 + ldr r0, .L4082+16 mov r2, #4 - ldr r6, .L3879+20 + ldr r6, .L4082+20 movw r8, #65535 - ldr r3, [r4, #2288] + ldr r3, [r4, #2804] add r1, r3, #704 ldrh r3, [r3, ip] bl rknand_print_hex - ldr r1, [r4, #2288] - ldr r0, .L3879+24 + ldr r1, [r4, #2804] + ldr r0, .L4082+24 mov r2, #2 add r1, r1, #416 - ldrh r3, [r6] + ldrh r3, [r6, #-224] bl rknand_print_hex -.L3856: - ldrh r3, [r6] +.L4059: + ldrh r3, [r6, #-224] cmp r5, r3 - bge .L3859 + bge .L4062 mov r0, #300 bl msleep add r3, r5, #208 - ldr r2, [r4, #2288] + ldr r2, [r4, #2804] mov r3, r3, asl #1 ldrh r0, [r2, r3] cmp r0, r8 - beq .L3857 + beq .L4060 mov r1, #0 bl ftl_sblk_dump -.L3857: +.L4060: add r5, r5, #1 - b .L3856 -.L3855: + b .L4059 +.L4058: mov r0, r4 - ldr r1, .L3879+28 + ldr r1, .L4082+28 mov r2, #7 bl memcmp subs r5, r0, #0 - bne .L3860 - ldr r4, .L3879+12 + bne .L4063 + ldr r4, .L4082+12 movw ip, #698 - ldr r0, .L3879+16 + ldr r0, .L4082+16 mov r2, #4 - ldr r8, .L3879+32 - ldr r3, [r4, #2288] - mov r10, r4 + ldr r8, .L4082+32 + ldr r3, [r4, #2804] add r1, r3, #704 ldrh r3, [r3, ip] bl rknand_print_hex - ldr r3, .L3879+20 - ldr r1, [r4, #2288] + ldr r3, .L4082+20 + ldr r1, [r4, #2804] mov r2, #2 - ldr r0, .L3879+24 - ldrh r3, [r3] + ldr r0, .L4082+24 + ldrh r3, [r3, #-224] add r1, r1, #416 bl rknand_print_hex - ldr r0, .L3879+36 + ldr r0, .L4082+36 add r6, sp, #120 add r1, sp, #47 str r1, [r6, #-84]! bl printk mov r1, r6 ldr r0, [sp, #36] - bl rk_simple_strtoull.constprop.32 + bl rk_simple_strtoull.constprop.34 uxth r6, r0 str r0, [sp, #32] -.L3862: +.L4065: add r9, r8, r5 - ldr r0, .L3879+40 + ldr r0, .L4082+40 ldrh r1, [r8, r5] ldrh r2, [r9, #2] bl printk ldrh r3, [r5, r8] cmp r3, r6 - bne .L3861 - ldrb r3, [r10, #2260] @ zero_extendqisi2 + bne .L4064 + ldrb r3, [r4, #2772] @ zero_extendqisi2 mov r2, #4 - ldr r0, .L3879+44 + ldr r0, .L4082+44 ldr r1, [r9, #4] mov r3, r3, asl #7 bl rknand_print_hex -.L3861: +.L4064: add r5, r5, #8 cmp r5, #256 - bne .L3862 + bne .L4065 mov r0, #300 add r6, r6, #176 bl msleep mov r0, #1 bl buf_alloc - ldr r3, [r4, #2288] + ldr r3, [r4, #2804] mov r1, #1 ldr r3, [r3, r6, asl #2] str r3, [r0, #24] @@ -23119,7 +24270,7 @@ zftl_debug_proc_write: bl sblk_read_page ldr ip, [r5, #4] ldr r3, [r5, #12] - ldr r0, .L3879+48 + ldr r0, .L4082+48 ldr r2, [ip, #4] str r2, [sp] ldr r2, [ip, #8] @@ -23138,59 +24289,59 @@ zftl_debug_proc_write: ldr r2, [r5, #36] ldr r3, [ip] bl printk - ldrb r3, [r4, #2260] @ zero_extendqisi2 - ldr r0, .L3879+52 + ldrb r3, [r4, #2772] @ zero_extendqisi2 + ldr r0, .L4082+52 mov r2, #4 ldr r1, [r5, #4] mov r3, r3, asl #7 - b .L3878 -.L3860: + b .L4081 +.L4063: mov r0, r4 - ldr r1, .L3879+56 + ldr r1, .L4082+56 mov r2, #7 bl memcmp cmp r0, #0 - bne .L3863 + bne .L4066 bl dump_ftl_info - b .L3859 -.L3863: + b .L4062 +.L4066: mov r0, r4 - ldr r1, .L3879+60 + ldr r1, .L4082+60 mov r2, #9 bl memcmp cmp r0, #0 - bne .L3864 + bne .L4067 add r1, sp, #120 add r0, sp, #49 str r0, [r1, #-84]! - bl rk_simple_strtoull.constprop.32 - ldr r3, .L3879+64 + bl rk_simple_strtoull.constprop.34 + ldr r3, .L4082+64 str r0, [sp, #32] - strh r0, [r3] @ movhi + strh r0, [r3, #-8] @ movhi bl dump_all_list_info - b .L3859 -.L3864: + b .L4062 +.L4067: mov r0, r4 - ldr r1, .L3879+68 + ldr r1, .L4082+68 mov r2, #8 bl memcmp cmp r0, #0 - beq .L3859 + beq .L4062 mov r0, r4 - ldr r1, .L3879+72 + ldr r1, .L4082+72 mov r2, #8 bl memcmp cmp r0, #0 - bne .L3866 + bne .L4069 add r4, sp, #120 add r1, sp, #48 - ldr r0, .L3879+36 + ldr r0, .L4082+36 str r1, [r4, #-84]! bl printk mov r1, r4 - ldr r4, .L3879+12 + ldr r4, .L4082+12 ldr r0, [sp, #36] - bl rk_simple_strtoull.constprop.32 + bl rk_simple_strtoull.constprop.34 str r0, [sp, #32] mov r0, #1 bl buf_alloc @@ -23201,7 +24352,7 @@ zftl_debug_proc_write: bl sblk_read_page ldr r3, [r5, #4] ldr r2, [r5, #12] - ldr r0, .L3879+48 + ldr r0, .L4082+48 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -23220,144 +24371,147 @@ zftl_debug_proc_write: ldr r2, [r5, #36] ldr r3, [r3] bl printk - ldrb r3, [r4, #2260] @ zero_extendqisi2 - ldr r0, .L3879+76 + ldrb r3, [r4, #2772] @ zero_extendqisi2 + ldr r0, .L4082+76 mov r2, #4 ldr r1, [r5, #4] mov r3, r3, asl #7 bl rknand_print_hex - ldrb r3, [r4, #2260] @ zero_extendqisi2 - ldr r0, .L3879+80 + ldrb r3, [r4, #2772] @ zero_extendqisi2 + ldr r0, .L4082+80 mov r2, #4 ldr r1, [r5, #12] mov r3, r3, asl #1 -.L3878: +.L4081: bl rknand_print_hex mov r0, r5 bl zbuf_free - b .L3859 -.L3866: + b .L4062 +.L4069: mov r0, r4 - ldr r1, .L3879+84 + ldr r1, .L4082+84 mov r2, #8 bl memcmp subs r5, r0, #0 - bne .L3867 + bne .L4070 add r4, sp, #120 add r1, sp, #48 - ldr r0, .L3879+36 + ldr r0, .L4082+36 str r1, [r4, #-84]! bl printk mov r1, r4 ldr r0, [sp, #36] - bl rk_simple_strtoull.constprop.32 + bl rk_simple_strtoull.constprop.34 mov r1, r5 str r0, [sp, #32] uxth r0, r0 bl ftl_sblk_dump - b .L3859 -.L3867: + b .L4062 +.L4070: mov r0, r4 - ldr r1, .L3879+88 + ldr r1, .L4082+88 mov r2, #10 bl memcmp cmp r0, #0 - bne .L3868 + bne .L4071 add r4, sp, #120 add r1, sp, #50 - ldr r0, .L3879+36 + ldr r0, .L4082+36 str r1, [r4, #-84]! bl printk mov r1, r4 ldr r0, [sp, #36] - bl rk_simple_strtoull.constprop.32 - ldr r3, .L3879+92 + bl rk_simple_strtoull.constprop.34 + ldr r3, .L4082+92 str r0, [sp, #32] str r0, [r3] - b .L3859 -.L3868: + b .L4062 +.L4071: mov r0, r4 - ldr r1, .L3879+96 + ldr r1, .L4082+96 mov r2, #8 bl memcmp subs r5, r0, #0 - bne .L3869 + bne .L4072 add r4, sp, #120 add r1, sp, #48 - ldr r0, .L3879+36 + ldr r0, .L4082+36 str r1, [r4, #-84]! bl printk mov r1, r4 ldr r0, [sp, #36] - bl rk_simple_strtoull.constprop.32 + bl rk_simple_strtoull.constprop.34 mov r4, r0 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #32] - bne .L3870 + bne .L4073 mov r0, r4 add r1, sp, #32 mov r2, r5 bl pm_log2phys -.L3870: +.L4073: mov r1, r4 ldr r2, [sp, #32] - ldr r0, .L3879+100 + ldr r0, .L4082+100 bl printk - b .L3859 -.L3869: - ldr r0, .L3879+104 + b .L4062 +.L4072: + ldr r0, .L4082+104 bl printk - ldr r0, .L3879+108 + ldr r0, .L4082+108 bl printk - ldr r0, .L3879+112 + ldr r0, .L4082+112 bl printk - ldr r0, .L3879+116 + ldr r0, .L4082+116 bl printk - ldr r0, .L3879+120 + ldr r0, .L4082+120 bl printk - ldr r0, .L3879+124 + ldr r0, .L4082+124 bl printk - ldr r0, .L3879+128 + ldr r0, .L4082+128 bl printk - ldr r0, .L3879+132 + ldr r0, .L4082+132 bl printk - ldr r0, .L3879+136 + ldr r0, .L4082+136 bl printk -.L3859: +.L4062: bl rknand_device_unlock mov r0, r7 -.L3854: - add sp, sp, #120 +.L4057: + add sp, sp, #124 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3880: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L4083: .align 2 -.L3879: +.L4082: + .word .LC262 + .word .LC263 + .word .LC264 + .word .LANCHOR0 .word .LC265 + .word .LANCHOR3 .word .LC266 .word .LC267 - .word .LANCHOR0 + .word .LANCHOR3-2600 .word .LC268 - .word .LANCHOR3-3296 .word .LC269 .word .LC270 - .word .LANCHOR0+3540 + .word .LC243 .word .LC271 .word .LC272 .word .LC273 - .word .LC235 + .word .LANCHOR3-3136 .word .LC274 .word .LC275 + .word .LC216 + .word .LC238 .word .LC276 - .word .LANCHOR0+2992 .word .LC277 + .word .LANCHOR2 .word .LC278 - .word .LC229 - .word .LC230 .word .LC279 .word .LC280 - .word .LANCHOR2 .word .LC281 .word .LC282 .word .LC283 @@ -23366,218 +24520,9 @@ zftl_debug_proc_write: .word .LC286 .word .LC287 .word .LC288 - .word .LC289 - .word .LC290 - .word .LC291 .fnend .size zftl_debug_proc_write, .-zftl_debug_proc_write .align 2 - .global gc_check_data_one_wl - .type gc_check_data_one_wl, %function -gc_check_data_one_wl: - .fnstart - @ args = 0, pretend = 0, frame = 8 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {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, .L3914 - ldr r3, [r4, #2320] - ldr r7, [r4, #580] - cmp r3, #0 - bne .L3882 - mov r0, #1 - bl buf_alloc - str r0, [r4, #2320] -.L3882: - ldr r5, [r4, #2320] - cmp r5, #0 - bne .L3883 - ldr r1, .L3914+4 - movw r2, #613 - ldr r0, .L3914+8 - bl printk - bl dump_stack -.L3883: - ldr r6, .L3914+12 - add r10, r7, #96 - ldr r3, .L3914 - mov r9, #0 -.L3884: - ldrb r2, [r7, #89] @ zero_extendqisi2 - cmp r9, r2 - ldr r2, .L3914+12 - bge .L3912 - ldr r2, .L3914+16 - mov r8, #1 -.L3894: - ldrh r1, [r6, #16] - cmp r8, r1 - bgt .L3913 - ldrb r0, [r3, #2937] @ zero_extendqisi2 - ldrh r1, [r10] - ldrh ip, [r2] - cmp r0, #2 - mul ip, ip, r1 - beq .L3885 - ldrb r1, [r3, #684] @ zero_extendqisi2 - cmp r1, #0 - beq .L3886 -.L3885: - ldrh r1, [r6, #12] - sub r1, r1, #1 - add r1, r1, ip - add r1, r1, r8 - orr r1, r1, r0, asl #24 - b .L3911 -.L3886: - cmp r0, #3 - ldrh r1, [r6, #12] - addne ip, ip, r1 - strne ip, [r5, #24] - bne .L3887 - add r1, ip, r1 - orr r1, r1, r8, asl #24 -.L3911: - str r1, [r5, #24] -.L3887: - mov r1, #1 - mov r0, r5 - str r3, [sp, #28] - str r2, [sp, #24] - bl sblk_read_page - ldr r1, [r5, #36] - cmn r1, #1 - ldr r1, .L3914+20 - ldr r2, [sp, #24] - ldr r3, [sp, #28] - beq .L3889 - ldr lr, [r1, #-3316] - ldrh ip, [r6, #18] - ldr r0, [r5, #12] - ldr fp, [lr, ip, asl #2] - ldr lr, [r0, #4] - cmp fp, lr - bne .L3889 - ldr lr, [r1, #-3312] - ldr r0, [r0, #8] - ldr ip, [lr, ip, asl #2] - cmp ip, r0 - beq .L3890 -.L3889: - ldr r1, [r1, #-3316] - ldrh r0, [r6, #18] - ldr fp, .L3914+20 - ldr ip, .L3914 - ldr r0, [r1, r0, asl #2] - cmn r0, #1 - beq .L3890 - movw r6, #2962 - ldrb r3, [r7, #89] @ zero_extendqisi2 - ldrh lr, [ip, r6] - mov r2, #4 - ldr r0, .L3914+24 - str ip, [sp, #24] - mul r3, lr, r3 - bl rknand_print_hex - ldrb r3, [r7, #89] @ zero_extendqisi2 - ldr r0, .L3914+28 - mov r2, #4 - ldr r1, [fp, #-3312] - ldr ip, [sp, #24] - ldrh ip, [ip, r6] - mul r3, ip, r3 - bl rknand_print_hex - ldr r3, .L3914+32 - ldr r3, [r3] - tst r3, #1024 - beq .L3891 - ldr r3, .L3914+12 - ldr r2, [fp, #-3312] - ldr lr, [fp, #-3316] - ldrh ip, [r3, #18] - ldr r3, [r5, #12] - ldr r0, .L3914+36 - ldr r2, [r2, ip, asl #2] - str r2, [sp] - ldr r2, [r3] - str r2, [sp, #4] - ldr r2, [r3, #4] - str r2, [sp, #8] - ldr r2, [r3, #8] - str r2, [sp, #12] - ldr r3, [r3, #12] - str r3, [sp, #16] - ldr r1, [r5, #24] - ldr r2, [r5, #36] - ldr r3, [lr, ip, asl #2] - bl printk -.L3891: - ldr r3, [r4, #580] - mov r1, #0 - ldrh r0, [r3, #80] - bl ftl_sblk_dump - ldrh r3, [r7, #80] - ldr r2, [r4, #576] - mov r1, #0 - mov r3, r3, asl #1 - strh r1, [r2, r3] @ movhi - ldr r2, [r4, #580] - ldr r3, [r2, #556] - add r3, r3, #1 - str r3, [r2, #556] - ldr r3, [r4, #2288] - ldr r2, [r3, #156] - ldr r3, .L3914+40 - cmp r2, r3 - bne .L3895 - ldr r0, [r5, #24] - bl ftl_mask_bad_block - b .L3895 -.L3890: - ldrh r1, [r6, #18] - add r8, r8, #1 - add r1, r1, #1 - strh r1, [r6, #18] @ movhi - b .L3894 -.L3913: - add r9, r9, #1 - add r10, r10, #2 - b .L3884 -.L3912: - ldrb r0, [r4, #2938] @ zero_extendqisi2 - ldrh r3, [r2, #12] - cmp r0, #0 - add r1, r3, #1 - addne r3, r3, #2 - strh r1, [r2, #12] @ movhi - movne r0, #0 - strneh r3, [r2, #12] @ movhi - b .L3892 -.L3895: - mvn r0, #0 -.L3892: - add sp, sp, #36 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3915: - .align 2 -.L3914: - .word .LANCHOR0 - .word .LANCHOR1+2100 - .word .LC0 - .word .LANCHOR0+2312 - .word .LANCHOR0+2994 - .word .LANCHOR3 - .word .LC292 - .word .LC293 - .word .LANCHOR2 - .word .LC294 - .word 1145785929 - .fnend - .size gc_check_data_one_wl, .-gc_check_data_one_wl - .align 2 .global ftl_update_l2p_map .type ftl_update_l2p_map, %function ftl_update_l2p_map: @@ -23586,138 +24531,140 @@ ftl_update_l2p_map: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r7, r0 - ldr r4, .L3947 + mov r6, r0 + ldr r5, .L4115 .pad #20 sub sp, sp, #20 - ldrb r8, [r0, #9] @ zero_extendqisi2 - add r3, r4, #2960 - ldrh r5, [r0, #12] - ldrh r3, [r3] - mul r8, r8, r3 - ldr r3, [r4, #3512] - add r5, r3, r5, asl #2 - sub r3, r8, #-1073741823 - ldr r3, [r5, r3, asl #2] + ldrb r7, [r0, #9] @ zero_extendqisi2 + sub r3, r5, #3168 + ldrh r4, [r0, #12] + ldrh r3, [r3, #-4] + mul r7, r7, r3 + ldr r3, [r5, #-2624] + add r4, r3, r4, asl #2 + sub r3, r7, #-1073741823 + ldr r3, [r4, r3, asl #2] cmn r3, #1 - beq .L3917 - ldr r1, .L3947+4 - movw r2, #1743 - ldr r0, .L3947+8 + beq .L4085 + ldr r1, .L4115+4 + movw r2, #1990 + ldr r0, .L4115+8 bl printk bl dump_stack -.L3917: - mov r6, #0 - sub r5, r5, #4 - mov r10, r6 -.L3918: - cmp r10, r8 - beq .L3946 - ldr r9, [r5, #4]! - cmn r9, #1 - beq .L3919 - ldrb r1, [r4, #2260] @ zero_extendqisi2 - mov r0, r9 +.L4085: + mov r5, #0 + sub r4, r4, #4 + mov r9, r5 +.L4086: + cmp r9, r7 + beq .L4114 + ldr r8, [r4, #4]! + cmn r8, #1 + beq .L4087 + ldr r3, .L4115+12 + mov r0, r8 + ldrb r1, [r3, #2772] @ zero_extendqisi2 mov r1, r1, asl #7 bl __aeabi_uidiv - uxth r3, r0 - str r3, [sp] - ldr r3, .L3947+12 + ldr r3, .L4115+16 ldr r3, [r3] tst r3, #4096 - beq .L3920 - ldr r0, .L3947+16 - mov r2, r9 - ldr r1, [sp] - mov r3, r10 + uxth fp, r0 + beq .L4088 + ldr r0, .L4115+20 + mov r1, fp + mov r2, r8 + mov r3, r9 bl printk -.L3920: - mov r9, r5 - mov fp, r10 -.L3923: - ldr r0, [r9] +.L4088: + mov r8, r4 + mov r10, r9 +.L4091: + ldr r0, [r8] cmn r0, #1 - beq .L3921 - ldrb r1, [r4, #2260] @ zero_extendqisi2 + beq .L4089 + ldr r3, .L4115+12 + ldrb r1, [r3, #2772] @ zero_extendqisi2 mov r1, r1, asl #7 bl __aeabi_uidiv - ldr r3, [sp] uxth r0, r0 - cmp r0, r3 - bne .L3921 - ldrb r3, [r7, #9] @ zero_extendqisi2 - mov r0, fp + cmp r0, fp + bne .L4089 + ldrb r3, [r6, #9] @ zero_extendqisi2 + mov r0, r10 mov r1, r3 str r3, [sp, #4] bl __aeabi_idiv - ldr r2, .L3947+20 + ldr r2, .L4115+24 ldrh r2, [r2] ldr r3, [sp, #4] - mls r3, r3, r0, fp - add r3, r7, r3, asl #1 + mls r3, r3, r0, r10 + add r3, r6, r3, asl #1 ldrh r3, [r3, #16] mla r2, r2, r3, r0 - ldr r0, .L3947+24 + ldr r0, .L4115+28 str r2, [sp, #12] - ldr r1, [r9] + ldr r1, [r8] bl pm_ppa_update_check cmp r0, #0 - beq .L3922 - ldr r3, .L3947 + beq .L4090 + ldr r3, .L4115 mov r2, #4 - ldr r0, .L3947+28 - ldr r1, [r3, #3512] - mov r3, r8 + ldr r0, .L4115+32 + ldr r1, [r3, #-2624] + mov r3, r7 bl rknand_print_hex -.L3922: - add r6, r6, #1 - ldr r0, [r9] +.L4090: + add r5, r5, #1 + ldr r0, [r8] add r1, sp, #12 mov r2, #1 - uxth r6, r6 + uxth r5, r5 bl pm_log2phys mvn r3, #0 - str r3, [r9] -.L3921: - add fp, fp, #1 - add r9, r9, #4 - cmp fp, r8 - bne .L3923 -.L3919: + str r3, [r8] +.L4089: add r10, r10, #1 - b .L3918 -.L3946: - ldr r3, .L3947+12 + add r8, r8, #4 + cmp r10, r7 + bne .L4091 +.L4087: + add r9, r9, #1 + b .L4086 +.L4114: + ldr r3, .L4115+16 + ldr r4, .L4115+12 ldr r3, [r3] tst r3, #4096 - beq .L3925 - ldrh r1, [r7] - mov r2, r6 - ldr ip, [r4, #576] - ldr r0, .L3947+32 + beq .L4093 + ldrh r1, [r6] + mov r2, r5 + ldr ip, [r4, #1088] + ldr r0, .L4115+36 mov r3, r1, asl #1 ldrh r3, [ip, r3] bl printk -.L3925: - ldrh r3, [r7] - ldr r2, [r4, #576] +.L4093: + ldrh r3, [r6] + ldr r2, [r4, #1088] mov r3, r3, asl #1 - strh r6, [r2, r3] @ movhi + strh r5, [r2, r3] @ movhi add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3948: +.L4116: .align 2 -.L3947: - .word .LANCHOR0 - .word .LANCHOR1+2124 +.L4115: + .word .LANCHOR3 + .word .LANCHOR1+2696 .word .LC0 + .word .LANCHOR0 .word .LANCHOR2 - .word .LC295 - .word .LANCHOR0+2994 - .word .LC296 - .word .LC297 - .word .LC298 + .word .LC289 + .word .LANCHOR3-3142 + .word .LC290 + .word .LC291 + .word .LC292 .fnend .size ftl_update_l2p_map, .-ftl_update_l2p_map .align 2 @@ -23736,19 +24683,19 @@ ftl_alloc_new_data_sblk: ldrh r0, [r6] movw r3, #65535 cmp r0, r3 - beq .L3950 + beq .L4118 bl zftl_insert_data_list -.L3950: - ldr r4, .L3958 +.L4118: + ldr r4, .L4126 mov r0, r6 - ldr r1, [r4, #580] + ldr r1, [r4, #1092] add r1, r1, #16 cmp r1, r6 movw r6, #65535 moveq r1, #2 movne r1, #3 bl ftl_open_sblk_init - ldr r3, [r4, #580] + ldr r3, [r4, #1092] cmp r5, r6 ldr r3, [r3, #560] rsb r3, r5, r3 @@ -23756,29 +24703,29 @@ ftl_alloc_new_data_sblk: mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L3952 + beq .L4120 mov r1, r5 - ldr r0, .L3958+4 + ldr r0, .L4126+4 bl printk - ldr r3, [r4, #580] + ldr r3, [r4, #1092] ldr r0, [r3, #564] bl gc_mark_bad_ppa - ldr r3, [r4, #580] + ldr r3, [r4, #1092] mvn r2, #0 str r6, [r3, #560] str r2, [r3, #564] -.L3952: +.L4120: bl ftl_ext_info_flush mov r0, #0 bl ftl_info_flush bl lpa_rebuild_hash mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L3959: +.L4127: .align 2 -.L3958: +.L4126: .word .LANCHOR0 - .word .LC299 + .word .LC293 .fnend .size ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk .align 2 @@ -23792,316 +24739,332 @@ ftl_write_commit: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldr r6, .L4023 - mov r8, r6 -.L3961: - ldrb r2, [r6, #2284] @ zero_extendqisi2 + ldr r6, .L4194 + mov r7, r6 +.L4129: + ldrb r2, [r6, #2800] @ zero_extendqisi2 cmp r2, #0 - beq .L3963 - ldrb r3, [r6, #2308] @ zero_extendqisi2 + beq .L4131 + ldrb r3, [r6, #2824] @ zero_extendqisi2 sub r2, r2, #1 - strb r2, [r6, #2284] + strb r2, [r6, #2800] str r3, [sp, #16] mov r3, #48 ldr r1, [sp, #16] mul r3, r3, r1 - ldr r1, .L4023+4 + ldr r1, .L4194+4 add r1, r1, r3 add r3, r6, r3 str r1, [sp, #20] - ldr r2, [r3, #744] - ldrb r1, [r3, #724] @ zero_extendqisi2 - ldr r3, [r6, #2268] + ldr r2, [r3, #1256] + ldrb r1, [r3, #1236] @ zero_extendqisi2 + ldr r3, [r6, #2784] cmp r2, r3 - strb r1, [r6, #2308] - bcc .L3964 - ldr r1, .L4023+8 - movw r2, #510 - ldr r0, .L4023+12 + strb r1, [r6, #2824] + bcc .L4132 + ldr r1, .L4194+8 + mov r2, #604 + ldr r0, .L4194+12 bl printk bl dump_stack -.L3964: +.L4132: ldr r2, [sp, #16] mov r3, #48 - ldr r1, [r8, #2268] - mla r2, r3, r2, r8 - ldr r9, [r2, #744] - cmp r9, r1 - bcc .L3965 + ldr r1, [r7, #2784] + mla r2, r3, r2, r7 + ldr r8, [r2, #1256] + cmp r8, r1 + bcc .L4133 ldr r0, [sp, #20] bl zbuf_free mvn r0, #0 - b .L4019 -.L3965: - ldr r1, [r2, #736] - ldr fp, [r2, #728] - ldrb r7, [r2, #765] @ zero_extendqisi2 - ldrb r2, [r2, #764] @ zero_extendqisi2 + b .L4190 +.L4133: + ldr r1, [r2, #1248] + ldr fp, [r2, #1240] + ldrb r4, [r2, #1277] @ zero_extendqisi2 + ldrb r2, [r2, #1276] @ zero_extendqisi2 str r1, [sp, #8] str r2, [sp, #12] - ldrb r2, [r6, #2285] @ zero_extendqisi2 + ldrb r2, [r6, #2801] @ zero_extendqisi2 cmp r2, #0 - beq .L3967 - ldr r2, .L4023+16 - ldrb r4, [r2, #-3240] @ zero_extendqisi2 - ldr r2, .L4023+4 - mla r4, r3, r4, r2 -.L3968: - ldrb r2, [r4] @ zero_extendqisi2 + beq .L4135 + ldr r2, .L4194+16 + ldrb r5, [r2, #-168] @ zero_extendqisi2 + ldr r2, .L4194+4 + mla r5, r3, r5, r2 +.L4136: + ldrb r2, [r5] @ zero_extendqisi2 cmp r2, #255 - ldrne r1, .L4023+4 - mlane r4, r3, r2, r1 - bne .L3968 -.L4021: - ldr r3, [r4, #20] - cmp r3, r9 - bne .L3967 + ldrne r1, .L4194+4 + mlane r5, r3, r2, r1 + bne .L4136 +.L4192: + ldr r3, [r5, #20] + cmp r3, r8 + bne .L4135 ldr r3, [sp, #12] - mov r1, r7, asl #9 - ldr r0, [r4, #4] + mov r1, r4, asl #9 + ldr r0, [r5, #4] mov r2, r3, asl #9 add r0, r0, r1 add r1, fp, r1 bl ftl_memcpy + ldrb r3, [r7, #2772] @ zero_extendqisi2 + ldr r1, [r5, #12] + mov r0, #2 + sub r3, r3, #2 + ldr r2, [r5, #4] + add r1, r1, #16 + add r2, r2, r3, asl #9 + bl ftl_debug_info_fill ldr r0, [sp, #20] bl zbuf_free - b .L3961 -.L3967: - mov r0, r9 + b .L4129 +.L4135: + mov r0, r8 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #28] - bne .L3971 - mov r0, r9 + bne .L4139 + mov r0, r8 add r1, sp, #28 mov r2, #0 bl pm_log2phys -.L3971: - ldr r4, [r8, #580] - mov r3, #0 - ldr r2, .L4023+4 - add r4, r4, #16 -.L3974: - ldr r1, [r2, #20] - cmp r1, r9 - bne .L3972 - ldrb r1, [r2, #2] @ zero_extendqisi2 - tst r1, #8 - beq .L3972 - mov r10, #48 - bic r1, r1, #8 - mla r10, r10, r3, r8 - ldr r3, [r10, #748] - strb r1, [r10, #726] - ldr r5, [r10, #728] - str r3, [sp, #28] - b .L3973 -.L3972: - add r3, r3, #1 - add r2, r2, #48 - cmp r3, #32 - bne .L3974 - mov r5, #0 -.L3973: - ldrb r3, [r8, #2260] @ zero_extendqisi2 +.L4139: + ldr r5, [r7, #1092] + mov r2, #0 + ldr r10, .L4194+4 + mov r9, r2 + ldr r0, [sp, #28] + add r5, r5, #16 + add r1, r10, #1536 +.L4141: + ldr r3, [r10, #20] + cmp r3, r8 + bne .L4140 + ldrb r3, [r10, #2] @ zero_extendqisi2 + tst r3, #8 + bicne r3, r3, #8 + strneb r3, [r10, #2] + ldrne r9, [r10, #4] + movne r2, #1 + ldrne r0, [r10, #24] +.L4140: + add r10, r10, #48 + cmp r10, r1 + bne .L4141 + cmp r2, #0 + ldrb r3, [r7, #2772] @ zero_extendqisi2 ldr r2, [sp, #12] + strne r0, [sp, #28] cmp r2, r3 - bcs .L3998 - cmp r5, #0 - beq .L3976 - cmp r7, #0 - beq .L3977 + bcs .L4166 + cmp r9, #0 + beq .L4144 + cmp r4, #0 + beq .L4145 mov r0, fp - mov r1, r5 - mov r2, r7, asl #9 + mov r1, r9 + mov r2, r4, asl #9 bl ftl_memcpy - ldr r4, [r6, #580] - add r4, r4, #48 -.L3977: + ldr r5, [r6, #1092] + add r5, r5, #48 +.L4145: ldr r3, [sp, #12] - ldrb r2, [r8, #2260] @ zero_extendqisi2 - add r7, r7, r3 - cmp r7, r2 - ldrcs r4, [r6, #580] - addcs r4, r4, #16 - bcs .L3998 - rsb r2, r7, r2 - mov r1, r7, asl #9 + ldrb r10, [r7, #2772] @ zero_extendqisi2 + add r2, r4, r3 + cmp r2, r10 + ldrcs r5, [r6, #1092] + addcs r5, r5, #16 + bcs .L4166 + mov r1, r2, asl #9 + rsb r2, r2, r10 add r0, fp, r1 - add r1, r5, r1 + add r1, r9, r1 mov r2, r2, asl #9 bl ftl_memcpy - b .L3998 -.L3976: + b .L4166 +.L4144: ldr r3, [sp, #28] cmn r3, #1 - beq .L3979 + beq .L4147 mov r0, #1 bl buf_alloc mov r1, #1 ldr r3, [sp, #28] - mov r5, r0 - str r9, [r0, #20] + mov r9, r0 + str r8, [r0, #20] str r3, [r0, #24] bl sblk_read_page - ldr r3, [r5, #12] + ldr r3, [r9, #12] ldr r10, [r3, #12] ldr r3, [r3, #4] add r10, r10, #1 - cmp r3, r9 - bne .L3980 - ldr r3, [r5, #36] + cmp r3, r8 + bne .L4148 + ldr r3, [r9, #36] cmn r3, #1 - bne .L3981 -.L3980: - ldr r2, [r8, #580] - ldr r0, .L4023+20 + bne .L4149 +.L4148: + ldr r2, [r7, #1092] + ldr r0, .L4194+20 ldr r3, [r2, #552] add r3, r3, #1 str r3, [r2, #552] - ldr r3, [r5, #36] - ldrb r1, [r5, #1] @ zero_extendqisi2 + ldr r3, [r9, #36] + ldrb r1, [r9, #1] @ zero_extendqisi2 ldr r2, [sp, #28] str r3, [sp] - mov r3, r9 + mov r3, r8 bl printk mov r2, #4 - ldr r0, .L4023+24 + ldr r0, .L4194+24 mov r3, r2 - ldr r1, [r5, #12] + ldr r1, [r9, #12] bl rknand_print_hex -.L3981: - ldr r3, [r5, #12] +.L4149: + ldr r3, [r9, #12] ldr r3, [r3, #4] - cmp r3, r9 - bne .L3982 - ldr r3, [r5, #36] + cmp r3, r8 + bne .L4150 + ldr r3, [r9, #36] cmn r3, #1 - bne .L3983 -.L3982: - ldr r1, .L4023+8 - movw r2, #581 - ldr r0, .L4023+12 + bne .L4151 +.L4150: + ldr r1, .L4194+8 + movw r2, #691 + ldr r0, .L4194+12 bl printk bl dump_stack -.L3983: - cmp r7, #0 - beq .L3984 +.L4151: + cmp r4, #0 + beq .L4152 ldr r3, [sp, #28] - mov r2, r7, asl #9 + mov r2, r4, asl #9 cmn r3, #1 - beq .L3985 + beq .L4153 mov r0, fp - ldr r1, [r5, #4] + ldr r1, [r9, #4] bl ftl_memcpy - b .L3986 -.L3979: - cmp r7, #0 - moveq r5, r7 - moveq r10, r7 - beq .L3984 - mov r2, r7, asl #9 - mov r10, r5 -.L3985: + b .L4154 +.L4147: + cmp r4, #0 + moveq r9, r4 + moveq r10, r4 + beq .L4152 + mov r2, r4, asl #9 + mov r10, r9 +.L4153: mov r0, fp mov r1, #0 bl ftl_memset -.L3986: - ldr r4, [r6, #580] - add r4, r4, #48 -.L3984: +.L4154: + ldr r5, [r6, #1092] + add r5, r5, #48 +.L4152: ldr r3, [sp, #12] - ldrb r2, [r6, #2260] @ zero_extendqisi2 - add r7, r7, r3 - cmp r7, r2 - bcc .L3987 - ldrhi r4, [r6, #580] - addhi r4, r4, #16 - b .L3988 -.L3987: + ldrb r2, [r6, #2772] @ zero_extendqisi2 + add r4, r4, r3 + cmp r4, r2 + bcc .L4155 + ldrhi r5, [r6, #1092] + addhi r5, r5, #16 + b .L4156 +.L4155: ldr r3, [sp, #28] - rsb r2, r7, r2 - mov r7, r7, asl #9 + rsb r2, r4, r2 + mov r4, r4, asl #9 cmn r3, #1 mov r2, r2, asl #9 - beq .L3989 - ldr r1, [r5, #4] - add r0, fp, r7 - add r1, r1, r7 + beq .L4157 + ldr r1, [r9, #4] + add r0, fp, r4 + add r1, r1, r4 bl ftl_memcpy - b .L3988 -.L3989: - add r0, fp, r7 + b .L4156 +.L4157: + add r0, fp, r4 mov r1, #0 bl ftl_memset -.L3988: - cmp r5, #0 - beq .L3975 - ldrb r3, [r5, #2] @ zero_extendqisi2 - mov r1, r5 - ldr r0, .L4023+28 +.L4156: + cmp r9, #0 + beq .L4143 + ldrb r3, [r9, #2] @ zero_extendqisi2 + mov r1, r9 + ldr r0, .L4194+28 bic r3, r3, #8 - strb r3, [r5, #2] + strb r3, [r9, #2] bl buf_remove_buf - mov r0, r5 + mov r0, r9 bl zbuf_free - b .L3975 -.L3998: + b .L4143 +.L4166: mov r10, #0 -.L3975: - ldrh r3, [r4, #6] +.L4143: + ldrh r3, [r5, #6] cmp r3, #0 - bne .L3990 + bne .L4158 bl ftl_flush - mov r0, r4 + mov r0, r5 bl ftl_alloc_new_data_sblk -.L3990: - mov r0, r4 - ldr r5, .L4023+16 +.L4158: + mov r0, r5 + mov r4, #48 bl ftl_get_new_free_page - mov r3, #48 - ldr r2, [sp, #16] - ldr ip, [sp, #8] - mul r3, r3, r2 - add r2, r8, r3 - ldr r1, [r2, #740] - str r9, [ip, #4] - str r10, [ip, #12] - str r1, [ip] - ldr r1, [sp, #28] - str r1, [ip, #8] - str r1, [r2, #752] - mvn r1, #0 - strb r1, [r2, #724] - ldrb r1, [r2, #726] @ zero_extendqisi2 - str r0, [r2, #748] - orr r1, r1, #10 - strb r1, [r2, #726] - ldr r2, .L4023+4 - ldrh r10, [r4, #10] - ldrh r9, [r4, #12] - add r3, r2, r3 - ldr r0, .L4023+32 - add r9, r10, r9 + ldr r3, [sp, #16] + str r0, [sp, #12] + mov r0, #2 + mul r4, r4, r3 + ldr r3, [sp, #8] + add r9, r7, r4 + mov r1, r3 + ldr r2, [r9, #1252] + str r10, [r3, #12] + stmia r3, {r2, r8} + ldr r2, [sp, #28] + ldrb r8, [r7, #2772] @ zero_extendqisi2 + str r2, [r3, #8] + mov r2, #0 + str r2, [r1, #16]! + sub r2, r8, #2 + add r2, fp, r2, asl #9 + bl ftl_debug_info_fill + ldr r3, .L4194+4 + add r4, r3, r4 + ldr r2, [sp, #28] + ldr ip, [sp, #12] ldr r1, [sp, #20] - sub r9, r9, #1 - strh r9, [r3, #32] @ movhi + str r2, [r9, #1264] + mvn r2, #0 + strb r2, [r9, #1236] + ldrb r2, [r9, #1238] @ zero_extendqisi2 + str ip, [r9, #1260] + orr r2, r2, #10 + strb r2, [r9, #1238] + ldrh r9, [r5, #10] + ldrh r8, [r5, #12] + add r8, r9, r8 + sub r8, r8, #1 + strh r8, [r4, #32] @ movhi + ldr r4, .L4194+16 + sub r0, r4, #168 bl buf_add_tail - ldrb r3, [r8, #2285] @ zero_extendqisi2 + ldrb r3, [r7, #2801] @ zero_extendqisi2 add r3, r3, #1 - strb r3, [r8, #2285] + strb r3, [r7, #2801] bl timer_get_time - ldrb r3, [r8, #2285] @ zero_extendqisi2 - ldrh r2, [r4, #6] + ldrb r3, [r7, #2801] @ zero_extendqisi2 + ldrh r2, [r5, #6] cmp r3, #2 - str r0, [r5, #-3236] - bhi .L3991 + str r0, [r4, #-164] + bhi .L4159 cmp r2, #1 - bne .L3963 -.L3991: - ldrb r1, [r4, #5] @ zero_extendqisi2 + bne .L4131 +.L4159: + ldrb r1, [r5, #5] @ zero_extendqisi2 mov lr, #48 - ldrb r0, [r5, #-3240] @ zero_extendqisi2 + ldrb r0, [r4, #-168] @ zero_extendqisi2 cmp r1, #0 mov r1, #0 moveq ip, #1 @@ -24109,52 +25072,51 @@ ftl_write_commit: cmp r2, #1 mov r2, r0 moveq ip, r3 -.L3995: +.L4163: cmp r1, ip mlane r2, lr, r2, r6 addne r1, r1, #1 - ldrneb r2, [r2, #724] @ zero_extendqisi2 - bne .L3995 -.L4022: - strb r2, [r5, #-3240] + ldrneb r2, [r2, #1236] @ zero_extendqisi2 + bne .L4163 +.L4193: + strb r2, [r4, #-168] uxtb r1, r1 - ldr r2, .L4023+4 + ldr r2, .L4194+4 rsb r3, r1, r3 - strb r3, [r8, #2285] + strb r3, [r7, #2801] mov r3, #48 mla r0, r3, r0, r2 bl sblk_prog_page - ldrh r3, [r4, #6] + ldrh r3, [r5, #6] cmp r3, #1 - bne .L3963 + bne .L4131 bl sblk_wait_write_queue_completed bl ftl_write_completed - mov r0, r4 + mov r0, r5 bl ftl_write_last_log_page - mov r0, r4 + mov r0, r5 bl ftl_alloc_new_data_sblk -.L3963: - ldrb r4, [r6, #2284] @ zero_extendqisi2 +.L4131: + ldrb r4, [r6, #2800] @ zero_extendqisi2 cmp r4, #0 - bne .L3961 + bne .L4129 bl ftl_write_completed mov r0, r4 -.L4019: +.L4190: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4024: +.L4195: .align 2 -.L4023: +.L4194: .word .LANCHOR0 - .word .LANCHOR0+724 - .word .LANCHOR1+2144 + .word .LANCHOR0+1236 + .word .LANCHOR1+2716 .word .LC0 .word .LANCHOR3 - .word .LC300 - .word .LC230 - .word .LANCHOR0+3533 - .word .LANCHOR3-3240 + .word .LC294 + .word .LC238 + .word .LANCHOR0+2776 .fnend .size ftl_write_commit, .-ftl_write_commit .align 2 @@ -24162,28 +25124,29 @@ ftl_write_commit: .type gc_do_copy_back, %function gc_do_copy_back: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L4168 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 sub sp, sp, #76 - ldrb r0, [r3, #2945] @ zero_extendqisi2 - ldr r8, [r3, #580] + ldr r8, .L4344 + ldr r5, .L4344+4 + ldrb r0, [r8, #-3187] @ zero_extendqisi2 + ldr r3, [r5, #1092] cmp r0, #0 - bne .L4026 - mov r7, r3 + str r3, [sp, #12] + bne .L4197 bl buf_alloc subs r4, r0, #0 - beq .L4025 - ldr r6, .L4168+4 - ldrh r5, [r6, #22] - mov r0, r5 - add r5, r5, #1 + beq .L4196 + ldr r7, .L4344+8 + ldrh r6, [r7, #22] + mov r0, r6 + add r6, r6, #1 bl gc_get_src_ppa_from_index mov r1, #1 - strh r5, [r6, #22] @ movhi + strh r6, [r7, #22] @ movhi str r0, [r4, #24] mov r9, r0 mov r0, r4 @@ -24191,146 +25154,153 @@ gc_do_copy_back: ldr r3, [r4, #36] cmn r3, #1 cmpne r3, #512 - bne .L4028 - ldr r1, .L4168+8 - mov r2, #864 - ldr r0, .L4168+12 + bne .L4199 + ldr r1, .L4344+12 + movw r2, #1032 + ldr r0, .L4344+16 bl printk bl dump_stack -.L4028: +.L4199: ldr r3, [r4, #12] - ldr r5, [r3, #4] - mov r0, r5 + ldr r6, [r3, #4] + mov r0, r6 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #48] - bne .L4029 - mov r0, r5 + bne .L4200 + mov r0, r6 add r1, sp, #48 mov r2, #0 bl pm_log2phys -.L4029: +.L4200: ldr r8, [sp, #48] cmp r8, r9 - bne .L4030 - ldr r1, .L4168+16 + bne .L4201 + ldr r1, .L4344+20 mov r3, #0 -.L4033: +.L4204: add r2, r1, r3 ldr r0, [r2, #20] - cmp r0, r5 - bne .L4031 + cmp r0, r6 + bne .L4202 ldrb r2, [r2, #2] @ zero_extendqisi2 tst r2, #2 - beq .L4031 + beq .L4202 mov r0, r4 bl zbuf_free - ldr r3, .L4168+20 + ldr r3, .L4344+24 ldr r3, [r3] tst r3, #256 - beq .L4025 - mov r1, r5 + beq .L4196 + mov r1, r6 mov r2, r8 - ldrh r3, [r6, #22] - ldr r0, .L4168+24 + ldrh r3, [r7, #22] + ldr r0, .L4344+28 bl printk - b .L4025 -.L4031: + b .L4196 +.L4202: add r3, r3, #48 cmp r3, #1536 - bne .L4033 - mov r3, #0 - strb r3, [r4, #41] - ldrb r3, [r7, #2260] @ zero_extendqisi2 - str r5, [r4, #20] + bne .L4204 + ldrb r3, [r5, #2772] @ zero_extendqisi2 + mov r2, #0 + str r6, [r4, #20] + strb r2, [r4, #41] strb r3, [r4, #40] - ldrb r3, [r4, #2] @ zero_extendqisi2 - orr r3, r3, #10 - strb r3, [r4, #2] ldr r3, [r4, #12] - ldr r3, [r3] - str r3, [r4, #16] - ldr r3, .L4168+20 + ldr r1, [r3] + str r1, [r4, #16] + str r2, [r3, #16] + ldr r3, .L4344+24 ldr r3, [r3] tst r3, #256 - beq .L4034 - mov r0, r5 - ldr r9, [sp, #48] + beq .L4205 + mov r0, r6 bl lpa_hash_get_ppa - mov r1, r5 + mov r1, r6 str r8, [sp] mov r3, r0 - ldrh r2, [r6, #22] - ldr r0, .L4168+28 + ldrh r2, [r7, #22] + ldr r0, .L4344+32 str r2, [sp, #4] - mov r2, r9 + mov r2, r8 bl printk -.L4034: +.L4205: mov r0, r4 bl ftl_gc_write_buf bl ftl_write_commit - ldr r2, [r7, #2288] + ldr r2, [r5, #2804] ldr r3, [r2, #60] add r3, r3, #1 str r3, [r2, #60] - ldrh r3, [r6, #24] + ldrh r3, [r7, #24] add r3, r3, #1 - strh r3, [r6, #24] @ movhi - b .L4025 -.L4030: - ldr r3, .L4168+20 + strh r3, [r7, #24] @ movhi + b .L4196 +.L4201: + ldr r3, .L4344+24 ldr r3, [r3] tst r3, #256 - beq .L4036 - mov r0, r5 + beq .L4207 + mov r0, r6 bl lpa_hash_get_ppa - mov r1, r5 + mov r1, r6 str r9, [sp] mov r3, r0 - ldrh r2, [r6, #22] - ldr r0, .L4168+28 + ldrh r2, [r7, #22] + ldr r0, .L4344+32 str r2, [sp, #4] mov r2, r8 bl printk -.L4036: +.L4207: mov r0, r4 bl zbuf_free - b .L4025 -.L4026: - ldrb r4, [r3, #2937] @ zero_extendqisi2 - ldr r6, .L4168+4 + b .L4196 +.L4197: + ldr r3, [sp, #12] + ldrb r9, [r3, #89] @ zero_extendqisi2 + ldrb r3, [r8, #-3195] @ zero_extendqisi2 + uxth fp, r9 + cmp r3, fp + movhi r6, #1 + bhi .L4209 + cmp fp, #2 + movcc r6, fp + movcs r6, #2 +.L4209: + ldrb r4, [r8, #-3196] @ zero_extendqisi2 + ldr r10, .L4344 cmp r4, #3 - ldrb r9, [r8, #89] @ zero_extendqisi2 - bne .L4037 - ldrb r2, [r3, #684] @ zero_extendqisi2 + ldr r3, .L4344+8 + bne .L4210 + ldrb r2, [r5, #1196] @ zero_extendqisi2 cmp r2, #0 - beq .L4038 - movw r3, #566 + beq .L4211 + movw r2, #2102 mov r1, r9 - ldrh r7, [r6, r3] + ldrh r7, [r3, r2] mov r0, r7 bl __aeabi_idiv - ldr r3, .L4168+32 - ldrb r2, [r3, #-2503] @ zero_extendqisi2 - cmp r2, #0 + ldrb r3, [r10, #-2612] @ zero_extendqisi2 + cmp r3, #0 uxth r5, r0 - beq .L4039 - ldr r3, .L4168+36 + beq .L4212 + ldr r3, .L4344+36 mov r0, r0, asl #1 ldrh r3, [r3, r0] cmp r3, #0 moveq r4, #1 movne r4, #2 - b .L4040 -.L4039: - ldrb r3, [r3, #-2502] @ zero_extendqisi2 + b .L4213 +.L4212: + ldrb r3, [r10, #473] @ zero_extendqisi2 cmp r3, #0 moveq r4, #1 - beq .L4040 + beq .L4213 sub r3, r5, #62 cmp r3, #2160 movcs r4, #2 - bcs .L4040 + bcs .L4213 mov r1, r4 mov r0, r5 bl __aeabi_uidivmod @@ -24338,636 +25308,766 @@ gc_do_copy_back: cmp r1, #0 movne r4, #1 moveq r4, #2 -.L4040: - smulbb r2, r5, r9 - rsb r2, r2, r7 - b .L4160 -.L4038: - ldrb r3, [r3, #2944] @ zero_extendqisi2 - cmp r3, #0 - movw r3, #566 - ldrh r7, [r6, r3] +.L4213: + smulbb r1, r5, fp + rsb r1, r1, r7 + uxth r3, r1 + str r3, [sp, #16] + b .L4216 +.L4211: + ldrb r2, [r10, #-3188] @ zero_extendqisi2 + cmp r2, #0 + movw r2, #2102 + ldrh r7, [r3, r2] mov r0, r7 - beq .L4042 + beq .L4215 add r1, r9, r9, asl #1 - sub r9, r9, r9, asl #2 bl __aeabi_idiv + ldr r2, .L4344+40 + mul r9, r9, r0 uxth r5, r0 - smulbb r2, r9, r5 - add r2, r7, r2 -.L4160: - uxth r3, r2 - str r3, [sp, #32] - b .L4043 -.L4042: + sub r9, r9, r9, asl #2 + add r1, r7, r9 + smull r2, r3, r1, r2 + sub r1, r3, r1, asr #31 + uxth r3, r1 + str r3, [sp, #16] + ldr r3, .L4344+4 + ldrb r3, [r3, #1197] @ zero_extendqisi2 + cmp r3, #0 + addne r5, r5, r5, asl #1 + uxthne r5, r5 + b .L4216 +.L4215: mov r1, r9 bl __aeabi_idiv - ldr r2, .L4168+40 + ldr r2, .L4344+44 + smulbb r1, r0, fp mov r3, r0, asl #1 - smulbb r0, r0, r9 - ldrh r10, [r2, r3] - and r3, r10, #7 - str r3, [sp, #28] - rsb r0, r0, r7 - mov r5, r10, lsr #3 - uxth r3, r0 - str r3, [sp, #32] + ldrh r2, [r2, r3] + rsb r1, r1, r7 + and r3, r2, #7 + str r3, [sp, #20] + mov r5, r2, lsr #3 + uxth r3, r1 + str r3, [sp, #16] mla r9, r9, r5, r3 - ldr r3, [sp, #28] + ldr r3, [sp, #20] cmp r3, #1 add r9, r9, r9, asl #1 uxth r7, r9 - bne .L4044 - b .L4043 -.L4037: - ldrb r3, [r3, #2938] @ zero_extendqisi2 + bne .L4217 + b .L4216 +.L4210: + ldrb r2, [r10, #-3194] @ zero_extendqisi2 mov r1, r9 - cmp r3, #0 - movw r3, #566 - ldrh r7, [r6, r3] + cmp r2, #0 + movw r2, #2102 + ldrh r7, [r3, r2] mov r0, r7 - bne .L4045 + bne .L4218 bl __aeabi_idiv mov r4, #1 uxth r5, r0 - smulbb r2, r5, r9 - rsb r2, r2, r7 - uxth r3, r2 - str r3, [sp, #32] - b .L4043 -.L4045: + smulbb r1, r5, fp + rsb r1, r1, r7 + uxth r3, r1 + str r3, [sp, #16] + b .L4216 +.L4218: bl __aeabi_idiv mov r4, #2 uxth r5, r0 - smulbb r2, r5, r9 - rsb r2, r2, r7 - uxth r3, r2 - str r3, [sp, #32] -.L4043: - ldr r10, .L4168+36 + smulbb r1, r5, fp + rsb r1, r1, r7 + uxth r3, r1 + str r3, [sp, #16] +.L4216: + mul r3, r6, r4 + ldr r10, .L4344+36 mov r2, #0 - ldr r1, .L4168+32 - ldr ip, .L4168+44 + ldr ip, .L4344 add r10, r10, r5, asl #1 -.L4046: - ldrb r9, [r8, #89] @ zero_extendqisi2 - uxth lr, r2 - mul r3, r9, r4 - cmp lr, r3 - bge .L4096 - ldr r0, .L4168+48 - add r3, r7, lr - ldrh r0, [r0] - mul r0, r9, r0 - sub r0, r0, #1 - cmp r3, r0 - bne .L4047 - ldrb r0, [r1, #-2503] @ zero_extendqisi2 - cmp r0, #0 - beq .L4096 + ldr r1, .L4344+8 + str r3, [sp, #20] + b .L4219 +.L4339: ldrh r0, [r10] cmp r0, r5 - bcs .L4096 + bcs .L4277 tst lr, #1 - beq .L4096 -.L4047: - ldr fp, [ip, #-3312] + beq .L4277 +.L4220: + ldr fp, [r8, #-240] ldr r0, [fp, r3, asl #2] cmn r0, #1 - bne .L4048 - ldrh r9, [r6, #22] - ldrh r0, [r6, #20] - cmp r0, r9 - bls .L4025 - ldrb r0, [r1, #-2503] @ zero_extendqisi2 + beq .L4338 +.L4223: + add r2, r2, #1 +.L4219: + ldr r3, [sp, #20] + uxth lr, r2 + cmp lr, r3 + bge .L4277 + ldr r0, .L4344+48 + add r3, r7, lr + ldr r9, [sp, #12] + ldrh r0, [r0] + ldrb r9, [r9, #89] @ zero_extendqisi2 + mul r0, r9, r0 + ldrb r9, [r8, #477] @ zero_extendqisi2 + rsb r0, r9, r0 + cmp r3, r0 + blt .L4220 + ldrb r0, [ip, #-2612] @ zero_extendqisi2 cmp r0, #0 - beq .L4049 + bne .L4339 +.L4277: + mov r3, #1 + str r3, [sp, #20] +.L4217: + rsb r1, r6, r6, asl #15 + mul r3, r6, r4 + mov r1, r1, asl #1 + smulbb r1, r1, r4 + str r3, [sp, #24] + add r1, r7, r1 + uxth r3, r1 + ldr r1, .L4344+36 + str r3, [sp, #36] + mov r3, #0 + str r3, [sp, #28] + add r3, r1, r5, asl #1 + str r3, [sp, #32] + b .L4222 +.L4338: + ldrh r9, [r1, #22] + ldrh r0, [r1, #20] + cmp r0, r9 + bls .L4196 + ldrb r0, [ip, #-2612] @ zero_extendqisi2 + cmp r0, #0 + beq .L4224 ldrh r0, [r10] cmp r0, r5 - bcs .L4049 + bcs .L4224 tst lr, #1 ldrne r0, [fp, r0, asl #2] strne r0, [fp, r3, asl #2] - bne .L4048 -.L4049: + bne .L4223 +.L4224: mov r0, r9 - str ip, [sp, #44] - str r1, [sp, #40] + str r1, [sp, #36] + str ip, [sp, #32] add r9, r9, #1 - str r2, [sp, #36] - str r3, [sp, #28] + str r2, [sp, #28] + str r3, [sp, #24] bl gc_get_src_ppa_from_index - strh r9, [r6, #22] @ movhi - ldr r3, [sp, #28] - ldr ip, [sp, #44] - ldr r1, [sp, #40] - ldr r2, [sp, #36] + ldr r3, .L4344+8 + strh r9, [r3, #22] @ movhi + ldr r3, [sp, #24] + ldr r1, [sp, #36] + ldr ip, [sp, #32] str r0, [fp, r3, asl #2] -.L4048: - add r2, r2, #1 - b .L4046 -.L4096: - mov r3, #1 - str r3, [sp, #28] -.L4044: - ldr r3, .L4168+20 - ldr r3, [r3] - tst r3, #256 - beq .L4051 - ldr r3, .L4168+44 - movw r2, #566 - ldrh r2, [r6, r2] - mov r1, r5 - ldr r0, .L4168+52 - ldr r3, [r3, #-3312] - str r2, [sp] - ldr r2, [r3, r7, asl #2] - add r3, r3, r7, asl #2 - str r2, [sp, #4] - ldr r3, [r3, #4] - ldr r2, .L4168+36 - str r7, [sp, #12] - str r3, [sp, #8] - mov r3, r5, asl #1 - ldrh r3, [r2, r3] ldr r2, [sp, #28] - str r3, [sp, #16] - ldr r3, [sp, #32] - bl printk -.L4051: - ldr r2, .L4168+36 - mov r3, #0 - str r3, [sp, #36] - add r3, r2, r5, asl #1 - str r3, [sp, #40] -.L4052: - ldrb r1, [r8, #89] @ zero_extendqisi2 - ldrh r9, [sp, #36] - ldr r10, .L4168 - mul r3, r1, r4 - cmp r9, r3 - bge .L4164 - ldr r2, [r10, #2940] - add fp, r7, r9 - ldrb r2, [r2, fp] @ zero_extendqisi2 - cmp r2, #255 - bne .L4053 - mov r0, #0 - bl buf_alloc - subs r6, r0, #0 - bne .L4054 - bl sblk_wait_write_queue_completed - bl ftl_write_completed - bl gc_write_completed - bl gc_free_temp_buf - mov r0, r6 - bl buf_alloc - subs r6, r0, #0 - beq .L4025 -.L4054: - ldrb r1, [r6, #1] @ zero_extendqisi2 - ldr r2, [r10, #2940] - ldrb r3, [sp, #28] @ zero_extendqisi2 - ldr ip, .L4168+48 - strb r1, [r2, fp] - ldrb r2, [r10, #2319] @ zero_extendqisi2 - ldrh r1, [ip] - add r2, r2, #1 - strb r3, [r6, #45] - strb r2, [r10, #2319] - add r2, r9, r7 - strh r2, [r6, #32] @ movhi - ldrb r2, [r8, #89] @ zero_extendqisi2 - mul r2, r2, r1 - ldr r1, .L4168+44 - sub r2, r2, #1 - cmp fp, r2 - bne .L4055 - ldr r2, .L4168+32 - ldrb r2, [r2, #-2503] @ zero_extendqisi2 - cmp r2, #0 - beq .L4056 - ldr r3, [sp, #40] - ldrh r2, [r3] - cmp r2, r5 - bcs .L4056 - tst r9, #1 - bne .L4055 -.L4056: - ldr r2, [r1, #-3316] - mvn r0, #0 - str ip, [sp, #44] - str r0, [r2, fp, asl #2] - ldrh r0, [ip] - ldrb r2, [r10, #2964] @ zero_extendqisi2 - ldr r1, [r1, #-3316] - mul r2, r2, r0 - ldr r0, [r6, #4] - mov r2, r2, asl #2 - bl ftl_memcpy - ldrb r3, [r10, #2964] @ zero_extendqisi2 - ldr r0, [r6, #4] - ldr r10, .L4168 - ldr ip, [sp, #44] - ldrh r2, [ip] - mul r2, r3, r2 - ldr r3, .L4168+32 - ldrb r3, [r3, #-2502] @ zero_extendqisi2 - cmp r3, #0 - mov r2, r2, asl #2 - ldrne r1, .L4168 - mov r3, r2 - add r0, r0, r3 - ldr r3, .L4168+44 - ldrneb r1, [r1, #2260] @ zero_extendqisi2 - rsbne r2, r2, r1, asl #9 - ldr r1, [r3, #-3312] - bl ftl_memcpy - ldrb r2, [r10, #2260] @ zero_extendqisi2 - mov r1, #0 - ldr r0, [r6, #12] - mov r2, r2, asl #1 - bl ftl_memset - ldr r2, [r6, #12] - ldr r1, .L4168+56 - str r1, [r2] - ldr r1, .L4168+48 - ldr r2, [r6, #12] - ldrh r0, [r1] - ldrb r1, [r10, #2964] @ zero_extendqisi2 - mul r1, r1, r0 - ldr r0, [r6, #4] - mov r1, r1, asl #2 - str r2, [sp, #44] - bl js_hash - ldr r3, [r10, #580] - ldr r2, [sp, #44] - str r0, [r2, #4] - ldr r2, [r6, #12] - ldr r3, [r3, #132] - str r3, [r2, #8] - b .L4053 -.L4055: - ldr r2, [r1, #-3312] - mov r0, r6 - mov r1, #1 - ldr r2, [r2, fp, asl #2] - str r2, [r6, #24] - bl sblk_read_page - ldr r2, [r6, #36] - cmn r2, #1 - cmpne r2, #512 - bne .L4059 - ldr r2, .L4168+60 - ldrb r0, [r10, #676] @ zero_extendqisi2 - ldrh r1, [r2] - rsb r0, r0, #24 - ldr r2, [r6, #24] - rsb r0, r1, r0 - mov r2, r2, lsr r1 - mvn r1, #0 - bic r0, r2, r1, asl r0 - ldrb r1, [r10, #2930] @ zero_extendqisi2 - bl __aeabi_uidiv - mov r1, #0 - uxth r0, r0 - bl ftl_sblk_dump - ldr r3, [r6, #36] - cmn r3, #1 - cmpne r3, #512 - ldreq r3, [r6, #12] - mvneq r2, #0 - streq r2, [r3, #4] -.L4059: - ldr r3, [r6, #36] - cmn r3, #1 - cmpne r3, #512 - bne .L4061 - ldr r1, .L4168+8 - movw r2, #1003 - ldr r0, .L4168+12 - bl printk - bl dump_stack -.L4061: - ldr r3, [r6, #12] - ldr r2, .L4168 - ldr r1, [r3, #4] - ldr r2, [r2, #2268] - cmp r1, r2 - mvncs r2, #0 - strcs r2, [r3, #4] - ldr r3, [r6, #12] - ldr r2, [r3, #4] - ldr r3, .L4168+44 - ldr r3, [r3, #-3316] - str r2, [r3, fp, asl #2] - ldr r3, [r6, #12] - ldr r2, [r6, #24] - str r2, [r3, #8] -.L4053: - ldr r3, .L4168 - mov r1, #48 - add r0, r3, #724 - ldr r2, [r3, #2940] - ldrb r6, [r2, fp] @ zero_extendqisi2 + b .L4223 +.L4248: + ldr r3, [fp, #-3192] + add r10, r7, r9 + ldrb r3, [r3, r10] @ zero_extendqisi2 + cmp r3, #255 + beq .L4340 +.L4226: + ldr r1, .L4344 add r2, sp, #72 add r2, r2, r9, asl #2 - mul r1, r1, r6 - add r0, r0, r1 + ldr r0, .L4344+20 + ldr ip, .L4344+4 + ldr r3, [r1, #-3192] + ldrb r8, [r3, r10] @ zero_extendqisi2 + mov r3, #48 + mul r3, r3, r8 + add r0, r0, r3 str r0, [r2, #-24] - ldrb r2, [sp, #28] @ zero_extendqisi2 - add r1, r3, r1 - strb r2, [r1, #769] + ldrb r2, [sp, #20] @ zero_extendqisi2 + add r3, ip, r3 + strb r2, [r3, #1281] mov r2, #2 strh r2, [r0, #34] @ movhi - ldrb r2, [r3, #2937] @ zero_extendqisi2 + ldrb r2, [r1, #-3196] @ zero_extendqisi2 cmp r2, #3 - bne .L4063 - ldrb r3, [r3, #684] @ zero_extendqisi2 - cmp r3, #0 - beq .L4064 - ldr r1, .L4168+32 + bne .L4239 + ldrb r2, [ip, #1196] @ zero_extendqisi2 + cmp r2, #0 + beq .L4240 + ldrb r1, [r1, #-2612] @ zero_extendqisi2 and r2, r9, #1 add r3, r5, r2 - ldrb r1, [r1, #-2503] @ zero_extendqisi2 cmp r1, #0 - beq .L4065 - ldr r1, [sp, #40] + beq .L4241 + ldr r1, [sp, #32] ldrh r1, [r1] cmp r1, r5 movcs r2, #0 andcc r2, r2, #1 cmp r2, #0 movne r3, r1 -.L4065: - ldr r2, .L4168 - mov r1, #48 - mov r0, r9 - str r3, [sp, #44] - mla r10, r1, r6, r2 +.L4241: + ldr r2, .L4344+4 mov r1, r4 + mov fp, #48 + mov r0, r9 + str r3, [sp, #40] + mla fp, fp, r8, r2 bl __aeabi_uidiv - ldr r3, [sp, #32] + ldr r1, .L4344+52 + ldrh r1, [r1] + ldr r3, [sp, #16] uxtah r0, r3, r0 - ldr r3, [sp, #44] - add r0, r8, r0, asl #1 - ldrh r1, [r0, #96] - ldr r0, .L4168+64 - ldrh r0, [r0] - mla r3, r0, r1, r3 - orr r3, r3, #50331648 - str r3, [r10, #748] - b .L4066 -.L4064: - ldr r2, .L4168+68 - ldrh r0, [r0, #32] - umull r2, r3, r9, r2 - ldr r2, [sp, #32] - mov r3, r3, lsr #1 - uxtah r2, r2, r3 - add r3, r3, r3, asl #1 - rsb r3, r3, r9 - add r2, r8, r2, asl #1 - mov r3, r3, asl #24 - ldrh ip, [r2, #96] - add r3, r3, #16777216 - ldr r2, .L4168+64 - ldrh r2, [r2] - mul r2, r2, ip - orr r2, r2, r5 - str r2, [r1, #748] - ldr r1, .L4168+44 - orr r2, r3, r2 - ldr r1, [r1, #-3308] - str r2, [r1, r0, asl #2] - b .L4067 -.L4063: - cmp r2, #2 - bne .L4066 - ldrb r3, [r3, #2938] @ zero_extendqisi2 - ldr r2, .L4168+64 - cmp r3, #0 - ldr r3, [sp, #32] - addne r3, r3, r9, lsr #1 - addeq r3, r9, r3 - ldrneh r2, [r2] - addne r3, r8, r3, asl #1 - addeq r3, r8, r3, asl #1 - ldreqh r2, [r2] - ldrneh r3, [r3, #96] - ldreqh r3, [r3, #96] - mlane r3, r2, r3, r5 - andne r2, r9, #1 - mlaeq r3, r2, r3, r5 - addne r3, r3, r2 - orr r3, r3, #33554432 - str r3, [r1, #748] -.L4066: - mov r2, #48 - ldr r3, .L4168 - mul r6, r2, r6 - add r2, r3, r6 - add r3, r3, #724 - add r6, r3, r6 - ldr r3, .L4168+44 - ldr r2, [r2, #748] - ldrh r1, [r6, #32] - ldr r3, [r3, #-3308] - str r2, [r3, r1, asl #2] -.L4067: - ldr r3, .L4168+32 - ldrb r3, [r3, #-2503] @ zero_extendqisi2 - cmp r3, #0 - beq .L4070 + ldr r3, [sp, #12] + add r0, r3, r0, asl #1 ldr r3, [sp, #40] + ldrh r2, [r0, #96] + mla r3, r1, r2, r3 + orr r3, r3, #50331648 + str r3, [fp, #1260] +.L4242: + mov r3, #48 + mul r8, r3, r8 + ldr r3, .L4344+4 + add r3, r3, r8 + ldr r1, [r3, #1260] + ldr r3, .L4344+20 + add r8, r3, r8 + ldr r3, .L4344 + ldrh r2, [r8, #32] + ldr r3, [r3, #-236] + str r1, [r3, r2, asl #2] +.L4267: + ldr r8, .L4344 + ldrb r3, [r8, #-2612] @ zero_extendqisi2 + cmp r3, #0 + bne .L4341 +.L4247: + ldr r3, [sp, #28] + add r3, r3, #1 + str r3, [sp, #28] +.L4222: + ldrh r9, [sp, #28] + ldr r3, [sp, #24] + ldr fp, .L4344 + cmp r9, r3 + blt .L4248 + b .L4342 +.L4340: + mov r0, #0 + bl buf_alloc + subs r8, r0, #0 + bne .L4227 + bl sblk_wait_write_queue_completed + bl ftl_write_completed + bl gc_write_completed + bl gc_free_temp_buf + mov r0, r8 + bl buf_alloc + subs r8, r0, #0 + beq .L4196 +.L4227: + ldrb r2, [r8, #1] @ zero_extendqisi2 + ldr r3, [fp, #-3192] + strb r2, [r3, r10] + ldr r2, .L4344+4 + ldrb r3, [r2, #2835] @ zero_extendqisi2 + add r3, r3, #1 + strb r3, [r2, #2835] + add r3, r9, r7 + strh r3, [r8, #32] @ movhi + ldrb r3, [sp, #20] @ zero_extendqisi2 + strb r3, [r8, #45] + ldr r3, .L4344+48 + ldrh r2, [r3] + ldr r3, [sp, #12] + ldrb r3, [r3, #89] @ zero_extendqisi2 + mul r3, r3, r2 + ldrb r2, [fp, #477] @ zero_extendqisi2 + rsb r3, r2, r3 + cmp r10, r3 + blt .L4228 + ldr r3, .L4344 + ldrb r3, [r3, #-2612] @ zero_extendqisi2 + cmp r3, #0 + beq .L4229 + ldr r3, [sp, #32] ldrh r3, [r3] cmp r3, r5 - bcs .L4070 + bcs .L4229 tst r9, #1 - beq .L4070 - ldr r2, .L4168 - mvn r6, #0 - ldr r3, [r2, #2940] - strb r6, [r3, fp] - add r3, sp, #72 - add r9, r3, r9, asl #2 - ldrb r3, [r8, #89] @ zero_extendqisi2 - ldr r2, [r2, #2940] - ldr r1, [r9, #-24] - rsb r3, r3, r3, asl #15 - mov r3, r3, asl #1 - smulbb r3, r3, r4 - add r3, r7, r3 - uxth r3, r3 - strh r3, [r1, #32] @ movhi - ldrb r1, [r1, #1] @ zero_extendqisi2 - strb r1, [r2, r3] - ldr r3, .L4168+44 - ldr r3, [r3, #-3312] - str r6, [r3, fp, asl #2] -.L4070: - ldr r3, [sp, #36] - add r3, r3, #1 - str r3, [sp, #36] - b .L4052 -.L4164: - ldrb r2, [r10, #2937] @ zero_extendqisi2 - cmp r2, #3 - bne .L4072 - ldrb r0, [r10, #684] @ zero_extendqisi2 - cmp r0, #0 - beq .L4165 - mov r0, #0 -.L4073: - ldrb r2, [r8, #89] @ zero_extendqisi2 - uxth r1, r0 - add r3, sp, #72 - add r0, r0, #1 - mul r2, r4, r2 - sub r2, r2, #1 - cmp r1, r2 - bge .L4166 - add r2, r3, r1, asl #2 + bne .L4228 +.L4229: + ldr r3, .L4344 + mvn r1, #0 + ldr fp, .L4344+56 + ldr r2, [r3, #-244] + str r1, [r2, r10, asl #2] + ldrb r2, [r3, #477] @ zero_extendqisi2 + cmp r2, #2 + bne .L4230 + ldr r2, .L4344+48 + ldr ip, .L4344+60 + ldrh r0, [r2] + ldr r2, [sp, #12] + ldrb r2, [r2, #89] @ zero_extendqisi2 + mul r2, r2, r0 + sub r2, r2, #2 + cmp r10, r2 + bne .L4231 + ldrh r2, [ip] + ldr r1, [r3, #-244] + ldr r0, [r8, #4] + str ip, [sp, #44] + bl ftl_memcpy + ldr r3, .L4344+4 + mov r1, #0 + ldr r0, [r8, #12] + ldrb r2, [r3, #2772] @ zero_extendqisi2 + mov r2, r2, asl #1 + str r3, [sp, #40] + bl ftl_memset + ldr r2, [r8, #12] + str fp, [r2] + ldr r0, [r8, #4] + ldr fp, [r8, #12] + ldr ip, [sp, #44] + ldrh r1, [ip] + bl js_hash + ldr r3, [sp, #40] + str r0, [fp, #4] + ldr r2, [r8, #12] + ldr r3, [r3, #1092] + ldr r3, [r3, #132] + str r3, [r2, #8] + mov r2, #0 + ldr r3, [r8, #12] + b .L4334 +.L4231: + ldrb r2, [r3, #-3195] @ zero_extendqisi2 + ldrh r1, [ip] + ldr r3, [r3, #-244] + mul r0, r2, r0 + rsb ip, r1, r0, asl #2 + mov r1, r1, lsr #2 + ldr r0, [r8, #4] + mov r2, ip add r1, r3, r1, asl #2 - ldr r1, [r1, #-20] - ldr r2, [r2, #-24] - ldrb r1, [r1, #1] @ zero_extendqisi2 - strb r1, [r2] - b .L4073 -.L4166: - add r2, r3, r2, asl #2 - ldr r2, [r2, #-24] - b .L4162 -.L4165: - ldrb r1, [r10, #2944] @ zero_extendqisi2 - ldr r2, [sp, #48] + str ip, [sp, #44] + bl ftl_memcpy + ldr r3, .L4344+4 + mov r1, #0 + ldr r0, [r8, #12] + ldrb r2, [r3, #2772] @ zero_extendqisi2 + mov r2, r2, asl #1 + str r3, [sp, #40] + bl ftl_memset + ldr r2, [r8, #12] + str fp, [r2] + ldr r0, [r8, #4] + ldr fp, [r8, #12] + ldr ip, [sp, #44] + mov r1, ip + bl js_hash + ldr r3, [sp, #40] + str r0, [fp, #4] + ldr r2, [r8, #12] + ldr r3, [r3, #1092] + ldr r3, [r3, #132] + str r3, [r2, #8] + mov r2, #1 + ldr r3, [r8, #12] +.L4334: + str r2, [r3, #12] + b .L4232 +.L4230: + ldr ip, .L4344+48 + ldrb r2, [r3, #-3195] @ zero_extendqisi2 + ldr r0, [r8, #4] + ldrh r1, [ip] + str ip, [sp, #44] + str r3, [sp, #40] + mul r2, r2, r1 + ldr r1, [r3, #-244] + mov r2, r2, asl #2 + bl ftl_memcpy + ldr r0, [r8, #4] + ldr ip, [sp, #44] + ldr r3, [sp, #40] + ldrh r1, [ip] + ldrb r3, [r3, #-3195] @ zero_extendqisi2 + ldr ip, .L4344 + mul r3, r3, r1 + ldr r1, .L4344+4 + str ip, [sp, #44] + ldrb r1, [r1, #2772] @ zero_extendqisi2 + cmp r1, r3, asr #6 + mov r2, r3, asl #2 + ldrlt r1, .L4344+60 + mov r3, r2 + add r0, r0, r3 + ldrlth r1, [r1] + rsblt r2, r2, r1 + ldr r1, [ip, #-240] + bl ftl_memcpy + ldr r3, .L4344+4 + mov r1, #0 + ldr r0, [r8, #12] + ldrb r2, [r3, #2772] @ zero_extendqisi2 + mov r2, r2, asl #1 + str r3, [sp, #40] + bl ftl_memset + ldr r2, [r8, #12] + str fp, [r2] + ldr r2, .L4344+48 + ldr r0, [r8, #4] + ldr fp, [r8, #12] + ldrh r1, [r2] + ldr ip, [sp, #44] + ldrb r2, [ip, #-3195] @ zero_extendqisi2 + mul r1, r2, r1 + mov r1, r1, asl #2 + bl js_hash + ldr r3, [sp, #40] + str r0, [fp, #4] + ldr r2, [r8, #12] + ldr r3, [r3, #1092] + ldr r3, [r3, #132] + str r3, [r2, #8] + b .L4232 +.L4228: + ldr fp, .L4344 + mov r0, r8 + mov r1, #1 + ldr r3, [fp, #-240] + ldr r3, [r3, r10, asl #2] + str r3, [r8, #24] + bl sblk_read_page + ldr r3, [r8, #36] + cmn r3, #1 + cmpne r3, #512 + bne .L4235 + ldr r3, .L4344+64 + ldr r2, [r8, #24] + ldrb r1, [fp, #-3202] @ zero_extendqisi2 + ldrh r0, [r3] + ldr r3, .L4344+4 + mov r2, r2, lsr r0 + ldrb r3, [r3, #1189] @ zero_extendqisi2 + rsb r3, r3, #24 + rsb r3, r0, r3 + mvn r0, #0 + bic r0, r2, r0, asl r3 + bl __aeabi_uidiv + mov r1, #0 + uxth r0, r0 + bl ftl_sblk_dump + ldr r3, [r8, #36] + cmn r3, #1 + cmpne r3, #512 + ldreq r3, [r8, #12] + mvneq r2, #0 + streq r2, [r3, #4] +.L4235: + ldr r3, [r8, #36] + cmn r3, #1 + cmpne r3, #512 + bne .L4237 + ldr r1, .L4344+12 + movw r2, #1223 + ldr r0, .L4344+16 + bl printk + bl dump_stack +.L4237: + ldr r3, [r8, #12] + ldr r2, .L4344+4 + ldr r1, [r3, #4] + ldr r2, [r2, #2784] + cmp r1, r2 + mvncs r2, #0 + strcs r2, [r3, #4] + ldr r3, [r8, #12] + ldr r2, [r3, #4] + ldr r3, .L4344 + ldr r3, [r3, #-244] + str r2, [r3, r10, asl #2] + ldr r3, [r8, #12] + ldr r2, [r8, #24] + str r2, [r3, #8] +.L4232: + ldr r3, [r8, #12] + mov r2, #0 + str r2, [r3, #16] + b .L4226 +.L4240: + ldrb r2, [ip, #1197] @ zero_extendqisi2 + cmp r2, #0 + ldr r2, .L4344+68 + umull r0, r1, r9, r2 + beq .L4243 + mov r1, r1, lsr #1 + ldr r0, [sp, #16] + ldr ip, [sp, #12] + uxtah r0, r0, r1 + add r1, r1, r1, asl #1 + rsb r1, r1, r9 + add r0, ip, r0, asl #1 + ldr ip, .L4344+52 + ldrh r0, [r0, #96] + ldrh ip, [ip] + mla r0, ip, r0, r5 + uxtah r0, r0, r1 + str r0, [r3, #1260] + b .L4244 +.L4243: + ldr r0, [sp, #16] + ubfx r1, r1, #1, #16 + add r1, r0, r1 + ldr r0, [sp, #12] + add r1, r0, r1, asl #1 + ldr r0, .L4344+52 + ldrh r1, [r1, #96] + ldrh r0, [r0] + mla r1, r0, r1, r5 + str r1, [r3, #1260] + b .L4244 +.L4239: + cmp r2, #2 + bne .L4242 + ldrb r2, [r1, #-3194] @ zero_extendqisi2 + cmp r2, #0 + ldr r2, [sp, #16] + bne .L4246 + ldr r1, [sp, #12] + add r2, r2, r9 + add r2, r1, r2, asl #1 + ldr r1, .L4344+52 + ldrh r2, [r2, #96] + ldrh r1, [r1] + mla r2, r1, r2, r5 + b .L4335 +.L4246: + ldr r1, [sp, #12] + add r2, r2, r9, lsr #1 + add r2, r1, r2, asl #1 + ldr r1, .L4344+52 + ldrh r2, [r2, #96] + ldrh r1, [r1] + mla r2, r1, r2, r5 + and r1, r9, #1 + add r2, r2, r1 +.L4335: + orr r2, r2, #33554432 + str r2, [r3, #1260] + b .L4242 +.L4341: + ldr r3, [sp, #32] + ldrh r3, [r3] + cmp r3, r5 + bcs .L4247 + tst r9, #1 + beq .L4247 + ldr r2, [r8, #-3192] + mvn r3, #0 + ldrh r1, [sp, #36] + ldr r0, [sp, #36] + strb r3, [r2, r10] + add r2, sp, #72 + add r9, r2, r9, asl #2 + ldr r2, [r9, #-24] + strh r1, [r2, #32] @ movhi + ldrb r1, [r2, #1] @ zero_extendqisi2 + ldr r2, [r8, #-3192] + strb r1, [r2, r0] + ldr r2, [r8, #-240] + str r3, [r2, r10, asl #2] + b .L4247 +.L4342: + ldrb r3, [fp, #-3196] @ zero_extendqisi2 + cmp r3, #3 + bne .L4249 + ldr r3, .L4344+4 + ldrb r1, [r3, #1196] @ zero_extendqisi2 cmp r1, #0 - strneb r0, [r2, #44] - bne .L4163 - ldr r3, [sp, #28] - cmp r3, #1 - moveq r1, #9 - beq .L4080 - ldr r3, [sp, #28] - cmp r3, #2 - moveq r1, #13 -.L4080: - strb r1, [r2, #44] -.L4163: + ldrne r3, [sp, #24] + movne r2, #0 + subne r1, r3, #1 + beq .L4343 +.L4251: + uxth r3, r2 + add r2, r2, #1 + cmp r3, r1 + bge .L4336 + add ip, sp, #72 + add r0, sp, #72 + add ip, ip, r3, asl #2 + add r0, r0, r3, asl #2 + ldr r3, [ip, #-20] + ldr r0, [r0, #-24] + ldrb r3, [r3, #1] @ zero_extendqisi2 + strb r3, [r0] + b .L4251 +.L4343: + ldrb r2, [fp, #-3188] @ zero_extendqisi2 + ldr r3, [sp, #48] + cmp r2, #0 + strneb r1, [r3, #44] + bne .L4337 + ldr r1, [sp, #20] + cmp r1, #1 + moveq r2, #9 + beq .L4257 + ldr r1, [sp, #20] + cmp r1, #2 + moveq r2, #13 +.L4257: + strb r2, [r3, #44] +.L4337: add r1, sp, #60 - ldrb r2, [r8, #89] @ zero_extendqisi2 + mov r2, r6 add r0, sp, #48 bl sblk_xlc_prog_pages - b .L4076 -.L4072: - ldrb r2, [r10, #2938] @ zero_extendqisi2 - cmp r2, #0 - beq .L4158 - ldrb r2, [r10, #2939] @ zero_extendqisi2 - cmp r2, #0 - beq .L4158 + b .L4253 +.L4249: + ldrb r3, [fp, #-3194] @ zero_extendqisi2 + cmp r3, #0 + beq .L4258 + ldrb r3, [fp, #-3193] @ zero_extendqisi2 + cmp r3, #0 + bne .L4259 +.L4258: + ldr r3, [sp, #24] + mov r2, #0 + sub r1, r3, #1 + b .L4260 +.L4259: + mov r1, r6 add r0, sp, #48 bl sblk_3d_mlc_prog_pages - b .L4076 -.L4158: - ldrb r1, [r8, #89] @ zero_extendqisi2 - uxth r0, r2 - add r3, sp, #72 + b .L4253 +.L4260: + uxth r3, r2 add r2, r2, #1 - mul r1, r4, r1 - sub r1, r1, #1 - cmp r0, r1 - bge .L4167 - add r1, r3, r0, asl #2 - add r0, r3, r0, asl #2 - ldr r0, [r0, #-20] - ldr r1, [r1, #-24] - ldrb r0, [r0, #1] @ zero_extendqisi2 - strb r0, [r1] - b .L4158 -.L4167: + cmp r3, r1 + bge .L4336 + add ip, sp, #72 + add r0, sp, #72 + add ip, ip, r3, asl #2 + add r0, r0, r3, asl #2 + ldr r3, [ip, #-20] + ldr r0, [r0, #-24] + ldrb r3, [r3, #1] @ zero_extendqisi2 + strb r3, [r0] + b .L4260 +.L4336: + add r3, sp, #72 + mvn r2, #0 add r1, r3, r1, asl #2 - ldr r2, [r1, #-24] -.L4162: - mvn r1, #0 - strb r1, [r2] - ldrb r1, [r8, #89] @ zero_extendqisi2 + ldr r3, [r1, #-24] + smulbb r1, r4, r6 + strb r2, [r3] ldr r0, [sp, #48] - smulbb r1, r4, r1 uxtb r1, r1 bl sblk_prog_page -.L4076: - ldrb r2, [r10, #2944] @ zero_extendqisi2 - ldr r1, .L4168 - cmp r2, #0 - ldrb r2, [r8, #89] @ zero_extendqisi2 - addne r2, r2, r2, asl #1 - bne .L4084 - ldrb r0, [r1, #2938] @ zero_extendqisi2 - cmp r0, #0 - movne r2, r2, asl #1 - bne .L4084 - ldrb r1, [r1, #684] @ zero_extendqisi2 +.L4253: + ldrb r3, [fp, #-3188] @ zero_extendqisi2 + ldr r2, .L4344 + cmp r3, #0 + ldr r3, .L4344+4 + addne r4, r6, r6, asl #1 + bne .L4263 + ldrb r1, [r2, #-3194] @ zero_extendqisi2 cmp r1, #0 - uxtheq r2, r2 - beq .L4084 - ldr r0, .L4168+32 - uxth r1, r2 - mul r2, r4, r1 - ldrb r0, [r0, #-2503] @ zero_extendqisi2 - cmp r0, #0 - beq .L4084 - ldr ip, .L4168+36 - mov r0, r5, asl #1 - ldrh r0, [ip, r0] - cmp r0, r5 - movcc r2, r1 -.L4084: - ldr r0, [r10, #2288] - movw r4, #566 - ldr r1, [r0, #52] - add r1, r1, r2 - str r1, [r0, #52] - ldr r1, .L4168+4 - ldrh r0, [r1, r4] - add r2, r2, r0 - uxth r2, r2 - strh r2, [r1, r4] @ movhi - movw r1, #2962 - ldrb r3, [r8, #89] @ zero_extendqisi2 - ldrh r1, [r10, r1] - mul r3, r3, r1 - cmp r2, r3 - ldrge r3, .L4168 + movne r4, r6, asl #1 + bne .L4263 + ldrb r1, [r3, #1196] @ zero_extendqisi2 + cmp r1, #0 + moveq r4, r6 + beq .L4263 + ldrb r2, [r2, #-2612] @ zero_extendqisi2 + mul r4, r4, r6 + cmp r2, #0 + beq .L4263 + ldr r1, .L4344+36 + mov r2, r5, asl #1 + ldrh r2, [r1, r2] + cmp r2, r5 + movcc r4, r6 +.L4263: + ldr r2, [r3, #2804] + ldr r3, [r2, #52] + add r3, r3, r4 + str r3, [r2, #52] + ldr r2, .L4344+8 + movw r3, #2102 + ldrh r1, [r2, r3] + add r4, r4, r1 + uxth r4, r4 + strh r4, [r2, r3] @ movhi + ldr r3, .L4344+72 + ldrh r2, [r3, #-2] + ldr r3, [sp, #12] + ldrb r3, [r3, #89] @ zero_extendqisi2 + mul r3, r3, r2 + cmp r4, r3 + ldrge r3, .L4344+4 movge r2, #0 - ldrge r3, [r3, #580] + ldrge r3, [r3, #1092] strgeh r2, [r3, #86] @ movhi bl gc_write_completed -.L4025: + b .L4196 +.L4244: + mov r0, #48 + ldr r3, .L4344+20 + mul r0, r0, r8 + ldr ip, .L4344+4 + add r3, r3, r0 + add r0, ip, r0 + ldrh r1, [r3, #32] + ldr r3, .L4344 + ldr r0, [r0, #1260] + ldr lr, [r3, #-236] + umull r2, r3, r9, r2 + mov r2, r3, lsr #1 + add r2, r2, r2, asl #1 + rsb r2, r2, r9 + mov r2, r2, asl #24 + add r2, r2, #16777216 + orr r2, r2, r0 + str r2, [lr, r1, asl #2] + b .L4267 +.L4196: add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4169: +.L4345: .align 2 -.L4168: - .word .LANCHOR0 - .word .LANCHOR0+2312 - .word .LANCHOR1+2164 - .word .LC0 - .word .LANCHOR0+724 - .word .LANCHOR2 - .word .LC301 - .word .LC302 - .word .LANCHOR5 - .word .LANCHOR2+1992 - .word .LANCHOR2+3528 +.L4344: .word .LANCHOR3 - .word .LANCHOR0+2962 - .word .LC303 + .word .LANCHOR0 + .word .LANCHOR0+2828 + .word .LANCHOR1+2736 + .word .LC0 + .word .LANCHOR0+1236 + .word .LANCHOR2 + .word .LC295 + .word .LC296 + .word .LANCHOR2+2120 + .word 1431655766 + .word .LANCHOR2+3656 + .word .LANCHOR3-3170 + .word .LANCHOR3-3142 .word -178307901 - .word .LANCHOR0+2928 - .word .LANCHOR0+2994 + .word .LANCHOR3+474 + .word .LANCHOR3-3204 .word -1431655765 + .word .LANCHOR3-3168 .fnend .size gc_do_copy_back, .-gc_do_copy_back .align 2 @@ -24979,761 +26079,828 @@ zftl_do_gc: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r3, #2276 - ldr r4, .L4366 + movw r3, #2792 + ldr r4, .L4565+60 cmp r0, #1 .pad #44 sub sp, sp, #44 - mov r10, r0 - ldrh r2, [r4, r3] - add r3, r4, #2272 - ldr r5, [r4, #580] - ldrh r7, [r3] - movw r3, #2274 + mov fp, r0 + ldr r6, .L4565+32 + ldrh r9, [r4, r3] + movw r3, #2788 + ldrh r7, [r4, r3] + movw r3, #2790 + ldr r5, [r4, #1092] + add r7, r9, r7 ldrh r8, [r4, r3] - add r7, r2, r7 uxth r7, r7 - bne .L4171 - ldr r6, .L4366+4 - ldr r9, [r6, #-2476] - cmp r9, #0 - bne .L4172 - ldr r3, [r6, #-2472] - cmp r3, #0 - beq .L4171 -.L4172: - movw r3, #2974 - ldrh r3, [r4, r3] - cmp r7, r3, lsr #2 - bls .L4171 - ldr r1, .L4366 - movw r3, #2292 - ldrh r3, [r1, r3] - cmp r3, r7 - bcs .L4171 - bl timer_get_time - add r9, r9, #20 - ldr r4, [r6, #-2472] - add r4, r4, #20 - cmp r9, r0 - movcc r3, #0 - strcc r3, [r6, #-2476] - bl timer_get_time - cmp r4, r0 - ldrcc r3, .L4366+4 - movcc r2, #0 - strcc r2, [r3, #-2472] - b .L4287 -.L4171: - ldr r6, .L4366+8 - ldrb r3, [r6, #-3322] @ zero_extendqisi2 + beq .L4347 +.L4358: + ldrb r3, [r6, #-254] @ zero_extendqisi2 cmp r3, #6 ldrls pc, [pc, r3, asl #2] - b .L4287 -.L4177: - .word .L4176 - .word .L4178 - .word .L4179 - .word .L4180 - .word .L4181 - .word .L4288 - .word .L4183 -.L4176: - movw r1, #2278 - movw r3, #2280 - ldrh r3, [r4, r3] - add r8, r8, r2 - ldrh r9, [r4, r1] - ldrh r1, [r5, #80] - uxth r8, r8 - add r9, r3, r9 - movw r3, #65535 - cmp r1, r3 - ldr r2, .L4366 - uxth r9, r9 - beq .L4184 + b .L4470 +.L4350: + .word .L4349 + .word .L4351 + .word .L4352 + .word .L4353 + .word .L4354 + .word .L4471 + .word .L4356 +.L4347: + ldr r10, [r6, #480] cmp r10, #0 - bne .L4185 - movw r3, #2292 - ldrh r3, [r2, r3] + bne .L4357 + ldr r3, [r6, #484] + cmp r3, #0 + beq .L4358 +.L4357: + ldr r3, .L4565+32 + sub r2, r3, #3152 + ldrh r2, [r2, #-10] + cmp r7, r2, lsr #2 + bls .L4358 + movw r2, #2808 + ldrh r2, [r4, r2] + cmp r2, r7 + bcs .L4358 + str r3, [sp, #28] + bl timer_get_time + add r10, r10, #20 + ldr r3, [sp, #28] + cmp r10, r0 + ldr r10, [r6, #484] + movcc r2, #0 + strcc r2, [r3, #480] + bl timer_get_time + add r10, r10, #20 + cmp r10, r0 + ldrcc r3, .L4565+32 + movcc r2, #0 + strcc r2, [r3, #484] + ldr r3, [r4, #1092] + ldrh r3, [r3, #124] + cmp r3, #0 + beq .L4470 + b .L4358 +.L4349: + movw r2, #2794 + movw r3, #2796 + ldrh r3, [r4, r3] + add r8, r8, r9 + ldrh r10, [r4, r2] + ldrh r2, [r5, #80] + uxth r8, r8 + add r10, r3, r10 + movw r3, #65535 + cmp r2, r3 + ldr r9, .L4565+60 + uxth r10, r10 + beq .L4361 + cmp fp, #0 + bne .L4362 + movw r3, #2808 + ldrh r3, [r9, r3] cmp r7, r3, asl #1 - bge .L4287 -.L4185: - movw r3, #2972 - ldr r0, .L4366+12 - ldrh r1, [r4, r3] - ldr r10, .L4366 + bge .L4470 +.L4362: + ldr fp, .L4565+32 + sub r9, fp, #3152 + sub r3, fp, #3168 + sub r0, r3, #8 + str r3, [sp, #28] + ldrh r1, [r9, #-12] add r1, r1, #1 uxth r1, r1 - strh r1, [r4, r3] @ movhi + strh r1, [r9, #-12] @ movhi bl _list_get_gc_head_node - movw r3, #65535 - cmp r0, r3 - beq .L4187 - ldr r1, [r10, #576] - mov r2, r0, asl #1 - ldr r3, [r6, #-3320] - ldrh r2, [r1, r2] - add r1, r10, #2960 - add r3, r3, #1 - str r3, [r6, #-3320] - ldrh r1, [r1] - cmp r1, r2 - bcs .L4188 - add r1, r10, #564 - ldrh r1, [r1] - cmp r3, r1, lsr #4 - bls .L4187 - movw r3, #2294 - ldrh r3, [r10, r3] - cmp r3, r2 - bls .L4187 -.L4188: + movw r2, #65535 + cmp r0, r2 + beq .L4364 + ldr lr, [r4, #1088] + mov r1, r0, asl #1 + ldr r3, [sp, #28] + ldr r2, [fp, #-252] + ldrh r1, [lr, r1] + ldrh r3, [r3, #-4] + add r2, r2, #1 + ldr ip, .L4565+60 + cmp r3, r1 + str r2, [fp, #-252] + bcs .L4365 + movw r3, #1076 + ldrh r3, [ip, r3] + cmp r2, r3, lsr #4 + bls .L4364 + movw r3, #2810 + ldrh r3, [ip, r3] + cmp r3, r1 + bls .L4364 +.L4365: mov r1, #0 - ldrb r2, [r4, #2945] @ zero_extendqisi2 + ldrb r2, [r6, #-3187] @ zero_extendqisi2 bl gc_add_sblk + ldr fp, .L4565+32 cmp r0, #0 - beq .L4189 + beq .L4366 mov r3, #1 - strb r3, [r6, #-3322] + strb r3, [fp, #-254] mov r3, #0 - str r3, [r6, #-3320] - b .L4287 -.L4187: - movw r3, #2972 - mov r2, #0 - strh r2, [r4, r3] @ movhi -.L4189: + str r3, [fp, #-252] + b .L4470 +.L4364: + mov r3, #0 + strh r3, [r9, #-12] @ movhi +.L4366: cmp r8, #15 movls r9, #2 - bls .L4190 - ldr r2, .L4366+16 - movw r3, #2282 + bls .L4367 + movw r3, #2798 + ldrh r2, [r9, #-8] ldrh r3, [r4, r3] - ldrh r2, [r2] cmp r3, r2 movls r3, #0 movhi r3, #1 - cmp r9, #0 - movne r9, r3 - orreq r9, r3, #1 - cmp r9, #0 + cmp r10, #0 + movne r10, r3 + orreq r10, r3, #1 + cmp r10, #0 movne r9, #2 moveq r9, #1 -.L4190: - ldr r3, .L4366+20 +.L4367: + ldr r3, .L4565 ldr r3, [r3] tst r3, #256 - beq .L4191 - ldr r3, [r4, #580] - ldrb r2, [r4, #2945] @ zero_extendqisi2 + beq .L4368 + ldr r3, [r4, #1092] + ldrb r2, [r6, #-3187] @ zero_extendqisi2 str r8, [sp] ldrh r1, [r3, #124] - ldr r0, .L4366+24 + ldr r0, .L4565+4 str r1, [sp, #4] ldrh r1, [r3, #120] str r1, [sp, #8] - movw r1, #2171 + movw r1, #2662 ldrh r3, [r3, #122] str r3, [sp, #12] ldrh r3, [r5, #80] str r3, [sp, #16] mov r3, r7 bl printk -.L4191: - ldrb r0, [r4, #2945] @ zero_extendqisi2 +.L4368: + ldrb r0, [r6, #-3187] @ zero_extendqisi2 mov r1, r9 mov r2, #1 bl gc_search_src_blk cmp r0, #0 - ble .L4192 -.L4193: + ble .L4369 +.L4370: mov r3, #1 - b .L4364 -.L4192: - ldr r3, .L4366 + b .L4562 +.L4369: + ldr r3, .L4565+32 mov r1, #3 mov r2, #1 - ldrb r0, [r3, #2945] @ zero_extendqisi2 + ldrb r0, [r3, #-3187] @ zero_extendqisi2 bl gc_search_src_blk cmp r0, #0 - bgt .L4193 - b .L4287 -.L4184: - ldr fp, .L4366+20 - ldr r3, [fp] - str fp, [sp, #28] - tst r3, #256 - beq .L4194 - ldrb r2, [r2, #2945] @ zero_extendqisi2 - movw r1, #2183 - str r8, [sp] - ldrh r3, [r5, #124] - ldr r0, .L4366+24 - str r3, [sp, #4] - ldrh r3, [r5, #120] - str r3, [sp, #8] - ldrh r3, [r5, #122] - str r10, [sp, #16] - str r3, [sp, #12] - mov r3, r7 - bl printk -.L4194: - cmp r10, #1 - bne .L4195 + bgt .L4370 + b .L4470 +.L4361: + cmp fp, #1 + bne .L4371 bl gc_scan_static_data - ldr r3, [r4, #580] + ldr r3, [r9, #1092] ldrh r3, [r3, #122] cmp r3, #0 - beq .L4196 -.L4197: + beq .L4372 +.L4373: mov r3, #1 - strb r3, [r4, #2945] - b .L4364 -.L4196: + strb r3, [r6, #-3187] + b .L4562 +.L4372: bl gc_static_wearleveling cmp r0, #0 - bne .L4197 + bne .L4373 bl gc_block_vpn_scan cmp r8, #0 - beq .L4292 - cmp r7, r9 - bcs .L4200 - ldr r2, .L4366 - movw r3, #2974 - ldrh r3, [r2, r3] + beq .L4374 + cmp r7, r10 + ldr r5, .L4565+8 + bcs .L4375 + ldrh r3, [r5, #-10] cmp r3, r7 - bhi .L4201 -.L4200: - movw r1, #2974 - add r3, r7, r9 - ldrh r1, [r4, r1] - ldr r2, .L4366 - cmp r3, r1 - blt .L4201 - add r3, r2, #2976 - movw r1, #2282 - ldrh r2, [r2, r1] - ldrh r3, [r3] + bhi .L4376 +.L4375: + ldrh r2, [r5, #-10] + add r3, r7, r10 + cmp r3, r2 + blt .L4376 + movw r3, #2798 + ldrh r2, [r4, r3] + ldr r3, .L4565+8 + ldrh r3, [r3, #-8] cmp r2, r3 - bcc .L4292 -.L4201: - ldr r5, .L4366 - mov fp, #1 - ldr r2, [r6, #-3320] - add r1, r5, #564 - strb fp, [r4, #2945] - add r2, r2, fp - str r2, [r6, #-3320] - ldrh r1, [r1] - cmp r2, r1, lsr #5 - bls .L4203 - movw r2, #2282 - ldrh r2, [r5, r2] - cmp r2, r8 - bls .L4203 - ldr r0, .L4366+12 - mov r1, #0 + bcc .L4374 +.L4376: + ldr r9, .L4565+32 + mov r1, #16 + mov ip, #1 + strb ip, [r6, #-3187] + sub r0, r9, #3168 + str ip, [sp, #28] bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L4292 - ldr r2, [r5, #576] - mov r0, r0, asl fp - ldrh r1, [r2, r0] - add r2, r5, #2960 - ldrh r0, [r2] - ldrb r2, [r5, #2964] @ zero_extendqisi2 - mul r2, r2, r0 - cmp r1, r2 - bgt .L4292 - ldr r2, .L4366+8 - mov r1, #0 - mov r0, fp - str r1, [r2, #-3320] - mov r1, #2 - b .L4356 -.L4203: - ldr r3, .L4366 - movw r1, #2282 - ldrh r1, [r4, r1] - add r2, r3, #2976 - ldrh r2, [r2] - cmp r1, r2 - movcs r0, #1 - movcs r1, #2 - movcs r2, r0 - bcs .L4357 - movw r2, #2278 - ldrh r5, [r3, r2] - cmp r5, #0 - bne .L4207 - movw r2, #2280 - ldrh r3, [r3, r2] - cmp r3, #8 - bls .L4199 -.L4207: - mov r0, #1 - mov r1, r0 -.L4356: - mov r2, #4 -.L4357: - bl gc_search_src_blk - uxth r0, r0 - cmp r0, #0 - bne .L4193 - b .L4292 -.L4195: - movw r3, #2292 - ldrh r3, [r4, r3] - cmp r3, r7 - bcc .L4287 -.L4292: - mov r5, #16 -.L4199: - ldr r2, [r4, #2304] - ldr r3, .L4366 - cmp r2, #0 - beq .L4208 - mov ip, #0 - ldr r0, .L4366+12 + beq .L4377 + ldr r2, [r4, #1088] + mov r3, r0, asl #1 + ldr ip, [sp, #28] + ldrh r3, [r2, r3] + ldrh r2, [r9, #-248] + cmp r3, r2 + movcs r3, #0 + movcc r3, #1 + cmp r7, #2 + movls r3, #0 + cmp r3, #0 + beq .L4377 + mov r2, #0 mov r1, ip - str ip, [r3, #2304] - mov fp, #1 - str r3, [sp, #36] - strb fp, [r3, #2945] - str ip, [sp, #32] - bl _list_get_gc_head_node - movw lr, #65535 - cmp r0, lr - beq .L4209 - ldr r3, [sp, #36] - mov r1, r0, asl fp - ldr ip, [sp, #32] - ldr lr, [r3, #576] - ldrh r1, [lr, r1] - cmp r1, #8 - bhi .L4209 - mov r1, ip - mov r2, fp - str fp, [r3, #2304] + strb r2, [r9, #-3187] + str r2, [r9, #-252] bl gc_add_sblk cmp r0, #0 - bne .L4193 -.L4209: - ldr r0, .L4366+28 + bne .L4370 +.L4377: + ldr r0, .L4565+12 mov r1, #0 bl _list_get_gc_head_node movw r2, #65535 - ldr fp, .L4366 + ldr r9, .L4565+32 cmp r0, r2 - beq .L4210 - ldr r2, [fp, #576] + beq .L4378 + ldr r2, [r4, #1088] mov r3, r0, asl #1 ldrh r3, [r2, r3] - cmp r3, #4 - bhi .L4210 - mov r2, #1 - mov r1, #0 - str r2, [fp, #2304] + ldrh r2, [r9, #-248] + cmp r3, r2 + movcs r3, #0 + movcc r3, #1 + cmp r7, #2 + movls r3, #0 + cmp r3, #0 + beq .L4378 + mov r2, #0 + mov r1, #1 + strb r2, [r9, #-3187] + str r2, [r9, #-252] bl gc_add_sblk cmp r0, #0 - bne .L4193 -.L4210: - mov r1, #0 - ldr r0, .L4366+32 + bne .L4370 +.L4378: + ldr r1, .L4565+32 + mov r9, #0 + ldrh r3, [r6, #-248] + sub ip, r1, #3168 + add r3, r3, #1 + ldrh r2, [ip, #-4] + uxth r3, r3 + strh r3, [r6, #-248] @ movhi + strh r9, [ip, #-14] @ movhi + cmp r3, r2, lsr #5 + ldr ip, .L4565+60 + movhi r3, #4 + strhih r3, [r1, #-248] @ movhi + ldr r3, .L4565+32 + ldr r1, [r6, #-252] + sub r0, r3, #3184 + add r1, r1, #1 + str r1, [r6, #-252] + strh r9, [r0, #-2] @ movhi + strh r9, [r0] @ movhi + movw r0, #1076 + ldrh r0, [r4, r0] + cmp r1, r0, lsr #5 + bls .L4380 + movw r1, #2798 + ldrh r1, [ip, r1] + cmp r1, r8 + bls .L4380 + mov r1, r9 + ldr r0, .L4565+16 + str ip, [sp, #36] + str r3, [sp, #32] + str r2, [sp, #28] bl _list_get_gc_head_node movw r1, #65535 - ldr fp, .L4366 cmp r0, r1 - beq .L4208 - ldr r1, [fp, #576] - mov r3, r0, asl #1 - ldrh r3, [r1, r3] - cmp r3, #4 - bhi .L4208 - mov r1, #1 - mov r2, #0 - str r1, [fp, #2304] - bl gc_add_sblk - cmp r0, #0 - bne .L4193 -.L4208: - ldr lr, [r4, #580] - mov r0, #1 - ldr fp, .L4366 - strb r0, [r4, #2945] - ldrh ip, [lr, #124] - cmp ip, #0 - beq .L4211 - ldr r3, [sp, #28] - mov r2, #0 - strb r0, [r6, #-3322] - strb r2, [fp, #2945] - ldr r3, [r3] - tst r3, #256 - beq .L4212 - stmia sp, {r8, ip} - movw r1, #2273 - ldrh r3, [lr, #120] - ldr r0, .L4366+36 - str r3, [sp, #8] - ldrh r3, [lr, #122] - str r3, [sp, #12] - mov r3, r7 - bl printk - b .L4212 -.L4211: - movw r2, #2292 - ldrh r1, [fp, r2] - cmp r7, r1 - bcs .L4213 - cmp r8, #0 - beq .L4214 - cmp r8, #16 - bls .L4215 - add r2, fp, #2976 - movw r1, #2282 - ldrh r1, [fp, r1] - ldrh r2, [r2] + beq .L4475 + ldr ip, [sp, #36] + mov r0, r0, asl #1 + ldr r3, [sp, #32] + ldr r2, [sp, #28] + ldr r1, [ip, #1088] + ldrh r0, [r1, r0] + ldrb r1, [r3, #-3195] @ zero_extendqisi2 + mul r2, r1, r2 + cmp r0, r2 + strle r9, [r3, #-252] + ldrleb r0, [r3, #-3187] @ zero_extendqisi2 + movle r1, #2 + bgt .L4475 + b .L4554 +.L4380: + movw r2, #2798 + ldr r3, .L4565+60 + ldrh r1, [r4, r2] + ldrh r2, [r5, #-8] cmp r1, r2 - bhi .L4215 - mov r1, r0 + ldrcs r3, .L4565+32 + movcs r1, #2 + movcs r2, #1 + ldrcsb r0, [r3, #-3187] @ zero_extendqisi2 + bcs .L4555 +.L4383: + movw r2, #2794 + ldrh r5, [r3, r2] + cmp r5, #0 + bne .L4384 + movw r2, #2796 + ldrh r3, [r3, r2] + cmp r3, #8 + bls .L4385 +.L4384: + ldrb r0, [r6, #-3187] @ zero_extendqisi2 + mov r1, #1 +.L4554: mov r2, #4 - str ip, [sp, #28] +.L4555: bl gc_search_src_blk uxth r0, r0 - ldr ip, [sp, #28] cmp r0, #0 - ldreqb r0, [fp, #2945] @ zero_extendqisi2 - beq .L4362 - ldr r0, .L4366+12 - mov r1, ip + bne .L4370 + b .L4475 +.L4374: + ldr r3, .L4565+32 + sub r2, r3, #3168 + ldrh r1, [r2, #-4] + ldrh r2, [r6, #-248] + cmp r2, r1, lsr #5 + movcs r2, #4 + strcsh r2, [r3, #-248] @ movhi + b .L4475 +.L4371: + movw r3, #2808 + ldrh r3, [r9, r3] + cmp r3, r7 + bcs .L4475 + ldr r3, [r9, #1092] + ldrh r3, [r3, #124] + cmp r3, #0 + beq .L4470 +.L4475: + mov r5, #16 +.L4385: + ldr r3, [r4, #2820] + cmp r3, #0 + beq .L4387 + ldr r3, .L4565+60 + cmp r7, #15 + mov r2, #0 + ldr r0, .L4565+16 + mov r1, #0 + str r2, [r3, #2820] + movhi r3, #0 + movls r3, #1 + cmp r8, r2 + moveq r3, #0 + cmp r3, r2 + movne r3, #1 + strb r3, [r6, #-3187] bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L4285 - ldr ip, [fp, #576] - mov r1, r0, asl #1 - ldr r2, [r6, #-3320] - ldrh r1, [ip, r1] - add ip, fp, #2960 - add r2, r2, #1 - str r2, [r6, #-3320] - ldrh ip, [ip] - cmp ip, r1 - bcs .L4219 - add ip, fp, #564 - ldrh ip, [ip] - cmp r2, ip, lsr #4 - bls .L4285 - movw r2, #2294 - ldrh r3, [fp, r2] - cmp r3, r1 - bls .L4285 -.L4219: + beq .L4390 + ldr r2, [r4, #1088] + mov r3, r0, asl #1 + ldrh r3, [r2, r3] + cmp r3, #8 + bhi .L4390 + ldr r3, .L4565+60 + mov r2, #1 mov r1, #0 - ldrb r2, [r4, #2945] @ zero_extendqisi2 + str r2, [r3, #2820] + ldr r3, .L4565+32 + ldrb r2, [r3, #-3187] @ zero_extendqisi2 + bl gc_add_sblk + cmp r0, #0 + bne .L4370 +.L4390: + ldr r0, .L4565+12 + mov r1, #0 + bl _list_get_gc_head_node + movw r2, #65535 + cmp r0, r2 + beq .L4391 + ldr r2, [r4, #1088] + mov r3, r0, asl #1 + ldrh r3, [r2, r3] + cmp r3, #4 + bhi .L4391 + ldr r3, .L4565+60 + mov r2, #1 + mov r1, #0 + str r2, [r3, #2820] + ldr r3, .L4565+32 + ldrb r2, [r3, #-3187] @ zero_extendqisi2 + bl gc_add_sblk + cmp r0, #0 + bne .L4370 +.L4391: + ldr r9, .L4565+32 + mov r1, #0 + sub r0, r9, #3168 + bl _list_get_gc_head_node + movw r2, #65535 + cmp r0, r2 + beq .L4387 + ldr r2, [r4, #1088] + mov r3, r0, asl #1 + ldrh r3, [r2, r3] + cmp r3, #4 + bhi .L4387 + ldr r3, .L4565+60 + mov r1, #1 + ldrb r2, [r9, #-3187] @ zero_extendqisi2 + str r1, [r3, #2820] + bl gc_add_sblk + cmp r0, #0 + bne .L4370 +.L4387: + ldr r2, [r4, #1092] + mov r1, #1 + ldr r9, .L4565+32 + ldr r3, .L4565+60 + ldrh ip, [r2, #124] + strb r1, [r6, #-3187] + cmp ip, #0 + strneb r1, [r9, #-254] + movne r3, #0 + strneb r3, [r9, #-3187] + bne .L4393 + movw r2, #2808 + ldrh r0, [r3, r2] + cmp r7, r0 + bcs .L4394 + cmp r8, #0 + beq .L4395 + cmp r8, #16 + bls .L4396 + sub r2, r9, #3152 + movw r0, #2798 + ldrh r0, [r3, r0] + ldrh r2, [r2, #-8] + cmp r0, r2 + bhi .L4396 + mov r0, r1 + mov r2, #4 + str ip, [sp, #32] + str r3, [sp, #28] + bl gc_search_src_blk + uxth r0, r0 + ldr r3, [sp, #28] + cmp r0, #0 + ldr ip, [sp, #32] + beq .L4559 + sub r7, r9, #3168 + mov r1, ip + sub r0, r7, #8 + str r3, [sp, #28] + bl _list_get_gc_head_node + movw r2, #65535 + cmp r0, r2 + beq .L4468 + ldr r3, [sp, #28] + mov r1, r0, asl #1 + ldr r2, [r9, #-252] + ldr ip, [r3, #1088] + add r2, r2, #1 + str r2, [r9, #-252] + ldrh r1, [ip, r1] + ldrh ip, [r7, #-4] + cmp ip, r1 + bcs .L4400 + movw ip, #1076 + ldrh ip, [r3, ip] + cmp r2, ip, lsr #4 + bls .L4468 + movw r2, #2810 + ldrh r3, [r3, r2] + cmp r3, r1 + bls .L4468 +.L4400: + mov r1, #0 + ldrb r2, [r6, #-3187] @ zero_extendqisi2 bl gc_add_sblk mov r3, #1 - str r3, [r4, #2304] + str r3, [r4, #2820] mov r3, #0 - str r3, [r6, #-3320] - b .L4285 -.L4215: + str r3, [r6, #-252] + b .L4468 +.L4396: mov r0, #1 mov r1, #2 mov r2, r0 bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - ldreqb r0, [r4, #2945] @ zero_extendqisi2 - bne .L4285 - b .L4360 -.L4214: - ldr r3, [sp, #28] - strb r8, [fp, #2945] - ldr r3, [r3] - tst r3, #256 - beq .L4221 - str r8, [sp] - movw r1, #2303 - str r8, [sp, #4] - mov r2, r8 - ldrh r3, [lr, #120] - ldr r0, .L4366+36 - str r3, [sp, #8] - ldrh r3, [lr, #122] - str r3, [sp, #12] - mov r3, r7 - bl printk -.L4221: + ldreqb r0, [r6, #-3187] @ zero_extendqisi2 + bne .L4468 + b .L4558 +.L4395: cmp r7, #16 - ldrb r0, [r4, #2945] @ zero_extendqisi2 - bls .L4222 -.L4362: - mov r1, #3 - mov r2, #4 - b .L4359 -.L4222: - mov r1, #1 + strb r8, [r9, #-3187] + mov r0, r8 + bhi .L4558 mov r2, r1 bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - bne .L4285 - ldr r3, .L4366 - ldrb r0, [r3, #2945] @ zero_extendqisi2 -.L4360: + bne .L4468 +.L4559: + ldrb r0, [r9, #-3187] @ zero_extendqisi2 +.L4558: mov r1, #3 - mov r2, #2 -.L4359: + mov r2, #4 bl gc_search_src_blk uxth r0, r0 - b .L4217 -.L4213: - cmp r10, #1 - bne .L4212 - cmp r7, r1, asl #1 - bge .L4223 - cmp r9, r8, lsr #1 - bcs .L4224 - add r1, fp, #2976 - movw r0, #2282 - ldrh r0, [fp, r0] - ldrh r1, [r1] + b .L4398 +.L4394: + cmp fp, #1 + bne .L4393 + cmp r7, r0, asl #1 + bge .L4403 + cmp r10, r8, lsr #1 + bcs .L4404 + sub r9, r9, #3152 + movw r1, #2798 + ldrh r0, [r3, r1] + ldrh r1, [r9, #-8] cmp r0, r1 - movwcc r1, #2974 - ldrcch r1, [fp, r1] + ldrcch r1, [r9, #-10] movcc r1, r1, lsr #2 - strcch r1, [fp, r2] @ movhi - bcc .L4212 -.L4224: - ldr r2, .L4366 + strcch r1, [r3, r2] @ movhi + bcc .L4393 +.L4404: + ldr r9, .L4565+32 + mov r1, #8 + sub r0, r9, #3168 + bl _list_get_gc_head_node + movw r2, #65535 + cmp r0, r2 + beq .L4405 + ldr r2, [r4, #1088] + mov r3, r0, asl #1 + ldrh r3, [r2, r3] + cmp r3, #3 + movhi r3, #0 + movls r3, #1 + cmp r7, #0 + moveq r3, #0 + cmp r3, #0 + beq .L4405 + mov r2, #0 + mov r1, #1 + strb r2, [r9, #-3187] + bl gc_add_sblk + cmp r0, #0 + bne .L4564 +.L4405: + ldr r0, .L4565+16 mov r1, #0 - ldr r0, .L4366+12 - str r2, [sp, #28] bl _list_get_gc_head_node movw r3, #65535 + ldr r9, .L4565+32 cmp r0, r3 - mov r10, r0 - ldr r2, [sp, #28] - bne .L4225 -.L4230: + mov fp, r0 + bne .L4406 +.L4411: cmp r8, #1 - bhi .L4226 - b .L4227 -.L4225: - add r1, r2, #564 - ldr r3, [r6, #-3320] - ldr fp, .L4366+8 - ldrh r1, [r1] + bhi .L4407 + b .L4408 +.L4406: + movw r1, #1076 + ldr r3, [r9, #-252] + ldrh r1, [r4, r1] add r3, r3, #1 - str r3, [r6, #-3320] + ldr r2, .L4565+60 + str r3, [r9, #-252] cmp r3, r1, lsr #4 mov r3, r0, asl #1 - bls .L4228 - ldr ip, [r2, #576] - movw lr, #2294 + bls .L4409 + ldr ip, [r2, #1088] + movw lr, #2810 ldrh r2, [r2, lr] mov r1, #0 - str r1, [fp, #-3320] + str r1, [r9, #-252] ldrh ip, [ip, r3] cmp ip, r2 - bcs .L4228 - mov r2, #1 - str r3, [sp, #28] + bcs .L4409 + mov ip, #1 + str r3, [sp, #32] + mov r2, ip + strb ip, [r9, #-3187] + str ip, [sp, #28] bl gc_add_sblk - ldr r3, [sp, #28] + ldr ip, [sp, #28] cmp r0, #0 - movne r3, #1 - strneb r3, [fp, #-3322] - bne .L4212 -.L4228: - ldr r1, [r4, #576] - ldr r2, .L4366 + ldr r3, [sp, #32] + strneb ip, [r9, #-254] + bne .L4393 +.L4409: + ldr r1, [r4, #1088] + ldr r9, .L4565+32 + ldr r2, .L4565+60 ldrh r1, [r1, r3] - add r3, r2, #2960 - ldrh r3, [r3] + sub r3, r9, #3168 + ldrh r3, [r3, #-4] cmp r1, r3, lsr #1 - bhi .L4229 - mov r0, r10 + bhi .L4410 + mov r0, fp mov r1, #1 mov r2, #0 bl gc_add_sblk - b .L4285 -.L4229: - movw r3, #2278 - movw r0, #2280 +.L4564: + mov r3, #1 + strb r3, [r9, #-254] + b .L4393 +.L4410: + movw r3, #2794 + movw r0, #2796 ldrh r0, [r2, r0] + sub r9, r9, #3152 ldrh r3, [r2, r3] add r3, r3, r0 - movw r0, #2974 - ldrh r0, [r2, r0] + ldrh r0, [r9, #-10] cmp r3, r0, asl #1 - ble .L4230 - movw r3, #2294 + ble .L4411 + movw r3, #2810 ldrh r3, [r2, r3] cmp r3, r1 - bcc .L4227 - b .L4230 -.L4226: + bcc .L4408 + b .L4411 +.L4407: + ldr r9, .L4565+32 cmp r8, #16 mov r0, #1 - ldr r10, .L4366 - strb r0, [r4, #2945] - bls .L4231 - add r3, r10, #2976 - movw r2, #2282 - ldrh r2, [r10, r2] - ldrh r3, [r3] + strb r0, [r6, #-3187] + sub r8, r9, #3152 + bls .L4412 + movw r3, #2798 + ldrh r2, [r4, r3] + ldrh r3, [r8, #-8] cmp r2, r3 - bhi .L4231 + bhi .L4412 mov r1, r0 mov r2, #4 bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - ldreqb r0, [r10, #2945] @ zero_extendqisi2 - moveq r1, #3 - moveq r2, #4 - bne .L4232 - b .L4358 -.L4231: + ldreqb r0, [r9, #-3187] @ zero_extendqisi2 + bne .L4413 + b .L4557 +.L4412: mov r0, #1 mov r1, #2 mov r2, r0 bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - bne .L4232 - ldrb r0, [r4, #2945] @ zero_extendqisi2 + bne .L4413 + ldrb r0, [r6, #-3187] @ zero_extendqisi2 +.L4557: mov r1, #3 - mov r2, #2 -.L4358: + mov r2, #4 bl gc_search_src_blk uxth r0, r0 -.L4232: - movw r3, #2974 - cmp r7, r9, lsr #1 - ldrh r3, [r4, r3] - movw r2, #2292 +.L4413: + ldrh r3, [r8, #-10] + cmp r7, r10, lsr #1 + movw r2, #2808 movhi r3, r3, lsr #2 movls r3, r3, lsr #1 strh r3, [r4, r2] @ movhi - b .L4217 -.L4227: - cmp r7, r9 - bcs .L4234 - ldr r0, .L4366+32 + b .L4398 +.L4408: + cmp r7, r10 + ldr r7, .L4565+8 + bcs .L4415 + sub r10, r7, #16 mov r1, #4 - mov r8, #0 - strb r8, [r4, #2945] + mov r9, #0 + strb r9, [r6, #-3187] + mov r0, r10 bl _list_get_gc_head_node movw r3, #65535 - ldr r7, .L4366 cmp r0, r3 - beq .L4235 - ldr r3, [r7, #576] + beq .L4415 + ldr r3, [r4, #1088] mov r0, r0, asl #1 + ldrh r1, [r7, #-20] + ldr r8, .L4565+60 ldrh r2, [r3, r0] - add r3, r7, #2960 - ldrh r1, [r3] - ldrb r3, [r7, #2964] @ zero_extendqisi2 + ldrb r3, [r7, #-43] @ zero_extendqisi2 mul r3, r3, r1 cmp r2, r3, asr #1 - ble .L4236 -.L4235: - movw r3, #2974 - movw r2, #2292 - ldrh r3, [r7, r3] - mov r3, r3, lsr #2 - strh r3, [r7, r2] @ movhi - b .L4212 -.L4236: + ldrgth r3, [r7, #-10] + movwgt r2, #2808 + movgt r3, r3, lsr #2 + strgth r3, [r8, r2] @ movhi + bgt .L4393 +.L4417: mov r2, #4 - mov r0, r8 + mov r0, r9 mov r1, #3 bl gc_search_src_blk - movw r3, #2974 - ldrh r3, [r7, r3] - movw r2, #2292 + ldrh r3, [r7, #-10] + movw r2, #2808 mov r3, r3, lsr #1 - strh r3, [r7, r2] @ movhi + strh r3, [r8, r2] @ movhi uxth r0, r0 - b .L4217 -.L4234: - movw r3, #2974 - movw r2, #2292 - ldrh r3, [r4, r3] + b .L4398 +.L4415: + ldrh r3, [r7, #-10] + movw r2, #2808 mov r3, r3, lsr #2 strh r3, [r4, r2] @ movhi - b .L4212 -.L4223: - movw r1, #2974 + b .L4393 +.L4403: + sub r9, r9, #3152 mov r5, ip - ldrh r1, [fp, r1] + ldrh r1, [r9, #-10] mov r1, r1, lsr #2 - strh r1, [fp, r2] @ movhi - b .L4212 -.L4217: + strh r1, [r3, r2] @ movhi + b .L4393 +.L4398: cmp r0, #0 - beq .L4212 -.L4285: + beq .L4393 +.L4468: mov r3, #1 - strb r3, [r6, #-3322] - b .L4212 -.L4178: - movw r5, #2312 + strb r3, [r6, #-254] + b .L4393 +.L4351: + movw r5, #2828 movw r3, #65535 ldrh r2, [r4, r5] cmp r2, r3 - bne .L4237 + bne .L4418 bl gc_get_src_blk - ldr r3, .L4366 + ldr r3, .L4565+60 strh r0, [r3, r5] @ movhi -.L4237: - movw r3, #2312 +.L4418: + movw r3, #2828 movw r0, #65535 ldrh r1, [r4, r3] - ldr r2, .L4366 + ldr r2, .L4565+60 cmp r1, r0 - beq .L4238 - add r0, r2, #564 - ldrh r0, [r0] + beq .L4419 + movw r0, #1076 + ldrh r0, [r2, r0] cmp r0, r1 mvnls r1, #0 strlsh r1, [r2, r3] @ movhi -.L4238: - movw r3, #2312 - movw r2, #65535 +.L4419: + movw r3, #2828 + movw r1, #65535 ldrh r3, [r4, r3] - cmp r3, r2 - beq .L4365 - ldr r1, .L4366+56 - ldr r2, .L4366 - ldrh r0, [r1, #52] - ldr r2, [r2, #568] - cmp r0, #0 - addne ip, r1, #52 - add r2, r2, r3, asl #2 - movne r1, #0 - beq .L4240 -.L4241: - uxth lr, r1 - cmp lr, r0 - bcs .L4240 - ldrh lr, [ip, #2]! - add r1, r1, #1 + ldr r2, .L4565+60 + cmp r3, r1 + beq .L4563 + ldr r0, .L4565+56 + ldr r1, [r2, #1080] + ldrh ip, [r0, #52] + add r1, r1, r3, asl #2 + cmp ip, #0 + addne r2, r2, #2880 + movne r0, #0 + beq .L4421 +.L4422: + uxth lr, r0 + cmp lr, ip + bcs .L4421 + ldrh lr, [r2, #2]! + add r0, r0, #1 cmp lr, r3 - bne .L4241 -.L4245: - movw r3, #2312 + bne .L4422 +.L4426: + movw r3, #2828 mvn r2, #0 strh r2, [r4, r3] @ movhi - b .L4287 -.L4240: - ldrb r2, [r2, #2] @ zero_extendqisi2 + b .L4470 +.L4421: + ldrb r2, [r1, #2] @ zero_extendqisi2 tst r2, #192 and r2, r2, #224 moveq r1, #1 @@ -25742,61 +26909,61 @@ zftl_do_gc: movne r2, r1 orreq r2, r1, #1 cmp r2, #0 - beq .L4243 - ldr r2, [r4, #576] + beq .L4424 + ldr r2, [r4, #1088] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L4245 - ldr r1, .L4366+64 - movw r2, #2538 - ldr r0, .L4366+68 + beq .L4426 + ldr r1, .L4565+64 + movw r2, #3153 + ldr r0, .L4565+68 bl printk bl dump_stack - b .L4245 -.L4243: + b .L4426 +.L4424: mov r3, #2 - b .L4364 -.L4179: + b .L4562 +.L4352: bl gc_scan_src_blk cmn r0, #1 moveq r3, #3 - beq .L4364 - movw r3, #2312 - ldr r2, .L4366+56 + beq .L4562 + movw r3, #2828 + ldr r2, .L4565+56 ldrh r3, [r4, r3] movw r1, #65535 cmp r3, r1 mov r7, r2 - beq .L4193 + beq .L4370 ldrh r1, [r2, #20] cmp r1, #0 movne r3, #4 - strneb r3, [r6, #-3322] + strneb r3, [r6, #-254] movne r3, #0 strneh r3, [r2, #22] @ movhi - bne .L4287 -.L4247: + bne .L4470 +.L4428: mov r2, #1 - strb r2, [r6, #-3322] - ldr r2, .L4366 + strb r2, [r6, #-254] + ldr r2, .L4565+60 mov r3, r3, asl #1 - ldr r2, [r2, #576] + ldr r2, [r2, #1088] ldrh r3, [r2, r3] cmp r3, #0 - beq .L4248 - ldr r1, .L4366+64 - movw r2, #2566 - ldr r0, .L4366+68 + beq .L4429 + ldr r1, .L4565+64 + movw r2, #3183 + ldr r0, .L4565+68 bl printk bl dump_stack -.L4248: - movw r5, #2312 - ldr r6, .L4366+56 +.L4429: + movw r5, #2828 + ldr r6, .L4565+56 ldrh r0, [r4, r5] bl ftl_free_sblk ldrh r3, [r4, r5] - ldr r2, [r4, #576] + ldr r2, [r4, #1088] mov r5, #0 mov r3, r3, asl #1 strh r5, [r2, r3] @ movhi @@ -25805,83 +26972,86 @@ zftl_do_gc: uxth r3, r3 cmp r3, #8 strlsh r3, [r6, #26] @ movhi - bls .L4245 + bls .L4426 strh r5, [r6, #26] @ movhi bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov r0, r5 bl ftl_info_flush - b .L4245 -.L4180: - ldr r8, .L4366+56 -.L4333: + b .L4426 +.L4353: + ldr r6, .L4565+56 +.L4526: bl gc_scan_src_blk_one_page - ldr r0, .L4366 - ldrh r2, [r8, #2] - add r3, r0, #2960 - ldr r5, .L4366+56 + ldr r3, .L4565+20 + ldrh r1, [r6, #2] + ldr r2, .L4565+60 ldrh r3, [r3] - cmp r2, r3 - bcs .L4251 + ldr r0, .L4565+32 + cmp r1, r3 + ldr r5, .L4565+56 + bcs .L4432 cmp r7, #7 - bls .L4333 - b .L4287 -.L4251: + bls .L4526 + b .L4470 +.L4432: ldrh r3, [r5, #20] - ldr r2, .L4366+20 - cmp r3, #0 - beq .L4252 - ldr r2, [r2] - mov r1, #4 - strb r1, [r6, #-3322] - mov r1, #0 - tst r2, #256 - strh r1, [r5, #22] @ movhi - beq .L4253 ldrh r1, [r5] - ldr ip, [r0, #576] - ldr r0, .L4366+40 + cmp r3, #0 + beq .L4433 + mov ip, #4 + strb ip, [r0, #-254] + mov r0, #0 + strh r0, [r5, #22] @ movhi + ldr r0, [r2, #1088] mov r2, r1, asl #1 - ldrh r2, [ip, r2] + ldrh r2, [r0, r2] + cmp r2, r3 + beq .L4434 + ldr r0, .L4565 + ldr r0, [r0] + tst r0, #1024 + beq .L4434 + ldr r0, .L4565+24 bl printk -.L4253: - movw r3, #2312 - ldr r2, [r4, #576] +.L4434: + movw r3, #2828 + ldr r2, [r4, #1088] ldrh r3, [r4, r3] mov r3, r3, asl #1 ldrh r2, [r2, r3] ldrh r3, [r5, #20] cmp r2, r3 - beq .L4254 - ldr r1, .L4366+64 - movw r2, #2600 - ldr r0, .L4366+68 + beq .L4435 + ldr r1, .L4565+64 + movw r2, #3226 + ldr r0, .L4565+68 bl printk bl dump_stack -.L4254: - movw r3, #2312 +.L4435: + movw r3, #2828 ldrh r1, [r5, #20] ldrh r3, [r4, r3] - ldr r2, [r4, #576] + ldr r2, [r4, #1088] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - b .L4287 -.L4252: + b .L4470 +.L4433: mov r3, #1 - strb r3, [r6, #-3322] - ldr r3, [r2] - ldrh r1, [r5] - ldr r7, [r0, #568] + strb r3, [r0, #-254] + ldr r3, .L4565 + ldr r6, [r2, #1080] + ldr r3, [r3] + add r6, r6, r1, asl #2 tst r3, #256 - add r7, r7, r1, asl #2 - beq .L4255 - ldrb r2, [r7, #2] @ zero_extendqisi2 - ldr r0, .L4366+44 + beq .L4436 + ldrb r2, [r6, #2] @ zero_extendqisi2 + ldr r0, .L4565+28 mov r2, r2, lsr #5 bl printk -.L4255: - ldrb r3, [r7, #2] @ zero_extendqisi2 +.L4436: + ldrb r3, [r6, #2] @ zero_extendqisi2 tst r3, #192 and r3, r3, #224 moveq r2, #1 @@ -25890,15 +27060,15 @@ zftl_do_gc: movne r3, r2 orreq r3, r2, #1 cmp r3, #0 - beq .L4256 - ldr r1, .L4366+64 - movw r2, #2610 - ldr r0, .L4366+68 + beq .L4437 + ldr r1, .L4565+64 + movw r2, #3236 + ldr r0, .L4565+68 bl printk bl dump_stack -.L4256: - movw r7, #2312 - ldr r6, .L4366+56 +.L4437: + movw r7, #2828 + ldr r6, .L4565+56 ldrh r0, [r4, r7] bl ftl_free_sblk mvn r3, #0 @@ -25910,26 +27080,47 @@ zftl_do_gc: strlsh r3, [r6, #26] @ movhi movhi r3, #0 strhih r3, [r6, #26] @ movhi - bls .L4287 - b .L4363 -.L4181: - cmp r10, #0 - bne .L4258 - movw r3, #2292 + bls .L4470 + b .L4561 +.L4566: + .align 2 +.L4565: + .word .LANCHOR2 + .word .LC297 + .word .LANCHOR3-3152 + .word .LANCHOR3-3180 + .word .LANCHOR3-3176 + .word .LANCHOR3-3172 + .word .LC298 + .word .LC299 + .word .LANCHOR3 + .word .LANCHOR0+4936 + .word .LANCHOR0+4096 + .word 1145785929 + .word .LANCHOR3-3200 + .word .LANCHOR3-3168 + .word .LANCHOR0+2828 + .word .LANCHOR0 + .word .LANCHOR1+2752 + .word .LC0 +.L4354: + cmp fp, #0 + bne .L4439 + movw r3, #2808 ldrh r3, [r4, r3] cmp r3, r7 - bcc .L4287 -.L4258: + bcc .L4470 +.L4439: ldrh r2, [r5, #80] movw r3, #65535 cmp r2, r3 - bne .L4259 - ldrb r8, [r4, #2945] @ zero_extendqisi2 + bne .L4440 + ldrb r8, [r6, #-3187] @ zero_extendqisi2 cmp r8, #1 - bne .L4259 - ldr r9, .L4366+56 + bne .L4440 + ldr r9, .L4565+56 bl ftl_flush - movw r3, #570 + movw r3, #2106 mov r1, #5 ldrh r0, [r9, r3] cmp r0, #0 @@ -25938,23 +27129,23 @@ zftl_do_gc: movw r3, #65535 cmp r0, r3 mov r7, r0 - beq .L4262 - ldr r8, [r4, #568] + beq .L4443 + ldr r8, [r4, #1080] add r8, r8, r0, asl #2 ldrb r3, [r8, #2] @ zero_extendqisi2 tst r3, #224 - beq .L4263 - ldr r1, .L4366+64 - movw r2, #2639 - ldr r0, .L4366+68 + beq .L4444 + ldr r1, .L4565+64 + movw r2, #3270 + ldr r0, .L4565+68 bl printk bl dump_stack -.L4263: +.L4444: ldrb r3, [r8, #2] @ zero_extendqisi2 and r3, r3, #15 orr r3, r3, #176 strb r3, [r8, #2] -.L4286: +.L4469: mov r0, r7 mov r1, #1 bl ftl_erase_sblk @@ -25962,192 +27153,227 @@ zftl_do_gc: add r1, r5, #96 strb r3, [r5, #84] mov r0, r7 - ldr r10, .L4366+48 + ldr r10, .L4565+52 bl ftl_get_blk_list_in_sblk mov r8, #0 strh r7, [r5, #80] @ movhi mov r1, #255 - mov fp, r10 + ldrh r3, [r10, #-4] + ldrh r2, [r10, #-2] strh r8, [r5, #82] @ movhi - ldrh r3, [fp], #-80 strb r8, [r5, #85] strh r8, [r5, #90] @ movhi uxtb r0, r0 strb r0, [r5, #89] smulbb r0, r3, r0 - ldrb r3, [r4, #2964] @ zero_extendqisi2 + ldrb r3, [r6, #-3195] @ zero_extendqisi2 + mul r2, r3, r2 strh r0, [r5, #86] @ movhi - movw r5, #2962 - ldrh r2, [r4, r5] - ldr r0, [r6, #-3316] - mul r2, r3, r2 - mov r2, r2, asl #2 - bl ftl_memset - ldrh r2, [r4, r5] - ldrb r3, [r4, #2964] @ zero_extendqisi2 - mov r1, #255 - ldr r0, [r6, #-3312] - mul r2, r3, r2 - mov r2, r2, asl #2 - bl ftl_memset - ldrh r3, [r4, r5] - ldrb r2, [r4, #2964] @ zero_extendqisi2 - mov r1, #255 - ldr r0, [r4, #2940] mvn r5, #0 + ldr r0, [r6, #-244] + mov r2, r2, asl #2 + bl ftl_memset + ldrb r3, [r6, #-3195] @ zero_extendqisi2 + ldrh r2, [r10, #-2] + mov r1, #255 + ldr r0, [r6, #-240] + mul r2, r3, r2 + mov r2, r2, asl #2 + bl ftl_memset + ldrh r3, [r10, #-2] + ldrb r2, [r6, #-3195] @ zero_extendqisi2 + mov r1, #255 + ldr r0, [r6, #-3192] mul r2, r2, r3 bl ftl_memset - ldr r3, [r4, #580] + ldr r3, [r4, #1092] strh r5, [r3, #128] @ movhi strh r5, [r3, #130] @ movhi str r7, [r3, #132] bl pm_flush bl ftl_ext_info_flush - ldr r3, [r4, #2288] + ldr r3, [r4, #2804] mov r0, r8 strh r8, [r9, #52] @ movhi strh r7, [r3, #126] @ movhi - movw r3, #566 + movw r3, #2102 strh r8, [r9, r3] @ movhi - strh r8, [fp] @ movhi - strh r8, [r10, #-76] @ movhi - str r5, [r4, #2888] + movw r3, #2104 + strh r8, [r9, r3] @ movhi + movw r3, #2108 + strh r8, [r9, r3] @ movhi + ldr r3, .L4565+40 + str r5, [r3, #844] bl ftl_info_flush - b .L4287 -.L4259: - cmp r10, #1 - ldr r9, .L4366 - ldr r10, .L4366+56 + b .L4470 +.L4440: + cmp fp, #1 + ldr r9, .L4565+56 + ldr r10, .L4565+36 movne r8, #1 moveq r8, #4 cmp r7, #15 addls r8, r8, #4 -.L4266: +.L4447: sub r8, r8, #1 uxtb r8, r8 cmp r8, #255 - beq .L4287 + beq .L4470 bl gc_do_copy_back - ldrb r3, [r4, #2945] @ zero_extendqisi2 - ldr r7, .L4366+56 + ldrb r3, [r6, #-3187] @ zero_extendqisi2 + ldr fp, .L4565+32 cmp r3, #0 - bne .L4267 - ldrb r3, [r9, #2262] @ zero_extendqisi2 + ldr r7, .L4565+56 + bne .L4448 + ldrb r3, [r4, #2774] @ zero_extendqisi2 cmp r3, #3 - bhi .L4268 + bhi .L4449 bl ftl_write_commit -.L4268: - ldrh r2, [r10, #22] - ldrh r3, [r10, #20] +.L4449: + ldrh r2, [r9, #22] + ldrh r3, [r9, #20] cmp r2, r3 - bcc .L4266 + bcc .L4447 mov r3, #1 - strb r3, [r6, #-3322] + strb r3, [r6, #-254] bl ftl_write_commit bl ftl_flush - ldr r3, .L4366+56 - ldr r2, .L4366 + ldr r3, .L4565+56 + ldr r2, .L4565+60 ldrh r3, [r3] - ldr r2, [r2, #576] + ldr r2, [r2, #1088] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L4270 - ldr r1, .L4366+64 - movw r2, #2714 - ldr r0, .L4366+68 + beq .L4451 + ldr r1, .L4565+64 + movw r2, #3354 + ldr r0, .L4565+68 bl printk bl dump_stack -.L4270: - movw r3, #2312 - ldr r1, [r4, #576] +.L4451: + movw r3, #2828 + ldr r1, [r4, #1088] ldrh r0, [r4, r3] mov r2, r0, asl #1 ldrh ip, [r1, r2] cmp ip, #0 - bne .L4271 + bne .L4452 strh ip, [r1, r2] @ movhi - ldr r2, .L4366 + ldr r2, .L4565+60 ldrh r0, [r2, r3] bl ftl_free_sblk - b .L4245 -.L4271: + b .L4426 +.L4452: mov r1, #0 mov r2, #1 bl gc_add_sblk - b .L4245 -.L4367: - .align 2 -.L4366: - .word .LANCHOR0 - .word .LANCHOR5 - .word .LANCHOR3 - .word .LANCHOR0+2956 - .word .LANCHOR0+2976 - .word .LANCHOR2 - .word .LC304 - .word .LANCHOR0+2948 - .word .LANCHOR0+2968 - .word .LC305 - .word .LC306 - .word .LC307 - .word .LANCHOR0+2960 - .word .LANCHOR0+2884 - .word .LANCHOR0+2312 - .word .LANCHOR0 - .word .LANCHOR1+2180 - .word .LC0 -.L4267: - ldr r3, .L4366+52 - ldrh r2, [r3] - cmp r2, #0 - beq .L4272 - mov r5, #0 - strh r5, [r3] @ movhi + b .L4426 +.L4448: + ldrh r3, [r10] + cmp r3, #0 + beq .L4453 + ldr r3, .L4565+36 + mov r2, #0 + ldr r8, .L4565+40 + strh r2, [r3] @ movhi bl sblk_wait_write_queue_completed bl gc_write_completed - ldr r3, .L4366+60 - ldr r0, [r3, #2888] + ldr r0, [r8, #844] cmn r0, #1 - beq .L4273 + beq .L4454 + ldrb r3, [fp, #-2612] @ zero_extendqisi2 + cmp r3, #0 + bne .L4455 + ldrb r3, [fp, #-3194] @ zero_extendqisi2 + cmp r3, #0 + beq .L4456 +.L4455: + ldr r3, [r4, #2804] + ldr r9, .L4565+60 + ldr r2, [r3, #156] + ldr r3, .L4565+44 + cmp r2, r3 + bne .L4456 + ldr r10, .L4565+48 + ldrb r3, [r9, #1189] @ zero_extendqisi2 + ldrb r1, [r6, #-3202] @ zero_extendqisi2 + ldrh r2, [r10, #-4] + rsb r3, r3, #24 + rsb r3, r2, r3 + mov r2, r0, lsr r2 + mvn r0, #0 + bic r0, r2, r0, asl r3 + bl __aeabi_uidiv + ldr r5, [r9, #1080] + mov ip, r0, asl #2 + add r1, r5, ip + ldrb r3, [r1, #2] @ zero_extendqisi2 + tst r3, #8 + beq .L4454 + movw r2, #2788 + ldrh lr, [r10, #38] + ldrh r2, [r9, r2] + add r2, r2, #8 + cmp r2, lr + bge .L4454 + bfc r3, #3, #2 + movw r2, #1084 + strb r3, [r1, #2] + ldr r3, [r5, r0, asl #2] + ldrh r2, [r9, r2] + ubfx r3, r3, #11, #8 + ldrh r1, [r5, ip] + mul r2, r2, r3 + ubfx lr, r1, #0, #11 + mov r3, r3, lsr #3 + add r2, r2, r2, asl #1 + add r2, lr, r2, asr #2 + bfi r1, r2, #0, #11 + strh r1, [r5, ip] @ movhi + ldr r2, [r5, r0, asl #2] + bfi r2, r3, #11, #8 + str r2, [r5, r0, asl #2] + b .L4454 +.L4456: bl ftl_mask_bad_block -.L4273: - ldr r3, [r4, #580] - str r5, [r4, #2888] +.L4454: + ldr r3, [r4, #1092] + mov r5, #0 + str r5, [r8, #844] strh r5, [r7, #52] @ movhi ldrh r0, [r3, #80] bl ftl_free_sblk - ldr r0, [r4, #2320] - ldr r2, [r4, #580] + ldr r0, [r4, #2836] + ldr r2, [r4, #1092] mvn r3, #0 - ldr r1, [r4, #2288] - cmp r0, #0 + ldr r1, [r4, #2804] + cmp r0, r5 strh r3, [r2, #80] @ movhi strh r3, [r1, #126] @ movhi strh r3, [r2, #130] @ movhi - beq .L4274 + beq .L4457 bl zbuf_free -.L4274: - mov r5, #0 - str r5, [r4, #2320] +.L4457: + str r5, [r4, #2836] bl flt_sys_flush - ldr r1, .L4366+64 - mov r2, #2752 - ldr r0, .L4366+68 - strb r5, [r6, #-3322] + ldr r1, .L4565+64 + movw r2, #3413 + ldr r0, .L4565+68 + strb r5, [r6, #-254] bl printk bl dump_stack - b .L4287 -.L4272: + b .L4470 +.L4453: ldrh r3, [r5, #86] - ldrh r2, [r10, #22] + ldrh r2, [r9, #22] cmp r3, #1 - ldrh r3, [r10, #20] - bls .L4275 + ldrh r3, [r9, #20] + bls .L4458 cmp r2, r3 - bcc .L4266 + bcc .L4447 mov r3, #1 - strb r3, [r6, #-3322] + strb r3, [fp, #-254] ldrh r3, [r7, #52] add r2, r3, #1 strh r2, [r7, #52] @ movhi @@ -26156,12 +27382,12 @@ zftl_do_gc: strh r2, [r3, #54] @ movhi mvn r3, #0 strh r3, [r7] @ movhi - b .L4287 -.L4275: + b .L4470 +.L4458: cmp r2, r3 mov r1, #5 - strb r1, [r6, #-3322] - bcc .L4276 + strb r1, [fp, #-254] + bcc .L4459 ldrh r3, [r7, #52] add r2, r3, #1 strh r2, [r7, #52] @ movhi @@ -26170,94 +27396,92 @@ zftl_do_gc: strh r2, [r3, #54] @ movhi mvn r3, #0 strh r3, [r7] @ movhi -.L4276: +.L4459: bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed ldrh r2, [r5, #80] - ldr r3, [r4, #580] - ldr r5, .L4366+60 + ldr r3, [r4, #1092] strh r2, [r3, #128] @ movhi bl pm_flush bl ftl_ext_info_flush - ldrb r1, [r4, #684] @ zero_extendqisi2 + ldr r1, .L4565+52 + ldrb r0, [r4, #1196] @ zero_extendqisi2 mov r3, #0 strh r3, [r7, #12] @ movhi - add r3, r5, #2960 - cmp r1, #0 - ldr r2, .L4366+56 - ldrh r3, [r3] - movwne r1, #2962 - ldrneh r1, [r5, r1] + ldrh r3, [r1, #-4] + cmp r0, #0 + ldr r2, .L4565+56 + ldrneh r1, [r1, #-2] strh r3, [r7, #14] @ movhi - ldrb r3, [r4, #2937] @ zero_extendqisi2 + ldrb r3, [r6, #-3196] @ zero_extendqisi2 strneh r1, [r2, #14] @ movhi movne r1, #1 strh r3, [r7, #16] @ movhi strneh r1, [r2, #16] @ movhi cmp r3, #2 - bne .L4279 + bne .L4462 ldrh r3, [r7, #14] mov r3, r3, asl #1 strh r3, [r7, #14] @ movhi - ldrb r3, [r4, #2938] @ zero_extendqisi2 + ldrb r3, [r6, #-3194] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L4366+56 + ldreq r3, .L4565+56 moveq r2, #1 streqh r2, [r3, #16] @ movhi -.L4279: +.L4462: mov r3, #0 strh r3, [r7, #18] @ movhi - b .L4287 -.L4288: - ldr r8, .L4366+56 + b .L4470 +.L4471: + ldr r8, .L4565+56 mov r5, #0 -.L4182: +.L4355: bl gc_check_data_one_wl - subs fp, r0, #0 - beq .L4282 - ldr r3, .L4366+56 + subs r10, r0, #0 + beq .L4465 + ldr r3, .L4565+56 mov r5, #0 strh r5, [r3, #52] @ movhi - ldr r3, [r4, #580] + ldr r3, [r4, #1092] ldrh r0, [r3, #80] bl ftl_free_sblk - ldr r2, [r4, #580] - ldr r1, [r4, #2288] + ldr r2, [r4, #1092] + ldr r1, [r4, #2804] mvn r3, #0 - ldr r0, [r4, #2320] + ldr r0, [r4, #2836] strh r3, [r2, #80] @ movhi strh r3, [r1, #126] @ movhi strh r3, [r2, #130] @ movhi bl zbuf_free - str r5, [r4, #2320] - strb r5, [r6, #-3322] -.L4363: + str r5, [r4, #2836] + strb r5, [r6, #-254] +.L4561: bl flt_sys_flush - b .L4287 -.L4282: + b .L4470 +.L4465: ldrh r2, [r8, #12] ldrh r3, [r8, #14] - ldr r9, .L4366+60 + ldr r9, .L4565+60 cmp r2, r3 - bcc .L4283 - ldr r0, [r9, #2320] + bcc .L4466 + ldr r0, [r9, #2836] mov r3, #6 - strb r3, [r6, #-3322] + strb r3, [r6, #-254] bl zbuf_free - str fp, [r9, #2320] - b .L4287 -.L4283: + str r10, [r9, #2836] + b .L4470 +.L4466: cmp r7, #15 - bls .L4182 - cmp r10, #1 - bne .L4287 + bls .L4355 + cmp fp, #1 + bne .L4470 add r5, r5, #1 uxtb r5, r5 cmp r5, #4 - bls .L4182 - b .L4287 -.L4183: + bls .L4355 + b .L4470 +.L4356: bl gc_update_l2p_map_new mvn r7, #0 bl gc_free_src_blk @@ -26265,34 +27489,725 @@ zftl_do_gc: bl pm_flush strh r7, [r5, #80] @ movhi bl ftl_ext_info_flush - ldr r3, [r4, #2288] + ldr r3, [r4, #2804] mov r0, #0 strh r7, [r3, #126] @ movhi bl ftl_info_flush -.L4365: +.L4563: mov r3, #0 -.L4364: - strb r3, [r6, #-3322] -.L4287: +.L4562: + strb r3, [r6, #-254] +.L4470: mov r0, #16 - b .L4354 -.L4212: + b .L4552 +.L4393: mov r0, r5 - b .L4354 -.L4262: - ldr r1, .L4366+64 - movw r2, #2645 - ldr r0, .L4366+68 + b .L4552 +.L4443: + ldr r1, .L4565+64 + movw r2, #3277 + ldr r0, .L4565+68 bl printk bl dump_stack - b .L4286 -.L4354: + b .L4469 +.L4552: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} .fnend .size zftl_do_gc, .-zftl_do_gc .align 2 + .global zftl_init + .type zftl_init, %function +zftl_init: + .fnstart + @ args = 0, pretend = 0, frame = 24 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {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 + ldr r5, .L4651 + mvn r3, #0 + ldr r4, .L4651+4 + mov r6, #0 + ldr r1, .L4651+8 + sub r7, r5, #3168 + ldr r0, .L4651+12 + strb r3, [r4, #2824] + strb r3, [r5, #-2606] + strb r3, [r5, #-168] + str r3, [r5, #488] + strb r6, [r4, #2800] + strb r6, [r5, #-2605] + strb r6, [r4, #2801] + bl printk + ldr r8, .L4651+16 + ldrb r3, [r8, #16] @ zero_extendqisi2 + ldrb fp, [r8, #13] @ zero_extendqisi2 + strb fp, [r4, #2772] + mov r9, fp, asl #9 + uxth r9, r9 + str r3, [sp, #4] + ldrb r3, [sp, #4] @ zero_extendqisi2 + ldr r1, [sp, #4] + strb r3, [r5, #-3196] + ldrh r3, [r8, #14] + strh r3, [r7, #-2] @ movhi + mov r0, r3 + str r3, [sp, #8] + bl __aeabi_idiv + ldrb r1, [r4, #1101] @ zero_extendqisi2 + ldrh r10, [r8, #18] + ldrh ip, [r4, #2] + strb r1, [r5, #-3140] + strh r0, [r7, #-4] @ movhi + mov r2, r0 + ldrb r0, [r8, #17] @ zero_extendqisi2 + ldr r3, [sp, #8] + smulbb r1, r0, r1 + strb r0, [r5, #-3202] + mov r0, #1 + uxtb r7, r1 + movw r1, #1076 + strh r10, [r4, r1] @ movhi + movw r1, #474 + strh r9, [r5, r1] @ movhi + sub r1, r5, #3136 + strb r7, [r5, #-3195] + strh ip, [r1, #-6] @ movhi +.L4568: + cmp r0, ip + uxth r1, r6 + add r6, r6, #1 + movls r0, r0, asl #1 + bls .L4568 +.L4649: + ldr r0, .L4651+20 + sub r1, r1, #1 + strh r1, [r0, #-4] @ movhi + mov r0, #0 + mul r1, r3, fp + mul r6, r10, r1 + str r1, [sp, #8] + mov r1, #1 + mov ip, r6, lsr #21 +.L4570: + cmp r1, ip + uxth lr, r0 + add r0, r0, #1 + movls r1, r1, asl #1 + bls .L4570 +.L4650: + ldr r1, .L4651+24 + sub lr, lr, #1 + mov r0, #1 + str r3, [sp, #20] + mul r6, r7, r6 + uxth lr, lr + mul r1, r1, r7 + mov lr, r0, asl lr + str r2, [sp, #12] + mov r10, r10, lsr #4 + str r6, [r4, #2780] + ldr r6, .L4651 + mul r8, lr, r1 + mov r1, fp + add fp, r6, #496 + add ip, r8, #24576 + str ip, [r6, #492] + str ip, [sp, #16] + mov r0, ip + str r8, [r4, #1032] + bl __aeabi_uidiv + sub r1, r9, #1 + str r0, [r4, #2784] + add r0, r1, r0, asl #2 + mov r1, r9 + bl __aeabi_uidiv + ldr r2, [sp, #12] + strh r0, [fp] @ movhi + uxth r0, r0 + mul r1, r7, r2 + mov r0, r0, asl #4 + bl __aeabi_idiv + sub r2, r6, #3152 + ldr r3, [sp, #8] + ldr ip, [sp, #16] + strh r0, [r6, #-224] @ movhi + mul r1, r7, r3 + mov r0, ip + str r2, [sp, #12] + sub r1, r1, #1 + bl __aeabi_uidiv + cmp r10, #79 + movw ip, #1084 + movls r1, #80 + ldr r2, [sp, #12] + add r0, r0, #8 + ldr r3, [sp, #20] + strh r10, [r2, #-10] @ movhi + strlsh r1, [r2, #-10] @ movhi + ldr r1, .L4651 + strh r0, [r2, #-8] @ movhi + mov r0, #2000 + sub r2, r1, #2608 + strh r0, [r2] @ movhi + mov r0, #50 + strh r0, [r2, #-2] @ movhi + mov r0, #256 + strh r0, [r6, #-228] @ movhi + mov r0, #48 + strh r0, [r6, #-226] @ movhi + mov r0, #32 + strh r0, [r4, ip] @ movhi + ldr ip, [sp, #4] + cmp ip, #2 + mov ip, r2 + beq .L4573 + ldrb lr, [r1, #-3188] @ zero_extendqisi2 + cmp lr, #0 + beq .L4574 +.L4573: + mov r1, #150 + strh r1, [ip, #-2] @ movhi + mov r1, #64 + strh r1, [r6, #-226] @ movhi + movw r1, #1084 + mov lr, #12 + strh lr, [r4, r1] @ movhi + ldrb lr, [r4] @ zero_extendqisi2 + ldr r2, .L4651 + cmp lr, #0 + sub r0, r2, #2608 + bne .L4575 + ldr lr, .L4651+4 + mov r10, #4 + strh r10, [lr, r1] @ movhi + mov r1, #600 + strh r1, [r0] @ movhi + mov r1, #128 + strh r1, [r2, #-228] @ movhi +.L4575: + ldrb r2, [r4, #1197] @ zero_extendqisi2 + cmp r2, #0 + movne r2, #200 + strneh r2, [ip, #-2] @ movhi + movne r2, #2000 + strneh r2, [ip] @ movhi + b .L4577 +.L4574: + ldr ip, .L4651+4 + ldrb ip, [ip, #1196] @ zero_extendqisi2 + cmp ip, #0 + strneh r0, [r2, #-2] @ movhi + strneh r0, [r1, #-226] @ movhi + movne ip, #1200 + strneh ip, [r2] @ movhi +.L4577: + mul r3, r7, r3 + ldr r7, .L4651+16 + mov r2, #0 + str r2, [r4, #2820] + mov r2, #1 + strb r2, [r6, #477] + cmp r9, r3, asl #2 + ldrlt r3, .L4651 + movlt r2, #2 + strltb r2, [r3, #477] + ldr r3, [r7] + tst r3, #4096 + beq .L4580 + ldr r0, .L4651+28 + mov r1, r8 + bl printk +.L4580: + ldr r3, [r7] + tst r3, #4096 + beq .L4581 + ldr r0, .L4651+32 + ldr r1, [r4, #2780] + bl printk +.L4581: + ldr r3, [r7] + tst r3, #4096 + beq .L4582 + ldr r0, .L4651+36 + ldr r1, [r4, #2784] + bl printk +.L4582: + ldr r3, [r7] + tst r3, #4096 + beq .L4583 + ldr r0, .L4651+40 + ldr r1, [r6, #492] + bl printk +.L4583: + ldr r3, [r7] + tst r3, #4096 + beq .L4584 + ldr r0, .L4651+44 + ldrh r1, [fp] + bl printk +.L4584: + ldr r3, [r7] + tst r3, #4096 + beq .L4585 + movw r3, #474 + ldr r0, .L4651+48 + ldrh r1, [r6, r3] + bl printk +.L4585: + ldr r3, [r7] + tst r3, #4096 + beq .L4586 + ldr r0, .L4651+52 + ldrh r1, [r6, #-224] + bl printk +.L4586: + ldr r3, [r7] + tst r3, #4096 + beq .L4587 + ldr r3, .L4651+56 + ldr r0, .L4651+60 + ldrh r1, [r3, #-10] + bl printk +.L4587: + ldr r3, [r7] + tst r3, #4096 + beq .L4588 + ldr r3, .L4651+56 + ldr r0, .L4651+64 + ldrh r1, [r3, #-8] + bl printk +.L4588: + bl zbuf_init + mov r0, #16384 + bl ftl_malloc + movw r9, #1076 + ldr r8, .L4651+68 + str r0, [r5, #140] + mov r0, #16384 + bl ftl_malloc + str r0, [r5, #148] + mov r0, #16384 + bl ftl_malloc + ldrh r3, [r4, r9] + str r0, [r5, #500] + mov r0, #6 + mul r0, r0, r3 + bl ftl_malloc + ldrb r3, [r5, #-3195] @ zero_extendqisi2 + str r0, [r4, #1036] + ldrh r0, [r8, #-4] + mul r0, r3, r0 + mov r0, r0, asl #2 + bl ftl_malloc + ldrb r3, [r5, #-3195] @ zero_extendqisi2 + ldrh r1, [r8, #-4] + ldr r2, [r5, #148] + mul r1, r3, r1 + str r2, [r5, #-2624] + add r3, r2, r1, asl #3 + str r3, [r4, #1088] + str r0, [r5, #-2620] + ldrh r5, [r4, r9] + ldr r0, [r7] + mov r5, r5, lsr #1 + tst r0, #4096 + add r1, r5, r1, asl #1 + add r1, r2, r1, asl #2 + str r1, [r4, #1092] + beq .L4589 + ldr r0, .L4651+72 + bl printk +.L4589: + movw r3, #1076 + ldrh r5, [r8, #-4] + ldrh r2, [r4, r3] + ldrb r3, [r6, #-3195] @ zero_extendqisi2 + ldrh fp, [fp] + mul r5, r3, r5 + ldr r3, [r7] + mov fp, fp, asl #2 + tst r3, #4096 + add fp, fp, r2, asl #2 + add fp, fp, #704 + add r5, r2, r5, asl #2 + mov r5, r5, asl #1 + add r5, r5, #632 + beq .L4590 + ldr ip, .L4651 + movw r3, #474 + ldr r0, .L4651+76 + mov r1, r5 + mov r2, fp + ldrh r3, [ip, r3] + bl printk +.L4590: + movw r3, #474 + ldrh r3, [r6, r3] + cmp fp, r3 + cmpls r5, r3 + movhi fp, #1 + movls fp, #0 + bls .L4591 +.L4647: + b .L4647 +.L4591: + bl sblk_init + bl ftl_info_blk_init + cmn r0, #1 + beq .L4593 + bl ftl_ext_info_init + bl gc_init + mov r0, #1 + bl pm_init + bl lpa_rebuild_hash + ldr r0, [r4, #1092] + mov r1, fp + add r0, r0, #16 + bl ftl_open_sblk_recovery + ldr r1, [r4, #1092] + add r0, r1, #48 + add r1, r1, #16 + bl ftl_open_sblk_recovery + ldr r2, [r4, #2804] + ldr r0, [r4, #1092] + ldr r3, [r2, #8] + add r0, r0, #16 + add r3, r3, #16 + str r3, [r2, #8] + bl ftl_info_data_recovery + ldr r0, [r4, #1092] + add r0, r0, #48 + bl ftl_info_data_recovery + ldr r0, [r4, #1092] + add r0, r0, #80 + bl ftl_info_data_recovery + bl gc_recovery + bl pm_flush + mov r0, #1 + bl ftl_total_vpn_update + ldr r3, .L4651 + ldrb r3, [r3, #145] @ zero_extendqisi2 + cmp r3, #0 + ldrne r3, .L4651+4 + ldrne r2, [r3, #2804] + ldrne r3, [r2, #68] + addne r3, r3, #1 + strne r3, [r2, #68] + bl ftl_ext_info_flush + mov r0, #0 + bl ftl_info_flush + bl print_ftl_debug_info + ldr r3, [r4, #1092] + ldr r2, .L4651+4 + ldrh r3, [r3, #124] + cmp r3, #0 + bne .L4599 + movw r3, #2788 + movw r1, #2792 + ldrh r3, [r2, r3] + ldrh r2, [r2, r1] + add r3, r3, r2 + cmp r3, #7 + ble .L4599 +.L4597: + mov r0, #0 + b .L4593 +.L4599: + ldr r6, .L4651+80 + mov r5, #16384 +.L4630: + mov r1, #1 + mov r0, #0 + bl zftl_do_gc + mov r0, #1 + mov r1, r0 + bl zftl_do_gc + ldr r3, [r4, #1092] + ldrh r2, [r3, #124] + cmp r2, #0 + bne .L4596 + ldrh r2, [r3, #80] + movw r3, #65535 + cmp r2, r3 + bne .L4596 + ldr r2, .L4651+84 + ldrh r3, [r6] + ldrh r2, [r2] + add r3, r3, r2 + cmp r3, #7 + bgt .L4597 +.L4596: + subs r5, r5, #1 + bne .L4630 + b .L4597 +.L4593: + add sp, sp, #28 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L4652: + .align 2 +.L4651: + .word .LANCHOR3 + .word .LANCHOR0 + .word .LC2 + .word .LC1 + .word .LANCHOR2 + .word .LANCHOR3-3200 + .word 1892352 + .word .LC300 + .word .LC301 + .word .LC302 + .word .LC303 + .word .LC304 + .word .LC305 + .word .LC306 + .word .LANCHOR3-3152 + .word .LC307 + .word .LC308 + .word .LANCHOR3-3168 + .word .LC309 + .word .LC310 + .word .LANCHOR0+2788 + .word .LANCHOR0+2792 + .fnend + .size zftl_init, .-zftl_init + .align 2 + .global rk_ftl_init + .type rk_ftl_init, %function +rk_ftl_init: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + mov r0, #68 + ldr r3, .L4669 + mov r5, #0 + ldr r4, .L4669+4 + ldr r3, [r3] + str r5, [r4, #-212] + strb r5, [r4, #504] + str r3, [r4, #-216] + bl ftl_malloc + cmp r0, r5 + str r0, [r4, #-208] + bne .L4654 +.L4656: + mvn r0, #0 + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L4654: + mov r0, #2048 + bl ftl_malloc + add r1, r4, #512 + str r5, [r4, #-204] + str r5, [r4, #512] + str r0, [r4, #508] + sub r0, r4, #204 + bl rknand_get_reg_addr + ldr r3, [r4, #-204] + cmp r3, #0 + beq .L4656 + bl rk_nandc_irq_init + mov r1, r5 + mov r2, r5 + mov r3, #2048 + ldr r0, [r4, #508] + bl flash_sram_load_store + bl rknand_flash_cs_init + ldr r3, [r4, #-208] + ldr r2, .L4669+8 + ldr r0, [r4, #-204] + str r2, [r3, #40] + ldr r2, .L4669+12 + str r2, [r3, #32] + ldr r2, .L4669+16 + str r2, [r3, #44] + ldr r2, .L4669+20 + str r2, [r3, #48] + ldr r2, .L4669+24 + str r2, [r3, #36] + ldr r2, .L4669+28 + str r2, [r3, #56] + ldr r2, .L4669+32 + str r2, [r3, #20] + ldr r2, .L4669+36 + str r2, [r3, #24] + ldr r2, .L4669+40 + str r2, [r3, #12] + ldr r2, .L4669+44 + str r2, [r3, #16] + ldr r2, .L4669+48 + str r2, [r3, #4] + ldr r2, .L4669+52 + str r2, [r3, #8] + ldr r2, .L4669+56 + str r2, [r3, #60] + ldr r2, .L4669+60 + str r2, [r3, #64] + ldr r2, .L4669+64 + str r2, [r3, #52] + ldr r2, .L4669+68 + str r2, [r3, #28] + bl nand_flash_init + subs r7, r0, #0 + bne .L4657 + bl zftl_init + mov r5, r0 + bl zftl_proc_debug_init + mov r3, #1 + strb r3, [r4, #504] + b .L4658 +.L4657: + ldr r3, [r4, #-208] + mov r6, r4 + ldr r2, .L4669+72 + ldr r0, [r4, #-204] + ldr r4, .L4669+76 + str r2, [r3, #40] + ldr r2, .L4669+80 + str r2, [r3, #32] + ldr r2, .L4669+84 + str r2, [r3, #44] + ldr r2, .L4669+88 + str r2, [r3, #48] + ldr r2, .L4669+92 + str r2, [r3, #36] + ldr r2, .L4669+96 + str r2, [r3, #56] + ldr r2, .L4669+100 + str r2, [r3, #20] + ldr r2, .L4669+104 + str r2, [r3, #24] + ldr r2, .L4669+108 + str r2, [r3, #12] + ldr r2, .L4669+112 + str r2, [r3, #16] + ldr r2, .L4669+116 + str r2, [r3, #4] + ldr r2, .L4669+120 + str r2, [r3, #8] + ldr r2, .L4669+124 + str r2, [r3, #60] + ldr r2, .L4669+128 + str r2, [r3, #64] + ldr r2, .L4669+132 + str r2, [r3, #52] + ldr r2, .L4669+136 + str r2, [r3, #28] + bl FlashInit + cmn r7, #2 + mov r5, r0 + bne .L4659 + ldr r1, .L4669+140 + mov r2, #32 + add r0, r4, #4 + bl ftl_memcpy + ldrb r0, [r4, #22] @ zero_extendqisi2 + bl flash_lsb_page_tbl_build + ldrh r3, [r4, #14] + strh r3, [r4, #30] @ movhi +.L4659: + ldr r3, .L4669+144 + ldr r2, [r3] + ldr r3, .L4669+148 + cmp r2, r3 + ldr r2, .L4669+152 + bne .L4660 + ldr r3, .L4669+156 + ldrb r3, [r3] @ zero_extendqisi2 + cmp r3, #0 + bne .L4661 +.L4660: + mov r3, #0 + strb r3, [r2, #1102] + strb r3, [r2] +.L4661: + ldr r1, .L4669+160 + mov r0, #1 + ldrh ip, [r4, #14] + mov r3, #0 + str r3, [r6, #-180] + ldrb r1, [r1] @ zero_extendqisi2 + strb r1, [r2, #1100] + ldr r1, .L4669+164 + ldrb r1, [r1] @ zero_extendqisi2 + strb r1, [r2, #1172] +.L4662: + cmp r0, ip + uxth r1, r3 + add r3, r3, #1 + movls r0, r0, asl #1 + bls .L4662 +.L4668: + ldr r3, .L4669+168 + sub r1, r1, #1 + strh r1, [r3, #-4] @ movhi + mov r3, #0 + cmp r5, r3 + strb r3, [r2, #1135] + bne .L4658 + bl FtlInit + mov r5, r0 +.L4658: + mov r1, r5 + ldr r0, .L4669+172 + bl printk + mov r0, r5 + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L4670: + .align 2 +.L4669: + .word jiffies + .word .LANCHOR3 + .word zftl_deinit + .word zftl_cache_flush + .word zftl_flash_suspend + .word zftl_flash_resume + .word zftl_get_density + .word zftl_read_flash_info + .word zftl_read + .word zftl_write + .word zftl_sys_read + .word zftl_sys_write + .word zftl_vendor_read + .word zftl_vendor_write + .word zftl_nandc_get_irq_status + .word zftl_proc_ftl_read + .word zftl_do_gc + .word zftl_discard + .word ftl_deinit + .word .LANCHOR2 + .word ftl_cache_flush + .word ftl_flash_suspend + .word ftl_flash_resume + .word ftl_get_density + .word ftl_read_flash_info + .word ftl_read + .word ftl_write + .word ftl_sys_read + .word ftl_sys_write + .word ftl_vendor_read + .word ftl_vendor_write + .word ftl_nandc_get_irq_status + .word ftl_proc_ftl_read + .word ftl_do_gc + .word ftl_discard + .word gNandParaInfo + .word g_nandc_version_data + .word 1446522928 + .word .LANCHOR0 + .word gFlashSlcMode + .word gNandFlashIDBEccBits + .word gNandFlashEccBits + .word .LANCHOR3-3200 + .word .LC311 + .fnend + .size rk_ftl_init, .-rk_ftl_init + .align 2 .global zftl_write .type zftl_write, %function zftl_write: @@ -26302,79 +28217,94 @@ zftl_write: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r3 - ldr r3, .L4396 + ldr r3, .L4706 .pad #28 sub sp, sp, #28 mov r5, r0 mov r4, r1 - mov r7, r2 + mov r6, r2 ldr r3, [r3] tst r3, #4096 - beq .L4369 + beq .L4672 ldr r3, [r9] mov r1, r5 - ldr r0, .L4396+4 + ldr r0, .L4706+4 mov r2, r4 str r3, [sp] - mov r3, r7 + mov r3, r6 bl printk -.L4369: +.L4672: cmp r5, #0 - ldreq r3, .L4396+8 + ldreq r3, .L4706+8 moveq r5, #24576 - ldreq r3, [r3, #520] - beq .L4371 -.L4370: + ldreq r3, [r3, #1032] + beq .L4674 +.L4673: cmp r5, #3 - bhi .L4385 + bhi .L4692 mov r5, r5, asl #13 mov r3, #8192 -.L4371: - add r2, r4, r7 - cmp r2, r3 - bhi .L4385 - ldr r8, .L4396+8 +.L4674: + cmp r6, r3 + cmpls r4, r3 + movcs fp, #1 + movcc fp, #0 + bcs .L4692 + add r1, r4, r6 + cmp r1, r3 + bhi .L4692 add r4, r5, r4 + ldr r5, .L4706+8 mov r0, r4 - ldrb r5, [r8, #2260] @ zero_extendqisi2 - mov r1, r5 + ldrb r7, [r5, #2772] @ zero_extendqisi2 + mov r1, r7 bl __aeabi_uidiv - mov r1, r5 + mov r1, r7 mov r10, r0 - sub r0, r7, #1 + sub r0, r6, #1 add r0, r0, r4 - mov r6, r10 + mov r8, r10 bl __aeabi_uidiv - add r3, r4, r7 - rsb r5, r10, r0 - str r0, [sp, #12] - add r5, r5, #1 + add r3, r4, r6 + rsb r7, r10, r0 + str r0, [sp, #8] + add r7, r7, #1 + str fp, [sp, #12] str r3, [sp, #16] -.L4373: - cmp r5, #0 - beq .L4394 +.L4676: + cmp r7, #0 + beq .L4704 + ldrb r3, [r5, #2800] @ zero_extendqisi2 + cmp r3, #0 + beq .L4677 + ldr r3, .L4706+8 + ldrb r3, [r3, #2774] @ zero_extendqisi2 + cmp r3, #2 + bhi .L4677 + bl ftl_write_commit +.L4677: mov r0, #0 bl buf_alloc subs fp, r0, #0 - bne .L4374 + bne .L4678 bl ftl_write_commit - b .L4373 -.L4374: - mov r3, #0 - strb r3, [fp, #41] - ldr r3, [sp, #12] - rsb r0, r10, r6 + b .L4676 +.L4678: + ldrb r3, [sp, #12] @ zero_extendqisi2 + rsb r0, r10, r8 clz r0, r0 - ldrb r2, [r8, #2260] @ zero_extendqisi2 - rsb r1, r3, r6 - clz r1, r1 + ldrb r2, [r5, #2772] @ zero_extendqisi2 + strb r3, [fp, #41] mov r0, r0, lsr #5 + ldr r3, [sp, #8] strb r2, [fp, #40] + rsb r1, r3, r8 + clz r1, r1 mov r1, r1, lsr #5 orrs r3, r1, r0 - beq .L4377 + beq .L4681 cmp r0, #0 - beq .L4378 + beq .L4682 mov r1, r2 mov r0, r4 str r2, [sp, #20] @@ -26384,30 +28314,30 @@ zftl_write: strb r1, [fp, #41] rsb r2, r1, r2 uxtb r2, r2 - cmp r2, r7 - strhib r7, [fp, #40] - bhi .L4377 - b .L4393 -.L4378: + cmp r2, r6 + strhib r6, [fp, #40] + bhi .L4681 + b .L4703 +.L4682: cmp r1, #0 - beq .L4377 - smulbb r2, r6, r2 + beq .L4681 + smulbb r2, r8, r2 ldr r3, [sp, #16] rsb r2, r2, r3 -.L4393: +.L4703: strb r2, [fp, #40] -.L4377: +.L4681: ldrb r0, [fp, #41] @ zero_extendqisi2 - sub r5, r5, #1 + sub r7, r7, #1 ldrb r2, [fp, #40] @ zero_extendqisi2 ldr r1, [fp, #4] mov r2, r2, asl #9 add r0, r1, r0, asl #9 mov r1, r9 bl ftl_memcpy - ldr r1, [r8, #2288] - str r6, [fp, #20] - add r6, r6, #1 + ldr r1, [r5, #2804] + str r8, [fp, #20] + add r8, r8, #1 ldr r2, [r1, #8] add r0, r2, #1 str r0, [r1, #8] @@ -26416,45 +28346,65 @@ zftl_write: bl ftl_write_buf ldrb r3, [fp, #40] @ zero_extendqisi2 add r9, r9, r3, asl #9 - b .L4373 -.L4394: + b .L4676 +.L4704: bl ftl_write_commit - mov r0, r5 + mov r0, r7 mov r1, #1 - ldr r4, .L4396+12 bl zftl_do_gc -.L4382: - ldr r2, .L4396+16 + ldr r3, [r5, #1092] + ldr r2, .L4706+8 + ldrh r3, [r3, #124] + cmp r3, #0 + bne .L4686 + movw r3, #2788 + movw r1, #2792 + ldrh r3, [r2, r3] + ldrh r2, [r2, r1] + add r3, r3, r2 + cmp r3, #11 + bgt .L4687 +.L4686: + mov r0, #0 + mov r1, #1 + bl zftl_do_gc +.L4687: + ldr r4, .L4706+12 +.L4688: + ldr r2, .L4706+16 ldrh r3, [r4] ldrh r2, [r2] add r3, r3, r2 cmp r3, #7 - bgt .L4395 + bgt .L4705 mov r1, #1 mov r0, #0 bl zftl_do_gc - b .L4382 -.L4395: + mov r0, #1 + mov r1, r0 + bl zftl_do_gc + b .L4688 +.L4705: bl timer_get_time - ldr r3, .L4396+20 - str r0, [r3, #-2472] + ldr r3, .L4706+20 + str r0, [r3, #484] mov r0, #0 - b .L4372 -.L4385: + b .L4675 +.L4692: mvn r0, #0 -.L4372: +.L4675: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4397: +.L4707: .align 2 -.L4396: +.L4706: .word .LANCHOR2 - .word .LC308 + .word .LC312 .word .LANCHOR0 - .word .LANCHOR0+2272 - .word .LANCHOR0+2276 - .word .LANCHOR5 + .word .LANCHOR0+2788 + .word .LANCHOR0+2792 + .word .LANCHOR3 .fnend .size zftl_write, .-zftl_write .align 2 @@ -26501,139 +28451,147 @@ zftl_discard: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - add r2, r0, r1 - ldr r6, .L4451 + mov r4, r1 + ldr r6, .L4762 .pad #36 sub sp, sp, #36 - mov r4, r1 - ldr r3, [r6, #520] - cmp r2, r3 - mvnhi r0, #0 - bhi .L4402 - ldr r3, .L4451+4 - add r8, r0, #24576 - ldr r10, .L4451+8 - ldr r2, [r3] - ldr r5, [r10, #-2468] - tst r2, #4096 - str r10, [sp, #12] - add r1, r1, r5 + ldr r5, [r6, #1032] + cmp r1, r5 + cmpls r0, r5 + movcs r2, #1 + movcc r2, #0 + bcs .L4733 + add r3, r0, r1 + cmp r3, r5 + bhi .L4733 + ldr r3, .L4762+4 + add r7, r0, #24576 + ldr fp, .L4762+8 + ldr r0, [r3] + ldr r5, [fp, #516] + mov r9, fp + tst r0, #4096 str r3, [sp, #16] - str r1, [r10, #-2468] - beq .L4403 - mov r3, #0 - ldr r0, .L4451+12 - str r3, [sp] - mov r2, r8 + add r1, r1, r5 + str r1, [fp, #516] + beq .L4713 + str r2, [sp] mov r3, r4 + ldr r0, .L4762+12 + mov r2, r7 bl printk -.L4403: - ldr r3, [r6, #2288] - ldr r9, [r3, #8] - add r2, r9, #1 +.L4713: + ldr r3, [r6, #2804] + ldr r10, [r3, #8] + add r2, r10, #1 str r2, [r3, #8] bl ftl_write_commit bl ftl_flush - ldrb r7, [r6, #2260] @ zero_extendqisi2 - mov r0, r8 - mov r1, r7 + ldrb r8, [r6, #2772] @ zero_extendqisi2 + mov r0, r7 + mov r1, r8 bl __aeabi_uidiv - mls r10, r7, r0, r8 + mls fp, r8, r0, r7 mov r5, r0 - cmp r10, #0 - beq .L4404 - rsb r7, r10, r7 - cmp r7, r4 - movcs r7, r4 + cmp fp, #0 + beq .L4714 + rsb r8, fp, r8 + cmp r8, r4 + movcs r8, r4 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #24] - bne .L4405 + bne .L4715 mov r0, r5 add r1, sp, #24 mov r2, #0 bl pm_log2phys -.L4405: +.L4715: ldr r3, [sp, #24] - uxth fp, r7 cmn r3, #1 - beq .L4407 + uxth r3, r8 + str r3, [sp, #12] + beq .L4717 mov r0, #0 bl buf_alloc subs r3, r0, #0 - beq .L4407 + beq .L4717 ldr r0, [r3, #4] - mov r2, fp, asl #9 mov r1, #0 str r5, [r3, #20] - strb r10, [r3, #41] - add r0, r0, r10, asl #9 - strb r7, [r3, #40] - str r9, [r3, #16] + strb fp, [r3, #41] + add r0, r0, fp, asl #9 + strb r8, [r3, #40] + str r10, [r3, #16] str r3, [sp, #20] + ldr r3, [sp, #12] + mov r2, r3, asl #9 bl ftl_memset ldr r3, [sp, #20] mov r0, r3 bl ftl_write_buf bl ftl_write_commit - ldr r2, [r6, #2288] + ldr r2, [r6, #2804] ldr r3, [r2, #76] add r3, r3, #1 str r3, [r2, #76] -.L4407: +.L4717: + ldr r3, [sp, #12] add r5, r5, #1 - rsb r4, fp, r4 -.L4404: + rsb r4, r3, r4 +.L4714: cmp r4, #0 - beq .L4409 + beq .L4719 bl ftl_flush -.L4409: - ldr r7, .L4451 +.L4719: + ldr r8, .L4762 mvn r3, #0 + ldr fp, .L4762+16 str r3, [sp, #28] - add r10, r7, #2928 -.L4410: - ldrb r3, [r6, #2260] @ zero_extendqisi2 +.L4720: + ldrb r3, [r6, #2772] @ zero_extendqisi2 cmp r4, r3 - bcc .L4450 + bcc .L4761 mov r0, r5 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #24] - beq .L4411 + beq .L4721 mov r0, #0 bl buf_alloc - subs fp, r0, #0 - beq .L4413 - ldrb r2, [r7, #2260] @ zero_extendqisi2 + subs r3, r0, #0 + beq .L4723 + ldrb r2, [r8, #2772] @ zero_extendqisi2 mov r1, #0 - str r5, [fp, #20] - strb r1, [fp, #41] - strb r2, [fp, #40] + str r5, [r3, #20] + strb r1, [r3, #41] + strb r2, [r3, #40] mov r2, r2, asl #9 - str r9, [fp, #16] - ldr r0, [fp, #4] + str r10, [r3, #16] + ldr r0, [r3, #4] + str r3, [sp, #12] bl ftl_memset - mov r0, fp + ldr r3, [sp, #12] + mov r0, r3 bl ftl_write_buf bl ftl_write_commit - b .L4449 -.L4411: + b .L4760 +.L4721: mov r0, r5 add r1, sp, #24 mov r2, #0 bl pm_log2phys ldr r3, [sp, #24] cmn r3, #1 - beq .L4413 + beq .L4723 add r1, sp, #28 mov r2, #1 mov r0, r5 bl pm_log2phys - ldrb r3, [r7, #676] @ zero_extendqisi2 - ldrh r0, [r10] + ldrb r3, [r8, #1189] @ zero_extendqisi2 + ldrh r0, [fp] rsb r3, r3, #24 - ldrb r1, [r7, #2930] @ zero_extendqisi2 + ldrb r1, [r9, #-3202] @ zero_extendqisi2 rsb r3, r0, r3 ldr r2, [sp, #24] mov r2, r2, lsr r0 @@ -26642,97 +28600,100 @@ zftl_discard: bl __aeabi_uidiv uxth r0, r0 bl ftl_vpn_decrement -.L4449: - ldr r2, [r7, #2288] +.L4760: + ldr r2, [r8, #2804] ldr r3, [r2, #76] add r3, r3, #1 str r3, [r2, #76] -.L4413: - ldrb r3, [r6, #2260] @ zero_extendqisi2 +.L4723: + ldrb r3, [r6, #2772] @ zero_extendqisi2 add r5, r5, #1 rsb r4, r3, r4 - b .L4410 -.L4450: + b .L4720 +.L4761: cmp r4, #0 - beq .L4417 + beq .L4727 mov r0, r5 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #24] - bne .L4418 + bne .L4728 mov r0, r5 add r1, sp, #24 mov r2, #0 bl pm_log2phys -.L4418: +.L4728: ldr r3, [sp, #24] cmn r3, #1 - beq .L4417 + beq .L4727 mov r0, #0 bl buf_alloc - subs r7, r0, #0 - beq .L4417 + subs r8, r0, #0 + beq .L4727 mov r3, #0 - strb r3, [r7, #41] - ldrb r3, [r6, #2260] @ zero_extendqisi2 - str r5, [r7, #20] + strb r3, [r8, #41] + ldrb r3, [r6, #2772] @ zero_extendqisi2 + str r5, [r8, #20] cmp r4, r3 - strb r4, [r7, #40] - str r9, [r7, #16] - bcc .L4420 - ldr r1, .L4451+16 - movw r2, #1259 - ldr r0, .L4451+20 + strb r4, [r8, #40] + str r10, [r8, #16] + bcc .L4730 + ldr r1, .L4762+20 + movw r2, #1477 + ldr r0, .L4762+24 bl printk bl dump_stack -.L4420: +.L4730: mov r2, r4, asl #9 mov r1, #0 - ldr r0, [r7, #4] + ldr r0, [r8, #4] bl ftl_memset - mov r0, r7 + mov r0, r8 bl ftl_write_buf bl ftl_write_commit - ldr r2, [r6, #2288] + ldr r2, [r6, #2804] ldr r3, [r2, #76] add r3, r3, #1 str r3, [r2, #76] -.L4417: - ldr r3, [sp, #12] - ldr r1, [r3, #-2468] +.L4727: + ldr r1, [r9, #516] cmp r1, #8192 - bls .L4423 + bls .L4734 ldr r3, [sp, #16] ldr r3, [r3] tst r3, #4096 - beq .L4421 + beq .L4731 mov r3, #0 - ldr r0, .L4451+12 + ldr r0, .L4762+12 str r3, [sp] - mov r2, r8 + mov r2, r7 mov r3, r4 bl printk -.L4421: - ldr r3, [sp, #12] +.L4731: mov r4, #0 - str r4, [r3, #-2468] + str r4, [r9, #516] bl flt_sys_flush mov r3, #1 - str r3, [r6, #2304] -.L4423: + str r3, [r6, #2820] + b .L4734 +.L4733: + mvn r0, #0 + b .L4712 +.L4734: mov r0, #0 -.L4402: +.L4712: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4452: +.L4763: .align 2 -.L4451: +.L4762: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR5 - .word .LC309 - .word .LANCHOR1+2192 + .word .LANCHOR3 + .word .LC313 + .word .LANCHOR3-3204 + .word .LANCHOR1+2764 .word .LC0 .fnend .size zftl_discard, .-zftl_discard @@ -26746,47 +28707,47 @@ dump_pm_blk: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movw ip, #698 - ldr r4, .L4459 + ldr r4, .L4770 mov r2, #4 - ldr r0, .L4459+4 + ldr r0, .L4770+4 mov r6, #0 - ldr r5, .L4459+8 + ldr r5, .L4770+8 movw r7, #65535 - ldr r3, [r4, #2288] + ldr r3, [r4, #2804] add r1, r3, #704 ldrh r3, [r3, ip] bl rknand_print_hex - ldr r1, [r4, #2288] - ldr r0, .L4459+12 + ldr r1, [r4, #2804] + ldr r0, .L4770+12 mov r2, #2 add r1, r1, #416 - ldrh r3, [r5] + ldrh r3, [r5, #-224] bl rknand_print_hex -.L4454: - ldrh r2, [r5] +.L4765: + ldrh r2, [r5, #-224] uxth r3, r6 cmp r2, r3 - bls .L4458 + bls .L4769 add r3, r3, #208 - ldr r2, [r4, #2288] + ldr r2, [r4, #2804] mov r3, r3, asl #1 ldrh r0, [r2, r3] cmp r0, r7 - beq .L4455 + beq .L4766 mov r1, #0 bl ftl_sblk_dump -.L4455: +.L4766: add r6, r6, #1 - b .L4454 -.L4458: + b .L4765 +.L4769: ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L4460: +.L4771: .align 2 -.L4459: +.L4770: .word .LANCHOR0 - .word .LC268 - .word .LANCHOR3-3296 - .word .LC269 + .word .LC265 + .word .LANCHOR3 + .word .LC266 .fnend .size dump_pm_blk, .-dump_pm_blk .align 2 @@ -26794,73 +28755,76 @@ dump_pm_blk: .type id_block_prog_msb_ff_data, %function id_block_prog_msb_ff_data: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #12 mov r4, r2 - ldr r5, .L4468 - ldrb r2, [r5, #590] @ zero_extendqisi2 - ldr r3, [r5, #584] + ldr r5, .L4779 + .pad #20 + sub sp, sp, #20 + ldrb r2, [r5, #1102] @ zero_extendqisi2 + ldr r3, [r5, #1096] cmp r2, #0 ldrb r3, [r3, #19] @ zero_extendqisi2 - bne .L4461 + bne .L4772 sub r2, r3, #5 mov r8, r0 cmp r3, #68 cmpne r2, #2 mov r9, r1 - bls .L4463 + bls .L4774 sub r3, r3, #19 tst r3, #239 - bne .L4461 -.L4463: - ldr fp, .L4468 - ldr r7, .L4468+4 -.L4465: - ldr r3, [r5, #584] + bne .L4772 +.L4774: + ldr fp, .L4779 + ldr r6, .L4779+4 + ldr r7, .L4779+8 +.L4776: + ldr r3, [r5, #1096] ldrh r3, [r3, #10] cmp r3, r4 - bls .L4461 - mov r6, r4, asl #1 + bls .L4772 + mov ip, r4, asl #1 add r10, r4, r9 - ldr r0, .L4468+8 + ldr r0, .L4779+12 mov r1, r4 + ldrh r3, [r7, ip] mov r2, r10 - ldrh r3, [r7, r6] + str ip, [sp, #12] bl printk - ldrh r2, [r7, r6] movw r3, #65535 + ldr ip, [sp, #12] + ldrh r2, [r7, ip] cmp r2, r3 - bne .L4461 - ldr r6, .L4468+12 + bne .L4772 mov r1, #255 mov r2, #16384 + ldr r0, [r6, #-200] add r4, r4, #1 - ldr r0, [r6, #-3272] - uxth r4, r4 bl ftl_memset - ldr r3, [fp, #584] - ldr r2, [r6, #-3272] + ldr r3, [fp, #1096] + ldr r2, [r6, #-200] mov r0, r8 mov r1, r10 + uxth r4, r4 ldrb r3, [r3, #9] @ zero_extendqisi2 str r3, [sp] mov r3, r2 bl flash_prog_page - b .L4465 -.L4461: - add sp, sp, #12 + b .L4776 +.L4772: + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4469: +.L4780: .align 2 -.L4468: +.L4779: .word .LANCHOR0 - .word .LANCHOR0+3800 - .word .LC310 .word .LANCHOR3 + .word .LANCHOR3-2340 + .word .LC314 .fnend .size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data .align 2 @@ -26870,205 +28834,223 @@ write_idblock: .fnstart @ args = 0, pretend = 0, frame = 136 @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L4860 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #156 sub sp, sp, #156 - ldr r9, .L4542 - mov r6, r0 - mov r0, #256000 - mov r10, r1 - mov r7, r2 - ldr r3, [r9, #584] + ldr r3, [ip, #1096] + ldr r5, [r1] + ldr r8, .L4860+4 ldrb r4, [r3, #9] @ zero_extendqisi2 - ldrh r5, [r3, #10] - ldr r3, .L4542+4 - ldrh r8, [r3, #30] - ldrb r3, [r9] @ zero_extendqisi2 + ldrh r9, [r3, #10] + ldr r3, .L4860+8 + ldr fp, .L4860+12 + ldr r10, .L4860+16 + ldrh r6, [r3, #30] + cmp r5, r8 + cmpne r5, fp + ldrb r3, [ip] @ zero_extendqisi2 + movne r7, #1 + moveq r7, #0 + cmp r5, r10 + moveq r5, #0 + andne r5, r7, #1 str r3, [sp, #60] + cmp r5, #0 ldrh r3, [sp, #60] str r3, [sp, #44] - ldrb r3, [r9, #590] @ zero_extendqisi2 + ldrb r3, [ip, #1102] @ zero_extendqisi2 str r3, [sp, #68] + bne .L4858 + cmp r0, #15 + bls .L4858 + mov r7, r0 + mov r0, #256000 + str ip, [sp, #20] + mov r5, r2 + str r1, [sp, #36] bl ftl_malloc subs r3, r0, #0 str r3, [sp, #24] - beq .L4507 - ldr r3, .L4542+8 - ldrb r3, [r3, #-2486] @ zero_extendqisi2 + beq .L4858 + ldr r3, .L4860+20 + ldr ip, [sp, #20] + ldrb r3, [r3, #504] @ zero_extendqisi2 cmp r3, #0 - moveq fp, r3 - beq .L4472 - ldrb r3, [r9] @ zero_extendqisi2 + beq .L4857 + ldrb r3, [ip] @ zero_extendqisi2 cmp r3, #0 - ldrb r3, [r9, #590] @ zero_extendqisi2 - clzne fp, r3 - movne fp, fp, lsr #5 - bne .L4472 + ldrb r3, [ip, #1102] @ zero_extendqisi2 + clzne r3, r3 + movne r3, r3, lsr #5 + bne .L4857 cmp r3, #3 streq r3, [sp, #44] - moveq fp, #2 - beq .L4472 + moveq r3, #2 + beq .L4857 cmp r3, #2 ldr r3, [sp, #44] - movne fp, #0 - moveq fp, #3 moveq r3, #2 str r3, [sp, #44] -.L4472: - add r6, r6, #508 - mov r0, #0 - add r6, r6, #3 - bl zftl_flash_exit_slc_mode - ldrb r3, [r9, #590] @ zero_extendqisi2 - mov r6, r6, lsr #9 - cmp r6, #8 - strb r3, [r9] - bls .L4511 - cmp r6, #500 - bhi .L4475 - b .L4474 -.L4511: - mov r6, #8 -.L4474: - ldr r2, [r10] - ldr r3, .L4542+12 - cmp r2, r3 - beq .L4476 -.L4475: + movne r3, #0 + moveq r3, #3 +.L4857: + str r3, [sp, #20] + ldr r3, [sp, #36] + ldr r3, [r3] + cmp r3, r8 + cmpne r3, fp + movne fp, #1 + moveq fp, #0 + cmp r3, r10 + moveq r10, #0 + andne r10, fp, #1 + cmp r10, #0 + beq .L4788 ldr r0, [sp, #24] bl ftl_free - b .L4507 -.L4476: - uxth r4, r4 - smulbb r1, r4, r5 - uxth r1, r1 - sub r0, r1, #1 - add r0, r0, r6 +.L4858: + mvn r0, #0 + b .L4783 +.L4788: + mov r0, r10 + add r7, r7, #508 + bl zftl_flash_exit_slc_mode + ldr r3, .L4860 + mul r9, r9, r4 + add r7, r7, #3 + ldrb r2, [r3, #1102] @ zero_extendqisi2 + sub r0, r9, #1 + strb r2, [r3] + mov r3, r7, lsr #9 + cmp r3, #8 + mov r1, r9 + movcs fp, r3 + movcc fp, #8 + add r0, r0, fp bl __aeabi_uidiv - mov r3, #0 + ldr ip, .L4860+24 movw r2, #63871 + ldr r3, [sp, #36] str r0, [sp, #72] - add r0, r10, #254976 - add r0, r0, #512 -.L4480: - ldr r1, [r0, #-4]! + movw r0, #4094 + add r3, r3, #254976 + add r3, r3, #512 +.L4794: + ldr r1, [r3, #-4]! cmp r1, #0 - bne .L4477 - ldr r1, [r10, r3, asl #2] - add r3, r3, #1 - cmp r3, #4096 + bne .L4789 + cmp r10, #0 + streq ip, [r3, #512] sub r2, r2, #1 - movhi r3, #0 + ldrne r1, [sp, #36] + ldrne r1, [r1, r10, asl #2] + add r10, r10, #1 + strne r1, [r3, #512] + cmp r10, r0 + movhi r10, #0 cmp r2, #4096 - str r1, [r0, #512] - bne .L4480 - b .L4479 -.L4477: - ldr r0, .L4542+16 + bne .L4794 + b .L4793 +.L4789: + ldr r0, .L4860+28 bl printk -.L4479: - smulbb r3, r4, r8 - ldr r0, .L4542+20 - mov r1, r7 +.L4793: + mul r3, r6, r4 + ldr r0, .L4860+32 + mov r1, r5 mov r2, #4 - ldr r4, .L4542 - uxth r3, r3 + ldr r4, .L4860 str r3, [sp, #56] mov r3, #5 bl rknand_print_hex - ldr r0, .L4542+24 - mov r1, r6 - mov r2, r6 + ldr r0, .L4860+36 + mov r1, fp + mov r2, fp bl printk - sub r3, r7, #4 + sub r3, r5, #4 str r3, [sp, #48] mov r3, #0 - str r3, [sp, #36] + str r3, [sp, #40] str r3, [sp, #28] -.L4505: - ldr r3, .L4542+8 - ldrb r3, [r3, #-2486] @ zero_extendqisi2 +.L4819: + ldr r3, .L4860+20 + ldrb r3, [r3, #504] @ zero_extendqisi2 cmp r3, #0 - bne .L4481 + bne .L4795 ldr r3, [sp, #48] ldr r1, [sp, #72] ldr r2, [r3, #4] ldr r3, [sp, #56] - mul r3, r3, r2 - str r3, [sp, #20] + mul r6, r3, r2 ldr r3, [sp, #28] cmp r3, #0 cmpne r1, #1 - bls .L4482 + bls .L4796 ldr r3, [sp, #48] ldr r3, [r3] add r3, r3, #1 cmp r2, r3 - bne .L4482 - b .L4483 -.L4481: - ldr r3, [r4, #664] + bne .L4796 + b .L4797 +.L4795: + ldr r3, [r4, #1176] ldr r2, [sp, #28] add r3, r3, r2 - ldrb r3, [r3, #32] @ zero_extendqisi2 - cmp r3, #255 - beq .L4483 - ldr r2, [sp, #56] - cmp fp, #0 - mul r3, r2, r3 - str r3, [sp, #20] - beq .L4482 - ldr r3, [sp, #28] - and r5, r3, #1 - cmp fp, #3 + ldrb r6, [r3, #32] @ zero_extendqisi2 + cmp r6, #255 + beq .L4797 + ldr r3, [sp, #56] + mul r6, r3, r6 + ldr r3, [sp, #20] + cmp r3, #0 + beq .L4796 + ldr r3, [sp, #20] + and r5, r2, #1 + cmp r3, #3 orreq r5, r5, #1 cmp r5, #0 ldrneb r3, [sp, #44] @ zero_extendqisi2 strneb r3, [r4] - strneb r3, [r4, #590] - bne .L4482 + strneb r3, [r4, #1102] + bne .L4796 mov r0, r5 bl zftl_flash_exit_slc_mode strb r5, [r4] - strb r5, [r4, #590] -.L4482: - mov r1, #0 + strb r5, [r4, #1102] +.L4796: mov r2, #512 + mov r1, #0 ldr r0, [sp, #24] - mov r8, #0 + mov r7, #0 bl ftl_memset - ldr r3, [r4, #584] - ldrb r2, [r3, #9] @ zero_extendqisi2 - ldrh r7, [r3, #10] - ldr r3, .L4542+4 - mov r1, r2 - ldrh r3, [r3, #30] - str r2, [sp, #40] - ldrh r5, [sp, #40] - ldr r0, [sp, #20] - smulbb r7, r7, r5 - smulbb r5, r3, r5 - ldrb r3, [r4, #656] @ zero_extendqisi2 - strb r8, [r4, #656] + ldr r3, [r4, #1096] + mov r0, r6 + ldrb r10, [r3, #9] @ zero_extendqisi2 + ldrh r8, [r3, #10] + ldr r3, .L4860+8 + mov r1, r10 + mul r8, r8, r10 + ldrh r5, [r3, #30] + ldrb r3, [r4, #1168] @ zero_extendqisi2 + strb r7, [r4, #1168] + mul r5, r5, r10 str r3, [sp, #76] bl __aeabi_uidiv - uxth r7, r7 - uxth r5, r5 mov r1, r0 - mov r0, r8 + mov r0, r7 bl flash_erase_block - cmp r6, r7 + cmp fp, r8 movls r0, #1 - bls .L4485 - ldr r3, [sp, #20] - mov r0, r8 - add r1, r3, r5 + bls .L4799 + mov r0, r7 + add r1, r6, r5 bl flash_erase_block mov r0, #2 -.L4485: - ldr r3, .L4542 - ldr r2, [r3, #584] +.L4799: + ldr r3, .L4860 + ldr r2, [r3, #1096] ldrh r3, [r2, #10] ldrb r1, [r2, #12] @ zero_extendqisi2 mov r3, r3, asl #2 @@ -27076,70 +29058,66 @@ write_idblock: bl __aeabi_idiv mov r1, r5 str r0, [sp, #80] - ldr r0, [sp, #20] + mov r0, r6 bl __aeabi_uidivmod - ldr r3, [sp, #20] + rsb r3, r1, r6 str r1, [sp, #64] - rsb r3, r1, r3 + cmp r6, r3 str r3, [sp, #52] - ldr r2, [sp, #52] - ldr r3, [sp, #20] - cmp r3, r2 - bne .L4514 - ldrb r3, [r4, #516] @ zero_extendqisi2 + bne .L4826 + ldrb r3, [r4, #1028] @ zero_extendqisi2 cmp r3, #9 - bne .L4514 - ldr r3, .L4542+28 + bne .L4826 + ldr r3, .L4860+20 mov r1, #0 mov r2, #1024 - ldr r5, [r3, #-3248] + ldr r5, [r3, #-176] mov r0, r5 bl ftl_memset - ldr r2, .L4542+32 + ldr r2, .L4860+40 mov r3, #12 stmia r5, {r2, r3} mov r3, #0 strb r3, [r5, #16] str r3, [r5, #12] - ldrb r3, [r4, #590] @ zero_extendqisi2 + ldrb r3, [r4, #1102] @ zero_extendqisi2 cmp r3, #0 - ldrne r3, [r4, #584] + ldrne r3, [r4, #1096] ldrneb r3, [r3, #29] @ zero_extendqisi2 strneb r3, [r5, #16] mov r3, #4 strb r3, [r5, #17] - ldr r3, [r4, #584] + ldr r3, [r4, #1096] ldrb r1, [r3, #12] @ zero_extendqisi2 ldrh r0, [r3, #10] bl __aeabi_idiv + cmp r10, #8 mov r3, #0 mov r1, #12 strb r3, [r5, #20] - strh r3, [r5, #22] @ movhi - ldr r2, [sp, #40] - strh r0, [r5, #18] @ movhi - add r0, r5, #12 - cmp r2, #8 movhi r2, #70 movls r2, #16 + strh r3, [r5, #22] @ movhi + strh r0, [r5, #18] @ movhi + add r0, r5, #12 strb r2, [r5, #21] bl js_hash - sub r3, r6, #4 + sub r3, fp, #4 str r0, [r5, #8] str r3, [sp, #32] - b .L4486 -.L4514: + b .L4800 +.L4826: mov r5, #0 - str r6, [sp, #32] -.L4486: - mov r8, r10 + str fp, [sp, #32] +.L4800: + ldr r8, [sp, #36] mov r9, #0 -.L4489: +.L4803: ldr r3, [sp, #80] cmp r9, r3 - bcs .L4541 + bcs .L4859 ldr r3, [sp, #64] - ldrb r2, [r4, #590] @ zero_extendqisi2 + ldrb r2, [r4, #1102] @ zero_extendqisi2 add r7, r9, r3 ubfx r7, r7, #2, #16 cmp r2, #0 @@ -27147,14 +29125,14 @@ write_idblock: mov r1, r0, asl #1 add r3, r4, r1 ldrh r3, [r3, #4] - beq .L4491 + beq .L4805 ldrb ip, [r4, #1] @ zero_extendqisi2 cmp ip, #0 moveq r3, r0 movne r3, r1 -.L4491: - ldrb r1, [r4, #516] @ zero_extendqisi2 - ldr r0, .L4542 +.L4805: + ldrb r1, [r4, #1028] @ zero_extendqisi2 + ldr r0, .L4860 cmp r1, #9 movw r1, #61424 str r1, [sp, #92] @@ -27166,37 +29144,36 @@ write_idblock: cmp r2, #0 str r3, [sp, #88] moveq r7, r0 - beq .L4495 + beq .L4809 ldrb r2, [r4, #1] @ zero_extendqisi2 cmp r2, #0 movne r7, r1 -.L4495: - ldr r2, [sp, #40] +.L4809: cmp r5, #0 - mul r0, r2, r7 - bne .L4496 + mul r0, r10, r7 + bne .L4810 ldr r2, [sp, #52] str r8, [sp] add ip, r0, r2 ldr r2, [r8] - ldr r0, .L4542+36 + ldr r0, .L4860+44 mov r1, ip str ip, [sp, #84] stmib sp, {r2, r3} movw r3, #61424 mov r2, r9 str r3, [sp, #12] - mov r3, r6 + mov r3, fp bl printk mov r1, r8 ldr ip, [sp, #84] add r2, sp, #88 mov r0, ip - bl fw_flash_page_prog.constprop.28 - ldrb r3, [r4, #590] @ zero_extendqisi2 + bl fw_flash_page_prog.constprop.30 + ldrb r3, [r4, #1102] @ zero_extendqisi2 cmp r3, #0 - bne .L4497 - ldr r1, [sp, #40] + bne .L4811 + mov r1, r10 ldr r0, [sp, #52] bl __aeabi_uidiv add r2, r7, #1 @@ -27204,74 +29181,77 @@ write_idblock: mov r1, r0 mov r0, r5 bl id_block_prog_msb_ff_data -.L4497: +.L4811: ldr r3, [sp, #32] add r8, r8, #2048 add r3, r3, #16 cmp r9, r3 - bcc .L4498 + bcc .L4812 ldr r3, [sp, #32] add r3, r3, #20 cmp r9, r3 - addcc r8, r10, #2048 - b .L4498 -.L4496: + ldrcc r3, [sp, #36] + addcc r8, r3, #2048 + b .L4812 +.L4810: ldr r3, [sp, #52] mov r1, r5 add r2, sp, #88 add r0, r0, r3 - bl fw_flash_page_prog.constprop.28 -.L4498: + bl fw_flash_page_prog.constprop.30 +.L4812: add r9, r9, #4 mov r5, #0 uxth r9, r9 - b .L4489 -.L4541: + b .L4803 +.L4859: + ldr r3, .L4860 + mov r0, r6 ldrb r2, [sp, #76] @ zero_extendqisi2 - ldr r3, .L4542 - ldr r0, [sp, #20] ldr r1, [sp, #32] - strb r2, [r3, #656] + strb r2, [r3, #1168] ldr r2, [sp, #24] - bl id_block_read_data.constprop.29 - cmp fp, #0 - beq .L4500 + bl id_block_read_data.constprop.31 + ldr r3, [sp, #20] + cmp r3, #0 + beq .L4814 mov r0, #0 bl zftl_flash_exit_slc_mode mov r3, #0 strb r3, [r4] - strb r3, [r4, #590] -.L4500: + strb r3, [r4, #1102] +.L4814: ldr r3, [sp, #32] mov r5, #0 mov r8, r3, asl #7 -.L4503: +.L4817: ldr r3, [sp, #24] ldr r2, [r3, r5, asl #2] - ldr r3, [r10, r5, asl #2] + ldr r3, [sp, #36] + ldr r3, [r3, r5, asl #2] cmp r2, r3 - beq .L4501 + beq .L4815 mov r1, #0 mov r2, #512 ldr r0, [sp, #24] bl ftl_memset mov r0, #0 - ldr r1, [sp, #20] + mov r1, r6 bl flash_erase_block cmp r5, r8 - bcc .L4483 - b .L4502 -.L4501: + bcs .L4816 + b .L4797 +.L4815: add r5, r5, #1 cmp r5, r8 - bne .L4503 -.L4502: - ldr r3, [sp, #36] + bne .L4817 +.L4816: + ldr r3, [sp, #40] add r3, r3, #1 - str r3, [sp, #36] + str r3, [sp, #40] cmp r3, #5 - bhi .L4504 -.L4483: + bhi .L4818 +.L4797: ldr r3, [sp, #28] add r3, r3, #1 str r3, [sp, #28] @@ -27280,78 +29260,49 @@ write_idblock: str r3, [sp, #48] ldr r3, [sp, #28] cmp r3, #4 - bne .L4505 -.L4504: + bne .L4819 +.L4818: mov r0, #0 bl zftl_flash_exit_slc_mode - ldr r3, .L4542 - cmp fp, #0 + ldr r3, .L4860 mov r0, #0 ldrb r2, [sp, #60] @ zero_extendqisi2 strb r2, [r3] + ldr r2, [sp, #20] + cmp r2, #0 ldrneb r2, [sp, #68] @ zero_extendqisi2 - strneb r2, [r3, #590] + strneb r2, [r3, #1102] mov r2, #2 - strb r2, [r3, #680] + strb r2, [r3, #1192] bl zftl_flash_enter_slc_mode ldr r0, [sp, #24] bl ftl_free - ldr r3, [sp, #36] + ldr r3, [sp, #40] clz r0, r3 mov r0, r0, lsr #5 rsb r0, r0, #0 - b .L4471 -.L4507: - mvn r0, #0 -.L4471: +.L4783: add sp, sp, #156 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4543: +.L4861: .align 2 -.L4542: +.L4860: .word .LANCHOR0 + .word 1397640018 .word .LANCHOR2 - .word .LANCHOR5 .word -52655045 - .word .LC311 - .word .LC312 - .word .LC313 + .word 1397967698 .word .LANCHOR3 + .word 1314014539 + .word .LC315 + .word .LC316 + .word .LC317 .word 1179535694 - .word .LC314 + .word .LC318 .fnend .size write_idblock, .-write_idblock .align 2 - .global CRC_32 - .type CRC_32, %function -CRC_32: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr ip, .L4548 - add r1, r0, r1 - mov r2, #0 -.L4545: - cmp r0, r1 - beq .L4547 - ldrb r3, [r0], #1 @ zero_extendqisi2 - eor r3, r3, r2, lsr #24 - add r3, ip, r3, asl #2 - ldr r3, [r3, #-3888] - eor r2, r3, r2, asl #8 - b .L4545 -.L4547: - mov r0, r2 - bx lr -.L4549: - .align 2 -.L4548: - .word .LANCHOR6 - .fnend - .size CRC_32, .-CRC_32 - .align 2 .global write_loader_lba .type write_loader_lba, %function write_loader_lba: @@ -27366,38 +29317,47 @@ write_loader_lba: sub sp, sp, #52 mov r6, r1 mov r8, r2 - ldr r5, .L4573 - bne .L4551 - ldr r2, [r2] - ldr r3, .L4573+4 - cmp r2, r3 - bne .L4551 + ldr r5, .L4888 + bne .L4863 + ldr r3, [r2] + ldr r1, .L4888+4 + ldr r2, .L4888+8 + cmp r3, r1 + cmpne r3, r2 + ldr r1, .L4888+12 + moveq r2, #1 + movne r2, #0 + cmp r3, r1 + movne r3, r2 + orreq r3, r2, #1 + cmp r3, #0 + beq .L4863 mov r0, #256000 mov r3, #1 - strb r3, [r5, #-2464] + strb r3, [r5, #520] bl ftl_malloc mov r1, #0 mov r2, #256000 - str r0, [r5, #-2460] + str r0, [r5, #524] bl ftl_memset - str r4, [r5, #-2456] -.L4551: + str r4, [r5, #528] +.L4863: str r6, [sp] mov r3, r4 - ldr r0, .L4573+8 - ldr r1, [r5, #-2460] + ldr r0, .L4888+16 + ldr r1, [r5, #524] ldr r2, [r8] bl printk - ldrb r3, [r5, #-2464] @ zero_extendqisi2 - ldr r9, .L4573 + ldrb r3, [r5, #520] @ zero_extendqisi2 + ldr r9, .L4888 cmp r3, #0 - beq .L4550 - ldr r7, [r9, #-2460] + beq .L4862 + ldr r7, [r9, #524] cmp r7, #0 - beq .L4550 + beq .L4862 sub r0, r4, #64 cmp r0, #500 - bcs .L4553 + bcs .L4865 rsb r2, r4, #564 add r0, r7, r0, asl #9 cmp r2, r6 @@ -27405,34 +29365,34 @@ write_loader_lba: movcs r2, r6 mov r2, r2, asl #9 bl ftl_memcpy - b .L4554 -.L4553: + b .L4866 +.L4865: cmp r4, #564 - bcs .L4562 -.L4554: - ldr r3, [r5, #-2456] - ldr r8, .L4573 + bcs .L4874 +.L4866: + ldr r3, [r5, #528] + ldr r8, .L4888 cmp r3, r4 - beq .L4560 + beq .L4872 mov r0, r7 mov r9, #0 - strb r9, [r8, #-2464] + strb r9, [r8, #520] bl ftl_free - str r9, [r8, #-2460] -.L4560: + str r9, [r8, #524] +.L4872: add r4, r4, r6 - str r4, [r5, #-2456] - b .L4550 -.L4562: - ldr r3, .L4573+12 - ldr r0, [r9, #-2456] - ldr r3, [r3, #584] + str r4, [r5, #528] + b .L4862 +.L4874: + ldr r3, .L4888+20 + ldr r0, [r9, #528] + ldr r3, [r3, #1096] sub r0, r0, #64 cmp r0, #500 ldrb r3, [r3, #9] @ zero_extendqisi2 movcs r0, #500 cmp r3, #4 - beq .L4563 + beq .L4875 mov r3, #2 str r3, [sp, #8] mov r3, #3 @@ -27443,10 +29403,10 @@ write_loader_lba: str r3, [sp, #20] mov r3, #6 str r3, [sp, #24] - b .L4556 -.L4563: + b .L4868 +.L4875: mov r3, #0 -.L4555: +.L4867: cmp r0, #256 add r1, sp, #8 mov r2, r3, asl #1 @@ -27454,40 +29414,42 @@ write_loader_lba: str r2, [r1, r3, asl #2] add r3, r3, #1 cmp r3, #5 - bne .L4555 -.L4556: + bne .L4867 +.L4868: mov r3, #61952 -.L4559: +.L4871: ldr r2, [r7, r3, asl #2] cmp r2, #0 addne r3, r3, #2048 movne r0, r3, asl #2 - bne .L4558 -.L4557: + bne .L4870 +.L4869: sub r3, r3, #1 cmp r3, #4096 - bne .L4559 + bne .L4871 mov r0, r0, asl #9 -.L4558: +.L4870: mov r1, r7 add r2, sp, #8 bl write_idblock - ldr r0, [r5, #-2460] + ldr r0, [r5, #524] mov r7, #0 - strb r7, [r5, #-2464] + strb r7, [r5, #520] bl ftl_free - str r7, [r5, #-2460] - b .L4560 -.L4550: + str r7, [r5, #524] + b .L4872 +.L4862: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L4574: +.L4889: .align 2 -.L4573: - .word .LANCHOR5 +.L4888: + .word .LANCHOR3 .word -52655045 - .word .LC315 + .word 1397640018 + .word 1397967698 + .word .LC319 .word .LANCHOR0 .fnend .size write_loader_lba, .-write_loader_lba @@ -27511,24 +29473,24 @@ FtlWrite: cmp r0, #0 movne r2, #0 cmp r2, #0 - beq .L4576 + beq .L4891 mov r0, r1 mov r2, r3 mov r1, r6 bl write_loader_lba -.L4576: - ldr r3, .L4581 +.L4891: + ldr r3, .L4896 mov r0, r7 mov r1, r4 mov r2, r6 - ldr r3, [r3, #-3280] + ldr r3, [r3, #-208] ldr ip, [r3, #24] mov r3, r5 ldmfd sp!, {r4, r5, r6, r7, r8, lr} bx ip -.L4582: +.L4897: .align 2 -.L4581: +.L4896: .word .LANCHOR3 .fnend .size FtlWrite, .-FtlWrite @@ -27537,442 +29499,207 @@ FtlWrite: .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: .fnstart - @ args = 0, pretend = 0, frame = 528 + @ args = 0, pretend = 0, frame = 520 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L4689 + ldr r3, .L4955 stmfd sp!, {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} cmp r1, r3 - .pad #532 - sub sp, sp, #532 + .pad #524 + sub sp, sp, #524 mov r4, r1 mov r5, r2 - beq .L4585 - bhi .L4586 - sub r3, r3, #3456 - sub r3, r3, #5 + beq .L4900 + bhi .L4901 + sub r3, r3, #2080 + sub r3, r3, #6 cmp r1, r3 - beq .L4587 - bhi .L4588 - sub r3, r3, #125 + beq .L4902 + bhi .L4903 + sub r3, r3, #238 cmp r1, r3 - beq .L4589 - bhi .L4590 - sub r3, r3, #237 + beq .L4904 + add r3, r3, #237 cmp r1, r3 - bne .L4646 - bl rknand_dev_flush - b .L4677 -.L4590: - ldr r3, .L4689+4 + beq .L4905 + b .L4935 +.L4903: + ldr r3, .L4955+4 cmp r1, r3 - beq .L4592 + beq .L4906 add r3, r3, #1 cmp r1, r3 - beq .L4593 - b .L4646 -.L4588: - ldr r3, .L4689+8 + beq .L4907 + sub r3, r3, #124 cmp r1, r3 - beq .L4594 - bhi .L4595 - sub r3, r3, #1952 - sub r3, r3, #9 - cmp r1, r3 - beq .L4596 - b .L4646 -.L4595: - ldr r3, .L4689+12 - cmp r1, r3 - beq .L4594 - add r3, r3, #10 - cmp r1, r3 - beq .L4594 - b .L4646 -.L4586: - ldr r3, .L4689+16 - cmp r1, r3 - beq .L4597 - bhi .L4598 - sub r3, r3, #78 - cmp r1, r3 - beq .L4599 - bcc .L4600 - add r3, r3, #21 - cmp r1, r3 - beq .L4601 - add r3, r3, #56 - cmp r1, r3 - beq .L4602 - b .L4646 -.L4598: - ldr r3, .L4689+20 + bne .L4935 + b .L4953 +.L4901: + ldr r3, .L4955+8 cmp r1, r3 mov r6, r3 - beq .L4603 - bhi .L4604 - sub r3, r3, #956 - sub r3, r3, #1 + beq .L4909 + bhi .L4910 + sub r3, r3, #2512 + sub r3, r3, #14 cmp r1, r3 - beq .L4605 - add r3, r3, #956 + beq .L4900 + add r3, r3, #10 cmp r1, r3 - beq .L4606 - b .L4646 -.L4604: - ldr r3, .L4689+24 + beq .L4900 + b .L4935 +.L4910: + ldr r3, .L4955+12 cmp r1, r3 - beq .L4606 + beq .L4909 + bcc .L4911 add r3, r3, #1 cmp r1, r3 - beq .L4603 - b .L4646 -.L4600: - ldr r0, .L4689+28 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r4, r0, #0 - bne .L4607 -.L4612: - mvn r0, #11 - b .L4584 -.L4607: - mov r1, r5 - mov r2, #512 - bl rk_copy_from_user - cmp r0, #0 - bne .L4683 - ldr r0, .L4689+32 - ldmia r4, {r1, r2} - bl printk - ldr r3, [r4, #4] - cmp r3, #8 - str r3, [sp, #4] - bhi .L4681 - bl rknand_device_lock - mov r2, r4 - ldr r0, [r4] - ldr r1, [sp, #4] - bl id_block_read_data.constprop.29 - bl rknand_device_unlock - mov r0, r5 - mov r1, r4 - ldr r2, [sp, #4] - mov r2, r2, asl #9 - bl rk_copy_to_user - cmp r0, #0 - beq .L4676 - ldr r0, .L4689+36 -.L4679: - bl printk -.L4681: - mov r0, r4 -.L4682: - bl ftl_free -.L4680: - mvn r0, #13 - b .L4584 -.L4599: - ldr r0, .L4689+40 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r4, r0, #0 - beq .L4612 - mov r1, r5 - mov r2, #4096 - bl rk_copy_from_user - cmp r0, #0 - beq .L4613 -.L4683: - ldr r0, .L4689+44 - b .L4679 -.L4613: - ldr r5, .L4689+48 - ldr r0, .L4689+52 - ldmia r4, {r1, r2} - bl printk - ldr r6, [r5, #-2452] - mov r7, r5 - cmp r6, #0 - bne .L4614 - mov r0, #260096 - bl ftl_malloc - cmp r0, #0 - str r0, [r5, #-2452] - beq .L4681 - mov r1, r6 - mov r2, #260096 - bl memset -.L4614: - ldr r2, [r4, #4] - movw r3, #4088 - cmp r2, r3 - bhi .L4681 - ldr r3, [r4] - cmp r3, #251904 - bhi .L4681 - ldr r0, [r7, #-2452] - add r1, r4, #8 - add r0, r0, r3 - bl memcpy -.L4676: - mov r0, r4 - bl ftl_free -.L4677: - mov r4, #0 - b .L4611 -.L4602: - ldr r0, .L4689+56 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r6, r0, #0 - beq .L4612 - mov r1, r5 - mov r2, #28 - bl rk_copy_from_user - cmp r0, #0 - beq .L4617 - ldr r0, .L4689+44 - bl printk - b .L4618 -.L4617: - ldmia r6, {r1, r2} - ldr r0, .L4689+60 - bl printk - ldr r1, [r6] - cmp r1, #256000 - bhi .L4618 - ldr r5, .L4689+48 - ldr r0, [r5, #-2452] - cmp r0, #0 - beq .L4618 - bl CRC_32 - ldr r3, [r6, #4] - cmp r3, r0 - beq .L4620 - mov r0, r6 - bl ftl_free - b .L4647 -.L4620: - bl rknand_device_lock - ldr r1, [r5, #-2452] - add r2, r6, #8 - ldr r0, [r6] - bl write_idblock - mov r4, #0 - bl rknand_device_unlock - ldr r0, [r5, #-2452] - bl ftl_free - str r4, [r5, #-2452] - mov r0, r6 - b .L4624 -.L4618: - mov r0, r6 - b .L4682 -.L4601: - ldr r0, .L4689+64 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r6, r0, #0 - beq .L4612 - bl ReadFlashInfo - mov r0, r5 - mov r1, r6 - mov r2, #11 - b .L4687 -.L4585: - ldr r0, .L4689+68 - bl printk - bl nand_blk_add_whole_disk - mov r0, #4096 - bl ftl_malloc - subs r6, r0, #0 - beq .L4612 - mov r1, #0 - mov r2, #64 - bl ftl_memset - mov r0, r5 - mov r1, r6 - mov r2, #64 - b .L4687 -.L4597: - ldr r0, .L4689+72 - bl printk - ldr r3, .L4689+48 - mov r0, r5 - mov r2, #4 - ldr r3, [r3, #-2448] - ldr r3, [r3, #20] - add r1, sp, #528 - str r3, [r1, #-524]! -.L4671: - bl rk_copy_to_user - cmp r0, #0 - bne .L4680 - b .L4677 -.L4605: - ldr r0, .L4689+76 - bl printk - mov r0, #4096 - bl ftl_malloc - subs r6, r0, #0 - beq .L4612 - bl rknand_device_lock - mov r1, #264 - mov r2, #2 - mov r3, r6 - mov r0, #16 - bl FtlRead - bl rknand_device_unlock - mov r0, r5 - mov r1, r6 - mov r2, #1024 -.L4687: - bl rk_copy_to_user - subs r4, r0, #0 - mov r0, r6 - bne .L4682 -.L4624: - bl ftl_free - b .L4611 -.L4589: - ldr r0, .L4689+80 + beq .L4911 + b .L4935 +.L4905: + ldr r0, .L4955+16 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user - subs r4, r0, #0 - beq .L4625 -.L4630: - ldr r0, .L4689+44 + cmp r0, #0 + beq .L4912 +.L4918: + ldr r0, .L4955+20 bl printk - b .L4680 -.L4625: - ldr r2, [sp, #8] - ldr r3, .L4689+84 + b .L4950 +.L4912: + ldr r2, [sp] + ldr r3, .L4955+24 cmp r2, r3 - beq .L4626 -.L4627: + beq .L4913 +.L4915: mvn r4, #0 - b .L4611 -.L4626: - ldr r3, [sp, #12] + b .L4914 +.L4913: + ldr r3, [sp, #4] cmp r3, #512 - bhi .L4627 - ldr r6, .L4689+48 + bhi .L4915 + ldr r4, .L4955+28 mov r2, #512 - add r0, sp, #8 - ldr r1, [r6, #-2448] + mov r0, sp + ldr r1, [r4, #532] bl memcpy - ldr r2, [r6, #-2444] - ldr r3, .L4689+88 + ldr r2, [r4, #536] + ldr r3, .L4955+32 cmp r2, r3 - beq .L4628 - add r0, sp, #72 - mov r1, r4 - mov r2, #128 - str r4, [sp, #16] - str r4, [sp, #20] - bl memset -.L4628: + beq .L4916 mov r1, #0 - mov r2, #256 - add r0, sp, #264 - str r1, [sp, #24] + add r0, sp, #64 + mov r2, #128 + str r1, [sp, #8] + str r1, [sp, #12] bl memset - b .L4685 -.L4592: - ldr r0, .L4689+92 +.L4916: + mov r1, #0 + add r0, sp, #256 + mov r2, #256 + str r1, [sp, #16] + bl memset +.L4945: + mov r0, r5 + mov r1, sp + mov r2, #520 + bl rk_copy_to_user + cmp r0, #0 + bne .L4950 + b .L4949 +.L4902: + ldr r0, .L4955+36 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4630 - ldr r2, [sp, #8] - ldr r3, .L4689+84 + bne .L4918 + ldr r2, [sp] + ldr r3, .L4955+24 cmp r2, r3 - bne .L4627 - ldr r3, [sp, #12] + bne .L4915 + ldr r3, [sp, #4] cmp r3, #512 - bhi .L4627 - ldr r2, .L4689+48 - ldr r3, .L4689+88 - ldr r1, [r2, #-2444] + bhi .L4915 + ldr r2, .L4955+28 + ldr r3, .L4955+32 + ldr r1, [r2, #536] cmp r1, r3 - bne .L4647 - ldr r3, [sp, #20] + mvnne r0, #1 + bne .L4899 + ldr r3, [sp, #12] sub r1, r3, #1 cmp r1, #127 mvnhi r0, #2 - bhi .L4584 - ldr r4, [r2, #-2448] - add r1, sp, #72 + bhi .L4899 + ldr r4, [r2, #532] + add r1, sp, #64 add r0, r4, #64 str r3, [r4, #12] - ldr r2, [sp, #20] + ldr r2, [sp, #12] bl memcpy mov r0, #1 mov r1, r4 - b .L4678 -.L4596: - ldr r0, .L4689+96 + b .L4948 +.L4907: + ldr r0, .L4955+40 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4630 - ldr r2, [sp, #8] - ldr r3, .L4689+100 + bne .L4918 + ldr r2, [sp] + ldr r3, .L4955+44 cmp r2, r3 - bne .L4627 - ldr r3, [sp, #12] + bne .L4915 + ldr r3, [sp, #4] cmp r3, #512 - bhi .L4627 - ldr r5, .L4689+48 - ldr r3, [r5, #-2440] + bhi .L4915 + ldr r5, .L4955+28 + ldr r3, [r5, #540] cmp r3, #0 - bne .L4631 -.L4634: + bne .L4919 +.L4922: mov r0, #0 - b .L4584 -.L4631: - ldr r3, [r5, #-2436] - ldr r2, .L4689+104 + b .L4899 +.L4919: + ldr r3, [r5, #544] + ldr r2, .L4955+48 ldr r1, [r3] cmp r1, r2 - beq .L4632 + beq .L4920 str r2, [r3] mov r2, #504 - ldr r3, [r5, #-2436] + ldr r3, .L4955+28 + ldr r3, [r3, #544] str r2, [r3, #4] mov r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L4632: - ldr r1, [r5, #-2436] +.L4920: + ldr r1, [r5, #544] mov r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #-2448] - ldr r2, .L4689+84 + ldr r3, [r5, #532] + ldr r2, .L4955+24 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r6, [r5, #-2448] - ldrne r3, .L4689+48 + ldr r6, [r5, #532] + ldrne r3, .L4955+28 movne r2, #504 add r0, r6, #64 - ldrne r3, [r3, #-2448] + ldrne r3, [r3, #532] stmneib r3, {r2, r4} mov r4, #0 mov r1, r4 @@ -27982,56 +29709,59 @@ rknand_sys_storage_ioctl: mov r0, #1 mov r1, r6 bl StorageSysDataStore - str r4, [r5, #-2440] - str r4, [r5, #-2444] - b .L4611 -.L4587: - ldr r0, .L4689+108 + str r4, [r5, #540] + str r4, [r5, #536] + b .L4914 +.L4906: + ldr r0, .L4955+52 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4630 - ldr r2, [sp, #8] - ldr r3, .L4689+112 + bne .L4918 + ldr r2, [sp] + ldr r3, .L4955+56 cmp r2, r3 - bne .L4627 - ldr r3, [sp, #12] + bne .L4915 + ldr r3, [sp, #4] cmp r3, #512 - bhi .L4627 - ldr r5, .L4689+48 - ldr r3, [r5, #-2440] + bhi .L4915 + ldr r5, .L4955+28 + ldr r3, [r5, #540] cmp r3, #1 - beq .L4634 - ldr r3, [r5, #-2436] - mov r4, #0 - ldr r2, .L4689+104 - ldr r1, [r3] - cmp r1, r2 - strne r2, [r3] - ldr r1, [r5, #-2436] - ldrne r3, [r5, #-2436] - movne r2, #504 - strne r0, [r3, #8] - strne r2, [r3, #4] - strne r0, [r3, #12] + beq .L4922 + ldr r2, [r5, #544] + ldr r3, .L4955+48 + ldr r1, [r2] + cmp r1, r3 + beq .L4923 + str r3, [r2] + mov r2, #504 + ldr r3, [r5, #544] + str r2, [r3, #4] + mov r2, #0 + str r2, [r3, #8] + str r2, [r3, #12] +.L4923: + ldr r1, [r5, #544] mov r3, #1 mov r0, #0 + mov r4, #0 str r3, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #-2448] - ldr r2, .L4689+84 + ldr r3, [r5, #532] + ldr r2, .L4955+24 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r6, [r5, #-2448] - ldrne r3, .L4689+48 + ldr r6, [r5, #532] + ldrne r3, .L4955+28 movne r1, #504 movne r2, #0 add r0, r6, #64 - ldrne r3, [r3, #-2448] + ldrne r3, [r3, #532] stmneib r3, {r1, r2} mov r1, r4 mov r2, #128 @@ -28041,86 +29771,88 @@ rknand_sys_storage_ioctl: mov r1, r6 bl StorageSysDataStore mov r3, #1 - str r3, [r5, #-2440] - b .L4611 -.L4593: - ldr r0, .L4689+116 + str r3, [r5, #540] + b .L4914 +.L4953: + ldr r0, .L4955+60 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4630 - ldr r2, [sp, #8] - ldr r3, .L4689+120 + bne .L4918 + ldr r2, [sp] + ldr r3, .L4955+64 cmp r2, r3 - bne .L4627 - ldr r2, [sp, #12] + bne .L4915 + ldr r2, [sp, #4] cmp r2, #512 - addls r0, sp, #16 - ldrls r1, .L4689+124 - bls .L4684 - b .L4627 -.L4594: - ldr r0, .L4689+12 + addls r0, sp, #8 + ldrls r1, .L4955+68 + bls .L4951 + b .L4915 +.L4900: + ldr r0, .L4955+72 cmp r4, r0 mov r7, r0 - ldreq r0, .L4689+128 - beq .L4674 - ldr r3, .L4689+132 + ldreq r0, .L4955+76 + beq .L4947 + ldr r3, .L4955+80 cmp r4, r3 - ldreq r0, .L4689+136 - ldrne r0, .L4689+140 -.L4674: + ldreq r0, .L4955+84 + ldrne r0, .L4955+88 +.L4947: bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4630 - ldr r2, [sp, #8] - ldr r3, .L4689+144 + bne .L4918 + ldr r2, [sp] + ldr r3, .L4955+92 cmp r2, r3 - bne .L4680 - ldr r3, .L4689+132 - ldr r6, .L4689+48 + bne .L4950 + ldr r3, .L4955+80 + ldr r6, .L4955+28 cmp r4, r3 - bne .L4640 - ldr r3, [r6, #-2448] + bne .L4929 + ldr r3, [r6, #532] mov r0, r5 - add r1, sp, #8 + mov r1, sp mov r2, #16 ldr r3, [r3, #20] - str r3, [sp, #12] - strb r3, [sp, #16] + str r3, [sp, #4] + strb r3, [sp, #8] bl rk_copy_to_user cmp r0, #0 - beq .L4584 - b .L4680 -.L4640: - ldr r3, [r6, #-1920] + beq .L4899 + b .L4950 +.L4929: + ldr r3, [r6, #1060] cmp r3, #10 - bhi .L4680 - ldr r1, [r6, #-2448] - ldr r2, [sp, #12] + bhi .L4950 + ldr r1, [r6, #532] + ldr r2, [sp, #4] ldr r3, [r1, #24] cmp r3, r2 cmpne r3, #0 movne r3, #1 moveq r3, #0 - beq .L4641 - ldr r0, .L4689+148 + beq .L4930 + ldr r0, .L4955+96 mov r1, r2 bl printk - ldr r3, [r6, #-1920] + ldr r3, [r6, #1060] add r3, r3, #1 - str r3, [r6, #-1920] - b .L4680 -.L4641: + str r3, [r6, #1060] +.L4950: + mvn r0, #13 + b .L4899 +.L4930: cmp r4, r7 - str r3, [r6, #-1920] + str r3, [r6, #1060] mov r0, #1 moveq r2, r3 movne r3, #1 @@ -28129,135 +29861,122 @@ rknand_sys_storage_ioctl: str r3, [r1, #20] bl StorageSysDataStore cmn r0, #1 - bne .L4677 - mvn r4, #1 - b .L4611 -.L4606: - ldr r0, .L4689+152 + bne .L4949 + b .L4954 +.L4909: + ldr r0, .L4955+100 bl printk mov r1, r5 mov r2, #520 - add r0, sp, #8 + mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4630 - ldr r2, [sp, #8] - ldr r3, .L4689+156 + bne .L4918 + ldr r2, [sp] + ldr r3, .L4955+104 cmp r2, r3 - bne .L4627 - ldr r2, [sp, #12] + bne .L4915 + ldr r2, [sp, #4] cmp r2, #504 - bhi .L4627 - ldr r3, .L4689+160 - add r0, sp, #16 - cmp r4, r3 - ldr r3, .L4689+48 - ldreq r1, [r3, #-1916] - ldrne r1, [r3, #-1912] - add r1, r1, #8 -.L4684: - bl memcpy -.L4685: - mov r0, r5 - add r1, sp, #8 - mov r2, #520 - b .L4671 -.L4603: - ldr r0, .L4689+164 - bl printk - mov r1, r5 - mov r2, #520 - add r0, sp, #8 - bl rk_copy_from_user - cmp r0, #0 - bne .L4630 - ldr r2, [sp, #8] - ldr r3, .L4689+156 - cmp r2, r3 - bne .L4627 - ldr r2, [sp, #12] - cmp r2, #504 - bhi .L4627 + bhi .L4915 + ldr r3, .L4955+28 cmp r4, r6 + add r0, sp, #8 + ldreq r1, [r3, #1064] + ldrne r1, [r3, #1068] + add r1, r1, #8 +.L4951: + bl memcpy + b .L4945 +.L4911: + ldr r0, .L4955+108 + bl printk + mov r1, r5 + mov r2, #520 + mov r0, sp + bl rk_copy_from_user + cmp r0, #0 + bne .L4918 + ldr r2, [sp] + ldr r3, .L4955+104 + cmp r2, r3 + bne .L4915 + ldr r2, [sp, #4] + cmp r2, #504 + bhi .L4915 + ldr r3, .L4955+112 add r2, r2, #8 - ldr r4, .L4689+48 - bne .L4645 - add r1, sp, #8 - ldr r0, [r4, #-1916] + cmp r4, r3 + ldr r4, .L4955+28 + bne .L4934 + mov r1, sp + ldr r0, [r4, #1064] bl memcpy mov r0, #2 - ldr r1, [r4, #-1916] - b .L4678 -.L4645: - add r1, sp, #8 - ldr r0, [r4, #-1912] + ldr r1, [r4, #1064] + b .L4948 +.L4934: + mov r1, sp + ldr r0, [r4, #1068] bl memcpy - ldr r1, [r4, #-1912] + ldr r1, [r4, #1068] mov r0, #3 -.L4678: +.L4948: bl StorageSysDataStore mov r4, r0 -.L4611: - ldr r0, .L4689+168 + b .L4914 +.L4904: + bl rknand_dev_flush +.L4949: + mov r4, #0 + b .L4914 +.L4954: + mvn r4, #1 +.L4914: + ldr r0, .L4955+116 mov r1, r4 bl printk mov r0, r4 - b .L4584 -.L4646: + b .L4899 +.L4935: mvn r0, #21 - b .L4584 -.L4647: - mvn r0, #1 -.L4584: - add sp, sp, #532 +.L4899: + add sp, sp, #524 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L4690: +.L4956: .align 2 -.L4689: - .word 1074033155 - .word 1074029570 +.L4955: .word 1074031656 - .word 1074031666 - .word 1074033235 - .word 1074034193 + .word 1074029694 + .word 1074034192 .word 1074034194 - .word .LC316 - .word .LC318 - .word .LC319 .word .LC320 - .word .LC317 - .word .LANCHOR5 .word .LC321 + .word 1263358532 + .word .LANCHOR3 + .word -1067903959 .word .LC322 .word .LC323 - .word .LC324 - .word .LC325 - .word .LC326 - .word .LC327 - .word .LC328 - .word 1263358532 - .word -1067903959 - .word .LC329 - .word .LC330 .word 1112753220 .word 1146313043 - .word .LC331 + .word .LC324 .word 1112755781 - .word .LC332 + .word .LC325 .word 1094995539 - .word .LANCHOR5-2432 - .word .LC333 + .word .LANCHOR3+548 + .word 1074031666 + .word .LC326 .word 1074031676 - .word .LC334 - .word .LC335 + .word .LC327 + .word .LC328 .word 1280262987 - .word .LC336 - .word .LC337 + .word .LC329 + .word .LC330 .word 1145980246 - .word 1074034192 - .word .LC338 - .word .LC339 + .word .LC331 + .word 1074034193 + .word .LC332 .fnend .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 2 @@ -28270,59 +29989,59 @@ rk_ftl_storage_sys_init: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mvn r3, #0 - ldr r4, .L4700 + ldr r4, .L4966 mov r2, #512 mov r5, #0 - sub r0, r4, #2432 - ldr r1, [r4, #-2484] - str r3, [r4, #-2456] + add r0, r4, #548 + ldr r1, [r4, #508] + str r3, [r4, #528] add r3, r1, #512 - str r3, [r4, #-2448] - str r1, [r4, #-2436] + str r3, [r4, #532] + str r1, [r4, #544] add r3, r1, #1024 add r1, r1, #1536 - str r3, [r4, #-1916] - strb r5, [r4, #-2464] - str r5, [r4, #-2460] - str r5, [r4, #-2452] - str r1, [r4, #-1912] + str r3, [r4, #1064] + strb r5, [r4, #520] + str r5, [r4, #524] + str r5, [r4, #1072] + str r1, [r4, #1068] bl ftl_memcpy - ldr r0, [r4, #-2436] - str r5, [r4, #-2444] - str r5, [r4, #-1920] + ldr r0, [r4, #544] + str r5, [r4, #536] + str r5, [r4, #1060] ldr r6, [r0, #508] ldr r3, [r0, #16] cmp r6, r5 - str r3, [r4, #-2440] - beq .L4693 + str r3, [r4, #540] + beq .L4959 mov r1, #508 bl js_hash cmp r6, r0 - beq .L4693 - ldr r3, [r4, #-2436] - ldr r0, .L4700+4 - str r5, [r4, #-2440] + beq .L4959 + ldr r3, [r4, #544] + ldr r0, .L4966+4 + str r5, [r4, #540] str r5, [r3, #16] bl printk -.L4693: - ldr r3, [r4, #-2440] +.L4959: + ldr r3, [r4, #540] mov r0, #2 - ldr r1, [r4, #-1916] + ldr r1, [r4, #1064] cmp r3, #0 - ldrne r2, .L4700+8 - ldrne r3, .L4700 - strne r2, [r3, #-2444] + ldrne r2, .L4966+8 + ldrne r3, .L4966 + strne r2, [r3, #536] bl StorageSysDataLoad - ldr r1, [r4, #-1912] + ldr r1, [r4, #1068] mov r0, #3 bl StorageSysDataLoad ldmfd sp!, {r4, r5, r6, lr} b rknand_sys_storage_init -.L4701: +.L4967: .align 2 -.L4700: - .word .LANCHOR5 - .word .LC340 +.L4966: + .word .LANCHOR3 + .word .LC333 .word -1067903959 .fnend .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init @@ -28349,33 +30068,33 @@ rk_ftl_vendor_storage_init: .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r0, #65536 bl ftl_malloc - ldr r6, .L4714 + ldr r6, .L4980 cmp r0, #0 - str r0, [r6, #-1908] - beq .L4709 - ldr r9, .L4714+4 + str r0, [r6, #1076] + beq .L4975 + ldr r9, .L4980+4 mov r8, #0 mov r4, r8 mov r7, r8 mov r10, r6 -.L4707: +.L4973: mov r0, r7, asl #7 mov r1, #128 - ldr r2, [r6, #-1908] + ldr r2, [r6, #1076] bl FlashBootVendorRead cmp r0, #0 - bne .L4705 - ldr r3, [r10, #-1908] - ldr r0, .L4714+8 + bne .L4971 + ldr r3, [r10, #1076] + ldr r0, .L4980+8 add r2, r3, #61440 ldr r1, [r3] ldr r2, [r2, #4092] ldr r3, [r3, #4] bl printk - ldr r5, [r10, #-1908] + ldr r5, [r10, #1076] ldr r3, [r5] cmp r3, r9 - bne .L4706 + bne .L4972 add r2, r5, #61440 ldr r3, [r5, #4] ldr r1, [r2, #4092] @@ -28387,51 +30106,51 @@ rk_ftl_vendor_storage_init: cmp r2, #0 movne r8, r7 movne r4, r3 -.L4706: +.L4972: cmp r7, #1 movne r7, #1 - bne .L4707 -.L4713: + bne .L4973 +.L4979: cmp r4, #0 - beq .L4708 + beq .L4974 mov r0, r8, asl #7 mov r1, #128 mov r2, r5 bl FlashBootVendorRead cmp r0, #0 - bne .L4705 + bne .L4971 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4708: +.L4974: mov r0, r5 mov r1, r4 mov r2, #65536 bl memset - ldr r3, .L4714+4 + ldr r3, .L4980+4 str r7, [r5, #4] mov r0, r4 str r3, [r5] add r3, r5, #61440 str r7, [r3, #4092] - ldr r3, .L4714+12 + ldr r3, .L4980+12 strh r4, [r5, #12] @ movhi strh r3, [r5, #14] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4705: - ldr r0, [r6, #-1908] +.L4971: + ldr r0, [r6, #1076] bl kfree mov r3, #0 mvn r0, #0 - str r3, [r6, #-1908] + str r3, [r6, #1076] ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4709: +.L4975: mvn r0, #11 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4715: +.L4981: .align 2 -.L4714: - .word .LANCHOR5 +.L4980: + .word .LANCHOR3 .word 1380668996 - .word .LC341 + .word .LC334 .word -1032 .fnend .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init @@ -28444,19 +30163,19 @@ rk_ftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L4723 - ldr ip, [r3, #-1908] + ldr r3, .L4989 + ldr ip, [r3, #1076] cmp ip, #0 ldrneh r4, [ip, #10] movne r3, #0 - beq .L4721 -.L4718: + beq .L4987 +.L4984: cmp r3, r4 - bcs .L4721 + bcs .L4987 add lr, ip, r3, asl #3 ldrh r5, [lr, #16] cmp r5, r0 - bne .L4719 + bne .L4985 ldrh r3, [lr, #20] mov r0, r1 ldrh r1, [lr, #18] @@ -28469,16 +30188,16 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L4719: +.L4985: add r3, r3, #1 - b .L4718 -.L4721: + b .L4984 +.L4987: mvn r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L4724: +.L4990: .align 2 -.L4723: - .word .LANCHOR5 +.L4989: + .word .LANCHOR3 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read .align 2 @@ -28491,12 +30210,12 @@ rk_ftl_vendor_write: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r2 - ldr r2, .L4748 + ldr r2, .L5014 .pad #28 sub sp, sp, #28 - ldr r4, [r2, #-1908] + ldr r4, [r2, #1076] cmp r4, #0 - beq .L4740 + beq .L5006 mov r3, r1 add r7, r9, #63 ldrh r1, [r4, #8] @@ -28505,31 +30224,31 @@ rk_ftl_vendor_write: mov ip, r0 mov r6, #0 str r1, [sp, #4] -.L4727: +.L4993: cmp r6, r2 - bcs .L4746 + bcs .L5012 add r5, r4, r6, asl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L4728 + bne .L4994 ldrh r1, [r5, #20] add fp, r4, #1024 add r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L4729 + bls .L4995 ldrh r1, [r4, #14] cmp r1, r7 subcs r2, r2, #1 strcs r2, [sp, #12] ldrcsh r8, [r5, #18] - bcc .L4740 -.L4730: + bcc .L5006 +.L4996: ldr r2, [sp, #12] add r5, r5, #8 cmp r6, r2 - bcs .L4747 + bcs .L5013 ldrh r10, [r5, #20] add r0, fp, r8 ldrh r2, [r5, #16] @@ -28548,8 +30267,8 @@ rk_ftl_vendor_write: add r8, r8, r10 ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L4730 -.L4747: + b .L4996 +.L5013: add r6, r4, r6, asl #3 uxth r8, r8 add r0, fp, r8 @@ -28567,22 +30286,22 @@ rk_ftl_vendor_write: add r5, r3, r5 rsb r7, r7, r5 strh r7, [r4, #14] @ movhi - b .L4745 -.L4729: + b .L5011 +.L4995: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, fp, r0 bl memcpy strh r9, [r5, #20] @ movhi - b .L4745 -.L4728: + b .L5011 +.L4994: add r6, r6, #1 - b .L4727 -.L4746: + b .L4993 +.L5012: ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4740 + bcc .L5006 add r2, r4, r2, asl #3 uxth r7, r7 rsb r1, r7, r1 @@ -28602,7 +30321,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] add r3, r3, #1 strh r3, [r4, #10] @ movhi -.L4745: +.L5011: ldr r3, [r4, #4] add r2, r4, #61440 mov r1, #128 @@ -28620,17 +30339,17 @@ rk_ftl_vendor_write: mov r0, r3, asl #7 bl FlashBootVendorWrite mov r0, #0 - b .L4726 -.L4740: + b .L4992 +.L5006: mvn r0, #0 -.L4726: +.L4992: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4749: +.L5015: .align 2 -.L4748: - .word .LANCHOR5 +.L5014: + .word .LANCHOR3 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write .align 2 @@ -28648,34 +30367,34 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc subs r4, r0, #0 mvneq r5, #0 - beq .L4751 - ldr r3, .L4767 + beq .L5017 + ldr r3, .L5033 cmp r6, r3 - beq .L4753 + beq .L5019 add r3, r3, #1 cmp r6, r3 - beq .L4754 - b .L4765 -.L4753: + beq .L5020 + b .L5031 +.L5019: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4765 + bne .L5031 ldr r2, [r4] - ldr r3, .L4767+4 + ldr r3, .L5033+4 cmp r2, r3 - beq .L4756 -.L4757: + beq .L5022 +.L5023: mvn r5, #0 - b .L4752 -.L4756: + b .L5018 +.L5022: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read cmn r0, #1 - beq .L4757 + beq .L5023 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -28685,49 +30404,48 @@ rk_ftl_vendor_storage_ioctl: cmp r0, #0 moveq r5, #0 mvnne r5, #13 - b .L4752 -.L4754: + b .L5018 +.L5020: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4765 + bne .L5031 ldr r2, [r4] - ldr r3, .L4767+4 + ldr r3, .L5033+4 cmp r2, r3 - bne .L4757 + bne .L5023 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L4757 + bhi .L5023 mov r0, r4 mov r1, r5 add r2, r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4765 + bne .L5031 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L4752 -.L4765: + b .L5018 +.L5031: mvn r5, #13 -.L4752: +.L5018: mov r0, r4 bl kfree -.L4751: +.L5017: mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L4768: +.L5034: .align 2 -.L4767: +.L5033: .word 1074034177 .word 1448232273 .fnend .size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl - .global gTable_Crc32 .global SecureBootUnlockTryCount .global SecureBootCheckOK .global SecureBootEn @@ -28780,11 +30498,11 @@ rk_ftl_vendor_storage_ioctl: .global gp_ftl_ext_info .global gp_ftl_info .global gp_blk_info - .global ftl_tmp_spare - .global ftl_info_spare + .global ftl_tmp_buffer .global ftl_ext_info_data_buffer .global ftl_info_data_buffer - .global ftl_tmp_buffer + .global ftl_tmp_spare + .global ftl_info_spare .global g_ftl_info_blk .global tlc_b05a_prog_tbl .global tlc_prog_order @@ -28800,6 +30518,7 @@ rk_ftl_vendor_storage_ioctl: .global gc_slc_data_index .global gc_free_slc_sblk_th .global gc_slc_mode_vpn_th + .global gc_slc_mode_slc_vpn_th .global gc_slc_mode_tlc_vpn_th .global gc_tlc_mode_tlc_vpn_th .global gc_tlc_mode_slc_vpn_th @@ -28808,6 +30527,7 @@ rk_ftl_vendor_storage_ioctl: .global p_read_ahead_ext_buf .global discard_sector_count .global read_ahead_lpa + .global _ftl_gc_tag_page_num .global read_buf_count .global read_buf_head .global write_commit_count @@ -28826,7 +30546,6 @@ rk_ftl_vendor_storage_ioctl: .global _last_write_time .global _last_read_time .global _min_slc_super_block - .global _max_slc_super_block .global _max_xlc_super_block .global _c_max_pm_sblk .global _c_ftl_pm_page_num @@ -28878,6 +30597,7 @@ rk_ftl_vendor_storage_ioctl: .global g_maxRegNum .global g_retryMode .global g_flash_toggle_mode_en + .global g_flash_ymtc_3d_tlc_flag .global g_flash_micron_3d_tlc_b16a .global g_flash_micron_3d_tlc_b05a .global g_flash_micron_3d_tlc_flag @@ -28892,6 +30612,7 @@ rk_ftl_vendor_storage_ioctl: .global g_slc_mode_addr2 .global g_slc_mode_enable .global g_flash_cur_mode + .global g_flash_six_addr .global g_flash_slc_mode .global g_slc_page_num .global g_totle_phy_block @@ -28904,26 +30625,26 @@ rk_ftl_vendor_storage_ioctl: .global g_flash_spare_buffer .global g_flash_page_buffer .section .rodata - .align 2 + .align 3 .LANCHOR1 = . + 0 - .type __func__.38753, %object - .size __func__.38753, 18 -__func__.38753: + .type __func__.39435, %object + .size __func__.39435, 18 +__func__.39435: .ascii "_list_remove_node\000" .space 2 - .type __func__.38778, %object - .size __func__.38778, 23 -__func__.38778: + .type __func__.39460, %object + .size __func__.39460, 23 +__func__.39460: .ascii "_list_update_data_list\000" .space 1 - .type __func__.19769, %object - .size __func__.19769, 22 -__func__.19769: + .type __func__.20182, %object + .size __func__.20182, 22 +__func__.20182: .ascii "nand_flash_print_info\000" .space 2 - .type __func__.19855, %object - .size __func__.19855, 11 -__func__.19855: + .type __func__.20268, %object + .size __func__.20268, 11 +__func__.20268: .ascii "nandc_init\000" .space 1 .type toshiba_A19ref_value, %object @@ -29085,13 +30806,13 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.19312, %object - .size __func__.19312, 28 -__func__.19312: + .type __func__.19655, %object + .size __func__.19655, 28 +__func__.19655: .ascii "flash_wait_device_ready_raw\000" - .type __func__.19376, %object - .size __func__.19376, 22 -__func__.19376: + .type __func__.19719, %object + .size __func__.19719, 22 +__func__.19719: .ascii "flash_start_page_read\000" .space 2 .type toshiba_3D_tlc_value, %object @@ -29512,19 +31233,394 @@ toshiba_3D_slc_value: .byte -56 .byte 56 .space 1 - .type __func__.19401, %object - .size __func__.19401, 23 -__func__.19401: + .type ymtc_3D_tlc_value, %object + .size ymtc_3D_tlc_value, 357 +ymtc_3D_tlc_value: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -10 + .byte -10 + .byte -6 + .byte -6 + .byte -2 + .byte 2 + .byte 2 + .byte -6 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -6 + .byte -8 + .byte 6 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -2 + .byte -2 + .byte -2 + .byte -4 + .byte -4 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -11 + .byte -2 + .byte 2 + .byte 4 + .byte 4 + .byte 6 + .byte 6 + .byte 6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -8 + .byte -14 + .byte -6 + .byte -15 + .byte -11 + .byte 2 + .byte -12 + .byte -8 + .byte -2 + .byte 2 + .byte -3 + .byte -7 + .byte -10 + .byte -4 + .byte -8 + .byte -6 + .byte -18 + .byte -18 + .byte -14 + .byte -14 + .byte -10 + .byte -5 + .byte -5 + .byte -14 + .byte -14 + .byte -12 + .byte -12 + .byte -12 + .byte -13 + .byte -15 + .byte -2 + .byte -8 + .byte -8 + .byte -8 + .byte -8 + .byte -7 + .byte -7 + .byte -10 + .byte -10 + .byte -10 + .byte -12 + .byte -12 + .byte -13 + .byte -13 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -13 + .byte -18 + .byte -10 + .byte -6 + .byte -4 + .byte -4 + .byte -2 + .byte -1 + .byte -1 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -15 + .byte -21 + .byte -12 + .byte -11 + .byte -7 + .byte -7 + .byte -3 + .byte 1 + .byte 1 + .byte -8 + .byte -7 + .byte -5 + .byte -5 + .byte -5 + .byte -7 + .byte -9 + .byte 4 + .byte -1 + .byte -1 + .byte -1 + .byte -1 + .byte -1 + .byte -1 + .byte -4 + .byte -3 + .byte -3 + .byte -5 + .byte -5 + .byte -7 + .byte -7 + .byte -8 + .byte -7 + .byte -7 + .byte -7 + .byte -7 + .byte -7 + .byte -12 + .byte -4 + .byte 1 + .byte 3 + .byte 3 + .byte 5 + .byte 5 + .byte 5 + .byte -8 + .byte -7 + .byte -7 + .byte -7 + .byte -7 + .byte -9 + .byte -15 + .byte 2 + .byte -7 + .byte -11 + .byte -14 + .byte -8 + .byte -12 + .byte -10 + .byte 6 + .byte 1 + .byte -3 + .byte -6 + .byte 0 + .byte -4 + .byte -2 + .byte 10 + .byte -3 + .byte -7 + .byte -6 + .byte 4 + .byte -4 + .byte -2 + .byte -10 + .byte -23 + .byte -39 + .byte -22 + .byte -19 + .byte -24 + .byte -18 + .byte -7 + .byte -27 + .byte -35 + .byte -26 + .byte -15 + .byte -24 + .byte -26 + .byte 6 + .byte -11 + .byte 5 + .byte -2 + .byte -16 + .byte -16 + .byte -2 + .byte -2 + .byte -15 + .byte -15 + .byte -20 + .byte -8 + .byte -16 + .byte -18 + .byte 2 + .byte 1 + .byte -3 + .byte -10 + .byte -8 + .byte -4 + .byte -6 + .byte -2 + .byte -15 + .byte -11 + .byte -26 + .byte -8 + .byte -20 + .byte -30 + .byte 6 + .byte -19 + .byte -3 + .byte -46 + .byte 0 + .byte 0 + .byte 2 + .byte 6 + .byte 9 + .byte 5 + .byte 2 + .byte 4 + .byte 8 + .byte 6 + .byte 8 + .byte 9 + .byte 9 + .byte 6 + .byte 8 + .byte 8 + .byte 6 + .byte 10 + .byte 13 + .byte 9 + .byte 6 + .byte 8 + .byte 12 + .byte 10 + .byte 2 + .byte 5 + .byte 1 + .byte -2 + .byte 0 + .byte 0 + .byte 6 + .byte 12 + .byte 1 + .byte 13 + .byte 2 + .byte 12 + .byte 12 + .byte 14 + .byte -12 + .byte -14 + .byte -20 + .byte -18 + .byte -16 + .byte -16 + .byte -14 + .byte -12 + .byte -10 + .byte -21 + .byte -14 + .byte -12 + .byte -12 + .byte -10 + .byte -12 + .byte -18 + .byte -22 + .byte -24 + .byte -18 + .byte -18 + .byte -18 + .byte -12 + .byte -14 + .byte -23 + .byte -20 + .byte -20 + .byte -20 + .byte -20 + .byte 16 + .byte 16 + .byte 8 + .byte 8 + .byte 12 + .byte 12 + .byte 12 + .byte 18 + .byte 18 + .byte 10 + .byte 8 + .byte 14 + .byte 14 + .byte 14 + .byte 16 + .byte 14 + .byte 6 + .byte 6 + .byte 12 + .byte 14 + .byte 8 + .byte 10 + .byte 13 + .byte 5 + .byte 2 + .byte 14 + .byte 8 + .byte 6 + .byte 6 + .byte 13 + .byte 9 + .byte 4 + .byte 14 + .byte 10 + .byte 10 + .byte 10 + .byte 13 + .byte 9 + .byte 6 + .byte 8 + .byte 12 + .byte 10 + .byte 2 + .byte 5 + .byte 1 + .byte -2 + .byte 0 + .byte 0 + .byte 6 + .byte 12 + .byte 1 + .byte 13 + .byte 2 + .byte 12 + .byte 12 + .byte 14 + .space 3 + .type ymtc_3D_slc_value, %object + .size ymtc_3D_slc_value, 10 +ymtc_3D_slc_value: + .byte 0 + .byte -8 + .byte 8 + .byte -16 + .byte -20 + .byte 24 + .byte -26 + .byte 40 + .byte -12 + .byte 56 + .space 2 + .type __func__.19744, %object + .size __func__.19744, 23 +__func__.19744: .ascii "flash_start_plane_read\000" .space 1 - .type __func__.19287, %object - .size __func__.19287, 26 -__func__.19287: + .type __func__.19630, %object + .size __func__.19630, 26 +__func__.19630: .ascii "flash_erase_duplane_block\000" .space 2 - .type __func__.19298, %object - .size __func__.19298, 21 -__func__.19298: + .type __func__.19641, %object + .size __func__.19641, 21 +__func__.19641: .ascii "flash_erase_block_en\000" .space 3 .type random_seed, %object @@ -29658,22 +31754,23 @@ random_seed: .short 28406 .short 17598 .short 28087 - .type __func__.20038, %object - .size __func__.20038, 13 -__func__.20038: + .type __func__.20451, %object + .size __func__.20451, 13 +__func__.20451: .ascii "buf_add_tail\000" .space 3 - .type __func__.20051, %object - .size __func__.20051, 10 -__func__.20051: + .type __func__.20464, %object + .size __func__.20464, 10 +__func__.20464: .ascii "buf_alloc\000" .space 2 - .type __func__.20065, %object - .size __func__.20065, 16 -__func__.20065: + .type __func__.20478, %object + .size __func__.20478, 16 +__func__.20478: .ascii "buf_remove_free\000" + .space 4 .type zftl_debug_proc_fops, %object - .size zftl_debug_proc_fops, 128 + .size zftl_debug_proc_fops, 160 zftl_debug_proc_fops: .word 0 .word seq_lseek @@ -29683,250 +31780,395 @@ zftl_debug_proc_fops: .word zftl_debug_proc_open .space 4 .word single_release - .space 64 - .type __func__.38317, %object - .size __func__.38317, 12 -__func__.38317: + .space 96 + .type __func__.38995, %object + .size __func__.38995, 12 +__func__.38995: .ascii "gc_add_sblk\000" - .type __func__.38411, %object - .size __func__.38411, 19 -__func__.38411: + .type __func__.39087, %object + .size __func__.39087, 19 +__func__.39087: .ascii "gc_write_completed\000" .space 1 - .type __func__.38960, %object - .size __func__.38960, 18 -__func__.38960: + .type __func__.39643, %object + .size __func__.39643, 18 +__func__.39643: .ascii "ftl_alloc_sys_blk\000" .space 2 - .type __func__.38970, %object - .size __func__.38970, 17 -__func__.38970: + .type __func__.39653, %object + .size __func__.39653, 17 +__func__.39653: .ascii "ftl_free_sys_blk\000" .space 3 - .type __func__.39109, %object - .size __func__.39109, 23 -__func__.39109: + .type __func__.39774, %object + .size __func__.39774, 23 +__func__.39774: .ascii "ftl_get_ppa_from_index\000" .space 1 - .type __func__.39149, %object - .size __func__.39149, 22 -__func__.39149: + .type __func__.39814, %object + .size __func__.39814, 22 +__func__.39814: .ascii "ftl_get_new_free_page\000" .space 2 - .type __func__.39160, %object - .size __func__.39160, 22 -__func__.39160: + .type __func__.39825, %object + .size __func__.39825, 22 +__func__.39825: .ascii "ftl_ext_alloc_new_blk\000" .space 2 - .type __func__.38467, %object - .size __func__.38467, 16 -__func__.38467: + .type __func__.39144, %object + .size __func__.39144, 16 +__func__.39144: .ascii "gc_free_src_blk\000" - .type __func__.38068, %object - .size __func__.38068, 14 -__func__.38068: + .type __func__.38739, %object + .size __func__.38739, 14 +__func__.38739: .ascii "ftl_write_buf\000" .space 2 - .type __func__.38113, %object - .size __func__.38113, 18 -__func__.38113: + .type __func__.38784, %object + .size __func__.38784, 18 +__func__.38784: .ascii "zftl_add_read_buf\000" .space 2 - .type __func__.38918, %object - .size __func__.38918, 15 -__func__.38918: + .type __func__.39601, %object + .size __func__.39601, 15 +__func__.39601: .ascii "ftl_alloc_sblk\000" .space 1 - .type __func__.39546, %object - .size __func__.39546, 17 -__func__.39546: + .type __func__.40219, %object + .size __func__.40219, 17 +__func__.40219: .ascii "pm_alloc_new_blk\000" .space 3 - .type __func__.39574, %object - .size __func__.39574, 21 -__func__.39574: + .type __func__.40247, %object + .size __func__.40247, 21 +__func__.40247: .ascii "pm_select_ram_region\000" .space 3 - .type __func__.19759, %object - .size __func__.19759, 20 -__func__.19759: + .type __func__.20172, %object + .size __func__.20172, 20 +__func__.20172: .ascii "flash_die_info_init\000" - .type __func__.38003, %object - .size __func__.38003, 17 -__func__.38003: + .type __func__.38671, %object + .size __func__.38671, 17 +__func__.38671: .ascii "lpa_rebuild_hash\000" .space 3 - .type __func__.39506, %object - .size __func__.39506, 13 -__func__.39506: + .type __func__.39535, %object + .size __func__.39535, 20 +__func__.39535: + .ascii "zftl_sblk_list_init\000" + .type __func__.40179, %object + .size __func__.40179, 13 +__func__.40179: .ascii "pm_free_sblk\000" .space 3 - .type __func__.20089, %object - .size __func__.20089, 21 -__func__.20089: + .type __func__.20514, %object + .size __func__.20514, 21 +__func__.20514: .ascii "flash_info_data_init\000" .space 3 - .type __func__.19229, %object - .size __func__.19229, 19 -__func__.19229: + .type samsung_14nm_slc_rr, %object + .size samsung_14nm_slc_rr, 26 +samsung_14nm_slc_rr: + .byte 0 + .byte 10 + .byte -10 + .byte 20 + .byte -20 + .byte 30 + .byte -30 + .byte 40 + .byte -40 + .byte 50 + .byte -50 + .byte 60 + .byte -60 + .byte -70 + .byte -80 + .byte -90 + .byte -100 + .byte -110 + .byte -120 + .byte -9 + .byte 70 + .byte 80 + .byte 90 + .byte -125 + .byte -115 + .byte 100 + .space 2 + .type samsung_14nm_mlc_rr, %object + .size samsung_14nm_mlc_rr, 104 +samsung_14nm_mlc_rr: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -4 + .byte 3 + .byte -4 + .byte -6 + .byte 6 + .byte 0 + .byte 6 + .byte -10 + .byte -10 + .byte 4 + .byte -10 + .byte 16 + .byte 12 + .byte -4 + .byte 12 + .byte 8 + .byte -16 + .byte 10 + .byte -16 + .byte 24 + .byte 18 + .byte -14 + .byte 18 + .byte -4 + .byte -22 + .byte -16 + .byte -22 + .byte -8 + .byte 24 + .byte -9 + .byte 24 + .byte 8 + .byte -28 + .byte -4 + .byte -28 + .byte 16 + .byte 30 + .byte 10 + .byte 30 + .byte 10 + .byte -34 + .byte 6 + .byte -34 + .byte 0 + .byte 36 + .byte -8 + .byte 36 + .byte -8 + .byte -40 + .byte -2 + .byte -40 + .byte -20 + .byte -46 + .byte -4 + .byte -46 + .byte -30 + .byte 3 + .byte 0 + .byte 3 + .byte -3 + .byte -2 + .byte -4 + .byte -2 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -10 + .byte -6 + .byte -8 + .byte -6 + .byte -14 + .byte -9 + .byte -8 + .byte -9 + .byte -18 + .byte -52 + .byte 22 + .byte -52 + .byte 10 + .byte 42 + .byte 4 + .byte 42 + .byte 4 + .byte 48 + .byte -9 + .byte 48 + .byte 4 + .byte -58 + .byte 12 + .byte -58 + .byte 0 + .byte -64 + .byte -24 + .byte -64 + .byte -6 + .byte 9 + .byte 18 + .byte 9 + .byte 8 + .type __func__.19553, %object + .size __func__.19553, 19 +__func__.19553: .ascii "flash_read_page_en\000" .space 1 - .type __func__.19336, %object - .size __func__.19336, 26 -__func__.19336: + .type __func__.19679, %object + .size __func__.19679, 26 +__func__.19679: .ascii "flash_start_tlc_page_prog\000" .space 2 - .type __func__.19347, %object - .size __func__.19347, 29 -__func__.19347: + .type __func__.19690, %object + .size __func__.19690, 29 +__func__.19690: .ascii "flash_start_3d_mlc_page_prog\000" .space 3 - .type __func__.19365, %object - .size __func__.19365, 22 -__func__.19365: + .type __func__.19708, %object + .size __func__.19708, 22 +__func__.19708: .ascii "flash_start_page_prog\000" .space 2 - .type __func__.19389, %object - .size __func__.19389, 31 -__func__.19389: + .type __func__.19732, %object + .size __func__.19732, 31 +__func__.19732: .ascii "flash_complete_plane_page_read\000" .space 1 - .type __func__.19414, %object - .size __func__.19414, 25 -__func__.19414: + .type __func__.19757, %object + .size __func__.19757, 25 +__func__.19757: .ascii "flash_complete_page_read\000" .space 3 - .type __func__.39345, %object - .size __func__.39345, 31 -__func__.39345: + .type __func__.40012, %object + .size __func__.40012, 31 +__func__.40012: .ascii "queue_wait_first_req_completed\000" .space 1 - .type __func__.39399, %object - .size __func__.39399, 15 -__func__.39399: + .type __func__.40066, %object + .size __func__.40066, 15 +__func__.40066: .ascii "sblk_prog_page\000" .space 1 - .type __func__.39426, %object - .size __func__.39426, 15 -__func__.39426: + .type __func__.40093, %object + .size __func__.40093, 15 +__func__.40093: .ascii "sblk_read_page\000" .space 1 - .type __func__.19271, %object - .size __func__.19271, 19 -__func__.19271: - .ascii "flash_prog_page_en\000" - .space 1 - .type __func__.39223, %object - .size __func__.39223, 14 -__func__.39223: - .ascii "ftl_prog_page\000" - .space 2 - .type __func__.38886, %object - .size __func__.38886, 15 -__func__.38886: - .ascii "ftl_info_flush\000" - .space 1 - .type __func__.39185, %object - .size __func__.39185, 19 -__func__.39185: - .ascii "ftl_ext_info_flush\000" - .space 1 - .type __func__.39197, %object - .size __func__.39197, 18 -__func__.39197: - .ascii "ftl_ext_info_init\000" - .space 2 - .type __func__.39076, %object - .size __func__.39076, 23 -__func__.39076: - .ascii "ftl_open_sblk_recovery\000" - .space 1 - .type __func__.39556, %object - .size __func__.39556, 14 -__func__.39556: - .ascii "pm_write_page\000" - .space 2 - .type __func__.20111, %object - .size __func__.20111, 17 -__func__.20111: - .ascii "flash_info_flush\000" - .space 3 - .type __func__.20078, %object - .size __func__.20078, 20 -__func__.20078: - .ascii "flash_info_blk_init\000" - .type __func__.19814, %object - .size __func__.19814, 16 -__func__.19814: - .ascii "nand_flash_init\000" - .type __func__.39052, %object - .size __func__.39052, 16 -__func__.39052: - .ascii "ftl_sysblk_dump\000" - .type __func__.39490, %object - .size __func__.39490, 16 -__func__.39490: - .ascii "load_l2p_region\000" - .type __func__.39530, %object - .size __func__.39530, 6 -__func__.39530: - .ascii "pm_gc\000" - .space 2 - .type __func__.38398, %object - .size __func__.38398, 22 -__func__.38398: - .ascii "gc_update_l2p_map_new\000" - .space 2 - .type __func__.38511, %object - .size __func__.38511, 16 -__func__.38511: - .ascii "gc_scan_src_blk\000" - .type __func__.38569, %object - .size __func__.38569, 20 -__func__.38569: - .ascii "gc_scan_static_data\000" - .type __func__.38632, %object - .size __func__.38632, 18 -__func__.38632: - .ascii "gc_block_vpn_scan\000" - .space 2 - .type __func__.39028, %object - .size __func__.39028, 14 -__func__.39028: - .ascii "ftl_sblk_dump\000" - .space 2 - .type __func__.38146, %object - .size __func__.38146, 10 -__func__.38146: - .ascii "zftl_read\000" - .space 2 - .type __func__.38364, %object - .size __func__.38364, 21 -__func__.38364: + .type __func__.39042, %object + .size __func__.39042, 21 +__func__.39042: .ascii "gc_check_data_one_wl\000" .space 3 - .type __func__.39130, %object - .size __func__.39130, 19 -__func__.39130: + .type __func__.19614, %object + .size __func__.19614, 19 +__func__.19614: + .ascii "flash_prog_page_en\000" + .space 1 + .type __func__.39889, %object + .size __func__.39889, 14 +__func__.39889: + .ascii "ftl_prog_page\000" + .space 2 + .type __func__.39569, %object + .size __func__.39569, 15 +__func__.39569: + .ascii "ftl_info_flush\000" + .space 1 + .type __func__.39851, %object + .size __func__.39851, 19 +__func__.39851: + .ascii "ftl_ext_info_flush\000" + .space 1 + .type __func__.39863, %object + .size __func__.39863, 18 +__func__.39863: + .ascii "ftl_ext_info_init\000" + .space 2 + .type __func__.40229, %object + .size __func__.40229, 14 +__func__.40229: + .ascii "pm_write_page\000" + .space 2 + .type __func__.20536, %object + .size __func__.20536, 17 +__func__.20536: + .ascii "flash_info_flush\000" + .space 3 + .type __func__.20499, %object + .size __func__.20499, 20 +__func__.20499: + .ascii "flash_info_blk_init\000" + .type __func__.20227, %object + .size __func__.20227, 16 +__func__.20227: + .ascii "nand_flash_init\000" + .type __func__.39716, %object + .size __func__.39716, 16 +__func__.39716: + .ascii "ftl_sysblk_dump\000" + .type __func__.39741, %object + .size __func__.39741, 23 +__func__.39741: + .ascii "ftl_open_sblk_recovery\000" + .space 1 + .type __func__.40163, %object + .size __func__.40163, 16 +__func__.40163: + .ascii "load_l2p_region\000" + .type __func__.40203, %object + .size __func__.40203, 6 +__func__.40203: + .ascii "pm_gc\000" + .space 2 + .type __func__.38985, %object + .size __func__.38985, 12 +__func__.38985: + .ascii "gc_recovery\000" + .type __func__.39074, %object + .size __func__.39074, 22 +__func__.39074: + .ascii "gc_update_l2p_map_new\000" + .space 2 + .type __func__.39188, %object + .size __func__.39188, 16 +__func__.39188: + .ascii "gc_scan_src_blk\000" + .type __func__.39249, %object + .size __func__.39249, 20 +__func__.39249: + .ascii "gc_scan_static_data\000" + .type __func__.39312, %object + .size __func__.39312, 18 +__func__.39312: + .ascii "gc_block_vpn_scan\000" + .space 2 + .type __func__.39692, %object + .size __func__.39692, 14 +__func__.39692: + .ascii "ftl_sblk_dump\000" + .space 2 + .type __func__.38817, %object + .size __func__.38817, 10 +__func__.38817: + .ascii "zftl_read\000" + .space 2 + .type __func__.39795, %object + .size __func__.39795, 19 +__func__.39795: .ascii "ftl_update_l2p_map\000" .space 1 - .type __func__.38050, %object - .size __func__.38050, 17 -__func__.38050: + .type __func__.38721, %object + .size __func__.38721, 17 +__func__.38721: .ascii "ftl_write_commit\000" .space 3 - .type __func__.38440, %object - .size __func__.38440, 16 -__func__.38440: + .type __func__.39117, %object + .size __func__.39117, 16 +__func__.39117: .ascii "gc_do_copy_back\000" - .type __func__.38660, %object - .size __func__.38660, 11 -__func__.38660: + .type __func__.39340, %object + .size __func__.39340, 11 +__func__.39340: .ascii "zftl_do_gc\000" .space 1 - .type __func__.38177, %object - .size __func__.38177, 13 -__func__.38177: + .type __func__.38848, %object + .size __func__.38848, 13 +__func__.38848: .ascii "_ftl_discard\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -29934,7 +32176,7 @@ __func__.38177: .LC1: .ascii "%s\012\000" .LC2: - .ascii "FTL version: 6.0.20 20200218\000" + .ascii "FTL version: 6.0.23 20201130\000" .LC3: .ascii "zftl_debug:0x%x\012\000" .LC4: @@ -29964,693 +32206,679 @@ __func__.38177: .LC16: .ascii "idb ecc: %x\012\000" .LC17: - .ascii "g_flash_slc_mode: %x\012\000" -.LC18: .ascii "OptMode: %x\012\000" -.LC19: +.LC18: .ascii "g_nand_max_die: %x\012\000" -.LC20: +.LC19: .ascii "Cache read enable: %x\012\000" -.LC21: +.LC20: .ascii "Cache random read enable: %x\012\000" -.LC22: +.LC21: .ascii "Cache prog enable: %x\012\000" -.LC23: +.LC22: .ascii "multi read enable: %x\012\000" -.LC24: +.LC23: .ascii "multi prog enable: %x\012\000" -.LC25: +.LC24: .ascii "interleave enable: %x\012\000" -.LC26: +.LC25: .ascii "read retry enable: %x\012\000" -.LC27: +.LC26: .ascii "randomizer enable: %x\012\000" -.LC28: +.LC27: .ascii "SDR enable: %x\012\000" -.LC29: +.LC28: .ascii "ONFI enable: %x\012\000" -.LC30: +.LC29: .ascii "TOGGLE enable: %x\012\000" -.LC31: +.LC30: .ascii "g_flash_slc_mode: %x %x\012\000" -.LC32: +.LC31: .ascii "MultiPlaneProgCmd: %x %x\012\000" -.LC33: +.LC32: .ascii "MultiPlaneReadCmd: %x %x\012\000" -.LC34: +.LC33: .ascii "g_flash_toggle_mode_en: %x\012\000" -.LC35: +.LC34: .ascii "...%s enter... %p\012\000" -.LC36: +.LC35: .ascii "0:%x %x %x %x %x\012\000" -.LC37: +.LC36: .ascii "g_nandc_ver...%d\012\000" -.LC38: +.LC37: .ascii "nand sdr mode %x\012\000" -.LC39: +.LC38: .ascii "nand ddr mode %x\012\000" -.LC40: +.LC39: .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" -.LC41: +.LC40: .ascii "otp:%x %x %x %x\012\000" -.LC42: +.LC41: .ascii "bad block test:%x %x\012\000" -.LC43: +.LC42: .ascii "flash_erase_duplane_block %x %x %x\012\000" -.LC44: +.LC43: .ascii "flash_erase_duplane_block pageadd = %x status = %x\012" .ascii "\000" -.LC45: +.LC44: .ascii "flash_erase_block %x %x %x\012\000" -.LC46: +.LC45: .ascii "flash_erase_block %d block = %x status = %x\012\000" -.LC47: +.LC46: .ascii "erase done: %x\012\000" +.LC47: + .ascii "sblk_queue_head = %d\012\000" .LC48: - .ascii "flash_mask_bad_block %d %d\012\000" + .ascii "sblk_read_completed_queue_head = %d\012\000" .LC49: - .ascii "zftl_debug\000" + .ascii "sblk_gc_write_completed_queue_head = %d\012\000" .LC50: - .ascii "FLASH ID: %x %x %x %x %x %x\012\000" + .ascii "sblk_write_completed_queue_head = %d\012\000" .LC51: - .ascii "density: %d MB\012\000" + .ascii "p_free_buf_head = %d\012\000" .LC52: - .ascii "device density: %d MB\012\000" + .ascii "free_buf_count = %d\012\000" .LC53: - .ascii "FTL INFO:\012\000" + .ascii "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_st" + .ascii "ate=%d, op_status = %d lpa=%x, ppa=%x\012\000" .LC54: - .ascii "max_lpn = 0x%x\012\000" + .ascii "flash_mask_bad_block %d %d\012\000" .LC55: - .ascii "density = 0x%x\012\000" + .ascii "zftl_debug\000" .LC56: - .ascii "slc vpn = 0x%x\012\000" + .ascii "FLASH ID: %x %x %x %x %x %x\012\000" .LC57: - .ascii "xlc vpn = 0x%x\012\000" + .ascii "density: %d MB\012\000" .LC58: - .ascii "free slc blk = 0x%x\012\000" + .ascii "device density: %d MB\012\000" .LC59: - .ascii "free xlc blk = 0x%x\012\000" + .ascii "FTL INFO:\012\000" .LC60: - .ascii "free mix blk = 0x%x\012\000" + .ascii "max_lpn = 0x%x\012\000" .LC61: - .ascii "slc data blk = 0x%x\012\000" + .ascii "density = 0x%x\012\000" .LC62: - .ascii "slc cache blk = 0x%x\012\000" + .ascii "slc vpn = 0x%x\012\000" .LC63: - .ascii "xlc data blk = 0x%x\012\000" + .ascii "xlc vpn = 0x%x\012\000" .LC64: - .ascii "free buf = %d, %d, %d\012\000" + .ascii "free slc blk = 0x%x\012\000" .LC65: - .ascii "bad blk = %d %d\012\000" + .ascii "free xlc blk = 0x%x\012\000" .LC66: - .ascii "TBW = %d MB\012\000" + .ascii "free mix blk = 0x%x\012\000" .LC67: - .ascii "TBR = %d MB\012\000" + .ascii "slc data blk = 0x%x\012\000" .LC68: - .ascii "POC = %d\012\000" + .ascii "slc cache blk = 0x%x\012\000" .LC69: - .ascii "PLC = %d\012\000" + .ascii "xlc data blk = 0x%x\012\000" .LC70: - .ascii "sys run time = %d S\012\000" + .ascii "free buf = %d, %d, %d\012\000" .LC71: - .ascii "slc mode = %d\012\000" + .ascii "bad blk = %d %d\012\000" .LC72: - .ascii "prog err = %d\012\000" + .ascii "TBW = %d MB\012\000" .LC73: - .ascii "read err = %d\012\000" + .ascii "TBR = %d MB\012\000" .LC74: - .ascii "GC XLC page = %d\012\000" + .ascii "POC = %d\012\000" .LC75: - .ascii "GC SLC page = %d\012\000" + .ascii "PLC = %d\012\000" .LC76: - .ascii "discard page = 0x%x\012\000" + .ascii "sys run time = %d S\012\000" .LC77: - .ascii "version = %d\012\000" + .ascii "slc mode = %d\012\000" .LC78: - .ascii "acblk = 0x%x %d %d\012\000" + .ascii "prog err = %d\012\000" .LC79: - .ascii "tmblk = 0x%x %d %d\012\000" + .ascii "read err = %d\012\000" .LC80: - .ascii "gcblk = 0x%x %d %d\012\000" + .ascii "GC XLC page = %d\012\000" .LC81: - .ascii "slc ec = %d, %d, %d, %d, %d\012\000" + .ascii "GC SLC page = %d\012\000" .LC82: - .ascii "xlc ec = %d, %d, %d, %d, %d\012\000" + .ascii "discard page = 0x%x\012\000" .LC83: - .ascii "gc free blk th = %d\012\000" + .ascii "version = %d\012\000" .LC84: - .ascii "gc vpn th = %d %d %d %d %d\012\000" + .ascii "acblk = 0x%x %d %d\012\000" .LC85: - .ascii "swl blk = %x %x %x %x\012\000" + .ascii "tmblk = 0x%x %d %d\012\000" .LC86: - .ascii "rf info = %x %x %x %x %x\012\000" + .ascii "gcblk = 0x%x %d %d\012\000" .LC87: - .ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\012\000" + .ascii "slc ec = %d, %d, %d, %d, %d\012\000" .LC88: - .ascii "gc_add_sblk = %d, %d, %d\012\000" + .ascii "xlc ec = %d, %d, %d, %d, %d\012\000" .LC89: - .ascii "gc_add_sblk = %d, %d, %d,last update:%d, %d\012\000" + .ascii "gc free blk th = %d\012\000" .LC90: - .ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d\012\000" + .ascii "gc vpn th = %d %d %d %d %d\012\000" .LC91: - .ascii "gc_mark_bad_ppa %d %x %x\012\000" + .ascii "swl blk = %x %x %x %x\012\000" .LC92: - .ascii "status: %x, ppa: %x\012\000" + .ascii "rf info = %x %x %x %x %x\012\000" .LC93: - .ascii "gc_write_completed: %x %x %d %x\012\000" + .ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\012\000" .LC94: + .ascii "gc_add_sblk = %d, %d, %d\012\000" +.LC95: + .ascii "gc_add_sblk = %d, %d, %d,last update:%d, %d\012\000" +.LC96: + .ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d\012\000" +.LC97: + .ascii "gc_mark_bad_ppa %d %x %x\012\000" +.LC98: + .ascii "status: %x, ppa: %x\012\000" +.LC99: .ascii "zftl_get_gc_node cache = %x index = %d vpn = %x\012" .ascii "\000" -.LC95: +.LC100: .ascii "gc_search_src_blk mode = %x, src mode = %x, count= " .ascii "%d %d\012\000" -.LC96: +.LC101: .ascii "%d gc_free_temp_buf buf id= %x\012\000" -.LC97: +.LC102: .ascii "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\012" .ascii "\000" -.LC98: - .ascii "swl_tlc_free_mini_ec_blk alloc sblk %x\012\000" -.LC99: - .ascii "zftl_get_free_sblk %x %d, %p %d %d\012\000" -.LC100: - .ascii "zftl_gc_get_free_sblk %x %x %x, %d %d %d\012\000" -.LC101: - .ascii "swl_slc_free_mini_ec_blk alloc sblk %x\012\000" -.LC102: - .ascii "list count:%p %d\012\000" .LC103: - .ascii "%d: node:%x %x %x %x, %d %d %d %d %d\012\000" + .ascii "swl_tlc_free_mini_ec_blk alloc sblk %x\012\000" .LC104: - .ascii "ftl_vpn_decrement %x = %d, %d\012\000" + .ascii "zftl_get_free_sblk %x %d, %p %d %d\012\000" .LC105: - .ascii "mask bad block:cs %x %x block: %x %x\012\000" + .ascii "zftl_gc_get_free_sblk %x %x %x, %d %d %d\012\000" .LC106: - .ascii "gc_free_bad_sblk 0x%x\012\000" + .ascii "swl_slc_free_mini_ec_blk alloc sblk %x\012\000" .LC107: - .ascii "swl_slc_free_mini_ec_blk sblk %x\012\000" + .ascii "list count:%p %d\012\000" .LC108: - .ascii "gc_free_src_blk = %x, vpn = %d\012\000" + .ascii "%d: node:%x %x %x %x, %d %d %d %d %d\012\000" .LC109: - .ascii "gc_free_src_blk %x, %d\012\000" + .ascii "ftl_vpn_decrement %x = %d, %d\012\000" .LC110: + .ascii "mask bad block:cs %x %x block: %x %x\012\000" +.LC111: + .ascii "gc_free_bad_sblk 0x%x\012\000" +.LC112: + .ascii "swl_slc_free_mini_ec_blk sblk %x\012\000" +.LC113: + .ascii "gc_free_src_blk = %x, vpn = %d\012\000" +.LC114: + .ascii "gc_free_src_blk %x, %d\012\000" +.LC115: .ascii "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk" .ascii ":s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\012\000" -.LC111: +.LC116: .ascii "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\012\000" -.LC112: +.LC117: .ascii "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\012\000" -.LC113: +.LC118: .ascii "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\012\000" -.LC114: +.LC119: .ascii "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:" .ascii "%d free_th: %d\012\000" -.LC115: - .ascii "swl : %x %x %x %x %x %x\012\000" -.LC116: - .ascii "ftl prog error =%x, lpa = %x, ppa= %x\012\000" -.LC117: - .ascii "ftl re prog: lpa = %x, ppa= %x\012\000" -.LC118: - .ascii "alloc sblk %x %d\012\000" -.LC119: - .ascii "dump_sblk_queue: %d\012\000" .LC120: - .ascii "buf id= %d state = %d ppa = %x\012\000" + .ascii "swl : %x %x %x %x %x %x\012\000" .LC121: - .ascii "blk %x is bad block\012\000" + .ascii "ftl prog error =%x, lpa = %x, ppa= %x\012\000" .LC122: - .ascii "pm_alloc_new_blk: %x %x %x %x\012\000" + .ascii "ftl re prog: lpa = %x, ppa= %x\012\000" .LC123: - .ascii "%s %d %d\012\000" + .ascii "alloc sblk %x %d\012\000" .LC124: + .ascii "dump_sblk_queue: %d\012\000" +.LC125: + .ascii "buf id= %d state = %d ppa = %x\012\000" +.LC126: + .ascii "blk %x is bad block\012\000" +.LC127: + .ascii "pm_alloc_new_blk: %x %x %x %x\012\000" +.LC128: + .ascii "%s %d %d\012\000" +.LC129: .ascii "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d" .ascii " ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC125: +.LC130: .ascii "gc_static_wearleveling: min slc blk: %x,sec=%d,xec " .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC126: +.LC131: .ascii "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec " .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC127: +.LC132: .ascii "gc_static_wearleveling: max slc blk: %x,sec=%d,xec " .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC128: +.LC133: .ascii "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec " .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC129: +.LC134: .ascii "gc_static_wearleveling: slc blk: %x, tlc blk: %d av" .ascii "g slc ec: %d, avg tlc ec: %d \012\000" -.LC130: +.LC135: .ascii "gc_static_wearleveling: min slc ec: %x, min tlc ec:" .ascii " %d max slc ec: %d, max tlc ec: %d; %d %d\012\000" -.LC131: - .ascii "swl add tlc gc = %x, %d, %d, %d, %d, %d\012\000" -.LC132: - .ascii "swl add slc gc = %x, %d, %d, %d, %d, %d\012\000" -.LC133: - .ascii "free blk vpn error: %x %x\012\000" -.LC134: - .ascii "GC PM block %x %x %x %d\012\000" -.LC135: - .ascii "ftl_free_no_use_map_blk %x %x %x %d\012\000" .LC136: - .ascii "...%d @ %s\012\000" + .ascii "swl add tlc gc = %x, %d, %d, %d, %d, %d\012\000" .LC137: - .ascii "rk_ftl_de_init %x\012\000" + .ascii "swl add slc gc = %x, %d, %d, %d, %d, %d\012\000" .LC138: - .ascii "\0013\000" + .ascii "free blk vpn error: %x %x\012\000" .LC139: - .ascii "otp error! %d\000" + .ascii "GC PM block %x %x %x %d\012\000" .LC140: - .ascii "rr\000" + .ascii "ftl_free_no_use_map_blk %x %x %x %d\012\000" .LC141: - .ascii "flash_abort_clear = %d\012\000" + .ascii "...%d @ %s\012\000" .LC142: - .ascii "%d mtrans_cnt = %d page_num = %d\012\000" + .ascii "rk_ftl_de_init %x\012\000" .LC143: - .ascii "nandc:\000" + .ascii "\0013\000" .LC144: - .ascii "%d flReg.d32=%x %x\012\000" + .ascii "otp error! %d\000" .LC145: - .ascii "nandc_xfer_done read error %x\012\000" + .ascii "rr\000" .LC146: - .ascii "dqs data abort %x\012\000" + .ascii "flash_abort_clear = %d\012\000" .LC147: - .ascii "dqs data timeout %x\012\000" + .ascii "%d mtrans_cnt = %d page_num = %d\012\000" .LC148: - .ascii "xfer error %x\012\000" + .ascii "%d flReg.d32=%x %x\012\000" .LC149: - .ascii "flash_read_page %x %x %x\012\000" + .ascii "nandc:\000" .LC150: - .ascii "MT %d row=%x,last status %d,status = %d\012\000" + .ascii "nandc_xfer_done read error %x\012\000" .LC151: - .ascii "MT RR %d row=%x,count %d,status=%d\012\000" + .ascii "dqs data abort %x\012\000" .LC152: - .ascii "toshiba SRR %d row=%x, status=%d\012\000" + .ascii "dqs data timeout %x\012\000" .LC153: - .ascii "toshiba TRR %d row=%x, status=%d\012\000" + .ascii "xfer error %x\012\000" .LC154: - .ascii "toshiba RR %d row=%x,count %d,status=%d\012\000" + .ascii "MT %d row=%x,last status %d,status = %d\012\000" .LC155: - .ascii "hynix RR %d row=%x, count %d, status=%d\012\000" + .ascii "MT RR %d row=%x,count %d,status=%d\012\000" .LC156: - .ascii "%d flash_ddr_tuning_read %x ecc=%d\012\000" + .ascii "toshiba SRR %d row=%x, status=%d\012\000" .LC157: - .ascii "sync para %d\012\000" + .ascii "toshiba TRR %d row=%x, status=%d\012\000" .LC158: - .ascii "DDR mode Read error %x %x\012\000" + .ascii "toshiba RR %d row=%x,count %d,status=%d\012\000" .LC159: - .ascii "SDR mode Read %x %x ecc:%x\012\000" + .ascii "YMTC RR %d row=%x,count %d,status=%d\012\000" .LC160: - .ascii "flash_read_page_en %x %x %x %x\012\000" + .ascii "samsung SRR %d row=%x, status=%d\012\000" .LC161: - .ascii "flash_read_page_en %x %x error_ecc %d %d\012\000" + .ascii "samsung TRR %d row=%x, status=%d\012\000" .LC162: - .ascii "flash_get_last_written_page: %x %x %x\012\000" + .ascii "samsung RR %d row=%x,count %d,status=%d\012\000" .LC163: - .ascii "read page: %x %x %x %x\012\000" + .ascii "hynix RR %d row=%x, count %d, status=%d\012\000" .LC164: - .ascii "flash_prog_page %x %x %x\012\000" + .ascii "%d flash_ddr_tuning_read %x ecc=%d\012\000" .LC165: - .ascii "flash_prog_page page_addr = %x status = %x\012\000" + .ascii "sync para %d\012\000" .LC166: - .ascii "sblk_3d_tlc_dump_prog wl_addr= %x ppa = %x ppa = %x" - .ascii "\012\000" + .ascii "DDR mode Read error %x %x\012\000" .LC167: + .ascii "SDR mode Read %x %x ecc:%x\012\000" +.LC168: + .ascii "flash_read_page_en %x %x %x %x\012\000" +.LC169: + .ascii "flash_read_page_en %x %x error_ecc %d %d\012\000" +.LC170: + .ascii "flash_get_last_written_page: %x %x %x\012\000" +.LC171: + .ascii "read page: %x %x %x %x\012\000" +.LC172: + .ascii "flash_prog_page %x %x %x\012\000" +.LC173: + .ascii "flash_prog_page page_addr = %x status = %x\012\000" +.LC174: + .ascii "ymtc_flash_tlc_page_prog page_addr = %x status = %x" + .ascii "\012\000" +.LC175: .ascii "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\012" .ascii "\000" -.LC168: +.LC176: .ascii "flash_complete_page_read %x %x error_ecc %d %d\012\000" -.LC169: +.LC177: .ascii "read: %x %x %x %x\012\000" -.LC170: +.LC178: .ascii "0set buf %d,status = %x, ppa = %x lun state = %d\012" .ascii "\000" -.LC171: +.LC179: .ascii "prog end %x %x error_ecc %d %d\012\000" -.LC172: +.LC180: .ascii "1set buf %d,status = %x, ppa = %x lun state = %d\012" .ascii "\000" -.LC173: - .ascii "dp prog end %x %x error_ecc %d %d\012\000" -.LC174: - .ascii "sblk_prog_page ppa = %x, count = %d\012\000" -.LC175: - .ascii "flash_prog_page_en:%x %x %x\012\000" -.LC176: - .ascii "w d:\000" -.LC177: - .ascii "w s:\000" -.LC178: - .ascii "spare\000" -.LC179: - .ascii "data\000" -.LC180: - .ascii "write error: %x\012\000" .LC181: - .ascii "g_ftl_info_blk blk = %x, page = %x version = %d\012" - .ascii "\000" + .ascii "dp prog end %x %x error_ecc %d %d\012\000" .LC182: - .ascii "%d %x @%d %x\012\000" + .ascii "sblk_prog_page ppa = %x, count = %d\012\000" .LC183: - .ascii "ftl_info_blk_init %d %d %x\012\000" -.LC184: - .ascii "ftl info hash %x error\012\000" -.LC185: - .ascii "ink flag: %x\012\000" -.LC186: - .ascii "%s %d %d %x %x\012\000" -.LC187: - .ascii "ext info hash %x error\012\000" -.LC188: - .ascii "%s %x %x %x\012\000" -.LC189: - .ascii "saved_active_page = %x\012\000" -.LC190: - .ascii "saved_active_plane = %x\012\000" -.LC191: - .ascii "sblk = %x\012\000" -.LC192: - .ascii "phy_blk = %x %x\012\000" -.LC193: - .ascii "num_planes = %x\012\000" -.LC194: - .ascii "sblk = %x, vpn0 = %d, vpn1 = %d\012\000" -.LC195: - .ascii "dump_write_lpa = %x %x %x %x\012\000" -.LC196: - .ascii "dump write new ppa = %x, last ppa = %x lpa = %x\012" - .ascii "\000" -.LC197: - .ascii "dump write = %x %x %x\012\000" -.LC198: - .ascii "dump write hash update = %x %x %x\012\000" -.LC199: - .ascii "pm_write_page write error: %x\012\000" -.LC200: - .ascii "ftl_sblk_dump_write = %x %d %d %d %d\012\000" -.LC201: - .ascii "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x" - .ascii " %x %x, spare: %x %x %x %x\012\000" -.LC202: - .ascii "ftl_sblk_dump_write2 = %x %d %d %d\012\000" -.LC203: - .ascii "ftl_sblk_dump_write = %x %x\012\000" -.LC204: - .ascii "ftl_sblk_dump_write done = %x\012\000" -.LC205: - .ascii "ftl_ink_check_sblk = %x %d %d\012\000" -.LC206: - .ascii "ftl_ink_check_sblk = %x %d %d end\012\000" -.LC207: - .ascii "finfo:\000" -.LC208: - .ascii "flash_info_flush id = %x, page = %x\012\000" -.LC209: - .ascii "sys_info_flush error:%x\012\000" -.LC210: - .ascii "...%d @ %s %d %p\012\000" -.LC211: - .ascii "no sys info %x\012\000" -.LC212: - .ascii "l2p:\000" -.LC213: - .ascii "free_buf_count: %d\012\000" -.LC214: - .ascii "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\012\000" -.LC215: - .ascii "ftl_ext_info_blk blk:0x%x, page:0x%x\012\000" -.LC216: - .ascii "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page" - .ascii "_index:0x%x\012\000" -.LC217: - .ascii "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, pag" - .ascii "e_index:0x%x\012\000" -.LC218: - .ascii "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page" - .ascii "_index:0x%x\012\000" -.LC219: - .ascii "lpa:\000" -.LC220: - .ascii "vpn:\000" -.LC221: - .ascii "sblk:\000" -.LC222: - .ascii "lpa_hash:\000" -.LC223: - .ascii "lpa_hash_index:\000" -.LC224: - .ascii "%s w error lpn = %x, max ppa = %d\012\000" -.LC225: - .ascii "region_id = %d, pm_max_region = %d\012\000" -.LC226: - .ascii "load_l2p_region no ppa = %x , %x, all setting 0xff." - .ascii "...\012\000" -.LC227: - .ascii "load_l2p_region = %x,%x,%x, %x\012\000" -.LC228: - .ascii "pm_ppa:\000" -.LC229: - .ascii "data:\000" -.LC230: - .ascii "spare:\000" -.LC231: - .ascii "pm_init posr %x %x %x\012\000" -.LC232: - .ascii "pm_init recovery %x %x %x\012\000" -.LC233: - .ascii "pm_init hash %x error\012\000" -.LC234: - .ascii "pm_log2phys lpn = %d, max lpn = %d\012\000" -.LC235: - .ascii "ppa = %x, status = %x, data:%x %x %x %x, spare: %x " - .ascii "%x %x %x\012\000" -.LC236: - .ascii "ppa = %x, status = %x, %x %x spare: %x %x %x %x\012" - .ascii "\000" -.LC237: - .ascii "gc_recovery: %x vpn = %x\012\000" -.LC238: - .ascii "_c_user_data_density := %d\012\000" -.LC239: - .ascii "_c_totle_phy_density := %d\012\000" -.LC240: - .ascii "_c_totle_log_page := %d\012\000" -.LC241: - .ascii "_c_totle_data_density := %d\012\000" -.LC242: - .ascii "_c_ftl_pm_page_num := %d\012\000" -.LC243: - .ascii "_c_ftl_byte_pre_page := %d\012\000" -.LC244: - .ascii "_c_max_pm_sblk := %d\012\000" -.LC245: - .ascii "_min_slc_super_block := %d\012\000" -.LC246: - .ascii "_max_xlc_super_block := %d\012\000" -.LC247: - .ascii "gp_ftl_ext_info %p %p %p\012\000" -.LC248: - .ascii "flash info size: %d %d %d\012\000" -.LC249: - .ascii "ftl_init %x\012\000" -.LC250: - .ascii "gc_update_l2p_map_new sblk %x\012\000" -.LC251: - .ascii "gc_update_l2p_map_new: %x %x %x\012\000" -.LC252: - .ascii "lpa: %x %x %x\012\000" -.LC253: - .ascii "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\012" - .ascii "\000" -.LC254: - .ascii "gc_scan_src_blk = %x, vpn = %d\012\000" -.LC255: - .ascii "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\012\000" -.LC256: - .ascii "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:" - .ascii "%d\012\000" -.LC257: - .ascii "ftl_sblk_dump = %x %d %d %d %d\012\000" -.LC258: - .ascii "ftl_sblk_dump = %x %x %x %x\012\000" -.LC259: - .ascii "page_addr = %x, lpa=%x vpn = %d\012\000" -.LC260: - .ascii "index= %x, lpa=%x\012\000" -.LC261: - .ascii "block = %x, vpn=%x check vpn = %d\012\000" -.LC262: - .ascii "ftl_read %x %x %x\012\000" -.LC263: - .ascii "ftl_read refresh =%x, lpa = %x, ppa= %x\012\000" -.LC264: - .ascii "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %" - .ascii "x %x %x\012\000" -.LC265: - .ascii "zftl debug cmd: %s\012\000" -.LC266: - .ascii "cmd:\000" -.LC267: - .ascii "dumpl2p\000" -.LC268: - .ascii "pm l2p:\000" -.LC269: - .ascii "pm blk:\000" -.LC270: - .ascii "dumppm:\000" -.LC271: - .ascii "p_cmd: %s\012\000" -.LC272: - .ascii "pm ram = %x, %x\012\000" -.LC273: - .ascii "ram:\000" -.LC274: - .ascii "pm:\000" -.LC275: - .ascii "dumpsys\000" -.LC276: - .ascii "dumplist:\000" -.LC277: - .ascii "vpncheck\000" -.LC278: - .ascii "dumpppa:\000" -.LC279: - .ascii "dumpblk:\000" -.LC280: - .ascii "setzdebug:\000" -.LC281: - .ascii "lpa2ppa:\000" -.LC282: - .ascii "lpa: %x--> ppa: %x\012\000" -.LC283: - .ascii "help:\012\000" -.LC284: - .ascii "1. echo dumpl2p > /proc/zftl_debug\012\000" -.LC285: - .ascii "2. echo dumppm:x > /proc/zftl_debug\012\000" -.LC286: - .ascii "3. echo dumpsys > /proc/zftl_debug\012\000" -.LC287: - .ascii "4. echo dumpppa:x > /proc/zftl_debug\012\000" -.LC288: - .ascii "5. echo vpncheck > /proc/zftl_debug\012\000" -.LC289: - .ascii "6. echo setzdebug:x > /proc/zftl_debug\012\000" -.LC290: - .ascii "7. echo dumplist > /proc/zftl_debug\012\000" -.LC291: - .ascii "8. echo lpa2ppa:x> /proc/zftl_debug\012\000" -.LC292: - .ascii "gc_lpa:\000" -.LC293: - .ascii "gc_ppa:\000" -.LC294: .ascii "err: ppa = %x, status = %x, %x %x spare: %x %x %x %" .ascii "x\012\000" -.LC295: +.LC184: + .ascii "flash_prog_page_en:%x %x %x\012\000" +.LC185: + .ascii "w d:\000" +.LC186: + .ascii "w s:\000" +.LC187: + .ascii "spare\000" +.LC188: + .ascii "data\000" +.LC189: + .ascii "write error: %x\012\000" +.LC190: + .ascii "g_ftl_info_blk blk = %x, page = %x version = %d\012" + .ascii "\000" +.LC191: + .ascii "%d %x @%d %x\012\000" +.LC192: + .ascii "ftl_info_blk_init %d %d %x\012\000" +.LC193: + .ascii "ftl info hash %x error\012\000" +.LC194: + .ascii "ink flag: %x\012\000" +.LC195: + .ascii "%s %d %d %x %x\012\000" +.LC196: + .ascii "ext info hash %x error\012\000" +.LC197: + .ascii "%s %x %x %x\012\000" +.LC198: + .ascii "pm_write_page write error: %x\012\000" +.LC199: + .ascii "ftl_sblk_dump_write = %x %d %d %d %d\012\000" +.LC200: + .ascii "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x" + .ascii " %x %x, spare: %x %x %x %x\012\000" +.LC201: + .ascii "ftl_sblk_dump_write2 = %x %d %d %d\012\000" +.LC202: + .ascii "ftl_sblk_dump_write = %x %x\012\000" +.LC203: + .ascii "ftl_sblk_dump_write done = %x\012\000" +.LC204: + .ascii "finfo:\000" +.LC205: + .ascii "flash_info_flush id = %x, page = %x\012\000" +.LC206: + .ascii "sys_info_flush error:%x\012\000" +.LC207: + .ascii "...%d @ %s %d %p\012\000" +.LC208: + .ascii "no sys info %x\012\000" +.LC209: + .ascii "l2p:\000" +.LC210: + .ascii "saved_active_page = %x\012\000" +.LC211: + .ascii "saved_active_plane = %x\012\000" +.LC212: + .ascii "sblk = %x\012\000" +.LC213: + .ascii "phy_blk = %x %x\012\000" +.LC214: + .ascii "num_planes = %x\012\000" +.LC215: + .ascii "recovery blk=%x, page=%x, ppa = %x, status = %x, ha" + .ascii "sh:%x\012\000" +.LC216: + .ascii "data:\000" +.LC217: + .ascii "sblk = %x, vpn0 = %d, vpn1 = %d\012\000" +.LC218: + .ascii "dump_write_lpa = %x %x %x %x\012\000" +.LC219: + .ascii "dump write new ppa = %x, last ppa = %x lpa = %x\012" + .ascii "\000" +.LC220: + .ascii "dump write = %x %x %x\012\000" +.LC221: + .ascii "dump write hash update = %x %x %x\012\000" +.LC222: + .ascii "free_buf_count: %d\012\000" +.LC223: + .ascii "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\012\000" +.LC224: + .ascii "ftl_ext_info_blk blk:0x%x, page:0x%x\012\000" +.LC225: + .ascii "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page" + .ascii "_index:0x%x\012\000" +.LC226: + .ascii "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, pag" + .ascii "e_index:0x%x\012\000" +.LC227: + .ascii "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page" + .ascii "_index:0x%x\012\000" +.LC228: + .ascii "lpa:\000" +.LC229: + .ascii "vpn:\000" +.LC230: + .ascii "sblk:\000" +.LC231: + .ascii "lpa_hash:\000" +.LC232: + .ascii "lpa_hash_index:\000" +.LC233: + .ascii "%s w error lpn = %x, max ppa = %d\012\000" +.LC234: + .ascii "region_id = %d, pm_max_region = %d\012\000" +.LC235: + .ascii "load_l2p_region no ppa = %x , %x, all setting 0xff." + .ascii "...\012\000" +.LC236: + .ascii "load_l2p_region = %x,%x,%x, %x\012\000" +.LC237: + .ascii "pm_ppa:\000" +.LC238: + .ascii "spare:\000" +.LC239: + .ascii "pm_init posr %x %x %x\012\000" +.LC240: + .ascii "pm_init recovery %x %x %x\012\000" +.LC241: + .ascii "pm_init hash %x error\012\000" +.LC242: + .ascii "pm_log2phys lpn = %d, max lpn = %d\012\000" +.LC243: + .ascii "ppa = %x, status = %x, data:%x %x %x %x, spare: %x " + .ascii "%x %x %x\012\000" +.LC244: + .ascii "ppa = %x, status = %x, %x %x spare: %x %x %x %x\012" + .ascii "\000" +.LC245: + .ascii "gc_recovery: %x vpn = %x\012\000" +.LC246: + .ascii "gc_update_l2p_map_new sblk %x\012\000" +.LC247: + .ascii "gc_update_l2p_map_new: %x %x %x\012\000" +.LC248: + .ascii "lpa: %x %x %x\012\000" +.LC249: + .ascii "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\012" + .ascii "\000" +.LC250: + .ascii "gc_scan_src_blk = %x, vpn = %d\012\000" +.LC251: + .ascii "js hash error:%x %x %x\012\000" +.LC252: + .ascii "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\012\000" +.LC253: + .ascii "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:" + .ascii "%d\012\000" +.LC254: + .ascii "ftl_sblk_dump = %x %d %d %d %d\012\000" +.LC255: + .ascii "ftl_sblk_dump = %x %x %x %x\012\000" +.LC256: + .ascii "page_addr = %x, lpa=%x vpn = %d\012\000" +.LC257: + .ascii "index= %x, lpa=%x\012\000" +.LC258: + .ascii "block = %x, vpn=%x check vpn = %x\012\000" +.LC259: + .ascii "ftl_read %x %x %x\012\000" +.LC260: + .ascii "ftl_read refresh =%x, lpa = %x, ppa= %x\012\000" +.LC261: + .ascii "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %" + .ascii "x %x %x\012\000" +.LC262: + .ascii "zftl debug cmd: %s\012\000" +.LC263: + .ascii "cmd:\000" +.LC264: + .ascii "dumpl2p\000" +.LC265: + .ascii "pm l2p:\000" +.LC266: + .ascii "pm blk:\000" +.LC267: + .ascii "dumppm:\000" +.LC268: + .ascii "p_cmd: %s\012\000" +.LC269: + .ascii "pm ram = %x, %x\012\000" +.LC270: + .ascii "ram:\000" +.LC271: + .ascii "pm:\000" +.LC272: + .ascii "dumpsys\000" +.LC273: + .ascii "dumplist:\000" +.LC274: + .ascii "vpncheck\000" +.LC275: + .ascii "dumpppa:\000" +.LC276: + .ascii "dumpblk:\000" +.LC277: + .ascii "setzdebug:\000" +.LC278: + .ascii "lpa2ppa:\000" +.LC279: + .ascii "lpa: %x--> ppa: %x\012\000" +.LC280: + .ascii "help:\012\000" +.LC281: + .ascii "1. echo dumpl2p > /proc/zftl_debug\012\000" +.LC282: + .ascii "2. echo dumppm:x > /proc/zftl_debug\012\000" +.LC283: + .ascii "3. echo dumpsys > /proc/zftl_debug\012\000" +.LC284: + .ascii "4. echo dumpppa:x > /proc/zftl_debug\012\000" +.LC285: + .ascii "5. echo vpncheck > /proc/zftl_debug\012\000" +.LC286: + .ascii "6. echo setzdebug:x > /proc/zftl_debug\012\000" +.LC287: + .ascii "7. echo dumplist > /proc/zftl_debug\012\000" +.LC288: + .ascii "8. echo lpa2ppa:x> /proc/zftl_debug\012\000" +.LC289: .ascii "ftl_update_l2p_map: %x %x %x\012\000" -.LC296: +.LC290: .ascii "ftl_update_l2p_map\000" -.LC297: +.LC291: .ascii "lpa_tbl:\000" -.LC298: +.LC292: .ascii "sblk %x vpn: %d %d\012\000" -.LC299: +.LC293: .ascii "error gc_add_sblk: %x\012\000" -.LC300: +.LC294: .ascii "%d read error: ppa:%x, lpa:%x, status:%x\012\000" -.LC301: +.LC295: .ascii "gc page in buf: lpa %x ppa = %x pageindex= %x\012\000" -.LC302: +.LC296: .ascii "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x " .ascii "page_index= %d\012\000" -.LC303: - .ascii "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x %x %d\012" - .ascii "\000" -.LC304: +.LC297: .ascii "gc %d: %d %d %d %d %d %d %d\012\000" -.LC305: - .ascii "gc %d: %d %d %d %d %d %d\012\000" -.LC306: +.LC298: .ascii "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\012" .ascii "\000" -.LC307: +.LC299: .ascii "gc free %x, %d\012\000" +.LC300: + .ascii "_c_user_data_density := %d\012\000" +.LC301: + .ascii "_c_totle_phy_density := %d\012\000" +.LC302: + .ascii "_c_totle_log_page := %d\012\000" +.LC303: + .ascii "_c_totle_data_density := %d\012\000" +.LC304: + .ascii "_c_ftl_pm_page_num := %d\012\000" +.LC305: + .ascii "_c_ftl_byte_pre_page := %d\012\000" +.LC306: + .ascii "_c_max_pm_sblk := %d\012\000" +.LC307: + .ascii "_min_slc_super_block := %d\012\000" .LC308: - .ascii "ftlwrite %x %x %x %x\012\000" + .ascii "_max_xlc_super_block := %d\012\000" .LC309: - .ascii "ftl_discard:(%x, %x, %x, %x)\012\000" + .ascii "gp_ftl_ext_info %p %p %p\012\000" .LC310: + .ascii "flash info size: %d %d %d\012\000" +.LC311: + .ascii "ftl_init %x\012\000" +.LC312: + .ascii "ftlwrite %x %x %x %x\012\000" +.LC313: + .ascii "ftl_discard:(%x, %x, %x, %x)\012\000" +.LC314: .ascii "id_block_prog_msb_ff_data slc page = %d pageadd=%x " .ascii "%x\012\000" -.LC311: - .ascii "write_idblock fix data %x %x\012\000" -.LC312: - .ascii "idblk:\000" -.LC313: - .ascii "write_idblock totle_sec %x %x\012\000" -.LC314: - .ascii "prog page: %x %x %x, %p %x %x %x\012\000" .LC315: - .ascii "wl_lba %p %x %x %x\012\000" + .ascii "write_idblock fix data %x %x\012\000" .LC316: - .ascii "READ_SECTOR_IO\012\000" + .ascii "idblk:\000" .LC317: - .ascii "rk_copy_from_user error\012\000" + .ascii "write_idblock totle_sec %x %x\012\000" .LC318: - .ascii "READ_SECTOR_IO %x %x\012\000" + .ascii "prog page: %x %x %x, %p %x %x %x\012\000" .LC319: - .ascii "rk_copy_to_user error\012\000" + .ascii "wl_lba %p %x %x %x\012\000" .LC320: - .ascii "WRITE_SECTOR_IO\012\000" -.LC321: - .ascii "WRITE_SECTOR_IO %x %x\012\000" -.LC322: - .ascii "END_WRITE_SECTOR_IO\012\000" -.LC323: - .ascii "END_WRITE_SECTOR_IO %x %x\012\000" -.LC324: - .ascii "GET_FLASH_INFO_IO\012\000" -.LC325: - .ascii "GET_BAD_BLOCK_IO\012\000" -.LC326: - .ascii "GET_LOCK_FLAG_IO\012\000" -.LC327: - .ascii "GET_PUBLIC_KEY_IO\012\000" -.LC328: .ascii "RKNAND_GET_DRM_KEY\012\000" -.LC329: +.LC321: + .ascii "rk_copy_from_user error\012\000" +.LC322: .ascii "RKNAND_STORE_DRM_KEY\012\000" -.LC330: +.LC323: .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" -.LC331: +.LC324: .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" -.LC332: +.LC325: .ascii "RKNAND_GET_SN_SECTOR\012\000" -.LC333: +.LC326: .ascii "RKNAND_LOADER_UNLOCK\012\000" -.LC334: +.LC327: .ascii "RKNAND_LOADER_STATUS\012\000" -.LC335: +.LC328: .ascii "RKNAND_LOADER_LOCK\012\000" -.LC336: +.LC329: .ascii "LockKey not match %d\012\000" -.LC337: +.LC330: .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" -.LC338: +.LC331: .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" -.LC339: +.LC332: .ascii "return ret = %lx\012\000" -.LC340: +.LC333: .ascii "secureBootEn check error\012\000" -.LC341: +.LC334: .ascii "\0013vendor storage %x,%x,%x\012\000" .data .align 2 .LANCHOR2 = . + 0 -.LANCHOR6 = . + 8184 .type zftl_debug, %object .size zftl_debug, 4 zftl_debug: @@ -31080,7 +33308,7 @@ hy_f26_ref_value: .byte -32 .byte -37 .type zftl_nand_flash_para_tbl, %object - .size zftl_nand_flash_para_tbl, 1440 + .size zftl_nand_flash_para_tbl, 1568 zftl_nand_flash_para_tbl: .byte 6 .byte -104 @@ -31391,6 +33619,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 6 + .byte -104 + .byte -34 + .byte -108 + .byte -109 + .byte 118 + .byte -47 + .byte 1 + .byte 1 + .byte 32 + .short 256 + .byte 2 + .byte 2 + .short 1074 + .short 17881 + .byte 2 + .byte 35 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 4 + .byte 0 + .short 256 + .byte 1 + .byte -94 + .byte 0 + .byte 0 + .byte 6 .byte 69 .byte 58 .byte -108 @@ -31641,7 +33897,7 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 0 - .byte 0 + .byte 1 .byte 5 .byte 44 .byte 100 @@ -31750,7 +34006,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .short 512 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 @@ -31806,7 +34062,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .short 512 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 @@ -31834,7 +34090,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .short 512 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 @@ -31862,7 +34118,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .short 512 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 @@ -31999,14 +34255,42 @@ zftl_nand_flash_para_tbl: .byte 32 .byte 1 .byte 0 - .byte 4 + .byte 1 .byte 0 .short 1024 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 .byte 6 + .byte -101 + .byte -61 + .byte 72 + .byte 37 + .byte 16 + .byte 0 + .byte 9 + .byte 1 + .byte 32 + .short 1152 + .byte 3 + .byte 2 + .short 1006 + .short -27169 + .byte 13 + .byte 81 + .byte 70 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .short 2048 + .byte 1 + .byte -38 + .byte -33 + .byte 24 + .byte 6 .byte -83 .byte -34 .byte 20 @@ -32027,7 +34311,7 @@ zftl_nand_flash_para_tbl: .byte 32 .byte 3 .byte 1 - .byte 4 + .byte 3 .byte 0 .short 256 .byte 2 @@ -32195,7 +34479,7 @@ zftl_nand_flash_para_tbl: .byte 32 .byte 3 .byte 1 - .byte 4 + .byte 3 .byte 0 .short 512 .byte 0 @@ -32316,6 +34600,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 6 .byte -119 + .byte -120 + .byte 4 + .byte 75 + .byte -87 + .byte 0 + .byte 7 + .byte 1 + .byte 16 + .short 256 + .byte 2 + .byte 4 + .short 1024 + .short 449 + .byte 1 + .byte 0 + .byte 24 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .short 256 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 6 + .byte -119 .byte -92 .byte 8 .byte 50 @@ -32342,6 +34654,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 4 + .byte 6 + .byte -20 + .byte -34 + .byte -108 + .byte -61 + .byte -92 + .byte -54 + .byte 0 + .byte 1 + .byte 32 + .short 792 + .byte 2 + .byte 1 + .short 688 + .short 1217 + .byte 11 + .byte 50 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 1 + .byte 0 + .short 1024 + .byte 1 + .byte -38 + .byte -33 + .byte 0 .type nand_opt_para, %object .size nand_opt_para, 128 nand_opt_para: @@ -33579,271 +35919,10 @@ tlc_prog_order: .short 1018 .short 1011 .short 1019 - .type gTable_Crc32, %object - .size gTable_Crc32, 1024 -gTable_Crc32: - .word 0 - .word 79760823 - .word 159521646 - .word 222500569 - .word 319043292 - .word 398801771 - .word 445001138 - .word 507977733 - .word 638086584 - .word 583622671 - .word 797603542 - .word 726367073 - .word 890002276 - .word 835540691 - .word 1015955466 - .word 944721341 - .word 1276173168 - .word 1221711559 - .word 1167245342 - .word 1096011177 - .word 1595207084 - .word 1540743195 - .word 1452734146 - .word 1381497717 - .word 1780004552 - .word 1859763071 - .word 1671081382 - .word 1734058001 - .word 2031910932 - .word 2111671715 - .word 1889442682 - .word 1952421581 - .word -1742620960 - .word -1662993577 - .word -1851544178 - .word -1788698567 - .word -1960476612 - .word -1880846965 - .word -2102944942 - .word -2040097051 - .word -1104553128 - .word -1159145745 - .word -1213480906 - .word -1284846207 - .word -1389499004 - .word -1444093901 - .word -1531971862 - .word -1603339427 - .word -734958192 - .word -789553113 - .word -575441154 - .word -646808759 - .word -952804532 - .word -1007397125 - .word -826851294 - .word -898216555 - .word -231145432 - .word -151515745 - .word -71623866 - .word -8775951 - .word -516081932 - .word -436454589 - .word -390124134 - .word -327278547 - .word 880959607 - .word 809725376 - .word 1023441689 - .word 968980142 - .word 663115435 - .word 591878940 - .word 772033989 - .word 717570162 - .word 311037391 - .word 374014072 - .word 453514913 - .word 533273366 - .word 26098451 - .word 89077412 - .word 135012477 - .word 214773194 - .word 2022882055 - .word 2085861040 - .word 1896915049 - .word 1976675806 - .word 1805028827 - .word 1868005484 - .word 1645516469 - .word 1725274882 - .word 1587205823 - .word 1515969288 - .word 1461243345 - .word 1406779494 - .word 1302257763 - .word 1231023572 - .word 1142749965 - .word 1088288442 - .word -1398548841 - .word -1469916384 - .word -1524511239 - .word -1579106226 - .word -1079517109 - .word -1150882308 - .word -1239024859 - .word -1293617518 - .word -1968456913 - .word -1905609064 - .word -2094423999 - .word -2014794250 - .word -1716548109 - .word -1653702588 - .word -1876060515 - .word -1796433110 - .word -525136409 - .word -462290864 - .word -382658935 - .word -303031490 - .word -206095557 - .word -143247732 - .word -97181611 - .word -17551902 - .word -960798625 - .word -1032163864 - .word -818316495 - .word -872909178 - .word -708880765 - .word -780248268 - .word -599962131 - .word -654557094 - .word 1761919214 - .word 1841679705 - .word 1619450752 - .word 1682429495 - .word 2046883378 - .word 2126642053 - .word 1937960284 - .word 2000937195 - .word 1326230870 - .word 1271767265 - .word 1183757880 - .word 1112521615 - .word 1544067978 - .word 1489606205 - .word 1435140324 - .word 1363905875 - .word 622074782 - .word 567612969 - .word 748028144 - .word 676793671 - .word 907029826 - .word 852566261 - .word 1066546732 - .word 995310491 - .word 52196902 - .word 131955601 - .word 178154824 - .word 241131775 - .word 270024954 - .word 349785421 - .word 429546388 - .word 492525091 - .word -249203186 - .word -169575495 - .word -123245216 - .word -60399401 - .word -501137198 - .word -421507739 - .word -341615684 - .word -278768117 - .word -684909642 - .word -739502591 - .word -558956328 - .word -630321809 - .word -1003934358 - .word -1058529059 - .word -844417532 - .word -915784781 - .word -1120555650 - .word -1175150391 - .word -1263028720 - .word -1334395993 - .word -1372480606 - .word -1427073515 - .word -1481408308 - .word -1552773765 - .word -1690451770 - .word -1610822287 - .word -1832920152 - .word -1770072545 - .word -2009467366 - .word -1929839699 - .word -2118390412 - .word -2055544637 - .word 1569104025 - .word 1497869614 - .word 1409596407 - .word 1355134528 - .word 1317180997 - .word 1245944818 - .word 1191218475 - .word 1136754844 - .word 2072956193 - .word 2135933078 - .word 1913443919 - .word 1993202680 - .word 1753938941 - .word 1816917578 - .word 1627971731 - .word 1707732260 - .word 295074793 - .word 358053470 - .word 403988615 - .word 483749168 - .word 43142453 - .word 106119298 - .word 185620059 - .word 265378796 - .word 933107281 - .word 861871078 - .word 1042025791 - .word 987562120 - .word 614080653 - .word 542846266 - .word 756562915 - .word 702101076 - .word -978905479 - .word -1050272818 - .word -869987049 - .word -924581728 - .word -693952347 - .word -765317870 - .word -551470133 - .word -606062980 - .word -475038783 - .word -412191114 - .word -366124881 - .word -286495464 - .word -257209059 - .word -194363222 - .word -114731405 - .word -35103804 - .word -1984443127 - .word -1921597250 - .word -2143955353 - .word -2064327728 - .word -1699480619 - .word -1636632990 - .word -1825447749 - .word -1745818356 - .word -1346395983 - .word -1417761530 - .word -1505903649 - .word -1560496536 - .word -1128556947 - .word -1199924262 - .word -1254519549 - .word -1309114188 .bss .align 6 .LANCHOR0 = . + 0 .LANCHOR3 = . + 8184 -.LANCHOR4 = . + 24552 -.LANCHOR5 = . + 40920 .type g_flash_slc_mode, %object .size g_flash_slc_mode, 1 g_flash_slc_mode: @@ -33857,9 +35936,9 @@ g_slc_mode_addr2: g_block_align_addr: .space 2 .type g_lsb_page_tbl, %object - .size g_lsb_page_tbl, 512 + .size g_lsb_page_tbl, 1024 g_lsb_page_tbl: - .space 512 + .space 1024 .type g_nandc_ver, %object .size g_nandc_ver, 1 g_nandc_ver: @@ -33994,11 +36073,15 @@ gp_flash_info: .size g_die_cs_idx, 8 g_die_cs_idx: .space 8 + .type g_flash_six_addr, %object + .size g_flash_six_addr, 1 +g_flash_six_addr: + .space 1 .type _c_ftl_cs_bits, %object .size _c_ftl_cs_bits, 1 _c_ftl_cs_bits: .space 1 - .space 3 + .space 2 .type g_flash_cur_mode, %object .size g_flash_cur_mode, 4 g_flash_cur_mode: @@ -34007,7 +36090,11 @@ g_flash_cur_mode: .size g_flash_micron_3d_tlc_flag, 1 g_flash_micron_3d_tlc_flag: .space 1 - .space 3 + .type g_flash_ymtc_3d_tlc_flag, %object + .size g_flash_ymtc_3d_tlc_flag, 1 +g_flash_ymtc_3d_tlc_flag: + .space 1 + .space 2 .type IDByte, %object .size IDByte, 32 IDByte: @@ -34040,6 +36127,19 @@ free_buf_count: .type sblk_queue_head, %object .size sblk_queue_head, 1 sblk_queue_head: + .space 1 + .type sblk_read_completed_queue_head, %object + .size sblk_read_completed_queue_head, 1 +sblk_read_completed_queue_head: + .space 1 + .type sblk_gc_write_completed_queue_head, %object + .size sblk_gc_write_completed_queue_head, 1 +sblk_gc_write_completed_queue_head: + .space 1 + .type sblk_write_completed_queue_head, %object + .size sblk_write_completed_queue_head, 1 +sblk_write_completed_queue_head: + .space 1 .space 1 .type _c_totle_phy_density, %object .size _c_totle_phy_density, 4 @@ -34117,9 +36217,9 @@ write_buf_head: .space 1 .space 3 .type g_gc_info, %object - .size g_gc_info, 596 + .size g_gc_info, 2132 g_gc_info: - .space 596 + .space 2132 .type ftl_sblk_vpn_update_id, %object .size ftl_sblk_vpn_update_id, 2 ftl_sblk_vpn_update_id: @@ -34142,13 +36242,13 @@ _c_ftl_planes_per_die: .size gc_valid_page_ppa, 4 gc_valid_page_ppa: .space 4 - .type sblk_gc_write_completed_queue_head, %object - .size sblk_gc_write_completed_queue_head, 1 -sblk_gc_write_completed_queue_head: - .space 1 .type _c_ftl_nand_type, %object .size _c_ftl_nand_type, 1 _c_ftl_nand_type: + .space 1 + .type _c_ftl_nand_planes_num, %object + .size _c_ftl_nand_planes_num, 1 +_c_ftl_nand_planes_num: .space 1 .type g_flash_3d_mlc_flag, %object .size g_flash_3d_mlc_flag, 1 @@ -34170,19 +36270,22 @@ g_flash_3d_tlc_flag: .size gc_mode, 1 gc_mode: .space 1 + .type gc_slc_data_index, %object + .size gc_slc_data_index, 2 +gc_slc_data_index: + .space 2 .type gc_slc_cache_index, %object .size gc_slc_cache_index, 2 gc_slc_cache_index: + .space 2 + .type gc_xlc_data_index, %object + .size gc_xlc_data_index, 2 +gc_xlc_data_index: .space 2 .type gp_data_slc_cache_head, %object .size gp_data_slc_cache_head, 4 gp_data_slc_cache_head: .space 4 - .type gc_xlc_data_index, %object - .size gc_xlc_data_index, 2 -gc_xlc_data_index: - .space 2 - .space 2 .type gp_data_xlc_data_head, %object .size gp_data_xlc_data_head, 4 gp_data_xlc_data_head: @@ -34194,15 +36297,6 @@ _c_ftl_page_pre_slc_blk: .type _c_ftl_page_pre_blk, %object .size _c_ftl_page_pre_blk, 2 _c_ftl_page_pre_blk: - .space 2 - .type _c_ftl_nand_planes_num, %object - .size _c_ftl_nand_planes_num, 1 -_c_ftl_nand_planes_num: - .space 1 - .space 1 - .type gc_slc_data_index, %object - .size gc_slc_data_index, 2 -gc_slc_data_index: .space 2 .type gp_data_slc_data_head, %object .size gp_data_slc_data_head, 4 @@ -34266,22 +36360,19 @@ ftl_vpn_update_count: .size ftl_sblk_update_list_offset, 2 ftl_sblk_update_list_offset: .space 2 + .type g_flash_micron_3d_tlc_b05a, %object + .size g_flash_micron_3d_tlc_b05a, 1 +g_flash_micron_3d_tlc_b05a: + .space 1 + .space 1 .type _c_mix_max_xlc_ec_count, %object .size _c_mix_max_xlc_ec_count, 2 _c_mix_max_xlc_ec_count: - .space 2 - .type _max_slc_super_block, %object - .size _max_slc_super_block, 2 -_max_slc_super_block: .space 2 .type _c_mix_max_slc_ec_count, %object .size _c_mix_max_slc_ec_count, 2 _c_mix_max_slc_ec_count: .space 2 - .type sblk_write_completed_queue_head, %object - .size sblk_write_completed_queue_head, 1 -sblk_write_completed_queue_head: - .space 1 .type read_buf_head, %object .size read_buf_head, 1 read_buf_head: @@ -34290,11 +36381,6 @@ read_buf_head: .size read_buf_count, 1 read_buf_count: .space 1 - .type sblk_read_completed_queue_head, %object - .size sblk_read_completed_queue_head, 1 -sblk_read_completed_queue_head: - .space 1 - .space 2 .type pm_gc_enable, %object .size pm_gc_enable, 4 pm_gc_enable: @@ -34309,9 +36395,9 @@ pm_last_update_ram_id: .space 1 .space 3 .type g_msb_page_tbl, %object - .size g_msb_page_tbl, 1024 + .size g_msb_page_tbl, 2048 g_msb_page_tbl: - .space 1024 + .space 2048 .type g_slc_page_num, %object .size g_slc_page_num, 2 g_slc_page_num: @@ -34334,6 +36420,11 @@ gc_state: .size gc_search_count, 4 gc_search_count: .space 4 + .type gc_slc_mode_slc_vpn_th, %object + .size gc_slc_mode_slc_vpn_th, 2 +gc_slc_mode_slc_vpn_th: + .space 2 + .space 2 .type gc_lpa_tbl, %object .size gc_lpa_tbl, 4 gc_lpa_tbl: @@ -34431,11 +36522,10 @@ ftl_info_spare: .size g_ftl_info_blk, 4 g_ftl_info_blk: .space 4 - .space 60 .type ftl_info_data_buffer, %object - .size ftl_info_data_buffer, 16384 + .size ftl_info_data_buffer, 4 ftl_info_data_buffer: - .space 16384 + .space 4 .type ftl_sys_info_first_write, %object .size ftl_sys_info_first_write, 1 ftl_sys_info_first_write: @@ -34448,11 +36538,12 @@ ftl_power_lost_flag: .size ftl_ext_info_first_write, 1 ftl_ext_info_first_write: .space 1 - .space 61 + .space 1 .type ftl_ext_info_data_buffer, %object - .size ftl_ext_info_data_buffer, 16384 + .size ftl_ext_info_data_buffer, 4 ftl_ext_info_data_buffer: - .space 16384 + .space 4 + .space 48 .type ftl_tmp_spare, %object .size ftl_tmp_spare, 256 ftl_tmp_spare: @@ -34477,15 +36568,10 @@ g_flash_blk_info: .type g_flash_reversd_blks, %object .size g_flash_reversd_blks, 1 g_flash_reversd_blks: - .space 1 - .type g_flash_micron_3d_tlc_b05a, %object - .size g_flash_micron_3d_tlc_b05a, 1 -g_flash_micron_3d_tlc_b05a: .space 1 .type g_flash_micron_3d_tlc_b16a, %object .size g_flash_micron_3d_tlc_b16a, 1 g_flash_micron_3d_tlc_b16a: - .space 1 .space 1 .type _c_ftl_byte_pre_page, %object .size _c_ftl_byte_pre_page, 2 @@ -34495,7 +36581,19 @@ _c_ftl_byte_pre_page: .size pm_last_load_ram_id, 1 pm_last_load_ram_id: .space 1 + .type _ftl_gc_tag_page_num, %object + .size _ftl_gc_tag_page_num, 1 +_ftl_gc_tag_page_num: .space 1 + .space 2 + .type _last_read_time, %object + .size _last_read_time, 4 +_last_read_time: + .space 4 + .type _last_write_time, %object + .size _last_write_time, 4 +_last_write_time: + .space 4 .type read_ahead_lpa, %object .size read_ahead_lpa, 4 read_ahead_lpa: @@ -34508,11 +36606,16 @@ _c_totle_data_density: .size _c_ftl_pm_page_num, 2 _c_ftl_pm_page_num: .space 2 + .space 2 + .type ftl_tmp_buffer, %object + .size ftl_tmp_buffer, 4 +ftl_tmp_buffer: + .space 4 .type rk_zftl_enable, %object .size rk_zftl_enable, 1 rk_zftl_enable: .space 1 - .space 1 + .space 3 .type gLoaderBootInfo, %object .size gLoaderBootInfo, 4 gLoaderBootInfo: @@ -34520,14 +36623,6 @@ gLoaderBootInfo: .type RK29_NANDC1_REG_BASE, %object .size RK29_NANDC1_REG_BASE, 4 RK29_NANDC1_REG_BASE: - .space 4 - .type _last_read_time, %object - .size _last_read_time, 4 -_last_read_time: - .space 4 - .type _last_write_time, %object - .size _last_write_time, 4 -_last_write_time: .space 4 .type discard_sector_count, %object .size discard_sector_count, 4 @@ -34545,10 +36640,6 @@ idb_buf: .type idb_last_lba, %object .size idb_last_lba, 4 idb_last_lba: - .space 4 - .type g_idb_buffer, %object - .size g_idb_buffer, 4 -g_idb_buffer: .space 4 .type gpDrmKeyInfo, %object .size gpDrmKeyInfo, 4 @@ -34581,6 +36672,10 @@ gpVendor0Info: .type gpVendor1Info, %object .size gpVendor1Info, 4 gpVendor1Info: + .space 4 + .type g_idb_buffer, %object + .size g_idb_buffer, 4 +g_idb_buffer: .space 4 .type g_vendor, %object .size g_vendor, 4 @@ -34590,11 +36685,7 @@ g_vendor: .size ftl_low_format_cur_blk, 2 ftl_low_format_cur_blk: .space 2 - .space 22 - .type ftl_tmp_buffer, %object - .size ftl_tmp_buffer, 16384 -ftl_tmp_buffer: - .space 16384 + .space 2 .type p_read_ahead_ext_buf, %object .size p_read_ahead_ext_buf, 4 p_read_ahead_ext_buf: diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S index f68fc444ba0a..d6371f4fb61b 100644 --- a/drivers/rk_nand/rk_zftl_arm64.S +++ b/drivers/rk_nand/rk_zftl_arm64.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2020-02-18 + * date: 2020-11-30 * function: rk ftl v6 for rockchip soc base on arm v8 to support 3D/2D * TLC and MLC. */ @@ -63,8 +63,8 @@ slc_phy_page_address_calc: .global zftl_nandc_get_irq_status .type zftl_nandc_get_irq_status, %function zftl_nandc_get_irq_status: - adrp x1, .LANCHOR0+516 - ldrb w1, [x1,#:lo12:.LANCHOR0+516] + adrp x1, .LANCHOR0+1028 + ldrb w1, [x1,#:lo12:.LANCHOR0+1028] cmp w1, 9 bne .L19 ldr w0, [x0,296] @@ -96,8 +96,8 @@ isxdigit: .type zftl_get_density, %function zftl_get_density: cbnz w0, .L25 - adrp x0, .LANCHOR0+520 - ldr w0, [x0,#:lo12:.LANCHOR0+520] + adrp x0, .LANCHOR0+1032 + ldr w0, [x0,#:lo12:.LANCHOR0+1032] b .L26 .L25: cmp w0, 4 @@ -119,7 +119,7 @@ _list_remove_node: stp x21, x22, [sp,32] stp x23, x24, [sp,48] umull x21, w1, w4 - ldr x23, [x3,528] + ldr x23, [x3,1040] mov w3, 65535 add x20, x23, x21 ldrh w1, [x23,x21] @@ -144,7 +144,7 @@ _list_remove_node: adrp x0, .LC0 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - mov w2, 188 + mov w2, 202 add x0, x0, :lo12:.LC0 bl printk bl dump_stack @@ -162,7 +162,7 @@ _list_remove_node: add x19, x19, :lo12:.LANCHOR0 mov w0, 6 umull x1, w1, w0 - ldr x0, [x19,528] + ldr x0, [x19,1040] add x1, x0, x1 str x1, [x22] mov w0, -1 @@ -179,20 +179,20 @@ _list_remove_node: mov w0, 6 mov w2, -1 umull x1, w1, w0 - ldr x0, [x19,528] + ldr x0, [x19,1040] b .L36 .L35: add x19, x19, :lo12:.LANCHOR0 mov w1, 6 ldrh w2, [x20,2] umull x0, w0, w1 - ldr x3, [x19,528] + ldr x3, [x19,1040] add x0, x3, x0 strh w2, [x0,2] ldrh w0, [x20,2] ldrh w2, [x23,x21] umull x0, w0, w1 - ldr x1, [x19,528] + ldr x1, [x19,1040] .L36: strh w2, [x1,x0] .L34: @@ -219,10 +219,10 @@ _list_pop_index_node: mov w19, 65535 ldr x20, [x0] cbz x20, .L38 - adrp x3, .LANCHOR0+528 + adrp x3, .LANCHOR0+1040 mov w4, 65535 mov w5, 6 - ldr x19, [x3,#:lo12:.LANCHOR0+528] + ldr x19, [x3,#:lo12:.LANCHOR0+1040] .L39: cbnz w1, .L40 .L42: @@ -297,47 +297,47 @@ zftl_debug_proc_show: zftl_flash_suspend: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,516] + ldrb w1, [x0,1028] cmp w1, 9 - ldr x1, [x0,536] + ldr x1, [x0,1048] ldr w2, [x1] - str w2, [x0,544] + str w2, [x0,1056] ldr w2, [x1,4] - str w2, [x0,548] + str w2, [x0,1060] bne .L47 ldr w2, [x1,16] - str w2, [x0,552] + str w2, [x0,1064] ldr w2, [x1,32] - str w2, [x0,556] + str w2, [x0,1068] ldr w2, [x1,80] - str w2, [x0,560] + str w2, [x0,1072] ldr w2, [x1,84] - str w2, [x0,564] + str w2, [x0,1076] ldr w2, [x1,520] - str w2, [x0,568] + str w2, [x0,1080] ldr w1, [x1,8] b .L49 .L47: ldr w2, [x1,8] - str w2, [x0,552] + str w2, [x0,1064] ldr w2, [x1,12] - str w2, [x0,556] + str w2, [x0,1068] ldr w2, [x1,304] - str w2, [x0,560] + str w2, [x0,1072] ldr w2, [x1,308] - str w2, [x0,564] + str w2, [x0,1076] ldr w2, [x1,336] ldr w1, [x1,344] - str w2, [x0,568] + str w2, [x0,1080] .L49: - str w1, [x0,572] + str w1, [x0,1084] ret .size zftl_flash_suspend, .-zftl_flash_suspend .align 2 .type nandc_irq_disable, %function nandc_irq_disable: - adrp x2, .LANCHOR0+516 - ldrb w2, [x2,#:lo12:.LANCHOR0+516] + adrp x2, .LANCHOR0+1028 + ldrb w2, [x2,#:lo12:.LANCHOR0+1028] cmp w2, 9 mov x2, 1 bne .L51 @@ -367,7 +367,7 @@ _insert_free_list: uxth w1, w1 add x6, x3, :lo12:.LANCHOR0 mov x10, x3 - ldrh w4, [x6,576] + ldrh w4, [x6,1088] cmp w4, w1 bls .L53 ldrh w3, [x2] @@ -375,18 +375,18 @@ _insert_free_list: add w3, w3, 1 strh w3, [x2] umull x11, w1, w7 - ldr x12, [x6,528] + ldr x12, [x6,1040] mov w2, -1 add x5, x12, x11 strh w2, [x5,2] strh w2, [x12,x11] ldr x2, [x0] cbz x2, .L60 - ldr x9, [x6,584] + ldr x9, [x6,1096] ubfiz x8, x1, 2, 16 - ldrh w13, [x6,592] + ldrh w13, [x6,1104] mov w16, 65535 - ldr x14, [x6,528] + ldr x14, [x6,1040] mov x6, -6148914691236517206 ldr w4, [x9,x8] ubfx x3, x4, 11, 8 @@ -434,7 +434,7 @@ _insert_free_list: ldrh w0, [x2,2] add x3, x10, :lo12:.LANCHOR0 mov w4, 6 - ldr x3, [x3,528] + ldr x3, [x3,1040] umull x0, w0, w4 strh w1, [x3,x0] strh w1, [x2,2] @@ -450,7 +450,7 @@ _insert_data_list: uxth w1, w1 stp x19, x20, [sp] str x21, [sp,16] - ldrh w3, [x10,576] + ldrh w3, [x10,1088] cmp w3, w1 bls .L61 ldrh w3, [x2] @@ -458,7 +458,7 @@ _insert_data_list: add w3, w3, 1 strh w3, [x2] umull x8, w1, w8 - ldr x14, [x10,528] + ldr x14, [x10,1040] mov w2, -1 add x7, x14, x8 strh w2, [x7,2] @@ -466,12 +466,12 @@ _insert_data_list: ldr x2, [x0] cbz x2, .L79 uxtw x9, w1 - ldr x15, [x10,600] - ldr x13, [x10,584] + ldr x15, [x10,1112] + ldr x13, [x10,1096] ldrh w11, [x7,4] ldrh w5, [x15,x9,lsl 1] lsl x9, x9, 2 - ldrh w16, [x10,592] + ldrh w16, [x10,1104] ldr w3, [x13,x9] mul w5, w5, w11 ubfx x4, x3, 11, 8 @@ -487,8 +487,8 @@ _insert_data_list: mov w21, 65535 csinv w5, w5, wzr, ne mov w19, 6 - ldr x17, [x4,528] - ldrh w20, [x4,576] + ldr x17, [x4,1040] + ldrh w20, [x4,1088] sub x3, x2, x17 asr x3, x3, 1 madd x3, x9, x3, x3 @@ -544,7 +544,7 @@ _insert_data_list: add x6, x6, :lo12:.LANCHOR0 mov w3, 6 umull x0, w0, w3 - ldr x3, [x6,528] + ldr x3, [x6,1040] strh w1, [x3,x0] strh w1, [x2,2] .L61: @@ -559,10 +559,10 @@ _list_get_gc_head_node.isra.4: uxth w1, w1 mov w2, 65535 cbz x0, .L86 - adrp x2, .LANCHOR0+528 + adrp x2, .LANCHOR0+1040 mov w4, 65535 mov w5, 6 - ldr x3, [x2,#:lo12:.LANCHOR0+528] + ldr x3, [x2,#:lo12:.LANCHOR0+1040] .L82: cbz w1, .L83 ldrh w2, [x0] @@ -596,7 +596,7 @@ _list_update_data_list: stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x20, x1 - ldr x3, [x4,608] + ldr x3, [x4,1120] ldrh w5, [x3,16] cmp w5, w19 beq .L87 @@ -607,7 +607,7 @@ _list_update_data_list: cmp w1, w19 beq .L87 mov w23, 6 - ldr x25, [x4,528] + ldr x25, [x4,1040] ldr x1, [x0] umull x23, w19, w23 add x24, x25, x23 @@ -625,7 +625,7 @@ _list_update_data_list: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 255 + mov w2, 273 add x1, x1, 24 add x0, x0, :lo12:.LC0 bl printk @@ -642,8 +642,8 @@ _list_update_data_list: add x1, x20, :lo12:.LANCHOR0 ubfiz x0, x19, 1, 16 mov x5, -6148914691236517206 - ldr x4, [x1,600] - ldr x1, [x1,528] + ldr x4, [x1,1112] + ldr x1, [x1,1040] ldrh w2, [x4,x0] ldrh w0, [x24,4] cmp w0, wzr @@ -681,18 +681,18 @@ _list_update_data_list: .type zftl_get_gc_node.part.11, %function zftl_get_gc_node.part.11: uxth w1, w0 - adrp x0, .LANCHOR0+616 + adrp x0, .LANCHOR0+1128 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR0+616] + ldr x0, [x0,#:lo12:.LANCHOR0+1128] bl _list_get_gc_head_node.isra.4 ldp x29, x30, [sp], 16 ret .size zftl_get_gc_node.part.11, .-zftl_get_gc_node.part.11 .section .text.unlikely .align 2 - .type rk_simple_strtoull.constprop.33, %function -rk_simple_strtoull.constprop.33: + .type rk_simple_strtoull.constprop.35, %function +rk_simple_strtoull.constprop.35: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] @@ -751,7 +751,7 @@ rk_simple_strtoull.constprop.33: ldp x21, x22, [sp,32] ldp x29, x30, [sp], 64 ret - .size rk_simple_strtoull.constprop.33, .-rk_simple_strtoull.constprop.33 + .size rk_simple_strtoull.constprop.35, .-rk_simple_strtoull.constprop.35 .text .align 2 .global nand_flash_print_info @@ -772,8 +772,8 @@ nand_flash_print_info: .L116: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L117 - adrp x0, .LANCHOR0+624 - ldr x6, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x6, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC5 add x0, x0, :lo12:.LC5 ldrb w1, [x6,1] @@ -786,8 +786,8 @@ nand_flash_print_info: .L117: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L118 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC6 add x0, x0, :lo12:.LC6 ldrb w1, [x1,8] @@ -795,8 +795,8 @@ nand_flash_print_info: .L118: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L119 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC7 add x0, x0, :lo12:.LC7 ldrb w1, [x1,9] @@ -804,8 +804,8 @@ nand_flash_print_info: .L119: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L120 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC8 add x0, x0, :lo12:.LC8 ldrh w1, [x1,10] @@ -813,8 +813,8 @@ nand_flash_print_info: .L120: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L121 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC9 add x0, x0, :lo12:.LC9 ldrb w1, [x1,12] @@ -822,8 +822,8 @@ nand_flash_print_info: .L121: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L122 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC10 add x0, x0, :lo12:.LC10 ldrb w1, [x1,13] @@ -831,8 +831,8 @@ nand_flash_print_info: .L122: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L123 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC11 add x0, x0, :lo12:.LC11 ldrh w1, [x1,14] @@ -840,8 +840,8 @@ nand_flash_print_info: .L123: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L124 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC12 add x0, x0, :lo12:.LC12 ldrb w1, [x1,23] @@ -849,8 +849,8 @@ nand_flash_print_info: .L124: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L125 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC13 add x0, x0, :lo12:.LC13 ldrb w1, [x1,18] @@ -858,8 +858,8 @@ nand_flash_print_info: .L125: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L126 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC14 add x0, x0, :lo12:.LC14 ldrb w1, [x1,19] @@ -867,8 +867,8 @@ nand_flash_print_info: .L126: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L127 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC15 add x0, x0, :lo12:.LC15 ldrb w1, [x1,20] @@ -876,155 +876,158 @@ nand_flash_print_info: .L127: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L128 - adrp x1, .LANCHOR0+632 + adrp x1, .LANCHOR0+1144 adrp x0, .LC16 add x0, x0, :lo12:.LC16 - ldrb w1, [x1,#:lo12:.LANCHOR0+632] + ldrb w1, [x1,#:lo12:.LANCHOR0+1144] bl printk .L128: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L129 - adrp x1, .LANCHOR0 + adrp x0, .LANCHOR0+1136 + ldr x1, [x0,#:lo12:.LANCHOR0+1136] adrp x0, .LC17 add x0, x0, :lo12:.LC17 - ldrb w1, [x1,#:lo12:.LANCHOR0] + ldrb w1, [x1,22] bl printk .L129: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L130 - adrp x0, .LANCHOR0+624 - ldr x1, [x0,#:lo12:.LANCHOR0+624] + adrp x1, .LANCHOR0+1145 adrp x0, .LC18 add x0, x0, :lo12:.LC18 - ldrb w1, [x1,22] + ldrb w1, [x1,#:lo12:.LANCHOR0+1145] bl printk .L130: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L131 - adrp x1, .LANCHOR0+633 + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] + ldrh w1, [x0,16] adrp x0, .LC19 add x0, x0, :lo12:.LC19 - ldrb w1, [x1,#:lo12:.LANCHOR0+633] + and w1, w1, 1 bl printk .L131: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L132 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] ldrh w1, [x0,16] adrp x0, .LC20 add x0, x0, :lo12:.LC20 - and w1, w1, 1 + ubfx x1, x1, 1, 1 bl printk .L132: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L133 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] ldrh w1, [x0,16] adrp x0, .LC21 add x0, x0, :lo12:.LC21 - ubfx x1, x1, 1, 1 + ubfx x1, x1, 2, 1 bl printk .L133: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L134 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] ldrh w1, [x0,16] adrp x0, .LC22 add x0, x0, :lo12:.LC22 - ubfx x1, x1, 2, 1 + ubfx x1, x1, 3, 1 bl printk .L134: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L135 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] ldrh w1, [x0,16] adrp x0, .LC23 add x0, x0, :lo12:.LC23 - ubfx x1, x1, 3, 1 + ubfx x1, x1, 4, 1 bl printk .L135: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L136 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] ldrh w1, [x0,16] adrp x0, .LC24 add x0, x0, :lo12:.LC24 - ubfx x1, x1, 4, 1 + ubfx x1, x1, 5, 1 bl printk .L136: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L137 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] ldrh w1, [x0,16] adrp x0, .LC25 add x0, x0, :lo12:.LC25 - ubfx x1, x1, 5, 1 + ubfx x1, x1, 6, 1 bl printk .L137: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L138 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] ldrh w1, [x0,16] adrp x0, .LC26 add x0, x0, :lo12:.LC26 - ubfx x1, x1, 6, 1 + ubfx x1, x1, 7, 1 bl printk .L138: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L139 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] - ldrh w1, [x0,16] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] + ldrb w1, [x0,17] adrp x0, .LC27 add x0, x0, :lo12:.LC27 - ubfx x1, x1, 7, 1 + and w1, w1, 1 bl printk .L139: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L140 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] - ldrb w1, [x0,17] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] + ldrh w1, [x0,16] adrp x0, .LC28 add x0, x0, :lo12:.LC28 - and w1, w1, 1 + ubfx x1, x1, 9, 1 bl printk .L140: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L141 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] ldrh w1, [x0,16] adrp x0, .LC29 add x0, x0, :lo12:.LC29 - ubfx x1, x1, 9, 1 + ubfx x1, x1, 10, 1 bl printk .L141: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L142 - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] - ldrh w1, [x0,16] + adrp x1, .LANCHOR0 adrp x0, .LC30 + add x2, x1, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC30 - ubfx x1, x1, 10, 1 + ldrb w1, [x1,#:lo12:.LANCHOR0] + ldrb w2, [x2,1146] bl printk .L142: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L143 - adrp x1, .LANCHOR0 + adrp x2, .LANCHOR0 adrp x0, .LC31 - add x2, x1, :lo12:.LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC31 - ldrb w1, [x1,#:lo12:.LANCHOR0] - ldrb w2, [x2,634] + add x2, x2, 1152 + ldrb w1, [x2,10] + ldrb w2, [x2,11] bl printk .L143: ldr w0, [x19,#:lo12:.LANCHOR2] @@ -1033,28 +1036,17 @@ nand_flash_print_info: adrp x0, .LC32 add x2, x2, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC32 - add x2, x2, 640 - ldrb w1, [x2,10] - ldrb w2, [x2,11] - bl printk -.L144: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L145 - adrp x2, .LANCHOR0 - adrp x0, .LC33 - add x2, x2, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC33 - add x2, x2, 640 + add x2, x2, 1152 ldrb w1, [x2,8] ldrb w2, [x2,9] bl printk -.L145: +.L144: ldr w0, [x19,#:lo12:.LANCHOR2] tbz x0, 12, .L115 - adrp x1, .LANCHOR0+672 - adrp x0, .LC34 - add x0, x0, :lo12:.LC34 - ldrb w1, [x1,#:lo12:.LANCHOR0+672] + adrp x1, .LANCHOR0+1184 + adrp x0, .LC33 + add x0, x0, :lo12:.LC33 + ldrb w1, [x1,#:lo12:.LANCHOR0+1184] bl printk .L115: ldr x19, [sp,16] @@ -1073,44 +1065,44 @@ nandc_init: stp x19, x20, [sp,16] str wzr, [x29,56] ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 12, .L241 + tbz x0, 12, .L237 adrp x1, .LANCHOR1 - adrp x0, .LC35 + adrp x0, .LC34 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC35 + add x0, x0, :lo12:.LC34 add x1, x1, 72 mov x2, x22 bl printk -.L241: +.L237: adrp x1, .LANCHOR0 mov w2, 6 add x0, x1, :lo12:.LANCHOR0 ldr w3, [x22,352] mov x20, x1 - strb w2, [x0,516] + strb w2, [x0,1028] mov w2, 12336 movk w2, 0x5638, lsl 16 - str x22, [x0,536] + str x22, [x0,1048] cmp w3, w2 - bne .L242 + bne .L238 mov w1, 8 - strb w1, [x0,516] -.L242: + strb w1, [x0,1028] +.L238: ldr w1, [x22,128] mov w0, 12336 movk w0, 0x5639, lsl 16 cmp w1, w0 - bne .L243 + bne .L239 add x0, x20, :lo12:.LANCHOR0 mov w1, 9 - strb w1, [x0,516] -.L243: + strb w1, [x0,1028] +.L239: add x19, x20, :lo12:.LANCHOR0 - ldrb w0, [x19,516] + ldrb w0, [x19,1028] cmp w0, 9 - bne .L244 + bne .L240 mov w0, 1 - strb w0, [x19,673] + strb w0, [x19,1185] ldr w0, [x29,56] mov w1, 2 orr w0, w0, 256 @@ -1121,11 +1113,11 @@ nandc_init: mov w1, 4161 ldr w0, [x29,56] str w0, [x22] - ldr x0, [x19,536] + ldr x0, [x19,1048] str wzr, [x0,520] str w1, [x0,4] mov w1, 8321 - ldr x0, [x19,536] + ldr x0, [x19,1048] str w1, [x0,8] mov w1, 4099 movk w1, 0x10, lsl 16 @@ -1135,17 +1127,17 @@ nandc_init: mov w1, 39 str w1, [x0,84] ldr w1, [x21,#:lo12:.LANCHOR2] - tbz x1, 12, .L246 + tbz x1, 12, .L242 ldr w1, [x0] ldr w2, [x0,8] ldr w3, [x0,80] ldr w4, [x0,84] ldr w5, [x0,88] - b .L258 -.L244: + b .L254 +.L240: ldr w0, [x29,56] mov w1, 1 - strb wzr, [x19,673] + strb wzr, [x19,1185] orr w0, w0, 256 str w0, [x29,56] ldr w0, [x29,56] @@ -1154,11 +1146,11 @@ nandc_init: mov w1, 4193 ldr w0, [x29,56] str w0, [x22] - ldr x0, [x19,536] + ldr x0, [x19,1048] str wzr, [x0,336] str w1, [x0,4] mov w1, 8321 - ldr x0, [x19,536] + ldr x0, [x19,1048] str w1, [x0,344] mov w1, 4099 movk w1, 0x10, lsl 16 @@ -1169,32 +1161,32 @@ nandc_init: str w1, [x0,308] mov w0, 2048 bl ftl_malloc - str x0, [x19,680] + str x0, [x19,1192] ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 12, .L246 - ldr x0, [x19,536] + tbz x0, 12, .L242 + ldr x0, [x19,1048] ldr w1, [x0] ldr w2, [x0,344] ldr w3, [x0,304] ldr w4, [x0,308] ldr w5, [x0,312] -.L258: - adrp x0, .LC36 - add x0, x0, :lo12:.LC36 +.L254: + adrp x0, .LC35 + add x0, x0, :lo12:.LC35 bl printk -.L246: +.L242: add x1, x20, :lo12:.LANCHOR0 mov w0, 1 - strb w0, [x1,720] + strb w0, [x1,1232] ldr w0, [x21,#:lo12:.LANCHOR2] - strh wzr, [x1,722] - strb wzr, [x1,724] - tbz x0, 12, .L240 - adrp x0, .LC37 - ldrb w1, [x1,516] - add x0, x0, :lo12:.LC37 + strh wzr, [x1,1234] + strb wzr, [x1,1236] + tbz x0, 12, .L236 + adrp x0, .LC36 + ldrb w1, [x1,1028] + add x0, x0, :lo12:.LC36 bl printk -.L240: +.L236: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 64 @@ -1207,11 +1199,11 @@ timer_delay_ns: sub sp, sp, #16 lsr w0, w0, 4 str w0, [sp,12] -.L260: +.L256: ldr w0, [sp,12] sub w1, w0, #1 str w1, [sp,12] - cbnz w0, .L260 + cbnz w0, .L256 add sp, sp, 16 ret .size timer_delay_ns, .-timer_delay_ns @@ -1260,34 +1252,34 @@ toshiba_set_rr_para: adrp x26, .LANCHOR0 mov w27, 85 mov x19, x2 -.L264: +.L260: add x25, x26, :lo12:.LANCHOR0 - ldrb w0, [x25,726] + ldrb w0, [x25,1238] cmp w0, w20 - bls .L270 + bls .L266 add x0, x19, 88 str w27, [x22,8] ldrsb w0, [x20,x0] str w0, [x22,4] mov w0, 200 bl timer_delay_ns - ldrb w0, [x25,725] + ldrb w0, [x25,1237] cmp w0, 34 - bne .L265 + bne .L261 ldrsb w0, [x24,x20] - b .L269 -.L265: + b .L265 +.L261: cmp w0, 35 - bne .L267 + bne .L263 ldrsb w0, [x21,x20] - b .L269 -.L267: + b .L265 +.L263: ldrsb w0, [x23,232] -.L269: +.L265: str w0, [x22] add x20, x20, 1 - b .L264 -.L270: + b .L260 +.L266: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -1308,8 +1300,8 @@ hynix_set_rr_para: stp x21, x22, [sp,32] str x23, [sp,48] stp x19, x20, [sp,16] - ldr x2, [x3,728] - ldr x19, [x3,536] + ldr x2, [x3,1240] + ldr x19, [x3,1048] add x23, x2, 128 add x21, x2, 112 ldrb w22, [x2,113] @@ -1317,25 +1309,25 @@ hynix_set_rr_para: mul w1, w1, w22 cmp w2, 8 sxtw x1, w1 - beq .L272 + beq .L268 sxtw x2, w0 mov x3, 160 madd x2, x2, x3, x1 add x2, x2, 32 add x21, x21, x2 - b .L273 -.L272: + b .L269 +.L268: add x1, x1, 32 add x21, x21, x1 -.L273: +.L269: ubfiz x0, x0, 8, 8 mov x20, 0 add x19, x19, x0 mov w0, 54 str w0, [x19,2056] -.L274: +.L270: cmp w22, w20, uxtb - bls .L276 + bls .L272 ldrb w0, [x23,x20] str w0, [x19,2052] mov w0, 120 @@ -1343,8 +1335,8 @@ hynix_set_rr_para: ldrsb w0, [x21,x20] add x20, x20, 1 str w0, [x19,2048] - b .L274 -.L276: + b .L270 +.L272: mov w0, 22 str w0, [x19,2056] ldp x19, x20, [sp,16] @@ -1363,22 +1355,22 @@ hynix_reconfig_rr_para: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrb w1, [x19,725] + ldrb w1, [x19,1237] sub w1, w1, #1 uxtb w1, w1 cmp w1, 7 - bhi .L277 - ldr x1, [x19,728] + bhi .L273 + ldr x1, [x19,1240] sxtw x20, w0 add x1, x1, x20 ldrb w1, [x1,120] - cbz w1, .L277 + cbz w1, .L273 mov w1, 0 bl hynix_set_rr_para - ldr x0, [x19,728] + ldr x0, [x19,1240] add x20, x0, x20 strb wzr, [x20,120] -.L277: +.L273: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1390,19 +1382,19 @@ nandc_set_ddr_para: adrp x1, .LANCHOR0 uxtb w0, w0 add x1, x1, :lo12:.LANCHOR0 - ldrb w2, [x1,516] - ldr x1, [x1,536] + ldrb w2, [x1,1028] + ldr x1, [x1,1048] cmp w2, 9 lsl w2, w0, 16 lsl w0, w0, 8 orr w0, w2, w0 orr w0, w0, 3 - bne .L283 + bne .L279 str w0, [x1,80] - b .L282 -.L283: + b .L278 +.L279: str w0, [x1,304] -.L282: +.L278: ret .size nandc_set_ddr_para, .-nandc_set_ddr_para .align 2 @@ -1411,15 +1403,15 @@ nandc_set_ddr_para: nandc_get_ddr_para: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,516] - ldr x0, [x0,536] + ldrb w1, [x0,1028] + ldr x0, [x0,1048] cmp w1, 9 - bne .L286 + bne .L282 ldr w0, [x0,80] - b .L288 -.L286: + b .L284 +.L282: ldr w0, [x0,304] -.L288: +.L284: ubfx x0, x0, 8, 8 ret .size nandc_get_ddr_para, .-nandc_get_ddr_para @@ -1431,20 +1423,20 @@ nandc_set_if_mode: uxtb w0, w0 add x3, x3, :lo12:.LANCHOR0 tst w0, 6 - ldr x2, [x3,536] + ldr x2, [x3,1048] ldr w1, [x2] - beq .L290 + beq .L286 orr w1, w1, 24576 and w0, w0, 4 and w1, w1, -32769 cmp w0, wzr orr w1, w1, 196608 - ldrb w0, [x3,516] + ldrb w0, [x3,1028] orr w4, w1, 32768 csel w1, w4, w1, ne cmp w0, 9 mov w0, 8321 - bne .L292 + bne .L288 str w0, [x2,8] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -1453,8 +1445,8 @@ nandc_set_if_mode: str w0, [x2,84] mov w0, 39 str w0, [x2,84] - b .L293 -.L292: + b .L289 +.L288: str w0, [x2,344] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -1463,10 +1455,10 @@ nandc_set_if_mode: str w0, [x2,308] mov w0, 39 str w0, [x2,308] - b .L293 -.L290: + b .L289 +.L286: and w1, w1, -8193 -.L293: +.L289: str w1, [x2] ret .size nandc_set_if_mode, .-nandc_set_if_mode @@ -1474,10 +1466,10 @@ nandc_set_if_mode: .global nandc_cs .type nandc_cs, %function nandc_cs: - adrp x1, .LANCHOR0+536 + adrp x1, .LANCHOR0+1048 mov w2, 1 lsl w0, w2, w0 - ldr x3, [x1,#:lo12:.LANCHOR0+536] + ldr x3, [x1,#:lo12:.LANCHOR0+1048] ldr w1, [x3] bfi w1, w0, 0, 8 str w1, [x3] @@ -1487,8 +1479,8 @@ nandc_cs: .global nandc_de_cs .type nandc_de_cs, %function nandc_de_cs: - adrp x0, .LANCHOR0+536 - ldr x1, [x0,#:lo12:.LANCHOR0+536] + adrp x0, .LANCHOR0+1048 + ldr x1, [x0,#:lo12:.LANCHOR0+1048] ldr w0, [x1] and w0, w0, -256 and w0, w0, -131073 @@ -1499,64 +1491,75 @@ nandc_de_cs: .global flash_wait_device_ready_raw .type flash_wait_device_ready_raw, %function flash_wait_device_ready_raw: - stp x29, x30, [sp, -80]! - adrp x3, .LANCHOR0 + stp x29, x30, [sp, -112]! add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 + mov w19, w1 stp x21, x22, [sp,32] uxtb w21, w0 - add x0, x3, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] + add x0, x20, :lo12:.LANCHOR0 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - mov w20, w1 + stp x27, x28, [sp,80] mov w22, w2 - ldrb w0, [x0,633] - mov x19, x3 + ldrb w0, [x0,1145] cmp w0, w21 - bhi .L299 + bhi .L295 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 700 + mov w2, 805 add x1, x1, 240 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L299: - add x3, x19, :lo12:.LANCHOR0 - add x21, x3, x21, sxtw - ldrb w23, [x21,736] - lsr w24, w20, 8 - lsr w25, w20, 16 - mov w26, 120 - mov w0, w23 - ldr x19, [x3,536] - and w21, w20, 255 +.L295: + add x0, x20, :lo12:.LANCHOR0 + add x21, x0, x21, sxtw + ldrb w21, [x21,1248] + lsr w23, w19, 8 + lsr w24, w19, 16 + lsr w25, w19, 24 + ldr x26, [x0,1048] + ubfiz x27, x21, 8, 8 + mov w28, 120 + and w19, w19, 255 +.L300: + mov w0, w21 bl nandc_cs - ubfiz x3, x23, 8, 8 - add x19, x19, x3 -.L301: - str w26, [x19,2056] + add x1, x26, x27 + add x0, x20, :lo12:.LANCHOR0 + str w28, [x1,2056] + str w19, [x1,2052] + str w23, [x1,2052] + ldrb w0, [x0,1256] + str w24, [x1,2052] + cbz w0, .L296 + str w25, [x1,2052] +.L296: mov w0, 120 - str w21, [x19,2052] - str w24, [x19,2052] - str w25, [x19,2052] + str x1, [x29,104] bl timer_delay_ns - ldr w20, [x19,2048] - and w20, w20, 255 - and w0, w22, w20 - cmp w0, w22 - bne .L301 - cmp w20, 255 - beq .L301 - mov w0, w23 + ldr x1, [x29,104] + mov w0, w21 + ldr w1, [x1,2048] + and w1, w1, 255 + str x1, [x29,104] bl nandc_de_cs - mov w0, w20 + ldr x1, [x29,104] + and w0, w22, w1 + cmp w0, w22 + bne .L300 + cmp w1, 255 + beq .L300 + mov w0, w1 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 112 ret .size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw .align 2 @@ -1570,7 +1573,7 @@ flash_wait_device_ready: stp x29, x30, [sp, -16]! mov w2, w1 add x29, sp, 0 - ldrb w8, [x7,744] + ldrb w8, [x7,1257] sub w5, w5, w8 lsl w3, w6, w5 lsl w6, w6, w8 @@ -1618,7 +1621,7 @@ nandc_wait_flash_ready_no_delay: movk w19, 0x1, lsl 16 .L314: add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,536] + ldr x0, [x0,1048] ldr w0, [x0] str w0, [x29,40] ldr w0, [x29,40] @@ -1640,53 +1643,59 @@ nandc_wait_flash_ready_no_delay: .global zftl_flash_enter_slc_mode .type zftl_flash_enter_slc_mode, %function zftl_flash_enter_slc_mode: - adrp x2, .LANCHOR0 - uxtb x0, w0 - stp x29, x30, [sp, -32]! - add x1, x2, :lo12:.LANCHOR0 + stp x29, x30, [sp, -48]! + adrp x1, .LANCHOR0 add x29, sp, 0 - ldrb w2, [x2,#:lo12:.LANCHOR0] - str x19, [sp,16] - cbz w2, .L317 - cmp w2, 1 - ldr x19, [x1,536] + stp x19, x20, [sp,16] + uxtb x20, w0 + add x0, x1, :lo12:.LANCHOR0 + ldrb w1, [x1,#:lo12:.LANCHOR0] + str x21, [sp,32] + cbz w1, .L317 + cmp w1, 1 + ldr x19, [x0,1048] bne .L320 - adrp x1, .LANCHOR2+37 - ldrb w2, [x1,#:lo12:.LANCHOR2+37] - cbz w2, .L317 - sxtw x1, w0 - add x1, x1, 8 - add x0, x19, x1, lsl 8 - str w2, [x0,8] + adrp x0, .LANCHOR2+37 + ldrb w1, [x0,#:lo12:.LANCHOR2+37] + cbz w1, .L317 + sxtw x0, w20 + add x0, x0, 8 + add x20, x19, x0, lsl 8 + str w1, [x20,8] b .L317 .L320: - cmp w2, 2 + cmp w1, 2 bne .L322 - add x1, x1, x0 - ldrb w2, [x1,752] - cbz w2, .L317 - strb wzr, [x1,752] - adrp x1, .LANCHOR2+37 - ldrb w1, [x1,#:lo12:.LANCHOR2+37] + add x0, x0, x20 + ldrb w1, [x0,1264] cbz w1, .L317 - add x0, x0, 8 - add x0, x19, x0, lsl 8 - str w1, [x0,8] + adrp x21, .LANCHOR2 + strb wzr, [x0,1264] + add x21, x21, :lo12:.LANCHOR2 + add x21, x21, 8 + ldrb w0, [x21,29] + cbz w0, .L317 + add x20, x20, 8 + bl nandc_wait_flash_ready_no_delay + ldrb w0, [x21,29] + add x20, x19, x20, lsl 8 + str w0, [x20,8] b .L317 .L322: - cmp w2, 3 + cmp w1, 3 bne .L317 - add x1, x1, x0, sxtw - ldrb w2, [x1,752] - cbz w2, .L317 - strb wzr, [x1,752] - ubfiz x1, x0, 8, 8 - add x19, x19, x1 + add x21, x0, x20, sxtw + ldrb w0, [x21,1264] + cbz w0, .L317 + bl nandc_wait_flash_ready_no_delay + strb wzr, [x21,1264] + ubfiz x0, x20, 8, 8 + add x19, x19, x0 mov w0, 239 str w0, [x19,2056] mov w0, 145 str w0, [x19,2052] - mov w0, 50 + mov w0, 100 bl timer_delay_ns str wzr, [x19,2048] mov w0, 1 @@ -1698,12 +1707,10 @@ zftl_flash_enter_slc_mode: bl nandc_wait_flash_ready_no_delay mov w0, 218 str w0, [x19,2056] - mov w0, 150 - bl timer_delay_ns - bl nandc_wait_flash_ready_no_delay .L317: - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 + ldp x19, x20, [sp,16] + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 ret .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode .align 2 @@ -1711,74 +1718,77 @@ zftl_flash_enter_slc_mode: .type zftl_flash_exit_slc_mode, %function zftl_flash_exit_slc_mode: stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR0 - uxtb x0, w0 add x29, sp, 0 stp x19, x20, [sp,16] - add x20, x1, :lo12:.LANCHOR0 - ldrb w1, [x1,#:lo12:.LANCHOR0] - str x21, [sp,32] - cbz w1, .L335 - cmp w1, 1 - ldr x19, [x20,536] + uxtb x20, w0 + adrp x0, .LANCHOR0 + stp x21, x22, [sp,32] + add x21, x0, :lo12:.LANCHOR0 + ldrb w0, [x0,#:lo12:.LANCHOR0] + cbz w0, .L335 + cmp w0, 1 + ldr x19, [x21,1048] bne .L338 - adrp x1, .LANCHOR2+38 - ldrb w2, [x1,#:lo12:.LANCHOR2+38] - cbz w2, .L335 - sxtw x1, w0 - add x1, x1, 8 - add x0, x19, x1, lsl 8 - str w2, [x0,8] + adrp x0, .LANCHOR2+38 + ldrb w1, [x0,#:lo12:.LANCHOR2+38] + cbz w1, .L335 + sxtw x0, w20 + add x0, x0, 8 + add x20, x19, x0, lsl 8 + str w1, [x20,8] b .L335 .L338: - cmp w1, 2 + cmp w0, 2 bne .L340 - add x20, x20, x0 - ldrb w1, [x20,752] - cbnz w1, .L335 - adrp x1, .LANCHOR2 - mov w3, 4 - add x1, x1, :lo12:.LANCHOR2 - add x1, x1, 8 - ldrb w2, [x1,12] - ldrb w1, [x1,30] - cmp w2, 2 - csel w2, w2, w3, eq - strb w2, [x20,752] - cbz w1, .L335 - add x0, x0, 8 - add x0, x19, x0, lsl 8 - str w1, [x0,8] + add x21, x21, x20 + ldrb w0, [x21,1264] + cbnz w0, .L335 + adrp x22, .LANCHOR2 + mov w1, 4 + add x22, x22, :lo12:.LANCHOR2 + add x22, x22, 8 + ldrb w0, [x22,12] + cmp w0, 2 + csel w0, w0, w1, eq + strb w0, [x21,1264] + ldrb w0, [x22,30] + cbz w0, .L335 + add x20, x20, 8 + bl nandc_wait_flash_ready_no_delay + ldrb w0, [x22,30] + add x20, x19, x20, lsl 8 + str w0, [x20,8] b .L335 .L340: - cmp w1, 3 + cmp w0, 3 bne .L335 - add x20, x20, x0, sxtw - ldrb w1, [x20,752] - cbnz w1, .L335 - adrp x21, .LANCHOR2 - mov w2, 4 - add x21, x21, :lo12:.LANCHOR2 - ldrb w1, [x21,20] - cmp w1, 2 - csel w1, w1, w2, eq - strb w1, [x20,752] - ubfiz x1, x0, 8, 8 + add x21, x21, x20, sxtw + ldrb w0, [x21,1264] + cbnz w0, .L335 + adrp x22, .LANCHOR2 + bl nandc_wait_flash_ready_no_delay + add x22, x22, :lo12:.LANCHOR2 + mov w1, 4 + ldrb w0, [x22,20] + cmp w0, 2 + csel w0, w0, w1, eq + strb w0, [x21,1264] + ubfiz x0, x20, 8, 8 + add x19, x19, x0 mov w0, 239 - add x19, x19, x1 str w0, [x19,2056] mov w0, 145 str w0, [x19,2052] - mov w0, 50 + mov w0, 100 bl timer_delay_ns - ldrb w0, [x21,15] + ldrb w0, [x22,15] cmp w0, 9 mov w0, 1 bne .L343 str w0, [x19,2048] b .L344 .L343: - ldrb w1, [x20,752] + ldrb w1, [x21,1264] str w1, [x19,2048] .L344: str w0, [x19,2048] @@ -1789,12 +1799,9 @@ zftl_flash_exit_slc_mode: bl nandc_wait_flash_ready_no_delay mov w0, 223 str w0, [x19,2056] - mov w0, 150 - bl timer_delay_ns - bl nandc_wait_flash_ready_no_delay .L335: ldp x19, x20, [sp,16] - ldr x21, [sp,32] + ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode @@ -1802,46 +1809,47 @@ zftl_flash_exit_slc_mode: .global flash_start_page_read .type flash_start_page_read, %function flash_start_page_read: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -80]! + mov w2, 1 add x29, sp, 0 stp x21, x22, [sp,32] adrp x22, .LANCHOR0 uxtb w21, w0 - stp x23, x24, [sp,48] - mov w23, w1 - add x1, x22, :lo12:.LANCHOR0 + add x0, x22, :lo12:.LANCHOR0 + str x25, [sp,64] stp x19, x20, [sp,16] - mov w0, 1 + stp x23, x24, [sp,48] mov w20, 24 - ldrb w19, [x1,744] + mov w23, w1 + ldrb w19, [x0,1257] + ldrb w0, [x0,1145] sub w20, w20, w19 - lsl w19, w0, w19 - lsr w2, w23, w20 + lsl w19, w2, w19 + lsr w1, w1, w20 sub w19, w19, #1 - and w19, w2, w19 - ldrb w0, [x1,633] + and w19, w1, w19 uxtb w19, w19 cmp w0, w19 bhi .L356 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 878 + mov w2, 1001 add x1, x1, 272 add x0, x0, :lo12:.LC0 bl printk bl dump_stack .L356: - add x22, x22, :lo12:.LANCHOR0 - ldrb w0, [x22,633] + add x24, x22, :lo12:.LANCHOR0 + ldrb w0, [x24,1145] cmp w0, w19 bls .L355 - mov w2, 1 - add x19, x22, x19, sxtw - lsl w20, w2, w20 - ldrb w19, [x19,736] + mov w0, 1 + add x19, x24, x19, sxtw + lsl w20, w0, w20 + ldrb w19, [x19,1248] sub w20, w20, #1 - ldr x24, [x22,536] + ldr x25, [x24,1048] and w20, w20, w23 mov w0, w19 ubfx x23, x23, 24, 2 @@ -1857,40 +1865,61 @@ flash_start_page_read: bl zftl_flash_enter_slc_mode b .L359 .L358: - ldr x0, [x22,624] + ldr x0, [x24,1136] ldrb w0, [x0,12] cmp w0, 3 bne .L360 - ldrb w0, [x22,756] + ldrb w0, [x24,1268] + cbnz w0, .L360 + ldrb w0, [x24,1269] cbnz w0, .L360 sxtw x0, w19 add x0, x0, 8 - add x0, x24, x0, lsl 8 + add x0, x25, x0, lsl 8 str w23, [x0,8] b .L359 .L360: mov w0, w19 bl zftl_flash_exit_slc_mode .L359: + add x0, x22, :lo12:.LANCHOR0 + ldr x0, [x0,1136] + ldrb w1, [x0,7] + cmp w1, 1 + bne .L361 + ldrb w0, [x0,12] + cmp w0, 2 + bne .L361 + sxtw x0, w19 + mov w1, 38 + add x0, x0, 8 + add x0, x25, x0, lsl 8 + str w1, [x0,8] +.L361: ubfiz x19, x19, 8, 8 and w0, w20, 255 - add x1, x24, x19 + add x1, x25, x19 + add x22, x22, :lo12:.LANCHOR0 str wzr, [x1,2056] str wzr, [x1,2052] str wzr, [x1,2052] str w0, [x1,2052] lsr w0, w20, 8 str w0, [x1,2052] - lsr w20, w20, 16 + lsr w0, w20, 16 + str w0, [x1,2052] + ldrb w0, [x22,1256] + cbz w0, .L362 + lsr w20, w20, 24 str w20, [x1,2052] - mov w0, 0 +.L362: str w21, [x1,2056] - bl nandc_de_cs .L355: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + ldr x25, [sp,64] + ldp x29, x30, [sp], 80 ret .size flash_start_page_read, .-flash_start_page_read .align 2 @@ -1905,22 +1934,22 @@ nandc_wait_flash_ready: adrp x20, .LANCHOR0 movk w19, 0x1, lsl 16 bl timer_delay_ns -.L366: +.L371: add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,536] + ldr x0, [x0,1048] ldr w0, [x0] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L367 + tbnz x0, 9, .L372 mov w0, 10 bl timer_delay_ns subs w19, w19, #1 - bne .L366 + bne .L371 mov w0, -1 - b .L365 -.L367: + b .L370 +.L372: mov w0, 0 -.L365: +.L370: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1951,23 +1980,23 @@ sandisk_set_rr_para: add x0, x0, x1 add x1, x2, x1 mov x2, 0 -.L370: +.L375: add x3, x5, :lo12:.LANCHOR0 - ldrb w4, [x3,726] + ldrb w4, [x3,1238] cmp w4, w2 - bls .L375 - ldrb w3, [x3,725] + bls .L380 + ldrb w3, [x3,1237] cmp w3, 67 - bne .L371 + bne .L376 ldrsb w3, [x0,x2] - b .L374 -.L371: + b .L379 +.L376: ldrsb w3, [x1,x2] -.L374: +.L379: str w3, [x20] add x2, x2, 1 - b .L370 -.L375: + b .L375 +.L380: bl nandc_wait_flash_ready ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -2056,7 +2085,7 @@ toshiba_tlc_set_rr_para: mov w21, 239 adrp x0, .LANCHOR2 str w21, [x19,8] - cbz w2, .L379 + cbz w2, .L384 mov w2, 18 str w2, [x19,4] mov x2, 7 @@ -2083,8 +2112,8 @@ toshiba_tlc_set_rr_para: ldrb w0, [x20,6] str w0, [x19] str wzr, [x19] - b .L380 -.L379: + b .L385 +.L384: add x0, x0, :lo12:.LANCHOR2 mov w3, 20 add x0, x0, 376 @@ -2094,7 +2123,7 @@ toshiba_tlc_set_rr_para: str w2, [x19] str w2, [x19] str w2, [x19] -.L380: +.L385: bl nandc_wait_flash_ready ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -2102,6 +2131,81 @@ toshiba_tlc_set_rr_para: ret .size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para .align 2 + .global ymtc_3d_set_tlc_rr_para + .type ymtc_3d_set_tlc_rr_para, %function +ymtc_3d_set_tlc_rr_para: + stp x29, x30, [sp, -48]! + mov x2, 7 + uxtb x1, w1 + add x29, sp, 0 + stp x19, x20, [sp,16] + mov x19, x0 + str x21, [sp,32] + mov w21, 239 + str w21, [x0,8] + mov w0, 160 + str w0, [x19,4] + adrp x0, .LANCHOR1 + mul x1, x1, x2 + add x0, x0, :lo12:.LANCHOR1 + add x0, x0, 712 + add x20, x0, x1 + ldrsb w0, [x0,x1] + str w0, [x19] + ldrsb w0, [x20,4] + str w0, [x19] + str wzr, [x19] + str wzr, [x19] + bl nandc_wait_flash_ready + str w21, [x19,8] + mov w0, 161 + str w0, [x19,4] + ldrsb w0, [x20,1] + str w0, [x19] + ldrsb w0, [x20,3] + str w0, [x19] + ldrsb w0, [x20,5] + str w0, [x19] + str wzr, [x19] + bl nandc_wait_flash_ready + str w21, [x19,8] + mov w0, 162 + str w0, [x19,4] + ldrsb w0, [x20,2] + str w0, [x19] + ldrsb w0, [x20,6] + str w0, [x19] + str wzr, [x19] + str wzr, [x19] + bl nandc_wait_flash_ready + ldr x21, [sp,32] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para + .align 2 + .global ymtc_3d_set_slc_rr_para + .type ymtc_3d_set_slc_rr_para, %function +ymtc_3d_set_slc_rr_para: + stp x29, x30, [sp, -16]! + mov w2, 239 + add x29, sp, 0 + str w2, [x0,8] + mov w2, 163 + str w2, [x0,4] + adrp x2, .LANCHOR1 + add x2, x2, :lo12:.LANCHOR1 + add x1, x2, x1, uxtb + ldrsb w1, [x1,1072] + str w1, [x0] + str wzr, [x0] + str wzr, [x0] + str wzr, [x0] + bl nandc_wait_flash_ready + ldp x29, x30, [sp], 16 + ret + .size ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para + .align 2 .global flash_start_plane_read .type flash_start_plane_read, %function flash_start_plane_read: @@ -2109,128 +2213,156 @@ flash_start_plane_read: mov w3, 24 mov w2, 1 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 - add x4, x23, :lo12:.LANCHOR0 stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 + add x4, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] + stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ubfx x21, x0, 24, 2 - ldrb w5, [x4,744] + ubfx x23, x0, 24, 2 + ldrb w5, [x4,1257] sub w3, w3, w5 - lsl w20, w2, w3 + lsl w21, w2, w3 lsl w2, w2, w5 lsr w19, w0, w3 sub w2, w2, #1 - sub w20, w20, #1 + sub w21, w21, #1 and w19, w19, w2 - and w22, w20, w0 - ldrb w0, [x4,633] + and w22, w21, w0 + ldrb w0, [x4,1145] uxtb w19, w19 - and w20, w20, w1 + and w21, w21, w1 cmp w0, w19 - bhi .L382 + bhi .L389 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 977 - add x1, x1, 712 + mov w2, 1128 + add x1, x1, 1088 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L382: - add x26, x23, :lo12:.LANCHOR0 +.L389: + add x26, x20, :lo12:.LANCHOR0 add x19, x26, x19, sxtw - ldrb w24, [x19,736] + ldrb w24, [x19,1248] mov w0, w24 - ldr x25, [x26,536] + ldr x25, [x26,1048] bl nandc_cs - cbnz w21, .L383 + cbnz w23, .L390 mov w0, w22 bl slc_phy_page_address_calc mov w22, w0 - mov w0, w20 + mov w0, w21 bl slc_phy_page_address_calc - mov w20, w0 + mov w21, w0 adrp x0, .LANCHOR0 ldrb w0, [x0,#:lo12:.LANCHOR0] - cbz w0, .L384 + cbz w0, .L391 mov w0, w24 bl zftl_flash_enter_slc_mode - b .L384 -.L383: - ldr x0, [x26,624] + b .L391 +.L390: + ldr x0, [x26,1136] ldrb w0, [x0,12] cmp w0, 3 - bne .L385 - ldrb w0, [x26,756] - cbnz w0, .L385 + bne .L392 + ldrb w0, [x26,1268] + cbnz w0, .L392 + ldrb w0, [x26,1269] + cbnz w0, .L392 sxtw x0, w24 add x0, x0, 8 add x0, x25, x0, lsl 8 - str w21, [x0,8] - b .L384 -.L385: + str w23, [x0,8] + b .L391 +.L392: mov w0, w24 bl zftl_flash_exit_slc_mode -.L384: - add x26, x23, :lo12:.LANCHOR0 - and w2, w22, 255 - add x0, x26, 640 - and w28, w20, 255 - lsr w27, w20, 8 +.L391: + add x0, x20, :lo12:.LANCHOR0 uxtb x19, w24 - ldrb w1, [x0,16] - lsr w20, w20, 16 - cmp w1, 1 - lsr w1, w22, 8 - lsr w22, w22, 16 - bne .L386 + and w4, w22, 255 + lsr w3, w22, 8 + and w28, w21, 255 + lsr w27, w21, 8 + ldrb w2, [x0,1168] + lsr w26, w21, 16 + cmp w2, 1 + lsr w2, w22, 16 + bne .L393 add x19, x25, x19, lsl 8 - ldrb w3, [x0,8] - ldrb w0, [x0,9] - str w3, [x19,2056] + ldrb w1, [x0,1160] + ldrb w0, [x0,1256] + str w1, [x19,2056] str wzr, [x19,2052] str wzr, [x19,2052] + str w4, [x19,2052] + str w3, [x19,2052] str w2, [x19,2052] - str w1, [x19,2052] + cbz w0, .L394 + lsr w22, w22, 24 str w22, [x19,2052] +.L394: + add x22, x20, :lo12:.LANCHOR0 + ldrb w0, [x22,1161] str w0, [x19,2056] bl nandc_wait_flash_ready - cbz w21, .L387 - ldr x0, [x26,624] + cbz w23, .L395 + ldr x0, [x22,1136] ldrb w0, [x0,12] cmp w0, 3 - bne .L387 - str w21, [x19,2056] -.L387: + bne .L395 + str w23, [x19,2056] +.L395: str wzr, [x19,2056] + add x20, x20, :lo12:.LANCHOR0 str wzr, [x19,2052] str wzr, [x19,2052] - b .L405 -.L386: - add x19, x25, x19, lsl 8 - ldrb w0, [x0,8] - str w0, [x19,2056] - str w2, [x19,2052] - str w1, [x19,2052] - str w22, [x19,2052] - cbz w21, .L389 - ldr x0, [x26,624] - ldrb w0, [x0,12] - cmp w0, 3 - bne .L389 - str w21, [x19,2056] -.L389: - add x23, x23, :lo12:.LANCHOR0 - ldrb w0, [x23,649] - str w0, [x19,2056] -.L405: str w28, [x19,2052] - mov w0, 48 str w27, [x19,2052] - str w20, [x19,2052] + ldrb w0, [x20,1256] + str w26, [x19,2052] + cbz w0, .L421 + lsr w21, w21, 24 + str w21, [x19,2052] + b .L421 +.L393: + ldr x1, [x0,1136] + ldrb w0, [x1,7] + cmp w0, 1 + bne .L398 + ldrb w0, [x1,12] + cmp w0, 2 + bne .L398 + sxtw x0, w24 + mov w5, 38 + add x0, x0, 8 + add x0, x25, x0, lsl 8 + str w5, [x0,8] +.L398: + add x0, x20, :lo12:.LANCHOR0 + add x19, x25, x19, lsl 8 + ldrb w0, [x0,1160] + str w0, [x19,2056] + str w4, [x19,2052] + str w3, [x19,2052] + str w2, [x19,2052] + cbz w23, .L399 + ldrb w0, [x1,12] + cmp w0, 3 + bne .L399 + str w23, [x19,2056] +.L399: + add x20, x20, :lo12:.LANCHOR0 + ldrb w0, [x20,1161] + str w0, [x19,2056] + str w28, [x19,2052] + str w27, [x19,2052] + str w26, [x19,2052] +.L421: + mov w0, 48 str w0, [x19,2056] mov w0, w24 bl nandc_de_cs @@ -2251,103 +2383,102 @@ flash_set_interface_mode: stp x21, x22, [sp,32] stp x23, x24, [sp,48] adrp x22, .LANCHOR0 - adrp x23, .LC39 - adrp x24, .LC38 + adrp x23, .LC38 + adrp x24, .LC37 str x25, [sp,64] stp x19, x20, [sp,16] mov w25, w0 mov x21, 0 add x22, x22, :lo12:.LANCHOR0 - add x23, x23, :lo12:.LC39 - add x24, x24, :lo12:.LC38 -.L421: + add x23, x23, :lo12:.LC38 + add x24, x24, :lo12:.LC37 +.L437: add x0, x22, x21, lsl 3 - ldr x20, [x22,536] + ldr x20, [x22,1048] adrp x1, .LANCHOR0 - ldrb w19, [x0,760] + ldrb w19, [x0,1272] cmp w19, 152 - beq .L407 + beq .L423 cmp w19, 69 - beq .L407 + beq .L423 cmp w19, 155 - beq .L407 + beq .L423 cmp w19, 44 cset w2, eq cmp w19, 137 cset w0, eq orr w0, w2, w0 - cbz w0, .L408 -.L407: + cbz w0, .L424 +.L423: add x1, x1, :lo12:.LANCHOR0 cmp w25, 1 - ldrb w1, [x1,792] - bne .L410 - tbz x1, 0, .L408 + ldrb w1, [x1,1304] + bne .L426 + tbz x1, 0, .L424 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L411 + tbz x0, 12, .L427 mov x0, x24 bl printk -.L411: +.L427: add x1, x20, x21, lsl 8 mov w0, 239 cmp w19, 137 str w0, [x1,2056] - beq .L422 + beq .L438 cmp w19, 44 - bne .L412 -.L422: + bne .L428 +.L438: mov w0, 1 - str w0, [x1,2052] - mov w0, 5 - b .L441 -.L412: + b .L459 +.L428: cmp w19, 155 mov w0, 1 - bne .L420 + bne .L436 +.L459: str w0, [x1,2052] - mov w0, 3 - b .L441 -.L410: - tbz x1, 2, .L408 + mov w0, 5 + b .L457 +.L426: + tbz x1, 2, .L424 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L416 + tbz x0, 12, .L432 mov x0, x23 bl printk -.L416: +.L432: add x1, x20, x21, lsl 8 mov w0, 239 cmp w19, 137 str w0, [x1,2056] - beq .L423 + beq .L439 cmp w19, 44 cset w0, eq - cbz w0, .L417 -.L423: + cbz w0, .L433 +.L439: mov w0, 1 str w0, [x1,2052] mov w0, 35 - b .L441 -.L417: + b .L457 +.L433: cmp w19, 155 - bne .L420 + bne .L436 mov w0, 1 str w0, [x1,2052] mov w0, 37 - b .L441 -.L420: + b .L457 +.L436: mov w2, 128 str w2, [x1,2052] -.L441: +.L457: str w0, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L408: +.L424: add x21, x21, 1 cmp x21, 4 - bne .L421 + bne .L437 bl nandc_wait_flash_ready ldr x25, [sp,64] mov w0, 0 @@ -2367,8 +2498,8 @@ mt_auto_read_calibration_config: ubfiz x19, x19, 8, 8 str x1, [x29,40] bl nandc_wait_flash_ready - adrp x0, .LANCHOR0+536 - ldr x0, [x0,#:lo12:.LANCHOR0+536] + adrp x0, .LANCHOR0+1048 + ldr x0, [x0,#:lo12:.LANCHOR0+1048] add x19, x0, x19 mov w0, 239 str w0, [x19,2056] @@ -2389,12 +2520,12 @@ mt_auto_read_calibration_config: .global flash_reset .type flash_reset, %function flash_reset: - adrp x1, .LANCHOR0+536 + adrp x1, .LANCHOR0+1048 uxtb x0, w0 stp x29, x30, [sp, -16]! add x0, x0, 8 add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR0+536] + ldr x1, [x1,#:lo12:.LANCHOR0+1048] add x0, x1, x0, lsl 8 mov w1, 255 str w1, [x0,8] @@ -2410,10 +2541,10 @@ flash_read_id: add x29, sp, 0 str x21, [sp,32] uxtb w21, w0 - adrp x0, .LANCHOR0+536 + adrp x0, .LANCHOR0+1048 stp x19, x20, [sp,16] mov x19, x1 - ldr x20, [x0,#:lo12:.LANCHOR0+536] + ldr x20, [x0,#:lo12:.LANCHOR0+1048] mov w0, w21 bl flash_reset mov w0, w21 @@ -2447,17 +2578,17 @@ flash_read_id: sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L445 - adrp x0, .LC40 + bhi .L462 + adrp x0, .LC39 ldrb w3, [x19,1] ldrb w4, [x19,2] - add x0, x0, :lo12:.LC40 + add x0, x0, :lo12:.LC39 ldrb w5, [x19,3] add w1, w21, 1 ldrb w6, [x19,4] ldrb w7, [x19,5] bl printk -.L445: +.L462: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -2468,12 +2599,12 @@ flash_read_id: .type flash_read_spare, %function flash_read_spare: stp x29, x30, [sp, -48]! - adrp x4, .LANCHOR0+536 + adrp x4, .LANCHOR0+1048 ubfiz x0, x0, 8, 8 add x29, sp, 0 str x19, [sp,16] adrp x3, .LANCHOR2+17 - ldr x19, [x4,#:lo12:.LANCHOR0+536] + ldr x19, [x4,#:lo12:.LANCHOR0+1048] str x2, [x29,40] add x19, x19, x0 ldrb w3, [x3,#:lo12:.LANCHOR2+17] @@ -2506,11 +2637,11 @@ flash_read_otp_data: add x29, sp, 0 stp x21, x22, [sp,32] uxtb w21, w0 - adrp x0, .LANCHOR0+536 + adrp x0, .LANCHOR0+1048 stp x19, x20, [sp,16] str x23, [sp,48] mov w20, w1 - ldr x19, [x0,#:lo12:.LANCHOR0+536] + ldr x19, [x0,#:lo12:.LANCHOR0+1048] mov w0, w21 mov x23, x2 mov w22, 144 @@ -2531,9 +2662,9 @@ flash_read_otp_data: mov w0, 238 str w0, [x19,2056] str w22, [x19,2052] - adrp x0, .LC41 + adrp x0, .LC40 mov w1, w20 - add x0, x0, :lo12:.LC41 + add x0, x0, :lo12:.LC40 ldr w2, [x19,2048] ldr w3, [x19,2048] ldr w4, [x19,2048] @@ -2552,12 +2683,12 @@ flash_read_otp_data: str w0, [x19,2056] bl nandc_wait_flash_ready mov x1, 0 -.L449: +.L466: ldr w0, [x19,2048] strb w0, [x23,x1] add x1, x1, 1 cmp x1, 16384 - bne .L449 + bne .L466 mov w0, 239 str w0, [x19,2056] mov w0, 144 @@ -2581,21 +2712,21 @@ flash_read_otp_data: .type sandisk_prog_test_bad_block, %function sandisk_prog_test_bad_block: stp x29, x30, [sp, -64]! - adrp x2, .LANCHOR0+536 + adrp x2, .LANCHOR0+1048 uxtb w0, w0 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR2 - ldr x19, [x2,#:lo12:.LANCHOR0+536] + ldr x19, [x2,#:lo12:.LANCHOR0+1048] add x2, x20, :lo12:.LANCHOR2 str x21, [sp,32] ldrb w3, [x2,37] sxtw x2, w0 add x2, x2, 8 add x2, x19, x2, lsl 8 - cbnz w3, .L465 + cbnz w3, .L482 mov w3, 162 -.L465: +.L482: ubfiz x0, x0, 8, 8 str w3, [x2,8] add x19, x19, x0 @@ -2621,18 +2752,18 @@ sandisk_prog_test_bad_block: mov w0, 5 ldr x1, [x29,56] ands w21, w2, w0 - beq .L454 + beq .L471 ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L454 - adrp x0, .LC42 - add x0, x0, :lo12:.LC42 + tbz x0, 12, .L471 + adrp x0, .LC41 + add x0, x0, :lo12:.LC41 bl printk -.L454: +.L471: add x20, x20, :lo12:.LANCHOR2 ldrb w0, [x20,38] - cbz w0, .L455 + cbz w0, .L472 str w0, [x19,2056] -.L455: +.L472: mov w0, w21 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -2643,9 +2774,9 @@ sandisk_prog_test_bad_block: .global nandc_rdy_status .type nandc_rdy_status, %function nandc_rdy_status: - adrp x0, .LANCHOR0+536 + adrp x0, .LANCHOR0+1048 sub sp, sp, #16 - ldr x0, [x0,#:lo12:.LANCHOR0+536] + ldr x0, [x0,#:lo12:.LANCHOR0+1048] ldr w0, [x0] str w0, [sp,8] ldr w0, [sp,8] @@ -2664,23 +2795,23 @@ nandc_bch_sel: str w1, [sp,8] adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrb w2, [x1,516] - strb w0, [x1,724] + ldrb w2, [x1,1028] + strb w0, [x1,1236] cmp w2, 9 - ldr x2, [x1,536] + ldr x2, [x1,1048] ldr w1, [sp,8] - bne .L468 + bne .L485 str w1, [x2,16] cmp w0, 70 mov w1, 0 - beq .L469 + beq .L486 cmp w0, 60 mov w1, 3 - beq .L469 + beq .L486 cmp w0, 40 mov w1, 2 csinc w1, w1, wzr, eq -.L469: +.L486: str wzr, [sp] ldr w0, [sp] bfi w0, w1, 25, 3 @@ -2690,8 +2821,8 @@ nandc_bch_sel: str w0, [sp] ldr w0, [sp] str w0, [x2,32] - b .L467 -.L468: + b .L484 +.L485: str w1, [x2,8] mov w3, 16 str wzr, [sp] @@ -2702,13 +2833,13 @@ nandc_bch_sel: ldr w1, [sp] and w1, w1, -262145 str w1, [sp] - beq .L477 + beq .L494 cmp w0, 24 - bne .L473 + bne .L490 ldr w0, [sp] orr w0, w0, 16 - b .L478 -.L473: + b .L495 +.L490: ldr w1, [sp] cmp w0, 40 orr w1, w1, 262144 @@ -2716,19 +2847,19 @@ nandc_bch_sel: ldr w1, [sp] orr w1, w1, 16 str w1, [sp] - bne .L472 -.L477: + bne .L489 +.L494: ldr w0, [sp] and w0, w0, -17 -.L478: +.L495: str w0, [sp] -.L472: +.L489: ldr w0, [sp] orr w0, w0, 1 str w0, [sp] ldr w0, [sp] str w0, [x2,12] -.L467: +.L484: add sp, sp, 16 ret .size nandc_bch_sel, .-nandc_bch_sel @@ -2743,76 +2874,76 @@ zftl_flash_resume: str x23, [sp,48] add x0, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - ldrb w1, [x0,516] - ldr w2, [x0,544] + ldrb w1, [x0,1028] + ldr w2, [x0,1056] cmp w1, 9 - ldr x1, [x0,536] + ldr x1, [x0,1048] str w2, [x1] - ldr x1, [x0,536] - ldr w2, [x0,548] + ldr x1, [x0,1048] + ldr w2, [x0,1060] str w2, [x1,4] - ldr x1, [x0,536] - ldr w2, [x0,552] - bne .L480 + ldr x1, [x0,1048] + ldr w2, [x0,1064] + bne .L497 str w2, [x1,16] - ldr w2, [x0,556] + ldr w2, [x0,1068] str w2, [x1,32] - ldr w2, [x0,560] + ldr w2, [x0,1072] str w2, [x1,80] - ldr w2, [x0,564] + ldr w2, [x0,1076] str w2, [x1,84] - ldr w2, [x0,568] + ldr w2, [x0,1080] str w2, [x1,520] - ldr w0, [x0,572] + ldr w0, [x0,1084] str w0, [x1,8] - b .L481 -.L480: + b .L498 +.L497: str w2, [x1,8] - ldr w2, [x0,556] + ldr w2, [x0,1068] str w2, [x1,12] - ldr w2, [x0,560] + ldr w2, [x0,1072] str w2, [x1,304] - ldr w2, [x0,564] + ldr w2, [x0,1076] str w2, [x1,308] - ldr w2, [x0,568] + ldr w2, [x0,1080] str w2, [x1,336] - ldr w0, [x0,572] + ldr w0, [x0,1084] str w0, [x1,344] -.L481: +.L498: mov x19, 0 add x21, x20, :lo12:.LANCHOR0 mov w23, 2 -.L483: +.L500: add x0, x21, x19, lsl 3 - ldrb w0, [x0,760] + ldrb w0, [x0,1272] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L482 + bhi .L499 uxtb w22, w19 mov w0, w22 bl flash_reset - add x0, x21, 752 + add x0, x21, 1264 strb w23, [x19,x0] mov w0, w22 bl zftl_flash_enter_slc_mode -.L482: +.L499: add x19, x19, 1 cmp x19, 4 - bne .L483 + bne .L500 add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,672] - cbz w0, .L484 + ldrb w0, [x20,1184] + cbz w0, .L501 mov w0, 1 bl nandc_set_if_mode mov w0, w19 bl flash_set_interface_mode mov w0, w19 bl nandc_set_if_mode - ldr w0, [x20,560] + ldr w0, [x20,1072] lsr w0, w0, 8 bl nandc_set_ddr_para -.L484: +.L501: adrp x0, .LANCHOR2+28 ldrb w0, [x0,#:lo12:.LANCHOR2+28] bl nandc_bch_sel @@ -2842,35 +2973,35 @@ nandc_iqr_wait_flash_ready: str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,536] + ldr x0, [x19,1048] bl rk_nandc_rb_irq_flag_init - ldrb w1, [x19,516] - ldr x0, [x19,536] + ldrb w1, [x19,1028] + ldr x0, [x19,1048] cmp w1, 9 - bne .L491 + bne .L508 ldr w1, [x0,292] orr w1, w1, 2 str w1, [x0,292] ldr w1, [x0,288] orr w1, w1, 2 str w1, [x0,288] - b .L492 -.L491: + b .L509 +.L508: ldr w1, [x0,368] orr w1, w1, 2 str w1, [x0,368] ldr w1, [x0,364] orr w1, w1, 2 str w1, [x0,364] -.L492: +.L509: ldr w1, [x0] - tbnz x1, 9, .L493 + tbnz x1, 9, .L510 bl wait_for_nand_flash_ready - b .L490 -.L493: + b .L507 +.L510: mov w1, 1 bl nandc_irq_disable -.L490: +.L507: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2881,63 +3012,89 @@ nandc_iqr_wait_flash_ready: flash_erase_duplane_block: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - uxtb w19, w0 - add x0, x20, :lo12:.LANCHOR0 - str x25, [sp,64] - stp x23, x24, [sp,48] stp x21, x22, [sp,32] - uxtb w25, w1 - mov w23, w2 - ldrb w0, [x0,633] - mov w24, w3 + adrp x21, .LANCHOR0 + str x25, [sp,64] + stp x19, x20, [sp,16] + uxtb w19, w0 + add x0, x21, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] + uxtb w20, w1 + mov w24, w2 + ldrb w0, [x0,1145] + mov w23, w3 cmp w0, w19 - bhi .L496 + bhi .L513 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 604 - add x1, x1, 736 + mov w2, 688 + add x1, x1, 1112 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L496: - add x1, x20, :lo12:.LANCHOR0 +.L513: + add x1, x21, :lo12:.LANCHOR0 mov w0, -1 - ldrb w2, [x1,633] + ldrb w2, [x1,1145] cmp w2, w19 - bls .L497 + bls .L514 adrp x0, .LANCHOR2 add x19, x1, x19, sxtw - ldrb w22, [x19,736] - ldr x19, [x1,536] + ldrb w25, [x19,1248] + ldr x19, [x1,1048] ldr w0, [x0,#:lo12:.LANCHOR2] - mov x21, x22 - add x22, x22, 8 - add x22, x19, x22, lsl 8 - tbz x0, 4, .L498 - adrp x0, .LC43 - mov w1, w21 - add x0, x0, :lo12:.LC43 - mov w2, w23 - mov w3, w24 + mov x22, x25 + add x25, x25, 8 + add x25, x19, x25, lsl 8 + tbz x0, 4, .L515 + adrp x0, .LC42 + mov w1, w22 + add x0, x0, :lo12:.LC42 + mov w2, w24 + mov w3, w23 bl printk -.L498: +.L515: bl nandc_wait_flash_ready - mov w0, w21 + mov w0, w22 bl nandc_cs - mov w0, w21 - cbnz w25, .L499 + mov w0, w22 + cbnz w20, .L516 bl zftl_flash_enter_slc_mode - b .L500 -.L499: + b .L517 +.L516: bl zftl_flash_exit_slc_mode -.L500: - ubfiz x4, x21, 8, 8 +.L517: + ubfiz x4, x22, 8, 8 mov w0, 96 add x19, x19, x4 - add x20, x20, :lo12:.LANCHOR0 + str w0, [x19,2056] + and w0, w24, 255 + str w0, [x19,2052] + lsr w0, w24, 8 + str w0, [x19,2052] + lsr w0, w24, 16 + str w0, [x19,2052] + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,1256] + cbz w0, .L518 + lsr w0, w24, 24 + str w0, [x19,2052] +.L518: + add x0, x21, :lo12:.LANCHOR0 + mov w20, 0 + ldrb w0, [x0,1305] + cbnz w0, .L519 + mov w0, 208 + str w0, [x19,2056] + mov w20, 5 + bl nandc_wait_flash_ready + mov x0, x25 + bl flash_read_status + and w20, w0, w20 +.L519: + mov w0, 96 + add x21, x21, :lo12:.LANCHOR0 str w0, [x19,2056] and w0, w23, 255 str w0, [x19,2052] @@ -2945,47 +3102,33 @@ flash_erase_duplane_block: str w0, [x19,2052] lsr w0, w23, 16 str w0, [x19,2052] - ldrb w0, [x20,793] - mov w20, 0 - cbnz w0, .L501 - mov w0, 208 - str w0, [x19,2056] - mov w20, 5 - bl nandc_wait_flash_ready - mov x0, x22 - bl flash_read_status - and w20, w0, w20 -.L501: - mov w0, 96 - str w0, [x19,2056] - and w0, w24, 255 - str w0, [x19,2052] - lsr w0, w24, 8 - str w0, [x19,2052] - lsr w24, w24, 16 - str w24, [x19,2052] + ldrb w0, [x21,1256] + cbz w0, .L520 + lsr w23, w23, 24 + str w23, [x19,2052] +.L520: mov w0, 208 str w0, [x19,2056] mov w19, 5 bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - mov x0, x22 + mov x0, x25 bl flash_read_status mov w2, w0 - mov w0, w21 + mov w0, w22 str x2, [x29,88] bl nandc_de_cs ldr x2, [x29,88] and w19, w2, w19 orr w19, w19, w20 - cbz w19, .L502 - adrp x0, .LC44 - mov w1, w23 - add x0, x0, :lo12:.LC44 + cbz w19, .L521 + adrp x0, .LC43 + mov w1, w24 + add x0, x0, :lo12:.LC43 bl printk -.L502: +.L521: mov w0, w19 -.L497: +.L514: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3008,56 +3151,56 @@ flash_erase_block_en: stp x23, x24, [sp,48] uxtb w22, w0 mov w0, 24 - ldrb w19, [x1,744] + ldrb w19, [x1,1257] mov w23, w2 sub w19, w0, w19 mov w0, 1 lsl w19, w0, w19 - ldrb w0, [x1,633] + ldrb w0, [x1,1145] sub w19, w19, #1 cmp w0, w22 and w19, w19, w2 - bhi .L512 + bhi .L537 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 653 - add x1, x1, 768 + mov w2, 750 + add x1, x1, 1144 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L512: +.L537: add x1, x20, :lo12:.LANCHOR0 mov w0, -1 - ldrb w2, [x1,633] + ldrb w2, [x1,1145] cmp w2, w22 - bls .L513 + bls .L538 add x0, x1, x22, sxtw - ldrb w24, [x0,736] + ldrb w24, [x0,1248] adrp x0, .LANCHOR2 - ldr x26, [x1,536] + ldr x26, [x1,1048] mov x21, x24 add x24, x24, 8 ldr w0, [x0,#:lo12:.LANCHOR2] add x24, x26, x24, lsl 8 - tbz x0, 4, .L514 - adrp x0, .LC45 + tbz x0, 4, .L539 + adrp x0, .LC44 mov w1, w21 - add x0, x0, :lo12:.LC45 + add x0, x0, :lo12:.LC44 mov w2, w23 mov w3, w25 bl printk -.L514: +.L539: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs mov w0, w21 - cbnz w25, .L515 + cbnz w25, .L540 bl zftl_flash_enter_slc_mode - b .L516 -.L515: + b .L541 +.L540: bl zftl_flash_exit_slc_mode -.L516: +.L541: ubfiz x3, x21, 8, 8 mov w0, 96 add x3, x26, x3 @@ -3066,8 +3209,14 @@ flash_erase_block_en: str w0, [x3,2052] lsr w0, w19, 8 str w0, [x3,2052] - lsr w19, w19, 16 + lsr w0, w19, 16 + str w0, [x3,2052] + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,1256] + cbz w0, .L542 + lsr w19, w19, 24 str w19, [x3,2052] +.L542: mov w0, 208 str w0, [x3,2056] bl nandc_iqr_wait_flash_ready @@ -3079,18 +3228,18 @@ flash_erase_block_en: bl nandc_de_cs mov w3, 5 ands w3, w19, w3 - beq .L517 + beq .L543 add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC46 - add x0, x0, :lo12:.LC46 + adrp x0, .LC45 + add x0, x0, :lo12:.LC45 mov w1, w22 ldrh w2, [x20,2] udiv w2, w23, w2 bl printk mov w3, -1 -.L517: +.L543: mov w0, w3 -.L513: +.L538: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3129,31 +3278,31 @@ flash_erase_all: mov x21, x0 mul w20, w1, w20 uxth w20, w20 -.L527: - ldrb w0, [x23,633] +.L556: + ldrb w0, [x23,1145] cmp w0, w19 - bls .L531 + bls .L560 add x0, x23, x19, sxtw - ldrb w24, [x0,736] + ldrb w24, [x0,1248] mov w22, 0 -.L528: +.L557: cmp w20, w22, uxth - bls .L532 + bls .L561 add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x0,2] mov w0, w24 mul w1, w22, w1 add w22, w22, 1 bl flash_erase_block - b .L528 -.L532: + b .L557 +.L561: add w19, w19, 1 uxth w19, w19 - b .L527 -.L531: - adrp x0, .LC47 + b .L556 +.L560: + adrp x0, .LC46 mov w1, 0 - add x0, x0, :lo12:.LC47 + add x0, x0, :lo12:.LC46 bl printk ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3187,9 +3336,9 @@ nandc_xfer_start: mov x0, x2 and w6, w21, 1 add w5, w1, 1 - ldrb w2, [x4,516] + ldrb w2, [x4,1028] cmp w2, 9 - bne .L535 + bne .L564 str wzr, [x29,56] mov w2, 1 ubfx x5, x5, 1, 6 @@ -3217,35 +3366,35 @@ nandc_xfer_start: ldr w1, [x29,56] orr w1, w1, 128 str w1, [x29,56] - ldrb w1, [x4,673] - cbz w1, .L536 - ldrb w1, [x4,720] - cbz w1, .L536 + ldrb w1, [x4,1185] + cbz w1, .L565 + ldrb w1, [x4,1232] + cbz w1, .L565 ldr w1, [x29,56] orr w1, w1, 512 str w1, [x29,56] -.L536: +.L565: ldr w1, [x29,56] add x20, x20, :lo12:.LANCHOR0 mov w2, w21 ubfx x1, x1, 22, 6 lsl w1, w1, 10 - str x3, [x20,696] - str x0, [x20,688] + str x3, [x20,1208] + str x0, [x20,1200] bl rknand_dma_map_single - str w0, [x20,704] + str w0, [x20,1216] ldr w1, [x29,56] mov w2, w21 - ldr x0, [x20,696] + ldr x0, [x20,1208] ubfx x1, x1, 22, 6 lsl w1, w1, 2 bl rknand_dma_map_single - str w0, [x20,708] + str w0, [x20,1220] mov w1, 1 - str w1, [x20,712] - ldr x1, [x20,536] + str w1, [x20,1224] + ldr x1, [x20,1048] cmp w21, wzr - ldr w2, [x20,704] + ldr w2, [x20,1216] str w2, [x1,52] mov w2, 16 str w0, [x1,56] @@ -3268,7 +3417,7 @@ nandc_xfer_start: ldr w0, [x29,64] bfi w0, w2, 1, 1 str w0, [x29,64] - ldrh w2, [x20,722] + ldrh w2, [x20,1234] ldr w0, [x29,64] orr w0, w0, 1 str w0, [x29,64] @@ -3284,9 +3433,9 @@ nandc_xfer_start: str w0, [x29,56] ldr w0, [x29,56] str w0, [x1,16] - b .L534 -.L535: - ldr x2, [x4,536] + b .L563 +.L564: + ldr x2, [x4,1048] mov w7, 16 ubfx x5, x5, 1, 6 ldr w2, [x2,12] @@ -3323,8 +3472,8 @@ nandc_xfer_start: ldr w2, [x29,56] bfi w2, w5, 22, 6 str w2, [x29,56] - cbz w21, .L538 - ldrb w2, [x4,724] + cbz w21, .L567 + ldrb w2, [x4,1236] ubfx x1, x1, 1, 7 mov w5, 128 cmp w2, 25 @@ -3332,47 +3481,47 @@ nandc_xfer_start: csel w2, w2, w5, cc add x1, x3, x1, lsl 2 mov w5, 0 -.L540: +.L569: cmp x3, x1 add w7, w5, w2 - beq .L542 + beq .L571 ldrh w6, [x3,2] and x5, x5, 4294967292 - ldr x8, [x4,680] + ldr x8, [x4,1192] ldrh w9, [x3],4 orr w6, w9, w6, lsl 16 str w6, [x8,x5] mov w5, w7 - b .L540 -.L538: - ldr x1, [x4,680] + b .L569 +.L567: + ldr x1, [x4,1192] str w6, [x1] -.L542: +.L571: add x20, x20, :lo12:.LANCHOR0 mov w2, w21 - ldr x1, [x20,680] - str x1, [x20,696] + ldr x1, [x20,1192] + str x1, [x20,1208] ldr w1, [x29,56] - str x0, [x20,688] + str x0, [x20,1200] ubfx x1, x1, 22, 6 lsl w1, w1, 10 bl rknand_dma_map_single - str w0, [x20,704] + str w0, [x20,1216] ldr w1, [x29,56] mov w2, w21 - ldr x0, [x20,696] + ldr x0, [x20,1208] ubfx x1, x1, 22, 6 lsl w1, w1, 7 bl rknand_dma_map_single - str w0, [x20,708] - ldr x1, [x20,536] + str w0, [x20,1220] + ldr x1, [x20,1048] mov w0, 1 - str w0, [x20,712] + str w0, [x20,1224] mov w2, 16 - ldr w0, [x20,704] + ldr w0, [x20,1216] cmp w21, wzr str w0, [x1,20] - ldr w0, [x20,708] + ldr w0, [x20,1220] str w0, [x1,24] str wzr, [x29,64] ldr w0, [x29,64] @@ -3406,7 +3555,7 @@ nandc_xfer_start: str w0, [x29,56] ldr w0, [x29,56] str w0, [x1,8] -.L534: +.L563: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 80 @@ -3419,23 +3568,23 @@ nandc_set_seed: adrp x1, .LANCHOR1 and w0, w0, 127 add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 792 + add x1, x1, 1168 ldrh w1, [x1,w0,uxtw 1] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 orr w2, w1, -1073741824 - ldrb w3, [x0,720] + ldrb w3, [x0,1232] cmp w3, wzr csel w1, w2, w1, ne - ldrb w2, [x0,516] - ldr x0, [x0,536] + ldrb w2, [x0,1028] + ldr x0, [x0,1048] cmp w2, 9 - bne .L552 + bne .L581 str w1, [x0,520] - b .L550 -.L552: + b .L579 +.L581: str w1, [x0,336] -.L550: +.L579: ret .size nandc_set_seed, .-nandc_set_seed .align 2 @@ -3449,36 +3598,36 @@ zftl_flash_de_init: bl nandc_wait_flash_ready add x1, x19, :lo12:.LANCHOR0 ldrb w0, [x19,#:lo12:.LANCHOR0] - cbz w0, .L557 - ldrb w0, [x1,634] - cbnz w0, .L557 - ldrb w1, [x1,516] + cbz w0, .L586 + ldrb w0, [x1,1146] + cbnz w0, .L586 + ldrb w1, [x1,1028] cmp w1, 9 - beq .L557 + beq .L586 bl zftl_flash_exit_slc_mode -.L557: +.L586: mov w0, 0 add x20, x19, :lo12:.LANCHOR0 bl hynix_reconfig_rr_para - ldrb w0, [x20,672] - cbz w0, .L558 - ldrb w0, [x20,792] - tbz x0, 0, .L558 + ldrb w0, [x20,1184] + cbz w0, .L587 + ldrb w0, [x20,1304] + tbz x0, 0, .L587 mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode - strb wzr, [x20,672] -.L558: + strb wzr, [x20,1184] +.L587: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,720] - cbz w0, .L559 + ldrb w0, [x19,1232] + cbz w0, .L588 mov w0, 0 - strb wzr, [x19,720] + strb wzr, [x19,1232] bl nandc_set_seed mov w0, 1 - strb w0, [x19,720] -.L559: + strb w0, [x19,1232] +.L588: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -3488,18 +3637,18 @@ zftl_flash_de_init: .global nandc_randomizer_enable .type nandc_randomizer_enable, %function nandc_randomizer_enable: - adrp x1, .LANCHOR0+720 - strb w0, [x1,#:lo12:.LANCHOR0+720] + adrp x1, .LANCHOR0+1232 + strb w0, [x1,#:lo12:.LANCHOR0+1232] ret .size nandc_randomizer_enable, .-nandc_randomizer_enable .align 2 .global nandc_get_chip_if .type nandc_get_chip_if, %function nandc_get_chip_if: - adrp x1, .LANCHOR0+536 + adrp x1, .LANCHOR0+1048 uxtb x0, w0 add x0, x0, 8 - ldr x1, [x1,#:lo12:.LANCHOR0+536] + ldr x1, [x1,#:lo12:.LANCHOR0+1048] add x0, x1, x0, lsl 8 ret .size nandc_get_chip_if, .-nandc_get_chip_if @@ -3514,16 +3663,16 @@ zbuf_init: add x19, x0, :lo12:.LANCHOR0 mov w20, 0 stp x21, x22, [sp,32] - add x19, x19, 800 + add x19, x19, 1312 mov x22, x0 -.L578: +.L607: add x21, x22, :lo12:.LANCHOR0 uxtb w0, w20 add w1, w0, 1 strb w0, [x19,1] strb w1, [x19] add w20, w20, 1 - ldrb w0, [x21,2848] + ldrb w0, [x21,3360] add x19, x19, 64 strb wzr, [x19,-62] str xzr, [x19,-48] @@ -3534,11 +3683,11 @@ zbuf_init: bl ftl_malloc str x0, [x19,-40] cmp w20, 32 - bne .L578 - strb w20, [x21,2850] + bne .L607 + strb w20, [x21,3362] mov w0, -1 - strb wzr, [x21,2849] - strb w0, [x21,2784] + strb wzr, [x21,3361] + strb w0, [x21,3296] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -3551,8 +3700,8 @@ buf_reinit: adrp x0, .LANCHOR0 mov w2, 0 add x1, x0, :lo12:.LANCHOR0 - add x1, x1, 800 -.L581: + add x1, x1, 1312 +.L610: uxtb w3, w2 add w2, w2, 1 add w4, w3, 1 @@ -3562,12 +3711,12 @@ buf_reinit: strb wzr, [x1,2] add x1, x1, 64 str xzr, [x1,-48] - bne .L581 + bne .L610 add x0, x0, :lo12:.LANCHOR0 mov w1, -1 - strb wzr, [x0,2849] - strb w1, [x0,2784] - strb w2, [x0,2850] + strb wzr, [x0,3361] + strb w1, [x0,3296] + strb w2, [x0,3362] ret .size buf_reinit, .-buf_reinit .align 2 @@ -3583,51 +3732,51 @@ buf_add_tail: mov x19, x1 ldrb w1, [x20] cmp w1, 255 - bne .L589 + bne .L618 ldrb w0, [x19,1] cmp w0, 255 - bne .L585 + bne .L614 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 74 - add x1, x1, 1048 + add x1, x1, 1424 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L585: +.L614: ldrb w0, [x19,1] strb w0, [x20] - b .L583 -.L589: + b .L612 +.L618: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 800 -.L590: + add x0, x0, 1312 +.L619: mov w20, w1 sbfiz x1, x1, 6, 32 ldrb w1, [x0,x1] cmp w1, 255 - bne .L590 + bne .L619 ldrb w0, [x19,1] cmp w0, 255 - bne .L587 + bne .L616 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 81 - add x1, x1, 1048 + add x1, x1, 1424 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L587: +.L616: adrp x0, .LANCHOR0 sbfiz x20, x20, 6, 32 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x19,1] - add x0, x0, 800 + add x0, x0, 1312 strb w1, [x0,x20] -.L583: +.L612: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3650,7 +3799,7 @@ queue_read_cmd: adrp x0, .LANCHOR0 mov x1, x19 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 2851 + add x0, x0, 3363 bl buf_add_tail ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -3668,26 +3817,26 @@ zbuf_free: and w1, w1, 8 uxtb w1, w1 strb w1, [x0,2] - cbz w1, .L593 + cbz w1, .L622 ldr w1, [x0,36] cmn w1, #1 - beq .L593 + beq .L622 mov x1, x0 add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 2849 + add x0, x0, 3361 bl buf_add_tail - b .L594 -.L593: + b .L623 +.L622: add x1, x19, :lo12:.LANCHOR0 - ldrb w2, [x1,2849] + ldrb w2, [x1,3361] strb w2, [x0] ldrb w0, [x0,1] - strb w0, [x1,2849] -.L594: + strb w0, [x1,3361] +.L623: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,2850] + ldrb w0, [x19,3362] add w0, w0, 1 - strb w0, [x19,2850] + strb w0, [x19,3362] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3704,44 +3853,44 @@ buf_alloc: str x21, [sp,32] uxtb w21, w0 mov x19, x1 - ldrb w0, [x20,2850] - cbz w0, .L602 -.L605: + ldrb w0, [x20,3362] + cbz w0, .L631 +.L634: add x1, x19, :lo12:.LANCHOR0 - add x0, x1, 800 - ldrb w2, [x1,2849] + add x0, x1, 1312 + ldrb w2, [x1,3361] add x0, x0, x2, lsl 6 - cbz w21, .L603 - b .L604 -.L602: + cbz w21, .L632 + b .L633 +.L631: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 121 - add x1, x1, 1064 + add x1, x1, 1440 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - ldrb w1, [x20,2850] - cbnz w1, .L605 -.L607: + ldrb w1, [x20,3362] + cbnz w1, .L634 +.L636: mov x0, 0 - b .L606 -.L603: - ldrb w1, [x1,2850] + b .L635 +.L632: + ldrb w1, [x1,3362] cmp w1, 1 - beq .L607 -.L604: + beq .L636 +.L633: add x1, x19, :lo12:.LANCHOR0 lsl x2, x2, 6 - add x4, x1, 800 + add x4, x1, 1312 add x3, x4, x2 ldrb w5, [x4,x2] - strb w5, [x1,2849] - ldrb w5, [x1,2850] + strb w5, [x1,3361] + ldrb w5, [x1,3362] strh wzr, [x3,50] sub w5, w5, #1 - strb w5, [x1,2850] + strb w5, [x1,3362] mov w1, 1 strb w1, [x3,2] mov w1, -1 @@ -3751,7 +3900,7 @@ buf_alloc: strb wzr, [x3,56] str w1, [x3,36] strb wzr, [x3,57] -.L606: +.L635: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -3764,33 +3913,33 @@ buf_remove_buf: ldrb w4, [x1,1] ldrb w2, [x0] cmp w4, w2 - bne .L614 + bne .L643 ldrb w1, [x1] strb w1, [x0] - b .L618 -.L614: + b .L647 +.L643: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 800 -.L616: + add x0, x0, 1312 +.L645: cmp w2, 255 - beq .L619 + beq .L648 mov w3, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x0,x2] cmp w2, w4 - bne .L616 + bne .L645 sbfiz x3, x3, 6, 32 ldrb w2, [x1] strb w2, [x0,x3] mov w0, -1 strb w0, [x1] -.L618: +.L647: mov w0, 1 - b .L613 -.L619: + b .L642 +.L648: mov w0, 0 -.L613: +.L642: ret .size buf_remove_buf, .-buf_remove_buf .align 2 @@ -3803,37 +3952,98 @@ buf_remove_free: adrp x19, .LANCHOR0 mov x20, x0 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2850] - cbnz w0, .L621 + ldrb w0, [x0,3362] + cbnz w0, .L650 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 172 - add x1, x1, 1080 + add x1, x1, 1456 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L621: +.L650: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,2850] - cbz w0, .L620 - add x0, x19, 2849 + ldrb w0, [x19,3362] + cbz w0, .L649 + add x0, x19, 3361 mov x1, x20 bl buf_remove_buf cmp w0, 1 - bne .L620 - ldrb w0, [x19,2850] + bne .L649 + ldrb w0, [x19,3362] sub w0, w0, #1 - strb w0, [x19,2850] + strb w0, [x19,3362] ldrb w0, [x20,2] orr w0, w0, 1 strb w0, [x20,2] -.L620: +.L649: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret .size buf_remove_free, .-buf_remove_free .align 2 + .global dump_buf_info + .type dump_buf_info, %function +dump_buf_info: + sub sp, sp, #64 + adrp x0, .LC47 + add x0, x0, :lo12:.LC47 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] + adrp x19, .LANCHOR0 + str x21, [sp,48] + add x19, x19, :lo12:.LANCHOR0 + adrp x21, .LC53 + add x20, x19, 1312 + add x21, x21, :lo12:.LC53 + add x19, x19, 3360 + ldrb w1, [x19,3] + bl printk + ldrb w1, [x19,4] + adrp x0, .LC48 + add x0, x0, :lo12:.LC48 + bl printk + ldrb w1, [x19,5] + adrp x0, .LC49 + add x0, x0, :lo12:.LC49 + bl printk + ldrb w1, [x19,6] + adrp x0, .LC50 + add x0, x0, :lo12:.LC50 + bl printk + ldrb w1, [x19,1] + adrp x0, .LC51 + add x0, x0, :lo12:.LC51 + bl printk + ldrb w1, [x19,2] + adrp x0, .LC52 + add x0, x0, :lo12:.LC52 + bl printk +.L655: + ldr w0, [x20,40] + add x20, x20, 64 + ldrb w1, [x20,-63] + ldrb w2, [x20,-64] + ldrb w3, [x20,-62] + ldrh w4, [x20,-14] + ldrb w5, [x20,-6] + str w0, [sp] + mov x0, x21 + ldr w6, [x20,-12] + ldr w7, [x20,-28] + bl printk + cmp x20, x19 + bne .L655 + sub sp, x29, #16 + ldp x19, x20, [sp,32] + ldr x21, [sp,48] + ldp x29, x30, [sp,16] + add sp, sp, 64 + ret + .size dump_buf_info, .-dump_buf_info + .align 2 .global flash_check_bad_block .type flash_check_bad_block, %function flash_check_bad_block: @@ -3850,9 +4060,9 @@ flash_check_bad_block: asr w2, w2, 5 lsl w2, w2, 2 mul w2, w0, w2 - adrp x0, .LANCHOR0+728 + adrp x0, .LANCHOR0+1240 sxtw x2, w2 - ldr x0, [x0,#:lo12:.LANCHOR0+728] + ldr x0, [x0,#:lo12:.LANCHOR0+1240] add x2, x2, 912 add x2, x0, x2 ldr w0, [x2,x3,lsl 2] @@ -3877,18 +4087,18 @@ flash_mask_bad_block: mov w2, w21 ldrh w20, [x3,22] mul w20, w0, w20 - adrp x0, .LC48 - add x0, x0, :lo12:.LC48 + adrp x0, .LC54 + add x0, x0, :lo12:.LC54 uxth w20, w20 add w20, w20, 31 bl printk asr w20, w20, 5 - adrp x0, .LANCHOR0+728 + adrp x0, .LANCHOR0+1240 lsl w20, w20, 2 ubfx x3, x21, 5, 27 lsl x3, x3, 2 mul w19, w19, w20 - ldr x0, [x0,#:lo12:.LANCHOR0+728] + ldr x0, [x0,#:lo12:.LANCHOR0+1240] sxtw x19, w19 add x19, x19, 912 add x19, x0, x19 @@ -3908,49 +4118,49 @@ flash_mask_bad_block: str2hex: ldrb w1, [x0] cmp w1, 48 - bne .L628 + bne .L660 ldrb w1, [x0,1] add x2, x0, 2 and w1, w1, -33 uxtb w1, w1 cmp w1, 88 csel x0, x0, x2, ne -.L628: +.L660: ldrb w1, [x0] and w1, w1, -33 uxtb w1, w1 cmp w1, 88 mov w1, 0 csinc x0, x0, x0, ne -.L630: +.L662: ldrb w2, [x0] - cbz w2, .L637 + cbz w2, .L669 sub w3, w2, #48 uxtb w3, w3 cmp w3, 9 - bhi .L631 + bhi .L663 add w1, w2, w1, lsl 4 sub w1, w1, #48 - b .L632 -.L631: + b .L664 +.L663: sub w3, w2, #97 uxtb w3, w3 cmp w3, 5 - bhi .L633 + bhi .L665 add w1, w2, w1, lsl 4 sub w1, w1, #87 - b .L632 -.L633: + b .L664 +.L665: sub w3, w2, #65 uxtb w3, w3 cmp w3, 5 - bhi .L637 + bhi .L669 add w1, w2, w1, lsl 4 sub w1, w1, #55 -.L632: +.L664: add x0, x0, 1 - b .L630 -.L637: + b .L662 +.L669: mov w0, w1 ret .size str2hex, .-str2hex @@ -3961,13 +4171,13 @@ zftl_proc_debug_init: stp x29, x30, [sp, -16]! adrp x3, .LANCHOR1 mov x2, 0 - adrp x0, .LC49 + adrp x0, .LC55 add x3, x3, :lo12:.LANCHOR1 add x29, sp, 0 mov w1, 292 - add x3, x3, 1096 + add x3, x3, 1472 mov x4, x2 - add x0, x0, :lo12:.LC49 + add x0, x0, :lo12:.LC55 bl proc_create_data ldp x29, x30, [sp], 16 ret @@ -3989,11 +4199,11 @@ ftl_print_info_to_buf: adrp x7, .LANCHOR2 adrp x22, .LANCHOR0 add x7, x7, :lo12:.LANCHOR2 - adrp x1, .LC50 + adrp x1, .LC56 add x7, x7, 8 add x21, x22, :lo12:.LANCHOR0 add x19, x20, x0, sxtw - add x1, x1, :lo12:.LC50 + add x1, x1, :lo12:.LC56 ldrb w5, [x7,4] mov x0, x19 ldrb w6, [x7,5] @@ -4003,223 +4213,223 @@ ftl_print_info_to_buf: ldrb w7, [x7,6] bl sprintf add x19, x19, x0, sxtw - ldr w2, [x21,520] - adrp x1, .LC51 - mov x0, x19 - add x1, x1, :lo12:.LC51 - lsr w2, w2, 11 - bl sprintf - add x19, x19, x0, sxtw - ldr w2, [x21,2852] - adrp x1, .LC52 - mov x0, x19 - add x1, x1, :lo12:.LC52 - lsr w2, w2, 11 - bl sprintf - add x19, x19, x0, sxtw - adrp x1, .LC53 - mov x0, x19 - add x1, x1, :lo12:.LC53 - add x19, x19, 10 - bl strcpy - ldr w2, [x21,2856] - adrp x1, .LC54 - mov x0, x19 - add x1, x1, :lo12:.LC54 - bl sprintf - add x19, x19, x0, sxtw - ldr w2, [x21,520] - adrp x1, .LC55 - mov x0, x19 - add x1, x1, :lo12:.LC55 - bl sprintf - add x19, x19, x0, sxtw - ldr x2, [x21,608] - adrp x1, .LC56 - mov x0, x19 - add x1, x1, :lo12:.LC56 - ldr w2, [x2,524] - bl sprintf - add x19, x19, x0, sxtw - ldr x2, [x21,608] + ldr w2, [x21,1032] adrp x1, .LC57 mov x0, x19 add x1, x1, :lo12:.LC57 - ldr w2, [x2,528] + lsr w2, w2, 11 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2860] + ldr w2, [x21,3368] adrp x1, .LC58 mov x0, x19 add x1, x1, :lo12:.LC58 + lsr w2, w2, 11 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2862] adrp x1, .LC59 mov x0, x19 add x1, x1, :lo12:.LC59 - bl sprintf - add x19, x19, x0, sxtw - ldrh w2, [x21,2864] + add x19, x19, 10 + bl strcpy + ldr w2, [x21,3372] adrp x1, .LC60 mov x0, x19 add x1, x1, :lo12:.LC60 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2866] + ldr w2, [x21,1032] adrp x1, .LC61 mov x0, x19 add x1, x1, :lo12:.LC61 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2868] + ldr x2, [x21,1120] adrp x1, .LC62 mov x0, x19 add x1, x1, :lo12:.LC62 + ldr w2, [x2,524] bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2870] + ldr x2, [x21,1120] adrp x1, .LC63 mov x0, x19 add x1, x1, :lo12:.LC63 + ldr w2, [x2,528] bl sprintf add x19, x19, x0, sxtw - ldrb w4, [x21,2873] + ldrh w2, [x21,3376] adrp x1, .LC64 - ldrb w2, [x21,2850] mov x0, x19 - ldrb w3, [x21,2872] add x1, x1, :lo12:.LC64 bl sprintf add x19, x19, x0, sxtw - ldr x3, [x21,2880] + ldrh w2, [x21,3378] adrp x1, .LC65 mov x0, x19 add x1, x1, :lo12:.LC65 + bl sprintf + add x19, x19, x0, sxtw + ldrh w2, [x21,3380] + adrp x1, .LC66 + mov x0, x19 + add x1, x1, :lo12:.LC66 + bl sprintf + add x19, x19, x0, sxtw + ldrh w2, [x21,3382] + adrp x1, .LC67 + mov x0, x19 + add x1, x1, :lo12:.LC67 + bl sprintf + add x19, x19, x0, sxtw + ldrh w2, [x21,3384] + adrp x1, .LC68 + mov x0, x19 + add x1, x1, :lo12:.LC68 + bl sprintf + add x19, x19, x0, sxtw + ldrh w2, [x21,3386] + adrp x1, .LC69 + mov x0, x19 + add x1, x1, :lo12:.LC69 + bl sprintf + add x19, x19, x0, sxtw + ldrb w4, [x21,3389] + adrp x1, .LC70 + ldrb w2, [x21,3362] + mov x0, x19 + ldrb w3, [x21,3388] + add x1, x1, :lo12:.LC70 + bl sprintf + add x19, x19, x0, sxtw + ldr x3, [x21,3392] + adrp x1, .LC71 + mov x0, x19 + add x1, x1, :lo12:.LC71 ldrh w2, [x3,148] ldrh w3, [x3,146] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,2880] - adrp x1, .LC66 - add x1, x1, :lo12:.LC66 + ldr x0, [x21,3392] + adrp x1, .LC72 + add x1, x1, :lo12:.LC72 ldr w3, [x0,16] ldr w2, [x0,20] mov x0, x19 add w2, w2, w3, lsr 11 bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,2880] - adrp x1, .LC67 - add x1, x1, :lo12:.LC67 + ldr x0, [x21,3392] + adrp x1, .LC73 + add x1, x1, :lo12:.LC73 ldr w3, [x0,24] ldr w2, [x0,28] mov x0, x19 add w2, w2, w3, lsr 11 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2880] - adrp x1, .LC68 + ldr x2, [x21,3392] + adrp x1, .LC74 mov x0, x19 - add x1, x1, :lo12:.LC68 + add x1, x1, :lo12:.LC74 ldr w2, [x2,64] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2880] - adrp x1, .LC69 + ldr x2, [x21,3392] + adrp x1, .LC75 mov x0, x19 - add x1, x1, :lo12:.LC69 + add x1, x1, :lo12:.LC75 ldr w2, [x2,68] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,608] + ldr x0, [x21,1120] mov w2, 10 - adrp x1, .LC70 - add x1, x1, :lo12:.LC70 + adrp x1, .LC76 + add x1, x1, :lo12:.LC76 ldr w3, [x0,12] mov x0, x19 udiv w2, w3, w2 bl sprintf add x19, x19, x0, sxtw ldrb w2, [x22,#:lo12:.LANCHOR0] - adrp x1, .LC71 - mov x0, x19 - add x1, x1, :lo12:.LC71 - bl sprintf - add x19, x19, x0, sxtw - ldr x2, [x21,608] - adrp x1, .LC72 - mov x0, x19 - add x1, x1, :lo12:.LC72 - ldr w2, [x2,556] - bl sprintf - add x19, x19, x0, sxtw - ldr x2, [x21,608] - adrp x1, .LC73 - mov x0, x19 - add x1, x1, :lo12:.LC73 - ldr w2, [x2,552] - bl sprintf - add x19, x19, x0, sxtw - ldr x2, [x21,2880] - adrp x1, .LC74 - mov x0, x19 - add x1, x1, :lo12:.LC74 - ldr w2, [x2,52] - bl sprintf - add x19, x19, x0, sxtw - ldr x2, [x21,2880] - adrp x1, .LC75 - mov x0, x19 - add x1, x1, :lo12:.LC75 - ldr w2, [x2,60] - bl sprintf - add x19, x19, x0, sxtw - ldr x2, [x21,2880] - adrp x1, .LC76 - mov x0, x19 - add x1, x1, :lo12:.LC76 - ldr w2, [x2,76] - bl sprintf - add x19, x19, x0, sxtw - ldr x2, [x21,2880] adrp x1, .LC77 mov x0, x19 add x1, x1, :lo12:.LC77 - ldr w2, [x2,8] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,608] + ldr x2, [x21,1120] adrp x1, .LC78 mov x0, x19 add x1, x1, :lo12:.LC78 + ldr w2, [x2,556] + bl sprintf + add x19, x19, x0, sxtw + ldr x2, [x21,1120] + adrp x1, .LC79 + mov x0, x19 + add x1, x1, :lo12:.LC79 + ldr w2, [x2,552] + bl sprintf + add x19, x19, x0, sxtw + ldr x2, [x21,3392] + adrp x1, .LC80 + mov x0, x19 + add x1, x1, :lo12:.LC80 + ldr w2, [x2,52] + bl sprintf + add x19, x19, x0, sxtw + ldr x2, [x21,3392] + adrp x1, .LC81 + mov x0, x19 + add x1, x1, :lo12:.LC81 + ldr w2, [x2,60] + bl sprintf + add x19, x19, x0, sxtw + ldr x2, [x21,3392] + adrp x1, .LC82 + mov x0, x19 + add x1, x1, :lo12:.LC82 + ldr w2, [x2,76] + bl sprintf + add x19, x19, x0, sxtw + ldr x2, [x21,3392] + adrp x1, .LC83 + mov x0, x19 + add x1, x1, :lo12:.LC83 + ldr w2, [x2,8] + bl sprintf + add x19, x19, x0, sxtw + ldr x4, [x21,1120] + adrp x1, .LC84 + mov x0, x19 + add x1, x1, :lo12:.LC84 ldrh w2, [x4,16] ldrh w3, [x4,22] ldrb w4, [x4,25] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,608] - adrp x1, .LC79 + ldr x4, [x21,1120] + adrp x1, .LC85 mov x0, x19 - add x1, x1, :lo12:.LC79 + add x1, x1, :lo12:.LC85 ldrh w2, [x4,48] ldrh w3, [x4,54] ldrb w4, [x4,57] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,608] - adrp x1, .LC80 + ldr x4, [x21,1120] + adrp x1, .LC86 mov x0, x19 - add x1, x1, :lo12:.LC80 + add x1, x1, :lo12:.LC86 ldrh w2, [x4,80] ldrh w3, [x4,86] ldrb w4, [x4,89] bl sprintf add x19, x19, x0, sxtw - ldr x6, [x21,2880] - adrp x1, .LC81 + ldr x6, [x21,3392] + adrp x1, .LC87 mov x0, x19 - add x1, x1, :lo12:.LC81 + add x1, x1, :lo12:.LC87 ldrh w2, [x6,74] ldr w3, [x6,84] ldrh w4, [x6,88] @@ -4227,10 +4437,10 @@ ftl_print_info_to_buf: ldrh w6, [x6,96] bl sprintf add x19, x19, x0, sxtw - ldr x6, [x21,2880] - adrp x1, .LC82 + ldr x6, [x21,3392] + adrp x1, .LC88 mov x0, x19 - add x1, x1, :lo12:.LC82 + add x1, x1, :lo12:.LC88 ldr w3, [x6,80] ldrh w4, [x6,90] ldrh w5, [x6,94] @@ -4238,37 +4448,37 @@ ftl_print_info_to_buf: ldrh w6, [x6,98] bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2888] - adrp x1, .LC83 + ldrh w2, [x21,3400] + adrp x1, .LC89 mov x0, x19 - add x1, x1, :lo12:.LC83 + add x1, x1, :lo12:.LC89 bl sprintf add x19, x19, x0, sxtw - ldr w6, [x21,2900] - adrp x1, .LC84 - ldrh w2, [x21,2890] + ldr w6, [x21,3412] + adrp x1, .LC90 + ldrh w2, [x21,3402] mov x0, x19 - ldrh w3, [x21,2892] - add x1, x1, :lo12:.LC84 - ldrh w4, [x21,2894] - ldrh w5, [x21,2896] + ldrh w3, [x21,3404] + add x1, x1, :lo12:.LC90 + ldrh w4, [x21,3406] + ldrh w5, [x21,3408] bl sprintf add x19, x19, x0, sxtw - ldr x5, [x21,608] - adrp x1, .LC85 + ldr x5, [x21,1120] + adrp x1, .LC91 mov x0, x19 - add x1, x1, :lo12:.LC85 + add x1, x1, :lo12:.LC91 ldrh w2, [x5,584] ldrh w3, [x5,586] ldrh w4, [x5,588] ldrh w5, [x5,590] bl sprintf add x19, x19, x0, sxtw - ldr x6, [x21,608] - adrp x1, .LC86 - ldr x5, [x21,2880] + ldr x6, [x21,1120] + adrp x1, .LC92 + ldr x5, [x21,3392] mov x0, x19 - add x1, x1, :lo12:.LC86 + add x1, x1, :lo12:.LC92 ldr w2, [x6,536] ldr w3, [x6,540] ldr w4, [x6,544] @@ -4305,12 +4515,12 @@ ftl_gc_write_buf: ldrb w0, [x0,2] orr w0, w0, 2 strb w0, [x1,2] - add x0, x19, 2904 + add x0, x19, 3416 bl buf_add_tail - ldrb w0, [x19,2872] + ldrb w0, [x19,3388] add w0, w0, 1 uxtb w0, w0 - strb w0, [x19,2872] + strb w0, [x19,3388] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -4328,6 +4538,12 @@ vpn_check: ret .size vpn_check, .-vpn_check .align 2 + .global ftl_scan_all_data + .type ftl_scan_all_data, %function +ftl_scan_all_data: + ret + .size ftl_scan_all_data, .-ftl_scan_all_data + .align 2 .global gc_add_sblk .type gc_add_sblk, %function gc_add_sblk: @@ -4342,179 +4558,178 @@ gc_add_sblk: ldr w0, [x24,#:lo12:.LANCHOR2] stp x19, x20, [sp,16] uxth w20, w2 - tbz x0, 8, .L645 + tbz x0, 8, .L678 add x7, x22, :lo12:.LANCHOR0 uxtw x5, w21 mov w1, w21 mov w2, w23 mov w3, w20 - ldr x0, [x7,584] - ldr x6, [x7,600] + ldr x0, [x7,1096] + ldr x6, [x7,1112] add x0, x0, x5, lsl 2 ldrh w5, [x6,x5,lsl 1] ldrb w4, [x0,2] - adrp x0, .LC87 - ldrh w6, [x7,2968] - add x0, x0, :lo12:.LC87 - ldrh w7, [x7,2894] + adrp x0, .LC93 + ldrh w6, [x7,3480] + add x0, x0, :lo12:.LC93 + ldrh w7, [x7,3406] ubfx x4, x4, 5, 3 bl printk -.L645: +.L678: add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,576] + ldrh w0, [x0,1088] cmp w0, w21 - bhi .L646 + bhi .L679 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 454 - add x1, x1, 1352 + mov w2, 543 + add x1, x1, 1760 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L646: +.L679: add x5, x22, :lo12:.LANCHOR0 - ldrh w0, [x5,576] + ldrh w0, [x5,1088] cmp w0, w21 - bhi .L647 + bhi .L680 ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 10, .L648 - adrp x0, .LC88 + mov w19, 0 + tbz x0, 10, .L681 + adrp x0, .LC94 mov w1, w21 - add x0, x0, :lo12:.LC88 mov w2, w23 mov w3, w20 + add x0, x0, :lo12:.LC94 bl printk -.L648: - bl dump_stack - b .L667 -.L647: + b .L681 +.L680: uxtw x0, w21 - ldr x1, [x5,600] + ldr x1, [x5,1112] ldrh w4, [x1,x0,lsl 1] - ldr x1, [x5,584] + ldr x1, [x5,1096] add x0, x1, x0, lsl 2 ldrb w19, [x0,2] ands w19, w19, 224 - bne .L650 - cbz w4, .L649 + bne .L682 + cbz w4, .L681 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 462 - add x1, x1, 1352 + mov w2, 553 + add x1, x1, 1760 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L649 -.L650: - ldrh w1, [x5,2912] - add x8, x5, 2912 + b .L681 +.L682: + ldrh w1, [x5,3424] + add x8, x5, 3424 mov w19, 0 cmp w1, w21 - beq .L649 - ldr x7, [x5,608] + beq .L681 + ldr x7, [x5,1120] ldrh w1, [x7,48] cmp w1, w21 - beq .L649 + beq .L681 ldrh w1, [x7,16] cmp w1, w21 - beq .L649 + beq .L681 ldrh w1, [x7,80] cmp w1, w21 - beq .L649 + beq .L681 ldrh w5, [x8,56] mov x6, 0 -.L651: +.L683: cmp w5, w6 - bls .L685 + bls .L716 add x6, x6, 1 add x1, x8, x6, lsl 1 ldrh w1, [x1,56] cmp w1, w21 - bne .L651 - b .L667 -.L685: - cbnz w23, .L653 - add x8, x22, :lo12:.LANCHOR0 + bne .L683 + mov w19, 0 + b .L681 +.L716: + cbnz w23, .L685 + adrp x6, .LANCHOR3 mov w19, w23 - ldrh w9, [x8,3512] + add x6, x6, :lo12:.LANCHOR3 + ldrh w9, [x6,1208] cmp w9, w21 - beq .L649 - mov x6, 0 -.L655: - add x1, x8, 3520 - ldrh w1, [x6,x1] + beq .L681 + mov x8, 0 +.L687: + add x1, x6, 1216 + ldrh w1, [x8,x1] cmp w21, w1 - bne .L654 + bne .L686 ldr w1, [x24,#:lo12:.LANCHOR2] mov w19, 0 - tbz x1, 8, .L649 + tbz x1, 8, .L681 ldrb w2, [x0,2] - adrp x0, .LC89 + adrp x0, .LC95 mov w3, w4 mov w1, w21 ubfx x2, x2, 5, 3 mov w4, w21 mov w5, w9 - add x0, x0, :lo12:.LC89 + add x0, x0, :lo12:.LC95 bl printk - b .L649 -.L654: - add x6, x6, 2 - cmp x6, 16 - bne .L655 + b .L681 +.L686: + add x8, x8, 2 + cmp x8, 16 + bne .L687 sxtw x6, w20 add x19, x7, x6, lsl 7 add x19, x19, 136 - b .L657 -.L653: + b .L689 +.L685: add x19, x7, 392 -.L657: +.L689: ldr w1, [x24,#:lo12:.LANCHOR2] - tbz x1, 8, .L658 + tbz x1, 8, .L690 add x6, x22, :lo12:.LANCHOR0 ldrb w3, [x0,2] - adrp x0, .LC90 + adrp x0, .LC96 mov w1, w21 - add x0, x0, :lo12:.LC90 + add x0, x0, :lo12:.LC96 mov w2, w23 - ldrh w6, [x6,2894] + ldrh w6, [x6,3406] ubfx x3, x3, 5, 3 bl printk -.L658: +.L690: mov x4, x19 add x0, x19, 128 mov w1, 65535 -.L661: +.L693: ldrh w2, [x4] cmp w2, w1 - bne .L659 + bne .L691 strh w21, [x4] add x22, x22, :lo12:.LANCHOR0 - cbz w23, .L660 - ldr x1, [x22,608] + cbz w23, .L692 + ldr x1, [x22,1120] ldrh w0, [x1,124] add w0, w0, 1 strh w0, [x1,124] - b .L684 -.L660: - ldr x0, [x22,608] + b .L715 +.L692: + ldr x0, [x22,1120] add x20, x0, x20, uxth 1 ldrh w0, [x20,120] add w0, w0, 1 strh w0, [x20,120] - b .L684 -.L659: +.L715: + mov w19, 1 + b .L681 +.L691: add x4, x4, 2 cmp x4, x0 - bne .L661 -.L684: - mov w19, 1 - b .L649 -.L667: - mov w19, 0 -.L649: + bne .L693 + b .L715 +.L681: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4527,60 +4742,60 @@ gc_add_sblk: .type gc_mark_bad_ppa, %function gc_mark_bad_ppa: stp x29, x30, [sp, -64]! + adrp x4, .LANCHOR3 mov w3, w0 - mov w1, 24 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - str x23, [sp,48] - add x4, x21, :lo12:.LANCHOR0 - mov w23, 1 stp x19, x20, [sp,16] - add x20, x4, 2912 - ldrb w19, [x4,744] - ldrh w0, [x4,3536] + adrp x20, .LANCHOR0 + str x23, [sp,48] + stp x21, x22, [sp,32] + add x21, x20, :lo12:.LANCHOR0 + add x4, x4, :lo12:.LANCHOR3 + mov w1, 24 + mov w23, 1 + ldrb w19, [x21,1257] + add x21, x21, 3424 + ldrh w0, [x4,1232] sub w19, w1, w19 - ldr w1, [x4,3496] + ldr w1, [x21,2120] sub w19, w19, w0 lsr w2, w3, w0 lsl w19, w23, w19 - ldrb w0, [x4,3538] + ldrb w0, [x4,1234] sub w19, w19, #1 uxth w22, w2 and w19, w19, w2 mov w2, w22 udiv w19, w19, w0 - adrp x0, .LC91 - add x0, x0, :lo12:.LC91 + adrp x0, .LC97 + add x0, x0, :lo12:.LC97 bl printk mov w1, w23 mov w2, 0 uxth w19, w19 mov w0, w19 bl gc_add_sblk - ldr w0, [x20,584] + ldr w0, [x21,2120] mov w1, 0 - mov x4, x20 -.L687: +.L718: cmp w1, w0 - bcs .L690 - add x2, x4, x1, sxtw 1 - ldrh w2, [x2,588] + bcs .L721 + add x2, x21, x1, sxtw 1 + ldrh w2, [x2,2124] cmp w2, w22 - beq .L688 + beq .L719 add w1, w1, 1 uxth w1, w1 - b .L687 -.L690: + b .L718 +.L721: cmp w0, 5 - bhi .L688 - add x21, x21, :lo12:.LANCHOR0 + bhi .L719 + add x20, x20, :lo12:.LANCHOR0 add w1, w0, 1 - add x21, x21, 2912 - str w1, [x21,584] - add x21, x21, x0, uxtw 1 - strh w22, [x21,588] -.L688: + str w1, [x20,5544] + add x20, x20, x0, uxtw 1 + strh w22, [x20,5548] +.L719: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -4592,9 +4807,9 @@ gc_mark_bad_ppa: .global gc_get_src_ppa_from_index .type gc_get_src_ppa_from_index, %function gc_get_src_ppa_from_index: - adrp x1, .LANCHOR0+3544 + adrp x1, .LANCHOR3+1240 ubfiz x0, x0, 2, 16 - ldr x1, [x1,#:lo12:.LANCHOR0+3544] + ldr x1, [x1,#:lo12:.LANCHOR3+1240] ldr w0, [x1,x0] ret .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index @@ -4605,153 +4820,154 @@ gc_write_completed: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - adrp x22, .LANCHOR1 - add x21, x21, :lo12:.LANCHOR0 - add x22, x22, :lo12:.LANCHOR1 - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] stp x25, x26, [sp,64] - str x27, [sp,80] - add x23, x21, 800 - add x22, x22, 1368 -.L693: - ldrb w0, [x21,3552] + adrp x21, .LANCHOR1 + adrp x26, .LANCHOR0 + add x26, x26, :lo12:.LANCHOR0 + add x21, x21, :lo12:.LANCHOR1 + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] + stp x27, x28, [sp,80] + add x22, x26, 1312 + add x21, x21, 1776 +.L724: + ldrb w20, [x26,3365] adrp x19, .LANCHOR0 - cmp w0, 255 - beq .L722 - sxtw x25, w0 - lsl x0, x25, 6 - add x2, x23, x0 - ldrb w0, [x23,x0] - ldr w1, [x2,52] - strb w0, [x21,3552] - ldrh w24, [x2,48] - cbz w1, .L694 - ldr w2, [x2,40] - adrp x0, .LC92 - mov w3, 1 - add x0, x0, :lo12:.LC92 - strh w3, [x21,3488] - str w2, [x21,3492] + cmp w20, 255 + beq .L753 + lsl x1, x20, 6 + add x0, x22, x1 + ldrb w1, [x22,x1] + strb w1, [x26,3365] + ldr w1, [x0,52] + ldrh w23, [x0,48] + cbz w1, .L725 + mov w2, 1 + strh w2, [x26,5536] + ldr w2, [x0,40] + adrp x0, .LC98 + add x0, x0, :lo12:.LC98 + str w2, [x26,5540] bl printk adrp x0, .LC0 - mov x1, x22 - mov w2, 805 + mov x1, x21 + mov w2, 956 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L694: +.L725: + adrp x25, .LANCHOR3 + add x1, x25, :lo12:.LANCHOR3 + ldrb w0, [x1,1248] + cmp w0, 3 + bne .L726 add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,3553] - cmp w1, 3 - bne .L695 - ldrb w1, [x0,756] - cbnz w1, .L695 - ldr x0, [x0,608] - ldrb w20, [x0,89] - add w20, w20, w20, lsl 1 - and w20, w20, 1023 - b .L696 -.L695: - add x0, x19, :lo12:.LANCHOR0 - mov w20, 1 - ldrb w1, [x0,3554] - cbz w1, .L696 - ldrb w0, [x0,3555] - mov w20, 2 - cmp w0, wzr - csinc w20, w20, wzr, ne -.L696: - adrp x0, .LANCHOR2 - uxth x26, w24 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L697 - add x0, x19, :lo12:.LANCHOR0 - mov w1, w24 - add x3, x0, 800 - add x3, x3, x25, lsl 6 - ldr x4, [x0,3560] - adrp x0, .LC93 - add x0, x0, :lo12:.LC93 - ldrb w2, [x3,1] - ldrb w4, [x4,x26] - ldrh w3, [x3,48] - bl printk -.L697: - add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,3560] - add x0, x0, x25, lsl 6 - ldrb w1, [x1,x26] - ldrb w0, [x0,801] + ldrb w2, [x0,1268] + cbnz w2, .L726 + ldr x0, [x0,1120] + ldrb w1, [x1,1249] + ldrb w0, [x0,89] cmp w1, w0 - beq .L698 + bhi .L739 + cmp w0, 3 + mov w1, 2 + csel w0, w0, w1, cc + b .L728 +.L739: + mov w0, 1 +.L728: + add w24, w0, w0, lsl 1 + b .L729 +.L726: + add x0, x25, :lo12:.LANCHOR3 + mov w24, 1 + ldrb w1, [x0,1250] + cbz w1, .L729 + ldrb w0, [x0,1251] + cmp w0, wzr + mov w0, 2 + csel w24, w24, w0, eq +.L729: + add x0, x25, :lo12:.LANCHOR3 + uxth x1, w23 + ldr x2, [x0,1256] + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, x20, lsl 6 + ldrb w1, [x2,x1] + ldrb w0, [x0,1313] + cmp w1, w0 + beq .L730 adrp x0, .LC0 - mov x1, x22 - mov w2, 814 + mov x1, x21 + mov w2, 976 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L698: - add x1, x19, :lo12:.LANCHOR0 - add x0, x1, x25, lsl 6 - ldrb w0, [x0,861] - cmp w0, 3 - beq .L699 - ldrb w0, [x1,3553] - cmp w0, 3 - bne .L699 - ldrb w0, [x1,3568] - cbnz w0, .L699 - ldrb w0, [x1,756] - cbnz w0, .L699 - ldrb w0, [x1,3554] - cbz w0, .L700 - ldrb w0, [x1,3555] - cbnz w0, .L699 -.L700: +.L730: + add x0, x19, :lo12:.LANCHOR0 + add x20, x0, x20, lsl 6 + ldrb w1, [x20,1373] + cmp w1, 3 + beq .L731 + add x1, x25, :lo12:.LANCHOR3 + ldrb w2, [x1,1248] + cmp w2, 3 + bne .L731 + ldrb w2, [x1,1264] + cbnz w2, .L731 + ldrb w2, [x0,1268] + cbnz w2, .L731 + ldrb w0, [x0,1269] + cbnz w0, .L731 + ldrb w0, [x1,1250] + cbz w0, .L732 + ldrb w0, [x1,1251] + cbnz w0, .L731 +.L732: + add x25, x25, :lo12:.LANCHOR3 add x19, x19, :lo12:.LANCHOR0 - mov w0, 0 - add x19, x19, 800 - ldr x2, [x19,2760] - b .L701 -.L699: + mov w1, 0 + add x19, x19, 1312 + ldr x2, [x25,1256] + b .L733 +.L731: add x19, x19, :lo12:.LANCHOR0 - mov w25, 0 - mov w26, -1 - add x27, x19, 800 - strh w24, [x19,3484] -.L702: - cmp w20, w25, uxth - bls .L693 - add w1, w25, w24 - ldr x2, [x19,3560] - add w25, w25, 1 - ldrb w0, [x2,x1] - strb w26, [x2,x1] - sbfiz x0, x0, 6, 32 - add x0, x27, x0 + mov w20, 0 + mov w27, -1 + add x28, x19, 1312 + strh w23, [x19,5532] +.L734: + cmp w24, w20, uxth + bls .L724 + add x0, x25, :lo12:.LANCHOR3 + add w2, w20, w23 + add w20, w20, 1 + ldr x0, [x0,1256] + ldrb w1, [x0,x2] + strb w27, [x0,x2] + sbfiz x1, x1, 6, 32 + add x0, x28, x1 strb wzr, [x0,61] bl zbuf_free - ldrb w0, [x19,2919] + ldrb w0, [x19,3431] sub w0, w0, #1 - strb w0, [x19,2919] - b .L702 -.L701: - cmp w20, w0, uxth - bls .L693 - add w1, w0, w24 - add w0, w0, 1 - ldrb w1, [x2,x1] - add x1, x19, x1, lsl 6 - strb wzr, [x1,61] - b .L701 -.L722: + strb w0, [x19,3431] + b .L734 +.L733: + cmp w24, w1, uxth + bls .L724 + add w0, w1, w23 + add w1, w1, 1 + ldrb w0, [x2,x0] + add x0, x19, x0, lsl 6 + strb wzr, [x0,61] + b .L733 +.L753: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldr x27, [sp,80] + ldp x27, x28, [sp,80] ldp x29, x30, [sp], 96 ret .size gc_write_completed, .-gc_write_completed @@ -4760,52 +4976,56 @@ gc_write_completed: .type gc_get_src_blk, %function gc_get_src_blk: adrp x3, .LANCHOR0 + adrp x4, .LANCHOR3 add x0, x3, :lo12:.LANCHOR0 - ldr x1, [x0,608] - ldrb w0, [x0,3569] - ldrh w4, [x1,124] - cbz w4, .L724 + ldr x1, [x0,1120] + add x0, x4, :lo12:.LANCHOR3 + ldrh w5, [x1,124] + ldrb w0, [x0,1265] + cbz w5, .L755 add x1, x1, 392 mov w2, 1 - b .L725 -.L724: + b .L756 +.L755: sxtw x2, w0 add x0, x1, x2, lsl 1 - ldrh w5, [x0,120] + ldrh w6, [x0,120] mov w0, 65535 - cbz w5, .L726 + cbz w6, .L757 add x1, x1, x2, lsl 7 - mov w2, w4 + mov w2, w5 add x1, x1, 136 -.L725: - add x4, x1, 128 - mov w5, 65535 -.L729: +.L756: + add x5, x1, 128 + mov w6, 65535 +.L760: ldrh w0, [x1] - cmp w0, w5 - beq .L727 - mov w4, -1 - strh w4, [x1] + cmp w0, w6 + beq .L758 + mov w5, -1 + strh w5, [x1] + cbz w2, .L759 add x3, x3, :lo12:.LANCHOR0 - cbz w2, .L728 - ldr x2, [x3,608] + ldr x2, [x3,1120] ldrh w1, [x2,124] sub w1, w1, #1 strh w1, [x2,124] - b .L726 -.L728: - ldrb w1, [x3,3569] - ldr x2, [x3,608] + b .L757 +.L759: + add x4, x4, :lo12:.LANCHOR3 + add x3, x3, :lo12:.LANCHOR0 + ldrb w1, [x4,1265] + ldr x2, [x3,1120] add x1, x2, x1, lsl 1 ldrh w2, [x1,120] sub w2, w2, #1 strh w2, [x1,120] - b .L726 -.L727: + b .L757 +.L758: add x1, x1, 2 - cmp x1, x4 - bne .L729 -.L726: + cmp x1, x5 + bne .L760 +.L757: ret .size gc_get_src_blk, .-gc_get_src_blk .align 2 @@ -4818,60 +5038,63 @@ gc_free_temp_buf: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 str x21, [sp,32] - add x2, x19, :lo12:.LANCHOR0 - ldrb w3, [x2,2919] - cbz w3, .L734 - ldrb w3, [x2,2850] - cmp w3, 1 - bhi .L734 - ldrh w4, [x2,3570] - mov x20, x2 - ldrb w0, [x2,3572] - add x2, x2, 800 - ldrh w1, [x2,2684] - mul w0, w4, w0 - add w3, w1, 24 - ldr x4, [x2,2760] - cmp w0, w3 - csel w3, w0, w3, ls -.L735: - cmp w1, w3 - bcs .L748 + add x4, x19, :lo12:.LANCHOR0 + ldrb w1, [x4,3431] + cbz w1, .L765 + ldrb w1, [x4,3362] + cmp w1, 1 + bhi .L765 + adrp x20, .LANCHOR3 + ldrh w1, [x4,5532] + add x5, x20, :lo12:.LANCHOR3 + add x4, x4, 1312 + add w2, w1, 24 + ldrh w3, [x5,1266] + ldrb w0, [x5,1249] + mul w0, w3, w0 + ldr x3, [x5,1256] + cmp w0, w2 + csel w2, w0, w2, ls +.L766: + cmp w1, w2 + bcs .L779 uxtw x21, w1 - ldrb w0, [x4,x21] + ldrb w0, [x3,x21] cmp w0, 255 - beq .L736 + beq .L767 sbfiz x0, x0, 6, 32 - add x0, x2, x0 + add x0, x4, x0 ldrb w5, [x0,61] - cbnz w5, .L736 + cbnz w5, .L767 str x1, [x29,56] bl zbuf_free adrp x0, .LANCHOR2 ldr x1, [x29,56] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L737 - ldr x2, [x20,3560] - adrp x0, .LC94 - add x0, x0, :lo12:.LC94 + tbz x0, 8, .L768 + add x0, x20, :lo12:.LANCHOR3 + ldr x2, [x0,1256] + adrp x0, .LC99 + add x0, x0, :lo12:.LC99 ldrb w2, [x2,x21] bl printk -.L737: +.L768: + add x20, x20, :lo12:.LANCHOR3 add x19, x19, :lo12:.LANCHOR0 mov w1, -1 - ldr x0, [x19,3560] + ldr x0, [x20,1256] strb w1, [x0,x21] - ldrb w0, [x19,2919] + ldrb w0, [x19,3431] sub w0, w0, #1 - strb w0, [x19,2919] + strb w0, [x19,3431] mov w0, 1 - b .L734 -.L736: + b .L765 +.L767: add w1, w1, 1 - b .L735 -.L748: + b .L766 +.L779: mov w0, 0 -.L734: +.L765: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 64 @@ -4882,17 +5105,17 @@ gc_free_temp_buf: .type print_gc_debug_info, %function print_gc_debug_info: adrp x6, .LANCHOR0 - adrp x0, .LC95 + adrp x0, .LC100 add x6, x6, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC95 + add x0, x0, :lo12:.LC100 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w1, [x6,2912] - ldrh w2, [x6,2914] - ldrh w3, [x6,3482] - ldrb w4, [x6,2850] - ldrb w5, [x6,2919] - ldrh w6, [x6,2888] + ldrh w1, [x6,3424] + ldrh w2, [x6,3426] + ldrh w3, [x6,5530] + ldrb w4, [x6,3362] + ldrb w5, [x6,3431] + ldrh w6, [x6,3400] bl printk ldp x29, x30, [sp], 16 ret @@ -4906,23 +5129,23 @@ zftl_get_gc_node: uxth w2, w0 cmp w1, 5 add x29, sp, 0 - bne .L751 - adrp x0, .LANCHOR0+3576 - ldr x0, [x0,#:lo12:.LANCHOR0+3576] - b .L754 -.L751: + bne .L782 + adrp x0, .LANCHOR3+1272 + ldr x0, [x0,#:lo12:.LANCHOR3+1272] + b .L785 +.L782: cmp w1, 2 - bne .L753 + bne .L784 mov w0, w2 bl zftl_get_gc_node.part.11 - b .L755 -.L753: - adrp x0, .LANCHOR0+3584 - ldr x0, [x0,#:lo12:.LANCHOR0+3584] -.L754: + b .L786 +.L784: + adrp x0, .LANCHOR3+1280 + ldr x0, [x0,#:lo12:.LANCHOR3+1280] +.L785: mov w1, w2 bl _list_get_gc_head_node.isra.4 -.L755: +.L786: uxth w0, w0 ldp x29, x30, [sp], 16 ret @@ -4931,477 +5154,638 @@ zftl_get_gc_node: .global gc_search_src_blk .type gc_search_src_blk, %function gc_search_src_blk: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -144]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 + adrp x19, .LANCHOR0 + uxtb w20, w2 stp x21, x22, [sp,32] uxtb w21, w0 - add x0, x20, :lo12:.LANCHOR0 + uxtb w0, w1 + add x1, x19, :lo12:.LANCHOR0 + str w0, [x29,128] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - uxtb w24, w1 - uxtb w22, w2 - ldr x1, [x0,608] - add x1, x1, x21, sxtw 1 - ldrh w19, [x1,120] - cbnz w19, .L803 - cbnz w21, .L759 - adrp x26, .LC96 - strh w21, [x0,3592] - mov w19, w21 - mov w25, w21 - uxth w23, w22 + ldr x3, [x1,1120] + add x0, x3, x21, sxtw 1 + ldrh w0, [x0,120] + cbnz w0, .L908 + ldrh w2, [x1,3480] + cmp w2, 1 + bhi .L790 + adrp x1, .LANCHOR3 + add x1, x1, :lo12:.LANCHOR3 + strh w0, [x1,1288] + strh w0, [x1,1290] + strh w0, [x1,1292] +.L790: + cbnz w21, .L912 + adrp x24, .LC101 + mov w22, w21 + mov w23, w21 + add w25, w20, 1 + adrp x26, .LANCHOR3 mov w27, 65535 adrp x28, .LANCHOR2 - add x26, x26, :lo12:.LC96 -.L760: - cmp w25, w23 - bcs .L765 - add x3, x20, :lo12:.LANCHOR0 + add x24, x24, :lo12:.LC101 +.L791: + cmp w23, w25 + bge .L797 + add x3, x26, :lo12:.LANCHOR3 mov w1, 3 - str x3, [x29,96] - ldrh w2, [x3,3592] - str x2, [x29,104] + str x3, [x29,112] + ldrh w2, [x3,1290] + str x2, [x29,120] mov w0, w2 bl zftl_get_gc_node uxth w1, w0 - ldr x2, [x29,104] + ldr x2, [x29,120] cmp w1, w27 - ldr x3, [x29,96] + ldr x3, [x29,112] mov w4, w1 add w2, w2, 1 uxth w2, w2 - strh w2, [x3,3592] - beq .L761 + strh w2, [x3,1290] + beq .L793 ldr w0, [x28,#:lo12:.LANCHOR2] - uxtw x5, w1 - tbz x0, 8, .L762 - ldr x3, [x3,600] - mov x0, x26 - str x4, [x29,96] - str x5, [x29,104] - ldrh w3, [x3,x5,lsl 1] + uxtw x6, w1 + tbz x0, 8, .L794 + add x0, x19, :lo12:.LANCHOR0 + str x4, [x29,112] + str x6, [x29,120] + ldr x3, [x0,1112] + mov x0, x24 + ldrh w3, [x3,x6,lsl 1] bl printk - ldr x4, [x29,96] - ldr x5, [x29,104] -.L762: - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,600] - ldrh w2, [x0,x5,lsl 1] - ldrh w0, [x1,2894] - cmp w2, w0 - bcs .L763 + ldr x4, [x29,112] + ldr x6, [x29,120] +.L794: + add x0, x19, :lo12:.LANCHOR0 + ldr x1, [x0,1112] + ldrh w0, [x0,3406] + ldrh w1, [x1,x6,lsl 1] + cmp w1, w0 + bcs .L795 mov w1, 0 mov w0, w4 mov w2, w1 bl gc_add_sblk - cbz w0, .L764 - add w19, w19, 1 - uxth w19, w19 - cmp w19, w23 - bls .L764 - b .L765 -.L763: - strh wzr, [x1,3592] - b .L765 -.L761: - strh wzr, [x3,3592] - b .L765 -.L764: - add w25, w25, 1 - uxth w25, w25 - b .L760 -.L765: - tbz x24, 1, .L767 - mov w26, 0 - mov w27, 65535 -.L768: - cmp w26, w23 - beq .L772 - add x25, x20, :lo12:.LANCHOR0 + cbz w0, .L796 + add w5, w22, 1 + uxth w22, w5 + cmp w22, w20 + bcc .L796 + b .L797 +.L795: + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + strh wzr, [x0,1290] + b .L797 +.L793: + strh wzr, [x3,1290] + b .L797 +.L796: + add w23, w23, 1 + uxth w23, w23 + b .L791 +.L797: + ldr x0, [x29,128] + tbz x0, 1, .L799 + add x0, x19, :lo12:.LANCHOR0 + ldrh w0, [x0,3386] + cmp w0, 32 + bls .L799 + mov w28, 0 + adrp x24, .LANCHOR3 + mov w26, 65535 + uxth w27, w20 +.L800: + cmp w28, w25 + adrp x23, .LANCHOR3 + bge .L804 + add x2, x24, :lo12:.LANCHOR3 mov w1, 5 - ldrh w28, [x25,3594] - mov w0, w28 - add w28, w28, 1 + str x2, [x29,112] + ldrh w3, [x2,1292] + str x3, [x29,120] + mov w0, w3 bl zftl_get_gc_node uxth w1, w0 - strh w28, [x25,3594] - cmp w1, w27 - beq .L769 + ldr x2, [x29,112] + cmp w1, w26 + ldr x3, [x29,120] + add w3, w3, 1 + strh w3, [x2,1292] + beq .L801 + add x3, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x2, [x25,600] - ldrh w2, [x2,x1] - ldrh w1, [x25,2896] - cmp w2, w1 - bcs .L769 + ldr x4, [x3,1112] + ldrh w4, [x4,x1] + ldrh w1, [x3,3408] + cmp w4, w1 + bcs .L801 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L771 - add w19, w19, 1 - uxth w19, w19 - cmp w19, w23 - bls .L771 - b .L774 -.L769: - strh wzr, [x25,3594] - b .L772 -.L771: - add w26, w26, 1 - uxth w26, w26 - b .L768 -.L772: - cmp w19, w23 - bcs .L774 - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,3570] - ldrb w4, [x0,3572] - ldrh w2, [x0,3596] - ldrh w3, [x0,2896] - mul w1, w1, w4 - sub w1, w1, w2, lsr 2 - cmp w3, w1 - bge .L767 - add w2, w3, w2, lsr 3 - strh w2, [x0,2896] - b .L767 -.L774: - add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,2896] - ldrh w0, [x1,3596] + cbz w0, .L803 + add w5, w22, 1 + uxth w22, w5 + cmp w22, w27 + bcc .L803 + b .L804 +.L801: + strh wzr, [x2,1292] + b .L804 +.L803: + add w28, w28, 1 + uxth w28, w28 + b .L800 +.L804: + cmp w22, w20 + bcs .L806 + add x23, x23, :lo12:.LANCHOR3 + add x2, x19, :lo12:.LANCHOR0 + ldrh w0, [x23,1266] + ldrb w4, [x23,1249] + ldrh w1, [x23,1294] + ldrh w3, [x2,3408] + mul w0, w0, w4 + sub w0, w0, w1, lsr 2 + cmp w3, w0 + bge .L799 + add w1, w3, w1, lsr 3 + strh w1, [x2,3408] + b .L799 +.L806: + add x1, x19, :lo12:.LANCHOR0 + add x23, x23, :lo12:.LANCHOR3 + ldrh w2, [x1,3408] + ldrh w0, [x23,1294] cmp w2, w0 - bls .L767 + bls .L799 sub w0, w2, w0, lsr 3 - strh w0, [x1,2896] -.L767: - tbz x24, 0, .L775 - cmp w19, w23 - bcs .L775 - mov w25, 0 - mov w27, 65535 -.L776: - cmp w25, w23 - beq .L779 - add x28, x20, :lo12:.LANCHOR0 - ldrh w26, [x28,3598] - mov w0, w26 - add w26, w26, 1 + strh w0, [x1,3408] +.L799: + ldr x0, [x29,128] + tbz x0, 0, .L807 + uxth w27, w20 + cmp w22, w27 + bcs .L807 + mov w24, 0 + adrp x25, .LANCHOR3 + mov w26, 65535 +.L812: + add x28, x25, :lo12:.LANCHOR3 + ldrh w23, [x28,1288] + mov w0, w23 + add w23, w23, 1 bl zftl_get_gc_node.part.11 - strh w26, [x28,3598] - cmp w27, w0, uxth - beq .L777 + strh w23, [x28,1288] + cmp w26, w0, uxth + adrp x23, .LANCHOR3 + beq .L808 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L778 - add w19, w19, 1 - uxth w19, w19 - cmp w19, w23 - bcc .L778 - b .L781 -.L777: - strh wzr, [x28,3598] - b .L779 -.L778: - add w25, w25, 1 - uxth w25, w25 - b .L776 -.L779: - cmp w19, w23 - bcs .L781 - add x20, x20, :lo12:.LANCHOR0 - ldrh w1, [x20,2894] - ldrh w0, [x20,3596] + cbz w0, .L809 + add w5, w22, 1 + uxth w22, w5 + cmp w22, w27 + bcc .L809 + b .L810 +.L808: + strh wzr, [x28,1288] + b .L811 +.L809: + add w24, w24, 1 + uxth w24, w24 + cmp w24, w27 + bcc .L812 +.L811: + cmp w22, w27 + bcs .L810 + add x19, x19, :lo12:.LANCHOR0 + add x23, x23, :lo12:.LANCHOR3 + ldrh w1, [x19,3406] + ldrh w0, [x23,1294] cmp w1, w0 - bcs .L775 + bcs .L807 add w0, w1, w0, lsr 3 - b .L856 -.L781: - add x20, x20, :lo12:.LANCHOR0 - ldrh w0, [x20,3596] - ldrh w1, [x20,2894] + b .L911 +.L810: + add x23, x23, :lo12:.LANCHOR3 + add x19, x19, :lo12:.LANCHOR0 + ldrh w0, [x23,1294] + ldrh w1, [x19,3406] cmp w1, w0, lsr 1 - bls .L775 + bls .L807 sub w0, w1, w0, lsr 3 -.L856: - strh w0, [x20,2894] - b .L775 -.L759: - and w1, w24, 1 - strh w19, [x0,3486] - strh w19, [x0,3600] - str w1, [x29,104] - tbz x24, 0, .L782 - ldrh w2, [x0,3602] - ldrh w1, [x0,2868] - cmp w1, w2, lsr 2 - bcc .L783 - ldrh w0, [x0,2866] - cmp w0, w1 - bls .L784 -.L783: - add x23, x20, :lo12:.LANCHOR0 - mov w19, 0 - ldrh w0, [x23,2866] +.L911: + strh w0, [x19,3406] + b .L807 +.L912: + adrp x23, .LANCHOR3 + cmp w20, 1 + add x1, x23, :lo12:.LANCHOR3 + ldrb w0, [x1,1249] + ldrh w24, [x1,1266] + mul w24, w0, w24 + uxth w24, w24 + bne .L813 + cbz w2, .L813 + ldrh w1, [x3,80] + mov w0, 65535 + mov w20, 8 + cmp w1, w0 + beq .L813 + add x0, x19, :lo12:.LANCHOR0 + ldrh w0, [x0,5530] + sub w24, w24, w0 + uxth w24, w24 +.L813: + ldr w0, [x29,128] + add x1, x19, :lo12:.LANCHOR0 + add x3, x23, :lo12:.LANCHOR3 + and w25, w0, 1 + ldr x0, [x29,128] + strh wzr, [x1,5534] + strh wzr, [x3,1296] + tbz x0, 0, .L847 + ldrh w3, [x3,1298] + ldrh w0, [x1,3382] + cmp w0, w3, lsr 2 + bhi .L815 + ldrh w1, [x1,3384] + cmp w1, w0 + bcs .L848 +.L815: + cmp w2, 1 + bls .L817 +.L819: + mov w22, 0 + b .L818 +.L817: + add x26, x23, :lo12:.LANCHOR3 lsr w0, w0, 2 - strh w0, [x23,3598] + strh w0, [x26,1288] mov w0, 0 bl zftl_get_gc_node.part.11 uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L785 + beq .L819 + add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x3, [x23,600] - ldrh w2, [x23,3596] + ldr x3, [x2,1112] + ldrh w2, [x26,1294] ldrh w1, [x3,x1] cmp w1, w2, lsr 2 - bcs .L785 - mov w1, w19 + bcs .L819 + mov w1, 1 mov w2, w21 - strh w19, [x23,3598] + strh w1, [x26,1288] + mov w1, 0 bl gc_add_sblk - cmp w0, w19 - cset w19, ne -.L785: - mov w23, 64 - mov w26, 65535 - uxth w27, w22 -.L787: - add x25, x20, :lo12:.LANCHOR0 - ldrh w28, [x25,3598] - mov w0, w28 - add w28, w28, 1 + cmp w0, wzr + cset w22, ne +.L818: + mov w26, 64 + mov w28, 0 + uxth w27, w20 +.L822: + add x2, x23, :lo12:.LANCHOR3 + str x2, [x29,104] + ldrh w1, [x2,1288] + str x1, [x29,112] + mov w0, w1 bl zftl_get_gc_node.part.11 - strh w28, [x25,3598] - cmp w26, w0, uxth - beq .L784 + uxth w4, w0 + mov w1, 65535 + str x4, [x29,120] + cmp w4, w1 + ldr x2, [x29,104] + beq .L820 + ldr x1, [x29,112] + add w1, w1, 1 + strh w1, [x2,1288] mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L786 - add w19, w19, 1 - uxth w19, w19 - cmp w19, w27 - bcs .L784 -.L786: - sub w23, w23, #1 - uxth w23, w23 - cbnz w23, .L787 -.L784: - add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,3602] - ldrh w1, [x0,2868] - cmp w1, w2, lsr 3 - bhi .L804 - ldrh w0, [x0,2866] - add w0, w0, 8 - cmp w1, w0 - bgt .L804 -.L782: - tbz x24, 1, .L790 - add x0, x20, :lo12:.LANCHOR0 - mov w25, 64 + ldr x4, [x29,120] + cbz w0, .L821 + add x0, x19, :lo12:.LANCHOR0 + ubfiz x4, x4, 1, 16 + add w5, w22, 1 + ldr x1, [x0,1112] + uxth w22, w5 + ldrh w1, [x1,x4] + add w28, w28, w1 + uxth w28, w28 + cmp w28, w24 + bhi .L816 + cmp w22, w27 + bcs .L816 + ldrh w1, [x0,3384] + ldrh w0, [x0,3382] + cmp w1, w0, lsl 1 + ble .L821 + b .L816 +.L820: + strh wzr, [x2,1288] + b .L816 +.L821: + sub w3, w26, #1 + uxth w26, w3 + cbnz w26, .L822 + b .L816 +.L847: + mov w28, w25 + mov w22, w25 +.L814: + ldr x0, [x29,128] + tbz x0, 1, .L826 + cmp w28, w24 + bcs .L826 + add x0, x19, :lo12:.LANCHOR0 + ldrh w0, [x0,3386] + cmp w0, 32 + bls .L826 + uxth w0, w20 + mov w27, 64 mov w26, 0 - mov w27, 65535 - uxth w28, w22 - strh wzr, [x0,3594] -.L795: - add x23, x20, :lo12:.LANCHOR0 + str w0, [x29,120] +.L832: + add x2, x23, :lo12:.LANCHOR3 mov w1, 5 - ldrh w2, [x23,3594] - str x2, [x29,96] - mov w0, w2 + str x2, [x29,104] + ldrh w7, [x2,1292] + str x7, [x29,112] + mov w0, w7 bl zftl_get_gc_node - uxth w1, w0 - ldr x2, [x29,96] - cmp w1, w27 - add w2, w2, 1 - strh w2, [x23,3594] - beq .L791 - cmp w22, 1 - bne .L792 - ldrh w3, [x23,3570] - ldrb w2, [x23,3572] - mul w2, w2, w3 - ldrh w3, [x23,3596] - sub w2, w2, w3, lsr 3 - strh w2, [x23,2890] -.L792: - add x2, x20, :lo12:.LANCHOR0 - ubfiz x1, x1, 1, 16 - ldr x3, [x2,600] - ldrh w3, [x3,x1] - ldrh w1, [x2,2890] - cmp w3, w1 - bcs .L793 + uxth w6, w0 + mov w1, 65535 + ldr x2, [x29,104] + cmp w6, w1 + beq .L827 + ldr x7, [x29,112] + cmp w20, 1 + add w7, w7, 1 + strh w7, [x2,1292] + bne .L828 + ldrb w7, [x2,1249] + add x1, x19, :lo12:.LANCHOR0 + ldrh w8, [x2,1266] + mul w8, w7, w8 + ldrh w7, [x2,1294] + sub w2, w8, w7, lsr 3 + strh w2, [x1,3402] +.L828: + add x7, x19, :lo12:.LANCHOR0 + ubfiz x6, x6, 1, 16 + str x7, [x29,112] + str x6, [x29,104] + ldr x1, [x7,1112] + ldrh w2, [x1,x6] + ldrh w1, [x7,3402] + cmp w2, w1 + bcs .L829 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L794 - add w19, w19, 1 - add w26, w26, 1 - uxth w19, w19 - uxth w26, w26 - cmp w19, w28 - bcc .L794 - b .L791 -.L793: - strh wzr, [x2,3594] - b .L791 -.L794: - sub w0, w25, #1 - uxth w25, w0 - cbnz w25, .L795 -.L791: - cmp w19, w22 - bcc .L796 - cbnz w26, .L797 - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,2870] - ldrh w0, [x0,3604] + ldr x7, [x29,112] + ldr x6, [x29,104] + cbz w0, .L830 + ldr x0, [x7,1112] + add w3, w26, 1 + add w5, w22, 1 + uxth w26, w3 + ldrh w0, [x0,x6] + uxth w22, w5 + add w28, w28, w0 + uxth w28, w28 + cmp w28, w24 + bhi .L831 + ldr w0, [x29,120] + cmp w22, w0 + bcc .L830 + b .L831 +.L829: + add x0, x23, :lo12:.LANCHOR3 + strh wzr, [x0,1292] + b .L831 +.L827: + strh wzr, [x2,1292] + b .L831 +.L830: + sub w4, w27, #1 + uxth w27, w4 + cbnz w27, .L832 +.L831: + cmp w22, w20 + bcc .L833 + cbnz w26, .L834 + add x1, x19, :lo12:.LANCHOR0 + add x0, x23, :lo12:.LANCHOR3 + ldrh w1, [x1,3386] + ldrh w0, [x0,1300] cmp w1, w0 - bls .L797 -.L796: - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,3570] - ldrb w4, [x0,3572] - ldrh w3, [x0,3596] - ldrh w2, [x0,2890] - mul w1, w1, w4 - lsr w3, w3, 3 - sub w1, w1, w3 + bls .L834 +.L833: + add x3, x23, :lo12:.LANCHOR3 + add x4, x19, :lo12:.LANCHOR0 + ldrh w2, [x3,1294] + ldrh w0, [x3,1266] + ldrb w3, [x3,1249] + lsr w2, w2, 3 + ldrh w1, [x4,3402] + mul w0, w0, w3 + sub w0, w0, w2 + cmp w1, w0 + bge .L826 + add w1, w2, w1 + strh w1, [x4,3402] + b .L826 +.L834: + add x23, x23, :lo12:.LANCHOR3 + add x19, x19, :lo12:.LANCHOR0 + ldrh w0, [x23,1294] + ldrb w1, [x23,1249] + ldrh w2, [x19,3402] + mul w1, w0, w1 cmp w2, w1 - bge .L790 - add w2, w3, w2 - strh w2, [x0,2890] - b .L790 -.L797: - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,3596] - ldrb w2, [x0,3572] - ldrh w3, [x0,2890] - mul w2, w1, w2 - cmp w3, w2 - ble .L790 - sub w1, w3, w1, lsr 3 - strh w1, [x0,2890] -.L790: - ldr w0, [x29,104] - cbz w0, .L775 - add x0, x20, :lo12:.LANCHOR0 + ble .L807 + sub w0, w2, w0, lsr 3 + strh w0, [x19,3402] + b .L807 +.L826: + cbz w25, .L807 + uxth w26, w20 + cmp w22, w26 + bcs .L807 + cmp w28, w24 + bcs .L807 mov w25, 64 - mov w26, 65535 - uxth w27, w22 - strh wzr, [x0,3592] -.L801: - add x23, x20, :lo12:.LANCHOR0 +.L840: + add x2, x23, :lo12:.LANCHOR3 mov w1, 3 - ldrh w28, [x23,3592] - mov w0, w28 - add w28, w28, 1 + str x2, [x29,120] + ldrh w27, [x2,1290] + mov w0, w27 bl zftl_get_gc_node uxth w1, w0 - strh w28, [x23,3592] - cmp w1, w26 - beq .L798 - ubfiz x1, x1, 1, 16 - ldr x2, [x23,600] - ldrh w1, [x2,x1] - cmp w1, 2 - bls .L799 - ldrh w2, [x23,2892] - cmp w2, w1 - bls .L799 - ldrh w2, [x23,3602] - ldrh w1, [x23,2868] + mov w2, 65535 + cmp w1, w2 + ldr x2, [x29,120] + beq .L836 + add w27, w27, 1 + strh w27, [x2,1290] + ubfiz x27, x1, 1, 16 + add x1, x19, :lo12:.LANCHOR0 + ldr x4, [x1,1112] + ldrh w6, [x4,x27] + ldrh w4, [x1,3404] + cmp w6, w4 + bcs .L837 + ldrh w2, [x2,1298] + ldrh w1, [x1,3384] cmp w1, w2, lsr 1 - bls .L798 -.L799: + bls .L838 +.L837: mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L800 - add w19, w19, 1 - uxth w19, w19 - cmp w19, w27 - bcs .L798 -.L800: + cbz w0, .L839 + add x0, x19, :lo12:.LANCHOR0 + add w5, w22, 1 + uxth w22, w5 + ldr x0, [x0,1112] + ldrh w0, [x0,x27] + add w28, w28, w0 + uxth w28, w28 + cmp w28, w24 + bhi .L838 + cmp w22, w26 + bcc .L839 + b .L838 +.L836: + cmp w27, 64 + bls .L838 + strh wzr, [x2,1290] + b .L838 +.L839: sub w25, w25, #1 uxth w25, w25 - cbnz w25, .L801 -.L798: - cmp w19, w22 - add x20, x20, :lo12:.LANCHOR0 - bcs .L802 - ldrh w0, [x20,3596] - ldrh w1, [x20,2892] + cbnz w25, .L840 +.L838: + cmp w22, w26 + add x19, x19, :lo12:.LANCHOR0 + bcs .L841 + add x23, x23, :lo12:.LANCHOR3 + ldrh w1, [x19,3404] + ldrh w0, [x23,1294] cmp w1, w0, lsr 1 - bls .L775 + bls .L807 sub w0, w1, w0, lsr 3 - strh w0, [x20,2892] - b .L775 -.L802: - ldrh w1, [x20,3596] - ldrb w0, [x20,3572] - ldrh w2, [x20,2892] + strh w0, [x19,3404] + b .L807 +.L841: + add x23, x23, :lo12:.LANCHOR3 + ldrh w2, [x19,3404] + ldrh w1, [x23,1294] + ldrb w0, [x23,1249] mul w0, w1, w0 sub w0, w0, #32 cmp w2, w0 - bge .L775 + bge .L807 add w1, w2, w1, lsr 3 - strh w1, [x20,2892] -.L775: + strh w1, [x19,3404] +.L807: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L803 - adrp x0, .LC97 + tbz x0, 8, .L842 + adrp x0, .LC102 + ldr w2, [x29,128] + add x0, x0, :lo12:.LC102 mov w1, w21 - add x0, x0, :lo12:.LC97 - mov w2, w24 - mov w3, w19 - mov w4, w22 + mov w3, w22 + mov w4, w20 bl printk -.L803: - mov w0, w19 +.L842: + mov w0, w22 + b .L908 +.L848: + mov w28, 0 + mov w22, w28 +.L816: + add x2, x23, :lo12:.LANCHOR3 + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x2,1298] + ldrh w1, [x0,3384] + cmp w1, w2, lsr 2 + bhi .L843 + ldrh w0, [x0,3382] + add w0, w0, 8 + cmp w1, w0 + ble .L814 +.L843: + cmp w28, w24 + bcs .L814 + mov w26, 64 + uxth w27, w20 +.L825: + add x6, x23, :lo12:.LANCHOR3 + mov w1, 3 + str x6, [x29,104] + ldrh w2, [x6,1290] + str x2, [x29,112] + mov w0, w2 + bl zftl_get_gc_node + uxth w4, w0 + mov w1, 65535 + str x4, [x29,120] + cmp w4, w1 + ldr x2, [x29,112] + ldr x6, [x29,104] + beq .L823 + add w2, w2, 1 + mov w1, 0 + strh w2, [x6,1290] + mov w2, w21 + bl gc_add_sblk + ldr x4, [x29,120] + cbz w0, .L824 + add x0, x19, :lo12:.LANCHOR0 + ubfiz x4, x4, 1, 16 + add w5, w22, 1 + ldr x0, [x0,1112] + uxth w22, w5 + ldrh w0, [x0,x4] + add w28, w28, w0 + uxth w28, w28 + cmp w28, w24 + bhi .L814 + cmp w22, w27 + bcc .L824 + b .L814 +.L823: + cmp w2, 64 + bls .L814 + strh wzr, [x6,1290] + b .L814 +.L824: + sub w3, w26, #1 + uxth w26, w3 + cbnz w26, .L825 + b .L814 +.L908: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 144 ret -.L804: - add x0, x20, :lo12:.LANCHOR0 - mov w23, 64 - mov w26, 65535 - uxth w27, w22 - strh wzr, [x0,3592] -.L789: - add x25, x20, :lo12:.LANCHOR0 - mov w1, 3 - ldrh w28, [x25,3592] - mov w0, w28 - add w28, w28, 1 - bl zftl_get_gc_node - strh w28, [x25,3592] - cmp w26, w0, uxth - beq .L782 - mov w1, 0 - mov w2, w21 - bl gc_add_sblk - cbz w0, .L788 - add w19, w19, 1 - uxth w19, w19 - cmp w19, w27 - bcs .L782 -.L788: - sub w23, w23, #1 - uxth w23, w23 - cbnz w23, .L789 - b .L782 .size gc_search_src_blk, .-gc_search_src_blk .align 2 .global zftl_insert_free_list @@ -5410,26 +5794,29 @@ zftl_insert_free_list: adrp x2, .LANCHOR0 uxth w1, w0 add x2, x2, :lo12:.LANCHOR0 + adrp x3, .LANCHOR3 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x2,584] + ldr x0, [x2,1096] add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L858 - add x0, x2, 3608 - add x2, x2, 2860 - b .L861 -.L858: + bne .L914 + add x0, x3, :lo12:.LANCHOR3 + add x2, x2, 3376 + add x0, x0, 1304 + b .L917 +.L914: cmp w0, 16 - bne .L860 - add x0, x2, 3616 - add x2, x2, 2862 - b .L861 -.L860: - add x0, x2, 3624 - add x2, x2, 2864 -.L861: + add x0, x3, :lo12:.LANCHOR3 + bne .L916 + add x0, x0, 1312 + add x2, x2, 3378 + b .L917 +.L916: + add x0, x0, 1320 + add x2, x2, 3380 +.L917: bl _insert_free_list ldp x29, x30, [sp], 16 ret @@ -5443,29 +5830,33 @@ zftl_insert_data_list: add x2, x2, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x2,584] + ldr x0, [x2,1096] add x0, x0, x1, uxth 2 ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L863 - add x0, x2, 616 - add x2, x2, 2866 - b .L866 -.L863: + bne .L919 + add x0, x2, 1128 + add x2, x2, 3382 + b .L922 +.L919: cmp w3, 96 - bne .L865 - add x0, x2, 3584 - add x2, x2, 2868 - b .L866 -.L865: + bne .L921 + adrp x0, .LANCHOR3 + add x2, x2, 3384 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 1280 + b .L922 +.L921: cmp w3, 160 - bne .L862 - add x0, x2, 3576 - add x2, x2, 2870 -.L866: + bne .L918 + adrp x0, .LANCHOR3 + add x2, x2, 3386 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 1272 +.L922: bl _insert_data_list -.L862: +.L918: ldp x29, x30, [sp], 16 ret .size zftl_insert_data_list, .-zftl_insert_data_list @@ -5478,81 +5869,88 @@ zftl_gc_get_free_sblk: stp x19, x20, [sp,16] adrp x20, .LANCHOR0 str x23, [sp,48] - add x23, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - uxth w21, w0 - uxth w22, w1 - ldr x0, [x23,608] + add x21, x20, :lo12:.LANCHOR0 + uxth w22, w0 + uxth w23, w1 + ldr x0, [x21,1120] ldrh w19, [x0,588] - cbnz w21, .L868 + cbnz w22, .L924 mov w0, 65535 cmp w19, w0 - beq .L868 - adrp x0, .LC98 + beq .L924 + adrp x0, .LC103 mov w1, w19 - add x0, x0, :lo12:.LC98 + add x0, x0, :lo12:.LC103 bl printk - ldr x0, [x23,608] + ldr x0, [x21,1120] mov w1, -1 strh w1, [x0,588] - b .L869 -.L868: + b .L925 +.L924: add x0, x20, :lo12:.LANCHOR0 - ldrh w3, [x0,2862] - ldrh w1, [x0,2864] + adrp x21, .LANCHOR3 + ldrh w3, [x0,3378] + ldrh w1, [x0,3380] cmp w3, w1 - bls .L870 - mov w1, 0 - mov x2, x0 - lsr w3, w3, 3 - cmp w21, w1 - csel w1, w3, w1, ne - add x0, x0, 3616 - add x2, x2, 2862 - b .L888 -.L870: + bcc .L926 + ldrh w0, [x0,3376] + cmp w0, w3 + bls .L927 + cbz w1, .L927 +.L926: lsr w1, w1, 2 - cbz w21, .L874 + cbz w22, .L929 mov w1, 7 mul w3, w3, w1 - mov w1, 8 - sdiv w3, w3, w1 - uxth w1, w3 -.L874: + lsr w1, w3, 3 +.L929: + add x0, x21, :lo12:.LANCHOR3 add x2, x20, :lo12:.LANCHOR0 - add x0, x2, 3624 - add x2, x2, 2864 -.L888: + add x0, x0, 1320 + add x2, x2, 3380 + b .L951 +.L927: + mov w1, 0 + lsr w3, w3, 3 + cmp w22, w1 + add x0, x21, :lo12:.LANCHOR3 + add x2, x20, :lo12:.LANCHOR0 + csel w1, w3, w1, ne + add x0, x0, 1312 + add x2, x2, 3378 +.L951: bl _list_pop_index_node uxth w19, w0 mov w0, 65535 cmp w19, w0 - bne .L875 + bne .L932 add x5, x20, :lo12:.LANCHOR0 - adrp x0, .LC99 - add x0, x0, :lo12:.LC99 + add x21, x21, :lo12:.LANCHOR3 + adrp x0, .LC104 mov w1, w19 - mov w2, w22 - ldr x3, [x5,3608] - ldrh w4, [x5,2860] - ldrh w5, [x5,2864] + add x0, x0, :lo12:.LC104 + mov w2, w23 + ldrh w4, [x5,3376] + ldr x3, [x21,1304] + ldrh w5, [x5,3380] bl printk -.L875: - cbz w21, .L869 +.L932: + cbz w22, .L925 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L869 + tbz x0, 8, .L925 add x20, x20, :lo12:.LANCHOR0 uxtw x6, w19 lsl x0, x6, 2 - ldr x1, [x20,584] - ldr x7, [x20,600] + ldr x1, [x20,1096] + ldr x7, [x20,1112] add x2, x1, x0 ldr w4, [x1,x0] ldrh w5, [x1,x0] - adrp x0, .LC100 + adrp x0, .LC105 ldrb w3, [x2,2] - add x0, x0, :lo12:.LC100 + add x0, x0, :lo12:.LC105 ldrh w6, [x7,x6,lsl 1] mov w1, w19 ubfx x2, x3, 5, 3 @@ -5560,7 +5958,7 @@ zftl_gc_get_free_sblk: ubfx x3, x3, 3, 2 and w5, w5, 2047 bl printk -.L869: +.L925: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -5579,91 +5977,98 @@ zftl_get_free_sblk: uxth w21, w1 stp x19, x20, [sp,16] cmp w21, 5 - adrp x19, .LANCHOR0 - bne .L890 - add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,2862] - ldrh w1, [x0,2864] - cmp w2, w1 - bcc .L891 - ldrh w0, [x0,2860] - cmp w0, w2 - bls .L892 - cbz w1, .L892 -.L891: - add x2, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR0 + bne .L953 + add x2, x20, :lo12:.LANCHOR0 + adrp x0, .LANCHOR3 + ldrh w3, [x2,3378] + ldrh w1, [x2,3380] + cmp w3, w1 + bcc .L954 + ldrh w2, [x2,3376] + cmp w2, w3 + bls .L955 + cbz w1, .L955 +.L954: + add x0, x0, :lo12:.LANCHOR3 + add x2, x20, :lo12:.LANCHOR0 + add x0, x0, 1320 lsr w1, w1, 1 - add x0, x2, 3624 - b .L920 -.L892: - add x2, x19, :lo12:.LANCHOR0 + b .L983 +.L955: + add x0, x0, :lo12:.LANCHOR3 + add x2, x20, :lo12:.LANCHOR0 + add x0, x0, 1312 mov w1, 0 - add x0, x2, 3616 - add x2, x2, 2862 - b .L919 -.L890: - add x22, x19, :lo12:.LANCHOR0 + add x2, x2, 3378 + b .L982 +.L953: + add x22, x20, :lo12:.LANCHOR0 cmp w21, 1 - ldr x0, [x22,608] - ldrh w20, [x0,590] - beq .L894 + ldr x0, [x22,1120] + ldrh w19, [x0,590] + beq .L957 mov w0, 65535 - cmp w20, w0 - beq .L894 - adrp x0, .LC101 - mov w1, w20 - add x0, x0, :lo12:.LC101 + cmp w19, w0 + beq .L957 + adrp x0, .LC106 + mov w1, w19 + add x0, x0, :lo12:.LC106 bl printk - ldr x0, [x22,608] + ldr x0, [x22,1120] mov w1, -1 strh w1, [x0,590] - b .L895 -.L894: - add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,2860] - ldrh w1, [x2,2864] - cmp w0, w1 - bcc .L896 - ldrh w2, [x2,2862] - cmp w2, w0 - bls .L897 - cbz w1, .L897 -.L896: + b .L958 +.L957: + add x4, x20, :lo12:.LANCHOR0 + adrp x0, .LANCHOR3 + ldrh w1, [x4,3376] + ldrh w2, [x4,3380] + cmp w1, w2 + bcc .L959 + ldrh w4, [x4,3378] + cmp w4, w1 + bls .L960 + cbz w2, .L960 +.L959: + lsr w2, w2, 1 + cmp w21, 1 + csel w3, w2, w3, eq + add x0, x0, :lo12:.LANCHOR3 + add x2, x20, :lo12:.LANCHOR0 + add x0, x0, 1320 + mov w1, w3 +.L983: + add x2, x2, 3380 + b .L982 +.L960: lsr w1, w1, 1 cmp w21, 1 csel w3, w1, w3, eq - add x2, x19, :lo12:.LANCHOR0 - add x0, x2, 3624 + add x0, x0, :lo12:.LANCHOR3 + add x2, x20, :lo12:.LANCHOR0 + add x0, x0, 1304 mov w1, w3 -.L920: - add x2, x2, 2864 - b .L919 -.L897: - lsr w0, w0, 1 - cmp w21, 1 - csel w3, w0, w3, eq - add x2, x19, :lo12:.LANCHOR0 - add x0, x2, 3608 - mov w1, w3 - add x2, x2, 2860 -.L919: + add x2, x2, 3376 +.L982: bl _list_pop_index_node uxth w0, w0 - mov w20, w0 + mov w19, w0 mov w0, 65535 - cmp w20, w0 - bne .L895 - add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC99 - add x0, x0, :lo12:.LC99 - mov w1, w20 + cmp w19, w0 + bne .L958 + add x20, x20, :lo12:.LANCHOR0 + adrp x3, .LANCHOR3+1304 + adrp x0, .LC104 + mov w1, w19 + add x0, x0, :lo12:.LC104 mov w2, w21 - ldr x3, [x19,3608] - ldrh w4, [x19,2860] - ldrh w5, [x19,2864] + ldr x3, [x3,#:lo12:.LANCHOR3+1304] + ldrh w4, [x20,3376] + ldrh w5, [x20,3380] bl printk -.L895: - mov w0, w20 +.L958: + mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -5678,29 +6083,33 @@ zftl_remove_data_node: add x2, x2, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x2,584] + ldr x0, [x2,1096] add x0, x0, x1, uxth 2 ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L922 - add x0, x2, 616 - add x2, x2, 2866 - b .L925 -.L922: + bne .L985 + add x0, x2, 1128 + add x2, x2, 3382 + b .L988 +.L985: cmp w3, 96 - bne .L924 - add x0, x2, 3584 - add x2, x2, 2868 - b .L925 -.L924: + bne .L987 + adrp x0, .LANCHOR3 + add x2, x2, 3384 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 1280 + b .L988 +.L987: cmp w3, 160 - bne .L921 - add x0, x2, 3576 - add x2, x2, 2870 -.L925: + bne .L984 + adrp x0, .LANCHOR3 + add x2, x2, 3386 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 1272 +.L988: bl _list_remove_node -.L921: +.L984: ldp x29, x30, [sp], 16 ret .size zftl_remove_data_node, .-zftl_remove_data_node @@ -5711,26 +6120,29 @@ zftl_remove_free_node: adrp x2, .LANCHOR0 uxth w1, w0 add x2, x2, :lo12:.LANCHOR0 + adrp x3, .LANCHOR3 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x2,584] + ldr x0, [x2,1096] add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L927 - add x0, x2, 3608 - add x2, x2, 2860 - b .L930 -.L927: + bne .L990 + add x0, x3, :lo12:.LANCHOR3 + add x2, x2, 3376 + add x0, x0, 1304 + b .L993 +.L990: cmp w0, 16 - bne .L929 - add x0, x2, 3616 - add x2, x2, 2862 - b .L930 -.L929: - add x0, x2, 3624 - add x2, x2, 2864 -.L930: + add x0, x3, :lo12:.LANCHOR3 + bne .L992 + add x0, x0, 1312 + add x2, x2, 3378 + b .L993 +.L992: + add x0, x0, 1320 + add x2, x2, 3380 +.L993: bl _list_remove_node ldp x29, x30, [sp], 16 ret @@ -5744,29 +6156,33 @@ zftl_list_update_data_list: add x2, x2, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x2,584] + ldr x0, [x2,1096] add x0, x0, x1, uxth 2 ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L932 - add x0, x2, 616 - add x2, x2, 2866 - b .L935 -.L932: + bne .L995 + add x0, x2, 1128 + add x2, x2, 3382 + b .L998 +.L995: cmp w3, 96 - bne .L934 - add x0, x2, 3584 - add x2, x2, 2868 - b .L935 -.L934: + bne .L997 + adrp x0, .LANCHOR3 + add x2, x2, 3384 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 1280 + b .L998 +.L997: cmp w3, 160 - bne .L931 - add x0, x2, 3576 - add x2, x2, 2870 -.L935: + bne .L994 + adrp x0, .LANCHOR3 + add x2, x2, 3386 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 1272 +.L998: bl _list_update_data_list -.L931: +.L994: ldp x29, x30, [sp], 16 ret .size zftl_list_update_data_list, .-zftl_list_update_data_list @@ -5774,36 +6190,38 @@ zftl_list_update_data_list: .global print_list_info .type print_list_info, %function print_list_info: - sub sp, sp, #112 + sub sp, sp, #128 stp x29, x30, [sp,32] add x29, sp, 32 stp x19, x20, [sp,48] mov x19, x0 - adrp x0, .LC102 + str x27, [sp,112] stp x21, x22, [sp,64] stp x23, x24, [sp,80] stp x25, x26, [sp,96] - add x0, x0, :lo12:.LC102 + adrp x0, .LC107 ldrh w2, [x1] + add x0, x0, :lo12:.LC107 ldr x1, [x19] bl printk ldr x19, [x19] - cbz x19, .L936 + cbz x19, .L999 mov x22, -6148914691236517206 - adrp x23, .LC103 + adrp x23, .LC108 mov w20, 0 - adrp x25, .LANCHOR0 + adrp x26, .LANCHOR0 add x22, x22, 1 - add x23, x23, :lo12:.LC103 - mov w26, 65535 - mov w24, 6 -.L939: - add x21, x25, :lo12:.LANCHOR0 + add x23, x23, :lo12:.LC108 + mov w27, 65535 + mov w25, 6 + adrp x24, .LANCHOR3 +.L1002: + add x21, x26, :lo12:.LANCHOR0 ldrh w3, [x19] ldrh w4, [x19,2] ldrh w5, [x19,4] - ldr x2, [x21,528] - ldr x1, [x21,584] + ldr x2, [x21,1040] + ldr x1, [x21,1096] sub x2, x19, x2 asr x2, x2, 1 mul x2, x2, x22 @@ -5821,30 +6239,32 @@ print_list_info: mov w1, w20 and w0, w0, 2047 str w0, [sp,8] - ldr x0, [x21,600] + ldr x0, [x21,1112] ldrh w0, [x0,x8,lsl 1] str w0, [sp,16] mov x0, x23 bl printk ldrh w19, [x19] - cmp w19, w26 - beq .L936 - ldr x0, [x21,528] + cmp w19, w27 + beq .L999 + ldr x0, [x21,1040] add w20, w20, 1 - umull x19, w19, w24 + umull x19, w19, w25 uxth w20, w20 add x19, x0, x19 - ldrh w0, [x21,3632] + add x0, x24, :lo12:.LANCHOR3 + ldrh w0, [x0,1328] cmp w0, w20 - bcs .L939 -.L936: + bcs .L1002 +.L999: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] ldp x23, x24, [sp,80] ldp x25, x26, [sp,96] + ldr x27, [sp,112] ldp x29, x30, [sp,32] - add sp, sp, 112 + add sp, sp, 128 ret .size print_list_info, .-print_list_info .align 2 @@ -5853,28 +6273,30 @@ print_list_info: dump_all_list_info: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + stp x19, x20, [sp,16] + adrp x20, .LANCHOR3 adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x19, 3608 - add x1, x19, 2860 + add x20, x20, :lo12:.LANCHOR3 + add x0, x20, 1304 + add x1, x19, 3376 bl print_list_info - add x0, x19, 3616 - add x1, x19, 2862 + add x0, x20, 1312 + add x1, x19, 3378 bl print_list_info - add x0, x19, 3624 - add x1, x19, 2864 + add x0, x20, 1320 + add x1, x19, 3380 bl print_list_info - add x0, x19, 616 - add x1, x19, 2866 + add x0, x19, 1128 + add x1, x19, 3382 bl print_list_info - add x0, x19, 3584 - add x1, x19, 2868 + add x0, x20, 1280 + add x1, x19, 3384 bl print_list_info - add x0, x19, 3576 - add x1, x19, 2870 + add x0, x20, 1272 + add x1, x19, 3386 bl print_list_info - ldr x19, [sp,16] + ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret .size dump_all_list_info, .-dump_all_list_info @@ -5882,105 +6304,109 @@ dump_all_list_info: .global ftl_tmp_into_update .type ftl_tmp_into_update, %function ftl_tmp_into_update: - adrp x0, .LANCHOR0+2880 - ldr x0, [x0,#:lo12:.LANCHOR0+2880] + adrp x0, .LANCHOR0+3392 + ldr x0, [x0,#:lo12:.LANCHOR0+3392] ldr w2, [x0,16] cmp w2, 2048 - bls .L942 + bls .L1005 lsr w1, w2, 11 ldr w3, [x0,20] add w3, w3, w1 sub w1, w2, w1, lsl 11 str w3, [x0,20] str w1, [x0,16] -.L942: +.L1005: ldr w2, [x0,24] cmp w2, 2048 - bls .L943 + bls .L1006 lsr w1, w2, 11 ldr w3, [x0,28] add w3, w3, w1 sub w1, w2, w1, lsl 11 str w3, [x0,28] str w1, [x0,24] -.L943: +.L1006: ldr w2, [x0,32] cmp w2, 1024 - bls .L944 + bls .L1007 lsr w1, w2, 10 ldr w3, [x0,36] add w3, w3, w1 sub w1, w2, w1, lsl 10 str w3, [x0,36] str w1, [x0,32] -.L944: +.L1007: ldr w2, [x0,40] cmp w2, 1024 - bls .L941 + bls .L1004 lsr w1, w2, 10 ldr w3, [x0,44] add w3, w3, w1 sub w1, w2, w1, lsl 10 str w3, [x0,44] str w1, [x0,40] -.L941: +.L1004: ret .size ftl_tmp_into_update, .-ftl_tmp_into_update .align 2 .global ftl_get_blk_list_in_sblk .type ftl_get_blk_list_in_sblk, %function ftl_get_blk_list_in_sblk: - adrp x7, .LANCHOR0 + adrp x3, .LANCHOR0 uxth w0, w0 - add x2, x7, :lo12:.LANCHOR0 - mov w12, 24 - ldr x2, [x2,584] + add x2, x3, :lo12:.LANCHOR0 + mov x9, x3 + adrp x11, .LANCHOR3 + mov w13, 24 + ldr x2, [x2,1096] add x2, x2, x0, uxth 2 - ldrb w11, [x2,3] + ldrb w12, [x2,3] mov w2, 0 mov w6, w2 -.L947: - add x8, x7, :lo12:.LANCHOR0 - ldrb w3, [x8,3572] +.L1010: + add x8, x11, :lo12:.LANCHOR3 + adrp x4, .LANCHOR3 + ldrb w3, [x8,1249] cmp w6, w3 - bge .L953 - asr w3, w11, w6 - tbnz x3, 0, .L948 - ldrb w5, [x8,3538] + bge .L1016 + asr w3, w12, w6 + tbnz x3, 0, .L1011 + add x3, x9, :lo12:.LANCHOR0 + ldrb w5, [x8,1234] sbfiz x10, x2, 1, 32 - ldrb w9, [x8,744] - ldrh w3, [x8,3536] + ldrb w7, [x3,1257] + ldrh w3, [x8,1232] sdiv w4, w6, w5 - sub w9, w12, w9 - sub w3, w9, w3 + sub w7, w13, w7 + sub w3, w7, w3 lsl w3, w4, w3 madd w3, w0, w5, w3 uxth w4, w3 strh w4, [x1,x10] - ldrb w3, [x8,3538] + ldrb w3, [x8,1234] cmp w3, 1 - bls .L949 + bls .L1012 sub w3, w3, #1 and w3, w6, w3 add w3, w4, w3 strh w3, [x1,x10] -.L949: +.L1012: add w2, w2, 1 -.L948: +.L1011: add w6, w6, 1 - b .L947 -.L953: + b .L1010 +.L1016: mov w0, w2 - mov w4, -1 -.L951: - add x3, x7, :lo12:.LANCHOR0 - ldrb w3, [x3,3572] + mov w5, -1 +.L1014: + add x3, x4, :lo12:.LANCHOR3 + ldrb w3, [x3,1249] cmp w2, w3 - bge .L954 - strh w4, [x1,w2,sxtw 1] + bge .L1017 + strh w5, [x1,w2,sxtw 1] add w2, w2, 1 - b .L951 -.L954: + b .L1014 +.L1017: ret .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .align 2 @@ -5988,40 +6414,41 @@ ftl_get_blk_list_in_sblk: .type ftl_erase_phy_blk, %function ftl_erase_phy_blk: stp x29, x30, [sp, -48]! - adrp x3, .LANCHOR0 uxth w2, w0 - add x5, x3, :lo12:.LANCHOR0 + adrp x3, .LANCHOR3 + adrp x0, .LANCHOR0+1257 + add x5, x3, :lo12:.LANCHOR3 add x29, sp, 0 - mov w0, 24 stp x21, x22, [sp,32] stp x19, x20, [sp,16] + ldrb w4, [x0,#:lo12:.LANCHOR0+1257] + mov w0, 24 + ldrh w19, [x5,1232] mov w21, w1 - mov x20, x3 - ldrb w4, [x5,744] - ldrh w19, [x5,3536] sub w4, w0, w4 - ldrb w0, [x5,3554] + ldrb w0, [x5,1250] sub w4, w4, w19 mov w19, 1 lsl w19, w19, w4 asr w22, w2, w4 sub w19, w19, #1 + mov x20, x3 and w19, w19, w2 sxth w19, w19 - cbz w0, .L956 - ldrb w0, [x5,3555] - cbnz w0, .L956 - ldrh w2, [x5,3634] + cbz w0, .L1019 + ldrb w0, [x5,1251] + cbnz w0, .L1019 + ldrh w2, [x5,1330] cmp w1, wzr mov w0, w22 cset w1, eq mul w2, w19, w2 bl flash_erase_block_en -.L956: - add x3, x20, :lo12:.LANCHOR0 +.L1019: + add x3, x20, :lo12:.LANCHOR3 mov w1, w21 mov w0, w22 - ldrh w2, [x3,3634] + ldrh w2, [x3,1330] mul w2, w19, w2 bl flash_erase_block_en ldp x19, x20, [sp,16] @@ -6033,149 +6460,155 @@ ftl_erase_phy_blk: .global ftl_erase_sblk .type ftl_erase_sblk, %function ftl_erase_sblk: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -160]! add x29, sp, 0 stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 uxth w24, w0 - add x0, x23, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] + adrp x0, .LANCHOR0 + mov w23, w1 + add x1, x0, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - ubfiz x20, x24, 2, 16 - mov w22, w1 - ldr x0, [x0,584] + stp x19, x20, [sp,16] + stp x27, x28, [sp,80] + ubfiz x22, x24, 2, 16 + adrp x25, .LANCHOR3 + ldr x1, [x1,1096] mov w19, 0 - add x0, x0, x20 - ldrb w25, [x0,3] -.L961: - add x2, x23, :lo12:.LANCHOR0 - ldrb w0, [x2,3636] + mov x21, x0 + mov x26, x25 + add x1, x1, x22 + ldrb w27, [x1,3] +.L1024: + add x1, x25, :lo12:.LANCHOR3 + ldrb w0, [x1,1332] cmp w19, w0 - bge .L972 - ldrb w3, [x2,3538] - mov w21, 0 - ldrh w2, [x2,3634] - mov w1, w21 - sub w4, w3, #1 - mul w6, w19, w3 - mul w5, w24, w3 -.L973: - cmp w1, w3 - bge .L986 - add w0, w1, w6 - asr w0, w25, w0 - tbnz x0, 0, .L962 - and w0, w1, w4 - add x7, x29, 80 - add w0, w5, w0 - mul w0, w0, w2 - str w0, [x7,w21,sxtw 2] - add w21, w21, 1 -.L962: + bge .L1035 + ldrb w0, [x1,1234] + mov w20, 0 + ldrh w3, [x1,1330] + mov w1, w20 + sub w4, w0, #1 + mul w6, w19, w0 + mul w5, w24, w0 +.L1036: + cmp w1, w0 + bge .L1049 + add w2, w1, w6 + asr w2, w27, w2 + tbnz x2, 0, .L1025 + and w2, w1, w4 + add x7, x29, 96 + add w2, w5, w2 + mul w2, w2, w3 + str w2, [x7,w20,sxtw 2] + add w20, w20, 1 +.L1025: add w1, w1, 1 - b .L973 -.L986: - cmp w3, 4 - bne .L985 - mov x26, 0 -.L964: - cmp w21, w26 - ble .L967 - add x2, x29, 80 + b .L1036 +.L1049: + cmp w0, 4 + bne .L1048 + mov x28, 0 +.L1027: + cmp w20, w28 + ble .L1030 + add x2, x29, 96 mov w0, w19 - mov w1, w22 - ldr w2, [x2,x26,lsl 2] - add x26, x26, 1 + mov w1, w23 + ldr w2, [x2,x28,lsl 2] + add x28, x28, 1 bl flash_erase_block_en - b .L964 -.L985: - cmp w21, 2 - bne .L968 - add x0, x23, :lo12:.LANCHOR0 - ldrb w1, [x0,3554] - cbz w1, .L969 - ldrb w0, [x0,3555] - cbnz w0, .L969 - cmp w22, wzr - ldr w2, [x29,80] - ldr w3, [x29,84] + b .L1027 +.L1048: + cmp w20, 2 + bne .L1031 + add x0, x26, :lo12:.LANCHOR3 + ldrb w1, [x0,1250] + cbz w1, .L1032 + ldrb w0, [x0,1251] + cbnz w0, .L1032 + cmp w23, wzr + ldr w2, [x29,96] + ldr w3, [x29,100] mov w0, w19 cset w1, eq bl flash_erase_duplane_block -.L969: - ldr w2, [x29,80] +.L1032: + ldr w2, [x29,96] mov w0, w19 - ldr w3, [x29,84] - mov w1, w22 + ldr w3, [x29,100] + mov w1, w23 bl flash_erase_duplane_block - b .L967 -.L968: - cmp w21, 1 - bne .L967 - add x0, x23, :lo12:.LANCHOR0 - ldrb w1, [x0,3554] - cbz w1, .L971 - ldrb w0, [x0,3555] - cbnz w0, .L971 - cmp w22, wzr - ldr w2, [x29,80] + b .L1030 +.L1031: + cmp w20, 1 + bne .L1030 + add x0, x26, :lo12:.LANCHOR3 + ldrb w1, [x0,1250] + cbz w1, .L1034 + ldrb w0, [x0,1251] + cbnz w0, .L1034 + cmp w23, wzr + ldr w2, [x29,96] mov w0, w19 cset w1, eq bl flash_erase_block_en -.L971: - ldr w2, [x29,80] +.L1034: + ldr w2, [x29,96] mov w0, w19 - mov w1, w22 + mov w1, w23 bl flash_erase_block_en -.L967: +.L1030: add w19, w19, 1 - b .L961 -.L972: - cbnz w22, .L974 - ldr x1, [x2,584] - ldrh w0, [x1,x20] - add w3, w0, 1 - bfi w0, w3, 0, 11 - strh w0, [x1,x20] - ldr x0, [x2,2880] - ldr w1, [x0,84] - ldrh w3, [x0,96] - add w1, w1, 1 - str w1, [x0,84] - ldr x1, [x2,584] - ldrh w1, [x1,x20] - ubfx x1, x1, 0, 11 - uxth w2, w1 + b .L1024 +.L1035: + add x0, x21, :lo12:.LANCHOR0 + cbnz w23, .L1037 + ldr x2, [x0,1096] + ldrh w1, [x2,x22] + add w3, w1, 1 + bfi w1, w3, 0, 11 + strh w1, [x2,x22] + ldr x1, [x0,3392] + ldr x0, [x0,1096] + ldr w2, [x1,84] + ldrh w3, [x1,96] + add w2, w2, 1 + str w2, [x1,84] + ldrh w0, [x0,x22] + ubfx x0, x0, 0, 11 + uxth w2, w0 cmp w3, w2 - bge .L976 - strh w1, [x0,96] - b .L976 -.L974: - ldr x3, [x2,584] - ldr w0, [x3,x20] - ubfx x1, x0, 11, 8 - add w1, w1, 1 - bfi w0, w1, 11, 8 - str w0, [x3,x20] - ldr x0, [x2,2880] - ldr w1, [x0,80] - add w1, w1, 1 - str w1, [x0,80] - ldr x1, [x2,584] - ldrh w2, [x0,98] - ldr w1, [x1,x20] - ubfx x1, x1, 11, 8 - cmp w2, w1, uxtb - bcs .L976 - strh w1, [x0,98] -.L976: + bge .L1039 + strh w0, [x1,96] + b .L1039 +.L1037: + ldr x3, [x0,1096] + ldr w1, [x3,x22] + ubfx x2, x1, 11, 8 + add w2, w2, 1 + bfi w1, w2, 11, 8 + str w1, [x3,x22] + ldr x1, [x0,3392] + ldr x0, [x0,1096] + ldr w2, [x1,80] + add w2, w2, 1 + str w2, [x1,80] + ldrh w2, [x1,98] + ldr w0, [x0,x22] + ubfx x0, x0, 11, 8 + cmp w2, w0, uxtb + bcs .L1039 + strh w0, [x1,98] +.L1039: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 144 + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 160 ret .size ftl_erase_sblk, .-ftl_erase_sblk .align 2 @@ -6188,42 +6621,42 @@ ftl_alloc_sys_blk: add x1, x0, :lo12:.LANCHOR0 str x19, [sp,16] mov x19, x0 - ldr x1, [x1,2880] + ldr x1, [x1,3392] ldrh w2, [x1,136] cmp w2, 63 - bls .L988 + bls .L1051 strh wzr, [x1,136] -.L988: +.L1051: ldrh w0, [x1,112] - cbnz w0, .L989 + cbnz w0, .L1052 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1150 - add x1, x1, 1392 + mov w2, 1283 + add x1, x1, 1800 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L989: +.L1052: add x0, x19, :lo12:.LANCHOR0 mov w4, 65535 - ldr x1, [x0,2880] -.L993: + ldr x1, [x0,3392] +.L1056: ldrh w2, [x1,136] -.L990: +.L1053: cmp w2, 63 - bgt .L996 + bgt .L1059 sxtw x3, w2 add x3, x3, 80 ldrh w0, [x1,x3,lsl 1] cmp w0, w4 - bne .L995 + bne .L1058 add w2, w2, 1 - b .L990 -.L996: + b .L1053 +.L1059: strh wzr, [x1,136] - b .L993 -.L995: + b .L1056 +.L1058: mov w4, -1 strh w4, [x1,x3,lsl 1] strh w2, [x1,136] @@ -6245,37 +6678,37 @@ ftl_free_sys_blk: uxth w20, w0 add x0, x1, :lo12:.LANCHOR0 mov x19, x1 - ldr x2, [x0,2880] + ldr x2, [x0,3392] ldrh w0, [x2,138] cmp w0, 63 - bls .L998 + bls .L1061 strh wzr, [x2,138] -.L998: +.L1061: ldrh w0, [x2,112] cmp w0, 63 - bls .L999 + bls .L1062 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1174 - add x1, x1, 1416 + mov w2, 1310 + add x1, x1, 1824 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L999: +.L1062: add x1, x19, :lo12:.LANCHOR0 mov w0, 65535 - ldr x1, [x1,2880] -.L1003: + ldr x1, [x1,3392] +.L1066: ldrh w2, [x1,138] -.L1000: +.L1063: cmp w2, 63 - bgt .L1005 + bgt .L1068 sxtw x3, w2 add x3, x3, 80 ldrh w4, [x1,x3,lsl 1] cmp w4, w0 - bne .L1001 + bne .L1064 strh w20, [x1,x3,lsl 1] strh w2, [x1,138] ldrh w0, [x1,112] @@ -6284,12 +6717,12 @@ ftl_free_sys_blk: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret -.L1001: +.L1064: add w2, w2, 1 - b .L1000 -.L1005: + b .L1063 +.L1068: strh wzr, [x1,138] - b .L1003 + b .L1066 .size ftl_free_sys_blk, .-ftl_free_sys_blk .align 2 .global ftl_info_data_recovery @@ -6303,77 +6736,77 @@ ftl_info_data_recovery: str x23, [sp,48] ldrh w2, [x0] cmp w2, w1 - beq .L1006 + beq .L1069 adrp x19, .LANCHOR0 ubfiz x20, x2, 2, 16 add x23, x19, :lo12:.LANCHOR0 - ldr x21, [x23,584] + ldr x21, [x23,1096] add x22, x21, x20 ldrb w1, [x22,2] tst w1, 224 - bne .L1006 + bne .L1069 ldrb w0, [x0,4] bfi w1, w0, 5, 3 mov w0, w2 strb w1, [x22,2] bl zftl_remove_free_node ldrb w0, [x22,2] - tbz x0, 3, .L1010 - ldr x1, [x23,2880] + tbz x0, 3, .L1073 + ldr x1, [x23,3392] ldrh w0, [x1,116] sub w0, w0, #1 strh w0, [x1,116] - b .L1011 -.L1010: + b .L1074 +.L1073: tst w0, 24 - ldr x1, [x23,2880] - bne .L1012 + ldr x1, [x23,3392] + bne .L1075 ldrh w0, [x1,114] sub w0, w0, #1 strh w0, [x1,114] - b .L1011 -.L1012: + b .L1074 +.L1075: ldrh w0, [x1,118] sub w0, w0, #1 strh w0, [x1,118] -.L1011: +.L1074: ldrb w0, [x22,2] and w0, w0, 224 cmp w0, 160 - bne .L1013 + bne .L1076 ldr w0, [x21,x20] add x19, x19, :lo12:.LANCHOR0 ubfx x1, x0, 11, 8 add w1, w1, 1 bfi w0, w1, 11, 8 str w0, [x21,x20] - ldr x1, [x19,2880] + ldr x1, [x19,3392] ldrh w0, [x1,120] sub w0, w0, #1 strh w0, [x1,120] - b .L1006 -.L1013: + b .L1069 +.L1076: ldrh w1, [x21,x20] cmp w0, 64 add w2, w1, 1 bfi w1, w2, 0, 11 strh w1, [x21,x20] - bne .L1014 + bne .L1077 add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2880] + ldr x1, [x19,3392] ldrh w0, [x1,122] sub w0, w0, #1 strh w0, [x1,122] - b .L1006 -.L1014: + b .L1069 +.L1077: cmp w0, 96 - bne .L1006 + bne .L1069 add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2880] + ldr x1, [x19,3392] ldrh w0, [x1,124] sub w0, w0, #1 strh w0, [x1,124] -.L1006: +.L1069: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -6385,26 +6818,27 @@ ftl_info_data_recovery: .type ftl_get_ppa_from_index, %function ftl_get_ppa_from_index: stp x29, x30, [sp, -48]! - adrp x2, .LANCHOR0 + adrp x2, .LANCHOR3 uxth w1, w0 - add x4, x2, :lo12:.LANCHOR0 + add x4, x2, :lo12:.LANCHOR3 + adrp x0, .LANCHOR0+1120 add x29, sp, 0 stp x19, x20, [sp,16] str x21, [sp,32] mov x19, x2 - ldrh w0, [x4,3596] - ldr x3, [x4,608] - ldrb w4, [x4,3572] + ldr x3, [x0,#:lo12:.LANCHOR0+1120] + ldrh w0, [x4,1294] + ldrb w4, [x4,1249] mul w0, w0, w4 cmp w1, w0 - bge .L1016 + bge .L1079 add x3, x3, 16 - b .L1017 -.L1016: + b .L1080 +.L1079: sub w1, w1, w0 add x3, x3, 48 uxth w1, w1 -.L1017: +.L1080: ldrb w2, [x3,9] mov w0, 65535 sdiv w20, w1, w2 @@ -6412,18 +6846,18 @@ ftl_get_ppa_from_index: add x1, x3, x1, uxth 1 ldrh w21, [x1,16] cmp w21, w0 - bne .L1018 + bne .L1081 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1696 - add x1, x1, 1440 + mov w2, 1937 + add x1, x1, 1848 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1018: - add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,3634] +.L1081: + add x2, x19, :lo12:.LANCHOR3 + ldrh w0, [x2,1330] madd w0, w21, w0, w20 ldp x19, x20, [sp,16] ldr x21, [sp,32] @@ -6434,33 +6868,31 @@ ftl_get_ppa_from_index: .global lpa_hash_get_ppa .type lpa_hash_get_ppa, %function lpa_hash_get_ppa: - adrp x2, .LANCHOR3 - adrp x1, .LANCHOR0 - add x2, x2, :lo12:.LANCHOR3 - add x1, x1, :lo12:.LANCHOR0 - stp x29, x30, [sp, -16]! - add x1, x1, x0, uxtb 1 + adrp x1, .LANCHOR3 mov w3, 65535 + add x1, x1, :lo12:.LANCHOR3 + add x2, x1, x0, uxtb 1 + stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w1, [x1,3640] - ldr x4, [x2,-200] - ldr x5, [x2,-192] -.L1020: - cmp w1, w3 - beq .L1024 - uxtw x2, w1 - ldr w6, [x4,x2,lsl 2] + ldrh w2, [x2,1336] + ldr x4, [x1,1848] + ldr x5, [x1,1856] +.L1083: + cmp w2, w3 + beq .L1087 + uxtw x1, w2 + ldr w6, [x4,x1,lsl 2] cmp w6, w0 - bne .L1021 - mov w0, w1 + bne .L1084 + mov w0, w2 bl ftl_get_ppa_from_index - b .L1022 -.L1021: - ldrh w1, [x5,x2,lsl 1] - b .L1020 -.L1024: + b .L1085 +.L1084: + ldrh w2, [x5,x1,lsl 1] + b .L1083 +.L1087: mov w0, -1 -.L1022: +.L1085: ldp x29, x30, [sp], 16 ret .size lpa_hash_get_ppa, .-lpa_hash_get_ppa @@ -6475,71 +6907,71 @@ ftl_get_new_free_page: ldrh w1, [x0] mov w0, 65535 cmp w1, w0 - bne .L1026 + bne .L1089 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1819 - add x1, x1, 1464 + mov w2, 2080 + add x1, x1, 1872 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1026: - adrp x20, .LANCHOR0 +.L1089: + adrp x20, .LANCHOR3 ldrh w1, [x19,2] - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,3596] + add x0, x20, :lo12:.LANCHOR3 + ldrh w0, [x0,1294] cmp w1, w0 - bne .L1027 + bne .L1090 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1820 - add x1, x1, 1464 + mov w2, 2081 + add x1, x1, 1872 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1027: +.L1090: ldrh w0, [x19,6] - cbnz w0, .L1028 + cbnz w0, .L1091 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1821 - add x1, x1, 1464 + mov w2, 2082 + add x1, x1, 1872 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1028: +.L1091: ldrb w0, [x19,5] - add x1, x20, :lo12:.LANCHOR0 + add x1, x20, :lo12:.LANCHOR3 add x0, x0, 8 - ldrb w2, [x1,3572] + ldrb w2, [x1,1249] mov w1, 65535 ldrh w0, [x19,x0,lsl 1] -.L1029: +.L1092: cmp w0, w1 - bne .L1033 + bne .L1096 ldrb w0, [x19,5] add w0, w0, 1 uxtb w0, w0 strb w0, [x19,5] cmp w0, w2 - bne .L1030 + bne .L1093 ldrh w0, [x19,2] strb wzr, [x19,5] add w0, w0, 1 strh w0, [x19,2] -.L1030: +.L1093: ldrb w0, [x19,5] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L1029 -.L1033: - add x20, x20, :lo12:.LANCHOR0 + b .L1092 +.L1096: + add x20, x20, :lo12:.LANCHOR3 ldrh w2, [x19,2] - ldrh w1, [x20,3634] - ldrb w3, [x20,3572] + ldrh w1, [x20,1330] + ldrb w3, [x20,1249] mul w0, w0, w1 ldrh w1, [x19,6] orr w0, w0, w2 @@ -6553,11 +6985,11 @@ ftl_get_new_free_page: uxtb w1, w1 strb w1, [x19,5] cmp w3, w1 - bne .L1032 + bne .L1095 add w2, w2, 1 strb wzr, [x19,5] strh w2, [x19,2] -.L1032: +.L1095: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6575,25 +7007,25 @@ ftl_ext_alloc_new_blk: mov w1, 65533 sub w0, w0, #1 cmp w1, w0, uxth - bcs .L1035 + bcs .L1098 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1852 - add x1, x1, 1488 + mov w2, 2117 + add x1, x1, 1896 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1035: +.L1098: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 mov w0, w20 bl ftl_erase_phy_blk - ldr x0, [x19,2880] + ldr x0, [x19,3392] ldrh w0, [x0,130] bl ftl_free_sys_blk - ldr x0, [x19,2880] + ldr x0, [x19,3392] strh w20, [x0,130] strh wzr, [x0,140] mov w0, 0 @@ -6607,61 +7039,87 @@ ftl_ext_alloc_new_blk: ftl_total_vpn_update: adrp x1, .LANCHOR3 add x3, x1, :lo12:.LANCHOR3 - ldrh w2, [x3,-184] - cbnz w0, .L1037 + ldrh w2, [x3,1864] + cbnz w0, .L1100 cmp w2, 4 - bhi .L1037 + bhi .L1100 add w2, w2, 1 - strh w2, [x3,-184] - b .L1036 -.L1037: + strh w2, [x3,1864] + b .L1099 +.L1100: add x1, x1, :lo12:.LANCHOR3 adrp x0, .LANCHOR0 mov w9, 65535 - strh wzr, [x1,-184] + strh wzr, [x1,1864] add x1, x0, :lo12:.LANCHOR0 - ldrh w6, [x1,576] - ldr x7, [x1,600] - ldr x8, [x1,584] + ldrh w6, [x1,1088] + ldr x7, [x1,1112] + ldr x8, [x1,1096] mov x1, 0 mov w2, w1 mov w3, w1 -.L1039: +.L1102: cmp w6, w1, uxth - bls .L1047 + bls .L1110 ldrh w4, [x7,x1,lsl 1] cmp w4, w9 - beq .L1040 + beq .L1103 add x5, x8, x1, lsl 2 ldrb w5, [x5,2] and w5, w5, 224 cmp w5, 160 - bne .L1041 + bne .L1104 add w2, w2, w4 - b .L1040 -.L1041: + b .L1103 +.L1104: add w3, w3, w4 -.L1040: +.L1103: add x1, x1, 1 - b .L1039 -.L1047: + b .L1102 +.L1110: add x0, x0, :lo12:.LANCHOR0 - ldr x1, [x0,608] - ldr x0, [x0,2880] + ldr x1, [x0,1120] + ldr x0, [x0,3392] str w3, [x1,524] str w2, [x1,528] ldrh w0, [x0,120] - cbz w0, .L1036 + cbz w0, .L1099 udiv w2, w2, w0 str w2, [x1,532] -.L1036: +.L1099: ret .size ftl_total_vpn_update, .-ftl_total_vpn_update .align 2 .global ftl_debug_info_fill .type ftl_debug_info_fill, %function ftl_debug_info_fill: + adrp x3, .LANCHOR0+3360 + uxtb w0, w0 + stp x29, x30, [sp, -32]! + add x29, sp, 0 + ldrb w3, [x3,#:lo12:.LANCHOR0+3360] + str x19, [sp,16] + cmp w3, 8 + bls .L1112 + cmp w0, 2 + bne .L1113 + cbz x2, .L1113 + mov x19, x1 + mov w1, 21320 + movk w1, 0x4841, lsl 16 + mov x0, x2 + str w1, [x19] + mov w1, 1024 + bl js_hash + str w0, [x19,4] + b .L1112 +.L1113: + str wzr, [x1] + str wzr, [x1,4] +.L1112: mov w0, 0 + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 ret .size ftl_debug_info_fill, .-ftl_debug_info_fill .align 2 @@ -6677,13 +7135,13 @@ ftl_vpn_update: bl zftl_list_update_data_list adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,600] + ldr x0, [x1,1112] ldrh w2, [x0,x19] mov w0, 0 - cbnz w2, .L1050 + cbnz w2, .L1121 mov w0, 1 - str w0, [x1,2900] -.L1050: + str w0, [x1,3412] +.L1121: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6698,59 +7156,58 @@ ftl_vpn_decrement: add x29, sp, 0 str x19, [sp,16] cmp w1, w0 + beq .L1124 adrp x2, .LANCHOR0 - beq .L1053 - add x5, x2, :lo12:.LANCHOR0 uxtw x0, w1 + add x2, x2, :lo12:.LANCHOR0 lsl x3, x0, 1 - ldr x4, [x5,600] + ldr x4, [x2,1112] ldrh w19, [x4,x3] - cbnz w19, .L1054 - ldr x2, [x5,584] + cbnz w19, .L1125 + ldr x2, [x2,1096] add x0, x2, x0, lsl 2 mov w2, w19 ldrb w3, [x0,2] - adrp x0, .LC104 - add x0, x0, :lo12:.LC104 + adrp x0, .LC109 + add x0, x0, :lo12:.LC109 ubfx x3, x3, 5, 3 bl printk - b .L1060 -.L1054: + b .L1131 +.L1125: sub w19, w19, #1 strh w19, [x4,x3] -.L1053: - add x19, x2, :lo12:.LANCHOR0 +.L1124: + adrp x19, .LANCHOR3 mov w0, 0 - ldrh w2, [x19,3512] + add x19, x19, :lo12:.LANCHOR3 + ldrh w2, [x19,1208] cmp w2, w1 - beq .L1055 + beq .L1126 mov w0, 65535 cmp w2, w0 - bne .L1056 - strh w1, [x19,3512] -.L1060: + bne .L1127 + strh w1, [x19,1208] +.L1131: mov w0, 0 - b .L1055 -.L1056: + b .L1126 +.L1127: mov w0, w2 str x1, [x29,40] bl ftl_vpn_update cmp w0, wzr - adrp x2, .LANCHOR3 + ldrh w3, [x19,1866] cset w0, ne - add x2, x2, :lo12:.LANCHOR3 - ldr x1, [x29,40] - ldrh w3, [x2,-182] + ldrh w2, [x19,1208] add w3, w3, 1 + ldr x1, [x29,40] + strh w1, [x19,1208] uxth w3, w3 cmp w3, 7 csel w3, w3, wzr, ls - strh w3, [x2,-182] - ldrh w2, [x19,3512] + strh w3, [x19,1866] add x3, x19, x3, uxth 1 - strh w1, [x19,3512] - strh w2, [x3,3520] -.L1055: + strh w2, [x3,1216] +.L1126: ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -6759,82 +7216,80 @@ ftl_vpn_decrement: .global lpa_hash_update_ppa .type lpa_hash_update_ppa, %function lpa_hash_update_ppa: - adrp x4, .LANCHOR0 - uxtb w11, w0 - add x3, x4, :lo12:.LANCHOR0 + adrp x3, .LANCHOR3 + uxtb w5, w0 + add x6, x3, :lo12:.LANCHOR3 uxth w2, w2 - add x3, x3, 3640 + add x4, x6, 1336 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w5, [x3,w11,sxtw 1] - adrp x3, .LANCHOR3 - add x6, x3, :lo12:.LANCHOR3 - ldr x8, [x6,-200] - ldr x13, [x6,-192] + ldr x8, [x6,1848] + ldr x12, [x6,1856] mov w6, 65535 - mov w12, w6 -.L1062: - cmp w5, w12 - beq .L1066 - uxtw x9, w5 - uxth x7, w5 + ldrh w4, [x4,w5,sxtw 1] + mov w11, w6 +.L1133: + cmp w4, w11 + beq .L1137 + uxtw x9, w4 + uxth x7, w4 lsl x10, x9, 2 - add x14, x8, x10 + add x13, x8, x10 ldr w10, [x8,x10] cmp w10, w0 - bne .L1063 - mov w5, -1 - str w5, [x14] - mov w5, 65535 - cmp w6, w5 - add x5, x3, :lo12:.LANCHOR3 - ldr x5, [x5,-192] - bne .L1064 - ldrh w6, [x5,x7,lsl 1] - add x5, x4, :lo12:.LANCHOR0 - add x5, x5, 3640 - strh w6, [x5,w11,sxtw 1] - b .L1065 -.L1064: - ldrh w8, [x5,x7,lsl 1] - strh w8, [x5,w6,uxtw 1] -.L1065: - add x5, x3, :lo12:.LANCHOR3 + bne .L1134 + mov w4, -1 + str w4, [x13] + mov w4, 65535 + cmp w6, w4 + add x4, x3, :lo12:.LANCHOR3 + bne .L1135 + ldr x6, [x4,1856] + add x4, x4, 1336 + ldrh w6, [x6,x7,lsl 1] + strh w6, [x4,w5,sxtw 1] + b .L1136 +.L1135: + ldr x4, [x4,1856] + ldrh w8, [x4,x7,lsl 1] + strh w8, [x4,w6,uxtw 1] +.L1136: + add x4, x3, :lo12:.LANCHOR3 mov w6, -1 - ldr x5, [x5,-192] - strh w6, [x5,x7,lsl 1] - b .L1066 -.L1063: - mov w6, w5 - ldrh w5, [x13,x9,lsl 1] - b .L1062 -.L1066: + ldr x4, [x4,1856] + strh w6, [x4,x7,lsl 1] + b .L1137 +.L1134: + mov w6, w4 + ldrh w4, [x12,x9,lsl 1] + b .L1133 +.L1137: add x3, x3, :lo12:.LANCHOR3 - uxtw x5, w2 - add x4, x4, :lo12:.LANCHOR0 + uxtw x4, w2 cmn w1, #1 - ldr x6, [x3,-200] - str w0, [x6,x5,lsl 2] - add x6, x4, 3640 - ldr x0, [x3,-192] - ldrh w7, [x6,w11,sxtw 1] - strh w2, [x6,w11,sxtw 1] - strh w7, [x0,x5,lsl 1] - beq .L1068 - ldrb w0, [x4,744] + ldr x6, [x3,1848] + str w0, [x6,x4,lsl 2] + add x0, x3, 1336 + ldrh w6, [x0,w5,sxtw 1] + strh w2, [x0,w5,sxtw 1] + ldr x0, [x3,1856] + strh w6, [x0,x4,lsl 1] + beq .L1139 + adrp x2, .LANCHOR0+1257 + ldrh w0, [x3,1232] + lsr w1, w1, w0 + ldrb w4, [x2,#:lo12:.LANCHOR0+1257] mov w2, 24 - ldrh w5, [x4,3536] - mov w3, 1 + sub w2, w2, w4 + mov w4, 1 sub w2, w2, w0 - ldrb w0, [x4,3538] - sub w2, w2, w5 - lsr w1, w1, w5 - lsl w2, w3, w2 + ldrb w0, [x3,1234] + lsl w2, w4, w2 sub w2, w2, #1 and w1, w2, w1 udiv w0, w1, w0 bl ftl_vpn_decrement -.L1068: +.L1139: mov w0, -1 ldp x29, x30, [sp], 16 ret @@ -6846,24 +7301,26 @@ ftl_mask_bad_block: stp x29, x30, [sp, -48]! adrp x6, .LANCHOR0 mov w4, 1 - add x7, x6, :lo12:.LANCHOR0 add x29, sp, 0 + add x1, x6, :lo12:.LANCHOR0 mov w3, 24 stp x19, x20, [sp,16] str x21, [sp,32] + adrp x7, .LANCHOR3 + add x7, x7, :lo12:.LANCHOR3 mov x19, x6 - ldrb w1, [x7,744] - ldrb w5, [x7,3538] + ldrb w1, [x1,1257] sub w3, w3, w1 lsl w1, w4, w1 lsr w2, w0, w3 sub w1, w1, #1 and w1, w1, w2 - cmp w5, 1 + ldrb w5, [x7,1234] uxtb w1, w1 + cmp w5, 1 mul w2, w1, w5 uxtb w20, w2 - ldrh w2, [x7,3536] + ldrh w2, [x7,1232] sub w3, w3, w2 lsr w0, w0, w2 lsl w3, w4, w3 @@ -6872,33 +7329,33 @@ ftl_mask_bad_block: uxth w4, w3 udiv w3, w3, w5 uxth w21, w3 - bls .L1073 + bls .L1144 sub w5, w5, #1 and w5, w4, w5 add w2, w20, w5 uxtb w20, w2 -.L1073: +.L1144: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 14, .L1074 - adrp x0, .LC105 + tbz x0, 14, .L1145 + adrp x0, .LC110 mov w2, w20 - add x0, x0, :lo12:.LC105 + add x0, x0, :lo12:.LC110 uxth w3, w3 bl printk -.L1074: +.L1145: add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,576] + ldrh w1, [x0,1088] cmp w1, w21 - bls .L1072 - ldr x0, [x0,584] + bls .L1143 + ldr x0, [x0,1096] mov w2, 1 add x21, x0, x21, uxth 2 ldrb w0, [x21,3] lsl w2, w2, w20 orr w2, w2, w0 strb w2, [x21,3] -.L1072: +.L1143: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6908,88 +7365,111 @@ ftl_mask_bad_block: .global gc_free_bad_sblk .type gc_free_bad_sblk, %function gc_free_bad_sblk: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -112]! add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - add x20, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - add x21, x20, 2912 stp x23, x24, [sp,48] + uxth w24, w0 + add x0, x20, :lo12:.LANCHOR0 + stp x27, x28, [sp,80] + stp x21, x22, [sp,32] stp x25, x26, [sp,64] - uxth w25, w0 - mov w24, 0 - ldr w0, [x21,584] - cbz w0, .L1090 - adrp x23, .LC106 - mov w26, 24 - add x23, x23, :lo12:.LC106 -.L1091: - ldrb w0, [x20,3572] - cmp w0, w24 - bls .L1090 - ldrb w3, [x20,3538] - ldrb w19, [x20,744] - ldrh w0, [x20,3536] + mov w27, 0 + ldr w0, [x0,5544] + cbz w0, .L1167 + adrp x22, .LANCHOR3 + adrp x21, .LC111 + add x0, x21, :lo12:.LC111 + mov x23, x22 + mov w25, 24 + str x0, [x29,104] +.L1168: + add x2, x22, :lo12:.LANCHOR3 + ldrb w0, [x2,1249] + cmp w0, w27 + bls .L1167 + add x4, x20, :lo12:.LANCHOR0 + ldrb w3, [x2,1234] + ldrh w2, [x2,1232] cmp w3, 1 - sdiv w1, w24, w3 - sub w19, w26, w19 - sub w19, w19, w0 - uxth w2, w3 - lsl w19, w1, w19 - madd w19, w25, w2, w19 + ldrb w19, [x4,1257] + uxth w1, w3 + sdiv w0, w27, w3 + sub w19, w25, w19 + sub w19, w19, w2 + lsl w19, w0, w19 + madd w19, w24, w1, w19 uxth w19, w19 - bls .L1081 - sub w2, w2, #1 - and w2, w24, w2 - add w19, w19, w2 + bls .L1152 + sub w1, w1, #1 + and w1, w27, w1 + add w19, w19, w1 uxth w19, w19 -.L1081: - mov w22, 0 -.L1082: - ldr w0, [x21,584] - cmp w22, w0 - bcs .L1092 - add x0, x21, x22, sxtw 1 - ldrh w0, [x0,588] +.L1152: + add x21, x20, :lo12:.LANCHOR0 + mov w26, 0 + add x28, x21, 3424 +.L1153: + ldr w0, [x28,2120] + cmp w26, w0 + bcs .L1169 + add x0, x28, x26, sxtw 1 + ldrh w0, [x0,2124] cmp w0, w19 - bne .L1083 + bne .L1154 + ldr x0, [x29,104] mov w1, w19 - mov x0, x23 bl printk - ldrh w0, [x20,3536] + add x0, x23, :lo12:.LANCHOR3 + ldrb w1, [x0,1868] + cbnz w1, .L1155 + ldrb w0, [x0,1250] + cbz w0, .L1156 +.L1155: + ldr x0, [x21,3392] + ldr w1, [x0,156] + mov w0, 20041 + movk w0, 0x444b, lsl 16 + cmp w1, w0 + beq .L1157 +.L1156: + add x0, x23, :lo12:.LANCHOR3 + ldrh w0, [x0,1232] lsl w0, w19, w0 bl ftl_mask_bad_block - ldr w2, [x21,584] - mov w1, w22 -.L1084: - cmp w1, w2 - bcs .L1093 - add w3, w1, 1 - add x1, x21, x1, sxtw 1 - add x0, x21, x3, sxtw 1 - ldrh w0, [x0,588] - strh w0, [x1,588] - uxth w1, w3 - b .L1084 -.L1093: - sub w2, w2, #1 - str w2, [x21,584] -.L1083: - add w22, w22, 1 - uxth w22, w22 - b .L1082 -.L1092: - add w24, w24, 1 - uxth w24, w24 - b .L1091 -.L1090: +.L1157: + ldr w1, [x28,2120] + mov w0, w26 +.L1158: + cmp w0, w1 + bcs .L1170 + add w2, w0, 1 + add x0, x28, x0, sxtw 1 + add x4, x28, x2, sxtw 1 + ldrh w4, [x4,2124] + strh w4, [x0,2124] + uxth w0, w2 + b .L1158 +.L1170: + sub w1, w1, #1 + str w1, [x28,2120] +.L1154: + add w26, w26, 1 + uxth w26, w26 + b .L1153 +.L1169: + add w27, w27, 1 + uxth w27, w27 + b .L1168 +.L1167: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 112 ret .size gc_free_bad_sblk, .-gc_free_bad_sblk .align 2 @@ -6999,153 +7479,196 @@ ftl_free_sblk: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x4, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR0 + add x4, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] uxth x24, w0 - ldr x7, [x4,584] - lsl x20, x24, 2 + ldr x5, [x4,1096] + lsl x19, x24, 2 mov x22, x24 - add x21, x7, x20 + add x21, x5, x19 ldrb w2, [x21,2] ubfx x23, x2, 5, 3 - tbz x2, 3, .L1096 - ldr x0, [x4,2880] - ldrh w3, [x7,x20] - ldrh w5, [x0,74] - and w8, w3, 2047 - ldr w3, [x7,x20] - add w5, w8, w5 - ldrh w6, [x0,72] - ubfx x9, x3, 11, 8 - adrp x0, .LANCHOR3 - ldrh w3, [x4,592] - uxth w1, w5 - add w6, w9, w6 - add x0, x0, :lo12:.LANCHOR3 - uxth w5, w6 - udiv w6, w1, w3 - ldrh w10, [x0,-180] - add w6, w5, w6 - cmp w6, w10 - ble .L1097 - ldrh w1, [x4,2862] - ldrh w5, [x4,2870] - add w5, w5, w1 - ldrh w1, [x4,3604] - add w1, w1, 8 - cmp w5, w1 - blt .L1103 - ldrh w5, [x4,2866] - ldrh w1, [x4,2860] - ldrh w0, [x0,-178] - ldrh w4, [x4,2868] - add w1, w5, w1 + tbz x2, 3, .L1172 + ldr x6, [x4,3392] + ldrh w0, [x5,x19] + ldr w3, [x5,x19] + ldrh w7, [x6,74] + and w1, w0, 2047 + ldrh w6, [x6,72] + ubfx x8, x3, 11, 8 + add w7, w1, w7 + ldrh w3, [x4,1104] + add w6, w8, w6 + uxth w0, w7 + uxth w7, w6 + adrp x6, .LANCHOR3 + add x6, x6, :lo12:.LANCHOR3 + udiv w9, w0, w3 + ldrh w10, [x6,1870] + add w9, w7, w9 + cmp w9, w10 + ble .L1173 + ldrh w0, [x4,3378] + ldrh w7, [x4,3386] + add w7, w7, w0 + ldrh w0, [x6,1300] add w0, w0, 8 - add w1, w1, w4 - b .L1115 -.L1097: - madd w5, w5, w3, w1 - ldrh w1, [x0,-176] - cmp w5, w1 - ble .L1099 - ldrh w5, [x4,2866] - ldrh w1, [x4,2860] - ldrh w0, [x0,-178] - add w1, w5, w1 - ldrh w5, [x4,2868] - add w1, w1, w5 - add w5, w0, 8 - cmp w1, w5 - blt .L1113 - ldrh w6, [x4,2870] - ldrh w5, [x4,2862] - ldrh w4, [x4,3604] - add w5, w6, w5 + cmp w7, w0 + blt .L1179 + ldrh w0, [x4,3376] + ldrh w7, [x4,3382] + add w7, w7, w0 + ldrh w0, [x4,3384] + add w4, w7, w0 + ldrh w0, [x6,1298] + add w0, w0, 8 + cmp w4, w0 + b .L1193 +.L1173: + madd w7, w7, w3, w0 + ldrh w0, [x6,1872] + cmp w7, w0 + ble .L1175 + ldrh w0, [x4,3376] + ldrh w7, [x4,3382] + add w7, w7, w0 + ldrh w0, [x4,3384] + add w7, w7, w0 + ldrh w0, [x6,1298] + add w9, w0, 8 + cmp w7, w9 + blt .L1191 + ldrh w9, [x4,3386] + ldrh w4, [x4,3378] + add w9, w9, w4 + ldrh w4, [x6,1300] add w4, w4, 8 - cmp w5, w4 - blt .L1103 + cmp w9, w4 + blt .L1179 add w0, w0, 24 -.L1115: - cmp w1, w0 - bge .L1103 -.L1113: + cmp w7, w0 +.L1193: + bge .L1179 +.L1191: and w2, w2, -25 - b .L1112 -.L1103: + b .L1190 +.L1179: mov w0, 2 bfi w2, w0, 3, 2 -.L1112: +.L1190: strb w2, [x21,2] -.L1099: +.L1175: ldrb w0, [x21,2] ands w0, w0, 24 - bne .L1104 - mul w4, w9, w3 - ldrh w0, [x7,x20] - lsr w3, w9, 3 - add w4, w4, w4, lsl 1 - add w4, w8, w4, lsr 2 - bfi w0, w4, 0, 11 - strh w0, [x7,x20] - ldr w0, [x7,x20] + bne .L1180 + mul w0, w8, w3 + lsr w3, w8, 3 + add w0, w0, w0, lsl 1 + add w0, w1, w0, lsr 2 + ldrh w1, [x5,x19] + bfi w1, w0, 0, 11 + strh w1, [x5,x19] + ldr w0, [x5,x19] bfi w0, w3, 11, 8 - str w0, [x7,x20] - b .L1096 -.L1104: + str w0, [x5,x19] + b .L1181 +.L1180: cmp w0, 16 - bne .L1096 - sdiv w3, w8, w3 - ldr w4, [x7,x20] + bne .L1181 + sdiv w3, w1, w3 + ldr w0, [x5,x19] add w3, w3, w3, lsl 1 - add w3, w9, w3, lsr 2 - bfi w4, w3, 11, 8 - asr w3, w8, 5 - str w4, [x7,x20] - bfi w4, w3, 0, 11 - strh w4, [x7,x20] -.L1096: + add w3, w8, w3, lsr 2 + bfi w0, w3, 11, 8 + asr w3, w1, 5 + str w0, [x5,x19] + bfi w0, w3, 0, 11 + strh w0, [x5,x19] + b .L1181 +.L1172: + tst w2, 24 + bne .L1181 + ldrh w0, [x4,3380] + cbnz w0, .L1181 + ldrh w0, [x4,3378] + cmp w0, 15 + bhi .L1181 + ldrh w1, [x4,3376] + ldrh w6, [x4,3382] + add w6, w6, w1 + ldrh w1, [x4,3384] + add w6, w6, w1 + adrp x1, .LANCHOR3 + add x1, x1, :lo12:.LANCHOR3 + ldrh w3, [x1,1298] + add w3, w3, 16 + cmp w6, w3 + ble .L1181 + ldrh w3, [x4,3386] + ldrh w1, [x1,1300] + add w0, w3, w0 + add w1, w1, 8 + cmp w0, w1 + bge .L1181 + mov w0, 2 + bfi w2, w0, 3, 2 + strb w2, [x21,2] + ldrh w2, [x4,1104] + ldrh w0, [x5,x19] + and w0, w0, 2047 + sdiv w2, w0, w2 + asr w0, w0, 5 + add w3, w2, w2, lsl 1 + ldr w2, [x5,x19] + ubfx x1, x2, 11, 8 + add w3, w1, w3, lsr 2 + bfi w2, w3, 11, 8 + str w2, [x5,x19] + bfi w2, w0, 0, 11 + strh w2, [x5,x19] +.L1181: mov w0, w22 add w23, w23, 6 and w23, w23, 7 bl zftl_remove_data_node - add x1, x19, :lo12:.LANCHOR0 + add x1, x20, :lo12:.LANCHOR0 cmp w23, 4 - ldr x2, [x1,584] - add x2, x2, x20 + ldr x2, [x1,1096] + add x2, x2, x19 ldrb w0, [x2,2] and w0, w0, 31 strb w0, [x2,2] - ldr x0, [x1,600] + ldr x0, [x1,1112] strh wzr, [x0,x24,lsl 1] - bhi .L1106 + bhi .L1184 mov w0, w22 bl gc_free_bad_sblk -.L1106: +.L1184: ldrb w0, [x21,2] - tbz x0, 3, .L1107 - add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,608] + tbz x0, 3, .L1185 + add x20, x20, :lo12:.LANCHOR0 + ldr x0, [x20,1120] ldrh w1, [x0,586] cmp w1, w22 - bne .L1107 + bne .L1185 mov w1, -1 ldrh w2, [x0,590] strh w1, [x0,586] mov w1, 65535 cmp w2, w1 - bne .L1107 + bne .L1185 strh w22, [x0,590] - adrp x0, .LC107 + adrp x0, .LC112 mov w1, w22 - add x0, x0, :lo12:.LC107 + add x0, x0, :lo12:.LC112 bl printk - b .L1094 -.L1107: + b .L1171 +.L1185: mov w0, w22 bl zftl_insert_free_list -.L1094: +.L1171: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7167,131 +7690,131 @@ gc_free_src_blk: stp x19, x20, [sp,16] stp x25, x26, [sp,64] mov w20, 0 - add x24, x23, 2912 - add x21, x21, 1512 -.L1117: + add x24, x23, 3424 + add x21, x21, 1920 +.L1195: ldrh w0, [x24,56] adrp x25, .LANCHOR0 cmp w0, w20 - bls .L1155 + bls .L1233 add x0, x24, x20, sxtw 1 ldrh w22, [x0,58] - ldr x0, [x23,600] + ldr x0, [x23,1112] lsl x26, x22, 1 mov x19, x22 ldrh w2, [x0,x26] - cbz w2, .L1118 - adrp x0, .LC108 + cbz w2, .L1196 + adrp x0, .LC113 mov w1, w22 - add x0, x0, :lo12:.LC108 + add x0, x0, :lo12:.LC113 bl printk -.L1118: +.L1196: add x0, x25, :lo12:.LANCHOR0 - ldr x1, [x0,600] + ldr x1, [x0,1112] strh wzr, [x1,x26] - ldr x1, [x0,600] + ldr x1, [x0,1112] ldrh w1, [x1,x26] - cbnz w1, .L1119 - ldr x0, [x0,584] + cbnz w1, .L1197 + ldr x0, [x0,1096] add x22, x0, x22, lsl 2 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L1120 + tbz x0, 8, .L1198 ldrb w2, [x22,2] - adrp x0, .LC109 - add x0, x0, :lo12:.LC109 + adrp x0, .LC114 + add x0, x0, :lo12:.LC114 mov w1, w19 ubfx x2, x2, 5, 3 bl printk -.L1120: +.L1198: ldrb w0, [x22,2] tst w0, 192 - beq .L1133 + beq .L1211 and w0, w0, 224 cmp w0, 224 - bne .L1121 -.L1133: + bne .L1199 +.L1211: adrp x0, .LC0 mov x1, x21 - mov w2, 1115 + mov w2, 1362 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1121: +.L1199: mov w0, w19 add x25, x25, :lo12:.LANCHOR0 bl ftl_free_sblk - ldr x2, [x25,608] + ldr x2, [x25,1120] ldrh w1, [x2,124] - cbz w1, .L1123 + cbz w1, .L1201 mov x0, 0 -.L1125: +.L1203: add x4, x2, x0, lsl 1 mov w3, w0 ldrh w4, [x4,392] cmp w4, w19 - bne .L1124 + bne .L1202 add x0, x2, x3, sxtw 1 mov w3, -1 strh w3, [x0,392] sub w1, w1, #1 strh w1, [x2,124] - b .L1123 -.L1124: + b .L1201 +.L1202: add x0, x0, 1 cmp x0, 64 - bne .L1125 -.L1123: + bne .L1203 +.L1201: ldrh w1, [x2,120] - cbz w1, .L1126 + cbz w1, .L1204 mov x0, 0 -.L1128: +.L1206: add x4, x2, x0, lsl 1 mov w3, w0 ldrh w4, [x4,136] cmp w4, w19 - bne .L1127 + bne .L1205 add x0, x2, x3, sxtw 1 mov w3, -1 strh w3, [x0,136] sub w1, w1, #1 strh w1, [x2,120] - b .L1126 -.L1127: + b .L1204 +.L1205: add x0, x0, 1 cmp x0, 64 - bne .L1128 -.L1126: + bne .L1206 +.L1204: ldrh w1, [x2,122] - cbz w1, .L1129 + cbz w1, .L1207 mov x0, 0 -.L1131: +.L1209: add x4, x2, x0, lsl 1 mov w3, w0 ldrh w4, [x4,264] cmp w4, w19 - bne .L1130 + bne .L1208 add x0, x2, x3, sxtw 1 mov w3, -1 strh w3, [x0,264] sub w1, w1, #1 strh w1, [x2,122] - b .L1129 -.L1130: + b .L1207 +.L1208: add x0, x0, 1 cmp x0, 64 - bne .L1131 - b .L1129 -.L1119: + bne .L1209 + b .L1207 +.L1197: mov w0, w19 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L1129: +.L1207: add w20, w20, 1 uxth w20, w20 - b .L1117 -.L1155: + b .L1195 +.L1233: strh wzr, [x24,56] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7310,44 +7833,44 @@ print_ftl_debug_info: str x19, [sp,48] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldr x2, [x19,2880] - ldr x0, [x19,608] - ldrh w8, [x19,2870] + ldr x2, [x19,3392] + ldr x0, [x19,1120] + ldrh w8, [x19,3386] ldrh w1, [x2,148] ldrh w2, [x2,146] str w8, [sp] - ldrh w6, [x19,2866] + ldrh w6, [x19,3382] ldr w8, [x0,524] str w8, [sp,8] - ldrh w7, [x19,2868] + ldrh w7, [x19,3384] ldr w0, [x0,528] str w0, [sp,16] - ldr w0, [x19,2856] - ldrh w3, [x19,2860] - ldrh w4, [x19,2862] - ldrh w5, [x19,2864] + ldr w0, [x19,3372] + ldrh w3, [x19,3376] + ldrh w4, [x19,3378] + ldrh w5, [x19,3380] str w0, [sp,24] - adrp x0, .LC110 - add x0, x0, :lo12:.LC110 + adrp x0, .LC115 + add x0, x0, :lo12:.LC115 bl printk - ldr x5, [x19,2880] - adrp x0, .LC111 - ldrb w3, [x19,2873] - add x0, x0, :lo12:.LC111 + ldr x5, [x19,3392] + adrp x0, .LC116 + ldrb w3, [x19,3389] + add x0, x0, :lo12:.LC116 ldr w4, [x5,8] ldr w1, [x5,20] ldr w2, [x5,28] ldr w5, [x5,64] bl printk - ldr x2, [x19,2880] - adrp x0, .LC112 - add x0, x0, :lo12:.LC112 + ldr x2, [x19,3392] + adrp x0, .LC117 + add x0, x0, :lo12:.LC117 ldr w3, [x2,16] ldr w1, [x2,52] ldr w2, [x2,60] lsr w3, w3, 11 bl printk - ldr x7, [x19,2880] + ldr x7, [x19,3392] ldrh w0, [x7,90] ldrh w6, [x7,72] ldrh w1, [x7,74] @@ -7359,23 +7882,23 @@ print_ftl_debug_info: str w0, [sp,8] ldrh w0, [x7,98] str w0, [sp,16] - adrp x0, .LC113 - add x0, x0, :lo12:.LC113 + adrp x0, .LC118 + add x0, x0, :lo12:.LC118 ldr w2, [x7,84] ldr w7, [x7,80] bl printk - ldrh w1, [x19,2890] - adrp x0, .LC114 - ldrh w2, [x19,2892] - add x0, x0, :lo12:.LC114 - ldrh w3, [x19,2894] - ldrh w4, [x19,2896] - ldrh w5, [x19,2888] + ldrh w1, [x19,3402] + adrp x0, .LC119 + ldrh w2, [x19,3404] + add x0, x0, :lo12:.LC119 + ldrh w3, [x19,3406] + ldrh w4, [x19,3408] + ldrh w5, [x19,3400] bl printk - ldr x4, [x19,608] - adrp x0, .LC115 - ldr x6, [x19,2880] - add x0, x0, :lo12:.LC115 + ldr x4, [x19,1120] + adrp x0, .LC120 + ldr x6, [x19,3392] + add x0, x0, :lo12:.LC120 ldrh w1, [x4,584] ldrh w2, [x4,586] ldrh w3, [x4,588] @@ -7398,64 +7921,64 @@ ftl_write_buf: stp x19, x20, [sp,16] str x21, [sp,32] mov x20, x0 - cbnz x0, .L1158 + cbnz x0, .L1236 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 676 - add x1, x1, 1528 + mov w2, 803 + add x1, x1, 1936 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl print_ftl_debug_info mov w0, -1 - b .L1167 -.L1158: + b .L1245 +.L1236: adrp x19, .LANCHOR0 ldrb w1, [x20,56] add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2848] + ldrb w0, [x0,3360] cmp w1, w0 - bls .L1163 + bls .L1241 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 681 - add x1, x1, 1528 + mov w2, 810 + add x1, x1, 1936 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1163: +.L1241: ldrb w0, [x20,56] - cbz w0, .L1160 + cbz w0, .L1238 add x21, x19, :lo12:.LANCHOR0 - ldrb w1, [x21,2848] + ldrb w1, [x21,3360] cmp w1, w0 - bcs .L1161 -.L1160: + bcs .L1239 +.L1238: mov x0, x20 add x19, x19, :lo12:.LANCHOR0 bl zbuf_free - ldrb w0, [x19,2872] - b .L1167 -.L1161: - add x0, x21, 2904 + ldrb w0, [x19,3388] + b .L1245 +.L1239: + add x0, x21, 3416 mov x1, x20 bl buf_add_tail - ldr x0, [x21,2880] + ldr x0, [x21,3392] ldrb w1, [x20,56] - ldrb w2, [x21,2872] + ldrb w2, [x21,3388] ldr w3, [x0,16] add w2, w2, 1 add w1, w3, w1 str w1, [x0,16] ldr w1, [x0,32] uxtb w2, w2 - strb w2, [x21,2872] + strb w2, [x21,3388] add w1, w1, 1 str w1, [x0,32] mov w0, w2 -.L1167: +.L1245: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -7470,105 +7993,120 @@ ftl_write_completed: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x20, x19, 800 stp x21, x22, [sp,32] + add x21, x19, 1312 + mov x20, x19 stp x23, x24, [sp,48] - mov x21, x19 + mov x22, x21 mov w23, 0 - mov x22, x20 -.L1169: - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldrb w3, [x0,-174] - cmp w3, 255 - beq .L1178 - lsl x1, x3, 6 - add x24, x20, x1 - add x4, x24, 32 - ldrb w1, [x20,x1] - strb w1, [x0,-174] +.L1247: + ldrb w2, [x19,3366] + cmp w2, 255 + beq .L1262 + lsl x0, x2, 6 + add x24, x21, x0 + ldrb w0, [x21,x0] + strb w0, [x19,3366] ldr w0, [x24,52] cmn w0, #1 - bne .L1170 - ldrb w2, [x19,744] - mov w0, 24 - ldrh w1, [x19,3536] - sub w0, w0, w2 - mov w2, 1 - sub w0, w0, w1 - lsl w0, w2, w0 - ldr w2, [x4,8] - sub w0, w0, #1 - lsr w1, w2, w1 - mov w2, 65535 - and w1, w0, w1 - ldrb w0, [x19,3538] + bne .L1248 + adrp x0, .LANCHOR3 + add x1, x0, :lo12:.LANCHOR3 + ldrb w3, [x1,1868] + cbnz w3, .L1249 + ldrb w1, [x1,1250] + cbz w1, .L1250 +.L1249: + ldr x1, [x20,3392] + ldr w3, [x1,156] + mov w1, 20041 + movk w1, 0x444b, lsl 16 + cmp w3, w1 + beq .L1251 +.L1250: + add x0, x0, :lo12:.LANCHOR3 + ldrb w4, [x20,1257] + mov w3, 24 + add x5, x22, x2, lsl 6 + sub w4, w3, w4 + mov w3, 1 + ldrh w1, [x0,1232] + add x5, x5, 32 + ldrb w0, [x0,1234] + sub w4, w4, w1 + lsl w4, w3, w4 + ldr w3, [x5,8] + sub w4, w4, #1 + lsr w1, w3, w1 + mov w3, 65535 + and w1, w4, w1 udiv w1, w1, w0 - ldr x0, [x19,608] - ldr w5, [x0,560] - cmp w5, w2 + ldr x0, [x20,1120] + ldr w4, [x0,560] + cmp w4, w3 uxth w23, w1 - and w1, w1, w2 - bne .L1171 + and w1, w1, w3 + bne .L1252 str w1, [x0,560] - ldr w2, [x4,8] - str w2, [x0,564] -.L1171: - add x3, x22, x3, lsl 6 - adrp x0, .LC116 - add x3, x3, 32 - add x0, x0, :lo12:.LC116 - ldr w2, [x3,4] + ldr w3, [x5,8] + str w3, [x0,564] +.L1252: + add x2, x22, x2, lsl 6 + adrp x0, .LC121 + add x3, x2, 32 + add x0, x0, :lo12:.LC121 + ldr w2, [x2,36] ldr w3, [x3,8] bl printk - ldr x0, [x21,608] + ldr x0, [x20,1120] ldr w1, [x0,556] add w1, w1, 1 str w1, [x0,556] ldrh w1, [x0,16] cmp w1, w23 - bne .L1172 + bne .L1253 strh wzr, [x0,22] - b .L1173 -.L1172: + b .L1251 +.L1253: ldrh w1, [x0,48] cmp w1, w23 - bne .L1173 + bne .L1251 strh wzr, [x0,54] -.L1173: +.L1251: mov x0, x24 mov w23, 1 bl ftl_write_buf - b .L1169 -.L1170: + b .L1247 +.L1248: cmp w23, 1 - bne .L1175 - ldr w1, [x4,4] - adrp x0, .LC117 - ldr w2, [x4,8] - add x0, x0, :lo12:.LC117 + add x2, x24, 32 + bne .L1256 + ldr w1, [x2,4] + adrp x0, .LC122 + ldr w2, [x2,8] + add x0, x0, :lo12:.LC122 bl printk mov x0, x24 bl ftl_write_buf - b .L1169 -.L1175: - ldr w0, [x4,4] - ldr w1, [x4,12] + b .L1247 +.L1256: + ldr w0, [x2,4] + ldr w1, [x2,12] ldrh w2, [x24,48] bl lpa_hash_update_ppa ldrb w0, [x24,2] and w23, w0, 4 uxtb w23, w23 - cbz w23, .L1176 + cbz w23, .L1257 and w0, w0, -3 mov w23, 0 strb w0, [x24,2] - b .L1169 -.L1176: + b .L1247 +.L1257: mov x0, x24 bl zbuf_free - b .L1169 -.L1178: + b .L1247 +.L1262: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7583,41 +8121,41 @@ zftl_add_read_buf: add x29, sp, 0 stp x19, x20, [sp,16] mov x20, x0 - cbnz x0, .L1180 + cbnz x0, .L1264 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 972 - add x1, x1, 1544 + mov w2, 1143 + add x1, x1, 1952 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl print_ftl_debug_info - b .L1179 -.L1180: + b .L1263 +.L1264: ldrb w1, [x0,56] - adrp x0, .LANCHOR0+2848 - ldrb w0, [x0,#:lo12:.LANCHOR0+2848] + adrp x0, .LANCHOR0+3360 + ldrb w0, [x0,#:lo12:.LANCHOR0+3360] cmp w1, w0 - bls .L1183 + bls .L1267 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 977 - add x1, x1, 1544 + mov w2, 1150 + add x1, x1, 1952 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1183: +.L1267: adrp x19, .LANCHOR3 mov x1, x20 add x19, x19, :lo12:.LANCHOR3 - sub x0, x19, #173 + add x0, x19, 1874 bl buf_add_tail - ldrb w0, [x19,-172] + ldrb w0, [x19,1875] add w0, w0, 1 - strb w0, [x19,-172] -.L1179: + strb w0, [x19,1875] +.L1263: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -7629,68 +8167,76 @@ ftl_alloc_sblk: stp x29, x30, [sp, -64]! cmp w0, 5 add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w0 str x23, [sp,48] - mov w0, 2 - uxth w23, w20 + uxth w23, w0 stp x21, x22, [sp,32] mov w1, w23 - csel w22, wzr, w0, ne + mov w21, w0 mov w0, 0 + mov w22, 2 + stp x19, x20, [sp,16] + csel w22, wzr, w22, ne bl zftl_get_free_sblk uxth w19, w0 mov w0, 65535 cmp w19, w0 - beq .L1186 - adrp x0, .LANCHOR0+584 - ldr x21, [x0,#:lo12:.LANCHOR0+584] - add x21, x21, x19, uxth 2 - ldrb w0, [x21,2] + beq .L1270 + adrp x0, .LANCHOR0+1096 + ldr x20, [x0,#:lo12:.LANCHOR0+1096] + add x20, x20, x19, uxth 2 + ldrb w0, [x20,2] tst w0, 224 - beq .L1187 + beq .L1271 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 846 - add x1, x1, 1568 + mov w2, 939 + add x1, x1, 1976 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1187: - ldrb w1, [x21,2] - bfi w1, w20, 5, 3 +.L1271: + ldrb w1, [x20,2] + bfi w1, w21, 5, 3 ubfx x2, x1, 3, 2 - orr w0, w22, w2 - bfi w1, w0, 3, 2 - strb w1, [x21,2] - b .L1193 -.L1186: - adrp x21, .LC118 + mov w0, w1 + orr w2, w22, w2 + bfi w0, w2, 3, 2 + strb w0, [x20,2] + cbnz w22, .L1274 + and w1, w0, 24 + cmp w1, 24 + bne .L1274 + mov w1, 1 + bfi w0, w1, 3, 2 + strb w0, [x20,2] + b .L1274 +.L1270: + adrp x20, .LC123 bl print_ftl_debug_info - add x21, x21, :lo12:.LC118 + add x20, x20, :lo12:.LC123 mov w1, w19 - mov w2, w20 - mov x0, x21 + mov w2, w21 + mov x0, x20 bl printk mov w1, w23 mov w0, 0 bl zftl_get_free_sblk uxth w19, w0 mov w1, w19 - mov w2, w20 - mov x0, x21 + mov w2, w21 + mov x0, x20 bl printk bl dump_all_list_info adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 856 - add x1, x1, 1568 + mov w2, 955 + add x1, x1, 1976 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1193: +.L1274: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -7703,15 +8249,13 @@ ftl_alloc_sblk: .type sblk_init, %function sblk_init: adrp x0, .LANCHOR0 - adrp x2, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR0 - add x2, x2, :lo12:.LANCHOR3 mov w1, -1 - strb w1, [x0,2851] - strb w1, [x0,3552] + add x0, x0, :lo12:.LANCHOR0 + strb w1, [x0,3363] + strb w1, [x0,3366] + strb w1, [x0,3364] + strb w1, [x0,3365] mov w0, 0 - strb w1, [x2,-174] - strb w1, [x2,-171] ret .size sblk_init, .-sblk_init .align 2 @@ -7719,24 +8263,24 @@ sblk_init: .type dump_sblk_queue, %function dump_sblk_queue: stp x29, x30, [sp, -48]! - adrp x0, .LC119 + adrp x0, .LC124 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 str x21, [sp,32] add x20, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC119 - ldrb w1, [x20,2851] + add x0, x0, :lo12:.LC124 + ldrb w1, [x20,3363] bl printk - ldrb w19, [x20,2851] + ldrb w19, [x20,3363] cmp w19, 255 - beq .L1195 - add x20, x20, 800 + beq .L1285 + add x20, x20, 1312 sbfiz x19, x19, 6, 32 - adrp x21, .LC120 + adrp x21, .LC125 add x19, x20, x19 - add x21, x21, :lo12:.LC120 -.L1197: + add x21, x21, :lo12:.LC125 +.L1287: ldrb w1, [x19,1] mov x0, x21 ldrb w2, [x19,58] @@ -7744,11 +8288,11 @@ dump_sblk_queue: bl printk ldrb w19, [x19] cmp w19, 255 - beq .L1195 + beq .L1285 sbfiz x19, x19, 6, 32 add x19, x20, x19 - b .L1197 -.L1195: + b .L1287 +.L1285: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -7758,171 +8302,173 @@ dump_sblk_queue: .global queue_lun_state .type queue_lun_state, %function queue_lun_state: - adrp x2, .LANCHOR0 - mov w6, w0 - add x2, x2, :lo12:.LANCHOR0 + adrp x3, .LANCHOR0 + mov w4, w0 + add x3, x3, :lo12:.LANCHOR0 mov w0, 0 - ldrb w3, [x2,2851] - cmp w3, 255 - beq .L1205 - ldrb w4, [x2,744] - mov w9, 24 - ldrh w11, [x2,3536] + ldrb w2, [x3,3363] + cmp w2, 255 + beq .L1295 + ldrb w5, [x3,1257] mov w0, 1 - sub w9, w9, w4 - ldrb w8, [x2,3538] - sub w5, w9, w11 - lsl w4, w0, w4 + mov w8, 24 + adrp x13, .L1298 + sub w8, w8, w5 lsl w5, w0, w5 - sub w8, w8, #1 - sub w4, w4, #1 sub w5, w5, #1 - asr w10, w6, w9 - uxth w8, w8 - asr w6, w6, w11 - uxth w4, w4 - uxth w5, w5 - and w6, w6, w8 - adrp x12, .L1208 - and w10, w4, w10 - and w6, w6, w5 - add x2, x2, 800 - add x12, x12, :lo12:.L1208 -.L1211: - add x13, x2, x3, lsl 6 - ldr w7, [x13,40] - lsr w0, w7, w9 - and w0, w4, w0 + asr w10, w4, w8 + add x3, x3, 1312 + add x13, x13, :lo12:.L1298 + uxth w7, w5 + adrp x5, .LANCHOR3 + add x5, x5, :lo12:.LANCHOR3 + and w10, w7, w10 + ldrh w11, [x5,1232] + ldrb w12, [x5,1234] + sub w6, w8, w11 + asr w4, w4, w11 + lsl w0, w0, w6 + sub w12, w12, #1 + sub w0, w0, #1 + uxth w12, w12 + uxth w9, w0 + and w4, w4, w12 + and w4, w4, w9 +.L1301: + add x6, x3, x2, lsl 6 + ldr w5, [x6,40] + lsr w0, w5, w8 + and w0, w7, w0 cmp w0, w10 - bne .L1206 - lsr w7, w7, w11 - ldrb w0, [x13,58] - and w7, w8, w7 - and w7, w5, w7 - cmp w7, w6 - bne .L1207 + bne .L1296 + lsr w5, w5, w11 + ldrb w0, [x6,58] + and w5, w12, w5 + and w5, w9, w5 + cmp w5, w4 + bne .L1297 cmp w1, 1 - beq .L1209 - b .L1205 -.L1207: + beq .L1299 + b .L1295 +.L1297: cmp w1, 3 - bhi .L1206 - ldrb w7, [x12,w1,uxtw] - adr x13, .Lrtx1208 - add x7, x13, w7, sxtb #2 - br x7 -.Lrtx1208: + bhi .L1296 + ldrb w5, [x13,w1,uxtw] + adr x6, .Lrtx1298 + add x5, x6, w5, sxtb #2 + br x5 +.Lrtx1298: .section .rodata .align 0 .align 2 -.L1208: - .byte (.L1205 - .Lrtx1208) / 4 - .byte (.L1209 - .Lrtx1208) / 4 - .byte (.L1210 - .Lrtx1208) / 4 - .byte (.L1205 - .Lrtx1208) / 4 +.L1298: + .byte (.L1295 - .Lrtx1298) / 4 + .byte (.L1299 - .Lrtx1298) / 4 + .byte (.L1300 - .Lrtx1298) / 4 + .byte (.L1295 - .Lrtx1298) / 4 .text -.L1209: - sub w7, w0, #7 - and w7, w7, -3 - uxtb w7, w7 - cbz w7, .L1206 - b .L1205 -.L1210: +.L1299: + sub w6, w0, #7 + and w6, w6, -3 + uxtb w6, w6 + cbz w6, .L1296 + b .L1295 +.L1300: cmp w0, 11 - bne .L1205 -.L1206: - lsl x3, x3, 6 - ldrb w3, [x2,x3] - cmp w3, 255 - bne .L1211 + bne .L1295 +.L1296: + lsl x2, x2, 6 + ldrb w2, [x3,x2] + cmp w2, 255 + bne .L1301 mov w0, 0 -.L1205: +.L1295: ret .size queue_lun_state, .-queue_lun_state .align 2 .global queue_remove_completed_req .type queue_remove_completed_req, %function queue_remove_completed_req: - adrp x0, .LANCHOR0 - adrp x1, .LANCHOR3 - add x4, x0, :lo12:.LANCHOR0 - add x1, x1, :lo12:.LANCHOR3 + adrp x3, .LANCHOR0 mov w5, 0 - add x6, x4, 800 - mov w12, -1 - mov x3, x1 - ldrb w8, [x4,2851] - ldrb w10, [x1,-171] - ldrb w9, [x4,3552] - ldrb w11, [x1,-174] -.L1221: - cmp w8, 255 - beq .L1222 - sbfiz x7, x8, 6, 32 - sxtw x1, w8 - add x2, x6, x7 + add x0, x3, :lo12:.LANCHOR0 + mov w11, -1 + add x4, x0, 1312 + add x12, x0, 3364 + add x13, x0, 3365 + add x14, x0, 3366 + ldrb w7, [x0,3363] + ldrb w9, [x0,3364] + ldrb w8, [x0,3365] + ldrb w10, [x0,3366] +.L1311: + cmp w7, 255 + beq .L1312 + sbfiz x6, x7, 6, 32 + sxtw x1, w7 + add x2, x4, x6 ldrb w2, [x2,58] sub w2, w2, #12 uxtb w2, w2 cmp w2, 1 - bls .L1223 - cbz w5, .L1220 - strb w8, [x4,2851] - b .L1220 -.L1223: + bls .L1313 + cbz w5, .L1310 + strb w7, [x0,3363] + b .L1310 +.L1313: lsl x5, x1, 6 - ldrb w8, [x6,x7] - add x2, x6, x5 - strb w12, [x6,x5] + ldrb w7, [x4,x6] + add x2, x4, x5 + strb w11, [x4,x5] ldrb w5, [x2,59] cmp w5, 1 - bne .L1226 + bne .L1316 ldrh w2, [x2,50] - cbnz w2, .L1234 - mov w2, w11 - sub x5, x3, #174 - b .L1227 -.L1226: - cbz w5, .L1244 -.L1228: + cbnz w2, .L1324 + mov w2, w10 + mov x5, x14 + b .L1317 +.L1316: + cbz w5, .L1334 +.L1318: mov w5, 1 - b .L1221 -.L1244: + b .L1311 +.L1334: ldr w2, [x2,36] cmn w2, #1 - beq .L1228 - mov w2, w10 - sub x5, x3, #171 - b .L1227 -.L1234: + beq .L1318 mov w2, w9 - add x5, x4, 3552 -.L1227: + mov x5, x12 + b .L1317 +.L1324: + mov w2, w8 + mov x5, x13 +.L1317: cmp w2, 255 - bne .L1232 - add x0, x0, :lo12:.LANCHOR0 - add x1, x0, x1, lsl 6 - strb w8, [x0,2851] - ldrb w0, [x1,801] + bne .L1322 + add x3, x3, :lo12:.LANCHOR0 + add x1, x3, x1, lsl 6 + strb w7, [x3,3363] + ldrb w0, [x1,1313] strb w0, [x5] - b .L1220 -.L1232: + b .L1310 +.L1322: mov w5, w2 sbfiz x2, x2, 6, 32 - ldrb w2, [x6,x2] + ldrb w2, [x4,x2] cmp w2, 255 - bne .L1232 - add x1, x6, x1, lsl 6 + bne .L1322 + add x1, x4, x1, lsl 6 sbfiz x5, x5, 6, 32 ldrb w1, [x1,1] - strb w1, [x6,x5] - b .L1228 -.L1222: - cbz w5, .L1220 - add x0, x0, :lo12:.LANCHOR0 - mov w1, -1 - strb w1, [x0,2851] -.L1220: + strb w1, [x4,x5] + b .L1318 +.L1312: + cbz w5, .L1310 + add x3, x3, :lo12:.LANCHOR0 + mov w0, -1 + strb w0, [x3,3363] +.L1310: ret .size queue_remove_completed_req, .-queue_remove_completed_req .align 2 @@ -7933,126 +8479,133 @@ pm_alloc_new_blk: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - str x23, [sp,48] - add x3, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR3 + add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - ldr x2, [x3,2880] + stp x23, x24, [sp,48] + ldr x2, [x0,3392] ldrh w1, [x2,690] add w1, w1, 1 uxth w0, w1 - ldrb w1, [x3,3572] + add x1, x20, :lo12:.LANCHOR3 strh w0, [x2,690] + ldrb w1, [x1,1249] cmp w1, w0 - bls .L1246 + bls .L1336 add x0, x2, x0, sxtw 1 ldrh w1, [x0,672] mov w0, 65535 cmp w1, w0 - bne .L1247 -.L1246: - adrp x22, .LC121 - add x22, x22, :lo12:.LC121 -.L1259: + bne .L1337 +.L1336: + adrp x23, .LC126 + mov w24, 65535 + add x23, x23, :lo12:.LC126 +.L1338: mov w0, 1 - add x20, x19, :lo12:.LANCHOR0 bl ftl_alloc_sblk - uxth w21, w0 + uxth w22, w0 + cmp w22, w24 + beq .L1338 mov w1, 0 + mov w0, w22 + add x21, x19, :lo12:.LANCHOR0 bl ftl_erase_sblk - ldr x1, [x20,2880] - mov w0, w21 + mov w0, w22 + ldr x1, [x21,3392] add x1, x1, 672 bl ftl_get_blk_list_in_sblk uxth w0, w0 - cbnz w0, .L1248 - mov w1, w21 - mov x0, x22 + cbnz w0, .L1339 + mov w1, w22 + mov x0, x23 bl printk - ldr x2, [x20,584] - add x1, x2, x21, uxth 2 - ldrb w2, [x1,2] - orr w2, w2, -32 - strb w2, [x1,2] - b .L1259 -.L1248: - ldr x1, [x20,2880] - adrp x0, .LANCHOR3-168 + ldr x1, [x21,1096] + add x22, x1, x22, uxth 2 + ldrb w1, [x22,2] + orr w1, w1, -32 + strb w1, [x22,2] + b .L1338 +.L1339: + ldr x1, [x21,3392] + add x0, x20, :lo12:.LANCHOR3 mov w2, 1 - mov x20, 0 - str w2, [x0,#:lo12:.LANCHOR3-168] + mov x21, 0 + str w2, [x0,1876] mov w2, 65535 strh wzr, [x1,690] -.L1250: - add x3, x1, x20, lsl 1 - uxth w0, w20 +.L1341: + add x3, x1, x21, lsl 1 + uxth w0, w21 ldrh w3, [x3,416] cmp w3, w2 - beq .L1249 - add x20, x20, 1 - cmp x20, 128 - bne .L1250 + beq .L1340 + add x21, x21, 1 + cmp x21, 128 + bne .L1341 adrp x0, .LC0 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 - mov w2, 227 + mov w2, 264 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - mov w0, w20 -.L1249: + mov w0, w21 +.L1340: add x1, x19, :lo12:.LANCHOR0 - ldr x1, [x1,2880] + ldr x1, [x1,3392] add x0, x1, x0, sxtw 1 - strh w21, [x0,416] + strh w22, [x0,416] ldrh w0, [x1,688] add w0, w0, 1 strh w0, [x1,688] -.L1247: +.L1337: add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,2880] + ldr x1, [x0,3392] ldrh w0, [x1,690] add x0, x0, 336 - ldrh w20, [x1,x0,lsl 1] + ldrh w21, [x1,x0,lsl 1] mov w0, 65533 - sub w1, w20, #1 + sub w1, w21, #1 cmp w0, w1, uxth - bcs .L1252 + bcs .L1343 adrp x0, .LC0 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 - mov w2, 232 + mov w2, 270 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1252: +.L1343: add x19, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR3 mov w0, 24 - ldrb w2, [x19,744] - ldr x1, [x19,2880] + ldrb w2, [x19,1257] + ldr x1, [x19,3392] sub w0, w0, w2 - ldrh w2, [x19,3536] + ldrh w2, [x20,1232] sub w0, w0, w2 strh wzr, [x1,696] - asr w4, w20, w0 - strh w20, [x1,692] + asr w4, w21, w0 + strh w21, [x1,692] strh w4, [x1,694] adrp x1, .LANCHOR2 ldr w1, [x1,#:lo12:.LANCHOR2] - tbz x1, 12, .L1256 + tbz x1, 12, .L1347 mov w2, 1 - mov w1, w20 + mov w1, w21 lsl w2, w2, w0 - adrp x0, .LC122 - add x0, x0, :lo12:.LC122 + adrp x0, .LC127 + add x0, x0, :lo12:.LC127 sub w2, w2, #1 - mov w3, w20 + mov w3, w21 uxth w4, w4 bl printk -.L1256: +.L1347: mov w0, 0 - ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] ldp x29, x30, [sp], 64 ret .size pm_alloc_new_blk, .-pm_alloc_new_blk @@ -8067,68 +8620,68 @@ pm_select_ram_region: str x19, [sp,16] add x2, x2, :lo12:.LANCHOR3 mov x19, 0 -.L1263: - sub x1, x2, #160 +.L1354: + add x1, x2, 1880 lsl x4, x19, 4 uxth w0, w19 ldrh w4, [x4,x1] cmp w4, w3 - beq .L1262 + beq .L1353 add x19, x19, 1 cmp x19, 32 - bne .L1263 + bne .L1354 mov x0, 0 mov w3, 32768 -.L1265: +.L1356: add x2, x1, x0, lsl 4 uxth w4, w0 ldrh w2, [x2,2] - tbnz x2, 15, .L1264 + tbnz x2, 15, .L1355 cmp w2, w3 - bcs .L1264 + bcs .L1355 mov w3, w2 mov w19, w4 -.L1264: +.L1355: add x0, x0, 1 cmp x0, 32 - bne .L1265 + bne .L1356 cmp w19, 32 mov w0, w19 - bne .L1262 + bne .L1353 adrp x0, .LANCHOR3 mov w2, -1 add x0, x0, :lo12:.LANCHOR3 mov w1, 0 - sub x0, x0, #160 + add x0, x0, 1880 ldrb w3, [x0,512] -.L1267: +.L1358: ldrh w5, [x0,2] cmp w5, w2 - bcs .L1266 + bcs .L1357 ldrh w4, [x0] cmp w4, w3 csel w2, w2, w5, eq cmp w4, w3 csel w19, w19, w1, eq -.L1266: +.L1357: add w1, w1, 1 add x0, x0, 16 uxth w1, w1 cmp w1, 32 - bne .L1267 + bne .L1358 cmp w19, 32 - bne .L1268 + bne .L1359 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 331 + mov w2, 377 add x1, x1, 24 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1268: +.L1359: mov w0, w19 -.L1262: +.L1353: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8148,121 +8701,215 @@ ftl_memset: .global flash_lsb_page_tbl_build .type flash_lsb_page_tbl_build, %function flash_lsb_page_tbl_build: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - cbnz w0, .L1276 + str x21, [sp,32] + add x1, x19, :lo12:.LANCHOR0 + mov w21, 1024 + ldr x2, [x1,1136] + ldrb w2, [x2,12] + sdiv w21, w21, w2 + cbnz w0, .L1367 mov x0, 0 - add x2, x19, :lo12:.LANCHOR0 -.L1277: - add x1, x2, 4 - strh w0, [x1,x0,lsl 1] +.L1368: + add x2, x1, 4 + strh w0, [x2,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 - bne .L1277 -.L1283: + cmp x0, 512 + bne .L1368 +.L1374: adrp x20, .LANCHOR3 mov w1, 255 add x20, x20, :lo12:.LANCHOR3 - mov w2, 1024 - add x20, x20, 356 + mov w2, 2048 + add x20, x20, 2396 add x19, x19, :lo12:.LANCHOR0 mov x0, x20 bl ftl_memset mov x0, 0 - b .L1278 -.L1276: + b .L1369 +.L1367: cmp w0, 1 - bne .L1279 + bne .L1370 mov x0, 0 mov w4, 3 mov w5, 2 - add x3, x19, :lo12:.LANCHOR0 -.L1282: +.L1373: cmp x0, 3 - uxth w2, w0 - mov w1, w2 - bls .L1280 - ubfiz w1, w2, 1, 15 - and w2, w2, 1 - cmp w2, wzr - csel w2, w4, w5, ne - sub w1, w1, w2 - uxth w1, w1 -.L1280: - add x2, x3, 4 - strh w1, [x2,x0,lsl 1] - add x0, x0, 1 - cmp x0, 256 - bne .L1282 - b .L1283 -.L1279: - cmp w0, 2 - bne .L1284 - mov w1, 65535 - mov x0, 0 - add x4, x19, :lo12:.LANCHOR0 -.L1286: - add x3, x4, 4 - cmp x0, 1 - uxth w2, w0 - csel w2, w1, w2, hi - add w1, w1, 2 + uxth w3, w0 + mov w2, w3 + bls .L1371 + ubfiz w2, w3, 1, 15 + and w3, w3, 1 + cmp w3, wzr + csel w3, w4, w5, ne + sub w2, w2, w3 + uxth w2, w2 +.L1371: + add x3, x1, 4 strh w2, [x3,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 - uxth w1, w1 - bne .L1286 - b .L1283 -.L1284: + cmp x0, 512 + bne .L1373 + b .L1374 +.L1370: + cmp w0, 2 + bne .L1375 + mov w2, 65535 + mov x0, 0 +.L1377: + add x4, x1, 4 + cmp x0, 1 + uxth w3, w0 + csel w3, w2, w3, hi + add w2, w2, 2 + strh w3, [x4,x0,lsl 1] + add x0, x0, 1 + cmp x0, 512 + uxth w2, w2 + bne .L1377 + b .L1374 +.L1375: cmp w0, 3 - bne .L1287 + bne .L1378 mov x0, 0 mov w4, 5 mov w5, 4 - add x3, x19, :lo12:.LANCHOR0 -.L1290: +.L1381: cmp x0, 5 - uxth w2, w0 - mov w1, w2 - bls .L1288 - ubfiz w1, w2, 1, 15 - and w2, w2, 1 - cmp w2, wzr - csel w2, w4, w5, ne - sub w1, w1, w2 - uxth w1, w1 -.L1288: - add x2, x3, 4 - strh w1, [x2,x0,lsl 1] + uxth w3, w0 + mov w2, w3 + bls .L1379 + ubfiz w2, w3, 1, 15 + and w3, w3, 1 + cmp w3, wzr + csel w3, w4, w5, ne + sub w2, w2, w3 + uxth w2, w2 +.L1379: + add x3, x1, 4 + strh w2, [x3,x0,lsl 1] add x0, x0, 1 - cmp x0, 256 - bne .L1290 - b .L1283 -.L1287: + cmp x0, 512 + bne .L1381 + b .L1374 +.L1378: cmp w0, 4 - bne .L1291 - add x2, x19, :lo12:.LANCHOR0 - mov w5, 7 - add x1, x2, 4 - mov w4, 6 - strh w0, [x1,8] + bne .L1382 + add x2, x1, 4 + strh w0, [x2,8] mov w0, 5 - strh wzr, [x2,4] - mov w2, 1 - strh w0, [x1,10] + strh wzr, [x1,4] + mov w1, 1 + mov w5, 7 + strh w0, [x2,10] mov w0, 7 - strh w2, [x1,2] - mov w2, 2 - strh w0, [x1,12] + strh w1, [x2,2] + mov w1, 2 + strh w0, [x2,12] mov w0, 8 - strh w2, [x1,4] - mov w2, 3 - strh w0, [x1,14] + strh w1, [x2,4] + mov w4, 6 + mov w1, 3 + strh w0, [x2,14] + strh w1, [x2,6] mov w0, 8 - strh w2, [x1,6] -.L1293: +.L1384: + and w3, w0, 1 + ubfiz w1, w0, 1, 15 + add w0, w0, 1 + cmp w3, wzr + csel w3, w5, w4, ne + add x2, x2, 2 + uxth w0, w0 + sub w1, w1, w3 + cmp w0, 512 + strh w1, [x2,14] + bne .L1384 + b .L1374 +.L1382: + cmp w0, 5 + bne .L1385 + mov x0, 0 +.L1386: + add x2, x1, 4 + strh w0, [x2,x0,lsl 1] + add x0, x0, 1 + cmp x0, 16 + bne .L1386 + mov x0, 0 +.L1387: + add x1, x2, x0 + add w3, w0, 16 + add x0, x0, 2 + cmp x0, 992 + strh w3, [x1,32] + bne .L1387 + b .L1374 +.L1385: + cmp w0, 8 + bne .L1388 + mov x0, 0 +.L1389: + add x2, x1, 4 + strh w0, [x0,x2] + add x0, x0, 2 + cmp x0, 1024 + bne .L1389 + b .L1374 +.L1388: + cmp w0, 9 + bne .L1390 + add x2, x1, 4 + mov w0, 1 + strh wzr, [x1,4] + strh w0, [x2,2] + mov w0, 2 + strh w0, [x2,4] + mov x0, 0 +.L1391: + add x1, x2, x0 + add w3, w0, 3 + add x0, x0, 2 + cmp x0, 1018 + strh w3, [x1,6] + bne .L1391 + b .L1374 +.L1390: + cmp w0, 10 + bne .L1392 + mov x0, 0 +.L1393: + add x2, x1, 4 + strh w0, [x2,x0,lsl 1] + add x0, x0, 1 + cmp x0, 63 + bne .L1393 + mov x0, 0 +.L1394: + add x1, x2, x0 + add w3, w0, 63 + add x0, x0, 2 + cmp x0, 898 + strh w3, [x1,126] + bne .L1394 + b .L1374 +.L1392: + cmp w0, 11 + bne .L1395 + mov x0, 0 + add x2, x19, :lo12:.LANCHOR0 +.L1396: + add x1, x2, 4 + strh w0, [x1,x0,lsl 1] + add x0, x0, 1 + cmp x0, 8 + bne .L1396 + mov w5, 7 + mov w4, 6 +.L1398: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w0, w0, 1 @@ -8271,90 +8918,35 @@ flash_lsb_page_tbl_build: add x1, x1, 2 uxth w0, w0 sub w2, w2, w3 - cmp w0, 256 + cmp w0, 512 strh w2, [x1,14] - bne .L1293 - b .L1283 -.L1291: - cmp w0, 5 - bne .L1294 + bne .L1398 + b .L1374 +.L1395: + cmp w0, 13 + bne .L1374 mov x0, 0 - add x2, x19, :lo12:.LANCHOR0 -.L1295: - add x1, x2, 4 - strh w0, [x1,x0,lsl 1] + add x3, x19, :lo12:.LANCHOR0 +.L1399: + add x1, x3, 4 + add w2, w0, w0, lsl 1 + strh w2, [x1,x0,lsl 1] add x0, x0, 1 - cmp x0, 16 - bne .L1295 - mov x0, 0 -.L1296: - add x2, x1, x0 - add w3, w0, 16 - add x0, x0, 2 - cmp x0, 480 - strh w3, [x2,32] - bne .L1296 - b .L1283 -.L1294: - cmp w0, 8 - bne .L1297 - mov x0, 0 - add x2, x19, :lo12:.LANCHOR0 -.L1298: - add x1, x2, 4 - strh w0, [x0,x1] - add x0, x0, 2 cmp x0, 512 - bne .L1298 - b .L1283 -.L1297: - cmp w0, 9 - bne .L1299 - add x0, x19, :lo12:.LANCHOR0 - add x1, x0, 4 - strh wzr, [x0,4] - mov w0, 1 - strh w0, [x1,2] - mov w0, 2 - strh w0, [x1,4] - mov x0, 0 -.L1300: - add x2, x1, x0 - add w3, w0, 3 - add x0, x0, 2 - cmp x0, 506 - strh w3, [x2,6] - bne .L1300 - b .L1283 -.L1299: - cmp w0, 10 - bne .L1283 - mov x0, 0 - add x2, x19, :lo12:.LANCHOR0 -.L1301: - add x1, x2, 4 - strh w0, [x1,x0,lsl 1] - add x0, x0, 1 - cmp x0, 63 - bne .L1301 - mov x0, 0 -.L1302: - add x2, x1, x0 - add w3, w0, 63 - add x0, x0, 2 - cmp x0, 386 - strh w3, [x2,126] - bne .L1302 - b .L1283 -.L1278: + bne .L1399 + b .L1374 +.L1369: + cmp w21, w0, uxth + bls .L1422 add x1, x19, 4 - ldrh w1, [x0,x1] - add x0, x0, 2 - cmp x0, 512 + ldrh w1, [x1,x0,lsl 1] + add x0, x0, 1 strh w1, [x20,w1,sxtw 1] - bne .L1278 + b .L1369 +.L1422: ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 ret .size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build .align 2 @@ -8370,19 +8962,19 @@ flash_die_info_init: ldr w0, [x19,#:lo12:.LANCHOR2] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L1322 + tbz x0, 12, .L1424 adrp x1, .LANCHOR4 adrp x0, .LC4 add x1, x1, :lo12:.LANCHOR4 add x0, x0, :lo12:.LC4 add x1, x1, 48 bl printk -.L1322: +.L1424: add x24, x19, :lo12:.LANCHOR2 adrp x21, .LANCHOR0 add x20, x21, :lo12:.LANCHOR0 - adrp x22, .LANCHOR3 - add x25, x22, :lo12:.LANCHOR3 + adrp x22, .LANCHOR5 + add x25, x22, :lo12:.LANCHOR5 mov w2, 8 ldrh w0, [x24,34] mov x23, 0 @@ -8391,61 +8983,61 @@ flash_die_info_init: strh w0, [x20,2] add x27, x24, 9 ldrh w0, [x24,18] - add x28, x20, 760 - strb wzr, [x20,633] + add x28, x20, 1272 + strb wzr, [x20,1145] sdiv w0, w0, w1 mov w1, 0 - strh w0, [x25,1380] - add x0, x20, 736 + strh w0, [x25,92] + add x0, x20, 1248 bl ftl_memset - add x0, x25, 1384 + add x0, x25, 96 mov w1, 0 mov w2, 32 bl ftl_memset -.L1324: - add x0, x20, 752 +.L1426: + add x0, x20, 1264 ldrb w2, [x24,8] add x1, x28, x23, lsl 3 strb w26, [x23,x0] mov x0, x27 bl flash_mem_cmp8 - cbnz w0, .L1323 - ldrb w1, [x20,633] - add x2, x25, 1384 + cbnz w0, .L1425 + ldrb w1, [x20,1145] + add x2, x25, 96 str w0, [x2,w1,sxtw 2] add w0, w1, 1 - strb w0, [x20,633] + strb w0, [x20,1145] uxtb w0, w23 add x1, x20, x1, sxtw - strb w0, [x1,736] + strb w0, [x1,1248] bl zftl_flash_enter_slc_mode -.L1323: +.L1425: add x23, x23, 1 cmp x23, 4 - bne .L1324 + bne .L1426 add x0, x19, :lo12:.LANCHOR2 add x1, x0, 8 ldrb w2, [x1,8] cmp w2, 2 - beq .L1325 -.L1329: + beq .L1427 +.L1431: add x19, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 - add x22, x22, :lo12:.LANCHOR3 + add x22, x22, :lo12:.LANCHOR5 ldp x23, x24, [sp,48] ldrb w1, [x19,21] - ldrb w0, [x21,633] + ldrb w0, [x21,1145] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] mul w0, w0, w1 ldrh w1, [x19,22] ldp x19, x20, [sp,16] mul w0, w0, w1 - strh w0, [x22,1416] + strh w0, [x22,128] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 ret -.L1325: +.L1427: add x23, x21, :lo12:.LANCHOR0 ldrh w20, [x1,14] ldrb w26, [x0,8] @@ -8454,13 +9046,13 @@ flash_die_info_init: ldrb w27, [x1,23] ldrh w2, [x23,2] add x25, x0, 9 - add x3, x23, 760 - add x4, x22, :lo12:.LANCHOR3 + add x3, x23, 1272 + add x4, x22, :lo12:.LANCHOR5 mul w20, w20, w2 ldrb w2, [x1,13] mul w20, w20, w2 lsl w28, w20, 1 -.L1328: +.L1430: add x1, x3, x24, lsl 3 mov x0, x25 mov w2, w26 @@ -8469,21 +9061,21 @@ flash_die_info_init: bl flash_mem_cmp8 ldr x3, [x29,104] ldr x4, [x29,96] - cbnz w0, .L1326 - ldrb w0, [x23,633] - add x1, x4, 1384 + cbnz w0, .L1428 + ldrb w0, [x23,1145] + add x1, x4, 96 cmp w27, wzr csel w2, w20, w28, eq str w2, [x1,w0,sxtw 2] add w1, w0, 1 add x0, x23, x0, sxtw - strb w1, [x23,633] - strb w24, [x0,736] -.L1326: + strb w1, [x23,1145] + strb w24, [x0,1248] +.L1428: add x24, x24, 1 cmp x24, 4 - bne .L1328 - b .L1329 + bne .L1430 + b .L1431 .size flash_die_info_init, .-flash_die_info_init .align 2 .global lpa_hash_init @@ -8494,17 +9086,16 @@ lpa_hash_init: mov w2, 512 add x29, sp, 0 str x19, [sp,16] - adrp x19, .LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - add x0, x19, 3640 + adrp x19, .LANCHOR3 + add x19, x19, :lo12:.LANCHOR3 + add x0, x19, 1336 bl ftl_memset - ldrh w0, [x19,3596] + ldrh w0, [x19,1294] mov w1, 255 - ldrb w2, [x19,3572] + ldrb w2, [x19,1249] mul w2, w0, w2 - adrp x0, .LANCHOR3-192 + ldr x0, [x19,1856] lsl w2, w2, 2 - ldr x0, [x0,#:lo12:.LANCHOR3-192] bl ftl_memset ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -8518,57 +9109,54 @@ lpa_rebuild_hash: stp x29, x30, [sp, -32]! add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2] - stp x19, x20, [sp,16] - tbz x0, 12, .L1340 + str x19, [sp,16] + tbz x0, 12, .L1442 adrp x1, .LANCHOR4 - adrp x0, .LC123 + adrp x0, .LC128 add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC123 + add x0, x0, :lo12:.LC128 add x1, x1, 72 - mov w2, 225 + mov w2, 239 mov w3, 0 bl printk -.L1340: - adrp x19, .LANCHOR0 +.L1442: + adrp x19, .LANCHOR3 mov w1, 255 - add x19, x19, :lo12:.LANCHOR0 + add x19, x19, :lo12:.LANCHOR3 mov w2, 512 - add x0, x19, 3640 - adrp x20, .LANCHOR3 + add x0, x19, 1336 bl ftl_memset - ldrh w0, [x19,3596] - add x1, x20, :lo12:.LANCHOR3 - ldrb w2, [x19,3572] - mul w2, w0, w2 - ldr x0, [x1,-192] + ldrh w0, [x19,1294] mov w1, 255 + ldrb w2, [x19,1249] + mul w2, w0, w2 + ldr x0, [x19,1856] lsl w2, w2, 2 bl ftl_memset mov w0, 0 -.L1341: - ldrh w1, [x19,3596] - ldrb w2, [x19,3572] +.L1443: + ldrh w1, [x19,1294] + ldrb w2, [x19,1249] mul w1, w1, w2 cmp w0, w1, lsl 1 - bge .L1350 - add x3, x20, :lo12:.LANCHOR3 + bge .L1452 uxtw x2, w0 - ldr x1, [x3,-200] + ldr x1, [x19,1848] ldr w1, [x1,x2,lsl 2] cmn w1, #1 - beq .L1342 + beq .L1444 uxtb w1, w1 - add x4, x19, 3640 - ldrh w5, [x4,w1,sxtw 1] - strh w0, [x4,w1,sxtw 1] - ldr x1, [x3,-192] - strh w5, [x1,x2,lsl 1] -.L1342: + add x3, x19, 1336 + ldrh w4, [x3,w1,sxtw 1] + strh w0, [x3,w1,sxtw 1] + ldr x1, [x19,1856] + strh w4, [x1,x2,lsl 1] +.L1444: add w0, w0, 1 uxth w0, w0 - b .L1341 -.L1350: - ldp x19, x20, [sp,16] + b .L1443 +.L1452: + ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret .size lpa_rebuild_hash, .-lpa_rebuild_hash @@ -8594,30 +9182,30 @@ zftl_read_flash_info: ldrh w3, [x0,2] mul w2, w2, w3 strh w2, [x19,4] - ldrb w2, [x0,724] + ldrb w2, [x0,1236] strb w2, [x19,7] - ldr w2, [x0,520] + ldr w2, [x0,1032] str w2, [x19] ldrb w2, [x1,9] strb w2, [x19,6] mov w2, 32 - ldrb w4, [x0,633] + ldrb w4, [x0,1145] ldrb w1, [x1,7] strb w1, [x19,9] mov x1, 0 strb w2, [x19,8] -.L1352: +.L1454: cmp w4, w1, uxtb - bls .L1354 - add x2, x0, 736 + bls .L1456 + add x2, x0, 1248 ldrb w3, [x19,10] ldrb w2, [x1,x2] add x1, x1, 1 lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L1352 -.L1354: + b .L1454 +.L1456: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8628,72 +9216,76 @@ zftl_read_flash_info: gc_init: stp x29, x30, [sp, -48]! mov w1, 0 - mov w2, 600 + mov w2, 2136 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - adrp x20, .LANCHOR3 - add x19, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR3 - str x21, [sp,32] - add x21, x19, 2912 - mov x0, x21 - strb wzr, [x19,3569] - strb wzr, [x20,1418] - str wzr, [x20,1420] - strh wzr, [x19,3600] + adrp x20, .LANCHOR0 + adrp x19, .LANCHOR3 + add x20, x20, :lo12:.LANCHOR0 + add x19, x19, :lo12:.LANCHOR3 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR5 + add x22, x20, 3424 + add x21, x21, :lo12:.LANCHOR5 + mov x0, x22 + strb wzr, [x19,1265] + strh wzr, [x19,1296] + strb wzr, [x21,130] + str wzr, [x21,132] bl ftl_memset - ldrh w1, [x19,3596] + ldrh w1, [x19,1294] mov w0, -1 - ldrb w3, [x19,3572] - strh w0, [x19,2912] + ldrb w3, [x19,1249] + strh w0, [x20,3424] lsr w0, w1, 2 lsr w2, w1, 1 - strh w0, [x19,2948] - strh w0, [x19,2894] - ldrh w0, [x19,3570] - strh w2, [x19,2950] + strh w0, [x20,3460] + strh w0, [x20,3406] + ldrh w0, [x19,1266] + strh w2, [x20,3462] mul w2, w1, w3 mul w0, w0, w3 - strh w1, [x19,2896] + strh w1, [x20,3408] + mov w1, 4 uxth w2, w2 lsl w0, w0, 2 sub w4, w2, #32 - strh w2, [x19,2890] - strh w4, [x19,2892] - strh wzr, [x19,3598] - strh wzr, [x19,3592] - strh wzr, [x19,3594] - str xzr, [x19,2920] + strh w2, [x20,3402] + strh w4, [x20,3404] + strh w1, [x21,136] + strh wzr, [x19,1288] + strh wzr, [x19,1290] + strh wzr, [x19,1292] + str xzr, [x20,3432] bl ftl_malloc - ldrb w1, [x19,3572] - str x0, [x20,1424] - ldrh w0, [x19,3570] + ldrb w1, [x19,1249] + str x0, [x21,144] + ldrh w0, [x19,1266] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1432] - ldrh w1, [x19,3570] - ldrb w0, [x19,3572] + str x0, [x21,152] + ldrh w1, [x19,1266] + ldrb w0, [x19,1249] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,3560] - ldrb w1, [x19,3572] - ldrh w0, [x19,3570] + str x0, [x19,1256] + ldrb w1, [x19,1249] + ldrh w0, [x19,1266] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,3544] - ldrb w1, [x19,3572] - ldrh w0, [x19,3570] + str x0, [x19,1240] + ldrb w1, [x19,1249] + ldrh w0, [x19,1266] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1440] - ldrh w0, [x19,3602] - ldr x21, [sp,32] + str x0, [x21,160] + ldrh w0, [x19,1298] + ldp x21, x22, [sp,32] lsr w0, w0, 2 - strh w0, [x19,2888] + strh w0, [x20,3400] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -8711,124 +9303,137 @@ gc_static_wearleveling: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr x0, [x0,2880] + ldr x0, [x0,3392] ldr w1, [x0,32] mov w0, 10240 cmp w1, w0 - bls .L1357 + bls .L1459 bl ftl_tmp_into_update -.L1357: - add x3, x19, :lo12:.LANCHOR0 - ldr x0, [x3,608] - ldr w1, [x0,568] - ldr w2, [x0,12] - add w1, w1, 860160 - add w1, w1, 3840 - cmp w2, w1 - bhi .L1358 - ldr x3, [x3,2880] - ldr w1, [x0,572] - ldr w3, [x3,36] - add w1, w1, 32 - cmp w3, w1 - bls .L1409 -.L1358: - add x1, x19, :lo12:.LANCHOR0 +.L1459: + add x4, x19, :lo12:.LANCHOR0 + ldr x1, [x4,1120] + ldr w2, [x1,568] + ldr w3, [x1,12] + add w0, w2, 32768 + add w0, w0, 3232 + cmp w3, w0 + bcs .L1460 + ldr x0, [x4,3392] + ldr w4, [x1,572] + ldr w5, [x0,36] + add w4, w4, 256 + mov w0, 0 + cmp w5, w4 + bcc .L1553 +.L1460: + add w2, w2, 860160 + add w2, w2, 3840 + cmp w3, w2 + bhi .L1462 + add x0, x19, :lo12:.LANCHOR0 + ldr x2, [x0,3392] + ldr w0, [x1,572] + ldr w2, [x2,36] + add w0, w0, 32 + cmp w2, w0 + bls .L1514 +.L1462: + add x0, x19, :lo12:.LANCHOR0 mov w22, 0 mov w20, 65535 - adrp x27, .LC124 + adrp x25, .LC129 str w22, [x29,128] + mov w27, w22 + ldr x0, [x0,3392] mov w26, w22 - ldr x1, [x1,2880] - mov w25, w22 str w22, [x29,136] mov w24, w22 str w22, [x29,140] mov w28, w22 - ldr w3, [x1,36] + ldr w2, [x0,36] mov w21, w20 - str w3, [x0,572] + str w2, [x1,572] mov w8, w20 - str w2, [x0,568] + str w3, [x1,568] adrp x9, .LANCHOR2 - add x27, x27, :lo12:.LC124 - ldrh w23, [x1,134] -.L1360: + add x25, x25, :lo12:.LC129 + ldrh w23, [x0,134] +.L1464: add x4, x19, :lo12:.LANCHOR0 - ldrh w0, [x4,576] + ldrh w0, [x4,1088] cmp w0, w23 - bls .L1470 + bls .L1575 uxtw x7, w23 - ldr x0, [x4,584] + ldr x0, [x4,1096] lsl x1, x7, 2 add x6, x0, x1 ldrb w2, [x6,2] and w3, w2, 224 cmp w3, 224 - beq .L1361 - tbz x2, 3, .L1362 + beq .L1465 + tbz x2, 3, .L1466 ldrh w3, [x0,x1] ldr w2, [x0,x1] and w3, w3, 2047 ubfx x2, x2, 11, 8 - b .L1363 -.L1362: + b .L1467 +.L1466: tst w2, 24 - bne .L1364 + bne .L1468 ldrh w3, [x0,x1] mov w2, 65535 and w3, w3, 2047 - b .L1363 -.L1364: + b .L1467 +.L1468: ldr w2, [x0,x1] mov w3, 65535 ubfx x2, x2, 11, 8 - b .L1365 -.L1363: + b .L1469 +.L1467: ldr w4, [x29,136] - add w25, w25, 1 + add w26, w26, 1 cmp w20, w3 add w4, w4, w3 str w4, [x29,136] - uxth w25, w25 - bls .L1408 + uxth w26, w26 + bls .L1512 add x4, x19, :lo12:.LANCHOR0 mov w20, w3 - ldr x4, [x4,608] + ldr x4, [x4,1120] strh w23, [x4,586] -.L1408: +.L1512: cmp w24, w3 - bcs .L1366 + bcs .L1470 mov w22, w23 mov w24, w3 -.L1366: +.L1470: cmp w2, w8 - beq .L1367 -.L1365: + beq .L1471 +.L1469: ldr w4, [x29,140] - add w26, w26, 1 + add w27, w27, 1 cmp w21, w2 add w4, w4, w2 str w4, [x29,140] - uxth w26, w26 - bls .L1368 + uxth w27, w27 + bls .L1472 add x4, x19, :lo12:.LANCHOR0 mov w21, w2 - ldr x4, [x4,608] + ldr x4, [x4,1120] strh w23, [x4,584] -.L1368: +.L1472: cmp w28, w2 - bcs .L1367 + bcs .L1471 str w23, [x29,128] mov w28, w2 -.L1367: +.L1471: cmp w3, 9 - bls .L1411 + bls .L1516 cmp w2, 9 - bhi .L1361 -.L1411: + bhi .L1465 +.L1516: ldr w2, [x9,#:lo12:.LANCHOR2] - tbz x2, 8, .L1361 + tbz x2, 8, .L1465 ldrh w2, [x0,x1] ldr w3, [x0,x1] add x0, x19, :lo12:.LANCHOR0 @@ -8836,9 +9441,9 @@ gc_static_wearleveling: mov w1, w23 ldrb w6, [x6,3] and w2, w2, 2047 - ldr x10, [x0,600] + ldr x10, [x0,1112] ubfx x4, x5, 3, 2 - mov x0, x27 + mov x0, x25 ubfx x3, x3, 11, 8 ubfx x5, x5, 5, 3 str x9, [x29,112] @@ -8847,12 +9452,12 @@ gc_static_wearleveling: bl printk ldr x9, [x29,112] ldr x8, [x29,120] -.L1361: +.L1465: add w23, w23, 1 uxth w23, w23 - b .L1360 -.L1470: - ldr x0, [x4,608] + b .L1464 +.L1575: + ldr x0, [x4,1120] mov w1, 255 mov w2, 128 str x4, [x29,120] @@ -8861,162 +9466,186 @@ gc_static_wearleveling: strh wzr, [x0,-142] bl ftl_memset ldr x4, [x29,120] - ldr w2, [x23,#:lo12:.LANCHOR2] - ldr x0, [x4,608] - ldr x3, [x4,584] + ldr x0, [x4,1120] + ldr x10, [x4,1096] ldrh w7, [x0,586] - lsl x0, x7, 2 + ldr w0, [x23,#:lo12:.LANCHOR2] + lsl x9, x7, 2 mov x1, x7 - add x8, x3, x0 - tbz x2, 10, .L1371 - ldr x9, [x4,600] - ldrh w2, [x3,x0] + add x8, x10, x9 + tbz x0, 10, .L1475 + ldr x11, [x4,1112] + adrp x0, .LC130 + ldrh w2, [x10,x9] + add x0, x0, :lo12:.LC130 + ldr w3, [x10,x9] ldrb w5, [x8,2] - ldr w3, [x3,x0] - adrp x0, .LC125 - ldrb w6, [x8,3] - ubfx x4, x5, 3, 2 - ldrh w7, [x9,x7,lsl 1] - add x0, x0, :lo12:.LC125 and w2, w2, 2047 + ldrb w6, [x8,3] ubfx x3, x3, 11, 8 + ldrh w7, [x11,x7,lsl 1] + ubfx x4, x5, 3, 2 ubfx x5, x5, 5, 3 + str x9, [x29,104] + str x10, [x29,112] str x8, [x29,120] bl printk + ldr x9, [x29,104] + ldr x10, [x29,112] ldr x8, [x29,120] -.L1371: +.L1475: ldrb w0, [x8,2] - adrp x27, .LANCHOR3 + adrp x25, .LANCHOR5 and w0, w0, 224 cmp w0, 32 - bne .L1372 + bne .L1476 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2880] + ldr x0, [x0,3392] ldrh w0, [x0,688] cmp w0, 2 - bls .L1372 - add x0, x27, :lo12:.LANCHOR3 + bls .L1476 + add x0, x25, :lo12:.LANCHOR5 mov w1, 1 - str w1, [x0,1448] -.L1372: + str w1, [x0,168] +.L1476: ldrb w0, [x8,2] - tbz x0, 3, .L1373 + tbz x0, 3, .L1477 + add x3, x19, :lo12:.LANCHOR0 + add x1, x25, :lo12:.LANCHOR5 + ldr x0, [x3,3392] + ldrh w1, [x1,172] + ldrh w2, [x0,96] + ldrh w0, [x10,x9] + and w0, w0, 2047 + add w0, w0, w1, lsr 2 + cmp w2, w0 + ble .L1477 ldrb w0, [x8,2] and w1, w0, 192 cmp w1, 64 - bne .L1374 - add x3, x19, :lo12:.LANCHOR0 + bne .L1478 + ldr x0, [x3,1120] mov w1, 0 mov w2, 1 str x3, [x29,120] - ldr x0, [x3,608] ldrh w0, [x0,586] bl gc_add_sblk ldr x3, [x29,120] mov w0, 1 - strh w0, [x3,3486] - b .L1373 -.L1374: + strh w0, [x3,5534] + b .L1477 +.L1478: tst w0, 224 - bne .L1373 - add x2, x19, :lo12:.LANCHOR0 + bne .L1477 + ldr x1, [x3,1120] mov w0, 65535 - ldr x1, [x2,608] - ldrh w3, [x1,590] - cmp w3, w0 - bne .L1373 + ldrh w2, [x1,590] + cmp w2, w0 + bne .L1477 ldrh w0, [x1,586] ldrh w1, [x1,588] - str x2, [x29,120] + str x3, [x29,120] cmp w1, w0 - beq .L1373 + beq .L1477 bl zftl_remove_free_node - ldr x2, [x29,120] - ldr x0, [x2,608] + ldr x3, [x29,120] + ldr x0, [x3,1120] ldrh w1, [x0,586] strh w1, [x0,590] mov w1, -1 strh w1, [x0,586] -.L1373: +.L1477: add x0, x19, :lo12:.LANCHOR0 ldr w2, [x23,#:lo12:.LANCHOR2] - ldr x1, [x0,608] - ldr x4, [x0,584] + ldr x1, [x0,1120] + ldr x10, [x0,1096] ldrh w7, [x1,584] - lsl x3, x7, 2 + lsl x9, x7, 2 mov x1, x7 - add x8, x4, x3 - tbz x2, 10, .L1375 - ldr x9, [x0,600] - adrp x0, .LC126 - ldrh w2, [x4,x3] - add x0, x0, :lo12:.LC126 + add x8, x10, x9 + tbz x2, 10, .L1479 + ldr x11, [x0,1112] + adrp x0, .LC131 + ldrh w2, [x10,x9] + add x0, x0, :lo12:.LC131 + ldr w3, [x10,x9] ldrb w5, [x8,2] - ldr w3, [x4,x3] and w2, w2, 2047 ldrb w6, [x8,3] - ubfx x4, x5, 3, 2 - ldrh w7, [x9,x7,lsl 1] ubfx x3, x3, 11, 8 + ldrh w7, [x11,x7,lsl 1] + ubfx x4, x5, 3, 2 ubfx x5, x5, 5, 3 + str x9, [x29,104] + str x10, [x29,112] str x8, [x29,120] bl printk + ldr x9, [x29,104] + ldr x10, [x29,112] ldr x8, [x29,120] -.L1375: +.L1479: ldrb w0, [x8,2] - tbz x0, 3, .L1376 + tbz x0, 3, .L1480 + add x3, x19, :lo12:.LANCHOR0 + add x1, x25, :lo12:.LANCHOR5 + ldr x0, [x3,3392] + ldrh w1, [x1,174] + ldrh w2, [x0,98] + ldr w0, [x10,x9] + ubfx x0, x0, 11, 8 + add w0, w0, w1, lsr 2 + cmp w2, w0 + ble .L1480 ldrb w0, [x8,2] and w1, w0, 192 cmp w1, 64 - bne .L1377 - add x3, x19, :lo12:.LANCHOR0 + bne .L1481 + ldr x0, [x3,1120] mov w1, 0 mov w2, 1 str x3, [x29,120] - ldr x0, [x3,608] ldrh w0, [x0,584] bl gc_add_sblk ldr x3, [x29,120] mov w0, 1 - strh w0, [x3,3486] - b .L1376 -.L1377: + strh w0, [x3,5534] + b .L1480 +.L1481: and w0, w0, 248 cmp w0, 16 - bne .L1376 - add x2, x19, :lo12:.LANCHOR0 + bne .L1480 + ldr x1, [x3,1120] mov w0, 65535 - ldr x1, [x2,608] - ldrh w3, [x1,588] - cmp w3, w0 - bne .L1376 + ldrh w2, [x1,588] + cmp w2, w0 + bne .L1480 ldrh w0, [x1,584] ldrh w1, [x1,590] - str x2, [x29,120] + str x3, [x29,120] cmp w1, w0 - beq .L1376 + beq .L1480 bl zftl_remove_free_node - ldr x2, [x29,120] - ldr x0, [x2,608] + ldr x3, [x29,120] + ldr x0, [x3,1120] ldrh w1, [x0,584] strh w1, [x0,588] mov w1, -1 strh w1, [x0,584] -.L1376: +.L1480: add x4, x19, :lo12:.LANCHOR0 ldr w0, [x23,#:lo12:.LANCHOR2] - ldr x1, [x4,584] - tbz x0, 10, .L1378 + ldr x1, [x4,1096] + tbz x0, 10, .L1482 uxtw x7, w22 - ldr x8, [x4,600] + ldr x8, [x4,1112] lsl x0, x7, 2 add x6, x1, x0 ldrh w7, [x8,x7,lsl 1] ldrh w2, [x1,x0] ldr w3, [x1,x0] - adrp x0, .LC127 + adrp x0, .LC132 ldrb w5, [x6,2] - add x0, x0, :lo12:.LC127 + add x0, x0, :lo12:.LC132 ldrb w6, [x6,3] mov w1, w22 ubfx x4, x5, 3, 2 @@ -9024,98 +9653,98 @@ gc_static_wearleveling: ubfx x3, x3, 11, 8 ubfx x5, x5, 5, 3 bl printk -.L1378: +.L1482: add x4, x19, :lo12:.LANCHOR0 ldr w0, [x23,#:lo12:.LANCHOR2] - ldr x1, [x4,584] - tbz x0, 10, .L1379 + ldr x1, [x4,1096] + tbz x0, 10, .L1483 ldr w7, [x29,128] - ldr x8, [x4,600] + ldr x8, [x4,1112] lsl x0, x7, 2 add x6, x1, x0 ldrh w2, [x1,x0] ldr w3, [x1,x0] - adrp x0, .LC128 + adrp x0, .LC133 ldrb w5, [x6,2] mov x1, x7 ldrb w6, [x6,3] - add x0, x0, :lo12:.LC128 + add x0, x0, :lo12:.LC133 ldrh w7, [x8,x7,lsl 1] ubfx x4, x5, 3, 2 and w2, w2, 2047 ubfx x3, x3, 11, 8 ubfx x5, x5, 5, 3 bl printk -.L1379: +.L1483: ldr w1, [x29,136] add x0, x19, :lo12:.LANCHOR0 - udiv w3, w1, w25 + udiv w3, w1, w26 ldr w1, [x29,140] - ldr x0, [x0,2880] + ldr x0, [x0,3392] strh w24, [x0,96] strh w28, [x0,98] strh w20, [x0,92] strh w21, [x0,94] - udiv w4, w1, w26 + udiv w4, w1, w27 strh w3, [x0,88] strh w4, [x0,90] ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 10, .L1380 - adrp x0, .LC129 - mov w1, w25 - add x0, x0, :lo12:.LC129 - mov w2, w26 + tbz x0, 10, .L1484 + adrp x0, .LC134 + mov w1, w26 + add x0, x0, :lo12:.LC134 + mov w2, w27 uxth w3, w3 uxth w4, w4 bl printk -.L1380: +.L1484: ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 10, .L1381 - add x6, x27, :lo12:.LANCHOR3 - adrp x0, .LC130 - add x0, x0, :lo12:.LC130 + tbz x0, 10, .L1485 + add x6, x25, :lo12:.LANCHOR5 + adrp x0, .LC135 + add x0, x0, :lo12:.LC135 mov w1, w20 mov w2, w21 mov w3, w24 - ldrh w5, [x6,1452] + ldrh w5, [x6,172] mov w4, w28 - ldrh w6, [x6,1454] + ldrh w6, [x6,174] bl printk -.L1381: - add x1, x27, :lo12:.LANCHOR3 +.L1485: + add x1, x25, :lo12:.LANCHOR5 sub w0, w28, w21 str w0, [x29,140] - ldrh w0, [x1,1454] + ldrh w0, [x1,174] ldr w2, [x29,140] cmp w2, w0 - bgt .L1382 - ldrh w1, [x1,1452] + bgt .L1486 + ldrh w1, [x1,172] sub w0, w24, w20 cmp w0, w1 - ble .L1410 -.L1382: + ble .L1515 +.L1486: add x0, x19, :lo12:.LANCHOR0 - mov w25, 0 - mov w22, w25 - ldr x1, [x0,608] - ldr x0, [x0,2880] + mov w26, 0 + mov w22, w26 + ldr x1, [x0,1120] + ldr x0, [x0,3392] ldrh w28, [x1,580] - ldrh w26, [x0,134] + ldrh w27, [x0,134] sub w0, w24, w20 str w0, [x29,136] - adrp x0, .LC132 - add x0, x0, :lo12:.LC132 - adrp x24, .LC131 + adrp x0, .LC137 + add x0, x0, :lo12:.LC137 + adrp x24, .LC136 str x0, [x29,128] - add x0, x24, :lo12:.LC131 + add x0, x24, :lo12:.LC136 str x0, [x29,120] -.L1384: +.L1488: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,576] - cmp w26, w0 - bcs .L1393 + ldrh w0, [x1,1088] + cmp w27, w0 + bcs .L1497 add w7, w28, 1 - ldr x4, [x1,584] + ldr x4, [x1,1096] uxth w28, w7 cmp w28, w0 csel w28, w28, wzr, cc @@ -9125,31 +9754,31 @@ gc_static_wearleveling: ldrb w0, [x0,2] and w2, w0, 224 cmp w2, 224 - beq .L1386 + beq .L1490 tst w0, 192 - beq .L1386 + beq .L1490 ubfx x0, x0, 3, 2 cmp w2, 160 and w1, w0, 1 - tbnz x0, 0, .L1468 + tbnz x0, 0, .L1573 cmp w0, 2 -.L1468: - add x0, x27, :lo12:.LANCHOR3 - bne .L1389 - ldrh w0, [x0,1454] +.L1573: + add x0, x25, :lo12:.LANCHOR5 + bne .L1493 + ldrh w0, [x0,174] ldr w2, [x29,140] cmp w2, w0 - ble .L1390 + ble .L1494 ldr w0, [x4,x3] ubfx x0, x0, 11, 8 cmp w0, w21 - bls .L1391 - cbz w1, .L1390 + bls .L1495 + cbz w1, .L1494 ldrh w0, [x4,x3] and w0, w0, 2047 cmp w0, w20 - bgt .L1390 -.L1391: + bgt .L1494 +.L1495: mov w1, 0 mov w0, w28 mov w2, 1 @@ -9159,60 +9788,60 @@ gc_static_wearleveling: bl gc_add_sblk add x0, x19, :lo12:.LANCHOR0 mov w1, 1 - add x9, x0, 2912 + add x9, x0, 3424 ldr x3, [x29,112] ldr x4, [x29,104] - strh w1, [x0,3486] + strh w1, [x0,5534] ldr w1, [x23,#:lo12:.LANCHOR2] - tbz x1, 10, .L1390 - ldr x1, [x0,584] - ldr x10, [x0,600] + tbz x1, 10, .L1494 + ldr x1, [x0,1096] + ldr x10, [x0,1112] add x1, x1, x3 ldrh w5, [x4,x3] ldr w6, [x4,x3] ldr x0, [x29,120] ldrb w2, [x1,2] - b .L1469 -.L1389: - ldrh w0, [x0,1452] + b .L1574 +.L1493: + ldrh w0, [x0,172] ldr w2, [x29,136] cmp w2, w0 - ble .L1390 + ble .L1494 ldrh w0, [x4,x3] add w2, w20, 8 and w0, w0, 2047 cmp w0, w2 - ble .L1392 - cbz w1, .L1390 + ble .L1496 + cbz w1, .L1494 ldr w0, [x4,x3] add w1, w21, 4 ubfx x0, x0, 11, 8 cmp w0, w1 - bgt .L1390 -.L1392: + bgt .L1494 +.L1496: mov w1, 0 mov w0, w28 mov w2, 1 str x4, [x29,104] str x3, [x29,112] - add w25, w25, 1 + add w26, w26, 1 bl gc_add_sblk add x0, x19, :lo12:.LANCHOR0 mov w1, 1 - add x9, x0, 2912 + add x9, x0, 3424 ldr x3, [x29,112] ldr x4, [x29,104] - strh w1, [x0,3486] + strh w1, [x0,5534] ldr w1, [x23,#:lo12:.LANCHOR2] - tbz x1, 10, .L1390 - ldr x1, [x0,584] - ldr x10, [x0,600] + tbz x1, 10, .L1494 + ldr x1, [x0,1096] + ldr x10, [x0,1112] add x1, x1, x3 ldrh w5, [x4,x3] ldr w6, [x4,x3] ldr x0, [x29,128] ldrb w2, [x1,2] -.L1469: +.L1574: ldrh w3, [x10,x24,lsl 1] mov w1, w28 ldrh w4, [x9,56] @@ -9220,123 +9849,125 @@ gc_static_wearleveling: and w5, w5, 2047 ubfx x6, x6, 11, 8 bl printk -.L1390: - cmp w25, 4 - bhi .L1393 +.L1494: + cmp w26, 4 + bhi .L1497 cmp w22, 4 - bhi .L1393 -.L1386: - add w26, w26, 1 - uxth w26, w26 - b .L1384 -.L1393: + bhi .L1497 +.L1490: + add w27, w27, 1 + uxth w27, w27 + b .L1488 +.L1497: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,608] + ldr x0, [x0,1120] str w28, [x0,580] - b .L1383 -.L1410: - mov w25, 0 - mov w22, w25 -.L1383: - cbz w21, .L1396 + b .L1487 +.L1515: + mov w26, 0 + mov w22, w26 +.L1487: + cbz w21, .L1500 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2880] + ldr x0, [x0,3392] ldrh w0, [x0,134] -.L1397: +.L1501: add x1, x19, :lo12:.LANCHOR0 - ldrh w2, [x1,576] + ldrh w2, [x1,1088] cmp w2, w0 - bls .L1471 + bls .L1576 ubfiz x3, x0, 2, 16 - ldr x4, [x1,584] + ldr x4, [x1,1096] add x5, x4, x3 ldr w1, [x4,x3] ubfx x2, x1, 11, 8 cmp w2, w21 - bcc .L1398 + bcc .L1502 ldrb w5, [x5,2] tst w5, 24 - beq .L1398 + beq .L1502 sub w2, w2, w21 bfi w1, w2, 11, 8 str w1, [x4,x3] -.L1398: +.L1502: add w0, w0, 1 uxth w0, w0 - b .L1397 -.L1471: - ldr x0, [x1,2880] + b .L1501 +.L1576: + ldr x0, [x1,3392] ldrh w1, [x0,72] add w1, w21, w1 strh w1, [x0,72] ldrh w1, [x0,98] cmp w1, w21 - bls .L1396 + bls .L1500 sub w21, w1, w21 strh w21, [x0,98] -.L1396: - cbz w20, .L1402 +.L1500: + cbz w20, .L1506 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2880] + ldr x0, [x0,3392] ldrh w0, [x0,134] -.L1403: +.L1507: add x1, x19, :lo12:.LANCHOR0 - ldrh w2, [x1,576] + ldrh w2, [x1,1088] cmp w2, w0 - bls .L1472 + bls .L1577 ubfiz x3, x0, 2, 16 - ldr x4, [x1,584] + ldr x4, [x1,1096] add x5, x4, x3 ldrh w1, [x4,x3] and w2, w1, 2047 cmp w2, w20 - blt .L1404 + blt .L1508 ldrb w5, [x5,2] and w5, w5, 24 cmp w5, 16 - beq .L1404 + beq .L1508 sub w2, w2, w20 bfi w1, w2, 0, 11 strh w1, [x4,x3] -.L1404: +.L1508: add w0, w0, 1 uxth w0, w0 - b .L1403 -.L1472: - ldr x0, [x1,2880] + b .L1507 +.L1577: + ldr x0, [x1,3392] ldrh w1, [x0,74] add w1, w20, w1 strh w1, [x0,74] ldrh w1, [x0,96] cmp w1, w20 - bls .L1402 + bls .L1506 sub w20, w1, w20 strh w20, [x0,96] -.L1402: +.L1506: mov w1, 5 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L1359 + beq .L1463 add x19, x19, :lo12:.LANCHOR0 + adrp x2, .LANCHOR3+1294 ubfiz x1, x1, 1, 16 - ldr x2, [x19,600] - ldrh w2, [x2,x1] - ldrh w1, [x19,3596] - cmp w2, w1 - bhi .L1359 + ldr x3, [x19,1112] + ldrh w2, [x2,#:lo12:.LANCHOR3+1294] + ldrh w1, [x3,x1] + cmp w1, w2, lsr 1 + bhi .L1463 mov w1, 0 mov w2, 1 add w22, w22, 1 bl gc_add_sblk - b .L1359 -.L1409: - mov w25, 0 - mov w22, w25 -.L1359: - add w0, w25, w22 + b .L1463 +.L1514: + mov w26, 0 + mov w22, w26 +.L1463: + add w0, w26, w22 +.L1553: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9350,213 +9981,240 @@ gc_static_wearleveling: .type zftl_sblk_list_init, %function zftl_sblk_list_init: stp x29, x30, [sp, -112]! + mov w2, 6 mov w1, 0 add x29, sp, 0 stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 + adrp x22, .LANCHOR0 stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR0 + add x19, x22, :lo12:.LANCHOR0 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov w24, 6 - mov w23, 32768 - ldrh w2, [x19,576] - adrp x26, .LC133 - ldr x0, [x19,528] - mov w25, -1 - add x26, x26, :lo12:.LC133 - mul w2, w2, w24 + adrp x23, .LANCHOR3 + adrp x26, .LANCHOR4 + ldrh w3, [x19,1088] + adrp x27, .LC0 + ldr x0, [x19,1040] + add x26, x26, :lo12:.LANCHOR4 + mov w24, 0 + add x27, x27, :lo12:.LC0 + mul w2, w3, w2 + add x26, x26, 96 bl ftl_memset - ldrh w22, [x19,3570] - mov w0, 16 - strh w0, [x19,3632] - ldrb w0, [x19,3572] - str xzr, [x19,3608] - str xzr, [x19,3616] - mul w22, w0, w22 - str xzr, [x19,3624] - str xzr, [x19,3584] - sdiv w22, w23, w22 - str xzr, [x19,616] - str xzr, [x19,3576] - strh wzr, [x19,2860] - strh wzr, [x19,2862] - strh wzr, [x19,2864] - strh wzr, [x19,2866] - strh wzr, [x19,2870] - strh wzr, [x19,2868] - sxth w0, w22 + str xzr, [x19,1128] + add x0, x23, :lo12:.LANCHOR3 + mov w1, 32 + strh wzr, [x19,3376] + strh wzr, [x19,3378] + strh w1, [x0,1328] + ldrh w25, [x0,1266] + ldrb w1, [x0,1249] + str xzr, [x0,1304] + str xzr, [x0,1312] + mul w25, w1, w25 + str xzr, [x0,1320] + str xzr, [x0,1280] + str xzr, [x0,1272] + mov w0, 32768 + strh wzr, [x19,3380] + sdiv w25, w0, w25 + strh wzr, [x19,3382] + strh wzr, [x19,3386] + strh wzr, [x19,3384] + sxth w0, w25 str w0, [x29,108] - ldr x0, [x19,2880] + ldr x0, [x19,3392] ldrsh w19, [x0,134] strh wzr, [x0,146] -.L1474: - add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,576] - cmp w19, w1 - bge .L1504 - sxtw x22, w19 - ldr x27, [x0,584] - ldr w1, [x29,108] - add x27, x27, x22, lsl 2 - ldrb w2, [x27,3] - cbz w2, .L1475 - ldrb w5, [x0,3572] - ldrh w6, [x0,3570] - ldr x4, [x0,2880] - mov w0, 0 - mov w1, w0 -.L1476: - cmp w0, w5 - bge .L1505 - ldrb w2, [x27,3] - asr w2, w2, w0 - tbnz x2, 0, .L1477 - add w1, w6, w1 - sxth w1, w1 - b .L1478 -.L1477: +.L1579: + add x2, x22, :lo12:.LANCHOR0 + ldrh w0, [x2,1088] + cmp w19, w0 + bge .L1610 + sxtw x25, w19 + ldr x20, [x2,1096] + ldr w0, [x29,108] + add x20, x20, x25, lsl 2 + ldrb w1, [x20,3] + cbz w1, .L1580 + add x0, x23, :lo12:.LANCHOR3 + mov w1, 0 + ldr x4, [x2,3392] + ldrb w5, [x0,1249] + ldrh w6, [x0,1266] + mov w0, w1 +.L1581: + cmp w1, w5 + bge .L1611 + ldrb w2, [x20,3] + asr w2, w2, w1 + tbnz x2, 0, .L1582 + add w0, w6, w0 + sxth w0, w0 + b .L1583 +.L1582: ldrh w2, [x4,146] add w2, w2, 1 strh w2, [x4,146] -.L1478: - add w0, w0, 1 - b .L1476 -.L1505: - cbz w1, .L1480 - sdiv w1, w23, w1 +.L1583: add w1, w1, 1 - sxth w1, w1 - b .L1475 -.L1480: - ldrb w0, [x27,2] - orr w0, w0, -32 - strb w0, [x27,2] - add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,600] - strh w25, [x0,x22,lsl 1] -.L1475: - add x20, x21, :lo12:.LANCHOR0 - smull x0, w19, w24 - ldr x2, [x20,528] - add x2, x2, x0 - strh w1, [x2,4] - ldr x1, [x20,528] - add x2, x1, x0 - strh w25, [x2,2] - strh w25, [x1,x0] - ldrb w1, [x27,2] - and w0, w1, 224 + b .L1581 +.L1611: + cbz w0, .L1585 + mov w1, 32768 + sdiv w0, w1, w0 + add w0, w0, 1 + sxth w0, w0 + b .L1580 +.L1585: + ldrb w1, [x20,2] + mov w2, -1 + orr w1, w1, -32 + strb w1, [x20,2] + add x1, x22, :lo12:.LANCHOR0 + ldr x1, [x1,1112] + strh w2, [x1,x25,lsl 1] +.L1580: + add x21, x22, :lo12:.LANCHOR0 + mov w1, 6 + smull x1, w19, w1 + ldr x2, [x21,1040] + add x2, x2, x1 + strh w0, [x2,4] + mov w2, -1 + ldr x0, [x21,1040] + add x4, x0, x1 + strh w2, [x4,2] + strh w2, [x0,x1] + ldrb w0, [x20,2] + and w0, w0, 224 cmp w0, 224 - beq .L1483 + beq .L1586 cmp w0, 32 cset w28, eq - cbnz w28, .L1483 - ldr x2, [x20,608] - ldrh w4, [x2,16] - cmp w19, w4 - beq .L1483 - ldrh w4, [x2,48] - cmp w19, w4 - beq .L1483 - ldrh w2, [x2,80] + cbnz w28, .L1586 + ldr x1, [x21,1120] + ldrh w2, [x1,16] cmp w19, w2 - beq .L1483 + beq .L1586 + ldrh w2, [x1,48] + cmp w19, w2 + beq .L1586 + ldrh w1, [x1,80] + cmp w19, w1 + beq .L1586 cmp w0, 64 - bne .L1485 - uxth w27, w19 - add x0, x20, 616 - mov w1, w27 - add x2, x20, 2866 - b .L1502 -.L1485: + bne .L1587 + uxth w20, w19 + add x0, x21, 1128 + mov w1, w20 + add x2, x21, 3382 + b .L1608 +.L1587: cmp w0, 96 - bne .L1486 - uxth w27, w19 - add x0, x20, 3584 - mov w1, w27 - add x2, x20, 2868 - b .L1502 -.L1486: + bne .L1588 + uxth w20, w19 + add x0, x23, :lo12:.LANCHOR3 + add x0, x0, 1280 + mov w1, w20 + add x2, x21, 3384 + b .L1608 +.L1588: cmp w0, 160 - bne .L1487 - uxth w27, w19 - add x0, x20, 3576 - mov w1, w27 - add x2, x20, 2870 -.L1502: + bne .L1589 + uxth w20, w19 + add x0, x23, :lo12:.LANCHOR3 + add x0, x0, 1272 + mov w1, w20 + add x2, x21, 3386 +.L1608: bl _insert_data_list - ldr x0, [x20,600] - ldrh w0, [x0,x22,lsl 1] + ldr x0, [x21,1112] + ldrh w0, [x0,x25,lsl 1] cmp w0, 7 - bhi .L1483 - mov w0, w27 + bhi .L1586 + mov w0, w20 mov w1, 1 mov w2, w28 - b .L1500 -.L1487: - cbnz w0, .L1483 - ldr x0, [x20,600] - ldrh w2, [x0,x22,lsl 1] - cbz w2, .L1488 - mov x0, x26 + b .L1606 +.L1589: + cbnz w0, .L1586 + ldr x0, [x21,1112] + ldrh w2, [x0,x25,lsl 1] + cbz w2, .L1590 + cmp w24, 2 + bgt .L1591 + adrp x0, .LC138 mov w1, w19 + add x0, x0, :lo12:.LC138 + add w24, w24, 1 bl printk - ldrb w0, [x27,2] - tbz x0, 4, .L1489 + sxth w24, w24 + ldrb w0, [x20,2] + tbz x0, 4, .L1592 mov w1, 5 - b .L1496 -.L1489: + b .L1602 +.L1592: mov w1, 2 -.L1496: +.L1602: bfi w0, w1, 5, 3 mov w2, 0 - strb w0, [x27,2] + strb w0, [x20,2] mov w1, 1 mov w0, w19 -.L1500: +.L1606: bl gc_add_sblk - b .L1483 -.L1488: - ands w1, w1, 24 - add x2, x21, :lo12:.LANCHOR0 - bne .L1491 - add x0, x2, 3608 + b .L1586 +.L1591: + mov x1, x26 + mov w2, 651 + mov x0, x27 + bl printk + bl dump_stack +.L1590: + ldrb w0, [x20,2] + ands w0, w0, 24 + bne .L1594 + add x0, x23, :lo12:.LANCHOR3 + add x2, x22, :lo12:.LANCHOR0 + add x0, x0, 1304 mov w1, w19 - add x2, x2, 2860 - b .L1498 -.L1491: - cmp w1, 16 - bne .L1492 - add x0, x2, 3616 + add x2, x2, 3376 + b .L1604 +.L1594: + cmp w0, 16 + add x2, x22, :lo12:.LANCHOR0 + add x0, x23, :lo12:.LANCHOR3 + bne .L1595 + add x0, x0, 1312 mov w1, w19 - add x2, x2, 2862 - b .L1498 -.L1492: - add x0, x2, 3624 + add x2, x2, 3378 + b .L1604 +.L1595: + add x0, x0, 1320 mov w1, w19 - add x2, x2, 2864 -.L1498: + add x2, x2, 3380 +.L1604: bl _insert_free_list -.L1483: +.L1586: add w19, w19, 1 sxth w19, w19 - b .L1474 -.L1504: - ldr x1, [x0,2880] - ldrh w2, [x0,2860] - strh w2, [x1,114] - ldrh w2, [x0,2862] - strh w2, [x1,118] - ldrh w2, [x0,2864] - strh w2, [x1,116] - ldrh w2, [x0,2866] - strh w2, [x1,122] - ldrh w2, [x0,2870] - ldrh w0, [x0,2868] - strh w2, [x1,120] - strh w0, [x1,124] + b .L1579 +.L1610: + ldr x0, [x2,3392] + ldrh w1, [x2,3376] + strh w1, [x0,114] + ldrh w1, [x2,3378] + strh w1, [x0,118] + ldrh w1, [x2,3380] + strh w1, [x0,116] + ldrh w1, [x2,3382] + strh w1, [x0,122] + ldrh w1, [x2,3386] + strh w1, [x0,120] + ldrh w1, [x2,3384] + strh w1, [x0,124] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9566,209 +10224,300 @@ zftl_sblk_list_init: ret .size zftl_sblk_list_init, .-zftl_sblk_list_init .align 2 + .global ftl_open_sblk_init + .type ftl_open_sblk_init, %function +ftl_open_sblk_init: + stp x29, x30, [sp, -96]! + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + adrp x20, .LC126 + adrp x22, .LANCHOR3 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + mov x19, x0 + mov w21, w1 + mov w23, 65535 + add x24, x0, 16 + mov x25, x22 + add x20, x20, :lo12:.LC126 +.L1614: + mov w0, w21 + bl ftl_alloc_sblk + uxth w26, w0 + cmp w26, w23 + beq .L1614 + mov w1, 0 + mov w0, w26 + bl ftl_erase_sblk + mov x1, x24 + mov w0, w26 + bl ftl_get_blk_list_in_sblk + strh w26, [x19] + add x2, x22, :lo12:.LANCHOR3 + uxtb w0, w0 + strb w0, [x19,9] + cmp w21, 2 + strh wzr, [x19,2] + mov w3, 0 + ldrh w1, [x2,1294] + strb wzr, [x19,5] + strh wzr, [x19,10] + mul w0, w1, w0 + strh w0, [x19,6] + strb w21, [x19,4] + beq .L1615 + ldrb w3, [x2,1249] + mul w3, w1, w3 + uxth w3, w3 +.L1615: + add x2, x25, :lo12:.LANCHOR3 + adrp x27, .LANCHOR0 + strh w3, [x19,12] + add x27, x27, :lo12:.LANCHOR0 + ubfiz x28, x26, 1, 16 + ldr x0, [x2,1848] + add x0, x0, x3, uxth 2 + ldrb w2, [x2,1249] + mul w2, w1, w2 + mov w1, 255 + lsl w2, w2, 2 + bl ftl_memset + ldr x0, [x27,1112] + ldrh w1, [x19,6] + strh w1, [x0,x28] + ldrb w0, [x19,9] + cbnz w0, .L1612 +.L1613: + mov w1, w26 + mov x0, x20 + bl printk + ldr x0, [x27,1112] + mov w1, -1 + strh w1, [x0,x28] + mov w0, 7 + strb w0, [x19,4] + b .L1614 +.L1612: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 96 + ret + .size ftl_open_sblk_init, .-ftl_open_sblk_init + .align 2 .global pm_free_sblk .type pm_free_sblk, %function pm_free_sblk: - stp x29, x30, [sp, -368]! - adrp x0, .LANCHOR3 + stp x29, x30, [sp, -384]! + adrp x0, .LANCHOR5 add x29, sp, 0 - add x1, x0, :lo12:.LANCHOR3 + add x1, x0, :lo12:.LANCHOR5 stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] mov x19, x0 - ldrh w1, [x1,1456] + ldrh w1, [x1,176] cmp w1, 128 - bls .L1507 + bls .L1620 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 84 - add x1, x1, 96 + mov w2, 94 + add x1, x1, 120 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1507: - adrp x21, .LANCHOR0 +.L1620: + adrp x20, .LANCHOR0 mov x1, 0 - add x0, x21, :lo12:.LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 mov w2, w1 mov w6, 65535 - ldr x3, [x0,2880] - add x0, x19, :lo12:.LANCHOR3 + ldr x3, [x0,3392] + add x0, x19, :lo12:.LANCHOR5 ldrh w4, [x3,688] - ldrh w5, [x0,1456] -.L1510: + ldrh w5, [x0,176] +.L1623: add x7, x3, x1, lsl 1 uxth w0, w1 ldrh w7, [x7,416] cmp w7, w6 - beq .L1508 + beq .L1621 add w2, w2, 1 uxth w2, w2 -.L1508: +.L1621: cmp w2, w4 - bcs .L1509 + bcs .L1622 cmp w2, w5 - bcs .L1509 + bcs .L1622 add x1, x1, 1 cmp x1, 128 - bne .L1510 + bne .L1623 mov w0, w1 -.L1509: +.L1622: add w0, w0, 1 mov w19, 128 - add x23, x29, 112 + add x22, x29, 128 mov w1, 0 uxth w0, w0 mov w2, 256 cmp w0, 128 + adrp x23, .LANCHOR3 csel w19, w0, w19, ls - mov x0, x23 + uxth w0, w19 + str w0, [x29,124] + mov x0, x22 bl ftl_memset - uxth w19, w19 - add x1, x21, :lo12:.LANCHOR0 - mov w0, 24 + add x0, x20, :lo12:.LANCHOR0 + add x1, x23, :lo12:.LANCHOR3 mov x3, 0 - ldrb w2, [x1,744] - ldr x4, [x1,2880] - ldrh w6, [x1,3536] + ldrb w2, [x0,1257] + ldr x4, [x0,3392] + mov w0, 24 + ldrh w6, [x1,1232] sub w2, w0, w2 mov w0, 1 - ldrb w8, [x1,3538] + ldrb w8, [x1,1234] sub w2, w2, w6 ldrh w7, [x4,698] lsl w2, w0, w2 sub w2, w2, #1 -.L1511: +.L1624: cmp w7, w3, uxth - bls .L1539 + bls .L1652 add x0, x4, x3, lsl 2 - ldr w1, [x0,704] - mov x0, 0 - lsr w1, w1, w6 - and w1, w1, w2 - udiv w1, w1, w8 - uxth w1, w1 -.L1512: - cmp w19, w0, uxth - bls .L1540 - add x5, x4, x0, lsl 1 + mov x1, 0 + ldr w0, [x0,704] + lsr w0, w0, w6 + and w0, w0, w2 + udiv w0, w0, w8 + uxth w0, w0 +.L1625: + ldr w5, [x29,124] + cmp w5, w1, uxth + bls .L1653 + add x5, x4, x1, lsl 1 ldrh w5, [x5,416] - cmp w5, w1 - bne .L1513 - ldrh w5, [x23,x0,lsl 1] + cmp w5, w0 + bne .L1626 + ldrh w5, [x22,x1,lsl 1] add w5, w5, 1 - strh w5, [x23,x0,lsl 1] -.L1513: - add x0, x0, 1 - b .L1512 -.L1540: + strh w5, [x22,x1,lsl 1] +.L1626: + add x1, x1, 1 + b .L1625 +.L1653: add x3, x3, 1 - b .L1511 -.L1539: - add x1, x21, :lo12:.LANCHOR0 - mov x20, 0 + b .L1624 +.L1652: + add x1, x23, :lo12:.LANCHOR3 + mov x19, 0 mov w28, 65535 - adrp x25, .LC134 - adrp x26, .LC135 - mov w24, w20 - ldrb w0, [x1,3572] + adrp x25, .LC139 + adrp x26, .LC140 + mov w24, w19 + ldrb w0, [x1,1249] mov w27, w28 - ldrh w22, [x1,3596] - add x25, x25, :lo12:.LC134 - add x26, x26, :lo12:.LC135 - mul w22, w0, w22 - uxth w22, w22 -.L1516: - uxth w5, w20 - cmp w5, w19 - bcs .L1541 - add x2, x21, :lo12:.LANCHOR0 - mov w7, w20 - ldr x0, [x2,2880] - add x1, x0, x20, sxtw 1 - ldrb w4, [x2,3538] + ldrh w21, [x1,1294] + add x25, x25, :lo12:.LC139 + add x26, x26, :lo12:.LC140 + mul w21, w0, w21 + uxth w21, w21 +.L1629: + ldr w0, [x29,124] + uxth w6, w19 + cmp w6, w0 + bcs .L1654 + add x0, x20, :lo12:.LANCHOR0 + add x2, x23, :lo12:.LANCHOR3 + mov w8, w19 + ldr x0, [x0,3392] + add x1, x0, x19, sxtw 1 + ldrb w4, [x2,1234] ldrh w3, [x1,416] ldrh w1, [x0,692] sdiv w1, w1, w4 cmp w1, w3 - bne .L1517 - ldrb w1, [x2,3572] - ldrh w2, [x2,3596] + bne .L1630 + ldrb w1, [x2,1249] + ldrh w2, [x2,1294] mul w1, w1, w2 - strh w1, [x23,x20,lsl 1] -.L1517: - ldrh w2, [x23,x20,lsl 1] - cmp w22, w2 - bls .L1518 + strh w1, [x22,x19,lsl 1] +.L1630: + ldrh w2, [x22,x19,lsl 1] + cmp w21, w2 + bls .L1631 cmp w2, wzr - csel w24, w24, w5, eq - csel w22, w22, w2, eq -.L1518: + csel w24, w24, w6, eq + csel w21, w21, w2, eq +.L1631: cmp w3, w27 - beq .L1520 + beq .L1633 ldrh w1, [x0,74] cmp w1, 2 - bls .L1520 - add x4, x21, :lo12:.LANCHOR0 + bls .L1633 + add x4, x20, :lo12:.LANCHOR0 ubfiz x1, x3, 2, 16 ldrh w0, [x0,92] - ldr x4, [x4,584] + ldr x4, [x4,1096] add w0, w0, 4 ldrh w4, [x4,x1] and w4, w4, 2047 cmp w4, w0 - bgt .L1520 - mov w1, w7 + bgt .L1633 + mov w1, w8 mov x0, x25 - str x5, [x29,96] - str x7, [x29,104] + str x6, [x29,104] + str x8, [x29,112] bl printk - ldr x5, [x29,96] - ldr x7, [x29,104] - mov w28, w5 -.L1520: - ldrh w2, [x23,x20,lsl 1] - cbnz w2, .L1521 - add x0, x21, :lo12:.LANCHOR0 - sxtw x5, w7 - ldr x4, [x0,2880] - add x0, x5, 208 + ldr x6, [x29,104] + ldr x8, [x29,112] + mov w28, w6 +.L1633: + ldrh w2, [x22,x19,lsl 1] + cbnz w2, .L1634 + add x0, x20, :lo12:.LANCHOR0 + sxtw x6, w8 + ldr x4, [x0,3392] + add x0, x6, 208 ldrh w3, [x4,x0,lsl 1] cmp w3, w27 - beq .L1521 + beq .L1634 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1522 + tbz x0, 12, .L1635 ldrh w4, [x4,688] mov x0, x26 - mov w1, w7 - str x5, [x29,104] + mov w1, w8 + str x6, [x29,112] bl printk - ldr x5, [x29,104] -.L1522: - add x1, x21, :lo12:.LANCHOR0 - add x5, x5, 208 - str x1, [x29,96] - str x5, [x29,104] - ldr x0, [x1,2880] - ldrh w0, [x0,x5,lsl 1] + ldr x6, [x29,112] +.L1635: + add x1, x20, :lo12:.LANCHOR0 + add x6, x6, 208 + str x1, [x29,104] + str x6, [x29,112] + ldr x0, [x1,3392] + ldrh w0, [x0,x6,lsl 1] bl ftl_free_sblk - ldr x1, [x29,96] - ldr x5, [x29,104] - ldr x0, [x1,2880] + ldr x1, [x29,104] + ldr x6, [x29,112] + ldr x0, [x1,3392] mov w1, -1 - strh w1, [x0,x5,lsl 1] + strh w1, [x0,x6,lsl 1] ldrh w1, [x0,688] sub w1, w1, #1 strh w1, [x0,688] -.L1521: - add x20, x20, 1 - b .L1516 -.L1541: +.L1634: + add x19, x19, 1 + b .L1629 +.L1654: mov w0, 65535 cmp w28, w0 csel w0, w24, w28, eq @@ -9777,7 +10526,7 @@ pm_free_sblk: ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 368 + ldp x29, x30, [sp], 384 ret .size pm_free_sblk, .-pm_free_sblk .align 2 @@ -9801,35 +10550,35 @@ flash_info_data_init: ldr w0, [x1,#:lo12:.LANCHOR2] stp x19, x20, [sp,16] mov x20, x1 - tbz x0, 12, .L1544 + tbz x0, 12, .L1657 adrp x2, .LANCHOR4 - adrp x0, .LC136 + adrp x0, .LC141 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC136 - mov w1, 105 - add x2, x2, 112 + add x0, x0, :lo12:.LC141 + mov w1, 119 + add x2, x2, 136 bl printk -.L1544: +.L1657: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 mov w2, 2048 - ldr x0, [x19,728] + ldr x0, [x19,1240] bl ftl_memset - ldr x1, [x19,728] + ldr x1, [x19,1240] mov w0, 21321 movk w0, 0x5359, lsl 16 mov w2, 32 str w0, [x1] mov w1, 2032 - ldr x0, [x19,728] + ldr x0, [x19,1240] add x0, x0, 80 str w1, [x0,-72] mov w1, 1 strh w1, [x0,-64] - add x1, x19, 640 + add x1, x19, 1152 bl ftl_memcpy - ldr x0, [x19,728] + ldr x0, [x19,1240] add x1, x20, :lo12:.LANCHOR2 add x1, x1, 8 mov w2, 32 @@ -9844,14 +10593,14 @@ flash_info_data_init: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L1549: +.L1662: cmp w2, w3 - bls .L1551 + bls .L1664 ldr w4, [x1,x3,lsl 2] str w4, [x0,x3,lsl 2] add x3, x3, 1 - b .L1549 -.L1551: + b .L1662 +.L1664: ret .size ftl_memcpy32, .-ftl_memcpy32 .align 2 @@ -9873,8 +10622,8 @@ timer_get_time: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr x1, [x0,#:lo12:jiffies] - adrp x0, .LANCHOR3+1464 - ldr x0, [x0,#:lo12:.LANCHOR3+1464] + adrp x0, .LANCHOR5+184 + ldr x0, [x0,#:lo12:.LANCHOR5+184] sub x0, x1, x0 bl jiffies_to_msecs ldp x29, x30, [sp], 16 @@ -9894,10 +10643,10 @@ StorageSysDataLoad: mov w1, 0 bl ftl_memset bl rknand_device_lock - adrp x0, .LANCHOR3+1472 + adrp x0, .LANCHOR5+192 mov x2, x19 mov w1, 1 - ldr x0, [x0,#:lo12:.LANCHOR3+1472] + ldr x0, [x0,#:lo12:.LANCHOR5+192] ldr x3, [x0,24] mov w0, w20 blr x3 @@ -9917,10 +10666,10 @@ StorageSysDataStore: str x0, [x29,16] str x1, [x29,24] bl rknand_device_lock - adrp x1, .LANCHOR3+1472 + adrp x1, .LANCHOR5+192 ldr x2, [x29,24] ldr x0, [x29,16] - ldr x1, [x1,#:lo12:.LANCHOR3+1472] + ldr x1, [x1,#:lo12:.LANCHOR5+192] ldr x3, [x1,32] mov w1, 1 blr x3 @@ -9940,11 +10689,11 @@ FlashBootVendorRead: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR3+1472 + adrp x3, .LANCHOR5+192 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR3+1472] + ldr x3, [x3,#:lo12:.LANCHOR5+192] ldr x3, [x3,8] blr x3 str x0, [x29,40] @@ -9963,11 +10712,11 @@ FlashBootVendorWrite: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR3+1472 + adrp x3, .LANCHOR5+192 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR3+1472] + ldr x3, [x3,#:lo12:.LANCHOR5+192] ldr x3, [x3,16] blr x3 str x0, [x29,40] @@ -9980,20 +10729,20 @@ FlashBootVendorWrite: .global flash_sram_load_store .type flash_sram_load_store, %function flash_sram_load_store: - adrp x4, .LANCHOR3+1480 + adrp x4, .LANCHOR5+200 mov x6, x0 stp x29, x30, [sp, -16]! uxtw x1, w1 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR3+1480] + ldr x4, [x4,#:lo12:.LANCHOR5+200] add x4, x4, 4096 - cbnz w2, .L1559 + cbnz w2, .L1672 add x1, x4, x1 - b .L1561 -.L1559: + b .L1674 +.L1672: add x0, x4, x1 mov x1, x6 -.L1561: +.L1674: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -10010,13 +10759,13 @@ FlashCs123Init: .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! - adrp x0, .LC137 + adrp x0, .LC142 mov w1, 0 add x29, sp, 0 - add x0, x0, :lo12:.LC137 + add x0, x0, :lo12:.LC142 bl printk - adrp x0, .LANCHOR3+1472 - ldr x0, [x0,#:lo12:.LANCHOR3+1472] + adrp x0, .LANCHOR5+192 + ldr x0, [x0,#:lo12:.LANCHOR5+192] ldr x0, [x0,80] blr x0 ldp x29, x30, [sp], 16 @@ -10026,10 +10775,10 @@ rk_ftl_de_init: .global rk_ftl_cache_write_back .type rk_ftl_cache_write_back, %function rk_ftl_cache_write_back: - adrp x0, .LANCHOR3+1472 + adrp x0, .LANCHOR5+192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR3+1472] + ldr x0, [x0,#:lo12:.LANCHOR5+192] ldr x1, [x0,64] mov w0, 0 blr x1 @@ -10040,10 +10789,10 @@ rk_ftl_cache_write_back: .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: - adrp x0, .LANCHOR3+1472 + adrp x0, .LANCHOR5+192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR3+1472] + ldr x0, [x0,#:lo12:.LANCHOR5+192] ldr x0, [x0,88] blr x0 ldp x29, x30, [sp], 16 @@ -10053,10 +10802,10 @@ rk_nand_suspend: .global rk_nand_resume .type rk_nand_resume, %function rk_nand_resume: - adrp x0, .LANCHOR3+1472 + adrp x0, .LANCHOR5+192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR3+1472] + ldr x0, [x0,#:lo12:.LANCHOR5+192] ldr x0, [x0,96] blr x0 ldp x29, x30, [sp], 16 @@ -10066,10 +10815,10 @@ rk_nand_resume: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR3+1472 + adrp x0, .LANCHOR5+192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR3+1472] + ldr x0, [x0,#:lo12:.LANCHOR5+192] ldr x1, [x0,72] mov w0, 0 blr x1 @@ -10080,10 +10829,10 @@ rk_ftl_get_capacity: .global rk_nandc_get_irq_status .type rk_nandc_get_irq_status, %function rk_nandc_get_irq_status: - adrp x1, .LANCHOR3+1472 + adrp x1, .LANCHOR5+192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR3+1472] + ldr x1, [x1,#:lo12:.LANCHOR5+192] ldr x1, [x1,120] blr x1 ldp x29, x30, [sp], 16 @@ -10093,10 +10842,10 @@ rk_nandc_get_irq_status: .global rknand_proc_ftlread .type rknand_proc_ftlread, %function rknand_proc_ftlread: - adrp x1, .LANCHOR3+1472 + adrp x1, .LANCHOR5+192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR3+1472] + ldr x1, [x1,#:lo12:.LANCHOR5+192] ldr x1, [x1,128] blr x1 ldp x29, x30, [sp], 16 @@ -10106,11 +10855,11 @@ rknand_proc_ftlread: .global FtlRead .type FtlRead, %function FtlRead: - adrp x4, .LANCHOR3+1472 + adrp x4, .LANCHOR5+192 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR3+1472] + ldr x4, [x4,#:lo12:.LANCHOR5+192] ldr x4, [x4,40] blr x4 ldp x29, x30, [sp], 16 @@ -10120,10 +10869,10 @@ FtlRead: .global FtlDiscard .type FtlDiscard, %function FtlDiscard: - adrp x2, .LANCHOR3+1472 + adrp x2, .LANCHOR5+192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR3+1472] + ldr x2, [x2,#:lo12:.LANCHOR5+192] ldr x2, [x2,56] blr x2 ldp x29, x30, [sp], 16 @@ -10133,10 +10882,10 @@ FtlDiscard: .global rk_ftl_garbage_collect .type rk_ftl_garbage_collect, %function rk_ftl_garbage_collect: - adrp x2, .LANCHOR3+1472 + adrp x2, .LANCHOR5+192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR3+1472] + ldr x2, [x2,#:lo12:.LANCHOR5+192] ldr x2, [x2,104] blr x2 ldp x29, x30, [sp], 16 @@ -10146,10 +10895,10 @@ rk_ftl_garbage_collect: .global ReadFlashInfo .type ReadFlashInfo, %function ReadFlashInfo: - adrp x1, .LANCHOR3+1472 + adrp x1, .LANCHOR5+192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR3+1472] + ldr x1, [x1,#:lo12:.LANCHOR5+192] ldr x1, [x1,112] blr x1 ldp x29, x30, [sp], 16 @@ -10163,11 +10912,11 @@ rknand_print_hex: mul w6, w2, w3 mov x7, x0 mov w4, w2 - adrp x0, .LC138 + adrp x0, .LC143 mov w2, 0 add x29, sp, 0 mov x5, x1 - add x0, x0, :lo12:.LC138 + add x0, x0, :lo12:.LC143 mov x1, x7 mov w3, 16 mov w7, w2 @@ -10192,7 +10941,7 @@ hynix_get_read_retry_default: stp x27, x28, [sp,80] mov w1, -82 cmp w19, 2 - ldr x25, [x0,728] + ldr x25, [x0,1240] mov w0, -84 str x3, [x29,136] add x26, x25, 128 @@ -10203,29 +10952,29 @@ hynix_get_read_retry_default: strb w2, [x25,129] strb w1, [x25,130] strb w0, [x25,131] - bne .L1576 + bne .L1689 mov w0, -89 strb w0, [x22,16] adrp x0, .LANCHOR2+425 mov w1, -9 strb w1, [x0,#:lo12:.LANCHOR2+425] - b .L1639 -.L1576: + b .L1752 +.L1689: cmp w19, 3 - bne .L1578 + bne .L1691 mov x5, 0 -.L1579: +.L1692: sub w0, w5, #80 strb w0, [x26,x5] add x5, x5, 1 cmp x5, 8 - bne .L1579 + bne .L1692 mov w27, w5 mov w28, w5 - b .L1577 -.L1578: + b .L1690 +.L1691: cmp w19, 4 - bne .L1580 + bne .L1693 mov w5, -52 strb w5, [x25,128] mov w5, -65 @@ -10241,10 +10990,10 @@ hynix_get_read_retry_default: strb w1, [x25,134] strb w5, [x25,132] strb w0, [x25,135] - b .L1577 -.L1580: + b .L1690 +.L1693: cmp w19, 5 - bne .L1581 + bne .L1694 mov w0, 56 strb w0, [x25,128] mov w0, 57 @@ -10254,10 +11003,10 @@ hynix_get_read_retry_default: strb w0, [x25,130] mov w0, 59 strb w0, [x25,131] - b .L1681 -.L1581: + b .L1794 +.L1694: cmp w19, 6 - bne .L1582 + bne .L1695 mov w0, 14 strb w0, [x25,128] mov w0, 15 @@ -10267,27 +11016,27 @@ hynix_get_read_retry_default: strb w0, [x25,130] mov w0, 17 strb w0, [x25,131] - b .L1681 -.L1582: + b .L1794 +.L1695: cmp w19, 7 - bne .L1583 + bne .L1696 mov x0, 0 -.L1584: +.L1697: sub w1, w0, #80 strb w1, [x26,x0] add x0, x0, 1 cmp x0, 8 - bne .L1584 + bne .L1697 mov w0, -44 mov w27, 12 strb w0, [x25,136] mov w28, 10 mov w0, -43 strb w0, [x25,137] - b .L1577 -.L1583: + b .L1690 +.L1696: cmp w19, 8 - bne .L1639 + bne .L1752 mov w0, 6 strb w0, [x25,128] mov w0, 7 @@ -10299,15 +11048,15 @@ hynix_get_read_retry_default: mov w0, 10 mov w28, 5 strb w0, [x25,132] - b .L1577 -.L1639: + b .L1690 +.L1752: mov w27, 7 -.L1681: +.L1794: mov w28, 4 -.L1577: +.L1690: sub w0, w19, #1 cmp w0, 1 - bhi .L1678 + bhi .L1791 ldr x0, [x29,136] adrp x24, .LANCHOR2 add x24, x24, :lo12:.LANCHOR2 @@ -10315,20 +11064,20 @@ hynix_get_read_retry_default: add x19, x0, :lo12:.LANCHOR0 mov w5, 55 add x24, x24, 408 -.L1585: - ldrb w0, [x19,633] +.L1698: + ldrb w0, [x19,1145] cmp w0, w23 - bls .L1592 + bls .L1705 add x0, x19, x23, sxtw - ldrb w0, [x0,736] + ldrb w0, [x0,1248] mov x20, 160 - ldr x21, [x19,536] + ldr x21, [x19,1048] ubfiz x1, x0, 8, 8 mov x25, 0 madd x20, x0, x20, x22 add x21, x21, x1 add x20, x20, 32 -.L1587: +.L1700: str w5, [x21,2056] str x5, [x29,136] ldrb w0, [x26,x25] @@ -10340,12 +11089,12 @@ hynix_get_read_retry_default: add x25, x25, 1 ldr x5, [x29,136] cmp w28, w25, uxtb - bhi .L1587 + bhi .L1700 mov x0, 0 -.L1588: +.L1701: add w2, w0, 8 mov x1, 0 -.L1589: +.L1702: add x3, x1, x0 add x1, x1, 4 add x3, x24, x3 @@ -10355,10 +11104,10 @@ hynix_get_read_retry_default: add w3, w4, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L1589 + bne .L1702 add x0, x0, 1 cmp x0, 4 - bne .L1588 + bne .L1701 add w23, w23, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -10368,11 +11117,11 @@ hynix_get_read_retry_default: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L1585 -.L1678: + b .L1698 +.L1791: sub w0, w19, #3 cmp w0, 5 - bhi .L1592 + bhi .L1705 mul w0, w28, w27 sub w24, w28, #1 mov w20, 0 @@ -10383,17 +11132,17 @@ hynix_get_read_retry_default: uxtb x24, w24 str w0, [x29,124] sub w0, w19, #5 - adrp x26, .LANCHOR3 + adrp x26, .LANCHOR5 str w0, [x29,132] add x0, x24, 1 str x0, [x29,112] -.L1593: +.L1706: ldr x0, [x29,136] add x1, x0, :lo12:.LANCHOR0 - ldrb w0, [x1,633] + ldrb w0, [x1,1145] cmp w0, w20 - bhi .L1638 -.L1592: + bhi .L1751 +.L1705: strb w28, [x22,1] strb w27, [x22,2] ldp x19, x20, [sp,16] @@ -10403,9 +11152,9 @@ hynix_get_read_retry_default: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L1638: +.L1751: add x0, x1, x20, sxtw - ldrb w24, [x0,736] + ldrb w24, [x0,1248] str x1, [x29,104] mov x21, 160 mov w0, w24 @@ -10414,7 +11163,7 @@ hynix_get_read_retry_default: sxtw x0, w24 ubfiz x2, x24, 8, 8 madd x21, x0, x21, x22 - ldr x0, [x1,536] + ldr x0, [x1,1048] mov w1, 255 str x1, [x29,104] add x21, x21, 32 @@ -10423,7 +11172,7 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready cmp w19, 8 ldr x1, [x29,104] - bne .L1594 + bne .L1707 mov w0, 120 str w0, [x24,2056] str wzr, [x24,2052] @@ -10443,38 +11192,38 @@ hynix_get_read_retry_default: str wzr, [x24,2052] str wzr, [x24,2052] str w1, [x24,2052] - b .L1684 -.L1594: + b .L1797 +.L1707: mov w0, 54 cmp w19, 4 str w0, [x24,2056] - bne .L1596 + bne .L1709 mov w0, 64 str w1, [x24,2052] str w0, [x24,2048] mov w0, 204 - b .L1682 -.L1596: + b .L1795 +.L1709: ldr w0, [x29,132] cmp w0, 1 - bhi .L1598 + bhi .L1711 ldrb w0, [x25,128] str w0, [x24,2052] mov w0, 82 - b .L1683 -.L1598: + b .L1796 +.L1711: cmp w19, 7 - bne .L1597 + bne .L1710 mov w0, 174 str w0, [x24,2052] str wzr, [x24,2048] mov w0, 176 -.L1682: +.L1795: str w0, [x24,2052] mov w0, 77 -.L1683: +.L1796: str w0, [x24,2048] -.L1597: +.L1710: mov w0, 22 str w0, [x24,2056] mov w0, 23 @@ -10487,15 +11236,15 @@ hynix_get_read_retry_default: cmp w19, 6 str wzr, [x24,2052] str wzr, [x24,2052] - bne .L1599 + bne .L1712 mov w0, 31 str w0, [x24,2052] - b .L1600 -.L1599: + b .L1713 +.L1712: str wzr, [x24,2052] -.L1600: +.L1713: mov w0, 2 -.L1684: +.L1797: str w0, [x24,2052] mov w0, 48 str wzr, [x24,2052] @@ -10506,119 +11255,119 @@ hynix_get_read_retry_default: cset w8, ls cmp w19, 8 cset w7, eq - cbnz w8, .L1641 - cbnz w7, .L1641 + cbnz w8, .L1754 + cbnz w7, .L1754 cmp w19, 7 mov w1, 32 mov w0, 2 csel w1, w0, w1, ne - b .L1601 -.L1641: + b .L1714 +.L1754: mov w1, 16 -.L1601: - adrp x0, .LANCHOR3 +.L1714: + adrp x0, .LANCHOR5 mov x9, 0 - add x0, x0, :lo12:.LANCHOR3 - ldr x0, [x0,1488] -.L1602: + add x0, x0, :lo12:.LANCHOR5 + ldr x0, [x0,208] +.L1715: ldr w10, [x24,2048] strb w10, [x0,x9] add x9, x9, 1 cmp w1, w9, uxtb - bhi .L1602 - cbz w7, .L1603 + bhi .L1715 + cbz w7, .L1716 mov w1, 0 -.L1605: +.L1718: ldrb w9, [x0] cmp w9, 50 - beq .L1604 + beq .L1717 ldrb w9, [x0,1] cmp w9, 5 - beq .L1604 + beq .L1717 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L1605 - b .L1606 -.L1604: + bne .L1718 + b .L1719 +.L1717: cmp w1, 7 - bne .L1607 -.L1606: - adrp x0, .LC139 + bne .L1720 +.L1719: + adrp x0, .LC144 mov w1, 0 - add x0, x0, :lo12:.LC139 + add x0, x0, :lo12:.LC144 bl printk -.L1608: - b .L1608 -.L1603: +.L1721: + b .L1721 +.L1716: cmp w19, 7 - bne .L1609 + bne .L1722 mov w1, w7 -.L1611: +.L1724: ldrb w9, [x0] cmp w9, 12 - beq .L1610 + beq .L1723 ldrb w9, [x0,1] cmp w9, 10 - beq .L1610 + beq .L1723 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L1611 - b .L1612 -.L1610: + bne .L1724 + b .L1725 +.L1723: cmp w1, 7 - bne .L1607 -.L1612: - adrp x0, .LC139 + bne .L1720 +.L1725: + adrp x0, .LC144 mov w1, 0 - add x0, x0, :lo12:.LC139 + add x0, x0, :lo12:.LC144 bl printk -.L1613: - b .L1613 -.L1609: +.L1726: + b .L1726 +.L1722: cmp w19, 6 - bne .L1607 + bne .L1720 mov x1, 0 -.L1614: +.L1727: ldrb w9, [x0,x1] cmp w9, 12 - beq .L1607 + beq .L1720 add x9, x0, x1 ldrb w9, [x9,8] cmp w9, 4 - beq .L1607 + beq .L1720 add x1, x1, 1 cmp x1, 8 - bne .L1614 - adrp x0, .LC139 + bne .L1727 + adrp x0, .LC144 mov w1, 0 - add x0, x0, :lo12:.LC139 + add x0, x0, :lo12:.LC144 bl printk -.L1616: - b .L1616 -.L1607: - add x0, x26, :lo12:.LANCHOR3 - ldr x10, [x0,1488] +.L1729: + b .L1729 +.L1720: + add x0, x26, :lo12:.LANCHOR5 + ldr x10, [x0,208] mov x0, 0 -.L1617: +.L1730: ldr w1, [x29,128] cmp w1, w0 - ble .L1686 + ble .L1799 ldr w1, [x24,2048] strb w1, [x10,x0] add x0, x0, 1 - b .L1617 -.L1686: - add x0, x26, :lo12:.LANCHOR3 + b .L1730 +.L1799: + add x0, x26, :lo12:.LANCHOR5 mov w11, w23 mov w9, 8 - ldr x12, [x0,1488] -.L1620: + ldr x12, [x0,208] +.L1733: mov w0, 0 -.L1619: +.L1732: add w1, w0, w11 add w0, w0, 1 sbfiz x1, x1, 1, 32 @@ -10626,93 +11375,93 @@ hynix_get_read_retry_default: ldrh w13, [x12,x1] mvn w13, w13 strh w13, [x12,x1] - bne .L1619 + bne .L1732 ldr w0, [x29,124] subs w9, w9, #1 add w11, w11, w0 - bne .L1620 + bne .L1733 mov x9, 0 mov w17, 1 -.L1621: +.L1734: mov w1, 0 mov w11, w1 -.L1625: +.L1738: lsl w13, w17, w11 mov w15, w9 mov w0, 16 mov w14, 0 -.L1623: +.L1736: ldrh w16, [x12,w15,sxtw 1] add w15, w15, w23 and w16, w16, w13 cmp w16, w13 csinc w14, w14, w14, ne subs w0, w0, #1 - bne .L1623 + bne .L1736 cmp w14, 8 - bls .L1624 + bls .L1737 orr w1, w1, w13 uxth w1, w1 -.L1624: +.L1737: add w11, w11, 1 cmp w11, 16 - bne .L1625 + bne .L1738 strh w1, [x12,x9,lsl 1] add x9, x9, 1 cmp w23, w9 - bgt .L1621 - add x1, x26, :lo12:.LANCHOR3 + bgt .L1734 + add x1, x26, :lo12:.LANCHOR5 mov x9, 0 mov w11, w9 - ldr x1, [x1,1488] -.L1628: + ldr x1, [x1,208] +.L1741: ldr w12, [x1,x9] add x9, x9, 4 cmp w12, wzr csinc w11, w11, w11, ne cmp x9, 32 - bne .L1628 + bne .L1741 cmp w11, 7 - ble .L1629 - adrp x0, .LC140 + ble .L1742 + adrp x0, .LC145 mov w2, 1 - add x0, x0, :lo12:.LC140 + add x0, x0, :lo12:.LC145 mov w3, 1024 bl rknand_print_hex - adrp x0, .LC139 + adrp x0, .LC144 mov w1, 0 - add x0, x0, :lo12:.LC139 + add x0, x0, :lo12:.LC144 bl printk -.L1630: - b .L1630 -.L1629: +.L1743: + b .L1743 +.L1742: cmp w19, 6 mov w9, 4 - beq .L1631 + beq .L1744 cmp w19, 7 mov w9, 10 - beq .L1631 + beq .L1744 cmp w7, wzr mov w9, 5 mov w1, 8 csel w9, w1, w9, eq -.L1631: +.L1744: mov w11, 0 -.L1632: +.L1745: mov x1, 0 -.L1633: +.L1746: add w12, w0, w1 ldrb w13, [x10,x1] add x1, x1, 1 cmp w28, w1, uxtb strb w13, [x21,w12,sxtw] - bhi .L1633 + bhi .L1746 add w11, w11, 1 ldr x1, [x29,112] cmp w11, w27 add w0, w0, w9 add x10, x10, x1 - blt .L1632 + blt .L1745 mov w21, 255 str w21, [x24,2056] str x7, [x29,96] @@ -10720,7 +11469,7 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready ldr x8, [x29,104] ldr x7, [x29,96] - cbz w8, .L1635 + cbz w8, .L1748 mov w0, 54 str w0, [x24,2056] ldrb w0, [x25,128] @@ -10735,17 +11484,17 @@ hynix_get_read_retry_default: str w21, [x24,2052] str w21, [x24,2052] str w21, [x24,2052] - b .L1685 -.L1635: + b .L1798 +.L1748: mov w0, 190 - cbnz w7, .L1685 + cbnz w7, .L1798 mov w0, 56 -.L1685: +.L1798: str w0, [x24,2056] add w20, w20, 1 bl nandc_wait_flash_ready uxtb w20, w20 - b .L1593 + b .L1706 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 .global flash_get_read_retry_tbl @@ -10758,9 +11507,9 @@ flash_get_read_retry_tbl: sub w1, w0, #1 uxtb w1, w1 cmp w1, 7 - bhi .L1687 + bhi .L1800 bl hynix_get_read_retry_default -.L1687: +.L1800: ldp x29, x30, [sp], 16 ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -10771,90 +11520,83 @@ nandc_xfer_done: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp,32] - adrp x21, .LANCHOR3 - add x0, x21, :lo12:.LANCHOR3 + adrp x21, .LANCHOR5 + add x0, x21, :lo12:.LANCHOR5 stp x19, x20, [sp,16] stp x23, x24, [sp,48] adrp x19, .LANCHOR0 - strb wzr, [x0,1496] + strb wzr, [x0,216] add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,516] + ldrb w1, [x0,1028] cmp w1, 9 - bne .L1690 - ldr x22, [x0,536] + bne .L1803 + ldr x22, [x0,1048] ldr w0, [x22,16] str w0, [x29,64] ldr w20, [x22,48] ubfx x20, x20, 1, 1 - cbnz w20, .L1711 - adrp x21, .LC144 - adrp x23, .LC143 - add x21, x21, :lo12:.LC144 - add x23, x23, :lo12:.LC143 - b .L1692 -.L1711: + cbnz w20, .L1824 + adrp x21, .LC148 + adrp x23, .LC149 + add x21, x21, :lo12:.LC148 + add x23, x23, :lo12:.LC149 + b .L1805 +.L1824: mov w20, 0 -.L1691: +.L1804: ldr w1, [x22,64] ldr w0, [x29,64] ubfx x1, x1, 16, 6 ubfx x0, x0, 22, 6 cmp w1, w0 - bge .L1694 + bge .L1807 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,536] + ldr x0, [x0,1048] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1693 + tbz x0, 13, .L1806 ldr w0, [x29,72] - tbz x0, 17, .L1693 + tbz x0, 17, .L1806 ldr w1, [x29,72] - adrp x0, .LC141 - add x0, x0, :lo12:.LC141 + adrp x0, .LC146 + add x0, x0, :lo12:.LC146 ubfx x1, x1, 17, 1 bl printk - b .L1694 -.L1693: + b .L1807 +.L1806: ldr w0, [x29,64] add w20, w20, 1 ubfx x0, x0, 22, 6 cmp w20, w0, lsl 12 - bne .L1695 + bne .L1808 ldr w2, [x22,64] - adrp x0, .LC142 + adrp x0, .LC147 ldr w3, [x29,64] mov w1, w20 + add x0, x0, :lo12:.LC147 ubfx x2, x2, 16, 5 - add x0, x0, :lo12:.LC142 ubfx x3, x3, 22, 6 - add x21, x21, :lo12:.LANCHOR3 + add x21, x21, :lo12:.LANCHOR5 bl printk - add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC143 - add x0, x0, :lo12:.LC143 - mov w2, 4 - mov w3, 64 - ldr x1, [x1,536] - bl rknand_print_hex ldr w1, [x29,72] mov w0, 1 - strb w0, [x21,1496] - tbnz x1, 13, .L1694 + strb w0, [x21,216] + tbnz x1, 13, .L1807 mov x0, 35160 movk x0, 0x41, lsl 16 bl __const_udelay - b .L1694 -.L1695: + b .L1807 +.L1808: mov x0, 5 mov x1, 10 bl usleep_range - b .L1691 -.L1694: + b .L1804 +.L1807: add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 680 + add x20, x20, 1192 ldr w0, [x20,32] - cbz w0, .L1699 + cbz w0, .L1812 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -10865,37 +11607,37 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1736 -.L1701: + b .L1849 +.L1814: add x24, x19, :lo12:.LANCHOR0 add w20, w20, 1 - ldr x0, [x24,536] + ldr x0, [x24,1048] ldr w0, [x0,16] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1700 + cbnz w0, .L1813 ldr w2, [x29,64] mov w1, w20 ldr w3, [x22,64] mov x0, x21 ubfx x3, x3, 16, 6 bl printk - ldr x1, [x24,536] + ldr x1, [x24,1048] mov x0, x23 mov w2, 4 mov w3, 64 bl rknand_print_hex -.L1700: +.L1813: mov x0, 5 mov x1, 10 bl usleep_range -.L1692: +.L1805: ldr w0, [x29,64] - tbz x0, 20, .L1701 + tbz x0, 20, .L1814 add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 680 + add x20, x20, 1192 ldr w0, [x20,32] - cbz w0, .L1699 + cbz w0, .L1812 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -10906,49 +11648,49 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1735 -.L1690: - ldr x21, [x0,536] + b .L1848 +.L1803: + ldr x21, [x0,1048] ldr w0, [x21,8] str w0, [x29,64] ldr w20, [x21,16] ubfx x20, x20, 1, 1 - cbnz w20, .L1712 - adrp x22, .LC144 - adrp x23, .LC143 - add x22, x22, :lo12:.LC144 - add x23, x23, :lo12:.LC143 - b .L1704 -.L1712: - adrp x22, .LC142 - adrp x23, .LC143 + cbnz w20, .L1825 + adrp x22, .LC148 + adrp x23, .LC149 + add x22, x22, :lo12:.LC148 + add x23, x23, :lo12:.LC149 + b .L1817 +.L1825: + adrp x22, .LC147 + adrp x23, .LC149 mov w20, 0 - add x22, x22, :lo12:.LC142 - add x23, x23, :lo12:.LC143 -.L1703: + add x22, x22, :lo12:.LC147 + add x23, x23, :lo12:.LC149 +.L1816: ldr w2, [x21,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1706 + bge .L1819 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,536] + ldr x0, [x0,1048] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1705 + tbz x0, 13, .L1818 ldr w0, [x29,72] - tbz x0, 17, .L1705 + tbz x0, 17, .L1818 ldr w1, [x29,72] - adrp x0, .LC145 - add x0, x0, :lo12:.LC145 + adrp x0, .LC150 + add x0, x0, :lo12:.LC150 bl printk - b .L1706 -.L1705: + b .L1819 +.L1818: add w20, w20, 1 and w0, w20, 16777215 - cbnz w0, .L1707 + cbnz w0, .L1820 ldr w2, [x21,28] mov w1, w20 ldr w3, [x29,64] @@ -10960,18 +11702,18 @@ nandc_xfer_done: mov x0, x23 mov w2, 4 mov w3, 64 - ldr x1, [x1,536] + ldr x1, [x1,1048] bl rknand_print_hex -.L1707: +.L1820: mov x0, 5 mov x1, 10 bl usleep_range - b .L1703 -.L1706: + b .L1816 +.L1819: add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 680 + add x20, x20, 1192 ldr w0, [x20,32] - cbz w0, .L1699 + cbz w0, .L1812 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -10982,39 +11724,39 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1736: +.L1849: mov w2, 0 - b .L1734 -.L1710: + b .L1847 +.L1823: add x24, x19, :lo12:.LANCHOR0 add w20, w20, 1 - ldr x0, [x24,536] + ldr x0, [x24,1048] ldr w0, [x0,8] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1709 + cbnz w0, .L1822 ldr w2, [x29,64] mov w1, w20 ldr w3, [x21,28] mov x0, x22 ubfx x3, x3, 16, 5 bl printk - ldr x1, [x24,536] + ldr x1, [x24,1048] mov x0, x23 mov w2, 4 mov w3, 64 bl rknand_print_hex -.L1709: +.L1822: mov x0, 5 mov x1, 10 bl usleep_range -.L1704: +.L1817: ldr w0, [x29,64] - tbz x0, 20, .L1710 + tbz x0, 20, .L1823 add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 680 + add x20, x20, 1192 ldr w0, [x20,32] - cbz w0, .L1699 + cbz w0, .L1812 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -11025,15 +11767,15 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1735: +.L1848: mov w2, 1 -.L1734: +.L1847: bl rknand_dma_unmap_single -.L1699: +.L1812: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - str wzr, [x19,712] + str wzr, [x19,1224] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 80 ret @@ -11059,19 +11801,19 @@ nandc_xfer: mov w0, w20 bl nandc_xfer_done mov w0, 0 - cbnz w20, .L1767 + cbnz w20, .L1880 adrp x19, .LANCHOR0 add x1, x19, :lo12:.LANCHOR0 - ldrb w2, [x1,516] + ldrb w2, [x1,1028] cmp w2, 9 - bne .L1739 - ldr x5, [x1,536] + bne .L1852 + ldr x5, [x1,1048] lsr w22, w22, 2 mov w4, 1 mov w3, w0 -.L1740: +.L1853: cmp w3, w22 - bcs .L1776 + bcs .L1889 uxtw x1, w3 add x1, x1, 84 ldr w1, [x5,x1,lsl 2] @@ -11083,33 +11825,33 @@ nandc_xfer: and w1, w1, w2 and w4, w4, w1 ldr w1, [x29,72] - tbnz x1, 2, .L1759 + tbnz x1, 2, .L1872 ldr w1, [x29,72] - tbnz x1, 18, .L1759 + tbnz x1, 18, .L1872 ldr w2, [x29,72] ldr w1, [x29,72] ubfx x2, x2, 3, 7 ubfx x1, x1, 19, 7 cmp w2, w1 ldr w1, [x29,72] - ble .L1742 + ble .L1855 ubfx x1, x1, 3, 7 - b .L1743 -.L1742: + b .L1856 +.L1855: ubfx x1, x1, 19, 7 -.L1743: +.L1856: cmp w0, w1 csel w0, w0, w1, cs - b .L1741 -.L1759: + b .L1854 +.L1872: mov w0, -1 -.L1741: +.L1854: add w3, w3, 1 - b .L1740 -.L1776: + b .L1853 +.L1889: add x22, x19, :lo12:.LANCHOR0 cmp w4, wzr - ldr x1, [x22,536] + ldr x1, [x22,1048] ldr w20, [x1] mov w1, 512 csel w0, w0, w1, eq @@ -11117,31 +11859,31 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1746 - adrp x0, .LC146 + bne .L1859 + adrp x0, .LC151 mov w1, w20 - add x0, x0, :lo12:.LC146 + add x0, x0, :lo12:.LC151 orr w20, w20, 131072 bl printk - ldr x0, [x22,536] + ldr x0, [x22,1048] str w20, [x0] mov w0, -1 -.L1746: - tbz x20, 13, .L1747 - adrp x1, .LANCHOR3+1496 - ldrb w1, [x1,#:lo12:.LANCHOR3+1496] - cbz w1, .L1747 - adrp x0, .LC147 +.L1859: + tbz x20, 13, .L1860 + adrp x1, .LANCHOR5+216 + ldrb w1, [x1,#:lo12:.LANCHOR5+216] + cbz w1, .L1860 + adrp x0, .LC152 mov w1, w20 - add x0, x0, :lo12:.LC147 + add x0, x0, :lo12:.LC152 add x19, x19, :lo12:.LANCHOR0 bl printk - ldr x0, [x19,536] + ldr x0, [x19,1048] mov w1, 1 str w1, [x0,16] - b .L1748 -.L1739: - ldrb w0, [x1,724] + b .L1861 +.L1852: + ldrb w0, [x1,1236] mov w4, 128 lsr w5, w22, 1 mov w2, 1 @@ -11149,11 +11891,11 @@ nandc_xfer: mov w0, 64 csel w4, w0, w4, cc mov w3, w20 -.L1750: +.L1863: cmp w3, w5 add w6, w20, w4 - bcs .L1777 - ldr x0, [x1,680] + bcs .L1890 + ldr x0, [x1,1192] and x20, x20, 4294967292 ubfiz x7, x3, 2, 30 add w3, w3, 1 @@ -11169,24 +11911,24 @@ nandc_xfer: add w7, w2, 2 add w2, w2, 4 strb w0, [x23,x7] - b .L1750 -.L1777: + b .L1863 +.L1890: add x0, x19, :lo12:.LANCHOR0 mov w2, 0 lsr w22, w22, 2 - ldr x6, [x0,536] + ldr x6, [x0,1048] mov w0, w2 -.L1752: +.L1865: cmp w2, w22 - bcs .L1778 + bcs .L1891 uxtw x1, w2 add x1, x1, 8 ldr w1, [x6,x1,lsl 2] str w1, [x29,72] ldr w1, [x29,72] - tbnz x1, 2, .L1762 + tbnz x1, 2, .L1875 ldr w1, [x29,72] - tbnz x1, 15, .L1762 + tbnz x1, 15, .L1875 ldr w3, [x29,72] ubfx x5, x3, 3, 5 ldr w3, [x29,72] @@ -11199,60 +11941,60 @@ nandc_xfer: orr w1, w4, w1, lsl 5 cmp w3, w1 ldr w1, [x29,72] - bls .L1754 + bls .L1867 ubfx x3, x1, 3, 5 ldr w1, [x29,72] ubfx x1, x1, 27, 1 - b .L1775 -.L1754: + b .L1888 +.L1867: ubfx x3, x1, 16, 5 ldr w1, [x29,72] ubfx x1, x1, 29, 1 -.L1775: +.L1888: orr w1, w3, w1, lsl 5 cmp w0, w1 csel w0, w0, w1, cs - b .L1753 -.L1762: + b .L1866 +.L1875: mov w0, -1 -.L1753: +.L1866: add w2, w2, 1 - b .L1752 -.L1778: + b .L1865 +.L1891: add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,536] + ldr x1, [x19,1048] str wzr, [x1,16] ldr w20, [x1] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1747 - adrp x0, .LC148 + bne .L1860 + adrp x0, .LC153 mov w1, w20 - add x0, x0, :lo12:.LC148 + add x0, x0, :lo12:.LC153 orr w20, w20, 131072 bl printk - ldr x0, [x19,536] + ldr x0, [x19,1048] str w20, [x0] - b .L1748 -.L1747: + b .L1861 +.L1860: cmn w0, #1 - beq .L1767 + beq .L1880 ldr w1, [x23] cmn w1, #1 - bne .L1767 + bne .L1880 ldr w1, [x23,4] cmn w1, #1 - bne .L1767 + bne .L1880 ldr w1, [x21] cmn w1, #1 mov w1, 512 csel w0, w0, w1, ne - b .L1767 -.L1748: + b .L1880 +.L1861: mov w0, -1 -.L1767: +.L1880: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -11263,62 +12005,67 @@ nandc_xfer: .global flash_read_page .type flash_read_page, %function flash_read_page: - stp x29, x30, [sp, -80]! - mov w5, w1 + stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 + str x27, [sp,80] + add x27, x21, :lo12:.LANCHOR0 uxtb w22, w0 - add x0, x21, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] stp x19, x20, [sp,16] - mov x25, x2 - mov x24, x3 - ldrb w19, [x0,744] - mov w26, w4 - ldr x20, [x0,536] mov w0, 24 + ldrb w19, [x27,1257] + stp x23, x24, [sp,48] sub w19, w0, w19 mov w0, 1 lsl w19, w0, w19 - adrp x0, .LANCHOR2 + ubfx x23, x1, 24, 2 sub w19, w19, #1 - ubfx x23, x5, 24, 2 + mov x24, x3 + stp x25, x26, [sp,64] + ldr x20, [x27,1048] + mov x25, x2 + mov w26, w4 and w19, w1, w19 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1780 - adrp x0, .LC149 - mov w1, w22 - add x0, x0, :lo12:.LC149 - mov w2, w23 - mov w3, w5 - bl printk -.L1780: bl nandc_wait_flash_ready mov w0, w22 bl nandc_cs - cbnz w23, .L1781 + cbnz w23, .L1893 mov w0, w22 bl zftl_flash_enter_slc_mode - b .L1782 -.L1781: - add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,624] - ldrb w1, [x1,12] - cmp w1, 3 - bne .L1783 - ldrb w0, [x0,756] - cbnz w0, .L1783 + b .L1894 +.L1893: + ldr x0, [x27,1136] + ldrb w0, [x0,12] + cmp w0, 3 + bne .L1895 + ldrb w0, [x27,1268] + cbnz w0, .L1895 + ldrb w0, [x27,1269] + cbnz w0, .L1895 sxtw x0, w22 add x0, x0, 8 add x0, x20, x0, lsl 8 str w23, [x0,8] - b .L1782 -.L1783: + b .L1894 +.L1895: mov w0, w22 bl zftl_flash_exit_slc_mode -.L1782: +.L1894: + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0,1136] + ldrb w0, [x1,7] + cmp w0, 1 + bne .L1896 + ldrb w0, [x1,12] + cmp w0, 2 + bne .L1896 + sxtw x0, w22 + mov w2, 38 + add x0, x0, 8 + add x0, x20, x0, lsl 8 + str w2, [x0,8] +.L1896: ubfiz x5, x22, 8, 8 and w0, w19, 255 add x20, x20, x5 @@ -11330,23 +12077,30 @@ flash_read_page: str w0, [x20,2052] lsr w0, w19, 16 str w0, [x20,2052] + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,1256] + cbz w0, .L1897 + lsr w0, w19, 24 + str w0, [x20,2052] +.L1897: mov w0, 48 str w0, [x20,2056] - cbz w23, .L1784 - add x21, x21, :lo12:.LANCHOR0 - ldr x0, [x21,624] - ldrb w0, [x0,12] + cbz w23, .L1898 + ldrb w0, [x1,12] cmp w0, 3 - bne .L1784 - ldrb w0, [x21,756] - cbnz w0, .L1784 + bne .L1898 + add x21, x21, :lo12:.LANCHOR0 + ldrb w0, [x21,1268] + cbnz w0, .L1898 + ldrb w0, [x21,1269] + cbnz w0, .L1898 add w19, w19, w19, lsl 1 sub w0, w19, #1 add w0, w0, w23 - b .L1795 -.L1784: + b .L1909 +.L1898: mov w0, w19 -.L1795: +.L1909: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 @@ -11364,12 +12118,13 @@ flash_read_page: mov w19, w0 mov w0, 0 bl nandc_de_cs + ldr x27, [sp,80] mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 96 ret .size flash_read_page, .-flash_read_page .align 2 @@ -11389,7 +12144,7 @@ micron_read_retrial: stp x27, x28, [sp,80] mov w22, w1 mov x23, x2 - ldrb w0, [x20,724] + ldrb w0, [x20,1236] mov x24, x3 uxtb x25, w19 mov w21, 0 @@ -11397,27 +12152,31 @@ micron_read_retrial: asr w0, w0, 2 str w0, [x29,156] bl nandc_wait_flash_ready - ldr x0, [x20,536] + mov w0, w19 + bl zftl_flash_enter_slc_mode + mov w0, w19 + bl zftl_flash_exit_slc_mode + ldr x0, [x20,1048] str x0, [x29,144] - adrp x0, .LC150 - add x0, x0, :lo12:.LC150 + adrp x0, .LC154 + add x0, x0, :lo12:.LC154 str x0, [x29,128] lsl x0, x25, 8 str x0, [x29,120] - adrp x0, .LC151 - add x0, x0, :lo12:.LC151 + adrp x0, .LC155 + add x0, x0, :lo12:.LC155 str x0, [x29,112] -.L1797: +.L1911: lsl x0, x25, 8 mov w20, 0 mov w28, -1 - adrp x26, .LANCHOR3 + adrp x26, .LANCHOR5 str x0, [x29,136] -.L1798: - add x0, x26, :lo12:.LANCHOR3 - ldrb w0, [x0,1512] +.L1912: + add x0, x26, :lo12:.LANCHOR5 + ldrb w0, [x0,232] cmp w20, w0 - bcs .L1802 + bcs .L1916 ldr x0, [x29,144] add w27, w20, 1 ldr x1, [x29,136] @@ -11443,7 +12202,7 @@ micron_read_retrial: mov w6, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1799 + tbz x0, 12, .L1913 ldr x0, [x29,128] mov w4, w6 mov w1, w20 @@ -11452,24 +12211,24 @@ micron_read_retrial: str x6, [x29,104] bl printk ldr x6, [x29,104] -.L1799: +.L1913: cmn w6, #1 - beq .L1800 - adrp x0, .LANCHOR3 + beq .L1914 + adrp x0, .LANCHOR5 cmn w28, #1 - add x0, x0, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LANCHOR5 csel w28, w28, w6, ne - ldr x23, [x0,1488] - ldr x24, [x0,1504] + ldr x23, [x0,208] + ldr x24, [x0,224] ldr w0, [x29,156] cmp w6, w0 - bcc .L1810 -.L1800: + bcc .L1924 +.L1914: mov w20, w27 - b .L1798 -.L1810: + b .L1912 +.L1924: mov w28, w6 -.L1802: +.L1916: ldr x0, [x29,144] ldr x1, [x29,120] add x26, x0, x1 @@ -11485,46 +12244,46 @@ micron_read_retrial: str wzr, [x26,2048] str wzr, [x26,2048] cmp w28, w0 - bcc .L1804 + bcc .L1918 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1804: +.L1918: cmn w28, #1 cset w26, eq - cbnz w26, .L1812 + cbnz w26, .L1926 cmp w28, 256 cset w1, eq - cbz w1, .L1805 -.L1812: + cbz w1, .L1919 +.L1926: ldr x0, [x29,112] mov w1, w20 mov w2, w22 mov w3, w20 mov w4, w28 bl printk - cbz w26, .L1807 - cbnz w21, .L1807 + cbz w26, .L1921 + cbnz w21, .L1921 mov w0, w19 mov w1, 3 mov w21, 1 bl mt_auto_read_calibration_config - b .L1797 -.L1807: - cbz w21, .L1808 + b .L1911 +.L1921: + cbz w21, .L1922 mov w0, w19 mov w1, 0 bl mt_auto_read_calibration_config cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq - b .L1808 -.L1805: - cbz w21, .L1808 + b .L1922 +.L1919: + cbz w21, .L1922 mov w0, w19 mov w28, 256 bl mt_auto_read_calibration_config -.L1808: +.L1922: bl nandc_wait_flash_ready mov w0, w28 ldp x19, x20, [sp,16] @@ -11560,9 +12319,9 @@ toshiba_3d_read_retrial: mov w3, 56 add x0, x0, 8 mov w21, 10 - ldr x25, [x1,536] + ldr x25, [x1,1048] lsl x0, x0, 8 - ldrb w1, [x1,725] + ldrb w1, [x1,1237] add x23, x25, x0 cmp w1, 36 csel w2, w3, w2, ne @@ -11570,19 +12329,19 @@ toshiba_3d_read_retrial: cmp w1, 36 mov w1, 26 csel w21, w21, w1, ne - cbnz w19, .L1833 + cbnz w19, .L1947 str x0, [x29,112] - adrp x0, .LC152 - add x0, x0, :lo12:.LC152 + adrp x0, .LC156 + add x0, x0, :lo12:.LC156 mov w19, -1 mov w28, 1 str x0, [x29,104] -.L1840: +.L1954: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,725] + ldrb w0, [x0,1237] cmp w0, 36 mov x0, x23 - bne .L1834 + bne .L1948 mov w1, w28 mov w2, 0 bl toshiba_tlc_set_rr_para @@ -11590,11 +12349,11 @@ toshiba_3d_read_retrial: mov w1, 93 add x0, x25, x0 str w1, [x0,8] - b .L1835 -.L1834: + b .L1949 +.L1948: mov w1, w28 bl toshiba_3d_set_slc_rr_para -.L1835: +.L1949: ldr w4, [x29,124] mov w0, w22 mov w1, w24 @@ -11604,7 +12363,7 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1836 + tbz x0, 4, .L1950 ldr x0, [x29,104] mov w3, w4 mov w1, w28 @@ -11612,66 +12371,66 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1836: +.L1950: cmn w4, #1 - beq .L1837 - adrp x0, .LANCHOR3 + beq .L1951 + adrp x0, .LANCHOR5 cmn w19, #1 - add x0, x0, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LANCHOR5 csel w19, w19, w4, ne - ldr x26, [x0,1488] - ldr x27, [x0,1504] + ldr x26, [x0,208] + ldr x27, [x0,224] add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,724] + ldrb w0, [x0,1236] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1856 -.L1837: + bcc .L1970 +.L1951: add w28, w28, 1 cmp w28, w21 - bne .L1840 - b .L1839 -.L1856: + bne .L1954 + b .L1953 +.L1970: mov w21, w28 mov w19, w4 -.L1839: +.L1953: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,725] + ldrb w0, [x0,1237] cmp w0, 36 mov x0, x23 - bne .L1841 + bne .L1955 mov w1, 0 mov w2, w1 - b .L1879 -.L1841: + b .L1993 +.L1955: mov w1, 0 bl toshiba_3d_set_slc_rr_para - b .L1842 -.L1833: + b .L1956 +.L1947: mov x28, x0 - adrp x0, .LC153 - add x0, x0, :lo12:.LC153 + adrp x0, .LC157 + add x0, x0, :lo12:.LC157 mov w19, -1 mov w21, 1 str x0, [x29,104] -.L1849: +.L1963: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,725] + ldrb w0, [x0,1237] cmp w0, 36 mov x0, x23 - bne .L1843 + bne .L1957 mov w1, w21 mov w2, 1 bl toshiba_tlc_set_rr_para add x0, x25, x28 mov w1, 93 - b .L1878 -.L1843: + b .L1992 +.L1957: mov w1, w21 bl toshiba_3d_set_tlc_rr_para add x0, x25, x28 mov w1, 38 -.L1878: +.L1992: str w1, [x0,8] mov x2, x26 mov w0, w22 @@ -11682,7 +12441,7 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1845 + tbz x0, 4, .L1959 ldr x0, [x29,104] mov w3, w4 mov w1, w21 @@ -11690,47 +12449,47 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1845: +.L1959: cmn w4, #1 - beq .L1846 - adrp x0, .LANCHOR3 + beq .L1960 + adrp x0, .LANCHOR5 cmn w19, #1 - add x0, x0, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LANCHOR5 csel w19, w19, w4, ne - ldr x26, [x0,1488] - ldr x27, [x0,1504] + ldr x26, [x0,208] + ldr x27, [x0,224] add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,724] + ldrb w0, [x0,1236] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1857 -.L1846: + bcc .L1971 +.L1960: ldr w0, [x29,112] add w21, w21, 1 cmp w21, w0 - bne .L1849 - b .L1848 -.L1857: + bne .L1963 + b .L1962 +.L1971: mov w19, w4 -.L1848: +.L1962: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,725] + ldrb w0, [x0,1237] cmp w0, 36 mov x0, x23 - bne .L1850 + bne .L1964 mov w1, 0 mov w2, 1 -.L1879: +.L1993: bl toshiba_tlc_set_rr_para - b .L1842 -.L1850: + b .L1956 +.L1964: mov w1, 0 bl toshiba_3d_set_tlc_rr_para -.L1842: +.L1956: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,725] + ldrb w0, [x0,1237] cmp w0, 36 - bne .L1851 + bne .L1965 ubfiz x22, x22, 8, 8 mov w0, 85 add x25, x25, x22 @@ -11739,29 +12498,29 @@ toshiba_3d_read_retrial: str wzr, [x25,2052] str wzr, [x25,2048] str w0, [x25,2056] -.L1851: +.L1965: add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,724] + ldrb w0, [x20,1236] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1852 + bcc .L1966 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1852: +.L1966: cmn w19, #1 - beq .L1858 + beq .L1972 cmp w19, 256 - bne .L1853 -.L1858: - adrp x0, .LC154 + bne .L1967 +.L1972: + adrp x0, .LC158 mov w1, w21 - add x0, x0, :lo12:.LC154 + add x0, x0, :lo12:.LC158 mov w2, w24 mov w3, w21 mov w4, w19 bl printk -.L1853: +.L1967: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -11780,161 +12539,165 @@ toshiba_read_retrial: add x29, sp, 0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] + uxtb w21, w0 + str w1, [x29,124] + mov x26, x2 + str w4, [x29,120] stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - uxtb w23, w0 - str w1, [x29,124] - mov x26, x2 mov x27, x3 - str w4, [x29,120] - adrp x19, .LANCHOR0 bl nandc_wait_flash_ready + mov w0, w21 + adrp x19, .LANCHOR0 mov w25, 0 + bl zftl_flash_enter_slc_mode + mov w0, w21 + bl zftl_flash_exit_slc_mode add x1, x19, :lo12:.LANCHOR0 - sxtw x0, w23 - add x21, x0, 8 + sxtw x0, w21 + add x22, x0, 8 str x0, [x29,112] - ldrb w0, [x1,725] - ldr x22, [x1,536] + ldrb w0, [x1,1237] + ldr x23, [x1,1048] sub w0, w0, #67 - add x21, x22, x21, lsl 8 + add x22, x23, x22, lsl 8 uxtb w0, w0 cmp w0, 1 - bls .L1881 - ldrb w0, [x1,672] - cbz w0, .L1882 + bls .L1995 + ldrb w0, [x1,1184] + cbz w0, .L1996 mov w0, 1 mov w25, 1 bl nandc_set_if_mode -.L1882: - ubfiz x0, x23, 8, 8 +.L1996: + ubfiz x0, x21, 8, 8 mov w1, 92 - add x0, x22, x0 + add x0, x23, x0 str w1, [x0,2056] mov w1, 197 str w1, [x0,2056] -.L1881: +.L1995: ldr x0, [x29,112] mov w20, 1 mov w24, -1 add x0, x0, 8 lsl x0, x0, 8 str x0, [x29,104] - ubfiz x0, x23, 8, 8 + ubfiz x0, x21, 8, 8 str x0, [x29,96] -.L1883: - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldrb w0, [x0,1512] +.L1997: + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + ldrb w0, [x0,232] add w0, w0, 1 cmp w20, w0 - bcs .L1914 + bcs .L2028 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 - ldrb w0, [x0,725] + ldrb w0, [x0,1237] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - mov x0, x21 - bhi .L1884 + mov x0, x22 + bhi .L1998 bl sandisk_set_rr_para - b .L1885 -.L1884: + b .L1999 +.L1998: bl toshiba_set_rr_para -.L1885: +.L1999: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,725] + ldrb w0, [x0,1237] cmp w0, 34 - bne .L1886 - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldrb w0, [x0,1512] + bne .L2000 + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + ldrb w0, [x0,232] sub w0, w0, #3 cmp w20, w0 - bne .L1886 + bne .L2000 ldr x0, [x29,104] mov w1, 179 - add x0, x22, x0 + add x0, x23, x0 str w1, [x0,8] -.L1886: +.L2000: ldr x0, [x29,96] mov w1, 38 ldr w4, [x29,120] mov x2, x26 - add x0, x22, x0 + add x0, x23, x0 mov x3, x27 str w1, [x0,2056] mov w1, 93 str w1, [x0,2056] - mov w0, w23 + mov w0, w21 ldr w1, [x29,124] bl flash_read_page cmn w0, #1 mov w28, w0 - beq .L1889 + beq .L2003 cmn w24, #1 csel w24, w24, w0, ne - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldr x26, [x0,1488] - ldr x27, [x0,1504] + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + ldr x26, [x0,208] + ldr x27, [x0,224] add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,724] + ldrb w0, [x0,1236] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1891 -.L1889: + bcc .L2005 +.L2003: add w20, w20, 1 - b .L1883 -.L1914: + b .L1997 +.L2028: mov w28, w24 -.L1891: +.L2005: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x0,725] + ldrb w0, [x0,1237] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - mov x0, x21 - bhi .L1893 + mov x0, x22 + bhi .L2007 bl sandisk_set_rr_para - b .L1894 -.L1893: + b .L2008 +.L2007: bl toshiba_set_rr_para -.L1894: +.L2008: ldr x0, [x29,112] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 - add x22, x22, x0, lsl 8 + add x23, x23, x0, lsl 8 mov w0, 255 - str w0, [x22,8] - ldrb w0, [x19,724] + str w0, [x23,8] + ldrb w0, [x19,1236] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1895 + bcc .L2009 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1895: +.L2009: cmn w28, #1 - beq .L1901 + beq .L2015 cmp w28, 256 - bne .L1896 -.L1901: - adrp x0, .LC154 + bne .L2010 +.L2015: + adrp x0, .LC158 ldr w2, [x29,124] - add x0, x0, :lo12:.LC154 + add x0, x0, :lo12:.LC158 mov w1, w20 mov w3, w20 mov w4, w28 bl printk -.L1896: +.L2010: bl nandc_wait_flash_ready - cbz w25, .L1898 + cbz w25, .L2012 mov w0, 4 bl nandc_set_if_mode -.L1898: +.L2012: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11945,6 +12708,350 @@ toshiba_read_retrial: ret .size toshiba_read_retrial, .-toshiba_read_retrial .align 2 + .global ymtc_3d_read_retrial + .type ymtc_3d_read_retrial, %function +ymtc_3d_read_retrial: + stp x29, x30, [sp, -96]! + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + uxtb x22, w0 + mov w24, w1 + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + mov x25, x2 + mov x26, x3 + mov w27, w4 + bl nandc_wait_flash_ready + mov w0, w22 + adrp x21, .LANCHOR0 + mov x23, x22 + mov w19, -1 + bl zftl_flash_enter_slc_mode + mov w20, 1 + mov w0, w22 + add x22, x22, 8 + adrp x28, .LANCHOR5 + bl zftl_flash_exit_slc_mode + add x0, x21, :lo12:.LANCHOR0 + ldr x0, [x0,1048] + add x22, x0, x22, lsl 8 + ubfx x0, x24, 24, 2 + cbnz w0, .L2039 +.L2034: + mov x0, x22 + mov w1, w20 + bl ymtc_3d_set_slc_rr_para + mov w0, w23 + mov w1, w24 + mov x2, x25 + mov x3, x26 + mov w4, w27 + bl flash_read_page + cmn w0, #1 + beq .L2031 + add x1, x28, :lo12:.LANCHOR5 + cmn w19, #1 + csel w19, w19, w0, ne + ldr x25, [x1,208] + ldr x26, [x1,224] + add x1, x21, :lo12:.LANCHOR0 + ldrb w1, [x1,1236] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L2043 +.L2031: + add w20, w20, 1 + cmp w20, 10 + bne .L2034 + b .L2033 +.L2043: + mov w19, w0 +.L2033: + mov x0, x22 + mov w1, 0 + bl ymtc_3d_set_slc_rr_para + b .L2035 +.L2059: + add x1, x28, :lo12:.LANCHOR5 + cmn w19, #1 + csel w19, w19, w0, ne + ldr x25, [x1,208] + ldr x26, [x1,224] + add x1, x21, :lo12:.LANCHOR0 + ldrb w1, [x1,1236] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L2044 +.L2036: + add w20, w20, 1 + cmp w20, 51 + beq .L2038 +.L2039: + mov x0, x22 + mov w1, w20 + bl ymtc_3d_set_tlc_rr_para + mov w0, w23 + mov w1, w24 + mov x2, x25 + mov x3, x26 + mov w4, w27 + bl flash_read_page + cmn w0, #1 + bne .L2059 + b .L2036 +.L2044: + mov w19, w0 +.L2038: + mov x0, x22 + mov w1, 0 + bl ymtc_3d_set_tlc_rr_para +.L2035: + add x21, x21, :lo12:.LANCHOR0 + ldrb w0, [x21,1236] + add w0, w0, w0, lsl 1 + cmp w19, w0, lsr 2 + bcc .L2040 + cmn w19, #1 + mov w0, 256 + csel w19, w19, w0, eq +.L2040: + cmn w19, #1 + beq .L2045 + cmp w19, 256 + bne .L2041 +.L2045: + adrp x0, .LC159 + mov w1, w20 + add x0, x0, :lo12:.LC159 + mov w2, w24 + mov w3, w20 + mov w4, w19 + bl printk +.L2041: + bl nandc_wait_flash_ready + mov w0, w19 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 96 + ret + .size ymtc_3d_read_retrial, .-ymtc_3d_read_retrial + .align 2 + .global samsung_read_retrial + .type samsung_read_retrial, %function +samsung_read_retrial: + stp x29, x30, [sp, -144]! + add x29, sp, 0 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + mov w22, w1 + uxtb w23, w0 + stp x25, x26, [sp,64] + str w4, [x29,140] + mov x25, x2 + mov x26, x3 + adrp x21, .LANCHOR0 + stp x19, x20, [sp,16] + stp x27, x28, [sp,80] + bl nandc_wait_flash_ready + uxtb x19, w23 + mov w0, w23 + bl zftl_flash_enter_slc_mode + mov w0, w23 + bl zftl_flash_exit_slc_mode + add x0, x21, :lo12:.LANCHOR0 + adrp x5, .LANCHOR4 + add x5, x5, :lo12:.LANCHOR4 + ldr x24, [x0,1048] + ubfx x0, x22, 24, 2 + cbnz w0, .L2061 + add x0, x5, 185 + add x5, x5, 160 + str x0, [x29,120] + mov w0, 1 + sub w0, w0, w5 + str w0, [x29,112] + lsl x0, x19, 8 + str x0, [x29,128] + add x19, x24, x0 + adrp x0, .LC160 + add x0, x0, :lo12:.LC160 + mov w27, -1 + str x0, [x29,104] +.L2066: + ldr w0, [x29,112] + str x5, [x29,96] + add w20, w0, w5 + mov w0, 239 + str w0, [x19,2056] + mov w0, 141 + str w0, [x19,2052] + ldrsb w0, [x5,1] + str w0, [x19,2048] + str wzr, [x19,2048] + str wzr, [x19,2048] + str wzr, [x19,2048] + bl nandc_wait_flash_ready + ldr w4, [x29,140] + mov w0, w23 + mov w1, w22 + mov x2, x25 + mov x3, x26 + bl flash_read_page + mov w28, w0 + adrp x0, .LANCHOR2 + ldr x5, [x29,96] + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L2062 + ldr x0, [x29,104] + mov w1, w20 + mov w2, w22 + mov w3, w28 + bl printk + ldr x5, [x29,96] +.L2062: + cmn w28, #1 + beq .L2063 + adrp x0, .LANCHOR5 + cmn w27, #1 + add x0, x0, :lo12:.LANCHOR5 + csel w27, w27, w28, ne + ldr x25, [x0,208] + ldr x26, [x0,224] + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,1236] + add w0, w0, w0, lsl 1 + cmp w28, w0, lsr 2 + bcc .L2076 +.L2063: + ldr x0, [x29,120] + add x5, x5, 1 + cmp x5, x0 + bne .L2066 + mov w20, 26 + b .L2065 +.L2076: + mov w27, w28 +.L2065: + ldr x0, [x29,128] + add x19, x24, x0 + mov w0, 239 + str w0, [x19,2056] + mov w0, 141 + b .L2098 +.L2061: + lsl x0, x19, 8 + str x0, [x29,128] + add x19, x24, x0 + adrp x0, .LC161 + add x0, x0, :lo12:.LC161 + add x28, x5, 192 + mov w27, -1 + mov w20, 1 + str x0, [x29,120] +.L2072: + mov w0, 239 + str w0, [x19,2056] + mov w0, 137 + str w0, [x19,2052] + ldrb w0, [x28,4] + str w0, [x19,2048] + ldrb w0, [x28,5] + str w0, [x19,2048] + ldrb w0, [x28,6] + str w0, [x19,2048] + ldrb w0, [x28,7] + str w0, [x19,2048] + bl nandc_wait_flash_ready + ldr w4, [x29,140] + mov w0, w23 + mov w1, w22 + mov x2, x25 + mov x3, x26 + bl flash_read_page + mov w4, w0 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L2068 + ldr x0, [x29,120] + mov w3, w4 + mov w1, w20 + mov w2, w22 + str x4, [x29,112] + bl printk + ldr x4, [x29,112] +.L2068: + cmn w4, #1 + beq .L2069 + adrp x0, .LANCHOR5 + cmn w27, #1 + add x0, x0, :lo12:.LANCHOR5 + csel w27, w27, w4, ne + ldr x25, [x0,208] + ldr x26, [x0,224] + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,1236] + add w0, w0, w0, lsl 1 + cmp w4, w0, lsr 2 + bcc .L2077 +.L2069: + add w20, w20, 1 + add x28, x28, 4 + cmp w20, 26 + bne .L2072 + b .L2071 +.L2077: + mov w27, w4 +.L2071: + ldr x0, [x29,128] + add x19, x24, x0 + mov w0, 239 + str w0, [x19,2056] + mov w0, 137 +.L2098: + str w0, [x19,2052] + add x21, x21, :lo12:.LANCHOR0 + str wzr, [x19,2048] + str wzr, [x19,2048] + str wzr, [x19,2048] + str wzr, [x19,2048] + bl nandc_wait_flash_ready + ldrb w0, [x21,1236] + add w0, w0, w0, lsl 1 + cmp w27, w0, lsr 2 + bcc .L2073 + cmn w27, #1 + mov w0, 256 + csel w27, w27, w0, eq +.L2073: + cmn w27, #1 + beq .L2078 + cmp w27, 256 + bne .L2074 +.L2078: + adrp x0, .LC162 + mov w1, w20 + add x0, x0, :lo12:.LC162 + mov w2, w22 + mov w3, w20 + mov w4, w27 + bl printk +.L2074: + bl nandc_wait_flash_ready + mov w0, w27 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 144 + ret + .size samsung_read_retrial, .-samsung_read_retrial + .align 2 .global hynix_read_retrial .type hynix_read_retrial, %function hynix_read_retrial: @@ -11953,30 +13060,34 @@ hynix_read_retrial: stp x27, x28, [sp,80] adrp x28, .LANCHOR0 stp x21, x22, [sp,32] - uxtb x21, w0 + uxtb x22, w0 add x0, x28, :lo12:.LANCHOR0 stp x25, x26, [sp,64] stp x19, x20, [sp,16] stp x23, x24, [sp,48] mov x25, x2 mov w23, w1 - ldr x5, [x0,728] + ldr x5, [x0,1240] mov x26, x3 str w4, [x29,124] - mov x22, x21 + mov x21, x22 add x27, x5, 112 mov w19, -1 - add x0, x27, x21 + add x0, x27, x22 ldrb w24, [x27,2] ldrb w20, [x0,8] bl nandc_wait_flash_ready - mov w6, 0 - adrp x7, .LANCHOR3 -.L1916: - cmp w6, w24 - bcs .L1920 - add w20, w20, 1 mov w0, w22 + bl zftl_flash_enter_slc_mode + mov w0, w22 + bl zftl_flash_exit_slc_mode + mov w6, 0 + adrp x7, .LANCHOR5 +.L2100: + cmp w6, w24 + bcs .L2104 + add w20, w20, 1 + mov w0, w21 str x7, [x29,104] uxtb w20, w20 str x6, [x29,112] @@ -11985,7 +13096,7 @@ hynix_read_retrial: mov w1, w20 bl hynix_set_rr_para ldr w4, [x29,124] - mov w0, w22 + mov w0, w21 mov w1, w23 mov x2, x25 mov x3, x26 @@ -11993,47 +13104,47 @@ hynix_read_retrial: cmn w0, #1 ldr x6, [x29,112] ldr x7, [x29,104] - beq .L1918 - add x1, x7, :lo12:.LANCHOR3 + beq .L2102 + add x1, x7, :lo12:.LANCHOR5 cmn w19, #1 csel w19, w19, w0, ne - ldr x25, [x1,1488] - ldr x26, [x1,1504] + ldr x25, [x1,208] + ldr x26, [x1,224] add x1, x28, :lo12:.LANCHOR0 - ldrb w1, [x1,724] + ldrb w1, [x1,1236] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1925 -.L1918: + bcc .L2109 +.L2102: add w6, w6, 1 - b .L1916 -.L1925: + b .L2100 +.L2109: mov w19, w0 -.L1920: +.L2104: add x28, x28, :lo12:.LANCHOR0 - add x21, x27, x21 - ldrb w0, [x28,724] - strb w20, [x21,8] + add x22, x27, x22 + ldrb w0, [x28,1236] + strb w20, [x22,8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1922 + bcc .L2106 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1922: +.L2106: cmn w19, #1 - beq .L1926 + beq .L2110 cmp w19, 256 - bne .L1923 -.L1926: - adrp x0, .LC155 + bne .L2107 +.L2110: + adrp x0, .LC163 mov w1, w6 - add x0, x0, :lo12:.LC155 + add x0, x0, :lo12:.LC163 mov w2, w23 mov w3, w6 mov w4, w19 bl printk -.L1923: +.L2107: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -12063,16 +13174,16 @@ flash_ddr_tuning_read: bl nandc_get_ddr_para mov w27, 0 str w0, [x29,116] - adrp x0, .LC156 + adrp x0, .LC164 str w27, [x29,124] - add x0, x0, :lo12:.LC156 + add x0, x0, :lo12:.LC164 mov w25, w27 mov w28, w27 mov w19, 1024 mov w26, 6 mov w21, -1 str x0, [x29,104] -.L1941: +.L2125: mov w0, w26 bl nandc_set_ddr_para ldr w4, [x29,120] @@ -12084,7 +13195,7 @@ flash_ddr_tuning_read: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1936 + tbz x0, 4, .L2120 ldr x0, [x29,104] mov w3, w4 mov w1, w26 @@ -12092,76 +13203,79 @@ flash_ddr_tuning_read: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1936: +.L2120: add w0, w19, 1 cmp w4, w0 - bhi .L1937 - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldr x24, [x0,1488] - ldr x23, [x0,1504] + bhi .L2121 + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + ldr x24, [x0,208] + ldr x23, [x0,224] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,724] + ldrb w0, [x0,1236] cmp w4, w0, lsr 2 - bcs .L1947 + bcs .L2131 add w28, w28, 1 cmp w28, 7 - bls .L1947 + bls .L2131 sub w27, w26, w28 mov w19, w4 mov w21, 0 - b .L1939 -.L1937: + b .L2123 +.L2121: cmp w25, w28 - bcs .L1948 + bcs .L2132 sub w0, w27, w28 cmp w28, 7 str w0, [x29,124] - bhi .L1940 + bhi .L2124 mov w25, w28 - b .L1948 -.L1947: + b .L2132 +.L2131: mov w27, w26 mov w19, w4 mov w21, 0 - b .L1938 -.L1948: + b .L2122 +.L2132: mov w28, 0 -.L1938: +.L2122: add w26, w26, 2 cmp w26, 50 - bne .L1941 -.L1939: + bne .L2125 +.L2123: ldr w0, [x29,124] cmp w25, w28 csel w27, w27, w0, ls -.L1940: - cbz w27, .L1942 - adrp x0, .LANCHOR0+724 +.L2124: + cbz w27, .L2126 + adrp x0, .LANCHOR0+1236 mov w1, 3 - ldrb w0, [x0,#:lo12:.LANCHOR0+724] + ldrb w0, [x0,#:lo12:.LANCHOR0+1236] udiv w0, w0, w1 cmp w19, w0 - bcs .L1942 - adrp x0, .LC157 + bcs .L2126 + adrp x0, .LC165 mov w1, w27 - add x0, x0, :lo12:.LC157 + add x0, x0, :lo12:.LC165 bl printk mov w0, w27 - b .L1957 -.L1942: + b .L2144 +.L2126: ldrb w0, [x29,116] -.L1957: +.L2144: bl nandc_set_ddr_para - cbz w21, .L1944 - adrp x0, .LC158 + cbz w21, .L2128 + adrp x0, .LANCHOR0 + add x27, x0, :lo12:.LANCHOR0 + mov x26, x0 + ldrb w1, [x27,1304] + tbz x1, 0, .L2128 + adrp x0, .LC166 mov w2, w22 mov w1, w20 - add x0, x0, :lo12:.LC158 - adrp x26, .LANCHOR0 + add x0, x0, :lo12:.LC166 bl printk - add x27, x26, :lo12:.LANCHOR0 mov w0, w20 bl flash_reset mov w0, 1 @@ -12170,7 +13284,7 @@ flash_ddr_tuning_read: bl nandc_set_if_mode add x0, x27, x20, sxtw mov w1, 2 - strb w1, [x0,752] + strb w1, [x0,1264] mov w0, w20 bl zftl_flash_enter_slc_mode ldr w4, [x29,120] @@ -12180,33 +13294,33 @@ flash_ddr_tuning_read: mov w0, w20 bl flash_read_page mov w19, w0 - adrp x0, .LC159 + adrp x0, .LC167 mov w1, w20 - add x0, x0, :lo12:.LC159 + add x0, x0, :lo12:.LC167 mov w2, w22 mov w3, w19 bl printk - ldrb w0, [x27,724] + ldrb w0, [x27,1236] cmp w19, w0 - bhi .L1949 - adrp x1, .LANCHOR3 - add x1, x1, :lo12:.LANCHOR3 - ldr w0, [x1,1516] + bhi .L2133 + adrp x1, .LANCHOR5 + add x1, x1, :lo12:.LANCHOR5 + ldr w0, [x1,236] add w0, w0, 1 - str w0, [x1,1516] + str w0, [x1,236] cmp w0, 100 - bls .L1945 - strb wzr, [x27,672] - b .L1944 -.L1949: + bls .L2129 + strb wzr, [x27,1184] + b .L2128 +.L2133: mov w19, w21 -.L1945: - add x26, x26, :lo12:.LANCHOR0 - ldrb w0, [x26,792] +.L2129: + add x20, x26, :lo12:.LANCHOR0 + ldrb w0, [x20,1304] bl flash_set_interface_mode - ldrb w0, [x26,792] + ldrb w0, [x20,1304] bl nandc_set_if_mode -.L1944: +.L2128: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12232,60 +13346,60 @@ flash_read_page_en: stp x21, x22, [sp,32] mov x24, x2 mov x23, x3 - ldrb w0, [x0,633] + ldrb w0, [x0,1145] mov w22, w4 cmp w0, w25 - bhi .L1959 + bhi .L2146 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 405 - add x1, x1, 136 + mov w2, 428 + add x1, x1, 296 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1959: +.L2146: add x0, x20, :lo12:.LANCHOR0 add x1, x0, x25, sxtw - ldrb w21, [x1,736] - ldrb w4, [x0,633] + ldrb w21, [x1,1248] + ldrb w4, [x0,1145] cmp w25, w4 - bcc .L1960 + bcc .L2147 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L1986 - adrp x0, .LC160 + tbz x0, 6, .L2173 + adrp x0, .LC168 mov w1, w21 - add x0, x0, :lo12:.LC160 + add x0, x0, :lo12:.LC168 mov w2, w25 mov w3, w19 bl printk -.L1986: +.L2173: mov w0, -1 - b .L1985 -.L1960: + b .L2172 +.L2147: ubfx x1, x19, 24, 2 - cbnz w1, .L1963 + cbnz w1, .L2150 adrp x1, .LANCHOR0 ldrb w1, [x1,#:lo12:.LANCHOR0] - cbz w1, .L1964 + cbz w1, .L2151 ldrb w0, [x0,1] - cbz w0, .L1963 -.L1964: + cbz w0, .L2150 +.L2151: add x1, x20, :lo12:.LANCHOR0 ldrh w2, [x1,2] udiv w0, w19, w2 mul w0, w0, w2 ldrb w2, [x1,1] sub w19, w19, w0 - cbz w2, .L1965 + cbz w2, .L2152 add w19, w0, w19, lsl 1 - b .L1963 -.L1965: + b .L2150 +.L2152: add x1, x1, 4 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1963: +.L2150: mov w0, w21 mov w1, w19 mov x2, x24 @@ -12293,28 +13407,28 @@ flash_read_page_en: mov w4, w22 bl flash_read_page cmn w0, #1 - bne .L1985 + bne .L2172 add x25, x20, :lo12:.LANCHOR0 - ldrb w26, [x25,720] - cbnz w26, .L1967 -.L1970: - adrp x0, .LANCHOR3+1520 - ldr x5, [x0,#:lo12:.LANCHOR3+1520] - cbnz x5, .L1968 - b .L1969 -.L1967: + ldrb w26, [x25,1232] + cbnz w26, .L2154 +.L2157: + adrp x0, .LANCHOR5+240 + ldr x5, [x0,#:lo12:.LANCHOR5+240] + cbnz x5, .L2155 + b .L2156 +.L2154: mov w0, w21 mov w1, w19 mov x2, x24 mov x3, x23 mov w4, w22 - strb wzr, [x25,720] + strb wzr, [x25,1232] bl flash_read_page - strb w26, [x25,720] + strb w26, [x25,1232] cmn w0, #1 - beq .L1970 - b .L1985 -.L1968: + beq .L2157 + b .L2172 +.L2155: mov w0, w21 mov w1, w19 mov x2, x24 @@ -12322,25 +13436,25 @@ flash_read_page_en: mov w4, w22 blr x5 cmn w0, #1 - bne .L1985 -.L1969: + bne .L2172 +.L2156: add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC161 - add x0, x0, :lo12:.LC161 + adrp x0, .LC169 + add x0, x0, :lo12:.LC169 mov w1, 0 mov w2, w19 mov w3, -1 - ldrb w4, [x20,720] + ldrb w4, [x20,1232] bl printk - ldrb w0, [x20,672] - cbz w0, .L1986 + ldrb w0, [x20,1184] + cbz w0, .L2173 mov w0, w21 mov w1, w19 mov x2, x24 mov x3, x23 mov w4, w22 bl flash_ddr_tuning_read -.L1985: +.L2172: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12356,11 +13470,11 @@ flash_get_last_written_page: add x29, sp, 0 stp x23, x24, [sp,48] uxtb w23, w0 - adrp x0, .LANCHOR3+1380 + adrp x0, .LANCHOR5+92 stp x19, x20, [sp,16] adrp x20, .LANCHOR2 mov x24, x2 - ldrh w19, [x0,#:lo12:.LANCHOR3+1380] + ldrh w19, [x0,#:lo12:.LANCHOR5+92] add x0, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x25, x26, [sp,64] @@ -12377,12 +13491,12 @@ flash_get_last_written_page: add w1, w26, w19 bl flash_read_page_en cmp w0, 512 - bne .L1988 + bne .L2175 mov w28, 0 mov w5, 2 -.L1989: +.L2176: cmp w28, w19 - bgt .L1988 + bgt .L2175 add w0, w28, w19 mov x2, x24 mov x3, x21 @@ -12394,24 +13508,24 @@ flash_get_last_written_page: bl flash_read_page_en cmp w0, 512 ldr x5, [x29,104] - bne .L1990 + bne .L2177 sub w19, w20, #1 sxth w19, w19 - b .L1989 -.L1990: + b .L2176 +.L2177: add w20, w20, 1 sxth w28, w20 - b .L1989 -.L1988: + b .L2176 +.L2175: ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L1993 - adrp x0, .LC162 + tbz x0, 12, .L2180 + adrp x0, .LC170 ldr w3, [x21] - add x0, x0, :lo12:.LC162 + add x0, x0, :lo12:.LC170 mov w1, w22 mov w2, w19 bl printk -.L1993: +.L2180: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12425,26 +13539,26 @@ flash_get_last_written_page: .global flash_get_last_written_page_ext .type flash_get_last_written_page_ext, %function flash_get_last_written_page_ext: - adrp x6, .LANCHOR0 - uxth w7, w0 - add x6, x6, :lo12:.LANCHOR0 - mov w5, 24 + uxth w6, w0 + adrp x0, .LANCHOR0+1257 stp x29, x30, [sp, -16]! - mov x9, x1 - mov x8, x2 + mov w5, 24 + mov x8, x1 add x29, sp, 0 - ldrb w0, [x6,744] + ldrb w0, [x0,#:lo12:.LANCHOR0+1257] + mov x7, x2 mov w4, w3 - mov x2, x9 - mov x3, x8 + mov x2, x8 sub w5, w5, w0 - ldrh w0, [x6,3536] + adrp x0, .LANCHOR3+1232 + mov x3, x7 + ldrh w0, [x0,#:lo12:.LANCHOR3+1232] sub w0, w5, w0 mov w5, 1 lsl w5, w5, w0 - asr w0, w7, w0 + asr w0, w6, w0 sub w1, w5, #1 - and w1, w7, w1 + and w1, w6, w1 bl flash_get_last_written_page ldp x29, x30, [sp], 16 ret @@ -12457,46 +13571,46 @@ flash_ddr_para_scan: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - adrp x20, .LANCHOR3 + adrp x20, .LANCHOR5 stp x21, x22, [sp,32] add x21, x19, :lo12:.LANCHOR0 mov w22, 1 stp x23, x24, [sp,48] uxtb w24, w0 mov w23, w1 - ldrb w0, [x21,792] - add x20, x20, :lo12:.LANCHOR3 - strb w22, [x21,672] + ldrb w0, [x21,1304] + add x20, x20, :lo12:.LANCHOR5 + strb w22, [x21,1184] bl flash_set_interface_mode - ldrb w0, [x21,792] + ldrb w0, [x21,1304] bl nandc_set_if_mode - ldr x2, [x20,1528] + ldr x2, [x20,248] mov w1, w23 - ldr x3, [x20,1536] + ldr x3, [x20,256] mov w4, 4 mov w0, w24 bl flash_ddr_tuning_read - ldr x2, [x20,1528] + ldr x2, [x20,248] mov w0, w24 - ldr x3, [x20,1536] + ldr x3, [x20,256] mov w1, w23 mov w4, 4 bl flash_read_page cmn w0, #1 - bne .L1999 - ldrb w0, [x21,792] - tbz x0, 0, .L1999 + bne .L2186 + ldrb w0, [x21,1304] + tbz x0, 0, .L2186 mov w0, 1 bl flash_set_interface_mode mov w0, w22 bl nandc_set_if_mode - strb wzr, [x21,672] - b .L2000 -.L1999: + strb wzr, [x21,1184] + b .L2187 +.L2186: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - strb w0, [x19,672] -.L2000: + strb w0, [x19,1184] +.L2187: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12505,250 +13619,59 @@ flash_ddr_para_scan: ret .size flash_ddr_para_scan, .-flash_ddr_para_scan .align 2 - .type id_block_read_data.constprop.30, %function -id_block_read_data.constprop.30: - stp x29, x30, [sp, -240]! - add x29, sp, 0 - stp x25, x26, [sp,64] - mov w26, w0 - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - add x0, x0, 8 - mov w27, w1 - ldrb w1, [x0,9] - mov x21, x2 - str w1, [x29,164] - mov w22, 0 - ldrh w0, [x0,26] - mov w23, 4 - mov w25, w22 - mul w0, w1, w0 - adrp x1, .LANCHOR0 - str x1, [x29,120] - add x19, x1, :lo12:.LANCHOR0 - uxth w0, w0 - ldrb w2, [x19,720] - str w2, [x29,136] - udiv w2, w26, w0 - strb wzr, [x19,720] - msub w0, w2, w0, w26 - str w0, [x29,172] - sub w0, w26, w0 - str w0, [x29,160] - ldr w0, [x29,172] - and w0, w0, 3 - str w0, [x29,168] - adrp x0, .LC163 - add x0, x0, :lo12:.LC163 - str x0, [x29,112] -.L2005: - cmp w22, w27 - bcs .L2042 - ldr w0, [x29,168] - ldrb w1, [x19,634] - sub w0, w23, w0 - uxth w0, w0 - str w0, [x29,144] - ldr w0, [x29,172] - add w20, w22, w0 - add x0, x19, 4 - udiv w20, w20, w23 - and w20, w20, 65535 - ldrh w0, [x0,w20,sxtw 1] - cbnz w1, .L2006 - mov w20, w0 - b .L2007 -.L2006: - ldrb w1, [x19,1] - lsl w0, w20, 1 - cmp w1, wzr - csel w20, w0, w20, ne -.L2007: - ldr w1, [x29,160] - ldr w0, [x29,164] - ldrb w28, [x19,632] - madd w0, w20, w0, w1 - ldr w1, [x29,168] - str w0, [x29,140] - add w24, w0, w1 - ldr x0, [x19,624] - ldrb w0, [x0,9] - udiv w24, w24, w0 - ldrb w0, [x19,724] - str w0, [x29,132] - mov w0, w28 - bl nandc_bch_sel -.L2008: - mov w0, 0 - mov w1, w24 - mov x2, x21 - add x3, x29, 176 - mov w4, w23 - bl flash_read_page - cmn w0, #1 - mov w20, w0 - bne .L2015 - ldrb w6, [x19,720] - cbnz w6, .L2010 -.L2013: - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldr x6, [x0,1520] - cbnz x6, .L2011 - b .L2012 -.L2010: - mov w0, 0 - mov w1, w24 - mov x2, x21 - add x3, x29, 176 - mov w4, w23 - str x6, [x29,104] - strb wzr, [x19,720] - bl flash_read_page - cmn w0, #1 - ldr x6, [x29,104] - strb w6, [x19,720] - beq .L2013 - b .L2041 -.L2011: - mov w0, 0 - mov w1, w24 - mov x2, x21 - add x3, x29, 176 - mov w4, w23 - blr x6 - cmn w0, #1 - bne .L2041 -.L2012: - ldrb w0, [x19,672] - cbz w0, .L2015 - mov w0, 0 - mov w1, w24 - mov x2, x21 - add x3, x29, 176 - mov w4, w23 - bl flash_ddr_tuning_read -.L2041: - mov w20, w0 -.L2015: - cmn w20, #1 - bne .L2016 - cmp w28, 16 - beq .L2016 - mov w0, 16 - mov w28, 16 - bl nandc_bch_sel - b .L2008 -.L2016: - ldr w0, [x29,132] - bl nandc_bch_sel - cmn w20, #1 - ldr w0, [x29,160] - csinv w25, w25, wzr, ne - cmp w22, wzr - cset w1, eq - cmp w0, w26 - cset w0, eq - tst w1, w0 - beq .L2018 - cbnz w25, .L2018 - ldr w1, [x21] - mov w0, 18766 - movk w0, 0x464e, lsl 16 - cmp w1, w0 - bne .L2018 - ldr w0, [x29,144] - ldrb w23, [x21,17] - add w27, w27, w0 - b .L2019 -.L2018: - ldr x0, [x29,144] - mov w2, w22 - ldr w1, [x29,140] - ubfiz x0, x0, 9, 16 - ldr w3, [x29,176] - add x21, x21, x0 - ldr w4, [x29,180] - ldr x0, [x29,112] - bl printk - str wzr, [x29,168] -.L2019: - ldr w0, [x29,144] - add w22, w0, w22 - uxth w22, w22 - b .L2005 -.L2042: - ldr x0, [x29,120] - ldrb w1, [x29,136] - add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,720] - mov w0, w25 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 240 - ret - .size id_block_read_data.constprop.30, .-id_block_read_data.constprop.30 - .align 2 .global flash_prog_page .type flash_prog_page, %function flash_prog_page: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x23, x24, [sp,48] - uxtb x23, w0 - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - str x27, [sp,80] + adrp x23, .LANCHOR0 + uxtb x24, w0 + add x0, x23, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] + stp x27, x28, [sp,80] stp x19, x20, [sp,16] - adrp x21, .LANCHOR2 - mov x22, x23 - ldrb w19, [x0,744] - add x23, x23, 8 - ldr x20, [x0,536] + adrp x22, .LANCHOR2 + mov x21, x24 + ldrb w19, [x0,1257] + add x24, x24, 8 + ldr x20, [x0,1048] mov w0, 24 sub w19, w0, w19 mov w0, 1 lsl w19, w0, w19 - ldr w0, [x21,#:lo12:.LANCHOR2] - mov w24, w1 + ldr w0, [x22,#:lo12:.LANCHOR2] + mov w25, w1 sub w19, w19, #1 - mov x25, x3 - mov x26, x2 + mov x26, x3 + mov x27, x2 mov w3, w4 - add x23, x20, x23, lsl 8 + add x24, x20, x24, lsl 8 and w19, w1, w19 - ubfx x27, x24, 24, 2 - tbz x0, 4, .L2044 - adrp x0, .LC164 - mov w2, w27 - add x0, x0, :lo12:.LC164 + ubfx x28, x25, 24, 2 + tbz x0, 4, .L2192 + adrp x0, .LC171 + mov w2, w28 + add x0, x0, :lo12:.LC171 bl printk -.L2044: +.L2192: bl nandc_wait_flash_ready - mov w0, w22 + mov w0, w21 bl hynix_reconfig_rr_para - mov w0, w22 + mov w0, w21 bl nandc_cs - mov w0, w22 - cbnz w27, .L2045 + mov w0, w21 + cbnz w28, .L2193 bl zftl_flash_enter_slc_mode - b .L2046 -.L2045: + b .L2194 +.L2193: bl zftl_flash_exit_slc_mode -.L2046: - ubfiz x5, x22, 8, 8 +.L2194: + ubfiz x5, x21, 8, 8 mov w0, 128 add x20, x20, x5 - add x21, x21, :lo12:.LANCHOR2 + add x23, x23, :lo12:.LANCHOR0 str w0, [x20,2056] and w0, w19, 255 str wzr, [x20,2052] @@ -12758,37 +13681,43 @@ flash_prog_page: str w0, [x20,2052] lsr w0, w19, 16 str w0, [x20,2052] + ldrb w0, [x23,1256] + cbz w0, .L2195 + lsr w0, w19, 24 + str w0, [x20,2052] +.L2195: mov w0, w19 + add x22, x22, :lo12:.LANCHOR2 bl nandc_set_seed - ldrb w2, [x21,17] + ldrb w2, [x22,17] mov w1, 1 - mov x3, x26 - mov x4, x25 - mov w0, w22 + mov x3, x27 + mov x4, x26 + mov w0, w21 bl nandc_xfer mov w0, 16 str w0, [x20,2056] bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - mov x0, x23 + mov x0, x24 bl flash_read_status mov w19, w0 - mov w0, w22 + mov w0, w21 bl nandc_de_cs and w2, w19, 4 - tbz x19, 2, .L2047 - adrp x0, .LC165 - mov w1, w24 - add x0, x0, :lo12:.LC165 + tbz x19, 2, .L2196 + adrp x0, .LC172 + mov w1, w25 + add x0, x0, :lo12:.LC172 bl printk mov w2, -1 -.L2047: +.L2196: mov w0, w2 - ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] ldp x29, x30, [sp], 96 ret .size flash_prog_page, .-flash_prog_page @@ -12800,15 +13729,15 @@ flash_test_blk: mov w2, 32 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR3 + adrp x19, .LANCHOR5 uxth w20, w1 - add x19, x19, :lo12:.LANCHOR3 + add x19, x19, :lo12:.LANCHOR5 mov w1, 165 stp x21, x22, [sp,32] uxtb w22, w0 - ldr x0, [x19,1488] + ldr x0, [x19,208] bl ftl_memset - ldr x0, [x19,1504] + ldr x0, [x19,224] mov w1, 90 mov w2, 8 bl ftl_memset @@ -12819,43 +13748,43 @@ flash_test_blk: mov w1, w20 bl flash_erase_block cmn w0, #1 - bne .L2055 -.L2057: + bne .L2207 +.L2209: mov w19, -1 - b .L2056 -.L2055: + b .L2208 +.L2207: adrp x21, .LANCHOR2 - ldr x2, [x19,1488] + ldr x2, [x19,208] add x21, x21, :lo12:.LANCHOR2 - ldr x3, [x19,1504] + ldr x3, [x19,224] mov w0, w22 mov w1, w20 add x21, x21, 8 ldrb w4, [x21,9] bl flash_prog_page cmn w0, #1 - beq .L2057 - ldr x2, [x19,1488] + beq .L2209 + ldr x2, [x19,208] mov w0, w22 - ldr x3, [x19,1504] + ldr x3, [x19,224] mov w1, w20 ldrb w4, [x21,9] bl flash_read_page_en cmn w0, #1 - beq .L2057 - ldr x0, [x19,1488] + beq .L2209 + ldr x0, [x19,208] ldr w1, [x0] mov w0, 42405 bfi w0, w0, 16, 16 cmp w1, w0 - bne .L2057 - ldr x0, [x19,1504] + bne .L2209 + ldr x0, [x19,224] ldr w1, [x0] mov w0, 23130 bfi w0, w0, 16, 16 cmp w1, w0 csetm w19, ne -.L2056: +.L2208: mov w1, w20 mov w0, w22 bl flash_erase_block @@ -12866,102 +13795,218 @@ flash_test_blk: ret .size flash_test_blk, .-flash_test_blk .align 2 + .global flash_start_one_pass_page_prog + .type flash_start_one_pass_page_prog, %function +flash_start_one_pass_page_prog: + stp x29, x30, [sp, -80]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 + stp x25, x26, [sp,64] + uxtb w26, w0 + add x0, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + uxtb w25, w3 + uxtb w22, w2 + ldr x19, [x0,1048] + mov w0, w25 + mov w21, w4 + mov x24, x5 + mov x23, x6 + bl nandc_cs + cbz w26, .L2217 + sxtw x1, w25 + add x1, x1, 8 + add x1, x19, x1, lsl 8 + str w26, [x1,8] +.L2217: + ubfiz x1, x25, 8, 8 + mov w0, 128 + add x19, x19, x1 + add x20, x20, :lo12:.LANCHOR0 + str w0, [x19,2056] + and w0, w21, 255 + str wzr, [x19,2052] + str wzr, [x19,2052] + str w0, [x19,2052] + lsr w0, w21, 8 + str w0, [x19,2052] + lsr w0, w21, 16 + str w0, [x19,2052] + ldrb w0, [x20,1256] + cbz w0, .L2218 + lsr w0, w21, 24 + str w0, [x19,2052] +.L2218: + mov w0, w21 + bl nandc_set_seed + adrp x2, .LANCHOR2+17 + mov x3, x24 + mov x4, x23 + mov w0, w25 + mov w1, 1 + ldrb w2, [x2,#:lo12:.LANCHOR2+17] + bl nandc_xfer + str w22, [x19,2056] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 80 + ret + .size flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog + .align 2 .global flash_dual_page_prog .type flash_dual_page_prog, %function flash_dual_page_prog: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp,32] uxtb x21, w0 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 mov w22, w1 + stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - mov x28, x2 + adrp x27, .LANCHOR2 + mov x26, x2 + ldrb w19, [x0,1257] mov x20, x21 - ldrb w19, [x0,744] - add x21, x21, 8 - ldr x23, [x0,536] + ldr x2, [x0,1048] mov w0, 24 sub w19, w0, w19 mov w0, 1 lsl w19, w0, w19 - adrp x0, .LANCHOR2 - str x0, [x29,104] + ldr w0, [x27,#:lo12:.LANCHOR2] + add x21, x21, 8 sub w19, w19, #1 - mov x27, x3 - mov x26, x4 - ldr w2, [x0,#:lo12:.LANCHOR2] - mov x25, x5 + mov x25, x3 + mov x24, x4 + mov x23, x5 mov w3, w6 - add x21, x23, x21, lsl 8 + add x21, x2, x21, lsl 8 and w19, w1, w19 - ubfx x24, x22, 24, 2 - tbz x2, 4, .L2065 - adrp x0, .LC164 - mov w2, w24 - add x0, x0, :lo12:.LC164 + ubfx x28, x22, 24, 2 + tbz x0, 4, .L2226 + adrp x0, .LC171 + mov w2, w28 + add x0, x0, :lo12:.LC171 bl printk -.L2065: +.L2226: bl nandc_wait_flash_ready mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w24, .L2066 + cbnz w28, .L2227 bl zftl_flash_enter_slc_mode - b .L2067 -.L2066: + b .L2228 +.L2227: bl zftl_flash_exit_slc_mode -.L2067: - ubfiz x0, x20, 8, 8 - mov w5, 128 - add x23, x23, x0 - and w0, w19, 255 - str x5, [x29,96] - str w5, [x23,2056] - str wzr, [x23,2052] - str wzr, [x23,2052] - str w0, [x23,2052] - lsr w0, w19, 8 - str w0, [x23,2052] - lsr w0, w19, 16 - str w0, [x23,2052] - mov w0, w19 - bl nandc_set_seed - ldr x0, [x29,104] - mov x4, x27 - mov x3, x28 - mov w1, 1 - add x24, x0, :lo12:.LANCHOR2 - mov w0, w20 - mov w27, 16 - ldrb w2, [x24,17] - bl nandc_xfer - str w27, [x23,2056] - bl nandc_iqr_wait_flash_ready +.L2228: + mov w0, 0 + mov w4, w19 + mov w1, w0 + mov w2, 16 + mov w3, w20 + mov x5, x26 + mov x6, x25 + bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - ldr x5, [x29,96] - add w0, w19, 1 - str w5, [x23,2056] - and w1, w0, 255 - str wzr, [x23,2052] - str wzr, [x23,2052] - str w1, [x23,2052] - lsr w1, w0, 8 - str w1, [x23,2052] - lsr w1, w0, 16 - str w1, [x23,2052] - bl nandc_set_seed - ldrb w2, [x24,17] - mov w1, 1 - mov x3, x26 - mov x4, x25 + mov w0, 0 + mov w2, 16 + add w4, w19, 1 + mov w1, w0 + mov w3, w20 + mov x5, x24 + mov x6, x23 + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + mov x0, x21 + bl flash_read_status + mov w19, w0 mov w0, w20 - bl nandc_xfer - str w27, [x23,2056] + bl nandc_de_cs + and w2, w19, 4 + tbz x19, 2, .L2229 + ldr w0, [x27,#:lo12:.LANCHOR2] + tbz x0, 12, .L2230 + adrp x0, .LC172 + mov w1, w22 + add x0, x0, :lo12:.LC172 + bl printk +.L2230: + mov w2, -1 +.L2229: + mov w0, w2 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 96 + ret + .size flash_dual_page_prog, .-flash_dual_page_prog + .align 2 + .global ymtc_flash_tlc_page_prog + .type ymtc_flash_tlc_page_prog, %function +ymtc_flash_tlc_page_prog: + stp x29, x30, [sp, -80]! + mov w4, 24 + add x29, sp, 0 + stp x21, x22, [sp,32] + uxtb x21, w0 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + str x25, [sp,64] + stp x23, x24, [sp,48] + stp x19, x20, [sp,16] + mov w25, w1 + mov x20, x21 + ldr x1, [x0,1048] + add x21, x21, 8 + ldrb w19, [x0,1257] + mov x23, x2 + mov x22, x3 + add x21, x1, x21, lsl 8 + sub w19, w4, w19 + bl nandc_wait_flash_ready + mov w0, w20 + mov w24, 1 + lsl w19, w24, w19 + bl nandc_cs + sub w19, w19, #1 + mov w0, w20 + and w19, w19, w25 + bl zftl_flash_exit_slc_mode + mov w4, w19 + mov w1, w24 + mov w2, 26 + mov w3, w20 + mov x5, x23 + mov x6, x22 + mov w0, 0 + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + add w4, w19, w24 + mov w1, w24 + mov w2, 26 + mov w3, w20 + mov x5, x23 + mov x6, x22 + mov w0, 0 + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + mov w2, 16 + add w4, w19, 2 + mov w1, w24 + mov w3, w20 + mov x5, x23 + mov x6, x22 + mov w0, 0 + bl flash_start_one_pass_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready mov x0, x21 @@ -12970,80 +14015,95 @@ flash_dual_page_prog: mov w0, w20 bl nandc_de_cs and w2, w19, 4 - tbz x19, 2, .L2068 + tbz x19, 2, .L2238 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2069 - adrp x0, .LC165 - mov w1, w22 - add x0, x0, :lo12:.LC165 + tbz x0, 12, .L2239 + adrp x0, .LC173 + mov w1, w25 + add x0, x0, :lo12:.LC173 bl printk -.L2069: +.L2239: mov w2, -1 -.L2068: +.L2238: mov w0, w2 + ldr x25, [sp,64] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 80 ret - .size flash_dual_page_prog, .-flash_dual_page_prog + .size ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog .section .text.unlikely .align 2 - .type fw_flash_page_prog.constprop.29, %function -fw_flash_page_prog.constprop.29: - stp x29, x30, [sp, -64]! - adrp x4, .LANCHOR0 + .type fw_flash_page_prog.constprop.31, %function +fw_flash_page_prog.constprop.31: + stp x29, x30, [sp, -80]! add x29, sp, 0 - add x4, x4, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] stp x19, x20, [sp,16] - mov x21, x1 - str x2, [x29,56] - ldr x1, [x4,624] - ldrb w22, [x4,724] - ldrb w19, [x1,9] - udiv w19, w0, w19 - ldrb w0, [x4,632] + adrp x19, .LANCHOR0 + str x23, [sp,48] + add x19, x19, :lo12:.LANCHOR0 + str x2, [x29,72] + stp x21, x22, [sp,32] + mov x22, x1 + ldr x1, [x19,1136] + ldrb w21, [x19,1236] + ldrb w20, [x1,9] + udiv w20, w0, w20 + ldrb w0, [x19,1144] bl nandc_bch_sel - adrp x0, .LANCHOR2+15 - ldr x3, [x29,56] - ldrb w0, [x0,#:lo12:.LANCHOR2+15] + adrp x4, .LANCHOR2 + ldr x3, [x29,72] + add x4, x4, :lo12:.LANCHOR2 + add x4, x4, 8 + ldrb w0, [x4,7] cmp w0, 9 - bne .L2077 - adrp x20, .LANCHOR3 + bne .L2244 + ldrb w23, [x19,1146] + cbnz w23, .L2244 + ldrb w0, [x4,12] + cmp w0, 3 + bne .L2245 + mov w0, w23 + mov w1, w20 + mov x2, x22 + bl ymtc_flash_tlc_page_prog + b .L2247 +.L2245: + adrp x19, .LANCHOR5 mov w1, 255 - add x20, x20, :lo12:.LANCHOR3 + add x19, x19, :lo12:.LANCHOR5 mov w2, 16384 - ldr x0, [x20,1488] + str x3, [x29,72] + ldr x0, [x19,208] bl ftl_memset - ldr x4, [x20,1488] - mov w1, w19 - ldr x3, [x29,56] - mov x2, x21 + ldr x4, [x19,208] + mov w0, w23 + ldr x3, [x29,72] + mov w1, w20 + mov x2, x22 mov x5, x4 mov w6, 4 - mov w0, 0 bl flash_dual_page_prog - b .L2079 -.L2077: + b .L2247 +.L2244: mov w0, 0 - mov w1, w19 - mov x2, x21 + mov w1, w20 + mov x2, x22 mov w4, 4 bl flash_prog_page -.L2079: +.L2247: mov w19, w0 - mov w0, w22 + mov w0, w21 bl nandc_bch_sel + ldr x23, [sp,48] mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldp x29, x30, [sp], 80 ret - .size fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29 + .size fw_flash_page_prog.constprop.31, .-fw_flash_page_prog.constprop.31 .text .align 2 .global flash_start_tlc_page_prog @@ -13060,38 +14120,38 @@ flash_start_tlc_page_prog: stp x23, x24, [sp,48] uxtb w25, w3 uxtb w21, w1 - ldrb w0, [x0,633] + ldrb w0, [x0,1145] uxtb w22, w2 mov w20, w4 mov x24, x5 cmp w0, w25 mov x23, x6 mov x19, x7 - bhi .L2081 + bhi .L2249 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 749 - add x1, x1, 160 + mov w2, 859 + add x1, x1, 320 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2081: +.L2249: add x7, x19, :lo12:.LANCHOR0 - ldrb w0, [x7,633] + ldrb w0, [x7,1145] cmp w0, w25 - bls .L2080 + bls .L2248 add x25, x7, x25, sxtw - ldrb w25, [x25,736] - ldr x19, [x7,536] + ldrb w25, [x25,1248] + ldr x19, [x7,1048] mov w0, w25 bl nandc_cs - cbz w26, .L2083 + cbz w26, .L2251 sxtw x0, w25 add x0, x0, 8 add x0, x19, x0, lsl 8 str w26, [x0,8] -.L2083: +.L2251: ubfiz x7, x25, 8, 8 mov w0, 128 add x19, x19, x7 @@ -13119,7 +14179,7 @@ flash_start_tlc_page_prog: str w22, [x19,2056] mov w0, w25 bl nandc_de_cs -.L2080: +.L2248: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13132,69 +14192,112 @@ flash_start_tlc_page_prog: queue_tlc_prog_cmd: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - str x23, [sp,48] - add x22, x22, :lo12:.LANCHOR0 - mov x21, x0 stp x19, x20, [sp,16] - mov w23, 1 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + adrp x23, .LANCHOR0 + mov x20, x0 ldr x6, [x0] - mov w0, 24 - ldrb w2, [x22,744] - sub w0, w0, w2 - ldr w1, [x6,40] - lsl w20, w23, w0 - lsl w2, w23, w2 - sub w20, w20, #1 - sub w19, w2, #1 - and w20, w20, w1 - lsr w1, w1, w0 - and w19, w19, w1 - ldr x5, [x6,8] - ldrb w0, [x6,60] - mov w1, w23 + add x0, x23, :lo12:.LANCHOR0 + mov w24, w1 + mov w1, 24 + mov w21, 1 + ldrb w3, [x0,1257] + ldr w2, [x6,40] + sub w1, w1, w3 + lsl w3, w21, w3 + lsl w22, w21, w1 + sub w19, w3, #1 + sub w22, w22, #1 + ldrb w0, [x0,1269] + and w22, w22, w2 + lsr w2, w2, w1 + and w19, w19, w2 uxtb w19, w19 - ldr x6, [x6,24] + cbz w0, .L2256 + mov w0, w19 + bl zftl_flash_exit_slc_mode + ldr x6, [x20] + mov w1, w21 mov w3, w19 - mov w4, w20 - mov w2, 26 - bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr x6, [x21,8] - mov w3, w19 - ldr x0, [x21] - mov w4, w20 - mov w1, 2 + mov w4, w22 mov w2, 26 + mov w0, 0 ldr x5, [x6,8] - ldrb w0, [x0,60] ldr x6, [x6,24] - bl flash_start_tlc_page_prog + bl flash_start_one_pass_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr x6, [x21,16] + ldr x6, [x20,8] + mov w1, w21 mov w3, w19 - ldr x0, [x21] - mov w4, w20 + add w4, w22, w21 + mov w2, 26 + mov w0, 0 + ldr x5, [x6,8] + ldr x6, [x6,24] + bl flash_start_one_pass_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x6, [x20,16] + mov w0, 0 + mov w1, w21 mov w2, 16 - mov w1, 3 + mov w3, w19 + add w4, w22, 2 + ldr x5, [x6,8] + ldr x6, [x6,24] + bl flash_start_one_pass_page_prog + b .L2257 +.L2256: + ldr x5, [x6,8] + mov w1, w21 + ldrb w0, [x6,60] + mov w2, 26 + ldr x6, [x6,24] + mov w3, w19 + mov w4, w22 + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x6, [x20,8] + mov w1, 2 + ldr x0, [x20] + mov w2, 26 + mov w3, w19 + mov w4, w22 ldr x5, [x6,8] ldrb w0, [x0,60] ldr x6, [x6,24] bl flash_start_tlc_page_prog - ldr x1, [x21] + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x6, [x20,16] + mov w1, 3 + ldr x0, [x20] + mov w2, 16 + mov w3, w19 + mov w4, w22 + ldr x5, [x6,8] + ldrb w0, [x0,60] + ldr x6, [x6,24] + bl flash_start_tlc_page_prog +.L2257: + cbz w24, .L2255 + ldr x1, [x20] mov w0, 4 strb w0, [x1,58] + mov w0, 1 + strb w0, [x1,59] mov w0, -1 - strb w23, [x1,59] strb w0, [x1] - add x0, x22, 2851 + add x0, x23, :lo12:.LANCHOR0 + add x0, x0, 3363 bl buf_add_tail - ldr x23, [sp,48] +.L2255: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] ldp x29, x30, [sp], 64 ret .size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd @@ -13202,66 +14305,99 @@ queue_tlc_prog_cmd: .global sblk_3d_tlc_dump_prog .type sblk_3d_tlc_dump_prog, %function sblk_3d_tlc_dump_prog: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -64]! + adrp x2, .LANCHOR0 mov w3, 24 + add x2, x2, :lo12:.LANCHOR0 add x29, sp, 0 stp x19, x20, [sp,16] stp x21, x22, [sp,32] - mov x20, x0 + str x23, [sp,48] mov w22, 1 - ldr w2, [x0,40] - adrp x0, .LANCHOR0+744 - ldrb w19, [x0,#:lo12:.LANCHOR0+744] - adrp x0, .LC166 - add x0, x0, :lo12:.LC166 - sub w3, w3, w19 - lsl w19, w22, w19 + mov x19, x0 + ldrb w1, [x2,1257] + ldr w0, [x0,40] + sub w3, w3, w1 + lsl w1, w22, w1 lsl w21, w22, w3 - sub w19, w19, #1 + sub w20, w1, #1 sub w21, w21, #1 - lsr w3, w2, w3 - and w21, w21, w2 - and w19, w19, w3 - mov w1, w21 - mov w3, w2 - uxtb w19, w19 - bl printk - ldr x5, [x20,8] + ldrb w23, [x2,1269] + and w21, w21, w0 + lsr w0, w0, w3 + and w20, w20, w0 + uxtb w20, w20 + cbz w23, .L2263 + mov w0, w20 + bl zftl_flash_exit_slc_mode + ldr x5, [x19,8] mov w1, w22 - ldr x6, [x20,24] - mov w3, w19 + ldr x6, [x19,24] + mov w3, w20 mov w4, w21 mov w2, 26 mov w0, 0 - bl flash_start_tlc_page_prog + bl flash_start_one_pass_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr x5, [x20,8] - mov w3, w19 - ldr x6, [x20,24] - mov w4, w21 - mov w1, 2 + ldr x5, [x19,8] + mov w1, w22 + ldr x6, [x19,24] + mov w3, w20 + add w4, w21, w22 mov w2, 26 mov w0, 0 - bl flash_start_tlc_page_prog + bl flash_start_one_pass_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr x5, [x20,8] - mov w3, w19 - ldr x6, [x20,24] - mov w4, w21 + ldr x5, [x19,8] + mov w0, 0 + ldr x6, [x19,24] + mov w1, w22 mov w2, 16 - mov w1, 3 - mov w0, 0 + mov w3, w20 + add w4, w21, 2 + bl flash_start_one_pass_page_prog + b .L2264 +.L2263: + ldr x5, [x19,8] + mov w1, w22 + ldr x6, [x19,24] + mov w2, 26 + mov w3, w20 + mov w4, w21 + mov w0, w23 bl flash_start_tlc_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr w0, [x20,40] + ldr x5, [x19,8] + mov w1, 2 + ldr x6, [x19,24] + mov w2, 26 + mov w3, w20 + mov w4, w21 + mov w0, w23 + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x5, [x19,8] + mov w0, w23 + ldr x6, [x19,24] + mov w1, 3 + mov w2, 16 + mov w3, w20 + mov w4, w21 + bl flash_start_tlc_page_prog +.L2264: + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr w0, [x19,40] mov w1, 64 bl flash_wait_device_ready + ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldp x29, x30, [sp], 64 ret .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog .align 2 @@ -13277,15 +14413,15 @@ flash_start_3d_mlc_page_prog: stp x19, x20, [sp,16] uxtb w20, w1 mov w21, w2 - ldrb w0, [x0,633] + ldrb w0, [x0,1145] mov x19, x5 cmp w0, w20 - bhi .L2090 + bhi .L2266 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 781 - add x1, x1, 192 + mov w2, 892 + add x1, x1, 352 add x0, x0, :lo12:.LC0 str x4, [x29,48] str x3, [x29,56] @@ -13293,14 +14429,14 @@ flash_start_3d_mlc_page_prog: bl dump_stack ldr x4, [x29,48] ldr x3, [x29,56] -.L2090: +.L2266: add x5, x19, :lo12:.LANCHOR0 - ldrb w0, [x5,633] + ldrb w0, [x5,1145] cmp w0, w20 - bls .L2089 + bls .L2265 add x20, x5, x20, sxtw - ldrb w20, [x20,736] - ldr x19, [x5,536] + ldrb w20, [x20,1248] + ldr x19, [x5,1048] mov w0, w20 str x4, [x29,48] str x3, [x29,56] @@ -13327,7 +14463,7 @@ flash_start_3d_mlc_page_prog: ldrb w2, [x2,#:lo12:.LANCHOR2+17] bl nandc_xfer str w22, [x19,2056] -.L2089: +.L2265: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 64 @@ -13344,8 +14480,8 @@ sblk_mlc_dump_prog: str x21, [sp,32] mov x20, x0 ldr w3, [x0,40] - adrp x0, .LANCHOR0+744 - ldrb w19, [x0,#:lo12:.LANCHOR0+744] + adrp x0, .LANCHOR0+1257 + ldrb w19, [x0,#:lo12:.LANCHOR0+1257] mov w0, 1 sub w1, w1, w19 lsl w21, w0, w1 @@ -13358,12 +14494,16 @@ sblk_mlc_dump_prog: uxtb w19, w19 mov w0, w19 bl zftl_flash_exit_slc_mode + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2269 ldr w2, [x20,40] - adrp x0, .LC167 + adrp x0, .LC174 + add x0, x0, :lo12:.LC174 mov w1, w21 - add x0, x0, :lo12:.LC167 add w3, w2, 1 bl printk +.L2269: ldr x3, [x20,8] mov w1, w19 ldr x4, [x20,24] @@ -13400,18 +14540,18 @@ flash_start_page_prog: mov w5, 1 add x29, sp, 0 stp x25, x26, [sp,64] - adrp x26, .LANCHOR0 + adrp x25, .LANCHOR0 stp x21, x22, [sp,32] uxtb w21, w0 - add x0, x26, :lo12:.LANCHOR0 + add x0, x25, :lo12:.LANCHOR0 stp x23, x24, [sp,48] stp x19, x20, [sp,16] stp x27, x28, [sp,80] mov w19, 24 mov w24, w1 - ldrb w20, [x0,744] + ldrb w20, [x0,1257] mov x23, x2 - ldrb w0, [x0,633] + ldrb w0, [x0,1145] mov x22, x3 sub w19, w19, w20 lsl w20, w5, w20 @@ -13420,61 +14560,62 @@ flash_start_page_prog: and w20, w1, w20 uxtb w20, w20 cmp w0, w20 - bhi .L2094 + bhi .L2274 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 832 - add x1, x1, 224 + mov w2, 945 + add x1, x1, 384 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2094: - add x28, x26, :lo12:.LANCHOR0 - ldrb w0, [x28,633] +.L2274: + add x28, x25, :lo12:.LANCHOR0 + ldrb w0, [x28,1145] cmp w0, w20 - bls .L2093 + bls .L2273 mov w0, 1 - ldr x27, [x28,536] + ldr x27, [x28,1048] lsl w19, w0, w19 sub w19, w19, #1 add x0, x28, x20, sxtw and w19, w24, w19 - ldrb w25, [x0,736] + ldrb w26, [x0,1248] bl nandc_rdy_status - cbnz w0, .L2096 - ldrb w0, [x28,633] + cbnz w0, .L2276 + ldrb w0, [x28,1145] cmp w0, 1 - bne .L2097 + bne .L2277 bl nandc_wait_flash_ready - b .L2096 -.L2097: + b .L2276 +.L2277: mov w0, w20 mov w1, w19 mov w2, 64 bl flash_wait_device_ready_raw -.L2096: - mov w0, w25 +.L2276: + mov w0, w26 ubfx x24, x24, 24, 2 bl hynix_reconfig_rr_para - mov w0, w25 + mov w0, w26 bl nandc_cs - cbnz w24, .L2098 + cbnz w24, .L2278 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 - ldrb w0, [x26,#:lo12:.LANCHOR0] - cbz w0, .L2099 - mov w0, w25 + ldrb w0, [x25,#:lo12:.LANCHOR0] + cbz w0, .L2279 + mov w0, w26 bl zftl_flash_enter_slc_mode - b .L2099 -.L2098: - mov w0, w25 + b .L2279 +.L2278: + mov w0, w26 bl zftl_flash_exit_slc_mode -.L2099: - ubfiz x1, x25, 8, 8 +.L2279: + ubfiz x1, x26, 8, 8 mov w0, 128 add x20, x27, x1 + add x25, x25, :lo12:.LANCHOR0 str w0, [x20,2056] and w0, w19, 255 str wzr, [x20,2052] @@ -13484,19 +14625,24 @@ flash_start_page_prog: str w0, [x20,2052] lsr w0, w19, 16 str w0, [x20,2052] + ldrb w0, [x25,1256] + cbz w0, .L2280 + lsr w0, w19, 24 + str w0, [x20,2052] +.L2280: mov w0, w19 bl nandc_set_seed adrp x2, .LANCHOR2+17 - mov w0, w25 + mov w0, w26 mov w1, 1 mov x3, x23 mov x4, x22 ldrb w2, [x2,#:lo12:.LANCHOR2+17] bl nandc_xfer str w21, [x20,2056] - mov w0, w25 + mov w0, w26 bl nandc_de_cs -.L2093: +.L2273: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13520,46 +14666,46 @@ queue_prog_cmd: adrp x0, .LANCHOR0 ldr w4, [x19,40] add x3, x0, :lo12:.LANCHOR0 - ldrb w2, [x3,2851] + ldrb w2, [x3,3363] cmp w2, 255 - beq .L2104 - ldrb w5, [x3,744] + beq .L2288 + ldrb w5, [x3,1257] mov w1, 1 mov w7, 24 - add x3, x3, 800 + add x3, x3, 1312 lsl w1, w1, w5 sub w7, w7, w5 sub w1, w1, #1 asr w4, w4, w7 uxth w1, w1 and w4, w1, w4 -.L2106: +.L2290: add x5, x3, x2, lsl 6 ldr w6, [x5,40] lsr w6, w6, w7 and w6, w1, w6 cmp w4, w6 - bne .L2105 + bne .L2289 ldrb w6, [x5,58] add x5, x5, 48 cmp w6, 7 - bne .L2105 + bne .L2289 mov w1, 3 strb w1, [x5,10] - b .L2104 -.L2105: + b .L2288 +.L2289: lsl x2, x2, 6 ldrb w2, [x3,x2] cmp w2, 255 - bne .L2106 -.L2104: + bne .L2290 +.L2288: mov w1, 3 strb w1, [x19,58] mov w1, 1 add x0, x0, :lo12:.LANCHOR0 strb w1, [x19,59] mov w1, -1 - add x0, x0, 2851 + add x0, x0, 3363 strb w1, [x19] mov x1, x19 bl buf_add_tail @@ -13582,10 +14728,10 @@ flash_complete_plane_page_read: stp x19, x20, [sp,16] mov x22, x1 mov w19, 24 - ldrb w20, [x0,744] + ldrb w20, [x0,1257] mov w1, 1 mov x21, x2 - ldrb w0, [x0,633] + ldrb w0, [x0,1145] sub w19, w19, w20 lsl w20, w1, w20 lsr w2, w24, w19 @@ -13593,91 +14739,101 @@ flash_complete_plane_page_read: and w20, w2, w20 uxtb w20, w20 cmp w0, w20 - bhi .L2112 + bhi .L2296 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 921 - add x1, x1, 248 + mov w2, 1055 + add x1, x1, 408 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2112: +.L2296: add x3, x23, :lo12:.LANCHOR0 mov w0, -1 - ldrb w1, [x3,633] + ldrb w1, [x3,1145] cmp w1, w20 - bls .L2113 + bls .L2297 mov w2, 1 add x20, x3, x20, sxtw - ldrb w20, [x20,736] + ldrb w20, [x20,1248] lsl w19, w2, w19 add w19, w19, w0 ubfx x25, x24, 24, 2 mov w0, w20 and w19, w19, w24 - ldr x24, [x3,536] + ldr x24, [x3,1048] bl nandc_cs - cbnz w25, .L2114 + cbnz w25, .L2298 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 -.L2114: - add x0, x23, :lo12:.LANCHOR0 +.L2298: + add x7, x23, :lo12:.LANCHOR0 uxtb x5, w20 - and w4, w19, 255 - lsr w3, w19, 8 - lsr w2, w19, 16 - ldrb w1, [x0,656] - cmp w1, 1 - bne .L2115 + and w6, w19, 255 + lsr w4, w19, 8 + lsr w3, w19, 16 + ldrb w0, [x7,1168] + ldrb w2, [x7,1256] + cmp w0, 1 + bne .L2299 add x5, x24, x5, lsl 8 mov w0, 6 - b .L2129 -.L2115: - ldr x0, [x0,624] + b .L2327 +.L2299: + ldr x0, [x7,1136] add x5, x24, x5, lsl 8 ldrb w0, [x0,12] cmp w0, 3 - bne .L2117 + bne .L2302 mov w0, 5 -.L2129: +.L2327: str w0, [x5,2056] str wzr, [x5,2052] str wzr, [x5,2052] + str w6, [x5,2052] str w4, [x5,2052] str w3, [x5,2052] - str w2, [x5,2052] - b .L2127 -.L2117: + cbz w2, .L2323 + lsr w0, w19, 24 + str w0, [x5,2052] + b .L2323 +.L2302: str wzr, [x5,2056] - mov w0, 5 str wzr, [x5,2052] str wzr, [x5,2052] + str w6, [x5,2052] str w4, [x5,2052] str w3, [x5,2052] - str w2, [x5,2052] + cbz w2, .L2304 + lsr w0, w19, 24 + str w0, [x5,2052] +.L2304: + mov w0, 5 str w0, [x5,2056] str wzr, [x5,2052] str wzr, [x5,2052] -.L2127: +.L2323: mov w0, 224 str w0, [x5,2056] - cbz w25, .L2118 + cbz w25, .L2305 add x23, x23, :lo12:.LANCHOR0 - ldr x0, [x23,624] + ldr x0, [x23,1136] ldrb w0, [x0,12] cmp w0, 3 - bne .L2118 - ldrb w0, [x23,756] - cbnz w0, .L2118 + bne .L2305 + ldrb w0, [x23,1268] + cbnz w0, .L2305 + ldrb w0, [x23,1269] + cbnz w0, .L2305 sub w1, w25, #1 add w0, w19, w19, lsl 1 add w0, w1, w0 - b .L2128 -.L2118: + b .L2324 +.L2305: mov w0, w19 -.L2128: +.L2324: bl nandc_set_seed adrp x2, .LANCHOR2+17 mov w1, 0 @@ -13690,7 +14846,7 @@ flash_complete_plane_page_read: mov w0, w20 bl nandc_de_cs mov w0, w19 -.L2113: +.L2297: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13716,7 +14872,7 @@ flash_complete_page_read: stp x27, x28, [sp,80] mov w21, w0 mov w0, 24 - ldrb w2, [x1,744] + ldrb w2, [x1,1257] ubfx x25, x21, 24, 2 sub w0, w0, w2 lsl w19, w5, w0 @@ -13724,95 +14880,102 @@ flash_complete_page_read: lsr w20, w21, w0 sub w5, w5, #1 and w20, w20, w5 - ldrb w0, [x1,633] + ldrb w0, [x1,1145] sub w19, w19, #1 uxtb w20, w20 and w19, w19, w21 cmp w0, w20 - bhi .L2131 + bhi .L2329 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1045 - add x1, x1, 280 + mov w2, 1212 + add x1, x1, 440 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2131: +.L2329: add x0, x24, :lo12:.LANCHOR0 add x20, x0, x20, sxtw - ldrb w26, [x20,736] - ldr x20, [x0,536] + ldrb w26, [x20,1248] + ldr x20, [x0,1048] mov w0, w26 bl nandc_cs - cbnz w25, .L2132 + cbnz w25, .L2330 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 -.L2132: +.L2330: ubfiz x0, x26, 8, 8 add x1, x20, x0 mov w0, 5 + adrp x20, .LANCHOR2 str w0, [x1,2056] + add x0, x20, :lo12:.LANCHOR2 + str wzr, [x1,2052] + str wzr, [x1,2052] + ldrb w0, [x0,20] + cmp w0, 3 + bne .L2331 and w0, w19, 255 - str wzr, [x1,2052] - str wzr, [x1,2052] str w0, [x1,2052] lsr w0, w19, 8 str w0, [x1,2052] lsr w0, w19, 16 str w0, [x1,2052] +.L2331: mov w0, 224 str w0, [x1,2056] - cbz w25, .L2133 + cbz w25, .L2332 add x0, x24, :lo12:.LANCHOR0 - ldr x1, [x0,624] + ldr x1, [x0,1136] ldrb w1, [x1,12] cmp w1, 3 - bne .L2133 - ldrb w0, [x0,756] - cbnz w0, .L2133 + bne .L2332 + ldrb w1, [x0,1268] + cbnz w1, .L2332 + ldrb w0, [x0,1269] + cbnz w0, .L2332 sub w0, w25, #1 add w1, w19, w19, lsl 1 add w0, w0, w1 - b .L2165 -.L2133: + b .L2364 +.L2332: mov w0, w19 -.L2165: - adrp x20, .LANCHOR2 - bl nandc_set_seed +.L2364: add x27, x20, :lo12:.LANCHOR2 + bl nandc_set_seed mov w0, w26 mov w1, 0 mov x3, x22 mov x4, x23 + ldrb w2, [x27,17] add x27, x27, 8 - ldrb w2, [x27,9] bl nandc_xfer cmn w0, #1 - bne .L2135 + bne .L2334 add x28, x24, :lo12:.LANCHOR0 - ldrb w5, [x28,720] - cbz w5, .L2136 + ldrb w5, [x28,1232] + cbz w5, .L2335 ldrb w4, [x27,9] mov w0, w26 orr w1, w19, w25, lsl 24 mov x2, x22 mov x3, x23 str x5, [x29,104] - strb wzr, [x28,720] + strb wzr, [x28,1232] bl flash_read_page ldr x5, [x29,104] - strb w5, [x28,720] - cbnz w25, .L2137 -.L2144: + strb w5, [x28,1232] + cbnz w25, .L2336 +.L2343: ldrb w2, [x24,#:lo12:.LANCHOR0] add x1, x24, :lo12:.LANCHOR0 - cbz w2, .L2137 - ldrb w1, [x1,724] + cbz w2, .L2336 + ldrb w1, [x1,1236] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - blt .L2137 + blt .L2336 add x20, x20, :lo12:.LANCHOR2 ldrb w1, [x20,27] sub w1, w1, #4 @@ -13820,28 +14983,28 @@ flash_complete_page_read: cmp w1, 4 mov w1, 256 csel w0, w0, w1, hi - b .L2152 -.L2137: + b .L2351 +.L2336: cmn w0, #1 - bne .L2152 -.L2145: - adrp x0, .LANCHOR3+1520 - ldr x5, [x0,#:lo12:.LANCHOR3+1520] - cbnz x5, .L2140 -.L2143: + bne .L2351 +.L2344: + adrp x0, .LANCHOR5+240 + ldr x5, [x0,#:lo12:.LANCHOR5+240] + cbnz x5, .L2339 +.L2342: add x24, x24, :lo12:.LANCHOR0 - adrp x0, .LC168 - add x0, x0, :lo12:.LC168 + adrp x0, .LC175 + add x0, x0, :lo12:.LC175 mov w1, 0 mov w2, w21 mov w3, -1 - ldrb w4, [x24,720] + ldrb w4, [x24,1232] bl printk - ldrb w0, [x24,672] - cbnz w0, .L2141 + ldrb w0, [x24,1184] + cbnz w0, .L2340 mov w0, -1 - b .L2152 -.L2140: + b .L2351 +.L2339: add x4, x20, :lo12:.LANCHOR2 mov w0, w26 orr w1, w19, w25, lsl 24 @@ -13850,9 +15013,9 @@ flash_complete_page_read: ldrb w4, [x4,17] blr x5 cmn w0, #1 - bne .L2152 - b .L2143 -.L2141: + bne .L2351 + b .L2342 +.L2340: add x20, x20, :lo12:.LANCHOR2 mov w0, w26 orr w1, w19, w25, lsl 24 @@ -13860,14 +15023,14 @@ flash_complete_page_read: mov x3, x23 ldrb w4, [x20,17] bl flash_ddr_tuning_read - b .L2152 -.L2135: - cbz w25, .L2144 - b .L2152 -.L2136: - cbz w25, .L2144 - b .L2145 -.L2152: + b .L2351 +.L2334: + cbz w25, .L2343 + b .L2351 +.L2335: + cbz w25, .L2343 + b .L2344 +.L2351: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13888,99 +15051,99 @@ queue_wait_first_req_completed: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldrb w22, [x0,2851] + ldrb w22, [x0,3363] cmp w22, 255 - beq .L2260 - add x0, x0, 800 + beq .L2459 + add x0, x0, 1312 mov w20, 0 add x0, x0, x22, lsl 6 ldrb w1, [x0,58] ldr w24, [x0,40] sub w2, w1, #1 cmp w2, 10 - bhi .L2168 - adrp x0, .L2170 - add x0, x0, :lo12:.L2170 + bhi .L2367 + adrp x0, .L2369 + add x0, x0, :lo12:.L2369 ldrh w0, [x0,w2,uxtw #1] - adr x2, .Lrtx2170 + adr x2, .Lrtx2369 add x0, x2, w0, sxth #2 br x0 -.Lrtx2170: +.Lrtx2369: .section .rodata .align 0 .align 2 -.L2170: - .2byte (.L2169 - .Lrtx2170) / 4 - .2byte (.L2171 - .Lrtx2170) / 4 - .2byte (.L2172 - .Lrtx2170) / 4 - .2byte (.L2172 - .Lrtx2170) / 4 - .2byte (.L2172 - .Lrtx2170) / 4 - .2byte (.L2172 - .Lrtx2170) / 4 - .2byte (.L2173 - .Lrtx2170) / 4 - .2byte (.L2174 - .Lrtx2170) / 4 - .2byte (.L2175 - .Lrtx2170) / 4 - .2byte (.L2172 - .Lrtx2170) / 4 - .2byte (.L2175 - .Lrtx2170) / 4 +.L2369: + .2byte (.L2368 - .Lrtx2369) / 4 + .2byte (.L2370 - .Lrtx2369) / 4 + .2byte (.L2371 - .Lrtx2369) / 4 + .2byte (.L2371 - .Lrtx2369) / 4 + .2byte (.L2371 - .Lrtx2369) / 4 + .2byte (.L2371 - .Lrtx2369) / 4 + .2byte (.L2372 - .Lrtx2369) / 4 + .2byte (.L2373 - .Lrtx2369) / 4 + .2byte (.L2374 - .Lrtx2369) / 4 + .2byte (.L2371 - .Lrtx2369) / 4 + .2byte (.L2374 - .Lrtx2369) / 4 .text -.L2169: +.L2368: mov w0, w24 mov w1, 64 bl flash_wait_device_ready - tbz x0, 6, .L2260 + tbz x0, 6, .L2459 add x3, x19, :lo12:.LANCHOR0 - add x0, x3, 800 + add x0, x3, 1312 add x0, x0, x22, lsl 6 ldr x2, [x0,16] ldr x1, [x0,8] - cbz x2, .L2177 + cbz x2, .L2376 ldrb w4, [x0,56] - ldrb w0, [x3,2848] + ldrb w0, [x3,3360] cmp w4, w0 csel x1, x1, x2, ne -.L2177: +.L2376: add x19, x19, :lo12:.LANCHOR0 mov w0, w24 - add x19, x19, 800 + add x19, x19, 1312 add x19, x19, x22, lsl 6 ldr x2, [x19,24] bl flash_complete_page_read str w0, [x19,52] mov w0, 13 strb w0, [x19,58] - b .L2261 -.L2171: + b .L2460 +.L2370: mov w1, 64 mov w0, w24 bl flash_wait_device_ready add x2, x19, :lo12:.LANCHOR0 lsl x4, x22, 6 - add x3, x2, 800 + add x3, x2, 1312 add x1, x3, x4 ldrb w20, [x3,x4] - tbz x0, 6, .L2260 + tbz x0, 6, .L2459 add x3, x3, x20, lsl 6 ldr x0, [x1,16] ldr x27, [x1,8] ldr x24, [x3,8] - cbz x0, .L2178 + cbz x0, .L2377 ldrb w3, [x1,56] - ldrb w1, [x2,2848] + ldrb w1, [x2,3360] cmp w3, w1 csel x27, x27, x0, ne -.L2178: +.L2377: add x2, x19, :lo12:.LANCHOR0 - add x0, x2, 800 + add x0, x2, 1312 add x0, x0, x20, lsl 6 ldr x1, [x0,16] - cbz x1, .L2179 + cbz x1, .L2378 ldrb w3, [x0,56] - ldrb w0, [x2,2848] + ldrb w0, [x2,3360] cmp w3, w0 csel x24, x24, x1, ne -.L2179: +.L2378: add x21, x19, :lo12:.LANCHOR0 mov x1, x27 - add x21, x21, 800 + add x21, x21, 1312 add x26, x21, x22, lsl 6 add x21, x21, x20, lsl 6 add x28, x26, 32 @@ -13995,23 +15158,23 @@ queue_wait_first_req_completed: bl flash_complete_plane_page_read mov w25, w0 cmn w23, #1 - beq .L2180 + beq .L2379 ldr w0, [x28,4] cmn w0, #1 - beq .L2181 + beq .L2380 ldr x1, [x26,8] ldr w1, [x1,4] cmp w0, w1 - beq .L2181 -.L2180: + beq .L2380 +.L2379: add x4, x19, :lo12:.LANCHOR0 mov w0, 1 - add x21, x4, 800 + add x21, x4, 1312 mov w3, 24 add x21, x21, x22, lsl 6 - ldrb w2, [x4,744] + ldrb w2, [x4,1257] add x26, x21, 32 - ldrb w4, [x4,2848] + ldrb w4, [x4,3360] add x21, x21, 16 ldr w1, [x21,24] lsl w0, w0, w2 @@ -14027,42 +15190,42 @@ queue_wait_first_req_completed: mov w23, w0 ldr w2, [x26,4] cmn w2, #1 - beq .L2182 + beq .L2381 ldr x3, [x21,8] ldr w4, [x3,4] cmp w2, w4 - beq .L2182 + beq .L2381 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2182 - adrp x0, .LC169 + tbz x0, 6, .L2381 + adrp x0, .LC176 ldr w1, [x26,8] ldr w3, [x3] - add x0, x0, :lo12:.LC169 + add x0, x0, :lo12:.LC176 bl printk -.L2182: +.L2381: add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 800 + add x0, x0, 1312 add x0, x0, x22, lsl 6 ldr w1, [x0,36] cmn w1, #1 - beq .L2181 + beq .L2380 ldr x0, [x0,24] ldr w0, [x0,4] cmp w1, w0 - beq .L2181 + beq .L2380 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 360 - add x1, x1, 312 + mov w2, 430 + add x1, x1, 472 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2181: +.L2380: add x3, x19, :lo12:.LANCHOR0 mov w1, 13 - add x3, x3, 800 + add x3, x3, 1312 cmn w25, #1 add x22, x3, x22, lsl 6 ldrb w0, [x22,2] @@ -14070,24 +15233,24 @@ queue_wait_first_req_completed: orr w0, w0, 8 strb w1, [x22,58] strb w0, [x22,2] - beq .L2183 + beq .L2382 add x3, x3, x20, lsl 6 ldr w0, [x3,36] cmn w0, #1 - beq .L2185 + beq .L2384 ldr x1, [x3,24] ldr w1, [x1,4] cmp w0, w1 - beq .L2185 -.L2183: + beq .L2384 +.L2382: add x4, x19, :lo12:.LANCHOR0 mov w2, 24 - add x21, x4, 800 + add x21, x4, 1312 mov w0, 1 add x21, x21, x20, lsl 6 - ldrb w3, [x4,744] + ldrb w3, [x4,1257] add x22, x21, 32 - ldrb w4, [x4,2848] + ldrb w4, [x4,3360] add x21, x21, 16 ldr w1, [x21,24] sub w2, w2, w3 @@ -14102,140 +15265,140 @@ queue_wait_first_req_completed: bl flash_read_page_en ldr w2, [x22,4] cmn w2, #1 - beq .L2187 + beq .L2386 ldr x3, [x21,8] ldr w4, [x3,4] cmp w2, w4 - beq .L2187 + beq .L2386 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2187 - adrp x0, .LC169 + tbz x0, 6, .L2386 + adrp x0, .LC176 ldr w1, [x22,8] ldr w3, [x3] - add x0, x0, :lo12:.LC169 + add x0, x0, :lo12:.LC176 bl printk -.L2187: +.L2386: add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 800 + add x0, x0, 1312 add x0, x0, x20, lsl 6 ldr w1, [x0,36] cmn w1, #1 - beq .L2185 + beq .L2384 ldr x0, [x0,24] ldr w0, [x0,4] cmp w1, w0 - beq .L2185 + beq .L2384 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 375 - add x1, x1, 312 + mov w2, 449 + add x1, x1, 472 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2185: +.L2384: add x19, x19, :lo12:.LANCHOR0 mov w1, 13 - add x19, x19, 800 + add x19, x19, 1312 add x19, x19, x20, lsl 6 str w23, [x19,52] strb w1, [x19,58] -.L2261: +.L2460: ldrb w0, [x19,2] orr w0, w0, 8 strb w0, [x19,2] - b .L2260 -.L2172: + b .L2459 +.L2371: bl nandc_iqr_wait_flash_ready mov w0, w24 mov w1, 64 bl flash_wait_device_ready mov w21, w0 - tbz x21, 6, .L2260 + tbz x21, 6, .L2459 mov w20, 5 ands w20, w21, w20 - beq .L2188 + beq .L2387 add x19, x19, :lo12:.LANCHOR0 mov w0, 12 - add x19, x19, 800 + add x19, x19, 1312 mov w2, w21 add x19, x19, x22, lsl 6 mov w4, 12 mov w20, w21 strb w0, [x19,58] - adrp x0, .LC170 + adrp x0, .LC177 ldrb w1, [x19,1] - add x0, x0, :lo12:.LC170 + add x0, x0, :lo12:.LC177 ldr w3, [x19,40] bl printk mov w0, -1 str w0, [x19,52] - b .L2168 -.L2188: + b .L2367 +.L2387: add x4, x19, :lo12:.LANCHOR0 mov w1, 13 - add x23, x4, 800 + add x23, x4, 1312 add x23, x23, x22, lsl 6 strb w1, [x23,58] - ldr x1, [x4,2880] + ldr x1, [x4,3392] str w20, [x23,52] ldr w2, [x1,156] mov w1, 20041 movk w1, 0x444b, lsl 16 cmp w2, w1 - bne .L2260 + bne .L2459 ldrh w0, [x23,50] - cbnz w0, .L2260 - ldrb w3, [x4,744] + cbnz w0, .L2459 + ldrb w3, [x4,1257] mov w0, 1 - adrp x21, .LANCHOR3 + adrp x21, .LANCHOR5 ldr w1, [x23,40] lsl w0, w0, w3 - add x21, x21, :lo12:.LANCHOR3 + add x21, x21, :lo12:.LANCHOR5 mov w2, 24 sub w0, w0, #1 sub w2, w2, w3 - ldrb w4, [x4,2848] + ldrb w4, [x4,3360] lsr w3, w1, w2 lsl w2, w0, w2 bic w1, w1, w2 and w0, w0, w3 - ldr x2, [x21,1528] - ldr x3, [x21,1536] + ldr x2, [x21,248] + ldr x3, [x21,256] bl flash_read_page_en cmn w0, #1 mov w3, w0 - beq .L2189 + beq .L2388 ldr x1, [x23,24] - ldr x0, [x21,1536] + ldr x0, [x21,256] ldr w1, [x1] ldr w0, [x0] cmp w1, w0 - beq .L2260 -.L2189: + beq .L2459 +.L2388: add x4, x19, :lo12:.LANCHOR0 - adrp x0, .LC171 - add x19, x4, 800 - add x0, x0, :lo12:.LC171 + adrp x0, .LC178 + add x19, x4, 1312 + add x0, x0, :lo12:.LC178 add x19, x19, x22, lsl 6 - ldrb w4, [x4,720] + ldrb w4, [x4,1232] ldrb w1, [x19,1] ldr w2, [x19,40] bl printk mov w0, -1 str w0, [x19,52] - b .L2168 -.L2175: + b .L2367 +.L2374: add x25, x19, :lo12:.LANCHOR0 cmp w1, 11 mov w0, 3 mov w5, 10 csel w5, w0, w5, ne mov w4, 24 - ldrb w1, [x25,744] + ldrb w1, [x25,1257] mov w0, 1 - add x21, x25, 800 + add x21, x25, 1312 sub w4, w4, w1 lsl w0, w0, w1 sub w0, w0, #1 @@ -14243,31 +15406,31 @@ queue_wait_first_req_completed: and w2, w0, w2 add x3, x21, x22, lsl 6 uxth w2, w2 -.L2191: +.L2390: ldrb w1, [x3] cmp w1, 255 - beq .L2262 + beq .L2461 sxtw x23, w1 add x3, x21, x23, lsl 6 ldrb w1, [x3,58] cmp w1, w5 - bne .L2191 + bne .L2390 ldr w1, [x3,40] lsr w1, w1, w4 and w1, w0, w1 cmp w2, w1 - bne .L2191 + bne .L2390 bl nandc_iqr_wait_flash_ready mov w0, w24 mov w1, 64 bl flash_wait_device_ready mov w20, w0 - tbz x20, 6, .L2259 + tbz x20, 6, .L2458 ands w1, w20, 15 - beq .L2195 + beq .L2394 add x21, x21, x22, lsl 6 - adrp x0, .LC172 - add x0, x0, :lo12:.LC172 + adrp x0, .LC179 + add x0, x0, :lo12:.LC179 mov w2, w20 mov w4, 12 ldrb w1, [x21,1] @@ -14277,106 +15440,106 @@ queue_wait_first_req_completed: strb w0, [x21,58] mov w0, -1 str w0, [x21,52] - b .L2194 -.L2195: + b .L2393 +.L2394: add x20, x21, x22, lsl 6 mov w2, 13 str w1, [x20,52] - ldr x1, [x25,2880] + ldr x1, [x25,3392] strb w2, [x20,58] ldr w2, [x1,156] mov w1, 20041 movk w1, 0x444b, lsl 16 cmp w2, w1 - bne .L2259 + bne .L2458 ldrh w0, [x20,50] - cbnz w0, .L2259 - ldrb w3, [x25,744] + cbnz w0, .L2458 + ldrb w3, [x25,1257] mov w0, 1 - adrp x21, .LANCHOR3 + adrp x21, .LANCHOR5 ldr w1, [x20,40] lsl w0, w0, w3 - add x21, x21, :lo12:.LANCHOR3 + add x21, x21, :lo12:.LANCHOR5 mov w2, 24 sub w0, w0, #1 sub w2, w2, w3 - ldrb w4, [x25,2848] + ldrb w4, [x25,3360] lsr w3, w1, w2 lsl w2, w0, w2 bic w1, w1, w2 and w0, w0, w3 - ldr x2, [x21,1528] - ldr x3, [x21,1536] + ldr x2, [x21,248] + ldr x3, [x21,256] bl flash_read_page_en cmn w0, #1 mov w3, w0 - beq .L2197 + beq .L2396 ldr x1, [x20,24] - ldr x0, [x21,1536] + ldr x0, [x21,256] ldr w1, [x1] ldr w0, [x0] cmp w1, w0 - beq .L2259 -.L2197: + beq .L2458 +.L2396: add x4, x19, :lo12:.LANCHOR0 - adrp x0, .LC173 - add x20, x4, 800 - add x0, x0, :lo12:.LC173 + adrp x0, .LC180 + add x20, x4, 1312 + add x0, x0, :lo12:.LC180 add x20, x20, x22, lsl 6 - ldrb w4, [x4,720] + ldrb w4, [x4,1232] ldrb w1, [x20,1] ldr w2, [x20,40] bl printk mov w0, -1 str w0, [x20,52] -.L2259: +.L2458: mov w20, 0 -.L2194: +.L2393: add x1, x19, :lo12:.LANCHOR0 - add x1, x1, 800 + add x1, x1, 1312 add x19, x1, x22, lsl 6 add x1, x1, x23, lsl 6 ldrb w0, [x19,58] strb w0, [x1,58] ldr w0, [x19,52] str w0, [x1,52] - b .L2168 -.L2262: + b .L2367 +.L2461: mov w20, -1 - b .L2168 -.L2173: + b .L2367 +.L2372: mov w1, 32 mov w0, w24 bl flash_wait_device_ready - tbz x0, 5, .L2260 + tbz x0, 5, .L2459 ands w20, w0, 15 add x19, x19, :lo12:.LANCHOR0 add x19, x19, x22, lsl 6 - beq .L2199 + beq .L2398 mov w1, 12 mov w20, w0 - strb w1, [x19,858] + strb w1, [x19,1370] mov w1, -1 - str w1, [x19,852] - b .L2168 -.L2199: + str w1, [x19,1364] + b .L2367 +.L2398: mov w0, 13 - str w20, [x19,852] - strb w0, [x19,858] - b .L2168 -.L2174: + str w20, [x19,1364] + strb w0, [x19,1370] + b .L2367 +.L2373: mov w1, 64 mov w0, w24 bl flash_wait_device_ready - tbz x0, 6, .L2260 + tbz x0, 6, .L2459 add x19, x19, :lo12:.LANCHOR0 add x19, x19, x22, lsl 6 - str w0, [x19,852] + str w0, [x19,1364] mov w0, 7 - strb w0, [x19,858] -.L2260: + strb w0, [x19,1370] +.L2459: mov w20, 0 -.L2168: +.L2367: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14400,46 +15563,48 @@ sblk_prog_page: mov x19, x0 uxtb w20, w1 ldrh w0, [x0,50] - cbz w0, .L2264 + cbz w0, .L2463 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2264 - adrp x0, .LC174 + tbz x0, 8, .L2463 + adrp x0, .LC181 ldr w1, [x19,40] - add x0, x0, :lo12:.LC174 + add x0, x0, :lo12:.LC181 mov w2, w20 bl printk -.L2264: - adrp x24, .LANCHOR0 +.L2463: + adrp x23, .LANCHOR0 adrp x25, .LC0 - add x23, x24, :lo12:.LANCHOR0 + add x24, x23, :lo12:.LANCHOR0 mov w21, 0 - add x27, x23, 800 + add x27, x24, 1312 add x25, x25, :lo12:.LC0 -.L2265: - cbz w20, .L2295 +.L2464: + cbz w20, .L2497 ldrb w26, [x19] ldr w22, [x19,40] -.L2266: +.L2465: mov w0, w22 mov w1, 1 bl queue_lun_state - cbz w0, .L2296 + cbz w0, .L2498 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2266 -.L2296: + b .L2465 +.L2498: cmp w20, 1 - beq .L2268 - add x0, x24, :lo12:.LANCHOR0 - ldrb w1, [x0,793] - cbnz w1, .L2269 -.L2268: + beq .L2467 + add x0, x23, :lo12:.LANCHOR0 + ldrb w1, [x0,1305] + cbz w1, .L2467 + ldrb w1, [x0,1269] + cbz w1, .L2468 +.L2467: mov x0, x19 bl queue_prog_cmd - b .L2270 -.L2269: - ldrb w1, [x0,744] + b .L2469 +.L2468: + ldrb w1, [x0,1257] mov w28, 1 mov w0, 24 lsl w28, w28, w1 @@ -14450,18 +15615,18 @@ sblk_prog_page: ldrb w0, [x19] cmp w0, 255 uxth w28, w28 - bne .L2271 + bne .L2470 adrp x1, .LANCHOR4 - mov w2, 583 + mov w2, 696 add x1, x1, :lo12:.LANCHOR4 mov x0, x25 - add x1, x1, 344 + add x1, x1, 504 bl printk bl dump_stack -.L2271: +.L2470: ldrb w0, [x19] mov w4, 1 - ldrb w1, [x23,744] + ldrb w1, [x24,1257] add x0, x27, x0, lsl 6 ldr w2, [x0,40] mov w0, 24 @@ -14471,9 +15636,12 @@ sblk_prog_page: lsr w3, w2, w0 and w1, w1, w3 cmp w28, w1, uxth - bne .L2272 - ldrh w1, [x23,3536] - ldrb w6, [x23,3538] + bne .L2471 + adrp x5, .LANCHOR3 + str x4, [x29,104] + add x5, x5, :lo12:.LANCHOR3 + ldrh w1, [x5,1232] + ldrb w6, [x5,1234] sub w3, w0, w1 lsr w5, w22, w1 lsl w3, w4, w3 @@ -14488,16 +15656,15 @@ sblk_prog_page: and w5, w3, w5 and w3, w3, w1 sub w0, w0, #1 - str x4, [x29,104] cmp w5, w3 uxth w0, w0 - beq .L2272 + beq .L2471 and w22, w0, w22 and w0, w0, w2 cmp w22, w0 - bne .L2272 + bne .L2471 cmp w21, w6 - beq .L2272 + beq .L2471 ldr w1, [x19,40] mov w0, 17 ldr x2, [x19,8] @@ -14511,22 +15678,22 @@ sblk_prog_page: strb w4, [x19,59] mov x1, x19 strb w0, [x19] - add x0, x23, 2851 + add x0, x24, 3363 bl buf_add_tail - b .L2270 -.L2272: + b .L2469 +.L2471: mov x0, x19 mov w21, 0 bl queue_prog_cmd -.L2270: +.L2469: subs w20, w20, #1 - beq .L2295 - add x19, x24, :lo12:.LANCHOR0 + beq .L2497 + add x19, x23, :lo12:.LANCHOR0 sbfiz x26, x26, 6, 32 - add x19, x19, 800 + add x19, x19, 1312 add x19, x19, x26 - b .L2265 -.L2295: + b .L2464 +.L2497: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14544,15 +15711,15 @@ sblk_wait_write_queue_completed: add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 -.L2298: +.L2500: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2851] + ldrb w0, [x0,3363] cmp w0, 255 - beq .L2300 + beq .L2502 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2298 -.L2300: + b .L2500 +.L2502: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -14567,20 +15734,20 @@ ftl_flush: add x0, x2, :lo12:.LANCHOR0 stp x19, x20, [sp,16] mov x19, x2 - adrp x20, .LANCHOR3 - ldrb w1, [x0,2873] - cbz w1, .L2302 - add x2, x20, :lo12:.LANCHOR3 - add x0, x0, 800 - ldrb w2, [x2,1544] + adrp x20, .LANCHOR5 + ldrb w1, [x0,3389] + cbz w1, .L2504 + add x2, x20, :lo12:.LANCHOR5 + add x0, x0, 1312 + ldrb w2, [x2,264] add x0, x0, x2, lsl 6 bl sblk_prog_page -.L2302: +.L2504: add x2, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR3 + add x20, x20, :lo12:.LANCHOR5 mov w0, -1 - strb wzr, [x2,2873] - strb w0, [x20,1544] + strb wzr, [x2,3389] + strb w0, [x20,264] bl sblk_wait_write_queue_completed bl ftl_write_completed mov w0, -1 @@ -14593,19 +15760,19 @@ ftl_flush: .global zftl_cache_flush .type zftl_cache_flush, %function zftl_cache_flush: - adrp x0, .LANCHOR0+2873 + adrp x0, .LANCHOR0+3389 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+2873] - cbz w0, .L2306 + ldrb w0, [x0,#:lo12:.LANCHOR0+3389] + cbz w0, .L2508 bl timer_get_time - adrp x1, .LANCHOR3+1548 - ldr w1, [x1,#:lo12:.LANCHOR3+1548] + adrp x1, .LANCHOR5+268 + ldr w1, [x1,#:lo12:.LANCHOR5+268] add w1, w1, 100 cmp w0, w1 - bls .L2306 + bls .L2508 bl ftl_flush -.L2306: +.L2508: ldp x29, x30, [sp], 16 ret .size zftl_cache_flush, .-zftl_cache_flush @@ -14642,11 +15809,11 @@ ftl_read_ppa_page: add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w0 - adrp x0, .LANCHOR0+744 + adrp x0, .LANCHOR0+1257 mov w19, 24 str x4, [x29,56] stp x21, x22, [sp,32] - ldrb w0, [x0,#:lo12:.LANCHOR0+744] + ldrb w0, [x0,#:lo12:.LANCHOR0+1257] mov x22, x1 mov x21, x2 sub w19, w19, w0 @@ -14674,40 +15841,40 @@ sblk_read_page: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x25, x26, [sp,64] - adrp x26, .LANCHOR0 - stp x23, x24, [sp,48] + adrp x25, .LANCHOR0 stp x27, x28, [sp,80] stp x21, x22, [sp,32] - add x24, x26, :lo12:.LANCHOR0 + add x26, x25, :lo12:.LANCHOR0 uxtb w21, w1 adrp x28, .LC0 - mov x23, x0 + add x27, x26, 1312 stp x19, x20, [sp,16] - add x27, x24, 800 + stp x23, x24, [sp,48] mov x19, x0 + mov x23, x0 mov w20, w21 add x28, x28, :lo12:.LC0 -.L2313: - cbz w20, .L2336 - ldrb w25, [x19] +.L2515: + cbz w20, .L2538 + ldrb w24, [x19] ldr w22, [x19,40] -.L2314: +.L2516: mov w0, w22 mov w1, 0 bl queue_lun_state - cbz w0, .L2337 + cbz w0, .L2539 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2314 -.L2337: + b .L2516 +.L2539: cmp w20, 1 - beq .L2320 - adrp x0, .LANCHOR3+1552 - ldrb w0, [x0,#:lo12:.LANCHOR3+1552] - cbz w0, .L2320 - add x0, x26, :lo12:.LANCHOR0 + beq .L2522 + adrp x0, .LANCHOR5+272 + ldrb w0, [x0,#:lo12:.LANCHOR5+272] + cbz w0, .L2522 + add x0, x25, :lo12:.LANCHOR0 mov w3, 1 - ldrb w1, [x0,744] + ldrb w1, [x0,1257] mov w0, 24 lsl w3, w3, w1 sub w0, w0, w1 @@ -14717,20 +15884,20 @@ sblk_read_page: ldrb w0, [x19] cmp w0, 255 uxth w3, w3 - bne .L2319 + bne .L2521 adrp x1, .LANCHOR4 - mov w2, 661 + mov w2, 781 add x1, x1, :lo12:.LANCHOR4 mov x0, x28 - add x1, x1, 360 + add x1, x1, 520 str x3, [x29,120] bl printk bl dump_stack ldr x3, [x29,120] -.L2319: +.L2521: ldrb w4, [x19] mov w5, 1 - ldrb w0, [x24,744] + ldrb w0, [x26,1257] mov w2, 24 lsl x4, x4, 6 add x6, x27, x4 @@ -14741,16 +15908,17 @@ sblk_read_page: lsr w0, w1, w0 and w0, w5, w0 cmp w3, w0, uxth - bne .L2320 - ldrh w0, [x24,3634] + bne .L2522 + adrp x0, .LANCHOR3+1330 + ldrh w0, [x0,#:lo12:.LANCHOR3+1330] add w22, w0, w22 cmp w1, w22 - bne .L2320 + bne .L2522 ldr w0, [x19,40] - add x22, x24, 2851 + add x22, x26, 3363 str x6, [x29,96] sub w20, w20, #1 - ldrb w25, [x27,x4] + ldrb w24, [x27,x4] str x4, [x29,104] bl flash_start_plane_read mov w3, 2 @@ -14773,38 +15941,38 @@ sblk_read_page: strb wzr, [x6,59] strb w2, [x27,x4] bl buf_add_tail - b .L2318 -.L2320: + b .L2520 +.L2522: mov x0, x19 bl queue_read_cmd -.L2318: +.L2520: subs w20, w20, #1 - beq .L2336 - add x19, x26, :lo12:.LANCHOR0 - sbfiz x25, x25, 6, 32 - add x19, x19, 800 - add x19, x19, x25 - b .L2313 -.L2336: + beq .L2538 + add x19, x25, :lo12:.LANCHOR0 + sbfiz x24, x24, 6, 32 + add x19, x19, 1312 + add x19, x19, x24 + b .L2515 +.L2538: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x19, x19, 800 -.L2324: - cbz w21, .L2338 + add x19, x19, 1312 +.L2526: + cbz w21, .L2540 ldrb w0, [x23,58] cmp w0, 13 - bne .L2325 + bne .L2527 ldrb w0, [x23] sub w21, w21, #1 cmp w0, 255 - beq .L2325 + beq .L2527 sbfiz x23, x0, 6, 32 add x23, x19, x23 -.L2325: +.L2527: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2324 -.L2338: + b .L2526 +.L2540: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14815,6 +15983,196 @@ sblk_read_page: ret .size sblk_read_page, .-sblk_read_page .align 2 + .global gc_check_data_one_wl + .type gc_check_data_one_wl, %function +gc_check_data_one_wl: + sub sp, sp, #112 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] + adrp x19, .LANCHOR0 + add x20, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp,48] + stp x23, x24, [sp,64] + stp x25, x26, [sp,80] + stp x27, x28, [sp,96] + ldr x0, [x20,3432] + ldr x21, [x20,1120] + add x20, x20, 3424 + cbnz x0, .L2542 + mov w0, 1 + bl buf_alloc + str x0, [x20,8] +.L2542: + add x0, x19, :lo12:.LANCHOR0 + ldr x20, [x0,3432] + cbnz x20, .L2543 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 729 + add x1, x1, 536 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2543: + mov w24, 0 + add x25, x21, 80 + add x22, x19, :lo12:.LANCHOR0 + adrp x27, .LANCHOR3 + adrp x26, .LANCHOR5 +.L2544: + ldrb w0, [x25,9] + cmp w24, w0 + bge .L2575 + mov w23, 1 + sxtw x28, w24 +.L2555: + add x2, x22, 3424 + ldrh w0, [x2,20] + cmp w23, w0 + bgt .L2576 + add x0, x28, 8 + ldrh w1, [x25,x0,lsl 1] + add x0, x27, :lo12:.LANCHOR3 + ldrh w3, [x0,1330] + ldrb w0, [x0,1248] + cmp w0, 2 + mul w1, w1, w3 + beq .L2545 + ldrb w3, [x22,1268] + cbz w3, .L2546 +.L2545: + ldrh w2, [x22,3440] + sub w2, w2, #1 + add w1, w2, w1 + add w1, w1, w23 + orr w1, w1, w0, lsl 24 + b .L2574 +.L2546: + cmp w0, 3 + bne .L2548 + ldrb w0, [x22,1269] + cbz w0, .L2549 + ldrh w0, [x2,16] + add w0, w0, w0, lsl 1 + sub w0, w0, #1 + add w1, w0, w1 + add w1, w1, w23 + orr w1, w1, 50331648 + b .L2574 +.L2549: + ldrh w0, [x2,16] + add w1, w1, w0 + orr w1, w1, w23, lsl 24 + b .L2574 +.L2548: + ldrh w0, [x2,16] + add w1, w1, w0 +.L2574: + str w1, [x20,40] + mov x0, x20 + mov w1, 1 + bl sblk_read_page + ldr w2, [x20,52] + cmn w2, #1 + beq .L2550 + add x3, x26, :lo12:.LANCHOR5 + ldrh w0, [x22,3446] + ldr x1, [x20,24] + lsl x0, x0, 2 + ldr x4, [x3,144] + ldr w5, [x4,x0] + ldr w4, [x1,4] + cmp w5, w4 + bne .L2550 + ldr x3, [x3,152] + ldr w3, [x3,x0] + ldr w0, [x1,8] + cmp w3, w0 + beq .L2551 +.L2550: + add x0, x26, :lo12:.LANCHOR5 + ldrh w4, [x22,3446] + lsl x4, x4, 2 + ldr x1, [x0,144] + ldr w3, [x1,x4] + cmn w3, #1 + beq .L2551 + adrp x1, .LANCHOR2 + ldr w1, [x1,#:lo12:.LANCHOR2] + tbz x1, 10, .L2552 + ldr x7, [x20,24] + ldr x5, [x0,152] + ldr w0, [x7,12] + str w0, [sp] + adrp x0, .LC182 + add x0, x0, :lo12:.LC182 + ldr w4, [x5,x4] + ldr w6, [x7,4] + ldr w5, [x7] + ldr w1, [x20,40] + ldr w7, [x7,8] + bl printk +.L2552: + add x19, x19, :lo12:.LANCHOR0 + ldrh w1, [x21,80] + mov w21, -1 + ldr x0, [x19,1112] + strh wzr, [x0,x1,lsl 1] + ldr x1, [x19,1120] + ldr w0, [x1,556] + add w0, w0, 1 + str w0, [x1,556] + ldr x0, [x19,3392] + ldr w1, [x0,156] + mov w0, 20041 + movk w0, 0x444b, lsl 16 + cmp w1, w0 + bne .L2553 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + ldrb w1, [x0,1868] + cbnz w1, .L2553 + ldrb w0, [x0,1250] + cbnz w0, .L2553 + ldr w0, [x20,40] + bl ftl_mask_bad_block + b .L2553 +.L2551: + ldrh w0, [x22,3446] + add w23, w23, 1 + add w0, w0, 1 + strh w0, [x22,3446] + b .L2555 +.L2576: + add w24, w24, 1 + b .L2544 +.L2575: + add x19, x19, :lo12:.LANCHOR0 + mov w21, 0 + add x19, x19, 3424 + ldrh w0, [x19,16] + add w1, w0, 1 + strh w1, [x19,16] + adrp x1, .LANCHOR3+1250 + ldrb w1, [x1,#:lo12:.LANCHOR3+1250] + cbz w1, .L2553 + add w0, w0, 2 + strh w0, [x19,16] +.L2553: + sub sp, x29, #16 + mov w0, w21 + ldp x19, x20, [sp,32] + ldp x21, x22, [sp,48] + ldp x23, x24, [sp,64] + ldp x25, x26, [sp,80] + ldp x27, x28, [sp,96] + ldp x29, x30, [sp,16] + add sp, sp, 112 + ret + .size gc_check_data_one_wl, .-gc_check_data_one_wl + .align 2 .global sblk_tlc_prog_one_page .type sblk_tlc_prog_one_page, %function sblk_tlc_prog_one_page: @@ -14825,17 +16183,18 @@ sblk_tlc_prog_one_page: mov x20, x0 ldr x0, [x0] ldr w21, [x0,40] -.L2340: +.L2578: mov w0, w21 mov w1, 1 bl queue_lun_state mov w19, w0 - cbz w0, .L2342 + cbz w0, .L2580 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2340 -.L2342: + b .L2578 +.L2580: mov x0, x20 + mov w1, 1 bl queue_tlc_prog_cmd ldr x21, [sp,32] mov w0, w19 @@ -14847,97 +16206,164 @@ sblk_tlc_prog_one_page: .global sblk_xlc_prog_pages .type sblk_xlc_prog_pages, %function sblk_xlc_prog_pages: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] stp x21, x22, [sp,32] + str x27, [sp,80] + mov x21, x0 + stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - mov x20, x0 mov x22, x1 + mov w27, w2 ldr x0, [x0] - mov w23, w2 ldr w19, [x0,40] -.L2344: +.L2582: mov w0, w19 mov w1, 1 bl queue_lun_state - cbz w0, .L2348 + mov w24, w0 + cbz w0, .L2593 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2344 -.L2348: - cmp w23, 2 - bne .L2346 + b .L2582 +.L2593: + cmp w27, 2 + bne .L2584 adrp x25, .LANCHOR0 - ldr x6, [x20] - add x25, x25, :lo12:.LANCHOR0 - mov w0, 24 - mov w24, 1 - ldr x1, [x22] + add x2, x25, :lo12:.LANCHOR0 + ldrb w0, [x2,1305] + cbz w0, .L2585 + ldrb w0, [x2,1257] + mov w1, 24 + ldr x6, [x21] + mov w20, 1 + sub w1, w1, w0 + ldr x4, [x22] + lsl w23, w20, w1 + lsl w0, w20, w0 ldr w3, [x6,40] - mov w2, 17 - ldrb w5, [x25,744] - ldr w1, [x1,40] - sub w0, w0, w5 - lsl w5, w24, w5 - lsl w21, w24, w0 - sub w19, w5, #1 - sub w21, w21, #1 - ldr x5, [x6,8] - and w26, w21, w3 - lsr w3, w3, w0 + sub w23, w23, #1 + sub w19, w0, #1 + ldrb w0, [x2,1269] + and w26, w23, w3 + lsr w3, w3, w1 + ldr w4, [x4,40] and w19, w19, w3 - ldrb w0, [x6,60] - ldr x6, [x6,24] - and w21, w21, w1 + and w23, w23, w4 uxtb w19, w19 - mov w1, w24 + cbz w0, .L2586 + mov w0, w19 + bl zftl_flash_exit_slc_mode + ldr x6, [x21] + mov w1, w20 + mov w3, w19 + mov w4, w26 + mov w0, w24 + mov w2, 17 + ldr x5, [x6,8] + ldr x6, [x6,24] + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr x6, [x22] + mov w1, w20 + mov w3, w19 + mov w4, w23 + mov w0, w24 + mov w2, 26 + ldr x5, [x6,8] + ldr x6, [x6,24] + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr x6, [x21,8] + mov w1, w27 + mov w3, w19 + add w4, w26, w20 + mov w0, w24 + mov w2, 17 + ldr x5, [x6,8] + ldr x6, [x6,24] + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr x6, [x22,8] + mov w1, w27 + mov w3, w19 + add w4, w23, w20 + mov w0, w24 + mov w2, 26 + ldr x5, [x6,8] + ldr x6, [x6,24] + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr x6, [x21,16] + mov w3, w19 + add w4, w26, 2 + mov w0, w24 + mov w1, 3 + mov w2, 17 + ldr x5, [x6,8] + ldr x6, [x6,24] + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + ldr x6, [x22,16] + mov w0, w24 + mov w1, 3 + mov w2, 16 + mov w3, w19 + add w4, w23, 2 + ldr x5, [x6,8] + ldr x6, [x6,24] + bl flash_start_one_pass_page_prog + b .L2587 +.L2586: + ldr x5, [x6,8] + mov w1, w20 + ldrb w0, [x6,60] + mov w2, 17 + ldr x6, [x6,24] mov w3, w19 mov w4, w26 bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldr x6, [x22] - mov w1, w24 - ldr x0, [x20] - mov w3, w19 - mov w4, w21 + mov w1, w20 + ldr x0, [x21] mov w2, 26 + mov w3, w19 + mov w4, w23 ldr x5, [x6,8] ldrb w0, [x0,60] ldr x6, [x6,24] bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr x6, [x20,8] - mov w1, w23 - ldr x0, [x20] + ldr x6, [x21,8] + mov w1, w27 + ldr x0, [x21] + mov w2, 17 mov w3, w19 mov w4, w26 - mov w2, 17 ldr x5, [x6,8] ldrb w0, [x0,60] ldr x6, [x6,24] bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldr x6, [x22,8] - mov w1, w23 - ldr x0, [x20] - mov w3, w19 - mov w4, w21 + mov w1, w27 + ldr x0, [x21] mov w2, 26 + mov w3, w19 + mov w4, w23 ldr x5, [x6,8] ldrb w0, [x0,60] ldr x6, [x6,24] bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr x6, [x20,16] - mov w3, w19 - ldr x0, [x20] - mov w4, w26 + ldr x6, [x21,16] mov w1, 3 + ldr x0, [x21] mov w2, 17 + mov w3, w19 + mov w4, w26 ldr x5, [x6,8] ldrb w0, [x0,60] ldr x6, [x6,24] @@ -14945,33 +16371,65 @@ sblk_xlc_prog_pages: bl nandc_wait_flash_ready ldr x6, [x22,16] mov w1, 3 - ldr x0, [x20] + ldr x0, [x21] mov w2, 16 mov w3, w19 - mov w4, w21 + mov w4, w23 ldr x5, [x6,8] ldrb w0, [x0,60] ldr x6, [x6,24] bl flash_start_tlc_page_prog - ldr x1, [x20] +.L2587: + ldr x1, [x21] mov w0, 5 strb w0, [x1,58] + mov w0, 1 + strb w0, [x1,59] mov w0, -1 - strb w24, [x1,59] strb w0, [x1] - add x0, x25, 2851 + add x0, x25, :lo12:.LANCHOR0 + add x0, x0, 3363 bl buf_add_tail - b .L2347 -.L2346: - mov x0, x20 + b .L2588 +.L2585: + ldr x0, [x22] + ldr w19, [x0,40] +.L2589: + mov w0, w19 + mov w1, 1 + bl queue_lun_state + mov w20, w0 + cbz w0, .L2594 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2589 +.L2594: + mov x0, x21 + mov w1, 1 bl queue_tlc_prog_cmd -.L2347: + mov x0, x22 + mov w1, w20 + bl queue_tlc_prog_cmd +.L2591: + mov w0, w19 + mov w1, 1 + bl queue_lun_state + cbz w0, .L2588 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2591 +.L2584: + mov x0, x21 + mov w1, 1 + bl queue_tlc_prog_cmd +.L2588: mov w0, 0 + ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 96 ret .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .align 2 @@ -14992,24 +16450,24 @@ sblk_3d_mlc_prog_pages: mov w22, w1 mov w25, 24 mov w26, 4 - add x27, x23, 2851 -.L2350: - cbz w22, .L2354 + add x27, x23, 3363 +.L2596: + cbz w22, .L2600 ldr x0, [x20] ldr w19, [x0,40] -.L2351: +.L2597: mov w0, w19 mov w1, 1 bl queue_lun_state - cbz w0, .L2355 + cbz w0, .L2601 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2351 -.L2355: + b .L2597 +.L2601: ldr x0, [x20] sub w22, w22, #1 ldr w3, [x0,40] - ldrb w0, [x23,744] + ldrb w0, [x23,1257] sub w1, w25, w0 lsl w0, w24, w0 lsl w21, w24, w1 @@ -15045,8 +16503,8 @@ sblk_3d_mlc_prog_pages: mov x0, x27 strb w24, [x1,59] bl buf_add_tail - b .L2350 -.L2354: + b .L2596 +.L2600: mov w0, w22 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -15073,68 +16531,68 @@ flash_prog_page_en: stp x25, x26, [sp,64] mov x23, x2 mov x22, x3 - ldrb w1, [x1,633] + ldrb w1, [x1,1145] mov w27, w4 uxtb w28, w5 ubfx x25, x20, 24, 2 cmp w1, w21 mov x24, x0 - bhi .L2357 + bhi .L2603 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 560 - add x1, x1, 376 + mov w2, 635 + add x1, x1, 560 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2357: +.L2603: add x1, x24, :lo12:.LANCHOR0 mov w0, -1 - ldrb w2, [x1,633] + ldrb w2, [x1,1145] cmp w2, w21 - bls .L2358 + bls .L2604 add x0, x1, x21, sxtw mov w19, w20 - ldrb w26, [x0,736] - cbnz w25, .L2359 + ldrb w26, [x0,1248] + cbnz w25, .L2605 adrp x0, .LANCHOR0 ldrb w0, [x0,#:lo12:.LANCHOR0] - cbz w0, .L2360 + cbz w0, .L2606 ldrb w0, [x1,1] - cbz w0, .L2359 -.L2360: + cbz w0, .L2605 +.L2606: add x0, x24, :lo12:.LANCHOR0 ldrh w19, [x0,2] ldrb w2, [x0,1] udiv w1, w20, w19 mul w19, w1, w19 sub w1, w20, w19 - cbz w2, .L2361 + cbz w2, .L2607 add w19, w19, w1, lsl 1 - b .L2359 -.L2361: + b .L2605 +.L2607: add x0, x0, 4 ldrh w0, [x0,w1,uxtw 1] add w19, w0, w19 -.L2359: - adrp x25, .LC175 - adrp x24, .LC176 - adrp x0, .LC177 - add x25, x25, :lo12:.LC175 - add x0, x0, :lo12:.LC177 - add x24, x24, :lo12:.LC176 +.L2605: + adrp x25, .LC183 + adrp x24, .LC184 + adrp x0, .LC185 + add x25, x25, :lo12:.LC183 + add x0, x0, :lo12:.LC185 + add x24, x24, :lo12:.LC184 str x0, [x29,120] -.L2365: +.L2611: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L2362 + tbz x0, 4, .L2608 mov x0, x25 mov w1, w26 mov w2, w20 mov w3, w19 bl printk -.L2362: +.L2608: mov w0, w26 mov w1, w19 mov x2, x23 @@ -15142,37 +16600,37 @@ flash_prog_page_en: mov w4, w27 bl flash_prog_page mov w5, w0 - cbz w28, .L2363 - adrp x6, .LANCHOR3 + cbz w28, .L2609 + adrp x6, .LANCHOR5 mov w4, w27 - add x7, x6, :lo12:.LANCHOR3 + add x7, x6, :lo12:.LANCHOR5 mov w0, w21 mov w1, w20 str x6, [x29,104] str x5, [x29,96] - ldr x2, [x7,1528] - ldr x3, [x7,1536] + ldr x2, [x7,248] + ldr x3, [x7,256] str x7, [x29,112] bl flash_read_page_en cmp w0, 512 cset w4, eq ldr x6, [x29,104] - cbnz w4, .L2364 + cbnz w4, .L2610 cmn w0, #1 - beq .L2364 + beq .L2610 ldr x7, [x29,112] ldr w1, [x23] ldr x5, [x29,96] - ldr x0, [x7,1528] + ldr x0, [x7,248] ldr w0, [x0] cmp w1, w0 - bne .L2364 - ldr x0, [x7,1536] + bne .L2610 + ldr x0, [x7,256] ldr w1, [x22] ldr w0, [x0] cmp w1, w0 - beq .L2363 -.L2364: + beq .L2609 +.L2610: mov w2, 4 mov x0, x24 mov w3, w2 @@ -15187,42 +16645,42 @@ flash_prog_page_en: bl rknand_print_hex ldr x6, [x29,112] mov w2, 4 - adrp x0, .LC178 + adrp x0, .LC186 mov w3, w2 - add x6, x6, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC178 + add x6, x6, :lo12:.LANCHOR5 + add x0, x0, :lo12:.LC186 str x6, [x29,112] - ldr x1, [x6,1536] + ldr x1, [x6,256] bl rknand_print_hex ldr x6, [x29,112] mov w2, 4 - adrp x0, .LC179 + adrp x0, .LC187 mov w3, w2 - add x0, x0, :lo12:.LC179 - ldr x1, [x6,1528] + add x0, x0, :lo12:.LC187 + ldr x1, [x6,248] bl rknand_print_hex ldr x4, [x29,104] - cbnz w4, .L2365 -.L2367: - adrp x0, .LC180 + cbnz w4, .L2611 +.L2613: + adrp x0, .LC188 mov w1, w20 - add x0, x0, :lo12:.LC180 + add x0, x0, :lo12:.LC188 bl printk adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 593 - add x1, x1, 376 + mov w2, 678 + add x1, x1, 560 add x0, x0, :lo12:.LC0 bl printk bl dump_stack mov w0, -1 - b .L2358 -.L2363: + b .L2604 +.L2609: cmn w5, #1 mov w0, w5 - beq .L2367 -.L2358: + beq .L2613 +.L2604: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15253,20 +16711,20 @@ ftl_prog_page: bl flash_prog_page_en cmn w0, #1 mov w19, w0 - bne .L2386 + bne .L2632 adrp x2, .LANCHOR4 adrp x0, .LC0 add x1, x2, :lo12:.LANCHOR4 add x0, x0, :lo12:.LC0 - add x1, x1, 400 - mov w2, 2344 + add x1, x1, 584 + mov w2, 2670 bl printk bl dump_stack - adrp x0, .LC180 + adrp x0, .LC188 mov w1, w20 - add x0, x0, :lo12:.LC180 + add x0, x0, :lo12:.LC188 bl printk -.L2386: +.L2632: mov w0, w19 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 @@ -15287,213 +16745,206 @@ ftl_info_flush: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - adrp x21, .LANCHOR3 - ldrb w2, [x19,2848] - add x0, x21, :lo12:.LANCHOR3 - add x0, x0, 1600 + adrp x21, .LANCHOR5 + ldrb w2, [x19,3360] + add x0, x21, :lo12:.LANCHOR5 + add x0, x0, 320 lsl w2, w2, 1 bl ftl_memset - ldrb w0, [x19,3554] - cbz w0, .L2388 - ldr x0, [x19,2880] - str wzr, [x0,156] - strh wzr, [x0,150] -.L2388: - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2880] + ldr x0, [x19,3392] ldrh w1, [x0,74] - cbz w1, .L2389 + cbz w1, .L2634 strh wzr, [x0,150] -.L2389: - adrp x22, .LANCHOR4 - add x25, x21, :lo12:.LANCHOR3 - add x22, x22, :lo12:.LANCHOR4 - mov w24, 0 - add x23, x25, 1920 - adrp x26, .LANCHOR2 - add x22, x22, 416 -.L2400: +.L2634: + adrp x23, .LANCHOR4 + adrp x24, .LC189 + add x23, x23, :lo12:.LANCHOR4 + mov w25, 0 + add x26, x21, :lo12:.LANCHOR5 + add x24, x24, :lo12:.LC189 + add x23, x23, 600 +.L2645: add x2, x20, :lo12:.LANCHOR0 - add x3, x25, 1600 + adrp x22, .LANCHOR3 + add x0, x22, :lo12:.LANCHOR3 + add x3, x26, 320 str x2, [x29,112] + ldr x1, [x2,3392] + ldrh w28, [x0,1330] str x3, [x29,104] - ldr x1, [x2,2880] - ldrh w28, [x2,3634] - ldrb w19, [x25,1856] ldr w0, [x1,4] - ldrh w27, [x25,1858] + ldrb w19, [x26,576] add w0, w0, 1 str w0, [x1,4] ldr w0, [x29,124] - str w0, [x25,1600] - ldr x0, [x2,2880] - ldrb w1, [x2,2848] + str w0, [x26,320] + ldr x0, [x2,3392] + ldrb w1, [x2,3360] + ldrh w27, [x26,578] ldr w0, [x0,4] lsl w1, w1, 9 - str w0, [x25,1604] - mov x0, x23 + str w0, [x26,324] + ldr x0, [x26,584] bl js_hash ldr x3, [x29,104] ldr x2, [x29,112] str w0, [x3,8] - ldr w0, [x26,#:lo12:.LANCHOR2] - tbz x0, 12, .L2390 - ldr x3, [x2,2880] - adrp x0, .LC181 - ldrb w1, [x25,1856] - add x0, x0, :lo12:.LC181 - ldrh w2, [x25,1858] + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2635 + ldr x3, [x2,3392] + mov x0, x24 + ldrb w1, [x26,576] + ldrh w2, [x26,578] ldr w3, [x3,4] bl printk -.L2390: - add x1, x20, :lo12:.LANCHOR0 - ldrh w0, [x25,1858] - ldrh w1, [x1,3596] +.L2635: + add x1, x22, :lo12:.LANCHOR3 + ldrh w0, [x26,578] + ldrh w1, [x1,1294] cmp w1, w0 - bhi .L2391 + bhi .L2636 adrp x19, .LC0 add x19, x19, :lo12:.LC0 -.L2396: - ldrb w1, [x25,1857] +.L2641: + ldrb w1, [x26,577] add w1, w1, 1 uxtb w1, w1 - strb w1, [x25,1857] + strb w1, [x26,577] cmp w1, 7 - bls .L2392 + bls .L2637 mov x1, 0 -.L2395: +.L2640: add x0, x20, :lo12:.LANCHOR0 - uxth w24, w1 - ldr x2, [x0,728] + uxth w25, w1 + ldr x2, [x0,1240] add w0, w1, 8 add x0, x2, x0, sxtw ldrb w2, [x0,32] add w0, w2, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2393 - mov x1, x22 - mov w2, 761 + bhi .L2638 + mov x1, x23 + mov w2, 841 mov x0, x19 bl printk bl dump_stack - b .L2394 -.L2393: + b .L2639 +.L2638: cmp w2, 255 - bne .L2394 + bne .L2639 add x1, x1, 1 cmp x1, 8 - bne .L2395 - mov w24, w1 -.L2394: - strb w24, [x25,1857] - mov w24, 1 -.L2392: + bne .L2640 + mov w25, w1 +.L2639: + strb w25, [x26,577] + mov w25, 1 +.L2637: add x28, x20, :lo12:.LANCHOR0 - ldrb w1, [x25,1857] - ldr x0, [x28,728] + ldrb w1, [x26,577] + ldr x0, [x28,1240] add x1, x0, x1 ldrb w1, [x1,40] - strb w1, [x25,1856] + strb w1, [x26,576] cmp w1, 255 - beq .L2396 - ldrh w19, [x28,3634] + beq .L2641 + add x0, x22, :lo12:.LANCHOR3 + ldrh w19, [x0,1330] mov w0, 0 mul w19, w1, w19 mov w1, w19 bl flash_erase_block - ldrb w4, [x28,2848] + ldr x2, [x26,584] mov w1, w19 + ldrb w4, [x28,3360] mov w0, 0 - mov x2, x23 - add x3, x25, 1600 + add x3, x26, 320 add w19, w19, 1 bl ftl_prog_page mov w0, 1 - strh w0, [x25,1858] - b .L2397 -.L2391: + strh w0, [x26,578] + b .L2642 +.L2636: madd w19, w19, w28, w27 - cbnz w0, .L2397 + cbnz w0, .L2642 mov w1, w19 bl flash_erase_block -.L2397: +.L2642: add x4, x20, :lo12:.LANCHOR0 + ldr x2, [x26,584] mov w1, w19 mov w0, 0 - mov x2, x23 - add x3, x25, 1600 - ldrb w4, [x4,2848] + add x3, x26, 320 + ldrb w4, [x4,3360] bl ftl_prog_page cmn w0, #1 - ldrh w1, [x25,1858] - adrp x0, .LANCHOR5 + ldrh w1, [x26,578] add w1, w1, 1 - strh w1, [x25,1858] - beq .L2398 - add x1, x0, :lo12:.LANCHOR5 - ldrb w1, [x1,896] - cbz w1, .L2399 -.L2398: - add x0, x0, :lo12:.LANCHOR5 - strb wzr, [x0,896] - b .L2400 -.L2399: - cbnz w24, .L2401 -.L2409: - add x21, x21, :lo12:.LANCHOR3 - ldrb w0, [x21,1856] + strh w1, [x26,578] + beq .L2643 + ldrb w0, [x26,592] + cbz w0, .L2644 +.L2643: + strb wzr, [x26,592] + b .L2645 +.L2644: + cbnz w25, .L2646 +.L2654: + add x21, x21, :lo12:.LANCHOR5 + ldrb w0, [x21,576] cmp w0, 255 - bne .L2403 + bne .L2648 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 797 - add x1, x1, 416 + mov w2, 885 + add x1, x1, 600 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L2403 -.L2401: - ldrb w19, [x25,1857] - adrp x22, .LANCHOR4 - adrp x23, .LC0 - add x22, x22, :lo12:.LANCHOR4 + b .L2648 +.L2646: + ldrb w19, [x26,577] + adrp x23, .LANCHOR4 + adrp x24, .LC0 + add x23, x23, :lo12:.LANCHOR4 add w19, w19, 1 - add x23, x23, :lo12:.LC0 - add x22, x22, 416 -.L2404: + add x24, x24, :lo12:.LC0 + add x23, x23, 600 +.L2649: cmp w19, 7 - bhi .L2409 + bhi .L2654 add x0, x20, :lo12:.LANCHOR0 - ldr x1, [x0,728] + ldr x1, [x0,1240] add w0, w19, 8 add x0, x1, x0, sxtw - ldrb w24, [x0,32] - add w0, w24, 127 + ldrb w25, [x0,32] + add w0, w25, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2405 - mov x1, x22 - mov w2, 790 - mov x0, x23 + bhi .L2650 + mov x1, x23 + mov w2, 876 + mov x0, x24 bl printk bl dump_stack - b .L2406 -.L2405: - cmp w24, 255 - beq .L2407 -.L2406: - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,3634] + b .L2651 +.L2650: + cmp w25, 255 + beq .L2652 +.L2651: + add x0, x22, :lo12:.LANCHOR3 + ldrh w1, [x0,1330] mov w0, 0 - mul w1, w24, w1 + mul w1, w25, w1 bl flash_erase_block -.L2407: +.L2652: add w19, w19, 1 uxth w19, w19 - b .L2404 -.L2403: + b .L2649 +.L2648: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15513,187 +16964,188 @@ ftl_info_blk_init: add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - adrp x19, .LANCHOR5 - stp x23, x24, [sp,48] - add x23, x20, :lo12:.LANCHOR0 - add x19, x19, :lo12:.LANCHOR5 stp x21, x22, [sp,32] + add x19, x20, :lo12:.LANCHOR0 + adrp x22, .LANCHOR5 + add x21, x22, :lo12:.LANCHOR5 stp x25, x26, [sp,64] stp x27, x28, [sp,80] - adrp x21, .LANCHOR3 - strb w0, [x19,896] - ldrh w1, [x23,576] - add x22, x21, :lo12:.LANCHOR3 - add x24, x22, 1920 - strb w0, [x19,898] - mov x0, x24 - strb wzr, [x19,897] - add x1, x24, x1, lsl 2 - str x1, [x23,2880] + stp x23, x24, [sp,48] + strb w0, [x21,592] + adrp x25, .LC190 + ldrh w1, [x19,1088] + adrp x27, .LANCHOR3 + strb w0, [x21,594] + add x26, x21, 320 + ldr x0, [x21,584] + adrp x28, .LANCHOR2 + str x0, [x19,1096] + add x25, x25, :lo12:.LC190 + add x1, x0, x1, lsl 2 + str x1, [x19,3392] mov w1, 0 - str x24, [x23,584] - adrp x26, .LC182 - adrp x27, .LANCHOR2 + strb wzr, [x21,593] bl ftl_memset - add x26, x26, :lo12:.LC182 - add x0, x19, 960 + ldr x0, [x21,600] mov w1, 0 mov w2, 16384 - mov w19, 7 bl ftl_memset - strb wzr, [x22,1857] - ldr x0, [x23,728] - add x23, x22, 1600 - strh wzr, [x22,1858] + strb wzr, [x21,577] + ldr x0, [x19,1240] + mov w19, 7 + strh wzr, [x21,578] ldrb w0, [x0,40] - strb w0, [x22,1856] -.L2433: - add x5, x20, :lo12:.LANCHOR0 + strb w0, [x21,576] +.L2675: + add x6, x20, :lo12:.LANCHOR0 add w0, w19, 8 - sxth w25, w19 - ldr x1, [x5,728] + sxth w24, w19 + ldr x1, [x6,1240] add x0, x1, x0, sxtw - ldrb w1, [x0,32] - cmp w1, 255 - beq .L2429 - ldrh w22, [x5,3634] + ldrb w0, [x0,32] + cmp w0, 255 + beq .L2671 + add x1, x27, :lo12:.LANCHOR3 + ldrb w4, [x6,3360] + ldr x2, [x21,584] + mov x3, x26 + str x6, [x29,104] + ldrh w23, [x1,1330] + mul w23, w0, w23 mov w0, 0 - ldrb w4, [x5,2848] - mov x2, x24 - mov x3, x23 - str x5, [x29,104] - mul w22, w1, w22 - mov w1, w22 + mov w1, w23 bl ftl_read_page cmn w0, #1 - mov w28, w0 - ldr x5, [x29,104] - bne .L2430 - ldrb w4, [x5,2848] + mov w5, w0 + ldr x6, [x29,104] + bne .L2672 + ldr x2, [x21,584] mov w0, 0 - add w1, w22, 1 - mov x2, x24 - mov x3, x23 + ldrb w4, [x6,3360] + add w1, w23, 1 + mov x3, x26 bl ftl_read_page - mov w28, w0 -.L2430: - ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L2431 + mov w5, w0 +.L2672: + ldr w0, [x28,#:lo12:.LANCHOR2] + tbz x0, 12, .L2673 add x0, x20, :lo12:.LANCHOR0 + mov w2, w5 mov w1, w19 - mov w2, w28 - mov w3, 672 - ldr x4, [x0,2880] - mov x0, x26 + mov w3, 744 + str x5, [x29,104] + ldr x4, [x0,3392] + mov x0, x25 ldr w4, [x4] bl printk -.L2431: - cmn w28, #1 - beq .L2429 + ldr x5, [x29,104] +.L2673: + cmn w5, #1 + beq .L2671 add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2880] + ldr x0, [x0,3392] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - beq .L2443 -.L2429: + beq .L2685 +.L2671: sub w19, w19, #1 cmn w19, #1 - bne .L2433 - mov w25, 0 - b .L2432 -.L2443: - mov w19, w25 -.L2432: - adrp x24, .LANCHOR2 - ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 12, .L2434 + bne .L2675 + mov w24, 0 + b .L2674 +.L2685: + mov w19, w24 +.L2674: + adrp x23, .LANCHOR2 + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 12, .L2676 add x0, x20, :lo12:.LANCHOR0 mov w1, w19 mov w2, 4800 - ldr x3, [x0,2880] - adrp x0, .LC183 - add x0, x0, :lo12:.LC183 + ldr x3, [x0,3392] + adrp x0, .LC191 + add x0, x0, :lo12:.LC191 ldr w3, [x3] bl printk -.L2434: +.L2676: cmn w19, #1 - bne .L2435 - add x0, x21, :lo12:.LANCHOR3 + bne .L2677 + add x22, x22, :lo12:.LANCHOR5 mov w1, 0 add x20, x20, :lo12:.LANCHOR0 - add x0, x0, 1920 mov w2, 16384 + ldr x0, [x22,584] bl ftl_memset - ldr x1, [x20,2880] + ldr x1, [x20,3392] mov w0, 21574 movk w0, 0x494c, lsl 16 str w0, [x1] - mov w0, 32 + mov w0, 35 movk w0, 0x6, lsl 16 - ldr x1, [x20,2880] + ldr x1, [x20,3392] str w0, [x1,12] - b .L2460 -.L2435: - add x27, x20, :lo12:.LANCHOR0 - add x23, x21, :lo12:.LANCHOR3 - add w0, w25, 8 - add x22, x23, 1920 - add x19, x23, 1600 - mov x2, x22 - ldr x1, [x27,728] + b .L2702 +.L2677: + add x0, x20, :lo12:.LANCHOR0 + add x21, x22, :lo12:.LANCHOR5 + add x19, x21, 320 + mov w4, 4 + mov x3, x19 + adrp x27, .LC192 + ldr x1, [x0,1240] + add w0, w24, 8 + ldr x2, [x21,584] add x0, x1, x0, sxtw ldrb w1, [x0,32] - mov x3, x19 mov w0, 0 - mov w4, 4 - strb w25, [x23,1857] - strb w1, [x23,1856] + strb w24, [x21,577] + add x27, x27, :lo12:.LC192 + strb w1, [x21,576] bl flash_get_last_written_page - sxth w26, w0 + sxth w25, w0 add w0, w0, 1 - ldrb w23, [x23,1856] - uxth w25, w0 - ldrh w0, [x27,3634] - adrp x27, .LC184 - add x27, x27, :lo12:.LC184 - mul w23, w23, w0 - b .L2437 -.L2460: + ldrb w26, [x21,576] + uxth w24, w0 + adrp x0, .LANCHOR3+1330 + ldrh w0, [x0,#:lo12:.LANCHOR3+1330] + mul w26, w26, w0 + b .L2679 +.L2702: mov w0, w19 - b .L2436 -.L2442: + b .L2678 +.L2684: add x28, x20, :lo12:.LANCHOR0 + ldr x2, [x21,584] mov w0, 0 - add w1, w26, w23 - mov x2, x22 + add w1, w25, w26 mov x3, x19 - ldrb w4, [x28,2848] + ldrb w4, [x28,3360] bl ftl_read_page cmn w0, #1 - bne .L2461 -.L2438: - sub w26, w26, #1 - sxth w26, w26 -.L2437: - tbz w26, #31, .L2442 - b .L2441 -.L2461: - ldr x0, [x28,2880] + bne .L2703 +.L2680: + sub w25, w25, #1 + sxth w25, w25 +.L2679: + tbz w25, #31, .L2684 + b .L2683 +.L2703: + ldr x0, [x28,3392] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - bne .L2438 + bne .L2680 ldr w2, [x19,8] - cbnz w2, .L2439 -.L2441: - add x21, x21, :lo12:.LANCHOR3 + cbnz w2, .L2681 +.L2683: + add x22, x22, :lo12:.LANCHOR5 add x20, x20, :lo12:.LANCHOR0 - strh w25, [x21,1858] + strh w24, [x22,578] bl ftl_tmp_into_update - ldr x1, [x20,2880] + ldr x1, [x20,3392] ldr w0, [x1,64] add w0, w0, 1 str w0, [x1,64] @@ -15701,30 +17153,30 @@ ftl_info_blk_init: bl ftl_info_flush mov w0, 0 bl ftl_info_flush - ldr w0, [x24,#:lo12:.LANCHOR2] + ldr w0, [x23,#:lo12:.LANCHOR2] and w19, w0, 16384 - tbz x0, 14, .L2460 - ldr x1, [x20,2880] - adrp x0, .LC185 - add x0, x0, :lo12:.LC185 + tbz x0, 14, .L2702 + ldr x1, [x20,3392] + adrp x0, .LC193 + add x0, x0, :lo12:.LC193 ldr w1, [x1,156] bl printk mov w0, 0 - b .L2436 -.L2439: - ldrb w1, [x28,2848] - mov x0, x22 - str x2, [x29,104] + b .L2678 +.L2681: + ldrb w1, [x28,3360] + ldr x0, [x21,584] lsl w1, w1, 9 + str x2, [x29,104] bl js_hash ldr x2, [x29,104] cmp w2, w0 - beq .L2441 + beq .L2683 ldr w1, [x19,8] mov x0, x27 bl printk - b .L2438 -.L2436: + b .L2680 +.L2678: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15742,121 +17194,122 @@ ftl_ext_info_flush: stp x21, x22, [sp,32] stp x19, x20, [sp,16] stp x23, x24, [sp,48] - stp x25, x26, [sp,64] + str x25, [sp,64] bl timer_get_time - adrp x22, .LANCHOR0 mov w1, 100 + adrp x21, .LANCHOR0 udiv w0, w0, w1 - add x1, x22, :lo12:.LANCHOR0 - ldr x1, [x1,608] + add x1, x21, :lo12:.LANCHOR0 + ldr x1, [x1,1120] ldr w3, [x1,520] cmp w0, w3 - bls .L2463 + bls .L2705 ldr w2, [x1,12] sub w2, w2, w3 add w2, w2, w0 str w2, [x1,12] - b .L2476 -.L2463: - bcs .L2464 -.L2476: + b .L2718 +.L2705: + bcs .L2706 +.L2718: str w0, [x1,520] -.L2464: +.L2706: adrp x23, .LANCHOR4 - adrp x19, .LANCHOR3 + adrp x22, .LANCHOR5 add x23, x23, :lo12:.LANCHOR4 - add x19, x19, :lo12:.LANCHOR3 + add x22, x22, :lo12:.LANCHOR5 mov w0, 0 - add x23, x23, 432 - add x19, x19, 1600 + add x23, x23, 616 + add x24, x22, 320 bl ftl_total_vpn_update -.L2465: - adrp x24, .LANCHOR5 - add x24, x24, :lo12:.LANCHOR5 - add x25, x24, 960 -.L2468: - add x2, x22, :lo12:.LANCHOR0 - ldr x0, [x2,2880] +.L2710: + add x0, x21, :lo12:.LANCHOR0 + adrp x3, .LANCHOR3 + add x2, x3, :lo12:.LANCHOR3 + mov x19, x3 + ldr x0, [x0,3392] ldr w1, [x0,56] add w1, w1, 1 str w1, [x0,56] ldrh w1, [x0,140] - ldrh w0, [x2,3596] + ldrh w0, [x2,1294] cmp w1, w0 - bcc .L2466 + bcc .L2708 bl ftl_ext_alloc_new_blk -.L2466: - add x0, x22, :lo12:.LANCHOR0 - ldr x0, [x0,2880] +.L2708: + add x0, x21, :lo12:.LANCHOR0 + ldr x0, [x0,3392] ldrh w1, [x0,130] mov w0, 65535 cmp w1, w0 - bne .L2467 + bne .L2709 adrp x0, .LC0 mov x1, x23 - mov w2, 1926 + mov w2, 2203 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2467: - add x20, x22, :lo12:.LANCHOR0 +.L2709: + add x20, x21, :lo12:.LANCHOR0 + add x3, x19, :lo12:.LANCHOR3 mov w0, 24 - ldr x2, [x20,2880] - ldrb w1, [x20,744] - ldrh w21, [x20,3536] - ldrh w3, [x2,130] + ldr x4, [x20,3392] + ldrb w1, [x20,1257] + ldrh w19, [x3,1232] + ldrh w2, [x4,130] sub w1, w0, w1 - sub w1, w1, w21 - mov w21, 1 - asr w26, w3, w1 - lsl w1, w21, w1 - sub w21, w1, #1 - ldrh w0, [x2,140] - and w3, w21, w3 - ldrh w21, [x20,3634] - ldrb w2, [x20,2848] + sub w1, w1, w19 + mov w19, 1 + asr w25, w2, w1 + lsl w1, w19, w1 + sub w19, w1, #1 + ldrh w0, [x4,140] + and w2, w19, w2 + ldrh w19, [x3,1330] mov w1, 0 - sxth w3, w3 + sxth w2, w2 + madd w19, w2, w19, w0 + ldrb w2, [x20,3360] + mov x0, x24 lsl w2, w2, 1 - madd w21, w3, w21, w0 - mov x0, x19 bl ftl_memset - str wzr, [x19] - ldr x0, [x20,2880] - ldrb w1, [x20,2848] + str wzr, [x24] + ldr x0, [x20,3392] + ldrb w1, [x20,3360] ldr w0, [x0,56] lsl w1, w1, 9 - str w0, [x19,4] - mov x0, x25 + str w0, [x24,4] + ldr x0, [x22,600] bl js_hash - str w0, [x19,8] - ldrb w4, [x20,2848] - mov w1, w21 - mov x2, x25 - mov w0, w26 - mov x3, x19 + str w0, [x24,8] + ldr x2, [x22,600] + mov w1, w19 + ldrb w4, [x20,3360] + mov w0, w25 + mov x3, x24 bl ftl_prog_page - ldr x2, [x20,2880] - ldrh w1, [x2,140] - add w1, w1, 1 - uxth w1, w1 - strh w1, [x2,140] - cmp w1, 1 - beq .L2468 + ldr x1, [x20,3392] + ldrh w2, [x1,140] + add w2, w2, 1 + uxth w2, w2 + strh w2, [x1,140] + cmp w2, 1 + beq .L2710 cmn w0, #1 - beq .L2469 - ldrb w0, [x24,898] - cbz w0, .L2470 -.L2469: + beq .L2711 + ldrb w0, [x22,594] + cbz w0, .L2712 +.L2711: +.L2707: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - strb wzr, [x0,898] - b .L2465 -.L2470: + strb wzr, [x0,594] + b .L2710 +.L2712: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldr x25, [sp,64] ldp x29, x30, [sp], 80 ret .size ftl_ext_info_flush, .-ftl_ext_info_flush @@ -15865,124 +17318,124 @@ ftl_ext_info_flush: .type ftl_ext_info_init, %function ftl_ext_info_init: stp x29, x30, [sp, -112]! - mov w1, 24 - mov w2, 1 + mov w4, 4 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - adrp x19, .LANCHOR3 - stp x27, x28, [sp,80] - add x27, x20, :lo12:.LANCHOR0 - add x3, x19, :lo12:.LANCHOR3 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] + adrp x19, .LANCHOR0 + adrp x20, .LANCHOR5 stp x21, x22, [sp,32] - adrp x21, .LANCHOR5 - strh wzr, [x3,-184] - ldr x0, [x27,2880] - add x3, x3, 1600 - mov w4, 4 - adrp x23, .LANCHOR2 - ldrh w22, [x0,130] - ldrb w0, [x27,744] - sub w1, w1, w0 - ldrh w0, [x27,3536] - sub w1, w1, w0 - asr w28, w22, w1 - lsl w1, w2, w1 - sub w1, w1, #1 - add x2, x21, :lo12:.LANCHOR5 - and w22, w1, w22 - uxtb w26, w28 - mov w0, w26 - mov w1, w22 - add x2, x2, 960 + add x22, x19, :lo12:.LANCHOR0 + adrp x21, .LANCHOR3 + stp x25, x26, [sp,64] + stp x23, x24, [sp,48] + stp x27, x28, [sp,80] + add x1, x21, :lo12:.LANCHOR3 + add x3, x20, :lo12:.LANCHOR5 + ldr x0, [x22,3392] + add x3, x3, 320 + ldrb w2, [x22,1257] + strh wzr, [x1,1864] + ldrh w23, [x0,130] + mov w0, 24 + ldrh w1, [x1,1232] + sub w0, w0, w2 + ldr x2, [x3,280] + sub w0, w0, w1 + mov w1, 1 + asr w26, w23, w0 + lsl w0, w1, w0 + sub w0, w0, #1 + and w23, w0, w23 + uxtb w28, w26 + mov w1, w23 + mov w0, w28 bl flash_get_last_written_page sxth w25, w0 - ldr w0, [x23,#:lo12:.LANCHOR2] + adrp x0, .LANCHOR2 + str x0, [x29,104] mov w24, w25 - tbz x0, 12, .L2478 - ldr x5, [x27,2880] + ldr w1, [x0,#:lo12:.LANCHOR2] + tbz x1, 12, .L2720 + ldr x5, [x22,3392] adrp x1, .LANCHOR4 - adrp x0, .LC186 + adrp x0, .LC194 add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC186 - add x1, x1, 456 + add x0, x0, :lo12:.LC194 + add x1, x1, 640 ldrh w5, [x5,130] - mov w2, 1971 + mov w2, 2248 mov w3, w25 - uxth w4, w28 + uxth w4, w26 bl printk -.L2478: - add x21, x21, :lo12:.LANCHOR5 - add x19, x19, :lo12:.LANCHOR3 - adrp x28, .LC187 - mov w27, w25 - add x21, x21, 960 - add x19, x19, 1600 - add x28, x28, :lo12:.LC187 -.L2479: - tbnz w27, #31, .L2484 - add x5, x20, :lo12:.LANCHOR0 - mov w0, w26 - mov x2, x21 - mov x3, x19 - str x5, [x29,104] - ldrh w1, [x5,3634] - ldrb w4, [x5,2848] - madd w1, w22, w1, w27 +.L2720: + add x20, x20, :lo12:.LANCHOR5 + adrp x27, .LC195 + mov w22, w25 + add x26, x20, 320 + add x27, x27, :lo12:.LC195 +.L2721: + tbnz w22, #31, .L2726 + add x0, x21, :lo12:.LANCHOR3 + add x5, x19, :lo12:.LANCHOR0 + ldr x2, [x20,600] + mov x3, x26 + str x5, [x29,96] + ldrh w1, [x0,1330] + mov w0, w28 + ldrb w4, [x5,3360] + madd w1, w23, w1, w22 bl flash_read_page_en cmp w0, 512 - beq .L2480 + beq .L2722 cmn w0, #1 - beq .L2480 - ldr x5, [x29,104] - ldr x0, [x5,608] + beq .L2722 + ldr x5, [x29,96] + ldr x0, [x5,1120] ldr w1, [x0] mov w0, 20038 movk w0, 0x4549, lsl 16 cmp w1, w0 - bne .L2480 - ldr w2, [x19,8] - cbnz w2, .L2481 -.L2484: + bne .L2722 + ldr w2, [x26,8] + cbnz w2, .L2723 +.L2726: bl zftl_sblk_list_init - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2880] + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,3392] ldrh w1, [x0,140] cmp w1, w25 - bgt .L2483 + bgt .L2725 add w24, w24, 1 strh w24, [x0,140] bl ftl_ext_info_flush - b .L2483 -.L2481: - ldrb w1, [x5,2848] - mov x0, x21 - str x2, [x29,104] + b .L2725 +.L2723: + ldrb w1, [x5,3360] + ldr x0, [x20,600] lsl w1, w1, 9 + str x2, [x29,96] bl js_hash - ldr x2, [x29,104] + ldr x2, [x29,96] cmp w2, w0 - beq .L2484 - ldr w1, [x19,8] - mov x0, x28 + beq .L2726 + ldr w1, [x26,8] + mov x0, x27 bl printk -.L2480: - sub w27, w27, #1 - sxth w27, w27 - b .L2479 -.L2483: - add x19, x20, :lo12:.LANCHOR0 - ldr x21, [x19,608] +.L2722: + sub w22, w22, #1 + sxth w22, w22 + b .L2721 +.L2725: + add x19, x19, :lo12:.LANCHOR0 + ldr x20, [x19,1120] bl timer_get_time mov w1, 100 udiv w0, w0, w1 - str w0, [x21,520] - ldr x21, [x19,608] + str w0, [x20,520] + ldr x20, [x19,1120] bl timer_get_time - str w0, [x21,604] - ldr x0, [x19,608] + str w0, [x20,604] + ldr x0, [x19,1120] mov w1, -1 strh w1, [x0,584] strh w1, [x0,586] @@ -15992,9 +17445,10 @@ ftl_ext_info_init: str w1, [x0,560] mov w1, -1 str w1, [x0,564] - ldr w1, [x23,#:lo12:.LANCHOR2] + ldr x1, [x29,104] str wzr, [x0,608] - tbz x1, 12, .L2486 + ldr w1, [x1,#:lo12:.LANCHOR2] + tbz x1, 12, .L2728 ldr w2, [x0,520] ldr w3, [x0,12] str x2, [x29,96] @@ -16002,21 +17456,21 @@ ftl_ext_info_init: bl timer_get_time mov w4, w0 adrp x1, .LANCHOR4 - adrp x0, .LC188 + adrp x0, .LC196 add x1, x1, :lo12:.LANCHOR4 ldr x2, [x29,96] ldr x3, [x29,104] - add x0, x0, :lo12:.LC188 - add x1, x1, 456 + add x0, x0, :lo12:.LC196 + add x1, x1, 640 bl printk -.L2486: - add x0, x20, :lo12:.LANCHOR0 - mov w1, -1 - strh w1, [x0,3512] - mov w0, 0 +.L2728: + add x21, x21, :lo12:.LANCHOR3 + mov w0, -1 ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] + strh w0, [x21,1208] + mov w0, 0 + ldp x21, x22, [sp,32] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 @@ -16027,12 +17481,12 @@ ftl_ext_info_init: .type ftl_prog_ppa_page, %function ftl_prog_ppa_page: mov w8, w0 - adrp x0, .LANCHOR0+744 + adrp x0, .LANCHOR0+1257 stp x29, x30, [sp, -16]! mov w5, 24 mov x10, x1 add x29, sp, 0 - ldrb w6, [x0,#:lo12:.LANCHOR0+744] + ldrb w6, [x0,#:lo12:.LANCHOR0+1257] mov x9, x2 mov w4, w3 mov x2, x10 @@ -16054,647 +17508,62 @@ ftl_prog_ppa_page: .global ftl_write_last_log_page .type ftl_write_last_log_page, %function ftl_write_last_log_page: - stp x29, x30, [sp, -80]! - adrp x1, .LANCHOR3-200 + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] stp x21, x22, [sp,32] - str x23, [sp,48] - mov w21, -1 - ldr x20, [x1,#:lo12:.LANCHOR3-200] + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] + adrp x22, .LANCHOR3 + mov w19, -1 ldrh w1, [x0,6] - ldrh w22, [x0,12] + add x22, x22, :lo12:.LANCHOR3 + ldrh w23, [x0,12] cmp w1, 1 - bne .L2501 - mov x19, x0 + ldr x21, [x22,1848] + bne .L2743 + mov x20, x0 bl ftl_get_new_free_page cmn w0, #1 - mov w23, w0 - mov w21, 0 - beq .L2501 - ldrh w0, [x19] - add x22, x20, x22, uxth 2 - adrp x19, .LANCHOR6 - adrp x20, .LANCHOR0 - add x19, x19, :lo12:.LANCHOR6 - add x20, x20, :lo12:.LANCHOR0 + mov w24, w0 + mov w19, 0 + beq .L2743 + ldrh w0, [x20] + add x23, x21, x23, uxth 2 + adrp x21, .LANCHOR5 + add x21, x21, :lo12:.LANCHOR5 bl ftl_vpn_decrement + add x20, x21, 640 mov w0, 15555 - sub x2, x19, #64 + ldrh w1, [x22,1294] movk w0, 0xf55f, lsl 16 - ldrh w1, [x20,3596] - str w0, [x19,-64] - ldrb w0, [x20,3572] - str x2, [x29,72] + str w0, [x21,640] + ldrb w0, [x22,1249] mul w1, w1, w0 - mov x0, x22 + mov x0, x23 lsl w1, w1, 2 bl js_hash - str w0, [x19,-60] - ldr x2, [x29,72] - mov w0, w23 - ldrb w3, [x20,2848] - mov x1, x22 - str w21, [x19,-56] - str w21, [x19,-52] + str w0, [x21,644] + add x1, x21, 656 + mov x2, 0 + mov w0, 2 + str w19, [x21,648] + str w19, [x21,652] + str w19, [x21,656] + bl ftl_debug_info_fill + adrp x3, .LANCHOR0+3360 + mov w0, w24 + mov x1, x23 + mov x2, x20 + ldrb w3, [x3,#:lo12:.LANCHOR0+3360] bl ftl_prog_ppa_page -.L2501: - mov w0, w21 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 - ret - .size ftl_write_last_log_page, .-ftl_write_last_log_page - .align 2 - .global ftl_open_sblk_recovery - .type ftl_open_sblk_recovery, %function -ftl_open_sblk_recovery: - stp x29, x30, [sp, -336]! - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - stp x19, x20, [sp,16] - mov x19, x0 - str x1, [x29,120] - ldr w0, [x22,#:lo12:.LANCHOR2] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - tbz x0, 12, .L2506 - adrp x0, .LC189 - ldrh w1, [x19,2] - add x0, x0, :lo12:.LC189 - bl printk -.L2506: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2507 - adrp x0, .LC190 - ldrb w1, [x19,5] - add x0, x0, :lo12:.LC190 - bl printk -.L2507: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2508 - adrp x0, .LC191 - ldrh w1, [x19] - add x0, x0, :lo12:.LC191 - bl printk -.L2508: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2509 - adrp x0, .LC192 - ldrh w1, [x19,16] - ldrh w2, [x19,18] - add x0, x0, :lo12:.LC192 - bl printk -.L2509: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2510 - adrp x0, .LC193 - ldrb w1, [x19,9] - add x0, x0, :lo12:.LC193 - bl printk -.L2510: - ldrh w0, [x19,10] - adrp x20, .LANCHOR0 - strh w0, [x19,14] - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x19] - ldrh w0, [x0,576] - cmp w1, w0 - bcs .L2505 - mov w0, 1 - add x21, x29, 144 - add x26, x29, 272 - mov w27, 2 - bl buf_alloc - mov x25, x0 - mov w1, 255 - mov w2, 64 - mov x0, x21 - bl ftl_memset - mov w1, 255 - mov w2, 64 - add x0, x29, 208 - bl ftl_memset - mov x0, x26 - mov w1, 255 - mov w2, 64 - bl ftl_memset - ldrb w23, [x19,5] - adrp x0, .LANCHOR3 - ldrh w24, [x19,2] - add x0, x0, :lo12:.LANCHOR3 - str wzr, [x29,136] - add x28, x0, 1600 - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 480 - str x0, [x29,112] -.L2512: - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,3596] - cmp w0, w24 - bls .L2515 - ldrb w23, [x19,5] -.L2513: - ldrb w0, [x19,9] - cmp w0, w23 - bls .L2643 - add x0, x19, x23, sxtw 1 - ldrh w0, [x0,16] - mov w1, 65535 - cmp w0, w1 - beq .L2514 - add x3, x20, :lo12:.LANCHOR0 - ldr x2, [x25,24] - ldrh w1, [x3,3634] - ldrb w3, [x3,2848] - madd w0, w0, w1, w24 - ldr x1, [x25,8] - str w0, [x29,132] - bl ftl_read_ppa_page - cmp w0, 512 - mov w3, w0 - beq .L2515 - cmn w0, #1 - beq .L2516 - ldr x0, [x25,24] - ldr w1, [x0] - cmn w1, #1 - bne .L2516 - ldr w0, [x0,4] - cmn w0, #1 - bne .L2516 - ldr x0, [x25,8] - ldr w0, [x0] - cmn w0, #1 - beq .L2515 -.L2516: - adrp x0, .LANCHOR5+897 - mov w1, 1 - strb w1, [x0,#:lo12:.LANCHOR5+897] - ldrb w0, [x19,9] - ldrh w1, [x19,10] - madd w0, w24, w0, w23 - cmp w1, w0 - beq .L2517 - ldr x1, [x29,112] - adrp x0, .LC0 - mov w2, 1498 - add x0, x0, :lo12:.LC0 - str x3, [x29,136] - bl printk - bl dump_stack - ldr x3, [x29,136] -.L2517: - ldrh w0, [x19,10] - ldrh w1, [x19,6] - ldrb w2, [x19,9] - add w1, w1, w0 - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,3596] - mul w0, w0, w2 - cmp w1, w0 - beq .L2518 - ldr x1, [x29,112] - adrp x0, .LC0 - mov w2, 1499 - add x0, x0, :lo12:.LC0 - str x3, [x29,136] - bl printk - bl dump_stack - ldr x3, [x29,136] -.L2518: - cmn w3, #1 - beq .L2522 - ldr x0, [x25,24] - ldr w0, [x0,4] - cmn w0, #1 - beq .L2522 - bl lpa_hash_get_ppa - ldr x1, [x29,120] - cbz x1, .L2520 - ldr x7, [x25,24] - ldr w1, [x7,8] - cmp w0, w1 - beq .L2520 - cmn w0, #1 - beq .L2520 - add x27, x20, :lo12:.LANCHOR0 - mov w6, 24 - mov w4, 1 - ldrb w2, [x27,744] - ldrh w1, [x27,3536] - sub w2, w6, w2 - lsr w3, w0, w1 - sub w1, w2, w1 - lsl w1, w4, w1 - ldrb w2, [x27,3538] - sub w1, w1, #1 - and w1, w3, w1 - udiv w1, w1, w2 - ldr x2, [x29,120] - ldrh w2, [x2] - cmp w2, w1, uxth - bne .L2520 - ldr w7, [x7] - mov x2, x28 - ldr x1, [x25,8] - ldrb w3, [x27,2848] - str x4, [x29,96] - str x6, [x29,104] - str x7, [x29,136] - bl ftl_read_ppa_page - ldr w0, [x28] - ldr x7, [x29,136] - ldr x6, [x29,104] - cmp w0, w7 - ldr x4, [x29,96] - bcc .L2520 - ldr x0, [x25,24] - ldr w1, [x0,8] - cmn w1, #1 - beq .L2522 - ldrb w2, [x27,744] - ldrh w0, [x27,3536] - sub w6, w6, w2 - sub w6, w6, w0 - lsr w1, w1, w0 - lsl w4, w4, w6 - ldrb w0, [x27,3538] - sub w4, w4, #1 - and w1, w4, w1 - udiv w0, w1, w0 - bl ftl_vpn_decrement - b .L2522 -.L2520: - ldr x2, [x25,24] - add x1, x20, :lo12:.LANCHOR0 - ldr w3, [x2,4] - ldr w0, [x1,2856] - cmp w3, w0 - bcs .L2522 - ldrb w0, [x19,9] - ldrh w4, [x1,3596] - ldrh w3, [x19,10] - mul w0, w0, w4 - sub w0, w0, #1 - cmp w3, w0 - blt .L2644 -.L2522: - ldrh w0, [x19,6] - mov w27, 4 - sub w0, w0, #1 - strh w0, [x19,6] - ldrh w0, [x19,10] - add w0, w0, 1 - strh w0, [x19,10] - mov w0, 1 - str w0, [x29,136] -.L2514: - add w23, w23, 1 - uxth w23, w23 - b .L2513 -.L2643: - add w24, w24, 1 - strb wzr, [x19,5] - uxth w24, w24 - b .L2512 -.L2515: - add x2, x20, :lo12:.LANCHOR0 - ldrh w0, [x19,10] - ldrh w1, [x19,6] - strh w24, [x19,2] - add w1, w1, w0 - ldrh w2, [x2,3596] - ldrb w0, [x19,9] - strb w23, [x19,5] - mul w0, w0, w2 - cmp w1, w0 - beq .L2526 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 1579 - add x1, x1, 480 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L2526: - adrp x1, .LANCHOR3 - ldrh w3, [x19,10] - add x0, x1, :lo12:.LANCHOR3 - str x1, [x29,120] - ldr x4, [x0,-200] - mov w0, 0 - mov w2, w0 -.L2527: - cmp w2, w3 - bcs .L2645 - ldrh w1, [x19,12] - add w1, w2, w1 - ldr w1, [x4,x1,lsl 2] - cmn w1, #1 - beq .L2528 - add w1, w0, 1 - uxth w0, w1 -.L2528: - add w2, w2, 1 - b .L2527 -.L2645: - add x2, x20, :lo12:.LANCHOR0 - ldrb w1, [x19,9] - sub w0, w0, w3 - ldrh w23, [x2,3596] - madd w0, w1, w23, w0 - uxth w23, w0 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2530 - ldrh w1, [x19] - adrp x0, .LC194 - ldr x4, [x2,600] - add x0, x0, :lo12:.LC194 - ubfiz x3, x1, 1, 16 - mov w2, w23 - ldrh w3, [x4,x3] - bl printk -.L2530: - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x19] - ldr x0, [x0,600] - strh w23, [x0,x1,lsl 1] - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L2531 - adrp x0, .LC195 - ldr w1, [x29,144] - ldr w2, [x29,148] - add x0, x0, :lo12:.LC195 - ldr w3, [x29,152] - ldr w4, [x29,156] - bl printk -.L2531: - add x0, x20, :lo12:.LANCHOR0 - mov w1, 0 - adrp x28, .LC197 - mov x24, 0 - ldrb w2, [x0,2848] - ldr x0, [x25,8] - lsl w2, w2, 9 - bl ftl_memset - adrp x0, .LC196 - add x0, x0, :lo12:.LC196 - str x0, [x29,112] - add x0, x28, :lo12:.LC197 - str x0, [x29,104] -.L2532: - add x3, x20, :lo12:.LANCHOR0 - str w24, [x29,132] - ldrb w0, [x3,3572] - mul w0, w27, w0 - cmp w24, w0 - bcs .L2646 - ldr w0, [x21,x24,lsl 2] - cmn w0, #1 - bne .L2533 -.L2537: - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x25,24] - ldr x1, [x1,2880] - ldr w1, [x1,8] - str w1, [x0] - mov w1, -1 - mov w23, w1 - ldr x0, [x25,24] - str w1, [x0,4] - ldr x0, [x25,24] - str w1, [x0,8] - ldr x0, [x25,24] - str wzr, [x0,12] - ldr x0, [x25,8] - str wzr, [x0] - b .L2534 -.L2533: - ldr x1, [x25,8] - ldr x2, [x25,24] - ldrb w3, [x3,2848] - bl ftl_read_ppa_page - mov w23, w0 - ldr x0, [x25,24] - ldr w0, [x0,4] - bl lpa_hash_get_ppa - mov w28, w0 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L2535 - ldr x3, [x25,24] - mov w1, w28 - ldr x0, [x29,112] - ldr w2, [x21,x24,lsl 2] - ldr w3, [x3,4] - bl printk -.L2535: - ldr w0, [x21,x24,lsl 2] - mov w1, 1 - cmp w28, w0 - ldr x0, [x25,24] - csinv w23, w23, wzr, eq - cmn w23, #1 - str w28, [x0,8] - ldr x0, [x25,24] - str w1, [x0,12] - beq .L2537 -.L2534: - ldr w0, [x29,136] - cbz w0, .L2539 -.L2642: - ldrh w0, [x19,6] - cmp w0, 1 - bls .L2539 - mov x0, x19 - bl ftl_get_new_free_page - mov w28, w0 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L2541 - ldr x2, [x25,24] - mov w1, w28 - ldrh w0, [x19,12] - ldrh w3, [x19,10] - ldr w2, [x2,4] - add w3, w3, w0 - ldr x0, [x29,104] - sub w3, w3, #1 - bl printk -.L2541: - add x3, x20, :lo12:.LANCHOR0 - ldr w1, [x29,132] - ldrh w0, [x19,6] - ldrb w2, [x3,3572] - mul w2, w27, w2 - add w2, w2, 1 - sub w2, w2, w1 - cmp w0, w2 - bls .L2539 - ldr x1, [x25,8] - mov w0, w28 - ldr x2, [x25,24] - ldrb w3, [x3,2848] - bl ftl_prog_ppa_page - mov w2, w0 - ldrh w0, [x19] - str x2, [x29,96] - bl ftl_vpn_decrement - ldr x2, [x29,96] - cmn w23, #1 - cset w1, ne - cmn w2, #1 - beq .L2542 - cbz w1, .L2539 - add x0, x29, 208 - ldrh w1, [x19,10] - str w28, [x0,x24,lsl 2] - ldrh w0, [x19,12] - add w0, w1, w0 - sub w0, w0, #1 - str w0, [x26,x24,lsl 2] - b .L2539 -.L2542: - cbnz w1, .L2642 -.L2539: - add x24, x24, 1 - b .L2532 -.L2646: - adrp x23, .LC198 - adrp x24, .LC197 - mov x28, 0 - add x23, x23, :lo12:.LC198 - add x24, x24, :lo12:.LC197 -.L2546: - add x3, x20, :lo12:.LANCHOR0 - ldrb w0, [x3,3572] - mul w0, w27, w0 - cmp w0, w28 - bls .L2647 - add x0, x29, 208 - ldr w0, [x0,x28,lsl 2] - cmn w0, #1 - beq .L2548 - ldr w0, [x21,x28,lsl 2] - ldr x1, [x25,8] - ldr x2, [x25,24] - ldrb w3, [x3,2848] - bl ftl_read_ppa_page - cmp w0, 256 - beq .L2558 - cmn w0, #1 - bne .L2548 -.L2558: - add x3, x20, :lo12:.LANCHOR0 - add x0, x29, 208 - ldr x1, [x25,8] - ldr x2, [x25,24] - ldr w0, [x0,x28,lsl 2] - ldrb w3, [x3,2848] - bl ftl_read_ppa_page - mov w4, w0 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L2551 - ldr x2, [x25,24] - mov w1, w4 - ldr w3, [x21,x28,lsl 2] - mov x0, x24 - str x4, [x29,136] - ldr w2, [x2,8] - bl printk - ldr x4, [x29,136] -.L2551: - cmn w4, #1 - beq .L2548 - ldr x1, [x25,24] - ldr w2, [x21,x28,lsl 2] - ldr w0, [x1,8] - cmp w2, w0 - bne .L2548 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L2552 - ldr w1, [x1,4] - mov x0, x23 - ldr w3, [x26,x28,lsl 2] - bl printk -.L2552: - ldr x1, [x25,24] - ldr w2, [x26,x28,lsl 2] - ldr w0, [x1,4] - ldr w1, [x1,8] - bl lpa_hash_update_ppa -.L2548: - add x28, x28, 1 - b .L2546 -.L2647: - mov x0, x25 - str x3, [x29,136] - bl zbuf_free - ldr x3, [x29,136] - ldrb w2, [x19,9] - ldrh w0, [x19,12] - ldrh w1, [x3,3596] - madd w0, w1, w2, w0 - ldr x1, [x29,120] - mov x2, -4 - add x0, x2, x0, sxtw 2 - add x1, x1, :lo12:.LANCHOR3 - ldr x1, [x1,-200] - ldr w0, [x1,x0] - cmn w0, #1 - beq .L2554 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 1670 - add x1, x1, 480 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L2554: - ldrh w0, [x19,6] - cmp w0, 1 - bne .L2505 - mov x0, x19 - bl ftl_write_last_log_page - b .L2505 -.L2644: - ldr x0, [x1,2880] - ldr w2, [x2] - ldr w1, [x0,8] - cmp w2, w1 - bls .L2523 - str w2, [x0,8] -.L2523: - ldr x1, [x25,24] - ldrh w0, [x19,10] - ldrh w2, [x19,12] - add w2, w2, w0 - ldr w0, [x1,4] - ldr w1, [x1,8] - bl lpa_hash_update_ppa - ldr w0, [x21,4] - str w0, [x21] - ldr w0, [x21,8] - str w0, [x21,4] - ldr w0, [x21,12] - str w0, [x21,8] - ldr w0, [x29,132] - str w0, [x21,12] - b .L2522 -.L2505: +.L2743: + mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 336 + ldp x29, x30, [sp], 64 ret - .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery + .size ftl_write_last_log_page, .-ftl_write_last_log_page .align 2 .global pm_write_page .type pm_write_page, %function @@ -16713,98 +17582,102 @@ pm_write_page: mov x24, x1 adrp x25, .LANCHOR0 add x23, x23, :lo12:.LC0 - add x22, x22, 504 -.L2649: - add x2, x25, :lo12:.LANCHOR0 + add x22, x22, 664 +.L2748: + add x0, x25, :lo12:.LANCHOR0 adrp x19, .LANCHOR0 - ldr x0, [x2,2880] + ldr x0, [x0,3392] ldr w1, [x0,48] ldrh w3, [x0,696] add w1, w1, 1 str w1, [x0,48] - ldrh w1, [x2,3596] - cmp w3, w1 - bcs .L2650 + adrp x1, .LANCHOR3 + add x2, x1, :lo12:.LANCHOR3 + mov x20, x1 + ldrh w2, [x2,1294] + cmp w3, w2 + bcs .L2749 ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2651 -.L2650: + bne .L2750 +.L2749: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush -.L2651: +.L2750: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2880] + ldr x0, [x0,3392] ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2652 + bne .L2751 mov x1, x22 - mov w2, 263 + mov w2, 303 mov x0, x23 bl printk bl dump_stack -.L2652: +.L2751: add x19, x19, :lo12:.LANCHOR0 - adrp x20, .LANCHOR6 - add x26, x20, :lo12:.LANCHOR6 + add x0, x20, :lo12:.LANCHOR3 + adrp x20, .LANCHOR5 + add x26, x20, :lo12:.LANCHOR5 + ldr x2, [x19,3392] + ldrh w1, [x0,1330] + ldrh w27, [x2,692] + ldrh w0, [x2,696] mov w2, 64 - ldr x0, [x19,2880] - ldrh w1, [x19,3634] - ldrh w27, [x0,692] - ldrh w0, [x0,696] madd w27, w27, w1, w0 - ldr x0, [x26,192] + ldr x0, [x26,896] mov w1, 0 bl ftl_memset - ldr x0, [x26,192] + ldr x0, [x26,896] str w21, [x0] - ldr x1, [x19,2880] - ldr x0, [x26,192] + ldr x1, [x19,3392] + ldr x0, [x26,896] ldr w1, [x1,48] str w1, [x0,4] mov x0, x24 - ldrb w1, [x19,2848] - ldr x28, [x26,192] + ldrb w1, [x19,3360] + ldr x28, [x26,896] lsl w1, w1, 9 bl js_hash str w0, [x28,8] - ldr x0, [x19,2880] - mov w1, w27 - ldr x3, [x26,192] + ldr x0, [x19,3392] mov x2, x24 - ldrb w4, [x19,2848] + ldr x3, [x26,896] + mov w1, w27 + ldrb w4, [x19,3360] ldrb w0, [x0,694] bl ftl_prog_page - ldr x1, [x19,2880] - ldrh w2, [x1,696] + ldr x3, [x19,3392] + ldrh w2, [x3,696] add w2, w2, 1 uxth w2, w2 - strh w2, [x1,696] + strh w2, [x3,696] cmp w2, 1 - beq .L2653 - ldrb w2, [x26,200] - cbz w2, .L2654 -.L2653: - add x20, x20, :lo12:.LANCHOR6 - strb wzr, [x20,200] - b .L2649 -.L2654: + beq .L2752 + ldrb w1, [x26,904] + cbz w1, .L2753 +.L2752: + add x20, x20, :lo12:.LANCHOR5 + strb wzr, [x20,904] + b .L2748 +.L2753: cmn w0, #1 - bne .L2656 - adrp x0, .LC199 + bne .L2755 + adrp x0, .LC197 mov w1, w27 - add x0, x0, :lo12:.LC199 + add x0, x0, :lo12:.LC197 bl printk - b .L2649 -.L2656: - ldrh w0, [x1,698] + b .L2748 +.L2755: + ldrh w0, [x3,698] cmp w21, w0 - bcs .L2657 - add x21, x1, x21, uxtw 2 + bcs .L2756 + add x21, x3, x21, uxtw 2 str w27, [x21,704] -.L2657: +.L2756: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -16822,252 +17695,279 @@ ftl_dump_write_open_sblk: stp x29, x30, [sp,48] add x29, sp, 48 stp x21, x22, [sp,80] - adrp x22, .LANCHOR0 - stp x23, x24, [sp,96] - uxth w23, w0 - add x0, x22, :lo12:.LANCHOR0 + adrp x21, .LANCHOR0 + uxth w22, w0 + add x0, x21, :lo12:.LANCHOR0 stp x19, x20, [sp,64] + stp x23, x24, [sp,96] stp x25, x26, [sp,112] stp x27, x28, [sp,128] - ldrh w1, [x0,576] - cmp w1, w23 - bls .L2661 - ldrb w1, [x0,3568] - cbnz w1, .L2663 - ldrb w0, [x0,3554] - cbz w0, .L2661 -.L2663: - add x1, x22, :lo12:.LANCHOR0 - ubfiz x19, x23, 2, 16 - mov w27, 1 - ldr x0, [x1,584] + ldrh w0, [x0,1088] + cmp w0, w22 + bls .L2760 + adrp x20, .LANCHOR3 + add x0, x20, :lo12:.LANCHOR3 + ldrb w1, [x0,1264] + cbnz w1, .L2762 + ldrb w0, [x0,1250] + cbz w0, .L2760 +.L2762: + add x0, x21, :lo12:.LANCHOR0 + ldrb w1, [x0,1268] + cbnz w1, .L2760 + ldr x0, [x0,1096] + ubfiz x19, x22, 2, 16 + mov w24, 1 add x0, x0, x19 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 160 - bne .L2664 - ldrb w27, [x1,3553] -.L2664: - add x24, x29, 128 - mov w0, w23 - add x1, x24, 16 - strh w23, [x29,128] - mov w21, 0 - adrp x25, .LC201 + bne .L2763 + add x0, x20, :lo12:.LANCHOR3 + ldrb w24, [x0,1248] +.L2763: + add x23, x29, 128 + mov w0, w22 + add x1, x23, 16 + strh w22, [x29,128] + mov w27, 0 + adrp x26, .LC199 bl ftl_get_blk_list_in_sblk uxtb w0, w0 - add x1, x22, :lo12:.LANCHOR0 + add x1, x20, :lo12:.LANCHOR3 strb w0, [x29,137] strh wzr, [x29,130] - mov w20, w21 + mov w28, w27 strb wzr, [x29,133] - mov w26, w21 - ldrh w2, [x1,3596] - add x25, x25, :lo12:.LC201 + mov w25, w27 + ldrh w1, [x1,1294] + add x26, x26, :lo12:.LC199 strh wzr, [x29,138] - mul w0, w0, w2 + mul w0, w0, w1 strh w0, [x29,134] - ldr x0, [x1,584] + add x0, x21, :lo12:.LANCHOR0 + ldr x0, [x0,1096] add x1, x0, x19 ldrh w4, [x0,x19] ldr w5, [x0,x19] - adrp x0, .LC200 + adrp x0, .LC198 ldrb w3, [x1,2] and w4, w4, 2047 - mov w1, w23 + mov w1, w22 ubfx x5, x5, 11, 8 ubfx x2, x3, 5, 3 - add x0, x0, :lo12:.LC200 + add x0, x0, :lo12:.LC198 ubfx x3, x3, 3, 2 bl printk mov w0, 1 bl buf_alloc mov x19, x0 - mov w8, 65535 -.L2665: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,3596] - cmp w0, w20 - bls .L2686 - lsl w28, w20, 1 - mov w26, 0 - sub w28, w28, #1 -.L2675: - ldrb w0, [x24,9] - cmp w0, w26 - bls .L2690 - mov w21, 1 - sxtw x9, w26 -.L2674: - cmp w21, w27 - bhi .L2691 - add x0, x9, 8 - ldrh w5, [x24,x0,lsl 1] - cmp w5, w8 - beq .L2667 - add x0, x22, :lo12:.LANCHOR0 - cmp w27, 3 - ldrh w2, [x0,3634] - mul w2, w5, w2 - bne .L2668 - add w2, w2, w20 - orr w3, w2, w21, lsl 24 - b .L2669 -.L2668: - cmp w27, 2 - add w3, w2, w20 - bne .L2669 - ldrb w3, [x0,3553] - add w2, w2, w28 - add w2, w2, w21 - orr w3, w2, w3, lsl 24 -.L2669: +.L2764: + add x0, x20, :lo12:.LANCHOR3 + ldrh w0, [x0,1294] + cmp w0, w28 + bls .L2788 + lsl w0, w28, 1 + add w25, w0, w28 + sub w0, w0, #1 + sub w1, w25, #1 + str w0, [x29,120] + str w1, [x29,124] + mov w25, 0 +.L2776: + ldrb w0, [x23,9] + cmp w0, w25 + bls .L2800 + sxtw x0, w25 + mov w27, 1 + str x0, [x29,112] +.L2775: + cmp w27, w24 + bhi .L2801 + ldr x0, [x29,112] + add x0, x0, 8 + ldrh w2, [x23,x0,lsl 1] + mov w0, 65535 + cmp w2, w0 + beq .L2766 + add x1, x20, :lo12:.LANCHOR3 + cmp w24, 3 + ldrh w0, [x1,1330] + mul w0, w2, w0 + bne .L2767 + add x3, x21, :lo12:.LANCHOR0 + ldrb w3, [x3,1269] + cbz w3, .L2768 + ldr w3, [x29,124] + b .L2799 +.L2768: + add w0, w0, w28 + orr w3, w0, w27, lsl 24 + b .L2769 +.L2767: + cmp w24, 2 + add w3, w0, w28 + bne .L2769 + ldr w3, [x29,120] +.L2799: + add w0, w0, w3 + ldrb w3, [x1,1248] + add w0, w0, w27 + orr w3, w0, w3, lsl 24 +.L2769: str w3, [x19,40] - mov w1, 1 mov x0, x19 - str x8, [x29,96] - str x9, [x29,104] - str x5, [x29,112] - str x3, [x29,120] + mov w1, 1 + str x2, [x29,96] + str x3, [x29,104] bl sblk_read_page + ldr w4, [x19,52] + ldr x3, [x29,104] + cmp w4, 512 + ldr x2, [x29,96] + cset w11, eq + cmn w4, #1 + beq .L2789 + cbz w11, .L2766 +.L2789: ldr x7, [x19,8] - mov w2, w20 ldr x0, [x19,24] - ldr w10, [x19,52] + str x11, [x29,104] ldr w1, [x7,12] str w1, [sp] - mov w4, w10 - ldr x5, [x29,112] ldr w1, [x0] str w1, [sp,8] - ldr x3, [x29,120] ldr w1, [x0,4] str w1, [sp,16] - str x10, [x29,120] ldr w1, [x0,8] str w1, [sp,24] - mov w1, w5 + mov w1, w2 + mov w2, w28 ldr w0, [x0,12] str w0, [sp,32] - mov x0, x25 + mov x0, x26 ldr w5, [x7] ldr w6, [x7,4] ldr w7, [x7,8] bl printk - ldr x10, [x29,120] - ldr x9, [x29,104] - cmp w10, 512 - ldr x8, [x29,96] - beq .L2686 -.L2667: - add w21, w21, 1 - uxth w21, w21 - b .L2674 -.L2691: - add w26, w26, 1 - uxth w26, w26 - b .L2675 -.L2690: - add w20, w20, 1 - uxth w20, w20 - b .L2665 -.L2686: -.L2671: - adrp x0, .LC202 - mov w4, w21 - mov w2, w20 - mov w3, w26 - mov w1, w23 - mov w25, w20 - add x0, x0, :lo12:.LC202 - add x20, x22, :lo12:.LANCHOR0 - adrp x21, .LC203 - mov w27, 24 + ldr x11, [x29,104] + cbnz w11, .L2788 +.L2766: + add w9, w27, 1 + uxth w27, w9 + b .L2775 +.L2801: + add w10, w25, 1 + uxth w25, w10 + b .L2776 +.L2800: + add w8, w28, 1 + uxth w28, w8 + b .L2764 +.L2788: +.L2773: + adrp x0, .LC200 + mov w3, w25 + mov w4, w27 + mov w2, w28 + mov w1, w22 + add x25, x21, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LC200 + adrp x26, .LC201 + mov w24, w28 + add x26, x26, :lo12:.LC201 bl printk - add x21, x21, :lo12:.LC203 - ldrb w2, [x20,2848] + mov w27, 24 + ldrb w2, [x25,3360] mov w1, 0 ldr x0, [x19,8] mov w28, 1 lsl w2, w2, 9 bl ftl_memset - ldrb w2, [x20,2848] + ldrb w2, [x25,3360] mov w1, 0 ldr x0, [x19,24] lsl w2, w2, 1 bl ftl_memset -.L2676: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,3596] +.L2777: + add x0, x20, :lo12:.LANCHOR3 + ldrh w0, [x0,1294] + cmp w0, w24 + bls .L2783 + lsl w0, w24, 1 + mov w25, 0 + str w0, [x29,124] +.L2784: + ldrb w0, [x23,9] cmp w0, w25 - bls .L2681 - lsl w26, w25, 1 - mov w20, 0 -.L2682: - ldrb w0, [x24,9] - cmp w0, w20 - bls .L2692 - mov w2, w20 - mov x0, x21 - mov w1, w25 + bls .L2802 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2778 + mov x0, x26 + mov w1, w24 + mov w2, w25 bl printk - add x4, x22, :lo12:.LANCHOR0 - sxtw x0, w20 - ldrb w5, [x4,3568] - ldrh w2, [x4,3634] - cbz w5, .L2677 +.L2778: + add x1, x20, :lo12:.LANCHOR3 + sxtw x0, w25 + ldrb w5, [x1,1264] + ldrh w2, [x1,1330] + cbz w5, .L2779 add x0, x0, 8 - ldrh w0, [x24,x0,lsl 1] + ldrh w0, [x23,x0,lsl 1] mul w2, w0, w2 mov x0, x19 - orr w2, w2, w25 + orr w2, w2, w24 str w2, [x19,40] bl sblk_3d_tlc_dump_prog - b .L2678 -.L2677: + b .L2780 +.L2779: add x0, x0, 8 - ldrb w1, [x4,3553] + ldrb w1, [x1,1248] cmp w1, 2 - ldrh w0, [x24,x0,lsl 1] + ldrh w0, [x23,x0,lsl 1] mul w2, w0, w2 - bne .L2679 - orr w2, w2, w26 + bne .L2781 + ldr w0, [x29,124] + orr w2, w2, w0 mov x0, x19 orr w2, w2, 33554432 str w2, [x19,40] bl sblk_mlc_dump_prog - b .L2678 -.L2679: - ldrb w0, [x4,744] - orr w2, w2, w25 - ldrb w4, [x4,2848] + b .L2780 +.L2781: + add x4, x21, :lo12:.LANCHOR0 + orr w2, w2, w24 + str w2, [x19,40] + ldrb w0, [x4,1257] + ldrb w4, [x4,3360] sub w1, w27, w0 lsl w0, w28, w0 sub w0, w0, #1 lsr w3, w2, w1 lsl w1, w0, w1 - str w2, [x19,40] and w0, w3, w0 bic w1, w2, w1 ldr x3, [x19,24] ldr x2, [x19,8] bl flash_prog_page_en -.L2678: - add w20, w20, 1 - uxth w20, w20 - b .L2682 -.L2692: +.L2780: add w25, w25, 1 uxth w25, w25 - b .L2676 -.L2681: + b .L2784 +.L2802: + add w24, w24, 1 + uxth w24, w24 + b .L2777 +.L2783: mov x0, x19 bl zbuf_free - adrp x0, .LC204 - mov w1, w23 - add x0, x0, :lo12:.LC204 + adrp x0, .LC202 + mov w1, w22 + add x0, x0, :lo12:.LC202 bl printk -.L2661: +.L2760: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -17079,278 +17979,11 @@ ftl_dump_write_open_sblk: ret .size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk .align 2 - .global ftl_ink_check_sblk - .type ftl_ink_check_sblk, %function -ftl_ink_check_sblk: - stp x29, x30, [sp, -144]! - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - add x22, x21, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - uxth w20, w0 - ubfiz x24, x20, 2, 16 - ldr x0, [x22,584] - mov w1, w20 - ldrh w2, [x0,x24] - ldr w3, [x0,x24] - adrp x0, .LC205 - add x0, x0, :lo12:.LC205 - and w2, w2, 2047 - ubfx x3, x3, 11, 8 - bl printk - mov w0, 65535 - cmp w20, w0 - beq .L2693 - ldrh w0, [x22,576] - cmp w0, w20 - bls .L2693 - mov w1, 0 - mov w0, w20 - add x23, x29, 112 - bl ftl_erase_sblk - strh w20, [x29,112] - add x1, x23, 16 - mov w0, w20 - bl ftl_get_blk_list_in_sblk - strb w0, [x29,121] - mov w0, 1 - bl buf_alloc - mov x19, x0 - ldr x0, [x22,584] - ldrb w2, [x22,2848] - ldrh w0, [x0,x24] - and w0, w0, 2047 - cmp w0, 1 - ldr x0, [x19,8] - bgt .L2695 - mov w1, 85 - b .L2710 -.L2695: - mov w1, 170 -.L2710: - lsl w2, w2, 9 - mov w22, 0 - mov w26, 65535 - mov w27, 24 - mov w28, 1 - bl ftl_memset - bl sblk_wait_write_queue_completed -.L2697: - add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,3596] - cmp w0, w22 - bls .L2711 - mov w25, 0 -.L2700: - ldrb w0, [x23,9] - cmp w0, w25 - bls .L2712 - add x0, x23, x25, sxtw 1 - ldrh w0, [x0,16] - cmp w0, w26 - beq .L2698 - add x4, x21, :lo12:.LANCHOR0 - mov w5, 0 - ldrh w2, [x4,3634] - madd w2, w0, w2, w22 - ldr x0, [x19,8] - str w2, [x0] - mov w0, 65280 - movk w0, 0x55aa, lsl 16 - ldr x1, [x19,8] - str w0, [x1,4] - ldr x0, [x19,24] - str wzr, [x0] - ldrb w0, [x4,744] - ldrb w4, [x4,2848] - sub w1, w27, w0 - lsl w0, w28, w0 - sub w0, w0, #1 - lsr w3, w2, w1 - lsl w1, w0, w1 - and w0, w3, w0 - bic w1, w2, w1 - ldr x3, [x19,24] - ldr x2, [x19,8] - bl flash_prog_page_en -.L2698: - add w25, w25, 1 - uxth w25, w25 - b .L2700 -.L2712: - add w22, w22, 1 - uxth w22, w22 - b .L2697 -.L2711: - mov w22, 0 - mov w26, 65535 - mov w27, -1 -.L2701: - add x25, x21, :lo12:.LANCHOR0 - ldrh w0, [x25,3596] - cmp w0, w22 - bls .L2713 - mov w25, 0 -.L2706: - ldrb w0, [x23,9] - cmp w0, w25 - bls .L2714 - sxtw x28, w25 - add x28, x28, 8 - ldrh w0, [x23,x28,lsl 1] - cmp w0, w26 - beq .L2703 - add x1, x21, :lo12:.LANCHOR0 - ldrh w2, [x1,3634] - mov w1, 1 - madd w2, w0, w2, w22 - str w2, [x19,40] - mov x0, x19 - str x2, [x29,104] - bl sblk_read_page - ldr x0, [x19,8] - ldr x2, [x29,104] - ldr w0, [x0] - cmp w0, w2 - beq .L2703 - mov w0, w2 - bl ftl_mask_bad_block - strh w27, [x23,x28,lsl 1] -.L2703: - add w25, w25, 1 - uxth w25, w25 - b .L2706 -.L2714: - add w22, w22, 1 - uxth w22, w22 - b .L2701 -.L2713: - mov x0, x19 - bl zbuf_free - ldr x0, [x25,584] - mov w1, w20 - ldrh w2, [x0,x24] - ldr w3, [x0,x24] - adrp x0, .LC206 - add x0, x0, :lo12:.LC206 - and w2, w2, 2047 - ubfx x3, x3, 11, 8 - bl printk -.L2693: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 - ret - .size ftl_ink_check_sblk, .-ftl_ink_check_sblk - .align 2 - .global ftl_open_sblk_init - .type ftl_open_sblk_init, %function -ftl_open_sblk_init: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x21, .LC121 - adrp x24, .LANCHOR0 - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - mov x19, x0 - mov w22, w1 - mov x25, x24 - add x26, x0, 16 - adrp x27, .LANCHOR3 - add x21, x21, :lo12:.LC121 -.L2716: -.L2720: - mov w0, w22 - bl ftl_alloc_sblk - uxth w23, w0 - add x2, x24, :lo12:.LANCHOR0 - mov w28, w23 - uxtw x20, w23 - ldr x1, [x2,2880] - ldrh w1, [x1,150] - cbz w1, .L2717 - lsl x1, x20, 2 - ldr x2, [x2,584] - ldrh w1, [x2,x1] - and w1, w1, 2047 - cmp w1, 2 - bgt .L2717 - bl ftl_ink_check_sblk -.L2717: - mov w1, 0 - mov w0, w28 - bl ftl_erase_sblk - mov x1, x26 - mov w0, w28 - bl ftl_get_blk_list_in_sblk - strh w28, [x19] - add x2, x25, :lo12:.LANCHOR0 - uxtb w0, w0 - strb w0, [x19,9] - cmp w22, 2 - strh wzr, [x19,2] - mov w3, 0 - ldrh w1, [x2,3596] - strb wzr, [x19,5] - strh wzr, [x19,10] - mul w0, w1, w0 - strh w0, [x19,6] - strb w22, [x19,4] - beq .L2718 - ldrb w3, [x2,3572] - mul w3, w1, w3 - uxth w3, w3 -.L2718: - add x28, x25, :lo12:.LANCHOR0 - add x0, x27, :lo12:.LANCHOR3 - strh w3, [x19,12] - lsl x20, x20, 1 - ldrb w2, [x28,3572] - ldr x0, [x0,-200] - add x0, x0, x3, uxth 2 - mul w2, w1, w2 - mov w1, 255 - lsl w2, w2, 2 - bl ftl_memset - ldr x0, [x28,600] - ldrh w1, [x19,6] - strh w1, [x0,x20] - ldrb w0, [x19,9] - cbnz w0, .L2715 - mov w1, w23 - mov x0, x21 - bl printk - ldr x0, [x28,600] - mov w1, -1 - strh w1, [x0,x20] - mov w0, 7 - strb w0, [x19,4] - b .L2720 -.L2715: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 - ret - .size ftl_open_sblk_init, .-ftl_open_sblk_init - .align 2 .global flash_info_flush .type flash_info_flush, %function flash_info_flush: adrp x0, .LANCHOR2 - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -96]! add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2] stp x19, x20, [sp,16] @@ -17358,125 +17991,121 @@ flash_info_flush: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L2726 + tbz x0, 12, .L2804 adrp x2, .LANCHOR4 - adrp x0, .LC136 + adrp x0, .LC141 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC136 - mov w1, 325 - add x2, x2, 520 + add x0, x0, :lo12:.LC141 + mov w1, 364 + add x2, x2, 680 bl printk -.L2726: - adrp x22, .LANCHOR6 +.L2804: + adrp x22, .LANCHOR5 adrp x23, .LANCHOR0 - add x0, x22, :lo12:.LANCHOR6 + add x0, x22, :lo12:.LANCHOR5 mov w1, 0 mov w2, 64 add x19, x23, :lo12:.LANCHOR0 - adrp x24, .LC208 - adrp x25, .LC209 - ldr x0, [x0,208] + adrp x24, .LC204 + adrp x25, .LC205 + ldr x0, [x0,912] mov w26, 0 - add x24, x24, :lo12:.LC208 - adrp x27, .LANCHOR3 - add x25, x25, :lo12:.LC209 + add x24, x24, :lo12:.LC204 + add x25, x25, :lo12:.LC205 bl ftl_memset - ldr x1, [x19,728] - adrp x0, .LC207 - add x0, x0, :lo12:.LC207 + ldr x1, [x19,1240] + adrp x0, .LC203 + add x0, x0, :lo12:.LC203 mov w2, 4 mov w3, 16 bl rknand_print_hex - ldr x19, [x19,728] + ldr x19, [x19,1240] add x0, x19, 16 ldr w1, [x19,8] bl js_hash str w0, [x19,12] -.L2727: - add x21, x22, :lo12:.LANCHOR6 - add x28, x23, :lo12:.LANCHOR0 +.L2805: + add x21, x22, :lo12:.LANCHOR5 + add x27, x23, :lo12:.LANCHOR0 mov x0, x24 - ldrb w20, [x21,216] - ldrh w19, [x21,218] - ldrh w3, [x28,2] + ldrb w20, [x21,920] + ldrh w19, [x21,922] mov w1, w20 + ldrh w28, [x27,2] mov w2, w19 - str x3, [x29,104] bl printk - add x1, x27, :lo12:.LANCHOR3 - ldrh w0, [x21,218] - ldr x3, [x29,104] - ldrh w1, [x1,1380] + ldrh w1, [x21,92] + ldrh w0, [x21,922] sub w1, w1, #1 cmp w0, w1 - blt .L2728 - ldr x1, [x28,728] - strh wzr, [x21,218] + blt .L2806 + ldr x1, [x27,1240] + strh wzr, [x21,922] ldr w0, [x1,4] add w0, w0, 1 str w0, [x1,4] - ldrb w0, [x21,216] - ldr x19, [x28,728] - ldrb w1, [x21,217] - strb w0, [x21,217] + ldrb w0, [x21,920] + ldr x19, [x27,1240] + ldrb w1, [x21,921] + strb w0, [x21,921] mov x0, x19 - strb w1, [x21,216] + strb w1, [x21,920] ldrh w1, [x19,16] add w1, w1, 1 strh w1, [x0,16]! ldr w1, [x19,8] bl js_hash str w0, [x19,12] - ldrb w1, [x21,216] + ldrb w1, [x21,920] mov w0, 0 - ldrh w19, [x28,2] + ldrh w19, [x27,2] mul w19, w1, w19 - b .L2736 -.L2728: - madd w19, w20, w3, w19 - cbnz w0, .L2729 -.L2736: + b .L2814 +.L2806: + madd w19, w20, w28, w19 + cbnz w0, .L2807 +.L2814: mov w1, w19 bl flash_erase_block -.L2729: +.L2807: add x2, x23, :lo12:.LANCHOR0 - add x20, x22, :lo12:.LANCHOR6 + add x20, x22, :lo12:.LANCHOR5 mov w4, 4 mov w5, 1 - ldr x1, [x2,728] - ldr x0, [x20,208] + ldr x1, [x2,1240] + ldr x0, [x20,912] ldr w1, [x1,4] str w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 - ldr x1, [x20,208] + ldr x1, [x20,912] str w0, [x1,4] mov w1, w19 mov w0, 0 - ldr x2, [x2,728] - ldr x3, [x20,208] + ldr x2, [x2,1240] + ldr x3, [x20,912] bl flash_prog_page_en cmn w0, #1 - ldrh w1, [x20,218] + ldrh w1, [x20,922] add w1, w1, 1 - strh w1, [x20,218] - bne .L2730 + strh w1, [x20,922] + bne .L2808 mov x0, x25 mov w1, w19 bl printk - b .L2727 -.L2730: - cbnz w26, .L2737 + b .L2805 +.L2808: + cbnz w26, .L2815 mov w26, 1 - b .L2727 -.L2737: + b .L2805 +.L2815: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 96 ret .size flash_info_flush, .-flash_info_flush .align 2 @@ -17492,150 +18121,157 @@ flash_info_blk_init: stp x23, x24, [sp,48] str x25, [sp,64] adrp x20, .LANCHOR0 - tbz x0, 12, .L2739 + tbz x0, 12, .L2817 add x4, x20, :lo12:.LANCHOR0 adrp x2, .LANCHOR4 - adrp x0, .LC210 + adrp x0, .LC206 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC210 - mov w1, 50 - ldr x4, [x4,728] - add x2, x2, 544 + add x0, x0, :lo12:.LC206 + mov w1, 49 + ldr x4, [x4,1240] + add x2, x2, 704 mov w3, 2048 bl printk -.L2739: - mov w23, 4 - adrp x24, .LANCHOR6 -.L2742: +.L2817: + mov w24, 4 + adrp x25, .LANCHOR5 +.L2818: + mov w23, 0 +.L2821: add x19, x20, :lo12:.LANCHOR0 - add x21, x24, :lo12:.LANCHOR6 + add x21, x25, :lo12:.LANCHOR5 mov w0, 0 mov w4, 4 - adrp x22, .LANCHOR6 + adrp x22, .LANCHOR5 ldrh w1, [x19,2] - ldr x2, [x19,728] - ldr x3, [x21,208] - mul w1, w23, w1 + ldr x2, [x19,1240] + ldr x3, [x21,912] + madd w1, w24, w1, w23 bl flash_read_page_en cmn w0, #1 - beq .L2740 - ldr x2, [x19,728] + beq .L2819 + ldr x2, [x19,1240] mov w0, 21321 movk w0, 0x5359, lsl 16 ldr w1, [x2] cmp w1, w0 - beq .L2741 -.L2740: + beq .L2820 +.L2819: add w23, w23, 1 - cmp w23, 16 - bne .L2742 -.L2767: - mov w0, -1 - b .L2766 -.L2741: + cmp w23, 4 + bne .L2821 + add w24, w24, 1 + cmp w24, 16 + bne .L2818 + b .L2830 +.L2820: ldrb w1, [x2,36] mov w4, 4 ldrh w3, [x19,2] - strb w1, [x21,216] + strb w1, [x21,920] ldrb w0, [x2,37] mul w1, w1, w3 - ldr x3, [x21,208] - strb w0, [x21,217] + ldr x3, [x21,912] + strb w0, [x21,921] mov w0, 0 mov w21, 0 bl flash_read_page_en cmn w0, #1 - beq .L2744 - ldr x0, [x19,728] + beq .L2823 + ldr x0, [x19,1240] mov w1, 21321 movk w1, 0x5359, lsl 16 mov w21, 0 ldr w2, [x0] cmp w2, w1 - bne .L2744 + bne .L2823 ldr w21, [x0,4] -.L2744: - add x19, x22, :lo12:.LANCHOR6 +.L2823: + add x19, x22, :lo12:.LANCHOR5 add x23, x20, :lo12:.LANCHOR0 mov w0, 0 mov w4, 4 - ldrb w2, [x19,217] + ldrb w2, [x19,921] ldrh w1, [x23,2] - ldr x3, [x19,208] + ldr x3, [x19,912] mul w1, w2, w1 - ldr x2, [x23,728] + ldr x2, [x23,1240] bl flash_read_page_en cmn w0, #1 - beq .L2745 - ldr x0, [x23,728] + bne .L2847 +.L2824: + add x19, x22, :lo12:.LANCHOR5 + add x21, x20, :lo12:.LANCHOR0 + mov w0, 0 + mov w4, 4 + ldrb w1, [x19,920] + ldr x2, [x21,1240] + ldr x3, [x19,912] + bl flash_get_last_written_page + ldrh w23, [x21,2] + ldrb w1, [x19,920] + uxth w24, w0 + add w0, w24, 1 + mov w21, 0 + strh w0, [x19,922] + mul w23, w1, w23 +.L2825: + sub w19, w24, w21 + sxth w19, w19 + tbz w19, #31, .L2828 + cmn w19, #1 + bne .L2827 + add x20, x20, :lo12:.LANCHOR0 + adrp x0, .LC207 + add x0, x0, :lo12:.LC207 + ldr x1, [x20,1240] + ldr w1, [x1] + bl printk +.L2830: + mov w0, -1 + b .L2846 +.L2847: + ldr x0, [x23,1240] mov w1, 21321 movk w1, 0x5359, lsl 16 ldr w2, [x0] cmp w2, w1 - bne .L2745 + bne .L2824 ldr w1, [x0,4] cmp w21, w1 - bcs .L2745 + bcs .L2824 ldrb w1, [x0,37] ldrb w0, [x0,36] - strb w1, [x19,216] - strb w0, [x19,217] -.L2745: - add x19, x22, :lo12:.LANCHOR6 - add x21, x20, :lo12:.LANCHOR0 - mov w0, 0 - mov w4, 4 - ldrb w1, [x19,216] - ldr x2, [x21,728] - ldr x3, [x19,208] - bl flash_get_last_written_page - ldrh w23, [x21,2] - ldrb w1, [x19,216] - uxth w24, w0 - add w0, w24, 1 - mov w21, 0 - strh w0, [x19,218] - mul w23, w1, w23 -.L2746: - sub w19, w24, w21 - sxth w19, w19 - tbnz w19, #31, .L2768 + strb w1, [x19,920] + strb w0, [x19,921] + b .L2824 +.L2828: add x25, x20, :lo12:.LANCHOR0 - add x3, x22, :lo12:.LANCHOR6 + add x3, x22, :lo12:.LANCHOR5 mov w0, 0 add w1, w19, w23 mov w4, 4 - ldr x2, [x25,728] - ldr x3, [x3,208] + ldr x2, [x25,1240] + ldr x3, [x3,912] bl flash_read_page_en cmn w0, #1 - beq .L2747 - ldr x0, [x25,728] + beq .L2826 + ldr x0, [x25,1240] ldr w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 cmp w1, w0 - beq .L2748 -.L2747: + beq .L2827 +.L2826: add w21, w21, 1 - b .L2746 -.L2768: - cmn w19, #1 - bne .L2748 - add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC211 - add x0, x0, :lo12:.LC211 - ldr x1, [x20,728] - ldr w1, [x1] - bl printk - b .L2767 -.L2748: + b .L2825 +.L2827: cmp w21, 1 mov w0, 0 - bls .L2766 + bls .L2846 bl flash_info_flush mov w0, 0 -.L2766: +.L2846: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17655,112 +18291,112 @@ nand_flash_init: stp x21, x22, [sp,32] stp x23, x24, [sp,48] ldr w0, [x20,#:lo12:.LANCHOR2] - stp x25, x26, [sp,64] - tbz x0, 12, .L2770 + str x25, [sp,64] + tbz x0, 12, .L2849 adrp x2, .LANCHOR4 - adrp x0, .LC136 + adrp x0, .LC141 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC136 - mov w1, 2759 - add x2, x2, 568 + add x0, x0, :lo12:.LC141 + mov w1, 3429 + add x2, x2, 728 bl printk -.L2770: - adrp x21, .LANCHOR3 +.L2849: + adrp x21, .LANCHOR5 mov x0, x19 - add x23, x21, :lo12:.LANCHOR3 + add x23, x21, :lo12:.LANCHOR5 adrp x19, .LANCHOR0 add x22, x19, :lo12:.LANCHOR0 mov w25, 44 - add x24, x22, 760 - str wzr, [x23,1516] + add x24, x22, 1272 + str wzr, [x23,236] bl nandc_init mov w0, 1 add x1, x20, :lo12:.LANCHOR2 add x1, x1, 8 - strb w0, [x22,633] + strb w0, [x22,1145] mov w0, 3 - str x1, [x22,624] - strb w0, [x22,744] + str x1, [x22,1136] + strb w0, [x22,1257] mov w1, 0 mov w2, 8 - add x0, x22, 736 + add x0, x22, 1248 bl ftl_memset - add x0, x23, 1384 + add x0, x23, 96 mov w1, 0 mov w2, 32 mov w23, 0 bl ftl_memset -.L2776: +.L2855: mov w0, w23 mov x1, x24 bl flash_read_id - cbnz w23, .L2771 - ldrb w0, [x22,760] - add x1, x22, 760 + cbnz w23, .L2850 + ldrb w0, [x22,1272] + add x1, x22, 1272 sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bls .L2772 -.L2774: + bls .L2851 +.L2853: mov w22, -2 - b .L2849 -.L2772: + b .L2933 +.L2851: ldrb w0, [x1,1] cmp w0, 255 - beq .L2774 -.L2771: + beq .L2853 +.L2850: ldrb w0, [x24] cmp w0, 181 - bne .L2775 + bne .L2854 strb w25, [x24] -.L2775: +.L2854: add w23, w23, 1 add x24, x24, 8 uxtb w23, w23 cmp w23, 4 - bne .L2776 + bne .L2855 add x23, x20, :lo12:.LANCHOR2 add x24, x19, :lo12:.LANCHOR0 add x23, x23, 440 mov w22, 0 - add x24, x24, 760 -.L2779: + add x24, x24, 1272 +.L2858: ldrb w2, [x23] add x0, x23, 1 mov x1, x24 bl flash_mem_cmp8 - cbnz w0, .L2777 + cbnz w0, .L2856 add x1, x20, :lo12:.LANCHOR2 ubfiz x22, x22, 5, 32 add x0, x1, 440 adds x22, x0, x22 - beq .L2774 + beq .L2853 ldrb w3, [x22,22] mov x0, 0 - b .L2781 -.L2777: + b .L2860 +.L2856: add w22, w22, 1 add x23, x23, 32 - cmp w22, 45 - bne .L2779 - b .L2774 -.L2781: + cmp w22, 49 + bne .L2858 + b .L2853 +.L2860: add x4, x1, x0, lsl 5 mov w2, w0 - ldrb w4, [x4,1880] + ldrb w4, [x4,2008] cmp w4, w3 - beq .L2780 + beq .L2859 add x0, x0, 1 cmp x0, 4 - bne .L2781 + bne .L2860 mov w2, w0 -.L2780: +.L2859: add x23, x20, :lo12:.LANCHOR2 add x24, x19, :lo12:.LANCHOR0 - add x1, x23, 1880 + add x1, x23, 2008 ubfiz x2, x2, 5, 32 add x1, x1, x2 - add x0, x24, 640 + add x0, x24, 1152 mov w2, 32 add x23, x23, 8 bl ftl_memcpy @@ -17768,175 +18404,173 @@ nand_flash_init: mov x1, x22 mov w2, 32 bl ftl_memcpy - ldrb w0, [x24,516] + ldrb w0, [x24,1028] cmp w0, 8 - bhi .L2782 + bhi .L2861 ldrb w0, [x23,20] cmp w0, 60 - bls .L2782 + bls .L2861 mov w0, 60 strb w0, [x23,20] -.L2782: +.L2861: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2814 + tbz x0, 12, .L2895 adrp x2, .LANCHOR4 - adrp x0, .LC136 + adrp x0, .LC141 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC136 - mov w1, 2781 - add x2, x2, 568 + add x0, x0, :lo12:.LC141 + mov w1, 3456 + add x2, x2, 728 bl printk -.L2814: +.L2895: add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,624] + ldr x1, [x0,1136] ldrh w1, [x1,10] cmp w1, 1023 - bls .L2783 + bls .L2862 mov w1, 2 - strb w1, [x0,744] -.L2783: - add x24, x21, :lo12:.LANCHOR3 + strb w1, [x0,1257] +.L2862: + add x23, x21, :lo12:.LANCHOR5 mov w0, 16384 add x22, x19, :lo12:.LANCHOR0 - adrp x23, .LANCHOR6 + add x24, x20, :lo12:.LANCHOR2 bl ftl_malloc - add x25, x23, :lo12:.LANCHOR6 - str x0, [x24,1528] + str x0, [x23,248] mov w0, 16384 - add x26, x20, :lo12:.LANCHOR2 bl ftl_malloc - str x0, [x24,1488] + str x0, [x23,208] mov w0, 2048 bl ftl_malloc - str x0, [x22,728] + str x0, [x22,1240] mov w0, 64 bl ftl_malloc - str x0, [x24,1536] + str x0, [x23,256] mov w0, 64 bl ftl_malloc - str x0, [x24,1504] + str x0, [x23,224] mov w0, 64 bl ftl_malloc - strb wzr, [x25,220] - str x0, [x25,208] + strb wzr, [x23,924] + str x0, [x23,912] bl flash_die_info_init - ldrb w0, [x26,26] + ldrb w0, [x24,26] bl flash_lsb_page_tbl_build - ldrb w0, [x26,28] + ldrb w0, [x24,28] bl nandc_bch_sel - str xzr, [x24,1520] - ldr x2, [x22,624] - ldrh w0, [x2,16] + str xzr, [x23,240] + ldr x3, [x22,1136] + adrp x2, .LANCHOR3 + add x2, x2, :lo12:.LANCHOR3 + ldrh w0, [x3,16] ubfx x1, x0, 8, 3 - strb w1, [x22,792] + strb w1, [x22,1304] ubfx x1, x0, 3, 1 - strb w1, [x24,1552] + strb w1, [x23,272] ubfx x1, x0, 4, 1 - strb w1, [x22,793] + strb w1, [x22,1305] ubfx x1, x0, 12, 1 - strb w1, [x22,3568] + strb w1, [x2,1264] ubfx x1, x0, 13, 1 - strb w1, [x22,3554] + strb w1, [x2,1250] ubfx x1, x0, 11, 1 - strb w1, [x22,756] - ldrb w1, [x2,31] - ldrb w2, [x2,28] - ubfx x3, x1, 1, 1 - ubfx x1, x1, 2, 1 - strb w1, [x25,222] - ubfx x1, x0, 14, 1 - strb w1, [x22,1] + strb w1, [x22,1268] + ldrb w1, [x3,31] + ubfx x4, x1, 1, 1 + strb w4, [x2,1868] + ubfx x4, x1, 2, 1 + strb w4, [x23,925] + ubfx x4, x0, 14, 1 lsr w0, w0, 15 - ldrb w1, [x22,516] - strb w0, [x22,3555] - mov w0, 60 - strb w3, [x25,221] - cmp w1, 9 - strb w2, [x19,#:lo12:.LANCHOR0] - strb w0, [x22,632] - bne .L2784 - mov w0, 70 - strb w0, [x22,632] -.L2784: - add x0, x19, :lo12:.LANCHOR0 - strb w2, [x0,634] - add x2, x20, :lo12:.LANCHOR2 - ldrb w2, [x2,15] + strb w0, [x2,1251] + ubfx x2, x1, 3, 1 + strb w2, [x22,1256] + ubfx x1, x1, 4, 1 + ldrb w2, [x22,1028] + ldrb w0, [x3,28] + strb w1, [x22,1269] cmp w2, 9 - bne .L2785 - strb wzr, [x0,634] -.L2785: + mov w1, 60 + strb w4, [x22,1] + strb w0, [x19,#:lo12:.LANCHOR0] + strb w1, [x22,1144] + bne .L2863 + mov w1, 70 + strb w1, [x22,1144] +.L2863: + add x1, x19, :lo12:.LANCHOR0 + strb w0, [x1,1146] add x0, x20, :lo12:.LANCHOR2 add x0, x0, 8 - ldrb w2, [x0,31] - tbz x2, 0, .L2786 + ldrb w3, [x0,31] + tbz x3, 0, .L2864 ldrb w0, [x0,29] - cbz w0, .L2787 + cbz w0, .L2865 + mov w0, 2 + b .L2935 +.L2865: + mov w0, 3 +.L2935: + strb w0, [x1,1146] +.L2864: + cmp w2, 8 + bne .L2866 add x0, x19, :lo12:.LANCHOR0 - mov w2, 2 - b .L2851 -.L2787: - add x0, x19, :lo12:.LANCHOR0 - mov w2, 3 -.L2851: - strb w2, [x0,634] -.L2786: - cmp w1, 8 - bne .L2788 - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,760] + ldrb w0, [x0,1272] cmp w0, 137 - beq .L2815 + beq .L2896 cmp w0, 44 - bne .L2788 -.L2815: + bne .L2866 +.L2896: add x0, x20, :lo12:.LANCHOR2 ldrb w0, [x0,36] cmp w0, 3 - bne .L2788 + bne .L2866 add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,634] -.L2788: + strb wzr, [x0,1146] +.L2866: add x1, x20, :lo12:.LANCHOR2 add x2, x19, :lo12:.LANCHOR0 add x1, x1, 8 ldrb w0, [x1,19] ldrh w1, [x1,16] - strb w0, [x2,725] - tbz x1, 6, .L2791 + strb w0, [x2,1237] + tbz x1, 6, .L2869 sub w1, w0, #17 cmp w0, 21 cset w2, eq uxtb w1, w1 cmp w1, 2 - bls .L2816 - cbz w2, .L2792 -.L2816: - add x0, x21, :lo12:.LANCHOR3 + bls .L2897 + cbz w2, .L2870 +.L2897: + add x0, x21, :lo12:.LANCHOR5 adrp x1, micron_read_retrial add x1, x1, :lo12:micron_read_retrial - str x1, [x0,1520] + str x1, [x0,240] mov w1, 15 - cbz w2, .L2852 + cbz w2, .L2936 mov w1, 4 - b .L2852 -.L2792: +.L2936: + strb w1, [x0,232] + b .L2869 +.L2870: sub w1, w0, #65 uxtb w1, w1 cmp w1, 1 - bls .L2817 + bls .L2898 cmp w0, 33 - bne .L2796 -.L2817: - add x0, x21, :lo12:.LANCHOR3 + bne .L2874 +.L2898: + add x0, x21, :lo12:.LANCHOR5 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial mov w2, 4 - str x1, [x0,1520] + str x1, [x0,240] add x1, x19, :lo12:.LANCHOR0 - strb w2, [x1,726] - b .L2854 -.L2796: + strb w2, [x1,1238] + b .L2939 +.L2874: sub w1, w0, #67 uxtb w1, w1 cmp w1, 1 @@ -17944,140 +18578,166 @@ nand_flash_init: cset w2, ls uxtb w1, w1 cmp w1, 1 - bls .L2818 - cbz w2, .L2798 -.L2818: - add x3, x21, :lo12:.LANCHOR3 + bls .L2899 + cbz w2, .L2876 +.L2899: + add x3, x21, :lo12:.LANCHOR5 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial cmp w0, 35 - str x1, [x3,1520] - beq .L2800 + str x1, [x3,240] + beq .L2878 cmp w0, 68 - beq .L2800 + beq .L2878 mov w0, 7 - strb w0, [x3,1512] - b .L2801 -.L2800: - add x0, x21, :lo12:.LANCHOR3 + strb w0, [x3,232] + b .L2879 +.L2878: + add x0, x21, :lo12:.LANCHOR5 mov w1, 17 - strb w1, [x0,1512] -.L2801: + strb w1, [x0,232] +.L2879: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 - cbnz w2, .L2853 + cbnz w2, .L2937 mov w1, 5 -.L2853: - strb w1, [x0,726] - b .L2791 -.L2798: - sub w0, w0, #36 - uxtb w0, w0 - cmp w0, 1 - bhi .L2791 - add x0, x21, :lo12:.LANCHOR3 +.L2937: + strb w1, [x0,1238] + b .L2869 +.L2876: + sub w1, w0, #36 + uxtb w1, w1 + cmp w1, 1 + bhi .L2881 + add x0, x21, :lo12:.LANCHOR5 adrp x1, toshiba_3d_read_retrial add x1, x1, :lo12:toshiba_3d_read_retrial - str x1, [x0,1520] -.L2854: + str x1, [x0,240] +.L2939: mov w1, 7 -.L2852: - strb w1, [x0,1512] -.L2791: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2803 - adrp x2, .LANCHOR4 - adrp x0, .LC136 - add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC136 - mov w1, 2857 - add x2, x2, 568 - bl printk -.L2803: + b .L2936 +.L2881: + cmp w0, 50 + bne .L2882 + add x0, x21, :lo12:.LANCHOR5 + adrp x1, samsung_read_retrial + add x1, x1, :lo12:samsung_read_retrial + str x1, [x0,240] + mov w1, 25 + b .L2936 +.L2882: + cmp w0, 81 + bne .L2869 + add x0, x21, :lo12:.LANCHOR5 + adrp x1, ymtc_3d_read_retrial + add x1, x1, :lo12:ymtc_3d_read_retrial + str x1, [x0,240] + mov w1, 7 + strb w1, [x0,232] add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,672] - ldrb w0, [x0,792] - tbz x0, 0, .L2804 + strb wzr, [x0,1185] +.L2869: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2883 + adrp x2, .LANCHOR4 + adrp x0, .LC141 + add x2, x2, :lo12:.LANCHOR4 + add x0, x0, :lo12:.LC141 + mov w1, 3549 + add x2, x2, 728 + bl printk +.L2883: + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x0,1304] + strb wzr, [x0,1184] + tbz x1, 0, .L2884 + ldrb w0, [x0,1272] + cmp w0, 155 + beq .L2885 + mov w0, 4 + bl flash_set_interface_mode mov w0, 4 bl nandc_set_if_mode +.L2885: mov w0, 1 bl flash_set_interface_mode mov w0, 1 - b .L2855 -.L2804: + b .L2938 +.L2884: mov w0, 4 -.L2855: +.L2938: bl nandc_set_if_mode bl flash_info_blk_init cmn w0, #1 mov w22, w0 - bne .L2806 - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2807 - adrp x2, .LANCHOR4 - adrp x0, .LC136 - add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC136 - mov w1, 2875 - add x2, x2, 568 - bl printk -.L2807: + bne .L2887 add x19, x19, :lo12:.LANCHOR0 mov w1, 17 - ldr x0, [x19,728] - strb wzr, [x19,752] + ldr x0, [x19,1240] + strb wzr, [x19,1264] strb w1, [x0,32] mov w0, 0 bl zftl_flash_exit_slc_mode - b .L2849 -.L2806: + b .L2933 +.L2887: + add x0, x20, :lo12:.LANCHOR2 + ldrb w0, [x0,15] + cmp w0, 9 + bne .L2888 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,725] + ldr x1, [x0,1240] + ldrb w1, [x1,20] + cmp w1, 1 + beq .L2888 + strb wzr, [x0,1146] +.L2888: + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,1237] sub w0, w0, #1 uxtb w0, w0 cmp w0, 7 - bhi .L2808 - add x21, x21, :lo12:.LANCHOR3 - adrp x0, hynix_read_retrial - add x0, x0, :lo12:hynix_read_retrial - str x0, [x21,1520] -.L2808: + bhi .L2889 + add x0, x21, :lo12:.LANCHOR5 + adrp x1, hynix_read_retrial + add x1, x1, :lo12:hynix_read_retrial + str x1, [x0,240] +.L2889: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,792] - tbz x0, 2, .L2810 - ldr x0, [x19,728] + ldrb w0, [x19,1304] + tbz x0, 2, .L2891 + ldr x0, [x19,1240] ldrb w0, [x0,19] - cbz w0, .L2810 - add x23, x23, :lo12:.LANCHOR6 + cbz w0, .L2891 + add x21, x21, :lo12:.LANCHOR5 ldrh w1, [x19,2] mov w0, 0 - ldrb w2, [x23,216] + ldrb w2, [x21,920] mul w1, w2, w1 bl flash_ddr_para_scan - ldrb w0, [x19,672] - cbnz w0, .L2810 - ldr x1, [x19,728] + ldrb w0, [x19,1184] + cbnz w0, .L2891 + ldr x1, [x19,1240] strb w0, [x1,19] bl flash_info_flush -.L2810: +.L2891: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2812 + tbz x0, 12, .L2893 adrp x2, .LANCHOR4 - adrp x0, .LC136 + adrp x0, .LC141 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC136 - mov w1, 2929 - add x2, x2, 568 + add x0, x0, :lo12:.LC141 + mov w1, 3647 + add x2, x2, 728 bl printk -.L2812: +.L2893: mov w22, 0 bl nand_flash_print_info -.L2849: +.L2933: mov w0, w22 + ldr x25, [sp,64] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] ldp x29, x30, [sp], 80 ret .size nand_flash_init, .-nand_flash_init @@ -18092,35 +18752,37 @@ ftl_sysblk_dump: uxth w24, w0 mov w0, 1 stp x19, x20, [sp,64] - stp x21, x22, [sp,80] stp x25, x26, [sp,112] - str x27, [sp,128] - mov w21, 0 + stp x27, x28, [sp,128] + stp x21, x22, [sp,80] + mov w20, 0 bl buf_alloc - adrp x23, .LC201 + adrp x22, .LC199 ldr x26, [x0,8] - mov x20, x0 - mov w19, w21 - adrp x27, .LANCHOR0 - add x23, x23, :lo12:.LC201 -.L2857: - add x3, x27, :lo12:.LANCHOR0 - ldrh w0, [x3,3596] - cmp w0, w19 - bls .L2869 - ldrh w22, [x3,3634] - ldr x1, [x20,8] - ldr x2, [x20,24] - madd w22, w24, w22, w19 - ldrb w3, [x3,2848] - mov w0, w22 + mov x25, x0 + mov w19, w20 + adrp x27, .LANCHOR3 + adrp x28, .LANCHOR0 + add x22, x22, :lo12:.LC199 +.L2941: + add x2, x27, :lo12:.LANCHOR3 + ldrh w3, [x2,1294] + cmp w3, w19 + bls .L2953 + ldrh w21, [x2,1330] + add x3, x28, :lo12:.LANCHOR0 + ldr x1, [x25,8] + ldr x2, [x25,24] + madd w21, w24, w21, w19 + ldrb w3, [x3,3360] + mov w0, w21 bl ftl_read_ppa_page - mov w25, w0 - ldr x7, [x20,8] + mov w23, w0 + ldr x7, [x25,8] mov w1, w24 - ldr x2, [x20,24] - mov w3, w22 - mov w4, w25 + ldr x2, [x25,24] + mov w3, w21 + mov w4, w23 ldr w0, [x7,12] str w0, [sp] ldr w0, [x2] @@ -18132,81 +18794,764 @@ ftl_sysblk_dump: ldr w0, [x2,12] mov w2, w19 str w0, [sp,32] - mov x0, x23 + mov x0, x22 ldr w5, [x7] ldr w6, [x7,4] ldr w7, [x7,8] bl printk - cmp w25, 512 - beq .L2862 - cmn w25, #1 - bne .L2858 -.L2862: - mov w21, 1 -.L2858: + cmp w23, 512 + beq .L2946 + cmn w23, #1 + bne .L2942 +.L2946: + mov w20, 1 +.L2942: add w19, w19, 1 uxth w19, w19 - b .L2857 -.L2869: - adrp x0, .LC212 + b .L2941 +.L2953: + adrp x0, .LC208 add x1, x26, 704 - add x0, x0, :lo12:.LC212 + add x0, x0, :lo12:.LC208 mov w2, 4 mov w3, 32 bl rknand_print_hex - mov x0, x20 + mov x0, x25 bl zbuf_free - cbz w21, .L2861 + cbz w20, .L2945 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1432 - add x1, x1, 584 + mov w2, 1611 + add x1, x1, 744 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2861: +.L2945: sub sp, x29, #48 - mov w0, w21 + mov w0, w20 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] ldp x23, x24, [sp,96] ldp x25, x26, [sp,112] - ldr x27, [sp,128] + ldp x27, x28, [sp,128] ldp x29, x30, [sp,48] add sp, sp, 144 ret .size ftl_sysblk_dump, .-ftl_sysblk_dump .align 2 + .global ftl_open_sblk_recovery + .type ftl_open_sblk_recovery, %function +ftl_open_sblk_recovery: + stp x29, x30, [sp, -368]! + add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x22, .LANCHOR2 + stp x19, x20, [sp,16] + mov x19, x0 + str x1, [x29,136] + ldr w0, [x22,#:lo12:.LANCHOR2] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + tbz x0, 12, .L2955 + adrp x0, .LC209 + ldrh w1, [x19,2] + add x0, x0, :lo12:.LC209 + bl printk +.L2955: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L2956 + adrp x0, .LC210 + ldrb w1, [x19,5] + add x0, x0, :lo12:.LC210 + bl printk +.L2956: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L2957 + adrp x0, .LC211 + ldrh w1, [x19] + add x0, x0, :lo12:.LC211 + bl printk +.L2957: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L2958 + adrp x0, .LC212 + ldrh w1, [x19,16] + ldrh w2, [x19,18] + add x0, x0, :lo12:.LC212 + bl printk +.L2958: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L2959 + adrp x0, .LC213 + ldrb w1, [x19,9] + add x0, x0, :lo12:.LC213 + bl printk +.L2959: + adrp x20, .LANCHOR0 + ldrh w0, [x19,10] + add x21, x20, :lo12:.LANCHOR0 + strh w0, [x19,14] + ldrh w1, [x19] + ldrh w0, [x21,1088] + cmp w1, w0 + bcs .L2954 + mov w0, 1 + bl buf_alloc + mov x27, x0 + ldrb w0, [x21,3360] + add x21, x29, 176 + mov w2, 64 + ldr x1, [x27,8] + sub w0, w0, #2 + sbfiz x0, x0, 9, 32 + add x0, x1, x0 + mov w1, 255 + str x0, [x29,160] + mov x0, x21 + bl ftl_memset + mov w1, 255 + mov w2, 64 + add x0, x29, 240 + bl ftl_memset + add x0, x29, 304 + mov w1, 255 + mov w2, 64 + bl ftl_memset + ldrb w24, [x19,5] + mov w0, 2 + str w0, [x29,168] + adrp x0, .LANCHOR5 + ldrh w25, [x19,2] + add x0, x0, :lo12:.LANCHOR5 + str wzr, [x29,144] + add x0, x0, 320 + str x0, [x29,128] + adrp x0, .LC214 + add x0, x0, :lo12:.LC214 + str x0, [x29,120] +.L2961: + adrp x23, .LANCHOR3 + add x0, x23, :lo12:.LANCHOR3 + ldrh w0, [x0,1294] + cmp w0, w25 + bls .L2964 + ldrb w24, [x19,5] +.L2962: + ldrb w0, [x19,9] + cmp w0, w24 + bls .L3101 + add x0, x19, x24, sxtw 1 + ldrh w28, [x0,16] + mov w0, 65535 + cmp w28, w0 + beq .L2963 + add x0, x23, :lo12:.LANCHOR3 + add x3, x20, :lo12:.LANCHOR0 + ldr x1, [x27,8] + ldr x2, [x27,24] + ldrh w26, [x0,1330] + ldrb w3, [x3,3360] + madd w0, w28, w26, w25 + str w0, [x29,152] + bl ftl_read_ppa_page + cmp w0, 512 + mov w26, w0 + beq .L2964 + cmn w0, #1 + beq .L2965 + ldr x0, [x27,24] + ldr w1, [x0] + cmn w1, #1 + bne .L2965 + ldr w0, [x0,4] + cmn w0, #1 + bne .L2965 + ldr x0, [x27,8] + ldr w0, [x0] + cmn w0, #1 + beq .L2964 +.L2965: + adrp x0, .LANCHOR5 + mov w1, 1 + add x0, x0, :lo12:.LANCHOR5 + strb w1, [x0,593] + ldrb w0, [x19,9] + ldrh w1, [x19,10] + madd w0, w25, w0, w24 + cmp w1, w0 + beq .L2966 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 1686 + add x1, x1, 760 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2966: + ldrh w0, [x19,10] + ldrh w1, [x19,6] + ldrb w2, [x19,9] + add w1, w1, w0 + add x0, x23, :lo12:.LANCHOR3 + ldrh w0, [x0,1294] + mul w0, w0, w2 + cmp w1, w0 + beq .L2967 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 1687 + add x1, x1, 760 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2967: + add x0, x20, :lo12:.LANCHOR0 + str x0, [x29,168] + ldrb w0, [x0,3360] + cmp w0, 8 + bls .L2968 + ldr x0, [x27,24] + mov w1, 15555 + movk w1, 0xf55f, lsl 16 + ldr w2, [x0] + cmp w2, w1 + beq .L2968 + cmn w26, #1 + beq .L2973 + ldr w1, [x0,4] + cmn w1, #1 + beq .L3008 + ldr w2, [x0,16] + mov w1, 21320 + movk w1, 0x4841, lsl 16 + cmp w2, w1 + bne .L3008 + ldr w2, [x0,20] + mov w1, 1024 + ldr x0, [x29,160] + str x2, [x29,144] + bl js_hash + ldr x2, [x29,144] + cmp w2, w0 + beq .L3008 + ldr x0, [x29,160] + mov w1, 1024 + bl js_hash + mov w5, w0 + ldr w3, [x29,152] + mov w1, w28 + ldr x0, [x29,120] + mov w2, w25 + mov w4, w26 + bl printk + ldr x1, [x29,160] + adrp x0, .LC215 + add x0, x0, :lo12:.LC215 + mov w2, 4 + mov w3, 16 + bl rknand_print_hex + ldr x0, [x29,168] + mov w2, 4 + ldr x1, [x27,24] + ldrb w3, [x0,3360] + adrp x0, .LC186 + add x0, x0, :lo12:.LC186 + lsr w3, w3, 1 + bl rknand_print_hex + b .L2973 +.L2968: + cmn w26, #1 + beq .L2973 +.L3008: + ldr x1, [x27,24] + ldr w0, [x1,4] + cmn w0, #1 + beq .L2973 + ldr w2, [x1] + mov w1, 15555 + movk w1, 0xf55f, lsl 16 + cmp w2, w1 + beq .L2973 + bl lpa_hash_get_ppa + ldr x1, [x29,136] + cbz x1, .L2972 + ldr x8, [x27,24] + ldr w1, [x8,8] + cmp w0, w1 + beq .L2972 + cmn w0, #1 + beq .L2972 + add x7, x20, :lo12:.LANCHOR0 + add x4, x23, :lo12:.LANCHOR3 + mov w5, 24 + mov w28, 1 + ldrb w2, [x7,1257] + ldrh w1, [x4,1232] + sub w2, w5, w2 + lsr w3, w0, w1 + sub w1, w2, w1 + lsl w1, w28, w1 + ldrb w2, [x4,1234] + sub w1, w1, #1 + and w1, w3, w1 + udiv w1, w1, w2 + ldr x2, [x29,136] + ldrh w2, [x2] + cmp w2, w1, uxth + bne .L2972 + ldr w8, [x8] + ldrb w3, [x7,3360] + ldr x1, [x27,8] + ldr x2, [x29,128] + str x5, [x29,104] + str x4, [x29,112] + str x8, [x29,144] + str x7, [x29,168] + bl ftl_read_ppa_page + ldr x0, [x29,128] + ldr x8, [x29,144] + ldr x7, [x29,168] + ldr w0, [x0] + ldr x4, [x29,112] + cmp w0, w8 + ldr x5, [x29,104] + bcc .L2972 + ldr x0, [x27,24] + ldr w1, [x0,8] + cmn w1, #1 + beq .L2973 + ldrb w2, [x7,1257] + ldrh w0, [x4,1232] + sub w5, w5, w2 + sub w5, w5, w0 + lsr w1, w1, w0 + lsl w28, w28, w5 + ldrb w0, [x4,1234] + sub w28, w28, #1 + and w1, w28, w1 + udiv w0, w1, w0 + bl ftl_vpn_decrement + b .L2973 +.L2972: + ldr x2, [x27,24] + add x1, x20, :lo12:.LANCHOR0 + ldr w3, [x2,4] + ldr w0, [x1,3372] + cmp w3, w0 + bcs .L2973 + add x4, x23, :lo12:.LANCHOR3 + ldrb w0, [x19,9] + ldrh w3, [x19,10] + ldrh w4, [x4,1294] + mul w0, w0, w4 + sub w0, w0, #1 + cmp w3, w0 + blt .L3102 +.L2973: + ldrh w0, [x19,6] + sub w0, w0, #1 + strh w0, [x19,6] + ldrh w0, [x19,10] + add w0, w0, 1 + strh w0, [x19,10] + mov w0, 4 + str w0, [x29,168] + mov w0, 1 + str w0, [x29,144] +.L2963: + add w24, w24, 1 + uxth w24, w24 + b .L2962 +.L3101: + add w25, w25, 1 + strb wzr, [x19,5] + uxth w25, w25 + b .L2961 +.L2964: + add x2, x23, :lo12:.LANCHOR3 + ldrh w0, [x19,10] + ldrh w1, [x19,6] + strh w25, [x19,2] + add w1, w1, w0 + ldrh w2, [x2,1294] + ldrb w0, [x19,9] + strb w24, [x19,5] + mul w0, w0, w2 + cmp w1, w0 + beq .L2977 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 1794 + add x1, x1, 760 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2977: + add x0, x23, :lo12:.LANCHOR3 + ldrh w3, [x19,10] + ldr x4, [x0,1848] + mov w0, 0 + mov w2, w0 +.L2978: + cmp w2, w3 + bcs .L3103 + ldrh w1, [x19,12] + add w1, w2, w1 + ldr w1, [x4,x1,lsl 2] + cmn w1, #1 + beq .L2979 + add w1, w0, 1 + uxth w0, w1 +.L2979: + add w2, w2, 1 + b .L2978 +.L3103: + add x2, x23, :lo12:.LANCHOR3 + ldrb w1, [x19,9] + sub w0, w0, w3 + ldrh w24, [x2,1294] + madd w0, w1, w24, w0 + uxth w24, w0 + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L2981 + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x19] + mov w2, w24 + ubfiz x3, x1, 1, 16 + ldr x4, [x0,1112] + adrp x0, .LC216 + add x0, x0, :lo12:.LC216 + ldrh w3, [x4,x3] + bl printk +.L2981: + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x19] + ldr x0, [x0,1112] + strh w24, [x0,x1,lsl 1] + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 14, .L2982 + adrp x0, .LC217 + ldr w1, [x29,176] + ldr w2, [x29,180] + add x0, x0, :lo12:.LC217 + ldr w3, [x29,184] + ldr w4, [x29,188] + bl printk +.L2982: + add x0, x20, :lo12:.LANCHOR0 + mov w1, 0 + adrp x28, .LC219 + mov x24, 0 + mov w26, -1 + ldrb w2, [x0,3360] + ldr x0, [x27,8] + lsl w2, w2, 9 + bl ftl_memset + adrp x0, .LC218 + add x0, x0, :lo12:.LC218 + str x0, [x29,152] + add x0, x28, :lo12:.LC219 + str x0, [x29,136] +.L2983: + add x0, x23, :lo12:.LANCHOR3 + ldr w1, [x29,168] + str w24, [x29,160] + ldrb w0, [x0,1249] + mul w0, w1, w0 + cmp w24, w0 + bcs .L3104 + ldr w0, [x21,x24,lsl 2] + cmn w0, #1 + bne .L2984 +.L2988: + add x1, x20, :lo12:.LANCHOR0 + ldr x0, [x27,24] + mov x2, 0 + mov w25, -1 + ldr x1, [x1,3392] + ldr w1, [x1,8] + str w1, [x0] + ldr x0, [x27,24] + str w26, [x0,4] + ldr x0, [x27,24] + str w26, [x0,8] + ldr x0, [x27,24] + str wzr, [x0,12] + ldr x0, [x27,24] + str wzr, [x0,16] + ldr x0, [x27,8] + str wzr, [x0] + mov w0, 2 + ldr x1, [x27,24] + add x1, x1, 16 + bl ftl_debug_info_fill + b .L2985 +.L2984: + add x3, x20, :lo12:.LANCHOR0 + ldr x1, [x27,8] + ldr x2, [x27,24] + ldrb w3, [x3,3360] + bl ftl_read_ppa_page + mov w25, w0 + ldr x0, [x27,24] + ldr w0, [x0,4] + bl lpa_hash_get_ppa + mov w28, w0 + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 14, .L2986 + ldr x3, [x27,24] + mov w1, w28 + ldr x0, [x29,152] + ldr w2, [x21,x24,lsl 2] + ldr w3, [x3,4] + bl printk +.L2986: + ldr w0, [x21,x24,lsl 2] + mov w1, 1 + mov x2, 0 + cmp w28, w0 + ldr x0, [x27,24] + csinv w25, w25, wzr, eq + str w28, [x0,8] + ldr x0, [x27,24] + str w1, [x0,12] + ldr x0, [x27,24] + str wzr, [x0,16] + mov w0, 2 + ldr x1, [x27,24] + add x1, x1, 16 + bl ftl_debug_info_fill + cmn w25, #1 + beq .L2988 +.L2985: + ldr w0, [x29,144] + cbz w0, .L2990 +.L3100: + ldrh w0, [x19,6] + cmp w0, 1 + bls .L2990 + mov x0, x19 + bl ftl_get_new_free_page + mov w28, w0 + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 14, .L2992 + ldr x2, [x27,24] + mov w1, w28 + ldrh w0, [x19,12] + ldrh w3, [x19,10] + ldr w2, [x2,4] + add w3, w3, w0 + ldr x0, [x29,136] + sub w3, w3, #1 + bl printk +.L2992: + add x1, x23, :lo12:.LANCHOR3 + ldrh w0, [x19,6] + ldrb w2, [x1,1249] + ldr w1, [x29,168] + mul w2, w1, w2 + ldr w1, [x29,160] + add w2, w2, 1 + sub w2, w2, w1 + cmp w0, w2 + bls .L2990 + add x3, x20, :lo12:.LANCHOR0 + ldr x1, [x27,8] + ldr x2, [x27,24] + mov w0, w28 + ldrb w3, [x3,3360] + bl ftl_prog_ppa_page + mov w2, w0 + ldrh w0, [x19] + str x2, [x29,128] + bl ftl_vpn_decrement + ldr x2, [x29,128] + cmn w25, #1 + cset w1, ne + cmn w2, #1 + beq .L2993 + cbz w1, .L2990 + add x0, x29, 240 + ldrh w1, [x19,10] + str w28, [x0,x24,lsl 2] + ldrh w0, [x19,12] + add w0, w1, w0 + add x1, x29, 304 + sub w0, w0, #1 + str w0, [x1,x24,lsl 2] + b .L2990 +.L2993: + cbnz w1, .L3100 +.L2990: + add x24, x24, 1 + b .L2983 +.L3104: + adrp x24, .LC220 + adrp x25, .LC219 + mov x26, 0 + add x24, x24, :lo12:.LC220 + add x25, x25, :lo12:.LC219 +.L2997: + add x28, x23, :lo12:.LANCHOR3 + ldr w1, [x29,168] + ldrb w0, [x28,1249] + mul w0, w1, w0 + cmp w0, w26 + bls .L3105 + add x0, x29, 240 + ldr w0, [x0,x26,lsl 2] + cmn w0, #1 + beq .L2999 + add x3, x20, :lo12:.LANCHOR0 + ldr w0, [x21,x26,lsl 2] + ldr x1, [x27,8] + ldr x2, [x27,24] + ldrb w3, [x3,3360] + bl ftl_read_ppa_page + cmp w0, 256 + beq .L3010 + cmn w0, #1 + bne .L2999 +.L3010: + add x3, x20, :lo12:.LANCHOR0 + add x0, x29, 240 + ldr x1, [x27,8] + ldr x2, [x27,24] + ldr w0, [x0,x26,lsl 2] + ldrb w3, [x3,3360] + bl ftl_read_ppa_page + mov w28, w0 + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 14, .L3002 + ldr x2, [x27,24] + mov x0, x25 + ldr w3, [x21,x26,lsl 2] + mov w1, w28 + ldr w2, [x2,8] + bl printk +.L3002: + cmn w28, #1 + beq .L2999 + ldr x1, [x27,24] + ldr w2, [x21,x26,lsl 2] + ldr w0, [x1,8] + cmp w2, w0 + bne .L2999 + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 14, .L3003 + add x3, x29, 304 + ldr w1, [x1,4] + mov x0, x24 + ldr w3, [x3,x26,lsl 2] + bl printk +.L3003: + ldr x1, [x27,24] + add x0, x29, 304 + ldr w2, [x0,x26,lsl 2] + ldr w0, [x1,4] + ldr w1, [x1,8] + bl lpa_hash_update_ppa +.L2999: + add x26, x26, 1 + b .L2997 +.L3105: + mov x0, x27 + bl zbuf_free + ldrh w1, [x28,1294] + ldrh w0, [x19,12] + ldrb w2, [x19,9] + madd w0, w1, w2, w0 + mov x1, -4 + add x0, x1, x0, sxtw 2 + ldr x1, [x28,1848] + ldr w0, [x1,x0] + cmn w0, #1 + beq .L3005 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 1909 + add x1, x1, 760 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L3005: + ldrh w0, [x19,6] + cmp w0, 1 + bne .L2954 + mov x0, x19 + bl ftl_write_last_log_page + b .L2954 +.L3102: + ldr x0, [x1,3392] + ldr w2, [x2] + ldr w1, [x0,8] + cmp w2, w1 + bls .L2974 + str w2, [x0,8] +.L2974: + ldr x1, [x27,24] + ldrh w0, [x19,10] + ldrh w2, [x19,12] + add w2, w2, w0 + ldr w0, [x1,4] + ldr w1, [x1,8] + bl lpa_hash_update_ppa + ldr w0, [x21,4] + str w0, [x21] + ldr w0, [x21,8] + str w0, [x21,4] + ldr w0, [x21,12] + str w0, [x21,8] + ldr w0, [x29,152] + str w0, [x21,12] + b .L2973 +.L2954: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 368 + ret + .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery + .align 2 .global dump_ftl_info .type dump_ftl_info, %function dump_ftl_info: stp x29, x30, [sp, -32]! - adrp x0, .LC213 + adrp x0, .LC221 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - adrp x20, .LANCHOR3 + add x0, x0, :lo12:.LC221 add x19, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR3 add x20, x20, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC213 - ldrb w1, [x19,2850] + ldrb w1, [x19,3362] bl printk - ldrh w3, [x20,1858] - adrp x0, .LC214 - ldrb w1, [x20,1856] - add x0, x0, :lo12:.LC214 - ldrb w2, [x20,1857] + adrp x3, .LANCHOR5 + adrp x0, .LC222 + add x3, x3, :lo12:.LANCHOR5 + add x0, x0, :lo12:.LC222 + ldrb w1, [x3,576] + ldrb w2, [x3,577] + ldrh w3, [x3,578] bl printk - ldr x2, [x19,2880] - adrp x0, .LC215 - add x0, x0, :lo12:.LC215 + ldr x2, [x19,3392] + adrp x0, .LC223 + add x0, x0, :lo12:.LC223 ldrh w1, [x2,130] ldrh w2, [x2,140] bl printk - ldr x1, [x19,608] - adrp x0, .LC216 - add x0, x0, :lo12:.LC216 + ldr x1, [x19,1120] + adrp x0, .LC224 + add x0, x0, :lo12:.LC224 add x5, x1, 16 ldrh w1, [x1,16] ldrh w2, [x5,2] @@ -18214,9 +19559,9 @@ dump_ftl_info: ldrh w4, [x5,6] ldrh w5, [x5,10] bl printk - ldr x1, [x19,608] - adrp x0, .LC217 - add x0, x0, :lo12:.LC217 + ldr x1, [x19,1120] + adrp x0, .LC225 + add x0, x0, :lo12:.LC225 add x5, x1, 48 ldrh w1, [x1,48] ldrh w2, [x5,2] @@ -18224,9 +19569,9 @@ dump_ftl_info: ldrh w4, [x5,6] ldrh w5, [x5,10] bl printk - ldr x1, [x19,608] - adrp x0, .LC218 - add x0, x0, :lo12:.LC218 + ldr x1, [x19,1120] + adrp x0, .LC226 + add x0, x0, :lo12:.LC226 add x5, x1, 80 ldrh w1, [x1,80] ldrh w4, [x5,6] @@ -18234,47 +19579,47 @@ dump_ftl_info: ldrb w3, [x5,5] ldrh w5, [x5,10] bl printk - ldrh w0, [x19,3596] + ldrh w0, [x20,1294] mov w2, 4 - ldrb w3, [x19,3572] - ldr x1, [x20,-200] + ldrb w3, [x20,1249] + ldr x1, [x20,1848] mul w3, w0, w3 - adrp x0, .LC219 - add x0, x0, :lo12:.LC219 + adrp x0, .LC227 + add x0, x0, :lo12:.LC227 lsl w3, w3, 1 bl rknand_print_hex - ldr x1, [x19,600] - adrp x0, .LC220 - ldrh w3, [x19,576] - add x0, x0, :lo12:.LC220 + ldr x1, [x19,1112] + adrp x0, .LC228 + ldrh w3, [x19,1088] + add x0, x0, :lo12:.LC228 mov w2, 2 bl rknand_print_hex - ldr x3, [x19,2880] - adrp x0, .LC212 - add x0, x0, :lo12:.LC212 + ldr x3, [x19,3392] + adrp x0, .LC208 + add x0, x0, :lo12:.LC208 mov w2, 4 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex - ldr x1, [x19,584] - adrp x0, .LC221 - ldrh w3, [x19,576] - add x0, x0, :lo12:.LC221 + ldr x1, [x19,1096] + adrp x0, .LC229 + ldrh w3, [x19,1088] + add x0, x0, :lo12:.LC229 mov w2, 4 bl rknand_print_hex - adrp x0, .LC222 - add x1, x19, 3640 - add x0, x0, :lo12:.LC222 + adrp x0, .LC230 + add x1, x20, 1336 + add x0, x0, :lo12:.LC230 mov w2, 2 mov w3, 256 bl rknand_print_hex - ldrh w0, [x19,3596] + ldrh w0, [x20,1294] mov w2, 2 - ldrb w3, [x19,3572] - ldr x1, [x20,-192] + ldrb w3, [x20,1249] + ldr x1, [x20,1856] mul w3, w0, w3 - adrp x0, .LC223 - add x0, x0, :lo12:.LC223 + adrp x0, .LC231 + add x0, x0, :lo12:.LC231 lsl w3, w3, 1 bl rknand_print_hex ldp x19, x20, [sp,16] @@ -18285,41 +19630,43 @@ dump_ftl_info: .global pm_ppa_update_check .type pm_ppa_update_check, %function pm_ppa_update_check: - adrp x5, .LANCHOR0 - mov w6, 24 - add x5, x5, :lo12:.LANCHOR0 - mov w7, 1 + adrp x3, .LANCHOR0 + adrp x7, .LANCHOR3 + add x3, x3, :lo12:.LANCHOR0 + add x7, x7, :lo12:.LANCHOR3 stp x29, x30, [sp, -16]! + mov w5, 24 add x29, sp, 0 - ldrb w3, [x5,744] - ldrh w4, [x5,3536] - sub w6, w6, w3 - ldrb w3, [x5,3538] - sub w6, w6, w4 + ldrb w6, [x3,1257] + ldrh w4, [x7,1232] + sub w5, w5, w6 + mov w6, 1 + sub w5, w5, w4 lsr w4, w2, w4 - lsl w6, w7, w6 - sub w6, w6, #1 - and w4, w6, w4 - udiv w4, w4, w3 - ldr x3, [x5,584] + lsl w5, w6, w5 + ldr x3, [x3,1096] + sub w5, w5, #1 + and w4, w5, w4 + ldrb w5, [x7,1234] + udiv w4, w4, w5 add x4, x3, x4, uxth 2 ldrb w3, [x4,2] ubfx x3, x3, 5, 3 cmp w3, 7 cset w4, eq - cbnz w4, .L2875 - cmp w3, w7 - bne .L2872 -.L2875: + cbnz w4, .L3111 + cmp w3, w6 + bne .L3108 +.L3111: mov w3, w2 mov w2, w1 mov x1, x0 - adrp x0, .LC224 - add x0, x0, :lo12:.LC224 + adrp x0, .LC232 + add x0, x0, :lo12:.LC232 bl printk bl dump_ftl_info mov w4, -1 -.L2872: +.L3108: mov w0, w4 ldp x29, x30, [sp], 16 ret @@ -18329,165 +19676,171 @@ pm_ppa_update_check: load_l2p_region: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x23, x24, [sp,48] - uxth x23, w1 - str x27, [sp,80] stp x21, x22, [sp,32] + uxth x22, w1 + str x27, [sp,80] stp x19, x20, [sp,16] + stp x23, x24, [sp,48] stp x25, x26, [sp,64] - cmp w23, 31 + cmp w22, 31 uxth w21, w0 - bls .L2878 + bls .L3114 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 mov w2, 32 - add x1, x1, 600 + add x1, x1, 784 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2878: +.L3114: adrp x24, .LANCHOR0 - adrp x20, .LANCHOR6 + adrp x20, .LANCHOR5 add x26, x24, :lo12:.LANCHOR0 - ldr x0, [x26,2880] + ldr x0, [x26,3392] ldrh w2, [x0,698] cmp w21, w2 - bls .L2879 - adrp x0, .LC225 + bls .L3115 + adrp x0, .LC233 mov w1, w21 - add x0, x0, :lo12:.LC225 + add x0, x0, :lo12:.LC233 mov x19, 0 - add x20, x20, :lo12:.LANCHOR6 + add x20, x20, :lo12:.LANCHOR5 bl printk ldr x0, [x19,8] mov w1, 255 - ldrh w2, [x20,224] + ldrh w2, [x20,926] bl ftl_memset - ldr x0, [x26,2880] + ldr x0, [x26,3392] ldrh w0, [x0,698] cmp w0, w21 - bcs .L2889 + bcs .L3127 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 36 - add x1, x1, 600 add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack - b .L2881 -.L2879: + add x1, x1, 784 + mov w2, 37 + b .L3128 +.L3115: add x0, x0, x21, sxtw 2 - adrp x22, .LANCHOR3 + adrp x25, .LANCHOR3 ldr w19, [x0,704] - add x0, x22, :lo12:.LANCHOR3 - sub x0, x0, #160 - lsl x1, x23, 4 + add x0, x25, :lo12:.LANCHOR3 + add x0, x0, 1880 + lsl x1, x22, 4 add x27, x0, x1 strh w21, [x0,x1] strh wzr, [x27,2] - cbnz w19, .L2882 - adrp x0, .LC226 + cbnz w19, .L3118 + adrp x0, .LC234 mov w1, w21 mov w2, w19 - add x20, x20, :lo12:.LANCHOR6 - add x0, x0, :lo12:.LC226 + add x20, x20, :lo12:.LANCHOR5 + add x0, x0, :lo12:.LC234 bl printk ldr x0, [x27,8] mov w1, 255 - ldrh w2, [x20,224] + ldrh w2, [x20,926] bl ftl_memset - b .L2881 -.L2882: - add x25, x20, :lo12:.LANCHOR6 - ldrb w3, [x26,2848] + b .L3127 +.L3118: + add x23, x20, :lo12:.LANCHOR5 + ldrb w3, [x26,3360] ldr x1, [x27,8] mov w0, w19 - ldr x2, [x25,192] + ldr x2, [x23,896] bl ftl_read_ppa_page mov w3, w0 - ldr x0, [x25,192] + ldr x0, [x23,896] ldr w2, [x0] cmp w2, w21 - bne .L2883 + bne .L3119 cmn w3, #1 - beq .L2883 + beq .L3119 cmp w3, 512 - beq .L2883 -.L2886: - add x20, x20, :lo12:.LANCHOR6 - ldr x0, [x20,192] + beq .L3119 +.L3124: + add x20, x20, :lo12:.LANCHOR5 + ldr x0, [x20,896] ldr w0, [x0] cmp w0, w21 - beq .L2889 + beq .L3127 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 63 - add x1, x1, 600 add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack - b .L2889 -.L2883: - adrp x0, .LC227 + add x1, x1, 784 + mov w2, 73 + b .L3128 +.L3119: + adrp x0, .LC235 mov w4, w19 add x24, x24, :lo12:.LANCHOR0 mov w1, w21 - add x0, x0, :lo12:.LC227 - add x22, x22, :lo12:.LANCHOR3 - sub x22, x22, #160 + add x0, x0, :lo12:.LC235 + add x23, x25, :lo12:.LANCHOR3 + add x23, x23, 1880 + add x26, x20, :lo12:.LANCHOR5 bl printk - add x22, x22, x23, lsl 4 - ldr x3, [x24,2880] - adrp x0, .LC228 - add x0, x0, :lo12:.LC228 + add x23, x23, x22, lsl 4 + ldr x3, [x24,3392] + adrp x0, .LC236 + add x0, x0, :lo12:.LC236 mov w2, 4 add x1, x3, 704 - add x23, x20, :lo12:.LANCHOR6 ldrh w3, [x3,698] bl rknand_print_hex - ldrb w3, [x24,2848] - adrp x0, .LC229 - ldr x1, [x22,8] - add x0, x0, :lo12:.LC229 + ldrb w3, [x24,3360] + adrp x0, .LC215 + ldr x1, [x23,8] + add x0, x0, :lo12:.LC215 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex - ldr x1, [x23,192] - adrp x0, .LC230 - add x0, x0, :lo12:.LC230 + ldr x1, [x26,896] + adrp x0, .LC237 + add x0, x0, :lo12:.LC237 mov w2, 4 mov w3, 16 bl rknand_print_hex - ldr x1, [x22,8] + ldr x1, [x23,8] mov w0, w19 - ldr x2, [x23,192] - mov w19, -1 - ldrb w3, [x24,2848] + ldr x2, [x26,896] + ldrb w3, [x24,3360] bl ftl_read_ppa_page - ldr x1, [x23,192] - ldr w1, [x1] - cmp w1, w21 - bne .L2881 - cmp w0, w19 - beq .L2888 cmp w0, 512 - bne .L2886 - b .L2888 -.L2889: - mov w19, 0 - b .L2881 -.L2888: - mov w19, -1 -.L2881: - mov w0, w19 - ldr x27, [sp,80] + beq .L3126 + cmn w0, #1 + bne .L3122 +.L3126: + add x25, x25, :lo12:.LANCHOR3 + add x20, x20, :lo12:.LANCHOR5 + add x22, x25, x22, lsl 4 + mov w1, 255 + ldrh w2, [x20,926] + ldr x0, [x22,1888] + bl ftl_memset + mov w0, -1 + b .L3117 +.L3122: + ldr x0, [x26,896] + ldr w1, [x0] + mov w0, -1 + cmp w1, w21 + beq .L3124 + b .L3117 +.L3128: + bl printk + bl dump_stack +.L3127: + mov w0, 0 +.L3117: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] + ldr x27, [sp,80] ldp x29, x30, [sp], 96 ret .size load_l2p_region, .-load_l2p_region @@ -18499,91 +19852,92 @@ pm_gc: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 + adrp x20, .LANCHOR5 add x0, x19, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] + add x1, x20, :lo12:.LANCHOR5 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - adrp x25, .LANCHOR3 - ldr x0, [x0,2880] - add x1, x25, :lo12:.LANCHOR3 + stp x25, x26, [sp,64] + ldr x0, [x0,3392] ldrh w2, [x0,688] - ldrh w0, [x1,1456] + ldrh w0, [x1,176] sub w0, w0, #1 cmp w2, w0 - bge .L2891 - ldr w0, [x1,1448] - cbz w0, .L2892 -.L2891: + bge .L3130 + ldr w0, [x1,168] + cbz w0, .L3131 +.L3130: bl pm_free_sblk add x1, x19, :lo12:.LANCHOR0 - add x3, x25, :lo12:.LANCHOR3 - ldr x2, [x1,2880] - ldrh w1, [x3,1456] + add x3, x20, :lo12:.LANCHOR5 + ldr x2, [x1,3392] + ldrh w1, [x3,176] ldrh w4, [x2,688] sub w1, w1, #1 cmp w4, w1 - bge .L2893 - ldr w1, [x3,1448] - cbz w1, .L2892 -.L2893: - add x1, x25, :lo12:.LANCHOR3 + bge .L3132 + ldr w1, [x3,168] + cbz w1, .L3131 +.L3132: + add x20, x20, :lo12:.LANCHOR5 add x0, x2, x0, uxth 1 ldrh w21, [x0,416] + str wzr, [x20,168] mov w20, 65535 - str wzr, [x1,1448] cmp w21, w20 - bne .L2895 + bne .L3134 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 162 - add x1, x1, 616 + mov w2, 182 + add x1, x1, 800 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl pm_free_sblk add x1, x19, :lo12:.LANCHOR0 - ldr x1, [x1,2880] + ldr x1, [x1,3392] add x0, x1, x0, uxth 1 ldrh w21, [x0,416] cmp w21, w20 - beq .L2892 -.L2895: + beq .L3131 +.L3134: bl pm_select_ram_region + adrp x26, .LANCHOR3 uxth x20, w0 - add x0, x25, :lo12:.LANCHOR3 + add x0, x26, :lo12:.LANCHOR3 lsl x1, x20, 4 - sub x0, x0, #160 - mov x22, x20 + add x0, x0, 1880 add x23, x0, x1 + mov x22, x20 ldrh w0, [x0,x1] mov w1, 65535 cmp w0, w1 - beq .L2896 + beq .L3135 ldr x1, [x23,8] - cbz x1, .L2896 + cbz x1, .L3135 ldrsh w2, [x23,2] - tbz w2, #31, .L2896 + tbz w2, #31, .L3135 bl pm_write_page ldrh w0, [x23,2] and w0, w0, 32767 strh w0, [x23,2] -.L2896: - add x25, x25, :lo12:.LANCHOR3 - mov w26, 0 - sub x25, x25, #160 +.L3135: + add x26, x26, :lo12:.LANCHOR3 + mov w25, 0 + add x0, x26, 1880 mov w23, 24 mov w24, 1 - add x20, x25, x20, lsl 4 -.L2897: - add x3, x19, :lo12:.LANCHOR0 - ldr x0, [x3,2880] + add x20, x0, x20, lsl 4 +.L3136: + add x2, x19, :lo12:.LANCHOR0 + ldr x0, [x2,3392] ldrh w1, [x0,698] - cmp w1, w26 - bls .L2907 - ldrb w2, [x3,744] - add x0, x0, x26, sxtw 2 - ldrh w1, [x3,3536] + cmp w1, w25 + bls .L3146 + ldrb w2, [x2,1257] + add x0, x0, x25, sxtw 2 + ldrh w1, [x26,1232] ldr w0, [x0,704] sub w2, w23, w2 lsr w0, w0, w1 @@ -18591,27 +19945,27 @@ pm_gc: lsl w1, w24, w1 sub w1, w1, #1 and w1, w0, w1 - ldrb w0, [x3,3538] + ldrb w0, [x26,1234] udiv w1, w1, w0 cmp w21, w1, uxth - bne .L2898 - mov w0, w26 + bne .L3137 + mov w0, w25 mov w1, w22 bl load_l2p_region - cbnz w0, .L2899 + cbnz w0, .L3138 ldr x1, [x20,8] - mov w0, w26 + mov w0, w25 bl pm_write_page -.L2899: +.L3138: mov w0, -1 strh w0, [x20] -.L2898: - add w26, w26, 1 - uxth w26, w26 - b .L2897 -.L2907: +.L3137: + add w25, w25, 1 + uxth w25, w25 + b .L3136 +.L3146: bl pm_free_sblk -.L2892: +.L3131: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18630,7 +19984,7 @@ pm_flush_id: stp x19, x20, [sp,16] adrp x19, .LANCHOR3 add x19, x19, :lo12:.LANCHOR3 - sub x1, x19, #160 + add x1, x19, 1880 add x20, x1, x0 ldrh w0, [x1,x0] ldr x1, [x20,8] @@ -18638,11 +19992,11 @@ pm_flush_id: ldrh w0, [x20,2] and w0, w0, 32767 strh w0, [x20,2] - ldr w0, [x19,-168] - cbz w0, .L2909 + ldr w0, [x19,1876] + cbz w0, .L3148 bl pm_gc - str wzr, [x19,-168] -.L2909: + str wzr, [x19,1876] +.L3148: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -18658,17 +20012,17 @@ pm_flush: adrp x20, .LANCHOR3 mov x19, 0 add x20, x20, :lo12:.LANCHOR3 - sub x20, x20, #160 -.L2915: + add x20, x20, 1880 +.L3154: add x1, x20, x19, lsl 4 uxth w0, w19 ldrsh w1, [x1,2] - tbz w1, #31, .L2914 + tbz w1, #31, .L3153 bl pm_flush_id -.L2914: +.L3153: add x19, x19, 1 cmp x19, 32 - bne .L2915 + bne .L3154 mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -18706,90 +20060,91 @@ zftl_deinit: pm_init: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR6 - add x22, x21, :lo12:.LANCHOR6 stp x19, x20, [sp,16] + adrp x20, .LANCHOR5 adrp x19, .LANCHOR3 + stp x21, x22, [sp,32] + add x21, x20, :lo12:.LANCHOR5 + add x22, x19, :lo12:.LANCHOR3 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - add x20, x19, :lo12:.LANCHOR3 mov w23, w0 mov w0, 1 - strb w0, [x22,200] + strb w0, [x21,904] mov w0, 64 + str wzr, [x21,168] mov w24, -1 - str wzr, [x20,1448] + str wzr, [x22,1876] adrp x25, .LANCHOR0 - str wzr, [x20,-168] bl ftl_malloc - str x0, [x22,192] - sub x22, x20, #160 - add x20, x20, 352 -.L2921: - strh w24, [x22] - strh wzr, [x22,2] - cbz w23, .L2920 + str x0, [x21,896] + add x21, x22, 1880 + add x22, x22, 2392 +.L3160: + strh w24, [x21] + strh wzr, [x21,2] + cbz w23, .L3159 add x0, x25, :lo12:.LANCHOR0 - ldrb w0, [x0,2848] + ldrb w0, [x0,3360] lsl w0, w0, 9 bl ftl_malloc - str x0, [x22,8] -.L2920: - add x22, x22, 16 - cmp x22, x20 - bne .L2921 + str x0, [x21,8] +.L3159: + add x21, x21, 16 + cmp x21, x22 + bne .L3160 add x0, x19, :lo12:.LANCHOR3 - adrp x20, .LANCHOR0 - add x23, x20, :lo12:.LANCHOR0 + adrp x21, .LANCHOR0 + add x23, x21, :lo12:.LANCHOR0 mov w4, 4 - ldr x26, [x0,-152] - add x0, x21, :lo12:.LANCHOR6 - ldr x1, [x23,2880] + ldr x26, [x0,1888] + add x0, x20, :lo12:.LANCHOR5 + ldr x1, [x23,3392] mov x2, x26 - ldr x22, [x0,192] + ldr x22, [x0,896] ldrb w0, [x1,694] ldrh w1, [x1,692] mov x3, x22 bl flash_get_last_written_page sxth w24, w0 - ldr x1, [x23,2880] + ldr x1, [x23,3392] mov w25, w24 ldrh w2, [x1,696] cmp w2, w24 - bgt .L2922 - adrp x0, .LC231 + bgt .L3161 + adrp x0, .LC238 ldrh w1, [x1,692] - add x0, x0, :lo12:.LC231 + add x0, x0, :lo12:.LC238 mov w3, w24 - adrp x27, .LC232 - adrp x28, .LC233 + adrp x27, .LC239 + adrp x28, .LC240 bl printk - add x28, x28, :lo12:.LC233 - ldr x0, [x23,2880] + add x28, x28, :lo12:.LC240 + ldr x0, [x23,3392] ldrsh w23, [x0,696] add w0, w24, 1 str w0, [x29,124] - add x0, x27, :lo12:.LC232 + add x0, x27, :lo12:.LC239 str x0, [x29,112] -.L2923: +.L3162: ldr w0, [x29,124] cmp w23, w0 - bge .L2944 - add x27, x20, :lo12:.LANCHOR0 + bge .L3183 + add x27, x21, :lo12:.LANCHOR0 + add x1, x19, :lo12:.LANCHOR3 mov x2, x26 mov x3, x22 - ldr x0, [x27,2880] - ldrh w1, [x27,3634] - ldrb w4, [x27,2848] + ldr x0, [x27,3392] + ldrh w1, [x1,1330] + ldrb w4, [x27,3360] ldrh w24, [x0,692] ldrb w0, [x0,694] madd w24, w24, w1, w23 mov w1, w24 bl flash_read_page_en mov w4, w0 - ldr x3, [x27,2880] + ldr x3, [x27,3392] mov w2, w24 ldr x0, [x29,112] str x4, [x29,104] @@ -18801,70 +20156,70 @@ pm_init: bl printk ldr x4, [x29,104] cmp w4, 512 - beq .L2924 + beq .L3163 cmn w4, #1 - beq .L2924 - ldr x0, [x27,2880] + beq .L3163 + ldr x0, [x27,3392] ldr w1, [x22] ldrh w0, [x0,698] cmp w1, w0 - bcs .L2924 + bcs .L3163 ldr w2, [x22,8] - cbz w2, .L2925 - ldrb w1, [x27,2848] + cbz w2, .L3164 + ldrb w1, [x27,3360] mov x0, x26 str x2, [x29,104] lsl w1, w1, 9 bl js_hash ldr x2, [x29,104] cmp w2, w0 - beq .L2925 + beq .L3164 ldr w1, [x22,8] mov x0, x28 bl printk - b .L2924 -.L2925: - add x0, x20, :lo12:.LANCHOR0 - ldr x1, [x0,2880] + b .L3163 +.L3164: + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0,3392] ldr w0, [x22] add x0, x0, 176 str w24, [x1,x0,lsl 2] -.L2924: +.L3163: add w23, w23, 1 sxth w23, w23 - b .L2923 -.L2944: - adrp x0, .LANCHOR5+897 - add x20, x20, :lo12:.LANCHOR0 + b .L3162 +.L3183: + add x0, x20, :lo12:.LANCHOR5 + add x21, x21, :lo12:.LANCHOR0 mov w1, 1 add w25, w25, 1 - strb w1, [x0,#:lo12:.LANCHOR5+897] - ldr x0, [x20,2880] + strb w1, [x0,593] + ldr x0, [x21,3392] strh w25, [x0,696] bl pm_free_sblk -.L2922: +.L3161: add x19, x19, :lo12:.LANCHOR3 - add x21, x21, :lo12:.LANCHOR6 + add x20, x20, :lo12:.LANCHOR5 mov w1, 255 - ldrh w2, [x21,224] - ldr x0, [x19,-152] + add x19, x19, 1880 + ldr x0, [x19,8] + ldrh w2, [x20,926] bl ftl_memset - ldr x1, [x19,-152] + ldr x1, [x19,8] mov w0, -1 bl pm_write_page - adrp x0, .LANCHOR5+897 - ldrb w0, [x0,#:lo12:.LANCHOR5+897] - cbz w0, .L2927 - ldr x1, [x19,-152] + ldrb w0, [x20,593] + cbz w0, .L3166 + ldr x1, [x19,8] mov w0, -1 bl pm_write_page - ldr x1, [x19,-152] + ldr x1, [x19,8] mov w0, -1 bl pm_write_page - ldr x1, [x19,-152] + ldr x1, [x19,8] mov w0, -1 bl pm_write_page -.L2927: +.L3166: bl pm_free_sblk bl pm_gc mov w0, 0 @@ -18883,16 +20238,16 @@ pm_log2phys: stp x29, x30, [sp, -96]! mov w3, w0 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - add x0, x22, :lo12:.LANCHOR0 stp x23, x24, [sp,48] + adrp x23, .LANCHOR0 + add x0, x23, :lo12:.LANCHOR0 stp x25, x26, [sp,64] + stp x21, x22, [sp,32] stp x19, x20, [sp,16] mov w25, w2 - mov x23, x1 - ldrb w20, [x0,2848] - ldr w2, [x0,2856] + mov x22, x1 + ldrb w20, [x0,3360] + ldr w2, [x0,3372] lsl w24, w20, 7 lsl w20, w20, 7 cmp w3, w2 @@ -18900,101 +20255,101 @@ pm_log2phys: uxth w26, w24 msub w20, w26, w20, w3 uxth x20, w20 - bcc .L2946 - adrp x0, .LC234 + bcc .L3185 + adrp x0, .LC241 mov w1, w3 - add x0, x0, :lo12:.LC234 + add x0, x0, :lo12:.LC241 bl printk mov w0, -1 - cbnz w25, .L2947 - str w0, [x23] - b .L2947 -.L2946: + cbnz w25, .L3186 + str w0, [x22] + b .L3186 +.L3185: adrp x21, .LANCHOR3 mov x19, 0 add x1, x21, :lo12:.LANCHOR3 - sub x1, x1, #160 -.L2952: + add x1, x1, 1880 +.L3191: ldr x0, [x1,8] - cbz x0, .L2948 + cbz x0, .L3187 ldrh w0, [x1] cmp w0, w26 - bne .L2948 -.L2949: - cbnz w25, .L2950 - add x0, x21, :lo12:.LANCHOR3 - add x22, x22, :lo12:.LANCHOR0 - add x0, x0, x19, lsl 4 - ldr x0, [x0,-152] + bne .L3187 +.L3188: + cbnz w25, .L3189 + add x3, x21, :lo12:.LANCHOR3 + add x23, x23, :lo12:.LANCHOR0 + add x0, x3, x19, lsl 4 + mov w2, 1 + ldr x0, [x0,1888] ldr w1, [x0,x20,lsl 2] mov w0, 24 - str w1, [x23] - ldrb w2, [x22,744] - sub w0, w0, w2 - lsr w0, w1, w0 - mov w1, 1 - lsl w2, w1, w2 - ldrb w1, [x22,3636] + str w1, [x22] + ldrb w4, [x23,1257] + sub w0, w0, w4 + lsl w2, w2, w4 + lsr w1, w1, w0 sub w2, w2, #1 - and w0, w0, w2 + and w0, w1, w2 + ldrb w1, [x3,1332] cmp w0, w1 - bcc .L2951 + bcc .L3190 mov w0, -1 - str w0, [x23] - b .L2951 -.L2950: + str w0, [x22] + b .L3190 +.L3189: add x2, x21, :lo12:.LANCHOR3 - ldr w3, [x23] - sub x0, x2, #160 + ldr w3, [x22] + add x0, x2, 1880 add x0, x0, x19, lsl 4 ldr x1, [x0,8] str w3, [x1,x20,lsl 2] - strb w24, [x2,352] + strb w24, [x2,2392] ldrh w1, [x0,2] orr w1, w1, -32768 strh w1, [x0,2] -.L2951: +.L3190: add x21, x21, :lo12:.LANCHOR3 mov w2, 32767 - sub x21, x21, #160 + add x21, x21, 1880 mov w0, 0 add x19, x21, x19, lsl 4 ldrh w1, [x19,2] and w3, w1, 32767 cmp w3, w2 - beq .L2947 + beq .L3186 add w1, w1, 1 strh w1, [x19,2] - b .L2947 -.L2948: + b .L3186 +.L3187: add w19, w19, 1 add x1, x1, 16 uxth x19, w19 cmp w19, 32 - bne .L2952 + bne .L3191 bl pm_select_ram_region uxth x19, w0 add x2, x21, :lo12:.LANCHOR3 sbfiz x3, x19, 4, 32 - sub x2, x2, #160 + add x2, x2, 1880 mov w1, w0 add x4, x2, x3 ldrh w3, [x2,x3] mov w2, 65535 cmp w3, w2 - beq .L2953 + beq .L3192 ldrsh w2, [x4,2] - tbz w2, #31, .L2953 + tbz w2, #31, .L3192 str x1, [x29,88] bl pm_flush_id ldr x1, [x29,88] -.L2953: - adrp x0, .LANCHOR6+226 - strb w19, [x0,#:lo12:.LANCHOR6+226] +.L3192: + adrp x0, .LANCHOR5+928 + strb w19, [x0,#:lo12:.LANCHOR5+928] mov w0, w26 bl load_l2p_region - b .L2949 -.L2947: + b .L3188 +.L3186: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -19006,491 +20361,625 @@ pm_log2phys: .global gc_recovery .type gc_recovery, %function gc_recovery: - sub sp, sp, #208 + sub sp, sp, #224 stp x29, x30, [sp,32] add x29, sp, 32 stp x19, x20, [sp,48] adrp x19, .LANCHOR0 - add x20, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,64] + add x21, x19, :lo12:.LANCHOR0 + adrp x22, .LANCHOR3 stp x23, x24, [sp,80] stp x25, x26, [sp,96] stp x27, x28, [sp,112] - adrp x22, .LANCHOR3 - strb wzr, [x20,3569] - ldr x21, [x20,608] - add x0, x22, :lo12:.LANCHOR3 - add x23, x21, 80 - ldrh w1, [x21,80] - strb wzr, [x0,1418] + adrp x23, .LANCHOR5 + add x25, x22, :lo12:.LANCHOR3 + ldr x20, [x21,1120] + add x0, x23, :lo12:.LANCHOR5 + strb wzr, [x25,1265] + add x24, x20, 80 + ldrh w1, [x20,80] + strb wzr, [x0,130] mov w0, 65535 cmp w1, w0 - beq .L2961 + beq .L3200 mov w0, -1 - strh w0, [x21,130] + strh w0, [x20,130] mov w0, 1 bl buf_alloc - mov x27, x0 - ldrb w0, [x23,9] - ldrh w1, [x20,3634] + mov x28, x0 + ldrb w0, [x24,9] + ldrh w1, [x25,1330] sub w0, w0, #1 - add x0, x23, x0, sxtw 1 + add x0, x24, x0, sxtw 1 ldrh w0, [x0,16] mul w0, w0, w1 - ldrb w1, [x20,3553] - str w0, [x29,168] + ldrb w1, [x25,1248] + str w0, [x29,184] cmp w1, 2 - beq .L2962 - ldrb w2, [x20,756] - cbz w2, .L2963 -.L2962: - add x2, x19, :lo12:.LANCHOR0 - ldrh w2, [x2,3570] + beq .L3201 + ldrb w2, [x21,1268] + cbnz w2, .L3201 + ldrb w2, [x21,1269] + cbz w2, .L3202 +.L3201: + add x2, x22, :lo12:.LANCHOR3 + ldrh w2, [x2,1266] sub w2, w2, #1 add w0, w2, w0 orr w0, w0, w1, lsl 24 - b .L3038 -.L2963: + b .L3288 +.L3202: cmp w1, 3 - bne .L2964 - ldrh w1, [x20,3596] + bne .L3203 + ldrh w1, [x25,1294] sub w1, w1, #1 add w0, w1, w0 orr w0, w0, 50331648 -.L3038: - str w0, [x27,40] -.L2964: - mov x0, x27 +.L3288: + str w0, [x28,40] +.L3203: + mov x0, x28 mov w1, 1 bl sblk_read_page - ldr w0, [x27,52] + ldr w0, [x28,52] cmp w0, 512 - beq .L2965 + beq .L3204 cmn w0, #1 - cset w26, eq - cbnz w26, .L2965 - ldr x0, [x27,24] + beq .L3204 + ldr x0, [x28,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2966 -.L2965: - mov x0, x27 - mov w20, 0 + beq .L3205 +.L3204: + mov x0, x28 bl zbuf_free - ldr x7, [x27,24] - ldr x6, [x27,8] + ldr x7, [x28,24] + ldr x6, [x28,8] ldr w0, [x7,4] str w0, [sp] ldr w0, [x7,8] str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC235 - add x0, x0, :lo12:.LC235 - ldr w1, [x27,40] - ldr w2, [x27,52] + adrp x0, .LC242 + add x0, x0, :lo12:.LC242 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] - ldr w7, [x7] + ldr w1, [x28,40] + ldr w2, [x28,52] ldr w6, [x6,12] + ldr w7, [x7] bl printk + b .L3293 +.L3205: + add x1, x23, :lo12:.LANCHOR5 + ldrb w0, [x1,929] + cmp w0, 2 + bne .L3207 + add x21, x22, :lo12:.LANCHOR3 + ldrb w0, [x21,1248] + cmp w0, 3 + bne .L3207 + ldrh w3, [x1,926] + ldr x4, [x1,144] + ldrh w1, [x21,1266] + and x0, x3, 65532 + ldrb w2, [x21,1249] + add x0, x4, x0 + lsl w1, w1, 2 + mul w2, w1, w2 + ldr x1, [x28,8] + sub w2, w2, w3 + uxth w2, w2 + bl ftl_memcpy add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x21,80] - ldr x1, [x0,600] + ldrb w1, [x0,1268] + cbnz w1, .L3208 + ldrb w0, [x0,1269] + cbz w0, .L3209 +.L3208: + ldr w0, [x28,40] + sub w0, w0, #1 + b .L3289 +.L3209: + ldr w0, [x29,184] + ldrh w1, [x21,1294] + sub w0, w0, #1 + add w0, w0, w1 + orr w0, w0, 33554432 +.L3289: + str w0, [x28,40] + mov w1, 1 + mov x0, x28 + bl sblk_read_page + ldr w0, [x28,52] + cmp w0, 512 + beq .L3211 + cmn w0, #1 + beq .L3211 + ldr x0, [x28,24] + ldr w1, [x0] + mov w0, 15555 + movk w0, 0xf55f, lsl 16 + cmp w1, w0 + beq .L3212 +.L3211: + mov x0, x28 + bl zbuf_free +.L3293: + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x20,80] + mov w21, 0 + ldr x1, [x0,1112] strh wzr, [x1,x2,lsl 1] - ldr x0, [x0,608] - ldrh w1, [x21,80] + ldr x0, [x0,1120] + ldrh w1, [x20,80] strh w1, [x0,130] - b .L2967 -.L2966: - add x24, x19, :lo12:.LANCHOR0 - add x25, x22, :lo12:.LANCHOR3 - ldr x1, [x27,8] - ldrh w0, [x24,3570] - ldrb w2, [x24,3572] + b .L3206 +.L3212: + add x2, x23, :lo12:.LANCHOR5 + ldr x1, [x28,8] + ldr x0, [x2,144] + ldrh w2, [x2,926] + b .L3290 +.L3207: + add x2, x22, :lo12:.LANCHOR3 + add x1, x23, :lo12:.LANCHOR5 + ldrh w0, [x2,1266] + ldrb w2, [x2,1249] mul w2, w0, w2 - ldr x0, [x25,1424] + ldr x0, [x1,144] + ldr x1, [x28,8] lsl w2, w2, 2 +.L3290: + add x21, x22, :lo12:.LANCHOR3 bl ftl_memcpy - ldrb w20, [x24,2848] - ldrh w0, [x24,3570] - ldrb w3, [x24,3572] - mul w3, w0, w3 - lsl w2, w3, 2 - cmp w20, w3, lsr 6 - bge .L2968 - ldr x0, [x25,1432] - mov w1, w26 - lsl w20, w20, 7 - sub w20, w20, w3 - bl ftl_memset - lsl w20, w20, 2 - ldrh w0, [x24,3570] - ldrb w1, [x24,3572] - ldr x2, [x27,8] + ldrh w0, [x21,1266] + ldrb w1, [x21,1249] mul w1, w0, w1 + add x0, x19, :lo12:.LANCHOR0 + lsl w2, w1, 2 + ldrb w0, [x0,3360] + cmp w0, w1, lsr 6 + bge .L3214 + add x25, x23, :lo12:.LANCHOR5 + mov w1, 0 + ldr x0, [x25,152] + bl ftl_memset + ldrb w26, [x25,929] + cmp w26, 1 + bne .L3254 + ldrh w0, [x21,1266] + ldrb w1, [x21,1249] + ldrh w21, [x25,926] + ldr x2, [x28,8] + mul w1, w0, w1 + ldr x0, [x25,152] + sub w21, w21, w1, lsl 2 add x1, x2, x1, sxtw 2 - ldr x0, [x25,1432] - mov w2, w20 - bl ftl_memcpy - mov w10, 1 - b .L2969 -.L2968: - ldr x0, [x25,1432] - mov w20, w26 - ldr x1, [x27,8] - add x1, x1, x3, sxtw 2 + mov w2, w21 bl ftl_memcpy mov w10, w26 -.L2969: - add x0, x19, :lo12:.LANCHOR0 - ldrb w24, [x0,3553] - ldrh w26, [x0,3596] - cmp w24, 2 - bne .L2970 - ldrb w0, [x0,3554] - cbz w0, .L2971 -.L2970: - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,756] - cbz w0, .L2972 -.L2971: - mul w26, w26, w24 - mov w24, 1 -.L2972: - mov w28, 0 - adrp x25, .LC236 - add x0, x25, :lo12:.LC236 - mov w13, w28 - str x0, [x29,136] -.L2973: - cmp w28, w26 - bcs .L2985 - sub w0, w28, #1 - mov w25, 0 - str w0, [x29,148] -.L2986: - ldrb w0, [x23,9] - cmp w25, w0 - bge .L2982 - sxtw x0, w25 - mov w11, 1 - str x0, [x29,152] -.L2983: - cmp w11, w24 - bhi .L3039 - ldr x0, [x29,152] - add x2, x19, :lo12:.LANCHOR0 - add x0, x0, 8 - ldrh w1, [x2,3634] - ldrh w0, [x23,x0,lsl 1] - mul w0, w0, w1 - ldrb w1, [x2,3553] - str w0, [x29,168] - cmp w1, 2 - beq .L2974 - ldrb w2, [x2,756] - cbz w2, .L2975 -.L2974: - ldr w2, [x29,148] - add w0, w2, w0 - add w0, w0, w11 - orr w0, w0, w1, lsl 24 - b .L2977 -.L2975: - cmp w1, 3 - add w0, w0, w28 - bne .L2977 - orr w0, w0, w11, lsl 24 -.L2977: - str w0, [x27,40] - mov w1, 1 - mov x0, x27 - str x10, [x29,112] - str x11, [x29,120] - str x13, [x29,128] - bl sblk_read_page - ldr x13, [x29,128] - ldr x10, [x29,112] - ldr x11, [x29,120] - sxtw x14, w13 - cbz w10, .L2978 + b .L3215 +.L3214: + add x0, x23, :lo12:.LANCHOR5 + ldr x3, [x28,8] + add x1, x3, x1, sxtw 2 + ldr x0, [x0,152] + bl ftl_memcpy + mov w10, 0 + mov w21, w10 + b .L3215 +.L3254: + mov w10, 1 + mov w21, 0 +.L3215: add x0, x22, :lo12:.LANCHOR3 - lsl x1, x14, 2 - ldr x0, [x0,1432] + ldrb w25, [x0,1248] + ldrh w27, [x0,1294] + cmp w25, 2 + bne .L3216 + ldrb w0, [x0,1250] + cbz w0, .L3217 +.L3216: + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,1268] + cbz w0, .L3218 +.L3217: + mul w27, w27, w25 + mov w25, 1 +.L3218: + adrp x0, .LC243 + mov w26, 0 + add x0, x0, :lo12:.LC243 + str w26, [x29,172] + str x0, [x29,144] +.L3219: + cmp w26, w27 + bcs .L3231 + add w0, w26, w26, lsl 1 + mov w11, 0 + sub w0, w0, #1 + str w0, [x29,168] + sub w0, w26, #1 + str w0, [x29,152] +.L3232: + ldrb w0, [x24,9] + cmp w11, w0 + bge .L3294 + sxtw x0, w11 + mov x12, 0 + str x0, [x29,160] +.L3229: + add w2, w12, 1 + ldr w0, [x29,172] + cmp w2, w25 + add w13, w0, w12 + bhi .L3295 + ldr x0, [x29,160] + add x3, x22, :lo12:.LANCHOR3 + add x0, x0, 8 + ldrh w1, [x24,x0,lsl 1] + ldrh w0, [x3,1330] + mul w0, w1, w0 + ldrb w1, [x3,1248] + str w0, [x29,184] + cmp w1, 2 + beq .L3220 + add x3, x19, :lo12:.LANCHOR0 + ldrb w4, [x3,1268] + cbz w4, .L3221 +.L3220: + ldr w3, [x29,152] + add w0, w3, w0 + add w0, w0, w2 + orr w0, w0, w1, lsl 24 + b .L3291 +.L3221: + cmp w1, 3 + bne .L3223 + ldrb w1, [x3,1269] + cbz w1, .L3224 + ldr w1, [x29,168] + add w0, w0, w1 + add w0, w0, w2 + orr w0, w0, 50331648 + b .L3291 +.L3224: + add w0, w0, w26 + orr w0, w0, w2, lsl 24 + b .L3291 +.L3223: + add w0, w0, w26 +.L3291: + str w0, [x28,40] + mov w1, 1 + mov x0, x28 + str x13, [x29,112] + str x12, [x29,120] + str x10, [x29,128] + str x11, [x29,136] + bl sblk_read_page + ldr x13, [x29,112] + ldr x10, [x29,128] + ldr x11, [x29,136] + sxtw x13, w13 + ldr x12, [x29,120] + cbz w10, .L3225 + add x0, x23, :lo12:.LANCHOR5 + lsl x1, x13, 2 + ldr x0, [x0,152] ldr w2, [x0,x1] - cbnz w2, .L2978 - ldr x2, [x27,24] + cbnz w2, .L3225 + ldr x2, [x28,24] ldr w2, [x2,8] str w2, [x0,x1] -.L2978: - add x0, x22, :lo12:.LANCHOR3 - lsl x14, x14, 2 - ldr x7, [x27,24] - ldr x1, [x0,1424] +.L3225: + add x0, x23, :lo12:.LANCHOR5 + lsl x13, x13, 2 + ldr x7, [x28,24] + ldr x1, [x0,144] ldr w6, [x7,4] - ldr w3, [x1,x14] + ldr w3, [x1,x13] cmp w3, w6 - bne .L2979 - ldr x0, [x0,1432] - ldr w1, [x0,x14] + bne .L3226 + ldr x0, [x0,152] + ldr w1, [x0,x13] ldr w0, [x7,8] cmp w1, w0 - beq .L3006 -.L2979: - add x15, x22, :lo12:.LANCHOR3 + beq .L3256 +.L3226: + add x14, x23, :lo12:.LANCHOR5 ldr w0, [x7,12] - str x10, [x29,96] - str x11, [x29,104] - ldr x4, [x15,1432] + str x12, [x29,104] + str x10, [x29,112] + ldr x4, [x14,152] str w0, [sp] - ldr x0, [x29,136] - ldr w4, [x4,x14] + ldr x0, [x29,144] + ldr w4, [x4,x13] ldr w5, [x7] - ldr w1, [x27,40] - ldr w2, [x27,52] + ldr w1, [x28,40] + ldr w2, [x28,52] ldr w7, [x7,8] - str x13, [x29,112] - str x15, [x29,120] + str x11, [x29,120] str x14, [x29,128] + str x13, [x29,136] bl printk - ldr x15, [x29,120] ldr x14, [x29,128] - ldr x13, [x29,112] - ldr x0, [x15,1424] - ldr x11, [x29,104] - ldr x10, [x29,96] - ldr w0, [x0,x14] + ldr x13, [x29,136] + ldr x11, [x29,120] + ldr x0, [x14,144] + ldr x10, [x29,112] + ldr x12, [x29,104] + ldr w0, [x0,x13] cmn w0, #1 - beq .L3006 - mov x0, x27 + beq .L3256 + mov x0, x28 bl zbuf_free add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x21,80] - ldr x1, [x0,600] + ldrh w2, [x20,80] + ldr x1, [x0,1112] strh wzr, [x1,x2,lsl 1] - ldr x0, [x0,608] - ldrh w1, [x21,80] + ldr x0, [x0,1120] + ldrh w1, [x20,80] strh w1, [x0,130] - b .L2967 -.L3006: - add w13, w13, 1 + b .L3206 +.L3256: + add x12, x12, 1 + b .L3229 +.L3295: + str w13, [x29,172] add w11, w11, 1 - b .L2983 -.L3039: - add w25, w25, 1 - b .L2986 -.L2982: - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3554] + b .L3232 +.L3294: + add x0, x22, :lo12:.LANCHOR3 + ldrb w0, [x0,1250] cmp w0, wzr - csinc w28, w28, w28, eq - add w28, w28, 1 - b .L2973 -.L2985: - mov x0, x27 - mov w20, 0 - mov w28, w20 + csinc w26, w26, w26, eq + add w26, w26, 1 + b .L3219 +.L3231: + mov x0, x28 + mov w21, 0 + mov w28, w21 bl zbuf_free - str w20, [x29,152] + str w21, [x29,168] add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x23,9] - ldrh w3, [x21,80] - ldr x2, [x0,600] - ldrh w0, [x0,3570] - mul w0, w1, w0 - strh w0, [x2,x3,lsl 1] -.L2987: - cmp w28, w26 - bcs .L3000 + add x3, x22, :lo12:.LANCHOR3 + ldrh w2, [x20,80] + ldr x1, [x0,1112] + ldrh w3, [x3,1266] + ldrb w0, [x24,9] + mul w0, w0, w3 + strh w0, [x1,x2,lsl 1] +.L3233: + cmp w28, w27 + bcs .L3247 + add w0, w28, w28, lsl 1 + str wzr, [x29,172] + sub w0, w0, #1 + str w0, [x29,144] sub w0, w28, #1 - mov w25, 0 - str w0, [x29,120] -.L3001: - ldrb w0, [x23,9] - cmp w25, w0 - bge .L2997 - sxtw x0, w25 - mov w27, 1 - str x0, [x29,128] -.L2998: - cmp w27, w24 - bhi .L3040 - add x1, x22, :lo12:.LANCHOR3 - ldr w0, [x29,152] + str w0, [x29,128] +.L3248: + ldrb w0, [x24,9] + ldr w1, [x29,172] + cmp w1, w0 + bge .L3244 + ldrsw x0, [x29,172] + mov w26, 1 + str x0, [x29,136] +.L3245: + cmp w26, w25 + bhi .L3296 + add x1, x23, :lo12:.LANCHOR5 + ldr w0, [x29,168] sbfiz x0, x0, 2, 32 - ldr x2, [x1,1424] + ldr x2, [x1,144] ldr w5, [x2,x0] cmn w5, #1 - beq .L2988 - ldr x1, [x1,1432] - str x5, [x29,136] + beq .L3234 + ldr x1, [x1,152] + str x5, [x29,152] ldr w0, [x1,x0] - str w0, [x29,148] + str w0, [x29,160] mov w0, w5 bl lpa_hash_get_ppa - str w0, [x29,172] + str w0, [x29,188] cmn w0, #1 - ldr x5, [x29,136] - bne .L2989 + ldr x5, [x29,152] + bne .L3235 mov w0, w5 - add x1, x29, 172 + add x1, x29, 188 mov w2, 0 bl pm_log2phys - ldr x5, [x29,136] -.L2989: - ldr x0, [x29,128] - add x2, x19, :lo12:.LANCHOR0 + ldr x5, [x29,152] +.L3235: + ldr x0, [x29,136] add x0, x0, 8 - ldrh w1, [x23,x0,lsl 1] - ldrh w0, [x2,3634] - mul w1, w1, w0 - ldrb w0, [x2,3553] + ldrh w1, [x24,x0,lsl 1] + add x0, x22, :lo12:.LANCHOR3 + ldrh w2, [x0,1330] + ldrb w0, [x0,1248] cmp w0, 2 - beq .L2990 - ldrb w2, [x2,756] - cbz w2, .L2991 -.L2990: - ldr w2, [x29,120] + mul w1, w1, w2 + beq .L3236 + add x2, x19, :lo12:.LANCHOR0 + ldrb w6, [x2,1268] + cbz w6, .L3237 +.L3236: + ldr w2, [x29,128] add w1, w2, w1 - add w1, w1, w27 + add w1, w1, w26 orr w1, w1, w0, lsl 24 - b .L2993 -.L2991: + b .L3292 +.L3237: cmp w0, 3 + bne .L3239 + ldrb w2, [x2,1269] + lsl w0, w26, 24 + cbz w2, .L3240 + ldr w2, [x29,144] + add w2, w1, w2 + add w2, w2, w26 + orr w1, w0, w2 + b .L3292 +.L3240: add w1, w1, w28 - bne .L2993 - orr w1, w1, w27, lsl 24 -.L2993: - add x0, x19, :lo12:.LANCHOR0 - ldr w2, [x29,148] - str w1, [x29,168] + orr w1, w0, w1 + b .L3292 +.L3239: + add w1, w1, w28 +.L3292: + add x2, x22, :lo12:.LANCHOR3 + ldr w0, [x29,160] + str w1, [x29,184] mov w3, 24 - ldrh w1, [x0,3536] - lsr w6, w2, w1 - ldrb w2, [x0,744] - ldrb w0, [x0,3538] - sub w2, w3, w2 - sub w1, w2, w1 - mov w2, 1 - lsl w1, w2, w1 + ldrh w1, [x2,1232] + lsr w6, w0, w1 + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,1257] + sub w0, w3, w0 + sub w1, w0, w1 + mov w0, 1 + lsl w1, w0, w1 + ldrb w0, [x2,1234] sub w1, w1, #1 and w1, w6, w1 udiv w1, w1, w0 uxth w0, w1 - ldr w1, [x29,148] - str w0, [x29,136] - ldr w0, [x29,172] + ldr w1, [x29,160] + str w0, [x29,152] + ldr w0, [x29,188] cmp w0, w1 - bne .L2994 + bne .L3241 mov w0, w5 - add x1, x29, 168 - add w20, w20, 1 + add x1, x29, 184 + mov w2, 1 + add w21, w21, 1 bl pm_log2phys - ldrh w0, [x29,136] + ldrh w0, [x29,152] bl ftl_vpn_decrement - b .L2995 -.L2994: - ldr w1, [x29,168] + b .L3242 +.L3241: + ldr w1, [x29,184] cmp w0, w1 - csinc w20, w20, w20, ne -.L2995: - ldr w0, [x29,152] + csinc w21, w21, w21, ne +.L3242: + ldr w0, [x29,168] add x2, x19, :lo12:.LANCHOR0 add w0, w0, 1 - str w0, [x29,152] - ldr w0, [x29,136] - ldr x1, [x2,584] + str w0, [x29,168] + ldr w0, [x29,152] + ldr x1, [x2,1096] add x1, x1, x0, lsl 2 ldrb w1, [x1,2] ands w1, w1, 224 - bne .L2988 + bne .L3234 lsl x0, x0, 1 - ldr x2, [x2,600] + ldr x2, [x2,1112] ldrh w5, [x2,x0] - cbz w5, .L2988 + cbz w5, .L3234 strh w1, [x2,x0] -.L2988: - add w27, w27, 1 - b .L2998 -.L3040: - add w25, w25, 1 - b .L3001 -.L2997: - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3554] +.L3234: + add w26, w26, 1 + b .L3245 +.L3296: + ldr w0, [x29,172] + add w0, w0, 1 + str w0, [x29,172] + b .L3248 +.L3244: + add x0, x22, :lo12:.LANCHOR3 + ldrb w0, [x0,1250] cmp w0, wzr csinc w28, w28, w28, eq add w28, w28, 1 - b .L2987 -.L3000: + b .L3233 +.L3247: add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x21,80] - ldr x0, [x0,600] - strh w20, [x0,x1,lsl 1] - ldrh w0, [x21,80] + ldrh w1, [x20,80] + ldr x0, [x0,1112] + strh w21, [x0,x1,lsl 1] + ldrh w0, [x20,80] bl zftl_insert_data_list -.L2967: +.L3206: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x21,80] + ldrh w0, [x20,80] ubfiz x2, x0, 1, 16 - ldr x1, [x1,600] + ldr x1, [x1,1112] ldrh w1, [x1,x2] - cbnz w1, .L3002 + cbnz w1, .L3249 bl ftl_dump_write_open_sblk -.L3002: - ldrh w1, [x21,80] - adrp x0, .LC237 - mov w2, w20 - add x0, x0, :lo12:.LC237 +.L3249: + ldrh w1, [x20,80] + adrp x0, .LC244 + mov w2, w21 + add x0, x0, :lo12:.LC244 bl printk mov w0, -1 - strh w0, [x21,80] + strh w0, [x20,80] bl pm_flush bl ftl_ext_info_flush - add x0, x19, :lo12:.LANCHOR0 - mov w1, 65535 - ldr x0, [x0,608] + add x1, x19, :lo12:.LANCHOR0 + mov w2, 65535 + ldr x0, [x1,1120] + ldrh w0, [x0,130] + cmp w0, w2 + beq .L3250 + ldrh w1, [x1,1088] + cmp w1, w0 + bhi .L3251 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 517 + add x1, x1, 808 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L3251: + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,1120] ldrh w0, [x0,130] - cmp w0, w1 - beq .L3003 bl ftl_free_sblk -.L3003: +.L3250: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - ldr x1, [x19,2880] + ldr x1, [x19,3392] strh w0, [x1,126] - ldr x1, [x19,608] + ldr x1, [x19,1120] strh w0, [x1,130] mov w0, 0 bl ftl_info_flush - b .L2960 -.L2961: - ldrh w0, [x21,130] + b .L3199 +.L3200: + ldrh w0, [x20,130] cmp w0, w1 - beq .L2960 - ldr x1, [x20,2880] + beq .L3199 + ldr x1, [x21,3392] ldrh w1, [x1,126] cmp w1, w0 - bne .L3005 + bne .L3253 bl pm_flush - ldr x0, [x20,608] + ldr x0, [x21,1120] ldrh w0, [x0,130] bl ftl_free_sblk - ldr x0, [x20,2880] + ldr x0, [x21,3392] mov w1, -1 strh w1, [x0,126] mov w0, 0 bl ftl_info_flush -.L3005: +.L3253: add x19, x19, :lo12:.LANCHOR0 mov w1, -1 - ldr x0, [x19,608] + ldr x0, [x19,1120] strh w1, [x0,130] -.L2960: +.L3199: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -19498,586 +20987,10 @@ gc_recovery: ldp x25, x26, [sp,96] ldp x27, x28, [sp,112] ldp x29, x30, [sp,32] - add sp, sp, 208 + add sp, sp, 224 ret .size gc_recovery, .-gc_recovery .align 2 - .global zftl_init - .type zftl_init, %function -zftl_init: - stp x29, x30, [sp, -64]! - mov w1, -1 - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR3 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - add x0, x22, :lo12:.LANCHOR3 - adrp x23, .LANCHOR6 - adrp x19, .LANCHOR0 - add x24, x23, :lo12:.LANCHOR6 - add x21, x19, :lo12:.LANCHOR0 - adrp x20, .LANCHOR2 - strb w1, [x0,-173] - strb w1, [x0,1544] - strb wzr, [x0,-172] - mov w0, -1 - strb w1, [x21,2904] - adrp x1, .LC2 - str w0, [x24,228] - adrp x0, .LC1 - add x1, x1, :lo12:.LC2 - add x0, x0, :lo12:.LC1 - strb wzr, [x21,2872] - strb wzr, [x21,2873] - bl printk - add x1, x20, :lo12:.LANCHOR2 - ldrb w6, [x21,633] - strb w6, [x21,3636] - ldrh w4, [x21,2] - ldrb w2, [x1,21] - ldrb w7, [x1,20] - ldrh w3, [x1,18] - mul w6, w2, w6 - ldrb w0, [x1,17] - ldrh w8, [x1,22] - mov w1, 0 - sdiv w9, w3, w7 - strb w2, [x21,3538] - strb w7, [x21,3553] - uxtb w6, w6 - strb w0, [x21,2848] - ubfiz w10, w0, 9, 7 - strh w3, [x21,3570] - mov w2, 1 - strh w9, [x21,3596] - strb w6, [x21,3572] - strh w8, [x21,576] - strh w4, [x21,3634] - mov x21, x23 - strh w10, [x24,224] -.L3042: - cmp w2, w4 - bhi .L3113 - add w1, w1, 1 - lsl w2, w2, 1 - uxth w1, w1 - b .L3042 -.L3113: - mul w3, w0, w3 - add x2, x19, :lo12:.LANCHOR0 - sub w1, w1, #1 - mul w4, w3, w8 - strh w1, [x2,3536] - mov w1, 1 - lsr w5, w4, 21 - mov w2, 0 -.L3044: - cmp w1, w5 - bhi .L3114 - add w2, w2, 1 - lsl w1, w1, 1 - uxth w2, w2 - b .L3044 -.L3114: - mov w1, 57344 - mov w5, 1 - movk w1, 0x1c, lsl 16 - sub w2, w2, #1 - lsl w2, w5, w2 - add x5, x19, :lo12:.LANCHOR0 - mul w1, w6, w1 - mul w4, w4, w6 - str w4, [x5,2852] - add x11, x21, :lo12:.LANCHOR6 - mul w1, w1, w2 - mul w9, w9, w6 - add w4, w1, 24576 - str w4, [x11,232] - mul w3, w3, w6 - udiv w2, w4, w0 - sub w0, w10, #1 - str w2, [x5,2856] - sub w3, w3, #1 - str w1, [x5,520] - add w0, w0, w2, lsl 2 - add x2, x22, :lo12:.LANCHOR3 - udiv w4, w4, w3 - add w4, w4, 8 - strh w4, [x5,3604] - udiv w0, w0, w10 - strh w0, [x11,236] - ubfiz w0, w0, 4, 16 - sdiv w0, w0, w9 - strh w0, [x2,1456] - add w0, w8, w8, lsl 1 - asr w0, w0, 2 - strh w0, [x2,-178] - lsr w0, w8, 4 - strh w0, [x5,3602] - cmp w0, 79 - bhi .L3046 - mov w0, 80 - strh w0, [x5,3602] -.L3046: - add x0, x22, :lo12:.LANCHOR3 - mov w2, 2000 - add x3, x19, :lo12:.LANCHOR0 - cmp w7, 2 - strh w2, [x0,-176] - mov w2, 50 - strh w2, [x0,-180] - mov w2, 256 - strh w2, [x0,1452] - mov w2, 48 - strh w2, [x0,1454] - mov w2, 32 - strh w2, [x3,592] - beq .L3047 - ldrb w4, [x3,3568] - cbz w4, .L3048 -.L3047: - add x0, x22, :lo12:.LANCHOR3 - mov w2, 150 - mov w3, 12 - strh w2, [x0,-180] - mov w2, 64 - strh w2, [x0,1454] - add x2, x19, :lo12:.LANCHOR0 - strh w3, [x2,592] - ldrb w3, [x19,#:lo12:.LANCHOR0] - cbnz w3, .L3050 - mov w3, 4 - strh w3, [x2,592] - mov w2, 600 - strh w2, [x0,-176] - mov w2, 128 - strh w2, [x0,1452] - b .L3050 -.L3048: - ldrb w3, [x3,756] - cbz w3, .L3050 - mov w3, 1200 - strh w2, [x0,-180] - strh w3, [x0,-176] - strh w2, [x0,1454] -.L3050: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3052 - adrp x0, .LC238 - add x0, x0, :lo12:.LC238 - bl printk -.L3052: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3053 - add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC239 - add x0, x0, :lo12:.LC239 - ldr w1, [x1,2852] - bl printk -.L3053: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3054 - add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC240 - add x0, x0, :lo12:.LC240 - ldr w1, [x1,2856] - bl printk -.L3054: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3055 - add x1, x21, :lo12:.LANCHOR6 - adrp x0, .LC241 - add x0, x0, :lo12:.LC241 - ldr w1, [x1,232] - bl printk -.L3055: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3056 - add x1, x21, :lo12:.LANCHOR6 - adrp x0, .LC242 - add x0, x0, :lo12:.LC242 - ldrh w1, [x1,236] - bl printk -.L3056: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3057 - add x1, x21, :lo12:.LANCHOR6 - adrp x0, .LC243 - add x0, x0, :lo12:.LC243 - ldrh w1, [x1,224] - bl printk -.L3057: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3058 - add x1, x22, :lo12:.LANCHOR3 - adrp x0, .LC244 - add x0, x0, :lo12:.LC244 - ldrh w1, [x1,1456] - bl printk -.L3058: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3059 - add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC245 - add x0, x0, :lo12:.LC245 - ldrh w1, [x1,3602] - bl printk -.L3059: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3060 - add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC246 - add x0, x0, :lo12:.LC246 - ldrh w1, [x1,3604] - bl printk -.L3060: - add x23, x19, :lo12:.LANCHOR0 - bl zbuf_init - mov w0, 6 - add x22, x22, :lo12:.LANCHOR3 - ldrh w1, [x23,576] - mul w0, w1, w0 - bl ftl_malloc - str x0, [x23,528] - ldrb w1, [x23,3572] - ldrh w0, [x23,3596] - mul w0, w0, w1 - lsl w0, w0, 2 - bl ftl_malloc - str x0, [x22,-192] - ldrb w1, [x23,3572] - adrp x4, .LANCHOR5 - ldrh w0, [x23,3596] - add x2, x4, :lo12:.LANCHOR5 - add x2, x2, 960 - str x2, [x22,-200] - mul w1, w0, w1 - ldrh w0, [x23,576] - lsl w1, w1, 1 - add x3, x2, x1, sxtw 2 - str x3, [x23,600] - add w1, w1, w0, lsr 1 - ldr w0, [x20,#:lo12:.LANCHOR2] - add x1, x2, x1, sxtw 2 - str x1, [x23,608] - mov x23, x4 - tbz x0, 12, .L3061 - adrp x0, .LC247 - add x0, x0, :lo12:.LC247 - bl printk -.L3061: - add x2, x19, :lo12:.LANCHOR0 - add x3, x21, :lo12:.LANCHOR6 - ldrh w0, [x2,3596] - ldrb w22, [x2,3572] - ldrh w1, [x2,576] - ldrh w24, [x3,236] - mul w22, w0, w22 - ldr w0, [x20,#:lo12:.LANCHOR2] - lsl w24, w24, 2 - add w24, w24, w1, lsl 2 - add w22, w1, w22, lsl 2 - add w24, w24, 704 - lsl w22, w22, 1 - add w22, w22, 632 - tbz x0, 12, .L3062 - adrp x0, .LC248 - ldrh w3, [x3,224] - add x0, x0, :lo12:.LC248 - mov w1, w22 - mov w2, w24 - bl printk -.L3062: - add x21, x21, :lo12:.LANCHOR6 - ldrh w0, [x21,224] - cmp w22, w0 - bhi .L3064 - cmp w24, w0 - bls .L3063 -.L3064: -.L3065: - b .L3065 -.L3063: - bl sblk_init - bl ftl_info_blk_init - cmn w0, #1 - beq .L3066 - bl ftl_ext_info_init - add x19, x19, :lo12:.LANCHOR0 - bl gc_init - add x23, x23, :lo12:.LANCHOR5 - mov w0, 1 - bl pm_init - bl lpa_rebuild_hash - ldr x0, [x19,608] - mov x1, 0 - add x0, x0, 16 - bl ftl_open_sblk_recovery - ldr x1, [x19,608] - add x0, x1, 48 - add x1, x1, 16 - bl ftl_open_sblk_recovery - ldr x1, [x19,2880] - ldr w0, [x1,8] - add w0, w0, 16 - str w0, [x1,8] - ldr x0, [x19,608] - add x0, x0, 16 - bl ftl_info_data_recovery - ldr x0, [x19,608] - add x0, x0, 48 - bl ftl_info_data_recovery - ldr x0, [x19,608] - add x0, x0, 80 - bl ftl_info_data_recovery - bl gc_recovery - bl pm_flush - mov w0, 1 - bl ftl_total_vpn_update - ldrb w0, [x23,897] - cbz w0, .L3067 - ldr x1, [x19,2880] - ldr w0, [x1,68] - add w0, w0, 1 - str w0, [x1,68] -.L3067: - bl ftl_ext_info_flush - mov w0, 0 - bl ftl_info_flush - bl print_ftl_debug_info - mov w0, 0 -.L3066: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 - ret - .size zftl_init, .-zftl_init - .align 2 - .global rk_ftl_init - .type rk_ftl_init, %function -rk_ftl_init: - stp x29, x30, [sp, -48]! - adrp x0, jiffies - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR3 - ldr x0, [x0,#:lo12:jiffies] - stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR3 - adrp x20, .LANCHOR6 - add x20, x20, :lo12:.LANCHOR6 - str x0, [x19,1464] - mov w0, 136 - strb wzr, [x20,238] - bl ftl_malloc - str x0, [x19,1472] - cbnz x0, .L3116 -.L3118: - mov w0, -1 - b .L3117 -.L3116: - mov w0, 2048 - bl ftl_malloc - str x0, [x20,240] - mov x1, x20 - add x0, x19, 1480 - str xzr, [x19,1480] - str xzr, [x1,248]! - bl rknand_get_reg_addr - ldr x0, [x19,1480] - cbz x0, .L3118 - bl rk_nandc_irq_init - mov w1, 0 - ldr x0, [x20,240] - mov w2, w1 - mov w3, 2048 - bl flash_sram_load_store - bl rknand_flash_cs_init - ldr x0, [x19,1472] - adrp x1, zftl_deinit - add x1, x1, :lo12:zftl_deinit - str x1, [x0,80] - adrp x1, zftl_cache_flush - add x1, x1, :lo12:zftl_cache_flush - str x1, [x0,64] - adrp x1, zftl_flash_suspend - add x1, x1, :lo12:zftl_flash_suspend - str x1, [x0,88] - adrp x1, zftl_flash_resume - add x1, x1, :lo12:zftl_flash_resume - str x1, [x0,96] - adrp x1, zftl_get_density - add x1, x1, :lo12:zftl_get_density - str x1, [x0,72] - adrp x1, zftl_read_flash_info - add x1, x1, :lo12:zftl_read_flash_info - str x1, [x0,112] - adrp x1, zftl_read - add x1, x1, :lo12:zftl_read - str x1, [x0,40] - adrp x1, zftl_write - add x1, x1, :lo12:zftl_write - str x1, [x0,48] - adrp x1, zftl_sys_read - add x1, x1, :lo12:zftl_sys_read - str x1, [x0,24] - adrp x1, zftl_sys_write - add x1, x1, :lo12:zftl_sys_write - str x1, [x0,32] - adrp x1, zftl_vendor_read - add x1, x1, :lo12:zftl_vendor_read - str x1, [x0,8] - adrp x1, zftl_vendor_write - add x1, x1, :lo12:zftl_vendor_write - str x1, [x0,16] - adrp x1, zftl_nandc_get_irq_status - add x1, x1, :lo12:zftl_nandc_get_irq_status - str x1, [x0,120] - adrp x1, zftl_proc_ftl_read - add x1, x1, :lo12:zftl_proc_ftl_read - str x1, [x0,128] - adrp x1, zftl_do_gc - add x1, x1, :lo12:zftl_do_gc - str x1, [x0,104] - adrp x1, zftl_discard - add x1, x1, :lo12:zftl_discard - str x1, [x0,56] - ldr x0, [x19,1480] - bl nand_flash_init - mov w22, w0 - cbnz w0, .L3119 - bl zftl_init - mov w19, w0 - bl zftl_proc_debug_init - mov w0, 1 - strb w0, [x20,238] - b .L3120 -.L3119: - ldr x1, [x19,1472] - adrp x2, ftl_read_flash_info - add x2, x2, :lo12:ftl_read_flash_info - adrp x0, ftl_deinit - add x0, x0, :lo12:ftl_deinit - str x2, [x1,112] - adrp x2, ftl_read - add x2, x2, :lo12:ftl_read - str x2, [x1,40] - adrp x2, ftl_write - str x0, [x1,80] - add x2, x2, :lo12:ftl_write - str x2, [x1,48] - adrp x2, ftl_sys_read - adrp x0, ftl_cache_flush - add x2, x2, :lo12:ftl_sys_read - str x2, [x1,24] - adrp x2, ftl_sys_write - add x0, x0, :lo12:ftl_cache_flush - add x2, x2, :lo12:ftl_sys_write - str x2, [x1,32] - adrp x2, ftl_vendor_read - str x0, [x1,64] - add x2, x2, :lo12:ftl_vendor_read - str x2, [x1,8] - adrp x2, ftl_vendor_write - adrp x0, ftl_flash_suspend - add x2, x2, :lo12:ftl_vendor_write - str x2, [x1,16] - adrp x2, ftl_nandc_get_irq_status - add x0, x0, :lo12:ftl_flash_suspend - add x2, x2, :lo12:ftl_nandc_get_irq_status - str x0, [x1,88] - str x2, [x1,120] - adrp x0, ftl_flash_resume - adrp x2, ftl_proc_ftl_read - add x0, x0, :lo12:ftl_flash_resume - add x2, x2, :lo12:ftl_proc_ftl_read - str x0, [x1,96] - str x2, [x1,128] - adrp x0, ftl_get_density - adrp x2, ftl_do_gc - add x0, x0, :lo12:ftl_get_density - add x2, x2, :lo12:ftl_do_gc - str x0, [x1,72] - str x2, [x1,104] - adrp x2, ftl_discard - ldr x0, [x19,1480] - add x2, x2, :lo12:ftl_discard - str x2, [x1,56] - bl FlashInit - mov w19, w0 - cmn w22, #2 - adrp x22, .LANCHOR2 - bne .L3121 - add x20, x22, :lo12:.LANCHOR2 - adrp x1, gNandParaInfo - add x20, x20, 8 - add x1, x1, :lo12:gNandParaInfo - mov w2, 32 - mov x0, x20 - bl ftl_memcpy - ldrb w0, [x20,18] - bl flash_lsb_page_tbl_build - ldrh w0, [x20,10] - strh w0, [x20,26] -.L3121: - adrp x0, g_nandc_version_data - ldr w1, [x0,#:lo12:g_nandc_version_data] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - adrp x0, .LANCHOR0 - bne .L3122 - adrp x1, gFlashSlcMode - ldrb w1, [x1,#:lo12:gFlashSlcMode] - cbnz w1, .L3123 -.L3122: - add x1, x0, :lo12:.LANCHOR0 - strb wzr, [x0,#:lo12:.LANCHOR0] - strb wzr, [x1,634] -.L3123: - adrp x2, gNandFlashIDBEccBits - add x1, x0, :lo12:.LANCHOR0 - add x22, x22, :lo12:.LANCHOR2 - add x21, x21, :lo12:.LANCHOR3 - ldrb w2, [x2,#:lo12:gNandFlashIDBEccBits] - strb w2, [x1,632] - adrp x2, gNandFlashEccBits - ldrh w3, [x22,18] - str xzr, [x21,1520] - ldrb w2, [x2,#:lo12:gNandFlashEccBits] - strb w2, [x1,724] - mov w2, 1 - mov w1, 0 -.L3124: - cmp w2, w3 - bhi .L3129 - add w1, w1, 1 - lsl w2, w2, 1 - uxth w1, w1 - b .L3124 -.L3129: - add x0, x0, :lo12:.LANCHOR0 - sub w1, w1, #1 - strb wzr, [x0,672] - strh w1, [x0,3536] - cbnz w19, .L3120 - bl FtlInit - mov w19, w0 -.L3120: - adrp x0, .LC249 - mov w1, w19 - add x0, x0, :lo12:.LC249 - bl printk - mov w0, w19 -.L3117: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret - .size rk_ftl_init, .-rk_ftl_init - .align 2 .global gc_update_l2p_map_new .type gc_update_l2p_map_new, %function gc_update_l2p_map_new: @@ -20086,107 +20999,112 @@ gc_update_l2p_map_new: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] stp x23, x24, [sp,48] + stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - adrp x22, .LANCHOR2 - ldr x20, [x0,608] - ldrh w24, [x0,3570] - add x0, x20, 80 - str x0, [x29,128] - ldrb w0, [x0,9] - mul w24, w24, w0 - bl timer_get_time - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L3131 - adrp x0, .LC250 - ldrh w1, [x20,80] - add x0, x0, :lo12:.LC250 - bl printk -.L3131: - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x20,80] - sub w2, w24, #1 - mov w21, 0 - mov w23, w21 - adrp x27, .LANCHOR3 - ldr x0, [x0,600] - strh w2, [x0,x1,lsl 1] - adrp x0, .LC252 - add x0, x0, :lo12:.LC252 - str x0, [x29,120] - adrp x0, .LC251 - add x0, x0, :lo12:.LC251 - str x0, [x29,112] -.L3132: - cmp w23, w24 - beq .L3164 + adrp x23, .LANCHOR2 + ldr x20, [x0,1120] adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldr x0, [x0,1424] - ldr w2, [x0,w23,sxtw 2] - cmn w2, #1 - beq .L3133 + add x1, x0, :lo12:.LANCHOR3 + str x0, [x29,120] + ldrh w25, [x1,1266] + add x1, x20, 80 + str x1, [x29,128] + ldrb w1, [x1,9] + mul w25, w25, w1 + ldr w1, [x23,#:lo12:.LANCHOR2] + tbz x1, 8, .L3298 + adrp x0, .LC245 + ldrh w1, [x20,80] + add x0, x0, :lo12:.LC245 + bl printk +.L3298: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2848] + adrp x21, .LANCHOR5 + ldrh w2, [x20,80] + mov w22, 0 + mov w24, w22 + ldr x1, [x0,1112] + add x0, x21, :lo12:.LANCHOR5 + ldrb w0, [x0,929] + sub w0, w25, w0 + strh w0, [x1,x2,lsl 1] + adrp x0, .LC247 + add x0, x0, :lo12:.LC247 + str x0, [x29,112] + adrp x0, .LC246 + add x0, x0, :lo12:.LC246 + str x0, [x29,104] +.L3299: + cmp w24, w25 + beq .L3331 + add x0, x21, :lo12:.LANCHOR5 + ldr x0, [x0,144] + ldr w2, [x0,w24,sxtw 2] + cmn w2, #1 + beq .L3300 + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,3360] lsl w0, w0, 7 udiv w0, w2, w0 and w0, w0, 65535 str w0, [x29,140] - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L3134 - ldr x0, [x29,112] - mov w3, w23 + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 8, .L3301 + ldr x0, [x29,104] + mov w3, w24 ldr w1, [x29,140] bl printk -.L3134: - mov w25, w23 -.L3140: - add x1, x27, :lo12:.LANCHOR3 - sbfiz x26, x25, 2, 32 - ldr x0, [x1,1424] - ldr w4, [x0,x26] +.L3301: + mov w26, w24 +.L3307: + add x1, x21, :lo12:.LANCHOR5 + sbfiz x27, x26, 2, 32 + ldr x0, [x1,144] + ldr w4, [x0,x27] cmn w4, #1 - beq .L3135 + beq .L3302 add x0, x19, :lo12:.LANCHOR0 ldr w2, [x29,140] - ldrb w0, [x0,2848] + ldrb w0, [x0,3360] lsl w0, w0, 7 udiv w0, w4, w0 cmp w2, w0, uxth - bne .L3135 - ldr x0, [x1,1432] - str x4, [x29,104] - ldr w28, [x0,x26] + bne .L3302 + ldr x0, [x1,152] + str x4, [x29,96] + ldr w28, [x0,x27] mov w0, w4 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - ldr x4, [x29,104] - bne .L3136 + ldr x4, [x29,96] + bne .L3303 mov w0, w4 add x1, x29, 156 mov w2, 0 bl pm_log2phys - ldr x4, [x29,104] -.L3136: + ldr x4, [x29,96] +.L3303: ldr w3, [x29,156] cmp w3, w28 - bne .L3137 - add x0, x27, :lo12:.LANCHOR3 + bne .L3304 + add x0, x21, :lo12:.LANCHOR5 add x1, x29, 152 mov w2, 1 - add w21, w21, 1 - ldr x0, [x0,1440] - ldr w0, [x0,x26] + add w22, w22, 1 + ldr x0, [x0,160] + ldr w0, [x0,x27] str w0, [x29,152] mov w0, w4 bl pm_log2phys - add x3, x19, :lo12:.LANCHOR0 + ldr x0, [x29,120] mov w2, 24 - ldrb w0, [x3,744] - ldrh w1, [x3,3536] + add x3, x0, :lo12:.LANCHOR3 + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,1257] + ldrh w1, [x3,1232] sub w0, w2, w0 mov w2, 1 sub w0, w0, w1 @@ -20194,66 +21112,65 @@ gc_update_l2p_map_new: lsl w0, w2, w0 sub w0, w0, #1 and w28, w0, w28 - ldrb w0, [x3,3538] + ldrb w0, [x3,1234] udiv w0, w28, w0 - b .L3163 -.L3137: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L3139 - ldr x0, [x29,120] + b .L3330 +.L3304: + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 8, .L3306 + ldr x0, [x29,112] mov w1, w4 mov w2, w28 bl printk -.L3139: +.L3306: ldr x0, [x29,128] ldrh w0, [x0] -.L3163: +.L3330: bl ftl_vpn_decrement - add x0, x27, :lo12:.LANCHOR3 + add x0, x21, :lo12:.LANCHOR5 mov w1, -1 - ldr x0, [x0,1424] - str w1, [x0,x26] - bl timer_get_time -.L3135: - add w25, w25, 1 - cmp w25, w24 - bne .L3140 -.L3133: - add w23, w23, 1 - b .L3132 -.L3164: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L3142 + ldr x0, [x0,144] + str w1, [x0,x27] +.L3302: + add w26, w26, 1 + cmp w26, w25 + bne .L3307 +.L3300: + add w24, w24, 1 + b .L3299 +.L3331: + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 8, .L3309 add x0, x19, :lo12:.LANCHOR0 ldrh w3, [x20,80] - ldr x1, [x0,608] - ldr x2, [x0,600] - adrp x0, .LC253 - add x0, x0, :lo12:.LC253 + ldr x1, [x0,1120] + ldr x2, [x0,1112] + adrp x0, .LC248 + add x0, x0, :lo12:.LC248 ldrh w1, [x1,80] ldrh w2, [x2,x3,lsl 1] - mov w3, w21 + mov w3, w22 bl printk -.L3142: +.L3309: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] - ldr x0, [x0,600] + ldr x0, [x0,1112] ldrh w0, [x0,x1,lsl 1] - cmp w0, w21 - beq .L3143 + cmp w0, w22 + beq .L3310 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 749 - add x1, x1, 624 + mov w2, 898 + add x1, x1, 824 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3143: +.L3310: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] - ldr x0, [x19,600] - strh w21, [x0,x1,lsl 1] + ldr x0, [x19,1112] + strh w22, [x0,x1,lsl 1] ldrh w0, [x20,80] bl zftl_insert_data_list ldp x19, x20, [sp,16] @@ -20269,139 +21186,156 @@ gc_update_l2p_map_new: .type gc_scan_src_blk_one_page, %function gc_scan_src_blk_one_page: stp x29, x30, [sp, -80]! + mov w3, 0 mov w5, 65535 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - str x23, [sp,48] - add x2, x19, :lo12:.LANCHOR0 - add x1, x2, 2912 - stp x21, x22, [sp,32] - ldrb w0, [x1,4] - add x3, x1, x0, sxtw 1 - ldrb w6, [x2,3572] - ldrh w22, [x3,40] - mov w3, 0 - ldrh w2, [x1,2] mov w4, w3 -.L3166: + add x1, x19, :lo12:.LANCHOR0 + add x1, x1, 3424 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + adrp x21, .LANCHOR3 + ldrb w0, [x1,4] + add x2, x1, x0, sxtw 1 + ldrh w22, [x2,40] + add x2, x21, :lo12:.LANCHOR3 + ldrb w6, [x2,1249] + ldrh w2, [x1,2] +.L3333: cmp w22, w5 - bne .L3196 + bne .L3362 add w0, w0, 1 uxtb w0, w0 cmp w0, w6 - bne .L3167 + bne .L3334 add w2, w2, 1 mov w0, 0 mov w4, 1 uxth w2, w2 -.L3167: +.L3334: add x3, x1, x0, sxtw 1 ldrh w22, [x3,40] mov w3, 1 - b .L3166 -.L3196: - cbz w4, .L3169 + b .L3333 +.L3362: + cbz w4, .L3336 add x1, x19, :lo12:.LANCHOR0 - strh w2, [x1,2914] -.L3169: - cbz w3, .L3170 + strh w2, [x1,3426] +.L3336: + cbz w3, .L3337 add x1, x19, :lo12:.LANCHOR0 - strb w0, [x1,2916] -.L3170: + strb w0, [x1,3428] +.L3337: mov w0, 1 - mov w23, 1 + mov w24, 1 add x19, x19, :lo12:.LANCHOR0 bl buf_alloc - mov x21, x0 -.L3171: - add x20, x19, 2912 - ldrb w1, [x20,6] - cmp w23, w1 - bgt .L3197 - ldrh w0, [x19,3634] - cmp w1, 2 - mul w0, w22, w0 - beq .L3172 - cmp w1, 3 - bne .L3173 - ldrb w1, [x19,756] - cbz w1, .L3174 -.L3172: - ldrh w1, [x19,2914] - add w0, w0, w1, lsl 1 - ldrb w1, [x19,3553] - sub w0, w0, #1 - add w0, w0, w23 - orr w0, w0, w1, lsl 24 - b .L3195 -.L3174: - ldrh w1, [x20,2] - add w0, w0, w1 - orr w0, w0, w23, lsl 24 - b .L3195 -.L3173: - ldrh w1, [x20,2] - add w0, w0, w1 -.L3195: - str w0, [x21,40] + mov x23, x0 +.L3338: + add x20, x19, 3424 + ldrb w0, [x20,6] + cmp w24, w0 + bgt .L3363 + add x3, x21, :lo12:.LANCHOR3 + cmp w0, 2 + ldrh w1, [x3,1330] + mul w1, w22, w1 + bne .L3339 + ldrh w2, [x20,2] + ldrb w0, [x3,1248] + add w1, w1, w2, lsl 1 + sub w1, w1, #1 + add w1, w1, w24 + b .L3361 +.L3339: + cmp w0, 3 + bne .L3341 + ldrb w0, [x19,1268] + cbnz w0, .L3342 + ldrb w0, [x19,1269] + cbz w0, .L3343 +.L3342: + ldrh w2, [x19,3426] + add x0, x21, :lo12:.LANCHOR3 + add w2, w2, w2, lsl 1 + ldrb w0, [x0,1248] + sub w2, w2, #1 + add w1, w2, w1 + add w1, w1, w24 +.L3361: + orr w1, w1, w0, lsl 24 + b .L3360 +.L3343: + ldrh w0, [x20,2] + add w1, w1, w0 + orr w1, w1, w24, lsl 24 + b .L3360 +.L3341: + ldrh w0, [x20,2] + add w1, w1, w0 +.L3360: + str w1, [x23,40] + mov x0, x23 mov w1, 1 - mov x0, x21 bl sblk_read_page - ldr w0, [x21,52] + ldr w0, [x23,52] cmp w0, 512 - beq .L3178 + beq .L3346 cmn w0, #1 - beq .L3178 - ldr x0, [x21,24] + beq .L3346 + ldr x0, [x23,24] ldr w20, [x0,4] mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L3179 - ldr w0, [x19,2856] + bne .L3347 + ldr w0, [x19,3372] cmp w20, w0 - bcs .L3179 + bcs .L3347 mov w0, w20 add x1, x29, 76 mov w2, 0 bl pm_log2phys -.L3179: - ldr w1, [x21,40] +.L3347: + ldr w2, [x23,40] ldr w0, [x29,76] - cmp w1, w0 - bne .L3178 - ldrh w3, [x19,2936] - ldr x2, [x19,3544] - str w1, [x2,x3,lsl 2] - ldrh w1, [x19,2936] + cmp w2, w0 + bne .L3346 + add x1, x21, :lo12:.LANCHOR3 + ldrh w3, [x19,3448] + ldr x1, [x1,1240] + str w2, [x1,x3,lsl 2] + ldrh w1, [x19,3448] add w1, w1, 1 - strh w1, [x19,2936] -.L3178: - ldrh w0, [x19,2938] - add w23, w23, 1 + strh w1, [x19,3448] +.L3346: + ldrh w0, [x19,3450] + add w24, w24, 1 add w0, w0, 1 - strh w0, [x19,2938] - b .L3171 -.L3197: - mov x0, x21 + strh w0, [x19,3450] + b .L3338 +.L3363: + mov x0, x23 + add x21, x21, :lo12:.LANCHOR3 bl zbuf_free ldrb w0, [x20,4] - ldrb w1, [x19,3572] + ldrb w1, [x21,1249] add w0, w0, 1 uxtb w0, w0 strb w0, [x20,4] cmp w1, w0 - bne .L3165 + bne .L3332 ldrh w0, [x20,2] strb wzr, [x20,4] add w0, w0, 1 strh w0, [x20,2] -.L3165: +.L3332: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldr x23, [sp,48] + ldp x23, x24, [sp,48] ldp x29, x30, [sp], 80 ret .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page @@ -20409,272 +21343,389 @@ gc_scan_src_blk_one_page: .global gc_scan_src_blk .type gc_scan_src_blk, %function gc_scan_src_blk: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -112]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR0 + str x27, [sp,80] + add x0, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldrh w1, [x0,2912] + ldrh w1, [x0,3424] mov w0, 65535 cmp w1, w0 - bne .L3199 + bne .L3365 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1236 - add x1, x1, 648 + mov w2, 1504 + add x1, x1, 848 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3199: - add x2, x19, :lo12:.LANCHOR0 +.L3365: + add x2, x20, :lo12:.LANCHOR0 mov w3, 65535 mov w0, 0 - ldrh w1, [x2,2912] + ldrh w1, [x2,3424] cmp w1, w3 - beq .L3200 + beq .L3366 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3201 + tbz x0, 8, .L3367 ubfiz x3, x1, 1, 16 - ldr x2, [x2,600] - adrp x0, .LC254 - add x0, x0, :lo12:.LC254 + ldr x2, [x2,1112] + adrp x0, .LC249 + add x0, x0, :lo12:.LC249 ldrh w2, [x2,x3] bl printk -.L3201: - add x20, x19, :lo12:.LANCHOR0 +.L3367: + add x19, x20, :lo12:.LANCHOR0 bl timer_get_time - add x21, x20, 2912 - add x1, x20, 2952 - ldrh w0, [x20,2912] + add x21, x19, 3424 + add x1, x19, 3464 + ldrh w0, [x19,3424] bl ftl_get_blk_list_in_sblk uxtb w1, w0 strb w1, [x21,5] - cbnz w1, .L3202 + cbnz w1, .L3368 mov w0, -1 - strh w0, [x20,2912] - b .L3232 -.L3202: - ldrh w3, [x20,2912] - ldr x2, [x20,584] + strh w0, [x19,3424] + b .L3420 +.L3368: + ldrh w3, [x19,3424] + ldr x2, [x19,1096] add x2, x2, x3, lsl 2 ldrb w2, [x2,2] tst w2, 192 and w4, w2, 224 - beq .L3203 + beq .L3369 cmp w4, 224 - beq .L3203 - ldr x2, [x20,608] + beq .L3369 + ldr x2, [x19,1120] ldrh w5, [x2,16] cmp w5, w3 - beq .L3203 + beq .L3369 ldrh w5, [x2,48] cmp w5, w3 - beq .L3203 + beq .L3369 ldrh w2, [x2,80] cmp w2, w3 - bne .L3204 -.L3203: - cbnz w4, .L3205 - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,600] + bne .L3370 +.L3369: + cbnz w4, .L3371 + add x0, x20, :lo12:.LANCHOR0 + ldr x0, [x0,1112] ldrh w0, [x0,x3,lsl 1] - cbz w0, .L3206 + cbz w0, .L3372 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1256 - add x1, x1, 648 + mov w2, 1529 + add x1, x1, 848 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3206: - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,2912] - ldr x0, [x0,600] +.L3372: + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x0,3424] + ldr x0, [x0,1112] strh wzr, [x0,x1,lsl 1] -.L3205: - add x19, x19, :lo12:.LANCHOR0 +.L3371: + add x20, x20, :lo12:.LANCHOR0 mov w0, -1 - strh wzr, [x19,2936] - strh w0, [x19,2912] -.L3232: + strh wzr, [x20,3448] + strh w0, [x20,3424] +.L3420: mov w0, 0 - b .L3200 -.L3204: + b .L3366 +.L3370: and w0, w0, 255 sub w0, w0, #1 add x0, x21, x0, sxtw 1 - ldrh w20, [x0,40] + ldrh w21, [x0,40] mov w0, 65535 - cmp w20, w0 - bne .L3207 + cmp w21, w0 + bne .L3373 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1264 - add x1, x1, 648 + mov w2, 1539 + add x1, x1, 848 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3207: - add x2, x19, :lo12:.LANCHOR0 - mov w25, 1 - ldrh w3, [x2,2912] - ldr x4, [x2,584] - ldrh w0, [x2,3596] - add x3, x4, x3, lsl 2 - ldrh w1, [x2,3634] +.L3373: + add x3, x20, :lo12:.LANCHOR0 + adrp x22, .LANCHOR3 + add x1, x22, :lo12:.LANCHOR3 + mov w26, 1 + ldrh w2, [x3,3424] + ldr x3, [x3,1096] + ldrh w0, [x1,1294] + add x2, x3, x2, lsl 2 + ldrh w23, [x1,1330] sub w0, w0, #1 - ldrb w3, [x3,2] + ldrb w2, [x2,2] uxth w0, w0 - mul w1, w20, w1 - and w3, w3, 224 - cmp w3, 160 - bne .L3208 - ldrb w3, [x2,3553] - cmp w3, 2 - uxth w25, w3 - orr w1, w1, w3, lsl 24 - bne .L3209 - ldrh w0, [x2,3570] + mul w23, w21, w23 + and w2, w2, 224 + cmp w2, 160 + bne .L3374 + ldrb w2, [x1,1248] + cmp w2, 2 + uxth w26, w2 + orr w23, w23, w2, lsl 24 + bne .L3375 + ldrh w0, [x1,1266] sub w0, w0, #1 uxth w0, w0 -.L3209: - add x2, x19, :lo12:.LANCHOR0 - ldrb w3, [x2,756] - cbz w3, .L3208 - ldrh w0, [x2,3570] +.L3375: + add x1, x20, :lo12:.LANCHOR0 + ldrb w2, [x1,1268] + cbnz w2, .L3376 + ldrb w1, [x1,1269] + cbz w1, .L3374 +.L3376: + add x0, x22, :lo12:.LANCHOR3 + ldrh w0, [x0,1266] sub w0, w0, #1 uxth w0, w0 -.L3208: - add x23, x19, :lo12:.LANCHOR0 - orr w22, w0, w1 +.L3374: + add x24, x20, :lo12:.LANCHOR0 + orr w23, w0, w23 mov w0, 1 - strb w25, [x23,2918] - strh wzr, [x23,2914] - strb wzr, [x23,2916] - strh wzr, [x23,2938] - strh wzr, [x23,2940] + strb w26, [x24,3430] + strh wzr, [x24,3426] + strb wzr, [x24,3428] + strh wzr, [x24,3450] + strh wzr, [x24,3452] bl buf_alloc mov w1, 1 - str w22, [x0,40] - mov x20, x0 + mov x19, x0 + str w23, [x0,40] bl sblk_read_page - ldrh w0, [x23,3570] - mov w1, 255 - ldrb w2, [x23,3572] - mul w2, w0, w2 - ldr x0, [x23,3544] - lsl w2, w2, 2 - bl ftl_memset - strh wzr, [x23,2936] - ldr w0, [x20,52] + strh wzr, [x24,3448] + ldr w0, [x19,52] cmp w0, 512 - beq .L3233 + beq .L3423 cmn w0, #1 - beq .L3233 - ldr x0, [x20,24] + beq .L3423 + ldr x0, [x19,24] + mov w1, 15555 + movk w1, 0xf55f, lsl 16 + ldr w2, [x0] + cmp w2, w1 + beq .L3379 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + add x0, x0, :lo12:.LC0 + add x1, x1, 848 + mov w2, 1577 + b .L3424 +.L3379: + add x2, x22, :lo12:.LANCHOR3 + cmp w26, 3 + ldrb w1, [x2,1249] + ldrh w25, [x2,1294] + mul w25, w1, w25 + mul w25, w26, w25 + uxth w25, w25 + bne .L3380 + adrp x26, .LANCHOR5 + add x3, x26, :lo12:.LANCHOR5 + ldrb w4, [x3,929] + cmp w4, 2 + bne .L3380 + ldrh w24, [x2,1266] + ldrh w0, [x3,926] + lsl w24, w24, 2 + mul w24, w1, w24 + ldr x1, [x2,1240] + sub w24, w24, w0 + and x0, x0, 65532 + add x0, x1, x0 + ldr x1, [x19,8] + uxth w24, w24 + mov w2, w24 + bl ftl_memcpy + ldr x0, [x19,24] + ldr w27, [x0,4] + cbz w27, .L3381 + ldr x0, [x19,8] + mov w1, w24 + bl js_hash + cmp w27, w0 + beq .L3381 + mov x0, x19 + bl zbuf_free + ldr x1, [x19,24] + adrp x0, .LC250 + add x0, x0, :lo12:.LC250 + ldr w2, [x19,40] + mov w3, w24 + ldr w1, [x1,4] + b .L3422 +.L3381: + add x0, x20, :lo12:.LANCHOR0 + ldrb w1, [x0,1268] + cbnz w1, .L3382 + ldrb w0, [x0,1269] + cbz w0, .L3383 +.L3382: + sub w0, w23, #1 + str w0, [x19,40] + b .L3384 +.L3383: + add x1, x22, :lo12:.LANCHOR3 + ldrh w0, [x1,1294] + ldrh w1, [x1,1330] + sub w0, w0, #1 + mul w21, w21, w1 + uxth w0, w0 + orr w0, w0, 33554432 + orr w21, w0, w21 + str w21, [x19,40] +.L3384: + mov x0, x19 + mov w1, 1 + bl sblk_read_page + ldr w0, [x19,52] + cmp w0, 512 + beq .L3423 + cmn w0, #1 + beq .L3423 + ldr x0, [x19,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L3212 + beq .L3387 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1299 - add x1, x1, 648 add x0, x0, :lo12:.LC0 + add x1, x1, 848 + mov w2, 1618 +.L3424: bl printk bl dump_stack -.L3233: - mov x0, x20 +.L3423: + mov x0, x19 bl zbuf_free + b .L3421 +.L3387: + add x0, x22, :lo12:.LANCHOR3 + add x26, x26, :lo12:.LANCHOR5 + ldr x1, [x19,8] + ldr x0, [x0,1240] + ldrh w2, [x26,926] + b .L3419 +.L3380: + ldr w23, [x0,4] + lsl w21, w25, 2 + ldr x0, [x19,8] + mov w1, w21 + bl js_hash + cmp w23, w0 + beq .L3389 + mov x0, x19 + bl zbuf_free + ldr x1, [x19,24] + adrp x0, .LC250 + ldr w2, [x19,40] + add x0, x0, :lo12:.LC250 + mov w3, w21 + ldr w1, [x1,4] +.L3422: + bl printk +.L3421: mov w0, -1 - b .L3200 -.L3212: - ldrb w0, [x23,3572] - mov x26, 0 - ldrh w21, [x23,3596] - mov w24, 1 - ldr x22, [x20,8] - mul w21, w0, w21 - mul w21, w25, w21 - mov x25, x23 - mov w23, 24 - uxth w21, w21 -.L3213: - cmp w21, w26 - ble .L3234 - ldr w0, [x22,x26,lsl 2] + b .L3366 +.L3389: + add x0, x22, :lo12:.LANCHOR3 + ldr x1, [x19,8] + mov w2, w21 + ldr x0, [x0,1240] +.L3419: + bl ftl_memcpy + mov x27, 0 + add x0, x22, :lo12:.LANCHOR3 + add x21, x20, :lo12:.LANCHOR0 + mov w24, 24 + mov w26, 1 + ldr x23, [x0,1240] +.L3390: + cmp w25, w27 + ble .L3425 + ldr w0, [x23,x27,lsl 2] cmn w0, #1 - beq .L3215 + beq .L3392 bl lpa_hash_get_ppa - str w0, [x29,92] + str w0, [x29,108] cmn w0, #1 - bne .L3216 - ldr w0, [x22,x26,lsl 2] - add x1, x29, 92 + bne .L3393 + ldr w0, [x23,x27,lsl 2] + add x1, x29, 108 mov w2, 0 bl pm_log2phys -.L3216: - ldrb w1, [x25,744] - ldrh w0, [x25,3536] - sub w1, w23, w1 - ldr w2, [x29,92] - sub w1, w1, w0 - ldrh w3, [x25,2912] - lsl w1, w24, w1 - lsr w0, w2, w0 - sub w1, w1, #1 - and w1, w1, w0 - ldrb w0, [x25,3538] - udiv w1, w1, w0 - cmp w1, w3 - bne .L3215 - ldrh w3, [x25,2936] - ldr x1, [x25,3544] - str w2, [x1,x3,lsl 2] - ldrh w1, [x25,2936] - add w1, w1, 1 - strh w1, [x25,2936] -.L3215: +.L3393: + add x2, x22, :lo12:.LANCHOR3 + ldrb w0, [x21,1257] + ldr w3, [x29,108] + sub w0, w24, w0 + ldrh w4, [x21,3424] + ldrh w1, [x2,1232] + sub w0, w0, w1 + lsr w1, w3, w1 + lsl w0, w26, w0 + sub w0, w0, #1 + and w0, w0, w1 + ldrb w1, [x2,1234] + udiv w0, w0, w1 + cmp w0, w4 + bne .L3392 + ldrh w4, [x21,3448] + ldr x0, [x2,1240] + str w3, [x0,x4,lsl 2] + ldrh w0, [x21,3448] + add w0, w0, 1 + strh w0, [x21,3448] +.L3392: bl timer_get_time - add x26, x26, 1 - b .L3213 -.L3234: - mov x0, x20 + add x27, x27, 1 + b .L3390 +.L3425: + mov x0, x19 bl zbuf_free - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,2912] - ldr x3, [x0,600] + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x0,3424] + ldr x3, [x0,1112] ubfiz x2, x1, 1, 16 ldrh w2, [x3,x2] - ldrh w3, [x0,2936] + ldrh w3, [x0,3448] cmp w2, w3 - beq .L3219 - adrp x0, .LC255 - add x0, x0, :lo12:.LC255 + beq .L3396 + adrp x0, .LC251 + add x0, x0, :lo12:.LC251 bl printk -.L3219: - add x19, x19, :lo12:.LANCHOR0 - ldrh w2, [x19,2912] - ldr x1, [x19,600] - ldrh w3, [x19,2936] +.L3396: + add x20, x20, :lo12:.LANCHOR0 + ldrh w2, [x20,3424] + ldr x1, [x20,1112] + ldrh w3, [x20,3448] strh w3, [x1,x2,lsl 1] - strh wzr, [x19,2940] - ldrh w0, [x19,2936] -.L3200: + strh wzr, [x20,3452] + ldrh w0, [x20,3448] +.L3366: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + ldr x27, [sp,80] + ldp x29, x30, [sp], 112 ret .size gc_scan_src_blk, .-gc_scan_src_blk .align 2 @@ -20688,26 +21739,26 @@ gc_scan_static_data: add x3, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr x0, [x3,608] + ldr x0, [x3,1120] ldr w1, [x0,544] cmn w1, #1 - beq .L3236 - adrp x21, .LANCHOR4 + beq .L3427 + adrp x20, .LANCHOR4 adrp x22, .LC0 - add x21, x21, :lo12:.LANCHOR4 - mov w20, 11 + add x20, x20, :lo12:.LANCHOR4 + mov w21, 0 add x22, x22, :lo12:.LC0 - add x21, x21, 664 -.L3237: + add x20, x20, 864 +.L3428: add x24, x19, :lo12:.LANCHOR0 add x1, x29, 76 mov w2, 0 - ldr x0, [x24,608] + ldr x0, [x24,1120] ldr w0, [x0,544] bl pm_log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L3238 + beq .L3429 mov w0, 1 bl buf_alloc mov x23, x0 @@ -20717,47 +21768,49 @@ gc_scan_static_data: bl sblk_read_page ldr w0, [x23,52] cmp w0, 256 - bne .L3239 - ldrb w2, [x24,744] + bne .L3430 + adrp x4, .LANCHOR3 + ldrb w2, [x24,1257] + add x4, x4, :lo12:.LANCHOR3 mov w3, 24 - ldrh w0, [x24,3536] - mov w1, 1 sub w2, w3, w2 + mov w1, 1 ldr w3, [x29,76] + ldrh w0, [x4,1232] sub w2, w2, w0 - lsl w2, w1, w2 lsr w3, w3, w0 + lsl w2, w1, w2 + ldrb w0, [x4,1234] sub w2, w2, #1 - ldrb w0, [x24,3538] and w2, w2, w3 udiv w0, w2, w0 mov w2, 0 bl gc_add_sblk -.L3239: +.L3430: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x23,24] - ldr x0, [x0,608] + ldr x0, [x0,1120] ldr w1, [x1,4] ldr w0, [x0,544] cmp w1, w0 - beq .L3240 - mov x1, x21 - mov w2, 1738 + beq .L3431 + mov x1, x20 + mov w2, 2162 mov x0, x22 bl printk bl dump_stack -.L3240: +.L3431: mov x0, x23 bl zbuf_free -.L3238: +.L3429: add x2, x19, :lo12:.LANCHOR0 - ldr x1, [x2,608] - ldr w2, [x2,2856] + ldr x1, [x2,1120] + ldr w2, [x2,3372] ldr w0, [x1,544] add w0, w0, 1 str w0, [x1,544] cmp w0, w2 - bcc .L3241 + bcc .L3432 mov w0, -1 str w0, [x1,544] ldr w0, [x1,548] @@ -20768,37 +21821,41 @@ gc_scan_static_data: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L3235 -.L3241: + b .L3426 +.L3432: ldr w0, [x29,76] cmn w0, #1 - bne .L3235 - sub w20, w20, #1 - uxth w20, w20 - cbnz w20, .L3237 - b .L3235 -.L3236: + bne .L3426 + adrp x1, .LANCHOR5+926 + add w0, w21, 1 + uxth w0, w0 + ldrh w1, [x1,#:lo12:.LANCHOR5+926] + cmp w21, w1, lsr 2 + bcs .L3426 + mov w21, w0 + b .L3428 +.L3427: ldr w1, [x0,536] ldr w2, [x0,12] add w1, w1, 12959744 add w1, w1, 256 cmp w2, w1 - bhi .L3246 - ldr x3, [x3,2880] + bhi .L3437 + ldr x3, [x3,3392] ldr w1, [x0,540] ldr w3, [x3,44] add w1, w1, 4096 add w1, w1, 904 cmp w3, w1 - bls .L3235 -.L3246: + bls .L3426 +.L3437: add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2880] + ldr x1, [x19,3392] ldr w1, [x1,44] str w1, [x0,540] str w2, [x0,536] str wzr, [x0,544] -.L3235: +.L3426: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20818,51 +21875,51 @@ gc_block_vpn_scan: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr x1, [x20,608] - ldrh w0, [x20,576] + ldr x1, [x20,1120] + ldrh w0, [x20,1088] ldr w1, [x1,608] cmp w1, w0 - bcs .L3251 + bcs .L3442 bl timer_get_time - ldr x21, [x20,608] + ldr x21, [x20,1120] ldr w1, [x21,604] add w1, w1, 28672 add w1, w1, 1328 cmp w0, w1 - bls .L3251 + bls .L3442 bl timer_get_time str w0, [x21,604] - ldr x0, [x20,608] - ldrh w2, [x20,576] + ldr x0, [x20,1120] + ldrh w2, [x20,1088] ldr w1, [x0,600] cmp w1, w2 - bcs .L3255 - ldr x2, [x20,2880] + bcs .L3446 + ldr x2, [x20,3392] ldrh w2, [x2,134] cmp w1, w2 - bcs .L3256 -.L3255: + bcs .L3447 +.L3446: add x1, x19, :lo12:.LANCHOR0 - ldr x1, [x1,2880] + ldr x1, [x1,3392] ldrh w1, [x1,134] str w1, [x0,600] -.L3256: - ldr w25, [x0,600] +.L3447: + ldr w26, [x0,600] mov w0, 65535 - uxth w20, w25 + uxth w20, w26 cmp w20, w0 - bne .L3257 + bne .L3448 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2035 - add x1, x1, 688 + mov w2, 2503 + add x1, x1, 888 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3257: +.L3448: add x21, x19, :lo12:.LANCHOR0 - ldr x0, [x21,608] + ldr x0, [x21,1120] ldr w1, [x0,600] add w1, w1, 1 str w1, [x0,600] @@ -20873,47 +21930,47 @@ gc_block_vpn_scan: mov w0, w20 bl ftl_get_blk_list_in_sblk uxth w1, w0 - cbz w1, .L3251 + cbz w1, .L3442 uxtw x22, w20 - ldr x24, [x21,584] + ldr x24, [x21,1096] add x24, x24, x22, lsl 2 ldrb w1, [x24,2] tst w1, 192 and w2, w1, 224 - beq .L3258 + beq .L3449 cmp w2, 224 - beq .L3258 - ldr x1, [x21,608] + beq .L3449 + ldr x1, [x21,1120] ldrh w3, [x1,16] cmp w3, w20 - beq .L3258 + beq .L3449 ldrh w3, [x1,48] cmp w3, w20 - beq .L3258 + beq .L3449 ldrh w1, [x1,80] cmp w1, w20 - bne .L3259 -.L3258: - cbnz w2, .L3251 + bne .L3450 +.L3449: + cbnz w2, .L3442 add x0, x19, :lo12:.LANCHOR0 lsl x22, x22, 1 - ldr x0, [x0,600] + ldr x0, [x0,1112] ldrh w0, [x0,x22] - cbz w0, .L3260 + cbz w0, .L3451 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2051 - add x1, x1, 688 + mov w2, 2520 + add x1, x1, 888 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3260: +.L3451: add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,600] + ldr x0, [x19,1112] strh wzr, [x0,x22] - b .L3251 -.L3259: + b .L3442 +.L3450: and w0, w0, 65535 add x1, x29, 144 sub w0, w0, #1 @@ -20921,107 +21978,110 @@ gc_block_vpn_scan: ldrh w21, [x0,-16] mov w0, 65535 cmp w21, w0 - bne .L3262 + bne .L3453 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2057 - add x1, x1, 688 + mov w2, 2528 + add x1, x1, 888 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3262: - add x2, x19, :lo12:.LANCHOR0 +.L3453: + adrp x25, .LANCHOR3 ldrb w3, [x24,2] - mov w26, 1 + add x2, x25, :lo12:.LANCHOR3 + mov w27, 1 and w3, w3, 224 - ldrh w0, [x2,3596] cmp w3, 160 - ldrh w1, [x2,3634] + ldrh w0, [x2,1294] + ldrh w1, [x2,1330] sub w0, w0, #1 mul w1, w21, w1 uxth w0, w0 - bne .L3263 - ldrb w3, [x2,3553] + bne .L3454 + ldrb w3, [x2,1248] cmp w3, 2 - uxth w26, w3 + uxth w27, w3 orr w1, w1, w3, lsl 24 - bne .L3263 - ldrh w0, [x2,3570] + bne .L3454 + ldrh w0, [x2,1266] sub w0, w0, #1 uxth w0, w0 -.L3263: +.L3454: orr w21, w0, w1 mov w0, 1 bl buf_alloc str w21, [x0,40] mov w1, 1 - add x21, x19, :lo12:.LANCHOR0 + add x21, x25, :lo12:.LANCHOR3 mov x23, x0 bl sblk_read_page - ldrh w0, [x21,3570] + ldrh w0, [x21,1266] mov w1, 255 - ldrb w2, [x21,3572] + ldrb w2, [x21,1249] mul w2, w0, w2 - ldr x0, [x21,3544] + ldr x0, [x21,1240] lsl w2, w2, 2 bl ftl_memset ldr w0, [x23,52] cmp w0, 512 - beq .L3275 + beq .L3466 cmn w0, #1 cset w2, eq - cbz w2, .L3264 -.L3275: + cbz w2, .L3455 +.L3466: mov w0, w20 mov w1, 1 mov w2, 0 - b .L3288 -.L3264: + b .L3479 +.L3455: ldr x0, [x23,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L3266 + beq .L3457 mov w0, w20 mov w1, 1 -.L3288: +.L3479: bl gc_add_sblk mov x0, x23 bl zbuf_free - b .L3251 -.L3266: - ldrb w0, [x21,3572] - mov x27, 0 - ldrh w1, [x21,3596] - and w28, w25, 65535 - mov w21, w27 + b .L3442 +.L3457: + ldrb w0, [x21,1249] + mov x28, 0 + ldrh w1, [x21,1294] + mov w21, w28 mul w0, w0, w1 - mul w26, w26, w0 - uxth w0, w26 - ldr x26, [x23,8] + mul w27, w27, w0 + uxth w0, w27 + ldr x27, [x23,8] str w0, [x29,108] -.L3267: + and w0, w26, 65535 + str w0, [x29,104] +.L3458: ldr w0, [x29,108] - cmp w0, w27 - ble .L3289 - ldr w0, [x26,x27,lsl 2] + cmp w0, w28 + ble .L3480 + ldr w0, [x27,x28,lsl 2] cmn w0, #1 - beq .L3268 + beq .L3459 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L3269 - ldr w0, [x26,x27,lsl 2] + bne .L3460 + ldr w0, [x27,x28,lsl 2] add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L3269: - add x2, x19, :lo12:.LANCHOR0 +.L3460: + add x0, x19, :lo12:.LANCHOR0 + add x2, x25, :lo12:.LANCHOR3 mov w1, 24 - ldrb w0, [x2,744] - ldrh w4, [x2,3536] + ldrb w0, [x0,1257] + ldrh w4, [x2,1232] sub w0, w1, w0 mov w1, 1 sub w0, w0, w4 @@ -21030,42 +22090,43 @@ gc_block_vpn_scan: sub w0, w0, #1 lsr w1, w1, w4 and w0, w0, w1 - ldrb w1, [x2,3538] + ldrb w1, [x2,1234] udiv w0, w0, w1 - cmp w0, w28 - bne .L3268 + ldr w1, [x29,104] + cmp w0, w1 + bne .L3459 add w21, w21, 1 uxth w21, w21 -.L3268: - add x27, x27, 1 - b .L3267 -.L3289: +.L3459: + add x28, x28, 1 + b .L3458 +.L3480: mov x0, x23 bl zbuf_free adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3271 + tbz x0, 8, .L3462 add x0, x19, :lo12:.LANCHOR0 ldrb w4, [x24,2] - uxth w1, w25 + uxth w1, w26 mov w3, w21 ubfx x4, x4, 5, 3 - ldr x2, [x0,600] - adrp x0, .LC256 - add x0, x0, :lo12:.LC256 + ldr x2, [x0,1112] + adrp x0, .LC252 + add x0, x0, :lo12:.LC252 ldrh w2, [x2,x22,lsl 1] bl printk -.L3271: +.L3462: add x19, x19, :lo12:.LANCHOR0 cmp w21, 31 - ldr x0, [x19,600] + ldr x0, [x19,1112] strh w21, [x0,x22,lsl 1] - bhi .L3251 + bhi .L3442 mov w0, w20 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L3251: +.L3442: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -21078,275 +22139,293 @@ gc_block_vpn_scan: .global ftl_sblk_dump .type ftl_sblk_dump, %function ftl_sblk_dump: - sub sp, sp, #256 + sub sp, sp, #272 uxth x0, w0 stp x29, x30, [sp,48] add x29, sp, 48 - stp x23, x24, [sp,96] - adrp x23, .LANCHOR0 - str x0, [x29,128] stp x19, x20, [sp,64] - add x19, x23, :lo12:.LANCHOR0 - mov x20, x0 - stp x25, x26, [sp,112] + adrp x20, .LANCHOR0 + str x0, [x29,128] + add x19, x20, :lo12:.LANCHOR0 + str x1, [x29,160] stp x21, x22, [sp,80] + stp x23, x24, [sp,96] stp x27, x28, [sp,128] - lsl x25, x0, 2 - str x1, [x29,144] - ldr x0, [x19,584] - add x1, x0, x25 - ldrh w4, [x0,x25] - ldr w5, [x0,x25] - adrp x0, .LC257 + stp x25, x26, [sp,112] + lsl x24, x0, 2 + mov x22, x0 + ldr x0, [x19,1096] + mov x28, x20 + add x1, x0, x24 + ldrh w4, [x0,x24] + ldr w5, [x0,x24] + adrp x0, .LC253 ldrb w3, [x1,2] - add x0, x0, :lo12:.LC257 - mov w1, w20 + add x0, x0, :lo12:.LC253 + mov w1, w22 and w4, w4, 2047 ubfx x2, x3, 5, 3 ubfx x5, x5, 11, 8 ubfx x3, x3, 3, 2 bl printk - str x23, [x29,152] mov w1, 65535 mov w0, 0 - cmp w20, w1 - beq .L3291 - ldrh w1, [x19,576] - cmp w1, w20 - bls .L3291 - ldr x0, [x19,584] - mov w26, 1 - add x0, x0, x25 + cmp w22, w1 + beq .L3482 + ldrh w1, [x19,1088] + cmp w1, w22 + bls .L3482 + ldr x0, [x19,1096] + mov w25, 1 + adrp x27, .LANCHOR3 + add x0, x0, x24 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 160 - bne .L3292 - ldrb w26, [x19,3553] -.L3292: - add x1, x29, 192 - mov w0, w20 - strh w20, [x29,176] - mov w22, 0 + bne .L3483 + add x0, x27, :lo12:.LANCHOR3 + ldrb w25, [x0,1248] +.L3483: + add x1, x29, 208 + mov w0, w22 + strh w22, [x29,192] + mov w23, 0 bl ftl_get_blk_list_in_sblk uxtb w1, w0 mov w4, w0 - ldr x0, [x29,152] - strb w1, [x29,185] - mov w3, w26 - add x0, x0, :lo12:.LANCHOR0 - strh wzr, [x29,178] - strb wzr, [x29,181] + add x0, x27, :lo12:.LANCHOR3 + strb w1, [x29,201] + mov w3, w25 + strh wzr, [x29,194] uxtb w4, w4 - strh wzr, [x29,186] - mov w27, w22 - ldrh w2, [x0,3596] - mov w19, w22 - mul w1, w1, w2 - strh w1, [x29,182] - ldr x1, [x0,584] - adrp x0, .LC258 - add x0, x0, :lo12:.LC258 - add x1, x1, x25 + ldrh w0, [x0,1294] + mov w20, w23 + strb wzr, [x29,197] + strh wzr, [x29,202] + mul w1, w1, w0 + add x0, x28, :lo12:.LANCHOR0 + strh w1, [x29,198] + ldr x1, [x0,1096] + adrp x0, .LC254 + add x0, x0, :lo12:.LC254 + add x1, x1, x24 ldrb w2, [x1,2] - mov w1, w20 + mov w1, w22 ubfx x2, x2, 5, 3 bl printk mov w0, 1 bl buf_alloc - mov x28, x0 - adrp x0, .LC201 - str w22, [x29,140] - add x0, x0, :lo12:.LC201 - str x0, [x29,112] + mov x26, x0 + adrp x0, .LC199 + str w23, [x29,168] + add x0, x0, :lo12:.LC199 + str x0, [x29,120] adrp x0, .LANCHOR4 + str w23, [x29,144] add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 712 - str x0, [x29,104] -.L3293: - ldr x0, [x29,152] - add x21, x0, :lo12:.LANCHOR0 - ldrh w0, [x21,3596] - cmp w0, w19 - bls .L3310 - lsl w0, w19, 1 - mov w24, 0 - add w1, w0, w19 + add x0, x0, 912 + str x0, [x29,112] +.L3484: + add x0, x27, :lo12:.LANCHOR3 + ldrh w0, [x0,1294] + cmp w0, w20 + bls .L3502 + lsl w0, w20, 1 + str wzr, [x29,172] + add w1, w0, w20 sub w0, w0, #1 sub w1, w1, #1 - str w0, [x29,124] - str w1, [x29,136] -.L3311: - ldrb w0, [x29,185] - cmp w0, w24 - bls .L3308 + str w0, [x29,136] + str w1, [x29,140] +.L3503: + ldrb w0, [x29,201] + ldr w1, [x29,172] + cmp w0, w1 + bls .L3500 mov w21, 1 -.L3309: - cmp w21, w26 - bhi .L3329 - add x0, x29, 176 - add x0, x0, x24, sxtw 1 +.L3501: + cmp w21, w25 + ldr w0, [x29,172] + bhi .L3522 + add x1, x29, 192 + add x0, x1, x0, sxtw 1 ldrh w3, [x0,16] mov w0, 65535 cmp w3, w0 - beq .L3294 - ldr x0, [x29,152] - cmp w26, 3 - add x0, x0, :lo12:.LANCHOR0 - ldrh w2, [x0,3634] + beq .L3485 + add x0, x27, :lo12:.LANCHOR3 + cmp w25, 3 + ldrh w2, [x0,1330] mul w2, w3, w2 - bne .L3295 - ldrb w1, [x0,756] - cbz w1, .L3296 + bne .L3486 + add x1, x28, :lo12:.LANCHOR0 + ldrb w4, [x1,1268] + cbz w4, .L3487 + ldr w1, [x29,140] + b .L3520 +.L3487: + ldrb w0, [x1,1269] + lsl w19, w21, 24 + cbz w0, .L3489 + ldr w0, [x29,140] + add w2, w2, w0 + add w2, w2, w21 + b .L3521 +.L3489: + add w2, w2, w20 +.L3521: + orr w19, w19, w2 + b .L3488 +.L3486: + cmp w25, 2 + add w19, w2, w20 + bne .L3488 ldr w1, [x29,136] - b .L3328 -.L3296: - add w2, w2, w19 - orr w23, w2, w21, lsl 24 - b .L3297 -.L3295: - cmp w26, 2 - add w23, w2, w19 - bne .L3297 - ldr w1, [x29,124] -.L3328: - ldrb w9, [x0,3553] +.L3520: + ldrb w19, [x0,1248] add w2, w2, w1 add w2, w2, w21 - orr w23, w2, w9, lsl 24 -.L3297: + orr w19, w2, w19, lsl 24 +.L3488: mov w1, 1 - str w23, [x28,40] - mov x0, x28 - str x3, [x29,96] + str w19, [x26,40] + mov x0, x26 + str x3, [x29,104] bl sblk_read_page - ldr x7, [x28,8] - mov w2, w19 - ldr x0, [x28,24] - ldr w10, [x28,52] + ldr x7, [x26,8] + mov w2, w20 + ldr x0, [x26,24] + ldr w9, [x26,52] ldr w1, [x7,12] str w1, [sp] - mov w4, w10 - ldr x3, [x29,96] + mov w4, w9 + ldr x3, [x29,104] ldr w1, [x0] str w1, [sp,8] - str x10, [x29,96] + str x9, [x29,104] ldr w1, [x0,4] str w1, [sp,16] ldr w1, [x0,8] str w1, [sp,24] mov w1, w3 - mov w3, w23 + mov w3, w19 ldr w0, [x0,12] str w0, [sp,32] - ldr x0, [x29,112] + ldr x0, [x29,120] ldr w5, [x7] ldr w6, [x7,4] ldr w7, [x7,8] bl printk - ldr x10, [x29,96] - cmp w10, 512 - beq .L3315 - cmn w10, #1 - bne .L3299 -.L3315: + ldr x9, [x29,104] + cmp w9, 512 + beq .L3507 + cmn w9, #1 + bne .L3491 +.L3507: mov w0, 1 - str w0, [x29,140] -.L3299: - ldr x0, [x29,152] - add x0, x0, :lo12:.LANCHOR0 - ldr x0, [x0,584] - add x0, x0, x25 + str w0, [x29,168] +.L3491: + mov x0, 35160 + movk x0, 0x41, lsl 16 + bl __const_udelay + add x0, x28, :lo12:.LANCHOR0 + ldr x0, [x0,1096] + add x0, x0, x24 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 32 - beq .L3294 + beq .L3485 cmp w0, 224 cset w2, eq - cbnz w2, .L3294 - ldr x0, [x28,24] - str x2, [x29,96] + cbnz w2, .L3485 + ldr x0, [x26,24] + str x2, [x29,104] ldr w0, [x0,4] bl lpa_hash_get_ppa - str w0, [x29,172] + str w0, [x29,188] cmn w0, #1 - ldr x2, [x29,96] - bne .L3301 - ldr x0, [x28,24] - add x1, x29, 172 + ldr x2, [x29,104] + bne .L3493 + ldr x0, [x26,24] + add x1, x29, 188 ldr w0, [x0,4] bl pm_log2phys -.L3301: - ldr w0, [x29,172] - cmp w0, w23 - bne .L3302 - ldr x2, [x28,24] - add w22, w22, 1 - adrp x0, .LC259 - mov w1, w23 - add x0, x0, :lo12:.LC259 - mov w3, w22 +.L3493: + ldr w0, [x29,188] + cmp w0, w19 + bne .L3494 + ldr x2, [x26,24] + add w23, w23, 1 + adrp x0, .LC255 + mov w1, w19 + add x0, x0, :lo12:.LC255 + mov w3, w23 ldr w2, [x2,4] bl printk -.L3302: +.L3494: + ldr x0, [x29,160] + cbz x0, .L3496 ldr x0, [x29,144] - cbz x0, .L3304 - ubfiz x3, x27, 2, 32 - ldr w2, [x0,x3] - ldr x0, [x28,24] + ubfiz x19, x0, 2, 32 + ldr x0, [x29,160] + ldr w2, [x0,x19] + ldr x0, [x26,24] ldr w0, [x0,4] cmp w0, w2 - beq .L3305 + beq .L3497 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L3305 - adrp x0, .LC260 - mov w1, w27 - add x0, x0, :lo12:.LC260 - str x3, [x29,96] + tbz x0, 12, .L3497 + adrp x0, .LC256 + ldr w1, [x29,144] + add x0, x0, :lo12:.LC256 bl printk - ldr x3, [x29,96] -.L3305: - ldr x0, [x29,144] - ldr x1, [x28,24] - ldr w0, [x0,x3] +.L3497: + ldr x0, [x29,160] + ldr x1, [x26,24] + ldr w0, [x0,x19] ldr w1, [x1,4] cmp w1, w0 - beq .L3304 + beq .L3496 cmn w0, #1 - beq .L3304 + beq .L3496 adrp x0, .LC0 - ldr x1, [x29,104] - mov w2, 1393 + ldr x1, [x29,112] + mov w2, 1567 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3304: - add w27, w27, 1 -.L3294: +.L3496: + ldr w0, [x29,144] + add w0, w0, 1 + str w0, [x29,144] +.L3485: add w21, w21, 1 uxth w21, w21 - b .L3309 -.L3329: - add w24, w24, 1 - uxth w24, w24 - b .L3311 -.L3308: - add w19, w19, 1 - uxth w19, w19 - b .L3293 -.L3310: - mov x0, x28 + b .L3501 +.L3522: + add w0, w0, 1 + uxth w0, w0 + str w0, [x29,172] + b .L3503 +.L3500: + add w20, w20, 1 + uxth w20, w20 + b .L3484 +.L3502: + mov x0, x26 bl zbuf_free + add x0, x28, :lo12:.LANCHOR0 ldr x3, [x29,128] - adrp x0, .LC261 - ldr x2, [x21,600] - add x0, x0, :lo12:.LC261 - mov w1, w20 + mov w1, w22 + ldr x2, [x0,1112] + adrp x0, .LC257 + add x0, x0, :lo12:.LC257 ldrh w2, [x2,x3,lsl 1] - mov w3, w22 + mov w3, w23 bl printk - ldr w0, [x29,140] -.L3291: + ldr w0, [x29,168] +.L3482: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -21354,7 +22433,7 @@ ftl_sblk_dump: ldp x25, x26, [sp,112] ldp x27, x28, [sp,128] ldp x29, x30, [sp,48] - add sp, sp, 256 + add sp, sp, 272 ret .size ftl_sblk_dump, .-ftl_sblk_dump .align 2 @@ -21370,270 +22449,275 @@ zftl_read: stp x21, x22, [sp,48] stp x23, x24, [sp,64] ldr w0, [x0,#:lo12:.LANCHOR2] - mov w21, w1 + mov w20, w1 stp x25, x26, [sp,80] stp x27, x28, [sp,96] - mov w24, w2 + mov w23, w2 mov x22, x3 - tbz x0, 12, .L3331 - adrp x0, .LC262 + tbz x0, 12, .L3524 + adrp x0, .LC258 mov w1, w19 - add x0, x0, :lo12:.LC262 - mov w2, w21 - mov w3, w24 + add x0, x0, :lo12:.LC258 + mov w2, w20 + mov w3, w23 bl printk -.L3331: - cbnz w19, .L3332 - adrp x0, .LANCHOR0+520 +.L3524: + cbnz w19, .L3525 + adrp x0, .LANCHOR0+1032 mov w19, 24576 - ldr w2, [x0,#:lo12:.LANCHOR0+520] - b .L3333 -.L3332: + ldr w1, [x0,#:lo12:.LANCHOR0+1032] + b .L3526 +.L3525: cmp w19, 3 - mov w0, -1 - bhi .L3334 + mov w3, -1 + bhi .L3527 lsl w19, w19, 13 - mov w2, 8192 -.L3333: - add w1, w21, w24 - mov w0, -1 - cmp w1, w2 - bhi .L3334 - adrp x20, .LANCHOR0 - add w21, w19, w21 - add x1, x20, :lo12:.LANCHOR0 - add w28, w21, w24 - str wzr, [x29,152] - ldr x2, [x1,2880] - ldr w0, [x2,24] - add w0, w0, w24 - str w0, [x2,24] - ldrb w0, [x1,2848] - udiv w1, w21, w0 - str w1, [x29,156] - sub w1, w28, #1 - udiv w0, w1, w0 - ldr w1, [x29,156] - str w0, [x29,140] - sub w23, w0, w1 - mov x19, x1 - add w23, w23, 1 + mov w1, 8192 +.L3526: + cmp w20, w1 + bcs .L3556 + cmp w23, w1 + cset w0, hi + cbnz w0, .L3556 + add w2, w20, w23 + mov w3, -1 + cmp w2, w1 + bhi .L3527 + adrp x21, .LANCHOR0 + add w20, w19, w20 + add x2, x21, :lo12:.LANCHOR0 + str w0, [x29,148] adrp x0, .LC0 add x0, x0, :lo12:.LC0 - str x0, [x29,128] + str x0, [x29,136] + ldr x3, [x2,3392] adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 728 - str x0, [x29,120] -.L3335: - cbz w23, .L3400 + add x0, x0, 928 + str x0, [x29,128] + ldr w1, [x3,24] + add w1, w1, w23 + str w1, [x3,24] + ldrb w1, [x2,3360] + udiv w2, w20, w1 + str w2, [x29,156] + add w2, w20, w23 + str w2, [x29,152] + sub w2, w2, #1 + udiv w1, w2, w1 + ldr w2, [x29,156] + str w1, [x29,144] + sub w25, w1, w2 + mov x19, x2 + add w25, w25, 1 +.L3528: + cbz w25, .L3594 ldr w1, [x29,156] - add x0, x20, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR0 cmp w19, w1 - ldr w1, [x29,140] - ldrb w0, [x0,2848] + ldr w1, [x29,144] + ldrb w0, [x0,3360] cset w2, eq cmp w19, w1 cset w26, eq - uxth w25, w0 - cbnz w26, .L3366 - cbz w2, .L3336 - b .L3399 -.L3366: - cbz w2, .L3338 -.L3399: - udiv w26, w21, w0 - msub w26, w26, w0, w21 - uxth w0, w24 + uxth w24, w0 + cbnz w26, .L3560 + cbz w2, .L3529 + b .L3593 +.L3560: + cbz w2, .L3531 +.L3593: + udiv w26, w20, w0 + msub w26, w26, w0, w20 + uxth w0, w23 uxth w26, w26 - sub w25, w25, w26 - uxth w25, w25 - cmp w25, w24 - csel w25, w0, w25, hi - b .L3336 -.L3338: - msub w25, w0, w19, w28 + sub w24, w24, w26 + uxth w24, w24 + cmp w24, w23 + csel w24, w0, w24, hi + b .L3529 +.L3531: + ldr w1, [x29,152] mov w26, w2 - uxtb w25, w25 -.L3336: - add x1, x20, :lo12:.LANCHOR0 + msub w24, w0, w19, w1 + uxtb w24, w24 +.L3529: + add x1, x21, :lo12:.LANCHOR0 mov w0, 0 - add x1, x1, 800 -.L3341: + add x1, x1, 1312 +.L3534: ldr w2, [x1,36] cmp w2, w19 - bne .L3339 + bne .L3532 ldrb w2, [x1,2] - tbz x2, 3, .L3339 - add x2, x20, :lo12:.LANCHOR0 + tbz x2, 3, .L3532 + add x2, x21, :lo12:.LANCHOR0 ubfiz x1, x0, 6, 32 add x0, x2, x1 ubfiz x26, x26, 9, 16 - lsl w2, w25, 9 - ubfiz x25, x25, 9, 16 - ldr x1, [x0,808] + lsl w2, w24, 9 + ubfiz x24, x24, 9, 16 + ldr x1, [x0,1320] mov x0, x22 - add x22, x22, x25 + add x22, x22, x24 add x1, x1, x26 bl ftl_memcpy - b .L3340 -.L3339: + b .L3533 +.L3532: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L3341 + bne .L3534 mov w0, w19 bl lpa_hash_get_ppa str w0, [x29,172] cmn w0, #1 - bne .L3342 + bne .L3535 mov w0, w19 add x1, x29, 172 mov w2, 0 bl pm_log2phys -.L3342: +.L3535: ldr w0, [x29,172] cmn w0, #1 - bne .L3343 - mov w25, 0 -.L3344: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,2848] - cmp w25, w0 - bcs .L3340 - madd w0, w19, w0, w25 - cmp w0, w21 - bcc .L3345 - cmp w0, w28 - bcs .L3345 + bne .L3536 + mov w24, 0 +.L3537: + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,3360] + cmp w24, w0 + bcs .L3533 + madd w0, w19, w0, w24 + cmp w0, w20 + bcc .L3538 + ldr w1, [x29,152] + cmp w0, w1 + bcs .L3538 mov x0, x22 mov w1, 0 mov w2, 512 add x22, x22, 512 bl ftl_memset -.L3345: - add w25, w25, 1 - b .L3344 -.L3343: +.L3538: + add w24, w24, 1 + b .L3537 +.L3536: mov w0, 0 bl buf_alloc - cbz x0, .L3347 - add x2, x20, :lo12:.LANCHOR0 - ldr x3, [x2,2880] + cbz x0, .L3540 + add x2, x21, :lo12:.LANCHOR0 + ldr x3, [x2,3392] ldr w2, [x3,40] add w2, w2, 1 str w2, [x3,40] ldr w2, [x29,172] - strb w25, [x0,56] - ubfiz x25, x25, 9, 16 + strb w24, [x0,56] + ubfiz x24, x24, 9, 16 str x22, [x0,16] - add x22, x22, x25 + add x22, x22, x24 str w2, [x0,40] str w2, [x0,44] str w19, [x0,36] strb w26, [x0,57] bl zftl_add_read_buf -.L3340: +.L3533: add w19, w19, 1 - sub w23, w23, #1 -.L3347: - cbz w23, .L3367 - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,2850] + sub w25, w25, #1 +.L3540: + cbz w25, .L3561 + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,3362] cmp w0, 2 - bhi .L3335 -.L3367: - adrp x25, .LANCHOR3 - str x25, [x29,144] - add x2, x25, :lo12:.LANCHOR3 - ldrb w1, [x2,-172] - cbz w1, .L3335 - ldrb w2, [x2,-173] - add x26, x20, :lo12:.LANCHOR0 - add x0, x26, 800 - mov x25, x26 + bhi .L3528 +.L3561: + adrp x24, .LANCHOR3 + add x2, x24, :lo12:.LANCHOR3 + ldrb w1, [x2,1875] + cbz w1, .L3528 + ldrb w2, [x2,1874] + add x26, x21, :lo12:.LANCHOR0 + add x0, x26, 1312 + mov x27, x26 add x0, x0, x2, lsl 6 bl sblk_read_page -.L3350: - ldr x0, [x29,144] - add x0, x0, :lo12:.LANCHOR3 - ldrb w1, [x0,-172] - cbz w1, .L3401 - ldrb w0, [x0,-173] +.L3543: + add x0, x24, :lo12:.LANCHOR3 + ldrb w1, [x0,1875] + cbz w1, .L3595 + ldrb w0, [x0,1874] cmp w0, 255 - bne .L3351 - ldr x1, [x29,120] - mov w2, 1088 - ldr x0, [x29,128] + bne .L3544 + ldr x1, [x29,128] + mov w2, 1276 + ldr x0, [x29,136] bl printk bl dump_stack -.L3351: - ldr x0, [x29,144] - add x1, x0, :lo12:.LANCHOR3 - add x0, x25, 800 - ldrb w27, [x1,-173] - lsl x2, x27, 6 - add x26, x0, x2 - ldrb w0, [x0,x2] +.L3544: + add x2, x24, :lo12:.LANCHOR3 + add x0, x27, 1312 + ldrb w28, [x2,1874] + lsl x1, x28, 6 + add x26, x0, x1 + ldrb w0, [x0,x1] ldr w5, [x26,52] - strb w0, [x1,-173] + strb w0, [x2,1874] cmn w5, #1 - bne .L3352 - ldr x1, [x25,608] - str w5, [x29,152] + bne .L3545 + ldr x1, [x27,1120] + str w5, [x29,148] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L3353 -.L3352: + b .L3546 +.L3545: cmp w5, 256 - bne .L3353 - ldrb w4, [x25,744] + bne .L3546 + ldrb w4, [x27,1257] mov w1, 24 - ldrh w0, [x25,3536] + ldrh w0, [x2,1232] mov w6, 1 sub w4, w1, w4 ldr w3, [x26,40] sub w4, w4, w0 - ldr w2, [x26,36] + str x5, [x29,104] lsl w4, w6, w4 lsr w0, w3, w0 sub w4, w4, #1 - str x5, [x29,96] + str x6, [x29,112] and w0, w4, w0 - ldrb w4, [x25,3538] - str x6, [x29,104] + ldrb w4, [x2,1234] + ldr w2, [x26,36] udiv w4, w0, w4 - adrp x0, .LC263 - add x0, x0, :lo12:.LC263 - str x4, [x29,112] + adrp x0, .LC259 + add x0, x0, :lo12:.LC259 + str x4, [x29,120] uxth w1, w4 bl printk - ldr x4, [x29,112] + ldr x4, [x29,120] mov w2, 0 - ldr x6, [x29,104] + ldr x6, [x29,112] mov w0, w4 mov w1, w6 bl gc_add_sblk - ldr x5, [x29,96] -.L3353: - add x0, x25, 800 + ldr x5, [x29,104] +.L3546: + add x0, x27, 1312 cmn w5, #1 - add x0, x0, x27, lsl 6 + add x0, x0, x28, lsl 6 cset w11, eq ldr x1, [x0,24] ldr w0, [x0,36] ldr w1, [x1,4] cmp w1, w0 - bne .L3368 - cbz w11, .L3354 -.L3368: - ldr x1, [x25,608] - add x10, x25, 800 - add x10, x10, x27, lsl 6 + bne .L3562 + cbz w11, .L3547 +.L3562: + ldr x1, [x27,1120] + add x10, x27, 1312 + add x10, x10, x28, lsl 6 mov w2, w5 add x10, x10, 32 - str x11, [x29,104] + str x11, [x29,112] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] @@ -21641,91 +22725,93 @@ zftl_read: ldrb w1, [x10,-31] ldr w0, [x7,12] str w0, [sp] - adrp x0, .LC264 - add x0, x0, :lo12:.LC264 + adrp x0, .LC260 + add x0, x0, :lo12:.LC260 ldr w3, [x10,4] ldr w4, [x10,8] ldr w5, [x7] ldr w6, [x7,4] ldr w7, [x7,8] - str x10, [x29,112] + str x10, [x29,120] bl printk - ldrb w2, [x25,744] + add x3, x24, :lo12:.LANCHOR3 + ldrb w2, [x27,1257] mov w1, 24 - ldrh w0, [x25,3536] - ldr x10, [x29,112] + ldr x10, [x29,120] sub w2, w1, w2 - sub w2, w2, w0 mov w1, 1 + ldrh w0, [x3,1232] + sub w2, w2, w0 lsl w2, w1, w2 ldr w1, [x10,8] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x25,3538] + ldrb w1, [x3,1234] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump - ldr x11, [x29,104] -.L3354: - add x0, x25, 800 - add x0, x0, x27, lsl 6 + ldr x11, [x29,112] +.L3547: + add x0, x27, 1312 + add x0, x0, x28, lsl 6 ldr x1, [x0,24] ldr w0, [x0,36] ldr w1, [x1,4] cmp w1, w0 - bne .L3369 - cbz w11, .L3356 -.L3369: - ldr x1, [x29,120] - mov w2, 1109 - ldr x0, [x29,128] + bne .L3563 + cbz w11, .L3549 +.L3563: + ldr x1, [x29,128] + mov w2, 1301 + ldr x0, [x29,136] bl printk bl dump_stack -.L3356: - add x0, x25, 800 - ldrb w1, [x25,2848] - add x9, x0, x27, lsl 6 +.L3549: + add x0, x27, 1312 + ldrb w1, [x27,3360] + add x9, x0, x28, lsl 6 ldrb w2, [x9,56] cmp w1, w2 - bls .L3358 + bls .L3551 ldrb w3, [x9,57] lsl w2, w2, 9 ldr x1, [x9,8] ldr x0, [x9,16] add x1, x1, x3, lsl 9 bl ftl_memcpy - b .L3359 -.L3358: + b .L3552 +.L3551: ldrb w0, [x9,2] and w0, w0, -9 strb w0, [x9,2] -.L3359: - ldr x0, [x29,144] +.L3552: mov x1, x26 - add x2, x0, :lo12:.LANCHOR3 - str x2, [x29,112] - sub x0, x2, #171 + add x0, x27, 3364 bl buf_remove_buf mov x0, x26 bl zbuf_free - ldr x2, [x29,112] - ldrb w0, [x2,-172] + add x1, x24, :lo12:.LANCHOR3 + ldrb w0, [x1,1875] sub w0, w0, #1 - strb w0, [x2,-172] - b .L3350 -.L3401: + strb w0, [x1,1875] + b .L3543 +.L3595: mov w2, -1 - strb w1, [x0,-172] - strb w2, [x0,-173] - b .L3335 -.L3400: + strb w1, [x0,1875] + strb w2, [x0,1874] + b .L3528 +.L3594: bl timer_get_time - adrp x1, .LANCHOR6+256 - str w0, [x1,#:lo12:.LANCHOR6+256] - ldr w0, [x29,152] -.L3334: + adrp x1, .LANCHOR5+932 + ldr w3, [x29,148] + str w0, [x1,#:lo12:.LANCHOR5+932] + b .L3527 +.L3556: + mov w3, -1 +.L3527: sub sp, x29, #16 + mov w0, w3 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] ldp x23, x24, [sp,64] @@ -21780,139 +22866,140 @@ zftl_debug_proc_write: str x19, [x29,104] stp x23, x24, [sp,80] stp x25, x26, [sp,96] - mov x22, x2 - bhi .L3405 + mov x21, x2 + bhi .L3599 mov x0, x19 bl rk_copy_from_user - mov x21, x0 + mov x22, x0 mov x0, -14 - cbnz x21, .L3405 - adrp x0, .LC265 + cbnz x22, .L3599 + adrp x0, .LC261 mov x1, x19 - add x0, x0, :lo12:.LC265 - strb w21, [x19,x22] + add x0, x0, :lo12:.LC261 + strb w22, [x19,x21] bl printk - adrp x0, .LC266 + adrp x0, .LC262 mov x1, x19 - add x0, x0, :lo12:.LC266 + add x0, x0, :lo12:.LC262 mov w2, 1 mov w3, 16 bl rknand_print_hex bl rknand_device_lock - adrp x1, .LC267 + adrp x1, .LC263 mov x0, x19 - add x1, x1, :lo12:.LC267 + add x1, x1, :lo12:.LC263 mov x2, 7 bl memcmp - cbnz w0, .L3406 + cbnz w0, .L3600 adrp x23, .LANCHOR0 - adrp x0, .LC268 + adrp x0, .LC264 add x19, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC268 + add x0, x0, :lo12:.LC264 mov w2, 4 - adrp x20, .LANCHOR3 - ldr x3, [x19,2880] + adrp x20, .LANCHOR5 + ldr x3, [x19,3392] add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex - add x3, x20, :lo12:.LANCHOR3 - ldr x1, [x19,2880] - adrp x0, .LC269 + add x3, x20, :lo12:.LANCHOR5 + ldr x1, [x19,3392] + adrp x0, .LC265 mov w2, 2 - add x0, x0, :lo12:.LC269 + add x0, x0, :lo12:.LC265 add x1, x1, 416 - ldrh w3, [x3,1456] - mov w19, w21 - mov w21, 65535 + ldrh w3, [x3,176] + mov w19, w22 + mov w22, 65535 bl rknand_print_hex -.L3407: - add x0, x20, :lo12:.LANCHOR3 - ldrh w0, [x0,1456] +.L3601: + add x0, x20, :lo12:.LANCHOR5 + ldrh w0, [x0,176] cmp w19, w0 - bge .L3410 + bge .L3604 mov w0, 300 bl msleep add x0, x23, :lo12:.LANCHOR0 - ldr x0, [x0,2880] + ldr x0, [x0,3392] add x0, x0, x19, sxtw 1 ldrh w0, [x0,416] - cmp w0, w21 - beq .L3408 + cmp w0, w22 + beq .L3602 mov x1, 0 bl ftl_sblk_dump -.L3408: +.L3602: add w19, w19, 1 - b .L3407 -.L3406: - adrp x1, .LC270 + b .L3601 +.L3600: + adrp x1, .LC266 mov x0, x19 - add x1, x1, :lo12:.LC270 + add x1, x1, :lo12:.LC266 mov x2, 7 bl memcmp - cbnz w0, .L3411 - adrp x23, .LANCHOR0 - adrp x0, .LC268 - add x20, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC268 + cbnz w0, .L3605 + adrp x22, .LANCHOR0 + adrp x0, .LC264 + add x20, x22, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LC264 mov w2, 4 - adrp x21, .LANCHOR3 - add x21, x21, :lo12:.LANCHOR3 - adrp x25, .LC273 - ldr x3, [x20,2880] - add x25, x25, :lo12:.LC273 + adrp x26, .LC269 + add x26, x26, :lo12:.LC269 + ldr x3, [x20,3392] add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex - ldr x1, [x20,2880] - adrp x0, .LC269 - ldrh w3, [x21,1456] + adrp x3, .LANCHOR5+176 + ldr x1, [x20,3392] + adrp x0, .LC265 mov w2, 2 - add x0, x0, :lo12:.LC269 + add x0, x0, :lo12:.LC265 add x1, x1, 416 + ldrh w3, [x3,#:lo12:.LANCHOR5+176] add x20, x29, 192 bl rknand_print_hex - adrp x0, .LC271 + adrp x0, .LC267 add x1, x19, 7 - add x0, x0, :lo12:.LC271 + add x0, x0, :lo12:.LC267 str x1, [x20,-88]! - mov x19, x23 - adrp x23, .LC272 + mov x19, x22 + adrp x22, .LC268 bl printk - add x23, x23, :lo12:.LC272 + add x22, x22, :lo12:.LC268 ldr x0, [x29,104] mov x1, x20 - sub x20, x21, #160 - add x21, x21, 352 - bl rk_simple_strtoull.constprop.33 + bl rk_simple_strtoull.constprop.35 mov w24, w0 + adrp x2, .LANCHOR3 str w0, [x29,100] - uxth w26, w0 -.L3413: + add x2, x2, :lo12:.LANCHOR3 + uxth w25, w0 + add x20, x2, 1880 + add x23, x2, 2392 +.L3607: ldrh w1, [x20] - mov x0, x23 + mov x0, x22 ldrh w2, [x20,2] bl printk ldrh w0, [x20] - cmp w0, w26 - bne .L3412 + cmp w0, w25 + bne .L3606 add x0, x19, :lo12:.LANCHOR0 ldr x1, [x20,8] mov w2, 4 - ldrb w3, [x0,2848] - mov x0, x25 + ldrb w3, [x0,3360] + mov x0, x26 lsl w3, w3, 7 bl rknand_print_hex -.L3412: +.L3606: add x20, x20, 16 - cmp x20, x21 - bne .L3413 + cmp x20, x23 + bne .L3607 mov w0, 300 add x19, x19, :lo12:.LANCHOR0 bl msleep mov w0, 1 bl buf_alloc mov x20, x0 - ldr x1, [x19,2880] + ldr x1, [x19,3392] add x1, x1, x24, uxth 2 ldr w1, [x1,704] str w1, [x29,100] @@ -21928,8 +23015,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC235 - add x0, x0, :lo12:.LC235 + adrp x0, .LC242 + add x0, x0, :lo12:.LC242 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -21937,64 +23024,64 @@ zftl_debug_proc_write: ldr w6, [x6,12] ldr w7, [x7] bl printk - ldrb w3, [x19,2848] - adrp x0, .LC274 + ldrb w3, [x19,3360] + adrp x0, .LC270 ldr x1, [x20,8] - add x0, x0, :lo12:.LC274 + add x0, x0, :lo12:.LC270 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex mov x0, x20 - b .L3428 -.L3411: - adrp x1, .LC275 + b .L3622 +.L3605: + adrp x1, .LC271 mov x0, x19 - add x1, x1, :lo12:.LC275 + add x1, x1, :lo12:.LC271 mov x2, 7 bl memcmp - cbnz w0, .L3414 + cbnz w0, .L3608 bl dump_ftl_info - b .L3410 -.L3414: - adrp x1, .LC276 + b .L3604 +.L3608: + adrp x1, .LC272 mov x0, x19 - add x1, x1, :lo12:.LC276 + add x1, x1, :lo12:.LC272 mov x2, 9 bl memcmp - cbnz w0, .L3415 + cbnz w0, .L3609 add x1, x29, 192 add x0, x19, 9 str x0, [x1,-88]! - bl rk_simple_strtoull.constprop.33 + bl rk_simple_strtoull.constprop.35 str w0, [x29,100] - adrp x1, .LANCHOR0+3632 - strh w0, [x1,#:lo12:.LANCHOR0+3632] + adrp x1, .LANCHOR3+1328 + strh w0, [x1,#:lo12:.LANCHOR3+1328] bl dump_all_list_info - b .L3410 -.L3415: - adrp x1, .LC277 + b .L3604 +.L3609: + adrp x1, .LC273 mov x0, x19 - add x1, x1, :lo12:.LC277 + add x1, x1, :lo12:.LC273 mov x2, 8 bl memcmp - cbz w0, .L3410 - adrp x1, .LC278 + cbz w0, .L3604 + adrp x1, .LC274 mov x0, x19 - add x1, x1, :lo12:.LC278 + add x1, x1, :lo12:.LC274 mov x2, 8 bl memcmp - cbnz w0, .L3417 + cbnz w0, .L3611 add x20, x29, 192 - adrp x0, .LC271 + adrp x0, .LC267 add x1, x19, 8 - add x0, x0, :lo12:.LC271 + add x0, x0, :lo12:.LC267 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 adrp x20, .LANCHOR0 add x20, x20, :lo12:.LANCHOR0 - bl rk_simple_strtoull.constprop.33 + bl rk_simple_strtoull.constprop.35 str w0, [x29,100] mov w0, 1 bl buf_alloc @@ -22012,8 +23099,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC235 - add x0, x0, :lo12:.LC235 + adrp x0, .LC242 + add x0, x0, :lo12:.LC242 ldr w4, [x6,4] ldr w5, [x6,8] ldr w3, [x6] @@ -22021,99 +23108,111 @@ zftl_debug_proc_write: ldr w6, [x6,12] ldr w2, [x19,52] bl printk - ldrb w3, [x20,2848] - adrp x0, .LC229 + ldrb w3, [x20,3360] + adrp x0, .LC215 ldr x1, [x19,8] - add x0, x0, :lo12:.LC229 + add x0, x0, :lo12:.LC215 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex - ldrb w3, [x20,2848] - adrp x0, .LC230 + ldrb w3, [x20,3360] + adrp x0, .LC237 ldr x1, [x19,24] - add x0, x0, :lo12:.LC230 + add x0, x0, :lo12:.LC237 mov w2, 4 lsl w3, w3, 1 bl rknand_print_hex mov x0, x19 -.L3428: +.L3622: bl zbuf_free - b .L3410 -.L3417: - adrp x1, .LC279 + b .L3604 +.L3611: + adrp x1, .LC275 mov x0, x19 - add x1, x1, :lo12:.LC279 + add x1, x1, :lo12:.LC275 mov x2, 8 bl memcmp - cbnz w0, .L3418 + cbnz w0, .L3612 add x20, x29, 192 - adrp x0, .LC271 + adrp x0, .LC267 add x1, x19, 8 - add x0, x0, :lo12:.LC271 + add x0, x0, :lo12:.LC267 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 - bl rk_simple_strtoull.constprop.33 + bl rk_simple_strtoull.constprop.35 str w0, [x29,100] - mov x1, x21 + mov x1, x22 bl ftl_sblk_dump - b .L3410 -.L3418: - adrp x1, .LC280 + b .L3604 +.L3612: + adrp x1, .LC276 mov x0, x19 - add x1, x1, :lo12:.LC280 + add x1, x1, :lo12:.LC276 mov x2, 10 bl memcmp - cbnz w0, .L3419 + cbnz w0, .L3613 add x20, x29, 192 - adrp x0, .LC271 + adrp x0, .LC267 add x1, x19, 10 - add x0, x0, :lo12:.LC271 + add x0, x0, :lo12:.LC267 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 - bl rk_simple_strtoull.constprop.33 + bl rk_simple_strtoull.constprop.35 str w0, [x29,100] adrp x1, .LANCHOR2 str w0, [x1,#:lo12:.LANCHOR2] - b .L3410 -.L3419: - adrp x1, .LC281 + b .L3604 +.L3613: + adrp x1, .LC277 mov x2, 8 mov x0, x19 - add x1, x1, :lo12:.LC281 + add x1, x1, :lo12:.LC277 bl memcmp mov w2, w0 str x2, [x29,88] - cbnz w0, .L3420 + cbnz w0, .L3614 add x1, x19, 8 - adrp x0, .LC271 + adrp x0, .LC267 add x19, x29, 192 - add x0, x0, :lo12:.LC271 + add x0, x0, :lo12:.LC267 str x1, [x19,-88]! bl printk ldr x0, [x29,104] mov x1, x19 - bl rk_simple_strtoull.constprop.33 + bl rk_simple_strtoull.constprop.35 mov w19, w0 bl lpa_hash_get_ppa str w0, [x29,100] cmn w0, #1 ldr x2, [x29,88] - bne .L3421 + bne .L3615 mov w0, w19 add x1, x29, 100 bl pm_log2phys -.L3421: - adrp x0, .LC282 +.L3615: + adrp x0, .LC278 ldr w2, [x29,100] mov w1, w19 + add x0, x0, :lo12:.LC278 + bl printk + b .L3604 +.L3614: + adrp x0, .LC279 + add x0, x0, :lo12:.LC279 + bl printk + adrp x0, .LC280 + add x0, x0, :lo12:.LC280 + bl printk + adrp x0, .LC281 + add x0, x0, :lo12:.LC281 + bl printk + adrp x0, .LC282 add x0, x0, :lo12:.LC282 bl printk - b .L3410 -.L3420: adrp x0, .LC283 add x0, x0, :lo12:.LC283 bl printk @@ -22129,22 +23228,10 @@ zftl_debug_proc_write: adrp x0, .LC287 add x0, x0, :lo12:.LC287 bl printk - adrp x0, .LC288 - add x0, x0, :lo12:.LC288 - bl printk - adrp x0, .LC289 - add x0, x0, :lo12:.LC289 - bl printk - adrp x0, .LC290 - add x0, x0, :lo12:.LC290 - bl printk - adrp x0, .LC291 - add x0, x0, :lo12:.LC291 - bl printk -.L3410: +.L3604: bl rknand_device_unlock - mov x0, x22 -.L3405: + mov x0, x21 +.L3599: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -22155,327 +23242,136 @@ zftl_debug_proc_write: ret .size zftl_debug_proc_write, .-zftl_debug_proc_write .align 2 - .global gc_check_data_one_wl - .type gc_check_data_one_wl, %function -gc_check_data_one_wl: - sub sp, sp, #128 - stp x29, x30, [sp,16] - add x29, sp, 16 - stp x19, x20, [sp,32] - adrp x19, .LANCHOR0 - add x20, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,48] - stp x23, x24, [sp,64] - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - ldr x0, [x20,2920] - ldr x23, [x20,608] - add x20, x20, 2912 - cbnz x0, .L3430 - mov w0, 1 - bl buf_alloc - str x0, [x20,8] -.L3430: - add x0, x19, :lo12:.LANCHOR0 - ldr x20, [x0,2920] - cbnz x20, .L3431 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 613 - add x1, x1, 744 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L3431: - mov w24, 0 - add x25, x23, 80 - add x21, x19, :lo12:.LANCHOR0 - adrp x27, .LANCHOR3 -.L3432: - ldrb w0, [x25,9] - cmp w24, w0 - bge .L3459 - mov w22, 1 - sxtw x28, w24 -.L3442: - add x2, x21, 2912 - ldrh w0, [x2,20] - cmp w22, w0 - bgt .L3460 - add x0, x28, 8 - ldrh w1, [x21,3634] - ldrh w0, [x25,x0,lsl 1] - mul w0, w0, w1 - ldrb w1, [x21,3553] - cmp w1, 2 - beq .L3433 - ldrb w3, [x21,756] - cbz w3, .L3434 -.L3433: - ldrh w2, [x21,2928] - sub w2, w2, #1 - add w0, w2, w0 - add w0, w0, w22 - orr w0, w0, w1, lsl 24 - b .L3436 -.L3434: - cmp w1, 3 - ldrh w1, [x2,16] - add w0, w0, w1 - bne .L3436 - orr w0, w0, w22, lsl 24 -.L3436: - str w0, [x20,40] - mov w1, 1 - mov x0, x20 - bl sblk_read_page - ldr w0, [x20,52] - cmn w0, #1 - beq .L3437 - add x2, x27, :lo12:.LANCHOR3 - ldrh w0, [x21,2934] - ldr x1, [x20,24] - lsl x0, x0, 2 - ldr x3, [x2,1424] - ldr w4, [x3,x0] - ldr w3, [x1,4] - cmp w4, w3 - bne .L3437 - ldr x2, [x2,1432] - ldr w2, [x2,x0] - ldr w0, [x1,8] - cmp w2, w0 - beq .L3438 -.L3437: - add x26, x27, :lo12:.LANCHOR3 - ldrh w0, [x21,2934] - add x4, x21, 2912 - ldr x1, [x26,1424] - ldr w0, [x1,x0,lsl 2] - cmn w0, #1 - beq .L3438 - ldrb w5, [x25,9] - adrp x0, .LC292 - ldrh w3, [x21,3570] - add x0, x0, :lo12:.LC292 - mov w2, 4 - str x4, [x29,104] - mul w3, w5, w3 - bl rknand_print_hex - ldrb w5, [x25,9] - adrp x0, .LC293 - ldrh w3, [x21,3570] - add x0, x0, :lo12:.LC293 - ldr x1, [x26,1432] - mov w2, 4 - mul w3, w5, w3 - bl rknand_print_hex - adrp x0, .LANCHOR2 - ldr x4, [x29,104] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 10, .L3439 - ldr x7, [x20,24] - ldrh w4, [x4,22] - ldr x5, [x26,1432] - ldr w0, [x7,12] - lsl x4, x4, 2 - ldr x3, [x26,1424] - str w0, [sp] - adrp x0, .LC294 - add x0, x0, :lo12:.LC294 - ldr w3, [x3,x4] - ldr w6, [x7,4] - ldr w4, [x5,x4] - ldr w1, [x20,40] - ldr w5, [x7] - ldr w2, [x20,52] - ldr w7, [x7,8] - bl printk -.L3439: - add x19, x19, :lo12:.LANCHOR0 - mov x1, 0 - ldr x0, [x19,608] - ldrh w0, [x0,80] - bl ftl_sblk_dump - ldrh w1, [x23,80] - ldr x0, [x19,600] - strh wzr, [x0,x1,lsl 1] - ldr x1, [x19,608] - ldr w0, [x1,556] - add w0, w0, 1 - str w0, [x1,556] - ldr x0, [x19,2880] - mov w19, -1 - ldr w1, [x0,156] - mov w0, 20041 - movk w0, 0x444b, lsl 16 - cmp w1, w0 - bne .L3440 - ldr w0, [x20,40] - bl ftl_mask_bad_block - b .L3440 -.L3438: - ldrh w0, [x21,2934] - add w22, w22, 1 - add w0, w0, 1 - strh w0, [x21,2934] - b .L3442 -.L3460: - add w24, w24, 1 - b .L3432 -.L3459: - add x19, x19, :lo12:.LANCHOR0 - add x2, x19, 2912 - ldrh w1, [x19,2928] - add w0, w1, 1 - strh w0, [x19,2928] - ldrb w0, [x19,3554] - mov w19, 0 - cbz w0, .L3440 - add w1, w1, 2 - strh w1, [x2,16] -.L3440: - sub sp, x29, #16 - mov w0, w19 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x27, x28, [sp,96] - ldp x29, x30, [sp,16] - add sp, sp, 128 - ret - .size gc_check_data_one_wl, .-gc_check_data_one_wl - .align 2 .global ftl_update_l2p_map .type ftl_update_l2p_map, %function ftl_update_l2p_map: stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - stp x23, x24, [sp,48] - mov x23, x0 - add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] + mov x22, x0 + adrp x0, .LANCHOR3 + add x1, x0, :lo12:.LANCHOR3 + str x0, [x29,120] + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldrh w20, [x23,12] - ldrh w24, [x0,3596] - ldrb w0, [x23,9] - mul w24, w24, w0 - adrp x0, .LANCHOR3 - str x0, [x29,120] - add x1, x0, :lo12:.LANCHOR3 - ldr x1, [x1,-200] - add x20, x1, x20, lsl 2 - add x1, x20, x24, sxtw 2 + ldrb w2, [x22,9] + ldrh w23, [x1,1294] + ldrh w19, [x22,12] + ldr x1, [x1,1848] + mul w23, w23, w2 + add x19, x1, x19, lsl 2 + add x1, x19, x23, sxtw 2 ldr w1, [x1,-4] cmn w1, #1 - beq .L3462 + beq .L3624 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1743 - add x1, x1, 768 + mov w2, 1990 + add x1, x1, 944 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3462: - adrp x0, .LC296 +.L3624: + adrp x0, .LC289 mov x28, 0 - add x0, x0, :lo12:.LC296 - adrp x27, .LC295 + add x0, x0, :lo12:.LC289 + adrp x27, .LC288 str x0, [x29,112] - adrp x0, .LC297 - add x0, x0, :lo12:.LC297 - mov w22, w28 + adrp x0, .LC290 + add x0, x0, :lo12:.LC290 + mov w21, w28 str x0, [x29,104] - add x27, x27, :lo12:.LC295 -.L3463: - cmp w28, w24 - mov w25, w28 - bge .L3490 - ldr w2, [x20,x28,lsl 2] + add x27, x27, :lo12:.LC288 +.L3625: + cmp w28, w23 + mov w24, w28 + bge .L3652 + ldr w2, [x19,x28,lsl 2] cmn w2, #1 - beq .L3464 - add x0, x19, :lo12:.LANCHOR0 - ldrb w21, [x0,2848] + beq .L3626 + adrp x25, .LANCHOR0 + add x0, x25, :lo12:.LANCHOR0 + ldrb w20, [x0,3360] adrp x0, .LANCHOR2 - lsl w21, w21, 7 + lsl w20, w20, 7 ldr w0, [x0,#:lo12:.LANCHOR2] - udiv w21, w2, w21 - and w21, w21, 65535 - tbz x0, 12, .L3468 + udiv w20, w2, w20 + and w20, w20, 65535 + tbz x0, 12, .L3630 mov x0, x27 - mov w1, w21 + mov w1, w20 mov w3, w28 bl printk -.L3468: - sbfiz x26, x25, 2, 32 - ldr w0, [x20,x26] +.L3630: + sbfiz x26, x24, 2, 32 + ldr w0, [x19,x26] cmn w0, #1 - beq .L3466 - add x2, x19, :lo12:.LANCHOR0 - ldrb w1, [x2,2848] + beq .L3628 + add x1, x25, :lo12:.LANCHOR0 + ldrb w1, [x1,3360] lsl w1, w1, 7 udiv w0, w0, w1 - cmp w21, w0, uxth - bne .L3466 - ldrb w0, [x23,9] - ldrh w2, [x2,3634] - sdiv w1, w25, w0 - msub w0, w1, w0, w25 - add x0, x23, x0, sxtw 1 + cmp w20, w0, uxth + bne .L3628 + ldrb w0, [x22,9] + ldr x2, [x29,120] + add x3, x2, :lo12:.LANCHOR3 + str x3, [x29,96] + sdiv w1, w24, w0 + ldrh w2, [x3,1330] + msub w0, w1, w0, w24 + add x0, x22, x0, sxtw 1 ldrh w0, [x0,16] madd w2, w0, w2, w1 str w2, [x29,140] ldr x0, [x29,112] - ldr w1, [x20,x26] + ldr w1, [x19,x26] bl pm_ppa_update_check - cbz w0, .L3467 - ldr x0, [x29,120] + ldr x3, [x29,96] + cbz w0, .L3629 + ldr x1, [x3,1848] mov w2, 4 - mov w3, w24 - add x1, x0, :lo12:.LANCHOR3 ldr x0, [x29,104] - ldr x1, [x1,-200] + mov w3, w23 bl rknand_print_hex -.L3467: - ldr w0, [x20,x26] +.L3629: + ldr w0, [x19,x26] add x1, x29, 140 mov w2, 1 - add w22, w22, 1 + add w21, w21, 1 bl pm_log2phys - uxth w22, w22 + uxth w21, w21 mov w0, -1 - str w0, [x20,x26] -.L3466: - add w25, w25, 1 - cmp w25, w24 - bne .L3468 -.L3464: + str w0, [x19,x26] +.L3628: + add w24, w24, 1 + cmp w24, w23 + bne .L3630 +.L3626: add x28, x28, 1 - b .L3463 -.L3490: + b .L3625 +.L3652: adrp x0, .LANCHOR2 + adrp x19, .LANCHOR0 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L3470 + tbz x0, 12, .L3632 add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x23] - mov w2, w22 + ldrh w1, [x22] + mov w2, w21 ubfiz x3, x1, 1, 16 - ldr x4, [x0,600] - adrp x0, .LC298 - add x0, x0, :lo12:.LC298 + ldr x4, [x0,1112] + adrp x0, .LC291 + add x0, x0, :lo12:.LC291 ldrh w3, [x4,x3] bl printk -.L3470: +.L3632: add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x23] - ldr x0, [x19,600] - strh w22, [x0,x1,lsl 1] + ldrh w1, [x22] + ldr x0, [x19,1112] + strh w21, [x0,x1,lsl 1] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22499,38 +23395,38 @@ ftl_alloc_new_data_sblk: ldrh w0, [x20] mov w1, 65535 cmp w0, w1 - beq .L3492 + beq .L3654 bl zftl_insert_data_list -.L3492: +.L3654: adrp x19, .LANCHOR0 mov w2, 2 add x19, x19, :lo12:.LANCHOR0 mov w1, 3 - ldr x0, [x19,608] + ldr x0, [x19,1120] add x0, x0, 16 cmp x20, x0 mov x0, x20 csel w1, w2, w1, eq bl ftl_open_sblk_init - ldr x0, [x19,608] + ldr x0, [x19,1120] ldr w0, [x0,560] cmp w0, w21 - bne .L3494 + bne .L3656 mov w20, 65535 cmp w21, w20 - beq .L3494 - adrp x0, .LC299 + beq .L3656 + adrp x0, .LC292 mov w1, w21 - add x0, x0, :lo12:.LC299 + add x0, x0, :lo12:.LC292 bl printk - ldr x0, [x19,608] + ldr x0, [x19,1120] ldr w0, [x0,564] bl gc_mark_bad_ppa - ldr x0, [x19,608] + ldr x0, [x19,1120] mov w1, -1 str w20, [x0,560] str w1, [x0,564] -.L3494: +.L3656: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush @@ -22545,401 +23441,433 @@ ftl_alloc_new_data_sblk: .global ftl_write_commit .type ftl_write_commit, %function ftl_write_commit: - stp x29, x30, [sp, -160]! + stp x29, x30, [sp, -176]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR0 stp x25, x26, [sp,64] - add x24, x24, :lo12:.LANCHOR0 - adrp x25, .LANCHOR3 - add x0, x24, 800 - add x25, x25, :lo12:.LANCHOR3 - str x0, [x29,112] - sub x0, x25, #171 + adrp x26, .LANCHOR0 + add x26, x26, :lo12:.LANCHOR0 + add x0, x26, 1312 + str x0, [x29,128] + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + str x0, [x29,136] stp x19, x20, [sp,16] + add x0, x0, 264 + str x0, [x29,120] stp x21, x22, [sp,32] + stp x23, x24, [sp,48] stp x27, x28, [sp,80] - str x0, [x29,104] -.L3503: - ldrb w0, [x24,2872] - adrp x22, .LANCHOR0 - cbz w0, .L3505 - ldrb w1, [x24,2904] +.L3665: + ldrb w0, [x26,3388] + adrp x20, .LANCHOR0 + cbz w0, .L3667 + ldrb w1, [x26,3416] sub w0, w0, #1 - ldr x2, [x29,112] - str x1, [x29,120] + ldr x2, [x29,128] + str x1, [x29,144] lsl x1, x1, 6 - add x27, x2, x1 - strb w0, [x24,2872] - ldr w0, [x24,2856] + add x28, x2, x1 + strb w0, [x26,3388] + ldr w0, [x26,3372] ldrb w1, [x2,x1] - strb w1, [x24,2904] - ldr w1, [x27,36] + strb w1, [x26,3416] + ldr w1, [x28,36] cmp w1, w0 - bcc .L3506 + bcc .L3668 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 510 - add x1, x1, 792 + mov w2, 604 + add x1, x1, 968 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3506: - ldr x0, [x29,120] - add x1, x22, :lo12:.LANCHOR0 - add x4, x1, 800 - add x0, x4, x0, lsl 6 - ldr w2, [x1,2856] +.L3668: + ldr x0, [x29,144] + add x1, x20, :lo12:.LANCHOR0 + add x3, x1, 1312 + add x0, x3, x0, lsl 6 + ldr w2, [x1,3372] ldr w23, [x0,36] cmp w23, w2 - bcc .L3507 - mov x0, x27 + bcc .L3669 + mov x0, x28 bl zbuf_free mov w0, -1 - b .L3561 -.L3507: - ldr x2, [x0,24] - ldr x26, [x0,8] - ldrb w21, [x0,57] - ldrb w20, [x0,56] - ldrb w0, [x1,2873] - str x2, [x29,128] - cbz w0, .L3509 - ldrb w3, [x25,1544] - add x3, x4, x3, lsl 6 -.L3510: - ldrb w5, [x3] - cmp w5, 255 - beq .L3563 - sbfiz x3, x5, 6, 32 - add x3, x4, x3 - b .L3510 -.L3563: - ldr w0, [x3,36] + b .L3726 +.L3669: + ldr x25, [x0,8] + ldr x24, [x0,24] + ldrb w22, [x0,57] + ldrb w21, [x0,56] + ldrb w0, [x1,3389] + cbz w0, .L3671 + ldr x0, [x29,136] + ldrb w19, [x0,264] + add x19, x3, x19, lsl 6 +.L3672: + ldrb w4, [x19] + cmp w4, 255 + beq .L3728 + sbfiz x19, x4, 6, 32 + add x19, x3, x19 + b .L3672 +.L3728: + ldr w0, [x19,36] cmp w0, w23 - bne .L3509 - ldr x0, [x3,8] - ubfiz x1, x21, 9, 8 - lsl w2, w20, 9 + bne .L3671 + ldr x0, [x19,8] + ubfiz x1, x22, 9, 8 + lsl w2, w21, 9 + add x20, x20, :lo12:.LANCHOR0 add x0, x0, x1 - add x1, x26, x1 + add x1, x25, x1 bl ftl_memcpy - mov x0, x27 + ldrb w2, [x20,3360] + mov w0, 2 + ldr x1, [x19,24] + ldr x3, [x19,8] + sub w2, w2, #2 + sbfiz x2, x2, 9, 32 + add x1, x1, 16 + add x2, x3, x2 + bl ftl_debug_info_fill + mov x0, x28 bl zbuf_free - b .L3503 -.L3509: + b .L3665 +.L3671: mov w0, w23 bl lpa_hash_get_ppa - str w0, [x29,156] + str w0, [x29,172] cmn w0, #1 - bne .L3513 + bne .L3675 mov w0, w23 - add x1, x29, 156 + add x1, x29, 172 mov w2, 0 bl pm_log2phys -.L3513: - add x4, x22, :lo12:.LANCHOR0 - mov w3, 0 - add x4, x4, 800 - ldr x19, [x4,-192] +.L3675: + add x4, x20, :lo12:.LANCHOR0 + ldr w0, [x29,172] + add x3, x4, 1312 + mov w1, 0 + mov x27, 0 + ldr x19, [x4,1120] + add x4, x4, 3360 add x19, x19, 16 -.L3516: - ldr w0, [x4,36] - cmp w0, w23 - bne .L3514 - ldrb w5, [x4,2] - tbz x5, 3, .L3514 - add x0, x22, :lo12:.LANCHOR0 - ubfiz x3, x3, 6, 32 - add x0, x0, 800 - and w5, w5, -9 - add x3, x0, x3 +.L3677: + ldr w2, [x3,36] + cmp w2, w23 + bne .L3676 + ldrb w6, [x3,2] + tbz x6, 3, .L3676 + ldr x27, [x3,8] + and w6, w6, -9 ldr w0, [x3,40] - strb w5, [x3,2] - ldr x28, [x3,8] - str w0, [x29,156] - b .L3515 -.L3514: - add w3, w3, 1 - add x4, x4, 64 - cmp w3, 32 - bne .L3516 - mov x28, 0 -.L3515: - add x3, x22, :lo12:.LANCHOR0 - str wzr, [x29,136] - ldrb w0, [x3,2848] - cmp w20, w0 - bcs .L3517 - add w20, w21, w20 - cbz x28, .L3518 - cbz w21, .L3519 - mov x0, x26 - mov x1, x28 - lsl w2, w21, 9 - str x3, [x29,136] + mov w1, 1 + strb w6, [x3,2] +.L3676: + add x3, x3, 64 + cmp x3, x4 + bne .L3677 + cbz w1, .L3678 + str w0, [x29,172] +.L3678: + add x3, x20, :lo12:.LANCHOR0 + str wzr, [x29,152] + ldrb w0, [x3,3360] + cmp w21, w0 + bcs .L3679 + add w21, w22, w21 + cbz x27, .L3680 + cbz w22, .L3681 + mov x0, x25 + mov x1, x27 + lsl w2, w22, 9 + str x3, [x29,152] bl ftl_memcpy - ldr x3, [x29,136] - ldr x19, [x3,608] + ldr x3, [x29,152] + ldr x19, [x3,1120] add x19, x19, 48 -.L3519: - add x0, x22, :lo12:.LANCHOR0 - ldrb w2, [x0,2848] - cmp w20, w2 - bcc .L3520 - ldr x19, [x0,608] +.L3681: + add x0, x20, :lo12:.LANCHOR0 + ldrb w2, [x0,3360] + cmp w21, w2 + bcc .L3682 + ldr x19, [x0,1120] add x19, x19, 16 - b .L3562 -.L3520: - ubfiz x1, x20, 9, 9 - sub w2, w2, w20 - add x0, x26, x1 + b .L3727 +.L3682: + ubfiz x1, x21, 9, 9 + sub w2, w2, w21 + add x0, x25, x1 lsl w2, w2, 9 - add x1, x28, x1 + add x1, x27, x1 bl ftl_memcpy -.L3562: - str wzr, [x29,136] - b .L3517 -.L3518: - ldr w0, [x29,156] +.L3727: + str wzr, [x29,152] + b .L3679 +.L3680: + ldr w0, [x29,172] cmn w0, #1 - beq .L3521 + beq .L3683 mov w0, 1 bl buf_alloc - mov x28, x0 - ldr w1, [x29,156] + mov x27, x0 + ldr w1, [x29,172] str w1, [x0,40] mov w1, 1 str w23, [x0,36] bl sblk_read_page - ldr x0, [x28,24] + ldr x0, [x27,24] ldr w1, [x0,12] ldr w0, [x0,4] add w1, w1, 1 - str w1, [x29,136] + str w1, [x29,152] cmp w0, w23 - bne .L3522 - ldr w0, [x28,52] + bne .L3684 + ldr w0, [x27,52] cmn w0, #1 - bne .L3523 -.L3522: - add x0, x22, :lo12:.LANCHOR0 - ldr w2, [x29,156] + bne .L3685 +.L3684: + add x0, x20, :lo12:.LANCHOR0 + ldr w2, [x29,172] mov w3, w23 - ldr x1, [x0,608] + ldr x1, [x0,1120] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - adrp x0, .LC300 - ldrb w1, [x28,1] - add x0, x0, :lo12:.LC300 - ldr w4, [x28,52] + adrp x0, .LC293 + ldrb w1, [x27,1] + add x0, x0, :lo12:.LC293 + ldr w4, [x27,52] bl printk - adrp x0, .LC230 + adrp x0, .LC237 mov w2, 4 - ldr x1, [x28,24] - add x0, x0, :lo12:.LC230 + ldr x1, [x27,24] + add x0, x0, :lo12:.LC237 mov w3, w2 bl rknand_print_hex -.L3523: - ldr x0, [x28,24] +.L3685: + ldr x0, [x27,24] ldr w0, [x0,4] cmp w0, w23 - bne .L3524 - ldr w0, [x28,52] + bne .L3686 + ldr w0, [x27,52] cmn w0, #1 - bne .L3525 -.L3524: + bne .L3687 +.L3686: adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 581 - add x1, x1, 792 + mov w2, 691 + add x1, x1, 968 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3525: - cbz w21, .L3526 - ldr w0, [x29,156] - lsl w2, w21, 9 +.L3687: + cbz w22, .L3688 + ldr w0, [x29,172] + lsl w2, w22, 9 cmn w0, #1 - beq .L3527 - ldr x1, [x28,8] - mov x0, x26 + beq .L3689 + ldr x1, [x27,8] + mov x0, x25 bl ftl_memcpy - b .L3528 -.L3521: - cbz w21, .L3526 - lsl w2, w21, 9 -.L3527: - mov x0, x26 + b .L3690 +.L3683: + cbz w22, .L3688 + lsl w2, w22, 9 +.L3689: + mov x0, x25 mov w1, 0 bl ftl_memset -.L3528: - add x0, x22, :lo12:.LANCHOR0 - ldr x19, [x0,608] +.L3690: + add x0, x20, :lo12:.LANCHOR0 + ldr x19, [x0,1120] add x19, x19, 48 -.L3526: - add x0, x22, :lo12:.LANCHOR0 - ldrb w2, [x0,2848] - cmp w20, w2 - bcc .L3529 - bls .L3530 - ldr x19, [x0,608] +.L3688: + add x0, x20, :lo12:.LANCHOR0 + ldrb w2, [x0,3360] + cmp w21, w2 + bcc .L3691 + bls .L3692 + ldr x19, [x0,1120] add x19, x19, 16 - b .L3530 -.L3529: - ldr w0, [x29,156] - sub w2, w2, w20 + b .L3692 +.L3691: + ldr w0, [x29,172] + sub w2, w2, w21 lsl w2, w2, 9 cmn w0, #1 - ubfiz x0, x20, 7, 9 - beq .L3531 - ldr x1, [x28,8] - lsl x20, x0, 2 - add x0, x26, x20 - add x1, x1, x20 + ubfiz x0, x21, 7, 9 + beq .L3693 + ldr x1, [x27,8] + lsl x21, x0, 2 + add x0, x25, x21 + add x1, x1, x21 bl ftl_memcpy - b .L3530 -.L3531: - add x0, x26, x0, lsl 2 + b .L3692 +.L3693: + add x0, x25, x0, lsl 2 mov w1, 0 bl ftl_memset -.L3530: - cbz x28, .L3517 - ldrb w0, [x28,2] - mov x1, x28 +.L3692: + cbz x27, .L3679 + ldrb w0, [x27,2] + mov x1, x27 and w0, w0, -9 - strb w0, [x28,2] - ldr x0, [x29,104] + strb w0, [x27,2] + add x0, x20, :lo12:.LANCHOR0 + add x0, x0, 3364 bl buf_remove_buf - mov x0, x28 + mov x0, x27 bl zbuf_free -.L3517: +.L3679: ldrh w0, [x19,6] - cbnz w0, .L3532 + cbnz w0, .L3694 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk -.L3532: +.L3694: mov x0, x19 - add x20, x22, :lo12:.LANCHOR0 + add x21, x20, :lo12:.LANCHOR0 bl ftl_get_new_free_page - ldr x1, [x29,120] - add x3, x20, 800 - ldr x6, [x29,128] - lsl x2, x1, 6 - ldr w7, [x29,136] - add x1, x3, x2 - ldr w5, [x1,32] - str w5, [x6] - str w23, [x6,4] - ldr w5, [x29,156] - str w5, [x6,8] - str w7, [x6,12] - str w0, [x1,40] + mov w6, w0 + ldr x0, [x29,144] + add x4, x21, 1312 + mov x1, x24 + str x6, [x29,104] + lsl x27, x0, 6 + str x4, [x29,112] + add x22, x4, x27 + add x5, x22, 32 + str x5, [x29,144] + ldr w0, [x22,32] + str w0, [x24] + str w23, [x24,4] + ldrb w2, [x21,3360] + ldr w0, [x29,172] + str w0, [x24,8] + sub w2, w2, #2 + ldr w0, [x29,152] + sbfiz x2, x2, 9, 32 + str w0, [x24,12] + add x2, x25, x2 + str wzr, [x1,16]! + mov w0, 2 + bl ftl_debug_info_fill + ldr x5, [x29,144] + ldr x4, [x29,112] + ldr w0, [x29,172] + str w0, [x5,12] mov w0, -1 - strb w0, [x3,x2] + ldrb w1, [x22,2] + strb w0, [x4,x27] mov w0, 10 - ldrb w2, [x1,2] - str w5, [x1,44] - orr w0, w2, w0 - strb w0, [x1,2] - ldrh w2, [x19,10] + ldr x6, [x29,104] + orr w0, w1, w0 + str w6, [x5,8] + strb w0, [x22,2] + ldrh w1, [x19,10] ldrh w0, [x19,12] - add w0, w2, w0 + add w0, w1, w0 + mov x1, x28 sub w0, w0, #1 - strh w0, [x1,48] - add x0, x25, 1544 - mov x1, x27 + strh w0, [x22,48] + ldr x0, [x29,120] bl buf_add_tail - ldrb w0, [x20,2873] + ldrb w0, [x21,3389] add w0, w0, 1 - strb w0, [x20,2873] + strb w0, [x21,3389] bl timer_get_time - str w0, [x25,1548] - ldrb w2, [x20,2873] + ldr x1, [x29,136] + ldrb w2, [x21,3389] + str w0, [x1,268] cmp w2, 2 - bhi .L3533 - ldrh w0, [x19,6] - cmp w0, 1 - bne .L3505 -.L3533: - ldrb w0, [x19,5] + adrp x0, .LANCHOR5 + bhi .L3695 + ldrh w1, [x19,6] + cmp w1, 1 + bne .L3667 +.L3695: + ldrb w1, [x19,5] mov w4, 2 - ldrb w5, [x25,1544] - mov w1, 0 - cmp w0, wzr - ldrh w0, [x19,6] + add x6, x20, :lo12:.LANCHOR0 + cmp w1, wzr + ldrh w1, [x19,6] csinc w4, w4, wzr, ne - mov w3, w5 - cmp w0, 1 - add x0, x22, :lo12:.LANCHOR0 + add x6, x6, 1312 + cmp w1, 1 + add x1, x0, :lo12:.LANCHOR5 csel w4, w4, w2, ne - add x0, x0, 800 -.L3537: + ldrb w5, [x1,264] + mov w1, 0 + mov w3, w5 +.L3699: cmp w1, w4 - beq .L3564 + beq .L3729 ubfiz x3, x3, 6, 8 add w1, w1, 1 - ldrb w3, [x0,x3] - b .L3537 -.L3564: - add x0, x22, :lo12:.LANCHOR0 + ldrb w3, [x6,x3] + b .L3699 +.L3729: + add x0, x0, :lo12:.LANCHOR5 uxtb w1, w1 sub w2, w2, w1 ubfiz x5, x5, 6, 8 - add x0, x0, 800 - strb w3, [x25,1544] - strb w2, [x0,2073] + strb w3, [x0,264] + add x0, x20, :lo12:.LANCHOR0 + add x0, x0, 1312 + strb w2, [x0,2077] add x0, x0, x5 bl sblk_prog_page ldrh w0, [x19,6] cmp w0, 1 - bne .L3505 + bne .L3667 bl sblk_wait_write_queue_completed bl ftl_write_completed mov x0, x19 bl ftl_write_last_log_page mov x0, x19 bl ftl_alloc_new_data_sblk -.L3505: - add x22, x22, :lo12:.LANCHOR0 - ldrb w19, [x22,2872] - cbnz w19, .L3503 +.L3667: + add x20, x20, :lo12:.LANCHOR0 + ldrb w19, [x20,3388] + cbnz w19, .L3665 bl ftl_write_completed mov w0, w19 -.L3561: +.L3726: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 160 + ldp x29, x30, [sp], 176 ret .size ftl_write_commit, .-ftl_write_commit .align 2 .global gc_do_copy_back .type gc_do_copy_back, %function gc_do_copy_back: - sub sp, sp, #208 - stp x29, x30, [sp,16] - add x29, sp, 16 - stp x19, x20, [sp,32] + stp x29, x30, [sp, -240]! + add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR3 + add x1, x21, :lo12:.LANCHOR3 + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] adrp x19, .LANCHOR0 - stp x21, x22, [sp,48] - add x21, x19, :lo12:.LANCHOR0 - stp x23, x24, [sp,64] - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - ldrb w0, [x21,3569] - ldr x22, [x21,608] - cbnz w0, .L3566 + add x22, x19, :lo12:.LANCHOR0 + ldrb w0, [x1,1265] + ldr x26, [x22,1120] + cbnz w0, .L3731 bl buf_alloc mov x20, x0 - cbz x0, .L3565 - ldrh w22, [x21,2938] + cbz x0, .L3730 + add x21, x22, 3424 + ldrh w22, [x22,3450] mov w0, w22 add w22, w22, 1 bl gc_get_src_ppa_from_index @@ -22947,769 +23875,901 @@ gc_do_copy_back: mov w23, w0 mov w1, 1 mov x0, x20 - strh w22, [x21,2938] + strh w22, [x21,26] bl sblk_read_page ldr w0, [x20,52] cmp w0, 512 - beq .L3643 + beq .L3816 cmn w0, #1 - bne .L3568 -.L3643: + bne .L3733 +.L3816: adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 864 - add x1, x1, 816 + mov w2, 1032 + add x1, x1, 992 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3568: +.L3733: ldr x0, [x20,24] ldr w21, [x0,4] mov w0, w21 bl lpa_hash_get_ppa - str w0, [x29,144] + str w0, [x29,192] cmn w0, #1 - bne .L3570 + bne .L3735 mov w0, w21 - add x1, x29, 144 + add x1, x29, 192 mov w2, 0 bl pm_log2phys -.L3570: - ldr w22, [x29,144] - cmp w22, w23 - bne .L3571 +.L3735: + ldr w2, [x29,192] + cmp w2, w23 + bne .L3736 add x1, x19, :lo12:.LANCHOR0 - add x0, x1, 800 - add x1, x1, 2848 -.L3574: - ldr w2, [x0,36] - cmp w2, w21 - bne .L3572 - ldrb w2, [x0,2] - tbz x2, 1, .L3572 + add x0, x1, 1312 + add x1, x1, 3360 +.L3739: + ldr w3, [x0,36] + cmp w3, w21 + bne .L3737 + ldrb w3, [x0,2] + tbz x3, 1, .L3737 mov x0, x20 + str x2, [x29,184] bl zbuf_free adrp x0, .LANCHOR2 + ldr x2, [x29,184] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3565 + tbz x0, 8, .L3730 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC301 + adrp x0, .LC294 mov w1, w21 - mov w2, w22 - add x0, x0, :lo12:.LC301 - ldrh w3, [x19,2938] + add x0, x0, :lo12:.LC294 + ldrh w3, [x19,3450] bl printk - b .L3565 -.L3572: + b .L3730 +.L3737: add x0, x0, 64 cmp x0, x1 - bne .L3574 - add x23, x19, :lo12:.LANCHOR0 - ldrb w1, [x20,2] + bne .L3739 + add x22, x19, :lo12:.LANCHOR0 str w21, [x20,36] strb wzr, [x20,57] - ldrb w0, [x23,2848] + ldrb w0, [x22,3360] strb w0, [x20,56] - mov w0, 10 - orr w0, w1, w0 - strb w0, [x20,2] ldr x0, [x20,24] - ldr w0, [x0] - str w0, [x20,32] + ldr w1, [x0] + str w1, [x20,32] + str wzr, [x0,16] adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3575 - ldr w2, [x29,144] + tbz x0, 8, .L3740 mov w0, w21 - str x2, [x29,136] + str x2, [x29,184] bl lpa_hash_get_ppa mov w3, w0 - ldr x2, [x29,136] - adrp x0, .LC302 - ldrh w5, [x23,2938] - add x0, x0, :lo12:.LC302 + ldr x2, [x29,184] + adrp x0, .LC295 + ldrh w5, [x22,3450] + add x0, x0, :lo12:.LC295 mov w1, w21 - mov w4, w22 + mov w4, w2 bl printk -.L3575: +.L3740: add x19, x19, :lo12:.LANCHOR0 mov x0, x20 bl ftl_gc_write_buf bl ftl_write_commit - ldr x1, [x19,2880] + ldr x1, [x19,3392] ldr w0, [x1,60] add w0, w0, 1 str w0, [x1,60] - ldrh w0, [x19,2940] + ldrh w0, [x19,3452] add w0, w0, 1 - strh w0, [x19,2940] - b .L3565 -.L3571: + strh w0, [x19,3452] + b .L3730 +.L3736: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3577 + tbz x0, 8, .L3742 mov w0, w21 add x19, x19, :lo12:.LANCHOR0 + str x2, [x29,184] bl lpa_hash_get_ppa mov w3, w0 - ldrh w5, [x19,2938] - adrp x0, .LC302 - add x0, x0, :lo12:.LC302 + ldr x2, [x29,184] + adrp x0, .LC295 + ldrh w5, [x19,3450] + add x0, x0, :lo12:.LC295 mov w1, w21 - mov w2, w22 mov w4, w23 bl printk -.L3577: +.L3742: mov x0, x20 bl zbuf_free - b .L3565 -.L3566: - ldrb w0, [x21,3553] - add x1, x21, 2912 - add x22, x22, 80 - cmp w0, 3 - bne .L3578 - ldrb w2, [x21,756] - cbz w2, .L3579 - ldrh w26, [x1,570] - adrp x1, .LANCHOR6 - ldrb w20, [x22,9] - add x1, x1, :lo12:.LANCHOR6 - sdiv w2, w26, w20 - ldrb w3, [x1,221] - uxth w27, w2 - cbz w3, .L3580 - adrp x0, .LANCHOR2 - mov w21, 2 - add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 2008 - ldrh w0, [x0,w2,sxtw 1] + b .L3730 +.L3731: + add x0, x26, 80 + str x0, [x29,184] + ldrb w1, [x1,1249] + mov w24, 1 + ldrb w0, [x0,9] + uxth w20, w0 + cmp w1, w20 + bhi .L3744 + cmp w20, 2 + mov w24, 2 + csel w24, w20, w24, ls +.L3744: + add x2, x21, :lo12:.LANCHOR3 + ldrb w3, [x2,1248] + cmp w3, 3 + bne .L3745 + add x1, x19, :lo12:.LANCHOR0 + ldrb w4, [x1,1268] + cbz w4, .L3746 + ldrh w22, [x1,5530] + ldrb w1, [x2,1868] + sdiv w0, w22, w0 + uxth w26, w0 + cbz w1, .L3747 + adrp x1, .LANCHOR2 + mov w23, 2 + add x1, x1, :lo12:.LANCHOR2 + add x1, x1, 2136 + ldrh w0, [x1,w0,sxtw 1] cmp w0, wzr - csinc w21, w21, wzr, ne - b .L3581 -.L3580: - ldrb w1, [x1,222] - mov w21, 1 - cbz w1, .L3581 - sub w1, w27, #62 - mov w21, 2 - uxth w1, w1 - cmp w1, 2159 - bhi .L3581 - udiv w0, w27, w0 + csinc w23, w23, wzr, ne + b .L3748 +.L3747: + adrp x0, .LANCHOR5+925 + mov w23, 1 + ldrb w0, [x0,#:lo12:.LANCHOR5+925] + cbz w0, .L3748 + sub w0, w26, #62 + mov w23, 2 + uxth w0, w0 + cmp w0, 2159 + bhi .L3748 + udiv w0, w26, w3 add w0, w0, w0, lsl 1 - sub w0, w27, w0 + sub w0, w26, w0 uxth w0, w0 cmp w0, wzr - csinc w21, w21, wzr, eq -.L3581: - msub w20, w27, w20, w26 - uxth w0, w20 - str w0, [x29,136] - b .L3584 -.L3579: - ldrb w2, [x21,3568] - cbz w2, .L3583 - ldrb w20, [x22,9] - mov w21, w0 - ldrh w26, [x1,570] - add w8, w20, w20, lsl 1 - sub w20, w20, w20, lsl 2 - sdiv w27, w26, w8 - madd w20, w27, w20, w26 - uxth w1, w20 - str w1, [x29,136] - b .L3584 -.L3583: - ldrh w20, [x1,570] + csinc w23, w23, wzr, eq +.L3748: + msub w20, w26, w20, w22 + uxth w20, w20 + b .L3751 +.L3746: + ldrb w2, [x2,1264] + cbz w2, .L3750 + ldrh w22, [x1,5530] + add w20, w0, w0, lsl 1 + mov w23, w3 + sdiv w20, w22, w20 + mul w0, w20, w0 + uxth w26, w20 + sub w0, w0, w0, lsl 2 + add w20, w22, w0 + ldrb w0, [x1,1269] + sdiv w20, w20, w3 + uxth w20, w20 + cbz w0, .L3751 + add w4, w26, w26, lsl 1 + uxth w26, w4 + b .L3751 +.L3750: + ldrh w5, [x1,5530] adrp x1, .LANCHOR2 - ldrb w9, [x22,9] add x1, x1, :lo12:.LANCHOR2 - add x1, x1, 3544 - mov w21, w0 - sdiv w2, w20, w9 - msub w20, w2, w9, w20 - ldrh w23, [x1,w2,sxtw 1] - uxth w1, w20 - lsr w27, w23, 3 - and w23, w23, 7 - str w1, [x29,136] - madd w9, w27, w9, w1 - cmp w23, 1 - add w9, w9, w9, lsl 1 - uxth w26, w9 - bne .L3585 - b .L3584 -.L3578: - ldrh w26, [x1,570] - ldrb w20, [x22,9] - ldrb w0, [x21,3554] - sdiv w27, w26, w20 - msub w20, w27, w20, w26 - cbnz w0, .L3586 - uxth w0, w20 - mov w21, 1 - str w0, [x29,136] - b .L3584 -.L3586: - uxth w0, w20 - mov w21, 2 - str w0, [x29,136] -.L3584: - adrp x0, .LANCHOR2 - mov w23, 0 - adrp x28, .LANCHOR6 - add x20, x0, :lo12:.LANCHOR2 - sxtw x2, w27 - adrp x4, .LANCHOR3 -.L3587: - ldrb w1, [x22,9] - mul w0, w21, w1 - cmp w23, w0 - bge .L3639 - add x0, x19, :lo12:.LANCHOR0 - add w24, w26, w23 - ldrh w0, [x0,3570] - mul w0, w0, w1 - sub w0, w0, #1 - cmp w24, w0 - bne .L3588 - add x0, x28, :lo12:.LANCHOR6 - ldrb w0, [x0,221] - cbz w0, .L3639 - add x0, x20, 2008 - ldrh w0, [x0,x2,lsl 1] - cmp w0, w27 - bcs .L3639 - tbz x23, 0, .L3639 -.L3588: - add x0, x4, :lo12:.LANCHOR3 - sbfiz x24, x24, 2, 32 - ldr x3, [x0,1432] - ldr w0, [x3,x24] - cmn w0, #1 - bne .L3589 - add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 2912 - ldrh w25, [x0,26] - ldrh w0, [x0,24] - cmp w0, w25 - bls .L3565 - add x0, x28, :lo12:.LANCHOR6 - ldrb w0, [x0,221] - cbz w0, .L3590 - add x0, x20, 2008 - ldrh w0, [x0,x2,lsl 1] - cmp w0, w27 - bcs .L3590 - tbz x23, 0, .L3590 - ubfiz x0, x0, 2, 16 - ldr w0, [x3,x0] - str w0, [x3,x24] - b .L3589 -.L3590: - mov w0, w25 - str x4, [x29,112] - str x2, [x29,120] - add w25, w25, 1 - str x3, [x29,128] - bl gc_get_src_ppa_from_index + mov w23, w3 + add x1, x1, 3672 + sdiv w2, w5, w0 + msub w20, w20, w2, w5 + ldrh w25, [x1,w2,sxtw 1] + uxth w20, w20 + lsr w26, w25, 3 + and w25, w25, 7 + madd w22, w26, w0, w20 + cmp w25, 1 + add w22, w22, w22, lsl 1 + uxth w22, w22 + bne .L3752 + b .L3751 +.L3745: + ldrb w1, [x2,1250] + cbnz w1, .L3753 add x1, x19, :lo12:.LANCHOR0 - ldr x3, [x29,128] - ldr x4, [x29,112] - ldr x2, [x29,120] - strh w25, [x1,2938] - str w0, [x3,x24] -.L3589: - add w23, w23, 1 - uxth w23, w23 - b .L3587 -.L3639: mov w23, 1 -.L3585: - adrp x24, .LANCHOR2 - str x24, [x29,120] - add x0, x24, :lo12:.LANCHOR2 - ldr w1, [x24,#:lo12:.LANCHOR2] - tbz x1, 8, .L3592 - adrp x1, .LANCHOR3+1432 - add x0, x0, 2008 - ubfiz x5, x26, 2, 16 - ldr w3, [x29,136] - mov w2, w23 - ldr x6, [x1,#:lo12:.LANCHOR3+1432] + ldrh w22, [x1,5530] + sdiv w26, w22, w0 + msub w20, w26, w20, w22 + uxth w20, w20 + b .L3751 +.L3753: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,w27,sxtw 1] - add x7, x6, x5 - ldrh w4, [x1,3482] - mov w1, w27 - str w0, [sp] - adrp x0, .LC303 - add x0, x0, :lo12:.LC303 - ldr w5, [x6,x5] - ldr w6, [x7,4] - mov w7, w26 - bl printk -.L3592: + mov w23, 2 + ldrh w22, [x1,5530] + sdiv w26, w22, w0 + msub w20, w26, w20, w22 + uxth w20, w20 +.L3751: + adrp x3, .LANCHOR5 + adrp x2, .LANCHOR2 + mul w7, w23, w24 + mov w28, 0 + mov x8, x3 + add x2, x2, :lo12:.LANCHOR2 + sxtw x5, w26 + add x6, x19, :lo12:.LANCHOR0 + b .L3754 +.L3885: + add x0, x2, 2136 + ldrh w0, [x0,x5,lsl 1] + cmp w0, w26 + bcs .L3814 + tbz x28, 0, .L3814 +.L3755: + add x0, x8, :lo12:.LANCHOR5 + sbfiz x25, x25, 2, 32 + ldr x1, [x0,152] + ldr w0, [x1,x25] + cmn w0, #1 + beq .L3884 +.L3758: + add w28, w28, 1 + uxth w28, w28 +.L3754: + cmp w28, w7 + bge .L3814 + add x1, x21, :lo12:.LANCHOR3 + ldr x4, [x29,184] + add w25, w22, w28 + ldrb w9, [x4,9] + ldrh w0, [x1,1266] + mul w0, w0, w9 + add x9, x3, :lo12:.LANCHOR5 + ldrb w9, [x9,929] + sub w0, w0, w9 + cmp w25, w0 + blt .L3755 + ldrb w0, [x1,1868] + cbnz w0, .L3885 +.L3814: + mov w25, 1 +.L3752: + mul w0, w23, w24 + str w0, [x29,168] + str wzr, [x29,152] + sub w0, w22, w0, lsl 1 + uxth w0, w0 + str w0, [x29,128] + ldrh w0, [x29,128] + str x0, [x29,120] adrp x0, .LC0 - mov w24, 0 add x0, x0, :lo12:.LC0 str x0, [x29,112] adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 816 + add x0, x0, 992 str x0, [x29,104] -.L3593: - ldrb w1, [x22,9] - mul w0, w21, w1 - cmp w24, w0 - bge .L3714 - add w25, w26, w24 - sxtw x0, w25 - str x0, [x29,128] - add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x29,128] - ldr x0, [x0,3560] + b .L3757 +.L3884: + ldrh w27, [x6,3450] + ldrh w0, [x6,3448] + cmp w0, w27 + bls .L3730 + add x0, x21, :lo12:.LANCHOR3 + ldrb w0, [x0,1868] + cbz w0, .L3759 + add x0, x2, 2136 + ldrh w0, [x0,x5,lsl 1] + cmp w0, w26 + bcs .L3759 + tbz x28, 0, .L3759 + ubfiz x0, x0, 2, 16 + ldr w0, [x1,x0] + str w0, [x1,x25] + b .L3758 +.L3759: + mov w0, w27 + str x6, [x29,128] + str x5, [x29,136] + add w27, w27, 1 + str x2, [x29,144] + str x8, [x29,152] + str x3, [x29,160] + str x1, [x29,168] + str x7, [x29,176] + bl gc_get_src_ppa_from_index + ldr x6, [x29,128] + ldr x1, [x29,168] + ldr x5, [x29,136] + strh w27, [x6,3450] + str w0, [x1,x25] + ldr x2, [x29,144] + ldr x8, [x29,152] + ldr x3, [x29,160] + ldr x7, [x29,176] + b .L3758 +.L3785: + ldr w0, [x29,160] + add w2, w22, w0 + sxtw x0, w2 + str x0, [x29,176] + add x0, x21, :lo12:.LANCHOR3 + ldr x1, [x29,176] + ldr x0, [x0,1256] ldrb w0, [x0,x1] cmp w0, 255 - bne .L3594 + beq .L3886 +.L3761: + add x5, x21, :lo12:.LANCHOR3 + ldr x2, [x29,176] + add x3, x29, 192 + add x6, x19, :lo12:.LANCHOR0 + add x1, x6, 1312 + ldr x0, [x5,1256] + ldrb w2, [x0,x2] + ldr w0, [x29,160] + add x1, x1, x2, lsl 6 + str x1, [x3,w0,sxtw 3] + mov w3, 2 + ldrb w0, [x5,1248] + strh w3, [x1,50] + adrp x3, .LANCHOR5 + strb w25, [x1,61] + cmp w0, 3 + bne .L3776 + ldrb w7, [x6,1268] + cbnz w7, .L3887 + ldrb w6, [x6,1269] + add x1, x1, 32 + udiv w0, w27, w0 + ldrh w7, [x5,1330] + cbz w6, .L3780 + add w6, w0, w20 + ldr x4, [x29,184] + add x6, x4, x6, sxtw 1 + ldrh w5, [x6,16] + add w0, w0, w0, lsl 1 + sub w0, w27, w0 + madd w5, w5, w7, w26 + add w0, w5, w0, uxth +.L3883: + str w0, [x1,8] + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 1312 + add x2, x0, x2, lsl 6 + add x0, x3, :lo12:.LANCHOR5 + ldr x1, [x0,160] + mov w0, 3 + ldrh w5, [x2,48] + udiv w0, w27, w0 + ldr w2, [x2,40] + add w0, w0, w0, lsl 1 + sub w0, w27, w0 + uxth w0, w0 + add w0, w0, 1 + orr w0, w2, w0, lsl 24 + str w0, [x1,x5,lsl 2] +.L3804: + add x1, x21, :lo12:.LANCHOR3 + ldrb w0, [x1,1868] + cbnz w0, .L3888 +.L3784: + ldr w0, [x29,152] + add w0, w0, 1 + str w0, [x29,152] +.L3757: + ldr w0, [x29,152] + ldr w1, [x29,168] + and w0, w0, 65535 + str w0, [x29,160] + cmp w0, w1 + ldrh w27, [x29,152] + blt .L3785 + b .L3889 +.L3886: mov w0, 0 + str x2, [x29,144] bl buf_alloc - mov x20, x0 - cbnz x0, .L3595 + mov x28, x0 + ldr x2, [x29,144] + cbnz x0, .L3762 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed bl gc_free_temp_buf - mov w0, w20 + mov w0, w28 bl buf_alloc - mov x20, x0 - cbz x0, .L3565 -.L3595: + mov x28, x0 + ldr x2, [x29,144] + cbz x0, .L3730 +.L3762: + add x1, x21, :lo12:.LANCHOR3 + ldr x3, [x29,176] + ldrb w5, [x28,1] + ldr x0, [x1,1256] + strb w5, [x0,x3] add x0, x19, :lo12:.LANCHOR0 - ldr x3, [x29,128] - ldrb w2, [x20,1] - ldr x1, [x0,3560] - strb w2, [x1,x3] - strh w25, [x20,48] - ldrb w1, [x0,2919] - strb w23, [x20,61] - add w1, w1, 1 - strb w1, [x0,2919] - ldrh w0, [x0,3570] - ldrb w1, [x22,9] - mul w0, w0, w1 - sub w0, w0, #1 - cmp w25, w0 - adrp x25, .LANCHOR3 - bne .L3596 - adrp x1, .LANCHOR6 - add x0, x1, :lo12:.LANCHOR6 - mov x6, x1 - ldrb w0, [x0,221] - cbz w0, .L3597 - ldr x0, [x29,120] + ldr x3, [x29,184] + strb w25, [x28,61] + ldrb w5, [x0,3431] + add w5, w5, 1 + strb w5, [x0,3431] + add w0, w27, w22 + strh w0, [x28,48] + ldrh w0, [x1,1266] + ldrb w5, [x3,9] + mul w0, w0, w5 + adrp x5, .LANCHOR5 + str x5, [x29,144] + add x6, x5, :lo12:.LANCHOR5 + ldrb w6, [x6,929] + sub w0, w0, w6 + cmp w2, w0 + blt .L3763 + ldrb w0, [x1,1868] + cbz w0, .L3764 + adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 2008 - ldrh w0, [x0,w27,sxtw 1] - cmp w0, w27 - bcs .L3597 - tbnz x24, 0, .L3596 -.L3597: - add x5, x25, :lo12:.LANCHOR3 - ldr x2, [x29,128] - add x28, x19, :lo12:.LANCHOR0 + add x0, x0, 2136 + ldrh w0, [x0,w26,sxtw 1] + cmp w0, w26 + bcs .L3764 + tbnz x27, 0, .L3763 +.L3764: + ldr x0, [x29,144] mov w1, -1 + ldr x3, [x29,176] + add x5, x21, :lo12:.LANCHOR3 + add x6, x0, :lo12:.LANCHOR5 + ldr x0, [x6,144] + str w1, [x0,x3,lsl 2] + ldrb w0, [x6,929] + cmp w0, 2 + ldrh w0, [x5,1266] + bne .L3765 + ldr x1, [x29,184] + ldrb w1, [x1,9] + mul w1, w0, w1 + sub w1, w1, #2 + cmp w2, w1 + ldrh w2, [x6,926] + bne .L3766 + ldr x1, [x6,144] + ldr x0, [x28,8] str x6, [x29,96] - ldr x0, [x5,1424] - str w1, [x0,x2,lsl 2] - ldrh w0, [x28,3570] - ldrb w2, [x28,3572] - ldr x1, [x5,1424] - mul w2, w0, w2 - ldr x0, [x20,8] - lsl w2, w2, 2 bl ftl_memcpy - ldrb w1, [x28,3572] - ldrh w0, [x28,3570] - ldr x6, [x29,96] - mul w0, w0, w1 - add x1, x6, :lo12:.LANCHOR6 - lsl w2, w0, 2 - ldrb w1, [x1,222] - cbz w1, .L3598 - ldrb w1, [x28,2848] - lsl w1, w1, 9 - sub w2, w1, w2 -.L3598: - add x25, x25, :lo12:.LANCHOR3 - ldr x1, [x20,8] - add x0, x1, x0, sxtw 2 - ldr x1, [x25,1432] - add x25, x19, :lo12:.LANCHOR0 - bl ftl_memcpy - ldrb w2, [x25,2848] + add x5, x19, :lo12:.LANCHOR0 + ldr x0, [x28,24] mov w1, 0 - ldr x0, [x20,24] + str x5, [x29,136] + ldrb w2, [x5,3360] lsl w2, w2, 1 bl ftl_memset - ldr x1, [x20,24] + ldr x1, [x28,24] + mov w0, 15555 + ldr x6, [x29,96] + movk w0, 0xf55f, lsl 16 + str w0, [x1] + ldr x2, [x28,24] + ldrh w1, [x6,926] + ldr x0, [x28,8] + str x2, [x29,144] + bl js_hash + ldr x2, [x29,144] + ldr x5, [x29,136] + str w0, [x2,4] + ldr x1, [x5,1120] + ldr x0, [x28,24] + ldr w1, [x1,132] + str w1, [x0,8] + ldr x0, [x28,24] + str wzr, [x0,12] + b .L3767 +.L3766: + ldrb w5, [x5,1249] + ldr x1, [x6,144] + mul w5, w0, w5 + ldr x0, [x28,8] + lsl w5, w5, 2 + sub w5, w5, w2 + and x2, x2, 65532 + add x1, x1, x2 + mov w2, w5 + str x5, [x29,96] + bl ftl_memcpy + add x6, x19, :lo12:.LANCHOR0 + ldr x0, [x28,24] + mov w1, 0 + str x6, [x29,136] + ldrb w2, [x6,3360] + lsl w2, w2, 1 + bl ftl_memset + ldr x1, [x28,24] + mov w0, 15555 + movk w0, 0xf55f, lsl 16 + ldr x5, [x29,96] + str w0, [x1] + mov w1, w5 + ldr x2, [x28,24] + ldr x0, [x28,8] + str x2, [x29,144] + bl js_hash + ldr x2, [x29,144] + ldr x6, [x29,136] + str w0, [x2,4] + ldr x1, [x6,1120] + ldr x0, [x28,24] + ldr w1, [x1,132] + str w1, [x0,8] + mov w1, 1 + ldr x0, [x28,24] + str w1, [x0,12] + b .L3767 +.L3765: + ldrb w2, [x5,1249] + ldr x1, [x6,144] + str x5, [x29,96] + mul w2, w0, w2 + ldr x0, [x28,8] + lsl w2, w2, 2 + str x6, [x29,136] + bl ftl_memcpy + ldr x5, [x29,96] + ldr x6, [x29,136] + ldrb w1, [x5,1249] + ldrh w0, [x5,1266] + mul w0, w0, w1 + add x1, x19, :lo12:.LANCHOR0 + lsl w2, w0, 2 + ldrb w1, [x1,3360] + cmp w1, w0, lsr 6 + bge .L3768 + ldrh w1, [x6,926] + sub w2, w1, w2 +.L3768: + ldr x1, [x29,144] + ldr x5, [x28,8] + add x0, x5, x0, sxtw 2 + add x1, x1, :lo12:.LANCHOR5 + ldr x1, [x1,152] + bl ftl_memcpy + add x5, x19, :lo12:.LANCHOR0 + ldr x0, [x28,24] + mov w1, 0 + str x5, [x29,136] + ldrb w2, [x5,3360] + lsl w2, w2, 1 + bl ftl_memset + ldr x1, [x28,24] mov w0, 15555 movk w0, 0xf55f, lsl 16 str w0, [x1] - ldrh w0, [x25,3570] - ldrb w1, [x25,3572] - ldr x28, [x20,24] + add x1, x21, :lo12:.LANCHOR3 + ldr x2, [x28,24] + ldrh w0, [x1,1266] + ldrb w1, [x1,1249] + str x2, [x29,144] mul w1, w0, w1 - ldr x0, [x20,8] + ldr x0, [x28,8] lsl w1, w1, 2 bl js_hash - str w0, [x28,4] - ldr x1, [x25,608] - ldr x0, [x20,24] + ldr x2, [x29,144] + ldr x5, [x29,136] + str w0, [x2,4] + ldr x1, [x5,1120] + ldr x0, [x28,24] ldr w1, [x1,132] - b .L3710 -.L3596: - ldr x0, [x29,128] + b .L3879 +.L3763: + ldr x0, [x29,176] + lsl x0, x0, 2 + str x0, [x29,136] + ldr x0, [x29,144] + ldr x1, [x29,136] + add x0, x0, :lo12:.LANCHOR5 + ldr x0, [x0,152] + ldr w0, [x0,x1] mov w1, 1 - lsl x28, x0, 2 - add x0, x25, :lo12:.LANCHOR3 - ldr x0, [x0,1432] - ldr w0, [x0,x28] - str w0, [x20,40] - mov x0, x20 + str w0, [x28,40] + mov x0, x28 bl sblk_read_page - ldr w0, [x20,52] + ldr w0, [x28,52] cmp w0, 512 - beq .L3599 + beq .L3769 cmn w0, #1 - bne .L3600 -.L3599: - add x5, x19, :lo12:.LANCHOR0 + bne .L3770 +.L3769: + add x1, x19, :lo12:.LANCHOR0 + add x5, x21, :lo12:.LANCHOR3 + ldrb w2, [x1,1257] mov w1, 24 - ldrb w2, [x5,744] - ldrh w0, [x5,3536] + ldrh w0, [x5,1232] sub w2, w1, w2 mov w1, 1 sub w2, w2, w0 lsl w2, w1, w2 - ldr w1, [x20,40] + ldr w1, [x28,40] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x5,3538] + ldrb w1, [x5,1234] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump - ldr w0, [x20,52] + ldr w0, [x28,52] cmp w0, 512 - beq .L3644 + beq .L3817 cmn w0, #1 - bne .L3600 -.L3644: - ldr x0, [x20,24] + bne .L3770 +.L3817: + ldr x0, [x28,24] mov w1, -1 str w1, [x0,4] -.L3600: - ldr w0, [x20,52] +.L3770: + ldr w0, [x28,52] cmp w0, 512 - beq .L3645 + beq .L3818 cmn w0, #1 - bne .L3603 -.L3645: + bne .L3773 +.L3818: ldr x1, [x29,104] - mov w2, 1003 + mov w2, 1223 ldr x0, [x29,112] bl printk bl dump_stack -.L3603: - ldr x1, [x20,24] +.L3773: + ldr x1, [x28,24] add x0, x19, :lo12:.LANCHOR0 ldr w2, [x1,4] - ldr w0, [x0,2856] + ldr w0, [x0,3372] cmp w2, w0 - bcc .L3605 + bcc .L3775 mov w0, -1 str w0, [x1,4] -.L3605: - ldr x0, [x20,24] - add x25, x25, :lo12:.LANCHOR3 +.L3775: + ldr x0, [x28,24] + ldr x2, [x29,136] ldr w1, [x0,4] - ldr x0, [x25,1424] - str w1, [x0,x28] - ldr x0, [x20,24] - ldr w1, [x20,40] -.L3710: + ldr x0, [x29,144] + add x0, x0, :lo12:.LANCHOR5 + ldr x0, [x0,144] + str w1, [x0,x2] + ldr x0, [x28,24] + ldr w1, [x28,40] +.L3879: str w1, [x0,8] -.L3594: - add x1, x19, :lo12:.LANCHOR0 - ldr x3, [x29,128] - add x2, x1, 800 - mov w5, 2 - sxtw x7, w24 - adrp x6, .LANCHOR6 - ldr x0, [x1,3560] - ldrb w3, [x0,x3] - add x0, x29, 144 - add x2, x2, x3, lsl 6 - str x2, [x0,w24,sxtw 3] - ldrb w0, [x1,3553] - strh w5, [x2,50] - cmp w0, 3 - strb w23, [x2,61] - adrp x5, .LANCHOR3 - bne .L3606 - ldrb w10, [x1,756] - cbz w10, .L3607 - add x1, x6, :lo12:.LANCHOR6 - and w2, w24, 1 - add w0, w27, w2 - ldrb w1, [x1,221] - cbz w1, .L3608 - ldr x1, [x29,120] +.L3767: + ldr x0, [x28,24] + str wzr, [x0,16] + b .L3761 +.L3887: + ldrb w1, [x5,1868] + and w6, w27, 1 + add w0, w26, w6 + cbz w1, .L3778 + adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - add x1, x1, 2008 - ldrh w1, [x1,w27,sxtw 1] - cbz w2, .L3608 - cmp w1, w27 + add x1, x1, 2136 + ldrh w1, [x1,w26,sxtw 1] + cbz w6, .L3778 + cmp w1, w26 csel w0, w0, w1, cs -.L3608: - add x2, x19, :lo12:.LANCHOR0 - ldr w4, [x29,136] - udiv w1, w24, w21 - add x10, x2, x3, lsl 6 - add w1, w1, w4 - ldrh w2, [x2,3634] - add x1, x22, x1, sxtw 1 +.L3778: + add x6, x21, :lo12:.LANCHOR3 + ldr x4, [x29,184] + udiv w1, w27, w23 + add x5, x19, :lo12:.LANCHOR0 + add x5, x5, x2, lsl 6 + add w1, w1, w20 + ldrh w6, [x6,1330] + add x1, x4, x1, sxtw 1 ldrh w1, [x1,16] - madd w0, w1, w2, w0 + madd w0, w1, w6, w0 orr w0, w0, 50331648 - str w0, [x10,840] - b .L3609 -.L3607: - udiv w0, w24, w0 - ldr w3, [x29,136] - ldrh w1, [x1,3634] - add w3, w0, w3 - add x3, x22, x3, sxtw 1 - ldrh w3, [x3,16] - ldrh w10, [x2,48] - mul w1, w3, w1 - add x3, x5, :lo12:.LANCHOR3 - add w0, w0, w0, lsl 1 - orr w1, w1, w27 - sub w0, w24, w0 - str w1, [x2,40] - ldr x2, [x3,1440] - uxth w0, w0 - add w0, w0, 1 - orr w0, w1, w0, lsl 24 - str w0, [x2,x10,lsl 2] - b .L3610 -.L3606: + str w0, [x5,1352] + b .L3779 +.L3780: + add w0, w0, w20 + ldr x4, [x29,184] + add x0, x4, x0, sxtw 1 + ldrh w5, [x0,16] + madd w0, w5, w7, w26 + b .L3883 +.L3776: cmp w0, 2 - bne .L3609 - ldrb w10, [x1,3554] - add x2, x2, 32 - ldrh w0, [x1,3634] - ldr w1, [x29,136] - cbnz w10, .L3612 - add w1, w24, w1 - add x1, x22, x1, sxtw 1 - ldrh w1, [x1,16] - madd w0, w1, w0, w27 - b .L3711 -.L3612: - add w1, w1, w24, lsr 1 - add x1, x22, x1, sxtw 1 - ldrh w1, [x1,16] - madd w0, w1, w0, w27 - and w1, w24, 1 - add w0, w0, w1 -.L3711: + bne .L3779 + ldrb w6, [x5,1250] + add x1, x1, 32 + ldrh w0, [x5,1330] + cbnz w6, .L3783 + ldr w4, [x29,160] + add w5, w4, w20 + ldr x4, [x29,184] + add x5, x4, x5, sxtw 1 + ldrh w5, [x5,16] + madd w0, w5, w0, w26 + b .L3880 +.L3783: + add w5, w20, w27, lsr 1 + ldr x4, [x29,184] + add x5, x4, x5, sxtw 1 + ldrh w5, [x5,16] + madd w0, w5, w0, w26 + and w5, w27, 1 + add w0, w0, w5 +.L3880: orr w0, w0, 33554432 - str w0, [x2,8] -.L3609: + str w0, [x1,8] +.L3779: add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 800 - add x3, x0, x3, lsl 6 - add x0, x5, :lo12:.LANCHOR3 - ldrh w1, [x3,48] - ldr x0, [x0,1440] - ldr w2, [x3,40] - str w2, [x0,x1,lsl 2] -.L3610: - add x6, x6, :lo12:.LANCHOR6 - ldrb w0, [x6,221] - cbz w0, .L3613 - ldr x0, [x29,120] + add x0, x0, 1312 + add x2, x0, x2, lsl 6 + add x0, x3, :lo12:.LANCHOR5 + ldrh w1, [x2,48] + ldr x0, [x0,160] + ldr w5, [x2,40] + str w5, [x0,x1,lsl 2] + b .L3804 +.L3888: + adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 2008 - ldrh w0, [x0,w27,sxtw 1] - cmp w0, w27 - bcs .L3613 - tbz x24, 0, .L3613 - add x1, x19, :lo12:.LANCHOR0 - ldr x3, [x29,128] + add x0, x0, 2136 + ldrh w0, [x0,w26,sxtw 1] + cmp w0, w26 + bcs .L3784 + tbz x27, 0, .L3784 + ldr x0, [x1,1256] mov w2, -1 - add x5, x5, :lo12:.LANCHOR3 - ldr x0, [x1,3560] - strb w2, [x0,x3] - add x0, x29, 144 - ldr x1, [x1,3560] - ldr x2, [x0,x7,lsl 3] - ldrb w0, [x22,9] - mul w0, w21, w0 - sub w0, w26, w0, lsl 1 - uxth w0, w0 - strh w0, [x2,48] - ldrb w2, [x2,1] - uxth x0, w0 - strb w2, [x1,x0] + ldr x4, [x29,176] + add x3, x3, :lo12:.LANCHOR5 + strb w2, [x0,x4] + add x2, x29, 192 + ldr w0, [x29,160] + ldr x0, [x2,w0,sxtw 3] + ldrh w2, [x29,128] + strh w2, [x0,48] + ldrb w2, [x0,1] + ldr x0, [x1,1256] + ldr x1, [x29,120] + strb w2, [x0,x1] mov w1, -1 - ldr x0, [x5,1432] - str w1, [x0,x3,lsl 2] -.L3613: - add w4, w24, 1 - uxth w24, w4 - b .L3593 -.L3714: - add x3, x19, :lo12:.LANCHOR0 - ldrb w0, [x3,3553] + ldr x0, [x3,152] + str w1, [x0,x4,lsl 2] + b .L3784 +.L3889: + add x1, x21, :lo12:.LANCHOR3 + ldrb w0, [x1,1248] cmp w0, 3 - add x0, x29, 144 - bne .L3615 - ldrb w2, [x3,756] - cbz w2, .L3715 + add x0, x29, 192 + bne .L3786 + add x2, x19, :lo12:.LANCHOR0 + ldrb w2, [x2,1268] + cbz w2, .L3787 + ldr w1, [x29,168] + sub w2, w1, #1 mov w1, 0 -.L3616: - ldrb w2, [x22,9] - mul w2, w2, w21 - sub w2, w2, #1 +.L3788: cmp w1, w2 - bge .L3716 - ldr x2, [x0,w1,sxtw 3] - add w1, w1, 1 + bge .L3882 ldr x3, [x0,w1,sxtw 3] + add w1, w1, 1 + ldr x5, [x0,w1,sxtw 3] uxth w1, w1 - ldrb w3, [x3,1] - strb w3, [x2] - b .L3616 -.L3716: - ldr x0, [x0,w2,sxtw 3] - b .L3713 -.L3715: - ldrb w1, [x3,3568] - cbnz w1, .L3712 - cmp w23, 1 + ldrb w5, [x5,1] + strb w5, [x3] + b .L3788 +.L3787: + ldrb w1, [x1,1264] + cbnz w1, .L3881 + cmp w25, 1 mov w2, 9 - beq .L3712 - cmp w23, 2 - bne .L3623 + beq .L3881 + cmp w25, 2 + bne .L3794 mov w2, 13 -.L3712: - ldr x1, [x29,144] +.L3881: + ldr x1, [x29,192] strb w2, [x1,60] - b .L3622 -.L3623: - ldr x2, [x29,144] + b .L3793 +.L3794: + ldr x2, [x29,192] strb w1, [x2,60] -.L3622: - ldrb w2, [x22,9] +.L3793: add x1, x0, 24 + mov w2, w24 bl sblk_xlc_prog_pages - b .L3619 -.L3615: - ldrb w2, [x3,3554] - cbz w2, .L3687 - ldrb w3, [x3,3555] - mov w2, 0 - cbz w3, .L3687 + b .L3790 +.L3786: + ldrb w2, [x1,1250] + cbz w2, .L3795 + ldrb w1, [x1,1251] + cbnz w1, .L3796 +.L3795: + ldr w1, [x29,168] + sub w2, w1, #1 + mov w1, 0 + b .L3797 +.L3796: + mov w1, w24 bl sblk_3d_mlc_prog_pages - b .L3619 -.L3687: - ldrb w1, [x22,9] - mul w1, w1, w21 - sub w1, w1, #1 - cmp w2, w1 - bge .L3717 - ldr x1, [x0,w2,sxtw 3] - add w2, w2, 1 - ldr x3, [x0,w2,sxtw 3] - uxth w2, w2 - ldrb w3, [x3,1] - strb w3, [x1] - b .L3687 -.L3717: - ldr x0, [x0,w1,sxtw 3] -.L3713: + b .L3790 +.L3797: + cmp w1, w2 + bge .L3882 + ldr x3, [x0,w1,sxtw 3] + add w1, w1, 1 + ldr x5, [x0,w1,sxtw 3] + uxth w1, w1 + ldrb w5, [x5,1] + strb w5, [x3] + b .L3797 +.L3882: + ldr x0, [x0,w2,sxtw 3] mov w1, -1 strb w1, [x0] - ldrb w1, [x22,9] - ldr x0, [x29,144] - mul w1, w21, w1 + ldr x0, [x29,192] + ldrb w1, [x29,168] bl sblk_prog_page -.L3619: +.L3790: + add x1, x21, :lo12:.LANCHOR3 + ldrb w0, [x1,1264] + cbz w0, .L3799 + add w0, w24, w24, lsl 1 + b .L3800 +.L3799: + ldrb w0, [x1,1250] + cbz w0, .L3801 + lsl w0, w24, 1 + b .L3800 +.L3801: add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,3568] - cbz w1, .L3626 - ldrb w21, [x22,9] - add w21, w21, w21, lsl 1 - and w21, w21, 1023 - b .L3627 -.L3626: - ldrb w1, [x0,3554] - cbz w1, .L3628 - ldrb w21, [x22,9] - ubfiz w21, w21, 1, 8 - b .L3627 -.L3628: - ldrb w0, [x0,756] - cbz w0, .L3629 - ldrb w0, [x22,9] - adrp x1, .LANCHOR6+221 - mul w21, w21, w0 - ldrb w1, [x1,#:lo12:.LANCHOR6+221] - uxth w21, w21 - cbz w1, .L3627 - ldr x1, [x29,120] - add x24, x1, :lo12:.LANCHOR2 - add x24, x24, 2008 - ldrh w1, [x24,w27,sxtw 1] - cmp w1, w27 - csel w21, w21, w0, cs - b .L3627 -.L3629: - ldrb w21, [x22,9] -.L3627: + ldrb w2, [x0,1268] + mov w0, w24 + cbz w2, .L3800 + ldrb w1, [x1,1868] + ldrh w0, [x29,168] + cbz w1, .L3800 + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + add x1, x1, 2136 + ldrh w1, [x1,w26,sxtw 1] + cmp w1, w26 + csel w0, w0, w24, cs +.L3800: add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2880] - ldr w0, [x1,52] - add w0, w0, w21 - str w0, [x1,52] - ldrh w0, [x19,3482] - add w21, w21, w0 - ldrh w0, [x19,3570] - uxth w21, w21 - strh w21, [x19,3482] - ldrb w1, [x22,9] - mul w0, w0, w1 - cmp w21, w0 - blt .L3630 - ldr x0, [x19,608] + add x21, x21, :lo12:.LANCHOR3 + ldr x2, [x19,3392] + ldr w1, [x2,52] + add w1, w1, w0 + str w1, [x2,52] + ldr x2, [x29,184] + ldrh w1, [x19,5530] + add w0, w0, w1 + ldrh w1, [x21,1266] + uxth w0, w0 + strh w0, [x19,5530] + ldrb w2, [x2,9] + mul w1, w1, w2 + cmp w0, w1 + blt .L3802 + ldr x0, [x19,1120] strh wzr, [x0,86] -.L3630: +.L3802: bl gc_write_completed -.L3565: - sub sp, x29, #16 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x27, x28, [sp,96] - ldp x29, x30, [sp,16] - add sp, sp, 208 +.L3730: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 240 ret .size gc_do_copy_back, .-gc_do_copy_back .align 2 @@ -23721,1234 +24781,1390 @@ zftl_do_gc: add x29, sp, 16 stp x19, x20, [sp,32] adrp x19, .LANCHOR0 - add x1, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR5 stp x25, x26, [sp,80] + mov w26, w0 + add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,48] stp x23, x24, [sp,64] stp x27, x28, [sp,96] - mov w26, w0 - ldrh w20, [x1,2860] cmp w26, 1 - ldrh w0, [x1,2864] - ldr x22, [x1,608] - add w20, w0, w20 - ldrh w21, [x1,2862] - uxth w20, w20 - bne .L3719 - adrp x23, .LANCHOR6 - add x1, x23, :lo12:.LANCHOR6 - ldr w24, [x1,256] - cbnz w24, .L3720 - ldr w1, [x1,260] - cbz w1, .L3719 -.L3720: - add x1, x19, :lo12:.LANCHOR0 - ldrh w2, [x1,3602] - cmp w20, w2, lsr 2 - bls .L3719 - ldrh w1, [x1,2888] - cmp w1, w20 - bcs .L3719 - add w24, w24, 20 - bl timer_get_time - cmp w24, w0 - bcs .L3721 - add x0, x23, :lo12:.LANCHOR6 - str wzr, [x0,256] -.L3721: - add x19, x23, :lo12:.LANCHOR6 - ldr w20, [x19,260] - bl timer_get_time - add w20, w20, 20 - cmp w20, w0 - bcs .L3913 - str wzr, [x19,260] - b .L3913 -.L3719: - adrp x23, .LANCHOR3 - add x1, x23, :lo12:.LANCHOR3 - ldrb w2, [x1,1418] + ldrh w23, [x0,3380] + ldrh w22, [x0,3376] + ldr x24, [x0,1120] + add w22, w23, w22 + ldrh w25, [x0,3378] + uxth w22, w22 + beq .L3891 +.L3902: + add x0, x20, :lo12:.LANCHOR5 mov w1, 16 + ldrb w2, [x0,130] cmp w2, 6 - bhi .L3884 - adrp x1, .L3725 - add x1, x1, :lo12:.L3725 - ldrh w1, [x1,w2,uxtw #1] - adr x2, .Lrtx3725 - add x1, x2, w1, sxth #2 - br x1 -.Lrtx3725: + bhi .L4083 + adrp x0, .L3894 + add x0, x0, :lo12:.L3894 + ldrh w0, [x0,w2,uxtw #1] + adr x1, .Lrtx3894 + add x0, x1, w0, sxth #2 + br x0 +.Lrtx3894: .section .rodata .align 0 .align 2 -.L3725: - .2byte (.L3724 - .Lrtx3725) / 4 - .2byte (.L3726 - .Lrtx3725) / 4 - .2byte (.L3727 - .Lrtx3725) / 4 - .2byte (.L3728 - .Lrtx3725) / 4 - .2byte (.L3729 - .Lrtx3725) / 4 - .2byte (.L3838 - .Lrtx3725) / 4 - .2byte (.L3731 - .Lrtx3725) / 4 +.L3894: + .2byte (.L3893 - .Lrtx3894) / 4 + .2byte (.L3895 - .Lrtx3894) / 4 + .2byte (.L3896 - .Lrtx3894) / 4 + .2byte (.L3897 - .Lrtx3894) / 4 + .2byte (.L3898 - .Lrtx3894) / 4 + .2byte (.L4018 - .Lrtx3894) / 4 + .2byte (.L3900 - .Lrtx3894) / 4 .text -.L3724: - add w21, w21, w0 +.L3891: + add x0, x20, :lo12:.LANCHOR5 + ldr w21, [x0,932] + cbnz w21, .L3901 + ldr w0, [x0,936] + cbz w0, .L3902 +.L3901: + adrp x0, .LANCHOR3+1298 + ldrh w0, [x0,#:lo12:.LANCHOR3+1298] + cmp w22, w0, lsr 2 + bls .L3902 add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x22,80] - uxth w21, w21 - ldrh w1, [x0,2866] - ldrh w25, [x0,2868] - add w25, w25, w1 - mov w1, 65535 - cmp w2, w1 + ldrh w0, [x0,3400] + cmp w0, w22 + bcs .L3902 + add w21, w21, 20 + bl timer_get_time + cmp w21, w0 + bcs .L3903 + add x0, x20, :lo12:.LANCHOR5 + str wzr, [x0,932] +.L3903: + add x27, x20, :lo12:.LANCHOR5 + ldr w21, [x27,936] + bl timer_get_time + add w21, w21, 20 + cmp w21, w0 + bcs .L3904 + str wzr, [x27,936] +.L3904: + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,1120] + ldrh w0, [x0,124] + cbz w0, .L4121 + b .L3902 +.L3893: + add x21, x19, :lo12:.LANCHOR0 + add w23, w25, w23 + ldrh w1, [x24,80] + uxth w23, w23 + ldrh w0, [x21,3382] + ldrh w25, [x21,3384] + add w25, w25, w0 + mov w0, 65535 + cmp w1, w0 uxth w25, w25 - beq .L3732 - cbnz w26, .L3733 - ldrh w0, [x0,2888] - cmp w20, w0, lsl 1 - bge .L3913 -.L3733: - add x24, x19, :lo12:.LANCHOR0 + beq .L3905 + cbnz w26, .L3906 + ldrh w0, [x21,3400] + cmp w22, w0, lsl 1 + bge .L4121 +.L3906: + adrp x21, .LANCHOR3 mov w1, 5 - ldrh w0, [x24,3600] + add x26, x21, :lo12:.LANCHOR3 + ldrh w0, [x26,1296] add w0, w0, 1 uxth w0, w0 - strh w0, [x24,3600] + strh w0, [x26,1296] bl zftl_get_gc_node uxth w2, w0 mov w1, 65535 cmp w2, w1 - beq .L3735 - add x3, x23, :lo12:.LANCHOR3 + beq .L3908 + add x3, x20, :lo12:.LANCHOR5 ubfiz x2, x2, 1, 16 - ldr w1, [x3,1420] + ldr w1, [x3,132] add w1, w1, 1 - str w1, [x3,1420] - ldr x3, [x24,600] - ldrh w2, [x3,x2] - ldrh w3, [x24,3596] - cmp w3, w2 - bcs .L3736 - ldrh w3, [x24,576] - cmp w1, w3, lsr 4 - bls .L3735 - ldrh w1, [x24,2890] + str w1, [x3,132] + add x3, x19, :lo12:.LANCHOR0 + ldr x4, [x3,1112] + ldrh w2, [x4,x2] + ldrh w4, [x26,1294] + cmp w4, w2 + bcs .L3909 + ldrh w4, [x3,1088] + cmp w1, w4, lsr 4 + bls .L3908 + ldrh w1, [x3,3402] cmp w1, w2 - bls .L3735 -.L3736: - add x2, x19, :lo12:.LANCHOR0 + bls .L3908 +.L3909: + add x2, x21, :lo12:.LANCHOR3 mov w1, 0 - ldrb w2, [x2,3569] + ldrb w2, [x2,1265] bl gc_add_sblk - cbz w0, .L3737 - add x23, x23, :lo12:.LANCHOR3 + cbz w0, .L3910 + add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - str wzr, [x23,1420] - strb w0, [x23,1418] - b .L3913 -.L3735: - add x0, x19, :lo12:.LANCHOR0 - strh wzr, [x0,3600] -.L3737: - cmp w21, 15 - mov w24, 2 - bls .L3738 - cbz w25, .L3840 - add x0, x19, :lo12:.LANCHOR0 - mov w24, 1 - ldrh w1, [x0,2870] - ldrh w0, [x0,3604] + str wzr, [x20,132] + strb w0, [x20,130] + b .L4121 +.L3908: + add x0, x21, :lo12:.LANCHOR3 + strh wzr, [x0,1296] +.L3910: + cmp w23, 15 + mov w26, 2 + bls .L3911 + cbz w25, .L4020 + add x1, x19, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR3 + mov w26, 1 + ldrh w1, [x1,3386] + ldrh w0, [x0,1300] cmp w1, w0 - bls .L3738 -.L3840: - mov w24, 2 -.L3738: + bls .L3911 +.L4020: + mov w26, 2 +.L3911: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3739 - add x1, x19, :lo12:.LANCHOR0 - mov w3, w20 - mov w4, w21 - ldr x0, [x1,608] - ldrb w2, [x1,3569] - mov w1, 2171 + tbz x0, 8, .L3912 + add x19, x19, :lo12:.LANCHOR0 + add x1, x21, :lo12:.LANCHOR3 + mov w3, w22 + mov w4, w23 + ldr x0, [x19,1120] + ldrb w2, [x1,1265] + mov w1, 2662 ldrh w5, [x0,124] ldrh w6, [x0,120] ldrh w7, [x0,122] - ldrh w0, [x22,80] + ldrh w0, [x24,80] str w0, [sp] - adrp x0, .LC304 - add x0, x0, :lo12:.LC304 + adrp x0, .LC296 + add x0, x0, :lo12:.LC296 bl printk -.L3739: - add x19, x19, :lo12:.LANCHOR0 - mov w1, w24 +.L3912: + add x21, x21, :lo12:.LANCHOR3 + mov w1, w26 mov w2, 1 - ldrb w0, [x19,3569] + ldrb w0, [x21,1265] bl gc_search_src_blk cmp w0, wzr - ble .L3740 -.L3741: - add x23, x23, :lo12:.LANCHOR3 + ble .L3913 +.L3914: + add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - b .L3916 -.L3740: - ldrb w0, [x19,3569] + b .L4123 +.L3913: + ldrb w0, [x21,1265] mov w1, 3 mov w2, 1 bl gc_search_src_blk cmp w0, wzr - bgt .L3741 - b .L3913 -.L3732: - adrp x27, .LANCHOR2 - ldr w1, [x27,#:lo12:.LANCHOR2] - tbz x1, 8, .L3742 - ldrb w2, [x0,3569] - adrp x0, .LC304 - ldrh w5, [x22,124] - add x0, x0, :lo12:.LC304 - ldrh w6, [x22,120] - mov w1, 2183 - ldrh w7, [x22,122] - mov w3, w20 - str w26, [sp] - mov w4, w21 - bl printk -.L3742: + bgt .L3914 + b .L4121 +.L3905: cmp w26, 1 - bne .L3743 - add x22, x19, :lo12:.LANCHOR0 + bne .L3915 bl gc_scan_static_data - ldr x0, [x22,608] + ldr x0, [x21,1120] + adrp x21, .LANCHOR3 ldrh w0, [x0,122] - cbz w0, .L3744 -.L3745: - add x19, x19, :lo12:.LANCHOR0 + cbz w0, .L3916 +.L3917: + add x21, x21, :lo12:.LANCHOR3 mov w0, 1 - add x23, x23, :lo12:.LANCHOR3 - strb w0, [x19,3569] - b .L3916 -.L3744: + add x20, x20, :lo12:.LANCHOR5 + strb w0, [x21,1265] +.L4123: + strb w0, [x20,130] + b .L4121 +.L3916: bl gc_static_wearleveling - cbnz w0, .L3745 + cbnz w0, .L3917 bl gc_block_vpn_scan - cbz w21, .L3841 - cmp w20, w25 - bcs .L3748 - ldrh w0, [x22,3602] - cmp w0, w20 - bhi .L3749 -.L3748: + cbz w23, .L3918 + cmp w22, w25 + bcs .L3919 + add x0, x21, :lo12:.LANCHOR3 + ldrh w0, [x0,1298] + cmp w0, w22 + bhi .L3920 +.L3919: + add x1, x21, :lo12:.LANCHOR3 + add w0, w22, w25 + ldrh w2, [x1,1298] + cmp w0, w2 + blt .L3920 add x0, x19, :lo12:.LANCHOR0 - add w1, w20, w25 - ldrh w2, [x0,3602] - cmp w1, w2 - blt .L3749 - ldrh w1, [x0,2870] - ldrh w0, [x0,3604] - cmp w1, w0 - bcc .L3841 -.L3749: - add x22, x19, :lo12:.LANCHOR0 - add x28, x23, :lo12:.LANCHOR3 - mov w2, 1 - ldr w1, [x28,1420] - ldrh w0, [x22,576] - add w1, w1, 1 - strb w2, [x22,3569] - str w1, [x28,1420] - cmp w1, w0, lsr 5 - bls .L3751 - ldrh w0, [x22,2870] - cmp w0, w21 - bls .L3751 - mov w1, 5 - mov w0, 0 - str x2, [x29,104] - bl zftl_get_gc_node + ldrh w2, [x0,3386] + ldrh w0, [x1,1300] + cmp w2, w0 + bcc .L3918 +.L3920: + add x24, x21, :lo12:.LANCHOR3 + mov w0, 1 + strb w0, [x24,1265] + mov w0, 16 + bl zftl_get_gc_node.part.11 uxth w1, w0 - mov w0, 65535 - cmp w1, w0 - beq .L3841 + mov w2, 65535 + cmp w1, w2 + beq .L3921 + add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x0, [x22,600] - ldrb w3, [x22,3572] - mov w24, 16 - ldr x2, [x29,104] - ldrh w0, [x0,x1] - ldrh w1, [x22,3596] - mul w1, w1, w3 - cmp w0, w1 - bgt .L3747 - str wzr, [x28,1420] - mov w0, w2 - mov w1, 2 - b .L3906 -.L3751: - add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,2870] - ldrh w1, [x0,3604] - cmp w2, w1 - bcc .L3754 - mov w0, 1 - mov w1, 2 - mov w2, w0 - b .L3907 -.L3754: - ldrh w24, [x0,2866] - cbnz w24, .L3755 - ldrh w0, [x0,2868] - cmp w0, 8 - bls .L3747 -.L3755: - mov w0, 1 - mov w1, w0 -.L3906: - mov w2, 4 -.L3907: - bl gc_search_src_blk - uxth w0, w0 - cbnz w0, .L3741 - b .L3841 -.L3743: - add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2888] - cmp w0, w20 - bcc .L3913 -.L3841: - mov w24, 16 -.L3747: - add x22, x19, :lo12:.LANCHOR0 - ldr w0, [x22,2900] - cbz w0, .L3756 - mov w0, 1 - mov w1, 5 - strb w0, [x22,3569] + ldr x3, [x2,1112] + add x2, x20, :lo12:.LANCHOR5 + ldrh w3, [x3,x1] + ldrh w1, [x2,136] + cmp w3, w1 + bcs .L3921 + cmp w22, 2 + bls .L3921 + str wzr, [x2,132] + mov w1, 1 + mov w2, 0 + strb wzr, [x24,1265] + bl gc_add_sblk + cbnz w0, .L3914 +.L3921: + mov w1, 3 mov w0, 0 - str wzr, [x22,2900] bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3757 + beq .L3922 + add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x2, [x22,600] - ldrh w1, [x2,x1] - cmp w1, 8 - bhi .L3757 - mov w2, 1 - mov w1, 0 - str w2, [x22,2900] + ldr x3, [x2,1112] + add x2, x20, :lo12:.LANCHOR5 + ldrh w3, [x3,x1] + ldrh w1, [x2,136] + cmp w3, w1 + bcs .L3922 + cmp w22, 2 + bls .L3922 + add x1, x21, :lo12:.LANCHOR3 + str wzr, [x2,132] + mov w2, 0 + strb wzr, [x1,1265] + mov w1, 1 bl gc_add_sblk - cbnz w0, .L3741 -.L3757: + cbnz w0, .L3914 +.L3922: + add x1, x20, :lo12:.LANCHOR5 + add x2, x21, :lo12:.LANCHOR3 + ldrh w0, [x1,136] + ldrh w24, [x2,1294] + add w0, w0, 1 + uxth w0, w0 + strh w0, [x1,136] + cmp w0, w24, lsr 5 + bls .L3923 + mov w0, 4 + strh w0, [x1,136] +.L3923: + add x28, x20, :lo12:.LANCHOR5 + add x2, x19, :lo12:.LANCHOR0 + add x27, x21, :lo12:.LANCHOR3 + ldr w0, [x28,132] + ldrh w1, [x2,1088] + add w0, w0, 1 + strh wzr, [x27,1288] + str w0, [x28,132] + strh wzr, [x27,1290] + cmp w0, w1, lsr 5 + strh wzr, [x27,1292] + bls .L3924 + ldrh w0, [x2,3386] + cmp w0, w23 + bls .L3924 + mov w1, 5 + mov w0, 0 + str x2, [x29,104] + bl zftl_get_gc_node + uxth w0, w0 + mov w1, 65535 + cmp w0, w1 + beq .L4021 + ldr x2, [x29,104] + ubfiz x0, x0, 1, 16 + ldr x1, [x2,1112] + ldrh w1, [x1,x0] + ldrb w0, [x27,1249] + mul w0, w24, w0 + mov w24, 16 + cmp w1, w0 + bgt .L3929 + str wzr, [x28,132] + mov w1, 2 + ldrb w0, [x27,1265] + b .L4114 +.L3924: + add x0, x19, :lo12:.LANCHOR0 + add x1, x21, :lo12:.LANCHOR3 + ldrh w3, [x0,3386] + ldrh w2, [x1,1300] + cmp w3, w2 + bcc .L3927 + ldrb w0, [x1,1265] + mov w2, 1 + mov w1, 2 + b .L4115 +.L3927: + ldrh w24, [x0,3382] + cbnz w24, .L3928 + ldrh w0, [x0,3384] + cmp w0, 8 + bls .L3929 +.L3928: + add x21, x21, :lo12:.LANCHOR3 + mov w1, 1 + ldrb w0, [x21,1265] +.L4114: + mov w2, 4 +.L4115: + bl gc_search_src_blk + uxth w0, w0 + cbnz w0, .L3914 + b .L4021 +.L3918: + add x21, x21, :lo12:.LANCHOR3 + add x0, x20, :lo12:.LANCHOR5 + ldrh w2, [x21,1294] + ldrh w1, [x0,136] + cmp w1, w2, lsr 5 + bcc .L4021 + mov w1, 4 + strh w1, [x0,136] + b .L4021 +.L3915: + ldrh w0, [x21,3400] + cmp w0, w22 + bcs .L4021 + ldr x0, [x21,1120] + ldrh w0, [x0,124] + cbz w0, .L4121 +.L4021: + mov w24, 16 +.L3929: + add x0, x19, :lo12:.LANCHOR0 + adrp x21, .LANCHOR3 + ldr w1, [x0,3412] + cbz w1, .L3931 + str wzr, [x0,3412] + cmp w22, 15 + add x0, x21, :lo12:.LANCHOR3 + bhi .L4028 + cbnz w23, .L3932 +.L4028: + strb wzr, [x0,1265] + b .L3934 +.L3932: + mov w1, 1 + strb w1, [x0,1265] +.L3934: + mov w1, 5 + mov w0, 0 + bl zftl_get_gc_node + uxth w1, w0 + mov w2, 65535 + cmp w1, w2 + beq .L3935 + add x2, x19, :lo12:.LANCHOR0 + ubfiz x1, x1, 1, 16 + ldr x3, [x2,1112] + ldrh w1, [x3,x1] + cmp w1, 8 + bhi .L3935 + mov w1, 1 + str w1, [x2,3412] + add x2, x21, :lo12:.LANCHOR3 + mov w1, 0 + ldrb w2, [x2,1265] + bl gc_add_sblk + cbnz w0, .L3914 +.L3935: mov w1, 4 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3758 - add x3, x19, :lo12:.LANCHOR0 + beq .L3936 + add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x2, [x3,600] - ldrh w1, [x2,x1] + ldr x3, [x2,1112] + ldrh w1, [x3,x1] cmp w1, 4 - bhi .L3758 - mov w2, 1 + bhi .L3936 + mov w1, 1 + str w1, [x2,3412] + add x2, x21, :lo12:.LANCHOR3 mov w1, 0 - str w2, [x3,2900] + ldrb w2, [x2,1265] bl gc_add_sblk - cbnz w0, .L3741 -.L3758: + cbnz w0, .L3914 +.L3936: mov w0, 0 bl zftl_get_gc_node.part.11 uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3756 + beq .L3931 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x3, [x2,600] + ldr x3, [x2,1112] ldrh w1, [x3,x1] cmp w1, 4 - bhi .L3756 + bhi .L3931 mov w1, 1 - str w1, [x2,2900] - mov w2, 0 + str w1, [x2,3412] + add x2, x21, :lo12:.LANCHOR3 + ldrb w2, [x2,1265] bl gc_add_sblk - cbnz w0, .L3741 -.L3756: - add x22, x19, :lo12:.LANCHOR0 - mov w0, 1 - ldr x7, [x22,608] - strb w0, [x22,3569] - ldrh w5, [x7,124] - cbz w5, .L3759 - add x23, x23, :lo12:.LANCHOR3 - strb wzr, [x22,3569] - strb w0, [x23,1418] - ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 8, .L3760 - ldrh w6, [x7,120] - adrp x0, .LC305 - ldrh w7, [x7,122] - mov w1, 2273 - mov w2, 0 - mov w3, w20 - mov w4, w21 - add x0, x0, :lo12:.LC305 - bl printk - b .L3760 -.L3759: - ldrh w2, [x22,2888] - cmp w20, w2 - bcs .L3761 - cbz w21, .L3762 - cmp w21, 16 - bls .L3763 - ldrh w2, [x22,2870] - ldrh w1, [x22,3604] - cmp w2, w1 - bhi .L3763 - mov w1, w0 + cbnz w0, .L3914 +.L3931: + add x28, x19, :lo12:.LANCHOR0 + add x27, x21, :lo12:.LANCHOR3 + mov w1, 1 + ldr x0, [x28,1120] + strb w1, [x27,1265] + ldrh w3, [x0,124] + cbz w3, .L3937 + add x20, x20, :lo12:.LANCHOR5 + strb wzr, [x27,1265] + strb w1, [x20,130] + b .L3938 +.L3937: + ldrh w0, [x28,3400] + cmp w22, w0 + bcs .L3939 + cbz w23, .L3940 + cmp w23, 16 + bls .L3941 + ldrh w2, [x28,3386] + ldrh w0, [x27,1300] + cmp w2, w0 + bhi .L3941 + mov w0, w1 mov w2, 4 - str x5, [x29,104] + str x3, [x29,104] bl gc_search_src_blk uxth w0, w0 - ldr x5, [x29,104] - cbnz w0, .L3764 - ldrb w0, [x22,3569] - b .L3915 -.L3764: + ldr x3, [x29,104] + cbz w0, .L4118 mov w1, 5 - mov w0, w5 + mov w0, w3 bl zftl_get_gc_node uxth w2, w0 mov w1, 65535 cmp w2, w1 - beq .L3835 - add x3, x23, :lo12:.LANCHOR3 + beq .L4015 + add x3, x20, :lo12:.LANCHOR5 ubfiz x2, x2, 1, 16 - ldr w1, [x3,1420] + ldr w1, [x3,132] add w1, w1, 1 - str w1, [x3,1420] - ldr x3, [x22,600] + str w1, [x3,132] + ldr x3, [x28,1112] ldrh w2, [x3,x2] - ldrh w3, [x22,3596] + ldrh w3, [x27,1294] cmp w3, w2 - bcs .L3767 - ldrh w3, [x22,576] + bcs .L3945 + ldrh w3, [x28,1088] cmp w1, w3, lsr 4 - bls .L3835 - ldrh w1, [x22,2890] + bls .L4015 + ldrh w1, [x28,3402] cmp w1, w2 - bls .L3835 -.L3767: - add x19, x19, :lo12:.LANCHOR0 + bls .L4015 +.L3945: + add x21, x21, :lo12:.LANCHOR3 mov w1, 0 - ldrb w2, [x19,3569] + add x19, x19, :lo12:.LANCHOR0 + ldrb w2, [x21,1265] bl gc_add_sblk mov w0, 1 - str w0, [x19,2900] - add x0, x23, :lo12:.LANCHOR3 - str wzr, [x0,1420] - b .L3835 -.L3763: + str w0, [x19,3412] + add x0, x20, :lo12:.LANCHOR5 + str wzr, [x0,132] + b .L4015 +.L3941: mov w0, 1 mov w1, 2 mov w2, w0 - add x19, x19, :lo12:.LANCHOR0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3835 - b .L3910 -.L3762: - ldr w0, [x27,#:lo12:.LANCHOR2] - strb w21, [x22,3569] - tbz x0, 8, .L3769 - adrp x0, .LC305 - ldrh w6, [x7,120] - ldrh w7, [x7,122] - add x0, x0, :lo12:.LC305 - mov w1, 2303 - mov w2, w21 - mov w3, w20 - mov w4, w21 - mov w5, w21 - bl printk -.L3769: - add x19, x19, :lo12:.LANCHOR0 - cmp w20, 16 - ldrb w0, [x19,3569] - bls .L3770 -.L3915: - mov w1, 3 - mov w2, 4 - b .L3909 -.L3770: - mov w1, 1 + cbnz w0, .L4015 + add x21, x21, :lo12:.LANCHOR3 + ldrb w0, [x21,1265] + b .L4117 +.L3940: + strb w23, [x27,1265] + cmp w22, 16 + mov w0, w23 + bhi .L4117 mov w2, w1 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3835 -.L3910: - ldrb w0, [x19,3569] + cbnz w0, .L4015 +.L4118: + ldrb w0, [x27,1265] +.L4117: mov w1, 3 - mov w2, 2 -.L3909: + mov w2, 4 bl gc_search_src_blk uxth w0, w0 - b .L3765 -.L3761: + b .L3943 +.L3939: cmp w26, 1 mov w1, w24 - bne .L3884 - cmp w20, w2, lsl 1 - bge .L3771 - cmp w25, w21, lsr 1 - bcs .L3772 - ldrh w2, [x22,2870] - ldrh w0, [x22,3604] + bne .L4083 + cmp w22, w0, lsl 1 + bge .L3948 + cmp w25, w23, lsr 1 + bcs .L3949 + ldrh w2, [x28,3386] + ldrh w0, [x27,1300] cmp w2, w0 - bcs .L3772 - ldrh w0, [x22,3602] + bcs .L3949 + ldrh w0, [x27,1298] lsr w0, w0, 2 - strh w0, [x22,2888] - b .L3884 -.L3772: + strh w0, [x28,3400] + b .L4083 +.L3949: + mov w0, 8 + bl zftl_get_gc_node.part.11 + uxth w1, w0 + mov w2, 65535 + cmp w1, w2 + beq .L3950 + add x2, x19, :lo12:.LANCHOR0 + ubfiz x1, x1, 1, 16 + ldr x2, [x2,1112] + ldrh w1, [x2,x1] + cmp w1, 3 + bhi .L3950 + cbz w22, .L3950 + add x1, x21, :lo12:.LANCHOR3 + mov w2, 0 + strb wzr, [x1,1265] + mov w1, 1 + bl gc_add_sblk + cbnz w0, .L4015 +.L3950: mov w1, 5 mov w0, 0 bl zftl_get_gc_node - uxth w22, w0 + uxth w26, w0 mov w1, 65535 - mov w27, w22 - cmp w22, w1 - bne .L3773 -.L3778: - cmp w21, 1 - bhi .L3774 - b .L3775 -.L3773: - add x26, x23, :lo12:.LANCHOR3 + mov w28, w26 + cmp w26, w1 + bne .L3951 +.L3956: + cmp w23, 1 + bhi .L3952 + b .L3953 +.L3951: + add x27, x20, :lo12:.LANCHOR5 add x2, x19, :lo12:.LANCHOR0 - uxtw x22, w22 - ldr w1, [x26,1420] - ldrh w3, [x2,576] + uxtw x26, w26 + ldr w1, [x27,132] + ldrh w3, [x2,1088] add w1, w1, 1 - str w1, [x26,1420] + str w1, [x27,132] cmp w1, w3, lsr 4 - bls .L3776 - ldr x1, [x2,600] - str wzr, [x26,1420] - ldrh w3, [x1,x22,lsl 1] - ldrh w1, [x2,2890] + bls .L3954 + ldr x1, [x2,1112] + str wzr, [x27,132] + ldrh w3, [x1,x26,lsl 1] + ldrh w1, [x2,3402] cmp w3, w1 - bcs .L3776 - mov w1, 0 + bcs .L3954 + add x1, x21, :lo12:.LANCHOR3 + mov w3, 1 mov w2, 1 + str x3, [x29,104] + strb w3, [x1,1265] + mov w1, 0 bl gc_add_sblk - cbz w0, .L3776 - mov w0, 1 - strb w0, [x26,1418] - b .L3760 -.L3776: + ldr x3, [x29,104] + cbz w0, .L3954 + strb w3, [x27,130] + b .L3938 +.L3954: add x1, x19, :lo12:.LANCHOR0 - ldr x0, [x1,600] - ldrh w2, [x0,x22,lsl 1] - ldrh w0, [x1,3596] + add x3, x21, :lo12:.LANCHOR3 + ldr x0, [x1,1112] + ldrh w2, [x0,x26,lsl 1] + ldrh w0, [x3,1294] cmp w2, w0, lsr 1 - bhi .L3777 - mov w0, w27 + bhi .L3955 + mov w0, w28 mov w1, 1 mov w2, 0 bl gc_add_sblk - b .L3835 -.L3777: - ldrh w3, [x1,2866] - ldrh w0, [x1,2868] - add w0, w3, w0 - ldrh w3, [x1,3602] + b .L4015 +.L3955: + ldrh w4, [x1,3382] + ldrh w0, [x1,3384] + ldrh w3, [x3,1298] + add w0, w4, w0 cmp w0, w3, lsl 1 - ble .L3778 - ldrh w0, [x1,2890] + ble .L3956 + ldrh w0, [x1,3402] cmp w0, w2 - bcc .L3775 - b .L3778 -.L3774: - add x22, x19, :lo12:.LANCHOR0 + bcc .L3953 + b .L3956 +.L3952: + add x26, x21, :lo12:.LANCHOR3 mov w0, 1 - cmp w21, 16 - strb w0, [x22,3569] - bls .L3779 - ldrh w2, [x22,2870] - ldrh w1, [x22,3604] + cmp w23, 16 + strb w0, [x26,1265] + bls .L3957 + add x1, x19, :lo12:.LANCHOR0 + ldrh w2, [x1,3386] + ldrh w1, [x26,1300] cmp w2, w1 - bhi .L3779 + bhi .L3957 mov w1, w0 mov w2, 4 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3780 - ldrb w0, [x22,3569] - mov w1, 3 - mov w2, 4 - b .L3908 -.L3779: + cbnz w0, .L3958 + ldrb w0, [x26,1265] + b .L4116 +.L3957: mov w0, 1 mov w1, 2 mov w2, w0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3780 - add x0, x19, :lo12:.LANCHOR0 + cbnz w0, .L3958 + add x0, x21, :lo12:.LANCHOR3 + ldrb w0, [x0,1265] +.L4116: mov w1, 3 - mov w2, 2 - ldrb w0, [x0,3569] -.L3908: + mov w2, 4 bl gc_search_src_blk uxth w0, w0 -.L3780: +.L3958: + add x21, x21, :lo12:.LANCHOR3 + cmp w22, w25, lsr 1 add x19, x19, :lo12:.LANCHOR0 - cmp w20, w25, lsr 1 - ldrh w1, [x19,3602] - bls .L3911 + ldrh w1, [x21,1298] + bls .L4119 lsr w1, w1, 2 - b .L3912 -.L3775: - cmp w20, w25 - add x19, x19, :lo12:.LANCHOR0 - bcs .L3782 + b .L4120 +.L3953: + cmp w22, w25 + bcs .L3960 + add x21, x21, :lo12:.LANCHOR3 mov w0, 4 - strb wzr, [x19,3569] + add x19, x19, :lo12:.LANCHOR0 + strb wzr, [x21,1265] bl zftl_get_gc_node.part.11 - uxth w0, w0 mov w1, 65535 + uxth w0, w0 cmp w0, w1 - beq .L3782 + beq .L4125 ubfiz x0, x0, 1, 16 - ldr x1, [x19,600] - ldrb w2, [x19,3572] + ldr x1, [x19,1112] + ldrb w2, [x21,1249] ldrh w1, [x1,x0] - ldrh w0, [x19,3596] + ldrh w0, [x21,1294] mul w0, w0, w2 cmp w1, w0, lsr 1 - bgt .L3782 + bgt .L4125 mov w1, 3 mov w0, 0 mov w2, 4 bl gc_search_src_blk uxth w0, w0 - ldrh w1, [x19,3602] -.L3911: + ldrh w1, [x21,1298] +.L4119: lsr w1, w1, 1 -.L3912: - strh w1, [x19,2888] - b .L3765 -.L3782: - ldrh w0, [x19,3602] +.L4120: + strh w1, [x19,3400] + b .L3943 +.L3960: + add x19, x19, :lo12:.LANCHOR0 + add x21, x21, :lo12:.LANCHOR3 +.L4125: + ldrh w0, [x21,1298] lsr w0, w0, 2 - strh w0, [x19,2888] - b .L3760 -.L3771: - ldrh w0, [x22,3602] - mov w24, w5 + strh w0, [x19,3400] + b .L3938 +.L3948: + ldrh w0, [x27,1298] + mov w24, w3 lsr w0, w0, 2 - strh w0, [x22,2888] - b .L3760 -.L3765: + strh w0, [x28,3400] + b .L3938 +.L3943: mov w1, w24 - cbz w0, .L3884 -.L3835: - add x23, x23, :lo12:.LANCHOR3 + cbz w0, .L4083 +.L4015: + add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - strb w0, [x23,1418] - b .L3760 -.L3726: - add x20, x19, :lo12:.LANCHOR0 + strb w0, [x20,130] + b .L3938 +.L3895: + add x21, x19, :lo12:.LANCHOR0 mov w0, 65535 - ldrh w1, [x20,2912] + ldrh w1, [x21,3424] cmp w1, w0 - bne .L3785 + bne .L3963 bl gc_get_src_blk - strh w0, [x20,2912] -.L3785: + strh w0, [x21,3424] +.L3963: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 - ldrh w1, [x0,2912] + ldrh w1, [x0,3424] cmp w1, w2 - beq .L3786 - ldrh w2, [x0,576] + beq .L3964 + ldrh w2, [x0,1088] cmp w2, w1 - bhi .L3786 + bhi .L3964 mov w1, -1 - strh w1, [x0,2912] -.L3786: + strh w1, [x0,3424] +.L3964: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 - add x1, x0, 2912 - ldrh w3, [x0,2912] + add x1, x0, 3424 + ldrh w3, [x0,3424] cmp w3, w2 - beq .L3914 + beq .L4122 ldrh w5, [x1,56] uxtw x4, w3 - ldr x2, [x0,584] + ldr x2, [x0,1096] add x2, x2, x4, lsl 2 - cbz w5, .L3789 + cbz w5, .L3967 mov x0, 0 -.L3788: +.L3966: cmp w5, w0, uxth - bls .L3789 + bls .L3967 add x0, x0, 1 add x6, x1, x0, lsl 1 ldrh w6, [x6,56] cmp w6, w3 - bne .L3788 -.L3794: + bne .L3966 +.L3972: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - strh w0, [x19,2912] - b .L3913 -.L3789: + strh w0, [x19,3424] + b .L4121 +.L3967: ldrb w0, [x2,2] tst w0, 192 - beq .L3848 + beq .L4029 and w0, w0, 224 cmp w0, 224 - bne .L3791 -.L3848: + bne .L3969 +.L4029: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,600] + ldr x0, [x0,1112] ldrh w0, [x0,x4,lsl 1] - cbz w0, .L3794 + cbz w0, .L3972 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2538 - add x1, x1, 832 + mov w2, 3153 + add x1, x1, 1008 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L3794 -.L3791: - add x23, x23, :lo12:.LANCHOR3 + b .L3972 +.L3969: + add x20, x20, :lo12:.LANCHOR5 mov w0, 2 - b .L3916 -.L3727: + b .L4123 +.L3896: bl gc_scan_src_blk cmn w0, #1 - bne .L3795 - add x23, x23, :lo12:.LANCHOR3 + bne .L3973 + add x20, x20, :lo12:.LANCHOR5 mov w0, 3 -.L3916: - strb w0, [x23,1418] - b .L3913 -.L3795: + b .L4123 +.L3973: add x1, x19, :lo12:.LANCHOR0 mov w3, 65535 - ldrh w0, [x1,2912] + ldrh w0, [x1,3424] cmp w0, w3 - beq .L3741 - ldrh w3, [x1,2936] - add x23, x23, :lo12:.LANCHOR3 - cbz w3, .L3796 + beq .L3914 + ldrh w3, [x1,3448] + add x20, x20, :lo12:.LANCHOR5 + cbz w3, .L3974 mov w0, 4 - strh wzr, [x1,2938] - strb w0, [x23,1418] - b .L3913 -.L3796: + strh wzr, [x1,3450] + strb w0, [x20,130] + b .L4121 +.L3974: ubfiz x0, x0, 1, 16 - ldr x1, [x1,600] + ldr x1, [x1,1112] mov w2, 1 - strb w2, [x23,1418] + strb w2, [x20,130] ldrh w0, [x1,x0] - cbz w0, .L3797 + cbz w0, .L3975 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2566 - add x1, x1, 832 + mov w2, 3183 + add x1, x1, 1008 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3797: +.L3975: add x20, x19, :lo12:.LANCHOR0 - add x21, x20, 2912 - ldrh w0, [x20,2912] + add x21, x20, 3424 + ldrh w0, [x20,3424] bl ftl_free_sblk - ldr x0, [x20,600] - ldrh w1, [x20,2912] + ldr x0, [x20,1112] + ldrh w1, [x20,3424] strh wzr, [x0,x1,lsl 1] ldrh w0, [x21,30] add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3798 + bhi .L3976 strh w0, [x21,30] - b .L3794 -.L3798: + b .L3972 +.L3976: strh wzr, [x21,30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L3794 -.L3728: + b .L3972 +.L3897: add x21, x19, :lo12:.LANCHOR0 -.L3885: + adrp x23, .LANCHOR3 +.L4084: bl gc_scan_src_blk_one_page - ldrh w2, [x21,2914] - add x0, x21, 2912 - ldrh w1, [x21,3596] + ldrh w2, [x21,3426] + add x0, x21, 3424 + add x1, x23, :lo12:.LANCHOR3 + ldrh w1, [x1,1294] cmp w2, w1 - bcs .L3800 - cmp w20, 7 - bls .L3885 - b .L3913 -.L3800: + bcs .L3978 + cmp w22, 7 + bls .L4084 + b .L4121 +.L3978: ldrh w3, [x0,24] - adrp x2, .LANCHOR2 - cbz w3, .L3801 - add x23, x23, :lo12:.LANCHOR3 + cbz w3, .L3979 + add x20, x20, :lo12:.LANCHOR5 mov w1, 4 strh wzr, [x0,26] - strb w1, [x23,1418] - ldr w1, [x2,#:lo12:.LANCHOR2] - tbz x1, 8, .L3802 + ldr x2, [x21,1112] + strb w1, [x20,130] ldrh w1, [x0] - adrp x0, .LC306 - ldr x4, [x21,600] - add x0, x0, :lo12:.LC306 - ubfiz x2, x1, 1, 16 - ldrh w2, [x4,x2] + ubfiz x0, x1, 1, 16 + ldrh w2, [x2,x0] + cmp w2, w3 + beq .L3980 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 10, .L3980 + adrp x0, .LC297 + add x0, x0, :lo12:.LC297 bl printk -.L3802: +.L3980: add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,2912] - ldr x1, [x0,600] - ldrh w0, [x0,2936] + ldrh w2, [x0,3424] + ldr x1, [x0,1112] + ldrh w0, [x0,3448] ldrh w1, [x1,x2,lsl 1] cmp w1, w0 - beq .L3803 + beq .L3981 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2600 - add x1, x1, 832 + mov w2, 3226 + add x1, x1, 1008 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3803: +.L3981: add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x19,2912] - ldr x0, [x19,600] - ldrh w2, [x19,2936] + ldrh w1, [x19,3424] + ldr x0, [x19,1112] + ldrh w2, [x19,3448] strh w2, [x0,x1,lsl 1] - b .L3913 -.L3801: - add x23, x23, :lo12:.LANCHOR3 + b .L4121 +.L3979: + add x20, x20, :lo12:.LANCHOR5 ldrh w1, [x0] mov w0, 1 - ldr x20, [x21,584] - add x20, x20, x1, uxth 2 - strb w0, [x23,1418] - ldr w0, [x2,#:lo12:.LANCHOR2] - tbz x0, 8, .L3804 - ldrb w2, [x20,2] - adrp x0, .LC307 - add x0, x0, :lo12:.LC307 + ldr x21, [x21,1096] + add x21, x21, x1, uxth 2 + strb w0, [x20,130] + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3982 + ldrb w2, [x21,2] + adrp x0, .LC298 + add x0, x0, :lo12:.LC298 ubfx x2, x2, 5, 3 bl printk -.L3804: - ldrb w0, [x20,2] +.L3982: + ldrb w0, [x21,2] tst w0, 192 - beq .L3849 + beq .L4030 and w0, w0, 224 cmp w0, 224 - bne .L3805 -.L3849: + bne .L3983 +.L4030: adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2610 - add x1, x1, 832 + mov w2, 3236 + add x1, x1, 1008 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3805: +.L3983: add x19, x19, :lo12:.LANCHOR0 - add x20, x19, 2912 - ldrh w0, [x19,2912] + add x20, x19, 3424 + ldrh w0, [x19,3424] bl ftl_free_sblk mov w0, -1 - strh w0, [x19,2912] + strh w0, [x19,3424] ldrh w0, [x20,30] add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3807 + bhi .L3985 strh w0, [x20,30] - b .L3913 -.L3807: + b .L4121 +.L3985: strh wzr, [x20,30] - b .L3917 -.L3729: - cbnz w26, .L3808 + b .L4124 +.L3898: + cbnz w26, .L3986 add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2888] - cmp w0, w20 - bcc .L3913 -.L3808: - ldrh w1, [x22,80] + ldrh w0, [x0,3400] + cmp w0, w22 + bcc .L4121 +.L3986: + ldrh w1, [x24,80] mov w0, 65535 cmp w1, w0 - bne .L3809 - add x24, x19, :lo12:.LANCHOR0 - ldrb w21, [x24,3569] - cmp w21, 1 - bne .L3809 + bne .L3987 + adrp x21, .LANCHOR3 + add x0, x21, :lo12:.LANCHOR3 + ldrb w23, [x0,1265] + cmp w23, 1 + bne .L3987 bl ftl_flush - ldrh w0, [x24,3486] - cbz w0, .L3810 - mov w0, w21 -.L3810: + add x0, x19, :lo12:.LANCHOR0 + ldrh w0, [x0,5534] + cbz w0, .L3988 + mov w0, w23 +.L3988: mov w1, 5 bl zftl_gc_get_free_sblk - uxth w20, w0 + uxth w23, w0 mov w0, 65535 - cmp w20, w0 - beq .L3812 + cmp w23, w0 + beq .L3990 add x0, x19, :lo12:.LANCHOR0 - ldr x21, [x0,584] - add x21, x21, x20, uxth 2 - ldrb w0, [x21,2] + ldr x22, [x0,1096] + add x22, x22, x23, uxth 2 + ldrb w0, [x22,2] tst w0, 224 - beq .L3813 + beq .L3991 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2639 - add x1, x1, 832 + mov w2, 3270 + add x1, x1, 1008 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3813: - ldrb w0, [x21,2] +.L3991: + ldrb w0, [x22,2] mov w1, 5 bfi w0, w1, 5, 3 orr w0, w0, 16 - strb w0, [x21,2] -.L3836: - mov w0, w20 + strb w0, [x22,2] +.L4016: + mov w0, w23 mov w1, 1 - add x19, x19, :lo12:.LANCHOR0 - add x23, x23, :lo12:.LANCHOR3 + add x21, x21, :lo12:.LANCHOR3 + add x20, x20, :lo12:.LANCHOR5 bl ftl_erase_sblk + add x19, x19, :lo12:.LANCHOR0 mov w0, 5 - add x1, x22, 96 - strb w0, [x22,84] - mov w0, w20 + add x1, x24, 96 + strb w0, [x24,84] + mov w0, w23 bl ftl_get_blk_list_in_sblk uxtb w0, w0 - ldrh w1, [x19,3596] - strb w0, [x22,89] - ldrb w2, [x19,3572] + ldrh w1, [x21,1294] + strb w0, [x24,89] + ldrb w2, [x21,1249] mul w0, w0, w1 - strh w0, [x22,86] + strh w0, [x24,86] mov w1, 255 - ldrh w0, [x19,3570] - strh w20, [x22,80] - strh wzr, [x22,82] + ldrh w0, [x21,1266] + strh w23, [x24,80] + strh wzr, [x24,82] mul w2, w0, w2 - ldr x0, [x23,1424] - strb wzr, [x22,85] + ldr x0, [x20,144] + strb wzr, [x24,85] lsl w2, w2, 2 - strh wzr, [x22,90] + strh wzr, [x24,90] bl ftl_memset - ldrh w0, [x19,3570] + ldrh w0, [x21,1266] mov w1, 255 - ldrb w2, [x19,3572] + ldrb w2, [x21,1249] mul w2, w0, w2 - ldr x0, [x23,1432] + ldr x0, [x20,152] lsl w2, w2, 2 bl ftl_memset - ldrh w3, [x19,3570] + ldrh w3, [x21,1266] mov w1, 255 - ldrb w2, [x19,3572] - ldr x0, [x19,3560] + ldrb w2, [x21,1249] + ldr x0, [x21,1256] mul w2, w3, w2 bl ftl_memset - ldr x0, [x19,608] + ldr x0, [x19,1120] mov w1, -1 - str w20, [x0,132] + str w23, [x0,132] strh w1, [x0,128] strh w1, [x0,130] bl pm_flush bl ftl_ext_info_flush - strh wzr, [x19,2968] - ldr x0, [x19,2880] - strh w20, [x0,126] + strh wzr, [x19,3480] + ldr x0, [x19,3392] + strh w23, [x0,126] mov w0, -1 - str w0, [x19,3492] + str w0, [x19,5540] mov w0, 0 - strh wzr, [x19,3482] - strh wzr, [x19,3484] - strh wzr, [x19,3488] + strh wzr, [x19,5530] + strh wzr, [x19,5532] + strh wzr, [x19,5536] bl ftl_info_flush - b .L3913 -.L3809: + b .L4121 +.L3987: cmp w26, 1 - mov w21, 4 - csinc w21, w21, wzr, eq - cmp w20, 15 - add w0, w21, 4 - add x24, x19, :lo12:.LANCHOR0 - csel w21, w0, w21, ls -.L3816: - sub w21, w21, #1 - uxtb w21, w21 - cmp w21, 255 - beq .L3913 + mov w23, 4 + csinc w23, w23, wzr, eq + cmp w22, 15 + add w0, w23, 4 + adrp x27, .LANCHOR3 + csel w23, w0, w23, ls + add x25, x19, :lo12:.LANCHOR0 +.L3994: + sub w23, w23, #1 + uxtb w23, w23 + cmp w23, 255 + beq .L4121 + add x26, x27, :lo12:.LANCHOR3 bl gc_do_copy_back - ldrb w0, [x24,3569] - cbnz w0, .L3817 - ldrb w0, [x24,2850] + adrp x22, .LANCHOR3 + ldrb w0, [x26,1265] + cbnz w0, .L3995 + ldrb w0, [x25,3362] cmp w0, 3 - bhi .L3818 + bhi .L3996 bl ftl_write_commit -.L3818: - ldrh w1, [x24,2938] - ldrh w0, [x24,2936] +.L3996: + ldrh w1, [x25,3450] + ldrh w0, [x25,3448] cmp w1, w0 - bcc .L3816 - add x23, x23, :lo12:.LANCHOR3 + bcc .L3994 + add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - strb w0, [x23,1418] + strb w0, [x20,130] bl ftl_write_commit bl ftl_flush - ldrh w1, [x24,2912] - ldr x0, [x24,600] + ldrh w1, [x25,3424] + ldr x0, [x25,1112] ldrh w0, [x0,x1,lsl 1] - cbz w0, .L3820 + cbz w0, .L3998 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2714 - add x1, x1, 832 + mov w2, 3354 + add x1, x1, 1008 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3820: +.L3998: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,2912] - ldr x3, [x1,600] + ldrh w0, [x1,3424] + ldr x3, [x1,1112] ubfiz x2, x0, 1, 16 ldrh w4, [x3,x2] - cbnz w4, .L3821 + cbnz w4, .L3999 strh w4, [x3,x2] - ldrh w0, [x1,2912] + ldrh w0, [x1,3424] bl ftl_free_sblk - b .L3794 -.L3821: + b .L3972 +.L3999: mov w1, 0 mov w2, 1 bl gc_add_sblk - b .L3794 -.L3817: - add x20, x24, 2912 - ldrh w0, [x20,576] - cbz w0, .L3822 - strh wzr, [x20,576] + b .L3972 +.L3995: + ldrh w0, [x25,5536] + add x21, x25, 3424 + cbz w0, .L4000 + strh wzr, [x21,2112] bl sblk_wait_write_queue_completed bl gc_write_completed - ldr w0, [x20,580] + ldr w0, [x21,2116] cmn w0, #1 - beq .L3823 + beq .L4001 + ldrb w1, [x26,1868] + cbnz w1, .L4002 + ldrb w1, [x26,1250] + cbz w1, .L4003 +.L4002: + add x1, x19, :lo12:.LANCHOR0 + ldr x2, [x1,3392] + ldr w3, [x2,156] + mov w2, 20041 + movk w2, 0x444b, lsl 16 + cmp w3, w2 + bne .L4003 + add x22, x22, :lo12:.LANCHOR3 + ldrb w3, [x1,1257] + mov w2, 24 + sub w2, w2, w3 + mov w3, 1 + ldrh w4, [x22,1232] + sub w2, w2, w4 + lsr w0, w0, w4 + lsl w2, w3, w2 + sub w2, w2, #1 + and w0, w2, w0 + ldrb w2, [x22,1234] + udiv w0, w0, w2 + ldr x2, [x1,1096] + lsl x0, x0, 2 + add x5, x2, x0 + ldrb w3, [x5,2] + tbz x3, 3, .L4001 + ldrh w4, [x1,3376] + ldrh w6, [x22,1298] + add w4, w4, 8 + cmp w4, w6 + bge .L4001 + and w3, w3, -25 + strb w3, [x5,2] + ldrh w1, [x1,1104] + ldr w3, [x2,x0] + ldrh w4, [x2,x0] + ubfx x3, x3, 11, 8 + ubfx x5, x4, 0, 11 + mul w1, w3, w1 + lsr w3, w3, 3 + add w1, w1, w1, lsl 1 + add w1, w5, w1, lsr 2 + bfi w4, w1, 0, 11 + strh w4, [x2,x0] + ldr w1, [x2,x0] + bfi w1, w3, 11, 8 + str w1, [x2,x0] + b .L4001 +.L4003: bl ftl_mask_bad_block -.L3823: - add x20, x19, :lo12:.LANCHOR0 - ldr x0, [x20,608] - str wzr, [x20,3492] - strh wzr, [x20,2968] +.L4001: + add x21, x19, :lo12:.LANCHOR0 + ldr x0, [x21,1120] + str wzr, [x21,5540] + strh wzr, [x21,3480] ldrh w0, [x0,80] bl ftl_free_sblk - ldr x1, [x20,608] + ldr x1, [x21,1120] mov w0, -1 - ldr x2, [x20,2880] + ldr x2, [x21,3392] strh w0, [x1,80] strh w0, [x2,126] strh w0, [x1,130] - ldr x0, [x20,2920] - cbz x0, .L3824 + ldr x0, [x21,3432] + cbz x0, .L4004 bl zbuf_free -.L3824: +.L4004: add x19, x19, :lo12:.LANCHOR0 - add x23, x23, :lo12:.LANCHOR3 - str xzr, [x19,2920] + add x20, x20, :lo12:.LANCHOR5 + str xzr, [x19,3432] bl flt_sys_flush adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2752 - add x1, x1, 832 + mov w2, 3413 + add x1, x1, 1008 add x0, x0, :lo12:.LC0 - strb wzr, [x23,1418] + strb wzr, [x20,130] bl printk bl dump_stack - b .L3913 -.L3822: - ldrh w0, [x22,86] + b .L4121 +.L4000: + ldrh w0, [x24,86] cmp w0, 1 - bls .L3825 - ldrh w1, [x20,26] - ldrh w0, [x20,24] + bls .L4005 + ldrh w1, [x21,26] + ldrh w0, [x21,24] cmp w1, w0 - bcc .L3816 - add x23, x23, :lo12:.LANCHOR3 + bcc .L3994 + add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - strb w0, [x23,1418] - ldrh w0, [x20,56] + strb w0, [x20,130] + ldrh w0, [x21,56] add w1, w0, 1 - add x0, x20, x0, sxtw 1 - strh w1, [x20,56] - ldrh w1, [x20] + add x0, x21, x0, sxtw 1 + strh w1, [x21,56] + ldrh w1, [x21] strh w1, [x0,58] mov w0, -1 - strh w0, [x20] - b .L3913 -.L3825: - add x23, x23, :lo12:.LANCHOR3 + strh w0, [x21] + b .L4121 +.L4005: + add x20, x20, :lo12:.LANCHOR5 mov w0, 5 - ldrh w1, [x20,26] - strb w0, [x23,1418] - ldrh w0, [x20,24] + ldrh w1, [x21,26] + strb w0, [x20,130] + ldrh w0, [x21,24] cmp w1, w0 - bcc .L3826 - ldrh w0, [x20,56] + bcc .L4006 + ldrh w0, [x21,56] add w1, w0, 1 - add x0, x20, x0, sxtw 1 - strh w1, [x20,56] - ldrh w1, [x20] + add x0, x21, x0, sxtw 1 + strh w1, [x21,56] + ldrh w1, [x21] strh w1, [x0,58] mov w0, -1 - strh w0, [x20] -.L3826: + strh w0, [x21] +.L4006: add x20, x19, :lo12:.LANCHOR0 bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed - ldr x0, [x20,608] - ldrh w1, [x22,80] + ldr x0, [x20,1120] + ldrh w1, [x24,80] strh w1, [x0,128] bl pm_flush bl ftl_ext_info_flush - strh wzr, [x20,2928] - ldrh w1, [x20,3596] - strh w1, [x20,2930] - ldrb w2, [x20,756] - ldrb w1, [x20,3553] - strh w1, [x20,2932] - cbz w2, .L3827 - ldrh w2, [x20,3570] - strh w2, [x20,2930] - mov w2, 1 - strh w2, [x20,2932] -.L3827: - cmp w1, 2 - bne .L3829 - add x2, x19, :lo12:.LANCHOR0 - ldrh w1, [x2,2930] - lsl w1, w1, 1 - strh w1, [x2,2930] - ldrb w1, [x2,3554] - cbnz w1, .L3829 + strh wzr, [x20,3440] + add x1, x22, :lo12:.LANCHOR3 + ldrb w3, [x20,1268] + ldrh w2, [x1,1294] + strh w2, [x20,3442] + ldrb w2, [x1,1248] + strh w2, [x20,3444] + cbz w3, .L4007 + ldrh w1, [x1,1266] + strh w1, [x20,3442] mov w1, 1 - strh w1, [x2,2932] -.L3829: + strh w1, [x20,3444] +.L4007: + cmp w2, 2 + bne .L4009 + add x0, x19, :lo12:.LANCHOR0 + add x22, x22, :lo12:.LANCHOR3 + add x0, x0, 3424 + ldrh w1, [x0,18] + lsl w1, w1, 1 + strh w1, [x0,18] + ldrb w1, [x22,1250] + cbnz w1, .L4009 + mov w1, 1 + strh w1, [x0,20] +.L4009: add x19, x19, :lo12:.LANCHOR0 - strh wzr, [x19,2934] - b .L3913 -.L3838: + strh wzr, [x19,3446] + b .L4121 +.L4018: mov w21, 0 add x24, x19, :lo12:.LANCHOR0 -.L3730: +.L3899: bl gc_check_data_one_wl - cbz w0, .L3832 + cbz w0, .L4012 add x19, x19, :lo12:.LANCHOR0 - add x23, x23, :lo12:.LANCHOR3 - ldr x0, [x19,608] - strh wzr, [x19,2968] + add x20, x20, :lo12:.LANCHOR5 + ldr x0, [x19,1120] + strh wzr, [x19,3480] ldrh w0, [x0,80] bl ftl_free_sblk - ldr x1, [x19,608] + ldr x1, [x19,1120] mov w0, -1 - ldr x2, [x19,2880] + ldr x2, [x19,3392] strh w0, [x1,80] strh w0, [x2,126] strh w0, [x1,130] - ldr x0, [x19,2920] + ldr x0, [x19,3432] bl zbuf_free - str xzr, [x19,2920] - strb wzr, [x23,1418] -.L3917: + str xzr, [x19,3432] + strb wzr, [x20,130] +.L4124: bl flt_sys_flush - b .L3913 -.L3832: - ldrh w1, [x24,2928] - ldrh w0, [x24,2930] + b .L4121 +.L4012: + ldrh w1, [x24,3440] + ldrh w0, [x24,3442] cmp w1, w0 - bcc .L3833 - add x23, x23, :lo12:.LANCHOR3 + bcc .L4013 + add x20, x20, :lo12:.LANCHOR5 mov w0, 6 - strb w0, [x23,1418] - ldr x0, [x24,2920] + strb w0, [x20,130] + ldr x0, [x24,3432] bl zbuf_free - str xzr, [x24,2920] - b .L3913 -.L3833: - cmp w20, 15 - bls .L3730 + str xzr, [x24,3432] + b .L4121 +.L4013: + cmp w22, 15 + bls .L3899 cmp w26, 1 - bne .L3913 + bne .L4121 add w21, w21, 1 uxtb w21, w21 cmp w21, 4 - bls .L3730 - b .L3913 -.L3731: + bls .L3899 + b .L4121 +.L3900: bl gc_update_l2p_map_new - mov w20, -1 + mov w21, -1 bl gc_free_src_blk add x19, x19, :lo12:.LANCHOR0 bl ftl_flush bl pm_flush - strh w20, [x22,80] + strh w21, [x24,80] bl ftl_ext_info_flush - ldr x0, [x19,2880] - strh w20, [x0,126] + ldr x0, [x19,3392] + strh w21, [x0,126] mov w0, 0 bl ftl_info_flush -.L3914: - add x23, x23, :lo12:.LANCHOR3 - strb wzr, [x23,1418] -.L3913: +.L4122: + add x20, x20, :lo12:.LANCHOR5 + strb wzr, [x20,130] +.L4121: mov w1, 16 - b .L3884 -.L3760: + b .L4083 +.L3938: mov w1, w24 - b .L3884 -.L3812: + b .L4083 +.L3990: adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2645 - add x1, x1, 832 + mov w2, 3277 + add x1, x1, 1008 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L3836 -.L3884: + b .L4016 +.L4083: sub sp, x29, #16 mov w0, w1 ldp x19, x20, [sp,32] @@ -24961,136 +26177,810 @@ zftl_do_gc: ret .size zftl_do_gc, .-zftl_do_gc .align 2 + .global zftl_init + .type zftl_init, %function +zftl_init: + stp x29, x30, [sp, -80]! + mov w0, -1 + adrp x1, .LC2 + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + adrp x20, .LANCHOR0 + adrp x21, .LANCHOR3 + adrp x19, .LANCHOR5 + str x25, [sp,64] + stp x23, x24, [sp,48] + add x25, x19, :lo12:.LANCHOR5 + add x23, x21, :lo12:.LANCHOR3 + add x24, x20, :lo12:.LANCHOR0 + add x1, x1, :lo12:.LC2 + adrp x22, .LANCHOR2 + strb w0, [x23,1874] + strb w0, [x24,3416] + strb w0, [x25,264] + mov w0, -1 + str w0, [x25,940] + adrp x0, .LC1 + add x0, x0, :lo12:.LC1 + strb wzr, [x24,3388] + strb wzr, [x23,1875] + strb wzr, [x24,3389] + bl printk + add x1, x22, :lo12:.LANCHOR2 + ldrb w3, [x24,1145] + ldrh w4, [x24,2] + strb w3, [x23,1332] + ldrb w2, [x1,21] + ldrb w9, [x1,20] + ldrh w5, [x1,18] + strb w2, [x23,1234] + mul w2, w2, w3 + ldrb w0, [x1,17] + mov w3, 1 + ldrh w6, [x1,22] + mov w1, 0 + sdiv w10, w5, w9 + uxtb w2, w2 + ubfiz w8, w0, 9, 7 + strb w9, [x23,1248] + strb w0, [x24,3360] + strh w5, [x23,1266] + strh w10, [x23,1294] + strb w2, [x23,1249] + strh w6, [x24,1088] + strh w8, [x25,926] + strh w4, [x23,1330] +.L4127: + cmp w3, w4 + bhi .L4207 + add w1, w1, 1 + lsl w3, w3, 1 + uxth w1, w1 + b .L4127 +.L4207: + add x3, x21, :lo12:.LANCHOR3 + sub w1, w1, #1 + mul w7, w0, w5 + mov w4, 0 + strh w1, [x3,1232] + mov w1, 1 + mul w3, w7, w6 + lsr w11, w3, 21 +.L4129: + cmp w1, w11 + bhi .L4208 + add w4, w4, 1 + lsl w1, w1, 1 + uxth w4, w4 + b .L4129 +.L4208: + mov w1, 57344 + mov w11, 1 + movk w1, 0x1c, lsl 16 + sub w4, w4, #1 + lsl w4, w11, w4 + add x11, x20, :lo12:.LANCHOR0 + mul w1, w2, w1 + mul w3, w3, w2 + str w3, [x11,3368] + lsr w6, w6, 4 + mul w1, w1, w4 + str w1, [x11,1032] + add x4, x19, :lo12:.LANCHOR5 + add w3, w1, 24576 + cmp w6, 79 + mul w10, w10, w2 + udiv w0, w3, w0 + str w3, [x4,944] + str w0, [x11,3372] + sub w11, w8, #1 + mul w7, w7, w2 + sub w7, w7, #1 + add w0, w11, w0, lsl 2 + udiv w3, w3, w7 + add w3, w3, 8 + udiv w0, w0, w8 + strh w0, [x4,948] + ubfiz w0, w0, 4, 16 + sdiv w0, w0, w10 + strh w0, [x4,176] + add x0, x21, :lo12:.LANCHOR3 + strh w3, [x0,1300] + strh w6, [x0,1298] + bhi .L4131 + mov w3, 80 + strh w3, [x0,1298] +.L4131: + add x0, x21, :lo12:.LANCHOR3 + mov w3, 2000 + add x6, x20, :lo12:.LANCHOR0 + mov w4, 256 + cmp w9, 2 + strh w3, [x0,1872] + mov w3, 50 + strh w3, [x0,1870] + add x3, x19, :lo12:.LANCHOR5 + strh w4, [x3,172] + mov w4, 48 + strh w4, [x3,174] + mov w4, 32 + strh w4, [x6,1104] + beq .L4132 + ldrb w7, [x0,1264] + cbz w7, .L4133 +.L4132: + add x3, x21, :lo12:.LANCHOR3 + mov w0, 150 + mov w4, 64 + mov w6, 12 + strh w0, [x3,1870] + add x0, x19, :lo12:.LANCHOR5 + strh w4, [x0,174] + add x4, x20, :lo12:.LANCHOR0 + strh w6, [x4,1104] + ldrb w6, [x20,#:lo12:.LANCHOR0] + cbnz w6, .L4134 + mov w6, 4 + strh w6, [x4,1104] + mov w4, 600 + strh w4, [x3,1872] + mov w3, 128 + strh w3, [x0,172] +.L4134: + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,1269] + cbz w0, .L4136 + add x0, x21, :lo12:.LANCHOR3 + mov w3, 200 + strh w3, [x0,1870] + mov w3, 2000 + strh w3, [x0,1872] + b .L4136 +.L4133: + ldrb w6, [x6,1268] + cbz w6, .L4136 + mov w6, 1200 + strh w4, [x0,1870] + strh w6, [x0,1872] + strh w4, [x3,174] +.L4136: + add x0, x20, :lo12:.LANCHOR0 + mov w3, 1 + mul w2, w5, w2 + str wzr, [x0,3412] + add x0, x19, :lo12:.LANCHOR5 + cmp w8, w2, lsl 2 + strb w3, [x0,929] + bge .L4138 + mov w2, 2 + strb w2, [x0,929] +.L4138: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L4139 + adrp x0, .LC299 + add x0, x0, :lo12:.LC299 + bl printk +.L4139: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L4140 + add x1, x20, :lo12:.LANCHOR0 + adrp x0, .LC300 + add x0, x0, :lo12:.LC300 + ldr w1, [x1,3368] + bl printk +.L4140: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L4141 + add x1, x20, :lo12:.LANCHOR0 + adrp x0, .LC301 + add x0, x0, :lo12:.LC301 + ldr w1, [x1,3372] + bl printk +.L4141: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L4142 + add x1, x19, :lo12:.LANCHOR5 + adrp x0, .LC302 + add x0, x0, :lo12:.LC302 + ldr w1, [x1,944] + bl printk +.L4142: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L4143 + add x1, x19, :lo12:.LANCHOR5 + adrp x0, .LC303 + add x0, x0, :lo12:.LC303 + ldrh w1, [x1,948] + bl printk +.L4143: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L4144 + add x1, x19, :lo12:.LANCHOR5 + adrp x0, .LC304 + add x0, x0, :lo12:.LC304 + ldrh w1, [x1,926] + bl printk +.L4144: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L4145 + add x1, x19, :lo12:.LANCHOR5 + adrp x0, .LC305 + add x0, x0, :lo12:.LC305 + ldrh w1, [x1,176] + bl printk +.L4145: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L4146 + add x1, x21, :lo12:.LANCHOR3 + adrp x0, .LC306 + add x0, x0, :lo12:.LC306 + ldrh w1, [x1,1298] + bl printk +.L4146: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 12, .L4147 + add x1, x21, :lo12:.LANCHOR3 + adrp x0, .LC307 + add x0, x0, :lo12:.LC307 + ldrh w1, [x1,1300] + bl printk +.L4147: + bl zbuf_init + add x25, x19, :lo12:.LANCHOR5 + mov w0, 16384 + add x24, x20, :lo12:.LANCHOR0 + add x23, x21, :lo12:.LANCHOR3 + bl ftl_malloc + str x0, [x25,584] + mov w0, 16384 + bl ftl_malloc + str x0, [x25,600] + mov w0, 16384 + bl ftl_malloc + str x0, [x25,952] + ldrh w1, [x24,1088] + mov w0, 6 + mul w0, w1, w0 + bl ftl_malloc + str x0, [x24,1040] + ldrb w1, [x23,1249] + ldrh w0, [x23,1294] + mul w0, w0, w1 + lsl w0, w0, 2 + bl ftl_malloc + str x0, [x23,1856] + ldrb w1, [x23,1249] + ldrh w0, [x23,1294] + ldr x2, [x25,600] + str x2, [x23,1848] + mul w0, w0, w1 + add x3, x2, x0, sxtw 3 + ldrh w1, [x24,1088] + str x3, [x24,1112] + lsr w1, w1, 1 + add w1, w1, w0, lsl 1 + ldr w0, [x22,#:lo12:.LANCHOR2] + add x1, x2, x1, sxtw 2 + str x1, [x24,1120] + tbz x0, 12, .L4148 + adrp x0, .LC308 + add x0, x0, :lo12:.LC308 + bl printk +.L4148: + add x0, x20, :lo12:.LANCHOR0 + add x21, x21, :lo12:.LANCHOR3 + add x3, x19, :lo12:.LANCHOR5 + ldrh w1, [x0,1088] + ldrh w0, [x21,1294] + ldrb w21, [x21,1249] + ldrh w23, [x3,948] + mul w21, w0, w21 + ldr w0, [x22,#:lo12:.LANCHOR2] + lsl w23, w23, 2 + add w23, w23, w1, lsl 2 + add w21, w1, w21, lsl 2 + add w23, w23, 704 + lsl w21, w21, 1 + add w21, w21, 632 + tbz x0, 12, .L4149 + adrp x0, .LC309 + ldrh w3, [x3,926] + add x0, x0, :lo12:.LC309 + mov w1, w21 + mov w2, w23 + bl printk +.L4149: + add x19, x19, :lo12:.LANCHOR5 + ldrh w0, [x19,926] + cmp w21, w0 + bhi .L4151 + cmp w23, w0 + bls .L4150 +.L4151: +.L4152: + b .L4152 +.L4150: + bl sblk_init + bl ftl_info_blk_init + cmn w0, #1 + beq .L4153 + bl ftl_ext_info_init + add x21, x20, :lo12:.LANCHOR0 + bl gc_init + mov w0, 1 + bl pm_init + bl lpa_rebuild_hash + ldr x0, [x21,1120] + mov x1, 0 + add x0, x0, 16 + bl ftl_open_sblk_recovery + ldr x1, [x21,1120] + add x0, x1, 48 + add x1, x1, 16 + bl ftl_open_sblk_recovery + ldr x1, [x21,3392] + ldr w0, [x1,8] + add w0, w0, 16 + str w0, [x1,8] + ldr x0, [x21,1120] + add x0, x0, 16 + bl ftl_info_data_recovery + ldr x0, [x21,1120] + add x0, x0, 48 + bl ftl_info_data_recovery + ldr x0, [x21,1120] + add x0, x0, 80 + bl ftl_info_data_recovery + bl gc_recovery + bl pm_flush + mov w0, 1 + bl ftl_total_vpn_update + ldrb w0, [x19,593] + cbz w0, .L4154 + ldr x1, [x21,3392] + ldr w0, [x1,68] + add w0, w0, 1 + str w0, [x1,68] +.L4154: + bl ftl_ext_info_flush + mov w0, 0 + bl ftl_info_flush + bl print_ftl_debug_info + add x1, x20, :lo12:.LANCHOR0 + ldr x0, [x1,1120] + ldrh w0, [x0,124] + cbnz w0, .L4158 + ldrh w2, [x1,3376] + mov w19, 16384 + ldrh w0, [x1,3380] + add w0, w2, w0 + cmp w0, 7 + ble .L4155 +.L4157: + mov w0, 0 + b .L4153 +.L4158: + mov w19, 16384 +.L4155: + mov w21, 65535 +.L4190: + mov w1, 1 + mov w0, 0 + bl zftl_do_gc + mov w0, 1 + mov w1, w0 + bl zftl_do_gc + add x1, x20, :lo12:.LANCHOR0 + ldr x0, [x1,1120] + ldrh w2, [x0,124] + cbnz w2, .L4156 + ldrh w0, [x0,80] + cmp w0, w21 + bne .L4156 + ldrh w2, [x1,3376] + ldrh w0, [x1,3380] + add w0, w2, w0 + cmp w0, 7 + bgt .L4157 +.L4156: + subs w19, w19, #1 + bne .L4190 + b .L4157 +.L4153: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldr x25, [sp,64] + ldp x29, x30, [sp], 80 + ret + .size zftl_init, .-zftl_init + .align 2 + .global rk_ftl_init + .type rk_ftl_init, %function +rk_ftl_init: + stp x29, x30, [sp, -48]! + adrp x0, jiffies + add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR5 + ldr x0, [x0,#:lo12:jiffies] + stp x19, x20, [sp,16] + add x19, x21, :lo12:.LANCHOR5 + str x0, [x19,184] + mov w0, 136 + strb wzr, [x19,960] + bl ftl_malloc + str x0, [x19,192] + cbnz x0, .L4210 +.L4212: + mov w0, -1 + b .L4211 +.L4210: + mov w0, 2048 + bl ftl_malloc + str x0, [x19,968] + add x0, x19, 200 + str xzr, [x19,200] + add x1, x0, 776 + str xzr, [x19,976] + bl rknand_get_reg_addr + ldr x0, [x19,200] + cbz x0, .L4212 + bl rk_nandc_irq_init + mov w1, 0 + ldr x0, [x19,968] + mov w2, w1 + mov w3, 2048 + bl flash_sram_load_store + bl rknand_flash_cs_init + ldr x0, [x19,192] + adrp x1, zftl_deinit + add x1, x1, :lo12:zftl_deinit + str x1, [x0,80] + adrp x1, zftl_cache_flush + add x1, x1, :lo12:zftl_cache_flush + str x1, [x0,64] + adrp x1, zftl_flash_suspend + add x1, x1, :lo12:zftl_flash_suspend + str x1, [x0,88] + adrp x1, zftl_flash_resume + add x1, x1, :lo12:zftl_flash_resume + str x1, [x0,96] + adrp x1, zftl_get_density + add x1, x1, :lo12:zftl_get_density + str x1, [x0,72] + adrp x1, zftl_read_flash_info + add x1, x1, :lo12:zftl_read_flash_info + str x1, [x0,112] + adrp x1, zftl_read + add x1, x1, :lo12:zftl_read + str x1, [x0,40] + adrp x1, zftl_write + add x1, x1, :lo12:zftl_write + str x1, [x0,48] + adrp x1, zftl_sys_read + add x1, x1, :lo12:zftl_sys_read + str x1, [x0,24] + adrp x1, zftl_sys_write + add x1, x1, :lo12:zftl_sys_write + str x1, [x0,32] + adrp x1, zftl_vendor_read + add x1, x1, :lo12:zftl_vendor_read + str x1, [x0,8] + adrp x1, zftl_vendor_write + add x1, x1, :lo12:zftl_vendor_write + str x1, [x0,16] + adrp x1, zftl_nandc_get_irq_status + add x1, x1, :lo12:zftl_nandc_get_irq_status + str x1, [x0,120] + adrp x1, zftl_proc_ftl_read + add x1, x1, :lo12:zftl_proc_ftl_read + str x1, [x0,128] + adrp x1, zftl_do_gc + add x1, x1, :lo12:zftl_do_gc + str x1, [x0,104] + adrp x1, zftl_discard + add x1, x1, :lo12:zftl_discard + str x1, [x0,56] + ldr x0, [x19,200] + bl nand_flash_init + mov w22, w0 + cbnz w0, .L4213 + bl zftl_init + mov w20, w0 + bl zftl_proc_debug_init + mov w0, 1 + strb w0, [x19,960] + b .L4214 +.L4213: + ldr x1, [x19,192] + adrp x2, ftl_get_density + add x2, x2, :lo12:ftl_get_density + adrp x0, ftl_deinit + add x0, x0, :lo12:ftl_deinit + str x2, [x1,72] + adrp x2, ftl_read_flash_info + add x2, x2, :lo12:ftl_read_flash_info + str x2, [x1,112] + adrp x2, ftl_read + str x0, [x1,80] + add x2, x2, :lo12:ftl_read + str x2, [x1,40] + adrp x2, ftl_write + adrp x0, ftl_cache_flush + add x2, x2, :lo12:ftl_write + str x2, [x1,48] + adrp x2, ftl_sys_read + add x0, x0, :lo12:ftl_cache_flush + add x2, x2, :lo12:ftl_sys_read + str x2, [x1,24] + adrp x2, ftl_sys_write + str x0, [x1,64] + add x2, x2, :lo12:ftl_sys_write + str x2, [x1,32] + adrp x2, ftl_vendor_read + adrp x0, ftl_flash_suspend + add x2, x2, :lo12:ftl_vendor_read + str x2, [x1,8] + adrp x2, ftl_vendor_write + add x0, x0, :lo12:ftl_flash_suspend + add x2, x2, :lo12:ftl_vendor_write + str x2, [x1,16] + adrp x2, ftl_nandc_get_irq_status + str x0, [x1,88] + add x2, x2, :lo12:ftl_nandc_get_irq_status + str x2, [x1,120] + adrp x2, ftl_proc_ftl_read + adrp x0, ftl_flash_resume + add x2, x2, :lo12:ftl_proc_ftl_read + str x2, [x1,128] + adrp x2, ftl_do_gc + add x0, x0, :lo12:ftl_flash_resume + add x2, x2, :lo12:ftl_do_gc + str x0, [x1,96] + str x2, [x1,104] + adrp x2, ftl_discard + ldr x0, [x19,200] + add x2, x2, :lo12:ftl_discard + str x2, [x1,56] + bl FlashInit + mov w20, w0 + cmn w22, #2 + adrp x22, .LANCHOR2 + bne .L4215 + add x19, x22, :lo12:.LANCHOR2 + adrp x1, gNandParaInfo + add x19, x19, 8 + add x1, x1, :lo12:gNandParaInfo + mov w2, 32 + mov x0, x19 + bl ftl_memcpy + ldrb w0, [x19,18] + bl flash_lsb_page_tbl_build + ldrh w0, [x19,10] + strh w0, [x19,26] +.L4215: + adrp x0, g_nandc_version_data + ldr w1, [x0,#:lo12:g_nandc_version_data] + mov w0, 12336 + movk w0, 0x5638, lsl 16 + cmp w1, w0 + adrp x1, .LANCHOR0 + bne .L4216 + adrp x0, gFlashSlcMode + ldrb w0, [x0,#:lo12:gFlashSlcMode] + cbnz w0, .L4217 +.L4216: + add x0, x1, :lo12:.LANCHOR0 + strb wzr, [x1,#:lo12:.LANCHOR0] + strb wzr, [x0,1146] +.L4217: + adrp x2, gNandFlashIDBEccBits + add x0, x1, :lo12:.LANCHOR0 + add x22, x22, :lo12:.LANCHOR2 + add x21, x21, :lo12:.LANCHOR5 + ldrb w2, [x2,#:lo12:gNandFlashIDBEccBits] + strb w2, [x0,1144] + adrp x2, gNandFlashEccBits + ldrh w3, [x22,18] + str xzr, [x21,240] + ldrb w2, [x2,#:lo12:gNandFlashEccBits] + strb w2, [x0,1236] + mov w2, 1 + mov w0, 0 +.L4218: + cmp w2, w3 + bhi .L4223 + add w0, w0, 1 + lsl w2, w2, 1 + uxth w0, w0 + b .L4218 +.L4223: + adrp x2, .LANCHOR3+1232 + add x1, x1, :lo12:.LANCHOR0 + sub w0, w0, #1 + strb wzr, [x1,1184] + strh w0, [x2,#:lo12:.LANCHOR3+1232] + cbnz w20, .L4214 + bl FtlInit + mov w20, w0 +.L4214: + adrp x0, .LC310 + mov w1, w20 + add x0, x0, :lo12:.LC310 + bl printk + mov w0, w20 +.L4211: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size rk_ftl_init, .-rk_ftl_init + .align 2 .global zftl_write .type zftl_write, %function zftl_write: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x19, x20, [sp,16] - mov w19, w0 + mov w20, w0 adrp x0, .LANCHOR2 - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - ldr w0, [x0,#:lo12:.LANCHOR2] - mov w28, w1 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - mov w23, w2 - mov x24, x3 - tbz x0, 12, .L3919 - adrp x0, .LC308 - ldr w4, [x24] - add x0, x0, :lo12:.LC308 - mov w1, w19 - mov w2, w28 - mov w3, w23 + ldr w0, [x0,#:lo12:.LANCHOR2] + mov w19, w1 + stp x23, x24, [sp,48] + stp x27, x28, [sp,80] + mov w21, w2 + mov x25, x3 + tbz x0, 12, .L4225 + adrp x0, .LC311 + ldr w4, [x25] + add x0, x0, :lo12:.LC311 + mov w1, w20 + mov w2, w19 + mov w3, w21 bl printk -.L3919: - cbnz w19, .L3920 - adrp x0, .LANCHOR0+520 - mov w19, 24576 - ldr w2, [x0,#:lo12:.LANCHOR0+520] - b .L3921 -.L3920: - cmp w19, 3 +.L4225: + cbnz w20, .L4226 + adrp x0, .LANCHOR0+1032 + mov w20, 24576 + ldr w1, [x0,#:lo12:.LANCHOR0+1032] + b .L4227 +.L4226: + cmp w20, 3 mov w0, -1 - bhi .L3922 - lsl w19, w19, 13 - mov w2, 8192 -.L3921: - add w1, w28, w23 + bhi .L4228 + lsl w20, w20, 13 + mov w1, 8192 +.L4227: + cmp w19, w1 + bcs .L4244 + cmp w21, w1 + bhi .L4244 + add w2, w19, w21 mov w0, -1 - cmp w1, w2 - bhi .L3922 - add w28, w19, w28 - adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 - sub w22, w23, #1 - add w22, w22, w28 - add w26, w28, w23 - ldrb w0, [x0,2848] - udiv w25, w28, w0 - mov w21, w25 - udiv w22, w22, w0 - sub w20, w22, w25 - add w20, w20, 1 -.L3923: - cbz w20, .L3942 + cmp w2, w1 + bhi .L4228 + add w19, w20, w19 + adrp x20, .LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 + sub w24, w21, #1 + add w24, w24, w19 + add w27, w19, w21 + ldrb w0, [x0,3360] + udiv w26, w19, w0 + mov w23, w26 + udiv w24, w24, w0 + sub w22, w24, w26 + add w22, w22, 1 +.L4229: + cbz w22, .L4255 + add x0, x20, :lo12:.LANCHOR0 + ldrb w1, [x0,3388] + cbz w1, .L4230 + ldrb w0, [x0,3362] + cmp w0, 2 + bhi .L4230 + bl ftl_write_commit +.L4230: mov w0, 0 bl buf_alloc - mov x27, x0 - cbnz x0, .L3924 + mov x28, x0 + cbnz x0, .L4231 bl ftl_write_commit - b .L3923 -.L3924: + b .L4229 +.L4231: strb wzr, [x0,57] - add x0, x19, :lo12:.LANCHOR0 - cmp w21, w25 - ldrb w4, [x0,2848] + add x0, x20, :lo12:.LANCHOR0 + cmp w23, w26 + ldrb w4, [x0,3360] cset w0, eq - strb w4, [x27,56] - cmp w21, w22 - beq .L3926 - cbz w0, .L3927 - b .L3936 -.L3926: - cbz w0, .L3928 -.L3936: - udiv w0, w28, w4 - msub w0, w0, w4, w28 + strb w4, [x28,56] + cmp w23, w24 + beq .L4233 + cbz w0, .L4234 + b .L4246 +.L4233: + cbz w0, .L4235 +.L4246: + udiv w0, w19, w4 + msub w0, w0, w4, w19 uxtb w0, w0 - strb w0, [x27,57] + strb w0, [x28,57] sub w4, w4, w0 uxtb w4, w4 - cmp w4, w23 - csel w4, w23, w4, hi - b .L3940 -.L3928: - msub w4, w4, w21, w26 -.L3940: - strb w4, [x27,56] -.L3927: - ldrb w1, [x27,57] - sub w20, w20, #1 - ldr x0, [x27,8] - ldrb w2, [x27,56] + cmp w4, w21 + csel w4, w21, w4, hi + b .L4253 +.L4235: + msub w4, w4, w23, w27 +.L4253: + strb w4, [x28,56] +.L4234: + ldrb w1, [x28,57] + sub w22, w22, #1 + ldr x0, [x28,8] + ldrb w2, [x28,56] add x0, x0, x1, lsl 9 - mov x1, x24 + mov x1, x25 lsl w2, w2, 9 bl ftl_memcpy - str w21, [x27,36] - add x0, x19, :lo12:.LANCHOR0 - add w21, w21, 1 - ldr x1, [x0,2880] + str w23, [x28,36] + add x0, x20, :lo12:.LANCHOR0 + add w23, w23, 1 + ldr x1, [x0,3392] ldr w0, [x1,8] add w2, w0, 1 str w2, [x1,8] - str w0, [x27,32] - mov x0, x27 + str w0, [x28,32] + mov x0, x28 bl ftl_write_buf - ldrb w0, [x27,56] - add x24, x24, x0, lsl 9 - b .L3923 -.L3942: + ldrb w0, [x28,56] + add x25, x25, x0, lsl 9 + b .L4229 +.L4255: bl ftl_write_commit - mov w0, w20 -.L3941: mov w1, 1 + mov w0, w22 bl zftl_do_gc - add x1, x19, :lo12:.LANCHOR0 - ldrh w2, [x1,2860] - ldrh w0, [x1,2864] + add x1, x20, :lo12:.LANCHOR0 + ldr x0, [x1,1120] + ldrh w0, [x0,124] + cbnz w0, .L4239 + ldrh w2, [x1,3376] + ldrh w0, [x1,3380] + add w0, w2, w0 + cmp w0, 11 + bgt .L4241 +.L4239: + mov w0, 0 + mov w1, 1 +.L4254: + bl zftl_do_gc +.L4241: + add x1, x20, :lo12:.LANCHOR0 + ldrh w2, [x1,3376] + ldrh w0, [x1,3380] add w0, w2, w0 cmp w0, 7 - bgt .L3943 + bgt .L4256 + mov w1, 1 mov w0, 0 - b .L3941 -.L3943: + bl zftl_do_gc + mov w0, 1 + mov w1, w0 + b .L4254 +.L4256: bl timer_get_time - adrp x1, .LANCHOR6+260 - str w0, [x1,#:lo12:.LANCHOR6+260] + adrp x1, .LANCHOR5+936 + str w0, [x1,#:lo12:.LANCHOR5+936] mov w0, 0 -.L3922: + b .L4228 +.L4244: + mov w0, -1 +.L4228: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -25135,8 +27025,6 @@ zftl_sys_write: .type zftl_discard, %function zftl_discard: stp x29, x30, [sp, -128]! - add w2, w0, w1 - mov w4, -1 add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 @@ -25146,188 +27034,196 @@ zftl_discard: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w1, [x1,520] + ldr w1, [x1,1032] + cmp w0, w1 + bcs .L4280 + cmp w19, w1 + cset w5, hi + cbnz w5, .L4280 + add w2, w0, w19 + mov w4, -1 cmp w2, w1 - bhi .L3947 - adrp x22, .LANCHOR6 - add w23, w0, 24576 - add x0, x22, :lo12:.LANCHOR6 - adrp x25, .LANCHOR2 - ldr w1, [x0,264] + bhi .L4260 + adrp x23, .LANCHOR5 + add w22, w0, 24576 + add x0, x23, :lo12:.LANCHOR5 + ldr w1, [x0,984] add w1, w19, w1 - str w1, [x0,264] - ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3948 - adrp x0, .LC309 - mov w2, w23 - add x0, x0, :lo12:.LC309 + str w1, [x0,984] + adrp x0, .LANCHOR2 + str x0, [x29,104] + ldr w2, [x0,#:lo12:.LANCHOR2] + tbz x2, 12, .L4261 + adrp x0, .LC312 + mov w2, w22 + add x0, x0, :lo12:.LC312 mov w3, w19 - mov w4, 0 + mov w4, w5 bl printk -.L3948: +.L4261: add x20, x21, :lo12:.LANCHOR0 - ldr x0, [x20,2880] - ldr w26, [x0,8] - add w1, w26, 1 + ldr x0, [x20,3392] + ldr w25, [x0,8] + add w1, w25, 1 str w1, [x0,8] bl ftl_write_commit bl ftl_flush - ldrb w24, [x20,2848] - udiv w20, w23, w24 - msub w27, w20, w24, w23 - cbz w27, .L3949 - sub w24, w24, w27 + ldrb w24, [x20,3360] + udiv w20, w22, w24 + msub w26, w20, w24, w22 + cbz w26, .L4262 + sub w24, w24, w26 mov w0, w20 cmp w24, w19 csel w24, w24, w19, ls bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - bne .L3950 + bne .L4263 mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L3950: +.L4263: ldr w0, [x29,120] - and w28, w24, 65535 + and w27, w24, 65535 cmn w0, #1 - beq .L3952 + beq .L4265 mov w0, 0 bl buf_alloc - mov x3, x0 - cbz x0, .L3952 - strb w27, [x0,57] - ubfiz x27, x27, 9, 25 + mov x28, x0 + cbz x0, .L4265 + strb w26, [x0,57] + ubfiz x26, x26, 9, 25 str w20, [x0,36] mov w1, 0 strb w24, [x0,56] - lsl w2, w28, 9 - str w26, [x0,32] + lsl w2, w27, 9 + str w25, [x0,32] ldr x0, [x0,8] - str x3, [x29,104] - add x0, x0, x27 + add x0, x0, x26 bl ftl_memset - ldr x3, [x29,104] - mov x0, x3 + mov x0, x28 bl ftl_write_buf bl ftl_write_commit add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,2880] + ldr x1, [x0,3392] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3952: +.L4265: add w20, w20, 1 - sub w19, w19, w28 -.L3949: - cbz w19, .L3954 + sub w19, w19, w27 +.L4262: + cbz w19, .L4267 bl ftl_flush -.L3954: +.L4267: mov w0, -1 - mov w27, 1 + mov w26, 1 str w0, [x29,124] + adrp x27, .LANCHOR3 mov w28, 24 -.L3955: +.L4268: add x24, x21, :lo12:.LANCHOR0 - ldrb w0, [x24,2848] + ldrb w0, [x24,3360] cmp w19, w0 - bcc .L3994 + bcc .L4308 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - beq .L3956 + beq .L4269 mov w0, 0 bl buf_alloc mov x3, x0 - cbz x0, .L3958 - ldrb w2, [x24,2848] + cbz x0, .L4271 + ldrb w2, [x24,3360] mov w1, 0 str w20, [x0,36] strb w2, [x0,56] lsl w2, w2, 9 - str w26, [x0,32] + str w25, [x0,32] strb wzr, [x0,57] ldr x0, [x0,8] - str x3, [x29,104] + str x3, [x29,96] bl ftl_memset - ldr x3, [x29,104] + ldr x3, [x29,96] mov x0, x3 bl ftl_write_buf bl ftl_write_commit - b .L3993 -.L3956: + b .L4307 +.L4269: mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys ldr w0, [x29,120] cmn w0, #1 - beq .L3958 + beq .L4271 add x1, x29, 124 mov w2, 1 mov w0, w20 bl pm_log2phys - ldrb w1, [x24,744] - ldrh w2, [x24,3536] - sub w1, w28, w1 + add x2, x27, :lo12:.LANCHOR3 + ldrb w1, [x24,1257] ldr w0, [x29,120] - sub w1, w1, w2 - lsl w1, w27, w1 - lsr w0, w0, w2 + sub w1, w28, w1 + ldrh w3, [x2,1232] + sub w1, w1, w3 + lsr w0, w0, w3 + lsl w1, w26, w1 sub w1, w1, #1 and w1, w1, w0 - ldrb w0, [x24,3538] + ldrb w0, [x2,1234] udiv w0, w1, w0 bl ftl_vpn_decrement -.L3993: - ldr x1, [x24,2880] +.L4307: + ldr x1, [x24,3392] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3958: +.L4271: add x0, x21, :lo12:.LANCHOR0 add w20, w20, 1 - ldrb w0, [x0,2848] + ldrb w0, [x0,3360] sub w19, w19, w0 - b .L3955 -.L3994: - cbz w19, .L3962 + b .L4268 +.L4308: + cbz w19, .L4275 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - bne .L3963 + bne .L4276 mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L3963: +.L4276: ldr w0, [x29,120] cmn w0, #1 - beq .L3962 + beq .L4275 mov w0, 0 bl buf_alloc mov x24, x0 - cbz x0, .L3962 + cbz x0, .L4275 str w20, [x0,36] strb wzr, [x0,57] strb w19, [x0,56] - str w26, [x0,32] + str w25, [x0,32] add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,2848] + ldrb w0, [x0,3360] cmp w19, w0 - bcc .L3965 + bcc .L4278 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1259 - add x1, x1, 848 + mov w2, 1477 + add x1, x1, 1024 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3965: +.L4278: ldr x0, [x24,8] mov w1, 0 lsl w2, w19, 9 @@ -25336,32 +27232,36 @@ zftl_discard: bl ftl_write_buf bl ftl_write_commit add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,2880] + ldr x1, [x0,3392] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3962: - add x0, x22, :lo12:.LANCHOR6 +.L4275: + add x0, x23, :lo12:.LANCHOR5 mov w4, 0 - ldr w1, [x0,264] + ldr w1, [x0,984] cmp w1, 8192 - bls .L3947 - ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3966 - adrp x0, .LC309 - mov w2, w23 - add x0, x0, :lo12:.LC309 + bls .L4260 + ldr x0, [x29,104] + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L4279 + adrp x0, .LC312 + mov w2, w22 + add x0, x0, :lo12:.LC312 mov w3, w19 bl printk -.L3966: - add x22, x22, :lo12:.LANCHOR6 +.L4279: + add x23, x23, :lo12:.LANCHOR5 add x21, x21, :lo12:.LANCHOR0 - str wzr, [x22,264] + str wzr, [x23,984] bl flt_sys_flush mov w0, 1 mov w4, 0 - str w0, [x21,2900] -.L3947: + str w0, [x21,3412] + b .L4260 +.L4280: + mov w4, -1 +.L4260: mov w0, w4 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -25376,47 +27276,47 @@ zftl_discard: .type dump_pm_blk, %function dump_pm_blk: stp x29, x30, [sp, -48]! - adrp x0, .LC268 + adrp x0, .LC264 mov w2, 4 add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 - add x0, x0, :lo12:.LC268 + add x0, x0, :lo12:.LC264 stp x19, x20, [sp,16] add x19, x21, :lo12:.LANCHOR0 - adrp x20, .LANCHOR3 + adrp x20, .LANCHOR5 mov w22, 65535 - ldr x3, [x19,2880] + ldr x3, [x19,3392] add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex - add x3, x20, :lo12:.LANCHOR3 - ldr x1, [x19,2880] - adrp x0, .LC269 + add x3, x20, :lo12:.LANCHOR5 + ldr x1, [x19,3392] + adrp x0, .LC265 mov w2, 2 - add x0, x0, :lo12:.LC269 + add x0, x0, :lo12:.LC265 add x1, x1, 416 - ldrh w3, [x3,1456] + ldrh w3, [x3,176] mov w19, 0 bl rknand_print_hex -.L3996: - add x0, x20, :lo12:.LANCHOR3 - ldrh w0, [x0,1456] +.L4310: + add x0, x20, :lo12:.LANCHOR5 + ldrh w0, [x0,176] cmp w0, w19 - bls .L3999 + bls .L4313 add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,2880] + ldr x0, [x0,3392] add x0, x0, x19, sxtw 1 ldrh w0, [x0,416] cmp w0, w22 - beq .L3997 + beq .L4311 mov x1, 0 bl ftl_sblk_dump -.L3997: +.L4311: add w19, w19, 1 uxth w19, w19 - b .L3996 -.L3999: + b .L4310 +.L4313: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -25431,64 +27331,66 @@ id_block_prog_msb_ff_data: stp x21, x22, [sp,32] adrp x21, .LANCHOR0 stp x23, x24, [sp,48] - uxtb w24, w0 + uxtb w23, w0 add x0, x21, :lo12:.LANCHOR0 stp x19, x20, [sp,16] stp x25, x26, [sp,64] stp x27, x28, [sp,80] uxth w19, w2 - ldr x2, [x0,624] - ldrb w0, [x0,634] + ldr x2, [x0,1136] + ldrb w0, [x0,1146] ldrb w2, [x2,19] - cbnz w0, .L4000 + cbnz w0, .L4314 sub w0, w2, #5 uxtb w0, w0 cmp w0, 2 - bls .L4002 + bls .L4316 cmp w2, 68 - beq .L4002 + beq .L4316 sub w2, w2, #19 and w2, w2, -17 uxtb w2, w2 - cbnz w2, .L4000 -.L4002: + cbnz w2, .L4314 +.L4316: adrp x20, .LANCHOR3 - adrp x22, .LC310 + adrp x24, .LC313 add x20, x20, :lo12:.LANCHOR3 - mov w23, w1 - add x22, x22, :lo12:.LC310 - add x26, x20, 356 + mov w25, w1 + add x24, x24, :lo12:.LC313 + add x20, x20, 2396 mov w27, 65535 -.L4004: - add x25, x21, :lo12:.LANCHOR0 - ldr x0, [x25,624] +.L4318: + add x28, x21, :lo12:.LANCHOR0 + ldr x0, [x28,1136] ldrh w0, [x0,10] cmp w0, w19 - bls .L4000 - add w28, w19, w23 - ldrh w3, [x26,w19,sxtw 1] - mov x0, x22 + bls .L4314 + add w26, w19, w25 + ldrh w3, [x20,w19,sxtw 1] + mov x0, x24 mov w1, w19 - mov w2, w28 + mov w2, w26 bl printk - ldrh w0, [x26,w19,sxtw 1] + ldrh w0, [x20,w19,sxtw 1] cmp w0, w27 - bne .L4000 - ldr x0, [x20,1488] + bne .L4314 + adrp x22, .LANCHOR5 mov w1, 255 + add x22, x22, :lo12:.LANCHOR5 mov w2, 16384 add w19, w19, 1 - bl ftl_memset + ldr x0, [x22,208] uxth w19, w19 - ldr x4, [x25,624] - mov w0, w24 - ldr x2, [x20,1488] - mov w1, w28 + bl ftl_memset + ldr x4, [x28,1136] + mov w0, w23 + ldr x2, [x22,208] + mov w1, w26 ldrb w4, [x4,9] mov x3, x2 bl flash_prog_page - b .L4004 -.L4000: + b .L4318 +.L4314: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -25501,485 +27403,647 @@ id_block_prog_msb_ff_data: .global write_idblock .type write_idblock, %function write_idblock: - stp x29, x30, [sp, -272]! + stp x29, x30, [sp, -304]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - stp x25, x26, [sp,64] - add x26, x21, :lo12:.LANCHOR0 - mov x25, x1 stp x23, x24, [sp,48] + adrp x23, .LANCHOR0 + add x3, x23, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] stp x19, x20, [sp,16] + stp x25, x26, [sp,64] stp x27, x28, [sp,80] + ldr x4, [x3,1136] + ldrb w3, [x3,1146] + str w3, [x29,140] + ldrb w20, [x4,9] + ldrh w24, [x4,10] + adrp x4, .LANCHOR2+34 + ldr w3, [x1] + ldrh w21, [x4,#:lo12:.LANCHOR2+34] + ldrb w4, [x23,#:lo12:.LANCHOR0] + str w4, [x29,156] + ldrh w4, [x29,156] + str w4, [x29,212] + mov w4, 19282 + movk w4, 0x534e, lsl 16 + cmp w3, w4 + mov w4, 35899 + movk w4, 0xfcdc, lsl 16 + cset w5, ne + cmp w3, w4 + cset w4, ne + tst w5, w4 + beq .L4321 + mov w4, 19282 + movk w4, 0x5353, lsl 16 + cmp w3, w4 + bne .L4455 +.L4321: + cmp w0, 15 + bls .L4455 mov w19, w0 - str x2, [x29,176] - ldr x0, [x26,624] - ldrb w20, [x0,9] - ldrh w22, [x0,10] - adrp x0, .LANCHOR2+34 - ldrh w23, [x0,#:lo12:.LANCHOR2+34] - ldrb w0, [x21,#:lo12:.LANCHOR0] - str w0, [x29,172] - ldrh w0, [x29,172] - str w0, [x29,200] - ldrb w0, [x26,634] - str w0, [x29,164] mov w0, 59392 movk w0, 0x3, lsl 16 + str x2, [x29,160] + str x1, [x29,216] bl ftl_malloc - str x21, [x29,184] - mov x24, x0 - mov w0, -1 - cbz x24, .L4082 - adrp x0, .LANCHOR6+238 - mov w21, 0 - ldrb w0, [x0,#:lo12:.LANCHOR6+238] - cbz w0, .L4008 - ldr x0, [x29,184] - ldrb w1, [x0,#:lo12:.LANCHOR0] - ldrb w0, [x26,634] - cbz w1, .L4009 - cmp w0, w21 - cset w21, eq - b .L4008 -.L4009: + mov x22, x0 + cbz x0, .L4455 + adrp x0, .LANCHOR5+960 + str wzr, [x29,236] + ldrb w0, [x0,#:lo12:.LANCHOR5+960] + cbz w0, .L4448 + add x0, x23, :lo12:.LANCHOR0 + ldrb w1, [x23,#:lo12:.LANCHOR0] + ldrb w0, [x0,1146] + cbz w1, .L4325 + cmp w0, wzr + cset w0, eq + b .L4451 +.L4325: cmp w0, 3 - beq .L4047 - ldr w2, [x29,200] + beq .L4379 + ldr w2, [x29,212] cmp w0, 2 mov w1, 2 - mov w21, 3 csel w1, w2, w1, ne cmp w0, 2 - str w1, [x29,200] - csel w21, wzr, w21, ne - b .L4008 -.L4047: - str w0, [x29,200] - mov w21, 2 -.L4008: + mov w0, 3 + str w1, [x29,212] + csel w0, wzr, w0, ne + b .L4451 +.L4379: + str w0, [x29,212] + mov w0, 2 +.L4451: + str w0, [x29,236] +.L4448: + ldr x0, [x29,216] + mov w1, 19282 + movk w1, 0x534e, lsl 16 + ldr w0, [x0] + cmp w0, w1 + mov w1, 35899 + movk w1, 0xfcdc, lsl 16 + cset w2, ne + cmp w0, w1 + cset w1, ne + tst w2, w1 + beq .L4327 + mov w1, 19282 + movk w1, 0x5353, lsl 16 + cmp w0, w1 + beq .L4327 + mov x0, x22 + bl ftl_free +.L4455: + mov w0, -1 + b .L4449 +.L4327: mov w0, 0 add w19, w19, 511 - lsr w19, w19, 9 + mul w24, w20, w24 bl zftl_flash_exit_slc_mode - ldr x0, [x29,184] + lsr w19, w19, 9 + add x0, x23, :lo12:.LANCHOR0 cmp w19, 8 - ldr x1, [x29,184] - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,634] - strb w0, [x1,#:lo12:.LANCHOR0] - bls .L4049 - cmp w19, 500 - bhi .L4011 - b .L4010 -.L4049: - mov w19, 8 -.L4010: - ldr w1, [x25] - mov w0, 35899 - movk w0, 0xfcdc, lsl 16 - cmp w1, w0 - beq .L4012 -.L4011: - mov x0, x24 - bl ftl_free - mov w0, -1 - b .L4082 -.L4012: - uxth w20, w20 mov w3, 0 mov w2, 63871 - mov w4, 4097 - mul w22, w20, w22 - uxth w22, w22 - sub w0, w22, #1 + ldrb w0, [x0,1146] + strb w0, [x23,#:lo12:.LANCHOR0] + mov w0, 8 + csel w19, w19, w0, cs + sub w0, w24, #1 add w0, w0, w19 - udiv w0, w0, w22 - str w0, [x29,160] - add x0, x25, 253952 - add x0, x0, 1532 -.L4016: - ldr w1, [x0] - cbnz w1, .L4013 - ldr w1, [x25,w3,uxtw 2] + udiv w0, w0, w24 + str w0, [x29,136] + ldr x0, [x29,216] + add x0, x0, 253952 + add x0, x0, 2044 +.L4333: + sub x1, x0, #512 + ldr w1, [x1] + cbnz w1, .L4328 + cbnz w3, .L4329 + mov w1, 17739 + movk w1, 0x4e52, lsl 16 + b .L4452 +.L4329: + ldr x1, [x29,216] + ldr w1, [x1,w3,uxtw 2] +.L4452: add w3, w3, 1 - cmp w3, w4 sub w2, w2, #1 - str w1, [x0,512] + cmp w3, 4095 + str w1, [x0] csel w3, w3, wzr, cc cmp w2, 4096 sub x0, x0, #4 - bne .L4016 - b .L4015 -.L4013: - adrp x0, .LC311 - add x0, x0, :lo12:.LC311 - bl printk -.L4015: - mul w20, w20, w23 - ldr x1, [x29,176] - mov w2, 4 - mov w3, 5 - mov x22, 0 - uxth w0, w20 - str w0, [x29,192] - adrp x0, .LC312 - adrp x27, .LANCHOR0 - add x0, x0, :lo12:.LC312 - bl rknand_print_hex - adrp x0, .LC313 - mov w1, w19 - add x0, x0, :lo12:.LC313 - mov w2, w19 - bl printk - str w22, [x29,204] - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - str x0, [x29,144] + bne .L4333 + b .L4332 +.L4328: adrp x0, .LC314 add x0, x0, :lo12:.LC314 - str x0, [x29,136] -.L4042: - adrp x1, .LANCHOR6+238 - mov w0, w22 - ldrb w1, [x1,#:lo12:.LANCHOR6+238] - cbnz w1, .L4017 - ldr x1, [x29,176] - ldr w2, [x29,192] - ldr w1, [x1,x22,lsl 2] + bl printk +.L4332: + mul w0, w20, w21 + str w0, [x29,168] + adrp x0, .LC315 + ldr x1, [x29,160] + add x0, x0, :lo12:.LC315 + mov w2, 4 + mov w3, 5 + mov x21, 0 + bl rknand_print_hex + adrp x0, .LC316 + mov w1, w19 + add x0, x0, :lo12:.LC316 + mov w2, w19 + bl printk + str w21, [x29,232] + adrp x0, .LC317 + add x0, x0, :lo12:.LC317 + str x0, [x29,112] + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + str x0, [x29,104] +.L4375: + adrp x26, .LANCHOR5 + mov w0, w21 + add x1, x26, :lo12:.LANCHOR5 + ldrb w1, [x1,960] + cbnz w1, .L4334 + ldr x1, [x29,160] + ldr w2, [x29,168] + ldr w1, [x1,x21,lsl 2] mul w20, w1, w2 - cbz w22, .L4018 - ldr w2, [x29,160] + cbz w21, .L4335 + ldr w2, [x29,136] cmp w2, 1 - bls .L4018 - sub w0, w22, #1 - ldr x2, [x29,176] + bls .L4335 + sub w0, w21, #1 + ldr x2, [x29,160] ldr w0, [x2,x0,lsl 2] add w0, w0, 1 cmp w1, w0 - bne .L4018 - b .L4019 -.L4017: - adrp x1, .LANCHOR0 - add x28, x1, :lo12:.LANCHOR0 - ldr x1, [x28,728] - add x1, x1, x22, uxtw + bne .L4335 + b .L4336 +.L4334: + adrp x24, .LANCHOR0 + add x25, x24, :lo12:.LANCHOR0 + ldr x1, [x25,1240] + add x1, x1, x21, uxtw ldrb w20, [x1,32] + mov x1, x24 cmp w20, 255 - beq .L4019 - ldr w1, [x29,192] - mul w20, w20, w1 - cbz w21, .L4018 - tbnz x0, 0, .L4054 - cmp w21, 3 + beq .L4336 + ldr w2, [x29,168] + mul w20, w20, w2 + ldr w2, [x29,236] + cbz w2, .L4335 + tbnz x0, 0, .L4385 + cmp w2, 3 cset w23, eq - cbz w23, .L4020 -.L4054: - add x1, x27, :lo12:.LANCHOR0 - ldrb w0, [x29,200] - strb w0, [x27,#:lo12:.LANCHOR0] - strb w0, [x1,634] - b .L4018 -.L4020: + cbz w23, .L4337 +.L4385: + add x2, x1, :lo12:.LANCHOR0 + ldrb w0, [x29,212] + strb w0, [x1,#:lo12:.LANCHOR0] + strb w0, [x2,1146] + b .L4335 +.L4337: mov w0, w23 bl zftl_flash_exit_slc_mode - strb w23, [x28,634] - adrp x0, .LANCHOR0 - strb w23, [x0,#:lo12:.LANCHOR0] -.L4018: + strb w23, [x24,#:lo12:.LANCHOR0] + strb w23, [x25,1146] +.L4335: mov w1, 0 mov w2, 512 - mov x0, x24 + mov x0, x22 + adrp x24, .LANCHOR0 bl ftl_memset - ldr x0, [x29,184] - add x1, x0, :lo12:.LANCHOR0 - ldr x2, [x1,624] - ldrb w28, [x2,9] - ldrh w2, [x2,10] - uxth w0, w28 - mul w2, w0, w2 - uxth w26, w2 - ldr x2, [x29,144] - ldrh w23, [x2,34] - mul w23, w0, w23 - ldrb w0, [x1,720] - strb wzr, [x1,720] - udiv w1, w20, w28 - str w0, [x29,156] + add x0, x24, :lo12:.LANCHOR0 + ldr x1, [x0,1136] + ldrb w25, [x1,9] + ldrh w28, [x1,10] + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + mul w28, w25, w28 + ldrh w27, [x1,34] + ldrb w1, [x0,1232] + str w1, [x29,132] + udiv w1, w20, w25 + strb wzr, [x0,1232] mov w0, 0 - uxth w23, w23 + mul w27, w25, w27 bl flash_erase_block - cmp w19, w26 - mov w3, 1 - bls .L4022 + cmp w19, w28 + mov w1, 1 + bls .L4339 + add w1, w20, w27 mov w0, 0 - add w1, w20, w23 bl flash_erase_block - mov w3, 2 -.L4022: - adrp x0, .LANCHOR0 - add x26, x0, :lo12:.LANCHOR0 - ldr x1, [x26,624] - ldrh w0, [x1,10] - ldrb w1, [x1,12] - lsl w0, w0, 2 - mul w0, w0, w3 - sdiv w0, w0, w1 - str w0, [x29,152] - udiv w0, w20, w23 - msub w0, w0, w23, w20 - str w0, [x29,168] - sub w0, w20, w0 - str w0, [x29,196] - cmp w20, w0 - bne .L4052 - ldrb w0, [x26,516] + mov w1, 2 +.L4339: + add x3, x24, :lo12:.LANCHOR0 + ldr x0, [x3,1136] + ldrh w23, [x0,10] + ldrb w0, [x0,12] + lsl w23, w23, 2 + mul w23, w23, w1 + sdiv w0, w23, w0 + str w0, [x29,204] + udiv w0, w20, w27 + msub w0, w0, w27, w20 + str w0, [x29,208] + sub w28, w20, w0 + cmp w20, w28 + bne .L4383 + ldrb w0, [x3,1028] cmp w0, 9 - bne .L4052 - adrp x0, .LANCHOR3+1528 + bne .L4383 + add x26, x26, :lo12:.LANCHOR5 mov w1, 0 mov w2, 1024 - ldr x3, [x0,#:lo12:.LANCHOR3+1528] - str x3, [x29,128] - mov x0, x3 + str x3, [x29,224] + ldr x26, [x26,248] + mov x0, x26 bl ftl_memset - ldr x3, [x29,128] + str wzr, [x26,12] mov w0, 18766 + ldr x3, [x29,224] movk w0, 0x464e, lsl 16 - str w0, [x3] + str w0, [x26] mov w0, 12 - str w0, [x3,4] - ldrb w0, [x26,634] - str wzr, [x3,12] - strb wzr, [x3,16] - cbz w0, .L4024 - ldr x0, [x26,624] + str w0, [x26,4] + ldrb w0, [x3,1146] + strb wzr, [x26,16] + cbz w0, .L4341 + ldr x0, [x3,1136] ldrb w0, [x0,29] - strb w0, [x3,16] -.L4024: + strb w0, [x26,16] +.L4341: + add x24, x24, :lo12:.LANCHOR0 mov w0, 4 - strb w0, [x3,17] - add x0, x27, :lo12:.LANCHOR0 - cmp w28, 8 - str x3, [x29,128] - sub w23, w19, #4 - ldr x1, [x0,624] + strb w0, [x26,17] + cmp w25, 8 + ldr x1, [x24,1136] ldrh w0, [x1,10] ldrb w1, [x1,12] - strb wzr, [x3,20] - strh wzr, [x3,22] + strb wzr, [x26,20] + strh wzr, [x26,22] sdiv w0, w0, w1 mov w1, 16 - strh w0, [x3,18] + strh w0, [x26,18] mov w0, 70 csel w0, w0, w1, hi mov w1, 12 - strb w0, [x3,21] - add x0, x3, 12 + strb w0, [x26,21] + add x0, x26, 12 bl js_hash - ldr x3, [x29,128] - str w0, [x3,8] - b .L4023 -.L4052: - mov w23, w19 - mov x3, 0 -.L4023: - adrp x0, .LANCHOR0 - mov x26, x25 - mov w9, 0 - add x11, x0, :lo12:.LANCHOR0 -.L4026: - ldr w0, [x29,152] - cmp w9, w0 - bcs .L4085 - ldr w0, [x29,168] - ldrb w2, [x11,634] - add w8, w9, w0 - add x0, x11, 4 + str w0, [x26,8] + sub w0, w19, #4 + str w0, [x29,224] + b .L4340 +.L4383: + str w19, [x29,224] + mov x26, 0 +.L4340: + adrp x10, .LANCHOR0 + ldr x24, [x29,216] + mov w23, 0 + add x27, x10, :lo12:.LANCHOR0 +.L4343: + ldr w0, [x29,204] + cmp w23, w0 + bcs .L4456 + ldr w0, [x29,208] + ldrb w2, [x27,1146] + add w8, w23, w0 + add x0, x27, 4 ubfx x8, x8, 2, 16 add w1, w8, 1 ldrh w0, [x0,w1,sxtw 1] - cbz w2, .L4028 - ldrb w4, [x11,1] + cbz w2, .L4345 + ldrb w3, [x27,1] lsl w0, w1, 1 - cmp w4, wzr + cmp w3, wzr csel w0, w0, w1, ne -.L4028: - ldrb w1, [x11,516] +.L4345: + ldrb w1, [x27,1028] cmp w1, 9 - beq .L4084 + beq .L4453 sub w0, w0, #1 lsl w0, w0, 2 -.L4084: - str w0, [x29,208] +.L4453: + str w0, [x29,240] mov w0, 61424 - str w0, [x29,212] - add x0, x11, 4 + str w0, [x29,244] + add x0, x27, 4 ldrh w0, [x0,w8,sxtw 1] - cbnz w2, .L4032 + cbnz w2, .L4349 mov w8, w0 - b .L4033 -.L4032: - ldrb w1, [x11,1] + b .L4350 +.L4349: + ldrb w1, [x27,1] lsl w0, w8, 1 cmp w1, wzr csel w8, w0, w8, ne -.L4033: - mul w0, w8, w28 - cbnz x3, .L4034 - ldr w1, [x29,196] - mov w2, w9 - ldr w5, [x26] +.L4350: + mul w0, w8, w25 + cbnz x26, .L4351 + add w26, w0, w28 + ldr w5, [x24] + ldr w6, [x29,240] + mov w1, w26 + ldr x0, [x29,112] + mov w2, w23 mov w3, w19 - add w12, w0, w1 - ldr w6, [x29,208] - ldr x0, [x29,136] - mov w1, w12 - mov x4, x26 + mov x4, x24 mov w7, 61424 - str x11, [x29,104] - str x8, [x29,112] - str x9, [x29,128] - str x12, [x29,120] + str x8, [x29,192] bl printk - ldr x12, [x29,120] - mov x1, x26 - add x2, x29, 208 - mov w0, w12 - bl fw_flash_page_prog.constprop.29 - ldr x11, [x29,104] - ldr x9, [x29,128] - ldr x8, [x29,112] - ldrb w0, [x11,634] - cbnz w0, .L4035 - ldr w1, [x29,196] + mov w0, w26 + mov x1, x24 + add x2, x29, 240 + bl fw_flash_page_prog.constprop.31 + ldrb w0, [x27,1146] + ldr x8, [x29,192] + cbnz w0, .L4352 + udiv w1, w28, w25 add w2, w8, 1 - str x11, [x29,120] - udiv w1, w1, w28 bl id_block_prog_msb_ff_data - ldr x11, [x29,120] - ldr x9, [x29,128] -.L4035: - add w0, w23, 16 - add x26, x26, 2048 - cmp w9, w0 - bcc .L4036 - add w1, w23, 20 - add x0, x25, 2048 - cmp w9, w1 - csel x26, x26, x0, cs - b .L4036 -.L4034: - ldr w1, [x29,196] - add x2, x29, 208 - str x11, [x29,120] - add w0, w0, w1 - mov x1, x3 - str x9, [x29,128] - bl fw_flash_page_prog.constprop.29 - ldr x11, [x29,120] - ldr x9, [x29,128] -.L4036: - add w9, w9, 4 - mov x3, 0 - uxth w9, w9 - b .L4026 -.L4085: - add x28, x27, :lo12:.LANCHOR0 - ldrb w0, [x29,156] - mov w1, w23 +.L4352: + ldr w0, [x29,224] + add x24, x24, 2048 + add w0, w0, 16 + cmp w23, w0 + bcc .L4353 + ldr w0, [x29,224] + add w1, w0, 20 + ldr x0, [x29,216] + cmp w23, w1 + add x0, x0, 2048 + csel x24, x24, x0, cs + b .L4353 +.L4351: + add w0, w0, w28 + mov x1, x26 + add x2, x29, 240 + bl fw_flash_page_prog.constprop.31 +.L4353: + add w9, w23, 4 + mov x26, 0 + uxth w23, w9 + b .L4343 +.L4456: + ldr x0, [x29,104] + adrp x23, .LANCHOR0 + add x23, x23, :lo12:.LANCHOR0 + mov w25, 0 + add x0, x0, 8 + mov x24, x22 + ldrb w1, [x0,9] + mov w26, 4 + str w1, [x29,152] + ldrh w0, [x0,26] + strb wzr, [x23,1232] + str w25, [x29,200] + mul w0, w1, w0 + udiv w1, w20, w0 + msub w0, w1, w0, w20 + str w0, [x29,204] + sub w0, w20, w0 + str w0, [x29,148] + ldr w0, [x29,204] + and w0, w0, 3 + str w0, [x29,192] + ldr w0, [x29,224] + str w0, [x29,172] + adrp x0, .LC318 + add x0, x0, :lo12:.LC318 + str x0, [x29,120] +.L4355: + ldr w0, [x29,172] + adrp x27, .LANCHOR0 + cmp w25, w0 + bcs .L4457 + ldr w0, [x29,192] + add x1, x23, 4 + ldrb w2, [x23,1146] + sub w0, w26, w0 + uxth w0, w0 + str w0, [x29,176] + ldr w0, [x29,204] + add w0, w25, w0 + udiv w0, w0, w26 + and w0, w0, 65535 + ldrh w1, [x1,w0,sxtw 1] + cbnz w2, .L4356 + mov w0, w1 + b .L4357 +.L4356: + ldrb w2, [x23,1] + lsl w1, w0, 1 + cmp w2, wzr + csel w0, w1, w0, ne +.L4357: + ldr w1, [x29,152] + ldr w2, [x29,148] + madd w0, w0, w1, w2 + str w0, [x29,144] + ldrb w0, [x23,1144] + str w0, [x29,208] + ldr w1, [x29,192] + ldr w0, [x29,144] + add w27, w0, w1 + ldr x0, [x23,1136] + ldrb w0, [x0,9] + udiv w27, w27, w0 + ldrb w0, [x23,1236] + str w0, [x29,128] + ldr w0, [x29,208] + bl nandc_bch_sel +.L4358: + mov w0, 0 + mov w1, w27 mov x2, x24 - strb w0, [x28,720] - mov w0, w20 - bl id_block_read_data.constprop.30 - cbz w21, .L4038 + add x3, x29, 240 + mov w4, w26 + bl flash_read_page + cmn w0, #1 + mov w28, w0 + bne .L4365 + ldrb w6, [x23,1232] + cbnz w6, .L4360 +.L4363: + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + ldr x6, [x0,240] + cbnz x6, .L4361 + b .L4362 +.L4360: + mov w0, 0 + mov w1, w27 + mov x2, x24 + add x3, x29, 240 + mov w4, w26 + str x6, [x29,96] + strb wzr, [x23,1232] + bl flash_read_page + cmn w0, #1 + ldr x6, [x29,96] + strb w6, [x23,1232] + beq .L4363 + b .L4454 +.L4361: + mov w0, 0 + mov w1, w27 + mov x2, x24 + add x3, x29, 240 + mov w4, w26 + blr x6 + cmn w0, #1 + bne .L4454 +.L4362: + ldrb w0, [x23,1184] + cbz w0, .L4365 + mov w0, 0 + mov w1, w27 + mov x2, x24 + add x3, x29, 240 + mov w4, w26 + bl flash_ddr_tuning_read +.L4454: + mov w28, w0 +.L4365: + cmn w28, #1 + bne .L4366 + ldr w0, [x29,208] + cmp w0, 16 + beq .L4366 + mov w0, 16 + bl nandc_bch_sel + mov w0, 16 + str w0, [x29,208] + b .L4358 +.L4366: + ldr w0, [x29,128] + bl nandc_bch_sel + ldr w0, [x29,200] + cmn w28, #1 + csinv w0, w0, wzr, ne + str w0, [x29,200] + ldr w0, [x29,148] + cmp w25, wzr + cset w1, eq + cmp w0, w20 + cset w0, eq + tst w1, w0 + beq .L4368 + ldr w0, [x29,200] + cbnz w0, .L4368 + ldr w1, [x24] + mov w0, 18766 + movk w0, 0x464e, lsl 16 + cmp w1, w0 + bne .L4368 + ldr w0, [x29,172] + ldr w1, [x29,176] + ldrb w26, [x24,17] + add w0, w0, w1 + str w0, [x29,172] + b .L4369 +.L4368: + ldr x0, [x29,176] + mov w2, w25 + ldr w1, [x29,144] + ubfiz x0, x0, 9, 16 + ldr w3, [x29,240] + add x24, x24, x0 + ldr w4, [x29,244] + ldr x0, [x29,120] + bl printk + str wzr, [x29,192] +.L4369: + ldr w0, [x29,176] + add w25, w0, w25 + uxth w25, w25 + b .L4355 +.L4457: + add x23, x27, :lo12:.LANCHOR0 + ldrb w0, [x29,132] + strb w0, [x23,1232] + ldr w0, [x29,236] + cbz w0, .L4371 mov w0, 0 bl zftl_flash_exit_slc_mode strb wzr, [x27,#:lo12:.LANCHOR0] - strb wzr, [x28,634] -.L4038: - lsl w23, w23, 7 - mov x0, 0 -.L4039: - cmp w23, w0 - bls .L4086 - ldr w2, [x24,x0,lsl 2] - add x0, x0, 1 - add x1, x25, x0, lsl 2 - ldr w1, [x1,-4] - cmp w2, w1 - beq .L4039 - mov x0, x24 + strb wzr, [x23,1146] +.L4371: + ldr w0, [x29,224] + mov x1, 0 + lsl w0, w0, 7 +.L4372: + cmp w0, w1 + bls .L4458 + ldr w3, [x22,x1,lsl 2] + add x1, x1, 1 + ldr x2, [x29,216] + add x2, x2, x1, lsl 2 + ldr w2, [x2,-4] + cmp w3, w2 + beq .L4372 + mov x0, x22 mov w1, 0 mov w2, 512 bl ftl_memset mov w1, w20 mov w0, 0 bl flash_erase_block - b .L4019 -.L4086: - ldr w0, [x29,204] + b .L4336 +.L4458: + ldr w0, [x29,232] add w0, w0, 1 - str w0, [x29,204] + str w0, [x29,232] cmp w0, 5 - bhi .L4044 -.L4019: - add x22, x22, 1 - cmp x22, 4 - bne .L4042 -.L4044: + bhi .L4377 +.L4336: + add x21, x21, 1 + cmp x21, 4 + bne .L4375 +.L4377: mov w0, 0 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR0 - ldrb w2, [x29,172] + ldrb w2, [x29,156] add x1, x0, :lo12:.LANCHOR0 strb w2, [x0,#:lo12:.LANCHOR0] - cbz w21, .L4043 - ldrb w2, [x29,164] - strb w2, [x1,634] -.L4043: + ldr w2, [x29,236] + cbz w2, .L4376 + ldrb w2, [x29,140] + strb w2, [x1,1146] +.L4376: add x0, x0, :lo12:.LANCHOR0 mov w1, 2 - strb w1, [x0,752] + strb w1, [x0,1264] mov w0, 0 bl zftl_flash_enter_slc_mode - mov x0, x24 + mov x0, x22 bl ftl_free - ldr w0, [x29,204] + ldr w0, [x29,232] cmp w0, wzr csetm w0, eq -.L4082: +.L4449: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 272 + ldp x29, x30, [sp], 304 ret .size write_idblock, .-write_idblock .align 2 - .global CRC_32 - .type CRC_32, %function -CRC_32: - mov x2, 0 - adrp x3, .LANCHOR7 - mov x5, x0 - add x3, x3, :lo12:.LANCHOR7 - mov w0, w2 -.L4088: - cmp w1, w2 - bls .L4090 - ldrb w4, [x5,x2] - sub x6, x3, #40 - add x2, x2, 1 - eor w4, w4, w0, lsr 24 - ldr w4, [x6,w4,uxtw 2] - eor w0, w4, w0, lsl 8 - b .L4088 -.L4090: - ret - .size CRC_32, .-CRC_32 - .align 2 .global write_loader_lba .type write_loader_lba, %function write_loader_lba: @@ -25992,41 +28056,53 @@ write_loader_lba: mov w19, w0 mov w21, w1 mov x24, x2 - adrp x20, .LANCHOR6 - bne .L4092 - ldr w1, [x2] - mov w0, 35899 - movk w0, 0xfcdc, lsl 16 - cmp w1, w0 - bne .L4092 - add x22, x20, :lo12:.LANCHOR6 + adrp x20, .LANCHOR5 + bne .L4460 + ldr w0, [x2] + mov w1, 19282 + movk w1, 0x534e, lsl 16 + mov w2, 35899 + cmp w0, w1 + movk w2, 0xfcdc, lsl 16 + cset w3, eq + cmp w0, w2 + cset w1, eq + orr w1, w3, w1 + cbnz w1, .L4476 + mov w1, 19282 + movk w1, 0x5353, lsl 16 + cmp w0, w1 + bne .L4460 +.L4476: + add x22, x20, :lo12:.LANCHOR5 mov w0, 1 - strb w0, [x22,268] + strb w0, [x22,988] mov w0, 59392 movk w0, 0x3, lsl 16 bl ftl_malloc - str x0, [x22,272] + str x0, [x22,992] mov w2, 59392 mov w1, 0 movk w2, 0x3, lsl 16 bl ftl_memset - str w19, [x22,280] -.L4092: - add x23, x20, :lo12:.LANCHOR6 - adrp x0, .LC315 + mov w0, 64 + str w0, [x22,1000] +.L4460: + add x23, x20, :lo12:.LANCHOR5 + adrp x0, .LC319 ldr w2, [x24] - add x0, x0, :lo12:.LC315 + add x0, x0, :lo12:.LC319 mov w3, w19 mov w4, w21 - ldr x1, [x23,272] + ldr x1, [x23,992] bl printk - ldrb w0, [x23,268] - cbz w0, .L4091 - ldr x22, [x23,272] - cbz x22, .L4091 + ldrb w0, [x23,988] + cbz w0, .L4459 + ldr x22, [x23,992] + cbz x22, .L4459 sub w0, w19, #64 cmp w0, 499 - bhi .L4094 + bhi .L4463 mov w3, 564 ubfiz x0, x0, 9, 25 sub w3, w3, w19 @@ -26036,35 +28112,35 @@ write_loader_lba: csel w2, w3, w21, ls lsl w2, w2, 9 bl ftl_memcpy - b .L4095 -.L4094: + b .L4464 +.L4463: cmp w19, 563 - bhi .L4105 -.L4095: - add x23, x20, :lo12:.LANCHOR6 - ldr w0, [x23,280] + bhi .L4474 +.L4464: + add x23, x20, :lo12:.LANCHOR5 + ldr w0, [x23,1000] cmp w0, w19 - beq .L4103 + beq .L4472 mov x0, x22 - strb wzr, [x23,268] + strb wzr, [x23,988] bl ftl_free - str xzr, [x23,272] -.L4103: - add x20, x20, :lo12:.LANCHOR6 + str xzr, [x23,992] +.L4472: + add x20, x20, :lo12:.LANCHOR5 add w19, w19, w21 - str w19, [x20,280] - b .L4091 -.L4105: - ldr w2, [x23,280] + str w19, [x20,1000] + b .L4459 +.L4474: + ldr w2, [x23,1000] mov w0, 500 sub w2, w2, #64 cmp w2, 500 csel w2, w2, w0, ls - adrp x0, .LANCHOR0+624 - ldr x0, [x0,#:lo12:.LANCHOR0+624] + adrp x0, .LANCHOR0+1136 + ldr x0, [x0,#:lo12:.LANCHOR0+1136] ldrb w0, [x0,9] cmp w0, 4 - beq .L4106 + beq .L4475 mov w0, 2 str w0, [x29,72] mov w0, 3 @@ -26075,49 +28151,49 @@ write_loader_lba: str w0, [x29,84] mov w0, 6 str w0, [x29,88] - b .L4097 -.L4106: + b .L4466 +.L4475: mov x3, 0 -.L4096: +.L4465: cmp w2, 256 add x0, x29, 72 - bls .L4098 + bls .L4467 lsl w1, w3, 1 str w1, [x0,x3,lsl 2] - b .L4099 -.L4098: + b .L4468 +.L4467: str w3, [x0,x3,lsl 2] -.L4099: +.L4468: add x3, x3, 1 cmp x3, 5 - bne .L4096 -.L4097: + bne .L4465 +.L4466: add x0, x22, 245760 mov w3, 61952 add x0, x0, 2048 -.L4102: +.L4471: ldr w1, [x0] - cbz w1, .L4100 - add w3, w3, 2048 - lsl w0, w3, 2 - b .L4101 -.L4100: + cbz w1, .L4469 + add w2, w3, 2048 + lsl w0, w2, 2 + b .L4470 +.L4469: sub w3, w3, #1 sub x0, x0, #4 cmp w3, 4096 - bne .L4102 + bne .L4471 lsl w0, w2, 9 -.L4101: +.L4470: mov x1, x22 add x2, x29, 72 - add x22, x20, :lo12:.LANCHOR6 + add x22, x20, :lo12:.LANCHOR5 bl write_idblock - ldr x0, [x22,272] - strb wzr, [x22,268] + ldr x0, [x22,992] + strb wzr, [x22,988] bl ftl_free - str xzr, [x22,272] - b .L4103 -.L4091: + str xzr, [x22,992] + b .L4472 +.L4459: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -26137,19 +28213,19 @@ FtlWrite: cmp w0, 1983 mov w19, w1 mov w20, w2 - bhi .L4116 - cbnz w21, .L4116 + bhi .L4489 + cbnz w21, .L4489 mov w0, w1 mov w1, w2 mov x2, x3 str x3, [x29,56] bl write_loader_lba ldr x3, [x29,56] -.L4116: - adrp x0, .LANCHOR3+1472 +.L4489: + adrp x0, .LANCHOR5+192 mov w1, w19 mov w2, w20 - ldr x0, [x0,#:lo12:.LANCHOR3+1472] + ldr x0, [x0,#:lo12:.LANCHOR5+192] ldr x4, [x0,48] mov w0, w21 blr x4 @@ -26163,573 +28239,317 @@ FtlWrite: .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: sub sp, sp, #528 - mov w0, 29187 + mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp,16] - stp x21, x22, [sp,32] mov w19, w1 mov x20, x2 - beq .L4125 - mov w0, 29187 + beq .L4498 + mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L4126 - mov w0, 25726 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4127 - mov w0, 25726 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4128 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4129 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4130 - mov w0, 25364 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bne .L4187 - bl rknand_dev_flush - b .L4221 -.L4130: + bhi .L4499 mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4132 - mov w0, 25603 + beq .L4500 + mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4133 - b .L4187 -.L4128: - mov w0, 27688 + bhi .L4501 + mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4134 - mov w0, 27688 + beq .L4502 + mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L4135 + beq .L4503 + b .L4534 +.L4501: + mov w0, 25726 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L4504 mov w0, 25727 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4136 - b .L4187 -.L4135: - mov w0, 27698 + beq .L4505 + mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4134 - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4134 - b .L4187 -.L4126: - mov w0, 29267 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4137 - mov w0, 29267 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4138 - mov w0, 29189 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4139 - mov w0, 29189 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bcc .L4140 - mov w0, 29210 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4141 - mov w0, 29266 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4142 - b .L4187 -.L4138: - mov w0, 30225 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4143 - mov w0, 30225 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4144 - mov w0, 29268 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4145 + bne .L4534 + b .L4556 +.L4499: mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4146 - b .L4187 -.L4144: + beq .L4507 + mov w0, 30224 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bhi .L4508 + mov w0, 27698 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L4498 + mov w0, 27708 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L4498 + b .L4534 +.L4508: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4146 + beq .L4507 + mov w0, 30226 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bcc .L4509 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4143 - b .L4187 -.L4140: - adrp x0, .LC316 - add x0, x0, :lo12:.LC316 - bl printk - mov w0, 4096 - bl ftl_malloc - mov x19, x0 - cbnz x0, .L4147 -.L4152: - mov x0, -12 - b .L4124 -.L4147: - mov x1, x20 - mov x2, 512 - bl rk_copy_from_user - cbnz x0, .L4228 - adrp x0, .LC318 - ldr w1, [x19] - ldr w2, [x19,4] - add x0, x0, :lo12:.LC318 - bl printk - ldr w0, [x19,4] - str w0, [x29,52] - cmp w0, 8 - bhi .L4225 - bl rknand_device_lock - ldr w1, [x29,52] - mov x2, x19 - ldr w0, [x19] - bl id_block_read_data.constprop.30 - bl rknand_device_unlock - ldr w2, [x29,52] - mov x0, x20 - mov x1, x19 - ubfiz x2, x2, 9, 23 - bl rk_copy_to_user - cbz x0, .L4231 - adrp x0, .LC319 - add x0, x0, :lo12:.LC319 -.L4223: - bl printk -.L4225: - mov x0, x19 -.L4226: - bl ftl_free -.L4224: - mov x0, -14 - b .L4124 -.L4139: + beq .L4509 + b .L4534 +.L4503: adrp x0, .LC320 add x0, x0, :lo12:.LC320 bl printk - mov w0, 4096 - bl ftl_malloc - mov x19, x0 - cbz x0, .L4152 - mov x1, x20 - mov x2, 4096 - bl rk_copy_from_user - cbnz x0, .L4228 - adrp x0, .LC321 - ldr w1, [x19] - ldr w2, [x19,4] - add x0, x0, :lo12:.LC321 - bl printk - adrp x0, .LANCHOR6 - add x22, x0, :lo12:.LANCHOR6 - mov x20, x0 - ldr x21, [x22,288] - cbnz x21, .L4154 - mov w0, 260096 - bl ftl_malloc - str x0, [x22,288] - cbz x0, .L4225 - mov w1, w21 - mov x2, 260096 - bl memset -.L4154: - ldr w2, [x19,4] - cmp w2, 4088 - bhi .L4225 - ldr w0, [x19] - mov w1, 55296 - movk w1, 0x3, lsl 16 - cmp w0, w1 - bhi .L4225 - add x20, x20, :lo12:.LANCHOR6 - uxtw x2, w2 - ldr x1, [x20,288] - add x0, x1, x0, uxtw - add x1, x19, 8 - bl memcpy -.L4231: - mov x0, x19 - bl ftl_free - b .L4221 -.L4142: - adrp x0, .LC322 - add x0, x0, :lo12:.LC322 - bl printk - mov w0, 4096 - bl ftl_malloc - mov x19, x0 - cbz x0, .L4152 - mov x1, x20 - mov x2, 28 - bl rk_copy_from_user - cbz x0, .L4157 -.L4228: - adrp x0, .LC317 - add x0, x0, :lo12:.LC317 - b .L4223 -.L4157: - ldr w1, [x19] - adrp x0, .LC323 - ldr w2, [x19,4] - add x0, x0, :lo12:.LC323 - bl printk - ldr w1, [x19] - mov w0, 59392 - movk w0, 0x3, lsl 16 - cmp w1, w0 - bhi .L4225 - adrp x20, .LANCHOR6 - add x20, x20, :lo12:.LANCHOR6 - ldr x0, [x20,288] - cbz x0, .L4225 - bl CRC_32 - ldr w1, [x19,4] - cmp w1, w0 - beq .L4160 - mov x0, x19 - bl ftl_free - mov x0, -2 - b .L4124 -.L4160: - bl rknand_device_lock - ldr x1, [x20,288] - add x2, x19, 8 - ldr w0, [x19] - bl write_idblock - bl rknand_device_unlock - ldr x0, [x20,288] - bl ftl_free - str xzr, [x20,288] - b .L4231 -.L4141: - adrp x0, .LC324 - add x0, x0, :lo12:.LC324 - bl printk - mov w0, 4096 - bl ftl_malloc - mov x21, x0 - cbz x0, .L4152 - bl ReadFlashInfo - mov x0, x20 - mov x1, x21 - mov x2, 11 - b .L4233 -.L4125: - adrp x0, .LC325 - add x0, x0, :lo12:.LC325 - bl printk - bl nand_blk_add_whole_disk - mov w0, 4096 - bl ftl_malloc - mov x21, x0 - cbz x0, .L4152 - mov w1, 0 - mov w2, 64 - bl ftl_memset - mov x0, x20 - mov x1, x21 - mov x2, 64 - b .L4233 -.L4137: - adrp x0, .LC326 - add x0, x0, :lo12:.LC326 - bl printk - adrp x0, .LANCHOR6+296 - add x1, x29, 52 - mov x2, 4 - ldr x0, [x0,#:lo12:.LANCHOR6+296] - ldr w0, [x0,20] - str w0, [x29,52] - mov x0, x20 -.L4216: - bl rk_copy_to_user - cbnz x0, .L4224 - b .L4221 -.L4145: - adrp x0, .LC327 - add x0, x0, :lo12:.LC327 - bl printk - mov w0, 4096 - bl ftl_malloc - mov x21, x0 - cbz x0, .L4152 - bl rknand_device_lock - mov w1, 264 - mov w2, 2 - mov x3, x21 - mov w0, 16 - bl FtlRead - bl rknand_device_unlock - mov x0, x20 - mov x1, x21 - mov x2, 1024 -.L4233: - bl rk_copy_to_user - mov x19, x0 - mov x0, x21 - cbnz x19, .L4226 - bl ftl_free - b .L4151 -.L4129: - adrp x0, .LC328 - add x0, x0, :lo12:.LC328 - bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - mov x19, x0 - cbz x0, .L4165 -.L4170: - adrp x0, .LC317 - add x0, x0, :lo12:.LC317 + cbz x0, .L4510 +.L4516: + adrp x0, .LC321 + add x0, x0, :lo12:.LC321 bl printk - b .L4224 -.L4165: - ldr w1, [x29,56] + b .L4553 +.L4510: + ldr w1, [x29,40] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L4166 -.L4167: + beq .L4511 +.L4513: mov x19, -1 - b .L4151 -.L4166: - ldr w0, [x29,60] + b .L4512 +.L4511: + ldr w0, [x29,44] cmp w0, 512 - bhi .L4167 - adrp x21, .LANCHOR6 - add x0, x29, 56 - add x21, x21, :lo12:.LANCHOR6 + bhi .L4513 + adrp x19, .LANCHOR5 + add x0, x29, 40 + add x19, x19, :lo12:.LANCHOR5 mov x2, 512 - ldr x1, [x21,296] + ldr x1, [x19,1008] bl memcpy - ldr w1, [x21,304] + ldr w1, [x19,1016] mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L4168 - add x0, x29, 120 - mov w1, w19 + beq .L4514 + add x0, x29, 104 + mov w1, 0 mov x2, 128 - str w19, [x29,64] - str w19, [x29,68] + str wzr, [x29,48] + str wzr, [x29,52] bl memset -.L4168: - add x0, x29, 312 +.L4514: + add x0, x29, 296 mov w1, 0 mov x2, 256 - str wzr, [x29,72] + str wzr, [x29,56] bl memset - b .L4230 -.L4132: - adrp x0, .LC329 - add x0, x0, :lo12:.LC329 +.L4548: + mov x0, x20 + add x1, x29, 40 + mov x2, 520 + bl rk_copy_to_user + cbnz x0, .L4553 + b .L4551 +.L4500: + adrp x0, .LC322 + add x0, x0, :lo12:.LC322 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4170 - ldr w1, [x29,56] + cbnz x0, .L4516 + ldr w1, [x29,40] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L4167 - ldr w0, [x29,60] + bne .L4513 + ldr w0, [x29,44] cmp w0, 512 - bhi .L4167 - adrp x1, .LANCHOR6 + bhi .L4513 + adrp x1, .LANCHOR5 mov w2, 5161 - add x1, x1, :lo12:.LANCHOR6 + add x1, x1, :lo12:.LANCHOR5 movk w2, 0xc059, lsl 16 mov x0, -2 - ldr w3, [x1,304] + ldr w3, [x1,1016] cmp w3, w2 - bne .L4124 - ldr w2, [x29,68] + bne .L4497 + ldr w2, [x29,52] mov x0, -3 sub w3, w2, #1 cmp w3, 127 - bhi .L4124 - ldr x19, [x1,296] - add x1, x29, 120 + bhi .L4497 + ldr x19, [x1,1008] + add x1, x29, 104 add x0, x19, 64 str w2, [x19,12] - ldr w2, [x29,68] + ldr w2, [x29,52] bl memcpy mov w0, 1 mov x1, x19 - b .L4222 -.L4136: - adrp x0, .LC330 - add x0, x0, :lo12:.LC330 + b .L4552 +.L4505: + adrp x0, .LC323 + add x0, x0, :lo12:.LC323 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4170 - ldr w1, [x29,56] + cbnz x0, .L4516 + ldr w1, [x29,40] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L4167 - ldr w0, [x29,60] + bne .L4513 + ldr w0, [x29,44] cmp w0, 512 - bhi .L4167 - adrp x19, .LANCHOR6 - add x0, x19, :lo12:.LANCHOR6 - ldr w1, [x0,308] - cbnz w1, .L4171 -.L4174: + bhi .L4513 + adrp x19, .LANCHOR5 + add x0, x19, :lo12:.LANCHOR5 + ldr w0, [x0,1020] + cbnz w0, .L4517 +.L4520: mov x0, 0 - b .L4124 -.L4171: - ldr x1, [x0,312] + b .L4497 +.L4517: + add x0, x19, :lo12:.LANCHOR5 mov w2, 22867 movk w2, 0x4453, lsl 16 + ldr x1, [x0,1024] ldr w3, [x1] cmp w3, w2 - beq .L4172 + beq .L4518 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] mov w2, 504 - ldr x1, [x0,312] + ldr x1, [x0,1024] str w2, [x1,4] - ldr x0, [x0,312] + ldr x0, [x0,1024] str wzr, [x0,8] str wzr, [x0,12] -.L4172: - add x20, x19, :lo12:.LANCHOR6 +.L4518: + add x20, x19, :lo12:.LANCHOR5 mov w0, 0 - ldr x1, [x20,312] + ldr x1, [x20,1024] str wzr, [x1,16] bl StorageSysDataStore - ldr x0, [x20,296] + ldr x0, [x20,1008] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L4173 + beq .L4519 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,296] + ldr x0, [x20,1008] str w1, [x0,4] - ldr x0, [x20,296] + ldr x0, [x20,1008] str wzr, [x0,8] -.L4173: - add x19, x19, :lo12:.LANCHOR6 +.L4519: + add x19, x19, :lo12:.LANCHOR5 mov w1, 0 mov x2, 128 - ldr x20, [x19,296] + ldr x20, [x19,1008] add x0, x20, 64 str wzr, [x20,12] bl memset mov w0, 1 mov x1, x20 bl StorageSysDataStore - str wzr, [x19,308] - str wzr, [x19,304] - b .L4221 -.L4127: - adrp x0, .LC331 - add x0, x0, :lo12:.LC331 + str wzr, [x19,1020] + str wzr, [x19,1016] + b .L4551 +.L4504: + adrp x0, .LC324 + add x0, x0, :lo12:.LC324 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4170 - ldr w2, [x29,56] - mov w1, 20037 - movk w1, 0x4253, lsl 16 + cbnz x0, .L4516 + ldr w1, [x29,40] + mov w0, 20037 + movk w0, 0x4253, lsl 16 + cmp w1, w0 + bne .L4513 + ldr w0, [x29,44] + cmp w0, 512 + bhi .L4513 + adrp x19, .LANCHOR5 + add x0, x19, :lo12:.LANCHOR5 + ldr w1, [x0,1020] + cmp w1, 1 + beq .L4520 + ldr x0, [x0,1024] + mov w1, 22867 + movk w1, 0x4453, lsl 16 + ldr w2, [x0] cmp w2, w1 - bne .L4167 - ldr w1, [x29,60] - cmp w1, 512 - bhi .L4167 - adrp x19, .LANCHOR6 - add x1, x19, :lo12:.LANCHOR6 - ldr w2, [x1,308] - cmp w2, 1 - beq .L4174 - ldr x2, [x1,312] - mov w3, 22867 - movk w3, 0x4453, lsl 16 - ldr w4, [x2] - cmp w4, w3 - beq .L4175 - mov w3, 22867 - movk w3, 0x4453, lsl 16 - str w3, [x2] - mov w3, 504 - ldr x2, [x1,312] - str w3, [x2,4] - ldr x1, [x1,312] - str w0, [x1,8] - str w0, [x1,12] -.L4175: - add x20, x19, :lo12:.LANCHOR6 + beq .L4521 + mov w1, 22867 + mov w2, 504 + movk w1, 0x4453, lsl 16 + str w1, [x0] + add x0, x19, :lo12:.LANCHOR5 + ldr x1, [x0,1024] + str w2, [x1,4] + ldr x0, [x0,1024] + str wzr, [x0,8] + str wzr, [x0,12] +.L4521: + add x20, x19, :lo12:.LANCHOR5 mov w0, 1 - ldr x1, [x20,312] + ldr x1, [x20,1024] str w0, [x1,16] mov w0, 0 bl StorageSysDataStore - ldr x0, [x20,296] + ldr x0, [x20,1008] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L4176 + beq .L4522 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,296] + ldr x0, [x20,1008] str w1, [x0,4] - ldr x0, [x20,296] + ldr x0, [x20,1008] str wzr, [x0,8] -.L4176: - add x19, x19, :lo12:.LANCHOR6 +.L4522: + add x19, x19, :lo12:.LANCHOR5 mov w1, 0 mov x2, 128 - ldr x20, [x19,296] + ldr x20, [x19,1008] add x0, x20, 64 str wzr, [x20,12] bl memset @@ -26737,211 +28557,210 @@ rknand_sys_storage_ioctl: mov x1, x20 bl StorageSysDataStore mov w0, 1 - str w0, [x19,308] - b .L4221 -.L4133: - adrp x0, .LC332 - add x0, x0, :lo12:.LC332 + str w0, [x19,1020] + b .L4551 +.L4556: + adrp x0, .LC325 + add x0, x0, :lo12:.LC325 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4170 - ldr w1, [x29,56] + cbnz x0, .L4516 + ldr w1, [x29,40] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L4167 - ldr w2, [x29,60] + bne .L4513 + ldr w2, [x29,44] cmp w2, 512 - bhi .L4167 - adrp x1, .LANCHOR6 - add x0, x29, 64 - add x1, x1, :lo12:.LANCHOR6 + bhi .L4513 + adrp x1, .LANCHOR5 + add x0, x29, 48 + add x1, x1, :lo12:.LANCHOR5 uxtw x2, w2 - add x1, x1, 320 - b .L4229 -.L4134: + add x1, x1, 1032 + b .L4554 +.L4498: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L4177 - adrp x0, .LC333 - add x0, x0, :lo12:.LC333 - b .L4219 -.L4177: + bne .L4524 + adrp x0, .LC326 + add x0, x0, :lo12:.LC326 + b .L4550 +.L4524: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L4179 - adrp x0, .LC334 - add x0, x0, :lo12:.LC334 - b .L4219 -.L4179: - adrp x0, .LC335 - add x0, x0, :lo12:.LC335 -.L4219: + bne .L4526 + adrp x0, .LC327 + add x0, x0, :lo12:.LC327 + b .L4550 +.L4526: + adrp x0, .LC328 + add x0, x0, :lo12:.LC328 +.L4550: bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4170 - ldr w1, [x29,56] + cbnz x0, .L4516 + ldr w1, [x29,40] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L4224 + bne .L4553 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - adrp x0, .LANCHOR6 - bne .L4180 - add x0, x0, :lo12:.LANCHOR6 - add x1, x29, 56 + adrp x0, .LANCHOR5 + bne .L4527 + add x0, x0, :lo12:.LANCHOR5 + add x1, x29, 40 mov x2, 16 - ldr x0, [x0,296] + ldr x0, [x0,1008] ldr w0, [x0,20] - str w0, [x29,60] - strb w0, [x29,64] + str w0, [x29,44] + strb w0, [x29,48] mov x0, x20 bl rk_copy_to_user - cbz x0, .L4124 - b .L4224 -.L4180: - add x20, x0, :lo12:.LANCHOR6 - ldr w1, [x20,832] + cbz x0, .L4497 + b .L4553 +.L4527: + add x20, x0, :lo12:.LANCHOR5 + ldr w1, [x20,1544] cmp w1, 10 - bhi .L4224 - ldr x1, [x20,296] - ldr w2, [x29,60] + bhi .L4553 + ldr x1, [x20,1008] + ldr w2, [x29,44] ldr w3, [x1,24] cmp w3, w2 - beq .L4181 - cbz w3, .L4181 - adrp x0, .LC336 + beq .L4528 + cbz w3, .L4528 + adrp x0, .LC329 mov w1, w2 - add x0, x0, :lo12:.LC336 + add x0, x0, :lo12:.LC329 bl printk - ldr w0, [x20,832] + ldr w0, [x20,1544] add w0, w0, 1 - str w0, [x20,832] - b .L4224 -.L4181: - add x0, x0, :lo12:.LANCHOR6 - str wzr, [x0,832] + str w0, [x20,1544] +.L4553: + mov x0, -14 + b .L4497 +.L4528: + add x0, x0, :lo12:.LANCHOR5 + str wzr, [x0,1544] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L4182 + bne .L4529 str wzr, [x1,20] str wzr, [x1,24] - b .L4183 -.L4182: + b .L4530 +.L4529: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L4183: +.L4530: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L4221 - b .L4151 -.L4146: - adrp x0, .LC337 - add x0, x0, :lo12:.LC337 + bne .L4551 + b .L4512 +.L4507: + adrp x0, .LC330 + add x0, x0, :lo12:.LC330 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4170 - ldr w1, [x29,56] + cbnz x0, .L4516 + ldr w1, [x29,40] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L4167 - ldr w2, [x29,60] + bne .L4513 + ldr w2, [x29,44] cmp w2, 504 - bhi .L4167 + bhi .L4513 mov w0, 30224 - adrp x1, .LANCHOR6 + adrp x1, .LANCHOR5 movk w0, 0x4004, lsl 16 uxtw x2, w2 cmp w19, w0 - add x1, x1, :lo12:.LANCHOR6 - add x0, x29, 64 - bne .L4184 - ldr x1, [x1,840] - b .L4220 -.L4184: - ldr x1, [x1,848] -.L4220: + add x1, x1, :lo12:.LANCHOR5 + add x0, x29, 48 + bne .L4531 + ldr x1, [x1,1552] + b .L4555 +.L4531: + ldr x1, [x1,1560] +.L4555: add x1, x1, 8 -.L4229: +.L4554: bl memcpy -.L4230: - mov x0, x20 - add x1, x29, 56 - mov x2, 520 - b .L4216 -.L4143: - adrp x0, .LC338 - add x0, x0, :lo12:.LC338 + b .L4548 +.L4509: + adrp x0, .LC331 + add x0, x0, :lo12:.LC331 bl printk - add x0, x29, 56 + add x0, x29, 40 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4170 - ldr w1, [x29,56] + cbnz x0, .L4516 + ldr w1, [x29,40] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L4167 - ldr w2, [x29,60] + bne .L4513 + ldr w2, [x29,44] cmp w2, 504 - bhi .L4167 + bhi .L4513 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 - adrp x19, .LANCHOR6 - add x19, x19, :lo12:.LANCHOR6 - bne .L4186 - ldr x0, [x19,840] - add x1, x29, 56 + adrp x19, .LANCHOR5 + add x19, x19, :lo12:.LANCHOR5 + bne .L4533 + ldr x0, [x19,1552] + add x1, x29, 40 bl memcpy mov w0, 2 - ldr x1, [x19,840] - b .L4222 -.L4186: - ldr x0, [x19,848] - add x1, x29, 56 + ldr x1, [x19,1552] + b .L4552 +.L4533: + ldr x0, [x19,1560] + add x1, x29, 40 bl memcpy - ldr x1, [x19,848] + ldr x1, [x19,1560] mov w0, 3 -.L4222: +.L4552: bl StorageSysDataStore uxtw x19, w0 - b .L4151 -.L4221: + b .L4512 +.L4502: + bl rknand_dev_flush +.L4551: mov x19, 0 -.L4151: - adrp x0, .LC339 +.L4512: + adrp x0, .LC332 mov x1, x19 - add x0, x0, :lo12:.LC339 + add x0, x0, :lo12:.LC332 bl printk mov x0, x19 - b .L4124 -.L4187: + b .L4497 +.L4534: mov x0, -22 -.L4124: +.L4497: ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldp x29, x30, [sp], 32 add sp, sp, 528 ret .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl @@ -26954,53 +28773,53 @@ rk_ftl_storage_sys_init: mov w2, 512 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR6 + adrp x20, .LANCHOR5 str x21, [sp,32] - add x19, x20, :lo12:.LANCHOR6 - ldr x1, [x19,240] - str w0, [x19,280] + add x19, x20, :lo12:.LANCHOR5 + ldr x1, [x19,968] + str w0, [x19,1000] add x0, x1, 512 - str x0, [x19,296] + str x0, [x19,1008] add x0, x1, 1024 - str x1, [x19,312] - str x0, [x19,840] + str x1, [x19,1024] + str x0, [x19,1552] add x1, x1, 1536 - add x0, x19, 320 - str x1, [x19,848] - strb wzr, [x19,268] - str xzr, [x19,272] - str xzr, [x19,288] + add x0, x19, 1032 + str x1, [x19,1560] + strb wzr, [x19,988] + str xzr, [x19,992] + str xzr, [x19,1568] bl ftl_memcpy - ldr x0, [x19,312] - str wzr, [x19,304] - str wzr, [x19,832] + ldr x0, [x19,1024] + str wzr, [x19,1016] + str wzr, [x19,1544] ldr w1, [x0,16] ldr w21, [x0,508] - str w1, [x19,308] - cbz w21, .L4237 + str w1, [x19,1020] + cbz w21, .L4559 mov w1, 508 bl js_hash cmp w21, w0 - beq .L4237 - ldr x0, [x19,312] - str wzr, [x19,308] + beq .L4559 + ldr x0, [x19,1024] + str wzr, [x19,1020] str wzr, [x0,16] - adrp x0, .LC340 - add x0, x0, :lo12:.LC340 + adrp x0, .LC333 + add x0, x0, :lo12:.LC333 bl printk -.L4237: - add x0, x20, :lo12:.LANCHOR6 - ldr w1, [x0,308] - cbz w1, .L4239 +.L4559: + add x0, x20, :lo12:.LANCHOR5 + ldr w1, [x0,1020] + cbz w1, .L4561 mov w1, 5161 movk w1, 0xc059, lsl 16 - str w1, [x0,304] -.L4239: - add x20, x20, :lo12:.LANCHOR6 + str w1, [x0,1016] +.L4561: + add x20, x20, :lo12:.LANCHOR5 mov w0, 2 - ldr x1, [x20,840] + ldr x1, [x20,1552] bl StorageSysDataLoad - ldr x1, [x20,848] + ldr x1, [x20,1560] mov w0, 3 bl StorageSysDataLoad bl rknand_sys_storage_init @@ -27026,59 +28845,59 @@ rk_ftl_vendor_storage_init: stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] - adrp x21, .LANCHOR6 + adrp x21, .LANCHOR5 bl ftl_malloc - add x1, x21, :lo12:.LANCHOR6 + add x1, x21, :lo12:.LANCHOR5 mov w19, -12 - str x0, [x1,856] - cbz x0, .L4245 + str x0, [x1,1576] + cbz x0, .L4567 mov w23, 0 - adrp x24, .LC341 + adrp x24, .LC334 mov w19, w23 mov w22, w23 - add x24, x24, :lo12:.LC341 -.L4249: - add x20, x21, :lo12:.LANCHOR6 + add x24, x24, :lo12:.LC334 +.L4571: + add x20, x21, :lo12:.LANCHOR5 lsl w0, w22, 7 mov w1, 128 - ldr x2, [x20,856] + ldr x2, [x20,1576] bl FlashBootVendorRead - cbnz w0, .L4246 - ldr x3, [x20,856] + cbnz w0, .L4568 + ldr x3, [x20,1576] mov x0, x24 add x2, x3, 61440 ldr w1, [x3] ldr w3, [x3,4] ldr w2, [x2,4092] bl printk - ldr x20, [x20,856] + ldr x20, [x20,1576] mov w0, 22084 movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L4247 + bne .L4569 ldr w0, [x20,4] cmp w19, w0 - bcs .L4247 + bcs .L4569 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L4247: - cbnz w22, .L4257 +.L4569: + cbnz w22, .L4579 mov w22, 1 - b .L4249 -.L4257: - cbz w19, .L4250 + b .L4571 +.L4579: + cbz w19, .L4572 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L4245 - b .L4246 -.L4250: + cbz w0, .L4567 + b .L4568 +.L4572: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -27092,14 +28911,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L4245 -.L4246: - add x21, x21, :lo12:.LANCHOR6 + b .L4567 +.L4568: + add x21, x21, :lo12:.LANCHOR5 mov w19, -1 - ldr x0, [x21,856] + ldr x0, [x21,1576] bl kfree - str xzr, [x21,856] -.L4245: + str xzr, [x21,1576] +.L4567: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -27111,24 +28930,24 @@ rk_ftl_vendor_storage_init: .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR6+856 + adrp x3, .LANCHOR5+1576 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR6+856] + ldr x5, [x3,#:lo12:.LANCHOR5+1576] mov w3, -1 str x19, [sp,16] - cbz x5, .L4259 + cbz x5, .L4581 ldrh w3, [x5,10] mov x4, 0 -.L4260: +.L4582: cmp w4, w3 mov w6, w4 - bcs .L4264 + bcs .L4586 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L4260 + bne .L4582 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -27140,10 +28959,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L4259 -.L4264: + b .L4581 +.L4586: mov w3, -1 -.L4259: +.L4581: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -27155,10 +28974,10 @@ rk_ftl_vendor_read: rk_ftl_vendor_write: stp x29, x30, [sp, -112]! mov w6, w0 - adrp x0, .LANCHOR6+856 + adrp x0, .LANCHOR5+1576 add x29, sp, 0 stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR6+856] + ldr x19, [x0,#:lo12:.LANCHOR5+1576] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x21, x22, [sp,32] @@ -27166,38 +28985,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L4266 + cbz x19, .L4588 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L4267: +.L4589: cmp w2, w3 mov w4, w2 - bcs .L4282 + bcs .L4604 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L4267 + bne .L4589 add x21, x19, x4, uxtw 3 ldrh w24, [x21,20] add x5, x19, 1024 add w24, w24, 63 and w24, w24, -64 cmp w26, w24 - bls .L4268 + bls .L4590 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L4266 + bcc .L4588 ldrh w21, [x21,18] add w22, w3, w2 -.L4269: +.L4591: cmp w4, w22 uxtw x3, w4 - bcs .L4283 + bcs .L4605 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -27220,8 +29039,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L4269 -.L4283: + b .L4591 +.L4605: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -27238,20 +29057,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L4281 -.L4268: + b .L4603 +.L4590: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L4281 -.L4282: + b .L4603 +.L4604: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L4266 + bcc .L4588 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -27271,7 +29090,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L4281: +.L4603: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -27288,7 +29107,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L4266: +.L4588: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -27312,37 +29131,37 @@ rk_ftl_vendor_storage_ioctl: mov x21, x2 bl ftl_malloc mov x19, x0 - cbz x0, .L4285 + cbz x0, .L4607 mov w2, 30209 ldr x1, [x29,56] movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L4287 + beq .L4609 mov w2, 30210 movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L4288 - b .L4299 -.L4287: + beq .L4610 + b .L4621 +.L4609: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L4299 + cbnz x0, .L4621 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L4290 -.L4291: + beq .L4612 +.L4613: mov x20, -1 - b .L4286 -.L4290: + b .L4608 +.L4612: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L4291 + beq .L4613 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -27352,45 +29171,44 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L4286 -.L4288: + b .L4608 +.L4610: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L4299 + cbnz x0, .L4621 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L4291 + bne .L4613 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L4291 + bhi .L4613 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L4299 + cbnz x0, .L4621 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L4286 -.L4299: + b .L4608 +.L4621: mov x20, -14 -.L4286: +.L4608: mov x0, x19 bl kfree -.L4285: +.L4607: mov x0, x20 ldr x21, [sp,32] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 ret .size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl - .global gTable_Crc32 .global SecureBootUnlockTryCount .global SecureBootCheckOK .global SecureBootEn @@ -27443,11 +29261,11 @@ rk_ftl_vendor_storage_ioctl: .global gp_ftl_ext_info .global gp_ftl_info .global gp_blk_info - .global ftl_tmp_spare - .global ftl_info_spare + .global ftl_tmp_buffer .global ftl_ext_info_data_buffer .global ftl_info_data_buffer - .global ftl_tmp_buffer + .global ftl_tmp_spare + .global ftl_info_spare .global g_ftl_info_blk .global tlc_b05a_prog_tbl .global tlc_prog_order @@ -27463,6 +29281,7 @@ rk_ftl_vendor_storage_ioctl: .global gc_slc_data_index .global gc_free_slc_sblk_th .global gc_slc_mode_vpn_th + .global gc_slc_mode_slc_vpn_th .global gc_slc_mode_tlc_vpn_th .global gc_tlc_mode_tlc_vpn_th .global gc_tlc_mode_slc_vpn_th @@ -27471,6 +29290,7 @@ rk_ftl_vendor_storage_ioctl: .global p_read_ahead_ext_buf .global discard_sector_count .global read_ahead_lpa + .global _ftl_gc_tag_page_num .global read_buf_count .global read_buf_head .global write_commit_count @@ -27489,7 +29309,6 @@ rk_ftl_vendor_storage_ioctl: .global _last_write_time .global _last_read_time .global _min_slc_super_block - .global _max_slc_super_block .global _max_xlc_super_block .global _c_max_pm_sblk .global _c_ftl_pm_page_num @@ -27541,6 +29360,7 @@ rk_ftl_vendor_storage_ioctl: .global g_maxRegNum .global g_retryMode .global g_flash_toggle_mode_en + .global g_flash_ymtc_3d_tlc_flag .global g_flash_micron_3d_tlc_b16a .global g_flash_micron_3d_tlc_b05a .global g_flash_micron_3d_tlc_flag @@ -27555,6 +29375,7 @@ rk_ftl_vendor_storage_ioctl: .global g_slc_mode_addr2 .global g_slc_mode_enable .global g_flash_cur_mode + .global g_flash_six_addr .global g_flash_slc_mode .global g_slc_page_num .global g_totle_phy_block @@ -27569,24 +29390,24 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR1 = . + 0 - .type __func__.38783, %object - .size __func__.38783, 18 -__func__.38783: + .type __func__.39475, %object + .size __func__.39475, 18 +__func__.39475: .string "_list_remove_node" .zero 6 - .type __func__.38808, %object - .size __func__.38808, 23 -__func__.38808: + .type __func__.39500, %object + .size __func__.39500, 23 +__func__.39500: .string "_list_update_data_list" .zero 1 - .type __func__.20392, %object - .size __func__.20392, 22 -__func__.20392: + .type __func__.20801, %object + .size __func__.20801, 22 +__func__.20801: .string "nand_flash_print_info" .zero 2 - .type __func__.20478, %object - .size __func__.20478, 11 -__func__.20478: + .type __func__.20887, %object + .size __func__.20887, 11 +__func__.20887: .string "nandc_init" .zero 5 .type toshiba_A19ref_value, %object @@ -27748,14 +29569,14 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.19935, %object - .size __func__.19935, 28 -__func__.19935: + .type __func__.20274, %object + .size __func__.20274, 28 +__func__.20274: .string "flash_wait_device_ready_raw" .zero 4 - .type __func__.19999, %object - .size __func__.19999, 22 -__func__.19999: + .type __func__.20338, %object + .size __func__.20338, 22 +__func__.20338: .string "flash_start_page_read" .zero 2 .type toshiba_3D_tlc_value, %object @@ -28176,19 +29997,394 @@ toshiba_3D_slc_value: .byte -56 .byte 56 .zero 5 - .type __func__.20024, %object - .size __func__.20024, 23 -__func__.20024: + .type ymtc_3D_tlc_value, %object + .size ymtc_3D_tlc_value, 357 +ymtc_3D_tlc_value: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -10 + .byte -10 + .byte -6 + .byte -6 + .byte -2 + .byte 2 + .byte 2 + .byte -6 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -6 + .byte -8 + .byte 6 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -2 + .byte -2 + .byte -2 + .byte -4 + .byte -4 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -11 + .byte -2 + .byte 2 + .byte 4 + .byte 4 + .byte 6 + .byte 6 + .byte 6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -8 + .byte -14 + .byte -6 + .byte -15 + .byte -11 + .byte 2 + .byte -12 + .byte -8 + .byte -2 + .byte 2 + .byte -3 + .byte -7 + .byte -10 + .byte -4 + .byte -8 + .byte -6 + .byte -18 + .byte -18 + .byte -14 + .byte -14 + .byte -10 + .byte -5 + .byte -5 + .byte -14 + .byte -14 + .byte -12 + .byte -12 + .byte -12 + .byte -13 + .byte -15 + .byte -2 + .byte -8 + .byte -8 + .byte -8 + .byte -8 + .byte -7 + .byte -7 + .byte -10 + .byte -10 + .byte -10 + .byte -12 + .byte -12 + .byte -13 + .byte -13 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -13 + .byte -18 + .byte -10 + .byte -6 + .byte -4 + .byte -4 + .byte -2 + .byte -1 + .byte -1 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -15 + .byte -21 + .byte -12 + .byte -11 + .byte -7 + .byte -7 + .byte -3 + .byte 1 + .byte 1 + .byte -8 + .byte -7 + .byte -5 + .byte -5 + .byte -5 + .byte -7 + .byte -9 + .byte 4 + .byte -1 + .byte -1 + .byte -1 + .byte -1 + .byte -1 + .byte -1 + .byte -4 + .byte -3 + .byte -3 + .byte -5 + .byte -5 + .byte -7 + .byte -7 + .byte -8 + .byte -7 + .byte -7 + .byte -7 + .byte -7 + .byte -7 + .byte -12 + .byte -4 + .byte 1 + .byte 3 + .byte 3 + .byte 5 + .byte 5 + .byte 5 + .byte -8 + .byte -7 + .byte -7 + .byte -7 + .byte -7 + .byte -9 + .byte -15 + .byte 2 + .byte -7 + .byte -11 + .byte -14 + .byte -8 + .byte -12 + .byte -10 + .byte 6 + .byte 1 + .byte -3 + .byte -6 + .byte 0 + .byte -4 + .byte -2 + .byte 10 + .byte -3 + .byte -7 + .byte -6 + .byte 4 + .byte -4 + .byte -2 + .byte -10 + .byte -23 + .byte -39 + .byte -22 + .byte -19 + .byte -24 + .byte -18 + .byte -7 + .byte -27 + .byte -35 + .byte -26 + .byte -15 + .byte -24 + .byte -26 + .byte 6 + .byte -11 + .byte 5 + .byte -2 + .byte -16 + .byte -16 + .byte -2 + .byte -2 + .byte -15 + .byte -15 + .byte -20 + .byte -8 + .byte -16 + .byte -18 + .byte 2 + .byte 1 + .byte -3 + .byte -10 + .byte -8 + .byte -4 + .byte -6 + .byte -2 + .byte -15 + .byte -11 + .byte -26 + .byte -8 + .byte -20 + .byte -30 + .byte 6 + .byte -19 + .byte -3 + .byte -46 + .byte 0 + .byte 0 + .byte 2 + .byte 6 + .byte 9 + .byte 5 + .byte 2 + .byte 4 + .byte 8 + .byte 6 + .byte 8 + .byte 9 + .byte 9 + .byte 6 + .byte 8 + .byte 8 + .byte 6 + .byte 10 + .byte 13 + .byte 9 + .byte 6 + .byte 8 + .byte 12 + .byte 10 + .byte 2 + .byte 5 + .byte 1 + .byte -2 + .byte 0 + .byte 0 + .byte 6 + .byte 12 + .byte 1 + .byte 13 + .byte 2 + .byte 12 + .byte 12 + .byte 14 + .byte -12 + .byte -14 + .byte -20 + .byte -18 + .byte -16 + .byte -16 + .byte -14 + .byte -12 + .byte -10 + .byte -21 + .byte -14 + .byte -12 + .byte -12 + .byte -10 + .byte -12 + .byte -18 + .byte -22 + .byte -24 + .byte -18 + .byte -18 + .byte -18 + .byte -12 + .byte -14 + .byte -23 + .byte -20 + .byte -20 + .byte -20 + .byte -20 + .byte 16 + .byte 16 + .byte 8 + .byte 8 + .byte 12 + .byte 12 + .byte 12 + .byte 18 + .byte 18 + .byte 10 + .byte 8 + .byte 14 + .byte 14 + .byte 14 + .byte 16 + .byte 14 + .byte 6 + .byte 6 + .byte 12 + .byte 14 + .byte 8 + .byte 10 + .byte 13 + .byte 5 + .byte 2 + .byte 14 + .byte 8 + .byte 6 + .byte 6 + .byte 13 + .byte 9 + .byte 4 + .byte 14 + .byte 10 + .byte 10 + .byte 10 + .byte 13 + .byte 9 + .byte 6 + .byte 8 + .byte 12 + .byte 10 + .byte 2 + .byte 5 + .byte 1 + .byte -2 + .byte 0 + .byte 0 + .byte 6 + .byte 12 + .byte 1 + .byte 13 + .byte 2 + .byte 12 + .byte 12 + .byte 14 + .zero 3 + .type ymtc_3D_slc_value, %object + .size ymtc_3D_slc_value, 10 +ymtc_3D_slc_value: + .byte 0 + .byte -8 + .byte 8 + .byte -16 + .byte -20 + .byte 24 + .byte -26 + .byte 40 + .byte -12 + .byte 56 + .zero 6 + .type __func__.20363, %object + .size __func__.20363, 23 +__func__.20363: .string "flash_start_plane_read" .zero 1 - .type __func__.19910, %object - .size __func__.19910, 26 -__func__.19910: + .type __func__.20249, %object + .size __func__.20249, 26 +__func__.20249: .string "flash_erase_duplane_block" .zero 6 - .type __func__.19921, %object - .size __func__.19921, 21 -__func__.19921: + .type __func__.20260, %object + .size __func__.20260, 21 +__func__.20260: .string "flash_erase_block_en" .zero 3 .type random_seed, %object @@ -28322,22 +30518,22 @@ random_seed: .hword 28406 .hword 17598 .hword 28087 - .type __func__.20661, %object - .size __func__.20661, 13 -__func__.20661: + .type __func__.21070, %object + .size __func__.21070, 13 +__func__.21070: .string "buf_add_tail" .zero 3 - .type __func__.20674, %object - .size __func__.20674, 10 -__func__.20674: + .type __func__.21083, %object + .size __func__.21083, 10 +__func__.21083: .string "buf_alloc" .zero 6 - .type __func__.20688, %object - .size __func__.20688, 16 -__func__.20688: + .type __func__.21097, %object + .size __func__.21097, 16 +__func__.21097: .string "buf_remove_free" .type zftl_debug_proc_fops, %object - .size zftl_debug_proc_fops, 256 + .size zftl_debug_proc_fops, 288 zftl_debug_proc_fops: .xword 0 .xword seq_lseek @@ -28347,255 +30543,402 @@ zftl_debug_proc_fops: .xword zftl_debug_proc_open .zero 8 .xword single_release - .zero 128 - .type __func__.38347, %object - .size __func__.38347, 12 -__func__.38347: + .zero 160 + .type __func__.39035, %object + .size __func__.39035, 12 +__func__.39035: .string "gc_add_sblk" .zero 4 - .type __func__.38441, %object - .size __func__.38441, 19 -__func__.38441: + .type __func__.39127, %object + .size __func__.39127, 19 +__func__.39127: .string "gc_write_completed" .zero 5 - .type __func__.38990, %object - .size __func__.38990, 18 -__func__.38990: + .type __func__.39683, %object + .size __func__.39683, 18 +__func__.39683: .string "ftl_alloc_sys_blk" .zero 6 - .type __func__.39000, %object - .size __func__.39000, 17 -__func__.39000: + .type __func__.39693, %object + .size __func__.39693, 17 +__func__.39693: .string "ftl_free_sys_blk" .zero 7 - .type __func__.39139, %object - .size __func__.39139, 23 -__func__.39139: + .type __func__.39814, %object + .size __func__.39814, 23 +__func__.39814: .string "ftl_get_ppa_from_index" .zero 1 - .type __func__.39179, %object - .size __func__.39179, 22 -__func__.39179: + .type __func__.39854, %object + .size __func__.39854, 22 +__func__.39854: .string "ftl_get_new_free_page" .zero 2 - .type __func__.39190, %object - .size __func__.39190, 22 -__func__.39190: + .type __func__.39865, %object + .size __func__.39865, 22 +__func__.39865: .string "ftl_ext_alloc_new_blk" .zero 2 - .type __func__.38497, %object - .size __func__.38497, 16 -__func__.38497: + .type __func__.39184, %object + .size __func__.39184, 16 +__func__.39184: .string "gc_free_src_blk" - .type __func__.38098, %object - .size __func__.38098, 14 -__func__.38098: + .type __func__.38779, %object + .size __func__.38779, 14 +__func__.38779: .string "ftl_write_buf" .zero 2 - .type __func__.38143, %object - .size __func__.38143, 18 -__func__.38143: + .type __func__.38824, %object + .size __func__.38824, 18 +__func__.38824: .string "zftl_add_read_buf" .zero 6 - .type __func__.38948, %object - .size __func__.38948, 15 -__func__.38948: + .type __func__.39641, %object + .size __func__.39641, 15 +__func__.39641: .string "ftl_alloc_sblk" .align 3 .LANCHOR4 = . + 0 - .type __func__.39576, %object - .size __func__.39576, 17 -__func__.39576: + .type __func__.40259, %object + .size __func__.40259, 17 +__func__.40259: .string "pm_alloc_new_blk" .zero 7 - .type __func__.39604, %object - .size __func__.39604, 21 -__func__.39604: + .type __func__.40287, %object + .size __func__.40287, 21 +__func__.40287: .string "pm_select_ram_region" .zero 3 - .type __func__.20382, %object - .size __func__.20382, 20 -__func__.20382: + .type __func__.20791, %object + .size __func__.20791, 20 +__func__.20791: .string "flash_die_info_init" .zero 4 - .type __func__.38033, %object - .size __func__.38033, 17 -__func__.38033: + .type __func__.38711, %object + .size __func__.38711, 17 +__func__.38711: .string "lpa_rebuild_hash" .zero 7 - .type __func__.39536, %object - .size __func__.39536, 13 -__func__.39536: + .type __func__.39575, %object + .size __func__.39575, 20 +__func__.39575: + .string "zftl_sblk_list_init" + .zero 4 + .type __func__.40219, %object + .size __func__.40219, 13 +__func__.40219: .string "pm_free_sblk" .zero 3 - .type __func__.20712, %object - .size __func__.20712, 21 -__func__.20712: + .type __func__.21133, %object + .size __func__.21133, 21 +__func__.21133: .string "flash_info_data_init" .zero 3 - .type __func__.19852, %object - .size __func__.19852, 19 -__func__.19852: + .type samsung_14nm_slc_rr, %object + .size samsung_14nm_slc_rr, 26 +samsung_14nm_slc_rr: + .byte 0 + .byte 10 + .byte -10 + .byte 20 + .byte -20 + .byte 30 + .byte -30 + .byte 40 + .byte -40 + .byte 50 + .byte -50 + .byte 60 + .byte -60 + .byte -70 + .byte -80 + .byte -90 + .byte -100 + .byte -110 + .byte -120 + .byte -9 + .byte 70 + .byte 80 + .byte 90 + .byte -125 + .byte -115 + .byte 100 + .zero 6 + .type samsung_14nm_mlc_rr, %object + .size samsung_14nm_mlc_rr, 104 +samsung_14nm_mlc_rr: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -4 + .byte 3 + .byte -4 + .byte -6 + .byte 6 + .byte 0 + .byte 6 + .byte -10 + .byte -10 + .byte 4 + .byte -10 + .byte 16 + .byte 12 + .byte -4 + .byte 12 + .byte 8 + .byte -16 + .byte 10 + .byte -16 + .byte 24 + .byte 18 + .byte -14 + .byte 18 + .byte -4 + .byte -22 + .byte -16 + .byte -22 + .byte -8 + .byte 24 + .byte -9 + .byte 24 + .byte 8 + .byte -28 + .byte -4 + .byte -28 + .byte 16 + .byte 30 + .byte 10 + .byte 30 + .byte 10 + .byte -34 + .byte 6 + .byte -34 + .byte 0 + .byte 36 + .byte -8 + .byte 36 + .byte -8 + .byte -40 + .byte -2 + .byte -40 + .byte -20 + .byte -46 + .byte -4 + .byte -46 + .byte -30 + .byte 3 + .byte 0 + .byte 3 + .byte -3 + .byte -2 + .byte -4 + .byte -2 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -10 + .byte -6 + .byte -8 + .byte -6 + .byte -14 + .byte -9 + .byte -8 + .byte -9 + .byte -18 + .byte -52 + .byte 22 + .byte -52 + .byte 10 + .byte 42 + .byte 4 + .byte 42 + .byte 4 + .byte 48 + .byte -9 + .byte 48 + .byte 4 + .byte -58 + .byte 12 + .byte -58 + .byte 0 + .byte -64 + .byte -24 + .byte -64 + .byte -6 + .byte 9 + .byte 18 + .byte 9 + .byte 8 + .type __func__.20172, %object + .size __func__.20172, 19 +__func__.20172: .string "flash_read_page_en" .zero 5 - .type __func__.19959, %object - .size __func__.19959, 26 -__func__.19959: + .type __func__.20298, %object + .size __func__.20298, 26 +__func__.20298: .string "flash_start_tlc_page_prog" .zero 6 - .type __func__.19970, %object - .size __func__.19970, 29 -__func__.19970: + .type __func__.20309, %object + .size __func__.20309, 29 +__func__.20309: .string "flash_start_3d_mlc_page_prog" .zero 3 - .type __func__.19988, %object - .size __func__.19988, 22 -__func__.19988: + .type __func__.20327, %object + .size __func__.20327, 22 +__func__.20327: .string "flash_start_page_prog" .zero 2 - .type __func__.20012, %object - .size __func__.20012, 31 -__func__.20012: + .type __func__.20351, %object + .size __func__.20351, 31 +__func__.20351: .string "flash_complete_plane_page_read" .zero 1 - .type __func__.20037, %object - .size __func__.20037, 25 -__func__.20037: + .type __func__.20376, %object + .size __func__.20376, 25 +__func__.20376: .string "flash_complete_page_read" .zero 7 - .type __func__.39375, %object - .size __func__.39375, 31 -__func__.39375: + .type __func__.40052, %object + .size __func__.40052, 31 +__func__.40052: .string "queue_wait_first_req_completed" .zero 1 - .type __func__.39429, %object - .size __func__.39429, 15 -__func__.39429: + .type __func__.40106, %object + .size __func__.40106, 15 +__func__.40106: .string "sblk_prog_page" .zero 1 - .type __func__.39456, %object - .size __func__.39456, 15 -__func__.39456: + .type __func__.40133, %object + .size __func__.40133, 15 +__func__.40133: .string "sblk_read_page" .zero 1 - .type __func__.19894, %object - .size __func__.19894, 19 -__func__.19894: - .string "flash_prog_page_en" - .zero 5 - .type __func__.39253, %object - .size __func__.39253, 14 -__func__.39253: - .string "ftl_prog_page" - .zero 2 - .type __func__.38916, %object - .size __func__.38916, 15 -__func__.38916: - .string "ftl_info_flush" - .zero 1 - .type __func__.39215, %object - .size __func__.39215, 19 -__func__.39215: - .string "ftl_ext_info_flush" - .zero 5 - .type __func__.39227, %object - .size __func__.39227, 18 -__func__.39227: - .string "ftl_ext_info_init" - .zero 6 - .type __func__.39106, %object - .size __func__.39106, 23 -__func__.39106: - .string "ftl_open_sblk_recovery" - .zero 1 - .type __func__.39586, %object - .size __func__.39586, 14 -__func__.39586: - .string "pm_write_page" - .zero 2 - .type __func__.20734, %object - .size __func__.20734, 17 -__func__.20734: - .string "flash_info_flush" - .zero 7 - .type __func__.20701, %object - .size __func__.20701, 20 -__func__.20701: - .string "flash_info_blk_init" - .zero 4 - .type __func__.20437, %object - .size __func__.20437, 16 -__func__.20437: - .string "nand_flash_init" .type __func__.39082, %object - .size __func__.39082, 16 + .size __func__.39082, 21 __func__.39082: - .string "ftl_sysblk_dump" - .type __func__.39520, %object - .size __func__.39520, 16 -__func__.39520: - .string "load_l2p_region" - .type __func__.39560, %object - .size __func__.39560, 6 -__func__.39560: - .string "pm_gc" - .zero 2 - .type __func__.38428, %object - .size __func__.38428, 22 -__func__.38428: - .string "gc_update_l2p_map_new" - .zero 2 - .type __func__.38541, %object - .size __func__.38541, 16 -__func__.38541: - .string "gc_scan_src_blk" - .type __func__.38599, %object - .size __func__.38599, 20 -__func__.38599: - .string "gc_scan_static_data" - .zero 4 - .type __func__.38662, %object - .size __func__.38662, 18 -__func__.38662: - .string "gc_block_vpn_scan" - .zero 6 - .type __func__.39058, %object - .size __func__.39058, 14 -__func__.39058: - .string "ftl_sblk_dump" - .zero 2 - .type __func__.38176, %object - .size __func__.38176, 10 -__func__.38176: - .string "zftl_read" - .zero 6 - .type __func__.38394, %object - .size __func__.38394, 21 -__func__.38394: .string "gc_check_data_one_wl" .zero 3 - .type __func__.39160, %object - .size __func__.39160, 19 -__func__.39160: + .type __func__.20233, %object + .size __func__.20233, 19 +__func__.20233: + .string "flash_prog_page_en" + .zero 5 + .type __func__.39929, %object + .size __func__.39929, 14 +__func__.39929: + .string "ftl_prog_page" + .zero 2 + .type __func__.39609, %object + .size __func__.39609, 15 +__func__.39609: + .string "ftl_info_flush" + .zero 1 + .type __func__.39891, %object + .size __func__.39891, 19 +__func__.39891: + .string "ftl_ext_info_flush" + .zero 5 + .type __func__.39903, %object + .size __func__.39903, 18 +__func__.39903: + .string "ftl_ext_info_init" + .zero 6 + .type __func__.40269, %object + .size __func__.40269, 14 +__func__.40269: + .string "pm_write_page" + .zero 2 + .type __func__.21155, %object + .size __func__.21155, 17 +__func__.21155: + .string "flash_info_flush" + .zero 7 + .type __func__.21118, %object + .size __func__.21118, 20 +__func__.21118: + .string "flash_info_blk_init" + .zero 4 + .type __func__.20846, %object + .size __func__.20846, 16 +__func__.20846: + .string "nand_flash_init" + .type __func__.39756, %object + .size __func__.39756, 16 +__func__.39756: + .string "ftl_sysblk_dump" + .type __func__.39781, %object + .size __func__.39781, 23 +__func__.39781: + .string "ftl_open_sblk_recovery" + .zero 1 + .type __func__.40203, %object + .size __func__.40203, 16 +__func__.40203: + .string "load_l2p_region" + .type __func__.40243, %object + .size __func__.40243, 6 +__func__.40243: + .string "pm_gc" + .zero 2 + .type __func__.39025, %object + .size __func__.39025, 12 +__func__.39025: + .string "gc_recovery" + .zero 4 + .type __func__.39114, %object + .size __func__.39114, 22 +__func__.39114: + .string "gc_update_l2p_map_new" + .zero 2 + .type __func__.39228, %object + .size __func__.39228, 16 +__func__.39228: + .string "gc_scan_src_blk" + .type __func__.39289, %object + .size __func__.39289, 20 +__func__.39289: + .string "gc_scan_static_data" + .zero 4 + .type __func__.39352, %object + .size __func__.39352, 18 +__func__.39352: + .string "gc_block_vpn_scan" + .zero 6 + .type __func__.39732, %object + .size __func__.39732, 14 +__func__.39732: + .string "ftl_sblk_dump" + .zero 2 + .type __func__.38857, %object + .size __func__.38857, 10 +__func__.38857: + .string "zftl_read" + .zero 6 + .type __func__.39835, %object + .size __func__.39835, 19 +__func__.39835: .string "ftl_update_l2p_map" .zero 5 - .type __func__.38080, %object - .size __func__.38080, 17 -__func__.38080: + .type __func__.38761, %object + .size __func__.38761, 17 +__func__.38761: .string "ftl_write_commit" .zero 7 - .type __func__.38470, %object - .size __func__.38470, 16 -__func__.38470: + .type __func__.39157, %object + .size __func__.39157, 16 +__func__.39157: .string "gc_do_copy_back" - .type __func__.38690, %object - .size __func__.38690, 11 -__func__.38690: + .type __func__.39380, %object + .size __func__.39380, 11 +__func__.39380: .string "zftl_do_gc" .zero 5 - .type __func__.38207, %object - .size __func__.38207, 13 -__func__.38207: + .type __func__.38888, %object + .size __func__.38888, 13 +__func__.38888: .string "_ftl_discard" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -28603,7 +30946,7 @@ __func__.38207: .LC1: .string "%s\n" .LC2: - .string "FTL version: 6.0.20 20200218" + .string "FTL version: 6.0.23 20201130" .LC3: .string "zftl_debug:0x%x\n" .LC4: @@ -28633,659 +30976,644 @@ __func__.38207: .LC16: .string "idb ecc: %x\n" .LC17: - .string "g_flash_slc_mode: %x\n" -.LC18: .string "OptMode: %x\n" -.LC19: +.LC18: .string "g_nand_max_die: %x\n" -.LC20: +.LC19: .string "Cache read enable: %x\n" -.LC21: +.LC20: .string "Cache random read enable: %x\n" -.LC22: +.LC21: .string "Cache prog enable: %x\n" -.LC23: +.LC22: .string "multi read enable: %x\n" -.LC24: +.LC23: .string "multi prog enable: %x\n" -.LC25: +.LC24: .string "interleave enable: %x\n" -.LC26: +.LC25: .string "read retry enable: %x\n" -.LC27: +.LC26: .string "randomizer enable: %x\n" -.LC28: +.LC27: .string "SDR enable: %x\n" -.LC29: +.LC28: .string "ONFI enable: %x\n" -.LC30: +.LC29: .string "TOGGLE enable: %x\n" -.LC31: +.LC30: .string "g_flash_slc_mode: %x %x\n" -.LC32: +.LC31: .string "MultiPlaneProgCmd: %x %x\n" -.LC33: +.LC32: .string "MultiPlaneReadCmd: %x %x\n" -.LC34: +.LC33: .string "g_flash_toggle_mode_en: %x\n" -.LC35: +.LC34: .string "...%s enter... %p\n" -.LC36: +.LC35: .string "0:%x %x %x %x %x\n" -.LC37: +.LC36: .string "g_nandc_ver...%d\n" -.LC38: +.LC37: .string "nand sdr mode %x\n" -.LC39: +.LC38: .string "nand ddr mode %x\n" -.LC40: +.LC39: .string "No.%d FLASH ID:%x %x %x %x %x %x\n" -.LC41: +.LC40: .string "otp:%x %x %x %x\n" -.LC42: +.LC41: .string "bad block test:%x %x\n" -.LC43: +.LC42: .string "flash_erase_duplane_block %x %x %x\n" -.LC44: +.LC43: .string "flash_erase_duplane_block pageadd = %x status = %x\n" -.LC45: +.LC44: .string "flash_erase_block %x %x %x\n" -.LC46: +.LC45: .string "flash_erase_block %d block = %x status = %x\n" -.LC47: +.LC46: .string "erase done: %x\n" +.LC47: + .string "sblk_queue_head = %d\n" .LC48: - .string "flash_mask_bad_block %d %d\n" + .string "sblk_read_completed_queue_head = %d\n" .LC49: - .string "zftl_debug" + .string "sblk_gc_write_completed_queue_head = %d\n" .LC50: - .string "FLASH ID: %x %x %x %x %x %x\n" + .string "sblk_write_completed_queue_head = %d\n" .LC51: - .string "density: %d MB\n" + .string "p_free_buf_head = %d\n" .LC52: - .string "device density: %d MB\n" + .string "free_buf_count = %d\n" .LC53: - .string "FTL INFO:\n" + .string "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_state=%d, op_status = %d lpa=%x, ppa=%x\n" .LC54: - .string "max_lpn = 0x%x\n" + .string "flash_mask_bad_block %d %d\n" .LC55: - .string "density = 0x%x\n" + .string "zftl_debug" .LC56: - .string "slc vpn = 0x%x\n" + .string "FLASH ID: %x %x %x %x %x %x\n" .LC57: - .string "xlc vpn = 0x%x\n" + .string "density: %d MB\n" .LC58: - .string "free slc blk = 0x%x\n" + .string "device density: %d MB\n" .LC59: - .string "free xlc blk = 0x%x\n" + .string "FTL INFO:\n" .LC60: - .string "free mix blk = 0x%x\n" + .string "max_lpn = 0x%x\n" .LC61: - .string "slc data blk = 0x%x\n" + .string "density = 0x%x\n" .LC62: - .string "slc cache blk = 0x%x\n" + .string "slc vpn = 0x%x\n" .LC63: - .string "xlc data blk = 0x%x\n" + .string "xlc vpn = 0x%x\n" .LC64: - .string "free buf = %d, %d, %d\n" + .string "free slc blk = 0x%x\n" .LC65: - .string "bad blk = %d %d\n" + .string "free xlc blk = 0x%x\n" .LC66: - .string "TBW = %d MB\n" + .string "free mix blk = 0x%x\n" .LC67: - .string "TBR = %d MB\n" + .string "slc data blk = 0x%x\n" .LC68: - .string "POC = %d\n" + .string "slc cache blk = 0x%x\n" .LC69: - .string "PLC = %d\n" + .string "xlc data blk = 0x%x\n" .LC70: - .string "sys run time = %d S\n" + .string "free buf = %d, %d, %d\n" .LC71: - .string "slc mode = %d\n" + .string "bad blk = %d %d\n" .LC72: - .string "prog err = %d\n" + .string "TBW = %d MB\n" .LC73: - .string "read err = %d\n" + .string "TBR = %d MB\n" .LC74: - .string "GC XLC page = %d\n" + .string "POC = %d\n" .LC75: - .string "GC SLC page = %d\n" + .string "PLC = %d\n" .LC76: - .string "discard page = 0x%x\n" + .string "sys run time = %d S\n" .LC77: - .string "version = %d\n" + .string "slc mode = %d\n" .LC78: - .string "acblk = 0x%x %d %d\n" + .string "prog err = %d\n" .LC79: - .string "tmblk = 0x%x %d %d\n" + .string "read err = %d\n" .LC80: - .string "gcblk = 0x%x %d %d\n" + .string "GC XLC page = %d\n" .LC81: - .string "slc ec = %d, %d, %d, %d, %d\n" + .string "GC SLC page = %d\n" .LC82: - .string "xlc ec = %d, %d, %d, %d, %d\n" + .string "discard page = 0x%x\n" .LC83: - .string "gc free blk th = %d\n" + .string "version = %d\n" .LC84: - .string "gc vpn th = %d %d %d %d %d\n" + .string "acblk = 0x%x %d %d\n" .LC85: - .string "swl blk = %x %x %x %x\n" + .string "tmblk = 0x%x %d %d\n" .LC86: - .string "rf info = %x %x %x %x %x\n" + .string "gcblk = 0x%x %d %d\n" .LC87: - .string "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\n" + .string "slc ec = %d, %d, %d, %d, %d\n" .LC88: - .string "gc_add_sblk = %d, %d, %d\n" + .string "xlc ec = %d, %d, %d, %d, %d\n" .LC89: - .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" + .string "gc free blk th = %d\n" .LC90: - .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" + .string "gc vpn th = %d %d %d %d %d\n" .LC91: - .string "gc_mark_bad_ppa %d %x %x\n" + .string "swl blk = %x %x %x %x\n" .LC92: - .string "status: %x, ppa: %x\n" + .string "rf info = %x %x %x %x %x\n" .LC93: - .string "gc_write_completed: %x %x %d %x\n" + .string "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\n" .LC94: - .string "%d gc_free_temp_buf buf id= %x\n" + .string "gc_add_sblk = %d, %d, %d\n" .LC95: - .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" + .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" .LC96: - .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" + .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" .LC97: - .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" + .string "gc_mark_bad_ppa %d %x %x\n" .LC98: - .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" + .string "status: %x, ppa: %x\n" .LC99: - .string "zftl_get_free_sblk %x %d, %p %d %d\n" + .string "%d gc_free_temp_buf buf id= %x\n" .LC100: - .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" + .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" .LC101: - .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" + .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" .LC102: - .string "list count:%p %d\n" + .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" .LC103: - .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" + .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" .LC104: - .string "ftl_vpn_decrement %x = %d, %d\n" + .string "zftl_get_free_sblk %x %d, %p %d %d\n" .LC105: - .string "mask bad block:cs %x %x block: %x %x\n" + .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" .LC106: - .string "gc_free_bad_sblk 0x%x\n" + .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" .LC107: - .string "swl_slc_free_mini_ec_blk sblk %x\n" + .string "list count:%p %d\n" .LC108: - .string "gc_free_src_blk = %x, vpn = %d\n" + .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" .LC109: - .string "gc_free_src_blk %x, %d\n" + .string "ftl_vpn_decrement %x = %d, %d\n" .LC110: - .string "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" + .string "mask bad block:cs %x %x block: %x %x\n" .LC111: - .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" + .string "gc_free_bad_sblk 0x%x\n" .LC112: - .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" + .string "swl_slc_free_mini_ec_blk sblk %x\n" .LC113: - .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" + .string "gc_free_src_blk = %x, vpn = %d\n" .LC114: - .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" + .string "gc_free_src_blk %x, %d\n" .LC115: - .string "swl : %x %x %x %x %x %x\n" + .string "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" .LC116: - .string "ftl prog error =%x, lpa = %x, ppa= %x\n" + .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" .LC117: - .string "ftl re prog: lpa = %x, ppa= %x\n" + .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" .LC118: - .string "alloc sblk %x %d\n" + .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" .LC119: - .string "dump_sblk_queue: %d\n" + .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" .LC120: - .string "buf id= %d state = %d ppa = %x\n" + .string "swl : %x %x %x %x %x %x\n" .LC121: - .string "blk %x is bad block\n" + .string "ftl prog error =%x, lpa = %x, ppa= %x\n" .LC122: - .string "pm_alloc_new_blk: %x %x %x %x\n" + .string "ftl re prog: lpa = %x, ppa= %x\n" .LC123: - .string "%s %d %d\n" + .string "alloc sblk %x %d\n" .LC124: - .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "dump_sblk_queue: %d\n" .LC125: - .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "buf id= %d state = %d ppa = %x\n" .LC126: - .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "blk %x is bad block\n" .LC127: - .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "pm_alloc_new_blk: %x %x %x %x\n" .LC128: - .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" + .string "%s %d %d\n" .LC129: - .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" + .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC130: - .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" + .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC131: - .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" + .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC132: - .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n" + .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC133: - .string "free blk vpn error: %x %x\n" + .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC134: - .string "GC PM block %x %x %x %d\n" + .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" .LC135: - .string "ftl_free_no_use_map_blk %x %x %x %d\n" + .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" .LC136: - .string "...%d @ %s\n" + .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" .LC137: - .string "rk_ftl_de_init %x\n" + .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n" .LC138: - .string "\0013" + .string "free blk vpn error: %x %x\n" .LC139: - .string "otp error! %d" + .string "GC PM block %x %x %x %d\n" .LC140: - .string "rr" + .string "ftl_free_no_use_map_blk %x %x %x %d\n" .LC141: - .string "flash_abort_clear = %d\n" + .string "...%d @ %s\n" .LC142: - .string "%d mtrans_cnt = %d page_num = %d\n" + .string "rk_ftl_de_init %x\n" .LC143: - .string "nandc:" + .string "\0013" .LC144: - .string "%d flReg.d32=%x %x\n" + .string "otp error! %d" .LC145: - .string "nandc_xfer_done read error %x\n" + .string "rr" .LC146: - .string "dqs data abort %x\n" + .string "flash_abort_clear = %d\n" .LC147: - .string "dqs data timeout %x\n" + .string "%d mtrans_cnt = %d page_num = %d\n" .LC148: - .string "xfer error %x\n" + .string "%d flReg.d32=%x %x\n" .LC149: - .string "flash_read_page %x %x %x\n" + .string "nandc:" .LC150: - .string "MT %d row=%x,last status %d,status = %d\n" + .string "nandc_xfer_done read error %x\n" .LC151: - .string "MT RR %d row=%x,count %d,status=%d\n" + .string "dqs data abort %x\n" .LC152: - .string "toshiba SRR %d row=%x, status=%d\n" + .string "dqs data timeout %x\n" .LC153: - .string "toshiba TRR %d row=%x, status=%d\n" + .string "xfer error %x\n" .LC154: - .string "toshiba RR %d row=%x,count %d,status=%d\n" + .string "MT %d row=%x,last status %d,status = %d\n" .LC155: - .string "hynix RR %d row=%x, count %d, status=%d\n" + .string "MT RR %d row=%x,count %d,status=%d\n" .LC156: - .string "%d flash_ddr_tuning_read %x ecc=%d\n" + .string "toshiba SRR %d row=%x, status=%d\n" .LC157: - .string "sync para %d\n" + .string "toshiba TRR %d row=%x, status=%d\n" .LC158: - .string "DDR mode Read error %x %x\n" + .string "toshiba RR %d row=%x,count %d,status=%d\n" .LC159: - .string "SDR mode Read %x %x ecc:%x\n" + .string "YMTC RR %d row=%x,count %d,status=%d\n" .LC160: - .string "flash_read_page_en %x %x %x %x\n" + .string "samsung SRR %d row=%x, status=%d\n" .LC161: - .string "flash_read_page_en %x %x error_ecc %d %d\n" + .string "samsung TRR %d row=%x, status=%d\n" .LC162: - .string "flash_get_last_written_page: %x %x %x\n" + .string "samsung RR %d row=%x,count %d,status=%d\n" .LC163: - .string "read page: %x %x %x %x\n" + .string "hynix RR %d row=%x, count %d, status=%d\n" .LC164: - .string "flash_prog_page %x %x %x\n" + .string "%d flash_ddr_tuning_read %x ecc=%d\n" .LC165: - .string "flash_prog_page page_addr = %x status = %x\n" + .string "sync para %d\n" .LC166: - .string "sblk_3d_tlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" + .string "DDR mode Read error %x %x\n" .LC167: - .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" + .string "SDR mode Read %x %x ecc:%x\n" .LC168: - .string "flash_complete_page_read %x %x error_ecc %d %d\n" + .string "flash_read_page_en %x %x %x %x\n" .LC169: - .string "read: %x %x %x %x\n" + .string "flash_read_page_en %x %x error_ecc %d %d\n" .LC170: - .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" + .string "flash_get_last_written_page: %x %x %x\n" .LC171: - .string "prog end %x %x error_ecc %d %d\n" + .string "flash_prog_page %x %x %x\n" .LC172: - .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" + .string "flash_prog_page page_addr = %x status = %x\n" .LC173: - .string "dp prog end %x %x error_ecc %d %d\n" + .string "ymtc_flash_tlc_page_prog page_addr = %x status = %x\n" .LC174: - .string "sblk_prog_page ppa = %x, count = %d\n" + .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" .LC175: - .string "flash_prog_page_en:%x %x %x\n" + .string "flash_complete_page_read %x %x error_ecc %d %d\n" .LC176: - .string "w d:" + .string "read: %x %x %x %x\n" .LC177: - .string "w s:" + .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" .LC178: - .string "spare" + .string "prog end %x %x error_ecc %d %d\n" .LC179: - .string "data" + .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" .LC180: - .string "write error: %x\n" + .string "dp prog end %x %x error_ecc %d %d\n" .LC181: - .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" + .string "sblk_prog_page ppa = %x, count = %d\n" .LC182: - .string "%d %x @%d %x\n" -.LC183: - .string "ftl_info_blk_init %d %d %x\n" -.LC184: - .string "ftl info hash %x error\n" -.LC185: - .string "ink flag: %x\n" -.LC186: - .string "%s %d %d %x %x\n" -.LC187: - .string "ext info hash %x error\n" -.LC188: - .string "%s %x %x %x\n" -.LC189: - .string "saved_active_page = %x\n" -.LC190: - .string "saved_active_plane = %x\n" -.LC191: - .string "sblk = %x\n" -.LC192: - .string "phy_blk = %x %x\n" -.LC193: - .string "num_planes = %x\n" -.LC194: - .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" -.LC195: - .string "dump_write_lpa = %x %x %x %x\n" -.LC196: - .string "dump write new ppa = %x, last ppa = %x lpa = %x\n" -.LC197: - .string "dump write = %x %x %x\n" -.LC198: - .string "dump write hash update = %x %x %x\n" -.LC199: - .string "pm_write_page write error: %x\n" -.LC200: - .string "ftl_sblk_dump_write = %x %d %d %d %d\n" -.LC201: - .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" -.LC202: - .string "ftl_sblk_dump_write2 = %x %d %d %d\n" -.LC203: - .string "ftl_sblk_dump_write = %x %x\n" -.LC204: - .string "ftl_sblk_dump_write done = %x\n" -.LC205: - .string "ftl_ink_check_sblk = %x %d %d\n" -.LC206: - .string "ftl_ink_check_sblk = %x %d %d end\n" -.LC207: - .string "finfo:" -.LC208: - .string "flash_info_flush id = %x, page = %x\n" -.LC209: - .string "sys_info_flush error:%x\n" -.LC210: - .string "...%d @ %s %d %p\n" -.LC211: - .string "no sys info %x\n" -.LC212: - .string "l2p:" -.LC213: - .string "free_buf_count: %d\n" -.LC214: - .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" -.LC215: - .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" -.LC216: - .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" -.LC217: - .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" -.LC218: - .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" -.LC219: - .string "lpa:" -.LC220: - .string "vpn:" -.LC221: - .string "sblk:" -.LC222: - .string "lpa_hash:" -.LC223: - .string "lpa_hash_index:" -.LC224: - .string "%s w error lpn = %x, max ppa = %d\n" -.LC225: - .string "region_id = %d, pm_max_region = %d\n" -.LC226: - .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" -.LC227: - .string "load_l2p_region = %x,%x,%x, %x\n" -.LC228: - .string "pm_ppa:" -.LC229: - .string "data:" -.LC230: - .string "spare:" -.LC231: - .string "pm_init posr %x %x %x\n" -.LC232: - .string "pm_init recovery %x %x %x\n" -.LC233: - .string "pm_init hash %x error\n" -.LC234: - .string "pm_log2phys lpn = %d, max lpn = %d\n" -.LC235: - .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" -.LC236: - .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" -.LC237: - .string "gc_recovery: %x vpn = %x\n" -.LC238: - .string "_c_user_data_density := %d\n" -.LC239: - .string "_c_totle_phy_density := %d\n" -.LC240: - .string "_c_totle_log_page := %d\n" -.LC241: - .string "_c_totle_data_density := %d\n" -.LC242: - .string "_c_ftl_pm_page_num := %d\n" -.LC243: - .string "_c_ftl_byte_pre_page := %d\n" -.LC244: - .string "_c_max_pm_sblk := %d\n" -.LC245: - .string "_min_slc_super_block := %d\n" -.LC246: - .string "_max_xlc_super_block := %d\n" -.LC247: - .string "gp_ftl_ext_info %p %p %p\n" -.LC248: - .string "flash info size: %d %d %d\n" -.LC249: - .string "ftl_init %x\n" -.LC250: - .string "gc_update_l2p_map_new sblk %x\n" -.LC251: - .string "gc_update_l2p_map_new: %x %x %x\n" -.LC252: - .string "lpa: %x %x %x\n" -.LC253: - .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" -.LC254: - .string "gc_scan_src_blk = %x, vpn = %d\n" -.LC255: - .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" -.LC256: - .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" -.LC257: - .string "ftl_sblk_dump = %x %d %d %d %d\n" -.LC258: - .string "ftl_sblk_dump = %x %x %x %x\n" -.LC259: - .string "page_addr = %x, lpa=%x vpn = %d\n" -.LC260: - .string "index= %x, lpa=%x\n" -.LC261: - .string "block = %x, vpn=%x check vpn = %d\n" -.LC262: - .string "ftl_read %x %x %x\n" -.LC263: - .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" -.LC264: - .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" -.LC265: - .string "zftl debug cmd: %s\n" -.LC266: - .string "cmd:" -.LC267: - .string "dumpl2p" -.LC268: - .string "pm l2p:" -.LC269: - .string "pm blk:" -.LC270: - .string "dumppm:" -.LC271: - .string "p_cmd: %s\n" -.LC272: - .string "pm ram = %x, %x\n" -.LC273: - .string "ram:" -.LC274: - .string "pm:" -.LC275: - .string "dumpsys" -.LC276: - .string "dumplist:" -.LC277: - .string "vpncheck" -.LC278: - .string "dumpppa:" -.LC279: - .string "dumpblk:" -.LC280: - .string "setzdebug:" -.LC281: - .string "lpa2ppa:" -.LC282: - .string "lpa: %x--> ppa: %x\n" -.LC283: - .string "help:\n" -.LC284: - .string "1. echo dumpl2p > /proc/zftl_debug\n" -.LC285: - .string "2. echo dumppm:x > /proc/zftl_debug\n" -.LC286: - .string "3. echo dumpsys > /proc/zftl_debug\n" -.LC287: - .string "4. echo dumpppa:x > /proc/zftl_debug\n" -.LC288: - .string "5. echo vpncheck > /proc/zftl_debug\n" -.LC289: - .string "6. echo setzdebug:x > /proc/zftl_debug\n" -.LC290: - .string "7. echo dumplist > /proc/zftl_debug\n" -.LC291: - .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" -.LC292: - .string "gc_lpa:" -.LC293: - .string "gc_ppa:" -.LC294: .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" -.LC295: +.LC183: + .string "flash_prog_page_en:%x %x %x\n" +.LC184: + .string "w d:" +.LC185: + .string "w s:" +.LC186: + .string "spare" +.LC187: + .string "data" +.LC188: + .string "write error: %x\n" +.LC189: + .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" +.LC190: + .string "%d %x @%d %x\n" +.LC191: + .string "ftl_info_blk_init %d %d %x\n" +.LC192: + .string "ftl info hash %x error\n" +.LC193: + .string "ink flag: %x\n" +.LC194: + .string "%s %d %d %x %x\n" +.LC195: + .string "ext info hash %x error\n" +.LC196: + .string "%s %x %x %x\n" +.LC197: + .string "pm_write_page write error: %x\n" +.LC198: + .string "ftl_sblk_dump_write = %x %d %d %d %d\n" +.LC199: + .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" +.LC200: + .string "ftl_sblk_dump_write2 = %x %d %d %d\n" +.LC201: + .string "ftl_sblk_dump_write = %x %x\n" +.LC202: + .string "ftl_sblk_dump_write done = %x\n" +.LC203: + .string "finfo:" +.LC204: + .string "flash_info_flush id = %x, page = %x\n" +.LC205: + .string "sys_info_flush error:%x\n" +.LC206: + .string "...%d @ %s %d %p\n" +.LC207: + .string "no sys info %x\n" +.LC208: + .string "l2p:" +.LC209: + .string "saved_active_page = %x\n" +.LC210: + .string "saved_active_plane = %x\n" +.LC211: + .string "sblk = %x\n" +.LC212: + .string "phy_blk = %x %x\n" +.LC213: + .string "num_planes = %x\n" +.LC214: + .string "recovery blk=%x, page=%x, ppa = %x, status = %x, hash:%x\n" +.LC215: + .string "data:" +.LC216: + .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" +.LC217: + .string "dump_write_lpa = %x %x %x %x\n" +.LC218: + .string "dump write new ppa = %x, last ppa = %x lpa = %x\n" +.LC219: + .string "dump write = %x %x %x\n" +.LC220: + .string "dump write hash update = %x %x %x\n" +.LC221: + .string "free_buf_count: %d\n" +.LC222: + .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" +.LC223: + .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" +.LC224: + .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" +.LC225: + .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" +.LC226: + .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" +.LC227: + .string "lpa:" +.LC228: + .string "vpn:" +.LC229: + .string "sblk:" +.LC230: + .string "lpa_hash:" +.LC231: + .string "lpa_hash_index:" +.LC232: + .string "%s w error lpn = %x, max ppa = %d\n" +.LC233: + .string "region_id = %d, pm_max_region = %d\n" +.LC234: + .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" +.LC235: + .string "load_l2p_region = %x,%x,%x, %x\n" +.LC236: + .string "pm_ppa:" +.LC237: + .string "spare:" +.LC238: + .string "pm_init posr %x %x %x\n" +.LC239: + .string "pm_init recovery %x %x %x\n" +.LC240: + .string "pm_init hash %x error\n" +.LC241: + .string "pm_log2phys lpn = %d, max lpn = %d\n" +.LC242: + .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" +.LC243: + .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" +.LC244: + .string "gc_recovery: %x vpn = %x\n" +.LC245: + .string "gc_update_l2p_map_new sblk %x\n" +.LC246: + .string "gc_update_l2p_map_new: %x %x %x\n" +.LC247: + .string "lpa: %x %x %x\n" +.LC248: + .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" +.LC249: + .string "gc_scan_src_blk = %x, vpn = %d\n" +.LC250: + .string "js hash error:%x %x %x\n" +.LC251: + .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" +.LC252: + .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" +.LC253: + .string "ftl_sblk_dump = %x %d %d %d %d\n" +.LC254: + .string "ftl_sblk_dump = %x %x %x %x\n" +.LC255: + .string "page_addr = %x, lpa=%x vpn = %d\n" +.LC256: + .string "index= %x, lpa=%x\n" +.LC257: + .string "block = %x, vpn=%x check vpn = %x\n" +.LC258: + .string "ftl_read %x %x %x\n" +.LC259: + .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" +.LC260: + .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" +.LC261: + .string "zftl debug cmd: %s\n" +.LC262: + .string "cmd:" +.LC263: + .string "dumpl2p" +.LC264: + .string "pm l2p:" +.LC265: + .string "pm blk:" +.LC266: + .string "dumppm:" +.LC267: + .string "p_cmd: %s\n" +.LC268: + .string "pm ram = %x, %x\n" +.LC269: + .string "ram:" +.LC270: + .string "pm:" +.LC271: + .string "dumpsys" +.LC272: + .string "dumplist:" +.LC273: + .string "vpncheck" +.LC274: + .string "dumpppa:" +.LC275: + .string "dumpblk:" +.LC276: + .string "setzdebug:" +.LC277: + .string "lpa2ppa:" +.LC278: + .string "lpa: %x--> ppa: %x\n" +.LC279: + .string "help:\n" +.LC280: + .string "1. echo dumpl2p > /proc/zftl_debug\n" +.LC281: + .string "2. echo dumppm:x > /proc/zftl_debug\n" +.LC282: + .string "3. echo dumpsys > /proc/zftl_debug\n" +.LC283: + .string "4. echo dumpppa:x > /proc/zftl_debug\n" +.LC284: + .string "5. echo vpncheck > /proc/zftl_debug\n" +.LC285: + .string "6. echo setzdebug:x > /proc/zftl_debug\n" +.LC286: + .string "7. echo dumplist > /proc/zftl_debug\n" +.LC287: + .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" +.LC288: .string "ftl_update_l2p_map: %x %x %x\n" -.LC296: +.LC289: .string "ftl_update_l2p_map" -.LC297: +.LC290: .string "lpa_tbl:" -.LC298: +.LC291: .string "sblk %x vpn: %d %d\n" -.LC299: +.LC292: .string "error gc_add_sblk: %x\n" -.LC300: +.LC293: .string "%d read error: ppa:%x, lpa:%x, status:%x\n" -.LC301: +.LC294: .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" -.LC302: +.LC295: .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" -.LC303: - .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x %x %d\n" -.LC304: +.LC296: .string "gc %d: %d %d %d %d %d %d %d\n" -.LC305: - .string "gc %d: %d %d %d %d %d %d\n" -.LC306: +.LC297: .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" -.LC307: +.LC298: .string "gc free %x, %d\n" +.LC299: + .string "_c_user_data_density := %d\n" +.LC300: + .string "_c_totle_phy_density := %d\n" +.LC301: + .string "_c_totle_log_page := %d\n" +.LC302: + .string "_c_totle_data_density := %d\n" +.LC303: + .string "_c_ftl_pm_page_num := %d\n" +.LC304: + .string "_c_ftl_byte_pre_page := %d\n" +.LC305: + .string "_c_max_pm_sblk := %d\n" +.LC306: + .string "_min_slc_super_block := %d\n" +.LC307: + .string "_max_xlc_super_block := %d\n" .LC308: - .string "ftlwrite %x %x %x %x\n" + .string "gp_ftl_ext_info %p %p %p\n" .LC309: - .string "ftl_discard:(%x, %x, %x, %x)\n" + .string "flash info size: %d %d %d\n" .LC310: - .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" + .string "ftl_init %x\n" .LC311: - .string "write_idblock fix data %x %x\n" + .string "ftlwrite %x %x %x %x\n" .LC312: - .string "idblk:" + .string "ftl_discard:(%x, %x, %x, %x)\n" .LC313: - .string "write_idblock totle_sec %x %x\n" + .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" .LC314: - .string "prog page: %x %x %x, %p %x %x %x\n" + .string "write_idblock fix data %x %x\n" .LC315: - .string "wl_lba %p %x %x %x\n" + .string "idblk:" .LC316: - .string "READ_SECTOR_IO\n" + .string "write_idblock totle_sec %x %x\n" .LC317: - .string "rk_copy_from_user error\n" + .string "prog page: %x %x %x, %p %x %x %x\n" .LC318: - .string "READ_SECTOR_IO %x %x\n" + .string "read page: %x %x %x %x\n" .LC319: - .string "rk_copy_to_user error\n" + .string "wl_lba %p %x %x %x\n" .LC320: - .string "WRITE_SECTOR_IO\n" -.LC321: - .string "WRITE_SECTOR_IO %x %x\n" -.LC322: - .string "END_WRITE_SECTOR_IO\n" -.LC323: - .string "END_WRITE_SECTOR_IO %x %x\n" -.LC324: - .string "GET_FLASH_INFO_IO\n" -.LC325: - .string "GET_BAD_BLOCK_IO\n" -.LC326: - .string "GET_LOCK_FLAG_IO\n" -.LC327: - .string "GET_PUBLIC_KEY_IO\n" -.LC328: .string "RKNAND_GET_DRM_KEY\n" -.LC329: +.LC321: + .string "rk_copy_from_user error\n" +.LC322: .string "RKNAND_STORE_DRM_KEY\n" -.LC330: +.LC323: .string "RKNAND_DIASBLE_SECURE_BOOT\n" -.LC331: +.LC324: .string "RKNAND_ENASBLE_SECURE_BOOT\n" -.LC332: +.LC325: .string "RKNAND_GET_SN_SECTOR\n" -.LC333: +.LC326: .string "RKNAND_LOADER_UNLOCK\n" -.LC334: +.LC327: .string "RKNAND_LOADER_STATUS\n" -.LC335: +.LC328: .string "RKNAND_LOADER_LOCK\n" -.LC336: +.LC329: .string "LockKey not match %d\n" -.LC337: +.LC330: .string "RKNAND_GET_VENDOR_SECTOR\n" -.LC338: +.LC331: .string "RKNAND_STORE_VENDOR_SECTOR\n" -.LC339: +.LC332: .string "return ret = %lx\n" -.LC340: +.LC333: .string "secureBootEn check error\n" -.LC341: +.LC334: .string "\0013vendor storage %x,%x,%x\n" .data .align 3 .LANCHOR2 = . + 0 -.LANCHOR7 = . + 4352 .type zftl_debug, %object .size zftl_debug, 4 zftl_debug: @@ -29717,7 +32045,7 @@ hy_f26_ref_value: .byte -37 .zero 4 .type zftl_nand_flash_para_tbl, %object - .size zftl_nand_flash_para_tbl, 1440 + .size zftl_nand_flash_para_tbl, 1568 zftl_nand_flash_para_tbl: .byte 6 .byte -104 @@ -30028,6 +32356,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 6 + .byte -104 + .byte -34 + .byte -108 + .byte -109 + .byte 118 + .byte -47 + .byte 1 + .byte 1 + .byte 32 + .hword 256 + .byte 2 + .byte 2 + .hword 1074 + .hword 17881 + .byte 2 + .byte 35 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 4 + .byte 0 + .hword 256 + .byte 1 + .byte -94 + .byte 0 + .byte 0 + .byte 6 .byte 69 .byte 58 .byte -108 @@ -30278,7 +32634,7 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 0 - .byte 0 + .byte 1 .byte 5 .byte 44 .byte 100 @@ -30387,7 +32743,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .hword 512 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 @@ -30443,7 +32799,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .hword 512 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 @@ -30471,7 +32827,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .hword 512 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 @@ -30499,7 +32855,7 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .hword 512 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 @@ -30636,14 +32992,42 @@ zftl_nand_flash_para_tbl: .byte 32 .byte 1 .byte 0 - .byte 4 + .byte 1 .byte 0 .hword 1024 - .byte 2 + .byte 1 .byte -38 .byte -33 .byte 0 .byte 6 + .byte -101 + .byte -61 + .byte 72 + .byte 37 + .byte 16 + .byte 0 + .byte 9 + .byte 1 + .byte 32 + .hword 1152 + .byte 3 + .byte 2 + .hword 1006 + .hword -27169 + .byte 13 + .byte 81 + .byte 70 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .hword 2048 + .byte 1 + .byte -38 + .byte -33 + .byte 24 + .byte 6 .byte -83 .byte -34 .byte 20 @@ -30664,7 +33048,7 @@ zftl_nand_flash_para_tbl: .byte 32 .byte 3 .byte 1 - .byte 4 + .byte 3 .byte 0 .hword 256 .byte 2 @@ -30832,7 +33216,7 @@ zftl_nand_flash_para_tbl: .byte 32 .byte 3 .byte 1 - .byte 4 + .byte 3 .byte 0 .hword 512 .byte 0 @@ -30953,6 +33337,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 6 .byte -119 + .byte -120 + .byte 4 + .byte 75 + .byte -87 + .byte 0 + .byte 7 + .byte 1 + .byte 16 + .hword 256 + .byte 2 + .byte 4 + .hword 1024 + .hword 449 + .byte 1 + .byte 0 + .byte 24 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .hword 256 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 6 + .byte -119 .byte -92 .byte 8 .byte 50 @@ -30979,6 +33391,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 0 .byte 4 + .byte 6 + .byte -20 + .byte -34 + .byte -108 + .byte -61 + .byte -92 + .byte -54 + .byte 0 + .byte 1 + .byte 32 + .hword 792 + .byte 2 + .byte 1 + .hword 688 + .hword 1217 + .byte 11 + .byte 50 + .byte 40 + .byte 32 + .byte 3 + .byte 1 + .byte 1 + .byte 0 + .hword 1024 + .byte 1 + .byte -38 + .byte -33 + .byte 0 .type nand_opt_para, %object .size nand_opt_para, 128 nand_opt_para: @@ -32216,271 +34656,11 @@ tlc_prog_order: .hword 1018 .hword 1011 .hword 1019 - .type gTable_Crc32, %object - .size gTable_Crc32, 1024 -gTable_Crc32: - .word 0 - .word 79760823 - .word 159521646 - .word 222500569 - .word 319043292 - .word 398801771 - .word 445001138 - .word 507977733 - .word 638086584 - .word 583622671 - .word 797603542 - .word 726367073 - .word 890002276 - .word 835540691 - .word 1015955466 - .word 944721341 - .word 1276173168 - .word 1221711559 - .word 1167245342 - .word 1096011177 - .word 1595207084 - .word 1540743195 - .word 1452734146 - .word 1381497717 - .word 1780004552 - .word 1859763071 - .word 1671081382 - .word 1734058001 - .word 2031910932 - .word 2111671715 - .word 1889442682 - .word 1952421581 - .word -1742620960 - .word -1662993577 - .word -1851544178 - .word -1788698567 - .word -1960476612 - .word -1880846965 - .word -2102944942 - .word -2040097051 - .word -1104553128 - .word -1159145745 - .word -1213480906 - .word -1284846207 - .word -1389499004 - .word -1444093901 - .word -1531971862 - .word -1603339427 - .word -734958192 - .word -789553113 - .word -575441154 - .word -646808759 - .word -952804532 - .word -1007397125 - .word -826851294 - .word -898216555 - .word -231145432 - .word -151515745 - .word -71623866 - .word -8775951 - .word -516081932 - .word -436454589 - .word -390124134 - .word -327278547 - .word 880959607 - .word 809725376 - .word 1023441689 - .word 968980142 - .word 663115435 - .word 591878940 - .word 772033989 - .word 717570162 - .word 311037391 - .word 374014072 - .word 453514913 - .word 533273366 - .word 26098451 - .word 89077412 - .word 135012477 - .word 214773194 - .word 2022882055 - .word 2085861040 - .word 1896915049 - .word 1976675806 - .word 1805028827 - .word 1868005484 - .word 1645516469 - .word 1725274882 - .word 1587205823 - .word 1515969288 - .word 1461243345 - .word 1406779494 - .word 1302257763 - .word 1231023572 - .word 1142749965 - .word 1088288442 - .word -1398548841 - .word -1469916384 - .word -1524511239 - .word -1579106226 - .word -1079517109 - .word -1150882308 - .word -1239024859 - .word -1293617518 - .word -1968456913 - .word -1905609064 - .word -2094423999 - .word -2014794250 - .word -1716548109 - .word -1653702588 - .word -1876060515 - .word -1796433110 - .word -525136409 - .word -462290864 - .word -382658935 - .word -303031490 - .word -206095557 - .word -143247732 - .word -97181611 - .word -17551902 - .word -960798625 - .word -1032163864 - .word -818316495 - .word -872909178 - .word -708880765 - .word -780248268 - .word -599962131 - .word -654557094 - .word 1761919214 - .word 1841679705 - .word 1619450752 - .word 1682429495 - .word 2046883378 - .word 2126642053 - .word 1937960284 - .word 2000937195 - .word 1326230870 - .word 1271767265 - .word 1183757880 - .word 1112521615 - .word 1544067978 - .word 1489606205 - .word 1435140324 - .word 1363905875 - .word 622074782 - .word 567612969 - .word 748028144 - .word 676793671 - .word 907029826 - .word 852566261 - .word 1066546732 - .word 995310491 - .word 52196902 - .word 131955601 - .word 178154824 - .word 241131775 - .word 270024954 - .word 349785421 - .word 429546388 - .word 492525091 - .word -249203186 - .word -169575495 - .word -123245216 - .word -60399401 - .word -501137198 - .word -421507739 - .word -341615684 - .word -278768117 - .word -684909642 - .word -739502591 - .word -558956328 - .word -630321809 - .word -1003934358 - .word -1058529059 - .word -844417532 - .word -915784781 - .word -1120555650 - .word -1175150391 - .word -1263028720 - .word -1334395993 - .word -1372480606 - .word -1427073515 - .word -1481408308 - .word -1552773765 - .word -1690451770 - .word -1610822287 - .word -1832920152 - .word -1770072545 - .word -2009467366 - .word -1929839699 - .word -2118390412 - .word -2055544637 - .word 1569104025 - .word 1497869614 - .word 1409596407 - .word 1355134528 - .word 1317180997 - .word 1245944818 - .word 1191218475 - .word 1136754844 - .word 2072956193 - .word 2135933078 - .word 1913443919 - .word 1993202680 - .word 1753938941 - .word 1816917578 - .word 1627971731 - .word 1707732260 - .word 295074793 - .word 358053470 - .word 403988615 - .word 483749168 - .word 43142453 - .word 106119298 - .word 185620059 - .word 265378796 - .word 933107281 - .word 861871078 - .word 1042025791 - .word 987562120 - .word 614080653 - .word 542846266 - .word 756562915 - .word 702101076 - .word -978905479 - .word -1050272818 - .word -869987049 - .word -924581728 - .word -693952347 - .word -765317870 - .word -551470133 - .word -606062980 - .word -475038783 - .word -412191114 - .word -366124881 - .word -286495464 - .word -257209059 - .word -194363222 - .word -114731405 - .word -35103804 - .word -1984443127 - .word -1921597250 - .word -2143955353 - .word -2064327728 - .word -1699480619 - .word -1636632990 - .word -1825447749 - .word -1745818356 - .word -1346395983 - .word -1417761530 - .word -1505903649 - .word -1560496536 - .word -1128556947 - .word -1199924262 - .word -1254519549 - .word -1309114188 .bss .align 6 .LANCHOR0 = . + 0 .LANCHOR3 = . + 4352 -.LANCHOR5 = . + 21760 -.LANCHOR6 = . + 39168 +.LANCHOR5 = . + 8704 .type g_flash_slc_mode, %object .size g_flash_slc_mode, 1 g_flash_slc_mode: @@ -32494,9 +34674,9 @@ g_slc_mode_addr2: g_block_align_addr: .zero 2 .type g_lsb_page_tbl, %object - .size g_lsb_page_tbl, 512 + .size g_lsb_page_tbl, 1024 g_lsb_page_tbl: - .zero 512 + .zero 1024 .type g_nandc_ver, %object .size g_nandc_ver, 1 g_nandc_ver: @@ -32637,11 +34817,15 @@ gp_flash_info: .size g_die_cs_idx, 8 g_die_cs_idx: .zero 8 + .type g_flash_six_addr, %object + .size g_flash_six_addr, 1 +g_flash_six_addr: + .zero 1 .type _c_ftl_cs_bits, %object .size _c_ftl_cs_bits, 1 _c_ftl_cs_bits: .zero 1 - .zero 7 + .zero 6 .type g_flash_cur_mode, %object .size g_flash_cur_mode, 4 g_flash_cur_mode: @@ -32650,7 +34834,11 @@ g_flash_cur_mode: .size g_flash_micron_3d_tlc_flag, 1 g_flash_micron_3d_tlc_flag: .zero 1 - .zero 3 + .type g_flash_ymtc_3d_tlc_flag, %object + .size g_flash_ymtc_3d_tlc_flag, 1 +g_flash_ymtc_3d_tlc_flag: + .zero 1 + .zero 2 .type IDByte, %object .size IDByte, 32 IDByte: @@ -32683,6 +34871,19 @@ free_buf_count: .type sblk_queue_head, %object .size sblk_queue_head, 1 sblk_queue_head: + .zero 1 + .type sblk_read_completed_queue_head, %object + .size sblk_read_completed_queue_head, 1 +sblk_read_completed_queue_head: + .zero 1 + .type sblk_gc_write_completed_queue_head, %object + .size sblk_gc_write_completed_queue_head, 1 +sblk_gc_write_completed_queue_head: + .zero 1 + .type sblk_write_completed_queue_head, %object + .size sblk_write_completed_queue_head, 1 +sblk_write_completed_queue_head: + .zero 1 .zero 1 .type _c_totle_phy_density, %object .size _c_totle_phy_density, 4 @@ -32724,7 +34925,7 @@ write_buf_count: .size write_commit_count, 1 write_commit_count: .zero 1 - .zero 6 + .zero 2 .type gp_ftl_info, %object .size gp_ftl_info, 8 gp_ftl_info: @@ -32760,9 +34961,9 @@ write_buf_head: .zero 1 .zero 7 .type g_gc_info, %object - .size g_gc_info, 600 + .size g_gc_info, 2136 g_gc_info: - .zero 600 + .zero 2136 .type ftl_sblk_vpn_update_id, %object .size ftl_sblk_vpn_update_id, 2 ftl_sblk_vpn_update_id: @@ -32785,13 +34986,13 @@ _c_ftl_planes_per_die: .size gc_valid_page_ppa, 8 gc_valid_page_ppa: .zero 8 - .type sblk_gc_write_completed_queue_head, %object - .size sblk_gc_write_completed_queue_head, 1 -sblk_gc_write_completed_queue_head: - .zero 1 .type _c_ftl_nand_type, %object .size _c_ftl_nand_type, 1 _c_ftl_nand_type: + .zero 1 + .type _c_ftl_nand_planes_num, %object + .size _c_ftl_nand_planes_num, 1 +_c_ftl_nand_planes_num: .zero 1 .type g_flash_3d_mlc_flag, %object .size g_flash_3d_mlc_flag, 1 @@ -32818,11 +35019,7 @@ gc_mode: .size _c_ftl_page_pre_blk, 2 _c_ftl_page_pre_blk: .zero 2 - .type _c_ftl_nand_planes_num, %object - .size _c_ftl_nand_planes_num, 1 -_c_ftl_nand_planes_num: - .zero 1 - .zero 3 + .zero 4 .type gp_data_xlc_data_head, %object .size gp_data_xlc_data_head, 8 gp_data_xlc_data_head: @@ -32831,6 +35028,10 @@ gp_data_xlc_data_head: .size gp_data_slc_cache_head, 8 gp_data_slc_cache_head: .zero 8 + .type gc_slc_data_index, %object + .size gc_slc_data_index, 2 +gc_slc_data_index: + .zero 2 .type gc_slc_cache_index, %object .size gc_slc_cache_index, 2 gc_slc_cache_index: @@ -32842,10 +35043,6 @@ gc_xlc_data_index: .type _c_ftl_page_pre_slc_blk, %object .size _c_ftl_page_pre_slc_blk, 2 _c_ftl_page_pre_slc_blk: - .zero 2 - .type gc_slc_data_index, %object - .size gc_slc_data_index, 2 -gc_slc_data_index: .zero 2 .type gc_xlc_search_index, %object .size gc_xlc_search_index, 2 @@ -32905,22 +35102,19 @@ ftl_vpn_update_count: .size ftl_sblk_update_list_offset, 2 ftl_sblk_update_list_offset: .zero 2 + .type g_flash_micron_3d_tlc_b05a, %object + .size g_flash_micron_3d_tlc_b05a, 1 +g_flash_micron_3d_tlc_b05a: + .zero 1 + .zero 1 .type _c_mix_max_xlc_ec_count, %object .size _c_mix_max_xlc_ec_count, 2 _c_mix_max_xlc_ec_count: - .zero 2 - .type _max_slc_super_block, %object - .size _max_slc_super_block, 2 -_max_slc_super_block: .zero 2 .type _c_mix_max_slc_ec_count, %object .size _c_mix_max_slc_ec_count, 2 _c_mix_max_slc_ec_count: .zero 2 - .type sblk_write_completed_queue_head, %object - .size sblk_write_completed_queue_head, 1 -sblk_write_completed_queue_head: - .zero 1 .type read_buf_head, %object .size read_buf_head, 1 read_buf_head: @@ -32929,15 +35123,9 @@ read_buf_head: .size read_buf_count, 1 read_buf_count: .zero 1 - .type sblk_read_completed_queue_head, %object - .size sblk_read_completed_queue_head, 1 -sblk_read_completed_queue_head: - .zero 1 - .zero 2 .type pm_gc_enable, %object .size pm_gc_enable, 4 pm_gc_enable: - .zero 4 .zero 4 .type pm_ram_info, %object .size pm_ram_info, 512 @@ -32949,9 +35137,9 @@ pm_last_update_ram_id: .zero 1 .zero 3 .type g_msb_page_tbl, %object - .size g_msb_page_tbl, 1024 + .size g_msb_page_tbl, 2048 g_msb_page_tbl: - .zero 1024 + .zero 2048 .type g_slc_page_num, %object .size g_slc_page_num, 2 g_slc_page_num: @@ -32974,6 +35162,11 @@ gc_state: .size gc_search_count, 4 gc_search_count: .zero 4 + .type gc_slc_mode_slc_vpn_th, %object + .size gc_slc_mode_slc_vpn_th, 2 +gc_slc_mode_slc_vpn_th: + .zero 2 + .zero 6 .type gc_lpa_tbl, %object .size gc_lpa_tbl, 8 gc_lpa_tbl: @@ -33071,11 +35264,11 @@ ftl_info_spare: .size g_ftl_info_blk, 4 g_ftl_info_blk: .zero 4 - .zero 60 + .zero 4 .type ftl_info_data_buffer, %object - .size ftl_info_data_buffer, 16384 + .size ftl_info_data_buffer, 8 ftl_info_data_buffer: - .zero 16384 + .zero 8 .type ftl_sys_info_first_write, %object .size ftl_sys_info_first_write, 1 ftl_sys_info_first_write: @@ -33088,11 +35281,12 @@ ftl_power_lost_flag: .size ftl_ext_info_first_write, 1 ftl_ext_info_first_write: .zero 1 - .zero 61 + .zero 5 .type ftl_ext_info_data_buffer, %object - .size ftl_ext_info_data_buffer, 16384 + .size ftl_ext_info_data_buffer, 8 ftl_ext_info_data_buffer: - .zero 16384 + .zero 8 + .zero 32 .type ftl_tmp_spare, %object .size ftl_tmp_spare, 256 ftl_tmp_spare: @@ -33117,15 +35311,10 @@ g_flash_blk_info: .type g_flash_reversd_blks, %object .size g_flash_reversd_blks, 1 g_flash_reversd_blks: - .zero 1 - .type g_flash_micron_3d_tlc_b05a, %object - .size g_flash_micron_3d_tlc_b05a, 1 -g_flash_micron_3d_tlc_b05a: .zero 1 .type g_flash_micron_3d_tlc_b16a, %object .size g_flash_micron_3d_tlc_b16a, 1 g_flash_micron_3d_tlc_b16a: - .zero 1 .zero 1 .type _c_ftl_byte_pre_page, %object .size _c_ftl_byte_pre_page, 2 @@ -33135,7 +35324,19 @@ _c_ftl_byte_pre_page: .size pm_last_load_ram_id, 1 pm_last_load_ram_id: .zero 1 + .type _ftl_gc_tag_page_num, %object + .size _ftl_gc_tag_page_num, 1 +_ftl_gc_tag_page_num: .zero 1 + .zero 2 + .type _last_read_time, %object + .size _last_read_time, 4 +_last_read_time: + .zero 4 + .type _last_write_time, %object + .size _last_write_time, 4 +_last_write_time: + .zero 4 .type read_ahead_lpa, %object .size read_ahead_lpa, 4 read_ahead_lpa: @@ -33148,11 +35349,16 @@ _c_totle_data_density: .size _c_ftl_pm_page_num, 2 _c_ftl_pm_page_num: .zero 2 + .zero 2 + .type ftl_tmp_buffer, %object + .size ftl_tmp_buffer, 8 +ftl_tmp_buffer: + .zero 8 .type rk_zftl_enable, %object .size rk_zftl_enable, 1 rk_zftl_enable: .zero 1 - .zero 1 + .zero 7 .type gLoaderBootInfo, %object .size gLoaderBootInfo, 8 gLoaderBootInfo: @@ -33161,14 +35367,6 @@ gLoaderBootInfo: .size RK29_NANDC1_REG_BASE, 8 RK29_NANDC1_REG_BASE: .zero 8 - .type _last_read_time, %object - .size _last_read_time, 4 -_last_read_time: - .zero 4 - .type _last_write_time, %object - .size _last_write_time, 4 -_last_write_time: - .zero 4 .type discard_sector_count, %object .size discard_sector_count, 4 discard_sector_count: @@ -33187,10 +35385,6 @@ idb_buf: idb_last_lba: .zero 4 .zero 4 - .type g_idb_buffer, %object - .size g_idb_buffer, 8 -g_idb_buffer: - .zero 8 .type gpDrmKeyInfo, %object .size gpDrmKeyInfo, 8 gpDrmKeyInfo: @@ -33223,6 +35417,10 @@ gpVendor0Info: .type gpVendor1Info, %object .size gpVendor1Info, 8 gpVendor1Info: + .zero 8 + .type g_idb_buffer, %object + .size g_idb_buffer, 8 +g_idb_buffer: .zero 8 .type g_vendor, %object .size g_vendor, 8 @@ -33232,11 +35430,7 @@ g_vendor: .size ftl_low_format_cur_blk, 2 ftl_low_format_cur_blk: .zero 2 - .zero 30 - .type ftl_tmp_buffer, %object - .size ftl_tmp_buffer, 16384 -ftl_tmp_buffer: - .zero 16384 + .zero 6 .type p_read_ahead_ext_buf, %object .size p_read_ahead_ext_buf, 8 p_read_ahead_ext_buf: