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: