diff --git a/drivers/rk_nand/rk_ftl_arm_v7.S b/drivers/rk_nand/rk_ftl_arm_v7.S index 657651528d56..cc22c1c5590e 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: 2019-09-29 + * date: 2020-02-18 */ .arch armv7-a .fpu softvfp @@ -17,8 +17,10 @@ .eabi_attribute 26, 2 .eabi_attribute 30, 4 .eabi_attribute 34, 1 - .eabi_attribute 18, 2 + .eabi_attribute 18, 4 .file "rk_ftl_arm_v7.S" +#APP + .syntax unified .text .align 2 .global FlashMemCmp8 @@ -154,20 +156,23 @@ FlashBlockAlignInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. + cmp r0, #512 + ldr r3, .L44 + movhi r2, #1024 + bhi .L43 cmp r0, #256 - ldr r3, .L43 movhi r2, #512 - bhi .L42 + bhi .L43 cmp r0, #128 strls r0, [r3, #4] bxls lr mov r2, #256 -.L42: +.L43: str r2, [r3, #4] bx lr -.L44: +.L45: .align 2 -.L43: +.L44: .word .LANCHOR0 .fnend .size FlashBlockAlignInit, .-FlashBlockAlignInit @@ -179,7 +184,7 @@ FlashReadCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L46 + ldr ip, .L47 mov r2, r1, lsr #16 add ip, ip, r0, asl #3 ldr r3, [ip, #12] @@ -197,9 +202,9 @@ FlashReadCmd: mov r2, #48 str r2, [r3, #2056] b FlashSetRandomizer -.L47: +.L48: .align 2 -.L46: +.L47: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -210,7 +215,7 @@ FlashReadDpDataOutCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L53 + ldr ip, .L54 stmfd sp!, {r4, lr} .save {r4, lr} add r3, ip, r0, asl #3 @@ -223,7 +228,7 @@ FlashReadDpDataOutCmd: mov ip, r1, lsr #16 mov r3, r3, asl #8 add r3, r2, r3 - bne .L49 + bne .L50 mov r2, #6 str r2, [r3, #2056] mov r2, #0 @@ -232,8 +237,8 @@ FlashReadDpDataOutCmd: str r4, [r3, #2052] str lr, [r3, #2052] str ip, [r3, #2052] - b .L52 -.L49: + b .L53 +.L50: mov r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -245,14 +250,14 @@ FlashReadDpDataOutCmd: str ip, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] -.L52: +.L53: mov r2, #224 str r2, [r3, #2056] ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L54: +.L55: .align 2 -.L53: +.L54: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd @@ -264,7 +269,7 @@ FlashProgFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L56 + ldr ip, .L57 mov r2, r1, lsr #16 add ip, ip, r0, asl #3 ldr r3, [ip, #12] @@ -281,9 +286,9 @@ FlashProgFirstCmd: str ip, [r3, #2052] str r2, [r3, #2052] b FlashSetRandomizer -.L57: +.L58: .align 2 -.L56: +.L57: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -297,12 +302,12 @@ FlashEraseCmd: str lr, [sp, #-4]! .save {lr} cmp r2, #0 - ldr lr, .L64 + ldr lr, .L65 add r0, lr, r0, asl #3 ldrb r3, [r0, #16] @ zero_extendqisi2 ldr ip, [r0, #12] mov r3, r3, asl #8 - beq .L59 + beq .L60 add r2, ip, r3 mov r0, #96 str r0, [r2, #2056] @@ -314,7 +319,7 @@ FlashEraseCmd: str r0, [r2, #2052] ldr r2, [lr, #4] add r1, r1, r2 -.L59: +.L60: add r3, ip, r3 mov r2, #96 str r2, [r3, #2056] @@ -327,9 +332,9 @@ FlashEraseCmd: mov r2, #208 str r2, [r3, #2056] ldr pc, [sp], #4 -.L65: +.L66: .align 2 -.L64: +.L65: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -340,7 +345,7 @@ FlashProgDpSecondCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L68 + ldr ip, .L69 mov r2, r1, lsr #16 str lr, [sp, #-4]! .save {lr} @@ -360,9 +365,9 @@ FlashProgDpSecondCmd: str r2, [r3, #2052] ldr lr, [sp], #4 b FlashSetRandomizer -.L69: +.L70: .align 2 -.L68: +.L69: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -375,24 +380,24 @@ FlashProgSecondCmd: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L72 + ldr r3, .L73 add r0, r3, r0, asl #3 - ldr r3, .L72+4 + ldr r3, .L73+4 ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] ldr r3, [r3, #4] add r4, r4, r5, asl #8 - ldr r0, .L72+8 + ldr r0, .L73+8 blx r3 mov r3, #16 str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, pc} -.L73: +.L74: .align 2 -.L72: +.L73: .word .LANCHOR0 .word arm_delay_ops - .word 64424500 + .word 214748300 .fnend .size FlashProgSecondCmd, .-FlashProgSecondCmd .align 2 @@ -403,7 +408,7 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L75 + ldr r2, .L76 add r0, r2, r0, asl #3 ldrb r2, [r2, #54] @ zero_extendqisi2 ldrb r1, [r0, #16] @ zero_extendqisi2 @@ -411,9 +416,9 @@ FlashProgDpFirstCmd: add r3, r3, r1, asl #8 str r2, [r3, #2056] bx lr -.L76: +.L77: .align 2 -.L75: +.L76: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd @@ -425,23 +430,23 @@ js_hash: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L81 + ldr r3, .L82 add r1, r0, r1 -.L78: +.L79: cmp r0, r1 - beq .L80 + beq .L81 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 .L78 -.L80: + b .L79 +.L81: mov r0, r3 bx lr -.L82: +.L83: .align 2 -.L81: +.L82: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -476,7 +481,7 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L86 + ldr r3, .L87 ldr r2, [r3, #76] ldr r1, [r2] str r1, [r3, #80] @@ -495,9 +500,9 @@ ftl_flash_suspend: str r1, [r3, #104] str r2, [r3, #108] bx lr -.L87: +.L88: .align 2 -.L86: +.L87: .word .LANCHOR0 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend @@ -513,7 +518,7 @@ LogAddr2PhyAddr: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r5, r0 - ldr r0, .L94 + ldr r0, .L95 mov r8, r3 ldr ip, [r5, #4] mov r9, r1 @@ -541,16 +546,16 @@ LogAddr2PhyAddr: rsb r6, r4, r6 ubfx r4, ip, #0, #10 uxth r6, r6 - bne .L90 + bne .L91 ldrb r3, [fp, #140] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L94 + ldreq r3, .L95 addeq r4, r3, r4, asl #1 ldreqh r4, [r4, #144] -.L90: +.L91: add ip, fp, r0, asl #2 ldrb r3, [sp, #48] @ zero_extendqisi2 - ldr r1, [ip, #656] + ldr r1, [ip, #1168] cmp r3, #1 mla r1, r10, r6, r1 add r4, r1, r4 @@ -566,9 +571,9 @@ LogAddr2PhyAddr: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L95: +.L96: .align 2 -.L94: +.L95: .word .LANCHOR0 .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -580,14 +585,14 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L97 - ldr r2, [r3, #688] - str r0, [r3, #688] + ldr r3, .L98 + ldr r2, [r3, #1200] + str r0, [r3, #1200] mov r0, r2 bx lr -.L98: +.L99: .align 2 -.L97: +.L98: .word .LANCHOR0 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -599,13 +604,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L100 - ldr r3, [r3, #692] + ldr r3, .L101 + ldr r3, [r3, #1204] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L101: +.L102: .align 2 -.L100: +.L101: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -628,16 +633,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L104 + ldr r3, .L105 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 -.L105: +.L106: .align 2 -.L104: +.L105: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -649,16 +654,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L107 + ldr r3, .L108 ldr r2, [r3, #76] mov r3, r0, asl #8 orr r0, r3, r0, asl #16 orr r3, r0, #1 str r3, [r2, #304] bx lr -.L108: +.L109: .align 2 -.L107: +.L108: .word .LANCHOR0 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara @@ -670,14 +675,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L110 + ldr r3, .L111 orr r0, r0, #16640 ldr r3, [r3, #76] str r0, [r3, #344] bx lr -.L111: +.L112: .align 2 -.L110: +.L111: .word .LANCHOR0 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv @@ -689,7 +694,7 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L115 + ldr r3, .L116 cmp r0, #0 ldr r2, [r3, #76] ldr r3, [r2] @@ -697,9 +702,9 @@ NandcSetDdrMode: orrne r3, r3, #253952 str r3, [r2] bx lr -.L116: +.L117: .align 2 -.L115: +.L116: .word .LANCHOR0 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode @@ -711,18 +716,18 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L124 + ldr r3, .L125 ands r1, r0, #6 ldr r2, [r3, #76] ldr r3, [r2] bfieq r3, r1, #13, #1 - beq .L120 + beq .L121 orr r3, r3, #24576 movw r1, #8322 bfc r3, #15, #1 str r1, [r2, #344] orr r3, r3, #196608 - ldr r1, .L124+4 + ldr r1, .L125+4 tst r0, #4 orrne r3, r3, #32768 str r1, [r2, #304] @@ -730,13 +735,13 @@ NandcSetMode: str r1, [r2, #308] mov r1, #39 str r1, [r2, #308] -.L120: +.L121: str r3, [r2] mov r0, #0 bx lr -.L125: +.L126: .align 2 -.L124: +.L125: .word .LANCHOR0 .word 1052675 .fnend @@ -749,7 +754,7 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L127 + ldr r2, .L128 add r0, r2, r0, asl #3 mov r2, #1 ldr r1, [r0, #12] @@ -759,9 +764,9 @@ NandcFlashCs: bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L128: +.L129: .align 2 -.L127: +.L128: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -773,7 +778,7 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L130 + ldr r3, .L131 add r0, r3, r0, asl #3 ldr r2, [r0, #12] ldr r3, [r2] @@ -781,9 +786,9 @@ NandcFlashDeCs: bfc r3, #17, #1 str r3, [r2] bx lr -.L131: +.L132: .align 2 -.L130: +.L131: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs @@ -797,18 +802,18 @@ NandcDelayns: stmfd sp!, {r3, lr} .save {r3, lr} add r0, r0, #996 - ldr r3, .L134 + ldr r3, .L135 add r0, r0, #3 umull r0, r1, r0, r3 - ldr r3, .L134+4 + ldr r3, .L135+4 ldr r3, [r3, #8] mov r0, r1, lsr #6 blx r3 mov r0, #0 ldmfd sp!, {r3, pc} -.L135: +.L136: .align 2 -.L134: +.L135: .word 274877907 .word arm_delay_ops .fnend @@ -823,7 +828,7 @@ FlashReadStatus: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, #112 - ldr r3, .L138 + ldr r3, .L139 add r0, r3, r0, asl #3 ldrb r4, [r0, #16] @ zero_extendqisi2 ldr r5, [r0, #12] @@ -834,9 +839,9 @@ FlashReadStatus: bl NandcDelayns ldr r0, [r5, r4, asl #8] ldmfd sp!, {r3, r4, r5, pc} -.L139: +.L140: .align 2 -.L138: +.L139: .word .LANCHOR0 .fnend .size FlashReadStatus, .-FlashReadStatus @@ -850,46 +855,46 @@ 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, .L150 + ldr r9, .L151 mov r5, r0 - ldr r7, .L150+4 + ldr r7, .L151+4 mov r6, r1 add r10, r9, #256 mov r4, #0 -.L141: - ldrb r3, [r7, #697] @ zero_extendqisi2 +.L142: + ldrb r3, [r7, #1209] @ zero_extendqisi2 cmp r4, r3 - bcs .L149 + bcs .L150 mov r3, #85 str r3, [r5, #8] ldrsb r3, [r4, r10] mov r0, #200 str r3, [r5, #4] bl NandcDelayns - ldrb r3, [r7, #696] @ zero_extendqisi2 + ldrb r3, [r7, #1208] @ zero_extendqisi2 cmp r3, #34 addeq r3, r4, r8 addeq r3, r10, r3 - beq .L148 + beq .L149 cmp r3, #35 addne r3, r9, r6 addne r3, r3, #400 ldrnesb r3, [r3] - bne .L147 - ldr r3, .L150+8 + bne .L148 + ldr r3, .L151+8 add r2, r4, r8 add r3, r3, r2 -.L148: +.L149: ldrsb r3, [r3, #5] -.L147: +.L148: str r3, [r5] add r4, r4, #1 - b .L141 -.L149: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L151: - .align 2 + b .L142 .L150: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L152: + .align 2 +.L151: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR1+304 @@ -902,21 +907,21 @@ SamsungSetRRPara: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L157 + ldr r3, .L158 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, .L157+4 + ldr r8, .L158+4 mov r4, #0 add r5, r1, #3 mov r6, r0 mov r7, r3 mov r9, #161 mov r10, r4 -.L153: - ldrb r3, [r8, #697] @ zero_extendqisi2 +.L154: + ldrb r3, [r8, #1209] @ zero_extendqisi2 cmp r4, r3 - bcs .L156 + bcs .L157 str r9, [r6, #8] mov r0, #300 str r10, [r6] @@ -926,12 +931,12 @@ SamsungSetRRPara: ldrsb r3, [r5, #1]! str r3, [r6] bl NandcDelayns - b .L153 -.L156: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L158: - .align 2 + b .L154 .L157: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L159: + .align 2 +.L158: .word .LANCHOR1+408 .word .LANCHOR0 .fnend @@ -947,36 +952,36 @@ HynixSetRRPara: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r6, r3 - ldr r5, .L168 + ldr r5, .L169 mov r9, r2 - ldr r4, .L168+4 + ldr r4, .L169+4 mov r7, r0 mov r8, r1 - ldr r3, [r5, #692] + ldr r3, [r5, #1204] 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 .L161 + beq .L162 cmp r2, #7 - bne .L162 + bne .L163 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 .L161 -.L162: + b .L162 +.L163: cmp r2, #8 addne r2, r6, r3 addeq r2, r6, r6, asl #2 - ldreq r4, .L168+8 + ldreq r4, .L169+8 addne r4, r4, r2, asl #3 addeq r4, r4, r2 addne r4, r4, #20 -.L161: +.L162: add r3, r5, r3 mov r0, r7 sub r8, r8, #1 @@ -990,9 +995,9 @@ HynixSetRRPara: mov r2, #54 add fp, r10, r3 str r2, [fp, #2056] -.L164: +.L165: cmp ip, r9 - beq .L167 + beq .L168 ldrb r2, [ip, #1]! @ zero_extendqisi2 mov r0, #200 str r3, [sp, #4] @@ -1003,24 +1008,24 @@ HynixSetRRPara: str r2, [fp, #2048] ldr r3, [sp, #4] ldr ip, [sp] - b .L164 -.L167: + b .L165 +.L168: add r10, r10, r3 mov r0, r7 mov r3, #22 add r5, r5, r7 str r3, [r10, #2056] bl NandcFlashDeCs - strb r6, [r5, #1552] + strb r6, [r5, #2064] add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L169: +.L170: .align 2 -.L168: +.L169: .word .LANCHOR0 - .word .LANCHOR0+698 - .word .LANCHOR0+726 + .word .LANCHOR0+1210 + .word .LANCHOR0+1238 .fnend .size HynixSetRRPara, .-HynixSetRRPara .align 2 @@ -1030,8 +1035,8 @@ FlashSetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L178 - ldr r2, [r3, #692] + ldr r3, .L179 + ldr r2, [r3, #1204] ldrb r2, [r2, #19] @ zero_extendqisi2 sub r2, r2, #1 cmp r2, #7 @@ -1039,28 +1044,28 @@ FlashSetReadRetryDefault: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, #0 - ldr r6, .L178+4 + ldr r6, .L179+4 mov r5, r3 -.L171: +.L172: ldrb r3, [r6, r4, asl #3] @ zero_extendqisi2 uxtb r0, r4 cmp r3, #173 - bne .L172 - ldrb r1, [r5, #699] @ zero_extendqisi2 + bne .L173 + ldrb r1, [r5, #1211] @ zero_extendqisi2 mov r3, #0 - ldr r2, .L178+8 + ldr r2, .L179+8 bl HynixSetRRPara -.L172: +.L173: add r4, r4, #1 cmp r4, #4 - bne .L171 + bne .L172 ldmfd sp!, {r4, r5, r6, pc} -.L179: +.L180: .align 2 -.L178: +.L179: .word .LANCHOR0 - .word .LANCHOR0+1556 - .word .LANCHOR0+702 + .word .LANCHOR0+2068 + .word .LANCHOR0+1214 .fnend .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .align 2 @@ -1070,11 +1075,11 @@ FlashReadStatusEN: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L191 + ldr ip, .L192 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} add r0, ip, r0, asl #3 - ldr r3, [ip, #692] + ldr r3, [ip, #1204] ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] ldrb r3, [r3, #8] @ zero_extendqisi2 @@ -1084,7 +1089,7 @@ FlashReadStatusEN: add r5, r5, #8 movne r2, #112 strne r2, [r3, #2056] - bne .L185 + bne .L186 cmp r2, #0 add r3, r4, r3 ldrneb r2, [ip, #58] @ zero_extendqisi2 @@ -1094,25 +1099,25 @@ FlashReadStatusEN: cmp r0, #0 addne ip, r4, r5, asl #8 movne r2, #0 - beq .L185 -.L184: + beq .L186 +.L185: cmp r2, r0 - bcs .L185 + bcs .L186 mov r3, r2, asl #3 add r2, r2, #1 mov r3, r1, lsr r3 uxtb r3, r3 str r3, [ip, #4] - b .L184 -.L185: + b .L185 +.L186: mov r0, #80 bl NandcDelayns ldr r0, [r4, r5, asl #8] uxtb r0, r0 ldmfd sp!, {r3, r4, r5, pc} -.L192: +.L193: .align 2 -.L191: +.L192: .word .LANCHOR0 .fnend .size FlashReadStatusEN, .-FlashReadStatusEN @@ -1128,15 +1133,15 @@ FlashWaitReadyEN: mov r4, r0 mov r5, r1 mov r6, r2 -.L197: +.L198: mov r0, r4 mov r1, r5 mov r2, r6 bl FlashReadStatusEN cmp r0, #255 - beq .L197 + beq .L198 tst r0, #64 - beq .L197 + beq .L198 ldmfd sp!, {r4, r5, r6, pc} .fnend .size FlashWaitReadyEN, .-FlashWaitReadyEN @@ -1149,40 +1154,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, .L209 + ldr r5, .L210 add r4, r5, r0, asl #4 - ldr r3, [r4, #1596] - ldrb r7, [r4, #1588] @ zero_extendqisi2 + ldr r3, [r4, #2108] + ldrb r7, [r4, #2100] @ zero_extendqisi2 cmp r3, #0 - beq .L203 + beq .L204 mov r6, r0 mov r0, r7 add r5, r5, r6, asl #2 bl NandcFlashCs - ldr r1, [r4, #1592] + ldr r1, [r4, #2104] mov r0, r7 - ldr r2, [r5, #656] + ldr r2, [r5, #1168] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN mov r5, r0 mov r0, r7 bl NandcFlashDeCs - ldr r2, [r4, #1596] + ldr r2, [r4, #2108] sbfx r3, r5, #0, #1 str r3, [r2] mov r2, #0 - ldr r1, [r4, #1600] - str r2, [r4, #1596] + ldr r1, [r4, #2112] + str r2, [r4, #2108] cmp r1, r2 strne r3, [r1] - strne r2, [r4, #1600] -.L203: + strne r2, [r4, #2112] +.L204: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L210: +.L211: .align 2 -.L209: +.L210: .word .LANCHOR0 .fnend .size FlashWaitCmdDone, .-FlashWaitCmdDone @@ -1192,7 +1197,7 @@ flash_read_ecc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L213 + ldr r2, .L214 stmfd sp!, {r4, lr} .save {r4, lr} add r0, r2, r0, asl #3 @@ -1218,9 +1223,9 @@ flash_read_ecc: cmp r0, r3 movcc r0, r3 ldmfd sp!, {r4, pc} -.L214: +.L215: .align 2 -.L213: +.L214: .word .LANCHOR0 .fnend .size flash_read_ecc, .-flash_read_ecc @@ -1231,34 +1236,34 @@ NandcWaitFlashReadyNoDelay: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L221 + ldr r3, .L222 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, asl #3 - ldr r4, .L221+4 + ldr r4, .L222+4 ldr r5, [r0, #12] -.L217: +.L218: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L218 + bne .L219 mov r0, #10 bl NandcDelayns subs r4, r4, #1 - bne .L217 + bne .L218 mvn r0, #0 - b .L216 -.L218: + b .L217 +.L219: mov r0, #0 -.L216: +.L217: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L222: +.L223: .align 2 -.L221: +.L222: .word .LANCHOR0 .word 100000 .fnend @@ -1270,36 +1275,36 @@ NandcWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L229 + ldr r3, .L230 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, asl #3 - ldr r4, .L229+4 + ldr r4, .L230+4 ldr r5, [r0, #12] mov r0, #150 bl NandcDelayns -.L225: +.L226: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L226 + bne .L227 mov r0, #10 bl NandcDelayns subs r4, r4, #1 - bne .L225 + bne .L226 mvn r0, #0 - b .L224 -.L226: + b .L225 +.L227: mov r0, #0 -.L224: +.L225: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L230: +.L231: .align 2 -.L229: +.L230: .word .LANCHOR0 .word 100000 .fnend @@ -1311,7 +1316,7 @@ FlashReset: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L233 + ldr r3, .L234 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} add r3, r3, r0, asl #3 @@ -1327,9 +1332,9 @@ FlashReset: mov r0, r4 ldmfd sp!, {r4, r5, r6, lr} b NandcFlashDeCs -.L234: +.L235: .align 2 -.L233: +.L234: .word .LANCHOR0 .fnend .size FlashReset, .-FlashReset @@ -1342,7 +1347,7 @@ flash_enter_slc_mode: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r4, .L238 + ldr r4, .L239 ldrb r3, [r4, #140] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r3, r4, r5, pc} @@ -1373,9 +1378,9 @@ flash_enter_slc_mode: str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L239: +.L240: .align 2 -.L238: +.L239: .word .LANCHOR0 .fnend .size flash_enter_slc_mode, .-flash_enter_slc_mode @@ -1388,7 +1393,7 @@ flash_exit_slc_mode: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r4, .L243 + ldr r4, .L244 ldrb r3, [r4, #140] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r3, r4, r5, pc} @@ -1420,9 +1425,9 @@ flash_exit_slc_mode: str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L244: +.L245: .align 2 -.L243: +.L244: .word .LANCHOR0 .fnend .size flash_exit_slc_mode, .-flash_exit_slc_mode @@ -1464,14 +1469,14 @@ FlashSetInterfaceMode: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L270 + ldr r1, .L271 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, #1716] @ zero_extendqisi2 + ldrb fp, [r1, #2228] @ zero_extendqisi2 mov lr, #0 - ldr r7, .L270+4 + ldr r7, .L271+4 mov r4, #239 and r2, fp, #4 and r3, fp, #1 @@ -1486,73 +1491,73 @@ FlashSetInterfaceMode: str r3, [sp, #4] add r3, r1, #12 str r3, [sp, #12] -.L257: +.L258: 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 .L248 + beq .L249 cmp ip, #44 cmpne ip, #173 - bne .L249 -.L248: - cmp r0, #1 bne .L250 +.L249: + cmp r0, #1 + bne .L251 ldr fp, [sp, #8] cmp fp, #0 - beq .L249 + beq .L250 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r0, [fp, #2052] - beq .L269 + beq .L270 cmp ip, #44 streq r0, [fp, #2052] strne r5, [fp, #2052] streq r10, [fp, #2048] strne r0, [fp, #2048] - b .L255 -.L250: + b .L256 +.L251: ldr fp, [sp, #4] cmp fp, #0 - beq .L249 + beq .L250 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 .L255 + beq .L256 cmp ip, #44 streq r6, [fp, #2052] streq r8, [fp, #2048] - beq .L255 + beq .L256 str r5, [fp, #2052] -.L269: +.L270: str r2, [fp, #2048] -.L255: +.L256: add r3, r1, r3 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L249: +.L250: add lr, lr, #8 cmp lr, #32 - bne .L257 + bne .L258 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} -.L271: +.L272: .align 2 -.L270: +.L271: .word .LANCHOR0 - .word .LANCHOR0+1556 + .word .LANCHOR0+2068 .fnend .size FlashSetInterfaceMode, .-FlashSetInterfaceMode .align 2 @@ -1562,11 +1567,11 @@ FlashReadSpare: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L274 + ldr ip, .L275 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} add ip, ip, r0, asl #3 - ldr r3, .L274+4 + ldr r3, .L275+4 mov r5, r2 ldrb r2, [ip, #16] @ zero_extendqisi2 ldr r4, [ip, #12] @@ -1590,9 +1595,9 @@ FlashReadSpare: ldr r3, [r4, #2048] strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L275: +.L276: .align 2 -.L274: +.L275: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -1604,7 +1609,7 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L278 + ldr r2, .L279 stmfd sp!, {r4, lr} .save {r4, lr} add r2, r2, r0, asl #3 @@ -1634,9 +1639,9 @@ SandiskProgTestBadBlock: ldr r0, [r4, #2048] and r0, r0, #1 ldmfd sp!, {r4, pc} -.L279: +.L280: .align 2 -.L278: +.L279: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -1657,16 +1662,16 @@ SandiskSetRRPara: mov r0, #200 mov r4, r1 bl NandcDelayns - ldr r0, .L288 - ldr r1, .L288+4 + ldr r0, .L289 + ldr r1, .L289+4 add r4, r4, r4, asl #2 sub ip, r0, #48 mov r2, #0 -.L281: - ldrb r3, [r1, #697] @ zero_extendqisi2 +.L282: + ldrb r3, [r1, #1209] @ zero_extendqisi2 cmp r2, r3 - bcs .L287 - ldrb r3, [r1, #696] @ zero_extendqisi2 + bcs .L288 + ldrb r3, [r1, #1208] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 addeq r3, ip, r3 @@ -1674,14 +1679,14 @@ SandiskSetRRPara: add r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L281 -.L287: + b .L282 +.L288: mov r0, #0 ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L289: +.L290: .align 2 -.L288: +.L289: .word .LANCHOR1+304 .word .LANCHOR0 .fnend @@ -1698,7 +1703,7 @@ micron_auto_read_calibration_config: mov r4, r0 mov r5, r1 bl NandcWaitFlashReady - ldr r3, .L292 + ldr r3, .L293 mov r0, #200 add r2, r3, r4, asl #3 ldrb r4, [r2, #16] @ zero_extendqisi2 @@ -1715,9 +1720,9 @@ micron_auto_read_calibration_config: str r3, [r4, #2048] str r3, [r4, #2048] ldmfd sp!, {r3, r4, r5, pc} -.L293: +.L294: .align 2 -.L292: +.L293: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -1726,98 +1731,88 @@ micron_auto_read_calibration_config: .type FlashEraseSLc2KBlocks, %function FlashEraseSLc2KBlocks: .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, 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} mov r5, #0 - ldr r7, .L307 - .pad #24 - sub sp, sp, #24 - ldr r9, .L307+4 + ldr r8, .L307 + .pad #20 + sub sp, sp, #20 mov r6, r0 - mov r10, r1 - mov r8, r5 - ldr r3, [r7] - str r3, [sp, #20] -.L295: - cmp r8, r10 + mov r9, r1 + mov r7, r5 +.L296: + cmp r7, r9 beq .L306 - rsb r3, r8, r10 - add r2, sp, #12 + rsb r3, r7, r9 + add r2, sp, #8 add r0, r6, r5 mov r1, #0 uxtb r3, r3 str r3, [sp] - add r3, sp, #16 + add r3, sp, #12 bl LogAddr2PhyAddr - ldrb r2, [r9, #1717] @ zero_extendqisi2 - ldr r3, [sp, #16] + ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldr r3, [sp, #12] cmp r3, r2 mvncs r3, #0 strcs r3, [r6, r5] - bcs .L297 - add r2, r9, r3 - add r3, r9, r3, asl #4 - ldrb r4, [r2, #1720] @ zero_extendqisi2 - strb r4, [r3, #1588] + bcs .L298 + add r2, r8, r3 + add r3, r8, r3, asl #4 + ldrb r4, [r2, #2232] @ zero_extendqisi2 + strb r4, [r3, #2100] mov r0, r4 bl NandcWaitFlashReady mov r0, r4 bl NandcFlashCs mov r2, #0 mov r0, r4 - ldr r1, [sp, #12] + ldr r1, [sp, #8] bl FlashEraseCmd mov r0, r4 bl NandcWaitFlashReady mov r0, r4 - ldr r1, [sp, #12] + ldr r1, [sp, #8] bl FlashReadStatus mov r2, #0 - ldr r3, [sp, #12] + ldr r3, [sp, #8] sbfx r0, r0, #0, #1 str r0, [r6, r5] mov r0, r4 - ldr r1, [r9, #4] + ldr r1, [r8, #4] add r1, r1, r3 bl FlashEraseCmd mov r0, r4 bl NandcWaitFlashReady mov r0, r4 - ldr r1, [sp, #12] + ldr r1, [sp, #8] bl FlashReadStatus tst r0, #1 mvnne r3, #0 strne r3, [r6, r5] ldr r3, [r6, r5] cmn r3, #1 - bne .L299 - ldr r0, .L307+8 - ldr r1, [sp, #12] + bne .L300 + ldr r0, .L307+4 + ldr r1, [sp, #8] bl printk -.L299: +.L300: mov r0, r4 bl NandcFlashDeCs -.L297: - add r8, r8, #1 +.L298: + add r7, r7, #1 add r5, r5, #36 - b .L295 + b .L296 .L306: - ldr r2, [sp, #20] mov r0, #0 - ldr r3, [r7] - cmp r2, r3 - beq .L301 - bl __stack_chk_fail -.L301: - add sp, sp, #24 + add sp, sp, #20 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} .L308: .align 2 .L307: - .word __stack_chk_guard .word .LANCHOR0 .word .LC1 .fnend @@ -1897,7 +1892,7 @@ ftl_flash_de_init: ldr r4, .L327 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldr r0, [r4, #1728] + ldr r0, [r4, #2240] cmp r0, #0 beq .L317 mov r0, #0 @@ -1906,11 +1901,11 @@ ftl_flash_de_init: .L317: bl flash_exit_slc_mode .L318: - ldrb r3, [r4, #1732] @ zero_extendqisi2 + ldrb r3, [r4, #2244] @ zero_extendqisi2 ldr r5, .L327 cmp r3, #0 beq .L319 - ldrb r3, [r5, #1716] @ zero_extendqisi2 + ldrb r3, [r5, #2228] @ zero_extendqisi2 tst r3, #1 beq .L319 mov r0, #1 @@ -1918,7 +1913,7 @@ ftl_flash_de_init: mov r0, #1 bl NandcSetMode mov r3, #0 - strb r3, [r5, #1732] + strb r3, [r5, #2244] .L319: ldr r3, [r4, #12] mov r0, #0 @@ -2057,15 +2052,15 @@ NandcInit: bfi r2, r1, #13, #1 ldr r1, [r0, #352] orr r2, r2, #256 - str ip, [r3, #1736] + str ip, [r3, #2248] movw ip, #2049 ubfx r1, r1, #16, #4 - str r1, [r3, #1740] + str r1, [r3, #2252] ldr r1, [r0, #352] cmp r1, ip - str r1, [r3, #1744] + str r1, [r3, #2256] moveq r3, #8 - streq r3, [r4, #1740] + streq r3, [r4, #2252] str r2, [r0] mov r0, #40 ldr r3, [r4, #76] @@ -2078,12 +2073,12 @@ NandcInit: ldr r2, .L353+4 str r2, [r3, #304] bl ftl_malloc - str r5, [r4, #1776] - str r5, [r4, #1784] - str r0, [r4, #1748] - str r0, [r4, #1752] + str r5, [r4, #2288] + str r5, [r4, #2296] + str r0, [r4, #2260] + str r0, [r4, #2264] add r0, r0, #32768 - str r0, [r4, #1756] + str r0, [r4, #2268] ldmfd sp!, {r3, r4, r5, pc} .L354: .align 2 @@ -2135,7 +2130,7 @@ NandcBchSel: ldr r3, .L367 mov r1, #1 ldr r2, [r3, #76] - str r0, [r3, #1788] + str r0, [r3, #2300] mov r3, #0 str r1, [r2, #8] mov r1, #16 @@ -2173,7 +2168,7 @@ FlashBchSel: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. ldr r3, .L370 - strb r0, [r3, #1792] + strb r0, [r3, #2304] b NandcBchSel .L371: .align 2 @@ -2224,20 +2219,20 @@ ftl_flash_resume: add r5, r5, #1 cmp r5, #4 bne .L374 - ldrb r3, [r4, #1732] @ zero_extendqisi2 + ldrb r3, [r4, #2244] @ zero_extendqisi2 ldr r5, .L381 cmp r3, #0 beq .L375 mov r0, #1 bl NandcSetMode - ldrb r0, [r5, #1716] @ zero_extendqisi2 + ldrb r0, [r5, #2228] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #1716] @ zero_extendqisi2 + ldrb r0, [r5, #2228] @ zero_extendqisi2 bl NandcSetMode ldrb r0, [r5, #97] @ zero_extendqisi2 bl NandcSetDdrPara .L375: - ldr r3, [r4, #692] + ldr r3, [r4, #1204] ldmfd sp!, {r4, r5, r6, lr} ldrb r0, [r3, #20] @ zero_extendqisi2 b FlashBchSel @@ -2245,7 +2240,7 @@ ftl_flash_resume: .align 2 .L381: .word .LANCHOR0 - .word .LANCHOR0+1556 + .word .LANCHOR0+2068 .fnend .size ftl_flash_resume, .-ftl_flash_resume .align 2 @@ -2315,81 +2310,77 @@ NandcIqrWaitFlashReady: .type FlashEraseBlocks, %function FlashEraseBlocks: .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} mov r8, r2 - ldr r4, .L425 - .pad #36 - sub sp, sp, #36 - ldr r3, .L425+4 + ldr r4, .L424 + .pad #28 + sub sp, sp, #28 ldrb r5, [r4] @ zero_extendqisi2 - ldr r2, [r3] cmp r5, #0 - str r3, [sp, #12] - str r2, [sp, #28] moveq r9, r0 moveq r10, r1 moveq fp, r4 beq .L389 - mov r1, r8 + mov r1, r2 bl FlashEraseSLc2KBlocks b .L390 .L398: mov r3, #36 mov r1, #0 mul r6, r3, r5 - add r2, sp, #20 + add r2, sp, #16 add r3, r9, r6 - str r3, [sp, #8] + str r3, [sp, #12] rsb r3, r5, r8 - ldr r0, [sp, #8] + ldr r0, [sp, #12] uxtb r3, r3 str r3, [sp] - add r3, sp, #24 + add r3, sp, #20 bl LogAddr2PhyAddr - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 mov r7, r0 - ldr r0, [sp, #24] + ldr r0, [sp, #20] cmp r0, r3 mvncs r3, #0 strcs r3, [r9, r6] - bcc .L422 + bcc .L421 .L392: add r5, r5, #1 .L389: cmp r5, r8 bcc .L398 - b .L423 -.L422: - ldrb r3, [fp, #1793] @ zero_extendqisi2 + b .L422 +.L421: + ldrb r3, [fp, #2305] @ zero_extendqisi2 cmp r3, #0 add r3, r4, r0, asl #4 - ldr r3, [r3, #1596] + ldr r3, [r3, #2108] moveq r7, #0 cmp r3, #0 beq .L394 uxtb r0, r0 bl FlashWaitCmdDone .L394: - ldr r2, [sp, #24] + ldr r2, [sp, #20] cmp r7, #0 - ldr r0, [sp, #8] + 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, #1720] @ zero_extendqisi2 - str r0, [r1, #1596] + ldrb r6, [r2, #2232] @ zero_extendqisi2 + str r0, [r1, #2108] mov r0, #0 - str r0, [r1, #1600] - ldr r0, [sp, #20] - strne ip, [r1, #1600] - strb r6, [r3, #1588] - str r0, [r1, #1592] + 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 @@ -2403,33 +2394,33 @@ FlashEraseBlocks: .L396: bl flash_exit_slc_mode .L397: - ldr r3, [sp, #24] + ldr r3, [sp, #20] mov r0, r6 - ldr r1, [sp, #20] + ldr r1, [sp, #16] add r5, r5, r7 add r3, r4, r3, asl #2 - ldr r2, [r3, #656] + ldr r2, [r3, #1168] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN mov r0, r6 mov r2, r7 - ldr r1, [sp, #20] + ldr r1, [sp, #16] bl FlashEraseCmd mov r0, r6 bl NandcFlashDeCs b .L392 -.L423: +.L422: ldr r0, [r4, #76] mov r5, #0 bl NandcIqrWaitFlashReady - ldr r6, .L425 - ldr r7, .L425+8 + ldr r6, .L424 + ldr r7, .L424+4 .L399: - ldrb r2, [r4, #1717] @ zero_extendqisi2 - ldr r3, .L425 + ldrb r2, [r4, #2229] @ zero_extendqisi2 + ldr r3, .L424 cmp r5, r2 - bcs .L424 + bcs .L423 uxtb r0, r5 bl FlashWaitCmdDone cmp r10, #1 @@ -2442,15 +2433,15 @@ FlashEraseBlocks: .L400: add r5, r5, #1 b .L399 -.L424: - ldr r2, [r3, #1796] +.L423: + ldr r2, [r3, #2308] cmp r2, #0 bne .L402 .L404: mov r0, #0 b .L390 .L402: - ldrb r3, [r3, #1556] @ zero_extendqisi2 + ldrb r3, [r3, #2068] @ zero_extendqisi2 cmp r3, #69 bne .L404 mov r3, #0 @@ -2464,22 +2455,14 @@ FlashEraseBlocks: str r1, [r9, r0] b .L403 .L390: - ldr r3, [sp, #12] - ldr r2, [sp, #28] - ldr r3, [r3] - cmp r2, r3 - beq .L406 - bl __stack_chk_fail -.L406: - add sp, sp, #36 + add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L426: - .align 2 .L425: + .align 2 +.L424: .word .LANCHOR0 - .word __stack_chk_guard - .word .LANCHOR0+1588 + .word .LANCHOR0+2100 .fnend .size FlashEraseBlocks, .-FlashEraseBlocks .align 2 @@ -2510,7 +2493,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L430 + ldr r3, .L429 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -2523,9 +2506,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L431: - .align 2 .L430: + .align 2 +.L429: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -2539,12 +2522,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L433: +.L432: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #1048576 - beq .L433 + beq .L432 add sp, sp, #8 @ sp needed bx lr @@ -2560,7 +2543,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, .L455 + ldr r5, .L454 mov r4, #0 .pad #28 sub sp, sp, #28 @@ -2581,9 +2564,9 @@ NandcXferStart: mov r3, r3, lsr r0 orr r4, r4, #1024 bfi r4, r3, #4, #1 - ldr r3, [r5, #1740] + ldr r3, [r5, #2252] cmp r3, #3 - bls .L438 + bls .L437 ldr r3, [r6, #16] str r3, [sp, #20] ldr r3, [sp, #20] @@ -2594,29 +2577,19 @@ NandcXferStart: cmp ip, #0 cmpeq r8, #0 str r3, [sp, #8] - beq .L439 + beq .L438 cmp r1, #0 - bne .L440 -.L448: - mov r0, r6 - mov r10, r2 - mov r9, r1 - bl rk_nandc_xfer_irq_flag_init - ldr r3, [r6, #368] - add r10, r10, #1 + bne .L439 +.L447: + add r2, r2, #1 cmp r8, #0 - orr r3, r3, #1 - str r3, [r6, #368] - ldr r3, [r6, #364] - mov r10, r10, asr #1 - bfi r4, r10, #22, #6 + mov r2, r2, asr #1 movne r0, r8 - orr r3, r3, #1 - str r3, [r6, #364] - ldreq r0, [r5, #1752] - b .L442 -.L440: - ldr r3, [r5, #1788] + bfi r4, r2, #22, #6 + ldreq r0, [r5, #2264] + b .L441 +.L439: + ldr r3, [r5, #2300] mov r9, r5 cmp r3, #25 movcc r3, #64 @@ -2626,10 +2599,10 @@ NandcXferStart: str r3, [sp, #12] mov r3, #0 mov r0, r3 -.L444: +.L443: ldr lr, [sp, #12] cmp r0, lr - bcs .L448 + bcs .L447 ldr lr, [sp, #8] mov r10, r3, lsr #2 add r0, r0, #1 @@ -2637,36 +2610,37 @@ NandcXferStart: ldrneh fp, [ip, #2] mvneq fp, #0 ldrneh lr, [ip], #4 - ldreq lr, [r9, #1756] + ldreq lr, [r9, #2268] orrne lr, lr, fp, asl #16 - ldrne fp, [r9, #1756] + ldrne fp, [r9, #2268] streq fp, [lr, r10, asl #2] strne lr, [fp, r10, asl #2] ldr lr, [sp, #4] add r3, r3, lr - b .L444 -.L442: - ldr r3, [r5, #1756] + b .L443 +.L441: + ldr r3, [r5, #2268] ubfx r10, r4, #22, #5 + mov r9, r1 + str r0, [r5, #2272] mov r2, r9 - str r0, [r5, #1760] mov r1, r10, asl #10 - str r3, [r5, #1764] + str r3, [r5, #2276] bl rknand_dma_map_single mov r2, r9 mov r1, r10, asl #7 clz r9, r9 mov r9, r9, lsr #5 - str r0, [r5, #1768] - ldr r0, [r5, #1764] + str r0, [r5, #2280] + ldr r0, [r5, #2276] bl rknand_dma_map_single mov r3, #1 - str r3, [r5, #1776] + str r3, [r5, #2288] tst r8, #3 - ldr r3, [r5, #1768] - str r0, [r5, #1772] + ldr r3, [r5, #2280] + str r0, [r5, #2284] str r3, [r6, #20] - ldr r3, [r5, #1772] + ldr r3, [r5, #2284] str r3, [r6, #24] mov r3, #0 str r3, [sp, #20] @@ -2691,10 +2665,10 @@ NandcXferStart: ldr r3, [sp, #20] orr r3, r3, #1 str r3, [sp, #20] -.L439: +.L438: ldr r3, [sp, #20] str r3, [r6, #16] -.L438: +.L437: str r7, [r6, #12] str r4, [r6, #8] orr r4, r4, #4 @@ -2702,9 +2676,9 @@ NandcXferStart: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L456: - .align 2 .L455: + .align 2 +.L454: .word .LANCHOR0 .fnend .size NandcXferStart, .-NandcXferStart @@ -2718,13 +2692,13 @@ Ftl_log2: @ link register save eliminated. mov r1, #0 mov r2, #1 -.L458: +.L457: cmp r2, r0 uxth r3, r1 add r1, r1, #1 movls r2, r2, asl #1 - bls .L458 -.L460: + bls .L457 +.L459: sub r0, r3, #1 uxth r0, r0 bx lr @@ -2749,27 +2723,27 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L464 - movw r2, #1804 + ldr r3, .L463 + movw r2, #2316 cmp r0, #23 - movw r1, #1814 + movw r1, #2326 ldrh r2, [r3, r2] movls r0, #24 ldrh r1, [r3, r1] - str r0, [r3, #1800] + str r0, [r3, #2312] mul r2, r2, r0 rsb r0, r0, r1 - movw r1, #1812 + movw r1, #2324 strh r0, [r3, r1] @ movhi mov r0, #0 - ldr r1, [r3, #1820] - str r2, [r3, #1808] + ldr r1, [r3, #2332] + str r2, [r3, #2320] rsb r2, r2, r1 - str r2, [r3, #1816] + str r2, [r3, #2328] bx lr -.L465: - .align 2 .L464: + .align 2 +.L463: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -2782,35 +2756,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, #1828 - ldr r4, .L494 + movw r1, #2340 + ldr r4, .L493 mov r5, r0 ldrh r6, [r0, #8] .pad #20 sub sp, sp, #20 - add r3, r4, #1824 + add r3, r4, #2336 ldrh r2, [r0, #10] ldrh lr, [r0, #14] strh r6, [r3] @ movhi - movw r3, #1826 + movw r3, #2338 strh r2, [r4, r3] @ movhi ldrh r3, [r0, #12] - ldr r0, .L494+4 + ldr r0, .L493+4 strh r3, [r4, r1] @ movhi - movw r1, #1814 + movw r1, #2326 strh lr, [r4, r1] @ movhi mov r1, #0 -.L467: +.L466: strb r1, [r1, r0] add r1, r1, #1 cmp r1, #32 - bne .L467 + bne .L466 ldrh r0, [r5, #14] ldrh r1, [r5, #20] cmp r1, r0, lsr #8 - bcs .L468 + bcs .L467 uxtb r10, r3 - ldr r9, .L494+4 + ldr r9, .L493+4 mov r1, r10, asl #1 uxtb r1, r1 str r1, [sp, #4] @@ -2818,9 +2792,9 @@ FtlConstantsInit: mul r1, r3, r1 str r1, [sp] mov r1, #0 -.L469: +.L468: cmp r1, r3 - bcs .L471 + bcs .L470 ldr ip, [sp] uxtb r0, r1 rsb r7, r3, r1 @@ -2831,10 +2805,10 @@ FtlConstantsInit: mov ip, #0 str r7, [sp, #12] mov r8, ip -.L472: +.L471: cmp r8, r2 add ip, ip, r3 - bcs .L493 + bcs .L492 ldr r7, [sp, #12] add fp, r0, r10 add r8, r8, #1 @@ -2844,184 +2818,184 @@ FtlConstantsInit: ldr r7, [sp, #4] add r0, r0, r7 uxtb r0, r0 - b .L472 -.L493: + b .L471 +.L492: add r1, r1, #1 - b .L469 -.L471: - movw r1, #1826 + b .L468 +.L470: + movw r1, #2338 mov r2, r2, asl #1 strh r2, [r4, r1] @ movhi - movw r2, #1814 + movw r2, #2326 mov lr, lr, lsr #1 strh lr, [r4, r2] @ movhi -.L468: +.L467: cmp r6, #1 - movw r2, #1864 + movw r2, #2376 mov r1, #5 strh r1, [r4, r2] @ movhi - movw r1, #1866 + movw r1, #2378 mov r0, #0 strh r0, [r4, r1] @ movhi - ldreq r1, .L494 + ldreq r1, .L493 ldrb r9, [r4] @ zero_extendqisi2 ldrh r10, [r5, #16] streqh r6, [r1, r2] @ movhi cmp r9, #0 - movw r2, #1868 + movw r2, #2380 mov r1, #4352 strh r1, [r4, r2] @ movhi movne r0, #384 - ldrne r1, .L494 + ldrne r1, .L493 strneh r0, [r1, r2] @ movhi - movw r1, #1826 + movw r1, #2338 ldrh r8, [r4, r1] - movw r1, #1804 - ldr r2, .L494 + movw r1, #2316 + ldr r2, .L493 smulbb r8, r8, r3 - add r7, r2, #1872 + add r7, r2, #2384 str r2, [sp, #8] strh r10, [r7] @ movhi uxth r8, r8 strh r8, [r4, r1] @ movhi - movw r1, #1814 + movw r1, #2326 ldrh r6, [r4, r1] - movw r1, #1870 + movw r1, #2382 smulbb r0, r8, r10 smulbb r3, r6, r3 strh r3, [r4, r1] @ movhi - movw r3, #1874 + movw r3, #2386 ldrh r1, [r5, #18] strh r1, [r4, r3] @ movhi - movw r3, #1876 + movw r3, #2388 strh r0, [r4, r3] @ movhi - movw r0, #1878 + movw r0, #2390 ldrh r3, [r5, #20] str r1, [sp, #4] strh r3, [r4, r0] @ movhi mov r0, r3 str r3, [sp] bl Ftl_log2 - movw ip, #1882 + movw ip, #2394 cmp r6, #1024 ldr r3, [sp] mov fp, r0 - movw r0, #1880 + movw r0, #2392 ldmib sp, {r1, r2} strh fp, [r4, r0] @ movhi mov r0, r3, asl #9 mul r1, r1, r3 uxth r0, r0 strh r0, [r4, ip] @ movhi - movw ip, #1884 + movw ip, #2396 mov r0, r0, lsr #8 strh r0, [r4, ip] @ movhi ldrh ip, [r5, #26] - movw r0, #1886 - ldr r5, .L494 + movw r0, #2398 + ldr r5, .L493 strh ip, [r4, r0] @ movhi - movwhi ip, #1866 + movwhi ip, #2378 mul r0, r6, r8 - str r0, [r4, #1820] + str r0, [r4, #2332] uxtbhi r0, r6 strhih r0, [r2, ip] @ movhi - movw r2, #1866 + movw r2, #2378 ldrh r2, [r4, r2] rsb r2, r2, r6 mov r6, r6, asl #6 mul r2, r2, r8 mul r2, r3, r2 mul r10, r10, r2 - movw r2, #1868 + movw r2, #2380 ldrh r0, [r4, r2] mov r0, r0, asl #3 mov r10, r10, asr #11 - str r10, [r4, #1888] + str r10, [r4, #2400] bl __aeabi_idiv - movw r3, #1892 + movw r3, #2404 mov r1, r8 - ldr r10, .L494 + ldr r10, .L493 uxth r0, r0 cmp r0, #4 strhih r0, [r5, r3] @ movhi movls r2, #4 strlsh r2, [r5, r3] @ movhi cmp r9, #0 - movwne r3, #1868 + movwne r3, #2380 movne r2, #640 strneh r2, [r4, r3] @ movhi - movw r3, #1868 + movw r3, #2380 ldrh r3, [r4, r3] - movw r2, #1894 + movw r2, #2406 mov r3, r3, asr fp add fp, fp, #9 mov r5, r6, asr fp add r3, r3, #2 strh r3, [r4, r2] @ movhi - movw r3, #1896 + movw r3, #2408 strh r5, [r4, r3] @ movhi uxth r5, r5 - ldr r6, .L494 + ldr r6, .L493 mul r3, r8, r5 add r5, r5, #8 - str r3, [r4, #1900] - movw r3, #1892 + str r3, [r4, #2412] + movw r3, #2404 ldrh r0, [r4, r3] bl __aeabi_uidiv cmp r8, #1 uxtah r0, r5, r0 - strne r0, [r10, #1800] + strne r0, [r10, #2312] addeq r5, r0, #4 - streq r5, [r10, #1800] - ldr r3, [r4, #1800] + streq r5, [r10, #2312] + ldr r3, [r4, #2312] uxth r0, r3 bl FtlSysBlkNumInit - ldr r3, [r4, #1800] - ldr r2, [r4, #1816] + ldr r3, [r4, #2312] + ldr r2, [r4, #2328] mov r0, #2048 - str r3, [r4, #1904] + str r3, [r4, #2416] ldrh r3, [r7] mov r2, r2, asl #2 mul r3, r3, r2 - movw r2, #1880 + movw r2, #2392 ldrh r5, [r4, r2] add r5, r5, #9 mov r5, r3, lsr r5 - movw r3, #1908 + movw r3, #2420 add r5, r5, #2 uxth r5, r5 strh r5, [r4, r3] @ movhi - movw r3, #1878 + movw r3, #2390 ldrh r7, [r4, r3] mov r1, r7 bl __aeabi_idiv - movw r1, #1892 + movw r1, #2404 ldrh r2, [r4, r1] - movw r3, #1910 + movw r3, #2422 ldrb ip, [r4, #140] @ zero_extendqisi2 cmp ip, #0 strh r0, [r4, r3] @ movhi mov r3, #0 - str r3, [r4, #1912] + str r3, [r4, #2424] add r3, r2, #3 strh r3, [r4, r1] @ movhi addne r2, r2, #4 - ldr r3, [r4, #1900] + ldr r3, [r4, #2412] strneh r2, [r6, r1] @ movhi add r0, r3, #3 addne r3, r3, #5 - str r0, [r4, #1900] - bne .L492 + str r0, [r4, #2412] + bne .L491 cmp r0, #7 - bhi .L482 + bhi .L481 mov r3, #8 -.L492: - str r3, [r6, #1900] -.L482: - movw r2, #1916 +.L491: + str r3, [r6, #2412] +.L481: + movw r2, #2428 mov r3, #0 strh r3, [r4, r2] @ movhi - movw r3, #1812 + movw r3, #2324 ldrh r1, [r4, r3] mov r0, #0 mov r3, r1, lsr #3 @@ -3029,17 +3003,17 @@ FtlConstantsInit: add r3, r3, #52 add r5, r3, r5, asl #2 cmp r5, r7, asl #9 - ldrcc r3, .L494 + ldrcc r3, .L493 movcc r1, #1 strcch r1, [r3, r2] @ movhi add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L495: - .align 2 .L494: + .align 2 +.L493: .word .LANCHOR0 - .word .LANCHOR0+1832 + .word .LANCHOR0+2344 .fnend .size FtlConstantsInit, .-FtlConstantsInit .align 2 @@ -3050,29 +3024,29 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L503 - movw r3, #1918 + ldr r2, .L502 + movw r3, #2430 ldrh r3, [r2, r3] cmp r3, #0 - beq .L502 - movw r1, #1892 - ldr r3, [r2, #1920] + beq .L501 + movw r1, #2404 + ldr r3, [r2, #2432] ldrh r2, [r2, r1] add r2, r3, r2, asl #1 -.L498: +.L497: cmp r3, r2 - beq .L502 + beq .L501 ldrh r1, [r3], #2 cmp r1, r0 - bne .L498 + bne .L497 mov r0, #1 bx lr -.L502: +.L501: mov r0, #0 bx lr -.L504: - .align 2 .L503: + .align 2 +.L502: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -3083,16 +3057,16 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L512 - ldr r3, [r2, #1924] + ldr r2, .L511 + ldr r3, [r2, #2436] cmp r3, #0 - beq .L508 + beq .L507 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov r5, #36 - ldr r4, [r2, #1928] + ldr r4, [r2, #2440] mov r2, #0 -.L507: +.L506: mla ip, r5, r2, r4 ldr lr, [ip, #16] cmp lr, r0 @@ -3101,21 +3075,21 @@ FtlCacheMetchLpa: cmp lr, r1 movhi ip, #0 cmp ip, #0 - bne .L509 + bne .L508 add r2, r2, #1 cmp r2, r3 - bne .L507 + bne .L506 mov r0, ip ldmfd sp!, {r4, r5, pc} -.L508: +.L507: mov r0, r3 bx lr -.L509: +.L508: mov r0, #1 ldmfd sp!, {r4, r5, pc} -.L513: - .align 2 .L512: + .align 2 +.L511: .word .LANCHOR0 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -3127,12 +3101,12 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L515 - ldr r0, [r3, #1912] + ldr r3, .L514 + ldr r0, [r3, #2424] bx lr -.L516: - .align 2 .L515: + .align 2 +.L514: .word .LANCHOR0 .fnend .size FtlGetCap, .-FtlGetCap @@ -3144,12 +3118,12 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L518 - ldr r0, [r3, #1912] + ldr r3, .L517 + ldr r0, [r3, #2424] bx lr -.L519: - .align 2 .L518: + .align 2 +.L517: .word .LANCHOR0 .fnend .size ftl_get_density, .-ftl_get_density @@ -3161,12 +3135,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L521 - ldr r0, [r3, #1932] + ldr r3, .L520 + ldr r0, [r3, #2444] bx lr -.L522: - .align 2 .L521: + .align 2 +.L520: .word .LANCHOR0 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -3180,8 +3154,8 @@ FtlBbmMapBadBlock: stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - movw r3, #1870 - ldr r5, .L525 + movw r3, #2382 + ldr r5, .L524 mov r6, r0 ldrh r4, [r5, r3] mov r1, r4 @@ -3190,15 +3164,15 @@ FtlBbmMapBadBlock: smulbb r3, r2, r4 add r1, r5, r2, asl #2 mov r4, #1 - add r5, r5, #1936 - ldr ip, [r1, #1964] + add r5, r5, #2448 + ldr ip, [r1, #2476] 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, .L525+4 + ldr r0, .L524+4 str r1, [ip, lr, asl #2] str r1, [sp] mov r1, r6 @@ -3210,9 +3184,9 @@ FtlBbmMapBadBlock: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L526: - .align 2 .L525: + .align 2 +.L524: .word .LANCHOR0 .word .LC2 .fnend @@ -3227,8 +3201,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, #1870 - ldr r5, .L529 + movw r3, #2382 + ldr r5, .L528 mov r7, r0 ldrh r6, [r5, r3] mov r1, r6 @@ -3241,14 +3215,14 @@ FtlBbmIsBadBlock: and r4, r4, #31 uxth r0, r0 add r5, r5, r0, asl #2 - ldr r3, [r5, #1964] + ldr r3, [r5, #2476] ldr r0, [r3, r2, asl #2] mov r0, r0, lsr r4 and r0, r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L530: - .align 2 .L529: + .align 2 +.L528: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -3272,30 +3246,30 @@ FtlBbtCalcTotleCnt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - movw r3, #1870 - ldr r4, .L541 + movw r3, #2382 + ldr r4, .L540 mov r5, #0 ldrh r6, [r4, r3] - movw r3, #1826 + movw r3, #2338 ldrh r3, [r4, r3] mov r4, r5 mul r6, r3, r6 -.L533: +.L532: uxth r0, r5 cmp r0, r6 - bge .L540 + bge .L539 bl FtlBbmIsBadBlock add r5, r5, #1 cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - b .L533 -.L540: + b .L532 +.L539: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L542: - .align 2 .L541: + .align 2 +.L540: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -3308,8 +3282,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, #1828 - ldr r6, .L545 + movw r3, #2340 + ldr r6, .L544 mov r4, r1 mov r7, r0 ldrh r5, [r6, r3] @@ -3319,14 +3293,14 @@ V2P_block: smlabb r4, r4, r5, r1 mov r1, r5 bl __aeabi_uidiv - movw r3, #1870 + movw r3, #2382 ldrh r3, [r6, r3] smlabb r0, r3, r0, r4 uxth r0, r0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L546: - .align 2 .L545: + .align 2 +.L544: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -3337,13 +3311,13 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L549 - movw r2, #1828 + ldr r3, .L548 + movw r2, #2340 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 ldrh r5, [r3, r2] - movw r2, #1870 + movw r2, #2382 ldrh r1, [r3, r2] bl __aeabi_uidiv mov r1, r5 @@ -3353,9 +3327,9 @@ P2V_plane: add r1, r4, r1 uxth r0, r1 ldmfd sp!, {r4, r5, r6, pc} -.L550: - .align 2 .L549: + .align 2 +.L548: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -3368,19 +3342,19 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - movw r3, #1870 - ldr r4, .L553 + movw r3, #2382 + ldr r4, .L552 ldrh r1, [r4, r3] bl __aeabi_uidivmod - movw r3, #1828 + movw r3, #2340 uxth r0, r1 ldrh r1, [r4, r3] bl __aeabi_uidiv uxth r0, r0 ldmfd sp!, {r4, pc} -.L554: - .align 2 .L553: + .align 2 +.L552: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -3393,13 +3367,13 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L556 + bls .L555 rsb r0, r1, r0 cmp r0, #-2147483648 movhi r0, #0 movls r0, #1 bx lr -.L556: +.L555: rsb r0, r0, r1 cmp r0, #-2147483648 movls r0, #0 @@ -3415,15 +3389,15 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L559 + ldr r3, .L558 ldrh r0, [r3, #6] clz r0, r0 mov r0, r0, lsr #5 bx lr -.L560: - .align 2 .L559: - .word .LANCHOR0+1996 + .align 2 +.L558: + .word .LANCHOR0+2508 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty .align 2 @@ -3434,16 +3408,16 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L562 + ldr r3, .L561 ldrh r0, [r3, #6] sub r0, r0, #1024 clz r0, r0 mov r0, r0, lsr #5 bx lr -.L563: - .align 2 .L562: - .word .LANCHOR0+1996 + .align 2 +.L561: + .word .LANCHOR0+2508 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull .align 2 @@ -3461,33 +3435,33 @@ FtlFreeSysBlkQueueIn: uxth r3, r3 cmp r3, r2 ldmhifd sp!, {r3, r4, r5, r6, r7, pc} - ldr r4, .L574 - ldr r5, .L574+4 + ldr r4, .L573 ldrh r3, [r4, #6] cmp r3, #1024 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r1, #0 - beq .L566 - ldr r3, [r5, #4052] + beq .L565 + ldr r5, .L573+4 + ldr r3, [r5, #-3620] cmp r3, #0 - bne .L566 + bne .L565 bl P2V_block_in_plane mov r1, #1 mov r3, r7, asl #10 mov r2, r1 mov r6, r0 - ldr r0, [r5, #4056] + ldr r0, [r5, #-3616] str r3, [r0, #4] bl FlashEraseBlocks - ldr r1, [r5, #4060] + ldr r1, [r5, #-3612] mov r3, r6, asl #1 ldrh r2, [r1, r3] add r2, r2, #1 strh r2, [r1, r3] @ movhi - ldr r3, [r5, #4064] + ldr r3, [r5, #-3608] add r3, r3, #1 - str r3, [r5, #4064] -.L566: + str r3, [r5, #-3608] +.L565: ldrh r3, [r4, #6] add r3, r3, #1 strh r3, [r4, #6] @ movhi @@ -3498,11 +3472,11 @@ FtlFreeSysBlkQueueIn: strh r3, [r4, #4] @ movhi strh r7, [r2, #8] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L575: - .align 2 .L574: - .word .LANCHOR0+1996 - .word .LANCHOR0 + .align 2 +.L573: + .word .LANCHOR0+2508 + .word .LANCHOR2 .fnend .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn .align 2 @@ -3512,9 +3486,9 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L589 + ldr r3, .L588 ldrh ip, [r3, #28] - ldr r3, .L589+4 + ldr r3, .L588+4 ldrh r2, [r3, #6] cmp r2, #0 bxeq lr @@ -3525,11 +3499,11 @@ FtlFreeSysBLkSort: and ip, ip, #31 ldrh r2, [r3, #4] mov r4, r0 -.L578: +.L577: uxth lr, r0 add r0, r0, #1 cmp lr, ip - bge .L588 + bge .L587 add lr, r3, r1, asl #1 add r1, r1, #1 ubfx r1, r1, #0, #10 @@ -3539,17 +3513,17 @@ FtlFreeSysBLkSort: mov r4, #1 add r2, r2, r4 ubfx r2, r2, #0, #10 - b .L578 -.L588: + b .L577 +.L587: cmp r4, #0 strneh r1, [r3, #2] @ movhi strneh r2, [r3, #4] @ movhi ldmfd sp!, {r4, pc} -.L590: - .align 2 .L589: - .word .LANCHOR0+4068 - .word .LANCHOR0+1996 + .align 2 +.L588: + .word .LANCHOR2-3604 + .word .LANCHOR0+2508 .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -3559,77 +3533,78 @@ FtlFreeSysBlkQueueOut: .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} - ldr r6, .L602 - ldr r5, .L602+4 - mov r7, r6 -.L592: - ldrh r1, [r5, #6] + 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: + ldrh r1, [r4, #6] cmp r1, #0 - beq .L593 - ldrh r3, [r5, #2] + beq .L592 + ldr r5, .L601+8 sub r1, r1, #1 - ldr r9, [r6, #4052] - strh r1, [r5, #6] @ movhi - add r2, r5, r3, asl #1 - cmp r9, #0 + ldrh r3, [r4, #2] + strh r1, [r4, #6] @ movhi + ldr r10, [r5, #-3620] + add r2, r4, r3, asl #1 add r3, r3, #1 + cmp r10, #0 ubfx r3, r3, #0, #10 - ldrh r4, [r2, #8] - strh r3, [r5, #2] @ movhi - bne .L594 - mov r0, r4 + ldrh r6, [r2, #8] + strh r3, [r4, #2] @ movhi + bne .L593 + mov r0, r6 bl P2V_block_in_plane - mov r3, r4, asl #10 - mov r8, r0 - ldr r0, [r6, #4056] + mov r3, r6, asl #10 + mov r9, r0 + ldr r0, [r5, #-3616] str r3, [r0, #4] - ldrb r3, [r6, #140] @ zero_extendqisi2 + ldrb r3, [r8, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L595 - mov r1, r9 + beq .L594 + mov r1, r10 mov r2, #1 bl FlashEraseBlocks -.L595: +.L594: mov r1, #1 - ldr r0, [r7, #4056] + ldr r0, [r5, #-3616] mov r2, r1 bl FlashEraseBlocks - ldr r1, [r7, #4060] - mov r3, r8, asl #1 + ldr r1, [r5, #-3612] + mov r3, r9, asl #1 ldrh r2, [r1, r3] add r2, r2, #1 strh r2, [r1, r3] @ movhi - ldr r3, [r7, #4064] + ldr r3, [r5, #-3608] add r3, r3, #1 - str r3, [r7, #4064] - b .L594 -.L593: - ldr r0, .L602+8 + str r3, [r5, #-3608] + b .L593 +.L592: + ldr r0, .L601+12 bl printk -.L596: - b .L596 -.L594: - sub r3, r4, #1 +.L595: + b .L595 +.L593: + sub r3, r6, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L597 - ldr r3, .L602+4 - mov r1, r4 - ldr r0, .L602+12 - ldrh r2, [r3, #6] + bls .L596 + mov r1, r6 + ldrh r2, [r7, #6] + ldr r0, .L601+16 bl printk - b .L592 -.L597: - mov r0, r4 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L603: - .align 2 + b .L591 +.L596: + mov r0, r6 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .L602: + .align 2 +.L601: + .word .LANCHOR0+2508 .word .LANCHOR0 - .word .LANCHOR0+1996 + .word .LANCHOR2 .word .LC3 .word .LC4 .fnend @@ -3641,35 +3616,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L610 + ldr r3, .L609 str lr, [sp, #-4]! .save {lr} movw lr, #65535 - ldr ip, [r3, #-4068] + ldr ip, [r3, #-3556] ldr r2, [r0] - ldr r3, .L610+4 + ldr r3, .L609+4 rsb r0, ip, r2 mov r0, r0, asr #1 mul r3, r3, r0 mov r0, #6 uxth r3, r3 -.L606: +.L605: cmp r1, r3 - beq .L607 + beq .L606 ldrh r3, [r2] cmp r3, lr - beq .L608 + beq .L607 mla r2, r0, r3, ip - b .L606 -.L607: + b .L605 +.L606: mov r0, #1 ldr pc, [sp], #4 -.L608: +.L607: mov r0, #0 ldr pc, [sp], #4 -.L611: - .align 2 .L610: + .align 2 +.L609: .word .LANCHOR2 .word -1431655765 .fnend @@ -3684,43 +3659,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, #1812 - ldr r5, .L629 + movw r3, #2324 + ldr r5, .L628 ldrh r3, [r5, r3] cmp r3, r0 - bls .L614 - ldr r2, .L629+4 + bls .L613 + ldr r2, .L628+4 mov lr, #6 mul lr, lr, r0 mvn ip, #0 - ldr r6, [r2, #-4068] - mov r7, r2 + ldr r6, [r2, #-3556] + mov r10, r2 add r1, r6, lr strh ip, [r1, #2] @ movhi strh ip, [r6, lr] @ movhi - ldr r3, [r2, #-4064] + ldr r3, [r2, #-3552] cmp r3, #0 - beq .L628 - ldr r8, [r2, #-4060] + beq .L627 + ldr r8, [r2, #-3548] mov r4, r0, asl #1 ldrh r2, [r1, #4] - ldr r7, [r7, #-4068] - ldrh r9, [r8, r4] + ldrh r7, [r8, r4] cmp r2, #0 - rsb r10, r7, r3 - mulne ip, r2, r9 - ldr r2, .L629+8 - mov r10, r10, asr #1 - movw r9, #1812 - ldrh r9, [r5, r9] - mul r10, r2, r10 - str r9, [sp] - ldr r9, [r5, #4060] + mulne ip, r2, r7 + ldr r7, [r10, #-3556] + ldr r2, .L628+8 + rsb r9, r7, r3 + mov r9, r9, asr #1 + mul r2, r2, r9 + movw r9, #2324 + ldrh r5, [r5, r9] + ldr r9, [r10, #-3612] add r4, r9, r4 str r4, [sp, #4] - uxth r2, r10 + uxth r2, r2 mov r4, #0 -.L623: + str r5, [sp] +.L622: add r4, r4, #1 ldr r5, [sp] uxth r4, r4 @@ -3730,7 +3705,7 @@ insert_data_list: cmp r0, r2 orreq r5, r5, #1 cmp r5, #0 - bne .L614 + bne .L613 mov r10, r2, asl #1 ldrh r5, [r3, #4] ldrh fp, [r8, r10] @@ -3738,56 +3713,56 @@ insert_data_list: mvneq r5, #0 mulne r5, r5, fp cmp r5, ip - bne .L619 + bne .L618 ldr r5, [sp, #4] ldrh r10, [r9, r10] ldrh r5, [r5] cmp r10, r5 - bcc .L621 - b .L620 -.L619: - bhi .L620 -.L621: + bcc .L620 + b .L619 +.L618: + bhi .L619 +.L620: ldrh r5, [r3] movw r10, #65535 cmp r5, r10 streqh r2, [r1, #2] @ movhi streqh r0, [r3] @ movhi - ldreq r3, .L629+4 - streq r1, [r3, #-4056] - beq .L614 -.L622: + ldreq r3, .L628+4 + streq r1, [r3, #-3544] + beq .L613 +.L621: mov r3, #6 mov r2, r5 mla r3, r3, r5, r7 - b .L623 -.L620: + b .L622 +.L619: strh r2, [r6, lr] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L629+4 - ldr ip, [r2, #-4064] + ldr r2, .L628+4 + ldr ip, [r2, #-3552] cmp r3, ip - bne .L624 + bne .L623 strh r0, [r3, #2] @ movhi -.L628: - str r1, [r2, #-4064] - b .L614 -.L624: +.L627: + str r1, [r2, #-3552] + b .L613 +.L623: ldrh ip, [r3, #2] - ldr r1, [r2, #-4068] + ldr r1, [r2, #-3556] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L614: +.L613: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L630: - .align 2 .L629: + .align 2 +.L628: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -3803,15 +3778,15 @@ INSERT_DATA_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L633 + ldr r2, .L632 ldrh r3, [r2, #-4] add r3, r3, #1 strh r3, [r2, #-4] @ movhi ldmfd sp!, {r3, pc} -.L634: - .align 2 .L633: - .word .LANCHOR2-4048 + .align 2 +.L632: + .word .LANCHOR2-3536 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST .align 2 @@ -3825,70 +3800,68 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r4, #65535 cmp r0, r4 - beq .L636 - ldr r2, .L644 + beq .L635 + ldr r2, .L643 mov lr, #6 - mul r5, lr, r0 + mul r6, lr, r0 mvn r3, #0 - ldr r6, [r2, #-4068] - mov r7, r2 - add ip, r6, r5 + ldr r7, [r2, #-3556] + mov r5, r2 + add ip, r7, r6 strh r3, [ip, #2] @ movhi - strh r3, [r6, r5] @ movhi - ldr r3, [r2, #-4048] + strh r3, [r7, r6] @ movhi + ldr r3, [r2, #-3536] cmp r3, #0 - beq .L643 - ldr r2, .L644+4 - ldr r8, [r7, #-4068] - ldr r9, [r2, #4060] + beq .L642 + ldr r9, [r2, #-3612] mov r2, r0, asl #1 + ldr r8, [r5, #-3556] rsb r1, r8, r3 ldrh r10, [r9, r2] + ldr r2, .L643+4 mov r1, r1, asr #1 - ldr r2, .L644+8 mul r1, r2, r1 uxth r2, r1 -.L640: +.L639: mov r1, r2, asl #1 ldrh r1, [r9, r1] cmp r1, r10 - bcs .L638 + bcs .L637 ldrh r1, [r3] cmp r1, r4 streqh r2, [ip, #2] @ movhi streqh r0, [r3] @ movhi - beq .L636 -.L639: + beq .L635 +.L638: mla r3, lr, r1, r8 mov r2, r1 - b .L640 -.L638: + b .L639 +.L637: ldrh r1, [r3, #2] strh r1, [ip, #2] @ movhi - strh r2, [r6, r5] @ movhi - ldr r1, [r7, #-4048] - ldr r2, .L644 + strh r2, [r7, r6] @ movhi + ldr r1, [r5, #-3536] + ldr r2, .L643 cmp r3, r1 - bne .L641 + bne .L640 strh r0, [r3, #2] @ movhi -.L643: - str ip, [r2, #-4048] - b .L636 -.L641: +.L642: + str ip, [r2, #-3536] + b .L635 +.L640: ldrh ip, [r3, #2] - ldr r1, [r2, #-4068] + ldr r1, [r2, #-3556] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L636: +.L635: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L645: - .align 2 .L644: + .align 2 +.L643: .word .LANCHOR2 - .word .LANCHOR0 .word -1431655765 .fnend .size insert_free_list, .-insert_free_list @@ -3902,15 +3875,15 @@ INSERT_FREE_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L648 + ldr r2, .L647 ldrh r3, [r2, #-12] add r3, r3, #1 strh r3, [r2, #-12] @ movhi ldmfd sp!, {r3, pc} -.L649: - .align 2 .L648: - .word .LANCHOR2-4032 + .align 2 +.L647: + .word .LANCHOR2-3520 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST .align 2 @@ -3923,15 +3896,15 @@ List_remove_node: stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov ip, #6 - ldr r4, .L656 + ldr r4, .L655 movw r5, #65535 mul r1, ip, r1 ldr r3, [r0] - ldr r2, [r4, #-4068] + ldr r2, [r4, #-3556] add lr, r2, r1 cmp lr, r3 ldrh r3, [r2, r1] - bne .L651 + bne .L650 cmp r3, r5 mlane r3, ip, r3, r2 moveq r3, #0 @@ -3939,33 +3912,33 @@ List_remove_node: strne r3, [r0] mvnne r0, #0 strneh r0, [r3, #2] @ movhi - b .L653 -.L651: + b .L652 +.L650: cmp r3, r5 ldrh r0, [lr, #2] - bne .L654 + bne .L653 cmp r0, r3 mulne r0, ip, r0 mvnne r3, #0 strneh r3, [r2, r0] @ movhi - b .L653 -.L654: + b .L652 +.L653: mla r3, ip, r3, r2 strh r0, [r3, #2] @ movhi ldrh r5, [lr, #2] ldrh r0, [r2, r1] - ldr r3, [r4, #-4068] + ldr r3, [r4, #-3556] mul ip, ip, r5 strh r0, [r3, ip] @ movhi -.L653: +.L652: mvn r3, #0 mov r0, #0 strh r3, [r2, r1] @ movhi strh r3, [lr, #2] @ movhi ldmfd sp!, {r4, r5, pc} -.L657: - .align 2 .L656: + .align 2 +.L655: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -3978,19 +3951,19 @@ List_pop_index_node: @ frame_needed = 0, uses_anonymous_args = 0 ldr r3, [r0] cmp r3, #0 - beq .L664 - ldr r2, .L667 + beq .L663 + ldr r2, .L666 movw ip, #65535 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 - ldr r4, [r2, #-4068] -.L660: + ldr r4, [r2, #-3556] +.L659: cmp r1, #0 - bne .L661 -.L663: + bne .L660 +.L662: rsb r4, r4, r3 - ldr r3, .L667+4 + ldr r3, .L666+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -3998,20 +3971,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 ldmfd sp!, {r4, pc} -.L661: +.L660: ldrh r2, [r3] cmp r2, ip - beq .L663 + beq .L662 sub r1, r1, #1 mla r3, lr, r2, r4 uxth r1, r1 - b .L660 -.L664: + b .L659 +.L663: movw r0, #65535 bx lr -.L668: - .align 2 .L667: + .align 2 +.L666: .word .LANCHOR2 .word -1431655765 .fnend @@ -4024,35 +3997,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, .L676 - ldr r3, [r2, #-4064] + ldr r2, .L675 + ldr r3, [r2, #-3552] cmp r3, #0 - ldrne r1, [r2, #-4068] + ldrne r1, [r2, #-3556] movne ip, #6 movwne r2, #65535 - beq .L674 -.L671: + beq .L673 +.L670: cmp r0, #0 - beq .L672 + beq .L671 ldrh r3, [r3] cmp r3, r2 subne r0, r0, #1 mlane r3, ip, r3, r1 uxthne r0, r0 - bne .L671 -.L674: + bne .L670 +.L673: movw r0, #65535 bx lr -.L672: +.L671: rsb r3, r1, r3 - ldr r0, .L676+4 + ldr r0, .L675+4 mov r3, r3, asr #1 mul r0, r0, r3 uxth r0, r0 bx lr -.L677: - .align 2 .L676: + .align 2 +.L675: .word .LANCHOR2 .word -1431655765 .fnend @@ -4064,29 +4037,29 @@ List_update_data_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L687 - sub r2, r3, #4032 + ldr r3, .L686 + sub r2, r3, #3520 ldrh r2, [r2, #-8] cmp r2, r0 - beq .L686 - sub r2, r3, #3984 + beq .L685 + sub r2, r3, #3472 ldrh r2, [r2, #-8] cmp r2, r0 - beq .L686 - sub r2, r3, #3936 + beq .L685 + sub r2, r3, #3424 ldrh r2, [r2, #-8] cmp r2, r0 - beq .L686 + beq .L685 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 mul lr, lr, r0 - ldr r1, [r3, #-4068] - ldr r2, [r3, #-4064] + ldr r1, [r3, #-3556] + ldr r2, [r3, #-3552] add ip, r1, lr cmp ip, r2 - beq .L679 - ldr r4, [r3, #-4060] + beq .L678 + ldr r4, [r3, #-3548] mov r3, r0, asl #1 ldrh r2, [r4, r3] ldrh r3, [ip, #4] @@ -4096,14 +4069,14 @@ List_update_data_list: mvneq r2, #0 movw r3, #65535 cmp ip, r3 - bne .L681 + bne .L680 ldrh r3, [r1, lr] cmp r3, ip - beq .L679 -.L681: + beq .L678 +.L680: mov r3, #6 mul ip, r3, ip - ldr r3, .L687+4 + ldr r3, .L686+4 add r1, r1, ip mov lr, ip, asr #1 mul r3, r3, lr @@ -4114,30 +4087,30 @@ List_update_data_list: mulne r3, r3, lr mvneq r3, #0 cmp r2, r3 - bcs .L679 + bcs .L678 mov r4, r0 - ldr r0, .L687+8 + ldr r0, .L686+8 mov r1, r4 bl List_remove_node - ldr r2, .L687+12 + ldr r2, .L686+12 mov r0, r4 ldrh r3, [r2, #-4] sub r3, r3, #1 strh r3, [r2, #-4] @ movhi bl INSERT_DATA_LIST -.L679: +.L678: mov r0, #0 ldmfd sp!, {r4, pc} -.L686: +.L685: mov r0, #0 bx lr -.L688: - .align 2 .L687: + .align 2 +.L686: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2-4064 - .word .LANCHOR2-4048 + .word .LANCHOR2-3552 + .word .LANCHOR2-3536 .fnend .size List_update_data_list, .-List_update_data_list .align 2 @@ -4152,16 +4125,16 @@ ftl_map_blk_alloc_new_blk: mov r3, #0 ldrh r1, [r0, #10] ldr r2, [r0, #12] -.L690: +.L689: uxth r5, r3 cmp r5, r1 - bcs .L693 + bcs .L692 mov r7, r2 add r3, r3, #1 ldrh r6, [r7] add r2, r2, #2 cmp r6, #0 - bne .L690 + bne .L689 mov r4, r0 bl FtlFreeSysBlkQueueOut movw r2, #65533 @@ -4170,14 +4143,14 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7] @ movhi uxth r3, r3 cmp r3, r2 - bls .L691 - ldr r3, .L697 - ldr r0, .L697+4 + bls .L690 + ldr r3, .L696 + ldr r0, .L696+4 ldrh r2, [r3, #6] bl printk -.L692: - b .L692 .L691: + b .L691 +.L690: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi add r3, r3, #1 @@ -4186,13 +4159,13 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi add r3, r3, #1 strh r3, [r4, #8] @ movhi -.L693: +.L692: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L698: - .align 2 .L697: - .word .LANCHOR0+1996 + .align 2 +.L696: + .word .LANCHOR0+2508 .word .LC5 .fnend .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk @@ -4203,35 +4176,35 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L715 - movw r3, #1910 + ldr r2, .L714 + movw r3, #2422 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r1, #0 ldrh r2, [r2, r3] mov ip, #12 - ldr r3, .L715+4 + ldr r3, .L714+4 movw lr, #65535 - ldr r3, [r3, #-3896] -.L700: + ldr r3, [r3, #-3384] +.L699: uxth r0, r1 cmp r0, r2 - bcs .L712 + bcs .L711 add r1, r1, #1 mla r4, ip, r1, r3 ldrh r4, [r4, #-12] cmp r4, lr - bne .L700 + bne .L699 ldmfd sp!, {r4, r5, r6, pc} -.L712: +.L711: mov r0, r2 mov r1, #0 mov ip, #-2147483648 mov r5, #12 -.L703: +.L702: uxth r4, r1 cmp r4, r2 - bcs .L713 + bcs .L712 mla lr, r5, r1, r3 add r1, r1, #1 ldr lr, [lr, #4] @@ -4242,38 +4215,38 @@ select_l2p_ram_region: cmp r6, #0 movne ip, lr movne r0, r4 - b .L703 -.L713: + b .L702 +.L712: cmp r0, r2 ldmccfd sp!, {r4, r5, r6, pc} - ldr r1, .L715+8 + ldr r1, .L714+8 mov r0, r2 mvn ip, #0 ldrh r5, [r1, #-4] mov r1, #0 -.L706: +.L705: uxth lr, r1 cmp lr, r2 - bcs .L714 + bcs .L713 ldr r4, [r3, #4] cmp r4, ip - bcs .L707 + bcs .L706 ldrh r6, [r3] cmp r6, r5 movne ip, r4 movne r0, lr -.L707: +.L706: add r1, r1, #1 add r3, r3, #12 - b .L706 -.L714: + b .L705 +.L713: ldmfd sp!, {r4, r5, r6, pc} -.L716: - .align 2 .L715: + .align 2 +.L714: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2-3888 + .word .LANCHOR2-3376 .fnend .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -4283,39 +4256,39 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L725 - sub r1, r3, #3888 + ldr r3, .L724 + sub r1, r3, #3376 ldrh r2, [r1, #-2] cmp r2, #4 cmpls r0, #0 addeq r2, r2, #1 streqh r2, [r1, #-2] @ movhi bxeq lr - ldr r0, .L725+4 + ldr r0, .L724+4 mov r2, #0 str lr, [sp, #-4]! .save {lr} movw ip, #65535 strh r2, [r1, #-2] @ movhi - movw r1, #1812 + movw r1, #2324 ldrh r0, [r0, r1] - str r2, [r3, #-3888] - ldr r2, [r3, #-4060] + str r2, [r3, #-3376] + ldr r2, [r3, #-3548] add r0, r2, r0, asl #1 -.L719: +.L718: cmp r2, r0 - beq .L724 + beq .L723 ldrh r1, [r2], #2 cmp r1, ip - ldrne lr, [r3, #-3888] + ldrne lr, [r3, #-3376] addne r1, r1, lr - strne r1, [r3, #-3888] - b .L719 -.L724: + strne r1, [r3, #-3376] + b .L718 +.L723: ldr pc, [sp], #4 -.L726: - .align 2 .L725: + .align 2 +.L724: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4328,21 +4301,21 @@ ftl_set_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L731 + ldr r2, .L730 mov r3, r0, lsr #5 cmp r1, #0 and r0, r0, #31 uxth r3, r3 mov ip, #1 - ldr r1, [r2, #-3884] + ldr r1, [r2, #-3372] 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 -.L732: - .align 2 .L731: + .align 2 +.L730: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4354,17 +4327,17 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L734 + ldr r3, .L733 mov r2, r0, lsr #5 and r0, r0, #31 - ldr r3, [r3, #-3884] + ldr r3, [r3, #-3372] ldr r3, [r3, r2, asl #2] mov r0, r3, lsr r0 and r0, r0, #1 bx lr -.L735: - .align 2 .L734: + .align 2 +.L733: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4375,19 +4348,19 @@ ftl_sb_update_avl_pages: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L746 + ldr ip, .L745 mov r3, #0 strh r3, [r0, #4] @ movhi - movw r3, #1804 + movw r3, #2316 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} movw r4, #65535 ldrh lr, [ip, r3] add r3, r2, #7 add r3, r0, r3, asl #1 -.L737: +.L736: cmp r2, lr - bcs .L744 + bcs .L743 ldrh ip, [r3, #2]! add r2, r2, #1 cmp ip, r4 @@ -4395,17 +4368,17 @@ ftl_sb_update_avl_pages: ldrneh ip, [r0, #4] addne ip, ip, #1 strneh ip, [r0, #4] @ movhi - b .L737 -.L744: - ldr r3, .L746+4 + b .L736 +.L743: + ldr r3, .L745+4 add ip, r0, #14 mov r2, #0 movw r5, #65535 ldrh r4, [r3] -.L740: +.L739: uxth r3, r2 cmp r3, lr - bcs .L745 + bcs .L744 ldrh r3, [ip, #2]! add r2, r2, #1 cmp r3, r5 @@ -4414,14 +4387,14 @@ ftl_sb_update_avl_pages: subne r3, r3, #1 rsbne r3, r1, r3 strneh r3, [r0, #4] @ movhi - b .L740 -.L745: + b .L739 +.L744: ldmfd sp!, {r4, r5, pc} -.L747: - .align 2 .L746: + .align 2 +.L745: .word .LANCHOR0 - .word .LANCHOR0+1872 + .word .LANCHOR0+2384 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -4433,10 +4406,10 @@ make_superblock: @ 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, #1804 - ldr r6, .L762 + movw r2, #2316 + ldr r6, .L761 mov r3, #0 - ldr r10, .L762+4 + ldr r10, .L761+4 add r7, r0, #16 mov r4, r0 mov r5, r3 @@ -4444,10 +4417,10 @@ make_superblock: mvn r9, #0 strh r3, [r0, #4] @ movhi strb r3, [r0, #7] -.L749: +.L748: uxth r3, r5 cmp r3, r8 - bcs .L761 + bcs .L760 ldrb r0, [r10, r5] @ zero_extendqisi2 add r7, r7, #2 ldrh r1, [r4] @@ -4461,38 +4434,40 @@ make_superblock: ldreqb r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 streqb r3, [r4, #7] - b .L749 -.L761: - ldr r2, .L762 - ldrb r1, [r4, #7] @ zero_extendqisi2 - add r3, r2, #1872 + b .L748 +.L760: + ldr r3, .L761+8 + ldrb r2, [r4, #7] @ zero_extendqisi2 ldrh r3, [r3] - smulbb r3, r1, r3 + smulbb r3, r2, r3 strh r3, [r4, #4] @ movhi mov r3, #0 strb r3, [r4, #9] - ldr r3, [r6, #1796] + ldr r3, [r6, #2308] cmp r3, #0 - beq .L752 + beq .L751 + ldr r2, .L761+12 ldrh r3, [r4] - ldr r2, [r2, #4060] + ldr r2, [r2, #-3612] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #79 movls r3, #1 strlsb r3, [r4, #9] -.L752: +.L751: ldrb r3, [r6] @ 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} -.L763: - .align 2 .L762: + .align 2 +.L761: .word .LANCHOR0 - .word .LANCHOR0+1832 + .word .LANCHOR0+2344 + .word .LANCHOR0+2384 + .word .LANCHOR2 .fnend .size make_superblock, .-make_superblock .align 2 @@ -4504,19 +4479,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, #1804 - ldr r3, .L774 + movw r2, #2316 + ldr r3, .L773 mov r5, #0 mov r6, r0 mov r4, r5 ldrh r7, [r3, r2] - add r3, r3, #1872 + add r3, r3, #2384 sub r9, r3, #40 ldrh r8, [r3] -.L765: +.L764: uxth r3, r5 cmp r3, r7 - bcs .L773 + bcs .L772 ldrb r0, [r9, r5] @ zero_extendqisi2 mov r1, r6 bl V2P_block @@ -4525,25 +4500,25 @@ update_multiplier_value: cmp r0, #0 addeq r4, r4, r8 uxtheq r4, r4 - b .L765 -.L773: + b .L764 +.L772: cmp r4, #0 - beq .L768 + beq .L767 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L768: - ldr r3, .L774+4 +.L767: + ldr r3, .L773+4 mov r2, #6 mov r0, #0 - ldr r3, [r3, #-4068] + ldr r3, [r3, #-3556] mla r6, r2, r6, r3 strh r4, [r6, #4] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L775: - .align 2 .L774: + .align 2 +.L773: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4556,27 +4531,25 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L779 - ldr r0, [r3, #-4048] + ldr r2, .L778 + ldr r0, [r2, #-3536] cmp r0, #0 bxeq lr - ldr r3, [r3, #-4068] + ldr r3, [r2, #-3556] rsb r0, r3, r0 - ldr r3, .L779+4 + ldr r3, .L778+4 mov r0, r0, asr #1 mul r0, r3, r0 - ldr r3, .L779+8 - ldr r3, [r3, #4060] + ldr r3, [r2, #-3612] uxth r0, r0 mov r0, r0, asl #1 ldrh r0, [r3, r0] bx lr -.L780: - .align 2 .L779: + .align 2 +.L778: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR0 .fnend .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -4586,54 +4559,52 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L791 - ldr r3, [r1, #-4048] + ldr r1, .L790 + ldr r3, [r1, #-3536] cmp r3, #0 - beq .L787 - sub r2, r1, #4032 - stmfd sp!, {r4, lr} - .save {r4, lr} - mov lr, #6 + beq .L786 + sub r2, r1, #3520 + stmfd sp!, {r4, r5, lr} + .save {r4, r5, lr} + mov r4, #6 ldrh r2, [r2, #-12] - movw r4, #65535 - ldr r1, [r1, #-4068] + movw r5, #65535 + ldr ip, [r1, #-3556] rsb r2, r2, r2, asl #3 - rsb r3, r1, r3 + rsb r3, ip, r3 mov r2, r2, asr #3 mov r3, r3, asr #1 cmp r0, r2 uxthgt r0, r2 - ldr r2, .L791+4 + ldr r2, .L790+4 mul r3, r2, r3 mov r2, #0 uxth r3, r3 -.L784: - uxth ip, r2 - cmp ip, r0 - bcs .L786 - mul ip, lr, r3 +.L783: + uxth lr, r2 + cmp lr, r0 + bcs .L785 + mul lr, r4, r3 add r2, r2, #1 - ldrh ip, [r1, ip] - cmp ip, r4 - bne .L788 -.L786: - ldr r2, .L791+8 + ldrh lr, [ip, lr] + cmp lr, r5 + bne .L787 +.L785: + ldr r2, [r1, #-3612] mov r3, r3, asl #1 - ldr r2, [r2, #4060] ldrh r0, [r2, r3] - ldmfd sp!, {r4, pc} -.L788: - mov r3, ip - b .L784 + ldmfd sp!, {r4, r5, pc} .L787: + mov r3, lr + b .L783 +.L786: mov r0, r3 bx lr -.L792: - .align 2 .L791: + .align 2 +.L790: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR0 .fnend .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -4641,489 +4612,474 @@ GetFreeBlockMaxEraseCount: .type FtlPrintInfo2buf, %function FtlPrintInfo2buf: .fnstart - @ args = 0, pretend = 0, frame = 32 + @ 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, r0 - ldr r7, .L805 - .pad #52 - sub sp, sp, #52 - ldr r6, .L805+4 - add r5, r8, #12 - ldr r1, .L805+8 - ldr r3, [r7] - str r3, [sp, #44] + 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 + add r4, r7, #12 + ldr r1, .L803+4 + .pad #32 + sub sp, sp, #32 bl strcpy - mov r0, r5 - ldr r1, .L805+12 - ldr r2, [r6, #112] + mov r0, r4 + ldr r1, .L803+8 + ldr r2, [r8, #112] bl sprintf - ldr r1, .L805+16 - ldr r2, [r6, #1888] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L803+12 + ldr r2, [r8, #2400] + add r4, r4, r0 + mov r0, r4 bl sprintf - ldr r3, .L805+20 + ldr r3, .L803+16 ldr r3, [r3, #504] cmp r3, #1 - add r4, r5, r0 - bne .L799 - add r0, sp, #28 - add r1, sp, #32 - add r2, sp, #36 - add r3, sp, #40 + add r4, r4, r0 + bne .L798 + add r0, sp, #16 + add r1, sp, #20 + add r2, sp, #24 + add r3, sp, #28 bl NandcGetTimeCfg mov r0, r4 - ldr r1, .L805+24 - ldr r9, .L805+28 - ldr r10, .L805+32 - sub fp, r9, #4032 - ldr r3, [sp, #36] - ldr r2, [sp, #28] + ldr r1, .L803+20 + ldr r6, .L803+24 + sub r10, r6, #3520 + sub r9, r6, #3296 + ldr r3, [sp, #24] + ldr r2, [sp, #16] str r3, [sp] - ldr r3, [sp, #40] + ldr r3, [sp, #28] str r3, [sp, #4] - ldr r3, [sp, #32] + ldr r3, [sp, #20] bl sprintf - ldr r1, .L805+36 + ldr r1, .L803+28 add r4, r4, r0 add r5, r4, #10 mov r0, r4 - add r4, r6, #1936 + add r4, r8, #2448 bl strcpy mov r0, r5 - ldr r1, .L805+40 - ldr r2, [r6, #1932] + ldr r1, .L803+32 + ldr r2, [r8, #2444] bl sprintf - ldr r1, .L805+44 - ldr r2, [r9, #-3888] + ldr r1, .L803+36 + ldr r2, [r6, #-3376] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+48 - ldr r2, [r9, #-3880] + ldr r1, .L803+40 + ldr r2, [r6, #-3368] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+52 - ldr r2, [r9, #-3876] + ldr r1, .L803+44 + ldr r2, [r6, #-3364] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+56 - ldr r2, [r9, #-3872] + ldr r1, .L803+48 + ldr r2, [r6, #-3360] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+60 - ldr r2, [r9, #-3868] + ldr r1, .L803+52 + ldr r2, [r6, #-3356] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+64 - ldr r2, [r9, #-3864] + ldr r1, .L803+56 + ldr r2, [r6, #-3352] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+68 - ldr r2, [r9, #-3860] + ldr r1, .L803+60 + ldr r2, [r6, #-3348] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r9, #-3856] - ldr r1, .L805+72 + ldr r2, [r6, #-3344] + ldr r1, .L803+64 mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r9, #-3852] - ldr r1, .L805+76 + ldr r2, [r6, #-3340] + ldr r1, .L803+68 mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+80 - ldr r2, [r9, #-3848] + ldr r1, .L803+72 + ldr r2, [r6, #-3336] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+84 - ldr r2, [r9, #-3844] + ldr r1, .L803+76 + ldr r2, [r6, #-3332] add r5, r5, r0 mov r0, r5 bl sprintf add r5, r5, r0 bl FtlBbtCalcTotleCnt ldrh r2, [r4, #6] - ldr r1, .L805+88 + ldr r1, .L803+80 mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L805+92 - ldrh r2, [fp, #-12] + ldr r1, .L803+84 + ldrh r2, [r10, #-12] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+96 - ldr r2, [r9, #-3840] + ldr r1, .L803+88 + ldr r2, [r6, #-3328] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+100 - ldr r2, [r9, #-3836] + ldr r1, .L803+92 + ldr r2, [r6, #-3324] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+104 - ldr r2, [r9, #-3832] + ldr r1, .L803+96 + ldr r2, [r6, #-3320] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+108 - ldr r2, [r6, #4064] + ldr r1, .L803+100 + ldr r2, [r6, #-3608] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+112 - ldr r2, [r9, #-3828] + ldr r1, .L803+104 + ldr r2, [r6, #-3316] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+116 - ldr r2, [r9, #-3824] + ldr r1, .L803+108 + ldr r2, [r6, #-3312] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #30] - ldr r1, .L805+120 + ldr r1, .L803+112 + ldrh r2, [r10, #-54] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #28] - ldr r1, .L805+124 - sub r10, r9, #3808 + ldr r1, .L803+116 + ldrh r2, [r10, #-56] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+128 - ldr r2, [r6, #1912] + ldr r1, .L803+120 + ldr r2, [r8, #2424] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+132 - ldr r2, [r6, #1904] + ldr r1, .L803+124 + ldr r2, [r8, #2416] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+136 - ldr r2, [r6, #1800] + ldr r1, .L803+128 + ldr r2, [r8, #2312] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #66] - ldr r1, .L805+140 + ldr r1, .L803+132 add r5, r5, r0 mov r0, r5 bl sprintf - movw r3, #1812 - ldrh r2, [r6, r3] - ldr r1, .L805+144 + movw r3, #2324 + ldrh r2, [r8, r3] + ldr r1, .L803+136 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #-12] - ldr r1, .L805+148 + ldrh r2, [r9, #-12] + ldr r1, .L803+140 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+152 - ldr r2, [r6, #1816] + ldr r1, .L803+144 + ldr r2, [r8, #2328] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #-8] - ldr r1, .L805+156 + ldrh r2, [r9, #-8] + ldr r1, .L803+148 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4] - ldr r1, .L805+160 - sub r4, r9, #3984 + ldr r1, .L803+152 + sub r4, r6, #3472 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #-230] - ldr r1, .L805+164 + ldrh r2, [r9, #-230] + ldr r1, .L803+156 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+168 - ldrb r2, [r9, #-4034] @ zero_extendqisi2 + ldr r1, .L803+160 + ldrb r2, [r6, #-3522] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+172 - ldrh r2, [fp, #-8] + ldr r1, .L803+164 + ldrh r2, [r10, #-8] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+176 - ldrb r2, [r9, #-4032] @ zero_extendqisi2 + ldr r1, .L803+168 + ldrb r2, [r6, #-3520] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #-228] - ldr r1, .L805+180 + ldrh r2, [r9, #-228] + ldr r1, .L803+172 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r3, [fp, #-8] - ldr r2, [r9, #-4060] - ldr r1, .L805+184 + ldrh r3, [r10, #-8] + ldr r2, [r6, #-3548] + ldr r1, .L803+176 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #-182] - ldr r1, .L805+188 + ldrh r2, [r9, #-182] + ldr r1, .L803+180 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+192 - ldrb r2, [r9, #-3986] @ zero_extendqisi2 + ldr r1, .L803+184 + ldrb r2, [r6, #-3474] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #-8] - ldr r1, .L805+196 + ldr r1, .L803+188 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+200 - ldrb r2, [r9, #-3984] @ zero_extendqisi2 + ldr r1, .L803+192 + ldrb r2, [r6, #-3472] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #-180] - ldr r1, .L805+204 - sub r10, r9, #3936 + ldrh r2, [r9, #-180] + ldr r1, .L803+196 + sub r9, r6, #3424 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r3, [r4, #-8] - ldr r2, [r9, #-4060] - ldr r1, .L805+208 + ldr r2, [r6, #-3548] + ldr r1, .L803+200 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #42] - ldr r1, .L805+212 + ldr r1, .L803+204 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+216 - ldrb r2, [r9, #-3938] @ zero_extendqisi2 + ldr r1, .L803+208 + ldrb r2, [r6, #-3426] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r10, #-8] - ldr r1, .L805+220 - sub r10, r9, #3792 + ldrh r2, [r9, #-8] + ldr r1, .L803+212 + sub r9, r6, #3280 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+224 - ldrb r2, [r9, #-3936] @ zero_extendqisi2 + ldr r1, .L803+216 + ldrb r2, [r6, #-3424] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #44] - ldr r1, .L805+228 + ldr r1, .L803+220 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #186] - ldr r1, .L805+232 + ldr r1, .L803+224 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+236 - ldrb r2, [r9, #-3794] @ zero_extendqisi2 + ldr r1, .L803+228 + ldrb r2, [r6, #-3282] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+240 - ldrh r2, [r10, #-8] + ldr r1, .L803+232 + ldrh r2, [r9, #-8] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L805+244 - ldrb r2, [r9, #-3792] @ zero_extendqisi2 + ldr r1, .L803+236 + ldrb r2, [r6, #-3280] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #188] - ldr r1, .L805+248 + ldr r1, .L803+240 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, [r9, #-3664] - ldr r2, [r9, #-3752] - ldr r3, [r6, #1796] + ldr r1, [r6, #-3152] + ldr r3, [r8, #2308] + ldr r2, [r6, #-3240] orr r2, r3, r2, asl #8 - ldr r3, [r9, #-3668] + ldr r3, [r6, #-3156] str r1, [sp] add r5, r5, r0 - ldr r1, [r9, #-3672] + ldr r1, [r6, #-3160] mov r0, r5 str r1, [sp, #4] - ldr r1, .L805+252 + ldr r1, .L803+244 bl sprintf - ldr r1, .L805+256 - ldr r2, [r9, #-3676] + ldr r1, .L803+248 + ldr r2, [r6, #-3164] add r4, r5, r0 - sub r5, r9, #3232 + sub r5, r6, #2720 mov r0, r4 bl sprintf - ldr r1, .L805+260 - ldr r2, [r9, #-3652] + ldr r1, .L803+252 + ldr r2, [r6, #-3140] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L805+264 + ldr r1, .L803+256 ldrh r2, [r5, #-4] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L805+268 + ldr r1, .L803+260 ldrh r2, [r5, #-2] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L805+272 - ldr r2, [r9, #-3232] + ldr r1, .L803+264 + ldr r2, [r6, #-2720] add r4, r4, r0 mov r0, r4 bl sprintf - sub r3, r9, #3216 - ldr r1, .L805+276 + sub r3, r6, #2704 + ldr r1, .L803+268 ldrh r2, [r3, #-12] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L805+280 + ldr r1, .L803+272 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 - ldrh r0, [fp, #-12] + ldrh r0, [r10, #-12] bl GetFreeBlockMaxEraseCount - ldr r1, .L805+284 + ldr r1, .L803+276 mov r2, r0 mov r0, r4 bl sprintf - ldrh r3, [r10, #-8] + ldrh r3, [r9, #-8] movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L796 - ldr r2, [r9, #-4060] + beq .L795 + ldr r2, [r6, #-3548] mov r3, r3, asl #1 mov r0, r4 - ldr r1, .L805+288 + ldr r1, .L803+280 ldrh r2, [r2, r3] bl sprintf add r4, r4, r0 -.L796: +.L795: mov r0, #0 mov r5, #0 bl List_get_gc_head_node - mov fp, #6 - movw ip, #65535 + movw r10, #65535 + mov r9, #6 uxth r3, r0 -.L798: - cmp r3, ip - str ip, [sp, #20] - beq .L797 - ldr r2, [r9, #-4060] +.L797: + cmp r3, r10 + beq .L796 + ldr r2, [r6, #-3548] mov r1, r3, asl #1 - mul r10, fp, r3 + mul r8, r9, r3 mov r0, r4 ldrh r2, [r2, r1] str r2, [sp] - ldr r2, [r9, #-4068] - add r2, r2, r10 + ldr r2, [r6, #-3556] + add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp, #4] - ldr r2, [r6, #4060] + ldr r2, [r6, #-3612] ldrh r2, [r2, r1] - ldr r1, .L805+292 + ldr r1, .L803+284 str r2, [sp, #8] mov r2, r5 bl sprintf add r5, r5, #1 - ldr r3, [r9, #-4068] + ldr r3, [r6, #-3556] cmp r5, #16 - ldrh r3, [r3, r10] + ldrh r3, [r3, r8] add r4, r4, r0 - ldr ip, [sp, #20] - bne .L798 -.L797: - ldr r3, [r9, #-4048] - mov r10, #0 - ldr r5, [r9, #-4068] - movw ip, #65535 - rsb r5, r5, r3 - ldr r3, .L805+296 - mov r5, r5, asr #1 - mul r3, r3, r5 - mov r5, #6 + bne .L797 +.L796: + ldr r2, [r6, #-3556] + mov r5, #0 + ldr r3, [r6, #-3536] + movw r10, #65535 + mov r9, #6 + rsb r3, r2, r3 + ldr r2, .L803+288 + mov r3, r3, asr #1 + mul r3, r2, r3 uxth r3, r3 -.L800: - cmp r3, ip - str ip, [sp, #20] - beq .L799 - mul fp, r5, r3 - ldr r2, [r9, #-4068] - ldr r1, [r6, #4060] +.L799: + cmp r3, r10 + beq .L798 + mul r8, r9, r3 + ldr r2, [r6, #-3556] + ldr r1, [r6, #-3612] mov r0, r4 - add r2, r2, fp + add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp] mov r2, r3, asl #1 ldrh r2, [r1, r2] - ldr r1, .L805+300 + ldr r1, .L803+292 str r2, [sp, #4] - mov r2, r10 + mov r2, r5 bl sprintf - add r10, r10, #1 - ldr r3, [r9, #-4068] - cmp r10, #4 - ldrh r3, [r3, fp] + add r5, r5, #1 + ldr r3, [r6, #-3556] + cmp r5, #4 + ldrh r3, [r3, r8] add r4, r4, r0 - ldr ip, [sp, #20] - bne .L800 -.L799: - ldr r2, [sp, #44] - rsb r0, r8, r4 - ldr r3, [r7] - cmp r2, r3 - beq .L801 - bl __stack_chk_fail -.L801: - add sp, sp, #52 + bne .L799 +.L798: + rsb r0, r7, r4 + add sp, sp, #32 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L806: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L804: .align 2 -.L805: - .word __stack_chk_guard +.L803: .word .LANCHOR0 .word .LC6 .word .LC7 @@ -5131,7 +5087,6 @@ FtlPrintInfo2buf: .word .LANCHOR1 .word .LC9 .word .LANCHOR2 - .word .LANCHOR0+4068 .word .LC10 .word .LC11 .word .LC12 @@ -5211,8 +5166,8 @@ ftl_proc_ftl_read: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L809 - ldr r2, .L809+4 + ldr r1, .L807 + ldr r2, .L807+4 bl sprintf add r4, r5, r0 mov r0, r4 @@ -5220,9 +5175,9 @@ ftl_proc_ftl_read: add r0, r4, r0 rsb r0, r5, r0 ldmfd sp!, {r3, r4, r5, pc} -.L810: +.L808: .align 2 -.L809: +.L807: .word .LC76 .word .LC77 .fnend @@ -5238,86 +5193,85 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L841 - ldr r2, [r4, #-3832] - ldr r3, [r4, #-3824] + ldr r4, .L839 + ldr r2, [r4, #-3320] + ldr r3, [r4, #-3312] cmp r2, r3 - bcs .L812 - ldr r2, .L841+4 - movw r1, #1812 + bcs .L810 + ldr r2, .L839+4 + movw r1, #2324 + ldr r0, [r4, #-3612] mov r3, #0 - str r3, [r4, #-3840] - ldr r0, [r2, #4060] - mov r5, r2 + str r3, [r4, #-3328] ldrh r1, [r2, r1] sub r0, r0, #2 -.L813: + mov r5, r2 +.L811: cmp r3, r1 - bcs .L840 + bcs .L838 ldrh r2, [r0, #2]! add r3, r3, #1 - ldr ip, [r4, #-3840] + ldr ip, [r4, #-3328] add r2, r2, ip - str r2, [r4, #-3840] - b .L813 -.L840: - ldr r6, [r4, #-3840] + str r2, [r4, #-3328] + b .L811 +.L838: + ldr r6, [r4, #-3328] mov r0, r6 bl __aeabi_uidiv - movw r3, #1864 + movw r3, #2376 ldrh r1, [r5, r3] - str r0, [r4, #-3832] - ldr r0, [r4, #-3836] + str r0, [r4, #-3320] + ldr r0, [r4, #-3324] rsb r0, r0, r6 bl __aeabi_uidiv - str r0, [r4, #-3840] - b .L815 -.L812: - ldr r3, [r4, #-3828] + str r0, [r4, #-3328] + b .L813 +.L810: + ldr r3, [r4, #-3316] cmp r2, r3 - bls .L815 - ldr lr, .L841+4 + bls .L813 + ldr ip, .L839+8 add r3, r3, #1 - ldr ip, .L841+8 - str r3, [r4, #-3828] + str r3, [r4, #-3316] mov r3, #0 -.L817: +.L815: ldrh r2, [ip] cmp r3, r2 - bcs .L815 - ldr r0, [lr, #4060] + bcs .L813 + ldr r0, [r4, #-3612] mov r1, r3, asl #1 add r3, r3, #1 ldrh r2, [r0, r1] add r2, r2, #1 strh r2, [r0, r1] @ movhi - b .L817 -.L815: - ldr r6, [r4, #-3824] - ldr r8, [r4, #-3832] + b .L815 +.L813: + ldr r6, [r4, #-3312] + ldr r8, [r4, #-3320] add r3, r6, #256 cmp r3, r8 - bls .L820 - ldr r2, .L841 + bls .L818 + ldr r2, .L839 add r3, r6, #768 - ldr r2, [r2, #-3828] + ldr r2, [r2, #-3316] cmp r3, r2 - bls .L820 - ldr r3, .L841+4 + bls .L818 + ldr r3, .L839+4 cmp r6, #40 - ldr r2, [r3, #1796] + ldr r2, [r3, #2308] movls r3, #0 movhi r3, #1 cmp r2, #0 orreq r3, r3, #1 cmp r3, #0 - beq .L820 -.L822: - movw r0, #65535 - b .L821 + beq .L818 .L820: - ldr r5, .L841 - sub r3, r5, #4032 + movw r0, #65535 + b .L819 +.L818: + ldr r5, .L839 + sub r3, r5, #3520 ldrh r0, [r3, #-12] add r0, r0, r0, asl #1 ubfx r0, r0, #2, #16 @@ -5330,33 +5284,33 @@ GetSwlReplaceBlock: cmp r6, #40 movls r1, #0 cmp r1, #0 - bne .L822 - ldr r3, [r5, #-4064] + bne .L820 + ldr r3, [r5, #-3552] cmp r3, #0 - beq .L822 - ldr r2, .L841+4 - movw r0, #1812 - ldr ip, .L841+12 + beq .L820 + ldr r0, .L839+4 + movw r2, #2324 + ldr ip, .L839+12 movw r7, #65535 + ldr r10, [r5, #-3612] mov lr, #6 - ldrh r0, [r2, r0] - ldr r10, [r2, #4060] - str r0, [sp, #20] - ldr r0, [r5, #-4068] + ldrh r2, [r0, r2] + ldr r0, [r5, #-3556] mov r5, r7 -.L823: + str r2, [sp, #20] +.L821: ldrh r2, [r3] movw fp, #65535 cmp r2, fp - beq .L825 + beq .L823 add r1, r1, #1 ldr fp, [sp, #20] uxth r1, r1 cmp r1, fp - bhi .L822 + bhi .L820 ldrh fp, [r3, #4] cmp fp, #0 - beq .L824 + beq .L822 rsb r3, r0, r3 mov r3, r3, asr #1 mul r3, ip, r3 @@ -5364,65 +5318,65 @@ GetSwlReplaceBlock: mov fp, r3, asl #1 ldrh fp, [r10, fp] cmp fp, r6 - bls .L829 + bls .L827 cmp fp, r7 movcc r7, fp movcc r5, r3 -.L824: +.L822: mla r3, lr, r2, r0 - b .L823 -.L829: + b .L821 +.L827: mov r5, r3 -.L825: +.L823: movw r3, #65535 cmp r5, r3 - beq .L822 + beq .L820 mov r3, r5, asl #1 ldrh fp, [r10, r3] cmp fp, r6 - bls .L827 + bls .L825 str r3, [sp, #20] bl GetFreeBlockMinEraseCount ldr r3, [sp, #20] cmp r0, r6 - strhi r7, [r4, #-3824] -.L827: + strhi r7, [r4, #-3312] +.L825: cmp fp, r8 - bcs .L822 + bcs .L820 add r2, fp, #128 cmp r9, r2 - ble .L822 + ble .L820 add r2, fp, #256 cmp r2, r8 - bcc .L828 - ldr r2, [r4, #-3828] + bcc .L826 + ldr r2, [r4, #-3316] add fp, fp, #768 cmp fp, r2 - bcs .L822 -.L828: - ldr r2, [r4, #-4060] + bcs .L820 +.L826: + ldr r2, [r4, #-3548] mov r1, r5 - ldr r0, .L841+16 + ldr r0, .L839+16 ldrh r2, [r2, r3] str r2, [sp] mov r2, r8 ldrh r3, [r10, r3] stmib sp, {r3, r9} - ldr r3, [r4, #-3828] + ldr r3, [r4, #-3316] bl printk mov r0, r5 mov r3, #1 - str r3, [r4, #-3224] -.L821: + str r3, [r4, #-2712] +.L819: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L842: +.L840: .align 2 -.L841: +.L839: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+1812 + .word .LANCHOR0+2324 .word -1431655765 .word .LC78 .fnend @@ -5438,19 +5392,19 @@ free_data_superblock: cmp r0, r2 stmfd sp!, {r3, lr} .save {r3, lr} - beq .L844 - ldr r2, .L846 + beq .L842 + ldr r2, .L844 mov r3, r0, asl #1 mov r1, #0 - ldr r2, [r2, #-4060] + ldr r2, [r2, #-3548] strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L844: +.L842: mov r0, #0 ldmfd sp!, {r3, pc} -.L847: +.L845: .align 2 -.L846: +.L844: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5461,24 +5415,24 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L856 + ldr ip, .L854 mov r3, #0 - ldr r1, .L856+4 + ldr r1, .L854+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, #-3220] -.L849: + str r3, [r1, #-2708] +.L847: ldrh r2, [ip] add r4, r3, #1 uxth r3, r3 cmp r3, r2 - bcs .L854 + bcs .L852 mul r0, r5, r3 - ldr lr, [r1, #-3216] + ldr lr, [r1, #-2704] add r2, lr, r0 str r6, [r2, #8] ldrh r2, [r7] @@ -5486,41 +5440,41 @@ FtlGcBufInit: add r9, r2, #3 cmp r2, #0 movlt r2, r9 - ldr r9, [r1, #-3212] + ldr r9, [r1, #-2700] bic r2, r2, #3 add r2, r9, r2 str r2, [lr, r0] - ldr r2, .L856+8 - ldr r9, [r1, #-3216] + ldr r2, .L854+8 + ldr r9, [r1, #-2704] ldrh r2, [r2] add lr, r9, r0 mul r2, r2, r3 add r10, r2, #3 cmp r2, #0 movlt r2, r10 - ldr r10, [r1, #-3208] + ldr r10, [r1, #-2696] bic r2, r2, #3 add r2, r10, r2 str r2, [lr, #4] - ldr r2, [r1, #-3204] + ldr r2, [r1, #-2692] 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 .L849 -.L854: - ldr r0, .L856+4 + b .L847 +.L852: + ldr r0, .L854+4 mov ip, #12 - ldr r4, .L856+12 + ldr r4, .L854+12 mov lr, #0 -.L851: - ldr r3, [r1, #-3200] +.L849: + ldr r3, [r1, #-2688] cmp r2, r3 - bcs .L855 + bcs .L853 mul r5, ip, r2 - ldr r7, [r0, #-3216] + ldr r7, [r0, #-2704] add r3, r7, r5 str lr, [r3, #8] ldrh r3, [r4] @@ -5528,12 +5482,12 @@ FtlGcBufInit: add r6, r3, #3 cmp r3, #0 movlt r3, r6 - ldr r6, [r0, #-3212] + ldr r6, [r0, #-2700] bic r3, r3, #3 add r3, r6, r3 str r3, [r7, r5] - ldr r3, .L856+8 - ldr r6, [r0, #-3216] + ldr r3, .L854+8 + ldr r6, [r0, #-2704] ldrh r3, [r3] add r5, r6, r5 mul r3, r3, r2 @@ -5542,20 +5496,20 @@ FtlGcBufInit: add r6, r3, #3 cmp r3, #0 movlt r3, r6 - ldr r6, [r0, #-3208] + ldr r6, [r0, #-2696] bic r3, r3, #3 add r3, r6, r3 str r3, [r5, #4] - b .L851 -.L855: + b .L849 +.L853: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L857: +.L855: .align 2 -.L856: - .word .LANCHOR0+1804 +.L854: + .word .LANCHOR0+2316 .word .LANCHOR2 - .word .LANCHOR0+1884 - .word .LANCHOR0+1882 + .word .LANCHOR0+2396 + .word .LANCHOR0+2394 .fnend .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -5565,39 +5519,39 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L866 + ldr r3, .L864 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, #-3200] + ldr r6, [r3, #-2688] mov r5, #36 - ldr r4, [r3, #-3216] + ldr r4, [r3, #-2704] mov r7, lr mov r8, #12 -.L859: +.L857: uxth ip, lr cmp ip, r1 ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mla ip, r5, ip, r0 mov r2, #0 -.L860: +.L858: uxth r3, r2 cmp r3, r6 - bcs .L861 + bcs .L859 mul r3, r8, r3 add r2, r2, #1 add r9, r4, r3 ldr r10, [r4, r3] ldr r3, [ip, #8] cmp r10, r3 - bne .L860 + bne .L858 str r7, [r9, #8] -.L861: +.L859: add lr, lr, #1 - b .L859 -.L867: + b .L857 +.L865: .align 2 -.L866: +.L864: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -5608,43 +5562,43 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L877 + ldr r3, .L875 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, #-3200] + ldr r4, [r3, #-2688] mov r7, #1 - ldr r5, [r3, #-3216] + ldr r5, [r3, #-2704] mov r8, #36 -.L869: +.L867: uxth r2, ip cmp r2, r1 - bcs .L876 + bcs .L874 mov lr, #0 -.L870: +.L868: uxth r3, lr cmp r3, r4 - bcs .L871 + bcs .L869 mla r3, r6, r3, r5 add lr, lr, #1 ldr r9, [r3, #8] cmp r9, #0 - bne .L870 + bne .L868 mla r2, r8, r2, r0 ldr lr, [r3] str r7, [r3, #8] str lr, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L871: +.L869: add ip, ip, #1 - b .L869 -.L876: + b .L867 +.L874: ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L878: +.L876: .align 2 -.L877: +.L875: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -5656,25 +5610,25 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L885 - sub r2, r2, #3184 + ldr r2, .L883 + sub r2, r2, #2672 ldr r3, [r2, #-12] ldrh r2, [r2, #-8] add r2, r3, r2, asl #1 -.L880: +.L878: cmp r3, r2 - beq .L884 + beq .L882 ldrh r1, [r3], #2 cmp r1, r0 - bne .L880 + bne .L878 mov r0, #1 bx lr -.L884: +.L882: mov r0, #0 bx lr -.L886: +.L884: .align 2 -.L885: +.L883: .word .LANCHOR2 .fnend .size IsBlkInGcList, .-IsBlkInGcList @@ -5688,36 +5642,36 @@ FtlGcUpdatePage: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, r0 - ldr r4, .L895 + ldr r4, .L893 ubfx r0, r0, #10, #16 mov r6, r1 mov r7, r2 bl P2V_block_in_plane - sub r3, r4, #3184 - ldr r2, [r4, #-3196] + sub r3, r4, #2672 + ldr r2, [r4, #-2684] mov lr, #0 ldrh r1, [r3, #-8] sub r8, r2, #2 -.L888: +.L886: uxth ip, lr cmp ip, r1 - bcs .L892 + bcs .L890 ldrh r9, [r8, #2]! add lr, lr, #1 cmp r9, r0 - bne .L888 -.L892: + bne .L886 +.L890: cmp ip, r1 moveq ip, ip, asl #1 streqh r0, [r2, ip] @ movhi ldreqh ip, [r3, #-8] addeq ip, ip, #1 streqh ip, [r3, #-8] @ movhi -.L890: +.L888: ldrh r2, [r3] mov ip, #12 mul ip, ip, r2 - ldr r2, [r4, #-3188] + ldr r2, [r4, #-2676] add r1, r2, ip stmib r1, {r6, r7} str r5, [r2, ip] @@ -5725,9 +5679,9 @@ FtlGcUpdatePage: add r2, r2, #1 strh r2, [r3] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L896: +.L894: .align 2 -.L895: +.L893: .word .LANCHOR2 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage @@ -5741,45 +5695,45 @@ FtlGcRefreshOpenBlock: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L905 + ldr r4, .L903 ldrh r3, [r4, #-14] cmp r3, r0 - beq .L899 + beq .L897 ldrh r3, [r4, #-12] cmp r3, r0 - beq .L899 + beq .L897 ldrh r3, [r4, #-10] cmp r3, r0 - beq .L899 + beq .L897 ldrh r3, [r4, #-8] cmp r3, r0 - beq .L899 - ldr r0, .L905+4 + beq .L897 + ldr r0, .L903+4 mov r1, r5 bl printk ldrh r2, [r4, #-14] movw r3, #65535 cmp r2, r3 streqh r5, [r4, #-14] @ movhi - beq .L899 + beq .L897 ldrh r2, [r4, #-12] cmp r2, r3 streqh r5, [r4, #-12] @ movhi - beq .L899 + beq .L897 ldrh r2, [r4, #-10] cmp r2, r3 streqh r5, [r4, #-10] @ movhi - beq .L899 + beq .L897 ldrh r2, [r4, #-8] cmp r2, r3 streqh r5, [r4, #-8] @ movhi -.L899: +.L897: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L906: +.L904: .align 2 -.L905: - .word .LANCHOR2-3168 +.L903: + .word .LANCHOR2-2656 .word .LC79 .fnend .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock @@ -5793,49 +5747,49 @@ FtlGcRefreshBlock: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L918 + ldr r4, .L916 ldrh r3, [r4, #-14] cmp r3, r0 - beq .L915 + beq .L913 ldrh r3, [r4, #-12] cmp r3, r0 - beq .L915 + beq .L913 ldrh r3, [r4, #-10] cmp r3, r0 - beq .L915 + beq .L913 ldrh r3, [r4, #-8] cmp r3, r0 - beq .L915 - ldr r0, .L918+4 + beq .L913 + ldr r0, .L916+4 mov r1, r5 bl printk ldrh r2, [r4, #-14] movw r3, #65535 cmp r2, r3 streqh r5, [r4, #-14] @ movhi - beq .L915 + beq .L913 ldrh r2, [r4, #-12] cmp r2, r3 streqh r5, [r4, #-12] @ movhi - beq .L915 + beq .L913 ldrh r2, [r4, #-10] cmp r2, r3 streqh r5, [r4, #-10] @ movhi - beq .L915 + beq .L913 ldrh r2, [r4, #-8] cmp r2, r3 - bne .L916 + bne .L914 strh r5, [r4, #-8] @ movhi -.L915: +.L913: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L916: +.L914: mvn r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L919: +.L917: .align 2 -.L918: - .word .LANCHOR2-3168 +.L916: + .word .LANCHOR2-2656 .word .LC79 .fnend .size FtlGcRefreshBlock, .-FtlGcRefreshBlock @@ -5846,59 +5800,60 @@ FtlGcMarkBadPhyBlk: .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} + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} mov r5, r0 bl P2V_block_in_plane - ldr r6, .L930 + ldr r6, .L928 mov r2, r5 - ldrh r1, [r6, #-6] + sub r7, r6, #2656 + ldrh r1, [r7, #-6] mov r4, r0 - ldr r0, .L930+4 + ldr r0, .L928+4 bl printk mov r0, r4 bl FtlGcRefreshBlock - ldr r3, .L930+8 - ldr r2, [r3, #1796] - cmp r2, #0 - beq .L921 - ldr r2, [r3, #4060] + ldr r3, .L928+8 + ldr r3, [r3, #2308] + cmp r3, #0 + beq .L919 + ldr r2, [r6, #-3612] mov r4, r4, asl #1 ldrh r3, [r2, r4] cmp r3, #39 subhi r3, r3, #40 strhih r3, [r2, r4] @ movhi -.L921: - ldrh r3, [r6, #-6] +.L919: + ldrh r3, [r7, #-6] mov r2, #0 - ldr r0, .L930+12 -.L922: + ldr r0, .L928+12 +.L920: uxth r1, r2 cmp r1, r3 - bcs .L929 + bcs .L927 add r2, r2, #1 add r1, r0, r2, asl #1 ldrh r1, [r1, #-2] cmp r1, r5 - bne .L922 - b .L923 -.L929: + bne .L920 + b .L921 +.L927: cmp r3, #15 addls r2, r3, #1 - strlsh r2, [r6, #-6] @ movhi - ldrls r2, .L930+12 + strlsh r2, [r7, #-6] @ movhi + ldrls r2, .L928+12 movls r3, r3, asl #1 strlsh r5, [r2, r3] @ movhi -.L923: +.L921: mov r0, #0 - ldmfd sp!, {r4, r5, r6, pc} -.L931: + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L929: .align 2 -.L930: - .word .LANCHOR2-3168 +.L928: + .word .LANCHOR2 .word .LC80 .word .LANCHOR0 - .word .LANCHOR2-3172 + .word .LANCHOR2-2660 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 2 @@ -5910,18 +5865,18 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L939 + ldr r4, .L937 ldrh r3, [r4, #-6] cmp r3, #0 - beq .L933 + beq .L931 ldrh r1, [r4, #-14] movw r2, #65535 cmp r1, r2 - bne .L933 + bne .L931 add r4, r4, #32 ldrh r2, [r4, #-2] cmp r2, r3 - ldr r2, .L939+4 + ldr r2, .L937+4 movcs r3, #0 strcsh r3, [r4, #-2] @ movhi ldrh r3, [r4, #-2] @@ -5932,14 +5887,14 @@ FtlGcReFreshBadBlk: ldrh r3, [r4, #-2] add r3, r3, #1 strh r3, [r4, #-2] @ movhi -.L933: +.L931: mov r0, #0 ldmfd sp!, {r4, pc} -.L940: +.L938: .align 2 -.L939: - .word .LANCHOR2-3168 - .word .LANCHOR2-3172 +.L937: + .word .LANCHOR2-2656 + .word .LANCHOR2-2660 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk .align 2 @@ -5964,30 +5919,30 @@ BuildFlashLsbPageTable: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r1 - bne .L943 - ldr r3, .L973 -.L944: + bne .L941 + ldr r3, .L976 +.L942: mov r2, r0, asl #1 strh r0, [r2, r3] @ movhi add r0, r0, #1 cmp r0, #256 - bne .L944 -.L948: + bne .L942 +.L946: mov r1, #255 - ldr r0, .L973+4 - mov r2, #1024 + ldr r0, .L976+4 + mov r2, #2048 uxth r4, r4 bl ftl_memset mov r3, #0 - ldr r1, .L973 - ldr r0, .L973+4 - b .L945 -.L943: + ldr r1, .L976 + ldr r0, .L976+4 + b .L943 +.L941: cmp r0, #1 - bne .L946 - ldr ip, .L973 + bne .L944 + ldr ip, .L976 mov r3, #0 -.L947: +.L945: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #3 @@ -6002,14 +5957,14 @@ BuildFlashLsbPageTable: movne r2, r1 cmp r3, #256 strh r2, [lr, ip] @ movhi - bne .L947 - b .L948 -.L946: + bne .L945 + b .L946 +.L944: cmp r0, #2 - bne .L949 - ldr r1, .L973 + bne .L947 + ldr r1, .L976 mov r3, #0 -.L950: +.L948: uxth r2, r3 mov r0, r3, asl #1 cmp r2, #1 @@ -6018,14 +5973,14 @@ BuildFlashLsbPageTable: subhi r2, ip, #1 cmp r3, #256 strh r2, [r0, r1] @ movhi - bne .L950 - b .L948 -.L949: + bne .L948 + b .L946 +.L947: cmp r0, #3 - bne .L951 - ldr ip, .L973 + bne .L949 + ldr ip, .L976 mov r3, #0 -.L952: +.L950: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #5 @@ -6040,13 +5995,13 @@ BuildFlashLsbPageTable: movne r2, r1 cmp r3, #256 strh r2, [lr, ip] @ movhi - bne .L952 - b .L948 -.L951: + bne .L950 + b .L946 +.L949: cmp r0, #4 mov r3, #0 - bne .L953 - ldr r2, .L973+8 + bne .L951 + ldr r2, .L976+8 strh r3, [r2, #144] @ movhi mov r3, #1 strh r0, [r2, #152] @ movhi @@ -6061,7 +6016,7 @@ BuildFlashLsbPageTable: strh r3, [r2, #156] @ movhi mov r3, #8 strh r3, [r2, #158]! @ movhi -.L954: +.L952: tst r3, #1 movne r1, #7 moveq r1, #6 @@ -6070,31 +6025,31 @@ BuildFlashLsbPageTable: strh r1, [r2, #2]! @ movhi uxth r3, r3 cmp r3, #256 - bne .L954 - b .L948 -.L953: + bne .L952 + b .L946 +.L951: cmp r0, #5 - bne .L955 - ldr r2, .L973 -.L956: + bne .L953 + ldr r2, .L976 +.L954: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #16 - bne .L956 - ldr r2, .L973+12 -.L957: + bne .L954 + ldr r2, .L976+12 +.L955: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, #496 - bne .L957 - b .L948 -.L955: + bne .L955 + b .L946 +.L953: cmp r0, #6 - bne .L958 - ldr r1, .L973+16 -.L959: + bne .L956 + ldr r1, .L976+16 +.L957: cmp r3, #5 add r2, r3, r3, asl #1 movls r0, #0 @@ -6109,12 +6064,12 @@ BuildFlashLsbPageTable: strh r2, [r1, #2]! @ movhi uxth r3, r3 cmp r3, #256 - bne .L959 - b .L948 -.L958: + bne .L957 + b .L946 +.L956: cmp r0, #9 - bne .L948 - ldr r2, .L973+8 + bne .L958 + ldr r2, .L976+8 movw r1, #509 strh r3, [r2, #144] @ movhi mov r3, #1 @@ -6122,33 +6077,53 @@ BuildFlashLsbPageTable: mov r3, #2 strh r3, [r2, #148]! @ movhi mov r3, #3 -.L960: +.L959: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 + bne .L959 + b .L946 +.L958: + cmp r0, #10 + bne .L946 + ldr r2, .L976 +.L960: + mov r1, r3, asl #1 + strh r3, [r1, r2] @ movhi + add r3, r3, #1 + cmp r3, #63 bne .L960 - b .L948 -.L945: + ldr r2, .L976+20 + movw r1, #961 +.L961: + strh r3, [r2, #2]! @ movhi + add r3, r3, #2 + uxth r3, r3 + cmp r3, r1 + bne .L961 + b .L946 +.L943: uxth r2, r3 cmp r2, r4 - bcs .L972 + bcs .L975 mov r2, r3, asl #1 add r3, r3, #1 ldrh r2, [r2, r1] mov ip, r2, asl #1 strh r2, [r0, ip] @ movhi - b .L945 -.L972: + b .L943 +.L975: ldmfd sp!, {r4, pc} -.L974: +.L977: .align 2 -.L973: +.L976: .word .LANCHOR0+144 - .word .LANCHOR2-3136 + .word .LANCHOR2-2624 .word .LANCHOR0 .word .LANCHOR0+174 .word .LANCHOR0+142 + .word .LANCHOR0+268 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 2 @@ -6161,104 +6136,104 @@ 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, .L990 - ldr r4, .L990+4 - ldr r9, .L990+8 + ldr r3, .L993 + ldr r4, .L993+4 + ldr r9, .L993+8 ldrh r0, [r3, #10] - strb r6, [r4, #1717] + strb r6, [r4, #2229] mov r7, r4 - strb r6, [r9, #-2112] + strb r6, [r9, #-576] bl FlashBlockAlignInit mov r1, r6 mov r2, #8 - ldr r0, .L990+12 + ldr r0, .L993+12 bl ftl_memset mov r1, r6 mov r2, #32 - add r0, r4, #656 + add r0, r4, #1168 bl ftl_memset - ldr r0, .L990+16 + ldr r0, .L993+16 mov r1, r6 mov r2, #128 bl ftl_memset - ldr r5, [r4, #692] - ldr fp, .L990+20 + ldr r5, [r4, #1204] + ldr fp, .L993+20 add r8, r5, #1 -.L977: +.L980: mov r0, r8 add r1, fp, r6, asl #3 ldrb r2, [r5] @ zero_extendqisi2 bl FlashMemCmp8 - ldr r10, .L990+20 + ldr r10, .L993+20 cmp r0, #0 - bne .L976 - ldrb r3, [r7, #1717] @ zero_extendqisi2 + bne .L979 + ldrb r3, [r7, #2229] @ zero_extendqisi2 add r2, r7, r3, asl #2 - str r0, [r2, #656] + str r0, [r2, #1168] add r2, r3, #1 add r3, r7, r3 - strb r2, [r7, #1717] - strb r6, [r3, #1720] -.L976: + strb r2, [r7, #2229] + strb r6, [r3, #2232] +.L979: add r6, r6, #1 cmp r6, #4 - bne .L977 - ldrb r3, [r4, #1717] @ zero_extendqisi2 - ldr r7, .L990+4 - strb r3, [r9, #-2112] + bne .L980 + ldrb r3, [r4, #2229] @ zero_extendqisi2 + ldr r7, .L993+4 + strb r3, [r9, #-576] ldrb r3, [r5, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L978 -.L982: + beq .L981 +.L985: ldrb r3, [r5, #13] @ zero_extendqisi2 - ldrb r2, [r4, #1717] @ zero_extendqisi2 + ldrb r2, [r4, #2229] @ zero_extendqisi2 smulbb r2, r2, r3 ldrh r3, [r5, #14] smulbb r3, r2, r3 - ldr r2, .L990+24 - strh r3, [r2, #-14] @ movhi + ldr r2, .L993+24 + strh r3, [r2, #-2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L978: +.L981: ldr r9, [r7, #4] mov r6, #0 -.L981: +.L984: mov r0, r8 add r1, r10, r6, asl #3 ldrb r2, [r5] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L979 + bne .L982 ldrb r1, [r5, #13] @ zero_extendqisi2 ldrh r3, [r5, #14] - ldrb r2, [r7, #1717] @ zero_extendqisi2 + ldrb r2, [r7, #2229] @ zero_extendqisi2 mul r1, r9, r1 and r3, r3, #65280 add r0, r7, r2, asl #2 mul r3, r3, r1 - str r3, [r0, #656] + str r3, [r0, #1168] ldrb r1, [r5, #23] @ zero_extendqisi2 cmp r1, #0 movne r3, r3, asl #1 - strne r3, [r0, #656] + strne r3, [r0, #1168] add r3, r2, #1 add r2, r4, r2 - strb r3, [r4, #1717] - strb r6, [r2, #1720] -.L979: + strb r3, [r4, #2229] + strb r6, [r2, #2232] +.L982: add r6, r6, #1 cmp r6, #4 - bne .L981 - b .L982 -.L991: + bne .L984 + b .L985 +.L994: .align 2 -.L990: +.L993: .word .LANCHOR1+472 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1720 - .word .LANCHOR0+1588 - .word .LANCHOR0+1556 - .word .LANCHOR2-2096 + .word .LANCHOR0+2232 + .word .LANCHOR0+2100 + .word .LANCHOR0+2068 + .word .LANCHOR2-572 .fnend .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 @@ -6274,45 +6249,45 @@ ftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r2, .L997 - ldr r0, .L997+4 + ldr r2, .L1000 + ldr r0, .L1000+4 mov ip, #1 - ldr r3, [r2, #692] + ldr r3, [r2, #1204] ldrb r1, [r3, #9] @ zero_extendqisi2 ldr r3, [r2, #4] smulbb r3, r1, r3 strh r3, [r4, #4] @ unaligned - ldrb r3, [r2, #1792] @ zero_extendqisi2 + ldrb r3, [r2, #2304] @ zero_extendqisi2 strb r3, [r4, #7] - ldr r3, [r2, #1912] + ldr r3, [r2, #2424] str r3, [r4] @ unaligned - ldr r3, [r2, #692] + ldr r3, [r2, #1204] ldrb r1, [r3, #9] @ zero_extendqisi2 strb r1, [r4, #6] mov r1, #32 strb r1, [r4, #8] - ldrb r1, [r2, #1717] @ zero_extendqisi2 + ldrb r1, [r2, #2229] @ zero_extendqisi2 ldrb r3, [r3, #7] @ zero_extendqisi2 strb r3, [r4, #9] mov r3, #0 strb r3, [r4, #10] -.L993: +.L996: uxtb r2, r3 cmp r2, r1 - bcs .L996 + bcs .L999 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 .L993 -.L996: + b .L996 +.L999: ldmfd sp!, {r4, pc} -.L998: +.L1001: .align 2 -.L997: +.L1000: .word .LANCHOR0 - .word .LANCHOR0+1720 + .word .LANCHOR0+2232 .fnend .size ftl_read_flash_info, .-ftl_read_flash_info .align 2 @@ -6325,392 +6300,391 @@ FtlMemInit: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r6, #0 - ldr r4, .L1104 + ldr r4, .L1107 mvn r2, #0 - ldr r5, .L1104+4 + ldr r5, .L1107+4 mov r1, #32 - sub r3, r4, #2096 + sub r3, r4, #572 mov r0, #1024 - str r6, [r4, #-2104] + str r6, [r4, #-568] mov r8, #12 - strh r6, [r3, #-12] @ movhi + strh r6, [r3] @ movhi movw r3, #65535 - str r3, [r4, #-2096] - sub r3, r4, #3168 - str r6, [r4, #-3752] - movw r10, #1804 + str r3, [r4, #-560] + sub r3, r4, #2656 + str r6, [r4, #-3240] + movw r10, #2316 strh r2, [r3, #-14] @ movhi mov r7, #36 strh r2, [r3, #-12] @ movhi strh r2, [r3, #-10] @ movhi strh r2, [r3, #-8] @ movhi - sub r2, r4, #3232 + sub r2, r4, #2720 strh r6, [r3, #-6] @ movhi - sub r3, r4, #2080 + sub r3, r4, #548 strh r1, [r2, #-4] @ movhi mov r1, #128 - strh r6, [r3, #-4] @ movhi - sub r3, r4, #3136 + strh r6, [r3] @ movhi + sub r3, r4, #2624 strh r1, [r2, #-2] @ movhi - sub r2, r4, #3216 + sub r2, r4, #2704 strh r6, [r3, #-2] @ movhi - movw r3, #1878 + movw r3, #2390 strh r6, [r2, #-12] @ movhi - str r6, [r4, #-3848] - str r6, [r4, #-3844] - str r6, [r4, #-3860] - str r6, [r4, #-3872] - str r6, [r4, #-3876] - str r6, [r4, #-3868] - str r6, [r4, #-3864] - str r6, [r4, #-3880] - str r6, [r4, #-3840] - str r6, [r4, #-3836] - str r6, [r5, #4064] - str r6, [r4, #-3828] - str r6, [r4, #-3824] - str r6, [r4, #-2100] - str r6, [r4, #-3224] - str r6, [r4, #-2092] - str r6, [r4, #-3232] - str r6, [r4, #-2088] + str r6, [r4, #-3336] + 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, #-3324] + str r6, [r4, #-3608] + str r6, [r4, #-3316] + str r6, [r4, #-3312] + str r6, [r4, #-564] + str r6, [r4, #-2712] + str r6, [r4, #-556] + str r6, [r4, #-2720] + str r6, [r4, #-552] ldrh r1, [r5, r3] bl __aeabi_idiv - movw r3, #1804 + movw r3, #2316 ldrh r3, [r5, r3] - str r6, [r5, #1924] - movw r6, #1876 + str r6, [r5, #2436] + movw r6, #2388 mov r3, r3, asl #2 cmp r0, r3 - str r0, [r4, #-2080] + str r0, [r4, #-544] ldrh r0, [r5, r6] - strhi r3, [r4, #-2080] + strhi r3, [r4, #-544] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-3196] + str r0, [r4, #-2684] ldrh r0, [r5, r6] mul r0, r8, r0 bl ftl_malloc ldrh r6, [r5, r10] mul r6, r7, r6 mov r9, r6, asl #3 - str r0, [r4, #-3188] + str r0, [r4, #-2676] mov r0, r9 bl ftl_malloc - str r0, [r4, #-2076] + str r0, [r4, #-540] mov r0, r6 bl ftl_malloc - str r0, [r4, #-2072] + str r0, [r4, #-536] mov r0, r9 bl ftl_malloc - movw r9, #1882 - str r0, [r4, #-2068] + movw r9, #2394 + str r0, [r4, #-532] mov r0, r6 bl ftl_malloc - str r0, [r5, #4056] + str r0, [r4, #-3616] mov r0, r6 bl ftl_malloc - str r0, [r4, #-3204] - ldr r0, [r4, #-2080] + 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, #1884 + movw r7, #2396 mov r3, r3, asl #1 add r3, r3, #1 - str r3, [r4, #-3200] - str r0, [r5, #1928] + str r3, [r4, #-2688] + str r0, [r5, #2440] mov r0, r6 bl ftl_malloc - str r0, [r4, #-2064] + str r0, [r4, #-528] mov r0, r6 bl ftl_malloc - str r0, [r4, #-2060] + str r0, [r4, #-524] mov r0, r6 bl ftl_malloc - str r0, [r4, #-2056] - ldr r0, [r4, #-3200] + str r0, [r4, #-520] + ldr r0, [r4, #-2688] mul r0, r0, r6 bl ftl_malloc - str r0, [r4, #-3212] - ldr r0, [r4, #-2080] + str r0, [r4, #-2700] + ldr r0, [r4, #-544] mul r0, r0, r6 bl ftl_malloc - str r0, [r4, #-2052] + str r0, [r4, #-516] mov r0, r6 bl ftl_malloc - str r0, [r4, #-2048] + str r0, [r4, #-512] mov r0, r6 bl ftl_malloc - str r0, [r4, #-2044] - ldr r0, [r4, #-3200] + 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, #-3216] + str r0, [r4, #-2704] mov r0, r6 bl ftl_malloc - str r0, [r4, #-2040] + str r0, [r4, #-504] mov r0, r6, asl #3 bl ftl_malloc ldrh r3, [r5, r7] - ldr r6, .L1104+8 - add r6, r6, #48 - str r0, [r4, #-2036] - ldr r0, [r4, #-3200] + 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, #1814 - str r0, [r4, #-3208] - ldr r0, [r4, #-2080] + movw r7, #2326 + str r0, [r4, #-2696] + ldr r0, [r4, #-544] mul r0, r0, r3 bl ftl_malloc - str r0, [r4, #-2032] + str r0, [r4, #-496] ldrh r0, [r5, r7] mov r0, r0, asl #1 uxth r0, r0 - strh r0, [r6, #-60] @ movhi + strh r0, [r6] @ movhi bl ftl_malloc - str r0, [r4, #-2024] - ldrh r0, [r6, #-60] + str r0, [r4, #-488] + ldrh r0, [r6] add r0, r0, #544 add r0, r0, #3 mov r0, r0, lsr #9 - strh r0, [r6, #-60] @ movhi + strh r0, [r6] @ movhi mov r0, r0, asl #9 bl ftl_malloc ldrh r10, [r5, r7] mov r10, r10, asl #1 - str r0, [r4, #-2020] + str r0, [r4, #-484] add r0, r0, #32 - str r0, [r5, #4060] + str r0, [r4, #-3612] mov r0, r10 bl ftl_malloc - str r0, [r4, #-2016] + str r0, [r4, #-480] mov r0, r10 bl ftl_malloc - ldr r10, [r5, #1900] + ldr r10, [r5, #2412] mov r10, r10, asl #1 - str r0, [r4, #-4060] + str r0, [r4, #-3548] mov r0, r10 bl ftl_malloc - str r0, [r4, #-2012] + str r0, [r4, #-476] mov r0, r10 bl ftl_malloc - movw r10, #1892 - str r0, [r4, #-2008] + movw r10, #2404 + str r0, [r4, #-472] ldrh r0, [r5, r7] mov r0, r0, lsr #3 add r0, r0, #4 bl ftl_malloc - str r0, [r4, #-3884] + str r0, [r4, #-3372] ldrh r0, [r5, r10] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r5, #1920] + str r0, [r5, #2432] ldrh r0, [r5, r10] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-2004] + str r0, [r4, #-468] ldrh r0, [r5, r10] - movw r10, #1894 + movw r10, #2406 mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-2000] + str r0, [r4, #-464] ldrh r0, [r5, r10] mov r0, r0, asl #2 bl ftl_malloc ldrh r2, [r5, r10] mov r1, #0 mov r2, r2, asl #2 - str r0, [r4, #-1996] + str r0, [r4, #-460] bl ftl_memset - movw r3, #1908 + movw r3, #2420 ldrh r10, [r5, r3] mov r10, r10, asl #2 mov r0, r10 bl ftl_malloc - str r0, [r4, #-1992] + str r0, [r4, #-456] mov r0, r10 bl ftl_malloc - movw r10, #1910 - str r0, [r4, #-1988] - ldr r0, [r5, #1900] + movw r10, #2422 + str r0, [r4, #-452] + ldr r0, [r5, #2412] mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-1984] + str r0, [r4, #-448] ldrh r0, [r5, r10] mul r0, r8, r0 bl ftl_malloc ldrh r3, [r5, r10] - str r0, [r4, #-3896] + str r0, [r4, #-3384] ldrh r0, [r5, r9] mul r0, r0, r3 bl ftl_malloc ldrh r3, [r5, r7] - movw r7, #1826 - str r0, [r4, #-1980] + movw r7, #2338 + str r0, [r4, #-444] mov r0, #6 mul r0, r0, r3 bl ftl_malloc - movw r3, #1870 + movw r3, #2382 ldrh r3, [r5, r3] add r3, r3, #31 mov r3, r3, asr #5 - strh r3, [r6, #-8] @ movhi - str r0, [r4, #-4068] + strh r3, [r6, #52]! @ movhi + str r0, [r4, #-3556] ldrh r0, [r5, r7] mul r0, r0, r3 mov r0, r0, asl #2 bl ftl_malloc - ldrh r2, [r6, #-8] + ldrh r2, [r6] ldrh lr, [r5, r7] mov r3, #1 - ldr ip, .L1104+12 + ldr ip, .L1107+12 mov r2, r2, asl #2 mov r1, r2 - str r0, [r5, #1964] -.L1001: + str r0, [r5, #2476] +.L1004: cmp r3, lr - bcs .L1102 - ldr r0, [r5, #1964] + bcs .L1105 + ldr r0, [r5, #2476] add r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [ip, #4]! - b .L1001 -.L1102: - ldr r2, .L1104+16 + b .L1004 +.L1105: + ldr r2, .L1107+16 mov r1, #0 -.L1003: +.L1006: cmp r3, #8 addne r0, r2, r3, asl #2 addne r3, r3, #1 strne r1, [r0, #28] - bne .L1003 -.L1103: - ldr r2, [r4, #-2012] - ldr r3, .L1104 + bne .L1006 +.L1106: + ldr r2, [r4, #-476] + ldr r3, .L1107 cmp r2, #0 - bne .L1005 -.L1007: - ldr r1, .L1104+20 - ldr r0, .L1104+24 + bne .L1008 +.L1010: + ldr r1, .L1107+20 + ldr r0, .L1107+24 bl printk mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1005: - ldr r2, [r3, #-2008] +.L1008: + ldr r2, [r3, #-472] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-1992] + beq .L1010 + ldr r2, [r3, #-456] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-1984] + beq .L1010 + ldr r2, [r3, #-448] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-3896] + beq .L1010 + ldr r2, [r3, #-3384] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-1980] + beq .L1010 + ldr r2, [r3, #-444] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-4068] + beq .L1010 + ldr r2, [r3, #-3556] cmp r2, #0 - beq .L1007 - ldr r2, [r5, #1964] + beq .L1010 + ldr r2, [r5, #2476] cmp r2, #0 - beq .L1007 - ldr r3, [r3, #-4060] + beq .L1010 + ldr r3, [r3, #-3548] cmp r3, #0 - beq .L1007 - ldr r2, [r4, #-3196] - ldr r3, .L1104 + beq .L1010 + ldr r2, [r4, #-2684] + ldr r3, .L1107 cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-3188] + beq .L1010 + ldr r2, [r3, #-2676] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2076] + beq .L1010 + ldr r2, [r3, #-540] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2068] + beq .L1010 + ldr r2, [r3, #-532] cmp r2, #0 - beq .L1007 - ldr r2, [r5, #4056] + beq .L1010 + ldr r2, [r3, #-3616] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-3204] + beq .L1010 + ldr r2, [r3, #-2692] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2072] + beq .L1010 + ldr r2, [r3, #-536] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2064] + beq .L1010 + ldr r2, [r3, #-528] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2060] + beq .L1010 + ldr r2, [r3, #-524] cmp r2, #0 - beq .L1007 - ldr r3, [r3, #-2056] + beq .L1010 + ldr r3, [r3, #-520] cmp r3, #0 - beq .L1007 - ldr r2, [r4, #-3212] - ldr r3, .L1104 + beq .L1010 + ldr r2, [r4, #-2700] + ldr r3, .L1107 cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2048] + beq .L1010 + ldr r2, [r3, #-512] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2044] + beq .L1010 + ldr r2, [r3, #-508] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-3216] + beq .L1010 + ldr r2, [r3, #-2704] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2040] + beq .L1010 + ldr r2, [r3, #-504] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2036] + beq .L1010 + ldr r2, [r3, #-500] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-3208] + beq .L1010 + ldr r2, [r3, #-2696] cmp r2, #0 - beq .L1007 - ldr r2, .L1104+4 - ldr r1, [r2, #4060] - cmp r1, #0 - beq .L1007 - ldr r3, [r3, #-2024] + beq .L1010 + ldr r2, [r3, #-3612] + cmp r2, #0 + beq .L1010 + ldr r3, [r3, #-488] cmp r3, #0 - beq .L1007 - ldr r3, [r2, #1920] + beq .L1010 + ldr r3, .L1107+4 + ldr r3, [r3, #2432] cmp r3, #0 - beq .L1007 - ldr r3, .L1104 - ldr r2, [r3, #-2004] + beq .L1010 + ldr r3, .L1107 + ldr r2, [r3, #-468] cmp r2, #0 - beq .L1007 - ldr r2, [r3, #-2000] + beq .L1010 + ldr r2, [r3, #-464] cmp r2, #0 - beq .L1007 - ldr r3, [r3, #-1996] + beq .L1010 + ldr r3, [r3, #-460] cmp r3, #0 - beq .L1007 + beq .L1010 mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1105: +.L1108: .align 2 -.L1104: +.L1107: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-2016 - .word .LANCHOR0+1964 - .word .LANCHOR0+1936 + .word .LANCHOR2-492 + .word .LANCHOR0+2476 + .word .LANCHOR0+2448 .word .LANCHOR3 .word .LC81 .fnend @@ -6722,11 +6696,11 @@ FtlBbt2Bitmap: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1112 + ldr r3, .L1115 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - ldrh r2, [r3, #-8] + ldrh r2, [r3] mov r0, r1 mov r5, r1 mov r1, #0 @@ -6734,11 +6708,11 @@ FtlBbt2Bitmap: mov r2, r2, asl #2 bl ftl_memset add r3, r4, #1020 - ldr ip, .L1112+4 + ldr ip, .L1115+4 add r3, r3, #2 sub r1, r4, #2 mov r4, #1 -.L1108: +.L1111: ldrh r2, [r1, #2]! cmp r2, r6 ldmeqfd sp!, {r4, r5, r6, pc} @@ -6751,13 +6725,13 @@ FtlBbt2Bitmap: ldrh r2, [ip, #6] add r2, r2, #1 strh r2, [ip, #6] @ movhi - bne .L1108 + bne .L1111 ldmfd sp!, {r4, r5, r6, pc} -.L1113: +.L1116: .align 2 -.L1112: - .word .LANCHOR2-1968 - .word .LANCHOR0+1936 +.L1115: + .word .LANCHOR2-440 + .word .LANCHOR0+2448 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap .align 2 @@ -6768,7 +6742,7 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1115 + ldr r0, .L1118 mvn r3, #0 mov r1, #255 mov r2, #16 @@ -6777,10 +6751,10 @@ FtlBbtMemInit: mov r3, #0 strh r3, [r0, #-6] @ movhi b ftl_memset -.L1116: +.L1119: .align 2 -.L1115: - .word .LANCHOR0+1936 +.L1118: + .word .LANCHOR0+2448 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit .align 2 @@ -6790,8 +6764,8 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L1119 - movw r2, #1996 + ldr r1, .L1122 + movw r2, #2508 stmfd sp!, {r4, lr} .save {r4, lr} add r3, r1, r2 @@ -6806,9 +6780,9 @@ FtlFreeSysBlkQueueInit: bl ftl_memset mov r0, r4 ldmfd sp!, {r4, pc} -.L1120: +.L1123: .align 2 -.L1119: +.L1122: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -6831,19 +6805,19 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r2, #0 -.L1122: +.L1125: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L1142 + bls .L1145 ldr r0, [r6, r3, asl #2] mov r1, #0 ubfx r0, r0, #10, #16 -.L1123: +.L1126: ldrh ip, [r4, #10] uxth r3, r1 cmp ip, r3 - bls .L1143 + bls .L1146 mov r3, r3, asl #1 add r1, r1, #1 ldrh ip, [r7, r3] @@ -6856,13 +6830,13 @@ ftl_free_no_use_map_blk: ldrneh ip, [r5, r3] addne ip, ip, #1 strneh ip, [r5, r3] @ movhi - b .L1123 -.L1143: + b .L1126 +.L1146: add r2, r2, #1 - b .L1122 -.L1142: - ldr r2, .L1145 - movw r3, #1874 + b .L1125 +.L1145: + ldr r2, .L1148 + movw r3, #2386 mov r8, #0 mov r1, r8 mov fp, r8 @@ -6871,36 +6845,36 @@ ftl_free_no_use_map_blk: mov r3, r3, asl #1 strh r2, [r5, r3] @ movhi ldrh r9, [r5] -.L1127: +.L1130: ldrh r3, [r4, #10] uxth r6, r8 cmp r3, r6 - bls .L1144 + bls .L1147 mov r2, r6, asl #1 ldrh r3, [r5, r2] cmp r9, r3 - bls .L1128 + bls .L1131 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 - bne .L1129 - b .L1130 -.L1128: + bne .L1132 + b .L1133 +.L1131: cmp r3, #0 - bne .L1130 + bne .L1133 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 movne r6, r1 - beq .L1130 - b .L1132 -.L1129: + beq .L1133 + b .L1135 +.L1132: cmp r3, #0 movne r1, r6 movne r9, r3 - bne .L1130 + bne .L1133 mov r9, r3 -.L1132: +.L1135: mov r1, #1 bl FtlFreeSysBlkQueueIn strh fp, [r10] @ movhi @@ -6908,15 +6882,15 @@ ftl_free_no_use_map_blk: mov r1, r6 sub r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1130: +.L1133: add r8, r8, #1 - b .L1127 -.L1144: + b .L1130 +.L1147: mov r0, r1 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1146: +.L1149: .align 2 -.L1145: +.L1148: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -6930,80 +6904,79 @@ FtlL2PDataInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r1, #0 - ldr r5, .L1152 + ldr r5, .L1155 mvn r6, #0 - ldr r4, .L1152+4 - ldr r2, [r5, #1900] - ldr r0, [r4, #-2008] + ldr r4, .L1155+4 + ldr r2, [r5, #2412] + ldr r0, [r4, #-472] mov r2, r2, asl #1 bl ftl_memset - movw r3, #1882 - movw r2, #1910 + movw r3, #2394 + movw r2, #2422 ldrh r3, [r5, r3] ldrh r2, [r5, r2] mov r1, #255 - ldr r0, [r4, #-1980] + ldr r0, [r4, #-444] mul r2, r2, r3 bl ftl_memset - ldr ip, .L1152+8 + ldr ip, .L1155+8 mov r1, #0 mov r3, r4 sub r7, ip, #28 mov r4, #12 mov r5, r1 -.L1148: +.L1151: ldrh r2, [ip] add lr, r1, #1 uxth r1, r1 - ldr r0, .L1152 + ldr r0, .L1155 cmp r2, r1 - bls .L1151 + bls .L1154 mul r0, r4, r1 - ldr r2, [r3, #-3896] + ldr r2, [r3, #-3384] add r8, r2, r0 str r5, [r8, #4] strh r6, [r2, r0] @ movhi - ldr r2, [r3, #-3896] + ldr r2, [r3, #-3384] add r0, r2, r0 ldrh r2, [r7] mul r2, r1, r2 - ldr r1, [r3, #-1980] + ldr r1, [r3, #-444] bic r2, r2, #3 add r2, r1, r2 mov r1, lr str r2, [r0, #8] - b .L1148 -.L1151: - ldr r1, .L1152+12 - mvn ip, #0 - sub r2, r1, #4 - strh ip, [r1, #-2] @ movhi - strh ip, [r1, #-4] @ movhi - ldr ip, [r0, #1900] - strh ip, [r1, #6] @ movhi - ldrh r1, [r1, #40] - ldr ip, .L1152+16 + b .L1151 +.L1154: + ldr r2, .L1155+12 + mvn r1, #0 + strh r1, [r2, #2] @ movhi + strh r1, [r2] @ movhi + ldr r1, [r0, #2412] + strh r1, [r2, #10] @ movhi + ldr r1, .L1155+16 + strh r1, [r2, #4] @ movhi + ldrh r1, [r2, #44] strh r1, [r2, #8] @ movhi - movw r1, #1908 + movw r1, #2420 ldrh r1, [r0, r1] - strh ip, [r2, #4] @ movhi strh r1, [r2, #6] @ movhi - ldr r2, [r3, #-2012] - str r2, [r3, #-1960] - ldr r2, [r3, #-1984] - str r2, [r3, #-1956] - ldr r2, [r3, #-2008] - str r2, [r3, #-1952] - ldr r2, [r3, #-1992] - str r2, [r3, #-1948] + ldr r2, [r3, #-476] + str r2, [r3, #-424] + ldr r2, [r3, #-448] + str r2, [r3, #-420] + ldr r2, [r3, #-472] + str r2, [r3, #-416] + ldr r2, [r3, #-456] + str r2, [r3, #-412] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1153: +.L1156: .align 2 -.L1152: +.L1155: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1910 - .word .LANCHOR2-1968 + .word .LANCHOR0+2422 + .word .LANCHOR2-436 .word -3902 .fnend .size FtlL2PDataInit, .-FtlL2PDataInit @@ -7017,41 +6990,41 @@ FtlVariablesInit: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mvn r3, #0 - ldr r6, .L1156 + ldr r5, .L1159 mov r4, #0 - ldr r5, .L1156+4 + ldr r6, .L1159+4 mov r1, r4 - sub r2, r6, #1920 - movw r7, #1814 - str r3, [r6, #-1908] + sub r2, r5, #384 + movw r7, #2326 + str r3, [r5, #-372] strh r3, [r2] @ movhi - movw r3, #1918 - strh r4, [r5, r3] @ movhi - movw r3, #1892 - ldrh r2, [r5, r3] - ldr r0, [r5, #1920] - str r4, [r6, #-1924] + movw r3, #2430 + strh r4, [r6, r3] @ movhi + movw r3, #2404 + ldrh r2, [r6, r3] + ldr r0, [r6, #2432] + str r4, [r5, #-388] mov r2, r2, asl #1 - str r4, [r6, #-1916] - str r4, [r6, #-1912] - str r4, [r5, #1796] + str r4, [r5, #-380] + str r4, [r5, #-376] + str r4, [r6, #2308] bl ftl_memset - ldrh r2, [r5, r7] + ldrh r2, [r6, r7] mov r1, r4 - ldr r0, [r5, #4060] + ldr r0, [r5, #-3612] mov r2, r2, asl #1 bl ftl_memset - ldrh r2, [r5, r7] + ldrh r2, [r6, r7] mov r1, r4 - ldr r0, [r6, #-2024] + ldr r0, [r5, #-488] mov r2, r2, asl #1 bl ftl_memset - add r0, r5, #4064 + sub r0, r5, #3600 mov r1, r4 mov r2, #48 - add r0, r0, #4 + sub r0, r0, #4 bl ftl_memset - sub r0, r6, #3744 + sub r0, r5, #3232 mov r1, r4 mov r2, #512 sub r0, r0, #4 @@ -7060,9 +7033,9 @@ FtlVariablesInit: bl FtlL2PDataInit mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1157: +.L1160: .align 2 -.L1156: +.L1159: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7076,43 +7049,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, #1814 - ldr r7, .L1170 + movw r3, #2326 + ldr r7, .L1173 mov r2, #6 - ldr r6, .L1170+4 + ldr r6, .L1173+4 mov r1, #0 .pad #28 sub sp, sp, #28 ldrh r3, [r7, r3] - ldr r0, [r6, #-4068] + ldr r0, [r6, #-3556] mov r5, r6 mov fp, r6 mul r2, r2, r3 bl ftl_memset - sub r2, r6, #4032 + sub r2, r6, #3520 mov r3, #0 - sub r1, r6, #4048 + sub r1, r6, #3536 strh r3, [r2, #-12] @ movhi - sub r2, r6, #2096 + sub r2, r6, #572 mov r4, r3 mov r8, r3 mov r9, r3 - str r3, [r6, #-4048] - str r3, [r6, #-4064] - str r3, [r6, #-4056] + str r3, [r6, #-3536] + str r3, [r6, #-3552] + str r3, [r6, #-3544] strh r3, [r1, #-4] @ movhi - strh r3, [r2, #-12] @ movhi + strh r3, [r2] @ movhi str r7, [sp, #8] str r1, [sp, #12] -.L1159: - ldr r3, .L1170+8 +.L1162: + ldr r3, .L1173+8 uxth r7, r4 sxth r10, r7 ldrh r2, [r3] cmp r10, r2 - bge .L1166 + bge .L1169 sub r3, r3, #8 - ldr r2, .L1170+12 + ldr r2, .L1173+12 mov ip, r7 ldrh r3, [r3] str r3, [sp] @@ -7120,16 +7093,16 @@ SupperBlkListInit: mov r2, #0 mov r6, r2 str r3, [sp, #4] -.L1167: +.L1170: ldr r3, [sp] sxth r1, r2 cmp r1, r3 - bge .L1169 + bge .L1172 ldr r3, [sp, #8] str r2, [sp, #20] add r1, r3, r1 str ip, [sp, #16] - ldrb r0, [r1, #1832] @ zero_extendqisi2 + ldrb r0, [r1, #2344] @ zero_extendqisi2 mov r1, ip bl V2P_block bl FtlBbmIsBadBlock @@ -7140,71 +7113,71 @@ SupperBlkListInit: add r2, r2, #1 addeq r6, r3, r6 uxtheq r6, r6 - b .L1167 -.L1169: + b .L1170 +.L1172: cmp r6, #0 - beq .L1162 + beq .L1165 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L1163 -.L1162: + b .L1166 +.L1165: sxth r7, r7 - ldr r2, [r5, #-4060] + ldr r2, [r5, #-3548] mvn r1, #0 mov r7, r7, asl #1 strh r1, [r2, r7] @ movhi -.L1163: +.L1166: mov r1, r10, asl #1 - ldr r2, [r5, #-4068] + ldr r2, [r5, #-3556] add r0, r1, r10 add r2, r2, r0, asl #1 strh r6, [r2, #4] @ movhi - ldr r2, .L1170+16 + ldr r2, .L1173+16 ldrh r0, [r2] cmp r10, r0 - beq .L1164 + beq .L1167 ldrh r0, [r2, #48] cmp r10, r0 - beq .L1164 + beq .L1167 ldrh r2, [r2, #96] cmp r10, r2 - beq .L1164 - ldr r3, [fp, #-4060] + beq .L1167 + ldr r3, [fp, #-3548] uxth r0, r4 ldrh r3, [r3, r1] cmp r3, #0 - bne .L1165 + bne .L1168 add r8, r8, #1 uxth r8, r8 bl INSERT_FREE_LIST - b .L1164 -.L1165: + b .L1167 +.L1168: add r9, r9, #1 uxth r9, r9 bl INSERT_DATA_LIST -.L1164: +.L1167: add r4, r4, #1 - b .L1159 -.L1166: + b .L1162 +.L1169: ldr r3, [sp, #12] mov r0, #0 strh r9, [r3, #-4] @ movhi - ldr r3, .L1170+20 + ldr r3, .L1173+20 strh r8, [r3, #-12] @ movhi add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1171: +.L1174: .align 2 -.L1170: +.L1173: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1812 - .word .LANCHOR0+1872 - .word .LANCHOR2-4040 - .word .LANCHOR2-4032 + .word .LANCHOR0+2324 + .word .LANCHOR0+2384 + .word .LANCHOR2-3528 + .word .LANCHOR2-3520 .fnend .size SupperBlkListInit, .-SupperBlkListInit .align 2 @@ -7216,13 +7189,13 @@ FtlGcPageVarInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - movw r5, #1876 - ldr r4, .L1174 + movw r5, #2388 + ldr r4, .L1177 mov r2, #0 - ldr r6, .L1174+4 + ldr r6, .L1177+4 mov r1, #255 - sub r3, r4, #3184 - ldr r0, [r4, #-3196] + sub r3, r4, #2672 + ldr r0, [r4, #-2684] strh r2, [r3, #-8] @ movhi strh r2, [r3] @ movhi ldrh r2, [r6, r5] @@ -7230,15 +7203,15 @@ FtlGcPageVarInit: bl ftl_memset ldrh r3, [r6, r5] mov r2, #12 - ldr r0, [r4, #-3188] + ldr r0, [r4, #-2676] mov r1, #255 mul r2, r2, r3 bl ftl_memset ldmfd sp!, {r4, r5, r6, lr} b FtlGcBufInit -.L1175: +.L1178: .align 2 -.L1174: +.L1177: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7264,14 +7237,14 @@ FlashReadIdbData: stmfd sp!, {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L1179 + ldr r1, .L1182 bl ftl_memcpy mov r0, #0 ldmfd sp!, {r3, pc} -.L1180: +.L1183: .align 2 -.L1179: - .word .LANCHOR2-1904 +.L1182: + .word .LANCHOR2-368 .fnend .size FlashReadIdbData, .-FlashReadIdbData .align 2 @@ -7284,43 +7257,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, .L1194 -.L1185: + ldr r8, .L1197 +.L1188: mov r7, r4, asl #5 - ldr r1, .L1194+4 + ldr r1, .L1197+4 add r0, r7, #1 ldrb r2, [r8, r4, asl #5] @ zero_extendqisi2 add r0, r8, r0 - ldr r6, .L1194+8 + ldr r6, .L1197+8 bl FlashMemCmp8 add r9, r6, #508 subs r5, r0, #0 - bne .L1182 + bne .L1185 adds r9, r9, r7 - beq .L1188 + beq .L1191 add r4, r6, r7 mov r3, r5 - ldr r1, .L1194+12 + ldr r1, .L1197+12 ldrb r2, [r4, #530] @ zero_extendqisi2 - b .L1187 -.L1182: + b .L1190 +.L1185: add r4, r4, #1 - cmp r4, #81 - bne .L1185 - b .L1188 -.L1193: + cmp r4, #83 + bne .L1188 + b .L1191 +.L1196: add r3, r3, #1 cmp r3, #4 - beq .L1186 -.L1187: + beq .L1189 +.L1190: ldrb r0, [r1, r3, asl #5] @ zero_extendqisi2 cmp r0, r2 - bne .L1193 -.L1186: - ldr r4, .L1194+16 + bne .L1196 +.L1189: + ldr r4, .L1197+16 mov r2, #32 - ldr r1, .L1194+12 - ldr r0, .L1194+20 + ldr r1, .L1197+12 + ldr r0, .L1197+20 add r1, r1, r3, asl #5 bl ftl_memcpy mov r0, r4 @@ -7329,19 +7302,19 @@ FlashLoadPhyInfoInRam: bl ftl_memcpy ldrh r0, [r4, #10] bl FlashBlockAlignInit - b .L1183 -.L1188: + b .L1186 +.L1191: mvn r5, #0 -.L1183: +.L1186: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1195: +.L1198: .align 2 -.L1194: +.L1197: .word .LANCHOR1+508 - .word .LANCHOR0+1556 + .word .LANCHOR0+2068 .word .LANCHOR1 - .word .LANCHOR1+3100 + .word .LANCHOR1+3164 .word .LANCHOR1+472 .word .LANCHOR0+44 .fnend @@ -7361,14 +7334,14 @@ NandcCopy1KB: ldr r5, [sp, #16] add r6, r0, #512 add r2, r2, r4, asl #9 - bne .L1197 + bne .L1200 cmp r3, #0 - beq .L1198 + beq .L1201 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L1198: +.L1201: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} ldrb r3, [r5, #2] @ zero_extendqisi2 @@ -7383,14 +7356,14 @@ NandcCopy1KB: orr r3, r3, r2, asl #24 str r3, [r6, r4, asl #4] ldmfd sp!, {r4, r5, r6, pc} -.L1197: +.L1200: cmp r3, #0 - beq .L1201 + beq .L1204 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L1201: +.L1204: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} mov r4, r4, lsr #1 @@ -7415,13 +7388,13 @@ ftl_memcpy32: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mov r3, #0 -.L1214: +.L1217: cmp r3, r2 ldrne ip, [r1, r3, asl #2] strne ip, [r0, r3, asl #2] addne r3, r3, #1 - bne .L1214 -.L1216: + bne .L1217 +.L1219: bx lr .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -7444,12 +7417,12 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1219 + ldr r3, .L1222 ldr r0, [r3] b jiffies_to_msecs -.L1220: +.L1223: .align 2 -.L1219: +.L1222: .word jiffies .fnend .size timer_get_time, .-timer_get_time @@ -7460,13 +7433,13 @@ FlashSramLoadStore: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L1225 + ldr ip, .L1228 cmp r2, #0 moveq r2, r3 - ldr ip, [ip, #144] + ldr ip, [ip, #1680] add ip, ip, #4096 add r1, ip, r1 - beq .L1224 + beq .L1227 str lr, [sp, #-4]! .save {lr} mov lr, r0 @@ -7474,11 +7447,11 @@ FlashSramLoadStore: mov r1, lr ldr lr, [sp], #4 mov r2, r3 -.L1224: +.L1227: b ftl_memcpy -.L1226: +.L1229: .align 2 -.L1225: +.L1228: .word .LANCHOR2 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore @@ -7523,12 +7496,12 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1231 - ldr r0, [r3, #1912] + ldr r3, .L1234 + ldr r0, [r3, #2424] bx lr -.L1232: +.L1235: .align 2 -.L1231: +.L1234: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -7581,47 +7554,47 @@ rknand_print_hex: mov r7, r2 mov r8, r3 mov r4, r5 -.L1237: +.L1240: cmp r4, r8 - beq .L1246 + beq .L1249 cmp r5, #0 - bne .L1238 - ldr r0, .L1247 + bne .L1241 + ldr r0, .L1250 mov r1, r9 mov r2, r6 mov r3, r4 bl printk -.L1238: +.L1241: cmp r7, #4 - ldreq r0, .L1247+4 + ldreq r0, .L1250+4 ldreq r1, [r6, r4, asl #2] - beq .L1245 + beq .L1248 cmp r7, #2 moveq r3, r4, asl #1 - ldreq r0, .L1247+4 + ldreq r0, .L1250+4 ldreqsh r1, [r6, r3] - ldrne r0, .L1247+4 + ldrne r0, .L1250+4 ldrneb r1, [r6, r4] @ zero_extendqisi2 -.L1245: +.L1248: add r5, r5, #1 bl printk cmp r5, #15 - bls .L1242 - ldr r0, .L1247+8 + bls .L1245 + ldr r0, .L1250+8 mov r5, #0 - ldr r1, .L1247+12 + ldr r1, .L1250+12 bl printk -.L1242: +.L1245: add r4, r4, #1 - b .L1237 -.L1246: - ldr r0, .L1247+8 - ldr r1, .L1247+12 + b .L1240 +.L1249: + ldr r0, .L1250+8 + ldr r1, .L1250+12 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L1248: +.L1251: .align 2 -.L1247: +.L1250: .word .LC82 .word .LC83 .word .LC76 @@ -7638,152 +7611,152 @@ 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, .L1358 + ldr r7, .L1361 mvn r3, #83 mvn r1, #82 mvn r2, #81 .pad #44 sub sp, sp, #44 mov r4, r0 - strb r3, [r7, #702] + strb r3, [r7, #1214] mvn r3, #80 - strb r0, [r7, #698] - strb r1, [r7, #703] - strb r2, [r7, #704] - strb r3, [r7, #705] - bne .L1250 + strb r0, [r7, #1210] + strb r1, [r7, #1215] + strb r2, [r7, #1216] + strb r3, [r7, #1217] + bne .L1253 mvn r3, #88 - strb r3, [r7, #702] - ldr r3, .L1358+4 + strb r3, [r7, #1214] + ldr r3, .L1361+4 mvn r2, #8 mov r5, #7 - strb r2, [r3, #3245] - b .L1311 -.L1250: - cmp r0, #3 - bne .L1252 - mvn r3, #79 - strb r3, [r7, #702] - mvn r3, #78 - strb r3, [r7, #703] - mvn r3, #77 - strb r3, [r7, #704] - mvn r3, #76 - strb r3, [r7, #705] - mvn r3, #75 - strb r3, [r7, #706] - mvn r3, #74 - strb r3, [r7, #707] - mvn r3, #73 - strb r3, [r7, #708] - mvn r3, #72 - b .L1352 -.L1252: - cmp r0, #4 - bne .L1253 - mvn r0, #51 - strb r1, [r7, #707] - strb r0, [r7, #702] - mvn r0, #64 - strb r2, [r7, #708] - strb r0, [r7, #703] - mvn r0, #85 - strb r0, [r7, #704] - mvn r0, #84 - strb r0, [r7, #705] - mvn r0, #50 - strb r0, [r7, #706] -.L1352: - mov r5, #8 - strb r3, [r7, #709] - mov r6, r5 - b .L1251 + strb r2, [r3, #3309] + b .L1314 .L1253: + cmp r0, #3 + bne .L1255 + mvn r3, #79 + strb r3, [r7, #1214] + mvn r3, #78 + strb r3, [r7, #1215] + mvn r3, #77 + strb r3, [r7, #1216] + mvn r3, #76 + strb r3, [r7, #1217] + mvn r3, #75 + strb r3, [r7, #1218] + mvn r3, #74 + strb r3, [r7, #1219] + mvn r3, #73 + strb r3, [r7, #1220] + mvn r3, #72 + b .L1355 +.L1255: + cmp r0, #4 + bne .L1256 + mvn r0, #51 + strb r1, [r7, #1219] + strb r0, [r7, #1214] + mvn r0, #64 + strb r2, [r7, #1220] + strb r0, [r7, #1215] + mvn r0, #85 + strb r0, [r7, #1216] + mvn r0, #84 + strb r0, [r7, #1217] + mvn r0, #50 + strb r0, [r7, #1218] +.L1355: + mov r5, #8 + strb r3, [r7, #1221] + mov r6, r5 + b .L1254 +.L1256: cmp r0, #5 - bne .L1254 + bne .L1257 mov r3, #56 mov r5, #8 - strb r3, [r7, #702] + strb r3, [r7, #1214] mov r3, #57 - strb r3, [r7, #703] + strb r3, [r7, #1215] mov r3, #58 - strb r3, [r7, #704] + strb r3, [r7, #1216] mov r3, #59 - strb r3, [r7, #705] - b .L1311 -.L1254: + strb r3, [r7, #1217] + b .L1314 +.L1257: cmp r0, #6 - bne .L1255 + bne .L1258 mov r3, #14 mov r5, #12 - strb r3, [r7, #702] + strb r3, [r7, #1214] mov r3, #15 - strb r3, [r7, #703] + strb r3, [r7, #1215] mov r3, #16 - strb r3, [r7, #704] + strb r3, [r7, #1216] mov r3, #17 - strb r3, [r7, #705] - b .L1311 -.L1255: + strb r3, [r7, #1217] + b .L1314 +.L1258: cmp r0, #7 - bne .L1256 + bne .L1259 mvn r3, #79 mov r5, #12 - strb r3, [r7, #702] + strb r3, [r7, #1214] mov r6, #10 mvn r3, #78 - strb r3, [r7, #703] + strb r3, [r7, #1215] mvn r3, #77 - strb r3, [r7, #704] + strb r3, [r7, #1216] mvn r3, #76 - strb r3, [r7, #705] + strb r3, [r7, #1217] mvn r3, #75 - strb r3, [r7, #706] + strb r3, [r7, #1218] mvn r3, #74 - strb r3, [r7, #707] + strb r3, [r7, #1219] mvn r3, #73 - strb r3, [r7, #708] + strb r3, [r7, #1220] mvn r3, #72 - strb r3, [r7, #709] + strb r3, [r7, #1221] mvn r3, #43 - strb r3, [r7, #710] + strb r3, [r7, #1222] mvn r3, #42 - strb r3, [r7, #711] - b .L1251 -.L1256: + strb r3, [r7, #1223] + b .L1254 +.L1259: cmp r0, #8 mov r5, #7 - bne .L1311 + bne .L1314 mov r3, #6 - strb r5, [r7, #703] - strb r3, [r7, #702] + strb r5, [r7, #1215] + strb r3, [r7, #1214] mov r5, #50 mov r3, #9 - strb r0, [r7, #704] - strb r3, [r7, #705] + strb r0, [r7, #1216] + strb r3, [r7, #1217] mov r6, #5 mov r3, #10 - strb r3, [r7, #706] - b .L1251 -.L1311: + strb r3, [r7, #1218] + b .L1254 +.L1314: mov r6, #4 -.L1251: +.L1254: sub r3, r4, #1 cmp r3, #1 - bhi .L1348 - ldr r10, .L1358+8 + bhi .L1351 + ldr r10, .L1361+8 mov r9, #0 -.L1257: - ldrb r1, [r7, #1717] @ zero_extendqisi2 +.L1260: + ldrb r1, [r7, #2229] @ zero_extendqisi2 uxtb r2, r9 - ldr r3, .L1358 + ldr r3, .L1361 cmp r1, r2 - bls .L1264 + bls .L1267 add r2, r3, r2 - ldr r4, .L1358+12 - ldr r1, .L1358+16 + ldr r4, .L1361+12 + ldr r1, .L1361+16 mov ip, #55 - ldrb r2, [r2, #1720] @ zero_extendqisi2 + ldrb r2, [r2, #2232] @ zero_extendqisi2 add r3, r3, r2, asl #3 add r4, r4, r2, asl #6 add r4, r4, #20 @@ -7792,7 +7765,7 @@ HynixGetReadRetryDefault: mov fp, r4 mov r2, r4 add r8, r0, r8, asl #8 -.L1259: +.L1262: str ip, [r8, #2056] mov r0, #80 ldrb r3, [r1, #1]! @ zero_extendqisi2 @@ -7809,23 +7782,23 @@ HynixGetReadRetryDefault: rsb r3, r4, r2 uxtb r3, r3 cmp r3, r6 - bcc .L1259 + bcc .L1262 mov r2, #0 -.L1260: +.L1263: add r0, r10, r2 mov r3, #1 -.L1261: +.L1264: 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 .L1261 + bne .L1264 add r2, r2, #1 add fp, fp, #1 cmp r2, #4 - bne .L1260 + bne .L1263 mov r3, #0 add r9, r9, #1 strb r3, [r4, #16] @@ -7835,11 +7808,11 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L1257 -.L1348: + b .L1260 +.L1351: sub r3, r4, #3 cmp r3, #5 - bhi .L1264 + bhi .L1267 smulbb r2, r6, r5 mov r3, r2, asl #4 mov r2, r2, asr #1 @@ -7847,28 +7820,28 @@ HynixGetReadRetryDefault: mov r3, r2, asl #1 str r3, [sp, #8] mov r3, #0 -.L1356: +.L1359: str r3, [sp, #16] ldrb r3, [sp, #16] @ zero_extendqisi2 str r3, [sp, #12] - ldr r3, .L1358 + ldr r3, .L1361 ldr r2, [sp, #12] - ldrb r3, [r3, #1717] @ zero_extendqisi2 + ldrb r3, [r3, #2229] @ zero_extendqisi2 cmp r3, r2 - bhi .L1309 -.L1264: - ldr r3, .L1358 - strb r6, [r3, #699] - strb r5, [r3, #700] + bhi .L1312 +.L1267: + ldr r3, .L1361 + 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} -.L1309: +.L1312: ldr r2, [sp, #12] - ldr r3, .L1358 + ldr r3, .L1361 add r3, r3, r2 - ldrb r10, [r3, #1720] @ zero_extendqisi2 - ldr r3, .L1358 + ldrb r10, [r3, #2232] @ zero_extendqisi2 + ldr r3, .L1361 add r3, r3, r10, asl #3 mov r0, r10 ldrb fp, [r3, #16] @ zero_extendqisi2 @@ -7879,55 +7852,55 @@ HynixGetReadRetryDefault: str r3, [r7, #2056] bl NandcWaitFlashReady cmp r4, #7 - ldreq r3, .L1358+12 + ldreq r3, .L1361+12 moveq r7, #160 mlaeq r7, r7, r10, r3 addeq r3, r7, #28 - beq .L1353 -.L1266: + beq .L1356 +.L1269: cmp r4, #8 - beq .L1268 - ldr r3, .L1358+12 + beq .L1271 + ldr r3, .L1361+12 add r7, r3, r10, asl #6 add r3, r7, #20 -.L1353: +.L1356: str r3, [sp, #20] cmp r4, #4 add r3, r8, fp, asl #8 mov r2, #54 str r2, [r3, #2056] - bne .L1269 + bne .L1272 add r9, r8, r9 mov r3, #255 str r3, [r9, #2052] mov r3, #64 str r3, [r9, #2048] mov r3, #204 - b .L1354 -.L1269: + b .L1357 +.L1272: sub r2, r4, #5 cmp r2, #1 - bhi .L1271 - ldr r2, .L1358 - ldrb r2, [r2, #702] @ zero_extendqisi2 + bhi .L1274 + ldr r2, .L1361 + ldrb r2, [r2, #1214] @ zero_extendqisi2 str r2, [r3, #2052] mov r2, #82 str r2, [r3, #2048] - b .L1270 -.L1271: + b .L1273 +.L1274: cmp r4, #7 - bne .L1270 + bne .L1273 add r9, r8, r9 mov r3, #174 str r3, [r9, #2052] mov r3, #0 str r3, [r9, #2048] mov r3, #176 -.L1354: +.L1357: str r3, [r9, #2052] mov r3, #77 str r3, [r9, #2048] -.L1270: +.L1273: add r3, r8, fp, asl #8 cmp r4, #6 mov r2, #22 @@ -7948,7 +7921,7 @@ HynixGetReadRetryDefault: str r2, [r3, #2052] mov r2, #0 str r2, [r3, #2052] -.L1310: +.L1313: add r3, r8, fp, asl #8 mov r2, #48 mov r0, r10 @@ -7967,134 +7940,134 @@ HynixGetReadRetryDefault: ldr r3, [sp, #24] orrs r3, r3, r2 movne ip, #16 - bne .L1274 + bne .L1277 cmp r4, #7 movne ip, #2 moveq ip, #32 -.L1274: - ldr r3, .L1358+20 +.L1277: + ldr r3, .L1361+20 add r0, r8, fp, asl #8 - ldr r3, [r3, #148] + ldr r3, [r3, #1684] mov r1, r3 -.L1275: +.L1278: ldr r2, [r0, #2048] strb r2, [r1], #1 rsb r2, r3, r1 uxtb r2, r2 cmp r2, ip - bcc .L1275 + bcc .L1278 ldr r2, [sp, #4] cmp r2, #0 - beq .L1276 + beq .L1279 mov r2, #0 -.L1278: +.L1281: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r1, r2 cmp ip, #50 - beq .L1277 + beq .L1280 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #5 - beq .L1277 + beq .L1280 add r2, r2, #1 cmp r2, #8 - bne .L1278 - b .L1279 -.L1277: + bne .L1281 + b .L1282 +.L1280: cmp r1, #6 - bls .L1280 -.L1279: - ldr r0, .L1358+24 + bls .L1283 +.L1282: + ldr r0, .L1361+24 mov r1, #0 bl printk -.L1281: - b .L1281 -.L1276: - cmp r4, #7 - bne .L1282 - ldr r2, [sp, #4] .L1284: + b .L1284 +.L1279: + cmp r4, #7 + bne .L1285 + ldr r2, [sp, #4] +.L1287: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r1, r2 cmp ip, #12 - beq .L1283 + beq .L1286 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #10 - beq .L1283 + beq .L1286 add r2, r2, #1 cmp r2, #8 - bne .L1284 - b .L1285 -.L1283: - cmp r1, #7 - bne .L1280 -.L1285: - ldr r0, .L1358+24 - mov r1, #0 - bl printk -.L1286: - b .L1286 -.L1282: - cmp r4, #6 - bne .L1280 - sub r2, r3, #1 - add r3, r3, #7 -.L1287: - ldrb r1, [r2, #1]! @ zero_extendqisi2 - cmp r1, #12 - beq .L1280 - ldrb r1, [r2, #8] @ zero_extendqisi2 - cmp r1, #4 - beq .L1280 - cmp r2, r3 bne .L1287 - ldr r0, .L1358+24 + b .L1288 +.L1286: + cmp r1, #7 + bne .L1283 +.L1288: + ldr r0, .L1361+24 mov r1, #0 bl printk .L1289: b .L1289 -.L1280: - ldr r1, .L1358+20 +.L1285: + cmp r4, #6 + bne .L1283 + sub r2, r3, #1 + add r3, r3, #7 +.L1290: + ldrb r1, [r2, #1]! @ zero_extendqisi2 + cmp r1, #12 + beq .L1283 + ldrb r1, [r2, #8] @ zero_extendqisi2 + cmp r1, #4 + beq .L1283 + cmp r2, r3 + bne .L1290 + ldr r0, .L1361+24 + mov r1, #0 + bl printk +.L1292: + b .L1292 +.L1283: + ldr r1, .L1361+20 ldr ip, [sp, #36] - ldr r2, [r1, #148] + ldr r2, [r1, #1684] add ip, r2, ip mov r3, r2 -.L1290: +.L1293: cmp r3, ip ldrne lr, [r0, #2048] strneb lr, [r3], #1 - bne .L1290 -.L1357: - ldr r3, [r1, #148] + bne .L1293 +.L1360: + ldr r3, [r1, #1684] mov r0, #8 ldr r1, [sp, #8] add r1, r3, r1 str r1, [sp, #28] -.L1293: +.L1296: ldr ip, [sp, #8] add lr, r1, ip -.L1292: +.L1295: ldrh ip, [r1] mvn ip, ip strh ip, [r1], #2 @ movhi cmp r1, lr - bne .L1292 + bne .L1295 ldr ip, [sp, #8] subs r0, r0, #1 add r1, r1, ip - bne .L1293 -.L1294: + bne .L1296 +.L1297: mov ip, #0 mov r0, ip -.L1297: +.L1300: mov r1, #1 mov lr, #0 mov r1, r1, asl r0 mov r7, #16 str r7, [sp, #32] mov r7, lr -.L1295: +.L1298: ldrh r9, [r3, lr] and r9, r9, r1 cmp r9, r1 @@ -8104,71 +8077,71 @@ HynixGetReadRetryDefault: ldr r9, [sp, #32] subs r9, r9, #1 str r9, [sp, #32] - bne .L1295 + bne .L1298 cmp r7, #8 add r0, r0, #1 orrhi ip, ip, r1 uxthhi ip, ip cmp r0, #16 - bne .L1297 + bne .L1300 ldr r1, [sp, #28] strh ip, [r3], #2 @ movhi cmp r3, r1 - bne .L1294 - ldr r3, .L1358+20 - ldr r1, [r3, #148] + bne .L1297 + ldr r3, .L1361+20 + ldr r1, [r3, #1684] mov r3, #0 sub r0, r1, #4 add ip, r1, #28 -.L1299: +.L1302: ldr lr, [r0, #4]! cmp lr, #0 addeq r3, r3, #1 cmp r0, ip - bne .L1299 + bne .L1302 cmp r3, #7 - ble .L1300 - ldr r0, .L1358+28 + ble .L1303 + ldr r0, .L1361+28 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L1358+24 + ldr r0, .L1361+24 mov r1, #0 bl printk -.L1301: - b .L1301 -.L1300: +.L1304: + b .L1304 +.L1303: cmp r4, #6 moveq r0, #4 - beq .L1302 + beq .L1305 cmp r4, #7 moveq r0, #10 - beq .L1302 + beq .L1305 ldr r3, [sp, #4] cmp r3, #0 moveq r0, #8 movne r0, #5 -.L1302: +.L1305: sub r9, r6, #1 ldr r1, [sp, #20] mov ip, #0 uxtb r9, r9 add r9, r9, #1 -.L1303: +.L1306: mov r7, r1 mov r3, r2 -.L1304: +.L1307: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [r7], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, r6 - bcc .L1304 + bcc .L1307 add ip, ip, #1 add r2, r2, r9 cmp ip, r5 add r1, r1, r0 - blt .L1303 + blt .L1306 add r7, r8, fp, asl #8 mov r3, #255 mov r0, r10 @@ -8176,33 +8149,33 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr r3, [sp, #24] cmp r3, #0 - beq .L1306 + beq .L1309 mov r3, #54 str r3, [r7, #2056] - ldr r3, .L1358 + ldr r3, .L1361 mvn r1, #0 ldr r0, [sp, #12] - ldrb r3, [r3, #702] @ zero_extendqisi2 + ldrb r3, [r3, #1214] @ zero_extendqisi2 str r3, [r7, #2052] mov r3, #0 str r3, [r7, #2048] mov r3, #22 str r3, [r7, #2056] bl FlashReadCmd - b .L1307 -.L1306: + b .L1310 +.L1309: ldr r3, [sp, #4] cmp r3, #0 movne r3, #190 moveq r3, #56 str r3, [r7, #2056] -.L1307: +.L1310: mov r0, r10 bl NandcWaitFlashReady ldr r3, [sp, #16] add r3, r3, #1 - b .L1356 -.L1268: + b .L1359 +.L1271: mov r3, #120 mov r2, #23 str r3, [r7, #2056] @@ -8224,21 +8197,21 @@ HynixGetReadRetryDefault: str r1, [r7, #2052] str r2, [r7, #2052] str r3, [r7, #2052] - ldr r3, .L1358+32 + ldr r3, .L1361+32 str r3, [sp, #20] - b .L1310 -.L1359: + b .L1313 +.L1362: .align 2 -.L1358: +.L1361: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR1+3228 - .word .LANCHOR0+698 - .word .LANCHOR0+701 + .word .LANCHOR1+3292 + .word .LANCHOR0+1210 + .word .LANCHOR0+1213 .word .LANCHOR2 .word .LC85 .word .LC86 - .word .LANCHOR0+726 + .word .LANCHOR0+1238 .fnend .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 @@ -8253,64 +8226,64 @@ FlashGetReadRetryDefault: bxeq lr sub r2, r3, #1 cmp r2, #7 - bhi .L1362 + bhi .L1365 b HynixGetReadRetryDefault -.L1362: +.L1365: cmp r3, #49 - bne .L1363 - ldr r2, .L1374 - ldr r0, .L1374+4 - ldr r1, .L1374+8 - strb r3, [r2, #698] + bne .L1366 + ldr r2, .L1377 + ldr r0, .L1377+4 + ldr r1, .L1377+8 + strb r3, [r2, #1210] mov r3, #4 - strb r3, [r2, #699] + strb r3, [r2, #1211] mov r3, #15 - strb r3, [r2, #700] + strb r3, [r2, #1212] mov r2, #64 - b .L1372 -.L1363: + b .L1375 +.L1366: sub r2, r3, #65 cmp r3, #33 cmpne r2, #1 - ldrls r2, .L1374 - strlsb r3, [r2, #698] + ldrls r2, .L1377 + strlsb r3, [r2, #1210] movls r3, #4 - bls .L1373 -.L1364: + bls .L1376 +.L1367: cmp r3, #34 cmpne r3, #67 - bne .L1365 - ldr r2, .L1374 - strb r3, [r2, #698] + bne .L1368 + ldr r2, .L1377 + strb r3, [r2, #1210] mov r3, #5 -.L1373: - strb r3, [r2, #699] +.L1376: + strb r3, [r2, #1211] mov r3, #7 - ldr r0, .L1374+4 - strb r3, [r2, #700] + ldr r0, .L1377+4 + strb r3, [r2, #1212] mov r2, #45 - ldr r1, .L1374+12 - b .L1372 -.L1365: + ldr r1, .L1377+12 + b .L1375 +.L1368: cmp r3, #35 cmpne r3, #68 bxne lr - ldr r2, .L1374 - ldr r0, .L1374+4 - ldr r1, .L1374+16 - strb r3, [r2, #698] + ldr r2, .L1377 + ldr r0, .L1377+4 + ldr r1, .L1377+16 + strb r3, [r2, #1210] mov r3, #5 - strb r3, [r2, #699] + strb r3, [r2, #1211] mov r3, #17 - strb r3, [r2, #700] + strb r3, [r2, #1212] mov r2, #95 -.L1372: - b ftl_memcpy .L1375: + b ftl_memcpy +.L1378: .align 2 -.L1374: +.L1377: .word .LANCHOR0 - .word .LANCHOR0+702 + .word .LANCHOR0+1214 .word .LANCHOR1+408 .word .LANCHOR1+256 .word .LANCHOR1+304 @@ -8326,146 +8299,153 @@ NandcXferComp: stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L1416 + ldr r5, .L1419 add r0, r5, r0, asl #3 - ldr r3, [r5, #1740] + ldr r3, [r5, #2252] ldr r4, [r0, #12] cmp r3, #3 - bls .L1407 + bls .L1410 ldr r3, [r4, #16] tst r3, #4 - beq .L1407 - mov r0, r4 - bl wait_for_nandc_xfer_completed + beq .L1410 ldr r6, [r4, #16] ldr r3, [r4, #8] ubfx r6, r6, #1, #1 cmp r6, #0 - movne r6, #0 str r3, [sp] - beq .L1389 -.L1379: + movne r6, #0 + beq .L1392 +.L1382: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L1387 - ldr r3, [r5, #1740] + bge .L1390 + ldr r3, [r5, #2252] cmp r3, #5 - bhi .L1380 -.L1383: + bhi .L1383 +.L1386: add r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L1379 + bne .L1385 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L1416+4 + ldr r0, .L1419+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L1416+8 + ldr r0, .L1419+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex - b .L1379 -.L1380: + b .L1385 +.L1383: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L1383 + beq .L1386 ldr r3, [sp, #4] tst r3, #131072 - beq .L1383 -.L1387: - ldr r3, [r5, #1776] - ldr r4, .L1416 + beq .L1386 +.L1390: + ldr r3, [r5, #2288] + ldr r4, .L1419 cmp r3, #0 - beq .L1388 + beq .L1391 ldr r1, [sp] mov r2, #0 - ldr r0, [r4, #1768] + ldr r0, [r4, #2280] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r4, #1772] + ldr r0, [r4, #2284] mov r2, #0 ldr r1, [sp] ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single - b .L1388 -.L1391: + b .L1391 +.L1385: + mov r0, #5 + mov r1, #10 + bl usleep_range + b .L1382 +.L1394: ldr r3, [r4, #8] add r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 cmp r3, #0 - bne .L1389 + bne .L1393 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L1416+12 + ldr r0, .L1419+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L1416+8 + ldr r0, .L1419+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L1389: +.L1393: + mov r0, #5 + mov r1, #10 + bl usleep_range +.L1392: ldr r3, [sp] tst r3, #1048576 - beq .L1391 - ldr r3, [r5, #1784] + beq .L1394 + ldr r3, [r5, #2296] cmp r3, #0 - beq .L1392 + beq .L1395 mov r0, r4 bl NandcSendDumpDataStart -.L1392: - ldr r3, [r5, #1776] - ldr r6, .L1416 +.L1395: + ldr r3, [r5, #2288] + ldr r6, .L1419 cmp r3, #0 - beq .L1393 + beq .L1396 ldr r1, [sp] mov r2, #1 - ldr r0, [r6, #1768] + ldr r0, [r6, #2280] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r6, #1772] + ldr r0, [r6, #2284] mov r2, #1 ldr r1, [sp] ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single -.L1393: - ldr r3, [r5, #1784] +.L1396: + ldr r3, [r5, #2296] cmp r3, #0 - beq .L1388 + beq .L1391 mov r0, r4 bl NandcSendDumpDataDone -.L1388: +.L1391: mov r3, #0 - str r3, [r5, #1776] - b .L1376 -.L1407: + str r3, [r5, #2288] + b .L1379 +.L1410: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] tst r3, #1048576 - beq .L1407 -.L1376: + beq .L1410 +.L1379: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L1417: +.L1420: .align 2 -.L1416: +.L1419: .word .LANCHOR0 .word .LC87 .word .LC88 @@ -8477,284 +8457,276 @@ NandcXferComp: .type NandcXferData, %function NandcXferData: .fnstart - @ args = 4, pretend = 0, frame = 88 + @ args = 4, pretend = 0, frame = 80 @ 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 r3, .L1467 - mov r8, r2 - .pad #100 - sub sp, sp, #100 - ldr r4, .L1467+4 - tst fp, #63 - mov r10, r0 - ldr r2, [r3] - mov r7, r1 - ldr r5, [sp, #136] - str r3, [sp, #16] - str r2, [sp, #92] - add r2, r4, r0, asl #3 - ldr r9, [r2, #12] - bne .L1419 - cmp r5, #0 - bne .L1420 - add r0, sp, #28 + mov r10, r3 + ldr r6, .L1469 + tst r10, #63 + .pad #92 + sub sp, sp, #92 + mov r9, r0 + add r3, r6, r0, asl #3 + mov r5, r1 + mov r7, r2 + ldr r8, [r3, #12] + bne .L1422 + ldr r3, [sp, #128] + cmp r3, #0 + bne .L1423 + add r0, sp, #24 mov r1, #255 mov r2, #64 bl ftl_memset - add r5, sp, #28 -.L1420: - mov r0, r10 - mov r1, r7 - mov r2, r8 - mov r3, #0 - str fp, [sp] - str r5, [sp, #4] - bl NandcXferStart - mov r0, r10 - bl NandcXferComp - cmp r7, #0 - movne r6, #0 - bne .L1421 - ldr r3, [r4, #1788] - mov r1, r8, lsr #1 - mov r2, r7 - cmp r3, #25 - mov r3, r7 - movcc r0, #64 - movcs r0, #128 + add r3, sp, #24 + str r3, [sp, #128] .L1423: - cmp r2, r1 - add r5, r5, #4 - add ip, r3, r0 - bcs .L1465 - ldr lr, [r4, #1756] - mov r3, r3, lsr #2 - add r2, r2, #1 - ldr r3, [lr, r3, asl #2] - mov lr, r3, lsr #8 - strb r3, [r5, #-4] - strb lr, [r5, #-3] - mov lr, r3, lsr #16 - mov r3, r3, lsr #24 - strb lr, [r5, #-2] - strb r3, [r5, #-1] - mov r3, ip - b .L1423 -.L1465: - ldr r1, [r4, #1788] + ldr r3, [sp, #128] + mov r0, r9 + mov r1, r5 + mov r2, r7 + str r10, [sp] + str r3, [sp, #4] + mov r3, #0 + bl NandcXferStart + mov r0, r9 + mov r1, r5 + bl NandcXferComp + cmp r5, #0 + movne fp, #0 + bne .L1424 + ldr r3, [r6, #2300] + mov r0, r7, lsr #1 + mov r2, r5 + mov r1, r5 + cmp r3, #25 + ldr r3, [sp, #128] + movcc lr, #64 + movcs lr, #128 +.L1426: + cmp r1, r0 + add r3, r3, #4 + add ip, r2, lr + bcs .L1467 + ldr r4, [r6, #2268] + mov r2, r2, lsr #2 + add r1, r1, #1 + ldr r2, [r4, r2, asl #2] + mov r4, r2, lsr #8 + strb r2, [r3, #-4] + strb r4, [r3, #-3] + mov r4, r2, lsr #16 + mov r2, r2, lsr #24 + strb r4, [r3, #-2] + strb r2, [r3, #-1] + mov r2, ip + b .L1426 +.L1467: + ldr r0, [r6, #2300] mov r2, #0 - ldr r0, [r4, #1740] - mov r8, r8, lsr #2 - mov r6, r2 -.L1425: - cmp r2, r8 - bcs .L1421 - cmp r1, #0 - beq .L1421 + ldr r1, [r6, #2252] + mov r7, r7, lsr #2 + mov fp, r2 +.L1428: + cmp r2, r7 + bcs .L1424 + cmp r0, #0 + beq .L1424 add r3, r2, #8 - ldr r3, [r9, r3, asl #2] - str r3, [sp, #24] - ldr r3, [sp, #24] + ldr r3, [r8, r3, asl #2] + str r3, [sp, #20] + ldr r3, [sp, #20] tst r3, #4 - bne .L1450 - ldr r4, [sp, #24] + bne .L1452 + ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L1450 - cmp r0, #5 - bls .L1427 - ldr ip, [sp, #24] - ldr r4, [sp, #24] - ldr r3, [sp, #24] + bne .L1452 + cmp r1, #5 + bls .L1430 + ldr ip, [sp, #20] + ldr r4, [sp, #20] + ldr r3, [sp, #20] ubfx ip, ip, #3, #5 - ldr lr, [sp, #24] + ldr lr, [sp, #20] ubfx r4, r4, #27, #1 ubfx r3, r3, #16, #5 ubfx lr, lr, #29, #1 orr ip, ip, r4, asl #5 orr r3, r3, lr, asl #5 cmp ip, r3 - ldr r3, [sp, #24] - ldrhi r4, [sp, #24] + ldr r3, [sp, #20] + ldrhi r4, [sp, #20] ubfxhi r3, r3, #3, #5 - ldrls r4, [sp, #24] + ldrls r4, [sp, #20] ubfxls r3, r3, #16, #5 ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L1464 -.L1427: - cmp r0, #3 - bls .L1429 - ldr ip, [sp, #24] - ldr r4, [sp, #24] - ldr r3, [sp, #24] + b .L1466 +.L1430: + cmp r1, #3 + bls .L1432 + ldr ip, [sp, #20] + ldr r4, [sp, #20] + ldr r3, [sp, #20] ubfx ip, ip, #3, #5 - ldr lr, [sp, #24] + ldr lr, [sp, #20] ubfx r4, r4, #28, #1 ubfx r3, r3, #16, #5 ubfx lr, lr, #30, #1 orr ip, ip, r4, asl #5 orr r3, r3, lr, asl #5 cmp ip, r3 - bls .L1430 - ldr r3, [sp, #24] - ldr r4, [sp, #24] - ubfx r3, r3, #3, #5 - ubfx r4, r4, #28, #1 -.L1464: + ldr r3, [sp, #20] + ldrhi r4, [sp, #20] + ubfxhi r3, r3, #3, #5 + ldrls r4, [sp, #20] + ubfxls r3, r3, #16, #5 + ubfxhi r4, r4, #28, #1 + ubfxls r4, r4, #30, #1 +.L1466: orr r4, r3, r4, asl #5 +.L1432: + cmp fp, r4 + movcc fp, r4 b .L1429 -.L1430: - ldr r5, [sp, #24] - ldr r4, [sp, #24] - ubfx r5, r5, #16, #5 - ubfx r4, r4, #30, #1 - orr r4, r5, r4, asl #5 +.L1452: + mvn fp, #0 .L1429: - cmp r6, r4 - movcc r6, r4 - b .L1426 -.L1450: - mvn r6, #0 -.L1426: add r2, r2, #1 - b .L1425 -.L1421: + b .L1428 +.L1424: mov r3, #0 - str r3, [r9, #16] - b .L1432 -.L1419: + str r3, [r8, #16] + b .L1435 +.L1422: cmp r1, #1 mov r4, #0 - bne .L1462 - mov r6, r4 -.L1433: - cmp r4, r8 - bcs .L1466 - cmp fp, #0 + bne .L1464 + mov fp, r4 +.L1436: + cmp r4, r7 + bcs .L1468 + ldr r2, [sp, #128] + cmp r10, #0 + addne r3, r10, r4, asl #9 + ldr r1, [sp, #128] + moveq r3, r10 + cmp r2, #0 and ip, r4, #3 - addne r3, fp, r4, asl #9 - mov r0, r9 - moveq r3, fp - cmp r5, #0 - mov r1, #1 - str ip, [sp, #12] + mov r0, r8 movne r2, #2 moveq r2, #0 - mla r2, r4, r2, r5 + mla r2, r4, r2, r1 + mov r1, #1 + str ip, [sp, #8] add r4, r4, #2 str r2, [sp] mov r2, ip bl NandcCopy1KB - mov r0, r10 + mov r0, r9 mov r1, #1 mov r2, #2 - ldr ip, [sp, #12] - str r6, [sp] - str r6, [sp, #4] + ldr ip, [sp, #8] + str fp, [sp] + str fp, [sp, #4] mov r3, ip bl NandcXferStart - mov r0, r10 + mov r0, r9 + mov r1, #1 bl NandcXferComp - b .L1433 -.L1466: - mov r6, #0 - b .L1432 -.L1462: + b .L1436 +.L1468: + mov fp, #0 + b .L1435 +.L1464: str r4, [sp] mov r1, r4 str r4, [sp, #4] mov r2, #2 mov r3, r4 - mov r6, r4 + mov fp, r4 bl NandcXferStart - str fp, [sp, #12] -.L1438: - cmp r4, r8 - bcs .L1432 - mov r0, r10 + str r10, [sp, #8] +.L1441: + cmp r4, r7 + bcs .L1435 + mov r0, r9 + mov r1, r5 bl NandcXferComp - ldr r3, [r9, #32] + ldr r3, [r8, #32] add ip, r4, #2 - cmp ip, r8 - str r3, [sp, #24] - bcs .L1439 + cmp ip, r7 + str r3, [sp, #20] + bcs .L1442 mov r3, #0 - mov r0, r10 + mov r0, r9 str r3, [sp] mov r1, r3 str r3, [sp, #4] mov r2, #2 and r3, ip, #3 - str ip, [sp, #20] + str ip, [sp, #12] bl NandcXferStart - ldr ip, [sp, #20] -.L1439: - ldr r3, [sp, #24] + ldr ip, [sp, #12] +.L1442: + ldr r3, [sp, #20] tst r3, #4 - mvnne r6, #0 - bne .L1440 - ldr r2, [sp, #24] - ldr r3, [sp, #24] + mvnne fp, #0 + bne .L1443 + ldr r2, [sp, #20] + ldr r3, [sp, #20] ubfx r2, r2, #3, #5 ubfx r3, r3, #27, #1 orr r3, r2, r3, asl #5 - cmp r6, r3 - movcc r6, r3 -.L1440: - cmp fp, #0 - ldr r3, [sp, #12] + cmp fp, r3 + movcc fp, r3 +.L1443: + ldr r1, [sp, #128] + cmp r10, #0 + ldr r3, [sp, #8] sub r2, ip, #2 - mov r0, r9 moveq r3, #0 - cmp r5, #0 + ldr r0, [sp, #128] + cmp r1, #0 and r2, r2, #3 - str ip, [sp, #20] + str ip, [sp, #12] movne r1, #2 moveq r1, #0 - mla r4, r4, r1, r5 + mla r4, r4, r1, r0 + mov r0, r8 mov r1, #0 str r4, [sp] bl NandcCopy1KB - ldr ip, [sp, #20] - ldr r3, [sp, #12] + ldr ip, [sp, #12] + ldr r3, [sp, #8] mov r4, ip add r3, r3, #1024 - str r3, [sp, #12] - b .L1438 -.L1432: - ldr r3, .L1467+4 - clz r7, r7 - mov r7, r7, lsr #5 - ldr r3, [r3, #1740] + str r3, [sp, #8] + b .L1441 +.L1435: + ldr r3, [r6, #2252] + clz r5, r5 cmp r3, #5 - movls r7, #0 - cmp r7, #0 - beq .L1444 - ldr r3, [r9] + mov r5, r5, lsr #5 + movls r5, #0 + cmp r5, #0 + beq .L1447 + ldr r3, [r8] and r2, r3, #139264 cmp r2, #139264 orreq r3, r3, #131072 - streq r3, [r9] - mvneq r6, #0 -.L1444: - ldr r3, [sp, #16] - mov r0, r6 - ldr r2, [sp, #92] - ldr r3, [r3] - cmp r2, r3 - beq .L1446 - bl __stack_chk_fail -.L1446: - add sp, sp, #100 + streq r3, [r8] + mvneq fp, #0 +.L1447: + mov r0, fp + add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1468: +.L1470: .align 2 -.L1467: - .word __stack_chk_guard +.L1469: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -8769,19 +8741,19 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1472 + ldr r3, .L1474 subs r4, r0, #0 mov r6, r1 mov r7, r2 ldrb r5, [r3, #481] @ zero_extendqisi2 - bne .L1470 - ldr r2, .L1472+4 + bne .L1472 + ldr r2, .L1474+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r2, [r2, #4] mul r2, r2, r3 cmp r1, r2 movcc r5, #4 -.L1470: +.L1472: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8804,9 +8776,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1473: +.L1475: .align 2 -.L1472: +.L1474: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8821,7 +8793,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, .L1501 + ldr r4, .L1503 .pad #20 sub sp, sp, #20 mov r10, r0 @@ -8830,14 +8802,14 @@ FlashDdrTunningRead: ldr r3, [r4, #76] ldr r3, [r3, #304] str r3, [sp, #8] - ldr r3, [r4, #1740] + ldr r3, [r4, #2252] cmp r3, #8 ldr r3, [sp, #56] movcc r9, #6 movcs r9, #12 cmp r3, #0 moveq r6, #1024 - beq .L1476 + beq .L1478 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 @@ -8850,43 +8822,43 @@ FlashDdrTunningRead: ldr r1, [sp] bl FlashReadRawPage mov r6, r0 - ldrb r0, [r4, #1716] @ zero_extendqisi2 + ldrb r0, [r4, #2228] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #1716] @ zero_extendqisi2 + ldrb r0, [r4, #2228] @ zero_extendqisi2 bl NandcSetMode cmn r6, #1 - bne .L1477 -.L1486: + bne .L1479 +.L1488: mvn r6, #0 - b .L1478 -.L1477: + b .L1480 +.L1479: mov r2, r6 - ldr r0, .L1501+4 + ldr r0, .L1503+4 ldr r1, [sp] bl printk cmp r6, #9 addls r4, r4, r10, asl #3 ldrls r3, [r4, #12] - ldr r4, .L1501+8 + ldr r4, .L1503+8 ldrls r2, [r3, #3840] ldrls r2, [r3] orrls r2, r2, #131072 strls r2, [r3] - ldr r3, [r4, #152] + ldr r3, [r4, #1688] add r3, r3, #1 - str r3, [r4, #152] + str r3, [r4, #1688] cmp r3, #2048 movcs r7, #0 - strcs r7, [r4, #152] + strcs r7, [r4, #1688] movcs fp, r7 - bcc .L1478 -.L1476: + bcc .L1480 +.L1478: mov r4, #0 mvn r8, #0 mov ip, r4 mov r5, r4 str r4, [sp, #4] -.L1484: +.L1486: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara @@ -8898,74 +8870,74 @@ FlashDdrTunningRead: add r3, r6, #1 cmp r0, r3 ldr ip, [sp, #12] - bhi .L1480 + bhi .L1482 cmp r0, #2 - bhi .L1490 + bhi .L1492 add r5, r5, #1 cmp r5, #9 - bls .L1490 + bls .L1492 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L1482 -.L1480: + b .L1484 +.L1482: ldr r3, [sp, #4] cmp r3, r5 - bcs .L1491 + bcs .L1493 cmp r5, #7 rsb ip, r5, r4 - bhi .L1492 + bhi .L1494 str r5, [sp, #4] - b .L1491 -.L1490: + b .L1493 +.L1492: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L1481 -.L1491: + b .L1483 +.L1493: mov r5, #0 -.L1481: +.L1483: add r9, r9, #2 cmp r9, #69 - bls .L1484 -.L1482: + bls .L1486 +.L1484: ldr r3, [sp, #4] cmp r3, r5 movcs r4, ip - b .L1483 -.L1492: + b .L1485 +.L1494: mov r4, ip -.L1483: +.L1485: cmp r4, #0 - beq .L1485 - ldr r0, .L1501+12 + beq .L1487 + ldr r0, .L1503+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1485: +.L1487: cmn r8, #1 - bne .L1478 - ldr r0, .L1501+16 + bne .L1480 + ldr r0, .L1503+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L1486 + beq .L1488 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1478: +.L1480: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1502: +.L1504: .align 2 -.L1501: +.L1503: .word .LANCHOR0 .word .LC90 .word .LANCHOR2 @@ -8990,19 +8962,19 @@ FlashReadPage: bl FlashReadRawPage cmn r0, #1 mov r4, r0 - bne .L1504 - ldr r9, .L1524 + bne .L1506 + ldr r9, .L1526 ldrb fp, [r9, #8] @ zero_extendqisi2 mov r10, r9 cmp fp, #0 - bne .L1505 -.L1507: - ldrb r3, [r10, #1732] @ zero_extendqisi2 - ldr r9, .L1524 + bne .L1507 +.L1509: + ldrb r3, [r10, #2244] @ zero_extendqisi2 + ldr r9, .L1526 cmp r3, #0 - beq .L1504 - b .L1523 -.L1505: + beq .L1506 + b .L1525 +.L1507: mov r3, #0 mov r0, r5 strb r3, [r9, #8] @@ -9013,9 +8985,9 @@ FlashReadPage: strb fp, [r9, #8] cmn r0, #1 movne r4, r0 - beq .L1507 - b .L1504 -.L1523: + beq .L1509 + b .L1506 +.L1525: ldr r3, [r9, #76] mov r0, r5 mov r1, r6 @@ -9027,22 +8999,22 @@ FlashReadPage: bl FlashDdrTunningRead cmn r0, #1 mov r4, r0 - beq .L1508 - ldrb r3, [r9, #1792] @ zero_extendqisi2 + beq .L1510 + ldrb r3, [r9, #2304] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1504 -.L1508: + bls .L1506 +.L1510: ubfx r0, r10, #8, #8 bl NandcSetDdrPara -.L1504: - ldr r9, .L1524+4 - ldr ip, [r9, #156] +.L1506: + ldr r9, .L1526+4 + ldr ip, [r9, #1692] adds r3, ip, #0 movne r3, #1 cmn r4, #1 movne r3, #0 cmp r3, #0 - beq .L1509 + beq .L1511 mov r1, r6 mov r2, r8 mov r3, r7 @@ -9051,18 +9023,18 @@ FlashReadPage: mov r2, r5 mov r3, r6 mov r4, r0 - ldr r0, .L1524+8 + ldr r0, .L1526+8 mov r1, r4 bl printk cmn r4, #1 - bne .L1509 - ldr r3, .L1524 + bne .L1511 + ldr r3, .L1526 ldrb r3, [r3, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L1509 + beq .L1511 mov r0, r5 bl flash_enter_slc_mode - ldr ip, [r9, #156] + ldr ip, [r9, #1692] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9071,14 +9043,14 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1509: +.L1511: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1525: +.L1527: .align 2 -.L1524: +.L1526: .word .LANCHOR0 .word .LANCHOR2 .word .LC93 @@ -9095,12 +9067,12 @@ FlashDdrParaScan: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r0 - ldr r5, .L1536 + ldr r5, .L1538 mov r6, r1 mov r4, #0 - ldrb r0, [r5, #1716] @ zero_extendqisi2 + ldrb r0, [r5, #2228] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #1716] @ zero_extendqisi2 + ldrb r0, [r5, #2228] @ zero_extendqisi2 bl NandcSetMode mov r1, r6 mov r2, r4 @@ -9117,27 +9089,27 @@ FlashDdrParaScan: mov r3, r5 cmn r0, #1 cmnne r8, #1 - bne .L1527 - ldrb r2, [r5, #1716] @ zero_extendqisi2 + bne .L1529 + ldrb r2, [r5, #2228] @ zero_extendqisi2 tst r2, #1 - beq .L1527 + beq .L1529 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - strb r4, [r5, #1732] - b .L1528 -.L1527: + strb r4, [r5, #2244] + b .L1530 +.L1529: mov r2, #1 - strb r2, [r3, #1732] -.L1528: + strb r2, [r3, #2244] +.L1530: mov r0, #0 add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1537: +.L1539: .align 2 -.L1536: +.L1538: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9152,137 +9124,124 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r10, .L1555 - mov r6, #0 - ldr r7, .L1555+4 - mov r4, r6 - ldr r5, .L1555+8 + ldr r3, .L1556 + mov r4, #0 + ldr r7, .L1556+4 mov r9, #4 - ldr r3, [r10] + ldr r5, .L1556+8 mvn r8, #0 - str r6, [r5, #164] - str r3, [sp, #12] - ldr r3, .L1555+12 ldr r0, [r3] @ unaligned ldr r3, [r7, #4] - str r0, [sp, #8] @ unaligned - mov r0, r6 - str r3, [sp] + str r4, [r5, #1700] mov r6, r5 - ldr r3, [r5, #148] - str r3, [r5, #160] + str r0, [sp, #12] @ unaligned + mov r0, r4 + str r3, [sp, #4] + ldr r3, [r5, #1684] + str r3, [r5, #1696] bl flash_enter_slc_mode - str r10, [sp, #4] -.L1539: +.L1541: add fp, r4, #1 mov r10, #0 -.L1541: - add r3, sp, #8 +.L1543: + add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 mov r1, r4 - ldr r2, [r5, #148] + ldr r2, [r5, #1684] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1540 + bne .L1542 mov r0, #0 mov r1, fp - ldr r2, [r6, #148] + ldr r2, [r6, #1684] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1540 + bne .L1542 add r10, r10, #1 cmp r10, #4 - beq .L1542 - b .L1541 -.L1543: + beq .L1544 + b .L1543 +.L1545: add r0, fp, #12 movw r1, #2036 bl js_hash ldr r3, [fp, #8] cmp r3, r0 mvnne r8, #0 - bne .L1542 - ldr r8, .L1555+16 + bne .L1544 + ldr r8, .L1556+12 add r1, fp, #160 mov r2, #32 mov r0, r8 bl ftl_memcpy - ldr r1, [r6, #160] + ldr r1, [r6, #1696] mov r2, #32 - ldr r0, .L1555+20 + ldr r0, .L1556+16 add r1, r1, #192 bl ftl_memcpy - ldr r1, [r6, #160] + ldr r1, [r6, #1696] mov r2, #852 - ldr r0, .L1555+24 + ldr r0, .L1556+20 add r1, r1, #224 bl ftl_memcpy ldrh r0, [r8, #10] bl FlashBlockAlignInit - ldr r8, [r6, #160] - str r4, [r6, #164] + ldr r8, [r6, #1696] + str r4, [r6, #1700] mov r0, r4 ldr r1, [r7, #4] ldr r3, [r8, #1076] - strb r3, [r7, #1732] + strb r3, [r7, #2244] bl __aeabi_uidiv add r0, r0, #1 cmp r0, #1 - strhi r0, [r6, #168] + strhi r0, [r6, #1704] movls r3, #2 - strls r3, [r6, #168] + strls r3, [r6, #1704] ldrh r3, [r8, #14] mov r8, #0 - strb r3, [r5, #172] -.L1542: - ldr r3, [sp] + strb r3, [r5, #1708] +.L1544: + ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L1539 + bne .L1541 mov r0, r9 -.L1554: +.L1555: bl flash_exit_slc_mode mov r0, r8 - ldr r3, [sp, #4] - ldr r2, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L1549 - bl __stack_chk_fail -.L1540: - ldr fp, [r5, #160] - ldr r2, .L1555+28 - ldr r3, [fp] - cmp r3, r2 - bne .L1542 - cmp r8, #0 - bne .L1543 - mov r0, r4 - ldr r1, [r7, #4] - bl __aeabi_uidiv - ldr r3, .L1555+8 - add r0, r0, #1 - str r0, [r3, #168] - mov r0, r8 - b .L1554 -.L1549: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1556: +.L1542: + ldr fp, [r5, #1696] + ldr r2, .L1556+24 + ldr r3, [fp] + cmp r3, r2 + bne .L1544 + cmp r8, #0 + bne .L1545 + mov r0, r4 + ldr r1, [r7, #4] + bl __aeabi_uidiv + ldr r3, .L1556+8 + add r0, r0, #1 + str r0, [r3, #1704] + mov r0, r8 + b .L1555 +.L1557: .align 2 -.L1555: - .word __stack_chk_guard +.L1556: + .word .LANCHOR3+11 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR3+11 .word .LANCHOR1+472 .word .LANCHOR0+44 - .word .LANCHOR0+698 + .word .LANCHOR0+1210 .word 1312902724 .fnend .size FlashLoadPhyInfo, .-FlashLoadPhyInfo @@ -9302,11 +9261,11 @@ ToshibaReadRetrial: str r2, [sp, #8] str r1, [sp, #16] bl NandcWaitFlashReady - ldr r4, .L1586 + ldr r4, .L1587 add r3, r4, r9, asl #3 ldrb r2, [r3, #16] @ zero_extendqisi2 ldr r6, [r3, #12] - ldrb r3, [r4, #696] @ zero_extendqisi2 + ldrb r3, [r4, #1208] @ zero_extendqisi2 add r7, r2, #8 sub r3, r3, #67 add r7, r6, r7, asl #8 @@ -9315,58 +9274,58 @@ ToshibaReadRetrial: str r3, [sp, #12] movls r3, #0 strls r3, [sp, #4] - bls .L1558 - ldrb r5, [r4, #1732] @ zero_extendqisi2 + bls .L1559 + ldrb r5, [r4, #2244] @ zero_extendqisi2 cmp r5, #0 streq r5, [sp, #4] - beq .L1559 + beq .L1560 mov r0, #0 str r2, [sp, #20] bl NandcSetDdrMode mov r3, #1 ldr r2, [sp, #20] str r3, [sp, #4] -.L1559: +.L1560: ldr r3, [sp, #12] mov r1, #92 add r3, r6, r3 str r1, [r3, #2056] mov r1, #197 str r1, [r3, #2056] -.L1558: +.L1559: mov r8, #1 mvn r10, #0 mov r3, r2, asl #8 str r3, [sp, #20] -.L1560: - ldr r3, .L1586+4 - ldrb r3, [r3, #173] @ zero_extendqisi2 +.L1561: + ldr r3, .L1587+4 + ldrb r3, [r3, #1709] @ zero_extendqisi2 add r3, r3, #1 cmp r8, r3 - bcs .L1585 - ldrb r3, [r4, #696] @ zero_extendqisi2 + bcs .L1586 + ldrb r3, [r4, #1208] @ zero_extendqisi2 mov r0, r7 uxtb r1, r8 sub r3, r3, #67 cmp r3, #1 - bhi .L1561 + bhi .L1562 bl SandiskSetRRPara - b .L1562 -.L1561: - bl ToshibaSetRRPara + b .L1563 .L1562: - ldrb r3, [r4, #696] @ zero_extendqisi2 + bl ToshibaSetRRPara +.L1563: + ldrb r3, [r4, #1208] @ zero_extendqisi2 cmp r3, #34 - bne .L1563 - ldr r3, .L1586+4 - ldrb r3, [r3, #173] @ zero_extendqisi2 + bne .L1564 + ldr r3, .L1587+4 + ldrb r3, [r3, #1709] @ zero_extendqisi2 sub r3, r3, #3 cmp r8, r3 ldreq r3, [sp, #20] moveq r2, #179 addeq r3, r6, r3 streq r2, [r3, #2056] -.L1563: +.L1564: ldr r3, [sp, #12] mov r2, #38 add r3, r6, r3 @@ -9375,7 +9334,7 @@ ToshibaReadRetrial: str r2, [r3, #2056] ldr r3, [sp, #4] cmp r3, #0 - beq .L1564 + beq .L1565 mov r0, #4 bl NandcSetDdrMode mov r0, r9 @@ -9386,68 +9345,68 @@ ToshibaReadRetrial: mov r5, r0 mov r0, #0 bl NandcSetDdrMode - b .L1565 -.L1564: + b .L1566 +.L1565: mov r0, r9 ldr r1, [sp, #16] ldr r2, [sp, #8] mov r3, fp bl FlashReadRawPage mov r5, r0 -.L1565: +.L1566: cmn r5, #1 - beq .L1566 - ldrb r2, [r4, #1792] @ zero_extendqisi2 + beq .L1567 + ldrb r2, [r4, #2304] @ zero_extendqisi2 cmn r10, #1 moveq r10, r5 add r2, r2, r2, asl #1 cmp r5, r2, asr #2 - bcc .L1568 + bcc .L1569 mov fp, #0 str fp, [sp, #8] -.L1566: +.L1567: add r8, r8, #1 - b .L1560 -.L1585: + b .L1561 +.L1586: mov r5, r10 -.L1568: - ldrb r2, [r4, #696] @ zero_extendqisi2 +.L1569: + ldrb r2, [r4, #1208] @ zero_extendqisi2 mov r0, r7 mov r1, #0 sub r2, r2, #67 cmp r2, #1 - bhi .L1570 + bhi .L1571 bl SandiskSetRRPara - b .L1571 -.L1570: - bl ToshibaSetRRPara + b .L1572 .L1571: + bl ToshibaSetRRPara +.L1572: ldr r3, [sp, #12] mov r2, #255 add r6, r6, r3 str r2, [r6, #2056] - ldrb r2, [r4, #1792] @ zero_extendqisi2 + ldrb r2, [r4, #2304] @ zero_extendqisi2 add r2, r2, r2, asl #1 cmp r5, r2, asr #2 - bcc .L1572 + bcc .L1573 cmn r5, #1 movne r5, #256 -.L1572: +.L1573: mov r0, r9 bl NandcWaitFlashReady ldr r3, [sp, #4] cmp r3, #0 - beq .L1573 + beq .L1574 mov r0, #4 bl NandcSetDdrMode -.L1573: +.L1574: mov r0, r5 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1587: +.L1588: .align 2 -.L1586: +.L1587: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -9463,24 +9422,24 @@ SamsungReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r9, r0 - ldr r5, .L1602 + ldr r5, .L1603 mov r10, r2 mov r8, r3 mov fp, r1 bl NandcWaitFlashReady add r2, r5, r9, asl #3 - ldr ip, .L1602+4 + ldr ip, .L1603+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 -.L1589: - ldrb r3, [ip, #173] @ zero_extendqisi2 +.L1590: + ldrb r3, [ip, #1709] @ zero_extendqisi2 add r3, r3, #1 cmp r7, r3 - bcs .L1592 + bcs .L1593 mov r0, r6 uxtb r1, r7 str ip, [sp, #4] @@ -9492,38 +9451,38 @@ SamsungReadRetrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L1590 - ldrb r3, [r5, #1792] @ zero_extendqisi2 + beq .L1591 + ldrb r3, [r5, #2304] @ zero_extendqisi2 cmn r4, #1 moveq r4, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L1595 + bcc .L1596 mov r8, #0 mov r10, r8 -.L1590: +.L1591: add r7, r7, #1 - b .L1589 -.L1595: + b .L1590 +.L1596: mov r4, r0 -.L1592: +.L1593: mov r0, r6 mov r1, #0 bl SamsungSetRRPara - ldrb r3, [r5, #1792] @ zero_extendqisi2 + ldrb r3, [r5, #2304] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L1594 + bcc .L1595 cmn r4, #1 movne r4, #256 -.L1594: +.L1595: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1603: +.L1604: .align 2 -.L1602: +.L1603: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -9535,29 +9494,29 @@ MicronReadRetrial: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 -.L1606: +.L1607: 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, .L1630 + ldr r3, .L1631 mov fp, r2 .pad #36 sub sp, sp, #36 mov r6, r0 mov r10, #0 - ldrb r5, [r3, #1792] @ zero_extendqisi2 + ldrb r5, [r3, #2304] @ zero_extendqisi2 ldrb r3, [r3, #140] @ zero_extendqisi2 str r1, [sp, #20] cmp r3, #0 addeq r5, r5, r5, asl #1 - ldrne r2, .L1630+4 + ldrne r2, .L1631+4 ubfxeq r5, r5, #2, #8 smullne r2, r3, r5, r2 uxtbne r5, r3 - ldr r3, .L1630 + ldr r3, .L1631 add r3, r3, r0, asl #3 str r3, [sp, #24] -.L1616: +.L1617: mov r0, r6 mov r9, #0 bl NandcWaitFlashReady @@ -9571,11 +9530,11 @@ MicronReadRetrial: ldr r2, [sp, #16] ldr r3, [sp, #12] add r7, r3, r2, asl #8 -.L1607: - ldr r3, .L1630+8 - ldrb r3, [r3, #173] @ zero_extendqisi2 +.L1608: + ldr r3, .L1631+8 + ldrb r3, [r3, #1709] @ zero_extendqisi2 cmp r9, r3 - bcs .L1610 + bcs .L1611 mov r3, #239 mov r0, #200 str r3, [r7, #2056] @@ -9596,22 +9555,22 @@ MicronReadRetrial: str ip, [sp, #28] bl FlashReadRawPage cmn r0, #1 - beq .L1608 + beq .L1609 cmn r4, #1 ldr ip, [sp, #28] moveq r4, r0 cmp r0, r5 - bcc .L1618 + bcc .L1619 mov r8, ip mov fp, ip -.L1608: +.L1609: ldr r9, [sp, #8] - b .L1607 -.L1618: + b .L1608 +.L1619: mov r4, r0 mov r8, ip mov fp, ip -.L1610: +.L1611: ldr r2, [sp, #16] mov r0, #200 ldr r3, [sp, #12] @@ -9627,10 +9586,10 @@ MicronReadRetrial: str r3, [r7, #2048] str r3, [r7, #2048] str r3, [r7, #2048] - bcc .L1612 + bcc .L1613 cmn r4, #1 movne r4, #256 -.L1612: +.L1613: cmn r4, #1 movne r7, #0 moveq r7, #1 @@ -9638,48 +9597,48 @@ MicronReadRetrial: movne r1, r7 orreq r1, r7, #1 cmp r1, #0 - beq .L1613 + beq .L1614 str r4, [sp] mov r1, r9 - ldr r0, .L1630+12 + ldr r0, .L1631+12 mov r3, r9 ldr r2, [sp, #20] bl printk cmp r10, #0 - bne .L1614 - ldr r3, .L1630 + bne .L1615 + ldr r3, .L1631 ldrb r3, [r3, #140] @ zero_extendqisi2 cmp r3, #0 moveq r7, #0 andne r7, r7, #1 cmp r7, #0 - beq .L1623 + beq .L1624 mov r0, r6 mov r1, #3 bl micron_auto_read_calibration_config mov r10, #1 - b .L1616 -.L1614: + b .L1617 +.L1615: mov r0, r6 mov r1, #0 bl micron_auto_read_calibration_config cmn r4, #1 movne r4, #256 - b .L1623 -.L1613: + b .L1624 +.L1614: cmp r10, #0 - beq .L1623 + beq .L1624 mov r0, r6 mov r4, #256 bl micron_auto_read_calibration_config -.L1623: +.L1624: mov r0, r4 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1631: +.L1632: .align 2 -.L1630: +.L1631: .word .LANCHOR0 .word 1431655766 .word .LANCHOR2 @@ -9697,29 +9656,29 @@ HynixReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r3 - ldr r5, .L1650 + ldr r5, .L1651 mov r10, r2 mov r7, r0 mov fp, r1 add r2, r5, r0 mvn r6, #0 - ldr r3, [r5, #692] - ldrb r4, [r2, #710] @ zero_extendqisi2 - ldrb r9, [r5, #700] @ zero_extendqisi2 + ldr r3, [r5, #1204] + ldrb r4, [r2, #1222] @ zero_extendqisi2 + ldrb r9, [r5, #1212] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #7 cmp r3, #1 - ldrlsb r4, [r2, #718] @ zero_extendqisi2 + ldrlsb r4, [r2, #1230] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L1634: +.L1635: cmp ip, r9 - bcs .L1638 + bcs .L1639 add r4, r4, #1 mov r0, r7 - ldrb r1, [r5, #699] @ zero_extendqisi2 + ldrb r1, [r5, #1211] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L1650+4 + ldr r2, .L1651+4 cmp r4, r9 str ip, [sp, #4] movcs r4, #0 @@ -9732,44 +9691,44 @@ HynixReadRetrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L1636 - ldrb r3, [r5, #1792] @ zero_extendqisi2 + beq .L1637 + ldrb r3, [r5, #2304] @ zero_extendqisi2 cmn r6, #1 moveq r6, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L1643 + bcc .L1644 mov r8, #0 mov r10, r8 -.L1636: +.L1637: add ip, ip, #1 - b .L1634 -.L1643: + b .L1635 +.L1644: mov r6, r0 -.L1638: - ldr r3, [r5, #692] +.L1639: + ldr r3, [r5, #1204] add r7, r5, r7 ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #7 cmp r3, #1 - ldrb r3, [r5, #1792] @ zero_extendqisi2 - strlsb r4, [r7, #718] - strhib r4, [r7, #710] + ldrb r3, [r5, #2304] @ zero_extendqisi2 + strlsb r4, [r7, #1230] + strhib r4, [r7, #1222] add r3, r3, r3, asl #1 cmp r6, r3, asr #2 - bcc .L1642 + bcc .L1643 cmn r6, #1 movne r6, #256 -.L1642: +.L1643: mov r0, r6 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1651: +.L1652: .align 2 -.L1650: +.L1651: .word .LANCHOR0 - .word .LANCHOR0+702 + .word .LANCHOR0+1214 .fnend .size HynixReadRetrial, .-HynixReadRetrial .align 2 @@ -9783,23 +9742,22 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1656 + ldr r3, .L1657 subs r4, r0, #0 mov r5, r1 mov r7, r2 ldrb r6, [r3, #481] @ zero_extendqisi2 - bne .L1653 - ldr r2, .L1656+4 + bne .L1654 + ldr r2, .L1657+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r1, [r2, #4] mul r1, r1, r3 cmp r5, r1 - bcs .L1653 + bcs .L1654 ldrb r3, [r2] @ zero_extendqisi2 cmp r3, #0 - subeq r6, r6, #2 movne r6, #4 -.L1653: +.L1654: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -9807,7 +9765,7 @@ FlashProgPage: mov r0, r4 mov r1, r5 bl FlashProgFirstCmd - uxtb r2, r6 + mov r2, r6 mov r3, r7 mov r0, r4 mov r1, #1 @@ -9828,9 +9786,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1657: +.L1658: .align 2 -.L1656: +.L1657: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -9845,71 +9803,71 @@ 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, .L1668 - ldr r5, .L1668+4 - ldr r8, .L1668+8 - ldr r3, [r4, #148] + ldr r4, .L1669 + ldr r5, .L1669+4 + ldr r8, .L1669+8 + ldr r3, [r4, #1684] mov r9, r4 - ldrb r0, [r4, #174] @ zero_extendqisi2 + ldrb r0, [r4, #1710] @ zero_extendqisi2 mov r10, r5 - str r3, [r4, #160] + str r3, [r4, #1696] bl FlashBchSel mov r1, #0 mov r2, #2048 - ldr r0, [r4, #148] + ldr r0, [r4, #1684] bl ftl_memset - ldr r3, [r4, #160] - ldr r1, .L1668+12 + ldr r3, [r4, #1696] + ldr r1, .L1669+12 mov r2, #32 str r8, [r3] - ldr r0, [r4, #160] - ldrb r3, [r5, #1717] @ zero_extendqisi2 + ldr r0, [r4, #1696] + ldrb r3, [r5, #2229] @ 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, #1732] @ zero_extendqisi2 + ldrb r3, [r5, #2244] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy - ldr r0, [r4, #160] - ldr r1, .L1668+16 + ldr r0, [r4, #1696] + ldr r1, .L1669+16 mov r2, #8 add r0, r0, #80 bl ftl_memcpy - ldr r0, [r4, #160] - add r1, r5, #656 + ldr r0, [r4, #1696] + add r1, r5, #1168 mov r2, #32 add r0, r0, #96 bl ftl_memcpy - ldr r0, [r4, #160] - ldr r1, .L1668+20 + ldr r0, [r4, #1696] + ldr r1, .L1669+20 mov r2, #32 add r0, r0, #160 bl ftl_memcpy - ldr r0, [r4, #160] + ldr r0, [r4, #1696] add r1, r5, #44 mov r2, #32 add r0, r0, #192 bl ftl_memcpy - ldr r0, [r4, #160] + ldr r0, [r4, #1696] mov r2, #852 - ldr r1, .L1668+24 + ldr r1, .L1669+24 add r0, r0, #224 bl ftl_memcpy - ldr r6, [r4, #160] + ldr r6, [r4, #1696] movw r1, #2036 add r0, r6, #12 bl js_hash movw r3, #1592 str r3, [r6, #4] - ldr r3, [r4, #176] - str r3, [r4, #160] + ldr r3, [r4, #1712] + str r3, [r4, #1696] str r0, [r6, #8] mov r0, #0 bl flash_enter_slc_mode mov r6, #0 mov r7, r6 -.L1661: +.L1662: ldr r1, [r5, #4] mov r0, #0 mov r2, r0 @@ -9917,30 +9875,30 @@ FlashSavePhyInfo: bl FlashEraseBlock ldr r1, [r5, #4] mov r0, #0 - ldr r2, [r4, #148] + ldr r2, [r4, #1684] mov r3, r0 mul r1, r1, r7 bl FlashProgPage ldr r1, [r5, #4] mov r0, #0 - ldr r2, [r4, #148] + ldr r2, [r4, #1684] mov r3, r0 mul r1, r1, r7 add r1, r1, #1 bl FlashProgPage ldr r1, [r5, #4] mov r0, #0 - ldr r2, [r4, #176] + ldr r2, [r4, #1712] mov r3, r0 mul r1, r1, r7 bl FlashReadRawPage add r2, r7, #1 cmn r0, #1 - beq .L1659 - ldr fp, [r9, #160] + beq .L1660 + ldr fp, [r9, #1696] ldr r3, [fp] cmp r3, r8 - bne .L1659 + bne .L1660 add r0, fp, #12 movw r1, #2036 str r2, [sp, #4] @@ -9948,22 +9906,22 @@ FlashSavePhyInfo: ldr r3, [fp, #8] cmp r3, r0 ldr r2, [sp, #4] - bne .L1659 + bne .L1660 ldr r3, [r10, #4] cmp r6, #1 - str r2, [r9, #168] + str r2, [r9, #1704] mul r7, r3, r7 - str r7, [r9, #164] - beq .L1662 + str r7, [r9, #1700] + beq .L1663 mov r6, #1 -.L1659: +.L1660: cmp r2, #4 mov r7, r2 - bne .L1661 - b .L1660 -.L1662: + bne .L1662 + b .L1661 +.L1663: mov r6, #2 -.L1660: +.L1661: mov r0, #0 bl flash_exit_slc_mode clz r0, r6 @@ -9972,16 +9930,16 @@ FlashSavePhyInfo: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1669: +.L1670: .align 2 -.L1668: +.L1669: .word .LANCHOR2 .word .LANCHOR0 .word 1312902724 - .word .LANCHOR0+1556 - .word .LANCHOR0+1720 + .word .LANCHOR0+2068 + .word .LANCHOR0+2232 .word .LANCHOR1+472 - .word .LANCHOR0+698 + .word .LANCHOR0+1210 .fnend .size FlashSavePhyInfo, .-FlashSavePhyInfo .align 2 @@ -9991,112 +9949,100 @@ FlashReadIdbDataRaw: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1691 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 .pad #20 sub sp, sp, #20 - ldr r2, [r3] - mov r9, r0 ldr r4, .L1691+4 - str r3, [sp] - str r2, [sp, #12] - ldr r2, .L1691+8 - ldrb r10, [r4, #1792] @ zero_extendqisi2 - ldr r0, [r2] @ unaligned - ldr r2, [r4, #1728] - cmp r2, #0 - str r0, [sp, #8] @ unaligned - beq .L1671 + ldr r0, [r3] @ unaligned + ldr r3, [r4, #2240] + ldrb r10, [r4, #2304] @ zero_extendqisi2 + cmp r3, #0 + str r0, [sp, #12] @ unaligned + beq .L1672 mov r0, #0 bl flash_enter_slc_mode -.L1671: +.L1672: mov r0, r9 mov r1, #0 mov r2, #2048 mvn r8, #0 bl ftl_memset mov r5, #2 -.L1672: +.L1673: ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r5, r3 - bcs .L1676 - ldr fp, .L1691+12 + bcs .L1677 + ldr fp, .L1691+8 mov r7, #0 -.L1674: - add r3, sp, #8 - ldr r6, .L1691+12 - ldrb ip, [r3, r7] @ zero_extendqisi2 +.L1675: + add r3, sp, #12 + ldr r6, .L1691+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, #148] + ldr r2, [fp, #1684] mov r3, r0 mul r1, r1, r5 bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - bne .L1673 + bne .L1674 add r7, r7, #1 cmp r7, #4 - bne .L1674 - b .L1675 -.L1673: - ldr r3, [r6, #148] - ldr r2, .L1691+16 + bne .L1675 + b .L1676 +.L1674: + ldr r3, [r6, #1684] + ldr r2, .L1691+12 ldr r3, [r3] cmp r3, r2 - bne .L1675 + bne .L1676 mov r1, ip - ldr r0, .L1691+20 + ldr r0, .L1691+16 bl printk mov r2, #2048 mov r0, r9 - ldr r1, [r6, #148] + ldr r1, [r6, #1684] bl ftl_memcpy - ldr r3, [r6, #148] + ldr r3, [r6, #1684] ldr r2, .L1691+4 ldr r3, [r3, #512] strb r3, [r2, #1] - ldr r3, [r6, #168] + ldr r3, [r6, #1704] cmp r3, r5 bls .L1680 - str r5, [r6, #168] + str r5, [r6, #1704] bl FlashSavePhyInfo mov r8, #0 -.L1675: +.L1676: add r5, r5, #1 - b .L1672 + b .L1673 .L1680: mov r8, #0 -.L1676: +.L1677: mov r0, r10 bl FlashBchSel - ldr r3, [r4, #1728] + ldr r3, [r4, #2240] cmp r3, #0 - beq .L1677 + beq .L1684 mov r0, #0 bl flash_exit_slc_mode -.L1677: - ldr r3, [sp] +.L1684: mov r0, r8 - ldr r2, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L1679 - bl __stack_chk_fail -.L1679: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} .L1692: .align 2 .L1691: - .word __stack_chk_guard - .word .LANCHOR0 .word .LANCHOR3+11 + .word .LANCHOR0 .word .LANCHOR2 .word -52655045 .word .LC95 @@ -10120,31 +10066,31 @@ FlashInit: ldr r4, .L1788+4 mov r7, #0 add r9, r4, #12 - str r0, [r8, #148] + str r0, [r8, #1684] mov r0, #32768 bl ftl_malloc - str r0, [r8, #176] + str r0, [r8, #1712] mov r0, #4096 bl ftl_malloc - str r0, [r8, #180] + str r0, [r8, #1716] mov r0, #32768 bl ftl_malloc - str r0, [r8, #184] + str r0, [r8, #1720] mov r0, #4096 bl ftl_malloc mov r3, #50 - str r7, [r8, #168] + str r7, [r8, #1704] strb r3, [r4, #1] - strb r3, [r8, #172] + strb r3, [r8, #1708] mov r3, #128 - strb r7, [r4, #1732] + strb r7, [r4, #2244] str r3, [r4, #4] mov r3, #60 - str r7, [r8, #152] + str r7, [r8, #1688] strb r7, [r4] - strb r7, [r8, #192] - strb r3, [r8, #174] - str r0, [r8, #188] + strb r7, [r8, #1728] + strb r3, [r8, #1710] + str r0, [r8, #1724] mov r0, r5 bl NandcInit ldr r5, .L1788+8 @@ -10213,13 +10159,13 @@ FlashInit: .L1695: cmp r7, #0 bne .L1696 - ldrb r3, [r4, #1556] @ zero_extendqisi2 + ldrb r3, [r4, #2068] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 bhi .L1745 ldr r3, .L1788+4 - ldrb r3, [r3, #1557] @ zero_extendqisi2 + ldrb r3, [r3, #2069] @ zero_extendqisi2 cmp r3, #255 beq .L1745 .L1696: @@ -10231,11 +10177,11 @@ FlashInit: streqb r3, [r5, #-8] cmp r7, #4 bne .L1699 - ldrb r3, [r4, #1556] @ zero_extendqisi2 + ldrb r3, [r4, #2068] @ zero_extendqisi2 cmp r3, #173 beq .L1700 ldr r3, .L1788+4 - ldr r0, [r3, #1736] + ldr r0, [r3, #2248] bl NandcSetDdrMode .L1700: mov r2, #852 @@ -10243,11 +10189,11 @@ FlashInit: mov r1, #0 ldr r5, .L1788+20 bl ftl_memset - ldr r6, [r4, #1744] + ldr r6, [r4, #2256] ldr r3, .L1788+24 cmp r6, r5 - ldrb r0, [r4, #1557] @ zero_extendqisi2 - str r3, [r4, #692] + ldrb r0, [r4, #2069] @ zero_extendqisi2 + str r3, [r4, #1204] mov r3, #0 strb r3, [r4, #8] sub ip, r0, #218 @@ -10255,7 +10201,7 @@ FlashInit: clz ip, ip moveq r2, #1 mov ip, ip, lsr #5 - streq r2, [r3, #1728] + streq r2, [r3, #2240] cmp r0, #161 cmpne r0, #241 and r2, r0, #253 @@ -10269,35 +10215,35 @@ FlashInit: cmp r0, #220 bne .L1703 ldr r3, .L1788+4 - ldrb r3, [r3, #1559] @ zero_extendqisi2 + ldrb r3, [r3, #2071] @ zero_extendqisi2 cmp r3, #149 bne .L1703 .L1702: - ldrb lr, [r4, #1556] @ zero_extendqisi2 + ldrb lr, [r4, #2068] @ zero_extendqisi2 mov r3, #16 strb r3, [r4, #1] mov r1, #1 - strb r3, [r8, #174] + strb r3, [r8, #1710] cmp lr, #152 ldr r3, .L1788+28 strb r1, [r4] ldr r2, .L1788 - strb lr, [r3, #3257] - strb r0, [r3, #3258] + strb lr, [r3, #3321] + strb r0, [r3, #3322] bne .L1705 ldr r7, .L1788+4 - movw lr, #1560 + movw lr, #2072 ldrsb lr, [r7, lr] cmp lr, #0 - strltb r1, [r2, #192] + strltb r1, [r2, #1728] movge r1, #24 - strgeb r1, [r2, #174] + strgeb r1, [r2, #1710] .L1705: movw r2, #2049 cmp r6, r5 cmpne r6, r2 moveq r2, #16 - streqb r2, [r8, #174] + streqb r2, [r8, #1710] cmp ip, #0 ldrne r2, .L1788+32 movne r1, #2048 @@ -10312,7 +10258,7 @@ FlashInit: strh r1, [r2, #14] @ movhi mvn r2, #35 .L1782: - strb r2, [r3, #3258] + strb r2, [r3, #3322] b .L1710 .L1711: cmp r0, #211 @@ -10320,7 +10266,7 @@ FlashInit: moveq r1, #4096 streqh r1, [r2, #14] @ movhi moveq r2, #2 - streqb r2, [r3, #3269] + streqb r2, [r3, #3333] .L1710: ldr r1, .L1788+36 mov r2, #32 @@ -10328,7 +10274,7 @@ FlashInit: bl ftl_memcpy ldr r0, .L1788+24 mov r2, #32 - add r1, r0, #2784 + add r1, r0, #2848 bl ftl_memcpy .L1703: ldrb r3, [r4] @ zero_extendqisi2 @@ -10338,27 +10284,27 @@ FlashInit: bl FlashLoadPhyInfoInRam cmp r0, #0 bne .L1714 - ldr r3, [r6, #692] + ldr r3, [r6, #1204] ldrh r3, [r3, #16] mov r3, r3, lsr #8 tst r3, #1 and r0, r3, #7 - strb r0, [r6, #1716] + strb r0, [r6, #2228] bne .L1714 mov r3, #1 - strb r3, [r6, #1732] + strb r3, [r6, #2244] bl FlashSetInterfaceMode - ldrb r0, [r6, #1716] @ zero_extendqisi2 + ldrb r0, [r6, #2228] @ zero_extendqisi2 bl NandcSetMode .L1714: - ldr r3, [r4, #692] + ldr r3, [r4, #1204] ldr r6, .L1788+4 ldrb r3, [r3, #26] @ zero_extendqisi2 strb r3, [r4, #140] bl FlashLoadPhyInfo cmp r0, #0 beq .L1712 - ldr r3, [r6, #1736] + ldr r3, [r6, #2248] cmp r3, #0 beq .L1717 mov r0, #1 @@ -10366,9 +10312,9 @@ FlashInit: mov r0, #1 b .L1783 .L1717: - ldrb r0, [r6, #1716] @ zero_extendqisi2 + ldrb r0, [r6, #2228] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r6, #1716] @ zero_extendqisi2 + ldrb r0, [r6, #2228] @ zero_extendqisi2 .L1783: bl NandcSetMode bl FlashLoadPhyInfo @@ -10379,7 +10325,7 @@ FlashInit: bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r3, [r4, #692] + ldr r3, [r4, #1204] ldr r0, .L1788+44 ldrh r1, [r3, #14] bl printk @@ -10387,12 +10333,12 @@ FlashInit: cmn r0, #1 beq .L1758 bl FlashDieInfoInit - ldr r3, [r6, #692] + ldr r3, [r6, #1204] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault ldr r3, .L1788+48 - ldr r2, [r6, #692] - ldrh r3, [r3, #-14] + ldr r2, [r6, #1204] + ldrh r3, [r3, #-2] ldrb r1, [r2, #9] @ zero_extendqisi2 add r3, r3, #4080 add r3, r3, #15 @@ -10406,17 +10352,17 @@ FlashInit: bic r3, r3, #255 strh r3, [r2, #14] @ movhi .L1720: - ldrb r3, [r4, #1716] @ zero_extendqisi2 + ldrb r3, [r4, #2228] @ zero_extendqisi2 tst r3, #6 beq .L1721 bl FlashSavePhyInfo mov r0, #0 - ldr r1, [r8, #164] + ldr r1, [r8, #1700] bl FlashDdrParaScan .L1721: bl FlashSavePhyInfo .L1712: - ldr r2, [r4, #692] + ldr r2, [r4, #1204] ldr r7, .L1788+4 ldr r6, .L1788 ldrb r3, [r2, #26] @ zero_extendqisi2 @@ -10427,43 +10373,43 @@ FlashInit: ubfx r1, r3, #7, #1 strb r1, [r4, #8] ubfx r1, r3, #3, #1 - strb r1, [r8, #193] + strb r1, [r8, #1729] ubfx r1, r3, #4, #1 ubfx r3, r3, #8, #3 - strb r1, [r4, #1793] - strb r3, [r4, #1716] + strb r1, [r4, #2305] + strb r3, [r4, #2228] mov r3, #0 ldrb r1, [r2, #12] @ zero_extendqisi2 - str r3, [r8, #156] + str r3, [r8, #1692] bl __aeabi_idiv mov r1, r0 mov r0, r9 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr r3, [r4, #692] + ldr r3, [r4, #1204] ldrh r2, [r3, #16] tst r2, #64 beq .L1723 ldrb r0, [r3, #19] @ zero_extendqisi2 - ldrb r3, [r7, #699] @ zero_extendqisi2 - strb r0, [r7, #696] - strb r3, [r7, #697] - ldrb r3, [r7, #700] @ zero_extendqisi2 - strb r3, [r6, #173] + ldrb r3, [r7, #1211] @ zero_extendqisi2 + strb r0, [r7, #1208] + strb r3, [r7, #1209] + ldrb r3, [r7, #1212] @ zero_extendqisi2 + strb r3, [r6, #1709] sub r3, r0, #1 cmp r3, #7 bhi .L1724 ldr r3, .L1788+52 sub r2, r0, #8 clz r2, r2 - str r3, [r6, #156] + str r3, [r6, #1692] sub r3, r0, #5 cmp r0, #8 cmpne r3, #1 mov r2, r2, lsr #5 ldr r6, .L1788+56 movls r3, #1 - strls r3, [r7, #1784] + strls r3, [r7, #2296] cmp r0, #7 beq .L1727 sub r3, r6, #8 @@ -10490,7 +10436,7 @@ FlashInit: bhi .L1730 ldr r3, .L1788+60 cmp r0, #19 - str r3, [r6, #156] + str r3, [r6, #1692] moveq r3, #15 bne .L1787 b .L1785 @@ -10500,13 +10446,13 @@ FlashInit: cmpne r3, #1 bhi .L1732 ldr r3, .L1788+64 - str r3, [r6, #156] + str r3, [r6, #1692] mov r3, #4 - strb r3, [r7, #697] + strb r3, [r7, #1209] .L1787: mov r3, #7 .L1785: - strb r3, [r6, #173] + strb r3, [r6, #1709] b .L1723 .L1732: sub r3, r0, #67 @@ -10520,35 +10466,35 @@ FlashInit: ldr r3, .L1788+64 cmp r0, #68 cmpne r0, #35 - str r3, [r6, #156] + str r3, [r6, #1692] movne r3, #7 moveq r3, #17 cmp r1, #0 - strb r3, [r6, #173] + strb r3, [r6, #1709] movne r3, #4 moveq r3, #5 - strb r3, [r4, #697] + strb r3, [r4, #1209] b .L1723 .L1733: cmp r0, #49 ldreq r3, .L1788+68 - streq r3, [r6, #156] + streq r3, [r6, #1692] .L1723: - ldr r2, [r4, #1744] + ldr r2, [r4, #2256] ldr r3, .L1788+4 cmp r2, r5 bne .L1737 ldrb r1, [r3, #140] @ zero_extendqisi2 cmp r1, #0 - ldrne r3, [r3, #692] + ldrne r3, [r3, #1204] movne r1, #0 strneb r1, [r3, #18] .L1737: - ldrb r1, [r4, #1556] @ zero_extendqisi2 + ldrb r1, [r4, #2068] @ zero_extendqisi2 ldr r3, .L1788+4 cmp r1, #44 bne .L1738 - ldrb r1, [r3, #1732] @ zero_extendqisi2 + ldrb r1, [r3, #2244] @ zero_extendqisi2 cmp r1, #0 beq .L1738 cmp r2, r5 @@ -10559,16 +10505,16 @@ FlashInit: .L1739: mov r0, #1 mov r3, #0 - strb r3, [r4, #1732] + strb r3, [r4, #2244] bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode .L1738: - ldrb r3, [r4, #1716] @ zero_extendqisi2 + ldrb r3, [r4, #2228] @ zero_extendqisi2 tst r3, #6 beq .L1740 ldr r2, .L1788+4 - ldrb r2, [r2, #1732] @ zero_extendqisi2 + ldrb r2, [r2, #2244] @ zero_extendqisi2 cmp r2, #0 bne .L1741 tst r3, #1 @@ -10577,12 +10523,12 @@ FlashInit: mov r0, #0 bl flash_enter_slc_mode mov r0, #0 - ldr r1, [r8, #164] + ldr r1, [r8, #1700] bl FlashDdrParaScan mov r0, #0 bl flash_exit_slc_mode .L1740: - ldr r3, [r4, #692] + ldr r3, [r4, #1204] mov r8, #16 ldr r6, .L1788+4 ldrb r0, [r3, #20] @ zero_extendqisi2 @@ -10592,15 +10538,15 @@ FlashInit: ldr r0, .L1788+76 strb r8, [r4, #1] bl FlashTimingCfg - ldr r5, [r4, #692] + ldr r5, [r4, #1204] 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, #1556] + ldr r3, [r4, #2068] str r3, [r4, #112] - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 strh r3, [r4, #122] @ movhi ldrb r3, [r5, #13] @ zero_extendqisi2 strh r7, [r4, #126] @ movhi @@ -10651,23 +10597,23 @@ FlashInit: .L1788: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+1556 + .word .LANCHOR0+2068 .word .LC96 - .word .LANCHOR0+698 + .word .LANCHOR0+1210 .word 1446522928 .word .LANCHOR1+472 .word .LANCHOR1 - .word .LANCHOR1+3256 - .word .LANCHOR1+3132 + .word .LANCHOR1+3320 + .word .LANCHOR1+3196 .word .LANCHOR0+44 .word .LC97 - .word .LANCHOR2-2096 + .word .LANCHOR2-572 .word HynixReadRetrial - .word .LANCHOR0+726 + .word .LANCHOR0+1238 .word MicronReadRetrial .word ToshibaReadRetrial .word SamsungReadRetrial - .word .LANCHOR2-1904 + .word .LANCHOR2-368 .word 150000 .fnend .size FlashInit, .-FlashInit @@ -10678,62 +10624,59 @@ FlashPageProgMsbFFData: .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} + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r4, r2 - ldr r3, .L1807 - mov r8, r0 - mov r9, r1 - ldr r2, [r3, #692] - mov r6, r3 - ldrb r7, [r2, #19] @ zero_extendqisi2 - ldrb r2, [r3, #140] @ zero_extendqisi2 - cmp r2, #0 + 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 + ldrb r3, [r3, #19] @ zero_extendqisi2 beq .L1791 - ldr r3, [r3, #1728] - cmp r3, #0 - ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + ldr r2, [r2, #2240] + cmp r2, #0 + ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .L1791: - sub r3, r7, #5 - cmp r7, #68 - cmpne r3, #3 + sub r2, r3, #5 + cmp r3, #68 + cmpne r2, #2 bls .L1792 - sub r3, r7, #19 + sub r3, r3, #19 tst r3, #239 - ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .L1792: - ldr r5, .L1807+4 - movw fp, #65535 - sub r10, r5, #3136 + ldr r5, .L1804+4 + movw r10, #65535 + sub r9, r5, #2624 .L1794: - ldr r3, [r6, #692] + ldr r3, [r6, #1204] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1806 + bls .L1803 mov r3, r4, asl #1 - ldrh r3, [r10, r3] - cmp r3, fp - ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} - cmp r7, #8 + 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, #176] - moveq r1, #0 - movne r1, #255 + ldr r0, [r5, #1712] bl ftl_memset - ldr r3, .L1807+4 - add r1, r4, r9 + ldr r2, [r5, #1712] + add r1, r4, r8 add r4, r4, #1 - mov r0, r8 - ldr r2, [r3, #176] - uxth r4, r4 + mov r0, r7 mov r3, r2 + uxth r4, r4 bl FlashProgPage b .L1794 -.L1806: - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1808: +.L1803: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L1805: .align 2 -.L1807: +.L1804: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -10743,53 +10686,49 @@ FlashPageProgMsbFFData: .type FlashReadSlc2KPages, %function FlashReadSlc2KPages: .fnstart - @ args = 0, pretend = 0, frame = 32 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1861 + ldr r3, .L1857 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, .L1861+4 + .pad #36 + sub sp, sp, #36 + ldrb r3, [r3, #481] @ zero_extendqisi2 mov r4, r0 - str r2, [sp, #16] mov r8, #0 - ldr r2, [r3] - mov r10, r9 - str r1, [sp, #12] - str r3, [sp, #20] - str r2, [sp, #36] - ldr r2, .L1861+8 - ldrb r2, [r2, #481] @ zero_extendqisi2 - str r2, [sp, #8] -.L1810: - ldr r3, [sp, #12] + str r1, [sp, #16] + str r2, [sp, #20] + str r3, [sp, #12] +.L1807: + ldr r3, [sp, #16] cmp r8, r3 - beq .L1860 - ldr r3, [sp, #12] - add r2, sp, #32 + beq .L1856 + ldr r3, [sp, #16] + add r2, sp, #28 mov r0, r4 - ldr r1, [sp, #16] + ldr r1, [sp, #20] rsb r3, r8, r3 + ldr r9, .L1857+4 uxtb r3, r3 str r3, [sp] - add r3, sp, #28 + add r3, sp, #24 + mov fp, r9 bl LogAddr2PhyAddr - ldrb r2, [r9, #1717] @ zero_extendqisi2 - ldr r3, [sp, #28] + ldrb r2, [r9, #2229] @ zero_extendqisi2 + ldr r3, [sp, #24] cmp r3, r2 mvncs r3, #0 strcs r3, [r4] - bcs .L1812 + bcs .L1809 add r3, r9, r3 mov r7, #0 - ldrb r5, [r3, #1720] @ zero_extendqisi2 + ldrb r5, [r3, #2232] @ zero_extendqisi2 mov r0, r5 bl NandcWaitFlashReady mov r0, r5 bl NandcFlashCs -.L1813: - ldr r1, [sp, #32] +.L1810: + ldr r1, [sp, #28] mov r0, r5 bl FlashReadCmd mov r0, r5 @@ -10798,33 +10737,33 @@ FlashReadSlc2KPages: mov r0, r5 mov r1, #0 str r3, [sp] - ldr r2, [sp, #8] + ldr r2, [sp, #12] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1861+12 - ldrb r3, [r3, #192] @ zero_extendqisi2 + ldr r3, .L1857+8 + ldrb r3, [r3, #1728] @ zero_extendqisi2 cmp r3, #0 mov r6, r0 - beq .L1814 + beq .L1811 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi r6, #256 -.L1814: +.L1811: cmp r7, #9 cmnls r6, #1 moveq r3, #1 movne r3, #0 addeq r7, r7, #1 - beq .L1813 -.L1815: + beq .L1810 +.L1812: cmp r7, #0 mov r7, r3 movne r6, #256 -.L1817: - ldr r3, [sp, #32] +.L1814: + ldr r3, [sp, #28] mov r0, r5 - ldr r1, [r10, #4] + ldr r1, [fp, #4] add r1, r1, r3 bl FlashReadCmd mov r0, r5 @@ -10838,98 +10777,90 @@ FlashReadSlc2KPages: cmp r2, #0 addne r2, r2, #8 str r2, [sp] - ldr r2, [sp, #8] + ldr r2, [sp, #12] bl NandcXferData - ldr r3, .L1861+12 - ldrb r2, [r3, #192] @ zero_extendqisi2 + ldr r3, .L1857+8 + ldrb r2, [r3, #1728] @ zero_extendqisi2 cmp r2, #0 - mov fp, r0 - beq .L1820 + mov r10, r0 + beq .L1817 mov r0, r5 bl flash_read_ecc cmp r0, #5 - movhi fp, #256 -.L1820: + movhi r10, #256 +.L1817: cmp r7, #9 - cmnls fp, #1 + cmnls r10, #1 addeq r7, r7, #1 - beq .L1817 -.L1821: + beq .L1814 +.L1818: cmp r7, #0 mov r0, r5 - movne fp, #256 + movne r10, #256 bl NandcFlashDeCs - ldrb r2, [r10, #1792] @ zero_extendqisi2 - cmp fp, r6 - movcs r3, fp + ldrb r2, [r9, #2304] @ zero_extendqisi2 + cmp r10, r6 + movcs r3, r10 movcc r3, r6 add r2, r2, r2, asl #1 cmp r3, r2, asr #2 - bls .L1823 + bls .L1820 cmn r3, #1 movne r3, #256 -.L1823: +.L1820: cmp r3, #256 cmnne r3, #1 movne r3, #0 str r3, [r4] ldr r3, [r4, #12] cmp r3, #0 - beq .L1826 + beq .L1823 ldr r2, [r3, #12] cmn r2, #1 - bne .L1826 + bne .L1823 ldr r2, [r3, #8] cmn r2, #1 - bne .L1826 + bne .L1823 ldr r3, [r3] cmn r3, #1 strne r2, [r4] -.L1826: +.L1823: ldr r3, [r4] cmn r3, #1 - bne .L1812 + bne .L1809 ldr r1, [r4, #4] - ldr r0, .L1861+16 - ldrb r2, [r10, #1792] @ zero_extendqisi2 + ldr r0, .L1857+12 + ldrb r2, [r9, #2304] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cmp r1, #0 - beq .L1828 - ldr r0, .L1861+20 + beq .L1825 + ldr r0, .L1857+16 mov r2, #4 mov r3, #8 bl rknand_print_hex -.L1828: +.L1825: ldr r1, [r4, #12] cmp r1, #0 - beq .L1812 + beq .L1809 mov r2, #4 - ldr r0, .L1861+24 + ldr r0, .L1857+20 mov r3, r2 bl rknand_print_hex -.L1812: +.L1809: add r8, r8, #1 add r4, r4, #36 - b .L1810 -.L1860: - ldr r3, [sp, #20] + b .L1807 +.L1856: mov r0, #0 - ldr r2, [sp, #36] - ldr r3, [r3] - cmp r2, r3 - beq .L1831 - bl __stack_chk_fail -.L1831: - add sp, sp, #44 + add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1862: +.L1858: .align 2 -.L1861: - .word __stack_chk_guard - .word .LANCHOR0 +.L1857: .word .LANCHOR1 + .word .LANCHOR0 .word .LANCHOR2 .word .LC98 .word .LC99 @@ -10941,38 +10872,35 @@ FlashReadSlc2KPages: .type FlashReadPages, %function FlashReadPages: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1939 + ldr r3, .L1934 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #60 - sub sp, sp, #60 - ldr r3, [r3] - ldr r6, .L1939+4 - str r1, [sp, #20] - str r3, [sp, #52] - ldr r3, .L1939+8 - ldrb r8, [r6] @ zero_extendqisi2 - str r2, [sp, #24] + .pad #52 + sub sp, sp, #52 + ldr r6, .L1934+4 ldrb r3, [r3, #481] @ zero_extendqisi2 - cmp r8, #0 + str r1, [sp, #20] + ldrb r8, [r6] @ zero_extendqisi2 str r3, [sp, #16] ldrb r3, [r6, #8] @ zero_extendqisi2 + cmp r8, #0 + str r2, [sp, #24] str r3, [sp, #28] - beq .L1901 + beq .L1896 bl FlashReadSlc2KPages - b .L1865 -.L1901: - ldr r10, .L1939+12 + b .L1929 +.L1896: + ldr r10, .L1934+8 mov r9, r0 mov fp, r8 -.L1864: +.L1860: ldr r3, [sp, #20] cmp fp, r3 - bcs .L1937 + bcs .L1932 mov r3, #36 - add r2, sp, #48 + add r2, sp, #44 mul r3, r3, fp ldr r1, [sp, #24] add r7, r9, r3 @@ -10984,44 +10912,44 @@ FlashReadPages: rsb r3, fp, r3 uxtb r3, r3 str r3, [sp] - add r3, sp, #44 + add r3, sp, #40 bl LogAddr2PhyAddr - ldrb r2, [r6, #1717] @ zero_extendqisi2 - ldr r3, [sp, #44] + ldrb r2, [r6, #2229] @ zero_extendqisi2 + ldr r3, [sp, #40] mov r5, r0 cmp r3, r2 ldrcs r2, [sp, #8] mvncs r3, #0 strcs r3, [r9, r2] - bcs .L1867 + bcs .L1863 add r3, r6, r3 - ldrb r4, [r3, #1720] @ zero_extendqisi2 - ldrb r3, [r10, #193] @ zero_extendqisi2 + ldrb r4, [r3, #2232] @ zero_extendqisi2 + ldrb r3, [r10, #1729] @ zero_extendqisi2 cmp r3, #0 mov r0, r4 moveq r5, #0 bl NandcWaitFlashReady - ldr r3, .L1939+4 - ldr r3, [r3, #692] + ldr r3, .L1934+4 + ldr r3, [r3, #1204] ldrb r2, [r3, #19] @ zero_extendqisi2 sub r3, r2, #1 cmp r3, #7 - bhi .L1869 + bhi .L1865 sub r2, r2, #7 add r1, r6, r4 cmp r2, #1 - ldr r2, .L1939+4 - ldrb r3, [r1, #710] @ zero_extendqisi2 + ldr r2, .L1934+4 + ldrb r3, [r1, #1222] @ zero_extendqisi2 add r2, r2, r4 - ldrlsb r3, [r1, #718] @ zero_extendqisi2 - ldrb r2, [r2, #1552] @ zero_extendqisi2 + ldrlsb r3, [r1, #1230] @ zero_extendqisi2 + ldrb r2, [r2, #2064] @ zero_extendqisi2 cmp r2, r3 - beq .L1869 + beq .L1865 mov r0, r4 - ldrb r1, [r6, #699] @ zero_extendqisi2 - ldr r2, .L1939+16 + ldrb r1, [r6, #1211] @ zero_extendqisi2 + ldr r2, .L1934+12 bl HynixSetRRPara -.L1869: +.L1865: mov r0, r4 bl NandcFlashCs mov r0, r4 @@ -11032,42 +10960,42 @@ FlashReadPages: orreq r3, r3, #1 str r3, [sp, #12] cmp r3, #0 - beq .L1871 - ldr r3, .L1939+4 + beq .L1867 + ldr r3, .L1934+4 ldrb r3, [r3, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L1871 + beq .L1867 bl flash_enter_slc_mode - b .L1872 -.L1871: + b .L1868 +.L1867: bl flash_exit_slc_mode -.L1872: - ldr r1, [sp, #48] +.L1868: + ldr r1, [sp, #44] cmn r1, #1 cmpeq r4, #255 moveq r3, #0 movne r3, #1 moveq r5, r3 - beq .L1874 + beq .L1870 cmp r5, #0 - beq .L1875 + beq .L1871 ldr r2, [r6, #4] mov r0, r4 add r2, r1, r2 bl FlashReadDpCmd - b .L1876 -.L1875: + b .L1872 +.L1871: mov r0, r4 bl FlashReadCmd -.L1876: +.L1872: mov r0, r4 bl NandcWaitFlashReady cmp r5, #0 - beq .L1874 + beq .L1870 mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1874: +.L1870: ldr r3, [r7, #12] mov r0, r4 ldr r2, [sp, #16] @@ -11085,16 +11013,16 @@ FlashReadPages: movne r3, #0 strneb r3, [r6, #8] movne r5, r3 - bne .L1872 -.L1877: + bne .L1868 +.L1873: cmp r5, #0 - beq .L1878 - ldr r3, .L1939+4 + beq .L1874 + ldr r3, .L1934+4 str r0, [sp, #32] mov r0, r4 str r2, [sp, #36] ldr r1, [r3, #4] - ldr r3, [sp, #48] + ldr r3, [sp, #44] add r1, r1, r3 bl FlashReadDpDataOutCmd mov r0, r4 @@ -11112,7 +11040,7 @@ FlashReadPages: ldr ip, [sp, #32] mov r8, r0 moveq r5, #0 -.L1878: +.L1874: mov r0, r4 str ip, [sp, #32] bl NandcFlashDeCs @@ -11120,19 +11048,19 @@ FlashReadPages: ldrb r3, [sp, #28] @ zero_extendqisi2 cmn ip, #1 strb r3, [r6, #8] - bne .L1885 - ldrb r3, [r6, #1732] @ zero_extendqisi2 - cmp r3, #0 - bne .L1880 -.L1884: - ldr r5, [r10, #156] - cmp r5, #0 bne .L1881 - b .L1938 + ldrb r3, [r6, #2244] @ zero_extendqisi2 + cmp r3, #0 + bne .L1876 .L1880: + ldr r5, [r10, #1692] + cmp r5, #0 + bne .L1877 + b .L1933 +.L1876: ldr r3, [r6, #76] mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] ldr r5, [r3, #304] mov r3, #1 str r3, [sp] @@ -11141,95 +11069,95 @@ FlashReadPages: bl FlashDdrTunningRead cmn r0, #1 mov ip, r0 - beq .L1883 - ldrb r3, [r6, #1792] @ zero_extendqisi2 + beq .L1879 + ldrb r3, [r6, #2304] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1904 -.L1883: + bls .L1899 +.L1879: ubfx r0, r5, #8, #8 str ip, [sp, #32] bl NandcSetDdrPara ldr ip, [sp, #32] cmn ip, #1 - beq .L1884 - b .L1904 -.L1881: + beq .L1880 + b .L1899 +.L1877: mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] blx r5 cmn r0, #1 mov ip, r0 - bne .L1906 - ldr r3, [r6, #692] + bne .L1901 + ldr r3, [r6, #1204] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 cmp r3, #7 - bhi .L1887 + bhi .L1883 mov r0, r4 - ldrb r1, [r6, #699] @ zero_extendqisi2 - ldr r2, .L1939+16 + ldrb r1, [r6, #1211] @ zero_extendqisi2 + ldr r2, .L1934+12 mov r3, #0 bl HynixSetRRPara -.L1887: - ldr r1, [sp, #48] +.L1883: + ldr r1, [sp, #44] mov r0, r4 ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage ldr r1, [r7, #4] - ldrb r2, [r6, #1792] @ zero_extendqisi2 + ldrb r2, [r6, #2304] @ zero_extendqisi2 mov ip, r0 - ldr r0, .L1939+20 + ldr r0, .L1934+16 mov r3, ip str ip, [sp, #32] bl printk ldr ip, [sp, #32] cmn ip, #1 - bne .L1906 + bne .L1901 ldrb r5, [r6, #140] @ zero_extendqisi2 cmp r5, #0 - beq .L1886 + beq .L1882 ldr r3, [sp, #12] mov r0, r4 cmp r3, #0 - beq .L1888 + beq .L1884 bl flash_enter_slc_mode - b .L1889 -.L1888: + b .L1885 +.L1884: bl flash_exit_slc_mode -.L1889: - ldr ip, [r10, #156] +.L1885: + ldr ip, [r10, #1692] mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] blx ip mov ip, r0 - b .L1906 -.L1938: + b .L1901 +.L1933: mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage mov ip, r0 - b .L1886 -.L1904: + b .L1882 +.L1899: mov r5, #0 -.L1885: - ldrb r3, [r6, #1792] @ zero_extendqisi2 +.L1881: + ldrb r3, [r6, #2304] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bls .L1886 - ldr r3, [r10, #156] + bls .L1882 + ldr r3, [r10, #1692] cmp r3, #0 moveq ip, #256 - b .L1886 -.L1906: + b .L1882 +.L1901: mov r5, #0 -.L1886: +.L1882: cmp ip, #256 cmnne ip, #1 ldreq r3, [sp, #8] @@ -11240,29 +11168,29 @@ FlashReadPages: ldr r3, [sp, #8] ldr r3, [r9, r3] cmn r3, #1 - bne .L1893 + bne .L1889 ldr r1, [r7, #4] - ldr r0, .L1939+24 - ldrb r2, [r6, #1792] @ zero_extendqisi2 + ldr r0, .L1934+20 + ldrb r2, [r6, #2304] @ zero_extendqisi2 bl printk ldr r1, [r7, #12] cmp r1, #0 - beq .L1893 + beq .L1889 mov r2, #4 - ldr r0, .L1939+28 + ldr r0, .L1934+24 mov r3, r2 bl rknand_print_hex -.L1893: +.L1889: cmp r5, #0 - beq .L1895 - ldrb r3, [r6, #1792] @ zero_extendqisi2 + beq .L1891 + ldrb r3, [r6, #2304] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r8, r3, asr #2 - bls .L1896 - ldr r3, [r10, #156] + bls .L1892 + ldr r3, [r10, #1692] cmp r3, #0 moveq r8, #256 -.L1896: +.L1892: ldr r3, [sp, #8] cmp r8, #256 cmnne r8, #1 @@ -11270,40 +11198,32 @@ FlashReadPages: movne r2, #0 streq r8, [r9, r3] strne r2, [r9, r3] -.L1895: +.L1891: ldr r3, [sp, #12] add fp, fp, r5 cmp r3, #0 - beq .L1867 + beq .L1863 ldrb r3, [r6, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L1867 + beq .L1863 mov r0, r4 bl flash_exit_slc_mode -.L1867: +.L1863: add fp, fp, #1 - b .L1864 -.L1937: + b .L1860 +.L1932: mov r0, #0 -.L1865: - ldr r3, .L1939 - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L1900 - bl __stack_chk_fail -.L1900: - add sp, sp, #60 +.L1929: + add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1940: +.L1935: .align 2 -.L1939: - .word __stack_chk_guard - .word .LANCHOR0 +.L1934: .word .LANCHOR1 + .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+702 + .word .LANCHOR0+1214 .word .LC101 .word .LC98 .word .LC100 @@ -11318,97 +11238,88 @@ FlashLoadFactorBbt: @ 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, #16 + ldr r4, .L1949 .pad #60 sub sp, sp, #60 - ldr r7, .L1955 + ldr r0, .L1949+4 mov r1, #0 - ldr r8, .L1955+4 - mov r2, #16 - ldr r4, .L1955+8 + ldr r10, .L1949+8 mov r5, #0 - ldr r3, [r7] - mov r10, r5 - ldrh ip, [r8, #126] - add r0, r4, #196 + ldrh r3, [r4, #126] mvn fp, #0 - mov r9, r4 - str r3, [sp, #52] - ldrh r3, [r8, #124] - smulbb r3, r3, ip - uxth r6, r3 + ldrh r6, [r4, #124] + mov r9, r5 + mov r8, r4 + smulbb r6, r6, r3 bl ftl_memset - ldr r3, [r4, #180] - str r5, [sp, #24] - str r3, [sp, #28] - str r7, [sp, #4] -.L1942: - ldrb r3, [r8, #1717] @ zero_extendqisi2 + ldr r3, [r10, #1716] + 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 uxtb r7, r5 cmp r3, r7 - bls .L1954 + bls .L1948 mul ip, r6, r7 - sub r4, r6, #1 + ldr r4, [sp, #4] sub r3, r6, #12 - uxth r4, r4 -.L1943: +.L1938: cmp r4, r3 - ble .L1945 + ble .L1940 add r2, ip, r4 mov r1, #1 - add r0, sp, #16 + add r0, sp, #20 str r3, [sp, #12] mov r2, r2, asl #10 - str r2, [sp, #20] + str r2, [sp, #24] mov r2, r1 str ip, [sp, #8] bl FlashReadPages - ldr r2, [sp, #16] + ldr r2, [sp, #20] ldr ip, [sp, #8] cmn r2, #1 ldr r3, [sp, #12] - beq .L1944 - ldr r2, [r9, #180] + beq .L1939 + ldr r2, [r10, #1716] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L1944 + bne .L1939 mov r1, r7 - ldr r0, .L1955+12 + ldr r0, .L1949+12 mov r2, r4 - add r10, r10, #1 + mov r7, r7, asl #1 bl printk - ldr r3, .L1955+8 - uxth r10, r10 - add r7, r3, r7, asl #1 - strh r4, [r7, #196] @ movhi - b .L1945 -.L1944: + ldr r3, .L1949+4 + add r9, r9, #1 + strh r4, [r3, r7] @ movhi + uxth r9, r9 + b .L1940 +.L1939: sub r4, r4, #1 uxth r4, r4 - b .L1943 -.L1945: - ldrb r3, [r8, #1717] @ zero_extendqisi2 + b .L1938 +.L1940: + ldrb r3, [r8, #2229] @ zero_extendqisi2 add r5, r5, #1 - cmp r3, r10 + cmp r3, r9 moveq fp, #0 - b .L1942 -.L1954: - ldr r3, [sp, #4] + b .L1937 +.L1948: mov r0, fp - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L1949 - bl __stack_chk_fail -.L1949: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1956: +.L1950: .align 2 -.L1955: - .word __stack_chk_guard +.L1949: .word .LANCHOR0 + .word .LANCHOR2+1732 .word .LANCHOR2 .word .LC102 .fnend @@ -11424,69 +11335,67 @@ FlashProgSlc2KPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 sub sp, sp, #68 - mov r9, r2 - ldr r8, .L1989 - str r3, [sp, #8] + ldr r8, .L1982 mov r6, r1 - ldr r3, .L1989+4 - mov r4, r0 - mov fp, r0 - mov r7, #0 - ldr r2, [r3] str r3, [sp, #12] - str r2, [sp, #60] - ldr r2, .L1989+8 - ldrb r10, [r2, #481] @ zero_extendqisi2 -.L1958: + 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: cmp r7, r6 - beq .L1988 + beq .L1981 rsb r3, r7, r6 - add r2, sp, #16 - mov r0, fp + add r2, sp, #20 + mov r0, r10 mov r1, r9 uxtb r3, r3 str r3, [sp] - add r3, sp, #20 + add r3, sp, #24 bl LogAddr2PhyAddr - ldrb r2, [r8, #1717] @ zero_extendqisi2 - ldr r3, [sp, #20] + ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldr r3, [sp, #24] cmp r3, r2 mvncs r3, #0 - strcs r3, [fp] - bcs .L1960 + strcs r3, [r10] + bcs .L1954 add r3, r8, r3 - ldrb r5, [r3, #1720] @ zero_extendqisi2 + ldrb r5, [r3, #2232] @ zero_extendqisi2 mov r0, r5 bl NandcWaitFlashReady mov r0, r5 bl NandcFlashCs mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashProgFirstCmd - ldr r3, [fp, #12] - mov r2, r10 + ldr r3, [r10, #12] mov r1, #1 mov r0, r5 + ldr r2, [sp, #8] str r3, [sp] - ldr r3, [fp, #8] + ldr r3, [r10, #8] bl NandcXferData mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashProgSecondCmd mov r0, r5 bl NandcWaitFlashReady mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashReadStatus - ldr r3, [sp, #16] + ldr r3, [sp, #20] sbfx r0, r0, #0, #1 - str r0, [fp] + str r0, [r10] mov r0, r5 ldr r1, [r8, #4] add r1, r1, r3 bl FlashProgFirstCmd - ldr r3, [fp, #8] - ldr r2, [fp, #12] + ldr r3, [r10, #8] + ldr r2, [r10, #12] mov r1, #1 cmp r3, #0 mov r0, r5 @@ -11494,131 +11403,122 @@ FlashProgSlc2KPages: cmp r2, #0 addne r2, r2, #8 str r2, [sp] - mov r2, r10 + ldr r2, [sp, #8] bl NandcXferData - ldr r1, [r8, #4] + ldr r1, [fp, #4] mov r0, r5 - ldr r3, [sp, #16] + ldr r3, [sp, #20] add r1, r1, r3 bl FlashProgSecondCmd mov r0, r5 bl NandcWaitFlashReady mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashReadStatus tst r0, #1 mov r0, r5 mvnne r3, #0 - strne r3, [fp] + strne r3, [r10] bl NandcFlashDeCs -.L1960: +.L1954: add r7, r7, #1 - add fp, fp, #36 - b .L1958 -.L1988: - ldr r3, [sp, #8] - cmp r3, #0 - bne .L1976 -.L1972: + add r10, r10, #36 + b .L1952 +.L1981: ldr r3, [sp, #12] - mov r0, #0 - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L1973 - bl __stack_chk_fail -.L1976: - ldr r5, .L1989+12 + cmp r3, #0 + beq .L1979 + ldr r5, .L1982+8 mov r7, #0 mov r8, r5 -.L1965: +.L1959: cmp r7, r6 - beq .L1972 + beq .L1979 ldr r3, [r4] cmn r3, #1 - bne .L1966 + bne .L1960 ldr r1, [r4, #4] - ldr r0, .L1989+16 + ldr r0, .L1982+12 bl printk - b .L1967 -.L1966: + b .L1961 +.L1960: rsb r3, r7, r6 mov r1, r9 - add r2, sp, #16 + add r2, sp, #20 mov r0, r4 uxtb r3, r3 str r3, [sp] - add r3, sp, #20 + add r3, sp, #24 bl LogAddr2PhyAddr - ldr r2, [r5, #184] + ldr r2, [r5, #1720] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r5, #188] + ldr r2, [r5, #1724] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} - add ip, sp, #24 + add ip, sp, #28 stmia ip!, {r0, r1, r2, r3} ldmia lr!, {r0, r1, r2, r3} stmia ip!, {r0, r1, r2, r3} - add r0, sp, #24 + add r0, sp, #28 ldr r3, [lr] mov r1, #1 mov r2, r9 str r3, [ip] - ldr r3, [r5, #184] - str r3, [sp, #32] - ldr r3, [r5, #188] + ldr r3, [r5, #1720] str r3, [sp, #36] + ldr r3, [r5, #1724] + str r3, [sp, #40] bl FlashReadPages - ldr r10, [sp, #24] + ldr r10, [sp, #28] cmn r10, #1 - bne .L1968 - ldr r0, .L1989+20 + bne .L1962 + ldr r0, .L1982+16 ldr r1, [r4, #4] bl printk str r10, [r4] -.L1968: +.L1962: ldr r3, [r4, #12] cmp r3, #0 - beq .L1969 + beq .L1963 ldr r2, [r3] - ldr r3, [r8, #188] + ldr r3, [r8, #1724] ldr r3, [r3] cmp r2, r3 - beq .L1969 - ldr r0, .L1989+24 + beq .L1963 + ldr r0, .L1982+20 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1969: +.L1963: ldr r3, [r4, #8] cmp r3, #0 - beq .L1967 + beq .L1961 ldr r2, [r3] - ldr r3, [r8, #184] + ldr r3, [r8, #1720] ldr r3, [r3] cmp r2, r3 - beq .L1967 - ldr r0, .L1989+28 + beq .L1961 + ldr r0, .L1982+24 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1967: +.L1961: add r7, r7, #1 add r4, r4, #36 - b .L1965 -.L1973: + b .L1959 +.L1979: + mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1990: +.L1983: .align 2 -.L1989: +.L1982: .word .LANCHOR0 - .word __stack_chk_guard .word .LANCHOR1 .word .LANCHOR2 .word .LC103 @@ -11638,64 +11538,64 @@ FtlLoadFactoryBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, #0 - ldr r5, .L2003 - ldr r6, .L2003+4 - ldr r3, [r5, #-2064] + ldr r5, .L1996 + ldr r6, .L1996+4 + ldr r3, [r5, #-528] sub r9, r6, #76 - ldr r8, [r5, #-2040] + ldr r8, [r5, #-504] sub r10, r6, #120 mov fp, r9 - str r3, [r5, #220] - str r8, [r5, #224] -.L1992: + str r3, [r5, #1756] + str r8, [r5, #1760] +.L1985: ldrh r3, [r10] cmp r7, r3 - bcs .L2002 + bcs .L1995 ldrh r4, [r9] mvn r3, #0 movw ip, #61664 strh r3, [r6, #2]! @ movhi add r4, r4, r3 uxth r4, r4 -.L1993: +.L1986: ldrh r3, [fp] sub r2, r3, #16 cmp r4, r2 - ble .L1995 + ble .L1988 mla r3, r3, r7, r4 mov r1, #1 - ldr r0, .L2003+8 + ldr r0, .L1996+8 mov r2, r1 str ip, [sp, #4] mov r3, r3, asl #10 - str r3, [r5, #216] + str r3, [r5, #1752] bl FlashReadPages - ldr r3, [r5, #212] + ldr r3, [r5, #1748] cmn r3, #1 ldr ip, [sp, #4] - beq .L1994 + beq .L1987 ldrh r3, [r8] cmp r3, ip streqh r4, [r6] @ movhi - beq .L1995 -.L1994: + beq .L1988 +.L1987: sub r4, r4, #1 uxth r4, r4 - b .L1993 -.L1995: + b .L1986 +.L1988: add r7, r7, #1 - b .L1992 -.L2002: + b .L1985 +.L1995: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2004: +.L1997: .align 2 -.L2003: +.L1996: .word .LANCHOR2 - .word .LANCHOR0+1946 - .word .LANCHOR2+212 + .word .LANCHOR0+2458 + .word .LANCHOR2+1748 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 @@ -11705,84 +11605,74 @@ FtlGetLastWrittenPage: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} cmp r1, #1 - ldr r6, .L2018 - .pad #108 - sub sp, sp, #108 - ldreq r2, .L2018+4 - mov r9, r1 - mov r7, r0, asl #10 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + movweq r3, #2386 + ldreq r2, .L2010 + .pad #104 + sub sp, sp, #104 + ldrne r3, .L2010+4 + mov r8, r1 + mov r6, r0, asl #10 mov r1, #1 - ldr r3, [r6] - mov r0, sp - mov r8, #0 - str r8, [sp, #8] - str r3, [sp, #100] - movweq r3, #1874 - ldrne r3, .L2018+8 ldreqh r4, [r2, r3] - mov r2, r9 + add r0, sp, #4 ldrneh r4, [r3] - add r3, sp, #36 - str r3, [sp, #12] + mov r2, r8 + add r3, sp, #40 + str r3, [sp, #16] sub r5, r4, #1 + mov r7, #0 + str r7, [sp, #12] uxth r5, r5 sxth r3, r5 - orr r3, r3, r7 - str r3, [sp, #4] + orr r3, r3, r6 + str r3, [sp, #8] bl FlashReadPages - ldr r3, [sp, #36] + ldr r3, [sp, #40] cmn r3, #1 - bne .L2008 -.L2009: - sxth r4, r8 + bne .L2001 +.L2002: + sxth r4, r7 sxth r3, r5 cmp r4, r3 - bgt .L2008 + bgt .L2001 add r4, r4, r3 - mov r0, sp + add r0, sp, #4 mov r1, #1 - mov r2, r9 + mov r2, r8 add r4, r4, r4, lsr #31 mov r4, r4, asr #1 sxth r3, r4 - orr r3, r3, r7 - str r3, [sp, #4] + orr r3, r3, r6 + str r3, [sp, #8] bl FlashReadPages - ldr r3, [sp, #36] - cmn r3, #1 - bne .L2010 ldr r3, [sp, #40] cmn r3, #1 - bne .L2010 - ldr r3, [sp] + bne .L2003 + ldr r3, [sp, #44] cmn r3, #1 - subne r5, r4, #1 - uxthne r5, r5 - bne .L2009 -.L2010: + bne .L2003 + ldr r3, [sp, #4] + cmn r3, #1 + subne r4, r4, #1 + uxthne r5, r4 + bne .L2002 +.L2003: add r3, r4, #1 - uxth r8, r3 - b .L2009 -.L2008: - ldr r2, [sp, #100] + uxth r7, r3 + b .L2002 +.L2001: sxth r0, r5 - ldr r3, [r6] - cmp r2, r3 - beq .L2013 - bl __stack_chk_fail -.L2013: - add sp, sp, #108 + add sp, sp, #104 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2019: + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L2011: .align 2 -.L2018: - .word __stack_chk_guard +.L2010: .word .LANCHOR0 - .word .LANCHOR0+1872 + .word .LANCHOR0+2384 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage .align 2 @@ -11794,91 +11684,91 @@ 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, .L2053 - ldr r7, .L2053+4 - ldr r8, .L2053+8 - ldr r3, [r4, #-2064] + ldr r4, .L2045 + ldr r7, .L2045+4 + ldr r8, .L2045+8 + ldr r3, [r4, #-528] mov r9, r4 - ldr r6, [r4, #-2040] - str r3, [r4, #220] - str r6, [r4, #224] + ldr r6, [r4, #-504] + str r3, [r4, #1756] + str r6, [r4, #1760] bl FtlBbtMemInit - movw r3, #1870 + movw r3, #2382 ldrh r5, [r7, r3] sub r5, r5, #1 uxth r5, r5 -.L2021: +.L2013: ldrh r3, [r8] sub r3, r3, #48 cmp r5, r3 - ble .L2024 + ble .L2016 mov r1, #1 - ldr r0, .L2053+12 + ldr r0, .L2045+12 mov r2, r1 mov r3, r5, asl #10 - str r3, [r4, #216] + str r3, [r4, #1752] bl FlashReadPages - ldr r3, [r4, #212] + ldr r3, [r4, #1748] cmn r3, #1 - bne .L2022 - ldr r3, [r9, #216] + bne .L2014 + ldr r3, [r9, #1752] mov r1, #1 - ldr r0, .L2053+12 + ldr r0, .L2045+12 mov r2, r1 add r3, r3, #1 - str r3, [r9, #216] + str r3, [r9, #1752] bl FlashReadPages -.L2022: - ldr r3, [r4, #212] +.L2014: + ldr r3, [r4, #1748] cmn r3, #1 - beq .L2023 + beq .L2015 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L2023 + bne .L2015 ldr r2, [r6, #4] - ldr r3, .L2053+16 - str r2, [r7, #1944] + ldr r3, .L2045+16 + str r2, [r7, #2456] ldrh r2, [r6, #8] strh r5, [r3] @ movhi strh r2, [r3, #4] @ movhi - b .L2024 -.L2023: + b .L2016 +.L2015: sub r5, r5, #1 uxth r5, r5 - b .L2021 -.L2024: - ldr r7, .L2053+4 + b .L2013 +.L2016: + ldr r7, .L2045+4 movw r2, #65535 - add r5, r7, #1936 + add r5, r7, #2448 ldrh r3, [r5] cmp r3, r2 - beq .L2038 + beq .L2030 ldrh r3, [r5, #4] cmp r3, r2 - beq .L2028 + beq .L2020 mov r1, #1 - ldr r0, .L2053+12 + ldr r0, .L2045+12 mov r2, r1 mov r3, r3, asl #10 - str r3, [r4, #216] + str r3, [r4, #1752] bl FlashReadPages - ldr r3, [r4, #212] + ldr r3, [r4, #1748] cmn r3, #1 - beq .L2028 + beq .L2020 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L2028 + bne .L2020 ldr r3, [r6, #4] - ldr r2, [r7, #1944] + ldr r2, [r7, #2456] cmp r3, r2 - strhi r3, [r7, #1944] + strhi r3, [r7, #2456] ldrhih r2, [r5, #4] ldrhih r3, [r6, #8] strhih r2, [r5] @ movhi strhih r3, [r5, #4] @ movhi -.L2028: +.L2020: ldrh r0, [r5] mov r1, #1 bl FtlGetLastWrittenPage @@ -11886,82 +11776,82 @@ FtlLoadBbt: uxth r7, r0 add r0, r0, #1 strh r0, [r5, #2] @ movhi -.L2030: +.L2022: sxth r3, r7 cmp r3, #0 - blt .L2035 + blt .L2027 ldrh r2, [r5] mov r1, #1 - ldr r0, .L2053+12 + ldr r0, .L2045+12 orr r3, r3, r2, asl #10 - str r3, [r4, #216] - ldr r3, [r4, #-2064] + str r3, [r4, #1752] + ldr r3, [r4, #-528] mov r2, r1 - str r3, [r4, #220] + str r3, [r4, #1756] bl FlashReadPages - ldr r3, [r4, #212] + ldr r3, [r4, #1748] cmn r3, #1 - beq .L2031 + beq .L2023 ldrh r3, [r6] cmp r3, r8 - bne .L2031 -.L2035: + bne .L2023 +.L2027: ldrh r2, [r6, #10] ldrh r0, [r6, #12] - ldr r3, .L2053+4 + ldr r3, .L2045+4 strh r2, [r5, #6] @ movhi movw r2, #65535 cmp r0, r2 - bne .L2032 - b .L2033 -.L2031: + bne .L2024 + b .L2025 +.L2023: sub r7, r7, #1 uxth r7, r7 - b .L2030 -.L2032: - ldr r2, [r3, #1800] + b .L2022 +.L2024: + ldr r2, [r3, #2312] cmp r0, r2 - beq .L2033 - movw r1, #1814 + beq .L2025 + movw r1, #2326 ldrh r3, [r3, r1] mov r3, r3, lsr #2 cmp r0, r3 cmpcc r2, r3 - bcs .L2033 + bcs .L2025 bl FtlSysBlkNumInit -.L2033: - ldr r6, .L2053+20 +.L2025: + ldr r6, .L2045+20 mov r5, #0 - ldr r8, .L2053+24 + ldr r8, .L2045+24 sub r7, r6, #134 -.L2036: +.L2028: ldrh r3, [r7] cmp r5, r3 - bcs .L2052 + bcs .L2044 ldrh r2, [r8] - ldr r1, [r4, #220] + ldr r1, [r4, #1756] ldr r0, [r6, #4]! mov r2, r2, asl #2 mla r1, r5, r2, r1 bl ftl_memcpy add r5, r5, #1 - b .L2036 -.L2052: + b .L2028 +.L2044: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2038: +.L2030: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2054: +.L2046: .align 2 -.L2053: +.L2045: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+1870 - .word .LANCHOR2+212 - .word .LANCHOR0+1936 - .word .LANCHOR0+1960 - .word .LANCHOR2-1976 + .word .LANCHOR0+2382 + .word .LANCHOR2+1748 + .word .LANCHOR0+2448 + .word .LANCHOR0+2472 + .word .LANCHOR2-440 .fnend .size FtlLoadBbt, .-FtlLoadBbt .align 2 @@ -11974,438 +11864,435 @@ 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, .L2140 + ldr r7, .L2133 mov r1, r5 - ldr r4, .L2140+4 + ldr r4, .L2133+4 .pad #36 sub sp, sp, #36 - movw r6, #1892 - ldr r2, [r7, #1900] - sub r3, r4, #1920 - ldr r0, [r4, #-1984] + movw r6, #2404 + ldr r2, [r7, #2412] + sub r3, r4, #392 + ldr r0, [r4, #-448] mov r8, r4 - strh r5, [r3, #-8] @ movhi - movw r3, #1918 + strh r5, [r3] @ movhi + movw r3, #2430 mov r2, r2, asl #2 strh r5, [r7, r3] @ movhi bl ftl_memset - ldr r2, [r7, #1900] + ldr r2, [r7, #2412] mov r1, r5 - ldr r0, [r4, #-2012] + ldr r0, [r4, #-476] mov r2, r2, asl #1 bl ftl_memset ldrh r2, [r7, r6] mov r1, r5 - ldr r0, [r4, #-2000] + ldr r0, [r4, #-464] mov r2, r2, asl #2 bl ftl_memset ldrh r2, [r7, r6] - ldr r0, [r7, #1920] + ldr r0, [r7, #2432] mov r1, r5 mov r2, r2, asl #1 bl ftl_memset - ldr r0, .L2140+8 + ldr r0, .L2133+8 mov r1, #255 mov r2, #16 bl ftl_memset - movw r3, #1812 + movw r3, #2324 ldrh r3, [r7, r3] - str r7, [sp, #20] + str r7, [sp, #16] mov r7, r4 - str r3, [sp, #8] -.L2056: - ldr r3, .L2140+12 - ldr r2, [sp, #8] - ldr r0, .L2140 + str r3, [sp, #4] +.L2048: + ldr r3, .L2133+12 + ldr r2, [sp, #4] + ldr r0, .L2133 ldrh r3, [r3] cmp r3, r2 - bls .L2097 - ldr r1, .L2140+16 - mov r6, #36 - ldr r3, .L2140+20 + bls .L2089 + ldr r1, [r4, #-2696] mov r5, #0 - ldr ip, [r4, #-2076] - sub r9, r1, #52 - ldr r2, [r4, #-3212] - ldrh r3, [r3] - ldr fp, [r4, #-3208] + 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 ldrh r10, [r1] - str r5, [sp, #4] -.L2098: +.L2090: uxth r1, r5 - cmp r1, r3 - bcs .L2135 - ldr r1, [sp, #8] - ldrb r0, [r9, r5] @ zero_extendqisi2 + cmp r1, ip + bcs .L2128 + ldr r1, [sp, #4] + ldrb r0, [r6, r5] @ zero_extendqisi2 str r2, [sp, #28] - str ip, [sp, #24] - str r3, [sp, #16] + str r3, [sp, #24] + str ip, [sp, #20] bl V2P_block str r0, [sp, #12] bl FtlBbmIsBadBlock cmp r0, #0 ldr r1, [sp, #12] - ldr r3, [sp, #16] - ldr ip, [sp, #24] + ldr ip, [sp, #20] + ldr r3, [sp, #24] ldr r2, [sp, #28] - bne .L2057 - ldr r0, [sp, #4] + bne .L2049 + mla r0, r9, fp, r3 mov r1, r1, asl #10 - mla r0, r6, r0, ip stmib r0, {r1, r2} - ldr r1, [sp, #4] - mul r1, r10, r1 + mul r1, r10, fp add lr, r1, #3 cmp r1, #0 movlt r1, lr + ldr lr, [sp, #8] bic r1, r1, #3 - add r1, fp, r1 + add r1, lr, r1 str r1, [r0, #12] - ldr r1, [sp, #4] - add r0, r1, #1 - uxth r1, r0 - str r1, [sp, #4] -.L2057: + add r0, fp, #1 + uxth fp, r0 +.L2049: add r5, r5, #1 - b .L2098 -.L2135: - ldr r3, [sp, #4] - cmp r3, #0 - beq .L2060 - mov r1, r3 - ldr r0, [r4, #-2076] + b .L2090 +.L2128: + cmp fp, #0 + beq .L2052 + ldr r0, [r4, #-540] + mov r1, fp mov r2, #1 - ldr r9, .L2140 bl FlashReadPages mov r3, #0 - str r3, [sp, #12] -.L2061: - ldrh r3, [sp, #12] - ldr r2, [sp, #4] - cmp r3, r2 - bcs .L2060 - ldr r3, [sp, #12] - mov r10, #36 - mul r10, r10, r3 - ldr r3, [r4, #-2076] - add r2, r3, r10 - ldr r3, [r3, r10] +.L2126: + str r3, [sp, #8] + ldrh r3, [sp, #8] + cmp r3, fp + bcs .L2052 + ldr r3, [sp, #8] + mov r9, #36 + mul r9, r9, r3 + ldr r3, [r4, #-540] + 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 .L2063 - mov fp, #16 - movw r3, #65535 -.L2062: - ldr r0, [r4, #-2076] + bne .L2055 + mov r10, #16 + movw ip, #65535 +.L2054: + ldr r0, [r4, #-540] mov r1, #1 - str r3, [sp, #16] - add r0, r0, r10 - ldr r2, [r0, #4] - add r2, r2, #1 - str r2, [r0, #4] mov r2, r1 + str ip, [sp, #12] + add r0, r0, r9 + ldr r3, [r0, #4] + add r3, r3, #1 + str r3, [r0, #4] bl FlashReadPages - ldrh r2, [r6] - ldr r3, [sp, #16] - cmp r2, r3 - ldreq r3, [r8, #-2076] + ldrh r3, [r6] + ldr ip, [sp, #12] + cmp r3, ip + ldreq r3, [r8, #-540] mvneq r2, #0 - streq r2, [r3, r10] - beq .L2063 -.L2064: - ldr r2, [r7, #-2076] - ldr r2, [r2, r10] - cmn r2, #1 - bne .L2063 - sub fp, fp, #1 - uxth fp, fp - cmp fp, #0 - bne .L2062 -.L2063: - ldr r3, [r7, #-2076] - ldr r3, [r3, r10] + streq r2, [r3, r9] + beq .L2055 +.L2056: + ldr r3, [r7, #-540] + ldr r3, [r3, r9] cmn r3, #1 - beq .L2066 - ldr r2, [r7, #-3848] + bne .L2055 + sub r10, r10, #1 + uxth r10, r10 + cmp r10, #0 + bne .L2054 +.L2055: + ldr r3, [r7, #-540] + ldr r3, [r3, r9] + cmn r3, #1 + beq .L2058 + ldr r2, [r7, #-3336] ldr r3, [r6, #4] cmn r2, #1 - beq .L2067 + beq .L2059 cmp r2, r3 - bhi .L2068 -.L2067: + bhi .L2060 +.L2059: cmn r3, #1 addne r2, r3, #1 - strne r2, [r8, #-3848] -.L2068: + strne r2, [r8, #-3336] +.L2060: ldrh r2, [r6] movw r1, #61604 cmp r2, r1 - beq .L2070 - bhi .L2071 + beq .L2062 + bhi .L2063 movw r3, #61574 cmp r2, r3 - bne .L2069 - ldr r2, .L2140+24 - ldr lr, [r8, #-2000] + bne .L2061 + ldr r2, .L2133+24 + ldr lr, [r8, #-464] ldrh ip, [r2] ldrh r1, [r2, #26] sub r0, ip, #1 rsb r2, r1, r0 - str r2, [sp, #16] + str r2, [sp, #12] uxth r3, r0 - b .L2084 -.L2071: + b .L2076 +.L2063: movw r3, #61634 cmp r2, r3 - beq .L2073 + beq .L2065 movw r3, #65535 cmp r2, r3 moveq r0, r5 - beq .L2134 - b .L2069 -.L2073: - ldr r3, [sp, #20] - ldr fp, .L2140+28 - ldr lr, [r4, #-1984] - ldr ip, [r3, #1900] - ldrh r2, [fp] - uxth r1, ip + beq .L2127 + b .L2061 +.L2065: + ldr r3, [sp, #16] + ldr ip, .L2133+28 + ldr r9, [r4, #-448] + ldr lr, [r3, #2412] + ldrh r2, [ip] + uxth r1, lr sub r3, r1, #1 rsb r1, r2, r1 sub r1, r1, #1 uxth r3, r3 sxth r1, r1 - str r1, [sp, #24] -.L2075: - ldr r1, [sp, #24] + str r1, [sp, #20] +.L2067: + ldr r1, [sp, #20] sxth r0, r3 cmp r0, r1 - ble .L2136 + ble .L2129 mov r10, r0, asl #2 ldr r1, [r6, #4] - str r10, [sp, #16] - ldr r10, [lr, r0, asl #2] + str r10, [sp, #12] + ldr r10, [r9, r0, asl #2] cmp r1, r10 - bls .L2076 - ldr r1, [lr] + bls .L2068 + ldr r1, [r9] cmp r1, #0 - bne .L2077 - cmp r2, ip - addne r2, r2, #1 - strneh r2, [fp] @ movhi -.L2077: - uxth lr, r3 - mov r1, #0 -.L2078: - uxth r2, r1 + bne .L2069 cmp r2, lr - bcs .L2137 - ldr ip, [r7, #-1984] + addne r2, r2, #1 + strneh r2, [ip] @ movhi +.L2069: + uxth r9, r3 + mov r1, #0 +.L2070: + uxth r2, r1 + cmp r2, r9 + bcs .L2130 + ldr lr, [r7, #-448] sxth r2, r2 add r1, r1, #1 - add r10, ip, r2, asl #2 + add r10, lr, r2, asl #2 ldr r10, [r10, #4] - str r10, [ip, r2, asl #2] + str r10, [lr, r2, asl #2] mov r2, r2, asl #1 - ldr ip, [r7, #-2012] - add r10, ip, r2 + ldr lr, [r7, #-476] + add r10, lr, r2 ldrh r10, [r10, #2] - strh r10, [ip, r2] @ movhi - b .L2078 -.L2137: - ldr r2, [r4, #-1984] + strh r10, [lr, r2] @ movhi + b .L2070 +.L2130: + ldr r2, [r4, #-448] mov r0, r0, asl #1 ldr r1, [r6, #4] - ldr ip, [sp, #16] - str r1, [r2, ip] - ldr r2, [r4, #-2012] + ldr lr, [sp, #12] + str r1, [r2, lr] + ldr r2, [r4, #-476] strh r5, [r2, r0] @ movhi sxth r0, r3 cmp r0, #0 - bge .L2080 - b .L2069 -.L2076: + bge .L2072 + b .L2061 +.L2068: sub r3, r3, #1 uxth r3, r3 - b .L2075 -.L2136: + b .L2067 +.L2129: cmp r0, #0 - bge .L2111 - b .L2069 -.L2080: - ldr r2, .L2140+28 - ldr r1, [r9, #1900] - ldrh r2, [r2] + bge .L2103 + b .L2061 +.L2072: + ldr r1, .L2133 + ldrh r2, [ip] + ldr r1, [r1, #2412] rsb r1, r2, r1 sub r1, r1, #1 sxth r1, r1 cmp r0, r1 - bgt .L2069 -.L2111: + bgt .L2061 +.L2103: add r2, r2, #1 ldr r1, [r6, #4] - strh r2, [fp] @ movhi + strh r2, [ip] @ movhi sxth r3, r3 - ldr r2, [r4, #-1984] + ldr r2, [r4, #-448] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r4, #-2012] - b .L2132 -.L2090: - ldr r10, [lr, r2, asl #2] - mov fp, r2, asl #2 + ldr r2, [r4, #-476] + b .L2124 +.L2082: + ldr r9, [lr, r2, asl #2] + mov r10, r2, asl #2 ldr r0, [r6, #4] - cmp r0, r10 - bhi .L2138 + cmp r0, r9 + bhi .L2131 sub r3, r3, #1 uxth r3, r3 -.L2084: - ldr r0, [sp, #16] +.L2076: + ldr r0, [sp, #12] sxth r2, r3 cmp r2, r0 - bgt .L2090 - b .L2089 -.L2138: + bgt .L2082 + b .L2081 +.L2131: ldr r0, [lr] cmp r0, #0 - bne .L2086 + bne .L2078 cmp r1, ip addne r1, r1, #1 - ldrne r0, .L2140+32 + ldrne r0, .L2133+32 strneh r1, [r0] @ movhi -.L2086: +.L2078: uxth lr, r3 mov r0, #0 -.L2087: +.L2079: uxth r1, r0 cmp r1, lr - bcs .L2139 - ldr ip, [r4, #-2000] + bcs .L2132 + ldr ip, [r4, #-464] sxth r1, r1 add r0, r0, #1 - add r10, ip, r1, asl #2 - ldr r10, [r10, #4] - str r10, [ip, 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 ip, [r9, #1920] - add r10, ip, r1 - ldrh r10, [r10, #2] - strh r10, [ip, r1] @ movhi - b .L2087 -.L2139: - ldr r1, [r8, #-2000] + ldr ip, .L2133 + ldr ip, [ip, #2432] + add r9, ip, r1 + ldrh r9, [r9, #2] + strh r9, [ip, r1] @ movhi + b .L2079 +.L2132: + ldr r1, [r8, #-464] mov r2, r2, asl #1 ldr r0, [r6, #4] - str r0, [r1, fp] - ldr r1, .L2140 - ldr r1, [r1, #1920] + str r0, [r1, r10] + ldr r1, .L2133 + ldr r1, [r1, #2432] strh r5, [r1, r2] @ movhi -.L2089: +.L2081: sxth r3, r3 cmp r3, #0 - blt .L2069 - ldr r0, .L2140+32 + blt .L2061 + ldr r0, .L2133+32 ldrh r2, [r0, #-26] ldrh r1, [r0] sub r2, r2, #1 rsb r2, r1, r2 sxth r2, r2 cmp r3, r2 - bgt .L2069 + bgt .L2061 add r1, r1, #1 - ldr r2, [r8, #-2000] + ldr r2, [r8, #-464] strh r1, [r0] @ movhi ldr r1, [r6, #4] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r9, #1920] -.L2132: + ldr r2, .L2133 + ldr r2, [r2, #2432] +.L2124: strh r5, [r2, r3] @ movhi - b .L2069 -.L2070: - ldr r2, .L2140+8 + b .L2061 +.L2062: + ldr r2, .L2133+8 movw r1, #65535 ldrh r0, [r2] cmp r0, r1 streqh r5, [r2] @ movhi - beq .L2133 + beq .L2125 ldrh r0, [r2, #4] cmp r0, r1 - beq .L2092 + beq .L2084 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2092: +.L2084: ldr r3, [r6, #4] - ldr r2, [r8, #-3808] + ldr r2, [r8, #-3296] cmp r2, r3 - ldr r3, .L2140+8 + ldr r3, .L2133+8 strcsh r5, [r3, #4] @ movhi - bcs .L2069 + bcs .L2061 ldrh r2, [r3] strh r5, [r3] @ movhi strh r2, [r3, #4] @ movhi ldr r3, [r6, #4] -.L2133: - str r3, [r7, #-3808] - b .L2069 -.L2066: - ldrb r1, [r9, #140] @ zero_extendqisi2 - mov r0, r5 - cmp r1, #0 - beq .L2094 -.L2134: - mov r1, #0 -.L2094: - bl FtlFreeSysBlkQueueIn -.L2069: - ldr r3, [sp, #12] - add r3, r3, #1 - str r3, [sp, #12] +.L2125: + str r3, [r7, #-3296] b .L2061 -.L2060: +.L2058: + ldr r3, .L2133 + mov r0, r5 + ldrb r1, [r3, #140] @ zero_extendqisi2 + cmp r1, #0 + beq .L2086 +.L2127: + mov r1, #0 +.L2086: + bl FtlFreeSysBlkQueueIn +.L2061: ldr r3, [sp, #8] + add r3, r3, #1 + b .L2126 +.L2052: + ldr r3, [sp, #4] add r5, r3, #1 uxth r3, r5 - str r3, [sp, #8] - b .L2056 -.L2097: - ldr r3, .L2140+4 - ldr ip, [r3, #-2012] + str r3, [sp, #4] + b .L2048 +.L2089: + ldr r3, .L2133+4 + ldr ip, [r3, #-476] ldrh r2, [ip] cmp r2, #0 - beq .L2099 -.L2102: - ldr r0, [r0, #1920] - ldr r3, .L2140 + beq .L2091 +.L2094: + ldr r0, [r0, #2432] + ldr r3, .L2133 ldrh r2, [r0] cmp r2, #0 - beq .L2100 - b .L2123 -.L2099: - sub r3, r3, #1920 - ldrh r3, [r3, #-8] + beq .L2092 + b .L2115 +.L2091: + sub r3, r3, #392 + ldrh r3, [r3] cmp r3, #0 - ldrne lr, [r0, #1900] - beq .L2102 -.L2103: + ldrne lr, [r0, #2412] + beq .L2094 +.L2095: uxth r3, r2 sxth r1, r3 cmp r1, lr - bcs .L2102 + bcs .L2094 mov r5, r1, asl #1 add r2, r2, #1 ldrh r5, [ip, r5] cmp r5, #0 - beq .L2103 + beq .L2095 mov r6, #0 -.L2104: - ldr ip, [r0, #1900] +.L2096: + ldr ip, [r0, #2412] sxth r2, r3 cmp r2, ip - bcs .L2102 - ldr lr, [r4, #-2012] + bcs .L2094 + ldr lr, [r4, #-476] mov ip, r2, asl #1 rsb r5, r1, r2 add r3, r3, #1 @@ -12413,38 +12300,38 @@ FtlScanSysBlk: mov r7, r5, asl #1 uxth r3, r3 strh r8, [lr, r7] @ movhi - ldr lr, [r4, #-1984] + ldr lr, [r4, #-448] ldr r2, [lr, r2, asl #2] str r2, [lr, r5, asl #2] - ldr r2, [r4, #-2012] + ldr r2, [r4, #-476] strh r6, [r2, ip] @ movhi - b .L2104 -.L2100: - movw r1, #1918 + b .L2096 +.L2092: + movw r1, #2430 ldrh r1, [r3, r1] cmp r1, #0 - movwne r1, #1892 + movwne r1, #2404 ldrneh ip, [r3, r1] - beq .L2123 -.L2107: + beq .L2115 +.L2099: uxth r3, r2 sxth r1, r3 cmp r1, ip - bge .L2123 + bge .L2115 mov lr, r1, asl #1 add r2, r2, #1 ldrh lr, [r0, lr] cmp lr, #0 - beq .L2107 - ldr r0, .L2140 + beq .L2099 + ldr r0, .L2133 mov r7, #0 - ldr r6, .L2140+24 -.L2108: + ldr r6, .L2133+24 +.L2100: ldrh ip, [r6] sxth r2, r3 cmp r2, ip - bge .L2123 - ldr lr, [r0, #1920] + bge .L2115 + ldr lr, [r0, #2432] mov ip, r2, asl #1 rsb r5, r1, r2 add r3, r3, #1 @@ -12452,29 +12339,29 @@ FtlScanSysBlk: mov r8, r5, asl #1 uxth r3, r3 strh r9, [lr, r8] @ movhi - ldr lr, [r4, #-2000] + ldr lr, [r4, #-464] ldr r2, [lr, r2, asl #2] str r2, [lr, r5, asl #2] - ldr r2, [r0, #1920] + ldr r2, [r0, #2432] strh r7, [r2, ip] @ movhi - b .L2108 -.L2123: + b .L2100 +.L2115: mov r0, #0 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2141: +.L2134: .align 2 -.L2140: +.L2133: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2-3816 - .word .LANCHOR0+1814 - .word .LANCHOR0+1884 - .word .LANCHOR0+1804 - .word .LANCHOR0+1892 - .word .LANCHOR2-1928 - .word .LANCHOR0+1918 + .word .LANCHOR2-3304 + .word .LANCHOR0+2326 + .word .LANCHOR0+2316 + .word .LANCHOR0+2396 + .word .LANCHOR0+2404 + .word .LANCHOR2-392 + .word .LANCHOR0+2430 .fnend .size FtlScanSysBlk, .-FtlScanSysBlk .align 2 @@ -12487,58 +12374,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, .L2171 + ldr r4, .L2164 .pad #36 sub sp, sp, #36 - ldr r6, .L2171+4 - sub r7, r4, #3808 - ldr r3, [r4, #-2064] - ldr r0, [r4, #-4060] - str r3, [r4, #220] - ldr r3, [r4, #-2040] - str r3, [r4, #224] - movw r3, #1812 + ldr r6, .L2164+4 + sub r7, r4, #3296 + ldr r3, [r4, #-528] + ldr r0, [r4, #-3548] + str r3, [r4, #1756] + ldr r3, [r4, #-504] + str r3, [r4, #1760] + movw r3, #2324 ldrh r2, [r6, r3] mov r2, r2, asl #1 bl ftl_memset ldrh r0, [r7, #-8] movw r3, #65535 cmp r0, r3 - bne .L2143 -.L2154: + bne .L2136 +.L2147: mvn r0, #0 - b .L2144 -.L2143: + b .L2137 +.L2136: mov r1, #1 bl FtlGetLastWrittenPage - ldr r3, .L2171+8 + ldr r3, .L2164+8 ldrh r9, [r7, #-8] mov r7, r4 uxth r5, r0 add r0, r0, #1 strh r0, [r3, #2] @ movhi -.L2145: +.L2138: sxth r3, r5 cmp r3, #0 - blt .L2153 + blt .L2146 sxth fp, r9 mov r1, #1 - ldr r0, .L2171+12 + ldr r0, .L2164+12 mov r2, r1 orr r3, r3, fp, asl #10 - str r3, [r4, #216] - ldr r3, [r4, #-2064] - str r3, [r4, #220] + str r3, [r4, #1752] + ldr r3, [r4, #-528] + str r3, [r4, #1756] bl FlashReadPages ldrb r3, [r6] @ zero_extendqisi2 cmp r3, #0 - beq .L2146 - ldr r8, [r7, #224] + beq .L2139 + ldr r8, [r7, #1760] ldr r3, [r8, #12] cmp r3, #0 - beq .L2146 - ldr r2, [r7, #220] - ldr r10, .L2171+16 + beq .L2139 + ldr r2, [r7, #1756] + ldr r10, .L2164+16 str r3, [sp, #28] mov r0, r2 str r2, [sp, #24] @@ -12546,14 +12433,14 @@ FtlLoadSysInfo: bl js_hash ldr r3, [sp, #28] cmp r3, r0 - beq .L2146 + beq .L2139 cmp r5, #0 ldr r2, [sp, #24] - bne .L2147 - ldr ip, .L2171+8 + bne .L2140 + ldr ip, .L2164+8 ldrh r1, [ip, #4] cmp fp, r1 - beq .L2147 + beq .L2140 ldr r0, [r8] ldrh r1, [ip] str ip, [sp, #24] @@ -12564,216 +12451,217 @@ FtlLoadSysInfo: str r3, [sp, #12] str r0, [sp, #8] ldr r3, [r2] - ldr r0, .L2171+20 + ldr r0, .L2164+20 str r3, [sp, #16] - ldr r2, [r7, #212] - ldr r3, [r7, #216] + ldr r2, [r7, #1748] + ldr r3, [r7, #1752] bl printk ldrh r5, [r10, #-8] ldr ip, [sp, #24] ldrh r9, [ip, #4] - b .L2149 -.L2147: + b .L2142 +.L2140: mvn r3, #0 - str r3, [r4, #212] -.L2146: - ldr r3, [r4, #212] + str r3, [r4, #1748] +.L2139: + ldr r3, [r4, #1748] cmn r3, #1 - beq .L2149 - ldr r3, [r7, #-2064] - ldr r2, .L2171+24 + beq .L2142 + ldr r3, [r7, #-528] + ldr r2, .L2164+24 ldr r3, [r3] cmp r3, r2 - bne .L2149 - ldr r3, [r7, #-2040] + bne .L2142 + ldr r3, [r7, #-504] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L2149 -.L2153: - ldr r1, [r4, #220] + bne .L2142 +.L2146: + ldr r1, [r4, #1756] mov r2, #48 - movw r8, #1812 - ldr r0, .L2171+28 + movw r8, #2324 + ldr r0, .L2164+28 bl ftl_memcpy ldrh r2, [r6, r8] - ldr r1, [r4, #220] - ldr r0, [r4, #-4060] + ldr r1, [r4, #1756] + ldr r0, [r4, #-3548] add r1, r1, #48 mov r2, r2, asl #1 bl ftl_memcpy ldrh r2, [r6, r8] - ldr r1, [r4, #220] + ldr r1, [r4, #1756] add r3, r2, #24 - ldr r0, [r4, #-3884] + ldr r0, [r4, #-3372] ubfx r3, r3, #1, #30 mov r2, r2, lsr #3 add r2, r2, #4 - ldr r7, .L2171+4 + ldr r5, .L2164 add r1, r1, r3, asl #2 - ldr r5, .L2171 + ldr r7, .L2164+4 bl ftl_memcpy - movw r3, #1916 + movw r3, #2428 ldrh r3, [r6, r3] cmp r3, #0 - beq .L2151 + beq .L2144 ldrh r2, [r7, r8] - ldr r1, [r5, #220] - ldr r0, [r5, #-1988] + ldr r1, [r5, #1756] + ldr r0, [r5, #-452] mov r3, r2, lsr #3 add r3, r3, r2, asl #1 - movw r2, #1908 + movw r2, #2420 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 .L2151 -.L2149: + b .L2144 +.L2142: sub r5, r5, #1 uxth r5, r5 - b .L2145 -.L2151: - ldr r2, [r6, #4068] - ldr r3, .L2171+24 - ldr r5, .L2171+4 + b .L2138 +.L2144: + ldr r2, [r4, #-3604] + ldr r3, .L2164+24 + ldr r5, .L2164 cmp r2, r3 - bne .L2154 - ldr r7, .L2171+28 - movw r2, #1826 - ldr r6, .L2171 - ldrb r1, [r5, #4078] @ zero_extendqisi2 - ldrh r2, [r5, r2] - sub r8, r6, #3808 - ldrh r3, [r7, #8] - cmp r1, r2 - strh r3, [r8, #-2] @ movhi - bne .L2154 - add r2, r5, #1872 - movw r1, #1878 - ldrh r1, [r5, r1] - ldrh r2, [r2] - str r3, [r6, #248] - mul r2, r3, r2 - str r2, [r5, #1932] - mul r2, r1, r2 - str r2, [r5, #1912] - add r2, r5, #1936 - ldrh r0, [r2, #6] - ldr r2, [r5, #1816] - rsb r0, r0, r2 - rsb r0, r3, r0 - movw r3, #1804 - ldrh r1, [r5, r3] - add r5, r5, #4096 + bne .L2147 + ldr r7, .L2164+28 + movw r1, #2338 + ldrb r0, [r5, #-3594] @ zero_extendqisi2 + sub r8, r5, #3296 + ldrh r1, [r6, r1] + add r3, r7, #300 + 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 + ldrh r0, [r3, r0] + ldrh r1, [r1] + str r2, [r5, #1784] + mul r1, r2, r1 + str r1, [r3, #2444] + mul r1, r0, r1 + str r1, [r3, #2424] + add r1, r3, #2448 + ldrh r0, [r1, #6] + ldr r1, [r3, #2328] + rsb r0, r0, r1 + rsb r0, r2, r0 + movw r2, #2316 + ldrh r1, [r3, r2] bl __aeabi_uidiv - sub r3, r6, #4032 - sub r2, r6, #3984 - sub ip, r6, #3792 - add lr, r2, #40 - mov r9, r2 + sub r3, r5, #3520 + add r2, r7, #76 + sub lr, r5, #3280 + sub ip, r5, #3424 strh r0, [r8, #-12] @ movhi + mov r8, ip ldrh r0, [r7, #14] strh r0, [r3, #-8] @ movhi ldrh r3, [r7, #16] mov r1, r3, lsr #6 - strh r1, [r8, #-230] @ movhi - ldrh r1, [r7, #18] and r3, r3, #63 - strb r3, [r6, #-4034] - ldrb r3, [r5, #-17] @ zero_extendqisi2 + strb r3, [r5, #-3522] + ldrb r3, [r5, #-3593] @ zero_extendqisi2 + strh r1, [r7, #78] @ movhi + ldrh r1, [r7, #18] + strb r3, [r5, #-3520] + mvn r3, #0 + strh r3, [lr, #-8] @ movhi + mov r3, #0 + strh r3, [r2, #242] @ movhi + sub r2, r5, #3472 + strb r3, [r5, #-3282] strh r1, [r2, #-8] @ movhi ldrh r1, [r7, #20] - strb r3, [r6, #-4032] - mvn r3, #0 - strh r3, [ip, #-8] @ movhi - mov r3, #0 - strh r3, [r8, #10] @ movhi - mov r8, r1, lsr #6 + strb r3, [r5, #-3280] + str r3, [r5, #-3348] + mov r6, r1, lsr #6 and r1, r1, #63 - strb r1, [r6, #-3986] - ldrb r1, [r5, #-16] @ zero_extendqisi2 - strh r8, [r2, #-6] @ movhi - sub r8, r6, #3936 - strb r3, [r6, #-3794] - strb r1, [r6, #-3984] + strb r1, [r5, #-3474] + ldrb r1, [r5, #-3592] @ zero_extendqisi2 + strh r6, [r2, #-6] @ movhi + mov r6, r2 + strb r1, [r5, #-3472] ldrh r1, [r7, #22] - strb r3, [r6, #-3792] - str r3, [r6, #-3860] - strh r1, [r8, #-8] @ movhi + strh r1, [ip, #-8] @ movhi ldrh r1, [r7, #24] mov r7, r1, lsr #6 and r1, r1, #63 - strb r1, [r6, #-3938] - ldrb r1, [r5, #-15] @ zero_extendqisi2 + strb r1, [r5, #-3426] + ldrb r1, [r5, #-3591] @ zero_extendqisi2 strh r7, [r2, #42] @ movhi - mov r7, ip - strb r1, [r6, #-3936] - str r3, [r6, #-3872] - ldr r1, [r5, #4] - str r3, [r6, #-3880] - str r3, [r6, #-3864] - str r3, [r6, #-3836] - str r3, [r6, #-3828] - str r3, [r6, #-3868] - ldr r3, [r5, #12] - str r1, [r6, #-3840] - ldr r1, [r6, #-3848] - ldr r2, [r4, #-3844] + 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] + str r3, [r5, #-3356] + ldr r3, [r5, #-3564] + str r1, [r5, #-3328] + ldr r1, [r5, #-3336] + ldr r2, [r4, #-3332] cmp r3, r1 - strhi r3, [r6, #-3848] - ldr r3, [r5, #8] + strhi r3, [r5, #-3336] + ldr r3, [r4, #-3568] cmp r3, r2 - ldrhi r2, .L2171 - strhi r3, [r2, #-3844] + ldrhi r2, .L2164 + strhi r3, [r2, #-3332] movw r3, #65535 cmp r0, r3 - beq .L2157 - ldr r0, .L2171+32 + beq .L2150 + ldr r0, .L2164+32 bl make_superblock -.L2157: - ldrh r2, [r9, #-8] +.L2150: + ldrh r2, [r6, #-8] movw r3, #65535 cmp r2, r3 - beq .L2158 - ldr r0, .L2171+36 + beq .L2151 + ldr r0, .L2164+36 bl make_superblock -.L2158: +.L2151: ldrh r2, [r8, #-8] movw r3, #65535 cmp r2, r3 - beq .L2159 - ldr r0, .L2171+40 + beq .L2152 + ldr r0, .L2164+40 bl make_superblock -.L2159: +.L2152: ldrh r2, [r7, #-8] movw r3, #65535 cmp r2, r3 - beq .L2160 - ldr r0, .L2171+44 + beq .L2153 + ldr r0, .L2164+44 bl make_superblock -.L2160: +.L2153: mov r0, #0 -.L2144: +.L2137: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2172: +.L2165: .align 2 -.L2171: +.L2164: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-3816 - .word .LANCHOR2+212 - .word .LANCHOR0+1882 + .word .LANCHOR2-3304 + .word .LANCHOR2+1748 + .word .LANCHOR0+2394 .word .LC107 .word 1179929683 - .word .LANCHOR0+4068 - .word .LANCHOR2-4040 - .word .LANCHOR2-3992 - .word .LANCHOR2-3944 - .word .LANCHOR2-3800 + .word .LANCHOR2-3604 + .word .LANCHOR2-3528 + .word .LANCHOR2-3480 + .word .LANCHOR2-3432 + .word .LANCHOR2-3288 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 @@ -12781,34 +12669,31 @@ FtlLoadSysInfo: .type FtlDumpBlockInfo, %function FtlDumpBlockInfo: .fnstart - @ args = 0, pretend = 0, frame = 80 + @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2188 - ubfx r0, r0, #10, #16 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #108 - sub sp, sp, #108 - ldr r3, [r3] + ubfx r0, r0, #10, #16 + .pad #100 + sub sp, sp, #100 mov r4, r1 - ldr r8, .L2188+4 - ldr r7, .L2188+8 - str r3, [sp, #100] bl P2V_block_in_plane - add r5, r8, #1872 - ldr r1, .L2188+12 + ldr r8, .L2180 + ldr r7, .L2180+4 + add r5, r8, #2384 + ldr r1, .L2180+8 ldrh r9, [r5] mov r6, r0 - ldr r0, .L2188+16 + ldr r0, .L2180+12 bl printk - ldr r2, [r7, #-4060] + ldr r2, [r7, #-3548] mov r3, r6, asl #1 mov r1, r6 - ldr r0, .L2188+20 + ldr r0, .L2180+16 ldrh r2, [r2, r3] bl printk - add r0, sp, #104 - strh r6, [r0, #-52]! @ movhi + add r0, sp, #96 + strh r6, [r0, #-48]! @ movhi bl make_superblock ldrb r2, [r8, #140] @ zero_extendqisi2 clz r3, r4 @@ -12818,47 +12703,47 @@ FtlDumpBlockInfo: cmp r3, #0 moveq r4, r3 str r7, [sp, #44] - beq .L2174 + beq .L2167 mov r0, r6 bl ftl_get_blk_mode cmp r0, #1 mov r4, r0 - movweq r3, #1874 + movweq r3, #2386 ldreqh r9, [r8, r3] -.L2174: - ldr r0, .L2188+24 +.L2167: + ldr r0, .L2180+20 mov r1, r4 mov r2, r9 ldrh r3, [r5] bl printk - ldr r8, .L2188+8 + ldr r8, .L2180+4 mov r6, #0 -.L2175: - ldr r3, .L2188+28 - add r0, sp, #66 +.L2168: + ldr r3, .L2180+24 + add r0, sp, #62 movw lr, #65535 mov r10, #36 ldrh r3, [r3] mov r7, r3 - ldr r3, [r8, #-2076] + ldr r3, [r8, #-540] str r3, [sp, #28] - ldr r3, [r8, #-3212] + ldr r3, [r8, #-2700] str r3, [sp, #32] - ldr r3, .L2188+32 + ldr r3, .L2180+28 ldrh r2, [r3] ldrh ip, [r3, #2] str r2, [sp, #36] - ldr r2, [r8, #-3208] + ldr r2, [r8, #-2696] str r2, [sp, #40] mov r2, #0 mov r5, r2 -.L2176: +.L2169: uxth r3, r2 cmp r3, r7 - bcs .L2186 + bcs .L2178 ldrh r3, [r0, #2]! cmp r3, lr - beq .L2177 + beq .L2170 ldr r1, [sp, #28] orr r3, r6, r3, asl #10 mla r1, r10, r5, r1 @@ -12882,24 +12767,24 @@ FtlDumpBlockInfo: bic r3, r3, #3 add r3, fp, r3 str r3, [r1, #12] -.L2177: +.L2170: add r2, r2, #1 - b .L2176 -.L2186: - ldr r0, [r8, #-2076] + b .L2169 +.L2178: + ldr r0, [r8, #-540] mov r1, r5 mov r2, r4 mov r10, #0 bl FlashReadPages mov fp, #36 -.L2179: +.L2172: uxth r3, r10 cmp r3, r5 - bcs .L2187 + bcs .L2179 ldr r3, [sp, #44] mul r2, fp, r10 - ldrh r1, [sp, #52] - ldr lr, [r3, #-2076] + ldrh r1, [sp, #48] + ldr lr, [r3, #-540] add r10, r10, #1 add ip, lr, r2 ldr r3, [ip, #12] @@ -12915,41 +12800,33 @@ FtlDumpBlockInfo: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2188+36 + ldr r0, .L2180+32 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2179 -.L2187: + b .L2172 +.L2179: add r6, r6, #1 uxth r6, r6 cmp r6, r9 - bne .L2175 -.L2181: - ldr r3, .L2188 + bne .L2168 +.L2174: mov r0, #0 - ldr r2, [sp, #100] - ldr r3, [r3] - cmp r2, r3 - beq .L2182 - bl __stack_chk_fail -.L2182: - add sp, sp, #108 + add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2189: +.L2181: .align 2 -.L2188: - .word __stack_chk_guard +.L2180: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3+16 .word .LC108 .word .LC109 .word .LC110 - .word .LANCHOR0+1804 - .word .LANCHOR0+1882 + .word .LANCHOR0+2316 + .word .LANCHOR0+2394 .word .LC111 .fnend .size FtlDumpBlockInfo, .-FtlDumpBlockInfo @@ -12958,65 +12835,61 @@ FtlDumpBlockInfo: .type FtlScanAllBlock, %function FtlScanAllBlock: .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 #100 - sub sp, sp, #100 - ldr r5, .L2206 - mov r6, #0 - ldr r0, .L2206+4 - ldr r1, .L2206+8 - ldr r3, [r5] - str r3, [sp, #92] + .pad #92 + sub sp, sp, #92 + ldr r0, .L2197 + mov r7, #0 + ldr r1, .L2197+4 bl printk - str r5, [sp, #36] - ldr r5, .L2206+12 - mov r7, r5 -.L2191: - ldr r3, .L2206+16 - uxth r4, r6 + ldr r5, .L2197+8 + mov r6, r5 +.L2183: + ldr r3, .L2197+12 + uxth r4, r7 ldrh r3, [r3] cmp r3, r4 - bls .L2202 - add r8, sp, #96 + bls .L2193 + add r8, sp, #88 mov r0, r4 movw r9, #65535 mov r10, #36 - strh r4, [r8, #-52]! @ movhi + strh r4, [r8, #-48]! @ movhi bl ftl_get_blk_mode - ldr ip, [r5, #-4060] + ldr ip, [r5, #-3548] mov r2, r4, asl #1 mov r1, r4 ldrh r2, [ip, r2] mov r3, r0 - ldr r0, .L2206+20 + ldr r0, .L2197+16 bl printk mov r0, r8 bl make_superblock - ldr r3, .L2206+24 - ldr lr, [r5, #-3208] + ldr r3, .L2197+20 + ldr lr, [r5, #-2696] ldrh r2, [r3] ldrh ip, [r3, #78] ldrh r8, [r3, #80] - str r2, [sp, #24] - add r0, sp, #58 - ldr r2, [r5, #-2076] str r2, [sp, #28] - ldr r2, [r5, #-3212] + add r0, sp, #54 + ldr r2, [r5, #-540] str r2, [sp, #32] + ldr r2, [r5, #-2700] + str r2, [sp, #36] mov r2, #0 mov r4, r2 -.L2192: - ldr r1, [sp, #24] +.L2184: + ldr r1, [sp, #28] uxth r3, r2 cmp r3, r1 - bcs .L2203 + bcs .L2194 ldrh r3, [r0, #2]! cmp r3, r9 - beq .L2193 - ldr r1, [sp, #28] + beq .L2185 + ldr r1, [sp, #32] mov r3, r3, asl #10 mla r1, r10, r4, r1 str r3, [r1, #4] @@ -13024,7 +12897,7 @@ FtlScanAllBlock: add fp, r3, #3 cmp r3, #0 movlt r3, fp - ldr fp, [sp, #32] + ldr fp, [sp, #36] bic r3, r3, #3 add r3, fp, r3 str r3, [r1, #8] @@ -13037,23 +12910,23 @@ FtlScanAllBlock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2193: +.L2185: add r2, r2, #1 - b .L2192 -.L2203: - ldr r0, [r5, #-2076] + b .L2184 +.L2194: + ldr r0, [r6, #-540] mov r1, r4 mov r2, #0 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2195: +.L2187: uxth r3, r8 cmp r3, r4 - bcs .L2204 + bcs .L2195 mul r2, r9, r8 - ldr lr, [r7, #-2076] - ldrh r1, [sp, #44] + ldr lr, [r6, #-540] + ldrh r1, [sp, #40] add r8, r8, #1 add ip, lr, r2 ldr r3, [ip, #12] @@ -13069,26 +12942,26 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2206+28 + ldr r0, .L2197+24 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2195 -.L2204: - ldr r0, [r7, #-2076] + b .L2187 +.L2195: + ldr r0, [r6, #-540] mov r1, r4 mov r2, #1 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2197: +.L2189: uxth r3, r8 cmp r3, r4 - bcs .L2205 + bcs .L2196 mul r2, r9, r8 - ldr lr, [r7, #-2076] - ldrh r1, [sp, #44] + ldr lr, [r6, #-540] + ldrh r1, [sp, #40] add r8, r8, #1 add ip, lr, r2 ldr r3, [ip, #12] @@ -13104,37 +12977,29 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2206+32 + ldr r0, .L2197+28 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2197 -.L2205: - add r6, r6, #1 - b .L2191 -.L2202: - ldr r3, [sp, #36] + b .L2189 +.L2196: + add r7, r7, #1 + b .L2183 +.L2193: mov r0, #0 - ldr r2, [sp, #92] - ldr r3, [r3] - cmp r2, r3 - beq .L2200 - bl __stack_chk_fail -.L2200: - add sp, sp, #100 + add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2207: +.L2198: .align 2 -.L2206: - .word __stack_chk_guard +.L2197: .word .LC108 .word .LANCHOR3+36 .word .LANCHOR2 - .word .LANCHOR0+1814 + .word .LANCHOR0+2326 .word .LC112 - .word .LANCHOR0+1804 + .word .LANCHOR0+2316 .word .LC113 .word .LC114 .fnend @@ -13146,45 +13011,45 @@ ftl_scan_all_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2215 - movw r2, #1870 + 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, #1872 + add r7, r3, #2384 ldrh r1, [r3, r2] .pad #28 sub sp, sp, #28 - ldr r0, .L2215+4 + ldr r0, .L2206+4 sub r9, r7, #2 ldrh r2, [r7] mov r6, #0 bl printk - ldr r4, .L2215+8 -.L2209: + ldr r4, .L2206+8 +.L2200: ldrh r3, [r9] cmp r6, r3 - bcs .L2211 + bcs .L2202 mov r8, r6, asl #10 mov r5, #0 -.L2212: +.L2203: ldrh r3, [r7] cmp r5, r3 - bcs .L2214 + bcs .L2205 add r3, r5, r8 - str r3, [r4, #216] - ldr r3, [r4, #-2064] + str r3, [r4, #1752] + ldr r3, [r4, #-528] mov r2, #0 mov r1, #1 - ldr r0, .L2215+12 - str r2, [r4, #212] + ldr r0, .L2206+12 + str r2, [r4, #1748] add r5, r5, #1 - str r3, [r4, #220] - ldr r3, [r4, #-2040] - str r3, [r4, #224] + str r3, [r4, #1756] + ldr r3, [r4, #-504] + str r3, [r4, #1760] bl FlashReadPages - ldr r3, [r4, #224] - ldr r2, [r4, #220] - ldr r0, .L2215+16 + ldr r3, [r4, #1760] + ldr r2, [r4, #1756] + ldr r0, .L2206+16 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -13194,29 +13059,29 @@ ftl_scan_all_ppa: ldr r1, [r2] str r1, [sp, #12] ldr r2, [r2, #4] - ldr r1, [r4, #216] + ldr r1, [r4, #1752] str r2, [sp, #16] - ldr r2, [r4, #212] + ldr r2, [r4, #1748] ldr r3, [r3] bl printk - b .L2212 -.L2214: + b .L2203 +.L2205: add r6, r6, #1 - b .L2209 -.L2211: - ldr r0, .L2215+20 - ldr r1, .L2215+24 + b .L2200 +.L2202: + ldr r0, .L2206+20 + ldr r1, .L2206+24 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, lr} b printk -.L2216: +.L2207: .align 2 -.L2215: +.L2206: .word .LANCHOR0 .word .LC115 .word .LANCHOR2 - .word .LANCHOR2+212 + .word .LANCHOR2+1748 .word .LC116 .word .LC117 .word .LANCHOR3+52 @@ -13229,32 +13094,29 @@ FlashProgPages: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L2275 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 - ldr ip, [ip] + ldr r5, .L2265 mov r4, r0 - ldr r5, .L2275+4 - mov r9, r2 str r1, [sp, #8] - str ip, [sp, #68] - ldr ip, [r5, #692] - ldrb r7, [r5] @ zero_extendqisi2 + mov r9, r2 str r3, [sp, #20] + ldr ip, [r5, #1204] + ldrb r7, [r5] @ zero_extendqisi2 ldrb ip, [ip, #19] @ zero_extendqisi2 cmp r7, #0 str ip, [sp, #16] - ldr ip, .L2275+8 + ldr ip, .L2265+4 ldrb ip, [ip, #481] @ zero_extendqisi2 str ip, [sp, #12] - beq .L2218 + beq .L2209 bl FlashProgSlc2KPages - b .L2219 -.L2232: + b .L2210 +.L2223: mov r3, #36 - add r2, sp, #24 + add r2, sp, #28 mul r8, r3, r7 ldr r3, [sp, #8] mov r1, r9 @@ -13263,102 +13125,102 @@ FlashProgPages: uxtb r3, r3 str r3, [sp] mov r0, fp - add r3, sp, #28 + add r3, sp, #32 bl LogAddr2PhyAddr - ldrb r2, [r5, #1717] @ zero_extendqisi2 - ldr r3, [sp, #28] + ldrb r2, [r5, #2229] @ zero_extendqisi2 + ldr r3, [sp, #32] mov r10, r0 cmp r3, r2 mvncs r3, #0 strcs r3, [r4, r8] - bcc .L2272 -.L2221: + bcc .L2262 +.L2212: add r7, r7, #1 -.L2218: +.L2209: ldr r3, [sp, #8] - ldr r6, .L2275+4 + ldr r6, .L2265 cmp r7, r3 - bcc .L2232 - b .L2273 -.L2272: - ldrb r1, [r5, #1793] @ zero_extendqisi2 + bcc .L2223 + b .L2263 +.L2262: + ldrb r1, [r5, #2305] @ zero_extendqisi2 add r3, r5, r3, asl #4 cmp r1, #0 - ldr r3, [r3, #1596] + ldr r3, [r3, #2108] moveq r10, #0 cmp r3, #0 - beq .L2223 + beq .L2214 cmp r2, #1 - bne .L2224 + bne .L2215 ldr r0, [r5, #76] bl NandcIqrWaitFlashReady -.L2224: - ldrb r0, [sp, #28] @ zero_extendqisi2 +.L2215: + ldrb r0, [sp, #32] @ zero_extendqisi2 bl FlashWaitCmdDone -.L2223: - ldr r3, [sp, #28] +.L2214: + ldr r3, [sp, #32] mov r1, #0 cmp r10, #0 add r2, r5, r3, asl #4 - str r1, [r2, #1600] - ldr r1, [sp, #24] - str fp, [r2, #1596] - str r1, [r2, #1592] + str r1, [r2, #2112] + ldr r1, [sp, #28] + str fp, [r2, #2108] + str r1, [r2, #2104] addne r1, r8, #36 addne r1, r4, r1 - strne r1, [r2, #1600] + strne r1, [r2, #2112] add r2, r5, r3 add r3, r5, r3, asl #4 - ldrb r6, [r2, #1720] @ zero_extendqisi2 - strb r6, [r3, #1588] + ldrb r6, [r2, #2232] @ zero_extendqisi2 + strb r6, [r3, #2100] mov r0, r6 - ldrb r3, [r5, #1717] @ zero_extendqisi2 + ldrb r3, [r5, #2229] @ zero_extendqisi2 cmp r3, #1 - bne .L2226 + bne .L2217 bl NandcWaitFlashReady - b .L2227 -.L2226: + b .L2218 +.L2217: bl NandcFlashCs mov r0, r6 - ldr r3, [sp, #28] - ldr r1, [sp, #24] + ldr r3, [sp, #32] + ldr r1, [sp, #28] add r3, r5, r3, asl #2 - ldr r2, [r3, #656] + ldr r2, [r3, #1168] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN mov r0, r6 bl NandcFlashDeCs -.L2227: +.L2218: ldr r3, [sp, #16] sub r3, r3, #1 cmp r3, #7 - bhi .L2228 + bhi .L2219 add r3, r5, r6 - ldrb r3, [r3, #1552] @ zero_extendqisi2 + ldrb r3, [r3, #2064] @ zero_extendqisi2 cmp r3, #0 - beq .L2228 + beq .L2219 mov r0, r6 - ldrb r1, [r5, #699] @ zero_extendqisi2 - ldr r2, .L2275+12 + ldrb r1, [r5, #1211] @ zero_extendqisi2 + ldr r2, .L2265+8 mov r3, #0 bl HynixSetRRPara -.L2228: +.L2219: mov r0, r6 bl NandcFlashCs cmp r9, #1 mov r0, r6 - bne .L2229 + bne .L2220 ldrb r3, [r5, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L2229 + beq .L2220 bl flash_enter_slc_mode - b .L2230 -.L2229: + b .L2221 +.L2220: bl flash_exit_slc_mode -.L2230: +.L2221: mov r0, r6 - ldr r1, [sp, #24] + ldr r1, [sp, #28] bl FlashProgFirstCmd ldr r3, [fp, #12] mov r0, r6 @@ -13368,23 +13230,23 @@ FlashProgPages: ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L2231 + beq .L2222 mov r0, r6 - ldr r1, [sp, #24] + ldr r1, [sp, #28] bl FlashProgDpFirstCmd mov r0, r6 add r8, r8, #36 add r8, r4, r8 - ldr r3, [sp, #28] - ldr r1, [sp, #24] + ldr r3, [sp, #32] + ldr r1, [sp, #28] add r3, r5, r3, asl #2 - ldr r2, [r3, #656] + ldr r2, [r3, #1168] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN ldr r1, [r5, #4] mov r0, r6 - ldr r3, [sp, #24] + ldr r3, [sp, #28] add r1, r1, r3 bl FlashProgDpSecondCmd ldr r3, [r8, #12] @@ -13394,147 +13256,139 @@ FlashProgPages: ldr r2, [sp, #12] ldr r3, [r8, #8] bl NandcXferData -.L2231: +.L2222: mov r0, r6 - ldr r1, [sp, #24] + ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r6 bl NandcFlashDeCs add r7, r7, r10 - b .L2221 -.L2273: + b .L2212 +.L2263: ldr r0, [r6, #76] mov r5, #0 bl NandcIqrWaitFlashReady - ldr r8, .L2275+16 + ldr r8, .L2265+12 mov r7, r6 -.L2233: - ldrb r3, [r6, #1717] @ zero_extendqisi2 +.L2224: + ldrb r3, [r6, #2229] @ zero_extendqisi2 cmp r5, r3 - bcs .L2274 + bcs .L2264 uxtb r0, r5 bl FlashWaitCmdDone cmp r9, #1 - bne .L2234 + bne .L2225 ldrb r3, [r7, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L2234 + beq .L2225 ldrb r0, [r8, r5, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L2234: +.L2225: add r5, r5, #1 - b .L2233 -.L2274: + b .L2224 +.L2264: ldr r3, [sp, #20] cmp r3, #0 - bne .L2236 -.L2244: + bne .L2227 +.L2235: mov r0, #0 - b .L2219 -.L2236: - ldr r5, .L2275+20 + b .L2210 +.L2227: + ldr r5, .L2265+16 mov r6, #0 mov r7, r5 -.L2237: +.L2228: ldr r3, [sp, #8] cmp r6, r3 - beq .L2244 + beq .L2235 ldr r3, [r4] cmn r3, #1 - bne .L2238 + bne .L2229 ldr r1, [r4, #4] - ldr r0, .L2275+24 + ldr r0, .L2265+20 bl printk - b .L2239 -.L2238: + b .L2230 +.L2229: ldr r3, [sp, #8] mov r1, r9 - add r2, sp, #24 + add r2, sp, #28 mov r0, r4 rsb r3, r6, r3 uxtb r3, r3 str r3, [sp] - add r3, sp, #28 + add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r5, #184] + ldr r2, [r5, #1720] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r5, #188] + ldr r2, [r5, #1724] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} - add ip, sp, #32 + 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, #32 + add r0, sp, #36 ldr r3, [lr] mov r1, #1 mov r2, r9 str r3, [ip] - ldr r3, [r5, #184] - str r3, [sp, #40] - ldr r3, [r5, #188] + ldr r3, [r5, #1720] str r3, [sp, #44] + ldr r3, [r5, #1724] + str r3, [sp, #48] bl FlashReadPages - ldr r8, [sp, #32] + ldr r8, [sp, #36] cmn r8, #1 - bne .L2240 - ldr r0, .L2275+28 + bne .L2231 + ldr r0, .L2265+24 ldr r1, [r4, #4] bl printk str r8, [r4] -.L2240: +.L2231: ldr r3, [r4, #12] cmp r3, #0 - beq .L2241 + beq .L2232 ldr r2, [r3] - ldr r3, [r7, #188] + ldr r3, [r7, #1724] ldr r3, [r3] cmp r2, r3 - beq .L2241 - ldr r0, .L2275+32 + beq .L2232 + ldr r0, .L2265+28 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L2241: +.L2232: ldr r3, [r4, #8] cmp r3, #0 - beq .L2239 + beq .L2230 ldr r2, [r3] - ldr r3, [r7, #184] + ldr r3, [r7, #1720] ldr r3, [r3] cmp r2, r3 - beq .L2239 - ldr r0, .L2275+36 + beq .L2230 + ldr r0, .L2265+32 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L2239: +.L2230: add r6, r6, #1 add r4, r4, #36 - b .L2237 -.L2219: - ldr r3, .L2275 - ldr r2, [sp, #68] - ldr r3, [r3] - cmp r2, r3 - beq .L2245 - bl __stack_chk_fail -.L2245: + b .L2228 +.L2210: add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2276: +.L2266: .align 2 -.L2275: - .word __stack_chk_guard +.L2265: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR0+702 - .word .LANCHOR0+1588 + .word .LANCHOR0+1214 + .word .LANCHOR0+2100 .word .LANCHOR2 .word .LC103 .word .LC104 @@ -13549,65 +13403,54 @@ FlashTestBlk: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2282 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - .pad #104 - sub sp, sp, #104 - ldr r2, [r3] - mov r4, r0 - ldr r5, .L2282+4 - mov r6, r3 - str r2, [sp, #100] - ldr r2, [r5, #168] - cmp r0, r2 + stmfd sp!, {r4, r5, lr} + .save {r4, r5, lr} + .pad #108 + sub sp, sp, #108 + ldr r5, .L2271 + ldr r3, [r5, #1704] + cmp r0, r3 movcc r4, #0 - bcc .L2278 - ldr r3, [r5, #176] - add r0, sp, #36 + bcc .L2268 + ldr r3, [r5, #1712] + mov r4, r0 mov r1, #165 + add r0, sp, #40 mov r2, #32 - str r0, [sp, #12] - mov r4, r4, asl #10 - str r3, [sp, #8] + str r0, [sp, #16] + str r3, [sp, #12] bl ftl_memset mov r1, #90 mov r2, #8 - ldr r0, [r5, #176] + ldr r0, [r5, #1712] + mov r4, r4, asl #10 bl ftl_memset mov r1, #1 mov r2, r1 - mov r0, sp - str r4, [sp, #4] + add r0, sp, #4 + str r4, [sp, #8] bl FlashEraseBlocks mov r1, #1 mov r2, r1 mov r3, r1 - mov r0, sp + add r0, sp, #4 bl FlashProgPages mov r1, #0 mov r2, #1 - ldr r4, [sp] - mov r0, sp + ldr r4, [sp, #4] + add r0, sp, #4 adds r4, r4, #0 movne r4, #1 rsb r4, r4, #0 bl FlashEraseBlocks -.L2278: - ldr r2, [sp, #100] +.L2268: mov r0, r4 - ldr r3, [r6] - cmp r2, r3 - beq .L2279 - bl __stack_chk_fail -.L2279: - add sp, sp, #104 + add sp, sp, #108 @ sp needed - ldmfd sp!, {r4, r5, r6, pc} -.L2283: + ldmfd sp!, {r4, r5, pc} +.L2272: .align 2 -.L2282: - .word __stack_chk_guard +.L2271: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -13616,81 +13459,79 @@ FlashTestBlk: .type FlashMakeFactorBbt, %function FlashMakeFactorBbt: .fnstart - @ args = 0, pretend = 0, frame = 88 + @ args = 0, pretend = 0, frame = 80 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2340 - mov r1, #1 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #92 - sub sp, sp, #92 - ldr r3, [r3] - ldr r5, .L2340+4 - ldr r4, .L2340+8 - str r3, [sp, #84] - ldr r3, [r5, #180] + .pad #84 + sub sp, sp, #84 + ldr r5, .L2328 + mov r1, #1 + ldr r4, .L2328+4 + ldr r0, .L2328+8 + ldr r3, [r5, #1716] ldrh r8, [r4, #124] - ldr r0, .L2340+12 str r3, [sp, #20] ldrh r3, [r4, #126] smulbb r8, r8, r3 - ldr r3, [r4, #692] + ldr r3, [r4, #1204] 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, .L2340+8 + ldr r4, .L2328+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, #180] + ldr r0, [r5, #1716] mov r1, #0 mov r2, #4096 bl ftl_memset - ldr r5, .L2340+4 + ldr r5, .L2328 mov r3, r8, lsr #4 str r3, [sp, #28] mov r3, #0 str r3, [sp, #8] -.L2286: +.L2275: ldrb r7, [sp, #8] @ zero_extendqisi2 - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 cmp r3, r7 - bls .L2336 - add r3, r5, r7, asl #1 - ldrh r6, [r3, #196] + bls .L2324 + ldr r2, .L2328+12 + mov r3, r7, asl #1 + ldrh r6, [r2, r3] cmp r6, #0 - bne .L2316 + bne .L2304 ldrh r2, [r4, #132] mov r1, r6 - ldr r0, [r5, #148] + ldr r0, [r5, #1684] mov r9, r6 mov r2, r2, asl #9 bl ftl_memset add r3, r4, r7 - ldrb r10, [r3, #1720] @ zero_extendqisi2 + ldrb r10, [r3, #2232] @ zero_extendqisi2 mov r3, r7, asl #2 add fp, r4, r3 str r6, [sp, #4] str r3, [sp, #32] -.L2288: +.L2277: ldrh r3, [sp, #4] cmp r3, r8 str r3, [sp, #12] - bcs .L2297 + bcs .L2286 mvn r3, #0 - strb r3, [sp, #46] - strb r3, [sp, #47] + strb r3, [sp, #42] + strb r3, [sp, #43] ldr r3, [sp, #24] tst r3, #1 - beq .L2290 - ldr r3, [fp, #656] - add r2, sp, #46 + beq .L2279 + ldr r3, [fp, #1168] + add r2, sp, #42 mov r0, r10 add r3, r6, r3 str r3, [sp, #36] @@ -13699,71 +13540,71 @@ FlashMakeFactorBbt: ldrb r2, [r4] @ zero_extendqisi2 cmp r2, #1 ldr r3, [sp, #36] - bne .L2290 + bne .L2279 ldr r1, [r4, #4] - add r2, sp, #47 + add r2, sp, #43 mov r0, r10 add r1, r3, r1 bl FlashReadSpare - ldrb r3, [sp, #46] @ zero_extendqisi2 - ldrb r2, [sp, #47] @ zero_extendqisi2 + ldrb r3, [sp, #42] @ zero_extendqisi2 + ldrb r2, [sp, #43] @ zero_extendqisi2 and r3, r3, r2 - strb r3, [sp, #46] -.L2290: + strb r3, [sp, #42] +.L2279: ldr r3, [sp, #24] tst r3, #2 - beq .L2292 - ldr r3, [r4, #692] + beq .L2281 + ldr r3, [r4, #1204] mov r0, r10 - add r2, sp, #47 + add r2, sp, #43 ldrh r1, [r3, #10] - ldr r3, [fp, #656] + ldr r3, [fp, #1168] sub r1, r1, #1 add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L2292: - ldr r3, [r4, #692] +.L2281: + ldr r3, [r4, #1204] ldrb r3, [r3, #7] @ zero_extendqisi2 cmp r3, #1 cmpne r3, #8 - ldrb r3, [sp, #46] @ zero_extendqisi2 - bne .L2293 + ldrb r3, [sp, #42] @ zero_extendqisi2 + bne .L2282 cmp r3, #0 - ldrneb r0, [sp, #47] @ zero_extendqisi2 + ldrneb r0, [sp, #43] @ zero_extendqisi2 clzne r0, r0 movne r0, r0, lsr #5 - bne .L2294 - b .L2315 -.L2293: + bne .L2283 + b .L2303 +.L2282: cmp r3, #255 - bne .L2315 - ldrb r0, [sp, #47] @ zero_extendqisi2 + bne .L2303 + ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 movne r0, #1 - b .L2294 -.L2315: + b .L2283 +.L2303: mov r0, #1 -.L2294: +.L2283: ldr r3, [sp, #24] tst r3, #4 - beq .L2295 - ldr r3, .L2340+8 + beq .L2284 + ldr r3, .L2328+4 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 - ldr r1, [r3, #656] + ldr r1, [r3, #1168] add r1, r6, r1 bl SandiskProgTestBadBlock -.L2295: +.L2284: cmp r0, #0 - beq .L2296 + beq .L2285 mov r1, r7 ldr r2, [sp, #4] - ldr r0, .L2340+16 + ldr r0, .L2328+16 add r9, r9, #1 bl printk - ldr r1, [r5, #148] + ldr r1, [r5, #1684] mov ip, #1 uxth r9, r9 ldr r3, [sp, #12] @@ -13773,51 +13614,52 @@ FlashMakeFactorBbt: orr r3, r2, ip, asl r3 ldr r2, [sp, #28] str r3, [r1, r0, asl #2] - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 mul r3, r3, r2 cmp r9, r3 - bgt .L2297 -.L2296: + bgt .L2286 +.L2285: ldr r3, [sp, #4] add r3, r3, #1 str r3, [sp, #4] ldr r3, [sp, #16] add r6, r6, r3 - b .L2288 -.L2297: + b .L2277 +.L2286: mov r2, r9 - ldr r0, .L2340+20 + ldr r0, .L2328+20 mov r1, r7 bl printk - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 ldr r2, [sp, #28] mul r3, r3, r2 cmp r9, r3 - blt .L2299 + blt .L2288 ldrh r2, [r4, #132] mov r1, #0 - ldr r0, [r5, #148] + ldr r0, [r5, #1684] mov r2, r2, asl #9 bl ftl_memset -.L2299: +.L2288: cmp r7, #0 - ldreqh r10, [r5, #168] - moveq r6, r7 - moveq r9, #1 - bne .L2301 -.L2302: - ldr r3, .L2340+8 + bne .L2290 + ldr r3, [r5, #1704] + mov r6, r7 + mov r9, #1 + uxth r10, r3 +.L2291: + ldr r3, .L2328+4 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, r10 - bls .L2337 + bls .L2325 mov r0, r10 bl FlashTestBlk cmp r0, #0 - beq .L2303 + beq .L2292 mov r1, r10 - ldr r0, .L2340+24 + ldr r0, .L2328+24 bl printk - ldr r1, [r5, #148] + ldr r1, [r5, #1684] mov r0, r10, lsr #5 add r6, r6, #1 and r3, r10, #31 @@ -13825,60 +13667,61 @@ FlashMakeFactorBbt: uxth r6, r6 orr r3, r2, r9, asl r3 str r3, [r1, r0, asl #2] -.L2303: +.L2292: add r10, r10, #1 uxth r10, r10 - b .L2302 -.L2337: + b .L2291 +.L2325: sub fp, r8, #1 sub r9, r8, #50 mov r10, #1 uxth fp, fp -.L2305: +.L2294: cmp fp, r9 - ble .L2338 + ble .L2326 mov r0, fp bl FlashTestBlk cmp r0, #0 - beq .L2306 + beq .L2295 mov r1, fp - ldr r0, .L2340+24 + ldr r0, .L2328+24 bl printk - ldr r1, [r5, #148] + ldr r1, [r5, #1684] 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] -.L2306: +.L2295: sub fp, fp, #1 uxth fp, fp - b .L2305 -.L2338: - ldr r3, .L2340+8 - ldr r2, [r5, #168] + b .L2294 +.L2326: + ldr r3, .L2328+4 + ldr r2, [r5, #1704] ldrb r3, [r3, #1] @ zero_extendqisi2 rsb r3, r2, r3 cmp r6, r3 - bcc .L2301 + bcc .L2290 ldrh r2, [r4, #132] mov r1, #0 - ldr r0, [r5, #148] + ldr r0, [r5, #1684] mov r2, r2, asl #9 bl ftl_memset -.L2301: +.L2290: ldrb r6, [sp, #8] @ zero_extendqisi2 sub r10, r8, #1 - add r9, r5, r7, asl #1 + ldr r9, .L2328+12 uxth r10, r10 mul r6, r8, r6 -.L2309: + add r9, r9, r7, asl #1 +.L2298: mov r1, r7 - ldr r0, .L2340+28 + ldr r0, .L2328+28 mov r2, r10 bl printk - ldr r1, [r5, #148] -.L2310: + ldr r1, [r5, #1684] +.L2299: mov r2, r10, lsr #5 and r3, r10, #31 ldr r2, [r1, r2, asl #2] @@ -13886,58 +13729,51 @@ FlashMakeFactorBbt: ands r3, r3, #1 subne r10, r10, #1 uxthne r10, r10 - bne .L2310 -.L2339: + bne .L2299 +.L2327: ldr r1, [sp, #20] - add r0, sp, #48 - ldr r2, .L2340+32 - strh r10, [r9, #196] @ movhi + add r0, sp, #44 + ldr r2, .L2328+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, #148] + ldr r3, [r5, #1684] mov r2, r1 + str r3, [sp, #52] + ldr r3, [r5, #1716] str r3, [sp, #56] - ldr r3, [r5, #180] - str r3, [sp, #60] add r3, r10, r6 mov r3, r3, asl #10 - str r3, [sp, #52] + str r3, [sp, #48] bl FlashEraseBlocks mov r1, #1 mov r3, r1 mov r2, r1 - add r0, sp, #48 + add r0, sp, #44 bl FlashProgPages - ldr r3, [sp, #48] + ldr r3, [sp, #44] cmp r3, #0 subne r10, r10, #1 uxthne r10, r10 - bne .L2309 -.L2316: + bne .L2298 +.L2304: ldr r3, [sp, #8] add r3, r3, #1 str r3, [sp, #8] - b .L2286 -.L2336: - ldr r3, .L2340 - ldr r2, [sp, #84] - ldr r3, [r3] - cmp r2, r3 - beq .L2313 - bl __stack_chk_fail -.L2313: - add sp, sp, #92 + b .L2275 +.L2324: + add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2341: +.L2329: .align 2 -.L2340: - .word __stack_chk_guard +.L2328: .word .LANCHOR2 .word .LANCHOR0 .word .LC118 + .word .LANCHOR2+1732 .word .LC119 .word .LC120 .word .LC121 @@ -13956,276 +13792,278 @@ FtlLowFormatEraseBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L2392 - ldr r7, [r5, #4052] - ldrb r3, [r5, #1793] @ zero_extendqisi2 - cmp r7, #0 - str r3, [sp, #20] + ldr r5, .L2380 + ldr r6, .L2380+4 + ldr fp, [r5, #-3620] + ldrb r3, [r6, #2305] @ zero_extendqisi2 + cmp fp, #0 + str r3, [sp, #16] movne r0, #0 - bne .L2343 - ldrb r3, [r5, #140] @ zero_extendqisi2 + bne .L2331 + ldrb r3, [r6, #140] @ zero_extendqisi2 mov r10, r5 - ldr r6, .L2392+4 - mov fp, r7 - mov r5, r7 - mov r4, r7 - mov r8, r10 - mov r9, #36 - str r1, [sp, #4] - str r0, [sp, #8] - str r3, [sp, #12] - str r0, [r6, #-2088] -.L2344: - ldr r3, .L2392+8 - uxth r2, fp - ldr r7, .L2392 - ldrh r1, [r3] - cmp r1, r2 - bls .L2387 - mul r1, r9, r2 - ldr r0, [r8, #4056] - add r2, r8, r2 + mov r8, fp + mov r5, fp + mov r4, fp + mov r9, r6 + mov fp, r6 + mov r7, #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] + cmp r0, r1 + bls .L2375 + mul r0, r7, r1 + ldr ip, [r10, #-3616] + add r1, fp, r1 mov r3, #0 - str r3, [r0, r1] - ldr r1, [sp, #8] - ldrb r0, [r2, #1832] @ zero_extendqisi2 + str r3, [ip, r0] + ldrb r0, [r1, #2344] @ zero_extendqisi2 + ldr r1, [sp, #4] bl V2P_block - ldr r3, [sp, #4] - mov r7, r0 + ldr r3, [sp] + mov r6, r0 cmp r3, #0 - beq .L2345 + beq .L2333 bl IsBlkInVendorPart cmp r0, #0 - bne .L2346 -.L2345: - mov r0, r7 + bne .L2334 +.L2333: + mov r0, r6 bl FtlBbmIsBadBlock cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - bne .L2346 - ldr r3, .L2392+12 - mov r7, r7, asl #10 - ldr r1, [r10, #4056] - ldrh r2, [r3] - mla r1, r9, r5, r1 - mul r2, r2, r5 + bne .L2334 + ldr r3, .L2380+12 + mov r6, r6, asl #10 + ldr ip, [r10, #-3616] + ldrh r1, [r3] + mla ip, r7, r5, ip + mul r1, r1, r5 add r5, r5, #1 uxth r5, r5 - cmp r2, #0 - str r0, [r1, #8] - add r0, r2, #3 - str r7, [r1, #4] - movlt r2, r0 - ldr r0, [r6, #-2036] - bic r2, r2, #3 - add r2, r0, r2 - str r2, [r1, #12] -.L2346: - add fp, fp, #1 - b .L2344 -.L2387: + cmp r1, #0 + str r0, [ip, #8] + add r0, r1, #3 + str r6, [ip, #4] + movlt r1, r0 + ldr r0, [r10, #-500] + bic r1, r1, #3 + add r1, r0, r1 + str r1, [ip, #12] +.L2334: + add r8, r8, #1 + b .L2332 +.L2375: cmp r5, #0 - beq .L2367 - ldr r3, [sp, #12] + beq .L2355 + ldr r3, [sp, #8] mov r2, r5 - ldr r0, [r7, #4056] - mov r8, #0 + ldr r0, [r10, #-3616] + mov r7, #0 adds r6, r3, #0 - strb r8, [r7, #1793] + strb r7, [ip, #2305] + str ip, [sp, #8] + mov r8, #36 movne r6, #1 mov r1, r6 bl FlashEraseBlocks - ldrb r3, [sp, #20] @ zero_extendqisi2 - strb r3, [r7, #1793] - mov r7, r8 - mov r8, #36 -.L2350: - uxth r3, r7 - cmp r3, r5 - bcs .L2388 - mul r3, r8, r7 - ldr r2, [r10, #4056] - add r0, r2, r3 - ldr r3, [r2, r3] - cmn r3, #1 - bne .L2351 + ldrb r3, [sp, #16] @ zero_extendqisi2 + ldr ip, [sp, #8] + strb r3, [ip, #2305] +.L2338: + uxth r2, r7 + cmp r2, r5 + bcs .L2376 + mul r2, r8, r7 + ldr r1, [r10, #-3616] + add r0, r1, r2 + ldr r2, [r1, r2] + cmn r2, #1 + bne .L2339 ldr r0, [r0, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L2351: +.L2339: add r7, r7, #1 - b .L2350 -.L2388: - ldr r3, [sp, #4] + b .L2338 +.L2376: + ldr r3, [sp] cmp r3, #0 - bne .L2353 + bne .L2341 mov r3, #6 uxth r6, r6 - str r3, [sp, #16] + str r3, [sp, #12] mov r3, #1 - str r3, [sp, #12] - b .L2354 -.L2353: - movw r3, #1874 - ldrh r3, [r10, r3] - str r3, [sp, #12] - ldrb r3, [r10, #140] @ zero_extendqisi2 + str r3, [sp, #8] + b .L2342 +.L2341: + movw r3, #2386 + ldrh r3, [r9, r3] + str r3, [sp, #8] + ldrb r3, [r9, #140] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, [sp, #12] + ldreq r3, [sp, #8] moveq r6, #1 movne r6, #1 - strne r6, [sp, #16] + strne r6, [sp, #12] moveq r3, r3, lsr #2 - streq r3, [sp, #16] -.L2354: - ldr r8, .L2392 + streq r3, [sp, #12] +.L2342: + ldr r10, .L2380 mov r7, #0 -.L2363: - ldr fp, .L2392+4 - mov r9, #0 - mov r5, r9 -.L2355: - ldr r3, .L2392+8 - ldr r10, .L2392 - ldrh r2, [r3] - uxth r3, r9 - cmp r2, r3 - bls .L2389 + mov r8, r10 +.L2351: + mov fp, #0 + mov r5, fp +.L2343: + ldr r3, .L2380+8 + ldr r9, .L2380+4 + ldrh r1, [r3] + uxth r3, fp + cmp r1, r3 + bls .L2377 mov r2, #36 - ldr r1, [r8, #4056] - mul r2, r2, r3 - add r3, r8, r3 - mov r0, #0 - str r0, [r1, r2] - ldr r1, [sp, #8] - ldrb r0, [r3, #1832] @ zero_extendqisi2 + ldr r0, [r10, #-3616] + mul r1, r2, r3 + mov r2, #0 + str r2, [r0, r1] + ldr r2, .L2380+4 + ldr r1, [sp, #4] + add r3, r2, r3 + ldrb r0, [r3, #2344] @ zero_extendqisi2 bl V2P_block - ldr r3, [sp, #4] - mov r10, r0 + ldr r3, [sp] + mov r9, r0 cmp r3, #0 - beq .L2356 + beq .L2344 bl IsBlkInVendorPart cmp r0, #0 - bne .L2357 -.L2356: - mov r0, r10 + bne .L2345 +.L2344: + mov r0, r9 bl FtlBbmIsBadBlock cmp r0, #0 - bne .L2357 - ldr r2, [r8, #4056] + bne .L2345 + ldr r1, [r8, #-3616] mov r3, #36 - add r10, r7, r10, asl #10 - mla r2, r3, r5, r2 - ldr r3, [fp, #-2048] - str r3, [r2, #8] - ldr r3, .L2392+12 - str r10, [r2, #4] + add r9, r7, r9, asl #10 + mla r1, r3, r5, r1 + ldr r3, [r8, #-512] + str r3, [r1, #8] + ldr r3, .L2380+12 + str r9, [r1, #4] ldrh r3, [r3] mul r3, r3, r5 add r5, r5, #1 uxth r5, r5 - add r1, r3, #3 + add r0, r3, #3 cmp r3, #0 - movlt r3, r1 - ldr r1, [fp, #-2044] + movlt r3, r0 + ldr r0, [r8, #-508] bic r3, r3, #3 - add r3, r1, r3 - str r3, [r2, #12] -.L2357: - add r9, r9, #1 - b .L2355 -.L2389: + add r3, r0, r3 + str r3, [r1, #12] +.L2345: + add fp, fp, #1 + b .L2343 +.L2377: cmp r5, #0 - beq .L2367 - ldr r2, .L2392 - mov r3, #0 - mov r1, r5 - mov r9, #0 - mov fp, #36 - strb r3, [r2, #1793] - mov r3, #1 - ldr r0, [r2, #4056] + beq .L2355 mov r2, r6 + mov r3, #1 + ldr r0, [r10, #-3616] + mov r1, r5 + mov fp, #0 + strb fp, [r9, #2305] bl FlashProgPages - ldr r3, .L2392 - ldrb r2, [sp, #20] @ zero_extendqisi2 - strb r2, [r3, #1793] -.L2360: - uxth r3, r9 + mov r2, #36 + ldrb r3, [sp, #16] @ zero_extendqisi2 + strb r3, [r9, #2305] + ldr r9, .L2380 +.L2348: + uxth r3, fp cmp r3, r5 - bcs .L2390 - mul r3, fp, r9 - ldr r2, .L2392 - ldr r2, [r2, #4056] - add r0, r2, r3 - ldr r3, [r2, r3] + bcs .L2378 + mul r3, r2, fp + ldr r1, [r8, #-3616] + add r0, r1, r3 + ldr r3, [r1, r3] cmp r3, #0 - beq .L2361 + beq .L2349 ldr r0, [r0, #4] add r4, r4, #1 + str r2, [sp, #20] ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L2361: - add r9, r9, #1 - b .L2360 -.L2390: - ldr r3, [sp, #16] - add r7, r7, r3 + ldr r2, [sp, #20] +.L2349: + add fp, fp, #1 + b .L2348 +.L2378: ldr r3, [sp, #12] + add r7, r7, r3 + ldr r3, [sp, #8] uxth r7, r7 cmp r7, r3 - bcc .L2363 + bcc .L2351 mov r7, #0 mov r8, #36 -.L2364: +.L2352: uxth r3, r7 cmp r3, r5 - ldr r3, [sp, #4] - bcs .L2391 + ldr r3, [sp] + bcs .L2379 cmp r3, #0 - beq .L2365 + beq .L2353 mul r3, r8, r7 - ldr r2, [r10, #4056] + ldr r2, [r9, #-3616] add r1, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - bne .L2365 + bne .L2353 ldr r0, [r1, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L2365: +.L2353: add r7, r7, #1 - b .L2364 -.L2391: + b .L2352 +.L2379: adds r3, r3, #0 - ldr r2, [sp, #8] + ldr r2, [sp, #4] movne r3, #1 cmp r2, #63 orrls r3, r3, #1 cmp r3, #0 - beq .L2367 - ldr r0, [r10, #4056] + beq .L2355 + ldr r0, [r9, #-3616] mov r1, r6 mov r2, r5 bl FlashEraseBlocks -.L2367: +.L2355: mov r0, r4 -.L2343: +.L2331: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2393: +.L2381: .align 2 -.L2392: - .word .LANCHOR0 +.L2380: .word .LANCHOR2 - .word .LANCHOR0+1804 - .word .LANCHOR0+1884 + .word .LANCHOR0 + .word .LANCHOR0+2316 + .word .LANCHOR0+2396 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 @@ -14239,49 +14077,49 @@ FtlBbmTblFlush: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r5, .L2412 - ldr r6, [r5, #4052] - cmp r6, #0 - bne .L2396 - ldr r4, .L2412+4 - mov r1, r6 - ldr r7, .L2412+8 - ldr r10, .L2412+12 - ldr r3, [r4, #-2040] - ldr r0, [r4, #-2064] - str r3, [r4, #224] - movw r3, #1882 - ldrh r2, [r5, r3] - add r5, r5, #1936 - str r0, [r4, #220] + ldr r4, .L2400 + ldr r5, [r4, #-3620] + cmp r5, #0 + bne .L2384 + ldr r3, [r4, #-504] + mov r1, r5 + ldr r2, .L2400+4 + sub r9, r4, #440 + ldr r0, [r4, #-528] + str r3, [r4, #1760] + movw r3, #2394 + ldrh r2, [r2, r3] + str r0, [r4, #1756] bl ftl_memset - sub r9, r5, #110 -.L2397: - ldrh r3, [r9] - ldr r8, .L2412 - cmp r6, r3 - bge .L2411 - ldrh r2, [r10] - ldr r3, [r4, #220] - ldr r1, [r7, #4]! - mul r0, r2, r6 + ldr r6, .L2400+8 + sub r7, r6, #134 +.L2385: + ldrh r3, [r7] + ldr r8, .L2400+4 + cmp r5, r3 + bge .L2399 + ldrh r2, [r9] + ldr r3, [r4, #1756] + ldr r1, [r6, #4]! + mul r0, r2, r5 mov r2, r2, asl #2 - add r6, r6, #1 + add r5, r5, #1 add r0, r3, r0, asl #2 bl ftl_memcpy - b .L2397 -.L2411: - ldr r6, [r4, #224] + b .L2385 +.L2399: + ldr r6, [r4, #1760] mov r1, #255 mov r2, #16 - ldr fp, .L2412+4 + add r5, r8, #2448 + ldr fp, .L2400 mov r7, #0 mov r0, r6 mov r10, r7 bl ftl_memset - ldr r3, .L2412+16 + ldr r3, .L2400+12 strh r3, [r6] @ movhi - ldr r3, [r8, #1944] + ldr r3, [r8, #2456] str r3, [r6, #4] ldrh r3, [r5] strh r3, [r6, #2] @ movhi @@ -14289,38 +14127,38 @@ FtlBbmTblFlush: strh r3, [r6, #8] @ movhi ldrh r3, [r5, #6] strh r3, [r6, #10] @ movhi - ldr r3, [r8, #1800] + ldr r3, [r8, #2312] strh r3, [r6, #12] @ movhi -.L2399: - ldr r3, [r4, #-2064] +.L2387: + ldr r3, [r4, #-528] mov ip, #0 ldrh r1, [r5] ldrh r2, [r5, #2] - str r3, [r4, #220] - ldr r3, [r4, #-2040] - str ip, [r4, #212] + str r3, [r4, #1756] + ldr r3, [r4, #-504] + str ip, [r4, #1748] str ip, [sp, #12] - str r3, [r4, #224] + str r3, [r4, #1760] orr r3, r2, r1, asl #10 ldrh r0, [r6, #10] - str r3, [r4, #216] + str r3, [r4, #1752] ldrh r3, [r5, #4] str r0, [sp] - ldr r0, .L2412+20 + ldr r0, .L2400+16 bl printk - ldr r9, .L2412+24 + ldr r9, .L2400+20 ldrh r2, [r5, #2] ldrh r3, [r9, #-62] sub r3, r3, #1 cmp r2, r3 ldr ip, [sp, #12] - blt .L2400 - ldr r3, [r8, #1944] + blt .L2388 + ldr r3, [r8, #2456] mov r1, #1 ldrh r2, [r9] add r3, r3, #1 - ldr r0, [r8, #4056] - str r3, [r8, #1944] + ldr r0, [fp, #-3616] + str r3, [r8, #2456] str r3, [r6, #4] ldrh r3, [r9, #4] strh r2, [r6, #8] @ movhi @@ -14328,59 +14166,58 @@ FtlBbmTblFlush: mov r2, r1 strh r3, [r9] @ movhi mov r3, r3, asl #10 - str r3, [fp, #216] + str r3, [fp, #1752] str r3, [r0, #4] strh ip, [r9, #2] @ movhi bl FlashEraseBlocks -.L2400: - ldr r9, .L2412+4 +.L2388: mov r1, #1 + ldr r0, .L2400+24 mov r3, r1 mov r2, r1 - add r0, r9, #212 bl FlashProgPages ldrh r3, [r5, #2] + ldr r9, .L2400 add r3, r3, #1 strh r3, [r5, #2] @ movhi - ldr r3, [r4, #212] + ldr r3, [r4, #1748] cmn r3, #1 - bne .L2401 + bne .L2389 add r7, r7, #1 - ldr r0, .L2412+28 - ldr r1, [fp, #216] + ldr r0, .L2400+28 + ldr r1, [fp, #1752] uxth r7, r7 bl printk cmp r7, #3 - bls .L2399 + bls .L2387 + ldr r0, .L2400+32 mov r2, r7 - ldr r0, .L2412+32 - ldr r1, [r9, #216] + ldr r1, [r9, #1752] bl printk - ldr r3, .L2412 - mov r2, #1 - str r2, [r3, #4052] - b .L2396 -.L2401: + mov r3, #1 + str r3, [r9, #-3620] + b .L2384 +.L2389: add r10, r10, #1 cmp r10, #1 - beq .L2399 + beq .L2387 cmp r3, #256 - beq .L2399 -.L2396: + beq .L2387 +.L2384: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2413: +.L2401: .align 2 -.L2412: - .word .LANCHOR0 +.L2400: .word .LANCHOR2 - .word .LANCHOR0+1960 - .word .LANCHOR2-1976 + .word .LANCHOR0 + .word .LANCHOR0+2472 .word -3887 .word .LC123 - .word .LANCHOR0+1936 + .word .LANCHOR0+2448 + .word .LANCHOR2+1748 .word .LC124 .word .LC125 .fnend @@ -14396,110 +14233,108 @@ allocate_data_superblock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L2469 - ldr r3, [r6, #4052] + ldr r4, .L2457 + ldr r3, [r4, #-3620] cmp r3, #0 - bne .L2415 - ldr r10, .L2469+4 - mov r4, r0 - mov r7, r10 -.L2416: - ldr r3, .L2469+8 - ldrb r2, [r4, #8] @ zero_extendqisi2 - cmp r4, r3 - bne .L2417 + bne .L2403 + mov r5, r0 + mov r8, r4 +.L2404: + ldr r3, .L2457+4 + ldr r10, .L2457+8 + cmp r5, r3 + ldrb r2, [r5, #8] @ zero_extendqisi2 + bne .L2405 sub r3, r3, #100 - ldr ip, [r10, #-3224] + ldr ip, [r8, #-2712] ldrh r3, [r3] mul lr, ip, r3 mov r0, r3, lsr #1 add r1, r0, #1 add r1, r1, lr, lsr #2 - ldr lr, [r6, #1796] + ldr lr, [r10, #2308] cmp lr, #0 uxth r1, r1 - beq .L2418 - ldr lr, [r10, #-3824] + beq .L2406 + ldr lr, [r8, #-3312] cmp lr, #39 - bhi .L2418 + bhi .L2406 cmp lr, #2 - bls .L2443 + bls .L2431 cmp ip, #0 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 moveq r1, r0 - beq .L2418 - b .L2443 -.L2417: + beq .L2406 + b .L2431 +.L2405: cmp r2, #1 - bne .L2443 - ldr r0, .L2469 - add r3, r0, #1824 + bne .L2431 + add r3, r10, #2336 ldrh r3, [r3] cmp r3, #1 - beq .L2443 - ldrb r3, [r0, #140] @ zero_extendqisi2 + beq .L2431 + ldrb r3, [r10, #140] @ zero_extendqisi2 cmp r3, #0 - bne .L2443 - ldr r3, .L2469+12 - ldr r0, [r0, #1796] + bne .L2431 + ldr r3, .L2457+12 + ldr r0, [r10, #2308] ldrh r3, [r3] cmp r0, #0 mov r1, r3, lsr #3 - beq .L2418 - ldr r0, [r10, #-3824] + beq .L2406 + ldr r0, [r8, #-3312] cmp r0, #1 rsbls r3, r3, r3, asl #3 ubfxls r1, r3, #3, #16 -.L2418: +.L2406: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 - b .L2419 -.L2443: + b .L2407 +.L2431: mov r1, #0 -.L2419: - ldr r0, .L2469+16 +.L2407: + ldr r0, .L2457+16 bl List_pop_index_node - ldr r2, .L2469+12 + ldr r2, .L2457+12 + ldr fp, .L2457+20 ldrh r3, [r2] sub r3, r3, #1 strh r3, [r2] @ movhi - ldr r3, .L2469+20 - ldrh r3, [r3] + ldrh r3, [fp] uxth r9, r0 cmp r3, r9 - bls .L2416 - ldr r3, [r10, #-4060] - mov r8, r9, asl #1 - ldrh r5, [r3, r8] - cmp r5, #0 - bne .L2416 - strh r9, [r4] @ movhi - mov r0, r4 + bls .L2404 + ldr r3, [r8, #-3548] + mov r7, r9, asl #1 + ldrh r6, [r3, r7] + cmp r6, #0 + bne .L2404 + strh r9, [r5] @ movhi + mov r0, r5 bl make_superblock - ldrb r3, [r4, #7] @ zero_extendqisi2 + ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - beq .L2421 - ldr r3, .L2469 - mov fp, #36 - ldr r2, .L2469+24 - add r0, r4, #14 - ldr r1, [r3, #4056] - ldrh ip, [r2] + 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, fp, ip, r1 - mov ip, r5 - str r2, [sp] - b .L2422 -.L2421: - ldr r3, [r10, #-4060] - b .L2464 -.L2422: - ldr r2, [sp] + 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 .L2466 + beq .L2454 str ip, [r3, #8] movw lr, #65535 str ip, [r3, #12] @@ -14507,192 +14342,188 @@ allocate_data_superblock: ldrh r2, [r0, #2]! cmp r2, lr movne r2, r2, asl #10 - mlane lr, fp, r5, r1 - addne r5, r5, #1 - uxthne r5, r5 + ldrne lr, [sp, #8] + mlane lr, lr, r6, r1 + addne r6, r6, #1 + uxthne r6, r6 strne r2, [lr, #4] - b .L2422 -.L2466: - ldr r3, .L2469+28 - ldr r2, [r6, #1796] - rsb r3, r3, r4 + b .L2410 +.L2454: + ldr r3, .L2457+24 + ldr r2, [r10, #2308] + rsb r3, r3, r5 clz r3, r3 cmp r2, #0 mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L2425 - ldr r3, .L2469 - ldr r3, [r3, #4060] - ldrh r3, [r3, r8] + beq .L2413 + ldr r3, [r8, #-3612] + ldrh r3, [r3, r7] cmp r3, #40 movhi r3, #0 - strhib r3, [r10, #-4032] -.L2425: - ldrb r3, [r4, #8] @ zero_extendqisi2 - ldr r2, [r6, #4060] + strhib r3, [r8, #-3520] +.L2413: + ldrb r3, [r5, #8] @ zero_extendqisi2 + ldr r1, [r4, #-3612] cmp r3, #0 - ldr fp, .L2469+32 - ldrh r3, [r2, r8] - bne .L2426 + ldr r2, .L2457+28 + ldrh r3, [r1, r7] + bne .L2414 cmp r3, #0 - mov r0, r9 - ldrneh r1, [fp] + str r2, [sp, #4] + ldrneh r0, [r2] moveq r3, #2 - addne r3, r3, r1 - mov r1, #0 + addne r3, r3, r0 + mov r0, r9 uxthne r3, r3 - strh r3, [r2, r8] @ movhi - ldr r3, [r7, #-3840] + strh r3, [r1, r7] @ movhi + ldr r3, [r4, #-3328] + mov r1, #0 add r3, r3, #1 - str r3, [r7, #-3840] + str r3, [r4, #-3328] bl ftl_set_blk_mode - b .L2428 -.L2426: + ldr r2, [sp, #4] + b .L2416 +.L2414: add r3, r3, #1 - strh r3, [r2, r8] @ movhi - ldr r2, [r7, #-3884] - mov r1, r9, lsr #5 - ldr r3, [r7, #-3836] - mov r0, #1 + strh r3, [r1, r7] @ movhi + ldr r1, [r4, #-3372] + mov r0, r9, lsr #5 + ldr r3, [r4, #-3324] + mov ip, #1 add r3, r3, #1 - str r3, [r7, #-3836] - ldr ip, [r2, r1, asl #2] + str r3, [r4, #-3324] + ldr lr, [r1, r0, asl #2] and r3, r9, #31 - orr r3, ip, r0, asl r3 - str r3, [r2, r1, asl #2] -.L2428: - ldr r3, [r6, #4060] - ldr r2, [r7, #-3828] - ldr r0, [r7, #-3840] - ldrh r3, [r3, r8] - cmp r3, r2 - ldrh r2, [fp] - strhi r3, [r10, #-3828] - ldr r3, [r7, #-3836] + orr r3, lr, ip, asl r3 + str r3, [r1, r0, asl #2] +.L2416: + ldr r3, [r4, #-3612] + ldr r1, [r4, #-3316] + ldrh r2, [r2] + ldrh r3, [r3, r7] + ldr r0, [r4, #-3328] + cmp r3, r1 + ldrh r1, [fp] + strhi r3, [r8, #-3316] + ldr r3, [r4, #-3324] mla r0, r0, r2, r3 - ldr r3, .L2469+20 - ldrh r1, [r3] bl __aeabi_uidiv - ldr r2, [r7, #-2020] - ldr r1, [r6, #4056] + ldr r2, [r4, #-484] ldr r3, [r2, #16] add r3, r3, #1 str r3, [r2, #16] + ldr r2, [r4, #-3616] mov r3, #36 - add r2, r1, #4 - mla r3, r3, r5, r1 + add r1, r2, #4 + mla r3, r3, r6, r2 add r3, r3, #40 - str r0, [r7, #-3832] -.L2430: - add r2, r2, #36 - cmp r2, r3 - ldrne r1, [r2, #-36] - bicne r1, r1, #1020 - bicne r1, r1, #3 - strne r1, [r2, #-36] - bne .L2430 -.L2467: - ldrb r2, [r6, #140] @ zero_extendqisi2 - ldr r3, .L2469 - cmp r2, #0 - beq .L2432 - ldrb r2, [r4, #8] @ zero_extendqisi2 - ldr r0, [r3, #4056] - cmp r2, #1 - mov r2, r5 + 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 + cmp r3, #0 + beq .L2420 + ldrb r3, [r5, #8] @ zero_extendqisi2 + mov r2, r6 + ldr r0, [r4, #-3616] + cmp r3, #1 moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2432: - ldrb r1, [r4, #8] @ zero_extendqisi2 - mov r2, r5 - ldr r0, [r6, #4056] - mov fp, #0 +.L2420: + ldrb r1, [r5, #8] @ zero_extendqisi2 + mov r2, r6 + ldr r0, [r4, #-3616] + mov r10, #0 bl FlashEraseBlocks - add r1, r4, #16 - mov r2, fp - mov ip, #36 -.L2434: - uxth r3, fp - cmp r3, r5 - bcs .L2468 - mul r3, ip, fp - ldr lr, [r6, #4056] - add r0, lr, r3 - ldr r3, [lr, r3] + add r2, r5, #16 + mov fp, r10 + mov r1, #36 +.L2422: + uxth r3, r10 + cmp r3, r6 + bcs .L2456 + mul r3, r1, r10 + ldr ip, [r4, #-3616] + add r0, ip, r3 + ldr r3, [ip, r3] cmn r3, #1 - bne .L2435 + bne .L2423 ldr r0, [r0, #4] - add r2, r2, #1 - stmib sp, {r1, r3, ip} - ubfx r0, r0, #10, #16 - str r2, [sp] - bl FtlBbmMapBadBlock - ldmib sp, {r1, r3} - ldr ip, [sp, #12] - ldr r2, [sp] - strh r3, [r1] @ movhi - ldrb r3, [r4, #7] @ zero_extendqisi2 - sub r3, r3, #1 - strb r3, [r4, #7] -.L2435: add fp, fp, #1 - add r1, r1, #2 - b .L2434 -.L2468: - cmp r2, #0 - beq .L2437 + str r1, [sp, #12] + ubfx r0, r0, #10, #16 + stmib sp, {r2, r3} + bl FtlBbmMapBadBlock + ldmib sp, {r2, r3} + ldr r1, [sp, #12] + strh r3, [r2] @ 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 mov r0, r9 bl update_multiplier_value bl FtlBbmTblFlush -.L2437: - ldrb r3, [r4, #7] @ zero_extendqisi2 +.L2425: + ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L2438 - ldr r3, [r7, #-4060] -.L2464: + bne .L2426 + ldr r3, [r4, #-3548] +.L2452: mvn r2, #0 - strh r2, [r3, r8] @ movhi - b .L2416 -.L2438: - ldr r2, .L2469+36 - ldr r1, .L2469+4 + strh r2, [r3, r7] @ movhi + b .L2404 +.L2426: + ldr r2, .L2457+32 ldrh r2, [r2] - strh r9, [r4] @ movhi + strh r9, [r5] @ movhi smulbb r3, r2, r3 mov r2, #0 - strh r2, [r4, #2] @ movhi - strb r2, [r4, #6] - ldr r2, .L2469+4 + strh r2, [r5, #2] @ movhi + strb r2, [r5, #6] + ldr r2, [r4, #-3336] + ldr r1, [r4, #-3548] uxth r3, r3 - strh r3, [r4, #4] @ movhi - ldr r2, [r2, #-3848] - str r2, [r4, #12] + strh r3, [r5, #4] @ movhi + str r2, [r5, #12] add r2, r2, #1 - str r2, [r1, #-3848] - ldrh r2, [r4] - ldr r1, [r1, #-4060] + str r2, [r4, #-3336] + ldrh r2, [r5] mov r2, r2, asl #1 strh r3, [r1, r2] @ movhi -.L2415: +.L2403: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2470: +.L2458: .align 2 -.L2469: - .word .LANCHOR0 +.L2457: .word .LANCHOR2 - .word .LANCHOR2-3944 - .word .LANCHOR2-4044 - .word .LANCHOR2-4048 - .word .LANCHOR0+1812 - .word .LANCHOR0+1804 - .word .LANCHOR2-4040 - .word .LANCHOR0+1864 - .word .LANCHOR0+1872 + .word .LANCHOR2-3432 + .word .LANCHOR0 + .word .LANCHOR2-3532 + .word .LANCHOR2-3536 + .word .LANCHOR0+2324 + .word .LANCHOR2-3528 + .word .LANCHOR0+2376 + .word .LANCHOR0+2384 .fnend .size allocate_data_superblock, .-allocate_data_superblock .align 2 @@ -14705,40 +14536,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, .L2485 + ldr r5, .L2473 ldrh r3, [r5, #-6] cmp r3, #0 - beq .L2473 + beq .L2461 sub r5, r5, #6 mov r8, r0 mov r7, #0 mov r9, r5 -.L2472: - ldr r3, .L2485+4 +.L2460: + ldr r3, .L2473+4 uxth r2, r7 ldrh r3, [r3] cmp r3, r2 - bls .L2482 - ldr r3, .L2485+8 + bls .L2470 + ldr r3, .L2473+8 mov r1, r8 mov r10, #0 add r3, r3, r2 - ldrb r0, [r3, #1832] @ zero_extendqisi2 + ldrb r0, [r3, #2344] @ zero_extendqisi2 bl V2P_block - ldr ip, .L2485+12 + ldr ip, .L2473+12 mov fp, r0 -.L2474: +.L2462: ldrh r3, [r5] uxth r4, r10 cmp r3, r4 - bls .L2483 + bls .L2471 mov r3, r4, asl #1 add r6, ip, r3 ldrh r3, [ip, r3] cmp r3, fp - bne .L2475 + bne .L2463 mov r1, fp - ldr r0, .L2485+16 + ldr r0, .L2473+16 str ip, [sp, #4] bl printk mov r0, fp @@ -14747,36 +14578,36 @@ FtlGcFreeBadSuperBlk: ldrh r2, [r5] mov r3, r6 ldr ip, [sp, #4] -.L2476: +.L2464: cmp r4, r2 ldrcch r1, [r3, #2] addcc r4, r4, #1 uxthcc r4, r4 strcch r1, [r3], #2 @ movhi - bcc .L2476 -.L2484: + bcc .L2464 +.L2472: sub r2, r2, #1 strh r2, [r9] @ movhi -.L2475: +.L2463: add r10, r10, #1 - b .L2474 -.L2483: + b .L2462 +.L2471: add r7, r7, #1 - b .L2472 -.L2482: + b .L2460 +.L2470: bl FtlGcReFreshBadBlk -.L2473: +.L2461: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2486: +.L2474: .align 2 -.L2485: - .word .LANCHOR2-3168 - .word .LANCHOR0+1804 +.L2473: + .word .LANCHOR2-2656 + .word .LANCHOR0+2316 .word .LANCHOR0 - .word .LANCHOR2-3172 + .word .LANCHOR2-2660 .word .LC126 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk @@ -14787,38 +14618,38 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2497 + ldr r2, .L2485 mov r3, r0, asl #1 stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r0 - ldr r1, [r2, #-4060] + ldr r1, [r2, #-3548] ldrh r3, [r1, r3] cmp r3, #0 - bne .L2488 - sub r1, r2, #3792 + bne .L2476 + sub r1, r2, #3280 ldrh r0, [r1, #-8] cmp r0, r4 mvneq r3, #0 streqh r3, [r1, #-8] @ movhi - beq .L2490 - sub r1, r2, #4032 + beq .L2478 + sub r1, r2, #3520 ldrh r1, [r1, #-8] cmp r1, r4 - beq .L2496 - sub r1, r2, #3984 + beq .L2484 + sub r1, r2, #3472 ldrh r1, [r1, #-8] cmp r1, r4 - beq .L2496 - sub r2, r2, #3936 + beq .L2484 + sub r2, r2, #3424 ldrh r2, [r2, #-8] cmp r2, r4 - beq .L2496 -.L2490: + beq .L2484 +.L2478: mov r1, r4 - ldr r0, .L2497+4 + ldr r0, .L2485+4 bl List_remove_node - ldr r2, .L2497+8 + ldr r2, .L2485+8 mov r0, r4 ldrh r3, [r2, #-4] sub r3, r3, #1 @@ -14828,17 +14659,17 @@ update_vpc_list: bl FtlGcFreeBadSuperBlk mov r0, #1 ldmfd sp!, {r4, pc} -.L2488: +.L2476: bl List_update_data_list -.L2496: +.L2484: mov r0, #0 ldmfd sp!, {r4, pc} -.L2498: +.L2486: .align 2 -.L2497: +.L2485: .word .LANCHOR2 - .word .LANCHOR2-4064 - .word .LANCHOR2-4048 + .word .LANCHOR2-3552 + .word .LANCHOR2-3536 .fnend .size update_vpc_list, .-update_vpc_list .align 2 @@ -14853,68 +14684,68 @@ decrement_vpc_count: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - beq .L2500 - ldr r5, .L2510 + beq .L2488 + ldr r5, .L2498 mov r6, r0, asl #1 - ldr r3, [r5, #-4060] + ldr r3, [r5, #-3548] ldrh r2, [r3, r6] cmp r2, #0 subne r2, r2, #1 strneh r2, [r3, r6] @ movhi - bne .L2500 + bne .L2488 mov r1, r4 - ldr r0, .L2510+4 + ldr r0, .L2498+4 bl printk - ldr r3, [r5, #-4060] + ldr r3, [r5, #-3548] mov r2, #32 - sub r0, r5, #4048 + sub r0, r5, #3536 mov r1, r4 strh r2, [r3, r6] @ movhi bl test_node_in_list cmp r0, #0 - beq .L2502 + beq .L2490 mov r1, r4 - sub r0, r5, #4048 + sub r0, r5, #3536 bl List_remove_node - sub r2, r5, #4032 + sub r2, r5, #3520 mov r0, r4 ldrh r3, [r2, #-12] sub r3, r3, #1 strh r3, [r2, #-12] @ movhi bl INSERT_DATA_LIST - ldr r3, [r5, #-4060] - ldr r0, .L2510+8 + ldr r3, [r5, #-3548] + ldr r0, .L2498+8 mov r1, r4 ldrh r2, [r3, r6] bl printk -.L2502: +.L2490: mov r0, r4 bl FtlGcRefreshBlock - b .L2505 -.L2500: - ldr r5, .L2510+12 + b .L2493 +.L2488: + ldr r5, .L2498+12 movw r3, #65535 ldrh r0, [r5] cmp r0, r3 streqh r4, [r5] @ movhi - beq .L2505 + beq .L2493 cmp r0, r4 - beq .L2505 + beq .L2493 bl update_vpc_list strh r4, [r5] @ movhi adds r0, r0, #0 movne r0, #1 ldmfd sp!, {r4, r5, r6, pc} -.L2505: +.L2493: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2511: +.L2499: .align 2 -.L2510: +.L2498: .word .LANCHOR2 .word .LC127 .word .LC128 - .word .LANCHOR2-1920 + .word .LANCHOR2-384 .fnend .size decrement_vpc_count, .-decrement_vpc_count .align 2 @@ -14935,16 +14766,16 @@ FtlSlcSuperblockCheck: ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} ldrb r3, [r0, #6] @ zero_extendqisi2 mov r4, r0 - ldr r5, .L2526 - ldr r6, .L2526+4 + ldr r5, .L2514 + ldr r6, .L2514+4 add r3, r0, r3, asl #1 - ldr r7, .L2526+8 + ldr r7, .L2514+8 ldrh r3, [r3, #16] -.L2516: +.L2504: movw r1, #65535 cmp r3, r1 - bne .L2525 -.L2518: + bne .L2513 +.L2506: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -14959,19 +14790,19 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] - b .L2516 -.L2525: + b .L2504 +.L2513: ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L2519 + bne .L2507 ldrb r3, [r5, #140] @ zero_extendqisi2 cmp r3, #0 - bne .L2519 + bne .L2507 ldrh r3, [r4, #2] mov r3, r3, asl #1 ldrh r3, [r6, r3] cmp r3, r1 - bne .L2519 + bne .L2507 ldrh r3, [r4, #4] ldrh r0, [r4] sub r3, r3, #1 @@ -14979,27 +14810,27 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L2518 + bne .L2506 ldrh r3, [r4, #2] add r3, r3, #1 - b .L2524 -.L2519: - ldr r3, .L2526 + b .L2512 +.L2507: + ldr r3, .L2514 ldrb r1, [r3, #140] @ zero_extendqisi2 cmp r1, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r2, #1 ldmnefd sp!, {r3, r4, r5, r6, r7, pc} - movw r2, #1874 + movw r2, #2386 ldrh r1, [r4, #2] ldrh r2, [r3, r2] cmp r1, r2 ldmccfd sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, .L2526+12 - add r3, r3, #1872 + ldr r1, .L2514+12 + add r3, r3, #2384 ldrh r2, [r4] ldrh ip, [r4, #4] - ldr r0, [r1, #-4060] + ldr r0, [r1, #-3548] mov r2, r2, asl #1 ldrh r1, [r0, r2] rsb r1, ip, r1 @@ -15007,16 +14838,16 @@ FtlSlcSuperblockCheck: ldrh r3, [r3] mov r2, #0 strh r2, [r4, #4] @ movhi -.L2524: +.L2512: strh r3, [r4, #2] @ movhi strb r2, [r4, #6] ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2527: +.L2515: .align 2 -.L2526: +.L2514: .word .LANCHOR0 - .word .LANCHOR2-3136 - .word .LANCHOR0+1804 + .word .LANCHOR2-2624 + .word .LANCHOR0+2316 .word .LANCHOR2 .fnend .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck @@ -15033,17 +14864,17 @@ get_new_active_ppa: strb r3, [r0, #10] mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r7, .L2546 - ldr r8, .L2546+4 + ldr r7, .L2534 + ldr r8, .L2534+4 add r3, r0, r3, asl #1 - ldr r9, .L2546+8 + ldr r9, .L2534+8 ldrh r2, [r3, #16] -.L2529: +.L2517: movw r1, #65535 cmp r2, r1 - ldr r6, .L2546 - bne .L2545 -.L2530: + ldr r6, .L2534 + bne .L2533 +.L2518: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -15058,35 +14889,35 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r2, [r3, #16] - b .L2529 -.L2545: + b .L2517 +.L2533: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r5, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L2532 + bne .L2520 ldrb r0, [r8, #140] @ zero_extendqisi2 cmp r0, #0 - bne .L2532 + bne .L2520 mov r0, r5, asl #1 ldrh r0, [r9, r0] cmp r0, r1 - bne .L2532 + bne .L2520 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2530 -.L2532: - ldr r7, .L2546+4 + b .L2518 +.L2520: + ldr r7, .L2534+4 orr r5, r5, r2, asl #10 sub r3, r3, #1 strh r3, [r4, #4] @ movhi -.L2533: +.L2521: ldrb r3, [r4, #6] @ zero_extendqisi2 movw r2, #65535 ldrh r0, [r6] -.L2535: +.L2523: add r3, r3, #1 uxtb r3, r3 cmp r3, r0 @@ -15097,44 +14928,44 @@ get_new_active_ppa: add r1, r4, r3, asl #1 ldrh r1, [r1, #16] cmp r1, r2 - beq .L2535 + beq .L2523 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2540 + bne .L2528 ldrb r3, [r7, #140] @ zero_extendqisi2 cmp r3, #0 - bne .L2537 + bne .L2525 ldrh r3, [r4, #2] - ldr r2, .L2546+8 + ldr r2, .L2534+8 mov r3, r3, asl #1 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L2537 + bne .L2525 ldrh r3, [r4, #4] cmp r3, #0 - beq .L2537 + beq .L2525 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2533 -.L2537: - ldr r3, .L2546+4 + b .L2521 +.L2525: + ldr r3, .L2534+4 ldrb r2, [r3, #140] @ zero_extendqisi2 cmp r2, #0 - beq .L2540 - movw r2, #1874 + beq .L2528 + movw r2, #2386 ldrh r1, [r4, #2] ldrh r2, [r3, r2] cmp r1, r2 - bcc .L2540 - ldr r1, .L2546+12 - add r3, r3, #1872 + bcc .L2528 + ldr r1, .L2534+12 + add r3, r3, #2384 ldrh r2, [r4] ldrh ip, [r4, #4] - ldr r0, [r1, #-4060] + ldr r0, [r1, #-3548] mov r2, r2, asl #1 ldrh r1, [r0, r2] rsb r1, ip, r1 @@ -15144,15 +14975,15 @@ get_new_active_ppa: strh r2, [r4, #4] @ movhi strb r2, [r4, #6] strh r3, [r4, #2] @ movhi -.L2540: +.L2528: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2547: +.L2535: .align 2 -.L2546: - .word .LANCHOR0+1804 +.L2534: + .word .LANCHOR0+2316 .word .LANCHOR0 - .word .LANCHOR2-3136 + .word .LANCHOR2-2624 .word .LANCHOR2 .fnend .size get_new_active_ppa, .-get_new_active_ppa @@ -15161,223 +14992,217 @@ get_new_active_ppa: .type FtlVpcTblFlush, %function FtlVpcTblFlush: .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 r5, .L2566 - ldr r3, [r5, #4052] + 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] cmp r3, #0 - bne .L2550 - ldr r4, .L2566+4 + bne .L2538 + ldr r2, [r4, #-528] mov r1, #255 - ldr r8, .L2566+8 - ldr r2, [r4, #-2064] - ldr r6, [r4, #-2040] - str r2, [r4, #220] - sub r2, r4, #3808 - sub r7, r2, #8 - str r6, [r4, #224] + ldr r7, [r4, #-504] + ldr r6, .L2554+4 + str r2, [r4, #1756] + sub r2, r4, #3296 + str r7, [r4, #1760] ldrh r2, [r2, #-8] - str r3, [r6, #12] - strh r2, [r6, #2] @ movhi - ldr r2, .L2566+12 - strh r2, [r6] @ movhi - ldr r2, [r4, #-3808] - stmib r6, {r2, r3} - ldr r3, .L2566+16 - ldrh r2, [r7, #-222] - str r3, [r5, #4068] - ldr r3, .L2566+20 - str r3, [r5, #4072] - ldrh r3, [r7, #6] - strh r3, [r8, #8] @ movhi - movw r3, #1826 + str r3, [r7, #12] + ldr r5, .L2554+8 + strh r2, [r7, #2] @ movhi + ldr r2, .L2554+12 + strh r2, [r7] @ movhi + ldr r2, [r4, #-3296] + stmib r7, {r2, r3} + ldr r3, .L2554+16 + ldrh r2, [r6, #78] + str r3, [r4, #-3604] + ldr r3, .L2554+20 + str r3, [r4, #-3600] + add r3, r6, #300 + ldrh r3, [r3, #6] + strh r3, [r6, #8] @ movhi + movw r3, #2338 ldrh r3, [r5, r3] - strb r3, [r5, #4078] - sub r3, r4, #4032 + strb r3, [r4, #-3594] + sub r3, r4, #3520 ldrh r3, [r3, #-8] - strh r3, [r8, #14] @ movhi - ldrb r3, [r4, #-4034] @ zero_extendqisi2 + strh r3, [r6, #14] @ movhi + ldrb r3, [r4, #-3522] @ zero_extendqisi2 orr r3, r3, r2, asl #6 - strh r3, [r8, #16] @ movhi - ldrb r3, [r4, #-4032] @ zero_extendqisi2 - ldrh r2, [r7, #-174] - strb r3, [r5, #4079] - sub r3, r4, #3984 + strh r3, [r6, #16] @ movhi + ldrb r3, [r4, #-3520] @ zero_extendqisi2 + ldrh r2, [r6, #126] + strb r3, [r4, #-3593] + sub r3, r4, #3472 ldrh r3, [r3, #-8] - strh r3, [r8, #18] @ movhi - ldrb r3, [r4, #-3986] @ zero_extendqisi2 + strh r3, [r6, #18] @ movhi + ldrb r3, [r4, #-3474] @ zero_extendqisi2 orr r3, r3, r2, asl #6 - strh r3, [r8, #20] @ movhi - ldrb r3, [r4, #-3984] @ zero_extendqisi2 - strb r3, [r5, #4080] - sub r3, r4, #3936 + strh r3, [r6, #20] @ movhi + ldrb r3, [r4, #-3472] @ zero_extendqisi2 + strb r3, [r4, #-3592] + sub r3, r4, #3424 ldrh r3, [r3, #-8] - strh r3, [r8, #22] @ movhi - ldrh r2, [r7, #-126] - ldrb r3, [r4, #-3938] @ zero_extendqisi2 - ldr r0, [r4, #220] + strh r3, [r6, #22] @ movhi + ldrh r2, [r6, #174] + ldrb r3, [r4, #-3426] @ zero_extendqisi2 + ldr r0, [r4, #1756] orr r3, r3, r2, asl #6 - strh r3, [r8, #24] @ movhi - ldrb r3, [r4, #-3936] @ zero_extendqisi2 - ldr r2, [r4, #-3840] - strb r3, [r5, #4081] - add r3, r5, #4096 - str r2, [r3, #4] - ldr r2, [r4, #-3848] - str r2, [r3, #12] - ldr r2, [r4, #-3844] - str r2, [r3, #8] - sub r3, r4, #3168 + 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] + str r3, [r4, #-3568] + sub r3, r4, #2656 ldrh r2, [r3, #-14] ldrh r3, [r3, #-12] - strh r2, [r8, #44] @ movhi - strh r3, [r8, #46] @ movhi - movw r3, #1882 + strh r2, [r6, #44] @ movhi + strh r3, [r6, #46] @ movhi + movw r3, #2394 ldrh r2, [r5, r3] bl ftl_memset - mov r1, r8 + mov r1, r6 mov r2, #48 - movw r8, #1812 - ldr r0, [r4, #220] + movw r6, #2324 + ldr r0, [r4, #1756] bl ftl_memcpy - ldrh r2, [r5, r8] - ldr r0, [r4, #220] - ldr r1, [r4, #-4060] + ldrh r2, [r5, r6] + ldr r0, [r4, #1756] + ldr r1, [r4, #-3548] mov r2, r2, asl #1 add r0, r0, #48 bl ftl_memcpy - ldrh r2, [r5, r8] - ldr r0, [r4, #220] + ldrh r2, [r5, r6] + ldr r0, [r4, #1756] add r3, r2, #24 - ldr r1, [r4, #-3884] + ldr r1, [r4, #-3372] ubfx r3, r3, #1, #30 mov r2, r2, lsr #3 add r2, r2, #4 add r0, r0, r3, asl #2 bl ftl_memcpy - movw r3, #1916 + movw r3, #2428 ldrh r3, [r5, r3] cmp r3, #0 - beq .L2551 - ldrh r2, [r5, r8] - ldr r0, [r4, #220] - ldr r1, [r4, #-1992] + beq .L2539 + ldrh r2, [r5, r6] + ldr r0, [r4, #1756] + ldr r1, [r4, #-456] mov r3, r2, lsr #3 add r3, r3, r2, asl #1 - movw r2, #1908 + movw r2, #2420 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 -.L2551: +.L2539: mov r0, #0 - ldr r9, .L2566+4 + ldr r8, .L2554 bl FtlUpdateVaildLpn - ldr fp, .L2566+24 - mov r8, #0 - movw r10, #65535 -.L2552: - ldrh r1, [r7] - ldrh r0, [r7, #2] - ldr r3, [r4, #-2064] - orr r2, r0, r1, asl #10 - str r2, [r4, #216] - ldrh r2, [fp] - str r3, [r4, #220] - sub r2, r2, #1 - ldr r3, [r4, #-2040] - cmp r0, r2 - str r3, [r4, #224] - ldr r3, .L2566+28 - blt .L2553 - ldrh r10, [r3, #4] - mov r2, #0 - strh r1, [r3, #4] @ movhi - strh r2, [r3, #2] @ movhi - str r3, [sp, #4] + ldr r10, .L2554+24 + mov r6, #0 + movw r9, #65535 +.L2540: + ldr r3, [r4, #-528] + ldrh r2, [r10] + ldr fp, .L2554+28 + str r3, [r4, #1756] + ldr r3, [r4, #-504] + ldrh r1, [r10, #2] + str r3, [r4, #1760] + orr r3, r1, r2, asl #10 + str r3, [r4, #1752] + ldrh r3, [fp] + sub r3, r3, #1 + cmp r1, r3 + blt .L2541 + mov r3, #0 + ldrh r9, [r10, #4] + strh r3, [r10, #2] @ movhi + strh r2, [r10, #4] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [sp, #4] - strh r0, [r3] @ movhi - ldr r3, [r9, #-3848] + ldr r3, [r8, #-3336] add r2, r3, #1 - str r2, [r9, #-3848] - str r3, [r9, #-3808] + str r2, [r8, #-3336] + str r3, [r8, #-3296] mov r2, r0, asl #10 - str r2, [r9, #216] - str r3, [r6, #4] - strh r0, [r6, #2] @ movhi -.L2553: + strh r0, [r10] @ movhi + str r2, [r8, #1752] + str r3, [r7, #4] + strh r0, [r7, #2] @ movhi +.L2541: ldrb r3, [r5] @ zero_extendqisi2 cmp r3, #0 - beq .L2554 - ldr r3, .L2566+32 - ldr r0, [r4, #-2064] + beq .L2542 + ldr r3, .L2554+32 + ldr r0, [r4, #-528] ldrh r1, [r3] bl js_hash - str r0, [r6, #12] -.L2554: + str r0, [r7, #12] +.L2542: mov r1, #1 - ldr r0, .L2566+36 + ldr r0, .L2554+36 mov r2, r1 mov r3, r1 bl FlashProgPages - ldrh r3, [r7, #2] - ldr r2, [r4, #212] + ldr r3, .L2554+24 + ldr r2, .L2554+24 + ldrh r3, [r3, #2] add r3, r3, #1 - cmn r2, #1 uxth r3, r3 - strh r3, [r7, #2] @ movhi - bne .L2555 + strh r3, [r2, #2] @ movhi + ldr r2, [r4, #1748] + cmn r2, #1 + bne .L2543 cmp r3, #1 - add r8, r8, #1 - ldreq r3, .L2566+24 - uxth r8, r8 - ldreq r2, .L2566+28 - ldreqh r3, [r3] + add r6, r6, #1 + ldreqh r3, [fp] + uxth r6, r6 subeq r3, r3, #1 - streqh r3, [r2, #2] @ movhi - cmp r8, #3 - bls .L2552 - ldr r0, .L2566+40 - mov r2, r8 - ldr r1, [r4, #216] + streqh r3, [r10, #2] @ movhi + cmp r6, #3 + bls .L2540 + ldr r0, .L2554+40 + mov r2, r6 + ldr r1, [r4, #1752] bl printk mov r3, #1 - str r3, [r5, #4052] - b .L2550 -.L2555: + str r3, [r4, #-3620] + b .L2538 +.L2543: cmp r2, #256 cmpne r3, #1 - beq .L2552 + beq .L2540 movw r3, #65535 - cmp r10, r3 - beq .L2550 - mov r0, r10 + cmp r9, r3 + beq .L2538 + mov r0, r9 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2550: +.L2538: mov r0, #0 - add sp, sp, #12 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2567: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2555: .align 2 -.L2566: - .word .LANCHOR0 +.L2554: .word .LANCHOR2 - .word .LANCHOR0+4068 + .word .LANCHOR2-3604 + .word .LANCHOR0 .word -3932 .word 1179929683 - .word 1342177367 - .word .LANCHOR0+1874 - .word .LANCHOR2-3816 - .word .LANCHOR0+1882 - .word .LANCHOR2+212 + .word 1342177376 + .word .LANCHOR2-3304 + .word .LANCHOR0+2386 + .word .LANCHOR0+2394 + .word .LANCHOR2+1748 .word .LC129 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush @@ -15388,111 +15213,100 @@ FtlSuperblockPowerLostFix: .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} - .pad #44 - sub sp, sp, #44 - ldr r8, .L2586 - ldr r3, [r8] - str r3, [sp, #36] - ldr r3, .L2586+4 - ldr r5, [r3, #4052] - cmp r5, #0 - bne .L2568 - ldrb r6, [r3, #140] @ zero_extendqisi2 - mov r4, r0 + 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] + cmp r3, #0 + bne .L2556 + ldr r2, .L2573+4 + ldrb r6, [r2, #140] @ zero_extendqisi2 cmp r6, #0 - beq .L2585 + beq .L2572 ldrb r6, [r0, #8] @ zero_extendqisi2 cmp r6, #1 - ldreqh fp, [r0, #4] - beq .L2570 - mov r6, r5 -.L2585: - mov fp, #12 -.L2570: + ldreqh r10, [r0, #4] + beq .L2558 + mov r6, r3 +.L2572: + mov r10, #12 +.L2558: + ldr r7, [r5, #-504] mvn r3, #0 - str r3, [sp, #16] - ldr r3, .L2586+8 - mov r9, #0 - movw r1, #61589 - ldr r7, [r3, #-2040] - mov r5, r3 - ldr r2, [r3, #-2064] - mov r10, r3 - str r7, [sp, #12] - str r2, [sp, #8] - mvn r2, #2 - str r2, [r7, #8] - mvn r2, #1 - str r2, [r7, #12] - ldrh r2, [r4] - strh r9, [r7] @ movhi - strh r2, [r7, #2] @ movhi - ldr r2, [r3, #-2064] - str r1, [r2] - ldr r1, .L2586+12 - ldr r2, [r3, #-2064] - str r1, [r2, #4] -.L2571: - subs fp, fp, #1 - bcc .L2574 + str r3, [sp, #20] + mov r8, #0 + ldr r3, [r5, #-528] + movw r2, #61589 + str r7, [sp, #16] + mov r4, r0 + ldr r9, .L2573 + 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 r3, [r7, #2] @ movhi + ldr r3, [r5, #-528] + str r2, [r3] + ldr r2, .L2573+8 + ldr r3, [r5, #-528] + str r2, [r3, #4] +.L2559: + subs r10, r10, #1 + bcc .L2562 ldrh r3, [r4, #4] cmp r3, #0 - bne .L2572 -.L2574: + bne .L2560 +.L2562: ldrh r3, [r4] - ldr r1, [r5, #-4060] + ldr r1, [r5, #-3548] ldrh r0, [r4, #4] mov r3, r3, asl #1 ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L2586+16 + ldr r3, .L2573+12 ldrh r3, [r3] strh r3, [r4, #2] @ movhi mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - b .L2568 -.L2572: + b .L2556 +.L2560: mov r0, r4 bl get_new_active_ppa cmn r0, #1 - str r0, [sp, #4] - beq .L2574 - ldr r3, [r5, #-3844] + str r0, [sp, #8] + beq .L2562 + ldr r3, [r5, #-3332] mov r1, #1 mov r2, r6 - mov r0, sp + add r0, sp, #4 str r3, [r7, #4] add r3, r3, #1 cmn r3, #1 - moveq r3, r9 - str r3, [r10, #-3844] + moveq r3, r8 + str r3, [r9, #-3332] mov r3, #0 bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L2571 -.L2568: - ldr r2, [sp, #36] - ldr r3, [r8] - cmp r2, r3 - beq .L2578 - bl __stack_chk_fail -.L2578: - add sp, sp, #44 + b .L2559 +.L2556: + add sp, sp, #40 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2587: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L2574: .align 2 -.L2586: - .word __stack_chk_guard - .word .LANCHOR0 +.L2573: .word .LANCHOR2 + .word .LANCHOR0 .word 305419896 - .word .LANCHOR0+1872 + .word .LANCHOR0+2384 .fnend .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 @@ -15507,22 +15321,22 @@ ftl_map_blk_gc: .pad #12 mov r4, r0 ldr r5, [r0, #12] - ldr r8, [r0, #24] + ldr r7, [r0, #24] bl ftl_free_no_use_map_blk ldrh r3, [r4, #10] ldrh r2, [r4, #8] sub r3, r3, #4 - ldr r7, .L2602 + ldr r8, .L2589 cmp r2, r3 - blt .L2589 + blt .L2576 uxth r0, r0 mov r0, r0, asl #1 ldrh r10, [r5, r0] cmp r10, #0 - beq .L2589 + beq .L2576 ldr r3, [r4, #32] cmp r3, #0 - bne .L2589 + bne .L2576 mov r2, #1 str r2, [r4, #32] strh r3, [r5, r0] @ movhi @@ -15530,89 +15344,91 @@ ftl_map_blk_gc: ldrh r2, [r4, #2] sub r3, r3, #1 strh r3, [r4, #8] @ movhi - movw r3, #1874 - ldrh r3, [r7, r3] + movw r3, #2386 + ldrh r3, [r8, r3] cmp r2, r3 - bcc .L2590 + bcc .L2577 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2590: - ldr r5, .L2602+4 +.L2577: + ldr r5, .L2589+4 mov fp, #0 -.L2591: +.L2578: ldrh r3, [r4, #6] uxth r6, fp cmp r3, r6 - bls .L2601 - ldr r2, [r8, r6, asl #2] - add r3, r8, r6, asl #2 - cmp r10, r2, lsr #10 - bne .L2592 - ldr r2, [r5, #-2060] + bls .L2588 + ldr r3, [r7, r6, asl #2] + add ip, r7, r6, asl #2 + cmp r10, r3, lsr #10 + bne .L2579 + ldr r3, [r5, #-524] mov r1, #1 - ldr r9, [r5, #-2040] - ldr r0, .L2602+8 - str r2, [r5, #220] - str r9, [r5, #224] - ldr r2, [r8, r6, asl #2] - str r3, [sp, #4] - str r2, [r5, #216] + ldr r9, [r5, #-504] mov r2, r1 + ldr r0, .L2589+8 + str r3, [r5, #1756] + str r9, [r5, #1760] + ldr r3, [r7, r6, asl #2] + str ip, [sp, #4] + str r3, [r5, #1752] bl FlashReadPages - ldr r2, [r5, #212] - cmn r2, #1 - ldr r3, [sp, #4] - bne .L2593 -.L2595: + ldr r3, [r5, #1748] + cmn r3, #1 + ldr r3, .L2589+4 + ldr ip, [sp, #4] + bne .L2580 +.L2582: mov r2, #0 - str r2, [r3] - ldr r3, .L2602+4 - ldr r0, .L2602+12 + ldr r0, .L2589+12 + str r2, [ip] + ldr r1, [r3, #1752] ldrh r2, [r9, #8] - ldr r1, [r3, #216] + str r3, [sp, #4] bl printk - mov r3, #1 - str r3, [r7, #4052] - b .L2594 -.L2593: + mov r2, #1 + ldr r3, [sp, #4] + str r2, [r3, #-3620] + b .L2581 +.L2580: ldrh r1, [r9, #8] cmp r1, r6 - bne .L2595 + bne .L2582 ldrh r0, [r9] ldrh r2, [r4, #4] cmp r0, r2 - bne .L2595 + bne .L2582 mov r0, r4 - ldr r2, [r5, #220] + ldr r2, [r5, #1756] bl FtlMapWritePage -.L2592: +.L2579: add fp, fp, #1 - b .L2591 -.L2601: + b .L2578 +.L2588: mov r0, r10 mov r1, #1 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L2589: - movw r3, #1874 +.L2576: + movw r3, #2386 ldrh r2, [r4, #2] - ldrh r3, [r7, r3] + ldrh r3, [r8, r3] cmp r2, r3 - bcc .L2594 + bcc .L2581 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2594: +.L2581: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2603: +.L2590: .align 2 -.L2602: +.L2589: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+212 + .word .LANCHOR2+1748 .word .LC130 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc @@ -15625,87 +15441,86 @@ 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 r6, .L2616 - ldr r5, [r0, #12] - ldr r7, [r0, #24] - ldr r10, [r6, #4052] - cmp r10, #0 - bne .L2605 + ldr r5, .L2603 + ldr r7, [r0, #12] + ldr r9, [r0, #24] + ldr r6, [r5, #-3620] + cmp r6, #0 + bne .L2592 ldrh r3, [r0] movw r2, #65535 mov r4, r0 cmp r3, r2 - bne .L2606 + bne .L2593 ldrh r3, [r0, #8] add r3, r3, #1 strh r3, [r0, #8] @ movhi bl FtlFreeSysBlkQueueOut - strh r0, [r5] @ movhi + strh r0, [r7] @ movhi ldr r3, [r4, #28] - strh r10, [r4, #2] @ movhi + strh r6, [r4, #2] @ movhi add r3, r3, #1 - strh r10, [r4] @ movhi + strh r6, [r4] @ movhi str r3, [r4, #28] - b .L2605 -.L2606: + b .L2592 +.L2593: mov r3, r3, asl #1 + ldr r10, .L2603+4 mov r1, #255 - ldrh r9, [r5, r3] - ldr r5, .L2616+4 + ldrh r8, [r7, r3] ldrh r3, [r0, #2] - orr r3, r3, r9, asl #10 - str r3, [r5, #216] - ldr r3, [r5, #-2064] - ldr r8, [r5, #-2040] - str r3, [r5, #220] + ldr r7, [r5, #-504] + orr r3, r3, r8, asl #10 + str r3, [r5, #1752] + ldr r3, [r5, #-528] + str r7, [r5, #1760] + str r3, [r5, #1756] ldr r3, [r0, #28] - str r8, [r5, #224] - str r3, [r8, #4] - ldr r3, .L2616+8 - strh r3, [r8, #8] @ movhi + str r3, [r7, #4] + ldr r3, .L2603+8 + strh r3, [r7, #8] @ movhi ldrh r3, [r0, #4] - strh r9, [r8, #2] @ movhi - strh r3, [r8] @ movhi - movw r3, #1874 - ldrh r2, [r6, r3] - ldr r0, [r5, #-2064] + strh r8, [r7, #2] @ movhi + strh r3, [r7] @ movhi + movw r3, #2386 + ldrh r2, [r10, r3] + ldr r0, [r5, #-528] mov r2, r2, asl #3 bl ftl_memset - mov r1, r10 - mov r3, r10 -.L2607: - ldrh r0, [r4, #6] - uxth r2, r1 - cmp r0, r2 - bls .L2615 - ldr r0, [r7, r2, asl #2] - cmp r9, r0, lsr #10 - bne .L2608 - add r3, r3, #1 - ldr r0, [r5, #-2064] - uxth r3, r3 - str r2, [r0, r3, asl #3] - ldr r0, [r7, r2, asl #2] - ldr r2, [r5, #-2064] - add r2, r2, r3, asl #3 - str r0, [r2, #4] -.L2608: - add r1, r1, #1 - b .L2607 -.L2615: - ldrb r3, [r6] @ zero_extendqisi2 + mov r2, r6 +.L2594: + ldrh r1, [r4, #6] + uxth r3, r2 + cmp r1, r3 + bls .L2602 + ldr r1, [r9, r3, asl #2] + cmp r8, r1, lsr #10 + bne .L2595 + add r6, r6, #1 + ldr r1, [r5, #-528] + uxth r6, r6 + str r3, [r1, r6, asl #3] + ldr r1, [r9, r3, asl #2] + ldr r3, [r5, #-528] + add r3, r3, r6, asl #3 + str r1, [r3, #4] +.L2595: + add r2, r2, #1 + b .L2594 +.L2602: + ldrb r3, [r10] @ zero_extendqisi2 cmp r3, #0 - beq .L2610 - ldr r2, .L2616 - movw r3, #1882 - ldr r0, [r5, #220] + beq .L2597 + ldr r2, .L2603+4 + movw r3, #2394 + ldr r0, [r5, #1756] ldrh r1, [r2, r3] bl js_hash - str r0, [r8, #12] -.L2610: + str r0, [r7, #12] +.L2597: mov r1, #1 mov r3, #0 - ldr r0, .L2616+12 + ldr r0, .L2603+12 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -15713,16 +15528,16 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2605: +.L2592: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2617: +.L2604: .align 2 -.L2616: - .word .LANCHOR0 +.L2603: .word .LANCHOR2 + .word .LANCHOR0 .word -1291 - .word .LANCHOR2+212 + .word .LANCHOR2+1748 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 @@ -15735,131 +15550,128 @@ FtlMapWritePage: 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 r10, r0 - ldr r6, .L2637 + mov r4, r0 + ldr r10, .L2624 mov r8, r1 - mov r4, #0 + ldr fp, .L2624+4 + mov r5, #0 str r2, [sp] - mov r5, r6 -.L2619: - ldr r3, [r6, #-3864] - ldr r9, .L2637 + mov r9, r10 +.L2606: + ldr r3, [r10, #-3352] + ldr r6, .L2624 add r3, r3, #1 - str r3, [r6, #-3864] - ldr r3, .L2637+4 - ldrh r2, [r10, #2] - ldrh r3, [r3] + str r3, [r10, #-3352] + ldrh r3, [fp] + ldrh r2, [r4, #2] sub r3, r3, #1 cmp r2, r3 - bge .L2620 - ldrh r2, [r10] + bge .L2607 + ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L2621 -.L2620: - mov r0, r10 + bne .L2608 +.L2607: + mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L2621: - ldr r3, .L2637+8 - ldr r1, [r3, #4052] - mov fp, r3 - str r3, [sp, #4] +.L2608: + ldr r1, [r9, #-3620] cmp r1, #0 - bne .L2622 - ldrh r2, [r10] - ldr r0, [r10, #12] - ldr r3, [sp] - mov r2, r2, asl #1 - ldrh r7, [r0, r2] - ldrh r2, [r10, #2] - ldr r0, [r5, #-2040] - orr r2, r2, r7, asl #10 - str r2, [r5, #216] + bne .L2609 + ldrh r3, [r4] + ldr r2, [r4, #12] + ldr r0, [r10, #-504] + mov r3, r3, asl #1 + ldrh r7, [r2, r3] mov r2, #16 - str r3, [r5, #220] - str r0, [r5, #224] + ldrh r3, [r4, #2] + str r0, [r10, #1760] + orr r3, r3, r7, asl #10 + str r3, [r10, #1752] + ldr r3, [sp] + str r3, [r10, #1756] bl ftl_memset - ldr r1, [r10, #28] - ldr r2, [r5, #224] - str r1, [r2, #4] - strh r8, [r2, #8] @ movhi - ldrh r1, [r10, #4] - strh r7, [r2, #2] @ movhi - strh r1, [r2] @ movhi - ldr r3, [sp, #4] - ldrb r3, [r3] @ zero_extendqisi2 - cmp r3, #0 - beq .L2623 - ldr r3, .L2637+12 - ldr r0, [r6, #220] - str r2, [sp, #4] - ldrh r1, [r3] + ldr r2, [r4, #28] + ldr r3, [r10, #1760] + 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 + ldrb r2, [r2] @ zero_extendqisi2 + cmp r2, #0 + beq .L2610 + ldr r2, .L2624+12 + ldr r0, [r10, #1756] + str r3, [sp, #4] + ldrh r1, [r2] bl js_hash - ldr r2, [sp, #4] - str r0, [r2, #12] -.L2623: + ldr r3, [sp, #4] + str r0, [r3, #12] +.L2610: mov r1, #1 - ldr r0, .L2637+16 + ldr r0, .L2624+16 mov r2, r1 mov r3, r1 bl FlashProgPages - ldrh r3, [r10, #2] + ldrh r3, [r4, #2] add r3, r3, #1 uxth r3, r3 - strh r3, [r10, #2] @ movhi - ldr r2, [r5, #212] + strh r3, [r4, #2] @ movhi + ldr r2, [r9, #1748] cmn r2, #1 - bne .L2624 - ldr r0, .L2637+20 - add r4, r4, #1 - ldr r1, [r6, #216] + bne .L2611 + ldr r0, .L2624+20 + add r5, r5, #1 + ldr r1, [r10, #1752] bl printk - ldrh r3, [r10, #2] - uxth r4, r4 + ldrh r3, [r4, #2] + uxth r5, r5 cmp r3, #2 - ldrls r3, .L2637+4 + ldrls r3, .L2624+4 ldrlsh r3, [r3] subls r3, r3, #1 - strlsh r3, [r10, #2] @ movhi - cmp r4, #3 - bls .L2619 - ldr r0, .L2637+24 - mov r2, r4 - ldr r1, [r9, #216] + strlsh r3, [r4, #2] @ movhi + cmp r5, #3 + bls .L2606 + ldr r0, .L2624+24 + mov r2, r5 + ldr r1, [r6, #1752] bl printk mov r3, #1 - str r3, [fp, #4052] - b .L2622 -.L2624: + str r3, [r6, #-3620] + b .L2609 +.L2611: cmp r2, #0 - strneh r7, [r10, #40] @ movhi + strneh r7, [r4, #40] @ movhi cmp r2, #256 cmpne r3, #1 - beq .L2628 - ldr r3, [r10, #36] + beq .L2615 + ldr r3, [r4, #36] cmp r3, #0 - beq .L2629 -.L2628: + beq .L2616 +.L2615: mov r3, #0 - str r3, [r10, #36] - b .L2619 -.L2629: - ldr r2, [r9, #216] - ldr r3, [r10, #24] + str r3, [r4, #36] + b .L2606 +.L2616: + ldr r2, [r6, #1752] + ldr r3, [r4, #24] str r2, [r3, r8, asl #2] -.L2622: +.L2609: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2638: +.L2625: .align 2 -.L2637: +.L2624: .word .LANCHOR2 - .word .LANCHOR0+1874 + .word .LANCHOR0+2386 .word .LANCHOR0 - .word .LANCHOR0+1882 - .word .LANCHOR2+212 + .word .LANCHOR0+2394 + .word .LANCHOR2+1748 .word .LC131 .word .LC132 .fnend @@ -15874,25 +15686,24 @@ flush_l2p_region: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #12 - ldr r5, .L2641 + ldr r5, .L2628 mul r4, r4, r0 - sub r0, r5, #1968 - ldr r3, [r5, #-3896] - sub r0, r0, #4 + sub r0, r5, #436 + ldr r3, [r5, #-3384] add r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] bl FtlMapWritePage - ldr r3, [r5, #-3896] + ldr r3, [r5, #-3384] 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} -.L2642: +.L2629: .align 2 -.L2641: +.L2628: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -15912,217 +15723,215 @@ FtlMapTblRecovery: ldrh r10, [r0, #6] mov r1, #0 ldr r8, [r0, #24] - mov r6, #0 - ldr r5, .L2686 - str r3, [sp, #4] - mov r2, r10, asl #2 + str r3, [sp, #12] ldrh r3, [r0, #8] + mov r2, r10, asl #2 ldr r9, [r0, #12] mov r0, r8 - ldr fp, .L2686+4 - str r3, [sp] + str r3, [sp, #8] bl ftl_memset - ldr r3, [r5, #-2064] - ldr r7, [r5, #-2040] - str r6, [r4, #32] - str r3, [r5, #220] + ldr r1, .L2673 + mov r2, #1 + str r2, [r4, #36] + ldr r3, [r1, #-528] + mov r5, r1 + ldr r6, [r1, #-504] + mov r7, r1 + str r3, [r1, #1756] mvn r3, #0 - str r7, [r5, #224] - str r6, [r4, #28] + str r6, [r1, #1760] strh r3, [r4] @ movhi strh r3, [r4, #2] @ movhi - mov r3, #1 - str r3, [r4, #36] -.L2644: - uxth r2, r6 - ldr r1, [sp] - sxth r3, r2 - cmp r3, r1 - bge .L2662 - ldr r1, [sp] - sub r1, r1, #1 - cmp r3, r1 - mov r1, r3, asl #1 - bne .L2645 - ldrh r0, [r9, r1] - mov r6, #0 - str r3, [sp, #12] - add r3, r9, r1 - mov r1, #1 - str r2, [sp, #8] - str r3, [sp] - bl FtlGetLastWrittenPage - ldr fp, .L2686 - ldr r2, [sp, #8] - add r1, r0, #1 - ldr r3, [sp, #12] - sxth r0, r0 - strh r1, [r4, #2] @ movhi - add r9, r0, #1 - strh r2, [r4] @ movhi - ldr r2, [sp, #4] - ldr r3, [r2, r3, asl #2] + mov r3, #0 + str r3, [r4, #32] str r3, [r4, #28] -.L2646: - sxth r3, r6 - cmp r3, r9 - bge .L2662 - ldr r2, [sp] + str r3, [sp, #4] +.L2631: + ldrh r3, [sp, #4] + ldr r2, [sp, #8] + sxth fp, r3 + cmp fp, r2 + bge .L2649 + ldr r2, [sp, #8] + sub r2, r2, #1 + cmp fp, r2 + mov r2, fp, asl #1 + bne .L2632 + ldrh r0, [r9, r2] mov r1, #1 - ldr r0, .L2686+8 + str r3, [sp, #8] + add r3, r9, r2 + str r3, [sp, #4] + bl FtlGetLastWrittenPage + mov r7, #0 + ldr r3, [sp, #8] + add r2, r0, #1 + strh r2, [r4, #2] @ movhi + sxth r0, r0 + add r9, r0, #1 + strh r3, [r4] @ movhi + ldr r3, [sp, #12] + ldr r3, [r3, fp, asl #2] + ldr fp, .L2673 + str r3, [r4, #28] +.L2633: + sxth r3, r7 + cmp r3, r9 + bge .L2649 + ldr r2, [sp, #4] + mov r1, #1 + ldr r0, .L2673+4 ldrh r2, [r2] orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r5, #216] + str r3, [r5, #1752] bl FlashReadPages - ldr r3, .L2686+12 + ldr r3, .L2673+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2647 - ldr r3, [fp, #224] + beq .L2634 + ldr r3, [fp, #1760] ldr r3, [r3, #12] cmp r3, #0 - beq .L2647 - ldr r2, .L2686+16 - ldr r0, [fp, #220] - str r3, [sp, #4] + beq .L2634 + ldr r2, .L2673+12 + ldr r0, [fp, #1756] + str r3, [sp, #8] ldrh r1, [r2] bl js_hash - ldr r3, [sp, #4] + ldr r3, [sp, #8] cmp r3, r0 mvnne r3, #0 - strne r3, [fp, #212] -.L2647: - ldr r3, [fp, #212] + strne r3, [fp, #1748] +.L2634: + ldr r3, [fp, #1748] cmn r3, #1 - beq .L2648 - ldrh r3, [r7, #8] + beq .L2635 + ldrh r3, [r6, #8] cmp r3, r10 - bcs .L2648 + bcs .L2635 ldrh r2, [r4, #4] - ldrh r1, [r7] + ldrh r1, [r6] cmp r1, r2 - ldreq r2, [fp, #216] + ldreq r2, [fp, #1752] streq r2, [r8, r3, asl #2] -.L2648: - add r6, r6, #1 - b .L2646 -.L2662: +.L2635: + add r7, r7, #1 + b .L2633 +.L2649: mov r0, r4 bl ftl_free_no_use_map_blk - ldr r1, .L2686+12 - movw r3, #1874 + ldr r1, .L2673+8 + movw r3, #2386 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bne .L2651 + bne .L2638 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2651 -.L2645: - ldr r3, [r5, #-2064] - ldr r0, .L2686+8 - str r3, [r5, #220] - add r3, r9, r1 - ldrh r2, [r9, r1] + b .L2638 +.L2632: + ldr r3, [r5, #-528] mov r1, #1 - str r3, [sp, #8] + ldr fp, .L2673+16 + ldr r0, .L2673+4 + str r3, [r5, #1756] + add r3, r9, r2 + ldrh r2, [r9, r2] + str r3, [sp, #16] ldrh r3, [fp] sub r3, r3, #1 orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r5, #216] + str r3, [r5, #1752] bl FlashReadPages - ldr r3, [r5, #212] + ldr r3, [r5, #1748] cmn r3, #1 - beq .L2664 - ldrh r2, [r7] - ldrh r3, [r4, #4] - cmp r2, r3 - bne .L2664 - ldrh r2, [r7, #8] - movw r3, #64245 - cmp r2, r3 - bne .L2664 - mov r1, #0 - mov ip, #8 - mov lr, #4 -.L2653: - ldr r0, .L2686+4 - uxth r3, r1 - sxth r2, r3 - ldrh r0, [r0] - sub r0, r0, #1 - cmp r2, r0 - bge .L2656 - ldr r0, [r5, #-2064] - add r1, r1, #1 - ldr r2, [r0, r2, asl #3] - uxth r2, r2 - cmp r2, r10 - smlabbcc r3, r3, ip, lr - ldrcc r3, [r0, r3] - strcc r3, [r8, r2, asl #2] - b .L2653 -.L2664: - ldr ip, .L2686 - mov r3, #0 -.L2684: - ldrh r1, [fp] - sxth r2, r3 + mov r3, fp + beq .L2651 + ldrh r1, [r6] + ldrh r2, [r4, #4] + cmp r1, r2 + bne .L2651 + ldrh r1, [r6, #8] + movw r2, #64245 + cmp r1, r2 + bne .L2651 + mov r0, #0 + mov lr, #8 + mov fp, #4 +.L2640: + uxth r2, r0 + ldrh ip, [r3] + sxth r1, r2 + sub ip, ip, #1 + cmp r1, ip + bge .L2643 + ldr ip, [r5, #-528] + add r0, r0, #1 + ldr r1, [ip, r1, asl #3] + uxth r1, r1 + cmp r1, r10 + smlabbcc r2, r2, lr, fp + ldrcc r2, [ip, r2] + strcc r2, [r8, r1, asl #2] + b .L2640 +.L2651: + mov fp, #0 +.L2671: + ldr r3, .L2673+16 + sxth r2, fp + ldrh r1, [r3] cmp r2, r1 - bge .L2656 - str r3, [sp, #16] - ldr r3, [sp, #8] - ldr r0, .L2686+8 - str ip, [sp, #12] + bge .L2643 + str r3, [sp, #20] + ldr r3, [sp, #16] + ldr r0, .L2673+4 ldrh r1, [r3] orr r2, r2, r1, asl #10 mov r1, #1 - str r2, [ip, #216] + str r2, [r7, #1752] mov r2, r1 bl FlashReadPages - ldr r3, .L2686+12 + ldr r3, .L2673+8 ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 - ldr ip, [sp, #12] - ldr r3, [sp, #16] - beq .L2657 - ldr r2, [ip, #224] + ldr r3, [sp, #20] + beq .L2644 + ldr r2, [r7, #1760] ldr r2, [r2, #12] cmp r2, #0 - beq .L2657 - ldr r1, .L2686+16 - ldr r0, [ip, #220] + beq .L2644 + ldrh r1, [r3, #8] + ldr r0, [r7, #1756] str r2, [sp, #20] - ldrh r1, [r1] bl js_hash ldr r2, [sp, #20] - ldr ip, [sp, #12] - ldr r3, [sp, #16] cmp r2, r0 - mvnne r2, #0 - strne r2, [ip, #212] -.L2657: - ldr r2, .L2686 - ldr r2, [r2, #212] - cmn r2, #1 - beq .L2658 - ldrh r2, [r7, #8] - cmp r2, r10 - bcs .L2658 - ldrh r1, [r4, #4] - ldrh r0, [r7] - cmp r0, r1 - ldreq r1, [ip, #216] - streq r1, [r8, r2, asl #2] -.L2658: + mvnne r3, #0 + strne r3, [r7, #1748] +.L2644: + ldr r3, .L2673 + ldr r3, [r3, #1748] + cmn r3, #1 + beq .L2645 + ldrh r3, [r6, #8] + cmp r3, r10 + bcs .L2645 + ldrh r2, [r4, #4] + ldrh r1, [r6] + cmp r1, r2 + ldreq r2, [r7, #1752] + streq r2, [r8, r3, asl #2] +.L2645: + add fp, fp, #1 + b .L2671 +.L2643: + ldr r3, [sp, #4] add r3, r3, #1 - b .L2684 -.L2656: - add r6, r6, #1 - b .L2644 -.L2651: + str r3, [sp, #4] + b .L2631 +.L2638: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -16131,14 +15940,14 @@ FtlMapTblRecovery: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2687: +.L2674: .align 2 -.L2686: +.L2673: .word .LANCHOR2 - .word .LANCHOR0+1874 - .word .LANCHOR2+212 + .word .LANCHOR2+1748 .word .LANCHOR0 - .word .LANCHOR0+1882 + .word .LANCHOR0+2394 + .word .LANCHOR0+2386 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 @@ -16148,40 +15957,37 @@ FtlLoadVonderInfo: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r2, .L2677 + movw r1, #2404 stmfd sp!, {r3, lr} .save {r3, lr} - movw r2, #1892 - ldr r3, .L2690 - ldr r0, .L2690+4 - ldrh r1, [r3, r2] - movw r2, #262 - strh r1, [r0, r2] @ movhi - add r2, r0, #256 - ldr r1, .L2690+8 - strh r1, [r2] @ movhi - movw r1, #1918 - ldrh r1, [r3, r1] - add r2, r0, #260 - strh r1, [r2] @ movhi - movw r2, #1894 - ldrh r1, [r3, r2] - movw r2, #258 - ldr r3, [r3, #1920] - strh r1, [r0, r2] @ movhi - add r0, r0, #252 - str r3, [r0, #12] - ldr r3, [r0, #-2252] - str r3, [r0, #16] - ldr r3, [r0, #-2256] - str r3, [r0, #20] - ldr r3, [r0, #-2248] - str r3, [r0, #24] + ldr r3, .L2677+4 + ldrh r1, [r2, r1] + add r0, r3, #1776 + add r0, r0, #12 + strh r1, [r0, #10] @ movhi + ldr r1, .L2677+8 + strh r1, [r0, #4] @ movhi + movw r1, #2430 + ldrh r1, [r2, r1] + strh r1, [r0, #8] @ movhi + movw r1, #2406 + ldrh r1, [r2, r1] + ldr r2, [r2, #2432] + 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, #1812] bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2691: +.L2678: .align 2 -.L2690: +.L2677: .word .LANCHOR0 .word .LANCHOR2 .word -3962 @@ -16197,14 +16003,14 @@ FtlLoadMapInfo: stmfd sp!, {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2694 + ldr r0, .L2681 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2695: +.L2682: .align 2 -.L2694: - .word .LANCHOR2-1972 +.L2681: + .word .LANCHOR2-436 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 2 @@ -16212,51 +16018,47 @@ FtlLoadMapInfo: .type FtlVendorPartWrite, %function FtlVendorPartWrite: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2708 + ldr r3, .L2694 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r10, r2 - ldr r2, [r3] - .pad #68 - sub sp, sp, #68 + movw r2, #2392 mov r4, r1 - movw r1, #1880 + ldrh r5, [r3, r2] + add r2, r0, r1 + movw r1, #2380 mov r6, r0 - str r3, [sp, #12] - str r2, [sp, #60] - ldr r2, .L2708+4 - ldrh r5, [r2, r1] - add r1, r0, r4 - movw r0, #1868 - ldrh r2, [r2, r0] - cmp r1, r2 + ldrh r3, [r3, r1] + .pad #60 + sub sp, sp, #60 + cmp r2, r3 mvnhi r0, #0 - bhi .L2697 - ldr fp, .L2708+8 + bhi .L2684 + ldr fp, .L2694+4 mov r5, r6, lsr r5 mov r3, r5, asl #2 - str r3, [sp, #8] + str r3, [sp, #4] mov r7, fp mov r3, #0 - str r3, [sp, #4] -.L2698: + str r3, [sp] +.L2685: cmp r4, #0 - beq .L2707 - ldr r2, [sp, #8] + beq .L2693 + ldr r2, [sp, #4] mov r0, r6 - ldr r3, [fp, #-1996] + ldr r3, [fp, #-460] ldr ip, [r3, r2] - ldr r3, .L2708+12 - str ip, [sp, #20] + ldr r3, .L2694+8 + str ip, [sp, #12] ldrh r2, [r3] mov r1, r2 - str r2, [sp, #16] + str r2, [sp, #8] bl __aeabi_uidivmod - ldr r2, [sp, #16] + ldr r2, [sp, #8] mov r8, r1 - ldr ip, [sp, #20] + ldr ip, [sp, #12] rsb r3, r1, r2 uxth r9, r3 cmp r9, r4 @@ -16265,70 +16067,62 @@ FtlVendorPartWrite: cmpne ip, #0 movne r1, #1 moveq r1, #0 - beq .L2700 - ldr r2, [r7, #-2056] + beq .L2687 + ldr r2, [r7, #-520] mov r1, #1 - add r0, sp, #24 - str ip, [sp, #28] - str r2, [sp, #32] + add r0, sp, #20 + str ip, [sp, #24] + str r2, [sp, #28] mov r2, #0 - str r2, [sp, #36] + str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2701 -.L2700: - ldr r2, .L2708+16 - ldr r0, [r7, #-2056] + b .L2688 +.L2687: + ldr r2, .L2694+12 + ldr r0, [r7, #-520] ldrh r2, [r2] bl ftl_memset -.L2701: +.L2688: mov ip, r9, asl #9 - ldr r0, [r7, #-2056] + ldr r0, [r7, #-520] uxth r8, r8 mov r1, r10 mov r2, ip - str ip, [sp, #16] + str ip, [sp, #8] add r0, r0, r8, asl #9 rsb r4, r9, r4 bl ftl_memcpy mov r1, r5 - ldr r0, .L2708+20 + ldr r0, .L2694+16 add r5, r5, #1 - ldr r2, [r7, #-2056] + ldr r2, [r7, #-520] add r6, r6, r9 bl FtlMapWritePage - ldr r3, [sp, #4] + ldr r3, [sp] cmn r0, #1 - ldr ip, [sp, #16] + ldr ip, [sp, #8] mvneq r3, #0 - str r3, [sp, #4] + str r3, [sp] add r10, r10, ip - ldr r3, [sp, #8] + ldr r3, [sp, #4] add r3, r3, #4 - str r3, [sp, #8] - b .L2698 -.L2707: - ldr r0, [sp, #4] -.L2697: - ldr r3, [sp, #12] - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L2704 - bl __stack_chk_fail -.L2704: - add sp, sp, #68 + str r3, [sp, #4] + b .L2685 +.L2693: + ldr r0, [sp] +.L2684: + add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2709: +.L2695: .align 2 -.L2708: - .word __stack_chk_guard +.L2694: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1878 - .word .LANCHOR0+1882 - .word .LANCHOR2+252 + .word .LANCHOR0+2390 + .word .LANCHOR0+2394 + .word .LANCHOR2+1788 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 @@ -16339,54 +16133,52 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2712 - ldr r2, .L2712+4 - ldr r1, [r3, #-3748] + ldr r3, .L2698 + ldr r2, .L2698+4 + ldr r1, [r3, #-3236] cmp r1, r2 bxne lr - ldr r2, .L2712+8 + ldr r2, .L2698+8 mov r0, #0 mov r1, #1 - str r2, [r3, #-3744] - ldr r2, [r3, #-3856] - str r2, [r3, #-3660] - ldr r2, [r3, #-3852] - str r2, [r3, #-3656] - ldr r2, [r3, #-3860] - str r2, [r3, #-3740] - ldr r2, [r3, #-3872] - str r2, [r3, #-3736] - ldr r2, [r3, #-3880] - str r2, [r3, #-3732] - ldr r2, [r3, #-3864] - str r2, [r3, #-3728] - ldr r2, [r3, #-3836] - str r2, [r3, #-3720] - ldr r2, .L2712+12 - ldr r2, [r2, #4064] - str r2, [r3, #-3716] - ldr r2, [r3, #-3876] - str r2, [r3, #-3712] - ldr r2, [r3, #-3868] - str r2, [r3, #-3708] - ldr r2, [r3, #-3828] - str r2, [r3, #-3704] - ldr r2, [r3, #-3824] - str r2, [r3, #-3700] - ldr r2, [r3, #-3752] - str r2, [r3, #-3688] - ldr r2, [r3, #-2104] - str r2, [r3, #-3684] - ldr r2, .L2712+16 + 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 b FtlVendorPartWrite -.L2713: +.L2699: .align 2 -.L2712: +.L2698: .word .LANCHOR2 .word 1179929683 - .word 1342177367 - .word .LANCHOR0 - .word .LANCHOR2-3748 + .word 1342177376 + .word .LANCHOR2-3236 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 @@ -16398,41 +16190,42 @@ FtlEctTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2722 - ldr r2, .L2722+4 - ldr r3, [r3, #1796] + ldr r3, .L2708 + ldr r3, [r3, #2308] cmp r3, #0 - moveq r3, #32 - beq .L2715 - ldr r3, [r2, #-3824] - cmp r3, #39 - movhi r3, #32 - movls r3, #4 -.L2715: - ldr ip, .L2722+8 - ldrh r1, [ip] + ldr r3, .L2708+4 + moveq r2, #32 + beq .L2701 + ldr r2, [r3, #-3312] + cmp r2, #39 + movhi r2, #32 + movls r2, #4 +.L2701: + movw ip, #1832 + ldrh r1, [r3, ip] cmp r1, #31 addls r1, r1, #1 - strlsh r1, [ip] @ movhi - movls r3, #1 + ldrls r2, .L2708+4 + strlsh r1, [r2, ip] @ movhi + movls r2, #1 cmp r0, #0 - bne .L2717 - ldr r1, [r2, #-2020] + bne .L2703 + ldr r1, [r3, #-484] ldr r0, [r1, #20] ldr r1, [r1, #16] - add r3, r3, r0 - cmp r1, r3 - bcc .L2718 -.L2717: - ldr r3, [r2, #-2020] + add r2, r2, r0 + cmp r1, r2 + bcc .L2704 +.L2703: + ldr r2, [r3, #-484] mov r0, #64 - ldr r1, [r3, #16] - str r1, [r3, #20] - ldr r1, .L2722+12 - str r1, [r3] - ldr r3, .L2722+16 - ldr r2, [r2, #-2020] - ldrh r1, [r3, #-12] + ldr r1, [r2, #16] + str r1, [r2, #20] + ldr r1, .L2708+8 + str r1, [r2] + ldr r2, [r3, #-484] + ldr r3, .L2708+12 + ldrh r1, [r3] mov r3, r1, asl #9 str r3, [r2, #12] ldr r3, [r2, #8] @@ -16442,17 +16235,16 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2718: +.L2704: mov r0, #0 ldmfd sp!, {r3, pc} -.L2723: +.L2709: .align 2 -.L2722: +.L2708: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+296 .word 1112818501 - .word .LANCHOR2-2016 + .word .LANCHOR2-492 .fnend .size FtlEctTblFlush, .-FtlEctTblFlush .align 2 @@ -16462,120 +16254,113 @@ FtlVendorPartRead: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2737 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r7, r2 - ldr r2, [r3] + movw r3, #2392 + ldr r4, .L2722 + mov r8, r2 + add r2, r0, r1 + mov r7, r0 .pad #60 sub sp, sp, #60 - mov r5, r1 - movw r1, #1880 - mov r6, r0 - str r3, [sp, #12] - str r2, [sp, #52] - ldr r2, .L2737+4 - ldrh r4, [r2, r1] - add r1, r0, r5 - movw r0, #1868 - ldrh r2, [r2, r0] - cmp r1, r2 + mov r6, r1 + ldrh r5, [r4, r3] + movw r3, #2380 + ldrh r3, [r4, r3] + cmp r2, r3 mvnhi r0, #0 - bhi .L2725 - ldr r10, .L2737+8 - mov r4, r6, lsr r4 - mov r3, r4, asl #2 + bhi .L2711 + ldr r9, .L2722+4 + mov r5, r7, lsr r5 + mov r3, r5, asl #2 str r3, [sp, #4] - mov fp, r10 + mov r10, r9 mov r3, #0 str r3, [sp] -.L2726: - cmp r5, #0 - beq .L2736 - ldr r3, [r10, #-1996] - mov r0, r6 +.L2712: + cmp r6, #0 + beq .L2721 ldr r2, [sp, #4] - ldr r8, [r3, r2] - ldr r3, .L2737+12 - ldrh r9, [r3] - mov r1, r9 + mov r0, r7 + ldr r3, [r9, #-460] + ldr r3, [r3, r2] + str r3, [sp, #12] + ldr r3, .L2722+8 + ldrh r4, [r3] + mov r1, r4 bl __aeabi_uidivmod - rsb r3, r1, r9 + rsb r4, r1, r4 + ldr r3, [sp, #12] str r1, [sp, #8] - uxth r9, r3 - cmp r9, r5 - uxthhi r9, r5 - cmp r8, #0 - beq .L2728 - ldr r2, [fp, #-2056] + uxth r4, r4 + cmp r4, r6 + uxthhi r4, r6 + cmp r3, #0 + mov fp, r4, asl #9 + beq .L2714 + ldr r2, [r10, #-520] mov r1, #1 - add r0, sp, #16 - str r8, [sp, #20] - str r2, [sp, #24] - mov r2, #0 + add r0, sp, #20 + str r3, [sp, #24] + str r3, [sp, #12] str r2, [sp, #28] + mov r2, #0 + str r2, [sp, #32] mov r2, r1 bl FlashReadPages - ldr r2, [sp, #16] + ldr r2, [sp, #20] ldr r3, [sp] cmn r2, #1 - ldr r2, [fp, #212] + ldr r2, [r10, #1748] mvneq r3, #0 cmp r2, #256 str r3, [sp] - bne .L2730 - mov r1, r4 - mov r2, r8 - ldr r0, .L2737+16 - bl printk - ldr r0, .L2737+20 - mov r1, r4 - ldr r2, [r10, #-2056] - bl FtlMapWritePage -.L2730: - ldrh r8, [sp, #8] - mov r0, r7 - ldr r1, [fp, #-2056] - mov r2, r9, asl #9 - add r1, r1, r8, asl #9 - bl ftl_memcpy - b .L2731 -.L2728: - mov r0, r7 - mov r1, r8 - mov r2, r9, asl #9 - bl ftl_memset -.L2731: - ldr r3, [sp, #4] - add r4, r4, #1 - rsb r5, r9, r5 - add r6, r6, r9 - add r3, r3, #4 - add r7, r7, r9, asl #9 - str r3, [sp, #4] - b .L2726 -.L2736: - ldr r0, [sp] -.L2725: ldr r3, [sp, #12] - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L2733 - bl __stack_chk_fail -.L2733: + bne .L2716 + mov r1, r5 + mov r2, r3 + ldr r0, .L2722+12 + bl printk + ldr r0, .L2722+16 + mov r1, r5 + ldr r2, [r9, #-520] + bl FtlMapWritePage +.L2716: + ldrh r3, [sp, #8] + mov r0, r8 + ldr r1, [r10, #-520] + mov r2, fp + add r1, r1, r3, asl #9 + bl ftl_memcpy + b .L2717 +.L2714: + mov r0, r8 + mov r1, r3 + mov r2, fp + bl ftl_memset +.L2717: + ldr r3, [sp, #4] + add r5, r5, #1 + rsb r6, r4, r6 + add r7, r7, r4 + add r3, r3, #4 + add r8, r8, fp + str r3, [sp, #4] + b .L2712 +.L2721: + ldr r0, [sp] +.L2711: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2738: +.L2723: .align 2 -.L2737: - .word __stack_chk_guard +.L2722: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1878 + .word .LANCHOR0+2390 .word .LC133 - .word .LANCHOR2+252 + .word .LANCHOR2+1788 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 @@ -16588,30 +16373,30 @@ FtlLoadEctTbl: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #64 - ldr r4, .L2742 - sub r5, r4, #2016 - ldr r2, [r4, #-2020] - ldrh r1, [r5, #-12] + ldr r4, .L2727 + sub r5, r4, #492 + ldr r2, [r4, #-484] + ldrh r1, [r5] bl FtlVendorPartRead - ldr r3, [r4, #-2020] + ldr r3, [r4, #-484] ldr r2, [r3] - ldr r3, .L2742+4 + ldr r3, .L2727+4 cmp r2, r3 - beq .L2740 - ldr r1, .L2742+8 - ldr r0, .L2742+12 + beq .L2725 + ldr r1, .L2727+8 + ldr r0, .L2727+12 bl printk - ldrh r2, [r5, #-12] - ldr r0, [r4, #-2020] + ldrh r2, [r5] + ldr r0, [r4, #-484] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L2740: +.L2725: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L2743: +.L2728: .align 2 -.L2742: +.L2727: .word .LANCHOR2 .word 1112818501 .word .LC134 @@ -16628,82 +16413,90 @@ Ftl_load_ext_data: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r4, .L2749 + ldr r4, .L2735 mov r1, #1 - ldr r2, .L2749+4 + ldr r2, .L2735+4 bl FtlVendorPartRead - ldr r5, .L2749+8 - ldr r3, [r4, #-3748] + ldr r5, .L2735+8 + ldr r3, [r4, #-3236] cmp r3, r5 - beq .L2745 - ldr r0, .L2749+4 + beq .L2730 + ldr r0, .L2735+4 mov r1, #0 mov r2, #512 bl ftl_memset - str r5, [r4, #-3748] -.L2745: - ldr r2, [r4, #-3748] - ldr r3, .L2749 + str r5, [r4, #-3236] +.L2730: + ldr r2, [r4, #-3236] + ldr r3, .L2735 cmp r2, r5 - ldr r5, .L2749+12 - bne .L2746 - ldr r2, [r3, #-3660] - str r2, [r3, #-3856] - ldr r2, [r3, #-3656] - str r2, [r3, #-3852] - ldr r2, [r3, #-3740] - str r2, [r3, #-3860] - ldr r2, [r3, #-3736] - str r2, [r3, #-3872] - ldr r2, [r3, #-3732] - str r2, [r3, #-3880] - ldr r2, [r3, #-3728] - str r2, [r3, #-3864] - ldr r2, [r3, #-3720] - str r2, [r3, #-3836] - ldr r2, [r3, #-3716] - str r2, [r5, #4064] - ldr r2, [r3, #-3712] - str r2, [r3, #-3876] - ldr r2, [r3, #-3708] - str r2, [r3, #-3868] - ldr r2, [r3, #-3704] - str r2, [r3, #-3828] - ldr r2, [r3, #-3700] - str r2, [r3, #-3824] - ldr r2, [r3, #-3688] - str r2, [r3, #-3752] -.L2746: + bne .L2731 + ldr r2, [r3, #-3148] + str r2, [r3, #-3344] + ldr r2, [r3, #-3144] + str r2, [r3, #-3340] + ldr r2, [r3, #-3228] + str r2, [r3, #-3348] + ldr r2, [r3, #-3224] + str r2, [r3, #-3360] + 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, #-3192] + str r2, [r3, #-3316] + ldr r2, [r3, #-3188] + str r2, [r3, #-3312] + ldr r2, [r3, #-3176] + str r2, [r3, #-3240] +.L2731: + ldr r1, [r4, #-3168] mov r3, #0 - ldr r2, [r4, #-3680] - str r3, [r4, #-2104] - ldr r3, .L2749+16 + ldr r2, .L2735+12 + str r3, [r4, #-568] + cmp r1, r2 + ldr r5, .L2735+16 + bne .L2732 + ldrb r2, [r5, #140] @ zero_extendqisi2 cmp r2, r3 - bne .L2747 - ldr r0, .L2749+20 + beq .L2733 + ldr r2, .L2735 + str r3, [r2, #-3168] + bl Ftl_save_ext_data + b .L2732 +.L2733: + ldr r0, .L2735+20 mov r3, #1 - ldr r1, .L2749+24 - str r3, [r5, #1796] + ldr r1, .L2735+24 + str r3, [r5, #2308] bl printk -.L2747: - movw r3, #1864 - ldr r0, [r4, #-3840] +.L2732: + movw r3, #2376 + ldr r0, [r4, #-3328] ldrh r2, [r5, r3] - ldr r3, [r4, #-3836] + ldr r3, [r4, #-3324] mla r0, r0, r2, r3 - movw r3, #1812 + movw r3, #2324 ldrh r1, [r5, r3] bl __aeabi_uidiv - str r0, [r4, #-3832] + str r0, [r4, #-3320] ldmfd sp!, {r3, r4, r5, pc} -.L2750: +.L2736: .align 2 -.L2749: +.L2735: .word .LANCHOR2 - .word .LANCHOR2-3748 + .word .LANCHOR2-3236 .word 1179929683 - .word .LANCHOR0 .word 305432421 + .word .LANCHOR0 .word .LC76 .word .LC135 .fnend @@ -16717,51 +16510,51 @@ FtlMapBlkWriteDumpData: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r3, [r0, #36] + ldr r2, [r0, #36] ldrh r5, [r0, #6] - cmp r3, #0 - ldr r1, [r0, #24] + cmp r2, #0 + ldr r3, [r0, #24] ldmeqfd sp!, {r4, r5, r6, pc} - ldr r2, .L2758 - mov r3, #0 - str r3, [r0, #36] - ldr r3, [r2, #4052] - cmp r3, #0 + ldr r4, .L2744 + mov r2, #0 + str r2, [r0, #36] + ldr r2, [r4, #-3620] + cmp r2, #0 ldmnefd sp!, {r4, r5, r6, pc} - ldr r3, .L2758+4 sub r5, r5, #1 mov r6, r0 + ldr r2, [r4, #-504] + ldr r0, [r4, #-524] uxth r5, r5 - ldr r0, [r3, #-2060] - mov r4, r3 - ldr ip, [r3, #-2040] - str r0, [r3, #220] - str ip, [r3, #224] - ldr r1, [r1, r5, asl #2] - cmp r1, #0 - str r1, [r3, #216] - beq .L2755 + str r2, [r4, #1760] + str r0, [r4, #1756] + ldr r3, [r3, r5, asl #2] + cmp r3, #0 + str r3, [r4, #1752] + beq .L2741 mov r1, #1 - add r0, r3, #212 + ldr r0, .L2744+4 mov r2, r1 bl FlashReadPages - b .L2756 -.L2755: - movw r3, #1882 + b .L2742 +.L2741: + ldr r2, .L2744+8 + movw r3, #2394 mov r1, #255 ldrh r2, [r2, r3] bl ftl_memset -.L2756: +.L2742: mov r0, r6 mov r1, r5 - ldr r2, [r4, #220] + ldr r2, [r4, #1756] ldmfd sp!, {r4, r5, r6, lr} b FtlMapWritePage -.L2759: +.L2745: .align 2 -.L2758: - .word .LANCHOR0 +.L2744: .word .LANCHOR2 + .word .LANCHOR2+1748 + .word .LANCHOR0 .fnend .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .align 2 @@ -16771,102 +16564,92 @@ FlashReadFacBbtData: .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} - .pad #44 - sub sp, sp, #44 - ldr r9, .L2776 - mov r10, r2 - ldr r8, .L2776+4 - mov r5, r0 - mov r7, r1 - ldr r3, [r9] - str r3, [sp, #36] - ldr r3, .L2776+8 + ldr r3, .L2761 + 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 r4, [r3, #126] - ldr r3, [r8, #148] - smulbb r4, r2, r4 - str r3, [sp, #8] - ldr r3, [r8, #180] - str r3, [sp, #12] - uxth r0, r4 - sub r6, r0, #1 - sub r4, r0, #16 - mul fp, r0, r1 + .pad #40 + sub sp, sp, #40 + ldrh r3, [r3, #126] + mov r5, r0 + ldr r9, .L2761+4 + mov r7, r1 + smulbb r3, r2, r3 + ldr r2, [r9, #1684] + str r2, [sp, #12] + ldr r2, [r9, #1716] + uxth r3, r3 + sub r6, r3, #1 + sub r4, r3, #16 + mul r10, r3, r1 uxth r6, r6 -.L2761: + str r2, [sp, #16] +.L2747: cmp r6, r4 - ble .L2775 + ble .L2760 mov r1, #1 - add r3, r6, fp - mov r0, sp + add r3, r6, r10 + add r0, sp, #4 mov r2, r1 mov r3, r3, asl #10 - str r3, [sp, #4] + str r3, [sp, #8] bl FlashReadPages - ldr r3, [sp] + ldr r3, [sp, #4] cmn r3, #1 - beq .L2762 - ldr r3, [r8, #180] + beq .L2748 + ldr r3, [r9, #1716] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L2762 + bne .L2748 cmp r5, #0 moveq r0, r5 - beq .L2763 + beq .L2749 cmp r7, #0 - ldreq ip, .L2776+4 + ldreq ip, .L2761+4 moveq lr, #1 - beq .L2764 -.L2766: - ldr r1, [r8, #148] - mov r2, r10 + beq .L2750 +.L2752: + ldr r1, [r9, #1684] + mov r2, r8 mov r0, r5 bl ftl_memcpy mov r2, #4 - ldr r0, .L2776+12 + ldr r0, .L2761+8 mov r1, r5 mov r3, r2 bl rknand_print_hex mov r0, #0 - b .L2763 -.L2764: - ldr r3, [r8, #168] - uxth r4, r7 + b .L2749 +.L2750: + ldr r2, [r9, #1704] + uxth r3, r7 add r7, r7, #1 - cmp r4, r3 - bcs .L2766 - ldr r2, [ip, #148] - mov r1, r4, lsr #5 - and r0, r4, #31 - ldr r3, [r2, r1, asl #2] - orr r0, r3, lr, asl r0 - str r0, [r2, r1, asl #2] - b .L2764 -.L2762: + cmp r3, r2 + bcs .L2752 + ldr r1, [ip, #1684] + 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: sub r6, r6, #1 uxth r6, r6 - b .L2761 -.L2775: + b .L2747 +.L2760: mvn r0, #0 -.L2763: - ldr r2, [sp, #36] - ldr r3, [r9] - cmp r2, r3 - beq .L2768 - bl __stack_chk_fail -.L2768: - add sp, sp, #44 +.L2749: + add sp, sp, #40 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2777: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L2762: .align 2 -.L2776: - .word __stack_chk_guard - .word .LANCHOR2 +.L2761: .word .LANCHOR0 + .word .LANCHOR2 .word .LC136 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData @@ -16877,36 +16660,36 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2789 + ldr r3, .L2774 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 - ldr r3, [r3, #692] - ldr r6, .L2789+4 + ldr r3, [r3, #1204] + ldr r6, .L2774+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] - ldr r0, [r6, #176] + ldr r0, [r6, #1712] smulbb r4, r4, r3 uxth r4, r4 add r2, r4, #7 mov r2, r2, asr #3 bl FlashReadFacBbtData cmn r0, #1 - bne .L2779 -.L2783: + bne .L2764 +.L2768: mov r3, #0 - b .L2780 -.L2779: + b .L2765 +.L2764: mov lr, r4, lsr #4 mov ip, #0 sub r4, r4, #1 mov r3, ip mov r7, #1 -.L2781: +.L2766: uxth r0, ip cmp r0, r4 - bge .L2780 - ldr r8, [r6, #176] + bge .L2765 + ldr r8, [r6, #1712] mov r1, r0, lsr #5 and r2, r0, #31 add ip, ip, #1 @@ -16917,17 +16700,17 @@ FlashGetBadBlockList: strneh r0, [r5, r3] @ movhi uxthne r3, r2 cmp r3, lr - bcc .L2781 - b .L2783 -.L2780: + bcc .L2766 + b .L2768 +.L2765: mov r3, r3, asl #1 mvn r2, #0 mov r0, #0 strh r2, [r5, r3] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2790: +.L2775: .align 2 -.L2789: +.L2774: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -16937,220 +16720,206 @@ FlashGetBadBlockList: .type FtlMakeBbt, %function FtlMakeBbt: .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} + 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 r6, .L2815 - ldr r5, [r6, #4052] + .pad #12 + ldr r4, .L2800 + ldr r5, [r4, #-3620] cmp r5, #0 - bne .L2792 + bne .L2777 bl FtlBbtMemInit - ldr r8, .L2815+4 + ldr r7, .L2800+4 bl FtlLoadFactoryBbt - ldr r7, .L2815+8 - sub r9, r8, #18 - add r4, r6, #1936 - mov r10, r7 -.L2793: - ldr r3, .L2815+12 + sub r9, r7, #18 + sub r10, r7, #94 +.L2778: + ldr r3, .L2800+8 + ldr r6, .L2800+12 ldrh r3, [r3] cmp r5, r3 - bcs .L2812 - ldrh r2, [r9, #2]! - movw r3, #65535 - ldr r0, [r7, #-2064] - ldr fp, [r7, #-2040] - cmp r2, r3 - ldr r3, .L2815+16 - str r0, [r7, #220] - str fp, [r7, #224] - beq .L2794 - ldrh ip, [r3] + bcs .L2797 + ldrh r3, [r9, #2]! + movw r2, #65535 + ldr r0, [r4, #-528] + ldr fp, [r4, #-504] + cmp r3, r2 + ldr r8, .L2800 + str r0, [r4, #1756] + str fp, [r4, #1760] + beq .L2779 + ldrh ip, [r10] mov r1, #1 - ldr r0, .L2815+20 - str r3, [sp, #8] - mla ip, ip, r5, r2 - mov r2, ip, asl #10 - str r2, [r7, #216] mov r2, r1 + ldr r0, .L2800+16 + mla ip, ip, r5, r3 + mov r3, ip, asl #10 str ip, [sp, #4] + str r3, [r8, #1752] bl FlashReadPages - ldr r0, [r8] - ldr r1, [r7, #220] - ldr r3, [sp, #8] - ldrh r2, [r3] + ldrh r2, [r10] + ldr r0, [r7] add r2, r2, #7 + ldr r1, [r8, #1756] mov r2, r2, asr #3 bl ftl_memcpy ldr ip, [sp, #4] - b .L2795 -.L2794: + b .L2780 +.L2779: mov r1, r5 - str r3, [sp, #4] + sub r8, r8, #440 bl FlashGetBadBlockList - ldr r0, [r7, #220] - ldr r1, [r8] + ldr r0, [r8, #2196] + ldr r1, [r7] bl FtlBbt2Bitmap - ldr r3, [sp, #4] - ldrh r2, [r3] - sub r2, r2, #1 - uxth r2, r2 - stmib sp, {r2, r3} -.L2796: - ldr r3, [sp, #8] - ldrh r0, [r3] - ldr r3, [sp, #4] - smlabb r0, r0, r5, r3 + ldrh r6, [r10] + sub r6, r6, #1 + uxth r6, r6 +.L2781: + ldrh r0, [r10] + smlabb r0, r0, r5, r6 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - ldreq r3, [sp, #4] - subeq r3, r3, #1 - uxtheq r3, r3 - streq r3, [sp, #4] - beq .L2796 -.L2813: - ldrh r3, [sp, #4] + subeq r6, r6, #1 + uxtheq r6, r6 + beq .L2781 +.L2798: mov r1, #0 mov r2, #16 - ldr r0, [r10, #-2040] - strh r3, [r9] @ movhi + strh r6, [r9] @ movhi + ldr r0, [r4, #-504] bl ftl_memset - ldr r3, .L2815+24 + ldr r3, .L2800+20 strh r3, [fp] @ movhi mov r3, #0 str r3, [fp, #4] ldrh r3, [r9] + ldrh ip, [r10] + ldrh r2, [r8] strh r3, [fp, #2] @ movhi ldrh r3, [r9] - ldr r1, [r8] - ldr r0, [r10, #220] - ldr r2, [sp, #8] - ldrh ip, [r2] + ldr r1, [r7] + mov r2, r2, asl #2 + ldr r0, [r4, #1756] mla ip, ip, r5, r3 mov r3, ip, asl #10 - str r3, [r10, #216] - ldr r3, .L2815+28 - str ip, [sp, #12] - ldrh r2, [r3] - mov r2, r2, asl #2 + str r3, [r4, #1752] + str ip, [sp, #4] bl ftl_memcpy mov r1, #1 + ldr r0, .L2800+16 mov r2, r1 - ldr r0, .L2815+20 bl FlashEraseBlocks mov r1, #1 mov r3, r1 - ldr r0, .L2815+20 + ldr r0, .L2800+16 mov r2, r1 bl FlashProgPages - ldr r3, [r10, #212] + ldr r3, [r4, #1748] cmn r3, #1 - ldr ip, [sp, #12] - bne .L2795 + ldr ip, [sp, #4] + bne .L2780 uxth r0, ip bl FtlBbmMapBadBlock - b .L2796 -.L2795: + b .L2781 +.L2780: uxth r0, ip add r5, r5, #1 bl FtlBbmMapBadBlock - add r8, r8, #4 - b .L2793 -.L2812: - ldr r7, .L2815+32 + add r7, r7, #4 + b .L2778 +.L2797: + ldr r7, .L2800+24 mov r5, #0 -.L2800: +.L2785: ldrh r3, [r7] uxth r0, r5 add r5, r5, #1 cmp r3, r0 - bls .L2814 + bls .L2799 bl FtlBbmMapBadBlock - b .L2800 -.L2814: - ldrh r5, [r4, #12] - movw r8, #65535 - ldr r7, .L2815+36 - sub r5, r5, #1 - uxth r5, r5 -.L2802: - ldrh r3, [r4, #12] + b .L2785 +.L2799: + ldr r5, .L2800+28 + movw r9, #65535 + ldrh r7, [r5, #12] + mov r8, r5 + sub r7, r7, #1 + uxth r7, r7 +.L2787: + ldrh r3, [r5, #12] sub r3, r3, #48 - cmp r5, r3 - ble .L2806 - mov r0, r5 + cmp r7, r3 + ble .L2791 + mov r0, r7 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2803 - mov r0, r5 + beq .L2788 + mov r0, r7 bl FlashTestBlk cmp r0, #0 - beq .L2804 - mov r0, r5 + beq .L2789 + mov r0, r7 bl FtlBbmMapBadBlock - b .L2803 -.L2804: - ldrh r3, [r7] - cmp r3, r8 - streqh r5, [r7] @ movhi -.L2805: - ldrne r3, .L2815+36 - strneh r5, [r3, #4] @ movhi - bne .L2806 -.L2803: - sub r5, r5, #1 - uxth r5, r5 - b .L2802 -.L2806: - ldr r0, [r6, #4056] - mov r5, #0 - ldrh r3, [r4] + b .L2788 +.L2789: + 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] mov r2, #2 - str r5, [r6, #1944] + str r7, [r6, #2456] mov r1, #1 - strh r5, [r4, #2] @ movhi + strh r7, [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] + ldrh r0, [r5] bl FtlBbmMapBadBlock - ldrh r0, [r4, #4] + ldrh r0, [r5, #4] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldr r3, [r6, #1944] - ldrh r2, [r4, #4] + ldr r3, [r6, #2456] + ldrh r2, [r5, #4] add r3, r3, #1 - str r3, [r6, #1944] - ldrh r3, [r4] - strh r5, [r4, #2] @ movhi - strh r2, [r4] @ movhi - strh r3, [r4, #4] @ movhi + str r3, [r6, #2456] + ldrh r3, [r5] + strh r7, [r5, #2] @ movhi + strh r2, [r5] @ movhi + strh r3, [r5, #4] @ movhi bl FtlBbmTblFlush -.L2792: +.L2777: mov r0, #0 - add sp, sp, #20 + add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2816: +.L2801: .align 2 -.L2815: - .word .LANCHOR0 - .word .LANCHOR0+1964 +.L2800: .word .LANCHOR2 - .word .LANCHOR0+1826 - .word .LANCHOR0+1870 - .word .LANCHOR2+212 + .word .LANCHOR0+2476 + .word .LANCHOR0+2338 + .word .LANCHOR0 + .word .LANCHOR2+1748 .word -3872 - .word .LANCHOR2-1976 - .word .LANCHOR0+1886 - .word .LANCHOR0+1936 + .word .LANCHOR0+2398 + .word .LANCHOR0+2448 .fnend .size FtlMakeBbt, .-FtlMakeBbt .align 2 @@ -17163,41 +16932,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, #1880 - ldr r7, .L2834 + movw r3, #2392 + ldr r7, .L2819 ldrh r10, [r7, r3] - ldr r3, [r7, #1932] + ldr r3, [r7, #2444] cmp r0, r3 - bcs .L2818 + bcs .L2803 add r10, r10, #7 - ldr fp, .L2834+4 + ldr fp, .L2819+4 mov r5, r0, lsr r10 - movw r3, #1910 + movw r3, #2422 str r2, [sp, #4] mov r9, r1 mov r6, r7 str r0, [sp] uxth r5, r5 ldrh r2, [r7, r3] - ldr r8, [fp, #-3896] + ldr r8, [fp, #-3384] mov r4, #0 mov r1, #12 - b .L2819 -.L2818: + b .L2804 +.L2803: cmp r2, #0 mvn r0, #0 streq r0, [r1] - b .L2820 -.L2824: + b .L2805 +.L2809: add r4, r4, #1 mla r0, r1, r4, r8 ldrh r0, [r0, #-12] cmp r0, r5 - beq .L2821 -.L2819: + beq .L2806 +.L2804: uxth r7, r4 cmp r7, r2 - bcc .L2824 + bcc .L2809 bl select_l2p_ram_region mov r4, #12 movw r3, #65535 @@ -17206,57 +16975,57 @@ log2phys: add r2, r8, r4 ldrh r1, [r8, r4] cmp r1, r3 - bne .L2833 -.L2825: - ldr r3, [fp, #-1992] - ldr r8, .L2834+4 + bne .L2818 +.L2810: + ldr r3, [fp, #-456] + ldr r8, .L2819+4 ldr fp, [r3, r5, asl #2] cmp fp, #0 - bne .L2826 - ldr r3, [r8, #-3896] + bne .L2811 + ldr r3, [r8, #-3384] mov r1, #255 add r3, r3, r4 ldr r0, [r3, #8] - movw r3, #1882 + movw r3, #2394 ldrh r2, [r6, r3] bl ftl_memset - ldr r3, [r8, #-3896] + ldr r3, [r8, #-3384] strh r5, [r3, r4] @ movhi - ldr r3, [r8, #-3896] + ldr r3, [r8, #-3384] add r4, r3, r4 str fp, [r4, #4] -.L2821: +.L2806: ldr r2, [sp] mvn r3, #0 mov r6, #12 bic r10, r2, r3, asl r10 ldr r3, [sp, #4] - ldr r2, .L2834+4 + ldr r2, .L2819+4 cmp r3, #0 uxth r10, r10 - bne .L2822 - ldr r3, [r2, #-3896] + bne .L2807 + ldr r3, [r2, #-3384] mla r6, r6, r7, r3 ldr r3, [r6, #8] ldr r3, [r3, r10, asl #2] str r3, [r9] - b .L2823 -.L2822: + b .L2808 +.L2807: mul r6, r6, r7 - ldr r3, [r2, #-3896] + ldr r3, [r2, #-3384] ldr r1, [r9] add r3, r3, r6 ldr r3, [r3, #8] str r1, [r3, r10, asl #2] - ldr r3, [r2, #-3896] + ldr r3, [r2, #-3384] add r6, r3, r6 ldr r3, [r6, #4] orr r3, r3, #-2147483648 str r3, [r6, #4] - sub r3, r2, #3888 + sub r3, r2, #3376 strh r5, [r3, #-4] @ movhi -.L2823: - ldr r2, [r2, #-3896] +.L2808: + ldr r2, [r2, #-3384] mov r3, #12 mov r0, #0 mla r7, r3, r7, r2 @@ -17264,83 +17033,83 @@ log2phys: cmn r3, #1 addne r3, r3, #1 strne r3, [r7, #4] - b .L2820 -.L2833: + b .L2805 +.L2818: ldr r3, [r2, #4] cmp r3, #0 - bge .L2825 + bge .L2810 bl flush_l2p_region - b .L2825 -.L2826: - ldr r3, [r8, #-3896] + b .L2810 +.L2811: + ldr r3, [r8, #-3384] mov r1, #1 - add r0, r8, #212 + ldr r0, .L2819+8 mov r2, r1 add r3, r3, r4 - str fp, [r8, #216] + str fp, [r8, #1752] ldr r3, [r3, #8] - str r3, [r8, #220] - ldr r3, [r8, #-2040] - str r3, [r8, #224] + str r3, [r8, #1756] + ldr r3, [r8, #-504] + str r3, [r8, #1760] bl FlashReadPages - ldr r3, [r8, #224] + ldr r3, [r8, #1760] ldrh r3, [r3, #8] cmp r3, r5 - beq .L2827 + beq .L2812 mov r1, r5 mov r2, fp - ldr r0, .L2834+8 + ldr r0, .L2819+12 bl printk mov r2, #4 mov r3, r2 - ldr r0, .L2834+12 - ldr r1, [r8, #224] + ldr r0, .L2819+16 + ldr r1, [r8, #1760] bl rknand_print_hex - movw r3, #1908 + movw r3, #2420 ldrh r3, [r6, r3] mov r2, #4 - ldr r0, .L2834+16 - ldr r1, [r8, #-1992] + ldr r0, .L2819+20 + ldr r1, [r8, #-456] bl rknand_print_hex mov r3, #1 - str r3, [r6, #4052] - b .L2828 -.L2827: - ldr r3, [r8, #212] + str r3, [r8, #-3620] + b .L2813 +.L2812: + ldr r3, [r8, #1748] cmp r3, #256 - bne .L2828 + bne .L2813 mov r1, r5 mov r2, fp - ldr r0, .L2834+20 + ldr r0, .L2819+24 bl printk - ldr r3, [r8, #-3896] - ldr r0, .L2834+24 + ldr r3, [r8, #-3384] + sub r0, r8, #436 mov r1, r5 add r3, r3, r4 ldr r2, [r3, #8] bl FtlMapWritePage -.L2828: - ldr r3, .L2834+4 +.L2813: + ldr r3, .L2819+4 mov r1, #0 - ldr r3, [r3, #-3896] + ldr r3, [r3, #-3384] add r2, r3, r4 str r1, [r2, #4] strh r5, [r3, r4] @ movhi - b .L2821 -.L2820: + b .L2806 +.L2805: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2835: +.L2820: .align 2 -.L2834: +.L2819: .word .LANCHOR0 .word .LANCHOR2 + .word .LANCHOR2+1748 .word .LC137 .word .LC100 .word .LC138 .word .LC139 - .word .LANCHOR2-1972 .fnend .size log2phys, .-log2phys .align 2 @@ -17348,129 +17117,115 @@ log2phys: .type FtlWriteDumpData, %function FtlWriteDumpData: .fnstart - @ args = 0, pretend = 0, frame = 56 + @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2856 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #60 - sub sp, sp, #60 - ldr r2, [r3] - ldr r8, .L2856+4 - str r3, [sp] - str r2, [sp, #52] - ldr r2, [r8, #4052] - cmp r2, #0 - bne .L2836 - ldr r7, .L2856+8 - ldr r4, .L2856+12 - ldrh r5, [r7, #4] - cmp r5, #0 - beq .L2838 - ldrb r3, [r4, #-4032] @ zero_extendqisi2 + .pad #44 + sub sp, sp, #44 + ldr r4, .L2841 + ldr r3, [r4, #-3620] cmp r3, #0 - bne .L2838 - add r3, r8, #1872 - ldrb r2, [r4, #-4033] @ zero_extendqisi2 + bne .L2821 + ldr r3, .L2841+4 + ldrh r2, [r3, #4] + cmp r2, #0 + beq .L2823 + ldrb r3, [r4, #-3520] @ zero_extendqisi2 + cmp r3, #0 + bne .L2823 + ldr r8, .L2841+8 + ldrb r1, [r4, #-3521] @ zero_extendqisi2 + add r3, r8, #2384 ldrh r3, [r3] - mul r3, r3, r2 - cmp r5, r3 - beq .L2838 - ldrb r10, [r4, #-4030] @ zero_extendqisi2 - movw r3, #1804 - ldr r6, [r8, #1932] - cmp r10, #0 - ldrh r9, [r8, r3] - bne .L2836 + mul r3, r3, r1 + cmp r2, r3 + beq .L2823 + ldrb r9, [r4, #-3518] @ zero_extendqisi2 + movw r3, #2316 + ldr r6, [r8, #2444] + cmp r9, #0 + ldrh r7, [r8, r3] + bne .L2821 sub r6, r6, #1 - add r1, sp, #12 - mov r2, r10 + mov r1, sp + mov r2, r9 mov r0, r6 bl log2phys - ldr r5, [r4, #-2040] - ldr r0, [r4, #-2064] - ldr r3, [sp, #12] - str r6, [sp, #32] + ldr r5, [r4, #-504] + ldr r0, [r4, #-528] + ldr r3, [sp] + str r6, [sp, #20] cmn r3, #1 - str r0, [sp, #24] - str r3, [sp, #20] - str r5, [sp, #28] - str r10, [r5, #4] - beq .L2840 + str r0, [sp, #12] + str r3, [sp, #8] + str r5, [sp, #16] + str r9, [r5, #4] + beq .L2825 mov r1, #1 - mov r2, r10 - add r0, sp, #16 + mov r2, r9 + add r0, sp, #4 bl FlashReadPages - b .L2841 -.L2840: - movw r3, #1882 + b .L2826 +.L2825: + movw r3, #2394 mov r1, #255 ldrh r2, [r8, r3] bl ftl_memset -.L2841: - ldr r3, .L2856+16 +.L2826: + ldr fp, .L2841+4 + mov r7, r7, asl #2 + ldr r3, .L2841+12 mov r8, #0 - ldr r10, .L2856+12 - mov r9, r9, asl #2 - ldr ip, .L2856+8 - mov fp, r8 + ldr r9, .L2841 + mov r10, fp strh r3, [r5] @ movhi -.L2842: - cmp r8, r9 - beq .L2843 - ldrh r3, [r7, #4] +.L2827: + cmp r8, r7 + beq .L2828 + ldrh r3, [fp, #4] cmp r3, #0 - beq .L2843 - ldr r3, [sp, #20] + beq .L2828 + ldr r3, [sp, #8] add r8, r8, #1 str r6, [r5, #8] - ldr r0, .L2856+8 + ldr r0, .L2841+4 str r3, [r5, #12] - ldrh r3, [ip] - str ip, [sp, #4] + ldrh r3, [fp] strh r3, [r5, #2] @ movhi bl get_new_active_ppa - ldr r3, [r10, #-3844] + ldr r3, [r9, #-3332] mov r2, #0 mov r1, #1 - str r0, [sp, #20] - add r0, sp, #16 + str r0, [sp, #8] + add r0, sp, #4 str r3, [r5, #4] add r3, r3, #1 cmn r3, #1 - moveq r3, fp - str r3, [r10, #-3844] + moveq r3, #0 + str r3, [r9, #-3332] mov r3, r2 bl FlashProgPages - ldrh r0, [r7] + ldrh r0, [r10] bl decrement_vpc_count - ldr ip, [sp, #4] - b .L2842 -.L2843: + b .L2827 +.L2828: mov r3, #1 - b .L2855 -.L2838: + b .L2840 +.L2823: mov r3, #0 -.L2855: - strb r3, [r4, #-4030] -.L2836: - ldr r3, [sp] - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L2847 - bl __stack_chk_fail -.L2847: - add sp, sp, #60 +.L2840: + strb r3, [r4, #-3518] +.L2821: + add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2857: +.L2842: .align 2 -.L2856: - .word __stack_chk_guard - .word .LANCHOR0 - .word .LANCHOR2-4040 +.L2841: .word .LANCHOR2 + .word .LANCHOR2-3528 + .word .LANCHOR0 .word -3947 .fnend .size FtlWriteDumpData, .-FtlWriteDumpData @@ -17485,30 +17240,30 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData mov r4, #0 - ldr r5, .L2864 + ldr r5, .L2849 mov r7, #12 - ldr r6, .L2864+4 -.L2859: + ldr r6, .L2849+4 +.L2844: ldrh r3, [r5] uxth r0, r4 cmp r3, r0 - bls .L2863 - ldr r3, [r6, #-3896] + bls .L2848 + ldr r3, [r6, #-3384] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L2860 + bge .L2845 bl flush_l2p_region -.L2860: +.L2845: add r4, r4, #1 - b .L2859 -.L2863: + b .L2844 +.L2848: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2865: +.L2850: .align 2 -.L2864: - .word .LANCHOR0+1910 +.L2849: + .word .LANCHOR0+2422 .word .LANCHOR2 .fnend .size l2p_flush, .-l2p_flush @@ -17519,106 +17274,104 @@ allocate_new_data_superblock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L2893 - stmfd sp!, {r3, r4, r5, r6, r7, lr} - .save {r3, r4, r5, r6, r7, lr} - ldr r3, [r1, #4052] - ldrh r5, [r0] + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + ldr r5, .L2878 + ldrh r6, [r0] + ldr r3, [r5, #-3620] cmp r3, #0 - bne .L2867 + bne .L2852 movw r3, #65535 - cmp r5, r3 - mov r7, r1 + cmp r6, r3 mov r4, r0 - ldr r6, .L2893+4 - beq .L2868 - ldr r2, [r6, #-4060] - mov r3, r5, asl #1 - mov r0, r5 + beq .L2853 + ldr r2, [r5, #-3548] + mov r3, r6, asl #1 + mov r0, r6 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2869 + beq .L2854 bl INSERT_DATA_LIST - b .L2868 -.L2869: + b .L2853 +.L2854: bl INSERT_FREE_LIST -.L2868: +.L2853: mov r3, #0 strb r3, [r4, #8] - ldr r3, .L2893+8 + ldr r3, .L2878+4 cmp r4, r3 - beq .L2870 - ldr r2, .L2893 - add r3, r2, #1824 - ldrh r3, [r3] - cmp r3, #1 - beq .L2870 - ldrb r2, [r2, #140] @ zero_extendqisi2 - cmp r2, #0 - beq .L2871 -.L2870: + beq .L2855 + ldr r3, .L2878+8 + add r2, r3, #2336 + ldrh r2, [r2] + cmp r2, #1 + beq .L2855 + ldrb r1, [r3, #140] @ zero_extendqisi2 + cmp r1, #0 + beq .L2856 +.L2855: mov r3, #1 strb r3, [r4, #8] - b .L2872 -.L2871: - ldr r2, .L2893+12 - cmp r4, r2 - bne .L2872 - cmp r3, #3 - beq .L2874 - ldr r3, .L2893+4 - ldr r3, [r3, #-3752] - cmp r3, #1 - bne .L2875 -.L2874: - mov r3, #1 - strb r3, [r6, #-4032] -.L2875: - ldr r3, [r7, #1796] + b .L2857 +.L2856: + ldr r1, .L2878+12 + cmp r4, r1 + bne .L2857 + cmp r2, #3 + beq .L2859 + ldr r2, .L2878 + ldr r2, [r2, #-3240] + cmp r2, #1 + bne .L2860 +.L2859: + mov r2, #1 + strb r2, [r5, #-3520] +.L2860: + ldr r3, [r3, #2308] cmp r3, #0 - beq .L2872 - ldr r3, [r6, #-3824] + beq .L2857 + ldr r3, [r5, #-3312] cmp r3, #39 - ldrls r3, .L2893+4 + ldrls r3, .L2878 movls r2, #1 - strlsb r2, [r3, #-4032] -.L2872: - ldr r2, .L2893+4 + strlsb r2, [r3, #-3520] +.L2857: + ldr r2, .L2878 movw r1, #65535 - sub r3, r2, #1920 + sub r3, r2, #384 ldrh r0, [r3] - mov r6, r3 + mov r5, r3 cmp r0, r1 - beq .L2877 - cmp r5, r0 - bne .L2878 - ldr r2, [r2, #-4060] + beq .L2862 + cmp r6, r0 + bne .L2863 + ldr r2, [r2, #-3548] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2879 -.L2878: + beq .L2864 +.L2863: bl update_vpc_list -.L2879: +.L2864: mvn r3, #0 - strh r3, [r6] @ movhi -.L2877: + strh r3, [r5] @ movhi +.L2862: mov r0, r4 bl allocate_data_superblock bl l2p_flush mov r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2867: +.L2852: mov r0, #0 - ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2894: + ldmfd sp!, {r4, r5, r6, pc} +.L2879: .align 2 -.L2893: - .word .LANCHOR0 +.L2878: .word .LANCHOR2 - .word .LANCHOR2-3992 - .word .LANCHOR2-4040 + .word .LANCHOR2-3480 + .word .LANCHOR0 + .word .LANCHOR2-3528 .fnend .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 2 @@ -17628,120 +17381,110 @@ FtlCheckVpc: .fnstart @ args = 0, pretend = 0, frame = 8 @ 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 mov r4, #0 - ldr r6, .L2917 - ldr r1, .L2917+4 - ldr r0, .L2917+8 - ldr r3, [r6] - ldr r7, .L2917+12 - ldr r5, .L2917+16 - str r3, [sp, #4] + ldr r1, .L2901 + ldr r0, .L2901+4 bl printk - ldr r0, .L2917+16 + ldr r0, .L2901+8 mov r1, #0 mov r2, #8192 bl memset -.L2896: - ldr r3, [r7, #1932] + ldr r6, .L2901+12 + ldr r5, .L2901+8 +.L2881: + ldr r3, [r6, #2444] cmp r4, r3 - bcs .L2915 + bcs .L2899 mov r0, r4 - mov r1, sp + add r1, sp, #4 mov r2, #0 bl log2phys - ldr r0, [sp] + ldr r0, [sp, #4] cmn r0, #1 - beq .L2897 + beq .L2882 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 -.L2897: +.L2882: add r4, r4, #1 - b .L2896 -.L2915: - ldr r5, .L2917+20 - mov r4, #0 - ldr r8, .L2917+24 - add r9, r5, #300 + b .L2881 .L2899: - ldrh r3, [r8] + ldr r5, .L2901+16 + mov r4, #0 + ldr r7, .L2901+20 + ldr r8, .L2901+8 +.L2884: + ldrh r3, [r5] uxth r1, r4 - ldr r7, .L2917+20 + ldr r6, .L2901+20 cmp r3, r1 - bls .L2916 - ldr r2, [r5, #-4060] + bls .L2900 + ldr r2, [r7, #-3548] mov r3, r1, asl #1 ldrh r2, [r2, r3] - ldrh r3, [r9, r3] + ldrh r3, [r8, r3] cmp r2, r3 - beq .L2900 - ldr r0, .L2917+28 + beq .L2885 + ldr r0, .L2901+24 bl printk -.L2900: +.L2885: add r4, r4, #1 - b .L2899 -.L2916: - ldr r4, [r7, #-4048] - cmp r4, #0 - beq .L2895 - sub r3, r7, #4032 - add r9, r7, #300 + b .L2884 +.L2900: + ldr r3, [r6, #-3536] + cmp r3, #0 + beq .L2880 + sub r2, r6, #3520 + ldr r8, .L2901+8 mov r5, #0 - mov r10, #6 - ldrh r8, [r3, #-12] - ldr r3, [r7, #-4068] - rsb r4, r3, r4 - ldr r3, .L2917+32 - mov r4, r4, asr #1 - mul r4, r3, r4 - uxth r4, r4 -.L2903: + mov r9, #6 + ldrh r7, [r2, #-12] + ldr r2, [r6, #-3556] + rsb r3, r2, r3 + ldr r2, .L2901+28 + mov r3, r3, asr #1 + mul r3, r2, r3 + uxth r4, r3 +.L2888: uxth r3, r5 - cmp r3, r8 - bcs .L2895 - ldr r2, [r7, #-4060] + cmp r3, r7 + bcs .L2880 + ldr r2, [r6, #-3548] mov r3, r4, asl #1 ldrh r2, [r2, r3] cmp r2, #0 - beq .L2904 - ldr r0, .L2917+36 + beq .L2889 + ldr r0, .L2901+32 mov r1, r4 - ldrh r3, [r9, r3] + ldrh r3, [r8, r3] bl printk -.L2904: - mul r4, r10, r4 - ldr r3, [r7, #-4068] +.L2889: + mul r4, r9, r4 + ldr r3, [r6, #-3556] add r5, r5, #1 ldrh r4, [r3, r4] movw r3, #65535 cmp r4, r3 - bne .L2903 -.L2895: - ldr r2, [sp, #4] - ldr r3, [r6] - cmp r2, r3 - beq .L2907 - bl __stack_chk_fail -.L2907: - add sp, sp, #8 + bne .L2888 +.L2880: + add sp, sp, #12 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2918: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L2902: .align 2 -.L2917: - .word __stack_chk_guard +.L2901: .word .LANCHOR3+72 .word .LC108 + .word .LANCHOR2+1836 .word .LANCHOR0 - .word .LANCHOR2+300 + .word .LANCHOR0+2324 .word .LANCHOR2 - .word .LANCHOR0+1812 .word .LC140 .word -1431655765 .word .LC141 @@ -17756,95 +17499,85 @@ Ftlscanalldata: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} + mov r1, #0 .pad #32 sub sp, sp, #32 - ldr r6, .L2930 - mov r1, #0 - ldr r0, .L2930+4 - mov r4, #0 - ldr r8, .L2930+8 - ldr r3, [r6] - ldr r5, .L2930+12 - str r3, [sp, #28] + ldr r0, .L2913 bl printk -.L2920: - ldr r3, [r8, #1932] + ldr r5, .L2913+4 + ldr r8, .L2913+8 + mov r4, #0 + mov r6, r5 +.L2904: + ldr r3, [r8, #2444] cmp r4, r3 - bcs .L2929 + bcs .L2912 mov r0, r4 - add r1, sp, #24 + add r1, sp, #28 mov r2, #0 bl log2phys ubfx r3, r4, #0, #11 cmp r3, #0 - bne .L2921 - ldr r0, .L2930+16 + bne .L2905 + ldr r0, .L2913+12 mov r1, r4 - ldr r2, [sp, #24] + ldr r2, [sp, #28] bl printk -.L2921: - ldr r3, [sp, #24] +.L2905: + ldr r3, [sp, #28] cmn r3, #1 - beq .L2923 - str r3, [r5, #216] + beq .L2907 + str r3, [r5, #1752] mov r2, #0 - ldr r3, [r5, #-2064] + ldr r3, [r5, #-528] mov r1, #1 - ldr r7, [r5, #-2040] - ldr r0, .L2930+20 - str r3, [r5, #220] - str r2, [r5, #212] - str r4, [r5, #228] - str r7, [r5, #224] + ldr r7, [r5, #-504] + ldr r0, .L2913+16 + str r3, [r5, #1756] + str r4, [r5, #1764] + str r7, [r5, #1760] + str r2, [r5, #1748] bl FlashReadPages - ldr r3, [r5, #212] - ldr r2, .L2930+12 + ldr r3, [r5, #1748] cmn r3, #1 cmpne r3, #256 - beq .L2924 + beq .L2908 ldr r3, [r7, #8] cmp r3, r4 - beq .L2923 -.L2924: - ldr r3, [r2, #224] - ldr r1, [r2, #220] - ldr r0, [r3, #4] - str r0, [sp] - ldr r0, [r3, #8] - str r0, [sp, #4] - ldr r0, [r3, #12] - str r0, [sp, #8] - ldr r0, [r1] - str r0, [sp, #12] - ldr r1, [r1, #4] - ldr r0, .L2930+24 - str r1, [sp, #16] + beq .L2907 +.L2908: + ldr r3, [r6, #1760] + ldr r2, [r6, #1756] + ldr r0, .L2913+20 + ldr r1, [r3, #4] + str r1, [sp] + ldr r1, [r3, #8] + str r1, [sp, #4] + ldr r1, [r3, #12] + str r1, [sp, #8] + ldr r1, [r2] + str r1, [sp, #12] mov r1, r4 - ldr r2, [r2, #216] + ldr r2, [r2, #4] + str r2, [sp, #16] + ldr r2, [r6, #1752] ldr r3, [r3] bl printk -.L2923: +.L2907: add r4, r4, #1 - b .L2920 -.L2929: - ldr r2, [sp, #28] - ldr r3, [r6] - cmp r2, r3 - beq .L2927 - bl __stack_chk_fail -.L2927: + b .L2904 +.L2912: add sp, sp, #32 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2931: +.L2914: .align 2 -.L2930: - .word __stack_chk_guard +.L2913: .word .LC142 - .word .LANCHOR0 .word .LANCHOR2 + .word .LANCHOR0 .word .LC143 - .word .LANCHOR2+212 + .word .LANCHOR2+1748 .word .LC144 .fnend .size Ftlscanalldata, .-Ftlscanalldata @@ -17862,20 +17595,20 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r6, .L2942 - ldr r4, [r6, #-4060] + ldr r6, .L2925 + ldr r4, [r6, #-3548] mov r7, r0, asl #1 ldrh r3, [r4, r7] cmp r3, #0 addne r3, r3, #1 strneh r3, [r4, r7] @ movhi - bne .L2934 - ldr r4, [r6, #-4048] + bne .L2917 + ldr r4, [r6, #-3536] cmp r4, #0 - beq .L2934 - ldr r1, [r6, #-4068] - sub r2, r6, #4032 - ldr lr, .L2942+4 + beq .L2917 + ldr r1, [r6, #-3556] + sub r2, r6, #3520 + ldr lr, .L2925+4 movw r9, #65535 rsb r4, r1, r4 ldrh ip, [r2, #-12] @@ -17884,32 +17617,32 @@ FtlReUsePrevPpa: mul r4, lr, r4 mov lr, #6 uxth r4, r4 -.L2935: +.L2918: uxth r2, r3 cmp r2, ip - bcs .L2934 + bcs .L2917 cmp r4, r0 - bne .L2936 + bne .L2919 mov r1, r4 - ldr r0, .L2942+8 + ldr r0, .L2925+8 bl List_remove_node ldrh r3, [r8, #-12] mov r0, r4 sub r3, r3, #1 strh r3, [r8, #-12] @ movhi bl INSERT_DATA_LIST - ldr r2, [r6, #-4060] + ldr r2, [r6, #-3548] ldrh r3, [r2, r7] add r3, r3, #1 strh r3, [r2, r7] @ movhi - b .L2934 -.L2936: + b .L2917 +.L2919: mul r4, lr, r4 add r3, r3, #1 ldrh r4, [r1, r4] cmp r4, r9 - bne .L2935 -.L2934: + bne .L2918 +.L2917: mov r0, r5 add r1, sp, #4 mov r2, #1 @@ -17917,12 +17650,12 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2943: +.L2926: .align 2 -.L2942: +.L2925: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2-4048 + .word .LANCHOR2-3536 .fnend .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 @@ -17932,511 +17665,505 @@ FtlRecoverySuperblock: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3104 + 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} .pad #68 sub sp, sp, #68 - ldr r3, [r3] - mov r4, r0 - str r3, [sp, #60] - ldrh r3, [r0] - cmp r3, r2 - beq .L2946 ldrh r3, [r0, #2] str r3, [sp, #8] ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r1, [sp, #8] - str r3, [sp, #28] - ldr r3, .L3104+4 + ldr r0, [sp, #8] + str r3, [sp, #16] + ldr r3, .L3086 ldrh r3, [r3] - cmp r3, r1 + cmp r3, r0 mov r3, #0 - streqh r3, [r0, #4] @ movhi - ldrneh r0, [r0, #16] - beq .L3096 -.L2948: + streqh r3, [r1, #4] @ movhi + streqb r3, [r1, #6] + ldrneh r0, [r1, #16] + beq .L3068 +.L2931: cmp r0, r2 add r3, r3, #1 - uxtheq r1, r3 - addeq r1, r4, r1, asl #1 - ldreqh r0, [r1, #16] - beq .L2948 -.L3099: - ldrb r1, [r4, #8] @ zero_extendqisi2 + 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 cmp r1, #1 - bne .L2950 + bne .L2933 bl FtlGetLastWrittenPage cmn r0, #1 - mov r5, r0 - beq .L2951 - ldr r3, .L3104+8 + 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 r7, [r3, #144] - beq .L3022 - b .L3089 -.L2950: + ldreqh r6, [r3, #144] + beq .L3005 + b .L3072 +.L2933: mov r1, #0 bl FtlGetLastWrittenPage cmn r0, #1 - mov r5, r0 - beq .L2951 -.L3089: - mov r7, r5 -.L3022: - ldr r3, .L3104+8 - movw r2, #1804 + mov r4, r0 + beq .L2934 +.L3072: + mov r6, r4 +.L3005: + ldr r3, .L3086+4 + movw r2, #2316 movw r8, #65535 - mov r9, #36 ldrh r2, [r3, r2] str r2, [sp, #4] - ldr r2, .L3104+12 - ldr r1, [r2, #-2076] - ldr ip, [r2, #-3208] - movw r2, #1884 - ldrh lr, [r3, r2] - add r3, r4, #14 + ldr r2, .L3086+8 + ldr ip, [r2, #-540] + ldr lr, [r2, #-2696] + movw r2, #2396 + ldrh r7, [r3, r2] + add r3, r9, #14 mov r2, #0 - str r1, [sp, #12] str r3, [sp, #20] mov r0, r3 - mov r6, r2 + mov r5, r2 mov r10, r2 - b .L2953 -.L2951: + b .L2936 +.L2934: mov r3, #0 - strh r3, [r4, #2] @ movhi -.L3096: - strb r3, [r4, #6] - b .L2946 -.L2955: + strh r3, [r9, #2] @ movhi + strb r3, [r9, #6] + b .L3068 +.L2938: ldrh r3, [r0, #2]! cmp r3, r8 - beq .L2954 - ldr r1, [sp, #12] - orr r3, r7, r3, asl #10 - mla r1, r9, r6, r1 + beq .L2937 + mov r1, #36 + orr r3, r6, r3, asl #10 + mla r1, r1, r5, ip stmib r1, {r3, r10} - mul r3, lr, r6 - add r6, r6, #1 - uxth r6, r6 + mul r3, r7, r5 + add r5, r5, #1 + uxth r5, r5 add fp, r3, #3 cmp r3, #0 movlt r3, fp bic r3, r3, #3 - add r3, ip, r3 + add r3, lr, r3 str r3, [r1, #12] -.L2954: +.L2937: add r2, r2, #1 -.L2953: +.L2936: ldr r1, [sp, #4] uxth r3, r2 cmp r3, r1 - bcc .L2955 - ldrb r3, [r4, #8] @ zero_extendqisi2 + bcc .L2938 + ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #1 movne r3, #0 - bne .L3090 - ldr r3, .L3104+8 - ldrb r1, [r3, #140] @ zero_extendqisi2 - adds r3, r1, #0 + bne .L3073 + ldr r3, .L3086+4 + ldrb lr, [r3, #140] @ zero_extendqisi2 + adds r3, lr, #0 movne r3, #1 -.L3090: - ldr r8, .L3104+12 - mov r1, r6 +.L3073: + ldr r7, .L3086+8 + mov r1, r5 str r3, [sp, #24] mov fp, #0 ldr r2, [sp, #24] - ldr r0, [r8, #-2076] + movw r10, #65535 + ldr r0, [r7, #-540] bl FlashReadPages - ldr r3, [r8, #-3844] - str r8, [sp, #12] - str r3, [sp, #36] - movw r3, #65535 - str r3, [sp, #16] -.L2957: - uxth r9, fp - cmp r9, r6 - bcs .L2964 + ldr r3, [r7, #-3332] + str r7, [sp, #12] + str r3, [sp, #28] +.L2940: + uxth r8, fp + cmp r8, r5 + bcs .L2947 mov r1, #36 - ldr r0, [r8, #-2076] + ldr r0, [r7, #-540] mul r1, r1, fp add ip, r0, r1 ldr r1, [r0, r1] cmp r1, #0 - bne .L2958 + bne .L2941 ldr ip, [ip, #12] - ldr r10, [ip, #4] - cmn r10, #1 - beq .L2959 - mov r0, r10 - ldr r1, [r8, #-3844] - str ip, [sp, #4] + ldr r3, [ip, #4] + cmn r3, #1 + beq .L2942 + mov r0, r3 + ldr r1, [r7, #-3332] + str ip, [sp, #32] + str r3, [sp, #4] bl ftl_cmp_data_ver - ldr ip, [sp, #4] + ldr r3, [sp, #4] cmp r0, #0 - addne r10, r10, #1 - strne r10, [r8, #-3844] -.L2959: + ldr ip, [sp, #32] + addne r3, r3, #1 + strne r3, [r7, #-3332] +.L2942: ldr r1, [ip] cmn r1, #1 - bne .L2960 -.L2964: - cmp r9, r6 - ldr r6, .L3104+12 - bne .L3086 - add r5, r5, #1 - uxth r3, r5 + bne .L2943 +.L2947: + cmp r8, r5 + ldr r5, .L3086+8 + bne .L3069 + add fp, r4, #1 + uxth r3, fp str r3, [sp, #4] - ldr r3, [r6, #-2076] + ldr r3, [r5, #-540] ldr r0, [r3, #4] - b .L3091 -.L2958: + b .L3074 +.L2941: ldr r1, [ip, #4] - ldr r0, .L3104+16 + uxth r10, r6 + ldr r0, .L3086+12 bl printk - uxth r3, r7 - ldrh r1, [r4] - str r3, [sp, #16] - ldr r3, .L3104+20 + ldrh r1, [r9] + ldr r3, .L3086+16 strh r1, [r3] @ movhi -.L2960: +.L2943: add fp, fp, #1 - b .L2957 -.L3086: - uxth r3, r5 + b .L2940 +.L3069: + uxth r3, r4 str r3, [sp, #4] ldr r3, [sp, #12] mov r2, #36 - ldr r3, [r3, #-2076] - mla r9, r2, r9, r3 - ldr r0, [r9, #4] -.L3091: + ldr r3, [r3, #-540] + mla r8, r2, r8, r3 + ldr r0, [r8, #4] +.L3074: ubfx r0, r0, #10, #16 bl P2V_plane - ldrb r3, [r4, #8] @ zero_extendqisi2 + ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #1 str r0, [sp, #12] - bne .L2966 - ldr r2, .L3104+8 + 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] -.L2966: - ldr r2, .L3104+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, [r4, #2] @ movhi + streqh r2, [r9, #2] @ movhi moveq r2, #0 - streqb r2, [r4, #6] - streqh r2, [r4, #4] @ movhi - ldrh r2, [sp, #28] + streqb r2, [r9, #6] + streqh r2, [r9, #4] @ movhi + ldrh r2, [sp, #16] str r2, [sp, #32] ldr ip, [sp, #32] ldr r2, [sp, #4] cmp r2, r1 cmpeq r0, ip - moveq r0, r4 + moveq r0, r9 moveq r1, r2 - beq .L3097 + beq .L3079 clz r3, r3 - ldr r2, [sp, #36] - ldr r1, [sp, #16] + ldr r2, [sp, #28] mov r3, r3, lsr #5 - sub r10, r2, #1 + sub fp, r2, #1 movw r2, #65535 - cmp r1, r2 + cmp r10, r2 orrne r3, r3, #1 cmp r3, #0 - beq .L2970 - ldr r3, [r6, #-1908] - uxth fp, r7 - ldr r8, .L3104+12 - mvn r9, #0 + beq .L2953 + ldr r3, [r5, #-372] + uxth r10, r6 + ldr r7, .L3086+8 + mvn r8, #0 cmn r3, #1 - mov r7, r9 - ldreq r3, .L3104+12 - streq r10, [r3, #-1908] - ldr r3, [r6, #-1908] + mov r6, r8 + ldreq r3, .L3086+8 + streq fp, [r3, #-372] + ldr r3, [r5, #-372] str r3, [sp, #16] ldr r3, [sp, #8] add r3, r3, #7 - cmp fp, r3 - subgt r5, fp, #7 - ldrle r5, [sp, #8] - uxthgt r5, r5 -.L2973: - cmp r5, fp - bhi .L2986 - ldr r3, .L3104+24 + cmp r10, r3 + subgt r4, r10, #7 + ldrle r4, [sp, #8] + uxthgt r4, r4 +.L2956: + cmp r4, r10 + bhi .L2969 + ldr r3, .L3086+20 mov r0, #36 - ldr lr, [r8, #-2076] + ldr lr, [r7, #-540] ldr r1, [sp, #20] ldrh r3, [r3] str r3, [sp, #28] mov r3, #0 - mov r6, r3 -.L2987: + mov r5, r3 +.L2970: ldr ip, [sp, #28] uxth r2, r3 cmp r2, ip - bcs .L3100 + bcs .L3082 ldrh r2, [r1, #2]! movw ip, #65535 add r3, r3, #1 cmp r2, ip - orrne r2, r5, r2, asl #10 - mlane ip, r0, r6, lr - addne r6, r6, #1 - uxthne r6, r6 + orrne r2, r4, r2, asl #10 + mlane ip, r0, r5, lr + addne r5, r5, #1 + uxthne r5, r5 strne r2, [ip, #4] - b .L2987 -.L3100: - mov r1, r6 + b .L2970 +.L3082: + mov r1, r5 ldr r2, [sp, #24] - ldr r0, [r8, #-2076] + ldr r0, [r7, #-540] bl FlashReadPages - ldr r3, .L3104+8 + ldr r3, .L3086+4 mov r2, #36 movw r1, #65535 ldrb ip, [r3, #140] @ zero_extendqisi2 - ldr r3, [r8, #-2076] - mla r6, r2, r6, r3 - ldr r2, .L3104+28 - add r2, r2, r5, asl #1 -.L2976: - cmp r3, r6 - beq .L3101 + ldr r3, [r7, #-540] + mla r5, r2, r5, r3 + ldr r2, .L3086+24 + add r2, r2, r4, asl #1 +.L2959: + cmp r3, r5 + beq .L3083 ldr r0, [r3] cmp r0, #0 - bne .L2977 + bne .L2960 ldr r0, [r3, #12] ldrh lr, [r0] cmp lr, r1 - beq .L2978 + beq .L2961 ldr r0, [r0, #4] cmn r0, #1 - beq .L2978 - cmn r9, #1 - ldr r7, [r8, #-1908] - str r0, [r8, #-1908] - bne .L2978 + beq .L2961 + cmn r8, #1 + ldr r6, [r7, #-372] + str r0, [r7, #-372] + bne .L2961 ldrh r0, [r2] cmp r0, r1 - bne .L2979 + bne .L2962 cmp ip, #0 - beq .L2978 -.L2979: - cmp r7, r10 - mvneq r9, #0 - movne r9, r7 - b .L2978 -.L2977: - ldr r3, .L3104+20 - ldrh r2, [r4] - strh r2, [r3] @ movhi - ldrb r3, [r4, #8] @ zero_extendqisi2 + beq .L2961 +.L2962: + cmp r6, fp + mvneq r8, #0 + movne r8, r6 + b .L2961 +.L2960: + ldrh r1, [r9] + movw r3, #1844 + ldr r2, .L3086+28 + strh r1, [r2, r3] @ movhi + ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #0 - bne .L2970 - ldr r3, .L3104+12 - mov r5, r5, asl #1 - sub r2, r3, #3136 - ldrh r1, [r2, r5] + bne .L2953 + ldr r3, .L3086+8 + mov r4, r4, asl #1 + sub r2, r3, #2624 + ldrh r1, [r2, r4] movw r2, #65535 cmp r1, r2 - bne .L2981 - cmn r9, #1 - strne r9, [r3, #-1908] - bne .L2970 + bne .L2964 + cmn r8, #1 + strne r8, [r3, #-372] + bne .L2953 ldr r2, [sp, #16] - cmp r2, r10 - bne .L3092 - ldr r2, [r3, #-1908] - b .L3098 -.L2981: - cmp r7, r10 - beq .L2984 - cmn r7, #1 - strne r7, [r3, #-1908] - b .L2970 -.L2984: - ldr r2, [r3, #-1908] - cmp r2, r10 - beq .L2970 -.L3098: + cmp r2, fp + bne .L3075 + ldr r2, [r3, #-372] + b .L3080 +.L2964: + cmp r6, fp + beq .L2967 + cmn r6, #1 + strne r6, [r3, #-372] + b .L2953 +.L2967: + ldr r2, [r3, #-372] + cmp r2, fp + beq .L2953 +.L3080: sub r2, r2, #1 - b .L3092 -.L2978: + b .L3075 +.L2961: add r3, r3, #36 - b .L2976 -.L3101: - add r5, r5, #1 - uxth r5, r5 - b .L2973 -.L2986: - ldr r3, .L3104+12 + b .L2959 +.L3083: + add r4, r4, #1 + uxth r4, r4 + b .L2956 +.L2969: + ldr r3, .L3086+8 mvn r2, #0 -.L3092: - str r2, [r3, #-1908] -.L2970: - ldr r2, .L3104+32 - movw r3, #310 - ldr fp, [sp, #8] +.L3075: + str r2, [r3, #-372] +.L2953: + ldr r2, .L3086+28 + movw r3, #1846 + ldr r10, [sp, #8] mov r1, #1 - ldr r5, .L3104+12 + ldr r4, .L3086+8 strh r1, [r2, r3] @ movhi -.L2988: - ldr r3, .L3104+24 +.L2971: + ldr r3, .L3086+20 movw r1, #65535 - ldr r9, [r5, #-2076] + ldr r8, [r4, #-540] mov r0, #36 - ldr r7, [sp, #20] - mov r6, #0 - ldrh r8, [r3] - ldr r3, .L3104+8 - str r6, [sp, #16] - ldrb r3, [r3, #140] @ zero_extendqisi2 - str r3, [sp, #28] -.L2989: - uxth r3, r6 - cmp r3, r8 - bcs .L3102 - ldrh r3, [r7, #2]! + ldr r6, [sp, #20] + mov r5, #0 + ldrh r7, [r3] + ldr r3, .L3086+4 + str r5, [sp, #16] + ldrb lr, [r3, #140] @ zero_extendqisi2 +.L2972: + uxth r3, r5 + cmp r3, r7 + bcs .L3084 + ldrh r3, [r6, #2]! cmp r3, r1 - beq .L2990 + beq .L2973 ldr r2, [sp, #16] - orr r3, fp, r3, asl #10 - mla r2, r0, r2, r9 + orr r3, r10, r3, asl #10 + mla r2, r0, r2, r8 str r3, [r2, #4] - ldrb ip, [r4, #8] @ zero_extendqisi2 + ldrb ip, [r9, #8] @ zero_extendqisi2 cmp ip, #1 - bne .L2991 - ldr ip, [sp, #28] - cmp ip, #0 + bne .L2974 + cmp lr, #0 orrne r3, r3, #-2147483648 strne r3, [r2, #4] -.L2991: +.L2974: ldr r3, [sp, #16] - add lr, r3, #1 - uxth r3, lr + add r3, r3, #1 + uxth r3, r3 str r3, [sp, #16] -.L2990: - add r6, r6, #1 - b .L2989 -.L3102: - ldr r0, [r5, #-2076] +.L2973: + add r5, r5, #1 + b .L2972 +.L3084: + ldr r0, [r4, #-540] ldr r1, [sp, #16] ldr r2, [sp, #24] bl FlashReadPages mov r3, #0 -.L3095: +.L3078: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L3103 + bcs .L3085 ldr r3, [sp, #28] - mov r6, #36 - ldr r9, [r5, #-2076] - mul r6, r6, r3 - add r8, r9, r6 - ldr r7, [r8, #4] - ubfx r0, r7, #10, #16 - str r7, [sp, #56] + mov r5, #36 + ldr r8, [r4, #-540] + mul r5, r5, r3 + add r7, r8, r5 + ldr r6, [r7, #4] + ubfx r0, r6, #10, #16 + str r6, [sp, #60] bl P2V_plane ldr r3, [sp, #8] - cmp fp, r3 - bcc .L2994 + cmp r10, r3 + bcc .L2977 ldr r3, [sp, #32] ldr r2, [sp, #8] cmp r0, r3 movcs r3, #0 movcc r3, #1 - cmp fp, r2 + cmp r10, r2 movne r3, #0 cmp r3, #0 - bne .L2994 + bne .L2977 ldr r3, [sp, #12] ldr r2, [sp, #4] cmp r0, r3 - cmpeq fp, r2 - beq .L2995 - ldr r3, [r9, r6] + cmpeq r10, r2 + beq .L2978 + ldr r3, [r8, r5] cmn r3, #1 - beq .L2996 - ldr r8, [r8, #12] + beq .L2979 + ldr r7, [r7, #12] movw r3, #61589 - ldrh r2, [r8] + ldrh r2, [r7] cmp r2, r3 - ldrneh r0, [r4] - bne .L3093 - ldr r10, [r8, #4] - cmn r10, #1 - beq .L2998 - ldr r1, [r5, #-3844] - mov r0, r10 + ldrneh r0, [r9] + bne .L3076 + ldr fp, [r7, #4] + cmn fp, #1 + beq .L2981 + ldr r1, [r4, #-3332] + mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 - addne r3, r10, #1 - strne r3, [r5, #-3844] -.L2998: - ldr r7, [r8, #8] - add r1, sp, #52 - ldr r3, [r8, #12] + addne r3, fp, #1 + strne r3, [r4, #-3332] +.L2981: + ldr r6, [r7, #8] + add r1, sp, #56 + ldr r3, [r7, #12] mov r2, #0 - mov r0, r7 - str r3, [sp, #48] + mov r0, r6 + str r3, [sp, #52] bl log2phys - ldr r1, [r5, #-1908] + ldr r1, [r4, #-372] cmn r1, #1 - beq .L2999 - mov r0, r10 + beq .L2982 + mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 - beq .L2999 - ldr r3, [sp, #48] + beq .L2982 + ldr r3, [sp, #52] cmn r3, #1 - beq .L3000 - ldr r0, [r5, #-2076] + beq .L2983 + ldr r0, [r4, #-540] mov r2, #0 mov r1, #1 - add r0, r0, r6 + add r0, r0, r5 str r3, [r0, #4] - ldr r9, [r0, #12] + ldr r8, [r0, #12] bl FlashReadPages - ldr r2, [r5, #-2076] - ldr r3, [r9, #4] - add ip, r2, r6 + ldr r2, [r4, #-540] + ldr r3, [r8, #4] + add ip, r2, r5 str r3, [sp, #36] - ldr r3, [r2, r6] + ldr r3, [r2, r5] cmn r3, #1 - bne .L3001 - b .L3002 -.L3000: - ldr r3, [sp, #56] - ldr r2, [sp, #52] + bne .L2984 + b .L2985 +.L2983: + ldr r3, [sp, #60] + ldr r2, [sp, #56] cmp r2, r3 - bne .L2994 - mov r0, r7 - add r1, sp, #48 + bne .L2977 + mov r0, r6 + add r1, sp, #52 mov r2, #1 bl log2phys - b .L2994 -.L3001: - ldr r8, [r9, #8] - cmp r8, r7 - bne .L3002 - ldr r0, [r5, #-1908] + b .L2977 +.L2984: + ldr r7, [r8, #8] + cmp r7, r6 + bne .L2985 + ldr r0, [r4, #-372] ldr r1, [sp, #36] str r2, [sp, #44] str ip, [sp, #40] @@ -18444,233 +18171,228 @@ FtlRecoverySuperblock: cmp r0, #0 ldr ip, [sp, #40] ldr r2, [sp, #44] - beq .L3002 - ldr r3, [sp, #52] - ldr r1, [sp, #56] + beq .L2985 + ldr r3, [sp, #56] + ldr r1, [sp, #60] cmp r3, r1 - beq .L3007 - ldr r1, [sp, #48] + beq .L2990 + ldr r1, [sp, #52] cmp r3, r1 - beq .L3002 + beq .L2985 cmn r3, #1 - streq r3, [r2, r6] - beq .L3006 + streq r3, [r2, r5] + beq .L2989 str r3, [ip, #4] mov r0, ip mov r1, #1 mov r2, #0 - ldr r9, [ip, #12] + ldr r8, [ip, #12] bl FlashReadPages -.L3006: - ldr r3, [r5, #-2076] - ldr r3, [r3, r6] +.L2989: + ldr r3, [r4, #-540] + ldr r3, [r3, r5] cmn r3, #1 - beq .L3007 - ldr r6, [r9, #4] - ldr r0, [r5, #-1908] - mov r1, r6 + beq .L2990 + ldr r5, [r8, #4] + ldr r0, [r4, #-372] + mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L3007 + beq .L2990 ldr r0, [sp, #36] - mov r1, r6 + mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L3002 -.L3007: - mov r0, r8 - ldr r1, [sp, #48] - bl FtlReUsePrevPpa -.L3002: - mvn r3, #0 - str r3, [sp, #48] - b .L3009 -.L2999: - ldr r3, [sp, #56] - ldr r2, [sp, #52] - cmp r2, r3 - beq .L3009 - ldr r3, [sp, #48] - cmn r3, #1 - beq .L3011 - ldr r2, .L3104+8 - ubfx r3, r3, #10, #21 - ldr r2, [r2, #1820] - cmp r3, r2 - bcs .L2994 -.L3011: + beq .L2985 +.L2990: mov r0, r7 + ldr r1, [sp, #52] + bl FtlReUsePrevPpa +.L2985: + mvn r3, #0 + str r3, [sp, #52] + b .L2992 +.L2982: + ldr r3, [sp, #60] + ldr r2, [sp, #56] + cmp r2, r3 + beq .L2992 + ldr r3, [sp, #52] + cmn r3, #1 + beq .L2994 + ldr r2, .L3086+4 + ubfx r3, r3, #10, #21 + ldr r2, [r2, #2332] + cmp r3, r2 + bcs .L2977 +.L2994: + mov r0, r6 + add r1, sp, #60 + mov r2, #1 + bl log2phys + ldr r5, [sp, #56] + cmn r5, #1 + beq .L2992 + ldr r3, [sp, #52] + cmp r5, r3 + beq .L2992 + ubfx r0, r5, #10, #16 + bl P2V_block_in_plane + ldr r3, .L3086+32 + ldrh r2, [r3] + cmp r2, r0 + beq .L2996 + ldrh r2, [r3, #48] + cmp r2, r0 + beq .L2996 + ldrh r3, [r3, #96] + cmp r3, r0 + bne .L2992 +.L2996: + ldr r0, [r4, #-540] + mov r1, #1 + mov r2, #0 + str r5, [r0, #4] + ldr r7, [r0, #12] + bl FlashReadPages + ldr r3, [r4, #-540] + ldr r1, [r7, #4] + ldr r3, [r3] + cmn r3, #1 + beq .L2992 + mov r0, fp + bl ftl_cmp_data_ver + cmp r0, #0 + bne .L2992 + mov r0, r6 add r1, sp, #56 mov r2, #1 bl log2phys - ldr r6, [sp, #52] - cmn r6, #1 - beq .L3009 - ldr r3, [sp, #48] - cmp r6, r3 - beq .L3009 - ubfx r0, r6, #10, #16 - bl P2V_block_in_plane - ldr r3, .L3104+36 - ldrh r2, [r3] - cmp r2, r0 - beq .L3013 - ldrh r2, [r3, #48] - cmp r2, r0 - beq .L3013 - ldrh r3, [r3, #96] - cmp r3, r0 - bne .L3009 -.L3013: - ldr r0, [r5, #-2076] - mov r1, #1 - mov r2, #0 - str r6, [r0, #4] - ldr r8, [r0, #12] - bl FlashReadPages - ldr r3, [r5, #-2076] - ldr r1, [r8, #4] - ldr r3, [r3] - cmn r3, #1 - beq .L3009 - mov r0, r10 - bl ftl_cmp_data_ver - cmp r0, #0 - bne .L3009 - mov r0, r7 - add r1, sp, #52 - mov r2, #1 - bl log2phys -.L3009: - ldr r0, [sp, #48] +.L2992: + ldr r0, [sp, #52] cmn r0, #1 - beq .L2994 + beq .L2977 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r5, #-4060] + ldr r2, [r4, #-3548] mov r3, r0, asl #1 mov r1, r0 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3014 -.L3093: + beq .L2997 +.L3076: bl decrement_vpc_count - b .L2994 -.L3014: - ldr r0, .L3104+40 + b .L2977 +.L2997: + ldr r0, .L3086+36 bl printk - b .L2994 -.L2996: - ldrh r2, [r4] - mov r1, r7 - ldr r3, .L3104+20 - ldr r0, .L3104+44 - strh r2, [r3] @ movhi - mov r2, r10 + b .L2977 +.L2979: + ldrh r3, [r9] + mov r1, r6 + ldr r2, .L3086+16 + ldr r0, .L3086+40 + strh r3, [r2] @ movhi + mov r2, fp bl printk - ldr r3, .L3104+32 - ldr r3, [r3, #312] + ldr r3, .L3086+28 + ldr r3, [r3, #1848] cmp r3, #31 - bhi .L3015 - ldr r2, .L3104+32 - ldr r1, [sp, #56] + bhi .L2998 + ldr r2, .L3086+28 + ldr r1, [sp, #60] add r2, r2, r3, asl #2 add r3, r3, #1 - str r1, [r2, #316] - ldr r2, .L3104+32 - str r3, [r2, #312] -.L3015: - ldrh r0, [r4] + str r1, [r2, #1852] + ldr r2, .L3086+28 + str r3, [r2, #1848] +.L2998: + ldrh r0, [r9] bl decrement_vpc_count - ldr r3, [r5, #-1908] + ldr r3, [r4, #-372] cmn r3, #1 - beq .L3094 - cmp r3, r10 - bls .L2994 -.L3094: - str r10, [r5, #-1908] -.L2994: + beq .L3077 + cmp r3, fp + bls .L2977 +.L3077: + str fp, [r4, #-372] +.L2977: ldr r3, [sp, #28] add r3, r3, #1 - b .L3095 -.L3103: - ldrb r3, [r4, #8] @ zero_extendqisi2 - add fp, fp, #1 + b .L3078 +.L3085: + ldrb r3, [r9, #8] @ zero_extendqisi2 + add r10, r10, #1 cmp r3, #1 - uxth fp, fp - bne .L3018 - ldr r3, .L3104+8 + uxth r10, r10 + bne .L3001 + ldr r3, .L3086+4 ldrb r3, [r3, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L3018 - ldr r3, .L3104+48 + beq .L3001 + ldr r3, .L3086+44 ldr r2, [sp, #4] ldrh r3, [r3] - cmp r2, fp - cmpeq r3, fp - beq .L2995 -.L3018: - ldr r2, .L3104+8 - add r3, r2, #1872 + cmp r2, r10 + cmpeq r3, r10 + beq .L2978 +.L3001: + ldr r2, .L3086+4 + add r3, r2, #2384 ldrh r3, [r3] - cmp fp, r3 - bne .L2988 - movw r1, #1804 + cmp r10, r3 + bne .L2971 + movw r1, #2316 movw r0, #65535 ldrh r1, [r2, r1] mov r3, #0 - strh fp, [r4, #2] @ movhi - strh r3, [r4, #4] @ movhi -.L3019: + strh r10, [r9, #2] @ movhi + strh r3, [r9, #4] @ movhi +.L3002: uxth r2, r3 cmp r2, r1 - bcs .L2946 + bcs .L3068 ldr lr, [sp, #20] add r3, r3, #1 ldrh ip, [lr, #2]! cmp ip, r0 str lr, [sp, #20] - beq .L3019 - strb r2, [r4, #6] - b .L2946 -.L2995: + beq .L3002 + strb r2, [r9, #6] + b .L3068 +.L2978: ldrb r3, [sp, #12] @ zero_extendqisi2 - mov r0, r4 + mov r0, r9 ldr r1, [sp, #4] - strb r3, [r4, #6] + strb r3, [r9, #6] ldrh r3, [sp, #4] - strh r3, [r4, #2] @ movhi -.L3097: + strh r3, [r9, #2] @ movhi +.L3079: ldr r2, [sp, #12] bl ftl_sb_update_avl_pages -.L2946: - ldr r3, .L3104 +.L3068: mov r0, #0 - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L3023 - bl __stack_chk_fail -.L3023: add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3105: +.L3071: + mov r0, #0 + bx lr +.L3087: .align 2 -.L3104: - .word __stack_chk_guard - .word .LANCHOR0+1872 +.L3086: + .word .LANCHOR0+2384 .word .LANCHOR0 .word .LANCHOR2 .word .LC145 - .word .LANCHOR4+308 - .word .LANCHOR0+1804 - .word .LANCHOR2-3136 + .word .LANCHOR4+1844 + .word .LANCHOR0+2316 + .word .LANCHOR2-2624 .word .LANCHOR4 - .word .LANCHOR2-4040 + .word .LANCHOR2-3528 .word .LC146 .word .LC147 - .word .LANCHOR0+1874 + .word .LANCHOR0+2386 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 @@ -18684,107 +18406,99 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 mov r4, #0 - ldr r7, .L3123 - ldr r5, .L3123+4 - ldr r1, .L3123+8 - ldr r3, [r7] - ldr r0, .L3123+12 - ldr r6, .L3123+16 - str r3, [sp, #4] + ldr r5, .L3105 + ldr r1, .L3105+4 + ldr r0, .L3105+8 bl printk - movw r3, #1814 - mov r1, #0 + movw r3, #2326 ldrh r2, [r5, r3] - ldr r0, [r6, #-2016] + mov r1, #0 + ldr r6, .L3105+12 mov r2, r2, asl #1 + ldr r0, [r6, #-480] bl ftl_memset -.L3107: - ldr r3, [r5, #1932] +.L3089: + ldr r3, [r5, #2444] cmp r4, r3 - bcs .L3121 + bcs .L3103 mov r0, r4 - mov r1, sp + add r1, sp, #4 mov r2, #0 bl log2phys - ldr r0, [sp] + ldr r0, [sp, #4] cmn r0, #1 - beq .L3108 + beq .L3090 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r6, #-2016] + ldr r2, [r6, #-480] mov r0, r0, asl #1 ldrh r3, [r2, r0] add r3, r3, #1 strh r3, [r2, r0] @ movhi -.L3108: +.L3090: add r4, r4, #1 - b .L3107 -.L3121: - ldr r10, .L3123+20 - mov r8, #0 - ldr r9, .L3123+16 -.L3110: - ldrh r3, [r10] - uxth r4, r8 + b .L3089 +.L3103: + ldr r8, .L3105+16 + mov r7, #0 + ldr r10, .L3105+12 + ldr r9, .L3105+20 +.L3092: + ldrh r3, [r8] + uxth r4, r7 cmp r3, r4 - bls .L3122 - ldr r3, [r6, #-4060] + bls .L3104 + ldr r3, [r6, #-3548] mov r5, r4, asl #1 movw r1, #65535 ldrh r2, [r3, r5] - ldr r3, [r6, #-2016] + ldr r3, [r6, #-480] ldrh r3, [r3, r5] - cmp r2, r3 - cmpne r2, r1 - beq .L3112 - ldr r0, .L3123+24 + cmp r2, r1 + cmpne r2, r3 + beq .L3093 + ldrh r1, [r9] + cmp r1, r4 + beq .L3093 + ldr r1, .L3105+24 + ldrh r0, [r1] + cmp r0, r4 + beq .L3093 + ldrh r1, [r1, #-48] + cmp r1, r4 + beq .L3093 + ldr r0, .L3105+28 mov r1, r4 bl printk - ldr r3, .L3123+28 - ldrh r2, [r3] - cmp r2, r4 - beq .L3112 - ldrh r2, [r3, #96] - cmp r2, r4 - beq .L3112 - ldrh r3, [r3, #48] - cmp r3, r4 - beq .L3112 - ldr r3, [r9, #-4060] + ldr r3, [r10, #-3548] ldrh r2, [r3, r5] cmp r2, #0 - ldr r2, [r9, #-2016] + ldr r2, [r10, #-480] ldrh r2, [r2, r5] strh r2, [r3, r5] @ movhi - beq .L3112 + beq .L3093 mov r0, r4 bl update_vpc_list -.L3112: - add r8, r8, #1 - b .L3110 -.L3122: +.L3093: + add r7, r7, #1 + b .L3092 +.L3104: bl l2p_flush bl FtlVpcTblFlush - ldr r2, [sp, #4] - ldr r3, [r7] - cmp r2, r3 - beq .L3116 - bl __stack_chk_fail -.L3116: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3124: +.L3106: .align 2 -.L3123: - .word __stack_chk_guard +.L3105: .word .LANCHOR0 .word .LANCHOR3+84 .word .LC108 .word .LANCHOR2 - .word .LANCHOR0+1812 + .word .LANCHOR0+2324 + .word .LANCHOR2-3528 + .word .LANCHOR2-3432 .word .LC148 - .word .LANCHOR2-4040 .fnend .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 @@ -18792,249 +18506,260 @@ FtlVpcCheckAndModify: .type FtlGcScanTempBlk, %function FtlGcScanTempBlk: .fnstart - @ args = 0, pretend = 0, frame = 72 + @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3173 + ldr r2, .L3160 + movw r3, #3352 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 - ldr r3, [r3] - mov r4, r0 - ldr r2, .L3173+4 - str r1, [sp, #12] - str r3, [sp, #68] - movw r3, #3288 + .pad #68 + sub sp, sp, #68 ldrh r5, [r2, r3] movw r3, #65535 + mov r4, r0 + str r1, [sp, #12] cmp r5, r3 - beq .L3157 + beq .L3141 cmp r5, #0 - bne .L3126 - b .L3127 -.L3157: + bne .L3108 + b .L3109 +.L3141: mov r5, #0 -.L3126: - ldr r3, .L3173+8 +.L3108: + ldr r3, .L3160+4 ldr r2, [sp, #12] ldrh r3, [r3] cmp r2, r3 - bne .L3128 -.L3127: + bne .L3110 +.L3109: bl FtlGcPageVarInit -.L3128: - ldr r6, .L3173+12 +.L3110: + ldr r6, .L3160+8 mvn r3, #0 str r3, [sp, #8] mov r3, #0 str r3, [sp] -.L3129: - ldrh r2, [r4] - mov r3, #0 - strb r3, [r4, #8] +.L3111: + ldrh r1, [r4] movw r3, #65535 - cmp r2, r3 - beq .L3130 -.L3131: -.L3153: - ldr r3, .L3173+16 mov r2, #0 - ldr lr, [r6, #-3208] - add r0, r4, #14 - mov r7, r2 + strb r2, [r4, #8] + cmp r1, r3 + beq .L3112 +.L3113: +.L3138: + ldr r3, .L3160+12 + mov r7, #0 + ldr ip, [r6, #-2696] + add r1, r4, #14 + mov r8, r7 movw r9, #65535 ldrh r3, [r3] mov r10, #36 str r3, [sp, #4] - ldr r3, [r6, #-2076] + ldr r3, [r6, #-540] str r3, [sp, #16] - ldr r3, [r6, #-3212] + ldr r3, [r6, #-2700] str r3, [sp, #20] - ldr r3, .L3173+20 - ldrh ip, [r3] - ldrh r8, [r3, #2] -.L3132: - ldr r1, [sp, #4] - uxth r3, r2 - cmp r3, r1 - bcs .L3171 - ldrh r3, [r0, #2]! + ldr r3, .L3160+16 + ldrh r0, [r3] + ldrh lr, [r3, #2] +.L3114: + ldr r2, [sp, #4] + uxth r3, r7 + cmp r3, r2 + bcs .L3158 + ldrh r3, [r1, #2]! cmp r3, r9 - beq .L3133 - ldr r1, [sp, #16] + beq .L3115 + ldr r2, [sp, #16] orr r3, r5, r3, asl #10 - mla r1, r10, r7, r1 - str r3, [r1, #4] - mul r3, ip, r7 + mla r2, r10, r8, r2 + str r3, [r2, #4] + mul r3, r0, r8 add fp, r3, #3 cmp r3, #0 movlt r3, fp ldr fp, [sp, #20] bic r3, r3, #3 add r3, fp, r3 - str r3, [r1, #8] - mul r3, r8, r7 - add r7, r7, #1 - uxth r7, r7 + str r3, [r2, #8] + mul r3, lr, r8 + add r8, r8, #1 + uxth r8, r8 add fp, r3, #3 cmp r3, #0 movlt r3, fp bic r3, r3, #3 - add r3, lr, r3 - str r3, [r1, #12] -.L3133: - add r2, r2, #1 - b .L3132 -.L3171: - ldr r0, [r6, #-2076] - mov r1, r7 + add r3, ip, r3 + str r3, [r2, #12] +.L3115: + add r7, r7, #1 + b .L3114 +.L3158: + ldr r0, [r6, #-540] + mov r1, r8 mov r2, #0 - ldr fp, .L3173+24 + mov fp, #0 bl FlashReadPages - mov r10, #0 -.L3135: - uxth r3, r10 - cmp r3, r7 - bcs .L3172 +.L3117: + uxth r3, fp + cmp r3, r8 + bcs .L3159 + ldr r3, .L3160+8 mov r9, #36 - ldr r2, [r6, #-2076] - mul r9, r9, r10 - ldr ip, .L3173+12 - add r3, r2, r9 - ldr r8, [r2, r9] - ldr r1, [r3, #4] - cmp r8, #0 - ldr r3, [r3, #12] - str r1, [sp, #4] - bne .L3136 - ldrh r1, [r3] - movw r2, #65535 - cmp r1, r2 - bne .L3137 -.L3139: - ldr r2, .L3173+12 - ldrh r3, [r4] - ldr r2, [r2, #-4060] - b .L3170 -.L3137: - ldr r0, [r3, #8] - ldr r2, [fp, #1932] - cmp r0, r2 - bhi .L3139 - ldrb r2, [fp] @ zero_extendqisi2 - cmp r2, #0 - beq .L3141 - add r1, sp, #28 - mov r2, r8 - str r3, [sp, #16] - bl log2phys - ldr r3, [sp, #16] - ldr r1, [sp, #28] - ldr r2, [r3, #12] - cmn r1, #1 - rsb r0, r2, r1 - clz r0, r0 - mov r0, r0, lsr #5 - moveq r0, #0 - cmp r0, #0 - beq .L3141 - str r2, [sp, #36] + mul r9, r9, fp + ldr r7, [r3, #-540] + add r10, r7, r9 + ldr r3, [r10, #4] + ubfx r0, r3, #10, #16 + str r3, [sp, #4] + bl P2V_plane + ldr r7, [r7, r9] + ldr r10, [r10, #12] + cmp r7, #0 + ldr r3, .L3160+8 + ldr ip, .L3160+20 + mov r2, r0 + bne .L3118 + ldrh r0, [r10] + movw r1, #65535 + cmp r0, r1 + bne .L3119 +.L3122: + ldrb r1, [ip, #140] @ zero_extendqisi2 + cmp r1, #0 + beq .L3153 mov r1, #1 - ldr r2, [r6, #-2044] - add r0, sp, #32 - str r2, [sp, #40] - ldr r2, [r6, #-2036] - str r2, [sp, #44] - mov r2, r8 + str r1, [r3, #-376] + b .L3112 +.L3119: + ldr r1, .L3160+20 + ldr r0, [r10, #8] + ldr r1, [r1, #2444] + cmp r0, r1 + bls .L3154 + b .L3122 +.L3153: + ldrh r3, [r4] + ldr r2, .L3160+8 + mov r3, r3, asl #1 + ldr r2, [r2, #-3548] + b .L3157 +.L3154: + ldr r3, .L3160+20 + ldrb r3, [r3] @ zero_extendqisi2 + cmp r3, #0 + beq .L3126 + add r1, sp, #24 + mov r2, r7 + bl log2phys + ldr r3, [r10, #12] + ldr r2, [sp, #24] + rsb r1, r3, r2 + cmn r2, #1 + clz r1, r1 + mov r1, r1, lsr #5 + moveq r1, #0 + cmp r1, #0 + beq .L3126 + str r3, [sp, #32] + mov r2, r7 + ldr r3, [r6, #-508] + add r0, sp, #28 + mov r1, #1 + str r3, [sp, #36] + ldr r3, [r6, #-500] + str r3, [sp, #40] bl FlashReadPages - ldr r2, .L3173+28 - ldr r1, [r6, #-2076] - ldrh r2, [r2] - add r9, r1, r9 - mov r2, r2, asl #7 - ldr r1, [sp, #40] - ldr r3, [sp, #16] - b .L3143 -.L3144: - add r8, r8, #1 -.L3143: - cmp r8, r2 - beq .L3141 - ldr r0, [r9, #8] - ldr ip, [r0, r8, asl #2] - ldr r0, [r1, r8, asl #2] - cmp ip, r0 - beq .L3144 + ldr r3, .L3160+24 + ldr r2, [r6, #-540] + ldrh r3, [r3] + add r9, r2, r9 + mov r3, r3, asl #7 ldr r2, [sp, #36] - ldr r0, .L3173+32 + b .L3128 +.L3129: + add r7, r7, #1 +.L3128: + cmp r7, r3 + beq .L3126 + ldr r1, [r9, #8] + ldr r0, [r1, r7, asl #2] + ldr r1, [r2, r7, asl #2] + cmp r0, r1 + beq .L3129 ldrh r1, [r4] + ldr r2, [sp, #32] + ldr r0, .L3160+28 bl printk ldrh r3, [r4] - ldr r2, [r6, #-4060] -.L3170: - mov r3, r3, asl #1 + ldr r2, [r6, #-3548] mov r1, #0 + mov r3, r3, asl #1 +.L3157: strh r1, [r2, r3] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST - ldr r2, .L3173+36 + ldr r2, .L3160+32 mvn r3, #0 strh r3, [r4] @ movhi strh r3, [r2] @ movhi - b .L3169 -.L3141: - ldr r0, [r3, #12] - add r10, r10, #1 + b .L3156 +.L3126: + ldr r0, [r10, #12] + add fp, fp, #1 ldr r1, [sp, #4] - ldr r2, [r3, #8] + ldr r2, [r10, #8] bl FtlGcUpdatePage - b .L3135 -.L3136: + b .L3117 +.L3118: ldr r2, [sp, #4] - ldr r0, .L3173+40 + ldr r0, .L3160+36 ldrh r1, [r4] - str ip, [sp, #16] + str ip, [sp, #20] + str r3, [sp, #16] bl printk - ldr r3, .L3173+24 ldrh r5, [r4] - ldr r2, [r3, #1796] + ldr ip, [sp, #20] + ldr r3, [sp, #16] + ldr r2, [ip, #2308] cmp r2, #0 - ldr ip, [sp, #16] - bne .L3147 - ldrb r2, [r3, #140] @ zero_extendqisi2 + bne .L3132 + ldrb r2, [ip, #140] @ zero_extendqisi2 cmp r2, #0 - beq .L3148 -.L3147: - ldr r2, [r3, #4060] - mov r3, r5, asl #1 - ldrh r3, [r2, r3] - cmp r3, #159 - bls .L3149 -.L3148: - ldr r3, [ip, #-2076] - ldr r3, [r3, r9] - cmn r3, #1 - bne .L3150 -.L3149: - ldr r3, [ip, #-2076] + beq .L3133 +.L3132: + ldr r1, [r3, #-3612] + mov r2, r5, asl #1 + ldrh r2, [r1, r2] + cmp r2, #159 + bls .L3134 +.L3133: + ldr r2, [r3, #-540] + ldr r2, [r2, r9] + cmn r2, #1 + bne .L3135 +.L3134: + ldr r3, [r3, #-540] add r9, r3, r9 ldr r3, [r9, #4] str r3, [sp, #8] -.L3150: - ldr r3, .L3173+12 +.L3135: + ldr r3, .L3160+8 mov r5, r5, asl #1 mov r2, #0 - ldr r3, [r3, #-4060] + ldr r3, [r3, #-3548] strh r2, [r3, r5] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST mvn r3, #0 strh r3, [r4] @ movhi -.L3169: +.L3156: bl FtlGcPageVarInit mov r5, #0 - b .L3129 -.L3172: + b .L3111 +.L3159: ldr r3, [sp] add r5, r5, #1 ldr r2, [sp, #12] @@ -19042,64 +18767,56 @@ FtlGcScanTempBlk: uxth r5, r5 cmp r3, r2 str r3, [sp] - ldr r2, .L3173+8 - bcs .L3152 -.L3154: + ldr r2, .L3160+4 + bcs .L3137 +.L3139: ldrh r3, [r2] cmp r3, r5 - bhi .L3153 - b .L3130 -.L3152: - ldr r1, .L3173+44 + bhi .L3138 + mov r2, #0 + b .L3112 +.L3137: + ldr r1, .L3160+40 movw r0, #65535 ldrh r3, [r1] cmp r3, r0 - beq .L3154 + beq .L3139 ldr r0, [sp] add r3, r3, r0 strh r3, [r1] @ movhi ldrh r3, [r2] cmp r3, r5 - bls .L3154 - b .L3155 -.L3130: - ldr r2, .L3173+4 - movw r3, #3288 - mvn r1, #0 + bls .L3139 + b .L3140 +.L3112: + ldr r1, .L3160 + movw r3, #3352 + mvn r0, #0 strh r5, [r4, #2] @ movhi - mov r0, r4 - strh r1, [r2, r3] @ movhi - mov r2, #0 - mov r1, r5 strb r2, [r4, #6] + strh r0, [r1, r3] @ movhi + mov r0, r4 + mov r1, r5 bl ftl_sb_update_avl_pages -.L3155: - ldr r3, .L3173 - ldr r2, [sp, #68] +.L3140: ldr r0, [sp, #8] - ldr r3, [r3] - cmp r2, r3 - beq .L3156 - bl __stack_chk_fail -.L3156: - add sp, sp, #76 + add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3174: +.L3161: .align 2 -.L3173: - .word __stack_chk_guard +.L3160: .word .LANCHOR1 - .word .LANCHOR0+1872 + .word .LANCHOR0+2384 .word .LANCHOR2 - .word .LANCHOR0+1804 - .word .LANCHOR0+1882 + .word .LANCHOR0+2316 + .word .LANCHOR0+2394 .word .LANCHOR0 - .word .LANCHOR0+1878 + .word .LANCHOR0+2390 .word .LC149 - .word .LANCHOR2-3800 + .word .LANCHOR2-3288 .word .LC150 - .word .LANCHOR1+3288 + .word .LANCHOR1+3352 .fnend .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -19107,124 +18824,115 @@ FtlGcScanTempBlk: .type FtlReadRefresh, %function FtlReadRefresh: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ 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} - .pad #52 - sub sp, sp, #52 - ldr r5, .L3193 - ldr r7, .L3193+4 - ldr r4, .L3193+8 - ldr r10, [r5, #-3668] + 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] mov r6, r5 - ldr r3, [r7] - cmp r10, #0 - str r3, [sp, #44] - beq .L3176 - ldr r2, [r5, #-3664] - ldr r3, [r4, #1932] + cmp r9, #0 + beq .L3163 + ldr r2, [r5, #-3152] + ldr r3, [r4, #2444] cmp r2, r3 - bcs .L3177 + bcs .L3164 mov r5, #2048 - mov r8, r6 -.L3182: - ldr r0, [r6, #-3664] - ldr r3, [r4, #1932] + mov r7, r6 +.L3169: + ldr r0, [r6, #-3152] + ldr r3, [r4, #2444] cmp r0, r3 - bcs .L3181 + bcs .L3168 mov r2, #0 - add r1, sp, #4 + mov r1, sp bl log2phys - ldr r3, [r8, #-3664] + ldr r3, [r7, #-3152] add r3, r3, #1 - str r3, [r8, #-3664] - ldr r2, [sp, #4] + str r3, [r7, #-3152] + ldr r2, [sp] cmn r2, #1 - beq .L3180 - add r0, sp, #48 - str r2, [sp, #12] + beq .L3167 + add r0, sp, #40 + str r2, [sp, #8] mov r1, #1 mov r2, #0 - str r2, [r0, #-40]! - str r3, [sp, #24] + str r2, [r0, #-36]! + str r3, [sp, #20] + str r2, [sp, #12] str r2, [sp, #16] - str r2, [sp, #20] bl FlashReadPages - ldr r3, [sp, #8] + ldr r3, [sp, #4] cmp r3, #256 - bne .L3181 - ldr r0, [sp, #4] + bne .L3168 + ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3181: +.L3168: mvn r0, #0 - b .L3184 -.L3180: + b .L3171 +.L3167: subs r5, r5, #1 - bne .L3182 - b .L3181 -.L3177: - ldr r3, [r5, #-3880] + bne .L3169 + b .L3168 +.L3164: + ldr r3, [r5, #-3368] mov r0, #0 - str r0, [r5, #-3668] - str r0, [r5, #-3664] - str r3, [r5, #-3672] - b .L3184 -.L3176: - ldr r1, [r5, #-3828] - ldr r9, [r5, #-3880] - ldr r3, [r4, #1932] + 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] movw r4, #10000 - ldr r8, [r5, #-3672] + ldr r7, [r5, #-3160] cmp r1, r4 - add r2, r9, #1048576 - ldr fp, .L3193+12 + add r2, r8, #1048576 movhi r4, #31 movls r4, #63 - cmp r8, r2 - bhi .L3186 + cmp r7, r2 + bhi .L3173 mov r1, r1, lsr #10 mov r0, #1000 mul r0, r0, r3 add r1, r1, #1 bl __aeabi_uidiv - add r0, r0, r8 - cmp r0, r9 - bcc .L3186 - ldrh r3, [fp, #28] + add r0, r0, r7 + cmp r0, r8 + bcc .L3173 + ldr r3, .L3179+8 + ldrh r3, [r3, #28] ands r0, r4, r3 - movne r0, r10 - bne .L3184 - ldr r2, [r5, #-3648] + movne r0, r9 + bne .L3171 + ldr r2, [r5, #-3136] cmp r2, r3 - beq .L3184 -.L3186: - ldrh r3, [fp, #28] + beq .L3171 +.L3173: + ldr r3, .L3179+8 mov r0, #0 - str r9, [r6, #-3672] - str r0, [r6, #-3664] - str r3, [r6, #-3648] + str r8, [r6, #-3160] + str r0, [r6, #-3152] + ldrh r3, [r3, #28] + str r3, [r6, #-3136] mov r3, #1 - str r3, [r6, #-3668] -.L3184: - ldr r2, [sp, #44] - ldr r3, [r7] - cmp r2, r3 - beq .L3187 - bl __stack_chk_fail -.L3187: - add sp, sp, #52 + str r3, [r6, #-3156] +.L3171: + add sp, sp, #44 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3194: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L3180: .align 2 -.L3193: +.L3179: .word .LANCHOR2 - .word __stack_chk_guard .word .LANCHOR0 - .word .LANCHOR0+4068 + .word .LANCHOR2-3604 .fnend .size FtlReadRefresh, .-FtlReadRefresh .align 2 @@ -19232,238 +18940,227 @@ FtlReadRefresh: .type FtlGcFreeTempBlock, %function FtlGcFreeTempBlock: .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, .L3235 - ldr r2, .L3235+4 - add r6, r9, #1872 - ldr ip, [r9, #4052] - ldr r3, [r2] + .pad #20 + sub sp, sp, #20 + ldr r4, .L3220 + ldr r7, .L3220+4 + ldr ip, [r4, #-3620] + ldrh r1, [r7] cmp ip, #0 - ldrh r1, [r6] - str r2, [sp, #4] - str r3, [sp, #20] - bne .L3233 - ldr r5, .L3235+8 - mov r4, r9 + bne .L3218 + sub r6, r4, #3424 movw lr, #65535 - add r8, r5, #3936 - ldrh r9, [r5, #-8] - cmp r9, lr - bne .L3198 -.L3207: - ldrh r2, [r5, #-8] + ldrh r5, [r6, #-8] + cmp r5, lr + bne .L3184 +.L3193: + ldrh r2, [r6, #-8] movw r3, #65535 - ldr r9, .L3235+12 - mov r7, #0 + ldr r5, .L3220 + mov r8, #0 cmp r2, r3 - str r7, [r8, #-1912] - sub r10, r9, #3936 - beq .L3233 + str r8, [r4, #-376] + sub r9, r5, #3424 + beq .L3218 bl FtlCacheWriteBack - ldrh r2, [r6] - ldrb r0, [r9, #-3937] @ zero_extendqisi2 - sub r6, r9, #3184 - ldrh r3, [r10, #-8] - sub r10, r6, #760 - ldr r1, [r9, #-4060] + 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] smulbb r2, r0, r2 mov r3, r3, asl #1 + ldr fp, .L3220+8 strh r2, [r1, r3] @ movhi - ldr r2, [r9, #-3860] - ldrh r3, [r6] + ldr r2, [r5, #-3348] + ldrh r3, [r7] add r3, r3, r2 - str r3, [r9, #-3860] - str r9, [sp, #8] - b .L3208 -.L3198: + str r3, [r5, #-3348] + str r5, [sp] + b .L3194 +.L3184: cmp r0, #0 - beq .L3201 - ldr r2, .L3235+16 - movw r3, #3288 + beq .L3187 + ldr r2, .L3220+12 + movw r3, #3352 ldrh r0, [r2, r3] cmp r0, lr - beq .L3202 -.L3203: + beq .L3188 +.L3189: mov r1, #2 - b .L3201 -.L3202: + b .L3187 +.L3188: strh ip, [r2, r3] @ movhi - sub r3, r8, #4032 + sub r3, r4, #3520 ldrh r3, [r3, #-12] cmp r3, #17 - bhi .L3203 -.L3201: - ldr r0, .L3235+20 + bhi .L3189 +.L3187: + ldr r0, .L3220+16 bl FtlGcScanTempBlk cmn r0, #1 - str r0, [sp, #16] - beq .L3204 - ldr r2, [r4, #4060] - mov r9, r9, asl #1 - ldrh r3, [r2, r9] + str r0, [sp, #12] + beq .L3190 + ldr r3, .L3220 + mov r5, r5, asl #1 + ldr r2, [r3, #-3612] + ldrh r3, [r2, r5] cmp r3, #4 - bls .L3205 + bls .L3191 sub r3, r3, #5 mov r0, #1 - strh r3, [r2, r9] @ movhi + strh r3, [r2, r5] @ movhi bl FtlEctTblFlush -.L3205: - ldr r3, [r8, #-1912] - ldr r2, .L3235+12 +.L3191: + ldr r3, [r4, #-376] + ldr r2, .L3220 cmp r3, #0 - bne .L3206 - ldr r0, [sp, #16] - ldr r3, [r2, #-3652] + bne .L3192 + ldr r0, [sp, #12] + ldr r3, [r2, #-3140] ubfx r0, r0, #10, #16 add r3, r3, #1 - str r3, [r2, #-3652] + str r3, [r2, #-3140] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3206: +.L3192: mov r3, #0 - str r3, [r8, #-1912] - b .L3219 -.L3204: - ldr r2, .L3235+16 - movw r3, #3288 + str r3, [r4, #-376] + b .L3204 +.L3190: + ldr r2, .L3220+12 + movw r3, #3352 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L3219 - b .L3207 -.L3211: - ldr r3, [fp, #4] + bne .L3204 + b .L3193 +.L3197: + ldr r3, [r5, #4] cmp r0, r3 - bne .L3231 -.L3210: - add r7, r7, #1 -.L3208: - ldrh r3, [r6] - uxth r9, r7 - cmp r3, r9 - bls .L3234 - mov r3, #12 - ldr r2, [r4, #1932] - mul r9, r3, r9 - ldr r3, [sp, #8] - ldr ip, [r3, #-3188] - add fp, ip, r9 - ldr r0, [fp, #8] + bne .L3216 +.L3196: + add r8, r8, #1 +.L3194: + ldrh r2, [r7] + uxth r3, r8 + ldr r9, .L3220+8 + cmp r2, r3 + bls .L3219 + mov r9, #12 + ldr r2, [fp, #2444] + mul r9, r9, r3 + ldr r3, [sp] + ldr ip, [r3, #-2676] + add r5, ip, r9 + ldr r0, [r5, #8] cmp r0, r2 - bcs .L3231 + bcs .L3216 mov r2, #0 - add r1, sp, #16 - str ip, [sp, #12] + add r1, sp, #12 + str ip, [sp, #4] bl log2phys - ldr ip, [sp, #12] - ldr r0, [sp, #16] + ldr ip, [sp, #4] + ldr r0, [sp, #12] ldr r2, [ip, r9] cmp r0, r2 - bne .L3211 + bne .L3197 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - add r1, fp, #4 + add r1, r5, #4 mov r2, #1 mov r9, r0 - ldr r0, [fp, #8] + ldr r0, [r5, #8] bl log2phys mov r0, r9 - b .L3232 -.L3231: + b .L3217 +.L3216: ldrh r0, [r10] -.L3232: +.L3217: bl decrement_vpc_count - b .L3210 -.L3234: + b .L3196 +.L3219: movw r0, #65535 bl decrement_vpc_count - ldrb r3, [r4, #140] @ zero_extendqisi2 + ldrb r3, [r9, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L3213 - ldr r0, .L3235+24 - ldrh r1, [r5, #-8] + beq .L3199 + ldr r0, .L3220+20 + ldrh r1, [r6, #-8] bl printk -.L3213: - ldrh r0, [r5, #-8] - ldr r2, [r8, #-4060] +.L3199: + ldrh r0, [r6, #-8] + ldr r2, [r4, #-3548] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3214 + beq .L3200 bl INSERT_DATA_LIST - b .L3215 -.L3214: + b .L3201 +.L3200: bl INSERT_FREE_LIST -.L3215: - ldr r7, .L3235+12 +.L3201: + ldr r5, .L3220 + mov r4, #0 mvn r8, #0 - strh r8, [r5, #-8] @ movhi - mov r5, #0 - strh r5, [r6] @ movhi - strh r5, [r6, #-8] @ movhi + strh r4, [r7] @ movhi + strh r8, [r6, #-8] @ movhi + strh r4, [r7, #-8] @ movhi bl l2p_flush bl FtlVpcTblFlush - sub r3, r7, #3792 - sub r2, r7, #4032 + sub r3, r5, #3280 + sub r2, r5, #3520 strh r8, [r3, #-8] @ movhi - ldr r3, [r4, #1796] + ldr r3, [r9, #2308] ldrh r2, [r2, #-12] - cmp r3, r5 - sub r3, r7, #3808 + cmp r3, r4 + sub r3, r5, #3296 ldrh r3, [r3, #-12] - beq .L3216 - ldr r1, [r7, #-3824] + beq .L3202 + ldr r1, [r5, #-3312] cmp r1, #39 - bhi .L3216 + bhi .L3202 cmp r2, r3 - subcc r7, r7, #3232 + subcc r5, r5, #2720 movcc r3, r3, asl #1 - strcch r3, [r7, #-4] @ movhi - b .L3233 -.L3216: + strcch r3, [r5, #-4] @ movhi + b .L3218 +.L3202: add r1, r3, r3, asl #1 cmp r2, r1, asr #2 - ble .L3233 - ldrb r0, [r4, #140] @ zero_extendqisi2 - ldr r2, .L3235+28 + ble .L3218 + ldrb r0, [r9, #140] @ zero_extendqisi2 + ldr r2, .L3220+24 cmp r0, #0 moveq r3, #20 streqh r3, [r2, #-4] @ movhi - beq .L3197 + beq .L3183 sub r3, r3, #2 strh r3, [r2, #-4] @ movhi -.L3233: - mov r0, #0 - b .L3197 -.L3219: - mov r0, #1 -.L3197: - ldr r3, [sp, #4] - ldr r2, [sp, #20] - ldr r3, [r3] - cmp r2, r3 - beq .L3218 - bl __stack_chk_fail .L3218: - add sp, sp, #28 + mov r0, #0 + b .L3183 +.L3204: + mov r0, #1 +.L3183: + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3236: +.L3221: .align 2 -.L3235: - .word .LANCHOR0 - .word __stack_chk_guard - .word .LANCHOR2-3936 +.L3220: .word .LANCHOR2 + .word .LANCHOR0+2384 + .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR2-3944 + .word .LANCHOR2-3432 .word .LC151 - .word .LANCHOR2-3232 + .word .LANCHOR2-2720 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 @@ -19473,31 +19170,30 @@ FtlGcPageRecovery: .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 r5, .L3240 - ldr r4, .L3240+4 - mov r0, r5 - ldrh r1, [r4] + 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] bl FtlGcScanTempBlk - ldrh r2, [r5, #2] - ldrh r3, [r4] + ldrh r2, [r6, #2] + ldrh r3, [r5] cmp r2, r3 - ldmccfd sp!, {r3, r4, r5, pc} - ldr r0, .L3240+8 + ldmccfd sp!, {r4, r5, r6, pc} + sub r0, r4, #436 bl FtlMapBlkWriteDumpData mov r0, #0 bl FtlGcFreeTempBlock - ldr r3, .L3240+12 - mov r2, #0 - str r2, [r3, #-1912] - ldmfd sp!, {r3, r4, r5, pc} -.L3241: + mov r3, #0 + str r3, [r4, #-376] + ldmfd sp!, {r4, r5, r6, pc} +.L3226: .align 2 -.L3240: - .word .LANCHOR2-3944 - .word .LANCHOR0+1872 - .word .LANCHOR2-1972 +.L3225: + .word .LANCHOR2-3432 + .word .LANCHOR0+2384 .word .LANCHOR2 .fnend .size FtlGcPageRecovery, .-FtlGcPageRecovery @@ -19511,13 +19207,13 @@ FtlPowerLostRecovery: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, #0 - ldr r4, .L3244 - ldr r3, .L3244+4 - sub r5, r4, #4032 - sub r4, r4, #3984 + ldr r4, .L3229 + ldr r3, .L3229+4 + sub r5, r4, #3520 + sub r4, r4, #3472 sub r5, r5, #8 sub r4, r4, #8 - str r6, [r3, #312] + str r6, [r3, #1848] mov r0, r5 bl FtlRecoverySuperblock mov r0, r5 @@ -19531,9 +19227,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r6 ldmfd sp!, {r4, r5, r6, pc} -.L3245: +.L3230: .align 2 -.L3244: +.L3229: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -19547,32 +19243,33 @@ 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, #310 - ldr r7, .L3264 + movw r3, #1846 + ldr r4, .L3249 mov r2, #0 - ldr r6, .L3264+4 - ldr r4, .L3264+8 - strh r2, [r7, r3] @ movhi - add r3, r7, #308 + ldr r6, .L3249+4 + ldr r5, .L3249+8 + strh r2, [r4, r3] @ movhi + movw r3, #1844 mvn r2, #0 - strh r2, [r3] @ movhi - ldr r3, [r6, #1808] + strh r2, [r4, r3] @ movhi + ldr r3, [r6, #2320] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - sub r3, r4, #3808 + sub r3, r5, #3296 ldrh r2, [r3, #-8] movw r3, #65535 cmp r2, r3 - bne .L3247 -.L3249: + bne .L3232 +.L3234: mvn r8, #0 - b .L3248 -.L3247: + b .L3233 +.L3232: bl FtlLoadSysInfo subs r8, r0, #0 - bne .L3249 + bne .L3234 bl FtlLoadMapInfo + mov r7, r4 bl FtlLoadVonderInfo bl Ftl_load_ext_data bl FtlLoadEctTbl @@ -19581,52 +19278,52 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov r0, #1 bl FtlUpdateVaildLpn - ldr r2, [r4, #-3896] - movw r3, #1910 + ldr r2, [r5, #-3384] + movw r3, #2422 mov r0, #12 ldrh r1, [r6, r3] mov r3, r8 -.L3250: +.L3235: cmp r3, r1 - bge .L3255 + bge .L3240 mla ip, r0, r3, r2 ldr ip, [ip, #4] cmp ip, #0 - bge .L3251 -.L3255: - ldr r5, .L3264+12 + bge .L3236 +.L3240: + ldr r4, .L3249+12 cmp r3, r1 - ldr r9, .L3264+16 - ldrh r2, [r5, #28] + add r9, r4, #84 + ldrh r2, [r4, #28] add r2, r2, #1 - strh r2, [r5, #28] @ movhi - sub r2, r9, #8 - bge .L3262 - b .L3252 -.L3251: + strh r2, [r4, #28] @ movhi + add r2, r4, #76 + bge .L3247 + b .L3237 +.L3236: add r3, r3, #1 - b .L3250 -.L3262: - movw r3, #310 + b .L3235 +.L3247: + movw r3, #1846 ldrh r3, [r7, r3] cmp r3, #0 - beq .L3256 -.L3252: + beq .L3241 +.L3237: ldrh r3, [r9, #-8] - ldr r0, [r4, #-4060] + ldr r0, [r5, #-3548] ldrh ip, [r2, #4] mov r3, r3, asl #1 ldrh r1, [r0, r3] rsb r1, ip, r1 - ldr ip, .L3264+20 + ldr ip, .L3249+16 strh r1, [r0, r3] @ movhi - ldr lr, [r4, #-4060] + ldr lr, [r5, #-3548] ldrh r3, [ip] strh r3, [r2, #2] @ movhi mov r3, #0 strh r3, [r2, #4] @ movhi - ldr r2, .L3264+24 - strb r3, [r4, #-4034] + ldr r2, .L3249+20 + strb r3, [r5, #-3522] sub r1, r2, #8 ldrh r2, [r2, #-8] ldrh r7, [r1, #4] @@ -19636,59 +19333,58 @@ FtlSysBlkInit: strh r0, [lr, r2] @ movhi ldrh r2, [ip] strh r3, [r1, #4] @ movhi - strb r3, [r4, #-3986] - ldrh r3, [r5, #30] + strb r3, [r5, #-3474] + ldrh r3, [r4, #30] strh r2, [r1, #2] @ movhi add r3, r3, #1 - strh r3, [r5, #30] @ movhi + strh r3, [r4, #30] @ movhi bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3256: +.L3241: ldrh r0, [r9, #-8] movw r3, #65535 - ldr r4, .L3264+28 + ldr r5, .L3249+24 cmp r0, r3 - beq .L3257 - ldrh r3, [r4, #4] + beq .L3242 + ldrh r3, [r5, #4] cmp r3, #0 - bne .L3257 - ldrh r3, [r4, #52] - add r9, r4, #56 - add r7, r4, #48 + bne .L3242 + ldrh r3, [r5, #52] + add r9, r5, #56 + add r7, r5, #48 cmp r3, #0 - bne .L3257 + bne .L3242 bl FtlGcRefreshOpenBlock - ldrh r0, [r4, #48] + ldrh r0, [r5, #48] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush - mov r0, r4 + mov r0, r5 bl allocate_new_data_superblock mov r0, r7 bl allocate_new_data_superblock -.L3257: +.L3242: ldrb r3, [r6] @ zero_extendqisi2 cmp r3, #0 - bne .L3258 - ldrh r3, [r5, #28] + bne .L3243 + ldrh r3, [r4, #28] tst r3, #31 - bne .L3248 -.L3258: + bne .L3233 +.L3243: bl FtlVpcCheckAndModify -.L3248: +.L3233: mov r0, r8 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3265: +.L3250: .align 2 -.L3264: +.L3249: .word .LANCHOR4 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+4068 - .word .LANCHOR2-4032 - .word .LANCHOR0+1872 - .word .LANCHOR2-3984 - .word .LANCHOR2-4040 + .word .LANCHOR2-3604 + .word .LANCHOR0+2384 + .word .LANCHOR2-3472 + .word .LANCHOR2-3528 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 @@ -19701,60 +19397,60 @@ 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 r5, .L3301 - ldr r6, [r5, #4052] + ldr r4, .L3286 + ldr r6, [r4, #-3620] cmp r6, #0 - bne .L3268 - movw r7, #1908 - ldr r4, .L3301+4 - ldrh r2, [r5, r7] + bne .L3253 + ldr r5, .L3286+4 + movw r7, #2420 mov r1, r6 - ldr r0, [r4, #-1988] + 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, #-1992] + ldr r0, [r4, #-456] mov r2, r2, asl #2 bl ftl_memset - ldr r3, [r5, #1808] - str r6, [r4, #-3848] - str r6, [r4, #-3844] + ldr r3, [r5, #2320] + str r6, [r4, #-3336] + str r6, [r4, #-3332] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L3269 + beq .L3254 bl FtlMakeBbt -.L3269: - ldr r0, .L3301+8 +.L3254: + ldr r0, .L3286+8 mov r2, #0 - ldr ip, .L3301+12 -.L3270: + ldr ip, .L3286+12 +.L3255: ldrh r1, [r0] uxth r3, r2 add r2, r2, #1 cmp r3, r1, asl #7 - bge .L3298 - ldr lr, [r4, #-2048] + bge .L3283 + ldr lr, [r4, #-512] mvn r1, r3 orr r1, r3, r1, asl #16 str r1, [lr, r3, asl #2] - ldr r1, [r4, #-2044] + ldr r1, [r4, #-508] str ip, [r1, r3, asl #2] - b .L3270 -.L3298: - ldr r2, .L3301 - movw r3, #1812 - ldr r10, .L3301+16 + b .L3255 +.L3283: + ldr r2, .L3286+4 + movw r3, #2324 + ldr r10, .L3286+16 mov r6, #0 ldrh r7, [r2, r3] -.L3272: +.L3257: ldrh r3, [r10] - ldr r8, .L3301 + ldr r8, .L3286+4 cmp r3, r7 - ldr r9, .L3301+16 - bls .L3299 + ldr r9, .L3286+16 + bls .L3284 mov r0, r7 mov r1, #1 bl FtlLowFormatEraseBlock @@ -19762,61 +19458,61 @@ FtlLowFormat: uxth r7, r7 add r0, r6, r0 uxth r6, r0 - b .L3272 -.L3299: - movw r3, #1804 + b .L3257 +.L3284: + movw r3, #2316 ldrh r1, [r8, r3] sub r3, r6, #3 cmp r3, r1, asl #1 - bge .L3274 -.L3278: + bge .L3259 +.L3263: mov r6, #0 - ldr r7, .L3301+20 + ldr r7, .L3286+20 mov r8, r6 - b .L3275 -.L3274: + b .L3260 +.L3259: mov r0, r6 bl __aeabi_uidiv - ldr r3, [r8, #1904] + ldr r3, [r8, #2416] add r0, r0, r3 uxth r0, r0 bl FtlSysBlkNumInit - ldr r3, [r8, #1808] + ldr r3, [r8, #2320] uxth r0, r3 bl FtlFreeSysBlkQueueInit - movw r3, #1812 + movw r3, #2324 ldrh r6, [r8, r3] -.L3276: +.L3261: ldrh r3, [r9] cmp r3, r6 - bls .L3278 + bls .L3263 mov r0, r6 add r6, r6, #1 mov r1, #1 bl FtlLowFormatEraseBlock uxth r6, r6 - b .L3276 -.L3275: + b .L3261 +.L3260: ldrh r3, [r7] uxth r0, r6 - ldr fp, .L3301 + ldr fp, .L3286+4 add r6, r6, #1 cmp r3, r0 - bls .L3300 + bls .L3285 mov r1, #0 bl FtlLowFormatEraseBlock add r0, r8, r0 uxth r8, r0 - b .L3275 -.L3300: - movw r3, #1814 - ldr r2, [fp, #1816] + b .L3260 +.L3285: + movw r3, #2326 + ldr r2, [fp, #2328] ldrh r3, [fp, r3] - ldr r6, .L3301+24 + ldr r6, .L3286+24 mov r0, r2 str r2, [sp, #4] - str r3, [r4, #-2088] - movw r3, #1804 + str r3, [r4, #-552] + movw r3, #2316 ldrh r7, [fp, r3] mov r1, r7 bl __aeabi_uidiv @@ -19825,22 +19521,22 @@ FtlLowFormat: add r3, r9, #36 strh r3, [r6, #-12] @ movhi mov r3, #24 - str r0, [fp, #1932] + str r0, [fp, #2444] mul r3, r3, r7 ldr r2, [sp, #4] cmp r8, r3 - ble .L3280 + ble .L3265 rsb r0, r8, r2 mov r1, r7 bl __aeabi_uidiv - str r0, [fp, #1932] + str r0, [fp, #2444] mov r0, r0, lsr #5 add r0, r0, #24 strh r0, [r6, #-12] @ movhi -.L3280: - ldr r3, [r5, #1796] +.L3265: + ldr r3, [r5, #2308] cmp r3, #1 - bne .L3281 + bne .L3266 mov r0, r8 mov r1, r7 bl __aeabi_uidiv @@ -19848,10 +19544,10 @@ FtlLowFormat: uxtah r0, fp, r0 add fp, fp, r0, asr #2 strh fp, [r6, #-12] @ movhi -.L3281: +.L3266: ldrb r3, [r5, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L3282 + beq .L3267 mov r0, r8 mov r1, r7 bl __aeabi_uidiv @@ -19859,44 +19555,44 @@ FtlLowFormat: uxtah r0, fp, r0 add fp, fp, r0, asr #2 strh fp, [r6, #-12] @ movhi -.L3282: - movw r3, #1866 +.L3267: + movw r3, #2378 ldrh r3, [r5, r3] cmp r3, #0 - beq .L3284 + beq .L3269 ldrh r2, [r6, #-12] add r2, r2, r3, lsr #1 strh r2, [r6, #-12] @ movhi mul r2, r7, r3 cmp r2, r8 addgt r3, r3, #32 - ldrgt r2, .L3301 + ldrgt r2, .L3286+4 addgt r3, r9, r3 - strgt r10, [r2, #1932] - ldrgt r2, .L3301+24 + strgt r10, [r2, #2444] + ldrgt r2, .L3286+24 strgth r3, [r2, #-12] @ movhi -.L3284: +.L3269: ldrh r2, [r6, #-12] mvn r9, #0 - ldr r3, [r5, #1932] + ldr r3, [r5, #2444] rsb r3, r2, r3 mul r7, r7, r3 - ldr r3, .L3301+28 + ldr r3, .L3286+28 ldrh r3, [r3] - str r7, [r4, #248] + str r7, [r4, #1784] mul r7, r3, r7 - movw r3, #1878 + movw r3, #2390 ldrh r3, [r5, r3] - str r7, [r5, #1932] + str r7, [r5, #2444] mul r7, r3, r7 - str r7, [r5, #1912] + str r7, [r5, #2424] bl FtlBbmTblFlush - movw r3, #1814 - ldr r7, .L3301+32 + movw r3, #2326 + ldr r7, .L3286+32 ldrh r2, [r5, r3] mov r1, #0 sub r8, r7, #248 - ldr r0, [r4, #-4060] + ldr r0, [r4, #-3548] mov r2, r2, asl #1 mov fp, r8 bl ftl_memset @@ -19904,123 +19600,123 @@ FtlLowFormat: strh r3, [r7, #-6] @ movhi mov r1, #255 strh r3, [r7, #-248] @ movhi - str r3, [r4, #-3888] - strb r3, [r4, #-3794] - strb r3, [r4, #-3792] + str r3, [r4, #-3376] + strb r3, [r4, #-3282] + strb r3, [r4, #-3280] strh r3, [r8, #2] @ movhi - strb r3, [r4, #-4034] + strb r3, [r4, #-3522] mov r3, #1 - strb r3, [r4, #-4032] - movw r3, #1812 + strb r3, [r4, #-3520] + movw r3, #2324 ldrh r2, [r5, r3] - ldr r0, [r4, #-3884] + ldr r0, [r4, #-3372] strh r9, [r7, #-8] @ movhi - add r7, r7, #3792 + add r7, r7, #3280 mov r2, r2, lsr #3 bl ftl_memset -.L3286: - ldr r10, .L3301+36 - ldr r5, .L3301+4 +.L3271: + ldr r10, .L3286+36 + ldr r5, .L3286 mov r0, r10 bl make_superblock - ldrb r3, [r4, #-4033] @ zero_extendqisi2 + ldrb r3, [r4, #-3521] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r8] - bne .L3287 - ldr r2, [r7, #-4060] + bne .L3272 + ldr r2, [r7, #-3548] mov r3, r3, asl #1 strh r9, [r2, r3] @ movhi ldrh r3, [fp] add r3, r3, #1 strh r3, [fp] @ movhi - b .L3286 -.L3287: - ldr r2, [r5, #-3848] + b .L3271 +.L3272: + ldr r2, [r5, #-3336] mov r3, r3, asl #1 ldrh r1, [r10, #4] mov r9, r5 - str r2, [r5, #-4028] + str r2, [r5, #-3516] add r2, r2, #1 - str r2, [r5, #-3848] - ldr r2, [r5, #-4060] + str r2, [r5, #-3336] + ldr r2, [r5, #-3548] strh r1, [r2, r3] @ movhi - sub r2, r5, #3984 + sub r2, r5, #3472 sub r7, r2, #8 mov r3, #0 - strb r3, [r5, #-3986] + strb r3, [r5, #-3474] strh r3, [r7, #2] @ movhi ldrh r3, [r10] mvn r10, #0 add r3, r3, #1 strh r3, [r2, #-8] @ movhi mov r3, #1 - strb r3, [r5, #-3984] -.L3288: - ldr r8, .L3301+40 - ldr r5, .L3301+4 + strb r3, [r5, #-3472] +.L3273: + ldr r8, .L3286+40 + ldr r5, .L3286 mov r0, r8 bl make_superblock - ldrb r3, [r4, #-3985] @ zero_extendqisi2 + ldrb r3, [r4, #-3473] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r7] - bne .L3289 - ldr r2, [r9, #-4060] + bne .L3274 + ldr r2, [r9, #-3548] mov r3, r3, asl #1 strh r10, [r2, r3] @ movhi ldrh r3, [r7] add r3, r3, #1 strh r3, [r7] @ movhi - b .L3288 -.L3289: - ldr r2, [r5, #-3848] + b .L3273 +.L3274: + ldr r2, [r5, #-3336] mov r3, r3, asl #1 ldrh r1, [r8, #4] mvn r4, #0 - str r2, [r5, #-3980] + str r2, [r5, #-3468] add r2, r2, #1 - str r2, [r5, #-3848] - ldr r2, [r5, #-4060] + str r2, [r5, #-3336] + ldr r2, [r5, #-3548] strh r1, [r2, r3] @ movhi - sub r3, r5, #3936 + sub r3, r5, #3424 strh r4, [r3, #-8] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L3301+44 + ldr r3, .L3286+44 mov r2, #0 strh r2, [r3, #2] @ movhi - ldr r2, [r5, #248] + ldr r2, [r5, #1784] strh r4, [r3, #4] @ movhi strh r2, [r3, #6] @ movhi - ldr r3, [r5, #-3848] - str r3, [r5, #-3808] + ldr r3, [r5, #-3336] + str r3, [r5, #-3296] add r3, r3, #1 - str r3, [r5, #-3848] + str r3, [r5, #-3336] strh r0, [r6, #-8] @ movhi bl FtlVpcTblFlush bl FtlSysBlkInit cmp r0, #0 - ldreq r3, .L3301+48 + ldreq r3, .L3286+48 moveq r2, #1 streq r2, [r3, #504] -.L3268: +.L3253: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3302: +.L3287: .align 2 -.L3301: - .word .LANCHOR0 +.L3286: .word .LANCHOR2 - .word .LANCHOR0+1878 + .word .LANCHOR0 + .word .LANCHOR0+2390 .word 168778952 - .word .LANCHOR0+1814 - .word .LANCHOR0+1812 - .word .LANCHOR2-3808 - .word .LANCHOR0+1872 - .word .LANCHOR2-3792 - .word .LANCHOR2-4040 - .word .LANCHOR2-3992 - .word .LANCHOR2-3816 + .word .LANCHOR0+2326 + .word .LANCHOR0+2324 + .word .LANCHOR2-3296 + .word .LANCHOR0+2384 + .word .LANCHOR2-3280 + .word .LANCHOR2-3528 + .word .LANCHOR2-3480 + .word .LANCHOR2-3304 .word .LANCHOR1 .fnend .size FtlLowFormat, .-FtlLowFormat @@ -20029,117 +19725,106 @@ FtlLowFormat: .type FtlReInitForSDUpdata, %function FtlReInitForSDUpdata: .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, lr} - .save {r4, r5, r6, lr} - .pad #24 - sub sp, sp, #24 - ldr r5, .L3333 - ldr r0, .L3333+4 - ldr r3, [r5] - str r3, [sp, #20] - ldrb r3, [r0, #140] @ zero_extendqisi2 + stmfd sp!, {r4, r5, lr} + .save {r4, r5, lr} + .pad #20 + sub sp, sp, #20 + ldr r4, .L3317 + ldrb r3, [r4, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L3304 -.L3306: + beq .L3289 +.L3291: mov r0, #0 - b .L3305 -.L3304: - ldr r6, .L3333+8 - mov r4, r0 - ldr r0, [r6, #144] + b .L3290 +.L3289: + ldr r5, .L3317+4 + ldr r0, [r5, #1680] bl FlashInit cmp r0, #0 - bne .L3306 + bne .L3291 bl FlashLoadFactorBbt cmp r0, #0 - beq .L3307 + beq .L3292 bl FlashMakeFactorBbt -.L3307: - ldr r0, [r6, #176] +.L3292: + ldr r0, [r5, #1712] bl FlashReadIdbDataRaw cmp r0, #0 - beq .L3308 - mov r2, #16 - add r0, sp, #4 + beq .L3293 mov r1, #0 + mov r2, #16 + mov r0, sp bl FlashReadFacBbtData mov r3, #0 - mov r0, r3 + mov r2, r3 mov ip, #1 - ldr r2, [sp, #4] -.L3309: - ands lr, r2, ip, asl r0 - add r1, r3, #1 - add r0, r0, #1 - movne r3, r1 - cmp r0, #16 - bne .L3309 + ldr r1, [sp] +.L3294: + ands lr, r1, ip, asl r2 + add r0, r3, #1 + add r2, r2, #1 + movne r3, r0 + cmp r2, #16 + bne .L3294 cmp r3, #6 - bls .L3329 - mov r0, #0 + bls .L3313 + mov r2, #0 mov ip, #1 -.L3312: - ands lr, r2, ip, asl r0 - add r1, r3, #1 - add r0, r0, #1 - movne r3, r1 - cmp r0, #24 - bne .L3312 +.L3297: + ands lr, r1, ip, asl r2 + add r0, r3, #1 + add r2, r2, #1 + movne r3, r0 + cmp r2, #24 + bne .L3297 cmp r3, #17 movhi r3, #36 strhib r3, [r4, #1] - bhi .L3311 -.L3329: - strb r0, [r4, #1] -.L3311: + bhi .L3296 +.L3313: + strb r2, [r4, #1] +.L3296: ldrb r3, [r4, #1] @ zero_extendqisi2 strh r3, [r4, #138] @ movhi -.L3308: - ldr r1, .L3333+12 - ldr r0, .L3333+16 +.L3293: + ldr r1, .L3317+8 + ldr r0, .L3317+12 bl printk - ldr r0, .L3333+20 + ldr r0, .L3317+16 bl FtlConstantsInit bl FtlVariablesInit - ldr r0, [r4, #1808] + ldr r0, [r4, #2320] mov r4, #1 uxth r0, r0 bl FtlFreeSysBlkQueueInit -.L3314: +.L3299: bl FtlLoadBbt cmp r0, #0 - beq .L3315 -.L3331: + beq .L3300 +.L3315: bl FtlLowFormat cmp r4, #3 addls r4, r4, #1 - bls .L3314 -.L3332: + bls .L3299 +.L3316: mvn r0, #0 - b .L3305 -.L3315: + b .L3290 +.L3300: bl FtlSysBlkInit cmp r0, #0 - bne .L3331 - ldr r3, .L3333+24 + bne .L3315 + ldr r3, .L3317+20 mov r2, #1 str r2, [r3, #504] -.L3305: - ldr r2, [sp, #20] - ldr r3, [r5] - cmp r2, r3 - beq .L3319 - bl __stack_chk_fail -.L3319: - add sp, sp, #24 +.L3290: + add sp, sp, #20 @ sp needed - ldmfd sp!, {r4, r5, r6, pc} -.L3334: + ldmfd sp!, {r4, r5, pc} +.L3318: .align 2 -.L3333: - .word __stack_chk_guard +.L3317: .word .LANCHOR0 .word .LANCHOR2 .word .LC77 @@ -20155,96 +19840,94 @@ Ftl_gc_temp_data_write_back: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3354 - ldr r2, [r3, #4052] - cmp r2, #0 - bne .L3352 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldrb r3, [r3, #140] @ zero_extendqisi2 - ldr r5, .L3354+4 + ldr r5, .L3336 + ldr r3, [r5, #-3620] cmp r3, #0 - beq .L3338 - ldr r3, [r5, #-3220] - tst r3, #1 - beq .L3338 - ldr r3, .L3354+8 - ldrh r3, [r3, #4] - cmp r3, #0 - beq .L3338 -.L3339: + beq .L3320 +.L3323: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3338: +.L3320: + ldr r3, .L3336+4 + ldrb r3, [r3, #140] @ zero_extendqisi2 + cmp r3, #0 + beq .L3322 + ldr r3, [r5, #-2708] + tst r3, #1 + beq .L3322 + ldr r3, .L3336+8 + ldrh r3, [r3, #4] + cmp r3, #0 + bne .L3323 +.L3322: mov r2, #0 - ldr r0, [r5, #-2072] - ldr r1, [r5, #-3220] + ldr r0, [r5, #-536] + ldr r1, [r5, #-2708] mov r3, r2 bl FlashProgPages - ldr r7, .L3354+4 + ldr r7, .L3336 mov r6, #0 mov r8, #36 -.L3340: - ldr r1, [r5, #-3220] +.L3324: + ldr r1, [r5, #-2708] uxth r3, r6 - ldr r4, .L3354+4 + ldr r4, .L3336 cmp r3, r1 - bcs .L3353 + bcs .L3335 mul r3, r8, r3 - ldr r0, [r7, #-2072] + ldr r0, [r7, #-536] add r6, r6, #1 add r1, r0, r3 ldr r0, [r0, r3] ldr r2, [r1, #12] cmn r0, #1 - bne .L3341 - sub r1, r4, #3936 - ldr ip, [r4, #-4060] + bne .L3325 + sub r1, r4, #3424 + ldr ip, [r4, #-3548] mov lr, #0 ldrh r2, [r1, #-8] mov r2, r2, asl #1 strh lr, [ip, r2] @ movhi - ldr r2, [r4, #-3652] + ldr r2, [r4, #-3140] strh r0, [r1, #-8] @ movhi add r2, r2, #1 - str r2, [r4, #-3652] - ldr r2, [r4, #-2072] + str r2, [r4, #-3140] + ldr r2, [r4, #-536] add r3, r2, r3 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3351 -.L3341: + b .L3334 +.L3325: ldr r0, [r2, #12] ldr r1, [r1, #4] ldr r2, [r2, #8] bl FtlGcUpdatePage - b .L3340 -.L3353: - ldr r0, [r4, #-2072] + b .L3324 +.L3335: + ldr r0, [r4, #-536] bl FtlGcBufFree mov r3, #0 - str r3, [r4, #-3220] - ldr r3, .L3354+8 + str r3, [r4, #-2708] + ldr r3, .L3336+8 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3339 + bne .L3323 mov r0, #1 bl FtlGcFreeTempBlock -.L3351: +.L3334: mov r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3352: - mov r0, #0 - bx lr -.L3355: +.L3337: .align 2 -.L3354: - .word .LANCHOR0 +.L3336: .word .LANCHOR2 - .word .LANCHOR2-3944 + .word .LANCHOR0 + .word .LANCHOR2-3432 .fnend .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 @@ -20256,24 +19939,24 @@ 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, .L3360 + ldr r3, .L3342 sub r2, r3, #8 ldrh r1, [r3, #-8] movw r3, #65535 cmp r1, r3 - beq .L3357 + beq .L3339 ldrh r3, [r2, #4] cmp r3, #0 - bne .L3358 -.L3357: - ldr r4, .L3360+4 + bne .L3340 +.L3339: + ldr r4, .L3342+4 bl FtlCacheWriteBack mov r0, #0 mov r5, #0 bl FtlGcFreeTempBlock - sub r4, r4, #3184 + sub r4, r4, #2672 strb r5, [r4, #-752] - ldr r0, .L3360+8 + ldr r0, .L3342+8 bl allocate_data_superblock strh r5, [r4, #-8] @ movhi strh r5, [r4] @ movhi @@ -20281,16 +19964,16 @@ Ftl_get_new_temp_ppa: mov r0, r5 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3358: - ldr r0, .L3360+8 +.L3340: + ldr r0, .L3342+8 ldmfd sp!, {r3, r4, r5, lr} b get_new_active_ppa -.L3361: +.L3343: .align 2 -.L3360: - .word .LANCHOR2-3936 +.L3342: + .word .LANCHOR2-3424 .word .LANCHOR2 - .word .LANCHOR2-3944 + .word .LANCHOR2-3432 .fnend .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa .align 2 @@ -20298,982 +19981,989 @@ Ftl_get_new_temp_ppa: .type ftl_do_gc, %function ftl_do_gc: .fnstart - @ args = 0, pretend = 0, frame = 40 + @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L3508 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 r5, .L3526 - ldr r3, .L3526+4 - str r0, [sp, #12] - ldr r0, [r5, #4052] - ldr r3, [r3] - cmp r0, #0 - str r1, [sp, #8] - str r3, [sp, #44] + .pad #44 + sub sp, sp, #44 + ldr lr, [ip, #-3620] + cmp lr, #0 movne r0, #0 - bne .L3363 - ldr r2, .L3526+8 - ldr r3, [r2, #504] + bne .L3497 + ldr r9, .L3508+4 + ldr r3, [r9, #504] cmn r3, #1 - beq .L3363 - ldr r3, .L3526+12 - ldr r4, [r3, #-2100] - mov r7, r3 - cmp r4, #0 - bne .L3363 - sub r1, r3, #4048 - ldrh r1, [r1, #-4] - cmp r1, #47 - movls r0, r4 - bls .L3363 - movw r1, #3288 - ldrh r1, [r2, r1] + beq .L3440 + ldr r2, [ip, #-564] + cmp r2, #0 + bne .L3440 + sub r3, ip, #3536 + ldrh r3, [r3, #-4] + cmp r3, #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 movw r2, #65535 - cmp r1, r2 - bne .L3364 -.L3367: - ldr r6, .L3526+16 - movw r2, #65535 - ldrh r4, [r6, #-12] + ldrh r4, [r5, #-12] cmp r4, r2 - bne .L3365 - b .L3366 -.L3364: - sub r3, r3, #3936 - ldrh r3, [r3, #-8] - cmp r3, r2 - beq .L3367 + bne .L3347 + b .L3348 +.L3346: + sub ip, ip, #3424 + ldrh r2, [ip, #-8] + cmp r2, r3 + beq .L3349 mov r0, #1 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L3367 + beq .L3349 mov r0, #1 - b .L3363 -.L3365: - ldrh r3, [r6, #-14] + b .L3497 +.L3347: + ldrh r3, [r5, #-14] cmp r3, r2 - bne .L3366 - ldrh r1, [r6, #-10] + bne .L3348 + ldrh r1, [r5, #-10] cmp r1, r3 - beq .L3366 - ldrh r2, [r6, #-8] + beq .L3348 + ldrh r2, [r5, #-8] cmp r2, r3 - strneh r4, [r6, #-14] @ movhi - strneh r1, [r6, #-12] @ movhi + strneh r4, [r5, #-14] @ movhi + strneh r1, [r5, #-12] @ movhi mvnne r3, #0 - strneh r2, [r6, #-10] @ movhi - strneh r3, [r6, #-8] @ movhi -.L3366: + strneh r2, [r5, #-10] @ movhi + strneh r3, [r5, #-8] @ movhi +.L3348: ldr r2, [sp, #12] - ldr r3, [r7, #-3232] - ldr r8, .L3526+20 + ldr r3, [r6, #-2720] + ldr r7, .L3508+12 cmp r2, #1 add r3, r3, #1 add r3, r3, r2, asl #7 - sub r10, r8, #240 - str r3, [r7, #-3232] - bne .L3378 - ldr r2, [r5, #1796] + sub r8, r7, #240 + str r3, [r6, #-2720] + bne .L3360 + ldr r4, .L3508+16 + ldr r2, [r4, #2308] cmp r2, #0 - bne .L3369 - ldr r2, .L3526 - ldrb r2, [r2, #140] @ zero_extendqisi2 + bne .L3351 + ldrb r2, [r4, #140] @ zero_extendqisi2 cmp r2, #0 - beq .L3378 -.L3369: - ldr r2, [r7, #-3824] - ldr r9, .L3526+12 + beq .L3360 +.L3351: + ldr r2, [r6, #-3312] + ldr r10, .L3508 cmp r2, #39 - bhi .L3378 - ldr r4, .L3526+24 - ldrh r2, [r4] + bhi .L3360 + ldr r9, .L3508+20 + movw r2, #1980 + ldrh r2, [r9, r2] add r3, r3, r2 - str r3, [r9, #-3232] + str r3, [r10, #-2720] bl FtlGcReFreshBadBlk - ldrh r3, [r8, #-8] + ldrh r3, [r7, #-8] movw r2, #65535 cmp r3, r2 - bne .L3378 - ldrh r2, [r6, #-14] + bne .L3360 + ldrh r2, [r5, #-14] cmp r2, r3 - bne .L3378 - ldr r3, [r9, #-3232] + bne .L3360 + ldr r3, [r10, #-2720] cmp r3, #1024 - bhi .L3370 - ldrh r3, [r10, #-12] + bhi .L3352 + ldrh r3, [r8, #-12] cmp r3, #63 - bhi .L3378 -.L3370: - ldr r3, .L3526+12 - mov r0, #0 - ldrh ip, [r10, #-12] - sub r2, r3, #3232 - ldr r1, .L3526+24 - strh r0, [r4] @ movhi - ldrh r2, [r2, #-2] - add r2, r2, #64 - cmp ip, r2 - bgt .L3378 - str r0, [r3, #-3232] - ldr r3, [r3, #-3824] - cmp r3, r0 + 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 moveq r3, #6 - beq .L3518 + beq .L3499 cmp r3, #5 - bhi .L3372 + bhi .L3354 mov r3, #18 -.L3518: - strh r3, [r1] @ movhi -.L3372: +.L3499: + strh r3, [r0, r2] @ movhi +.L3354: mov r0, #32 bl List_get_gc_head_node - movw r3, #65535 - uxth lr, r0 - cmp lr, r3 - beq .L3377 - ldr fp, .L3526+12 - sub r9, fp, #3216 + movw ip, #65535 + uxth r2, r0 + cmp r2, ip + beq .L3359 + ldr r10, .L3508 + sub r9, r10, #2704 ldrh r0, [r9, #-12] cmp r0, #0 - beq .L3374 - movw r1, #1874 - ldr r2, [fp, #-4060] - ldrh r4, [r5, r1] - movw r1, #1804 - ldrh r1, [r5, r1] - mov ip, lr, asl #1 - ldrh lr, [r2, ip] - mul r1, r1, r4 - add r1, r1, #1 - cmp lr, r1 - bgt .L3377 + 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 add r1, r0, #1 - str ip, [sp, #28] - str r3, [sp, #24] - mov r3, #0 + str r2, [sp, #28] + str ip, [sp, #24] + mov fp, #0 uxth r1, r1 - str r2, [sp, #20] - str r3, [fp, #-3224] + str r3, [sp, #20] strh r1, [r9, #-12] @ movhi str r1, [sp, #16] + str fp, [r10, #-2712] bl List_get_gc_head_node - ldr r3, [sp, #24] + ldr ip, [sp, #24] uxth r4, r0 ldr r1, [sp, #16] - cmp r4, r3 - ldr r2, [sp, #20] - ldr ip, [sp, #28] - beq .L3377 - mov r10, r4, asl #1 - ldr r0, .L3526+28 - ldrh r3, [r2, r10] - ldrh r2, [r2, ip] - str r2, [sp] + 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 bl printk ldrh r3, [r9, #-12] cmp r3, #40 - bls .L3375 - ldr r3, [fp, #-4060] - ldrh r3, [r3, r10] + ldr ip, [sp, #16] + bls .L3357 + ldr r3, [r10, #-3548] + ldrh r3, [r3, ip] cmp r3, #32 - movhi r3, #0 - strhih r3, [r9, #-12] @ movhi -.L3375: - ldr r3, .L3526+24 - mov r2, #6 - strh r2, [r3] @ movhi - b .L3379 -.L3374: + strhih fp, [r9, #-12] @ movhi +.L3357: + ldr r2, .L3508+20 + movw r3, #1980 + mov r1, #6 + strh r1, [r2, r3] @ movhi + b .L3361 +.L3356: mov r3, #1 strh r3, [r9, #-12] @ movhi -.L3377: +.L3359: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov r4, r0 - bne .L3379 - ldr r3, .L3526+24 - mov r2, #0 - strh r2, [r3] @ movhi -.L3378: - ldrh r3, [r8, #-8] + 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, .L3526+12 + ldr r9, .L3508 cmp r3, r4 - bne .L3379 - sub r2, r9, #3936 + bne .L3361 + sub r2, r9, #3424 ldrh r4, [r2, #-8] cmp r4, r3 movne r4, r3 - beq .L3523 -.L3379: + beq .L3504 +.L3361: movw r1, #65535 rsb r3, r1, r4 clz r3, r3 ldr r2, [sp, #12] - ldr r9, .L3526+32 + ldr r9, .L3508+28 mov r3, r3, lsr #5 cmp r2, #0 movne ip, #0 andeq ip, r3, #1 cmp ip, #0 - beq .L3392 + beq .L3374 ldrh r0, [r9, #-12] cmp r0, #24 - movhi r10, #1 - bhi .L3393 - ldr r3, .L3526+36 + movhi fp, #1 + bhi .L3375 + ldr r3, .L3508+32 cmp r0, #16 - ldrh r10, [r3] - movhi r10, r10, lsr #5 - bhi .L3393 + ldrh fp, [r3] + movhi fp, fp, lsr #5 + bhi .L3375 cmp r0, #12 - movhi r10, r10, lsr #4 - bhi .L3393 + movhi fp, fp, lsr #4 + bhi .L3375 cmp r0, #8 - movhi r10, r10, lsr #2 -.L3393: - ldr r1, .L3526+12 - sub r2, r1, #3232 + movhi fp, fp, lsr #2 +.L3375: + ldr r1, .L3508 + sub r2, r1, #2720 ldrh r3, [r2, #-4] cmp r3, r0 - bcs .L3397 - sub r3, r1, #3936 + bcs .L3379 + sub r3, r1, #3424 movw r0, #65535 ldrh r3, [r3, #-8] cmp r3, r0 - bne .L3398 - sub r0, r1, #3168 - ldrh r0, [r0, #-14] + bne .L3380 + ldrh r0, [r5, #-14] cmp r0, r3 - bne .L3398 - ldr r3, .L3526+24 - ldrh r0, [r3] + bne .L3380 + ldr r0, .L3508+20 + movw r3, #1980 + ldrh r0, [r0, r3] cmp r0, #0 - bne .L3399 - ldr r3, [r5, #1932] - ldr r1, [r1, #-3888] + bne .L3381 + ldr r3, .L3508+16 + ldr r1, [r1, #-3376] + ldr r3, [r3, #2444] add r3, r3, r3, asl #1 cmp r1, r3, lsr #2 movcs r3, #18 - bcs .L3400 -.L3399: - ldr r3, .L3526+40 + bcs .L3382 +.L3381: + ldr r3, .L3508+36 ldrh r3, [r3, #-12] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3400: +.L3382: strh r3, [r2, #-4] @ movhi mov r3, #0 - str r3, [r7, #-3224] - b .L3363 -.L3398: - ldr r3, .L3526+40 + str r3, [r6, #-2712] + b .L3497 +.L3380: + ldr r3, .L3508+36 ldrh r3, [r3, #-12] add r3, r3, r3, asl #1 mov r3, r3, asr #2 strh r3, [r2, #-4] @ movhi -.L3397: - ldr r3, [sp, #8] +.L3379: + ldr r3, .L3508+16 movw r4, #65535 - ldr r2, [r5, #1796] + ldr r2, [r3, #2308] + ldr r3, [sp, #8] cmp r3, #2 movhi r3, #0 movls r3, #1 cmp r2, #0 moveq r3, #0 cmp r3, #0 - addne r10, r10, #1 - uxthne r10, r10 - b .L3402 -.L3392: + addne fp, fp, #1 + uxthne fp, fp + b .L3384 +.L3374: ldrh r0, [r9, #88] - add r2, r9, #4032 + add r2, r9, #3520 cmp r0, r1 - bne .L3403 - ldrh r1, [r6, #-14] + bne .L3385 + ldrh r1, [r5, #-14] cmp r1, r0 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L3403 - sub r3, r2, #3792 + beq .L3385 + sub r3, r2, #3280 ldrh r3, [r3, #-8] cmp r3, r0 - beq .L3404 -.L3408: + beq .L3386 +.L3390: movw r4, #65535 - b .L3403 -.L3404: - sub r4, r2, #3232 - ldrh r1, [r9, #-12] - str ip, [r2, #-3224] - ldrh r3, [r4, #-4] - ldr r10, .L3526+24 + b .L3385 +.L3386: + sub r10, r2, #2720 + ldrh r1, [r8, #-12] + str ip, [r2, #-2712] + ldrh r3, [r10, #-4] + ldr fp, .L3508+20 cmp r1, r3 - bls .L3405 - ldrh r3, [r10] + bls .L3387 + movw r3, #1980 + ldrh r3, [fp, r3] cmp r3, #0 - bne .L3406 - ldr r3, [r5, #1932] - ldr r2, [r2, #-3888] + bne .L3388 + ldr r3, .L3508+16 + ldr r2, [r2, #-3376] + ldr r3, [r3, #2444] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movcs r3, #18 - bcs .L3407 -.L3406: - ldr r3, .L3526+40 + bcs .L3389 +.L3388: + ldr r3, .L3508+36 ldrh r3, [r3, #-12] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3407: - strh r3, [r4, #-4] @ movhi +.L3389: + strh r3, [r10, #-4] @ movhi bl FtlReadRefresh mov r0, #0 bl List_get_gc_head_node - ldr r3, [r7, #-4060] + ldr r3, [r6, #-3548] uxth r0, r0 mov r0, r0, asl #1 ldrh r3, [r3, r0] cmp r3, #4 - ldrhih r0, [r10] - bhi .L3363 -.L3405: - ldrh r0, [r10] + movwhi r3, #1980 + ldrhih r0, [fp, r3] + bhi .L3497 +.L3387: + movw r4, #1980 + ldrh r0, [fp, r4] cmp r0, #0 - bne .L3408 - ldr r3, .L3526+40 - ldrh r10, [r3, #-12] - add r3, r10, r10, asl #1 + bne .L3390 + ldr r3, .L3508+36 + ldrh fp, [r3, #-12] + add r3, fp, fp, asl #1 mov r3, r3, asr #2 - strh r3, [r4, #-4] @ movhi + strh r3, [r10, #-4] @ movhi bl List_get_gc_head_node - ldr r3, [r7, #-4060] + ldr r3, [r6, #-3548] + movw r2, #2386 uxth r0, r0 mov r0, r0, asl #1 ldrh r1, [r3, r0] - movw r3, #1874 - ldrh r2, [r5, r3] - movw r3, #1804 - ldrh r3, [r5, r3] + movw r0, #2316 + ldr r3, .L3508+16 + ldrh r2, [r3, r2] + ldrh r3, [r3, r0] mul r3, r3, r2 add r3, r3, r3, lsr #31 cmp r1, r3, asr #1 - ble .L3409 - ldrh r3, [r9, #-12] - sub r2, r10, #1 + ble .L3391 + ldrh r3, [r8, #-12] + sub r2, fp, #1 cmp r3, r2 - blt .L3409 + blt .L3391 bl FtlReadRefresh - b .L3521 -.L3409: + ldr r3, .L3508+20 + ldrh r0, [r3, r4] + b .L3497 +.L3391: cmp r1, #0 - bne .L3408 + bne .L3390 movw r0, #65535 bl decrement_vpc_count ldrh r0, [r9, #-12] add r0, r0, #1 - b .L3363 -.L3403: - ldr r3, [r5, #1796] + b .L3497 +.L3385: + ldr r3, .L3508+16 + ldr r3, [r3, #2308] cmp r3, #0 - moveq r10, #1 - movne r10, #2 -.L3402: - ldrh r3, [r8, #-8] + moveq fp, #1 + movne fp, #2 +.L3384: + ldrh r3, [r7, #-8] movw r0, #65535 - ldr r2, .L3526+12 + ldr r2, .L3508 cmp r3, r0 - sub r1, r2, #3792 - bne .L3411 + sub r1, r2, #3280 + bne .L3393 cmp r4, r3 strneh r4, [r1, #-8] @ movhi - bne .L3413 - sub r1, r2, #3168 - ldrh r3, [r1, #-14] + bne .L3395 + ldrh r3, [r5, #-14] + sub r1, r2, #2656 cmp r3, r4 - beq .L3413 - ldr r2, [r2, #-4060] + beq .L3395 + ldr r2, [r2, #-3548] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 mvneq r3, #0 streqh r3, [r1, #-14] @ movhi - ldrh r3, [r6, #-14] - strh r3, [r8, #-8] @ movhi + ldrh r3, [r5, #-14] + strh r3, [r7, #-8] @ movhi mvn r3, #0 - strh r3, [r6, #-14] @ movhi -.L3413: - ldrh r0, [r8, #-8] + strh r3, [r5, #-14] @ movhi +.L3395: + ldrh r0, [r7, #-8] mov r3, #0 - strb r3, [r7, #-3792] + strb r3, [r6, #-3280] movw r3, #65535 cmp r0, r3 - beq .L3411 + beq .L3393 bl IsBlkInGcList cmp r0, #0 - ldrne r3, .L3526+20 + ldrne r3, .L3508+12 mvnne r2, #0 strneh r2, [r3, #-8] @ movhi - ldrb r3, [r5, #140] @ zero_extendqisi2 + ldr r3, .L3508+16 + ldrb r3, [r3, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L3417 - ldrh r0, [r8, #-8] + beq .L3399 + ldrh r0, [r7, #-8] bl ftl_get_blk_mode - strb r0, [r7, #-3792] -.L3417: - ldrh r2, [r8, #-8] + strb r0, [r6, #-3280] +.L3399: + ldrh r2, [r7, #-8] movw r3, #65535 - ldr r6, .L3526+12 + ldr r6, .L3508 cmp r2, r3 - sub r7, r6, #3792 - sub r5, r7, #8 - beq .L3411 + sub r8, r6, #3280 + sub r5, r8, #8 + beq .L3393 mov r0, r5 bl make_superblock - ldr r3, .L3526+44 - movw r1, #446 + ldr r3, .L3508+20 + movw r1, #1982 mov r2, #0 - strh r2, [r7, #-6] @ movhi + strh r2, [r8, #-6] @ movhi strh r2, [r3, r1] @ movhi - add r3, r3, #448 - strb r2, [r6, #-3794] - ldrh r2, [r7, #-8] - ldr r1, [r6, #-4060] + 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 -.L3411: - ldrh r3, [r8, #-8] +.L3393: + ldrh r3, [r7, #-8] ldrh r2, [r9, #-8] cmp r2, r3 - beq .L3418 - ldr r2, .L3526+48 + beq .L3400 + ldr r2, .L3508+40 ldrh r1, [r2, #-8] cmp r1, r3 - beq .L3418 + beq .L3400 ldrh r2, [r2, #40] cmp r2, r3 - bne .L3452 -.L3418: - ldr r3, .L3526+20 + bne .L3434 +.L3400: + ldr r3, .L3508+12 mvn r2, #0 strh r2, [r3, #-8] @ movhi -.L3452: - ldr r7, .L3526+52 +.L3434: + ldr r7, .L3508+44 movw r3, #65535 - ldr r6, .L3526+12 + ldr r6, .L3508 ldrh r2, [r7] - mov fp, r7 + mov r10, r7 mov r8, r6 cmp r2, r3 - bne .L3420 + bne .L3402 mov r3, #0 - str r3, [r6, #-3224] -.L3421: - ldr r9, .L3526+56 + str r3, [r6, #-2712] +.L3403: + ldr r9, .L3508+48 ldrh r5, [r9] mov r0, r5 bl List_get_gc_head_node movw r2, #65535 uxth r3, r0 - strh r3, [fp] @ movhi + strh r3, [r10] @ movhi cmp r3, r2 moveq r3, #0 moveq r0, #8 streqh r3, [r9] @ movhi - beq .L3363 -.L3422: + beq .L3497 +.L3404: mov r0, r3 str r3, [sp, #8] bl IsBlkInGcList add r5, r5, #1 cmp r0, #0 ldr r3, [sp, #8] - ldrne r3, .L3526+56 + ldrne r3, .L3508+48 strneh r5, [r3] @ movhi - bne .L3421 - ldr r2, .L3526+56 + bne .L3403 + ldr r2, .L3508+48 uxth r5, r5 - ldr r0, [r8, #-4060] + ldr r0, [r8, #-3548] mov r1, r3, asl #1 strh r5, [r2] @ movhi - ldr r2, .L3526+36 + 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 .L3425 + bgt .L3407 cmp ip, #8 cmphi r5, #48 - bls .L3426 + bls .L3408 ldrh ip, [r9, #36] cmp ip, #35 - bhi .L3426 -.L3425: - ldr lr, .L3526+56 + bhi .L3408 +.L3407: + ldr lr, .L3508+48 mov ip, #0 strh ip, [lr] @ movhi -.L3426: +.L3408: ldrh r1, [r0, r1] movw r0, #65535 cmp r1, r2 cmpge r4, r0 - bne .L3427 - ldr r2, .L3526+56 + bne .L3409 + ldr r2, .L3508+48 ldrh r0, [r2] cmp r0, #3 - bhi .L3427 + bhi .L3409 sub r3, r2, #564 mvn r1, #0 strh r1, [r3, #-8] @ movhi mov r3, #0 strh r3, [r2] @ movhi - b .L3521 -.L3427: + b .L3502 +.L3409: cmp r1, #0 - bne .L3428 + bne .L3410 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L3526+56 - ldr r2, .L3526+56 + ldr r3, .L3508+48 + ldr r2, .L3508+48 ldrh r3, [r3] add r3, r3, #1 strh r3, [r2] @ movhi - b .L3421 -.L3428: + b .L3403 +.L3410: mov r2, #0 - strb r2, [r6, #-3792] - ldr r2, .L3526 + strb r2, [r6, #-3280] + ldr r2, .L3508+16 ldrb r2, [r2, #140] @ zero_extendqisi2 cmp r2, #0 - beq .L3429 + beq .L3411 mov r0, r3 bl ftl_get_blk_mode - ldr r3, .L3526+12 - strb r0, [r3, #-3792] -.L3429: - ldr r0, .L3526+52 + ldr r3, .L3508 + strb r0, [r3, #-3280] +.L3411: + ldr r0, .L3508+44 bl make_superblock ldrh r2, [r7] - ldr r1, .L3526+60 + ldr r1, .L3508+52 mov r3, #0 - ldr r0, [r6, #-4060] + ldr r0, [r6, #-3548] mov r2, r2, asl #1 strh r3, [r1] @ movhi ldrh r2, [r0, r2] strh r3, [r7, #2] @ movhi - strb r3, [r6, #-3794] + strb r3, [r6, #-3282] strh r2, [r1, #2] @ movhi -.L3420: +.L3402: ldr r3, [sp, #12] cmp r3, #1 - bne .L3430 + bne .L3412 bl FtlReadRefresh -.L3430: +.L3412: mov r3, #1 - str r3, [r6, #-2100] - ldr r3, .L3526 - add r2, r3, #1872 + str r3, [r6, #-564] + ldr r3, .L3508+16 + add r2, r3, #2384 ldrb r3, [r3, #140] @ zero_extendqisi2 ldrh r2, [r2] cmp r3, #0 str r2, [sp, #8] - beq .L3431 - ldr r3, .L3526+12 - ldrb r3, [r3, #-3792] @ zero_extendqisi2 + beq .L3413 + ldr r3, .L3508 + ldrb r3, [r3, #-3280] @ zero_extendqisi2 cmp r3, #1 - ldreq r3, .L3526+64 + ldreq r3, .L3508+56 ldreqh r3, [r3] streq r3, [sp, #8] -.L3431: +.L3413: ldrh r3, [r7, #2] mov r7, #0 ldr r1, [sp, #8] - add r2, r3, r10 - ldr r5, .L3526+12 + add r2, r3, fp + ldr r5, .L3508 cmp r2, r1 movgt r2, r1 rsbgt r3, r3, r2 - uxthgt r10, r3 -.L3433: - uxth r3, r7 - ldr r6, .L3526+12 - cmp r3, r10 - ldr r8, .L3526+52 - bcs .L3440 - ldr r3, .L3526+68 - movw lr, #65535 - ldr r8, [r5, #-3204] - mov ip, #36 - ldrh r9, [r3] - ldr r3, .L3526+52 - add r0, r3, #14 - ldrh r1, [r3, #2] - mov r3, #0 - mov r6, r3 - add r1, r1, r7 -.L3441: - uxth r2, r3 - cmp r2, r9 - bcs .L3524 - ldrh r2, [r0, #2]! - add r3, r3, #1 - cmp r2, lr - orrne r2, r1, r2, asl #10 - mlane fp, ip, r6, r8 - addne r6, r6, #1 - uxthne r6, r6 - strne r2, [fp, #4] - b .L3441 -.L3524: - ldr r0, [r5, #-3204] + uxthgt fp, r3 + b .L3415 +.L3507: + ldr r0, [r5, #-2692] mov r1, r6 - ldrb r2, [r5, #-3792] @ zero_extendqisi2 + ldrb r2, [r5, #-3280] @ zero_extendqisi2 mov r9, #0 bl FlashReadPages -.L3436: +.L3418: uxth r3, r9 cmp r3, r6 - bcs .L3525 + bcs .L3505 mov r3, #36 - ldr r2, [r5, #-3204] + ldr r2, [r5, #-2692] mul r8, r3, r9 add r1, r2, r8 ldr r2, [r2, r8] - ldr fp, [r1, #12] + ldr r10, [r1, #12] cmn r2, #1 - beq .L3473 - ldrh r1, [fp] + beq .L3454 + ldrh r1, [r10] movw r2, #61589 cmp r1, r2 - bne .L3473 - add r1, sp, r3 + bne .L3454 + add r1, sp, #32 mov r2, #0 - ldr r0, [fp, #8] + ldr r0, [r10, #8] str r3, [sp, #16] bl log2phys - ldr r2, [r5, #-3204] + ldr r2, [r5, #-2692] add r2, r2, r8 ldr r0, [r2, #4] - ldr r1, [sp, #36] + ldr r1, [sp, #32] ldr r3, [sp, #16] bic r1, r1, #-2147483648 cmp r1, r0 - bne .L3473 - ldr r1, .L3526+60 - ldr r0, .L3526+60 + bne .L3454 + ldr r1, .L3508+52 + ldr r0, .L3508+52 ldr r2, [r2, #16] ldrh r1, [r1] str r3, [sp, #20] add r1, r1, #1 strh r1, [r0] @ movhi - ldr r0, [r5, #-3220] - ldr r1, [r5, #-2072] + ldr r0, [r5, #-2708] + ldr r1, [r5, #-536] mla r1, r3, r0, r1 str r2, [r1, #16] str r1, [sp, #16] bl Ftl_get_new_temp_ppa - ldr r2, [r5, #-2072] + ldr r2, [r5, #-536] ldr r1, [sp, #16] ldr r3, [sp, #20] str r0, [r1, #4] - ldr r1, [r5, #-3220] + ldr r1, [r5, #-2708] mla r3, r3, r1, r2 - ldr r2, [r5, #-3204] + ldr r2, [r5, #-2692] add r2, r2, r8 ldr r1, [r2, #8] str r1, [r3, #8] mov r1, #1 ldr r2, [r2, #12] str r2, [r3, #12] - ldr r3, [sp, #36] - str r3, [fp, #12] - ldr r3, .L3526+72 + ldr r3, [sp, #32] + str r3, [r10, #12] + ldr r3, .L3508+60 ldrh r3, [r3] - strh r3, [fp, #2] @ movhi - ldr r3, [r5, #-3844] - ldr r0, [r5, #-3204] - str r3, [fp, #4] + strh r3, [r10, #2] @ movhi + ldr r3, [r5, #-3332] + ldr r0, [r5, #-2692] + str r3, [r10, #4] add r0, r0, r8 - ldr r3, [r5, #-3220] + ldr r3, [r5, #-2708] add r3, r3, #1 - str r3, [r5, #-3220] + str r3, [r5, #-2708] bl FtlGcBufAlloc - ldr r3, .L3526 + ldr r3, .L3508+16 ldrb r3, [r3, #140] @ zero_extendqisi2 cmp r3, #0 - bne .L3438 - ldrb r3, [r5, #-3937] @ zero_extendqisi2 - ldr r2, [r5, #-3220] - cmp r2, r3 - beq .L3438 - ldr r3, .L3526+72 - ldrh r3, [r3, #4] - cmp r3, #0 - bne .L3473 -.L3438: + beq .L3506 +.L3420: bl Ftl_gc_temp_data_write_back cmp r0, #0 - beq .L3473 - ldr r3, .L3526+12 + beq .L3454 + ldr r3, .L3508 mov r2, #0 mvn r1, #0 - sub r3, r3, #3792 - str r2, [r3, #1692] + sub r3, r3, #3280 + str r2, [r3, #2716] strh r1, [r3, #-8] @ movhi strh r2, [r3, #-6] @ movhi - b .L3521 -.L3473: - add r9, r9, #1 - b .L3436 -.L3525: +.L3502: + ldr r2, .L3508+20 + movw r3, #1980 + ldrh r0, [r2, r3] + b .L3497 +.L3505: add r7, r7, #1 - b .L3433 -.L3440: - ldrh r3, [r8, #2] - add r10, r10, r3 - ldr r3, [sp, #8] - uxth r10, r10 - strh r10, [r8, #2] @ movhi - cmp r10, r3 - bcc .L3442 - ldr r3, [r6, #-3220] +.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] cmp r3, #0 - beq .L3443 + 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 bl Ftl_gc_temp_data_write_back cmp r0, #0 - beq .L3443 - mov r3, #0 - str r3, [r6, #-2100] -.L3521: - ldr r3, .L3526+24 - ldrh r0, [r3] - b .L3363 -.L3443: - ldr r3, .L3526+60 + movne r3, #0 + strne r3, [r8, #-564] + bne .L3502 +.L3425: + ldr r3, .L3508+52 ldrh r5, [r3] cmp r5, #0 - bne .L3444 - ldrh r3, [r8] - ldr r2, [r6, #-4060] + bne .L3426 + ldrh r3, [r6] + ldr r2, [r8, #-3548] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3444 - ldr r7, .L3526 -.L3445: - ldr r3, [r7, #1932] + beq .L3426 + ldr r7, .L3508+16 +.L3427: + ldr r3, [r7, #2444] cmp r5, r3 - bcs .L3450 + bcs .L3432 mov r0, r5 - add r1, sp, #40 + add r1, sp, #36 mov r2, #0 bl log2phys - ldr r0, [sp, #40] + ldr r0, [sp, #36] cmn r0, #1 - beq .L3446 + beq .L3428 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldrh r3, [r8] + ldrh r3, [r6] cmp r3, r0 - bne .L3446 -.L3450: - ldr r3, .L3526 - ldr r3, [r3, #1932] + bne .L3428 +.L3432: + ldr r3, .L3508+16 + ldr r3, [r3, #2444] cmp r5, r3 - bcc .L3444 - ldrh r3, [r8] + bcc .L3426 + ldrh r3, [r6] mov r1, #0 - ldr r2, [r6, #-4060] + ldr r2, [r8, #-3548] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - ldrh r0, [r8] + ldrh r0, [r6] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3444 -.L3446: + b .L3426 +.L3428: add r5, r5, #1 - b .L3445 -.L3444: + b .L3427 +.L3426: mvn r3, #0 - strh r3, [r8] @ movhi -.L3442: - ldr r3, .L3526+76 + strh r3, [r6] @ movhi +.L3424: + ldr r3, .L3508+68 ldrh r3, [r3] cmp r3, #2 - ldrls r3, .L3526+36 - ldrlsh r10, [r3] - bls .L3452 -.L3451: - ldr r2, .L3526+12 + ldrls r3, .L3508+32 + ldrlsh fp, [r3] + bls .L3434 +.L3433: + ldr r2, .L3508 mov r1, #0 - str r1, [r2, #-2100] - ldr r2, .L3526+24 - ldrh r0, [r2] - cmp r0, r1 + str r1, [r2, #-564] + movw r2, #1980 + ldr r1, .L3508+20 + ldrh r0, [r1, r2] + cmp r0, #0 addeq r0, r3, #1 -.L3363: - ldr r3, .L3526+4 - ldr r2, [sp, #44] - ldr r3, [r3] + 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] + cmp r3, #24 + movcc r3, #5120 + movcs r3, #1024 cmp r2, r3 - beq .L3456 - bl __stack_chk_fail -.L3523: - sub r3, r9, #3168 - ldrh fp, [r3, #-14] - cmp fp, r4 - bne .L3379 - sub r3, r9, #4032 - ldr r1, [r9, #-3232] - ldrh r2, [r3, #-12] - cmp r2, #24 - movcc r2, #5120 - movcs r2, #1024 - cmp r1, r2 - movls r4, fp - bls .L3379 - ldr r1, .L3526+24 - mov r2, #0 - str r3, [sp, #16] - str r2, [r7, #-3232] - strh r2, [r1] @ movhi + movls r4, r10 + bls .L3361 + ldr r1, .L3508+20 + movw r2, #1980 + mov r3, #0 + str r3, [r6, #-2720] + strh r3, [r1, r2] @ movhi bl GetSwlReplaceBlock - cmp r0, fp + cmp r0, r10 mov r4, r0 - sub fp, r9, #3232 - ldr r3, [sp, #16] - bne .L3381 - ldrh r2, [r3, #-12] - ldrh r3, [fp, #-2] + sub r10, r9, #2720 + bne .L3363 + ldrh r2, [r8, #-12] + ldrh r3, [r10, #-2] cmp r2, r3 - bcs .L3382 + bcs .L3364 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - beq .L3391 - ldr r2, [r9, #-2104] - ldr r1, .L3526+80 + beq .L3373 + ldr r2, [r9, #-568] + ldr fp, .L3508+16 cmp r2, #0 - bne .L3384 + add r1, fp, #2336 + bne .L3366 ldrh r0, [r1] cmp r0, #3 - beq .L3384 - ldr r0, [r9, #-3752] + beq .L3366 + ldr r0, [r9, #-3240] cmp r0, #0 - bne .L3384 - ldr r0, [r1, #-28] + bne .L3366 + ldr r0, [fp, #2308] cmp r0, #0 - bne .L3384 - ldrb r0, [r1, #-1684] @ zero_extendqisi2 + bne .L3366 + ldrb r0, [fp, #140] @ zero_extendqisi2 cmp r0, #0 - beq .L3385 -.L3384: - ldr r2, [r7, #-4060] + beq .L3367 +.L3366: + ldr r2, [r6, #-3548] mov r3, r3, asl #1 ldrh r1, [r1] ldrh r0, [r2, r3] - movw r3, #1874 - movw r2, #1804 - ldrh r3, [r5, r3] - ldrh r2, [r5, r2] + movw r3, #2386 + movw r2, #2316 + ldrh r3, [fp, r3] + ldrh r2, [fp, r2] cmp r1, #3 mul r2, r2, r3 moveq r3, r3, lsr #1 movne r3, #0 add r3, r2, r3 cmp r0, r3 - bgt .L3387 + bgt .L3369 mov r0, #0 bl List_get_gc_head_node - ldr r3, [r5, #1932] - ldr r2, [r7, #-3888] + ldr r3, [fp, #2444] + ldr r2, [r6, #-3376] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movls r3, #160 uxth r4, r0 - bls .L3519 - b .L3522 -.L3385: - ldr r2, [r9, #-4060] + bls .L3500 + b .L3503 +.L3367: + ldr r2, [r9, #-3548] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #7 - bhi .L3390 + bhi .L3372 bl List_get_gc_head_node uxth r4, r0 -.L3522: +.L3503: mov r3, #128 -.L3519: - strh r3, [fp, #-2] @ movhi +.L3500: + strh r3, [r10, #-2] @ movhi movw r3, #65535 cmp r4, r3 - beq .L3391 - b .L3381 -.L3387: + beq .L3373 + b .L3363 +.L3369: mov r3, #128 - b .L3520 -.L3390: + b .L3501 +.L3372: mov r3, #64 - b .L3520 -.L3382: + b .L3501 +.L3364: mov r3, #80 -.L3520: - strh r3, [fp, #-2] @ movhi - b .L3391 -.L3381: - ldr r0, [r5, #4060] +.L3501: + strh r3, [r10, #-2] @ movhi + b .L3373 +.L3363: + ldr r0, [r6, #-3612] mov r1, r4, asl #1 - ldr r3, [r7, #-4060] - ldrh r2, [r10, #-12] + ldr r3, [r6, #-3548] + ldrh r2, [r8, #-12] ldrh r3, [r3, r1] ldrh r1, [r0, r1] - ldr r0, .L3526+84 + ldr r0, .L3508+72 str r1, [sp] - ldrh r1, [fp, #-4] + ldrh r1, [r10, #-4] str r1, [sp, #4] mov r1, r4 bl printk -.L3391: +.L3373: bl FtlGcReFreshBadBlk - b .L3379 -.L3456: - add sp, sp, #52 + b .L3361 +.L3497: + add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3527: +.L3509: .align 2 -.L3526: - .word .LANCHOR0 - .word __stack_chk_guard - .word .LANCHOR1 +.L3508: .word .LANCHOR2 - .word .LANCHOR2-3168 - .word .LANCHOR2-3792 - .word .LANCHOR4+444 - .word .LC152 - .word .LANCHOR2-4032 - .word .LANCHOR0+1872 - .word .LANCHOR2-3808 + .word .LANCHOR1 + .word .LANCHOR2-2656 + .word .LANCHOR2-3280 + .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR2-3984 - .word .LANCHOR2-3800 - .word .LANCHOR2-3228 - .word .LANCHOR4+446 - .word .LANCHOR0+1874 - .word .LANCHOR0+1804 - .word .LANCHOR2-3944 - .word .LANCHOR2-4044 - .word .LANCHOR0+1824 + .word .LC152 + .word .LANCHOR2-3520 + .word .LANCHOR0+2384 + .word .LANCHOR2-3296 + .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 .fnend .size ftl_do_gc, .-ftl_do_gc @@ -21282,222 +20972,209 @@ ftl_do_gc: .type FtlCacheWriteBack, %function FtlCacheWriteBack: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3573 - 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 r2, [r3] - ldr r4, .L3573+4 - str r3, [sp, #4] - str r2, [sp, #12] - ldr r2, .L3573+8 - ldr r5, [r2, #452] - ldr r2, [r4, #4052] - cmp r2, #0 - bne .L3530 - ldr r1, [r4, #1924] + .pad #12 + ldr r3, .L3554 + ldr r7, .L3554+4 + ldr r5, [r3, #1988] + ldr r3, [r7, #-3620] + cmp r3, #0 + bne .L3512 + ldr r4, .L3554+8 + ldr r1, [r4, #2436] cmp r1, #0 - beq .L3530 + beq .L3512 ldrb r6, [r4, #140] @ zero_extendqisi2 mov r8, #0 - ldr r0, [r4, #1928] + ldr r0, [r4, #2440] + mov r10, #36 cmp r6, #0 ldrb r3, [r5, #9] @ zero_extendqisi2 - ldr r9, .L3573+4 + ldr r9, .L3554+8 ldrneb r6, [r5, #8] @ zero_extendqisi2 - ldr r10, .L3573+12 subne r6, r6, #1 clzne r6, r6 movne r6, r6, lsr #5 mov r2, r6 bl FlashProgPages -.L3533: - ldr r3, [r4, #1924] +.L3515: + ldr r3, [r4, #2436] cmp r8, r3 - bcs .L3551 - mov r7, #36 - ldr r3, [r9, #1928] - mul r7, r7, r8 - add r2, r3, r7 - ldr r3, [r3, r7] + bcs .L3533 + mul fp, r10, r8 + ldr r3, [r9, #2440] + add r2, r3, fp + ldr r3, [r3, fp] cmn r3, #1 - beq .L3555 + beq .L3536 ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] - add r1, sp, #8 + add r1, sp, #4 mov r2, #1 orrne r3, r3, #-2147483648 - str r3, [sp, #8] + str r3, [sp, #4] bl log2phys - ldr r3, [r4, #1928] - add r7, r3, r7 - ldr r3, [r7, #12] + ldr r3, [r4, #2440] + add r3, r3, fp + ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3537 + beq .L3519 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r10, #-4060] + ldr r2, [r7, #-3548] mov r3, r0, asl #1 - mov r7, r0 + mov fp, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3538 - ldr r0, .L3573+16 - mov r1, r7 + bne .L3520 + ldr r0, .L3554+12 + mov r1, fp bl printk -.L3538: - mov r0, r7 +.L3520: + mov r0, fp bl decrement_vpc_count -.L3537: +.L3519: add r8, r8, #1 - b .L3533 -.L3571: - ldr r6, .L3573+20 + b .L3515 +.L3552: + ldr r6, .L3554+16 movw r5, #16386 -.L3550: +.L3532: ldrh r3, [r6] cmp r3, #0 - beq .L3551 + beq .L3533 mov r0, #1 mov r1, r0 bl ftl_do_gc subs r5, r5, #1 - bne .L3550 -.L3551: + bne .L3532 +.L3533: mov r3, #0 - str r3, [r4, #1924] - b .L3530 -.L3555: - ldr r10, .L3573+4 - mov r8, #0 - ldr r9, .L3573+12 -.L3534: - ldr r3, [r4, #1924] - cmp r8, r3 - bcs .L3571 - mov r7, #36 - ldr r3, [r10, #1928] - mul r7, r7, r8 - ldr fp, .L3573+24 + str r3, [r4, #2436] + b .L3512 +.L3536: + ldr fp, .L3554+8 + mov r9, #0 +.L3516: + ldr r3, [r4, #2436] + cmp r9, r3 + bcs .L3552 + mov r8, #36 + ldr r3, [fp, #2440] + mul r8, r8, r9 + mov r10, #0 mvn r2, #0 - str r2, [r3, r7] -.L3540: - ldr r3, [r4, #1928] - add r2, r3, r7 - ldr r3, [r3, r7] + str r2, [r3, r8] +.L3522: + ldr r3, [r4, #2440] + add r2, r3, r8 + ldr r3, [r3, r8] cmn r3, #1 - bne .L3572 + bne .L3553 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3541 - ldr r1, [r9, #-4060] + bne .L3523 + ldr r1, [r7, #-3548] mov r3, r3, asl #1 ldrh r0, [r5, #4] ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldrh r3, [fp] + ldr r3, .L3554+20 + strb r10, [r5, #6] + strh r10, [r5, #4] @ movhi + ldrh r3, [r3] strh r3, [r5, #2] @ movhi - mov r3, #0 - strb r3, [r5, #6] - strh r3, [r5, #4] @ movhi -.L3541: +.L3523: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3542 + bne .L3524 mov r0, r5 bl allocate_new_data_superblock -.L3542: - ldr r3, [r9, #-3652] +.L3524: + ldr r3, [r7, #-3140] add r3, r3, #1 - str r3, [r9, #-3652] - ldr r3, [r4, #1928] - add r3, r3, r7 + str r3, [r7, #-3140] + ldr r3, [r4, #2440] + 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, #1928] - mov r1, #1 + ldr r3, [r4, #2440] mov r2, r6 - add r3, r3, r7 - str r0, [sp, #8] + mov r1, #1 + add r3, r3, r8 + str r0, [sp, #4] str r0, [r3, #4] mov r0, r3 ldrb r3, [r5, #9] @ zero_extendqisi2 bl FlashProgPages - ldr r3, [r4, #1928] - ldr r3, [r3, r7] + ldr r3, [r4, #2440] + ldr r3, [r3, r8] cmn r3, #1 + ldreq r2, .L3554+4 moveq r3, #1 - streq r3, [r10, #4052] - ldr r3, [r4, #4052] + streq r3, [r2, #-3620] + ldr r3, [r7, #-3620] cmp r3, #0 - beq .L3540 - b .L3530 -.L3572: + beq .L3522 + b .L3512 +.L3553: ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] - add r1, sp, #8 + add r1, sp, #4 mov r2, #1 orrne r3, r3, #-2147483648 - str r3, [sp, #8] + str r3, [sp, #4] bl log2phys - ldr r3, [r4, #1928] - add r7, r3, r7 - ldr r3, [r7, #12] + ldr r3, [r4, #2440] + add r8, r3, r8 + ldr r3, [r8, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3547 + beq .L3529 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r9, #-4060] + ldr r2, [r7, #-3548] mov r3, r0, asl #1 - mov r7, r0 + mov r8, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3548 - ldr r0, .L3573+16 - mov r1, r7 + bne .L3530 + ldr r0, .L3554+12 + mov r1, r8 bl printk -.L3548: - mov r0, r7 - bl decrement_vpc_count -.L3547: - add r8, r8, #1 - b .L3534 .L3530: - ldr r3, [sp, #4] + mov r0, r8 + bl decrement_vpc_count +.L3529: + add r9, r9, #1 + b .L3516 +.L3512: mov r0, #0 - ldr r2, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L3553 - bl __stack_chk_fail -.L3553: - add sp, sp, #20 + add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3574: +.L3555: .align 2 -.L3573: - .word __stack_chk_guard - .word .LANCHOR0 +.L3554: .word .LANCHOR4 .word .LANCHOR2 + .word .LANCHOR0 .word .LC154 - .word .LANCHOR2-3174 - .word .LANCHOR0+1872 + .word .LANCHOR2-2662 + .word .LANCHOR0+2384 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 @@ -21509,26 +21186,26 @@ FtlSysFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L3581 - ldr r3, [r3, #4052] + ldr r3, .L3562 + ldr r3, [r3, #-3620] cmp r3, #0 - bne .L3576 - ldr r3, .L3581+4 + bne .L3557 + ldr r3, .L3562+4 ldr r3, [r3, #504] cmn r3, #1 - beq .L3576 + beq .L3557 bl FtlCacheWriteBack bl l2p_flush mov r0, #1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3576: +.L3557: mov r0, #0 ldmfd sp!, {r3, pc} -.L3582: +.L3563: .align 2 -.L3581: - .word .LANCHOR0 +.L3562: + .word .LANCHOR2 .word .LANCHOR1 .fnend .size FtlSysFlush, .-FtlSysFlush @@ -21541,17 +21218,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L3586 + ldr r3, .L3567 ldr r3, [r3, #504] cmp r3, #1 - bne .L3584 + bne .L3565 bl FtlSysFlush -.L3584: +.L3565: mov r0, #0 ldmfd sp!, {r3, pc} -.L3587: +.L3568: .align 2 -.L3586: +.L3567: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -21580,13 +21257,13 @@ rk_ftl_de_init: stmfd sp!, {r3, lr} .save {r3, lr} mov r1, #0 - ldr r0, .L3592 + ldr r0, .L3573 bl printk ldmfd sp!, {r3, lr} b ftl_deinit -.L3593: +.L3574: .align 2 -.L3592: +.L3573: .word .LC155 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init @@ -21617,117 +21294,106 @@ rk_ftl_cache_write_back: .type ftl_discard, %function ftl_discard: .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, lr} + stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} - .pad #20 - sub sp, sp, #20 - ldr r6, .L3616 + .pad #12 add r2, r0, r1 - ldr r4, .L3616+4 - mov r7, r0 + ldr r4, .L3596 + mov r6, r0 mov r5, r1 - ldr r3, [r6] - str r3, [sp, #12] - ldr r3, [r4, #1912] + ldr r3, [r4, #2424] cmp r2, r3 mvnhi r0, #0 - bhi .L3597 - ldr r3, .L3616+8 + bhi .L3578 + ldr r3, .L3596+4 ldr r0, [r3, #504] cmn r0, #1 - beq .L3597 + beq .L3578 cmp r1, #31 - bls .L3607 - ldr r3, [r4, #4052] + bls .L3587 + ldr r7, .L3596+8 + ldr r3, [r7, #-3620] cmp r3, #0 - bne .L3607 + bne .L3587 bl FtlCacheWriteBack - movw r3, #1878 + movw r3, #2390 ldrh r4, [r4, r3] - mov r0, r7 + mov r0, r6 mov r1, r4 bl __aeabi_uidiv smulbb r3, r0, r4 mov r8, r0 - rsb r7, r3, r7 - uxth r7, r7 - cmp r7, #0 - beq .L3598 - rsb r4, r7, r4 + rsb r6, r3, r6 + uxth r6, r6 + cmp r6, #0 + beq .L3579 + rsb r4, r6, r4 add r8, r0, #1 cmp r4, r5 movcs r4, r5 uxth r4, r4 rsb r5, r4, r5 -.L3598: - ldr r4, .L3616+12 +.L3579: + ldr r4, .L3596+12 mvn r3, #0 - ldr r9, .L3616+16 - str r3, [sp, #8] - mov r7, r4 -.L3599: + ldr r9, .L3596+16 + str r3, [sp, #4] + mov r6, r4 +.L3580: ldrh r3, [r4] cmp r5, r3 - bcc .L3615 + bcc .L3595 mov r0, r8 - add r1, sp, #4 + mov r1, sp mov r2, #0 bl log2phys - ldr r3, [sp, #4] + ldr r3, [sp] cmn r3, #1 - beq .L3600 - ldr r2, .L3616+20 - add r1, sp, #8 - ldr r3, [r9, #456] + beq .L3581 + ldr r3, [r9, #1992] + add r1, sp, #4 + mov r2, #1 mov r0, r8 add r3, r3, #1 - str r3, [r9, #456] - ldr r3, [r2, #-3876] + str r3, [r9, #1992] + ldr r3, [r7, #-3364] add r3, r3, #1 - str r3, [r2, #-3876] - mov r2, #1 + str r3, [r7, #-3364] bl log2phys - ldr r0, [sp, #4] + ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3600: - ldrh r3, [r7] +.L3581: + ldrh r3, [r6] add r8, r8, #1 rsb r5, r3, r5 - b .L3599 -.L3615: - ldr r3, .L3616+16 - ldr r2, [r3, #456] + b .L3580 +.L3595: + ldr r3, .L3596+16 + ldr r2, [r3, #1992] cmp r2, #32 - bls .L3607 + bls .L3587 mov r2, #0 - str r2, [r3, #456] + str r2, [r3, #1992] bl l2p_flush bl FtlVpcTblFlush -.L3607: +.L3587: mov r0, #0 -.L3597: - ldr r2, [sp, #12] - ldr r3, [r6] - cmp r2, r3 - beq .L3603 - bl __stack_chk_fail -.L3603: - add sp, sp, #20 +.L3578: + add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3617: +.L3597: .align 2 -.L3616: - .word __stack_chk_guard +.L3596: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR0+1878 - .word .LANCHOR4 .word .LANCHOR2 + .word .LANCHOR0+2390 + .word .LANCHOR4 .fnend .size ftl_discard, .-ftl_discard .align 2 @@ -21750,38 +21416,35 @@ ftl_read: @ 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, r3 - ldr r3, .L3667 + mov r5, r1 + ldr r1, .L3646 .pad #84 sub sp, sp, #84 - str r2, [sp, #36] - ldr r3, [r3] - str r3, [sp, #76] - ldr r3, .L3667+4 - ldr r3, [r3, #504] - cmn r3, #1 - moveq r0, r3 - beq .L3620 + ldr r4, [r1, #504] + cmn r4, #1 + moveq r0, r4 + beq .L3600 cmp r0, #16 - mov r7, r1 - bne .L3621 - add r0, r1, #256 + mov r8, r3 + str r2, [sp, #36] + bne .L3601 mov r1, r2 - mov r2, r8 + add r0, r5, #256 + mov r2, r3 bl FtlVendorPartRead - b .L3620 -.L3621: + b .L3600 +.L3601: ldr r3, [sp, #36] - add r3, r1, r3 + add r3, r5, r3 str r3, [sp, #40] - ldr r3, .L3667+8 + ldr r3, .L3646+4 ldr r1, [sp, #40] - ldr r2, [r3, #1912] + ldr r2, [r3, #2424] cmp r1, r2 mvnhi r0, #0 - bhi .L3620 - movw r2, #1878 - mov r0, r7 + bhi .L3600 + movw r2, #2390 + mov r0, r5 ldrh r4, [r3, r2] mov r1, r4 bl __aeabi_uidiv @@ -21793,74 +21456,74 @@ ftl_read: rsb r3, r10, #1 add r3, r3, r0 str r3, [sp, #28] - ldr r3, .L3667+12 + ldr r3, .L3646+8 ldr r1, [sp, #36] str r0, [sp, #32] mov r0, r10 - ldr r2, [r3, #-3852] + ldr r2, [r3, #-3340] add r2, r1, r2 ldr r1, [sp, #28] - str r2, [r3, #-3852] - ldr r2, [r3, #-3880] + str r2, [r3, #-3340] + ldr r2, [r3, #-3368] add r2, r1, r2 ldr r1, [sp, #32] - str r2, [r3, #-3880] + str r2, [r3, #-3368] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3622 + beq .L3602 bl FtlCacheWriteBack -.L3622: - ldr r4, .L3667+12 +.L3602: + ldr r4, .L3646+8 mov r9, #0 - mov r5, r10 - mov r6, r9 + mov r6, r10 + mov r7, r9 str r9, [sp, #48] str r9, [sp, #52] -.L3623: +.L3603: ldr r3, [sp, #28] cmp r3, #0 - beq .L3666 - mov r0, r5 - add r1, sp, #72 + beq .L3645 + mov r0, r6 + add r1, sp, #76 mov r2, #0 bl log2phys - ldr r3, [sp, #72] + ldr r3, [sp, #76] cmn r3, #1 - bne .L3662 + bne .L3641 mov fp, #0 -.L3624: - ldr r3, .L3667+16 +.L3604: + ldr r3, .L3646+12 ldrh r0, [r3] cmp fp, r0 - bcs .L3628 - mla r0, r0, r5, fp + bcs .L3608 + mla r0, r0, r6, fp ldr r2, [sp, #40] - cmp r0, r7 + cmp r0, r5 movcs r3, #1 movcc r3, #0 cmp r0, r2 movcs r3, #0 cmp r3, #0 - beq .L3626 - rsb r0, r7, r0 + beq .L3606 + rsb r0, r5, r0 mov r1, #0 mov r2, #512 add r0, r8, r0, asl #9 bl ftl_memset -.L3626: +.L3606: add fp, fp, #1 - b .L3624 -.L3662: - ldr r2, [r4, #-2076] + b .L3604 +.L3641: + ldr r2, [r4, #-540] mov fp, #36 - cmp r5, r10 - mla fp, fp, r6, r2 + cmp r6, r10 + mla fp, fp, r7, r2 str r3, [fp, #4] - bne .L3629 - ldr r3, [r4, #-2048] - mov r0, r7 + bne .L3609 + ldr r3, [r4, #-512] + mov r0, r5 str r3, [fp, #8] - ldr r3, .L3667+16 + ldr r3, .L3646+12 ldrh ip, [r3] mov r1, ip str ip, [sp, #44] @@ -21874,54 +21537,54 @@ ftl_read: cmp r3, ip str r3, [sp, #48] streq r8, [fp, #8] - b .L3630 -.L3629: + b .L3610 +.L3609: ldr r3, [sp, #32] - cmp r5, r3 - bne .L3631 - ldr r3, [r4, #-2044] + cmp r6, r3 + bne .L3611 + ldr r3, [r4, #-508] ldr r1, [sp, #40] str r3, [fp, #8] - ldr r3, .L3667+16 + ldr r3, .L3646+12 ldrh r2, [r3] - mul r3, r2, r5 + mul r3, r2, r6 rsb r9, r3, r1 cmp r9, r2 - bne .L3630 - b .L3664 -.L3631: - ldr r3, .L3667+16 - ldrh r3, [r3] - mul r3, r3, r5 -.L3664: - rsb r3, r7, r3 - add r3, r8, r3, asl #9 - str r3, [fp, #8] -.L3630: - ldr r3, .L3667+20 - ldr r2, [r4, #-2036] - str r5, [fp, #16] + bne .L3610 + b .L3643 +.L3611: + ldr r3, .L3646+12 ldrh r3, [r3] mul r3, r3, r6 - add r6, r6, #1 +.L3643: + rsb r3, r5, r3 + add r3, r8, r3, asl #9 + str r3, [fp, #8] +.L3610: + ldr r3, .L3646+16 + ldr r2, [r4, #-500] + str r6, [fp, #16] + ldrh r3, [r3] + mul r3, r3, r7 + add r7, r7, #1 bic r3, r3, #3 add r3, r2, r3 str r3, [fp, #12] -.L3628: +.L3608: ldr r3, [sp, #28] - add r5, r5, #1 + add r6, r6, #1 subs r3, r3, #1 str r3, [sp, #28] - beq .L3632 - ldr r3, .L3667+24 + beq .L3612 + ldr r3, .L3646+20 ldrh r3, [r3] - cmp r6, r3, asl #3 - bne .L3623 -.L3632: - cmp r6, #0 - beq .L3623 - ldr r0, [r4, #-2076] - mov r1, r6 + cmp r7, r3, asl #3 + bne .L3603 +.L3612: + cmp r7, #0 + beq .L3603 + ldr r0, [r4, #-540] + mov r1, r7 mov r2, #0 bl FlashReadPages ldr r3, [sp, #56] @@ -21934,59 +21597,59 @@ ftl_read: str r3, [sp, #68] mov r3, #0 str r3, [sp, #44] -.L3639: +.L3619: ldr r3, [sp, #44] mov ip, #36 mul fp, ip, r3 - ldr r3, [r4, #-2076] + ldr r3, [r4, #-540] add r3, r3, fp ldr r2, [r3, #16] cmp r2, r10 - bne .L3634 + bne .L3614 ldr r1, [r3, #8] - ldr r3, [r4, #-2048] + ldr r3, [r4, #-512] cmp r1, r3 - bne .L3635 + bne .L3615 ldr r3, [sp, #60] mov r0, r8 ldr r2, [sp, #64] add r1, r1, r3 - b .L3665 -.L3634: + b .L3644 +.L3614: ldr r1, [sp, #32] cmp r2, r1 - bne .L3635 + bne .L3615 ldr r1, [r3, #8] - ldr r3, [r4, #-2044] + ldr r3, [r4, #-508] cmp r1, r3 - bne .L3635 - ldr r3, .L3667+16 + bne .L3615 + ldr r3, .L3646+12 ldr r2, [sp, #68] ldrh r0, [r3] ldr r3, [sp, #32] mul r0, r0, r3 - rsb r0, r7, r0 + rsb r0, r5, r0 add r0, r8, r0, asl #9 -.L3665: +.L3644: bl ftl_memcpy -.L3635: - ldr r2, [r4, #-2076] +.L3615: + ldr r2, [r4, #-540] add r3, r2, fp ldr r1, [r2, fp] cmn r1, #1 streq r1, [sp, #52] - ldreq r2, [r4, #-3676] + ldreq r2, [r4, #-3164] addeq r2, r2, #1 - streq r2, [r4, #-3676] + streq r2, [r4, #-3164] ldr r2, [r3, #12] ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L3637 - ldr r2, [r4, #-3676] - ldr r0, .L3667+28 + beq .L3617 + ldr r2, [r4, #-3164] + ldr r0, .L3646+24 add r2, r2, #1 - str r2, [r4, #-3676] + str r2, [r4, #-3164] ldr lr, [r3, #12] ldr r2, [r3, #8] ldr r1, [lr, #4] @@ -22003,57 +21666,49 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [lr] bl printk -.L3637: - ldr r3, [r4, #-2076] +.L3617: + ldr r3, [r4, #-540] add r2, r3, fp ldr r3, [r3, fp] cmp r3, #256 - bne .L3638 + bne .L3618 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3638: +.L3618: ldr r3, [sp, #44] add r3, r3, #1 str r3, [sp, #44] - cmp r3, r6 - bne .L3639 - mov r6, #0 - b .L3623 -.L3666: - ldr r3, .L3667+32 + cmp r3, r7 + bne .L3619 + mov r7, #0 + b .L3603 +.L3645: + ldr r3, .L3646+28 ldrh r3, [r3, #-6] cmp r3, #0 - beq .L3641 + beq .L3621 ldr r0, [sp, #28] mov r1, #1 bl ftl_do_gc -.L3641: +.L3621: ldr r0, [sp, #52] -.L3620: - ldr r3, .L3667 - ldr r2, [sp, #76] - ldr r3, [r3] - cmp r2, r3 - beq .L3642 - bl __stack_chk_fail -.L3642: +.L3600: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3668: +.L3647: .align 2 -.L3667: - .word __stack_chk_guard +.L3646: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1878 - .word .LANCHOR0+1884 - .word .LANCHOR0+1804 + .word .LANCHOR0+2390 + .word .LANCHOR0+2396 + .word .LANCHOR0+2316 .word .LC144 - .word .LANCHOR2-3168 + .word .LANCHOR2-2656 .fnend .size ftl_read, .-ftl_read .align 2 @@ -22088,23 +21743,23 @@ FlashBootVendorRead: mov r6, r0 mov r5, r1 bl rknand_device_lock - ldr r3, .L3675 + ldr r3, .L3654 ldr r3, [r3, #504] cmp r3, #1 mvnne r4, #0 - bne .L3672 + bne .L3651 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_read mov r4, r0 -.L3672: +.L3651: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L3676: +.L3655: .align 2 -.L3675: +.L3654: .word .LANCHOR1 .fnend .size FlashBootVendorRead, .-FlashBootVendorRead @@ -22171,100 +21826,102 @@ FtlInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mvn r3, #0 - ldr r2, .L3698 - ldr r5, .L3698+4 - ldr r6, .L3698+8 - ldr r1, .L3698+12 - ldr r0, .L3698+16 - str r3, [r6, #504] + ldr r2, .L3677 + ldr r7, .L3677+4 + ldr r5, .L3677+8 + ldr r6, .L3677+12 + ldr r1, .L3677+16 + ldr r0, .L3677+20 + str r3, [r7, #504] mov r3, #0 - str r3, [r2, #460] - str r3, [r5, #4052] + str r3, [r2, #1996] + str r3, [r5, #-3620] bl printk - add r0, r5, #112 + add r0, r6, #112 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldr r3, [r5, #1808] + ldr r3, [r6, #2320] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - ldrne r0, .L3698+20 - bne .L3697 + ldrne r0, .L3677+24 + bne .L3676 bl FtlSysBlkInit subs r4, r0, #0 - beq .L3684 - ldr r0, .L3698+24 -.L3697: - ldr r1, .L3698+28 + beq .L3663 + ldr r0, .L3677+28 +.L3676: + ldr r1, .L3677+32 bl printk - b .L3683 -.L3684: + b .L3662 +.L3663: + sub r5, r5, #3520 mov r1, #1 - str r1, [r6, #504] + str r1, [r7, #504] bl ftl_do_gc - ldr r3, .L3698+32 - ldrh r7, [r3, #-12] - cmp r7, #15 - bhi .L3685 - ldr r8, .L3698+36 - add r5, r3, #232 - sub r6, r3, #12 -.L3688: - ldrh r3, [r5] + ldrh r5, [r5, #-12] + cmp r5, #15 + bhi .L3664 + ldr r6, .L3677+36 + ldr r7, .L3677+40 + sub r8, r6, #244 +.L3667: + ldrh r3, [r6] movw r2, #65535 cmp r3, r2 - bne .L3686 - ldrh r2, [r8] + bne .L3665 + ldrh r2, [r7] cmp r2, r3 - bne .L3686 - and r0, r4, #7 + bne .L3665 + and r0, r4, #63 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3686: +.L3665: mov r0, #1 mov r1, r0 bl ftl_do_gc mov r0, #0 mov r1, #1 bl ftl_do_gc - ldrh r2, [r6] - add r3, r7, #2 + ldrh r2, [r8] + add r3, r5, #2 cmp r2, r3 - bhi .L3683 + bhi .L3662 add r4, r4, #1 - cmp r4, #1024 - bne .L3688 - b .L3683 -.L3685: - ldrb r3, [r5, #140] @ zero_extendqisi2 + cmp r4, #4096 + bne .L3667 + b .L3662 +.L3664: + ldrb r3, [r6, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L3683 + beq .L3662 mov r4, #128 -.L3690: +.L3669: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L3690 -.L3683: + bne .L3669 +.L3662: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3699: +.L3678: .align 2 -.L3698: +.L3677: .word .LANCHOR4 - .word .LANCHOR0 .word .LANCHOR1 + .word .LANCHOR2 + .word .LANCHOR0 .word .LC77 .word .LC76 .word .LC156 .word .LC157 .word .LANCHOR3+108 - .word .LANCHOR2-4032 - .word .LANCHOR2-3182 + .word .LANCHOR2-3288 + .word .LANCHOR2-2670 .fnend .size FtlInit, .-FtlInit .align 2 @@ -22278,44 +21935,45 @@ rk_ftl_init: .save {r4, r5, r6, lr} mov r0, #2048 bl ftl_malloc - ldr r6, .L3705 - ldr r4, .L3705+4 + ldr r6, .L3684 + ldr r4, .L3684+4 mov r5, #0 - mov r1, r6 - str r5, [r1, #468]! - str r0, [r6, #464] + ldr r1, .L3684+8 + str r5, [r6, #2004] + str r0, [r6, #2000] mov r0, r4 - str r5, [r0, #144]! + str r5, [r0, #1680]! bl rknand_get_reg_addr - ldr r3, [r4, #144] + ldr r3, [r4, #1680] cmp r3, r5 - beq .L3703 + beq .L3682 bl rk_nandc_irq_init mov r1, r5 mov r2, r5 mov r3, #2048 - ldr r0, [r6, #464] + ldr r0, [r6, #2000] bl FlashSramLoadStore bl rknand_flash_cs_init - ldr r0, [r4, #144] + ldr r0, [r4, #1680] bl FlashInit subs r4, r0, #0 - bne .L3702 + bne .L3681 bl FtlInit -.L3702: +.L3681: mov r1, r4 - ldr r0, .L3705+8 + ldr r0, .L3684+12 bl printk mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L3703: +.L3682: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L3706: +.L3685: .align 2 -.L3705: +.L3684: .word .LANCHOR4 .word .LANCHOR2 + .word .LANCHOR4+2004 .word .LC158 .fnend .size rk_ftl_init, .-rk_ftl_init @@ -22324,77 +21982,74 @@ rk_ftl_init: .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3724 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 r2, [r3] - str r3, [sp] - str r2, [sp, #60] - ldr r2, .L3724+4 - ldrb r1, [r2, #140] @ zero_extendqisi2 - cmp r1, #0 - beq .L3707 - ldr r9, .L3724+8 - mov r6, r2 - ldr r4, .L3724+12 - movw r5, #4097 - ldr r0, .L3724+16 - ldrh r8, [r9] - ldr r3, [r4, #-4060] - mov r7, r8, asl #1 - mov r1, r8 - ldrh r2, [r3, r7] + .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 + ldrh r7, [r8, r3] + ldr r3, [r4, #-3548] + mov r6, r7, asl #1 + mov r1, r7 + ldrh r2, [r3, r6] bl printk - sub r3, r4, #4032 + sub r3, r4, #3520 ldrh r0, [r3, #-8] bl FtlGcRefreshOpenBlock - sub r3, r4, #3984 + sub r3, r4, #3472 ldrh r0, [r3, #-8] bl FtlGcRefreshOpenBlock - ldr r0, .L3724+20 + ldr r0, .L3702+16 bl allocate_new_data_superblock - ldr r0, .L3724+24 + ldr r0, .L3702+20 bl allocate_new_data_superblock - str r9, [sp, #4] -.L3709: - subs r5, r5, #1 - beq .L3713 +.L3688: + subs r9, r9, #1 + beq .L3692 mov r0, #1 mov r1, r0 bl ftl_do_gc - ldr r3, [r4, #-4060] - ldrh r3, [r3, r7] + ldr r3, [r4, #-3548] + ldrh r3, [r3, r6] cmp r3, #0 - bne .L3709 -.L3713: - ldr r3, [r4, #-4060] - mov r1, r8 - ldr r0, .L3724+16 - ldrh r2, [r3, r7] + bne .L3688 +.L3692: + ldr r3, [r4, #-3548] + mov r1, r7 + ldr r0, .L3702+12 + ldrh r2, [r3, r6] bl printk - ldr r3, [r4, #-4060] - ldrh r5, [r3, r7] - cmp r5, #0 - bne .L3711 - add r0, sp, #64 - movw r10, #65535 + ldr r3, [r4, #-3548] + ldrh r10, [r3, r6] + cmp r10, #0 + bne .L3690 + add r0, sp, #48 mov fp, #36 - strh r8, [r0, #-52]! @ movhi + strh r7, [r0, #-48]! @ movhi bl make_superblock - movw r3, #1804 - ldr r9, [r6, #4056] - ldrh lr, [r6, r3] - mov r3, r5 + movw r3, #2316 + ldrh lr, [r5, r3] + mov r5, r10 + ldr r3, .L3702+8 + ldr r9, [r3, #-3616] + mov r3, r10 mov ip, r3 - add r0, sp, #26 -.L3714: + movw r10, #65535 + add r0, sp, #14 +.L3693: uxth r2, r3 cmp r2, lr - bcs .L3723 + bcs .L3701 ldrh r2, [r0, #2]! add r3, r3, #1 cmp r2, r10 @@ -22404,46 +22059,38 @@ ftl_fix_nand_power_lost_error: uxthne r5, r5 stmneib r1, {r2, ip} strne ip, [r1, #12] - b .L3714 -.L3723: - ldr r3, [r4, #-4060] - mov r1, r8 - ldr r0, .L3724+28 - ldrh r2, [r3, r7] + b .L3693 +.L3701: + ldr r3, [r4, #-3548] + mov r1, r7 + ldr r0, .L3702+24 + ldrh r2, [r3, r6] bl printk mov r1, #0 mov r2, r5 - ldr r0, [r6, #4056] + ldr r0, [r4, #-3616] bl FlashEraseBlocks - ldr r0, [r6, #4056] + ldr r0, [r4, #-3616] mov r1, #1 mov r2, r5 bl FlashEraseBlocks -.L3711: - ldr r2, [sp, #4] - mvn r3, #0 - strh r3, [r2] @ movhi -.L3707: - ldr r3, [sp] - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L3717 - bl __stack_chk_fail -.L3717: - add sp, sp, #68 +.L3690: + movw r3, #1844 + 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} -.L3725: +.L3703: .align 2 -.L3724: - .word __stack_chk_guard +.L3702: .word .LANCHOR0 - .word .LANCHOR4+308 + .word .LANCHOR4 .word .LANCHOR2 .word .LC159 - .word .LANCHOR2-4040 - .word .LANCHOR2-3992 + .word .LANCHOR2-3528 + .word .LANCHOR2-3480 .word .LC160 .fnend .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error @@ -22463,46 +22110,44 @@ rk_ftl_garbage_collect: .type ftl_write, %function ftl_write: .fnstart - @ args = 0, pretend = 0, frame = 104 + @ args = 0, pretend = 0, frame = 96 @ 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 #108 - sub sp, sp, #108 - ldr r9, .L3801 + .pad #100 + sub sp, sp, #100 + ldr r10, .L3778 str r3, [sp, #4] - ldr r3, .L3801+4 - ldr r3, [r3] - str r3, [sp, #100] - ldr r3, [r9, #4052] + ldr r3, [r10, #-3620] cmp r3, #0 - bne .L3769 + bne .L3746 mov r8, r2 - ldr r2, .L3801+8 + ldr r2, .L3778+4 ldr r2, [r2, #504] cmn r2, #1 moveq r0, r3 - beq .L3728 + beq .L3706 cmp r0, #16 mov r7, r1 - bne .L3729 + bne .L3707 add r0, r1, #256 ldr r2, [sp, #4] mov r1, r8 bl FtlVendorPartWrite - b .L3728 -.L3729: - ldr r3, [r9, #1912] + b .L3706 +.L3707: + ldr fp, .L3778+8 add r5, r1, r8 + ldr r3, [fp, #2424] cmp r5, r3 mvnhi r0, #0 - bhi .L3728 - ldr r6, .L3801+12 + bhi .L3706 + ldr r6, .L3778+12 mov r3, #2048 mov r0, r1 - str r3, [r6, #472] - movw r3, #1878 - ldrh r4, [r9, r3] + str r3, [r6, #2008] + movw r3, #2390 + ldrh r4, [fp, r3] mov r1, r4 bl __aeabi_uidiv mov r1, r4 @@ -22515,129 +22160,128 @@ ftl_write: rsb r5, r2, r0 add r3, r5, #1 str r3, [sp] - ldr r3, .L3801+16 - ldr r1, [sp] - ldr r2, [r3, #-3872] - add r2, r1, r2 - ldr r1, [r9, #1924] - str r2, [r3, #-3872] - ldr r2, [r3, #-3856] - add r2, r8, r2 - str r2, [r3, #-3856] - movcs r2, #1 - movcc r2, #0 - cmp r1, #0 - str r2, [sp, #20] - beq .L3731 - mov r2, #36 - ldr r10, [r9, #1928] - mul r2, r2, r1 - ldr r1, [sp, #8] - sub r2, r2, #36 - add r10, r10, r2 - ldr r2, [r10, #16] - cmp r1, r2 - bne .L3732 - ldr r2, [r3, #-3868] + ldr r2, [sp] + ldr r3, [r10, #-3360] + add r3, r2, r3 + ldr r2, [fp, #2436] + str r3, [r10, #-3360] + ldr r3, [r10, #-3344] + add r3, r8, r3 + str r3, [r10, #-3344] + movcs r3, #1 + movcc r3, #0 + cmp r2, #0 + str r3, [sp, #20] + beq .L3709 + mov r3, #36 + ldr r9, [fp, #2440] + 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] mov r1, r4 mov r0, r7 - add r2, r2, #1 - str r2, [r3, #-3868] - ldr r3, [r6, #476] add r3, r3, #1 - str r3, [r6, #476] + str r3, [r10, #-3356] + ldr r3, [r6, #2012] + add r3, r3, #1 + str r3, [r6, #2012] bl __aeabi_uidivmod - ldr r0, [r10, #8] + ldr r0, [r9, #8] rsb r4, r1, r4 add r0, r0, r1, asl #9 cmp r4, r8 ldr r1, [sp, #4] movcs r4, r8 - mov r9, r4, asl #9 - mov r2, r9 + mov r10, r4, asl #9 + mov r2, r10 bl ftl_memcpy cmp r5, #0 - bne .L3733 - ldr r3, [r6, #476] + bne .L3711 + ldr r3, [r6, #2012] cmp r3, #2 - ble .L3769 -.L3733: + ble .L3746 +.L3711: ldr r3, [sp, #4] rsb r8, r4, r8 add r7, r7, r4 str r5, [sp] - add r3, r3, r9 + add r3, r3, r10 str r3, [sp, #4] ldr r3, [sp, #8] add r3, r3, #1 str r3, [sp, #8] -.L3732: +.L3710: mov r3, #0 - str r3, [r6, #476] -.L3731: + str r3, [r6, #2012] +.L3709: ldr r0, [sp, #8] ldr r1, [sp, #28] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3734 + beq .L3712 bl FtlCacheWriteBack -.L3734: - ldr r5, .L3801+20 +.L3712: + ldr r5, .L3778+16 mov r3, #0 - ldr r4, .L3801 + ldr r4, .L3778+8 str r3, [sp, #12] - str r5, [r6, #452] + str r5, [r6, #1988] ldr r6, [sp, #8] mov r10, r4 str r3, [sp, #32] -.L3735: +.L3713: ldr r3, [sp] cmp r3, #0 - beq .L3800 + beq .L3777 ldrh r2, [r5, #4] cmp r2, #0 - bne .L3736 - ldr r3, .L3801+20 - ldr r9, .L3801+8 + bne .L3714 + ldr r3, .L3778+16 + ldr r9, .L3778+4 cmp r5, r3 - bne .L3737 + bne .L3715 add r0, r3, #48 ldrh r5, [r0, #4] cmp r5, #0 - bne .L3738 + bne .L3716 bl allocate_new_data_superblock - str r5, [r9, #3292] -.L3738: - ldr r0, .L3801+20 + str r5, [r9, #3356] +.L3716: + ldr r0, .L3778+16 bl allocate_new_data_superblock - ldr r3, [r9, #3292] + ldr r3, [r9, #3356] cmp r3, #0 - ldrne r5, .L3801+24 - bne .L3739 -.L3740: - ldr r5, .L3801+20 - b .L3739 -.L3737: + ldrne r5, .L3778+20 + bne .L3717 +.L3718: + ldr r5, .L3778+16 + b .L3717 +.L3715: ldrh r3, [r3, #4] - str r2, [r9, #3292] + str r2, [r9, #3356] cmp r3, #0 - bne .L3740 + bne .L3718 mov r0, r5 bl allocate_new_data_superblock -.L3739: +.L3717: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3741 + bne .L3719 mov r0, r5 bl allocate_new_data_superblock -.L3741: - ldr r3, .L3801+12 - str r5, [r3, #452] -.L3736: - ldr r2, .L3801+16 - ldr r1, [r4, #1924] +.L3719: + ldr r3, .L3778+12 + str r5, [r3, #1988] +.L3714: + ldr r2, .L3778 + ldr r1, [r4, #2436] ldrh r3, [r5, #4] - ldr r2, [r2, #-2080] + ldr r2, [r2, #-544] rsb r2, r1, r2 cmp r3, r2 movcs r3, r2 @@ -22646,15 +22290,15 @@ ftl_write: movcs r3, r2 str r3, [sp, #44] mov r3, #0 -.L3798: +.L3775: str r3, [sp, #16] ldr r3, [sp, #16] ldr r2, [sp, #44] cmp r3, r2 - beq .L3743 + beq .L3721 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3743 + beq .L3721 ldr r3, [sp, #28] ldr r2, [sp, #16] rsb ip, r3, r6 @@ -22666,42 +22310,42 @@ ftl_write: moveq r3, #0 andne r3, r3, #1 cmp r3, #0 - beq .L3744 - ldr r3, .L3801+28 + beq .L3722 + ldr r3, .L3778+24 ldrh r2, [r3] add r3, r8, r7 mls r3, r2, r6, r3 cmp r3, r2 - bne .L3743 -.L3744: - add r1, sp, #60 + bne .L3721 +.L3722: + add r1, sp, #56 mov r2, #0 mov r0, r6 str ip, [sp, #52] bl log2phys mov r0, r5 bl get_new_active_ppa - ldr r2, [r4, #1924] - ldr r1, [r4, #1928] + ldr r2, [r4, #2436] + ldr r1, [r4, #2440] mov r3, #36 - ldr fp, .L3801+32 + ldr fp, .L3778+28 mla r1, r3, r2, r1 ldrh r2, [fp] str r6, [r1, #16] str r3, [sp, #48] - ldr r3, [r4, #1924] + ldr r3, [r4, #2436] str r0, [r1, #4] - ldr r0, .L3801+16 + ldr r0, .L3778 mul lr, r3, r2 bic r3, lr, #3 str r3, [sp, #36] - ldr r3, [r0, #-2032] + ldr r3, [r0, #-496] ldr ip, [sp, #36] ldrh lr, [fp, #-2] add r9, r3, ip str r3, [sp, #40] - ldr r3, [r4, #1924] - ldr r0, [r0, #-2052] + ldr r3, [r4, #2436] + ldr r0, [r0, #-516] str r9, [r1, #12] mul lr, r3, lr bic lr, lr, #3 @@ -22718,10 +22362,10 @@ ftl_write: str r3, [sp, #24] orrs r3, r3, ip ldr r3, [sp, #48] - beq .L3745 + beq .L3723 ldr r3, [sp, #24] cmp r3, #0 - beq .L3746 + beq .L3724 ldrh fp, [fp, #-6] mov r0, r7 mov r1, fp @@ -22733,11 +22377,11 @@ ftl_write: movcc r3, fp movcs r3, r8 str r3, [sp, #12] - b .L3747 -.L3746: + b .L3725 +.L3724: cmp ip, #0 - beq .L3747 - ldr r2, .L3801+28 + beq .L3725 + ldr r2, .L3778+24 add r3, r8, r7 ldrh r2, [r2] smulbb r2, r2, r6 @@ -22746,17 +22390,17 @@ ftl_write: str r3, [sp, #12] ldr r3, [sp, #24] str r3, [sp, #32] -.L3747: - ldr r3, .L3801+28 +.L3725: + ldr r3, .L3778+24 ldr r2, [sp, #12] ldrh r3, [r3] cmp r2, r3 - bne .L3748 + bne .L3726 ldr r3, [sp, #24] - ldr r0, [r10, #1928] + ldr r0, [r10, #2440] cmp r3, #0 moveq r3, r2 - ldr r2, [r10, #1924] + ldr r2, [r10, #2436] muleq r1, r6, r3 ldreq r3, [sp, #4] ldrne r1, [sp, #4] @@ -22767,103 +22411,103 @@ ftl_write: mov r3, #36 mla r3, r3, r2, r0 strne r1, [r3, #8] - bne .L3751 + bne .L3729 ldr r0, [r3, #8] - ldr r3, .L3801+36 + ldr r3, .L3778+32 ldrh r2, [r3] - b .L3796 -.L3748: - ldr r2, [sp, #60] + b .L3773 +.L3726: + ldr r2, [sp, #56] mov r3, #36 cmn r2, #1 - beq .L3752 - ldr r1, [r4, #1928] - add r0, sp, #64 - str r2, [sp, #68] - ldr r2, [r4, #1924] - str r6, [sp, #80] + beq .L3730 + ldr r1, [r4, #2440] + add r0, sp, #60 + str r2, [sp, #64] + ldr r2, [r4, #2436] + str r6, [sp, #76] mla r3, r3, r2, r1 mov r1, #1 ldr r2, [r3, #8] ldr r3, [r3, #12] - str r2, [sp, #72] + str r2, [sp, #68] mov r2, #0 - str r3, [sp, #76] + str r3, [sp, #72] bl FlashReadPages - ldr r3, [sp, #64] + ldr r3, [sp, #60] cmn r3, #1 - ldr r3, .L3801+16 - ldreq r2, [r3, #-3676] + ldr r3, .L3778 + ldreq r2, [r3, #-3164] addeq r2, r2, #1 - streq r2, [r3, #-3676] - beq .L3755 + streq r2, [r3, #-3164] + beq .L3733 ldr r2, [r9, #8] cmp r2, r6 - beq .L3755 - ldr r2, [r3, #-3676] - ldr r0, .L3801+40 + beq .L3733 + ldr r2, [r3, #-3164] + ldr r0, .L3778+36 add r2, r2, #1 - str r2, [r3, #-3676] + str r2, [r3, #-3164] mov r2, r6 ldr r1, [r9, #8] bl printk - b .L3755 -.L3752: - ldr r2, [r4, #1924] - ldr r1, [r4, #1928] + b .L3733 +.L3730: + ldr r2, [r4, #2436] + ldr r1, [r4, #2440] mla r3, r3, r2, r1 mov r1, #0 ldr r0, [r3, #8] - ldr r3, .L3801+36 + ldr r3, .L3778+32 ldrh r2, [r3] bl ftl_memset -.L3755: +.L3733: ldr r3, [sp, #24] cmp r3, #0 mov r3, #36 - beq .L3756 - ldr r1, [r4, #1928] - ldr r2, [r4, #1924] + beq .L3734 + ldr r1, [r4, #2440] + ldr r2, [r4, #2436] mla r3, r3, r2, r1 ldr r1, [sp, #4] ldr r0, [r3, #8] ldr r3, [sp, #32] add r0, r0, r3, asl #9 - b .L3799 -.L3756: - ldr r1, [r4, #1924] - ldr r2, [r4, #1928] + b .L3776 +.L3734: + ldr r1, [r4, #2436] + ldr r2, [r4, #2440] mla r3, r3, r1, r2 - ldr r2, .L3801+28 + ldr r2, .L3778+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 -.L3799: +.L3776: ldr r3, [sp, #12] mov r2, r3, asl #9 - b .L3796 -.L3745: + b .L3773 +.L3723: ldr r2, [sp, #20] cmp r2, #0 - ldr r2, [r4, #1924] - beq .L3757 - ldr r1, [r4, #1928] + ldr r2, [r4, #2436] + beq .L3735 + ldr r1, [r4, #2440] mla r3, r3, r2, r1 - ldr r2, .L3801+28 + ldr r2, .L3778+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 .L3751 -.L3757: - ldr r0, [r4, #1928] + b .L3729 +.L3735: + ldr r0, [r4, #2440] mla r3, r3, r2, r0 - ldr r2, .L3801+28 + ldr r2, .L3778+24 ldrh r1, [r2] ldrh r2, [fp, #-2] ldr r0, [r3, #8] @@ -22871,98 +22515,99 @@ ftl_write: ldr r3, [sp, #4] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3796: +.L3773: bl ftl_memcpy -.L3751: - ldr r3, .L3801+44 +.L3729: + ldr r3, .L3778+40 ldr r2, [sp, #40] ldr r1, [sp, #36] strh r3, [r2, r1] @ movhi - ldr r2, .L3801+16 + ldr r2, .L3778 str r6, [r9, #8] add r6, r6, #1 - ldr r3, [r2, #-3844] + ldr r3, [r2, #-3332] str r3, [r9, #4] add r3, r3, #1 cmn r3, #1 moveq r3, #0 - str r3, [r2, #-3844] - ldr r3, [sp, #60] + str r3, [r2, #-3332] + ldr r3, [sp, #56] str r3, [r9, #12] ldrh r3, [r5] strh r3, [r9, #2] @ movhi - ldr r3, [r4, #1924] + ldr r3, [r4, #2436] add r3, r3, #1 - str r3, [r4, #1924] + str r3, [r4, #2436] ldr r3, [sp, #16] add r3, r3, #1 - b .L3798 -.L3743: + b .L3775 +.L3721: ldr r3, [sp] ldr r2, [sp, #16] ldr r1, [sp, #20] rsb r3, r2, r3 - ldr r2, .L3801+16 + ldr r2, .L3778 str r3, [sp] - ldr r3, [r4, #1924] - ldr r2, [r2, #-2080] + ldr r3, [r4, #2436] + ldr r2, [r2, #-544] cmp r3, r2 orrcs r1, r1, #1 cmp r1, #0 - bne .L3761 + bne .L3739 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3761 -.L3763: + beq .L3739 +.L3741: mov r3, #0 str r3, [sp, #20] - b .L3735 -.L3761: + b .L3713 +.L3739: bl FtlCacheWriteBack mov r3, #0 - str r3, [r10, #1924] + str r3, [r10, #2436] ldr r3, [sp] cmp r3, #1 - bhi .L3735 - b .L3763 -.L3800: + bhi .L3713 + b .L3741 +.L3777: mov r0, r3 ldr r2, [sp, #8] ldr r3, [sp, #28] rsb r1, r2, r3 bl ftl_do_gc - ldr r3, .L3801+48 + ldr r3, .L3778+44 ldrh r3, [r3, #-12] cmp r3, #5 - bls .L3774 + bls .L3751 cmp r3, #31 - bhi .L3769 - ldr r3, .L3801 + bhi .L3746 + ldr r3, .L3778+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L3769 -.L3774: - ldr r5, .L3801+52 + bne .L3746 +.L3751: ldr r4, [sp] - ldr r6, .L3801+56 - add r7, r5, #620 -.L3787: + ldr r5, .L3778+48 + ldr r6, .L3778 + ldr r7, .L3778+52 +.L3764: ldrh r2, [r5] movw r3, #65535 cmp r2, r3 - bne .L3767 - ldrh r3, [r6] + bne .L3745 + ldrh r3, [r7] cmp r3, r2 - bne .L3767 - ldrh r2, [r7] + bne .L3745 + ldr r2, .L3778+56 + ldrh r2, [r2] cmp r2, r3 - bne .L3767 + bne .L3745 and r0, r4, #7 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3767: - ldr r3, .L3801+60 +.L3745: + ldr r3, .L3778+60 mov r0, #1 mov r1, r0 mov r2, #128 @@ -22972,50 +22617,42 @@ ftl_write: mov r0, #0 mov r1, #1 bl ftl_do_gc - ldr r3, .L3801 - ldr r3, [r3, #4052] + ldr r3, [r6, #-3620] cmp r3, #0 - bne .L3769 - ldr r3, .L3801+64 + bne .L3746 + ldr r3, .L3778+64 ldrh r3, [r3] cmp r3, #2 - bhi .L3769 + bhi .L3746 add r4, r4, #1 cmp r4, #256 - bne .L3787 -.L3769: + bne .L3764 +.L3746: mov r0, #0 -.L3728: - ldr r3, .L3801+4 - ldr r2, [sp, #100] - ldr r3, [r3] - cmp r2, r3 - beq .L3768 - bl __stack_chk_fail -.L3768: - add sp, sp, #108 +.L3706: + add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3802: +.L3779: .align 2 -.L3801: - .word .LANCHOR0 - .word __stack_chk_guard - .word .LANCHOR1 - .word .LANCHOR4 +.L3778: .word .LANCHOR2 - .word .LANCHOR2-4040 - .word .LANCHOR2-3992 - .word .LANCHOR0+1878 - .word .LANCHOR0+1884 - .word .LANCHOR0+1882 + .word .LANCHOR1 + .word .LANCHOR0 + .word .LANCHOR4 + .word .LANCHOR2-3528 + .word .LANCHOR2-3480 + .word .LANCHOR0+2390 + .word .LANCHOR0+2396 + .word .LANCHOR0+2394 .word .LC161 .word -3947 - .word .LANCHOR2-4032 - .word .LANCHOR2-3800 - .word .LANCHOR2-3182 - .word .LANCHOR2-3234 - .word .LANCHOR2-4044 + .word .LANCHOR2-3520 + .word .LANCHOR2-3288 + .word .LANCHOR2-2670 + .word .LANCHOR2-2668 + .word .LANCHOR2-2722 + .word .LANCHOR2-3532 .fnend .size ftl_write, .-ftl_write .align 2 @@ -23050,23 +22687,23 @@ FlashBootVendorWrite: mov r6, r0 mov r5, r1 bl rknand_device_lock - ldr r3, .L3809 + ldr r3, .L3786 ldr r3, [r3, #504] cmp r3, #1 mvnne r4, #0 - bne .L3806 + bne .L3783 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_write mov r4, r0 -.L3806: +.L3783: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L3810: +.L3787: .align 2 -.L3809: +.L3786: .word .LANCHOR1 .fnend .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -23118,31 +22755,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, .L3823 + ldr r4, .L3800 .pad #28 sub sp, sp, #28 - ldr r7, .L3823+4 + ldr r7, .L3800+4 mov r6, r0 mov r5, #0 - ldr r3, [r4, #-2064] + ldr r3, [r4, #-528] mov r9, r4 - str r3, [r4, #220] - ldr r3, [r4, #-2040] - str r3, [r4, #224] -.L3815: + str r3, [r4, #1756] + ldr r3, [r4, #-504] + str r3, [r4, #1760] +.L3792: ldrh r2, [r7] sxth r3, r5 cmp r3, r2 - bge .L3822 + bge .L3799 mov r1, #1 - ldr r0, .L3823+8 + ldr r0, .L3800+8 mov r2, r1 orr r3, r3, r8 - str r3, [r4, #216] + str r3, [r4, #1752] bl FlashReadPages - ldr r3, [r4, #224] + ldr r3, [r4, #1760] mov r1, r6 - ldr r0, .L3823+12 + ldr r0, .L3800+12 ldr r2, [r3] str r2, [sp] ldr r2, [r3, #4] @@ -23150,35 +22787,35 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #212] + ldr r2, [r4, #1748] str r3, [sp, #12] - ldr r3, [r4, #220] + ldr r3, [r4, #1756] ldr r3, [r3] str r3, [sp, #16] - ldr r3, [r4, #216] + ldr r3, [r4, #1752] bl printk - ldr r3, [r4, #224] + ldr r3, [r4, #1760] ldr r3, [r3] cmn r3, #1 - beq .L3816 - ldr r0, .L3823+16 + beq .L3793 + ldr r0, .L3800+16 mov r2, #4 - ldr r1, [r9, #-2064] + ldr r1, [r9, #-528] mov r3, #768 bl rknand_print_hex -.L3816: +.L3793: add r5, r5, #1 - b .L3815 -.L3822: + b .L3792 +.L3799: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3824: +.L3801: .align 2 -.L3823: +.L3800: .word .LANCHOR2 - .word .LANCHOR0+1874 - .word .LANCHOR2+212 + .word .LANCHOR0+2386 + .word .LANCHOR2+1748 .word .LC162 .word .LC163 .fnend @@ -23192,31 +22829,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, #1812 - ldr r6, .L3843 + movw r3, #2324 + ldr r6, .L3820 .pad #52 sub sp, sp, #52 - ldr r10, .L3843+4 + ldr r10, .L3820+4 ldrh r7, [r6, r3] add fp, r10, #18 -.L3826: +.L3803: ldrh r3, [r10] - ldr r4, .L3843+8 + ldr r4, .L3820+8 cmp r3, r7 - bls .L3839 - ldr r1, .L3843+12 + bls .L3816 + ldr r1, .L3820+12 mov r8, #0 - ldr r2, [r4, #-2076] + ldr r2, [r4, #-540] mov r5, r8 - ldr r3, [r4, #-3212] + ldr r3, [r4, #-2700] ldrh ip, [r1] - ldr r9, [r4, #-3208] + ldr r9, [r4, #-2696] ldrh r1, [r1, #80] str r1, [sp, #28] -.L3835: +.L3812: uxth r1, r8 cmp r1, ip - bcs .L3841 + bcs .L3818 mov r1, r7 ldrb r0, [fp, r8] @ zero_extendqisi2 str r3, [sp, #44] @@ -23230,7 +22867,7 @@ dump_map_info: ldr ip, [sp, #36] ldr r2, [sp, #40] ldr r3, [sp, #44] - bne .L3827 + bne .L3804 mov r0, #36 mov r1, r1, asl #10 mla r0, r0, r5, r2 @@ -23245,24 +22882,24 @@ dump_map_info: bic r1, r1, #3 add r1, r9, r1 str r1, [r0, #12] -.L3827: +.L3804: add r8, r8, #1 - b .L3835 -.L3841: + b .L3812 +.L3818: cmp r5, #0 - beq .L3830 - ldr r0, [r4, #-2076] + beq .L3807 + ldr r0, [r4, #-540] mov r1, r5 mov r2, #1 mov r8, #0 bl FlashReadPages mov r9, #36 -.L3831: +.L3808: uxth r3, r8 cmp r3, r5 - bcs .L3830 - ldr r3, [r4, #-2076] - ldr r0, .L3843+16 + bcs .L3807 + ldr r3, [r4, #-540] + ldr r0, .L3820+16 mla r3, r9, r8, r3 add r8, r8, #1 ldmib r3, {r2, r3, ip} @@ -23279,40 +22916,40 @@ dump_map_info: str r3, [sp, #16] ldr r3, [ip] bl printk - b .L3831 -.L3830: + b .L3808 +.L3807: add r7, r7, #1 uxth r7, r7 - b .L3826 -.L3839: - ldr r9, .L3843+20 + b .L3803 +.L3816: + ldr r9, .L3820+20 mov r8, #0 -.L3834: - ldr r3, .L3843+24 +.L3811: + ldr r7, .L3820+8 sxth r5, r8 - ldr r7, .L3843+8 + sub r3, r7, #392 ldrh r3, [r3] cmp r5, r3 - bge .L3837 + bge .L3814 mov r5, r5, asl #1 mov r7, #0 -.L3838: +.L3815: ldrh r2, [r9] sxth r3, r7 add r7, r7, #1 cmp r3, r2 - bge .L3842 - ldr r2, [r4, #-2012] + bge .L3819 + ldr r2, [r4, #-476] mov r1, #1 - ldr r0, .L3843+28 + ldr r0, .L3820+24 ldrh r2, [r2, r5] orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r4, #216] + str r3, [r4, #1752] bl FlashReadPages - ldr r3, [r4, #224] - ldr r1, [r4, #-2012] - ldr r2, [r4, #220] + ldr r3, [r4, #1760] + ldr r1, [r4, #-476] + ldr r2, [r4, #1756] ldr r0, [r3] ldrh r1, [r1, r5] str r0, [sp] @@ -23321,50 +22958,49 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L3843+32 + ldr r0, .L3820+28 str r3, [sp, #12] ldr r3, [r2] str r3, [sp, #16] ldr r3, [r2, #4] str r3, [sp, #20] - ldr r2, [r4, #212] - ldr r3, [r4, #216] + ldr r2, [r4, #1748] + ldr r3, [r4, #1752] bl printk - b .L3838 -.L3842: + b .L3815 +.L3819: add r8, r8, #1 - b .L3834 -.L3837: - ldr r1, [r7, #-2012] - movw r4, #1908 - ldr r3, [r6, #1900] + b .L3811 +.L3814: + ldr r1, [r7, #-476] + movw r4, #2420 + ldr r3, [r6, #2412] mov r2, #2 - ldr r0, .L3843+36 + ldr r0, .L3820+32 bl rknand_print_hex - ldr r1, [r7, #-1992] + ldr r1, [r7, #-456] ldrh r3, [r6, r4] mov r2, #4 - ldr r0, .L3843+40 + ldr r0, .L3820+36 bl rknand_print_hex - ldr r0, .L3843+44 - ldr r1, [r7, #-1988] + ldr r0, .L3820+40 + ldr r1, [r7, #-452] 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 -.L3844: +.L3821: .align 2 -.L3843: +.L3820: .word .LANCHOR0 - .word .LANCHOR0+1814 + .word .LANCHOR0+2326 .word .LANCHOR2 - .word .LANCHOR0+1804 + .word .LANCHOR0+2316 .word .LC164 - .word .LANCHOR0+1874 - .word .LANCHOR2-1928 - .word .LANCHOR2+212 + .word .LANCHOR0+2386 + .word .LANCHOR2+1748 .word .LC111 .word .LC165 .word .LC166 @@ -23379,15 +23015,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, .L3847 - ldr r2, [r3, #1744] - ldr r3, .L3847+4 + ldr r3, .L3824 + ldr r2, [r3, #2256] + ldr r3, .L3824+4 cmp r2, r3 bxne lr b flash_enter_slc_mode -.L3848: +.L3825: .align 2 -.L3847: +.L3824: .word .LANCHOR0 .word 1446522928 .fnend @@ -23400,15 +23036,15 @@ flash_boot_exit_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L3851 - ldr r2, [r3, #1744] - ldr r3, .L3851+4 + ldr r3, .L3828 + ldr r2, [r3, #2256] + ldr r3, .L3828+4 cmp r2, r3 bxne lr b flash_exit_slc_mode -.L3852: +.L3829: .align 2 -.L3851: +.L3828: .word .LANCHOR0 .word 1446522928 .fnend @@ -23422,14 +23058,14 @@ IdBlockReadData: 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, .L3862 + ldr r4, .L3839 mov r8, r1 .pad #20 sub sp, sp, #20 mov r1, r6 mov fp, r2 - ldr r0, .L3862+4 - ldr r3, [r4, #692] + ldr r0, .L3839+4 + ldr r3, [r4, #1204] mov r2, r8 ldr r5, [r4, #4] mov r7, #0 @@ -23445,9 +23081,9 @@ IdBlockReadData: rsb r3, r1, r6 str r3, [sp] ubfx ip, ip, #2, #2 -.L3854: +.L3831: cmp r7, r8 - bcs .L3861 + bcs .L3838 add r2, r7, r10 ldrb r1, [r4, #140] @ zero_extendqisi2 ubfx r2, r2, #2, #16 @@ -23456,26 +23092,26 @@ IdBlockReadData: add r3, r4, r2, asl #1 uxth r5, r5 ldrh r3, [r3, #144] - beq .L3855 - ldr r1, .L3862 - ldr r0, .L3862+8 - ldr r1, [r1, #1744] + beq .L3832 + ldr r1, .L3839 + ldr r0, .L3839+8 + ldr r1, [r1, #2256] cmp r1, r0 moveq r3, r2 -.L3855: +.L3832: ldr r2, [sp] add r7, r5, r7 add r2, ip, r2 - ldrb ip, [r4, #1792] @ zero_extendqisi2 + ldrb ip, [r4, #2304] @ zero_extendqisi2 uxth r7, r7 mla r3, r9, r3, r2 - ldr r2, [r4, #692] + ldr r2, [r4, #1204] str ip, [sp, #4] ldrb r1, [r2, #9] @ zero_extendqisi2 str r3, [sp, #12] - ldr r3, .L3862+12 + ldr r3, .L3839+12 str r1, [sp, #8] - ldrb r0, [r3, #174] @ zero_extendqisi2 + ldrb r0, [r3, #1710] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 bl flash_boot_enter_slc_mode @@ -23495,20 +23131,20 @@ IdBlockReadData: mov r0, ip bl FlashBchSel mov ip, #0 - b .L3854 -.L3861: + b .L3831 +.L3838: mov r1, r6 mov r2, r8 mov r3, #0 - ldr r0, .L3862+16 + 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} -.L3863: +.L3840: .align 2 -.L3862: +.L3839: .word .LANCHOR0 .word .LC168 .word 1446522928 @@ -23521,42 +23157,39 @@ IdBlockReadData: .type write_idblock, %function write_idblock: .fnstart - @ args = 0, pretend = 0, frame = 128 + @ args = 0, pretend = 0, frame = 120 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3911 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #140 - sub sp, sp, #140 - ldr r3, [r3] mov r4, r0 - ldr r7, .L3911+4 + ldr r7, .L3887 + .pad #132 + sub sp, sp, #132 mov r0, #256000 mov r6, r1 mov r5, r2 - str r3, [sp, #132] - ldr r3, [r7, #692] + ldr r3, [r7, #1204] ldr r8, [r7, #4] ldrb r9, [r3, #9] @ zero_extendqisi2 bl ftl_malloc subs r3, r0, #0 str r3, [sp, #12] - beq .L3889 + beq .L3865 add r4, r4, #508 add r4, r4, #3 mov r4, r4, lsr #9 cmp r4, #8 - bls .L3887 + bls .L3863 cmp r4, #500 - bhi .L3889 - b .L3866 -.L3887: + bhi .L3865 + b .L3843 +.L3863: mov r4, #8 -.L3866: +.L3843: ldr r2, [r6] - ldr r3, .L3911+8 + ldr r3, .L3887+4 cmp r2, r3 - bne .L3889 + bne .L3865 smulbb r3, r9, r8 uxth fp, r3 sub r0, fp, #1 @@ -23568,10 +23201,10 @@ write_idblock: str r0, [sp, #32] add r0, r6, #254976 add r0, r0, #512 -.L3870: +.L3847: ldr r1, [r0, #-4]! cmp r1, #0 - bne .L3867 + bne .L3844 ldr r1, [r6, r3, asl #2] add r3, r3, #1 cmp r3, #4096 @@ -23579,32 +23212,32 @@ write_idblock: movhi r3, #0 cmp r2, #4096 str r1, [r0, #512] - bne .L3870 - b .L3869 -.L3867: - ldr r0, .L3911+12 + bne .L3847 + b .L3846 +.L3844: + ldr r0, .L3887+8 bl printk -.L3869: +.L3846: mov r1, r5 mov r3, #5 - ldr r0, .L3911+16 + ldr r0, .L3887+12 mov r2, #4 bl rknand_print_hex ldrb r2, [r7, #1] @ zero_extendqisi2 ldr r1, [r6, #512] sub r5, r5, #4 - ldr r0, .L3911+20 + ldr r0, .L3887+16 bl printk - ldr r2, .L3911+24 + ldr r2, .L3887+20 ldrh r3, [r7, #138] mov r1, r4 - ldr r0, .L3911+28 - ldr r2, [r2, #168] + ldr r0, .L3887+24 + ldr r2, [r2, #1704] str r2, [sp] mov r2, r4 bl printk ldrb r3, [r7, #1] @ zero_extendqisi2 - ldr r7, .L3911+4 + ldr r7, .L3887 ldr r2, [r6, #512] cmp r2, r3 strhi r3, [r6, #512] @@ -23613,16 +23246,16 @@ write_idblock: mov r3, #0 str r3, [sp, #20] str r3, [sp, #16] -.L3884: +.L3861: ldr r2, [r5, #4] ldrb r3, [r7, #1] @ zero_extendqisi2 - ldr r9, .L3911+4 + ldr r9, .L3887 cmp r2, r3 - bcs .L3872 - ldr r3, .L3911+24 - ldr r3, [r3, #168] + bcs .L3849 + ldr r3, .L3887+20 + ldr r3, [r3, #1704] cmp r2, r3 - bcc .L3872 + bcc .L3849 ldr r3, [sp, #32] ldr r1, [sp, #32] cmp r3, #1 @@ -23632,23 +23265,23 @@ write_idblock: ldr r3, [sp, #16] cmp r3, #0 cmpne r1, #1 - bls .L3873 + bls .L3850 ldr r3, [r5] add r3, r3, #1 cmp r2, r3 - beq .L3872 -.L3873: + beq .L3849 +.L3850: mov r1, #0 mov r2, #512 ldr r0, [sp, #12] bl memset ldr r8, [r5, #4] - ldr r3, [r9, #692] + ldr r3, [r9, #1204] mov r2, r4 ldr r9, [r9, #4] mul r8, r8, fp ldrb r3, [r3, #9] @ zero_extendqisi2 - ldr r0, .L3911+32 + ldr r0, .L3887+28 mov r1, r8 str r3, [sp, #24] ldrh r3, [sp, #24] @@ -23666,16 +23299,16 @@ write_idblock: bl FlashEraseBlock cmp r4, r9 movls r10, #1 - bls .L3874 + bls .L3851 mov r0, #0 add r1, r8, r9 mov r2, r0 mov r10, #2 bl FlashEraseBlock -.L3874: +.L3851: mov r0, #0 bl flash_boot_exit_slc_mode - ldr r3, [r7, #692] + ldr r3, [r7, #1204] ldrh r0, [r3, #10] ldrb r1, [r3, #12] @ zero_extendqisi2 mov r0, r0, asl #2 @@ -23690,63 +23323,63 @@ write_idblock: rsb r3, r1, r8 str r6, [sp, #28] str r3, [sp, #40] -.L3875: +.L3852: ldr r3, [sp, #52] cmp r9, r3 - bcs .L3910 + bcs .L3886 add r3, r9, ip ubfx r3, r3, #2, #16 cmp r3, #0 - beq .L3876 + beq .L3853 add r2, r3, #1 add r1, r7, r2, asl #1 ldrh r10, [r1, #144] ldrb r1, [r7, #140] @ zero_extendqisi2 cmp r1, #0 - beq .L3877 - ldr r1, [r7, #1744] - ldr r0, .L3911+36 + beq .L3854 + ldr r1, [r7, #2256] + ldr r0, .L3887+32 cmp r1, r0 moveq r10, r2 -.L3877: +.L3854: sub r10, r10, #-1073741823 mov r10, r10, asl #2 - str r10, [sp, #68] -.L3876: + str r10, [sp, #64] +.L3853: movw r2, #61424 - str r2, [sp, #72] + str r2, [sp, #68] add r2, r7, r3, asl #1 ldrh r10, [r2, #144] ldrb r2, [r7, #140] @ zero_extendqisi2 cmp r2, #0 - beq .L3878 - ldr r2, [r7, #1744] - ldr r1, .L3911+36 + beq .L3855 + ldr r2, [r7, #2256] + ldr r1, .L3887+32 cmp r2, r1 moveq r10, r3 -.L3878: +.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, .L3911+4 - ldrb r3, [r3, #1792] @ zero_extendqisi2 + ldr r3, .L3887 + ldrb r3, [r3, #2304] @ zero_extendqisi2 str r2, [sp, #56] str r3, [sp, #48] - ldr r3, .L3911+24 - ldrb r0, [r3, #174] @ zero_extendqisi2 + ldr r3, .L3887+20 + ldrb r0, [r3, #1710] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 bl flash_boot_enter_slc_mode - ldr r3, .L3911+4 - ldr r3, [r3, #692] + ldr r3, .L3887 + ldr r3, [r3, #1204] ldrb r1, [r3, #9] @ zero_extendqisi2 ldr r2, [sp, #56] mov r0, r2 bl __aeabi_uidiv - add r3, sp, #68 + add r3, sp, #64 mov r1, r0 ldr r2, [sp, #28] mov r0, #0 @@ -23767,12 +23400,12 @@ write_idblock: ldr ip, [sp, #60] add r3, r3, #2048 str r3, [sp, #28] - b .L3875 -.L3910: + b .L3852 +.L3886: mov r1, r8 mov r3, #0 mov r2, r4 - ldr r0, .L3911+40 + ldr r0, .L3887+36 bl printk ldr r0, [r5, #4] mov r1, r4 @@ -23782,7 +23415,7 @@ write_idblock: bl IdBlockReadData mov r3, r6 ldr r2, [sp, #12] -.L3883: +.L3860: mov r10, r2 mov r9, r3 ldr r0, [r10] @@ -23790,13 +23423,13 @@ write_idblock: ldr r1, [r9] add r3, r3, #4 cmp r0, r1 - beq .L3880 + beq .L3857 mov r1, #0 mov r2, #512 ldr r0, [sp, #12] bl memset ldr r3, [r10] - ldr r0, .L3911+44 + ldr r0, .L3887+40 str r3, [sp] ldr r3, [r9] bic r9, r8, #255 @@ -23806,13 +23439,13 @@ write_idblock: mov r3, r8 ldr r2, [r5, #4] bl printk - ldr r0, .L3911+48 + ldr r0, .L3887+44 add r1, r6, r9 mov r2, #4 mov r3, #256 bl rknand_print_hex mov r2, #4 - ldr r0, .L3911+52 + ldr r0, .L3887+48 ldr r3, [sp, #12] add r1, r3, r9 mov r3, #256 @@ -23826,62 +23459,54 @@ write_idblock: bl FlashEraseBlock ldr r3, [sp, #44] cmp r3, #0 - beq .L3881 + beq .L3858 ldr r1, [r5, #4] mov r0, #0 mov r2, r0 mla r1, r1, fp, fp bl FlashEraseBlock -.L3881: +.L3858: mov r0, #0 bl flash_boot_exit_slc_mode - ldr r0, .L3911+56 + ldr r0, .L3887+52 ldr r1, [r5, #4] bl printk ldr r3, [sp, #36] cmp r8, r3 - bcc .L3872 - b .L3882 -.L3880: + bcc .L3849 + b .L3859 +.L3857: ldr r1, [sp, #36] add r8, r8, #1 cmp r8, r1 - bne .L3883 -.L3882: + bne .L3860 +.L3859: ldr r3, [sp, #20] add r3, r3, #1 str r3, [sp, #20] -.L3872: +.L3849: ldr r3, [sp, #16] add r5, r5, #4 add r3, r3, #1 str r3, [sp, #16] cmp r3, #5 - bne .L3884 + bne .L3861 ldr r0, [sp, #12] bl ftl_free ldr r3, [sp, #20] clz r0, r3 mov r0, r0, lsr #5 rsb r0, r0, #0 - b .L3865 -.L3889: - mvn r0, #0 + b .L3842 .L3865: - ldr r3, .L3911 - ldr r2, [sp, #132] - ldr r3, [r3] - cmp r2, r3 - beq .L3885 - bl __stack_chk_fail -.L3885: - add sp, sp, #140 + mvn r0, #0 +.L3842: + add sp, sp, #132 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3912: +.L3888: .align 2 -.L3911: - .word __stack_chk_guard +.L3887: .word .LANCHOR0 .word -52655045 .word .LC170 @@ -23906,24 +23531,24 @@ CRC_32: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L3917 + ldr ip, .L3893 add r1, r0, r1 mov r2, #0 -.L3914: +.L3890: cmp r0, r1 - beq .L3916 + beq .L3892 ldrb r3, [r0], #1 @ zero_extendqisi2 eor r3, r3, r2, lsr #24 add r3, ip, r3, asl #2 - ldr r3, [r3, #3296] + ldr r3, [r3, #3360] eor r2, r3, r2, asl #8 - b .L3914 -.L3916: + b .L3890 +.L3892: mov r0, r2 bx lr -.L3918: +.L3894: .align 2 -.L3917: +.L3893: .word .LANCHOR1 .fnend .size CRC_32, .-CRC_32 @@ -23932,147 +23557,137 @@ CRC_32: .type write_loader_lba, %function write_loader_lba: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ 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} cmp r0, #64 - ldr r6, .L3943 - .pad #56 - sub sp, sp, #56 + stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} mov r5, r0 - mov r7, r1 - mov r9, r2 - ldr r4, .L3943+4 - ldr r3, [r6] - str r3, [sp, #52] - bne .L3920 + .pad #52 + sub sp, sp, #52 + mov r6, r1 + mov r8, r2 + ldr r4, .L3918 + bne .L3896 ldr r2, [r2] - ldr r3, .L3943+8 + ldr r3, .L3918+4 cmp r2, r3 - bne .L3920 + bne .L3896 mov r0, #256000 mov r3, #1 - strb r3, [r4, #480] + strb r3, [r4, #2016] bl ftl_malloc mov r1, #0 mov r2, #256000 - str r0, [r4, #484] + str r0, [r4, #2020] bl ftl_memset - str r5, [r4, #488] -.L3920: - str r7, [sp] + str r5, [r4, #2024] +.L3896: + str r6, [sp] mov r3, r5 - ldr r0, .L3943+12 - ldr r1, [r4, #484] - ldr r2, [r9] + ldr r0, .L3918+8 + ldr r1, [r4, #2020] + ldr r2, [r8] bl printk - ldrb r3, [r4, #480] @ zero_extendqisi2 - ldr r10, .L3943+4 + ldrb r3, [r4, #2016] @ zero_extendqisi2 + ldr r9, .L3918 cmp r3, #0 - beq .L3919 + beq .L3895 sub r0, r5, #64 - ldr r8, [r10, #484] + ldr r7, [r9, #2020] cmp r0, #500 - bcs .L3922 + bcs .L3898 rsb r2, r5, #564 - add r0, r8, r0, asl #9 - cmp r2, r7 - mov r1, r9 - movcs r2, r7 + add r0, r7, r0, asl #9 + cmp r2, r6 + mov r1, r8 + movcs r2, r6 mov r2, r2, asl #9 bl ftl_memcpy - b .L3923 -.L3922: + b .L3899 +.L3898: cmp r5, #564 - bcs .L3931 -.L3923: - ldr r3, [r4, #488] + bcs .L3907 +.L3899: + ldr r3, [r4, #2024] cmp r3, r5 - beq .L3929 - ldr r2, .L3943+4 + beq .L3905 + ldr r2, .L3918 mov r3, #0 - cmp r8, r3 - mov r9, r3 - strb r3, [r2, #480] - beq .L3930 - mov r0, r8 + cmp r7, r3 + mov r8, r3 + strb r3, [r2, #2016] + beq .L3906 + mov r0, r7 bl ftl_free -.L3930: - str r9, [r4, #484] -.L3929: - add r5, r5, r7 - str r5, [r4, #488] - b .L3919 -.L3931: - ldr r3, .L3943+16 - ldr r0, [r10, #488] - ldr r3, [r3, #692] +.L3906: + str r8, [r4, #2020] +.L3905: + add r5, r5, r6 + str r5, [r4, #2024] + b .L3895 +.L3907: + ldr r3, .L3918+12 + ldr r0, [r9, #2024] + ldr r3, [r3, #1204] sub r0, r0, #64 cmp r0, #500 ldrb r3, [r3, #9] @ zero_extendqisi2 movcs r0, #500 cmp r3, #4 - beq .L3933 + beq .L3908 mov r3, #2 - str r3, [sp, #12] + str r3, [sp, #8] mov r3, #3 - str r3, [sp, #16] + str r3, [sp, #12] mov r3, #4 - str r3, [sp, #20] + str r3, [sp, #16] mov r3, #5 - str r3, [sp, #24] + str r3, [sp, #20] mov r3, #6 - str r3, [sp, #28] - b .L3925 -.L3933: + str r3, [sp, #24] + b .L3901 +.L3908: mov r3, #0 -.L3924: +.L3900: cmp r0, #256 - add r1, sp, #12 + add r1, sp, #8 mov r2, r3, asl #1 movls r2, r3 str r2, [r1, r3, asl #2] add r3, r3, #1 cmp r3, #5 - bne .L3924 -.L3925: + bne .L3900 +.L3901: movw r3, #63872 -.L3928: - ldr r2, [r8, r3, asl #2] +.L3904: + ldr r2, [r7, r3, asl #2] cmp r2, #0 addne r3, r3, #128 movne r0, r3, asl #2 - bne .L3927 -.L3926: + bne .L3903 +.L3902: sub r3, r3, #1 cmp r3, #4096 - bne .L3928 + bne .L3904 mov r0, r0, asl #9 -.L3927: - mov r1, r8 - add r2, sp, #12 +.L3903: + mov r1, r7 + add r2, sp, #8 bl write_idblock - ldr r0, [r4, #484] - mov r8, #0 - strb r8, [r4, #480] + ldr r0, [r4, #2020] + mov r7, #0 + strb r7, [r4, #2016] bl ftl_free - str r8, [r4, #484] - b .L3929 -.L3919: - ldr r2, [sp, #52] - ldr r3, [r6] - cmp r2, r3 - beq .L3932 - bl __stack_chk_fail -.L3932: - add sp, sp, #56 + str r7, [r4, #2020] + b .L3905 +.L3895: + add sp, sp, #52 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3944: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L3919: .align 2 -.L3943: - .word __stack_chk_guard +.L3918: .word .LANCHOR4 .word -52655045 .word .LC180 @@ -24099,12 +23714,12 @@ FtlWrite: cmp r0, #0 movne r2, #0 cmp r2, #0 - beq .L3946 + beq .L3921 mov r0, r1 mov r2, r3 mov r1, r6 bl write_loader_lba -.L3946: +.L3921: mov r0, r7 mov r1, r4 mov r2, r6 @@ -24120,483 +23735,480 @@ rknand_sys_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 528 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - .pad #528 - sub sp, sp, #528 - ldr r5, .L4058 - mov r4, r1 - mov r6, r2 - ldr r3, [r5] - str r3, [sp, #524] - ldr r3, .L4058+4 + ldr r3, .L4032 + stmfd sp!, {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} cmp r1, r3 - beq .L3953 - bhi .L3954 + .pad #532 + sub sp, sp, #532 + mov r4, r1 + mov r5, r2 + beq .L3928 + bhi .L3929 sub r3, r3, #3456 sub r3, r3, #5 cmp r1, r3 - beq .L3955 - bhi .L3956 + beq .L3930 + bhi .L3931 sub r3, r3, #125 cmp r1, r3 - beq .L3957 - bhi .L3958 + beq .L3932 + bhi .L3933 sub r3, r3, #237 cmp r1, r3 - bne .L4015 + bne .L3989 bl rknand_dev_flush - b .L4046 -.L3958: - ldr r3, .L4058+8 + b .L4020 +.L3933: + ldr r3, .L4032+4 cmp r1, r3 - beq .L3960 + beq .L3935 add r3, r3, #1 cmp r1, r3 - beq .L3961 - b .L4015 -.L3956: - ldr r3, .L4058+12 + beq .L3936 + b .L3989 +.L3931: + ldr r3, .L4032+8 cmp r1, r3 - beq .L3962 - bhi .L3963 + beq .L3937 + bhi .L3938 sub r3, r3, #1952 sub r3, r3, #9 cmp r1, r3 - beq .L3964 - b .L4015 -.L3963: - ldr r3, .L4058+16 + beq .L3939 + b .L3989 +.L3938: + ldr r3, .L4032+12 cmp r1, r3 - beq .L3962 + beq .L3937 add r3, r3, #10 cmp r1, r3 - beq .L3962 - b .L4015 -.L3954: - ldr r3, .L4058+20 + beq .L3937 + b .L3989 +.L3929: + ldr r3, .L4032+16 cmp r1, r3 - beq .L3965 - bhi .L3966 + beq .L3940 + bhi .L3941 sub r3, r3, #78 cmp r1, r3 - beq .L3967 - bcc .L3968 + beq .L3942 + bcc .L3943 add r3, r3, #21 cmp r1, r3 - beq .L3969 + beq .L3944 add r3, r3, #56 cmp r1, r3 - beq .L3970 - b .L4015 -.L3966: - ldr r3, .L4058+24 + beq .L3945 + b .L3989 +.L3941: + ldr r3, .L4032+20 cmp r1, r3 - mov r7, r3 - beq .L3971 - bhi .L3972 + mov r6, r3 + beq .L3946 + bhi .L3947 sub r3, r3, #956 sub r3, r3, #1 cmp r1, r3 - beq .L3973 + beq .L3948 add r3, r3, #956 cmp r1, r3 - beq .L3974 - b .L4015 -.L3972: - ldr r3, .L4058+28 + beq .L3949 + b .L3989 +.L3947: + ldr r3, .L4032+24 cmp r1, r3 - beq .L3974 + beq .L3949 add r3, r3, #1 cmp r1, r3 - beq .L3971 - b .L4015 -.L3968: - ldr r0, .L4058+32 + beq .L3946 + b .L3989 +.L3943: + ldr r0, .L4032+28 bl printk mov r0, #4096 bl ftl_malloc subs r4, r0, #0 - bne .L3975 -.L3980: + bne .L3950 +.L3955: mvn r0, #11 - b .L3952 -.L3975: - mov r1, r6 + b .L3927 +.L3950: + mov r1, r5 mov r2, #512 bl rk_copy_from_user cmp r0, #0 - bne .L4052 - ldr r0, .L4058+36 + bne .L4026 + ldr r0, .L4032+32 ldmia r4, {r1, r2} bl printk ldr r3, [r4, #4] cmp r3, #8 - str r3, [sp] - bhi .L4050 + str r3, [sp, #4] + bhi .L4024 bl rknand_device_lock mov r2, r4 ldr r0, [r4] - ldr r1, [sp] + ldr r1, [sp, #4] bl IdBlockReadData bl rknand_device_unlock - mov r0, r6 + mov r0, r5 mov r1, r4 - ldr r2, [sp] + ldr r2, [sp, #4] mov r2, r2, asl #9 bl rk_copy_to_user cmp r0, #0 - beq .L4045 - ldr r0, .L4058+40 -.L4048: + beq .L4019 + ldr r0, .L4032+36 +.L4022: bl printk -.L4050: +.L4024: mov r0, r4 -.L4051: +.L4025: bl ftl_free -.L4049: +.L4023: mvn r0, #13 - b .L3952 -.L3967: - ldr r0, .L4058+44 + b .L3927 +.L3942: + ldr r0, .L4032+40 bl printk mov r0, #4096 bl ftl_malloc subs r4, r0, #0 - beq .L3980 - mov r1, r6 + beq .L3955 + mov r1, r5 mov r2, #4096 bl rk_copy_from_user cmp r0, #0 - beq .L3981 -.L4052: - ldr r0, .L4058+48 - b .L4048 -.L3981: - ldr r6, .L4058+52 - ldr r0, .L4058+56 + 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 r7, [r6, #492] - mov r8, r6 - cmp r7, #0 - bne .L3982 + ldr r6, [r5, #2028] + mov r7, r5 + cmp r6, #0 + bne .L3957 mov r0, #260096 bl ftl_malloc cmp r0, #0 - str r0, [r6, #492] - beq .L4050 - mov r1, r7 + str r0, [r5, #2028] + beq .L4024 + mov r1, r6 mov r2, #260096 bl memset -.L3982: +.L3957: ldr r2, [r4, #4] movw r3, #4088 cmp r2, r3 - bhi .L4050 + bhi .L4024 ldr r3, [r4] cmp r3, #251904 - bhi .L4050 - ldr r0, [r8, #492] + bhi .L4024 + ldr r0, [r7, #2028] add r1, r4, #8 add r0, r0, r3 bl memcpy -.L4045: +.L4019: mov r0, r4 bl ftl_free -.L4046: +.L4020: mov r4, #0 - b .L3979 -.L3970: - ldr r0, .L4058+60 + b .L3954 +.L3945: + ldr r0, .L4032+56 bl printk mov r0, #4096 bl ftl_malloc - subs r7, r0, #0 - beq .L3980 - mov r1, r6 + subs r6, r0, #0 + beq .L3955 + mov r1, r5 mov r2, #28 bl rk_copy_from_user cmp r0, #0 - beq .L3985 - ldr r0, .L4058+48 + beq .L3960 + ldr r0, .L4032+44 bl printk - b .L3986 -.L3985: - ldmia r7, {r1, r2} - ldr r0, .L4058+64 + b .L3961 +.L3960: + ldmia r6, {r1, r2} + ldr r0, .L4032+60 bl printk - ldr r1, [r7] + ldr r1, [r6] cmp r1, #256000 - bhi .L3986 - ldr r6, .L4058+52 - ldr r0, [r6, #492] + bhi .L3961 + ldr r5, .L4032+48 + ldr r0, [r5, #2028] cmp r0, #0 - beq .L3986 + beq .L3961 bl CRC_32 - ldr r3, [r7, #4] + ldr r3, [r6, #4] cmp r3, r0 - beq .L3988 - mov r0, r7 + beq .L3963 + mov r0, r6 bl ftl_free - b .L4016 -.L3988: + b .L3990 +.L3963: bl rknand_device_lock - ldr r1, [r6, #492] - add r2, r7, #8 - ldr r0, [r7] + ldr r1, [r5, #2028] + add r2, r6, #8 + ldr r0, [r6] bl write_idblock mov r4, #0 bl rknand_device_unlock - ldr r0, [r6, #492] + ldr r0, [r5, #2028] bl ftl_free - str r4, [r6, #492] - mov r0, r7 - b .L3992 -.L3986: - mov r0, r7 - b .L4051 -.L3969: - ldr r0, .L4058+68 + 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 r7, r0, #0 - beq .L3980 + subs r6, r0, #0 + beq .L3955 bl ftl_read_flash_info - mov r0, r6 - mov r1, r7 + mov r0, r5 + mov r1, r6 mov r2, #11 - b .L4056 -.L3953: - ldr r0, .L4058+72 + b .L4030 +.L3928: + ldr r0, .L4032+68 bl printk bl nand_blk_add_whole_disk mov r0, #4096 bl ftl_malloc - subs r7, r0, #0 - beq .L3980 + subs r6, r0, #0 + beq .L3955 mov r1, #0 mov r2, #64 bl ftl_memset - mov r0, r6 - mov r1, r7 + mov r0, r5 + mov r1, r6 mov r2, #64 - b .L4056 -.L3965: - ldr r0, .L4058+76 + b .L4030 +.L3940: + ldr r0, .L4032+72 bl printk - ldr r3, .L4058+52 - mov r0, r6 + ldr r3, .L4032+48 + mov r0, r5 mov r2, #4 - ldr r3, [r3, #496] + ldr r3, [r3, #2032] ldr r3, [r3, #20] add r1, sp, #528 - str r3, [r1, #-528]! -.L4040: + str r3, [r1, #-524]! +.L4014: bl rk_copy_to_user cmp r0, #0 - bne .L4049 - b .L4046 -.L3973: - ldr r0, .L4058+80 + bne .L4023 + b .L4020 +.L3948: + ldr r0, .L4032+76 bl printk mov r0, #4096 bl ftl_malloc - subs r7, r0, #0 - beq .L3980 + subs r6, r0, #0 + beq .L3955 bl rknand_device_lock mov r1, #264 mov r2, #2 - mov r3, r7 + mov r3, r6 mov r0, #16 bl ftl_read bl rknand_device_unlock - mov r0, r6 - mov r1, r7 + mov r0, r5 + mov r1, r6 mov r2, #1024 -.L4056: +.L4030: bl rk_copy_to_user subs r4, r0, #0 - mov r0, r7 - bne .L4051 -.L3992: + mov r0, r6 + bne .L4025 +.L3967: bl ftl_free - b .L3979 -.L3957: - ldr r0, .L4058+84 + b .L3954 +.L3932: + ldr r0, .L4032+80 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user subs r4, r0, #0 - beq .L3993 -.L3998: - ldr r0, .L4058+48 + beq .L3968 +.L3973: + ldr r0, .L4032+44 bl printk - b .L4049 -.L3993: - ldr r2, [sp, #4] - ldr r3, .L4058+88 + b .L4023 +.L3968: + ldr r2, [sp, #8] + ldr r3, .L4032+84 cmp r2, r3 - beq .L3994 -.L3995: + beq .L3969 +.L3970: mvn r4, #0 - b .L3979 -.L3994: - ldr r3, [sp, #8] + b .L3954 +.L3969: + ldr r3, [sp, #12] cmp r3, #512 - bhi .L3995 - ldr r7, .L4058+52 + bhi .L3970 + ldr r6, .L4032+48 mov r2, #512 - add r0, sp, #4 - ldr r1, [r7, #496] + add r0, sp, #8 + ldr r1, [r6, #2032] bl memcpy - ldr r2, [r7, #500] - ldr r3, .L4058+92 + ldr r2, [r6, #2036] + ldr r3, .L4032+88 cmp r2, r3 - beq .L3996 - add r0, sp, #68 + beq .L3971 + add r0, sp, #72 mov r1, r4 mov r2, #128 - str r4, [sp, #12] str r4, [sp, #16] + str r4, [sp, #20] bl memset -.L3996: +.L3971: mov r1, #0 mov r2, #256 - add r0, sp, #260 - str r1, [sp, #20] + add r0, sp, #264 + str r1, [sp, #24] bl memset - b .L4054 -.L3960: - ldr r0, .L4058+96 + b .L4028 +.L3935: + ldr r0, .L4032+92 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3998 - ldr r2, [sp, #4] - ldr r3, .L4058+88 + bne .L3973 + ldr r2, [sp, #8] + ldr r3, .L4032+84 cmp r2, r3 - bne .L3995 - ldr r3, [sp, #8] + bne .L3970 + ldr r3, [sp, #12] cmp r3, #512 - bhi .L3995 - ldr r2, .L4058+52 - ldr r3, .L4058+92 - ldr r1, [r2, #500] + bhi .L3970 + ldr r2, .L4032+48 + ldr r3, .L4032+88 + ldr r1, [r2, #2036] cmp r1, r3 - bne .L4016 - ldr r3, [sp, #16] + bne .L3990 + ldr r3, [sp, #20] sub r1, r3, #1 cmp r1, #127 mvnhi r0, #2 - bhi .L3952 - ldr r4, [r2, #496] - add r1, sp, #68 + bhi .L3927 + ldr r4, [r2, #2032] + add r1, sp, #72 add r0, r4, #64 str r3, [r4, #12] - ldr r2, [sp, #16] + ldr r2, [sp, #20] bl memcpy mov r0, #1 mov r1, r4 - b .L4047 -.L3964: - ldr r0, .L4058+100 + b .L4021 +.L3939: + ldr r0, .L4032+96 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3998 - ldr r2, [sp, #4] - ldr r3, .L4058+104 + bne .L3973 + ldr r2, [sp, #8] + ldr r3, .L4032+100 cmp r2, r3 - bne .L3995 - ldr r3, [sp, #8] + bne .L3970 + ldr r3, [sp, #12] cmp r3, #512 - bhi .L3995 - ldr r6, .L4058+52 - ldr r3, [r6, #504] + bhi .L3970 + ldr r5, .L4032+48 + ldr r3, [r5, #2040] cmp r3, #0 - bne .L3999 -.L4002: + bne .L3974 +.L3977: mov r0, #0 - b .L3952 -.L3999: - ldr r3, [r6, #508] - ldr r2, .L4058+108 + b .L3927 +.L3974: + ldr r3, [r5, #2044] + ldr r2, .L4032+104 ldr r1, [r3] cmp r1, r2 - beq .L4000 + beq .L3975 str r2, [r3] mov r2, #504 - ldr r3, [r6, #508] + ldr r3, [r5, #2044] str r2, [r3, #4] mov r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L4000: - ldr r1, [r6, #508] +.L3975: + ldr r1, [r5, #2044] mov r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore - ldr r3, [r6, #496] - ldr r2, .L4058+88 + ldr r3, [r5, #2032] + ldr r2, .L4032+84 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r7, [r6, #496] - ldrne r3, .L4058+52 + ldr r6, [r5, #2032] + ldrne r3, .L4032+48 movne r2, #504 - add r0, r7, #64 - ldrne r3, [r3, #496] + add r0, r6, #64 + ldrne r3, [r3, #2032] stmneib r3, {r2, r4} mov r4, #0 mov r1, r4 mov r2, #128 - str r4, [r7, #12] + str r4, [r6, #12] bl memset mov r0, #1 - mov r1, r7 - bl StorageSysDataStore - str r4, [r6, #504] - str r4, [r6, #500] - b .L3979 -.L3955: - ldr r0, .L4058+112 - bl printk mov r1, r6 + bl StorageSysDataStore + str r4, [r5, #2040] + str r4, [r5, #2036] + b .L3954 +.L3930: + ldr r0, .L4032+108 + bl printk + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3998 - ldr r2, [sp, #4] - ldr r3, .L4058+116 + bne .L3973 + ldr r2, [sp, #8] + ldr r3, .L4032+112 cmp r2, r3 - bne .L3995 - ldr r3, [sp, #8] + bne .L3970 + ldr r3, [sp, #12] cmp r3, #512 - bhi .L3995 - ldr r6, .L4058+52 - ldr r3, [r6, #504] + bhi .L3970 + ldr r5, .L4032+48 + ldr r3, [r5, #2040] cmp r3, #1 - beq .L4002 - ldr r3, [r6, #508] + beq .L3977 + ldr r3, [r5, #2044] mov r4, #0 - ldr r2, .L4058+108 + ldr r2, .L4032+104 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r1, [r6, #508] - ldrne r3, [r6, #508] + ldr r1, [r5, #2044] + ldrne r3, [r5, #2044] movne r2, #504 strne r0, [r3, #8] strne r2, [r3, #4] @@ -24605,105 +24217,106 @@ rknand_sys_storage_ioctl: mov r0, #0 str r3, [r1, #16] bl StorageSysDataStore - ldr r3, [r6, #496] - ldr r2, .L4058+88 + ldr r3, [r5, #2032] + ldr r2, .L4032+84 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r7, [r6, #496] - ldrne r3, .L4058+52 + ldr r6, [r5, #2032] + ldrne r3, .L4032+48 movne r1, #504 movne r2, #0 - add r0, r7, #64 - ldrne r3, [r3, #496] + add r0, r6, #64 + ldrne r3, [r3, #2032] stmneib r3, {r1, r2} mov r1, r4 mov r2, #128 - str r4, [r7, #12] + str r4, [r6, #12] bl memset mov r0, #1 - mov r1, r7 + mov r1, r6 bl StorageSysDataStore mov r3, #1 - str r3, [r6, #504] - b .L3979 -.L3961: - ldr r0, .L4058+120 + str r3, [r5, #2040] + b .L3954 +.L3936: + ldr r0, .L4032+116 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3998 - ldr r2, [sp, #4] - ldr r3, .L4058+124 - cmp r2, r3 - bne .L3995 + bne .L3973 ldr r2, [sp, #8] + ldr r3, .L4032+120 + cmp r2, r3 + bne .L3970 + ldr r2, [sp, #12] cmp r2, #512 - addls r0, sp, #12 - ldrls r1, .L4058+128 - bls .L4053 - b .L3995 -.L3962: - ldr r8, .L4058+16 - cmp r4, r8 - ldreq r0, .L4058+132 - beq .L4043 - ldr r3, .L4058+136 + addls r0, sp, #16 + ldrls r1, .L4032+124 + bls .L4027 + b .L3970 +.L3937: + ldr r0, .L4032+12 + cmp r4, r0 + mov r7, r0 + ldreq r0, .L4032+128 + beq .L4017 + ldr r3, .L4032+132 cmp r4, r3 - ldreq r0, .L4058+140 - ldrne r0, .L4058+144 -.L4043: + ldreq r0, .L4032+136 + ldrne r0, .L4032+140 +.L4017: bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3998 - ldr r2, [sp, #4] - ldr r3, .L4058+148 + bne .L3973 + ldr r2, [sp, #8] + ldr r3, .L4032+144 cmp r2, r3 - bne .L4049 - ldr r3, .L4058+136 - ldr r7, .L4058+52 + bne .L4023 + ldr r3, .L4032+132 + ldr r6, .L4032+48 cmp r4, r3 - bne .L4008 - ldr r3, [r7, #496] - mov r0, r6 - add r1, sp, #4 + bne .L3983 + ldr r3, [r6, #2032] + mov r0, r5 + add r1, sp, #8 mov r2, #16 ldr r3, [r3, #20] - str r3, [sp, #8] - strb r3, [sp, #12] + str r3, [sp, #12] + strb r3, [sp, #16] bl rk_copy_to_user cmp r0, #0 - beq .L3952 - b .L4049 -.L4008: - ldr r3, [r7, #1024] + beq .L3927 + b .L4023 +.L3983: + ldr r3, [r6, #2560] cmp r3, #10 - bhi .L4049 - ldr r1, [r7, #496] - ldr r2, [sp, #8] + bhi .L4023 + ldr r1, [r6, #2032] + ldr r2, [sp, #12] ldr r3, [r1, #24] cmp r3, r2 cmpne r3, #0 movne r3, #1 moveq r3, #0 - beq .L4009 - ldr r0, .L4058+152 + beq .L3984 + ldr r0, .L4032+148 mov r1, r2 bl printk - ldr r3, [r7, #1024] + ldr r3, [r6, #2560] add r3, r3, #1 - str r3, [r7, #1024] - b .L4049 -.L4009: - cmp r4, r8 - str r3, [r7, #1024] + str r3, [r6, #2560] + b .L4023 +.L3984: + cmp r4, r7 + str r3, [r6, #2560] mov r0, #1 moveq r2, r3 movne r3, #1 @@ -24712,99 +24325,92 @@ rknand_sys_storage_ioctl: str r3, [r1, #20] bl StorageSysDataStore cmn r0, #1 - bne .L4046 + bne .L4020 mvn r4, #1 - b .L3979 -.L3974: - ldr r0, .L4058+156 + b .L3954 +.L3949: + ldr r0, .L4032+152 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3998 - ldr r2, [sp, #4] - ldr r3, .L4058+160 - cmp r2, r3 - bne .L3995 + bne .L3973 ldr r2, [sp, #8] + ldr r3, .L4032+156 + cmp r2, r3 + bne .L3970 + ldr r2, [sp, #12] cmp r2, #504 - bhi .L3995 - ldr r3, .L4058+164 - add r0, sp, #12 + bhi .L3970 + ldr r3, .L4032+160 + add r0, sp, #16 cmp r4, r3 - ldr r3, .L4058+52 - ldreq r1, [r3, #1028] - ldrne r1, [r3, #1032] + ldr r3, .L4032+48 + ldreq r1, [r3, #2564] + ldrne r1, [r3, #2568] add r1, r1, #8 -.L4053: +.L4027: bl memcpy -.L4054: - mov r0, r6 - add r1, sp, #4 +.L4028: + mov r0, r5 + add r1, sp, #8 mov r2, #520 - b .L4040 -.L3971: - ldr r0, .L4058+168 + b .L4014 +.L3946: + ldr r0, .L4032+164 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3998 - ldr r2, [sp, #4] - ldr r3, .L4058+160 - cmp r2, r3 - bne .L3995 + bne .L3973 ldr r2, [sp, #8] + ldr r3, .L4032+156 + cmp r2, r3 + bne .L3970 + ldr r2, [sp, #12] cmp r2, #504 - bhi .L3995 - cmp r4, r7 + bhi .L3970 + cmp r4, r6 add r2, r2, #8 - ldr r4, .L4058+52 - bne .L4013 - add r1, sp, #4 - ldr r0, [r4, #1028] + ldr r4, .L4032+48 + bne .L3988 + add r1, sp, #8 + ldr r0, [r4, #2564] bl memcpy mov r0, #2 - ldr r1, [r4, #1028] - b .L4047 -.L4013: - add r1, sp, #4 - ldr r0, [r4, #1032] + ldr r1, [r4, #2564] + b .L4021 +.L3988: + add r1, sp, #8 + ldr r0, [r4, #2568] bl memcpy - ldr r1, [r4, #1032] + ldr r1, [r4, #2568] mov r0, #3 -.L4047: +.L4021: bl StorageSysDataStore mov r4, r0 -.L3979: - ldr r0, .L4058+172 +.L3954: + ldr r0, .L4032+168 mov r1, r4 bl printk mov r0, r4 - b .L3952 -.L4015: + b .L3927 +.L3989: mvn r0, #21 - b .L3952 -.L4016: + b .L3927 +.L3990: mvn r0, #1 -.L3952: - ldr r2, [sp, #524] - ldr r3, [r5] - cmp r2, r3 - beq .L4014 - bl __stack_chk_fail -.L4014: - add sp, sp, #528 +.L3927: + add sp, sp, #532 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L4059: + ldmfd sp!, {r4, r5, r6, r7, pc} +.L4033: .align 2 -.L4058: - .word __stack_chk_guard +.L4032: .word 1074033155 .word 1074029570 .word 1074031656 @@ -24836,7 +24442,7 @@ rknand_sys_storage_ioctl: .word 1112755781 .word .LC197 .word 1094995539 - .word .LANCHOR4+512 + .word .LANCHOR4+2048 .word .LC198 .word 1074031676 .word .LC199 @@ -24860,57 +24466,57 @@ 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, .L4070 + ldr r4, .L4044 mvn r3, #0 mov r5, #0 - add r0, r4, #512 - ldr r1, [r4, #464] - str r3, [r4, #488] + add r0, r4, #2048 + ldr r1, [r4, #2000] + str r3, [r4, #2024] add r3, r1, #512 - str r3, [r4, #496] - str r1, [r4, #508] + str r3, [r4, #2032] + str r1, [r4, #2044] add r3, r1, #1024 add r1, r1, #1536 - str r3, [r4, #1028] - strb r5, [r4, #480] - str r5, [r4, #484] - str r5, [r4, #492] - str r1, [r4, #1032] + str r3, [r4, #2564] + strb r5, [r4, #2016] + str r5, [r4, #2020] + str r5, [r4, #2028] + str r1, [r4, #2568] bl ftl_memcpy - ldr r6, [r4, #508] - str r5, [r4, #500] - str r5, [r4, #1024] + ldr r6, [r4, #2044] + str r5, [r4, #2036] + str r5, [r4, #2560] ldr r7, [r6, #508] ldr r3, [r6, #16] cmp r7, r5 - str r3, [r4, #504] - beq .L4061 + str r3, [r4, #2040] + beq .L4035 mov r0, r6 mov r1, #508 bl js_hash cmp r7, r0 - beq .L4061 + beq .L4035 str r5, [r6, #16] - ldr r0, .L4070+4 - str r5, [r4, #504] + ldr r0, .L4044+4 + str r5, [r4, #2040] bl printk -.L4061: - ldr r3, [r4, #504] +.L4035: + ldr r3, [r4, #2040] mov r0, #2 - ldr r1, [r4, #1028] + ldr r1, [r4, #2564] cmp r3, #0 - ldrne r3, .L4070 - ldrne r2, .L4070+8 - strne r2, [r3, #500] + ldrne r3, .L4044 + ldrne r2, .L4044+8 + strne r2, [r3, #2036] bl StorageSysDataLoad - ldr r1, [r4, #1032] + ldr r1, [r4, #2568] mov r0, #3 bl StorageSysDataLoad ldmfd sp!, {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L4071: +.L4045: .align 2 -.L4070: +.L4044: .word .LANCHOR4 .word .LC205 .word -1067903959 @@ -24939,33 +24545,33 @@ rk_ftl_vendor_storage_init: .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r0, #65536 bl ftl_malloc - ldr r6, .L4084 + ldr r6, .L4058 cmp r0, #0 - str r0, [r6, #1036] - beq .L4079 - ldr r9, .L4084+4 + str r0, [r6, #2572] + beq .L4053 + ldr r9, .L4058+4 mov r8, #0 mov r4, r8 mov r7, r8 mov r10, r6 -.L4077: +.L4051: mov r0, r7, asl #7 mov r1, #128 - ldr r2, [r6, #1036] + ldr r2, [r6, #2572] bl FlashBootVendorRead cmp r0, #0 - bne .L4075 - ldr r3, [r10, #1036] - ldr r0, .L4084+8 + bne .L4049 + ldr r3, [r10, #2572] + ldr r0, .L4058+8 add r2, r3, #61440 ldr r1, [r3] ldr r2, [r2, #4092] ldr r3, [r3, #4] bl printk - ldr r5, [r10, #1036] + ldr r5, [r10, #2572] ldr r3, [r5] cmp r3, r9 - bne .L4076 + bne .L4050 add r2, r5, #61440 ldr r3, [r5, #4] ldr r1, [r2, #4092] @@ -24977,48 +24583,48 @@ rk_ftl_vendor_storage_init: cmp r2, #0 movne r8, r7 movne r4, r3 -.L4076: +.L4050: cmp r7, #1 movne r7, #1 - bne .L4077 -.L4083: + bne .L4051 +.L4057: cmp r4, #0 - beq .L4078 + beq .L4052 mov r0, r8, asl #7 mov r1, #128 mov r2, r5 bl FlashBootVendorRead cmp r0, #0 - bne .L4075 + bne .L4049 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4078: +.L4052: mov r0, r5 mov r1, r4 mov r2, #65536 bl memset - ldr r3, .L4084+4 + ldr r3, .L4058+4 str r7, [r5, #4] mov r0, r4 str r3, [r5] add r3, r5, #61440 str r7, [r3, #4092] - ldr r3, .L4084+12 + ldr r3, .L4058+12 strh r4, [r5, #12] @ movhi strh r3, [r5, #14] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4075: - ldr r0, [r6, #1036] +.L4049: + ldr r0, [r6, #2572] bl kfree mov r3, #0 mvn r0, #0 - str r3, [r6, #1036] + str r3, [r6, #2572] ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4079: +.L4053: mvn r0, #11 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4085: +.L4059: .align 2 -.L4084: +.L4058: .word .LANCHOR4 .word 1380668996 .word .LC206 @@ -25034,19 +24640,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, .L4093 - ldr ip, [r3, #1036] + ldr r3, .L4067 + ldr ip, [r3, #2572] cmp ip, #0 ldrneh r4, [ip, #10] movne r3, #0 - beq .L4091 -.L4088: + beq .L4065 +.L4062: cmp r3, r4 - bcs .L4091 + bcs .L4065 add lr, ip, r3, asl #3 ldrh r5, [lr, #16] cmp r5, r0 - bne .L4089 + bne .L4063 ldrh r3, [lr, #20] mov r0, r1 ldrh r1, [lr, #18] @@ -25059,15 +24665,15 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L4089: +.L4063: add r3, r3, #1 - b .L4088 -.L4091: + b .L4062 +.L4065: mvn r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L4094: +.L4068: .align 2 -.L4093: +.L4067: .word .LANCHOR4 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -25081,12 +24687,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, .L4118 + ldr r2, .L4092 .pad #28 sub sp, sp, #28 - ldr r4, [r2, #1036] + ldr r4, [r2, #2572] cmp r4, #0 - beq .L4110 + beq .L4084 mov r3, r1 add r7, r9, #63 ldrh r1, [r4, #8] @@ -25095,31 +24701,31 @@ rk_ftl_vendor_write: mov ip, r0 mov r6, #0 str r1, [sp, #4] -.L4097: +.L4071: cmp r6, r2 - bcs .L4116 + bcs .L4090 add r5, r4, r6, asl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L4098 + bne .L4072 ldrh r1, [r5, #20] add fp, r4, #1024 add r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L4099 + bls .L4073 ldrh r1, [r4, #14] cmp r1, r7 subcs r2, r2, #1 strcs r2, [sp, #12] ldrcsh r8, [r5, #18] - bcc .L4110 -.L4100: + bcc .L4084 +.L4074: ldr r2, [sp, #12] add r5, r5, #8 cmp r6, r2 - bcs .L4117 + bcs .L4091 ldrh r10, [r5, #20] add r0, fp, r8 ldrh r2, [r5, #16] @@ -25138,8 +24744,8 @@ rk_ftl_vendor_write: add r8, r8, r10 ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L4100 -.L4117: + b .L4074 +.L4091: add r6, r4, r6, asl #3 uxth r8, r8 add r0, fp, r8 @@ -25157,22 +24763,22 @@ rk_ftl_vendor_write: add r5, r3, r5 rsb r7, r7, r5 strh r7, [r4, #14] @ movhi - b .L4115 -.L4099: + b .L4089 +.L4073: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, fp, r0 bl memcpy strh r9, [r5, #20] @ movhi - b .L4115 -.L4098: + b .L4089 +.L4072: add r6, r6, #1 - b .L4097 -.L4116: + b .L4071 +.L4090: ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4110 + bcc .L4084 add r2, r4, r2, asl #3 uxth r7, r7 rsb r1, r7, r1 @@ -25192,7 +24798,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] add r3, r3, #1 strh r3, [r4, #10] @ movhi -.L4115: +.L4089: ldr r3, [r4, #4] add r2, r4, #61440 mov r1, #128 @@ -25210,16 +24816,16 @@ rk_ftl_vendor_write: mov r0, r3, asl #7 bl FlashBootVendorWrite mov r0, #0 - b .L4096 -.L4110: + b .L4070 +.L4084: mvn r0, #0 -.L4096: +.L4070: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4119: +.L4093: .align 2 -.L4118: +.L4092: .word .LANCHOR4 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -25238,34 +24844,34 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc subs r4, r0, #0 mvneq r5, #0 - beq .L4121 - ldr r3, .L4137 + beq .L4095 + ldr r3, .L4111 cmp r6, r3 - beq .L4123 + beq .L4097 add r3, r3, #1 cmp r6, r3 - beq .L4124 - b .L4135 -.L4123: + beq .L4098 + b .L4109 +.L4097: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4135 + bne .L4109 ldr r2, [r4] - ldr r3, .L4137+4 + ldr r3, .L4111+4 cmp r2, r3 - beq .L4126 -.L4127: + beq .L4100 +.L4101: mvn r5, #0 - b .L4122 -.L4126: + b .L4096 +.L4100: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read cmn r0, #1 - beq .L4127 + beq .L4101 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -25275,44 +24881,44 @@ rk_ftl_vendor_storage_ioctl: cmp r0, #0 moveq r5, #0 mvnne r5, #13 - b .L4122 -.L4124: + b .L4096 +.L4098: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4135 + bne .L4109 ldr r2, [r4] - ldr r3, .L4137+4 + ldr r3, .L4111+4 cmp r2, r3 - bne .L4127 + bne .L4101 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L4127 + bhi .L4101 mov r0, r4 mov r1, r5 add r2, r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4135 + bne .L4109 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L4122 -.L4135: + b .L4096 +.L4109: mvn r5, #13 -.L4122: +.L4096: mov r0, r4 bl kfree -.L4121: +.L4095: mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L4138: +.L4112: .align 2 -.L4137: +.L4111: .word 1074034177 .word 1448232273 .fnend @@ -25563,9 +25169,9 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 2 .LANCHOR3 = . + 0 - .type __func__.20217, %object - .size __func__.20217, 11 -__func__.20217: + .type __func__.20269, %object + .size __func__.20269, 11 +__func__.20269: .ascii "FtlMemInit\000" .LC0: .byte 60 @@ -25573,32 +25179,32 @@ __func__.20217: .byte 24 .byte 16 .space 1 - .type __func__.20992, %object - .size __func__.20992, 17 -__func__.20992: + .type __func__.21044, %object + .size __func__.21044, 17 +__func__.21044: .ascii "FtlDumpBlockInfo\000" .space 3 - .type __func__.21011, %object - .size __func__.21011, 16 -__func__.21011: + .type __func__.21063, %object + .size __func__.21063, 16 +__func__.21063: .ascii "FtlScanAllBlock\000" - .type __func__.21277, %object - .size __func__.21277, 17 -__func__.21277: + .type __func__.21329, %object + .size __func__.21329, 17 +__func__.21329: .ascii "ftl_scan_all_ppa\000" .space 3 - .type __func__.20960, %object - .size __func__.20960, 12 -__func__.20960: + .type __func__.21012, %object + .size __func__.21012, 12 +__func__.21012: .ascii "FtlCheckVpc\000" - .type __func__.21259, %object - .size __func__.21259, 21 -__func__.21259: + .type __func__.21311, %object + .size __func__.21311, 21 +__func__.21311: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.20290, %object - .size __func__.20290, 8 -__func__.20290: + .type __func__.20342, %object + .size __func__.20342, 8 +__func__.20342: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -25756,7 +25362,7 @@ __func__.20290: .LC76: .ascii "%s\012\000" .LC77: - .ascii "FTL version: 5.0.57 20190927\000" + .ascii "FTL version: 5.0.60 20200218\000" .LC78: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" @@ -26417,7 +26023,7 @@ gNandParaInfo: gFtlInitStatus: .word -1 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2592 + .size NandFlashParaTbl, 2656 NandFlashParaTbl: .byte 6 .byte 44 @@ -27122,6 +26728,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte 44 + .byte -92 + .byte 100 + .byte 50 + .byte -86 + .byte 4 + .byte 4 + .byte 1 + .byte 32 + .short 1024 + .byte 2 + .byte 1 + .short 2192 + .short 1479 + .byte 10 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .space 4 + .byte 6 .byte -83 .byte -34 .byte -108 @@ -27693,6 +27325,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 + .byte 5 + .byte -119 + .byte -124 + .byte 100 + .byte 60 + .byte -91 + .byte 0 + .byte 7 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 2 + .short 1024 + .short 455 + .byte 4 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .space 4 .byte 6 .byte -104 .byte -41 @@ -29009,9 +28667,9 @@ gFlashSlcMode: .space 1 .space 3 .type slcPageToMlcPageTbl, %object - .size slcPageToMlcPageTbl, 512 + .size slcPageToMlcPageTbl, 1024 slcPageToMlcPageTbl: - .space 512 + .space 1024 .type DieAddrs, %object .size DieAddrs, 32 DieAddrs: @@ -29529,9 +29187,9 @@ g_gc_bad_block_temp_tbl: g_gc_bad_block_gc_index: .space 2 .type mlcPageToSlcPageTbl, %object - .size mlcPageToSlcPageTbl, 1024 + .size mlcPageToSlcPageTbl, 2048 mlcPageToSlcPageTbl: - .space 1024 + .space 2048 .type gNandMaxChip, %object .size gNandMaxChip, 1 gNandMaxChip: diff --git a/drivers/rk_nand/rk_ftl_arm_v7_thumb.S b/drivers/rk_nand/rk_ftl_arm_v7_thumb.S index 781d21ae6ffc..b0907fe82b7d 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: 2019-09-29 + * date: 2020-02-18 */ .syntax unified .arch armv7-a @@ -21,6 +21,8 @@ .eabi_attribute 18, 2 .thumb .file "rk_ftl_arm_v7.S" +#APP + .syntax unified .thumb .text .align 1 @@ -164,24 +166,29 @@ FlashBlockAlignInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - cmp r0, #256 - ldr r3, .L42 + cmp r0, #512 + ldr r3, .L43 bls .L38 - mov r2, #512 - b .L41 + mov r2, #1024 + b .L42 .L38: + cmp r0, #256 + bls .L40 + mov r2, #512 + b .L42 +.L40: cmp r0, #128 - bhi .L40 + bhi .L41 str r0, [r3, #4] bx lr -.L40: - mov r2, #256 .L41: + mov r2, #256 +.L42: str r2, [r3, #4] bx lr -.L43: +.L44: .align 2 -.L42: +.L43: .word .LANCHOR0 .fnend .size FlashBlockAlignInit, .-FlashBlockAlignInit @@ -197,7 +204,7 @@ FlashReadCmd: push {r4, lr} .save {r4, lr} lsrs r2, r1, #16 - ldr r4, .L45 + ldr r4, .L46 add r4, r4, r0, lsl #3 ldr r3, [r4, #12] ldrb r4, [r4, #16] @ zero_extendqisi2 @@ -215,9 +222,9 @@ FlashReadCmd: str r2, [r3, #2056] pop {r4, lr} b FlashSetRandomizer -.L46: +.L47: .align 2 -.L45: +.L46: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -233,7 +240,7 @@ FlashReadDpDataOutCmd: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} uxtb r6, r1 - ldr r4, .L51 + ldr r4, .L52 lsrs r5, r1, #8 add r3, r4, r0, lsl #3 ldrb r4, [r4, #60] @ zero_extendqisi2 @@ -243,7 +250,7 @@ FlashReadDpDataOutCmd: lsr r4, r1, #16 lsl r3, r3, #8 add r3, r3, r2 - bne .L48 + bne .L49 movs r2, #6 str r2, [r3, #2056] movs r2, #0 @@ -252,8 +259,8 @@ FlashReadDpDataOutCmd: str r6, [r3, #2052] str r5, [r3, #2052] str r4, [r3, #2052] - b .L50 -.L48: + b .L51 +.L49: movs r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -265,14 +272,14 @@ FlashReadDpDataOutCmd: str r4, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] -.L50: +.L51: movs r2, #224 str r2, [r3, #2056] pop {r4, r5, r6, lr} b FlashSetRandomizer -.L52: +.L53: .align 2 -.L51: +.L52: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd @@ -288,7 +295,7 @@ FlashProgFirstCmd: push {r4, lr} .save {r4, lr} lsrs r2, r1, #16 - ldr r4, .L54 + ldr r4, .L55 add r4, r4, r0, lsl #3 ldr r3, [r4, #12] ldrb r4, [r4, #16] @ zero_extendqisi2 @@ -305,9 +312,9 @@ FlashProgFirstCmd: str r2, [r3, #2052] pop {r4, lr} b FlashSetRandomizer -.L55: +.L56: .align 2 -.L54: +.L55: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -322,12 +329,12 @@ FlashEraseCmd: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, lr} .save {r4, r5, lr} - ldr r5, .L61 + ldr r5, .L62 add r0, r5, r0, lsl #3 ldrb r3, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] lsls r3, r3, #8 - cbz r2, .L57 + cbz r2, .L58 adds r2, r4, r3 movs r0, #96 str r0, [r2, #2056] @@ -339,7 +346,7 @@ FlashEraseCmd: str r0, [r2, #2052] ldr r2, [r5, #4] add r1, r1, r2 -.L57: +.L58: add r3, r3, r4 movs r2, #96 str r2, [r3, #2056] @@ -352,9 +359,9 @@ FlashEraseCmd: movs r2, #208 str r2, [r3, #2056] pop {r4, r5, pc} -.L62: +.L63: .align 2 -.L61: +.L62: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -370,7 +377,7 @@ FlashProgDpSecondCmd: push {r4, r5, lr} .save {r4, r5, lr} lsrs r2, r1, #16 - ldr r4, .L64 + ldr r4, .L65 add r5, r4, r0, lsl #3 ldrb r4, [r4, #55] @ zero_extendqisi2 ldr r3, [r5, #12] @@ -387,9 +394,9 @@ FlashProgDpSecondCmd: str r2, [r3, #2052] pop {r4, r5, lr} b FlashSetRandomizer -.L65: +.L66: .align 2 -.L64: +.L65: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -404,24 +411,24 @@ FlashProgSecondCmd: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L67 + ldr r3, .L68 add r0, r3, r0, lsl #3 - ldr r3, .L67+4 + ldr r3, .L68+4 ldr r4, [r0, #12] ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r3, [r3, #4] - ldr r0, .L67+8 + ldr r0, .L68+8 blx r3 add r4, r4, r5, lsl #8 movs r3, #16 str r3, [r4, #2056] pop {r3, r4, r5, pc} -.L68: +.L69: .align 2 -.L67: +.L68: .word .LANCHOR0 .word arm_delay_ops - .word 64424500 + .word 214748300 .fnend .size FlashProgSecondCmd, .-FlashProgSecondCmd .align 1 @@ -434,7 +441,7 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L70 + ldr r2, .L71 add r0, r2, r0, lsl #3 ldrb r2, [r2, #54] @ zero_extendqisi2 ldrb r1, [r0, #16] @ zero_extendqisi2 @@ -442,9 +449,9 @@ FlashProgDpFirstCmd: add r3, r3, r1, lsl #8 str r2, [r3, #2056] bx lr -.L71: +.L72: .align 2 -.L70: +.L71: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd @@ -457,25 +464,25 @@ js_hash: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L76 + ldr r3, .L77 add r1, r1, r0 push {r4, lr} .save {r4, lr} -.L73: +.L74: cmp r0, r1 - beq .L75 + beq .L76 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 .L73 -.L75: + b .L74 +.L76: mov r0, r3 pop {r4, pc} -.L77: +.L78: .align 2 -.L76: +.L77: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -516,7 +523,7 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L81 + ldr r3, .L82 ldr r2, [r3, #76] ldr r1, [r2] str r1, [r3, #80] @@ -535,9 +542,9 @@ ftl_flash_suspend: str r1, [r3, #104] str r2, [r3, #108] bx lr -.L82: +.L83: .align 2 -.L81: +.L82: .word .LANCHOR0 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend @@ -555,7 +562,7 @@ LogAddr2PhyAddr: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r0 - ldr r0, .L88 + ldr r0, .L89 mov r8, r3 ldr r4, [r7, #4] mov r10, r1 @@ -585,38 +592,38 @@ LogAddr2PhyAddr: smulbb r5, r0, r5 sub r3, r3, r5 uxth r3, r3 - bne .L85 + bne .L86 ldrb r2, [r6, #140] @ zero_extendqisi2 - cbnz r2, .L85 - ldr r2, .L88 + cbnz r2, .L86 + ldr r2, .L89 add r1, r2, r1, lsl #1 ldrh r1, [r1, #144] -.L85: +.L86: add r6, r6, r0, lsl #2 - ldr r2, [r6, #656] + ldr r2, [r6, #1168] 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 .L87 + bls .L88 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 .L86 -.L87: + b .L87 +.L88: movs r0, #0 -.L86: +.L87: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L89: +.L90: .align 2 -.L88: +.L89: .word .LANCHOR0 .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -630,14 +637,14 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L91 - ldr r2, [r3, #688] - str r0, [r3, #688] + ldr r3, .L92 + ldr r2, [r3, #1200] + str r0, [r3, #1200] mov r0, r2 bx lr -.L92: +.L93: .align 2 -.L91: +.L92: .word .LANCHOR0 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -651,13 +658,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L94 - ldr r3, [r3, #692] + ldr r3, .L95 + ldr r3, [r3, #1204] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L95: +.L96: .align 2 -.L94: +.L95: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -684,16 +691,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L98 + ldr r3, .L99 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 -.L99: +.L100: .align 2 -.L98: +.L99: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -707,16 +714,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L101 + ldr r3, .L102 ldr r2, [r3, #76] lsls r3, r0, #8 orr r0, r3, r0, lsl #16 orr r3, r0, #1 str r3, [r2, #304] bx lr -.L102: +.L103: .align 2 -.L101: +.L102: .word .LANCHOR0 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara @@ -730,14 +737,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L104 + ldr r3, .L105 orr r0, r0, #16640 ldr r3, [r3, #76] str r0, [r3, #344] bx lr -.L105: +.L106: .align 2 -.L104: +.L105: .word .LANCHOR0 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv @@ -751,20 +758,20 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L109 + ldr r3, .L110 ldr r2, [r3, #76] ldr r3, [r2] - cbnz r0, .L107 + cbnz r0, .L108 bfi r3, r0, #13, #1 - b .L108 -.L107: - orr r3, r3, #253952 + b .L109 .L108: + orr r3, r3, #253952 +.L109: str r3, [r2] bx lr -.L110: +.L111: .align 2 -.L109: +.L110: .word .LANCHOR0 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode @@ -778,11 +785,11 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L118 + ldr r3, .L119 ands r1, r0, #6 ldr r2, [r3, #76] ldr r3, [r2] - beq .L112 + beq .L113 orr r3, r3, #24576 lsls r1, r0, #29 bfc r3, #15, #1 @@ -798,16 +805,16 @@ NandcSetMode: str r1, [r2, #308] movs r1, #39 str r1, [r2, #308] - b .L114 -.L112: + b .L115 +.L113: bfi r3, r1, #13, #1 -.L114: +.L115: str r3, [r2] movs r0, #0 bx lr -.L119: +.L120: .align 2 -.L118: +.L119: .word .LANCHOR0 .fnend .size NandcSetMode, .-NandcSetMode @@ -821,7 +828,7 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L121 + ldr r2, .L122 add r0, r2, r0, lsl #3 movs r2, #1 ldr r1, [r0, #12] @@ -831,9 +838,9 @@ NandcFlashCs: bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L122: +.L123: .align 2 -.L121: +.L122: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -847,7 +854,7 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L124 + ldr r3, .L125 add r0, r3, r0, lsl #3 ldr r2, [r0, #12] ldr r3, [r2] @@ -855,9 +862,9 @@ NandcFlashDeCs: bfc r3, #17, #1 str r3, [r2] bx lr -.L125: +.L126: .align 2 -.L124: +.L125: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs @@ -873,17 +880,17 @@ NandcDelayns: push {r3, lr} .save {r3, lr} addw r0, r0, #999 - ldr r3, .L127 + ldr r3, .L128 umull r0, r1, r0, r3 - ldr r3, .L127+4 + ldr r3, .L128+4 ldr r3, [r3, #8] lsrs r0, r1, #6 blx r3 movs r0, #0 pop {r3, pc} -.L128: +.L129: .align 2 -.L127: +.L128: .word 274877907 .word arm_delay_ops .fnend @@ -900,7 +907,7 @@ FlashReadStatus: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r2, #112 - ldr r3, .L130 + ldr r3, .L131 add r0, r3, r0, lsl #3 ldrb r4, [r0, #16] @ zero_extendqisi2 ldr r5, [r0, #12] @@ -912,9 +919,9 @@ FlashReadStatus: bl NandcDelayns ldr r0, [r5, r4] pop {r3, r4, r5, pc} -.L131: +.L132: .align 2 -.L130: +.L131: .word .LANCHOR0 .fnend .size FlashReadStatus, .-FlashReadStatus @@ -930,49 +937,49 @@ 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, .L141+8 + ldr r9, .L142+8 movs r4, #0 - ldr r7, .L141 + ldr r7, .L142 mov r5, r0 add r10, r9, #256 mov r6, r1 -.L133: - ldrb r3, [r7, #697] @ zero_extendqisi2 +.L134: + ldrb r3, [r7, #1209] @ zero_extendqisi2 cmp r4, r3 - bcs .L140 + bcs .L141 movs r3, #85 str r3, [r5, #8] ldrsb r3, [r4, r10] movs r0, #200 str r3, [r5, #4] bl NandcDelayns - ldrb r3, [r7, #696] @ zero_extendqisi2 + ldrb r3, [r7, #1208] @ zero_extendqisi2 cmp r3, #34 - bne .L134 + bne .L135 add r3, r4, r8 add r3, r3, r10 - b .L139 -.L134: + b .L140 +.L135: cmp r3, #35 - bne .L136 - ldr r2, .L141+4 + bne .L137 + ldr r2, .L142+4 add r3, r4, r8 add r3, r3, r2 -.L139: +.L140: ldrsb r3, [r3, #5] - b .L138 -.L136: + b .L139 +.L137: add r3, r9, r6 ldrsb r3, [r3, #400] -.L138: +.L139: str r3, [r5] adds r4, r4, #1 - b .L133 -.L140: - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L142: - .align 2 + b .L134 .L141: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L143: + .align 2 +.L142: .word .LANCHOR0 .word .LANCHOR1+304 .word .LANCHOR1 @@ -987,21 +994,21 @@ SamsungSetRRPara: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L147 + ldr r3, .L148 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, .L147+4 + ldr r8, .L148+4 adds r5, r1, #3 mov r9, #161 mov r6, r0 mov r7, r3 mov r10, r4 -.L144: - ldrb r3, [r8, #697] @ zero_extendqisi2 +.L145: + ldrb r3, [r8, #1209] @ zero_extendqisi2 cmp r4, r3 - bcs .L146 + bcs .L147 str r9, [r6, #8] mov r0, #300 str r10, [r6] @@ -1011,12 +1018,12 @@ SamsungSetRRPara: ldrsb r3, [r5, #1]! str r3, [r6] bl NandcDelayns - b .L144 -.L146: - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L148: - .align 2 + b .L145 .L147: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L149: + .align 2 +.L148: .word .LANCHOR1+408 .word .LANCHOR0 .fnend @@ -1034,39 +1041,39 @@ HynixSetRRPara: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r3 - ldr r5, .L157 + ldr r5, .L158 mov r6, r0 mov r9, r1 mov fp, r2 - ldr r3, [r5, #692] + ldr r3, [r5, #1204] ldrb r4, [r3, #19] @ zero_extendqisi2 lsls r3, r0, #3 cmp r4, #6 - bne .L150 + bne .L151 add r4, r5, r0, lsl #6 - addw r4, r4, #718 + addw r4, r4, #1230 add r4, r4, r7, lsl #2 - b .L151 -.L150: + b .L152 +.L151: cmp r4, #7 - bne .L152 + bne .L153 mov r10, #160 add r4, r7, r7, lsl #2 mla r10, r10, r0, r5 - addw r10, r10, #726 + addw r10, r10, #1238 add r4, r10, r4, lsl #1 - b .L151 -.L152: + b .L152 +.L153: cmp r4, #8 iteet ne addne r4, r7, r3 - addweq r4, r5, #726 + addweq r4, r5, #1238 addeq r2, r7, r7, lsl #2 addne r4, r5, r4, lsl #3 ite eq addeq r4, r4, r2 - addwne r4, r4, #718 -.L151: + addwne r4, r4, #1230 +.L152: add r3, r3, r5 mov r0, r6 add r9, r9, #-1 @@ -1081,9 +1088,9 @@ HynixSetRRPara: add r3, r10, r8 mov fp, r3 str r2, [r3, #2056] -.L154: +.L155: cmp r1, r9 - beq .L156 + beq .L157 ldrb r3, [r1, #1]! @ zero_extendqisi2 movs r0, #200 str r3, [fp, #2052] @@ -1092,21 +1099,21 @@ HynixSetRRPara: ldrsb r3, [r4, #1]! str r3, [fp, #2048] ldr r1, [sp, #4] - b .L154 -.L156: + b .L155 +.L157: add r8, r8, r10 movs r3, #22 mov r0, r6 add r5, r5, r6 str r3, [r8, #2056] bl NandcFlashDeCs - strb r7, [r5, #1552] + strb r7, [r5, #2064] add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L158: +.L159: .align 2 -.L157: +.L158: .word .LANCHOR0 .fnend .size HynixSetRRPara, .-HynixSetRRPara @@ -1121,35 +1128,35 @@ FlashSetReadRetryDefault: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L165 - ldr r2, [r3, #692] + ldr r3, .L166 + ldr r2, [r3, #1204] ldrb r2, [r2, #19] @ zero_extendqisi2 subs r2, r2, #1 cmp r2, #7 - bhi .L159 + bhi .L160 movs r4, #0 mov r5, r3 -.L160: - ldr r2, .L165+4 +.L161: + ldr r2, .L166+4 uxtb r0, r4 ldrb r3, [r2, r4, lsl #3] @ zero_extendqisi2 cmp r3, #173 - bne .L161 - ldrb r1, [r5, #699] @ zero_extendqisi2 + bne .L162 + ldrb r1, [r5, #1211] @ zero_extendqisi2 subw r2, r2, #854 movs r3, #0 bl HynixSetRRPara -.L161: +.L162: adds r4, r4, #1 cmp r4, #4 - bne .L160 -.L159: + bne .L161 +.L160: pop {r3, r4, r5, pc} -.L166: +.L167: .align 2 -.L165: +.L166: .word .LANCHOR0 - .word .LANCHOR0+1556 + .word .LANCHOR0+2068 .fnend .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .align 1 @@ -1163,51 +1170,51 @@ FlashReadStatusEN: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r5, .L177 + ldr r5, .L178 add r0, r5, r0, lsl #3 - ldr r3, [r5, #692] + ldr r3, [r5, #1204] 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 .L168 - cbnz r2, .L169 + bne .L169 + cbnz r2, .L170 ldrb r2, [r5, #57] @ zero_extendqisi2 - b .L176 -.L169: + b .L177 +.L170: ldrb r2, [r5, #58] @ zero_extendqisi2 -.L176: +.L177: add r3, r3, r6 str r2, [r3, #2056] ldrb r0, [r5, #59] @ zero_extendqisi2 - cbz r0, .L172 + cbz r0, .L173 movs r3, #0 add r5, r6, r4, lsl #8 -.L171: +.L172: cmp r3, r0 - bcs .L172 + bcs .L173 lsls r2, r3, #3 adds r3, r3, #1 lsr r2, r1, r2 uxtb r2, r2 str r2, [r5, #4] - b .L171 -.L168: + b .L172 +.L169: add r3, r3, r6 movs r2, #112 str r2, [r3, #2056] -.L172: +.L173: movs r0, #80 lsls r4, r4, #8 bl NandcDelayns ldr r0, [r6, r4] uxtb r0, r0 pop {r4, r5, r6, pc} -.L178: +.L179: .align 2 -.L177: +.L178: .word .LANCHOR0 .fnend .size FlashReadStatusEN, .-FlashReadStatusEN @@ -1225,16 +1232,16 @@ FlashWaitReadyEN: mov r4, r0 mov r5, r1 mov r6, r2 -.L183: +.L184: mov r0, r4 mov r1, r5 mov r2, r6 bl FlashReadStatusEN cmp r0, #255 mov r3, r0 - beq .L183 + beq .L184 lsls r3, r3, #25 - bpl .L183 + bpl .L184 pop {r4, r5, r6, pc} .fnend .size FlashWaitReadyEN, .-FlashWaitReadyEN @@ -1250,16 +1257,16 @@ FlashWaitCmdDone: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r8, r0 - ldr r5, .L193 + ldr r5, .L194 add r4, r5, r0, lsl #4 - ldr r3, [r4, #1596] - ldrb r6, [r4, #1588] @ zero_extendqisi2 - cbz r3, .L188 + ldr r3, [r4, #2108] + ldrb r6, [r4, #2100] @ zero_extendqisi2 + cbz r3, .L189 add r5, r5, r8, lsl #2 mov r0, r6 bl NandcFlashCs - ldr r1, [r4, #1592] - ldr r2, [r5, #656] + ldr r1, [r4, #2104] + ldr r2, [r5, #1168] mov r0, r6 adds r2, r2, #0 it ne @@ -1268,21 +1275,21 @@ FlashWaitCmdDone: mov r5, r0 mov r0, r6 bl NandcFlashDeCs - ldr r2, [r4, #1596] + ldr r2, [r4, #2108] sbfx r3, r5, #0, #1 str r3, [r2] movs r2, #0 - ldr r1, [r4, #1600] - str r2, [r4, #1596] - cbz r1, .L188 + ldr r1, [r4, #2112] + str r2, [r4, #2108] + cbz r1, .L189 str r3, [r1] - str r2, [r4, #1600] -.L188: + str r2, [r4, #2112] +.L189: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L194: +.L195: .align 2 -.L193: +.L194: .word .LANCHOR0 .fnend .size FlashWaitCmdDone, .-FlashWaitCmdDone @@ -1294,7 +1301,7 @@ flash_read_ecc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L196 + ldr r2, .L197 push {r4, lr} .save {r4, lr} add r0, r2, r0, lsl #3 @@ -1323,9 +1330,9 @@ flash_read_ecc: it cc movcc r0, r3 pop {r4, pc} -.L197: +.L198: .align 2 -.L196: +.L197: .word .LANCHOR0 .fnend .size flash_read_ecc, .-flash_read_ecc @@ -1338,34 +1345,34 @@ NandcWaitFlashReadyNoDelay: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L203 + ldr r3, .L204 push {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, lsl #3 - ldr r4, .L203+4 + ldr r4, .L204+4 ldr r5, [r0, #12] -.L200: +.L201: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #22 - bmi .L201 + bmi .L202 movs r0, #10 bl NandcDelayns subs r4, r4, #1 - bne .L200 + bne .L201 mov r0, #-1 - b .L199 -.L201: + b .L200 +.L202: movs r0, #0 -.L199: +.L200: add sp, sp, #12 @ sp needed pop {r4, r5, pc} -.L204: +.L205: .align 2 -.L203: +.L204: .word .LANCHOR0 .word 100000 .fnend @@ -1379,36 +1386,36 @@ NandcWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L210 + ldr r3, .L211 push {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, lsl #3 - ldr r4, .L210+4 + ldr r4, .L211+4 ldr r5, [r0, #12] movs r0, #150 bl NandcDelayns -.L207: +.L208: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #22 - bmi .L208 + bmi .L209 movs r0, #10 bl NandcDelayns subs r4, r4, #1 - bne .L207 + bne .L208 mov r0, #-1 - b .L206 -.L208: + b .L207 +.L209: movs r0, #0 -.L206: +.L207: add sp, sp, #12 @ sp needed pop {r4, r5, pc} -.L211: +.L212: .align 2 -.L210: +.L211: .word .LANCHOR0 .word 100000 .fnend @@ -1422,7 +1429,7 @@ FlashReset: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L213 + ldr r3, .L214 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} add r3, r3, r0, lsl #3 @@ -1438,9 +1445,9 @@ FlashReset: mov r0, r4 pop {r4, r5, r6, lr} b NandcFlashDeCs -.L214: +.L215: .align 2 -.L213: +.L214: .word .LANCHOR0 .fnend .size FlashReset, .-FlashReset @@ -1456,9 +1463,9 @@ flash_enter_slc_mode: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L217 + ldr r4, .L218 ldrb r3, [r4, #140] @ zero_extendqisi2 - cbz r3, .L215 + cbz r3, .L216 add r4, r4, r5, lsl #3 bl NandcFlashCs movs r0, #100 @@ -1485,11 +1492,11 @@ flash_enter_slc_mode: str r3, [r4, #2056] pop {r3, r4, r5, lr} b NandcWaitFlashReady -.L215: +.L216: pop {r3, r4, r5, pc} -.L218: +.L219: .align 2 -.L217: +.L218: .word .LANCHOR0 .fnend .size flash_enter_slc_mode, .-flash_enter_slc_mode @@ -1505,9 +1512,9 @@ flash_exit_slc_mode: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L221 + ldr r4, .L222 ldrb r3, [r4, #140] @ zero_extendqisi2 - cbz r3, .L219 + cbz r3, .L220 add r4, r4, r5, lsl #3 bl NandcFlashCs movs r0, #100 @@ -1535,11 +1542,11 @@ flash_exit_slc_mode: str r3, [r4, #2056] pop {r3, r4, r5, lr} b NandcWaitFlashReady -.L219: +.L220: pop {r3, r4, r5, pc} -.L222: +.L223: .align 2 -.L221: +.L222: .word .LANCHOR0 .fnend .size flash_exit_slc_mode, .-flash_exit_slc_mode @@ -1589,13 +1596,13 @@ FlashSetInterfaceMode: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r5, .L252 + ldr r5, .L253 movs r4, #0 movs r7, #239 mov lr, #128 mov ip, #1 mov r8, #35 - ldrb r3, [r5, #1716] @ zero_extendqisi2 + ldrb r3, [r5, #2228] @ zero_extendqisi2 mov r9, #32 mov r10, #5 and r2, r3, #1 @@ -1606,83 +1613,83 @@ FlashSetInterfaceMode: str r3, [sp, #8] add r3, r5, #12 str r3, [sp, #4] -.L234: - ldr r1, .L252+4 +.L235: + ldr r1, .L253+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 .L225 + beq .L226 cmp r1, #69 - beq .L225 + beq .L226 cmp r1, #173 - beq .L225 + beq .L226 cmp r1, #44 - bne .L226 -.L225: + bne .L227 +.L226: cmp r0, #1 uxtb r3, r3 - bne .L227 + bne .L228 ldr r5, [sp, #12] - cbz r5, .L226 + cbz r5, .L227 lsls r3, r3, #8 cmp r1, #173 add fp, r6, r3 str r7, [fp, #2056] - bne .L228 + bne .L229 str r0, [fp, #2052] - b .L251 -.L228: + b .L252 +.L229: cmp r1, #44 itete eq streq r0, [fp, #2052] strne lr, [fp, #2052] streq r10, [fp, #2048] strne r0, [fp, #2048] - b .L232 -.L227: + b .L233 +.L228: ldr r5, [sp, #8] - cbz r5, .L226 + cbz r5, .L227 lsls r3, r3, #8 cmp r1, #173 add fp, r6, r3 str r7, [fp, #2056] - bne .L231 + bne .L232 str ip, [fp, #2052] str r9, [fp, #2048] - b .L232 -.L231: + b .L233 +.L232: cmp r1, #44 - bne .L233 + bne .L234 str ip, [fp, #2052] str r8, [fp, #2048] - b .L232 -.L233: + b .L233 +.L234: str lr, [fp, #2052] -.L251: +.L252: str r2, [fp, #2048] -.L232: +.L233: add r3, r3, r6 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L226: +.L227: adds r4, r4, #8 cmp r4, #32 - bne .L234 + bne .L235 movs r0, #0 bl NandcWaitFlashReady movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L253: +.L254: .align 2 -.L252: +.L253: .word .LANCHOR0 - .word .LANCHOR0+1556 + .word .LANCHOR0+2068 .fnend .size FlashSetInterfaceMode, .-FlashSetInterfaceMode .align 1 @@ -1697,8 +1704,8 @@ FlashReadSpare: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r2 - ldr r5, .L255 - ldr r3, .L255+4 + ldr r5, .L256 + ldr r3, .L256+4 add r5, r5, r0, lsl #3 ldrb r3, [r3, #481] @ zero_extendqisi2 ldrb r2, [r5, #16] @ zero_extendqisi2 @@ -1722,9 +1729,9 @@ FlashReadSpare: ldr r3, [r4, #2048] strb r3, [r6] pop {r4, r5, r6, pc} -.L256: +.L257: .align 2 -.L255: +.L256: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -1738,7 +1745,7 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L258 + ldr r2, .L259 push {r4, lr} .save {r4, lr} add r2, r2, r0, lsl #3 @@ -1768,9 +1775,9 @@ SandiskProgTestBadBlock: ldr r0, [r4, #2048] and r0, r0, #1 pop {r4, pc} -.L259: +.L260: .align 2 -.L258: +.L259: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -1793,16 +1800,16 @@ SandiskSetRRPara: movs r0, #200 mov r4, r1 bl NandcDelayns - ldr r0, .L267 - ldr r1, .L267+4 + ldr r0, .L268 + ldr r1, .L268+4 add r4, r4, r4, lsl #2 movs r2, #0 sub r6, r0, #48 -.L261: - ldrb r3, [r1, #697] @ zero_extendqisi2 +.L262: + ldrb r3, [r1, #1209] @ zero_extendqisi2 cmp r2, r3 - bcs .L266 - ldrb r3, [r1, #696] @ zero_extendqisi2 + bcs .L267 + ldrb r3, [r1, #1208] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 ite eq @@ -1811,14 +1818,14 @@ SandiskSetRRPara: adds r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L261 -.L266: + b .L262 +.L267: movs r0, #0 pop {r4, r5, r6, lr} b NandcWaitFlashReady -.L268: +.L269: .align 2 -.L267: +.L268: .word .LANCHOR1+304 .word .LANCHOR0 .fnend @@ -1837,7 +1844,7 @@ micron_auto_read_calibration_config: mov r4, r0 mov r5, r1 bl NandcWaitFlashReady - ldr r3, .L270 + ldr r3, .L271 movs r0, #200 add r2, r3, r4, lsl #3 ldrb r4, [r2, #16] @ zero_extendqisi2 @@ -1854,9 +1861,9 @@ micron_auto_read_calibration_config: str r3, [r4, #2048] str r3, [r4, #2048] pop {r3, r4, r5, pc} -.L271: +.L272: .align 2 -.L270: +.L271: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -1867,68 +1874,65 @@ micron_auto_read_calibration_config: .type FlashEraseSLc2KBlocks, %function FlashEraseSLc2KBlocks: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} + push {r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} movs r5, #0 - ldr r7, .L284 - .pad #24 - sub sp, sp, #24 - ldr r9, .L284+8 + ldr r8, .L284+4 + .pad #20 + sub sp, sp, #20 mov r6, r0 - mov r10, r1 - mov r8, r5 - ldr r3, [r7] - str r3, [sp, #20] -.L273: - cmp r8, r10 + mov r9, r1 + mov r7, r5 +.L274: + cmp r7, r9 beq .L283 - rsb r3, r8, r10 - add r2, sp, #12 + rsb r3, r7, r9 + add r2, sp, #8 adds r0, r6, r5 movs r1, #0 uxtb r3, r3 str r3, [sp] - add r3, sp, #16 + add r3, sp, #12 bl LogAddr2PhyAddr - ldrb r2, [r9, #1717] @ zero_extendqisi2 - ldr r3, [sp, #16] + ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldr r3, [sp, #12] cmp r3, r2 - bcc .L274 + bcc .L275 mov r3, #-1 str r3, [r6, r5] - b .L275 -.L274: - add r2, r9, r3 - add r3, r9, r3, lsl #4 - ldrb r4, [r2, #1720] @ zero_extendqisi2 - strb r4, [r3, #1588] + b .L276 +.L275: + add r2, r8, r3 + add r3, r8, r3, lsl #4 + ldrb r4, [r2, #2232] @ zero_extendqisi2 + strb r4, [r3, #2100] mov r0, r4 bl NandcWaitFlashReady mov r0, r4 bl NandcFlashCs movs r2, #0 mov r0, r4 - ldr r1, [sp, #12] + ldr r1, [sp, #8] bl FlashEraseCmd mov r0, r4 bl NandcWaitFlashReady mov r0, r4 - ldr r1, [sp, #12] + ldr r1, [sp, #8] bl FlashReadStatus movs r2, #0 - ldr r3, [sp, #12] + ldr r3, [sp, #8] sbfx r0, r0, #0, #1 str r0, [r6, r5] mov r0, r4 - ldr r1, [r9, #4] + ldr r1, [r8, #4] add r1, r1, r3 bl FlashEraseCmd mov r0, r4 bl NandcWaitFlashReady mov r0, r4 - ldr r1, [sp, #12] + ldr r1, [sp, #8] bl FlashReadStatus lsls r3, r0, #31 itt mi @@ -1936,32 +1940,25 @@ FlashEraseSLc2KBlocks: strmi r3, [r6, r5] ldr r3, [r6, r5] adds r3, r3, #1 - bne .L277 - ldr r0, .L284+4 - ldr r1, [sp, #12] + bne .L278 + ldr r0, .L284 + ldr r1, [sp, #8] bl printk -.L277: +.L278: mov r0, r4 bl NandcFlashDeCs -.L275: - add r8, r8, #1 +.L276: + adds r7, r7, #1 adds r5, r5, #36 - b .L273 + b .L274 .L283: - ldr r2, [sp, #20] movs r0, #0 - ldr r3, [r7] - cmp r2, r3 - beq .L279 - bl __stack_chk_fail -.L279: - add sp, sp, #24 + add sp, sp, #20 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, pc} + pop {r4, r5, r6, r7, r8, r9, pc} .L285: .align 2 .L284: - .word __stack_chk_guard .word .LC1 .word .LANCHOR0 .fnend @@ -2046,7 +2043,7 @@ ftl_flash_de_init: ldr r4, .L302 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldr r0, [r4, #1728] + ldr r0, [r4, #2240] cbz r0, .L293 movs r0, #0 bl flash_enter_slc_mode @@ -2054,10 +2051,10 @@ ftl_flash_de_init: .L293: bl flash_exit_slc_mode .L294: - ldrb r3, [r4, #1732] @ zero_extendqisi2 + ldrb r3, [r4, #2244] @ zero_extendqisi2 ldr r5, .L302 cbz r3, .L295 - ldrb r3, [r5, #1716] @ zero_extendqisi2 + ldrb r3, [r5, #2228] @ zero_extendqisi2 lsls r3, r3, #31 bpl .L295 movs r0, #1 @@ -2065,7 +2062,7 @@ ftl_flash_de_init: movs r0, #1 bl NandcSetMode movs r3, #0 - strb r3, [r5, #1732] + strb r3, [r5, #2244] .L295: ldr r3, [r4, #12] movs r0, #0 @@ -2224,17 +2221,17 @@ NandcInit: bfi r2, r1, #13, #1 ldr r1, [r0, #352] orr r2, r2, #256 - str r4, [r3, #1736] + str r4, [r3, #2248] movw r4, #2049 ubfx r1, r1, #16, #4 - str r1, [r3, #1740] + str r1, [r3, #2252] ldr r1, [r0, #352] cmp r1, r4 mov r4, r3 - str r1, [r3, #1744] + str r1, [r3, #2256] itt eq moveq r3, #8 - streq r3, [r4, #1740] + streq r3, [r4, #2252] str r2, [r0] movs r0, #40 ldr r3, [r4, #76] @@ -2247,12 +2244,12 @@ NandcInit: ldr r2, .L326+4 str r2, [r3, #304] bl ftl_malloc - str r5, [r4, #1776] - str r5, [r4, #1784] - str r0, [r4, #1748] - str r0, [r4, #1752] + str r5, [r4, #2288] + str r5, [r4, #2296] + str r0, [r4, #2260] + str r0, [r4, #2264] add r0, r0, #32768 - str r0, [r4, #1756] + str r0, [r4, #2268] pop {r3, r4, r5, pc} .L327: .align 2 @@ -2308,7 +2305,7 @@ NandcBchSel: ldr r3, .L339 movs r1, #1 ldr r2, [r3, #76] - str r0, [r3, #1788] + str r0, [r3, #2300] movs r3, #0 str r1, [r2, #8] movs r1, #16 @@ -2350,7 +2347,7 @@ FlashBchSel: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. ldr r3, .L342 - strb r0, [r3, #1792] + strb r0, [r3, #2304] b NandcBchSel .L343: .align 2 @@ -2372,7 +2369,7 @@ ftl_flash_resume: .save {r4, r5, r6, lr} movs r5, #0 ldr r2, [r3, #76] - addw r6, r3, #1556 + addw r6, r3, #2068 ldr r1, [r3, #80] mov r4, r3 str r1, [r2] @@ -2403,19 +2400,19 @@ ftl_flash_resume: adds r5, r5, #1 cmp r5, #4 bne .L346 - ldrb r3, [r4, #1732] @ zero_extendqisi2 + ldrb r3, [r4, #2244] @ zero_extendqisi2 ldr r5, .L352 cbz r3, .L347 movs r0, #1 bl NandcSetMode - ldrb r0, [r5, #1716] @ zero_extendqisi2 + ldrb r0, [r5, #2228] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #1716] @ zero_extendqisi2 + ldrb r0, [r5, #2228] @ zero_extendqisi2 bl NandcSetMode ldrb r0, [r5, #97] @ zero_extendqisi2 bl NandcSetDdrPara .L347: - ldr r3, [r4, #692] + ldr r3, [r4, #1204] pop {r4, r5, r6, lr} ldrb r0, [r3, #20] @ zero_extendqisi2 b FlashBchSel @@ -2500,80 +2497,76 @@ NandcIqrWaitFlashReady: .type FlashEraseBlocks, %function FlashEraseBlocks: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ 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 r8, r2 - ldr r3, .L393 - .pad #36 - sub sp, sp, #36 - ldr r4, .L393+4 mov r9, r0 + ldr r4, .L392 + .pad #28 + sub sp, sp, #28 mov r10, r1 - ldr r2, [r3] + mov r8, r2 ldrb r5, [r4] @ zero_extendqisi2 - str r3, [sp, #12] - str r2, [sp, #28] - cbz r5, .L377 - mov r1, r8 + cbz r5, .L376 + mov r1, r2 bl FlashEraseSLc2KBlocks b .L360 -.L377: +.L376: mov fp, r4 .L359: cmp r5, r8 - bcs .L391 + bcs .L390 movs r3, #36 movs r1, #0 - add r2, sp, #20 + add r2, sp, #16 mul r6, r3, r5 add r3, r9, r6 - str r3, [sp, #8] + str r3, [sp, #12] rsb r3, r5, r8 - ldr r0, [sp, #8] + ldr r0, [sp, #12] uxtb r3, r3 str r3, [sp] - add r3, sp, #24 + add r3, sp, #20 bl LogAddr2PhyAddr - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 mov r7, r0 - ldr r0, [sp, #24] + ldr r0, [sp, #20] cmp r0, r3 bcc .L361 mov r3, #-1 str r3, [r9, r6] b .L362 .L361: - ldrb r3, [fp, #1793] @ zero_extendqisi2 + ldrb r3, [fp, #2305] @ zero_extendqisi2 cmp r3, #0 add r3, r4, r0, lsl #4 it eq moveq r7, #0 - ldr r3, [r3, #1596] + ldr r3, [r3, #2108] cbz r3, .L364 uxtb r0, r0 bl FlashWaitCmdDone .L364: - ldr r1, [sp, #24] - ldr r3, [sp, #8] + ldr r1, [sp, #20] + ldr r3, [sp, #12] lsls r2, r1, #4 add lr, r4, r2 - str r3, [lr, #1596] + str r3, [lr, #2108] movs r3, #0 - str r3, [lr, #1600] - ldr r3, [sp, #20] - str r3, [lr, #1592] + 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, #1600] + str r3, [lr, #2112] .L365: add r1, r1, r4 add r2, r2, r4 - ldrb r6, [r1, #1720] @ zero_extendqisi2 + ldrb r6, [r1, #2232] @ zero_extendqisi2 mov r0, r6 - strb r6, [r2, #1588] + strb r6, [r2, #2100] bl NandcFlashCs cmp r10, #1 mov r0, r6 @@ -2585,36 +2578,36 @@ FlashEraseBlocks: .L366: bl flash_exit_slc_mode .L367: - ldr r3, [sp, #24] + ldr r3, [sp, #20] mov r0, r6 - ldr r1, [sp, #20] + ldr r1, [sp, #16] add r5, r5, r7 add r3, r4, r3, lsl #2 - ldr r2, [r3, #656] + ldr r2, [r3, #1168] adds r2, r2, #0 it ne movne r2, #1 bl FlashWaitReadyEN mov r0, r6 mov r2, r7 - ldr r1, [sp, #20] + ldr r1, [sp, #16] bl FlashEraseCmd mov r0, r6 bl NandcFlashDeCs .L362: adds r5, r5, #1 b .L359 -.L391: +.L390: ldr r0, [r4, #76] movs r5, #0 bl NandcIqrWaitFlashReady - ldr r6, .L393+4 - addw r7, r6, #1588 + ldr r6, .L392 + addw r7, r6, #2100 .L369: - ldrb r2, [r4, #1717] @ zero_extendqisi2 - ldr r3, .L393+4 + ldrb r2, [r4, #2229] @ zero_extendqisi2 + ldr r3, .L392 cmp r5, r2 - bcs .L392 + bcs .L391 uxtb r0, r5 bl FlashWaitCmdDone cmp r10, #1 @@ -2627,14 +2620,14 @@ FlashEraseBlocks: .L370: adds r5, r5, #1 b .L369 -.L392: - ldr r2, [r3, #1796] +.L391: + ldr r2, [r3, #2308] cbnz r2, .L372 .L374: movs r0, #0 b .L360 .L372: - ldrb r3, [r3, #1556] @ zero_extendqisi2 + ldrb r3, [r3, #2068] @ zero_extendqisi2 cmp r3, #69 bne .L374 movs r3, #0 @@ -2648,20 +2641,12 @@ FlashEraseBlocks: str r1, [r9, r0] b .L373 .L360: - ldr r3, [sp, #12] - ldr r2, [sp, #28] - ldr r3, [r3] - cmp r2, r3 - beq .L376 - bl __stack_chk_fail -.L376: - add sp, sp, #36 + add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L394: - .align 2 .L393: - .word __stack_chk_guard + .align 2 +.L392: .word .LANCHOR0 .fnend .size FlashEraseBlocks, .-FlashEraseBlocks @@ -2697,7 +2682,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L397 + ldr r3, .L396 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -2710,9 +2695,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L398: - .align 2 .L397: + .align 2 +.L396: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -2728,12 +2713,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L400: +.L399: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #11 - bpl .L400 + bpl .L399 add sp, sp, #8 @ sp needed bx lr @@ -2752,124 +2737,115 @@ NandcXferStart: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - mov r8, r2 - mov r7, r1 - ldr r2, [sp, #60] + mov r6, r1 + ldr r1, [sp, #60] ldr fp, [sp, #56] - cbnz r2, .L417 - adds r2, fp, #0 + cbnz r1, .L416 + adds r1, fp, #0 it ne - movne r2, #1 - b .L404 -.L417: - movs r2, #1 -.L404: - ldr r5, .L422 + movne r1, #1 + b .L403 +.L416: + movs r1, #1 +.L403: + ldr r5, .L421 + mov lr, #16 movs r4, #0 add r0, r5, r0, lsl #3 - ldr r6, [r0, #12] - ldrb r1, [r0, #16] @ zero_extendqisi2 - movs r0, #16 - ldr r9, [r6, #12] - bfi r9, r0, #8, #8 - bfi r9, r4, #3, #1 - bfi r4, r7, #1, #1 - bfi r9, r1, #5, #3 + ldr r7, [r0, #12] + ldrb r0, [r0, #16] @ zero_extendqisi2 + ldr r8, [r7, #12] + bfi r8, lr, #8, #8 + bfi r8, r4, #3, #1 + bfi r4, r6, #1, #1 + bfi r8, r0, #5, #3 orr r4, r4, #8 - movs r1, #1 - bfi r4, r1, #5, #2 - lsrs r3, r3, r1 + movs r0, #1 + bfi r4, r0, #5, #2 + lsrs r3, r3, r0 orr r4, r4, #536870912 orr r4, r4, #1024 bfi r4, r3, #4, #1 - ldr r3, [r5, #1740] + ldr r3, [r5, #2252] cmp r3, #3 - bls .L405 - ldr r3, [r6, #16] + bls .L404 + ldr r3, [r7, #16] str r3, [sp, #12] ldr r3, [sp, #12] bic r3, r3, #4 str r3, [sp, #12] - cmp r2, #0 - beq .L406 - cbnz r7, .L407 -.L415: - mov r0, r6 - add r8, r8, #1 - bl rk_nandc_xfer_irq_flag_init - ldr r3, [r6, #368] - asr r8, r8, #1 - orr r3, r3, #1 - str r3, [r6, #368] - ldr r3, [r6, #364] - bfi r4, r8, #22, #6 - orr r3, r3, #1 - str r3, [r6, #364] + cmp r1, #0 + beq .L405 + cbnz r6, .L406 +.L414: + adds r2, r2, #1 + asrs r2, r2, #1 + bfi r4, r2, #22, #6 cmp fp, #0 - beq .L408 + beq .L407 mov r0, fp - b .L409 -.L407: - ldr r3, [r5, #1788] - mov ip, r5 - ldr r0, [sp, #60] + b .L408 +.L406: + ldr r3, [r5, #2300] + mov r9, r5 + ldr lr, [sp, #60] cmp r3, #25 ite cc movcc r3, #64 movcs r3, #128 str r3, [sp] - lsr r3, r8, #1 + lsrs r3, r2, #1 str r3, [sp, #4] movs r3, #0 - mov r1, r3 -.L411: - ldr r2, [sp, #4] - cmp r1, r2 - bcs .L415 - ldr r2, [sp, #60] + mov r0, r3 +.L410: + ldr r1, [sp, #4] + cmp r0, r1 + bcs .L414 + ldr r1, [sp, #60] lsr r10, r3, #2 - cbz r2, .L412 - ldrh r2, [r0, #2] - ldrh lr, [r0], #4 - orr lr, lr, r2, lsl #16 - ldr r2, [ip, #1756] - str lr, [r2, r10, lsl #2] - b .L413 + cbz r1, .L411 + ldrh r1, [lr, #2] + ldrh ip, [lr], #4 + orr ip, ip, r1, lsl #16 + ldr r1, [r9, #2268] + str ip, [r1, r10, lsl #2] + b .L412 +.L411: + ldr r1, [r9, #2268] + mov ip, r1 + mov r1, #-1 + str r1, [ip, r10, lsl #2] .L412: - ldr r2, [ip, #1756] - mov lr, r2 - mov r2, #-1 - str r2, [lr, r10, lsl #2] -.L413: - ldr r2, [sp] - adds r1, r1, #1 - add r3, r3, r2 - b .L411 + ldr r1, [sp] + adds r0, r0, #1 + add r3, r3, r1 + b .L410 +.L407: + ldr r0, [r5, #2264] .L408: - ldr r0, [r5, #1752] -.L409: - ldr r3, [r5, #1756] - ubfx r8, r4, #22, #5 - mov r2, r7 - str r0, [r5, #1760] - lsl r1, r8, #10 - str r3, [r5, #1764] + ldr r3, [r5, #2268] + ubfx r9, r4, #22, #5 + mov r2, r6 + str r0, [r5, #2272] + lsl r1, r9, #10 + str r3, [r5, #2276] bl rknand_dma_map_single - mov r2, r7 - lsl r1, r8, #7 - clz r7, r7 - lsrs r7, r7, #5 - str r0, [r5, #1768] - ldr r0, [r5, #1764] + mov r2, r6 + lsl r1, r9, #7 + clz r6, r6 + lsrs r6, r6, #5 + str r0, [r5, #2280] + ldr r0, [r5, #2276] bl rknand_dma_map_single movs r3, #1 - str r3, [r5, #1776] + str r3, [r5, #2288] tst fp, #3 - ldr r3, [r5, #1768] - str r0, [r5, #1772] - str r3, [r6, #20] - ldr r3, [r5, #1772] - str r3, [r6, #24] + ldr r3, [r5, #2280] + str r0, [r5, #2284] + str r3, [r7, #20] + ldr r3, [r5, #2284] + str r3, [r7, #24] mov r3, #0 str r3, [sp, #12] ldr r3, [sp, #12] @@ -2889,25 +2865,25 @@ NandcXferStart: str r3, [sp, #12] ldr r3, [sp, #12] bic r3, r3, #2 - orr r7, r3, r7, lsl #1 - str r7, [sp, #12] + orr r6, r3, r6, lsl #1 + str r6, [sp, #12] ldr r3, [sp, #12] orr r3, r3, #1 str r3, [sp, #12] -.L406: - ldr r3, [sp, #12] - str r3, [r6, #16] .L405: - str r9, [r6, #12] - str r4, [r6, #8] + ldr r3, [sp, #12] + str r3, [r7, #16] +.L404: + str r8, [r7, #12] + str r4, [r7, #8] orr r4, r4, #4 - str r4, [r6, #8] + str r4, [r7, #8] add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L423: - .align 2 .L422: + .align 2 +.L421: .word .LANCHOR0 .fnend .size NandcXferStart, .-NandcXferStart @@ -2923,14 +2899,14 @@ Ftl_log2: @ link register save eliminated. movs r1, #0 movs r2, #1 -.L425: +.L424: cmp r2, r0 uxth r3, r1 add r1, r1, #1 - bhi .L427 + bhi .L426 lsls r2, r2, #1 - b .L425 -.L427: + b .L424 +.L426: subs r0, r3, #1 uxth r0, r0 bx lr @@ -2959,25 +2935,25 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L431 + ldr r3, .L430 cmp r0, #23 it ls movls r0, #24 - ldrh r2, [r3, #1804] - ldrh r1, [r3, #1814] - str r0, [r3, #1800] + ldrh r2, [r3, #2316] + ldrh r1, [r3, #2326] + str r0, [r3, #2312] muls r2, r0, r2 subs r0, r1, r0 - ldr r1, [r3, #1820] - strh r0, [r3, #1812] @ movhi + ldr r1, [r3, #2332] + strh r0, [r3, #2324] @ movhi movs r0, #0 - str r2, [r3, #1808] + str r2, [r3, #2320] subs r2, r1, r2 - str r2, [r3, #1816] + str r2, [r3, #2328] bx lr -.L432: - .align 2 .L431: + .align 2 +.L430: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -2996,29 +2972,29 @@ FtlConstantsInit: sub sp, sp, #20 ldrh r1, [r0, #14] mov r5, r0 - ldr r4, .L461 + ldr r4, .L460 ldrh lr, [r0, #8] str r1, [sp] ldrh r1, [sp] ldrh r2, [r0, #10] ldrh r3, [r0, #12] - add r0, r4, #1832 - strh r1, [r4, #1814] @ movhi + addw r0, r4, #2344 + strh r1, [r4, #2326] @ movhi movs r1, #0 - strh lr, [r4, #1824] @ movhi - strh r2, [r4, #1826] @ movhi - strh r3, [r4, #1828] @ movhi -.L434: + strh lr, [r4, #2336] @ movhi + strh r2, [r4, #2338] @ movhi + strh r3, [r4, #2340] @ movhi +.L433: strb r1, [r1, r0] adds r1, r1, #1 cmp r1, #32 - bne .L434 + bne .L433 ldrh r0, [r5, #14] ldrh r1, [r5, #20] cmp r1, r0, lsr #8 - bcs .L435 + bcs .L434 uxtb r10, r3 - ldr r9, .L461+4 + ldr r9, .L460+4 lsl r1, r10, #1 uxtb r1, r1 str r1, [sp, #8] @@ -3026,9 +3002,9 @@ FtlConstantsInit: muls r1, r3, r1 str r1, [sp, #4] movs r1, #0 -.L436: +.L435: cmp r1, r3 - bcs .L438 + bcs .L437 ldr r6, [sp, #4] rsb ip, r3, r1 uxtb r0, r1 @@ -3038,10 +3014,10 @@ FtlConstantsInit: str r6, [sp, #12] movs r6, #0 mov r8, r6 -.L439: +.L438: cmp r8, r2 add r6, r6, r3 - bcs .L460 + bcs .L459 ldr r7, [sp, #12] add fp, r0, r10 strb r0, [ip, r6] @@ -3050,161 +3026,161 @@ FtlConstantsInit: ldr r7, [sp, #8] add r0, r0, r7 uxtb r0, r0 - b .L439 -.L460: + b .L438 +.L459: adds r1, r1, #1 - b .L436 -.L438: + b .L435 +.L437: lsls r2, r2, #1 - strh r2, [r4, #1826] @ movhi + strh r2, [r4, #2338] @ movhi ldr r2, [sp] lsrs r7, r2, #1 - strh r7, [r4, #1814] @ movhi -.L435: + strh r7, [r4, #2326] @ movhi +.L434: cmp lr, #1 mov r2, #5 - strh r2, [r4, #1864] @ movhi + strh r2, [r4, #2376] @ movhi mov r2, #0 - strh r2, [r4, #1866] @ movhi + strh r2, [r4, #2378] @ movhi it eq - ldreq r2, .L461 + ldreq r2, .L460 ldrb r9, [r4] @ zero_extendqisi2 it eq - strheq lr, [r2, #1864] @ movhi + strheq lr, [r2, #2376] @ movhi mov r2, #4352 - strh r2, [r4, #1868] @ movhi + strh r2, [r4, #2380] @ movhi cmp r9, #0 - beq .L441 - ldr r2, .L461 + beq .L440 + ldr r2, .L460 mov r1, #384 - strh r1, [r2, #1868] @ movhi -.L441: - ldrh r7, [r4, #1826] - ldrh r6, [r4, #1814] + strh r1, [r2, #2380] @ movhi +.L440: + ldrh r7, [r4, #2338] + ldrh r6, [r4, #2326] 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, #1872] @ movhi - strh fp, [r4, #1878] @ movhi + strh r8, [r4, #2384] @ movhi + strh fp, [r4, #2390] @ movhi uxth r7, r7 - strh r1, [r4, #1874] @ movhi + strh r1, [r4, #2386] @ movhi str r1, [sp] - strh r3, [r4, #1870] @ movhi + strh r3, [r4, #2382] @ movhi smulbb r3, r7, r8 - strh r7, [r4, #1804] @ movhi - strh r3, [r4, #1876] @ movhi + strh r7, [r4, #2316] @ movhi + strh r3, [r4, #2388] @ movhi bl Ftl_log2 lsl r3, fp, #9 cmp r6, #1024 uxth r3, r3 - strh r3, [r4, #1882] @ movhi + strh r3, [r4, #2394] @ movhi it hi - ldrhi r2, .L461 + ldrhi r2, .L460 lsr r3, r3, #8 - strh r3, [r4, #1884] @ movhi + strh r3, [r4, #2396] @ movhi ldrh r3, [r5, #26] - strh r3, [r4, #1886] @ movhi + strh r3, [r4, #2398] @ movhi mul r3, r6, r7 - str r3, [r4, #1820] + str r3, [r4, #2332] itt hi uxtbhi r3, r6 - strhhi r3, [r2, #1866] @ movhi + strhhi r3, [r2, #2378] @ movhi mov r10, r0 - ldrh r5, [r4, #1866] + ldrh r5, [r4, #2378] ldr r1, [sp] subs r5, r6, r5 - strh r0, [r4, #1880] @ movhi - ldrh r0, [r4, #1868] + strh r0, [r4, #2392] @ movhi + ldrh r0, [r4, #2380] muls r5, r7, r5 - ldr r3, .L461 + ldr r3, .L460 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, #1888] + str r5, [r4, #2400] bl __aeabi_idiv ldr r3, [sp] uxth r0, r0 cmp r0, #4 itet ls movls r2, #4 - strhhi r0, [r3, #1892] @ movhi - strhls r2, [r3, #1892] @ movhi + strhhi r0, [r3, #2404] @ movhi + strhls r2, [r3, #2404] @ movhi cmp r9, #0 - beq .L445 + beq .L444 mov r3, #640 - strh r3, [r4, #1868] @ movhi -.L445: - ldrh r3, [r4, #1868] + strh r3, [r4, #2380] @ movhi +.L444: + ldrh r3, [r4, #2380] lsls r6, r6, #6 mov r1, r7 - ldr r5, .L461 + ldr r5, .L460 asr r3, r3, r10 add r10, r10, #9 asr r6, r6, r10 adds r3, r3, #2 - strh r3, [r4, #1894] @ movhi + strh r3, [r4, #2406] @ movhi uxth r0, r6 - strh r6, [r4, #1896] @ movhi + strh r6, [r4, #2408] @ movhi add r6, r0, #8 mul r3, r7, r0 - ldrh r0, [r4, #1892] - str r3, [r4, #1900] + ldrh r0, [r4, #2404] + str r3, [r4, #2412] bl __aeabi_uidiv cmp r7, #1 uxtah r0, r6, r0 - ldr r6, .L461 + ldr r6, .L460 it eq addeq r0, r0, #4 - str r0, [r5, #1800] - ldrh r0, [r4, #1800] + str r0, [r5, #2312] + ldrh r0, [r4, #2312] bl FtlSysBlkNumInit - ldr r3, [r4, #1800] - ldr r5, [r4, #1816] + ldr r3, [r4, #2312] + ldr r5, [r4, #2328] mov r0, #2048 - ldrh r7, [r4, #1878] - str r3, [r4, #1904] - ldrh r3, [r4, #1872] + ldrh r7, [r4, #2390] + str r3, [r4, #2416] + ldrh r3, [r4, #2384] lsls r5, r5, #2 mov r1, r7 muls r5, r3, r5 - ldrh r3, [r4, #1880] + ldrh r3, [r4, #2392] adds r3, r3, #9 lsrs r5, r5, r3 adds r5, r5, #2 uxth r5, r5 - strh r5, [r4, #1908] @ movhi + strh r5, [r4, #2420] @ movhi bl __aeabi_idiv - ldrh r2, [r4, #1892] + ldrh r2, [r4, #2404] movs r3, #0 - str r3, [r4, #1912] + str r3, [r4, #2424] adds r3, r2, #3 - strh r3, [r4, #1892] @ movhi - ldr r3, [r4, #1900] + strh r3, [r4, #2404] @ movhi + ldr r3, [r4, #2412] adds r1, r3, #3 - str r1, [r4, #1900] - strh r0, [r4, #1910] @ movhi + str r1, [r4, #2412] + strh r0, [r4, #2422] @ movhi ldrb r0, [r4, #140] @ zero_extendqisi2 - cbz r0, .L448 + cbz r0, .L447 adds r2, r2, #4 adds r3, r3, #5 - strh r2, [r6, #1892] @ movhi - b .L459 -.L448: + strh r2, [r6, #2404] @ movhi + b .L458 +.L447: cmp r1, #7 - bhi .L449 + bhi .L448 movs r3, #8 -.L459: - str r3, [r6, #1900] -.L449: - ldrh r2, [r4, #1812] +.L458: + str r3, [r6, #2412] +.L448: + ldrh r2, [r4, #2324] movs r3, #0 - strh r3, [r4, #1916] @ movhi + strh r3, [r4, #2428] @ movhi movs r0, #0 lsrs r3, r2, #3 add r3, r3, r2, lsl #1 @@ -3213,16 +3189,16 @@ FtlConstantsInit: cmp r5, r7, lsl #9 ittt cc movcc r2, #1 - ldrcc r3, .L461 - strhcc r2, [r3, #1916] @ movhi + ldrcc r3, .L460 + strhcc r2, [r3, #2428] @ movhi add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L462: - .align 2 .L461: + .align 2 +.L460: .word .LANCHOR0 - .word .LANCHOR0+1832 + .word .LANCHOR0+2344 .fnend .size FtlConstantsInit, .-FtlConstantsInit .align 1 @@ -3235,26 +3211,26 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L470 - ldrh r3, [r2, #1918] - cbz r3, .L469 - ldr r3, [r2, #1920] - ldrh r2, [r2, #1892] + ldr r2, .L469 + ldrh r3, [r2, #2430] + cbz r3, .L468 + ldr r3, [r2, #2432] + ldrh r2, [r2, #2404] add r2, r3, r2, lsl #1 -.L465: +.L464: cmp r3, r2 - beq .L469 + beq .L468 ldrh r1, [r3], #2 cmp r1, r0 - bne .L465 + bne .L464 movs r0, #1 bx lr -.L469: +.L468: movs r0, #0 bx lr -.L471: - .align 2 .L470: + .align 2 +.L469: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -3267,34 +3243,34 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L480 + ldr r2, .L479 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r3, [r2, #1924] - cbz r3, .L479 - ldr r5, [r2, #1928] + ldr r3, [r2, #2436] + cbz r3, .L478 + ldr r5, [r2, #2440] movs r6, #36 movs r2, #0 -.L475: +.L474: mla r4, r6, r2, r5 ldr r4, [r4, #16] cmp r4, r0 - bcc .L474 + bcc .L473 cmp r4, r1 - bls .L477 -.L474: + bls .L476 +.L473: adds r2, r2, #1 cmp r2, r3 - bne .L475 -.L479: + bne .L474 +.L478: movs r0, #0 pop {r4, r5, r6, pc} -.L477: +.L476: movs r0, #1 pop {r4, r5, r6, pc} -.L481: - .align 2 .L480: + .align 2 +.L479: .word .LANCHOR0 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -3308,12 +3284,12 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L483 - ldr r0, [r3, #1912] + ldr r3, .L482 + ldr r0, [r3, #2424] bx lr -.L484: - .align 2 .L483: + .align 2 +.L482: .word .LANCHOR0 .fnend .size FtlGetCap, .-FtlGetCap @@ -3327,12 +3303,12 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L486 - ldr r0, [r3, #1912] + ldr r3, .L485 + ldr r0, [r3, #2424] bx lr -.L487: - .align 2 .L486: + .align 2 +.L485: .word .LANCHOR0 .fnend .size ftl_get_density, .-ftl_get_density @@ -3346,12 +3322,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L489 - ldr r0, [r3, #1932] + ldr r3, .L488 + ldr r0, [r3, #2444] bx lr -.L490: - .align 2 .L489: + .align 2 +.L488: .word .LANCHOR0 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -3368,14 +3344,14 @@ FtlBbmMapBadBlock: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r0 - ldr r5, .L492 - ldrh r4, [r5, #1870] + ldr r5, .L491 + ldrh r4, [r5, #2382] mov r1, r4 bl __aeabi_uidiv uxth r2, r0 smulbb r3, r2, r4 add r1, r5, r2, lsl #2 - ldr r4, [r1, #1964] + ldr r4, [r1, #2476] movs r1, #1 subs r3, r6, r3 uxth r3, r3 @@ -3384,21 +3360,21 @@ FtlBbmMapBadBlock: lsls r1, r1, r0 ldr r0, [r4, r7, lsl #2] orrs r1, r1, r0 - ldr r0, .L492+4 + ldr r0, .L491+4 str r1, [r4, r7, lsl #2] str r1, [sp] mov r1, r6 bl printk - ldrh r3, [r5, #1942] + ldrh r3, [r5, #2454] movs r0, #0 adds r3, r3, #1 - strh r3, [r5, #1942] @ movhi + strh r3, [r5, #2454] @ movhi add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L493: - .align 2 .L492: + .align 2 +.L491: .word .LANCHOR0 .word .LC2 .fnend @@ -3416,8 +3392,8 @@ FtlBbmIsBadBlock: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r5, .L495 - ldrh r6, [r5, #1870] + ldr r5, .L494 + ldrh r6, [r5, #2382] mov r1, r6 bl __aeabi_uidivmod mov r0, r7 @@ -3428,14 +3404,14 @@ FtlBbmIsBadBlock: and r4, r4, #31 uxth r0, r0 add r5, r5, r0, lsl #2 - ldr r3, [r5, #1964] + ldr r3, [r5, #2476] ldr r0, [r3, r2, lsl #2] lsrs r0, r0, r4 and r0, r0, #1 pop {r3, r4, r5, r6, r7, pc} -.L496: - .align 2 .L495: + .align 2 +.L494: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -3464,28 +3440,28 @@ FtlBbtCalcTotleCnt: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L506 - ldrh r6, [r4, #1870] - ldrh r3, [r4, #1826] + ldr r4, .L505 + ldrh r6, [r4, #2382] + ldrh r3, [r4, #2338] mov r4, r5 muls r6, r3, r6 -.L499: +.L498: uxth r0, r5 cmp r0, r6 - bge .L505 + bge .L504 bl FtlBbmIsBadBlock - cbz r0, .L500 + cbz r0, .L499 adds r4, r4, #1 uxth r4, r4 -.L500: +.L499: adds r5, r5, #1 - b .L499 -.L505: + b .L498 +.L504: mov r0, r4 pop {r4, r5, r6, pc} -.L507: - .align 2 .L506: + .align 2 +.L505: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -3501,22 +3477,22 @@ V2P_block: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r1 - ldr r6, .L509 + ldr r6, .L508 mov r7, r0 - ldrh r5, [r6, #1828] + ldrh r5, [r6, #2340] mov r1, r5 bl __aeabi_uidivmod mov r0, r7 smlabb r4, r4, r5, r1 mov r1, r5 bl __aeabi_uidiv - ldrh r3, [r6, #1870] + ldrh r3, [r6, #2382] smlabb r0, r3, r0, r4 uxth r0, r0 pop {r3, r4, r5, r6, r7, pc} -.L510: - .align 2 .L509: + .align 2 +.L508: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -3529,12 +3505,12 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L512 + ldr r3, .L511 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 - ldrh r1, [r3, #1870] - ldrh r5, [r3, #1828] + ldrh r1, [r3, #2382] + ldrh r5, [r3, #2340] bl __aeabi_uidiv mov r1, r5 smulbb r4, r0, r5 @@ -3543,9 +3519,9 @@ P2V_plane: add r1, r1, r4 uxth r0, r1 pop {r4, r5, r6, pc} -.L513: - .align 2 .L512: + .align 2 +.L511: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -3560,17 +3536,17 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L515 - ldrh r1, [r4, #1870] + ldr r4, .L514 + ldrh r1, [r4, #2382] bl __aeabi_uidivmod uxth r0, r1 - ldrh r1, [r4, #1828] + ldrh r1, [r4, #2340] bl __aeabi_uidiv uxth r0, r0 pop {r4, pc} -.L516: - .align 2 .L515: + .align 2 +.L514: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -3585,14 +3561,14 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L518 + bls .L517 subs r0, r0, r1 cmp r0, #-2147483648 ite hi movhi r0, #0 movls r0, #1 bx lr -.L518: +.L517: subs r0, r1, r0 cmp r0, #-2147483648 ite ls @@ -3611,14 +3587,14 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L521 - ldrh r0, [r3, #2002] + ldr r3, .L520 + ldrh r0, [r3, #2514] clz r0, r0 lsrs r0, r0, #5 bx lr -.L522: - .align 2 .L521: + .align 2 +.L520: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -3632,15 +3608,15 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L524 - ldrh r0, [r3, #2002] + ldr r3, .L523 + ldrh r0, [r3, #2514] sub r3, r0, #1024 rsbs r0, r3, #0 adcs r0, r0, r3 bx lr -.L525: - .align 2 .L524: + .align 2 +.L523: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -3653,52 +3629,54 @@ FtlFreeSysBlkQueueIn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} subs r3, r0, #1 movw r2, #65533 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} + mov r6, r0 uxth r3, r3 cmp r3, r2 - mov r5, r0 - bhi .L526 - ldr r4, .L535 - ldrh r3, [r4, #2002] + bhi .L525 + ldr r4, .L534 + ldrh r3, [r4, #2514] cmp r3, #1024 - beq .L526 - cbz r1, .L528 - ldr r3, [r4, #4052] - cbnz r3, .L528 + beq .L525 + cbz r1, .L527 + ldr r5, .L534+4 + ldr r3, [r5, #220] + cbnz r3, .L527 bl P2V_block_in_plane movs r1, #1 - lsls r3, r5, #10 + lsls r3, r6, #10 mov r2, r1 - mov r6, r0 - ldr r0, [r4, #4056] + mov r7, r0 + ldr r0, [r5, #224] str r3, [r0, #4] bl FlashEraseBlocks - ldr r2, [r4, #4060] - ldrh r3, [r2, r6, lsl #1] + ldr r2, [r5, #228] + ldrh r3, [r2, r7, lsl #1] adds r3, r3, #1 - strh r3, [r2, r6, lsl #1] @ movhi - ldr r3, [r4, #4064] + strh r3, [r2, r7, lsl #1] @ movhi + ldr r3, [r5, #232] adds r3, r3, #1 - str r3, [r4, #4064] -.L528: - ldrh r3, [r4, #2002] + str r3, [r5, #232] +.L527: + ldrh r3, [r4, #2514] adds r3, r3, #1 - strh r3, [r4, #2002] @ movhi - ldrh r3, [r4, #2000] + strh r3, [r4, #2514] @ movhi + ldrh r3, [r4, #2512] add r2, r4, r3, lsl #1 adds r3, r3, #1 ubfx r3, r3, #0, #10 - strh r3, [r4, #2000] @ movhi - strh r5, [r2, #2004] @ movhi -.L526: - pop {r4, r5, r6, pc} -.L536: - .align 2 + strh r3, [r4, #2512] @ movhi + strh r6, [r2, #2516] @ movhi +.L525: + pop {r3, r4, r5, r6, r7, pc} .L535: + .align 2 +.L534: .word .LANCHOR0 + .word .LANCHOR2 .fnend .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn .align 1 @@ -3710,42 +3688,43 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L548 + ldr r3, .L547 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - add r2, r3, #4096 - ldrh r4, [r2] - ldrh r2, [r3, #2002] - cbz r2, .L537 + ldrh r4, [r3, #264] + ldr r3, .L547+4 + ldrh r2, [r3, #2514] + cbz r2, .L536 movs r0, #0 - ldrh r1, [r3, #1998] - ldrh r2, [r3, #2000] + ldrh r1, [r3, #2510] + ldrh r2, [r3, #2512] and r4, r4, #31 mov r6, r0 -.L539: +.L538: uxth r5, r0 adds r0, r0, #1 cmp r5, r4 - bge .L547 + bge .L546 add r5, r3, r1, lsl #1 adds r1, r1, #1 ubfx r1, r1, #0, #10 - ldrh r6, [r5, #2004] + ldrh r6, [r5, #2516] add r5, r3, r2, lsl #1 - strh r6, [r5, #2004] @ movhi + strh r6, [r5, #2516] @ movhi movs r6, #1 add r2, r2, r6 ubfx r2, r2, #0, #10 - b .L539 -.L547: - cbz r6, .L537 - strh r1, [r3, #1998] @ movhi - strh r2, [r3, #2000] @ movhi -.L537: + b .L538 +.L546: + cbz r6, .L536 + strh r1, [r3, #2510] @ movhi + strh r2, [r3, #2512] @ movhi +.L536: pop {r4, r5, r6, pc} -.L549: - .align 2 .L548: + .align 2 +.L547: + .word .LANCHOR2 .word .LANCHOR0 .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort @@ -3758,71 +3737,74 @@ FtlFreeSysBlkQueueOut: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - ldr r4, .L560 - mov r6, r4 -.L551: - ldrh r1, [r4, #2002] - cbz r1, .L552 - ldrh r3, [r4, #1998] + 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 + mov r7, r4 +.L550: + ldrh r1, [r4, #2514] + cbz r1, .L551 + ldrh r3, [r4, #2510] subs r1, r1, #1 - ldr r8, [r4, #4052] - strh r1, [r4, #2002] @ movhi + ldr r10, [r6, #220] + strh r1, [r4, #2514] @ movhi add r2, r4, r3, lsl #1 adds r3, r3, #1 ubfx r3, r3, #0, #10 - strh r3, [r4, #1998] @ movhi - ldrh r5, [r2, #2004] - cmp r8, #0 - bne .L553 + ldr r8, .L559+4 + ldrh r5, [r2, #2516] + strh r3, [r4, #2510] @ movhi + cmp r10, #0 + bne .L552 mov r0, r5 bl P2V_block_in_plane lsls r3, r5, #10 - mov r7, r0 - ldr r0, [r4, #4056] + mov r9, r0 + ldr r0, [r6, #224] str r3, [r0, #4] ldrb r3, [r4, #140] @ zero_extendqisi2 - cbz r3, .L554 - mov r1, r8 + cbz r3, .L553 + mov r1, r10 movs r2, #1 bl FlashEraseBlocks -.L554: +.L553: movs r1, #1 - ldr r0, [r6, #4056] + ldr r0, [r8, #224] mov r2, r1 bl FlashEraseBlocks - ldr r2, [r6, #4060] - ldrh r3, [r2, r7, lsl #1] + ldr r2, [r8, #228] + ldrh r3, [r2, r9, lsl #1] adds r3, r3, #1 - strh r3, [r2, r7, lsl #1] @ movhi - ldr r3, [r6, #4064] + strh r3, [r2, r9, lsl #1] @ movhi + ldr r3, [r8, #232] adds r3, r3, #1 - str r3, [r6, #4064] - b .L553 -.L552: - ldr r0, .L560+4 + str r3, [r8, #232] + b .L552 +.L551: + ldr r0, .L559+8 bl printk -.L555: - b .L555 -.L553: +.L554: + b .L554 +.L552: subs r3, r5, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L556 + bls .L555 mov r1, r5 - ldrh r2, [r6, #2002] - ldr r0, .L560+8 + ldrh r2, [r7, #2514] + ldr r0, .L559+12 bl printk - b .L551 -.L556: + b .L550 +.L555: mov r0, r5 - pop {r4, r5, r6, r7, r8, pc} -.L561: - .align 2 + pop {r4, r5, r6, r7, r8, r9, r10, pc} .L560: + .align 2 +.L559: .word .LANCHOR0 + .word .LANCHOR2 .word .LC3 .word .LC4 .fnend @@ -3836,35 +3818,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L567 + ldr r3, .L566 push {r4, r5, lr} .save {r4, r5, lr} movw r5, #65535 - ldr r4, [r3, #-228] + ldr r4, [r3, #284] ldr r2, [r0] - ldr r3, .L567+4 + ldr r3, .L566+4 subs r0, r2, r4 asrs r0, r0, #1 muls r3, r0, r3 movs r0, #6 uxth r3, r3 -.L564: +.L563: cmp r1, r3 - beq .L565 + beq .L564 ldrh r3, [r2] cmp r3, r5 - beq .L566 + beq .L565 mla r2, r0, r3, r4 - b .L564 -.L565: + b .L563 +.L564: movs r0, #1 pop {r4, r5, pc} -.L566: +.L565: movs r0, #0 pop {r4, r5, pc} -.L568: - .align 2 .L567: + .align 2 +.L566: .word .LANCHOR2 .word -1431655765 .fnend @@ -3881,113 +3863,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, .L585 - ldrh r3, [r5, #1812] + ldr r5, .L584 + ldrh r3, [r5, #2324] cmp r3, r0 - bls .L571 + bls .L570 movs r4, #6 - ldr r2, .L585+4 + ldr r2, .L584+4 movw r3, #65535 muls r4, r0, r4 - ldr lr, [r2, #-228] + ldr lr, [r2, #284] mov r7, r2 add r1, lr, r4 strh r3, [r1, #2] @ movhi strh r3, [lr, r4] @ movhi - ldr r3, [r2, #-224] + ldr r3, [r2, #288] cmp r3, #0 - beq .L584 - ldr r8, [r2, #-220] + beq .L583 + ldr r8, [r2, #292] lsl fp, r0, #1 ldrh r2, [r1, #4] ldrh r6, [r8, r0, lsl #1] - cbz r2, .L582 + cbz r2, .L581 muls r6, r2, r6 - b .L573 -.L582: + b .L572 +.L581: mov r6, #-1 -.L573: - ldr ip, [r7, #-228] - ldr r2, .L585+8 - rsb r7, ip, r3 - ldr r9, [r5, #4060] - asrs r7, r7, #1 - muls r7, r2, r7 - uxth r2, r7 - ldrh r7, [r5, #1812] +.L572: + ldr ip, [r7, #284] + ldr r2, .L584+8 + rsb r9, ip, r3 + ldrh r5, [r5, #2324] + asr r9, r9, #1 + str r5, [sp] + mul r2, r2, r9 + ldr r9, [r7, #228] add r5, r9, fp str r5, [sp, #4] movs r5, #0 - str r7, [sp] -.L580: + uxth r2, r2 +.L579: adds r5, r5, #1 ldr r7, [sp] uxth r5, r5 cmp r5, r7 - bhi .L571 + bhi .L570 cmp r0, r2 - beq .L571 + beq .L570 ldrh r7, [r3, #4] lsl r10, r2, #1 ldrh fp, [r8, r2, lsl #1] - cbz r7, .L583 + cbz r7, .L582 mul r7, r7, fp - b .L575 -.L583: + b .L574 +.L582: mov r7, #-1 -.L575: +.L574: cmp r7, r6 - bne .L576 + bne .L575 ldr r7, [sp, #4] ldrh r10, [r9, r10] ldrh r7, [r7] cmp r10, r7 - bcc .L578 - b .L577 -.L576: - bhi .L577 -.L578: + bcc .L577 + b .L576 +.L575: + bhi .L576 +.L577: ldrh r7, [r3] movw r10, #65535 cmp r7, r10 - bne .L579 + bne .L578 strh r2, [r1, #2] @ movhi strh r0, [r3] @ movhi - ldr r3, .L585+4 - str r1, [r3, #-216] - b .L571 -.L579: + ldr r3, .L584+4 + str r1, [r3, #296] + b .L570 +.L578: movs r3, #6 mov r2, r7 mla r3, r3, r7, ip - b .L580 -.L577: + b .L579 +.L576: strh r2, [lr, r4] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L585+4 - ldr r4, [r2, #-224] + ldr r2, .L584+4 + ldr r4, [r2, #288] cmp r3, r4 - bne .L581 + bne .L580 strh r0, [r3, #2] @ movhi -.L584: - str r1, [r2, #-224] - b .L571 -.L581: +.L583: + str r1, [r2, #288] + b .L570 +.L580: ldrh r4, [r3, #2] - ldr r1, [r2, #-228] + ldr r1, [r2, #284] movs r2, #6 muls r2, r4, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L571: +.L570: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L586: - .align 2 .L585: + .align 2 +.L584: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -4005,14 +3987,14 @@ INSERT_DATA_LIST: push {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L588 - ldrh r3, [r2, #-212] + ldr r2, .L587 + ldrh r3, [r2, #300] adds r3, r3, #1 - strh r3, [r2, #-212] @ movhi + strh r3, [r2, #300] @ movhi pop {r3, pc} -.L589: - .align 2 .L588: + .align 2 +.L587: .word .LANCHOR2 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -4029,67 +4011,65 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r5, #65535 cmp r0, r5 - beq .L591 + beq .L590 movs r1, #6 - ldr r2, .L598 - mul r7, r1, r0 - ldr lr, [r2, #-228] - mov ip, r2 - add r6, lr, r7 + ldr r2, .L597 + mul lr, r1, r0 + ldr ip, [r2, #284] + mov r7, r2 + add r6, ip, lr strh r5, [r6, #2] @ movhi - strh r5, [lr, r7] @ movhi - ldr r3, [r2, #-208] - cbz r3, .L597 - ldr r2, .L598+4 - ldr r8, [ip, #-228] + strh r5, [ip, lr] @ movhi + ldr r3, [r2, #304] + cbz r3, .L596 + ldr r8, [r2, #284] + ldr r9, [r2, #228] rsb r4, r8, r3 - ldr r9, [r2, #4060] - ldr r2, .L598+8 + ldr r2, .L597+4 asrs r4, r4, #1 ldrh r10, [r9, r0, lsl #1] muls r4, r2, r4 uxth r2, r4 -.L595: +.L594: ldrh r4, [r9, r2, lsl #1] cmp r4, r10 - bcs .L593 + bcs .L592 ldrh r4, [r3] cmp r4, r5 - bne .L594 + bne .L593 strh r2, [r6, #2] @ movhi strh r0, [r3] @ movhi - b .L591 -.L594: + b .L590 +.L593: mla r3, r1, r4, r8 mov r2, r4 - b .L595 -.L593: + b .L594 +.L592: ldrh r1, [r3, #2] strh r1, [r6, #2] @ movhi - strh r2, [lr, r7] @ movhi - ldr r1, [ip, #-208] - ldr r2, .L598 + strh r2, [ip, lr] @ movhi + ldr r1, [r7, #304] + ldr r2, .L597 cmp r3, r1 - bne .L596 + bne .L595 strh r0, [r3, #2] @ movhi -.L597: - str r6, [r2, #-208] - b .L591 .L596: + str r6, [r2, #304] + b .L590 +.L595: ldrh r4, [r3, #2] - ldr r1, [r2, #-228] + ldr r1, [r2, #284] movs r2, #6 muls r2, r4, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L591: +.L590: movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L599: - .align 2 .L598: + .align 2 +.L597: .word .LANCHOR2 - .word .LANCHOR0 .word -1431655765 .fnend .size insert_free_list, .-insert_free_list @@ -4105,14 +4085,14 @@ INSERT_FREE_LIST: push {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L601 - ldrh r3, [r2, #-204] + ldr r2, .L600 + ldrh r3, [r2, #308] adds r3, r3, #1 - strh r3, [r2, #-204] @ movhi + strh r3, [r2, #308] @ movhi pop {r3, pc} -.L602: - .align 2 .L601: + .align 2 +.L600: .word .LANCHOR2 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -4128,15 +4108,15 @@ List_remove_node: push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movs r4, #6 - ldr r7, .L608 + ldr r7, .L607 movw r6, #65535 muls r1, r4, r1 ldr r3, [r0] - ldr r2, [r7, #-228] + ldr r2, [r7, #284] adds r5, r2, r1 cmp r5, r3 ldrh r3, [r2, r1] - bne .L604 + bne .L603 cmp r3, r6 ittee eq moveq r3, #0 @@ -4145,33 +4125,33 @@ List_remove_node: strne r3, [r0] it ne strhne r6, [r3, #2] @ movhi - b .L606 -.L604: + b .L605 +.L603: cmp r3, r6 ldrh r0, [r5, #2] - bne .L607 + bne .L606 cmp r0, r3 - beq .L606 + beq .L605 muls r0, r4, r0 strh r3, [r2, r0] @ movhi - b .L606 -.L607: + b .L605 +.L606: mla r3, r4, r3, r2 strh r0, [r3, #2] @ movhi ldrh r6, [r5, #2] ldrh r0, [r2, r1] - ldr r3, [r7, #-228] + ldr r3, [r7, #284] muls r4, r6, r4 strh r0, [r3, r4] @ movhi -.L606: +.L605: movw r3, #65535 movs r0, #0 strh r3, [r2, r1] @ movhi strh r3, [r5, #2] @ movhi pop {r4, r5, r6, r7, pc} -.L609: - .align 2 .L608: + .align 2 +.L607: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -4187,16 +4167,16 @@ List_pop_index_node: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldr r3, [r0] - cbz r3, .L616 - ldr r2, .L617 + cbz r3, .L615 + ldr r2, .L616 movs r6, #6 movw r5, #65535 - ldr r4, [r2, #-228] -.L612: - cbnz r1, .L613 -.L615: + ldr r4, [r2, #284] +.L611: + cbnz r1, .L612 +.L614: subs r4, r3, r4 - ldr r3, .L617+4 + ldr r3, .L616+4 asrs r4, r4, #1 muls r4, r3, r4 uxth r4, r4 @@ -4204,20 +4184,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 pop {r4, r5, r6, pc} -.L613: +.L612: ldrh r2, [r3] cmp r2, r5 - beq .L615 + beq .L614 subs r1, r1, #1 mla r3, r6, r2, r4 uxth r1, r1 - b .L612 -.L616: + b .L611 +.L615: movw r0, #65535 pop {r4, r5, r6, pc} -.L618: - .align 2 .L617: + .align 2 +.L616: .word .LANCHOR2 .word -1431655765 .fnend @@ -4231,36 +4211,36 @@ List_get_gc_head_node: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L626 + ldr r2, .L625 push {r4, lr} .save {r4, lr} - ldr r3, [r2, #-224] - cbz r3, .L624 + ldr r3, [r2, #288] + cbz r3, .L623 movs r4, #6 - ldr r1, [r2, #-228] + ldr r1, [r2, #284] movw r2, #65535 -.L621: - cbz r0, .L622 +.L620: + cbz r0, .L621 ldrh r3, [r3] cmp r3, r2 - beq .L624 + beq .L623 subs r0, r0, #1 mla r3, r4, r3, r1 uxth r0, r0 - b .L621 -.L624: + b .L620 +.L623: movw r0, #65535 pop {r4, pc} -.L622: +.L621: subs r3, r3, r1 - ldr r0, .L626+4 + ldr r0, .L625+4 asrs r3, r3, #1 muls r0, r3, r0 uxth r0, r0 pop {r4, pc} -.L627: - .align 2 .L626: + .align 2 +.L625: .word .LANCHOR2 .word -1431655765 .fnend @@ -4277,73 +4257,73 @@ List_update_data_list: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, r0 - ldr r4, .L635 - ldrh r3, [r4, #-200] + ldr r4, .L634 + ldrh r3, [r4, #312] cmp r3, r0 - beq .L629 - ldrh r3, [r4, #-152] + beq .L628 + ldrh r3, [r4, #360] cmp r3, r0 - beq .L629 - ldrh r3, [r4, #-104] + beq .L628 + ldrh r3, [r4, #408] cmp r3, r0 - beq .L629 + beq .L628 movs r3, #6 - ldr r1, [r4, #-228] - ldr r2, [r4, #-224] + ldr r1, [r4, #284] + ldr r2, [r4, #288] muls r3, r0, r3 adds r0, r1, r3 cmp r0, r2 - beq .L629 - ldr r6, [r4, #-220] + beq .L628 + ldr r6, [r4, #292] ldrh r2, [r0, #4] ldrh r7, [r6, r5, lsl #1] - cbz r2, .L633 + cbz r2, .L632 muls r2, r7, r2 - b .L630 -.L633: + b .L629 +.L632: mov r2, #-1 -.L630: +.L629: ldrh r0, [r0, #2] movw r7, #65535 cmp r0, r7 - bne .L631 + bne .L630 ldrh r3, [r1, r3] cmp r3, r0 - beq .L629 -.L631: + beq .L628 +.L630: movs r3, #6 muls r3, r0, r3 - ldr r0, .L635+4 + ldr r0, .L634+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, .L634 + cbz r3, .L633 muls r3, r0, r3 - b .L632 -.L634: + b .L631 +.L633: mov r3, #-1 -.L632: +.L631: cmp r2, r3 - bcs .L629 - ldr r0, .L635+8 + bcs .L628 + ldr r0, .L634+8 mov r1, r5 bl List_remove_node - ldrh r3, [r4, #-212] + ldrh r3, [r4, #300] mov r0, r5 subs r3, r3, #1 - strh r3, [r4, #-212] @ movhi + strh r3, [r4, #300] @ movhi bl INSERT_DATA_LIST -.L629: +.L628: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L636: - .align 2 .L635: + .align 2 +.L634: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2-224 + .word .LANCHOR2+288 .fnend .size List_update_data_list, .-List_update_data_list .align 1 @@ -4361,16 +4341,16 @@ ftl_map_blk_alloc_new_blk: ldrh r1, [r0, #10] mov r4, r0 ldr r2, [r0, #12] -.L638: +.L637: uxth r5, r3 cmp r5, r1 - bcs .L641 + bcs .L640 mov r7, r2 adds r3, r3, #1 ldrh r6, [r7] adds r2, r2, #2 cmp r6, #0 - bne .L638 + bne .L637 bl FtlFreeSysBlkQueueOut movw r2, #65533 subs r3, r0, #1 @@ -4378,14 +4358,14 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7] @ movhi uxth r3, r3 cmp r3, r2 - bls .L639 - ldr r3, .L644 - ldr r0, .L644+4 - ldrh r2, [r3, #2002] + bls .L638 + ldr r3, .L643 + ldr r0, .L643+4 + ldrh r2, [r3, #2514] bl printk -.L640: - b .L640 .L639: + b .L639 +.L638: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi adds r3, r3, #1 @@ -4394,12 +4374,12 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi adds r3, r3, #1 strh r3, [r4, #8] @ movhi -.L641: +.L640: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L645: - .align 2 .L644: + .align 2 +.L643: .word .LANCHOR0 .word .LC5 .fnend @@ -4416,70 +4396,70 @@ select_l2p_ram_region: push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movs r1, #0 - ldr r3, .L660 + ldr r3, .L659 movs r4, #12 - ldr r7, .L660+4 + ldr r7, .L659+4 movw r5, #65535 - ldrh r2, [r3, #1910] - ldr r3, [r7, #-56] -.L647: + ldrh r2, [r3, #2422] + ldr r3, [r7, #456] +.L646: uxth r0, r1 cmp r0, r2 - bcs .L658 + bcs .L657 adds r1, r1, #1 mla r6, r4, r1, r3 ldrh r6, [r6, #-12] cmp r6, r5 - bne .L647 - b .L648 -.L658: + bne .L646 + b .L647 +.L657: movs r1, #0 mov r6, #-2147483648 mov lr, #12 mov r0, r2 -.L650: +.L649: uxth r5, r1 cmp r5, r2 - bcs .L659 + bcs .L658 mla r4, lr, r1, r3 ldr r4, [r4, #4] cmp r4, #0 - blt .L651 + blt .L650 cmp r4, r6 itt cc movcc r6, r4 movcc r0, r5 -.L651: +.L650: adds r1, r1, #1 - b .L650 -.L659: + b .L649 +.L658: cmp r0, r2 - bcc .L648 - ldrh r7, [r7, #-52] + bcc .L647 + ldrh r7, [r7, #460] movs r1, #0 mov r4, #-1 mov r0, r2 -.L653: +.L652: uxth r5, r1 cmp r5, r2 - bcs .L648 + bcs .L647 ldr r6, [r3, #4] cmp r6, r4 - bcs .L654 + bcs .L653 ldrh lr, [r3] cmp lr, r7 itt ne movne r4, r6 movne r0, r5 -.L654: +.L653: adds r1, r1, #1 adds r3, r3, #12 - b .L653 -.L648: + b .L652 +.L647: pop {r4, r5, r6, r7, pc} -.L661: - .align 2 .L660: + .align 2 +.L659: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4493,41 +4473,41 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L669 + ldr r1, .L668 push {r4, r5, lr} .save {r4, r5, lr} - ldrh r2, [r1, #-50] + ldrh r2, [r1, #462] mov r3, r1 cmp r2, #4 - bhi .L663 - cbnz r0, .L663 + bhi .L662 + cbnz r0, .L662 adds r2, r2, #1 - strh r2, [r1, #-50] @ movhi + strh r2, [r1, #462] @ movhi pop {r4, r5, pc} -.L663: - ldr r1, .L669+4 +.L662: + ldr r1, .L668+4 movs r2, #0 - strh r2, [r3, #-50] @ movhi + strh r2, [r3, #462] @ movhi movw r5, #65535 - str r2, [r3, #-48] - ldrh r1, [r1, #1812] - ldr r2, [r3, #-220] + str r2, [r3, #464] + ldrh r1, [r1, #2324] + ldr r2, [r3, #292] add r1, r2, r1, lsl #1 -.L664: +.L663: cmp r2, r1 - beq .L668 + beq .L667 ldrh r4, [r2], #2 cmp r4, r5 ittt ne - ldrne r0, [r3, #-48] + ldrne r0, [r3, #464] addne r0, r0, r4 - strne r0, [r3, #-48] - b .L664 -.L668: + strne r0, [r3, #464] + b .L663 +.L667: pop {r4, r5, pc} -.L670: - .align 2 .L669: + .align 2 +.L668: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4543,28 +4523,28 @@ ftl_set_blk_mode: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. lsrs r3, r0, #5 - ldr r2, .L674 + ldr r2, .L673 and r0, r0, #31 uxth r3, r3 - cbz r1, .L672 - ldr r1, [r2, #-44] + cbz r1, .L671 + ldr r1, [r2, #468] 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 -.L672: - ldr r1, [r2, #-44] +.L671: + ldr r1, [r2, #468] 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 -.L675: - .align 2 .L674: + .align 2 +.L673: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4578,17 +4558,17 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L677 + ldr r3, .L676 lsrs r1, r0, #5 - ldr r2, [r3, #-44] + ldr r2, [r3, #468] and r3, r0, #31 ldr r0, [r2, r1, lsl #2] lsrs r0, r0, r3 and r0, r0, #1 bx lr -.L678: - .align 2 .L677: + .align 2 +.L676: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4603,16 +4583,16 @@ ftl_sb_update_avl_pages: @ frame_needed = 0, uses_anonymous_args = 0 movs r3, #0 strh r3, [r0, #4] @ movhi - ldr r3, .L688 + ldr r3, .L687 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} adds r4, r2, #7 - ldrh r5, [r3, #1804] + ldrh r5, [r3, #2316] movw r7, #65535 add r4, r0, r4, lsl #1 -.L680: +.L679: cmp r2, r5 - bcs .L686 + bcs .L685 ldrh r6, [r4, #2]! adds r2, r2, #1 cmp r6, r7 @@ -4621,16 +4601,16 @@ ftl_sb_update_avl_pages: ldrhne r6, [r0, #4] addne r6, r6, #1 strhne r6, [r0, #4] @ movhi - b .L680 -.L686: - ldrh r6, [r3, #1872] + b .L679 +.L685: + ldrh r6, [r3, #2384] add r4, r0, #14 movs r2, #0 movw r7, #65535 -.L683: +.L682: uxth r3, r2 cmp r3, r5 - bcs .L687 + bcs .L686 ldrh r3, [r4, #2]! adds r2, r2, #1 cmp r3, r7 @@ -4641,12 +4621,12 @@ ftl_sb_update_avl_pages: subne r3, r3, r1 it ne strhne r3, [r0, #4] @ movhi - b .L683 -.L687: + b .L682 +.L686: pop {r4, r5, r6, r7, pc} -.L689: - .align 2 .L688: + .align 2 +.L687: .word .LANCHOR0 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages @@ -4662,63 +4642,64 @@ 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, .L703 + ldr r6, .L702 add r7, r0, #16 mov r4, r0 mov r5, r3 - add r10, r6, #1832 + addw r10, r6, #2344 movw r9, #65535 - ldrh r8, [r6, #1804] + ldrh r8, [r6, #2316] strh r3, [r0, #4] @ movhi strb r3, [r0, #7] -.L691: +.L690: uxth r3, r5 cmp r3, r8 - bcs .L702 + bcs .L701 ldrb r0, [r10, r5] @ zero_extendqisi2 ldrh r1, [r4] bl V2P_block strh r9, [r7] @ movhi mov fp, r0 bl FtlBbmIsBadBlock - cbnz r0, .L692 + cbnz r0, .L691 strh fp, [r7] @ movhi ldrb r3, [r4, #7] @ zero_extendqisi2 adds r3, r3, #1 strb r3, [r4, #7] -.L692: +.L691: adds r5, r5, #1 adds r7, r7, #2 - b .L691 -.L702: + b .L690 +.L701: ldrb r2, [r4, #7] @ zero_extendqisi2 - ldrh r3, [r6, #1872] + ldrh r3, [r6, #2384] smulbb r3, r2, r3 strh r3, [r4, #4] @ movhi movs r3, #0 strb r3, [r4, #9] - ldr r3, [r6, #1796] - cbz r3, .L694 - ldr r3, .L703 + ldr r3, [r6, #2308] + cbz r3, .L693 + ldr r3, .L702+4 ldrh r2, [r4] - ldr r3, [r3, #4060] + ldr r3, [r3, #228] ldrh r3, [r3, r2, lsl #1] cmp r3, #79 itt ls movls r3, #1 strbls r3, [r4, #9] -.L694: +.L693: ldrb r3, [r6] @ zero_extendqisi2 - cbz r3, .L695 + cbz r3, .L694 movs r3, #1 strb r3, [r4, #9] -.L695: +.L694: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L704: - .align 2 .L703: + .align 2 +.L702: .word .LANCHOR0 + .word .LANCHOR2 .fnend .size make_superblock, .-make_superblock .align 1 @@ -4733,43 +4714,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, .L714 + ldr r3, .L713 mov r7, r0 mov r4, r5 - add r6, r3, #1832 - ldrh r8, [r3, #1804] - ldrh r9, [r3, #1872] -.L706: + addw r6, r3, #2344 + ldrh r8, [r3, #2316] + ldrh r9, [r3, #2384] +.L705: uxth r3, r5 cmp r3, r8 - bcs .L713 + bcs .L712 mov r1, r7 ldrb r0, [r6, r5] @ zero_extendqisi2 bl V2P_block bl FtlBbmIsBadBlock - cbnz r0, .L707 + cbnz r0, .L706 add r4, r4, r9 uxth r4, r4 -.L707: +.L706: adds r5, r5, #1 - b .L706 -.L713: - cbz r4, .L709 + b .L705 +.L712: + cbz r4, .L708 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L709: - ldr r3, .L714+4 +.L708: + ldr r3, .L713+4 movs r2, #6 movs r0, #0 - ldr r3, [r3, #-228] + ldr r3, [r3, #284] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L715: - .align 2 .L714: + .align 2 +.L713: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4784,26 +4765,24 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L719 - ldr r0, [r3, #-208] - cbz r0, .L717 - ldr r3, [r3, #-228] + ldr r2, .L718 + ldr r0, [r2, #304] + cbz r0, .L716 + ldr r3, [r2, #284] subs r0, r0, r3 - ldr r3, .L719+4 + ldr r3, .L718+4 asrs r0, r0, #1 muls r0, r3, r0 - ldr r3, .L719+8 - ldr r3, [r3, #4060] + ldr r3, [r2, #228] uxth r0, r0 ldrh r0, [r3, r0, lsl #1] -.L717: +.L716: bx lr -.L720: - .align 2 .L719: + .align 2 +.L718: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR0 .fnend .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 1 @@ -4815,52 +4794,50 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L729 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - ldr r3, [r1, #-208] - cbz r3, .L727 - ldrh r2, [r1, #-204] - movs r5, #6 - ldr r1, [r1, #-228] - movw r6, #65535 + ldr r1, .L728 + push {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} + ldr r3, [r1, #304] + cbz r3, .L726 + ldrh r2, [r1, #308] + movs r6, #6 + ldr r4, [r1, #284] + movw r7, #65535 rsb r2, r2, r2, lsl #3 - subs r3, r3, r1 + subs r3, r3, r4 asrs r2, r2, #3 asrs r3, r3, #1 cmp r0, r2 it gt uxthgt r0, r2 - ldr r2, .L729+4 + ldr r2, .L728+4 muls r3, r2, r3 movs r2, #0 uxth r3, r3 -.L724: - uxth r4, r2 - cmp r4, r0 - bcs .L726 - mul r4, r5, r3 +.L723: + uxth r5, r2 + cmp r5, r0 + bcs .L725 + mul r5, r6, r3 adds r2, r2, #1 - ldrh r4, [r1, r4] - cmp r4, r6 - bne .L728 -.L726: - ldr r2, .L729+8 - ldr r2, [r2, #4060] + ldrh r5, [r4, r5] + cmp r5, r7 + bne .L727 +.L725: + ldr r2, [r1, #228] ldrh r0, [r2, r3, lsl #1] - pop {r4, r5, r6, pc} -.L728: - mov r3, r4 - b .L724 + pop {r4, r5, r6, r7, pc} .L727: + mov r3, r5 + b .L723 +.L726: mov r0, r3 - pop {r4, r5, r6, pc} -.L730: - .align 2 + pop {r4, r5, r6, r7, pc} .L729: + .align 2 +.L728: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR0 .fnend .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 1 @@ -4870,333 +4847,336 @@ GetFreeBlockMaxEraseCount: .type FtlPrintInfo2buf, %function FtlPrintInfo2buf: .fnstart - @ args = 0, pretend = 0, frame = 32 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r8, r0 - ldr r7, .L742 - .pad #52 - sub sp, sp, #52 - ldr r6, .L742+4 - add r5, r8, #12 - ldr r1, .L742+8 - ldr r3, [r7] - str r3, [sp, #44] + 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 + add r4, r6, #12 + ldr r1, .L740 + .pad #32 + sub sp, sp, #32 bl strcpy - mov r0, r5 - ldr r1, .L742+12 - ldr r2, [r6, #112] + mov r0, r4 + ldr r1, .L740+4 + ldr r2, [r8, #112] bl sprintf - ldr r1, .L742+16 - ldr r2, [r6, #1888] - add r5, r5, r0 - mov r0, r5 + ldr r1, .L740+8 + ldr r2, [r8, #2400] + add r4, r4, r0 + mov r0, r4 bl sprintf - ldr r3, .L742+20 + ldr r3, .L740+12 ldr r3, [r3, #504] cmp r3, #1 - add r4, r5, r0 - bne .L737 - add r0, sp, #28 - add r1, sp, #32 - add r2, sp, #36 - add r3, sp, #40 + add r4, r4, r0 + bne .L736 + add r0, sp, #16 + add r1, sp, #20 + add r2, sp, #24 + add r3, sp, #28 bl NandcGetTimeCfg mov r0, r4 - ldr r1, .L742+24 - ldr r9, .L742+240 - ldr r3, [sp, #36] - ldr r2, [sp, #28] + ldr r1, .L740+16 + ldr r7, .L740+20 + ldr r3, [sp, #24] + ldr r2, [sp, #16] str r3, [sp] - ldr r3, [sp, #40] + ldr r3, [sp, #28] str r3, [sp, #4] - ldr r3, [sp, #32] + ldr r3, [sp, #20] bl sprintf - ldr r1, .L742+28 + ldr r1, .L740+24 add r4, r4, r0 add r5, r4, #10 mov r0, r4 bl strcpy mov r0, r5 - ldr r1, .L742+32 - ldr r2, [r6, #1932] + ldr r1, .L740+28 + ldr r2, [r8, #2444] bl sprintf - ldr r1, .L742+36 - ldr r2, [r9, #-48] + ldr r1, .L740+32 + ldr r2, [r7, #464] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L742+40 - ldr r2, [r9, #-40] + ldr r1, .L740+36 + ldr r2, [r7, #472] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L742+44 - ldr r2, [r9, #-36] + ldr r1, .L740+40 + ldr r2, [r7, #476] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L742+48 - ldr r2, [r9, #-32] + ldr r1, .L740+44 + ldr r2, [r7, #480] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L742+52 - ldr r2, [r9, #-28] + ldr r1, .L740+48 + ldr r2, [r7, #484] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L742+56 - ldr r2, [r9, #-24] + ldr r1, .L740+52 + ldr r2, [r7, #488] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L742+60 - ldr r2, [r9, #-20] + ldr r1, .L740+56 + ldr r2, [r7, #492] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r9, #-16] - ldr r1, .L742+64 + ldr r2, [r7, #496] + ldr r1, .L740+60 lsrs r2, r2, #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r9, #-12] - ldr r1, .L742+68 + ldr r2, [r7, #500] + ldr r1, .L740+64 lsrs r2, r2, #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L742+72 - ldr r2, [r9, #-8] + ldr r1, .L740+68 + ldr r2, [r7, #504] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L742+76 - ldr r2, [r9, #-4] + ldr r1, .L740+72 + ldr r2, [r7, #508] add r5, r5, r0 mov r0, r5 bl sprintf add r5, r5, r0 bl FtlBbtCalcTotleCnt - ldr r1, .L742+80 - ldrh r2, [r6, #1942] + ldr r1, .L740+76 + ldrh r2, [r8, #2454] mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L742+84 - ldrh r2, [r9, #-204] + ldr r1, .L740+80 + ldrh r2, [r7, #308] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L742+88 - ldr r2, [r9] - adds r4, r5, r0 - mov r0, r4 + ldr r1, .L740+84 + ldr r2, [r7, #512] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+92 - ldr r2, [r9, #4] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+88 + ldr r2, [r7, #516] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+96 - ldr r2, [r9, #8] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+92 + ldr r2, [r7, #520] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+100 - ldr r2, [r6, #4064] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+96 + ldr r2, [r7, #232] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+104 - ldr r2, [r9, #12] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+100 + ldr r2, [r7, #524] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+108 - ldr r2, [r9, #16] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+104 + ldr r2, [r7, #528] + add r5, r5, r0 + mov r0, r5 bl sprintf - movw r3, #4098 - ldrh r2, [r6, r3] - ldr r1, .L742+112 - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+108 + ldrh r2, [r7, #266] + add r5, r5, r0 + mov r0, r5 bl sprintf - add r3, r6, #4096 - ldr r1, .L742+116 - ldrh r2, [r3] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+112 + ldrh r2, [r7, #264] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+120 - ldr r2, [r6, #1912] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+116 + ldr r2, [r8, #2424] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+124 - ldr r2, [r6, #1904] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+120 + ldr r2, [r8, #2416] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+128 - ldr r2, [r6, #1800] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+124 + ldr r2, [r8, #2312] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+132 - ldrh r2, [r6, #2002] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+128 + ldrh r2, [r8, #2514] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+136 - ldrh r2, [r6, #1812] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+132 + ldrh r2, [r8, #2324] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+140 - ldrh r2, [r9, #20] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+136 + ldrh r2, [r7, #532] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+144 - ldr r2, [r6, #1816] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+140 + ldr r2, [r8, #2328] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+148 - ldrh r2, [r9, #24] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+144 + ldrh r2, [r7, #536] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+152 - ldrh r2, [r6, #1936] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+148 + ldrh r2, [r8, #2448] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+156 - ldrh r2, [r9, #-198] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+152 + ldrh r2, [r7, #314] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+160 - ldrb r2, [r9, #-194] @ zero_extendqisi2 - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+156 + ldrb r2, [r7, #318] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+164 - ldrh r2, [r9, #-200] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+160 + ldrh r2, [r7, #312] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+168 - ldrb r2, [r9, #-192] @ zero_extendqisi2 - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+164 + ldrb r2, [r7, #320] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+172 - ldrh r2, [r9, #-196] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+168 + ldrh r2, [r7, #316] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r3, [r9, #-220] - ldrh r2, [r9, #-200] - ldr r1, .L742+176 + ldr r3, [r7, #292] + ldrh r2, [r7, #312] + ldr r1, .L740+172 ldrh r2, [r3, r2, lsl #1] - add r4, r4, r0 - mov r0, r4 + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+180 - ldrh r2, [r9, #-150] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+176 + ldrh r2, [r7, #362] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+184 - ldrb r2, [r9, #-146] @ zero_extendqisi2 - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+180 + ldrb r2, [r7, #366] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+188 - ldrh r2, [r9, #-152] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+184 + ldrh r2, [r7, #360] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+192 - ldrb r2, [r9, #-144] @ zero_extendqisi2 - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+188 + ldrb r2, [r7, #368] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+196 - ldrh r2, [r9, #-148] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+192 + ldrh r2, [r7, #364] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r3, [r9, #-220] - ldrh r2, [r9, #-152] - ldr r1, .L742+200 + ldr r3, [r7, #292] + ldrh r2, [r7, #360] + ldr r1, .L740+196 ldrh r2, [r3, r2, lsl #1] - add r4, r4, r0 - mov r0, r4 + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+204 - ldrh r2, [r9, #-102] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+200 + ldrh r2, [r7, #410] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+208 - ldrb r2, [r9, #-98] @ zero_extendqisi2 - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+204 + ldrb r2, [r7, #414] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+212 - ldrh r2, [r9, #-104] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+208 + ldrh r2, [r7, #408] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+216 - ldrb r2, [r9, #-96] @ zero_extendqisi2 - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+212 + ldrb r2, [r7, #416] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+220 - ldrh r2, [r9, #-100] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+216 + ldrh r2, [r7, #412] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+224 - ldrh r2, [r9, #42] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+220 + ldrh r2, [r7, #554] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+228 - ldrb r2, [r9, #46] @ zero_extendqisi2 - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+224 + ldrb r2, [r7, #558] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+232 - ldrh r2, [r9, #40] - add r4, r4, r0 - mov r0, r4 + ldr r1, .L740+228 + ldrh r2, [r7, #552] + add r5, r5, r0 + mov r0, r5 bl sprintf - ldr r1, .L742+236 - ldrb r2, [r9, #48] @ zero_extendqisi2 - add r4, r4, r0 - mov r0, r4 - b .L743 -.L744: - .align 2 + ldr r1, .L740+232 + ldrb r2, [r7, #560] @ zero_extendqisi2 + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L740+236 + 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: - .word __stack_chk_guard - .word .LANCHOR0 + .align 2 +.L740: .word .LC6 .word .LC7 .word .LC8 .word .LANCHOR1 .word .LC9 + .word .LANCHOR2 .word .LC10 .word .LC11 .word .LC12 @@ -5250,162 +5230,143 @@ FtlPrintInfo2buf: .word .LC60 .word .LC61 .word .LC62 - .word .LANCHOR2 -.L743: - bl sprintf - ldr r1, .L745 - ldrh r2, [r9, #44] - add r4, r4, r0 - mov r0, r4 - bl sprintf - ldr r1, [r9, #176] - ldr r2, [r9, #88] - ldr r3, [r6, #1796] + .word .LC63 + .word .LANCHOR0 +.L741: orr r2, r3, r2, lsl #8 - ldr r3, [r9, #172] str r1, [sp] - add r4, r4, r0 - ldr r1, [r9, #168] - mov r0, r4 + add r5, r5, r0 + ldr r1, [r7, #680] + mov r0, r5 str r1, [sp, #4] - ldr r1, .L745+4 + ldr r3, [r7, #684] + ldr r1, .L743 bl sprintf - ldr r1, .L745+8 - ldr r2, [r9, #164] + ldr r1, .L743+4 + ldr r2, [r7, #676] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r1, .L743+8 + ldr r2, [r7, #700] + adds r4, r5, r0 + mov r0, r4 + bl sprintf + ldr r1, .L743+12 + ldrh r2, [r7, #1116] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L745+12 - ldr r2, [r9, #188] + ldr r1, .L743+16 + ldrh r2, [r7, #1118] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L745+16 - ldrh r2, [r9, #604] + ldr r1, .L743+20 + ldr r2, [r7, #1120] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L745+20 - ldrh r2, [r9, #606] - add r4, r4, r0 - mov r0, r4 - bl sprintf - ldr r1, .L745+24 - ldr r2, [r9, #608] - add r4, r4, r0 - mov r0, r4 - bl sprintf - ldr r1, .L745+28 - ldrh r2, [r9, #612] + ldr r1, .L743+24 + ldrh r2, [r7, #1124] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L745+32 + ldr r1, .L743+28 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 - ldrh r0, [r9, #-204] + ldrh r0, [r7, #308] bl GetFreeBlockMaxEraseCount - ldr r1, .L745+36 + ldr r1, .L743+32 mov r2, r0 mov r0, r4 bl sprintf - ldrh r3, [r9, #40] + ldrh r3, [r7, #552] movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L734 - ldr r2, [r9, #-220] + beq .L733 + ldr r2, [r7, #292] mov r0, r4 - ldr r1, .L745+40 + ldr r1, .L743+36 ldrh r2, [r2, r3, lsl #1] bl sprintf add r4, r4, r0 -.L734: +.L733: movs r0, #0 movs r5, #0 bl List_get_gc_head_node - mov fp, #6 - movw ip, #65535 + mov r9, #6 + movw r10, #65535 uxth r3, r0 -.L736: - cmp r3, ip - str ip, [sp, #20] - beq .L735 - ldr r2, [r9, #-220] +.L735: + cmp r3, r10 + beq .L734 + ldr r2, [r7, #292] mov r0, r4 - mul r10, fp, r3 - ldr r1, .L745+44 + mul r8, r9, r3 + ldr r1, .L743+40 ldrh r2, [r2, r3, lsl #1] str r2, [sp] - ldr r2, [r9, #-228] - add r2, r2, r10 + ldr r2, [r7, #284] + add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp, #4] - ldr r2, [r6, #4060] + ldr r2, [r7, #228] ldrh r2, [r2, r3, lsl #1] str r2, [sp, #8] mov r2, r5 bl sprintf adds r5, r5, #1 - ldr r3, [r9, #-228] + ldr r3, [r7, #284] cmp r5, #16 - ldrh r3, [r3, r10] + ldrh r3, [r3, r8] add r4, r4, r0 - ldr ip, [sp, #20] - bne .L736 -.L735: - ldr r3, [r9, #-228] - mov r10, #0 - ldr r5, [r9, #-208] - movw ip, #65535 - subs r5, r5, r3 - ldr r3, .L745+48 - asrs r5, r5, #1 - muls r3, r5, r3 - movs r5, #6 + bne .L735 +.L734: + ldr r2, [r7, #284] + movs r5, #0 + ldr r3, [r7, #304] + mov r9, #6 + movw r10, #65535 + subs r3, r3, r2 + ldr r2, .L743+44 + asrs r3, r3, #1 + muls r3, r2, r3 uxth r3, r3 -.L738: - cmp r3, ip - str ip, [sp, #20] - beq .L737 - mul fp, r5, r3 - ldr r2, [r9, #-228] +.L737: + cmp r3, r10 + beq .L736 + mul r8, r9, r3 + ldr r2, [r7, #284] mov r0, r4 - ldr r1, .L745+52 - add r2, r2, fp + ldr r1, .L743+48 + add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp] - ldr r2, [r6, #4060] + ldr r2, [r7, #228] ldrh r2, [r2, r3, lsl #1] str r2, [sp, #4] - mov r2, r10 + mov r2, r5 bl sprintf - add r10, r10, #1 - ldr r3, [r9, #-228] - cmp r10, #4 - ldrh r3, [r3, fp] + adds r5, r5, #1 + ldr r3, [r7, #284] + cmp r5, #4 + ldrh r3, [r3, r8] add r4, r4, r0 - ldr ip, [sp, #20] - bne .L738 -.L737: - ldr r2, [sp, #44] - rsb r0, r8, r4 - ldr r3, [r7] - cmp r2, r3 - beq .L739 - bl __stack_chk_fail -.L739: - add sp, sp, #52 + bne .L737 +.L736: + subs r0, r4, r6 + add sp, sp, #32 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L746: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L744: .align 2 -.L745: - .word .LC63 +.L743: .word .LC64 .word .LC65 .word .LC66 @@ -5433,8 +5394,8 @@ ftl_proc_ftl_read: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L748 - ldr r2, .L748+4 + ldr r1, .L746 + ldr r2, .L746+4 bl sprintf adds r4, r5, r0 mov r0, r4 @@ -5442,9 +5403,9 @@ ftl_proc_ftl_read: add r0, r0, r4 subs r0, r0, r5 pop {r3, r4, r5, pc} -.L749: +.L747: .align 2 -.L748: +.L746: .word .LC76 .word .LC77 .fnend @@ -5462,181 +5423,181 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L778 - ldr r2, [r4, #8] - ldr r3, [r4, #16] + ldr r4, .L776 + ldr r2, [r4, #520] + ldr r3, [r4, #528] cmp r2, r3 - bcs .L751 - ldr r2, .L778+4 + bcs .L749 + ldr r2, .L776+4 movs r3, #0 - str r3, [r4] - ldrh r1, [r2, #1812] + ldr r0, [r4, #228] + str r3, [r4, #512] + ldrh r1, [r2, #2324] mov r5, r2 - ldr r0, [r2, #4060] -.L752: +.L750: cmp r3, r1 - bcs .L777 + bcs .L775 ldrh r6, [r0, r3, lsl #1] adds r3, r3, #1 - ldr r2, [r4] + ldr r2, [r4, #512] add r2, r2, r6 - str r2, [r4] - b .L752 -.L777: - ldr r6, [r4] + str r2, [r4, #512] + b .L750 +.L775: + ldr r6, [r4, #512] mov r0, r6 bl __aeabi_uidiv - ldrh r1, [r5, #1864] - str r0, [r4, #8] - ldr r0, [r4, #4] + ldrh r1, [r5, #2376] + str r0, [r4, #520] + ldr r0, [r4, #516] subs r0, r6, r0 bl __aeabi_uidiv - str r0, [r4] - b .L754 -.L751: - ldr r3, [r4, #12] + str r0, [r4, #512] + b .L752 +.L749: + ldr r3, [r4, #524] cmp r2, r3 - bls .L754 - ldr r1, .L778+4 + bls .L752 + ldr r0, .L776+4 adds r3, r3, #1 - str r3, [r4, #12] + str r3, [r4, #524] movs r3, #0 -.L756: - ldrh r2, [r1, #1812] - cmp r3, r2 - bcs .L754 - ldr r0, [r1, #4060] - ldrh r2, [r0, r3, lsl #1] - adds r2, r2, #1 - strh r2, [r0, r3, lsl #1] @ movhi - adds r3, r3, #1 - b .L756 .L754: - ldr r6, [r4, #16] - ldr r8, [r4, #8] + ldrh r2, [r0, #2324] + cmp r3, r2 + bcs .L752 + ldr r1, [r4, #228] + 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] add r3, r6, #256 cmp r3, r8 - bls .L759 - ldr r2, .L778 + bls .L757 + ldr r2, .L776 add r3, r6, #768 - ldr r2, [r2, #12] + ldr r2, [r2, #524] cmp r3, r2 - bls .L759 - ldr r3, .L778+4 - ldr r3, [r3, #1796] - cbnz r3, .L760 -.L762: - movw r0, #65535 - b .L761 + bls .L757 + ldr r3, .L776+4 + ldr r3, [r3, #2308] + cbnz r3, .L758 .L760: + movw r0, #65535 + b .L759 +.L758: cmp r6, #40 - bhi .L762 -.L759: - ldrh r0, [r4, #-204] + bhi .L760 +.L757: + ldrh r0, [r4, #308] add r0, r0, r0, lsl #1 ubfx r0, r0, #2, #16 bl GetFreeBlockMaxEraseCount add r3, r6, #64 cmp r0, r3 mov r9, r0 - bcs .L763 + bcs .L761 cmp r6, #40 - bhi .L762 -.L763: - ldr r3, [r4, #-224] + bhi .L760 +.L761: + ldr r3, [r4, #288] + ldr r2, .L776 cmp r3, #0 - beq .L762 - ldr r2, .L778+4 + beq .L760 + ldr r1, .L776+4 movw r7, #65535 + ldr r0, [r2, #284] mov ip, #6 + ldr r10, [r2, #228] mov r5, r7 + ldrh r1, [r1, #2324] mov lr, r7 - ldrh r1, [r2, #1812] - ldr r10, [r2, #4060] str r1, [sp, #20] - ldr r1, .L778 - ldr r0, [r1, #-228] movs r1, #0 -.L764: +.L762: ldrh r2, [r3] cmp r2, lr str r2, [sp, #16] - beq .L766 + beq .L764 adds r1, r1, #1 ldr r2, [sp, #20] uxth r1, r1 cmp r1, r2 - bhi .L762 + bhi .L760 ldrh fp, [r3, #4] cmp fp, #0 - beq .L765 + beq .L763 subs r3, r3, r0 - ldr r2, .L778+8 + ldr r2, .L776+8 asrs r3, r3, #1 muls r3, r2, r3 uxth r3, r3 ldrh fp, [r10, r3, lsl #1] cmp fp, r6 - bls .L770 + bls .L768 cmp fp, r7 itt cc movcc r7, fp movcc r5, r3 -.L765: +.L763: ldr r3, [sp, #16] mla r3, ip, r3, r0 - b .L764 -.L770: + b .L762 +.L768: mov r5, r3 -.L766: +.L764: movw r3, #65535 cmp r5, r3 - beq .L762 + beq .L760 ldrh fp, [r10, r5, lsl #1] lsls r3, r5, #1 cmp fp, r6 - bls .L768 + bls .L766 str r3, [sp, #16] bl GetFreeBlockMinEraseCount ldr r3, [sp, #16] cmp r0, r6 it hi - strhi r7, [r4, #16] -.L768: + strhi r7, [r4, #528] +.L766: cmp fp, r8 - bcs .L762 + bcs .L760 add r2, fp, #128 cmp r9, r2 - ble .L762 + ble .L760 add r2, fp, #256 cmp r2, r8 - bcc .L769 - ldr r2, [r4, #12] + bcc .L767 + ldr r2, [r4, #524] add fp, fp, #768 cmp fp, r2 - bcs .L762 -.L769: - ldr r2, [r4, #-220] + bcs .L760 +.L767: + ldr r2, [r4, #292] mov r1, r5 - ldr r0, .L778+12 + ldr r0, .L776+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, #12] + ldr r3, [r4, #524] bl printk mov r0, r5 movs r3, #1 - str r3, [r4, #616] -.L761: + str r3, [r4, #1128] +.L759: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L779: +.L777: .align 2 -.L778: +.L776: .word .LANCHOR2 .word .LANCHOR0 .word -1431655765 @@ -5656,18 +5617,18 @@ free_data_superblock: cmp r0, r2 push {r3, lr} .save {r3, lr} - beq .L781 - ldr r2, .L782 + beq .L779 + ldr r2, .L780 movs r1, #0 - ldr r2, [r2, #-220] + ldr r2, [r2, #292] strh r1, [r2, r0, lsl #1] @ movhi bl INSERT_FREE_LIST -.L781: +.L779: movs r0, #0 pop {r3, pc} -.L783: +.L781: .align 2 -.L782: +.L780: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5680,9 +5641,9 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L795 + ldr r2, .L793 mov ip, #36 - ldr r0, .L795+4 + ldr r0, .L793+4 movs r3, #0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} @@ -5690,68 +5651,68 @@ FtlGcBufInit: mov lr, #1 mov r6, r0 mov r4, r2 - str r3, [r2, #620] -.L785: - ldrh r1, [r0, #1804] + str r3, [r2, #1132] +.L783: + ldrh r1, [r0, #2316] adds r5, r3, #1 uxth r3, r3 - ldr r8, .L795+4 + ldr r8, .L793+4 cmp r3, r1 - bcs .L793 + bcs .L791 mul r8, r7, r3 - ldr r9, [r2, #624] + ldr r9, [r2, #1136] add r1, r9, r8 str lr, [r1, #8] - ldrh r1, [r0, #1882] + ldrh r1, [r0, #2394] muls r1, r3, r1 it mi addmi r1, r1, #3 bic r10, r1, #3 - ldr r1, [r4, #628] + ldr r1, [r4, #1140] add r1, r1, r10 str r1, [r9, r8] - ldr r10, [r2, #624] - ldrh r1, [r6, #1884] + ldr r10, [r2, #1136] + ldrh r1, [r6, #2396] muls r1, r3, r1 it mi addmi r1, r1, #3 add r9, r10, r8 bic fp, r1, #3 - ldr r1, [r4, #632] + ldr r1, [r4, #1144] add r1, r1, fp str r1, [r9, #4] - ldr r1, [r2, #636] + ldr r1, [r2, #1148] 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 .L785 -.L793: - ldr r0, .L795 + b .L783 +.L791: + ldr r0, .L793 mov lr, #12 movs r5, #0 -.L789: - ldr r3, [r2, #640] +.L787: + ldr r3, [r2, #1152] cmp r1, r3 - bcs .L794 + bcs .L792 mul r7, lr, r1 - ldr r6, [r0, #624] - ldr r4, [r0, #628] + ldr r6, [r0, #1136] + ldr r4, [r0, #1140] adds r3, r6, r7 str r5, [r3, #8] - ldrh r3, [r8, #1882] + ldrh r3, [r8, #2394] 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, #624] - ldr r6, [r0, #632] + ldr r3, [r2, #1136] + ldr r6, [r0, #1144] add r7, r7, r3 - ldrh r3, [r8, #1884] + ldrh r3, [r8, #2396] muls r3, r1, r3 add r1, r1, #1 it mi @@ -5760,12 +5721,12 @@ FtlGcBufInit: uxth r1, r1 add r3, r3, r6 str r3, [r7, #4] - b .L789 -.L794: + b .L787 +.L792: pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L796: +.L794: .align 2 -.L795: +.L793: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -5779,41 +5740,41 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L804 + ldr r3, .L802 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r5, #0 - ldr lr, [r3, #640] + ldr lr, [r3, #1152] mov r10, #36 - ldr r6, [r3, #624] + ldr r6, [r3, #1136] mov r8, #12 mov ip, r5 -.L798: +.L796: uxth r4, r5 cmp r4, r1 - bcs .L797 + bcs .L795 mla r4, r10, r4, r0 movs r2, #0 -.L799: +.L797: uxth r3, r2 cmp r3, lr - bcs .L800 + bcs .L798 mul r3, r8, r3 ldr r7, [r4, #8] adds r2, r2, #1 add r9, r6, r3 ldr r3, [r6, r3] cmp r3, r7 - bne .L799 + bne .L797 str ip, [r9, #8] -.L800: +.L798: adds r5, r5, #1 - b .L798 -.L797: + b .L796 +.L795: pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L805: +.L803: .align 2 -.L804: +.L802: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -5826,43 +5787,43 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L814 + ldr r3, .L812 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, #640] + ldr r5, [r3, #1152] mov lr, #12 - ldr r6, [r3, #624] + ldr r6, [r3, #1136] mov r8, #36 -.L807: +.L805: uxth r2, r4 cmp r2, r1 - bcs .L813 + bcs .L811 mov r9, #0 -.L808: +.L806: uxth r3, r9 cmp r3, r5 - bcs .L809 + bcs .L807 mla r3, lr, r3, r6 add r9, r9, #1 ldr r7, [r3, #8] cmp r7, #0 - bne .L808 + bne .L806 mla r2, r8, r2, r0 ldr r7, [r3] str ip, [r3, #8] str r7, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L809: +.L807: adds r4, r4, #1 - b .L807 -.L813: + b .L805 +.L811: pop {r4, r5, r6, r7, r8, r9, pc} -.L815: +.L813: .align 2 -.L814: +.L812: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -5876,24 +5837,24 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L822 - ldr r3, [r2, #644] - ldrh r2, [r2, #648] + ldr r2, .L820 + ldr r3, [r2, #1156] + ldrh r2, [r2, #1160] add r2, r3, r2, lsl #1 -.L817: +.L815: cmp r3, r2 - beq .L821 + beq .L819 ldrh r1, [r3], #2 cmp r1, r0 - bne .L817 + bne .L815 movs r0, #1 bx lr -.L821: +.L819: movs r0, #0 bx lr -.L823: +.L821: .align 2 -.L822: +.L820: .word .LANCHOR2 .fnend .size IsBlkInGcList, .-IsBlkInGcList @@ -5913,42 +5874,42 @@ FtlGcUpdatePage: mov r7, r1 mov r8, r2 bl P2V_block_in_plane - ldr r3, .L831 + ldr r3, .L829 movs r4, #0 - ldrh r1, [r3, #648] - ldr r2, [r3, #644] -.L825: + ldrh r1, [r3, #1160] + ldr r2, [r3, #1156] +.L823: uxth r5, r4 cmp r5, r1 - bcs .L829 + bcs .L827 adds r4, r4, #1 add lr, r2, r4, lsl #1 ldrh lr, [lr, #-2] cmp lr, r0 - bne .L825 -.L829: - cmp r5, r1 - bne .L827 - strh r0, [r2, r5, lsl #1] @ movhi - ldrh r0, [r3, #648] - adds r0, r0, #1 - strh r0, [r3, #648] @ movhi + bne .L823 .L827: - ldrh r2, [r3, #656] + cmp r5, r1 + bne .L825 + strh r0, [r2, r5, lsl #1] @ movhi + ldrh r0, [r3, #1160] + adds r0, r0, #1 + strh r0, [r3, #1160] @ movhi +.L825: + ldrh r2, [r3, #1168] movs r0, #12 muls r0, r2, r0 - ldr r2, [r3, #652] + ldr r2, [r3, #1164] adds r1, r2, r0 str r7, [r1, #4] str r8, [r1, #8] str r6, [r2, r0] - ldrh r2, [r3, #656] + ldrh r2, [r3, #1168] adds r2, r2, #1 - strh r2, [r3, #656] @ movhi + strh r2, [r3, #1168] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L832: +.L830: .align 2 -.L831: +.L829: .word .LANCHOR2 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage @@ -5964,51 +5925,51 @@ FtlGcRefreshOpenBlock: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L840 - ldrh r3, [r4, #658] + ldr r4, .L838 + ldrh r3, [r4, #1170] cmp r3, r0 - beq .L835 - ldrh r3, [r4, #660] + beq .L833 + ldrh r3, [r4, #1172] cmp r3, r0 - beq .L835 - ldrh r3, [r4, #662] + beq .L833 + ldrh r3, [r4, #1174] cmp r3, r0 - beq .L835 - ldrh r3, [r4, #664] + beq .L833 + ldrh r3, [r4, #1176] cmp r3, r0 - beq .L835 - ldr r0, .L840+4 + beq .L833 + ldr r0, .L838+4 mov r1, r5 bl printk - ldrh r2, [r4, #658] + ldrh r2, [r4, #1170] 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 - strh r5, [r4, #658] @ movhi - b .L835 + strh r5, [r4, #1174] @ movhi + b .L833 .L837: - ldrh r2, [r4, #660] - cmp r2, r3 - bne .L838 - strh r5, [r4, #660] @ movhi - b .L835 -.L838: - ldrh r2, [r4, #662] - cmp r2, r3 - bne .L839 - strh r5, [r4, #662] @ movhi - b .L835 -.L839: - ldrh r2, [r4, #664] + ldrh r2, [r4, #1176] cmp r2, r3 it eq - strheq r5, [r4, #664] @ movhi -.L835: + strheq r5, [r4, #1176] @ movhi +.L833: movs r0, #0 pop {r3, r4, r5, pc} -.L841: +.L839: .align 2 -.L840: +.L838: .word .LANCHOR2 .word .LC79 .fnend @@ -6025,54 +5986,54 @@ FtlGcRefreshBlock: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L852 - ldrh r3, [r4, #658] + ldr r4, .L850 + ldrh r3, [r4, #1170] cmp r3, r0 - beq .L850 - ldrh r3, [r4, #660] + beq .L848 + ldrh r3, [r4, #1172] cmp r3, r0 - beq .L850 - ldrh r3, [r4, #662] + beq .L848 + ldrh r3, [r4, #1174] cmp r3, r0 - beq .L850 - ldrh r3, [r4, #664] + beq .L848 + ldrh r3, [r4, #1176] cmp r3, r0 - beq .L850 - ldr r0, .L852+4 + beq .L848 + ldr r0, .L850+4 mov r1, r5 bl printk - ldrh r2, [r4, #658] + ldrh r2, [r4, #1170] 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 - strh r5, [r4, #658] @ movhi - b .L850 + strh r5, [r4, #1174] @ movhi + b .L848 .L844: - ldrh r2, [r4, #660] + ldrh r2, [r4, #1176] cmp r2, r3 - bne .L845 - strh r5, [r4, #660] @ movhi - b .L850 -.L845: - ldrh r2, [r4, #662] - cmp r2, r3 - bne .L846 - strh r5, [r4, #662] @ movhi - b .L850 -.L846: - ldrh r2, [r4, #664] - cmp r2, r3 - bne .L851 - strh r5, [r4, #664] @ movhi -.L850: + bne .L849 + strh r5, [r4, #1176] @ movhi +.L848: movs r0, #0 pop {r3, r4, r5, pc} -.L851: +.L849: mov r0, #-1 pop {r3, r4, r5, pc} -.L853: +.L851: .align 2 -.L852: +.L850: .word .LANCHOR2 .word .LC79 .fnend @@ -6088,57 +6049,57 @@ FtlGcMarkBadPhyBlk: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - mov r4, r0 - bl P2V_block_in_plane - ldr r6, .L863 - mov r2, r4 - ldrh r1, [r6, #666] mov r5, r0 - ldr r0, .L863+4 + bl P2V_block_in_plane + ldr r4, .L861 + mov r2, r5 + ldrh r1, [r4, #1178] + mov r6, r0 + ldr r0, .L861+4 bl printk - mov r0, r5 + mov r0, r6 bl FtlGcRefreshBlock - ldr r2, .L863+8 - mov r3, r6 - ldr r1, [r2, #1796] - cbz r1, .L855 - ldr r1, [r2, #4060] - ldrh r2, [r1, r5, lsl #1] + ldr r3, .L861+8 + ldr r2, [r3, #2308] + mov r3, r4 + cbz r2, .L853 + ldr r1, [r4, #228] + ldrh r2, [r1, r6, lsl #1] cmp r2, #39 itt hi subhi r2, r2, #40 - strhhi r2, [r1, r5, lsl #1] @ movhi -.L855: - ldrh r2, [r3, #666] + strhhi r2, [r1, r6, lsl #1] @ movhi +.L853: + ldrh r2, [r3, #1178] movs r1, #0 - ldr r5, .L863+12 -.L856: + ldr r4, .L861+12 +.L854: uxth r0, r1 cmp r0, r2 - bcs .L862 + bcs .L860 adds r1, r1, #1 - add r0, r5, r1, lsl #1 + add r0, r4, r1, lsl #1 ldrh r0, [r0, #-2] - cmp r0, r4 - bne .L856 - b .L857 -.L862: + cmp r0, r5 + bne .L854 + b .L855 +.L860: cmp r2, #15 itttt ls addls r1, r2, #1 - strhls r1, [r3, #666] @ movhi + strhls r1, [r3, #1178] @ movhi addls r3, r3, r2, lsl #1 - strhls r4, [r3, #668] @ movhi -.L857: + strhls r5, [r3, #1180] @ movhi +.L855: movs r0, #0 pop {r4, r5, r6, pc} -.L864: +.L862: .align 2 -.L863: +.L861: .word .LANCHOR2 .word .LC80 .word .LANCHOR0 - .word .LANCHOR2+668 + .word .LANCHOR2+1180 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 1 @@ -6152,32 +6113,32 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L871 - ldrh r3, [r4, #666] - cbz r3, .L866 - ldrh r1, [r4, #658] + ldr r4, .L869 + ldrh r3, [r4, #1178] + cbz r3, .L864 + ldrh r1, [r4, #1170] movw r2, #65535 cmp r1, r2 - bne .L866 - ldrh r2, [r4, #702] + bne .L864 + ldrh r2, [r4, #1214] cmp r2, r3 itt cs movcs r3, #0 - strhcs r3, [r4, #702] @ movhi - ldrh r3, [r4, #702] + strhcs r3, [r4, #1214] @ movhi + ldrh r3, [r4, #1214] add r3, r4, r3, lsl #1 - ldrh r0, [r3, #668] + ldrh r0, [r3, #1180] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh r3, [r4, #702] + ldrh r3, [r4, #1214] adds r3, r3, #1 - strh r3, [r4, #702] @ movhi -.L866: + strh r3, [r4, #1214] @ movhi +.L864: movs r0, #0 pop {r4, pc} -.L872: +.L870: .align 2 -.L871: +.L869: .word .LANCHOR2 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -6206,29 +6167,29 @@ BuildFlashLsbPageTable: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r1 - cbnz r0, .L875 - ldr r3, .L904 -.L876: + cbnz r0, .L873 + ldr r3, .L907 +.L874: strh r0, [r3, r0, lsl #1] @ movhi adds r0, r0, #1 cmp r0, #256 - bne .L876 -.L880: + bne .L874 +.L878: movs r1, #255 - ldr r0, .L904+4 - mov r2, #1024 + ldr r0, .L907+4 + mov r2, #2048 uxth r4, r4 bl ftl_memset movs r3, #0 - ldr r1, .L904 - ldr r0, .L904+8 - b .L877 -.L875: + ldr r1, .L907 + ldr r0, .L907+8 + b .L875 +.L873: cmp r0, #1 - bne .L878 - ldr r5, .L904 + bne .L876 + ldr r5, .L907 movs r3, #0 -.L879: +.L877: uxth r2, r3 cmp r2, #3 ite ls @@ -6245,14 +6206,14 @@ BuildFlashLsbPageTable: strh r2, [r5, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #256 - bne .L879 - b .L880 -.L878: + bne .L877 + b .L878 +.L876: cmp r0, #2 - bne .L881 - ldr r0, .L904 + bne .L879 + ldr r0, .L907 movs r3, #0 -.L882: +.L880: uxth r2, r3 lsls r1, r2, #1 subs r1, r1, #1 @@ -6262,14 +6223,14 @@ BuildFlashLsbPageTable: strh r2, [r0, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #256 - bne .L882 - b .L880 -.L881: + bne .L880 + b .L878 +.L879: cmp r0, #3 - bne .L883 - ldr r5, .L904 + bne .L881 + ldr r5, .L907 movs r3, #0 -.L884: +.L882: uxth r2, r3 cmp r2, #5 ite ls @@ -6286,13 +6247,13 @@ BuildFlashLsbPageTable: strh r2, [r5, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #256 - bne .L884 - b .L880 -.L883: + bne .L882 + b .L878 +.L881: cmp r0, #4 mov r3, #0 - bne .L885 - ldr r2, .L904+12 + bne .L883 + ldr r2, .L907+12 strh r3, [r2, #144] @ movhi movs r3, #1 strh r0, [r2, #152] @ movhi @@ -6307,7 +6268,7 @@ BuildFlashLsbPageTable: strh r3, [r2, #156] @ movhi movs r3, #8 strh r3, [r2, #158]! @ movhi -.L886: +.L884: tst r3, #1 ite ne movne r1, #7 @@ -6317,30 +6278,30 @@ BuildFlashLsbPageTable: strh r1, [r2, #2]! @ movhi uxth r3, r3 cmp r3, #256 - bne .L886 - b .L880 -.L885: + bne .L884 + b .L878 +.L883: cmp r0, #5 - bne .L887 - ldr r2, .L904 -.L888: + bne .L885 + ldr r2, .L907 +.L886: strh r3, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #16 - bne .L888 - ldr r2, .L904+16 -.L889: + bne .L886 + ldr r2, .L907+16 +.L887: strh r3, [r2, #2]! @ movhi adds r3, r3, #2 uxth r3, r3 cmp r3, #496 - bne .L889 - b .L880 -.L887: + bne .L887 + b .L878 +.L885: cmp r0, #6 - bne .L890 - ldr r5, .L904 -.L891: + bne .L888 + ldr r5, .L907 +.L889: uxth r2, r3 cmp r2, #5 ite ls @@ -6358,12 +6319,12 @@ BuildFlashLsbPageTable: strh r2, [r5, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #256 - bne .L891 - b .L880 -.L890: + bne .L889 + b .L878 +.L888: cmp r0, #9 - bne .L880 - ldr r2, .L904+12 + bne .L890 + ldr r2, .L907+12 movw r1, #509 strh r3, [r2, #144] @ movhi movs r3, #1 @@ -6371,32 +6332,51 @@ BuildFlashLsbPageTable: movs r3, #2 strh r3, [r2, #148]! @ movhi movs r3, #3 -.L892: +.L891: strh r3, [r2, #2]! @ movhi adds r3, r3, #2 uxth r3, r3 cmp r3, r1 + bne .L891 + b .L878 +.L890: + cmp r0, #10 + bne .L878 + ldr r2, .L907 +.L892: + strh r3, [r2, r3, lsl #1] @ movhi + adds r3, r3, #1 + cmp r3, #63 bne .L892 - b .L880 -.L877: + ldr r2, .L907+20 + movw r1, #961 +.L893: + strh r3, [r2, #2]! @ movhi + adds r3, r3, #2 + uxth r3, r3 + cmp r3, r1 + bne .L893 + b .L878 +.L875: uxth r2, r3 cmp r2, r4 - bcs .L903 + bcs .L906 ldrh r2, [r1, r3, lsl #1] adds r3, r3, #1 add r5, r0, r2, lsl #1 - strh r2, [r5, #704] @ movhi - b .L877 -.L903: + strh r2, [r5, #1216] @ movhi + b .L875 +.L906: pop {r4, r5, r6, pc} -.L905: +.L908: .align 2 -.L904: +.L907: .word .LANCHOR0+144 - .word .LANCHOR2+704 + .word .LANCHOR2+1216 .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+174 + .word .LANCHOR0+268 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 1 @@ -6411,100 +6391,100 @@ 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, .L920 - ldr r4, .L920+4 - ldr r6, .L920+8 + ldr r3, .L923 + ldr r4, .L923+4 + ldr r6, .L923+8 ldrh r0, [r3, #482] - addw fp, r4, #1556 - strb r7, [r4, #1717] + addw fp, r4, #2068 + strb r7, [r4, #2229] mov r9, r4 - strb r7, [r6, #1728] + strb r7, [r6, #3264] bl FlashBlockAlignInit mov r1, r7 movs r2, #8 - add r0, r4, #1720 + addw r0, r4, #2232 bl ftl_memset mov r1, r7 movs r2, #32 - add r0, r4, #656 + add r0, r4, #1168 bl ftl_memset - addw r0, r4, #1588 + addw r0, r4, #2100 mov r1, r7 movs r2, #128 bl ftl_memset - ldr r5, [r4, #692] + ldr r5, [r4, #1204] add r8, r5, #1 -.L908: +.L911: mov r0, r8 add r1, fp, r7, lsl #3 ldrb r2, [r5] @ zero_extendqisi2 bl FlashMemCmp8 - ldr r10, .L920+12 - cbnz r0, .L907 - ldrb r3, [r9, #1717] @ zero_extendqisi2 + ldr r10, .L923+12 + cbnz r0, .L910 + ldrb r3, [r9, #2229] @ zero_extendqisi2 add r2, r9, r3, lsl #2 - str r0, [r2, #656] + str r0, [r2, #1168] adds r2, r3, #1 add r3, r3, r9 - strb r2, [r9, #1717] - strb r7, [r3, #1720] -.L907: + strb r2, [r9, #2229] + strb r7, [r3, #2232] +.L910: adds r7, r7, #1 cmp r7, #4 - bne .L908 - ldrb r3, [r4, #1717] @ zero_extendqisi2 - ldr r2, .L920+4 - strb r3, [r6, #1728] + bne .L911 + ldrb r3, [r4, #2229] @ zero_extendqisi2 + ldr r2, .L923+4 + strb r3, [r6, #3264] ldrb r3, [r5, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L909 -.L913: + beq .L912 +.L916: ldrb r3, [r5, #13] @ zero_extendqisi2 - ldrb r2, [r4, #1717] @ zero_extendqisi2 + ldrb r2, [r4, #2229] @ zero_extendqisi2 smulbb r2, r2, r3 ldrh r3, [r5, #14] smulbb r3, r2, r3 - strh r3, [r6, #1730] @ movhi + strh r3, [r6, #3266] @ movhi pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L909: +.L912: ldr r9, [r2, #4] movs r7, #0 mov fp, r2 -.L912: +.L915: mov r0, r8 add r1, r10, r7, lsl #3 ldrb r2, [r5] @ zero_extendqisi2 bl FlashMemCmp8 - cbnz r0, .L910 + cbnz r0, .L913 ldrb r0, [r5, #13] @ zero_extendqisi2 ldrh r3, [r5, #14] - ldrb r2, [fp, #1717] @ zero_extendqisi2 + ldrb r2, [fp, #2229] @ zero_extendqisi2 mul r0, r9, r0 and r3, r3, #65280 add r1, fp, r2, lsl #2 muls r3, r0, r3 - str r3, [r1, #656] + str r3, [r1, #1168] ldrb r0, [r5, #23] @ zero_extendqisi2 - cbz r0, .L911 + cbz r0, .L914 lsls r3, r3, #1 - str r3, [r1, #656] -.L911: + str r3, [r1, #1168] +.L914: adds r3, r2, #1 add r2, r2, r4 - strb r3, [r4, #1717] - strb r7, [r2, #1720] -.L910: + strb r3, [r4, #2229] + strb r7, [r2, #2232] +.L913: adds r7, r7, #1 cmp r7, #4 - bne .L912 - b .L913 -.L921: + bne .L915 + b .L916 +.L924: .align 2 -.L920: +.L923: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1556 + .word .LANCHOR0+2068 .fnend .size FlashDieInfoInit, .-FlashDieInfoInit .align 1 @@ -6522,19 +6502,19 @@ ftl_read_flash_info: movs r2, #11 mov r4, r0 bl ftl_memset - ldr r3, .L926 + ldr r3, .L929 movs r5, #1 - ldr r2, [r3, #692] + ldr r2, [r3, #1204] ldrb r1, [r2, #9] @ zero_extendqisi2 ldr r2, [r3, #4] smulbb r2, r1, r2 strh r2, [r4, #4] @ unaligned - ldrb r2, [r3, #1792] @ zero_extendqisi2 + ldrb r2, [r3, #2304] @ zero_extendqisi2 strb r2, [r4, #7] - ldr r2, [r3, #1912] + ldr r2, [r3, #2424] str r2, [r4] @ unaligned - ldr r2, [r3, #692] - add r3, r3, #1720 + ldr r2, [r3, #1204] + addw r3, r3, #2232 ldrb r0, [r3, #-3] @ zero_extendqisi2 ldrb r1, [r2, #9] @ zero_extendqisi2 strb r1, [r4, #6] @@ -6544,22 +6524,22 @@ ftl_read_flash_info: strb r2, [r4, #9] movs r2, #0 strb r2, [r4, #10] -.L923: +.L926: uxtb r1, r2 cmp r1, r0 - bcs .L925 + bcs .L928 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 .L923 -.L925: + b .L926 +.L928: pop {r4, r5, r6, pc} -.L927: +.L930: .align 2 -.L926: +.L929: .word .LANCHOR0 .fnend .size ftl_read_flash_info, .-ftl_read_flash_info @@ -6575,374 +6555,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, .L1032 + ldr r4, .L1035 movs r6, #0 - ldr r5, .L1032+4 + ldr r5, .L1035+4 movw r3, #65535 movs r7, #12 mov r8, #36 - strh r6, [r4, #1732] @ movhi - str r6, [r4, #1736] - str r6, [r4, #88] - str r6, [r4, #-8] - str r6, [r4, #-4] - str r6, [r4, #-20] - str r6, [r4, #-32] - str r6, [r4, #-36] - str r6, [r4, #-28] - str r6, [r4, #-24] - str r6, [r4, #-40] - str r6, [r4] - str r6, [r4, #4] - str r6, [r5, #4064] - str r6, [r4, #12] - str r6, [r4, #16] - str r6, [r4, #1740] - str r6, [r4, #616] - str r3, [r4, #1744] - str r6, [r4, #1748] - str r6, [r4, #608] - str r6, [r4, #1752] - strh r3, [r4, #658] @ movhi - strh r3, [r4, #660] @ movhi - strh r3, [r4, #662] @ movhi - strh r3, [r4, #664] @ movhi + 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] + str r6, [r4, #3276] + str r6, [r4, #1128] + str r3, [r4, #3280] + str r6, [r4, #3284] + str r6, [r4, #1120] + str r6, [r4, #3288] + strh r3, [r4, #1170] @ movhi + strh r3, [r4, #1172] @ movhi + strh r3, [r4, #1174] @ movhi + strh r3, [r4, #1176] @ movhi movs r3, #32 - strh r6, [r4, #612] @ movhi - strh r3, [r4, #604] @ movhi + strh r6, [r4, #1124] @ movhi + strh r3, [r4, #1116] @ movhi movs r3, #128 - strh r6, [r4, #666] @ movhi - strh r3, [r4, #606] @ movhi - strh r6, [r4, #1756] @ movhi - strh r6, [r4, #702] @ movhi - ldrh r1, [r5, #1878] + strh r6, [r4, #1178] @ movhi + strh r3, [r4, #1118] @ movhi + strh r6, [r4, #3292] @ movhi + strh r6, [r4, #1214] @ movhi + ldrh r1, [r5, #2390] bl __aeabi_idiv - ldrh r3, [r5, #1804] - str r6, [r5, #1924] + ldrh r3, [r5, #2316] + str r6, [r5, #2436] lsls r3, r3, #2 cmp r0, r3 - str r0, [r4, #1760] - ldrh r0, [r5, #1876] + str r0, [r4, #3296] + ldrh r0, [r5, #2388] it hi - strhi r3, [r4, #1760] + strhi r3, [r4, #3296] lsls r0, r0, #1 bl ftl_malloc - str r0, [r4, #644] - ldrh r0, [r5, #1876] + str r0, [r4, #1156] + ldrh r0, [r5, #2388] muls r0, r7, r0 bl ftl_malloc - ldrh r6, [r5, #1804] + ldrh r6, [r5, #2316] mul r6, r8, r6 lsl r9, r6, #3 - str r0, [r4, #652] + str r0, [r4, #1164] mov r0, r9 bl ftl_malloc - str r0, [r4, #1764] + str r0, [r4, #3300] mov r0, r6 bl ftl_malloc - str r0, [r4, #1768] + str r0, [r4, #3304] mov r0, r9 bl ftl_malloc - str r0, [r4, #1772] + str r0, [r4, #3308] mov r0, r6 bl ftl_malloc - str r0, [r5, #4056] + str r0, [r4, #224] mov r0, r6 bl ftl_malloc - str r0, [r4, #636] - ldr r0, [r4, #1760] + str r0, [r4, #1148] + ldr r0, [r4, #3296] mul r0, r8, r0 bl ftl_malloc - ldrh r6, [r5, #1882] - ldrh r3, [r5, #1804] + ldrh r6, [r5, #2394] + ldrh r3, [r5, #2316] lsls r3, r3, #1 adds r3, r3, #1 - str r3, [r4, #640] - str r0, [r5, #1928] + str r3, [r4, #1152] + str r0, [r5, #2440] mov r0, r6 bl ftl_malloc - str r0, [r4, #1776] + str r0, [r4, #3312] mov r0, r6 bl ftl_malloc - str r0, [r4, #1780] + str r0, [r4, #3316] mov r0, r6 bl ftl_malloc - str r0, [r4, #1784] - ldr r0, [r4, #640] + str r0, [r4, #3320] + ldr r0, [r4, #1152] muls r0, r6, r0 bl ftl_malloc - str r0, [r4, #628] - ldr r0, [r4, #1760] + str r0, [r4, #1140] + ldr r0, [r4, #3296] muls r0, r6, r0 bl ftl_malloc - str r0, [r4, #1788] + str r0, [r4, #3324] mov r0, r6 bl ftl_malloc - str r0, [r4, #1792] + str r0, [r4, #3328] mov r0, r6 bl ftl_malloc - str r0, [r4, #1796] - ldr r0, [r4, #640] + str r0, [r4, #3332] + ldr r0, [r4, #1152] muls r0, r7, r0 bl ftl_malloc - ldrh r3, [r5, #1804] - ldrh r6, [r5, #1884] + ldrh r3, [r5, #2316] + ldrh r6, [r5, #2396] muls r6, r3, r6 - str r0, [r4, #624] + str r0, [r4, #1136] mov r0, r6 bl ftl_malloc - str r0, [r4, #1800] + str r0, [r4, #3336] lsls r0, r6, #3 bl ftl_malloc - ldrh r3, [r5, #1884] - str r0, [r4, #1804] - ldr r0, [r4, #640] + ldrh r3, [r5, #2396] + str r0, [r4, #3340] + ldr r0, [r4, #1152] muls r0, r3, r0 bl ftl_malloc - ldrh r3, [r5, #1884] - str r0, [r4, #632] - ldr r0, [r4, #1760] + ldrh r3, [r5, #2396] + str r0, [r4, #1144] + ldr r0, [r4, #3296] muls r0, r3, r0 bl ftl_malloc - str r0, [r4, #1808] - ldrh r0, [r5, #1814] + str r0, [r4, #3344] + ldrh r0, [r5, #2326] lsls r0, r0, #1 uxth r0, r0 - strh r0, [r4, #1812] @ movhi + strh r0, [r4, #3348] @ movhi bl ftl_malloc - str r0, [r4, #1816] - ldrh r0, [r4, #1812] + str r0, [r4, #3352] + ldrh r0, [r4, #3348] addw r0, r0, #547 lsrs r0, r0, #9 - strh r0, [r4, #1812] @ movhi + strh r0, [r4, #3348] @ movhi lsls r0, r0, #9 bl ftl_malloc - ldrh r6, [r5, #1814] + ldrh r6, [r5, #2326] lsls r6, r6, #1 - str r0, [r4, #1820] + str r0, [r4, #3356] adds r0, r0, #32 - str r0, [r5, #4060] + str r0, [r4, #228] mov r0, r6 bl ftl_malloc - str r0, [r4, #1824] + str r0, [r4, #3360] mov r0, r6 bl ftl_malloc - ldr r6, [r5, #1900] + ldr r6, [r5, #2412] lsls r6, r6, #1 - str r0, [r4, #-220] + str r0, [r4, #292] mov r0, r6 bl ftl_malloc - str r0, [r4, #1828] + str r0, [r4, #3364] mov r0, r6 bl ftl_malloc - str r0, [r4, #1832] - ldrh r0, [r5, #1814] + str r0, [r4, #3368] + ldrh r0, [r5, #2326] lsrs r0, r0, #3 adds r0, r0, #4 bl ftl_malloc - str r0, [r4, #-44] - ldrh r0, [r5, #1892] + str r0, [r4, #468] + ldrh r0, [r5, #2404] lsls r0, r0, #1 bl ftl_malloc - str r0, [r5, #1920] - ldrh r0, [r5, #1892] + str r0, [r5, #2432] + ldrh r0, [r5, #2404] lsls r0, r0, #1 bl ftl_malloc - str r0, [r4, #1836] - ldrh r0, [r5, #1892] + str r0, [r4, #3372] + ldrh r0, [r5, #2404] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #1840] - ldrh r0, [r5, #1894] + str r0, [r4, #3376] + ldrh r0, [r5, #2406] lsls r0, r0, #2 bl ftl_malloc - ldrh r2, [r5, #1894] + ldrh r2, [r5, #2406] movs r1, #0 lsls r2, r2, #2 - str r0, [r4, #1844] + str r0, [r4, #3380] bl ftl_memset - ldrh r6, [r5, #1908] + ldrh r6, [r5, #2420] lsls r6, r6, #2 mov r0, r6 bl ftl_malloc - str r0, [r4, #1848] + str r0, [r4, #3384] mov r0, r6 bl ftl_malloc - ldr r6, .L1032+8 - str r0, [r4, #1852] - ldr r0, [r5, #1900] + ldr r6, .L1035+8 + str r0, [r4, #3388] + ldr r0, [r5, #2412] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #1856] - ldrh r0, [r5, #1910] + str r0, [r4, #3392] + ldrh r0, [r5, #2422] muls r0, r7, r0 bl ftl_malloc - ldrh r3, [r5, #1910] - str r0, [r4, #-56] - ldrh r0, [r5, #1882] + ldrh r3, [r5, #2422] + str r0, [r4, #456] + ldrh r0, [r5, #2394] muls r0, r3, r0 bl ftl_malloc - ldrh r3, [r5, #1814] - str r0, [r4, #1860] + ldrh r3, [r5, #2326] + str r0, [r4, #3396] movs r0, #6 muls r0, r3, r0 bl ftl_malloc - ldrh r3, [r5, #1870] + ldrh r3, [r5, #2382] adds r3, r3, #31 asrs r3, r3, #5 - strh r3, [r4, #1864] @ movhi - str r0, [r4, #-228] - ldrh r0, [r5, #1826] + strh r3, [r4, #3400] @ movhi + str r0, [r4, #284] + ldrh r0, [r5, #2338] muls r0, r3, r0 lsls r0, r0, #2 bl ftl_malloc - ldrh r2, [r4, #1864] - ldrh r7, [r5, #1826] + ldrh r2, [r4, #3400] + ldrh r7, [r5, #2338] movs r3, #1 lsls r2, r2, #2 mov r1, r2 - str r0, [r5, #1964] -.L930: + str r0, [r5, #2476] +.L933: cmp r3, r7 - bcs .L1030 - ldr r0, [r5, #1964] + bcs .L1033 + ldr r0, [r5, #2476] adds r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [r6, #4]! - b .L930 -.L1030: - ldr r2, .L1032+12 + b .L933 +.L1033: + ldr r2, .L1035+12 movs r1, #0 -.L932: +.L935: cmp r3, #8 - beq .L1031 + beq .L1034 add r0, r2, r3, lsl #2 adds r3, r3, #1 str r1, [r0, #28] - b .L932 -.L1031: - ldr r2, [r4, #1828] - ldr r3, .L1032 - cbnz r2, .L934 -.L936: - ldr r1, .L1032+16 - ldr r0, .L1032+20 + b .L935 +.L1034: + ldr r2, [r4, #3364] + ldr r3, .L1035 + cbnz r2, .L937 +.L939: + ldr r1, .L1035+16 + ldr r0, .L1035+20 bl printk mov r0, #-1 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1033: +.L1036: .align 2 -.L1032: +.L1035: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+1964 - .word .LANCHOR0+1936 + .word .LANCHOR0+2476 + .word .LANCHOR0+2448 .word .LANCHOR3 .word .LC81 -.L934: - ldr r2, [r3, #1832] +.L937: + ldr r2, [r3, #3368] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1848] + beq .L939 + ldr r2, [r3, #3384] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1856] + beq .L939 + ldr r2, [r3, #3392] cmp r2, #0 - beq .L936 - ldr r2, [r3, #-56] + beq .L939 + ldr r2, [r3, #456] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1860] + beq .L939 + ldr r2, [r3, #3396] cmp r2, #0 - beq .L936 - ldr r2, [r3, #-228] + beq .L939 + ldr r2, [r3, #284] cmp r2, #0 - beq .L936 - ldr r2, [r5, #1964] + beq .L939 + ldr r2, [r5, #2476] cmp r2, #0 - beq .L936 - ldr r3, [r3, #-220] + beq .L939 + ldr r3, [r3, #292] cmp r3, #0 - beq .L936 - ldr r2, [r4, #644] - ldr r3, .L1034 + beq .L939 + ldr r2, [r4, #1156] + ldr r3, .L1037 cmp r2, #0 - beq .L936 - ldr r2, [r3, #652] + beq .L939 + ldr r2, [r3, #1164] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1764] + beq .L939 + ldr r2, [r3, #3300] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1772] + beq .L939 + ldr r2, [r3, #3308] cmp r2, #0 - beq .L936 - ldr r2, [r5, #4056] + beq .L939 + ldr r2, [r3, #224] cmp r2, #0 - beq .L936 - ldr r2, [r3, #636] + beq .L939 + ldr r2, [r3, #1148] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1768] + beq .L939 + ldr r2, [r3, #3304] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1776] + beq .L939 + ldr r2, [r3, #3312] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1780] + beq .L939 + ldr r2, [r3, #3316] cmp r2, #0 - beq .L936 - ldr r3, [r3, #1784] + beq .L939 + ldr r3, [r3, #3320] cmp r3, #0 - beq .L936 - ldr r2, [r4, #628] - ldr r3, .L1034 + beq .L939 + ldr r2, [r4, #1140] + ldr r3, .L1037 cmp r2, #0 - beq .L936 - ldr r2, [r3, #1792] + beq .L939 + ldr r2, [r3, #3328] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1796] + beq .L939 + ldr r2, [r3, #3332] cmp r2, #0 - beq .L936 - ldr r2, [r3, #624] + beq .L939 + ldr r2, [r3, #1136] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1800] + beq .L939 + ldr r2, [r3, #3336] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1804] + beq .L939 + ldr r2, [r3, #3340] cmp r2, #0 - beq .L936 - ldr r2, [r3, #632] + beq .L939 + ldr r2, [r3, #1144] cmp r2, #0 - beq .L936 - ldr r2, .L1034+4 - ldr r1, [r2, #4060] - cmp r1, #0 - beq .L936 - ldr r3, [r3, #1816] + beq .L939 + ldr r2, [r3, #228] + cmp r2, #0 + beq .L939 + ldr r3, [r3, #3352] cmp r3, #0 - beq .L936 - ldr r3, [r2, #1920] + beq .L939 + ldr r3, .L1037+4 + ldr r3, [r3, #2432] cmp r3, #0 - beq .L936 - ldr r3, .L1034 - ldr r2, [r3, #1836] + beq .L939 + ldr r3, .L1037 + ldr r2, [r3, #3372] cmp r2, #0 - beq .L936 - ldr r2, [r3, #1840] + beq .L939 + ldr r2, [r3, #3376] cmp r2, #0 - beq .L936 - ldr r3, [r3, #1844] + beq .L939 + ldr r3, [r3, #3380] cmp r3, #0 - beq .L936 + beq .L939 movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1035: +.L1038: .align 2 -.L1034: +.L1037: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -6959,22 +6939,22 @@ FtlBbt2Bitmap: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r0 - ldr r3, .L1041 + ldr r3, .L1044 mov r0, r1 mov r5, r1 movs r1, #0 movs r7, #1 - ldrh r2, [r3, #1864] + ldrh r2, [r3, #3400] lsls r2, r2, #2 bl ftl_memset - ldr r1, .L1041+4 + ldr r1, .L1044+4 subs r2, r4, #2 addw r4, r4, #1022 movw lr, #65535 -.L1038: +.L1041: ldrh r3, [r2, #2]! cmp r3, lr - beq .L1036 + beq .L1039 lsrs r0, r3, #5 and r3, r3, #31 lsl r3, r7, r3 @@ -6982,15 +6962,15 @@ FtlBbt2Bitmap: ldr r6, [r5, r0, lsl #2] orr r3, r3, r6 str r3, [r5, r0, lsl #2] - ldrh r3, [r1, #1942] + ldrh r3, [r1, #2454] add r3, r3, #1 - strh r3, [r1, #1942] @ movhi - bne .L1038 -.L1036: + strh r3, [r1, #2454] @ movhi + bne .L1041 +.L1039: pop {r3, r4, r5, r6, r7, pc} -.L1042: +.L1045: .align 2 -.L1041: +.L1044: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7005,18 +6985,18 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1044 + ldr r0, .L1047 movw r3, #65535 movs r1, #255 movs r2, #16 - addw r0, r0, #1948 + addw r0, r0, #2460 strh r3, [r0, #-12] @ movhi movs r3, #0 strh r3, [r0, #-6] @ movhi b ftl_memset -.L1045: +.L1048: .align 2 -.L1044: +.L1047: .word .LANCHOR0 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit @@ -7029,23 +7009,23 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1047 + ldr r3, .L1050 mov r2, #2048 push {r4, lr} .save {r4, lr} movs r4, #0 - strh r0, [r3, #1996] @ movhi - addw r0, r3, #2004 + strh r0, [r3, #2508] @ movhi + addw r0, r3, #2516 mov r1, r4 - strh r4, [r3, #1998] @ movhi - strh r4, [r3, #2000] @ movhi - strh r4, [r3, #2002] @ movhi + strh r4, [r3, #2510] @ movhi + strh r4, [r3, #2512] @ movhi + strh r4, [r3, #2514] @ movhi bl ftl_memset mov r0, r4 pop {r4, pc} -.L1048: +.L1051: .align 2 -.L1047: +.L1050: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -7070,65 +7050,65 @@ ftl_free_no_use_map_blk: mov r0, r6 bl ftl_memset movs r1, #0 -.L1050: +.L1053: ldrh r2, [r4, #6] uxth r3, r1 cmp r2, r3 - bls .L1069 + bls .L1072 ldr r2, [r5, r3, lsl #2] movs r0, #0 ubfx r2, r2, #10, #16 -.L1051: +.L1054: ldrh lr, [r4, #10] uxth r3, r0 cmp lr, r3 - bls .L1070 + bls .L1073 ldrh lr, [r7, r3, lsl #1] cmp lr, r2 - bne .L1052 - cbz r2, .L1052 + bne .L1055 + cbz r2, .L1055 ldrh lr, [r6, r3, lsl #1] add lr, lr, #1 strh lr, [r6, r3, lsl #1] @ movhi -.L1052: +.L1055: adds r0, r0, #1 - b .L1051 -.L1070: + b .L1054 +.L1073: adds r1, r1, #1 - b .L1050 -.L1069: - ldr r3, .L1073 + b .L1053 +.L1072: + ldr r3, .L1076 mov r8, #0 mov r10, r8 - ldrh r2, [r3, #1874] + ldrh r2, [r3, #2386] ldrh r3, [r4] strh r2, [r6, r3, lsl #1] @ movhi mov r2, r8 ldrh r9, [r6] -.L1055: +.L1058: ldrh r3, [r4, #10] uxth r5, r8 cmp r3, r5 - bls .L1071 + bls .L1074 ldrh r3, [r6, r5, lsl #1] lsls r1, r5, #1 cmp r9, r3 - bls .L1056 + bls .L1059 ldrh r0, [r7, r5, lsl #1] add fp, r7, r1 - cbnz r0, .L1057 - b .L1058 -.L1056: - cbnz r3, .L1058 + cbnz r0, .L1060 + b .L1061 +.L1059: + cbnz r3, .L1061 ldrh r0, [r7, r1] add fp, r7, r1 - cbz r0, .L1058 + cbz r0, .L1061 mov r5, r2 - b .L1060 -.L1057: - cbnz r3, .L1072 - mov r9, r3 + b .L1063 .L1060: + cbnz r3, .L1075 + mov r9, r3 +.L1063: movs r1, #1 bl FtlFreeSysBlkQueueIn strh r10, [fp] @ movhi @@ -7136,19 +7116,19 @@ ftl_free_no_use_map_blk: mov r2, r5 subs r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1058: +.L1061: add r8, r8, #1 - b .L1055 -.L1072: + b .L1058 +.L1075: mov r2, r5 mov r9, r3 - b .L1058 -.L1071: + b .L1061 +.L1074: mov r0, r2 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1074: +.L1077: .align 2 -.L1073: +.L1076: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -7164,71 +7144,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, .L1079 + ldr r4, .L1082 movs r7, #0 - ldr r5, .L1079+4 + ldr r5, .L1082+4 mov r6, r7 - ldr r2, [r4, #1900] + ldr r2, [r4, #2412] mov r9, r4 - ldr r0, [r5, #1832] + ldr r0, [r5, #3368] lsls r2, r2, #1 bl ftl_memset - ldrh r3, [r4, #1882] - ldrh r2, [r4, #1910] + ldrh r3, [r4, #2394] + ldrh r2, [r4, #2422] movs r1, #255 - ldr r0, [r5, #1860] + ldr r0, [r5, #3396] muls r2, r3, r2 bl ftl_memset mov r3, r5 movs r5, #12 mov r2, r4 movw lr, #65535 -.L1076: - ldrh ip, [r2, #1910] +.L1079: + ldrh ip, [r2, #2422] adds r0, r7, #1 uxth r7, r7 - ldr r1, .L1079 + ldr r1, .L1082 cmp ip, r7 - bls .L1078 + bls .L1081 mul r1, r5, r7 - ldr ip, [r3, #-56] + ldr ip, [r3, #456] add r8, ip, r1 str r6, [r8, #4] strh lr, [ip, r1] @ movhi - ldr r4, [r3, #-56] + ldr r4, [r3, #456] add ip, r4, r1 - ldrh r1, [r9, #1882] + ldrh r1, [r9, #2394] muls r1, r7, r1 - ldr r7, [r3, #1860] + ldr r7, [r3, #3396] bic r1, r1, #3 add r1, r1, r7 mov r7, r0 str r1, [ip, #8] - b .L1076 -.L1078: + b .L1079 +.L1081: movw r2, #65535 - strh r2, [r3, #1870] @ movhi - strh r2, [r3, #1868] @ movhi - ldr r2, [r1, #1900] - strh r2, [r3, #1878] @ movhi + 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, #1872] @ movhi - ldrh r2, [r3, #1912] - strh r2, [r3, #1876] @ movhi - ldrh r2, [r1, #1908] - strh r2, [r3, #1874] @ movhi - ldr r2, [r3, #1828] - str r2, [r3, #1880] - ldr r2, [r3, #1856] - str r2, [r3, #1884] - ldr r2, [r3, #1832] - str r2, [r3, #1888] - ldr r2, [r3, #1848] - str r2, [r3, #1892] + 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] + ldr r2, [r3, #3368] + str r2, [r3, #3424] + ldr r2, [r3, #3384] + str r2, [r3, #3428] pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1080: +.L1083: .align 2 -.L1079: +.L1082: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7245,47 +7225,47 @@ FtlVariablesInit: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r4, #0 - ldr r5, .L1082 + ldr r6, .L1085 movw r3, #65535 - ldr r6, .L1082+4 + ldr r5, .L1085+4 mov r1, r4 - ldrh r2, [r5, #1892] - ldr r0, [r5, #1920] - strh r3, [r6, #1920] @ movhi + ldrh r2, [r6, #2404] + ldr r0, [r6, #2432] + strh r3, [r5, #3456] @ movhi mov r3, #-1 lsls r2, r2, #1 - str r3, [r6, #1932] - str r4, [r6, #1916] - str r4, [r6, #1924] - str r4, [r6, #1928] - str r4, [r5, #1796] - strh r4, [r5, #1918] @ movhi + str r3, [r5, #3468] + str r4, [r5, #3452] + str r4, [r5, #3460] + str r4, [r5, #3464] + str r4, [r6, #2308] + strh r4, [r6, #2430] @ movhi bl ftl_memset - ldrh r2, [r5, #1814] + ldrh r2, [r6, #2326] mov r1, r4 - ldr r0, [r5, #4060] + ldr r0, [r5, #228] lsls r2, r2, #1 bl ftl_memset - ldrh r2, [r5, #1814] + ldrh r2, [r6, #2326] mov r1, r4 - ldr r0, [r6, #1816] + ldr r0, [r5, #3352] lsls r2, r2, #1 bl ftl_memset mov r1, r4 - addw r0, r5, #4068 + add r0, r5, #236 movs r2, #48 bl ftl_memset mov r1, r4 mov r2, #512 - add r0, r6, #92 + add r0, r5, #604 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r4 pop {r4, r5, r6, pc} -.L1083: +.L1086: .align 2 -.L1082: +.L1085: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7302,110 +7282,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, .L1095 + ldr r6, .L1098 movs r5, #0 - ldr r4, .L1095+4 + ldr r4, .L1098+4 .pad #20 sub sp, sp, #20 movs r1, #0 mov r9, r5 - ldrh r3, [r6, #1814] + ldrh r3, [r6, #2326] mov r10, r5 - ldr r0, [r4, #-228] + ldr r0, [r4, #284] mov r8, r6 muls r2, r3, r2 bl ftl_memset - str r5, [r4, #-208] - str r5, [r4, #-224] - str r5, [r4, #-216] - strh r5, [r4, #-212] @ movhi - strh r5, [r4, #-204] @ movhi - strh r5, [r4, #1732] @ movhi -.L1085: + 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: uxth fp, r5 - ldrh r2, [r8, #1812] + ldrh r2, [r8, #2324] sxth r7, fp cmp r7, r2 - bge .L1092 - ldr r3, .L1095 + bge .L1095 + ldr r3, .L1098 movs r2, #0 mov r6, r2 - ldrh ip, [r3, #1804] - ldrh r3, [r3, #1872] + ldrh ip, [r3, #2316] + ldrh r3, [r3, #2384] str r3, [sp, #4] -.L1093: +.L1096: sxth r1, r2 cmp r1, ip - bge .L1094 + bge .L1097 add r1, r1, r8 str r2, [sp, #12] str ip, [sp, #8] - ldrb r0, [r1, #1832] @ zero_extendqisi2 + ldrb r0, [r1, #2344] @ zero_extendqisi2 mov r1, fp bl V2P_block bl FtlBbmIsBadBlock ldr ip, [sp, #8] ldr r2, [sp, #12] - cbnz r0, .L1086 + cbnz r0, .L1089 ldr r3, [sp, #4] add r6, r6, r3 uxth r6, r6 -.L1086: +.L1089: adds r2, r2, #1 - b .L1093 -.L1094: - cbz r6, .L1088 + b .L1096 +.L1097: + cbz r6, .L1091 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L1089 -.L1088: - ldr r1, [r4, #-220] + b .L1092 +.L1091: + ldr r1, [r4, #292] sxth r2, fp movw r0, #65535 strh r0, [r1, r2, lsl #1] @ movhi -.L1089: +.L1092: add r0, r7, r7, lsl #1 - ldr r1, [r4, #-228] - ldr r2, .L1095+4 + ldr r1, [r4, #284] + ldr r2, .L1098+4 add r1, r1, r0, lsl #1 strh r6, [r1, #4] @ movhi - ldrh r1, [r4, #-200] + ldrh r1, [r4, #312] cmp r7, r1 - beq .L1090 - ldrh r1, [r2, #-152] + beq .L1093 + ldrh r1, [r2, #360] cmp r7, r1 - beq .L1090 - ldrh r1, [r2, #-104] + beq .L1093 + ldrh r1, [r2, #408] cmp r7, r1 - beq .L1090 - ldr r2, [r2, #-220] + beq .L1093 + ldr r2, [r2, #292] ldrh r2, [r2, r7, lsl #1] - cbnz r2, .L1091 + cbnz r2, .L1094 add r9, r9, #1 mov r0, fp uxth r9, r9 bl INSERT_FREE_LIST - b .L1090 -.L1091: + b .L1093 +.L1094: add r10, r10, #1 mov r0, fp uxth r10, r10 bl INSERT_DATA_LIST -.L1090: +.L1093: adds r5, r5, #1 - b .L1085 -.L1092: + b .L1088 +.L1095: movs r0, #0 - strh r10, [r4, #-212] @ movhi - strh r9, [r4, #-204] @ movhi + strh r10, [r4, #300] @ movhi + strh r9, [r4, #308] @ movhi add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1096: +.L1099: .align 2 -.L1095: +.L1098: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7422,26 +7402,26 @@ FtlGcPageVarInit: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r1, #255 - ldr r5, .L1098 + ldr r5, .L1101 movs r3, #0 - ldr r4, .L1098+4 - ldrh r2, [r5, #1876] - ldr r0, [r4, #644] - strh r3, [r4, #648] @ movhi + ldr r4, .L1101+4 + ldrh r2, [r5, #2388] + ldr r0, [r4, #1156] + strh r3, [r4, #1160] @ movhi lsls r2, r2, #1 - strh r3, [r4, #656] @ movhi + strh r3, [r4, #1168] @ movhi bl ftl_memset - ldrh r3, [r5, #1876] + ldrh r3, [r5, #2388] movs r2, #12 - ldr r0, [r4, #652] + ldr r0, [r4, #1164] movs r1, #255 muls r2, r3, r2 bl ftl_memset pop {r3, r4, r5, lr} b FtlGcBufInit -.L1099: +.L1102: .align 2 -.L1098: +.L1101: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7471,14 +7451,14 @@ FlashReadIdbData: push {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L1102 + ldr r1, .L1105 bl ftl_memcpy movs r0, #0 pop {r3, pc} -.L1103: +.L1106: .align 2 -.L1102: - .word .LANCHOR2+1936 +.L1105: + .word .LANCHOR2+3472 .fnend .size FlashReadIdbData, .-FlashReadIdbData .align 1 @@ -7493,64 +7473,64 @@ FlashLoadPhyInfoInRam: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movs r4, #0 - ldr r5, .L1116 -.L1108: + ldr r5, .L1119 +.L1111: mov r0, r5 - ldr r1, .L1116+4 + ldr r1, .L1119+4 ldrb r2, [r5, #-1] @ zero_extendqisi2 bl FlashMemCmp8 mov r6, r0 - cbnz r0, .L1105 - ldr r5, .L1116+8 + cbnz r0, .L1108 + ldr r5, .L1119+8 lsls r4, r4, #5 add r2, r5, #508 adds r7, r2, r4 - beq .L1111 + beq .L1114 add r4, r4, r5 mov r3, r0 - addw r1, r5, #3100 + addw r1, r5, #3164 ldrb r2, [r4, #530] @ zero_extendqisi2 - b .L1110 -.L1105: + b .L1113 +.L1108: adds r4, r4, #1 adds r5, r5, #32 - cmp r4, #81 - bne .L1108 - b .L1111 -.L1115: + cmp r4, #83 + bne .L1111 + b .L1114 +.L1118: adds r3, r3, #1 cmp r3, #4 - beq .L1109 -.L1110: + beq .L1112 +.L1113: lsls r0, r3, #5 ldrb r0, [r0, r1] @ zero_extendqisi2 cmp r0, r2 - bne .L1115 -.L1109: - ldr r1, .L1116+12 + bne .L1118 +.L1112: + ldr r1, .L1119+12 movs r2, #32 - ldr r0, .L1116+16 + ldr r0, .L1119+16 add r1, r1, r3, lsl #5 bl ftl_memcpy mov r1, r7 movs r2, #32 - ldr r0, .L1116+20 + ldr r0, .L1119+20 bl ftl_memcpy ldrh r0, [r5, #482] bl FlashBlockAlignInit - b .L1106 -.L1111: + b .L1109 +.L1114: mov r6, #-1 -.L1106: +.L1109: mov r0, r6 pop {r3, r4, r5, r6, r7, pc} -.L1117: +.L1120: .align 2 -.L1116: +.L1119: .word .LANCHOR1+509 - .word .LANCHOR0+1556 + .word .LANCHOR0+2068 .word .LANCHOR1 - .word .LANCHOR1+3100 + .word .LANCHOR1+3164 .word .LANCHOR0+44 .word .LANCHOR1+472 .fnend @@ -7572,14 +7552,14 @@ NandcCopy1KB: ldr r6, [sp, #16] add r5, r0, #512 add r2, r2, r4, lsl #9 - bne .L1119 - cbz r3, .L1120 + bne .L1122 + cbz r3, .L1123 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L1120: - cbz r6, .L1118 +.L1123: + cbz r6, .L1121 ldrb r3, [r6, #2] @ zero_extendqisi2 lsrs r4, r4, #1 ldrb r2, [r6, #1] @ zero_extendqisi2 @@ -7593,14 +7573,14 @@ NandcCopy1KB: orr r3, r3, r2, lsl #24 str r3, [r5, r4, lsl #2] pop {r4, r5, r6, pc} -.L1119: - cbz r3, .L1123 +.L1122: + cbz r3, .L1126 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L1123: - cbz r6, .L1118 +.L1126: + cbz r6, .L1121 lsrs r4, r4, #1 add r4, r4, r4, lsl #1 lsls r4, r4, #2 @@ -7612,7 +7592,7 @@ NandcCopy1KB: lsrs r3, r3, #24 strb r2, [r6, #2] strb r3, [r6, #3] -.L1118: +.L1121: pop {r4, r5, r6, pc} .fnend .size NandcCopy1KB, .-NandcCopy1KB @@ -7628,14 +7608,14 @@ ftl_memcpy32: movs r3, #0 push {r4, lr} .save {r4, lr} -.L1135: +.L1138: cmp r3, r2 - beq .L1137 + beq .L1140 ldr r4, [r1, r3, lsl #2] str r4, [r0, r3, lsl #2] adds r3, r3, #1 - b .L1135 -.L1137: + b .L1138 +.L1140: pop {r4, pc} .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -7662,12 +7642,12 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1140 + ldr r3, .L1143 ldr r0, [r3] b jiffies_to_msecs -.L1141: +.L1144: .align 2 -.L1140: +.L1143: .word jiffies .fnend .size timer_get_time, .-timer_get_time @@ -7683,21 +7663,21 @@ FlashSramLoadStore: push {r4, r5, lr} .save {r4, r5, lr} mov r5, r0 - ldr r4, .L1145 - ldr r4, [r4, #3984] + ldr r4, .L1148 + ldr r4, [r4, #1176] add r4, r4, #4096 add r1, r1, r4 - cbz r2, .L1144 + cbz r2, .L1147 mov r0, r1 mov r1, r5 -.L1144: +.L1147: mov r2, r3 pop {r4, r5, lr} b ftl_memcpy -.L1146: +.L1149: .align 2 -.L1145: - .word .LANCHOR2 +.L1148: + .word .LANCHOR4 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore .align 1 @@ -7749,12 +7729,12 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1151 - ldr r0, [r3, #1912] + ldr r3, .L1154 + ldr r0, [r3, #2424] bx lr -.L1152: +.L1155: .align 2 -.L1151: +.L1154: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -7815,46 +7795,46 @@ rknand_print_hex: mov r7, r2 mov r8, r3 mov r4, r5 -.L1157: +.L1160: cmp r4, r8 - beq .L1165 - cbnz r5, .L1158 - ldr r0, .L1166 + beq .L1168 + cbnz r5, .L1161 + ldr r0, .L1169 mov r1, r9 mov r2, r6 mov r3, r4 bl printk -.L1158: +.L1161: cmp r7, #4 - ldr r0, .L1166+4 - bne .L1159 + ldr r0, .L1169+4 + bne .L1162 ldr r1, [r6, r4, lsl #2] - b .L1164 -.L1159: + b .L1167 +.L1162: cmp r7, #2 ite eq ldrsheq r1, [r6, r4, lsl #1] ldrbne r1, [r6, r4] @ zero_extendqisi2 -.L1164: +.L1167: adds r5, r5, #1 bl printk cmp r5, #15 - bls .L1162 - ldr r0, .L1166+8 + bls .L1165 + ldr r0, .L1169+8 movs r5, #0 - ldr r1, .L1166+12 + ldr r1, .L1169+12 bl printk -.L1162: - adds r4, r4, #1 - b .L1157 .L1165: - ldr r0, .L1166+8 - ldr r1, .L1166+12 + adds r4, r4, #1 + b .L1160 +.L1168: + ldr r0, .L1169+8 + ldr r1, .L1169+12 pop {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L1167: +.L1170: .align 2 -.L1166: +.L1169: .word .LC82 .word .LC83 .word .LC76 @@ -7873,153 +7853,153 @@ 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, .L1277 + ldr r7, .L1280 mov r3, #172 mov r1, #173 mov r2, #174 .pad #44 sub sp, sp, #44 mov r4, r0 - strb r3, [r7, #702] + strb r3, [r7, #1214] mov r3, #175 - strb r0, [r7, #698] - strb r1, [r7, #703] - strb r2, [r7, #704] - strb r3, [r7, #705] - bne .L1169 + strb r0, [r7, #1210] + strb r1, [r7, #1215] + strb r2, [r7, #1216] + strb r3, [r7, #1217] + bne .L1172 movs r3, #167 - strb r3, [r7, #702] - ldr r3, .L1277+4 + strb r3, [r7, #1214] + ldr r3, .L1280+4 movs r2, #247 movs r5, #7 - strb r2, [r3, #3245] - b .L1230 -.L1169: - cmp r0, #3 - bne .L1171 - movs r3, #176 - strb r3, [r7, #702] - movs r3, #177 - strb r3, [r7, #703] - movs r3, #178 - strb r3, [r7, #704] - movs r3, #179 - strb r3, [r7, #705] - movs r3, #180 - strb r3, [r7, #706] - movs r3, #181 - strb r3, [r7, #707] - movs r3, #182 - strb r3, [r7, #708] - movs r3, #183 - b .L1271 -.L1171: - cmp r0, #4 - bne .L1172 - movs r0, #204 - strb r1, [r7, #707] - strb r0, [r7, #702] - movs r0, #191 - strb r2, [r7, #708] - strb r0, [r7, #703] - movs r0, #170 - strb r0, [r7, #704] - movs r0, #171 - strb r0, [r7, #705] - movs r0, #205 - strb r0, [r7, #706] -.L1271: - movs r5, #8 - strb r3, [r7, #709] - mov r6, r5 - b .L1170 + strb r2, [r3, #3309] + b .L1233 .L1172: + cmp r0, #3 + bne .L1174 + movs r3, #176 + strb r3, [r7, #1214] + movs r3, #177 + strb r3, [r7, #1215] + movs r3, #178 + strb r3, [r7, #1216] + movs r3, #179 + strb r3, [r7, #1217] + movs r3, #180 + strb r3, [r7, #1218] + movs r3, #181 + strb r3, [r7, #1219] + movs r3, #182 + strb r3, [r7, #1220] + movs r3, #183 + b .L1274 +.L1174: + cmp r0, #4 + bne .L1175 + movs r0, #204 + strb r1, [r7, #1219] + strb r0, [r7, #1214] + movs r0, #191 + strb r2, [r7, #1220] + strb r0, [r7, #1215] + movs r0, #170 + strb r0, [r7, #1216] + movs r0, #171 + strb r0, [r7, #1217] + movs r0, #205 + strb r0, [r7, #1218] +.L1274: + movs r5, #8 + strb r3, [r7, #1221] + mov r6, r5 + b .L1173 +.L1175: cmp r0, #5 - bne .L1173 + bne .L1176 movs r3, #56 movs r5, #8 - strb r3, [r7, #702] + strb r3, [r7, #1214] movs r3, #57 - strb r3, [r7, #703] + strb r3, [r7, #1215] movs r3, #58 - strb r3, [r7, #704] + strb r3, [r7, #1216] movs r3, #59 - strb r3, [r7, #705] - b .L1230 -.L1173: + strb r3, [r7, #1217] + b .L1233 +.L1176: cmp r0, #6 - bne .L1174 + bne .L1177 movs r3, #14 movs r5, #12 - strb r3, [r7, #702] + strb r3, [r7, #1214] movs r3, #15 - strb r3, [r7, #703] + strb r3, [r7, #1215] movs r3, #16 - strb r3, [r7, #704] + strb r3, [r7, #1216] movs r3, #17 - strb r3, [r7, #705] - b .L1230 -.L1174: + strb r3, [r7, #1217] + b .L1233 +.L1177: cmp r0, #7 - bne .L1175 + bne .L1178 movs r3, #176 movs r5, #12 - strb r3, [r7, #702] + strb r3, [r7, #1214] movs r6, #10 movs r3, #177 - strb r3, [r7, #703] + strb r3, [r7, #1215] movs r3, #178 - strb r3, [r7, #704] + strb r3, [r7, #1216] movs r3, #179 - strb r3, [r7, #705] + strb r3, [r7, #1217] movs r3, #180 - strb r3, [r7, #706] + strb r3, [r7, #1218] movs r3, #181 - strb r3, [r7, #707] + strb r3, [r7, #1219] movs r3, #182 - strb r3, [r7, #708] + strb r3, [r7, #1220] movs r3, #183 - strb r3, [r7, #709] + strb r3, [r7, #1221] movs r3, #212 - strb r3, [r7, #710] + strb r3, [r7, #1222] movs r3, #213 - strb r3, [r7, #711] - b .L1170 -.L1175: + strb r3, [r7, #1223] + b .L1173 +.L1178: cmp r0, #8 mov r5, #7 - bne .L1230 + bne .L1233 movs r3, #6 - strb r5, [r7, #703] - strb r3, [r7, #702] + strb r5, [r7, #1215] + strb r3, [r7, #1214] movs r5, #50 movs r3, #9 - strb r0, [r7, #704] - strb r3, [r7, #705] + strb r0, [r7, #1216] + strb r3, [r7, #1217] movs r6, #5 movs r3, #10 - strb r3, [r7, #706] - b .L1170 -.L1230: + strb r3, [r7, #1218] + b .L1173 +.L1233: movs r6, #4 -.L1170: +.L1173: subs r3, r4, #1 cmp r3, #1 - bhi .L1268 - ldr r1, .L1277+8 + bhi .L1271 + ldr r1, .L1280+8 mov r10, #0 -.L1176: - ldrb r3, [r7, #1717] @ zero_extendqisi2 +.L1179: + ldrb r3, [r7, #2229] @ zero_extendqisi2 uxtb r8, r10 - ldr r2, .L1277 + ldr r2, .L1280 cmp r3, r8 - bls .L1183 + bls .L1186 add r8, r8, r2 - addw fp, r2, #701 - ldrb r3, [r8, #1720] @ zero_extendqisi2 + addw fp, r2, #1213 + ldrb r3, [r8, #2232] @ zero_extendqisi2 add r4, r2, r3, lsl #6 add r3, r2, r3, lsl #3 - addw r4, r4, #718 + addw r4, r4, #1230 movs r2, #55 ldrb r8, [r3, #16] @ zero_extendqisi2 ldr r0, [r3, #12] @@ -8027,7 +8007,7 @@ HynixGetReadRetryDefault: mov r3, r4 add r8, r0, r8, lsl #8 addw ip, r8, #2056 -.L1178: +.L1181: str r2, [ip] ldrb r0, [fp, #1]! @ zero_extendqisi2 str r1, [sp, #16] @@ -8046,23 +8026,23 @@ HynixGetReadRetryDefault: ldr r1, [sp, #16] uxtb r0, r0 cmp r0, r6 - bcc .L1178 + bcc .L1181 movs r2, #0 -.L1179: +.L1182: movs r3, #1 add lr, r1, r2 -.L1180: +.L1183: 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 .L1180 + bne .L1183 adds r2, r2, #1 add r9, r9, #1 cmp r2, #4 - bne .L1179 + bne .L1182 movs r3, #0 add r10, r10, #1 strb r3, [r4, #16] @@ -8072,11 +8052,11 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L1176 -.L1268: + b .L1179 +.L1271: subs r3, r4, #3 cmp r3, #5 - bhi .L1183 + bhi .L1186 smulbb r2, r6, r5 lsls r3, r2, #4 asrs r2, r2, #1 @@ -8084,28 +8064,28 @@ HynixGetReadRetryDefault: lsls r3, r2, #1 str r3, [sp, #8] movs r3, #0 -.L1275: +.L1278: str r3, [sp, #20] ldrb r3, [sp, #20] @ zero_extendqisi2 str r3, [sp, #16] - ldr r3, .L1277 + ldr r3, .L1280 ldr r2, [sp, #16] - ldrb r3, [r3, #1717] @ zero_extendqisi2 + ldrb r3, [r3, #2229] @ zero_extendqisi2 cmp r3, r2 - bhi .L1228 -.L1183: - ldr r3, .L1277 - strb r6, [r3, #699] - strb r5, [r3, #700] + bhi .L1231 +.L1186: + ldr r3, .L1280 + strb r6, [r3, #1211] + strb r5, [r3, #1212] add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1228: +.L1231: ldr r2, [sp, #16] - ldr r3, .L1277 + ldr r3, .L1280 add r3, r3, r2 - ldrb fp, [r3, #1720] @ zero_extendqisi2 - ldr r3, .L1277 + ldrb fp, [r3, #2232] @ zero_extendqisi2 + ldr r3, .L1280 add r3, r3, fp, lsl #3 mov r0, fp ldr r10, [r3, #12] @@ -8117,56 +8097,56 @@ HynixGetReadRetryDefault: str r3, [r8, #2056] bl NandcWaitFlashReady cmp r4, #7 - bne .L1185 - ldr r2, .L1277+12 + bne .L1188 + ldr r2, .L1280+12 movs r3, #160 mla ip, r3, fp, r2 add r3, ip, #28 - b .L1272 -.L1185: + b .L1275 +.L1188: cmp r4, #8 - beq .L1187 - ldr r2, .L1277+12 + beq .L1190 + ldr r2, .L1280+12 add ip, r2, fp, lsl #6 add r3, ip, #20 -.L1272: +.L1275: add r7, r7, r10 cmp r4, #4 str r3, [sp, #24] mov r3, #54 str r3, [r7, #2056] - bne .L1188 + bne .L1191 movs r3, #255 str r3, [r7, #2052] movs r3, #64 str r3, [r7, #2048] movs r3, #204 - b .L1273 -.L1188: + b .L1276 +.L1191: subs r3, r4, #5 cmp r3, #1 - bhi .L1190 - ldr r3, .L1277 - ldrb r2, [r3, #702] @ zero_extendqisi2 + bhi .L1193 + ldr r3, .L1280 + 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 .L1189 -.L1190: + b .L1192 +.L1193: cmp r4, #7 - bne .L1189 + bne .L1192 movs r3, #174 str r3, [r7, #2052] movs r3, #0 str r3, [r7, #2048] movs r3, #176 -.L1273: +.L1276: str r3, [r7, #2052] movs r3, #77 str r3, [r7, #2048] -.L1189: +.L1192: ldr r3, [sp, #4] cmp r4, #6 mov r2, #22 @@ -8189,7 +8169,7 @@ HynixGetReadRetryDefault: str r2, [r3, #2052] movs r2, #0 str r2, [r3, #2052] -.L1229: +.L1232: ldr r3, [sp, #4] movs r2, #48 mov r0, fp @@ -8199,148 +8179,148 @@ HynixGetReadRetryDefault: subs r3, r4, #5 cmp r3, #1 str r3, [sp, #28] - bls .L1233 + bls .L1236 cmp r4, #8 - beq .L1233 + beq .L1236 cmp r4, #7 ite ne movne r2, #2 moveq r2, #32 - b .L1193 -.L1278: + b .L1196 +.L1281: .align 2 -.L1277: +.L1280: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR1+3228 - .word .LANCHOR0+698 -.L1233: + .word .LANCHOR1+3292 + .word .LANCHOR0+1210 +.L1236: movs r2, #16 -.L1193: - ldr r3, .L1279 +.L1196: + ldr r3, .L1282 ldr r1, [sp, #4] - ldr r3, [r3, #3988] + ldr r3, [r3, #1180] add r0, r10, r1, lsl #8 mov r7, r3 -.L1194: +.L1197: ldr r1, [r0, #2048] strb r1, [r7], #1 subs r1, r7, r3 uxtb r1, r1 cmp r1, r2 - bcc .L1194 + bcc .L1197 cmp r4, #8 - bne .L1195 + bne .L1198 movs r2, #0 -.L1197: +.L1200: ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2 uxtb r1, r2 cmp r7, #50 - beq .L1196 + beq .L1199 add r7, r3, r2, lsl #2 ldrb r7, [r7, #1] @ zero_extendqisi2 cmp r7, #5 - beq .L1196 + beq .L1199 adds r2, r2, #1 cmp r2, #8 - bne .L1197 - b .L1198 -.L1196: + bne .L1200 + b .L1201 +.L1199: cmp r1, #7 - bne .L1199 -.L1198: - ldr r0, .L1279+4 + bne .L1202 +.L1201: + ldr r0, .L1282+4 movs r1, #0 bl printk -.L1200: - b .L1200 -.L1195: - cmp r4, #7 - bne .L1201 - movs r2, #0 .L1203: + b .L1203 +.L1198: + cmp r4, #7 + bne .L1204 + movs r2, #0 +.L1206: ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2 uxtb r1, r2 cmp r7, #12 - beq .L1202 + beq .L1205 add r7, r3, r2, lsl #2 ldrb r7, [r7, #1] @ zero_extendqisi2 cmp r7, #10 - beq .L1202 + beq .L1205 adds r2, r2, #1 cmp r2, #8 - bne .L1203 - b .L1204 -.L1202: - cmp r1, #7 - bne .L1199 -.L1204: - ldr r0, .L1279+4 - movs r1, #0 - bl printk -.L1205: - b .L1205 -.L1201: - cmp r4, #6 - bne .L1199 - subs r2, r3, #1 - adds r3, r3, #7 -.L1206: - ldrb r1, [r2, #1]! @ zero_extendqisi2 - cmp r1, #12 - beq .L1199 - ldrb r1, [r2, #8] @ zero_extendqisi2 - cmp r1, #4 - beq .L1199 - cmp r2, r3 bne .L1206 - ldr r0, .L1279+4 + b .L1207 +.L1205: + cmp r1, #7 + bne .L1202 +.L1207: + ldr r0, .L1282+4 movs r1, #0 bl printk .L1208: b .L1208 -.L1199: - ldr r1, .L1279 +.L1204: + cmp r4, #6 + bne .L1202 + subs r2, r3, #1 + adds r3, r3, #7 +.L1209: + ldrb r1, [r2, #1]! @ zero_extendqisi2 + cmp r1, #12 + beq .L1202 + ldrb r1, [r2, #8] @ zero_extendqisi2 + cmp r1, #4 + beq .L1202 + cmp r2, r3 + bne .L1209 + ldr r0, .L1282+4 + movs r1, #0 + bl printk +.L1211: + b .L1211 +.L1202: + ldr r1, .L1282 ldr r7, [sp, #36] - ldr r2, [r1, #3988] + ldr r2, [r1, #1180] adds r7, r2, r7 mov r3, r2 -.L1209: +.L1212: cmp r3, r7 - beq .L1276 + beq .L1279 ldr lr, [r0, #2048] strb lr, [r3], #1 - b .L1209 -.L1276: - ldr r3, [r1, #3988] + b .L1212 +.L1279: + ldr r3, [r1, #1180] movs r0, #8 ldr r1, [sp, #8] adds r1, r3, r1 str r1, [sp, #32] -.L1212: +.L1215: ldr r7, [sp, #8] add lr, r1, r7 -.L1211: +.L1214: ldrh r7, [r1] mvns r7, r7 strh r7, [r1], #2 @ movhi cmp r1, lr - bne .L1211 + bne .L1214 ldr r7, [sp, #8] subs r0, r0, #1 add r1, r1, r7 - bne .L1212 + bne .L1215 str r3, [sp, #12] -.L1213: +.L1216: movs r7, #0 mov r0, r7 -.L1216: +.L1219: movs r3, #1 mov lr, #0 mov r8, #16 lsl r1, r3, r0 mov ip, lr -.L1214: +.L1217: ldr r3, [sp, #12] ldrh r9, [r3, lr] ldr r3, [sp, #8] @@ -8350,80 +8330,80 @@ HynixGetReadRetryDefault: addeq ip, ip, #1 subs r8, r8, #1 add lr, lr, r3 - bne .L1214 + bne .L1217 cmp ip, #8 add r0, r0, #1 itt hi orrhi r7, r7, r1 uxthhi r7, r7 cmp r0, #16 - bne .L1216 + bne .L1219 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 .L1213 - ldr r3, .L1279 - ldr r1, [r3, #3988] + bne .L1216 + ldr r3, .L1282 + ldr r1, [r3, #1180] movs r3, #0 subs r0, r1, #4 add r7, r1, #28 -.L1218: +.L1221: ldr lr, [r0, #4]! cmp lr, #0 it eq addeq r3, r3, #1 cmp r0, r7 - bne .L1218 + bne .L1221 cmp r3, #7 - ble .L1219 - ldr r0, .L1279+8 + ble .L1222 + ldr r0, .L1282+8 movs r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L1279+4 + ldr r0, .L1282+4 movs r1, #0 bl printk -.L1220: - b .L1220 -.L1219: +.L1223: + b .L1223 +.L1222: cmp r4, #6 - beq .L1235 + beq .L1238 cmp r4, #7 - beq .L1236 + beq .L1239 cmp r4, #8 ite ne movne r0, #8 moveq r0, #5 - b .L1221 -.L1235: + b .L1224 +.L1238: movs r0, #4 - b .L1221 -.L1236: + b .L1224 +.L1239: movs r0, #10 -.L1221: +.L1224: add r9, r6, #-1 ldr r1, [sp, #24] movs r7, #0 uxtb r9, r9 add r9, r9, #1 -.L1222: +.L1225: mov ip, r1 mov r3, r2 -.L1223: +.L1226: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [ip], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, r6 - bcc .L1223 + bcc .L1226 adds r7, r7, #1 add r2, r2, r9 cmp r7, r5 add r1, r1, r0 - blt .L1222 + blt .L1225 ldr r3, [sp, #4] mov r0, fp add r7, r10, r3, lsl #8 @@ -8432,33 +8412,33 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr r3, [sp, #28] cmp r3, #1 - bhi .L1225 + bhi .L1228 movs r3, #54 str r3, [r7, #2056] - ldr r3, .L1279+12 + ldr r3, .L1282+12 mov r1, #-1 ldr r0, [sp, #16] - ldrb r3, [r3, #702] @ zero_extendqisi2 + ldrb r3, [r3, #1214] @ zero_extendqisi2 str r3, [r7, #2052] movs r3, #0 str r3, [r7, #2048] movs r3, #22 str r3, [r7, #2056] bl FlashReadCmd - b .L1226 -.L1225: + b .L1229 +.L1228: cmp r4, #8 ite eq moveq r3, #190 movne r3, #56 str r3, [r7, #2056] -.L1226: +.L1229: mov r0, fp bl NandcWaitFlashReady ldr r3, [sp, #20] adds r3, r3, #1 - b .L1275 -.L1187: + b .L1278 +.L1190: movs r3, #120 movs r2, #23 str r3, [r8, #2056] @@ -8480,17 +8460,17 @@ HynixGetReadRetryDefault: str r1, [r8, #2052] str r2, [r8, #2052] str r3, [r8, #2052] - ldr r3, .L1279+16 + ldr r3, .L1282+16 str r3, [sp, #24] - b .L1229 -.L1280: + b .L1232 +.L1283: .align 2 -.L1279: - .word .LANCHOR2 +.L1282: + .word .LANCHOR4 .word .LC85 .word .LC86 .word .LANCHOR0 - .word .LANCHOR0+726 + .word .LANCHOR0+1238 .fnend .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 1 @@ -8505,74 +8485,74 @@ FlashGetReadRetryDefault: @ link register save eliminated. mov r3, r0 cmp r0, #0 - beq .L1281 + beq .L1284 subs r2, r0, #1 cmp r2, #7 - bhi .L1283 + bhi .L1286 b HynixGetReadRetryDefault -.L1283: +.L1286: cmp r0, #49 - bne .L1284 - ldr r0, .L1304 + bne .L1287 + ldr r0, .L1307 movs r2, #64 - ldr r1, .L1304+4 - addw r0, r0, #702 + ldr r1, .L1307+4 + addw r0, r0, #1214 strb r3, [r0, #-4] movs r3, #4 strb r3, [r0, #-3] movs r3, #15 strb r3, [r0, #-2] - b .L1302 -.L1284: + b .L1305 +.L1287: cmp r0, #33 - beq .L1285 + beq .L1288 sub r2, r0, #65 cmp r2, #1 - bhi .L1286 -.L1285: - ldr r0, .L1304 - strb r3, [r0, #698] + bhi .L1289 +.L1288: + ldr r0, .L1307 + strb r3, [r0, #1210] movs r3, #4 - b .L1303 -.L1286: + b .L1306 +.L1289: cmp r0, #34 - beq .L1287 + beq .L1290 cmp r0, #67 - bne .L1288 -.L1287: - ldr r0, .L1304 - strb r3, [r0, #698] + bne .L1291 +.L1290: + ldr r0, .L1307 + strb r3, [r0, #1210] movs r3, #5 -.L1303: - strb r3, [r0, #699] +.L1306: + strb r3, [r0, #1211] movs r2, #45 movs r3, #7 - addw r0, r0, #702 + addw r0, r0, #1214 strb r3, [r0, #-2] - ldr r1, .L1304+8 - b .L1302 -.L1288: + ldr r1, .L1307+8 + b .L1305 +.L1291: cmp r0, #35 - beq .L1289 + beq .L1292 cmp r0, #68 - bne .L1281 -.L1289: - ldr r0, .L1304 + bne .L1284 +.L1292: + ldr r0, .L1307 movs r2, #95 - ldr r1, .L1304+12 - addw r0, r0, #702 + ldr r1, .L1307+12 + addw r0, r0, #1214 strb r3, [r0, #-4] movs r3, #5 strb r3, [r0, #-3] movs r3, #17 strb r3, [r0, #-2] -.L1302: - b ftl_memcpy -.L1281: - bx lr .L1305: + b ftl_memcpy +.L1284: + bx lr +.L1308: .align 2 -.L1304: +.L1307: .word .LANCHOR0 .word .LANCHOR1+408 .word .LANCHOR1+256 @@ -8591,142 +8571,149 @@ NandcXferComp: push {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L1345 + ldr r5, .L1348 add r0, r5, r0, lsl #3 - ldr r3, [r5, #1740] + ldr r3, [r5, #2252] ldr r4, [r0, #12] cmp r3, #3 - bls .L1337 + bls .L1340 ldr r3, [r4, #16] lsls r6, r3, #29 - bpl .L1337 - mov r0, r4 - bl wait_for_nandc_xfer_completed + bpl .L1340 ldr r6, [r4, #16] ldr r3, [r4, #8] ubfx r6, r6, #1, #1 str r3, [sp] cmp r6, #0 - beq .L1319 + beq .L1322 movs r6, #0 -.L1309: +.L1312: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L1317 - ldr r3, [r5, #1740] + bge .L1320 + ldr r3, [r5, #2252] cmp r3, #5 - bhi .L1310 -.L1313: + bhi .L1313 +.L1316: adds r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L1309 + bne .L1315 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L1345+4 + ldr r0, .L1348+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L1345+8 + ldr r0, .L1348+8 mov r1, r4 movs r2, #4 mov r3, #512 bl rknand_print_hex - b .L1309 -.L1310: + b .L1315 +.L1313: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] lsls r0, r3, #18 - bpl .L1313 + bpl .L1316 ldr r3, [sp, #4] lsls r1, r3, #14 - bpl .L1313 -.L1317: - ldr r3, [r5, #1776] - ldr r4, .L1345 + bpl .L1316 +.L1320: + ldr r3, [r5, #2288] + ldr r4, .L1348 cmp r3, #0 - beq .L1318 + beq .L1321 ldr r1, [sp] movs r2, #0 - ldr r0, [r4, #1768] + ldr r0, [r4, #2280] ubfx r1, r1, #22, #5 lsls r1, r1, #10 bl rknand_dma_unmap_single - ldr r0, [r4, #1772] + ldr r0, [r4, #2284] movs r2, #0 ldr r1, [sp] ubfx r1, r1, #22, #5 lsls r1, r1, #7 bl rknand_dma_unmap_single - b .L1318 -.L1321: + b .L1321 +.L1315: + movs r0, #5 + movs r1, #10 + bl usleep_range + b .L1312 +.L1324: ldr r3, [r4, #8] adds r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 - cbnz r3, .L1319 + cbnz r3, .L1323 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L1345+12 + ldr r0, .L1348+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L1345+8 + ldr r0, .L1348+8 mov r1, r4 movs r2, #4 mov r3, #512 bl rknand_print_hex -.L1319: +.L1323: + movs r0, #5 + movs r1, #10 + bl usleep_range +.L1322: ldr r3, [sp] lsls r2, r3, #11 - bpl .L1321 - ldr r3, [r5, #1784] - cbz r3, .L1322 + bpl .L1324 + ldr r3, [r5, #2296] + cbz r3, .L1325 mov r0, r4 bl NandcSendDumpDataStart -.L1322: - ldr r3, [r5, #1776] - ldr r6, .L1345 - cbz r3, .L1323 +.L1325: + ldr r3, [r5, #2288] + ldr r6, .L1348 + cbz r3, .L1326 ldr r1, [sp] movs r2, #1 - ldr r0, [r6, #1768] + ldr r0, [r6, #2280] ubfx r1, r1, #22, #5 lsls r1, r1, #10 bl rknand_dma_unmap_single - ldr r0, [r6, #1772] + ldr r0, [r6, #2284] movs r2, #1 ldr r1, [sp] ubfx r1, r1, #22, #5 lsls r1, r1, #7 bl rknand_dma_unmap_single -.L1323: - ldr r3, [r5, #1784] - cbz r3, .L1318 +.L1326: + ldr r3, [r5, #2296] + cbz r3, .L1321 mov r0, r4 bl NandcSendDumpDataDone -.L1318: +.L1321: movs r3, #0 - str r3, [r5, #1776] - b .L1306 -.L1337: + str r3, [r5, #2288] + b .L1309 +.L1340: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] lsls r3, r3, #11 - bpl .L1337 -.L1306: + bpl .L1340 +.L1309: add sp, sp, #8 @ sp needed pop {r4, r5, r6, pc} -.L1346: +.L1349: .align 2 -.L1345: +.L1348: .word .LANCHOR0 .word .LC87 .word .LC88 @@ -8740,182 +8727,181 @@ NandcXferComp: .type NandcXferData, %function NandcXferData: .fnstart - @ args = 4, pretend = 0, frame = 88 + @ args = 4, pretend = 0, frame = 80 @ 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 r10, r3 - ldr r3, .L1392 - mov r7, r2 - .pad #100 - sub sp, sp, #100 - ldr r4, .L1392+4 + ldr r6, .L1394 tst r10, #63 + .pad #92 + sub sp, sp, #92 mov r9, r0 - ldr r2, [r3] - mov fp, r1 - ldr r5, [sp, #136] - str r3, [sp, #16] - str r2, [sp, #92] - add r2, r4, r0, lsl #3 - ldr r8, [r2, #12] - bne .L1348 - cbnz r5, .L1349 - add r0, sp, #28 + add r3, r6, r0, lsl #3 + mov r5, r1 + mov r7, r2 + ldr r8, [r3, #12] + bne .L1351 + ldr r3, [sp, #128] + cbnz r3, .L1352 + add r0, sp, #24 movs r1, #255 movs r2, #64 bl ftl_memset - add r5, sp, #28 -.L1349: + add r3, sp, #24 + str r3, [sp, #128] +.L1352: + ldr r3, [sp, #128] mov r0, r9 + mov r1, r5 str r10, [sp] - str r5, [sp, #4] - mov r1, fp mov r2, r7 + str r3, [sp, #4] movs r3, #0 bl NandcXferStart mov r0, r9 + mov r1, r5 bl NandcXferComp - cmp fp, #0 - bne .L1376 - ldr r3, [r4, #1788] - lsrs r1, r7, #1 - mov r2, fp + cmp r5, #0 + bne .L1378 + ldr r3, [r6, #2300] + lsrs r4, r7, #1 + mov r2, r5 + mov r1, r5 cmp r3, #25 - mov r3, fp + ldr r3, [sp, #128] ite cc - movcc r6, #64 - movcs r6, #128 -.L1352: - cmp r2, r1 - add r5, r5, #4 - add lr, r3, r6 - bcs .L1390 - ldr r0, [r4, #1756] - lsrs r3, r3, #2 - adds r2, r2, #1 - ldr r3, [r0, r3, lsl #2] - lsrs r0, r3, #8 - strb r3, [r5, #-4] - strb r0, [r5, #-3] - lsrs r0, r3, #16 - lsrs r3, r3, #24 - strb r0, [r5, #-2] - strb r3, [r5, #-1] - mov r3, lr - b .L1352 -.L1390: + movcc lr, #64 + movcs lr, #128 +.L1355: + cmp r1, r4 + add r3, r3, #4 + add ip, r2, lr + bcs .L1392 + ldr r0, [r6, #2268] + lsrs r2, r2, #2 + adds r1, r1, #1 + ldr r2, [r0, r2, lsl #2] + lsrs r0, r2, #8 + strb r2, [r3, #-4] + strb r0, [r3, #-3] + lsrs r0, r2, #16 + lsrs r2, r2, #24 + strb r0, [r3, #-2] + strb r2, [r3, #-1] + mov r2, ip + b .L1355 +.L1392: movs r2, #0 - ldr r1, [r4, #1788] - ldr r0, [r4, #1740] + ldr r0, [r6, #2300] + ldr r1, [r6, #2252] lsrs r7, r7, #2 - mov r6, r2 -.L1354: + mov fp, r2 +.L1357: cmp r2, r7 - bcs .L1350 - cmp r1, #0 - beq .L1350 + bcs .L1353 + cmp r0, #0 + beq .L1353 add r3, r2, #8 ldr r3, [r8, r3, lsl #2] - str r3, [sp, #24] - ldr r3, [sp, #24] + str r3, [sp, #20] + ldr r3, [sp, #20] lsls r4, r3, #29 - bmi .L1379 - ldr r4, [sp, #24] + bmi .L1381 + ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L1379 - cmp r0, #5 - bls .L1356 - ldr r4, [sp, #24] - ldr r5, [sp, #24] - ldr r3, [sp, #24] + bne .L1381 + cmp r1, #5 + bls .L1359 + ldr r4, [sp, #20] + ldr r3, [sp, #20] ubfx r4, r4, #3, #5 - ubfx lr, r5, #27, #1 - ldr r5, [sp, #24] + ubfx ip, r3, #27, #1 + ldr r3, [sp, #20] + ldr lr, [sp, #20] ubfx r3, r3, #16, #5 - ubfx r5, r5, #29, #1 - orr r4, r4, lr, lsl #5 - orr r3, r3, r5, lsl #5 + orr r4, r4, ip, lsl #5 + ubfx lr, lr, #29, #1 + orr r3, r3, lr, lsl #5 cmp r4, r3 - ldr r3, [sp, #24] + ldr r3, [sp, #20] ittee hi - ldrhi r4, [sp, #24] + ldrhi r4, [sp, #20] ubfxhi r3, r3, #3, #5 - ldrls r4, [sp, #24] + ldrls r4, [sp, #20] ubfxls r3, r3, #16, #5 ite hi ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L1389 -.L1356: - cmp r0, #3 - bls .L1358 - ldr r4, [sp, #24] - ldr r5, [sp, #24] - ldr r3, [sp, #24] - ubfx r4, r4, #3, #5 - ubfx lr, r5, #28, #1 - ldr r5, [sp, #24] - ubfx r3, r3, #16, #5 - ubfx r5, r5, #30, #1 - orr r4, r4, lr, lsl #5 - orr r3, r3, r5, lsl #5 - cmp r4, r3 - bls .L1359 - ldr r3, [sp, #24] - ldr r4, [sp, #24] - ubfx r3, r3, #3, #5 - ubfx r4, r4, #28, #1 -.L1389: - orr r4, r3, r4, lsl #5 - b .L1358 + b .L1391 .L1359: - ldr r5, [sp, #24] - ldr r4, [sp, #24] - ubfx r5, r5, #16, #5 - ubfx r4, r4, #30, #1 - orr r4, r5, r4, lsl #5 -.L1358: - cmp r6, r4 + cmp r1, #3 + bls .L1361 + ldr r4, [sp, #20] + ldr r3, [sp, #20] + ubfx r4, r4, #3, #5 + ubfx ip, r3, #28, #1 + ldr r3, [sp, #20] + ldr lr, [sp, #20] + ubfx r3, r3, #16, #5 + orr r4, r4, ip, lsl #5 + ubfx lr, lr, #30, #1 + orr r3, r3, lr, lsl #5 + cmp r4, r3 + ldr r3, [sp, #20] + ittee hi + ldrhi r4, [sp, #20] + ubfxhi r3, r3, #3, #5 + ldrls r4, [sp, #20] + ubfxls r3, r3, #16, #5 + ite hi + ubfxhi r4, r4, #28, #1 + ubfxls r4, r4, #30, #1 +.L1391: + orr r4, r3, r4, lsl #5 +.L1361: + cmp fp, r4 it cc - movcc r6, r4 - b .L1355 -.L1379: - mov r6, #-1 -.L1355: + movcc fp, r4 + b .L1358 +.L1381: + mov fp, #-1 +.L1358: adds r2, r2, #1 - b .L1354 -.L1376: - movs r6, #0 -.L1350: + b .L1357 +.L1378: + mov fp, #0 +.L1353: movs r3, #0 str r3, [r8, #16] - b .L1361 -.L1348: + b .L1364 +.L1351: cmp r1, #1 mov r4, #0 - bne .L1388 - mov r6, r4 -.L1362: + bne .L1390 + mov fp, r4 +.L1365: cmp r4, r7 - bcs .L1391 + bcs .L1393 and ip, r4, #3 cmp r10, #0 - beq .L1382 + beq .L1384 add r3, r10, r4, lsl #9 - b .L1364 -.L1382: + b .L1367 +.L1384: mov r3, r10 -.L1364: - cmp r5, #0 +.L1367: + ldr r2, [sp, #128] mov r0, r8 + ldr r1, [sp, #128] + cmp r2, #0 + str ip, [sp, #8] ite ne movne r2, #2 moveq r2, #0 + mla r2, r4, r2, r1 movs r1, #1 - str ip, [sp, #12] - mla r2, r4, r2, r5 adds r4, r4, #2 str r2, [sp] mov r2, ip @@ -8923,36 +8909,38 @@ NandcXferData: mov r0, r9 movs r1, #1 movs r2, #2 - ldr ip, [sp, #12] - str r6, [sp] - str r6, [sp, #4] + ldr ip, [sp, #8] + str fp, [sp] + str fp, [sp, #4] mov r3, ip bl NandcXferStart mov r0, r9 + movs r1, #1 bl NandcXferComp - b .L1362 -.L1391: - movs r6, #0 - b .L1361 -.L1388: + b .L1365 +.L1393: + mov fp, #0 + b .L1364 +.L1390: str r4, [sp] mov r1, r4 str r4, [sp, #4] movs r2, #2 mov r3, r4 - mov r6, r4 + mov fp, r4 bl NandcXferStart - str r10, [sp, #12] -.L1367: + str r10, [sp, #8] +.L1370: cmp r4, r7 - bcs .L1361 + bcs .L1364 mov r0, r9 + mov r1, r5 bl NandcXferComp ldr r3, [r8, #32] add ip, r4, #2 cmp ip, r7 - str r3, [sp, #24] - bcs .L1368 + str r3, [sp, #20] + bcs .L1371 movs r3, #0 mov r0, r9 str r3, [sp] @@ -8960,77 +8948,69 @@ NandcXferData: str r3, [sp, #4] mov r1, r3 and r3, ip, #3 - str ip, [sp, #20] + str ip, [sp, #12] bl NandcXferStart - ldr ip, [sp, #20] -.L1368: - ldr r3, [sp, #24] + ldr ip, [sp, #12] +.L1371: + ldr r3, [sp, #20] lsls r3, r3, #29 - bmi .L1384 - ldr r2, [sp, #24] - ldr r3, [sp, #24] + bmi .L1386 + ldr r2, [sp, #20] + ldr r3, [sp, #20] ubfx r2, r2, #3, #5 ubfx r3, r3, #27, #1 orr r3, r2, r3, lsl #5 - cmp r6, r3 + cmp fp, r3 it cc - movcc r6, r3 - b .L1369 -.L1384: - mov r6, #-1 -.L1369: + movcc fp, r3 + b .L1372 +.L1386: + mov fp, #-1 +.L1372: + ldr r1, [sp, #128] cmp r10, #0 - ldr r3, [sp, #12] + ldr r3, [sp, #8] it eq moveq r3, #0 - cmp r5, #0 + ldr r0, [sp, #128] + cmp r1, #0 ite ne movne r1, #2 moveq r1, #0 sub r2, ip, #2 - mov r0, r8 - mla r4, r4, r1, r5 + str ip, [sp, #12] + mla r4, r4, r1, r0 and r2, r2, #3 + mov r0, r8 movs r1, #0 - str ip, [sp, #20] str r4, [sp] bl NandcCopy1KB - ldr ip, [sp, #20] - ldr r3, [sp, #12] + ldr ip, [sp, #12] + ldr r3, [sp, #8] mov r4, ip add r3, r3, #1024 - str r3, [sp, #12] - b .L1367 -.L1361: - ldr r3, .L1392+4 - ldr r3, [r3, #1740] + str r3, [sp, #8] + b .L1370 +.L1364: + ldr r3, [r6, #2252] cmp r3, #5 - bls .L1373 - cmp fp, #0 - bne .L1373 + bls .L1376 + cbnz r5, .L1376 ldr r3, [r8] and r2, r3, #139264 cmp r2, #139264 ittt eq - moveq r6, #-1 + moveq fp, #-1 orreq r3, r3, #131072 streq r3, [r8] -.L1373: - ldr r3, [sp, #16] - mov r0, r6 - ldr r2, [sp, #92] - ldr r3, [r3] - cmp r2, r3 - beq .L1375 - bl __stack_chk_fail -.L1375: - add sp, sp, #100 +.L1376: + mov r0, fp + add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1393: +.L1395: .align 2 -.L1392: - .word __stack_chk_guard +.L1394: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -9047,20 +9027,20 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1396 + ldr r3, .L1398 mov r6, r1 mov r7, r2 mov r4, r0 ldrb r5, [r3, #481] @ zero_extendqisi2 - cbnz r0, .L1395 - ldr r2, .L1396+4 + cbnz r0, .L1397 + ldr r2, .L1398+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r2, [r2, #4] muls r2, r3, r2 cmp r1, r2 it cc movcc r5, #4 -.L1395: +.L1397: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -9083,9 +9063,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1397: +.L1399: .align 2 -.L1396: +.L1398: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -9102,7 +9082,7 @@ FlashDdrTunningRead: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r3 - ldr r4, .L1424 + ldr r4, .L1426 .pad #20 sub sp, sp, #20 mov r10, r0 @@ -9111,14 +9091,14 @@ FlashDdrTunningRead: ldr r3, [r4, #76] ldr r3, [r3, #304] str r3, [sp, #8] - ldr r3, [r4, #1740] + ldr r3, [r4, #2252] cmp r3, #8 ldr r3, [sp, #56] ite cc movcc r9, #6 movcs r9, #12 cmp r3, #0 - beq .L1412 + beq .L1414 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 @@ -9131,48 +9111,48 @@ FlashDdrTunningRead: ldr r1, [sp] bl FlashReadRawPage mov r6, r0 - ldrb r0, [r4, #1716] @ zero_extendqisi2 + ldrb r0, [r4, #2228] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #1716] @ zero_extendqisi2 + ldrb r0, [r4, #2228] @ zero_extendqisi2 bl NandcSetMode adds r3, r6, #1 - bne .L1401 -.L1410: + bne .L1403 +.L1412: mov r6, #-1 - b .L1402 -.L1401: + b .L1404 +.L1403: mov r2, r6 - ldr r0, .L1424+4 + ldr r0, .L1426+4 ldr r1, [sp] bl printk cmp r6, #9 itt ls addls r4, r4, r10, lsl #3 ldrls r3, [r4, #12] - ldr r4, .L1424+8 + ldr r4, .L1426+8 itttt ls ldrls r2, [r3, #3840] ldrls r2, [r3] orrls r2, r2, #131072 strls r2, [r3] - ldr r3, [r4, #3992] + ldr r3, [r4, #1184] adds r3, r3, #1 - str r3, [r4, #3992] + str r3, [r4, #1184] cmp r3, #2048 - bcc .L1402 + bcc .L1404 movs r7, #0 - str r7, [r4, #3992] + str r7, [r4, #1184] mov fp, r7 - b .L1400 -.L1412: + b .L1402 +.L1414: mov r6, #1024 -.L1400: +.L1402: movs r4, #0 mov r8, #-1 str r4, [sp, #4] mov ip, r4 mov r5, r4 -.L1408: +.L1410: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara @@ -9184,77 +9164,77 @@ FlashDdrTunningRead: adds r3, r6, #1 cmp r0, r3 ldr ip, [sp, #12] - bhi .L1404 + bhi .L1406 cmp r0, #2 - bhi .L1414 + bhi .L1416 adds r5, r5, #1 cmp r5, #9 - bls .L1414 + bls .L1416 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L1406 -.L1404: + b .L1408 +.L1406: ldr r3, [sp, #4] cmp r3, r5 - bcs .L1415 + bcs .L1417 cmp r5, #7 rsb ip, r5, r4 - bhi .L1416 + bhi .L1418 str r5, [sp, #4] - b .L1415 -.L1414: + b .L1417 +.L1416: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L1405 -.L1415: + b .L1407 +.L1417: movs r5, #0 -.L1405: +.L1407: add r9, r9, #2 cmp r9, #69 - bls .L1408 -.L1406: + bls .L1410 +.L1408: ldr r3, [sp, #4] cmp r3, r5 it cs movcs r4, ip - b .L1407 -.L1416: + b .L1409 +.L1418: mov r4, ip -.L1407: - cbz r4, .L1409 - ldr r0, .L1424+12 +.L1409: + cbz r4, .L1411 + ldr r0, .L1426+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1409: +.L1411: cmp r8, #0 - beq .L1402 - ldr r0, .L1424+16 + beq .L1404 + ldr r0, .L1426+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L1410 + beq .L1412 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1402: +.L1404: mov r0, r6 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1425: +.L1427: .align 2 -.L1424: +.L1426: .word .LANCHOR0 .word .LC90 - .word .LANCHOR2 + .word .LANCHOR4 .word .LC91 .word .LC92 .fnend @@ -9278,18 +9258,18 @@ FlashReadPage: bl FlashReadRawPage adds r2, r0, #1 mov r4, r0 - bne .L1427 - ldr r9, .L1446+4 + bne .L1429 + ldr r9, .L1448+4 ldrb fp, [r9, #8] @ zero_extendqisi2 mov r10, r9 cmp fp, #0 - bne .L1428 + bne .L1430 +.L1432: + ldrb r3, [r10, #2244] @ zero_extendqisi2 + ldr r9, .L1448+4 + cbz r3, .L1429 + b .L1447 .L1430: - ldrb r3, [r10, #1732] @ zero_extendqisi2 - ldr r9, .L1446+4 - cbz r3, .L1427 - b .L1445 -.L1428: movs r3, #0 mov r0, r5 strb r3, [r9, #8] @@ -9299,10 +9279,10 @@ FlashReadPage: bl FlashReadRawPage strb fp, [r9, #8] adds r3, r0, #1 - beq .L1430 + beq .L1432 mov r4, r0 - b .L1427 -.L1445: + b .L1429 +.L1447: ldr r3, [r9, #76] mov r1, r6 mov r0, r5 @@ -9314,20 +9294,20 @@ FlashReadPage: bl FlashDdrTunningRead adds r1, r0, #1 mov r4, r0 - beq .L1431 - ldrb r3, [r9, #1792] @ zero_extendqisi2 + beq .L1433 + ldrb r3, [r9, #2304] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1427 -.L1431: + bls .L1429 +.L1433: ubfx r0, r10, #8, #8 bl NandcSetDdrPara -.L1427: - ldr r9, .L1446+8 - ldr ip, [r9, #3996] +.L1429: + ldr r9, .L1448+8 + ldr ip, [r9, #1188] cmp ip, #0 - beq .L1432 + beq .L1434 adds r2, r4, #1 - bne .L1432 + bne .L1434 mov r1, r6 mov r2, r8 mov r3, r7 @@ -9336,17 +9316,17 @@ FlashReadPage: mov r3, r6 mov r2, r5 mov r4, r0 - ldr r0, .L1446 + ldr r0, .L1448 mov r1, r4 bl printk adds r3, r4, #1 - bne .L1432 - ldr r3, .L1446+4 + bne .L1434 + ldr r3, .L1448+4 ldrb r3, [r3, #140] @ zero_extendqisi2 - cbz r3, .L1432 + cbz r3, .L1434 mov r0, r5 bl flash_enter_slc_mode - ldr r4, [r9, #3996] + ldr r4, [r9, #1188] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9355,17 +9335,17 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1432: +.L1434: mov r0, r4 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1447: +.L1449: .align 2 -.L1446: +.L1448: .word .LC93 .word .LANCHOR0 - .word .LANCHOR2 + .word .LANCHOR4 .fnend .size FlashReadPage, .-FlashReadPage .align 1 @@ -9381,12 +9361,12 @@ FlashDdrParaScan: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r0 - ldr r4, .L1458 + ldr r4, .L1460 mov r6, r1 movs r5, #0 - ldrb r0, [r4, #1716] @ zero_extendqisi2 + ldrb r0, [r4, #2228] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #1716] @ zero_extendqisi2 + ldrb r0, [r4, #2228] @ zero_extendqisi2 bl NandcSetMode mov r1, r6 mov r2, r5 @@ -9401,32 +9381,32 @@ FlashDdrParaScan: mov r0, r7 bl FlashReadRawPage adds r0, r0, #1 - beq .L1449 + beq .L1451 cmp r8, #-1 - bne .L1450 -.L1449: - ldrb r3, [r4, #1716] @ zero_extendqisi2 + bne .L1452 +.L1451: + ldrb r3, [r4, #2228] @ zero_extendqisi2 lsls r3, r3, #31 - bpl .L1450 + bpl .L1452 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode - ldr r3, .L1458 + ldr r3, .L1460 movs r2, #0 - strb r2, [r3, #1732] - b .L1451 -.L1450: + strb r2, [r3, #2244] + b .L1453 +.L1452: movs r3, #1 - strb r3, [r4, #1732] -.L1451: + strb r3, [r4, #2244] +.L1453: movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1459: +.L1461: .align 2 -.L1458: +.L1460: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9443,140 +9423,127 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r10, .L1476+24 - movs r6, #0 - ldr r7, .L1476 + ldr r3, .L1477 + movs r4, #0 + ldr r7, .L1477+4 mov r9, #4 - ldr r5, .L1476+4 + ldr r5, .L1477+8 mov r8, #-1 - ldr r3, [r10] - mov r4, r6 - str r6, [r5, #4004] - str r3, [sp, #12] - ldr r3, .L1476+8 ldr r0, [r3] @ unaligned ldr r3, [r7, #4] - str r0, [sp, #8] @ unaligned - mov r0, r6 - str r3, [sp] + str r4, [r5, #1196] mov r6, r5 - ldr r3, [r5, #3988] - str r3, [r5, #4000] + str r0, [sp, #12] @ unaligned + mov r0, r4 + str r3, [sp, #4] + ldr r3, [r5, #1180] + str r3, [r5, #1192] bl flash_enter_slc_mode - str r10, [sp, #4] -.L1461: +.L1463: add fp, r4, #1 mov r10, #0 -.L1463: - add r3, sp, #8 +.L1465: + add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 mov r1, r4 - ldr r2, [r5, #3988] + ldr r2, [r5, #1180] mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1462 + bne .L1464 movs r0, #0 mov r1, fp - ldr r2, [r6, #3988] + ldr r2, [r6, #1180] mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1462 + bne .L1464 add r10, r10, #1 cmp r10, #4 - beq .L1464 - b .L1463 -.L1465: + beq .L1466 + b .L1465 +.L1467: add r0, fp, #12 movw r1, #2036 bl js_hash ldr r3, [fp, #8] cmp r3, r0 - bne .L1472 - ldr r8, .L1476+28 + bne .L1473 + ldr r8, .L1477+24 add r1, fp, #160 movs r2, #32 add r0, r8, #472 bl ftl_memcpy - ldr r1, [r6, #4000] + ldr r1, [r6, #1192] movs r2, #32 - ldr r0, .L1476+12 + ldr r0, .L1477+12 adds r1, r1, #192 bl ftl_memcpy - ldr r1, [r6, #4000] + ldr r1, [r6, #1192] mov r2, #852 - ldr r0, .L1476+16 + ldr r0, .L1477+16 adds r1, r1, #224 bl ftl_memcpy ldrh r0, [r8, #482] bl FlashBlockAlignInit - ldr r8, [r6, #4000] - str r4, [r6, #4004] + ldr r8, [r6, #1192] + str r4, [r6, #1196] mov r0, r4 ldr r1, [r7, #4] ldr r3, [r8, #1076] - strb r3, [r7, #1732] + strb r3, [r7, #2244] bl __aeabi_uidiv adds r0, r0, #1 cmp r0, #1 itee hi - strhi r0, [r6, #4008] + strhi r0, [r6, #1200] movls r3, #2 - strls r3, [r6, #4008] + strls r3, [r6, #1200] ldrh r3, [r8, #14] mov r8, #0 - strb r3, [r5, #4012] -.L1464: - ldr r3, [sp] + strb r3, [r5, #1204] +.L1466: + ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L1461 + bne .L1463 mov r0, r9 -.L1475: +.L1476: bl flash_exit_slc_mode mov r0, r8 - ldr r3, [sp, #4] - ldr r2, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L1471 - bl __stack_chk_fail -.L1462: - ldr fp, [r5, #4000] - ldr r2, .L1476+20 - ldr r3, [fp] - cmp r3, r2 - bne .L1464 - cmp r8, #0 - bne .L1465 - mov r0, r4 - ldr r1, [r7, #4] - bl __aeabi_uidiv - ldr r3, .L1476+4 - adds r0, r0, #1 - str r0, [r3, #4008] - mov r0, r8 - b .L1475 -.L1472: - mov r8, #-1 - b .L1464 -.L1471: add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1477: +.L1464: + ldr fp, [r5, #1192] + ldr r2, .L1477+20 + ldr r3, [fp] + cmp r3, r2 + bne .L1466 + cmp r8, #0 + bne .L1467 + mov r0, r4 + ldr r1, [r7, #4] + bl __aeabi_uidiv + ldr r3, .L1477+8 + adds r0, r0, #1 + str r0, [r3, #1200] + mov r0, r8 + b .L1476 +.L1473: + mov r8, #-1 + b .L1466 +.L1478: .align 2 -.L1476: - .word .LANCHOR0 - .word .LANCHOR2 +.L1477: .word .LANCHOR3+11 + .word .LANCHOR0 + .word .LANCHOR4 .word .LANCHOR0+44 - .word .LANCHOR0+698 + .word .LANCHOR0+1210 .word 1312902724 - .word __stack_chk_guard .word .LANCHOR1 .fnend .size FlashLoadPhyInfo, .-FlashLoadPhyInfo @@ -9598,67 +9565,67 @@ ToshibaReadRetrial: str r2, [sp, #8] str r1, [sp, #16] bl NandcWaitFlashReady - ldr r4, .L1506 + ldr r4, .L1507 add r3, r4, r9, lsl #3 ldrb r2, [r3, #16] @ zero_extendqisi2 ldr r7, [r3, #12] - ldrb r3, [r4, #696] @ zero_extendqisi2 + ldrb r3, [r4, #1208] @ zero_extendqisi2 add r6, r2, #8 subs r3, r3, #67 add r6, r7, r6, lsl #8 cmp r3, #1 lsl r3, r2, #8 str r3, [sp, #12] - bls .L1495 - ldrb r5, [r4, #1732] @ zero_extendqisi2 - cbz r5, .L1496 + bls .L1496 + ldrb r5, [r4, #2244] @ zero_extendqisi2 + cbz r5, .L1497 movs r0, #0 str r2, [sp, #20] bl NandcSetDdrMode movs r3, #1 ldr r2, [sp, #20] str r3, [sp, #4] - b .L1480 -.L1496: + b .L1481 +.L1497: str r5, [sp, #4] -.L1480: +.L1481: ldr r3, [sp, #12] movs r1, #92 adds r3, r7, r3 str r1, [r3, #2056] movs r1, #197 str r1, [r3, #2056] - b .L1479 -.L1495: + b .L1480 +.L1496: movs r3, #0 str r3, [sp, #4] -.L1479: +.L1480: mov r8, #1 mov r10, #-1 lsls r3, r2, #8 str r3, [sp, #20] -.L1481: - ldr r3, .L1506+4 - ldrb r3, [r3, #4013] @ zero_extendqisi2 +.L1482: + ldr r3, .L1507+4 + ldrb r3, [r3, #1205] @ zero_extendqisi2 adds r3, r3, #1 cmp r8, r3 - bcs .L1505 - ldrb r3, [r4, #696] @ zero_extendqisi2 + bcs .L1506 + ldrb r3, [r4, #1208] @ zero_extendqisi2 mov r0, r6 uxtb r1, r8 subs r3, r3, #67 cmp r3, #1 - bhi .L1482 + bhi .L1483 bl SandiskSetRRPara - b .L1483 -.L1482: - bl ToshibaSetRRPara + b .L1484 .L1483: - ldrb r3, [r4, #696] @ zero_extendqisi2 + bl ToshibaSetRRPara +.L1484: + ldrb r3, [r4, #1208] @ zero_extendqisi2 cmp r3, #34 - bne .L1484 - ldr r3, .L1506+4 - ldrb r3, [r3, #4013] @ zero_extendqisi2 + bne .L1485 + ldr r3, .L1507+4 + ldrb r3, [r3, #1205] @ zero_extendqisi2 subs r3, r3, #3 cmp r8, r3 itttt eq @@ -9666,7 +9633,7 @@ ToshibaReadRetrial: ldreq r3, [sp, #20] addeq r3, r7, r3 streq r2, [r3, #2056] -.L1484: +.L1485: ldr r3, [sp, #12] movs r2, #38 adds r3, r7, r3 @@ -9674,7 +9641,7 @@ ToshibaReadRetrial: movs r2, #93 str r2, [r3, #2056] ldr r3, [sp, #4] - cbz r3, .L1485 + cbz r3, .L1486 movs r0, #4 bl NandcSetDdrMode mov r0, r9 @@ -9685,71 +9652,71 @@ ToshibaReadRetrial: mov r5, r0 movs r0, #0 bl NandcSetDdrMode - b .L1486 -.L1485: + b .L1487 +.L1486: mov r0, r9 ldr r1, [sp, #16] ldr r2, [sp, #8] mov r3, fp bl FlashReadRawPage mov r5, r0 -.L1486: +.L1487: adds r2, r5, #1 - beq .L1487 - ldrb r2, [r4, #1792] @ zero_extendqisi2 + beq .L1488 + ldrb r2, [r4, #2304] @ zero_extendqisi2 cmp r10, #-1 it eq moveq r10, r5 add r2, r2, r2, lsl #1 cmp r5, r2, asr #2 - bcc .L1489 + bcc .L1490 mov fp, #0 str fp, [sp, #8] -.L1487: +.L1488: add r8, r8, #1 - b .L1481 -.L1505: + b .L1482 +.L1506: mov r5, r10 -.L1489: - ldrb r2, [r4, #696] @ zero_extendqisi2 +.L1490: + ldrb r2, [r4, #1208] @ zero_extendqisi2 mov r0, r6 movs r1, #0 subs r2, r2, #67 cmp r2, #1 - bhi .L1491 + bhi .L1492 bl SandiskSetRRPara - b .L1492 -.L1491: - bl ToshibaSetRRPara + b .L1493 .L1492: + bl ToshibaSetRRPara +.L1493: ldr r3, [sp, #12] movs r2, #255 add r7, r7, r3 str r2, [r7, #2056] - ldrb r2, [r4, #1792] @ zero_extendqisi2 + ldrb r2, [r4, #2304] @ zero_extendqisi2 add r2, r2, r2, lsl #1 cmp r5, r2, asr #2 - bcc .L1493 + bcc .L1494 adds r3, r5, #1 it ne movne r5, #256 -.L1493: +.L1494: mov r0, r9 bl NandcWaitFlashReady ldr r3, [sp, #4] - cbz r3, .L1494 + cbz r3, .L1495 movs r0, #4 bl NandcSetDdrMode -.L1494: +.L1495: mov r0, r5 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1507: +.L1508: .align 2 -.L1506: +.L1507: .word .LANCHOR0 - .word .LANCHOR2 + .word .LANCHOR4 .fnend .size ToshibaReadRetrial, .-ToshibaReadRetrial .align 1 @@ -9764,7 +9731,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, .L1521 + ldr r5, .L1522 mov r9, r2 mov r7, r3 mov fp, r1 @@ -9776,12 +9743,12 @@ SamsungReadRetrial: ldr r6, [r2, #12] adds r3, r3, #8 add r6, r6, r3, lsl #8 -.L1509: - ldr r3, .L1521+4 - ldrb r3, [r3, #4013] @ zero_extendqisi2 +.L1510: + ldr r3, .L1522+4 + ldrb r3, [r3, #1205] @ zero_extendqisi2 adds r3, r3, #1 cmp r10, r3 - bcs .L1512 + bcs .L1513 mov r0, r6 uxtb r1, r10 bl SamsungSetRRPara @@ -9791,40 +9758,40 @@ SamsungReadRetrial: mov r3, r7 bl FlashReadRawPage adds r2, r0, #1 - beq .L1510 - ldrb r3, [r5, #1792] @ zero_extendqisi2 + beq .L1511 + ldrb r3, [r5, #2304] @ zero_extendqisi2 cmp r4, #-1 it eq moveq r4, r0 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1515 + bcc .L1516 movs r7, #0 mov r9, r7 -.L1510: +.L1511: add r10, r10, #1 - b .L1509 -.L1515: + b .L1510 +.L1516: mov r4, r0 -.L1512: +.L1513: mov r0, r6 movs r1, #0 bl SamsungSetRRPara - ldrb r3, [r5, #1792] @ zero_extendqisi2 + ldrb r3, [r5, #2304] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r4, r3, asr #2 - bcc .L1514 + bcc .L1515 adds r3, r4, #1 it ne movne r4, #256 -.L1514: +.L1515: mov r0, r4 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1522: +.L1523: .align 2 -.L1521: +.L1522: .word .LANCHOR0 - .word .LANCHOR2 + .word .LANCHOR4 .fnend .size SamsungReadRetrial, .-SamsungReadRetrial .align 1 @@ -9839,28 +9806,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, .L1547 + ldr r3, .L1548 .pad #36 sub sp, sp, #36 mov r6, r0 mov fp, r2 str r1, [sp, #20] - ldrb r5, [r3, #1792] @ zero_extendqisi2 + ldrb r5, [r3, #2304] @ zero_extendqisi2 ldrb r3, [r3, #140] @ zero_extendqisi2 - cbnz r3, .L1524 + cbnz r3, .L1525 add r5, r5, r5, lsl #1 ubfx r5, r5, #2, #8 - b .L1525 -.L1524: - ldr r2, .L1547+4 + b .L1526 +.L1525: + ldr r2, .L1548+4 smull r2, r3, r5, r2 uxtb r5, r3 -.L1525: - ldr r3, .L1547 +.L1526: + ldr r3, .L1548 mov r10, #0 add r3, r3, r6, lsl #3 str r3, [sp, #24] -.L1535: +.L1536: mov r0, r6 mov r9, #0 bl NandcWaitFlashReady @@ -9874,11 +9841,11 @@ MicronReadRetrial: ldr r2, [sp, #16] ldr r3, [sp, #12] add r7, r3, r2, lsl #8 -.L1526: - ldr r3, .L1547+8 - ldrb r3, [r3, #4013] @ zero_extendqisi2 +.L1527: + ldr r3, .L1548+8 + ldrb r3, [r3, #1205] @ zero_extendqisi2 cmp r9, r3 - bcs .L1529 + bcs .L1530 movs r3, #239 movs r0, #200 str r3, [r7, #2056] @@ -9899,23 +9866,23 @@ MicronReadRetrial: str ip, [sp, #28] bl FlashReadRawPage adds r3, r0, #1 - beq .L1527 + beq .L1528 cmp r4, #-1 it eq moveq r4, r0 cmp r0, r5 ldr ip, [sp, #28] - bcc .L1537 + bcc .L1538 mov r8, ip mov fp, ip -.L1527: +.L1528: ldr r9, [sp, #8] - b .L1526 -.L1537: + b .L1527 +.L1538: mov r4, r0 mov r8, ip mov fp, ip -.L1529: +.L1530: ldr r2, [sp, #16] movs r0, #200 ldr r3, [sp, #12] @@ -9933,9 +9900,9 @@ MicronReadRetrial: str r7, [r3, #2048] str r7, [r3, #2048] str r7, [r3, #2048] - bcc .L1531 + bcc .L1532 adds r1, r4, #1 - ldr r0, .L1547+12 + ldr r0, .L1548+12 it ne movne r4, #256 mov r1, r9 @@ -9944,43 +9911,43 @@ MicronReadRetrial: ldr r2, [sp, #20] bl printk cmp r10, #0 - bne .L1533 - ldr r3, .L1547 + bne .L1534 + ldr r3, .L1548 ldrb r3, [r3, #140] @ zero_extendqisi2 - cbz r3, .L1542 + cbz r3, .L1543 adds r2, r4, #1 - bne .L1542 + bne .L1543 mov r0, r6 movs r1, #3 bl micron_auto_read_calibration_config mov r10, #1 - b .L1535 -.L1533: + b .L1536 +.L1534: mov r0, r6 mov r1, r7 bl micron_auto_read_calibration_config adds r3, r4, #1 it ne movne r4, #256 - b .L1542 -.L1531: + b .L1543 +.L1532: cmp r10, #0 - beq .L1542 + beq .L1543 mov r0, r6 mov r1, r7 bl micron_auto_read_calibration_config mov r4, #256 -.L1542: +.L1543: mov r0, r4 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1548: +.L1549: .align 2 -.L1547: +.L1548: .word .LANCHOR0 .word 1431655766 - .word .LANCHOR2 + .word .LANCHOR4 .word .LC94 .fnend .size MicronReadRetrial, .-MicronReadRetrial @@ -9997,30 +9964,30 @@ HynixReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r3 - ldr r5, .L1566 + ldr r5, .L1567 mov r10, r2 mov r7, r0 mov fp, r1 adds r2, r5, r0 mov r6, #-1 - ldr r3, [r5, #692] - ldrb r4, [r2, #710] @ zero_extendqisi2 - ldrb r9, [r5, #700] @ zero_extendqisi2 + ldr r3, [r5, #1204] + ldrb r4, [r2, #1222] @ zero_extendqisi2 + ldrb r9, [r5, #1212] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #7 cmp r3, #1 it ls - ldrbls r4, [r2, #718] @ zero_extendqisi2 + ldrbls r4, [r2, #1230] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L1551: +.L1552: cmp ip, r9 - bcs .L1555 + bcs .L1556 adds r4, r4, #1 mov r0, r7 - ldrb r1, [r5, #699] @ zero_extendqisi2 + ldrb r1, [r5, #1211] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L1566+4 + ldr r2, .L1567+4 cmp r4, r9 it cs movcs r4, #0 @@ -10034,47 +10001,47 @@ HynixReadRetrial: bl FlashReadRawPage adds r2, r0, #1 ldr ip, [sp, #4] - beq .L1553 - ldrb r3, [r5, #1792] @ zero_extendqisi2 + beq .L1554 + ldrb r3, [r5, #2304] @ zero_extendqisi2 cmp r6, #-1 it eq moveq r6, r0 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1560 + bcc .L1561 mov r8, #0 mov r10, r8 -.L1553: +.L1554: add ip, ip, #1 - b .L1551 -.L1560: + b .L1552 +.L1561: mov r6, r0 -.L1555: - ldr r3, [r5, #692] +.L1556: + ldr r3, [r5, #1204] add r7, r7, r5 ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #7 cmp r3, #1 - ldrb r3, [r5, #1792] @ zero_extendqisi2 + ldrb r3, [r5, #2304] @ zero_extendqisi2 ite ls - strbls r4, [r7, #718] - strbhi r4, [r7, #710] + strbls r4, [r7, #1230] + strbhi r4, [r7, #1222] add r3, r3, r3, lsl #1 cmp r6, r3, asr #2 - bcc .L1559 + bcc .L1560 adds r3, r6, #1 it ne movne r6, #256 -.L1559: +.L1560: mov r0, r6 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1567: +.L1568: .align 2 -.L1566: +.L1567: .word .LANCHOR0 - .word .LANCHOR0+702 + .word .LANCHOR0+1214 .fnend .size HynixReadRetrial, .-HynixReadRetrial .align 1 @@ -10090,25 +10057,23 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1571 + ldr r3, .L1572 mov r5, r1 mov r7, r2 mov r4, r0 ldrb r6, [r3, #481] @ zero_extendqisi2 - cbnz r0, .L1569 - ldr r2, .L1571+4 + cbnz r0, .L1570 + ldr r2, .L1572+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r1, [r2, #4] muls r1, r3, r1 cmp r5, r1 - bcs .L1569 + bcs .L1570 ldrb r3, [r2] @ zero_extendqisi2 - cbnz r3, .L1570 - subs r6, r6, #2 - b .L1569 + cmp r3, #0 + it ne + movne r6, #4 .L1570: - movs r6, #4 -.L1569: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -10116,7 +10081,7 @@ FlashProgPage: mov r0, r4 mov r1, r5 bl FlashProgFirstCmd - uxtb r2, r6 + mov r2, r6 mov r3, r7 mov r0, r4 movs r1, #1 @@ -10137,9 +10102,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1572: +.L1573: .align 2 -.L1571: +.L1572: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -10156,71 +10121,71 @@ 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, .L1582 - ldr r5, .L1582+4 - ldr r8, .L1582+12 - ldr r3, [r4, #3988] + ldr r4, .L1583 + ldr r5, .L1583+4 + ldr r8, .L1583+12 + ldr r3, [r4, #1180] mov r9, r4 - ldrb r0, [r4, #4014] @ zero_extendqisi2 + ldrb r0, [r4, #1206] @ zero_extendqisi2 mov r10, r5 - str r3, [r4, #4000] + str r3, [r4, #1192] bl FlashBchSel movs r1, #0 mov r2, #2048 - ldr r0, [r4, #3988] + ldr r0, [r4, #1180] bl ftl_memset - ldr r3, [r4, #4000] - addw r1, r5, #1556 + ldr r3, [r4, #1192] + addw r1, r5, #2068 movs r2, #32 str r8, [r3] - ldr r0, [r4, #4000] - ldrb r3, [r5, #1717] @ zero_extendqisi2 + ldr r0, [r4, #1192] + ldrb r3, [r5, #2229] @ 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, #1732] @ zero_extendqisi2 + ldrb r3, [r5, #2244] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy - ldr r0, [r4, #4000] - add r1, r5, #1720 + ldr r0, [r4, #1192] + addw r1, r5, #2232 movs r2, #8 adds r0, r0, #80 bl ftl_memcpy - ldr r0, [r4, #4000] - add r1, r5, #656 + ldr r0, [r4, #1192] + add r1, r5, #1168 movs r2, #32 adds r0, r0, #96 bl ftl_memcpy - ldr r0, [r4, #4000] - ldr r1, .L1582+8 + ldr r0, [r4, #1192] + ldr r1, .L1583+8 movs r2, #32 adds r0, r0, #160 bl ftl_memcpy - ldr r0, [r4, #4000] + ldr r0, [r4, #1192] add r1, r5, #44 movs r2, #32 adds r0, r0, #192 bl ftl_memcpy - ldr r0, [r4, #4000] + ldr r0, [r4, #1192] mov r2, #852 - addw r1, r5, #698 + addw r1, r5, #1210 adds r0, r0, #224 bl ftl_memcpy - ldr r6, [r4, #4000] + ldr r6, [r4, #1192] movw r1, #2036 add r0, r6, #12 bl js_hash mov r3, #1592 str r3, [r6, #4] - ldr r3, [r4, #4016] - str r3, [r4, #4000] + ldr r3, [r4, #1208] + str r3, [r4, #1192] str r0, [r6, #8] movs r0, #0 bl flash_enter_slc_mode movs r6, #0 mov r7, r6 -.L1576: +.L1577: ldr r1, [r5, #4] movs r0, #0 mov r2, r0 @@ -10228,30 +10193,30 @@ FlashSavePhyInfo: bl FlashEraseBlock ldr r1, [r5, #4] movs r0, #0 - ldr r2, [r4, #3988] + ldr r2, [r4, #1180] muls r1, r7, r1 mov r3, r0 bl FlashProgPage ldr r1, [r5, #4] movs r0, #0 - ldr r2, [r4, #3988] + ldr r2, [r4, #1180] muls r1, r7, r1 mov r3, r0 adds r1, r1, #1 bl FlashProgPage ldr r1, [r5, #4] movs r0, #0 - ldr r2, [r4, #4016] + ldr r2, [r4, #1208] muls r1, r7, r1 mov r3, r0 bl FlashReadRawPage adds r2, r7, #1 adds r0, r0, #1 - beq .L1574 - ldr fp, [r9, #4000] + beq .L1575 + ldr fp, [r9, #1192] ldr r3, [fp] cmp r3, r8 - bne .L1574 + bne .L1575 add r0, fp, #12 movw r1, #2036 str r2, [sp, #4] @@ -10259,22 +10224,22 @@ FlashSavePhyInfo: ldr r3, [fp, #8] cmp r3, r0 ldr r2, [sp, #4] - bne .L1574 + bne .L1575 ldr r3, [r10, #4] cmp r6, #1 - str r2, [r9, #4008] + str r2, [r9, #1200] mul r3, r3, r7 - str r3, [r9, #4004] - beq .L1577 + str r3, [r9, #1196] + beq .L1578 movs r6, #1 -.L1574: +.L1575: cmp r2, #4 mov r7, r2 - bne .L1576 - b .L1575 -.L1577: + bne .L1577 + b .L1576 +.L1578: movs r6, #2 -.L1575: +.L1576: movs r0, #0 bl flash_exit_slc_mode clz r0, r6 @@ -10283,10 +10248,10 @@ FlashSavePhyInfo: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1583: +.L1584: .align 2 -.L1582: - .word .LANCHOR2 +.L1583: + .word .LANCHOR4 .word .LANCHOR0 .word .LANCHOR1+472 .word 1312902724 @@ -10299,110 +10264,97 @@ FlashSavePhyInfo: .type FlashReadIdbDataRaw, %function FlashReadIdbDataRaw: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1604 - push {r4, r5, r6, r7, r8, r9, r10, fp, lr} + push {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 r2, [r3] + .pad #12 mov r9, r0 + ldr r3, .L1604 ldr r4, .L1604+4 - str r3, [sp, #4] - str r2, [sp, #12] - ldr r2, .L1604+8 - ldrb r10, [r4, #1792] @ zero_extendqisi2 - ldr r0, [r2] @ unaligned - ldr r2, [r4, #1728] - str r0, [sp, #8] @ unaligned - cbz r2, .L1585 + ldr r0, [r3] @ unaligned + ldr r3, [r4, #2240] + ldrb r10, [r4, #2304] @ zero_extendqisi2 + str r0, [sp, #4] @ unaligned + cbz r3, .L1586 movs r0, #0 bl flash_enter_slc_mode -.L1585: +.L1586: mov r0, r9 movs r1, #0 mov r2, #2048 mov r8, #-1 bl ftl_memset movs r5, #2 -.L1586: +.L1587: ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r5, r3 - bcs .L1590 + bcs .L1591 movs r7, #0 -.L1588: - add r3, sp, #8 - ldr r6, .L1604+12 - ldrb fp, [r3, r7] @ zero_extendqisi2 +.L1589: + add r3, sp, #4 + ldr r6, .L1604+8 + ldrb fp, [r7, r3] @ zero_extendqisi2 mov r0, fp bl FlashBchSel ldr r1, [r4, #4] movs r0, #0 - ldr r2, [r6, #3988] + ldr r2, [r6, #1180] muls r1, r5, r1 mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1587 + bne .L1588 adds r7, r7, #1 cmp r7, #4 - bne .L1588 - b .L1589 -.L1587: - ldr r3, [r6, #3988] - ldr r2, .L1604+16 + bne .L1589 + b .L1590 +.L1588: + ldr r3, [r6, #1180] + ldr r2, .L1604+12 ldr r3, [r3] cmp r3, r2 - bne .L1589 + bne .L1590 mov r1, fp - ldr r0, .L1604+20 + ldr r0, .L1604+16 bl printk mov r2, #2048 mov r0, r9 - ldr r1, [r6, #3988] + ldr r1, [r6, #1180] bl ftl_memcpy - ldr r3, [r6, #3988] + ldr r3, [r6, #1180] ldr r2, .L1604+4 ldr r3, [r3, #512] strb r3, [r2, #1] - ldr r3, [r6, #4008] + ldr r3, [r6, #1200] cmp r3, r5 bls .L1594 - str r5, [r6, #4008] + str r5, [r6, #1200] bl FlashSavePhyInfo mov r8, #0 -.L1589: +.L1590: adds r5, r5, #1 - b .L1586 + b .L1587 .L1594: mov r8, #0 -.L1590: +.L1591: mov r0, r10 bl FlashBchSel - ldr r3, [r4, #1728] - cbz r3, .L1591 + ldr r3, [r4, #2240] + cbz r3, .L1598 movs r0, #0 bl flash_exit_slc_mode -.L1591: - ldr r3, [sp, #4] +.L1598: mov r0, r8 - ldr r2, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L1593 - bl __stack_chk_fail -.L1593: - add sp, sp, #20 + add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} .L1605: .align 2 .L1604: - .word __stack_chk_guard - .word .LANCHOR0 .word .LANCHOR3+11 - .word .LANCHOR2 + .word .LANCHOR0 + .word .LANCHOR4 .word -52655045 .word .LC95 .fnend @@ -10418,151 +10370,150 @@ FlashInit: @ 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 + mov r5, r0 .pad #20 sub sp, sp, #20 mov r0, #32768 bl ftl_malloc - ldr r5, .L1725 + ldr r6, .L1725 ldr r4, .L1725+4 movs r7, #0 add r9, r4, #12 - mov r8, r7 - str r0, [r5, #3988] + mov r8, r6 + str r0, [r6, #1180] mov r0, #32768 bl ftl_malloc - str r0, [r5, #4016] + str r0, [r6, #1208] mov r0, #4096 bl ftl_malloc - str r0, [r5, #4020] + str r0, [r6, #1212] mov r0, #32768 bl ftl_malloc - str r0, [r5, #4024] + str r0, [r6, #1216] mov r0, #4096 bl ftl_malloc movs r3, #50 - str r7, [r5, #4008] + str r7, [r6, #1200] strb r3, [r4, #1] - strb r3, [r5, #4012] + strb r3, [r6, #1204] movs r3, #128 - strb r7, [r4, #1732] + strb r7, [r4, #2244] str r3, [r4, #4] movs r3, #60 - str r7, [r5, #3992] + str r7, [r6, #1184] strb r7, [r4] - strb r7, [r5, #4032] - strb r3, [r5, #4014] - str r0, [r5, #4028] - mov r0, r6 + strb r7, [r6, #1224] + strb r3, [r6, #1206] + str r0, [r6, #1220] + mov r0, r5 bl NandcInit - addw r6, r4, #1556 + addw r5, r4, #2068 .L1612: - add r3, r9, r8, lsl #3 - uxtb fp, r8 - ldr r7, [r9, r8, lsl #3] + add r3, r9, r7, lsl #3 + uxtb fp, r7 + ldr r6, [r9, r7, lsl #3] ldrb r10, [r3, #4] @ zero_extendqisi2 mov r0, fp bl FlashReset mov r0, fp bl NandcFlashCs movs r3, #144 - add r7, r7, r10, lsl #8 + add r6, r6, r10, lsl #8 movs r0, #200 mov r10, #0 - str r3, [r7, #2056] - str r10, [r7, #2052] + str r3, [r6, #2056] + str r10, [r6, #2052] bl NandcDelayns - ldr r2, [r7, #2048] + ldr r2, [r6, #2048] uxtb r2, r2 - strb r2, [r6] - ldr r1, [r7, #2048] + strb r2, [r5] + ldr r1, [r6, #2048] cmp r2, #44 - strb r1, [r6, #1] - ldr r1, [r7, #2048] - strb r1, [r6, #2] - ldr r1, [r7, #2048] - strb r1, [r6, #3] - ldr r1, [r7, #2048] - strb r1, [r6, #4] - ldr r1, [r7, #2048] - strb r1, [r6, #5] + strb r1, [r5, #1] + ldr r1, [r6, #2048] + strb r1, [r5, #2] + ldr r1, [r6, #2048] + strb r1, [r5, #3] + ldr r1, [r6, #2048] + strb r1, [r5, #4] + ldr r1, [r6, #2048] + strb r1, [r5, #5] bne .L1607 movs r2, #239 movs r0, #200 - str r2, [r7, #2056] + str r2, [r6, #2056] movs r2, #1 - str r2, [r7, #2052] + str r2, [r6, #2052] bl NandcDelayns movs r2, #4 - str r2, [r7, #2048] - str r10, [r7, #2048] - str r10, [r7, #2048] - str r10, [r7, #2048] + str r2, [r6, #2048] + str r10, [r6, #2048] + str r10, [r6, #2048] + str r10, [r6, #2048] .L1607: mov r0, fp bl NandcFlashDeCs - ldrb r2, [r6] @ zero_extendqisi2 + ldrb r2, [r5] @ zero_extendqisi2 subs r3, r2, #1 uxtb r3, r3 cmp r3, #253 bhi .L1608 - ldrb r1, [r6, #2] @ zero_extendqisi2 - ldrb r3, [r6, #1] @ zero_extendqisi2 + ldrb r1, [r5, #2] @ zero_extendqisi2 + ldrb r3, [r5, #1] @ zero_extendqisi2 ldr r0, .L1725+8 str r1, [sp] - ldrb r1, [r6, #3] @ zero_extendqisi2 + ldrb r1, [r5, #3] @ zero_extendqisi2 str r1, [sp, #4] - ldrb r1, [r6, #4] @ zero_extendqisi2 + ldrb r1, [r5, #4] @ zero_extendqisi2 str r1, [sp, #8] - ldrb r1, [r6, #5] @ zero_extendqisi2 + ldrb r1, [r5, #5] @ zero_extendqisi2 str r1, [sp, #12] - add r1, r8, #1 + adds r1, r7, #1 bl printk .L1608: - cmp r8, #0 - bne .L1609 - ldrb r3, [r4, #1556] @ zero_extendqisi2 + cbnz r7, .L1609 + ldrb r3, [r4, #2068] @ zero_extendqisi2 subs r3, r3, #1 uxtb r3, r3 cmp r3, #253 bhi .L1664 ldr r3, .L1725+4 - ldrb r3, [r3, #1557] @ zero_extendqisi2 + ldrb r3, [r3, #2069] @ zero_extendqisi2 cmp r3, #255 beq .L1664 .L1609: - ldrb r3, [r6] @ zero_extendqisi2 - add r8, r8, #1 - adds r6, r6, #8 + ldrb r3, [r5] @ zero_extendqisi2 + adds r7, r7, #1 + adds r5, r5, #8 cmp r3, #181 itt eq moveq r3, #44 - strbeq r3, [r6, #-8] - cmp r8, #4 + strbeq r3, [r5, #-8] + cmp r7, #4 bne .L1612 - ldrb r3, [r4, #1556] @ zero_extendqisi2 + ldrb r3, [r4, #2068] @ zero_extendqisi2 cmp r3, #173 beq .L1613 ldr r3, .L1725+4 - ldr r0, [r3, #1736] + ldr r0, [r3, #2248] bl NandcSetDdrMode .L1613: - ldr r7, .L1725+4 + ldr r6, .L1725+4 mov r2, #852 movs r1, #0 - ldr r6, .L1725+12 - addw r0, r7, #698 + ldr r5, .L1725+12 + addw r0, r6, #1210 bl ftl_memset ldr r3, .L1725+16 - ldr r2, [r4, #1744] - ldrb r0, [r4, #1557] @ zero_extendqisi2 - cmp r2, r6 - str r3, [r4, #692] + ldr r2, [r4, #2256] + ldrb r0, [r4, #2069] @ zero_extendqisi2 + cmp r2, r5 + str r3, [r4, #1204] mov r3, #0 strb r3, [r4, #8] itt eq moveq r3, #1 - streq r3, [r7, #1728] + streq r3, [r6, #2240] cmp r0, #161 beq .L1615 cmp r0, #241 @@ -10575,37 +10526,37 @@ FlashInit: cmp r0, #220 bne .L1616 ldr r3, .L1725+4 - ldrb r3, [r3, #1559] @ zero_extendqisi2 + ldrb r3, [r3, #2071] @ zero_extendqisi2 cmp r3, #149 bne .L1616 .L1615: - ldrb lr, [r4, #1556] @ zero_extendqisi2 + ldrb r7, [r4, #2068] @ zero_extendqisi2 movs r3, #16 strb r3, [r4, #1] - movs r7, #1 - strb r3, [r5, #4014] - cmp lr, #152 + movs r6, #1 + strb r3, [r8, #1206] + cmp r7, #152 ldr r3, .L1725+20 - strb r7, [r4] + strb r6, [r4] ldr r1, .L1725 - strb lr, [r3, #3257] - strb r0, [r3, #3258] + strb r7, [r3, #3321] + strb r0, [r3, #3322] bne .L1618 - ldr lr, .L1725+4 - ldrsb lr, [lr, #1560] - cmp lr, #0 + ldr r7, .L1725+4 + ldrsb r7, [r7, #2072] + cmp r7, #0 blt .L1619 - movs r7, #24 - strb r7, [r1, #4014] + movs r6, #24 + strb r6, [r1, #1206] .L1618: - cmp r2, r6 + cmp r2, r5 beq .L1621 movw r1, #2049 cmp r2, r1 bne .L1622 .L1621: movs r2, #16 - strb r2, [r5, #4014] + strb r2, [r8, #1206] .L1622: cmp r0, #218 bne .L1623 @@ -10616,16 +10567,16 @@ FlashInit: bne .L1625 mov r2, #4096 .L1720: - strh r2, [r3, #3270] @ movhi - strb r0, [r3, #3258] + strh r2, [r3, #3334] @ movhi + strb r0, [r3, #3322] b .L1624 .L1625: cmp r0, #211 itttt eq moveq r2, #4096 - strheq r2, [r3, #3270] @ movhi + strheq r2, [r3, #3334] @ movhi moveq r2, #2 - strbeq r2, [r3, #3269] + strbeq r2, [r3, #3333] .L1624: ldr r1, .L1725+24 movs r2, #32 @@ -10633,36 +10584,36 @@ FlashInit: bl ftl_memcpy ldr r0, .L1725+16 movs r2, #32 - add r1, r0, #2784 + add r1, r0, #2848 bl ftl_memcpy .L1616: ldrb r3, [r4] @ zero_extendqisi2 - ldr r7, .L1725+4 + ldr r6, .L1725+4 cmp r3, #0 bne .L1626 bl FlashLoadPhyInfoInRam cbnz r0, .L1628 - ldr r3, [r7, #692] + ldr r3, [r6, #1204] ldrh r3, [r3, #16] lsrs r3, r3, #8 + lsls r7, r3, #31 and r0, r3, #7 - lsls r3, r3, #31 - strb r0, [r7, #1716] + strb r0, [r6, #2228] bmi .L1628 movs r3, #1 - strb r3, [r7, #1732] + strb r3, [r6, #2244] bl FlashSetInterfaceMode - ldrb r0, [r7, #1716] @ zero_extendqisi2 + ldrb r0, [r6, #2228] @ zero_extendqisi2 bl NandcSetMode .L1628: - ldr r3, [r4, #692] - ldr r7, .L1725+4 + ldr r3, [r4, #1204] + ldr r6, .L1725+4 ldrb r3, [r3, #26] @ zero_extendqisi2 strb r3, [r4, #140] bl FlashLoadPhyInfo cmp r0, #0 beq .L1626 - ldr r3, [r7, #1736] + ldr r3, [r6, #2248] cbz r3, .L1631 movs r0, #1 bl FlashSetInterfaceMode @@ -10671,29 +10622,29 @@ FlashInit: .L1726: .align 2 .L1725: - .word .LANCHOR2 + .word .LANCHOR4 .word .LANCHOR0 .word .LC96 .word 1446522928 .word .LANCHOR1+472 .word .LANCHOR1 - .word .LANCHOR1+3132 + .word .LANCHOR1+3196 .word .LANCHOR0+44 .L1631: - ldrb r0, [r7, #1716] @ zero_extendqisi2 + ldrb r0, [r6, #2228] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r7, #1716] @ zero_extendqisi2 + ldrb r0, [r6, #2228] @ zero_extendqisi2 .L1721: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 beq .L1626 movs r0, #1 - ldr r7, .L1727 + ldr r6, .L1727 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode - ldr r3, [r4, #692] + ldr r3, [r4, #1204] ldr r0, .L1727+4 ldrh r1, [r3, #14] bl printk @@ -10701,11 +10652,12 @@ FlashInit: adds r1, r0, #1 beq .L1683 bl FlashDieInfoInit - ldr r3, [r7, #692] + ldr r3, [r6, #1204] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault - ldr r3, [r7, #692] - ldrh r2, [r5, #1730] + ldr r2, .L1727+8 + ldr r3, [r6, #1204] + ldrh r2, [r2, #3266] ldrb r1, [r3, #9] @ zero_extendqisi2 addw r2, r2, #4095 cmp r1, r2, asr #12 @@ -10719,19 +10671,19 @@ FlashInit: bic r2, r2, #255 strh r2, [r3, #14] @ movhi .L1634: - ldrb r3, [r4, #1716] @ zero_extendqisi2 + ldrb r3, [r4, #2228] @ zero_extendqisi2 tst r3, #6 beq .L1635 bl FlashSavePhyInfo movs r0, #0 - ldr r1, [r5, #4004] + ldr r1, [r8, #1196] bl FlashDdrParaScan .L1635: bl FlashSavePhyInfo .L1626: - ldr r2, [r4, #692] - ldr r8, .L1727 - ldr r7, .L1727+8 + ldr r2, [r4, #1204] + ldr r7, .L1727 + ldr r6, .L1727+12 ldrb r3, [r2, #26] @ zero_extendqisi2 ldrh r0, [r2, #10] ldrb r9, [r2, #18] @ zero_extendqisi2 @@ -10740,34 +10692,34 @@ FlashInit: ubfx r1, r3, #7, #1 strb r1, [r4, #8] ubfx r1, r3, #3, #1 - strb r1, [r5, #4033] + strb r1, [r8, #1225] ubfx r1, r3, #4, #1 ubfx r3, r3, #8, #3 - strb r1, [r4, #1793] - strb r3, [r4, #1716] + strb r1, [r4, #2305] + strb r3, [r4, #2228] movs r3, #0 ldrb r1, [r2, #12] @ zero_extendqisi2 - str r3, [r5, #3996] + str r3, [r8, #1188] bl __aeabi_idiv mov r1, r0 mov r0, r9 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr r3, [r4, #692] + ldr r3, [r4, #1204] ldrh r2, [r3, #16] lsls r2, r2, #25 bpl .L1637 ldrb r0, [r3, #19] @ zero_extendqisi2 - ldrb r3, [r8, #699] @ zero_extendqisi2 - strb r0, [r8, #696] - strb r3, [r8, #697] - ldrb r3, [r8, #700] @ zero_extendqisi2 - strb r3, [r7, #4013] + ldrb r3, [r7, #1211] @ zero_extendqisi2 + strb r0, [r7, #1208] + strb r3, [r7, #1209] + ldrb r3, [r7, #1212] @ zero_extendqisi2 + strb r3, [r6, #1205] subs r3, r0, #1 cmp r3, #7 bhi .L1638 - ldr r3, .L1727+12 - str r3, [r7, #3996] + ldr r3, .L1727+16 + str r3, [r6, #1188] subs r3, r0, #5 cmp r3, #1 bls .L1639 @@ -10776,19 +10728,19 @@ FlashInit: .L1639: cmp r0, #7 mov r3, #1 - str r3, [r4, #1784] + str r3, [r4, #2296] beq .L1665 cmp r0, #8 b .L1724 .L1665: - ldr r3, .L1727+16 + ldr r3, .L1727+20 .L1642: subs r1, r3, #1 movs r2, #0 adds r3, r3, #31 .L1643: - ldrsb r7, [r1, #1]! - cmp r7, #0 + ldrsb r6, [r1, #1]! + cmp r6, #0 it eq addeq r2, r2, #1 cmp r1, r3 @@ -10802,13 +10754,13 @@ FlashInit: sub r3, r0, #17 cmp r3, #2 bhi .L1645 - ldr r3, .L1727+20 + ldr r3, .L1727+24 cmp r0, #19 - str r3, [r7, #3996] + str r3, [r6, #1188] ite ne movne r3, #7 moveq r3, #15 - strb r3, [r7, #4013] + strb r3, [r6, #1205] b .L1637 .L1645: cmp r0, #33 @@ -10817,12 +10769,12 @@ FlashInit: cmp r3, #1 bhi .L1648 .L1647: - ldr r3, .L1727+24 - str r3, [r5, #3996] + ldr r3, .L1727+28 + str r3, [r8, #1188] movs r3, #4 - strb r3, [r4, #697] + strb r3, [r4, #1209] movs r3, #7 - strb r3, [r5, #4013] + strb r3, [r8, #1205] b .L1637 .L1648: sub r3, r0, #67 @@ -10833,65 +10785,65 @@ FlashInit: cmp r2, #1 bhi .L1650 .L1649: - ldr r2, .L1727+24 + ldr r2, .L1727+28 cmp r0, #35 - str r2, [r5, #3996] + str r2, [r8, #1188] beq .L1651 cmp r0, #68 beq .L1651 - ldr r2, .L1727+8 + ldr r2, .L1727+12 movs r1, #7 - strb r1, [r2, #4013] + strb r1, [r2, #1205] b .L1652 .L1651: movs r2, #17 - strb r2, [r5, #4013] + strb r2, [r8, #1205] .L1652: cmp r3, #1 ite ls movls r3, #4 movhi r3, #5 - strb r3, [r4, #697] + strb r3, [r4, #1209] b .L1637 .L1650: cmp r0, #49 itt eq - ldreq r3, .L1727+28 - streq r3, [r7, #3996] + ldreq r3, .L1727+32 + streq r3, [r6, #1188] .L1637: - ldr r2, [r4, #1744] + ldr r2, [r4, #2256] ldr r3, .L1727 - cmp r2, r6 + cmp r2, r5 bne .L1654 ldrb r1, [r3, #140] @ zero_extendqisi2 cbz r1, .L1654 - ldr r3, [r3, #692] + ldr r3, [r3, #1204] movs r1, #0 strb r1, [r3, #18] .L1654: - ldrb r1, [r4, #1556] @ zero_extendqisi2 + ldrb r1, [r4, #2068] @ zero_extendqisi2 ldr r3, .L1727 cmp r1, #44 bne .L1655 - ldrb r1, [r3, #1732] @ zero_extendqisi2 + ldrb r1, [r3, #2244] @ zero_extendqisi2 cbz r1, .L1655 - cmp r2, r6 + cmp r2, r5 bne .L1656 ldrb r3, [r3, #140] @ zero_extendqisi2 cbnz r3, .L1655 .L1656: movs r0, #1 movs r3, #0 - strb r3, [r4, #1732] + strb r3, [r4, #2244] bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode .L1655: - ldrb r3, [r4, #1716] @ zero_extendqisi2 + ldrb r3, [r4, #2228] @ zero_extendqisi2 tst r3, #6 beq .L1657 ldr r2, .L1727 - ldrb r2, [r2, #1732] @ zero_extendqisi2 + ldrb r2, [r2, #2244] @ zero_extendqisi2 cbnz r2, .L1658 lsls r3, r3, #31 bmi .L1657 @@ -10899,30 +10851,30 @@ FlashInit: movs r0, #0 bl flash_enter_slc_mode movs r0, #0 - ldr r1, [r5, #4004] + ldr r1, [r8, #1196] bl FlashDdrParaScan movs r0, #0 bl flash_exit_slc_mode .L1657: - ldr r3, [r4, #692] + ldr r3, [r4, #1204] mov r8, #16 ldr r6, .L1727 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel - ldr r0, .L1727+32 - bl FlashReadIdbDataRaw ldr r0, .L1727+36 + bl FlashReadIdbDataRaw + ldr r0, .L1727+40 strb r8, [r4, #1] bl FlashTimingCfg - ldr r5, [r4, #692] + ldr r5, [r4, #1204] 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, #1556] + ldr r3, [r4, #2068] str r3, [r4, #112] - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 strh r3, [r4, #122] @ movhi ldrb r3, [r5, #13] @ zero_extendqisi2 strh r7, [r4, #126] @ movhi @@ -10969,10 +10921,10 @@ FlashInit: cmp r0, #7 .L1724: beq .L1665 - ldr r3, .L1727+40 + ldr r3, .L1727+44 b .L1642 .L1619: - strb r7, [r1, #4032] + strb r6, [r1, #1224] b .L1618 .L1683: add sp, sp, #20 @@ -10984,14 +10936,15 @@ FlashInit: .word .LANCHOR0 .word .LC97 .word .LANCHOR2 + .word .LANCHOR4 .word HynixReadRetrial - .word .LANCHOR0+726 + .word .LANCHOR0+1238 .word MicronReadRetrial .word ToshibaReadRetrial .word SamsungReadRetrial - .word .LANCHOR2+1936 + .word .LANCHOR2+3472 .word 150000 - .word .LANCHOR0+718 + .word .LANCHOR0+1230 .fnend .size FlashInit, .-FlashInit .align 1 @@ -11003,63 +10956,63 @@ FlashPageProgMsbFFData: .fnstart @ args = 0, pretend = 0, frame = 0 @ 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} + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r4, r2 - ldr r3, .L1750 - mov r8, r0 + ldr r2, .L1750 mov r9, r1 - ldr r2, [r3, #692] - mov r6, r3 - ldrb r7, [r2, #19] @ zero_extendqisi2 - ldrb r2, [r3, #140] @ zero_extendqisi2 - cbz r2, .L1730 - ldr r3, [r3, #1728] - cbnz r3, .L1729 + mov r8, r0 + ldr r3, [r2, #1204] + mov r5, r2 + ldrb r1, [r2, #140] @ zero_extendqisi2 + ldrb r3, [r3, #19] @ zero_extendqisi2 + cbz r1, .L1730 + ldr r2, [r2, #2240] + cbnz r2, .L1729 .L1730: - subs r3, r7, #5 - cmp r3, #3 + subs r2, r3, #5 + cmp r2, #2 bls .L1731 - cmp r7, #68 + cmp r3, #68 beq .L1731 - cmp r7, #35 + cmp r3, #35 beq .L1731 - cmp r7, #19 + cmp r3, #19 bne .L1729 .L1731: - ldr r5, .L1750+4 - movw r10, #65535 - mov fp, r5 -.L1733: - ldr r3, [r6, #692] + ldr r10, .L1750+8 + movw r7, #65535 + ldr r6, .L1750+4 +.L1735: + ldr r3, [r5, #1204] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1729 - add r3, r5, r4, lsl #1 - ldrh r3, [r3, #704] - cmp r3, r10 + bls .L1749 + add r3, r10, r4, lsl #1 + ldrh r3, [r3, #1216] + cmp r3, r7 bne .L1729 - cmp r7, #8 + movs r1, #255 mov r2, #32768 - ite eq - moveq r1, #0 - movne r1, #255 - ldr r0, [r5, #4016] + ldr r0, [r6, #1208] bl ftl_memset - ldr r2, [fp, #4016] + ldr r2, [r6, #1208] add r1, r4, r9 adds r4, r4, #1 mov r0, r8 mov r3, r2 uxth r4, r4 bl FlashProgPage - b .L1733 + b .L1735 +.L1749: + pop {r4, r5, r6, r7, r8, r9, r10, pc} .L1729: - pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + pop {r4, r5, r6, r7, r8, r9, r10, pc} .L1751: .align 2 .L1750: .word .LANCHOR0 + .word .LANCHOR4 .word .LANCHOR2 .fnend .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData @@ -11070,55 +11023,51 @@ FlashPageProgMsbFFData: .type FlashReadSlc2KPages, %function FlashReadSlc2KPages: .fnstart - @ args = 0, pretend = 0, frame = 32 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1803 + ldr r3, .L1802 push {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, .L1803+24 movs r7, #0 - str r2, [sp, #16] + ldrb r3, [r3, #481] @ zero_extendqisi2 + .pad #36 + sub sp, sp, #36 mov r4, r0 - ldr r2, [r3] - mov r10, r9 - str r1, [sp, #12] - str r3, [sp, #20] - str r2, [sp, #36] - ldr r2, .L1803+4 - ldrb r2, [r2, #481] @ zero_extendqisi2 - str r2, [sp, #8] + str r1, [sp, #16] + str r2, [sp, #20] + str r3, [sp, #12] .L1753: - ldr r3, [sp, #12] + ldr r3, [sp, #16] cmp r7, r3 - beq .L1802 - ldr r3, [sp, #12] - add r2, sp, #32 + beq .L1801 + ldr r3, [sp, #16] + add r2, sp, #28 mov r0, r4 - ldr r1, [sp, #16] + ldr r1, [sp, #20] subs r3, r3, r7 + ldr r8, .L1802+20 uxtb r3, r3 str r3, [sp] - add r3, sp, #28 + add r3, sp, #24 + mov fp, r8 bl LogAddr2PhyAddr - ldrb r2, [r9, #1717] @ zero_extendqisi2 - ldr r3, [sp, #28] + ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldr r3, [sp, #24] cmp r3, r2 bcc .L1754 mov r3, #-1 str r3, [r4] b .L1755 .L1754: - add r3, r3, r9 - mov r8, #0 - ldrb r6, [r3, #1720] @ zero_extendqisi2 + add r3, r3, r8 + mov r9, #0 + ldrb r6, [r3, #2232] @ zero_extendqisi2 mov r0, r6 bl NandcWaitFlashReady mov r0, r6 bl NandcFlashCs .L1756: - ldr r1, [sp, #32] + ldr r1, [sp, #28] mov r0, r6 bl FlashReadCmd mov r0, r6 @@ -11127,11 +11076,11 @@ FlashReadSlc2KPages: mov r0, r6 movs r1, #0 str r3, [sp] - ldr r2, [sp, #8] + ldr r2, [sp, #12] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1803+8 - ldrb r3, [r3, #4032] @ zero_extendqisi2 + ldr r3, .L1802+4 + ldrb r3, [r3, #1224] @ zero_extendqisi2 mov r5, r0 cbnz r3, .L1757 .L1760: @@ -11146,23 +11095,23 @@ FlashReadSlc2KPages: mov r5, #256 b .L1759 .L1758: - cmp r8, #10 - beq .L1780 - add r8, r8, #1 + cmp r9, #10 + beq .L1779 + add r9, r9, #1 b .L1756 .L1759: - cmp r8, #0 + cmp r9, #0 it ne movne r5, #256 b .L1761 -.L1780: +.L1779: mov r5, #256 .L1761: - mov r8, #0 + mov r9, #0 .L1762: - ldr r3, [sp, #32] + ldr r3, [sp, #28] mov r0, r6 - ldr r1, [r10, #4] + ldr r1, [fp, #4] add r1, r1, r3 bl FlashReadCmd mov r0, r6 @@ -11177,15 +11126,15 @@ FlashReadSlc2KPages: .L1764: str r2, [sp] mov r0, r6 - ldr r2, [sp, #8] + ldr r2, [sp, #12] movs r1, #0 bl NandcXferData - ldr r3, .L1803+8 - ldrb r2, [r3, #4032] @ zero_extendqisi2 - mov fp, r0 + ldr r3, .L1802+4 + ldrb r2, [r3, #1224] @ zero_extendqisi2 + mov r10, r0 cbnz r2, .L1765 .L1768: - cmp fp, #-1 + cmp r10, #-1 beq .L1766 b .L1767 .L1765: @@ -11193,28 +11142,28 @@ FlashReadSlc2KPages: bl flash_read_ecc cmp r0, #5 bls .L1768 - mov fp, #256 + mov r10, #256 b .L1767 .L1766: - cmp r8, #10 - beq .L1784 - add r8, r8, #1 + cmp r9, #10 + beq .L1783 + add r9, r9, #1 b .L1762 .L1767: - cmp r8, #0 + cmp r9, #0 it ne - movne fp, #256 + movne r10, #256 b .L1769 -.L1784: - mov fp, #256 +.L1783: + mov r10, #256 .L1769: mov r0, r6 bl NandcFlashDeCs - ldrb r3, [r10, #1792] @ zero_extendqisi2 - cmp r5, fp + ldrb r3, [r8, #2304] @ zero_extendqisi2 + cmp r5, r10 add r3, r3, r3, lsl #1 it cc - movcc r5, fp + movcc r5, r10 cmp r5, r3, asr #2 bls .L1770 adds r0, r5, #1 @@ -11243,12 +11192,12 @@ FlashReadSlc2KPages: adds r2, r3, #1 bne .L1755 ldr r1, [r4, #4] - ldr r0, .L1803+12 - ldrb r2, [r10, #1792] @ zero_extendqisi2 + ldr r0, .L1802+8 + ldrb r2, [r8, #2304] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cbz r1, .L1775 - ldr r0, .L1803+16 + ldr r0, .L1802+12 movs r2, #4 movs r3, #8 bl rknand_print_hex @@ -11256,31 +11205,23 @@ FlashReadSlc2KPages: ldr r1, [r4, #12] cbz r1, .L1755 movs r2, #4 - ldr r0, .L1803+20 + ldr r0, .L1802+16 mov r3, r2 bl rknand_print_hex .L1755: adds r7, r7, #1 adds r4, r4, #36 b .L1753 -.L1802: - ldr r3, [sp, #20] +.L1801: movs r0, #0 - ldr r2, [sp, #36] - ldr r3, [r3] - cmp r2, r3 - beq .L1778 - bl __stack_chk_fail -.L1778: - add sp, sp, #44 + add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1804: - .align 2 .L1803: - .word __stack_chk_guard + .align 2 +.L1802: .word .LANCHOR1 - .word .LANCHOR2 + .word .LANCHOR4 .word .LC98 .word .LC99 .word .LC100 @@ -11294,36 +11235,33 @@ FlashReadSlc2KPages: .type FlashReadPages, %function FlashReadPages: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1905 + ldr r3, .L1903 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #60 - sub sp, sp, #60 - ldr r3, [r3] - mov r10, r0 - ldr r5, .L1905+4 - str r1, [sp, #28] - str r3, [sp, #52] - ldr r3, .L1905+8 - str r2, [sp, #16] + .pad #52 + sub sp, sp, #52 ldrb r3, [r3, #481] @ zero_extendqisi2 + mov r10, r0 + ldr r5, .L1903+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, .L1849 + cbz r3, .L1847 bl FlashReadSlc2KPages - b .L1807 -.L1849: + b .L1898 +.L1847: mov r8, r3 str r3, [sp, #12] -.L1806: +.L1805: ldr r3, [sp, #12] ldr r2, [sp, #28] cmp r3, r2 - bcs .L1902 + bcs .L1900 ldr r3, [sp, #12] mov r9, #36 ldr r2, [sp, #12] @@ -11331,93 +11269,93 @@ FlashReadPages: mul r9, r9, r3 ldr r3, [sp, #28] subs r3, r3, r2 - add r2, sp, #48 + add r2, sp, #44 add r7, r10, r9 uxtb r3, r3 ldr fp, [r7, #4] mov r0, r7 str r3, [sp] - add r3, sp, #44 + add r3, sp, #40 bl LogAddr2PhyAddr - ldrb r2, [r5, #1717] @ zero_extendqisi2 - ldr r3, [sp, #44] + ldrb r2, [r5, #2229] @ zero_extendqisi2 + ldr r3, [sp, #40] mov r6, r0 cmp r3, r2 - bcc .L1808 + bcc .L1807 mov r3, #-1 str r3, [r10, r9] - b .L1809 -.L1808: + b .L1808 +.L1807: add r3, r3, r5 - ldrb r4, [r3, #1720] @ zero_extendqisi2 - ldr r3, .L1905+12 + ldrb r4, [r3, #2232] @ zero_extendqisi2 + ldr r3, .L1903+8 mov r0, r4 - ldrb r3, [r3, #4033] @ zero_extendqisi2 + ldrb r3, [r3, #1225] @ zero_extendqisi2 cmp r3, #0 it eq moveq r6, #0 bl NandcWaitFlashReady - ldr r3, .L1905+4 - ldr r3, [r3, #692] + ldr r3, .L1903+4 + ldr r3, [r3, #1204] ldrb r2, [r3, #19] @ zero_extendqisi2 subs r3, r2, #1 cmp r3, #7 - bhi .L1811 + bhi .L1810 subs r2, r2, #7 adds r1, r5, r4 cmp r2, #1 - ldr r2, .L1905+4 - ldrb r3, [r1, #710] @ zero_extendqisi2 + ldr r2, .L1903+4 + ldrb r3, [r1, #1222] @ zero_extendqisi2 add r2, r2, r4 it ls - ldrbls r3, [r1, #718] @ zero_extendqisi2 - ldrb r2, [r2, #1552] @ zero_extendqisi2 + ldrbls r3, [r1, #1230] @ zero_extendqisi2 + ldrb r2, [r2, #2064] @ zero_extendqisi2 cmp r2, r3 - beq .L1811 + beq .L1810 mov r0, r4 - ldrb r1, [r5, #699] @ zero_extendqisi2 - ldr r2, .L1905+16 + ldrb r1, [r5, #1211] @ zero_extendqisi2 + ldr r2, .L1903+12 bl HynixSetRRPara -.L1811: +.L1810: mov r0, r4 and r3, fp, #-2147483648 str r3, [sp, #20] bl NandcFlashCs ldr r3, [sp, #16] cmp r3, #1 - beq .L1813 + beq .L1812 ldr r3, [sp, #20] - cbz r3, .L1814 -.L1813: - ldr r3, .L1905+4 + cbz r3, .L1813 +.L1812: + ldr r3, .L1903+4 ldrb r3, [r3, #140] @ zero_extendqisi2 - cbz r3, .L1814 + cbz r3, .L1813 mov r0, r4 bl flash_enter_slc_mode -.L1816: +.L1815: mov fp, #0 - b .L1815 -.L1814: + b .L1814 +.L1813: mov r0, r4 bl flash_exit_slc_mode - b .L1816 -.L1903: + b .L1815 +.L1901: cmp r4, #255 - beq .L1850 -.L1817: - cbz r6, .L1819 + beq .L1848 +.L1816: + cbz r6, .L1818 ldr r2, [r5, #4] mov r0, r4 add r2, r2, r1 bl FlashReadDpCmd -.L1820: +.L1819: mov r0, r4 bl NandcWaitFlashReady - cbz r6, .L1818 + cbz r6, .L1817 mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1818: +.L1817: ldr r3, [r7, #12] mov r0, r4 movs r1, #0 @@ -11427,31 +11365,31 @@ FlashReadPages: bl NandcXferData ldrb r3, [r5, #8] @ zero_extendqisi2 mov ip, r0 - cbz r3, .L1852 + cbz r3, .L1850 cmp r0, #-1 - bne .L1852 + bne .L1850 movs r6, #0 strb fp, [r5, #8] -.L1815: - ldr r1, [sp, #48] +.L1814: + ldr r1, [sp, #44] adds r0, r1, #1 - bne .L1817 - b .L1903 -.L1819: + bne .L1816 + b .L1901 +.L1818: mov r0, r4 bl FlashReadCmd - b .L1820 -.L1850: + b .L1819 +.L1848: movs r6, #0 - b .L1818 -.L1852: + b .L1817 +.L1850: mov fp, ip - cbz r6, .L1822 - ldr r3, .L1905+4 + cbz r6, .L1821 + ldr r3, .L1903+4 mov r0, r4 str ip, [sp, #36] ldr r1, [r3, #4] - ldr r3, [sp, #48] + ldr r3, [sp, #44] add r1, r1, r3 bl FlashReadDpDataOutCmd add r3, r9, #36 @@ -11468,7 +11406,7 @@ FlashReadPages: it eq moveq r6, #0 mov r8, r0 -.L1822: +.L1821: mov r0, r4 str ip, [sp, #36] bl NandcFlashDeCs @@ -11476,18 +11414,18 @@ FlashReadPages: ldrb r3, [sp, #32] @ zero_extendqisi2 cmp ip, #-1 strb r3, [r5, #8] - bne .L1829 - ldrb r3, [r5, #1732] @ zero_extendqisi2 - cbnz r3, .L1824 -.L1828: - ldr r3, .L1905+12 - ldr r6, [r3, #3996] - cbnz r6, .L1825 - b .L1904 -.L1824: + 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] mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] ldr r6, [r3, #304] movs r3, #1 str r3, [sp] @@ -11496,189 +11434,180 @@ FlashReadPages: bl FlashDdrTunningRead cmp r0, #-1 mov fp, r0 - beq .L1827 - ldrb r3, [r5, #1792] @ zero_extendqisi2 + beq .L1826 + ldrb r3, [r5, #2304] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1854 -.L1827: + bls .L1852 +.L1826: ubfx r0, r6, #8, #8 bl NandcSetDdrPara cmp fp, #-1 - beq .L1828 - b .L1854 -.L1825: + beq .L1827 + b .L1852 +.L1824: mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] blx r6 cmp r0, #-1 mov fp, r0 - bne .L1830 - ldr r3, [r5, #692] + bne .L1829 + ldr r3, [r5, #1204] ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #1 cmp r3, #7 - bhi .L1831 + bhi .L1830 mov r0, r4 - ldrb r1, [r5, #699] @ zero_extendqisi2 - ldr r2, .L1905+16 + ldrb r1, [r5, #1211] @ zero_extendqisi2 + ldr r2, .L1903+12 movs r3, #0 bl HynixSetRRPara -.L1831: - ldr r1, [sp, #48] +.L1830: + ldr r1, [sp, #44] mov r0, r4 ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage ldr r1, [r7, #4] - ldrb r2, [r5, #1792] @ zero_extendqisi2 + ldrb r2, [r5, #2304] @ zero_extendqisi2 mov fp, r0 - ldr r0, .L1905+20 + ldr r0, .L1903+16 mov r3, fp bl printk cmp fp, #-1 - bne .L1830 + bne .L1829 ldrb r6, [r5, #140] @ zero_extendqisi2 - cbz r6, .L1832 + cbz r6, .L1831 ldr r3, [sp, #16] mov r0, r4 cmp r3, #1 - beq .L1833 + beq .L1832 ldr r3, [sp, #20] - cbz r3, .L1834 -.L1833: + cbz r3, .L1833 +.L1832: bl flash_enter_slc_mode - b .L1835 -.L1834: + b .L1834 +.L1833: bl flash_exit_slc_mode -.L1835: - ldr r3, .L1905+12 +.L1834: + ldr r3, .L1903+8 mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] ldr r2, [r7, #8] - ldr r6, [r3, #3996] + ldr r6, [r3, #1188] ldr r3, [r7, #12] blx r6 movs r6, #0 mov fp, r0 - b .L1836 -.L1904: + b .L1835 +.L1902: mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage mov fp, r0 - b .L1836 -.L1854: + b .L1835 +.L1852: movs r6, #0 -.L1829: - ldrb r3, [r5, #1792] @ zero_extendqisi2 +.L1828: + ldrb r3, [r5, #2304] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp fp, r3, asr #2 - bls .L1838 - ldr r3, .L1905+12 - ldr r3, [r3, #3996] - cbz r3, .L1856 -.L1836: + bls .L1837 + ldr r3, .L1903+8 + ldr r3, [r3, #1188] + cbz r3, .L1854 +.L1835: cmp fp, #-1 - beq .L1832 - b .L1838 -.L1856: + beq .L1831 + b .L1837 +.L1854: mov fp, #256 -.L1832: +.L1831: str fp, [r10, r9] - b .L1839 -.L1906: + b .L1838 +.L1904: .align 2 -.L1905: - .word __stack_chk_guard - .word .LANCHOR0 +.L1903: .word .LANCHOR1 - .word .LANCHOR2 - .word .LANCHOR0+702 + .word .LANCHOR0 + .word .LANCHOR4 + .word .LANCHOR0+1214 .word .LC101 -.L1830: +.L1829: movs r6, #0 -.L1838: +.L1837: cmp fp, #256 - beq .L1832 + beq .L1831 movs r3, #0 str r3, [r10, r9] -.L1839: +.L1838: ldr r3, [r10, r9] adds r2, r3, #1 - bne .L1841 + bne .L1840 ldr r1, [r7, #4] - ldr r0, .L1907 - ldrb r2, [r5, #1792] @ zero_extendqisi2 + ldr r0, .L1905 + ldrb r2, [r5, #2304] @ zero_extendqisi2 bl printk ldr r1, [r7, #12] - cbz r1, .L1841 + cbz r1, .L1840 movs r2, #4 - ldr r0, .L1907+4 + ldr r0, .L1905+4 mov r3, r2 bl rknand_print_hex -.L1841: - cbz r6, .L1843 - ldrb r3, [r5, #1792] @ zero_extendqisi2 +.L1840: + cbz r6, .L1842 + ldrb r3, [r5, #2304] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r8, r3, asr #2 - bls .L1844 - ldr r3, .L1907+8 - ldr r3, [r3, #3996] + bls .L1843 + ldr r3, .L1905+8 + ldr r3, [r3, #1188] cmp r3, #0 it eq moveq r8, #256 -.L1844: +.L1843: add r9, r9, #36 cmp r8, #-1 str r8, [r10, r9] - beq .L1843 + beq .L1842 cmp r8, #256 itt ne movne r3, #0 strne r3, [r10, r9] -.L1843: +.L1842: ldr r3, [sp, #12] add r3, r3, r6 str r3, [sp, #12] ldr r3, [sp, #16] cmp r3, #1 - beq .L1845 + beq .L1844 ldr r3, [sp, #20] - cbz r3, .L1809 -.L1845: + cbz r3, .L1808 +.L1844: ldrb r3, [r5, #140] @ zero_extendqisi2 - cbz r3, .L1809 + cbz r3, .L1808 mov r0, r4 bl flash_exit_slc_mode -.L1809: +.L1808: ldr r3, [sp, #12] adds r3, r3, #1 str r3, [sp, #12] - b .L1806 -.L1902: + b .L1805 +.L1900: movs r0, #0 -.L1807: - ldr r3, .L1907+12 - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L1848 - bl __stack_chk_fail -.L1848: - add sp, sp, #60 +.L1898: + add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1908: +.L1906: .align 2 -.L1907: +.L1905: .word .LC98 .word .LC100 - .word .LANCHOR2 - .word __stack_chk_guard + .word .LANCHOR4 .fnend .size FlashReadPages, .-FlashReadPages .align 1 @@ -11688,105 +11617,93 @@ FlashReadPages: .type FlashLoadFactorBbt, %function FlashLoadFactorBbt: .fnstart - @ args = 0, pretend = 0, frame = 56 + @ args = 0, pretend = 0, frame = 48 @ 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 #60 - sub sp, sp, #60 - ldr r9, .L1922+12 movs r1, #0 - ldr r7, .L1922 - movs r5, #0 - ldr r4, .L1922+4 - mov fp, #-1 - ldr r3, [r9] - mov r10, r5 - ldrh r2, [r7, #126] - addw r0, r4, #4036 - mov r8, r7 - str r3, [sp, #52] - ldrh r3, [r7, #124] - smulbb r3, r3, r2 + ldr r7, .L1919 + .pad #52 + sub sp, sp, #52 + ldr r4, .L1919+4 movs r2, #16 - uxth r6, r3 - bl ftl_memset - ldr r3, [r4, #4020] - str r9, [sp, #4] + movs r5, #0 + mov fp, #-1 + ldrh r3, [r7, #126] + addw r0, r4, #1228 + ldrh r6, [r7, #124] + mov r10, r5 + mov r8, r7 mov r9, r4 - str r5, [sp, #24] - str r3, [sp, #28] -.L1910: - ldrb r3, [r8, #1717] @ zero_extendqisi2 + smulbb r6, r6, r3 + bl ftl_memset + ldr r3, [r4, #1212] + uxth r6, r6 + str r5, [sp, #20] + str r3, [sp, #24] +.L1908: + ldrb r3, [r8, #2229] @ zero_extendqisi2 uxtb r7, r5 cmp r3, r7 - bls .L1921 + bls .L1918 mul ip, r6, r7 subs r4, r6, #1 sub r3, r6, #12 uxth r4, r4 -.L1911: +.L1909: cmp r4, r3 - ble .L1913 + ble .L1911 add r2, ip, r4 movs r1, #1 - add r0, sp, #16 - str r3, [sp, #12] + add r0, sp, #12 + str r3, [sp, #4] lsls r2, r2, #10 - str r2, [sp, #20] + str r2, [sp, #16] mov r2, r1 - str ip, [sp, #8] + str ip, [sp] bl FlashReadPages - ldr r2, [sp, #16] - ldr ip, [sp, #8] + ldr r2, [sp, #12] + ldr ip, [sp] adds r2, r2, #1 - ldr r3, [sp, #12] - beq .L1912 - ldr r2, [r9, #4020] + ldr r3, [sp, #4] + beq .L1910 + ldr r2, [r9, #1212] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L1912 + bne .L1910 mov r1, r7 - ldr r0, .L1922+8 + ldr r0, .L1919+8 mov r2, r4 add r10, r10, #1 bl printk - ldr r3, .L1922+4 + ldr r3, .L1919+4 uxth r10, r10 add r7, r3, r7, lsl #1 - strh r4, [r7, #4036] @ movhi - b .L1913 -.L1912: + strh r4, [r7, #1228] @ movhi + b .L1911 +.L1910: subs r4, r4, #1 uxth r4, r4 - b .L1911 -.L1913: - ldrb r3, [r8, #1717] @ zero_extendqisi2 + b .L1909 +.L1911: + ldrb r3, [r8, #2229] @ zero_extendqisi2 adds r5, r5, #1 cmp r3, r10 it eq moveq fp, #0 - b .L1910 -.L1921: - ldr r3, [sp, #4] + b .L1908 +.L1918: mov r0, fp - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L1917 - bl __stack_chk_fail -.L1917: - add sp, sp, #60 + add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1923: +.L1920: .align 2 -.L1922: +.L1919: .word .LANCHOR0 - .word .LANCHOR2 + .word .LANCHOR4 .word .LC102 - .word __stack_chk_guard .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 1 @@ -11802,209 +11719,199 @@ FlashProgSlc2KPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 sub sp, sp, #68 - mov r9, r2 - ldr r8, .L1955+28 - str r3, [sp, #8] + ldr r8, .L1951+20 movs r7, #0 - ldr r3, .L1955 - mov r6, r1 - mov r4, r0 - mov fp, r0 - ldr r2, [r3] str r3, [sp, #12] - str r2, [sp, #60] - ldr r2, .L1955+4 - ldrb r10, [r2, #481] @ zero_extendqisi2 -.L1925: + mov r6, r1 + ldr r3, .L1951 + 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 .L1954 + beq .L1950 subs r3, r6, r7 - add r2, sp, #16 - mov r0, fp + add r2, sp, #20 + mov r0, r10 mov r1, r9 uxtb r3, r3 str r3, [sp] - add r3, sp, #20 + add r3, sp, #24 bl LogAddr2PhyAddr - ldrb r2, [r8, #1717] @ zero_extendqisi2 - ldr r3, [sp, #20] + ldrb r2, [r8, #2229] @ zero_extendqisi2 + ldr r3, [sp, #24] cmp r3, r2 - bcc .L1926 + bcc .L1923 mov r3, #-1 - str r3, [fp] - b .L1927 -.L1926: + str r3, [r10] + b .L1924 +.L1923: add r3, r3, r8 - ldrb r5, [r3, #1720] @ zero_extendqisi2 + ldrb r5, [r3, #2232] @ zero_extendqisi2 mov r0, r5 bl NandcWaitFlashReady mov r0, r5 bl NandcFlashCs mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashProgFirstCmd - ldr r3, [fp, #12] - mov r2, r10 + ldr r3, [r10, #12] movs r1, #1 mov r0, r5 + ldr r2, [sp, #8] str r3, [sp] - ldr r3, [fp, #8] + ldr r3, [r10, #8] bl NandcXferData mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashProgSecondCmd mov r0, r5 bl NandcWaitFlashReady mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashReadStatus - ldr r3, [sp, #16] + ldr r3, [sp, #20] sbfx r0, r0, #0, #1 - str r0, [fp] + str r0, [r10] mov r0, r5 ldr r1, [r8, #4] add r1, r1, r3 bl FlashProgFirstCmd - ldr r3, [fp, #8] - cbz r3, .L1928 + ldr r3, [r10, #8] + cbz r3, .L1925 add r3, r3, #2048 -.L1928: - ldr r2, [fp, #12] - cbz r2, .L1929 +.L1925: + ldr r2, [r10, #12] + cbz r2, .L1926 adds r2, r2, #8 -.L1929: +.L1926: str r2, [sp] movs r1, #1 - mov r2, r10 + ldr r2, [sp, #8] mov r0, r5 bl NandcXferData - ldr r1, [r8, #4] + ldr r1, [fp, #4] mov r0, r5 - ldr r3, [sp, #16] + ldr r3, [sp, #20] add r1, r1, r3 bl FlashProgSecondCmd mov r0, r5 bl NandcWaitFlashReady mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashReadStatus lsls r2, r0, #31 mov r0, r5 itt mi movmi r3, #-1 - strmi r3, [fp] + strmi r3, [r10] bl NandcFlashDeCs -.L1927: +.L1924: adds r7, r7, #1 - add fp, fp, #36 - b .L1925 -.L1954: - ldr r3, [sp, #8] - cbnz r3, .L1943 -.L1939: + add r10, r10, #36 + b .L1922 +.L1950: ldr r3, [sp, #12] - movs r0, #0 - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L1940 - bl __stack_chk_fail -.L1943: - ldr r7, .L1955+8 - mov r8, #0 - mov r10, r7 -.L1932: - cmp r8, r6 - beq .L1939 + cmp r3, #0 + beq .L1949 + ldr r8, .L1951+24 + mov r10, #0 + mov fp, r8 +.L1929: + cmp r10, r6 + beq .L1949 ldr r3, [r4] adds r3, r3, #1 - bne .L1933 + bne .L1930 ldr r1, [r4, #4] - ldr r0, .L1955+12 + ldr r0, .L1951+4 bl printk - b .L1934 -.L1933: - rsb r3, r8, r6 + b .L1931 +.L1930: + rsb r3, r10, r6 mov r1, r9 - add r2, sp, #16 + add r2, sp, #20 mov r0, r4 uxtb r3, r3 str r3, [sp] - add r3, sp, #20 + add r3, sp, #24 + mov r7, r4 bl LogAddr2PhyAddr - ldr r2, [r7, #4024] + ldr r2, [r8, #1216] movs r3, #0 - mov lr, r4 str r3, [r2] - ldr r2, [r7, #4028] + ldr r2, [r8, #1220] str r3, [r2] - ldmia lr!, {r0, r1, r2, r3} - add r5, sp, #24 + ldmia r7!, {r0, r1, r2, r3} + add r5, sp, #28 stmia r5!, {r0, r1, r2, r3} - ldmia lr!, {r0, r1, r2, r3} + ldmia r7!, {r0, r1, r2, r3} stmia r5!, {r0, r1, r2, r3} - add r0, sp, #24 - ldr r3, [lr] + add r0, sp, #28 + ldr r3, [r7] movs r1, #1 mov r2, r9 str r3, [r5] - ldr r3, [r7, #4024] - str r3, [sp, #32] - ldr r3, [r7, #4028] + ldr r3, [r8, #1216] str r3, [sp, #36] + ldr r3, [r8, #1220] + str r3, [sp, #40] bl FlashReadPages - ldr r5, [sp, #24] + ldr r5, [sp, #28] adds r3, r5, #1 - bne .L1935 - ldr r0, .L1955+16 + bne .L1932 + ldr r0, .L1951+8 ldr r1, [r4, #4] bl printk str r5, [r4] -.L1935: +.L1932: ldr r3, [r4, #12] - cbz r3, .L1936 + cbz r3, .L1933 ldr r2, [r3] - ldr r3, [r10, #4028] + ldr r3, [fp, #1220] ldr r3, [r3] cmp r2, r3 - beq .L1936 - ldr r0, .L1955+20 + beq .L1933 + ldr r0, .L1951+12 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L1936: +.L1933: ldr r3, [r4, #8] - cbz r3, .L1934 + cbz r3, .L1931 ldr r2, [r3] - ldr r3, [r10, #4024] + ldr r3, [fp, #1216] ldr r3, [r3] cmp r2, r3 - beq .L1934 - ldr r0, .L1955+24 + beq .L1931 + ldr r0, .L1951+16 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L1934: - add r8, r8, #1 +.L1931: + add r10, r10, #1 adds r4, r4, #36 - b .L1932 -.L1940: + b .L1929 +.L1949: + movs r0, #0 add sp, sp, #68 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1956: +.L1952: .align 2 -.L1955: - .word __stack_chk_guard +.L1951: .word .LANCHOR1 - .word .LANCHOR2 .word .LC103 .word .LC104 .word .LC105 .word .LC106 .word .LANCHOR0 + .word .LANCHOR4 .fnend .size FlashProgSlc2KPages, .-FlashProgSlc2KPages .align 1 @@ -12019,60 +11926,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 r5, .L1968 - ldr r7, .L1968+4 - ldr r3, [r5, #1776] - subw r8, r7, #1946 - ldr r9, [r5, #1800] + ldr r3, .L1964 + ldr r7, .L1964+4 + ldr r5, .L1964+8 + ldr r2, [r3, #3312] + subw r8, r7, #2458 + ldr r9, [r3, #3336] mov r10, r8 - str r3, [r5, #4060] - str r9, [r5, #4064] -.L1958: - ldrh r3, [r8, #1826] + str r2, [r5, #1252] + str r9, [r5, #1256] +.L1954: + ldrh r3, [r8, #2338] cmp r6, r3 - bcs .L1967 - ldrh r4, [r8, #1870] + bcs .L1963 + ldrh r4, [r8, #2382] movw fp, #61664 movw r3, #65535 strh r3, [r7, #2]! @ movhi subs r4, r4, #1 uxth r4, r4 -.L1959: - ldrh r3, [r10, #1870] +.L1955: + ldrh r3, [r10, #2382] sub r2, r3, #16 cmp r4, r2 - ble .L1961 + ble .L1957 mla r3, r3, r6, r4 movs r1, #1 - ldr r0, .L1968+8 + ldr r0, .L1964+12 mov r2, r1 lsls r3, r3, #10 - str r3, [r5, #4056] + str r3, [r5, #1248] bl FlashReadPages - ldr r3, [r5, #4052] + ldr r3, [r5, #1244] adds r3, r3, #1 - beq .L1960 + beq .L1956 ldrh r3, [r9] cmp r3, fp - bne .L1960 + bne .L1956 strh r4, [r7] @ movhi - b .L1961 -.L1960: + b .L1957 +.L1956: subs r4, r4, #1 uxth r4, r4 - b .L1959 -.L1961: + b .L1955 +.L1957: adds r6, r6, #1 - b .L1958 -.L1967: + b .L1954 +.L1963: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1969: +.L1965: .align 2 -.L1968: +.L1964: .word .LANCHOR2 - .word .LANCHOR0+1946 - .word .LANCHOR2+4052 + .word .LANCHOR0+2458 + .word .LANCHOR4 + .word .LANCHOR4+1244 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 1 @@ -12084,82 +11993,73 @@ FtlGetLastWrittenPage: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #108 - sub sp, sp, #108 - ldr r6, .L1982 + ldr r3, .L1977 cmp r1, #1 - mov r9, r1 - lsl r7, r0, #10 - mov r1, #1 - mov r0, sp - ldr r3, [r6] - mov r2, r9 - mov r8, #0 - str r8, [sp, #8] - str r3, [sp, #100] - ldr r3, .L1982+4 - ite eq - ldrheq r4, [r3, #1874] - ldrhne r4, [r3, #1872] - add r3, sp, #36 - str r3, [sp, #12] + 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] + mov r8, r1 + it ne + ldrhne r4, [r3, #2384] + lsls r6, r0, #10 + add r3, sp, #40 + add r0, sp, #4 subs r5, r4, #1 + str r3, [sp, #16] + movs r1, #1 + mov r2, r8 uxth r5, r5 + movs r7, #0 + str r7, [sp, #12] sxth r3, r5 - orrs r3, r3, r7 - str r3, [sp, #4] + orrs r3, r3, r6 + str r3, [sp, #8] bl FlashReadPages - ldr r3, [sp, #36] + ldr r3, [sp, #40] adds r3, r3, #1 - bne .L1973 -.L1974: - sxth r3, r8 + bne .L1969 +.L1970: + sxth r3, r7 sxth r4, r5 cmp r3, r4 - bgt .L1973 + bgt .L1969 add r4, r4, r3 - mov r0, sp + add r0, sp, #4 movs r1, #1 - mov r2, r9 + mov r2, r8 add r4, r4, r4, lsr #31 asrs r4, r4, #1 sxth r3, r4 - orrs r3, r3, r7 - str r3, [sp, #4] + orrs r3, r3, r6 + str r3, [sp, #8] bl FlashReadPages - ldr r3, [sp, #36] - adds r3, r3, #1 - bne .L1975 ldr r3, [sp, #40] adds r3, r3, #1 - bne .L1975 - ldr r3, [sp] + bne .L1971 + ldr r3, [sp, #44] adds r3, r3, #1 - beq .L1975 - subs r5, r4, #1 - uxth r5, r5 - b .L1974 -.L1975: + bne .L1971 + ldr r3, [sp, #4] + adds r3, r3, #1 + beq .L1971 + subs r4, r4, #1 + uxth r5, r4 + b .L1970 +.L1971: adds r3, r4, #1 - uxth r8, r3 - b .L1974 -.L1973: - ldr r2, [sp, #100] + uxth r7, r3 + b .L1970 +.L1969: sxth r0, r5 - ldr r3, [r6] - cmp r2, r3 - beq .L1978 - bl __stack_chk_fail -.L1978: - add sp, sp, #108 + add sp, sp, #104 @ sp needed - pop {r4, r5, r6, r7, r8, r9, pc} -.L1983: + pop {r4, r5, r6, r7, r8, pc} +.L1978: .align 2 -.L1982: - .word __stack_chk_guard +.L1977: .word .LANCHOR0 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -12172,169 +12072,171 @@ FtlLoadBbt: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - ldr r4, .L2013 - ldr r7, .L2013+4 - ldr r3, [r4, #1776] - mov r8, r4 - ldr r6, [r4, #1800] - str r3, [r4, #4060] - str r6, [r4, #4064] + 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] + mov r9, r4 + str r3, [r4, #1252] + str r7, [r4, #1256] bl FtlBbtMemInit - ldrh r5, [r7, #1870] - subs r5, r5, #1 - uxth r5, r5 -.L1985: - ldrh r3, [r7, #1870] + ldrh r6, [r5, #2382] + subs r6, r6, #1 + uxth r6, r6 +.L1980: + ldrh r3, [r5, #2382] subs r3, r3, #48 - cmp r5, r3 - ble .L1988 + cmp r6, r3 + ble .L1983 movs r1, #1 - ldr r0, .L2013+8 - lsls r3, r5, #10 - str r3, [r4, #4056] + ldr r0, .L2008+8 + lsls r3, r6, #10 + str r3, [r4, #1248] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #4052] + ldr r3, [r4, #1244] adds r3, r3, #1 - bne .L1986 + bne .L1981 movs r1, #1 - ldr r3, [r8, #4056] - ldr r0, .L2013+8 + ldr r3, [r9, #1248] + ldr r0, .L2008+8 mov r2, r1 adds r3, r3, #1 - str r3, [r8, #4056] + str r3, [r9, #1248] bl FlashReadPages -.L1986: - ldr r3, [r4, #4052] +.L1981: + ldr r3, [r4, #1244] + adds r3, r3, #1 + beq .L1982 + ldrh r2, [r7] + movw r3, #61649 + cmp r2, r3 + bne .L1982 + ldr r3, [r7, #4] + strh r6, [r5, #2448] @ movhi + str r3, [r5, #2456] + ldrh r3, [r7, #8] + strh r3, [r5, #2452] @ movhi + b .L1983 +.L1982: + subs r6, r6, #1 + uxth r6, r6 + b .L1980 +.L1983: + ldrh r3, [r5, #2448] + movw r2, #65535 + ldr r6, .L2008+4 + cmp r3, r2 + beq .L1997 + ldrh r3, [r6, #2452] + cmp r3, r2 + beq .L1987 + movs r1, #1 + ldr r0, .L2008+8 + lsls r3, r3, #10 + str r3, [r4, #1248] + mov r2, r1 + bl FlashReadPages + ldr r3, [r4, #1244] adds r3, r3, #1 beq .L1987 - ldrh r2, [r6] + ldrh r2, [r7] movw r3, #61649 cmp r2, r3 bne .L1987 - ldr r3, [r6, #4] - strh r5, [r7, #1936] @ movhi - str r3, [r7, #1944] - ldrh r3, [r6, #8] - strh r3, [r7, #1940] @ movhi - b .L1988 -.L1987: - subs r5, r5, #1 - uxth r5, r5 - b .L1985 -.L1988: - ldrh r3, [r7, #1936] - movw r2, #65535 - ldr r5, .L2013+4 - cmp r3, r2 - beq .L2002 - ldrh r3, [r5, #1940] - cmp r3, r2 - beq .L1992 - movs r1, #1 - ldr r0, .L2013+8 - lsls r3, r3, #10 - str r3, [r4, #4056] - mov r2, r1 - bl FlashReadPages - ldr r3, [r4, #4052] - adds r3, r3, #1 - beq .L1992 - ldrh r2, [r6] - movw r3, #61649 - cmp r2, r3 - bne .L1992 - ldr r3, [r6, #4] - ldr r2, [r5, #1944] + ldr r3, [r7, #4] + ldr r2, [r6, #2456] cmp r3, r2 itttt hi - strhi r3, [r5, #1944] - ldrhhi r2, [r5, #1940] - ldrhhi r3, [r6, #8] - strhhi r2, [r5, #1936] @ movhi + strhi r3, [r6, #2456] + ldrhhi r2, [r6, #2452] + ldrhhi r3, [r7, #8] + strhhi r2, [r6, #2448] @ movhi it hi - strhhi r3, [r5, #1940] @ movhi -.L1992: - ldrh r0, [r7, #1936] + strhhi r3, [r6, #2452] @ movhi +.L1987: + ldrh r0, [r5, #2448] movs r1, #1 bl FtlGetLastWrittenPage - movw r8, #61649 - uxth r5, r0 + movw r9, #61649 + uxth r6, r0 adds r0, r0, #1 - strh r0, [r7, #1938] @ movhi -.L1994: - sxth r3, r5 + strh r0, [r5, #2450] @ movhi +.L1989: + sxth r3, r6 cmp r3, #0 - blt .L1999 - ldrh r2, [r7, #1936] + blt .L1994 + ldrh r2, [r5, #2448] movs r1, #1 - ldr r0, .L2013+8 + ldr r0, .L2008+8 orr r3, r3, r2, lsl #10 - str r3, [r4, #4056] - ldr r3, [r4, #1776] + str r3, [r4, #1248] + ldr r3, [r8, #3312] mov r2, r1 - str r3, [r4, #4060] + str r3, [r4, #1252] bl FlashReadPages - ldr r3, [r4, #4052] + ldr r3, [r4, #1244] adds r3, r3, #1 - beq .L1995 - ldrh r3, [r6] - cmp r3, r8 - bne .L1995 -.L1999: - ldrh r2, [r6, #10] - ldrh r0, [r6, #12] - ldr r3, .L2013+4 - strh r2, [r7, #1942] @ movhi + beq .L1990 + ldrh r3, [r7] + cmp r3, r9 + bne .L1990 +.L1994: + ldrh r2, [r7, #10] + ldrh r0, [r7, #12] + ldr r3, .L2008+4 + strh r2, [r5, #2454] @ movhi movw r2, #65535 cmp r0, r2 - bne .L1996 - b .L1997 -.L1995: - subs r5, r5, #1 - uxth r5, r5 - b .L1994 -.L1996: - ldr r2, [r3, #1800] + bne .L1991 + b .L1992 +.L1990: + subs r6, r6, #1 + uxth r6, r6 + b .L1989 +.L1991: + ldr r2, [r3, #2312] cmp r0, r2 - beq .L1997 - ldrh r3, [r3, #1814] + beq .L1992 + ldrh r3, [r3, #2326] lsrs r3, r3, #2 cmp r2, r3 - bcs .L1997 + bcs .L1992 cmp r0, r3 - bcs .L1997 + bcs .L1992 bl FtlSysBlkNumInit -.L1997: - ldr r6, .L2013+12 - movs r5, #0 -.L2000: - ldrh r3, [r7, #1826] - cmp r5, r3 - bcs .L2012 - ldrh r2, [r4, #1864] - ldr r1, [r4, #4060] - ldr r0, [r6, #4]! +.L1992: + ldr r7, .L2008+12 + movs r6, #0 +.L1995: + ldrh r3, [r5, #2338] + cmp r6, r3 + bcs .L2007 + ldrh r2, [r8, #3400] + ldr r1, [r4, #1252] + ldr r0, [r7, #4]! lsls r2, r2, #2 - mla r1, r5, r2, r1 + mla r1, r6, r2, r1 bl ftl_memcpy - adds r5, r5, #1 - b .L2000 -.L2012: + adds r6, r6, #1 + b .L1995 +.L2007: movs r0, #0 - pop {r4, r5, r6, r7, r8, pc} -.L2002: + pop {r3, r4, r5, r6, r7, r8, r9, pc} +.L1997: mov r0, #-1 - pop {r4, r5, r6, r7, r8, pc} -.L2014: + pop {r3, r4, r5, r6, r7, r8, r9, pc} +.L2009: .align 2 -.L2013: - .word .LANCHOR2 +.L2008: + .word .LANCHOR4 .word .LANCHOR0 - .word .LANCHOR2+4052 - .word .LANCHOR0+1960 + .word .LANCHOR4+1244 + .word .LANCHOR0+2472 + .word .LANCHOR2 .fnend .size FtlLoadBbt, .-FtlLoadBbt .align 1 @@ -12349,64 +12251,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, .L2100 + ldr r5, .L2095 .pad #36 sub sp, sp, #36 - ldr r4, .L2100+4 + ldr r4, .L2095+4 mov r1, r6 - ldr r2, [r5, #1900] - ldr r0, [r4, #1856] + ldr r2, [r5, #2412] + ldr r0, [r4, #3392] mov r9, r4 - strh r6, [r5, #1918] @ movhi + strh r6, [r5, #2430] @ movhi lsls r2, r2, #2 - strh r6, [r4, #1912] @ movhi + strh r6, [r4, #3448] @ movhi bl ftl_memset - ldr r2, [r5, #1900] + ldr r2, [r5, #2412] mov r1, r6 - ldr r0, [r4, #1828] + ldr r0, [r4, #3364] lsls r2, r2, #1 bl ftl_memset - ldrh r2, [r5, #1892] + ldrh r2, [r5, #2404] mov r1, r6 - ldr r0, [r4, #1840] + ldr r0, [r4, #3376] lsls r2, r2, #2 bl ftl_memset - ldrh r2, [r5, #1892] - ldr r0, [r5, #1920] + ldrh r2, [r5, #2404] + ldr r0, [r5, #2432] mov r1, r6 lsls r2, r2, #1 bl ftl_memset - add r0, r4, #24 + add r0, r4, #536 movs r1, #255 movs r2, #16 bl ftl_memset - ldrh r3, [r5, #1812] + ldrh r3, [r5, #2324] str r5, [sp, #12] mov r5, r4 str r3, [sp, #4] -.L2016: - ldr r6, .L2100 +.L2011: + ldr r6, .L2095 ldr r2, [sp, #4] - ldrh r3, [r6, #1814] + ldrh r3, [r6, #2326] mov r0, r6 cmp r3, r2 - bls .L2058 - ldr r1, [r4, #632] + bls .L2053 + ldr r1, [r4, #1144] mov r10, #36 - ldrh r8, [r6, #1804] + ldrh r8, [r6, #2316] movs r7, #0 - ldr r2, [r4, #1764] + ldr r2, [r4, #3300] str r1, [sp, #8] - ldr r3, [r4, #628] - ldrh r1, [r6, #1884] + ldr r3, [r4, #1140] + ldrh r1, [r6, #2396] str r7, [sp] str r1, [sp, #16] - add r1, r6, #1832 + addw r1, r6, #2344 str r1, [sp, #20] -.L2059: +.L2054: uxth r1, r7 cmp r1, r8 - bcs .L2095 + bcs .L2090 str r3, [sp, #28] ldr r3, [sp, #20] ldr r1, [sp, #4] @@ -12417,7 +12319,7 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr r2, [sp, #24] ldr r3, [sp, #28] - cbnz r0, .L2017 + cbnz r0, .L2012 ldr r1, [sp] ldr r6, [sp] mla r0, r10, r1, r2 @@ -12436,40 +12338,40 @@ FtlScanSysBlk: adds r1, r1, #1 uxth r1, r1 str r1, [sp] -.L2017: +.L2012: adds r7, r7, #1 - b .L2059 -.L2095: + b .L2054 +.L2090: ldr r3, [sp] cmp r3, #0 - beq .L2021 + beq .L2016 mov r1, r3 - ldr r0, [r4, #1764] + ldr r0, [r4, #3300] movs r2, #1 - ldr r8, .L2100 + ldr r8, .L2095 bl FlashReadPages movs r3, #0 str r3, [sp, #8] -.L2022: +.L2017: ldrh r3, [sp, #8] ldr r2, [sp] cmp r3, r2 - bcs .L2021 + bcs .L2016 ldr r3, [sp, #8] mov r10, #36 mul r10, r10, r3 - ldr r3, [r4, #1764] + ldr r3, [r4, #3300] 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 .L2024 + bne .L2019 mov fp, #16 movw r3, #65535 -.L2023: - ldr r0, [r4, #1764] +.L2018: + ldr r0, [r4, #3300] movs r1, #1 str r3, [sp, #16] add r0, r0, r10 @@ -12481,69 +12383,69 @@ FtlScanSysBlk: ldrh r2, [r7] ldr r3, [sp, #16] cmp r2, r3 - bne .L2025 - ldr r3, [r9, #1764] + bne .L2020 + ldr r3, [r9, #3300] mov r2, #-1 str r2, [r3, r10] - b .L2024 -.L2025: - ldr r2, [r5, #1764] + b .L2019 +.L2020: + ldr r2, [r5, #3300] ldr r2, [r2, r10] adds r2, r2, #1 - bne .L2024 + bne .L2019 add fp, fp, #-1 uxth fp, fp cmp fp, #0 - bne .L2023 -.L2024: - ldr r3, [r5, #1764] + bne .L2018 +.L2019: + ldr r3, [r5, #3300] ldr r3, [r3, r10] adds r3, r3, #1 - beq .L2027 - ldr r2, [r5, #-8] + beq .L2022 + ldr r2, [r5, #504] ldr r3, [r7, #4] adds r1, r2, #1 - beq .L2028 + beq .L2023 cmp r2, r3 - bhi .L2029 -.L2028: + bhi .L2024 +.L2023: adds r2, r3, #1 itt ne addne r2, r3, #1 - strne r2, [r9, #-8] -.L2029: + strne r2, [r9, #504] +.L2024: ldrh r2, [r7] movw r1, #61604 cmp r2, r1 - beq .L2031 - bhi .L2032 + beq .L2026 + bhi .L2027 movw r3, #61574 cmp r2, r3 - bne .L2030 + bne .L2025 ldr r3, [sp, #12] ldr r2, [sp, #12] - ldrh r10, [r3, #1892] - ldrh r0, [r2, #1918] - ldr r2, [r9, #1840] + ldrh r10, [r3, #2404] + ldrh r0, [r2, #2430] + ldr r2, [r9, #3376] add lr, r10, #-1 uxth r3, lr rsb lr, r0, lr str r2, [sp, #16] - b .L2045 -.L2032: + b .L2040 +.L2027: movw r3, #61634 cmp r2, r3 - beq .L2034 + beq .L2029 movw r3, #65535 cmp r2, r3 - bne .L2030 + bne .L2025 mov r0, r6 - b .L2094 -.L2034: + b .L2089 +.L2029: ldr r3, [sp, #12] - ldrh r0, [r4, #1912] - ldr r2, [r4, #1856] - ldr r1, [r3, #1900] + ldrh r0, [r4, #3448] + ldr r2, [r4, #3392] + ldr r1, [r3, #2412] str r2, [sp, #16] uxth lr, r1 add r3, lr, #-1 @@ -12551,279 +12453,279 @@ FtlScanSysBlk: add lr, lr, #-1 uxth r3, r3 sxth lr, lr -.L2036: +.L2031: sxth ip, r3 cmp ip, lr - ble .L2096 + ble .L2091 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 .L2037 + bls .L2032 ldr r2, [sp, #16] ldr r2, [r2] - cbnz r2, .L2038 + cbnz r2, .L2033 cmp r0, r1 itt ne addne r0, r0, #1 - strhne r0, [r9, #1912] @ movhi -.L2038: + strhne r0, [r9, #3448] @ movhi +.L2033: movs r1, #0 uxth lr, r3 -.L2039: +.L2034: uxth r2, r1 cmp r2, lr - bcs .L2097 - ldr r0, [r5, #1856] + bcs .L2092 + ldr r0, [r5, #3392] 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, #1828] + ldr r0, [r5, #3364] add r10, r0, r2, lsl #1 ldrh r10, [r10, #2] strh r10, [r0, r2, lsl #1] @ movhi - b .L2039 -.L2097: + b .L2034 +.L2092: ldr r1, [r7, #4] - ldr r2, [r4, #1856] + ldr r2, [r4, #3392] str r1, [r2, fp] sxth r1, r3 - ldr r2, [r4, #1828] + ldr r2, [r4, #3364] cmp r1, #0 strh r6, [r2, ip, lsl #1] @ movhi - bge .L2041 - b .L2030 -.L2037: + bge .L2036 + b .L2025 +.L2032: subs r3, r3, #1 uxth r3, r3 - b .L2036 -.L2096: + b .L2031 +.L2091: cmp ip, #0 - bge .L2072 - b .L2030 -.L2041: - ldrh r0, [r5, #1912] - ldr r2, [r8, #1900] + bge .L2067 + b .L2025 +.L2036: + ldrh r0, [r5, #3448] + ldr r2, [r8, #2412] subs r2, r2, r0 subs r2, r2, #1 sxth r2, r2 cmp r1, r2 - bgt .L2030 -.L2072: - ldr r2, [r4, #1856] + bgt .L2025 +.L2067: + ldr r2, [r4, #3392] sxth r3, r3 ldr r1, [r7, #4] adds r0, r0, #1 - strh r0, [r4, #1912] @ movhi + strh r0, [r4, #3448] @ movhi str r1, [r2, r3, lsl #2] - ldr r2, [r4, #1828] - b .L2092 -.L2051: + ldr r2, [r4, #3364] + b .L2087 +.L2046: ldr r1, [sp, #16] lsl fp, ip, #2 ldr r2, [r7, #4] ldr r1, [r1, ip, lsl #2] cmp r2, r1 - bhi .L2098 + bhi .L2093 subs r3, r3, #1 uxth r3, r3 -.L2045: +.L2040: sxth ip, r3 cmp ip, lr - bgt .L2051 - b .L2050 -.L2101: + bgt .L2046 + b .L2045 +.L2096: .align 2 -.L2100: +.L2095: .word .LANCHOR0 .word .LANCHOR2 -.L2098: +.L2093: ldr r2, [sp, #16] ldr r2, [r2] - cbnz r2, .L2047 + cbnz r2, .L2042 cmp r0, r10 itt ne addne r0, r0, #1 - strhne r0, [r8, #1918] @ movhi -.L2047: + strhne r0, [r8, #2430] @ movhi +.L2042: movs r1, #0 uxth lr, r3 -.L2048: +.L2043: uxth r2, r1 cmp r2, lr - bcs .L2099 - ldr r0, [r4, #1840] + bcs .L2094 + ldr r0, [r4, #3376] 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, #1920] + ldr r0, [r8, #2432] add r10, r0, r2, lsl #1 ldrh r10, [r10, #2] strh r10, [r0, r2, lsl #1] @ movhi - b .L2048 -.L2099: - ldr r2, [r5, #1840] + b .L2043 +.L2094: + ldr r2, [r5, #3376] ldr r1, [r7, #4] str r1, [r2, fp] - ldr r2, .L2102 - ldr r2, [r2, #1920] + ldr r2, .L2097 + ldr r2, [r2, #2432] strh r6, [r2, ip, lsl #1] @ movhi -.L2050: +.L2045: sxth r3, r3 cmp r3, #0 - blt .L2030 - ldrh r2, [r8, #1892] - ldrh r1, [r8, #1918] + blt .L2025 + ldrh r2, [r8, #2404] + ldrh r1, [r8, #2430] subs r2, r2, #1 subs r2, r2, r1 sxth r2, r2 cmp r3, r2 - bgt .L2030 + bgt .L2025 adds r1, r1, #1 - ldr r2, [r9, #1840] - strh r1, [r8, #1918] @ movhi + ldr r2, [r9, #3376] + strh r1, [r8, #2430] @ movhi ldr r1, [r7, #4] str r1, [r2, r3, lsl #2] - ldr r2, [r8, #1920] -.L2092: + ldr r2, [r8, #2432] +.L2087: strh r6, [r2, r3, lsl #1] @ movhi - b .L2030 -.L2031: - ldrh r1, [r9, #24] + b .L2025 +.L2026: + ldrh r1, [r9, #536] movw r2, #65535 cmp r1, r2 - bne .L2052 - strh r6, [r5, #24] @ movhi - b .L2093 -.L2052: - ldrh r0, [r5, #28] + bne .L2047 + strh r6, [r5, #536] @ movhi + b .L2088 +.L2047: + ldrh r0, [r5, #540] cmp r0, r2 - beq .L2053 + beq .L2048 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L2053: - ldr r2, [r9, #32] +.L2048: + ldr r2, [r9, #544] ldr r3, [r7, #4] cmp r2, r3 - bcs .L2054 - ldrh r3, [r5, #24] - strh r6, [r5, #24] @ movhi - strh r3, [r5, #28] @ movhi + bcs .L2049 + ldrh r3, [r5, #536] + strh r6, [r5, #536] @ movhi + strh r3, [r5, #540] @ movhi ldr r3, [r7, #4] -.L2093: - str r3, [r5, #32] - b .L2030 -.L2054: - strh r6, [r5, #28] @ movhi - b .L2030 -.L2027: +.L2088: + str r3, [r5, #544] + b .L2025 +.L2049: + strh r6, [r5, #540] @ movhi + b .L2025 +.L2022: ldrb r1, [r8, #140] @ zero_extendqisi2 mov r0, r6 - cbz r1, .L2055 -.L2094: + cbz r1, .L2050 +.L2089: movs r1, #0 -.L2055: +.L2050: bl FtlFreeSysBlkQueueIn -.L2030: +.L2025: ldr r3, [sp, #8] adds r3, r3, #1 str r3, [sp, #8] - b .L2022 -.L2021: + b .L2017 +.L2016: ldr r6, [sp, #4] adds r6, r6, #1 uxth r3, r6 str r3, [sp, #4] - b .L2016 + b .L2011 +.L2053: + ldr r3, .L2097+4 + ldr r5, [r3, #3364] + ldrh r2, [r5] + cbz r2, .L2055 .L2058: - ldr r3, .L2102+4 - ldr r5, [r3, #1828] + ldr r5, [r0, #2432] + ldr r3, .L2097 ldrh r2, [r5] - cbz r2, .L2060 -.L2063: - ldr r5, [r0, #1920] - ldr r3, .L2102 - ldrh r2, [r5] - cbz r2, .L2061 - b .L2084 -.L2060: - ldrh r3, [r3, #1912] + cbz r2, .L2056 + b .L2079 +.L2055: + ldrh r3, [r3, #3448] cmp r3, #0 - beq .L2063 - ldr r6, [r6, #1900] -.L2064: + beq .L2058 + ldr r6, [r6, #2412] +.L2059: uxth r3, r2 sxth r1, r3 cmp r1, r6 - bcs .L2063 + bcs .L2058 ldrh r7, [r5, r1, lsl #1] adds r2, r2, #1 cmp r7, #0 - beq .L2064 + beq .L2059 mov lr, #0 -.L2065: - ldr r5, [r0, #1900] +.L2060: + ldr r5, [r0, #2412] sxth r2, r3 cmp r2, r5 - bcs .L2063 - ldr r5, [r4, #1828] + bcs .L2058 + ldr r5, [r4, #3364] 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, #1856] + ldr r5, [r4, #3392] ldr r7, [r5, r2, lsl #2] str r7, [r5, r6, lsl #2] - ldr r5, [r4, #1828] + ldr r5, [r4, #3364] strh lr, [r5, r2, lsl #1] @ movhi - b .L2065 -.L2061: - ldrh r1, [r3, #1918] - cbz r1, .L2084 - ldrh r6, [r3, #1892] -.L2068: + b .L2060 +.L2056: + ldrh r1, [r3, #2430] + cbz r1, .L2079 + ldrh r6, [r3, #2404] +.L2063: uxth r3, r2 sxth r1, r3 cmp r1, r6 - bge .L2084 + bge .L2079 ldrh r7, [r5, r1, lsl #1] adds r2, r2, #1 cmp r7, #0 - beq .L2068 - ldr r5, .L2102 + beq .L2063 + ldr r5, .L2097 mov ip, #0 -.L2069: - ldrh r6, [r0, #1892] +.L2064: + ldrh r6, [r0, #2404] sxth r2, r3 cmp r2, r6 - bge .L2084 - ldr r6, [r5, #1920] + bge .L2079 + ldr r6, [r5, #2432] 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, #1840] + ldr r6, [r4, #3376] ldr r7, [r6, r2, lsl #2] str r7, [r6, lr, lsl #2] - ldr r6, [r5, #1920] + ldr r6, [r5, #2432] strh ip, [r6, r2, lsl #1] @ movhi - b .L2069 -.L2084: + b .L2064 +.L2079: movs r0, #0 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2103: +.L2098: .align 2 -.L2102: +.L2097: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -12835,272 +12737,279 @@ FtlScanSysBlk: .type FtlLoadSysInfo, %function FtlLoadSysInfo: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ 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} movs r1, #0 - ldr r4, .L2132 - .pad #36 - sub sp, sp, #36 - ldr r7, .L2132+4 - ldr r3, [r4, #1776] - mov r5, r4 - ldrh r2, [r7, #1812] - ldr r0, [r4, #-220] - str r3, [r4, #4060] - ldr r3, [r4, #1800] + ldr r4, .L2127 + .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 - str r3, [r4, #4064] + str r3, [r5, #1256] bl ftl_memset - ldrh r0, [r4, #24] + ldrh r0, [r4, #536] movw r3, #65535 cmp r0, r3 - bne .L2105 -.L2116: + bne .L2100 +.L2111: mov r0, #-1 - b .L2106 -.L2105: + b .L2101 +.L2100: movs r1, #1 - mov r6, r5 + mov r8, r5 bl FtlGetLastWrittenPage - ldrh r8, [r5, #24] - uxth r4, r0 + ldrh r10, [r4, #536] + uxth r6, r0 adds r0, r0, #1 - strh r0, [r5, #26] @ movhi -.L2107: - sxth r3, r4 + strh r0, [r4, #538] @ movhi +.L2102: + sxth r3, r6 cmp r3, #0 - blt .L2115 - sxth r9, r8 + blt .L2110 + sxth fp, r10 movs r1, #1 - ldr r0, .L2132+8 - orr r3, r3, r9, lsl #10 - str r3, [r5, #4056] - ldr r3, [r5, #1776] + ldr r0, .L2127+12 + orr r3, r3, fp, lsl #10 + str r3, [r5, #1248] + ldr r3, [r4, #3312] mov r2, r1 - ldr fp, .L2132+4 - str r3, [r5, #4060] + ldr r9, .L2127 + str r3, [r5, #1252] bl FlashReadPages ldrb r3, [r7] @ zero_extendqisi2 - cbz r3, .L2108 - ldr r3, [r6, #4064] + cmp r3, #0 + beq .L2103 + ldr r3, [r8, #1256] ldr r2, [r3, #12] - cbz r2, .L2108 - ldr r10, [r6, #4060] - ldrh r1, [fp, #1882] - str r2, [sp, #28] - mov r0, r10 - str r3, [sp, #24] + cmp r2, #0 + beq .L2103 + ldr ip, [r8, #1252] + str r3, [sp, #32] + ldr r3, .L2127+4 + mov r0, ip + str r2, [sp, #36] + str ip, [sp, #28] + ldrh r1, [r3, #2394] bl js_hash - ldr r2, [sp, #28] + ldr r2, [sp, #36] cmp r2, r0 - beq .L2108 - ldr r3, [sp, #24] - cbnz r4, .L2109 - ldrh r1, [r6, #28] - cmp r9, r1 - beq .L2109 + beq .L2103 + ldr ip, [sp, #28] + ldr r3, [sp, #32] + cbnz r6, .L2104 + ldrh r1, [r9, #540] + cmp fp, r1 + beq .L2104 ldr r0, [r3] - ldrh r1, [r6, #24] + ldrh r1, [r9, #536] str r0, [sp] ldr r0, [r3, #4] str r0, [sp, #4] ldr r3, [r3, #8] str r2, [sp, #12] - ldr r0, .L2132+12 + ldr r0, .L2127+16 str r3, [sp, #8] - ldr r3, [r10] + ldr r3, [ip] str r3, [sp, #16] - ldr r2, [r6, #4052] - ldr r3, [r6, #4056] + ldr r3, [r8, #1248] + ldr r2, [r8, #1244] bl printk - ldrh r8, [r6, #28] - ldrh r4, [fp, #1874] - b .L2111 -.L2109: + ldr r3, .L2127+4 + ldrh r10, [r9, #540] + ldrh r6, [r3, #2386] + b .L2106 +.L2104: mov r3, #-1 - str r3, [r5, #4052] -.L2108: - ldr r3, [r5, #4052] + str r3, [r5, #1244] +.L2103: + ldr r3, [r5, #1244] adds r3, r3, #1 - beq .L2111 - ldr r3, [r6, #1776] - ldr r2, .L2132+16 + beq .L2106 + ldr r3, [r4, #3312] + ldr r2, .L2127+20 ldr r3, [r3] cmp r3, r2 - bne .L2111 - ldr r3, [r6, #1800] + bne .L2106 + ldr r3, .L2127 + ldr r3, [r3, #3336] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L2111 -.L2115: - ldr r4, .L2132+4 + bne .L2106 +.L2110: + ldr r6, .L2127 movs r2, #48 - ldr r1, [r5, #4060] - addw r0, r4, #4068 - ldr r6, .L2132 + ldr r1, [r5, #1252] + add r0, r6, #236 + ldr r8, .L2127+4 bl ftl_memcpy - ldrh r2, [r7, #1812] - ldr r1, [r5, #4060] - ldr r0, [r5, #-220] + ldrh r2, [r7, #2324] + ldr r1, [r5, #1252] + ldr r0, [r4, #292] adds r1, r1, #48 lsls r2, r2, #1 bl ftl_memcpy - ldrh r2, [r7, #1812] - ldr r3, [r5, #4060] + ldrh r2, [r7, #2324] + ldr r3, [r5, #1252] add r1, r2, #24 - ldr r0, [r5, #-44] + ldr r0, [r4, #468] ubfx r1, r1, #1, #30 lsrs r2, r2, #3 adds r2, r2, #4 add r1, r3, r1, lsl #2 bl ftl_memcpy - ldrh r3, [r7, #1916] - cbz r3, .L2113 - ldrh r2, [r4, #1812] - ldr r1, [r6, #4060] - ldr r0, [r6, #1852] + ldrh r3, [r7, #2428] + cbz r3, .L2108 + ldrh r2, [r8, #2324] + ldr r0, [r6, #3388] lsrs r3, r2, #3 add r3, r3, r2, lsl #1 - ldrh r2, [r4, #1908] + ldr r2, .L2127+8 adds r3, r3, #52 ubfx r3, r3, #2, #14 - lsls r2, r2, #2 + ldr r1, [r2, #1252] + ldrh r2, [r8, #2420] add r1, r1, r3, lsl #2 + lsls r2, r2, #2 bl ftl_memcpy - b .L2113 -.L2111: - subs r4, r4, #1 - uxth r4, r4 - b .L2107 -.L2113: - ldr r2, [r7, #4068] - ldr r3, .L2132+16 - ldr r6, .L2132+4 + b .L2108 +.L2106: + subs r6, r6, #1 + uxth r6, r6 + b .L2102 +.L2108: + ldr r2, [r4, #236] + ldr r3, .L2127+20 + ldr r6, .L2127 cmp r2, r3 - bne .L2116 - ldrb r1, [r6, #4078] @ zero_extendqisi2 - ldrh r2, [r6, #1826] - ldrh r3, [r6, #4076] - cmp r1, r2 - ldr r4, .L2132 - strh r3, [r5, #30] @ movhi - bne .L2116 - ldrh r2, [r6, #1872] - ldrh r1, [r6, #1878] - ldrh r0, [r6, #1942] - muls r2, r3, r2 - str r3, [r4, #4088] - str r2, [r6, #1932] - muls r2, r1, r2 - ldrh r1, [r6, #1804] - str r2, [r6, #1912] - ldr r2, [r6, #1816] - subs r0, r2, r0 - subs r0, r0, r3 + bne .L2111 + ldrb r0, [r6, #246] @ zero_extendqisi2 + ldrh r1, [r7, #2338] + ldrh r2, [r6, #244] + 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] + muls r1, r2, r1 + str r1, [r3, #2444] + muls r1, r0, r1 + ldrh r0, [r3, #2454] + str r1, [r3, #2424] + ldr r1, [r3, #2328] + subs r0, r1, r0 + ldrh r1, [r3, #2316] + subs r0, r0, r2 bl __aeabi_uidiv - ldrh r3, [r6, #4084] - ldrh r1, [r6, #4082] + ldrh r3, [r6, #252] + ldrh r1, [r6, #250] lsrs r2, r3, #6 - strh r2, [r4, #-198] @ movhi - ldrh r2, [r6, #4086] + strh r2, [r6, #314] @ movhi + ldrh r2, [r6, #254] and r3, r3, #63 - strb r3, [r4, #-194] - ldrb r3, [r6, #4079] @ zero_extendqisi2 - strh r2, [r4, #-152] @ movhi - ldrh r2, [r6, #4088] - strb r3, [r4, #-192] + 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, [r4, #-200] @ movhi - strh r3, [r4, #40] @ movhi + strh r1, [r6, #312] @ movhi + strh r3, [r6, #552] @ movhi movs r3, #0 - strh r3, [r4, #42] @ movhi - strb r3, [r4, #46] - strb r3, [r4, #48] - str r3, [r4, #-20] - strh r0, [r4, #20] @ movhi + 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, [r4, #-146] - ldrb r2, [r6, #4080] @ zero_extendqisi2 - strh r0, [r4, #-150] @ movhi - strb r2, [r4, #-144] - ldrh r2, [r6, #4090] - strh r2, [r4, #-104] @ movhi - ldrh r2, [r6, #4092] + strb r2, [r6, #366] + ldrb r2, [r6, #248] @ zero_extendqisi2 + strh r0, [r6, #362] @ movhi + strb r2, [r6, #368] + ldrh r2, [r6, #258] + strh r2, [r6, #408] @ movhi + ldrh r2, [r6, #260] lsrs r0, r2, #6 and r2, r2, #63 - strb r2, [r4, #-98] - ldrb r2, [r6, #4081] @ zero_extendqisi2 - strh r0, [r4, #-102] @ movhi - strb r2, [r4, #-96] - movw r2, #4100 - str r3, [r4, #-32] - ldr r2, [r6, r2] - str r3, [r4, #-40] - str r3, [r4, #-24] - stmia r4, {r2, r3} - str r3, [r4, #12] - str r3, [r4, #-28] - movw r3, #4108 - ldr r3, [r6, r3] - ldr r2, [r4, #-8] + 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] + str r3, [r6, #484] + ldr r3, [r6, #276] + str r2, [r6, #512] + ldr r2, [r6, #504] cmp r3, r2 + ldr r2, [r4, #508] it hi - strhi r3, [r4, #-8] - movw r3, #4104 - ldr r2, [r5, #-4] - ldr r3, [r7, r3] + strhi r3, [r6, #504] + ldr r3, [r4, #272] cmp r3, r2 itt hi - ldrhi r2, .L2132 - strhi r3, [r2, #-4] + ldrhi r2, .L2127 + strhi r3, [r2, #508] movw r3, #65535 cmp r1, r3 - beq .L2119 - ldr r0, .L2132+20 + beq .L2114 + ldr r0, .L2127+24 bl make_superblock -.L2119: - ldrh r2, [r5, #-152] +.L2114: + ldrh r2, [r4, #360] movw r3, #65535 cmp r2, r3 - beq .L2120 - ldr r0, .L2132+24 + beq .L2115 + ldr r0, .L2127+28 bl make_superblock -.L2120: - ldrh r2, [r5, #-104] +.L2115: + ldrh r2, [r4, #408] movw r3, #65535 cmp r2, r3 - beq .L2121 - ldr r0, .L2132+28 + beq .L2116 + ldr r0, .L2127+32 bl make_superblock -.L2121: - ldrh r2, [r5, #40] +.L2116: + ldrh r2, [r4, #552] movw r3, #65535 cmp r2, r3 - beq .L2122 - ldr r0, .L2132+32 + beq .L2117 + ldr r0, .L2127+36 bl make_superblock -.L2122: +.L2117: movs r0, #0 -.L2106: - add sp, sp, #36 +.L2101: + add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2133: +.L2128: .align 2 -.L2132: +.L2127: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+4052 + .word .LANCHOR4 + .word .LANCHOR4+1244 .word .LC107 .word 1179929683 - .word .LANCHOR2-200 - .word .LANCHOR2-152 - .word .LANCHOR2-104 - .word .LANCHOR2+40 + .word .LANCHOR2+312 + .word .LANCHOR2+360 + .word .LANCHOR2+408 + .word .LANCHOR2+552 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 1 @@ -13110,81 +13019,78 @@ FtlLoadSysInfo: .type FtlDumpBlockInfo, %function FtlDumpBlockInfo: .fnstart - @ args = 0, pretend = 0, frame = 80 + @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2151 - ubfx r0, r0, #10, #16 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #108 - sub sp, sp, #108 - ldr r3, [r3] + ubfx r0, r0, #10, #16 + .pad #100 + sub sp, sp, #100 mov r8, r1 - ldr r4, .L2151+4 - ldr r7, .L2151+8 - str r3, [sp, #100] bl P2V_block_in_plane - ldr r1, .L2151+12 - ldrh r9, [r4, #1872] + ldr r4, .L2145 + ldr r7, .L2145+4 + ldr r1, .L2145+8 + ldrh r9, [r4, #2384] mov r6, r0 - ldr r0, .L2151+16 + ldr r0, .L2145+12 bl printk - ldr r3, [r7, #-220] + ldr r3, [r7, #292] mov r1, r6 - ldr r0, .L2151+20 + ldr r0, .L2145+16 ldrh r2, [r3, r6, lsl #1] bl printk - add r0, sp, #104 - strh r6, [r0, #-52]! @ movhi + add r0, sp, #96 + strh r6, [r0, #-48]! @ movhi bl make_superblock ldrb r5, [r4, #140] @ zero_extendqisi2 str r7, [sp, #44] - cbz r5, .L2135 + cbz r5, .L2130 cmp r8, #0 - bne .L2147 + bne .L2141 mov r0, r6 bl ftl_get_blk_mode cmp r0, #1 mov r5, r0 - bne .L2135 - ldrh r9, [r4, #1874] - b .L2135 -.L2147: + bne .L2130 + ldrh r9, [r4, #2386] + b .L2130 +.L2141: movs r5, #0 -.L2135: - ldr r0, .L2151+24 +.L2130: + ldr r0, .L2145+20 mov r1, r5 mov r2, r9 - ldrh r3, [r4, #1872] + ldrh r3, [r4, #2384] bl printk - ldr r10, .L2151+4 + ldr r10, .L2145 movs r6, #0 -.L2136: - ldr r3, .L2151+8 +.L2131: + ldr r3, .L2145+4 movs r2, #0 - ldrh fp, [r10, #1804] - add lr, sp, #66 - ldrh r0, [r10, #1884] + ldrh fp, [r10, #2316] + add lr, sp, #62 + ldrh r0, [r10, #2396] mov r8, #36 - ldr r3, [r3, #1764] + ldr r3, [r3, #3300] mov r4, r2 movw ip, #65535 str r3, [sp, #28] - ldr r3, .L2151+8 - ldr r3, [r3, #628] + ldr r3, .L2145+4 + ldr r3, [r3, #1140] str r3, [sp, #32] - ldrh r3, [r10, #1882] + ldrh r3, [r10, #2394] str r3, [sp, #36] - ldr r3, .L2151+8 - ldr r3, [r3, #632] + ldr r3, .L2145+4 + ldr r3, [r3, #1144] str r3, [sp, #40] -.L2137: +.L2132: uxth r3, r2 cmp r3, fp - bcs .L2149 + bcs .L2143 ldrh r3, [lr, #2]! cmp r3, ip - beq .L2138 + beq .L2133 ldr r1, [sp, #28] orr r3, r6, r3, lsl #10 ldr r7, [sp, #32] @@ -13207,25 +13113,25 @@ FtlDumpBlockInfo: uxth r4, r4 add r3, r3, r7 str r3, [r1, #12] -.L2138: +.L2133: adds r2, r2, #1 - b .L2137 -.L2149: - ldr r3, .L2151+8 + b .L2132 +.L2143: + ldr r3, .L2145+4 mov r1, r4 mov r2, r5 mov r8, #0 mov fp, #36 - ldr r0, [r3, #1764] + ldr r0, [r3, #3300] bl FlashReadPages -.L2142: +.L2137: uxth r3, r8 cmp r3, r4 - bcs .L2150 + bcs .L2144 ldr r3, [sp, #44] mul r2, fp, r8 - ldrh r1, [sp, #52] - ldr ip, [r3, #1764] + ldrh r1, [sp, #48] + ldr ip, [r3, #3300] add r8, r8, #1 add lr, ip, r2 ldr r3, [lr, #12] @@ -13241,33 +13147,25 @@ FtlDumpBlockInfo: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2151+28 + ldr r0, .L2145+24 str r3, [sp, #20] ldr r2, [ip, r2] ldr r3, [lr, #4] bl printk - b .L2142 -.L2150: + b .L2137 +.L2144: adds r6, r6, #1 uxth r6, r6 cmp r6, r9 - bne .L2136 -.L2144: - ldr r3, .L2151 + bne .L2131 +.L2139: movs r0, #0 - ldr r2, [sp, #100] - ldr r3, [r3] - cmp r2, r3 - beq .L2145 - bl __stack_chk_fail -.L2145: - add sp, sp, #108 + add sp, sp, #100 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2152: +.L2146: .align 2 -.L2151: - .word __stack_chk_guard +.L2145: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3+16 @@ -13284,66 +13182,62 @@ FtlDumpBlockInfo: .type FtlScanAllBlock, %function FtlScanAllBlock: .fnstart - @ args = 0, pretend = 0, frame = 72 + @ args = 0, pretend = 0, frame = 64 @ 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 #100 - sub sp, sp, #100 - ldr r5, .L2170 + .pad #92 + sub sp, sp, #92 + ldr r0, .L2163 mov r8, #0 - ldr r0, .L2170+4 - ldr r1, .L2170+8 - ldr r3, [r5] - str r3, [sp, #92] + ldr r1, .L2163+4 bl printk - str r5, [sp, #36] - ldr r5, .L2170+12 + ldr r5, .L2163+8 mov r7, r5 -.L2154: - ldr r3, .L2170+16 +.L2148: + ldr r3, .L2163+12 uxth r4, r8 - ldrh r3, [r3, #1814] + ldrh r3, [r3, #2326] cmp r3, r4 - bls .L2166 - add r9, sp, #96 + bls .L2159 + add r9, sp, #88 mov r0, r4 mov fp, #36 movw r10, #65535 - strh r4, [r9, #-52]! @ movhi + strh r4, [r9, #-48]! @ movhi bl ftl_get_blk_mode - ldr r2, [r5, #-220] + ldr r2, [r5, #292] mov r1, r4 ldrh r2, [r2, r4, lsl #1] mov r3, r0 - ldr r0, .L2170+20 + ldr r0, .L2163+16 bl printk mov r0, r9 bl make_superblock - ldr r3, .L2170+16 + ldr r3, .L2163+12 movs r2, #0 - ldr r9, [r5, #632] - ldrh lr, [r3, #1804] + ldr r9, [r5, #1144] + ldrh lr, [r3, #2316] mov r4, r2 - ldr r3, [r5, #1764] - str r3, [sp, #24] - add ip, sp, #58 - ldr r3, [r5, #628] + ldr r3, [r5, #3300] str r3, [sp, #28] - ldr r3, .L2170+16 - ldrh r0, [r3, #1882] - ldrh r3, [r3, #1884] + add ip, sp, #54 + ldr r3, [r5, #1140] str r3, [sp, #32] -.L2155: + ldr r3, .L2163+12 + ldrh r0, [r3, #2394] + ldrh r3, [r3, #2396] + str r3, [sp, #36] +.L2149: uxth r3, r2 cmp r3, lr - bcs .L2167 + bcs .L2160 ldrh r3, [ip, #2]! cmp r3, r10 - beq .L2156 - ldr r1, [sp, #24] + beq .L2150 + ldr r1, [sp, #28] lsls r3, r3, #10 - ldr r6, [sp, #28] + ldr r6, [sp, #32] mla r1, fp, r4, r1 str r3, [r1, #4] mov r3, r0 @@ -13353,7 +13247,7 @@ FtlScanAllBlock: bic r3, r3, #3 add r3, r3, r6 str r3, [r1, #8] - ldr r3, [sp, #32] + ldr r3, [sp, #36] muls r3, r4, r3 add r4, r4, #1 it mi @@ -13362,23 +13256,23 @@ FtlScanAllBlock: uxth r4, r4 add r3, r3, r9 str r3, [r1, #12] -.L2156: +.L2150: adds r2, r2, #1 - b .L2155 -.L2167: - ldr r0, [r7, #1764] + b .L2149 +.L2160: + ldr r0, [r7, #3300] mov r1, r4 movs r2, #0 mov r9, #0 bl FlashReadPages mov r10, #36 -.L2160: +.L2154: uxth r3, r9 cmp r3, r4 - bcs .L2168 + bcs .L2161 mul r2, r10, r9 - ldr ip, [r7, #1764] - ldrh r1, [sp, #44] + ldr ip, [r7, #3300] + ldrh r1, [sp, #40] add r9, r9, #1 add lr, ip, r2 ldr r3, [lr, #12] @@ -13394,26 +13288,26 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2170+24 + ldr r0, .L2163+20 str r3, [sp, #20] ldr r2, [ip, r2] ldr r3, [lr, #4] bl printk - b .L2160 -.L2168: - ldr r0, [r7, #1764] + b .L2154 +.L2161: + ldr r0, [r7, #3300] mov r1, r4 movs r2, #1 mov r9, #0 bl FlashReadPages mov r10, #36 -.L2162: +.L2156: uxth r3, r9 cmp r3, r4 - bcs .L2169 + bcs .L2162 mul r2, r10, r9 - ldr ip, [r7, #1764] - ldrh r1, [sp, #44] + ldr ip, [r7, #3300] + ldrh r1, [sp, #40] add r9, r9, #1 add lr, ip, r2 ldr r3, [lr, #12] @@ -13429,31 +13323,23 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2170+28 + ldr r0, .L2163+24 str r3, [sp, #20] ldr r2, [ip, r2] ldr r3, [lr, #4] bl printk - b .L2162 -.L2169: + b .L2156 +.L2162: add r8, r8, #1 - b .L2154 -.L2166: - ldr r3, [sp, #36] + b .L2148 +.L2159: movs r0, #0 - ldr r2, [sp, #92] - ldr r3, [r3] - cmp r2, r3 - beq .L2165 - bl __stack_chk_fail -.L2165: - add sp, sp, #100 + add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2171: +.L2164: .align 2 -.L2170: - .word __stack_chk_guard +.L2163: .word .LC108 .word .LANCHOR3+36 .word .LANCHOR2 @@ -13472,42 +13358,43 @@ ftl_scan_all_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - .pad #24 - sub sp, sp, #24 - ldr r6, .L2178 + 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, .L2178+4 - ldr r4, .L2178+8 - ldrh r1, [r6, #1870] - ldrh r2, [r6, #1872] + ldr r0, .L2171+4 + ldr r4, .L2171+8 + ldrh r1, [r6, #2382] + ldrh r2, [r6, #2384] bl printk -.L2173: - ldrh r3, [r6, #1870] + ldr r8, .L2171+28 +.L2166: + ldrh r3, [r6, #2382] cmp r7, r3 - bcs .L2175 - lsl r8, r7, #10 + bcs .L2168 + lsl r9, r7, #10 movs r5, #0 -.L2176: - ldrh r3, [r6, #1872] +.L2169: + ldrh r3, [r6, #2384] cmp r5, r3 - bcs .L2177 - add r3, r5, r8 - str r3, [r4, #4056] - ldr r3, [r4, #1776] + bcs .L2170 + add r3, r5, r9 + str r3, [r4, #1248] + ldr r3, [r8, #3312] movs r2, #0 movs r1, #1 - ldr r0, .L2178+12 - str r2, [r4, #4052] + ldr r0, .L2171+12 + str r2, [r4, #1244] adds r5, r5, #1 - str r3, [r4, #4060] - ldr r3, [r4, #1800] - str r3, [r4, #4064] + str r3, [r4, #1252] + ldr r3, [r8, #3336] + str r3, [r4, #1256] bl FlashReadPages - ldr r3, [r4, #4064] - ldr r2, [r4, #4060] - ldr r0, .L2178+16 + ldr r3, [r4, #1256] + ldr r2, [r4, #1252] + ldr r0, .L2171+16 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -13517,32 +13404,33 @@ ftl_scan_all_ppa: ldr r1, [r2] str r1, [sp, #12] ldr r2, [r2, #4] - ldr r1, [r4, #4056] + ldr r1, [r4, #1248] str r2, [sp, #16] - ldr r2, [r4, #4052] + ldr r2, [r4, #1244] ldr r3, [r3] bl printk - b .L2176 -.L2177: + b .L2169 +.L2170: adds r7, r7, #1 - b .L2173 -.L2175: - ldr r0, .L2178+20 - ldr r1, .L2178+24 - add sp, sp, #24 + b .L2166 +.L2168: + ldr r0, .L2171+20 + ldr r1, .L2171+24 + add sp, sp, #28 @ sp needed - pop {r4, r5, r6, r7, r8, lr} + pop {r4, r5, r6, r7, r8, r9, lr} b printk -.L2179: +.L2172: .align 2 -.L2178: +.L2171: .word .LANCHOR0 .word .LC115 - .word .LANCHOR2 - .word .LANCHOR2+4052 + .word .LANCHOR4 + .word .LANCHOR4+1244 .word .LC116 .word .LC117 .word .LANCHOR3+52 + .word .LANCHOR2 .fnend .size ftl_scan_all_ppa, .-ftl_scan_all_ppa .align 1 @@ -13558,27 +13446,24 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 sub sp, sp, #76 - ldr r5, .L2236 + ldr r5, .L2228 mov r4, r0 str r1, [sp, #8] mov r9, r2 str r3, [sp, #20] - ldr r5, [r5] - str r5, [sp, #68] - ldr r5, .L2236+4 - ldr r6, [r5, #692] + ldr r6, [r5, #1204] ldrb r7, [r5] @ zero_extendqisi2 ldrb r6, [r6, #19] @ zero_extendqisi2 str r6, [sp, #16] - ldr r6, .L2236+8 + ldr r6, .L2228+4 ldrb r6, [r6, #481] @ zero_extendqisi2 str r6, [sp, #12] - cbz r7, .L2181 + cbz r7, .L2174 bl FlashProgSlc2KPages - b .L2182 -.L2195: + b .L2175 +.L2188: movs r3, #36 - add r2, sp, #24 + add r2, sp, #28 mov r1, r9 mul r8, r3, r7 ldr r3, [sp, #8] @@ -13587,104 +13472,104 @@ FlashProgPages: uxtb r3, r3 str r3, [sp] mov r0, fp - add r3, sp, #28 + add r3, sp, #32 bl LogAddr2PhyAddr - ldrb r2, [r5, #1717] @ zero_extendqisi2 - ldr r3, [sp, #28] + ldrb r2, [r5, #2229] @ zero_extendqisi2 + ldr r3, [sp, #32] mov r10, r0 cmp r3, r2 - bcc .L2183 + bcc .L2176 mov r3, #-1 str r3, [r4, r8] -.L2184: +.L2177: adds r7, r7, #1 -.L2181: +.L2174: ldr r3, [sp, #8] - ldr r6, .L2236+4 + ldr r6, .L2228 cmp r7, r3 - bcc .L2195 - b .L2234 -.L2183: + bcc .L2188 + b .L2226 +.L2176: add r3, r5, r3, lsl #4 - ldrb r1, [r5, #1793] @ zero_extendqisi2 - ldr r3, [r3, #1596] + ldrb r1, [r5, #2305] @ zero_extendqisi2 + ldr r3, [r3, #2108] cmp r1, #0 it eq moveq r10, #0 - cbz r3, .L2186 + cbz r3, .L2179 cmp r2, #1 - bne .L2187 + bne .L2180 ldr r0, [r5, #76] bl NandcIqrWaitFlashReady -.L2187: - ldrb r0, [sp, #28] @ zero_extendqisi2 +.L2180: + ldrb r0, [sp, #32] @ zero_extendqisi2 bl FlashWaitCmdDone -.L2186: - ldr r3, [sp, #28] +.L2179: + ldr r3, [sp, #32] movs r0, #0 add r2, r5, r3, lsl #4 - addw r1, r2, #1596 - str r0, [r2, #1600] - ldr r0, [sp, #24] - str fp, [r2, #1596] - str r0, [r2, #1592] + addw r1, r2, #2108 + str r0, [r2, #2112] + ldr r0, [sp, #28] + str fp, [r2, #2108] + str r0, [r2, #2104] cmp r10, #0 - beq .L2188 + beq .L2181 add r2, r8, #36 add r2, r2, r4 str r2, [r1, #4] -.L2188: +.L2181: adds r2, r5, r3 add r3, r5, r3, lsl #4 - ldrb r6, [r2, #1720] @ zero_extendqisi2 - strb r6, [r3, #1588] + ldrb r6, [r2, #2232] @ zero_extendqisi2 + strb r6, [r3, #2100] mov r0, r6 - ldrb r3, [r5, #1717] @ zero_extendqisi2 + ldrb r3, [r5, #2229] @ zero_extendqisi2 cmp r3, #1 - bne .L2189 + bne .L2182 bl NandcWaitFlashReady - b .L2190 -.L2189: + b .L2183 +.L2182: bl NandcFlashCs mov r0, r6 - ldr r3, [sp, #28] - ldr r1, [sp, #24] + ldr r3, [sp, #32] + ldr r1, [sp, #28] add r3, r5, r3, lsl #2 - ldr r2, [r3, #656] + ldr r2, [r3, #1168] adds r2, r2, #0 it ne movne r2, #1 bl FlashWaitReadyEN mov r0, r6 bl NandcFlashDeCs -.L2190: +.L2183: ldr r3, [sp, #16] subs r3, r3, #1 cmp r3, #7 - bhi .L2191 + bhi .L2184 adds r3, r5, r6 - ldrb r3, [r3, #1552] @ zero_extendqisi2 - cbz r3, .L2191 + ldrb r3, [r3, #2064] @ zero_extendqisi2 + cbz r3, .L2184 mov r0, r6 - ldrb r1, [r5, #699] @ zero_extendqisi2 - ldr r2, .L2236+12 + ldrb r1, [r5, #1211] @ zero_extendqisi2 + ldr r2, .L2228+8 movs r3, #0 bl HynixSetRRPara -.L2191: +.L2184: mov r0, r6 bl NandcFlashCs cmp r9, #1 mov r0, r6 - bne .L2192 + bne .L2185 ldrb r3, [r5, #140] @ zero_extendqisi2 - cbz r3, .L2192 + cbz r3, .L2185 bl flash_enter_slc_mode - b .L2193 -.L2192: + b .L2186 +.L2185: bl flash_exit_slc_mode -.L2193: +.L2186: mov r0, r6 - ldr r1, [sp, #24] + ldr r1, [sp, #28] bl FlashProgFirstCmd ldr r3, [fp, #12] mov r0, r6 @@ -13694,24 +13579,24 @@ FlashProgPages: ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L2194 + beq .L2187 mov r0, r6 - ldr r1, [sp, #24] + ldr r1, [sp, #28] bl FlashProgDpFirstCmd mov r0, r6 add r8, r8, #36 add r8, r8, r4 - ldr r3, [sp, #28] - ldr r1, [sp, #24] + ldr r3, [sp, #32] + ldr r1, [sp, #28] add r3, r5, r3, lsl #2 - ldr r2, [r3, #656] + ldr r2, [r3, #1168] adds r2, r2, #0 it ne movne r2, #1 bl FlashWaitReadyEN ldr r1, [r5, #4] mov r0, r6 - ldr r3, [sp, #24] + ldr r3, [sp, #28] add r1, r1, r3 bl FlashProgDpSecondCmd ldr r3, [r8, #12] @@ -13721,144 +13606,136 @@ FlashProgPages: ldr r2, [sp, #12] ldr r3, [r8, #8] bl NandcXferData -.L2194: +.L2187: mov r0, r6 - ldr r1, [sp, #24] + ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r6 bl NandcFlashDeCs add r7, r7, r10 - b .L2184 -.L2234: + b .L2177 +.L2226: ldr r0, [r6, #76] movs r5, #0 bl NandcIqrWaitFlashReady - addw r8, r6, #1588 + addw r8, r6, #2100 mov r7, r6 -.L2196: - ldrb r3, [r6, #1717] @ zero_extendqisi2 +.L2189: + ldrb r3, [r6, #2229] @ zero_extendqisi2 cmp r5, r3 - bcs .L2235 + bcs .L2227 uxtb r0, r5 bl FlashWaitCmdDone cmp r9, #1 - bne .L2197 + bne .L2190 ldrb r3, [r7, #140] @ zero_extendqisi2 - cbz r3, .L2197 + cbz r3, .L2190 lsls r3, r5, #4 ldrb r0, [r8, r3] @ zero_extendqisi2 bl flash_exit_slc_mode -.L2197: +.L2190: adds r5, r5, #1 - b .L2196 -.L2235: + b .L2189 +.L2227: ldr r3, [sp, #20] - cbnz r3, .L2199 -.L2207: + cbnz r3, .L2192 +.L2200: movs r0, #0 - b .L2182 -.L2199: - ldr r7, .L2236+16 + b .L2175 +.L2192: + ldr r7, .L2228+12 mov r8, #0 mov r10, r7 -.L2200: +.L2193: ldr r3, [sp, #8] cmp r8, r3 - beq .L2207 + beq .L2200 ldr r3, [r4] adds r3, r3, #1 - bne .L2201 + bne .L2194 ldr r1, [r4, #4] - ldr r0, .L2236+20 + ldr r0, .L2228+16 bl printk - b .L2202 -.L2201: + b .L2195 +.L2194: ldr r3, [sp, #8] mov r1, r9 - add r2, sp, #24 + add r2, sp, #28 mov r0, r4 rsb r3, r8, r3 mov r6, r4 uxtb r3, r3 str r3, [sp] - add r3, sp, #28 + add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r7, #4024] + ldr r2, [r7, #1216] movs r3, #0 str r3, [r2] - ldr r2, [r7, #4028] + ldr r2, [r7, #1220] str r3, [r2] ldmia r6!, {r0, r1, r2, r3} - add r5, sp, #32 + add r5, sp, #36 stmia r5!, {r0, r1, r2, r3} ldmia r6!, {r0, r1, r2, r3} stmia r5!, {r0, r1, r2, r3} - add r0, sp, #32 + add r0, sp, #36 ldr r3, [r6] movs r1, #1 mov r2, r9 str r3, [r5] - ldr r3, [r7, #4024] - str r3, [sp, #40] - ldr r3, [r7, #4028] + ldr r3, [r7, #1216] str r3, [sp, #44] + ldr r3, [r7, #1220] + str r3, [sp, #48] bl FlashReadPages - ldr r5, [sp, #32] + ldr r5, [sp, #36] adds r3, r5, #1 - bne .L2203 - ldr r0, .L2236+24 + bne .L2196 + ldr r0, .L2228+20 ldr r1, [r4, #4] bl printk str r5, [r4] -.L2203: +.L2196: ldr r3, [r4, #12] - cbz r3, .L2204 + cbz r3, .L2197 ldr r2, [r3] - ldr r3, [r10, #4028] + ldr r3, [r10, #1220] ldr r3, [r3] cmp r2, r3 - beq .L2204 - ldr r0, .L2236+28 + beq .L2197 + ldr r0, .L2228+24 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L2204: +.L2197: ldr r3, [r4, #8] - cbz r3, .L2202 + cbz r3, .L2195 ldr r2, [r3] - ldr r3, [r10, #4024] + ldr r3, [r10, #1216] ldr r3, [r3] cmp r2, r3 - beq .L2202 - ldr r0, .L2236+32 + beq .L2195 + ldr r0, .L2228+28 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L2202: +.L2195: add r8, r8, #1 adds r4, r4, #36 - b .L2200 -.L2182: - ldr r3, .L2236 - ldr r2, [sp, #68] - ldr r3, [r3] - cmp r2, r3 - beq .L2208 - bl __stack_chk_fail -.L2208: + b .L2193 +.L2175: add sp, sp, #76 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2237: +.L2229: .align 2 -.L2236: - .word __stack_chk_guard +.L2228: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR0+702 - .word .LANCHOR2 + .word .LANCHOR0+1214 + .word .LANCHOR4 .word .LC103 .word .LC104 .word .LC105 @@ -13874,69 +13751,58 @@ FlashTestBlk: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2242 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - .pad #104 - sub sp, sp, #104 - ldr r2, [r3] + push {r4, r5, lr} + .save {r4, r5, lr} mov r4, r0 - ldr r5, .L2242+4 - mov r6, r3 - str r2, [sp, #100] - ldr r2, [r5, #4008] - cmp r0, r2 - bcc .L2241 - ldr r3, [r5, #4016] - add r0, sp, #36 + ldr r5, .L2233 + .pad #108 + sub sp, sp, #108 + ldr r3, [r5, #1200] + cmp r0, r3 + bcc .L2232 + ldr r3, [r5, #1208] + add r0, sp, #40 movs r1, #165 movs r2, #32 - str r0, [sp, #12] + str r0, [sp, #16] lsls r4, r4, #10 - str r3, [sp, #8] + str r3, [sp, #12] bl ftl_memset - ldr r0, [r5, #4016] + ldr r0, [r5, #1208] movs r1, #90 movs r2, #8 bl ftl_memset movs r1, #1 mov r2, r1 - mov r0, sp - str r4, [sp, #4] + add r0, sp, #4 + str r4, [sp, #8] bl FlashEraseBlocks movs r1, #1 mov r2, r1 mov r3, r1 - mov r0, sp + add r0, sp, #4 bl FlashProgPages movs r1, #0 movs r2, #1 - ldr r4, [sp] - mov r0, sp + ldr r4, [sp, #4] + add r0, sp, #4 adds r4, r4, #0 it ne movne r4, #1 negs r4, r4 bl FlashEraseBlocks - b .L2239 -.L2241: + b .L2231 +.L2232: movs r4, #0 -.L2239: - ldr r2, [sp, #100] +.L2231: mov r0, r4 - ldr r3, [r6] - cmp r2, r3 - beq .L2240 - bl __stack_chk_fail -.L2240: - add sp, sp, #104 + add sp, sp, #108 @ sp needed - pop {r4, r5, r6, pc} -.L2243: + pop {r4, r5, pc} +.L2234: .align 2 -.L2242: - .word __stack_chk_guard - .word .LANCHOR2 +.L2233: + .word .LANCHOR4 .fnend .size FlashTestBlk, .-FlashTestBlk .align 1 @@ -13946,32 +13812,29 @@ FlashTestBlk: .type FlashMakeFactorBbt, %function FlashMakeFactorBbt: .fnstart - @ args = 0, pretend = 0, frame = 88 + @ args = 0, pretend = 0, frame = 80 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2303 - movs r1, #1 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #92 - sub sp, sp, #92 - ldr r3, [r3] - ldr r5, .L2303+4 - ldr r4, .L2303+8 - str r3, [sp, #84] - ldr r3, [r5, #4020] + .pad #84 + sub sp, sp, #84 + ldr r5, .L2293 + movs r1, #1 + ldr r4, .L2293+4 + ldr r0, .L2293+8 + ldr r3, [r5, #1212] ldrh r8, [r4, #124] - ldr r0, .L2303+12 str r3, [sp, #20] ldrh r3, [r4, #126] smulbb r8, r8, r3 - ldr r3, [r4, #692] + ldr r3, [r4, #1204] 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, .L2303+8 + ldr r4, .L2293+4 cmp r3, #1 itttt eq ldreq r3, [sp, #16] @@ -13979,49 +13842,49 @@ FlashMakeFactorBbt: uxtheq r3, r3 streq r3, [sp, #16] bl printk - ldr r0, [r5, #4020] + ldr r0, [r5, #1212] movs r1, #0 mov r2, #4096 bl ftl_memset - ldr r5, .L2303+4 + ldr r5, .L2293 lsr r3, r8, #4 str r3, [sp, #28] movs r3, #0 str r3, [sp, #8] -.L2246: +.L2237: ldrb r7, [sp, #8] @ zero_extendqisi2 - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 cmp r3, r7 - bls .L2299 + bls .L2289 add r3, r5, r7, lsl #1 - ldrh r6, [r3, #4036] + ldrh r6, [r3, #1228] cmp r6, #0 - bne .L2277 + bne .L2267 ldrh r2, [r4, #132] mov r1, r6 - ldr r0, [r5, #3988] + ldr r0, [r5, #1180] mov r9, r6 lsls r2, r2, #9 bl ftl_memset adds r3, r4, r7 - ldrb r10, [r3, #1720] @ zero_extendqisi2 + ldrb r10, [r3, #2232] @ zero_extendqisi2 lsls r3, r7, #2 add fp, r4, r3 str r6, [sp, #4] str r3, [sp, #32] -.L2248: +.L2239: ldrh r3, [sp, #4] cmp r3, r8 str r3, [sp, #12] - bcs .L2258 + bcs .L2249 movs r3, #255 - strb r3, [sp, #46] - strb r3, [sp, #47] + strb r3, [sp, #42] + strb r3, [sp, #43] ldr r3, [sp, #24] lsls r1, r3, #31 - bpl .L2250 - ldr r3, [fp, #656] - add r2, sp, #46 + bpl .L2241 + ldr r3, [fp, #1168] + add r2, sp, #42 mov r0, r10 add r3, r3, r6 str r3, [sp, #36] @@ -14030,72 +13893,72 @@ FlashMakeFactorBbt: ldrb r2, [r4] @ zero_extendqisi2 cmp r2, #1 ldr r3, [sp, #36] - bne .L2250 + bne .L2241 ldr r1, [r4, #4] - add r2, sp, #47 + add r2, sp, #43 mov r0, r10 add r1, r1, r3 bl FlashReadSpare - ldrb r3, [sp, #46] @ zero_extendqisi2 - ldrb r2, [sp, #47] @ zero_extendqisi2 + ldrb r3, [sp, #42] @ zero_extendqisi2 + ldrb r2, [sp, #43] @ zero_extendqisi2 ands r3, r3, r2 - strb r3, [sp, #46] -.L2250: + strb r3, [sp, #42] +.L2241: ldr r3, [sp, #24] lsls r2, r3, #30 - bpl .L2252 - ldr r3, [r4, #692] + bpl .L2243 + ldr r3, [r4, #1204] mov r0, r10 - add r2, sp, #47 + add r2, sp, #43 ldrh r1, [r3, #10] - ldr r3, [fp, #656] + ldr r3, [fp, #1168] subs r1, r1, #1 add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L2252: - ldr r3, [r4, #692] +.L2243: + ldr r3, [r4, #1204] ldrb r2, [r3, #7] @ zero_extendqisi2 - ldrb r3, [sp, #46] @ zero_extendqisi2 + ldrb r3, [sp, #42] @ zero_extendqisi2 cmp r2, #1 - beq .L2253 + beq .L2244 cmp r2, #8 - bne .L2254 -.L2253: - cbz r3, .L2276 - ldrb r0, [sp, #47] @ zero_extendqisi2 + bne .L2245 +.L2244: + cbz r3, .L2266 + ldrb r0, [sp, #43] @ zero_extendqisi2 clz r0, r0 lsrs r0, r0, #5 - b .L2255 -.L2254: + b .L2246 +.L2245: cmp r3, #255 - bne .L2276 - ldrb r0, [sp, #47] @ zero_extendqisi2 + bne .L2266 + ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 it ne movne r0, #1 - b .L2255 -.L2276: + b .L2246 +.L2266: movs r0, #1 -.L2255: +.L2246: ldr r3, [sp, #24] lsls r3, r3, #29 - bpl .L2256 - ldr r3, .L2303+8 + bpl .L2247 + ldr r3, .L2293+4 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 - ldr r1, [r3, #656] + ldr r1, [r3, #1168] add r1, r1, r6 bl SandiskProgTestBadBlock -.L2256: - cbz r0, .L2257 +.L2247: + cbz r0, .L2248 mov r1, r7 ldr r2, [sp, #4] - ldr r0, .L2303+16 + ldr r0, .L2293+12 add r9, r9, #1 bl printk - ldr r2, [r5, #3988] + ldr r2, [r5, #1180] uxth r9, r9 ldr r3, [sp, #12] and r0, r3, #31 @@ -14106,50 +13969,50 @@ FlashMakeFactorBbt: orrs r3, r3, r0 str r3, [r2, r1, lsl #2] ldr r2, [sp, #28] - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 muls r3, r2, r3 cmp r9, r3 - bgt .L2258 -.L2257: + bgt .L2249 +.L2248: ldr r3, [sp, #4] adds r3, r3, #1 str r3, [sp, #4] ldr r3, [sp, #16] add r6, r6, r3 - b .L2248 -.L2258: + b .L2239 +.L2249: mov r2, r9 - ldr r0, .L2303+20 + ldr r0, .L2293+16 mov r1, r7 bl printk - ldrb r3, [r4, #1717] @ zero_extendqisi2 + ldrb r3, [r4, #2229] @ zero_extendqisi2 ldr r2, [sp, #28] muls r3, r2, r3 cmp r9, r3 - blt .L2260 + blt .L2251 ldrh r2, [r4, #132] movs r1, #0 - ldr r0, [r5, #3988] + ldr r0, [r5, #1180] lsls r2, r2, #9 bl ftl_memset -.L2260: +.L2251: cmp r7, #0 - bne .L2262 - ldrh r10, [r5, #4008] + bne .L2253 + ldrh r10, [r5, #1200] mov r9, #1 mov r6, r7 -.L2263: - ldr r3, .L2303+8 +.L2254: + ldr r3, .L2293+4 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, r10 - bls .L2300 + bls .L2290 mov r0, r10 bl FlashTestBlk - cbz r0, .L2264 + cbz r0, .L2255 mov r1, r10 - ldr r0, .L2303+24 + ldr r0, .L2293+20 bl printk - ldr r2, [r5, #3988] + ldr r2, [r5, #1180] lsr r0, r10, #5 adds r6, r6, #1 and r3, r10, #31 @@ -14158,128 +14021,116 @@ FlashMakeFactorBbt: lsl r3, r9, r3 orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2264: +.L2255: add r10, r10, #1 uxth r10, r10 - b .L2263 -.L2300: + b .L2254 +.L2290: add fp, r8, #-1 sub r9, r8, #50 mov r10, #1 uxth fp, fp -.L2266: +.L2257: cmp fp, r9 - ble .L2301 + ble .L2291 mov r0, fp bl FlashTestBlk - cbz r0, .L2267 + cbz r0, .L2258 mov r1, fp - ldr r0, .L2303+24 + ldr r0, .L2293+20 bl printk - ldr r2, [r5, #3988] + ldr r2, [r5, #1180] 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] -.L2267: +.L2258: add fp, fp, #-1 uxth fp, fp - b .L2266 -.L2301: - ldr r3, .L2303+8 - ldr r2, [r5, #4008] + b .L2257 +.L2291: + ldr r3, .L2293+4 + ldr r2, [r5, #1200] ldrb r3, [r3, #1] @ zero_extendqisi2 subs r3, r3, r2 cmp r6, r3 - bcc .L2262 + bcc .L2253 ldrh r2, [r4, #132] movs r1, #0 - ldr r0, [r5, #3988] + ldr r0, [r5, #1180] lsls r2, r2, #9 bl ftl_memset -.L2262: +.L2253: ldrb r6, [sp, #8] @ zero_extendqisi2 add r10, r8, #-1 add r9, r5, r7, lsl #1 uxth r10, r10 mul r6, r8, r6 -.L2270: +.L2261: mov r1, r7 - ldr r0, .L2303+28 + ldr r0, .L2293+24 mov r2, r10 bl printk - ldr r1, [r5, #3988] -.L2271: + ldr r1, [r5, #1180] +.L2262: lsr r3, r10, #5 and r2, r10, #31 ldr r3, [r1, r3, lsl #2] lsrs r3, r3, r2 ands r3, r3, #1 - beq .L2302 + beq .L2292 add r10, r10, #-1 uxth r10, r10 - b .L2271 -.L2302: + b .L2262 +.L2292: ldr r1, [sp, #20] movw r2, #61664 - strh r10, [r9, #4036] @ movhi - add r0, sp, #48 + strh r10, [r9, #1228] @ 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, #3988] + ldr r3, [r5, #1180] mov r2, r1 + str r3, [sp, #52] + ldr r3, [r5, #1212] str r3, [sp, #56] - ldr r3, [r5, #4020] - str r3, [sp, #60] add r3, r10, r6 lsls r3, r3, #10 - str r3, [sp, #52] + str r3, [sp, #48] bl FlashEraseBlocks movs r1, #1 mov r3, r1 mov r2, r1 - add r0, sp, #48 + add r0, sp, #44 bl FlashProgPages - ldr r3, [sp, #48] - cbz r3, .L2277 + ldr r3, [sp, #44] + cbz r3, .L2267 add r10, r10, #-1 uxth r10, r10 - b .L2270 -.L2277: + b .L2261 +.L2267: ldr r3, [sp, #8] adds r3, r3, #1 str r3, [sp, #8] - b .L2246 -.L2304: + b .L2237 +.L2289: + add sp, sp, #84 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2294: .align 2 -.L2303: - .word __stack_chk_guard - .word .LANCHOR2 +.L2293: + .word .LANCHOR4 .word .LANCHOR0 .word .LC118 .word .LC119 .word .LC120 .word .LC121 .word .LC122 -.L2299: - ldr r3, .L2305 - ldr r2, [sp, #84] - ldr r3, [r3] - cmp r2, r3 - beq .L2274 - bl __stack_chk_fail -.L2274: - add sp, sp, #92 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2306: - .align 2 -.L2305: - .word __stack_chk_guard .fnend .size FlashMakeFactorBbt, .-FlashMakeFactorBbt .align 1 @@ -14291,265 +14142,268 @@ FtlLowFormatEraseBlock: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2359 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldrb r2, [r3, #1793] @ zero_extendqisi2 + ldr r7, .L2347 + str r0, [sp, #4] + str r1, [sp] + ldrb r3, [r7, #2305] @ zero_extendqisi2 + str r3, [sp, #16] + ldr r3, .L2347+4 + ldr r2, [r3, #220] mov fp, r3 - str r0, [sp, #8] - str r1, [sp, #4] - str r2, [sp, #20] - ldr r2, [r3, #4052] cmp r2, #0 - bne .L2336 - ldrb r3, [r3, #140] @ zero_extendqisi2 - mov r10, #36 - ldr r7, .L2359+4 - mov r6, r2 + bne .L2324 + ldrb r3, [r7, #140] @ zero_extendqisi2 + mov r8, #36 + mov r9, r2 mov r5, r2 mov r4, r2 - mov r9, fp - str r3, [sp, #12] - str r0, [r7, #1752] -.L2309: - ldrh r0, [fp, #1804] - uxth r1, r6 - ldr r8, .L2359 + mov r10, fp + str r3, [sp, #8] + str r0, [fp, #3288] +.L2297: + ldrh r0, [r7, #2316] + uxth r1, r9 + ldr r3, .L2347 cmp r0, r1 - bls .L2354 - mul lr, r10, r1 - ldr r0, [r9, #4056] - add r1, r1, r9 + bls .L2342 + mul r6, r8, r1 + ldr r0, [fp, #224] movs r3, #0 - str r3, [r0, lr] - ldrb r0, [r1, #1832] @ zero_extendqisi2 - ldr r1, [sp, #8] + str r3, [r0, r6] + ldr r3, .L2347 + add r1, r1, r3 + ldrb r0, [r1, #2344] @ zero_extendqisi2 + ldr r1, [sp, #4] bl V2P_block - ldr r3, [sp, #4] - mov r8, r0 - cbz r3, .L2310 + ldr r3, [sp] + mov r6, r0 + cbz r3, .L2298 bl IsBlkInVendorPart - cbnz r0, .L2311 -.L2310: - mov r0, r8 + cbnz r0, .L2299 +.L2298: + mov r0, r6 bl FtlBbmIsBadBlock - cbnz r0, .L2312 - ldr r3, [fp, #4056] - lsl r1, r8, #10 - mla lr, r10, r5, r3 - str r1, [lr, #4] - str r0, [lr, #8] - ldrh r1, [fp, #1884] + cbnz r0, .L2300 + ldr r3, [fp, #224] + lsls r6, r6, #10 + ldrh r1, [r7, #2396] muls r1, r5, r1 - ldr r0, [r7, #1804] it mi addmi r1, r1, #3 + mla lr, r8, r5, r3 adds r5, r5, #1 bic r1, r1, #3 + uxth r5, r5 + str r0, [lr, #8] + ldr r0, [r10, #3340] + str r6, [lr, #4] add r1, r1, r0 str r1, [lr, #12] - uxth r5, r5 - b .L2311 -.L2312: + b .L2299 +.L2300: adds r4, r4, #1 uxth r4, r4 -.L2311: - adds r6, r6, #1 - b .L2309 -.L2354: +.L2299: + add r9, r9, #1 + b .L2297 +.L2342: cmp r5, #0 - beq .L2335 - ldr r3, [sp, #12] + beq .L2323 + ldr r2, [sp, #8] + mov r8, #0 + ldr r0, [fp, #224] + mov r9, #36 + adds r6, r2, #0 mov r2, r5 - ldr r0, [r8, #4056] - movs r7, #0 - adds r6, r3, #0 - strb r7, [r8, #1793] it ne movne r6, #1 + strb r8, [r3, #2305] + str r3, [sp, #8] mov r1, r6 bl FlashEraseBlocks - ldrb r3, [sp, #20] @ zero_extendqisi2 - strb r3, [r8, #1793] - mov r8, #36 -.L2316: - uxth r2, r7 + ldrb r2, [sp, #16] @ zero_extendqisi2 + ldr r3, [sp, #8] + strb r2, [r3, #2305] +.L2304: + uxth r2, r8 cmp r2, r5 - bcs .L2355 - mul r2, r8, r7 - ldr r1, [fp, #4056] + bcs .L2343 + mul r2, r9, r8 + ldr r1, [fp, #224] adds r0, r1, r2 ldr r2, [r1, r2] adds r2, r2, #1 - bne .L2317 + bne .L2305 ldr r0, [r0, #4] adds r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L2317: - adds r7, r7, #1 - b .L2316 -.L2355: - ldr r3, [sp, #4] - cbnz r3, .L2319 +.L2305: + add r8, r8, #1 + b .L2304 +.L2343: + ldr r3, [sp] + cbnz r3, .L2307 movs r3, #6 uxth r6, r6 - str r3, [sp, #16] + str r3, [sp, #12] movs r3, #1 - str r3, [sp, #12] - b .L2320 -.L2319: - ldrh r3, [fp, #1874] - str r3, [sp, #12] - ldrb r3, [fp, #140] @ zero_extendqisi2 - cbnz r3, .L2337 - ldr r3, [sp, #12] + str r3, [sp, #8] + b .L2308 +.L2307: + ldrh r3, [r7, #2386] + str r3, [sp, #8] + ldrb r3, [r7, #140] @ zero_extendqisi2 + cbnz r3, .L2325 + ldr r3, [sp, #8] movs r6, #1 lsrs r3, r3, #2 - str r3, [sp, #16] - b .L2320 -.L2337: + str r3, [sp, #12] + b .L2308 +.L2325: movs r6, #1 - str r6, [sp, #16] -.L2320: - ldr r9, .L2359 - mov r8, #0 -.L2330: - mov r10, #0 - ldr fp, .L2359+4 - mov r5, r10 -.L2321: - ldrh r2, [r9, #1804] - uxth r3, r10 - ldr r7, .L2359 - cmp r2, r3 - bls .L2356 + str r6, [sp, #12] +.L2308: + ldr r8, .L2347+4 + movs r7, #0 + mov r10, r8 +.L2318: + mov fp, #0 + mov r5, fp +.L2309: + ldr r9, .L2347 + uxth r3, fp + ldrh r1, [r9, #2316] + cmp r1, r3 + bls .L2344 movs r2, #36 - ldr r1, [r9, #4056] - movs r0, #0 - muls r2, r3, r2 - add r3, r3, r9 - str r0, [r1, r2] - ldr r1, [sp, #8] - ldrb r0, [r3, #1832] @ zero_extendqisi2 + ldr r0, [r8, #224] + mul r1, r2, r3 + movs r2, #0 + str r2, [r0, r1] + ldr r2, .L2347 + ldr r1, [sp, #4] + add r3, r3, r2 + ldrb r0, [r3, #2344] @ zero_extendqisi2 bl V2P_block - ldr r3, [sp, #4] - mov r7, r0 - cbz r3, .L2322 + ldr r3, [sp] + mov r9, r0 + cbz r3, .L2310 bl IsBlkInVendorPart - cbnz r0, .L2323 -.L2322: - mov r0, r7 + cbnz r0, .L2311 +.L2310: + mov r0, r9 bl FtlBbmIsBadBlock - cbnz r0, .L2323 - ldr r2, [r9, #4056] + cbnz r0, .L2311 + ldr r1, [r10, #224] movs r3, #36 - ldr r1, .L2359+4 - add r7, r8, r7, lsl #10 - mla r2, r3, r5, r2 - ldr r3, [fp, #1792] - ldr r1, [r1, #1796] - str r3, [r2, #8] - ldrh r3, [r9, #1884] + ldr r0, [r8, #3332] + mla r1, r3, r5, r1 + add r3, r7, r9, lsl #10 + str r3, [r1, #4] + ldr r3, [r10, #3328] + str r3, [r1, #8] + ldr r3, .L2347 + ldrh r3, [r3, #2396] muls r3, r5, r3 add r5, r5, #1 it mi addmi r3, r3, #3 bic r3, r3, #3 - str r7, [r2, #4] uxth r5, r5 - add r3, r3, r1 - str r3, [r2, #12] -.L2323: - add r10, r10, #1 - b .L2321 -.L2356: + add r3, r3, r0 + str r3, [r1, #12] +.L2311: + add fp, fp, #1 + b .L2309 +.L2344: cmp r5, #0 - beq .L2335 - ldr r3, .L2359 - movs r2, #0 - mov r1, r5 - mov r10, #0 - mov fp, #36 - strb r2, [r3, #1793] + beq .L2323 mov r2, r6 - ldr r0, [r3, #4056] movs r3, #1 + ldr r0, [r8, #224] + mov r1, r5 + mov fp, #0 + strb fp, [r9, #2305] bl FlashProgPages - ldr r3, .L2359 - ldrb r2, [sp, #20] @ zero_extendqisi2 - strb r2, [r3, #1793] -.L2327: - uxth r3, r10 + movs r2, #36 + ldrb r3, [sp, #16] @ zero_extendqisi2 + strb r3, [r9, #2305] + ldr r9, .L2347+4 +.L2315: + uxth r3, fp cmp r3, r5 - bcs .L2357 - mul r3, fp, r10 - ldr r2, .L2359 - ldr r2, [r2, #4056] - adds r0, r2, r3 - ldr r3, [r2, r3] - cbz r3, .L2328 + bcs .L2345 + mul r3, r2, fp + ldr r1, [r10, #224] + adds r0, r1, r3 + ldr r3, [r1, r3] + cbz r3, .L2316 ldr r0, [r0, #4] adds r4, r4, #1 + str r2, [sp, #20] ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L2328: - add r10, r10, #1 - b .L2327 -.L2357: - ldr r3, [sp, #16] - add r8, r8, r3 + ldr r2, [sp, #20] +.L2316: + add fp, fp, #1 + b .L2315 +.L2345: ldr r3, [sp, #12] - uxth r8, r8 - cmp r8, r3 - bcc .L2330 - mov r8, #0 - mov r9, #36 -.L2331: - uxth r3, r8 + add r7, r7, r3 + ldr r3, [sp, #8] + uxth r7, r7 + cmp r7, r3 + bcc .L2318 + movs r7, #0 + mov r8, #36 +.L2319: + uxth r3, r7 cmp r3, r5 - bcs .L2358 - ldr r3, [sp, #4] - cbz r3, .L2332 - mul r3, r9, r8 - ldr r2, [r7, #4056] + bcs .L2346 + ldr r3, [sp] + cbz r3, .L2320 + mul r3, r8, r7 + ldr r2, [r9, #224] adds r1, r2, r3 ldr r3, [r2, r3] - cbnz r3, .L2332 + cbnz r3, .L2320 ldr r0, [r1, #4] movs r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L2332: - add r8, r8, #1 - b .L2331 -.L2358: - ldr r3, [sp, #8] - cmp r3, #63 - bls .L2334 +.L2320: + adds r7, r7, #1 + b .L2319 +.L2346: ldr r3, [sp, #4] - cbz r3, .L2335 -.L2334: - ldr r0, [r7, #4056] + cmp r3, #63 + bls .L2322 + ldr r3, [sp] + cbz r3, .L2323 +.L2322: + ldr r0, [r9, #224] mov r1, r6 mov r2, r5 bl FlashEraseBlocks -.L2335: +.L2323: mov r0, r4 - b .L2308 -.L2336: + b .L2296 +.L2324: movs r0, #0 -.L2308: +.L2296: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2360: +.L2348: .align 2 -.L2359: +.L2347: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -14561,141 +14415,147 @@ FtlLowFormatEraseBlock: .type FtlBbmTblFlush, %function FtlBbmTblFlush: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #12 - ldr r7, .L2378 - ldr r6, [r7, #4052] + .pad #20 + sub sp, sp, #20 + ldr r7, .L2366 + ldr r6, [r7, #220] cmp r6, #0 - bne .L2363 - ldr r4, .L2378+4 + bne .L2351 + ldr r4, .L2366+4 mov r1, r6 - ldrh r2, [r7, #1882] - add r8, r7, #1960 - ldr r0, [r4, #1776] - ldr r3, [r4, #1800] - str r0, [r4, #4060] - str r3, [r4, #4064] + 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] bl ftl_memset -.L2364: - ldrh r3, [r7, #1826] - ldr r5, .L2378 +.L2352: + ldrh r3, [r4, #2338] + ldr r8, .L2366+4 cmp r6, r3 - bge .L2377 - ldrh r2, [r4, #1864] - ldr r3, [r4, #4060] - ldr r1, [r8, #4]! + bge .L2365 + ldrh r2, [r7, #3400] + ldr r3, [r5, #1252] + 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 .L2364 -.L2377: - ldr r6, [r4, #4064] + b .L2352 +.L2365: + ldr r6, [r5, #1256] movs r1, #255 movs r2, #16 - mov r8, #0 - ldr r10, .L2378+4 + ldr fp, .L2366 mov r0, r6 - mov r9, r8 bl ftl_memset movw r3, #61649 strh r3, [r6] @ movhi - ldr r3, [r5, #1944] + ldr r3, [r8, #2456] str r3, [r6, #4] - ldrh r3, [r5, #1936] + ldrh r3, [r8, #2448] strh r3, [r6, #2] @ movhi - ldrh r3, [r5, #1940] + ldrh r3, [r8, #2452] strh r3, [r6, #8] @ movhi - ldrh r3, [r5, #1942] + ldrh r3, [r8, #2454] strh r3, [r6, #10] @ movhi - ldr r3, [r5, #1800] + ldr r3, [r8, #2312] + mov r8, #0 + mov r10, r8 strh r3, [r6, #12] @ movhi -.L2366: - ldr r3, [r4, #1776] - mov fp, #0 - ldrh r1, [r7, #1936] - ldrh r2, [r7, #1938] - str r3, [r4, #4060] - ldr r3, [r4, #1800] - str fp, [r4, #4052] - str r3, [r4, #4064] +.L2354: + ldr r3, [r7, #3312] + 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] + str r3, [r5, #1256] orr r3, r2, r1, lsl #10 ldrh r0, [r6, #10] - str r3, [r4, #4056] - ldrh r3, [r7, #1940] + str r3, [r5, #1248] + ldrh r3, [r4, #2452] str r0, [sp] - ldr r0, .L2378+8 + ldr r0, .L2366+12 bl printk - ldrh r3, [r7, #1874] - ldrh r2, [r7, #1938] + ldrh r3, [r4, #2386] + ldrh r2, [r4, #2450] subs r3, r3, #1 + ldr r9, .L2366+4 cmp r2, r3 - blt .L2367 - ldr r3, [r5, #1944] + ldr ip, [sp, #12] + blt .L2355 + ldrh r2, [r9, #2448] movs r1, #1 - ldrh r2, [r5, #1936] + ldr r3, [r9, #2456] + ldr r0, [fp, #224] adds r3, r3, #1 - ldr r0, [r5, #4056] - str r3, [r5, #1944] + str r3, [r9, #2456] str r3, [r6, #4] - ldrh r3, [r5, #1940] strh r2, [r6, #8] @ movhi - strh r2, [r5, #1940] @ movhi - mov r2, r1 - strh r3, [r5, #1936] @ movhi + ldrh r3, [r9, #2452] + strh r2, [r9, #2452] @ movhi + ldr r2, .L2366+8 + strh r3, [r9, #2448] @ movhi lsls r3, r3, #10 - str r3, [r10, #4056] + strh ip, [r9, #2450] @ movhi + str r3, [r2, #1248] + mov r2, r1 str r3, [r0, #4] - strh fp, [r5, #1938] @ movhi bl FlashEraseBlocks -.L2367: +.L2355: movs r1, #1 - ldr fp, .L2378+4 + ldr r9, .L2366+8 mov r2, r1 mov r3, r1 - addw r0, fp, #4052 + addw r0, r9, #1244 bl FlashProgPages - ldrh r3, [r7, #1938] + ldrh r3, [r4, #2450] adds r3, r3, #1 - strh r3, [r7, #1938] @ movhi - ldr r3, [r4, #4052] + strh r3, [r4, #2450] @ movhi + ldr r3, [r5, #1244] adds r2, r3, #1 - bne .L2368 + bne .L2356 add r8, r8, #1 - ldr r0, .L2378+12 - ldr r1, [r10, #4056] + ldr r0, .L2366+16 + ldr r1, [r9, #1248] uxth r8, r8 bl printk cmp r8, #3 - bls .L2366 + bls .L2354 + ldr r0, .L2366+20 mov r2, r8 - ldr r0, .L2378+16 - ldr r1, [fp, #4056] + ldr r1, [r9, #1248] bl printk - ldr r3, .L2378 - movs r2, #1 - str r2, [r3, #4052] - b .L2363 -.L2368: - add r9, r9, #1 - cmp r9, #1 - beq .L2366 + movs r3, #1 + str r3, [r7, #220] + b .L2351 +.L2356: + add r10, r10, #1 + cmp r10, #1 + beq .L2354 cmp r3, #256 - beq .L2366 -.L2363: + beq .L2354 +.L2351: movs r0, #0 - add sp, sp, #12 + add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2379: +.L2367: .align 2 -.L2378: - .word .LANCHOR0 +.L2366: .word .LANCHOR2 + .word .LANCHOR0 + .word .LANCHOR4 .word .LC123 .word .LC124 .word .LC125 @@ -14712,289 +14572,289 @@ allocate_data_superblock: @ 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 r5, .L2436 + mov r5, r0 + ldr r4, .L2424 .pad #20 sub sp, sp, #20 - ldr r3, [r5, #4052] + ldr r3, [r4, #220] cmp r3, #0 - bne .L2381 - ldr r9, .L2436+16 - mov r10, r5 -.L2382: - ldr r3, .L2436+4 - ldrb r2, [r4, #8] @ zero_extendqisi2 - cmp r4, r3 - add r6, r3, #104 - bne .L2383 - ldrh lr, [r9, #-204] - ldr r7, [r9, #616] - lsr r1, lr, #1 - mul r0, r7, lr + bne .L2369 + ldr r9, .L2424+16 + mov r8, r4 +.L2370: + ldr r3, .L2424+4 + ldrb r2, [r5, #8] @ zero_extendqisi2 + cmp r5, r3 + bne .L2371 + ldrh r7, [r8, #308] + ldr r6, [r8, #1128] + lsrs r1, r7, #1 + mul r0, r6, r7 adds r3, r1, #1 add r3, r3, r0, lsr #2 - ldr r0, [r5, #1796] + ldr r0, [r9, #2308] uxth r3, r3 - cbz r0, .L2406 - ldr r0, [r9, #16] + cbz r0, .L2394 + ldr r0, [r8, #528] cmp r0, #39 - bhi .L2406 + bhi .L2394 cmp r0, #2 - bls .L2411 - tst lr, #1 - beq .L2384 - cbz r7, .L2408 - b .L2384 -.L2383: + bls .L2399 + lsls r0, r7, #31 + bpl .L2372 + cbz r6, .L2396 + b .L2372 +.L2371: cmp r2, #1 - bne .L2411 - ldrh r3, [r5, #1824] + bne .L2399 + ldrh r3, [r9, #2336] cmp r3, #1 - beq .L2411 - ldrb r3, [r10, #140] @ zero_extendqisi2 - cbnz r3, .L2411 - ldrh r0, [r9, #-204] - ldr r3, [r10, #1796] + beq .L2399 + ldrb r3, [r9, #140] @ zero_extendqisi2 + cbnz r3, .L2399 + ldrh r0, [r8, #308] + ldr r3, [r9, #2308] lsrs r1, r0, #3 - cbz r3, .L2384 - ldr r3, [r9, #16] + cbz r3, .L2372 + ldr r3, [r8, #528] cmp r3, #1 - bhi .L2384 + bhi .L2372 rsb r0, r0, r0, lsl #3 ubfx r1, r0, #3, #16 - b .L2384 -.L2406: + b .L2372 +.L2394: mov r1, r3 -.L2384: - cbz r1, .L2385 +.L2372: + cbz r1, .L2373 subs r1, r1, #1 uxth r1, r1 - b .L2385 -.L2408: - mov r1, r7 - b .L2385 -.L2411: + b .L2373 +.L2396: + mov r1, r6 + b .L2373 +.L2399: movs r1, #0 -.L2385: - ldr r0, .L2436+8 +.L2373: + ldr r0, .L2424+8 bl List_pop_index_node - ldrh r3, [r6, #-204] + ldrh r3, [r4, #308] subs r3, r3, #1 - strh r3, [r6, #-204] @ movhi - ldrh r3, [r5, #1812] - uxth r7, r0 - cmp r3, r7 - bls .L2382 - ldr r3, [r9, #-220] - ldrh r8, [r3, r7, lsl #1] - cmp r8, #0 - bne .L2382 - strh r7, [r4] @ movhi - mov r0, r4 + strh r3, [r4, #308] @ movhi + ldrh r3, [r9, #2324] + uxth r6, r0 + cmp r3, r6 + bls .L2370 + ldr r3, [r8, #292] + ldrh r7, [r3, r6, lsl #1] + cmp r7, #0 + bne .L2370 + strh r6, [r5] @ movhi + mov r0, r5 bl make_superblock - ldrb r3, [r4, #7] @ zero_extendqisi2 - cbz r3, .L2387 - ldr r0, [r10, #4056] + ldrb r3, [r5, #7] @ zero_extendqisi2 + cbz r3, .L2375 + ldr r0, [r8, #224] movs r2, #36 - ldrh ip, [r10, #1804] - add lr, r4, #14 + ldrh ip, [r9, #2316] + add lr, r5, #14 + movw r10, #65535 mov r3, r0 mla r1, r2, ip, r0 - mov ip, r8 - str r1, [sp] - b .L2388 -.L2387: - ldr r3, [r9, #-220] - b .L2431 -.L2388: - ldr r1, [sp] + mov ip, r7 + str r1, [sp, #4] + b .L2376 +.L2375: + ldr r3, [r8, #292] + b .L2419 +.L2376: + ldr r1, [sp, #4] cmp r3, r1 - beq .L2433 + beq .L2421 str ip, [r3, #8] - movw fp, #65535 - str ip, [r3, #12] adds r3, r3, #36 + str ip, [r3, #-24] ldrh r1, [lr, #2]! - cmp r1, fp + cmp r1, r10 itttt ne lslne r1, r1, #10 - mlane fp, r2, r8, r0 - addne r8, r8, #1 - uxthne r8, r8 + mlane fp, r2, r7, r0 + addne r7, r7, #1 + uxthne r7, r7 it ne strne r1, [fp, #4] - b .L2388 -.L2433: - ldr r3, [r5, #1796] - cbz r3, .L2391 - ldr r3, .L2436+12 - cmp r4, r3 - bne .L2391 - ldr r3, [r10, #4060] - ldrh r3, [r3, r7, lsl #1] + b .L2376 +.L2421: + ldr r3, [r9, #2308] + cbz r3, .L2379 + ldr r3, .L2424+12 + cmp r5, r3 + bne .L2379 + ldr r3, [r8, #228] + ldrh r3, [r3, r6, lsl #1] cmp r3, #40 itt hi movhi r3, #0 - strbhi r3, [r9, #-192] -.L2391: - ldrb r3, [r4, #8] @ zero_extendqisi2 - ldr r2, [r5, #4060] - cbnz r3, .L2392 - ldrh r1, [r2, r7, lsl #1] - cbz r1, .L2412 - ldrh r3, [r10, #1864] + strbhi r3, [r8, #320] +.L2379: + ldrb r3, [r5, #8] @ zero_extendqisi2 + ldr r2, [r4, #228] + cbnz r3, .L2380 + ldrh r1, [r2, r6, lsl #1] + cbz r1, .L2400 + ldrh r3, [r9, #2376] add r3, r3, r1 uxth r3, r3 - b .L2393 -.L2412: + b .L2381 +.L2400: movs r3, #2 -.L2393: - strh r3, [r2, r7, lsl #1] @ movhi - mov r0, r7 - ldr r3, [r6] +.L2381: + strh r3, [r2, r6, lsl #1] @ movhi + mov r0, r6 + ldr r3, [r4, #512] movs r1, #0 adds r3, r3, #1 - str r3, [r6] + str r3, [r4, #512] bl ftl_set_blk_mode - b .L2394 -.L2392: - ldrh r3, [r2, r7, lsl #1] - lsrs r0, r7, #5 - and r1, r7, #31 + b .L2382 +.L2380: + ldrh r3, [r2, r6, lsl #1] + lsrs r0, r6, #5 + and r1, r6, #31 adds r3, r3, #1 - strh r3, [r2, r7, lsl #1] @ movhi - ldr r3, [r6, #4] - ldr r2, [r6, #-44] + strh r3, [r2, r6, lsl #1] @ movhi + ldr r3, [r4, #516] + ldr r2, [r4, #468] adds r3, r3, #1 - str r3, [r6, #4] + str r3, [r4, #516] movs r3, #1 lsls r3, r3, r1 ldr r1, [r2, r0, lsl #2] orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2394: - ldr r3, [r5, #4060] - ldr r2, [r6, #12] - ldrh r1, [r5, #1812] - ldrh r3, [r3, r7, lsl #1] +.L2382: + ldr r3, [r4, #228] + ldr r2, [r4, #524] + ldr r0, [r4, #512] + ldrh r3, [r3, r6, lsl #1] + ldrh r1, [r9, #2324] cmp r3, r2 - ldrh r2, [r5, #1864] + ldrh r2, [r9, #2376] it hi - strhi r3, [r9, #12] - ldmia r6, {r0, r3} + strhi r3, [r8, #524] + ldr r3, [r4, #516] mla r0, r0, r2, r3 bl __aeabi_uidiv - ldr r2, [r6, #1820] - ldr r1, [r5, #4056] + ldr r2, [r4, #3356] + ldr r1, [r4, #224] ldr r3, [r2, #16] adds r3, r3, #1 str r3, [r2, #16] movs r3, #36 adds r2, r1, #4 - mla r3, r3, r8, r1 + mla r3, r3, r7, r1 adds r3, r3, #40 - str r0, [r6, #8] -.L2396: + str r0, [r4, #520] +.L2384: adds r2, r2, #36 cmp r2, r3 - beq .L2434 + beq .L2422 ldr r1, [r2, #-36] bic r1, r1, #1020 bic r1, r1, #3 str r1, [r2, #-36] - b .L2396 -.L2434: - ldrb r3, [r5, #140] @ zero_extendqisi2 - cbz r3, .L2398 - ldrb r3, [r4, #8] @ zero_extendqisi2 - mov r2, r8 - ldr r0, [r10, #4056] + b .L2384 +.L2422: + ldrb r3, [r9, #140] @ zero_extendqisi2 + cbz r3, .L2386 + ldrb r3, [r5, #8] @ zero_extendqisi2 + mov r2, r7 + ldr r0, [r4, #224] cmp r3, #1 ite eq moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2398: - ldrb r1, [r4, #8] @ zero_extendqisi2 - mov r2, r8 - ldr r0, [r5, #4056] - mov fp, #0 +.L2386: + mov r2, r7 + ldr r0, [r4, #224] + ldrb r1, [r5, #8] @ zero_extendqisi2 + mov r10, #0 bl FlashEraseBlocks - add r1, r4, #16 + add r2, r5, #16 mov ip, #36 - mov r2, fp -.L2400: - uxth r3, fp - cmp r3, r8 - bcs .L2435 - mul r3, ip, fp - ldr lr, [r5, #4056] - add r0, lr, r3 - ldr r3, [lr, r3] - cmp r3, #-1 - bne .L2401 + mov fp, r10 +.L2388: + uxth r3, r10 + cmp r3, r7 + bcs .L2423 + mul r3, ip, r10 + ldr r1, [r4, #224] + adds r0, r1, r3 + ldr r3, [r1, r3] + adds r1, r3, #1 + bne .L2389 ldr r0, [r0, #4] - adds r2, r2, #1 + add fp, fp, #1 str ip, [sp, #12] ubfx r0, r0, #10, #16 str r3, [sp, #8] - str r1, [sp, #4] - str r2, [sp] + str r2, [sp, #4] bl FtlBbmMapBadBlock ldr r3, [sp, #8] - ldr r1, [sp, #4] + ldr r2, [sp, #4] ldr ip, [sp, #12] - ldr r2, [sp] - strh r3, [r1] @ movhi - ldrb r3, [r4, #7] @ zero_extendqisi2 + strh r3, [r2] @ movhi + ldrb r3, [r5, #7] @ zero_extendqisi2 subs r3, r3, #1 - strb r3, [r4, #7] -.L2401: - add fp, fp, #1 - adds r1, r1, #2 - b .L2400 -.L2435: - cbz r2, .L2403 - mov r0, r7 + strb r3, [r5, #7] +.L2389: + add r10, r10, #1 + adds r2, r2, #2 + b .L2388 +.L2423: + cmp fp, #0 + beq .L2391 + mov r0, r6 bl update_multiplier_value bl FtlBbmTblFlush -.L2403: - ldrb r3, [r4, #7] @ zero_extendqisi2 - cbnz r3, .L2404 - ldr r3, [r6, #-220] -.L2431: +.L2391: + ldrb r3, [r5, #7] @ zero_extendqisi2 + cbnz r3, .L2392 + ldr r3, [r4, #292] +.L2419: movw r2, #65535 - strh r2, [r3, r7, lsl #1] @ movhi - b .L2382 -.L2404: - ldrh r2, [r5, #1872] - strh r7, [r4] @ movhi + strh r2, [r3, r6, lsl #1] @ movhi + b .L2370 +.L2392: + ldr r2, .L2424+16 + ldrh r2, [r2, #2384] + strh r6, [r5] @ movhi smulbb r3, r2, r3 movs r2, #0 - strh r2, [r4, #2] @ movhi - strb r2, [r4, #6] - ldr r2, [r6, #-8] + strh r2, [r5, #2] @ movhi + strb r2, [r5, #6] + ldr r2, [r4, #504] uxth r3, r3 - strh r3, [r4, #4] @ movhi - str r2, [r4, #12] + strh r3, [r5, #4] @ movhi + str r2, [r5, #12] adds r2, r2, #1 - str r2, [r6, #-8] - ldr r2, [r6, #-220] - ldrh r1, [r4] + str r2, [r4, #504] + ldr r2, [r4, #292] + ldrh r1, [r5] strh r3, [r2, r1, lsl #1] @ movhi -.L2381: +.L2369: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2437: +.L2425: .align 2 -.L2436: - .word .LANCHOR0 - .word .LANCHOR2-104 - .word .LANCHOR2-208 - .word .LANCHOR2-200 +.L2424: .word .LANCHOR2 + .word .LANCHOR2+408 + .word .LANCHOR2+304 + .word .LANCHOR2+312 + .word .LANCHOR0 .fnend .size allocate_data_superblock, .-allocate_data_superblock .align 1 @@ -15009,76 +14869,76 @@ 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, .L2451 + ldr r5, .L2439 str r0, [sp] - ldrh r3, [r5, #666] + ldrh r3, [r5, #1178] cmp r3, #0 - beq .L2440 - ldr r7, .L2451+4 + beq .L2428 + ldr r7, .L2439+4 mov r10, #0 mov r8, r5 -.L2439: - ldrh r2, [r7, #1804] +.L2427: + ldrh r2, [r7, #2316] uxth r3, r10 cmp r2, r3 - bls .L2448 + bls .L2436 add r3, r3, r7 ldr r1, [sp] mov fp, #0 - ldrb r0, [r3, #1832] @ zero_extendqisi2 + ldrb r0, [r3, #2344] @ zero_extendqisi2 bl V2P_block - ldr r2, .L2451+8 + ldr r2, .L2439+8 mov r9, r0 -.L2441: - ldrh r3, [r5, #666] +.L2429: + ldrh r3, [r5, #1178] uxth r4, fp cmp r3, r4 - bls .L2449 + bls .L2437 lsls r6, r4, #1 add r3, r8, r6 - ldrh r3, [r3, #668] + ldrh r3, [r3, #1180] cmp r3, r9 - bne .L2442 + bne .L2430 mov r1, r9 - ldr r0, .L2451+12 + ldr r0, .L2439+12 str r2, [sp, #4] bl printk mov r0, r9 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh r1, [r8, #666] + ldrh r1, [r8, #1178] ldr r2, [sp, #4] adds r3, r2, r6 -.L2443: +.L2431: cmp r4, r1 - bcs .L2450 + bcs .L2438 ldrh r0, [r3, #2] adds r4, r4, #1 uxth r4, r4 strh r0, [r3], #2 @ movhi - b .L2443 -.L2450: + b .L2431 +.L2438: subs r1, r1, #1 - strh r1, [r5, #666] @ movhi -.L2442: + strh r1, [r5, #1178] @ movhi +.L2430: add fp, fp, #1 - b .L2441 -.L2449: + b .L2429 +.L2437: add r10, r10, #1 - b .L2439 -.L2448: + b .L2427 +.L2436: bl FtlGcReFreshBadBlk -.L2440: +.L2428: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2452: +.L2440: .align 2 -.L2451: +.L2439: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+668 + .word .LANCHOR2+1180 .word .LC126 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk @@ -15091,53 +14951,53 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2462 + ldr r2, .L2450 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 - ldr r3, [r2, #-220] + ldr r3, [r2, #292] mov r5, r2 ldrh r3, [r3, r0, lsl #1] - cbnz r3, .L2454 - ldrh r1, [r2, #40] + cbnz r3, .L2442 + ldrh r1, [r2, #552] cmp r1, r0 - bne .L2455 + bne .L2443 movw r3, #65535 - strh r3, [r2, #40] @ movhi - b .L2456 -.L2455: - ldrh r1, [r2, #-200] + strh r3, [r2, #552] @ movhi + b .L2444 +.L2443: + ldrh r1, [r2, #312] cmp r1, r0 - beq .L2461 - ldrh r1, [r2, #-152] + beq .L2449 + ldrh r1, [r2, #360] cmp r1, r0 - beq .L2461 - ldrh r2, [r2, #-104] + beq .L2449 + ldrh r2, [r2, #408] cmp r2, r0 - beq .L2461 -.L2456: + beq .L2449 +.L2444: mov r1, r4 - ldr r0, .L2462+4 + ldr r0, .L2450+4 bl List_remove_node - ldrh r3, [r5, #-212] + ldrh r3, [r5, #300] mov r0, r4 subs r3, r3, #1 - strh r3, [r5, #-212] @ movhi + strh r3, [r5, #300] @ movhi bl free_data_superblock mov r0, r4 bl FtlGcFreeBadSuperBlk movs r0, #1 pop {r3, r4, r5, pc} -.L2454: +.L2442: bl List_update_data_list -.L2461: +.L2449: movs r0, #0 pop {r3, r4, r5, pc} -.L2463: +.L2451: .align 2 -.L2462: +.L2450: .word .LANCHOR2 - .word .LANCHOR2-224 + .word .LANCHOR2+288 .fnend .size update_vpc_list, .-update_vpc_list .align 1 @@ -15154,64 +15014,64 @@ decrement_vpc_count: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - ldr r5, .L2474 - beq .L2465 - ldr r3, [r5, #-220] + ldr r5, .L2462 + beq .L2453 + ldr r3, [r5, #292] ldrh r2, [r3, r0, lsl #1] - cbnz r2, .L2466 + cbnz r2, .L2454 mov r1, r4 - ldr r0, .L2474+4 + ldr r0, .L2462+4 bl printk - ldr r3, [r5, #-220] + ldr r3, [r5, #292] movs r2, #32 - sub r0, r5, #208 + add r0, r5, #304 mov r1, r4 strh r2, [r3, r4, lsl #1] @ movhi bl test_node_in_list - cbz r0, .L2467 + cbz r0, .L2455 mov r1, r4 - sub r0, r5, #208 + add r0, r5, #304 bl List_remove_node - ldrh r3, [r5, #-204] + ldrh r3, [r5, #308] mov r0, r4 subs r3, r3, #1 - strh r3, [r5, #-204] @ movhi + strh r3, [r5, #308] @ movhi bl INSERT_DATA_LIST - ldr r3, [r5, #-220] - ldr r0, .L2474+8 + ldr r3, [r5, #292] + ldr r0, .L2462+8 mov r1, r4 ldrh r2, [r3, r4, lsl #1] bl printk -.L2467: +.L2455: mov r0, r4 bl FtlGcRefreshBlock - b .L2470 -.L2466: + b .L2458 +.L2454: subs r2, r2, #1 strh r2, [r3, r0, lsl #1] @ movhi -.L2465: - ldrh r0, [r5, #1920] +.L2453: + ldrh r0, [r5, #3456] movw r3, #65535 - ldr r6, .L2474 + ldr r6, .L2462 cmp r0, r3 - bne .L2469 - strh r4, [r6, #1920] @ movhi - b .L2470 -.L2469: + bne .L2457 + strh r4, [r6, #3456] @ movhi + b .L2458 +.L2457: cmp r0, r4 - beq .L2470 + beq .L2458 bl update_vpc_list - strh r4, [r6, #1920] @ movhi + strh r4, [r6, #3456] @ movhi adds r0, r0, #0 it ne movne r0, #1 pop {r4, r5, r6, pc} -.L2470: +.L2458: movs r0, #0 pop {r4, r5, r6, pc} -.L2475: +.L2463: .align 2 -.L2474: +.L2462: .word .LANCHOR2 .word .LC127 .word .LC128 @@ -15231,22 +15091,22 @@ FtlSlcSuperblockCheck: mov r4, r0 ldrh r3, [r0, #4] cmp r3, #0 - beq .L2476 + beq .L2464 ldrh r3, [r0] movw r5, #65535 cmp r3, r5 - beq .L2476 + beq .L2464 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r7, .L2488 + ldr r7, .L2476 adds r3, r3, #8 - ldr r6, .L2488+4 + ldr r6, .L2476+4 ldrh r3, [r0, r3, lsl #1] -.L2480: +.L2468: cmp r3, r5 - bne .L2487 -.L2482: + bne .L2475 +.L2470: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r2, [r7, #1804] + ldrh r2, [r7, #2316] adds r3, r3, #1 uxtb r3, r3 strb r3, [r4, #6] @@ -15261,18 +15121,18 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r3, [r4, r3, lsl #1] - b .L2480 -.L2487: + b .L2468 +.L2475: ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2483 + bne .L2471 ldrb r3, [r7, #140] @ zero_extendqisi2 - cbnz r3, .L2483 + cbnz r3, .L2471 ldrh r3, [r4, #2] add r3, r6, r3, lsl #1 - ldrh r3, [r3, #704] + ldrh r3, [r3, #1216] cmp r3, r5 - bne .L2483 + bne .L2471 ldrh r3, [r4, #4] ldrh r0, [r4] subs r3, r3, #1 @@ -15280,39 +15140,39 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L2482 + bne .L2470 ldrh r3, [r4, #2] strb r2, [r4, #6] adds r3, r3, #1 strh r3, [r4, #2] @ movhi pop {r3, r4, r5, r6, r7, pc} -.L2483: - ldr r2, .L2488 +.L2471: + ldr r2, .L2476 ldrb r3, [r2, #140] @ zero_extendqisi2 - cbz r3, .L2476 + cbz r3, .L2464 cmp r1, #1 - bne .L2476 + bne .L2464 ldrh r1, [r4, #2] - ldrh r3, [r2, #1874] + ldrh r3, [r2, #2386] cmp r1, r3 - bcc .L2476 - ldr r3, .L2488+4 + bcc .L2464 + ldr r3, .L2476+4 ldrh r0, [r4] ldrh r5, [r4, #4] - ldr r1, [r3, #-220] + ldr r1, [r3, #292] ldrh r3, [r1, r0, lsl #1] subs r3, r3, r5 strh r3, [r1, r0, lsl #1] @ movhi - ldrh r2, [r2, #1872] + ldrh r2, [r2, #2384] movs r3, #0 strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L2476: +.L2464: pop {r3, r4, r5, r6, r7, pc} -.L2489: +.L2477: .align 2 -.L2488: +.L2476: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -15333,17 +15193,17 @@ get_new_active_ppa: mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 movw r7, #65535 - ldr r8, .L2507+4 + ldr r8, .L2495+4 adds r3, r3, #8 - ldr r5, .L2507 + ldr r5, .L2495 ldrh r2, [r0, r3, lsl #1] -.L2491: +.L2479: cmp r2, r7 - ldr r6, .L2507+4 - bne .L2506 -.L2492: + ldr r6, .L2495+4 + bne .L2494 +.L2480: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r2, [r8, #1804] + ldrh r2, [r8, #2316] adds r3, r3, #1 uxtb r3, r3 strb r3, [r4, #6] @@ -15358,34 +15218,34 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r2, [r4, r3, lsl #1] - b .L2491 -.L2506: + b .L2479 +.L2494: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r1, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L2494 + bne .L2482 ldrb r0, [r8, #140] @ zero_extendqisi2 - cbnz r0, .L2494 + cbnz r0, .L2482 add r0, r5, r1, lsl #1 - ldrh r0, [r0, #704] + ldrh r0, [r0, #1216] cmp r0, r7 - bne .L2494 + bne .L2482 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2492 -.L2494: + b .L2480 +.L2482: movw r7, #65535 orr r5, r1, r2, lsl #10 mov r8, r7 subs r3, r3, #1 strh r3, [r4, #4] @ movhi -.L2495: +.L2483: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r1, [r6, #1804] -.L2497: + ldrh r1, [r6, #2316] +.L2485: adds r3, r3, #1 uxtb r3, r3 cmp r3, r1 @@ -15397,52 +15257,52 @@ get_new_active_ppa: add r2, r3, #8 ldrh r2, [r4, r2, lsl #1] cmp r2, r7 - beq .L2497 + beq .L2485 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2502 + bne .L2490 ldrb r3, [r6, #140] @ zero_extendqisi2 - cbnz r3, .L2499 + cbnz r3, .L2487 ldrh r2, [r4, #2] - ldr r3, .L2507 + ldr r3, .L2495 add r3, r3, r2, lsl #1 - ldrh r3, [r3, #704] + ldrh r3, [r3, #1216] cmp r3, r8 - bne .L2499 + bne .L2487 ldrh r3, [r4, #4] - cbz r3, .L2499 + cbz r3, .L2487 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2495 -.L2499: + b .L2483 +.L2487: ldrb r3, [r6, #140] @ zero_extendqisi2 - ldr r2, .L2507+4 - cbz r3, .L2502 + ldr r2, .L2495+4 + cbz r3, .L2490 ldrh r1, [r4, #2] - ldrh r3, [r2, #1874] + ldrh r3, [r2, #2386] cmp r1, r3 - bcc .L2502 - ldr r3, .L2507 + bcc .L2490 + ldr r3, .L2495 ldrh r0, [r4] ldrh r6, [r4, #4] - ldr r1, [r3, #-220] + ldr r1, [r3, #292] ldrh r3, [r1, r0, lsl #1] subs r3, r3, r6 strh r3, [r1, r0, lsl #1] @ movhi - ldrh r2, [r2, #1872] + ldrh r2, [r2, #2384] movs r3, #0 strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L2502: +.L2490: mov r0, r5 pop {r4, r5, r6, r7, r8, pc} -.L2508: +.L2496: .align 2 -.L2507: +.L2495: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -15456,201 +15316,199 @@ FtlVpcTblFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - ldr r5, .L2532 - ldr r3, [r5, #4052] + 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] cmp r3, #0 - bne .L2511 - ldr r4, .L2532+4 + bne .L2499 + ldr r5, .L2520+4 movs r1, #255 - ldr r2, [r4, #1776] - ldr r6, [r4, #1800] - str r2, [r4, #4060] - ldrh r2, [r4, #24] - str r6, [r4, #4064] - str r3, [r6, #12] - strh r2, [r6, #2] @ movhi + ldr r2, [r4, #3312] + ldr r7, [r4, #3336] + ldr r6, .L2520+8 + str r2, [r5, #1252] + ldrh r2, [r4, #536] + str r7, [r5, #1256] + str r3, [r7, #12] + strh r2, [r7, #2] @ movhi movw r2, #61604 - strh r2, [r6] @ movhi - ldr r2, [r4, #32] - str r3, [r6, #8] - ldr r3, .L2532+8 - str r2, [r6, #4] - ldrh r2, [r4, #-198] - str r3, [r5, #4068] - ldr r3, .L2532+12 - str r3, [r5, #4072] - ldrh r3, [r4, #30] - strh r3, [r5, #4076] @ movhi - ldrh r3, [r5, #1826] - strb r3, [r5, #4078] - ldrh r3, [r4, #-200] - strh r3, [r5, #4082] @ movhi - ldrb r3, [r4, #-194] @ zero_extendqisi2 + strh r2, [r7] @ movhi + ldr r2, [r4, #544] + str r3, [r7, #8] + ldr r3, .L2520+12 + str r2, [r7, #4] + ldrh r2, [r4, #314] + str r3, [r4, #236] + ldr r3, .L2520+16 + 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, [r5, #4084] @ movhi - ldrb r3, [r4, #-192] @ zero_extendqisi2 - ldrh r2, [r4, #-150] - strb r3, [r5, #4079] - ldrh r3, [r4, #-152] - strh r3, [r5, #4086] @ movhi - ldrb r3, [r4, #-146] @ zero_extendqisi2 + strh r3, [r4, #252] @ movhi + ldrb r3, [r4, #320] @ zero_extendqisi2 + ldrh r2, [r4, #362] + strb r3, [r4, #247] + ldrh r3, [r4, #360] + strh r3, [r4, #254] @ movhi + ldrb r3, [r4, #366] @ zero_extendqisi2 orr r3, r3, r2, lsl #6 - strh r3, [r5, #4088] @ movhi - ldrb r3, [r4, #-144] @ zero_extendqisi2 - strb r3, [r5, #4080] - ldrh r3, [r4, #-104] - strh r3, [r5, #4090] @ movhi - ldrh r2, [r4, #-102] - ldrb r3, [r4, #-98] @ zero_extendqisi2 - ldr r0, [r4, #4060] + strh r3, [r4, #256] @ movhi + ldrb r3, [r4, #368] @ zero_extendqisi2 + strb r3, [r4, #248] + ldrh r3, [r4, #408] + strh r3, [r4, #258] @ movhi + ldrh r2, [r4, #410] + ldrb r3, [r4, #414] @ zero_extendqisi2 + ldr r0, [r5, #1252] orr r3, r3, r2, lsl #6 - strh r3, [r5, #4092] @ movhi - ldrb r3, [r4, #-96] @ zero_extendqisi2 - ldr r2, [r4] - strb r3, [r5, #4081] - movw r3, #4100 - str r2, [r5, r3] - movw r3, #4108 - ldr r2, [r4, #-8] - str r2, [r5, r3] - movw r3, #4104 - ldr r2, [r4, #-4] - str r2, [r5, r3] - movw r3, #4112 - ldrh r2, [r4, #658] - strh r2, [r5, r3] @ movhi - movw r3, #4114 - ldrh r2, [r4, #660] - strh r2, [r5, r3] @ movhi - ldrh r2, [r5, #1882] + 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] + str r3, [r4, #272] + ldrh r3, [r4, #1170] + strh r3, [r4, #280] @ movhi + ldrh r3, [r4, #1172] + strh r3, [r4, #282] @ movhi bl ftl_memset - addw r1, r5, #4068 + add r1, r4, #236 movs r2, #48 - ldr r0, [r4, #4060] + ldr r0, [r5, #1252] bl ftl_memcpy - ldrh r2, [r5, #1812] - ldr r0, [r4, #4060] - ldr r1, [r4, #-220] + ldrh r2, [r6, #2324] + ldr r0, [r5, #1252] + ldr r1, [r4, #292] lsls r2, r2, #1 adds r0, r0, #48 bl ftl_memcpy - ldrh r2, [r5, #1812] - ldr r0, [r4, #4060] + ldrh r2, [r6, #2324] + ldr r0, [r5, #1252] add r3, r2, #24 - ldr r1, [r4, #-44] + ldr r1, [r4, #468] ubfx r3, r3, #1, #30 lsrs r2, r2, #3 adds r2, r2, #4 add r0, r0, r3, lsl #2 bl ftl_memcpy - ldrh r3, [r5, #1916] - cbz r3, .L2512 - ldrh r2, [r5, #1812] - ldr r0, [r4, #4060] - ldr r1, [r4, #1848] + ldrh r3, [r6, #2428] + cbz r3, .L2500 + ldrh r2, [r6, #2324] + ldr r0, [r5, #1252] + ldr r1, [r4, #3384] lsrs r3, r2, #3 add r3, r3, r2, lsl #1 - ldrh r2, [r5, #1908] + ldrh r2, [r6, #2420] adds r3, r3, #52 ubfx r3, r3, #2, #14 lsls r2, r2, #2 add r0, r0, r3, lsl #2 bl ftl_memcpy -.L2512: +.L2500: movs r0, #0 - ldr r7, .L2532+4 + ldr r10, .L2520 bl FtlUpdateVaildLpn - ldr r10, .L2532 + ldr fp, .L2520+8 mov r8, #0 movw r9, #65535 -.L2513: - ldr r3, [r4, #1776] - ldrh r2, [r4, #24] - ldrh r1, [r4, #26] - str r3, [r4, #4060] - ldr r3, [r4, #1800] - str r3, [r4, #4064] +.L2501: + ldr r3, [r4, #3312] + ldrh r2, [r4, #536] + ldrh r1, [r4, #538] + str r3, [r5, #1252] + ldr r3, [r4, #3336] + str r3, [r5, #1256] orr r3, r1, r2, lsl #10 - str r3, [r4, #4056] - ldrh r3, [r5, #1874] + str r3, [r5, #1248] + ldrh r3, [r6, #2386] subs r3, r3, #1 cmp r1, r3 - blt .L2514 + blt .L2502 movs r3, #0 - ldrh r9, [r7, #28] - strh r3, [r7, #26] @ movhi - strh r2, [r7, #28] @ movhi + ldrh r9, [r10, #540] + strh r3, [r10, #538] @ movhi + strh r2, [r10, #540] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [r7, #-8] + ldr r3, [r10, #504] + ldr r1, .L2520+4 adds r2, r3, #1 - str r2, [r7, #-8] - str r3, [r7, #32] + str r2, [r10, #504] + str r3, [r10, #544] lsls r2, r0, #10 - strh r0, [r7, #24] @ movhi - str r2, [r7, #4056] - str r3, [r6, #4] - strh r0, [r6, #2] @ movhi -.L2514: - ldrb r3, [r5] @ zero_extendqisi2 - cbz r3, .L2515 - ldr r0, [r4, #1776] - ldrh r1, [r10, #1882] + strh r0, [r10, #536] @ movhi + str r2, [r1, #1248] + str r3, [r7, #4] + strh r0, [r7, #2] @ movhi +.L2502: + ldrb r3, [r6] @ zero_extendqisi2 + cbz r3, .L2503 + ldr r0, [r4, #3312] + ldrh r1, [fp, #2394] bl js_hash - str r0, [r6, #12] -.L2515: + str r0, [r7, #12] +.L2503: movs r1, #1 - ldr r0, .L2532+16 + ldr r0, .L2520+20 mov r2, r1 mov r3, r1 bl FlashProgPages - ldrh r3, [r4, #26] - ldr r2, [r4, #4052] + ldrh r3, [r4, #538] + ldr r2, [r5, #1244] adds r3, r3, #1 adds r1, r2, #1 uxth r3, r3 - strh r3, [r4, #26] @ movhi - bne .L2516 + strh r3, [r4, #538] @ movhi + bne .L2504 cmp r3, #1 add r8, r8, #1 it eq - ldrheq r3, [r5, #1874] + ldrheq r3, [r6, #2386] uxth r8, r8 itt eq addeq r3, r3, #-1 - strheq r3, [r7, #26] @ movhi + strheq r3, [r10, #538] @ movhi cmp r8, #3 - bls .L2513 - ldr r0, .L2532+20 + bls .L2501 + ldr r0, .L2520+24 mov r2, r8 - ldr r1, [r4, #4056] + ldr r1, [r5, #1248] bl printk movs r3, #1 - str r3, [r5, #4052] - b .L2511 -.L2516: + str r3, [r4, #220] + b .L2499 +.L2504: cmp r3, #1 - beq .L2513 + beq .L2501 cmp r2, #256 - beq .L2513 + beq .L2501 movw r3, #65535 cmp r9, r3 - beq .L2511 + beq .L2499 mov r0, r9 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L2511: +.L2499: movs r0, #0 - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2533: + pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2521: .align 2 -.L2532: - .word .LANCHOR0 +.L2520: .word .LANCHOR2 + .word .LANCHOR4 + .word .LANCHOR0 .word 1179929683 - .word 1342177367 - .word .LANCHOR2+4052 + .word 1342177376 + .word .LANCHOR4+1244 .word .LC129 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush @@ -15661,114 +15519,102 @@ FtlVpcTblFlush: .type FtlSuperblockPowerLostFix, %function FtlSuperblockPowerLostFix: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2551 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 - ldr r2, [r3] mov r4, r0 - str r3, [sp, #4] - str r2, [sp, #44] - ldr r2, .L2551+4 - ldr r5, [r2, #4052] - mov r8, r2 - cmp r5, #0 - bne .L2534 + ldr r5, .L2538 + .pad #44 + sub sp, sp, #44 + ldr r3, [r5, #220] + cmp r3, #0 + bne .L2522 + ldr r2, .L2538+4 ldrb r6, [r2, #140] @ zero_extendqisi2 - cbz r6, .L2550 + mov r8, r2 + cbz r6, .L2537 ldrb r6, [r0, #8] @ zero_extendqisi2 cmp r6, #1 - bne .L2546 - ldrh r9, [r0, #4] - b .L2536 -.L2546: - mov r6, r5 -.L2550: - mov r9, #12 -.L2536: - ldr r5, .L2551+8 + bne .L2533 + ldrh fp, [r0, #4] + b .L2524 +.L2533: + mov r6, r3 +.L2537: + mov fp, #12 +.L2524: + ldr r7, [r5, #3336] mov r3, #-1 - str r3, [sp, #24] - mov r10, #0 + str r3, [sp, #20] + mov r9, #0 + ldr r3, [r5, #3312] movw r2, #61589 - ldr r7, [r5, #1800] - mov fp, r5 - ldr r3, [r5, #1776] - str r7, [sp, #20] - str r3, [sp, #16] + str r7, [sp, #16] + ldr r10, .L2538 + str r3, [sp, #12] mvn r3, #2 str r3, [r7, #8] mvn r3, #1 str r3, [r7, #12] ldrh r3, [r4] - strh r10, [r7] @ movhi + strh r9, [r7] @ movhi strh r3, [r7, #2] @ movhi - ldr r3, [r5, #1776] + ldr r3, [r5, #3312] str r2, [r3] add r2, r2, #304087040 - ldr r3, [r5, #1776] + ldr r3, [r5, #3312] add r2, r2, #1269760 addw r2, r2, #1507 str r2, [r3, #4] -.L2537: - adds r9, r9, #-1 - bcc .L2540 +.L2525: + adds fp, fp, #-1 + bcc .L2528 ldrh r3, [r4, #4] - cbnz r3, .L2538 -.L2540: - ldr r2, [r5, #-220] + cbnz r3, .L2526 +.L2528: + ldr r2, [r5, #292] 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, #1872] + ldrh r3, [r8, #2384] strh r3, [r4, #2] @ movhi movs r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - b .L2534 -.L2538: + b .L2522 +.L2526: mov r0, r4 bl get_new_active_ppa - str r0, [sp, #12] + str r0, [sp, #8] adds r0, r0, #1 - beq .L2540 - ldr r3, [r5, #-4] + beq .L2528 + ldr r3, [r5, #508] movs r1, #1 - add r0, sp, #8 + add r0, sp, #4 str r3, [r7, #4] adds r3, r3, #1 adds r2, r3, #1 mov r2, r6 it eq - moveq r3, r10 - str r3, [fp, #-4] + moveq r3, r9 + str r3, [r10, #508] movs r3, #0 bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L2537 -.L2534: - ldr r3, [sp, #4] - ldr r2, [sp, #44] - ldr r3, [r3] - cmp r2, r3 - beq .L2544 - bl __stack_chk_fail -.L2544: - add sp, sp, #52 + b .L2525 +.L2522: + add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2552: +.L2539: .align 2 -.L2551: - .word __stack_chk_guard - .word .LANCHOR0 +.L2538: .word .LANCHOR2 + .word .LANCHOR0 .fnend .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 1 @@ -15785,21 +15631,20 @@ ftl_map_blk_gc: .pad #12 mov r4, r0 ldr r5, [r0, #12] - ldr r9, [r0, #24] + ldr r8, [r0, #24] bl ftl_free_no_use_map_blk ldrh r3, [r4, #10] ldrh r2, [r4, #8] subs r3, r3, #4 - ldr r8, .L2566+12 cmp r2, r3 - blt .L2554 + blt .L2541 uxth r0, r0 ldrh r10, [r5, r0, lsl #1] cmp r10, #0 - beq .L2554 + beq .L2541 ldr r3, [r4, #32] cmp r3, #0 - bne .L2554 + bne .L2541 movs r2, #1 str r2, [r4, #32] strh r3, [r5, r0, lsl #1] @ movhi @@ -15807,88 +15652,93 @@ ftl_map_blk_gc: ldrh r2, [r4, #2] subs r3, r3, #1 strh r3, [r4, #8] @ movhi - ldrh r3, [r8, #1874] + ldr r3, .L2553 + ldrh r3, [r3, #2386] cmp r2, r3 - bcc .L2555 + bcc .L2542 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2555: - ldr r5, .L2566 +.L2542: + ldr r6, .L2553+4 mov fp, #0 -.L2556: - ldrh r3, [r4, #6] - uxth r6, fp - cmp r3, r6 - bls .L2565 - ldr r2, [r9, r6, lsl #2] - add r3, r9, r6, lsl #2 + ldr r9, .L2553+16 +.L2543: + ldrh r2, [r4, #6] + uxth r5, fp + cmp r2, r5 + bls .L2552 + ldr r2, [r8, r5, lsl #2] + add ip, r8, r5, lsl #2 cmp r10, r2, lsr #10 - bne .L2557 - ldr r2, [r5, #1780] + bne .L2544 + ldr r2, [r9, #3316] movs r1, #1 - ldr r7, [r5, #1800] - ldr r0, .L2566+4 - str r2, [r5, #4060] - str r7, [r5, #4064] - ldr r2, [r9, r6, lsl #2] - str r3, [sp, #4] - str r2, [r5, #4056] + ldr r7, [r9, #3336] + ldr r0, .L2553+8 + str r2, [r6, #1252] + str r7, [r6, #1256] + ldr r2, [r8, r5, lsl #2] + str ip, [sp, #4] + str r2, [r6, #1248] mov r2, r1 bl FlashReadPages - ldr r2, [r5, #4052] + ldr r2, [r6, #1244] adds r2, r2, #1 - ldr r3, [sp, #4] - bne .L2558 -.L2560: - movs r2, #0 - str r2, [r3] - ldr r3, .L2566 - ldr r0, .L2566+8 + ldr ip, [sp, #4] + bne .L2545 +.L2547: + movs r3, #0 + str r3, [ip] + ldr r3, .L2553+4 ldrh r2, [r7, #8] - ldr r1, [r3, #4056] + ldr r0, .L2553+12 + ldr r1, [r3, #1248] bl printk - movs r3, #1 - str r3, [r8, #4052] - b .L2559 -.L2558: + ldr r3, .L2553+16 + movs r2, #1 + str r2, [r3, #220] + b .L2546 +.L2545: ldrh r1, [r7, #8] - cmp r1, r6 - bne .L2560 + cmp r1, r5 + bne .L2547 ldrh r0, [r7] ldrh r2, [r4, #4] cmp r0, r2 - bne .L2560 + bne .L2547 mov r0, r4 - ldr r2, [r5, #4060] + ldr r2, [r6, #1252] bl FtlMapWritePage -.L2557: +.L2544: add fp, fp, #1 - b .L2556 -.L2565: + b .L2543 +.L2552: mov r0, r10 movs r1, #1 bl FtlFreeSysBlkQueueIn movs r3, #0 str r3, [r4, #32] -.L2554: +.L2541: + ldr r3, .L2553 ldrh r2, [r4, #2] - ldrh r3, [r8, #1874] + ldrh r3, [r3, #2386] cmp r2, r3 - bcc .L2559 + bcc .L2546 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2559: +.L2546: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2567: +.L2554: .align 2 -.L2566: - .word .LANCHOR2 - .word .LANCHOR2+4052 - .word .LC130 +.L2553: .word .LANCHOR0 + .word .LANCHOR4 + .word .LANCHOR4+1244 + .word .LC130 + .word .LANCHOR2 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 1 @@ -15900,85 +15750,85 @@ Ftl_write_map_blk_to_last_page: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2579 - push {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} + push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r0 - ldr r6, [r2, #4052] - mov r8, r2 - ldr r5, [r0, #12] + ldr r6, .L2566 + ldr r7, [r0, #12] ldr r10, [r0, #24] - cmp r6, #0 - bne .L2569 + ldr r5, [r6, #220] + cmp r5, #0 + bne .L2556 ldrh r3, [r0] movw r2, #65535 cmp r3, r2 - bne .L2570 + bne .L2557 ldrh r3, [r0, #8] adds r3, r3, #1 strh r3, [r0, #8] @ movhi bl FtlFreeSysBlkQueueOut - strh r0, [r5] @ movhi + strh r0, [r7] @ movhi ldr r3, [r4, #28] - strh r6, [r4, #2] @ movhi + strh r5, [r4, #2] @ movhi adds r3, r3, #1 - strh r6, [r4] @ movhi + strh r5, [r4] @ movhi str r3, [r4, #28] - b .L2569 -.L2570: - ldrh r9, [r5, r3, lsl #1] + b .L2556 +.L2557: + ldrh r9, [r7, r3, lsl #1] movs r1, #255 - ldr r5, .L2579+4 + ldr fp, .L2566+12 ldrh r3, [r0, #2] + ldr r7, [r6, #3336] orr r3, r3, r9, lsl #10 - str r3, [r5, #4056] - ldr r3, [r5, #1776] - ldr r7, [r5, #1800] - str r3, [r5, #4060] + str r3, [fp, #1248] + ldr r3, [r6, #3312] + str r7, [fp, #1256] + ldr r8, .L2566+4 + str r3, [fp, #1252] ldr r3, [r0, #28] - str r7, [r5, #4064] str r3, [r7, #4] movw r3, #64245 strh r3, [r7, #8] @ movhi ldrh r3, [r0, #4] strh r9, [r7, #2] @ movhi strh r3, [r7] @ movhi - ldrh r2, [r8, #1874] - ldr r0, [r5, #1776] + ldrh r2, [r8, #2386] + ldr r0, [r6, #3312] lsls r2, r2, #3 bl ftl_memset - mov r3, r6 -.L2571: - ldrh r1, [r4, #6] - uxth r2, r6 - cmp r1, r2 - bls .L2578 - ldr r1, [r10, r2, lsl #2] - cmp r9, r1, lsr #10 - bne .L2572 - adds r3, r3, #1 - ldr r1, [r5, #1776] - uxth r3, r3 - str r2, [r1, r3, lsl #3] - ldr r1, [r10, r2, lsl #2] - ldr r2, [r5, #1776] - add r2, r2, r3, lsl #3 - str r1, [r2, #4] -.L2572: - adds r6, r6, #1 - b .L2571 -.L2578: + mov r1, r5 +.L2558: + ldrh r2, [r4, #6] + uxth r3, r1 + cmp r2, r3 + bls .L2565 + ldr r2, [r10, r3, lsl #2] + cmp r9, r2, lsr #10 + bne .L2559 + adds r5, r5, #1 + ldr r2, [r6, #3312] + uxth r5, r5 + str r3, [r2, r5, lsl #3] + ldr r2, [r10, r3, lsl #2] + ldr r3, [r6, #3312] + add r3, r3, r5, lsl #3 + str r2, [r3, #4] +.L2559: + adds r1, r1, #1 + b .L2558 +.L2565: ldrb r3, [r8] @ zero_extendqisi2 - cbz r3, .L2574 - ldr r3, .L2579 - ldr r0, [r5, #4060] - ldrh r1, [r3, #1882] + cbz r3, .L2561 + ldr r3, .L2566+4 + ldr r0, [fp, #1252] + ldrh r1, [r3, #2394] bl js_hash str r0, [r7, #12] -.L2574: +.L2561: movs r1, #1 movs r3, #0 - ldr r0, .L2579+8 + ldr r0, .L2566+8 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -15986,15 +15836,16 @@ Ftl_write_map_blk_to_last_page: adds r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2569: +.L2556: movs r0, #0 - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2580: + pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2567: .align 2 -.L2579: - .word .LANCHOR0 +.L2566: .word .LANCHOR2 - .word .LANCHOR2+4052 + .word .LANCHOR0 + .word .LANCHOR4+1244 + .word .LANCHOR4 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 1 @@ -16009,129 +15860,134 @@ FtlMapWritePage: 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 - movs r4, #0 - ldr r6, .L2605 - mov fp, r0 - ldr r7, .L2605+4 - mov r10, r1 + movs r6, #0 + ldr r7, .L2592 + mov r4, r0 + mov r9, r1 str r2, [sp] - mov r5, r6 -.L2582: - ldr r3, [r6, #-24] - ldr r9, .L2605+4 +.L2569: + ldr r3, [r7, #488] + ldr fp, .L2592+4 adds r3, r3, #1 - str r3, [r6, #-24] - ldrh r3, [r7, #1874] - ldrh r2, [fp, #2] + str r3, [r7, #488] + ldr r3, .L2592+4 + ldrh r2, [r4, #2] + ldrh r3, [r3, #2386] subs r3, r3, #1 cmp r2, r3 - bge .L2583 - ldrh r2, [fp] + bge .L2570 + ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L2584 -.L2583: - mov r0, fp + bne .L2571 +.L2570: + mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L2584: - ldr r1, [r9, #4052] +.L2571: + ldr r3, .L2592 + ldr r1, [r3, #220] cmp r1, #0 - bne .L2600 - ldrh r2, [fp] - ldr r3, [fp, #12] - ldr r0, [r5, #1800] + bne .L2587 + ldrh r2, [r4] + ldr r3, [r4, #12] + ldr r5, .L2592+8 + ldr r0, [r7, #3336] ldrh r8, [r3, r2, lsl #1] movs r2, #16 - ldrh r3, [fp, #2] - str r0, [r5, #4064] + ldrh r3, [r4, #2] + mov r10, r5 + str r0, [r5, #1256] orr r3, r3, r8, lsl #10 - str r3, [r5, #4056] + str r3, [r5, #1248] ldr r3, [sp] - str r3, [r5, #4060] + str r3, [r5, #1252] bl ftl_memset - ldr r2, [fp, #28] - ldr r3, [r5, #4064] + ldr r2, [r4, #28] + ldr r3, [r5, #1256] str r2, [r3, #4] - strh r10, [r3, #8] @ movhi - ldrh r2, [fp, #4] + strh r9, [r3, #8] @ movhi + ldrh r2, [r4, #4] strh r8, [r3, #2] @ movhi strh r2, [r3] @ movhi - ldrb r2, [r7] @ zero_extendqisi2 - cbz r2, .L2586 - ldr r0, [r6, #4060] - ldrh r1, [r7, #1882] + ldrb r2, [fp] @ zero_extendqisi2 + cbz r2, .L2573 str r3, [sp, #4] + ldr r3, .L2592+4 + ldr r0, [r5, #1252] + ldrh r1, [r3, #2394] bl js_hash ldr r3, [sp, #4] str r0, [r3, #12] -.L2586: +.L2573: + ldr ip, .L2592+8 movs r1, #1 - ldr r0, .L2605+8 + addw r0, ip, #1244 mov r2, r1 mov r3, r1 + str ip, [sp, #4] bl FlashProgPages - ldrh r3, [fp, #2] + ldrh r3, [r4, #2] adds r3, r3, #1 uxth r3, r3 - strh r3, [fp, #2] @ movhi - ldr r2, [r5, #4052] + strh r3, [r4, #2] @ movhi + ldr r2, [r5, #1244] adds r1, r2, #1 - bne .L2587 - ldr r0, .L2605+12 - adds r4, r4, #1 - ldr r1, [r6, #4056] + ldr ip, [sp, #4] + bne .L2574 + ldr r0, .L2592+12 + adds r6, r6, #1 + ldr r1, [ip, #1248] bl printk - ldrh r3, [fp, #2] - uxth r4, r4 + ldrh r3, [r4, #2] + uxth r6, r6 cmp r3, #2 ittt ls - ldrhls r3, [r9, #1874] + ldrhls r3, [fp, #2386] addls r3, r3, #-1 - strhls r3, [fp, #2] @ movhi - cmp r4, #3 - bls .L2582 - ldr r3, .L2605 - mov r2, r4 - ldr r0, .L2605+16 - ldr r1, [r3, #4056] + strhls r3, [r4, #2] @ movhi + cmp r6, #3 + bls .L2569 + mov r2, r6 + ldr r0, .L2592+16 + ldr r1, [r10, #1248] bl printk - movs r3, #1 - str r3, [r9, #4052] - b .L2600 -.L2587: - cbz r2, .L2590 + ldr r3, .L2592 + movs r2, #1 + str r2, [r3, #220] + b .L2587 +.L2574: + cbz r2, .L2577 cmp r3, #1 - strh r8, [fp, #40] @ movhi - bne .L2591 -.L2592: + strh r8, [r4, #40] @ movhi + bne .L2578 +.L2579: movs r3, #0 - str r3, [fp, #36] - b .L2582 -.L2591: + str r3, [r4, #36] + b .L2569 +.L2578: cmp r2, #256 - b .L2604 -.L2590: + b .L2591 +.L2577: cmp r3, #1 -.L2604: - beq .L2592 - ldr r3, [fp, #36] +.L2591: + beq .L2579 + ldr r3, [r4, #36] cmp r3, #0 - bne .L2592 - ldr r3, .L2605 - ldr r2, [r3, #4056] - ldr r3, [fp, #24] - str r2, [r3, r10, lsl #2] -.L2600: + bne .L2579 + ldr r2, [r10, #1248] + ldr r3, [r4, #24] + str r2, [r3, r9, lsl #2] +.L2587: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2606: +.L2593: .align 2 -.L2605: +.L2592: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2+4052 + .word .LANCHOR4 .word .LC131 .word .LC132 .fnend @@ -16148,24 +16004,24 @@ flush_l2p_region: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r4, #12 - ldr r5, .L2608 + ldr r5, .L2595 muls r4, r0, r4 - addw r0, r5, #1868 - ldr r3, [r5, #-56] + addw r0, r5, #3404 + ldr r3, [r5, #456] adds r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] bl FtlMapWritePage - ldr r3, [r5, #-56] + ldr r3, [r5, #456] movs r0, #0 add r4, r4, r3 ldr r3, [r4, #4] bic r3, r3, #-2147483648 str r3, [r4, #4] pop {r3, r4, r5, pc} -.L2609: +.L2596: .align 2 -.L2608: +.L2595: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -16176,238 +16032,245 @@ flush_l2p_region: .type FtlMapTblRecovery, %function FtlMapTblRecovery: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #28 - sub sp, sp, #28 - ldr r3, [r0, #24] - mov r4, r0 - ldrh r10, [r0, #6] - movs r1, #0 - ldr r7, .L2652 - str r3, [sp] - ldr r3, [r0, #12] - lsl r2, r10, #2 - ldr r8, .L2652+8 - mov r5, r7 - mov r9, r7 - str r3, [sp, #4] + .pad #36 + sub sp, sp, #36 ldr r3, [r0, #16] - str r3, [sp, #16] - ldrh r3, [r0, #8] - ldr r0, [sp] + mov r4, r0 + ldrh r9, [r0, #6] + movs r1, #0 + ldr r7, [r0, #24] str r3, [sp, #12] + ldrh r3, [r0, #8] + lsl r2, r9, #2 + ldr r8, [r0, #12] + mov r0, r7 + ldr r10, .L2639+12 + str r3, [sp, #8] bl ftl_memset - ldr r3, [r7, #1776] - movs r2, #1 - ldr r6, [r7, #1800] - str r2, [r4, #36] - str r3, [r7, #4060] - movw r3, #65535 - str r6, [r7, #4064] - strh r3, [r4] @ movhi - strh r3, [r4, #2] @ movhi - movs r3, #0 - str r3, [r4, #32] - str r3, [r4, #28] - str r3, [sp, #8] -.L2611: - ldrh r2, [sp, #8] - ldr r3, [sp, #12] - ldr fp, .L2652+8 - sxth r7, r2 - cmp r7, r3 - bge .L2629 - ldr r3, [sp, #12] - subs r1, r3, #1 - cmp r7, r1 - lsl r1, r7, #1 - bne .L2612 - ldr r3, [sp, #4] - mov r8, #0 - str r2, [sp, #12] - add r3, r3, r1 - str r3, [sp, #8] - ldr r3, [sp, #4] + ldr r3, .L2639 + movs r0, #1 + ldr r2, .L2639+4 + str r0, [r4, #36] + ldr r1, [r3, #3312] + ldr r6, [r3, #3336] + mov r5, r2 + str r1, [r2, #1252] + movw r1, #65535 + str r6, [r2, #1256] + strh r1, [r4] @ movhi + strh r1, [r4, #2] @ movhi + movs r1, #0 + str r1, [r4, #32] + str r1, [r4, #28] + str r1, [sp, #4] + str r3, [sp, #20] +.L2598: + ldrh r2, [sp, #4] + ldr r1, [sp, #8] + ldr fp, .L2639+12 + sxth r3, r2 + cmp r3, r1 + bge .L2616 + ldr r1, [sp, #8] + subs r1, r1, #1 + cmp r3, r1 + lsl r1, r3, #1 + bne .L2599 + ldrh r0, [r8, r3, lsl #1] + str r2, [sp, #16] + add r2, r8, r1 movs r1, #1 - ldrh r0, [r3, r7, lsl #1] + str r2, [sp, #4] + str r3, [sp, #8] bl FtlGetLastWrittenPage - ldr r2, [sp, #12] - adds r3, r0, #1 - strh r3, [r4, #2] @ movhi + ldr r10, .L2639+4 + mov r8, #0 + ldr r2, [sp, #16] + adds r1, r0, #1 + ldr r3, [sp, #12] sxth r0, r0 - ldr r3, [sp, #16] - add r9, r0, #1 + strh r1, [r4, #2] @ movhi strh r2, [r4] @ movhi - ldr r3, [r3, r7, lsl #2] - ldr r7, .L2652 - str r3, [r4, #28] -.L2613: - sxth r2, r8 - cmp r2, r9 - bge .L2629 + mov r2, r3 ldr r3, [sp, #8] - ldr r0, .L2652+4 + ldr r3, [r2, r3, lsl #2] + str r3, [r4, #28] + adds r3, r0, #1 + str r3, [sp, #8] +.L2600: + ldr r3, [sp, #8] + sxth r2, r8 + cmp r2, r3 + bge .L2616 + ldr r3, [sp, #4] + ldr r0, .L2639+8 ldrh r1, [r3] orr r2, r2, r1, lsl #10 movs r1, #1 - str r2, [r5, #4056] + str r2, [r5, #1248] mov r2, r1 bl FlashReadPages ldrb r2, [fp] @ zero_extendqisi2 - cbz r2, .L2614 - ldr r2, [r7, #4064] + cbz r2, .L2601 + ldr r2, [r10, #1256] ldr r2, [r2, #12] - cbz r2, .L2614 - ldr r1, .L2652+8 - ldr r0, [r7, #4060] - str r2, [sp, #4] - ldrh r1, [r1, #1882] + cbz r2, .L2601 + ldr r1, .L2639+12 + ldr r0, [r10, #1252] + str r2, [sp, #12] + ldrh r1, [r1, #2394] bl js_hash - ldr r2, [sp, #4] + ldr r2, [sp, #12] cmp r2, r0 itt ne movne r2, #-1 - strne r2, [r7, #4052] -.L2614: - ldr r2, [r7, #4052] + strne r2, [r10, #1244] +.L2601: + ldr r2, [r10, #1244] adds r2, r2, #1 - beq .L2615 + beq .L2602 ldrh r2, [r6, #8] - cmp r2, r10 - bcs .L2615 + cmp r2, r9 + bcs .L2602 ldrh r1, [r4, #4] ldrh r0, [r6] cmp r0, r1 - ittt eq - ldreq r1, [r7, #4056] - ldreq r3, [sp] - streq r1, [r3, r2, lsl #2] -.L2615: + itt eq + ldreq r1, [r10, #1248] + streq r1, [r7, r2, lsl #2] +.L2602: add r8, r8, #1 - b .L2613 -.L2629: + b .L2600 +.L2616: mov r0, r4 bl ftl_free_no_use_map_blk ldrh r2, [r4, #2] - ldrh r3, [fp, #1874] + ldrh r3, [fp, #2386] cmp r2, r3 - bne .L2618 + bne .L2605 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2618 -.L2612: - ldr r2, [r5, #1776] - ldr r3, [sp, #4] - ldr r0, .L2652+4 - str r2, [r5, #4060] - add fp, r3, r1 - ldrh r2, [r8, #1874] - ldrh r1, [r3, r7, lsl #1] - subs r2, r2, #1 - orr r2, r2, r1, lsl #10 + b .L2605 +.L2599: + ldr r2, [sp, #20] + ldr r0, .L2639+8 + ldr r2, [r2, #3312] + str r2, [r5, #1252] + add r2, r8, r1 + str r2, [sp, #16] movs r1, #1 - str r2, [r5, #4056] + ldrh r2, [r8, r3, lsl #1] + ldrh r3, [r10, #2386] + subs r3, r3, #1 + orr r3, r3, r2, lsl #10 mov r2, r1 + str r3, [r5, #1248] bl FlashReadPages - ldr r2, [r5, #4052] - adds r2, r2, #1 - beq .L2631 - ldrh r1, [r6] - ldrh r2, [r4, #4] - cmp r1, r2 - bne .L2631 - ldrh r1, [r6, #8] - movw r2, #64245 - cmp r1, r2 - bne .L2631 - movs r0, #0 + ldr r3, [r5, #1244] + adds r3, r3, #1 + beq .L2618 + ldrh r2, [r6] + ldrh r3, [r4, #4] + cmp r2, r3 + bne .L2618 + ldrh r2, [r6, #8] + movw r3, #64245 + cmp r2, r3 + bne .L2618 + movs r1, #0 mov lr, #8 mov ip, #4 -.L2620: - uxth r2, r0 - ldrh r1, [r8, #1874] - sxth r7, r2 - subs r1, r1, #1 - cmp r7, r1 - bge .L2623 - ldr r1, [r5, #1776] - adds r0, r0, #1 - ldrh r7, [r1, r7, lsl #3] - cmp r7, r10 - itttt cc - smlabbcc r2, r2, lr, ip - ldrcc r3, [sp] - ldrcc r2, [r1, r2] - strcc r2, [r3, r7, lsl #2] - b .L2620 -.L2631: - movs r7, #0 -.L2651: - ldrh r1, [r8, #1874] - sxth r2, r7 +.L2607: + uxth r3, r1 + ldrh r2, [r10, #2386] + sxth r0, r3 + subs r2, r2, #1 + cmp r0, r2 + bge .L2610 + ldr r2, .L2639 + adds r1, r1, #1 + ldr r2, [r2, #3312] + 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 + mov fp, #0 +.L2638: + ldrh r1, [r10, #2386] + sxth r2, fp cmp r2, r1 - bge .L2623 - ldrh r1, [fp] - ldr r0, .L2652+4 + bge .L2610 + ldr r1, [sp, #16] + ldr r0, .L2639+8 + str r3, [sp, #24] + ldrh r1, [r1] orr r2, r2, r1, lsl #10 movs r1, #1 - str r2, [r9, #4056] + str r2, [r3, #1248] mov r2, r1 bl FlashReadPages - ldrb r2, [r8] @ zero_extendqisi2 - cbz r2, .L2624 - ldr r2, [r9, #4064] + ldrb r2, [r10] @ zero_extendqisi2 + ldr r3, [sp, #24] + cbz r2, .L2611 + ldr r2, [r3, #1256] ldr r2, [r2, #12] - cbz r2, .L2624 - ldr r0, [r9, #4060] - ldrh r1, [r8, #1882] - str r2, [sp, #20] + cbz r2, .L2611 + ldr r0, [r3, #1252] + ldrh r1, [r10, #2394] + str r2, [sp, #28] bl js_hash - ldr r2, [sp, #20] + ldr r2, [sp, #28] + ldr r3, [sp, #24] cmp r2, r0 itt ne movne r2, #-1 - strne r2, [r9, #4052] -.L2624: - ldr r2, .L2652 - ldr r2, [r2, #4052] + strne r2, [r3, #1244] +.L2611: + ldr r2, .L2639+4 + ldr r2, [r2, #1244] adds r2, r2, #1 - beq .L2625 + beq .L2612 ldrh r2, [r6, #8] - cmp r2, r10 - bcs .L2625 + cmp r2, r9 + bcs .L2612 ldrh r1, [r4, #4] ldrh r0, [r6] cmp r0, r1 - ittt eq - ldreq r1, [r9, #4056] - ldreq r3, [sp] - streq r1, [r3, r2, lsl #2] -.L2625: - adds r7, r7, #1 - b .L2651 -.L2623: - ldr r3, [sp, #8] + itt eq + ldreq r1, [r3, #1248] + streq r1, [r7, r2, lsl #2] +.L2612: + add fp, fp, #1 + b .L2638 +.L2610: + ldr r3, [sp, #4] adds r3, r3, #1 - str r3, [sp, #8] - b .L2611 -.L2618: + str r3, [sp, #4] + b .L2598 +.L2605: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 bl ftl_map_blk_gc movs r0, #0 - add sp, sp, #28 + add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2653: +.L2640: .align 2 -.L2652: +.L2639: .word .LANCHOR2 - .word .LANCHOR2+4052 + .word .LANCHOR4 + .word .LANCHOR4+1244 .word .LANCHOR0 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery @@ -16422,40 +16285,34 @@ FtlLoadVonderInfo: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - movw r2, #4102 - ldr r3, .L2655 - ldr r0, .L2655+4 - ldrh r1, [r3, #1892] - strh r1, [r0, r2] @ movhi - add r2, r0, #4096 - movw r1, #61574 - strh r1, [r2] @ movhi - movw r2, #4100 - ldrh r1, [r3, #1918] - strh r1, [r0, r2] @ movhi - movw r2, #4098 - ldrh r1, [r3, #1894] - strh r1, [r0, r2] @ movhi - ldr r2, [r3, #1920] - movw r3, #4104 - str r2, [r0, r3] - movw r3, #4108 - ldr r2, [r0, #1840] - str r2, [r0, r3] - movw r3, #4112 - ldr r2, [r0, #1836] - str r2, [r0, r3] - movw r3, #4116 - ldr r2, [r0, #1844] - str r2, [r0, r3] - addw r0, r0, #4092 + ldr r3, .L2642 + ldr r0, .L2642+4 + ldrh r2, [r3, #2404] + addw r0, r0, #1284 + strh r2, [r0, #10] @ movhi + movw r2, #61574 + strh r2, [r0, #4] @ movhi + ldrh r2, [r3, #2430] + strh r2, [r0, #8] @ movhi + ldrh r2, [r3, #2406] + ldr r3, [r3, #2432] + strh r2, [r0, #6] @ movhi + str r3, [r0, #12] + ldr r3, .L2642+8 + ldr r2, [r3, #3376] + str r2, [r0, #16] + ldr r2, [r3, #3372] + ldr r3, [r3, #3380] + str r2, [r0, #20] + str r3, [r0, #24] bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2656: +.L2643: .align 2 -.L2655: +.L2642: .word .LANCHOR0 + .word .LANCHOR4 .word .LANCHOR2 .fnend .size FtlLoadVonderInfo, .-FtlLoadVonderInfo @@ -16471,14 +16328,14 @@ FtlLoadMapInfo: push {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2658 + ldr r0, .L2645 bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2659: +.L2646: .align 2 -.L2658: - .word .LANCHOR2+1868 +.L2645: + .word .LANCHOR2+3404 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 1 @@ -16488,121 +16345,109 @@ FtlLoadMapInfo: .type FtlVendorPartWrite, %function FtlVendorPartWrite: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L2660 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r10, r2 - ldr r2, .L2674 - .pad #68 - sub sp, sp, #68 - mov r4, r1 mov r5, r0 - adds r6, r0, r4 - ldr r3, [r2] - str r2, [sp, #12] - str r3, [sp, #60] - ldr r3, .L2674+4 - ldrh r0, [r3, #1868] - ldrh r1, [r3, #1880] - cmp r6, r0 - str r3, [sp, #8] - bhi .L2669 - ldr r7, .L2674+8 - lsr r6, r5, r1 + mov r4, r1 + add r0, r0, r1 + ldrh r1, [r3, #2380] + .pad #60 + sub sp, sp, #60 + mov r10, r2 + ldrh r2, [r3, #2392] + cmp r0, r1 + str r3, [sp, #4] + bhi .L2655 + ldr r7, .L2660+4 + lsr r6, r5, r2 mov fp, #0 lsls r3, r6, #2 - str r3, [sp, #4] -.L2662: + str r3, [sp] +.L2649: cmp r4, #0 - beq .L2673 - ldr r3, .L2674+8 + beq .L2659 + ldr r3, .L2660+4 mov r0, r5 - ldr r2, [sp, #4] - ldr r3, [r3, #1844] + ldr r2, [sp] + ldr r3, [r3, #3380] ldr ip, [r3, r2] - ldr r3, [sp, #8] - str ip, [sp, #20] - ldrh r2, [r3, #1878] + ldr r3, [sp, #4] + str ip, [sp, #12] + ldrh r2, [r3, #2390] mov r1, r2 - str r2, [sp, #16] + str r2, [sp, #8] bl __aeabi_uidivmod - ldr r2, [sp, #16] + ldr r2, [sp, #8] mov r8, r1 - ldr ip, [sp, #20] + ldr ip, [sp, #12] subs r3, r2, r1 uxth r9, r3 cmp r9, r4 it hi uxthhi r9, r4 cmp ip, #0 - beq .L2664 + beq .L2651 cmp r9, r2 - beq .L2664 - ldr r2, [r7, #1784] + beq .L2651 + ldr r2, [r7, #3320] movs r1, #1 - add r0, sp, #24 - str ip, [sp, #28] - str r2, [sp, #32] + add r0, sp, #20 + str ip, [sp, #24] + str r2, [sp, #28] movs r2, #0 - str r2, [sp, #36] + str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2665 -.L2664: - ldr r3, [sp, #8] + b .L2652 +.L2651: + ldr r3, [sp, #4] movs r1, #0 - ldr r0, [r7, #1784] - ldrh r2, [r3, #1882] + ldr r0, [r7, #3320] + ldrh r2, [r3, #2394] bl ftl_memset -.L2665: +.L2652: lsl ip, r9, #9 - ldr r0, [r7, #1784] + ldr r0, [r7, #3320] uxth r8, r8 mov r1, r10 mov r2, ip - str ip, [sp, #16] + str ip, [sp, #8] add r0, r0, r8, lsl #9 rsb r4, r9, r4 bl ftl_memcpy mov r1, r6 - ldr r0, .L2674+12 + ldr r0, .L2660+8 adds r6, r6, #1 - ldr r2, [r7, #1784] + ldr r2, [r7, #3320] add r5, r5, r9 bl FtlMapWritePage - ldr r3, [sp, #4] + ldr r3, [sp] adds r0, r0, #1 - ldr ip, [sp, #16] + ldr ip, [sp, #8] it eq moveq fp, #-1 adds r3, r3, #4 - str r3, [sp, #4] + str r3, [sp] add r10, r10, ip - b .L2662 -.L2673: + b .L2649 +.L2659: mov r0, fp - b .L2661 -.L2669: + b .L2648 +.L2655: mov r0, #-1 -.L2661: - ldr r3, [sp, #12] - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L2668 - bl __stack_chk_fail -.L2668: - add sp, sp, #68 +.L2648: + add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2675: +.L2661: .align 2 -.L2674: - .word __stack_chk_guard +.L2660: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+4092 + .word .LANCHOR4+1284 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 1 @@ -16615,32 +16460,31 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2678 - ldr r3, .L2678+4 - ldr r1, [r2, #92] + ldr r2, .L2664 + ldr r3, .L2664+4 + ldr r1, [r2, #604] cmp r1, r3 - bne .L2676 - ldr r3, .L2678+8 + bne .L2662 + ldr r3, .L2664+8 movs r0, #0 movs r1, #1 - adds r2, r2, #92 - 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, .L2678+12 - ldr r3, [r3, #4064] + str r3, [r2, #608] + ldr r3, [r2, #496] + str r3, [r2, #692] + ldr r3, [r2, #500] + str r3, [r2, #696] + ldr r3, [r2, #492] + str r3, [r2, #612] + ldr r3, [r2, #480] + str r3, [r2, #616] + ldr r3, [r2, #472] + str r3, [r2, #620] + ldr r3, [r2, #488] + str r3, [r2, #624] + ldr r3, [r2, #516] + str r3, [r2, #632] + ldr r3, [r2, #232] + add r2, r2, #604 str r3, [r2, #32] ldr r3, [r2, #-128] str r3, [r2, #36] @@ -16652,18 +16496,17 @@ Ftl_save_ext_data: str r3, [r2, #48] ldr r3, [r2, #-4] str r3, [r2, #60] - ldr r3, [r2, #1644] + ldr r3, [r2, #2668] str r3, [r2, #64] b FtlVendorPartWrite -.L2676: +.L2662: bx lr -.L2679: +.L2665: .align 2 -.L2678: +.L2664: .word .LANCHOR2 .word 1179929683 - .word 1342177367 - .word .LANCHOR0 + .word 1342177376 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 1 @@ -16675,44 +16518,44 @@ FtlEctTblFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2687 + ldr r3, .L2673 push {r4, lr} .save {r4, lr} - ldr r2, [r3, #1796] - ldr r3, .L2687+4 - cbz r2, .L2685 - ldr r2, [r3, #16] + ldr r2, [r3, #2308] + ldr r3, .L2673+4 + cbz r2, .L2671 + ldr r2, [r3, #528] cmp r2, #39 ite hi movhi r1, #32 movls r1, #4 - b .L2681 -.L2685: + b .L2667 +.L2671: movs r1, #32 -.L2681: - ldr r4, .L2687+8 - ldrh r2, [r4, #-208] +.L2667: + ldr r4, .L2673+8 + ldrh r2, [r4, #1328] cmp r2, #31 ittt ls addls r2, r2, #1 movls r1, #1 - strhls r2, [r4, #-208] @ movhi - cbnz r0, .L2683 - ldr r0, [r3, #1820] + strhls r2, [r4, #1328] @ movhi + cbnz r0, .L2669 + ldr r0, [r3, #3356] ldr r2, [r0, #20] add r2, r2, r1 ldr r1, [r0, #16] cmp r1, r2 - bcc .L2684 -.L2683: - ldr r2, [r3, #1820] + bcc .L2670 +.L2669: + ldr r2, [r3, #3356] movs r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L2687+12 + ldr r1, .L2673+12 str r1, [r2] - ldr r2, [r3, #1820] - ldrh r1, [r3, #1812] + ldr r2, [r3, #3356] + ldrh r1, [r3, #3348] lsls r3, r1, #9 str r3, [r2, #12] ldr r3, [r2, #8] @@ -16722,12 +16565,12 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2684: +.L2670: movs r0, #0 pop {r4, pc} -.L2688: +.L2674: .align 2 -.L2687: +.L2673: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR4 @@ -16741,124 +16584,111 @@ FtlEctTblFlush: .type FtlVendorPartRead, %function FtlVendorPartRead: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L2686 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r7, r2 - ldr r2, .L2701 - .pad #68 - sub sp, sp, #68 - mov r4, r1 mov r6, r0 - adds r5, r0, r4 - ldr r3, [r2] - str r2, [sp, #16] - str r3, [sp, #60] - ldr r3, .L2701+4 - ldrh r0, [r3, #1868] - ldrh r1, [r3, #1880] - cmp r5, r0 - str r3, [sp, #20] - bhi .L2699 - ldr r8, .L2701+16 - lsr r5, r6, r1 + mov r4, r1 + add r0, r0, r1 + ldrh r1, [r3, #2380] + .pad #60 + sub sp, sp, #60 + mov r7, r2 + ldrh r2, [r3, #2392] + cmp r0, r1 + str r3, [sp, #12] + bhi .L2684 + ldr r10, .L2686+4 + lsr r5, r6, r2 + mov fp, #0 lsls r3, r5, #2 - str r3, [sp, #8] - mov fp, r8 - movs r3, #0 str r3, [sp, #4] -.L2691: +.L2677: cmp r4, #0 - beq .L2700 - ldr r3, [r8, #1844] + beq .L2685 + ldr r3, .L2686+4 mov r0, r6 - ldr r2, [sp, #8] - ldr r9, [r3, r2] - ldr r3, [sp, #20] - ldrh r10, [r3, #1878] - mov r1, r10 + ldr r2, [sp, #4] + ldr r3, [r3, #3380] + ldr r8, [r3, r2] + ldr r3, [sp, #12] + ldrh r9, [r3, #2390] + mov r1, r9 bl __aeabi_uidivmod - rsb r3, r1, r10 - str r1, [sp, #12] - uxth r10, r3 - cmp r10, r4 + rsb r3, r1, r9 + str r1, [sp, #8] + uxth r9, r3 + cmp r9, r4 it hi - uxthhi r10, r4 - cmp r9, #0 - beq .L2693 - ldr r2, [fp, #1784] + uxthhi r9, r4 + cmp r8, #0 + beq .L2679 + ldr r2, [r10, #3320] movs r1, #1 - add r0, sp, #24 - str r9, [sp, #28] - str r2, [sp, #32] + add r0, sp, #20 + str r8, [sp, #24] + str r2, [sp, #28] movs r2, #0 - str r2, [sp, #36] + str r2, [sp, #32] mov r2, r1 bl FlashReadPages - ldr r2, [sp, #24] - ldr r3, [sp, #4] + ldr r3, .L2686+8 + ldr r2, [sp, #20] adds r2, r2, #1 - ldr r2, [r8, #4052] + ldr r2, [r3, #1244] it eq - moveq r3, #-1 + moveq fp, #-1 cmp r2, #256 - str r3, [sp, #4] - bne .L2695 + bne .L2681 mov r1, r5 - mov r2, r9 - ldr r0, .L2701+8 + mov r2, r8 + ldr r0, .L2686+12 bl printk - ldr r0, .L2701+12 + ldr r0, .L2686+16 mov r1, r5 - ldr r2, [r8, #1784] + ldr r2, [r10, #3320] bl FtlMapWritePage -.L2695: - ldrh r9, [sp, #12] +.L2681: + ldrh r8, [sp, #8] mov r0, r7 - ldr r1, [fp, #1784] - lsl r2, r10, #9 - add r1, r1, r9, lsl #9 + ldr r1, [r10, #3320] + lsl r2, r9, #9 + add r1, r1, r8, lsl #9 bl ftl_memcpy - b .L2696 -.L2693: + b .L2682 +.L2679: mov r0, r7 - mov r1, r9 - lsl r2, r10, #9 + mov r1, r8 + lsl r2, r9, #9 bl ftl_memset -.L2696: - ldr r3, [sp, #8] +.L2682: + ldr r3, [sp, #4] adds r5, r5, #1 - rsb r4, r10, r4 - add r6, r6, r10 + rsb r4, r9, r4 + add r6, r6, r9 adds r3, r3, #4 - add r7, r7, r10, lsl #9 - str r3, [sp, #8] - b .L2691 -.L2700: - ldr r0, [sp, #4] - b .L2690 -.L2699: + add r7, r7, r9, lsl #9 + str r3, [sp, #4] + b .L2677 +.L2685: + mov r0, fp + b .L2676 +.L2684: mov r0, #-1 -.L2690: - ldr r3, [sp, #16] - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L2698 - bl __stack_chk_fail -.L2698: - add sp, sp, #68 +.L2676: + add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2702: +.L2687: .align 2 -.L2701: - .word __stack_chk_guard +.L2686: .word .LANCHOR0 - .word .LC133 - .word .LANCHOR2+4092 .word .LANCHOR2 + .word .LANCHOR4 + .word .LC133 + .word .LANCHOR4+1284 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 1 @@ -16873,29 +16703,29 @@ FtlLoadEctTbl: push {r4, lr} .save {r4, lr} movs r0, #64 - ldr r4, .L2705 - ldr r2, [r4, #1820] - ldrh r1, [r4, #1812] + ldr r4, .L2690 + ldr r2, [r4, #3356] + ldrh r1, [r4, #3348] bl FtlVendorPartRead - ldr r3, [r4, #1820] + ldr r3, [r4, #3356] ldr r2, [r3] - ldr r3, .L2705+4 + ldr r3, .L2690+4 cmp r2, r3 - beq .L2704 - ldr r1, .L2705+8 - ldr r0, .L2705+12 + beq .L2689 + ldr r1, .L2690+8 + ldr r0, .L2690+12 bl printk - ldrh r2, [r4, #1812] - ldr r0, [r4, #1820] + ldrh r2, [r4, #3348] + ldr r0, [r4, #3356] movs r1, #0 lsls r2, r2, #9 bl ftl_memset -.L2704: +.L2689: movs r0, #0 pop {r4, pc} -.L2706: +.L2691: .align 2 -.L2705: +.L2690: .word .LANCHOR2 .word 1112818501 .word .LC134 @@ -16914,78 +16744,86 @@ Ftl_load_ext_data: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r0, #0 - ldr r4, .L2711 + ldr r4, .L2697 movs r1, #1 - ldr r5, .L2711+4 - add r2, r4, #92 + ldr r5, .L2697+4 + add r2, r4, #604 bl FtlVendorPartRead - ldr r3, [r4, #92] + ldr r3, [r4, #604] cmp r3, r5 - beq .L2708 - add r0, r4, #92 + beq .L2693 + add r0, r4, #604 movs r1, #0 mov r2, #512 bl ftl_memset - str r5, [r4, #92] -.L2708: - ldr r2, [r4, #92] - ldr r3, .L2711 + str r5, [r4, #604] +.L2693: + ldr r2, [r4, #604] + ldr r3, .L2697 cmp r2, r5 - ldr r5, .L2711+8 - bne .L2709 - ldr r2, [r3, #180] - str r2, [r3, #-16] - ldr r2, [r3, #184] - str r2, [r3, #-12] - ldr r2, [r3, #100] - str r2, [r3, #-20] - ldr r2, [r3, #104] - str r2, [r3, #-32] - ldr r2, [r3, #108] - str r2, [r3, #-40] - ldr r2, [r3, #112] - str r2, [r3, #-24] - ldr r2, [r3, #120] - str r2, [r3, #4] - ldr r2, [r3, #124] - str r2, [r5, #4064] - ldr r2, [r3, #128] - str r2, [r3, #-36] - ldr r2, [r3, #132] - str r2, [r3, #-28] - ldr r2, [r3, #136] - str r2, [r3, #12] - ldr r2, [r3, #140] - str r2, [r3, #16] - ldr r2, [r3, #152] - str r2, [r3, #88] -.L2709: + bne .L2694 + ldr r2, [r3, #692] + str r2, [r3, #496] + ldr r2, [r3, #696] + str r2, [r3, #500] + ldr r2, [r3, #612] + str r2, [r3, #492] + ldr r2, [r3, #616] + str r2, [r3, #480] + 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, #648] + str r2, [r3, #524] + ldr r2, [r3, #652] + str r2, [r3, #528] + ldr r2, [r3, #664] + str r2, [r3, #600] +.L2694: + ldr r1, [r4, #672] movs r3, #0 - ldr r2, [r4, #160] - str r3, [r4, #1736] - ldr r3, .L2711+12 - cmp r2, r3 - bne .L2710 - ldr r0, .L2711+16 + ldr r2, .L2697+8 + str r3, [r4, #3272] + 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] + bl Ftl_save_ext_data + b .L2695 +.L2696: + ldr r0, .L2697+16 movs r3, #1 - ldr r1, .L2711+20 - str r3, [r5, #1796] + ldr r1, .L2697+20 + str r3, [r5, #2308] bl printk -.L2710: - ldrh r2, [r5, #1864] - ldmia r4, {r0, r3} - ldrh r1, [r5, #1812] +.L2695: + ldrh r2, [r5, #2376] + ldr r3, [r4, #516] + ldr r0, [r4, #512] + ldrh r1, [r5, #2324] mla r0, r0, r2, r3 bl __aeabi_uidiv - str r0, [r4, #8] + str r0, [r4, #520] pop {r3, r4, r5, pc} -.L2712: +.L2698: .align 2 -.L2711: +.L2697: .word .LANCHOR2 .word 1179929683 - .word .LANCHOR0 .word 305432421 + .word .LANCHOR0 .word .LC76 .word .LC135 .fnend @@ -17005,45 +16843,47 @@ FtlMapBlkWriteDumpData: ldr r3, [r0, #36] ldrh r5, [r0, #6] ldr r1, [r0, #24] - cbz r3, .L2713 - ldr r2, .L2719 + cbz r3, .L2699 + ldr r2, .L2705 movs r3, #0 str r3, [r0, #36] - ldr r3, [r2, #4052] - cbnz r3, .L2713 - ldr r3, .L2719+4 + ldr r3, [r2, #220] + cbnz r3, .L2699 subs r5, r5, #1 + ldr r3, .L2705+4 + ldr r0, [r2, #3316] + ldr r2, [r2, #3336] uxth r5, r5 - ldr r4, [r3, #1800] - ldr r0, [r3, #1780] - str r4, [r3, #4064] mov r4, r3 - str r0, [r3, #4060] - ldr r1, [r1, r5, lsl #2] - str r1, [r3, #4056] - cbz r1, .L2717 + str r0, [r3, #1252] + str r2, [r3, #1256] + ldr r2, [r1, r5, lsl #2] + str r2, [r3, #1248] + cbz r2, .L2703 movs r1, #1 - addw r0, r3, #4052 + addw r0, r3, #1244 mov r2, r1 bl FlashReadPages - b .L2718 -.L2717: + b .L2704 +.L2703: + ldr r3, .L2705+8 movs r1, #255 - ldrh r2, [r2, #1882] + ldrh r2, [r3, #2394] bl ftl_memset -.L2718: +.L2704: mov r0, r6 mov r1, r5 - ldr r2, [r4, #4060] + ldr r2, [r4, #1252] pop {r4, r5, r6, lr} b FtlMapWritePage -.L2713: +.L2699: pop {r4, r5, r6, pc} -.L2720: +.L2706: .align 2 -.L2719: - .word .LANCHOR0 +.L2705: .word .LANCHOR2 + .word .LANCHOR4 + .word .LANCHOR0 .fnend .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .align 1 @@ -17055,106 +16895,95 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2736 - push {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r10, r2 - ldr r2, [r3] - .pad #44 - sub sp, sp, #44 - mov r7, r1 - mov r5, r0 - mov r9, r3 - str r2, [sp, #36] - ldr r2, .L2736+4 - ldrh r1, [r2, #124] - ldrh r4, [r2, #126] - ldr r2, .L2736+8 - smulbb r4, r1, r4 - ldr r1, [r2, #3988] + ldr r3, .L2721 + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r2 - str r1, [sp, #8] - ldr r1, [r2, #4020] - uxth r0, r4 - subs r6, r0, #1 - sub r4, r0, #16 - mul fp, r0, r7 - uxth r6, r6 + ldrh r2, [r3, #124] + mov r7, r1 + ldrh r3, [r3, #126] + .pad #40 + sub sp, sp, #40 + mov r5, r0 + smulbb r3, r2, r3 + ldr r2, .L2721+4 + ldr r1, [r2, #1180] + mov r9, r2 + uxth r3, r3 + subs r6, r3, #1 str r1, [sp, #12] -.L2722: + mul r10, r3, r7 + ldr r1, [r2, #1212] + uxth r6, r6 + sub r4, r3, #16 + str r1, [sp, #16] +.L2708: cmp r6, r4 - ble .L2735 + ble .L2720 movs r1, #1 - add r3, r6, fp - mov r0, sp + add r3, r6, r10 + add r0, sp, #4 mov r2, r1 lsls r3, r3, #10 - str r3, [sp, #4] + str r3, [sp, #8] bl FlashReadPages - ldr r3, [sp] + ldr r3, [sp, #4] adds r3, r3, #1 - beq .L2723 - ldr r3, [r8, #4020] + beq .L2709 + ldr r3, [r9, #1212] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L2723 - cbz r5, .L2730 - cbz r7, .L2731 -.L2727: - ldr r1, [r8, #3988] - mov r2, r10 + bne .L2709 + cbz r5, .L2715 + cbz r7, .L2716 +.L2713: + ldr r1, [r9, #1180] + mov r2, r8 mov r0, r5 bl ftl_memcpy movs r2, #4 - ldr r0, .L2736+12 + ldr r0, .L2721+8 mov r1, r5 mov r3, r2 bl rknand_print_hex movs r0, #0 - b .L2724 -.L2731: - ldr r6, .L2736+8 + b .L2710 +.L2716: + ldr r6, .L2721+4 mov lr, #1 -.L2725: - ldr r3, [r8, #4008] - uxth r4, r7 +.L2711: + ldr r2, [r9, #1200] + uxth r3, r7 adds r7, r7, #1 - cmp r4, r3 - bcs .L2727 - ldr r2, [r6, #3988] - lsr ip, r4, #5 - and r0, r4, #31 - lsl r3, lr, r0 - ldr r1, [r2, ip, lsl #2] - orrs r3, r3, r1 - str r3, [r2, ip, lsl #2] - b .L2725 -.L2723: + cmp r3, r2 + bcs .L2713 + ldr r2, [r6, #1180] + 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: subs r6, r6, #1 uxth r6, r6 - b .L2722 -.L2735: + b .L2708 +.L2720: mov r0, #-1 - b .L2724 -.L2730: + b .L2710 +.L2715: mov r0, r5 -.L2724: - ldr r2, [sp, #36] - ldr r3, [r9] - cmp r2, r3 - beq .L2729 - bl __stack_chk_fail -.L2729: - add sp, sp, #44 +.L2710: + add sp, sp, #40 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2737: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L2722: .align 2 -.L2736: - .word __stack_chk_guard +.L2721: .word .LANCHOR0 - .word .LANCHOR2 + .word .LANCHOR4 .word .LC136 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData @@ -17167,36 +16996,36 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2748 + ldr r3, .L2733 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 - ldr r3, [r3, #692] - ldr r6, .L2748+4 + ldr r3, [r3, #1204] + ldr r6, .L2733+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] - ldr r0, [r6, #4016] + ldr r0, [r6, #1208] smulbb r4, r4, r3 uxth r4, r4 adds r2, r4, #7 asrs r2, r2, #3 bl FlashReadFacBbtData adds r0, r0, #1 - bne .L2739 -.L2743: + bne .L2724 +.L2728: movs r3, #0 - b .L2740 -.L2739: + b .L2725 +.L2724: movs r1, #0 lsr lr, r4, #4 mov ip, #1 subs r4, r4, #1 mov r3, r1 -.L2741: +.L2726: uxth r2, r1 cmp r2, r4 - bge .L2740 - ldr r7, [r6, #4016] + bge .L2725 + ldr r7, [r6, #1208] lsrs r0, r2, #5 and r8, r2, #31 adds r1, r1, #1 @@ -17208,18 +17037,18 @@ FlashGetBadBlockList: addne r0, r3, #1 uxthne r3, r0 cmp r3, lr - bcc .L2741 - b .L2743 -.L2740: + bcc .L2726 + b .L2728 +.L2725: movw r2, #65535 movs r0, #0 strh r2, [r5, r3, lsl #1] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L2749: +.L2734: .align 2 -.L2748: +.L2733: .word .LANCHOR0 - .word .LANCHOR2 + .word .LANCHOR4 .fnend .size FlashGetBadBlockList, .-FlashGetBadBlockList .align 1 @@ -17234,193 +17063,200 @@ FtlMakeBbt: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L2772 - ldr r5, [r4, #4052] - cmp r5, #0 - bne .L2751 + ldr r5, .L2759 + ldr r4, [r5, #220] + cmp r4, #0 + bne .L2736 bl FtlBbtMemInit - ldr r7, .L2772+4 + ldr r6, .L2759+4 bl FtlLoadFactoryBbt - addw r8, r4, #1964 - addw r9, r4, #1946 - mov fp, r4 - mov r10, r7 -.L2752: - ldrh r3, [r4, #1826] - cmp r5, r3 - bcs .L2770 - ldr r3, [r7, #1800] + ldr r9, .L2759+16 + sub r8, r6, #18 + subw r7, r6, #2476 +.L2737: + ldrh r3, [r7, #2338] + ldr r10, .L2759+8 + cmp r4, r3 + bcs .L2756 + ldr r3, [r5, #3336] movw r2, #65535 - ldr r0, [r7, #1776] + ldr r0, [r5, #3312] + ldr fp, .L2759+16 str r3, [sp] - str r3, [r7, #4064] - ldrh r3, [r9, #2]! - str r0, [r7, #4060] + str r3, [r9, #1256] + ldrh r3, [r8, #2]! + str r0, [r9, #1252] cmp r3, r2 - beq .L2753 - ldrh ip, [fp, #1870] + beq .L2738 + ldrh ip, [r7, #2382] movs r1, #1 - ldr r0, .L2772+8 + addw r0, fp, #1244 mov r2, r1 - mla ip, ip, r5, r3 + mla ip, ip, r4, r3 lsl r3, ip, #10 str ip, [sp] - str r3, [r7, #4056] + str r3, [r9, #1248] bl FlashReadPages - ldrh r2, [fp, #1870] - ldr r0, [r8] + ldrh r2, [r7, #2382] + ldr r0, [r6] adds r2, r2, #7 - ldr r1, [r7, #4060] + ldr r1, [r9, #1252] asrs r2, r2, #3 bl ftl_memcpy ldr ip, [sp] - b .L2754 -.L2753: - mov r1, r5 + b .L2739 +.L2738: + mov r1, r4 bl FlashGetBadBlockList - ldr r0, [r7, #4060] - ldr r1, [r8] + ldr r0, [r9, #1252] + ldr r1, [r6] bl FtlBbt2Bitmap - ldrh r6, [fp, #1870] -.L2756: - subs r6, r6, #1 - uxth r6, r6 + ldrh r3, [r7, #2382] + subs r3, r3, #1 .L2755: - ldrh r0, [r4, #1870] - smlabb r0, r0, r5, r6 + uxth r10, r3 +.L2740: + ldr r3, .L2759+8 + ldrh r0, [r3, #2382] + smlabb r0, r0, r4, r10 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2756 + bne .L2757 + add r3, r10, #-1 + b .L2755 +.L2757: movs r1, #0 movs r2, #16 - strh r6, [r9] @ movhi - ldr r0, [r10, #1800] + strh r10, [r8] @ movhi + ldr r0, [r5, #3336] bl ftl_memset movw r3, #61664 ldr r2, [sp] strh r3, [r2] @ movhi movs r3, #0 str r3, [r2, #4] - ldrh r3, [r9] - ldrh ip, [fp, #1870] + ldrh r3, [r8] + ldrh ip, [r7, #2382] strh r3, [r2, #2] @ movhi - ldrh r3, [r9] - ldrh r2, [r10, #1864] - ldr r1, [r8] - mla ip, ip, r5, r3 + ldrh r3, [r8] + ldrh r2, [r5, #3400] + ldr r1, [r6] + mla ip, ip, r4, r3 lsls r2, r2, #2 - ldr r0, [r10, #4060] + ldr r0, [fp, #1252] lsl r3, ip, #10 str ip, [sp, #4] - str r3, [r10, #4056] + str r3, [fp, #1248] bl ftl_memcpy movs r1, #1 - ldr r0, .L2772+8 + ldr r0, .L2759+12 mov r2, r1 bl FlashEraseBlocks movs r1, #1 - ldr r0, .L2772+8 + ldr r0, .L2759+12 mov r3, r1 mov r2, r1 bl FlashProgPages - ldr r3, [r10, #4052] + ldr r3, [fp, #1244] adds r3, r3, #1 ldr ip, [sp, #4] - bne .L2754 + bne .L2739 uxth r0, ip bl FtlBbmMapBadBlock - b .L2755 -.L2754: + b .L2740 +.L2739: uxth r0, ip - adds r5, r5, #1 + adds r4, r4, #1 bl FtlBbmMapBadBlock - add r8, r8, #4 - b .L2752 -.L2770: - movs r5, #0 -.L2759: - ldrh r3, [r4, #1886] - uxth r0, r5 - ldr r6, .L2772 - adds r5, r5, #1 + adds r6, r6, #4 + b .L2737 +.L2756: + movs r4, #0 +.L2744: + ldrh r3, [r10, #2398] + uxth r0, r4 + ldr r6, .L2759+8 + adds r4, r4, #1 cmp r3, r0 - bls .L2771 + bls .L2758 bl FtlBbmMapBadBlock - b .L2759 -.L2771: - ldrh r5, [r6, #1948] + b .L2744 +.L2758: + ldrh r4, [r6, #2460] movw r7, #65535 - subs r5, r5, #1 - uxth r5, r5 -.L2761: - ldrh r3, [r4, #1948] + subs r4, r4, #1 + uxth r4, r4 +.L2746: + ldrh r3, [r10, #2460] subs r3, r3, #48 - cmp r5, r3 - ble .L2765 - mov r0, r5 + cmp r4, r3 + ble .L2750 + mov r0, r4 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2762 - mov r0, r5 + beq .L2747 + mov r0, r4 bl FlashTestBlk - cbz r0, .L2763 - mov r0, r5 + cbz r0, .L2748 + mov r0, r4 bl FtlBbmMapBadBlock - b .L2762 -.L2763: - ldrh r3, [r6, #1936] + b .L2747 +.L2748: + ldrh r3, [r6, #2448] cmp r3, r7 - bne .L2764 - strh r5, [r6, #1936] @ movhi - b .L2762 -.L2764: - ldr r3, .L2772 - strh r5, [r3, #1940] @ movhi - b .L2765 -.L2762: - subs r5, r5, #1 - uxth r5, r5 - b .L2761 -.L2765: - ldr r0, [r4, #4056] - movs r5, #0 - ldrh r3, [r4, #1936] + bne .L2749 + strh r4, [r6, #2448] @ movhi + b .L2747 +.L2749: + ldr r3, .L2759+8 + strh r4, [r3, #2452] @ movhi + b .L2750 +.L2747: + subs r4, r4, #1 + uxth r4, r4 + b .L2746 +.L2750: + ldr r0, [r5, #224] + movs r4, #0 + ldrh r3, [r10, #2448] movs r2, #2 - str r5, [r4, #1944] + str r4, [r10, #2456] movs r1, #1 - strh r5, [r4, #1938] @ movhi + strh r4, [r10, #2450] @ movhi lsls r3, r3, #10 str r3, [r0, #4] - ldrh r3, [r4, #1940] + ldrh r3, [r10, #2452] lsls r3, r3, #10 str r3, [r0, #40] bl FlashEraseBlocks - ldrh r0, [r4, #1936] + ldrh r0, [r10, #2448] bl FtlBbmMapBadBlock - ldrh r0, [r4, #1940] + ldrh r0, [r10, #2452] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldr r3, [r4, #1944] - ldrh r2, [r4, #1940] + ldr r3, [r10, #2456] + ldrh r2, [r10, #2452] adds r3, r3, #1 - str r3, [r4, #1944] - ldrh r3, [r4, #1936] - strh r5, [r4, #1938] @ movhi - strh r2, [r4, #1936] @ movhi - strh r3, [r4, #1940] @ movhi + str r3, [r10, #2456] + ldrh r3, [r10, #2448] + strh r4, [r10, #2450] @ movhi + strh r2, [r10, #2448] @ movhi + strh r3, [r10, #2452] @ movhi bl FtlBbmTblFlush -.L2751: +.L2736: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2773: +.L2760: .align 2 -.L2772: - .word .LANCHOR0 +.L2759: .word .LANCHOR2 - .word .LANCHOR2+4052 + .word .LANCHOR0+2476 + .word .LANCHOR0 + .word .LANCHOR4+1244 + .word .LANCHOR4 .fnend .size FtlMakeBbt, .-FtlMakeBbt .align 1 @@ -17430,47 +17266,48 @@ FtlMakeBbt: .type log2phys, %function log2phys: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #12 + .pad #20 + sub sp, sp, #20 + ldr r6, .L2777 mov r9, r0 - ldr r6, .L2790 + str r2, [sp, #8] mov r10, r1 - str r2, [sp, #4] - ldr r3, [r6, #1932] - ldrh r8, [r6, #1880] + ldr r3, [r6, #2444] + ldrh r2, [r6, #2392] cmp r0, r3 - bcs .L2775 - add r3, r8, #7 - ldr r2, .L2790+4 + bcs .L2762 + adds r3, r2, #7 + ldr r2, .L2777+4 lsr r5, r0, r3 - str r3, [sp] - ldrh r1, [r6, #1910] + str r3, [sp, #4] + ldrh r1, [r6, #2422] movs r4, #0 - ldr fp, [r2, #-56] + ldr fp, [r2, #456] mov r8, r2 uxth r5, r5 movs r2, #12 - b .L2776 -.L2775: - ldr r3, [sp, #4] + b .L2763 +.L2762: + ldr r3, [sp, #8] mov r0, #-1 cmp r3, #0 - bne .L2777 + bne .L2764 str r0, [r1] - b .L2777 -.L2781: + b .L2764 +.L2768: adds r4, r4, #1 mla r0, r2, r4, fp ldrh r0, [r0, #-12] cmp r0, r5 - beq .L2778 -.L2776: + beq .L2765 +.L2763: uxth r7, r4 cmp r7, r1 - bcc .L2781 + bcc .L2768 bl select_l2p_ram_region movs r4, #12 movw r3, #65535 @@ -17479,140 +17316,146 @@ log2phys: add r2, fp, r4 ldrh r1, [fp, r4] cmp r1, r3 - bne .L2789 -.L2782: - ldr r3, [r8, #1848] - ldr fp, .L2790+4 - ldr r8, [r3, r5, lsl #2] - cmp r8, #0 - bne .L2783 - ldr r2, [fp, #-56] + bne .L2776 +.L2769: + ldr r3, [r8, #3384] + ldr fp, .L2777+4 + ldr r3, [r3, r5, lsl #2] + cmp r3, #0 + bne .L2770 + ldr r2, [fp, #456] movs r1, #255 + str r3, [sp, #12] add r2, r2, r4 ldr r0, [r2, #8] - ldrh r2, [r6, #1882] + ldrh r2, [r6, #2394] bl ftl_memset - ldr r2, [fp, #-56] + ldr r2, [fp, #456] strh r5, [r2, r4] @ movhi - ldr r2, [fp, #-56] + ldr r2, [fp, #456] add r4, r4, r2 - str r8, [r4, #4] -.L2778: - ldr r3, [sp] + ldr r3, [sp, #12] + str r3, [r4, #4] +.L2765: + ldr r3, [sp, #4] movs r2, #1 - ldr r1, [sp, #4] + ldr r1, [sp, #8] lsls r2, r2, r3 movs r3, #12 subs r2, r2, #1 and r9, r9, r2 - ldr r2, .L2790+4 + ldr r2, .L2777+4 uxth r9, r9 - cbnz r1, .L2779 - ldr r1, [r2, #-56] + cbnz r1, .L2766 + ldr r1, [r2, #456] mla r3, r3, r7, r1 ldr r3, [r3, #8] ldr r3, [r3, r9, lsl #2] str r3, [r10] - b .L2780 -.L2779: + b .L2767 +.L2766: muls r3, r7, r3 - ldr r1, [r2, #-56] + ldr r1, [r2, #456] ldr r0, [r10] add r1, r1, r3 ldr r1, [r1, #8] str r0, [r1, r9, lsl #2] - ldr r1, [r2, #-56] - strh r5, [r2, #-52] @ movhi + ldr r1, [r2, #456] + strh r5, [r2, #460] @ movhi add r3, r3, r1 ldr r1, [r3, #4] orr r1, r1, #-2147483648 str r1, [r3, #4] -.L2780: - ldr r2, [r2, #-56] +.L2767: + ldr r2, [r2, #456] movs r3, #12 mla r7, r3, r7, r2 ldr r3, [r7, #4] adds r2, r3, #1 - beq .L2787 + beq .L2774 adds r3, r3, #1 str r3, [r7, #4] - b .L2787 -.L2789: + b .L2774 +.L2776: ldr r3, [r2, #4] cmp r3, #0 - bge .L2782 + bge .L2769 bl flush_l2p_region - b .L2782 -.L2783: - ldr r2, [fp, #-56] + b .L2769 +.L2770: + ldr r2, [fp, #456] movs r1, #1 - addw r0, fp, #4052 - str r8, [fp, #4056] + ldr r8, .L2777+24 add r2, r2, r4 + str r3, [sp, #12] + addw r0, r8, #1244 ldr r2, [r2, #8] - str r2, [fp, #4060] - ldr r2, [fp, #1800] - str r2, [fp, #4064] + str r3, [r8, #1248] + str r2, [r8, #1252] + ldr r2, [fp, #3336] + str r2, [r8, #1256] mov r2, r1 bl FlashReadPages - ldr r2, [fp, #4064] + ldr r2, [r8, #1256] ldrh r2, [r2, #8] cmp r2, r5 - beq .L2784 + ldr r3, [sp, #12] + beq .L2771 + mov r2, r3 mov r1, r5 - mov r2, r8 - ldr r0, .L2790+8 + ldr r0, .L2777+8 bl printk movs r2, #4 - ldr r0, .L2790+12 + ldr r0, .L2777+12 mov r3, r2 - ldr r1, [fp, #4064] + ldr r1, [r8, #1256] bl rknand_print_hex - ldrh r3, [r6, #1908] - ldr r0, .L2790+16 + ldrh r3, [r6, #2420] + ldr r0, .L2777+16 movs r2, #4 - ldr r1, [fp, #1848] + ldr r1, [fp, #3384] bl rknand_print_hex movs r3, #1 - str r3, [r6, #4052] - b .L2785 -.L2784: - ldr r2, [fp, #4052] + str r3, [fp, #220] + b .L2772 +.L2771: + ldr r2, [r8, #1244] cmp r2, #256 - bne .L2785 + bne .L2772 + mov r2, r3 mov r1, r5 - mov r2, r8 - ldr r0, .L2790+20 + ldr r0, .L2777+20 bl printk - ldr r3, [fp, #-56] - addw r0, fp, #1868 + ldr r3, [fp, #456] + addw r0, fp, #3404 mov r1, r5 add r3, r3, r4 ldr r2, [r3, #8] bl FtlMapWritePage -.L2785: - ldr r3, .L2790+4 +.L2772: + ldr r3, .L2777+4 movs r1, #0 - ldr r3, [r3, #-56] + ldr r3, [r3, #456] adds r2, r3, r4 str r1, [r2, #4] strh r5, [r3, r4] @ movhi - b .L2778 -.L2787: + b .L2765 +.L2774: movs r0, #0 -.L2777: - add sp, sp, #12 +.L2764: + add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2791: +.L2778: .align 2 -.L2790: +.L2777: .word .LANCHOR0 .word .LANCHOR2 .word .LC137 .word .LC100 .word .LC138 .word .LC139 + .word .LANCHOR4 .fnend .size log2phys, .-log2phys .align 1 @@ -17622,120 +17465,110 @@ log2phys: .type FtlWriteDumpData, %function FtlWriteDumpData: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ args = 0, pretend = 0, frame = 40 @ 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 #52 - sub sp, sp, #52 - ldr r7, .L2811 - ldr r8, .L2811+12 - ldr r3, [r7] - str r3, [sp, #44] - ldr r3, [r8, #4052] + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + .pad #40 + sub sp, sp, #40 + ldr r4, .L2797 + ldr r3, [r4, #220] cmp r3, #0 - bne .L2792 - ldr r4, .L2811+4 - ldrh r2, [r4, #-196] + bne .L2779 + ldrh r2, [r4, #316] cmp r2, #0 - beq .L2794 - ldrb r3, [r4, #-192] @ zero_extendqisi2 + beq .L2781 + ldrb r3, [r4, #320] @ zero_extendqisi2 cmp r3, #0 - bne .L2794 - ldrb r1, [r4, #-193] @ zero_extendqisi2 - ldrh r3, [r8, #1872] + bne .L2781 + ldr r7, .L2797+4 + ldrb r1, [r4, #319] @ zero_extendqisi2 + ldrh r3, [r7, #2384] muls r3, r1, r3 cmp r2, r3 - beq .L2794 - ldrb r10, [r4, #-190] @ zero_extendqisi2 - ldr r6, [r8, #1932] - ldrh r9, [r8, #1804] - cmp r10, #0 - bne .L2792 + beq .L2781 + ldrb r9, [r4, #322] @ zero_extendqisi2 + ldr r6, [r7, #2444] + ldrh r8, [r7, #2316] + cmp r9, #0 + bne .L2779 subs r6, r6, #1 - add r1, sp, #4 - mov r2, r10 + mov r1, sp + mov r2, r9 mov r0, r6 bl log2phys - ldr r5, [r4, #1800] - ldr r0, [r4, #1776] - ldr r3, [sp, #4] - str r6, [sp, #24] - str r0, [sp, #16] - str r3, [sp, #12] + ldr r5, [r4, #3336] + ldr r0, [r4, #3312] + ldr r3, [sp] + str r6, [sp, #20] + str r0, [sp, #12] + str r3, [sp, #8] adds r3, r3, #1 - str r5, [sp, #20] - str r10, [r5, #4] - beq .L2796 + str r5, [sp, #16] + str r9, [r5, #4] + beq .L2783 movs r1, #1 - mov r2, r10 - add r0, sp, #8 + mov r2, r9 + add r0, sp, #4 bl FlashReadPages - b .L2797 -.L2796: + b .L2784 +.L2783: movs r1, #255 - ldrh r2, [r8, #1882] + ldrh r2, [r7, #2394] bl ftl_memset -.L2797: - mov r8, #0 - ldr fp, .L2811+4 - lsl r9, r9, #2 +.L2784: + movs r7, #0 + ldr r10, .L2797 + lsl r8, r8, #2 movw r3, #61589 - mov r10, r8 + mov r9, r7 strh r3, [r5] @ movhi -.L2798: - cmp r8, r9 - beq .L2799 - ldrh r3, [r4, #-196] - cbz r3, .L2799 - ldr r3, [sp, #12] - add r8, r8, #1 +.L2785: + cmp r7, r8 + beq .L2786 + ldrh r3, [r4, #316] + cbz r3, .L2786 + ldr r3, [sp, #8] + adds r7, r7, #1 str r6, [r5, #8] - ldr r0, .L2811+8 + ldr r0, .L2797+8 str r3, [r5, #12] - ldrh r3, [fp, #-200] + ldrh r3, [r10, #312] strh r3, [r5, #2] @ movhi bl get_new_active_ppa - ldr r3, [fp, #-4] + ldr r3, [r10, #508] movs r1, #1 - str r0, [sp, #12] - add r0, sp, #8 + str r0, [sp, #8] + add r0, sp, #4 str r3, [r5, #4] adds r3, r3, #1 adds r2, r3, #1 mov r2, #0 it eq - moveq r3, r10 - str r3, [fp, #-4] + moveq r3, r9 + str r3, [r10, #508] mov r3, r2 bl FlashProgPages - ldrh r0, [r4, #-200] + ldrh r0, [r4, #312] bl decrement_vpc_count - b .L2798 -.L2799: + b .L2785 +.L2786: movs r3, #1 - b .L2810 -.L2794: + b .L2796 +.L2781: movs r3, #0 -.L2810: - strb r3, [r4, #-190] -.L2792: - ldr r2, [sp, #44] - ldr r3, [r7] - cmp r2, r3 - beq .L2803 - bl __stack_chk_fail -.L2803: - add sp, sp, #52 +.L2796: + strb r3, [r4, #322] +.L2779: + add sp, sp, #40 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2812: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L2798: .align 2 -.L2811: - .word __stack_chk_guard +.L2797: .word .LANCHOR2 - .word .LANCHOR2-200 .word .LANCHOR0 + .word .LANCHOR2+312 .fnend .size FtlWriteDumpData, .-FtlWriteDumpData .align 1 @@ -17751,29 +17584,29 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData movs r4, #0 - ldr r5, .L2818 + ldr r5, .L2804 movs r7, #12 - ldr r6, .L2818+4 -.L2814: - ldrh r3, [r5, #1910] + ldr r6, .L2804+4 +.L2800: + ldrh r3, [r5, #2422] uxth r0, r4 cmp r3, r0 - bls .L2817 - ldr r3, [r6, #-56] + bls .L2803 + ldr r3, [r6, #456] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L2815 + bge .L2801 bl flush_l2p_region -.L2815: +.L2801: adds r4, r4, #1 - b .L2814 -.L2817: + b .L2800 +.L2803: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L2819: +.L2805: .align 2 -.L2818: +.L2804: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -17787,95 +17620,94 @@ allocate_new_data_superblock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, r6, r7, lr} - .save {r3, r4, r5, r6, r7, lr} - mov r4, r0 - ldr r7, .L2846 - ldrh r6, [r0] - ldr r3, [r7, #4052] + push {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r6, r0 + ldr r4, .L2832 + ldrh r5, [r0] + ldr r3, [r4, #220] cmp r3, #0 - bne .L2821 + bne .L2807 movw r3, #65535 - cmp r6, r3 - ldr r5, .L2846+4 - beq .L2822 - ldr r3, [r5, #-220] - mov r0, r6 - ldrh r3, [r3, r6, lsl #1] - cbz r3, .L2823 + cmp r5, r3 + beq .L2808 + ldr r3, [r4, #292] + mov r0, r5 + ldrh r3, [r3, r5, lsl #1] + cbz r3, .L2809 bl INSERT_DATA_LIST - b .L2822 -.L2823: + b .L2808 +.L2809: bl INSERT_FREE_LIST -.L2822: +.L2808: + ldr r2, .L2832 movs r3, #0 - strb r3, [r4, #8] - ldr r3, .L2846+4 - sub r2, r3, #152 - cmp r4, r2 - beq .L2824 - ldrh r2, [r7, #1824] + strb r3, [r6, #8] + add r3, r2, #360 + cmp r6, r3 + beq .L2810 + ldr r3, .L2832+4 + ldrh r1, [r3, #2336] + cmp r1, #1 + beq .L2810 + ldrb r0, [r3, #140] @ zero_extendqisi2 + cbz r0, .L2811 +.L2810: + movs r3, #1 + strb r3, [r6, #8] + b .L2812 +.L2811: + add r0, r2, #312 + cmp r6, r0 + bne .L2812 + cmp r1, #3 + beq .L2814 + ldr r2, [r2, #600] cmp r2, #1 - beq .L2824 - ldr r1, .L2846 - ldrb r1, [r1, #140] @ zero_extendqisi2 - cbz r1, .L2825 -.L2824: - movs r3, #1 - strb r3, [r4, #8] - b .L2826 -.L2825: - sub r1, r3, #200 - cmp r4, r1 - bne .L2826 - cmp r2, #3 - beq .L2828 - ldr r3, [r3, #88] - cmp r3, #1 - bne .L2829 -.L2828: - movs r3, #1 - strb r3, [r5, #-192] -.L2829: - ldr r3, [r7, #1796] - cbz r3, .L2826 - ldr r3, [r5, #16] + bne .L2815 +.L2814: + movs r2, #1 + strb r2, [r4, #320] +.L2815: + ldr r3, [r3, #2308] + cbz r3, .L2812 + ldr r3, [r4, #528] cmp r3, #39 ittt ls movls r2, #1 - ldrls r3, .L2846+4 - strbls r2, [r3, #-192] -.L2826: - ldrh r0, [r5, #1920] + ldrls r3, .L2832 + strbls r2, [r3, #320] +.L2812: + ldrh r0, [r4, #3456] movw r3, #65535 cmp r0, r3 - beq .L2831 - cmp r6, r0 - bne .L2832 - ldr r3, .L2846+4 - ldr r3, [r3, #-220] + beq .L2817 + cmp r5, r0 + bne .L2818 + ldr r3, .L2832 + ldr r3, [r3, #292] ldrh r3, [r3, r0, lsl #1] - cbz r3, .L2833 -.L2832: + cbz r3, .L2819 +.L2818: bl update_vpc_list -.L2833: +.L2819: movw r3, #65535 - strh r3, [r5, #1920] @ movhi -.L2831: - mov r0, r4 + strh r3, [r4, #3456] @ movhi +.L2817: + mov r0, r6 bl allocate_data_superblock bl l2p_flush movs r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2821: +.L2807: movs r0, #0 - pop {r3, r4, r5, r6, r7, pc} -.L2847: + pop {r4, r5, r6, pc} +.L2833: .align 2 -.L2846: - .word .LANCHOR0 +.L2832: .word .LANCHOR2 + .word .LANCHOR0 .fnend .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 1 @@ -17887,120 +17719,110 @@ FtlCheckVpc: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - .pad #8 + push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} + .pad #12 movs r4, #0 - ldr r6, .L2869 - ldr r1, .L2869+4 - ldr r0, .L2869+8 - ldr r3, [r6] - ldr r5, .L2869+12 - ldr r8, .L2869+36 - str r3, [sp, #4] + ldr r1, .L2854 + ldr r0, .L2854+4 bl printk - ldr r0, .L2869+16 + ldr r0, .L2854+8 movs r1, #0 mov r2, #8192 bl memset -.L2849: - ldr r3, [r5, #1932] - ldr r7, .L2869+12 + ldr r5, .L2854+12 + ldr r7, .L2854+16 +.L2835: + ldr r3, [r5, #2444] + ldr r6, .L2854+12 cmp r4, r3 - bcs .L2867 + bcs .L2852 mov r0, r4 - mov r1, sp + add r1, sp, #4 movs r2, #0 bl log2phys - ldr r0, [sp] + ldr r0, [sp, #4] adds r3, r0, #1 - beq .L2850 + beq .L2836 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - add r0, r8, r0, lsl #1 - ldrh r3, [r0, #-204] + add r0, r7, r0, lsl #1 + ldrh r3, [r0, #1332] adds r3, r3, #1 - strh r3, [r0, #-204] @ movhi -.L2850: + strh r3, [r0, #1332] @ movhi +.L2836: adds r4, r4, #1 - b .L2849 -.L2867: - ldr r9, .L2869+20 - movs r4, #0 - ldr r8, .L2869+36 + b .L2835 .L2852: - ldrh r3, [r7, #1812] + ldr r8, .L2854+20 + movs r4, #0 + ldr r7, .L2854+16 +.L2838: + ldrh r3, [r6, #2324] uxth r1, r4 - ldr r5, .L2869+20 + ldr r5, .L2854+20 cmp r3, r1 - bls .L2868 - ldr r3, [r9, #-220] + bls .L2853 + ldr r3, [r8, #292] ldrh r2, [r3, r1, lsl #1] - add r3, r8, r1, lsl #1 - ldrh r3, [r3, #-204] + add r3, r7, r1, lsl #1 + ldrh r3, [r3, #1332] cmp r2, r3 - beq .L2853 - ldr r0, .L2869+24 + beq .L2839 + ldr r0, .L2854+24 bl printk -.L2853: +.L2839: adds r4, r4, #1 - b .L2852 -.L2868: - ldr r4, [r5, #-208] - cbz r4, .L2848 - ldr r3, [r5, #-228] - movs r7, #0 - ldrh r8, [r5, #-204] - mov r10, #6 - subs r4, r4, r3 - ldr r3, .L2869+28 - ldr r9, .L2869+36 - asrs r4, r4, #1 - muls r4, r3, r4 - uxth r4, r4 -.L2856: - uxth r3, r7 - cmp r3, r8 - bcs .L2848 - ldr r3, [r5, #-220] + b .L2838 +.L2853: + ldr r3, [r5, #304] + cbz r3, .L2834 + ldr r2, [r5, #284] + movs r6, #0 + ldrh r7, [r5, #308] + mov r9, #6 + subs r3, r3, r2 + ldr r2, .L2854+28 + ldr r8, .L2854+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] ldrh r2, [r3, r4, lsl #1] - cbz r2, .L2857 - add r3, r9, r4, lsl #1 - ldr r0, .L2869+32 + cbz r2, .L2843 + add r3, r8, r4, lsl #1 + ldr r0, .L2854+32 mov r1, r4 - ldrh r3, [r3, #-204] + ldrh r3, [r3, #1332] bl printk -.L2857: - mul r4, r10, r4 - ldr r3, [r5, #-228] - adds r7, r7, #1 +.L2843: + mul r4, r9, r4 + ldr r3, [r5, #284] + adds r6, r6, #1 ldrh r4, [r3, r4] movw r3, #65535 cmp r4, r3 - bne .L2856 -.L2848: - ldr r2, [sp, #4] - ldr r3, [r6] - cmp r2, r3 - beq .L2860 - bl __stack_chk_fail -.L2860: - add sp, sp, #8 + bne .L2842 +.L2834: + add sp, sp, #12 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2870: + pop {r4, r5, r6, r7, r8, r9, pc} +.L2855: .align 2 -.L2869: - .word __stack_chk_guard +.L2854: .word .LANCHOR3+72 .word .LC108 + .word .LANCHOR4+1332 .word .LANCHOR0 - .word .LANCHOR4-204 + .word .LANCHOR4 .word .LANCHOR2 .word .LC140 .word -1431655765 .word .LC141 - .word .LANCHOR4 .fnend .size FtlCheckVpc, .-FtlCheckVpc .align 1 @@ -18012,60 +17834,58 @@ Ftlscanalldata: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - .pad #32 - sub sp, sp, #32 - ldr r6, .L2887 + push {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} movs r1, #0 - ldr r0, .L2887+4 - movs r4, #0 - ldr r8, .L2887+24 - ldr r3, [r6] - ldr r5, .L2887+8 - str r3, [sp, #28] + .pad #36 + sub sp, sp, #36 + ldr r0, .L2871 bl printk -.L2872: - ldr r3, [r8, #1932] + ldr r7, .L2871+4 + ldr r5, .L2871+8 + movs r4, #0 +.L2857: + ldr r3, [r7, #2444] cmp r4, r3 - bcs .L2886 + bcs .L2870 mov r0, r4 - add r1, sp, #24 + add r1, sp, #28 movs r2, #0 bl log2phys ubfx r3, r4, #0, #11 - cbnz r3, .L2873 - ldr r0, .L2887+12 + cbnz r3, .L2858 + ldr r0, .L2871+12 mov r1, r4 - ldr r2, [sp, #24] + ldr r2, [sp, #28] bl printk -.L2873: - ldr r3, [sp, #24] +.L2858: + ldr r3, [sp, #28] adds r2, r3, #1 - beq .L2875 - str r3, [r5, #4056] - movs r2, #0 - ldr r3, [r5, #1776] + beq .L2860 + str r3, [r5, #1248] movs r1, #1 - ldr r7, [r5, #1800] - ldr r0, .L2887+16 - str r3, [r5, #4060] - str r2, [r5, #4052] - str r4, [r5, #4068] - str r7, [r5, #4064] + ldr r3, .L2871+16 + ldr r0, .L2871+20 + str r4, [r5, #1260] + ldr r2, [r3, #3312] + ldr r6, [r3, #3336] + str r2, [r5, #1252] + movs r2, #0 + str r6, [r5, #1256] + str r2, [r5, #1244] bl FlashReadPages - ldr r3, [r5, #4052] - ldr r2, .L2887+8 + ldr r3, [r5, #1244] + ldr r2, .L2871+8 cmp r3, #256 - beq .L2876 + beq .L2861 adds r3, r3, #1 - beq .L2876 - ldr r3, [r7, #8] + beq .L2861 + ldr r3, [r6, #8] cmp r3, r4 - beq .L2875 -.L2876: - ldr r3, [r2, #4064] - ldr r1, [r2, #4060] + beq .L2860 +.L2861: + ldr r3, [r2, #1256] + ldr r1, [r2, #1252] ldr r0, [r3, #4] str r0, [sp] ldr r0, [r3, #8] @@ -18075,35 +17895,29 @@ Ftlscanalldata: ldr r0, [r1] str r0, [sp, #12] ldr r1, [r1, #4] - ldr r0, .L2887+20 + ldr r0, .L2871+24 str r1, [sp, #16] mov r1, r4 - ldr r2, [r2, #4056] + ldr r2, [r2, #1248] ldr r3, [r3] bl printk -.L2875: +.L2860: adds r4, r4, #1 - b .L2872 -.L2886: - ldr r2, [sp, #28] - ldr r3, [r6] - cmp r2, r3 - beq .L2879 - bl __stack_chk_fail -.L2879: - add sp, sp, #32 + b .L2857 +.L2870: + add sp, sp, #36 @ sp needed - pop {r4, r5, r6, r7, r8, pc} -.L2888: + pop {r4, r5, r6, r7, pc} +.L2872: .align 2 -.L2887: - .word __stack_chk_guard +.L2871: .word .LC142 - .word .LANCHOR2 - .word .LC143 - .word .LANCHOR2+4052 - .word .LC144 .word .LANCHOR0 + .word .LANCHOR4 + .word .LC143 + .word .LANCHOR2 + .word .LANCHOR4+1244 + .word .LC144 .fnend .size Ftlscanalldata, .-Ftlscanalldata .align 1 @@ -18122,51 +17936,51 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r5, .L2898 - ldr r4, [r5, #-220] + ldr r5, .L2882 + ldr r4, [r5, #292] ldrh r3, [r4, r0, lsl #1] - cbnz r3, .L2890 - ldr r4, [r5, #-208] - cbz r4, .L2891 - ldr r1, [r5, #-228] + cbnz r3, .L2874 + ldr r4, [r5, #304] + cbz r4, .L2875 + ldr r1, [r5, #284] mov lr, #6 - ldr r2, .L2898+4 + ldr r2, .L2882+4 movw ip, #65535 subs r4, r4, r1 - ldrh r7, [r5, #-204] + ldrh r7, [r5, #308] asrs r4, r4, #1 muls r4, r2, r4 uxth r4, r4 -.L2892: +.L2876: uxth r2, r3 cmp r2, r7 - bcs .L2891 + bcs .L2875 cmp r4, r0 - bne .L2893 + bne .L2877 mov r1, r4 - ldr r0, .L2898+8 + ldr r0, .L2882+8 bl List_remove_node - ldrh r3, [r5, #-204] + ldrh r3, [r5, #308] mov r0, r4 subs r3, r3, #1 - strh r3, [r5, #-204] @ movhi + strh r3, [r5, #308] @ movhi bl INSERT_DATA_LIST - ldr r2, [r5, #-220] + ldr r2, [r5, #292] ldrh r3, [r2, r4, lsl #1] adds r3, r3, #1 strh r3, [r2, r4, lsl #1] @ movhi - b .L2891 -.L2893: + b .L2875 +.L2877: mul r4, lr, r4 adds r3, r3, #1 ldrh r4, [r1, r4] cmp r4, ip - bne .L2892 - b .L2891 -.L2890: + bne .L2876 + b .L2875 +.L2874: adds r3, r3, #1 strh r3, [r4, r0, lsl #1] @ movhi -.L2891: +.L2875: mov r0, r6 add r1, sp, #4 movs r2, #1 @@ -18174,12 +17988,12 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L2899: +.L2883: .align 2 -.L2898: +.L2882: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2-208 + .word .LANCHOR2+304 .fnend .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 1 @@ -18191,71 +18005,68 @@ FtlRecoverySuperblock: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3064 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + movw r7, #65535 + ldrh r3, [r0] .pad #68 sub sp, sp, #68 - ldr r3, [r3] - movw r7, #65535 mov r4, r0 - str r3, [sp, #60] - ldrh r3, [r0] cmp r3, r7 - beq .L2902 + beq .L3031 ldrh r3, [r0, #2] movs r5, #0 - ldr r6, .L3064+4 + ldr r6, .L3047 str r3, [sp, #12] ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r2, [sp, #12] str r3, [sp, #28] - ldrh r3, [r6, #1872] + ldrh r3, [r6, #2384] cmp r3, r2 - bne .L2903 + bne .L2887 strh r5, [r0, #4] @ movhi strb r5, [r0, #6] - b .L2902 -.L2903: + b .L3031 +.L2887: ldrh r0, [r0, #16] -.L2904: +.L2888: cmp r0, r7 add r5, r5, #1 - bne .L3059 + bne .L3042 uxth r3, r5 adds r3, r3, #8 ldrh r0, [r4, r3, lsl #1] - b .L2904 -.L3059: + b .L2888 +.L3042: ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2906 + bne .L2890 bl FtlGetLastWrittenPage adds r2, r0, #1 mov r5, r0 - beq .L2907 + beq .L2891 ldrb r3, [r6, #140] @ zero_extendqisi2 - cbnz r3, .L3050 - ldr r3, .L3064+4 + cbnz r3, .L3033 + ldr r3, .L3047 add r3, r3, r0, lsl #1 ldrh r7, [r3, #144] - b .L2981 -.L2906: + b .L2965 +.L2890: movs r1, #0 bl FtlGetLastWrittenPage adds r3, r0, #1 mov r5, r0 - beq .L2907 -.L3050: + beq .L2891 +.L3033: mov r7, r5 -.L2981: - ldr r3, .L3064+8 +.L2965: + ldr r3, .L3047+4 movw r9, #65535 - ldrh ip, [r6, #1804] + ldrh ip, [r6, #2316] mov r10, #36 - ldrh r0, [r6, #1884] - ldr r2, [r3, #1764] - ldr r8, [r3, #632] + ldrh r0, [r6, #2396] + ldr r2, [r3, #3300] + ldr r8, [r3, #1144] add r3, r4, #14 str r3, [sp, #20] str r2, [sp, #4] @@ -18263,16 +18074,16 @@ FtlRecoverySuperblock: mov lr, r3 mov r6, r2 mov fp, r2 - b .L2909 -.L2907: + b .L2893 +.L2891: movs r3, #0 strh r3, [r4, #2] @ movhi strb r3, [r4, #6] - b .L2902 -.L2912: + b .L3031 +.L2896: ldrh r3, [lr, #2]! cmp r3, r9 - beq .L2910 + beq .L2894 ldr r1, [sp, #4] orr r3, r7, r3, lsl #10 mla r1, r10, r6, r1 @@ -18287,105 +18098,105 @@ FtlRecoverySuperblock: bic r3, r3, #3 add r3, r3, r8 str r3, [r1, #12] -.L2910: +.L2894: adds r2, r2, #1 -.L2909: +.L2893: uxth r3, r2 cmp r3, ip - bcc .L2912 + bcc .L2896 ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2984 - ldr r3, .L3064+4 + bne .L2967 + ldr r3, .L3047 ldrb r1, [r3, #140] @ zero_extendqisi2 adds r3, r1, #0 it ne movne r3, #1 - b .L3051 -.L2984: + b .L3034 +.L2967: movs r3, #0 -.L3051: - ldr r8, .L3064+8 +.L3034: + ldr r8, .L3047+4 mov r1, r6 str r3, [sp, #24] mov fp, #0 ldr r2, [sp, #24] - ldr r0, [r8, #1764] + ldr r0, [r8, #3300] bl FlashReadPages - ldr r3, [r8, #-4] + ldr r3, [r8, #508] subs r3, r3, #1 str r8, [sp, #8] str r3, [sp, #4] movw r3, #65535 str r3, [sp, #16] -.L2914: +.L2898: uxth r9, fp cmp r9, r6 - bcs .L2921 + bcs .L2905 movs r1, #36 - ldr r0, [r8, #1764] + ldr r0, [r8, #3300] mul r1, r1, fp add lr, r0, r1 ldr r1, [r0, r1] - cbnz r1, .L2915 + cbnz r1, .L2899 ldr r3, [lr, #12] ldr r10, [r3, #4] cmp r10, #-1 - beq .L2916 + beq .L2900 mov r0, r10 - ldr r1, [r8, #-4] + ldr r1, [r8, #508] str r3, [sp, #32] bl ftl_cmp_data_ver ldr r3, [sp, #32] - cbz r0, .L2916 + cbz r0, .L2900 add r1, r10, #1 - str r1, [r8, #-4] -.L2916: + str r1, [r8, #508] +.L2900: ldr r1, [r3] adds r1, r1, #1 - bne .L2917 -.L2921: + bne .L2901 +.L2905: cmp r9, r6 - ldr r6, .L3064+8 - bne .L3048 - ldr r3, [r6, #1764] + ldr r6, .L3047+4 + bne .L3032 + ldr r3, [r6, #3300] adds r5, r5, #1 uxth r10, r5 ldr r0, [r3, #4] - b .L3052 -.L2915: + b .L3035 +.L2899: ldr r1, [lr, #4] - ldr r0, .L3064+12 + ldr r0, .L3047+8 bl printk uxth r3, r7 ldrh r1, [r4] str r3, [sp, #16] - ldr r3, .L3064+16 - strh r1, [r3, #3644] @ movhi -.L2917: + ldr r3, .L3047+12 + strh r1, [r3, #836] @ movhi +.L2901: add fp, fp, #1 - b .L2914 -.L3048: + b .L2898 +.L3032: ldr r3, [sp, #8] movs r2, #36 uxth r10, r5 - ldr r3, [r3, #1764] + ldr r3, [r3, #3300] mla r9, r2, r9, r3 ldr r0, [r9, #4] -.L3052: +.L3035: ubfx r0, r0, #10, #16 bl P2V_plane ldrb r5, [r4, #8] @ zero_extendqisi2 - ldr r2, .L3064+4 + ldr r2, .L3047 cmp r5, #1 str r0, [sp, #8] - bne .L2923 + bne .L2907 ldrb r3, [r2, #140] @ zero_extendqisi2 - cbnz r3, .L2923 + cbnz r3, .L2907 add r3, r2, r10, lsl #1 ldrh r10, [r3, #144] -.L2923: - ldrh r3, [r2, #1872] +.L2907: + ldrh r3, [r2, #2384] cmp r3, r10 itttt eq strheq r10, [r4, #2] @ movhi @@ -18396,34 +18207,34 @@ FtlRecoverySuperblock: str r3, [sp, #32] ldr r3, [sp, #12] cmp r10, r3 - bne .L2925 + bne .L2909 ldr r3, [sp, #8] ldr r2, [sp, #32] cmp r3, r2 - bne .L2925 + bne .L2909 mov r0, r4 mov r1, r10 mov r2, r3 - b .L3057 -.L2925: + b .L3040 +.L2909: ldr r2, [sp, #16] movw r3, #65535 cmp r2, r3 - bne .L2926 + bne .L2910 cmp r5, #0 - bne .L2927 -.L2926: - ldr r3, [r6, #1932] + bne .L2911 +.L2910: + ldr r3, [r6, #3468] uxth fp, r7 mov r9, #-1 - ldr r7, .L3064+8 + ldr r7, .L3047+4 adds r3, r3, #1 mov r8, r9 ittt eq - ldreq r3, .L3064+8 + ldreq r3, .L3047+4 ldreq r2, [sp, #4] - streq r2, [r3, #1932] - ldr r3, [r6, #1932] + streq r2, [r3, #3468] + ldr r3, [r6, #3468] str r3, [sp, #16] ldr r3, [sp, #12] adds r3, r3, #7 @@ -18432,24 +18243,24 @@ FtlRecoverySuperblock: subgt r5, fp, #7 ldrle r5, [sp, #12] uxthgt r5, r5 -.L2930: +.L2914: cmp r5, fp - bhi .L2943 - ldr r3, .L3064+4 + bhi .L2927 + ldr r3, .L3047 ldr r1, [sp, #20] - ldrh ip, [r3, #1804] - ldr r3, [r7, #1764] + ldrh ip, [r3, #2316] + ldr r3, [r7, #3300] str r3, [sp, #28] movs r3, #0 mov r6, r3 -.L2944: +.L2928: uxth r2, r3 cmp r2, ip - bcs .L3060 + bcs .L3043 ldrh r2, [r1, #2]! movw r0, #65535 cmp r2, r0 - beq .L2931 + beq .L2915 ldr r0, [sp, #28] mov lr, #36 orr r2, r5, r2, lsl #10 @@ -18457,129 +18268,129 @@ FtlRecoverySuperblock: adds r6, r6, #1 uxth r6, r6 str r2, [r0, #4] -.L2931: +.L2915: adds r3, r3, #1 - b .L2944 -.L3065: - .align 2 -.L3064: - .word __stack_chk_guard - .word .LANCHOR0 - .word .LANCHOR2 - .word .LC145 - .word .LANCHOR5 -.L3060: + b .L2928 +.L3043: mov r1, r6 ldr r2, [sp, #24] - ldr r0, [r7, #1764] + ldr r0, [r7, #3300] bl FlashReadPages - ldr r3, .L3066 + ldr r3, .L3047 movs r2, #36 add lr, r7, r5, lsl #1 movw r1, #65535 ldrb r0, [r3, #140] @ zero_extendqisi2 - ldr r3, [r7, #1764] + ldr r3, [r7, #3300] mla r6, r2, r6, r3 -.L2933: +.L2917: cmp r3, r6 - beq .L3061 + beq .L3044 ldr r2, [r3] - cbnz r2, .L2934 + cbnz r2, .L2918 ldr r2, [r3, #12] ldrh ip, [r2] cmp ip, r1 - beq .L2935 + beq .L2919 ldr r2, [r2, #4] cmp r2, #-1 - beq .L2935 + beq .L2919 cmp r9, #-1 - ldr r8, [r7, #1932] - str r2, [r7, #1932] - bne .L2935 - ldrh r2, [lr, #704] + ldr r8, [r7, #3468] + str r2, [r7, #3468] + bne .L2919 + ldrh r2, [lr, #1216] cmp r2, r1 - bne .L2936 - cbz r0, .L2935 -.L2936: + bne .L2920 + cmp r0, #0 + beq .L2919 +.L2920: ldr r2, [sp, #4] cmp r8, r2 ite ne movne r9, r8 moveq r9, #-1 - b .L2935 -.L2934: - ldr r3, .L3066+4 + b .L2919 +.L3048: + .align 2 +.L3047: + .word .LANCHOR0 + .word .LANCHOR2 + .word .LC145 + .word .LANCHOR5 +.L2918: + ldr r3, .L3049 ldrh r2, [r4] - strh r2, [r3, #3644] @ movhi + strh r2, [r3, #836] @ movhi ldrb r3, [r4, #8] @ zero_extendqisi2 - cbnz r3, .L2927 - ldr r3, .L3066+8 + cbnz r3, .L2911 + ldr r3, .L3049+4 movw r2, #65535 add r5, r3, r5, lsl #1 - ldrh r1, [r5, #704] + ldrh r1, [r5, #1216] cmp r1, r2 - bne .L2938 + bne .L2922 cmp r9, #-1 - beq .L2939 - str r9, [r3, #1932] - b .L2927 -.L2939: + beq .L2923 + str r9, [r3, #3468] + b .L2911 +.L2923: ldr r2, [sp, #16] ldr r1, [sp, #4] cmp r2, r1 - bne .L3053 - ldr r2, [r3, #1932] - b .L3058 -.L2938: + bne .L3036 + ldr r2, [r3, #3468] + b .L3041 +.L2922: ldr r2, [sp, #4] cmp r8, r2 - beq .L2941 + beq .L2925 cmp r8, #-1 - beq .L2927 - str r8, [r3, #1932] - b .L2927 -.L2941: - ldr r2, [r3, #1932] + beq .L2911 + str r8, [r3, #3468] + b .L2911 +.L2925: + ldr r2, [r3, #3468] ldr r1, [sp, #4] cmp r2, r1 - beq .L2927 -.L3058: + beq .L2911 +.L3041: subs r2, r2, #1 - b .L3053 -.L2935: + b .L3036 +.L2919: adds r3, r3, #36 - b .L2933 -.L3061: + b .L2917 +.L3044: adds r5, r5, #1 uxth r5, r5 - b .L2930 -.L2943: - ldr r3, .L3066+8 - mov r2, #-1 -.L3053: - str r2, [r3, #1932] + b .L2914 .L2927: - ldr r3, .L3066+4 + ldr r3, .L3049+4 + mov r2, #-1 +.L3036: + str r2, [r3, #3468] +.L2911: + ldr r3, .L3049 movs r2, #1 ldr fp, [sp, #12] - ldr r5, .L3066+8 - strh r2, [r3, #3646] @ movhi -.L2945: - ldr r3, .L3066 + ldr r5, .L3049+4 + strh r2, [r3, #838] @ movhi +.L2929: + ldr r3, .L3049+8 movw r9, #65535 - ldr r1, [r5, #1764] + ldr r1, [r5, #3300] movs r6, #0 ldr r7, [sp, #20] - ldrh r8, [r3, #1804] + ldrh r8, [r3, #2316] ldrb r0, [r3, #140] @ zero_extendqisi2 str r6, [sp, #16] -.L2946: +.L2930: uxth r3, r6 cmp r3, r8 - bcs .L3062 + bcs .L3045 ldrh r3, [r7, #2]! cmp r3, r9 - beq .L2947 + beq .L2931 ldr r2, [sp, #16] mov lr, #36 orr r3, fp, r3, lsl #10 @@ -18587,353 +18398,345 @@ FtlRecoverySuperblock: str r3, [r2, #4] ldrb lr, [r4, #8] @ zero_extendqisi2 cmp lr, #1 - bne .L2948 - cbz r0, .L2948 + bne .L2932 + cbz r0, .L2932 orr r3, r3, #-2147483648 str r3, [r2, #4] -.L2948: +.L2932: ldr r3, [sp, #16] add ip, r3, #1 uxth r3, ip str r3, [sp, #16] -.L2947: +.L2931: adds r6, r6, #1 - b .L2946 -.L3062: - ldr r0, [r5, #1764] + b .L2930 +.L3045: + ldr r0, [r5, #3300] ldr r1, [sp, #16] ldr r2, [sp, #24] bl FlashReadPages movs r3, #0 -.L3056: +.L3039: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L3063 + bcs .L3046 ldr r3, [sp, #28] movs r6, #36 - ldr r9, [r5, #1764] + ldr r9, [r5, #3300] muls r6, r3, r6 add r8, r9, r6 ldr r7, [r8, #4] ubfx r0, r7, #10, #16 - str r7, [sp, #56] + str r7, [sp, #60] bl P2V_plane ldr r3, [sp, #12] cmp fp, r3 - bcc .L2951 - bne .L2952 + bcc .L2935 + bne .L2936 ldr r3, [sp, #32] cmp r0, r3 - bcc .L2951 -.L2952: + bcc .L2935 +.L2936: cmp fp, r10 - bne .L2953 + bne .L2937 ldr r3, [sp, #8] cmp r0, r3 - beq .L2954 -.L2953: + beq .L2938 +.L2937: ldr r3, [r9, r6] adds r3, r3, #1 - beq .L2955 + beq .L2939 ldr r8, [r8, #12] movw r3, #61589 ldrh r2, [r8] cmp r2, r3 - beq .L2956 + beq .L2940 ldrh r0, [r4] - b .L3054 -.L2956: + b .L3037 +.L2940: ldr r3, [r8, #4] adds r7, r3, #1 str r3, [sp, #4] - beq .L2957 + beq .L2941 mov r0, r3 - ldr r1, [r5, #-4] + ldr r1, [r5, #508] bl ftl_cmp_data_ver - cbz r0, .L2957 + cbz r0, .L2941 ldr r3, [sp, #4] adds r3, r3, #1 - str r3, [r5, #-4] -.L2957: + str r3, [r5, #508] +.L2941: ldr r7, [r8, #8] - add r1, sp, #52 + add r1, sp, #56 ldr r3, [r8, #12] movs r2, #0 mov r0, r7 - str r3, [sp, #48] + str r3, [sp, #52] bl log2phys - ldr r1, [r5, #1932] + ldr r1, [r5, #3468] adds r0, r1, #1 - beq .L2958 + beq .L2942 ldr r0, [sp, #4] bl ftl_cmp_data_ver cmp r0, #0 - beq .L2958 - ldr r3, [sp, #48] + beq .L2942 + ldr r3, [sp, #52] adds r2, r3, #1 - beq .L2959 - ldr r0, [r5, #1764] + beq .L2943 + ldr r0, [r5, #3300] movs r2, #0 movs r1, #1 add r0, r0, r6 str r3, [r0, #4] ldr r9, [r0, #12] bl FlashReadPages - ldr r2, [r5, #1764] + ldr r2, [r5, #3300] ldr r3, [r9, #4] add ip, r2, r6 str r3, [sp, #36] ldr r3, [r2, r6] adds r3, r3, #1 - bne .L2960 - b .L2961 -.L2959: - ldr r3, [sp, #56] - ldr r2, [sp, #52] + bne .L2944 + b .L2945 +.L2943: + ldr r3, [sp, #60] + ldr r2, [sp, #56] cmp r2, r3 - bne .L2951 + bne .L2935 mov r0, r7 - add r1, sp, #48 + add r1, sp, #52 movs r2, #1 bl log2phys - b .L2951 -.L2960: + b .L2935 +.L2944: ldr r8, [r9, #8] cmp r8, r7 - bne .L2961 - ldr r0, [r5, #1932] + bne .L2945 + ldr r0, [r5, #3468] 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, .L2961 - ldr r3, [sp, #52] - ldr r1, [sp, #56] + cbz r0, .L2945 + ldr r3, [sp, #56] + ldr r1, [sp, #60] cmp r3, r1 - beq .L2966 - ldr r1, [sp, #48] + beq .L2950 + ldr r1, [sp, #52] cmp r3, r1 - beq .L2961 + beq .L2945 adds r7, r3, #1 - beq .L2964 + beq .L2948 str r3, [ip, #4] mov r0, ip movs r1, #1 movs r2, #0 ldr r9, [ip, #12] bl FlashReadPages - b .L2965 -.L2964: + b .L2949 +.L2948: str r3, [r2, r6] -.L2965: - ldr r3, [r5, #1764] +.L2949: + ldr r3, [r5, #3300] ldr r3, [r3, r6] adds r3, r3, #1 - beq .L2966 + beq .L2950 ldr r6, [r9, #4] - ldr r0, [r5, #1932] + ldr r0, [r5, #3468] mov r1, r6 bl ftl_cmp_data_ver - cbz r0, .L2966 + cbz r0, .L2950 ldr r0, [sp, #36] mov r1, r6 bl ftl_cmp_data_ver - cbz r0, .L2961 -.L2966: + cbz r0, .L2945 +.L2950: mov r0, r8 - ldr r1, [sp, #48] + ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L2961: +.L2945: mov r3, #-1 - str r3, [sp, #48] - b .L2968 -.L3067: + str r3, [sp, #52] + b .L2952 +.L3050: .align 2 -.L3066: - .word .LANCHOR0 +.L3049: .word .LANCHOR5 .word .LANCHOR2 -.L2958: - ldr r3, [sp, #56] - ldr r2, [sp, #52] + .word .LANCHOR0 +.L2942: + ldr r3, [sp, #60] + ldr r2, [sp, #56] cmp r2, r3 - beq .L2968 - ldr r3, [sp, #48] + beq .L2952 + ldr r3, [sp, #52] adds r0, r3, #1 - beq .L2970 - ldr r2, .L3068 + beq .L2954 + ldr r2, .L3051 ubfx r3, r3, #10, #21 - ldr r2, [r2, #1820] + ldr r2, [r2, #2332] cmp r3, r2 - bcs .L2951 -.L2970: + bcs .L2935 +.L2954: + mov r0, r7 + add r1, sp, #60 + movs r2, #1 + bl log2phys + ldr r8, [sp, #56] + cmp r8, #-1 + beq .L2952 + ldr r3, [sp, #52] + cmp r8, r3 + beq .L2952 + ubfx r0, r8, #10, #16 + bl P2V_block_in_plane + ldrh r3, [r5, #312] + cmp r3, r0 + beq .L2956 + ldrh r3, [r5, #360] + cmp r3, r0 + beq .L2956 + ldrh r3, [r5, #408] + cmp r3, r0 + bne .L2952 +.L2956: + ldr r3, .L3051+4 + movs r1, #1 + movs r2, #0 + ldr r0, [r3, #3300] + str r8, [r0, #4] + ldr r6, [r0, #12] + bl FlashReadPages + ldr r3, .L3051+4 + ldr r1, [r6, #4] + ldr r3, [r3, #3300] + ldr r3, [r3] + adds r3, r3, #1 + beq .L2952 + ldr r0, [sp, #4] + bl ftl_cmp_data_ver + cbnz r0, .L2952 mov r0, r7 add r1, sp, #56 movs r2, #1 bl log2phys - ldr r8, [sp, #52] - cmp r8, #-1 - beq .L2968 - ldr r3, [sp, #48] - cmp r8, r3 - beq .L2968 - ubfx r0, r8, #10, #16 - bl P2V_block_in_plane - ldrh r3, [r5, #-200] - cmp r3, r0 - beq .L2972 - ldrh r3, [r5, #-152] - cmp r3, r0 - beq .L2972 - ldrh r3, [r5, #-104] - cmp r3, r0 - bne .L2968 -.L2972: - ldr r3, .L3068+4 - movs r1, #1 - movs r2, #0 - ldr r0, [r3, #1764] - str r8, [r0, #4] - ldr r6, [r0, #12] - bl FlashReadPages - ldr r3, .L3068+4 - ldr r1, [r6, #4] - ldr r3, [r3, #1764] - ldr r3, [r3] - adds r3, r3, #1 - beq .L2968 - ldr r0, [sp, #4] - bl ftl_cmp_data_ver - cbnz r0, .L2968 - mov r0, r7 - add r1, sp, #52 - movs r2, #1 - bl log2phys -.L2968: - ldr r0, [sp, #48] +.L2952: + ldr r0, [sp, #52] adds r1, r0, #1 - beq .L2951 + beq .L2935 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r5, #-220] + ldr r3, [r5, #292] ldrh r3, [r3, r0, lsl #1] mov r1, r0 - cbz r3, .L2973 -.L3054: + cbz r3, .L2957 +.L3037: bl decrement_vpc_count - b .L2951 -.L2973: - ldr r0, .L3068+8 + b .L2935 +.L2957: + ldr r0, .L3051+8 bl printk - b .L2951 -.L2955: + b .L2935 +.L2939: ldrh r3, [r4] mov r1, r7 - ldr r2, .L3068+12 - ldr r0, .L3068+16 - strh r3, [r2, #3644] @ movhi + ldr r2, .L3051+12 + ldr r0, .L3051+16 + strh r3, [r2, #836] @ movhi ldr r2, [sp, #4] bl printk - ldr r3, .L3068+12 - ldr r3, [r3, #3648] + ldr r3, .L3051+12 + ldr r3, [r3, #840] cmp r3, #31 - bhi .L2974 - ldr r2, .L3068+12 - ldr r1, [sp, #56] + bhi .L2958 + ldr r2, .L3051+12 + ldr r1, [sp, #60] add r2, r2, r3, lsl #2 adds r3, r3, #1 - str r1, [r2, #3652] - ldr r2, .L3068+12 - str r3, [r2, #3648] -.L2974: + str r1, [r2, #844] + ldr r2, .L3051+12 + str r3, [r2, #840] +.L2958: ldrh r0, [r4] bl decrement_vpc_count - ldr r3, [r5, #1932] + ldr r3, [r5, #3468] adds r2, r3, #1 - bne .L2975 + bne .L2959 ldr r3, [sp, #4] - b .L3055 -.L2975: + b .L3038 +.L2959: ldr r2, [sp, #4] cmp r3, r2 - bls .L2951 + bls .L2935 mov r3, r2 -.L3055: - str r3, [r5, #1932] -.L2951: +.L3038: + str r3, [r5, #3468] +.L2935: ldr r3, [sp, #28] adds r3, r3, #1 - b .L3056 -.L3063: + b .L3039 +.L3046: ldrb r3, [r4, #8] @ zero_extendqisi2 add fp, fp, #1 cmp r3, #1 uxth fp, fp - ldr r3, .L3068 - bne .L2977 + ldr r3, .L3051 + bne .L2961 ldrb r2, [r3, #140] @ zero_extendqisi2 - cbz r2, .L2977 - ldrh r2, [r3, #1874] + cbz r2, .L2961 + ldrh r2, [r3, #2386] cmp r2, fp - bne .L2977 + bne .L2961 cmp r10, fp - beq .L2954 -.L2977: - ldrh r3, [r3, #1872] + beq .L2938 +.L2961: + ldrh r3, [r3, #2384] cmp fp, r3 - bne .L2945 - ldr r2, .L3068 + bne .L2929 + ldr r2, .L3051 movw r0, #65535 movs r3, #0 strh fp, [r4, #2] @ movhi strh r3, [r4, #4] @ movhi - ldrh r1, [r2, #1804] -.L2978: + ldrh r1, [r2, #2316] +.L2962: uxth r2, r3 cmp r2, r1 - bcs .L2902 + bcs .L3031 ldr r6, [sp, #20] adds r3, r3, #1 ldrh r5, [r6, #2]! cmp r5, r0 str r6, [sp, #20] - beq .L2978 + beq .L2962 strb r2, [r4, #6] - b .L2902 -.L2954: + b .L3031 +.L2938: 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] -.L3057: +.L3040: bl ftl_sb_update_avl_pages -.L2902: - ldr r3, .L3068+20 +.L3031: movs r0, #0 - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L2982 - bl __stack_chk_fail -.L2982: add sp, sp, #68 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3069: +.L3052: .align 2 -.L3068: +.L3051: .word .LANCHOR0 .word .LANCHOR2 .word .LC146 .word .LANCHOR5 .word .LC147 - .word __stack_chk_guard .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 1 @@ -18945,105 +18748,94 @@ FtlVpcCheckAndModify: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - .pad #8 + push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} + .pad #12 movs r4, #0 - ldr r6, .L3086 - ldr r7, .L3086+4 - ldr r1, .L3086+8 - ldr r3, [r6] - mov r8, r6 - ldr r0, .L3086+12 - ldr r5, .L3086+16 - str r3, [sp, #4] + ldr r7, .L3066 + ldr r1, .L3066+4 + ldr r0, .L3066+8 bl printk - ldrh r2, [r7, #1814] + ldr r5, .L3066+12 + ldrh r2, [r7, #2326] movs r1, #0 - ldr r0, [r5, #1824] + ldr r0, [r5, #3360] lsls r2, r2, #1 bl ftl_memset -.L3071: - ldr r3, [r7, #1932] +.L3054: + ldr r3, [r7, #2444] cmp r4, r3 - bcs .L3084 + bcs .L3064 mov r0, r4 - mov r1, sp + add r1, sp, #4 movs r2, #0 bl log2phys - ldr r0, [sp] + ldr r0, [sp, #4] adds r3, r0, #1 - beq .L3072 + beq .L3055 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r5, #1824] + ldr r2, [r5, #3360] ldrh r3, [r2, r0, lsl #1] adds r3, r3, #1 strh r3, [r2, r0, lsl #1] @ movhi -.L3072: +.L3055: adds r4, r4, #1 - b .L3071 -.L3084: - ldr r6, .L3086+16 - mov r9, #0 - movw r10, #65535 -.L3074: - ldrh r3, [r7, #1812] - uxth r4, r9 + b .L3054 +.L3064: + ldr r6, .L3066+12 + mov r8, #0 + movw r9, #65535 +.L3057: + ldrh r3, [r7, #2324] + uxth r4, r8 cmp r3, r4 - bls .L3085 - ldr r3, [r5, #-220] + bls .L3065 + ldr r3, [r5, #292] ldrh r2, [r3, r4, lsl #1] - ldr r3, [r5, #1824] + ldr r3, [r5, #3360] ldrh r3, [r3, r4, lsl #1] cmp r2, r3 - beq .L3076 - cmp r2, r10 - beq .L3076 - ldr r0, .L3086+20 + beq .L3058 + cmp r2, r9 + beq .L3058 + ldrh r1, [r6, #312] + cmp r1, r4 + beq .L3058 + ldrh r1, [r6, #408] + cmp r1, r4 + beq .L3058 + ldrh r1, [r6, #360] + cmp r1, r4 + beq .L3058 + ldr r0, .L3066+16 mov r1, r4 bl printk - ldrh r3, [r6, #-200] - cmp r3, r4 - beq .L3076 - ldrh r3, [r6, #-104] - cmp r3, r4 - beq .L3076 - ldrh r3, [r6, #-152] - cmp r3, r4 - beq .L3076 - ldr r3, [r6, #-220] + ldr r3, [r6, #292] ldrh r2, [r3, r4, lsl #1] - cbnz r2, .L3078 - ldr r2, [r6, #1824] + cbnz r2, .L3059 + ldr r2, [r6, #3360] ldrh r2, [r2, r4, lsl #1] strh r2, [r3, r4, lsl #1] @ movhi - b .L3076 -.L3078: - ldr r2, [r6, #1824] + b .L3058 +.L3059: + ldr r2, [r6, #3360] mov r0, r4 ldrh r2, [r2, r4, lsl #1] strh r2, [r3, r4, lsl #1] @ movhi bl update_vpc_list -.L3076: - add r9, r9, #1 - b .L3074 -.L3085: +.L3058: + add r8, r8, #1 + b .L3057 +.L3065: bl l2p_flush bl FtlVpcTblFlush - ldr r2, [sp, #4] - ldr r3, [r8] - cmp r2, r3 - beq .L3080 - bl __stack_chk_fail -.L3080: - add sp, sp, #8 + add sp, sp, #12 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3087: + pop {r4, r5, r6, r7, r8, r9, pc} +.L3067: .align 2 -.L3086: - .word __stack_chk_guard +.L3066: .word .LANCHOR0 .word .LANCHOR3+84 .word .LC108 @@ -19058,182 +18850,191 @@ FtlVpcCheckAndModify: .type FtlGcScanTempBlk, %function FtlGcScanTempBlk: .fnstart - @ args = 0, pretend = 0, frame = 80 + @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3136 + ldr r3, .L3122 push {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 r3, [r3] - mov r4, r0 - str r1, [sp, #16] - str r3, [sp, #76] - ldr r3, .L3136+4 - ldrh r5, [r3, #3288] + .pad #76 + sub sp, sp, #76 + ldrh r5, [r3, #3352] movw r3, #65535 + mov r4, r0 + str r1, [sp, #20] cmp r5, r3 - beq .L3122 - cbnz r5, .L3089 - b .L3090 -.L3122: + beq .L3104 + cbnz r5, .L3069 + b .L3070 +.L3104: movs r5, #0 -.L3089: - ldr r3, .L3136+8 - ldr r2, [sp, #16] - ldrh r3, [r3, #1872] +.L3069: + ldr r3, .L3122+4 + ldr r2, [sp, #20] + ldrh r3, [r3, #2384] cmp r2, r3 - bne .L3091 -.L3090: + bne .L3071 +.L3070: bl FtlGcPageVarInit -.L3091: - ldr r6, .L3136+12 +.L3071: + ldr r6, .L3122+8 mov r3, #-1 - str r3, [sp, #12] + str r3, [sp, #16] movs r3, #0 str r3, [sp, #4] -.L3092: - ldrh r2, [r4] - movs r3, #0 - strb r3, [r4, #8] +.L3072: + ldrh r1, [r4] movw r3, #65535 - cmp r2, r3 - beq .L3093 -.L3094: - ldr r10, .L3136+8 -.L3118: - ldr r3, [r6, #1764] movs r2, #0 - ldrh r9, [r10, #1804] - add lr, r4, #14 - ldrh fp, [r10, #1882] - mov r8, #36 + strb r2, [r4, #8] + cmp r1, r3 + beq .L3073 +.L3074: + ldr r10, .L3122+4 +.L3101: + ldr r3, [r6, #3300] + movs r2, #0 + ldrh lr, [r10, #2316] + add ip, r4, #14 + ldr r8, [r6, #1144] + mov fp, #36 str r3, [sp, #8] mov r7, r2 - ldr r3, [r6, #628] - movw ip, #65535 - str r3, [sp, #20] - ldr r3, [r6, #632] + ldr r3, [r6, #1140] + movw r9, #65535 + str r3, [sp, #12] + ldrh r3, [r10, #2394] str r3, [sp, #24] - ldrh r3, [r10, #1884] + ldrh r3, [r10, #2396] str r3, [sp, #28] -.L3095: +.L3075: uxth r3, r2 + cmp r3, lr + bcs .L3120 + ldrh r3, [ip, #2]! cmp r3, r9 - bcs .L3134 - ldrh r3, [lr, #2]! - cmp r3, ip - beq .L3096 + beq .L3076 ldr r1, [sp, #8] orr r3, r5, r3, lsl #10 - ldr r0, [sp, #20] - mla r1, r8, r7, r1 + mla r1, fp, r7, r1 str r3, [r1, #4] - mov r3, fp + ldr r3, [sp, #24] muls r3, r7, r3 it mi addmi r3, r3, #3 bic r3, r3, #3 - add r3, r3, r0 - str r3, [r1, #8] + mov r0, r3 + ldr r3, [sp, #12] + add r0, r0, r3 ldr r3, [sp, #28] muls r3, r7, r3 add r7, r7, #1 it mi addmi r3, r3, #3 - ldr r0, [sp, #24] - bic r3, r3, #3 + str r0, [r1, #8] uxth r7, r7 - add r3, r3, r0 + bic r3, r3, #3 + add r3, r3, r8 str r3, [r1, #12] -.L3096: +.L3076: adds r2, r2, #1 - b .L3095 -.L3134: - ldr r0, [r6, #1764] + b .L3075 +.L3120: + ldr r0, [r6, #3300] mov r1, r7 movs r2, #0 - mov fp, #0 bl FlashReadPages -.L3100: - uxth r3, fp + movs r3, #0 +.L3119: + str r3, [sp, #8] + ldrh r3, [sp, #8] cmp r3, r7 - bcs .L3135 + bcs .L3121 + ldr r3, [sp, #8] mov r9, #36 - ldr r2, [r6, #1764] - ldr ip, .L3136+12 - mul r9, r9, fp - add r3, r2, r9 - ldr r1, [r3, #4] - ldr r8, [r2, r9] - ldr r3, [r3, #12] - str r1, [sp, #8] + mul r9, r9, r3 + ldr r3, .L3122+8 + ldr r8, [r3, #3300] + add fp, r8, r9 + ldr r3, [fp, #4] + ubfx r0, r3, #10, #16 + str r3, [sp, #12] + bl P2V_plane + ldr r8, [r8, r9] + ldr r3, [fp, #12] + ldr ip, .L3122+4 + ldr fp, .L3122+8 + mov r2, r0 cmp r8, #0 - bne .L3101 - ldrh r1, [r3] - movw r2, #65535 - cmp r1, r2 - bne .L3102 -.L3104: - ldr r3, .L3136+12 - movs r1, #0 - ldrh r2, [r4] - ldr r3, [r3, #-220] - strh r1, [r3, r2, lsl #1] @ movhi + bne .L3081 + ldrh r0, [r3] + movw r1, #65535 + cmp r0, r1 + bne .L3082 +.L3085: + ldrb r3, [ip, #140] @ zero_extendqisi2 + cbz r3, .L3116 + movs r3, #1 + str r3, [fp, #3464] + b .L3073 +.L3082: + ldr r0, [r3, #8] + ldr r1, [r10, #2444] + cmp r0, r1 + bls .L3117 + b .L3085 +.L3116: + ldrh r1, [r4] + ldr r2, [fp, #292] + strh r3, [r2, r1, lsl #1] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST - ldr r2, .L3136+12 movw r3, #65535 strh r3, [r4] @ movhi - strh r3, [r2, #40] @ movhi - b .L3133 -.L3102: - ldr r0, [r3, #8] - ldr r2, [r10, #1932] - cmp r0, r2 - bhi .L3104 + strh r3, [fp, #552] @ movhi + b .L3118 +.L3117: ldrb r2, [r10] @ zero_extendqisi2 cmp r2, #0 - beq .L3106 - add r1, sp, #36 + beq .L3089 + add r1, sp, #32 mov r2, r8 - str r3, [sp, #20] + str r3, [sp, #24] bl log2phys - ldr r3, [sp, #20] - ldr r2, [sp, #36] + ldr r3, [sp, #24] + ldr r2, [sp, #32] ldr r1, [r3, #12] cmp r2, r1 - bne .L3106 + bne .L3089 adds r1, r2, #1 - beq .L3106 - str r2, [sp, #44] + beq .L3089 + str r2, [sp, #40] movs r1, #1 - ldr r2, [r6, #1796] - add r0, sp, #40 + ldr r2, [r6, #3332] + add r0, sp, #36 + str r2, [sp, #44] + ldr r2, [r6, #3340] str r2, [sp, #48] - ldr r2, [r6, #1804] - str r2, [sp, #52] mov r2, r8 bl FlashReadPages - ldrh r2, [r10, #1878] - ldr r1, [r6, #1764] + ldrh r2, [r10, #2390] + ldr r1, [r6, #3300] lsl lr, r2, #7 add r9, r9, r1 - ldr r0, [sp, #48] - ldr r3, [sp, #20] -.L3108: + ldr r0, [sp, #44] + ldr r3, [sp, #24] +.L3091: cmp r8, lr - beq .L3106 + beq .L3089 ldr r1, [r9, #8] ldr r2, [r0, r8, lsl #2] ldr r1, [r1, r8, lsl #2] cmp r1, r2 - beq .L3109 + beq .L3092 ldrh r1, [r4] - ldr r2, [sp, #44] - ldr r0, .L3136+16 + ldr r2, [sp, #40] + ldr r0, .L3122+12 bl printk - ldr r3, [r6, #-220] + ldr r3, [r6, #292] ldrh r2, [r4] movs r1, #0 strh r1, [r3, r2, lsl #1] @ movhi @@ -19241,112 +19042,104 @@ FtlGcScanTempBlk: bl INSERT_FREE_LIST movw r3, #65535 strh r3, [r4] @ movhi - strh r3, [r6, #40] @ movhi - b .L3133 -.L3109: + strh r3, [r6, #552] @ movhi + b .L3118 +.L3092: add r8, r8, #1 - b .L3108 -.L3106: + b .L3091 +.L3089: ldr r0, [r3, #12] - add fp, fp, #1 - ldr r1, [sp, #8] ldr r2, [r3, #8] + ldr r1, [sp, #12] bl FtlGcUpdatePage - b .L3100 -.L3101: - ldrh r1, [r4] - ldr r2, [sp, #8] - ldr r0, .L3136+20 - str ip, [sp, #20] - bl printk - ldr r3, .L3136+8 - ldrh r2, [r4] - ldr r1, [r3, #1796] - ldr ip, [sp, #20] - cbnz r1, .L3112 - ldrb r1, [r3, #140] @ zero_extendqisi2 - cbz r1, .L3113 -.L3112: - ldr r3, [r3, #4060] - ldrh r3, [r3, r2, lsl #1] - cmp r3, #159 - bls .L3114 -.L3113: - ldr r3, [ip, #1764] - ldr r3, [r3, r9] + ldr r3, [sp, #8] adds r3, r3, #1 - bne .L3115 -.L3114: - ldr r3, [ip, #1764] - add r9, r9, r3 - ldr r3, [r9, #4] - str r3, [sp, #12] -.L3115: - ldr r3, .L3136+12 + b .L3119 +.L3081: + ldr r2, [sp, #12] + ldr r0, .L3122+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] + ldrh r2, [r2, r3, lsl #1] + cmp r2, #159 + bls .L3097 +.L3096: + ldr r2, [fp, #3300] + ldr r2, [r2, r9] + adds r2, r2, #1 + bne .L3098 +.L3097: + ldr r2, [fp, #3300] + add r9, r9, r2 + ldr r2, [r9, #4] + str r2, [sp, #16] +.L3098: + ldr r2, .L3122+8 movs r1, #0 - ldr r3, [r3, #-220] - strh r1, [r3, r2, lsl #1] @ movhi + ldr r2, [r2, #292] + strh r1, [r2, r3, lsl #1] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST movw r3, #65535 strh r3, [r4] @ movhi -.L3133: +.L3118: bl FtlGcPageVarInit movs r5, #0 - b .L3092 -.L3135: + b .L3072 +.L3121: ldr r3, [sp, #4] adds r5, r5, #1 - ldr r2, [sp, #16] + ldr r2, [sp, #20] adds r3, r3, #1 uxth r5, r5 cmp r3, r2 str r3, [sp, #4] - bcs .L3117 -.L3119: - ldrh r3, [r10, #1872] + bcs .L3100 +.L3102: + ldrh r3, [r10, #2384] cmp r3, r5 - bhi .L3118 - b .L3093 -.L3117: - ldr r2, .L3136+4 + bhi .L3101 + movs r2, #0 + b .L3073 +.L3100: + ldr r2, .L3122 movw r1, #65535 - ldrh r3, [r2, #3288] + ldrh r3, [r2, #3352] cmp r3, r1 - beq .L3119 + beq .L3102 ldr r1, [sp, #4] add r3, r3, r1 - strh r3, [r2, #3288] @ movhi - ldrh r3, [r10, #1872] + strh r3, [r2, #3352] @ movhi + ldrh r3, [r10, #2384] cmp r3, r5 - bls .L3119 - b .L3120 -.L3093: - ldr r3, .L3136+4 - movw r2, #65535 + bls .L3102 + b .L3103 +.L3073: + ldr r3, .L3122 + movw r1, #65535 strh r5, [r4, #2] @ movhi mov r0, r4 - mov r1, r5 - strh r2, [r3, #3288] @ movhi - movs r2, #0 strb r2, [r4, #6] + strh r1, [r3, #3352] @ movhi + mov r1, r5 bl ftl_sb_update_avl_pages -.L3120: - ldr r3, .L3136 - ldr r2, [sp, #76] - ldr r0, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L3121 - bl __stack_chk_fail -.L3121: - add sp, sp, #84 +.L3103: + ldr r0, [sp, #16] + add sp, sp, #76 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3137: +.L3123: .align 2 -.L3136: - .word __stack_chk_guard +.L3122: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -19361,123 +19154,113 @@ FtlGcScanTempBlk: .type FtlReadRefresh, %function FtlReadRefresh: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ args = 0, pretend = 0, frame = 40 @ 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 #52 - sub sp, sp, #52 - ldr r7, .L3155 - ldr r5, .L3155+4 - ldr r8, .L3155+8 - ldr r3, [r7] - ldr fp, [r5, #172] + push {r4, r5, r6, r7, r8, r9, lr} + .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] mov r6, r5 - str r3, [sp, #44] - cmp fp, #0 - beq .L3139 - ldr r2, [r5, #176] - ldr r3, [r8, #1932] + cmp r9, #0 + beq .L3125 + ldr r2, [r5, #688] + ldr r3, [r4, #2444] cmp r2, r3 - bcs .L3140 - mov r4, #2048 -.L3145: - ldr r0, [r6, #176] - ldr r3, [r8, #1932] + bcs .L3126 + mov r5, #2048 + mov r7, r6 +.L3131: + ldr r0, [r6, #688] + ldr r3, [r4, #2444] cmp r0, r3 - bcs .L3144 - add r1, sp, #4 + bcs .L3130 + mov r1, sp movs r2, #0 bl log2phys - ldr r3, [r5, #176] + ldr r3, [r7, #688] adds r3, r3, #1 - str r3, [r5, #176] - ldr r2, [sp, #4] + str r3, [r7, #688] + ldr r2, [sp] adds r1, r2, #1 - beq .L3143 - add r0, sp, #48 - str r2, [sp, #12] + beq .L3129 + add r0, sp, #40 + str r2, [sp, #8] movs r1, #1 movs r2, #0 - str r2, [r0, #-40]! - str r3, [sp, #24] + str r2, [r0, #-36]! + str r3, [sp, #20] + str r2, [sp, #12] str r2, [sp, #16] - str r2, [sp, #20] bl FlashReadPages - ldr r3, [sp, #8] + ldr r3, [sp, #4] cmp r3, #256 - bne .L3144 - ldr r0, [sp, #4] + bne .L3130 + ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3144: +.L3130: mov r0, #-1 - b .L3147 -.L3143: - subs r4, r4, #1 - bne .L3145 - b .L3144 -.L3140: - ldr r3, [r5, #-40] + b .L3133 +.L3129: + subs r5, r5, #1 + bne .L3131 + b .L3130 +.L3126: + ldr r3, [r5, #472] movs r0, #0 - str r0, [r5, #172] - str r0, [r5, #176] - str r3, [r5, #168] - b .L3147 -.L3139: - ldr r10, [r5, #-40] + 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] + add r2, r8, #1048576 + ldr r3, [r4, #2444] movw r4, #10000 - ldr r1, [r5, #12] - ldr r9, [r5, #168] - add r2, r10, #1048576 cmp r1, r4 ite hi movhi r4, #31 movls r4, #63 - ldr r3, [r8, #1932] - cmp r9, r2 - add r8, r8, #4096 - bhi .L3149 + cmp r7, r2 + bhi .L3135 mov r0, #1000 lsrs r1, r1, #10 adds r1, r1, #1 muls r0, r3, r0 bl __aeabi_uidiv - add r0, r0, r9 - cmp r0, r10 - bcc .L3149 - ldrh r3, [r8] + add r0, r0, r7 + cmp r0, r8 + bcc .L3135 + ldrh r3, [r5, #264] ands r0, r4, r3 - bne .L3152 - ldr r2, [r5, #192] + bne .L3137 + ldr r2, [r5, #704] cmp r2, r3 - beq .L3147 -.L3149: - ldrh r3, [r8] + beq .L3133 +.L3135: + ldrh r3, [r6, #264] movs r0, #0 - str r10, [r6, #168] - str r0, [r6, #176] - str r3, [r6, #192] + str r8, [r6, #680] + str r0, [r6, #688] + str r3, [r6, #704] movs r3, #1 - str r3, [r6, #172] - b .L3147 -.L3152: - mov r0, fp -.L3147: - ldr r2, [sp, #44] - ldr r3, [r7] - cmp r2, r3 - beq .L3150 - bl __stack_chk_fail -.L3150: - add sp, sp, #52 + str r3, [r6, #684] + b .L3133 +.L3137: + mov r0, r9 +.L3133: + add sp, sp, #44 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3156: + pop {r4, r5, r6, r7, r8, r9, pc} +.L3141: .align 2 -.L3155: - .word __stack_chk_guard +.L3140: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -19489,215 +19272,203 @@ FtlReadRefresh: .type FtlGcFreeTempBlock, %function FtlGcFreeTempBlock: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, fp, lr} + push {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 r6, .L3196 - ldr r7, .L3196+4 - ldr r2, [r6, #4052] - ldr r3, [r7] - ldrh r1, [r6, #1872] - str r3, [sp, #12] + .pad #12 + ldr r5, .L3180 + ldr r6, .L3180+4 + ldr r2, [r5, #220] + mov r4, r5 + ldrh r1, [r6, #2384] cmp r2, #0 - bne .L3194 - ldr r4, .L3196+8 - movw lr, #65535 - ldrh r5, [r4, #-104] - cmp r5, lr - bne .L3160 -.L3169: - ldrh r2, [r4, #-104] + bne .L3178 + ldrh r5, [r5, #408] + movw r7, #65535 + cmp r5, r7 + bne .L3145 +.L3154: + ldrh r2, [r4, #408] movw r3, #65535 - mov r8, #0 - ldr r5, .L3196+8 + movs r7, #0 + ldr r5, .L3180 cmp r2, r3 - str r8, [r4, #1928] - beq .L3194 + str r7, [r4, #3464] + beq .L3178 bl FtlCacheWriteBack - ldrb r0, [r5, #-97] @ zero_extendqisi2 - ldrh r3, [r6, #1872] + ldrb r0, [r5, #415] @ zero_extendqisi2 + ldrh r3, [r6, #2384] mov r10, #12 - ldr r2, [r5, #-220] - ldrh r1, [r5, #-104] + ldr r2, [r5, #292] + ldrh r1, [r5, #408] smulbb r3, r0, r3 strh r3, [r2, r1, lsl #1] @ movhi - ldr r3, [r5, #-20] - ldrh r2, [r5, #656] + ldr r3, [r5, #492] + ldrh r2, [r5, #1168] add r3, r3, r2 - str r3, [r5, #-20] - b .L3170 -.L3160: - cbz r0, .L3163 - ldr r3, .L3196+12 - ldrh r0, [r3, #3288] - cmp r0, lr - beq .L3164 -.L3165: + str r3, [r5, #492] + b .L3155 +.L3145: + cbz r0, .L3148 + ldr r3, .L3180+8 + ldrh r0, [r3, #3352] + cmp r0, r7 + beq .L3149 +.L3150: movs r1, #2 - b .L3163 -.L3164: - strh r2, [r3, #3288] @ movhi - ldrh r3, [r4, #-204] + b .L3148 +.L3149: + strh r2, [r3, #3352] @ movhi + ldrh r3, [r4, #308] cmp r3, #17 - bhi .L3165 -.L3163: - ldr r0, .L3196+16 + bhi .L3150 +.L3148: + ldr r7, .L3180 + add r0, r7, #408 bl FtlGcScanTempBlk - str r0, [sp, #8] + str r0, [sp, #4] adds r0, r0, #1 - beq .L3166 - ldr r2, [r6, #4060] + beq .L3151 + ldr r2, [r7, #228] ldrh r3, [r2, r5, lsl #1] cmp r3, #4 - bls .L3167 + bls .L3152 subs r3, r3, #5 movs r0, #1 strh r3, [r2, r5, lsl #1] @ movhi bl FtlEctTblFlush -.L3167: - ldr r3, [r4, #1928] - ldr r2, .L3196+8 - cbnz r3, .L3168 - ldr r0, [sp, #8] - ldr r3, [r2, #188] +.L3152: + ldr r3, [r4, #3464] + ldr r2, .L3180 + cbnz r3, .L3153 + ldr r0, [sp, #4] + ldr r3, [r2, #700] ubfx r0, r0, #10, #16 adds r3, r3, #1 - str r3, [r2, #188] + str r3, [r2, #700] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3168: +.L3153: movs r3, #0 - str r3, [r4, #1928] - b .L3181 -.L3166: - ldr r3, .L3196+12 - ldrh r2, [r3, #3288] + str r3, [r4, #3464] + b .L3165 +.L3151: + ldr r3, .L3180+8 + ldrh r2, [r3, #3352] movw r3, #65535 cmp r2, r3 - bne .L3181 - b .L3169 -.L3173: - ldr r3, [fp, #4] + bne .L3165 + b .L3154 +.L3158: + ldr r3, [r9, #4] cmp r0, r3 - bne .L3192 -.L3172: - add r8, r8, #1 -.L3170: - ldrh r3, [r4, #656] - uxth r9, r8 - cmp r3, r9 - bls .L3195 - mul r9, r10, r9 - ldr r3, [r5, #652] - ldr r2, [r6, #1932] - add fp, r3, r9 - ldr r0, [fp, #8] - cmp r0, r2 - bcs .L3192 - add r1, sp, #8 + bne .L3176 +.L3157: + adds r7, r7, #1 +.L3155: + ldrh r3, [r4, #1168] + uxth r8, r7 + cmp r3, r8 + bls .L3179 + mul r8, r10, r8 + ldr fp, [r5, #1164] + ldr r3, [r6, #2444] + add r9, fp, r8 + ldr r0, [r9, #8] + cmp r0, r3 + bcs .L3176 + add r1, sp, #4 movs r2, #0 - str r3, [sp, #4] bl log2phys - ldr r3, [sp, #4] - ldr r0, [sp, #8] - ldr r3, [r3, r9] + ldr r3, [fp, r8] + ldr r0, [sp, #4] cmp r0, r3 - bne .L3173 + bne .L3158 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - add r1, fp, #4 + add r1, r9, #4 movs r2, #1 - mov r9, r0 - ldr r0, [fp, #8] + mov r8, r0 + ldr r0, [r9, #8] bl log2phys - mov r0, r9 - b .L3193 -.L3192: - ldrh r0, [r5, #-104] -.L3193: + mov r0, r8 + b .L3177 +.L3176: + ldrh r0, [r5, #408] +.L3177: bl decrement_vpc_count - b .L3172 -.L3195: + b .L3157 +.L3179: movw r0, #65535 bl decrement_vpc_count ldrb r3, [r6, #140] @ zero_extendqisi2 - cbz r3, .L3175 - ldr r3, .L3196+8 - ldr r0, .L3196+20 - ldrh r1, [r3, #-104] + cbz r3, .L3160 + ldr r3, .L3180 + ldr r0, .L3180+12 + ldrh r1, [r3, #408] bl printk -.L3175: - ldrh r0, [r4, #-104] - ldr r3, [r4, #-220] +.L3160: + ldrh r0, [r4, #408] + ldr r3, [r4, #292] ldrh r3, [r3, r0, lsl #1] - cbz r3, .L3176 + cbz r3, .L3161 bl INSERT_DATA_LIST - b .L3177 -.L3176: + b .L3162 +.L3161: bl INSERT_FREE_LIST -.L3177: - movw r9, #65535 +.L3162: + movw r8, #65535 movs r5, #0 - strh r9, [r4, #-104] @ movhi - strh r5, [r4, #656] @ movhi - strh r5, [r4, #648] @ movhi + strh r8, [r4, #408] @ movhi + strh r5, [r4, #1168] @ movhi + strh r5, [r4, #1160] @ movhi bl l2p_flush bl FtlVpcTblFlush - ldr r3, [r6, #1796] - ldr r8, .L3196+8 - strh r9, [r4, #40] @ movhi - cbz r3, .L3178 - ldr r3, [r8, #16] + ldr r3, [r6, #2308] + ldr r7, .L3180 + strh r8, [r4, #552] @ movhi + cbz r3, .L3163 + ldr r3, [r7, #528] cmp r3, #39 - bhi .L3178 - ldrh r3, [r8, #20] - ldrh r2, [r8, #-204] + bhi .L3163 + ldrh r3, [r7, #532] + ldrh r2, [r7, #308] cmp r2, r3 - bcs .L3194 + bcs .L3178 lsls r3, r3, #1 - strh r3, [r8, #604] @ movhi - b .L3194 -.L3178: - ldrh r3, [r4, #20] - ldrh r1, [r4, #-204] - ldr r2, .L3196+8 + strh r3, [r7, #1116] @ movhi + b .L3178 +.L3163: + ldrh r3, [r4, #532] + ldrh r1, [r4, #308] + ldr r2, .L3180 add r0, r3, r3, lsl #1 cmp r1, r0, asr #2 - ble .L3194 + ble .L3178 ldrb r0, [r6, #140] @ zero_extendqisi2 - cbz r0, .L3179 + cbz r0, .L3164 subs r3, r3, #2 - strh r3, [r2, #604] @ movhi -.L3194: + strh r3, [r2, #1116] @ movhi +.L3178: movs r0, #0 - b .L3159 -.L3179: + b .L3144 +.L3164: movs r3, #20 - strh r3, [r2, #604] @ movhi - b .L3159 -.L3181: + strh r3, [r2, #1116] @ movhi + b .L3144 +.L3165: movs r0, #1 -.L3159: - ldr r2, [sp, #12] - ldr r3, [r7] - cmp r2, r3 - beq .L3180 - bl __stack_chk_fail -.L3180: - add sp, sp, #20 +.L3144: + add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3197: +.L3181: .align 2 -.L3196: - .word .LANCHOR0 - .word __stack_chk_guard +.L3180: .word .LANCHOR2 + .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR2-104 .word .LC151 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock @@ -19712,26 +19483,26 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r5, .L3200 - ldr r4, .L3200+4 - ldrh r1, [r5, #1872] - sub r0, r4, #104 + ldr r5, .L3184 + ldr r4, .L3184+4 + ldrh r1, [r5, #2384] + add r0, r4, #408 bl FtlGcScanTempBlk - ldrh r2, [r4, #-102] - ldrh r3, [r5, #1872] + ldrh r2, [r4, #410] + ldrh r3, [r5, #2384] cmp r2, r3 - bcc .L3198 - addw r0, r4, #1868 + bcc .L3182 + addw r0, r4, #3404 bl FtlMapBlkWriteDumpData movs r0, #0 bl FtlGcFreeTempBlock movs r3, #0 - str r3, [r4, #1928] -.L3198: + str r3, [r4, #3464] +.L3182: pop {r3, r4, r5, pc} -.L3201: +.L3185: .align 2 -.L3200: +.L3184: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -19748,12 +19519,12 @@ FtlPowerLostRecovery: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L3203 - ldr r3, .L3203+4 - sub r6, r4, #200 - subs r4, r4, #152 + ldr r4, .L3187 + ldr r3, .L3187+4 + add r6, r4, #312 + add r4, r4, #360 mov r0, r6 - str r5, [r3, #3648] + str r5, [r3, #840] bl FtlRecoverySuperblock mov r0, r6 bl FtlSlcSuperblockCheck @@ -19766,9 +19537,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r5 pop {r4, r5, r6, pc} -.L3204: +.L3188: .align 2 -.L3203: +.L3187: .word .LANCHOR2 .word .LANCHOR5 .fnend @@ -19782,29 +19553,29 @@ FtlSysBlkInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} + push {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} movs r3, #0 - ldr r5, .L3222 - movw r6, #65535 - ldr r7, .L3222+4 - ldr r4, .L3222+8 - ldrh r0, [r5, #1808] - strh r3, [r7, #3646] @ movhi - strh r6, [r7, #3644] @ movhi + ldr r5, .L3206 + 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 bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh r3, [r4, #24] - cmp r3, r6 - bne .L3206 -.L3208: - mov r8, #-1 - b .L3207 -.L3206: + ldrh r3, [r4, #536] + cmp r3, r7 + bne .L3190 +.L3192: + mov r7, #-1 + b .L3191 +.L3190: bl FtlLoadSysInfo - mov r8, r0 + mov r7, r0 cmp r0, #0 - bne .L3208 + bne .L3192 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -19814,96 +19585,93 @@ FtlSysBlkInit: bl FtlPowerLostRecovery movs r0, #1 bl FtlUpdateVaildLpn - ldrh r1, [r5, #1910] - ldr r2, [r4, #-56] + ldrh r1, [r5, #2422] + ldr r2, [r4, #456] movs r0, #12 - mov r3, r8 -.L3209: + mov r3, r7 +.L3193: cmp r3, r1 - bge .L3214 - mla r6, r0, r3, r2 - ldr r6, [r6, #4] - cmp r6, #0 - bge .L3210 -.L3214: - ldr r6, .L3222+12 + bge .L3198 + mla lr, r0, r3, r2 + ldr lr, [lr, #4] + cmp lr, #0 + bge .L3194 +.L3198: + ldrh r2, [r4, #264] cmp r3, r1 - ldrh r2, [r6] add r2, r2, #1 - strh r2, [r6] @ movhi - bge .L3221 - b .L3211 -.L3210: + strh r2, [r4, #264] @ movhi + bge .L3205 + b .L3195 +.L3194: adds r3, r3, #1 - b .L3209 -.L3221: - ldrh r3, [r7, #3646] - cbz r3, .L3215 -.L3211: - ldrh r1, [r4, #-200] - ldr r2, [r4, #-220] - ldrh r0, [r4, #-196] + b .L3193 +.L3205: + ldrh r3, [r6, #838] + cbz r3, .L3199 +.L3195: + ldrh r1, [r4, #312] + ldr r2, [r4, #292] + ldrh r0, [r4, #316] ldrh r3, [r2, r1, lsl #1] subs r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi - ldr r1, [r4, #-220] - ldrh r3, [r5, #1872] - ldrh r0, [r4, #-152] - ldrh r7, [r4, #-148] - strh r3, [r4, #-198] @ movhi + ldr r1, [r4, #292] + ldrh r3, [r5, #2384] + ldrh r0, [r4, #360] + ldrh r6, [r4, #364] + strh r3, [r4, #314] @ movhi movs r3, #0 - strb r3, [r4, #-194] - strh r3, [r4, #-196] @ movhi + strb r3, [r4, #318] + strh r3, [r4, #316] @ movhi ldrh r2, [r1, r0, lsl #1] - subs r2, r2, r7 + subs r2, r2, r6 strh r2, [r1, r0, lsl #1] @ movhi - ldrh r2, [r5, #1872] - strb r3, [r4, #-146] - strh r3, [r4, #-148] @ movhi - strh r2, [r4, #-150] @ movhi - movw r2, #4098 - ldrh r3, [r5, r2] + ldrh r2, [r5, #2384] + strb r3, [r4, #366] + strh r3, [r4, #364] @ movhi + ldrh r3, [r4, #266] + strh r2, [r4, #362] @ movhi adds r3, r3, #1 - strh r3, [r5, r2] @ movhi + strh r3, [r4, #266] @ movhi bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3215: - ldrh r0, [r4, #-200] +.L3199: + ldrh r0, [r4, #312] movw r3, #65535 - ldr r7, .L3222+8 + ldr r6, .L3206+8 cmp r0, r3 - beq .L3216 - ldrh r3, [r7, #-196] - cbnz r3, .L3216 - ldrh r3, [r7, #-148] - cbnz r3, .L3216 + beq .L3200 + ldrh r3, [r6, #316] + cbnz r3, .L3200 + ldrh r3, [r6, #364] + cbnz r3, .L3200 bl FtlGcRefreshOpenBlock - ldrh r0, [r7, #-152] + ldrh r0, [r6, #360] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush - sub r0, r7, #200 + add r0, r6, #312 bl allocate_new_data_superblock - sub r0, r7, #152 + add r0, r6, #360 bl allocate_new_data_superblock -.L3216: +.L3200: ldrb r3, [r5] @ zero_extendqisi2 - cbnz r3, .L3217 - ldrh r3, [r6] + cbnz r3, .L3201 + ldrh r3, [r4, #264] lsls r3, r3, #27 - bne .L3207 -.L3217: + bne .L3191 +.L3201: bl FtlVpcCheckAndModify +.L3191: + mov r0, r7 + pop {r3, r4, r5, r6, r7, pc} .L3207: - mov r0, r8 - pop {r4, r5, r6, r7, r8, pc} -.L3223: .align 2 -.L3222: +.L3206: .word .LANCHOR0 .word .LANCHOR5 .word .LANCHOR2 - .word .LANCHOR0+4096 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit .align 1 @@ -19917,53 +19685,53 @@ FtlLowFormat: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldr r5, .L3258 - ldr r6, [r5, #4052] + ldr r4, .L3242 + ldr r6, [r4, #220] cmp r6, #0 - bne .L3226 - ldr r4, .L3258+4 + bne .L3210 + ldr r5, .L3242+4 mov r1, r6 - ldrh r2, [r5, #1908] - ldr r0, [r4, #1852] + ldr r0, [r4, #3388] + ldrh r2, [r5, #2420] lsls r2, r2, #2 bl ftl_memset - ldrh r2, [r5, #1908] + ldrh r2, [r5, #2420] mov r1, r6 - ldr r0, [r4, #1848] + ldr r0, [r4, #3384] lsls r2, r2, #2 bl ftl_memset - ldrh r0, [r5, #1808] - str r6, [r4, #-8] - str r6, [r4, #-4] + ldrh r0, [r5, #2320] + str r6, [r4, #504] + str r6, [r4, #508] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L3227 + cbz r0, .L3211 bl FtlMakeBbt -.L3227: - ldr r0, .L3258+8 +.L3211: + ldr r0, .L3242+8 movs r2, #0 -.L3228: - ldrh r1, [r5, #1878] +.L3212: + ldrh r1, [r5, #2390] uxth r3, r2 adds r2, r2, #1 cmp r3, r1, lsl #7 - bge .L3255 - ldr r6, [r4, #1792] + bge .L3239 + ldr r6, [r4, #3328] mvns r1, r3 orr r1, r3, r1, lsl #16 str r1, [r6, r3, lsl #2] - ldr r1, [r4, #1796] + ldr r1, [r4, #3332] str r0, [r1, r3, lsl #2] - b .L3228 -.L3255: - ldr r3, .L3258 + b .L3212 +.L3239: + ldr r3, .L3242+4 movs r6, #0 - ldrh r7, [r3, #1812] -.L3230: - ldrh r3, [r5, #1814] - ldr r8, .L3258 + ldrh r7, [r3, #2324] +.L3214: + ldrh r3, [r5, #2326] + ldr r8, .L3242+4 cmp r3, r7 - bls .L3256 + bls .L3240 mov r0, r7 movs r1, #1 bl FtlLowFormatEraseBlock @@ -19971,225 +19739,227 @@ FtlLowFormat: uxth r7, r7 add r0, r0, r6 uxth r6, r0 - b .L3230 -.L3256: - ldrh r1, [r8, #1804] + b .L3214 +.L3240: + ldrh r1, [r8, #2316] subs r3, r6, #3 cmp r3, r1, lsl #1 - bge .L3232 -.L3236: + bge .L3216 +.L3220: movs r6, #0 mov r7, r6 - b .L3233 -.L3232: + b .L3217 +.L3216: mov r0, r6 bl __aeabi_uidiv - ldr r3, [r8, #1904] + ldr r3, [r8, #2416] add r0, r0, r3 uxth r0, r0 bl FtlSysBlkNumInit - ldrh r0, [r8, #1808] + ldrh r0, [r8, #2320] bl FtlFreeSysBlkQueueInit - ldrh r6, [r8, #1812] -.L3234: - ldrh r3, [r5, #1814] + ldrh r6, [r8, #2324] +.L3218: + ldrh r3, [r5, #2326] cmp r3, r6 - bls .L3236 + bls .L3220 mov r0, r6 adds r6, r6, #1 movs r1, #1 bl FtlLowFormatEraseBlock uxth r6, r6 - b .L3234 -.L3233: - ldrh r3, [r5, #1812] + b .L3218 +.L3217: + ldrh r3, [r5, #2324] uxth r0, r6 - ldr r10, .L3258 + ldr r10, .L3242+4 adds r6, r6, #1 cmp r3, r0 - bls .L3257 + bls .L3241 movs r1, #0 bl FtlLowFormatEraseBlock add r0, r0, r7 uxth r7, r0 - b .L3233 -.L3257: - ldrh r3, [r10, #1814] - ldrh r6, [r10, #1804] - ldr fp, [r10, #1816] - str r3, [r4, #1752] + 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 bl __aeabi_uidiv ubfx r8, r0, #5, #16 mov r9, r0 add r3, r8, #36 - strh r3, [r4, #20] @ movhi + strh r3, [r4, #532] @ movhi movs r3, #24 - str r0, [r10, #1932] + str r0, [r10, #2444] muls r3, r6, r3 cmp r7, r3 - ble .L3238 + ble .L3222 rsb r0, r7, fp mov r1, r6 bl __aeabi_uidiv - ldr r3, .L3258+4 - str r0, [r10, #1932] + ldr r3, .L3242 + str r0, [r10, #2444] lsrs r0, r0, #5 adds r0, r0, #24 - strh r0, [r3, #20] @ movhi -.L3238: - ldr r3, [r5, #1796] + strh r0, [r3, #532] @ movhi +.L3222: + ldr r3, [r5, #2308] cmp r3, #1 - bne .L3239 + bne .L3223 mov r0, r7 mov r1, r6 bl __aeabi_uidiv - ldrh r10, [r4, #20] + ldrh r10, [r4, #532] uxtah r0, r10, r0 add r10, r10, r0, asr #2 - strh r10, [r4, #20] @ movhi -.L3239: + strh r10, [r4, #532] @ movhi +.L3223: ldrb r3, [r5, #140] @ zero_extendqisi2 - cbz r3, .L3240 + cbz r3, .L3224 mov r0, r7 mov r1, r6 bl __aeabi_uidiv - ldrh r10, [r4, #20] + ldrh r10, [r4, #532] uxtah r0, r10, r0 add r10, r10, r0, asr #2 - strh r10, [r4, #20] @ movhi -.L3240: - ldrh r3, [r5, #1866] - cbz r3, .L3242 - ldrh r2, [r4, #20] + strh r10, [r4, #532] @ movhi +.L3224: + ldrh r3, [r5, #2378] + cbz r3, .L3226 + ldrh r2, [r4, #532] add r2, r2, r3, lsr #1 - strh r2, [r4, #20] @ movhi + strh r2, [r4, #532] @ movhi mul r2, r6, r3 cmp r2, r7 itttt gt addgt r3, r3, #32 - ldrgt r2, .L3258 + ldrgt r2, .L3242+4 addgt r3, r3, r8 - strgt r9, [r2, #1932] + strgt r9, [r2, #2444] itt gt - ldrgt r2, .L3258+4 - strhgt r3, [r2, #20] @ movhi -.L3242: - ldrh r2, [r4, #20] - ldr r3, [r5, #1932] - ldr r7, .L3258+4 + ldrgt r2, .L3242 + strhgt r3, [r2, #532] @ movhi +.L3226: + ldrh r2, [r4, #532] + ldr r3, [r5, #2444] + ldr r7, .L3242+12 subs r3, r3, r2 + ldr r8, .L3242 muls r6, r3, r6 - ldrh r3, [r5, #1872] - str r6, [r4, #4088] + ldrh r3, [r5, #2384] + str r6, [r7, #1280] muls r6, r3, r6 - ldrh r3, [r5, #1878] - str r6, [r5, #1932] + ldrh r3, [r5, #2390] + str r6, [r5, #2444] muls r6, r3, r6 - str r6, [r5, #1912] + str r6, [r5, #2424] bl FtlBbmTblFlush - ldrh r2, [r5, #1814] + ldrh r2, [r5, #2326] movs r1, #0 - ldr r0, [r4, #-220] + ldr r0, [r4, #292] movw r6, #65535 lsls r2, r2, #1 bl ftl_memset - ldrh r2, [r5, #1812] - ldr r0, [r4, #-44] + ldrh r2, [r5, #2324] + ldr r0, [r4, #468] movs r1, #255 movs r3, #0 - strh r6, [r4, #40] @ movhi + strh r6, [r4, #552] @ movhi lsrs r2, r2, #3 - str r3, [r4, #-48] - strh r3, [r4, #42] @ movhi - strb r3, [r4, #46] - strb r3, [r4, #48] - strh r3, [r4, #-198] @ movhi - strb r3, [r4, #-194] - strh r3, [r4, #-200] @ movhi + 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, #-192] + strb r3, [r4, #320] bl ftl_memset -.L3244: - ldr r5, .L3258+4 - sub r0, r5, #200 +.L3228: + ldr r5, .L3242 + add r0, r5, #312 bl make_superblock - ldrb r3, [r4, #-193] @ zero_extendqisi2 - ldrh r2, [r4, #-200] - cbnz r3, .L3245 - ldr r3, [r7, #-220] + ldrb r3, [r4, #319] @ zero_extendqisi2 + ldrh r2, [r4, #312] + cbnz r3, .L3229 + ldr r3, [r8, #292] strh r6, [r3, r2, lsl #1] @ movhi - ldrh r3, [r7, #-200] + ldrh r3, [r8, #312] adds r3, r3, #1 - strh r3, [r7, #-200] @ movhi - b .L3244 -.L3245: - ldr r3, [r5, #-8] - movw r7, #65535 - ldrh r1, [r5, #-196] - str r3, [r5, #-188] + strh r3, [r8, #312] @ movhi + b .L3228 +.L3229: + ldr r3, [r5, #504] + movw r8, #65535 + ldrh r1, [r5, #316] + str r3, [r5, #324] adds r3, r3, #1 - str r3, [r5, #-8] - ldr r3, [r5, #-220] + str r3, [r5, #504] + ldr r3, [r5, #292] strh r1, [r3, r2, lsl #1] @ movhi movs r3, #0 - strh r3, [r5, #-150] @ movhi - strb r3, [r5, #-146] - ldrh r3, [r5, #-200] + strh r3, [r5, #362] @ movhi + strb r3, [r5, #366] + ldrh r3, [r5, #312] adds r3, r3, #1 - strh r3, [r5, #-152] @ movhi + strh r3, [r5, #360] @ movhi movs r3, #1 - strb r3, [r5, #-144] -.L3246: - ldr r6, .L3258+4 - sub r0, r6, #152 + strb r3, [r5, #368] +.L3230: + ldr r6, .L3242 + add r0, r6, #360 bl make_superblock - ldrb r3, [r4, #-145] @ zero_extendqisi2 - ldrh r2, [r4, #-152] - cbnz r3, .L3247 - ldr r3, [r5, #-220] - strh r7, [r3, r2, lsl #1] @ movhi - ldrh r3, [r5, #-152] + 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] adds r3, r3, #1 - strh r3, [r5, #-152] @ movhi - b .L3246 -.L3247: - ldr r3, [r6, #-8] + strh r3, [r5, #360] @ movhi + b .L3230 +.L3231: + ldr r3, [r6, #504] movw r4, #65535 - ldrh r1, [r6, #-148] - str r3, [r6, #-140] + ldrh r1, [r6, #364] + str r3, [r6, #372] adds r3, r3, #1 - str r3, [r6, #-8] - ldr r3, [r6, #-220] + str r3, [r6, #504] + ldr r3, [r6, #292] strh r1, [r3, r2, lsl #1] @ movhi - strh r4, [r6, #-104] @ movhi + strh r4, [r6, #408] @ movhi bl FtlFreeSysBlkQueueOut movs r3, #0 - strh r3, [r6, #26] @ movhi - ldr r3, [r6, #4088] - strh r4, [r6, #28] @ movhi - strh r3, [r6, #30] @ movhi - ldr r3, [r6, #-8] - str r3, [r6, #32] + 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] adds r3, r3, #1 - str r3, [r6, #-8] - strh r0, [r6, #24] @ movhi + str r3, [r6, #504] + strh r0, [r6, #536] @ movhi bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz r0, .L3226 - ldr r3, .L3258+12 + cbnz r0, .L3210 + ldr r3, .L3242+16 movs r2, #1 str r2, [r3, #504] -.L3226: +.L3210: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3259: +.L3243: .align 2 -.L3258: - .word .LANCHOR0 +.L3242: .word .LANCHOR2 + .word .LANCHOR0 .word 168778952 + .word .LANCHOR4 .word .LANCHOR1 .fnend .size FtlLowFormat, .-FtlLowFormat @@ -20200,121 +19970,109 @@ FtlLowFormat: .type FtlReInitForSDUpdata, %function FtlReInitForSDUpdata: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, lr} - .save {r4, r5, r6, r7, lr} - .pad #28 - sub sp, sp, #28 - ldr r5, .L3289 - ldr r0, .L3289+4 - ldr r3, [r5] - mov r4, r0 - str r3, [sp, #20] - ldrb r3, [r0, #140] @ zero_extendqisi2 - cbz r3, .L3261 -.L3263: + 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: movs r0, #0 - b .L3262 -.L3261: - ldr r6, .L3289+8 - ldr r0, [r6, #3984] + b .L3246 +.L3245: + ldr r5, .L3272+4 + ldr r0, [r5, #1176] bl FlashInit cmp r0, #0 - bne .L3263 + bne .L3247 bl FlashLoadFactorBbt - cbz r0, .L3264 + cbz r0, .L3248 bl FlashMakeFactorBbt -.L3264: - ldr r0, [r6, #4016] +.L3248: + ldr r0, [r5, #1208] bl FlashReadIdbDataRaw - cbz r0, .L3265 - movs r2, #16 - add r0, sp, #4 + cbz r0, .L3249 movs r1, #0 - movs r7, #1 + movs r2, #16 + mov r0, sp + movs r6, #1 bl FlashReadFacBbtData movs r3, #0 - mov r0, r3 - ldr r2, [sp, #4] -.L3266: - lsl r6, r7, r0 - adds r1, r3, #1 - tst r6, r2 - add r0, r0, #1 + mov r2, r3 + ldr r1, [sp] +.L3250: + lsl r5, r6, r2 + adds r0, r3, #1 + tst r5, r1 + add r2, r2, #1 it ne - movne r3, r1 - cmp r0, #16 - bne .L3266 + movne r3, r0 + cmp r2, #16 + bne .L3250 cmp r3, #6 - bls .L3285 - movs r0, #0 - movs r7, #1 -.L3269: - lsl r6, r7, r0 - adds r1, r3, #1 - tst r6, r2 - add r0, r0, #1 + bls .L3268 + movs r2, #0 + movs r6, #1 +.L3253: + lsl r5, r6, r2 + adds r0, r3, #1 + tst r5, r1 + add r2, r2, #1 it ne - movne r3, r1 - cmp r0, #24 - bne .L3269 + movne r3, r0 + cmp r2, #24 + bne .L3253 cmp r3, #17 - bhi .L3270 -.L3285: - strb r0, [r4, #1] - b .L3268 -.L3270: + bhi .L3254 +.L3268: + strb r2, [r4, #1] + b .L3252 +.L3254: movs r3, #36 strb r3, [r4, #1] -.L3268: +.L3252: ldrb r3, [r4, #1] @ zero_extendqisi2 strh r3, [r4, #138] @ movhi -.L3265: - ldr r1, .L3289+12 - ldr r0, .L3289+16 +.L3249: + ldr r1, .L3272+8 + ldr r0, .L3272+12 bl printk - ldr r0, .L3289+20 + ldr r0, .L3272+16 bl FtlConstantsInit bl FtlVariablesInit - ldrh r0, [r4, #1808] + ldrh r0, [r4, #2320] bl FtlFreeSysBlkQueueInit movs r4, #1 -.L3271: +.L3255: bl FtlLoadBbt - cbz r0, .L3272 -.L3287: + cbz r0, .L3256 +.L3270: bl FtlLowFormat cmp r4, #3 - bhi .L3288 + bhi .L3271 adds r4, r4, #1 - b .L3271 -.L3288: + b .L3255 +.L3271: mov r0, #-1 - b .L3262 -.L3272: + b .L3246 +.L3256: bl FtlSysBlkInit cmp r0, #0 - bne .L3287 - ldr r3, .L3289+24 + bne .L3270 + ldr r3, .L3272+20 movs r2, #1 str r2, [r3, #504] -.L3262: - ldr r2, [sp, #20] - ldr r3, [r5] - cmp r2, r3 - beq .L3276 - bl __stack_chk_fail -.L3276: - add sp, sp, #28 +.L3246: + add sp, sp, #16 @ sp needed - pop {r4, r5, r6, r7, pc} -.L3290: + pop {r4, r5, r6, pc} +.L3273: .align 2 -.L3289: - .word __stack_chk_guard +.L3272: .word .LANCHOR0 - .word .LANCHOR2 + .word .LANCHOR4 .word .LC77 .word .LC76 .word .LANCHOR0+112 @@ -20330,87 +20088,87 @@ Ftl_gc_temp_data_write_back: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3307 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r2, [r3, #4052] - cbz r2, .L3292 -.L3295: + ldr r5, .L3290 + ldr r3, [r5, #220] + cbz r3, .L3275 +.L3278: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L3292: +.L3275: + ldr r3, .L3290+4 ldrb r3, [r3, #140] @ zero_extendqisi2 - ldr r5, .L3307+4 - cbz r3, .L3294 - ldr r3, [r5, #620] + cbz r3, .L3277 + ldr r3, [r5, #1132] lsls r3, r3, #31 - bpl .L3294 - ldrh r3, [r5, #-100] + bpl .L3277 + ldrh r3, [r5, #412] cmp r3, #0 - bne .L3295 -.L3294: + bne .L3278 +.L3277: movs r2, #0 - ldr r0, [r5, #1768] - ldr r1, [r5, #620] + ldr r0, [r5, #3304] + ldr r1, [r5, #1132] movs r6, #0 mov r3, r2 - ldr r7, .L3307+4 + ldr r7, .L3290 bl FlashProgPages mov r8, #36 -.L3296: - ldr r1, [r5, #620] +.L3279: + ldr r1, [r5, #1132] uxth r3, r6 - ldr r4, .L3307+4 + ldr r4, .L3290 cmp r3, r1 - bcs .L3306 + bcs .L3289 mul r3, r8, r3 - ldr r0, [r7, #1768] + ldr r0, [r7, #3304] adds r6, r6, #1 adds r1, r0, r3 ldr r0, [r0, r3] ldr r2, [r1, #12] cmp r0, #-1 - bne .L3297 - ldrh r1, [r4, #-104] + bne .L3280 + ldrh r1, [r4, #408] movs r5, #0 - ldr r2, [r4, #-220] + ldr r2, [r4, #292] strh r5, [r2, r1, lsl #1] @ movhi - ldr r2, [r4, #188] - strh r0, [r4, #-104] @ movhi + ldr r2, [r4, #700] + strh r0, [r4, #408] @ movhi adds r2, r2, #1 - str r2, [r4, #188] - ldr r2, [r4, #1768] + str r2, [r4, #700] + ldr r2, [r4, #3304] add r3, r3, r2 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3305 -.L3297: + b .L3288 +.L3280: ldr r0, [r2, #12] ldr r1, [r1, #4] ldr r2, [r2, #8] bl FtlGcUpdatePage - b .L3296 -.L3306: - ldr r0, [r4, #1768] + b .L3279 +.L3289: + ldr r0, [r4, #3304] bl FtlGcBufFree movs r3, #0 - str r3, [r4, #620] - ldrh r3, [r4, #-100] + str r3, [r4, #1132] + ldrh r3, [r4, #412] cmp r3, #0 - bne .L3295 + bne .L3278 movs r0, #1 bl FtlGcFreeTempBlock -.L3305: +.L3288: movs r0, #1 pop {r4, r5, r6, r7, r8, pc} -.L3308: +.L3291: .align 2 -.L3307: - .word .LANCHOR0 +.L3290: .word .LANCHOR2 + .word .LANCHOR0 .fnend .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 1 @@ -20425,35 +20183,35 @@ Ftl_get_new_temp_ppa: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movw r3, #65535 - ldr r4, .L3312 - ldrh r2, [r4, #-104] + ldr r4, .L3295 + ldrh r2, [r4, #408] cmp r2, r3 - beq .L3310 - ldrh r3, [r4, #-100] - cbnz r3, .L3311 -.L3310: + beq .L3293 + ldrh r3, [r4, #412] + cbnz r3, .L3294 +.L3293: bl FtlCacheWriteBack movs r0, #0 movs r5, #0 bl FtlGcFreeTempBlock - ldr r0, .L3312+4 - strb r5, [r4, #-96] + ldr r0, .L3295+4 + strb r5, [r4, #416] bl allocate_data_superblock - strh r5, [r4, #648] @ movhi - strh r5, [r4, #656] @ movhi + strh r5, [r4, #1160] @ movhi + strh r5, [r4, #1168] @ movhi bl l2p_flush mov r0, r5 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3311: - ldr r0, .L3312+4 +.L3294: + ldr r0, .L3295+4 pop {r3, r4, r5, lr} b get_new_active_ppa -.L3313: +.L3296: .align 2 -.L3312: +.L3295: .word .LANCHOR2 - .word .LANCHOR2-104 + .word .LANCHOR2+408 .fnend .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa .align 1 @@ -20463,555 +20221,554 @@ Ftl_get_new_temp_ppa: .type ftl_do_gc, %function ftl_do_gc: .fnstart - @ args = 0, pretend = 0, frame = 40 + @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L3470 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r0 - ldr r3, .L3489 - .pad #52 - sub sp, sp, #52 - ldr r6, .L3489+4 - mov r9, r1 - ldr r3, [r3] - ldr r0, [r6, #4052] - str r3, [sp, #44] - cmp r0, #0 - bne .L3415 - ldr r2, .L3489+8 - ldr r3, [r2, #504] - adds r3, r3, #1 - beq .L3315 - ldr r3, .L3489+12 - ldr r4, [r3, #1740] + ldr r0, [r3, #220] + .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 .L3315 - ldrh r1, [r3, #-212] + bne .L3457 + ldrh r1, [r3, #300] cmp r1, #47 - bls .L3418 - ldrh r1, [r2, #3288] + bls .L3400 + ldrh r1, [r2, #3352] movw r2, #65535 cmp r1, r2 - bne .L3316 -.L3319: - ldrh r4, [r7, #660] + bne .L3299 +.L3302: + ldrh r4, [r7, #1172] movw r1, #65535 - ldr r3, .L3489+12 + ldr r3, .L3470 cmp r4, r1 - bne .L3317 - b .L3318 -.L3316: - ldrh r3, [r3, #-104] + bne .L3300 + b .L3301 +.L3299: + ldrh r3, [r3, #408] cmp r3, r2 - beq .L3319 + beq .L3302 movs r0, #1 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L3319 + beq .L3302 movs r0, #1 - b .L3315 -.L3317: - ldrh r2, [r3, #658] + b .L3457 +.L3300: + ldrh r2, [r3, #1170] cmp r2, r1 - bne .L3318 - ldrh r0, [r3, #662] + bne .L3301 + ldrh r0, [r3, #1174] cmp r0, r2 - beq .L3318 - ldrh r1, [r3, #664] + beq .L3301 + ldrh r1, [r3, #1176] cmp r1, r2 itttt ne - strhne r4, [r3, #658] @ movhi - strhne r0, [r3, #660] @ movhi - strhne r1, [r3, #662] @ movhi - strhne r2, [r3, #664] @ movhi -.L3318: - ldr r4, [r7, #608] + 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] cmp r8, #1 add r4, r4, #1 add r4, r4, r8, lsl #7 - str r4, [r7, #608] - bne .L3330 - ldr r3, [r6, #1796] - cbnz r3, .L3321 - ldr r3, .L3489+4 + str r4, [r7, #1120] + bne .L3313 + ldr r3, .L3470+8 + ldr r2, [r3, #2308] + mov r10, r3 + cbnz r2, .L3304 ldrb r3, [r3, #140] @ zero_extendqisi2 cmp r3, #0 - beq .L3330 -.L3321: - ldr r3, [r7, #16] - ldr r5, .L3489+12 + beq .L3313 +.L3304: + ldr r3, [r7, #528] + ldr r5, .L3470 cmp r3, #39 - bhi .L3330 - ldr r10, .L3489+16 - ldrh r3, [r10, #3780] + bhi .L3313 + ldr r9, .L3470+12 + ldrh r3, [r9, #972] add r4, r4, r3 - str r4, [r5, #608] + str r4, [r5, #1120] bl FtlGcReFreshBadBlk - ldrh r3, [r5, #40] + ldrh r3, [r5, #552] movw r2, #65535 cmp r3, r2 - bne .L3330 - ldrh r2, [r5, #658] + bne .L3313 + ldrh r2, [r5, #1170] cmp r2, r3 - bne .L3330 - ldr r3, [r5, #608] + bne .L3313 + ldr r3, [r5, #1120] cmp r3, #1024 - bhi .L3322 - ldrh r3, [r5, #-204] + bhi .L3305 + ldrh r3, [r5, #308] cmp r3, #63 - bhi .L3330 -.L3322: - ldrh r3, [r7, #606] + bhi .L3313 +.L3305: + ldrh r3, [r7, #1118] movs r0, #0 - ldrh r4, [r7, #-204] + ldrh r4, [r7, #308] adds r3, r3, #64 - ldr r2, .L3489+16 + ldr r2, .L3470+12 cmp r4, r3 - strh r0, [r10, #3780] @ movhi - ldr r1, .L3489+12 - bgt .L3330 - ldr r3, [r1, #16] - str r0, [r1, #608] - cbnz r3, .L3323 + strh r0, [r9, #972] @ movhi + ldr r1, .L3470 + bgt .L3313 + ldr r3, [r1, #528] + str r0, [r1, #1120] + cbnz r3, .L3306 movs r3, #6 - b .L3476 -.L3323: + b .L3458 +.L3306: cmp r3, #5 - bhi .L3324 + bhi .L3307 movs r3, #18 -.L3476: - strh r3, [r2, #3780] @ movhi -.L3324: +.L3458: + strh r3, [r2, #972] @ movhi +.L3307: movs r0, #32 bl List_get_gc_head_node - movw r1, #65535 - uxth ip, r0 - cmp ip, r1 - beq .L3329 - ldrh r0, [r7, #612] - ldr r5, .L3489+12 + movw ip, #65535 + uxth r2, r0 + cmp r2, ip + beq .L3312 + ldrh r0, [r7, #1124] + ldr r5, .L3470 cmp r0, #0 - beq .L3326 - ldrh lr, [r6, #1874] - ldrh r3, [r6, #1804] - ldr r2, [r5, #-220] - mul r3, r3, lr - ldrh r4, [r2, ip, lsl #1] + beq .L3309 + ldrh r4, [r10, #2386] + ldrh r3, [r10, #2316] + ldr fp, [r5, #292] + muls r3, r4, r3 + ldrh r1, [fp, r2, lsl #1] adds r3, r3, #1 - cmp r4, r3 - bgt .L3329 - adds r3, r0, #1 - str r1, [sp, #24] + cmp r1, r3 + bgt .L3312 + adds r1, r0, #1 str ip, [sp, #20] - mov fp, #0 - uxth r3, r3 str r2, [sp, #16] - strh r3, [r5, #612] @ movhi - str r3, [sp, #12] - str fp, [r5, #616] + mov r10, #0 + uxth r1, r1 + str r10, [r5, #1128] + strh r1, [r5, #1124] @ movhi + str r1, [sp, #12] bl List_get_gc_head_node - ldr r1, [sp, #24] - uxth r4, r0 - ldr r3, [sp, #12] - cmp r4, r1 - ldr r2, [sp, #16] ldr ip, [sp, #20] - beq .L3329 - ldrh lr, [r2, r4, lsl #1] - mov r1, r3 - ldrh r2, [r2, ip, lsl #1] - ldr r0, .L3489+20 - mov r3, lr + uxth r4, r0 + ldr r1, [sp, #12] + cmp r4, ip + ldr r2, [sp, #16] + beq .L3312 + ldrh r2, [fp, r2, lsl #1] + ldrh r3, [fp, r4, lsl #1] + ldr r0, .L3470+16 str r2, [sp] mov r2, r4 bl printk - ldrh r3, [r5, #612] + ldrh r3, [r5, #1124] cmp r3, #40 - bls .L3327 - ldr r3, [r5, #-220] + bls .L3310 + ldr r3, [r5, #292] ldrh r3, [r3, r4, lsl #1] cmp r3, #32 it hi - strhhi fp, [r5, #612] @ movhi -.L3327: + strhhi r10, [r5, #1124] @ movhi +.L3310: movs r3, #6 - strh r3, [r10, #3780] @ movhi - b .L3346 -.L3326: + strh r3, [r9, #972] @ movhi + b .L3329 +.L3309: movs r3, #1 - strh r3, [r5, #612] @ movhi -.L3329: + strh r3, [r5, #1124] @ movhi +.L3312: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov r4, r0 - bne .L3346 + bne .L3329 movs r3, #0 - strh r3, [r10, #3780] @ movhi -.L3330: - ldrh r3, [r7, #40] + strh r3, [r9, #972] @ movhi +.L3313: + ldrh r3, [r7, #552] movw r4, #65535 - ldr r5, .L3489+12 + ldr r5, .L3470 cmp r3, r4 - bne .L3481 - ldrh r4, [r5, #-104] + bne .L3463 + ldrh r4, [r5, #408] cmp r4, r3 - bne .L3331 - ldrh fp, [r5, #658] - cmp fp, r4 - bne .L3332 - ldrh r3, [r5, #-204] - ldr r2, [r5, #608] + bne .L3314 + ldrh r10, [r5, #1170] + cmp r10, r4 + bne .L3315 + ldrh r3, [r5, #308] + ldr r2, [r5, #1120] cmp r3, #24 ite cc movcc r3, #5120 movcs r3, #1024 cmp r2, r3 - bls .L3334 - ldr r2, .L3489+16 + bls .L3317 + ldr r2, .L3470+12 movs r3, #0 - str r3, [r7, #608] - strh r3, [r2, #3780] @ movhi + str r3, [r7, #1120] + mov r9, r5 + strh r3, [r2, #972] @ movhi bl GetSwlReplaceBlock - cmp r0, fp + cmp r0, r10 mov r4, r0 - bne .L3335 - ldrh r2, [r5, #-204] - ldrh r3, [r5, #606] + bne .L3318 + ldrh r2, [r5, #308] + ldrh r3, [r5, #1118] cmp r2, r3 - bcs .L3336 + bcs .L3319 movs r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - bne .L3482 -.L3345: + bne .L3464 +.L3328: bl FtlGcReFreshBadBlk cmp r8, #0 - beq .L3483 -.L3346: - ldrh r2, [r7, #-104] + beq .L3465 +.L3329: + ldrh r2, [r7, #408] movw r3, #65535 cmp r2, r3 - bne .L3357 -.L3412: - ldrh r3, [r7, #658] + bne .L3340 +.L3395: + ldrh r3, [r7, #1170] movw r2, #65535 cmp r3, r2 - bne .L3357 + bne .L3340 cmp r4, r3 - bne .L3357 -.L3413: - ldrh r1, [r7, #40] + bne .L3340 +.L3396: + ldrh r1, [r7, #552] movw r3, #65535 - ldr r2, .L3489+12 + ldr r2, .L3470 cmp r1, r3 - beq .L3358 -.L3362: + beq .L3341 +.L3345: movw r4, #65535 - b .L3357 -.L3358: + b .L3340 +.L3341: movs r3, #0 - ldrh r1, [r2, #-204] - str r3, [r2, #616] - ldrh r3, [r2, #604] - ldr r4, .L3489+16 + ldrh r1, [r2, #308] + str r3, [r2, #1128] + ldrh r3, [r2, #1116] + ldr r4, .L3470+12 cmp r1, r3 - bls .L3359 - ldrh r3, [r4, #3780] - cbnz r3, .L3360 - ldr r3, [r6, #1932] - ldr r2, [r2, #-48] + bls .L3342 + ldrh r3, [r4, #972] + cbnz r3, .L3343 + ldr r3, .L3470+8 + ldr r2, [r2, #464] + ldr r3, [r3, #2444] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L3426 -.L3360: - ldrh r3, [r7, #20] + bcs .L3408 +.L3343: + ldrh r3, [r7, #532] add r3, r3, r3, lsl #1 ubfx r3, r3, #2, #16 - b .L3361 -.L3426: + b .L3344 +.L3408: movs r3, #18 -.L3361: - strh r3, [r7, #604] @ movhi +.L3344: + strh r3, [r7, #1116] @ movhi bl FtlReadRefresh movs r0, #0 bl List_get_gc_head_node - ldr r3, [r7, #-220] + ldr r3, [r7, #292] uxth r0, r0 ldrh r3, [r3, r0, lsl #1] cmp r3, #4 - bls .L3359 - ldrh r0, [r4, #3780] - b .L3315 -.L3359: - ldrh r0, [r4, #3780] + bls .L3342 + ldrh r0, [r4, #972] + b .L3457 +.L3342: + ldrh r0, [r4, #972] cmp r0, #0 - bne .L3362 - ldrh r4, [r7, #20] + bne .L3345 + ldrh r4, [r7, #532] add r3, r4, r4, lsl #1 asrs r3, r3, #2 - strh r3, [r7, #604] @ movhi + strh r3, [r7, #1116] @ movhi bl List_get_gc_head_node - ldr r3, [r7, #-220] - ldrh r1, [r6, #1874] + ldr r3, [r7, #292] uxth r0, r0 ldrh r2, [r3, r0, lsl #1] - ldrh r3, [r6, #1804] + ldr r3, .L3470+8 + ldrh r1, [r3, #2386] + ldrh r3, [r3, #2316] muls r3, r1, r3 add r3, r3, r3, lsr #31 cmp r2, r3, asr #1 - ble .L3363 - ldr r3, .L3489+12 + ble .L3346 + ldr r3, .L3470 subs r4, r4, #1 - ldrh r3, [r3, #-204] + ldrh r3, [r3, #308] cmp r3, r4 - blt .L3363 + blt .L3346 bl FtlReadRefresh - b .L3480 -.L3490: - .align 2 -.L3489: - .word __stack_chk_guard - .word .LANCHOR0 - .word .LANCHOR1 - .word .LANCHOR2 - .word .LANCHOR5 - .word .LC152 -.L3363: + b .L3462 +.L3346: cmp r2, #0 - bne .L3362 + bne .L3345 movw r0, #65535 bl decrement_vpc_count - ldrh r0, [r7, #-204] + ldrh r0, [r7, #308] adds r0, r0, #1 - b .L3315 -.L3357: - ldr r3, [r6, #1796] + b .L3457 +.L3471: + .align 2 +.L3470: + .word .LANCHOR2 + .word .LANCHOR1 + .word .LANCHOR0 + .word .LANCHOR5 + .word .LC152 +.L3340: + ldr r3, .L3472 + ldr r3, [r3, #2308] cmp r3, #0 ite eq moveq r5, #1 movne r5, #2 - b .L3356 -.L3483: + b .L3339 +.L3465: movw r3, #65535 cmp r4, r3 - bne .L3346 -.L3411: - ldrh r4, [r7, #-204] + bne .L3329 +.L3394: + ldrh r4, [r7, #308] cmp r4, #24 - bhi .L3422 + bhi .L3404 + ldr r3, .L3472 cmp r4, #16 - ldrh r5, [r6, #1872] - bls .L3348 + ldrh r5, [r3, #2384] + bls .L3331 lsrs r5, r5, #5 -.L3347: - ldrh r3, [r7, #604] - ldr r2, .L3491 +.L3330: + ldrh r3, [r7, #1116] + ldr r2, .L3472+4 cmp r3, r4 - bcc .L3484 -.L3351: - ldr r3, [r6, #1796] + bcc .L3466 +.L3334: + ldr r3, .L3472 + ldr r3, [r3, #2308] cmp r3, #0 - bne .L3485 -.L3425: + bne .L3467 +.L3407: movw r4, #65535 -.L3356: - ldrh r2, [r7, #40] +.L3339: + ldrh r2, [r7, #552] movw r1, #65535 - ldr r3, .L3491 + ldr r3, .L3472+4 cmp r2, r1 - bne .L3365 + bne .L3348 cmp r4, r2 - beq .L3366 - strh r4, [r3, #40] @ movhi - b .L3367 -.L3366: - ldrh r2, [r3, #658] + beq .L3349 + strh r4, [r3, #552] @ movhi + b .L3350 +.L3349: + ldrh r2, [r3, #1170] cmp r2, r4 - beq .L3367 - ldr r1, [r3, #-220] + beq .L3350 + ldr r1, [r3, #292] ldrh r2, [r1, r2, lsl #1] - cbnz r2, .L3368 - strh r4, [r3, #658] @ movhi -.L3368: - ldrh r3, [r7, #658] - strh r3, [r7, #40] @ movhi + cbnz r2, .L3351 + strh r4, [r3, #1170] @ movhi +.L3351: + ldrh r3, [r7, #1170] + strh r3, [r7, #552] @ movhi movw r3, #65535 - strh r3, [r7, #658] @ movhi -.L3367: - ldrh r0, [r7, #40] - movw r9, #65535 + strh r3, [r7, #1170] @ movhi +.L3350: + ldrh r0, [r7, #552] + movw r6, #65535 movs r3, #0 - strb r3, [r7, #48] - cmp r0, r9 - beq .L3365 + strb r3, [r7, #560] + cmp r0, r6 + beq .L3348 bl IsBlkInGcList - cbz r0, .L3370 - ldr r3, .L3491 - strh r9, [r3, #40] @ movhi -.L3370: - ldrb r3, [r6, #140] @ zero_extendqisi2 - cbz r3, .L3371 - ldrh r0, [r7, #40] + 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] bl ftl_get_blk_mode - strb r0, [r7, #48] -.L3371: - ldrh r2, [r7, #40] + strb r0, [r7, #560] +.L3354: + ldrh r2, [r7, #552] movw r3, #65535 - ldr r6, .L3491 + ldr r6, .L3472+4 cmp r2, r3 - beq .L3365 - add r0, r6, #40 + beq .L3348 + add r0, r6, #552 bl make_superblock - ldr r2, .L3491+4 + ldr r2, .L3472+8 movs r3, #0 - ldrh r1, [r6, #40] - strh r3, [r6, #42] @ movhi - strb r3, [r6, #46] - strh r3, [r2, #3782] @ movhi - ldr r3, [r6, #-220] + ldrh r1, [r6, #552] + strh r3, [r6, #554] @ movhi + strb r3, [r6, #558] + strh r3, [r2, #974] @ movhi + ldr r3, [r6, #292] ldrh r3, [r3, r1, lsl #1] - strh r3, [r2, #3784] @ movhi -.L3365: - ldrh r3, [r7, #40] - ldrh r1, [r7, #-200] - ldr r2, .L3491 + strh r3, [r2, #976] @ movhi +.L3348: + ldrh r3, [r7, #552] + ldrh r1, [r7, #312] + ldr r2, .L3472+4 cmp r1, r3 - beq .L3372 - ldrh r1, [r2, #-152] + beq .L3355 + ldrh r1, [r2, #360] cmp r1, r3 - beq .L3372 - ldrh r2, [r2, #-104] + beq .L3355 + ldrh r2, [r2, #408] cmp r2, r3 - bne .L3373 -.L3372: + bne .L3356 +.L3355: movw r3, #65535 - strh r3, [r7, #40] @ movhi -.L3373: - ldr r7, .L3491+8 -.L3406: - ldr r6, .L3491 + strh r3, [r7, #552] @ movhi +.L3356: + ldr r7, .L3472 +.L3389: + ldr r6, .L3472+4 movw r3, #65535 - ldrh r2, [r6, #40] + ldrh r2, [r6, #552] mov fp, r6 cmp r2, r3 - bne .L3374 + bne .L3357 mov r10, r6 movs r3, #0 - str r3, [r6, #616] -.L3375: - ldrh r9, [fp, #612] + str r3, [r6, #1128] +.L3358: + ldrh r9, [fp, #1124] mov r0, r9 bl List_get_gc_head_node movw r2, #65535 uxth r3, r0 - strh r3, [fp, #40] @ movhi + strh r3, [fp, #552] @ movhi cmp r3, r2 - bne .L3376 - ldr r3, .L3491 + bne .L3359 + ldr r3, .L3472+4 movs r2, #0 movs r0, #8 - strh r2, [r3, #612] @ movhi - b .L3315 -.L3376: + strh r2, [r3, #1124] @ movhi + b .L3457 +.L3359: mov r0, r3 str r3, [sp, #12] bl IsBlkInGcList add r9, r9, #1 ldr r3, [sp, #12] - cbz r0, .L3377 - strh r9, [r10, #612] @ movhi - b .L3375 -.L3377: - ldrh lr, [r7, #1804] + cbz r0, .L3360 + strh r9, [r10, #1124] @ movhi + b .L3358 +.L3360: + ldrh lr, [r7, #2316] uxth r9, r9 - ldrh r2, [r7, #1872] - ldr r1, [r10, #-220] - strh r9, [r10, #612] @ movhi + ldrh r2, [r7, #2384] + ldr r1, [r10, #292] + strh r9, [r10, #1124] @ movhi mul r2, lr, r2 ldrh r0, [r1, r3, lsl #1] add lr, r2, r2, lsr #31 cmp r0, lr, asr #1 - bgt .L3379 + bgt .L3362 cmp r9, #48 - bls .L3380 + bls .L3363 cmp r0, #8 - bls .L3380 - ldrh r0, [r10, #648] + bls .L3363 + ldrh r0, [r10, #1160] cmp r0, #35 - bhi .L3380 -.L3379: + bhi .L3363 +.L3362: movs r0, #0 - strh r0, [fp, #612] @ movhi -.L3380: + strh r0, [fp, #1124] @ movhi +.L3363: ldrh r1, [r1, r3, lsl #1] cmp r1, r2 - blt .L3381 + blt .L3364 movw r2, #65535 cmp r4, r2 - bne .L3381 - ldrh r0, [fp, #612] - ldr r2, .L3491 + bne .L3364 + ldrh r0, [fp, #1124] + ldr r2, .L3472+4 cmp r0, #3 - bhi .L3381 + bhi .L3364 movs r3, #0 - strh r4, [r2, #40] @ movhi - strh r3, [r2, #612] @ movhi -.L3480: - ldr r3, .L3491+4 - ldrh r0, [r3, #3780] - b .L3315 -.L3381: - cbnz r1, .L3382 + 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 movw r0, #65535 bl decrement_vpc_count - ldrh r3, [fp, #612] + ldrh r3, [fp, #1124] adds r3, r3, #1 - strh r3, [fp, #612] @ movhi - b .L3375 -.L3382: + strh r3, [fp, #1124] @ movhi + b .L3358 +.L3365: movs r2, #0 - strb r2, [r6, #48] - ldr r2, .L3491+8 + strb r2, [r6, #560] + ldr r2, .L3472 ldrb r2, [r2, #140] @ zero_extendqisi2 - cbz r2, .L3383 + cbz r2, .L3366 mov r0, r3 bl ftl_get_blk_mode - ldr r3, .L3491 - strb r0, [r3, #48] -.L3383: - ldr r0, .L3491+12 + ldr r3, .L3472+4 + strb r0, [r3, #560] +.L3366: + ldr r0, .L3472+12 bl make_superblock - ldr r2, .L3491+4 - ldrh r0, [r6, #40] + ldr r2, .L3472+8 + ldrh r0, [r6, #552] movs r3, #0 - ldr r1, [r6, #-220] - strh r3, [r2, #3782] @ movhi + ldr r1, [r6, #292] + strh r3, [r2, #974] @ movhi ldrh r1, [r1, r0, lsl #1] - strh r3, [r6, #42] @ movhi - strb r3, [r6, #46] - strh r1, [r2, #3784] @ movhi -.L3374: + strh r3, [r6, #554] @ movhi + strb r3, [r6, #558] + strh r1, [r2, #976] @ movhi +.L3357: cmp r8, #1 - bne .L3384 + bne .L3367 bl FtlReadRefresh -.L3384: +.L3367: movs r3, #1 - str r3, [r6, #1740] - ldrh r3, [r7, #1872] + str r3, [r6, #3276] + ldrh r3, [r7, #2384] str r3, [sp, #12] ldrb r3, [r7, #140] @ zero_extendqisi2 - cbz r3, .L3385 - ldr r3, .L3491 - ldrb r3, [r3, #48] @ zero_extendqisi2 + cbz r3, .L3368 + ldr r3, .L3472+4 + ldrb r3, [r3, #560] @ zero_extendqisi2 cmp r3, #1 itt eq - ldrheq r3, [r7, #1874] + ldrheq r3, [r7, #2386] streq r3, [sp, #12] -.L3385: - ldrh r3, [r6, #42] +.L3368: + ldrh r3, [r6, #554] ldr r1, [sp, #12] adds r2, r3, r5 cmp r2, r1 @@ -21020,29 +20777,29 @@ ftl_do_gc: subgt r3, r2, r3 uxthgt r5, r3 movs r3, #0 -.L3479: +.L3461: str r3, [sp, #16] ldrh r3, [sp, #16] - ldr r6, .L3491 + ldr r6, .L3472+4 cmp r3, r5 - bcs .L3394 - ldr r3, [r6, #636] - add r1, r6, #54 + bcs .L3377 + ldr r3, [r6, #1148] + addw r1, r6, #566 ldr r2, [sp, #16] movw lr, #65535 - ldrh r10, [r7, #1804] + ldrh r10, [r7, #2316] str r3, [sp, #20] - ldrh r3, [r6, #42] + ldrh r3, [r6, #554] add ip, r3, r2 movs r3, #0 mov r9, r3 -.L3395: +.L3378: uxth r2, r3 cmp r2, r10 - bcs .L3486 + bcs .L3468 ldrh r2, [r1, #2]! cmp r2, lr - beq .L3388 + beq .L3371 ldr r0, [sp, #20] mov fp, #36 orr r2, ip, r2, lsl #10 @@ -21050,364 +20807,358 @@ ftl_do_gc: add r9, r9, #1 uxth r9, r9 str r2, [fp, #4] -.L3388: +.L3371: adds r3, r3, #1 - b .L3395 -.L3492: + b .L3378 +.L3473: .align 2 -.L3491: +.L3472: + .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR5 - .word .LANCHOR0 - .word .LANCHOR2+40 -.L3486: - ldr r0, [r6, #636] + .word .LANCHOR2+552 +.L3468: + ldr r0, [r6, #1148] mov r1, r9 - ldrb r2, [r6, #48] @ zero_extendqisi2 + ldrb r2, [r6, #560] @ zero_extendqisi2 mov fp, #0 bl FlashReadPages - ldr r6, .L3493 -.L3390: + ldr r6, .L3474 +.L3373: uxth r3, fp cmp r3, r9 - bcs .L3487 + bcs .L3469 mov ip, #36 - ldr r2, [r6, #636] + ldr r2, [r6, #1148] mul r10, ip, fp add r3, r2, r10 ldr r2, [r2, r10] ldr r3, [r3, #12] adds r2, r2, #1 - beq .L3429 + beq .L3411 ldrh r1, [r3] movw r2, #61589 cmp r1, r2 - bne .L3429 - add r1, sp, ip + bne .L3411 ldr r0, [r3, #8] + add r1, sp, #32 movs r2, #0 str ip, [sp, #24] str r3, [sp, #20] bl log2phys - ldr r1, [r6, #636] + ldr r1, [r6, #1148] add r1, r1, r10 ldr r0, [r1, #4] - ldr r2, [sp, #36] + ldr r2, [sp, #32] ldr r3, [sp, #20] bic r2, r2, #-2147483648 ldr ip, [sp, #24] cmp r2, r0 - bne .L3429 + bne .L3411 str r3, [sp, #28] - ldr r3, .L3493+4 - ldr r0, [r6, #620] + ldr r3, .L3474+4 + ldr r0, [r6, #1132] ldr r1, [r1, #16] - ldrh r2, [r3, #3782] + ldrh r2, [r3, #974] adds r2, r2, #1 - strh r2, [r3, #3782] @ movhi - ldr r2, [r6, #1768] + strh r2, [r3, #974] @ movhi + ldr r2, [r6, #3304] mla r2, ip, r0, r2 str r1, [r2, #16] str r2, [sp, #20] bl Ftl_get_new_temp_ppa - ldr r1, [r6, #620] + ldr r1, [r6, #1132] ldr r2, [sp, #20] ldr ip, [sp, #24] ldr r3, [sp, #28] str r0, [r2, #4] - ldr r2, [r6, #1768] + ldr r2, [r6, #3304] mla ip, ip, r1, r2 - ldr r2, [r6, #636] + ldr r2, [r6, #1148] add r2, r2, r10 ldr r1, [r2, #8] str r1, [ip, #8] movs r1, #1 ldr r2, [r2, #12] str r2, [ip, #12] - ldr r2, [sp, #36] + ldr r2, [sp, #32] str r2, [r3, #12] - ldrh r2, [r6, #-104] + ldrh r2, [r6, #408] strh r2, [r3, #2] @ movhi - ldr r2, [r6, #-4] - ldr r0, [r6, #636] + ldr r2, [r6, #508] + ldr r0, [r6, #1148] str r2, [r3, #4] add r0, r0, r10 - ldr r3, [r6, #620] + ldr r3, [r6, #1132] adds r3, r3, #1 - str r3, [r6, #620] + str r3, [r6, #1132] bl FtlGcBufAlloc ldrb r3, [r7, #140] @ zero_extendqisi2 - cbnz r3, .L3392 - ldrb r3, [r6, #-97] @ zero_extendqisi2 - ldr r2, [r6, #620] + cbnz r3, .L3375 + ldrb r3, [r6, #415] @ zero_extendqisi2 + ldr r2, [r6, #1132] cmp r2, r3 - beq .L3392 - ldrh r3, [r6, #-100] - cbnz r3, .L3429 -.L3392: + beq .L3375 + ldrh r3, [r6, #412] + cbnz r3, .L3411 +.L3375: bl Ftl_gc_temp_data_write_back - cbz r0, .L3429 - ldr r3, .L3493 + cbz r0, .L3411 + ldr r3, .L3474 movs r2, #0 movw r1, #65535 - str r2, [r3, #1740] - strh r1, [r3, #40] @ movhi - strh r2, [r3, #42] @ movhi - b .L3480 -.L3429: + str r2, [r3, #3276] + strh r1, [r3, #552] @ movhi + strh r2, [r3, #554] @ movhi + b .L3462 +.L3411: add fp, fp, #1 - b .L3390 -.L3487: + b .L3373 +.L3469: ldr r3, [sp, #16] adds r3, r3, #1 - b .L3479 -.L3394: - ldrh r3, [r6, #42] + b .L3461 +.L3377: + ldrh r3, [r6, #554] add r5, r5, r3 ldr r3, [sp, #12] uxth r5, r5 - strh r5, [r6, #42] @ movhi + strh r5, [r6, #554] @ movhi cmp r5, r3 - bcc .L3396 - ldr r3, [r6, #620] - ldr r5, .L3493+4 - cbz r3, .L3397 + bcc .L3379 + ldr r3, [r6, #1132] + ldr r5, .L3474+4 + cbz r3, .L3380 bl Ftl_gc_temp_data_write_back - cbz r0, .L3397 + cbz r0, .L3380 movs r3, #0 - ldrh r0, [r5, #3780] - str r3, [r6, #1740] - b .L3315 -.L3397: - ldrh r5, [r5, #3782] - cbnz r5, .L3398 - ldrh r2, [r6, #40] - ldr r3, [r6, #-220] + 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 r3, [r3, r2, lsl #1] - cbz r3, .L3398 -.L3399: - ldr r3, [r7, #1932] + cbz r3, .L3381 +.L3382: + ldr r3, [r7, #2444] cmp r5, r3 - bcs .L3404 + bcs .L3387 mov r0, r5 - add r1, sp, #40 + add r1, sp, #36 movs r2, #0 bl log2phys - ldr r0, [sp, #40] + ldr r0, [sp, #36] adds r3, r0, #1 - beq .L3400 + beq .L3383 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldrh r3, [r6, #40] + ldrh r3, [r6, #552] cmp r3, r0 - bne .L3400 -.L3404: - ldr r3, .L3493+8 - ldr r3, [r3, #1932] + bne .L3383 +.L3387: + ldr r3, .L3474+8 + ldr r3, [r3, #2444] cmp r5, r3 - bcc .L3398 - ldrh r2, [r6, #40] + bcc .L3381 + ldrh r2, [r6, #552] movs r1, #0 - ldr r3, [r6, #-220] + ldr r3, [r6, #292] strh r1, [r3, r2, lsl #1] @ movhi - ldrh r0, [r6, #40] + ldrh r0, [r6, #552] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3398 -.L3400: + b .L3381 +.L3383: adds r5, r5, #1 - b .L3399 -.L3398: + b .L3382 +.L3381: movw r3, #65535 - strh r3, [r6, #40] @ movhi -.L3396: - ldrh r3, [r6, #-204] + strh r3, [r6, #552] @ movhi +.L3379: + ldrh r3, [r6, #308] cmp r3, #2 - bhi .L3405 - ldrh r5, [r7, #1872] - b .L3406 -.L3405: - ldr r2, .L3493 + bhi .L3388 + ldrh r5, [r7, #2384] + b .L3389 +.L3388: + ldr r2, .L3474 movs r1, #0 - str r1, [r2, #1740] - ldr r2, .L3493+4 - ldrh r0, [r2, #3780] - cbnz r0, .L3315 - adds r0, r3, #1 - b .L3315 -.L3415: - movs r0, #0 - b .L3315 -.L3418: - mov r0, r4 - b .L3315 -.L3484: - ldrh r3, [r2, #-104] - movw r1, #65535 - cmp r3, r1 - bne .L3352 - ldrh r1, [r2, #658] - cmp r1, r3 - bne .L3352 - ldr r3, .L3493+4 - ldrh r0, [r3, #3780] + str r1, [r2, #3276] + ldr r2, .L3474+4 + ldrh r0, [r2, #972] cmp r0, #0 - beq .L3488 -.L3353: - ldrh r3, [r7, #20] - add r3, r3, r3, lsl #1 - ubfx r3, r3, #2, #16 -.L3354: - strh r3, [r7, #604] @ movhi - movs r3, #0 - str r3, [r7, #616] -.L3315: - ldr r3, .L3493+12 - ldr r2, [sp, #44] - ldr r3, [r3] - cmp r2, r3 - beq .L3414 - bl __stack_chk_fail -.L3482: - ldr r2, [r5, #1736] - cbnz r2, .L3338 - ldrh r1, [r6, #1824] - ldr r2, .L3493+8 - cmp r1, #3 - beq .L3338 - ldr r1, [r5, #88] - cbnz r1, .L3338 - ldr r1, [r2, #1796] - cbnz r1, .L3338 - ldrb r0, [r2, #140] @ zero_extendqisi2 - cbz r0, .L3339 -.L3338: - ldr r2, [r7, #-220] - ldrh r0, [r6, #1824] + bne .L3457 + adds r0, r3, #1 + b .L3457 +.L3397: + 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] + 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] ldrh r1, [r2, r3, lsl #1] cmp r0, #3 - ldrh r3, [r6, #1874] - ldrh r2, [r6, #1804] + ldrh r3, [r5, #2386] + ldrh r2, [r5, #2316] mul r2, r2, r3 ite eq lsreq r3, r3, #1 movne r3, #0 add r3, r3, r2 cmp r1, r3 - bgt .L3341 + bgt .L3324 movs r0, #0 bl List_get_gc_head_node - ldr r3, [r6, #1932] - ldr r2, .L3493 - ldr r1, [r7, #-48] + ldr r3, [r5, #2444] + ldr r2, .L3474 + ldr r1, [r7, #464] add r3, r3, r3, lsl #1 cmp r1, r3, lsr #2 ite hi movhi r3, #128 movls r3, #160 - strh r3, [r2, #606] @ movhi + strh r3, [r2, #1118] @ movhi uxth r4, r0 - b .L3343 -.L3341: + b .L3326 +.L3324: movs r3, #128 - b .L3478 -.L3339: - ldr r2, [r5, #-220] + b .L3460 +.L3322: + ldr r2, [r9, #292] ldrh r3, [r2, r3, lsl #1] cmp r3, #7 - bhi .L3344 + bhi .L3327 bl List_get_gc_head_node movs r3, #128 - strh r3, [r7, #606] @ movhi + strh r3, [r7, #1118] @ movhi uxth r4, r0 - b .L3343 -.L3344: + b .L3326 +.L3327: movs r3, #64 -.L3478: - strh r3, [r7, #606] @ movhi - b .L3345 -.L3336: +.L3460: + strh r3, [r7, #1118] @ movhi + b .L3328 +.L3319: movs r3, #80 - strh r3, [r5, #606] @ movhi - b .L3345 -.L3343: + strh r3, [r5, #1118] @ movhi + b .L3328 +.L3326: movw r3, #65535 cmp r4, r3 - beq .L3345 -.L3335: - ldr r1, [r6, #4060] - ldr r3, [r7, #-220] - ldrh r2, [r7, #-204] + beq .L3328 +.L3318: + ldr r1, [r7, #228] + ldr r3, [r7, #292] + ldrh r2, [r7, #308] ldrh r1, [r1, r4, lsl #1] ldrh r3, [r3, r4, lsl #1] - ldr r0, .L3493+16 + ldr r0, .L3474+12 str r1, [sp] - ldrh r1, [r7, #604] + ldrh r1, [r7, #1116] str r1, [sp, #4] mov r1, r4 bl printk - b .L3345 -.L3348: + b .L3328 +.L3331: cmp r4, #12 - bls .L3349 + bls .L3332 lsrs r5, r5, #4 - b .L3347 -.L3349: + b .L3330 +.L3332: cmp r4, #8 - bls .L3347 + bls .L3330 lsrs r5, r5, #2 - b .L3347 -.L3422: + b .L3330 +.L3404: movs r5, #1 - b .L3347 -.L3494: + b .L3330 +.L3466: + ldrh r3, [r2, #408] + movw r1, #65535 + cmp r3, r1 + bne .L3335 + ldrh r1, [r2, #1170] + 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] + add r3, r3, r3, lsl #1 + cmp r2, r3, lsr #2 + bcs .L3405 +.L3336: + ldrh r3, [r7, #532] + add r3, r3, r3, lsl #1 + ubfx r3, r3, #2, #16 + b .L3337 +.L3475: .align 2 -.L3493: +.L3474: .word .LANCHOR2 .word .LANCHOR5 .word .LANCHOR0 - .word __stack_chk_guard .word .LC153 -.L3488: - ldr r3, [r6, #1932] - ldr r2, [r2, #-48] - add r3, r3, r3, lsl #1 - cmp r2, r3, lsr #2 - bcc .L3353 +.L3405: movs r3, #18 - b .L3354 -.L3352: - ldrh r3, [r7, #20] +.L3337: + strh r3, [r7, #1116] @ movhi + movs r3, #0 + str r3, [r7, #1128] + b .L3457 +.L3335: + ldrh r3, [r7, #532] add r3, r3, r3, lsl #1 asrs r3, r3, #2 - strh r3, [r7, #604] @ movhi - b .L3351 -.L3485: - cmp r9, #2 - bhi .L3425 + strh r3, [r7, #1116] @ movhi + b .L3334 +.L3467: + cmp r6, #2 + bhi .L3407 adds r5, r5, #1 uxth r5, r5 - b .L3425 -.L3481: + b .L3407 +.L3463: cmp r8, #0 - beq .L3411 - b .L3346 -.L3332: + beq .L3394 + b .L3329 +.L3315: cmp r8, #0 - beq .L3411 - b .L3412 -.L3331: + beq .L3394 + b .L3395 +.L3314: cmp r8, #0 - beq .L3411 - b .L3362 -.L3334: + beq .L3394 + b .L3345 +.L3317: cmp r8, #0 - beq .L3411 - b .L3413 -.L3414: - add sp, sp, #52 + beq .L3394 + b .L3396 +.L3457: + add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} .fnend @@ -21419,216 +21170,207 @@ ftl_do_gc: .type FtlCacheWriteBack, %function FtlCacheWriteBack: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3539 - push {r4, r5, r6, r7, r8, r9, r10, fp, lr} + push {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 r2, [r3] - ldr r4, .L3539+4 - str r3, [sp, #4] - str r2, [sp, #12] - ldr r2, .L3539+8 - ldr r5, [r2, #3788] - ldr r2, [r4, #4052] - cmp r2, #0 - bne .L3497 - ldr r1, [r4, #1924] + .pad #12 + ldr r3, .L3519 + ldr r7, .L3519+4 + ldr r5, [r3, #980] + ldr r3, [r7, #220] + cmp r3, #0 + bne .L3478 + ldr r4, .L3519+8 + ldr r1, [r4, #2436] cmp r1, #0 - beq .L3497 - ldrb r7, [r4, #140] @ zero_extendqisi2 - cbz r7, .L3499 - ldrb r7, [r5, #8] @ zero_extendqisi2 - subs r0, r7, #1 - rsbs r7, r0, #0 - adcs r7, r7, r0 -.L3499: - ldr r0, [r4, #1928] - mov r2, r7 + beq .L3478 + ldrb r3, [r4, #140] @ zero_extendqisi2 + cbz r3, .L3501 + ldrb r8, [r5, #8] @ zero_extendqisi2 + add r0, r8, #-1 + rsbs r8, r0, #0 + adc r8, r8, r0 + b .L3480 +.L3501: + mov r8, r3 +.L3480: + ldr r0, [r4, #2440] + mov r2, r8 ldrb r3, [r5, #9] @ zero_extendqisi2 - mov r8, #0 + mov r9, #0 bl FlashProgPages - ldr r9, .L3539+4 - ldr r10, .L3539+16 -.L3500: - ldr r3, [r4, #1924] - cmp r8, r3 - bcs .L3518 - movs r6, #36 - ldr r3, [r9, #1928] - mul r6, r6, r8 + ldr r10, .L3519+8 + mov fp, #36 +.L3481: + ldr r3, [r4, #2436] + cmp r9, r3 + bcs .L3499 + mul r6, fp, r9 + ldr r3, [r10, #2440] adds r2, r3, r6 ldr r3, [r3, r6] adds r3, r3, #1 - beq .L3522 + beq .L3502 ldr r3, [r2, #4] - cbz r7, .L3535 + cmp r8, #0 + beq .L3515 orr r3, r3, #-2147483648 -.L3535: +.L3515: ldr r0, [r2, #16] - add r1, sp, #8 + add r1, sp, #4 movs r2, #1 - str r3, [sp, #8] + str r3, [sp, #4] bl log2phys - ldr r3, [r4, #1928] + ldr r3, [r4, #2440] add r6, r6, r3 ldr r3, [r6, #12] ldr r0, [r3, #12] adds r2, r0, #1 - beq .L3504 + beq .L3485 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r10, #-220] + ldr r3, [r7, #292] ldrh r2, [r3, r0, lsl #1] mov r6, r0 - cbnz r2, .L3505 - ldr r0, .L3539+12 + cbnz r2, .L3486 + ldr r0, .L3519+12 mov r1, r6 bl printk -.L3505: +.L3486: mov r0, r6 bl decrement_vpc_count -.L3504: - add r8, r8, #1 - b .L3500 -.L3537: - ldr r6, .L3539+16 - movw r5, #16386 +.L3485: + add r9, r9, #1 + b .L3481 .L3517: - ldrh r3, [r6, #666] - cbz r3, .L3518 + movw r5, #16386 +.L3498: + ldrh r3, [r7, #1178] + cbz r3, .L3499 movs r0, #1 mov r1, r0 bl ftl_do_gc subs r5, r5, #1 - bne .L3517 -.L3518: + bne .L3498 +.L3499: movs r3, #0 - str r3, [r4, #1924] - b .L3497 -.L3522: - ldr r10, .L3539+4 - mov r8, #0 - ldr r9, .L3539+16 -.L3501: - ldr r3, [r4, #1924] - cmp r8, r3 - bcs .L3537 + str r3, [r4, #2436] + b .L3478 +.L3502: + ldr r10, .L3519+8 + mov r9, #0 +.L3482: + ldr r3, [r4, #2436] + cmp r9, r3 + bcs .L3517 movs r6, #36 - ldr r3, [r10, #1928] + ldr r3, [r10, #2440] mov fp, #0 mov r2, #-1 - mul r6, r6, r8 + mul r6, r6, r9 str r2, [r3, r6] -.L3507: - ldr r3, [r4, #1928] +.L3488: + ldr r3, [r4, #2440] adds r2, r3, r6 ldr r3, [r3, r6] adds r3, r3, #1 - bne .L3538 + bne .L3518 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3508 - ldr r1, [r9, #-220] + bne .L3489 + ldr r1, [r7, #292] ldrh r0, [r5, #4] ldrh r2, [r1, r3, lsl #1] subs r2, r2, r0 strh r2, [r1, r3, lsl #1] @ movhi - ldrh r3, [r10, #1872] + ldrh r3, [r10, #2384] strb fp, [r5, #6] strh fp, [r5, #4] @ movhi strh r3, [r5, #2] @ movhi -.L3508: +.L3489: ldrh r3, [r5, #4] - cbnz r3, .L3509 + cbnz r3, .L3490 mov r0, r5 bl allocate_new_data_superblock -.L3509: - ldr r3, [r9, #188] +.L3490: + ldr r3, [r7, #700] adds r3, r3, #1 - str r3, [r9, #188] - ldr r3, [r4, #1928] + str r3, [r7, #700] + ldr r3, [r4, #2440] 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, #1928] + ldr r3, [r4, #2440] + mov r2, r8 movs r1, #1 - mov r2, r7 add r3, r3, r6 - str r0, [sp, #8] + str r0, [sp, #4] str r0, [r3, #4] mov r0, r3 ldrb r3, [r5, #9] @ zero_extendqisi2 bl FlashProgPages - ldr r3, [r4, #1928] + ldr r3, [r4, #2440] ldr r3, [r3, r6] adds r3, r3, #1 - itt eq + ittt eq moveq r3, #1 - streq r3, [r10, #4052] - ldr r3, [r4, #4052] + ldreq r2, .L3519+4 + streq r3, [r2, #220] + ldr r3, [r7, #220] cmp r3, #0 - beq .L3507 - b .L3497 -.L3538: + beq .L3488 + b .L3478 +.L3518: ldr r3, [r2, #4] - cbz r7, .L3536 + cmp r8, #0 + beq .L3516 orr r3, r3, #-2147483648 -.L3536: +.L3516: ldr r0, [r2, #16] - add r1, sp, #8 + add r1, sp, #4 movs r2, #1 - str r3, [sp, #8] + str r3, [sp, #4] bl log2phys - ldr r3, [r4, #1928] + ldr r3, [r4, #2440] add r6, r6, r3 ldr r3, [r6, #12] ldr r0, [r3, #12] adds r3, r0, #1 - beq .L3514 + beq .L3495 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [r9, #-220] + ldr r3, [r7, #292] ldrh r2, [r3, r0, lsl #1] mov r6, r0 - cbnz r2, .L3515 - ldr r0, .L3539+12 + cbnz r2, .L3496 + ldr r0, .L3519+12 mov r1, r6 bl printk -.L3515: +.L3496: mov r0, r6 bl decrement_vpc_count -.L3514: - add r8, r8, #1 - b .L3501 -.L3497: - ldr r3, [sp, #4] +.L3495: + add r9, r9, #1 + b .L3482 +.L3478: movs r0, #0 - ldr r2, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L3520 - bl __stack_chk_fail -.L3520: - add sp, sp, #20 + add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3540: +.L3520: .align 2 -.L3539: - .word __stack_chk_guard - .word .LANCHOR0 +.L3519: .word .LANCHOR5 - .word .LC154 .word .LANCHOR2 + .word .LANCHOR0 + .word .LC154 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 1 @@ -21642,25 +21384,25 @@ FtlSysFlush: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L3546 - ldr r3, [r3, #4052] - cbnz r3, .L3542 - ldr r3, .L3546+4 + ldr r3, .L3526 + ldr r3, [r3, #220] + cbnz r3, .L3522 + ldr r3, .L3526+4 ldr r3, [r3, #504] adds r3, r3, #1 - beq .L3542 + beq .L3522 bl FtlCacheWriteBack bl l2p_flush movs r0, #1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3542: +.L3522: movs r0, #0 pop {r3, pc} -.L3547: +.L3527: .align 2 -.L3546: - .word .LANCHOR0 +.L3526: + .word .LANCHOR2 .word .LANCHOR1 .fnend .size FtlSysFlush, .-FtlSysFlush @@ -21675,17 +21417,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L3550 + ldr r3, .L3530 ldr r3, [r3, #504] cmp r3, #1 - bne .L3549 + bne .L3529 bl FtlSysFlush -.L3549: +.L3529: movs r0, #0 pop {r3, pc} -.L3551: +.L3531: .align 2 -.L3550: +.L3530: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -21718,13 +21460,13 @@ rk_ftl_de_init: push {r3, lr} .save {r3, lr} movs r1, #0 - ldr r0, .L3554 + ldr r0, .L3534 bl printk pop {r3, lr} b ftl_deinit -.L3555: +.L3535: .align 2 -.L3554: +.L3534: .word .LC155 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init @@ -21761,117 +21503,106 @@ rk_ftl_cache_write_back: .type ftl_discard, %function ftl_discard: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, lr} + 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 r6, .L3577 - mov r8, r0 - ldr r0, .L3577+4 - .pad #20 - sub sp, sp, #20 + ldr r7, .L3556 + mov r6, r0 mov r5, r1 - ldr r3, [r6] - mov r7, r0 - str r3, [sp, #12] - ldr r3, [r0, #1912] + ldr r3, [r7, #2424] cmp r2, r3 - bhi .L3566 - ldr r3, .L3577+8 + bhi .L3545 + ldr r3, .L3556+4 ldr r0, [r3, #504] adds r3, r0, #1 - beq .L3559 + beq .L3539 cmp r1, #31 - bls .L3569 - ldr r3, [r7, #4052] - cmp r3, #0 - bne .L3569 + bls .L3548 + ldr r3, .L3556+8 + ldr r2, [r3, #220] + mov r8, r3 + cmp r2, #0 + bne .L3548 bl FtlCacheWriteBack - ldrh r4, [r7, #1878] - mov r0, r8 + ldrh r4, [r7, #2390] + mov r0, r6 mov r1, r4 bl __aeabi_uidiv smulbb r3, r0, r4 mov r9, r0 - rsb r3, r3, r8 - uxth r3, r3 - cbz r3, .L3560 - subs r4, r4, r3 + subs r6, r6, r3 + uxth r6, r6 + cbz r6, .L3540 + subs r4, r4, r6 add r9, r0, #1 cmp r4, r5 it cs movcs r4, r5 uxth r4, r4 subs r5, r5, r4 -.L3560: - ldr r4, .L3577+12 +.L3540: + ldr r4, .L3556+12 mov r3, #-1 - ldr r8, .L3577+16 - str r3, [sp, #8] -.L3561: - ldrh r3, [r7, #1878] + str r3, [sp, #4] +.L3541: + ldrh r3, [r7, #2390] cmp r5, r3 - bcc .L3576 + bcc .L3555 mov r0, r9 - add r1, sp, #4 + mov r1, sp movs r2, #0 bl log2phys - ldr r3, [sp, #4] + ldr r3, [sp] adds r3, r3, #1 - beq .L3562 - ldr r3, [r4, #3792] - add r1, sp, #8 + beq .L3542 + ldr r3, [r4, #984] + add r1, sp, #4 movs r2, #1 mov r0, r9 adds r3, r3, #1 - str r3, [r4, #3792] - ldr r3, [r8, #-36] + str r3, [r4, #984] + ldr r3, [r8, #476] adds r3, r3, #1 - str r3, [r8, #-36] + str r3, [r8, #476] bl log2phys - ldr r0, [sp, #4] + ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3562: - ldrh r3, [r7, #1878] +.L3542: + ldrh r3, [r7, #2390] add r9, r9, #1 subs r5, r5, r3 - b .L3561 -.L3576: - ldr r3, .L3577+12 - ldr r2, [r3, #3792] + b .L3541 +.L3555: + ldr r3, .L3556+12 + ldr r2, [r3, #984] cmp r2, #32 - bls .L3569 + bls .L3548 movs r2, #0 - str r2, [r3, #3792] + str r2, [r3, #984] bl l2p_flush bl FtlVpcTblFlush - b .L3569 -.L3566: + b .L3548 +.L3545: mov r0, #-1 - b .L3559 -.L3569: + b .L3539 +.L3548: movs r0, #0 -.L3559: - ldr r2, [sp, #12] - ldr r3, [r6] - cmp r2, r3 - beq .L3565 - bl __stack_chk_fail -.L3565: - add sp, sp, #20 +.L3539: + add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3578: +.L3557: .align 2 -.L3577: - .word __stack_chk_guard +.L3556: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR5 .word .LANCHOR2 + .word .LANCHOR5 .fnend .size ftl_discard, .-ftl_discard .align 1 @@ -21899,34 +21630,31 @@ 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, .L3624 + ldr r3, .L3602 .pad #84 sub sp, sp, #84 mov r7, r1 str r2, [sp, #44] - ldr r3, [r3] - str r3, [sp, #76] - ldr r3, .L3624+4 ldr r3, [r3, #504] adds r4, r3, #1 - beq .L3604 + beq .L3582 cmp r0, #16 - bne .L3582 + bne .L3561 add r0, r1, #256 mov r1, r2 mov r2, r8 bl FtlVendorPartRead - b .L3581 -.L3582: + b .L3560 +.L3561: ldr r3, [sp, #44] adds r3, r1, r3 str r3, [sp, #36] - ldr r3, .L3624+8 + ldr r3, .L3602+4 ldr r1, [sp, #36] - ldr r2, [r3, #1912] + ldr r2, [r3, #2424] cmp r1, r2 - bhi .L3605 - ldrh r4, [r3, #1878] + bhi .L3583 + ldrh r4, [r3, #2390] mov r0, r7 mov r1, r4 bl __aeabi_uidiv @@ -21941,68 +21669,68 @@ ftl_read: str r0, [sp, #32] add r3, r3, r0 str r3, [sp, #24] - ldr r3, .L3624+12 + ldr r3, .L3602+8 ldr r0, [sp, #28] - ldr r2, [r3, #-12] + ldr r2, [r3, #500] add r2, r2, r1 ldr r1, [sp, #24] - str r2, [r3, #-12] - ldr r2, [r3, #-40] + str r2, [r3, #500] + ldr r2, [r3, #472] add r2, r2, r1 ldr r1, [sp, #32] - str r2, [r3, #-40] + str r2, [r3, #472] bl FtlCacheMetchLpa - cbz r0, .L3583 + cbz r0, .L3562 bl FtlCacheWriteBack -.L3583: +.L3562: mov r10, #0 ldr r5, [sp, #28] - ldr r4, .L3624+12 - ldr r9, .L3624+8 + ldr r4, .L3602+8 + ldr r9, .L3602+4 mov r6, r10 str r10, [sp, #48] str r10, [sp, #52] -.L3584: +.L3563: ldr r3, [sp, #24] cmp r3, #0 - beq .L3623 - add r1, sp, #72 + beq .L3601 + add r1, sp, #76 mov r0, r5 movs r2, #0 bl log2phys - ldr r3, [sp, #72] + ldr r3, [sp, #76] adds r1, r3, #1 - bne .L3620 + bne .L3598 mov fp, #0 -.L3585: - ldrh r0, [r9, #1878] +.L3564: + ldrh r0, [r9, #2390] cmp fp, r0 - bcs .L3589 + bcs .L3568 mla r0, r0, r5, fp cmp r0, r7 - bcc .L3587 + bcc .L3566 ldr r3, [sp, #36] cmp r0, r3 - bcs .L3587 + bcs .L3566 subs r0, r0, r7 movs r1, #0 mov r2, #512 add r0, r8, r0, lsl #9 bl ftl_memset -.L3587: +.L3566: add fp, fp, #1 - b .L3585 -.L3620: - ldr r2, [r4, #1764] + b .L3564 +.L3598: + ldr r2, [r4, #3300] mov fp, #36 mla fp, fp, r6, r2 str r3, [fp, #4] ldr r3, [sp, #28] cmp r5, r3 - bne .L3590 - ldrh ip, [r9, #1878] + bne .L3569 + ldrh ip, [r9, #2390] mov r0, r7 - ldr r3, [r4, #1792] + ldr r3, [r4, #3328] mov r1, ip str ip, [sp, #40] str r3, [fp, #8] @@ -22016,51 +21744,51 @@ ftl_read: movcs r3, r2 cmp r3, ip str r3, [sp, #48] - bne .L3591 + bne .L3570 str r8, [fp, #8] - b .L3591 -.L3590: + b .L3570 +.L3569: ldr r3, [sp, #32] cmp r5, r3 - bne .L3592 - ldr r3, [r4, #1796] - ldrh r2, [r9, #1878] + bne .L3571 + ldr r3, [r4, #3332] + ldrh r2, [r9, #2390] ldr r1, [sp, #36] str r3, [fp, #8] mul r3, r2, r5 rsb r10, r3, r1 cmp r10, r2 - bne .L3591 - b .L3621 -.L3592: - ldrh r3, [r9, #1878] + bne .L3570 + b .L3599 +.L3571: + ldrh r3, [r9, #2390] muls r3, r5, r3 -.L3621: +.L3599: subs r3, r3, r7 add r3, r8, r3, lsl #9 str r3, [fp, #8] -.L3591: - ldrh r3, [r9, #1884] - ldr r2, [r4, #1804] +.L3570: + ldrh r3, [r9, #2396] + ldr r2, [r4, #3340] str r5, [fp, #16] muls r3, r6, r3 adds r6, r6, #1 bic r3, r3, #3 add r3, r3, r2 str r3, [fp, #12] -.L3589: +.L3568: ldr r3, [sp, #24] adds r5, r5, #1 subs r3, r3, #1 str r3, [sp, #24] - beq .L3593 - ldrh r3, [r9, #1804] + beq .L3572 + ldrh r3, [r9, #2316] cmp r6, r3, lsl #3 - bne .L3584 -.L3593: + bne .L3563 +.L3572: cmp r6, #0 - beq .L3584 - ldr r0, [r4, #1764] + beq .L3563 + ldr r0, [r4, #3300] mov r1, r6 movs r2, #0 bl FlashReadPages @@ -22074,60 +21802,60 @@ ftl_read: str r3, [sp, #68] movs r3, #0 str r3, [sp, #40] -.L3600: +.L3579: ldr r3, [sp, #40] mov ip, #36 ldr r1, [sp, #28] mul fp, ip, r3 - ldr r3, [r4, #1764] + ldr r3, [r4, #3300] add r3, r3, fp ldr r2, [r3, #16] cmp r2, r1 - bne .L3595 + bne .L3574 ldr r1, [r3, #8] - ldr r3, [r4, #1792] + ldr r3, [r4, #3328] cmp r1, r3 - bne .L3596 + bne .L3575 ldr r3, [sp, #60] mov r0, r8 ldr r2, [sp, #64] add r1, r1, r3 - b .L3622 -.L3595: + b .L3600 +.L3574: ldr r1, [sp, #32] cmp r2, r1 - bne .L3596 + bne .L3575 ldr r1, [r3, #8] - ldr r3, [r4, #1796] + ldr r3, [r4, #3332] cmp r1, r3 - bne .L3596 - ldrh r0, [r9, #1878] + bne .L3575 + ldrh r0, [r9, #2390] ldr r3, [sp, #32] ldr r2, [sp, #68] muls r0, r3, r0 subs r0, r0, r7 add r0, r8, r0, lsl #9 -.L3622: +.L3600: bl ftl_memcpy -.L3596: - ldr r2, [r4, #1764] +.L3575: + ldr r2, [r4, #3300] add r3, r2, fp ldr r1, [r2, fp] adds r2, r1, #1 itttt eq streq r1, [sp, #52] - ldreq r2, [r4, #164] + ldreq r2, [r4, #676] addeq r2, r2, #1 - streq r2, [r4, #164] + streq r2, [r4, #676] ldr r2, [r3, #12] ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L3598 - ldr r2, [r4, #164] - ldr r0, .L3624+16 + beq .L3577 + ldr r2, [r4, #676] + ldr r0, .L3602+12 adds r2, r2, #1 - str r2, [r4, #164] + str r2, [r4, #676] ldr lr, [r3, #12] ldr r2, [r3, #8] ldr r1, [lr, #4] @@ -22144,54 +21872,46 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [lr] bl printk -.L3598: - ldr r3, [r4, #1764] +.L3577: + ldr r3, [r4, #3300] add r2, r3, fp ldr r3, [r3, fp] cmp r3, #256 - bne .L3599 + bne .L3578 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3599: +.L3578: ldr r3, [sp, #40] adds r3, r3, #1 str r3, [sp, #40] cmp r3, r6 - bne .L3600 + bne .L3579 movs r6, #0 - b .L3584 -.L3623: - ldr r3, .L3624+12 - ldrh r3, [r3, #666] - cbz r3, .L3602 + b .L3563 +.L3601: + ldr r3, .L3602+8 + ldrh r3, [r3, #1178] + cbz r3, .L3581 ldr r0, [sp, #24] movs r1, #1 bl ftl_do_gc -.L3602: - ldr r0, [sp, #52] - b .L3581 -.L3604: - mov r0, r3 - b .L3581 -.L3605: - mov r0, #-1 .L3581: - ldr r3, .L3624 - ldr r2, [sp, #76] - ldr r3, [r3] - cmp r2, r3 - beq .L3603 - bl __stack_chk_fail -.L3603: + ldr r0, [sp, #52] + b .L3560 +.L3582: + mov r0, r3 + b .L3560 +.L3583: + mov r0, #-1 +.L3560: add sp, sp, #84 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3625: +.L3603: .align 2 -.L3624: - .word __stack_chk_guard +.L3602: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -22234,25 +21954,25 @@ FlashBootVendorRead: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L3630 + ldr r3, .L3608 ldr r3, [r3, #504] cmp r3, #1 - bne .L3629 + bne .L3607 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_read mov r4, r0 - b .L3628 -.L3629: + b .L3606 +.L3607: mov r4, #-1 -.L3628: +.L3606: bl rknand_device_unlock mov r0, r4 pop {r4, r5, r6, pc} -.L3631: +.L3609: .align 2 -.L3630: +.L3608: .word .LANCHOR1 .fnend .size FlashBootVendorRead, .-FlashBootVendorRead @@ -22329,96 +22049,96 @@ FtlInit: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r3, #-1 - ldr r2, .L3651 - ldr r6, .L3651+4 - ldr r5, .L3651+8 - ldr r1, .L3651+12 - ldr r0, .L3651+16 - str r3, [r5, #504] + ldr r2, .L3629 + ldr r7, .L3629+4 + ldr r4, .L3629+8 + ldr r6, .L3629+12 + ldr r1, .L3629+16 + ldr r0, .L3629+20 + str r3, [r7, #504] movs r3, #0 - str r3, [r2, #3796] - str r3, [r6, #4052] + str r3, [r2, #988] + str r3, [r4, #220] bl printk add r0, r6, #112 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh r0, [r6, #1808] + ldrh r0, [r6, #2320] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L3636 - ldr r0, .L3651+20 - b .L3650 -.L3636: + cbz r0, .L3614 + ldr r0, .L3629+24 + b .L3628 +.L3614: bl FtlSysBlkInit - mov r4, r0 - cbz r0, .L3638 - ldr r0, .L3651+24 -.L3650: - ldr r1, .L3651+28 + mov r5, r0 + cbz r0, .L3616 + ldr r0, .L3629+28 +.L3628: + ldr r1, .L3629+32 bl printk - b .L3637 -.L3638: + b .L3615 +.L3616: movs r1, #1 - str r1, [r5, #504] - ldr r5, .L3651+32 + str r1, [r7, #504] bl ftl_do_gc - ldrh r7, [r5, #-204] + ldrh r7, [r4, #308] cmp r7, #15 - bhi .L3639 - mov r8, r5 + bhi .L3617 + mov r8, r4 movw r6, #65535 -.L3642: - ldrh r3, [r5, #40] +.L3620: + ldrh r3, [r4, #552] cmp r3, r6 - bne .L3640 - ldrh r3, [r8, #658] + bne .L3618 + ldrh r3, [r8, #1170] cmp r3, r6 - bne .L3640 - and r0, r4, #7 + bne .L3618 + and r0, r5, #63 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3640: +.L3618: movs r0, #1 mov r1, r0 bl ftl_do_gc movs r0, #0 movs r1, #1 bl ftl_do_gc - ldrh r2, [r5, #-204] + ldrh r2, [r4, #308] adds r3, r7, #2 cmp r2, r3 - bhi .L3637 - adds r4, r4, #1 - cmp r4, #1024 - bne .L3642 - b .L3637 -.L3639: + bhi .L3615 + adds r5, r5, #1 + cmp r5, #4096 + bne .L3620 + b .L3615 +.L3617: ldrb r3, [r6, #140] @ zero_extendqisi2 - cbz r3, .L3637 + cbz r3, .L3615 movs r4, #128 -.L3644: +.L3622: movs r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L3644 -.L3637: + bne .L3622 +.L3615: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L3652: +.L3630: .align 2 -.L3651: +.L3629: .word .LANCHOR5 - .word .LANCHOR0 .word .LANCHOR1 + .word .LANCHOR2 + .word .LANCHOR0 .word .LC77 .word .LC76 .word .LC156 .word .LC157 .word .LANCHOR3+108 - .word .LANCHOR2 .fnend .size FtlInit, .-FtlInit .align 1 @@ -22434,43 +22154,43 @@ rk_ftl_init: .save {r4, r5, r6, lr} mov r0, #2048 bl ftl_malloc - ldr r5, .L3657 - ldr r4, .L3657+4 + ldr r5, .L3635 + ldr r4, .L3635+4 movs r6, #0 - addw r1, r5, #3804 - str r6, [r5, #3804] - str r6, [r4, #3984] - str r0, [r5, #3800] - add r0, r4, #3984 + add r1, r5, #996 + str r6, [r5, #996] + str r6, [r4, #1176] + str r0, [r5, #992] + add r0, r4, #1176 bl rknand_get_reg_addr - ldr r3, [r4, #3984] - cbz r3, .L3656 + ldr r3, [r4, #1176] + cbz r3, .L3634 bl rk_nandc_irq_init mov r1, r6 mov r2, r6 mov r3, #2048 - ldr r0, [r5, #3800] + ldr r0, [r5, #992] bl FlashSramLoadStore bl rknand_flash_cs_init - ldr r0, [r4, #3984] + ldr r0, [r4, #1176] bl FlashInit mov r4, r0 - cbnz r0, .L3655 + cbnz r0, .L3633 bl FtlInit -.L3655: +.L3633: mov r1, r4 - ldr r0, .L3657+8 + ldr r0, .L3635+8 bl printk mov r0, r4 pop {r4, r5, r6, pc} -.L3656: +.L3634: mov r0, #-1 pop {r4, r5, r6, pc} -.L3658: +.L3636: .align 2 -.L3657: +.L3635: .word .LANCHOR5 - .word .LANCHOR2 + .word .LANCHOR4 .word .LC158 .fnend .size rk_ftl_init, .-rk_ftl_init @@ -22481,122 +22201,111 @@ rk_ftl_init: .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3675 - push {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 r2, [r3] - str r3, [sp, #4] - str r2, [sp, #60] - ldr r2, .L3675+4 - ldrb r1, [r2, #140] @ zero_extendqisi2 - mov r7, r2 - cmp r1, #0 - beq .L3659 - ldr r4, .L3675+8 - movw r6, #4097 - ldr r8, .L3675+20 - ldr r0, .L3675+12 - ldr r3, [r4, #-220] - ldrh r5, [r8, #3644] + ldr r3, .L3652 + 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 + mov r8, r3 + cmp r2, #0 + beq .L3637 + ldr r4, .L3652+4 + movw r7, #4097 + ldr r6, .L3652+8 + ldr r0, .L3652+12 + ldr r3, [r4, #292] + ldrh r5, [r6, #836] mov r1, r5 ldrh r2, [r3, r5, lsl #1] bl printk - ldrh r0, [r4, #-200] + ldrh r0, [r4, #312] bl FtlGcRefreshOpenBlock - ldrh r0, [r4, #-152] + ldrh r0, [r4, #360] bl FtlGcRefreshOpenBlock - sub r0, r4, #200 + add r0, r4, #312 bl allocate_new_data_superblock - sub r0, r4, #152 + add r0, r4, #360 bl allocate_new_data_superblock lsl r9, r5, #1 -.L3661: - subs r6, r6, #1 - beq .L3665 +.L3639: + subs r7, r7, #1 + beq .L3643 movs r0, #1 mov r1, r0 bl ftl_do_gc - ldr r3, [r4, #-220] + ldr r3, [r4, #292] ldrh r3, [r3, r9] cmp r3, #0 - bne .L3661 -.L3665: - ldr r3, [r4, #-220] + bne .L3639 +.L3643: + ldr r3, [r4, #292] mov r1, r5 - ldr r0, .L3675+12 + ldr r0, .L3652+12 ldrh r2, [r3, r5, lsl #1] bl printk - ldr r3, [r4, #-220] - ldrh r6, [r3, r5, lsl #1] - cbnz r6, .L3663 - add r0, sp, #64 - mov fp, #36 - movw r10, #65535 - strh r5, [r0, #-52]! @ movhi + ldr r3, [r4, #292] + ldrh r7, [r3, r5, lsl #1] + cbnz r7, .L3641 + add r0, sp, #48 + mov r10, #36 + movw r9, #65535 + strh r5, [r0, #-48]! @ movhi bl make_superblock - ldrh ip, [r7, #1804] - ldr r9, [r7, #4056] - mov r3, r6 + ldr r3, .L3652+4 + ldrh ip, [r8, #2316] + ldr r8, [r3, #224] + mov r3, r7 mov lr, r3 - add r0, sp, #26 -.L3666: + add r0, sp, #14 +.L3644: uxth r2, r3 cmp r2, ip - bcs .L3674 + bcs .L3651 ldrh r2, [r0, #2]! - cmp r2, r10 - beq .L3667 - mla r1, fp, r6, r9 - adds r6, r6, #1 + cmp r2, r9 + beq .L3645 + mla r1, r10, r7, r8 + adds r7, r7, #1 lsls r2, r2, #10 - uxth r6, r6 + uxth r7, r7 str r2, [r1, #4] str lr, [r1, #8] str lr, [r1, #12] -.L3667: +.L3645: adds r3, r3, #1 - b .L3666 -.L3674: - ldr r3, [r4, #-220] + b .L3644 +.L3651: + ldr r3, [r4, #292] mov r1, r5 - ldr r0, .L3675+16 + ldr r0, .L3652+16 ldrh r2, [r3, r5, lsl #1] bl printk movs r1, #0 - mov r2, r6 - ldr r0, [r7, #4056] + mov r2, r7 + ldr r0, [r4, #224] bl FlashEraseBlocks - ldr r0, [r7, #4056] + ldr r0, [r4, #224] movs r1, #1 - mov r2, r6 + mov r2, r7 bl FlashEraseBlocks -.L3663: +.L3641: movw r3, #65535 - strh r3, [r8, #3644] @ movhi -.L3659: - ldr r3, [sp, #4] - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L3669 - bl __stack_chk_fail -.L3669: - add sp, sp, #68 + strh r3, [r6, #836] @ movhi +.L3637: + add sp, sp, #48 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3676: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L3653: .align 2 -.L3675: - .word __stack_chk_guard +.L3652: .word .LANCHOR0 .word .LANCHOR2 + .word .LANCHOR5 .word .LC159 .word .LC160 - .word .LANCHOR5 .fnend .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .align 1 @@ -22619,45 +22328,43 @@ rk_ftl_garbage_collect: .type ftl_write, %function ftl_write: .fnstart - @ args = 0, pretend = 0, frame = 96 + @ args = 0, pretend = 0, frame = 88 @ 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 #100 - sub sp, sp, #100 - ldr r7, .L3752 + .pad #92 + sub sp, sp, #92 + ldr r9, .L3728+16 mov r8, r1 str r3, [sp, #12] - ldr r3, .L3752+4 str r2, [sp, #8] - ldr r3, [r3] - str r3, [sp, #92] - ldr r3, [r7, #4052] + ldr r3, [r9, #220] cmp r3, #0 - bne .L3721 - ldr r2, .L3752+8 + bne .L3697 + ldr r2, .L3728 ldr r2, [r2, #504] adds r2, r2, #1 - beq .L3722 + beq .L3698 cmp r0, #16 - bne .L3680 + bne .L3657 add r0, r1, #256 ldr r2, [sp, #12] ldr r1, [sp, #8] bl FtlVendorPartWrite - b .L3679 -.L3680: + b .L3656 +.L3657: + ldr r7, .L3728+4 ldr r3, [sp, #8] adds r6, r1, r3 - ldr r3, [r7, #1912] + ldr r3, [r7, #2424] cmp r6, r3 - bhi .L3723 - ldrh r4, [r7, #1878] + bhi .L3699 + ldrh r4, [r7, #2390] mov r3, #2048 - ldr r5, .L3752+12 + ldr r5, .L3728+8 mov r0, r1 mov r1, r4 - str r3, [r5, #3808] + str r3, [r5, #1000] bl __aeabi_uidiv mov r1, r4 mov fp, r0 @@ -22667,42 +22374,41 @@ ftl_write: str r0, [sp, #20] adds r3, r6, #1 str r3, [sp, #4] - ldr r3, .L3752+16 - ldr r1, [sp, #4] - ldr r2, [r3, #-32] - add r2, r2, r1 - ldr r1, [sp, #8] - str r2, [r3, #-32] - ldr r2, [r3, #-16] - cmp r1, r4, lsl #1 - add r2, r2, r1 - str r2, [r3, #-16] - mov r2, r1 - ldr r1, [r7, #1924] + ldr r2, [sp, #4] + ldr r3, [r9, #480] + add r3, r3, r2 + ldr r2, [sp, #8] + str r3, [r9, #480] + ldr r3, [r9, #496] + cmp r2, r4, lsl #1 + add r3, r3, r2 + str r3, [r9, #496] + mov r3, r2 + ldr r2, [r7, #2436] ite cs - movcs r2, #1 - movcc r2, #0 - str r2, [sp, #28] - cmp r1, #0 - beq .L3682 - movs r2, #36 - muls r2, r1, r2 - ldr r1, [r7, #1928] - subs r2, r2, #36 - add r9, r1, r2 - ldr r2, [r9, #16] - cmp fp, r2 - bne .L3683 - ldr r2, [r3, #-28] + movcs r3, #1 + movcc r3, #0 + str r3, [sp, #28] + cmp r2, #0 + beq .L3659 + movs r3, #36 + ldr r7, [r7, #2440] + muls r3, r2, r3 + subs r3, r3, #36 + add r7, r7, r3 + ldr r3, [r7, #16] + cmp fp, r3 + bne .L3660 + ldr r3, [r9, #484] mov r1, r4 mov r0, r8 - adds r2, r2, #1 - str r2, [r3, #-28] - ldr r3, [r5, #3812] adds r3, r3, #1 - str r3, [r5, #3812] + str r3, [r9, #484] + ldr r3, [r5, #1004] + adds r3, r3, #1 + str r3, [r5, #1004] bl __aeabi_uidivmod - ldr r0, [r9, #8] + ldr r0, [r7, #8] ldr r3, [sp, #8] subs r4, r4, r1 add r0, r0, r1, lsl #9 @@ -22710,14 +22416,14 @@ ftl_write: cmp r4, r3 it cs movcs r4, r3 - lsls r7, r4, #9 - mov r2, r7 + lsl r9, r4, #9 + mov r2, r9 bl ftl_memcpy - cbnz r6, .L3684 - ldr r3, [r5, #3812] + cbnz r6, .L3661 + ldr r3, [r5, #1004] cmp r3, #2 - ble .L3721 -.L3684: + ble .L3697 +.L3661: ldr r3, [sp, #8] add r8, r8, r4 add fp, fp, #1 @@ -22725,73 +22431,73 @@ ftl_write: subs r3, r3, r4 str r3, [sp, #8] ldr r3, [sp, #12] - add r3, r3, r7 + add r3, r3, r9 str r3, [sp, #12] -.L3683: +.L3660: movs r3, #0 - str r3, [r5, #3812] -.L3682: + str r3, [r5, #1004] +.L3659: mov r0, fp ldr r1, [sp, #20] bl FtlCacheMetchLpa - cbz r0, .L3685 + cbz r0, .L3662 bl FtlCacheWriteBack -.L3685: - ldr r4, .L3752 +.L3662: + ldr r4, .L3728+4 mov r6, fp - ldr r7, .L3752+20 + ldr r7, .L3728+12 mov r10, r4 - str r7, [r5, #3788] -.L3686: + str r7, [r5, #980] +.L3663: ldr r3, [sp, #4] - ldr r5, .L3752+16 + ldr r5, .L3728+16 cmp r3, #0 - beq .L3751 + beq .L3727 ldrh r3, [r7, #4] - cbnz r3, .L3687 - sub r2, r5, #200 - ldr r9, .L3752+8 + cbnz r3, .L3664 + add r2, r5, #312 + ldr r9, .L3728 cmp r7, r2 - bne .L3688 - ldrh r7, [r5, #-148] - cbnz r7, .L3689 - sub r0, r5, #152 + bne .L3665 + ldrh r7, [r5, #364] + cbnz r7, .L3666 + add r0, r5, #360 bl allocate_new_data_superblock - str r7, [r9, #3292] -.L3689: - ldr r0, .L3752+20 + str r7, [r9, #3356] +.L3666: + ldr r0, .L3728+12 bl allocate_new_data_superblock - ldr r3, [r9, #3292] - cbnz r3, .L3724 -.L3691: - ldr r7, .L3752+20 - b .L3690 -.L3688: - str r3, [r9, #3292] - ldrh r3, [r5, #-196] + ldr r3, [r9, #3356] + cbnz r3, .L3700 +.L3668: + ldr r7, .L3728+12 + b .L3667 +.L3665: + str r3, [r9, #3356] + ldrh r3, [r5, #316] cmp r3, #0 - bne .L3691 + bne .L3668 mov r0, r7 bl allocate_new_data_superblock - b .L3690 -.L3724: - ldr r7, .L3752+24 -.L3690: + b .L3667 +.L3700: + ldr r7, .L3728+20 +.L3667: ldrh r3, [r7, #4] - cbnz r3, .L3692 + cbnz r3, .L3669 mov r0, r7 bl allocate_new_data_superblock -.L3692: - ldr r3, .L3752+12 - str r7, [r3, #3788] -.L3687: - ldr r2, [r5, #1760] - ldr r3, [r4, #1924] +.L3669: + ldr r3, .L3728+8 + str r7, [r3, #980] +.L3664: + ldr r2, [r5, #3296] + ldr r3, [r4, #2436] ldrh ip, [r7, #4] subs r3, r2, r3 ldr r2, [sp, #4] cmp ip, r3 - ldr r9, .L3752+16 + ldr r9, .L3728+16 it cs movcs ip, r3 cmp ip, r2 @@ -22801,54 +22507,54 @@ ftl_write: str r3, [sp, #44] movs r3, #0 str r3, [sp, #24] -.L3693: +.L3670: ldr r3, [sp, #24] ldr r2, [sp, #44] cmp r3, r2 - beq .L3694 + beq .L3671 ldrh r3, [r7, #4] cmp r3, #0 - beq .L3694 + beq .L3671 ldr r3, [sp, #28] - cbz r3, .L3695 + cbz r3, .L3672 ldr r3, [sp, #20] cmp r6, r3 - bne .L3695 + bne .L3672 ldr r3, [sp, #24] - cbz r3, .L3695 + cbz r3, .L3672 ldr r3, [sp, #8] - ldrh r2, [r4, #1878] + ldrh r2, [r4, #2390] add r3, r8, r3 mls r3, r2, r6, r3 cmp r3, r2 - bne .L3694 -.L3695: - add r1, sp, #52 + bne .L3671 +.L3672: + add r1, sp, #48 movs r2, #0 mov r0, r6 movs r5, #36 bl log2phys mov r0, r7 bl get_new_active_ppa - ldr r3, [r4, #1924] - ldr r1, [r4, #1928] - ldrh r2, [r4, #1884] + ldr r3, [r4, #2436] + ldr r1, [r4, #2440] + ldrh r2, [r4, #2396] 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, #1808] + ldr r0, [r9, #3344] mov lr, r0 str r0, [sp, #40] ldr r0, [sp, #36] add r0, lr, r0, lsl #2 - ldrh lr, [r4, #1882] + ldrh lr, [r4, #2394] str r0, [sp, #16] str r0, [r1, #12] mul r3, r3, lr - ldr r0, [r9, #1788] + ldr r0, [r9, #3324] bic r3, r3, #3 add r3, r3, r0 ldr r0, [sp, #16] @@ -22856,21 +22562,21 @@ ftl_write: movs r1, #0 bl ftl_memset cmp r6, fp - beq .L3696 + beq .L3673 ldr r3, [sp, #20] cmp r6, r3 - bne .L3748 + bne .L3724 ldr r3, [sp, #8] add r5, r8, r3 - ldrh r3, [r4, #1878] + ldrh r3, [r4, #2390] smulbb r3, r3, r6 subs r5, r5, r3 movs r3, #0 str r3, [sp, #32] uxth r5, r5 - b .L3699 -.L3696: - ldrh r5, [r4, #1878] + b .L3676 +.L3673: + ldrh r5, [r4, #2390] mov r0, r8 mov r1, r5 bl __aeabi_uidivmod @@ -22880,10 +22586,10 @@ ftl_write: cmp r5, r3 it cs movcs r5, r3 -.L3699: - ldrh r3, [r4, #1878] +.L3676: + ldrh r3, [r4, #2390] cmp r5, r3 - bne .L3700 + bne .L3677 cmp r6, fp mov lr, #36 ittet ne @@ -22894,257 +22600,247 @@ ftl_write: it ne addne r1, r3, r1, lsl #9 ldr r3, [sp, #28] - cbz r3, .L3702 - ldr r2, [r10, #1924] - ldr r5, [r10, #1928] + cbz r3, .L3679 + ldr r2, [r10, #2436] + ldr r5, [r10, #2440] mla r2, lr, r2, r5 str r1, [r2, #8] - b .L3703 -.L3702: - ldr r0, [r10, #1928] - ldr r3, [r10, #1924] - ldrh r2, [r10, #1882] + b .L3680 +.L3679: + ldr r0, [r10, #2440] + ldr r3, [r10, #2436] + ldrh r2, [r10, #2394] mla r3, lr, r3, r0 ldr r0, [r3, #8] - b .L3749 -.L3753: - .align 2 -.L3752: - .word .LANCHOR0 - .word __stack_chk_guard - .word .LANCHOR1 - .word .LANCHOR5 - .word .LANCHOR2 - .word .LANCHOR2-200 - .word .LANCHOR2-152 -.L3700: - ldr r2, [sp, #52] + b .L3725 +.L3677: + ldr r2, [sp, #48] movs r3, #36 adds r1, r2, #1 - beq .L3704 - ldr r1, [r4, #1928] - add r0, sp, #56 - str r2, [sp, #60] - ldr r2, [r4, #1924] - str r6, [sp, #72] + beq .L3681 + ldr r1, [r4, #2440] + add r0, sp, #52 + str r2, [sp, #56] + ldr r2, [r4, #2436] + str r6, [sp, #68] mla r3, r3, r2, r1 movs r1, #1 ldr r2, [r3, #8] ldr r3, [r3, #12] - str r2, [sp, #64] + str r2, [sp, #60] movs r2, #0 - str r3, [sp, #68] + str r3, [sp, #64] bl FlashReadPages - ldr r3, [sp, #56] + ldr r3, [sp, #52] adds r3, r3, #1 - bne .L3705 - ldr r3, [r9, #164] + bne .L3682 + ldr r3, [r9, #676] adds r3, r3, #1 - str r3, [r9, #164] - b .L3707 -.L3705: + str r3, [r9, #676] + b .L3684 +.L3729: + .align 2 +.L3728: + .word .LANCHOR1 + .word .LANCHOR0 + .word .LANCHOR5 + .word .LANCHOR2+312 + .word .LANCHOR2 + .word .LANCHOR2+360 +.L3682: ldr r3, [sp, #16] ldr r3, [r3, #8] cmp r3, r6 - beq .L3707 - ldr r3, [r9, #164] + beq .L3684 + ldr r3, [r9, #676] mov r2, r6 - ldr r0, .L3754 + ldr r0, .L3730 adds r3, r3, #1 - str r3, [r9, #164] + str r3, [r9, #676] ldr r3, [sp, #16] ldr r1, [r3, #8] bl printk - b .L3707 -.L3704: - ldr r1, [r4, #1928] - ldr r2, [r4, #1924] + b .L3684 +.L3681: + ldr r1, [r4, #2440] + ldr r2, [r4, #2436] mla r2, r3, r2, r1 movs r1, #0 ldr r0, [r2, #8] - ldrh r2, [r4, #1882] + ldrh r2, [r4, #2394] bl ftl_memset -.L3707: +.L3684: cmp r6, fp mov lr, #36 lsl r2, r5, #9 - bne .L3708 - ldr r1, [r4, #1924] - ldr r5, [r4, #1928] + bne .L3685 + ldr r1, [r4, #2436] + ldr r5, [r4, #2440] ldr r3, [sp, #32] mla r1, lr, r1, r5 ldr r0, [r1, #8] ldr r1, [sp, #12] add r0, r0, r3, lsl #9 - b .L3749 -.L3708: - ldr r0, [r4, #1928] - ldr r3, [r4, #1924] - ldrh r1, [r4, #1878] + b .L3725 +.L3685: + ldr r0, [r4, #2440] + ldr r3, [r4, #2436] + ldrh r1, [r4, #2390] 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 .L3749 -.L3748: + b .L3725 +.L3724: ldr r3, [sp, #28] - cbz r3, .L3709 - ldr r3, [r4, #1924] - ldr r2, [r4, #1928] + cbz r3, .L3686 + ldr r3, [r4, #2436] + ldr r2, [r4, #2440] mla r5, r5, r3, r2 - ldrh r3, [r4, #1878] + ldrh r3, [r4, #2390] ldr r2, [sp, #12] muls r3, r6, r3 rsb r3, r8, r3 add r3, r2, r3, lsl #9 str r3, [r5, #8] - b .L3703 -.L3709: - ldr r2, [r4, #1928] - ldr r3, [r4, #1924] - ldrh r1, [r4, #1878] + b .L3680 +.L3686: + ldr r2, [r4, #2440] + ldr r3, [r4, #2436] + ldrh r1, [r4, #2390] mla r3, r5, r3, r2 - ldrh r2, [r4, #1882] + ldrh r2, [r4, #2394] muls r1, r6, r1 ldr r0, [r3, #8] rsb r1, r8, r1 ldr r3, [sp, #12] add r1, r3, r1, lsl #9 -.L3749: +.L3725: bl ftl_memcpy -.L3703: +.L3680: 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, #-4] + ldr r3, [r9, #508] str r3, [r2, #4] adds r3, r3, #1 adds r2, r3, #1 ldr r2, [sp, #16] it eq moveq r3, #0 - str r3, [r9, #-4] + str r3, [r9, #508] ldr r3, [sp, #16] str r6, [r3, #8] adds r6, r6, #1 - ldr r3, [sp, #52] + ldr r3, [sp, #48] str r3, [r2, #12] ldrh r3, [r7] strh r3, [r2, #2] @ movhi - ldr r3, [r4, #1924] + ldr r3, [r4, #2436] adds r3, r3, #1 - str r3, [r4, #1924] + str r3, [r4, #2436] ldr r3, [sp, #24] adds r3, r3, #1 str r3, [sp, #24] - b .L3693 -.L3694: + b .L3670 +.L3671: ldr r3, [sp, #4] ldr r2, [sp, #24] subs r3, r3, r2 str r3, [sp, #4] - ldr r3, .L3754+4 - ldr r2, [r10, #1924] - ldr r3, [r3, #1760] + ldr r3, .L3730+4 + ldr r2, [r10, #2436] + ldr r3, [r3, #3296] cmp r2, r3 - bcs .L3713 + bcs .L3690 ldr r3, [sp, #28] - cbnz r3, .L3713 + cbnz r3, .L3690 ldrh r3, [r7, #4] - cbz r3, .L3713 -.L3715: + cbz r3, .L3690 +.L3692: movs r3, #0 str r3, [sp, #28] - b .L3686 -.L3713: + b .L3663 +.L3690: bl FtlCacheWriteBack movs r3, #0 - str r3, [r10, #1924] + str r3, [r10, #2436] ldr r3, [sp, #4] cmp r3, #1 - bhi .L3686 - b .L3715 -.L3751: + bhi .L3663 + b .L3692 +.L3727: mov r0, r3 ldr r3, [sp, #20] rsb r1, fp, r3 bl ftl_do_gc - ldrh r3, [r5, #-204] + ldrh r3, [r5, #308] cmp r3, #5 - bls .L3727 + bls .L3703 cmp r3, #31 - bhi .L3721 - ldr r3, .L3754+8 + bhi .L3697 + ldr r3, .L3730+8 ldrb r3, [r3] @ zero_extendqisi2 - cbnz r3, .L3721 -.L3727: + cbnz r3, .L3697 +.L3703: ldr r4, [sp, #4] + mov r8, #128 + ldr r6, .L3730+4 movw r7, #65535 - ldr r6, .L3754+4 - ldr r8, .L3754+8 -.L3740: - ldrh r3, [r5, #40] +.L3716: + ldrh r3, [r5, #552] cmp r3, r7 - bne .L3719 - ldrh r3, [r6, #658] + bne .L3696 + ldrh r3, [r6, #1170] cmp r3, r7 - bne .L3719 - ldrh r3, [r6, #660] + bne .L3696 + ldrh r3, [r6, #1172] cmp r3, r7 - bne .L3719 + bne .L3696 and r0, r4, #7 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3719: +.L3696: movs r0, #1 - movs r3, #128 - strh r3, [r5, #606] @ movhi + strh r8, [r5, #1118] @ movhi + strh r8, [r5, #1116] @ movhi mov r1, r0 - strh r3, [r5, #604] @ movhi bl ftl_do_gc movs r0, #0 movs r1, #1 bl ftl_do_gc - ldr r3, [r8, #4052] - cbnz r3, .L3721 - ldrh r3, [r6, #-204] + ldr r3, [r5, #220] + cbnz r3, .L3697 + ldrh r3, [r6, #308] cmp r3, #2 - bhi .L3721 + bhi .L3697 adds r4, r4, #1 cmp r4, #256 - bne .L3740 - b .L3721 -.L3723: + bne .L3716 + b .L3697 +.L3699: mov r0, #-1 - b .L3679 -.L3721: + b .L3656 +.L3697: movs r0, #0 - b .L3679 -.L3722: + b .L3656 +.L3698: mov r0, r3 -.L3679: - ldr r3, .L3754+12 - ldr r2, [sp, #92] - ldr r3, [r3] - cmp r2, r3 - beq .L3720 - bl __stack_chk_fail -.L3720: - add sp, sp, #100 +.L3656: + add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3755: +.L3731: .align 2 -.L3754: +.L3730: .word .LC161 .word .LANCHOR2 .word .LANCHOR0 - .word __stack_chk_guard .fnend .size ftl_write, .-ftl_write .align 1 @@ -23183,25 +22879,25 @@ FlashBootVendorWrite: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L3760 + ldr r3, .L3736 ldr r3, [r3, #504] cmp r3, #1 - bne .L3759 + bne .L3735 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_write mov r4, r0 - b .L3758 -.L3759: + b .L3734 +.L3735: mov r4, #-1 -.L3758: +.L3734: bl rknand_device_unlock mov r0, r4 pop {r4, r5, r6, pc} -.L3761: +.L3737: .align 2 -.L3760: +.L3736: .word .LANCHOR1 .fnend .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -23261,30 +22957,30 @@ FtlDumpSysBlock: push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} lsl r8, r0, #10 - ldr r4, .L3772 + ldr r5, .L3748 .pad #28 sub sp, sp, #28 - ldr r7, .L3772+4 - movs r5, #0 + ldr r4, .L3748+4 + mov r9, #0 + ldr r7, .L3748+8 mov r6, r0 - ldr r3, [r4, #1776] - mov r9, r4 - str r3, [r4, #4060] - ldr r3, [r4, #1800] - str r3, [r4, #4064] -.L3765: - ldrh r2, [r7, #1874] - sxth r3, r5 + ldr r3, [r5, #3312] + str r3, [r4, #1252] + ldr r3, [r5, #3336] + str r3, [r4, #1256] +.L3741: + ldrh r2, [r7, #2386] + sxth r3, r9 cmp r3, r2 - bge .L3771 + bge .L3747 movs r1, #1 - ldr r0, .L3772+8 + ldr r0, .L3748+12 orr r3, r3, r8 - str r3, [r4, #4056] + str r3, [r4, #1248] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #4064] - ldr r0, .L3772+12 + ldr r3, [r4, #1256] + ldr r0, .L3748+16 mov r1, r6 ldr r2, [r3] str r2, [sp] @@ -23293,35 +22989,36 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #4052] + ldr r2, [r4, #1244] str r3, [sp, #12] - ldr r3, [r4, #4060] + ldr r3, [r4, #1252] ldr r3, [r3] str r3, [sp, #16] - ldr r3, [r4, #4056] + ldr r3, [r4, #1248] bl printk - ldr r3, [r4, #4064] + ldr r3, [r4, #1256] ldr r3, [r3] adds r3, r3, #1 - beq .L3766 - ldr r0, .L3772+16 + beq .L3742 + ldr r0, .L3748+20 movs r2, #4 - ldr r1, [r9, #1776] + ldr r1, [r5, #3312] mov r3, #768 bl rknand_print_hex -.L3766: - adds r5, r5, #1 - b .L3765 -.L3771: +.L3742: + add r9, r9, #1 + b .L3741 +.L3747: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3773: +.L3749: .align 2 -.L3772: +.L3748: .word .LANCHOR2 + .word .LANCHOR4 .word .LANCHOR0 - .word .LANCHOR2+4052 + .word .LANCHOR4+1244 .word .LC162 .word .LC163 .fnend @@ -23339,29 +23036,29 @@ dump_map_info: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r5, .L3792 - add fp, r5, #1832 - ldrh r7, [r5, #1812] - mov r9, r5 -.L3775: - ldrh r3, [r5, #1814] - ldr r4, .L3792+4 + ldr r4, .L3768 + addw fp, r4, #2344 + ldrh r7, [r4, #2324] + mov r9, r4 +.L3751: + ldrh r3, [r4, #2326] + ldr r6, .L3768+4 cmp r3, r7 - bls .L3789 - ldr r1, [r4, #632] + bls .L3765 + ldr r1, [r6, #1144] mov r8, #0 - ldrh ip, [r9, #1804] + ldrh ip, [r9, #2316] mov r10, #36 - ldr r2, [r4, #1764] - mov r6, r8 + ldr r2, [r6, #3300] + mov r5, r8 str r1, [sp, #24] - ldr r3, [r4, #628] - ldrh r1, [r9, #1884] + ldr r3, [r6, #1140] + ldrh r1, [r9, #2396] str r1, [sp, #28] -.L3785: +.L3761: uxth r1, r8 cmp r1, ip - bcs .L3790 + bcs .L3766 mov r1, r7 ldrb r0, [fp, r8] @ zero_extendqisi2 str r3, [sp, #44] @@ -23374,38 +23071,38 @@ dump_map_info: ldr ip, [sp, #36] ldr r2, [sp, #40] ldr r3, [sp, #44] - cbnz r0, .L3776 - mla r0, r10, r6, r2 + cbnz r0, .L3752 + mla r0, r10, r5, r2 lsls r1, r1, #10 str r1, [r0, #4] ldr r1, [sp, #28] - muls r1, r6, r1 - add r6, r6, #1 + muls r1, r5, r1 + add r5, r5, #1 it mi addmi r1, r1, #3 bic lr, r1, #3 ldr r1, [sp, #24] - uxth r6, r6 + uxth r5, r5 str r3, [r0, #8] add r1, r1, lr str r1, [r0, #12] -.L3776: +.L3752: add r8, r8, #1 - b .L3785 -.L3790: - cbz r6, .L3780 - ldr r0, [r4, #1764] - mov r1, r6 + b .L3761 +.L3766: + cbz r5, .L3756 + ldr r0, [r6, #3300] + mov r1, r5 movs r2, #1 mov r8, #0 bl FlashReadPages mov r10, #36 -.L3781: +.L3757: uxth r3, r8 - cmp r3, r6 - bcs .L3780 - ldr r3, [r4, #1764] - ldr r0, .L3792+8 + cmp r3, r5 + bcs .L3756 + ldr r3, [r6, #3300] + ldr r0, .L3768+8 mla r3, r10, r8, r3 add r8, r8, #1 adds r2, r3, #4 @@ -23423,85 +23120,87 @@ dump_map_info: str r3, [sp, #16] ldr r3, [lr] bl printk - b .L3781 -.L3780: + b .L3757 +.L3756: adds r7, r7, #1 uxth r7, r7 - b .L3775 -.L3789: + b .L3751 +.L3765: + ldr r7, .L3768+12 mov r8, #0 -.L3784: - ldrh r3, [r4, #1912] - sxth r6, r8 - ldr r7, .L3792+4 - cmp r6, r3 - bge .L3787 - lsls r6, r6, #1 - movs r7, #0 -.L3788: - ldrh r2, [r5, #1874] - sxth r3, r7 - adds r7, r7, #1 +.L3760: + ldrh r2, [r6, #3448] + sxth r3, r8 + ldr r5, .L3768+4 cmp r3, r2 - bge .L3791 - ldr r2, [r4, #1828] + bge .L3763 + lsls r5, r3, #1 + mov r9, #0 +.L3764: + ldrh r2, [r4, #2386] + sxth r3, r9 + add r9, r9, #1 + cmp r3, r2 + bge .L3767 + ldr r2, [r6, #3364] movs r1, #1 - ldr r0, .L3792+12 - ldrh r2, [r2, r6] + ldr r0, .L3768+16 + ldrh r2, [r2, r5] orr r3, r3, r2, lsl #10 mov r2, r1 - str r3, [r4, #4056] + str r3, [r7, #1248] bl FlashReadPages - ldr r3, [r4, #4064] - ldr r1, [r4, #1828] - ldr r2, [r4, #4060] + ldr r3, [r7, #1256] + ldr r1, [r6, #3364] + ldr r2, [r7, #1252] ldr r0, [r3] - ldrh r1, [r1, r6] + ldrh r1, [r1, r5] str r0, [sp] ldr r0, [r3, #4] str r0, [sp, #4] ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L3792+16 + ldr r0, .L3768+20 str r3, [sp, #12] ldr r3, [r2] str r3, [sp, #16] ldr r3, [r2, #4] - ldr r2, [r4, #4052] str r3, [sp, #20] - ldr r3, [r4, #4056] + ldr r2, [r7, #1244] + ldr r3, [r7, #1248] bl printk - b .L3788 -.L3791: + b .L3764 +.L3767: add r8, r8, #1 - b .L3784 -.L3787: - ldr r1, [r7, #1828] + b .L3760 +.L3763: + ldr r1, [r5, #3364] movs r2, #2 - ldr r3, [r5, #1900] - ldr r0, .L3792+20 + ldr r3, [r4, #2412] + ldr r0, .L3768+24 bl rknand_print_hex - ldr r1, [r7, #1848] - ldrh r3, [r5, #1908] + ldr r1, [r5, #3384] + ldrh r3, [r4, #2420] movs r2, #4 - ldr r0, .L3792+24 + ldr r0, .L3768+28 bl rknand_print_hex - ldr r0, .L3792+28 - ldr r1, [r7, #1852] + ldr r0, .L3768+32 + ldr r1, [r5, #3388] movs r2, #4 - ldrh r3, [r5, #1908] + ldrh r3, [r4, #2420] add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} b rknand_print_hex -.L3793: +.L3769: .align 2 -.L3792: +.L3768: .word .LANCHOR0 .word .LANCHOR2 .word .LC164 - .word .LANCHOR2+4052 + .word .LANCHOR4 + .word .LANCHOR4+1244 .word .LC111 .word .LC165 .word .LC166 @@ -23518,17 +23217,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, .L3796 - ldr r2, [r3, #1744] - ldr r3, .L3796+4 + ldr r3, .L3772 + ldr r2, [r3, #2256] + ldr r3, .L3772+4 cmp r2, r3 - bne .L3794 + bne .L3770 b flash_enter_slc_mode -.L3794: +.L3770: bx lr -.L3797: +.L3773: .align 2 -.L3796: +.L3772: .word .LANCHOR0 .word 1446522928 .fnend @@ -23543,17 +23242,17 @@ flash_boot_exit_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L3800 - ldr r2, [r3, #1744] - ldr r3, .L3800+4 + ldr r3, .L3776 + ldr r2, [r3, #2256] + ldr r3, .L3776+4 cmp r2, r3 - bne .L3798 + bne .L3774 b flash_exit_slc_mode -.L3798: +.L3774: bx lr -.L3801: +.L3777: .align 2 -.L3800: +.L3776: .word .LANCHOR0 .word 1446522928 .fnend @@ -23569,14 +23268,14 @@ IdBlockReadData: 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, .L3810 + ldr r4, .L3786 mov r8, r1 .pad #20 sub sp, sp, #20 mov r1, r6 mov fp, r2 - ldr r0, .L3810+4 - ldr r3, [r4, #692] + ldr r0, .L3786+4 + ldr r3, [r4, #1204] mov r2, r8 movs r7, #0 ldrb r9, [r3, #9] @ zero_extendqisi2 @@ -23592,9 +23291,9 @@ IdBlockReadData: subs r3, r6, r1 str r3, [sp] ubfx ip, ip, #2, #2 -.L3803: +.L3779: cmp r7, r8 - bcs .L3809 + bcs .L3785 add r2, r7, r10 ldrb r1, [r4, #140] @ zero_extendqisi2 ubfx r2, r2, #2, #16 @@ -23602,27 +23301,27 @@ IdBlockReadData: add r3, r4, r2, lsl #1 uxth r5, r5 ldrh r3, [r3, #144] - cbz r1, .L3804 - ldr r1, .L3810 - ldr r0, .L3810+8 - ldr r1, [r1, #1744] + cbz r1, .L3780 + ldr r1, .L3786 + ldr r0, .L3786+8 + ldr r1, [r1, #2256] cmp r1, r0 it eq moveq r3, r2 -.L3804: +.L3780: ldr r2, [sp] add r7, r7, r5 add r2, ip, r2 - ldrb ip, [r4, #1792] @ zero_extendqisi2 + ldrb ip, [r4, #2304] @ zero_extendqisi2 uxth r7, r7 mla r3, r9, r3, r2 - ldr r2, [r4, #692] + ldr r2, [r4, #1204] str ip, [sp, #4] ldrb r1, [r2, #9] @ zero_extendqisi2 str r3, [sp, #12] - ldr r3, .L3810+12 + ldr r3, .L3786+12 str r1, [sp, #8] - ldrb r0, [r3, #4014] @ zero_extendqisi2 + ldrb r0, [r3, #1206] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 bl flash_boot_enter_slc_mode @@ -23642,24 +23341,24 @@ IdBlockReadData: mov r0, ip bl FlashBchSel mov ip, #0 - b .L3803 -.L3809: + b .L3779 +.L3785: mov r1, r6 mov r2, r8 movs r3, #0 - ldr r0, .L3810+16 + 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} -.L3811: +.L3787: .align 2 -.L3810: +.L3786: .word .LANCHOR0 .word .LC168 .word 1446522928 - .word .LANCHOR2 + .word .LANCHOR4 .word .LC169 .fnend .size IdBlockReadData, .-IdBlockReadData @@ -23670,41 +23369,38 @@ IdBlockReadData: .type write_idblock, %function write_idblock: .fnstart - @ args = 0, pretend = 0, frame = 120 + @ args = 0, pretend = 0, frame = 112 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3855 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #132 - sub sp, sp, #132 - ldr r3, [r3] mov r4, r0 - ldr r7, .L3855+4 + ldr r7, .L3830 + .pad #124 + sub sp, sp, #124 mov r0, #256000 mov r6, r1 mov r5, r2 - str r3, [sp, #124] - ldr r3, [r7, #692] + ldr r3, [r7, #1204] ldr r8, [r7, #4] ldrb r10, [r3, #9] @ zero_extendqisi2 bl ftl_malloc str r0, [sp, #8] cmp r0, #0 - beq .L3837 + beq .L3812 addw r4, r4, #511 lsrs r4, r4, #9 cmp r4, #8 - bls .L3835 + bls .L3810 cmp r4, #500 - bhi .L3837 - b .L3814 -.L3835: + bhi .L3812 + b .L3790 +.L3810: movs r4, #8 -.L3814: +.L3790: ldr r2, [r6] - ldr r3, .L3855+8 + ldr r3, .L3830+4 cmp r2, r3 - bne .L3837 + bne .L3812 smulbb r3, r10, r8 uxth r9, r3 add r0, r9, #-1 @@ -23716,9 +23412,9 @@ write_idblock: str r0, [sp, #28] add r0, r6, #254976 add r0, r0, #512 -.L3818: +.L3794: ldr r1, [r0, #-4]! - cbnz r1, .L3815 + cbnz r1, .L3791 ldr r1, [r6, r3, lsl #2] adds r3, r3, #1 cmp r3, #4096 @@ -23727,32 +23423,32 @@ write_idblock: movhi r3, #0 cmp r2, #4096 str r1, [r0, #512] - bne .L3818 - b .L3817 -.L3815: - ldr r0, .L3855+12 + bne .L3794 + b .L3793 +.L3791: + ldr r0, .L3830+8 bl printk -.L3817: +.L3793: mov r1, r5 movs r3, #5 - ldr r0, .L3855+16 + ldr r0, .L3830+12 movs r2, #4 bl rknand_print_hex ldrb r2, [r7, #1] @ zero_extendqisi2 ldr r1, [r6, #512] subs r5, r5, #4 - ldr r0, .L3855+20 + ldr r0, .L3830+16 bl printk - ldr r2, .L3855+24 + ldr r2, .L3830+20 ldrh r3, [r7, #138] mov r1, r4 - ldr r0, .L3855+28 - ldr r2, [r2, #4008] + ldr r0, .L3830+24 + ldr r2, [r2, #1200] str r2, [sp] mov r2, r4 bl printk ldrb r3, [r7, #1] @ zero_extendqisi2 - ldr r7, .L3855+4 + ldr r7, .L3830 ldr r2, [r6, #512] cmp r2, r3 it hi @@ -23762,34 +23458,34 @@ write_idblock: movs r3, #0 str r3, [sp, #16] str r3, [sp, #12] -.L3832: +.L3808: ldr r2, [r5, #4] ldrb r3, [r7, #1] @ zero_extendqisi2 - ldr r10, .L3855+4 + ldr r10, .L3830 cmp r2, r3 - bcs .L3820 - ldr r3, .L3855+24 - ldr r3, [r3, #4008] + bcs .L3796 + ldr r3, .L3830+20 + ldr r3, [r3, #1200] cmp r2, r3 - bcc .L3820 + bcc .L3796 ldr r3, [sp, #28] cmp r3, #1 - bls .L3821 + bls .L3797 ldr r3, [sp, #12] - cbz r3, .L3821 + cbz r3, .L3797 ldr r3, [r5] adds r3, r3, #1 cmp r2, r3 - beq .L3820 -.L3821: + beq .L3796 +.L3797: movs r1, #0 mov r2, #512 ldr r0, [sp, #8] bl memset ldr r3, [r5, #4] - ldr r0, .L3855+32 + ldr r0, .L3830+28 mul r8, r3, r9 - ldr r3, [r10, #692] + ldr r3, [r10, #1204] ldrb r3, [r3, #9] @ zero_extendqisi2 mov r1, r8 str r3, [sp, #20] @@ -23809,19 +23505,19 @@ write_idblock: mov r2, r0 bl FlashEraseBlock cmp r4, r10 - bls .L3838 + bls .L3813 movs r0, #0 add r1, r8, r10 mov fp, #2 mov r2, r0 bl FlashEraseBlock - b .L3822 -.L3838: + b .L3798 +.L3813: mov fp, #1 -.L3822: +.L3798: movs r0, #0 bl flash_boot_exit_slc_mode - ldr r3, [r7, #692] + ldr r3, [r7, #1204] ldrh r0, [r3, #10] ldrb r1, [r3, #12] @ zero_extendqisi2 lsls r0, r0, #2 @@ -23836,63 +23532,63 @@ write_idblock: rsb r3, r1, r8 str r6, [sp, #24] str r3, [sp, #36] -.L3823: +.L3799: ldr r3, [sp, #44] cmp r10, r3 - bcs .L3854 + bcs .L3829 add r2, r10, ip ubfx r2, r2, #2, #16 - cbz r2, .L3824 + 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, .L3825 - ldr r1, [r7, #1744] - ldr r0, .L3855+36 + cbz r1, .L3801 + ldr r1, [r7, #2256] + ldr r0, .L3830+32 cmp r1, r0 it eq moveq fp, r3 -.L3825: +.L3801: add fp, fp, #1073741824 add fp, fp, #-1 lsl r3, fp, #2 - str r3, [sp, #60] -.L3824: + str r3, [sp, #56] +.L3800: movw r3, #61424 - str r3, [sp, #64] + str r3, [sp, #60] add r3, r7, r2, lsl #1 ldrh fp, [r3, #144] ldrb r3, [r7, #140] @ zero_extendqisi2 - cbz r3, .L3826 - ldr r3, [r7, #1744] - ldr r1, .L3855+36 + cbz r3, .L3802 + ldr r3, [r7, #2256] + ldr r1, .L3830+32 cmp r3, r1 it eq moveq fp, r2 -.L3826: +.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, .L3855+4 - ldrb r3, [r3, #1792] @ zero_extendqisi2 + ldr r3, .L3830 + ldrb r3, [r3, #2304] @ zero_extendqisi2 str r2, [sp, #48] str r3, [sp, #40] - ldr r3, .L3855+24 - ldrb r0, [r3, #4014] @ zero_extendqisi2 + ldr r3, .L3830+20 + ldrb r0, [r3, #1206] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 bl flash_boot_enter_slc_mode - ldr r3, .L3855+4 - ldr r3, [r3, #692] + ldr r3, .L3830 + ldr r3, [r3, #1204] ldrb r1, [r3, #9] @ zero_extendqisi2 ldr r2, [sp, #48] mov r0, r2 bl __aeabi_uidiv - add r3, sp, #60 + add r3, sp, #56 mov r1, r0 ldr r2, [sp, #24] movs r0, #0 @@ -23913,25 +23609,24 @@ write_idblock: ldr ip, [sp, #52] add r3, r3, #2048 str r3, [sp, #24] - b .L3823 -.L3856: + b .L3799 +.L3831: .align 2 -.L3855: - .word __stack_chk_guard +.L3830: .word .LANCHOR0 .word -52655045 .word .LC170 .word .LC171 .word .LC172 - .word .LANCHOR2 + .word .LANCHOR4 .word .LC173 .word .LC174 .word 1446522928 -.L3854: +.L3829: mov r1, r8 movs r3, #0 mov r2, r4 - ldr r0, .L3857 + ldr r0, .L3832 bl printk ldr r0, [r5, #4] mov r1, r4 @@ -23941,7 +23636,7 @@ write_idblock: bl IdBlockReadData mov r3, r6 ldr r0, [sp, #8] -.L3831: +.L3807: mov fp, r0 mov r10, r3 ldr r1, [fp] @@ -23949,13 +23644,13 @@ write_idblock: ldr r2, [r10] adds r3, r3, #4 cmp r1, r2 - beq .L3828 + beq .L3804 movs r1, #0 mov r2, #512 ldr r0, [sp, #8] bl memset ldr r3, [fp] - ldr r0, .L3857+4 + ldr r0, .L3832+4 str r3, [sp] ldr r3, [r10] bic r10, r8, #255 @@ -23965,13 +23660,13 @@ write_idblock: mov r3, r8 ldr r2, [r5, #4] bl printk - ldr r0, .L3857+8 + ldr r0, .L3832+8 add r1, r6, r10 movs r2, #4 mov r3, #256 bl rknand_print_hex movs r2, #4 - ldr r0, .L3857+12 + ldr r0, .L3832+12 ldr r3, [sp, #8] add r1, r3, r10 mov r3, #256 @@ -23985,67 +23680,59 @@ write_idblock: bl FlashEraseBlock ldr r3, [sp, #28] cmp r3, #1 - bls .L3829 + bls .L3805 ldr r1, [r5, #4] movs r0, #0 mov r2, r0 mla r1, r1, r9, r9 bl FlashEraseBlock -.L3829: +.L3805: movs r0, #0 bl flash_boot_exit_slc_mode - ldr r0, .L3857+16 + ldr r0, .L3832+16 ldr r1, [r5, #4] bl printk ldr r3, [sp, #32] cmp r8, r3 - bcc .L3820 - b .L3830 -.L3828: + bcc .L3796 + b .L3806 +.L3804: ldr r2, [sp, #32] add r8, r8, #1 cmp r8, r2 - bne .L3831 -.L3830: + bne .L3807 +.L3806: ldr r3, [sp, #16] adds r3, r3, #1 str r3, [sp, #16] -.L3820: +.L3796: ldr r3, [sp, #12] adds r5, r5, #4 adds r3, r3, #1 str r3, [sp, #12] cmp r3, #5 - bne .L3832 + bne .L3808 ldr r0, [sp, #8] bl ftl_free ldr r3, [sp, #16] clz r0, r3 lsrs r0, r0, #5 negs r0, r0 - b .L3813 -.L3837: + b .L3789 +.L3812: mov r0, #-1 -.L3813: - ldr r3, .L3857+20 - ldr r2, [sp, #124] - ldr r3, [r3] - cmp r2, r3 - beq .L3833 - bl __stack_chk_fail -.L3833: - add sp, sp, #132 +.L3789: + add sp, sp, #124 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3858: +.L3833: .align 2 -.L3857: +.L3832: .word .LC175 .word .LC176 .word .LC177 .word .LC178 .word .LC179 - .word __stack_chk_guard .fnend .size write_idblock, .-write_idblock .align 1 @@ -24060,23 +23747,23 @@ CRC_32: push {r4, lr} .save {r4, lr} add r1, r1, r0 - ldr r4, .L3863 + ldr r4, .L3838 movs r2, #0 -.L3860: +.L3835: cmp r0, r1 - beq .L3862 + beq .L3837 ldrb r3, [r0], #1 @ zero_extendqisi2 eor r3, r3, r2, lsr #24 add r3, r4, r3, lsl #2 - ldr r3, [r3, #3296] + ldr r3, [r3, #3360] eor r2, r3, r2, lsl #8 - b .L3860 -.L3862: + b .L3835 +.L3837: mov r0, r2 pop {r4, pc} -.L3864: +.L3839: .align 2 -.L3863: +.L3838: .word .LANCHOR1 .fnend .size CRC_32, .-CRC_32 @@ -24087,105 +23774,101 @@ CRC_32: .type write_loader_lba, %function write_loader_lba: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ args = 0, pretend = 0, frame = 40 @ 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} cmp r0, #64 - ldr r6, .L3888 - .pad #56 - sub sp, sp, #56 + push {r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} mov r5, r0 - mov r7, r1 - mov r9, r2 - ldr r4, .L3888+4 - ldr r3, [r6] - str r3, [sp, #52] - bne .L3866 + .pad #52 + sub sp, sp, #52 + mov r6, r1 + mov r8, r2 + ldr r4, .L3862 + bne .L3841 ldr r2, [r2] - ldr r3, .L3888+8 + ldr r3, .L3862+4 cmp r2, r3 - bne .L3866 + bne .L3841 mov r0, #256000 movs r3, #1 - strb r3, [r4, #3816] + strb r3, [r4, #1008] bl ftl_malloc movs r1, #0 mov r2, #256000 - str r0, [r4, #3820] + str r0, [r4, #1012] bl ftl_memset - str r5, [r4, #3824] -.L3866: - str r7, [sp] + str r5, [r4, #1016] +.L3841: + str r6, [sp] mov r3, r5 - ldr r0, .L3888+12 - ldr r1, [r4, #3820] - ldr r2, [r9] + ldr r0, .L3862+8 + ldr r1, [r4, #1012] + ldr r2, [r8] bl printk - ldrb r3, [r4, #3816] @ zero_extendqisi2 - ldr r10, .L3888+4 + ldrb r3, [r4, #1008] @ zero_extendqisi2 + ldr r9, .L3862 cmp r3, #0 - beq .L3865 + beq .L3840 sub r0, r5, #64 - ldr r8, [r10, #3820] + ldr r7, [r9, #1012] cmp r0, #500 - bcs .L3868 + bcs .L3843 rsb r2, r5, #564 - add r0, r8, r0, lsl #9 - cmp r2, r7 - mov r1, r9 + add r0, r7, r0, lsl #9 + cmp r2, r6 + mov r1, r8 it cs - movcs r2, r7 + movcs r2, r6 lsls r2, r2, #9 bl ftl_memcpy - b .L3869 -.L3868: + b .L3844 +.L3843: cmp r5, #564 - bcs .L3877 -.L3869: - ldr r3, [r4, #3824] + bcs .L3852 +.L3844: + ldr r3, [r4, #1016] cmp r3, r5 - beq .L3875 - ldr r2, .L3888+4 + beq .L3850 + ldr r2, .L3862 movs r3, #0 - mov r9, r3 - strb r3, [r2, #3816] - cmp r8, #0 - beq .L3876 - mov r0, r8 + mov r8, r3 + strb r3, [r2, #1008] + cbz r7, .L3851 + mov r0, r7 bl ftl_free -.L3876: - str r9, [r4, #3820] -.L3875: - add r5, r5, r7 - str r5, [r4, #3824] - b .L3865 -.L3877: - ldr r3, .L3888+16 - ldr r0, [r10, #3824] - ldr r3, [r3, #692] +.L3851: + str r8, [r4, #1012] +.L3850: + add r5, r5, r6 + str r5, [r4, #1016] + b .L3840 +.L3852: + ldr r3, .L3862+12 + ldr r0, [r9, #1016] + ldr r3, [r3, #1204] subs r0, r0, #64 cmp r0, #500 it cs movcs r0, #500 ldrb r3, [r3, #9] @ zero_extendqisi2 cmp r3, #4 - beq .L3879 + beq .L3853 movs r3, #2 - str r3, [sp, #12] + str r3, [sp, #8] movs r3, #3 - str r3, [sp, #16] + str r3, [sp, #12] movs r3, #4 - str r3, [sp, #20] + str r3, [sp, #16] movs r3, #5 - str r3, [sp, #24] + str r3, [sp, #20] movs r3, #6 - str r3, [sp, #28] - b .L3871 -.L3879: + str r3, [sp, #24] + b .L3846 +.L3853: movs r3, #0 -.L3870: - add r1, sp, #12 +.L3845: + add r1, sp, #8 lsls r2, r3, #1 cmp r0, #256 it ls @@ -24193,44 +23876,37 @@ write_loader_lba: str r2, [r1, r3, lsl #2] adds r3, r3, #1 cmp r3, #5 - bne .L3870 -.L3871: + bne .L3845 +.L3846: movw r3, #63872 -.L3874: - ldr r2, [r8, r3, lsl #2] - cbz r2, .L3872 +.L3849: + ldr r2, [r7, r3, lsl #2] + cbz r2, .L3847 adds r3, r3, #128 lsls r0, r3, #2 - b .L3873 -.L3872: + b .L3848 +.L3847: subs r3, r3, #1 cmp r3, #4096 - bne .L3874 + bne .L3849 lsls r0, r0, #9 -.L3873: - mov r1, r8 - add r2, sp, #12 +.L3848: + mov r1, r7 + add r2, sp, #8 bl write_idblock - ldr r0, [r4, #3820] - mov r8, #0 - strb r8, [r4, #3816] + ldr r0, [r4, #1012] + movs r7, #0 + strb r7, [r4, #1008] bl ftl_free - str r8, [r4, #3820] - b .L3875 -.L3865: - ldr r2, [sp, #52] - ldr r3, [r6] - cmp r2, r3 - beq .L3878 - bl __stack_chk_fail -.L3878: - add sp, sp, #56 + str r7, [r4, #1012] + b .L3850 +.L3840: + add sp, sp, #52 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3889: + pop {r4, r5, r6, r7, r8, r9, pc} +.L3863: .align 2 -.L3888: - .word __stack_chk_guard +.L3862: .word .LANCHOR5 .word -52655045 .word .LC180 @@ -24254,13 +23930,13 @@ FtlWrite: cmp r3, #1984 mov r4, r1 mov r6, r2 - bcs .L3891 - cbnz r0, .L3891 + bcs .L3865 + cbnz r0, .L3865 mov r0, r1 mov r1, r2 mov r2, r5 bl write_loader_lba -.L3891: +.L3865: mov r0, r7 mov r1, r4 mov r2, r6 @@ -24278,334 +23954,330 @@ rknand_sys_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 528 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - .pad #528 - sub sp, sp, #528 - ldr r5, .L4001 - mov r4, r1 - mov r6, r2 - ldr r3, [r5] - str r3, [sp, #524] - ldr r3, .L4001+4 + ldr r3, .L3974 + push {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} cmp r1, r3 - beq .L3894 - bhi .L3895 + .pad #532 + sub sp, sp, #532 + mov r4, r1 + mov r5, r2 + beq .L3868 + bhi .L3869 subw r3, r3, #3461 cmp r1, r3 - beq .L3896 - bhi .L3897 + beq .L3870 + bhi .L3871 subs r3, r3, #125 cmp r1, r3 - beq .L3898 - bhi .L3899 + beq .L3872 + bhi .L3873 subs r3, r3, #237 cmp r1, r3 - bne .L3956 + bne .L3929 bl rknand_dev_flush - b .L3989 -.L3899: - ldr r3, .L4001+8 + b .L3962 +.L3873: + ldr r3, .L3974+4 cmp r1, r3 - beq .L3901 + beq .L3875 adds r3, r3, #1 cmp r1, r3 - beq .L3902 - b .L3956 -.L3897: - ldr r3, .L4001+12 + beq .L3876 + b .L3929 +.L3871: + ldr r3, .L3974+8 cmp r1, r3 - beq .L3903 - bhi .L3904 + beq .L3877 + bhi .L3878 mvn r1, #1960 add r3, r3, r1 cmp r4, r3 - beq .L3905 - b .L3956 -.L3904: - ldr r3, .L4001+16 + beq .L3879 + b .L3929 +.L3878: + ldr r3, .L3974+12 cmp r1, r3 - beq .L3903 + beq .L3877 adds r3, r3, #10 cmp r1, r3 - beq .L3903 - b .L3956 -.L3895: - ldr r3, .L4001+20 + beq .L3877 + b .L3929 +.L3869: + ldr r3, .L3974+16 cmp r1, r3 - beq .L3906 - bhi .L3907 + beq .L3880 + bhi .L3881 subs r3, r3, #78 cmp r1, r3 - beq .L3908 - bcc .L3909 + beq .L3882 + bcc .L3883 adds r3, r3, #21 cmp r1, r3 - beq .L3910 + beq .L3884 adds r3, r3, #56 cmp r1, r3 - beq .L3911 - b .L3956 -.L3907: - ldr r3, .L4001+24 + beq .L3885 + b .L3929 +.L3881: + ldr r3, .L3974+20 cmp r1, r3 - mov r7, r3 - beq .L3912 - bhi .L3913 + mov r6, r3 + beq .L3886 + bhi .L3887 mvn r2, #956 add r3, r3, r2 cmp r1, r3 - beq .L3914 + beq .L3888 add r3, r3, #956 cmp r1, r3 - beq .L3915 - b .L3956 -.L3913: - ldr r3, .L4001+28 + beq .L3889 + b .L3929 +.L3887: + ldr r3, .L3974+24 cmp r1, r3 - beq .L3915 + beq .L3889 adds r3, r3, #1 cmp r1, r3 - beq .L3912 - b .L3956 -.L3909: - ldr r0, .L4001+32 + beq .L3886 + b .L3929 +.L3883: + ldr r0, .L3974+28 bl printk mov r0, #4096 bl ftl_malloc mov r4, r0 - cbnz r0, .L3916 -.L3921: + cbnz r0, .L3890 +.L3895: mvn r0, #11 - b .L3893 -.L3916: - mov r1, r6 + b .L3867 +.L3890: + mov r1, r5 mov r2, #512 bl rk_copy_from_user - cbnz r0, .L3995 - ldr r0, .L4001+36 + cbnz r0, .L3968 + ldr r0, .L3974+32 ldmia r4, {r1, r2} bl printk ldr r3, [r4, #4] cmp r3, #8 - str r3, [sp] - bhi .L3993 + str r3, [sp, #4] + bhi .L3966 bl rknand_device_lock mov r2, r4 ldr r0, [r4] - ldr r1, [sp] + ldr r1, [sp, #4] bl IdBlockReadData bl rknand_device_unlock - mov r0, r6 + mov r0, r5 mov r1, r4 - ldr r2, [sp] + ldr r2, [sp, #4] lsls r2, r2, #9 bl rk_copy_to_user cmp r0, #0 - beq .L3988 - ldr r0, .L4001+40 -.L3991: + beq .L3961 + ldr r0, .L3974+36 +.L3964: bl printk -.L3993: +.L3966: mov r0, r4 -.L3994: +.L3967: bl ftl_free -.L3992: +.L3965: mvn r0, #13 - b .L3893 -.L3908: - ldr r0, .L4001+44 + b .L3867 +.L3882: + ldr r0, .L3974+40 bl printk mov r0, #4096 bl ftl_malloc mov r4, r0 cmp r0, #0 - beq .L3921 - mov r1, r6 + beq .L3895 + mov r1, r5 mov r2, #4096 bl rk_copy_from_user - cbz r0, .L3922 -.L3995: - ldr r0, .L4001+48 - b .L3991 -.L3922: - ldr r6, .L4001+52 - ldr r0, .L4001+56 + 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 r7, [r6, #3828] - mov r8, r6 - cbnz r7, .L3923 + ldr r6, [r5, #1020] + mov r7, r5 + cbnz r6, .L3897 mov r0, #260096 bl ftl_malloc - str r0, [r6, #3828] + str r0, [r5, #1020] cmp r0, #0 - beq .L3993 - mov r1, r7 + beq .L3966 + mov r1, r6 mov r2, #260096 bl memset -.L3923: +.L3897: ldr r2, [r4, #4] movw r3, #4088 cmp r2, r3 - bhi .L3993 + bhi .L3966 ldr r3, [r4] cmp r3, #251904 - bhi .L3993 - ldr r0, [r8, #3828] + bhi .L3966 + ldr r0, [r7, #1020] add r1, r4, #8 add r0, r0, r3 bl memcpy -.L3988: +.L3961: mov r0, r4 bl ftl_free -.L3989: +.L3962: movs r4, #0 - b .L3920 -.L3911: - ldr r0, .L4001+60 + b .L3894 +.L3885: + ldr r0, .L3974+56 bl printk mov r0, #4096 bl ftl_malloc - mov r7, r0 + mov r6, r0 cmp r0, #0 - beq .L3921 - mov r1, r6 + beq .L3895 + mov r1, r5 movs r2, #28 bl rk_copy_from_user - cbz r0, .L3926 - ldr r0, .L4001+48 + cbz r0, .L3900 + ldr r0, .L3974+44 bl printk - b .L3927 -.L3926: - ldmia r7, {r1, r2} - ldr r0, .L4001+64 + b .L3901 +.L3900: + ldmia r6, {r1, r2} + ldr r0, .L3974+60 bl printk - ldr r1, [r7] + ldr r1, [r6] cmp r1, #256000 - bhi .L3927 - ldr r6, .L4001+52 - ldr r0, [r6, #3828] - cbz r0, .L3927 + bhi .L3901 + ldr r5, .L3974+48 + ldr r0, [r5, #1020] + cbz r0, .L3901 bl CRC_32 - ldr r3, [r7, #4] + ldr r3, [r6, #4] cmp r3, r0 - beq .L3929 - mov r0, r7 + beq .L3903 + mov r0, r6 bl ftl_free - b .L3957 -.L3929: + b .L3930 +.L3903: bl rknand_device_lock - ldr r1, [r6, #3828] - add r2, r7, #8 - ldr r0, [r7] + ldr r1, [r5, #1020] + add r2, r6, #8 + ldr r0, [r6] bl write_idblock movs r4, #0 bl rknand_device_unlock - ldr r0, [r6, #3828] + ldr r0, [r5, #1020] bl ftl_free - str r4, [r6, #3828] - mov r0, r7 - b .L3933 -.L3927: - mov r0, r7 - b .L3994 -.L3910: - ldr r0, .L4001+68 + 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 r7, r0 + mov r6, r0 cmp r0, #0 - beq .L3921 + beq .L3895 bl ftl_read_flash_info - mov r0, r6 - mov r1, r7 + mov r0, r5 + mov r1, r6 movs r2, #11 - b .L3999 -.L3894: - ldr r0, .L4001+72 + b .L3972 +.L3868: + ldr r0, .L3974+68 bl printk bl nand_blk_add_whole_disk mov r0, #4096 bl ftl_malloc - mov r7, r0 + mov r6, r0 cmp r0, #0 - beq .L3921 + beq .L3895 movs r1, #0 movs r2, #64 bl ftl_memset - mov r0, r6 - mov r1, r7 + mov r0, r5 + mov r1, r6 movs r2, #64 - b .L3999 -.L3906: - ldr r0, .L4001+76 + b .L3972 +.L3880: + ldr r0, .L3974+72 bl printk - ldr r3, .L4001+52 + ldr r3, .L3974+48 movs r2, #4 - mov r0, r6 - ldr r3, [r3, #3832] + mov r0, r5 + ldr r3, [r3, #1024] ldr r3, [r3, #20] - mov r1, sp - str r3, [sp] -.L3983: + add r1, sp, #4 + str r3, [sp, #4] +.L3956: bl rk_copy_to_user cmp r0, #0 - bne .L3992 - b .L3989 -.L3914: - ldr r0, .L4001+80 + bne .L3965 + b .L3962 +.L3888: + ldr r0, .L3974+76 bl printk mov r0, #4096 bl ftl_malloc - mov r7, r0 + mov r6, r0 cmp r0, #0 - beq .L3921 + beq .L3895 bl rknand_device_lock mov r1, #264 movs r2, #2 - mov r3, r7 + mov r3, r6 movs r0, #16 bl ftl_read bl rknand_device_unlock mov r2, #1024 - mov r0, r6 - mov r1, r7 -.L3999: + mov r0, r5 + mov r1, r6 +.L3972: bl rk_copy_to_user mov r4, r0 - mov r0, r7 + mov r0, r6 cmp r4, #0 - bne .L3994 -.L3933: + bne .L3967 +.L3907: bl ftl_free - b .L3920 -.L3898: - ldr r0, .L4001+84 + b .L3894 +.L3872: + ldr r0, .L3974+80 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user mov r4, r0 - cbz r0, .L3934 -.L3939: - ldr r0, .L4001+48 + cbz r0, .L3908 +.L3913: + ldr r0, .L3974+44 bl printk - b .L3992 -.L3934: - ldr r2, [sp, #4] - ldr r3, .L4001+88 + b .L3965 +.L3908: + ldr r2, [sp, #8] + ldr r3, .L3974+84 cmp r2, r3 - beq .L3935 -.L3936: + beq .L3909 +.L3910: mov r4, #-1 - b .L3920 -.L4002: + b .L3894 +.L3975: .align 2 -.L4001: - .word __stack_chk_guard +.L3974: .word 1074033155 .word 1074029570 .word 1074031656 @@ -24628,164 +24300,164 @@ rknand_sys_storage_ioctl: .word .LC192 .word .LC193 .word 1263358532 -.L3935: - ldr r3, [sp, #8] +.L3909: + ldr r3, [sp, #12] cmp r3, #512 - bhi .L3936 - ldr r7, .L4003 + bhi .L3910 + ldr r6, .L3976 mov r2, #512 - add r0, sp, #4 - ldr r1, [r7, #3832] + add r0, sp, #8 + ldr r1, [r6, #1024] bl memcpy - ldr r2, [r7, #3836] - ldr r3, .L4003+4 + ldr r2, [r6, #1028] + ldr r3, .L3976+4 cmp r2, r3 - beq .L3937 - add r0, sp, #68 + beq .L3911 + add r0, sp, #72 mov r1, r4 movs r2, #128 - str r4, [sp, #12] str r4, [sp, #16] + str r4, [sp, #20] bl memset -.L3937: +.L3911: movs r1, #0 mov r2, #256 - add r0, sp, #260 - str r1, [sp, #20] + add r0, sp, #264 + str r1, [sp, #24] bl memset - b .L3997 -.L3901: - ldr r0, .L4003+8 + b .L3970 +.L3875: + ldr r0, .L3976+8 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3939 - ldr r2, [sp, #4] - ldr r3, .L4003+12 + bne .L3913 + ldr r2, [sp, #8] + ldr r3, .L3976+12 cmp r2, r3 - bne .L3936 - ldr r3, [sp, #8] + bne .L3910 + ldr r3, [sp, #12] cmp r3, #512 - bhi .L3936 - ldr r2, .L4003 - ldr r3, .L4003+4 - ldr r1, [r2, #3836] + bhi .L3910 + ldr r2, .L3976 + ldr r3, .L3976+4 + ldr r1, [r2, #1028] cmp r1, r3 - bne .L3957 - ldr r3, [sp, #16] + bne .L3930 + ldr r3, [sp, #20] subs r1, r3, #1 cmp r1, #127 - bhi .L3958 - ldr r4, [r2, #3832] - add r1, sp, #68 + bhi .L3931 + ldr r4, [r2, #1024] + add r1, sp, #72 add r0, r4, #64 str r3, [r4, #12] - ldr r2, [sp, #16] + ldr r2, [sp, #20] bl memcpy movs r0, #1 mov r1, r4 - b .L3990 -.L3905: - ldr r0, .L4003+16 + b .L3963 +.L3879: + ldr r0, .L3976+16 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3939 - ldr r2, [sp, #4] - ldr r3, .L4003+20 + bne .L3913 + ldr r2, [sp, #8] + ldr r3, .L3976+20 cmp r2, r3 - bne .L3936 - ldr r3, [sp, #8] + bne .L3910 + ldr r3, [sp, #12] cmp r3, #512 - bhi .L3936 - ldr r6, .L4003 - ldr r3, [r6, #3840] - cbnz r3, .L3940 -.L3943: + bhi .L3910 + ldr r5, .L3976 + ldr r3, [r5, #1032] + cbnz r3, .L3914 +.L3917: movs r0, #0 - b .L3893 -.L3940: - ldr r3, [r6, #3844] - ldr r2, .L4003+24 + b .L3867 +.L3914: + ldr r3, [r5, #1036] + ldr r2, .L3976+24 ldr r1, [r3] cmp r1, r2 - beq .L3941 + beq .L3915 str r2, [r3] mov r2, #504 - ldr r3, [r6, #3844] + ldr r3, [r5, #1036] str r2, [r3, #4] movs r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L3941: - ldr r1, [r6, #3844] +.L3915: + ldr r1, [r5, #1036] movs r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore - ldr r3, [r6, #3832] - ldr r2, .L4003+12 + ldr r3, [r5, #1024] + ldr r2, .L3976+12 ldr r1, [r3] cmp r1, r2 it ne strne r2, [r3] - ldr r7, [r6, #3832] + ldr r6, [r5, #1024] itt ne movne r2, #504 - ldrne r3, .L4003 - add r0, r7, #64 + ldrne r3, .L3976 + add r0, r6, #64 itt ne - ldrne r3, [r3, #3832] + ldrne r3, [r3, #1024] strne r4, [r3, #8] mov r4, #0 it ne strne r2, [r3, #4] movs r2, #128 mov r1, r4 - str r4, [r7, #12] + str r4, [r6, #12] bl memset movs r0, #1 - mov r1, r7 - bl StorageSysDataStore - str r4, [r6, #3840] - str r4, [r6, #3836] - b .L3920 -.L3896: - ldr r0, .L4003+28 - bl printk mov r1, r6 + bl StorageSysDataStore + str r4, [r5, #1032] + str r4, [r5, #1028] + b .L3894 +.L3870: + ldr r0, .L3976+28 + bl printk + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3939 - ldr r2, [sp, #4] - ldr r3, .L4003+32 + bne .L3913 + ldr r2, [sp, #8] + ldr r3, .L3976+32 cmp r2, r3 - bne .L3936 - ldr r3, [sp, #8] + bne .L3910 + ldr r3, [sp, #12] cmp r3, #512 - bhi .L3936 - ldr r6, .L4003 - ldr r3, [r6, #3840] + bhi .L3910 + ldr r5, .L3976 + ldr r3, [r5, #1032] cmp r3, #1 - beq .L3943 - ldr r3, [r6, #3844] - ldr r2, .L4003+24 + beq .L3917 + ldr r3, [r5, #1036] + ldr r2, .L3976+24 ldr r1, [r3] cmp r1, r2 it ne strne r2, [r3] - ldr r1, [r6, #3844] + ldr r1, [r5, #1036] itttt ne movne r2, #504 - ldrne r3, [r6, #3844] + ldrne r3, [r5, #1036] strne r2, [r3, #4] strne r0, [r3, #8] it ne @@ -24794,130 +24466,127 @@ rknand_sys_storage_ioctl: movs r0, #0 str r3, [r1, #16] bl StorageSysDataStore - ldr r3, [r6, #3832] - ldr r2, .L4003+12 + ldr r3, [r5, #1024] + ldr r2, .L3976+12 ldr r1, [r3] cmp r1, r2 - beq .L3945 + beq .L3919 str r2, [r3] mov r2, #504 - ldr r3, .L4003 - ldr r3, [r3, #3832] + ldr r3, .L3976 + ldr r3, [r3, #1024] str r2, [r3, #4] movs r2, #0 str r2, [r3, #8] -.L3945: - ldr r7, [r6, #3832] +.L3919: + ldr r6, [r5, #1024] movs r4, #0 movs r2, #128 mov r1, r4 - add r0, r7, #64 - str r4, [r7, #12] + add r0, r6, #64 + str r4, [r6, #12] bl memset movs r0, #1 - mov r1, r7 + mov r1, r6 bl StorageSysDataStore movs r3, #1 - str r3, [r6, #3840] - b .L3920 -.L3902: - ldr r0, .L4003+36 + str r3, [r5, #1032] + b .L3894 +.L3876: + ldr r0, .L3976+36 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3939 - ldr r2, [sp, #4] - ldr r3, .L4003+40 - cmp r2, r3 - bne .L3936 + bne .L3913 ldr r2, [sp, #8] + ldr r3, .L3976+40 + cmp r2, r3 + bne .L3910 + ldr r2, [sp, #12] cmp r2, #512 - bhi .L3936 - add r0, sp, #12 - ldr r1, .L4003+44 - b .L3996 -.L3903: - ldr r7, .L4003+48 - cmp r4, r7 - bne .L3946 - ldr r0, .L4003+52 - b .L3986 -.L3946: - ldr r3, .L4003+56 + bhi .L3910 + add r0, sp, #16 + ldr r1, .L3976+44 + b .L3969 +.L3877: + ldr r0, .L3976+48 + cmp r4, r0 + mov r7, r0 + bne .L3920 + ldr r0, .L3976+52 + b .L3959 +.L3920: + ldr r3, .L3976+56 cmp r4, r3 ite eq - ldreq r0, .L4003+60 - ldrne r0, .L4003+64 -.L3986: + ldreq r0, .L3976+60 + ldrne r0, .L3976+64 +.L3959: bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3939 - ldr r2, [sp, #4] - ldr r3, .L4003+68 + bne .L3913 + ldr r2, [sp, #8] + ldr r3, .L3976+68 cmp r2, r3 - bne .L3992 - ldr r3, .L4003+56 + bne .L3965 + ldr r3, .L3976+56 + ldr r6, .L3976 cmp r4, r3 - bne .L3949 - ldr r3, .L4003 - mov r0, r6 - add r1, sp, #4 + bne .L3923 + ldr r3, [r6, #1024] + mov r0, r5 + add r1, sp, #8 movs r2, #16 - ldr r3, [r3, #3832] ldr r3, [r3, #20] - str r3, [sp, #8] - strb r3, [sp, #12] + str r3, [sp, #12] + strb r3, [sp, #16] bl rk_copy_to_user cmp r0, #0 - beq .L3893 - b .L3992 -.L3949: - ldr r6, .L4003+72 - ldr r3, [r6, #16] - mov r0, r6 + beq .L3867 + b .L3965 +.L3923: + ldr r3, [r6, #1552] cmp r3, #10 - bhi .L3992 - ldr r3, .L4003 - ldr r1, [r3, #3832] - ldr r3, [sp, #8] + bhi .L3965 + ldr r1, [r6, #1024] + ldr r3, [sp, #12] ldr r2, [r1, #24] cmp r2, r3 - beq .L3950 - cbz r2, .L3950 + beq .L3924 + cbz r2, .L3924 mov r1, r3 - ldr r0, .L4003+76 + ldr r0, .L3976+72 bl printk - ldr r3, [r6, #16] + ldr r3, [r6, #1552] adds r3, r3, #1 - str r3, [r6, #16] - b .L3992 -.L3950: + str r3, [r6, #1552] + b .L3965 +.L3924: movs r2, #0 cmp r4, r7 - str r2, [r0, #16] - ite ne - movne r2, #1 - moveq r3, r2 + str r2, [r6, #1552] mov r0, #1 - it eq + itet eq + moveq r3, r2 + movne r2, #1 moveq r2, r3 str r3, [r1, #24] str r2, [r1, #20] bl StorageSysDataStore adds r0, r0, #1 - bne .L3989 + bne .L3962 mvn r4, #1 - b .L3920 -.L4004: + b .L3894 +.L3977: .align 2 -.L4003: +.L3976: .word .LANCHOR5 .word -1067903959 .word .LC194 @@ -24929,112 +24598,105 @@ rknand_sys_storage_ioctl: .word 1112755781 .word .LC197 .word 1094995539 - .word .LANCHOR5+3848 + .word .LANCHOR5+1040 .word 1074031666 .word .LC198 .word 1074031676 .word .LC199 .word .LC200 .word 1280262987 - .word .LANCHOR6 .word .LC201 -.L3915: - ldr r0, .L4005 +.L3889: + ldr r0, .L3978 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3939 - ldr r2, [sp, #4] - ldr r3, .L4005+4 - cmp r2, r3 - bne .L3936 + bne .L3913 ldr r2, [sp, #8] + ldr r3, .L3978+4 + cmp r2, r3 + bne .L3910 + ldr r2, [sp, #12] cmp r2, #504 - bhi .L3936 - ldr r3, .L4005+8 - add r0, sp, #12 + bhi .L3910 + ldr r3, .L3978+8 + add r0, sp, #16 cmp r4, r3 - ldr r3, .L4005+12 + ldr r3, .L3978+12 ite eq - ldreq r1, [r3, #20] - ldrne r1, [r3, #24] + ldreq r1, [r3, #1556] + ldrne r1, [r3, #1560] adds r1, r1, #8 -.L3996: +.L3969: bl memcpy -.L3997: - mov r0, r6 - add r1, sp, #4 +.L3970: + mov r0, r5 + add r1, sp, #8 mov r2, #520 - b .L3983 -.L3912: - ldr r0, .L4005+16 + b .L3956 +.L3886: + ldr r0, .L3978+16 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L3939 - ldr r2, [sp, #4] - ldr r3, .L4005+4 - cmp r2, r3 - bne .L3936 + bne .L3913 ldr r2, [sp, #8] + ldr r3, .L3978+4 + cmp r2, r3 + bne .L3910 + ldr r2, [sp, #12] cmp r2, #504 - bhi .L3936 - cmp r4, r7 + bhi .L3910 + cmp r4, r6 add r2, r2, #8 - ldr r4, .L4005+12 - bne .L3954 - add r1, sp, #4 - ldr r0, [r4, #20] + ldr r4, .L3978+12 + bne .L3928 + add r1, sp, #8 + ldr r0, [r4, #1556] bl memcpy movs r0, #2 - ldr r1, [r4, #20] - b .L3990 -.L3954: - add r1, sp, #4 - ldr r0, [r4, #24] + ldr r1, [r4, #1556] + b .L3963 +.L3928: + add r1, sp, #8 + ldr r0, [r4, #1560] bl memcpy - ldr r1, [r4, #24] + ldr r1, [r4, #1560] movs r0, #3 -.L3990: +.L3963: bl StorageSysDataStore mov r4, r0 -.L3920: - ldr r0, .L4005+20 +.L3894: + ldr r0, .L3978+20 mov r1, r4 bl printk mov r0, r4 - b .L3893 -.L3956: + b .L3867 +.L3929: mvn r0, #21 - b .L3893 -.L3957: + b .L3867 +.L3930: mvn r0, #1 - b .L3893 -.L3958: + b .L3867 +.L3931: mvn r0, #2 -.L3893: - ldr r2, [sp, #524] - ldr r3, [r5] - cmp r2, r3 - beq .L3955 - bl __stack_chk_fail -.L3955: - add sp, sp, #528 +.L3867: + add sp, sp, #532 @ sp needed - pop {r4, r5, r6, r7, r8, pc} -.L4006: + pop {r4, r5, r6, r7, pc} +.L3979: .align 2 -.L4005: +.L3978: .word .LC202 .word 1145980246 .word 1074034192 - .word .LANCHOR6 + .word .LANCHOR5 .word .LC203 .word .LC204 .fnend @@ -25048,64 +24710,61 @@ rk_ftl_storage_sys_init: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - mov r3, #-1 - ldr r4, .L4016 + push {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} mov r2, #512 - ldr r5, .L4016+4 - movs r6, #0 - addw r0, r4, #3848 - ldr r1, [r4, #3800] - str r3, [r4, #3824] + ldr r4, .L3989 + mov r3, #-1 + movs r5, #0 + add r0, r4, #1040 + ldr r1, [r4, #992] + str r3, [r4, #1016] add r3, r1, #512 - str r3, [r4, #3832] - str r1, [r4, #3844] + str r3, [r4, #1024] + str r1, [r4, #1036] add r3, r1, #1024 add r1, r1, #1536 - str r3, [r5, #20] - strb r6, [r4, #3816] - str r6, [r4, #3820] - str r6, [r4, #3828] - str r1, [r5, #24] + str r3, [r4, #1556] + strb r5, [r4, #1008] + str r5, [r4, #1012] + str r5, [r4, #1020] + str r1, [r4, #1560] bl ftl_memcpy - ldr r7, [r4, #3844] - str r6, [r4, #3836] - str r6, [r5, #16] - ldr r3, [r7, #16] - ldr r8, [r7, #508] - str r3, [r4, #3840] - cmp r8, #0 - beq .L4008 - mov r0, r7 + ldr r6, [r4, #1036] + str r5, [r4, #1028] + str r5, [r4, #1552] + ldr r3, [r6, #16] + ldr r7, [r6, #508] + str r3, [r4, #1032] + cbz r7, .L3981 + mov r0, r6 mov r1, #508 bl js_hash - cmp r8, r0 - beq .L4008 - str r6, [r7, #16] - ldr r0, .L4016+8 - str r6, [r4, #3840] + cmp r7, r0 + beq .L3981 + str r5, [r6, #16] + ldr r0, .L3989+4 + str r5, [r4, #1032] bl printk -.L4008: - ldr r3, [r4, #3840] - cbz r3, .L4009 - ldr r2, .L4016+12 - ldr r3, .L4016 - str r2, [r3, #3836] -.L4009: - ldr r1, [r5, #20] +.L3981: + ldr r3, [r4, #1032] + cbz r3, .L3982 + ldr r2, .L3989+8 + ldr r3, .L3989 + str r2, [r3, #1028] +.L3982: + ldr r1, [r4, #1556] movs r0, #2 bl StorageSysDataLoad - ldr r1, [r5, #24] + ldr r1, [r4, #1560] movs r0, #3 bl StorageSysDataLoad - pop {r4, r5, r6, r7, r8, lr} + pop {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L4017: +.L3990: .align 2 -.L4016: +.L3989: .word .LANCHOR5 - .word .LANCHOR6 .word .LC205 .word -1067903959 .fnend @@ -25137,62 +24796,62 @@ rk_ftl_vendor_storage_init: .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r0, #65536 bl ftl_malloc - ldr r6, .L4028 - str r0, [r6, #28] + ldr r6, .L4001 + str r0, [r6, #1564] cmp r0, #0 - beq .L4025 + beq .L3998 mov r8, #0 - ldr r9, .L4028+8 + ldr r9, .L4001+8 mov r10, r6 mov r4, r8 mov r7, r8 -.L4023: +.L3996: lsls r0, r7, #7 movs r1, #128 - ldr r2, [r6, #28] + ldr r2, [r6, #1564] bl FlashBootVendorRead cmp r0, #0 - bne .L4021 - ldr r3, [r10, #28] - ldr r0, .L4028+4 + bne .L3994 + ldr r3, [r10, #1564] + ldr r0, .L4001+4 add r2, r3, #65280 adds r2, r2, #252 ldr r1, [r3] ldr r3, [r3, #4] ldr r2, [r2] bl printk - ldr r5, [r10, #28] + ldr r5, [r10, #1564] ldr r3, [r5] cmp r3, r9 - bne .L4022 + bne .L3995 add r3, r5, #65280 ldr r2, [r5, #4] adds r3, r3, #252 ldr r3, [r3] cmp r3, r2 - bne .L4022 + bne .L3995 cmp r4, r3 itt cc movcc r8, r7 movcc r4, r3 -.L4022: - cbnz r7, .L4027 +.L3995: + cbnz r7, .L4000 movs r7, #1 - b .L4023 -.L4027: - cbz r4, .L4024 + b .L3996 +.L4000: + cbz r4, .L3997 lsl r0, r8, #7 movs r1, #128 mov r2, r5 bl FlashBootVendorRead - cbnz r0, .L4021 + cbnz r0, .L3994 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L4024: +.L3997: mov r0, r5 mov r1, r4 mov r2, #65536 bl memset - ldr r3, .L4028+8 + ldr r3, .L4001+8 str r7, [r5, #4] mov r0, r4 str r3, [r5] @@ -25202,20 +24861,20 @@ rk_ftl_vendor_storage_init: strh r4, [r5, #12] @ movhi strh r3, [r5, #14] @ movhi pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L4021: - ldr r0, [r6, #28] +.L3994: + ldr r0, [r6, #1564] bl kfree movs r3, #0 mov r0, #-1 - str r3, [r6, #28] + str r3, [r6, #1564] pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L4025: +.L3998: mvn r0, #11 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L4029: +.L4002: .align 2 -.L4028: - .word .LANCHOR6 +.L4001: + .word .LANCHOR5 .word .LC206 .word 1380668996 .fnend @@ -25231,18 +24890,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, .L4036 - ldr r5, [r3, #28] - cbz r5, .L4035 + ldr r3, .L4009 + ldr r5, [r3, #1564] + cbz r5, .L4008 ldrh r7, [r5, #10] movs r3, #0 -.L4032: +.L4005: cmp r3, r7 - bcs .L4035 + bcs .L4008 add r6, r5, r3, lsl #3 ldrh r4, [r6, #16] cmp r4, r0 - bne .L4033 + bne .L4006 ldrh r3, [r6, #20] mov r0, r1 cmp r2, r3 @@ -25255,16 +24914,16 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L4033: +.L4006: adds r3, r3, #1 - b .L4032 -.L4035: + b .L4005 +.L4008: mov r0, #-1 pop {r3, r4, r5, r6, r7, pc} -.L4037: +.L4010: .align 2 -.L4036: - .word .LANCHOR6 +.L4009: + .word .LANCHOR5 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read .align 1 @@ -25279,45 +24938,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, .L4060 + ldr r2, .L4033 .pad #28 sub sp, sp, #28 mov ip, r0 mov r3, r1 - ldr r4, [r2, #28] + ldr r4, [r2, #1564] cmp r4, #0 - beq .L4053 + beq .L4026 add r7, r9, #63 ldrh r1, [r4, #8] ldrh r2, [r4, #10] bic r7, r7, #63 movs r6, #0 str r1, [sp, #4] -.L4040: +.L4013: cmp r6, r2 - bcs .L4058 + bcs .L4031 add r5, r4, r6, lsl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L4041 + bne .L4014 ldrh r1, [r5, #20] add fp, r4, #1024 adds r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L4042 + bls .L4015 ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4053 + bcc .L4026 ldrh r8, [r5, #18] subs r2, r2, #1 str r2, [sp, #12] -.L4043: +.L4016: ldr r2, [sp, #12] adds r5, r5, #8 cmp r6, r2 - bcs .L4059 + bcs .L4032 ldrh r2, [r5, #16] add r0, fp, r8 ldrh r1, [r5, #18] @@ -25336,8 +24995,8 @@ rk_ftl_vendor_write: bl memcpy ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L4043 -.L4059: + b .L4016 +.L4032: add r6, r4, r6, lsl #3 uxth r8, r8 add r0, fp, r8 @@ -25355,22 +25014,22 @@ rk_ftl_vendor_write: add r3, r3, r5 subs r7, r3, r7 strh r7, [r4, #14] @ movhi - b .L4057 -.L4042: + b .L4030 +.L4015: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, r0, fp bl memcpy strh r9, [r5, #20] @ movhi - b .L4057 -.L4041: + b .L4030 +.L4014: adds r6, r6, #1 - b .L4040 -.L4058: + b .L4013 +.L4031: ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4053 + bcc .L4026 add r2, r4, r2, lsl #3 uxth r7, r7 subs r1, r1, r7 @@ -25390,7 +25049,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] adds r3, r3, #1 strh r3, [r4, #10] @ movhi -.L4057: +.L4030: ldr r3, [r4, #4] movw r2, #65532 movs r1, #128 @@ -25409,17 +25068,17 @@ rk_ftl_vendor_write: lsls r0, r3, #7 bl FlashBootVendorWrite movs r0, #0 - b .L4039 -.L4053: + b .L4012 +.L4026: mov r0, #-1 -.L4039: +.L4012: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4061: +.L4034: .align 2 -.L4060: - .word .LANCHOR6 +.L4033: + .word .LANCHOR5 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write .align 1 @@ -25439,34 +25098,34 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc mov r4, r0 cmp r0, #0 - beq .L4071 - ldr r3, .L4078 + beq .L4044 + ldr r3, .L4051 cmp r6, r3 - beq .L4065 + beq .L4038 adds r3, r3, #1 cmp r6, r3 - beq .L4066 - b .L4077 -.L4065: + beq .L4039 + b .L4050 +.L4038: mov r1, r5 movs r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4077 + bne .L4050 ldr r2, [r4] - ldr r3, .L4078+4 + ldr r3, .L4051+4 cmp r2, r3 - beq .L4068 -.L4069: + beq .L4041 +.L4042: mov r5, #-1 - b .L4064 -.L4068: + b .L4037 +.L4041: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read adds r3, r0, #1 - beq .L4069 + beq .L4042 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -25477,45 +25136,45 @@ rk_ftl_vendor_storage_ioctl: ite eq moveq r5, #0 mvnne r5, #13 - b .L4064 -.L4066: + b .L4037 +.L4039: mov r1, r5 movs r2, #8 bl rk_copy_from_user - cbnz r0, .L4077 + cbnz r0, .L4050 ldr r2, [r4] - ldr r3, .L4078+4 + ldr r3, .L4051+4 cmp r2, r3 - bne .L4069 + bne .L4042 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L4069 + bhi .L4042 mov r0, r4 mov r1, r5 adds r2, r2, #8 bl rk_copy_from_user - cbnz r0, .L4077 + cbnz r0, .L4050 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L4064 -.L4077: + b .L4037 +.L4050: mvn r5, #13 -.L4064: +.L4037: mov r0, r4 bl kfree - b .L4063 -.L4071: + b .L4036 +.L4044: mov r5, #-1 -.L4063: +.L4036: mov r0, r5 pop {r4, r5, r6, pc} -.L4079: +.L4052: .align 2 -.L4078: +.L4051: .word 1074034177 .word 1448232273 .fnend @@ -25766,9 +25425,9 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 2 .LANCHOR3 = . + 0 - .type __func__.20217, %object - .size __func__.20217, 11 -__func__.20217: + .type __func__.20269, %object + .size __func__.20269, 11 +__func__.20269: .ascii "FtlMemInit\000" .LC0: .byte 60 @@ -25776,32 +25435,32 @@ __func__.20217: .byte 24 .byte 16 .space 1 - .type __func__.20992, %object - .size __func__.20992, 17 -__func__.20992: + .type __func__.21044, %object + .size __func__.21044, 17 +__func__.21044: .ascii "FtlDumpBlockInfo\000" .space 3 - .type __func__.21011, %object - .size __func__.21011, 16 -__func__.21011: + .type __func__.21063, %object + .size __func__.21063, 16 +__func__.21063: .ascii "FtlScanAllBlock\000" - .type __func__.21277, %object - .size __func__.21277, 17 -__func__.21277: + .type __func__.21329, %object + .size __func__.21329, 17 +__func__.21329: .ascii "ftl_scan_all_ppa\000" .space 3 - .type __func__.20960, %object - .size __func__.20960, 12 -__func__.20960: + .type __func__.21012, %object + .size __func__.21012, 12 +__func__.21012: .ascii "FtlCheckVpc\000" - .type __func__.21259, %object - .size __func__.21259, 21 -__func__.21259: + .type __func__.21311, %object + .size __func__.21311, 21 +__func__.21311: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.20290, %object - .size __func__.20290, 8 -__func__.20290: + .type __func__.20342, %object + .size __func__.20342, 8 +__func__.20342: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -25959,7 +25618,7 @@ __func__.20290: .LC76: .ascii "%s\012\000" .LC77: - .ascii "FTL version: 5.0.57 20190927\000" + .ascii "FTL version: 5.0.60 20200218\000" .LC78: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" @@ -26620,7 +26279,7 @@ gNandParaInfo: gFtlInitStatus: .word -1 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2592 + .size NandFlashParaTbl, 2656 NandFlashParaTbl: .byte 6 .byte 44 @@ -27325,6 +26984,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte 44 + .byte -92 + .byte 100 + .byte 50 + .byte -86 + .byte 4 + .byte 4 + .byte 1 + .byte 32 + .short 1024 + .byte 2 + .byte 1 + .short 2192 + .short 1479 + .byte 10 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .space 4 + .byte 6 .byte -83 .byte -34 .byte -108 @@ -27896,6 +27581,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 + .byte 5 + .byte -119 + .byte -124 + .byte 100 + .byte 60 + .byte -91 + .byte 0 + .byte 7 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 2 + .short 1024 + .short 455 + .byte 4 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .space 4 .byte 6 .byte -104 .byte -41 @@ -29140,8 +28851,7 @@ gTable_Crc32: .LANCHOR0 = . + 0 .LANCHOR2 = . + 4344 .LANCHOR4 = . + 8688 -.LANCHOR5 = . + 13032 -.LANCHOR6 = . + 17376 +.LANCHOR5 = . + 17376 .type g_slc2KBNand, %object .size g_slc2KBNand, 1 g_slc2KBNand: @@ -29214,9 +28924,9 @@ gFlashSlcMode: .space 1 .space 3 .type slcPageToMlcPageTbl, %object - .size slcPageToMlcPageTbl, 512 + .size slcPageToMlcPageTbl, 1024 slcPageToMlcPageTbl: - .space 512 + .space 1024 .type DieAddrs, %object .size DieAddrs, 32 DieAddrs: @@ -29734,9 +29444,9 @@ g_gc_bad_block_temp_tbl: g_gc_bad_block_gc_index: .space 2 .type mlcPageToSlcPageTbl, %object - .size mlcPageToSlcPageTbl, 1024 + .size mlcPageToSlcPageTbl, 2048 mlcPageToSlcPageTbl: - .space 1024 + .space 2048 .type gNandMaxChip, %object .size gNandMaxChip, 1 gNandMaxChip: diff --git a/drivers/rk_nand/rk_ftl_arm_v8.S b/drivers/rk_nand/rk_ftl_arm_v8.S index 0fe69bcd8442..0a0cf928d26b 100644 --- a/drivers/rk_nand/rk_ftl_arm_v8.S +++ b/drivers/rk_nand/rk_ftl_arm_v8.S @@ -5,26 +5,10 @@ * 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: 2019-05-08 + * date: 2020-02-18 */ .cpu generic+fp+simd .file "rk_ftl_arm_v8.S" -#APP - .irp num,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17\ - ,18,19,20,21,22,23,24,25,26,27,28,29,30 - .equ .L__reg_num_x\num, \num - .endr - .equ .L__reg_num_xzr, 31 - - .macro mrs_s, rt, sreg - .inst 0xd5200000|(\sreg)|(.L__reg_num_\rt) - .endm - - .macro msr_s, sreg, rt - .inst 0xd5000000|(\sreg)|(.L__reg_num_\rt) - .endm - -#NO_APP .text .align 2 .type ftl_set_blk_mode.part.9, %function @@ -191,16 +175,21 @@ FlashSetRandomizer: FlashBlockAlignInit: uxth w0, w0 adrp x1, .LANCHOR0 - cmp w0, 256 + cmp w0, 512 add x1, x1, :lo12:.LANCHOR0 bls .L29 - mov w0, 512 - b .L32 + mov w0, 1024 + b .L33 .L29: + cmp w0, 256 + bls .L31 + mov w0, 512 + b .L33 +.L31: cmp w0, 128 - bls .L32 + bls .L33 mov w0, 256 -.L32: +.L33: str w0, [x1,76] ret .size FlashBlockAlignInit, .-FlashBlockAlignInit @@ -254,7 +243,7 @@ FlashReadDpDataOutCmd: ldrb w2, [x5,8] and w5, w1, 255 add x2, x6, x2, lsl 8 - bne .L35 + bne .L36 mov w6, 6 str w6, [x2,2056] str wzr, [x2,2052] @@ -262,8 +251,8 @@ FlashReadDpDataOutCmd: str w5, [x2,2052] str w4, [x2,2052] str w3, [x2,2052] - b .L37 -.L35: + b .L38 +.L36: str wzr, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] @@ -274,7 +263,7 @@ FlashReadDpDataOutCmd: str w3, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] -.L37: +.L38: mov w3, 224 str w3, [x2,2056] bl FlashSetRandomizer @@ -321,7 +310,7 @@ FlashEraseCmd: add x5, x4, x0 ldr x4, [x4,x0] ldrb w0, [x5,8] - cbz w2, .L40 + cbz w2, .L41 add x2, x4, x0, lsl 8 mov w5, 96 str w5, [x2,2056] @@ -333,7 +322,7 @@ FlashEraseCmd: str w5, [x2,2052] ldr w2, [x3,76] add w1, w1, w2 -.L40: +.L41: add x0, x4, x0, lsl 8 mov w2, 96 str w2, [x0,2056] @@ -382,15 +371,23 @@ FlashProgDpSecondCmd: FlashProgSecondCmd: adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + stp x29, x30, [sp, -32]! add x1, x1, :lo12:.LANCHOR0 add x1, x1, 8 + add x29, sp, 0 add x2, x1, x0 - ldr x1, [x1,x0] - ldrb w0, [x2,8] - add x0, x0, 8 - add x0, x1, x0, lsl 8 - mov w1, 16 - str w1, [x0,8] + stp x19, x20, [sp,16] + ldrb w19, [x2,8] + ldr x20, [x1,x0] + mov x0, 36284 + add x19, x19, 8 + movk x0, 0x6, lsl 16 + add x19, x20, x19, lsl 8 + bl __const_udelay + mov w0, 16 + str w0, [x19,8] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 ret .size FlashProgSecondCmd, .-FlashProgSecondCmd .align 2 @@ -442,17 +439,17 @@ js_hash: mov w0, 42982 mov x2, 0 movk w0, 0x47c6, lsl 16 -.L49: +.L50: cmp w1, w2 - bls .L51 + bls .L52 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 .L49 -.L51: + b .L50 +.L52: ret .size js_hash, .-js_hash .align 2 @@ -495,11 +492,11 @@ ToshibaSetRRPara: adrp x26, .LANCHOR0 mov w27, 85 mov x19, x2 -.L55: +.L56: add x25, x26, :lo12:.LANCHOR0 ldrb w0, [x25,121] cmp w0, w20 - bls .L61 + bls .L62 add x0, x19, 256 str w27, [x22,8] ldrsb w0, [x20,x0] @@ -508,21 +505,21 @@ ToshibaSetRRPara: bl __const_udelay ldrb w0, [x25,120] cmp w0, 34 - bne .L56 + bne .L57 ldrsb w0, [x24,x20] - b .L60 -.L56: + b .L61 +.L57: cmp w0, 35 - bne .L58 + bne .L59 ldrsb w0, [x21,x20] - b .L60 -.L58: + b .L61 +.L59: ldrsb w0, [x23,400] -.L60: +.L61: str w0, [x22] add x20, x20, 1 - b .L55 -.L61: + b .L56 +.L62: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -549,11 +546,11 @@ SamsungSetRRPara: adrp x23, .LANCHOR0 mov w24, 161 mov x19, x2 -.L63: +.L64: add x0, x23, :lo12:.LANCHOR0 ldrb w0, [x0,121] cmp w0, w20 - bls .L65 + bls .L66 str w24, [x21,8] add x0, x19, 408 str wzr, [x21] @@ -564,8 +561,8 @@ SamsungSetRRPara: str w0, [x21] mov x0, 1500 bl __const_udelay - b .L63 -.L65: + b .L64 +.L66: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -620,29 +617,29 @@ LogAddr2PhyAddr: udiv w10, w6, w5 msub w5, w10, w5, w6 uxth w6, w5 - bne .L69 + bne .L70 add x1, x7, :lo12:.LANCHOR0 ldrb w5, [x1,196] - cbnz w5, .L69 + cbnz w5, .L70 add x1, x1, 200 ldrh w8, [x1,w8,sxtw 1] -.L69: +.L70: add x7, x7, :lo12:.LANCHOR0 cmp w4, 1 - add x7, x7, 712 + add x7, x7, 1224 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 .L70 + bls .L71 ldr w1, [x0,4] ldr w0, [x0,60] add w1, w1, 1024 cmp w1, w0 cset w1, eq -.L70: +.L71: mov w0, w1 ret .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -660,43 +657,43 @@ FlashReadStatusEN: add x6, x5, x0 uxtb w2, w2 ldr x20, [x5,x0] - ldr x0, [x4,744] + ldr x0, [x4,1256] ldrb w19, [x6,8] ldrb w0, [x0,8] cmp w0, 2 - bne .L73 + bne .L74 add x4, x4, 88 - cbnz w2, .L74 + cbnz w2, .L75 ldrb w2, [x4,13] - b .L82 -.L74: + b .L83 +.L75: ldrb w2, [x4,14] -.L82: +.L83: 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, .L77 + cbz w4, .L78 add x3, x19, 8 lsl x3, x3, 8 -.L81: +.L82: cmp w2, w4 - bcs .L77 + bcs .L78 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 .L81 -.L73: + b .L82 +.L74: add x0, x19, 8 mov w1, 112 add x0, x20, x0, lsl 8 str w1, [x0,8] -.L77: +.L78: add x19, x19, 8 mov x0, 400 lsl x19, x19, 8 @@ -718,15 +715,15 @@ FlashWaitReadyEN: uxtb w19, w0 mov w20, w1 uxtb w21, w2 -.L87: +.L88: mov w0, w19 mov w1, w20 mov w2, w21 bl FlashReadStatusEN cmp w0, 255 mov w3, w0 - beq .L87 - tbz x3, 6, .L87 + beq .L88 + tbz x3, 6, .L88 ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -738,8 +735,8 @@ FlashWaitReadyEN: FlashScheduleEnSet: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldr w2, [x1,752] - str w0, [x1,752] + ldr w2, [x1,1264] + str w0, [x1,1264] mov w0, w2 ret .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -747,8 +744,8 @@ FlashScheduleEnSet: .global FlashGetPageSize .type FlashGetPageSize, %function FlashGetPageSize: - adrp x0, .LANCHOR0+744 - ldr x0, [x0,#:lo12:.LANCHOR0+744] + adrp x0, .LANCHOR0+1256 + ldr x0, [x0,#:lo12:.LANCHOR0+1256] ldrb w0, [x0,9] ret .size FlashGetPageSize, .-FlashGetPageSize @@ -821,7 +818,7 @@ NandcSetMode: tst w0, 6 ldr x2, [x1,#:lo12:.LANCHOR0+128] ldr w1, [x2] - beq .L100 + beq .L101 and w0, w0, 4 orr w1, w1, 24576 cmp w0, wzr @@ -838,10 +835,10 @@ NandcSetMode: csel w1, w3, w1, ne mov w0, 39 str w0, [x2,308] - b .L102 -.L100: + b .L103 +.L101: and w1, w1, -8193 -.L102: +.L103: str w1, [x2] mov w0, 0 ret @@ -895,39 +892,39 @@ HynixSetRRPara: stp x23, x24, [sp,48] uxtb x24, w0 mov x21, x2 - ldr x0, [x19,744] + ldr x0, [x19,1256] mov x26, x24 uxtb w25, w3 ldrb w0, [x0,19] cmp w0, 6 - bne .L108 + bne .L109 add x19, x19, x24, lsl 6 lsl w4, w25, 2 - add x19, x19, 780 - b .L114 -.L108: + add x19, x19, 1292 + b .L115 +.L109: cmp w0, 7 - bne .L110 + bne .L111 mov x2, 160 mov w4, 10 madd x19, x24, x2, x19 mul w4, w25, w4 - add x19, x19, 788 -.L114: + add x19, x19, 1300 +.L115: add x19, x19, x4, sxtw - b .L109 -.L110: - cmp w0, 8 - bne .L111 - add x19, x19, 788 - add w4, w25, w25, lsl 2 - b .L114 + b .L110 .L111: + cmp w0, 8 + bne .L112 + add x19, x19, 1300 + add w4, w25, w25, lsl 2 + b .L115 +.L112: lsl x4, x24, 3 add x4, x4, x25, sxtw add x19, x19, x4, lsl 3 - add x19, x19, 780 -.L109: + add x19, x19, 1292 +.L110: add x2, x20, :lo12:.LANCHOR0 lsl x0, x24, 4 add x2, x2, 8 @@ -942,9 +939,9 @@ HynixSetRRPara: add x22, x22, x23 mov x23, 0 str w0, [x22,2056] -.L112: +.L113: cmp x23, x27 - beq .L115 + beq .L116 ldrb w0, [x21,x23] str w0, [x22,2052] mov x0, 1000 @@ -952,15 +949,15 @@ HynixSetRRPara: ldrsb w0, [x19,x23] add x23, x23, 1 str w0, [x22,2048] - b .L112 -.L115: + b .L113 +.L116: add x20, x20, :lo12:.LANCHOR0 mov w0, 22 add x24, x20, x24 str w0, [x22,2056] mov w0, w26 bl NandcFlashDeCs - strb w25, [x24,1616] + strb w25, [x24,2128] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -980,29 +977,29 @@ FlashSetReadRetryDefault: mov x20, 0 add x19, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - ldr x0, [x19,744] + ldr x0, [x19,1256] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 7 - bhi .L116 - add x21, x19, 1620 - add x22, x19, 764 -.L121: + bhi .L117 + add x21, x19, 2132 + add x22, x19, 1276 +.L122: lsl x1, x20, 3 uxtb w0, w20 ldrb w1, [x1,x21] cmp w1, 173 - bne .L118 - ldrb w1, [x19,761] + bne .L119 + ldrb w1, [x19,1273] mov x2, x22 mov w3, 0 bl HynixSetRRPara -.L118: +.L119: add x20, x20, 1 cmp x20, 4 - bne .L121 -.L116: + bne .L122 +.L117: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -1022,13 +1019,13 @@ FlashWaitCmdDone: add x20, x20, :lo12:.LANCHOR0 mov x22, x1 mul x1, x1, x2 - add x0, x20, 1652 + add x0, x20, 2164 add x19, x0, x1 ldrb w21, [x0,x1] ldr x0, [x19,8] - cbz x0, .L125 + cbz x0, .L126 mov w0, w21 - add x20, x20, 712 + add x20, x20, 1224 bl NandcFlashCs ldr w0, [x20,w22,sxtw 2] ldr w1, [x19,4] @@ -1044,10 +1041,10 @@ FlashWaitCmdDone: str w0, [x1] str xzr, [x19,8] ldr x1, [x19,16] - cbz x1, .L125 + cbz x1, .L126 str w0, [x1] str xzr, [x19,16] -.L125: +.L126: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -1080,20 +1077,20 @@ NandcWaitFlashReadyNoDelay: mov w19, 34464 ldr x20, [x1,x0] movk w19, 0x1, lsl 16 -.L133: +.L134: ldr w0, [x20] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L134 + tbnz x0, 9, .L135 mov x0, 50 bl __const_udelay subs w19, w19, #1 - bne .L133 + bne .L134 mov w0, -1 - b .L132 -.L134: + b .L133 +.L135: mov w0, 0 -.L132: +.L133: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1114,20 +1111,20 @@ NandcWaitFlashReady: movk w19, 0x1, lsl 16 mov x0, 750 bl __const_udelay -.L138: +.L139: ldr w0, [x20] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L139 + tbnz x0, 9, .L140 mov x0, 50 bl __const_udelay subs w19, w19, #1 - bne .L138 + bne .L139 mov w0, -1 - b .L137 -.L139: + b .L138 +.L140: mov w0, 0 -.L137: +.L138: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1174,7 +1171,7 @@ flash_enter_slc_mode: uxtb w20, w0 add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,196] - cbz w0, .L142 + cbz w0, .L143 mov w0, w20 add x19, x19, 8 bl NandcFlashCs @@ -1202,7 +1199,7 @@ flash_enter_slc_mode: str w0, [x19,2056] mov w0, w20 bl NandcWaitFlashReady -.L142: +.L143: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1218,7 +1215,7 @@ flash_exit_slc_mode: uxtb w20, w0 add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,196] - cbz w0, .L147 + cbz w0, .L148 mov w0, w20 add x19, x19, 8 bl NandcFlashCs @@ -1247,7 +1244,7 @@ flash_exit_slc_mode: str w0, [x19,2056] mov w0, w20 bl NandcWaitFlashReady -.L147: +.L148: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1293,9 +1290,9 @@ FlashSetInterfaceMode: mov w8, 239 stp x29, x30, [sp, -16]! add x7, x1, 8 - add x4, x1, 1620 + add x4, x1, 2132 add x29, sp, 0 - ldrb w2, [x1,1844] + ldrb w2, [x1,2356] mov w9, 128 mov w10, 1 mov w12, 35 @@ -1304,68 +1301,68 @@ FlashSetInterfaceMode: mov w13, 32 mov w14, 5 uxtb w5, w2 -.L164: +.L165: ldrb w3, [x6,x4] ldr x1, [x7] cmp w3, 152 ldrb w2, [x7,8] - beq .L154 + beq .L155 cmp w3, 69 - beq .L154 + beq .L155 cmp w3, 173 - beq .L154 + beq .L155 cmp w3, 44 - bne .L155 -.L154: + bne .L156 +.L155: cmp w0, 1 - bne .L157 - cbz w11, .L155 + bne .L158 + cbz w11, .L156 ubfiz x2, x2, 8, 8 cmp w3, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L158 + bne .L159 str w0, [x1,2052] - b .L175 -.L158: + b .L176 +.L159: cmp w3, 44 - bne .L160 + bne .L161 str w0, [x1,2052] str w14, [x1,2048] - b .L162 -.L160: + b .L163 +.L161: str w9, [x1,2052] str w0, [x1,2048] - b .L162 -.L157: - cbz w5, .L155 + b .L163 +.L158: + cbz w5, .L156 ubfiz x2, x2, 8, 8 cmp w3, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L161 + bne .L162 str w10, [x1,2052] str w13, [x1,2048] - b .L162 -.L161: + b .L163 +.L162: cmp w3, 44 - bne .L163 + bne .L164 str w10, [x1,2052] str w12, [x1,2048] - b .L162 -.L163: + b .L163 +.L164: str w9, [x1,2052] -.L175: +.L176: str wzr, [x1,2048] -.L162: +.L163: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L155: +.L156: add x6, x6, 8 add x7, x7, 16 cmp x6, 32 - bne .L164 + bne .L165 mov w0, 0 bl NandcWaitFlashReady mov w0, 0 @@ -1479,23 +1476,23 @@ SandiskSetRRPara: add x0, x0, x1 add x1, x2, x1 mov x2, 0 -.L179: +.L180: add x3, x5, :lo12:.LANCHOR0 ldrb w4, [x3,121] cmp w4, w2 - bls .L184 + bls .L185 ldrb w3, [x3,120] cmp w3, 67 - bne .L180 + bne .L181 ldrsb w3, [x0,x2] - b .L183 -.L180: + b .L184 +.L181: ldrsb w3, [x1,x2] -.L183: +.L184: str w3, [x20] add x2, x2, 1 - b .L179 -.L184: + b .L180 +.L185: mov w0, 0 bl NandcWaitFlashReady ldp x19, x20, [sp,16] @@ -1552,11 +1549,11 @@ FlashEraseSLc2KBlocks: mov w24, w1 mov x20, x0 mov w22, 0 - add x25, x21, 1652 + add x25, x21, 2164 add x23, x23, :lo12:.LC0 -.L187: +.L188: cmp w22, w24 - beq .L196 + beq .L197 add x2, x29, 88 sub w4, w24, w22 mov x0, x20 @@ -1564,16 +1561,16 @@ FlashEraseSLc2KBlocks: add x3, x29, 92 bl LogAddr2PhyAddr ldr w2, [x29,92] - ldrb w0, [x21,1845] + ldrb w0, [x21,2357] cmp w2, w0 - bcc .L188 + bcc .L189 mov w0, -1 str w0, [x20] - b .L189 -.L188: + b .L190 +.L189: uxtw x2, w2 add x0, x21, x2 - ldrb w19, [x0,1848] + ldrb w19, [x0,2360] mov x0, 24 mul x2, x2, x0 mov w0, w19 @@ -1603,24 +1600,24 @@ FlashEraseSLc2KBlocks: ldr w1, [x29,88] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L190 + tbz x0, 0, .L191 mov w0, -1 str w0, [x20] -.L190: +.L191: ldr w0, [x20] cmn w0, #1 - bne .L191 + bne .L192 ldr w1, [x29,88] mov x0, x23 bl printk -.L191: +.L192: mov w0, w19 bl NandcFlashDeCs -.L189: +.L190: add w22, w22, 1 add x20, x20, 56 - b .L187 -.L196: + b .L188 +.L197: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -1655,7 +1652,7 @@ FlashReadDpCmd: cmp w0, 1 and w5, w1, 255 lsr w0, w1, 16 - bne .L198 + bne .L199 add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str x1, [x29,72] @@ -1678,8 +1675,8 @@ FlashReadDpCmd: str w20, [x19,2052] str w0, [x19,2056] ldr x1, [x29,72] - b .L199 -.L198: + b .L200 +.L199: add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str w2, [x19,2056] @@ -1693,7 +1690,7 @@ FlashReadDpCmd: str w22, [x19,2052] str w20, [x19,2052] str w0, [x19,2056] -.L199: +.L200: mov w0, w21 bl FlashSetRandomizer ldr x23, [sp,48] @@ -1714,25 +1711,25 @@ ftl_flash_de_init: adrp x19, .LANCHOR0 bl FlashSetReadRetryDefault add x0, x19, :lo12:.LANCHOR0 - ldr w0, [x0,1856] - cbz w0, .L201 + ldr w0, [x0,2368] + cbz w0, .L202 mov w0, 0 bl flash_enter_slc_mode - b .L202 -.L201: - bl flash_exit_slc_mode + b .L203 .L202: + bl flash_exit_slc_mode +.L203: add x20, x19, :lo12:.LANCHOR0 - ldrb w0, [x20,1860] - cbz w0, .L203 - ldrb w0, [x20,1844] - tbz x0, 0, .L203 + ldrb w0, [x20,2372] + cbz w0, .L204 + ldrb w0, [x20,2356] + tbz x0, 0, .L204 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,1860] -.L203: + strb wzr, [x20,2372] +.L204: add x19, x19, :lo12:.LANCHOR0 ldr x0, [x19,8] str wzr, [x0,336] @@ -1769,37 +1766,37 @@ NandcTimeCfg: add x1, x1, :lo12:.LANCHOR0 sdiv w0, w0, w2 cmp w0, 250 - ble .L212 + ble .L213 ldr x0, [x1,128] mov w1, 8354 - b .L219 -.L212: - cmp w0, 220 - ble .L214 - ldr x0, [x1,128] b .L220 -.L214: - cmp w0, 185 +.L213: + cmp w0, 220 ble .L215 ldr x0, [x1,128] - mov w1, 4226 - b .L219 + b .L221 .L215: + cmp w0, 185 + ble .L216 + ldr x0, [x1,128] + mov w1, 4226 + b .L220 +.L216: cmp w0, 160 ldr x0, [x1,128] - ble .L216 + ble .L217 mov w1, 4194 - b .L219 -.L216: + b .L220 +.L217: cmp w19, 35 mov w1, 4193 - bls .L219 + bls .L220 cmp w19, 99 mov w1, 4225 - bls .L219 -.L220: + bls .L220 +.L221: mov w1, 8322 -.L219: +.L220: str w1, [x0,4] ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -1815,15 +1812,15 @@ FlashTimingCfg: and w1, w1, -33 cmp w1, 1 add x29, sp, 0 - bls .L222 + bls .L223 mov w1, 8322 cmp w0, w1 - bne .L223 -.L222: + bne .L224 +.L223: adrp x1, .LANCHOR0+128 ldr x1, [x1,#:lo12:.LANCHOR0+128] str w0, [x1,4] -.L223: +.L224: adrp x0, .LANCHOR1+493 ldrb w0, [x0,#:lo12:.LANCHOR1+493] bl NandcTimeCfg @@ -1853,19 +1850,19 @@ NandcInit: str x0, [x1,128] ldr w2, [x0] ubfx x3, x2, 13, 1 - str w3, [x1,1864] + str w3, [x1,2376] ldr w3, [x0,352] and w2, w2, 245760 orr w2, w2, 256 ubfx x3, x3, 16, 4 - str w3, [x1,1868] + str w3, [x1,2380] ldr w3, [x0,352] - str w3, [x1,1872] + str w3, [x1,2384] cmp w3, 2049 - bne .L225 + bne .L226 mov w3, 8 - str w3, [x1,1868] -.L225: + str w3, [x1,2380] +.L226: add x19, x19, :lo12:.LANCHOR0 str w2, [x0] ldr x0, [x19,128] @@ -1880,12 +1877,12 @@ NandcInit: str w1, [x0,304] mov w0, 36864 bl ftl_malloc - str wzr, [x19,1928] - str x0, [x19,1880] - str x0, [x19,1888] + str wzr, [x19,2440] + str x0, [x19,2392] + str x0, [x19,2400] add x0, x0, 32768 - str wzr, [x19,1936] - str x0, [x19,1896] + str wzr, [x19,2448] + str x0, [x19,2408] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1923,24 +1920,24 @@ NandcBchSel: mov w3, 1 cmp w0, 16 ldr x2, [x1,128] - str w0, [x1,1940] + str w0, [x1,2452] mov w1, 4096 str w3, [x2,8] - bne .L228 -.L231: + bne .L229 +.L232: and w1, w1, -17 - b .L229 -.L228: + b .L230 +.L229: cmp w0, 24 - bne .L230 + bne .L231 orr w1, w1, 16 - b .L229 -.L230: + b .L230 +.L231: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L231 -.L229: + beq .L232 +.L230: orr w1, w1, 1 str w1, [x2,12] ret @@ -1950,10 +1947,10 @@ NandcBchSel: .type FlashBchSel, %function FlashBchSel: stp x29, x30, [sp, -16]! - adrp x1, .LANCHOR0+1944 + adrp x1, .LANCHOR0+2456 uxtb w0, w0 add x29, sp, 0 - strb w0, [x1,#:lo12:.LANCHOR0+1944] + strb w0, [x1,#:lo12:.LANCHOR0+2456] bl NandcBchSel ldp x29, x30, [sp], 16 ret @@ -1969,7 +1966,7 @@ ftl_flash_resume: str x21, [sp,32] add x0, x20, :lo12:.LANCHOR0 mov x21, 0 - add x19, x0, 1620 + add x19, x0, 2132 ldr x1, [x0,128] ldr w2, [x0,136] str w2, [x1] @@ -1989,34 +1986,34 @@ ftl_flash_resume: str w2, [x1,336] ldr w2, [x0,164] str w2, [x1,344] -.L238: +.L239: lsl x0, x21, 3 ldrb w0, [x0,x19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L237 + bhi .L238 mov w0, w21 bl FlashReset -.L237: +.L238: add x21, x21, 1 cmp x21, 4 - bne .L238 + bne .L239 add x19, x20, :lo12:.LANCHOR0 - ldrb w0, [x19,1860] - cbz w0, .L239 + ldrb w0, [x19,2372] + cbz w0, .L240 mov w0, 1 bl NandcSetMode - ldrb w0, [x19,1844] + ldrb w0, [x19,2356] bl FlashSetInterfaceMode - ldrb w0, [x19,1844] + ldrb w0, [x19,2356] bl NandcSetMode ldr w0, [x19,152] lsr w0, w0, 8 bl NandcSetDdrPara -.L239: +.L240: add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x20,744] + ldr x0, [x20,1256] ldrb w0, [x0,20] bl FlashBchSel ldr x21, [sp,32] @@ -2059,18 +2056,18 @@ NandcIqrWaitFlashReady: orr w0, w0, 2 str w0, [x19,364] ldr w0, [x19] - tbnz x0, 9, .L247 + tbnz x0, 9, .L248 mov x0, x19 bl wait_for_nand_flash_ready - b .L246 -.L247: + 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] -.L246: +.L247: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2094,17 +2091,17 @@ FlashEraseBlocks: mov w20, 0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - cbz w2, .L250 + cbz w2, .L251 mov w1, w23 bl FlashEraseSLc2KBlocks - b .L251 -.L250: + b .L252 +.L251: mov w28, 56 - add x25, x19, 1652 + add x25, x19, 2164 mov x26, 24 -.L281: +.L282: cmp w20, w23 - bcs .L282 + bcs .L283 umull x5, w20, w28 mov w1, 0 sub w4, w23, w20 @@ -2115,55 +2112,55 @@ FlashEraseBlocks: str x5, [x29,96] bl LogAddr2PhyAddr mov w22, w0 - ldrb w1, [x19,1845] + ldrb w1, [x19,2357] ldr w0, [x29,124] ldr x5, [x29,96] cmp w0, w1 - bcc .L252 + bcc .L253 mov w0, -1 str w0, [x24,x5] - b .L253 -.L252: - ldrb w1, [x19,1945] + 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, .L255 + cbz x1, .L256 bl FlashWaitCmdDone -.L255: +.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, .L256 + cbz w22, .L257 add w1, w20, 1 umull x1, w1, w28 add x1, x24, x1 str x1, [x2,16] -.L256: +.L257: add x1, x19, x0 mul x0, x0, x26 - ldrb w21, [x1,1848] + ldrb w21, [x1,2360] strb w21, [x25,x0] mov w0, w21 bl NandcFlashCs cmp w27, 1 - bne .L257 + bne .L258 ldrb w0, [x19,196] - cbz w0, .L257 + cbz w0, .L258 mov w0, w21 bl flash_enter_slc_mode - b .L258 -.L257: + b .L259 +.L258: mov w0, w21 bl flash_exit_slc_mode -.L258: +.L259: ldr w1, [x29,124] - add x0, x19, 712 + add x0, x19, 1224 add w20, w20, w22 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,120] @@ -2177,53 +2174,53 @@ FlashEraseBlocks: bl FlashEraseCmd mov w0, w21 bl NandcFlashDeCs -.L253: +.L254: add w20, w20, 1 - b .L281 -.L282: + b .L282 +.L283: ldr x0, [x29,104] mov x20, 0 mov x22, 24 add x19, x0, :lo12:.LANCHOR0 - add x21, x19, 1652 + add x21, x19, 2164 ldr x0, [x19,128] bl NandcIqrWaitFlashReady -.L260: - ldrb w0, [x19,1845] +.L261: + ldrb w0, [x19,2357] cmp w0, w20 - bls .L283 + bls .L284 mov w0, w20 bl FlashWaitCmdDone cmp w27, 1 - bne .L261 + bne .L262 ldrb w0, [x19,196] - cbz w0, .L261 + cbz w0, .L262 mul x0, x20, x22 ldrb w0, [x0,x21] bl flash_exit_slc_mode -.L261: +.L262: add x20, x20, 1 - b .L260 -.L283: - ldr w0, [x19,1948] - cbnz w0, .L263 -.L265: + b .L261 +.L284: + ldr w0, [x19,2460] + cbnz w0, .L264 +.L266: mov w0, 0 - b .L251 -.L263: - ldrb w0, [x19,1620] + b .L252 +.L264: + ldrb w0, [x19,2132] cmp w0, 69 - bne .L265 + bne .L266 mov x0, 0 mov x1, 56 -.L264: +.L265: cmp w23, w0 - bls .L265 + bls .L266 mul x2, x0, x1 add x0, x0, 1 str wzr, [x24,x2] - b .L264 -.L251: + b .L265 +.L252: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -2273,11 +2270,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L287: +.L288: ldr w1, [x0,8] str w1, [sp,8] ldr w1, [sp,8] - tbz x1, 20, .L287 + tbz x1, 20, .L288 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -2291,113 +2288,105 @@ NandcXferStart: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - str x25, [sp,64] - uxtb w25, w1 - add x1, x19, :lo12:.LANCHOR0 + uxtb w2, w2 stp x23, x24, [sp,48] - uxtb w23, w2 - add x2, x1, 8 + uxtb w23, w1 + add x1, x19, :lo12:.LANCHOR0 + add x6, x1, 8 + ubfiz w20, w23, 1, 1 stp x21, x22, [sp,32] - mov x22, x4 - add x4, x2, x0 - ldr x21, [x2,x0] - mov w2, 16 - ubfiz w20, w25, 1, 1 - ldrb w0, [x4,8] + add x7, x6, x0 orr w20, w20, 8 - ldr w24, [x21,12] - bfi w24, w2, 8, 8 - and w24, w24, -9 - bfi w24, w0, 5, 3 + ldr x21, [x6,x0] + mov w6, 16 + ldrb w0, [x7,8] + ldr w22, [x21,12] + bfi w22, w6, 8, 8 + and w22, w22, -9 + bfi w22, w0, 5, 3 mov w0, 1 bfi w20, w0, 5, 2 - ldr w0, [x1,1868] + ldr w0, [x1,2380] orr w20, w20, 536870912 cmp w0, 3 orr w20, w20, 1024 bfi w20, w3, 4, 1 - bls .L291 + bls .L292 ldr w0, [x21,16] cmp x5, xzr str w0, [x29,88] - cset w7, ne + cset w9, ne ldr w0, [x29,88] and w0, w0, -5 str w0, [x29,88] - cbnz w7, .L305 - cbz x22, .L292 -.L305: - cbnz w25, .L294 -.L302: - mov x0, x21 - add w23, w23, 1 - asr w23, w23, 1 - bl rk_nandc_xfer_irq_flag_init - bfi w20, w23, 22, 6 - ldr w0, [x21,368] - orr w0, w0, 1 - str w0, [x21,368] - ldr w0, [x21,364] - orr w0, w0, 1 - str w0, [x21,364] - mov x0, x22 - cbnz x22, .L296 + cbnz w9, .L306 + cbz x4, .L293 +.L306: + cbnz w23, .L295 +.L303: + add w2, w2, 1 + mov x0, x4 + asr w2, w2, 1 + bfi w20, w2, 22, 6 + cbnz x4, .L297 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,1888] - b .L296 -.L294: + ldr x0, [x0,2400] + b .L297 +.L295: add x1, x19, :lo12:.LANCHOR0 - mov w4, 128 - mov w2, 0 - lsr w8, w23, 1 - mov w3, w2 - mov w9, -1 - ldr w0, [x1,1940] + mov w7, 128 + mov w3, 0 + lsr w10, w2, 1 + mov w6, w3 + mov w11, -1 + ldr w0, [x1,2452] cmp w0, 25 mov w0, 64 - csel w4, w0, w4, cc -.L298: - cmp w3, w8 - bcs .L302 - lsr w0, w2, 2 - ubfiz x0, x0, 2, 30 - cbz w7, .L299 - ldrh w6, [x5,2] - ldr x10, [x1,1896] - ldrh w11, [x5],4 - orr w6, w11, w6, lsl 16 - str w6, [x10,x0] - b .L300 + csel w7, w0, w7, cc .L299: - ldr x6, [x1,1896] - str w9, [x6,x0] + cmp w6, w10 + bcs .L303 + lsr w0, w3, 2 + ubfiz x0, x0, 2, 30 + cbz w9, .L300 + ldrh w8, [x5,2] + ldr x12, [x1,2408] + ldrh w13, [x5],4 + orr w8, w13, w8, lsl 16 + str w8, [x12,x0] + b .L301 .L300: - add w3, w3, 1 - add w2, w2, w4 - b .L298 -.L296: + ldr x8, [x1,2408] + str w11, [x8,x0] +.L301: + add w6, w6, 1 + add w3, w3, w7 + b .L299 +.L297: add x19, x19, :lo12:.LANCHOR0 - ubfx x23, x20, 22, 5 - mov w2, w25 - and x22, x22, 3 - ldr x1, [x19,1896] - str x1, [x19,1912] - lsl w1, w23, 10 - str x0, [x19,1904] + ubfx x24, x20, 22, 5 + mov w2, w23 + str x4, [x29,72] + ldr x1, [x19,2408] + str x1, [x19,2424] + lsl w1, w24, 10 + str x0, [x19,2416] bl rknand_dma_map_single - str w0, [x19,1920] - ldr x0, [x19,1912] - lsl w1, w23, 7 - mov w2, w25 + str w0, [x19,2432] + ldr x0, [x19,2424] + lsl w1, w24, 7 + mov w2, w23 bl rknand_dma_map_single - str w0, [x19,1924] + str w0, [x19,2436] mov w0, 1 - str w0, [x19,1928] - ldr w0, [x19,1920] + str w0, [x19,2440] + ldr w0, [x19,2432] mov w1, 16 str w0, [x21,20] - ldr w0, [x19,1924] + ldr x4, [x29,72] + ldr w0, [x19,2436] str w0, [x21,24] + and x4, x4, 3 str wzr, [x29,88] ldr w0, [x29,88] bfi w0, w1, 9, 5 @@ -2405,14 +2394,14 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 448 str w0, [x29,88] - cbnz x22, .L303 + cbnz x4, .L304 ldr w0, [x29,88] mov w1, 2 bfi w0, w1, 3, 3 str w0, [x29,88] -.L303: +.L304: ldr w0, [x29,88] - cmp w25, wzr + cmp w23, wzr cset w1, eq orr w0, w0, 4 str w0, [x29,88] @@ -2422,18 +2411,17 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 1 str w0, [x29,88] -.L292: +.L293: ldr w0, [x29,88] str w0, [x21,16] -.L291: - str w24, [x21,12] +.L292: + str w22, [x21,12] str w20, [x21,8] orr w20, w20, 4 str w20, [x21,8] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldr x25, [sp,64] ldp x29, x30, [sp], 96 ret .size NandcXferStart, .-NandcXferStart @@ -2443,14 +2431,14 @@ NandcXferStart: Ftl_log2: mov w2, 1 mov w1, 0 -.L310: +.L311: cmp w2, w0 - bhi .L312 + bhi .L313 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L310 -.L312: + b .L311 +.L313: sub w0, w1, #1 ret .size Ftl_log2, .-Ftl_log2 @@ -2470,17 +2458,17 @@ FtlSysBlkNumInit: csel w0, w0, w1, hi adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w2, [x1,1956] - ldrh w3, [x1,1966] - str w0, [x1,1952] + ldrh w2, [x1,2468] + ldrh w3, [x1,2478] + str w0, [x1,2464] mul w2, w0, w2 sub w0, w3, w0 - strh w0, [x1,1964] - ldr w0, [x1,1972] - str w2, [x1,1960] + strh w0, [x1,2476] + ldr w0, [x1,2484] + str w2, [x1,2472] sub w2, w0, w2 mov w0, 0 - str w2, [x1,1968] + str w2, [x1,2480] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 @@ -2502,35 +2490,35 @@ FtlConstantsInit: ldrh w6, [x0,8] ldrh w2, [x0,10] ldrh w0, [x0,12] - strh w6, [x1,1976] - strh w2, [x1,1978] - strh w0, [x1,1980] - strh w4, [x1,1966] -.L317: - add x5, x1, 1984 + strh w6, [x1,2488] + strh w2, [x1,2490] + strh w0, [x1,2492] + strh w4, [x1,2478] +.L318: + add x5, x1, 2496 strb w3, [x3,x5] add x3, x3, 1 cmp x3, 32 - bne .L317 + bne .L318 ldrh w3, [x23,20] ldrb w1, [x23,15] cmp w3, w1 - bcs .L318 + bcs .L319 uxtb w8, w0 mov w3, 0 mul w11, w0, w2 ubfiz w10, w8, 1, 7 add x12, x20, :lo12:.LANCHOR0 -.L319: +.L320: cmp w3, w0 - bcs .L321 + bcs .L322 uxtb w1, w3 mov w5, w3 mov w7, 0 -.L322: +.L323: cmp w7, w2 - bcs .L344 - add x9, x12, 1984 + bcs .L345 + add x9, x12, 2496 add w13, w5, w11 add w14, w1, w8 add w7, w7, 1 @@ -2539,162 +2527,162 @@ FtlConstantsInit: strb w14, [x9,x13] add w5, w5, w0 uxtb w1, w1 - b .L322 -.L344: + b .L323 +.L345: add w3, w3, 1 - b .L319 -.L321: + b .L320 +.L322: add x1, x20, :lo12:.LANCHOR0 lsl w2, w2, 1 lsr w4, w4, 1 - strh w2, [x1,1978] - strh w4, [x1,1966] -.L318: + strh w2, [x1,2490] + strh w4, [x1,2478] +.L319: add x1, x20, :lo12:.LANCHOR0 mov w2, 5 cmp w6, 1 - strh w2, [x1,2016] - strh wzr, [x1,2018] - bne .L323 - strh w6, [x1,2016] -.L323: + strh w2, [x1,2528] + strh wzr, [x1,2530] + bne .L324 + strh w6, [x1,2528] +.L324: add x1, x20, :lo12:.LANCHOR0 mov w2, 4352 ldrb w26, [x1,72] - strh w2, [x1,2020] - cbz w26, .L324 + strh w2, [x1,2532] + cbz w26, .L325 mov w2, 384 - strh w2, [x1,2020] -.L324: + strh w2, [x1,2532] +.L325: add x21, x20, :lo12:.LANCHOR0 ldrh w25, [x23,16] ldrh w24, [x23,20] ldrh w27, [x23,18] - ldrh w22, [x21,1978] - ldrh w19, [x21,1966] - strh w25, [x21,2024] + ldrh w22, [x21,2490] + ldrh w19, [x21,2478] + strh w25, [x21,2536] mul w22, w0, w22 mul w0, w19, w0 - strh w0, [x21,2022] + strh w0, [x21,2534] uxth w22, w22 - strh w27, [x21,2026] - strh w22, [x21,1956] + strh w27, [x21,2538] + strh w22, [x21,2468] mul w0, w22, w25 - strh w0, [x21,2028] + strh w0, [x21,2540] mov w0, w24 - strh w24, [x21,2030] + strh w24, [x21,2542] bl Ftl_log2 uxth w3, w0 lsl w2, w24, 9 - strh w0, [x21,2032] + strh w0, [x21,2544] ldrh w0, [x23,26] cmp w19, 1024 - strh w2, [x21,2034] + strh w2, [x21,2546] ubfx x2, x2, 9, 7 - strh w0, [x21,2038] + strh w0, [x21,2550] lsl w2, w2, 1 mul w0, w22, w19 - strh w2, [x21,2036] - str w0, [x21,1972] - bls .L325 + strh w2, [x21,2548] + str w0, [x21,2484] + bls .L326 and w0, w19, 255 - strh w0, [x21,2018] -.L325: + strh w0, [x21,2530] +.L326: add x2, x20, :lo12:.LANCHOR0 mul w0, w24, w27 - ldrh w1, [x2,2018] + ldrh w1, [x2,2530] sub w1, w19, w1 mul w1, w22, w1 mul w1, w1, w24 mul w1, w1, w25 asr w1, w1, 11 - str w1, [x2,2040] - ldrh w1, [x2,2020] + str w1, [x2,2552] + ldrh w1, [x2,2532] lsl w1, w1, 3 sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L341 + bhi .L342 mov w0, 4 -.L341: - strh w0, [x2,2044] - cbz w26, .L328 +.L342: + strh w0, [x2,2556] + cbz w26, .L329 add x0, x20, :lo12:.LANCHOR0 mov w1, 640 - strh w1, [x0,2020] -.L328: + strh w1, [x0,2532] +.L329: add x1, x20, :lo12:.LANCHOR0 lsl w19, w19, 6 cmp w22, 1 - ldrh w0, [x1,2020] + ldrh w0, [x1,2532] asr w0, w0, w3 add w3, w3, 9 asr w19, w19, w3 - strh w19, [x1,2048] + strh w19, [x1,2560] and w19, w19, 65535 add w0, w0, 2 - strh w0, [x1,2046] + strh w0, [x1,2558] mul w0, w19, w22 - str w0, [x1,2052] + str w0, [x1,2564] add w19, w19, 8 - ldrh w0, [x1,2044] + ldrh w0, [x1,2556] udiv w0, w0, w22 add w19, w19, w0 - bne .L342 + bne .L343 add w19, w19, 4 -.L342: - str w19, [x1,1952] +.L343: + str w19, [x1,2464] add x19, x20, :lo12:.LANCHOR0 - ldrh w0, [x19,1952] + ldrh w0, [x19,2464] bl FtlSysBlkNumInit - str wzr, [x19,2064] - ldr w0, [x19,1952] - str w0, [x19,2056] - ldr w0, [x19,1968] - ldrh w1, [x19,2024] + str wzr, [x19,2576] + ldr w0, [x19,2464] + str w0, [x19,2568] + ldr w0, [x19,2480] + ldrh w1, [x19,2536] lsl w0, w0, 2 - ldrh w3, [x19,2030] - ldrh w2, [x19,2044] + ldrh w3, [x19,2542] + ldrh w2, [x19,2556] mul w1, w0, w1 - ldrh w0, [x19,2032] + ldrh w0, [x19,2544] ldrb w5, [x19,196] add w0, w0, 9 lsr w0, w1, w0 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x19,2062] + strh w1, [x19,2574] uxth w0, w0 - strh w0, [x19,2060] + strh w0, [x19,2572] add w1, w2, 3 - strh w1, [x19,2044] - ldr w1, [x19,2052] + strh w1, [x19,2556] + ldr w1, [x19,2564] add w4, w1, 3 - str w4, [x19,2052] - cbz w5, .L331 + str w4, [x19,2564] + cbz w5, .L332 add w2, w2, 4 add w1, w1, 5 - strh w2, [x19,2044] - b .L343 -.L331: - cmp w4, 7 - bhi .L332 - mov w1, 8 -.L343: - str w1, [x19,2052] + strh w2, [x19,2556] + b .L344 .L332: + cmp w4, 7 + bhi .L333 + mov w1, 8 +.L344: + str w1, [x19,2564] +.L333: add x20, x20, :lo12:.LANCHOR0 - ldrh w1, [x20,1964] - strh wzr, [x20,2068] + ldrh w1, [x20,2476] + strh wzr, [x20,2580] 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 .L333 + bcs .L334 mov w0, 1 - strh w0, [x20,2068] -.L333: + strh w0, [x20,2580] +.L334: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -2712,24 +2700,24 @@ IsBlkInVendorPart: uxth w4, w0 add x1, x1, :lo12:.LANCHOR0 mov w0, 0 - ldrh w2, [x1,2070] - cbz w2, .L346 - ldrh w2, [x1,2044] - ldr x3, [x1,2072] + ldrh w2, [x1,2582] + cbz w2, .L347 + ldrh w2, [x1,2556] + ldr x3, [x1,2584] mov x1, 0 -.L347: +.L348: cmp w2, w1, uxth - bls .L352 + bls .L353 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L347 + bne .L348 mov w0, 1 - b .L346 -.L352: + b .L347 +.L353: mov w0, 0 -.L346: +.L347: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -2740,50 +2728,50 @@ FtlCacheMetchLpa: mov w6, w0 add x2, x2, :lo12:.LANCHOR0 mov w0, 0 - ldr w3, [x2,2080] - cbz w3, .L354 - ldr x5, [x2,2088] + ldr w3, [x2,2592] + cbz w3, .L355 + ldr x5, [x2,2600] mov x0, 56 mov x2, 0 -.L355: +.L356: cmp w3, w2 - bls .L364 + bls .L365 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L355 + bcc .L356 cmp w4, w1 - bhi .L355 + bhi .L356 mov w0, 1 - b .L354 -.L364: + b .L355 +.L365: mov w0, 0 -.L354: +.L355: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 .global FtlGetCap .type FtlGetCap, %function FtlGetCap: - adrp x0, .LANCHOR0+2064 - ldr w0, [x0,#:lo12:.LANCHOR0+2064] + adrp x0, .LANCHOR0+2576 + ldr w0, [x0,#:lo12:.LANCHOR0+2576] ret .size FtlGetCap, .-FtlGetCap .align 2 .global ftl_get_density .type ftl_get_density, %function ftl_get_density: - adrp x0, .LANCHOR0+2064 - ldr w0, [x0,#:lo12:.LANCHOR0+2064] + adrp x0, .LANCHOR0+2576 + ldr w0, [x0,#:lo12:.LANCHOR0+2576] ret .size ftl_get_density, .-ftl_get_density .align 2 .global FtlGetLpn .type FtlGetLpn, %function FtlGetLpn: - adrp x0, .LANCHOR0+2096 - ldr w0, [x0,#:lo12:.LANCHOR0+2096] + adrp x0, .LANCHOR0+2608 + ldr w0, [x0,#:lo12:.LANCHOR0+2608] ret .size FtlGetLpn, .-FtlGetLpn .align 2 @@ -2797,7 +2785,7 @@ FtlBbmMapBadBlock: str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x19, x19, 2104 + add x19, x19, 2616 ldrh w3, [x19,-82] udiv w2, w1, w3 add x0, x19, x2, uxth 3 @@ -2828,11 +2816,11 @@ FtlBbmIsBadBlock: adrp x2, .LANCHOR0 uxth w0, w0 add x3, x2, :lo12:.LANCHOR0 - ldrh w1, [x3,2022] + ldrh w1, [x3,2534] udiv w2, w0, w1 msub w0, w2, w1, w0 add x2, x3, x2, uxth 3 - ldr x1, [x2,2136] + ldr x1, [x2,2648] uxth w0, w0 ubfx x3, x0, 5, 11 ldr w1, [x1,x3,lsl 2] @@ -2858,22 +2846,22 @@ FtlBbtCalcTotleCnt: str x21, [sp,32] mov w19, 0 mov w20, w19 - ldrh w1, [x0,2022] - ldrh w21, [x0,1978] + ldrh w1, [x0,2534] + ldrh w21, [x0,2490] mul w21, w1, w21 -.L372: +.L373: cmp w20, w21 - bge .L378 + bge .L379 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L373 + cbz w0, .L374 add w19, w19, 1 uxth w19, w19 -.L373: +.L374: add w20, w20, 1 uxth w20, w20 - b .L372 -.L378: + b .L373 +.L379: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -2888,11 +2876,11 @@ V2P_block: uxth w0, w0 add x3, x3, :lo12:.LANCHOR0 uxth w1, w1 - ldrh w4, [x3,1980] + ldrh w4, [x3,2492] udiv w2, w0, w4 msub w0, w2, w4, w0 madd w0, w1, w4, w0 - ldrh w1, [x3,2022] + ldrh w1, [x3,2534] madd w0, w2, w1, w0 ret .size V2P_block, .-V2P_block @@ -2903,8 +2891,8 @@ P2V_plane: adrp x2, .LANCHOR0 uxth w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrh w1, [x2,1980] - ldrh w3, [x2,2022] + ldrh w1, [x2,2492] + ldrh w3, [x2,2534] udiv w2, w0, w1 udiv w3, w0, w3 msub w0, w2, w1, w0 @@ -2918,10 +2906,10 @@ P2V_block_in_plane: adrp x2, .LANCHOR0 uxth w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrh w3, [x2,2022] + ldrh w3, [x2,2534] udiv w1, w0, w3 msub w0, w1, w3, w0 - ldrh w1, [x2,1980] + ldrh w1, [x2,2492] uxth w0, w0 udiv w0, w0, w1 ret @@ -2932,24 +2920,24 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L383 + bls .L384 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L384 -.L383: + b .L385 +.L384: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L384: +.L385: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 .global FtlFreeSysBlkQueueEmpty .type FtlFreeSysBlkQueueEmpty, %function FtlFreeSysBlkQueueEmpty: - adrp x0, .LANCHOR0+2206 - ldrh w0, [x0,#:lo12:.LANCHOR0+2206] + adrp x0, .LANCHOR0+2718 + ldrh w0, [x0,#:lo12:.LANCHOR0+2718] cmp w0, wzr cset w0, eq ret @@ -2958,8 +2946,8 @@ FtlFreeSysBlkQueueEmpty: .global FtlFreeSysBlkQueueFull .type FtlFreeSysBlkQueueFull, %function FtlFreeSysBlkQueueFull: - adrp x0, .LANCHOR0+2206 - ldrh w0, [x0,#:lo12:.LANCHOR0+2206] + adrp x0, .LANCHOR0+2718 + ldrh w0, [x0,#:lo12:.LANCHOR0+2718] cmp w0, 1024 cset w0, eq ret @@ -2977,39 +2965,39 @@ FtlFreeSysBlkQueueIn: mov w0, 65533 sub w2, w21, #1 cmp w0, w2, uxth - bcc .L387 + bcc .L388 adrp x2, .LANCHOR0 add x0, x2, :lo12:.LANCHOR0 mov x19, x2 - ldrh w0, [x0,2206] + ldrh w0, [x0,2718] cmp w0, 1024 - beq .L387 - cbz w1, .L389 + beq .L388 + cbz w1, .L390 adrp x20, .LANCHOR2 add x20, x20, :lo12:.LANCHOR2 - ldr w0, [x20,-96] - cbnz w0, .L389 + ldr w0, [x20,416] + cbnz w0, .L390 mov w0, w21 bl P2V_block_in_plane uxth w22, w0 - ldr x0, [x20,-88] + ldr x0, [x20,424] lsl w1, w21, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 - ldr x0, [x20,-88] + ldr x0, [x20,424] bl FlashEraseBlocks ubfiz x0, x22, 1, 16 - ldr x2, [x20,-80] + ldr x2, [x20,432] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x20,-72] + ldr w0, [x20,440] add w0, w0, 1 - str w0, [x20,-72] -.L389: + str w0, [x20,440] +.L390: add x1, x19, :lo12:.LANCHOR0 - add x1, x1, 2200 + add x1, x1, 2712 ldrh w0, [x1,6] ldrh w2, [x1,4] add w0, w0, 1 @@ -3019,7 +3007,7 @@ FtlFreeSysBlkQueueIn: and w2, w2, 1023 strh w21, [x0,8] strh w2, [x1,4] -.L387: +.L388: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -3029,21 +3017,21 @@ FtlFreeSysBlkQueueIn: .global FtlFreeSysBLkSort .type FtlFreeSysBLkSort, %function FtlFreeSysBLkSort: - adrp x0, .LANCHOR2-36 - ldrh w6, [x0,#:lo12:.LANCHOR2-36] + adrp x0, .LANCHOR2+476 + ldrh w6, [x0,#:lo12:.LANCHOR2+476] adrp x0, .LANCHOR0 add x1, x0, :lo12:.LANCHOR0 - add x1, x1, 2200 + add x1, x1, 2712 ldrh w2, [x1,6] - cbz w2, .L396 + cbz w2, .L397 mov w5, 0 ldrh w3, [x1,2] ldrh w2, [x1,4] mov w4, w5 and w6, w6, 31 -.L398: +.L399: cmp w4, w6 - bge .L406 + bge .L407 add x5, x1, x3, sxtw 1 ldrh w7, [x5,8] add x5, x1, x2, sxtw 1 @@ -3055,13 +3043,13 @@ FtlFreeSysBLkSort: uxth w4, w4 and w3, w3, 1023 and w2, w2, 1023 - b .L398 -.L406: - cbz w5, .L396 + b .L399 +.L407: + cbz w5, .L397 add x0, x0, :lo12:.LANCHOR0 - strh w3, [x0,2202] - strh w2, [x0,2204] -.L396: + strh w3, [x0,2714] + strh w2, [x0,2716] +.L397: ret .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -3077,12 +3065,12 @@ FtlFreeSysBlkQueueOut: adrp x23, .LC3 stp x19, x20, [sp,16] stp x25, x26, [sp,64] - add x22, x21, 2200 + add x22, x21, 2712 add x23, x23, :lo12:.LC3 mov x24, x21 -.L408: +.L409: ldrh w1, [x22,6] - cbz w1, .L409 + cbz w1, .L410 adrp x19, .LANCHOR2 ldrh w2, [x22,2] add x25, x19, :lo12:.LANCHOR2 @@ -3091,55 +3079,55 @@ FtlFreeSysBlkQueueOut: strh w1, [x22,6] add w2, w2, 1 ldrh w20, [x0,8] - ldr w1, [x25,-96] + ldr w1, [x25,416] and w2, w2, 1023 strh w2, [x22,2] - cbnz w1, .L410 + cbnz w1, .L411 mov w0, w20 str x1, [x29,88] bl P2V_block_in_plane uxth w26, w0 - ldr x0, [x25,-88] + ldr x0, [x25,424] lsl w2, w20, 10 ldr x1, [x29,88] str w2, [x0,4] ldrb w0, [x21,196] - cbz w0, .L411 - ldr x0, [x25,-88] + cbz w0, .L412 + ldr x0, [x25,424] mov w2, 1 bl FlashEraseBlocks -.L411: +.L412: add x19, x19, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 - ldr x0, [x19,-88] + ldr x0, [x19,424] bl FlashEraseBlocks ubfiz x0, x26, 1, 16 - ldr x2, [x19,-80] + ldr x2, [x19,432] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x19,-72] + ldr w0, [x19,440] add w0, w0, 1 - str w0, [x19,-72] - b .L410 -.L409: + str w0, [x19,440] + b .L411 +.L410: adrp x0, .LC2 add x0, x0, :lo12:.LC2 bl printk -.L412: - b .L412 -.L410: +.L413: + b .L413 +.L411: sub w0, w20, #1 mov w1, 65533 cmp w1, w0, uxth - bcs .L413 - ldrh w2, [x24,2206] + bcs .L414 + ldrh w2, [x24,2718] mov x0, x23 mov w1, w20 bl printk - b .L408 -.L413: + b .L409 +.L414: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3153,31 +3141,31 @@ FtlFreeSysBlkQueueOut: .type test_node_in_list, %function test_node_in_list: ldr x2, [x0] - adrp x0, .LANCHOR2-16 + adrp x0, .LANCHOR2+496 mov x4, -6148914691236517206 uxth w1, w1 mov w5, 65535 - ldr x3, [x0,#:lo12:.LANCHOR2-16] + ldr x3, [x0,#:lo12:.LANCHOR2+496] sub x0, x2, x3 asr x0, x0, 1 madd x0, x4, x0, x0 mov w4, 6 uxth w0, w0 -.L419: +.L420: cmp w1, w0 - beq .L420 + beq .L421 ldrh w0, [x2] cmp w0, w5 - beq .L421 + beq .L422 umull x2, w0, w4 add x2, x3, x2 - b .L419 -.L420: - mov w0, 1 - b .L418 + b .L420 .L421: + mov w0, 1 + b .L419 +.L422: mov w0, 0 -.L418: +.L419: ret .size test_node_in_list, .-test_node_in_list .align 2 @@ -3187,50 +3175,50 @@ insert_data_list: adrp x9, .LANCHOR0 uxth w0, w0 add x9, x9, :lo12:.LANCHOR0 - ldrh w1, [x9,1964] + ldrh w1, [x9,2476] cmp w1, w0 - bls .L424 + bls .L425 adrp x2, .LANCHOR2 mov w7, 6 add x5, x2, :lo12:.LANCHOR2 mov w1, -1 umull x10, w0, w7 mov x3, x2 - ldr x11, [x5,-16] + ldr x11, [x5,496] add x4, x11, x10 strh w1, [x4,2] strh w1, [x11,x10] - ldr x1, [x5,-8] - cbnz x1, .L425 - str x4, [x5,-8] - b .L424 -.L425: + ldr x1, [x5,504] + cbnz x1, .L426 + str x4, [x5,504] + b .L425 +.L426: ubfiz x8, x0, 1, 16 - ldr x13, [x2,#:lo12:.LANCHOR2] + ldr x13, [x5,512] ldrh w2, [x4,4] mov x14, -6148914691236517206 - ldr x12, [x5,-16] + ldr x12, [x5,496] mov w18, 65535 ldrh w6, [x13,x8] cmp w2, wzr - ldrh w17, [x9,1964] + ldrh w17, [x9,2476] 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,-80] + ldr x14, [x5,432] mov w5, 0 add x9, x14, x8 uxth w2, w2 mov w8, w7 -.L433: +.L434: add w5, w5, 1 cmp w0, w2 uxth w5, w5 - beq .L424 + beq .L425 cmp w5, w17 - bhi .L424 + bhi .L425 ubfiz x15, x2, 1, 16 ldrh w16, [x1,4] cmp w16, wzr @@ -3238,47 +3226,47 @@ insert_data_list: mul w7, w7, w16 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L429 + bne .L430 ldrh w15, [x14,x15] ldrh w7, [x9] cmp w15, w7 - bcc .L431 - b .L430 -.L429: - bhi .L430 -.L431: + bcc .L432 + b .L431 +.L430: + bhi .L431 +.L432: ldrh w7, [x1] cmp w7, w18 - bne .L432 + bne .L433 strh w2, [x4,2] add x2, x3, :lo12:.LANCHOR2 strh w0, [x1] - str x4, [x2,8] - b .L424 -.L432: + str x4, [x2,520] + b .L425 +.L433: umull x1, w7, w8 mov w2, w7 add x1, x12, x1 - b .L433 -.L430: + b .L434 +.L431: strh w2, [x11,x10] ldrh w2, [x1,2] strh w2, [x4,2] add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,-8] + ldr x3, [x2,504] cmp x1, x3 - bne .L434 + bne .L435 strh w0, [x1,2] - str x4, [x2,-8] - b .L424 -.L434: + str x4, [x2,504] + b .L425 +.L435: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,-16] + ldr x2, [x2,496] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L424: +.L425: mov w0, 0 ret .size insert_data_list, .-insert_data_list @@ -3291,9 +3279,9 @@ INSERT_DATA_LIST: bl insert_data_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,16] + ldrh w1, [x0,528] add w1, w1, 1 - strh w1, [x0,16] + strh w1, [x0,528] ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -3304,66 +3292,66 @@ insert_free_list: uxth w0, w0 mov w7, 65535 cmp w0, w7 - beq .L439 + beq .L440 adrp x2, .LANCHOR2 mov w6, 6 add x5, x2, :lo12:.LANCHOR2 mov w1, -1 umull x8, w0, w6 mov x3, x2 - ldr x9, [x5,-16] + ldr x9, [x5,496] add x4, x9, x8 strh w1, [x4,2] strh w1, [x9,x8] - ldr x1, [x5,24] - cbnz x1, .L440 - str x4, [x5,24] - b .L439 -.L440: - ldr x11, [x5,-80] + ldr x1, [x5,536] + cbnz x1, .L441 + str x4, [x5,536] + b .L440 +.L441: + ldr x11, [x5,432] ubfiz x2, x0, 1, 16 - ldr x10, [x5,-16] + ldr x10, [x5,496] mov x5, -6148914691236517206 ldrh w12, [x11,x2] sub x2, x1, x10 asr x2, x2, 1 madd x2, x5, x2, x2 uxth w2, w2 -.L443: +.L444: ubfiz x5, x2, 1, 16 ldrh w5, [x11,x5] cmp w5, w12 - bcs .L441 + bcs .L442 ldrh w5, [x1] cmp w5, w7 - bne .L442 + bne .L443 strh w2, [x4,2] strh w0, [x1] - b .L439 -.L442: + b .L440 +.L443: umull x1, w5, w6 mov w2, w5 add x1, x10, x1 - b .L443 -.L441: + b .L444 +.L442: ldrh w5, [x1,2] strh w5, [x4,2] strh w2, [x9,x8] add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,24] + ldr x3, [x2,536] cmp x1, x3 - bne .L444 + bne .L445 strh w0, [x1,2] - str x4, [x2,24] - b .L439 -.L444: + str x4, [x2,536] + b .L440 +.L445: ldrh w3, [x1,2] mov w4, 6 - ldr x2, [x2,-16] + ldr x2, [x2,496] umull x3, w3, w4 strh w0, [x2,x3] strh w0, [x1,2] -.L439: +.L440: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -3376,9 +3364,9 @@ INSERT_FREE_LIST: bl insert_free_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,32] + ldrh w1, [x0,544] add w1, w1, 1 - strh w1, [x0,32] + strh w1, [x0,544] ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -3393,43 +3381,43 @@ List_remove_node: ldr x3, [x0] mov w7, 65535 umull x1, w1, w5 - ldr x2, [x6,-16] + ldr x2, [x6,496] add x4, x2, x1 cmp x4, x3 - bne .L447 + bne .L448 ldrh w3, [x2,x1] cmp w3, w7 - bne .L448 + bne .L449 str xzr, [x0] - b .L449 -.L448: + b .L450 +.L449: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L449 -.L447: + b .L450 +.L448: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L450 + bne .L451 cmp w3, w0 - beq .L449 + beq .L450 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L449 -.L450: + b .L450 +.L451: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] ldrh w3, [x4,2] - ldr x0, [x6,-16] + ldr x0, [x6,496] ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L449: +.L450: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -3446,14 +3434,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L452 - adrp x3, .LANCHOR2-16 + cbz x2, .L453 + adrp x3, .LANCHOR2+496 mov w5, w19 mov w6, 6 - ldr x4, [x3,#:lo12:.LANCHOR2-16] -.L453: - cbnz w1, .L454 -.L456: + ldr x4, [x3,#:lo12:.LANCHOR2+496] +.L454: + cbnz w1, .L455 +.L457: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -3461,17 +3449,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L452 -.L454: + b .L453 +.L455: ldrh w3, [x2] cmp w3, w5 - beq .L456 + beq .L457 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L453 -.L452: + b .L454 +.L453: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -3485,27 +3473,27 @@ List_get_gc_head_node: uxth w3, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 65535 - ldr x1, [x2,-8] - cbz x1, .L464 - ldr x4, [x2,-16] + ldr x1, [x2,504] + cbz x1, .L465 + ldr x4, [x2,496] mov w5, 6 -.L460: - cbz w3, .L461 +.L461: + cbz w3, .L462 ldrh w2, [x1] cmp w2, w0 - beq .L464 + beq .L465 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L460 -.L461: + b .L461 +.L462: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L464: +.L465: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -3518,24 +3506,24 @@ List_update_data_list: adrp x19, .LANCHOR2 uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,40] + ldrh w1, [x0,552] cmp w1, w20 - beq .L466 - ldrh w1, [x0,88] + beq .L467 + ldrh w1, [x0,600] cmp w1, w20 - beq .L466 - ldrh w1, [x0,136] + beq .L467 + ldrh w1, [x0,648] cmp w1, w20 - beq .L466 + beq .L467 mov w3, 6 - ldr x4, [x0,-16] - ldr x0, [x0,-8] + ldr x4, [x0,496] + ldr x2, [x0,504] umull x3, w20, w3 add x1, x4, x3 - cmp x1, x0 - beq .L466 + cmp x1, x2 + beq .L467 + ldr x5, [x0,512] ubfiz x0, x20, 1, 16 - ldr x5, [x19,#:lo12:.LANCHOR2] ldrh w2, [x5,x0] ldrh w0, [x1,4] ldrh w1, [x1,2] @@ -3544,11 +3532,11 @@ List_update_data_list: mov w0, 65535 csinv w2, w2, wzr, ne cmp w1, w0 - bne .L468 + bne .L469 ldrh w0, [x4,x3] cmp w0, w1 - beq .L466 -.L468: + beq .L467 +.L469: mov w0, 6 mov x3, -6148914691236517206 umull x1, w1, w0 @@ -3561,17 +3549,17 @@ List_update_data_list: mul w0, w0, w1 csinv w0, w0, wzr, ne cmp w2, w0 - bcs .L466 + bcs .L467 add x19, x19, :lo12:.LANCHOR2 mov w1, w20 - sub x0, x19, #8 + add x0, x19, 504 bl List_remove_node - ldrh w0, [x19,16] + ldrh w0, [x19,528] sub w0, w0, #1 - strh w0, [x19,16] + strh w0, [x19,528] mov w0, w20 bl INSERT_DATA_LIST -.L466: +.L467: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -3588,12 +3576,12 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L473: +.L474: cmp w20, w2 - beq .L477 + beq .L478 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L474 + cbnz w21, .L475 mov x19, x0 bl FtlFreeSysBlkQueueOut strh w0, [x22] @@ -3601,15 +3589,15 @@ ftl_map_blk_alloc_new_blk: sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L475 - adrp x2, .LANCHOR0+2206 + bcs .L476 + adrp x2, .LANCHOR0+2718 adrp x0, .LC4 add x0, x0, :lo12:.LC4 - ldrh w2, [x2,#:lo12:.LANCHOR0+2206] + ldrh w2, [x2,#:lo12:.LANCHOR0+2718] bl printk +.L477: + b .L477 .L476: - b .L476 -.L475: ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -3618,12 +3606,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L477 -.L474: + b .L478 +.L475: add w20, w20, 1 uxth w20, w20 - b .L473 -.L477: + b .L474 +.L478: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3634,71 +3622,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+2062 + adrp x0, .LANCHOR0+2574 mov x4, 0 mov w5, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR0+2062] + ldrh w2, [x0,#:lo12:.LANCHOR0+2574] adrp x0, .LANCHOR2 add x1, x0, :lo12:.LANCHOR2 mov x3, x0 - ldr x1, [x1,184] -.L480: + ldr x1, [x1,696] +.L481: uxth w0, w4 cmp w0, w2 - bcs .L496 + bcs .L497 add x4, x4, 1 add x6, x1, x4, lsl 4 ldrh w6, [x6,-16] cmp w6, w5 - bne .L480 - b .L481 -.L496: + bne .L481 + b .L482 +.L497: mov w0, w2 mov x4, 0 mov w7, -2147483648 -.L483: +.L484: uxth w6, w4 cmp w6, w2 - bcs .L497 + bcs .L498 add x5, x1, x4, lsl 4 ldr w5, [x5,4] - tbnz w5, #31, .L492 + tbnz w5, #31, .L493 cmp w5, w7 - bcc .L484 -.L492: + bcc .L485 +.L493: mov w5, w7 mov w6, w0 -.L484: +.L485: add x4, x4, 1 mov w7, w5 mov w0, w6 - b .L483 -.L497: + b .L484 +.L498: cmp w0, w2 - bcc .L481 + bcc .L482 add x0, x3, :lo12:.LANCHOR2 add x1, x1, 4 mov w4, -1 mov w3, 0 - ldrh w5, [x0,192] + ldrh w5, [x0,704] mov w0, w2 -.L487: +.L488: cmp w3, w2 - beq .L481 + beq .L482 ldr w7, [x1] cmp w7, w4 - bcs .L488 + bcs .L489 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L488: +.L489: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L487 -.L481: + b .L488 +.L482: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -3707,36 +3695,36 @@ select_l2p_ram_region: FtlUpdateVaildLpn: adrp x1, .LANCHOR2 add x3, x1, :lo12:.LANCHOR2 - ldrh w2, [x3,194] - cbnz w0, .L499 + ldrh w2, [x3,706] + cbnz w0, .L500 cmp w2, 4 - bhi .L499 + bhi .L500 add w2, w2, 1 - strh w2, [x3,194] - b .L498 -.L499: - add x0, x1, :lo12:.LANCHOR2 - ldr x6, [x1,#:lo12:.LANCHOR2] - mov w7, 65535 - strh wzr, [x0,194] - str wzr, [x0,196] - adrp x0, .LANCHOR0+1964 - ldrh w5, [x0,#:lo12:.LANCHOR0+1964] - mov x0, 0 + strh w2, [x3,706] + b .L499 .L500: + adrp x2, .LANCHOR0+2476 + 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] + mov x0, 0 +.L501: cmp w5, w0, uxth - bls .L498 + bls .L499 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L501 + beq .L502 add x3, x1, :lo12:.LANCHOR2 - ldr w2, [x3,196] + ldr w2, [x3,708] add w2, w4, w2 - str w2, [x3,196] -.L501: + str w2, [x3,708] +.L502: add x0, x0, 1 - b .L500 -.L498: + b .L501 +.L499: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -3746,10 +3734,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L505 + cbz w1, .L506 bl ftl_set_blk_mode.part.9 - b .L504 -.L505: + b .L505 +.L506: adrp x1, .LANCHOR0 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -3759,7 +3747,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L504: +.L505: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -3786,42 +3774,42 @@ ftl_sb_update_avl_pages: uxth w2, w2 strh wzr, [x0,4] mov w6, 65535 - ldrh w4, [x4,1956] -.L509: + ldrh w4, [x4,2468] +.L510: cmp w2, w4 - bcs .L515 + bcs .L516 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L510 + beq .L511 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L510: +.L511: add w2, w2, 1 uxth w2, w2 - b .L509 -.L515: + b .L510 +.L516: add x3, x3, :lo12:.LANCHOR0 mov w6, 65535 add x4, x0, x4, uxth 1 - ldrh w5, [x3,2024] + ldrh w5, [x3,2536] mov x3, x0 -.L512: +.L513: cmp x3, x4 - beq .L516 + beq .L517 ldrh w2, [x3,16] cmp w2, w6 - beq .L513 + beq .L514 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L513: +.L514: add x3, x3, 2 - b .L512 -.L516: + b .L513 +.L517: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -3843,50 +3831,50 @@ make_superblock: mov x21, 0 mov x23, x0 mov w25, -1 - ldrh w24, [x0,1956] -.L518: + ldrh w24, [x0,2468] +.L519: cmp w24, w21, uxth - bls .L529 - add x0, x23, 1984 + bls .L530 + add x0, x23, 2496 ldrh w1, [x19] ldrb w0, [x0,x21] bl V2P_block strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L519 + cbnz w0, .L520 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L519: +.L520: add x21, x21, 1 add x22, x22, 2 - b .L518 -.L529: + b .L519 +.L530: add x1, x20, :lo12:.LANCHOR0 ldrb w0, [x19,7] strb wzr, [x19,9] - ldrh w2, [x1,2024] + ldrh w2, [x1,2536] mul w0, w0, w2 strh w0, [x19,4] - ldr w0, [x1,1948] - cbz w0, .L521 - adrp x0, .LANCHOR2-80 + ldr w0, [x1,2460] + cbz w0, .L522 + adrp x0, .LANCHOR2+432 ldrh w1, [x19] - ldr x0, [x0,#:lo12:.LANCHOR2-80] + ldr x0, [x0,#:lo12:.LANCHOR2+432] ldrh w0, [x0,x1,lsl 1] cmp w0, 79 - bhi .L521 - mov w0, 1 - strb w0, [x19,9] -.L521: - add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,72] - cbz w0, .L522 + bhi .L522 mov w0, 1 strb w0, [x19,9] .L522: + add x20, x20, :lo12:.LANCHOR0 + ldrb w0, [x20,72] + cbz w0, .L523 + mov w0, 1 + strb w0, [x19,9] +.L523: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3908,33 +3896,33 @@ update_multiplier_value: stp x23, x24, [sp,48] mov x22, 0 uxth w21, w0 - ldrh w23, [x1,1956] + ldrh w23, [x1,2468] mov w19, w22 - ldrh w24, [x1,2024] + ldrh w24, [x1,2536] mov x20, x1 -.L531: +.L532: cmp w23, w22, uxth - bls .L538 - add x0, x20, 1984 + bls .L539 + add x0, x20, 2496 mov w1, w21 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L532 + cbnz w0, .L533 add w19, w19, w24 uxth w19, w19 -.L532: +.L533: add x22, x22, 1 - b .L531 -.L538: - cbz w19, .L534 + b .L532 +.L539: + cbz w19, .L535 mov w0, 32768 sdiv w19, w0, w19 -.L534: +.L535: mov w0, 6 umull x21, w21, w0 - adrp x0, .LANCHOR2-16 - ldr x0, [x0,#:lo12:.LANCHOR2-16] + adrp x0, .LANCHOR2+496 + ldr x0, [x0,#:lo12:.LANCHOR2+496] add x21, x0, x21 mov w0, 0 strh w19, [x21,4] @@ -3950,18 +3938,18 @@ update_multiplier_value: GetFreeBlockMinEraseCount: adrp x2, .LANCHOR2 add x2, x2, :lo12:.LANCHOR2 - ldr x1, [x2,24] + ldr x1, [x2,536] mov w0, w1 - cbz x1, .L540 - ldr x0, [x2,-16] + cbz x1, .L541 + ldr x0, [x2,496] sub x1, x1, x0 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 - ldr x0, [x2,-80] + ldr x0, [x2,432] and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L540: +.L541: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -3971,15 +3959,15 @@ GetFreeBlockMaxEraseCount: adrp x2, .LANCHOR2 uxth w4, w0 add x5, x2, :lo12:.LANCHOR2 - ldr x1, [x5,24] + ldr x1, [x5,536] mov w0, w1 - cbz x1, .L543 - ldrh w3, [x5,32] + cbz x1, .L544 + ldrh w3, [x5,544] mov w0, 7 mov w6, 6 mov w7, 65535 mul w3, w3, w0 - ldr x0, [x5,-16] + ldr x0, [x5,496] asr w3, w3, 3 cmp w4, w3 sub x1, x1, x0 @@ -3989,25 +3977,25 @@ GetFreeBlockMaxEraseCount: madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L545: +.L546: cmp w3, w4 - beq .L548 + beq .L549 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L546 -.L548: + bne .L547 +.L549: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 - ldr x0, [x2,-80] + ldr x0, [x2,432] ldrh w0, [x0,x1] - b .L543 -.L546: + b .L544 +.L547: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L545 -.L543: + b .L546 +.L544: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -4035,7 +4023,7 @@ FtlPrintInfo2buf: bl sprintf add x20, x20, x0, sxtw adrp x1, .LC7 - ldr w2, [x24,2040] + ldr w2, [x24,2552] mov x0, x20 add x1, x1, :lo12:.LC7 bl sprintf @@ -4043,10 +4031,10 @@ FtlPrintInfo2buf: adrp x0, .LANCHOR1+504 ldr w0, [x0,#:lo12:.LANCHOR1+504] cmp w0, 1 - beq .L551 + beq .L552 sub w0, w20, w22 - b .L552 -.L551: + b .L553 +.L552: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 @@ -4068,75 +4056,75 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC9 add x21, x21, 10 bl strcpy - ldr w2, [x24,2096] + ldr w2, [x24,2608] adrp x1, .LC10 mov x0, x21 add x1, x1, :lo12:.LC10 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,196] + ldr w2, [x23,708] adrp x1, .LC11 mov x0, x21 add x1, x1, :lo12:.LC11 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,200] + ldr w2, [x23,712] adrp x1, .LC12 mov x0, x21 add x1, x1, :lo12:.LC12 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,204] + ldr w2, [x23,716] adrp x1, .LC13 mov x0, x21 add x1, x1, :lo12:.LC13 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,208] + ldr w2, [x23,720] adrp x1, .LC14 mov x0, x21 add x1, x1, :lo12:.LC14 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,212] + ldr w2, [x23,724] adrp x1, .LC15 mov x0, x21 add x1, x1, :lo12:.LC15 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,216] + ldr w2, [x23,728] adrp x1, .LC16 mov x0, x21 add x1, x1, :lo12:.LC16 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,220] + ldr w2, [x23,732] adrp x1, .LC17 mov x0, x21 add x1, x1, :lo12:.LC17 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,224] + ldr w2, [x23,736] 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,228] + ldr w2, [x23,740] 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,232] + ldr w2, [x23,744] adrp x1, .LC20 mov x0, x21 add x1, x1, :lo12:.LC20 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,236] + ldr w2, [x23,748] adrp x1, .LC21 add x1, x1, :lo12:.LC21 mov x0, x21 @@ -4144,298 +4132,298 @@ FtlPrintInfo2buf: add x21, x21, x0, sxtw bl FtlBbtCalcTotleCnt uxth w3, w0 - ldrh w2, [x24,2110] + ldrh w2, [x24,2622] adrp x1, .LC22 mov x0, x21 add x1, x1, :lo12:.LC22 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,32] + ldrh w2, [x23,544] adrp x1, .LC23 mov x0, x21 add x1, x1, :lo12:.LC23 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,240] + ldr w2, [x23,752] adrp x1, .LC24 mov x0, x21 add x1, x1, :lo12:.LC24 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,244] + ldr w2, [x23,756] adrp x1, .LC25 mov x0, x21 add x1, x1, :lo12:.LC25 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,248] + ldr w2, [x23,760] adrp x1, .LC26 mov x0, x21 add x1, x1, :lo12:.LC26 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,-72] + ldr w2, [x23,440] adrp x1, .LC27 mov x0, x21 add x1, x1, :lo12:.LC27 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,252] + ldr w2, [x23,764] adrp x1, .LC28 mov x0, x21 add x1, x1, :lo12:.LC28 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x23,256] + ldr w2, [x23,768] adrp x1, .LC29 mov x0, x21 add x1, x1, :lo12:.LC29 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,-34] + ldrh w2, [x23,478] adrp x1, .LC30 mov x0, x21 add x1, x1, :lo12:.LC30 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,-36] + ldrh w2, [x23,476] adrp x1, .LC31 mov x0, x21 add x1, x1, :lo12:.LC31 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,2064] + ldr w2, [x24,2576] adrp x1, .LC32 mov x0, x21 add x1, x1, :lo12:.LC32 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,2056] + ldr w2, [x24,2568] adrp x1, .LC33 mov x0, x21 add x1, x1, :lo12:.LC33 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,1952] + ldr w2, [x24,2464] adrp x1, .LC34 mov x0, x21 add x1, x1, :lo12:.LC34 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x24,2206] + ldrh w2, [x24,2718] adrp x1, .LC35 mov x0, x21 add x1, x1, :lo12:.LC35 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x24,1964] + ldrh w2, [x24,2476] adrp x1, .LC36 mov x0, x21 add x1, x1, :lo12:.LC36 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,260] + ldrh w2, [x23,772] adrp x1, .LC37 mov x0, x21 add x1, x1, :lo12:.LC37 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x24,1968] + ldr w2, [x24,2480] adrp x1, .LC38 mov x0, x21 add x1, x1, :lo12:.LC38 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,264] + ldrh w2, [x23,776] adrp x1, .LC39 mov x0, x21 add x1, x1, :lo12:.LC39 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x24,2104] + ldrh w2, [x24,2616] adrp x1, .LC40 mov x0, x21 add x1, x1, :lo12:.LC40 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,42] + ldrh w2, [x23,554] adrp x1, .LC41 mov x0, x21 add x1, x1, :lo12:.LC41 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,46] + ldrb w2, [x23,558] adrp x1, .LC42 mov x0, x21 add x1, x1, :lo12:.LC42 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,40] + ldrh w2, [x23,552] adrp x1, .LC43 mov x0, x21 add x1, x1, :lo12:.LC43 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,48] + ldrb w2, [x23,560] adrp x1, .LC44 mov x0, x21 add x1, x1, :lo12:.LC44 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,44] + ldrh w2, [x23,556] adrp x1, .LC45 mov x0, x21 add x1, x1, :lo12:.LC45 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x23,40] + ldrh w3, [x23,552] adrp x1, .LC46 - ldr x2, [x25,#:lo12:.LANCHOR2] + ldr x2, [x23,512] mov x0, x21 add x1, x1, :lo12:.LC46 ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,90] + ldrh w2, [x23,602] adrp x1, .LC47 mov x0, x21 add x1, x1, :lo12:.LC47 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,94] + ldrb w2, [x23,606] adrp x1, .LC48 mov x0, x21 add x1, x1, :lo12:.LC48 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,88] + ldrh w2, [x23,600] adrp x1, .LC49 mov x0, x21 add x1, x1, :lo12:.LC49 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,96] + ldrb w2, [x23,608] adrp x1, .LC50 mov x0, x21 add x1, x1, :lo12:.LC50 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,92] + ldrh w2, [x23,604] adrp x1, .LC51 mov x0, x21 add x1, x1, :lo12:.LC51 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x23,88] + ldrh w3, [x23,600] adrp x1, .LC52 - ldr x2, [x25,#:lo12:.LANCHOR2] + ldr x2, [x23,512] mov x0, x21 add x1, x1, :lo12:.LC52 ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,138] + ldrh w2, [x23,650] adrp x1, .LC53 mov x0, x21 add x1, x1, :lo12:.LC53 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,142] + ldrb w2, [x23,654] adrp x1, .LC54 mov x0, x21 add x1, x1, :lo12:.LC54 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,136] + ldrh w2, [x23,648] adrp x1, .LC55 mov x0, x21 add x1, x1, :lo12:.LC55 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,144] + ldrb w2, [x23,656] adrp x1, .LC56 mov x0, x21 add x1, x1, :lo12:.LC56 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,140] + ldrh w2, [x23,652] adrp x1, .LC57 mov x0, x21 add x1, x1, :lo12:.LC57 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,282] + ldrh w2, [x23,794] adrp x1, .LC58 mov x0, x21 add x1, x1, :lo12:.LC58 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,286] + ldrb w2, [x23,798] adrp x1, .LC59 mov x0, x21 add x1, x1, :lo12:.LC59 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,280] + ldrh w2, [x23,792] adrp x1, .LC60 mov x0, x21 add x1, x1, :lo12:.LC60 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x23,288] + ldrb w2, [x23,800] adrp x1, .LC61 mov x0, x21 add x1, x1, :lo12:.LC61 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x23,284] + ldrh w2, [x23,796] adrp x1, .LC62 mov x0, x21 add x1, x1, :lo12:.LC62 bl sprintf add x21, x21, x0, sxtw - ldr w3, [x23,328] + ldr w3, [x23,840] adrp x1, .LC63 - ldr w2, [x24,1948] + ldr w2, [x24,2460] add x1, x1, :lo12:.LC63 - ldr w4, [x23,420] + ldr w4, [x23,932] mov x0, x21 - ldr w5, [x23,412] + ldr w5, [x23,924] orr w2, w2, w3, lsl 8 - ldr w3, [x23,416] + ldr w3, [x23,928] bl sprintf add x19, x21, x0, sxtw - ldr w2, [x23,408] + ldr w2, [x23,920] adrp x1, .LC64 mov x0, x19 add x1, x1, :lo12:.LC64 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x23,432] + ldr w2, [x23,944] adrp x1, .LC65 mov x0, x19 add x1, x1, :lo12:.LC65 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x23,848] + ldrh w2, [x23,1360] adrp x1, .LC66 mov x0, x19 add x1, x1, :lo12:.LC66 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x23,850] + ldrh w2, [x23,1362] adrp x1, .LC67 mov x0, x19 add x1, x1, :lo12:.LC67 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x23,852] + ldr w2, [x23,1364] adrp x1, .LC68 mov x0, x19 add x1, x1, :lo12:.LC68 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x23,856] + ldrh w2, [x23,1368] adrp x1, .LC69 add x1, x1, :lo12:.LC69 mov x0, x19 @@ -4448,7 +4436,7 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC70 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x23,32] + ldrh w0, [x23,544] bl GetFreeBlockMaxEraseCount uxth w2, w0 adrp x1, .LC71 @@ -4456,19 +4444,19 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC71 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x23,280] + ldrh w0, [x23,792] mov w1, 65535 cmp w0, w1 - beq .L553 + beq .L554 ubfiz x2, x0, 1, 16 - ldr x3, [x25,#:lo12:.LANCHOR2] + ldr x3, [x23,512] adrp x1, .LC72 mov x0, x19 add x1, x1, :lo12:.LC72 ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L553: +.L554: mov w0, 0 adrp x23, .LC73 mov w20, 0 @@ -4477,67 +4465,67 @@ FtlPrintInfo2buf: mov w26, 6 uxth w3, w0 add x23, x23, :lo12:.LC73 -.L555: +.L556: cmp w3, w27 - beq .L554 + beq .L555 add x21, x25, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 umull x24, w3, w26 - ldr x4, [x25,#:lo12:.LANCHOR2] mov x0, x19 - ldr x5, [x21,-16] mov w2, w20 - ldr x7, [x21,-80] + ldr x5, [x21,496] mov x1, x23 + ldr x4, [x21,512] + add w20, w20, 1 + ldr x7, [x21,432] add x5, x5, x24 ldrh w4, [x4,x6] - add w20, w20, 1 - ldrh w6, [x7,x6] ldrh w5, [x5,4] + ldrh w6, [x7,x6] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,-16] + ldr x0, [x21,496] cmp w20, 16 ldrh w3, [x0,x24] - bne .L555 -.L554: + bne .L556 +.L555: 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,24] - ldr x3, [x1,-16] + ldr x0, [x1,536] + ldr x3, [x1,496] sub x3, x0, x3 mov x0, -6148914691236517206 asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L557: +.L558: cmp w3, w27 - beq .L556 + beq .L557 add x21, x25, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 umull x24, w3, w26 mov x0, x19 mov w2, w20 - ldr x4, [x21,-16] + ldr x4, [x21,496] mov x1, x23 - ldr x6, [x21,-80] + ldr x6, [x21,432] 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,-16] + ldr x0, [x21,496] cmp w20, 4 ldrh w3, [x0,x24] - bne .L557 -.L556: + bne .L558 +.L557: sub w0, w19, w22 -.L552: +.L553: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4580,115 +4568,115 @@ GetSwlReplaceBlock: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w2, [x0,248] - ldr w1, [x0,256] + ldr w2, [x0,760] + ldr w1, [x0,768] cmp w2, w1 - bcs .L562 + bcs .L563 adrp x1, .LANCHOR0 - str wzr, [x0,240] + str wzr, [x0,752] add x2, x1, :lo12:.LANCHOR0 - ldr x5, [x0,-80] + ldr x5, [x0,432] mov x0, 0 - ldrh w3, [x2,1964] -.L563: + ldrh w3, [x2,2476] +.L564: cmp w3, w0 - bls .L595 + bls .L596 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x0,lsl 1] add x0, x0, 1 - ldr w2, [x4,240] + ldr w2, [x4,752] add w2, w6, w2 - str w2, [x4,240] - b .L563 -.L595: + str w2, [x4,752] + b .L564 +.L596: add x2, x19, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR0 - ldr w0, [x2,240] - ldrh w1, [x1,2016] + ldr w0, [x2,752] + ldrh w1, [x1,2528] udiv w3, w0, w3 - str w3, [x2,248] - ldr w3, [x2,244] + str w3, [x2,760] + ldr w3, [x2,756] sub w0, w0, w3 udiv w0, w0, w1 - str w0, [x2,240] - b .L565 -.L562: - ldr w1, [x0,252] + str w0, [x2,752] + b .L566 +.L563: + ldr w1, [x0,764] cmp w2, w1 - bls .L565 + bls .L566 add w1, w1, 1 adrp x4, .LANCHOR0 - str w1, [x0,252] + str w1, [x0,764] mov w0, 0 -.L567: +.L568: add x1, x4, :lo12:.LANCHOR0 - ldrh w1, [x1,1964] + ldrh w1, [x1,2476] cmp w0, w1 - bcs .L565 + bcs .L566 add x1, x19, :lo12:.LANCHOR2 ubfiz x2, x0, 1, 32 add w0, w0, 1 - ldr x3, [x1,-80] + ldr x3, [x1,432] ldrh w1, [x3,x2] add w1, w1, 1 strh w1, [x3,x2] - b .L567 -.L565: + b .L568 +.L566: add x1, x19, :lo12:.LANCHOR2 - ldr w21, [x1,256] - ldr w24, [x1,248] + ldr w21, [x1,768] + ldr w24, [x1,760] add w0, w21, 256 cmp w0, w24 - bls .L570 - ldr w1, [x1,252] + bls .L571 + ldr w1, [x1,764] add w0, w21, 768 cmp w0, w1 - bls .L570 - adrp x0, .LANCHOR0+1948 - ldr w0, [x0,#:lo12:.LANCHOR0+1948] - cbz w0, .L573 + bls .L571 + adrp x0, .LANCHOR0+2460 + ldr w0, [x0,#:lo12:.LANCHOR0+2460] + cbz w0, .L574 cmp w21, 40 - bls .L570 -.L573: + bls .L571 +.L574: mov w0, 65535 - b .L572 -.L570: + b .L573 +.L571: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,32] + ldrh w0, [x0,544] add w0, w0, w0, lsl 1 lsr w0, w0, 2 bl GetFreeBlockMaxEraseCount uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L582 + bcs .L583 cmp w21, 40 - bhi .L573 -.L582: + bhi .L574 +.L583: add x0, x19, :lo12:.LANCHOR2 - ldr x3, [x0,-8] - cbz x3, .L573 - adrp x1, .LANCHOR0+1964 + ldr x3, [x0,504] + cbz x3, .L574 + adrp x1, .LANCHOR0+2476 mov w23, 65535 - ldr x7, [x0,-16] + ldr x7, [x0,496] mov w20, w23 - ldr x26, [x0,-80] + ldr x26, [x0,432] mov x0, -6148914691236517206 - ldrh w9, [x1,#:lo12:.LANCHOR0+1964] + ldrh w9, [x1,#:lo12:.LANCHOR0+2476] mov w8, w23 mov w1, 0 add x0, x0, 1 mov w10, 6 -.L575: +.L576: ldrh w2, [x3] cmp w2, w8 - beq .L577 + beq .L578 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L573 + bhi .L574 ldrh w4, [x3,4] - cbz w4, .L576 + cbz w4, .L577 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -4696,61 +4684,61 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w3, [x26,x4,lsl 1] cmp w3, w21 - bls .L581 + bls .L582 cmp w3, w23 - bcs .L576 + bcs .L577 mov w23, w3 mov w20, w5 -.L576: +.L577: umull x3, w2, w10 add x3, x7, x3 - b .L575 -.L581: + b .L576 +.L582: mov w20, w5 -.L577: +.L578: mov w0, 65535 cmp w20, w0 - beq .L573 + beq .L574 ubfiz x25, x20, 1, 16 ldrh w22, [x26,x25] cmp w22, w21 - bls .L579 + bls .L580 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L579 + bcs .L580 add x0, x19, :lo12:.LANCHOR2 - str w23, [x0,256] -.L579: + str w23, [x0,768] +.L580: cmp w22, w24 - bcs .L573 + bcs .L574 add w0, w22, 128 cmp w6, w0 - ble .L573 + ble .L574 add w0, w22, 256 cmp w0, w24 - bcc .L580 + bcc .L581 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 - ldr w0, [x0,252] + ldr w0, [x0,764] cmp w22, w0 - bcs .L573 -.L580: - add x21, x19, :lo12:.LANCHOR2 - ldr x4, [x19,#:lo12:.LANCHOR2] + bcs .L574 +.L581: + add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC77 ldrh w5, [x26,x25] add x0, x0, :lo12:.LC77 mov w1, w20 - ldr w3, [x21,252] mov w2, w24 + ldr x4, [x19,512] + ldr w3, [x19,764] ldrh w4, [x4,x25] bl printk mov w0, 1 - str w0, [x21,860] + str w0, [x19,1372] mov w0, w20 -.L572: +.L573: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4767,13 +4755,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L597 - adrp x2, .LANCHOR2 + beq .L598 + adrp x2, .LANCHOR2+512 ubfiz x1, x0, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2] + ldr x2, [x2,#:lo12:.LANCHOR2+512] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L597: +.L598: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -4790,30 +4778,30 @@ FtlGcBufInit: mov w12, 1 mov w6, 4 mov w13, 56 - str wzr, [x0,864] -.L599: + str wzr, [x0,1376] +.L600: add x5, x10, :lo12:.LANCHOR0 adrp x9, .LANCHOR0 - ldrh w0, [x5,1956] + ldrh w0, [x5,2468] cmp w1, w0 - bcs .L603 + bcs .L604 add x2, x3, :lo12:.LANCHOR2 umull x4, w1, w11 - ldr x7, [x2,872] - ldr x8, [x2,880] + ldr x7, [x2,1384] + ldr x8, [x2,1392] add x0, x7, x4 str w12, [x0,16] - ldrh w0, [x5,2034] + ldrh w0, [x5,2546] mul w0, w1, w0 sdiv w0, w0, w6 add x0, x8, x0, sxtw 2 str x0, [x7,x4] - ldrh w0, [x5,2036] - ldr x8, [x2,872] - ldr x5, [x2,888] + ldrh w0, [x5,2548] + ldr x8, [x2,1384] + ldr x5, [x2,1400] mul w0, w1, w0 add x7, x8, x4 - ldr x2, [x2,896] + ldr x2, [x2,1408] sdiv w0, w0, w6 add x0, x5, x0, sxtw 2 str x0, [x7,8] @@ -4825,29 +4813,29 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x7,8] str x2, [x0,16] - b .L599 -.L603: + b .L600 +.L604: mov w8, 24 mov w5, 4 -.L601: +.L602: add x2, x3, :lo12:.LANCHOR2 - ldr w1, [x2,904] + ldr w1, [x2,1416] cmp w0, w1 - bcs .L604 + bcs .L605 umull x4, w0, w8 - ldr x7, [x2,872] + ldr x7, [x2,1384] add x6, x9, :lo12:.LANCHOR0 - ldr x10, [x2,880] + ldr x10, [x2,1392] add x1, x7, x4 str wzr, [x1,16] - ldrh w1, [x6,2034] + ldrh w1, [x6,2546] mul w1, w0, w1 sdiv w1, w1, w5 add x1, x10, x1, sxtw 2 str x1, [x7,x4] - ldrh w1, [x6,2036] - ldr x6, [x2,872] - ldr x2, [x2,888] + ldrh w1, [x6,2548] + ldr x6, [x2,1384] + ldr x2, [x2,1400] mul w1, w0, w1 add x4, x6, x4 add w0, w0, 1 @@ -4855,8 +4843,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x2, x1, sxtw 2 str x1, [x4,8] - b .L601 -.L604: + b .L602 +.L605: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -4868,34 +4856,34 @@ FtlGcBufFree: add x2, x2, :lo12:.LANCHOR2 mov w7, 56 mov w9, 24 - ldr w8, [x2,904] - ldr x5, [x2,872] -.L606: + ldr w8, [x2,1416] + ldr x5, [x2,1384] +.L607: cmp w3, w1 - bcs .L605 + bcs .L606 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L611: +.L612: cmp w2, w8 - bcs .L608 + bcs .L609 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L607 + bne .L608 str wzr, [x10,16] - b .L608 -.L607: + b .L609 +.L608: add w2, w2, 1 uxth w2, w2 - b .L611 -.L608: + b .L612 +.L609: add w3, w3, 1 uxth w3, w3 - b .L606 -.L605: + b .L607 +.L606: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -4907,20 +4895,20 @@ FtlGcBufAlloc: add x2, x2, :lo12:.LANCHOR2 mov w8, 1 mov w9, 56 - ldr w5, [x2,904] - ldr x6, [x2,872] + ldr w5, [x2,1416] + ldr x6, [x2,1384] mov w2, 0 -.L613: +.L614: cmp w2, w1 - bcs .L619 + bcs .L620 mov w3, 0 -.L617: +.L618: cmp w3, w5 - bcs .L615 + bcs .L616 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L614 + cbnz w10, .L615 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -4928,16 +4916,16 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L615 -.L614: + b .L616 +.L615: add w3, w3, 1 uxth w3, w3 - b .L617 -.L615: + b .L618 +.L616: add w2, w2, 1 uxth w2, w2 - b .L613 -.L619: + b .L614 +.L620: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -4947,22 +4935,22 @@ IsBlkInGcList: adrp x1, .LANCHOR2 uxth w0, w0 add x1, x1, :lo12:.LANCHOR2 - ldrh w2, [x1,908] - ldr x3, [x1,912] + ldrh w2, [x1,1420] + ldr x3, [x1,1424] mov x1, 0 -.L621: +.L622: cmp w2, w1, uxth - bls .L625 + bls .L626 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L621 + bne .L622 mov w0, 1 - b .L622 -.L625: + b .L623 +.L626: mov w0, 0 -.L622: +.L623: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -4983,41 +4971,41 @@ FtlGcUpdatePage: ldr x1, [x29,32] uxth w8, w0 mov x5, 0 - ldrh w7, [x4,908] - ldr x6, [x4,912] -.L627: + ldrh w7, [x4,1420] + ldr x6, [x4,1424] +.L628: uxth w4, w5 cmp w4, w7 - bcs .L631 + bcs .L632 add x5, x5, 1 add x9, x6, x5, lsl 1 ldrh w9, [x9,-2] cmp w9, w8 - bne .L627 -.L631: + bne .L628 +.L632: cmp w4, w7 - bne .L629 + bne .L630 ubfiz x4, x4, 1, 16 strh w0, [x6,x4] add x0, x3, :lo12:.LANCHOR2 - ldrh w4, [x0,908] + ldrh w4, [x0,1420] add w4, w4, 1 - strh w4, [x0,908] -.L629: + strh w4, [x0,1420] +.L630: add x3, x3, :lo12:.LANCHOR2 mov w0, 12 - ldrh w4, [x3,920] - ldr x5, [x3,928] + ldrh w4, [x3,1432] + ldr x5, [x3,1440] umull x4, w4, w0 add x5, x5, x4 str w1, [x5,4] - ldr x1, [x3,928] + ldr x1, [x3,1440] add x0, x1, x4 str w2, [x0,8] str w19, [x1,x4] - ldrh w0, [x3,920] + ldrh w0, [x3,1432] add w0, w0, 1 - strh w0, [x3,920] + strh w0, [x3,1432] ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -5032,46 +5020,46 @@ FtlGcRefreshOpenBlock: adrp x19, .LANCHOR2 uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,936] + ldrh w0, [x19,1448] cmp w0, w20 - beq .L635 - ldrh w0, [x19,938] + beq .L636 + ldrh w0, [x19,1450] cmp w0, w20 - beq .L635 - ldrh w0, [x19,940] + beq .L636 + ldrh w0, [x19,1452] cmp w0, w20 - beq .L635 - ldrh w0, [x19,942] + beq .L636 + ldrh w0, [x19,1454] cmp w0, w20 - beq .L635 + beq .L636 adrp x0, .LC78 mov w1, w20 add x0, x0, :lo12:.LC78 bl printk - ldrh w1, [x19,936] + ldrh w1, [x19,1448] mov w0, 65535 cmp w1, w0 - bne .L637 - strh w20, [x19,936] - b .L635 -.L637: - ldrh w1, [x19,938] - cmp w1, w0 bne .L638 - strh w20, [x19,938] - b .L635 + strh w20, [x19,1448] + b .L636 .L638: - ldrh w1, [x19,940] + ldrh w1, [x19,1450] cmp w1, w0 bne .L639 - strh w20, [x19,940] - b .L635 + strh w20, [x19,1450] + b .L636 .L639: - ldrh w1, [x19,942] + ldrh w1, [x19,1452] cmp w1, w0 - bne .L635 - strh w20, [x19,942] -.L635: + 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 @@ -5089,49 +5077,49 @@ FtlGcRefreshBlock: add x19, x19, :lo12:.LANCHOR2 str x21, [sp,32] mov w21, 0 - ldrh w0, [x19,936] + ldrh w0, [x19,1448] cmp w0, w20 - beq .L641 - ldrh w0, [x19,938] + beq .L642 + ldrh w0, [x19,1450] cmp w0, w20 - beq .L641 - ldrh w0, [x19,940] + beq .L642 + ldrh w0, [x19,1452] cmp w0, w20 - beq .L641 - ldrh w0, [x19,942] + beq .L642 + ldrh w0, [x19,1454] cmp w0, w20 - beq .L641 + beq .L642 adrp x0, .LC78 mov w1, w20 add x0, x0, :lo12:.LC78 bl printk - ldrh w1, [x19,936] + ldrh w1, [x19,1448] mov w0, 65535 cmp w1, w0 - bne .L642 - strh w20, [x19,936] - b .L641 -.L642: - ldrh w1, [x19,938] - cmp w1, w0 bne .L643 - strh w20, [x19,938] - b .L641 + strh w20, [x19,1448] + b .L642 .L643: - ldrh w1, [x19,940] + ldrh w1, [x19,1450] cmp w1, w0 bne .L644 - strh w20, [x19,940] - b .L641 + strh w20, [x19,1450] + b .L642 .L644: - ldrh w1, [x19,942] + ldrh w1, [x19,1452] cmp w1, w0 - bne .L649 - strh w20, [x19,942] - b .L641 -.L649: + bne .L645 + strh w20, [x19,1452] + b .L642 +.L645: + ldrh w1, [x19,1454] + cmp w1, w0 + bne .L650 + strh w20, [x19,1454] + b .L642 +.L650: mov w21, -1 -.L641: +.L642: mov w0, w21 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -5153,46 +5141,46 @@ FtlGcMarkBadPhyBlk: str x23, [sp,48] bl P2V_block_in_plane uxth w21, w0 - ldrh w1, [x22,944] + ldrh w1, [x22,1456] adrp x0, .LC79 mov w2, w20 add x0, x0, :lo12:.LC79 bl printk mov w0, w21 bl FtlGcRefreshBlock - adrp x0, .LANCHOR0+1948 - ldr w0, [x0,#:lo12:.LANCHOR0+1948] - cbz w0, .L651 + adrp x0, .LANCHOR0+2460 + ldr w0, [x0,#:lo12:.LANCHOR0+2460] + cbz w0, .L652 ubfiz x0, x21, 1, 16 - ldr x2, [x22,-80] + ldr x2, [x22,432] ldrh w1, [x2,x0] cmp w1, 39 - bls .L651 + bls .L652 sub w1, w1, #40 strh w1, [x2,x0] -.L651: +.L652: add x2, x19, :lo12:.LANCHOR2 mov x0, 0 - add x2, x2, 952 + add x2, x2, 1464 ldrh w1, [x2,-8] -.L652: +.L653: cmp w1, w0, uxth - bls .L658 + bls .L659 add x0, x0, 1 add x3, x2, x0, lsl 1 ldrh w3, [x3,-2] cmp w3, w20 - bne .L652 - b .L653 -.L658: + bne .L653 + b .L654 +.L659: cmp w1, 15 - bhi .L653 + bhi .L654 add x19, x19, :lo12:.LANCHOR2 add w0, w1, 1 - add x19, x19, 952 + add x19, x19, 1464 strh w0, [x19,-8] strh w20, [x19,w1,sxtw 1] -.L653: +.L654: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -5209,27 +5197,27 @@ FtlGcReFreshBadBlk: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,944] - cbz w1, .L660 - ldrh w3, [x0,936] + ldrh w1, [x0,1456] + cbz w1, .L661 + ldrh w3, [x0,1448] mov w2, 65535 cmp w3, w2 - bne .L660 - ldrh w2, [x0,986] + bne .L661 + ldrh w2, [x0,1498] cmp w2, w1 - bcc .L661 - strh wzr, [x0,986] -.L661: + bcc .L662 + strh wzr, [x0,1498] +.L662: add x19, x19, :lo12:.LANCHOR2 - add x0, x19, 952 - ldrh w1, [x19,986] + add x0, x19, 1464 + ldrh w1, [x19,1498] ldrh w0, [x0,w1,sxtw 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,986] + ldrh w0, [x19,1498] add w0, w0, 1 - strh w0, [x19,986] -.L660: + strh w0, [x19,1498] +.L661: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -5254,63 +5242,63 @@ BuildFlashLsbPageTable: add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w1 - cbnz w0, .L667 + cbnz w0, .L668 adrp x1, .LANCHOR0 mov x0, 0 add x1, x1, :lo12:.LANCHOR0 -.L668: +.L669: add x2, x1, 200 strh w0, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L668 -.L674: + bne .L669 +.L675: adrp x19, .LANCHOR2 mov w1, 255 add x19, x19, :lo12:.LANCHOR2 - mov w2, 1024 - add x19, x19, 988 + mov w2, 2048 + add x19, x19, 1500 uxth w20, w20 mov x0, x19 bl ftl_memset adrp x1, .LANCHOR0 mov x0, 0 add x1, x1, :lo12:.LANCHOR0 - b .L669 -.L667: + b .L670 +.L668: cmp w0, 1 - bne .L670 + bne .L671 adrp x3, .LANCHOR0 mov x0, 0 mov w4, 3 mov w5, 2 add x3, x3, :lo12:.LANCHOR0 -.L673: +.L674: cmp x0, 3 uxth w1, w0 mov w2, w1 - bls .L671 + 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 -.L671: +.L672: add x1, x3, 200 strh w2, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L673 - b .L674 -.L670: + bne .L674 + b .L675 +.L671: cmp w0, 2 - bne .L675 + bne .L676 adrp x3, .LANCHOR0 mov w1, 65535 mov x0, 0 add x3, x3, :lo12:.LANCHOR0 -.L677: +.L678: add x4, x3, 200 cmp x0, 1 uxth w2, w0 @@ -5320,37 +5308,37 @@ BuildFlashLsbPageTable: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L677 - b .L674 -.L675: - cmp w0, 3 bne .L678 + b .L675 +.L676: + cmp w0, 3 + bne .L679 adrp x3, .LANCHOR0 mov x0, 0 mov w4, 5 mov w5, 4 add x3, x3, :lo12:.LANCHOR0 -.L681: +.L682: cmp x0, 5 uxth w1, w0 mov w2, w1 - bls .L679 + 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 -.L679: +.L680: add x1, x3, 200 strh w2, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L681 - b .L674 -.L678: - cmp w0, 4 bne .L682 + b .L675 +.L679: + cmp w0, 4 + bne .L683 adrp x1, .LANCHOR0 mov w5, 7 add x1, x1, :lo12:.LANCHOR0 @@ -5371,7 +5359,7 @@ BuildFlashLsbPageTable: strh w0, [x2,14] mov w0, 8 strh w1, [x2,6] -.L684: +.L685: and w3, w0, 1 ubfiz w1, w0, 1, 15 add w0, w0, 1 @@ -5382,42 +5370,42 @@ BuildFlashLsbPageTable: sub w1, w1, w3 cmp w0, 256 strh w1, [x2,14] - bne .L684 - b .L674 -.L682: - cmp w0, 5 bne .L685 + b .L675 +.L683: + cmp w0, 5 + bne .L686 adrp x2, .LANCHOR0 mov x0, 0 add x2, x2, :lo12:.LANCHOR0 -.L686: +.L687: add x1, x2, 200 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L686 + bne .L687 mov x0, 0 -.L687: +.L688: add x2, x1, x0 add w3, w0, 16 add x0, x0, 2 cmp x0, 480 strh w3, [x2,32] - bne .L687 - b .L674 -.L685: - cmp w0, 6 bne .L688 + b .L675 +.L686: + cmp w0, 6 + bne .L689 adrp x1, .LANCHOR0 mov x2, 0 mov w4, 12 mov w5, 10 add x1, x1, :lo12:.LANCHOR0 -.L691: +.L692: cmp x2, 5 uxth w3, w2 mov w0, w3 - bls .L689 + bls .L690 add w0, w3, w3, lsl 1 and w3, w3, 1 cmp w3, wzr @@ -5425,16 +5413,16 @@ BuildFlashLsbPageTable: csel w3, w4, w5, ne sub w0, w0, w3 uxth w0, w0 -.L689: +.L690: add x3, x1, 200 strh w0, [x3,x2,lsl 1] add x2, x2, 1 cmp x2, 256 - bne .L691 - b .L674 -.L688: + bne .L692 + b .L675 +.L689: cmp w0, 9 - bne .L674 + bne .L693 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x1, x0, 200 @@ -5444,23 +5432,44 @@ BuildFlashLsbPageTable: mov w0, 2 strh w0, [x1,4] mov x0, 0 -.L692: +.L694: add x2, x1, x0 add w3, w0, 3 add x0, x0, 2 cmp x0, 506 strh w3, [x2,6] - bne .L692 - b .L674 -.L669: + bne .L694 + b .L675 +.L693: + cmp w0, 10 + bne .L675 + adrp x2, .LANCHOR0 + mov x0, 0 + add x2, x2, :lo12:.LANCHOR0 +.L695: + add x1, x2, 200 + strh w0, [x1,x0,lsl 1] + add x0, x0, 1 + cmp x0, 63 + bne .L695 + mov x0, 0 +.L696: + add x2, x1, x0 + add w3, w0, 63 + add x0, x0, 2 + cmp x0, 898 + strh w3, [x2,126] + bne .L696 + b .L675 +.L670: cmp w20, w0, uxth - bls .L711 + bls .L717 add x2, x1, 200 ldrh w2, [x2,x0,lsl 1] add x0, x0, 1 strh w2, [x19,w2,sxtw 1] - b .L669 -.L711: + b .L670 +.L717: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5478,80 +5487,80 @@ FlashDieInfoInit: stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - strb wzr, [x0,2012] + strb wzr, [x0,3548] adrp x0, .LANCHOR1+482 add x19, x21, :lo12:.LANCHOR0 mov x24, 0 - add x25, x19, 1620 + add x25, x19, 2132 ldrh w0, [x0,#:lo12:.LANCHOR1+482] - strb wzr, [x19,1845] + strb wzr, [x19,2357] bl FlashBlockAlignInit mov w1, 0 mov w2, 8 - add x0, x19, 1848 + add x0, x19, 2360 bl ftl_memset mov w1, 0 mov w2, 32 - add x0, x19, 712 + add x0, x19, 1224 bl ftl_memset - add x0, x19, 1652 + add x0, x19, 2164 mov w1, 0 mov w2, 192 bl ftl_memset - ldr x20, [x19,744] + ldr x20, [x19,1256] add x23, x20, 1 -.L714: +.L720: ldrb w2, [x20] mov x0, x23 add x1, x25, x24, lsl 3 bl FlashMemCmp8 - cbnz w0, .L713 - ldrb w1, [x19,1845] - add x2, x19, 712 + cbnz w0, .L719 + ldrb w1, [x19,2357] + add x2, x19, 1224 str w0, [x2,w1,sxtw 2] add w0, w1, 1 add x1, x19, x1, sxtw - strb w0, [x19,1845] - strb w24, [x1,1848] -.L713: + strb w0, [x19,2357] + strb w24, [x1,2360] +.L719: add x24, x24, 1 cmp x24, 4 - bne .L714 + bne .L720 add x19, x21, :lo12:.LANCHOR0 add x0, x22, :lo12:.LANCHOR2 - ldrb w1, [x19,1845] - strb w1, [x0,2012] + ldrb w1, [x19,2357] + strb w1, [x0,3548] ldrb w0, [x20,8] cmp w0, 2 - beq .L715 -.L719: + beq .L721 +.L725: add x21, x21, :lo12:.LANCHOR0 ldrb w1, [x20,13] add x22, x22, :lo12:.LANCHOR2 ldp x23, x24, [sp,48] - ldrb w0, [x21,1845] + ldrb w0, [x21,2357] 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,2014] + strh w0, [x22,3550] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 80 ret -.L715: +.L721: ldr w25, [x19,76] mov x24, 0 - add x26, x19, 1620 -.L718: + add x26, x19, 2132 +.L724: ldrb w2, [x20] mov x0, x23 add x1, x26, x24, lsl 3 bl FlashMemCmp8 - cbnz w0, .L716 + cbnz w0, .L722 ldrb w1, [x20,13] - add x4, x19, 712 - ldrb w3, [x19,1845] + add x4, x19, 1224 + ldrb w3, [x19,2357] mul w0, w1, w25 ldrh w1, [x20,14] mov x2, x3 @@ -5559,19 +5568,19 @@ FlashDieInfoInit: mul w1, w0, w1 str w1, [x4,w3,sxtw 2] ldrb w0, [x20,23] - cbz w0, .L717 + cbz w0, .L723 lsl w1, w1, 1 str w1, [x4,w3,sxtw 2] -.L717: +.L723: add x0, x19, x3 add w2, w2, 1 - strb w2, [x19,1845] - strb w24, [x0,1848] -.L716: + strb w2, [x19,2357] + strb w24, [x0,2360] +.L722: add x24, x24, 1 cmp x24, 4 - bne .L718 - b .L719 + bne .L724 + b .L725 .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 .global ftl_read_flash_info @@ -5587,38 +5596,38 @@ ftl_read_flash_info: adrp x1, .LANCHOR0 mov w5, 1 add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,744] + ldr x0, [x1,1256] ldrb w2, [x0,9] ldr w0, [x1,76] mul w0, w0, w2 strh w0, [x19,4] - ldrb w0, [x1,1944] + ldrb w0, [x1,2456] strb w0, [x19,7] - ldr w0, [x1,2064] + ldr w0, [x1,2576] str w0, [x19] - ldr x0, [x1,744] - ldrb w4, [x1,1845] + ldr x0, [x1,1256] + ldrb w4, [x1,2357] ldrb w0, [x0,9] strb w0, [x19,6] mov w0, 32 strb w0, [x19,8] - ldr x0, [x1,744] + ldr x0, [x1,1256] ldrb w0, [x0,7] strb w0, [x19,9] mov x0, 0 strb wzr, [x19,10] -.L727: +.L733: cmp w4, w0, uxtb - bls .L729 - add x2, x1, 1848 + bls .L735 + add x2, x1, 2360 ldrb w3, [x19,10] ldrb w2, [x0,x2] add x0, x0, 1 lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L727 -.L729: + b .L733 +.L735: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5638,337 +5647,336 @@ FtlMemInit: stp x19, x20, [sp,16] stp x23, x24, [sp,48] add x3, x22, :lo12:.LANCHOR0 - str w1, [x0,2028] - strh wzr, [x0,2016] + str w1, [x0,3564] + strh wzr, [x0,3552] mov w1, -1 - str wzr, [x0,2020] - strh w1, [x0,936] - str wzr, [x0,328] - str wzr, [x0,232] - str wzr, [x0,236] - str wzr, [x0,220] - str wzr, [x0,208] - str wzr, [x0,204] - str wzr, [x0,212] - str wzr, [x0,216] - str wzr, [x0,200] - str wzr, [x0,240] - str wzr, [x0,244] - str wzr, [x0,-72] - str wzr, [x0,252] - str wzr, [x0,256] - str wzr, [x0,2024] - str wzr, [x0,860] - str wzr, [x0,2032] - str wzr, [x0,852] - str wzr, [x0,2036] - strh w1, [x0,938] - strh w1, [x0,940] - strh w1, [x0,942] + 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,752] + str wzr, [x0,756] + str wzr, [x0,440] + str wzr, [x0,764] + str wzr, [x0,768] + str wzr, [x0,3560] + str wzr, [x0,1372] + str wzr, [x0,3568] + str wzr, [x0,1364] + str wzr, [x0,3572] + strh w1, [x0,1450] + strh w1, [x0,1452] + strh w1, [x0,1454] mov w1, 32 - ldrh w2, [x3,2030] - strh w1, [x0,848] + ldrh w2, [x3,2542] + strh w1, [x0,1360] mov w1, 128 - strh w1, [x0,850] + strh w1, [x0,1362] mov w1, 1024 - strh wzr, [x0,856] + strh wzr, [x0,1368] sdiv w2, w1, w2 - ldrh w1, [x3,1956] - strh wzr, [x0,944] + ldrh w1, [x3,2468] + strh wzr, [x0,1456] lsl w1, w1, 2 - strh wzr, [x0,2040] - strh wzr, [x0,986] + strh wzr, [x0,3576] + strh wzr, [x0,1498] cmp w2, w1 - str w2, [x0,2044] - bls .L731 - str w1, [x0,2044] -.L731: + str w2, [x0,3580] + bls .L737 + str w1, [x0,3580] +.L737: add x20, x22, :lo12:.LANCHOR0 add x19, x21, :lo12:.LANCHOR2 mov w24, 56 - ldrh w0, [x20,2028] - str wzr, [x20,2080] + ldrh w0, [x20,2540] + str wzr, [x20,2592] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,912] - ldrh w1, [x20,2028] + str x0, [x19,1424] + ldrh w1, [x20,2540] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w23, [x20,1956] - str x0, [x19,928] + ldrh w23, [x20,2468] + str x0, [x19,1440] mul w23, w23, w24 lsl w25, w23, 3 mov w0, w25 bl ftl_malloc - str x0, [x19,2048] + str x0, [x19,3584] mov w0, w23 bl ftl_malloc - str x0, [x19,2056] + str x0, [x19,3592] mov w0, w25 bl ftl_malloc - str x0, [x19,2064] + str x0, [x19,3600] mov w0, w23 bl ftl_malloc - str x0, [x19,-88] + str x0, [x19,424] mov w0, w23 bl ftl_malloc - str x0, [x19,896] - ldr w0, [x19,2044] + str x0, [x19,1408] + ldr w0, [x19,3580] mul w0, w0, w24 bl ftl_malloc - str x0, [x20,2088] - ldrh w0, [x20,1956] - ldrh w23, [x20,2034] + str x0, [x20,2600] + ldrh w0, [x20,2468] + ldrh w23, [x20,2546] lsl w0, w0, 1 add w0, w0, 1 - str w0, [x19,904] + str w0, [x19,1416] mov w0, w23 bl ftl_malloc - str x0, [x19,2072] + str x0, [x19,3608] mov w0, w23 bl ftl_malloc - str x0, [x19,2080] + str x0, [x19,3616] mov w0, w23 bl ftl_malloc - str x0, [x19,2088] - ldr w0, [x19,904] + str x0, [x19,3624] + ldr w0, [x19,1416] mul w0, w23, w0 bl ftl_malloc - str x0, [x19,880] - ldr w0, [x19,2044] + str x0, [x19,1392] + ldr w0, [x19,3580] mul w0, w23, w0 bl ftl_malloc - str x0, [x19,2096] + str x0, [x19,3632] mov w0, w23 bl ftl_malloc - str x0, [x19,2104] + str x0, [x19,3640] mov w0, w23 bl ftl_malloc - str x0, [x19,2112] - ldr w1, [x19,904] + str x0, [x19,3648] + ldr w1, [x19,1416] mov w0, 24 mul w0, w1, w0 bl ftl_malloc - ldrh w23, [x20,1956] - str x0, [x19,872] - ldrh w0, [x20,2036] + 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,2120] + str x0, [x19,3656] lsl w0, w23, 3 bl ftl_malloc - str x0, [x19,2128] - ldrh w1, [x20,2036] - ldr w0, [x19,904] + str x0, [x19,3664] + ldrh w1, [x20,2548] + ldr w0, [x19,1416] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,888] - ldrh w1, [x20,2036] - ldr w0, [x19,2044] + str x0, [x19,1400] + ldrh w1, [x20,2548] + ldr w0, [x19,3580] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,2136] - ldrh w0, [x20,1966] + str x0, [x19,3672] + ldrh w0, [x20,2478] lsl w0, w0, 1 - strh w0, [x19,2144] + strh w0, [x19,3680] and w0, w0, 65534 bl ftl_malloc - str x0, [x19,2152] - ldrh w0, [x19,2144] + str x0, [x19,3688] + ldrh w0, [x19,3680] add x0, x0, 547 lsr x0, x0, 9 - strh w0, [x19,2144] + strh w0, [x19,3680] lsl w0, w0, 9 bl ftl_malloc - ldrh w23, [x20,1966] - str x0, [x19,2160] + ldrh w23, [x20,2478] + str x0, [x19,3696] add x0, x0, 32 lsl w23, w23, 1 - str x0, [x19,-80] + str x0, [x19,432] mov w0, w23 bl ftl_malloc - str x0, [x19,2168] + str x0, [x19,3704] mov w0, w23 bl ftl_malloc - ldr w23, [x20,2052] - str x0, [x21,#:lo12:.LANCHOR2] + ldr w23, [x20,2564] + str x0, [x19,512] lsl w23, w23, 1 mov w0, w23 bl ftl_malloc - str x0, [x19,2176] + str x0, [x19,3712] mov w0, w23 bl ftl_malloc - str x0, [x19,2184] - ldrh w0, [x20,1966] + str x0, [x19,3720] + ldrh w0, [x20,2478] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc str x0, [x22,#:lo12:.LANCHOR0] - ldrh w0, [x20,2044] + ldrh w0, [x20,2556] lsl w0, w0, 1 bl ftl_malloc - str x0, [x20,2072] - ldrh w0, [x20,2044] + str x0, [x20,2584] + ldrh w0, [x20,2556] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,2192] - ldrh w0, [x20,2044] + str x0, [x19,3728] + ldrh w0, [x20,2556] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,2200] - ldrh w0, [x20,2046] + str x0, [x19,3736] + ldrh w0, [x20,2558] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,2208] - ldrh w2, [x20,2046] + str x0, [x19,3744] + ldrh w2, [x20,2558] mov w1, 0 lsl w2, w2, 2 bl ftl_memset - ldrh w23, [x20,2060] + ldrh w23, [x20,2572] lsl w23, w23, 2 mov w0, w23 bl ftl_malloc - str x0, [x19,2216] + str x0, [x19,3752] mov w0, w23 bl ftl_malloc - str x0, [x19,2224] - ldr w0, [x20,2052] + str x0, [x19,3760] + ldr w0, [x20,2564] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,2232] - ldrh w0, [x20,2062] + str x0, [x19,3768] + ldrh w0, [x20,2574] lsl w0, w0, 4 bl ftl_malloc - str x0, [x19,184] - ldrh w1, [x20,2062] - ldrh w0, [x20,2034] + str x0, [x19,696] + ldrh w1, [x20,2574] + ldrh w0, [x20,2546] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,2240] - ldrh w1, [x20,1966] + str x0, [x19,3776] + ldrh w1, [x20,2478] mov w0, 6 mul w0, w1, w0 bl ftl_malloc - str x0, [x19,-16] - ldrh w0, [x20,2022] - ldrh w1, [x20,1978] + str x0, [x19,496] + ldrh w0, [x20,2534] + ldrh w1, [x20,2490] add w0, w0, 31 asr w0, w0, 5 - strh w0, [x19,2248] + strh w0, [x19,3784] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,2136] - add x1, x20, 2104 - ldrh w4, [x19,2248] - ldrh w5, [x20,1978] + str x0, [x20,2648] + add x1, x20, 2616 + ldrh w4, [x19,3784] + ldrh w5, [x20,2490] mov w0, 1 mov w2, w4 -.L732: +.L738: cmp w0, w5 add x1, x1, 8 - bcs .L832 - ldr x3, [x20,2136] + bcs .L838 + ldr x3, [x20,2648] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L732 -.L832: + b .L738 +.L838: add x1, x22, :lo12:.LANCHOR0 -.L734: +.L740: cmp w0, 8 - beq .L833 + beq .L839 add x2, x1, x0, uxtw 3 add w0, w0, 1 - str xzr, [x2,2136] - b .L734 -.L833: + str xzr, [x2,2648] + b .L740 +.L839: add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,2176] - cbnz x1, .L736 -.L738: + ldr x1, [x0,3712] + cbnz x1, .L742 +.L744: adrp x0, .LC80 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC80 add x1, x1, :lo12:.LANCHOR3 bl printk mov w0, -1 - b .L737 -.L736: - ldr x1, [x0,2184] - cbz x1, .L738 - ldr x1, [x0,2216] - cbz x1, .L738 - ldr x1, [x0,2232] - cbz x1, .L738 - ldr x1, [x0,184] - cbz x1, .L738 - ldr x1, [x0,2240] - cbz x1, .L738 - ldr x0, [x0,-16] - cbz x0, .L738 + 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 + ldr x1, [x0,3776] + cbz x1, .L744 + ldr x1, [x0,496] + cbz x1, .L744 add x22, x22, :lo12:.LANCHOR0 - ldr x0, [x22,2136] - cbz x0, .L738 - adrp x0, .LANCHOR2 - ldr x0, [x0,#:lo12:.LANCHOR2] - cbz x0, .L738 + ldr x1, [x22,2648] + cbz x1, .L744 + ldr x0, [x0,512] + cbz x0, .L744 add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,912] - cbz x1, .L738 - ldr x1, [x0,928] - cbz x1, .L738 - ldr x1, [x0,2048] - cbz x1, .L738 - ldr x1, [x0,2064] - cbz x1, .L738 - ldr x1, [x0,-88] - cbz x1, .L738 - ldr x1, [x0,896] - cbz x1, .L738 - ldr x1, [x0,2056] - cbz x1, .L738 - ldr x1, [x0,2072] - cbz x1, .L738 - ldr x1, [x0,2080] - cbz x1, .L738 - ldr x0, [x0,2088] - cbz x0, .L738 + 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,3592] + cbz x1, .L744 + 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,880] - cbz x1, .L738 - ldr x1, [x0,2104] - cbz x1, .L738 - ldr x1, [x0,2112] - cbz x1, .L738 - ldr x1, [x0,872] - cbz x1, .L738 - ldr x1, [x0,2120] - cbz x1, .L738 - ldr x1, [x0,2128] - cbz x1, .L738 - ldr x1, [x0,888] - cbz x1, .L738 - ldr x1, [x0,-80] - cbz x1, .L738 - ldr x0, [x0,2152] - cbz x0, .L738 - adrp x0, .LANCHOR0+2072 - ldr x0, [x0,#:lo12:.LANCHOR0+2072] - cbz x0, .L738 + 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 + 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 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,2192] - cbz x1, .L738 - ldr x1, [x0,2200] - cbz x1, .L738 - ldr x0, [x0,2208] - cbz x0, .L738 + ldr x1, [x0,3728] + cbz x1, .L744 + ldr x1, [x0,3736] + cbz x1, .L744 + ldr x0, [x0,3744] + cbz x0, .L744 mov w0, 0 -.L737: +.L743: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5984,9 +5992,9 @@ FtlBbt2Bitmap: add x29, sp, 0 stp x19, x20, [sp,16] mov x20, x0 - adrp x0, .LANCHOR2+2248 + adrp x0, .LANCHOR2+3784 mov x19, x1 - ldrh w2, [x0,#:lo12:.LANCHOR2+2248] + ldrh w2, [x0,#:lo12:.LANCHOR2+3784] mov x0, x1 mov w1, 0 lsl w2, w2, 2 @@ -5996,10 +6004,10 @@ FtlBbt2Bitmap: mov w0, 65535 mov w6, 1 add x5, x5, :lo12:.LANCHOR0 -.L836: +.L842: ldrh w2, [x20,x3] cmp w2, w0 - beq .L834 + beq .L840 ubfx x4, x2, 5, 11 lsl w2, w6, w2 lsl x4, x4, 2 @@ -6008,11 +6016,11 @@ FtlBbt2Bitmap: ldr w1, [x19,x4] orr w2, w1, w2 str w2, [x19,x4] - ldrh w2, [x5,2110] + ldrh w2, [x5,2622] add w2, w2, 1 - strh w2, [x5,2110] - bne .L836 -.L834: + strh w2, [x5,2622] + bne .L842 +.L840: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6027,7 +6035,7 @@ FtlBbtMemInit: add x0, x0, :lo12:.LANCHOR0 mov w2, 16 add x29, sp, 0 - add x0, x0, 2116 + add x0, x0, 2628 strh w1, [x0,-12] mov w1, 255 strh wzr, [x0,-6] @@ -6044,11 +6052,11 @@ FtlFreeSysBlkQueueInit: stp x29, x30, [sp, -16]! add x1, x1, :lo12:.LANCHOR0 add x29, sp, 0 - strh w0, [x1,2200] - add x0, x1, 2208 - strh wzr, [x1,2202] - strh wzr, [x1,2204] - strh wzr, [x1,2206] + strh w0, [x1,2712] + add x0, x1, 2720 + strh wzr, [x1,2714] + strh wzr, [x1,2716] + strh wzr, [x1,2718] mov w1, 0 bl ftl_memset mov w0, 0 @@ -6075,76 +6083,76 @@ ftl_free_no_use_map_blk: mov x0, x21 bl ftl_memset mov w0, 0 -.L842: +.L848: ldrh w1, [x19,6] cmp w1, w0 - bls .L864 + bls .L870 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L843: +.L849: ldrh w3, [x19,10] cmp w3, w1 - bls .L865 + bls .L871 ubfiz x3, x1, 1, 16 ldrh w4, [x22,x3] cmp w2, w4 - bne .L844 - cbz w4, .L844 + bne .L850 + cbz w4, .L850 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L844: +.L850: add w1, w1, 1 uxth w1, w1 - b .L843 -.L865: + b .L849 +.L871: add w0, w0, 1 uxth w0, w0 - b .L842 -.L864: - adrp x0, .LANCHOR0+2026 + b .L848 +.L870: + adrp x0, .LANCHOR0+2538 mov w23, 0 mov w20, w23 - ldrh w1, [x0,#:lo12:.LANCHOR0+2026] + ldrh w1, [x0,#:lo12:.LANCHOR0+2538] ldrh w0, [x19] strh w1, [x21,x0,lsl 1] ldrh w24, [x21] -.L847: +.L853: ldrh w0, [x19,10] cmp w0, w20 - bls .L866 + bls .L872 ubfiz x2, x20, 1, 16 ldrh w1, [x21,x2] cmp w24, w1 - bls .L848 + bls .L854 ldrh w0, [x22,x2] add x25, x22, x2 - cbnz w0, .L849 - b .L850 -.L848: - cbnz w1, .L850 + cbnz w0, .L855 + b .L856 +.L854: + cbnz w1, .L856 ldrh w0, [x22,x2] add x25, x22, x2 - cbz w0, .L850 -.L852: + cbz w0, .L856 +.L858: mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x25] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L850: +.L856: add w20, w20, 1 uxth w20, w20 - b .L847 -.L849: + b .L853 +.L855: mov w23, w20 mov w24, w1 - cbz w1, .L852 - b .L850 -.L866: + cbz w1, .L858 + b .L856 +.L872: mov w0, w23 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -6166,34 +6174,34 @@ FtlL2PDataInit: stp x21, x22, [sp,32] add x21, x20, :lo12:.LANCHOR0 add x22, x19, :lo12:.LANCHOR2 - ldr w2, [x21,2052] - ldr x0, [x22,2184] + ldr w2, [x21,2564] + ldr x0, [x22,3720] lsl w2, w2, 1 bl ftl_memset - ldrh w3, [x21,2034] + ldrh w3, [x21,2546] mov w1, 255 - ldrh w2, [x21,2062] - ldr x0, [x22,2240] + ldrh w2, [x21,2574] + ldr x0, [x22,3776] mul w2, w3, w2 bl ftl_memset mov w1, 0 mov w5, -1 -.L868: +.L874: add x3, x20, :lo12:.LANCHOR0 - ldrh w0, [x3,2062] + ldrh w0, [x3,2574] cmp w0, w1 - bls .L870 + bls .L876 add x4, x19, :lo12:.LANCHOR2 ubfiz x0, x1, 4, 16 - ldr x2, [x4,184] + ldr x2, [x4,696] add x2, x2, x0 str wzr, [x2,4] - ldr x2, [x4,184] + ldr x2, [x4,696] strh w5, [x2,x0] - ldr x2, [x4,184] + ldr x2, [x4,696] add x2, x2, x0 - ldrh w0, [x3,2034] - ldr x3, [x4,2240] + ldrh w0, [x3,2546] + ldr x3, [x4,3776] mul w0, w0, w1 add w1, w1, 1 sxtw x0, w0 @@ -6201,28 +6209,28 @@ FtlL2PDataInit: and x0, x0, -4 add x0, x3, x0 str x0, [x2,8] - b .L868 -.L870: + b .L874 +.L876: add x0, x19, :lo12:.LANCHOR2 mov w2, -1 - add x1, x0, 2256 - strh w2, [x0,2258] - strh w2, [x0,2256] - ldr w2, [x3,2052] - strh w2, [x0,2266] + add x1, x0, 3792 + strh w2, [x0,3794] + strh w2, [x0,3792] + ldr w2, [x3,2564] + strh w2, [x0,3802] mov w2, -3902 - strh w2, [x0,2260] - ldrh w2, [x0,2320] - strh w2, [x0,2264] - ldrh w2, [x3,2060] - strh w2, [x0,2262] - ldr x2, [x0,2176] - str x2, [x0,2272] - ldr x2, [x0,2232] - str x2, [x0,2280] - ldr x2, [x0,2184] - str x2, [x0,2288] - ldr x0, [x0,2216] + 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 x2, [x0,3720] + str x2, [x0,3824] + ldr x0, [x0,3752] str x0, [x1,40] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6242,35 +6250,35 @@ FtlVariablesInit: adrp x20, .LANCHOR0 add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR0 - strh w0, [x19,2336] + strh w0, [x19,3872] mov w0, -1 - ldrh w2, [x20,2044] - str w0, [x19,2348] - ldr x0, [x20,2072] + ldrh w2, [x20,2556] + str w0, [x19,3884] + ldr x0, [x20,2584] lsl w2, w2, 1 - str xzr, [x19,2328] - str wzr, [x19,2340] - str wzr, [x19,2344] - str wzr, [x20,1948] - strh wzr, [x20,2070] + str xzr, [x19,3864] + str wzr, [x19,3876] + str wzr, [x19,3880] + str wzr, [x20,2460] + strh wzr, [x20,2582] bl ftl_memset - ldrh w2, [x20,1966] + ldrh w2, [x20,2478] mov w1, 0 - ldr x0, [x19,-80] + ldr x0, [x19,432] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,1966] + ldrh w2, [x20,2478] mov w1, 0 - ldr x0, [x19,2152] + ldr x0, [x19,3688] lsl w2, w2, 1 bl ftl_memset - sub x0, x19, #64 + add x0, x19, 448 mov w1, 0 mov w2, 48 bl ftl_memset mov w1, 0 mov w2, 512 - add x0, x19, 336 + add x0, x19, 848 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit @@ -6297,33 +6305,33 @@ SupperBlkListInit: adrp x21, .LANCHOR2 mov w25, 0 add x19, x21, :lo12:.LANCHOR2 - ldrh w2, [x0,1966] + ldrh w2, [x0,2478] mov w22, w25 mov w26, 32768 - ldr x0, [x19,-16] + ldr x0, [x19,496] mul w2, w2, w24 bl ftl_memset - str xzr, [x19,24] - str xzr, [x19,-8] - str xzr, [x19,8] - strh wzr, [x19,16] - strh wzr, [x19,32] - strh wzr, [x19,2016] + str xzr, [x19,536] + str xzr, [x19,504] + str xzr, [x19,520] + strh wzr, [x19,528] + strh wzr, [x19,544] + strh wzr, [x19,3552] mov w19, w25 -.L873: +.L879: add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,1964] + ldrh w1, [x0,2476] cmp w19, w1 - bge .L880 + bge .L886 mov w20, 0 - ldrh w3, [x0,1956] - ldrh w2, [x0,2024] + ldrh w3, [x0,2468] + ldrh w2, [x0,2536] mov w28, w20 mov x27, x0 -.L881: +.L887: cmp w28, w3 - bge .L882 - add x0, x27, 1984 + bge .L888 + add x0, x27, 2496 mov w1, w19 str x2, [x29,96] str x3, [x29,104] @@ -6332,60 +6340,61 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L874 + cbnz w0, .L880 add w20, w2, w20 sxth w20, w20 -.L874: +.L880: add w28, w28, 1 sxth w28, w28 - b .L881 -.L882: - cbz w20, .L876 + b .L887 +.L888: + cbz w20, .L882 sdiv w20, w26, w20 sxth w20, w20 - b .L877 -.L876: - ldr x0, [x21,#:lo12:.LANCHOR2] - mov w1, -1 - strh w1, [x0,w19,sxtw 1] -.L877: + b .L883 +.L882: add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,-16] + mov w1, -1 + ldr x0, [x0,512] + strh w1, [x0,w19,sxtw 1] +.L883: + add x0, x21, :lo12:.LANCHOR2 + ldr x1, [x0,496] smaddl x1, w19, w24, x1 strh w20, [x1,4] - ldrh w1, [x0,40] + ldrh w1, [x0,552] cmp w19, w1 - beq .L878 - ldrh w1, [x0,88] + beq .L884 + ldrh w1, [x0,600] cmp w19, w1 - beq .L878 - ldrh w0, [x0,136] - cmp w19, w0 - beq .L878 - ldr x0, [x21,#:lo12:.LANCHOR2] + beq .L884 + ldrh w1, [x0,648] + cmp w19, w1 + beq .L884 + ldr x0, [x0,512] ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L879 + cbnz w0, .L885 add w4, w25, 1 mov w0, w19 uxth w25, w4 bl INSERT_FREE_LIST - b .L878 -.L879: + b .L884 +.L885: add w22, w22, 1 mov w0, w19 uxth w22, w22 bl INSERT_DATA_LIST -.L878: +.L884: add w19, w19, 1 sxth w19, w19 - b .L873 -.L880: + b .L879 +.L886: add x21, x21, :lo12:.LANCHOR2 mov w0, 0 ldp x19, x20, [sp,16] ldp x23, x24, [sp,48] - strh w25, [x21,32] - strh w22, [x21,16] + strh w25, [x21,544] + strh w22, [x21,528] ldp x25, x26, [sp,64] ldp x21, x22, [sp,32] ldp x27, x28, [sp,80] @@ -6404,15 +6413,15 @@ FtlGcPageVarInit: adrp x19, .LANCHOR2 add x20, x20, :lo12:.LANCHOR0 add x19, x19, :lo12:.LANCHOR2 - ldrh w2, [x20,2028] - ldr x0, [x19,912] + ldrh w2, [x20,2540] + ldr x0, [x19,1424] lsl w2, w2, 1 - strh wzr, [x19,908] - strh wzr, [x19,920] + strh wzr, [x19,1420] + strh wzr, [x19,1432] bl ftl_memset - ldrh w3, [x20,2028] + ldrh w3, [x20,2540] mov w2, 12 - ldr x0, [x19,928] + ldr x0, [x19,1440] mov w1, 255 mul w2, w3, w2 bl ftl_memset @@ -6441,7 +6450,7 @@ FlashReadIdbData: mov w2, 2048 add x1, x1, :lo12:.LANCHOR2 add x29, sp, 0 - add x1, x1, 2352 + add x1, x1, 3888 bl ftl_memcpy mov w0, 0 ldp x29, x30, [sp], 16 @@ -6462,44 +6471,44 @@ FlashLoadPhyInfoInRam: str x23, [sp,48] add x21, x21, 512 mov w20, 0 - add x22, x22, 1620 -.L890: + add x22, x22, 2132 +.L896: ldrb w2, [x21] add x0, x21, 1 mov x1, x22 bl FlashMemCmp8 mov w23, w0 - cbnz w0, .L887 + cbnz w0, .L893 add x0, x19, :lo12:.LANCHOR1 ubfiz x20, x20, 5, 32 add x1, x0, 512 adds x20, x1, x20 - beq .L893 + beq .L899 ldrb w3, [x20,22] mov x2, 0 mov x1, x0 - b .L892 -.L887: + b .L898 +.L893: add w20, w20, 1 add x21, x21, 32 - cmp w20, 81 - bne .L890 - b .L893 -.L892: + cmp w20, 83 + bne .L896 + b .L899 +.L898: add x4, x1, x2, lsl 5 mov w0, w2 - ldrb w4, [x4,3104] + ldrb w4, [x4,3168] cmp w4, w3 - beq .L891 + beq .L897 add x2, x2, 1 cmp x2, 4 - bne .L892 + bne .L898 mov w0, w2 -.L891: +.L897: add x19, x19, :lo12:.LANCHOR1 ubfiz x1, x0, 5, 32 adrp x0, .LANCHOR0 - add x2, x19, 3104 + add x2, x19, 3168 add x0, x0, :lo12:.LANCHOR0 add x1, x2, x1 add x0, x0, 88 @@ -6512,10 +6521,10 @@ FlashLoadPhyInfoInRam: bl ftl_memcpy ldrh w0, [x19,10] bl FlashBlockAlignInit - b .L888 -.L893: + b .L894 +.L899: mov w23, -1 -.L888: +.L894: mov w0, w23 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -6539,14 +6548,14 @@ NandcCopy1KB: add x4, x0, 4096 add x21, x0, 512 add x2, x4, x2 - bne .L898 - cbz x3, .L899 + bne .L904 + cbz x3, .L905 mov x0, x2 mov x1, x3 mov w2, 1024 bl ftl_memcpy -.L899: - cbz x20, .L897 +.L905: + cbz x20, .L903 mov w0, 48 lsr w19, w19, 1 ldrb w1, [x20,1] @@ -6560,15 +6569,15 @@ NandcCopy1KB: ldrb w1, [x20,3] orr w0, w0, w1, lsl 24 str w0, [x21,w19,sxtw 2] - b .L897 -.L898: - cbz x3, .L902 + b .L903 +.L904: + cbz x3, .L908 mov x1, x2 mov x0, x3 mov w2, 1024 bl ftl_memcpy -.L902: - cbz x20, .L897 +.L908: + cbz x20, .L903 mov w0, 48 lsr w19, w19, 1 mul w19, w19, w0 @@ -6581,7 +6590,7 @@ NandcCopy1KB: lsr w0, w0, 24 strb w1, [x20,2] strb w0, [x20,3] -.L897: +.L903: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6592,14 +6601,14 @@ NandcCopy1KB: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L914: +.L920: cmp w2, w3 - bls .L916 + bls .L922 ldr w4, [x1,x3,lsl 2] str w4, [x0,x3,lsl 2] add x3, x3, 1 - b .L914 -.L916: + b .L920 +.L922: ret .size ftl_memcpy32, .-ftl_memcpy32 .align 2 @@ -6629,20 +6638,20 @@ timer_get_time: .global FlashSramLoadStore .type FlashSramLoadStore, %function FlashSramLoadStore: - adrp x4, .LANCHOR4+48 + adrp x4, .LANCHOR4+1584 mov x6, x0 stp x29, x30, [sp, -16]! uxtw x1, w1 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+48] + ldr x4, [x4,#:lo12:.LANCHOR4+1584] add x4, x4, 4096 - cbnz w2, .L920 + cbnz w2, .L926 add x1, x4, x1 - b .L922 -.L920: + b .L928 +.L926: add x0, x4, x1 mov x1, x6 -.L922: +.L928: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -6678,8 +6687,8 @@ rk_nand_resume: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR0+2064 - ldr w0, [x0,#:lo12:.LANCHOR0+2064] + adrp x0, .LANCHOR0+2576 + ldr w0, [x0,#:lo12:.LANCHOR0+2576] ret .size rk_ftl_get_capacity, .-rk_ftl_get_capacity .align 2 @@ -6732,42 +6741,42 @@ rknand_print_hex: add x23, x23, :lo12:.LC81 add x21, x21, :lo12:.LC82 add x24, x24, :lo12:.LC75 -.L931: +.L937: cmp x19, x26 - beq .L939 - cbnz w20, .L932 + beq .L945 + cbnz w20, .L938 mov x0, x23 mov x1, x27 mov x2, x22 mov w3, w19 bl printk -.L932: +.L938: cmp w25, 4 mov x0, x21 - bne .L933 + bne .L939 ldr w1, [x22,x19,lsl 2] - b .L938 -.L933: + b .L944 +.L939: cmp w25, 2 - bne .L935 + bne .L941 ldrsh w1, [x22,x19,lsl 1] - b .L938 -.L935: + b .L944 +.L941: ldrb w1, [x22,x19] -.L938: +.L944: bl printk add w20, w20, 1 cmp w20, 15 - bls .L936 + bls .L942 adrp x1, .LC83 mov x0, x24 add x1, x1, :lo12:.LC83 mov w20, 0 bl printk -.L936: +.L942: add x19, x19, 1 - b .L931 -.L939: + b .L937 +.L945: adrp x0, .LC75 adrp x1, .LC83 add x1, x1, :lo12:.LC83 @@ -6794,28 +6803,28 @@ HynixGetReadRetryDefault: stp x27, x28, [sp,80] mov w27, w0 add x0, x19, :lo12:.LANCHOR0 - add x1, x0, 760 + add x1, x0, 1272 cmp w27, 2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - strb w27, [x0,760] + strb w27, [x0,1272] mov w0, -84 strb w4, [x1,5] strb w0, [x1,4] mov w0, -81 strb w2, [x1,6] strb w0, [x1,7] - bne .L941 + bne .L947 mov w0, -89 strb w0, [x1,4] - adrp x0, .LANCHOR1+3249 + adrp x0, .LANCHOR1+3313 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+3249] - b .L1004 -.L941: + strb w1, [x0,#:lo12:.LANCHOR1+3313] + b .L1010 +.L947: cmp w27, 3 - bne .L943 + bne .L949 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -6831,10 +6840,10 @@ HynixGetReadRetryDefault: mov w0, -74 strb w0, [x1,10] mov w0, -73 - b .L1044 -.L943: + b .L1050 +.L949: cmp w27, 4 - bne .L944 + bne .L950 mov w5, -52 strb w5, [x1,4] mov w5, -65 @@ -6847,14 +6856,14 @@ HynixGetReadRetryDefault: mov w5, -51 strb w2, [x1,10] strb w5, [x1,8] -.L1044: +.L1050: mov w26, 8 strb w0, [x1,11] mov w28, w26 - b .L942 -.L944: + b .L948 +.L950: cmp w27, 5 - bne .L945 + bne .L951 mov w0, 56 strb w0, [x1,4] mov w0, 57 @@ -6864,10 +6873,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 59 strb w0, [x1,7] - b .L1045 -.L945: + b .L1051 +.L951: cmp w27, 6 - bne .L946 + bne .L952 mov w0, 14 strb w0, [x1,4] mov w0, 15 @@ -6877,10 +6886,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 17 strb w0, [x1,7] - b .L1045 -.L946: + b .L1051 +.L952: cmp w27, 7 - bne .L947 + bne .L953 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -6903,10 +6912,10 @@ HynixGetReadRetryDefault: mov w28, 10 mov w0, -43 strb w0, [x1,13] - b .L942 -.L947: + b .L948 +.L953: cmp w27, 8 - bne .L1004 + bne .L1010 mov w0, 6 strb w0, [x1,4] mov w0, 7 @@ -6918,28 +6927,28 @@ HynixGetReadRetryDefault: mov w0, 10 mov w28, 5 strb w0, [x1,8] - b .L942 -.L1004: + b .L948 +.L1010: mov w26, 7 -.L1045: +.L1051: mov w28, 4 -.L942: +.L948: sub w0, w27, #1 cmp w0, 1 - bhi .L1041 + bhi .L1047 adrp x22, .LANCHOR1 add x25, x19, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR1 mov w21, 0 - add x4, x25, 760 + add x4, x25, 1272 add x27, x25, 8 - add x22, x22, 3232 -.L948: - ldrb w0, [x25,1845] + add x22, x22, 3296 +.L954: + ldrb w0, [x25,2357] cmp w0, w21 - bls .L955 + bls .L961 add x0, x25, x21, sxtw - ldrb w0, [x0,1848] + ldrb w0, [x0,2360] mov x23, 0 add x20, x4, x0, lsl 6 lsl x0, x0, 4 @@ -6949,7 +6958,7 @@ HynixGetReadRetryDefault: ldrb w0, [x1,8] mov w1, 55 add x24, x24, x0, lsl 8 -.L950: +.L956: add x0, x4, x23 str w1, [x24,2056] str x1, [x29,128] @@ -6964,12 +6973,12 @@ HynixGetReadRetryDefault: ldr x4, [x29,136] cmp w28, w23, uxtb ldr x1, [x29,128] - bhi .L950 + bhi .L956 mov x0, 0 -.L951: +.L957: add w2, w0, 8 mov x1, 0 -.L952: +.L958: add x3, x1, x0 add x1, x1, 4 add x3, x22, x3 @@ -6979,10 +6988,10 @@ HynixGetReadRetryDefault: add w3, w6, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L952 + bne .L958 add x0, x0, 1 cmp x0, 4 - bne .L951 + bne .L957 add w21, w21, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -6992,11 +7001,11 @@ HynixGetReadRetryDefault: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L948 -.L1041: + b .L954 +.L1047: sub w0, w27, #3 cmp w0, 5 - bhi .L955 + bhi .L961 mul w25, w28, w26 sub w24, w28, #1 add x20, x19, :lo12:.LANCHOR0 @@ -7012,24 +7021,24 @@ HynixGetReadRetryDefault: add x25, x20, 8 add x0, x24, 1 str x0, [x29,112] -.L956: - ldrb w0, [x20,1845] +.L962: + ldrb w0, [x20,2357] cmp w0, w21 - bhi .L1002 -.L955: + bhi .L1008 +.L961: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - strb w28, [x19,761] - strb w26, [x19,762] + strb w28, [x19,1273] + strb w26, [x19,1274] ldp x27, x28, [sp,80] ldp x19, x20, [sp,16] ldp x25, x26, [sp,64] ldp x29, x30, [sp], 144 ret -.L1002: +.L1008: add x0, x20, x21, sxtw - ldrb w6, [x0,1848] + ldrb w6, [x0,2360] str x6, [x29,104] lsl x0, x6, 4 mov x22, x6 @@ -7043,48 +7052,48 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady cmp w27, 7 ldr x6, [x29,104] - bne .L957 + bne .L963 mov x0, 160 madd x6, x6, x0, x20 - add x6, x6, 788 - b .L958 -.L957: + add x6, x6, 1300 + b .L964 +.L963: cmp w27, 8 - beq .L959 + beq .L965 add x6, x20, x6, lsl 6 - add x6, x6, 780 -.L958: + add x6, x6, 1292 +.L964: mov w0, 54 cmp w27, 4 str w0, [x24,2056] - bne .L960 + bne .L966 mov w0, 255 str w0, [x24,2052] mov w0, 64 str w0, [x24,2048] mov w0, 204 - b .L1046 -.L960: + b .L1052 +.L966: ldr w0, [x29,136] cmp w0, 1 - bhi .L962 - ldrb w0, [x20,764] + bhi .L968 + ldrb w0, [x20,1276] str w0, [x24,2052] mov w0, 82 - b .L1047 -.L962: + b .L1053 +.L968: cmp w27, 7 - bne .L961 + bne .L967 mov w0, 174 str w0, [x24,2052] str wzr, [x24,2048] mov w0, 176 -.L1046: +.L1052: str w0, [x24,2052] mov w0, 77 -.L1047: +.L1053: str w0, [x24,2048] -.L961: +.L967: mov w0, 22 str w0, [x24,2056] mov w0, 23 @@ -7097,17 +7106,17 @@ HynixGetReadRetryDefault: cmp w27, 6 str wzr, [x24,2052] str wzr, [x24,2052] - bne .L963 + bne .L969 mov w0, 31 str w0, [x24,2052] - b .L964 -.L963: + b .L970 +.L969: str wzr, [x24,2052] -.L964: +.L970: mov w0, 2 str w0, [x24,2052] str wzr, [x24,2052] -.L1003: +.L1009: mov w0, 48 str w0, [x24,2056] mov w0, w22 @@ -7119,61 +7128,34 @@ HynixGetReadRetryDefault: cset w9, ls cmp w27, 8 cset w8, eq - cbnz w9, .L1006 - cbnz w8, .L1006 + cbnz w9, .L1012 + cbnz w8, .L1012 cmp w27, 7 mov w7, 32 mov w0, 2 csel w7, w0, w7, ne - b .L965 -.L1006: + b .L971 +.L1012: mov w7, 16 -.L965: +.L971: adrp x1, .LANCHOR4 mov x10, 0 add x0, x1, :lo12:.LANCHOR4 - ldr x0, [x0,56] -.L966: + ldr x0, [x0,1592] +.L972: ldr w11, [x24,2048] strb w11, [x0,x10] add x10, x10, 1 cmp w7, w10, uxtb - bhi .L966 - cbz w8, .L967 + bhi .L972 + cbz w8, .L973 mov w7, 0 -.L969: - ldrb w10, [x0] - cmp w10, 50 - beq .L968 - ldrb w10, [x0,1] - cmp w10, 5 - beq .L968 - add w7, w7, 1 - add x0, x0, 4 - uxtb w7, w7 - cmp w7, 8 - bne .L969 - b .L970 -.L968: - cmp w7, 6 - bls .L971 -.L970: - adrp x0, .LC84 - mov w1, 0 - add x0, x0, :lo12:.LC84 - bl printk -.L972: - b .L972 -.L967: - cmp w27, 7 - bne .L973 - mov w7, w8 .L975: ldrb w10, [x0] - cmp w10, 12 + cmp w10, 50 beq .L974 ldrb w10, [x0,1] - cmp w10, 10 + cmp w10, 5 beq .L974 add w7, w7, 1 add x0, x0, 4 @@ -7182,56 +7164,83 @@ HynixGetReadRetryDefault: bne .L975 b .L976 .L974: - cmp w7, 7 - bne .L971 + cmp w7, 6 + bls .L977 .L976: adrp x0, .LC84 mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L977: - b .L977 -.L973: - cmp w27, 6 - bne .L971 - mov x7, 0 .L978: - ldrb w10, [x0,x7] + b .L978 +.L973: + cmp w27, 7 + bne .L979 + mov w7, w8 +.L981: + ldrb w10, [x0] cmp w10, 12 - beq .L971 - add x10, x0, x7 - ldrb w10, [x10,8] - cmp w10, 4 - beq .L971 - add x7, x7, 1 - cmp x7, 8 - bne .L978 + beq .L980 + ldrb w10, [x0,1] + cmp w10, 10 + beq .L980 + add w7, w7, 1 + add x0, x0, 4 + uxtb w7, w7 + cmp w7, 8 + bne .L981 + b .L982 +.L980: + cmp w7, 7 + bne .L977 +.L982: adrp x0, .LC84 mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L980: - b .L980 -.L971: +.L983: + b .L983 +.L979: + cmp w27, 6 + bne .L977 + mov x7, 0 +.L984: + ldrb w10, [x0,x7] + cmp w10, 12 + beq .L977 + add x10, x0, x7 + ldrb w10, [x10,8] + cmp w10, 4 + beq .L977 + add x7, x7, 1 + cmp x7, 8 + bne .L984 + adrp x0, .LC84 + mov w1, 0 + add x0, x0, :lo12:.LC84 + bl printk +.L986: + b .L986 +.L977: add x0, x1, :lo12:.LANCHOR4 - ldr x11, [x0,56] + ldr x11, [x0,1592] mov x0, 0 -.L981: +.L987: ldr w2, [x29,128] cmp w2, w0 - ble .L1049 + ble .L1055 ldr w7, [x24,2048] strb w7, [x11,x0] add x0, x0, 1 - b .L981 -.L1049: + b .L987 +.L1055: add x0, x1, :lo12:.LANCHOR4 mov w12, w23 mov w10, 8 - ldr x13, [x0,56] -.L984: + ldr x13, [x0,1592] +.L990: mov w0, 0 -.L983: +.L989: add w7, w0, w12 add w0, w0, 1 sbfiz x7, x7, 1, 32 @@ -7239,54 +7248,54 @@ HynixGetReadRetryDefault: ldrh w14, [x13,x7] mvn w14, w14 strh w14, [x13,x7] - bne .L983 + bne .L989 ldr w0, [x29,124] subs w10, w10, #1 add w12, w12, w0 - bne .L984 + bne .L990 mov x10, 0 mov w18, 1 -.L985: +.L991: mov w7, 0 mov w12, w7 -.L989: +.L995: lsl w14, w18, w12 mov w16, w10 mov w0, 16 mov w15, 0 -.L987: +.L993: 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 .L987 + bne .L993 cmp w15, 8 - bls .L988 + bls .L994 orr w7, w7, w14 uxth w7, w7 -.L988: +.L994: add w12, w12, 1 cmp w12, 16 - bne .L989 + bne .L995 strh w7, [x13,x10,lsl 1] add x10, x10, 1 cmp w23, w10 - bgt .L985 + bgt .L991 add x1, x1, :lo12:.LANCHOR4 mov x7, 0 mov w10, w7 - ldr x1, [x1,56] -.L992: + ldr x1, [x1,1592] +.L998: ldr w12, [x1,x7] add x7, x7, 4 cmp w12, wzr csinc w10, w10, w10, ne cmp x7, 32 - bne .L992 + bne .L998 cmp w10, 7 - ble .L993 + ble .L999 adrp x0, .LC85 mov w2, 1 add x0, x0, :lo12:.LC85 @@ -7296,36 +7305,36 @@ HynixGetReadRetryDefault: mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L994: - b .L994 -.L993: +.L1000: + b .L1000 +.L999: cmp w27, 6 mov w7, 4 - beq .L995 + beq .L1001 cmp w27, 7 mov w7, 10 - beq .L995 + beq .L1001 cmp w8, wzr mov w7, 5 mov w1, 8 csel w7, w1, w7, eq -.L995: +.L1001: mov w10, 0 -.L996: +.L1002: mov x1, 0 -.L997: +.L1003: add w12, w0, w1 ldrb w13, [x11,x1] add x1, x1, 1 cmp w28, w1, uxtb strb w13, [x6,w12,sxtw] - bhi .L997 + bhi .L1003 add w10, w10, 1 ldr x1, [x29,112] cmp w10, w26 add w0, w0, w7 add x11, x11, x1 - blt .L996 + blt .L1002 mov w0, 255 str w0, [x24,2056] mov w0, w22 @@ -7334,32 +7343,32 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr x9, [x29,104] ldr x8, [x29,96] - cbz w9, .L999 + cbz w9, .L1005 mov w0, 54 str w0, [x24,2056] - adrp x0, .LANCHOR0+764 + adrp x0, .LANCHOR0+1276 mov w1, -1 - ldrb w0, [x0,#:lo12:.LANCHOR0+764] + ldrb w0, [x0,#:lo12:.LANCHOR0+1276] str w0, [x24,2052] mov w0, 22 str wzr, [x24,2048] str w0, [x24,2056] mov w0, w21 bl FlashReadCmd - b .L1000 -.L999: + b .L1006 +.L1005: mov w0, 190 - cbnz w8, .L1048 + cbnz w8, .L1054 mov w0, 56 -.L1048: +.L1054: str w0, [x24,2056] -.L1000: +.L1006: mov w0, w22 add w21, w21, 1 bl NandcWaitFlashReady uxtb w21, w21 - b .L956 -.L959: + b .L962 +.L965: mov w0, 120 str w0, [x24,2056] str wzr, [x24,2052] @@ -7367,7 +7376,7 @@ HynixGetReadRetryDefault: str wzr, [x24,2052] mov w1, 25 str wzr, [x24,2052] - add x6, x20, 788 + add x6, x20, 1300 str w0, [x24,2056] mov w0, 4 str w0, [x24,2056] @@ -7381,7 +7390,7 @@ HynixGetReadRetryDefault: str w1, [x24,2052] str w0, [x24,2052] str wzr, [x24,2052] - b .L1003 + b .L1009 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 .global FlashGetReadRetryDefault @@ -7390,19 +7399,19 @@ FlashGetReadRetryDefault: stp x29, x30, [sp, -16]! mov w1, w0 add x29, sp, 0 - cbz w0, .L1050 + cbz w0, .L1056 sub w2, w0, #1 cmp w2, 7 - bhi .L1052 + bhi .L1058 bl HynixGetReadRetryDefault - b .L1050 -.L1052: + b .L1056 +.L1058: cmp w0, 49 - bne .L1053 + bne .L1059 adrp x0, .LANCHOR0 mov w2, 64 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 764 + add x0, x0, 1276 strb w1, [x0,-4] mov w1, 4 strb w1, [x0,-3] @@ -7411,49 +7420,49 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 408 - b .L1068 -.L1053: + b .L1074 +.L1059: sub w0, w0, #65 cmp w0, 1 - bls .L1059 + bls .L1065 cmp w1, 33 - bne .L1054 -.L1059: + bne .L1060 +.L1065: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,760] + strb w1, [x0,1272] mov w1, 4 - b .L1069 -.L1054: - cmp w1, 67 - beq .L1060 - cmp w1, 34 - bne .L1056 + b .L1075 .L1060: + cmp w1, 67 + beq .L1066 + cmp w1, 34 + bne .L1062 +.L1066: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,760] + strb w1, [x0,1272] mov w1, 5 -.L1069: - strb w1, [x0,761] +.L1075: + strb w1, [x0,1273] mov w1, 7 - strb w1, [x0,762] + strb w1, [x0,1274] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, 764 + add x0, x0, 1276 add x1, x1, 256 mov w2, 45 - b .L1068 -.L1056: + b .L1074 +.L1062: cmp w1, 68 - beq .L1061 + beq .L1067 cmp w1, 35 - bne .L1050 -.L1061: + bne .L1056 +.L1067: adrp x0, .LANCHOR0 mov w2, 95 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 764 + add x0, x0, 1276 strb w1, [x0,-4] mov w1, 5 strb w1, [x0,-3] @@ -7462,9 +7471,9 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 304 -.L1068: +.L1074: bl ftl_memcpy -.L1050: +.L1056: ldp x29, x30, [sp], 16 ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault @@ -7482,38 +7491,36 @@ NandcXferComp: add x2, x1, 8 stp x21, x22, [sp,32] ldr x19, [x2,x0] - ldr w0, [x1,1868] + ldr w0, [x1,2380] cmp w0, 3 - bls .L1101 + bls .L1107 ldr w0, [x19,16] - tbz x0, 2, .L1101 - mov x0, x19 - bl wait_for_nandc_xfer_completed + tbz x0, 2, .L1107 ldr w21, [x19,16] ldr w0, [x19,8] ubfx x21, x21, 1, 1 str w0, [x29,64] - cbz w21, .L1072 + cbz w21, .L1078 adrp x22, .LC86 adrp x23, .LC87 mov w21, 0 add x22, x22, :lo12:.LC86 add x23, x23, :lo12:.LC87 -.L1073: +.L1079: ldr w2, [x19,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1081 + bge .L1087 add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,1868] + ldr w0, [x0,2380] cmp w0, 5 - bhi .L1074 -.L1077: + bhi .L1080 +.L1083: add w21, w21, 1 and w0, w21, 16777215 - cbnz w0, .L1073 + cbnz w0, .L1082 ldr w2, [x19,28] mov w1, w21 ldr w3, [x29,64] @@ -7526,19 +7533,19 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L1073 -.L1074: + b .L1082 +.L1080: ldr w0, [x19] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1077 + tbz x0, 13, .L1083 ldr w0, [x29,72] - tbz x0, 17, .L1077 -.L1081: + tbz x0, 17, .L1083 +.L1087: add x19, x20, :lo12:.LANCHOR0 - add x19, x19, 1888 + add x19, x19, 2400 ldr w0, [x19,40] - cbz w0, .L1082 + cbz w0, .L1088 ldr w1, [x29,64] mov w2, 0 ldr w0, [x19,32] @@ -7551,20 +7558,25 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L1082 -.L1072: + b .L1088 +.L1082: + mov x0, 5 + mov x1, 10 + bl usleep_range + b .L1079 +.L1078: adrp x22, .LC88 adrp x23, .LC87 add x22, x22, :lo12:.LC88 add x23, x23, :lo12:.LC87 -.L1083: +.L1089: ldr w0, [x29,64] - tbnz x0, 20, .L1109 + tbnz x0, 20, .L1115 ldr w0, [x19,8] add w21, w21, 1 str w0, [x29,64] and w0, w21, 16777215 - cbnz w0, .L1083 + cbnz w0, .L1090 ldr w2, [x29,64] mov w1, w21 ldr w3, [x19,28] @@ -7576,18 +7588,22 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L1083 -.L1109: +.L1090: + mov x0, 5 + mov x1, 10 + bl usleep_range + b .L1089 +.L1115: add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,1936] - cbz w0, .L1086 + ldr w0, [x0,2448] + cbz w0, .L1092 mov x0, x19 bl NandcSendDumpDataStart -.L1086: +.L1092: add x21, x20, :lo12:.LANCHOR0 - add x21, x21, 1888 + add x21, x21, 2400 ldr w0, [x21,40] - cbz w0, .L1087 + cbz w0, .L1093 ldr w1, [x29,64] mov w2, 1 ldr w0, [x21,32] @@ -7600,22 +7616,22 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single -.L1087: +.L1093: add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,1936] - cbz w0, .L1082 + ldr w0, [x0,2448] + cbz w0, .L1088 mov x0, x19 bl NandcSendDumpDataDone -.L1082: +.L1088: add x20, x20, :lo12:.LANCHOR0 - str wzr, [x20,1928] - b .L1070 -.L1101: + str wzr, [x20,2440] + b .L1076 +.L1107: ldr w0, [x19,8] str w0, [x29,64] ldr w0, [x29,64] - tbz x0, 20, .L1101 -.L1070: + tbz x0, 20, .L1107 +.L1076: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -7643,14 +7659,14 @@ NandcXferData: uxtb w24, w2 mov x26, x3 mov x22, x4 - cbnz x0, .L1111 - cbnz x4, .L1112 + cbnz x0, .L1117 + cbnz x4, .L1118 add x0, x29, 112 mov w1, 255 mov w2, 64 add x22, x29, 112 bl ftl_memset -.L1112: +.L1118: mov w0, w25 mov w1, w21 mov w2, w24 @@ -7660,22 +7676,23 @@ NandcXferData: mov w23, 0 bl NandcXferStart mov w0, w25 + mov w1, w21 bl NandcXferComp - cbnz w21, .L1113 + cbnz w21, .L1119 add x1, x19, :lo12:.LANCHOR0 ubfx x2, x24, 1, 7 mov w3, 128 add x2, x22, x2, lsl 2 - ldr w0, [x1,1940] + ldr w0, [x1,2452] cmp w0, 25 mov w0, 64 csel w3, w0, w3, cc mov w0, w21 -.L1115: +.L1121: cmp x22, x2 add w4, w0, w3 - beq .L1157 - ldr x5, [x1,1896] + beq .L1163 + ldr x5, [x1,2408] and x0, x0, 4294967292 add x22, x22, 4 ldr w0, [x5,x0] @@ -7687,29 +7704,29 @@ NandcXferData: lsr w0, w0, 24 strb w0, [x22,-1] mov w0, w4 - b .L1115 -.L1157: + b .L1121 +.L1163: add x0, x19, :lo12:.LANCHOR0 lsr w24, w24, 2 - ldr w5, [x0,1940] - ldr w4, [x0,1868] + ldr w5, [x0,2452] + ldr w4, [x0,2380] mov w0, 0 mov w23, w0 -.L1117: +.L1123: cmp w0, w24 - bcs .L1113 - cbz w5, .L1113 + bcs .L1119 + cbz w5, .L1119 uxtw x1, w0 add x1, x1, 8 ldr w1, [x20,x1,lsl 2] str w1, [x29,104] ldr w1, [x29,104] - tbnz x1, 2, .L1141 + tbnz x1, 2, .L1147 ldr w3, [x29,104] ubfx x3, x3, 15, 1 - cbnz w3, .L1141 + cbnz w3, .L1147 cmp w4, 5 - bls .L1119 + bls .L1125 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -7722,20 +7739,20 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L1120 + bls .L1126 ldr w1, [x29,104] ubfx x3, x3, 3, 5 ubfx x1, x1, 27, 1 orr w3, w3, w1, lsl 5 - b .L1121 -.L1120: + b .L1127 +.L1126: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 29, 1 - b .L1156 -.L1119: + b .L1162 +.L1125: cmp w4, 3 - bls .L1121 + bls .L1127 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -7748,43 +7765,43 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L1122 + bls .L1128 ubfx x1, x3, 3, 5 ldr w3, [x29,104] ubfx x3, x3, 28, 1 - b .L1156 -.L1122: + b .L1162 +.L1128: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 30, 1 -.L1156: +.L1162: orr w3, w1, w3, lsl 5 -.L1121: +.L1127: cmp w23, w3 csel w23, w23, w3, cs - b .L1118 -.L1141: - mov w23, -1 -.L1118: - add w0, w0, 1 - b .L1117 -.L1113: - str wzr, [x20,16] b .L1124 -.L1111: +.L1147: + mov w23, -1 +.L1124: + add w0, w0, 1 + b .L1123 +.L1119: + str wzr, [x20,16] + b .L1130 +.L1117: cmp w21, 1 - bne .L1155 + bne .L1161 mov w23, 0 mov w28, 2 -.L1125: +.L1131: cmp w23, w24 - bcs .L1158 + bcs .L1164 and w27, w23, 3 mov x3, x26 - cbz x26, .L1127 + cbz x26, .L1133 ubfiz x0, x23, 9, 23 add x3, x26, x0 -.L1127: +.L1133: cmp x22, xzr mov x0, x20 csel w4, w28, wzr, ne @@ -7802,12 +7819,13 @@ NandcXferData: mov x5, x4 bl NandcXferStart mov w0, w25 + mov w1, 1 bl NandcXferComp - b .L1125 -.L1158: + b .L1131 +.L1164: mov w23, 0 - b .L1124 -.L1155: + b .L1130 +.L1161: mov w1, 0 mov x4, 0 mov w27, 0 @@ -7817,16 +7835,17 @@ NandcXferData: mov x5, x4 mov w23, w27 bl NandcXferStart -.L1130: +.L1136: cmp w27, w24 - bcs .L1124 + bcs .L1130 mov w0, w25 + mov w1, w21 add w28, w27, 2 bl NandcXferComp ldr w0, [x20,32] cmp w28, w24 str w0, [x29,104] - bcs .L1131 + bcs .L1137 mov x4, 0 mov w0, w25 mov w1, 0 @@ -7834,9 +7853,9 @@ NandcXferData: and w3, w28, 3 mov x5, x4 bl NandcXferStart -.L1131: +.L1137: ldr w0, [x29,104] - tbnz x0, 2, .L1146 + tbnz x0, 2, .L1152 ldr w0, [x29,104] ubfx x1, x0, 3, 5 ldr w0, [x29,104] @@ -7844,16 +7863,16 @@ NandcXferData: orr w0, w1, w0, lsl 5 cmp w23, w0 csel w23, w23, w0, cs - b .L1132 -.L1146: + b .L1138 +.L1152: mov w23, -1 -.L1132: +.L1138: and w2, w27, 3 mov x3, x26 - cbz x26, .L1133 + cbz x26, .L1139 ubfiz x3, x27, 9, 23 add x3, x26, x3 -.L1133: +.L1139: cmp x22, xzr mov w0, 2 csel w4, w0, wzr, ne @@ -7863,23 +7882,23 @@ NandcXferData: mov w27, w28 add x4, x22, x4 bl NandcCopy1KB - b .L1130 -.L1124: - cbnz w21, .L1136 + b .L1136 +.L1130: + cbnz w21, .L1142 add x19, x19, :lo12:.LANCHOR0 - ldr w0, [x19,1868] + ldr w0, [x19,2380] cmp w0, 5 - bls .L1136 + bls .L1142 ldr w0, [x20] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L1136 + bne .L1142 orr w0, w0, 131072 mov w23, -1 str w0, [x20] -.L1136: +.L1142: mov w0, w23 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7902,7 +7921,7 @@ FlashReadRawPage: str x21, [sp,32] mov x21, x2 ldrb w20, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1160 + cbnz w19, .L1166 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w5, [x0,73] @@ -7911,7 +7930,7 @@ FlashReadRawPage: cmp w1, w0 mov w0, 4 csel w20, w20, w0, cs -.L1160: +.L1166: mov w0, w19 str x4, [x29,48] str x1, [x29,56] @@ -7961,11 +7980,11 @@ FlashDdrTunningRead: mov w21, 1024 ldr w0, [x0,304] str w0, [x29,124] - ldr w0, [x19,1868] + ldr w0, [x19,2380] cmp w0, 8 mov w0, 12 csel w22, w22, w0, cc - cbz w4, .L1163 + cbz w4, .L1169 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 @@ -7978,47 +7997,47 @@ FlashDdrTunningRead: mov w0, w23 bl FlashReadRawPage mov w21, w0 - ldrb w0, [x19,1844] + ldrb w0, [x19,2356] bl FlashSetInterfaceMode - ldrb w0, [x19,1844] + ldrb w0, [x19,2356] bl NandcSetMode cmn w21, #1 - bne .L1164 -.L1173: + bne .L1170 +.L1179: mov w21, -1 - b .L1165 -.L1164: + b .L1171 +.L1170: adrp x0, .LC89 mov w1, w24 add x0, x0, :lo12:.LC89 mov w2, w21 bl printk cmp w21, 9 - bhi .L1166 + bhi .L1172 add x19, x19, x23, sxtw 4 ldr x0, [x19,8] ldr w1, [x0,3840] ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L1166: +.L1172: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr w1, [x0,64] + ldr w1, [x0,1600] add w1, w1, 1 - str w1, [x0,64] + str w1, [x0,1600] cmp w1, 2047 - bls .L1165 + bls .L1171 mov x27, 0 - str wzr, [x0,64] + str wzr, [x0,1600] mov x28, x27 -.L1163: +.L1169: mov w19, 0 mov w26, -1 mov w5, w19 mov w6, w19 mov w20, w19 -.L1171: +.L1177: mov w0, w22 str x5, [x29,104] str x6, [x29,112] @@ -8032,63 +8051,63 @@ FlashDdrTunningRead: ldr x6, [x29,112] cmp w0, w1 ldr x5, [x29,104] - bhi .L1167 + bhi .L1173 cmp w0, 2 - bhi .L1177 + bhi .L1183 add w20, w20, 1 cmp w20, 9 - bls .L1177 + bls .L1183 sub w19, w22, w20 mov w21, w0 mov w26, 0 - b .L1169 -.L1167: + b .L1175 +.L1173: cmp w6, w20 - bcs .L1178 + bcs .L1184 cmp w20, 7 sub w5, w19, w20 - bhi .L1179 + bhi .L1185 mov w6, w20 - b .L1178 -.L1177: + b .L1184 +.L1183: mov x27, 0 mov w19, w22 mov w21, w0 mov w26, 0 mov x28, x27 - b .L1168 -.L1178: + b .L1174 +.L1184: mov w20, 0 -.L1168: +.L1174: add w22, w22, 2 cmp w22, 69 - bls .L1171 -.L1169: + bls .L1177 +.L1175: cmp w6, w20 csel w19, w19, w5, cc - b .L1170 -.L1179: + b .L1176 +.L1185: mov w19, w5 -.L1170: - cbz w19, .L1172 +.L1176: + cbz w19, .L1178 adrp x0, .LC90 mov w1, w19 add x0, x0, :lo12:.LC90 bl printk mov w0, w19 bl NandcSetDdrPara -.L1172: - cbz w26, .L1165 +.L1178: + cbz w26, .L1171 adrp x0, .LC91 mov w1, w23 add x0, x0, :lo12:.LC91 mov w2, w24 bl printk - cbz w25, .L1173 + cbz w25, .L1179 ldr w0, [x29,124] lsr w0, w0, 8 bl NandcSetDdrPara -.L1165: +.L1171: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8116,17 +8135,17 @@ FlashReadPage: bl FlashReadRawPage cmn w0, #1 mov w19, w0 - bne .L1189 + bne .L1195 adrp x21, .LANCHOR0 add x25, x21, :lo12:.LANCHOR0 ldrb w26, [x25,80] - cbnz w26, .L1190 -.L1192: + cbnz w26, .L1196 +.L1198: add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,1860] - cbz w0, .L1189 - b .L1210 -.L1190: + ldrb w0, [x21,2372] + cbz w0, .L1195 + b .L1216 +.L1196: mov w0, w20 mov w1, w22 mov x2, x24 @@ -8135,10 +8154,10 @@ FlashReadPage: bl FlashReadRawPage strb w26, [x25,80] cmn w0, #1 - beq .L1192 + beq .L1198 mov w19, w0 - b .L1189 -.L1210: + b .L1195 +.L1216: ldr x0, [x21,128] mov w1, w22 mov x2, x24 @@ -8149,20 +8168,20 @@ FlashReadPage: bl FlashDdrTunningRead cmn w0, #1 mov w19, w0 - beq .L1193 - ldrb w0, [x21,1944] + beq .L1199 + ldrb w0, [x21,2456] cmp w19, w0, lsr 1 - bls .L1189 -.L1193: + bls .L1195 +.L1199: lsr w0, w25, 8 bl NandcSetDdrPara -.L1189: +.L1195: adrp x21, .LANCHOR4 cmn w19, #1 add x21, x21, :lo12:.LANCHOR4 - ldr x4, [x21,72] - bne .L1194 - cbz x4, .L1194 + ldr x4, [x21,1608] + bne .L1200 + cbz x4, .L1200 mov w1, w22 mov x2, x24 mov x3, x23 @@ -8176,13 +8195,13 @@ FlashReadPage: mov w3, w22 bl printk cmn w19, #1 - bne .L1194 + bne .L1200 adrp x0, .LANCHOR0+196 ldrb w0, [x0,#:lo12:.LANCHOR0+196] - cbz w0, .L1194 + cbz w0, .L1200 mov w0, w20 bl flash_enter_slc_mode - ldr x4, [x21,72] + ldr x4, [x21,1608] mov w0, w20 mov w1, w22 mov x2, x24 @@ -8191,7 +8210,7 @@ FlashReadPage: mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L1194: +.L1200: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8212,9 +8231,9 @@ FlashDdrParaScan: stp x21, x22, [sp,32] add x22, x19, :lo12:.LANCHOR0 uxtb w21, w0 - ldrb w0, [x22,1844] + ldrb w0, [x22,2356] bl FlashSetInterfaceMode - ldrb w0, [x22,1844] + ldrb w0, [x22,2356] bl NandcSetMode mov x2, 0 mov w1, w20 @@ -8229,24 +8248,24 @@ FlashDdrParaScan: mov x3, x2 bl FlashReadRawPage cmn w0, #1 - beq .L1215 + beq .L1221 cmn w22, #1 - bne .L1212 -.L1215: + bne .L1218 +.L1221: add x20, x19, :lo12:.LANCHOR0 - ldrb w0, [x20,1844] - tbz x0, 0, .L1212 + ldrb w0, [x20,2356] + tbz x0, 0, .L1218 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,1860] - b .L1214 -.L1212: + strb wzr, [x20,2372] + b .L1220 +.L1218: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - strb w0, [x19,1860] -.L1214: + strb w0, [x19,2372] +.L1220: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8277,11 +8296,11 @@ FlashLoadPhyInfo: stp x19, x20, [sp,16] adrp x22, .LANCHOR0 add x24, x24, :lo12:.LANCHOR1 - ldr x1, [x0,56] + ldr x1, [x0,1592] add x21, x22, :lo12:.LANCHOR0 - str x1, [x0,80] + str x1, [x0,1616] mov w20, 0 - str wzr, [x0,88] + str wzr, [x0,1624] mov w25, 4 mov w0, 0 mov w28, -1 @@ -8289,11 +8308,11 @@ FlashLoadPhyInfo: add x27, x21, 88 ldr w26, [x21,76] bl flash_enter_slc_mode -.L1223: +.L1229: add w0, w20, 1 mov x19, 0 str w0, [x29,104] -.L1225: +.L1231: add x0, x29, 120 ldrb w0, [x19,x0] bl FlashBchSel @@ -8302,23 +8321,23 @@ FlashLoadPhyInfo: mov w1, w20 mov x3, 0 str x5, [x29,96] - ldr x2, [x5,56] + ldr x2, [x5,1592] bl FlashReadRawPage cmn w0, #1 - bne .L1224 + bne .L1230 ldr x5, [x29,96] mov w0, 0 ldr w1, [x29,104] mov x3, 0 - ldr x2, [x5,56] + ldr x2, [x5,1592] bl FlashReadRawPage cmn w0, #1 - bne .L1224 + bne .L1230 add x19, x19, 1 cmp x19, 4 - beq .L1226 - b .L1225 -.L1227: + beq .L1232 + b .L1231 +.L1233: add x0, x2, 12 mov w1, 2036 str x2, [x29,104] @@ -8327,13 +8346,13 @@ FlashLoadPhyInfo: ldr x2, [x29,104] ldr w1, [x2,8] cmp w1, w0 - beq .L1237 -.L1226: + beq .L1243 +.L1232: subs w25, w25, #1 add w20, w20, w26 - bne .L1223 + bne .L1229 mov w0, w25 -.L1236: +.L1242: bl flash_exit_slc_mode mov w0, w28 ldp x19, x20, [sp,16] @@ -8343,59 +8362,59 @@ FlashLoadPhyInfo: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 128 ret -.L1224: +.L1230: add x19, x23, :lo12:.LANCHOR4 mov w0, 20036 movk w0, 0x4e41, lsl 16 - ldr x2, [x19,80] + ldr x2, [x19,1616] ldr w1, [x2] cmp w1, w0 - bne .L1226 - cbnz w28, .L1227 + bne .L1232 + cbnz w28, .L1233 add x22, x22, :lo12:.LANCHOR0 ldr w0, [x22,76] udiv w20, w20, w0 mov w0, w28 add w20, w20, 1 - str w20, [x19,92] - b .L1236 -.L1237: + str w20, [x19,1628] + b .L1242 +.L1243: add x1, x2, 160 mov x0, x24 mov w2, 32 bl ftl_memcpy - ldr x1, [x19,80] + ldr x1, [x19,1616] mov w2, 32 mov x0, x27 add x1, x1, 192 bl ftl_memcpy - ldr x1, [x19,80] + ldr x1, [x19,1616] mov w2, 852 - add x0, x21, 760 + add x0, x21, 1272 add x1, x1, 224 bl ftl_memcpy ldrh w0, [x24,10] bl FlashBlockAlignInit - str w20, [x19,88] + str w20, [x19,1624] ldr w1, [x21,76] - ldr x2, [x19,80] + ldr x2, [x19,1616] udiv w1, w20, w1 ldr w0, [x2,1076] add w1, w1, 1 - strb w0, [x21,1860] + strb w0, [x21,2372] cmp w1, 1 - bls .L1229 - str w1, [x19,92] - b .L1230 -.L1229: + bls .L1235 + str w1, [x19,1628] + b .L1236 +.L1235: mov w0, 2 - str w0, [x19,92] -.L1230: + str w0, [x19,1628] +.L1236: add x0, x23, :lo12:.LANCHOR4 ldrh w1, [x2,14] mov w28, 0 - strb w1, [x0,96] - b .L1226 + strb w1, [x0,1632] + b .L1232 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial @@ -8430,20 +8449,20 @@ ToshibaReadRetrial: sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - bls .L1239 - ldrb w0, [x2,1860] - cbz w0, .L1240 + bls .L1245 + ldrb w0, [x2,2372] + cbz w0, .L1246 mov w0, w22 mov w22, 1 bl NandcSetDdrMode -.L1240: +.L1246: ubfiz x0, x28, 8, 8 mov w2, 92 add x0, x24, x0 str w2, [x0,2056] mov w2, 197 str w2, [x0,2056] -.L1239: +.L1245: ldr x0, [x29,120] mov w21, 1 mov w25, -1 @@ -8452,13 +8471,13 @@ ToshibaReadRetrial: str x0, [x29,104] ubfiz x0, x28, 8, 8 str x0, [x29,96] -.L1241: +.L1247: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,97] + ldrb w0, [x0,1633] add w0, w0, 1 cmp w21, w0 - bcs .L1266 + bcs .L1272 add x0, x19, :lo12:.LANCHOR0 mov w1, w21 ldrb w0, [x0,120] @@ -8466,34 +8485,34 @@ ToshibaReadRetrial: uxtb w0, w0 cmp w0, 1 mov x0, x20 - bhi .L1242 + bhi .L1248 bl SandiskSetRRPara - b .L1243 -.L1242: + b .L1249 +.L1248: bl ToshibaSetRRPara -.L1243: +.L1249: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,120] cmp w0, 34 - bne .L1244 + bne .L1250 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,97] + ldrb w0, [x0,1633] sub w0, w0, #3 cmp w21, w0 - bne .L1244 + bne .L1250 ldr x0, [x29,104] mov w1, 179 add x0, x24, x0 str w1, [x0,8] -.L1244: +.L1250: ldr x0, [x29,96] mov w1, 38 add x0, x24, x0 str w1, [x0,2056] mov w1, 93 str w1, [x0,2056] - cbz w22, .L1245 + cbz w22, .L1251 mov w0, 4 bl NandcSetDdrMode ldr w1, [x29,116] @@ -8504,32 +8523,32 @@ ToshibaReadRetrial: mov w28, w0 mov w0, 0 bl NandcSetDdrMode - b .L1246 -.L1245: + b .L1252 +.L1251: ldr w1, [x29,116] mov w0, w23 mov x2, x27 mov x3, x26 bl FlashReadRawPage mov w28, w0 -.L1246: +.L1252: cmn w28, #1 - beq .L1247 + beq .L1253 add x0, x19, :lo12:.LANCHOR0 cmn w25, #1 csel w25, w25, w28, ne - ldrb w0, [x0,1944] + ldrb w0, [x0,2456] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1249 + bcc .L1255 mov x26, 0 mov x27, x26 -.L1247: +.L1253: add w21, w21, 1 - b .L1241 -.L1266: + b .L1247 +.L1272: mov w28, w25 -.L1249: +.L1255: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w0, [x0,120] @@ -8537,32 +8556,32 @@ ToshibaReadRetrial: uxtb w0, w0 cmp w0, 1 mov x0, x20 - bhi .L1251 + bhi .L1257 bl SandiskSetRRPara - b .L1252 -.L1251: + b .L1258 +.L1257: bl ToshibaSetRRPara -.L1252: +.L1258: 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,1944] + ldrb w0, [x19,2456] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1253 + bcc .L1259 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1253: +.L1259: mov w0, w23 bl NandcWaitFlashReady - cbz w22, .L1254 + cbz w22, .L1260 mov w0, 4 bl NandcSetDdrMode -.L1254: +.L1260: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8601,12 +8620,12 @@ SamsungReadRetrial: ldrb w21, [x2,8] add x21, x21, 8 add x21, x0, x21, lsl 8 -.L1268: +.L1274: add x0, x27, :lo12:.LANCHOR4 - ldrb w0, [x0,97] + ldrb w0, [x0,1633] add w0, w0, 1 cmp w26, w0 - bcs .L1271 + bcs .L1277 mov x0, x21 mov w1, w26 bl SamsungSetRRPara @@ -8616,34 +8635,34 @@ SamsungReadRetrial: mov x3, x23 bl FlashReadRawPage cmn w0, #1 - beq .L1269 + beq .L1275 add x1, x20, :lo12:.LANCHOR0 cmn w19, #1 csel w19, w19, w0, ne - ldrb w1, [x1,1944] + ldrb w1, [x1,2456] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1274 + bcc .L1280 mov x23, 0 mov x24, x23 -.L1269: +.L1275: add w26, w26, 1 - b .L1268 -.L1274: + b .L1274 +.L1280: mov w19, w0 -.L1271: +.L1277: mov x0, x21 mov w1, 0 add x20, x20, :lo12:.LANCHOR0 bl SamsungSetRRPara - ldrb w0, [x20,1944] + ldrb w0, [x20,2456] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1273 + bcc .L1279 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1273: +.L1279: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -8669,17 +8688,17 @@ MicronReadRetrial: stp x23, x24, [sp,48] mov w28, w1 mov x26, x2 - ldrb w19, [x0,1944] + ldrb w19, [x0,2456] mov x22, x3 ldrb w0, [x0,196] - cbnz w0, .L1281 + cbnz w0, .L1287 add w19, w19, w19, lsl 1 ubfx x19, x19, 2, 8 - b .L1282 -.L1281: + b .L1288 +.L1287: mov w0, 3 sdiv w19, w19, w0 -.L1282: +.L1288: adrp x27, .LC93 mov w25, 0 add x0, x27, :lo12:.LC93 @@ -8687,7 +8706,7 @@ MicronReadRetrial: add x20, x20, :lo12:.LANCHOR0 add x23, x20, 8 add x23, x23, x21, sxtw 4 -.L1293: +.L1299: mov w0, w21 mov w24, 0 mov w27, -1 @@ -8697,12 +8716,12 @@ MicronReadRetrial: ldr x6, [x23] mov w10, 137 lsl x8, x4, 8 -.L1283: +.L1289: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,97] + ldrb w0, [x0,1633] cmp w24, w0 - bcs .L1286 + bcs .L1292 add x2, x6, x8 mov x0, 1000 str x4, [x29,104] @@ -8733,21 +8752,21 @@ MicronReadRetrial: ldr x6, [x29,120] ldr x8, [x29,112] ldr x4, [x29,104] - beq .L1284 + beq .L1290 cmn w27, #1 csel w27, w27, w0, ne cmp w0, w19 - bcc .L1295 + bcc .L1301 mov x22, 0 mov x26, x22 -.L1284: +.L1290: mov w24, w7 - b .L1283 -.L1295: + b .L1289 +.L1301: mov x22, 0 mov w27, w0 mov x26, x22 -.L1286: +.L1292: add x1, x6, x4, lsl 8 mov w0, 239 str x1, [x29,144] @@ -8762,18 +8781,18 @@ MicronReadRetrial: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] - bcc .L1288 + bcc .L1294 cmn w27, #1 mov w0, 256 csel w27, w27, w0, eq -.L1288: +.L1294: cmn w27, #1 cset w6, eq - cbnz w6, .L1297 + cbnz w6, .L1303 cmp w27, 256 cset w1, eq - cbz w1, .L1289 -.L1297: + cbz w1, .L1295 +.L1303: ldr x0, [x29,152] mov w1, w24 mov w2, w28 @@ -8781,30 +8800,30 @@ MicronReadRetrial: mov w4, w27 str x6, [x29,144] bl printk - cbnz w25, .L1291 + cbnz w25, .L1297 ldr x6, [x29,144] - cbz w6, .L1302 + cbz w6, .L1308 ldrb w0, [x20,196] - cbz w0, .L1302 + cbz w0, .L1308 mov w0, w21 mov w1, 3 mov w25, 1 bl micron_auto_read_calibration_config - b .L1293 -.L1291: + b .L1299 +.L1297: mov w0, w21 mov w1, 0 bl micron_auto_read_calibration_config cmn w27, #1 mov w0, 256 csel w27, w27, w0, eq - b .L1302 -.L1289: - cbz w25, .L1302 + b .L1308 +.L1295: + cbz w25, .L1308 mov w0, w21 mov w27, 256 bl micron_auto_read_calibration_config -.L1302: +.L1308: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8829,10 +8848,10 @@ HynixReadRetrial: stp x27, x28, [sp,80] stp x19, x20, [sp,16] mov x26, x2 - add x2, x0, 760 - ldrb w25, [x0,762] + add x2, x0, 1272 + ldrb w25, [x0,1274] mov w27, w1 - ldr x0, [x0,744] + ldr x0, [x0,1256] add x1, x2, x22 mov x23, x22 mov x24, x3 @@ -8841,20 +8860,20 @@ HynixReadRetrial: sub w0, w0, #7 uxtb w0, w0 cmp w0, 1 - bhi .L1311 + bhi .L1317 ldrb w19, [x1,20] -.L1311: +.L1317: mov w0, w23 mov w28, 0 mov w20, -1 bl NandcWaitFlashReady add x4, x21, :lo12:.LANCHOR0 - add x5, x4, 764 -.L1312: + add x5, x4, 1276 +.L1318: cmp w28, w25 - bcs .L1316 + bcs .L1322 add w19, w19, 1 - ldrb w1, [x4,761] + ldrb w1, [x4,1273] mov x2, x5 mov w0, w23 uxtb w19, w19 @@ -8872,44 +8891,44 @@ HynixReadRetrial: cmn w0, #1 ldr x5, [x29,104] ldr x4, [x29,96] - beq .L1314 - ldrb w1, [x4,1944] + beq .L1320 + ldrb w1, [x4,2456] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1321 + bcc .L1327 mov x24, 0 mov x26, x24 -.L1314: +.L1320: add w28, w28, 1 - b .L1312 -.L1321: + b .L1318 +.L1327: mov w20, w0 -.L1316: +.L1322: add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 760 + 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 .L1318 + bhi .L1324 strb w19, [x0,20] - b .L1319 -.L1318: + b .L1325 +.L1324: strb w19, [x0,12] -.L1319: +.L1325: add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,1944] + ldrb w0, [x21,2456] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L1320 + bcc .L1326 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L1320: +.L1326: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8933,21 +8952,19 @@ FlashProgPage: mov w20, w1 mov x22, x2 ldrb w21, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1328 + cbnz w19, .L1334 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,73] ldr w2, [x0,76] mul w1, w1, w2 cmp w20, w1 - bcs .L1328 + bcs .L1334 ldrb w0, [x0,72] - cbnz w0, .L1329 - sub w21, w21, #2 - b .L1328 -.L1329: - mov w21, 4 -.L1328: + cmp w0, wzr + mov w0, 4 + csel w21, w21, w0, eq +.L1334: mov w0, w19 str x4, [x29,56] bl NandcWaitFlashReady @@ -8994,69 +9011,69 @@ FlashSavePhyInfo: stp x21, x22, [sp,32] stp x25, x26, [sp,64] mov w21, 0 - ldr x0, [x19,56] - str x0, [x19,80] - ldrb w0, [x19,98] + ldr x0, [x19,1592] + str x0, [x19,1616] + ldrb w0, [x19,1634] bl FlashBchSel - ldr x0, [x19,56] + ldr x0, [x19,1592] mov w1, 0 mov w2, 2048 bl ftl_memset - ldr x1, [x19,80] + ldr x1, [x19,1616] mov w0, 20036 movk w0, 0x4e41, lsl 16 mov w2, 32 str w0, [x1] - ldr x0, [x19,80] - ldrb w1, [x20,1845] + ldr x0, [x19,1616] + ldrb w1, [x20,2357] add x0, x0, 16 strh w1, [x0,-4] ldrb w1, [x20,73] strh w1, [x0,-2] - ldrb w1, [x20,1860] + ldrb w1, [x20,2372] str w1, [x0,1060] - add x1, x20, 1620 + add x1, x20, 2132 bl ftl_memcpy - ldr x0, [x19,80] - add x1, x20, 1848 + ldr x0, [x19,1616] + add x1, x20, 2360 mov w2, 8 add x0, x0, 80 bl ftl_memcpy - ldr x0, [x19,80] - add x1, x20, 712 + ldr x0, [x19,1616] + add x1, x20, 1224 mov w2, 32 add x0, x0, 96 bl ftl_memcpy - ldr x0, [x19,80] + ldr x0, [x19,1616] 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,80] + ldr x0, [x19,1616] add x1, x20, 88 mov w2, 32 add x0, x0, 192 bl ftl_memcpy - ldr x0, [x19,80] - add x1, x20, 760 + ldr x0, [x19,1616] + add x1, x20, 1272 mov w2, 852 add x0, x0, 224 bl ftl_memcpy - ldr x20, [x19,80] + ldr x20, [x19,1616] mov w1, 2036 add x0, x20, 12 bl js_hash str w0, [x20,8] mov w0, 1592 str w0, [x20,4] - ldr x0, [x19,104] - str x0, [x19,80] + ldr x0, [x19,1640] + str x0, [x19,1616] mov w0, 0 mov w19, w21 bl flash_enter_slc_mode -.L1333: +.L1339: add x22, x24, :lo12:.LANCHOR0 mov w2, 0 mov w0, 0 @@ -9067,52 +9084,52 @@ FlashSavePhyInfo: bl FlashEraseBlock ldr w1, [x22,76] mov x3, 0 - ldr x2, [x20,56] + ldr x2, [x20,1592] mov w0, 0 mul w1, w19, w1 bl FlashProgPage ldr w1, [x22,76] mov x3, 0 - ldr x2, [x20,56] + ldr x2, [x20,1592] mov w0, 0 mul w1, w19, w1 add w1, w1, 1 bl FlashProgPage ldr w1, [x22,76] mov w0, 0 - ldr x2, [x20,104] + ldr x2, [x20,1640] mov x3, 0 mul w1, w19, w1 bl FlashReadRawPage cmn w0, #1 - beq .L1331 - ldr x25, [x20,80] + beq .L1337 + ldr x25, [x20,1616] mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr w1, [x25] cmp w1, w0 - bne .L1331 + bne .L1337 mov w1, 2036 add x0, x25, 12 bl js_hash ldr w1, [x25,8] cmp w1, w0 - bne .L1331 + bne .L1337 ldr w0, [x22,76] cmp w21, 1 - str w26, [x20,92] + str w26, [x20,1628] mul w19, w19, w0 - str w19, [x20,88] - beq .L1334 + str w19, [x20,1624] + beq .L1340 mov w21, 1 -.L1331: +.L1337: cmp w26, 4 mov w19, w26 - bne .L1333 - b .L1332 -.L1334: + bne .L1339 + b .L1338 +.L1340: mov w21, 2 -.L1332: +.L1338: mov w0, 0 bl flash_exit_slc_mode cmp w21, wzr @@ -9146,12 +9163,12 @@ FlashReadIdbDataRaw: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - ldrb w27, [x0,1944] - ldr w0, [x0,1856] - cbz w0, .L1340 + ldrb w27, [x0,2456] + ldr w0, [x0,2368] + cbz w0, .L1346 mov w0, 0 bl flash_enter_slc_mode -.L1340: +.L1346: mov x0, x26 mov w1, 0 mov w2, 2048 @@ -9162,13 +9179,13 @@ FlashReadIdbDataRaw: adrp x28, .LANCHOR4 add x0, x24, :lo12:.LC94 str x0, [x29,104] -.L1341: +.L1347: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,73] cmp w20, w0 - bcs .L1345 + bcs .L1351 mov x22, 0 -.L1343: +.L1349: add x0, x29, 120 add x24, x19, :lo12:.LANCHOR0 add x21, x28, :lo12:.LANCHOR4 @@ -9177,53 +9194,53 @@ FlashReadIdbDataRaw: bl FlashBchSel ldr w1, [x24,76] mov w0, 0 - ldr x2, [x21,56] + ldr x2, [x21,1592] mov x3, 0 mul w1, w20, w1 bl FlashReadRawPage cmn w0, #1 - bne .L1342 + bne .L1348 add x22, x22, 1 cmp x22, 4 - bne .L1343 - b .L1344 -.L1342: - ldr x0, [x21,56] + bne .L1349 + b .L1350 +.L1348: + ldr x0, [x21,1592] ldr w1, [x0] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L1344 + bne .L1350 ldr x0, [x29,104] mov w1, w25 bl printk - ldr x1, [x21,56] + ldr x1, [x21,1592] mov x0, x26 mov w2, 2048 bl ftl_memcpy - ldr x0, [x21,56] + ldr x0, [x21,1592] ldr w0, [x0,512] strb w0, [x24,73] - ldr w0, [x21,92] + ldr w0, [x21,1628] cmp w0, w20 - bls .L1348 + bls .L1354 mov w23, 0 - str w20, [x21,92] + str w20, [x21,1628] bl FlashSavePhyInfo -.L1344: +.L1350: add w20, w20, 1 - b .L1341 -.L1348: + b .L1347 +.L1354: mov w23, 0 -.L1345: +.L1351: mov w0, w27 add x19, x19, :lo12:.LANCHOR0 bl FlashBchSel - ldr w0, [x19,1856] - cbz w0, .L1352 + ldr w0, [x19,2368] + cbz w0, .L1358 mov w0, 0 bl flash_exit_slc_mode -.L1352: +.L1358: mov w0, w23 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9249,45 +9266,45 @@ FlashInit: stp x27, x28, [sp,80] stp x25, x26, [sp,64] bl ftl_malloc - str x0, [x22,56] + str x0, [x22,1592] mov w0, 32768 adrp x19, .LANCHOR0 add x20, x19, :lo12:.LANCHOR0 adrp x24, .LC95 bl ftl_malloc - str x0, [x22,104] + str x0, [x22,1640] mov w0, 4096 mov w27, 144 mov w28, 239 bl ftl_malloc - str x0, [x22,112] + str x0, [x22,1648] mov w0, 32768 bl ftl_malloc - str x0, [x22,120] + str x0, [x22,1656] mov w0, 4096 bl ftl_malloc - str x0, [x22,128] + str x0, [x22,1664] mov w0, 128 str w0, [x20,76] mov w0, 60 mov w1, 50 - strb w0, [x22,98] + strb w0, [x22,1634] mov x0, x23 - strb wzr, [x20,1860] + strb wzr, [x20,2372] add x23, x20, 8 strb w1, [x20,73] - strb w1, [x22,96] - str wzr, [x22,92] - str wzr, [x22,64] + strb w1, [x22,1632] + str wzr, [x22,1628] + str wzr, [x22,1600] strb wzr, [x20,72] - add x20, x20, 1620 - strb wzr, [x22,136] + add x20, x20, 2132 + strb wzr, [x22,1672] bl NandcInit add x0, x24, :lo12:.LC95 mov w22, 0 str x0, [x29,104] mov x26, x20 -.L1364: +.L1370: ldrb w2, [x23,8] uxtb w25, w22 mov w0, w25 @@ -9317,7 +9334,7 @@ FlashInit: strb w2, [x20,4] ldr w2, [x24,2048] strb w2, [x20,5] - bne .L1359 + bne .L1365 str w28, [x24,2056] mov w0, 1 str w0, [x24,2052] @@ -9328,14 +9345,14 @@ FlashInit: str wzr, [x24,2048] str wzr, [x24,2048] str wzr, [x24,2048] -.L1359: +.L1365: mov w0, w25 bl NandcFlashDeCs ldrb w2, [x20] sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L1360 + bhi .L1366 ldr x0, [x29,104] add w1, w22, 1 ldrb w3, [x20,1] @@ -9344,55 +9361,55 @@ FlashInit: ldrb w6, [x20,4] ldrb w7, [x20,5] bl printk -.L1360: - cbnz w22, .L1361 +.L1366: + cbnz w22, .L1367 ldrb w0, [x26] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L1415 + bhi .L1421 ldrb w0, [x26,1] cmp w0, 255 - beq .L1415 -.L1361: + beq .L1421 +.L1367: ldrb w0, [x20] cmp w0, 181 - bne .L1363 + bne .L1369 mov w0, 44 strb w0, [x20] -.L1363: +.L1369: add w22, w22, 1 add x23, x23, 16 cmp w22, 4 add x20, x20, 8 - bne .L1364 + bne .L1370 add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,1620] + ldrb w1, [x0,2132] cmp w1, 173 - beq .L1365 - ldr w0, [x0,1864] + beq .L1371 + ldr w0, [x0,2376] bl NandcSetDdrMode -.L1365: +.L1371: add x20, x19, :lo12:.LANCHOR0 mov w1, 0 - add x0, x20, 760 + add x0, x20, 1272 mov w2, 852 bl ftl_memset strb wzr, [x20,80] adrp x1, .LANCHOR1 - ldr w4, [x20,1872] + ldr w4, [x20,2384] add x0, x1, :lo12:.LANCHOR1 add x0, x0, 472 - str x0, [x20,744] + str x0, [x20,1256] mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w4, w0 - bne .L1366 + bne .L1372 mov w0, 1 - str w0, [x20,1856] -.L1366: + str w0, [x20,2368] +.L1372: add x3, x19, :lo12:.LANCHOR0 - add x3, x3, 1620 + add x3, x3, 2132 ldrb w0, [x3,1] cmp w0, 218 cset w6, eq @@ -9402,167 +9419,167 @@ FlashInit: cset w2, eq orr w2, w5, w2 orr w2, w6, w2 - cbnz w2, .L1367 + cbnz w2, .L1373 and w2, w0, -3 cmp w2, 209 - beq .L1367 + beq .L1373 cmp w0, 220 - bne .L1368 + bne .L1374 ldrb w2, [x3,3] cmp w2, 149 - bne .L1368 -.L1367: + bne .L1374 +.L1373: add x2, x19, :lo12:.LANCHOR0 add x3, x21, :lo12:.LANCHOR4 mov w7, 16 mov w5, 1 - add x8, x2, 1620 + add x8, x2, 2132 strb w7, [x2,73] strb w5, [x2,72] - strb w7, [x3,98] - ldrb w7, [x2,1620] + strb w7, [x3,1634] + ldrb w7, [x2,2132] add x2, x1, :lo12:.LANCHOR1 cmp w7, 152 - strb w7, [x2,3265] - strb w0, [x2,3266] - bne .L1370 + strb w7, [x2,3329] + strb w0, [x2,3330] + bne .L1376 ldrsb w2, [x8,4] - tbnz w2, #31, .L1371 + tbnz w2, #31, .L1377 mov w2, 24 - strb w2, [x3,98] -.L1370: + strb w2, [x3,1634] +.L1376: cmp w4, 2049 - beq .L1418 + beq .L1424 mov w2, 12336 movk w2, 0x5638, lsl 16 cmp w4, w2 - bne .L1373 -.L1418: + bne .L1379 +.L1424: add x2, x21, :lo12:.LANCHOR4 mov w3, 16 - strb w3, [x2,98] -.L1373: - cbz w6, .L1375 + strb w3, [x2,1634] +.L1379: + cbz w6, .L1381 add x0, x1, :lo12:.LANCHOR1 mov w2, 2048 - strh w2, [x0,3278] + strh w2, [x0,3342] mov w2, -38 - b .L1459 -.L1375: + b .L1465 +.L1381: cmp w0, 220 - bne .L1377 + bne .L1383 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3278] + strh w2, [x0,3342] mov w2, -36 -.L1459: - strb w2, [x0,3266] - b .L1376 -.L1377: +.L1465: + strb w2, [x0,3330] + b .L1382 +.L1383: cmp w0, 211 - bne .L1376 + bne .L1382 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3278] + strh w2, [x0,3342] mov w2, 2 - strb w2, [x0,3277] -.L1376: + strb w2, [x0,3341] +.L1382: add x20, x1, :lo12:.LANCHOR1 add x0, x19, :lo12:.LANCHOR0 - add x1, x20, 3136 + add x1, x20, 3200 mov w2, 32 add x0, x0, 88 bl ftl_memcpy add x0, x20, 472 - add x1, x20, 3264 + add x1, x20, 3328 mov w2, 32 bl ftl_memcpy -.L1368: +.L1374: add x20, x19, :lo12:.LANCHOR0 ldrb w0, [x20,72] - cbnz w0, .L1378 + cbnz w0, .L1384 bl FlashLoadPhyInfoInRam - cbnz w0, .L1380 - ldr x0, [x20,744] + cbnz w0, .L1386 + ldr x0, [x20,1256] ldrb w1, [x0,17] and w0, w1, 7 - strb w0, [x20,1844] - tbnz x1, 0, .L1380 + strb w0, [x20,2356] + tbnz x1, 0, .L1386 mov w1, 1 - strb w1, [x20,1860] + strb w1, [x20,2372] bl FlashSetInterfaceMode - ldrb w0, [x20,1844] + ldrb w0, [x20,2356] bl NandcSetMode -.L1380: +.L1386: add x20, x19, :lo12:.LANCHOR0 - ldr x0, [x20,744] + ldr x0, [x20,1256] ldrb w0, [x0,26] strb w0, [x20,196] bl FlashLoadPhyInfo - cbz w0, .L1378 - ldr w0, [x20,1864] - cbz w0, .L1383 + cbz w0, .L1384 + ldr w0, [x20,2376] + cbz w0, .L1389 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L1456 -.L1383: - ldrb w0, [x20,1844] + b .L1462 +.L1389: + ldrb w0, [x20,2356] bl FlashSetInterfaceMode - ldrb w0, [x20,1844] -.L1456: + ldrb w0, [x20,2356] +.L1462: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L1378 + cbz w0, .L1384 mov w0, 1 add x20, x19, :lo12:.LANCHOR0 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - ldr x1, [x20,744] + ldr x1, [x20,1256] adrp x0, .LC96 add x0, x0, :lo12:.LC96 ldrh w1, [x1,14] bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L1432 + beq .L1438 bl FlashDieInfoInit - ldr x0, [x20,744] + ldr x0, [x20,1256] ldrb w0, [x0,19] bl FlashGetReadRetryDefault - adrp x1, .LANCHOR2+2014 - ldr x0, [x20,744] - ldrh w1, [x1,#:lo12:.LANCHOR2+2014] + adrp x1, .LANCHOR2+3550 + ldr x0, [x20,1256] + ldrh w1, [x1,#:lo12:.LANCHOR2+3550] ldrb w2, [x0,9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L1385 + blt .L1391 ldrh w1, [x0,14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L1386 -.L1385: + bge .L1392 +.L1391: ldrh w1, [x0,14] and w1, w1, -256 strh w1, [x0,14] -.L1386: +.L1392: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,1844] + ldrb w0, [x0,2356] tst w0, 6 - beq .L1387 + beq .L1393 bl FlashSavePhyInfo add x1, x21, :lo12:.LANCHOR4 mov w0, 0 - ldr w1, [x1,88] + ldr w1, [x1,1624] bl FlashDdrParaScan -.L1387: +.L1393: bl FlashSavePhyInfo -.L1378: +.L1384: add x20, x19, :lo12:.LANCHOR0 add x22, x21, :lo12:.LANCHOR4 - ldr x2, [x20,744] - str xzr, [x22,72] + ldr x2, [x20,1256] + str xzr, [x22,1608] ldrb w0, [x2,26] strb w0, [x20,196] ldrh w0, [x2,16] @@ -9570,103 +9587,103 @@ FlashInit: ubfx x1, x0, 7, 1 strb w1, [x20,80] ubfx x1, x0, 3, 1 - strb w1, [x22,137] + strb w1, [x22,1673] ubfx x1, x0, 4, 1 - strb w1, [x20,1945] + strb w1, [x20,2457] ldrb w1, [x2,12] ubfx x0, x0, 8, 3 - strb w0, [x20,1844] + strb w0, [x20,2356] ldrb w0, [x2,18] sdiv w1, w3, w1 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr x0, [x20,744] + ldr x0, [x20,1256] ldrh w1, [x0,16] - tbz x1, 6, .L1389 + tbz x1, 6, .L1395 ldrb w0, [x0,19] - ldrb w1, [x20,762] - strb w1, [x22,97] + ldrb w1, [x20,1274] + strb w1, [x22,1633] sub w1, w0, #1 - ldrb w2, [x20,761] + ldrb w2, [x20,1273] uxtb w1, w1 strb w0, [x20,120] strb w2, [x20,121] cmp w1, 7 - bhi .L1390 + bhi .L1396 adrp x1, HynixReadRetrial cmp w0, 8 add x1, x1, :lo12:HynixReadRetrial - str x1, [x22,72] + str x1, [x22,1608] sub w1, w0, #5 cset w2, eq uxtb w1, w1 cmp w1, 1 - bls .L1419 - cbz w2, .L1391 -.L1419: + bls .L1425 + cbz w2, .L1397 +.L1425: add x1, x19, :lo12:.LANCHOR0 mov w3, 1 - str w3, [x1,1936] -.L1391: + str w3, [x1,2448] +.L1397: cmp w0, 7 add x1, x19, :lo12:.LANCHOR0 - beq .L1417 - cbnz w2, .L1417 - add x1, x1, 780 - b .L1394 -.L1417: - add x1, x1, 788 -.L1394: + beq .L1423 + cbnz w2, .L1423 + add x1, x1, 1292 + b .L1400 +.L1423: + add x1, x1, 1300 +.L1400: mov x2, 0 mov w3, w2 -.L1396: +.L1402: ldrsb w4, [x1,x2] add x2, x2, 1 cmp w4, wzr csinc w3, w3, w3, ne cmp x2, 32 - bne .L1396 + bne .L1402 cmp w3, 27 - bls .L1389 + bls .L1395 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1389 -.L1390: + b .L1395 +.L1396: sub w1, w0, #17 uxtb w1, w1 cmp w1, 2 - bhi .L1398 + bhi .L1404 adrp x1, MicronReadRetrial cmp w0, 19 add x1, x1, :lo12:MicronReadRetrial - str x1, [x22,72] - beq .L1399 + str x1, [x22,1608] + beq .L1405 mov w0, 7 - b .L1457 -.L1399: + b .L1463 +.L1405: mov w0, 15 -.L1457: - strb w0, [x22,97] - b .L1389 -.L1398: +.L1463: + strb w0, [x22,1633] + b .L1395 +.L1404: sub w1, w0, #65 uxtb w1, w1 cmp w1, 1 - bls .L1420 + bls .L1426 cmp w0, 33 - bne .L1400 -.L1420: + bne .L1406 +.L1426: add x0, x21, :lo12:.LANCHOR4 adrp x1, ToshibaReadRetrial add x1, x1, :lo12:ToshibaReadRetrial mov w2, 4 - str x1, [x0,72] + str x1, [x0,1608] add x1, x19, :lo12:.LANCHOR0 strb w2, [x1,121] mov w1, 7 - strb w1, [x0,97] - b .L1389 -.L1400: + strb w1, [x0,1633] + b .L1395 +.L1406: sub w1, w0, #67 uxtb w1, w1 cmp w1, 1 @@ -9674,109 +9691,109 @@ FlashInit: cset w2, ls uxtb w1, w1 cmp w1, 1 - bls .L1421 - cbz w2, .L1402 -.L1421: + bls .L1427 + cbz w2, .L1408 +.L1427: add x3, x21, :lo12:.LANCHOR4 adrp x1, ToshibaReadRetrial add x1, x1, :lo12:ToshibaReadRetrial cmp w0, 35 - str x1, [x3,72] - beq .L1404 + str x1, [x3,1608] + beq .L1410 cmp w0, 68 - beq .L1404 + beq .L1410 mov w0, 7 - strb w0, [x3,97] - b .L1405 -.L1404: + strb w0, [x3,1633] + b .L1411 +.L1410: add x0, x21, :lo12:.LANCHOR4 mov w1, 17 - strb w1, [x0,97] -.L1405: + strb w1, [x0,1633] +.L1411: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 - cbnz w2, .L1458 + cbnz w2, .L1464 mov w1, 5 -.L1458: +.L1464: strb w1, [x0,121] - b .L1389 -.L1402: + b .L1395 +.L1408: cmp w0, 49 - bne .L1389 + bne .L1395 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial - str x0, [x22,72] -.L1389: + str x0, [x22,1608] +.L1395: add x0, x19, :lo12:.LANCHOR0 mov w1, 12336 movk w1, 0x5638, lsl 16 - ldr w2, [x0,1872] + ldr w2, [x0,2384] cmp w2, w1 - bne .L1407 + bne .L1413 ldrb w1, [x0,196] - cbz w1, .L1407 - ldr x0, [x0,744] + cbz w1, .L1413 + ldr x0, [x0,1256] strb wzr, [x0,18] -.L1407: +.L1413: add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,1620] + ldrb w1, [x0,2132] cmp w1, 44 - bne .L1408 - ldrb w1, [x0,1860] - cbz w1, .L1408 + bne .L1414 + ldrb w1, [x0,2372] + cbz w1, .L1414 mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L1409 + bne .L1415 ldrb w0, [x0,196] - cbnz w0, .L1408 -.L1409: + cbnz w0, .L1414 +.L1415: add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,1860] + strb wzr, [x0,2372] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L1408: +.L1414: add x1, x19, :lo12:.LANCHOR0 - ldrb w0, [x1,1844] + ldrb w0, [x1,2356] tst w0, 6 - beq .L1410 - ldrb w1, [x1,1860] - cbnz w1, .L1411 - tbnz x0, 0, .L1410 -.L1411: + beq .L1416 + ldrb w1, [x1,2372] + cbnz w1, .L1417 + tbnz x0, 0, .L1416 +.L1417: mov w0, 0 add x21, x21, :lo12:.LANCHOR4 bl flash_enter_slc_mode - ldr w1, [x21,88] + ldr w1, [x21,1624] mov w0, 0 bl FlashDdrParaScan mov w0, 0 bl flash_exit_slc_mode -.L1410: +.L1416: add x19, x19, :lo12:.LANCHOR0 mov w20, 16 - ldr x0, [x19,744] + ldr x0, [x19,1256] ldrb w0, [x0,20] bl FlashBchSel adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 2352 + add x0, x0, 3888 bl FlashReadIdbDataRaw strb w20, [x19,73] mov w0, 18928 movk w0, 0x2, lsl 16 bl FlashTimingCfg - ldr x1, [x19,744] + ldr x1, [x19,1256] ldrb w2, [x1,12] strh w2, [x19,176] ldrh w4, [x1,14] ldrb w2, [x1,7] str w2, [x19,172] - ldr w2, [x19,1620] + ldr w2, [x19,2132] str w2, [x19,168] - ldrb w2, [x19,1845] + ldrb w2, [x19,2357] strh w2, [x19,178] ldrb w2, [x1,13] strh w2, [x19,180] @@ -9800,7 +9817,7 @@ FlashInit: ldrb w5, [x19,72] strh w2, [x19,190] cmp w5, 1 - bne .L1413 + bne .L1419 lsl w2, w2, 1 lsr w4, w4, 1 lsl w3, w3, 1 @@ -9810,19 +9827,19 @@ FlashInit: strh w4, [x19,182] strh w3, [x19,188] strh w2, [x19,194] -.L1413: +.L1419: ldrb w0, [x1,20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 - b .L1432 -.L1415: + b .L1438 +.L1421: mov w0, -2 - b .L1432 -.L1371: - strb w5, [x3,136] - b .L1370 -.L1432: + b .L1438 +.L1377: + strb w5, [x3,1672] + b .L1376 +.L1438: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9837,66 +9854,62 @@ FlashInit: FlashPageProgMsbFFData: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - stp x23, x24, [sp,48] - uxtb w23, w0 - add x0, x21, :lo12:.LANCHOR0 stp x19, x20, [sp,16] - stp x25, x26, [sp,64] uxth w19, w2 - ldr x2, [x0,744] - ldrb w22, [x2,19] - ldrb w2, [x0,196] - cbz w2, .L1461 - ldr w0, [x0,1856] - cbnz w0, .L1460 -.L1461: - sub w0, w22, #5 - uxtb w0, w0 - cmp w0, 3 - bls .L1462 - cmp w22, 68 - beq .L1462 - sub w2, w22, #19 - and w2, w2, -17 + adrp x2, .LANCHOR0 + stp x21, x22, [sp,32] + uxtb w21, w0 + add x0, x2, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + mov x23, x2 + ldr x3, [x0,1256] + ldrb w4, [x0,196] + ldrb w3, [x3,19] + cbz w4, .L1467 + ldr w0, [x0,2368] + cbnz w0, .L1466 +.L1467: + sub w2, w3, #5 uxtb w2, w2 - cbnz w2, .L1460 -.L1462: + cmp w2, 2 + bls .L1468 + cmp w3, 68 + beq .L1468 + sub w3, w3, #19 + and w3, w3, -17 + uxtb w3, w3 + cbnz w3, .L1466 +.L1468: adrp x20, .LANCHOR2 - mov w25, w1 + mov w24, w1 add x20, x20, :lo12:.LANCHOR2 - mov w26, 65535 - add x20, x20, 988 - adrp x24, .LANCHOR4 -.L1464: - add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,744] + mov w25, 65535 + add x20, x20, 1500 + adrp x26, .LANCHOR4 +.L1470: + add x0, x23, :lo12:.LANCHOR0 + ldr x0, [x0,1256] ldrh w0, [x0,10] cmp w0, w19 - bls .L1460 + bls .L1466 ldrh w0, [x20,w19,sxtw 1] - cmp w0, w26 - bne .L1460 - add x0, x24, :lo12:.LANCHOR4 - cmp w22, 8 - mov w1, 0 - ldr x0, [x0,104] - beq .L1474 + cmp w0, w25 + bne .L1466 + add x22, x26, :lo12:.LANCHOR4 mov w1, 255 -.L1474: mov w2, 32768 + ldr x0, [x22,1640] bl ftl_memset - add x0, x24, :lo12:.LANCHOR4 - add w1, w19, w25 + ldr x2, [x22,1640] + add w1, w19, w24 + mov w0, w21 add w19, w19, 1 - ldr x2, [x0,104] - mov w0, w23 - uxth w19, w19 mov x3, x2 + uxth w19, w19 bl FlashProgPage - b .L1464 -.L1460: + b .L1470 +.L1466: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9930,9 +9943,9 @@ FlashReadSlc2KPages: mov w22, 0 stp x27, x28, [sp,80] str x0, [x29,96] -.L1476: +.L1479: cmp w22, w24 - beq .L1540 + beq .L1543 ldr w1, [x29,116] sub w4, w24, w22 mov x0, x19 @@ -9942,16 +9955,16 @@ FlashReadSlc2KPages: bl LogAddr2PhyAddr ldr x1, [x29,120] ldr w0, [x29,136] - ldrb w1, [x1,1845] + ldrb w1, [x1,2357] cmp w0, w1 - bcc .L1477 + bcc .L1480 mov w0, -1 str w0, [x19] - b .L1478 -.L1477: + b .L1481 +.L1480: ldr x1, [x29,120] add x0, x1, x0, uxtw - ldrb w20, [x0,1848] + ldrb w20, [x0,2360] mov w23, 0 adrp x27, .LANCHOR4 mov w28, 256 @@ -9959,7 +9972,7 @@ FlashReadSlc2KPages: bl NandcWaitFlashReady mov w0, w20 bl NandcFlashCs -.L1479: +.L1482: ldr w1, [x29,140] mov w0, w20 bl FlashReadCmd @@ -9973,25 +9986,25 @@ FlashReadSlc2KPages: bl NandcXferData mov w26, w0 add x0, x27, :lo12:.LANCHOR4 - ldrb w0, [x0,136] - cbz w0, .L1480 + ldrb w0, [x0,1672] + cbz w0, .L1483 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w26, w26, w28, ls -.L1480: +.L1483: cmn w26, #1 - bne .L1481 + bne .L1484 cmp w23, 9 - bhi .L1481 + bhi .L1484 add w23, w23, 1 - b .L1479 -.L1481: + b .L1482 +.L1484: cmp w23, wzr mov w27, 256 csel w26, w26, w27, eq mov w23, 0 -.L1483: +.L1486: add x0, x21, :lo12:.LANCHOR0 ldr w1, [x29,140] ldr w2, [x0,76] @@ -10015,20 +10028,20 @@ FlashReadSlc2KPages: mov w28, w0 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,136] - cbz w0, .L1486 + ldrb w0, [x0,1672] + cbz w0, .L1489 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w28, w28, w27, ls -.L1486: +.L1489: cmn w28, #1 - bne .L1487 + bne .L1490 cmp w23, 9 - bhi .L1487 + bhi .L1490 add w23, w23, 1 - b .L1483 -.L1487: + b .L1486 +.L1490: cmp w23, wzr mov w0, w20 mov w27, 256 @@ -10037,63 +10050,63 @@ FlashReadSlc2KPages: add x0, x21, :lo12:.LANCHOR0 cmp w28, w26 csel w28, w28, w26, cs - ldrb w0, [x0,1944] + ldrb w0, [x0,2456] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L1489 + bls .L1492 cmn w28, #1 csel w28, w28, w27, eq -.L1489: - cmp w28, 256 - beq .L1500 - cmn w28, #1 - bne .L1490 -.L1500: - str w28, [x19] - b .L1492 -.L1490: - str wzr, [x19] .L1492: + cmp w28, 256 + beq .L1503 + cmn w28, #1 + bne .L1493 +.L1503: + str w28, [x19] + b .L1495 +.L1493: + str wzr, [x19] +.L1495: ldr x0, [x19,16] - cbz x0, .L1493 + cbz x0, .L1496 ldr w1, [x0,12] cmn w1, #1 - bne .L1493 + bne .L1496 ldr w1, [x0,8] cmn w1, #1 - bne .L1493 + bne .L1496 ldr w0, [x0] cmn w0, #1 - beq .L1493 + beq .L1496 str w1, [x19] -.L1493: +.L1496: ldr w3, [x19] cmn w3, #1 - bne .L1478 + bne .L1481 add x21, x21, :lo12:.LANCHOR0 ldr w1, [x19,4] ldr x0, [x29,104] - ldrb w2, [x21,1944] + ldrb w2, [x21,2456] bl printk ldr x1, [x19,8] - cbz x1, .L1495 + cbz x1, .L1498 adrp x0, .LC98 mov w2, 4 add x0, x0, :lo12:.LC98 mov w3, 8 bl rknand_print_hex -.L1495: +.L1498: ldr x1, [x19,16] - cbz x1, .L1478 + cbz x1, .L1481 mov w2, 4 ldr x0, [x29,96] mov w3, w2 bl rknand_print_hex -.L1478: +.L1481: add w22, w22, 1 add x19, x19, 56 - b .L1476 -.L1540: + b .L1479 +.L1543: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10125,10 +10138,10 @@ FlashReadPages: ldrb w23, [x3,72] str w2, [x29,140] str w4, [x29,136] - cbz w23, .L1581 + cbz w23, .L1584 bl FlashReadSlc2KPages - b .L1630 -.L1581: + b .L1633 +.L1584: adrp x0, .LC97 mov w24, w23 add x0, x0, :lo12:.LC97 @@ -10139,10 +10152,10 @@ FlashReadPages: adrp x0, .LC100 add x0, x0, :lo12:.LC100 str x0, [x29,112] -.L1542: +.L1545: ldr w0, [x29,144] cmp w24, w0 - bcs .L1632 + bcs .L1635 mov w27, 56 ldr w0, [x29,144] ldr w1, [x29,140] @@ -10157,50 +10170,50 @@ FlashReadPages: add x1, x22, :lo12:.LANCHOR0 mov w20, w0 ldr w0, [x29,168] - ldrb w2, [x1,1845] + ldrb w2, [x1,2357] cmp w0, w2 - bcc .L1544 + bcc .L1547 mov w0, -1 str w0, [x26,x27] - b .L1545 -.L1544: + b .L1548 +.L1547: add x0, x1, x0, uxtw adrp x25, .LANCHOR4 - ldrb w19, [x0,1848] + ldrb w19, [x0,2360] add x0, x25, :lo12:.LANCHOR4 str x1, [x29,152] - ldrb w0, [x0,137] + ldrb w0, [x0,1673] cmp w0, wzr mov w0, w19 csel w20, w20, wzr, ne bl NandcWaitFlashReady ldr x1, [x29,152] - ldr x0, [x1,744] + ldr x0, [x1,1256] ldrb w0, [x0,19] sub w2, w0, #1 uxtb w2, w2 cmp w2, 7 - bhi .L1547 + bhi .L1550 sub w0, w0, #7 - add x1, x1, 760 + add x1, x1, 1272 sxtw x4, w19 add x1, x1, x4 uxtb w0, w0 cmp w0, 1 ldrb w3, [x1,12] - bhi .L1548 + bhi .L1551 ldrb w3, [x1,20] -.L1548: +.L1551: add x2, x22, :lo12:.LANCHOR0 add x4, x2, x4 - ldrb w0, [x4,1616] + ldrb w0, [x4,2128] cmp w0, w3 - beq .L1547 - ldrb w1, [x2,761] + beq .L1550 + ldrb w1, [x2,1273] mov w0, w19 - add x2, x2, 764 + add x2, x2, 1276 bl HynixSetRRPara -.L1547: +.L1550: mov w0, w19 bl NandcFlashCs ldr w0, [x29,140] @@ -10208,38 +10221,38 @@ FlashReadPages: cset w0, eq orr w0, w0, w28, lsr 31 str w0, [x29,152] - cbz w0, .L1549 + cbz w0, .L1552 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbz w0, .L1549 + cbz w0, .L1552 mov w0, w19 bl flash_enter_slc_mode - b .L1550 -.L1549: + b .L1553 +.L1552: mov w0, w19 bl flash_exit_slc_mode -.L1550: +.L1553: cmp w19, 255 ldr w1, [x29,172] - bne .L1588 + bne .L1591 cmn w1, #1 cset w0, ne - cbz w0, .L1582 -.L1588: - cbz w20, .L1554 + cbz w0, .L1585 +.L1591: + cbz w20, .L1557 add x0, x22, :lo12:.LANCHOR0 ldr w2, [x0,76] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L1555 -.L1554: + b .L1558 +.L1557: mov w0, w19 bl FlashReadCmd - b .L1555 -.L1582: + b .L1558 +.L1585: mov w20, w0 -.L1552: +.L1555: ldrb w2, [x29,148] mov w0, w19 ldr x3, [x21,8] @@ -10248,15 +10261,15 @@ FlashReadPages: bl NandcXferData cmn w0, #1 mov w28, w0 - bne .L1556 + bne .L1559 add x0, x22, :lo12:.LANCHOR0 ldrb w1, [x0,80] - cbz w1, .L1556 + cbz w1, .L1559 strb wzr, [x0,80] mov w20, 0 - b .L1550 -.L1556: - cbz w20, .L1557 + b .L1553 +.L1559: + cbz w20, .L1560 add x0, x22, :lo12:.LANCHOR0 ldr w1, [x29,172] ldr w2, [x0,76] @@ -10276,22 +10289,22 @@ FlashReadPages: cmn w0, #1 mov w23, w0 csel w20, w20, wzr, ne -.L1557: +.L1560: mov w0, w19 bl NandcFlashDeCs add x6, x22, :lo12:.LANCHOR0 ldrb w0, [x29,136] cmn w28, #1 strb w0, [x6,80] - bne .L1564 - ldrb w0, [x6,1860] - cbnz w0, .L1559 -.L1563: + bne .L1567 + ldrb w0, [x6,2372] + cbnz w0, .L1562 +.L1566: add x0, x25, :lo12:.LANCHOR4 - ldr x20, [x0,72] - cbnz x20, .L1560 - b .L1633 -.L1559: + ldr x20, [x0,1608] + cbnz x20, .L1563 + b .L1636 +.L1562: ldr x0, [x6,128] mov w4, 1 ldr w1, [x29,172] @@ -10303,18 +10316,18 @@ FlashReadPages: bl FlashDdrTunningRead cmn w0, #1 mov w28, w0 - beq .L1562 + beq .L1565 ldr x6, [x29,104] - ldrb w0, [x6,1944] + ldrb w0, [x6,2456] cmp w28, w0, lsr 1 - bls .L1584 -.L1562: + bls .L1587 +.L1565: lsr w0, w20, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L1563 - b .L1584 -.L1560: + beq .L1566 + b .L1587 +.L1563: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -10323,20 +10336,20 @@ FlashReadPages: cmn w0, #1 mov w28, w0 mov w20, 0 - bne .L1565 + bne .L1568 add x2, x22, :lo12:.LANCHOR0 - ldr x0, [x2,744] + ldr x0, [x2,1256] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 7 - bhi .L1566 - ldrb w1, [x2,761] + bhi .L1569 + ldrb w1, [x2,1273] mov w0, w19 - add x2, x2, 764 + add x2, x2, 1276 mov w3, w20 bl HynixSetRRPara -.L1566: +.L1569: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] @@ -10349,127 +10362,127 @@ FlashReadPages: ldr w1, [x21,4] mov w3, w28 str x4, [x29,104] - ldrb w2, [x4,1944] + ldrb w2, [x4,2456] bl printk cmn w28, #1 ldr x4, [x29,104] - bne .L1565 + bne .L1568 ldrb w0, [x4,196] - cbz w0, .L1565 + cbz w0, .L1568 ldr w0, [x29,152] - cbz w0, .L1567 + cbz w0, .L1570 mov w0, w19 bl flash_enter_slc_mode - b .L1568 -.L1567: + b .L1571 +.L1570: mov w0, w19 bl flash_exit_slc_mode -.L1568: +.L1571: add x0, x25, :lo12:.LANCHOR4 ldr w1, [x29,172] ldr x2, [x21,8] mov w20, 0 ldr x3, [x21,16] - ldr x4, [x0,72] + ldr x4, [x0,1608] mov w0, w19 blr x4 mov w28, w0 - b .L1565 -.L1633: + b .L1568 +.L1636: ldr w1, [x29,172] mov w0, w19 ldr x2, [x21,8] ldr x3, [x21,16] bl FlashReadRawPage mov w28, w0 - b .L1565 -.L1584: + b .L1568 +.L1587: mov w20, 0 -.L1564: +.L1567: add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,1944] + ldrb w0, [x0,2456] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L1565 + bls .L1568 add x0, x25, :lo12:.LANCHOR4 - ldr x0, [x0,72] + ldr x0, [x0,1608] cmp x0, xzr mov w0, 256 csel w28, w28, w0, ne -.L1565: +.L1568: cmp w28, 256 - beq .L1589 + beq .L1592 cmn w28, #1 - bne .L1569 -.L1589: + bne .L1572 +.L1592: str w28, [x26,x27] - b .L1571 -.L1569: + b .L1574 +.L1572: str wzr, [x26,x27] -.L1571: +.L1574: ldr w3, [x26,x27] cmn w3, #1 - bne .L1573 + bne .L1576 add x2, x22, :lo12:.LANCHOR0 ldr w1, [x21,4] ldr x0, [x29,128] - ldrb w2, [x2,1944] + ldrb w2, [x2,2456] bl printk ldr x1, [x21,16] - cbz x1, .L1573 + cbz x1, .L1576 mov w2, 4 ldr x0, [x29,120] mov w3, w2 bl rknand_print_hex -.L1573: - cbz w20, .L1575 +.L1576: + cbz w20, .L1578 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,1944] + ldrb w0, [x0,2456] add w0, w0, w0, lsl 1 cmp w23, w0, lsr 2 - bls .L1576 + bls .L1579 add x25, x25, :lo12:.LANCHOR4 - ldr x0, [x25,72] + ldr x0, [x25,1608] cmp x0, xzr mov w0, 256 csel w23, w23, w0, ne -.L1576: +.L1579: add w0, w24, 1 mov w1, 56 cmp w23, 256 umull x0, w0, w1 - beq .L1590 + beq .L1593 cmn w23, #1 - bne .L1577 -.L1590: + bne .L1580 +.L1593: str w23, [x26,x0] - b .L1575 -.L1577: + b .L1578 +.L1580: str wzr, [x26,x0] -.L1575: +.L1578: ldr w0, [x29,152] add w24, w24, w20 - cbz w0, .L1545 + cbz w0, .L1548 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbz w0, .L1545 + cbz w0, .L1548 mov w0, w19 bl flash_exit_slc_mode -.L1545: +.L1548: add w24, w24, 1 - b .L1542 -.L1632: + b .L1545 +.L1635: mov w0, 0 - b .L1630 -.L1555: + b .L1633 +.L1558: mov w0, w19 bl NandcWaitFlashReady - cbz w20, .L1552 + cbz w20, .L1555 ldr w1, [x29,172] mov w0, w19 bl FlashReadDpDataOutCmd - b .L1552 -.L1630: + b .L1555 +.L1633: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10497,7 +10510,7 @@ FlashLoadFactorBbt: ldrh w1, [x0,180] add x19, x23, :lo12:.LANCHOR4 ldrh w21, [x0,182] - add x0, x19, 144 + add x0, x19, 1680 mov w28, 0 adrp x26, .LC101 add x26, x26, :lo12:.LC101 @@ -10506,25 +10519,25 @@ FlashLoadFactorBbt: uxth w21, w21 bl ftl_memset add w25, w21, w27 - ldr x0, [x19,112] + ldr x0, [x19,1648] str x0, [x29,152] mov w19, w28 sub w0, w21, #12 str xzr, [x29,144] uxth w25, w25 str w0, [x29,124] -.L1635: +.L1638: add x1, x22, :lo12:.LANCHOR0 - ldrb w1, [x1,1845] + ldrb w1, [x1,2357] cmp w1, w19 - bls .L1645 + bls .L1648 mul w3, w19, w21 mov w20, w25 mov w4, 61664 -.L1636: +.L1639: ldr w0, [x29,124] cmp w20, w0 - ble .L1638 + ble .L1641 add w1, w3, w20 add x0, x29, 136 lsl w1, w1, 10 @@ -10538,34 +10551,34 @@ FlashLoadFactorBbt: ldr x3, [x29,112] cmn w0, #1 ldr x4, [x29,104] - beq .L1637 + beq .L1640 add x24, x23, :lo12:.LANCHOR4 - ldr x0, [x24,112] + ldr x0, [x24,1648] ldrh w0, [x0] cmp w0, w4 - bne .L1637 + bne .L1640 + add x24, x24, 1680 mov x0, x26 mov w1, w19 mov w2, w20 add w28, w28, 1 - add x24, x24, x19, sxtw 1 bl printk + strh w20, [x24,w19,sxtw 1] uxth w28, w28 - strh w20, [x24,144] - b .L1638 -.L1637: + b .L1641 +.L1640: sub w20, w20, #1 uxth w20, w20 - b .L1636 -.L1638: + b .L1639 +.L1641: add x1, x22, :lo12:.LANCHOR0 add w19, w19, 1 uxtb w19, w19 - ldrb w1, [x1,1845] + ldrb w1, [x1,2357] cmp w1, w28 csel w27, w27, wzr, ne - b .L1635 -.L1645: + b .L1638 +.L1648: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10597,9 +10610,9 @@ FlashProgSlc2KPages: mov w25, 0 add x22, x22, :lo12:.LANCHOR0 mov w28, -1 -.L1647: +.L1650: cmp w25, w23 - beq .L1676 + beq .L1679 mov w1, w24 sub w4, w23, w25 mov x0, x21 @@ -10607,14 +10620,14 @@ FlashProgSlc2KPages: add x3, x29, 100 bl LogAddr2PhyAddr ldr w0, [x29,100] - ldrb w1, [x22,1845] + ldrb w1, [x22,2357] cmp w0, w1 - bcc .L1648 + bcc .L1651 str w28, [x21] - b .L1649 -.L1648: + b .L1652 +.L1651: add x0, x22, x0, uxtw - ldrb w20, [x0,1848] + ldrb w20, [x0,2360] mov w0, w20 bl NandcWaitFlashReady mov w0, w20 @@ -10667,36 +10680,36 @@ FlashProgSlc2KPages: ldr w1, [x29,96] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1652 + tbz x0, 0, .L1655 str w28, [x21] -.L1652: +.L1655: mov w0, w20 bl NandcFlashDeCs -.L1649: +.L1652: add w25, w25, 1 add x21, x21, 56 - b .L1647 -.L1676: + b .L1650 +.L1679: mov w21, 0 - cbz w27, .L1674 + 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 -.L1675: +.L1678: cmp w21, w23 - beq .L1674 + beq .L1677 ldr w0, [x19] cmn w0, #1 - bne .L1655 + bne .L1658 adrp x0, .LC102 ldr w1, [x19,4] add x0, x0, :lo12:.LC102 bl printk - b .L1656 -.L1655: + b .L1659 +.L1658: adrp x20, .LANCHOR4 sub w4, w23, w21 add x22, x20, :lo12:.LANCHOR4 @@ -10705,62 +10718,62 @@ FlashProgSlc2KPages: add x2, x29, 96 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,120] + ldr x0, [x22,1656] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,128] + ldr x0, [x22,1664] str wzr, [x0] add x0, x29, 104 bl memcpy - ldr x0, [x22,120] + ldr x0, [x22,1656] mov w1, 1 str x0, [x29,112] mov w2, w24 - ldr x0, [x22,128] + ldr x0, [x22,1664] str x0, [x29,120] add x0, x29, 104 bl FlashReadPages ldr w22, [x29,104] cmn w22, #1 - bne .L1657 + bne .L1660 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1657: +.L1660: ldr x0, [x19,16] - cbz x0, .L1658 + cbz x0, .L1661 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR4 - ldr x0, [x0,128] + ldr x0, [x0,1664] ldr w3, [x0] cmp w2, w3 - beq .L1658 + beq .L1661 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1658: +.L1661: ldr x0, [x19,8] - cbz x0, .L1656 + cbz x0, .L1659 add x20, x20, :lo12:.LANCHOR4 ldr w2, [x0] - ldr x0, [x20,120] + ldr x0, [x20,1656] ldr w3, [x0] cmp w2, w3 - beq .L1656 + beq .L1659 ldr w1, [x19,4] mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1656: +.L1659: add w21, w21, 1 add x19, x19, 56 - b .L1675 -.L1674: + b .L1678 +.L1677: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10784,32 +10797,32 @@ FtlLoadFactoryBbt: stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x23, x24, [sp,48] - add x19, x19, 160 + add x19, x19, 1696 adrp x22, .LANCHOR0 - ldr x1, [x0,2072] + ldr x1, [x0,3608] add x21, x22, :lo12:.LANCHOR0 - ldr x24, [x0,2120] - add x21, x21, 2104 + ldr x24, [x0,3656] + add x21, x21, 2616 str x1, [x19,8] mov w23, 0 str x24, [x19,16] mov w25, -1 mov w26, 61664 -.L1678: +.L1681: add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,1978] + ldrh w1, [x0,2490] cmp w23, w1 - bcs .L1687 - ldrh w20, [x0,2022] + bcs .L1690 + ldrh w20, [x0,2534] strh w25, [x21,12] -.L1680: +.L1683: add x0, x22, :lo12:.LANCHOR0 sub w20, w20, #1 uxth w20, w20 - ldrh w0, [x0,2022] + ldrh w0, [x0,2534] sub w1, w0, #16 cmp w20, w1 - ble .L1681 + ble .L1684 madd w0, w23, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -10819,16 +10832,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L1680 + beq .L1683 ldrh w0, [x24] cmp w0, w26 - bne .L1680 + bne .L1683 strh w20, [x21,12] -.L1681: +.L1684: add w23, w23, 1 add x21, x21, 2 - b .L1678 -.L1687: + b .L1681 +.L1690: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10851,12 +10864,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR0 - bne .L1689 - ldrh w19, [x3,2026] - b .L1690 -.L1689: - ldrh w19, [x3,2024] -.L1690: + bne .L1692 + ldrh w19, [x3,2538] + b .L1693 +.L1692: + ldrh w19, [x3,2536] +.L1693: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -10871,12 +10884,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1691 + bne .L1694 mov w22, 0 mov w25, 2 -.L1692: +.L1695: cmp w22, w19 - bgt .L1691 + bgt .L1694 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -10888,21 +10901,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1693 + bne .L1696 ldr w0, [x24,4] cmn w0, #1 - bne .L1693 + bne .L1696 ldr w0, [x29,88] cmn w0, #1 - beq .L1693 + beq .L1696 sub w19, w20, #1 sxth w19, w19 - b .L1692 -.L1693: + b .L1695 +.L1696: add w20, w20, 1 sxth w22, w20 - b .L1692 -.L1691: + b .L1695 +.L1694: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -10926,23 +10939,23 @@ FtlLoadBbt: stp x25, x26, [sp,64] add x19, x23, :lo12:.LANCHOR4 adrp x20, .LANCHOR0 - ldr x1, [x0,2072] - add x19, x19, 160 - ldr x22, [x0,2120] + ldr x1, [x0,3608] + add x19, x19, 1696 + ldr x22, [x0,3656] mov w25, 61649 str x1, [x19,8] str x22, [x19,16] bl FtlBbtMemInit add x0, x20, :lo12:.LANCHOR0 - ldrh w21, [x0,2022] + ldrh w21, [x0,2534] sub w21, w21, #1 uxth w21, w21 -.L1700: +.L1703: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2022] + ldrh w0, [x0,2534] sub w0, w0, #48 cmp w21, w0 - ble .L1703 + ble .L1706 lsl w0, w21, 10 mov w1, 1 str w0, [x19,4] @@ -10951,7 +10964,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - bne .L1701 + bne .L1704 ldr w0, [x19,4] mov w1, 1 mov w2, w1 @@ -10959,135 +10972,135 @@ FtlLoadBbt: str w0, [x19,4] mov x0, x19 bl FlashReadPages -.L1701: +.L1704: ldr w0, [x19] cmn w0, #1 - beq .L1702 + beq .L1705 ldrh w0, [x22] cmp w0, w25 - bne .L1702 + bne .L1705 add x1, x20, :lo12:.LANCHOR0 - add x0, x1, 2104 - strh w21, [x1,2104] + add x0, x1, 2616 + strh w21, [x1,2616] ldr w1, [x22,4] str w1, [x0,8] ldrh w1, [x22,8] strh w1, [x0,4] - b .L1703 -.L1702: + b .L1706 +.L1705: sub w21, w21, #1 uxth w21, w21 - b .L1700 -.L1703: + b .L1703 +.L1706: add x21, x20, :lo12:.LANCHOR0 mov w2, 65535 mov w0, -1 - ldrh w1, [x21,2104] + ldrh w1, [x21,2616] cmp w1, w2 - beq .L1705 - ldrh w1, [x21,2108] + beq .L1708 + ldrh w1, [x21,2620] cmp w1, w2 - beq .L1707 + beq .L1710 add x25, x23, :lo12:.LANCHOR4 lsl w1, w1, 10 - add x0, x25, 160 + add x0, x25, 1696 str w1, [x0,4] mov w1, 1 mov w2, w1 bl FlashReadPages - ldr w0, [x25,160] + ldr w0, [x25,1696] cmn w0, #1 - beq .L1707 + beq .L1710 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1707 + bne .L1710 ldr w0, [x22,4] - ldr w1, [x21,2112] + ldr w1, [x21,2624] cmp w0, w1 - bls .L1707 - str w0, [x21,2112] - ldrh w1, [x21,2108] + bls .L1710 + str w0, [x21,2624] + ldrh w1, [x21,2620] ldrh w0, [x22,8] - strh w1, [x21,2104] - strh w0, [x21,2108] -.L1707: + strh w1, [x21,2616] + strh w0, [x21,2620] +.L1710: add x25, x20, :lo12:.LANCHOR0 mov w1, 1 add x21, x23, :lo12:.LANCHOR4 mov w26, 61649 - add x21, x21, 160 - ldrh w0, [x25,2104] + add x21, x21, 1696 + ldrh w0, [x25,2616] bl FtlGetLastWrittenPage sxth w19, w0 add w0, w0, 1 - strh w0, [x25,2106] -.L1709: - tbnz w19, #31, .L1714 - ldrh w0, [x25,2104] + strh w0, [x25,2618] +.L1712: + tbnz w19, #31, .L1717 + ldrh w0, [x25,2616] mov w1, 1 mov w2, w1 orr w0, w19, w0, lsl 10 str w0, [x21,4] add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,2072] + ldr x0, [x0,3608] str x0, [x21,8] mov x0, x21 bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1710 + beq .L1713 ldrh w0, [x22] cmp w0, w26 - bne .L1710 -.L1714: + bne .L1713 +.L1717: add x1, x20, :lo12:.LANCHOR0 ldrh w0, [x22,10] mov w2, 65535 - strh w0, [x1,2110] + strh w0, [x1,2622] ldrh w0, [x22,12] cmp w0, w2 - bne .L1711 - b .L1712 -.L1710: + bne .L1714 + b .L1715 +.L1713: sub w19, w19, #1 sxth w19, w19 - b .L1709 -.L1711: - ldr w2, [x1,1952] + b .L1712 +.L1714: + ldr w2, [x1,2464] cmp w0, w2 - beq .L1712 - ldrh w1, [x1,1966] + beq .L1715 + ldrh w1, [x1,2478] lsr w1, w1, 2 cmp w0, w1 - bcs .L1712 + bcs .L1715 cmp w2, w1 - bcs .L1712 + bcs .L1715 bl FtlSysBlkNumInit -.L1712: +.L1715: add x20, x20, :lo12:.LANCHOR0 mov x19, 0 - add x21, x20, 2104 + add x21, x20, 2616 add x23, x23, :lo12:.LANCHOR4 -.L1715: - ldrh w0, [x20,1978] +.L1718: + ldrh w0, [x20,2490] mov w1, w19 add x19, x19, 1 cmp w1, w0 - bcs .L1733 + bcs .L1736 add x0, x24, :lo12:.LANCHOR2 - ldr x3, [x23,168] - ldrh w2, [x0,2248] + ldr x3, [x23,1704] + ldrh w2, [x0,3784] 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 .L1715 -.L1733: + b .L1718 +.L1736: mov w0, 0 -.L1705: +.L1708: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11111,48 +11124,48 @@ FtlScanSysBlk: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - strh wzr, [x21,2320] + strh wzr, [x21,3856] mov x24, x22 - ldr w2, [x20,2052] + ldr w2, [x20,2564] mov w22, 65535 - ldr x0, [x21,2232] + ldr x0, [x21,3768] lsl w2, w2, 2 - strh wzr, [x20,2070] + strh wzr, [x20,2582] bl ftl_memset - ldr w2, [x20,2052] + ldr w2, [x20,2564] mov w1, 0 - ldr x0, [x21,2176] + ldr x0, [x21,3712] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,2044] + ldrh w2, [x20,2556] mov w1, 0 - ldr x0, [x21,2200] + ldr x0, [x21,3736] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,2044] + ldrh w2, [x20,2556] mov w1, 0 - ldr x0, [x20,2072] + ldr x0, [x20,2584] lsl w2, w2, 1 bl ftl_memset - add x0, x21, 264 + add x0, x21, 776 mov w1, 255 mov w2, 16 bl ftl_memset - ldrh w21, [x20,1964] -.L1735: + ldrh w21, [x20,2476] +.L1738: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,1966] + ldrh w0, [x1,2478] cmp w0, w21 - bls .L1776 + bls .L1779 mov x27, 0 - ldrh w5, [x1,1956] - ldrh w4, [x1,2036] + ldrh w5, [x1,2468] + ldrh w4, [x1,2548] mov w20, w27 mov x23, x1 -.L1777: +.L1780: cmp w5, w27, uxth - bls .L1810 - add x0, x23, 1984 + bls .L1813 + add x0, x23, 2496 mov w1, w21 str x4, [x29,112] str x5, [x29,120] @@ -11162,19 +11175,19 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr x5, [x29,120] ldr x4, [x29,112] - cbnz w0, .L1736 + cbnz w0, .L1739 add x2, x24, :lo12:.LANCHOR2 mov w0, 56 lsl w28, w28, 10 mov w3, 4 umull x0, w20, w0 - ldr x1, [x2,2048] + ldr x1, [x2,3584] add x1, x1, x0 str w28, [x1,4] - ldr x1, [x2,2048] + ldr x1, [x2,3584] add x0, x1, x0 - ldr x1, [x2,880] - ldr x2, [x2,888] + ldr x1, [x2,1392] + ldr x2, [x2,1400] str x1, [x0,8] mul w1, w20, w4 add w20, w20, 1 @@ -11182,46 +11195,46 @@ FtlScanSysBlk: uxth w20, w20 add x1, x2, x1, sxtw 2 str x1, [x0,16] -.L1736: +.L1739: add x27, x27, 1 - b .L1777 -.L1810: - cbz w20, .L1739 + b .L1780 +.L1813: + cbz w20, .L1742 add x0, x24, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 mov x23, 0 mov w27, -1 mov w28, 61604 - ldr x0, [x0,2048] + ldr x0, [x0,3584] bl FlashReadPages -.L1740: +.L1743: cmp w20, w23, uxth - bls .L1739 + bls .L1742 mov x0, 56 mul x6, x23, x0 add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,2048] + ldr x0, [x0,3584] 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 .L1742 + bne .L1745 mov w7, 16 -.L1741: +.L1744: add x8, x24, :lo12:.LANCHOR2 str x7, [x29,104] str x8, [x29,112] str x6, [x29,120] - ldr x0, [x8,2048] + ldr x0, [x8,3584] add x0, x0, x6 ldr w1, [x0,4] add w1, w1, 1 str w1, [x0,4] mov w1, 1 - ldr x0, [x8,2048] + ldr x0, [x8,3584] mov w2, w1 add x0, x0, x6 bl FlashReadPages @@ -11230,170 +11243,170 @@ FtlScanSysBlk: cmp w0, w22 ldr x6, [x29,120] ldr x7, [x29,104] - ldr x0, [x8,2048] - bne .L1743 + ldr x0, [x8,3584] + bne .L1746 str w27, [x0,x6] - b .L1742 -.L1743: + b .L1745 +.L1746: ldr w0, [x0,x6] cmn w0, #1 - bne .L1742 + bne .L1745 sub w7, w7, #1 uxth w7, w7 - cbnz w7, .L1741 -.L1742: + cbnz w7, .L1744 +.L1745: add x0, x24, :lo12:.LANCHOR2 - ldr x1, [x0,2048] + ldr x1, [x0,3584] ldr w1, [x1,x6] cmn w1, #1 - beq .L1745 - ldr w0, [x0,232] + beq .L1748 + ldr w0, [x0,744] cmn w0, #1 - beq .L1746 + beq .L1749 ldr w1, [x26,4] cmp w0, w1 - bhi .L1747 -.L1746: + bhi .L1750 +.L1749: ldr w0, [x26,4] cmn w0, #1 - beq .L1747 + beq .L1750 add x1, x24, :lo12:.LANCHOR2 add w0, w0, 1 - str w0, [x1,232] -.L1747: + str w0, [x1,744] +.L1750: ldrh w0, [x26] cmp w0, w28 - beq .L1749 - bhi .L1750 + beq .L1752 + bhi .L1753 mov w1, 61574 cmp w0, w1 - bne .L1748 + bne .L1751 add x0, x19, :lo12:.LANCHOR0 add x7, x24, :lo12:.LANCHOR2 - ldrh w6, [x0,2044] - ldrh w0, [x0,2070] + ldrh w6, [x0,2556] + ldrh w0, [x0,2582] sub w2, w6, #1 - ldr x7, [x7,2200] + ldr x7, [x7,3736] sxth x1, w2 sub w2, w2, w0 - b .L1763 -.L1750: + b .L1766 +.L1753: mov w1, 61634 cmp w0, w1 - beq .L1752 + beq .L1755 cmp w0, w22 - bne .L1748 + bne .L1751 mov w0, w25 - b .L1809 -.L1752: + b .L1812 +.L1755: add x0, x19, :lo12:.LANCHOR0 add x7, x24, :lo12:.LANCHOR2 - ldr w6, [x0,2052] - ldrh w0, [x7,2320] - ldr x7, [x7,2232] + ldr w6, [x0,2564] + ldrh w0, [x7,3856] + ldr x7, [x7,3768] uxth w2, w6 sub w1, w2, #1 sub w2, w2, w0 sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1754: +.L1757: cmp w1, w2 - ble .L1811 + ble .L1814 sbfiz x8, x1, 2, 32 ldr w11, [x26,4] sxth x9, w1 ldr w10, [x7,x8] cmp w11, w10 - bls .L1755 + bls .L1758 ldr w2, [x7] - cbnz w2, .L1756 + cbnz w2, .L1759 cmp w0, w6 - beq .L1756 + beq .L1759 add x2, x24, :lo12:.LANCHOR2 add w0, w0, 1 - strh w0, [x2,2320] -.L1756: + strh w0, [x2,3856] +.L1759: mov w0, 0 -.L1757: +.L1760: cmp w0, w1 - beq .L1812 + beq .L1815 add x6, x24, :lo12:.LANCHOR2 sxtw x2, w0 lsl x7, x2, 2 lsl x2, x2, 1 add w0, w0, 1 - ldr x10, [x6,2232] + ldr x10, [x6,3768] sxth w0, w0 add x11, x10, x7 ldr w11, [x11,4] str w11, [x10,x7] - ldr x6, [x6,2176] + ldr x6, [x6,3712] add x7, x6, x2 ldrh w7, [x7,2] strh w7, [x6,x2] - b .L1757 -.L1812: + b .L1760 +.L1815: add x0, x24, :lo12:.LANCHOR2 ldr w6, [x26,4] - ldr x2, [x0,2232] + ldr x2, [x0,3768] str w6, [x2,x8] - ldr x2, [x0,2176] + ldr x2, [x0,3712] strh w25, [x2,x9,lsl 1] - tbz w1, #31, .L1759 - b .L1748 -.L1755: + tbz w1, #31, .L1762 + b .L1751 +.L1758: sub w1, w1, #1 sxth x1, w1 - b .L1754 -.L1811: - tbz w1, #31, .L1792 - b .L1748 -.L1759: + b .L1757 +.L1814: + tbz w1, #31, .L1795 + b .L1751 +.L1762: add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2320] - ldr w2, [x2,2052] + ldrh w0, [x0,3856] + ldr w2, [x2,2564] sub w2, w2, w0 sub w2, w2, #1 cmp w1, w2, sxth - bgt .L1748 -.L1792: + bgt .L1751 +.L1795: add x2, x24, :lo12:.LANCHOR2 add w0, w0, 1 ldr w4, [x26,4] - strh w0, [x2,2320] - ldr x0, [x2,2232] + strh w0, [x2,3856] + ldr x0, [x2,3768] str w4, [x0,x1,lsl 2] - ldr x0, [x2,2176] - b .L1808 -.L1769: + ldr x0, [x2,3712] + b .L1811 +.L1772: sbfiz x8, x1, 2, 32 ldr w11, [x26,4] sxth x9, w1 ldr w10, [x7,x8] cmp w11, w10 - bhi .L1813 + bhi .L1816 sub w1, w1, #1 sxth x1, w1 -.L1763: +.L1766: cmp w1, w2 - bgt .L1769 - b .L1768 -.L1813: + bgt .L1772 + b .L1771 +.L1816: ldr w2, [x7] - cbnz w2, .L1765 + cbnz w2, .L1768 cmp w0, w6 - beq .L1765 + beq .L1768 add x2, x19, :lo12:.LANCHOR0 add w0, w0, 1 - strh w0, [x2,2070] -.L1765: + strh w0, [x2,2582] +.L1768: mov w0, 0 -.L1766: +.L1769: cmp w0, w1 - beq .L1814 + beq .L1817 add x2, x24, :lo12:.LANCHOR2 - ldr x7, [x2,2200] + ldr x7, [x2,3736] sxtw x2, w0 lsl x6, x2, 2 lsl x2, x2, 1 @@ -11403,150 +11416,150 @@ FtlScanSysBlk: ldr w10, [x10,4] str w10, [x7,x6] add x6, x19, :lo12:.LANCHOR0 - ldr x6, [x6,2072] + ldr x6, [x6,2584] add x7, x6, x2 ldrh w7, [x7,2] strh w7, [x6,x2] - b .L1766 -.L1814: + b .L1769 +.L1817: add x0, x24, :lo12:.LANCHOR2 ldr w2, [x26,4] - ldr x0, [x0,2200] + ldr x0, [x0,3736] str w2, [x0,x8] add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2072] + ldr x0, [x0,2584] strh w25, [x0,x9,lsl 1] -.L1768: - tbnz w1, #31, .L1748 +.L1771: + tbnz w1, #31, .L1751 add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,2044] - ldrh w6, [x2,2070] + ldrh w0, [x2,2556] + ldrh w6, [x2,2582] sub w0, w0, #1 sub w0, w0, w6 cmp w1, w0, sxth - bgt .L1748 + bgt .L1751 add x0, x24, :lo12:.LANCHOR2 add w6, w6, 1 ldr w4, [x26,4] - strh w6, [x2,2070] - ldr x0, [x0,2200] + strh w6, [x2,2582] + ldr x0, [x0,3736] str w4, [x0,x1,lsl 2] - ldr x0, [x2,2072] -.L1808: + ldr x0, [x2,2584] +.L1811: strh w25, [x0,x1,lsl 1] - b .L1748 -.L1749: + b .L1751 +.L1752: add x0, x24, :lo12:.LANCHOR2 - add x1, x0, 264 - ldrh w2, [x0,264] + add x1, x0, 776 + ldrh w2, [x0,776] cmp w2, w22 - bne .L1770 - strh w25, [x0,264] + bne .L1773 + strh w25, [x0,776] ldr w0, [x26,4] str w0, [x1,8] - b .L1748 -.L1770: + b .L1751 +.L1773: ldrh w0, [x1,4] cmp w0, w22 - beq .L1771 + beq .L1774 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1771: +.L1774: add x1, x24, :lo12:.LANCHOR2 ldr w2, [x26,4] - add x0, x1, 264 + add x0, x1, 776 ldr w6, [x0,8] cmp w6, w2 - bcs .L1772 - ldrh w2, [x1,264] + bcs .L1775 + ldrh w2, [x1,776] strh w2, [x0,4] - strh w25, [x1,264] + strh w25, [x1,776] ldr w1, [x26,4] str w1, [x0,8] - b .L1748 -.L1772: + b .L1751 +.L1775: strh w25, [x0,4] - b .L1748 -.L1745: + b .L1751 +.L1748: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,196] mov w0, w25 - cbz w1, .L1773 -.L1809: + cbz w1, .L1776 +.L1812: mov w1, 0 -.L1773: +.L1776: bl FtlFreeSysBlkQueueIn -.L1748: +.L1751: add x23, x23, 1 - b .L1740 -.L1739: + b .L1743 +.L1742: add w21, w21, 1 uxth w21, w21 - b .L1735 -.L1776: + b .L1738 +.L1779: add x4, x24, :lo12:.LANCHOR2 - ldr x2, [x4,2176] + ldr x2, [x4,3712] ldrh w0, [x2] - cbz w0, .L1778 -.L1781: - add x1, x19, :lo12:.LANCHOR0 - ldr x2, [x1,2072] - ldrh w0, [x2] - cbz w0, .L1779 - b .L1802 -.L1778: - ldrh w4, [x4,2320] - cbz w4, .L1781 - ldr w1, [x1,2052] -.L1782: - cmp w0, w1 - bcs .L1781 - ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1783 - mov w7, w0 + cbz w0, .L1781 .L1784: add x1, x19, :lo12:.LANCHOR0 - ldr w1, [x1,2052] + ldr x2, [x1,2584] + ldrh w0, [x2] + cbz w0, .L1782 + b .L1805 +.L1781: + ldrh w4, [x4,3856] + cbz w4, .L1784 + ldr w1, [x1,2564] +.L1785: cmp w0, w1 - bcs .L1781 + bcs .L1784 + ldrh w4, [x2,w0,sxtw 1] + cbz w4, .L1786 + mov w7, w0 +.L1787: + add x1, x19, :lo12:.LANCHOR0 + ldr w1, [x1,2564] + cmp w0, w1 + bcs .L1784 add x2, x24, :lo12:.LANCHOR2 sxtw x6, w0 sub w1, w0, w7 lsl x4, x6, 1 add w0, w0, 1 - ldr x5, [x2,2176] + ldr x5, [x2,3712] sxtw x1, w1 sxth w0, w0 ldrh w8, [x5,x4] strh w8, [x5,x1,lsl 1] - ldr x5, [x2,2232] + ldr x5, [x2,3768] ldr w6, [x5,x6,lsl 2] str w6, [x5,x1,lsl 2] - ldr x1, [x2,2176] + ldr x1, [x2,3712] strh wzr, [x1,x4] - b .L1784 -.L1783: + b .L1787 +.L1786: add w0, w0, 1 sxth w0, w0 - b .L1782 -.L1779: - ldrh w4, [x1,2070] - cbz w4, .L1802 - ldrh w1, [x1,2044] -.L1787: + b .L1785 +.L1782: + ldrh w4, [x1,2582] + cbz w4, .L1805 + ldrh w1, [x1,2556] +.L1790: cmp w0, w1 mov w7, w0 - bge .L1802 + bge .L1805 ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1788 -.L1789: + cbz w4, .L1791 +.L1792: add x2, x19, :lo12:.LANCHOR0 - ldrh w1, [x2,2044] + ldrh w1, [x2,2556] cmp w0, w1 - bge .L1802 + bge .L1805 sxtw x6, w0 sub w1, w0, w7 - ldr x5, [x2,2072] + ldr x5, [x2,2584] lsl x4, x6, 1 sxtw x1, w1 add w0, w0, 1 @@ -11554,17 +11567,17 @@ FtlScanSysBlk: sxth w0, w0 strh w8, [x5,x1,lsl 1] add x5, x24, :lo12:.LANCHOR2 - ldr x5, [x5,2200] + ldr x5, [x5,3736] ldr w6, [x5,x6,lsl 2] str w6, [x5,x1,lsl 2] - ldr x1, [x2,2072] + ldr x1, [x2,2584] strh wzr, [x1,x4] - b .L1789 -.L1788: + b .L1792 +.L1791: add w0, w0, 1 sxth w0, w0 - b .L1787 -.L1802: + b .L1790 +.L1805: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11578,7 +11591,7 @@ FtlScanSysBlk: .global FtlLoadSysInfo .type FtlLoadSysInfo, %function FtlLoadSysInfo: - sub sp, sp, #128 + sub sp, sp, #144 mov w1, 0 stp x29, x30, [sp,16] add x29, sp, 16 @@ -11589,117 +11602,115 @@ FtlLoadSysInfo: stp x19, x20, [sp,32] add x24, x21, :lo12:.LANCHOR2 add x19, x23, :lo12:.LANCHOR4 + add x19, x19, 1696 + adrp x20, .LANCHOR0 stp x25, x26, [sp,80] stp x27, x28, [sp,96] - add x19, x19, 160 - adrp x20, .LANCHOR0 - ldr x0, [x24,2072] - add x25, x24, 264 + ldr x0, [x24,3608] + add x25, x24, 776 str x0, [x19,8] - ldr x0, [x24,2120] + ldr x0, [x24,3656] str x0, [x19,16] add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,1964] - ldr x0, [x21,#:lo12:.LANCHOR2] + ldrh w2, [x0,2476] + ldr x0, [x24,512] lsl w2, w2, 1 bl ftl_memset - str x23, [x29,104] - ldrh w0, [x24,264] + str x23, [x29,120] + ldrh w0, [x24,776] mov w1, 65535 cmp w0, w1 - bne .L1816 -.L1827: + bne .L1819 +.L1830: mov w19, -1 - b .L1817 -.L1816: + b .L1820 +.L1819: mov w1, 1 adrp x26, .LC106 - mov x28, x24 add x26, x26, :lo12:.LC106 bl FtlGetLastWrittenPage - ldrsh w23, [x24,264] + ldrsh w23, [x24,776] sxth w22, w0 add w0, w0, 1 strh w0, [x25,2] -.L1818: - tbnz w22, #31, .L1826 +.L1821: + tbnz w22, #31, .L1829 orr w0, w22, w23, lsl 10 mov w1, 1 str w0, [x19,4] mov w2, w1 - ldr x0, [x28,2072] + ldr x0, [x24,3608] add x27, x20, :lo12:.LANCHOR0 str x0, [x19,8] mov x0, x19 bl FlashReadPages ldrb w0, [x27,72] - cbz w0, .L1819 + cbz w0, .L1822 ldr x25, [x19,16] ldr w7, [x25,12] - cbz w7, .L1819 - ldr x24, [x19,8] - ldrh w1, [x27,2034] - mov x0, x24 - str x7, [x29,96] + cbz w7, .L1822 + ldr x2, [x19,8] + ldrh w1, [x27,2546] + mov x0, x2 + str x7, [x29,104] + str x2, [x29,112] bl js_hash - ldr x7, [x29,96] + ldr x7, [x29,104] cmp w7, w0 - beq .L1819 - cbnz w22, .L1820 - ldrh w0, [x28,268] - add x8, x28, 264 + beq .L1822 + ldr x2, [x29,112] + cbnz w22, .L1823 + ldrh w0, [x24,780] cmp w23, w0 - beq .L1820 - ldr w0, [x24] - ldrh w1, [x28,264] + beq .L1823 + ldr w0, [x2] str w0, [sp] mov x0, x26 - str x8, [x29,96] + ldrh w1, [x24,776] ldr w2, [x19] ldr w3, [x19,4] ldr w4, [x25] ldr w5, [x25,4] ldr w6, [x25,8] bl printk - ldrh w22, [x27,2026] - ldr x8, [x29,96] - ldrsh w23, [x8,4] - b .L1822 -.L1820: + ldrsh w23, [x24,780] + ldrh w22, [x27,2538] + b .L1825 +.L1823: mov w0, -1 str w0, [x19] -.L1819: +.L1822: ldr w0, [x19] cmn w0, #1 - beq .L1822 - ldr x0, [x28,2072] + beq .L1825 + ldr x0, [x24,3608] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1822 - ldr x0, [x28,2120] + bne .L1825 + ldr x0, [x24,3656] ldrh w1, [x0] mov w0, 61604 cmp w1, w0 - bne .L1822 -.L1826: - ldr x0, [x29,104] + bne .L1825 +.L1829: + ldr x0, [x29,120] add x24, x21, :lo12:.LANCHOR2 add x22, x20, :lo12:.LANCHOR0 mov w2, 48 add x19, x0, :lo12:.LANCHOR4 - sub x0, x24, #64 - add x19, x19, 160 + add x0, x24, 448 + add x19, x19, 1696 ldr x1, [x19,8] bl ftl_memcpy ldr x1, [x19,8] - ldrh w2, [x22,1964] - ldr x0, [x21,#:lo12:.LANCHOR2] + ldrh w2, [x22,2476] + ldr x0, [x24,512] add x1, x1, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x22,1964] + ldrh w2, [x22,2476] ldr x3, [x19,8] ldr x0, [x20,#:lo12:.LANCHOR0] uxth x1, w2 @@ -11709,140 +11720,140 @@ FtlLoadSysInfo: lsr x1, x1, 1 add x1, x3, x1, lsl 2 bl ftl_memcpy - ldrh w0, [x22,2068] - cbz w0, .L1824 - ldrh w0, [x22,1964] + ldrh w0, [x22,2580] + cbz w0, .L1827 + ldrh w0, [x22,2476] ldr x3, [x19,8] lsr w1, w0, 3 - ldrh w2, [x22,2060] + ldrh w2, [x22,2572] add w1, w1, w0, lsl 1 - ldr x0, [x24,2224] + ldr x0, [x24,3760] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L1824 -.L1822: + b .L1827 +.L1825: sub w22, w22, #1 sxth w22, w22 - b .L1818 -.L1824: + b .L1821 +.L1827: add x0, x21, :lo12:.LANCHOR2 mov w1, 19539 movk w1, 0x4654, lsl 16 - ldr w2, [x0,-64] + ldr w2, [x0,448] cmp w2, w1 - bne .L1827 + bne .L1830 add x1, x20, :lo12:.LANCHOR0 - ldrb w3, [x0,-54] - ldrh w4, [x0,-56] - strh w4, [x0,270] - ldrh w2, [x1,1978] + ldrb w3, [x0,458] + ldrh w5, [x0,456] + strh w5, [x0,782] + ldrh w2, [x1,2490] cmp w3, w2 - bne .L1827 - ldrh w3, [x1,2024] - ldr x2, [x29,104] - strh wzr, [x0,282] - mul w3, w3, w4 + bne .L1830 + ldrh w3, [x1,2536] + ldr x2, [x29,120] + strh wzr, [x0,794] + mul w3, w3, w5 add x23, x2, :lo12:.LANCHOR4 - ldrh w2, [x1,2030] - str w3, [x1,2096] - strb wzr, [x0,286] + ldrh w2, [x1,2542] + str w3, [x1,2608] + strb wzr, [x0,798] mul w3, w3, w2 - str w3, [x1,2064] - ldrh w2, [x1,2110] - ldr w3, [x1,1968] - ldrh w1, [x1,1956] + str w3, [x1,2576] + ldrh w2, [x1,2622] + ldr w3, [x1,2480] + ldrh w1, [x1,2468] sub w2, w3, w2 - str w4, [x23,216] - sub w2, w2, w4 - ldrh w3, [x0,-50] - strh w3, [x0,40] + str w5, [x23,1752] + sub w2, w2, w5 + ldrh w3, [x0,462] + strh w3, [x0,552] udiv w1, w2, w1 - ldrh w2, [x0,-48] - strh w1, [x0,260] - lsr w4, w2, 6 + ldrh w2, [x0,464] + strh w1, [x0,772] + lsr w5, w2, 6 and w2, w2, 63 - strb w2, [x0,46] - ldrb w2, [x0,-53] - strb w2, [x0,48] + strb w2, [x0,558] + ldrb w2, [x0,459] + strb w2, [x0,560] mov w2, -1 - strh w2, [x0,280] - ldrh w2, [x0,-46] - strh w2, [x0,88] - ldrh w2, [x0,-44] - strh w4, [x0,42] - lsr w4, w2, 6 + 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,94] - ldrb w2, [x0,-52] - strb w2, [x0,96] - ldrh w2, [x0,-42] - strh w2, [x0,136] - ldrh w2, [x0,-40] - strh w4, [x0,90] - lsr w4, w2, 6 + 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] + lsr w5, w2, 6 and w2, w2, 63 - strb wzr, [x0,288] - strh w4, [x0,138] - strb w2, [x0,142] - ldrb w2, [x0,-51] - ldr w1, [x0,-32] - strb w2, [x0,144] - str w1, [x0,240] - ldr w2, [x0,232] - ldr w1, [x0,-24] - str wzr, [x0,220] - str wzr, [x0,208] + 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] + ldr w1, [x0,488] + str wzr, [x0,732] + str wzr, [x0,720] cmp w1, w2 - str wzr, [x0,200] - str wzr, [x0,216] - str wzr, [x0,244] - str wzr, [x0,252] - str wzr, [x0,212] - bls .L1828 - str w1, [x0,232] -.L1828: + str wzr, [x0,712] + 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,-28] - ldr w2, [x0,236] + ldr w1, [x0,484] + ldr w2, [x0,748] cmp w1, w2 - bls .L1829 - str w1, [x0,236] -.L1829: + bls .L1832 + str w1, [x0,748] +.L1832: mov w0, 65535 cmp w3, w0 - beq .L1830 + beq .L1833 add x0, x21, :lo12:.LANCHOR2 - add x0, x0, 40 + add x0, x0, 552 bl make_superblock -.L1830: +.L1833: add x1, x21, :lo12:.LANCHOR2 - add x0, x1, 88 - ldrh w2, [x1,88] + add x0, x1, 600 + ldrh w2, [x1,600] mov w1, 65535 cmp w2, w1 - beq .L1831 + beq .L1834 bl make_superblock -.L1831: +.L1834: add x1, x21, :lo12:.LANCHOR2 - add x0, x1, 136 - ldrh w2, [x1,136] + add x0, x1, 648 + ldrh w2, [x1,648] mov w1, 65535 cmp w2, w1 - beq .L1832 + beq .L1835 bl make_superblock -.L1832: +.L1835: add x21, x21, :lo12:.LANCHOR2 mov w1, 65535 - add x0, x21, 280 + add x0, x21, 792 mov w19, 0 - ldrh w2, [x21,280] + ldrh w2, [x21,792] cmp w2, w1 - beq .L1817 + beq .L1820 bl make_superblock -.L1817: +.L1820: sub sp, x29, #16 mov w0, w19 ldp x19, x20, [sp,32] @@ -11851,7 +11862,7 @@ FtlLoadSysInfo: ldp x25, x26, [sp,80] ldp x27, x28, [sp,96] ldp x29, x30, [sp,16] - add sp, sp, 128 + add sp, sp, 144 ret .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 @@ -11878,69 +11889,70 @@ FtlDumpBlockInfo: add x1, x1, 16 add x0, x0, :lo12:.LC107 adrp x21, .LANCHOR2 - ldrh w24, [x19,2024] + ldrh w24, [x19,2536] bl printk + add x0, x21, :lo12:.LANCHOR2 ubfiz x2, x23, 1, 16 - adrp x0, .LC108 - ldr x3, [x21,#:lo12:.LANCHOR2] - add x0, x0, :lo12:.LC108 mov w1, w23 + ldr x3, [x0,512] + adrp x0, .LC108 + add x0, x0, :lo12:.LC108 ldrh w2, [x3,x2] bl printk strh w23, [x29,112] add x0, x29, 112 bl make_superblock - cbnz w25, .L1852 + cbnz w25, .L1855 ldrb w0, [x19,196] - cbz w0, .L1852 + cbz w0, .L1855 mov w0, w23 bl ftl_get_blk_mode cmp w0, 1 mov w23, w0 - bne .L1844 - ldrh w24, [x19,2026] - b .L1844 -.L1852: + bne .L1847 + ldrh w24, [x19,2538] + b .L1847 +.L1855: mov w23, 0 -.L1844: +.L1847: add x3, x22, :lo12:.LANCHOR0 adrp x0, .LC109 adrp x25, .LC110 add x0, x0, :lo12:.LC109 mov w1, w23 mov w2, w24 - ldrh w3, [x3,2024] + ldrh w3, [x3,2536] mov w20, 0 mov w27, 65535 mov w28, 56 mov w26, 4 add x25, x25, :lo12:.LC110 bl printk -.L1845: +.L1848: add x0, x22, :lo12:.LANCHOR0 - ldrh w5, [x0,1956] - ldrh w6, [x0,2034] - ldrh w7, [x0,2036] + ldrh w5, [x0,2468] + ldrh w6, [x0,2546] + ldrh w7, [x0,2548] mov x0, 0 mov w19, w0 -.L1846: +.L1849: cmp w5, w0, uxth - bls .L1860 + bls .L1863 add x1, x29, 112 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w27 - beq .L1847 + beq .L1850 add x3, x21, :lo12:.LANCHOR2 orr w2, w20, w2, lsl 10 umull x1, w19, w28 - ldr x4, [x3,2048] + ldr x4, [x3,3584] add x4, x4, x1 str w2, [x4,4] - ldr x2, [x3,2048] - ldr x4, [x3,880] + ldr x2, [x3,3584] + ldr x4, [x3,1392] add x1, x2, x1 - ldr x3, [x3,888] + ldr x3, [x3,1400] mul w2, w19, w6 sdiv w2, w2, w26 add x2, x4, x2, sxtw 2 @@ -11951,25 +11963,25 @@ FtlDumpBlockInfo: sdiv w2, w2, w26 add x2, x3, x2, sxtw 2 str x2, [x1,16] -.L1847: +.L1850: add x0, x0, 1 - b .L1846 -.L1860: + b .L1849 +.L1863: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, w23 - ldr x0, [x0,2048] + ldr x0, [x0,3584] bl FlashReadPages mov x8, 0 mov x9, 56 -.L1849: +.L1852: cmp w19, w8, uxth - bls .L1861 + bls .L1864 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,112] mul x2, x8, x9 str x9, [x29,96] - ldr x4, [x0,2048] + ldr x4, [x0,3584] str x8, [x29,104] add x3, x4, x2 ldr x0, [x3,8] @@ -11989,13 +12001,13 @@ FtlDumpBlockInfo: ldr x8, [x29,104] ldr x9, [x29,96] add x8, x8, 1 - b .L1849 -.L1861: + b .L1852 +.L1864: add w20, w20, 1 uxth w20, w20 cmp w20, w24 - bne .L1845 -.L1851: + bne .L1848 +.L1854: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -12031,51 +12043,52 @@ FtlScanAllBlock: add x24, x24, :lo12:.LC113 stp x25, x26, [sp,80] bl printk -.L1863: +.L1866: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,1966] + ldrh w0, [x19,2478] cmp w0, w20 - bls .L1872 + bls .L1875 mov w0, w20 - adrp x21, .LANCHOR2 strh w20, [x29,80] + adrp x21, .LANCHOR2 bl ftl_get_blk_mode mov w3, w0 - ldr x4, [x21,#:lo12:.LANCHOR2] + add x0, x21, :lo12:.LANCHOR2 ubfiz x2, x20, 1, 16 mov w1, w20 + ldr x4, [x0,512] mov x0, x22 ldrh w2, [x4,x2] bl printk add x0, x29, 80 bl make_superblock mov x1, 0 - ldrh w6, [x19,1956] - ldrh w7, [x19,2034] + ldrh w6, [x19,2468] + ldrh w7, [x19,2546] mov w9, 65535 - ldrh w8, [x19,2036] + ldrh w8, [x19,2548] mov w10, 56 mov w19, w1 mov w5, 4 -.L1864: +.L1867: cmp w6, w1, uxth - bls .L1873 + bls .L1876 add x0, x29, 80 add x0, x0, x1, lsl 1 ldrh w2, [x0,16] cmp w2, w9 - beq .L1865 + beq .L1868 add x3, x21, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x0, w19, w10 - ldr x4, [x3,2048] + ldr x4, [x3,3584] add x4, x4, x0 str w2, [x4,4] - ldr x2, [x3,2048] - ldr x4, [x3,880] + ldr x2, [x3,3584] + ldr x4, [x3,1392] add x2, x2, x0 - ldr x3, [x3,888] + ldr x3, [x3,1400] mul w0, w19, w7 sdiv w0, w0, w5 add x0, x4, x0, sxtw 2 @@ -12086,22 +12099,22 @@ FtlScanAllBlock: sdiv w0, w0, w5 add x0, x3, x0, sxtw 2 str x0, [x2,16] -.L1865: +.L1868: add x1, x1, 1 - b .L1864 -.L1873: + b .L1867 +.L1876: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, 0 mov x25, 0 mov x26, 56 - ldr x0, [x0,2048] + ldr x0, [x0,3584] bl FlashReadPages -.L1867: +.L1870: add x0, x21, :lo12:.LANCHOR2 cmp w19, w25, uxth - bls .L1874 - ldr x4, [x0,2048] + bls .L1877 + ldr x4, [x0,3584] mul x2, x25, x26 ldrh w1, [x29,80] add x25, x25, 1 @@ -12120,22 +12133,22 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L1867 -.L1874: - ldr x0, [x0,2048] + b .L1870 +.L1877: + ldr x0, [x0,3584] mov w1, w19 mov w2, 1 mov x25, 0 mov x26, 56 bl FlashReadPages -.L1869: +.L1872: cmp w19, w25, uxth - bls .L1875 + bls .L1878 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,80] mul x2, x25, x26 add x25, x25, 1 - ldr x4, [x0,2048] + ldr x4, [x0,3584] add x3, x4, x2 ldr x0, [x3,8] ldr x7, [x3,16] @@ -12151,12 +12164,12 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L1869 -.L1875: + b .L1872 +.L1878: add w20, w20, 1 uxth w20, w20 - b .L1863 -.L1872: + b .L1866 +.L1875: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -12185,33 +12198,33 @@ ftl_scan_all_ppa: stp x23, x24, [sp,64] add x19, x19, :lo12:.LANCHOR4 adrp x23, .LC115 - ldrh w1, [x2,2022] + ldrh w1, [x2,2534] mov w22, 0 - ldrh w2, [x2,2024] - add x19, x19, 160 + ldrh w2, [x2,2536] + add x19, x19, 1696 add x23, x23, :lo12:.LC115 bl printk -.L1877: +.L1880: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2022] + ldrh w0, [x0,2534] cmp w22, w0 - bcs .L1879 + bcs .L1882 lsl w25, w22, 10 mov w21, 0 adrp x24, .LANCHOR2 -.L1880: +.L1883: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] + ldrh w0, [x0,2536] cmp w21, w0 - bcs .L1881 + bcs .L1884 add w0, w21, w25 str w0, [x19,4] add x0, x24, :lo12:.LANCHOR2 mov w2, 0 str wzr, [x19] add w21, w21, 1 - ldr x1, [x0,2072] - ldr x0, [x0,2120] + ldr x1, [x0,3608] + ldr x0, [x0,3656] str x1, [x19,8] mov w1, 1 str x0, [x19,16] @@ -12230,11 +12243,11 @@ ftl_scan_all_ppa: ldr w6, [x6,12] ldr w7, [x7] bl printk - b .L1880 -.L1881: + b .L1883 +.L1884: add w22, w22, 1 - b .L1877 -.L1879: + b .L1880 +.L1882: adrp x1, .LANCHOR3 adrp x0, .LC116 add x1, x1, :lo12:.LANCHOR3 @@ -12268,23 +12281,23 @@ FlashProgPages: stp x27, x28, [sp,80] str w6, [x29,124] mov x19, x0 - ldr x5, [x4,744] + ldr x5, [x4,1256] mov w25, w1 ldrb w4, [x4,72] mov w23, w2 mov w22, 0 ldrb w5, [x5,19] - cbz w4, .L1883 + cbz w4, .L1886 bl FlashProgSlc2KPages - b .L1884 -.L1883: + b .L1887 +.L1886: sub w0, w5, #1 mov w27, 56 mov x28, 24 str w0, [x29,116] -.L1935: +.L1938: cmp w22, w25 - bcs .L1936 + bcs .L1939 umull x20, w22, w27 sub w4, w25, w22 add x2, x29, 128 @@ -12296,61 +12309,61 @@ FlashProgPages: mov w24, w0 add x2, x21, :lo12:.LANCHOR0 ldr w0, [x29,132] - ldrb w4, [x2,1845] + ldrb w4, [x2,2357] cmp w0, w4 - bcc .L1885 + bcc .L1888 mov w0, -1 str w0, [x19,x20] - b .L1886 -.L1885: - ldrb w1, [x2,1945] - add x3, x2, 1652 + b .L1889 +.L1888: + ldrb w1, [x2,2457] + add x3, x2, 2164 cmp w1, wzr uxtw x1, w0 csel w24, w24, wzr, ne madd x0, x1, x28, x3 ldr x0, [x0,8] - cbz x0, .L1888 + cbz x0, .L1891 cmp w4, 1 - bne .L1889 + bne .L1892 ldr x0, [x2,128] bl NandcIqrWaitFlashReady -.L1889: +.L1892: ldrb w0, [x29,132] bl FlashWaitCmdDone -.L1888: +.L1891: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,132] - add x0, x0, 1652 + add x0, x0, 2164 ldr w1, [x29,128] madd x0, x2, x28, x0 str x26, [x0,8] str xzr, [x0,16] str w1, [x0,4] - cbz w24, .L1890 + cbz w24, .L1893 add w1, w22, 1 umull x1, w1, w27 add x1, x19, x1 str x1, [x0,16] -.L1890: +.L1893: add x1, x21, :lo12:.LANCHOR0 add x0, x1, x2 madd x2, x2, x28, x1 - ldrb w20, [x0,1848] - ldrb w0, [x1,1845] - strb w20, [x2,1652] + ldrb w20, [x0,2360] + ldrb w0, [x1,2357] + strb w20, [x2,2164] cmp w0, 1 - bne .L1891 + bne .L1894 mov w0, w20 bl NandcWaitFlashReady - b .L1892 -.L1891: + b .L1895 +.L1894: mov w0, w20 str x1, [x29,104] bl NandcFlashCs ldr x1, [x29,104] ldr w0, [x29,132] - add x1, x1, 712 + add x1, x1, 1224 ldr w0, [x1,x0,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -12359,34 +12372,34 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs -.L1892: +.L1895: ldr w0, [x29,116] cmp w0, 7 - bhi .L1893 + bhi .L1896 add x2, x21, :lo12:.LANCHOR0 add x0, x2, x20, sxtw - ldrb w0, [x0,1616] - cbz w0, .L1893 - ldrb w1, [x2,761] + ldrb w0, [x0,2128] + cbz w0, .L1896 + ldrb w1, [x2,1273] mov w0, w20 - add x2, x2, 764 + add x2, x2, 1276 mov w3, 0 bl HynixSetRRPara -.L1893: +.L1896: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1894 + bne .L1897 add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbz w0, .L1894 + cbz w0, .L1897 mov w0, w20 bl flash_enter_slc_mode - b .L1895 -.L1894: + b .L1898 +.L1897: mov w0, w20 bl flash_exit_slc_mode -.L1895: +.L1898: ldr w1, [x29,128] mov w0, w20 bl FlashProgFirstCmd @@ -12396,13 +12409,13 @@ FlashProgPages: mov w1, 1 ldr x4, [x26,16] bl NandcXferData - cbz w24, .L1896 + cbz w24, .L1899 ldr w1, [x29,128] mov w0, w20 add x26, x21, :lo12:.LANCHOR0 bl FlashProgDpFirstCmd ldr w1, [x29,132] - add x0, x26, 712 + add x0, x26, 1224 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -12423,46 +12436,46 @@ FlashProgPages: ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData -.L1896: +.L1899: ldr w1, [x29,128] mov w0, w20 add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1886: +.L1889: add w22, w22, 1 - b .L1935 -.L1936: + b .L1938 +.L1939: add x21, x21, :lo12:.LANCHOR0 mov x20, 0 - add x22, x21, 1652 + add x22, x21, 2164 mov x24, 24 ldr x0, [x21,128] bl NandcIqrWaitFlashReady -.L1898: - ldrb w0, [x21,1845] +.L1901: + ldrb w0, [x21,2357] cmp w0, w20 - bls .L1937 + bls .L1940 mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1899 + bne .L1902 ldrb w0, [x21,196] - cbz w0, .L1899 + cbz w0, .L1902 mul x0, x20, x24 ldrb w0, [x0,x22] bl flash_exit_slc_mode -.L1899: +.L1902: add x20, x20, 1 - b .L1898 -.L1937: + b .L1901 +.L1940: ldr w0, [x29,120] - cbnz w0, .L1901 -.L1909: + cbnz w0, .L1904 +.L1912: mov w0, 0 - b .L1884 -.L1901: + b .L1887 +.L1904: adrp x24, .LC105 adrp x26, .LC104 adrp x27, .LC103 @@ -12470,18 +12483,18 @@ FlashProgPages: add x24, x24, :lo12:.LC105 add x26, x26, :lo12:.LC104 add x27, x27, :lo12:.LC103 -.L1902: +.L1905: cmp w21, w25 - beq .L1909 + beq .L1912 ldr w0, [x19] cmn w0, #1 - bne .L1903 + bne .L1906 adrp x0, .LC102 ldr w1, [x19,4] add x0, x0, :lo12:.LC102 bl printk - b .L1904 -.L1903: + b .L1907 +.L1906: adrp x20, .LANCHOR4 sub w4, w25, w21 add x22, x20, :lo12:.LANCHOR4 @@ -12490,62 +12503,62 @@ FlashProgPages: add x2, x29, 128 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,120] + ldr x0, [x22,1656] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,128] + ldr x0, [x22,1664] str wzr, [x0] add x0, x29, 136 bl memcpy - ldr x0, [x22,120] + ldr x0, [x22,1656] mov w1, 1 str x0, [x29,144] mov w2, w23 - ldr x0, [x22,128] + ldr x0, [x22,1664] str x0, [x29,152] add x0, x29, 136 bl FlashReadPages ldr w22, [x29,136] cmn w22, #1 - bne .L1905 + bne .L1908 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1905: +.L1908: ldr x0, [x19,16] - cbz x0, .L1906 + cbz x0, .L1909 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR4 - ldr x0, [x0,128] + ldr x0, [x0,1664] ldr w3, [x0] cmp w2, w3 - beq .L1906 + beq .L1909 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1906: +.L1909: ldr x0, [x19,8] - cbz x0, .L1904 + cbz x0, .L1907 add x20, x20, :lo12:.LANCHOR4 ldr w2, [x0] - ldr x0, [x20,120] + ldr x0, [x20,1656] ldr w3, [x0] cmp w2, w3 - beq .L1904 + beq .L1907 ldr w1, [x19,4] mov x0, x24 bl printk mov w0, -1 str w0, [x19] -.L1904: +.L1907: add w21, w21, 1 add x19, x19, 56 - b .L1902 -.L1884: + b .L1905 +.L1887: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12555,8 +12568,8 @@ FlashProgPages: ret .size FlashProgPages, .-FlashProgPages .align 2 - .type FlashTestBlk.part.17, %function -FlashTestBlk.part.17: + .type FlashTestBlk.part.18, %function +FlashTestBlk.part.18: stp x29, x30, [sp, -160]! mov w1, 165 mov w2, 32 @@ -12566,12 +12579,12 @@ FlashTestBlk.part.17: uxth w20, w0 add x19, x19, :lo12:.LANCHOR4 lsl w20, w20, 10 - ldr x0, [x19,104] + ldr x0, [x19,1640] str x0, [x29,48] add x0, x29, 96 str x0, [x29,56] bl ftl_memset - ldr x0, [x19,104] + ldr x0, [x19,1640] mov w1, 90 mov w2, 8 bl ftl_memset @@ -12596,22 +12609,22 @@ FlashTestBlk.part.17: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 160 ret - .size FlashTestBlk.part.17, .-FlashTestBlk.part.17 + .size FlashTestBlk.part.18, .-FlashTestBlk.part.18 .align 2 .global FlashTestBlk .type FlashTestBlk, %function FlashTestBlk: uxth w1, w0 - adrp x0, .LANCHOR4+92 + adrp x0, .LANCHOR4+1628 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x0,#:lo12:.LANCHOR4+92] + ldr w2, [x0,#:lo12:.LANCHOR4+1628] mov w0, 0 cmp w1, w2 - bcc .L1940 + bcc .L1943 mov w0, w1 - bl FlashTestBlk.part.17 -.L1940: + bl FlashTestBlk.part.18 +.L1943: ldp x29, x30, [sp], 16 ret .size FlashTestBlk, .-FlashTestBlk @@ -12622,22 +12635,22 @@ FlashMakeFactorBbt: stp x29, x30, [sp, -224]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR4 - mov w20, 0 - add x0, x19, :lo12:.LANCHOR4 + adrp x20, .LANCHOR4 + mov w19, 0 + add x0, x20, :lo12:.LANCHOR4 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] adrp x21, .LANCHOR0 - ldr x0, [x0,112] + ldr x0, [x0,1648] str x0, [x29,136] add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x0,180] ldrh w23, [x0,182] ldrh w26, [x0,76] mul w23, w1, w23 - ldr x1, [x0,744] + ldr x1, [x0,1256] ldrb w0, [x0,72] uxth w23, w23 ldrb w1, [x1,24] @@ -12649,10 +12662,10 @@ FlashMakeFactorBbt: csel w26, w1, w26, eq mov w1, 1 bl printk - add x0, x19, :lo12:.LANCHOR4 + add x0, x20, :lo12:.LANCHOR4 mov w1, 0 mov w2, 4096 - ldr x0, [x0,112] + ldr x0, [x0,1648] bl ftl_memset lsr w0, w23, 4 str w0, [x29,128] @@ -12666,42 +12679,42 @@ FlashMakeFactorBbt: sub w0, w23, #1 uxth w0, w0 str w0, [x29,124] -.L1944: +.L1947: add x24, x21, :lo12:.LANCHOR0 - ldrb w0, [x24,1845] - cmp w0, w20 - bls .L1995 - sxtw x25, w20 - add x0, x19, :lo12:.LANCHOR4 - add x1, x0, x25, lsl 1 - ldrh w22, [x1,144] - cbnz w22, .L1974 + ldrb w0, [x24,2357] + cmp w0, w19 + bls .L1998 + add x0, x20, :lo12:.LANCHOR4 + sxtw x25, w19 + add x1, x0, 1680 + ldrh w22, [x1,w19,sxtw 1] + cbnz w22, .L1977 ldrh w2, [x24,188] mov w1, w22 - ldr x0, [x0,56] + ldr x0, [x0,1592] add x24, x24, x25 lsl w2, w2, 9 mov w27, w22 bl ftl_memset - ldrb w28, [x24,1848] + ldrb w28, [x24,2360] ldr w0, [x29,132] mov w24, w22 and w0, w0, 4 uxtb w0, w0 str w0, [x29,120] -.L1946: +.L1949: uxth w0, w27 str w0, [x29,144] cmp w0, w23 - bcs .L1956 + bcs .L1959 mov w0, -1 strb w0, [x29,166] strb w0, [x29,167] ldr w0, [x29,116] - cbz w0, .L1948 + cbz w0, .L1951 add x4, x21, :lo12:.LANCHOR0 add x2, x29, 166 - add x0, x4, 712 + add x0, x4, 1224 str x4, [x29,96] ldr w3, [x0,x25,lsl 2] mov w0, w28 @@ -12713,7 +12726,7 @@ FlashMakeFactorBbt: ldr x3, [x29,104] ldrb w0, [x4,72] cmp w0, 1 - bne .L1948 + bne .L1951 ldr w1, [x4,76] mov w0, w28 add x2, x29, 167 @@ -12723,12 +12736,12 @@ FlashMakeFactorBbt: ldrb w1, [x29,167] and w0, w1, w0 strb w0, [x29,166] -.L1948: +.L1951: ldr w0, [x29,112] - cbz w0, .L1950 + cbz w0, .L1953 add x0, x21, :lo12:.LANCHOR0 add x2, x29, 167 - add x0, x0, 712 + add x0, x0, 1224 ldr x1, [x0,32] ldr w0, [x0,x25,lsl 2] ldrh w1, [x1,10] @@ -12737,53 +12750,53 @@ FlashMakeFactorBbt: mov w0, w28 add w1, w1, w22 bl FlashReadSpare -.L1950: +.L1953: add x0, x21, :lo12:.LANCHOR0 ldrb w1, [x29,166] - ldr x0, [x0,744] + ldr x0, [x0,1256] ldrb w0, [x0,7] cmp w0, 8 - beq .L1975 + beq .L1978 cmp w0, 1 - bne .L1951 -.L1975: + bne .L1954 +.L1978: mov w0, 1 - cbz w1, .L1953 + cbz w1, .L1956 ldrb w0, [x29,167] cmp w0, wzr cset w0, eq - b .L1953 -.L1951: + b .L1956 +.L1954: cmp w1, 255 mov w0, 1 - bne .L1953 + bne .L1956 ldrb w0, [x29,167] cmp w0, 255 cset w0, ne -.L1953: +.L1956: ldr w1, [x29,120] - cbz w1, .L1954 + cbz w1, .L1957 add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 712 + add x0, x0, 1224 ldr w1, [x0,x25,lsl 2] mov w0, w28 add w1, w22, w1 bl SandiskProgTestBadBlock -.L1954: - cbz w0, .L1955 +.L1957: + cbz w0, .L1958 adrp x0, .LC118 - mov w1, w20 + mov w1, w19 mov w2, w27 add x0, x0, :lo12:.LC118 add w24, w24, 1 bl printk - add x0, x19, :lo12:.LANCHOR4 + add x0, x20, :lo12:.LANCHOR4 ldr x1, [x29,144] ldrb w3, [x29,144] uxth w24, w24 ubfx x1, x1, 5, 11 lsl x1, x1, 2 - ldr x2, [x0,56] + ldr x2, [x0,1592] mov w0, 1 lsl w0, w0, w3 ldr w3, [x2,x1] @@ -12791,138 +12804,137 @@ FlashMakeFactorBbt: str w0, [x2,x1] add x0, x21, :lo12:.LANCHOR0 ldr w1, [x29,128] - ldrb w0, [x0,1845] + ldrb w0, [x0,2357] mul w0, w1, w0 cmp w24, w0 - bgt .L1956 -.L1955: + bgt .L1959 +.L1958: add w27, w27, 1 add w22, w22, w26 - b .L1946 -.L1956: + b .L1949 +.L1959: adrp x0, .LC119 - mov w1, w20 + mov w1, w19 mov w2, w24 add x0, x0, :lo12:.LC119 bl printk add x1, x21, :lo12:.LANCHOR0 ldr w2, [x29,128] - ldrb w0, [x1,1845] + ldrb w0, [x1,2357] mul w0, w2, w0 cmp w24, w0 - blt .L1958 - add x0, x19, :lo12:.LANCHOR4 + blt .L1961 + add x0, x20, :lo12:.LANCHOR4 ldrh w2, [x1,188] mov w1, 0 lsl w2, w2, 9 - ldr x0, [x0,56] + ldr x0, [x0,1592] bl ftl_memset -.L1958: - cbnz w20, .L1960 - add x0, x19, :lo12:.LANCHOR4 +.L1961: + cbnz w19, .L1963 + add x0, x20, :lo12:.LANCHOR4 adrp x27, .LC120 - mov w22, w20 + mov w22, w19 add x27, x27, :lo12:.LC120 mov w24, 1 - ldrh w28, [x0,92] -.L1961: + ldrh w28, [x0,1628] +.L1964: add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,73] cmp w0, w28 - bls .L1996 + bls .L1999 mov w0, w28 bl FlashTestBlk - cbz w0, .L1962 + cbz w0, .L1965 mov w1, w28 mov x0, x27 add w22, w22, 1 bl printk - add x0, x19, :lo12:.LANCHOR4 + add x0, x20, :lo12:.LANCHOR4 ubfx x1, x28, 5, 11 lsl x1, x1, 2 uxth w22, w22 - ldr x2, [x0,56] + ldr x2, [x0,1592] lsl w0, w24, w28 ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1962: +.L1965: add w28, w28, 1 uxth w28, w28 - b .L1961 -.L1996: + b .L1964 +.L1999: adrp x27, .LC120 ldr w24, [x29,124] sub w28, w23, #50 add x27, x27, :lo12:.LC120 -.L1964: +.L1967: cmp w24, w28 - ble .L1997 + ble .L2000 mov w0, w24 bl FlashTestBlk - cbz w0, .L1965 + cbz w0, .L1968 mov w1, w24 mov x0, x27 bl printk - add x0, x19, :lo12:.LANCHOR4 + add x0, x20, :lo12:.LANCHOR4 ubfx x1, x24, 5, 11 lsl x1, x1, 2 - ldr x3, [x0,56] + ldr x3, [x0,1592] mov w0, 1 lsl w0, w0, w24 ldr w4, [x3,x1] orr w0, w4, w0 str w0, [x3,x1] -.L1965: +.L1968: sub w2, w24, #1 uxth w24, w2 - b .L1964 -.L1997: + b .L1967 +.L2000: add x2, x21, :lo12:.LANCHOR0 - add x1, x19, :lo12:.LANCHOR4 + add x1, x20, :lo12:.LANCHOR4 ldrb w0, [x2,73] - ldr w3, [x1,92] + ldr w3, [x1,1628] sub w0, w0, w3 cmp w22, w0 - bcc .L1960 + bcc .L1963 ldrh w2, [x2,188] - ldr x0, [x1,56] + ldr x0, [x1,1592] mov w1, 0 lsl w2, w2, 9 bl ftl_memset -.L1960: +.L1963: adrp x24, .LC121 ldr w28, [x29,124] - mul w27, w20, w23 + mul w27, w19, w23 add x24, x24, :lo12:.LC121 - lsl x25, x25, 1 mov w22, -3872 -.L1968: +.L1971: mov w2, w28 mov x0, x24 - mov w1, w20 + mov w1, w19 bl printk - add x0, x19, :lo12:.LANCHOR4 - ldr x2, [x0,56] -.L1969: + add x0, x20, :lo12:.LANCHOR4 + ldr x2, [x0,1592] +.L1972: ubfx x0, x28, 5, 11 ldr w0, [x2,x0,lsl 2] lsr w0, w0, w28 and w1, w0, 1 - tbz x0, 0, .L1998 + tbz x0, 0, .L2001 sub w28, w28, #1 uxth w28, w28 - b .L1969 -.L1998: - add x0, x19, :lo12:.LANCHOR4 - add x2, x0, x25 - strh w28, [x2,144] + b .L1972 +.L2001: + add x0, x20, :lo12:.LANCHOR4 + add x2, x0, 1680 + strh w28, [x2,x25,lsl 1] ldr x2, [x29,136] strh w22, [x2] strh w28, [x2,2] strh w1, [x2,8] - ldr x1, [x0,56] - ldr x0, [x0,112] + ldr x1, [x0,1592] + ldr x0, [x0,1648] str x0, [x29,184] add w0, w28, w27 str x1, [x29,176] @@ -12938,15 +12950,15 @@ FlashMakeFactorBbt: mov w3, w1 bl FlashProgPages ldr w0, [x29,168] - cbz w0, .L1974 + cbz w0, .L1977 sub w28, w28, #1 uxth w28, w28 - b .L1968 -.L1974: - add w20, w20, 1 - uxtb w20, w20 - b .L1944 -.L1995: + b .L1971 +.L1977: + add w19, w19, 1 + uxtb w19, w19 + b .L1947 +.L1998: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12972,52 +12984,52 @@ FtlLowFormatEraseBlock: add x1, x20, :lo12:.LANCHOR2 uxth w26, w0 stp x27, x28, [sp,80] - ldrb w0, [x24,1945] - ldr w2, [x1,-96] + ldrb w0, [x24,2457] + ldr w2, [x1,416] str w0, [x29,120] mov w0, 0 - cbnz w2, .L2000 + cbnz w2, .L2003 ldrb w0, [x24,196] mov w28, w2 str w0, [x29,124] mov w21, w2 - str w26, [x1,2036] + str w26, [x1,3572] mov w19, w2 mov w27, 56 -.L2001: - ldrh w0, [x24,1956] +.L2004: + ldrh w0, [x24,2468] cmp w0, w28 - bls .L2045 + bls .L2048 add x1, x20, :lo12:.LANCHOR2 umull x0, w28, w27 - ldr x1, [x1,-88] + ldr x1, [x1,424] str wzr, [x1,x0] - add x0, x24, 1984 + add x0, x24, 2496 mov w1, w26 ldrb w0, [x0,w28,sxtw] bl V2P_block uxth w23, w0 mov w1, w23 - cbz w25, .L2002 + cbz w25, .L2005 str x1, [x29,112] bl IsBlkInVendorPart ldr x1, [x29,112] - cbnz w0, .L2003 -.L2002: + cbnz w0, .L2006 +.L2005: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L2004 + cbnz w0, .L2007 add x3, x20, :lo12:.LANCHOR2 lsl w23, w23, 10 umull x0, w21, w27 mov w2, 4 - ldr x1, [x3,-88] + ldr x1, [x3,424] add x1, x1, x0 str w23, [x1,4] - ldr x1, [x3,-88] - ldr x3, [x3,2128] + ldr x1, [x3,424] + ldr x3, [x3,3664] add x1, x1, x0 - ldrh w0, [x24,2036] + ldrh w0, [x24,2548] mul w0, w21, w0 add w21, w21, 1 str xzr, [x1,8] @@ -13025,145 +13037,145 @@ FtlLowFormatEraseBlock: uxth w21, w21 add x0, x3, x0, sxtw 2 str x0, [x1,16] - b .L2003 -.L2004: + b .L2006 +.L2007: add w19, w19, 1 uxth w19, w19 -.L2003: +.L2006: add w2, w28, 1 uxth w28, w2 - b .L2001 -.L2045: - cbz w21, .L2024 + b .L2004 +.L2048: + cbz w21, .L2027 ldr w0, [x29,124] mov w2, w21 - strb wzr, [x24,1945] + strb wzr, [x24,2457] mov x27, 56 cmp w0, wzr add x0, x20, :lo12:.LANCHOR2 cset w23, ne mov w1, w23 - ldr x0, [x0,-88] + ldr x0, [x0,424] bl FlashEraseBlocks ldrb w0, [x29,120] - strb w0, [x24,1945] + strb w0, [x24,2457] mov x24, 0 -.L2007: +.L2010: cmp w21, w24, uxth - bls .L2046 + bls .L2049 add x1, x20, :lo12:.LANCHOR2 mul x0, x24, x27 - ldr x1, [x1,-88] + ldr x1, [x1,424] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L2008 + bne .L2011 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L2008: +.L2011: add x24, x24, 1 - b .L2007 -.L2046: - cbnz w25, .L2010 + b .L2010 +.L2049: + cbnz w25, .L2013 mov w0, 1 uxth w23, w23 mov w28, 6 str w0, [x29,124] - b .L2011 -.L2010: + b .L2014 +.L2013: add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,2026] + ldrh w1, [x0,2538] ldrb w0, [x0,196] str w1, [x29,124] - cbnz w0, .L2027 + cbnz w0, .L2030 uxtw x0, w1 mov w23, 1 lsr w28, w0, 2 - b .L2011 -.L2027: + b .L2014 +.L2030: mov w23, 1 mov w28, w23 -.L2011: +.L2014: mov w24, 0 add x22, x22, :lo12:.LANCHOR0 -.L2020: +.L2023: mov w27, 0 mov w21, w27 -.L2012: - ldrh w0, [x22,1956] +.L2015: + ldrh w0, [x22,2468] cmp w0, w27 - bls .L2047 + bls .L2050 add x1, x20, :lo12:.LANCHOR2 mov w0, 56 umull x0, w27, w0 - ldr x1, [x1,-88] + ldr x1, [x1,424] str wzr, [x1,x0] - add x0, x22, 1984 + add x0, x22, 2496 mov w1, w26 ldrb w0, [x0,w27,sxtw] bl V2P_block uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w25, .L2013 + cbz w25, .L2016 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L2014 -.L2013: + cbnz w0, .L2017 +.L2016: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L2014 + cbnz w0, .L2017 add x2, x20, :lo12:.LANCHOR2 mov w0, 56 ldr w3, [x29,112] umull x0, w21, w0 - ldr x1, [x2,-88] + ldr x1, [x2,424] add w3, w24, w3, lsl 10 add x1, x1, x0 str w3, [x1,4] mov w3, 4 - ldr x1, [x2,-88] + ldr x1, [x2,424] add x1, x1, x0 - ldr x0, [x2,2104] - ldr x2, [x2,2112] + ldr x0, [x2,3640] + ldr x2, [x2,3648] str x0, [x1,8] - ldrh w0, [x22,2036] + ldrh w0, [x22,2548] 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] -.L2014: +.L2017: add w4, w27, 1 uxth w27, w4 - b .L2012 -.L2047: - cbz w21, .L2024 + b .L2015 +.L2050: + cbz w21, .L2027 add x0, x20, :lo12:.LANCHOR2 mov w1, w21 mov w2, w23 mov w3, 1 - strb wzr, [x22,1945] - ldr x0, [x0,-88] + strb wzr, [x22,2457] + ldr x0, [x0,424] bl FlashProgPages ldrb w0, [x29,120] mov x1, 0 - strb w0, [x22,1945] -.L2017: + strb w0, [x22,2457] +.L2020: cmp w21, w1, uxth - bls .L2048 + bls .L2051 add x2, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x1, x0 - ldr x2, [x2,-88] + ldr x2, [x2,424] add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L2018 + cbz w0, .L2021 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -13171,47 +13183,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L2018: +.L2021: add x1, x1, 1 - b .L2017 -.L2048: + b .L2020 +.L2051: add w24, w24, w28 ldr w0, [x29,124] uxth w24, w24 cmp w24, w0 - bcc .L2020 + bcc .L2023 mov x22, 0 mov x24, 56 -.L2021: +.L2024: cmp w21, w22, uxth - bls .L2049 - cbz w25, .L2022 + bls .L2052 + cbz w25, .L2025 add x1, x20, :lo12:.LANCHOR2 mul x0, x22, x24 - ldr x1, [x1,-88] + ldr x1, [x1,424] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L2022 + cbnz w0, .L2025 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L2022: +.L2025: add x22, x22, 1 - b .L2021 -.L2049: + b .L2024 +.L2052: cmp w26, 63 - bls .L2028 - cbz w25, .L2024 -.L2028: + bls .L2031 + cbz w25, .L2027 +.L2031: add x20, x20, :lo12:.LANCHOR2 mov w1, w23 mov w2, w21 - ldr x0, [x20,-88] + ldr x0, [x20,424] bl FlashEraseBlocks -.L2024: +.L2027: mov w0, w19 -.L2000: +.L2003: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13233,40 +13245,40 @@ FtlBbmTblFlush: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w1, [x2,-96] - cbnz w1, .L2052 + ldr w1, [x2,416] + cbnz w1, .L2055 adrp x19, .LANCHOR4 adrp x20, .LANCHOR0 add x24, x19, :lo12:.LANCHOR4 add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x2,2072] + ldr x0, [x2,3608] mov x21, 0 - ldr x2, [x2,2120] - add x23, x20, 2104 - str x2, [x24,176] - ldrh w2, [x20,2034] - str x0, [x24,168] + ldr x2, [x2,3656] + add x23, x20, 2616 + str x2, [x24,1712] + ldrh w2, [x20,2546] + str x0, [x24,1704] bl ftl_memset -.L2053: - ldrh w1, [x20,1978] +.L2056: + ldrh w1, [x20,2490] mov w0, w21 add x21, x21, 1 cmp w0, w1 - bge .L2066 + bge .L2069 add x1, x22, :lo12:.LANCHOR2 - ldr x3, [x24,168] - ldrh w2, [x1,2248] + ldr x3, [x24,1704] + ldrh w2, [x1,3784] 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 .L2053 -.L2066: + b .L2056 +.L2069: add x19, x19, :lo12:.LANCHOR4 mov w1, 255 - add x19, x19, 160 + add x19, x19, 1696 mov w2, 16 mov w24, 0 adrp x26, .LC122 @@ -13281,22 +13293,22 @@ FtlBbmTblFlush: strh w0, [x21] ldr w0, [x23,8] str w0, [x21,4] - ldrh w0, [x20,2104] + ldrh w0, [x20,2616] strh w0, [x21,2] ldrh w0, [x23,4] strh w0, [x21,8] ldrh w0, [x23,6] strh w0, [x21,10] - ldr w0, [x20,1952] + ldr w0, [x20,2464] strh w0, [x21,12] -.L2055: +.L2058: add x28, x22, :lo12:.LANCHOR2 - ldrh w1, [x20,2104] - ldrh w2, [x20,2106] - ldrh w3, [x20,2108] - ldr x0, [x28,2072] + ldrh w1, [x20,2616] + ldrh w2, [x20,2618] + ldrh w3, [x20,2620] + ldr x0, [x28,3608] str x0, [x19,8] - ldr x0, [x28,2120] + ldr x0, [x28,3656] str x0, [x19,16] orr w0, w2, w1, lsl 10 str w0, [x19,4] @@ -13304,48 +13316,48 @@ FtlBbmTblFlush: ldrh w4, [x21,10] str wzr, [x19] bl printk - ldrh w0, [x20,2026] - ldrh w1, [x20,2106] + ldrh w0, [x20,2538] + ldrh w1, [x20,2618] sub w0, w0, #1 cmp w1, w0 - blt .L2056 - ldr w0, [x20,2112] - strh wzr, [x20,2106] + blt .L2059 + ldr w0, [x20,2624] + strh wzr, [x20,2618] add w0, w0, 1 - str w0, [x20,2112] + str w0, [x20,2624] str w0, [x21,4] - ldrh w0, [x20,2104] - ldrh w1, [x20,2108] + ldrh w0, [x20,2616] + ldrh w1, [x20,2620] strh w0, [x21,8] - strh w0, [x20,2108] - ldr x0, [x28,-88] - strh w1, [x20,2104] + strh w0, [x20,2620] + ldr x0, [x28,424] + strh w1, [x20,2616] lsl w1, w1, 10 str w1, [x19,4] str w1, [x0,4] mov w1, 1 mov w2, w1 - ldr x0, [x28,-88] + ldr x0, [x28,424] bl FlashEraseBlocks -.L2056: +.L2059: mov w1, 1 mov x0, x19 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w0, [x20,2106] + ldrh w0, [x20,2618] add w0, w0, 1 - strh w0, [x20,2106] + strh w0, [x20,2618] ldr w0, [x19] cmn w0, #1 - bne .L2057 + bne .L2060 ldr w1, [x19,4] mov x0, x27 add w24, w24, 1 bl printk uxth w24, w24 cmp w24, 3 - bls .L2055 + bls .L2058 adrp x0, .LC124 ldr w1, [x19,4] add x0, x0, :lo12:.LC124 @@ -13353,15 +13365,15 @@ FtlBbmTblFlush: add x22, x22, :lo12:.LANCHOR2 bl printk mov w0, 1 - str w0, [x22,-96] - b .L2052 -.L2057: + str w0, [x22,416] + b .L2055 +.L2060: add w25, w25, 1 cmp w25, 1 - beq .L2055 + beq .L2058 cmp w0, 256 - beq .L2055 -.L2052: + beq .L2058 +.L2055: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13378,218 +13390,218 @@ allocate_data_superblock: stp x29, x30, [sp, -144]! add x29, sp, 0 stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 + adrp x21, .LANCHOR2 stp x19, x20, [sp,16] - add x19, x22, :lo12:.LANCHOR2 + add x19, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w1, [x19,-96] + ldr w1, [x19,416] stp x27, x28, [sp,80] - cbnz w1, .L2068 + cbnz w1, .L2071 mov x20, x0 - add x23, x19, 136 - adrp x21, .LANCHOR0 + add x23, x19, 648 + adrp x22, .LANCHOR0 mov w24, 7 - add x25, x19, 24 -.L2069: + add x25, x19, 536 +.L2072: cmp x20, x23 - bne .L2070 - ldrh w2, [x19,32] - ldr w4, [x19,860] + bne .L2073 + ldrh w2, [x19,544] + ldr w4, [x19,1372] lsr w3, w2, 1 add w1, w3, 1 mul w0, w2, w4 add w1, w1, w0, lsr 2 - add x0, x21, :lo12:.LANCHOR0 + add x0, x22, :lo12:.LANCHOR0 uxth w1, w1 - ldr w0, [x0,1948] - cbz w0, .L2071 - ldr w0, [x19,256] + ldr w0, [x0,2460] + cbz w0, .L2074 + ldr w0, [x19,768] cmp w0, 39 - bhi .L2071 + bhi .L2074 cmp w0, 2 mov w1, 0 - bls .L2072 - tbz x2, 0, .L2099 - cbz w4, .L2072 -.L2099: + bls .L2075 + tbz x2, 0, .L2102 + cbz w4, .L2075 +.L2102: mov w1, w3 - b .L2071 -.L2070: + b .L2074 +.L2073: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L2072 - add x2, x21, :lo12:.LANCHOR0 - ldrh w0, [x2,1976] + bne .L2075 + add x2, x22, :lo12:.LANCHOR0 + ldrh w0, [x2,2488] cmp w0, 1 - beq .L2072 + beq .L2075 ldrb w0, [x2,196] - cbnz w0, .L2072 - ldr w2, [x2,1948] - ldrh w0, [x19,32] + cbnz w0, .L2075 + ldr w2, [x2,2460] + ldrh w0, [x19,544] lsr w1, w0, 3 - cbz w2, .L2071 - ldr w2, [x19,256] + cbz w2, .L2074 + ldr w2, [x19,768] cmp w2, 1 - bhi .L2071 + bhi .L2074 mul w1, w0, w24 lsr w1, w1, 3 -.L2071: - cbz w1, .L2072 +.L2074: + cbz w1, .L2075 sub w1, w1, #1 uxth w1, w1 -.L2072: +.L2075: ldrb w2, [x20,8] mov x0, x25 - add x27, x21, :lo12:.LANCHOR0 + add x27, x22, :lo12:.LANCHOR0 bl List_pop_index_node uxth w28, w0 - ldrh w0, [x19,32] + ldrh w0, [x19,544] sub w0, w0, #1 - strh w0, [x19,32] - ldrh w0, [x27,1964] + strh w0, [x19,544] + ldrh w0, [x27,2476] cmp w0, w28 - bls .L2069 + bls .L2072 ubfiz x26, x28, 1, 16 - ldr x0, [x19] + ldr x0, [x19,512] ldrh w0, [x0,x26] - cbnz w0, .L2069 + cbnz w0, .L2072 strh w28, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L2124 + cbz w0, .L2127 mov x0, 0 - ldrh w5, [x27,1956] + ldrh w5, [x27,2468] mov x3, 56 mov w27, w0 mov w6, 65535 -.L2076: +.L2079: cmp w5, w0, uxth - bls .L2127 - ldr x4, [x19,-88] + bls .L2130 + ldr x4, [x19,424] 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 .L2077 + beq .L2080 umull x2, w27, w3 add w27, w27, 1 lsl w1, w1, 10 add x2, x4, x2 uxth w27, w27 str w1, [x2,4] -.L2077: +.L2080: add x0, x0, 1 - b .L2076 -.L2127: - add x0, x19, 40 + b .L2079 +.L2130: + add x0, x19, 552 cmp x20, x0 - bne .L2079 - add x1, x21, :lo12:.LANCHOR0 - ldr w1, [x1,1948] - cbz w1, .L2079 - ldr x1, [x19,-80] + bne .L2082 + add x1, x22, :lo12:.LANCHOR0 + ldr w1, [x1,2460] + cbz w1, .L2082 + ldr x1, [x19,432] ldrh w1, [x1,x26] cmp w1, 40 - bls .L2079 - strb wzr, [x19,48] -.L2079: + bls .L2082 + strb wzr, [x19,560] +.L2082: ldrb w0, [x20,8] - cbnz w0, .L2080 - ldr x0, [x19,-80] + cbnz w0, .L2083 + ldr x0, [x19,432] mov w1, 2 ldrh w2, [x0,x26] - cbz w2, .L2125 - add x1, x21, :lo12:.LANCHOR0 - ldrh w1, [x1,2016] + cbz w2, .L2128 + add x1, x22, :lo12:.LANCHOR0 + ldrh w1, [x1,2528] add w1, w2, w1 -.L2125: +.L2128: strh w1, [x0,x26] mov w1, 0 - ldr w0, [x19,240] + ldr w0, [x19,752] add w0, w0, 1 - str w0, [x19,240] + str w0, [x19,752] mov w0, w28 bl ftl_set_blk_mode - b .L2083 -.L2080: - ldr x1, [x19,-80] + b .L2086 +.L2083: + ldr x1, [x19,432] ldrh w0, [x1,x26] add w0, w0, 1 strh w0, [x1,x26] - ldr w0, [x19,244] + ldr w0, [x19,756] add w0, w0, 1 - str w0, [x19,244] + str w0, [x19,756] mov w0, w28 bl ftl_set_blk_mode.part.9 -.L2083: - ldr x0, [x19,-80] - ldr w1, [x19,252] +.L2086: + ldr x0, [x19,432] + ldr w1, [x19,764] ldrh w0, [x0,x26] cmp w0, w1 - bls .L2084 - str w0, [x19,252] -.L2084: - add x2, x21, :lo12:.LANCHOR0 - ldr w3, [x19,240] - ldr w0, [x19,244] - ldrh w1, [x2,2016] + bls .L2087 + str w0, [x19,764] +.L2087: + add x2, x22, :lo12:.LANCHOR0 + ldr w3, [x19,752] + ldr w0, [x19,756] + ldrh w1, [x2,2528] madd w0, w1, w3, w0 - ldrh w1, [x2,1964] + ldrh w1, [x2,2476] mov x3, 56 udiv w0, w0, w1 - ldr x1, [x19,2160] - str w0, [x19,248] + ldr x1, [x19,3696] + str w0, [x19,760] ldr w0, [x1,16] add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L2085: +.L2088: cmp w27, w0, uxth - bls .L2128 - ldr x1, [x19,-88] + bls .L2131 + ldr x1, [x19,424] madd x1, x0, x3, x1 add x0, x0, 1 ldr w2, [x1,4] and w2, w2, -1024 str w2, [x1,4] - b .L2085 -.L2128: - add x0, x21, :lo12:.LANCHOR0 + b .L2088 +.L2131: + add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbz w0, .L2087 + cbz w0, .L2090 ldrb w0, [x20,8] cmp w0, 1 - ldr x0, [x19,-88] - bne .L2088 + ldr x0, [x19,424] + bne .L2091 mov w1, 0 - b .L2126 -.L2088: + b .L2129 +.L2091: mov w1, 1 -.L2126: +.L2129: mov w2, w27 bl FlashEraseBlocks -.L2087: +.L2090: ldrb w1, [x20,8] mov w2, w27 - ldr x0, [x19,-88] + ldr x0, [x19,424] bl FlashEraseBlocks mov x1, 0 mov x4, 56 mov w2, w1 -.L2089: +.L2092: cmp w27, w1, uxth - bls .L2129 + bls .L2132 mul x0, x1, x4 - ldr x3, [x19,-88] + ldr x3, [x19,424] add x5, x3, x0 ldr w3, [x3,x0] cmn w3, #1 - bne .L2090 + bne .L2093 ldr w0, [x5,4] add w2, w2, 1 str x4, [x29,104] @@ -13608,41 +13620,41 @@ allocate_data_superblock: ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L2090: +.L2093: add x1, x1, 1 - b .L2089 -.L2129: - cbz w2, .L2092 + b .L2092 +.L2132: + cbz w2, .L2095 mov w0, w28 bl update_multiplier_value bl FtlBbmTblFlush -.L2092: +.L2095: ldrb w0, [x20,7] - cbnz w0, .L2093 -.L2124: - ldr x0, [x19] + cbnz w0, .L2096 +.L2127: + ldr x0, [x19,512] mov w1, -1 strh w1, [x0,x26] - b .L2069 -.L2093: + b .L2072 +.L2096: adrp x1, .LANCHOR0 - add x2, x22, :lo12:.LANCHOR2 + add x21, x21, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR0 strh wzr, [x20,2] strb wzr, [x20,6] - ldrh w1, [x1,2024] + ldrh w1, [x1,2536] strh w28, [x20] mul w0, w0, w1 - ldr w1, [x2,232] + ldr w1, [x21,744] str w1, [x20,12] uxth w0, w0 add w1, w1, 1 strh w0, [x20,4] - str w1, [x2,232] - ldr x1, [x22,#:lo12:.LANCHOR2] + str w1, [x21,744] + ldr x1, [x21,512] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L2068: +.L2071: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13664,63 +13676,63 @@ FtlGcFreeBadSuperBlk: add x19, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] uxth w23, w0 - ldrh w0, [x19,944] + ldrh w0, [x19,1456] stp x21, x22, [sp,32] mov w21, 0 - cbz w0, .L2132 + cbz w0, .L2135 adrp x22, .LANCHOR0 adrp x24, .LC125 add x22, x22, :lo12:.LANCHOR0 add x24, x24, :lo12:.LC125 -.L2140: - ldrh w0, [x22,1956] +.L2143: + ldrh w0, [x22,2468] cmp w0, w21 - bls .L2141 - add x0, x22, 1984 + bls .L2144 + add x0, x22, 2496 mov w1, w23 mov w20, 0 ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w25, w0 -.L2133: - ldrh w0, [x19,944] +.L2136: + ldrh w0, [x19,1456] cmp w0, w20 - bls .L2142 - add x0, x19, 952 + bls .L2145 + add x0, x19, 1464 ldrh w0, [x0,w20,sxtw 1] cmp w0, w25 - bne .L2134 + bne .L2137 mov w1, w25 mov x0, x24 bl printk mov w0, w25 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w2, [x19,944] + ldrh w2, [x19,1456] mov w3, w20 -.L2135: +.L2138: cmp w3, w2 - bcs .L2143 - add x4, x19, 952 + bcs .L2146 + add x4, x19, 1464 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L2135 -.L2143: + b .L2138 +.L2146: sub w2, w2, #1 - strh w2, [x19,944] -.L2134: + strh w2, [x19,1456] +.L2137: add w20, w20, 1 uxth w20, w20 - b .L2133 -.L2142: + b .L2136 +.L2145: add w21, w21, 1 uxth w21, w21 - b .L2140 -.L2141: + b .L2143 +.L2144: bl FtlGcReFreshBadBlk -.L2132: +.L2135: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -13738,47 +13750,47 @@ update_vpc_list: stp x19, x20, [sp,16] adrp x20, .LANCHOR2 uxth w19, w0 - ubfiz x0, x19, 1, 16 add x1, x20, :lo12:.LANCHOR2 - ldr x2, [x20,#:lo12:.LANCHOR2] + ubfiz x0, x19, 1, 16 + ldr x2, [x1,512] ldrh w2, [x2,x0] - cbnz w2, .L2145 - ldrh w0, [x1,280] + cbnz w2, .L2148 + ldrh w0, [x1,792] cmp w0, w19 - bne .L2146 + bne .L2149 mov w0, -1 - strh w0, [x1,280] - b .L2147 -.L2146: - ldrh w3, [x1,40] + strh w0, [x1,792] + b .L2150 +.L2149: + ldrh w3, [x1,552] mov w0, w2 cmp w3, w19 - beq .L2148 - ldrh w3, [x1,88] + beq .L2151 + ldrh w3, [x1,600] cmp w3, w19 - beq .L2148 - ldrh w1, [x1,136] + beq .L2151 + ldrh w1, [x1,648] cmp w1, w19 - beq .L2148 -.L2147: + beq .L2151 +.L2150: add x20, x20, :lo12:.LANCHOR2 mov w1, w19 - sub x0, x20, #8 + add x0, x20, 504 bl List_remove_node - ldrh w0, [x20,16] + ldrh w0, [x20,528] sub w0, w0, #1 - strh w0, [x20,16] + strh w0, [x20,528] mov w0, w19 bl free_data_superblock mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2148 -.L2145: + b .L2151 +.L2148: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2148: +.L2151: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -13787,78 +13799,76 @@ update_vpc_list: .global decrement_vpc_count .type decrement_vpc_count, %function decrement_vpc_count: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] uxth w19, w0 mov w0, 65535 stp x21, x22, [sp,32] - str x23, [sp,48] cmp w19, w0 adrp x20, .LANCHOR2 - beq .L2153 - ubfiz x21, x19, 1, 16 - ldr x0, [x20,#:lo12:.LANCHOR2] - add x22, x20, :lo12:.LANCHOR2 - ldrh w2, [x0,x21] - cbnz w2, .L2154 + beq .L2156 + add x21, x20, :lo12:.LANCHOR2 + ubfiz x22, x19, 1, 16 + ldr x0, [x21,512] + ldrh w2, [x0,x22] + cbnz w2, .L2157 adrp x0, .LC126 mov w1, w19 add x0, x0, :lo12:.LC126 - add x23, x22, 24 + add x20, x21, 536 bl printk - ldr x0, [x20,#:lo12:.LANCHOR2] + ldr x0, [x21,512] mov w1, 32 - strh w1, [x0,x21] - mov x0, x23 + strh w1, [x0,x22] + mov x0, x20 mov w1, w19 bl test_node_in_list - cbz w0, .L2155 + cbz w0, .L2158 mov w1, w19 - mov x0, x23 + mov x0, x20 bl List_remove_node - ldrh w0, [x22,32] + ldrh w0, [x21,544] sub w0, w0, #1 - strh w0, [x22,32] + strh w0, [x21,544] mov w0, w19 bl INSERT_DATA_LIST - ldr x2, [x20,#:lo12:.LANCHOR2] + ldr x2, [x21,512] adrp x0, .LC127 add x0, x0, :lo12:.LC127 mov w1, w19 - ldrh w2, [x2,x21] + ldrh w2, [x2,x22] bl printk -.L2155: +.L2158: mov w0, w19 bl FtlGcRefreshBlock - b .L2162 -.L2154: + b .L2165 +.L2157: sub w2, w2, #1 - strh w2, [x0,x21] -.L2153: + strh w2, [x0,x22] +.L2156: add x20, x20, :lo12:.LANCHOR2 mov w0, 65535 - ldrh w1, [x20,2336] + ldrh w1, [x20,3872] cmp w1, w0 - bne .L2157 - strh w19, [x20,2336] -.L2162: + bne .L2160 + strh w19, [x20,3872] +.L2165: mov w0, 0 - b .L2156 -.L2157: + b .L2159 +.L2160: cmp w1, w19 mov w0, 0 - beq .L2156 + beq .L2159 mov w0, w1 bl update_vpc_list cmp w0, wzr cset w0, ne - strh w19, [x20,2336] -.L2156: + strh w19, [x20,3872] +.L2159: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 64 + ldp x29, x30, [sp], 48 ret .size decrement_vpc_count, .-decrement_vpc_count .align 2 @@ -13870,87 +13880,87 @@ FtlSlcSuperblockCheck: stp x19, x20, [sp,16] stp x21, x22, [sp,32] ldrh w1, [x0,4] - cbz w1, .L2163 + cbz w1, .L2166 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2163 + beq .L2166 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, 988 + add x21, x21, 1500 ldrh w0, [x19,x0,lsl 1] -.L2167: +.L2170: cmp w0, w20 - bne .L2174 -.L2169: + bne .L2177 +.L2172: ldrb w0, [x19,6] add x1, x22, :lo12:.LANCHOR0 add w0, w0, 1 - ldrh w1, [x1,1956] + ldrh w1, [x1,2468] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2168 + bne .L2171 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2168: +.L2171: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2167 -.L2174: + b .L2170 +.L2177: ldrb w1, [x19,8] cmp w1, 1 - bne .L2170 + bne .L2173 add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbnz w0, .L2170 + cbnz w0, .L2173 ldrh w0, [x19,2] ldrh w0, [x21,w0,sxtw 1] cmp w0, w20 - bne .L2170 + bne .L2173 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, .L2169 + cbnz w1, .L2172 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2163 -.L2170: + b .L2166 +.L2173: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w2, [x0,196] - cbz w2, .L2163 + cbz w2, .L2166 cmp w1, 1 - bne .L2163 + bne .L2166 ldrh w2, [x19,2] - ldrh w1, [x0,2026] + ldrh w1, [x0,2538] cmp w2, w1 - bcc .L2163 - adrp x2, .LANCHOR2 + bcc .L2166 + adrp x2, .LANCHOR2+512 ldrh w1, [x19] ldrh w4, [x19,4] lsl x1, x1, 1 - ldr x3, [x2,#:lo12:.LANCHOR2] + ldr x3, [x2,#:lo12:.LANCHOR2+512] ldrh w2, [x3,x1] sub w2, w2, w4 strh w2, [x3,x1] strh wzr, [x19,4] - ldrh w0, [x0,2024] + ldrh w0, [x0,2536] strh w0, [x19,2] strb wzr, [x19,6] -.L2163: +.L2166: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -13973,48 +13983,48 @@ get_new_active_ppa: mov w22, 65535 add x0, x0, 8 adrp x23, .LANCHOR0 - add x21, x21, 988 + add x21, x21, 1500 ldrh w0, [x19,x0,lsl 1] -.L2176: +.L2179: cmp w0, w22 adrp x20, .LANCHOR0 - bne .L2191 -.L2177: + bne .L2194 +.L2180: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR0 add w0, w0, 1 - ldrh w1, [x1,1956] + ldrh w1, [x1,2468] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2178 + bne .L2181 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2178: +.L2181: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2176 -.L2191: + b .L2179 +.L2194: ldrb w1, [x19,8] cmp w1, 1 - bne .L2179 + bne .L2182 add x1, x23, :lo12:.LANCHOR0 ldrb w1, [x1,196] - cbnz w1, .L2179 + cbnz w1, .L2182 ldrh w1, [x19,2] ldrh w1, [x21,w1,sxtw 1] cmp w1, w22 - bne .L2179 + bne .L2182 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2177 -.L2179: + b .L2180 +.L2182: ldrh w1, [x19,4] adrp x21, .LANCHOR2 ldrh w22, [x19,2] @@ -14024,64 +14034,64 @@ get_new_active_ppa: orr w22, w22, w0, lsl 10 strh w1, [x19,4] mov w24, w23 - add x21, x21, 988 -.L2180: + add x21, x21, 1500 +.L2183: add x0, x20, :lo12:.LANCHOR0 ldrb w1, [x19,6] - ldrh w2, [x0,1956] -.L2182: + ldrh w2, [x0,2468] +.L2185: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2181 + bne .L2184 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2181: +.L2184: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2182 + beq .L2185 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2187 + bne .L2190 add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbnz w0, .L2184 + cbnz w0, .L2187 ldrh w0, [x19,2] ldrh w0, [x21,w0,sxtw 1] cmp w0, w24 - bne .L2184 + bne .L2187 ldrh w1, [x19,4] - cbz w1, .L2184 + cbz w1, .L2187 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2180 -.L2184: + b .L2183 +.L2187: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,196] - cbz w0, .L2187 + cbz w0, .L2190 ldrh w1, [x19,2] - ldrh w0, [x20,2026] + ldrh w0, [x20,2538] cmp w1, w0 - bcc .L2187 - adrp x0, .LANCHOR2 + bcc .L2190 + adrp x0, .LANCHOR2+512 ldrh w1, [x19] ldrh w3, [x19,4] lsl x1, x1, 1 - ldr x0, [x0,#:lo12:.LANCHOR2] + ldr x0, [x0,#:lo12:.LANCHOR2+512] ldrh w2, [x0,x1] sub w2, w2, w3 strh w2, [x0,x1] strh wzr, [x19,4] - ldrh w0, [x20,2024] + ldrh w0, [x20,2536] strh w0, [x19,2] strb wzr, [x19,6] -.L2187: +.L2190: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14095,93 +14105,94 @@ get_new_active_ppa: FtlVpcTblFlush: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - stp x19, x20, [sp,16] - add x19, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] + adrp x23, .LANCHOR2 + stp x19, x20, [sp,16] + add x19, x23, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] stp x25, x26, [sp,64] - ldr w0, [x19,-96] + ldr w0, [x19,416] stp x27, x28, [sp,80] - cbnz w0, .L2194 - adrp x23, .LANCHOR4 - ldr x20, [x19,2120] - add x21, x23, :lo12:.LANCHOR4 - ldr x1, [x19,2072] - ldrh w2, [x19,264] + cbnz w0, .L2197 + adrp x26, .LANCHOR4 + ldr x21, [x19,3656] + add x22, x26, :lo12:.LANCHOR4 + ldr x1, [x19,3608] + ldrh w2, [x19,776] + add x20, x19, 448 adrp x24, .LANCHOR0 + add x22, x22, 1696 + str x1, [x22,8] add x25, x24, :lo12:.LANCHOR0 - sub x26, x19, #64 - str x1, [x21,168] - add x21, x21, 160 - str x20, [x21,16] - strh w2, [x20,2] + str x21, [x22,16] + strh w2, [x21,2] mov w2, -3932 - strh w2, [x20] - str w0, [x20,12] - ldr w2, [x19,272] - str w2, [x20,4] - str w0, [x20,8] + strh w2, [x21] + str w0, [x21,12] + ldr w2, [x19,784] + str w2, [x21,4] + str w0, [x21,8] mov w0, 19539 - ldrh w1, [x19,40] + ldrh w1, [x19,552] movk w0, 0x4654, lsl 16 - strh w1, [x19,-50] - ldrh w1, [x19,42] - ldrb w2, [x19,46] - str w0, [x19,-64] - mov w0, 87 + strh w1, [x20,14] + ldrh w1, [x19,554] + ldrb w2, [x19,558] + str w0, [x19,448] + mov w0, 96 orr w1, w2, w1, lsl 6 - strh w1, [x19,-48] - ldrh w1, [x19,88] + strh w1, [x20,16] + ldrh w1, [x19,600] movk w0, 0x5000, lsl 16 - strh w1, [x19,-46] - ldrh w1, [x19,90] - ldrb w2, [x19,94] - str w0, [x19,-60] - ldrh w0, [x19,270] + strh w1, [x20,18] + ldrh w1, [x19,602] + str w0, [x20,4] + ldrb w2, [x19,606] + ldrh w0, [x19,782] + strh w0, [x20,8] orr w1, w2, w1, lsl 6 - strh w0, [x19,-56] - ldrh w0, [x25,1978] - strb w0, [x19,-54] - ldrb w0, [x19,48] - strb w0, [x19,-53] - strh w1, [x19,-44] - ldrb w0, [x19,96] - ldrh w1, [x19,136] - strb w0, [x19,-52] - strh w1, [x19,-42] - ldrh w1, [x19,138] - ldrb w0, [x19,144] - strb w0, [x19,-51] - ldr w0, [x19,240] - str w0, [x19,-32] - ldr w0, [x19,232] - str w0, [x19,-24] - ldr w0, [x19,236] - ldrb w2, [x19,142] - str w0, [x19,-28] - ldrh w0, [x19,936] + ldrh w0, [x25,2490] + strb w0, [x20,10] + ldrb w0, [x19,560] + strb w0, [x20,11] + strh w1, [x20,20] + ldrb w0, [x19,608] + ldrh w1, [x19,648] + strb w0, [x20,12] + strh w1, [x20,22] + ldrh w1, [x19,650] + ldrb w0, [x19,656] + strb w0, [x20,13] + ldr w0, [x19,752] + str w0, [x20,32] + ldr w0, [x19,744] + str w0, [x20,40] + ldr w0, [x19,748] + ldrb w2, [x19,654] + str w0, [x20,36] + ldrh w0, [x19,1448] orr w1, w2, w1, lsl 6 - strh w0, [x19,-20] - ldrh w0, [x19,938] - strh w0, [x19,-18] - ldrh w2, [x25,2034] - ldr x0, [x21,8] - strh w1, [x19,-40] + strh w0, [x20,44] + ldrh w0, [x19,1450] + strh w0, [x20,46] + ldrh w2, [x25,2546] + ldr x0, [x22,8] + strh w1, [x20,24] mov w1, 255 bl ftl_memset - ldr x0, [x21,8] - mov x1, x26 + ldr x0, [x22,8] + mov x1, x20 mov w2, 48 + mov x20, x26 bl ftl_memcpy - ldr x0, [x21,8] - ldrh w2, [x25,1964] - ldr x1, [x22,#:lo12:.LANCHOR2] + ldr x0, [x22,8] + ldrh w2, [x25,2476] + ldr x1, [x19,512] add x0, x0, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x25,1964] - ldr x1, [x21,8] + ldrh w2, [x25,2476] + ldr x1, [x22,8] uxth x0, w2 lsr w2, w2, 3 add x0, x0, 24 @@ -14190,107 +14201,107 @@ FtlVpcTblFlush: add x0, x1, x0, lsl 2 ldr x1, [x24,#:lo12:.LANCHOR0] bl ftl_memcpy - ldrh w0, [x25,2068] - cbz w0, .L2195 - ldrh w0, [x25,1964] - ldrh w2, [x25,2060] + ldrh w0, [x25,2580] + cbz w0, .L2198 + ldrh w0, [x25,2476] + ldrh w2, [x25,2572] lsr w1, w0, 3 add w0, w1, w0, lsl 1 - ldr x1, [x21,8] + ldr x1, [x22,8] add w0, w0, 52 lsl w2, w2, 2 and x0, x0, 65532 add x0, x1, x0 - ldr x1, [x19,2216] + ldr x1, [x19,3752] bl ftl_memcpy -.L2195: +.L2198: mov w0, 0 - mov w21, 0 + mov w22, 0 mov w25, 65535 - add x26, x23, :lo12:.LANCHOR4 - add x19, x22, :lo12:.LANCHOR2 + add x26, x20, :lo12:.LANCHOR4 + add x19, x23, :lo12:.LANCHOR2 bl FtlUpdateVaildLpn -.L2196: - ldrh w1, [x19,264] - ldr x0, [x19,2072] - ldrh w2, [x19,266] - str x0, [x26,168] - ldr x0, [x19,2120] - str x0, [x26,176] +.L2199: + ldrh w1, [x19,776] + ldr x0, [x19,3608] + ldrh w2, [x19,778] + str x0, [x26,1704] + ldr x0, [x19,3656] + str x0, [x26,1712] orr w0, w2, w1, lsl 10 - str w0, [x26,164] + str w0, [x26,1700] add x0, x24, :lo12:.LANCHOR0 - ldrh w0, [x0,2026] + ldrh w0, [x0,2538] sub w0, w0, #1 cmp w2, w0 - blt .L2197 - ldrh w25, [x19,268] - strh wzr, [x19,266] - strh w1, [x19,268] + blt .L2200 + ldrh w25, [x19,780] + strh wzr, [x19,778] + strh w1, [x19,780] bl FtlFreeSysBlkQueueOut - ldr w1, [x19,232] - str w1, [x19,272] + ldr w1, [x19,744] + str w1, [x19,784] add w2, w1, 1 - str w2, [x19,232] + str w2, [x19,744] ubfiz w2, w0, 10, 16 - str w2, [x26,164] - strh w0, [x19,264] - str w1, [x20,4] - strh w0, [x20,2] -.L2197: + str w2, [x26,1700] + strh w0, [x19,776] + str w1, [x21,4] + strh w0, [x21,2] +.L2200: add x1, x24, :lo12:.LANCHOR0 ldrb w0, [x1,72] - cbz w0, .L2198 - ldr x0, [x19,2072] - ldrh w1, [x1,2034] + cbz w0, .L2201 + ldr x0, [x19,3608] + ldrh w1, [x1,2546] bl js_hash - str w0, [x20,12] -.L2198: + str w0, [x21,12] +.L2201: mov w1, 1 - add x0, x26, 160 + add x0, x26, 1696 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w1, [x19,266] - ldr w2, [x26,160] + ldrh w1, [x19,778] + ldr w2, [x26,1696] add w1, w1, 1 cmn w2, #1 uxth w1, w1 - strh w1, [x19,266] - bne .L2199 + strh w1, [x19,778] + bne .L2202 cmp w1, 1 - bne .L2200 + bne .L2203 add x1, x24, :lo12:.LANCHOR0 - ldrh w1, [x1,2026] + ldrh w1, [x1,2538] sub w1, w1, #1 - strh w1, [x19,266] -.L2200: - add w21, w21, 1 - uxth w21, w21 - cmp w21, 3 - bls .L2196 - add x23, x23, :lo12:.LANCHOR4 + strh w1, [x19,778] +.L2203: + add w22, w22, 1 + uxth w22, w22 + cmp w22, 3 + bls .L2199 + add x20, x20, :lo12:.LANCHOR4 adrp x0, .LC128 add x0, x0, :lo12:.LC128 - mov w2, w21 - add x22, x22, :lo12:.LANCHOR2 - ldr w1, [x23,164] + mov w2, w22 + add x23, x23, :lo12:.LANCHOR2 + ldr w1, [x20,1700] bl printk mov w0, 1 - str w0, [x22,-96] - b .L2194 -.L2199: + str w0, [x23,416] + b .L2197 +.L2202: cmp w1, 1 - beq .L2196 + beq .L2199 cmp w2, 256 - beq .L2196 + beq .L2199 mov w0, 65535 cmp w25, w0 - beq .L2194 + beq .L2197 mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L2194: +.L2197: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14311,29 +14322,29 @@ FtlSuperblockPowerLostFix: add x1, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w1, [x1,-96] - cbnz w1, .L2209 + ldr w1, [x1,416] + cbnz w1, .L2212 adrp x21, .LANCHOR0 add x2, x21, :lo12:.LANCHOR0 ldrb w22, [x2,196] - cbz w22, .L2224 + cbz w22, .L2227 ldrb w22, [x0,8] cmp w22, 1 - bne .L2220 + bne .L2223 ldrh w24, [x0,4] - b .L2211 -.L2220: + b .L2214 +.L2223: mov w22, w1 -.L2224: +.L2227: mov w24, 12 -.L2211: +.L2214: mov x19, x0 mov w0, -1 str w0, [x29,96] add x0, x20, :lo12:.LANCHOR2 mov w2, 61589 - ldr x23, [x0,2120] - ldr x1, [x0,2072] + ldr x23, [x0,3656] + ldr x1, [x0,3608] str x1, [x29,80] mov w1, -3 str x23, [x29,88] @@ -14343,54 +14354,55 @@ FtlSuperblockPowerLostFix: ldrh w1, [x19] strh w1, [x23,2] strh wzr, [x23] - ldr x1, [x0,2072] + ldr x1, [x0,3608] str w2, [x1] - ldr x1, [x0,2072] + ldr x1, [x0,3608] mov w0, 22136 movk w0, 0x1234, lsl 16 str w0, [x1,4] -.L2212: +.L2215: sub w24, w24, #1 cmn w24, #1 - beq .L2215 + beq .L2218 ldrh w0, [x19,4] - cbnz w0, .L2213 -.L2215: + cbnz w0, .L2216 +.L2218: + add x20, x20, :lo12:.LANCHOR2 ldrh w0, [x19] - add x21, x21, :lo12:.LANCHOR0 - ldr x2, [x20,#:lo12:.LANCHOR2] - lsl x0, x0, 1 ldrh w3, [x19,4] + add x21, x21, :lo12:.LANCHOR0 + lsl x0, x0, 1 + ldr x2, [x20,512] ldrh w1, [x2,x0] sub w1, w1, w3 strh w1, [x2,x0] strb wzr, [x19,6] - ldrh w0, [x21,2024] + ldrh w0, [x21,2536] strh w0, [x19,2] strh wzr, [x19,4] - b .L2209 -.L2213: + b .L2212 +.L2216: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2215 + beq .L2218 add x1, x20, :lo12:.LANCHOR2 mov w2, w22 mov w3, 0 - ldr w0, [x1,236] + ldr w0, [x1,748] str w0, [x23,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x1,236] + str w0, [x1,748] add x0, x29, 72 mov w1, 1 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2212 -.L2209: + b .L2215 +.L2212: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14417,12 +14429,12 @@ ftl_map_blk_gc: ldrh w2, [x19,8] sub w1, w1, #4 cmp w2, w1 - blt .L2226 + blt .L2229 ubfiz x0, x0, 1, 16 ldrh w24, [x20,x0] - cbz w24, .L2226 + cbz w24, .L2229 ldr w1, [x19,52] - cbnz w1, .L2226 + cbnz w1, .L2229 mov w2, 1 str w2, [x19,52] strh w1, [x20,x0] @@ -14431,29 +14443,29 @@ ftl_map_blk_gc: sub w0, w0, #1 strh w0, [x19,8] add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2026] + ldrh w0, [x0,2538] cmp w1, w0 - bcc .L2227 + bcc .L2230 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2227: +.L2230: adrp x20, .LANCHOR4 mov w21, 0 add x20, x20, :lo12:.LANCHOR4 adrp x26, .LANCHOR2 - add x20, x20, 160 -.L2228: + add x20, x20, 1696 +.L2231: ldrh w0, [x19,6] cmp w0, w21 - bls .L2237 + bls .L2240 ubfiz x0, x21, 2, 16 add x27, x25, x0 ldr w1, [x25,x0] cmp w24, w1, lsr 10 - bne .L2229 + bne .L2232 add x1, x26, :lo12:.LANCHOR2 - ldr x2, [x1,2080] - ldr x23, [x1,2120] + ldr x2, [x1,3616] + ldr x23, [x1,3656] mov w1, 1 str x2, [x20,8] mov w2, w1 @@ -14464,51 +14476,51 @@ ftl_map_blk_gc: bl FlashReadPages ldr w0, [x20] cmn w0, #1 - bne .L2230 -.L2232: + bne .L2233 +.L2235: adrp x1, .LANCHOR4 str wzr, [x27] add x1, x1, :lo12:.LANCHOR4 adrp x0, .LC129 ldrh w2, [x23,8] add x0, x0, :lo12:.LC129 - ldr w1, [x1,164] + ldr w1, [x1,1700] bl printk adrp x0, .LANCHOR2 mov w1, 1 add x0, x0, :lo12:.LANCHOR2 - str w1, [x0,-96] - b .L2231 -.L2230: + str w1, [x0,416] + b .L2234 +.L2233: ldrh w0, [x23,8] cmp w0, w21 - bne .L2232 + bne .L2235 ldrh w1, [x23] ldrh w0, [x19,4] cmp w1, w0 - bne .L2232 + bne .L2235 ldr x2, [x20,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L2229: +.L2232: add w21, w21, 1 uxth w21, w21 - b .L2228 -.L2237: + b .L2231 +.L2240: mov w0, w24 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L2226: +.L2229: add x22, x22, :lo12:.LANCHOR0 ldrh w1, [x19,2] - ldrh w0, [x22,2026] + ldrh w0, [x22,2538] cmp w1, w0 - bcc .L2231 + bcc .L2234 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2231: +.L2234: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -14530,15 +14542,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,-96] + ldr w20, [x1,416] ldr x21, [x0,16] ldr x26, [x0,40] - cbnz w20, .L2239 + cbnz w20, .L2242 mov x19, x0 ldrh w0, [x0] mov w2, 65535 cmp w0, w2 - bne .L2240 + bne .L2243 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -14549,20 +14561,20 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L2239 -.L2240: + b .L2242 +.L2243: ubfiz x0, x0, 1, 16 ldrh w2, [x19,2] - ldr x23, [x1,2120] + ldr x23, [x1,3656] adrp x22, .LANCHOR0 ldrh w25, [x21,x0] adrp x21, .LANCHOR4 add x0, x21, :lo12:.LANCHOR4 orr w2, w2, w25, lsl 10 - str w2, [x0,164] - ldr x2, [x1,2072] - str x2, [x0,168] - str x23, [x0,176] + str w2, [x0,1700] + ldr x2, [x1,3608] + str x2, [x0,1704] + str x23, [x0,1712] ldr w0, [x19,48] str w0, [x23,4] mov w0, -1291 @@ -14571,47 +14583,47 @@ Ftl_write_map_blk_to_last_page: strh w0, [x23] add x0, x22, :lo12:.LANCHOR0 strh w25, [x23,2] - ldrh w2, [x0,2026] - ldr x0, [x1,2072] + ldrh w2, [x0,2538] + ldr x0, [x1,3608] mov w1, 255 lsl w2, w2, 3 bl ftl_memset mov w0, w20 -.L2241: +.L2244: ldrh w1, [x19,6] cmp w1, w0 - bls .L2248 + bls .L2251 ubfiz x3, x0, 2, 32 ldr w1, [x26,x3] cmp w25, w1, lsr 10 - bne .L2242 + bne .L2245 add x2, x24, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 - ldr x4, [x2,2072] + ldr x4, [x2,3608] ubfiz x1, x20, 3, 16 str w0, [x4,x1] - ldr x2, [x2,2072] + ldr x2, [x2,3608] ldr w3, [x26,x3] add x1, x2, x1 str w3, [x1,4] -.L2242: +.L2245: add w0, w0, 1 uxth w0, w0 - b .L2241 -.L2248: + b .L2244 +.L2251: add x22, x22, :lo12:.LANCHOR0 ldrb w0, [x22,72] - cbz w0, .L2244 + cbz w0, .L2247 add x0, x21, :lo12:.LANCHOR4 - ldrh w1, [x22,2034] - ldr x0, [x0,168] + ldrh w1, [x22,2546] + ldr x0, [x0,1704] bl js_hash str w0, [x23,12] -.L2244: +.L2247: mov w1, 1 add x0, x21, :lo12:.LANCHOR4 - add x0, x0, 160 + add x0, x0, 1696 mov w2, w1 mov w3, 0 bl FlashProgPages @@ -14620,7 +14632,7 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L2239: +.L2242: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14647,44 +14659,44 @@ FtlMapWritePage: mov w26, w1 str x2, [x29,104] mov w22, 0 - add x23, x23, 160 + add x23, x23, 1696 add x24, x24, :lo12:.LC130 -.L2250: +.L2253: adrp x19, .LANCHOR2 adrp x20, .LANCHOR0 add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,216] + ldr w0, [x1,728] add w0, w0, 1 - str w0, [x1,216] + str w0, [x1,728] add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x28,2] - ldrh w0, [x0,2026] + ldrh w0, [x0,2538] sub w0, w0, #1 cmp w1, w0 - bge .L2251 + bge .L2254 ldrh w1, [x28] mov w0, 65535 cmp w1, w0 - bne .L2252 -.L2251: + bne .L2255 +.L2254: mov x0, x28 bl Ftl_write_map_blk_to_last_page -.L2252: +.L2255: add x2, x19, :lo12:.LANCHOR2 - ldr w1, [x2,-96] - cbnz w1, .L2253 + ldr w1, [x2,416] + cbnz w1, .L2256 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, 160 + add x3, x3, 1696 orr w0, w0, w25, lsl 10 str w0, [x3,4] ldr x0, [x29,104] str x0, [x3,8] - ldr x0, [x2,2120] + ldr x0, [x2,3656] mov w2, 16 str x0, [x3,16] str x3, [x29,96] @@ -14699,14 +14711,14 @@ FtlMapWritePage: strh w0, [x2] strh w25, [x2,2] ldrb w0, [x1,72] - cbz w0, .L2254 + cbz w0, .L2257 ldr x0, [x3,8] - ldrh w1, [x1,2034] + ldrh w1, [x1,2546] str x2, [x29,96] bl js_hash ldr x2, [x29,96] str w0, [x2,12] -.L2254: +.L2257: mov w1, 1 mov x0, x23 mov w2, w1 @@ -14718,7 +14730,7 @@ FtlMapWritePage: strh w0, [x28,2] ldr w1, [x23] cmn w1, #1 - bne .L2255 + bne .L2258 ldr w1, [x23,4] mov x0, x24 add w22, w22, 1 @@ -14726,43 +14738,43 @@ FtlMapWritePage: uxth w22, w22 ldrh w0, [x28,2] cmp w0, 2 - bhi .L2256 + bhi .L2259 add x20, x20, :lo12:.LANCHOR0 - ldrh w0, [x20,2026] + ldrh w0, [x20,2538] sub w0, w0, #1 strh w0, [x28,2] -.L2256: +.L2259: cmp w22, 3 - bls .L2250 + bls .L2253 add x21, x21, :lo12:.LANCHOR4 adrp x0, .LC131 add x0, x0, :lo12:.LC131 mov w2, w22 add x19, x19, :lo12:.LANCHOR2 - ldr w1, [x21,164] + ldr w1, [x21,1700] bl printk mov w0, 1 - str w0, [x19,-96] - b .L2253 -.L2255: - cbz w1, .L2258 - strh w25, [x28,60] + str w0, [x19,416] + b .L2256 .L2258: + cbz w1, .L2261 + strh w25, [x28,60] +.L2261: cmp w0, 1 - beq .L2259 + beq .L2262 cmp w1, 256 - beq .L2259 + beq .L2262 ldr w0, [x28,56] - cbz w0, .L2260 -.L2259: + cbz w0, .L2263 +.L2262: str wzr, [x28,56] - b .L2250 -.L2260: + b .L2253 +.L2263: add x21, x21, :lo12:.LANCHOR4 ldr x0, [x28,40] - ldr w1, [x21,164] + ldr w1, [x21,1700] str w1, [x0,w26,uxtw 2] -.L2253: +.L2256: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14782,13 +14794,13 @@ flush_l2p_region: adrp x20, .LANCHOR2 ubfiz x19, x0, 4, 16 add x20, x20, :lo12:.LANCHOR2 - add x0, x20, 2256 - ldr x1, [x20,184] + add x0, x20, 3792 + ldr x1, [x20,696] add x2, x1, x19 ldrh w1, [x1,x19] ldr x2, [x2,8] bl FtlMapWritePage - ldr x0, [x20,184] + ldr x0, [x20,696] add x19, x0, x19 ldr w0, [x19,4] and w0, w0, 2147483647 @@ -14826,11 +14838,11 @@ FtlMapTblRecovery: adrp x0, .LANCHOR4 add x4, x0, :lo12:.LANCHOR4 str x0, [x29,112] - add x4, x4, 160 + add x4, x4, 1696 str x21, [x29,128] - ldr x2, [x1,2072] + ldr x2, [x1,3608] sub w0, w27, #1 - ldr x20, [x1,2120] + ldr x20, [x1,3656] mov w1, -1 str x2, [x4,8] str x20, [x4,16] @@ -14842,14 +14854,14 @@ FtlMapTblRecovery: str wzr, [x23,48] str w1, [x23,56] str w0, [x29,108] -.L2269: +.L2272: cmp w19, w27 adrp x22, .LANCHOR0 - bge .L2287 + bge .L2290 ldr w0, [x29,108] sxtw x2, w19 cmp w19, w0 - bne .L2270 + bne .L2273 lsl x0, x2, 1 mov w1, 1 add x21, x24, x0 @@ -14868,10 +14880,10 @@ FtlMapTblRecovery: str w0, [x23,48] ldr x0, [x29,112] add x19, x0, :lo12:.LANCHOR4 - add x19, x19, 160 -.L2271: + add x19, x19, 1696 +.L2274: cmp w26, w24 - bge .L2287 + bge .L2290 ldrh w0, [x21] mov w1, 1 mov w2, w1 @@ -14881,57 +14893,57 @@ FtlMapTblRecovery: bl FlashReadPages add x1, x22, :lo12:.LANCHOR0 ldrb w0, [x1,72] - cbz w0, .L2272 + cbz w0, .L2275 ldr x0, [x19,16] ldr w28, [x0,12] - cbz w28, .L2272 + cbz w28, .L2275 ldr x0, [x19,8] - ldrh w1, [x1,2034] + ldrh w1, [x1,2546] bl js_hash cmp w28, w0 - beq .L2272 + beq .L2275 str w27, [x19] -.L2272: +.L2275: ldr w0, [x19] cmn w0, #1 - beq .L2273 + beq .L2276 ldrh w0, [x20,8] cmp w0, w25 - bcs .L2273 + bcs .L2276 ldrh w2, [x20] ldrh w1, [x23,4] cmp w2, w1 - bne .L2273 + bne .L2276 ubfiz x0, x0, 2, 16 ldr x2, [x29,136] ldr w1, [x19,4] str w1, [x2,x0] -.L2273: +.L2276: add w26, w26, 1 sxth w26, w26 - b .L2271 -.L2287: + b .L2274 +.L2290: mov x0, x23 add x22, x22, :lo12:.LANCHOR0 bl ftl_free_no_use_map_blk ldrh w1, [x23,2] - ldrh w0, [x22,2026] + ldrh w0, [x22,2538] cmp w1, w0 - bne .L2276 + bne .L2279 mov x0, x23 bl ftl_map_blk_alloc_new_blk - b .L2276 -.L2270: + b .L2279 +.L2273: ldr x0, [x29,128] lsl x2, x2, 1 add x0, x0, :lo12:.LANCHOR2 - ldr x0, [x0,2072] + ldr x0, [x0,3608] str x0, [x21,8] add x0, x24, x2 str x0, [x29,120] add x0, x26, :lo12:.LANCHOR0 ldrh w1, [x24,x2] - ldrh w0, [x0,2026] + ldrh w0, [x0,2538] sub w0, w0, #1 orr w0, w0, w1, lsl 10 mov w1, 1 @@ -14941,46 +14953,46 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L2288 + beq .L2291 ldrh w1, [x20] mov w22, 0 ldrh w0, [x23,4] cmp w1, w0 - bne .L2309 + bne .L2312 ldrh w1, [x20,8] mov w0, 64245 cmp w1, w0 - bne .L2309 + bne .L2312 mov w5, w22 -.L2278: +.L2281: add x0, x26, :lo12:.LANCHOR0 - ldrh w0, [x0,2026] + ldrh w0, [x0,2538] sub w0, w0, #1 cmp w5, w0 - bge .L2281 + bge .L2284 ldr x0, [x29,128] sbfiz x1, x5, 3, 32 add x0, x0, :lo12:.LANCHOR2 - ldr x2, [x0,2072] + ldr x2, [x0,3608] ldrh w0, [x2,x1] cmp w0, w25 - bcs .L2279 + bcs .L2282 add x1, x2, x1 ubfiz x0, x0, 2, 16 ldr x2, [x29,136] ldr w1, [x1,4] str w1, [x2,x0] -.L2279: +.L2282: add w5, w5, 1 sxth w5, w5 - b .L2278 -.L2288: + b .L2281 +.L2291: mov w22, 0 -.L2309: +.L2312: add x6, x26, :lo12:.LANCHOR0 - ldrh w0, [x6,2026] + ldrh w0, [x6,2538] cmp w22, w0 - bge .L2281 + bge .L2284 ldr x0, [x29,120] mov w1, 1 mov w2, w1 @@ -14992,43 +15004,43 @@ FtlMapTblRecovery: bl FlashReadPages ldr x6, [x29,96] ldrb w0, [x6,72] - cbz w0, .L2282 + cbz w0, .L2285 ldr x0, [x21,16] ldr w2, [x0,12] - cbz w2, .L2282 + cbz w2, .L2285 ldr x0, [x21,8] - ldrh w1, [x6,2034] + ldrh w1, [x6,2546] str x2, [x29,96] bl js_hash ldr x2, [x29,96] cmp w2, w0 - beq .L2282 + beq .L2285 mov w0, -1 str w0, [x21] -.L2282: +.L2285: ldr w0, [x21] cmn w0, #1 - beq .L2283 + beq .L2286 ldrh w0, [x20,8] cmp w0, w25 - bcs .L2283 + bcs .L2286 ldrh w2, [x20] ldrh w1, [x23,4] cmp w2, w1 - bne .L2283 + bne .L2286 ubfiz x0, x0, 2, 16 ldr x2, [x29,136] ldr w1, [x21,4] str w1, [x2,x0] -.L2283: +.L2286: add w5, w22, 1 sxth w22, w5 - b .L2309 -.L2281: + b .L2312 +.L2284: add w19, w19, 1 sxth w19, w19 - b .L2269 -.L2276: + b .L2272 +.L2279: mov x0, x23 bl ftl_map_blk_gc mov x0, x23 @@ -15051,24 +15063,24 @@ FtlLoadVonderInfo: add x0, x0, :lo12:.LANCHOR4 add x1, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! - add x0, x0, 224 + add x0, x0, 1760 add x29, sp, 0 - ldrh w2, [x1,2044] + ldrh w2, [x1,2556] strh w2, [x0,10] mov w2, -3962 strh w2, [x0,4] - ldrh w2, [x1,2070] + ldrh w2, [x1,2582] strh w2, [x0,8] - ldrh w2, [x1,2046] - ldr x1, [x1,2072] + ldrh w2, [x1,2558] + ldr x1, [x1,2584] str x1, [x0,16] adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 strh w2, [x0,6] - ldr x2, [x1,2200] + ldr x2, [x1,3736] str x2, [x0,24] - ldr x2, [x1,2192] - ldr x1, [x1,2208] + ldr x2, [x1,3728] + ldr x1, [x1,3744] str x2, [x0,32] str x1, [x0,40] bl FtlMapTblRecovery @@ -15085,7 +15097,7 @@ FtlLoadMapInfo: bl FtlL2PDataInit adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 2256 + add x0, x0, 3792 bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -15107,26 +15119,26 @@ FtlVendorPartWrite: stp x21, x22, [sp,32] mov w28, w1 add w1, w26, w1 - ldrh w21, [x0,2032] + ldrh w21, [x0,2544] mov x25, x2 - ldrh w0, [x0,2020] + ldrh w0, [x0,2532] mov w20, -1 cmp w1, w0 - bhi .L2313 + bhi .L2316 adrp x24, .LANCHOR4 lsr w21, w26, w21 add x24, x24, :lo12:.LANCHOR4 mov w20, 0 adrp x27, .LANCHOR2 - add x24, x24, 224 -.L2314: - cbz w28, .L2313 + add x24, x24, 1760 +.L2317: + cbz w28, .L2316 adrp x0, .LANCHOR2 add x2, x0, :lo12:.LANCHOR2 - ldr x0, [x2,2208] + ldr x0, [x2,3744] ldr w4, [x0,w21,uxtw 2] add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2030] + ldrh w1, [x0,2542] uxth w0, w28 udiv w22, w26, w1 msub w22, w22, w1, w26 @@ -15135,9 +15147,9 @@ FtlVendorPartWrite: cmp w19, w28 csel w19, w0, w19, hi cmp w19, w1 - beq .L2316 - cbz w4, .L2316 - ldr x0, [x2,2088] + beq .L2319 + cbz w4, .L2319 + ldr x0, [x2,3624] mov w1, 1 str x0, [x29,128] mov w2, w1 @@ -15145,22 +15157,22 @@ FtlVendorPartWrite: str w4, [x29,124] str xzr, [x29,136] bl FlashReadPages - b .L2317 -.L2316: + b .L2320 +.L2319: add x0, x27, :lo12:.LANCHOR2 add x2, x23, :lo12:.LANCHOR0 mov w1, 0 - ldr x0, [x0,2088] - ldrh w2, [x2,2034] + ldr x0, [x0,3624] + ldrh w2, [x2,2546] bl ftl_memset -.L2317: +.L2320: 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,2088] + ldr x0, [x5,3624] sub w28, w28, w19 str x5, [x29,96] add w26, w26, w19 @@ -15170,14 +15182,14 @@ FtlVendorPartWrite: mov w1, w21 mov x0, x24 add w21, w21, 1 - ldr x2, [x5,2088] + ldr x2, [x5,3624] bl FtlMapWritePage cmn w0, #1 ldr x4, [x29,104] csinv w20, w20, wzr, ne add x25, x25, x4, sxtw - b .L2314 -.L2313: + b .L2317 +.L2316: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15196,46 +15208,46 @@ Ftl_save_ext_data: add x0, x0, :lo12:.LANCHOR2 movk w1, 0x4654, lsl 16 stp x29, x30, [sp, -16]! - add x2, x0, 336 + add x2, x0, 848 add x29, sp, 0 - ldr w3, [x0,336] + ldr w3, [x0,848] cmp w3, w1 - bne .L2327 - mov w1, 87 + bne .L2330 + mov w1, 96 movk w1, 0x5000, lsl 16 str w1, [x2,4] - ldr w1, [x0,224] + ldr w1, [x0,736] str w1, [x2,88] - ldr w1, [x0,228] + ldr w1, [x0,740] str w1, [x2,92] - ldr w1, [x0,220] + ldr w1, [x0,732] str w1, [x2,8] - ldr w1, [x0,208] + ldr w1, [x0,720] str w1, [x2,12] - ldr w1, [x0,200] + ldr w1, [x0,712] str w1, [x2,16] - ldr w1, [x0,216] + ldr w1, [x0,728] str w1, [x2,20] - ldr w1, [x0,244] + ldr w1, [x0,756] str w1, [x2,28] - ldr w1, [x0,-72] + ldr w1, [x0,440] str w1, [x2,32] - ldr w1, [x0,204] + ldr w1, [x0,716] str w1, [x2,36] - ldr w1, [x0,212] + ldr w1, [x0,724] str w1, [x2,40] - ldr w1, [x0,252] + ldr w1, [x0,764] str w1, [x2,44] - ldr w1, [x0,256] + ldr w1, [x0,768] str w1, [x2,48] - ldr w1, [x0,328] - ldr w0, [x0,2020] + ldr w1, [x0,840] + ldr w0, [x0,3556] str w1, [x2,60] mov w1, 1 str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2327: +.L2330: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -15243,57 +15255,57 @@ Ftl_save_ext_data: .global FtlEctTblFlush .type FtlEctTblFlush, %function FtlEctTblFlush: - adrp x1, .LANCHOR0+1948 + adrp x1, .LANCHOR0+2460 adrp x2, .LANCHOR2 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w3, [x1,#:lo12:.LANCHOR0+1948] + ldr w3, [x1,#:lo12:.LANCHOR0+2460] mov w1, 32 - cbz w3, .L2330 + cbz w3, .L2333 add x3, x2, :lo12:.LANCHOR2 - ldr w3, [x3,256] + ldr w3, [x3,768] cmp w3, 39 mov w3, 4 csel w1, w1, w3, hi -.L2330: +.L2333: adrp x3, .LANCHOR4 add x3, x3, :lo12:.LANCHOR4 - ldrh w4, [x3,288] + ldrh w4, [x3,1824] cmp w4, 31 - bhi .L2331 + bhi .L2334 add w4, w4, 1 mov w1, 1 - strh w4, [x3,288] -.L2331: - cbnz w0, .L2332 + strh w4, [x3,1824] +.L2334: + cbnz w0, .L2335 add x0, x2, :lo12:.LANCHOR2 - ldr x3, [x0,2160] + ldr x3, [x0,3696] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L2333 -.L2332: + bcc .L2336 +.L2335: add x2, x2, :lo12:.LANCHOR2 - ldr x0, [x2,2160] + ldr x0, [x2,3696] ldr w1, [x0,16] str w1, [x0,20] mov w1, 17221 movk w1, 0x4254, lsl 16 str w1, [x0] - ldr x0, [x2,2160] - ldrh w1, [x2,2144] + ldr x0, [x2,3696] + ldrh w1, [x2,3680] str wzr, [x0,4] lsl w3, w1, 9 str w3, [x0,12] ldr w3, [x0,8] - ldr x2, [x2,2160] + ldr x2, [x2,3696] add w3, w3, 1 str w3, [x0,8] mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2333: +.L2336: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -15315,30 +15327,30 @@ FtlVendorPartRead: stp x27, x28, [sp,80] mov x26, x2 add w3, w23, w22 - ldrh w2, [x0,2020] + ldrh w2, [x0,2532] str x1, [x29,136] cmp w3, w2 - ldrh w20, [x0,2032] + ldrh w20, [x0,2544] mov w0, -1 - bhi .L2338 + bhi .L2341 adrp x27, .LANCHOR4 adrp x0, .LC132 add x0, x0, :lo12:.LC132 add x27, x27, :lo12:.LANCHOR4 str x0, [x29,128] lsr w20, w23, w20 - add x0, x27, 224 + add x0, x27, 1760 mov w21, 0 str x0, [x29,120] -.L2339: - cbz w22, .L2347 +.L2342: + cbz w22, .L2350 adrp x25, .LANCHOR2 add x4, x25, :lo12:.LANCHOR2 - ldr x0, [x4,2208] + ldr x0, [x4,3744] ldr w3, [x0,w20,uxtw 2] ldr x0, [x29,136] add x0, x0, :lo12:.LANCHOR0 - ldrh w19, [x0,2030] + ldrh w19, [x0,2542] uxth w0, w22 udiv w24, w23, w19 msub w24, w24, w19, w23 @@ -15347,8 +15359,8 @@ FtlVendorPartRead: cmp w19, w22 csel w19, w0, w19, hi lsl w28, w19, 9 - cbz w3, .L2341 - ldr x0, [x4,2088] + cbz w3, .L2344 + ldr x0, [x4,3624] mov w1, 1 str x0, [x29,160] mov w2, w1 @@ -15361,10 +15373,10 @@ FtlVendorPartRead: ldr w0, [x29,152] ldr x3, [x29,104] cmn w0, #1 - ldr w0, [x27,160] + ldr w0, [x27,1696] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L2343 + bne .L2346 ldr x0, [x29,128] mov w1, w20 mov w2, w3 @@ -15372,31 +15384,31 @@ FtlVendorPartRead: ldr x4, [x29,112] mov w1, w20 ldr x0, [x29,120] - ldr x2, [x4,2088] + ldr x2, [x4,3624] bl FtlMapWritePage -.L2343: +.L2346: add x25, x25, :lo12:.LANCHOR2 ubfiz x24, x24, 9, 16 mov x0, x26 mov w2, w28 - ldr x1, [x25,2088] + ldr x1, [x25,3624] add x1, x1, x24 bl ftl_memcpy - b .L2344 -.L2341: + b .L2347 +.L2344: mov x0, x26 mov w1, w3 mov w2, w28 bl ftl_memset -.L2344: +.L2347: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 add x26, x26, x28, sxtw - b .L2339 -.L2347: + b .L2342 +.L2350: mov w0, w21 -.L2338: +.L2341: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15415,26 +15427,26 @@ FtlLoadEctTbl: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,2144] - ldr x2, [x19,2160] + ldrh w1, [x19,3680] + ldr x2, [x19,3696] bl FtlVendorPartRead - ldr x0, [x19,2160] + ldr x0, [x19,3696] ldr w1, [x0] mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L2349 + beq .L2352 adrp x0, .LC75 adrp x1, .LC133 add x1, x1, :lo12:.LC133 add x0, x0, :lo12:.LC75 bl printk - ldrh w2, [x19,2144] + ldrh w2, [x19,3680] mov w1, 0 - ldr x0, [x19,2160] + ldr x0, [x19,3696] lsl w2, w2, 9 bl ftl_memset -.L2349: +.L2352: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -15452,82 +15464,89 @@ Ftl_load_ext_data: adrp x19, .LANCHOR2 str x21, [sp,32] add x20, x19, :lo12:.LANCHOR2 - add x21, x20, 336 + add x21, x20, 848 mov x2, x21 bl FtlVendorPartRead - ldr w1, [x20,336] + ldr w1, [x20,848] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L2351 + beq .L2354 mov x0, x21 mov w1, 0 mov w2, 512 bl ftl_memset mov w0, 19539 movk w0, 0x4654, lsl 16 - str w0, [x20,336] -.L2351: + str w0, [x20,848] +.L2354: add x0, x19, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 - ldr w3, [x0,336] + ldr w3, [x0,848] cmp w3, w2 - bne .L2352 - ldr w2, [x0,424] - str w2, [x0,224] - ldr w2, [x0,428] - str w2, [x0,228] - ldr w2, [x0,344] - str w2, [x0,220] - ldr w2, [x0,348] - str w2, [x0,208] - ldr w2, [x0,352] - str w2, [x0,200] - ldr w2, [x0,356] - str w2, [x0,216] - ldr w2, [x0,364] - str w2, [x0,244] - ldr w2, [x0,368] - str w2, [x0,-72] - ldr w2, [x0,372] - str w2, [x0,204] - ldr w2, [x0,376] - str w2, [x0,212] - ldr w2, [x0,380] - str w2, [x0,252] - ldr w1, [x0,396] - ldr w2, [x0,384] - str w2, [x0,256] - str w1, [x0,328] -.L2352: + 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] + ldr w2, [x0,864] + str w2, [x0,712] + ldr w2, [x0,868] + str w2, [x0,728] + ldr w2, [x0,876] + str w2, [x0,756] + ldr w2, [x0,880] + str w2, [x0,440] + 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,896] + str w2, [x0,768] + str w1, [x0,840] +.L2355: add x0, x19, :lo12:.LANCHOR2 + mov w1, 34661 + movk w1, 0x1234, lsl 16 + add x0, x0, 848 adrp x20, .LANCHOR0 - ldr w1, [x0,404] - str wzr, [x0,2020] - mov w0, 34661 - movk w0, 0x1234, lsl 16 - cmp w1, w0 - bne .L2353 - add x0, x20, :lo12:.LANCHOR0 - mov w1, 1 - str w1, [x0,1948] + ldr w2, [x0,68] + str wzr, [x0,2708] + cmp w2, w1 + bne .L2356 + add x1, x20, :lo12:.LANCHOR0 + ldrb w2, [x1,196] + cbz w2, .L2357 + str wzr, [x0,68] + bl Ftl_save_ext_data + b .L2356 +.L2357: + mov w0, 1 + str w0, [x1,2460] adrp x0, .LC75 adrp x1, .LC134 add x0, x0, :lo12:.LC75 add x1, x1, :lo12:.LC134 bl printk -.L2353: +.L2356: add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR0 ldr x21, [sp,32] - ldrh w1, [x20,2016] - ldr w2, [x19,240] - ldr w0, [x19,244] + ldrh w1, [x20,2528] + ldr w2, [x19,752] + ldr w0, [x19,756] madd w0, w1, w2, w0 - ldrh w1, [x20,1964] + ldrh w1, [x20,2476] udiv w0, w0, w1 - str w0, [x19,248] + str w0, [x19,760] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -15543,52 +15562,52 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w20, [x0,6] ldr x4, [x0,40] - cbz w1, .L2354 + cbz w1, .L2358 adrp x3, .LANCHOR2 str wzr, [x0,56] add x3, x3, :lo12:.LANCHOR2 - ldr w1, [x3,-96] - cbnz w1, .L2354 + ldr w1, [x3,416] + cbnz w1, .L2358 adrp x2, .LANCHOR4 sub w20, w20, #1 add x1, x2, :lo12:.LANCHOR4 mov x21, x0 uxth w20, w20 - ldr x0, [x3,2080] - ldr x3, [x3,2120] - add x1, x1, 160 + ldr x0, [x3,3616] + ldr x3, [x3,3656] + add x1, x1, 1696 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, .L2358 + cbz w3, .L2362 mov x0, x1 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L2359 -.L2358: - adrp x2, .LANCHOR0+2034 + b .L2363 +.L2362: + adrp x2, .LANCHOR0+2546 mov w1, 255 - ldrh w2, [x2,#:lo12:.LANCHOR0+2034] + ldrh w2, [x2,#:lo12:.LANCHOR0+2546] bl ftl_memset -.L2359: +.L2363: add x2, x19, :lo12:.LANCHOR4 mov x0, x21 mov w1, w20 - ldr x2, [x2,168] + ldr x2, [x2,1704] bl FtlMapWritePage -.L2354: +.L2358: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 ret .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .align 2 - .type FlashReadFacBbtData.part.16, %function -FlashReadFacBbtData.part.16: + .type FlashReadFacBbtData.part.17, %function +FlashReadFacBbtData.part.17: stp x29, x30, [sp, -32]! mov w3, 0 adrp x4, .LANCHOR4 @@ -15596,14 +15615,14 @@ FlashReadFacBbtData.part.16: str x19, [sp,16] mov w7, 1 mov x19, x0 - cbnz w1, .L2363 -.L2365: + cbnz w1, .L2367 +.L2369: add x0, x4, :lo12:.LANCHOR4 - ldr w1, [x0,92] + ldr w1, [x0,1628] cmp w3, w1 - bcs .L2363 + bcs .L2367 ubfx x5, x3, 5, 11 - ldr x0, [x0,56] + ldr x0, [x0,1592] lsl x5, x5, 2 lsl w6, w7, w3 add w3, w3, 1 @@ -15611,11 +15630,11 @@ FlashReadFacBbtData.part.16: uxth w3, w3 orr w6, w1, w6 str w6, [x0,x5] - b .L2365 -.L2363: + b .L2369 +.L2367: add x4, x4, :lo12:.LANCHOR4 mov x0, x19 - ldr x1, [x4,56] + ldr x1, [x4,1592] bl ftl_memcpy mov w2, 4 adrp x0, .LC135 @@ -15627,7 +15646,7 @@ FlashReadFacBbtData.part.16: mov w0, 0 ldp x29, x30, [sp], 32 ret - .size FlashReadFacBbtData.part.16, .-FlashReadFacBbtData.part.16 + .size FlashReadFacBbtData.part.17, .-FlashReadFacBbtData.part.17 .align 2 .global FlashReadFacBbtData .type FlashReadFacBbtData, %function @@ -15652,16 +15671,16 @@ FlashReadFacBbtData: add x0, x4, :lo12:.LANCHOR4 uxth w3, w3 sub w20, w3, #1 - ldr x1, [x0,56] + ldr x1, [x0,1592] mul w24, w23, w3 - ldr x0, [x0,112] + ldr x0, [x0,1648] uxth w20, w20 str x1, [x29,96] sub w19, w3, #16 str x0, [x29,104] -.L2368: +.L2372: cmp w20, w19 - ble .L2376 + ble .L2380 add w0, w20, w24 mov w1, 1 lsl w0, w0, 10 @@ -15671,26 +15690,26 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29,88] cmn w0, #1 - beq .L2369 + beq .L2373 add x0, x21, :lo12:.LANCHOR4 - ldr x0, [x0,112] + ldr x0, [x0,1648] ldrh w0, [x0] cmp w0, w26 - bne .L2369 + bne .L2373 mov w0, w22 - cbz x22, .L2370 + cbz x22, .L2374 mov x0, x22 mov w1, w23 mov w2, w25 - bl FlashReadFacBbtData.part.16 - b .L2370 -.L2369: + bl FlashReadFacBbtData.part.17 + b .L2374 +.L2373: sub w20, w20, #1 uxth w20, w20 - b .L2368 -.L2376: + b .L2372 +.L2380: mov w0, -1 -.L2370: +.L2374: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15706,51 +15725,51 @@ FlashGetBadBlockList: add x29, sp, 0 str x21, [sp,32] mov x21, x0 - adrp x0, .LANCHOR0+744 + adrp x0, .LANCHOR0+1256 stp x19, x20, [sp,16] adrp x20, .LANCHOR4 - ldr x0, [x0,#:lo12:.LANCHOR0+744] + ldr x0, [x0,#:lo12:.LANCHOR0+1256] ldrb w2, [x0,13] ldrh w19, [x0,14] add x0, x20, :lo12:.LANCHOR4 mul w19, w2, w19 - ldr x0, [x0,104] + ldr x0, [x0,1640] uxth w19, w19 add w2, w19, 7 lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L2378 -.L2382: + bne .L2382 +.L2386: mov w1, 0 - b .L2379 -.L2378: + b .L2383 +.L2382: mov w2, 0 lsr w0, w19, 4 mov w1, w2 sub w19, w19, #1 mov w5, 1 -.L2380: +.L2384: cmp w2, w19 - bge .L2379 + bge .L2383 add x3, x20, :lo12:.LANCHOR4 ubfx x4, x2, 5, 11 - ldr x6, [x3,104] + ldr x6, [x3,1640] lsl w3, w5, w2 ldr w4, [x6,x4,lsl 2] tst w3, w4 - beq .L2381 + beq .L2385 add w3, w1, 1 ubfiz x1, x1, 1, 16 strh w2, [x21,x1] uxth w1, w3 -.L2381: +.L2385: cmp w1, w0 - bcs .L2382 + bcs .L2386 add w2, w2, 1 uxth w2, w2 - b .L2380 -.L2379: + b .L2384 +.L2383: ubfiz x1, x1, 1, 16 mov w0, -1 ldp x19, x20, [sp,16] @@ -15773,33 +15792,33 @@ FtlMakeBbt: stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w21, [x0,-96] - cbnz w21, .L2388 + ldr w21, [x0,416] + cbnz w21, .L2392 adrp x19, .LANCHOR0 adrp x20, .LANCHOR4 add x24, x19, :lo12:.LANCHOR0 add x20, x20, :lo12:.LANCHOR4 - add x24, x24, 2104 - add x20, x20, 160 + add x24, x24, 2616 + add x20, x20, 1696 mov x25, x24 mov x26, x20 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L2389: +.L2393: add x22, x19, :lo12:.LANCHOR0 - ldrh w0, [x22,1978] + ldrh w0, [x22,2490] cmp w21, w0 - bcs .L2407 + bcs .L2411 add x1, x23, :lo12:.LANCHOR2 ldrh w28, [x25,12] - ldr x0, [x1,2072] - ldr x27, [x1,2120] + ldr x0, [x1,3608] + ldr x27, [x1,3656] mov w1, 65535 str x0, [x20,8] cmp w28, w1 str x27, [x20,16] - beq .L2390 - ldrh w0, [x22,2022] + beq .L2394 + ldrh w0, [x22,2534] mov w1, 1 mov w2, w1 madd w28, w21, w0, w28 @@ -15807,36 +15826,36 @@ FtlMakeBbt: str w0, [x20,4] mov x0, x20 bl FlashReadPages - ldrh w2, [x22,2022] + ldrh w2, [x22,2534] ldr x0, [x24,32] add w2, w2, 7 ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L2391 -.L2390: + b .L2395 +.L2394: mov w1, w21 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap - ldrh w22, [x22,2022] -.L2393: + ldrh w22, [x22,2534] +.L2397: sub w22, w22, #1 uxth w22, w22 -.L2392: +.L2396: add x28, x19, :lo12:.LANCHOR0 - ldrh w0, [x28,2022] + ldrh w0, [x28,2534] madd w0, w21, w0, w22 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2393 + beq .L2397 add x3, x23, :lo12:.LANCHOR2 mov w1, 0 mov w2, 16 strh w22, [x25,12] str x3, [x29,104] - ldr x0, [x3,2120] + ldr x0, [x3,3656] bl ftl_memset str wzr, [x27,4] mov w0, -3872 @@ -15844,9 +15863,9 @@ FtlMakeBbt: ldr x3, [x29,104] ldrh w0, [x25,12] strh w0, [x27,2] - ldrh w0, [x28,2022] + ldrh w0, [x28,2534] ldrh w1, [x25,12] - ldrh w2, [x3,2248] + ldrh w2, [x3,3784] madd w28, w21, w0, w1 ldr x1, [x24,32] lsl w2, w2, 2 @@ -15865,94 +15884,94 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x26] cmn w0, #1 - bne .L2391 + bne .L2395 mov w0, w28 bl FtlBbmMapBadBlock - b .L2392 -.L2391: + b .L2396 +.L2395: mov w0, w28 add w21, w21, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L2389 -.L2407: + b .L2393 +.L2411: mov w20, 0 -.L2396: +.L2400: add x21, x19, :lo12:.LANCHOR0 - ldrh w0, [x21,2038] + ldrh w0, [x21,2550] cmp w0, w20 - bls .L2408 + bls .L2412 mov w0, w20 add w20, w20, 1 bl FtlBbmMapBadBlock uxth w20, w20 - b .L2396 -.L2408: - ldrh w20, [x21,2116] + b .L2400 +.L2412: + ldrh w20, [x21,2628] mov w24, 65535 sub w20, w20, #1 uxth w20, w20 -.L2398: - add x22, x21, 2104 +.L2402: + add x22, x21, 2616 ldrh w0, [x22,12] sub w0, w0, #48 cmp w20, w0 - ble .L2402 + ble .L2406 mov w0, w20 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2399 + beq .L2403 mov w0, w20 bl FlashTestBlk - cbz w0, .L2400 + cbz w0, .L2404 mov w0, w20 bl FtlBbmMapBadBlock - b .L2399 -.L2400: - ldrh w0, [x21,2104] + b .L2403 +.L2404: + ldrh w0, [x21,2616] cmp w0, w24 - bne .L2401 - strh w20, [x21,2104] - b .L2399 -.L2401: + bne .L2405 + strh w20, [x21,2616] + b .L2403 +.L2405: strh w20, [x22,4] - b .L2402 -.L2399: + b .L2406 +.L2403: sub w20, w20, #1 uxth w20, w20 - b .L2398 -.L2402: + b .L2402 +.L2406: add x23, x23, :lo12:.LANCHOR2 add x19, x19, :lo12:.LANCHOR0 mov w2, 2 - ldr x1, [x23,-88] - ldrh w0, [x19,2104] - str wzr, [x19,2112] + ldr x1, [x23,424] + ldrh w0, [x19,2616] + str wzr, [x19,2624] lsl w0, w0, 10 str w0, [x1,4] - strh wzr, [x19,2106] - ldr x0, [x23,-88] - ldrh w1, [x19,2108] + strh wzr, [x19,2618] + ldr x0, [x23,424] + ldrh w1, [x19,2620] lsl w1, w1, 10 str w1, [x0,60] mov w1, 1 bl FlashEraseBlocks - ldrh w0, [x19,2104] + ldrh w0, [x19,2616] bl FtlBbmMapBadBlock - ldrh w0, [x19,2108] + ldrh w0, [x19,2620] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - strh wzr, [x19,2106] - ldr w0, [x19,2112] - ldrh w1, [x19,2108] + strh wzr, [x19,2618] + ldr w0, [x19,2624] + ldrh w1, [x19,2620] add w0, w0, 1 - str w0, [x19,2112] - ldrh w0, [x19,2104] - strh w0, [x19,2108] - strh w1, [x19,2104] + str w0, [x19,2624] + ldrh w0, [x19,2616] + strh w0, [x19,2620] + strh w1, [x19,2616] bl FtlBbmTblFlush -.L2388: +.L2392: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15976,10 +15995,10 @@ log2phys: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w4, [x3,2096] - ldrh w27, [x3,2032] + ldr w4, [x3,2608] + ldrh w27, [x3,2544] cmp w0, w4 - bcs .L2410 + bcs .L2414 add w27, w27, 7 adrp x20, .LANCHOR2 lsr w24, w0, w27 @@ -15988,25 +16007,25 @@ log2phys: str w2, [x29,112] mov x26, x1 uxth w23, w24 - ldrh w2, [x3,2062] - ldr x22, [x0,184] + ldrh w2, [x3,2574] + ldr x22, [x0,696] mov x0, 0 - b .L2411 -.L2410: + b .L2415 +.L2414: mov w0, -1 - cbnz w2, .L2412 + cbnz w2, .L2416 str w0, [x1] - b .L2412 -.L2416: + b .L2416 +.L2420: add x0, x0, 1 add x3, x22, x0, lsl 4 ldrh w3, [x3,-16] cmp w3, w23 - beq .L2413 -.L2411: + beq .L2417 +.L2415: uxth x19, w0 cmp w19, w2 - bcc .L2416 + bcc .L2420 bl select_l2p_ram_region uxth x19, w0 ubfiz x21, x19, 4, 16 @@ -16014,27 +16033,27 @@ log2phys: add x2, x22, x21 ldrh w3, [x22,x21] cmp w3, w1 - bne .L2424 -.L2417: + bne .L2428 +.L2421: add x28, x20, :lo12:.LANCHOR2 ubfiz x0, x23, 2, 16 - ldr x1, [x28,2216] + ldr x1, [x28,3752] ldr w25, [x1,x0] - cbnz w25, .L2418 + cbnz w25, .L2422 ldr x1, [x29,120] - ldr x0, [x28,184] + ldr x0, [x28,696] add x22, x1, :lo12:.LANCHOR0 mov w1, 255 add x0, x0, x21 - ldrh w2, [x22,2034] + ldrh w2, [x22,2546] ldr x0, [x0,8] bl ftl_memset - ldr x0, [x28,184] + ldr x0, [x28,696] strh w23, [x0,x21] - ldr x0, [x28,184] + ldr x0, [x28,696] add x21, x0, x21 str w25, [x21,4] -.L2413: +.L2417: mov x0, 1 lsl x27, x0, x27 ldr w0, [x29,116] @@ -16042,65 +16061,65 @@ log2phys: and w25, w0, w27 ldr w0, [x29,112] uxth x25, w25 - cbnz w0, .L2414 + cbnz w0, .L2418 add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,184] + ldr x0, [x0,696] add x0, x0, x19, lsl 4 ldr x0, [x0,8] ldr w0, [x0,x25,lsl 2] str w0, [x26] - b .L2415 -.L2414: + b .L2419 +.L2418: add x1, x20, :lo12:.LANCHOR2 lsl x0, x19, 4 ldr w3, [x26] - ldr x2, [x1,184] + ldr x2, [x1,696] add x2, x2, x0 ldr x2, [x2,8] str w3, [x2,x25,lsl 2] - strh w23, [x1,192] - ldr x2, [x1,184] + strh w23, [x1,704] + ldr x2, [x1,696] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2415: +.L2419: add x20, x20, :lo12:.LANCHOR2 - ldr x0, [x20,184] + ldr x0, [x20,696] add x19, x0, x19, lsl 4 mov w0, 0 ldr w1, [x19,4] cmn w1, #1 - beq .L2412 + beq .L2416 add w1, w1, 1 str w1, [x19,4] - b .L2412 -.L2424: + b .L2416 +.L2428: ldr w1, [x2,4] - tbz w1, #31, .L2417 + tbz w1, #31, .L2421 bl flush_l2p_region - b .L2417 -.L2418: - ldr x0, [x28,184] + b .L2421 +.L2422: + ldr x0, [x28,696] adrp x6, .LANCHOR4 add x6, x6, :lo12:.LANCHOR4 mov w1, 1 add x0, x0, x21 - add x22, x6, 160 + add x22, x6, 1696 mov w2, w1 str x6, [x29,104] - str w25, [x6,164] + str w25, [x6,1700] ldr x0, [x0,8] - str x0, [x6,168] - ldr x0, [x28,2120] - str x0, [x6,176] + str x0, [x6,1704] + ldr x0, [x28,3656] + str x0, [x6,1712] mov x0, x22 bl FlashReadPages ldr x0, [x22,16] ldr x6, [x29,104] ldrh w0, [x0,8] cmp w0, w23 - beq .L2419 + beq .L2423 adrp x0, .LC136 uxth w1, w24 mov w2, w25 @@ -16114,40 +16133,40 @@ log2phys: bl rknand_print_hex ldr x0, [x29,120] mov w2, 4 - ldr x1, [x28,2216] + ldr x1, [x28,3752] add x22, x0, :lo12:.LANCHOR0 adrp x0, .LC137 add x0, x0, :lo12:.LC137 - ldrh w3, [x22,2060] + ldrh w3, [x22,2572] bl rknand_print_hex mov w0, 1 - str w0, [x28,-96] - b .L2420 -.L2419: - ldr w0, [x6,160] + str w0, [x28,416] + b .L2424 +.L2423: + ldr w0, [x6,1696] cmp w0, 256 - bne .L2420 + bne .L2424 and w24, w24, 65535 adrp x0, .LC138 mov w1, w24 mov w2, w25 add x0, x0, :lo12:.LC138 bl printk - ldr x2, [x28,184] - add x0, x28, 2256 + ldr x2, [x28,696] + add x0, x28, 3792 mov w1, w24 add x2, x2, x21 ldr x2, [x2,8] bl FtlMapWritePage -.L2420: +.L2424: add x1, x20, :lo12:.LANCHOR2 - ldr x0, [x1,184] + ldr x0, [x1,696] add x0, x0, x21 str wzr, [x0,4] - ldr x0, [x1,184] + ldr x0, [x1,696] strh w23, [x0,x21] - b .L2413 -.L2412: + b .L2417 +.L2416: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16168,60 +16187,60 @@ FtlWriteDumpData: stp x23, x24, [sp,48] add x23, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w0, [x23,-96] - cbnz w0, .L2425 - ldrh w2, [x23,44] - cbz w2, .L2427 - ldrb w1, [x23,48] - cbnz w1, .L2427 + ldr w0, [x23,416] + cbnz w0, .L2429 + ldrh w2, [x23,556] + cbz w2, .L2431 + ldrb w1, [x23,560] + cbnz w1, .L2431 adrp x21, .LANCHOR0 - ldrb w1, [x23,47] + ldrb w1, [x23,559] add x21, x21, :lo12:.LANCHOR0 - ldrh w3, [x21,2024] + ldrh w3, [x21,2536] mul w1, w1, w3 cmp w2, w1 - beq .L2427 - ldrb w24, [x23,50] - ldr w22, [x21,2096] - ldrh w25, [x21,1956] - cbnz w24, .L2425 + beq .L2431 + ldrb w24, [x23,562] + ldr w22, [x21,2608] + ldrh w25, [x21,2468] + cbnz w24, .L2429 sub w22, w22, #1 add x1, x29, 84 mov w0, w22 mov w2, w24 bl log2phys - ldr x20, [x23,2120] + ldr x20, [x23,3656] ldr w0, [x29,84] - ldr x1, [x23,2072] + ldr x1, [x23,3608] str w0, [x29,92] cmn w0, #1 str w22, [x29,112] str x1, [x29,96] str x20, [x29,104] str w24, [x20,4] - beq .L2429 + beq .L2433 add x0, x29, 88 mov w1, 1 mov w2, w24 bl FlashReadPages - b .L2430 -.L2429: - ldr x0, [x23,2072] + b .L2434 +.L2433: + ldr x0, [x23,3608] mov w1, 255 - ldrh w2, [x21,2034] + ldrh w2, [x21,2546] bl ftl_memset -.L2430: +.L2434: add x24, x19, :lo12:.LANCHOR2 mov w0, -3947 lsl w25, w25, 2 strh w0, [x20] mov w23, 0 - add x21, x24, 40 -.L2431: + add x21, x24, 552 +.L2435: cmp w23, w25 - beq .L2432 + beq .L2436 ldrh w0, [x21,4] - cbz w0, .L2432 + cbz w0, .L2436 ldr w0, [x29,92] add w23, w23, 1 str w0, [x20,12] @@ -16231,7 +16250,7 @@ FtlWriteDumpData: str w22, [x20,8] bl get_new_active_ppa str w0, [x29,92] - ldr w1, [x24,236] + ldr w1, [x24,748] mov w2, 0 str w1, [x20,4] mov w3, w2 @@ -16239,21 +16258,21 @@ FtlWriteDumpData: add x0, x29, 88 cmn w1, #1 csel w1, w1, wzr, ne - str w1, [x24,236] + str w1, [x24,748] mov w1, 1 bl FlashProgPages ldrh w0, [x21] bl decrement_vpc_count - b .L2431 -.L2432: + b .L2435 +.L2436: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 - strb w0, [x19,50] - b .L2425 -.L2427: + strb w0, [x19,562] + b .L2429 +.L2431: add x19, x19, :lo12:.LANCHOR2 - strb wzr, [x19,50] -.L2425: + strb wzr, [x19,562] +.L2429: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16273,24 +16292,24 @@ l2p_flush: adrp x20, .LANCHOR0 adrp x21, .LANCHOR2 bl FtlWriteDumpData -.L2443: +.L2447: add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2062] + ldrh w0, [x0,2574] cmp w0, w19 - bls .L2446 + bls .L2450 add x1, x21, :lo12:.LANCHOR2 ubfiz x0, x19, 4, 16 - ldr x1, [x1,184] + ldr x1, [x1,696] add x0, x1, x0 ldr w0, [x0,4] - tbz w0, #31, .L2444 + tbz w0, #31, .L2448 mov w0, w19 bl flush_l2p_region -.L2444: +.L2448: add w19, w19, 1 uxth w19, w19 - b .L2443 -.L2446: + b .L2447 +.L2450: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -16306,92 +16325,91 @@ allocate_new_data_superblock: stp x19, x20, [sp,16] adrp x19, .LANCHOR2 str x21, [sp,32] - add x1, x19, :lo12:.LANCHOR2 + add x2, x19, :lo12:.LANCHOR2 ldrh w20, [x0] - ldr w1, [x1,-96] - cbnz w1, .L2448 + ldr w1, [x2,416] + cbnz w1, .L2452 mov x21, x0 mov w0, 65535 cmp w20, w0 - beq .L2449 + beq .L2453 ubfiz x1, x20, 1, 16 - ldr x0, [x19,#:lo12:.LANCHOR2] + ldr x0, [x2,512] ldrh w0, [x0,x1] - cbz w0, .L2450 + cbz w0, .L2454 mov w0, w20 bl INSERT_DATA_LIST - b .L2449 -.L2450: + b .L2453 +.L2454: mov w0, w20 bl INSERT_FREE_LIST -.L2449: +.L2453: add x2, x19, :lo12:.LANCHOR2 strb wzr, [x21,8] - add x0, x2, 88 + add x0, x2, 600 cmp x21, x0 - beq .L2451 + beq .L2455 adrp x1, .LANCHOR0 add x4, x1, :lo12:.LANCHOR0 - ldrh w3, [x4,1976] + ldrh w3, [x4,2488] cmp w3, 1 - beq .L2451 + beq .L2455 ldrb w0, [x4,196] - cbz w0, .L2452 -.L2451: + cbz w0, .L2456 +.L2455: mov w0, 1 strb w0, [x21,8] - b .L2453 -.L2452: - add x0, x2, 40 + b .L2457 +.L2456: + add x0, x2, 552 cmp x21, x0 - bne .L2453 + bne .L2457 cmp w3, 3 - beq .L2455 - ldr w0, [x2,328] + beq .L2459 + ldr w0, [x2,840] cmp w0, 1 - bne .L2456 -.L2455: + bne .L2460 +.L2459: add x2, x19, :lo12:.LANCHOR2 mov w0, 1 - strb w0, [x2,48] -.L2456: + strb w0, [x2,560] +.L2460: add x1, x1, :lo12:.LANCHOR0 - ldr w0, [x1,1948] - cbz w0, .L2453 + ldr w0, [x1,2460] + cbz w0, .L2457 add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,256] + ldr w0, [x1,768] cmp w0, 39 - bhi .L2453 + bhi .L2457 mov w0, 1 - strb w0, [x1,48] -.L2453: - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,2336] + strb w0, [x1,560] +.L2457: + add x3, x19, :lo12:.LANCHOR2 mov w0, 65535 + ldrh w1, [x3,3872] cmp w1, w0 - beq .L2458 + beq .L2462 cmp w20, w1 - bne .L2459 - adrp x0, .LANCHOR2 + bne .L2463 ubfiz x2, x1, 1, 16 - ldr x0, [x0,#:lo12:.LANCHOR2] + ldr x0, [x3,512] ldrh w0, [x0,x2] - cbz w0, .L2460 -.L2459: + cbz w0, .L2464 +.L2463: mov w0, w1 bl update_vpc_list -.L2460: +.L2464: add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - strh w0, [x19,2336] -.L2458: + strh w0, [x19,3872] +.L2462: mov x0, x21 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2448: +.L2452: mov w0, 0 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -16417,67 +16435,68 @@ FtlCheckVpc: stp x25, x26, [sp,64] add x21, x20, :lo12:.LANCHOR4 bl printk - add x0, x21, 296 + add x0, x21, 1832 mov w1, 0 mov x2, 8192 adrp x22, .LANCHOR0 bl memset -.L2474: +.L2478: add x0, x22, :lo12:.LANCHOR0 adrp x24, .LANCHOR0 - ldr w0, [x0,2096] + ldr w0, [x0,2608] cmp w19, w0 - bcs .L2491 + bcs .L2495 mov w0, w19 add x1, x29, 92 mov w2, 0 bl log2phys ldr w0, [x29,92] cmn w0, #1 - beq .L2475 + beq .L2479 lsr w0, w0, 10 bl P2V_block_in_plane uxth w0, w0 - add x2, x21, 296 + add x2, x21, 1832 ldrh w1, [x2,w0,sxtw 1] add w1, w1, 1 strh w1, [x2,w0,sxtw 1] -.L2475: +.L2479: add w19, w19, 1 - b .L2474 -.L2491: + b .L2478 +.L2495: adrp x21, .LC139 mov w19, 0 adrp x22, .LANCHOR2 add x25, x20, :lo12:.LANCHOR4 add x21, x21, :lo12:.LC139 -.L2477: +.L2481: add x0, x24, :lo12:.LANCHOR0 adrp x23, .LANCHOR2 - ldrh w0, [x0,1964] + ldrh w0, [x0,2476] cmp w0, w19 - bls .L2492 + bls .L2496 + add x1, x22, :lo12:.LANCHOR2 ubfiz x0, x19, 1, 16 - ldr x1, [x22,#:lo12:.LANCHOR2] + ldr x1, [x1,512] ldrh w2, [x1,x0] - add x0, x25, 296 + add x0, x25, 1832 ldrh w3, [x0,w19,sxtw 1] cmp w2, w3 - beq .L2478 + beq .L2482 mov x0, x21 mov w1, w19 bl printk -.L2478: +.L2482: add w19, w19, 1 uxth w19, w19 - b .L2477 -.L2492: + b .L2481 +.L2496: add x1, x23, :lo12:.LANCHOR2 - ldr x0, [x1,24] - cbz x0, .L2473 - ldr x19, [x1,-16] + ldr x0, [x1,536] + cbz x0, .L2477 + ldr x19, [x1,496] adrp x22, .LC140 - ldrh w24, [x1,32] + ldrh w24, [x1,544] mov w21, 0 sub x19, x0, x19 mov x0, -6148914691236517206 @@ -16488,29 +16507,30 @@ FtlCheckVpc: madd x19, x0, x19, x19 mov w26, 65535 uxth w19, w19 -.L2481: +.L2485: cmp w21, w24 - beq .L2473 + beq .L2477 + add x1, x23, :lo12:.LANCHOR2 ubfiz x0, x19, 1, 16 - ldr x1, [x23,#:lo12:.LANCHOR2] + ldr x1, [x1,512] ldrh w2, [x1,x0] - cbz w2, .L2482 - add x3, x20, 296 + cbz w2, .L2486 + add x3, x20, 1832 mov x0, x22 mov w1, w19 ldrh w3, [x3,w19,sxtw 1] bl printk -.L2482: +.L2486: add x0, x23, :lo12:.LANCHOR2 umull x19, w19, w25 - ldr x0, [x0,-16] + ldr x0, [x0,496] ldrh w19, [x0,x19] cmp w19, w26 - beq .L2473 + beq .L2477 add w21, w21, 1 uxth w21, w21 - b .L2481 -.L2473: + b .L2485 +.L2477: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16535,35 +16555,35 @@ Ftlscanalldata: add x19, x19, :lo12:.LANCHOR4 adrp x21, .LC142 add x21, x21, :lo12:.LC142 - add x19, x19, 160 + add x19, x19, 1696 bl printk -.L2494: - adrp x0, .LANCHOR0+2096 - ldr w0, [x0,#:lo12:.LANCHOR0+2096] +.L2498: + adrp x0, .LANCHOR0+2608 + ldr w0, [x0,#:lo12:.LANCHOR0+2608] cmp w20, w0 - bcs .L2501 + bcs .L2505 mov w0, w20 add x1, x29, 60 mov w2, 0 bl log2phys and w0, w20, 2047 - cbnz w0, .L2495 + cbnz w0, .L2499 ldr w2, [x29,60] mov x0, x21 mov w1, w20 bl printk -.L2495: +.L2499: ldr w0, [x29,60] cmn w0, #1 - beq .L2497 + beq .L2501 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,2072] - ldr x22, [x1,2120] + ldr x0, [x1,3608] + ldr x22, [x1,3656] mov w1, 1 str x0, [x19,8] mov x0, x19 @@ -16571,17 +16591,17 @@ Ftlscanalldata: bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L2498 + beq .L2502 cmp w0, 256 - beq .L2498 + beq .L2502 ldr w0, [x22,8] cmp w0, w20 - beq .L2497 -.L2498: + beq .L2501 +.L2502: adrp x2, .LANCHOR4 mov w1, w20 add x2, x2, :lo12:.LANCHOR4 - add x2, x2, 160 + add x2, x2, 1696 ldr x7, [x2,8] ldr x6, [x2,16] ldr w0, [x7,4] @@ -16595,10 +16615,10 @@ Ftlscanalldata: ldr w6, [x6,12] ldr w7, [x7] bl printk -.L2497: - add w20, w20, 1 - b .L2494 .L2501: + add w20, w20, 1 + b .L2498 +.L2505: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -16610,73 +16630,70 @@ Ftlscanalldata: .global FtlReUsePrevPpa .type FtlReUsePrevPpa, %function FtlReUsePrevPpa: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w0 lsr x0, x1, 10 stp x21, x22, [sp,32] - str w1, [x29,76] - str x23, [sp,48] + str w1, [x29,60] + adrp x21, .LANCHOR2 bl P2V_block_in_plane - adrp x2, .LANCHOR2 uxth w0, w0 + add x2, x21, :lo12:.LANCHOR2 ubfiz x22, x0, 1, 16 - add x3, x2, :lo12:.LANCHOR2 - mov x21, x2 - ldr x4, [x2,#:lo12:.LANCHOR2] - ldrh w1, [x4,x22] - cbnz w1, .L2503 - ldr x19, [x3,24] - cbz x19, .L2504 - ldr x2, [x3,-16] + ldr x3, [x2,512] + ldrh w1, [x3,x22] + cbnz w1, .L2507 + ldr x19, [x2,536] + cbz x19, .L2508 + ldrh w3, [x2,544] + mov x4, -6148914691236517206 + ldr x2, [x2,496] mov w5, 65535 - ldrh w4, [x3,32] - mov x3, -6148914691236517206 sub x19, x19, x2 asr x19, x19, 1 - madd x19, x3, x19, x19 - mov w3, 6 + madd x19, x4, x19, x19 + mov w4, 6 uxth w19, w19 -.L2505: - cmp w1, w4 - beq .L2504 +.L2509: + cmp w1, w3 + beq .L2508 cmp w19, w0 - bne .L2506 - add x23, x21, :lo12:.LANCHOR2 + bne .L2510 + add x21, x21, :lo12:.LANCHOR2 mov w1, w19 - add x0, x23, 24 + add x0, x21, 536 bl List_remove_node - ldrh w0, [x23,32] + ldrh w0, [x21,544] sub w0, w0, #1 - strh w0, [x23,32] + strh w0, [x21,544] mov w0, w19 bl INSERT_DATA_LIST - ldr x1, [x21,#:lo12:.LANCHOR2] + ldr x1, [x21,512] ldrh w0, [x1,x22] add w0, w0, 1 strh w0, [x1,x22] - b .L2504 -.L2506: - umull x19, w19, w3 + b .L2508 +.L2510: + umull x19, w19, w4 ldrh w19, [x2,x19] cmp w19, w5 - beq .L2504 + beq .L2508 add w1, w1, 1 uxth w1, w1 - b .L2505 -.L2503: + b .L2509 +.L2507: add w1, w1, 1 - strh w1, [x4,x22] -.L2504: - add x1, x29, 76 + strh w1, [x3,x22] +.L2508: + add x1, x29, 60 mov w0, w20 mov w2, 1 bl log2phys - ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 + ldp x29, x30, [sp], 64 ret .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 @@ -16694,7 +16711,7 @@ FtlRecoverySuperblock: mov x19, x0 ldrh w0, [x0] cmp w0, w2 - beq .L2672 + beq .L2676 ldrh w0, [x19,2] adrp x23, .LANCHOR0 str w0, [x29,188] @@ -16702,74 +16719,74 @@ FtlRecoverySuperblock: str w0, [x29,176] add x0, x23, :lo12:.LANCHOR0 ldr w1, [x29,188] - ldrh w0, [x0,2024] + ldrh w0, [x0,2536] cmp w0, w1 - bne .L2514 + bne .L2518 strh wzr, [x19,4] - b .L2678 -.L2514: + b .L2682 +.L2518: ldrh w0, [x19,16] mov w1, 0 -.L2515: +.L2519: cmp w0, w2 - bne .L2681 + bne .L2685 add w1, w1, 1 uxth w1, w1 add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] - b .L2515 -.L2681: + b .L2519 +.L2685: ldrb w1, [x19,8] cmp w1, 1 - bne .L2517 + bne .L2521 bl FtlGetLastWrittenPage cmn w0, #1 mov w20, w0 - beq .L2518 + beq .L2522 add x0, x23, :lo12:.LANCHOR0 mov w24, w20 ldrb w1, [x0,196] - cbnz w1, .L2592 + cbnz w1, .L2596 add x0, x0, 200 ldrh w24, [x0,w20,sxtw 1] - b .L2592 -.L2517: + b .L2596 +.L2521: mov w1, 0 bl FtlGetLastWrittenPage cmn w0, #1 mov w20, w0 - beq .L2518 + beq .L2522 mov w24, w0 -.L2592: +.L2596: add x0, x23, :lo12:.LANCHOR0 mov x2, x19 mov w26, 0 mov w8, 65535 mov w9, 56 adrp x10, .LANCHOR2 - ldrh w4, [x0,1956] + ldrh w4, [x0,2468] mov w11, 4 - ldrh w7, [x0,2036] + ldrh w7, [x0,2548] add x4, x19, x4, lsl 1 - b .L2520 -.L2518: - strh wzr, [x19,2] -.L2678: - strb wzr, [x19,6] - b .L2672 + b .L2524 .L2522: + strh wzr, [x19,2] +.L2682: + strb wzr, [x19,6] + b .L2676 +.L2526: ldrh w1, [x2,16] cmp w1, w8 - beq .L2521 + beq .L2525 add x5, x10, :lo12:.LANCHOR2 orr w1, w24, w1, lsl 10 umull x0, w26, w9 add w3, w26, 1 - ldr x6, [x5,2048] + ldr x6, [x5,3584] add x6, x6, x0 str w1, [x6,4] - ldr x1, [x5,2048] - ldr x5, [x5,888] + ldr x1, [x5,3584] + ldr x5, [x5,1400] add x0, x1, x0 mul w1, w26, w7 uxth w26, w3 @@ -16777,21 +16794,21 @@ FtlRecoverySuperblock: sdiv w1, w1, w11 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2521: +.L2525: add x2, x2, 2 -.L2520: +.L2524: cmp x2, x4 - bne .L2522 + bne .L2526 ldrb w0, [x19,8] str wzr, [x29,184] cmp w0, 1 - bne .L2523 + bne .L2527 add x0, x23, :lo12:.LANCHOR0 ldrb w0, [x0,196] cmp w0, wzr cset w0, ne str w0, [x29,184] -.L2523: +.L2527: adrp x21, .LANCHOR2 ldr w2, [x29,184] add x22, x21, :lo12:.LANCHOR2 @@ -16799,29 +16816,29 @@ FtlRecoverySuperblock: mov x27, 0 mov w25, 65535 mov x28, 56 - ldr x0, [x22,2048] + ldr x0, [x22,3584] bl FlashReadPages - ldr w0, [x22,236] + ldr w0, [x22,748] adrp x22, .LC144 str w0, [x29,168] add x22, x22, :lo12:.LC144 uxth w0, w24 str w0, [x29,160] -.L2524: +.L2528: uxth w2, w27 cmp w2, w26 - bcs .L2531 + bcs .L2535 add x6, x21, :lo12:.LANCHOR2 mul x0, x27, x28 - ldr x4, [x6,2048] + ldr x4, [x6,3584] add x1, x4, x0 ldr w0, [x4,x0] - cbnz w0, .L2525 + cbnz w0, .L2529 ldr x7, [x1,16] ldr w4, [x7,4] cmn w4, #1 - beq .L2526 - ldr w1, [x6,236] + beq .L2530 + ldr w1, [x6,748] mov w0, w4 str x7, [x29,128] str x2, [x29,136] @@ -16832,23 +16849,23 @@ FtlRecoverySuperblock: ldr x4, [x29,144] ldr x2, [x29,136] ldr x7, [x29,128] - cbz w0, .L2526 + cbz w0, .L2530 add w4, w4, 1 - str w4, [x6,236] -.L2526: + str w4, [x6,748] +.L2530: ldr w0, [x7] cmn w0, #1 - bne .L2527 -.L2531: + bne .L2531 +.L2535: cmp w2, w26 - bne .L2673 + bne .L2677 add x0, x21, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 - ldr x0, [x0,2048] + ldr x0, [x0,3584] ldr w0, [x0,4] - b .L2674 -.L2525: + b .L2678 +.L2529: ldr w1, [x1,4] mov x0, x22 bl printk @@ -16856,104 +16873,104 @@ FtlRecoverySuperblock: adrp x0, .LANCHOR5 ldrh w1, [x19] add x0, x0, :lo12:.LANCHOR5 - strh w1, [x0,-216] -.L2527: + strh w1, [x0,1320] +.L2531: add x27, x27, 1 - b .L2524 -.L2673: + b .L2528 +.L2677: add x0, x21, :lo12:.LANCHOR2 mov w1, 56 uxth w20, w20 umull x2, w2, w1 - ldr x0, [x0,2048] + ldr x0, [x0,3584] add x2, x0, x2 ldr w0, [x2,4] -.L2674: +.L2678: lsr x0, x0, 10 bl P2V_plane uxth w26, w0 ldrb w1, [x19,8] cmp w1, 1 - bne .L2533 + bne .L2537 add x0, x23, :lo12:.LANCHOR0 ldrb w2, [x0,196] - cbnz w2, .L2533 + cbnz w2, .L2537 add x0, x0, 200 ldrh w20, [x0,w20,sxtw 1] -.L2533: +.L2537: add x0, x23, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] + ldrh w0, [x0,2536] cmp w0, w20 - bne .L2534 + bne .L2538 strh w20, [x19,2] strb wzr, [x19,6] strh wzr, [x19,4] -.L2534: +.L2538: ldrh w0, [x29,176] str w0, [x29,152] ldr w0, [x29,188] cmp w20, w0 - bne .L2535 + bne .L2539 ldr w0, [x29,152] cmp w26, w0 - beq .L2679 -.L2535: + beq .L2683 +.L2539: ldr w0, [x29,168] sub w22, w0, #1 mov w0, 65535 cmp w25, w0 - bne .L2536 - cbnz w1, .L2537 -.L2536: + bne .L2540 + cbnz w1, .L2541 +.L2540: add x0, x21, :lo12:.LANCHOR2 uxth w5, w24 - ldr w1, [x0,2348] + ldr w1, [x0,3884] cmn w1, #1 - bne .L2538 - str w22, [x0,2348] -.L2538: + bne .L2542 + str w22, [x0,3884] +.L2542: add x0, x21, :lo12:.LANCHOR2 ldr w25, [x29,188] - ldr w6, [x0,2348] + ldr w6, [x0,3884] ldr w0, [x29,188] add w0, w0, 7 cmp w0, w24, uxth - bge .L2539 + bge .L2543 sub w25, w5, #7 uxth w25, w25 -.L2539: +.L2543: mov w3, -1 add x28, x21, :lo12:.LANCHOR2 mov w27, w3 mov w4, 65535 mov w7, 56 - add x8, x28, 988 -.L2540: + add x8, x28, 1500 +.L2544: cmp w25, w5 - bhi .L2553 + bhi .L2557 add x0, x23, :lo12:.LANCHOR0 mov w24, 0 - ldrh w2, [x0,1956] + ldrh w2, [x0,2468] mov x0, x19 add x2, x19, x2, lsl 1 -.L2554: +.L2558: cmp x0, x2 - beq .L2682 + beq .L2686 ldrh w1, [x0,16] cmp w1, w4 - beq .L2541 + beq .L2545 umull x9, w24, w7 - ldr x10, [x28,2048] + ldr x10, [x28,3584] add w24, w24, 1 orr w1, w25, w1, lsl 10 add x9, x10, x9 uxth w24, w24 str w1, [x9,4] -.L2541: +.L2545: add x0, x0, 2 - b .L2554 -.L2682: - ldr x0, [x28,2048] + b .L2558 +.L2686: + ldr x0, [x28,3584] mov w1, w24 ldr w2, [x29,184] str x8, [x29,128] @@ -16970,88 +16987,88 @@ FtlRecoverySuperblock: ldr x6, [x29,160] sxtw x10, w25 ldrb w9, [x0,196] - ldr x0, [x28,2048] + ldr x0, [x28,3584] ldr x4, [x29,144] ldr x7, [x29,136] add x0, x0, 16 ldr x8, [x29,128] -.L2543: +.L2547: cmp w1, w24 - beq .L2683 + beq .L2687 ldr w2, [x0,-16] - cbnz w2, .L2544 + cbnz w2, .L2548 ldr x2, [x0] ldrh w11, [x2] cmp w11, w4 - beq .L2545 + beq .L2549 ldr w2, [x2,4] cmn w2, #1 - beq .L2545 - ldr w27, [x28,2348] + beq .L2549 + ldr w27, [x28,3884] cmn w3, #1 - str w2, [x28,2348] - bne .L2545 + str w2, [x28,3884] + bne .L2549 ldrh w2, [x8,x10,lsl 1] cmp w2, w4 - bne .L2546 - cbz w9, .L2545 -.L2546: + bne .L2550 + cbz w9, .L2549 +.L2550: cmp w27, w22 csinv w3, w27, wzr, ne - b .L2545 -.L2544: - adrp x0, .LANCHOR5-216 + b .L2549 +.L2548: + adrp x0, .LANCHOR5+1320 ldrh w1, [x19] - strh w1, [x0,#:lo12:.LANCHOR5-216] + strh w1, [x0,#:lo12:.LANCHOR5+1320] ldrb w0, [x19,8] - cbnz w0, .L2537 + cbnz w0, .L2541 add x0, x21, :lo12:.LANCHOR2 - add x1, x0, 988 + add x1, x0, 1500 ldrh w2, [x1,w25,sxtw 1] mov w1, 65535 cmp w2, w1 - bne .L2548 + bne .L2552 cmn w3, #1 - beq .L2549 - str w3, [x0,2348] - b .L2537 -.L2549: + beq .L2553 + str w3, [x0,3884] + b .L2541 +.L2553: cmp w6, w22 - beq .L2550 - str w6, [x0,2348] - b .L2537 -.L2550: - ldr w1, [x0,2348] - b .L2680 -.L2548: + beq .L2554 + str w6, [x0,3884] + b .L2541 +.L2554: + ldr w1, [x0,3884] + b .L2684 +.L2552: cmp w27, w22 - beq .L2551 + beq .L2555 cmn w27, #1 - beq .L2537 - str w27, [x0,2348] - b .L2537 -.L2551: - ldr w1, [x0,2348] + beq .L2541 + str w27, [x0,3884] + b .L2541 +.L2555: + ldr w1, [x0,3884] cmp w1, w22 - beq .L2537 -.L2680: + beq .L2541 +.L2684: sub w1, w1, #1 - b .L2675 -.L2545: + b .L2679 +.L2549: add w1, w1, 1 add x0, x0, 56 uxth w1, w1 - b .L2543 -.L2683: + b .L2547 +.L2687: add w25, w25, 1 uxth w25, w25 - b .L2540 -.L2553: + b .L2544 +.L2557: add x0, x21, :lo12:.LANCHOR2 mov w1, -1 -.L2675: - str w1, [x0,2348] -.L2537: +.L2679: + str w1, [x0,3884] +.L2541: adrp x0, .LANCHOR5 str x0, [x29,136] add x1, x0, :lo12:.LANCHOR5 @@ -17062,64 +17079,64 @@ FtlRecoverySuperblock: adrp x0, .LC145 mov w2, 1 add x0, x0, :lo12:.LC145 - strh w2, [x1,-214] + strh w2, [x1,1322] str x0, [x29,120] -.L2555: +.L2559: add x0, x23, :lo12:.LANCHOR0 mov x1, x19 str wzr, [x29,176] mov w7, 65535 mov w8, 56 - ldrh w3, [x0,1956] + ldrh w3, [x0,2468] ldrb w6, [x0,196] add x3, x19, x3, lsl 1 -.L2556: +.L2560: cmp x1, x3 - beq .L2684 + beq .L2688 ldrh w2, [x1,16] cmp w2, w7 - beq .L2557 + beq .L2561 ldr w0, [x29,176] add x5, x21, :lo12:.LANCHOR2 orr w2, w24, w2, lsl 10 - ldr x4, [x5,2048] + ldr x4, [x5,3584] umull x0, w0, w8 add x4, x4, x0 str w2, [x4,4] ldrb w2, [x19,8] cmp w2, 1 - bne .L2558 - cbz w6, .L2558 - ldr x2, [x5,2048] + bne .L2562 + cbz w6, .L2562 + ldr x2, [x5,3584] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2558: +.L2562: ldr w0, [x29,176] add w0, w0, 1 uxth w0, w0 str w0, [x29,176] -.L2557: +.L2561: add x1, x1, 2 - b .L2556 -.L2684: + b .L2560 +.L2688: add x0, x21, :lo12:.LANCHOR2 ldr w1, [x29,176] ldr w2, [x29,184] - ldr x0, [x0,2048] + ldr x0, [x0,3584] bl FlashReadPages str xzr, [x29,160] -.L2560: +.L2564: ldrh w0, [x29,160] ldr w1, [x29,176] cmp w1, w0, uxth - bls .L2685 + bls .L2689 ldr x0, [x29,160] mov x25, 56 mul x25, x0, x25 add x0, x21, :lo12:.LANCHOR2 - ldr x28, [x0,2048] + ldr x28, [x0,3584] add x27, x28, x25 ldr w1, [x27,4] str w1, [x29,204] @@ -17130,41 +17147,41 @@ FtlRecoverySuperblock: ldr w1, [x29,188] cmp w24, w1 ldr x1, [x29,168] - bcc .L2561 + bcc .L2565 ldr w2, [x29,152] cmp w0, w2 - bcs .L2596 + bcs .L2600 ldr w2, [x29,188] cmp w24, w2 - beq .L2561 -.L2596: + beq .L2565 +.L2600: cmp w0, w26 - bne .L2597 + bne .L2601 cmp w24, w20 - beq .L2563 -.L2597: + beq .L2567 +.L2601: ldr w0, [x28,x25] cmn w0, #1 - beq .L2565 + beq .L2569 ldr x28, [x27,16] mov w0, 61589 ldrh w1, [x28] cmp w1, w0 - beq .L2566 + beq .L2570 ldrh w0, [x19] - b .L2676 -.L2566: + b .L2680 +.L2570: ldr w22, [x28,4] cmn w22, #1 - beq .L2567 + beq .L2571 add x27, x21, :lo12:.LANCHOR2 mov w0, w22 - ldr w1, [x27,236] + ldr w1, [x27,748] bl ftl_cmp_data_ver - cbz w0, .L2567 + cbz w0, .L2571 add w0, w22, 1 - str w0, [x27,236] -.L2567: + str w0, [x27,748] +.L2571: ldr w27, [x28,8] add x1, x29, 200 ldr w0, [x28,12] @@ -17175,52 +17192,52 @@ FtlRecoverySuperblock: ldr w28, [x29,196] add x3, x21, :lo12:.LANCHOR2 str x3, [x29,168] - ldr w1, [x3,2348] + ldr w1, [x3,3884] cmn w1, #1 - beq .L2568 + beq .L2572 mov w0, w22 bl ftl_cmp_data_ver ldr x3, [x29,168] - cbz w0, .L2568 + cbz w0, .L2572 cmn w28, #1 - beq .L2569 - ldr x0, [x3,2048] + beq .L2573 + ldr x0, [x3,3584] mov w2, 0 str x3, [x29,112] add x0, x0, x25 str w28, [x0,4] ldr x1, [x0,16] - ldr x0, [x3,2048] + ldr x0, [x3,3584] str x1, [x29,168] mov w1, 1 add x0, x0, x25 bl FlashReadPages ldr x3, [x29,112] ldr x0, [x29,168] - ldr x2, [x3,2048] + ldr x2, [x3,3584] ldr w0, [x0,4] str w0, [x29,144] add x4, x2, x25 ldr w0, [x2,x25] cmn w0, #1 - bne .L2570 - b .L2571 -.L2569: + bne .L2574 + b .L2575 +.L2573: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - bne .L2561 + bne .L2565 mov w0, w27 add x1, x29, 196 mov w2, 1 bl log2phys - b .L2561 -.L2570: + b .L2565 +.L2574: ldr x0, [x29,168] ldr w28, [x0,8] cmp w28, w27 - bne .L2571 - ldr w0, [x3,2348] + bne .L2575 + ldr w0, [x3,3884] ldr w1, [x29,144] str x2, [x29,96] str x4, [x29,104] @@ -17229,204 +17246,205 @@ FtlRecoverySuperblock: ldr x3, [x29,112] ldr x4, [x29,104] ldr x2, [x29,96] - cbz w0, .L2571 + cbz w0, .L2575 ldr w0, [x29,200] ldr w1, [x29,204] cmp w0, w1 - beq .L2576 + beq .L2580 ldr w1, [x29,196] cmp w0, w1 - beq .L2571 + beq .L2575 cmn w0, #1 - beq .L2574 + beq .L2578 str w0, [x4,4] mov w2, 0 ldr x1, [x4,16] - ldr x0, [x3,2048] + ldr x0, [x3,3584] str x1, [x29,168] mov w1, 1 add x0, x0, x25 bl FlashReadPages - b .L2575 -.L2574: + b .L2579 +.L2578: str w0, [x2,x25] -.L2575: +.L2579: add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,2048] + ldr x1, [x0,3584] ldr w1, [x1,x25] cmn w1, #1 - beq .L2576 + beq .L2580 ldr x1, [x29,168] - ldr w0, [x0,2348] + ldr w0, [x0,3884] ldr w25, [x1,4] mov w1, w25 bl ftl_cmp_data_ver - cbz w0, .L2576 + cbz w0, .L2580 ldr w0, [x29,144] mov w1, w25 bl ftl_cmp_data_ver - cbz w0, .L2571 -.L2576: + cbz w0, .L2575 +.L2580: ldr w1, [x29,196] mov w0, w28 bl FtlReUsePrevPpa -.L2571: +.L2575: mov w0, -1 str w0, [x29,196] - b .L2578 -.L2568: + b .L2582 +.L2572: ldr w0, [x29,204] ldr w1, [x29,200] cmp w1, w0 - beq .L2578 + beq .L2582 cmn w28, #1 - beq .L2580 + beq .L2584 add x0, x23, :lo12:.LANCHOR0 ubfx x28, x28, 10, 21 - ldr w0, [x0,1972] + ldr w0, [x0,2484] cmp w28, w0 - bcs .L2561 -.L2580: + bcs .L2565 +.L2584: mov w0, w27 add x1, x29, 204 mov w2, 1 bl log2phys ldr w25, [x29,200] cmn w25, #1 - beq .L2578 + beq .L2582 ldr w0, [x29,196] cmp w25, w0 - beq .L2578 + beq .L2582 lsr x0, x25, 10 bl P2V_block_in_plane uxth w0, w0 add x1, x21, :lo12:.LANCHOR2 - ldrh w2, [x1,40] + ldrh w2, [x1,552] cmp w2, w0 - beq .L2582 - ldrh w2, [x1,88] + beq .L2586 + ldrh w2, [x1,600] cmp w2, w0 - beq .L2582 - ldrh w1, [x1,136] + beq .L2586 + ldrh w1, [x1,648] cmp w1, w0 - bne .L2578 -.L2582: + bne .L2582 +.L2586: add x28, x21, :lo12:.LANCHOR2 mov w1, 1 mov w2, 0 - ldr x0, [x28,2048] + ldr x0, [x28,3584] str w25, [x0,4] ldr x3, [x0,16] - ldr x0, [x28,2048] + ldr x0, [x28,3584] str x3, [x29,168] bl FlashReadPages - ldr x0, [x28,2048] + ldr x0, [x28,3584] ldr x3, [x29,168] ldr w0, [x0] ldr w1, [x3,4] cmn w0, #1 - beq .L2578 + beq .L2582 mov w0, w22 bl ftl_cmp_data_ver - cbnz w0, .L2578 + cbnz w0, .L2582 mov w0, w27 add x1, x29, 200 mov w2, 1 bl log2phys -.L2578: +.L2582: ldr w0, [x29,196] cmn w0, #1 - beq .L2561 + beq .L2565 lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 - ubfiz x2, x1, 1, 16 - ldr x3, [x21,#:lo12:.LANCHOR2] - ldrh w2, [x3,x2] - cbz w2, .L2583 -.L2676: + add x2, x21, :lo12:.LANCHOR2 + ubfiz x3, x1, 1, 16 + ldr x2, [x2,512] + ldrh w2, [x2,x3] + cbz w2, .L2587 +.L2680: bl decrement_vpc_count - b .L2561 -.L2583: + b .L2565 +.L2587: ldr x0, [x29,120] bl printk - b .L2561 -.L2565: + b .L2565 +.L2569: ldr x2, [x29,136] ldrh w0, [x19] add x25, x2, :lo12:.LANCHOR5 mov w2, w22 - strh w0, [x25,-216] + strh w0, [x25,1320] ldr x0, [x29,128] bl printk - ldr w0, [x25,-212] + ldr w0, [x25,1324] cmp w0, 31 - bhi .L2584 - sub x1, x25, #208 + bhi .L2588 + add x1, x25, 1328 ldr w2, [x29,204] str w2, [x1,w0,uxtw 2] add w0, w0, 1 - str w0, [x25,-212] -.L2584: + str w0, [x25,1324] +.L2588: ldrh w0, [x19] bl decrement_vpc_count add x0, x21, :lo12:.LANCHOR2 - ldr w1, [x0,2348] + ldr w1, [x0,3884] cmn w1, #1 - beq .L2677 + beq .L2681 cmp w1, w22 - bls .L2561 -.L2677: - str w22, [x0,2348] -.L2561: + bls .L2565 +.L2681: + str w22, [x0,3884] +.L2565: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L2560 -.L2685: + b .L2564 +.L2689: ldrb w0, [x19,8] add w24, w24, 1 cmp w0, 1 uxth w24, w24 - bne .L2587 + bne .L2591 add x0, x23, :lo12:.LANCHOR0 ldrb w1, [x0,196] - cbz w1, .L2587 + cbz w1, .L2591 cmp w20, w24 - bne .L2587 - ldrh w0, [x0,2026] + bne .L2591 + ldrh w0, [x0,2538] cmp w0, w24 - beq .L2563 -.L2587: + beq .L2567 +.L2591: add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2024] + ldrh w1, [x0,2536] cmp w24, w1 - bne .L2555 - ldrh w2, [x0,1956] + bne .L2559 + ldrh w2, [x0,2468] mov w3, 65535 strh w24, [x19,2] mov x0, 0 strh wzr, [x19,4] -.L2589: +.L2593: uxth w1, w0 cmp w1, w2 - bcs .L2672 + bcs .L2676 add x0, x0, 1 add x4, x19, x0, lsl 1 ldrh w4, [x4,14] cmp w4, w3 - beq .L2589 + beq .L2593 strb w1, [x19,6] - b .L2672 -.L2563: + b .L2676 +.L2567: strb w26, [x19,6] strh w20, [x19,2] -.L2679: +.L2683: mov x0, x19 mov w1, w20 mov w2, w26 bl ftl_sb_update_avl_pages -.L2672: +.L2676: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17456,84 +17474,84 @@ FtlVpcCheckAndModify: adrp x20, .LANCHOR2 add x0, x20, :lo12:.LANCHOR2 mov w19, 0 - ldrh w2, [x1,1966] + ldrh w2, [x1,2478] mov w1, 0 - ldr x0, [x0,2168] + ldr x0, [x0,3704] lsl w2, w2, 1 bl ftl_memset -.L2687: +.L2691: add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2096] + ldr w0, [x0,2608] cmp w19, w0 - bcs .L2703 + bcs .L2707 mov w0, w19 add x1, x29, 76 mov w2, 0 bl log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2688 + beq .L2692 lsr x0, x0, 10 bl P2V_block_in_plane ubfiz x0, x0, 1, 16 add x1, x20, :lo12:.LANCHOR2 - ldr x2, [x1,2168] + ldr x2, [x1,3704] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] -.L2688: +.L2692: add w19, w19, 1 - b .L2687 -.L2703: + b .L2691 +.L2707: adrp x23, .LC147 mov w19, 0 add x20, x20, :lo12:.LANCHOR2 mov w24, 65535 add x23, x23, :lo12:.LC147 -.L2690: +.L2694: add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,1964] + ldrh w0, [x0,2476] cmp w0, w19 - bls .L2704 + bls .L2708 ubfiz x21, x19, 1, 16 - ldr x0, [x20] + ldr x0, [x20,512] ldrh w2, [x0,x21] - ldr x0, [x20,2168] - ldrh w3, [x0,x21] - cmp w2, w3 - beq .L2693 + ldr x0, [x20,3704] cmp w2, w24 - beq .L2693 - mov x0, x23 + ldrh w3, [x0,x21] + beq .L2695 + cmp w2, w3 + beq .L2695 + ldrh w0, [x20,552] + cmp w0, w19 + beq .L2695 + ldrh w0, [x20,648] + cmp w0, w19 + beq .L2695 + ldrh w0, [x20,600] + cmp w0, w19 + beq .L2695 mov w1, w19 + mov x0, x23 bl printk - ldrh w0, [x20,40] - cmp w0, w19 - beq .L2693 - ldrh w0, [x20,136] - cmp w0, w19 - beq .L2693 - ldrh w0, [x20,88] - cmp w0, w19 - beq .L2693 - ldr x0, [x20] + ldr x0, [x20,512] ldrh w1, [x0,x21] - cbnz w1, .L2695 - ldr x1, [x20,2168] + cbnz w1, .L2696 + ldr x1, [x20,3704] ldrh w1, [x1,x21] strh w1, [x0,x21] - b .L2693 -.L2695: - ldr x1, [x20,2168] + b .L2695 +.L2696: + ldr x1, [x20,3704] ldrh w1, [x1,x21] strh w1, [x0,x21] mov w0, w19 bl update_vpc_list -.L2693: +.L2695: add w19, w19, 1 uxth w19, w19 - b .L2690 -.L2704: + b .L2694 +.L2708: bl l2p_flush bl FtlVpcTblFlush ldp x19, x20, [sp,16] @@ -17546,278 +17564,303 @@ FtlVpcCheckAndModify: .global FtlGcScanTempBlk .type FtlGcScanTempBlk, %function FtlGcScanTempBlk: - stp x29, x30, [sp, -240]! + stp x29, x30, [sp, -224]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR1 - mov x19, x0 - add x0, x20, :lo12:.LANCHOR1 - str w1, [x29,164] + mov x20, x0 + adrp x0, .LANCHOR1 + str w1, [x29,148] + add x1, x0, :lo12:.LANCHOR1 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - str x20, [x29,152] - ldrh w26, [x0,3296] - mov w0, 65535 - cmp w26, w0 - beq .L2735 - cbnz w26, .L2706 - b .L2707 -.L2735: - mov w26, 0 -.L2706: - adrp x0, .LANCHOR0+2024 - ldr w1, [x29,164] - ldrh w0, [x0,#:lo12:.LANCHOR0+2024] + str x0, [x29,136] + ldrh w27, [x1,3360] + mov w1, 65535 + cmp w27, w1 + beq .L2742 + cbnz w27, .L2710 + b .L2711 +.L2742: + mov w27, 0 +.L2710: + adrp x0, .LANCHOR0+2536 + ldr w1, [x29,148] + ldrh w0, [x0,#:lo12:.LANCHOR0+2536] cmp w1, w0 - bne .L2708 -.L2707: - bl FtlGcPageVarInit -.L2708: - mov w0, -1 - adrp x25, .LANCHOR0 - str w0, [x29,168] - adrp x0, .LC149 - add x0, x0, :lo12:.LC149 - mov w22, 0 - mov x24, x25 - str x0, [x29,144] -.L2709: - ldrh w0, [x19] - mov w21, 65535 - strb wzr, [x19,8] - cmp w0, w21 - beq .L2710 + bne .L2712 .L2711: -.L2732: - add x0, x25, :lo12:.LANCHOR0 - mov x2, x19 - mov w20, 0 + bl FtlGcPageVarInit +.L2712: + mov w0, -1 + str w0, [x29,152] + adrp x0, .LC149 + mov w23, 0 + add x0, x0, :lo12:.LC149 + adrp x28, .LANCHOR0 + str x0, [x29,128] +.L2713: + ldrh w1, [x20] + mov w0, 65535 + strb wzr, [x20,8] + cmp w1, w0 + beq .L2743 +.L2715: + str w0, [x29,156] +.L2739: + adrp x0, .LANCHOR0 + mov x2, x20 + add x0, x0, :lo12:.LANCHOR0 + mov w21, 0 mov w10, 56 adrp x11, .LANCHOR2 mov w7, 4 - ldrh w6, [x0,1956] - ldrh w8, [x0,2034] - ldrh w9, [x0,2036] - add x6, x19, x6, lsl 1 -.L2712: - cmp x2, x6 - beq .L2752 + ldrh w5, [x0,2468] + ldrh w8, [x0,2546] + ldrh w9, [x0,2548] + add x5, x20, x5, lsl 1 +.L2716: + cmp x2, x5 + beq .L2762 ldrh w1, [x2,16] - cmp w1, w21 - beq .L2713 + ldr w0, [x29,156] + cmp w1, w0 + beq .L2717 add x4, x11, :lo12:.LANCHOR2 - orr w1, w26, w1, lsl 10 - umull x0, w20, w10 - add w5, w20, 1 - ldr x12, [x4,2048] - add x12, x12, x0 - str w1, [x12,4] - ldr x1, [x4,2048] - ldr x12, [x4,880] + orr w1, w27, w1, lsl 10 + umull x0, w21, w10 + ldr x6, [x4,3584] + add x6, x6, x0 + str w1, [x6,4] + ldr x1, [x4,3584] + ldr x6, [x4,1392] add x0, x1, x0 - ldr x4, [x4,888] - mul w1, w20, w8 + ldr x4, [x4,1400] + mul w1, w21, w8 sdiv w1, w1, w7 - add x1, x12, x1, sxtw 2 + add x1, x6, x1, sxtw 2 str x1, [x0,8] - mul w1, w20, w9 - uxth w20, w5 + mul w1, w21, w9 + add w21, w21, 1 + uxth w21, w21 sdiv w1, w1, w7 add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L2713: +.L2717: add x2, x2, 2 - b .L2712 -.L2752: - adrp x28, .LANCHOR2 - mov w1, w20 - add x0, x28, :lo12:.LANCHOR2 + b .L2716 +.L2762: + adrp x19, .LANCHOR2 + mov w1, w21 + add x0, x19, :lo12:.LANCHOR2 mov w2, 0 - mov x23, 0 - mov x27, x28 - ldr x0, [x0,2048] + mov x24, 0 + ldr x0, [x0,3584] bl FlashReadPages -.L2715: - cmp w20, w23, uxth - bls .L2753 - add x8, x27, :lo12:.LANCHOR2 +.L2719: + cmp w21, w24, uxth + bls .L2763 + add x25, x19, :lo12:.LANCHOR2 mov x0, 56 - mul x28, x23, x0 - ldr x0, [x8,2048] - add x1, x0, x28 - ldr w10, [x0,x28] - ldr w2, [x1,4] - str w2, [x29,172] - ldr x7, [x1,16] - cbnz w10, .L2716 - ldrh w0, [x7] - cmp w0, w21 - beq .L2751 - add x9, x24, :lo12:.LANCHOR0 - ldr w0, [x7,8] - ldr w1, [x9,2096] + mul x22, x24, x0 + ldr x1, [x25,3584] + str x1, [x29,112] + add x2, x1, x22 + str x2, [x29,120] + ldr w26, [x2,4] + lsr x0, x26, 10 + bl P2V_plane + uxth w5, w0 + ldr x1, [x29,112] + ldr x2, [x29,120] + ldr w8, [x1,x22] + ldr x4, [x2,16] + cbnz w8, .L2720 + ldrh w0, [x4] + ldr w1, [x29,156] cmp w0, w1 - bhi .L2751 - ldrb w1, [x9,72] - cbz w1, .L2721 - add x1, x29, 180 - mov w2, w10 - str x7, [x29,136] - str x9, [x29,104] - str x8, [x29,112] - str x10, [x29,120] - bl log2phys - ldr x7, [x29,136] - ldr w1, [x29,180] - ldr w0, [x7,12] - cmp w1, w0 bne .L2721 +.L2724: + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldrb w0, [x0,196] + cbz w0, .L2758 + add x19, x19, :lo12:.LANCHOR2 + mov w0, 1 + str w0, [x19,3880] + b .L2714 +.L2721: + add x7, x28, :lo12:.LANCHOR0 + ldr w0, [x4,8] + ldr w1, [x7,2608] + cmp w0, w1 + bls .L2759 + b .L2724 +.L2758: + add x19, x19, :lo12:.LANCHOR2 + ldrh w2, [x20] + ldr x1, [x19,512] + strh w0, [x1,x2,lsl 1] + b .L2761 +.L2759: + ldrb w1, [x7,72] + cbz w1, .L2728 + add x1, x29, 164 + mov w2, w8 + str x4, [x29,120] + str x7, [x29,104] + str x8, [x29,112] + bl log2phys + ldr x4, [x29,120] + ldr w1, [x29,164] + ldr w0, [x4,12] + cmp w1, w0 + bne .L2728 cmn w1, #1 - beq .L2721 - ldr x8, [x29,112] + beq .L2728 + str w0, [x29,172] mov w1, 1 - str w0, [x29,188] - ldr x10, [x29,120] - ldr x0, [x8,2112] - str x0, [x29,192] - mov w2, w10 - ldr x0, [x8,2128] - str x0, [x29,200] - add x0, x29, 184 - str x7, [x29,128] - str x8, [x29,136] + ldr x0, [x25,3648] + ldr x8, [x29,112] + str x0, [x29,176] + ldr x0, [x25,3664] + mov w2, w8 + str x0, [x29,184] + add x0, x29, 168 bl FlashReadPages - ldr x8, [x29,136] - ldr x9, [x29,104] - ldr x7, [x29,128] - ldr x0, [x8,2048] - ldrh w2, [x9,2030] - ldr x8, [x29,192] - add x6, x0, x28 - lsl w2, w2, 7 + ldr x7, [x29,104] + ldr x0, [x25,3584] + ldr x5, [x29,176] + ldrh w2, [x7,2542] + add x22, x0, x22 + ldr x4, [x29,120] mov x0, 0 -.L2723: + lsl w2, w2, 7 +.L2730: cmp w2, w0 - bls .L2721 + bls .L2728 lsl x1, x0, 2 - ldr x9, [x6,8] + ldr x6, [x22,8] add x0, x0, 1 - ldr w9, [x9,x1] - ldr w1, [x8,x1] - cmp w9, w1 - beq .L2723 + ldr w6, [x6,x1] + ldr w1, [x5,x1] + cmp w6, w1 + beq .L2730 + ldrh w1, [x20] adrp x0, .LC148 - ldrh w1, [x19] - ldr w2, [x29,188] + ldr w2, [x29,172] add x0, x0, :lo12:.LC148 + add x19, x19, :lo12:.LANCHOR2 bl printk -.L2751: - ldr x0, [x27,#:lo12:.LANCHOR2] - add x21, x27, :lo12:.LANCHOR2 - ldrh w1, [x19] + ldrh w1, [x20] + ldr x0, [x19,512] strh wzr, [x0,x1,lsl 1] - ldrh w0, [x19] +.L2761: + ldrh w0, [x20] bl INSERT_FREE_LIST mov w0, -1 - strh w0, [x19] - strh w0, [x21,280] - b .L2750 -.L2721: - ldr w0, [x7,12] - add x23, x23, 1 - ldr w1, [x29,172] - ldr w2, [x7,8] + strh w0, [x20] + strh w0, [x19,792] + b .L2760 +.L2728: + ldr w0, [x4,12] + mov w1, w26 + ldr w2, [x4,8] + add x24, x24, 1 bl FtlGcUpdatePage - b .L2715 -.L2716: - ldrh w1, [x19] - ldr x0, [x29,144] - ldr w2, [x29,172] + b .L2719 +.L2720: + ldrh w1, [x20] + mov w2, w26 + ldr x0, [x29,128] bl printk adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldr w1, [x0,1948] - cbnz w1, .L2726 + ldr w1, [x0,2460] + cbnz w1, .L2733 ldrb w0, [x0,196] - cbz w0, .L2727 -.L2726: - add x0, x27, :lo12:.LANCHOR2 - ldrh w1, [x19] - ldr x0, [x0,-80] + cbz w0, .L2734 +.L2733: + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x20] + ldr x0, [x0,432] ldrh w0, [x0,x1,lsl 1] cmp w0, 159 - bls .L2728 -.L2727: - add x0, x27, :lo12:.LANCHOR2 - ldr x0, [x0,2048] - ldr w0, [x0,x28] + bls .L2735 +.L2734: + add x0, x19, :lo12:.LANCHOR2 + ldr x0, [x0,3584] + ldr w0, [x0,x22] cmn w0, #1 - bne .L2729 -.L2728: - add x0, x27, :lo12:.LANCHOR2 - ldr x0, [x0,2048] - add x6, x0, x28 - ldr w0, [x6,4] - str w0, [x29,168] -.L2729: - ldr x0, [x27,#:lo12:.LANCHOR2] - ldrh w1, [x19] + bne .L2736 +.L2735: + add x0, x19, :lo12:.LANCHOR2 + ldr x0, [x0,3584] + add x22, x0, x22 + ldr w0, [x22,4] + str w0, [x29,152] +.L2736: + add x19, x19, :lo12:.LANCHOR2 + ldrh w1, [x20] + ldr x0, [x19,512] strh wzr, [x0,x1,lsl 1] - ldrh w0, [x19] + ldrh w0, [x20] bl INSERT_FREE_LIST mov w0, -1 - strh w0, [x19] -.L2750: + strh w0, [x20] +.L2760: bl FtlGcPageVarInit - mov w26, 0 - b .L2709 -.L2753: - ldr w0, [x29,164] - add w22, w22, 1 - add w3, w26, 1 - cmp w22, w0 - uxth w26, w3 - bcs .L2731 -.L2733: - add x0, x24, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] - cmp w0, w26 - bhi .L2732 - b .L2710 -.L2731: - ldr x0, [x29,152] + mov w27, 0 + b .L2713 +.L2763: + ldr w0, [x29,148] + add w23, w23, 1 + add w3, w27, 1 + cmp w23, w0 + uxth w27, w3 + bcs .L2738 +.L2740: + add x0, x28, :lo12:.LANCHOR0 + ldrh w0, [x0,2536] + cmp w0, w27 + bhi .L2739 + b .L2743 +.L2738: + ldr x0, [x29,136] + ldr w2, [x29,156] add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3296] - cmp w0, w21 - beq .L2733 - add w0, w0, w22 - strh w0, [x1,3296] - add x0, x24, :lo12:.LANCHOR0 - ldrh w0, [x0,2024] - cmp w0, w26 - bls .L2733 - b .L2734 -.L2710: - ldr x0, [x29,152] - mov w1, w26 - strh w26, [x19,2] - mov w2, 0 - add x20, x0, :lo12:.LANCHOR1 - mov w0, -1 - strb wzr, [x19,6] - strh w0, [x20,3296] - mov x0, x19 + ldrh w0, [x1,3360] + cmp w0, w2 + beq .L2740 + add w0, w0, w23 + strh w0, [x1,3360] + add x0, x28, :lo12:.LANCHOR0 + ldrh w0, [x0,2536] + cmp w0, w27 + bls .L2740 + b .L2741 +.L2743: + mov w5, 0 +.L2714: + 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] + mov x0, x20 + mov w1, w27 bl ftl_sb_update_avl_pages -.L2734: - ldr w0, [x29,168] +.L2741: + ldr w0, [x29,152] 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 + ldp x29, x30, [sp], 224 ret .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -17828,26 +17871,26 @@ FtlReadRefresh: adrp x2, .LANCHOR2 add x1, x2, :lo12:.LANCHOR2 add x29, sp, 0 - add x3, x1, 336 + add x3, x1, 848 stp x19, x20, [sp,16] stp x21, x22, [sp,32] adrp x20, .LANCHOR0 ldr w0, [x3,80] - cbz w0, .L2755 + cbz w0, .L2765 add x0, x20, :lo12:.LANCHOR0 ldr w2, [x3,84] - ldr w0, [x0,2096] + ldr w0, [x0,2608] cmp w2, w0 - bcs .L2756 + bcs .L2766 mov w21, 2048 mov x19, x1 -.L2761: - add x22, x19, 336 +.L2771: + add x22, x19, 848 add x1, x20, :lo12:.LANCHOR0 ldr w0, [x22,84] - ldr w1, [x1,2096] + ldr w1, [x1,2608] cmp w0, w1 - bcs .L2760 + bcs .L2770 add x1, x29, 52 mov w2, 0 bl log2phys @@ -17856,7 +17899,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x22,84] cmn w1, #1 - beq .L2759 + beq .L2769 str w1, [x29,60] mov w2, 0 str w0, [x29,80] @@ -17868,29 +17911,29 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29,56] cmp w0, 256 - bne .L2760 + bne .L2770 ldr w0, [x29,52] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2760: +.L2770: mov w0, -1 - b .L2763 -.L2759: + b .L2773 +.L2769: subs w21, w21, #1 - bne .L2761 - b .L2760 -.L2756: - ldr w0, [x1,200] + bne .L2771 + b .L2770 +.L2766: + ldr w0, [x1,712] str wzr, [x3,80] str wzr, [x3,84] str w0, [x3,76] - b .L2770 -.L2755: - ldr w4, [x1,252] + b .L2780 +.L2765: + ldr w4, [x1,764] mov w6, 10000 mov w8, 63 - ldr w7, [x1,200] + ldr w7, [x1,712] cmp w4, w6 mov w6, 31 csel w8, w6, w8, hi @@ -17898,8 +17941,8 @@ FtlReadRefresh: add x20, x20, :lo12:.LANCHOR0 add w9, w7, 1048576 cmp w6, w9 - ldr w5, [x20,2096] - bhi .L2765 + ldr w5, [x20,2608] + bhi .L2775 mov w9, 1000 lsr w4, w4, 10 add w4, w4, 1 @@ -17907,25 +17950,25 @@ FtlReadRefresh: udiv w4, w5, w4 add w4, w4, w6 cmp w4, w7 - bcc .L2765 - ldrh w1, [x1,-36] + bcc .L2775 + ldrh w1, [x1,476] tst w8, w1 - bne .L2763 + bne .L2773 ldr w3, [x3,100] cmp w3, w1 - beq .L2763 -.L2765: + beq .L2773 +.L2775: add x0, x2, :lo12:.LANCHOR2 - add x1, x0, 336 - ldrh w0, [x0,-36] + add x1, x0, 848 + ldrh w0, [x0,476] str w0, [x1,100] mov w0, 1 str wzr, [x1,84] str w0, [x1,80] str w7, [x1,76] -.L2770: +.L2780: mov w0, 0 -.L2763: +.L2773: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 @@ -17945,118 +17988,117 @@ FtlGcFreeTempBlock: stp x25, x26, [sp,64] adrp x21, .LANCHOR0 add x1, x21, :lo12:.LANCHOR0 - ldr w3, [x2,-96] - ldrh w1, [x1,2024] - cbnz w3, .L2807 - ldrh w20, [x2,136] + ldr w3, [x2,416] + ldrh w1, [x1,2536] + cbnz w3, .L2817 + ldrh w20, [x2,648] mov w4, 65535 cmp w20, w4 - bne .L2774 -.L2783: + bne .L2784 +.L2793: add x20, x19, :lo12:.LANCHOR2 mov w0, 65535 - add x22, x20, 136 - ldrh w1, [x20,136] - str wzr, [x20,2344] + add x22, x20, 648 + ldrh w1, [x20,648] + str wzr, [x20,3880] cmp w1, w0 - beq .L2807 + beq .L2817 bl FtlCacheWriteBack mov w26, 12 - adrp x0, .LANCHOR2 add x3, x21, :lo12:.LANCHOR0 - ldrh w2, [x20,136] - ldr x1, [x0,#:lo12:.LANCHOR2] - ldrh w3, [x3,2024] ldrb w0, [x22,7] + ldr x1, [x20,512] mov w22, 0 + ldrh w2, [x20,648] + ldrh w3, [x3,2536] mul w0, w0, w3 strh w0, [x1,x2,lsl 1] - ldr w0, [x20,220] - ldrh w1, [x20,920] + ldr w0, [x20,732] + ldrh w1, [x20,1432] add w0, w1, w0 - str w0, [x20,220] - b .L2784 -.L2774: - cbz w0, .L2777 + str w0, [x20,732] + b .L2794 +.L2784: + cbz w0, .L2787 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3296] + ldrh w5, [x0,3360] cmp w5, w4 - beq .L2778 -.L2779: + beq .L2788 +.L2789: mov w1, 2 - b .L2777 -.L2778: - strh w3, [x0,3296] - ldrh w0, [x2,32] + b .L2787 +.L2788: + strh w3, [x0,3360] + ldrh w0, [x2,544] cmp w0, 17 - bhi .L2779 -.L2777: + bhi .L2789 +.L2787: add x22, x19, :lo12:.LANCHOR2 - add x0, x22, 136 + add x0, x22, 648 bl FtlGcScanTempBlk str w0, [x29,92] cmn w0, #1 - beq .L2780 + beq .L2790 ubfiz x20, x20, 1, 16 - ldr x1, [x22,-80] + ldr x1, [x22,432] ldrh w0, [x1,x20] cmp w0, 4 - bls .L2781 + bls .L2791 sub w0, w0, #5 strh w0, [x1,x20] mov w0, 1 bl FtlEctTblFlush -.L2781: +.L2791: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2344] - cbnz w1, .L2782 - ldr w1, [x0,432] + ldr w1, [x0,3880] + cbnz w1, .L2792 + ldr w1, [x0,944] add w1, w1, 1 - str w1, [x0,432] + str w1, [x0,944] ldr w0, [x29,92] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L2782: +.L2792: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 - str wzr, [x19,2344] - b .L2773 -.L2780: - adrp x0, .LANCHOR1+3296 + str wzr, [x19,3880] + b .L2783 +.L2790: + adrp x0, .LANCHOR1+3360 mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3296] + ldrh w2, [x0,#:lo12:.LANCHOR1+3360] mov w0, 1 cmp w2, w1 - bne .L2773 - b .L2783 -.L2787: + bne .L2783 + b .L2793 +.L2797: ldr w1, [x23,4] cmp w0, w1 - bne .L2805 -.L2786: + bne .L2815 +.L2796: add w22, w22, 1 uxth w22, w22 -.L2784: - ldrh w0, [x20,920] +.L2794: + ldrh w0, [x20,1432] cmp w0, w22 - bls .L2808 + bls .L2818 umull x24, w22, w26 - ldr x25, [x20,928] + ldr x25, [x20,1440] add x1, x21, :lo12:.LANCHOR0 add x23, x25, x24 - ldr w1, [x1,2096] + ldr w1, [x1,2608] ldr w0, [x23,8] cmp w0, w1 - bcs .L2805 + bcs .L2815 add x1, x29, 92 mov w2, 0 bl log2phys ldr w0, [x29,92] ldr w1, [x25,x24] cmp w0, w1 - bne .L2787 + bne .L2797 lsr x0, x0, 10 bl P2V_block_in_plane mov w24, w0 @@ -18065,74 +18107,74 @@ FtlGcFreeTempBlock: mov w2, 1 bl log2phys mov w0, w24 - b .L2806 -.L2805: - ldrh w0, [x20,136] -.L2806: + b .L2816 +.L2815: + ldrh w0, [x20,648] +.L2816: bl decrement_vpc_count - b .L2786 -.L2808: + b .L2796 +.L2818: mov w0, -1 bl decrement_vpc_count add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbz w0, .L2789 + cbz w0, .L2799 adrp x0, .LC150 - ldrh w1, [x20,136] + ldrh w1, [x20,648] add x0, x0, :lo12:.LC150 bl printk -.L2789: - add x0, x19, :lo12:.LANCHOR2 - ldr x2, [x19,#:lo12:.LANCHOR2] - ldrh w0, [x0,136] - ubfiz x1, x0, 1, 16 - ldrh w1, [x2,x1] - cbz w1, .L2790 +.L2799: + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x1,648] + ldr x1, [x1,512] + ubfiz x2, x0, 1, 16 + ldrh w1, [x1,x2] + cbz w1, .L2800 bl INSERT_DATA_LIST - b .L2791 -.L2790: + b .L2801 +.L2800: bl INSERT_FREE_LIST -.L2791: +.L2801: add x20, x19, :lo12:.LANCHOR2 mov w22, -1 - strh wzr, [x20,920] - strh w22, [x20,136] - strh wzr, [x20,908] + strh wzr, [x20,1432] + strh w22, [x20,648] + strh wzr, [x20,1420] bl l2p_flush bl FtlVpcTblFlush - strh w22, [x20,280] + strh w22, [x20,792] add x0, x21, :lo12:.LANCHOR0 - ldr w0, [x0,1948] - cbz w0, .L2792 - ldr w0, [x20,256] + ldr w0, [x0,2460] + cbz w0, .L2802 + ldr w0, [x20,768] cmp w0, 39 - bhi .L2792 - ldrh w0, [x20,260] - ldrh w1, [x20,32] + bhi .L2802 + ldrh w0, [x20,772] + ldrh w1, [x20,544] cmp w1, w0 - bcs .L2807 + bcs .L2817 lsl w0, w0, 1 - strh w0, [x20,848] -.L2807: + strh w0, [x20,1360] +.L2817: mov w0, 0 - b .L2773 -.L2792: + b .L2783 +.L2802: add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,260] - ldrh w0, [x19,32] + ldrh w1, [x19,772] + ldrh w0, [x19,544] add w2, w1, w1, lsl 1 cmp w0, w2, lsr 2 - ble .L2807 + ble .L2817 add x21, x21, :lo12:.LANCHOR0 ldrb w0, [x21,196] - cbz w0, .L2793 + cbz w0, .L2803 sub w1, w1, #2 - strh w1, [x19,848] - b .L2807 -.L2793: + strh w1, [x19,1360] + b .L2817 +.L2803: mov w1, 20 - strh w1, [x19,848] -.L2773: + strh w1, [x19,1360] +.L2783: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18152,20 +18194,20 @@ FtlGcPageRecovery: add x20, x20, :lo12:.LANCHOR0 add x19, x19, :lo12:.LANCHOR2 str x21, [sp,32] - add x21, x19, 136 + add x21, x19, 648 mov x0, x21 - ldrh w1, [x20,2024] + ldrh w1, [x20,2536] bl FtlGcScanTempBlk - ldrh w1, [x19,138] - ldrh w0, [x20,2024] + ldrh w1, [x19,650] + ldrh w0, [x20,2536] cmp w1, w0 - bcc .L2809 - add x0, x19, 2256 + bcc .L2819 + add x0, x19, 3792 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock - str wzr, [x19,2344] -.L2809: + str wzr, [x19,3880] +.L2819: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -18176,14 +18218,14 @@ FtlGcPageRecovery: .type FtlPowerLostRecovery, %function FtlPowerLostRecovery: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR5-212 + adrp x0, .LANCHOR5+1324 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR5-212] + str wzr, [x0,#:lo12:.LANCHOR5+1324] add x19, x19, :lo12:.LANCHOR2 - add x20, x19, 40 - add x19, x19, 88 + add x20, x19, 552 + add x19, x19, 600 mov x0, x20 bl FtlRecoverySuperblock mov x0, x20 @@ -18216,22 +18258,22 @@ FtlSysBlkInit: add x24, x20, :lo12:.LANCHOR0 adrp x19, .LANCHOR2 add x23, x19, :lo12:.LANCHOR2 - strh w1, [x0,-216] - strh wzr, [x0,-214] - ldrh w0, [x24,1960] + strh w1, [x0,1320] + strh wzr, [x0,1322] + ldrh w0, [x24,2472] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh w1, [x23,264] + ldrh w1, [x23,776] mov w0, 65535 cmp w1, w0 - bne .L2813 -.L2815: + bne .L2823 +.L2825: mov w22, -1 - b .L2814 -.L2813: + b .L2824 +.L2823: bl FtlLoadSysInfo mov w22, w0 - cbnz w0, .L2815 + cbnz w0, .L2825 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18241,89 +18283,89 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x24,2062] + ldrh w2, [x24,2574] mov x1, 0 - ldr x0, [x23,184] -.L2816: + ldr x0, [x23,696] +.L2826: cmp w1, w2 mov w3, w1 - bge .L2820 + bge .L2830 add x4, x0, x1, lsl 4 add x1, x1, 1 ldr w4, [x4,4] - tbz w4, #31, .L2816 -.L2820: - add x1, x19, :lo12:.LANCHOR2 + tbz w4, #31, .L2826 +.L2830: + add x0, x19, :lo12:.LANCHOR2 cmp w3, w2 - ldrh w0, [x1,-36] - add w0, w0, 1 - strh w0, [x1,-36] - blt .L2817 + ldrh w1, [x0,476] + add w1, w1, 1 + strh w1, [x0,476] + blt .L2827 add x21, x21, :lo12:.LANCHOR5 - ldrh w0, [x21,-214] - cbz w0, .L2821 -.L2817: + ldrh w0, [x21,1322] + cbz w0, .L2831 +.L2827: add x1, x19, :lo12:.LANCHOR2 - ldr x4, [x19,#:lo12:.LANCHOR2] - ldrh w2, [x1,40] - ldrh w5, [x1,44] + ldrh w2, [x1,552] + ldr x4, [x1,512] lsl x2, x2, 1 + ldrh w5, [x1,556] ldrh w3, [x4,x2] sub w3, w3, w5 strh w3, [x4,x2] add x4, x20, :lo12:.LANCHOR0 - strb wzr, [x1,46] - ldrh w0, [x1,88] - ldr x5, [x19,#:lo12:.LANCHOR2] - ldrh w2, [x4,2024] - lsl x0, x0, 1 - strh w2, [x1,42] - strh wzr, [x1,44] - ldrh w6, [x1,92] - ldrh w3, [x5,x0] + 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] + lsl x2, x2, 1 + ldrh w3, [x5,x2] sub w3, w3, w6 - strh w3, [x5,x0] - strb wzr, [x1,94] - ldrh w0, [x4,2024] - strh w0, [x1,90] - ldrh w0, [x1,-34] - strh wzr, [x1,92] + strh w3, [x5,x2] + strb wzr, [x1,606] + ldrh w0, [x1,478] + ldrh w2, [x4,2536] add w0, w0, 1 - strh w0, [x1,-34] + strh w2, [x1,602] + strh wzr, [x1,604] + strh w0, [x1,478] bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L2821: +.L2831: add x21, x19, :lo12:.LANCHOR2 mov w1, 65535 - add x24, x21, 40 - ldrh w0, [x21,40] + add x24, x21, 552 + ldrh w0, [x21,552] cmp w0, w1 - beq .L2822 - ldrh w1, [x21,44] - cbnz w1, .L2822 - ldrh w1, [x21,92] - add x23, x21, 88 - cbnz w1, .L2822 + beq .L2832 + ldrh w1, [x21,556] + cbnz w1, .L2832 + ldrh w1, [x21,604] + add x23, x21, 600 + cbnz w1, .L2832 bl FtlGcRefreshOpenBlock - ldrh w0, [x21,88] + ldrh w0, [x21,600] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush mov x0, x24 bl allocate_new_data_superblock mov x0, x23 bl allocate_new_data_superblock -.L2822: +.L2832: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,72] - cbnz w0, .L2823 + cbnz w0, .L2833 add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,-36] + ldrh w0, [x19,476] and w0, w0, 31 - cbnz w0, .L2814 -.L2823: + cbnz w0, .L2824 +.L2833: bl FtlVpcCheckAndModify -.L2814: +.L2824: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18337,277 +18379,278 @@ FtlSysBlkInit: FtlLowFormat: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR2 stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR2 + adrp x19, .LANCHOR2 + add x20, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w22, [x19,-96] - cbnz w22, .L2831 - adrp x20, .LANCHOR0 - ldr x0, [x19,2224] - add x23, x20, :lo12:.LANCHOR0 + ldr w22, [x20,416] + cbnz w22, .L2841 + adrp x21, .LANCHOR0 + ldr x0, [x20,3760] + add x23, x21, :lo12:.LANCHOR0 mov w1, w22 - ldrh w2, [x23,2060] + ldrh w2, [x23,2572] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x23,2060] + ldrh w2, [x23,2572] mov w1, w22 - ldr x0, [x19,2216] + ldr x0, [x20,3752] lsl w2, w2, 2 bl ftl_memset - str w22, [x19,232] - ldrh w0, [x23,1960] - str w22, [x19,236] + str w22, [x20,744] + ldrh w0, [x23,2472] + str w22, [x20,748] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2832 + cbz w0, .L2842 bl FtlMakeBbt -.L2832: +.L2842: mov w0, 0 -.L2833: - add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,2030] +.L2843: + add x1, x21, :lo12:.LANCHOR0 + ldrh w2, [x1,2542] cmp w0, w2, lsl 7 - bge .L2860 - add x3, x21, :lo12:.LANCHOR2 + bge .L2870 + add x3, x19, :lo12:.LANCHOR2 ubfiz x2, x0, 2, 16 mvn w1, w0 - ldr x4, [x3,2104] + ldr x4, [x3,3640] 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,2112] + ldr x3, [x3,3648] str w1, [x3,x2] - b .L2833 -.L2860: - ldrh w22, [x1,1964] - mov w19, 0 -.L2835: - add x23, x20, :lo12:.LANCHOR0 - ldrh w0, [x23,1966] + b .L2843 +.L2870: + ldrh w22, [x1,2476] + mov w20, 0 +.L2845: + add x23, x21, :lo12:.LANCHOR0 + ldrh w0, [x23,2478] cmp w0, w22 - bls .L2861 + bls .L2871 mov w0, w22 mov w1, 1 add w22, w22, 1 bl FtlLowFormatEraseBlock - add w0, w19, w0 + add w0, w20, w0 uxth w22, w22 - uxth w19, w0 - b .L2835 -.L2861: - ldrh w0, [x23,1956] - sub w1, w19, #3 + uxth w20, w0 + b .L2845 +.L2871: + ldrh w0, [x23,2468] + sub w1, w20, #3 cmp w1, w0, lsl 1 - bge .L2837 -.L2841: - mov w19, 0 - mov w22, w19 - b .L2838 -.L2837: - udiv w19, w19, w0 - ldr w0, [x23,2056] - add w0, w19, w0 + bge .L2847 +.L2851: + 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,1960] + ldrh w0, [x23,2472] bl FtlFreeSysBlkQueueInit - ldrh w19, [x23,1964] -.L2839: - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,1966] - cmp w0, w19 - bls .L2841 - mov w0, w19 + ldrh w20, [x23,2476] +.L2849: + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0,2478] + cmp w0, w20 + bls .L2851 + mov w0, w20 mov w1, 1 - add w19, w19, 1 + add w20, w20, 1 bl FtlLowFormatEraseBlock - uxth w19, w19 - b .L2839 -.L2838: - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,1964] + uxth w20, w20 + b .L2849 +.L2848: + add x0, x21, :lo12:.LANCHOR0 + ldrh w1, [x0,2476] cmp w1, w22 - bls .L2862 + bls .L2872 mov w0, w22 mov w1, 0 add w22, w22, 1 bl FtlLowFormatEraseBlock - add w0, w19, w0 + add w0, w20, w0 uxth w22, w22 - uxth w19, w0 - b .L2838 -.L2862: - add x4, x21, :lo12:.LANCHOR2 - ldrh w1, [x0,1966] - ldrh w2, [x0,1956] - str w1, [x4,2036] - ldr w1, [x0,1968] + uxth w20, w0 + b .L2848 +.L2872: + add x4, x19, :lo12:.LANCHOR2 + ldrh w1, [x0,2478] + ldrh w2, [x0,2468] + str w1, [x4,3572] + ldr w1, [x0,2480] udiv w3, w1, w2 - str w3, [x0,2096] + str w3, [x0,2608] ubfx x6, x3, 5, 16 add w5, w6, 36 - strh w5, [x4,260] + strh w5, [x4,772] mov w5, 24 mul w5, w2, w5 - cmp w19, w5 - ble .L2843 - sub w1, w1, w19 + cmp w20, w5 + ble .L2853 + sub w1, w1, w20 udiv w1, w1, w2 - str w1, [x0,2096] + str w1, [x0,2608] lsr w1, w1, 5 add w1, w1, 24 - strh w1, [x4,260] -.L2843: - add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,1948] + strh w1, [x4,772] +.L2853: + add x0, x21, :lo12:.LANCHOR0 + ldr w0, [x0,2460] cmp w0, 1 - bne .L2844 - add x1, x21, :lo12:.LANCHOR2 - udiv w0, w19, w2 - ldrh w4, [x1,260] + bne .L2854 + add x1, x19, :lo12:.LANCHOR2 + udiv w0, w20, w2 + ldrh w4, [x1,772] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,260] -.L2844: - add x0, x20, :lo12:.LANCHOR0 + strh w0, [x1,772] +.L2854: + add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbz w0, .L2845 - add x1, x21, :lo12:.LANCHOR2 - udiv w0, w19, w2 - ldrh w4, [x1,260] + cbz w0, .L2855 + add x1, x19, :lo12:.LANCHOR2 + udiv w0, w20, w2 + ldrh w4, [x1,772] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,260] -.L2845: - add x5, x20, :lo12:.LANCHOR0 - ldrh w1, [x5,2018] - cbz w1, .L2847 - add x0, x21, :lo12:.LANCHOR2 - ldrh w4, [x0,260] + strh w0, [x1,772] +.L2855: + add x5, x21, :lo12:.LANCHOR0 + ldrh w1, [x5,2530] + cbz w1, .L2857 + add x0, x19, :lo12:.LANCHOR2 + ldrh w4, [x0,772] add w4, w4, w1, lsr 1 - strh w4, [x0,260] + strh w4, [x0,772] mul w4, w1, w2 - cmp w4, w19 - ble .L2847 + cmp w4, w20 + ble .L2857 add w1, w1, 32 - str w3, [x5,2096] + str w3, [x5,2608] add w1, w6, w1 - strh w1, [x0,260] -.L2847: - add x19, x21, :lo12:.LANCHOR2 - add x22, x20, :lo12:.LANCHOR0 + 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,2096] - ldrh w0, [x19,260] + ldr w1, [x22,2608] + ldrh w0, [x19,772] sub w0, w1, w0 add x1, x24, :lo12:.LANCHOR4 mul w0, w0, w2 - str w0, [x1,216] - ldrh w1, [x22,2024] + str w0, [x1,1752] + ldrh w1, [x22,2536] mul w0, w0, w1 - ldrh w1, [x22,2030] - str w0, [x22,2096] + ldrh w1, [x22,2542] + str w0, [x22,2608] mul w0, w0, w1 - str w0, [x22,2064] + str w0, [x22,2576] bl FtlBbmTblFlush - ldrh w2, [x22,1966] + ldrh w2, [x22,2478] mov w1, 0 - ldr x0, [x21,#:lo12:.LANCHOR2] - add x21, x19, 40 + ldr x0, [x19,512] lsl w2, w2, 1 bl ftl_memset - str wzr, [x19,196] - ldrh w2, [x22,1964] - mov w0, 1 - strb w0, [x21,8] - mov w1, 255 - ldr x0, [x20,#:lo12:.LANCHOR0] - lsr w2, w2, 3 - mov x22, x24 - strh w23, [x19,280] - strh wzr, [x19,282] - strb wzr, [x19,286] - strb wzr, [x19,288] - strh wzr, [x21,2] - strb wzr, [x21,6] - strh wzr, [x19,40] - bl ftl_memset -.L2849: - mov x0, x21 - bl make_superblock - ldrb w0, [x21,7] - cbnz w0, .L2850 - ldrh w1, [x21] - ldr x0, [x19] - strh w23, [x0,x1,lsl 1] - ldrh w0, [x21] - add w0, w0, 1 - strh w0, [x21] - b .L2849 -.L2850: - ldr w0, [x19,232] - mov x20, x19 - str w0, [x21,12] - add w0, w0, 1 - ldrh w1, [x21] - str w0, [x19,232] - ldr x0, [x20],88 - ldrh w2, [x21,4] - strh w2, [x0,x1,lsl 1] - strh wzr, [x20,2] - ldrh w0, [x21] - mov w21, -1 - strb wzr, [x20,6] - add w0, w0, 1 - strh w0, [x19,88] + str wzr, [x19,708] mov w0, 1 + ldrh w2, [x22,2476] strb w0, [x20,8] -.L2851: + mov w1, 255 + ldr x0, [x21,#: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 wzr, [x20,2] + strb wzr, [x20,6] + strh wzr, [x19,552] + bl ftl_memset +.L2859: mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbnz w0, .L2852 + cbnz w0, .L2860 ldrh w1, [x20] - ldr x0, [x19] - strh w21, [x0,x1,lsl 1] + ldr x0, [x19,512] + strh w23, [x0,x1,lsl 1] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L2851 -.L2852: - ldr w0, [x19,232] - add x22, x22, :lo12:.LANCHOR4 + b .L2859 +.L2860: + ldr w0, [x19,744] + mov w22, -1 str w0, [x20,12] add w0, w0, 1 ldrh w1, [x20] - str w0, [x19,232] - ldr x0, [x19] + str w0, [x19,744] + ldr x0, [x19,512] + ldrh w2, [x20,4] + strh w2, [x0,x1,lsl 1] + add x0, x19, 600 + strh wzr, [x19,602] + ldrh w1, [x20] + mov x20, x0 + strb wzr, [x19,606] + add w1, w1, 1 + strh w1, [x19,600] + mov w1, 1 + strb w1, [x19,608] +.L2861: + mov x0, x20 + bl make_superblock + ldrb w0, [x20,7] + cbnz w0, .L2862 + ldrh w1, [x20] + ldr x0, [x19,512] + strh w22, [x0,x1,lsl 1] + ldrh w0, [x20] + add w0, w0, 1 + strh w0, [x20] + b .L2861 +.L2862: + ldr w0, [x19,744] + add x21, x21, :lo12:.LANCHOR4 + str w0, [x20,12] + add w0, w0, 1 + ldrh w1, [x20] + str w0, [x19,744] + ldr x0, [x19,512] ldrh w2, [x20,4] mov w20, -1 strh w2, [x0,x1,lsl 1] - strh w20, [x19,136] + strh w20, [x19,648] bl FtlFreeSysBlkQueueOut - strh w0, [x19,264] - ldr w0, [x22,216] - strh w0, [x19,270] - ldr w0, [x19,232] - str w0, [x19,272] + strh w0, [x19,776] + ldr w0, [x21,1752] + strh w0, [x19,782] + ldr w0, [x19,744] + str w0, [x19,784] add w0, w0, 1 - strh wzr, [x19,266] - strh w20, [x19,268] - str w0, [x19,232] + strh wzr, [x19,778] + strh w20, [x19,780] + str w0, [x19,744] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L2831 + cbnz w0, .L2841 adrp x0, .LANCHOR1+504 mov w1, 1 str w1, [x0,#:lo12:.LANCHOR1+504] -.L2831: +.L2841: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18625,24 +18668,24 @@ FtlReInitForSDUpdata: adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbz w0, .L2864 -.L2866: + cbz w0, .L2874 +.L2876: mov w0, 0 - b .L2865 -.L2864: + b .L2875 +.L2874: adrp x20, .LANCHOR4 add x0, x20, :lo12:.LANCHOR4 - ldr x0, [x0,48] + ldr x0, [x0,1584] bl FlashInit - cbnz w0, .L2866 + cbnz w0, .L2876 bl FlashLoadFactorBbt - cbz w0, .L2867 + cbz w0, .L2877 bl FlashMakeFactorBbt -.L2867: +.L2877: add x20, x20, :lo12:.LANCHOR4 - ldr x0, [x20,104] + ldr x0, [x20,1640] bl FlashReadIdbDataRaw - cbz w0, .L2868 + cbz w0, .L2878 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -18651,39 +18694,39 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L2870: +.L2880: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L2870 + bne .L2880 cmp w0, 6 - bhi .L2871 + bhi .L2881 add x0, x19, :lo12:.LANCHOR0 - b .L2893 -.L2871: + b .L2903 +.L2881: mov w1, 0 mov w4, 1 -.L2874: +.L2884: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L2874 + bne .L2884 cmp w0, 17 add x0, x19, :lo12:.LANCHOR0 - bls .L2893 + bls .L2903 mov w1, 36 -.L2893: +.L2903: strb w1, [x0,73] add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,73] strh w1, [x0,194] -.L2868: +.L2878: adrp x0, .LC75 adrp x1, .LC76 add x1, x1, :lo12:.LC76 @@ -18693,28 +18736,28 @@ FtlReInitForSDUpdata: add x0, x19, 168 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x19,1960] + ldrh w0, [x19,2472] mov w19, 1 bl FtlFreeSysBlkQueueInit -.L2876: +.L2886: bl FtlLoadBbt - cbz w0, .L2877 -.L2895: + cbz w0, .L2887 +.L2905: bl FtlLowFormat cmp w19, 3 - bhi .L2896 + bhi .L2906 add w19, w19, 1 - b .L2876 -.L2896: + b .L2886 +.L2906: mov w0, -1 - b .L2865 -.L2877: + b .L2875 +.L2887: bl FtlSysBlkInit - cbnz w0, .L2895 + cbnz w0, .L2905 adrp x1, .LANCHOR1+504 mov w2, 1 str w2, [x1,#:lo12:.LANCHOR1+504] -.L2865: +.L2875: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -18729,74 +18772,74 @@ Ftl_gc_temp_data_write_back: adrp x21, .LANCHOR2 add x0, x21, :lo12:.LANCHOR2 stp x19, x20, [sp,16] - ldr w1, [x0,-96] - cbz w1, .L2898 -.L2901: + ldr w1, [x0,416] + cbz w1, .L2908 +.L2911: mov w0, 0 - b .L2899 -.L2898: + b .L2909 +.L2908: adrp x1, .LANCHOR0+196 ldrb w1, [x1,#:lo12:.LANCHOR0+196] - cbz w1, .L2900 - ldr w1, [x0,864] - tbz x1, 0, .L2900 - ldrh w0, [x0,140] - cbnz w0, .L2901 -.L2900: + cbz w1, .L2910 + ldr w1, [x0,1376] + tbz x1, 0, .L2910 + ldrh w0, [x0,652] + cbnz w0, .L2911 +.L2910: add x1, x21, :lo12:.LANCHOR2 mov w2, 0 mov w3, w2 mov w20, 0 mov w22, 56 - ldr x0, [x1,2056] - ldr w1, [x1,864] + ldr x0, [x1,3592] + ldr w1, [x1,1376] bl FlashProgPages -.L2902: +.L2912: add x19, x21, :lo12:.LANCHOR2 - ldr w1, [x19,864] + ldr w1, [x19,1376] cmp w20, w1 - bcs .L2912 + bcs .L2922 umull x0, w20, w22 - ldr x3, [x19,2056] + ldr x3, [x19,3592] add x1, x3, x0 ldr w3, [x3,x0] cmn w3, #1 ldr x2, [x1,16] - bne .L2903 - ldrh w2, [x19,136] - ldr x1, [x19] + bne .L2913 + ldrh w2, [x19,648] + ldr x1, [x19,512] strh wzr, [x1,x2,lsl 1] - strh w3, [x19,136] - ldr w1, [x19,432] + strh w3, [x19,648] + ldr w1, [x19,944] add w1, w1, 1 - str w1, [x19,432] - ldr x1, [x19,2056] + str w1, [x19,944] + ldr x1, [x19,3592] add x0, x1, x0 ldr w0, [x0,4] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L2911 -.L2903: + b .L2921 +.L2913: ldr w0, [x2,12] add w20, w20, 1 ldr w1, [x1,4] ldr w2, [x2,8] uxth w20, w20 bl FtlGcUpdatePage - b .L2902 -.L2912: - ldr x0, [x19,2056] + b .L2912 +.L2922: + ldr x0, [x19,3592] bl FtlGcBufFree - str wzr, [x19,864] - ldrh w0, [x19,140] - cbnz w0, .L2901 + str wzr, [x19,1376] + ldrh w0, [x19,652] + cbnz w0, .L2911 mov w0, 1 bl FtlGcFreeTempBlock -.L2911: +.L2921: mov w0, 1 -.L2899: +.L2909: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -18811,30 +18854,30 @@ Ftl_get_new_temp_ppa: stp x19, x20, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 136 - ldrh w2, [x0,136] + add x1, x0, 648 + ldrh w2, [x0,648] mov w0, 65535 cmp w2, w0 - beq .L2914 + beq .L2924 ldrh w0, [x1,4] - cbnz w0, .L2915 -.L2914: + cbnz w0, .L2925 +.L2924: bl FtlCacheWriteBack add x20, x19, :lo12:.LANCHOR2 mov w0, 0 bl FtlGcFreeTempBlock - strb wzr, [x20,144] - add x0, x20, 136 + strb wzr, [x20,656] + add x0, x20, 648 bl allocate_data_superblock - strh wzr, [x20,908] - strh wzr, [x20,920] + strh wzr, [x20,1420] + strh wzr, [x20,1432] bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2915: +.L2925: add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 136 + add x0, x0, 648 bl get_new_active_ppa ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -18854,640 +18897,639 @@ ftl_do_gc: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w4, [x3,-96] - cbnz w4, .L3069 + ldr w4, [x3,416] + cbnz w4, .L3079 adrp x4, .LANCHOR1 add x4, x4, :lo12:.LANCHOR1 ldr w5, [x4,504] cmn w5, #1 - beq .L3069 - ldr w5, [x3,2024] - cbnz w5, .L3069 - ldrh w5, [x3,16] + beq .L3079 + ldr w5, [x3,3560] + cbnz w5, .L3079 + ldrh w5, [x3,528] cmp w5, 47 - bls .L3069 + bls .L3079 mov w22, w1 - ldrh w1, [x4,3296] + ldrh w1, [x4,3360] str w0, [x29,124] mov w0, 65535 cmp w1, w0 - bne .L2918 -.L2921: + bne .L2928 +.L2931: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w4, [x0,938] + ldrh w4, [x0,1450] cmp w4, w2 - bne .L2919 - b .L2920 -.L2918: - ldrh w1, [x3,136] + bne .L2929 + b .L2930 +.L2928: + ldrh w1, [x3,648] cmp w1, w0 - beq .L2921 + beq .L2931 mov w0, 1 bl FtlGcFreeTempBlock mov w2, 1 - cbz w0, .L2921 - b .L3069 -.L2919: - ldrh w1, [x0,936] + cbz w0, .L2931 + b .L3079 +.L2929: + ldrh w1, [x0,1448] cmp w1, w2 - bne .L2920 - ldrh w3, [x0,940] + bne .L2930 + ldrh w3, [x0,1452] cmp w3, w1 - beq .L2920 - ldrh w2, [x0,942] + beq .L2930 + ldrh w2, [x0,1454] cmp w2, w1 - beq .L2920 + beq .L2930 mov w1, -1 - strh w4, [x0,936] - strh w3, [x0,938] - strh w2, [x0,940] - strh w1, [x0,942] -.L2920: + strh w4, [x0,1448] + strh w3, [x0,1450] + strh w2, [x0,1452] + strh w1, [x0,1454] +.L2930: add x1, x19, :lo12:.LANCHOR2 ldr w2, [x29,124] cmp w2, 1 - ldr w0, [x1,852] + ldr w0, [x1,1364] add w0, w0, 1 add w0, w0, w2, lsl 7 - str w0, [x1,852] - bne .L2932 - adrp x25, .LANCHOR0 - add x1, x25, :lo12:.LANCHOR0 - ldr w2, [x1,1948] - cbnz w2, .L2923 + str w0, [x1,1364] + bne .L2942 + adrp x2, .LANCHOR0 + add x1, x2, :lo12:.LANCHOR0 + mov x26, x2 + ldr w3, [x1,2460] + cbnz w3, .L2933 ldrb w1, [x1,196] - cbz w1, .L2932 -.L2923: + cbz w1, .L2942 +.L2933: add x20, x19, :lo12:.LANCHOR2 - ldr w1, [x20,256] + ldr w1, [x20,768] cmp w1, 39 - bhi .L2932 + bhi .L2942 adrp x21, .LANCHOR5 add x1, x21, :lo12:.LANCHOR5 - ldrh w1, [x1,-80] + ldrh w1, [x1,1456] add w0, w0, w1 - str w0, [x20,852] + str w0, [x20,1364] bl FtlGcReFreshBadBlk - ldrh w0, [x20,280] + ldrh w0, [x20,792] mov w1, 65535 cmp w0, w1 - bne .L2932 - ldrh w1, [x20,936] + bne .L2942 + ldrh w1, [x20,1448] cmp w1, w0 - bne .L2932 - ldr w0, [x20,852] + bne .L2942 + ldr w0, [x20,1364] cmp w0, 1024 - bhi .L2924 - ldrh w0, [x20,32] + bhi .L2934 + ldrh w0, [x20,544] cmp w0, 63 - bhi .L2932 -.L2924: + bhi .L2942 +.L2934: add x0, x19, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR5 - ldrh w2, [x0,850] - ldrh w3, [x0,32] + ldrh w2, [x0,1362] + ldrh w3, [x0,544] add w2, w2, 64 - strh wzr, [x1,-80] + strh wzr, [x1,1456] cmp w3, w2 - bgt .L2932 - str wzr, [x0,852] - ldr w0, [x0,256] - cbnz w0, .L2925 + bgt .L2942 + str wzr, [x0,1364] + ldr w0, [x0,768] + cbnz w0, .L2935 mov w0, 6 - b .L3091 -.L2925: + b .L3101 +.L2935: cmp w0, 5 - bhi .L2926 + bhi .L2936 mov w0, 18 -.L3091: - strh w0, [x1,-80] -.L2926: +.L3101: + strh w0, [x1,1456] +.L2936: mov w0, 32 - mov w24, 65535 + mov w28, 65535 bl List_get_gc_head_node - uxth w26, w0 - cmp w26, w24 - beq .L2931 + uxth w25, w0 + cmp w25, w28 + beq .L2941 add x23, x19, :lo12:.LANCHOR2 - adrp x27, .LANCHOR2 - ldrh w0, [x23,856] - cbz w0, .L2928 - add x25, x25, :lo12:.LANCHOR0 - ldr x28, [x27,#:lo12:.LANCHOR2] - ubfiz x26, x26, 1, 16 - ldrh w1, [x25,2026] - ldrh w4, [x25,1956] - ldrh w2, [x28,x26] - mul w1, w1, w4 + ldrh w0, [x23,1368] + cbz w0, .L2938 + add x2, x26, :lo12:.LANCHOR0 + ldr x27, [x23,512] + ubfiz x25, x25, 1, 16 + ldrh w1, [x2,2538] + ldrh w2, [x2,2468] + ldrh w3, [x27,x25] + mul w1, w1, w2 add w1, w1, 1 - cmp w2, w1 - bgt .L2931 + cmp w3, w1 + bgt .L2941 add w1, w0, 1 - str wzr, [x23,860] + str wzr, [x23,1372] uxth w1, w1 - strh w1, [x23,856] + strh w1, [x23,1368] str x1, [x29,112] bl List_get_gc_head_node uxth w20, w0 - cmp w20, w24 + cmp w20, w28 ldr x1, [x29,112] - beq .L2931 - ubfiz x25, x20, 1, 16 + beq .L2941 + ubfiz x26, x20, 1, 16 adrp x0, .LC151 - ldrh w4, [x28,x26] + ldrh w4, [x27,x25] add x0, x0, :lo12:.LC151 mov w2, w20 - ldrh w3, [x28,x25] + ldrh w3, [x27,x26] bl printk - ldrh w0, [x23,856] + ldrh w0, [x23,1368] cmp w0, 40 - bls .L2929 - ldr x0, [x27,#:lo12:.LANCHOR2] - ldrh w0, [x0,x25] + bls .L2939 + ldr x0, [x23,512] + ldrh w0, [x0,x26] cmp w0, 32 - bls .L2929 - strh wzr, [x23,856] -.L2929: + bls .L2939 + strh wzr, [x23,1368] +.L2939: add x21, x21, :lo12:.LANCHOR5 mov w0, 6 - strh w0, [x21,-80] - b .L2933 -.L2928: + strh w0, [x21,1456] + b .L2943 +.L2938: mov w0, 1 - strh w0, [x23,856] -.L2931: + strh w0, [x23,1368] +.L2941: bl GetSwlReplaceBlock uxth w20, w0 mov w0, 65535 cmp w20, w0 - bne .L2933 + bne .L2943 add x21, x21, :lo12:.LANCHOR5 - strh wzr, [x21,-80] -.L2932: + strh wzr, [x21,1456] +.L2942: add x21, x19, :lo12:.LANCHOR2 mov w0, 65535 - ldrh w20, [x21,280] + ldrh w20, [x21,792] cmp w20, w0 - bne .L3095 - ldrh w0, [x21,136] + bne .L3105 + ldrh w0, [x21,648] cmp w0, w20 - beq .L3096 -.L2933: + beq .L3106 +.L2943: mov w0, 65535 cmp w20, w0 cset w2, eq - cbz w2, .L2946 + cbz w2, .L2956 ldr w0, [x29,124] - cbnz w0, .L2946 + cbnz w0, .L2956 add x0, x19, :lo12:.LANCHOR2 mov w21, 1 - ldrh w1, [x0,32] + ldrh w1, [x0,544] cmp w1, 24 - bhi .L2947 + bhi .L2957 adrp x0, .LANCHOR0 cmp w1, 16 add x0, x0, :lo12:.LANCHOR0 - ldrh w21, [x0,2024] - bls .L2948 + ldrh w21, [x0,2536] + bls .L2958 lsr w21, w21, 5 - b .L2947 -.L2948: + b .L2957 +.L2958: cmp w1, 12 - bls .L2949 + bls .L2959 lsr w21, w21, 4 - b .L2947 -.L2949: + b .L2957 +.L2959: cmp w1, 8 - bls .L2947 + bls .L2957 lsr w21, w21, 2 -.L2947: +.L2957: add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,848] + ldrh w2, [x0,1360] cmp w2, w1 - bcs .L2951 - ldrh w1, [x0,136] + bcs .L2961 + ldrh w1, [x0,648] mov w2, 65535 cmp w1, w2 - bne .L2952 - ldrh w2, [x0,936] + bne .L2962 + ldrh w2, [x0,1448] cmp w2, w1 - bne .L2952 - adrp x1, .LANCHOR5-80 - ldrh w2, [x1,#:lo12:.LANCHOR5-80] - cbnz w2, .L2953 - adrp x1, .LANCHOR0+2096 - ldr w3, [x0,196] - ldr w1, [x1,#:lo12:.LANCHOR0+2096] + 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] add w1, w1, w1, lsl 1 cmp w3, w1, lsr 2 - bcs .L2954 -.L2953: + bcs .L2964 +.L2963: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,260] + ldrh w0, [x1,772] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,848] - b .L2955 -.L2954: + strh w0, [x1,1360] + b .L2965 +.L2964: mov w1, 18 - strh w1, [x0,848] -.L2955: + strh w1, [x0,1360] +.L2965: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,860] - b .L3069 -.L2952: + str wzr, [x19,1372] + b .L3079 +.L2962: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,260] + ldrh w0, [x1,772] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,848] -.L2951: + strh w0, [x1,1360] +.L2961: cmp w22, 2 - bhi .L3023 - adrp x0, .LANCHOR0+1948 - ldr w0, [x0,#:lo12:.LANCHOR0+1948] - cbz w0, .L3023 + bhi .L3033 + adrp x0, .LANCHOR0+2460 + ldr w0, [x0,#:lo12:.LANCHOR0+2460] + cbz w0, .L3033 add w21, w21, 1 uxth w21, w21 - b .L3023 -.L2946: + b .L3033 +.L2956: add x0, x19, :lo12:.LANCHOR2 mov w3, 65535 - ldrh w1, [x0,136] + ldrh w1, [x0,648] cmp w1, w3 - bne .L2958 - cbz w2, .L2958 - ldrh w2, [x0,936] + bne .L2968 + cbz w2, .L2968 + ldrh w2, [x0,1448] cmp w2, w1 - bne .L2958 - ldrh w2, [x0,280] + bne .L2968 + ldrh w2, [x0,792] cmp w2, w1 - beq .L2959 -.L2964: + beq .L2969 +.L2974: mov w20, 65535 - b .L2958 -.L2959: - ldrh w2, [x0,32] + b .L2968 +.L2969: + ldrh w2, [x0,544] adrp x20, .LANCHOR5 - ldrh w1, [x0,848] - str wzr, [x0,860] + ldrh w1, [x0,1360] + str wzr, [x0,1372] cmp w2, w1 - bls .L2960 + bls .L2970 add x1, x20, :lo12:.LANCHOR5 - ldrh w1, [x1,-80] - cbnz w1, .L2961 - adrp x1, .LANCHOR0+2096 - ldr w2, [x0,196] - ldr w1, [x1,#:lo12:.LANCHOR0+2096] + ldrh w1, [x1,1456] + cbnz w1, .L2971 + adrp x1, .LANCHOR0+2608 + ldr w2, [x0,708] + ldr w1, [x1,#:lo12:.LANCHOR0+2608] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bcs .L2962 -.L2961: + bcs .L2972 +.L2971: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,260] + ldrh w0, [x1,772] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,848] - b .L2963 -.L2962: + strh w0, [x1,1360] + b .L2973 +.L2972: mov w1, 18 - strh w1, [x0,848] -.L2963: + strh w1, [x0,1360] +.L2973: bl FtlReadRefresh mov w0, 0 bl List_get_gc_head_node ubfiz x0, x0, 1, 16 - ldr x1, [x19,#:lo12:.LANCHOR2] + add x1, x19, :lo12:.LANCHOR2 + ldr x1, [x1,512] ldrh w0, [x1,x0] cmp w0, 4 - bls .L2960 + bls .L2970 add x20, x20, :lo12:.LANCHOR5 - ldrh w2, [x20,-80] - b .L3069 -.L2960: + ldrh w2, [x20,1456] + b .L3079 +.L2970: add x21, x20, :lo12:.LANCHOR5 - ldrh w0, [x21,-80] - cbnz w0, .L2964 + ldrh w0, [x21,1456] + cbnz w0, .L2974 add x22, x19, :lo12:.LANCHOR2 - ldrh w20, [x22,260] + ldrh w20, [x22,772] add w1, w20, w20, lsl 1 asr w1, w1, 2 - strh w1, [x22,848] + strh w1, [x22,1360] bl List_get_gc_head_node ubfiz x0, x0, 1, 16 - ldr x1, [x19,#:lo12:.LANCHOR2] + ldr x1, [x22,512] ldrh w2, [x1,x0] adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w0, [x1,2026] - ldrh w1, [x1,1956] + ldrh w0, [x1,2538] + ldrh w1, [x1,2468] mul w0, w0, w1 mov w1, 2 sdiv w0, w0, w1 cmp w2, w0 - ble .L2965 - ldrh w0, [x22,32] + ble .L2975 + ldrh w0, [x22,544] sub w20, w20, #1 cmp w0, w20 - blt .L2965 + blt .L2975 bl FtlReadRefresh - b .L3094 -.L2965: - cbnz w2, .L2964 + b .L3104 +.L2975: + cbnz w2, .L2974 mov w0, -1 add x19, x19, :lo12:.LANCHOR2 bl decrement_vpc_count - ldrh w2, [x19,32] + ldrh w2, [x19,544] add w2, w2, 1 - b .L3069 -.L2958: - adrp x0, .LANCHOR0+1948 + b .L3079 +.L2968: + adrp x0, .LANCHOR0+2460 mov w21, 2 - ldr w0, [x0,#:lo12:.LANCHOR0+1948] + ldr w0, [x0,#:lo12:.LANCHOR0+2460] cmp w0, wzr csinc w21, w21, wzr, ne - b .L2957 -.L3023: + b .L2967 +.L3033: mov w20, 65535 -.L2957: - add x0, x19, :lo12:.LANCHOR2 - mov w2, 65535 - ldrh w1, [x0,280] - cmp w1, w2 - bne .L2967 - cmp w20, w1 - beq .L2968 - strh w20, [x0,280] - b .L2969 -.L2968: - ldrh w1, [x0,936] - cmp w1, w20 - beq .L2969 - adrp x2, .LANCHOR2 - ubfiz x1, x1, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2] - ldrh w1, [x2,x1] - cbnz w1, .L2970 - mov w1, -1 - strh w1, [x0,936] -.L2970: - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,936] - strh w1, [x0,280] - mov w1, -1 - strh w1, [x0,936] -.L2969: - add x22, x19, :lo12:.LANCHOR2 - mov w1, 65535 - ldrh w0, [x22,280] - strb wzr, [x22,288] - cmp w0, w1 - beq .L2967 - bl IsBlkInGcList - cbz w0, .L2972 - mov w0, -1 - strh w0, [x22,280] -.L2972: - adrp x0, .LANCHOR0+196 - ldrb w0, [x0,#:lo12:.LANCHOR0+196] - cbz w0, .L2973 - add x0, x19, :lo12:.LANCHOR2 - add x22, x0, 280 - ldrh w0, [x0,280] - bl ftl_get_blk_mode - strb w0, [x22,8] -.L2973: - add x22, x19, :lo12:.LANCHOR2 - mov w0, 65535 - add x23, x22, 280 - ldrh w1, [x22,280] - cmp w1, w0 - beq .L2967 - mov x0, x23 - bl make_superblock - strh wzr, [x22,282] - adrp x0, .LANCHOR5 - adrp x1, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR5 - ldrh w2, [x22,280] - strb wzr, [x22,286] - ldr x1, [x1,#:lo12:.LANCHOR2] - strh wzr, [x0,-78] - ldrh w1, [x1,x2,lsl 1] - strh w1, [x0,-76] .L2967: add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,280] - ldrh w2, [x0,40] - cmp w2, w1 - beq .L2974 - ldrh w2, [x0,88] - cmp w2, w1 - beq .L2974 - ldrh w0, [x0,136] + mov w2, 65535 + ldrh w1, [x0,792] + cmp w1, w2 + bne .L2977 + cmp w20, w1 + beq .L2978 + strh w20, [x0,792] + b .L2979 +.L2978: + ldrh w1, [x0,1448] + cmp w1, w20 + beq .L2979 + ubfiz x1, x1, 1, 16 + ldr x2, [x0,512] + ldrh w1, [x2,x1] + cbnz w1, .L2980 + mov w1, -1 + strh w1, [x0,1448] +.L2980: + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x0,1448] + strh w1, [x0,792] + mov w1, -1 + strh w1, [x0,1448] +.L2979: + add x22, x19, :lo12:.LANCHOR2 + mov w1, 65535 + ldrh w0, [x22,792] + strb wzr, [x22,800] cmp w0, w1 - bne .L2975 -.L2974: + beq .L2977 + bl IsBlkInGcList + cbz w0, .L2982 + mov w0, -1 + strh w0, [x22,792] +.L2982: + adrp x0, .LANCHOR0+196 + ldrb w0, [x0,#:lo12:.LANCHOR0+196] + cbz w0, .L2983 + add x0, x19, :lo12:.LANCHOR2 + add x22, x0, 792 + ldrh w0, [x0,792] + bl ftl_get_blk_mode + strb w0, [x22,8] +.L2983: + add x22, x19, :lo12:.LANCHOR2 + mov w0, 65535 + add x23, x22, 792 + ldrh w1, [x22,792] + cmp w1, w0 + beq .L2977 + mov x0, x23 + bl make_superblock + strh wzr, [x22,794] + adrp x0, .LANCHOR5 + ldrh w2, [x22,792] + add x0, x0, :lo12:.LANCHOR5 + ldr x1, [x22,512] + strb wzr, [x22,798] + strh wzr, [x0,1458] + ldrh w1, [x1,x2,lsl 1] + strh w1, [x0,1460] +.L2977: + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x0,792] + ldrh w2, [x0,552] + cmp w2, w1 + beq .L2984 + ldrh w2, [x0,600] + cmp w2, w1 + beq .L2984 + ldrh w0, [x0,648] + cmp w0, w1 + bne .L2985 +.L2984: add x0, x19, :lo12:.LANCHOR2 mov w1, -1 - strh w1, [x0,280] -.L2975: + strh w1, [x0,792] +.L2985: add x24, x19, :lo12:.LANCHOR2 mov w25, 65535 -.L3008: - ldrh w0, [x24,280] +.L3018: + ldrh w0, [x24,792] cmp w0, w25 - bne .L2976 - str wzr, [x24,860] -.L2977: - ldrh w22, [x24,856] + bne .L2986 + str wzr, [x24,1372] +.L2987: + ldrh w22, [x24,1368] mov w0, w22 bl List_get_gc_head_node uxth w23, w0 cmp w23, w25 - strh w23, [x24,280] - bne .L2978 - strh wzr, [x24,856] + strh w23, [x24,792] + bne .L2988 + strh wzr, [x24,1368] mov w2, 8 - b .L3069 -.L2978: + b .L3079 +.L2988: mov w0, w23 add w22, w22, 1 bl IsBlkInGcList - cbz w0, .L2979 - strh w22, [x24,856] - b .L2977 -.L2979: + cbz w0, .L2989 + strh w22, [x24,1368] + b .L2987 +.L2989: adrp x0, .LANCHOR0 ubfiz x1, x23, 1, 16 add x5, x0, :lo12:.LANCHOR0 - ldr x2, [x24] + ldr x2, [x24,512] uxth w22, w22 mov w3, 2 - strh w22, [x24,856] - ldrh w0, [x5,2024] - ldrh w5, [x5,1956] + strh w22, [x24,1368] + ldrh w0, [x5,2536] + ldrh w5, [x5,2468] ldrh w4, [x2,x1] mul w0, w0, w5 sdiv w5, w0, w3 cmp w4, w5 - bgt .L2981 + bgt .L2991 cmp w4, 8 - bls .L2982 + bls .L2992 cmp w22, 48 - bls .L2982 - ldrh w4, [x24,908] + bls .L2992 + ldrh w4, [x24,1420] cmp w4, 35 - bhi .L2982 -.L2981: - strh wzr, [x24,856] -.L2982: + bhi .L2992 +.L2991: + strh wzr, [x24,1368] +.L2992: cmp w20, w25 ldrh w1, [x2,x1] - bne .L2983 + bne .L2993 cmp w1, w0 - blt .L2983 - ldrh w0, [x24,856] + blt .L2993 + ldrh w0, [x24,1368] cmp w0, 3 - bhi .L2983 + bhi .L2993 mov w0, -1 - strh w0, [x24,280] - adrp x0, .LANCHOR5-80 - strh wzr, [x24,856] - ldrh w2, [x0,#:lo12:.LANCHOR5-80] - b .L3069 -.L2983: - cbnz w1, .L2984 + strh w0, [x24,792] + adrp x0, .LANCHOR5+1456 + strh wzr, [x24,1368] + ldrh w2, [x0,#:lo12:.LANCHOR5+1456] + b .L3079 +.L2993: + cbnz w1, .L2994 mov w0, -1 bl decrement_vpc_count - ldrh w0, [x24,856] + ldrh w0, [x24,1368] add w0, w0, 1 - strh w0, [x24,856] - b .L2977 -.L2984: + strh w0, [x24,1368] + b .L2987 +.L2994: adrp x0, .LANCHOR0 - strb wzr, [x24,288] + strb wzr, [x24,800] add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbz w0, .L2985 + cbz w0, .L2995 mov w0, w23 bl ftl_get_blk_mode - strb w0, [x24,288] -.L2985: - add x22, x24, 280 + strb w0, [x24,800] +.L2995: + add x22, x24, 792 mov x0, x22 bl make_superblock adrp x1, .LANCHOR5 - ldrh w2, [x24,280] + ldrh w2, [x24,792] add x1, x1, :lo12:.LANCHOR5 - ldr x0, [x24] - strh wzr, [x1,-78] + ldr x0, [x24,512] + strh wzr, [x1,1458] ldrh w0, [x0,x2,lsl 1] - strh w0, [x1,-76] - strh wzr, [x24,282] - strb wzr, [x24,286] -.L2976: + strh w0, [x1,1460] + strh wzr, [x24,794] + strb wzr, [x24,798] +.L2986: ldr w0, [x29,124] cmp w0, 1 - bne .L2986 + bne .L2996 bl FtlReadRefresh -.L2986: +.L2996: mov w0, 1 - str w0, [x24,2024] + str w0, [x24,3560] adrp x0, .LANCHOR0 adrp x22, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,196] - ldrh w26, [x0,2024] - cbz w1, .L2987 - ldrb w1, [x24,288] + ldrh w26, [x0,2536] + cbz w1, .L2997 + ldrb w1, [x24,800] cmp w1, 1 - bne .L2987 - ldrh w26, [x0,2026] -.L2987: - ldrh w0, [x24,282] + bne .L2997 + ldrh w26, [x0,2538] +.L2997: + ldrh w0, [x24,794] add w1, w0, w21 cmp w1, w26 - ble .L2988 + ble .L2998 sub w21, w26, w0 uxth w21, w21 -.L2988: +.L2998: mov w27, 0 -.L2989: +.L2999: cmp w21, w27, uxth - bls .L2996 - add x1, x24, 280 + bls .L3006 + add x1, x24, 792 add x0, x22, :lo12:.LANCHOR0 ldrh w4, [x1,2] - ldrh w6, [x0,1956] + ldrh w6, [x0,2468] mov x0, 0 add w4, w4, w27 mov w23, w0 -.L2997: +.L3007: cmp w6, w0, uxth - bls .L3097 + bls .L3107 add x2, x1, x0, lsl 1 ldrh w2, [x2,16] cmp w2, w25 - beq .L2990 + beq .L3000 mov w3, 56 - ldr x7, [x24,896] + ldr x7, [x24,1408] 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] -.L2990: +.L3000: add x0, x0, 1 - b .L2997 -.L3097: - ldr x0, [x24,896] + b .L3007 +.L3107: + ldr x0, [x24,1408] mov w1, w23 - ldrb w2, [x24,288] + ldrb w2, [x24,800] mov x28, 0 bl FlashReadPages -.L2992: +.L3002: cmp w23, w28, uxth - bls .L3098 + bls .L3108 mov x0, 56 - mul x5, x28, x0 - ldr x0, [x24,896] - add x1, x0, x5 - ldr w0, [x0,x5] + mul x4, x28, x0 + ldr x0, [x24,1408] + add x1, x0, x4 + ldr w0, [x0,x4] cmn w0, #1 - ldr x4, [x1,16] - beq .L3026 - ldrh w0, [x4] + ldr x5, [x1,16] + beq .L3036 + ldrh w0, [x5] mov w1, 61589 cmp w0, w1 - bne .L3026 - ldr w0, [x4,8] + bne .L3036 + ldr w0, [x5,8] add x1, x29, 136 mov w2, 0 - str x5, [x29,104] - str x4, [x29,112] + str x4, [x29,104] + str x5, [x29,112] bl log2phys - ldr x2, [x24,896] - ldr x5, [x29,104] + ldr x2, [x24,1408] + ldr x4, [x29,104] ldr w0, [x29,136] - add x2, x2, x5 - ldr x4, [x29,112] + add x2, x2, x4 + ldr x5, [x29,112] and w0, w0, 2147483647 ldr w1, [x2,4] cmp w0, w1 - bne .L3026 + bne .L3036 adrp x0, .LANCHOR5 mov x3, 56 add x1, x0, :lo12:.LANCHOR5 - str x5, [x29,96] - str x4, [x29,104] - ldrh w0, [x1,-78] + str x4, [x29,96] + str x5, [x29,104] + ldrh w0, [x1,1458] add w0, w0, 1 - strh w0, [x1,-78] - ldr w0, [x24,864] - ldr x1, [x24,2056] + strh w0, [x1,1458] + ldr w0, [x24,1376] + ldr x1, [x24,3592] madd x1, x0, x3, x1 ldr w0, [x2,24] str x1, [x29,112] @@ -19495,186 +19537,188 @@ ftl_do_gc: bl Ftl_get_new_temp_ppa ldr x1, [x29,112] mov x2, 56 - ldr x5, [x29,96] - ldr x4, [x29,104] + ldr x4, [x29,96] + ldr x5, [x29,104] str w0, [x1,4] - ldr w0, [x24,864] - ldr x1, [x24,2056] + ldr w0, [x24,1376] + ldr x1, [x24,3592] madd x0, x0, x2, x1 - ldr x1, [x24,896] - add x1, x1, x5 + ldr x1, [x24,1408] + add x1, x1, x4 ldr x2, [x1,8] str x2, [x0,8] - add x2, x24, 136 + add x2, x24, 648 str x2, [x29,112] ldr x1, [x1,16] str x1, [x0,16] mov w1, 1 ldr w0, [x29,136] - str w0, [x4,12] - ldrh w0, [x24,136] - strh w0, [x4,2] - ldr w0, [x24,236] - str w0, [x4,4] - ldr w0, [x24,864] + str w0, [x5,12] + ldrh w0, [x24,648] + strh w0, [x5,2] + ldr w0, [x24,748] + str w0, [x5,4] + ldr w0, [x24,1376] add w0, w0, 1 - str w0, [x24,864] - ldr x0, [x24,896] - add x0, x0, x5 + str w0, [x24,1376] + ldr x0, [x24,1408] + add x0, x0, x4 bl FtlGcBufAlloc add x0, x22, :lo12:.LANCHOR0 ldrb w0, [x0,196] - cbnz w0, .L2994 + cbnz w0, .L3004 ldr x2, [x29,112] - ldr w1, [x24,864] + ldr w1, [x24,1376] ldrb w0, [x2,7] cmp w1, w0 - beq .L2994 + beq .L3004 ldrh w0, [x2,4] - cbnz w0, .L3026 -.L2994: + cbnz w0, .L3036 +.L3004: bl Ftl_gc_temp_data_write_back - cbz w0, .L3026 + cbz w0, .L3036 add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - strh w0, [x19,280] + strh w0, [x19,792] adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - str wzr, [x19,2024] - strh wzr, [x19,282] - ldrh w2, [x0,-80] - b .L3069 -.L3026: + str wzr, [x19,3560] + strh wzr, [x19,794] + ldrh w2, [x0,1456] + b .L3079 +.L3036: add x28, x28, 1 - b .L2992 -.L3098: + b .L3002 +.L3108: add w27, w27, 1 - b .L2989 -.L2996: - ldrh w0, [x24,282] + b .L2999 +.L3006: + ldrh w0, [x24,794] add w21, w21, w0 uxth w21, w21 - strh w21, [x24,282] + strh w21, [x24,794] cmp w21, w26 - bcc .L2998 - ldr w0, [x24,864] + bcc .L3008 + ldr w0, [x24,1376] adrp x21, .LANCHOR5 - cbz w0, .L2999 + cbz w0, .L3009 bl Ftl_gc_temp_data_write_back - cbz w0, .L2999 - str wzr, [x24,2024] + cbz w0, .L3009 + str wzr, [x24,3560] add x21, x21, :lo12:.LANCHOR5 -.L3094: - ldrh w2, [x21,-80] - b .L3069 -.L2999: +.L3104: + ldrh w2, [x21,1456] + b .L3079 +.L3009: add x21, x21, :lo12:.LANCHOR5 - ldrh w21, [x21,-78] - cbnz w21, .L3000 - ldrh w1, [x24,280] - ldr x0, [x24] + ldrh w21, [x21,1458] + cbnz w21, .L3010 + ldrh w1, [x24,792] + ldr x0, [x24,512] ldrh w0, [x0,x1,lsl 1] - cbz w0, .L3000 -.L3001: + cbz w0, .L3010 +.L3011: add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2096] + ldr w0, [x0,2608] cmp w21, w0 - bcs .L3006 + bcs .L3016 mov w0, w21 add x1, x29, 140 mov w2, 0 bl log2phys ldr w0, [x29,140] cmn w0, #1 - beq .L3002 + beq .L3012 lsr w0, w0, 10 bl P2V_block_in_plane - ldrh w1, [x24,280] + ldrh w1, [x24,792] cmp w1, w0, uxth - bne .L3002 -.L3006: + bne .L3012 +.L3016: add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2096] + ldr w0, [x0,2608] cmp w21, w0 - bcc .L3000 - ldrh w1, [x24,280] - ldr x0, [x24] + bcc .L3010 + ldrh w1, [x24,792] + ldr x0, [x24,512] strh wzr, [x0,x1,lsl 1] - ldrh w0, [x24,280] + ldrh w0, [x24,792] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3000 -.L3002: + b .L3010 +.L3012: add w21, w21, 1 - b .L3001 -.L3000: + b .L3011 +.L3010: mov w0, -1 - strh w0, [x24,280] -.L2998: - ldrh w0, [x24,32] + strh w0, [x24,792] +.L3008: + ldrh w0, [x24,544] cmp w0, 2 - bhi .L3007 + bhi .L3017 add x22, x22, :lo12:.LANCHOR0 - ldrh w21, [x22,2024] - b .L3008 -.L3007: - adrp x1, .LANCHOR5-80 - str wzr, [x24,2024] - ldrh w2, [x1,#:lo12:.LANCHOR5-80] + ldrh w21, [x22,2536] + b .L3018 +.L3017: + adrp x1, .LANCHOR5+1456 + str wzr, [x24,3560] + ldrh w2, [x1,#:lo12:.LANCHOR5+1456] cmp w2, wzr csinc w2, w2, w0, ne - b .L3069 -.L3096: - ldrh w23, [x21,936] - cmp w23, w20 - bne .L2933 - ldrh w0, [x21,32] + b .L3079 +.L3106: + ldrh w25, [x21,1448] + cmp w25, w20 + bne .L2943 + ldrh w0, [x21,544] mov w2, 1024 - ldr w1, [x21,852] + ldr w1, [x21,1364] cmp w0, 24 mov w0, 5120 csel w0, w0, w2, cc cmp w1, w0 - bls .L2933 - adrp x0, .LANCHOR5-80 - str wzr, [x21,852] - strh wzr, [x0,#:lo12:.LANCHOR5-80] + bls .L2943 + adrp x0, .LANCHOR5+1456 + str wzr, [x21,1364] + mov x23, x21 + strh wzr, [x0,#:lo12:.LANCHOR5+1456] bl GetSwlReplaceBlock uxth w20, w0 - cmp w20, w23 - bne .L2935 - ldrh w1, [x21,32] - ldrh w0, [x21,850] + cmp w20, w25 + bne .L2945 + ldrh w1, [x21,544] + ldrh w0, [x21,1362] cmp w1, w0 - bcs .L2936 + bcs .L2946 mov w0, 64 bl List_get_gc_head_node uxth w0, w0 cmp w0, w20 - beq .L2945 - ldr w2, [x21,2020] - adrp x23, .LANCHOR0 + beq .L2955 + ldr w2, [x21,3556] uxtw x1, w0 - cbnz w2, .L2938 - add x0, x23, :lo12:.LANCHOR0 - ldrh w2, [x0,1976] + adrp x21, .LANCHOR0 + cbnz w2, .L2948 + add x0, x21, :lo12:.LANCHOR0 + ldrh w2, [x0,2488] cmp w2, 3 - beq .L2938 - ldr w2, [x21,328] - cbnz w2, .L2938 - ldr w2, [x0,1948] - cbnz w2, .L2938 + beq .L2948 + ldr w2, [x23,840] + cbnz w2, .L2948 + ldr w2, [x0,2460] + cbnz w2, .L2948 ldrb w0, [x0,196] - cbz w0, .L2939 -.L2938: - add x3, x23, :lo12:.LANCHOR0 - ldr x0, [x19,#:lo12:.LANCHOR2] + cbz w0, .L2949 +.L2948: + add x0, x19, :lo12:.LANCHOR2 + add x3, x21, :lo12:.LANCHOR0 + ldr x0, [x0,512] ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x3,2026] - ldrh w0, [x3,1956] - ldrh w3, [x3,1976] + ldrh w1, [x3,2538] + ldrh w0, [x3,2468] + ldrh w3, [x3,2488] mul w2, w1, w0 cmp w3, 3 mov w0, 0 @@ -19682,74 +19726,73 @@ ftl_do_gc: csel w0, w1, w0, eq add w0, w2, w0 cmp w4, w0 - bgt .L2941 + bgt .L2951 mov w0, 0 - add x23, x23, :lo12:.LANCHOR0 + add x21, x21, :lo12:.LANCHOR0 bl List_get_gc_head_node uxth w20, w0 add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x23,2096] - ldr w2, [x1,196] + ldr w0, [x21,2608] + ldr w2, [x1,708] add w0, w0, w0, lsl 1 cmp w2, w0, lsr 2 - bls .L2942 + bls .L2952 mov w0, 128 - b .L3092 -.L2942: + b .L3102 +.L2952: mov w0, 160 -.L3092: - strh w0, [x1,850] - b .L2943 -.L2941: +.L3102: + strh w0, [x1,1362] + b .L2953 +.L2951: add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - b .L3093 -.L2939: - adrp x2, .LANCHOR2 - ldr x2, [x2,#:lo12:.LANCHOR2] + b .L3103 +.L2949: + ldr x2, [x23,512] ldrh w1, [x2,x1,lsl 1] cmp w1, 7 - bhi .L2944 + bhi .L2954 bl List_get_gc_head_node uxth w20, w0 add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - strh w1, [x0,850] - b .L2943 -.L2944: + strh w1, [x0,1362] + b .L2953 +.L2954: add x0, x19, :lo12:.LANCHOR2 mov w1, 64 -.L3093: - strh w1, [x0,850] - b .L2945 -.L2936: +.L3103: + strh w1, [x0,1362] + b .L2955 +.L2946: mov w0, 80 - strh w0, [x21,850] - b .L2945 -.L2943: + strh w0, [x21,1362] + b .L2955 +.L2953: mov w0, 65535 cmp w20, w0 - beq .L2945 -.L2935: + beq .L2955 +.L2945: add x5, x19, :lo12:.LANCHOR2 ubfiz x4, x20, 1, 32 - ldr x3, [x19,#:lo12:.LANCHOR2] adrp x0, .LC152 - add x0, x0, :lo12:.LC152 mov w1, w20 - ldr x6, [x5,-80] - ldrh w2, [x5,32] + add x0, x0, :lo12:.LC152 + ldr x3, [x5,512] + ldr x6, [x5,432] + ldrh w2, [x5,544] ldrh w3, [x3,x4] - ldrh w5, [x5,848] + ldrh w5, [x5,1360] ldrh w4, [x6,x4] bl printk -.L2945: +.L2955: bl FtlGcReFreshBadBlk - b .L2933 -.L3095: + b .L2943 +.L3105: mov w20, w0 - b .L2933 -.L3069: + b .L2943 +.L3079: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19764,188 +19807,59 @@ ftl_do_gc: .type FtlCacheWriteBack, %function FtlCacheWriteBack: stp x29, x30, [sp, -128]! - adrp x0, .LANCHOR5-72 + adrp x0, .LANCHOR5+1464 add x29, sp, 0 stp x21, x22, [sp,32] adrp x22, .LANCHOR2 stp x19, x20, [sp,16] - ldr x20, [x0,#:lo12:.LANCHOR5-72] + ldr x20, [x0,#:lo12:.LANCHOR5+1464] add x0, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w23, [x0,-96] - cbnz w23, .L3101 + ldr w23, [x0,416] + cbnz w23, .L3111 adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2080] - cbz w1, .L3101 + ldr w1, [x0,2592] + cbz w1, .L3111 ldrb w0, [x0,196] - cbz w0, .L3103 + cbz w0, .L3113 ldrb w0, [x20,8] cmp w0, 1 cset w23, eq -.L3103: +.L3113: add x0, x19, :lo12:.LANCHOR0 ldrb w3, [x20,9] adrp x26, .LC153 mov w2, w23 mov w24, 0 mov w27, 56 - ldr x0, [x0,2088] + ldr x0, [x0,2600] add x26, x26, :lo12:.LC153 bl FlashProgPages -.L3104: +.L3114: add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2080] + ldr w1, [x0,2592] cmp w24, w1 - bcs .L3122 + bcs .L3132 umull x21, w24, w27 - ldr x1, [x0,2088] + ldr x1, [x0,2600] add x0, x1, x21 ldr w25, [x1,x21] cmn w25, #1 - beq .L3125 + beq .L3135 ldr w1, [x0,4] - cbz w23, .L3139 + cbz w23, .L3149 orr w1, w1, -2147483648 -.L3139: +.L3149: 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,2088] - add x21, x0, x21 - ldr x0, [x21,16] - ldr w0, [x0,12] - cmn w0, #1 - beq .L3108 - lsr x0, x0, 10 - bl P2V_block_in_plane - uxth w1, w0 - ubfiz x0, x1, 1, 16 - ldr x2, [x22,#:lo12:.LANCHOR2] - mov w21, w1 - ldrh w2, [x2,x0] - cbnz w2, .L3109 - mov x0, x26 - bl printk -.L3109: - mov w0, w21 - bl decrement_vpc_count -.L3108: - add w24, w24, 1 - b .L3104 -.L3141: - mov w20, 16386 -.L3121: - add x0, x22, :lo12:.LANCHOR2 - ldrh w0, [x0,944] - cbz w0, .L3122 - mov w0, 1 - mov w1, w0 - bl ftl_do_gc - subs w20, w20, #1 - bne .L3121 -.L3122: - add x19, x19, :lo12:.LANCHOR0 - str wzr, [x19,2080] - b .L3101 -.L3125: - adrp x26, .LC153 - mov w24, 0 - mov w27, 56 - str w25, [x29,108] - mov w28, 1 - add x26, x26, :lo12:.LC153 -.L3105: - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2080] - cmp w24, w1 - bcs .L3141 - umull x21, w24, w27 - ldr x0, [x0,2088] - ldr w1, [x29,108] - str w1, [x0,x21] -.L3111: - add x2, x19, :lo12:.LANCHOR0 - ldr x0, [x2,2088] - add x1, x0, x21 - ldr w0, [x0,x21] - cmn w0, #1 - bne .L3142 - ldr w0, [x1,4] - str x2, [x29,96] - lsr x0, x0, 10 - bl P2V_block_in_plane - ldrh w1, [x20] - cmp w1, w0, uxth - ldr x2, [x29,96] - bne .L3112 - ldr x3, [x22,#:lo12:.LANCHOR2] - 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,2024] - strh w0, [x20,2] - strh wzr, [x20,4] -.L3112: - ldrh w0, [x20,4] - cbnz w0, .L3113 - mov x0, x20 - bl allocate_new_data_superblock -.L3113: - add x5, x22, :lo12:.LANCHOR2 - add x25, x19, :lo12:.LANCHOR0 - str x5, [x29,96] - ldr w0, [x5,432] - add w0, w0, 1 - str w0, [x5,432] - ldr x0, [x25,2088] - add x0, x0, x21 - ldr w0, [x0,4] - lsr x0, x0, 10 - bl FtlGcMarkBadPhyBlk - mov x0, x20 - bl get_new_active_ppa - str w0, [x29,124] - ldr x1, [x25,2088] - mov w2, w23 - add x1, x1, x21 - str w0, [x1,4] - mov w1, 1 - ldr x0, [x25,2088] - ldrb w3, [x20,9] - add x0, x0, x21 - bl FlashProgPages - ldr x0, [x25,2088] - ldr x5, [x29,96] - ldr w0, [x0,x21] - cmn w0, #1 - bne .L3114 - str w28, [x5,-96] -.L3114: - add x0, x22, :lo12:.LANCHOR2 - ldr w0, [x0,-96] - cbz w0, .L3111 - b .L3101 -.L3142: - ldr w0, [x1,4] - cbz w23, .L3140 - orr w0, w0, -2147483648 -.L3140: - 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,2088] + ldr x0, [x0,2600] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] @@ -19954,9 +19868,10 @@ FtlCacheWriteBack: lsr x0, x0, 10 bl P2V_block_in_plane uxth w1, w0 + add x2, x22, :lo12:.LANCHOR2 ubfiz x0, x1, 1, 16 - ldr x2, [x22,#:lo12:.LANCHOR2] mov w21, w1 + ldr x2, [x2,512] ldrh w2, [x2,x0] cbnz w2, .L3119 mov x0, x26 @@ -19966,8 +19881,139 @@ FtlCacheWriteBack: bl decrement_vpc_count .L3118: add w24, w24, 1 - b .L3105 -.L3101: + b .L3114 +.L3151: + mov w20, 16386 +.L3131: + add x0, x22, :lo12:.LANCHOR2 + ldrh w0, [x0,1456] + cbz w0, .L3132 + mov w0, 1 + mov w1, w0 + bl ftl_do_gc + subs w20, w20, #1 + bne .L3131 +.L3132: + add x19, x19, :lo12:.LANCHOR0 + str wzr, [x19,2592] + b .L3111 +.L3135: + adrp x26, .LC153 + mov w24, 0 + mov w27, 56 + str w25, [x29,108] + mov w28, 1 + add x26, x26, :lo12:.LC153 +.L3115: + add x0, x19, :lo12:.LANCHOR0 + ldr w1, [x0,2592] + cmp w24, w1 + bcs .L3151 + umull x21, w24, w27 + ldr x0, [x0,2600] + ldr w1, [x29,108] + str w1, [x0,x21] +.L3121: + add x2, x19, :lo12:.LANCHOR0 + ldr x0, [x2,2600] + add x1, x0, x21 + ldr w0, [x0,x21] + cmn w0, #1 + bne .L3152 + ldr w0, [x1,4] + str x2, [x29,96] + lsr x0, x0, 10 + bl P2V_block_in_plane + ldrh w1, [x20] + cmp w1, w0, uxth + ldr x2, [x29,96] + bne .L3122 + add x0, x22, :lo12:.LANCHOR2 + ubfiz x1, x1, 1, 16 + ldrh w4, [x20,4] + ldr x3, [x0,512] + ldrh w0, [x3,x1] + sub w0, w0, w4 + strh w0, [x3,x1] + strb wzr, [x20,6] + ldrh w0, [x2,2536] + strh w0, [x20,2] + strh wzr, [x20,4] +.L3122: + ldrh w0, [x20,4] + cbnz w0, .L3123 + mov x0, x20 + bl allocate_new_data_superblock +.L3123: + add x5, x22, :lo12:.LANCHOR2 + add x25, x19, :lo12:.LANCHOR0 + str x5, [x29,96] + ldr w0, [x5,944] + add w0, w0, 1 + str w0, [x5,944] + ldr x0, [x25,2600] + add x0, x0, x21 + ldr w0, [x0,4] + lsr x0, x0, 10 + bl FtlGcMarkBadPhyBlk + mov x0, x20 + bl get_new_active_ppa + str w0, [x29,124] + ldr x1, [x25,2600] + mov w2, w23 + add x1, x1, x21 + str w0, [x1,4] + mov w1, 1 + ldr x0, [x25,2600] + ldrb w3, [x20,9] + add x0, x0, x21 + bl FlashProgPages + ldr x0, [x25,2600] + ldr x5, [x29,96] + ldr w0, [x0,x21] + cmn w0, #1 + bne .L3124 + str w28, [x5,416] +.L3124: + add x0, x22, :lo12:.LANCHOR2 + ldr w0, [x0,416] + cbz w0, .L3121 + b .L3111 +.L3152: + ldr w0, [x1,4] + cbz w23, .L3150 + orr w0, w0, -2147483648 +.L3150: + 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] + add x21, x0, x21 + ldr x0, [x21,16] + ldr w0, [x0,12] + cmn w0, #1 + beq .L3128 + 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] + ldrh w2, [x2,x0] + cbnz w2, .L3129 + mov x0, x26 + bl printk +.L3129: + mov w0, w21 + bl decrement_vpc_count +.L3128: + add w24, w24, 1 + b .L3115 +.L3111: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19981,21 +20027,21 @@ FtlCacheWriteBack: .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: - adrp x0, .LANCHOR2-96 + adrp x0, .LANCHOR2+416 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2-96] - cbnz w0, .L3144 + ldr w0, [x0,#:lo12:.LANCHOR2+416] + cbnz w0, .L3154 adrp x0, .LANCHOR1+504 ldr w0, [x0,#:lo12:.LANCHOR1+504] cmn w0, #1 - beq .L3144 + beq .L3154 bl FtlCacheWriteBack bl l2p_flush mov w0, 1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3144: +.L3154: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -20009,9 +20055,9 @@ FtlDeInit: add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR1+504] cmp w0, 1 - bne .L3149 + bne .L3159 bl FtlSysFlush -.L3149: +.L3159: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -20076,58 +20122,58 @@ ftl_discard: stp x19, x20, [sp,16] mov w19, w1 mov w20, w0 - ldr w1, [x21,2064] + ldr w1, [x21,2576] mov w0, -1 cmp w2, w1 - bhi .L3155 + bhi .L3165 adrp x0, .LANCHOR1+504 ldr w1, [x0,#:lo12:.LANCHOR1+504] cmn w1, #1 mov w0, w1 - beq .L3155 + beq .L3165 cmp w19, 31 mov w0, 0 - bls .L3155 + bls .L3165 adrp x23, .LANCHOR2 add x1, x23, :lo12:.LANCHOR2 - ldr w1, [x1,-96] - cbnz w1, .L3155 + ldr w1, [x1,416] + cbnz w1, .L3165 bl FtlCacheWriteBack - ldrh w1, [x21,2030] + ldrh w1, [x21,2542] udiv w21, w20, w1 msub w20, w1, w21, w20 uxth w20, w20 - cbz w20, .L3156 + cbz w20, .L3166 sub w1, w1, w20 add w21, w21, 1 cmp w1, w19 csel w1, w1, w19, ls sub w19, w19, w1, uxth -.L3156: +.L3166: mov w0, -1 adrp x20, .LANCHOR5 str w0, [x29,76] -.L3157: +.L3167: add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2030] + ldrh w0, [x0,2542] cmp w19, w0 - bcc .L3171 + bcc .L3181 mov w0, w21 add x1, x29, 72 mov w2, 0 bl log2phys ldr w0, [x29,72] cmn w0, #1 - beq .L3158 + beq .L3168 add x1, x20, :lo12:.LANCHOR5 mov w2, 1 - ldr w0, [x1,-64] + ldr w0, [x1,1472] add w0, w0, 1 - str w0, [x1,-64] + str w0, [x1,1472] add x1, x23, :lo12:.LANCHOR2 - ldr w0, [x1,204] + ldr w0, [x1,716] add w0, w0, 1 - str w0, [x1,204] + str w0, [x1,716] add x1, x29, 76 mov w0, w21 bl log2phys @@ -20135,24 +20181,24 @@ ftl_discard: lsr x0, x0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L3158: +.L3168: add x0, x22, :lo12:.LANCHOR0 add w21, w21, 1 - ldrh w0, [x0,2030] + ldrh w0, [x0,2542] sub w19, w19, w0 - b .L3157 -.L3171: + b .L3167 +.L3181: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,-64] + ldr w1, [x0,1472] cmp w1, 32 - bls .L3160 - str wzr, [x0,-64] + bls .L3170 + str wzr, [x0,1472] bl l2p_flush bl FtlVpcTblFlush -.L3160: +.L3170: mov w0, 0 -.L3155: +.L3165: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -20186,28 +20232,28 @@ ftl_read: stp x27, x28, [sp,96] cmn w5, #1 mov w0, w5 - beq .L3174 + beq .L3184 cmp w4, 16 mov x24, x3 mov w27, w2 mov w20, w1 - bne .L3175 + bne .L3185 add w0, w1, 256 mov w1, w2 mov x2, x3 bl FtlVendorPartRead - b .L3174 -.L3175: + b .L3184 +.L3185: adrp x21, .LANCHOR0 add w0, w1, w2 add x1, x21, :lo12:.LANCHOR0 str w0, [x29,168] mov w0, -1 ldr w3, [x29,168] - ldr w2, [x1,2064] + ldr w2, [x1,2576] cmp w3, w2 - bhi .L3174 - ldrh w0, [x1,2030] + bhi .L3184 + ldrh w0, [x1,2542] sub w26, w3, #1 adrp x19, .LANCHOR2 udiv w1, w20, w0 @@ -20217,18 +20263,18 @@ ftl_read: sub w25, w26, w0 add x0, x19, :lo12:.LANCHOR2 add w25, w25, 1 - ldr w1, [x0,228] + ldr w1, [x0,740] add w1, w27, w1 - str w1, [x0,228] - ldr w1, [x0,200] + str w1, [x0,740] + ldr w1, [x0,712] add w1, w25, w1 - str w1, [x0,200] + str w1, [x0,712] ldr w0, [x29,172] mov w1, w26 bl FtlCacheMetchLpa - cbz w0, .L3176 + cbz w0, .L3186 bl FtlCacheWriteBack -.L3176: +.L3186: mov w28, 0 adrp x0, .LC143 ldr w22, [x29,172] @@ -20237,27 +20283,27 @@ ftl_read: mov w23, w28 str w28, [x29,152] str x0, [x29,112] -.L3177: - cbz w25, .L3221 +.L3187: + cbz w25, .L3231 mov w0, w22 add x1, x29, 188 mov w2, 0 bl log2phys ldr w3, [x29,188] cmn w3, #1 - bne .L3218 + bne .L3228 mov w3, 0 -.L3178: +.L3188: add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2030] + ldrh w0, [x0,2542] cmp w3, w0 - bcs .L3182 + bcs .L3192 madd w0, w22, w0, w3 cmp w0, w20 - bcc .L3180 + bcc .L3190 ldr w1, [x29,168] cmp w0, w1 - bcs .L3180 + bcs .L3190 sub w0, w0, w20 mov w1, 0 ubfiz x0, x0, 9, 23 @@ -20266,25 +20312,25 @@ ftl_read: str x3, [x29,160] bl ftl_memset ldr x3, [x29,160] -.L3180: +.L3190: add w3, w3, 1 - b .L3178 -.L3218: + b .L3188 +.L3228: mov w0, 56 umull x1, w23, w0 add x0, x19, :lo12:.LANCHOR2 - ldr x2, [x0,2048] + ldr x2, [x0,3584] add x2, x2, x1 str w3, [x2,4] ldr w2, [x29,172] cmp w22, w2 - ldr x2, [x0,2048] + ldr x2, [x0,3584] add x2, x2, x1 - bne .L3183 - ldr x0, [x0,2104] + bne .L3193 + ldr x0, [x0,3640] str x0, [x2,8] add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2030] + ldrh w0, [x0,2542] udiv w3, w20, w0 msub w3, w3, w0, w20 str w3, [x29,128] @@ -20293,58 +20339,58 @@ ftl_read: csel w3, w3, w27, ls str w3, [x29,156] cmp w3, w0 - bne .L3184 + bne .L3194 str x24, [x2,8] - b .L3184 -.L3183: + b .L3194 +.L3193: cmp w22, w26 - bne .L3185 - ldr x0, [x0,2112] + bne .L3195 + ldr x0, [x0,3648] str x0, [x2,8] add x0, x21, :lo12:.LANCHOR0 ldr w4, [x29,168] - ldrh w3, [x0,2030] + ldrh w3, [x0,2542] mul w0, w22, w3 sub w28, w4, w0 cmp w28, w3 - bne .L3184 - b .L3219 -.L3185: + bne .L3194 + b .L3229 +.L3195: add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2030] + ldrh w0, [x0,2542] mul w0, w22, w0 -.L3219: +.L3229: sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x24, x0 str x0, [x2,8] -.L3184: +.L3194: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,2048] - ldr x2, [x2,2128] + ldr x0, [x2,3584] + ldr x2, [x2,3664] add x1, x0, x1 add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,2036] + ldrh w0, [x0,2548] str w22, [x1,24] mul w0, w23, w0 add w23, w23, 1 and x0, x0, 4294967292 add x0, x2, x0 str x0, [x1,16] -.L3182: +.L3192: subs w25, w25, #1 add w22, w22, 1 - beq .L3186 + beq .L3196 add x0, x21, :lo12:.LANCHOR0 - ldrh w0, [x0,1956] + ldrh w0, [x0,2468] cmp w23, w0, lsl 3 - bne .L3177 -.L3186: - cbz w23, .L3177 + bne .L3187 +.L3196: + cbz w23, .L3187 add x0, x19, :lo12:.LANCHOR2 mov w1, w23 mov w2, 0 - ldr x0, [x0,2048] + ldr x0, [x0,3584] bl FlashReadPages str xzr, [x29,160] ldr x0, [x29,128] @@ -20355,70 +20401,70 @@ ftl_read: str w0, [x29,124] lsl w0, w28, 9 str w0, [x29,120] -.L3188: +.L3198: ldr w0, [x29,160] cmp w23, w0 - bls .L3222 + bls .L3232 ldr x0, [x29,160] add x2, x19, :lo12:.LANCHOR2 mov x1, 56 ldr w3, [x29,172] mul x8, x0, x1 - ldr x0, [x2,2048] + ldr x0, [x2,3584] add x0, x0, x8 ldr w1, [x0,24] cmp w1, w3 - bne .L3189 + bne .L3199 ldr x1, [x0,8] - ldr x0, [x2,2104] + ldr x0, [x2,3640] cmp x1, x0 - bne .L3190 + bne .L3200 ldr x2, [x29,144] mov x0, x24 str x8, [x29,104] add x1, x1, x2 ldr w2, [x29,124] - b .L3220 -.L3189: + b .L3230 +.L3199: cmp w1, w26 - bne .L3190 + bne .L3200 ldr x1, [x0,8] - ldr x0, [x2,2112] + ldr x0, [x2,3648] cmp x1, x0 - bne .L3190 + bne .L3200 add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,120] str x8, [x29,104] - ldrh w0, [x0,2030] + ldrh w0, [x0,2542] mul w0, w26, w0 sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x24, x0 -.L3220: +.L3230: bl ftl_memcpy ldr x8, [x29,104] -.L3190: +.L3200: add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,2048] + ldr x1, [x0,3584] add x2, x1, x8 ldr w3, [x1,x8] cmn w3, #1 - bne .L3191 - ldr w1, [x0,408] + bne .L3201 + ldr w1, [x0,920] str w3, [x29,152] add w1, w1, 1 - str w1, [x0,408] -.L3191: + str w1, [x0,920] +.L3201: ldr x0, [x2,16] ldr w1, [x2,24] ldr w0, [x0,8] cmp w1, w0 - beq .L3192 + beq .L3202 add x0, x19, :lo12:.LANCHOR2 str x8, [x29,104] - ldr w1, [x0,408] + ldr w1, [x0,920] add w1, w1, 1 - str w1, [x0,408] + str w1, [x0,920] ldr x7, [x2,8] ldr x6, [x2,16] ldr w0, [x7,4] @@ -20433,35 +20479,35 @@ ftl_read: ldr w7, [x7] bl printk ldr x8, [x29,104] -.L3192: +.L3202: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2048] + ldr x0, [x0,3584] add x1, x0, x8 ldr w0, [x0,x8] cmp w0, 256 - bne .L3193 + bne .L3203 ldr w0, [x1,4] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3193: +.L3203: ldr x0, [x29,160] add x0, x0, 1 str x0, [x29,160] - b .L3188 -.L3222: + b .L3198 +.L3232: mov w23, 0 - b .L3177 -.L3221: + b .L3187 +.L3231: add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,944] - cbz w0, .L3196 + ldrh w0, [x19,1456] + cbz w0, .L3206 mov w0, w25 mov w1, 1 bl ftl_do_gc -.L3196: +.L3206: ldr w0, [x29,152] -.L3174: +.L3184: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -20506,10 +20552,10 @@ FlashBootVendorRead: ldr x0, [x29,40] ldr w3, [x3,#:lo12:.LANCHOR1+504] cmp w3, 1 - bne .L3225 + bne .L3235 bl ftl_vendor_read mov w19, w0 -.L3225: +.L3235: bl rknand_device_unlock mov w0, w19 ldr x19, [sp,16] @@ -20584,80 +20630,80 @@ FtlInit: adrp x19, .LANCHOR2 add x21, x21, :lo12:.LANCHOR0 str w0, [x22,504] - adrp x0, .LANCHOR5-60 + adrp x0, .LANCHOR5+1476 add x19, x19, :lo12:.LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR5-60] + str wzr, [x0,#:lo12:.LANCHOR5+1476] adrp x0, .LC75 add x0, x0, :lo12:.LC75 - str wzr, [x19,-96] + str wzr, [x19,416] bl printk add x0, x21, 168 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh w0, [x21,1960] + ldrh w0, [x21,2472] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3231 + cbz w0, .L3241 adrp x0, .LC155 add x0, x0, :lo12:.LC155 - b .L3245 -.L3231: + b .L3255 +.L3241: bl FtlSysBlkInit mov w20, w0 - cbz w0, .L3233 + cbz w0, .L3243 adrp x0, .LC156 add x0, x0, :lo12:.LC156 -.L3245: +.L3255: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 add x1, x1, 120 bl printk - b .L3232 -.L3233: + b .L3242 +.L3243: mov w1, 1 str w1, [x22,504] bl ftl_do_gc - ldrh w0, [x19,32] + ldrh w0, [x19,544] cmp w0, 15 - bhi .L3234 + bhi .L3244 mov w22, 65535 add w21, w0, 2 -.L3237: - ldrh w0, [x19,280] +.L3247: + ldrh w0, [x19,792] cmp w0, w22 - bne .L3235 - ldrh w0, [x19,936] + bne .L3245 + ldrh w0, [x19,1448] cmp w0, w22 - bne .L3235 - and w0, w20, 7 + bne .L3245 + and w0, w20, 63 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3235: +.L3245: mov w0, 1 mov w1, w0 bl ftl_do_gc mov w0, 0 mov w1, 1 bl ftl_do_gc - ldrh w0, [x19,32] + ldrh w0, [x19,544] cmp w0, w21 - bhi .L3232 + bhi .L3242 add w20, w20, 1 - cmp w20, 1024 - bne .L3237 - b .L3232 -.L3234: + cmp w20, 4096 + bne .L3247 + b .L3242 +.L3244: ldrb w0, [x21,196] - cbz w0, .L3232 + cbz w0, .L3242 mov w19, 128 -.L3239: +.L3249: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3239 -.L3232: + bne .L3249 +.L3242: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -20677,34 +20723,34 @@ rk_ftl_init: add x20, x20, :lo12:.LANCHOR5 bl ftl_malloc add x19, x19, :lo12:.LANCHOR4 - mov x1, x20 - str x0, [x20,-56] - mov x0, x19 - str xzr, [x1,-48]! - str xzr, [x0,48]! + add x1, x20, 1488 + str x0, [x20,1480] + add x0, x19, 1584 + str xzr, [x19,1584] + str xzr, [x20,1488] bl rknand_get_reg_addr - ldr x1, [x19,48] + ldr x1, [x19,1584] mov w0, -1 - cbz x1, .L3247 + cbz x1, .L3257 bl rk_nandc_irq_init mov w1, 0 - ldr x0, [x20,-56] + ldr x0, [x20,1480] mov w2, w1 mov w3, 2048 bl FlashSramLoadStore bl rknand_flash_cs_init - ldr x0, [x19,48] + ldr x0, [x19,1584] bl FlashInit mov w19, w0 - cbnz w0, .L3248 + cbnz w0, .L3258 bl FtlInit -.L3248: +.L3258: adrp x0, .LC157 mov w1, w19 add x0, x0, :lo12:.LC157 bl printk mov w0, w19 -.L3247: +.L3257: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -20714,111 +20760,112 @@ rk_ftl_init: .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: stp x29, x30, [sp, -144]! - adrp x0, .LANCHOR0 add x29, sp, 0 - add x1, x0, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 + str x27, [sp,80] + add x0, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - str x27, [sp,80] - mov x25, x0 - ldrb w1, [x1,196] - cbz w1, .L3251 + stp x25, x26, [sp,64] + ldrb w0, [x0,196] + cbz w0, .L3261 adrp x21, .LANCHOR5 adrp x19, .LANCHOR2 add x0, x21, :lo12:.LANCHOR5 - adrp x20, .LC158 add x24, x19, :lo12:.LANCHOR2 - ldr x2, [x19,#:lo12:.LANCHOR2] - add x27, x24, 40 - ldrh w23, [x0,-216] - add x0, x20, :lo12:.LC158 - add x26, x24, 88 + adrp x25, .LC158 + add x27, x24, 552 + add x26, x24, 600 + ldrh w23, [x0,1320] + add x0, x25, :lo12:.LC158 + ldr x2, [x24,512] ubfiz x22, x23, 1, 16 mov w1, w23 ldrh w2, [x2,x22] bl printk - ldrh w0, [x24,40] + ldrh w0, [x24,552] bl FtlGcRefreshOpenBlock - ldrh w0, [x24,88] + ldrh w0, [x24,600] mov w24, 4097 bl FtlGcRefreshOpenBlock mov x0, x27 bl allocate_new_data_superblock mov x0, x26 bl allocate_new_data_superblock -.L3253: +.L3263: subs w24, w24, #1 - beq .L3257 + beq .L3267 mov w0, 1 mov w1, w0 bl ftl_do_gc - ldr x0, [x19,#:lo12:.LANCHOR2] + add x0, x19, :lo12:.LANCHOR2 + ldr x0, [x0,512] ldrh w0, [x0,x22] - cbnz w0, .L3253 -.L3257: - ldr x2, [x19,#:lo12:.LANCHOR2] - add x0, x20, :lo12:.LC158 + cbnz w0, .L3263 +.L3267: + add x24, x19, :lo12:.LANCHOR2 + add x0, x25, :lo12:.LC158 mov w1, w23 + ldr x2, [x24,512] ldrh w2, [x2,x22] bl printk - ldr x0, [x19,#:lo12:.LANCHOR2] + ldr x0, [x24,512] ldrh w0, [x0,x22] - cbnz w0, .L3255 + cbnz w0, .L3265 add x0, x29, 96 + add x20, x20, :lo12:.LANCHOR0 strh w23, [x29,96] bl make_superblock - add x0, x25, :lo12:.LANCHOR0 - mov w6, 65535 - mov w7, 56 - ldrh w5, [x0,1956] mov x0, 0 + ldrh w5, [x20,2468] + mov w6, 65535 mov w20, w0 -.L3258: + mov w7, 56 +.L3268: cmp w5, w0, uxth - bls .L3265 + bls .L3275 add x1, x29, 96 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w6 - beq .L3259 + beq .L3269 add x4, x19, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x1, w20, w7 add w20, w20, 1 - ldr x3, [x4,-88] + ldr x3, [x4,424] uxth w20, w20 add x3, x3, x1 str w2, [x3,4] - ldr x2, [x4,-88] + ldr x2, [x4,424] add x1, x2, x1 str xzr, [x1,8] str xzr, [x1,16] -.L3259: +.L3269: add x0, x0, 1 - b .L3258 -.L3265: - ldr x2, [x19,#:lo12:.LANCHOR2] + b .L3268 +.L3275: + add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC159 - add x24, x19, :lo12:.LANCHOR2 mov w1, w23 add x0, x0, :lo12:.LC159 + ldr x2, [x19,512] ldrh w2, [x2,x22] bl printk - ldr x0, [x24,-88] + ldr x0, [x19,424] mov w1, 0 mov w2, w20 bl FlashEraseBlocks - ldr x0, [x24,-88] + ldr x0, [x19,424] mov w1, 1 mov w2, w20 bl FlashEraseBlocks -.L3255: +.L3265: add x21, x21, :lo12:.LANCHOR5 mov w0, -1 - strh w0, [x21,-216] -.L3251: + strh w0, [x21,1320] +.L3261: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20856,66 +20903,66 @@ ftl_write: stp x27, x28, [sp,80] mov x26, x3 str x1, [x29,176] - ldr w3, [x2,-96] - cbnz w3, .L3268 + ldr w3, [x2,416] + cbnz w3, .L3278 adrp x1, .LANCHOR1 str x1, [x29,152] add x3, x1, :lo12:.LANCHOR1 ldr w3, [x3,504] cmn w3, #1 - beq .L3268 + beq .L3278 cmp w4, 16 - bne .L3269 + bne .L3279 add w0, w23, 256 mov w1, w25 mov x2, x26 bl FtlVendorPartWrite - b .L3268 -.L3269: + b .L3278 +.L3279: adrp x21, .LANCHOR0 add w3, w23, w25 add x4, x21, :lo12:.LANCHOR0 mov w0, -1 - ldr w1, [x4,2064] + ldr w1, [x4,2576] cmp w3, w1 - bhi .L3268 + bhi .L3278 adrp x5, .LANCHOR5 - ldrh w1, [x4,2030] + ldrh w1, [x4,2542] 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,-40] + str w0, [x22,1496] udiv w0, w3, w1 - ldr w3, [x4,2080] + ldr w3, [x4,2592] str w0, [x29,208] sub w24, w0, w27 add w20, w24, 1 - ldr w0, [x2,208] + ldr w0, [x2,720] add w0, w20, w0 - str w0, [x2,208] - ldr w0, [x2,224] + str w0, [x2,720] + ldr w0, [x2,736] add w0, w25, w0 - str w0, [x2,224] + str w0, [x2,736] cset w0, cs str w0, [x29,212] - cbz w3, .L3271 + cbz w3, .L3281 mov w0, 56 sub w3, w3, #1 umull x3, w3, w0 - ldr x0, [x4,2088] + ldr x0, [x4,2600] add x3, x0, x3 ldr w0, [x3,24] cmp w27, w0 - bne .L3272 - ldr w0, [x2,212] + bne .L3282 + ldr w0, [x2,724] add w0, w0, 1 - str w0, [x2,212] - ldr w0, [x22,-36] + str w0, [x2,724] + ldr w0, [x22,1500] add w0, w0, 1 - str w0, [x22,-36] + str w0, [x22,1500] msub w0, w27, w1, w23 sub w1, w1, w0 ubfiz x0, x0, 9, 23 @@ -20927,90 +20974,90 @@ ftl_write: mov w2, w20 mov x1, x26 bl ftl_memcpy - cbnz w24, .L3273 - ldr w0, [x22,-36] + cbnz w24, .L3283 + ldr w0, [x22,1500] cmp w0, 2 - bgt .L3273 -.L3307: + bgt .L3283 +.L3317: mov w0, 0 - b .L3268 -.L3273: + b .L3278 +.L3283: add x26, x26, x20 sub w25, w25, w19 add w23, w23, w19 add w27, w27, 1 mov w20, w24 -.L3272: +.L3282: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,-36] -.L3271: + str wzr, [x0,1500] +.L3281: ldr w1, [x29,208] mov w0, w27 bl FtlCacheMetchLpa - cbz w0, .L3274 + cbz w0, .L3284 bl FtlCacheWriteBack -.L3274: +.L3284: 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, 40 + add x22, x24, 552 str x22, [x29,184] - str x22, [x0,-72] + str x22, [x0,1464] adrp x0, .LC160 add x0, x0, :lo12:.LC160 str x0, [x29,104] -.L3275: - cbz w20, .L3338 +.L3285: + cbz w20, .L3348 ldrh w0, [x22,4] - cbnz w0, .L3276 + cbnz w0, .L3286 ldr x1, [x29,184] cmp x22, x1 - bne .L3277 - add x0, x24, 88 + bne .L3287 + add x0, x24, 600 ldrh w19, [x0,4] - cbnz w19, .L3278 + cbnz w19, .L3288 bl allocate_new_data_superblock ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR1 - str w19, [x0,3300] -.L3278: + str w19, [x0,3364] +.L3288: ldr x0, [x29,184] - add x22, x24, 88 + add x22, x24, 600 bl allocate_new_data_superblock ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR1 - ldr w0, [x0,3300] - cbnz w0, .L3279 -.L3280: + ldr w0, [x0,3364] + cbnz w0, .L3289 +.L3290: ldr x22, [x29,184] - b .L3279 -.L3277: + b .L3289 +.L3287: ldr x1, [x29,152] add x1, x1, :lo12:.LANCHOR1 - str w0, [x1,3300] + str w0, [x1,3364] ldr x0, [x29,184] ldrh w0, [x0,4] - cbnz w0, .L3280 + cbnz w0, .L3290 mov x0, x22 bl allocate_new_data_superblock -.L3279: +.L3289: ldrh w0, [x22,4] - cbnz w0, .L3281 + cbnz w0, .L3291 mov x0, x22 bl allocate_new_data_superblock -.L3281: +.L3291: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR5 - str x22, [x0,-72] -.L3276: + str x22, [x0,1464] +.L3286: add x2, x21, :lo12:.LANCHOR0 - ldr w0, [x24,2044] + ldr w0, [x24,3580] ldrh w1, [x22,4] str xzr, [x29,200] - ldr w2, [x2,2080] + ldr w2, [x2,2592] sub w0, w0, w2 cmp w1, w0 csel w0, w1, w0, ls @@ -21022,29 +21069,29 @@ ftl_write: str w0, [x29,116] add w0, w25, w23 str w0, [x29,136] -.L3282: +.L3292: ldr w0, [x29,200] ldr w2, [x29,140] ldr w1, [x29,192] cmp w0, w2 add w28, w1, w0 - bcs .L3339 + bcs .L3349 ldrh w1, [x22,4] - cbz w1, .L3314 + cbz w1, .L3324 ldr w1, [x29,208] cmp w28, w1 cset w6, eq - cbz w0, .L3284 + cbz w0, .L3294 ldr w1, [x29,116] tst w6, w1 - beq .L3284 + beq .L3294 add x1, x21, :lo12:.LANCHOR0 ldr w2, [x29,136] - ldrh w1, [x1,2030] + ldrh w1, [x1,2542] msub w2, w28, w1, w2 cmp w2, w1 - bne .L3314 -.L3284: + bne .L3324 +.L3294: add x1, x29, 228 mov w2, 0 mov w0, w28 @@ -21053,29 +21100,29 @@ ftl_write: bl log2phys mov x0, x22 bl get_new_active_ppa - ldr w5, [x19,2080] + ldr w5, [x19,2592] mov w4, 56 - ldr x2, [x19,2088] + ldr x2, [x19,2600] str x4, [x29,160] umull x1, w5, w4 add x2, x2, x1 str w0, [x2,4] - ldrh w2, [x19,2036] - ldr x0, [x19,2088] + ldrh w2, [x19,2548] + ldr x0, [x19,2600] add x1, x0, x1 mul w0, w2, w5 and x0, x0, 4294967292 str x0, [x29,128] - ldr x0, [x24,2136] + ldr x0, [x24,3672] ldr x3, [x29,128] str x0, [x29,120] add x0, x0, x3 str x0, [x29,216] str x0, [x1,16] - ldrh w0, [x19,2034] + ldrh w0, [x19,2546] str w28, [x1,24] mul w0, w0, w5 - ldr x5, [x24,2096] + ldr x5, [x24,3632] and x0, x0, 4294967292 add x0, x5, x0 str x0, [x1,8] @@ -21085,65 +21132,65 @@ ftl_write: cmp w28, w27 cset w0, eq str w0, [x29,196] - cbnz w0, .L3318 + cbnz w0, .L3328 ldr x6, [x29,96] ldr x4, [x29,160] - cbz w6, .L3285 + cbz w6, .L3295 ldr w0, [x29,136] - ldrh w19, [x19,2030] + ldrh w19, [x19,2542] msub w19, w28, w19, w0 ldr w0, [x29,196] str w0, [x29,160] uxth w19, w19 - b .L3288 -.L3318: - ldrh w19, [x19,2030] + b .L3298 +.L3328: + ldrh w19, [x19,2542] 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 -.L3288: +.L3298: add x2, x21, :lo12:.LANCHOR0 - ldrh w0, [x2,2030] + ldrh w0, [x2,2542] cmp w19, w0 - bne .L3289 + bne .L3299 ldr w0, [x29,196] mov x1, x26 - cbnz w0, .L3290 + cbnz w0, .L3300 mul w1, w19, w28 sub w1, w1, w23 ubfiz x1, x1, 9, 23 add x1, x26, x1 -.L3290: +.L3300: ldr w2, [x29,212] mov w0, 56 add x4, x21, :lo12:.LANCHOR0 - cbz w2, .L3291 - ldr w2, [x4,2080] + cbz w2, .L3301 + ldr w2, [x4,2592] umull x0, w2, w0 - ldr x2, [x4,2088] + ldr x2, [x4,2600] add x0, x2, x0 - b .L3336 -.L3291: - ldr w2, [x4,2080] + b .L3346 +.L3301: + ldr w2, [x4,2592] umull x0, w2, w0 - ldr x2, [x4,2088] + ldr x2, [x4,2600] add x0, x2, x0 - ldrh w2, [x4,2034] + ldrh w2, [x4,2546] ldr x0, [x0,8] - b .L3337 -.L3289: + b .L3347 +.L3299: ldr w0, [x29,228] cmn w0, #1 - beq .L3293 + beq .L3303 str w0, [x29,236] mov w1, 56 - ldr w0, [x2,2080] + ldr w0, [x2,2592] str w28, [x29,256] umull x0, w0, w1 - ldr x1, [x2,2088] + ldr x1, [x2,2600] mov w2, 0 add x0, x1, x0 ldr x1, [x0,8] @@ -21155,195 +21202,195 @@ ftl_write: bl FlashReadPages ldr w0, [x29,232] cmn w0, #1 - bne .L3294 - ldr w0, [x24,408] + bne .L3304 + ldr w0, [x24,920] add w0, w0, 1 - str w0, [x24,408] - b .L3296 -.L3294: + str w0, [x24,920] + b .L3306 +.L3304: ldr x0, [x29,216] ldr w0, [x0,8] cmp w0, w28 - beq .L3296 - ldr w0, [x24,408] + beq .L3306 + ldr w0, [x24,920] mov w2, w28 ldr x1, [x29,216] add w0, w0, 1 - str w0, [x24,408] + str w0, [x24,920] ldr x0, [x29,104] ldr w1, [x1,8] bl printk - b .L3296 -.L3293: - ldr w0, [x2,2080] + b .L3306 +.L3303: + ldr w0, [x2,2592] mov w1, 56 umull x0, w0, w1 - ldr x1, [x2,2088] - ldrh w2, [x2,2034] + ldr x1, [x2,2600] + ldrh w2, [x2,2546] add x0, x1, x0 mov w1, 0 ldr x0, [x0,8] bl ftl_memset -.L3296: +.L3306: ldr w1, [x29,196] mov w0, 56 lsl w2, w19, 9 - cbz w1, .L3297 + cbz w1, .L3307 add x1, x21, :lo12:.LANCHOR0 - ldr w4, [x1,2080] + ldr w4, [x1,2592] umull x0, w4, w0 - ldr x4, [x1,2088] + ldr x4, [x1,2600] 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 .L3337 -.L3297: + b .L3347 +.L3307: add x5, x21, :lo12:.LANCHOR0 - ldr w4, [x5,2080] - ldr x1, [x5,2088] + ldr w4, [x5,2592] + ldr x1, [x5,2600] umull x0, w4, w0 add x0, x1, x0 - ldrh w1, [x5,2030] + ldrh w1, [x5,2542] mul w1, w28, w1 ldr x0, [x0,8] sub w1, w1, w23 ubfiz x1, x1, 9, 23 add x1, x26, x1 - b .L3337 -.L3285: + b .L3347 +.L3295: ldr w0, [x29,212] - ldrh w1, [x19,2030] - ldr w2, [x19,2080] - cbz w0, .L3298 + ldrh w1, [x19,2542] + ldr w2, [x19,2592] + cbz w0, .L3308 mul w1, w28, w1 umull x0, w2, w4 sub w1, w1, w23 - ldr x2, [x19,2088] + ldr x2, [x19,2600] ubfiz x1, x1, 9, 23 add x0, x2, x0 add x1, x26, x1 -.L3336: +.L3346: str x1, [x0,8] - b .L3292 -.L3298: + b .L3302 +.L3308: umull x0, w2, w4 - ldr x2, [x19,2088] + ldr x2, [x19,2600] mul w1, w28, w1 add x0, x2, x0 - ldrh w2, [x19,2034] + ldrh w2, [x19,2546] sub w1, w1, w23 ubfiz x1, x1, 9, 23 ldr x0, [x0,8] add x1, x26, x1 -.L3337: +.L3347: bl ftl_memcpy -.L3292: +.L3302: ldr x1, [x29,120] mov w0, -3947 ldr x2, [x29,128] strh w0, [x1,x2] ldr x1, [x29,216] - ldr w0, [x24,236] + ldr w0, [x24,748] str w0, [x1,4] add w0, w0, 1 cmn w0, #1 str w28, [x1,8] csel w0, w0, wzr, ne - str w0, [x24,236] + str w0, [x24,748] ldr w0, [x29,228] str w0, [x1,12] ldrh w0, [x22] strh w0, [x1,2] add x1, x21, :lo12:.LANCHOR0 - ldr w0, [x1,2080] + ldr w0, [x1,2592] add w0, w0, 1 - str w0, [x1,2080] + str w0, [x1,2592] ldr x0, [x29,200] add x0, x0, 1 str x0, [x29,200] - b .L3282 -.L3339: + b .L3292 +.L3349: str w28, [x29,192] mov x0, x2 - b .L3283 -.L3314: + b .L3293 +.L3324: str w28, [x29,192] -.L3283: +.L3293: sub w20, w20, w0 ldr w0, [x29,212] - cbnz w0, .L3302 + cbnz w0, .L3312 add x0, x21, :lo12:.LANCHOR0 - ldr w1, [x0,2080] - ldr w0, [x24,2044] + ldr w1, [x0,2592] + ldr w0, [x24,3580] cmp w1, w0 - bcs .L3302 + bcs .L3312 ldrh w0, [x22,4] - cbz w0, .L3302 -.L3304: + cbz w0, .L3312 +.L3314: str wzr, [x29,212] - b .L3275 -.L3302: + b .L3285 +.L3312: bl FtlCacheWriteBack add x0, x21, :lo12:.LANCHOR0 cmp w20, 1 - str wzr, [x0,2080] - bhi .L3275 - b .L3304 -.L3338: + str wzr, [x0,2592] + bhi .L3285 + b .L3314 +.L3348: 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,32] + ldrh w0, [x0,544] cmp w0, 5 - bls .L3306 + bls .L3316 cmp w0, 31 - bhi .L3307 + bhi .L3317 add x21, x21, :lo12:.LANCHOR0 ldrb w0, [x21,72] - cbnz w0, .L3307 -.L3306: + cbnz w0, .L3317 +.L3316: ldr x0, [x29,176] mov w21, 65535 mov w22, 128 add x19, x0, :lo12:.LANCHOR2 -.L3329: - ldrh w0, [x19,280] +.L3339: + ldrh w0, [x19,792] cmp w0, w21 - bne .L3308 - ldrh w0, [x19,936] + bne .L3318 + ldrh w0, [x19,1448] cmp w0, w21 - bne .L3308 - ldrh w0, [x19,938] + bne .L3318 + ldrh w0, [x19,1450] cmp w0, w21 - bne .L3308 + bne .L3318 and w0, w20, 7 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3308: +.L3318: mov w0, 1 - strh w22, [x19,850] + strh w22, [x19,1362] mov w1, w0 - strh w22, [x19,848] + strh w22, [x19,1360] bl ftl_do_gc mov w0, 0 mov w1, 1 bl ftl_do_gc - ldr w0, [x19,-96] - cbnz w0, .L3307 - ldrh w0, [x19,32] + ldr w0, [x19,416] + cbnz w0, .L3317 + ldrh w0, [x19,544] cmp w0, 2 - bhi .L3307 + bhi .L3317 add w20, w20, 1 cmp w20, 256 - bne .L3329 - b .L3307 -.L3268: + bne .L3339 + b .L3317 +.L3278: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -21386,10 +21433,10 @@ FlashBootVendorWrite: ldr x0, [x29,40] ldr w3, [x3,#:lo12:.LANCHOR1+504] cmp w3, 1 - bne .L3342 + bne .L3352 bl ftl_vendor_write mov w19, w0 -.L3342: +.L3352: bl rknand_device_unlock mov w0, w19 ldr x19, [sp,16] @@ -21446,22 +21493,22 @@ FtlDumpSysBlock: uxth w23, w0 add x0, x21, :lo12:.LANCHOR2 str x25, [sp,80] - add x19, x19, 160 + add x19, x19, 1696 adrp x22, .LC161 adrp x24, .LC162 lsl w25, w23, 10 - ldr x1, [x0,2072] + ldr x1, [x0,3608] mov w20, 0 - ldr x0, [x0,2120] + ldr x0, [x0,3656] add x22, x22, :lo12:.LC161 str x1, [x19,8] add x24, x24, :lo12:.LC162 str x0, [x19,16] -.L3347: - adrp x0, .LANCHOR0+2026 - ldrh w0, [x0,#:lo12:.LANCHOR0+2026] +.L3357: + adrp x0, .LANCHOR0+2538 + ldrh w0, [x0,#:lo12:.LANCHOR0+2538] cmp w20, w0 - bge .L3353 + bge .L3363 mov w1, 1 orr w0, w20, w25 mov w2, w1 @@ -21484,18 +21531,18 @@ FtlDumpSysBlock: ldr x0, [x19,16] ldr w0, [x0] cmn w0, #1 - beq .L3348 + beq .L3358 add x1, x21, :lo12:.LANCHOR2 mov x0, x24 mov w2, 4 mov w3, 768 - ldr x1, [x1,2072] + ldr x1, [x1,3608] bl rknand_print_hex -.L3348: +.L3358: add w20, w20, 1 sxth w20, w20 - b .L3347 -.L3353: + b .L3357 +.L3363: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -21521,24 +21568,24 @@ dump_map_info: stp x27, x28, [sp,96] adrp x23, .LC163 mov w25, 56 - ldrh w21, [x0,1964] + ldrh w21, [x0,2476] adrp x24, .LANCHOR2 mov w26, 4 add x23, x23, :lo12:.LC163 -.L3355: +.L3365: add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,1966] + ldrh w0, [x2,2478] cmp w0, w21 - bls .L3368 + bls .L3378 mov x22, 0 - ldrh w5, [x2,1956] - ldrh w4, [x2,2036] + ldrh w5, [x2,2468] + ldrh w4, [x2,2548] mov w27, w22 mov x20, x2 -.L3364: +.L3374: cmp w5, w22, uxth - bls .L3369 - add x0, x20, 1984 + bls .L3379 + add x0, x20, 2496 mov w1, w21 str x4, [x29,96] str x5, [x29,104] @@ -21548,42 +21595,42 @@ dump_map_info: bl FtlBbmIsBadBlock ldr x5, [x29,104] ldr x4, [x29,96] - cbnz w0, .L3356 + cbnz w0, .L3366 add x3, x24, :lo12:.LANCHOR2 lsl w28, w28, 10 umull x0, w27, w25 mul w2, w27, w4 - ldr x1, [x3,2048] + ldr x1, [x3,3584] add w27, w27, 1 add x1, x1, x0 uxth w27, w27 sdiv w2, w2, w26 str w28, [x1,4] - ldr x1, [x3,2048] + ldr x1, [x3,3584] add x0, x1, x0 - ldr x1, [x3,880] + ldr x1, [x3,1392] str x1, [x0,8] - ldr x1, [x3,888] + ldr x1, [x3,1400] add x2, x1, x2, sxtw 2 str x2, [x0,16] -.L3356: +.L3366: add x22, x22, 1 - b .L3364 -.L3369: - cbz w27, .L3359 + b .L3374 +.L3379: + cbz w27, .L3369 add x0, x24, :lo12:.LANCHOR2 mov w1, w27 mov w2, 1 mov x20, 0 adrp x22, .LANCHOR2 mov x28, 56 - ldr x0, [x0,2048] + ldr x0, [x0,3584] bl FlashReadPages -.L3360: +.L3370: cmp w27, w20, uxth - bls .L3359 + bls .L3369 add x0, x22, :lo12:.LANCHOR2 - ldr x3, [x0,2048] + ldr x3, [x0,3584] madd x3, x20, x28, x3 add x20, x20, 1 ldr x7, [x3,8] @@ -21599,36 +21646,36 @@ dump_map_info: ldr w7, [x7] ldr w6, [x6,12] bl printk - b .L3360 -.L3359: + b .L3370 +.L3369: add w21, w21, 1 uxth w21, w21 - b .L3355 -.L3368: + b .L3365 +.L3378: adrp x20, .LANCHOR4 adrp x23, .LC110 add x20, x20, :lo12:.LANCHOR4 mov w22, 0 adrp x27, .LANCHOR2 - add x20, x20, 160 + add x20, x20, 1696 add x23, x23, :lo12:.LC110 -.L3363: +.L3373: add x21, x27, :lo12:.LANCHOR2 adrp x26, .LANCHOR2 - ldrh w0, [x21,2320] + ldrh w0, [x21,3856] cmp w22, w0 - bge .L3366 + bge .L3376 sbfiz x24, x22, 1, 32 mov w21, 0 -.L3367: +.L3377: add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2026] + ldrh w0, [x0,2538] cmp w21, w0 - bge .L3370 + bge .L3380 add x25, x26, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 - ldr x0, [x25,2176] + ldr x0, [x25,3712] ldrh w0, [x0,x24] orr w0, w21, w0, lsl 10 str w0, [x20,4] @@ -21637,7 +21684,7 @@ dump_map_info: bl FlashReadPages sxth w21, w21 ldr x0, [x20,8] - ldr x1, [x25,2176] + ldr x1, [x25,3712] ldr x7, [x20,16] ldr w2, [x0] ldrh w1, [x1,x24] @@ -21652,28 +21699,28 @@ dump_map_info: ldr w3, [x20,4] ldr w7, [x7,12] bl printk - b .L3367 -.L3370: + b .L3377 +.L3380: add w22, w22, 1 sxth w22, w22 - b .L3363 -.L3366: + b .L3373 +.L3376: add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x21,2176] + ldr x1, [x21,3712] adrp x0, .LC164 mov w2, 2 add x0, x0, :lo12:.LC164 - ldr w3, [x19,2052] + ldr w3, [x19,2564] bl rknand_print_hex - ldr x1, [x21,2216] + ldr x1, [x21,3752] adrp x0, .LC165 - ldrh w3, [x19,2060] + ldrh w3, [x19,2572] add x0, x0, :lo12:.LC165 mov w2, 4 bl rknand_print_hex - ldr x1, [x21,2224] + ldr x1, [x21,3760] adrp x0, .LC166 - ldrh w3, [x19,2060] + ldrh w3, [x19,2572] add x0, x0, :lo12:.LC166 mov w2, 4 bl rknand_print_hex @@ -21691,17 +21738,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+1872 + adrp x1, .LANCHOR0+2384 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+1872] + ldr w2, [x1,#:lo12:.LANCHOR0+2384] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L3371 + bne .L3381 bl flash_enter_slc_mode -.L3371: +.L3381: ldp x29, x30, [sp], 16 ret .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode @@ -21709,17 +21756,17 @@ 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+1872 + adrp x1, .LANCHOR0+2384 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+1872] + ldr w2, [x1,#:lo12:.LANCHOR0+2384] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L3373 + bne .L3383 bl flash_exit_slc_mode -.L3373: +.L3383: ldp x29, x30, [sp], 16 ret .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode @@ -21733,7 +21780,7 @@ IdBlockReadData: add x19, x19, :lo12:.LANCHOR0 stp x23, x24, [sp,48] mov w23, w0 - ldr x0, [x19,744] + ldr x0, [x19,1256] stp x25, x26, [sp,64] stp x21, x22, [sp,32] stp x27, x28, [sp,80] @@ -21756,9 +21803,9 @@ IdBlockReadData: sub w28, w23, w24 mul w3, w24, w27 ubfx x3, x3, 2, 2 -.L3376: +.L3386: cmp w25, w26 - bcs .L3382 + bcs .L3392 add w0, w25, w24 add x1, x19, 200 ubfx x0, x0, 2, 16 @@ -21766,22 +21813,22 @@ IdBlockReadData: uxth w20, w20 ldrh w4, [x1,w0,sxtw 1] ldrb w1, [x19,196] - cbz w1, .L3377 - ldr w2, [x19,1872] + cbz w1, .L3387 + ldr w2, [x19,2384] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 csel w4, w4, w0, ne -.L3377: - ldr x0, [x19,744] +.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,1944] + ldrb w4, [x19,2456] str x6, [x29,120] - ldrb w0, [x0,98] + ldrb w0, [x0,1634] str x4, [x29,112] str x1, [x29,104] bl FlashBchSel @@ -21805,8 +21852,8 @@ IdBlockReadData: uxth w25, w20 ldr x5, [x29,96] ldr x6, [x29,120] - b .L3376 -.L3382: + b .L3386 +.L3392: adrp x0, .LC168 mov w1, w23 mov w2, w26 @@ -21839,7 +21886,7 @@ write_idblock: stp x27, x28, [sp,80] mov x22, x1 mov x28, x24 - ldr x1, [x0,744] + ldr x1, [x0,1256] ldr w21, [x0,76] mov w0, 59392 movk w0, 0x3, lsl 16 @@ -21847,23 +21894,23 @@ write_idblock: bl ftl_malloc mov x26, x0 mov w0, -1 - cbz x26, .L3421 + cbz x26, .L3431 add w19, w19, 511 lsr w19, w19, 9 cmp w19, 8 - bls .L3405 + bls .L3415 cmp w19, 500 - bhi .L3421 - b .L3385 -.L3405: + bhi .L3431 + b .L3395 +.L3415: mov w19, 8 -.L3385: +.L3395: ldr w2, [x22] mov w1, 35899 movk w1, 0xfcdc, lsl 16 mov w0, -1 cmp w2, w1 - bne .L3421 + bne .L3431 mul w21, w20, w21 mov w3, 0 mov w2, 63871 @@ -21875,9 +21922,9 @@ write_idblock: str w0, [x29,224] add x0, x22, 253952 add x0, x0, 1532 -.L3389: +.L3399: ldr w1, [x0] - cbnz w1, .L3386 + cbnz w1, .L3396 ldr w1, [x22,w3,uxtw 2] add w3, w3, 1 cmp w3, w4 @@ -21886,13 +21933,13 @@ write_idblock: csel w3, w3, wzr, cc cmp w2, 4096 sub x0, x0, #4 - bne .L3389 - b .L3388 -.L3386: + bne .L3399 + b .L3398 +.L3396: adrp x0, .LC169 add x0, x0, :lo12:.LC169 bl printk -.L3388: +.L3398: adrp x0, .LC170 mov w3, 5 add x20, x28, :lo12:.LANCHOR0 @@ -21912,15 +21959,15 @@ write_idblock: mov w1, w19 add x0, x0, :lo12:.LC172 mov w2, w19 - ldr w4, [x4,92] + ldr w4, [x4,1628] bl printk str x24, [x29,208] ldrb w0, [x20,73] ldr w1, [x22,512] cmp w1, w0 - bls .L3390 + bls .L3400 str w0, [x22,512] -.L3390: +.L3400: lsl w0, w19, 7 str w0, [x29,204] adrp x0, .LC173 @@ -21934,33 +21981,33 @@ write_idblock: adrp x0, .LC175 add x0, x0, :lo12:.LC175 str x0, [x29,176] -.L3403: +.L3413: add x0, x28, :lo12:.LANCHOR0 ldr w1, [x23,x20,lsl 2] str w20, [x29,232] ldrb w0, [x0,73] cmp w1, w0 - bcs .L3391 + bcs .L3401 ldr x0, [x29,208] add x0, x0, :lo12:.LANCHOR4 - ldr w0, [x0,92] + ldr w0, [x0,1628] cmp w1, w0 - bcc .L3391 + bcc .L3401 ldr w0, [x29,224] cmp w0, 1 cset w0, hi str w0, [x29,228] uxtw x0, w20 - cbz w0, .L3392 + cbz w0, .L3402 ldr w0, [x29,228] - cbz w0, .L3392 + cbz w0, .L3402 uxtw x0, w20 sub w0, w0, #1 ldr w0, [x23,x0,lsl 2] add w0, w0, 1 cmp w1, w0 - beq .L3391 -.L3392: + beq .L3401 +.L3402: mov w1, 0 mov x2, 512 mov x0, x26 @@ -21969,7 +22016,7 @@ write_idblock: add x0, x28, :lo12:.LANCHOR0 mov w2, w19 mul w24, w21, w24 - ldr x1, [x0,744] + ldr x1, [x0,1256] ldr w25, [x0,76] ldr x0, [x29,192] ldrb w27, [x1,9] @@ -21985,13 +22032,13 @@ write_idblock: bl FlashEraseBlock cmp w19, w25 mov w2, 1 - bls .L3393 + bls .L3403 mov w2, 0 mov w0, 0 add w1, w24, w25 bl FlashEraseBlock mov w2, 2 -.L3393: +.L3403: mov w0, 0 str x2, [x29,216] bl flash_boot_exit_slc_mode @@ -22001,7 +22048,7 @@ write_idblock: mov w6, 0 mov w10, 1073741823 mov w11, 61424 - ldr x1, [x4,744] + ldr x1, [x4,1256] ldrh w0, [x1,10] ldrb w5, [x1,12] lsl w0, w0, 2 @@ -22011,42 +22058,42 @@ write_idblock: sdiv w5, w0, w5 sub w0, w24, w8 str w0, [x29,216] -.L3394: +.L3404: cmp w6, w5 - bcs .L3432 + bcs .L3442 add w0, w6, w8 lsr w0, w0, 2 uxth w1, w0 and w0, w0, 65535 - cbz w1, .L3395 + cbz w1, .L3405 add w2, w0, 1 add x1, x4, 200 ldrb w3, [x4,196] ldrh w1, [x1,w2,sxtw 1] - cbz w3, .L3396 - ldr w7, [x4,1872] + cbz w3, .L3406 + ldr w7, [x4,2384] mov w3, 12336 movk w3, 0x5638, lsl 16 cmp w7, w3 csel w1, w1, w2, ne -.L3396: +.L3406: add w1, w1, w10 lsl w1, w1, 2 str w1, [x29,240] -.L3395: +.L3405: add x1, x4, 200 str w11, [x29,244] ldrh w7, [x1,w0,sxtw 1] ldrb w1, [x4,196] - cbz w1, .L3397 - ldr w2, [x4,1872] + cbz w1, .L3407 + ldr w2, [x4,2384] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 csel w7, w7, w0, ne -.L3397: +.L3407: ldr w0, [x29,216] - ldrb w12, [x4,1944] + ldrb w12, [x4,2456] str x11, [x29,104] madd w2, w7, w27, w0 ldr x0, [x29,208] @@ -22055,7 +22102,7 @@ write_idblock: str x6, [x29,120] str x8, [x29,128] str x5, [x29,136] - ldrb w0, [x0,98] + ldrb w0, [x0,1634] str x7, [x29,144] str x12, [x29,160] str x2, [x29,152] @@ -22066,7 +22113,7 @@ write_idblock: ldr x4, [x29,168] add x3, x29, 240 ldr x2, [x29,152] - ldr x0, [x4,744] + ldr x0, [x4,1256] ldrb w1, [x0,9] mov w0, 0 udiv w1, w2, w1 @@ -22092,8 +22139,8 @@ write_idblock: uxth w6, w6 ldr x5, [x29,136] ldr x4, [x29,168] - b .L3394 -.L3432: + b .L3404 +.L3442: ldr x0, [x29,184] mov w1, w24 mov w2, w19 @@ -22107,11 +22154,11 @@ write_idblock: mov x2, x26 mov x1, x22 mov x0, 0 -.L3399: +.L3409: ldr w4, [x29,204] mov w3, w0 cmp w0, w4 - bcs .L3433 + bcs .L3443 mov x27, x2 mov x25, x1 mov x24, x0 @@ -22121,7 +22168,7 @@ write_idblock: ldr w5, [x27] ldr w4, [x25] cmp w5, w4 - beq .L3399 + beq .L3409 mov w1, 0 mov x2, 512 mov x0, x26 @@ -22156,34 +22203,34 @@ write_idblock: mul w1, w21, w1 bl FlashEraseBlock ldr w0, [x29,228] - cbz w0, .L3400 + cbz w0, .L3410 ldr w1, [x23,x20,lsl 2] mov w0, 0 mov w2, 0 madd w1, w1, w21, w21 bl FlashEraseBlock -.L3400: +.L3410: mov w0, 0 bl flash_boot_exit_slc_mode adrp x0, .LC178 ldr w1, [x23,x20,lsl 2] add x0, x0, :lo12:.LC178 bl printk - b .L3391 -.L3433: + b .L3401 +.L3443: ldr w0, [x29,236] add w0, w0, 1 str w0, [x29,236] -.L3391: +.L3401: add x20, x20, 1 cmp x20, 5 - bne .L3403 + bne .L3413 mov x0, x26 bl ftl_free ldr w0, [x29,236] cmp w0, wzr csetm w0, eq -.L3421: +.L3431: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22201,17 +22248,17 @@ CRC_32: mov x5, x0 add x3, x3, :lo12:.LANCHOR1 mov w0, w2 -.L3435: +.L3445: cmp w1, w2 - bls .L3437 + bls .L3447 ldrb w4, [x5,x2] - add x6, x3, 3304 + 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 .L3435 -.L3437: + b .L3445 +.L3447: ret .size CRC_32, .-CRC_32 .align 2 @@ -22228,39 +22275,39 @@ write_loader_lba: mov w21, w1 mov x24, x2 adrp x20, .LANCHOR5 - bne .L3439 + bne .L3449 ldr w1, [x2] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L3439 + bne .L3449 add x22, x20, :lo12:.LANCHOR5 mov w0, 1 - strb w0, [x22,-32] + strb w0, [x22,1504] mov w0, 59392 movk w0, 0x3, lsl 16 bl ftl_malloc - str x0, [x22,-24] + str x0, [x22,1512] mov w2, 59392 mov w1, 0 movk w2, 0x3, lsl 16 bl ftl_memset - str w19, [x22,-16] -.L3439: + str w19, [x22,1520] +.L3449: add x23, x20, :lo12:.LANCHOR5 adrp x0, .LC179 ldr w2, [x24] add x0, x0, :lo12:.LC179 mov w3, w19 mov w4, w21 - ldr x1, [x23,-24] + ldr x1, [x23,1512] bl printk - ldrb w0, [x23,-32] - cbz w0, .L3438 + ldrb w0, [x23,1504] + cbz w0, .L3448 sub w0, w19, #64 - ldr x22, [x23,-24] + ldr x22, [x23,1512] cmp w0, 499 - bhi .L3441 + bhi .L3451 mov w3, 564 ubfiz x0, x0, 9, 25 sub w3, w3, w19 @@ -22270,38 +22317,38 @@ write_loader_lba: csel w2, w3, w21, ls lsl w2, w2, 9 bl ftl_memcpy - b .L3442 -.L3441: + b .L3452 +.L3451: cmp w19, 563 - bhi .L3452 -.L3442: + bhi .L3462 +.L3452: add x0, x20, :lo12:.LANCHOR5 - ldr w1, [x0,-16] + ldr w1, [x0,1520] cmp w1, w19 - beq .L3450 - strb wzr, [x0,-32] - cbz x22, .L3451 + beq .L3460 + strb wzr, [x0,1504] + cbz x22, .L3461 mov x0, x22 bl ftl_free -.L3451: +.L3461: add x0, x20, :lo12:.LANCHOR5 - str xzr, [x0,-24] -.L3450: + str xzr, [x0,1512] +.L3460: add x20, x20, :lo12:.LANCHOR5 add w19, w19, w21 - str w19, [x20,-16] - b .L3438 -.L3452: - ldr w2, [x23,-16] + str w19, [x20,1520] + b .L3448 +.L3462: + ldr w2, [x23,1520] mov w0, 500 sub w2, w2, #64 cmp w2, 500 csel w2, w2, w0, ls - adrp x0, .LANCHOR0+744 - ldr x0, [x0,#:lo12:.LANCHOR0+744] + adrp x0, .LANCHOR0+1256 + ldr x0, [x0,#:lo12:.LANCHOR0+1256] ldrb w0, [x0,9] cmp w0, 4 - beq .L3453 + beq .L3463 mov w0, 2 str w0, [x29,72] mov w0, 3 @@ -22312,49 +22359,49 @@ write_loader_lba: str w0, [x29,84] mov w0, 6 str w0, [x29,88] - b .L3444 -.L3453: + b .L3454 +.L3463: mov x3, 0 -.L3443: +.L3453: cmp w2, 256 add x0, x29, 72 - bls .L3445 + bls .L3455 lsl w1, w3, 1 str w1, [x0,x3,lsl 2] - b .L3446 -.L3445: + b .L3456 +.L3455: str w3, [x0,x3,lsl 2] -.L3446: +.L3456: add x3, x3, 1 cmp x3, 5 - bne .L3443 -.L3444: + bne .L3453 +.L3454: add x0, x22, 253952 mov w3, 63872 add x0, x0, 1536 -.L3449: +.L3459: ldr w1, [x0] - cbz w1, .L3447 + cbz w1, .L3457 add w3, w3, 128 lsl w0, w3, 2 - b .L3448 -.L3447: + b .L3458 +.L3457: sub w3, w3, #1 sub x0, x0, #4 cmp w3, 4096 - bne .L3449 + bne .L3459 lsl w0, w2, 9 -.L3448: +.L3458: mov x1, x22 add x2, x29, 72 add x22, x20, :lo12:.LANCHOR5 bl write_idblock - ldr x0, [x22,-24] - strb wzr, [x22,-32] + ldr x0, [x22,1512] + strb wzr, [x22,1504] bl ftl_free - str xzr, [x22,-24] - b .L3450 -.L3438: + str xzr, [x22,1512] + b .L3460 +.L3448: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22374,15 +22421,15 @@ FtlWrite: cmp w0, 1983 mov w19, w1 mov w20, w2 - bhi .L3463 - cbnz w21, .L3463 + bhi .L3473 + cbnz w21, .L3473 mov w0, w1 mov w1, w2 mov x2, x3 str x3, [x29,56] bl write_loader_lba ldr x3, [x29,56] -.L3463: +.L3473: mov w1, w19 mov w2, w20 mov w0, w21 @@ -22406,137 +22453,137 @@ rknand_sys_storage_ioctl: stp x21, x22, [sp,32] mov w19, w1 mov x20, x2 - beq .L3472 + beq .L3482 mov w0, 29187 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3473 + bhi .L3483 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3474 - mov w0, 25726 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3475 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3476 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3477 - mov w0, 25364 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bne .L3534 - bl rknand_dev_flush - b .L3568 -.L3477: - mov w0, 25602 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3479 - mov w0, 25603 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3480 - b .L3534 -.L3475: - mov w0, 27688 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3481 - mov w0, 27688 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3482 - mov w0, 25727 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3483 - b .L3534 -.L3482: - mov w0, 27698 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3481 - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3481 - b .L3534 -.L3473: - mov w0, 29267 - movk w0, 0x4004, lsl 16 - cmp w1, w0 beq .L3484 - mov w0, 29267 + mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 bhi .L3485 - mov w0, 29189 + mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 beq .L3486 - mov w0, 29189 + mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - bcc .L3487 - mov w0, 29210 + bhi .L3487 + mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3488 - mov w0, 29266 + bne .L3544 + bl rknand_dev_flush + b .L3578 +.L3487: + mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 beq .L3489 - b .L3534 -.L3485: - mov w0, 30225 + mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 beq .L3490 + b .L3544 +.L3485: + mov w0, 27688 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3491 + mov w0, 27688 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bhi .L3492 + mov w0, 25727 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3493 + b .L3544 +.L3492: + mov w0, 27698 + 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 - bhi .L3491 + 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 .L3492 + beq .L3502 mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3493 - b .L3534 -.L3491: + beq .L3503 + b .L3544 +.L3501: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3493 + beq .L3503 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3490 - b .L3534 -.L3487: + 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, .L3494 -.L3499: + cbnz x0, .L3504 +.L3509: mov x0, -12 - b .L3471 -.L3494: + b .L3481 +.L3504: mov x1, x20 mov x2, 512 bl rk_copy_from_user - cbnz x0, .L3575 + cbnz x0, .L3585 adrp x0, .LC182 ldr w1, [x19] ldr w2, [x19,4] @@ -22545,7 +22592,7 @@ rknand_sys_storage_ioctl: ldr w0, [x19,4] str w0, [x29,52] cmp w0, 8 - bhi .L3572 + bhi .L3582 bl rknand_device_lock ldr w1, [x29,52] mov x2, x19 @@ -22557,30 +22604,30 @@ rknand_sys_storage_ioctl: mov x1, x19 ubfiz x2, x2, 9, 23 bl rk_copy_to_user - cbz x0, .L3578 + cbz x0, .L3588 adrp x0, .LC183 add x0, x0, :lo12:.LC183 -.L3570: +.L3580: bl printk -.L3572: +.L3582: mov x0, x19 -.L3573: +.L3583: bl ftl_free -.L3571: +.L3581: mov x0, -14 - b .L3471 -.L3486: + b .L3481 +.L3496: adrp x0, .LC184 add x0, x0, :lo12:.LC184 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3499 + cbz x0, .L3509 mov x1, x20 mov x2, 4096 bl rk_copy_from_user - cbnz x0, .L3575 + cbnz x0, .L3585 adrp x0, .LC185 ldr w1, [x19] ldr w2, [x19,4] @@ -22589,51 +22636,51 @@ rknand_sys_storage_ioctl: adrp x0, .LANCHOR5 add x22, x0, :lo12:.LANCHOR5 mov x20, x0 - ldr x21, [x22,-8] - cbnz x21, .L3501 + ldr x21, [x22,1528] + cbnz x21, .L3511 mov w0, 260096 bl ftl_malloc - str x0, [x22,-8] - cbz x0, .L3572 + str x0, [x22,1528] + cbz x0, .L3582 mov w1, w21 mov x2, 260096 bl memset -.L3501: +.L3511: ldr w2, [x19,4] cmp w2, 4088 - bhi .L3572 + bhi .L3582 ldr w0, [x19] mov w1, 55296 movk w1, 0x3, lsl 16 cmp w0, w1 - bhi .L3572 + bhi .L3582 add x20, x20, :lo12:.LANCHOR5 uxtw x2, w2 - ldr x1, [x20,-8] + ldr x1, [x20,1528] add x0, x1, x0, uxtw add x1, x19, 8 bl memcpy -.L3578: +.L3588: mov x0, x19 bl ftl_free - b .L3568 -.L3489: + b .L3578 +.L3499: adrp x0, .LC186 add x0, x0, :lo12:.LC186 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3499 + cbz x0, .L3509 mov x1, x20 mov x2, 28 bl rk_copy_from_user - cbz x0, .L3504 -.L3575: + cbz x0, .L3514 +.L3585: adrp x0, .LC181 add x0, x0, :lo12:.LC181 - b .L3570 -.L3504: + b .L3580 +.L3514: ldr w1, [x19] adrp x0, .LC187 ldr w2, [x19,4] @@ -22643,44 +22690,44 @@ rknand_sys_storage_ioctl: mov w0, 59392 movk w0, 0x3, lsl 16 cmp w1, w0 - bhi .L3572 + bhi .L3582 adrp x20, .LANCHOR5 add x20, x20, :lo12:.LANCHOR5 - ldr x0, [x20,-8] - cbz x0, .L3572 + ldr x0, [x20,1528] + cbz x0, .L3582 bl CRC_32 ldr w1, [x19,4] cmp w1, w0 - beq .L3507 + beq .L3517 mov x0, x19 bl ftl_free mov x0, -2 - b .L3471 -.L3507: + b .L3481 +.L3517: bl rknand_device_lock - ldr x1, [x20,-8] + ldr x1, [x20,1528] add x2, x19, 8 ldr w0, [x19] bl write_idblock bl rknand_device_unlock - ldr x0, [x20,-8] + ldr x0, [x20,1528] bl ftl_free - str xzr, [x20,-8] - b .L3578 -.L3488: + 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, .L3499 + cbz x0, .L3509 bl ftl_read_flash_info mov x0, x20 mov x1, x21 mov x2, 11 - b .L3580 -.L3472: + b .L3590 +.L3482: adrp x0, .LC189 add x0, x0, :lo12:.LC189 bl printk @@ -22688,37 +22735,37 @@ rknand_sys_storage_ioctl: mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3499 + cbz x0, .L3509 mov w1, 0 mov w2, 64 bl ftl_memset mov x0, x20 mov x1, x21 mov x2, 64 - b .L3580 -.L3484: + b .L3590 +.L3494: adrp x0, .LC190 add x0, x0, :lo12:.LC190 bl printk - adrp x0, .LANCHOR5 + adrp x0, .LANCHOR5+1536 add x1, x29, 52 mov x2, 4 - ldr x0, [x0,#:lo12:.LANCHOR5] + ldr x0, [x0,#:lo12:.LANCHOR5+1536] ldr w0, [x0,20] str w0, [x29,52] mov x0, x20 -.L3563: +.L3573: bl rk_copy_to_user - cbnz x0, .L3571 - b .L3568 -.L3492: + 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, .L3499 + cbz x0, .L3509 bl rknand_device_lock mov w1, 264 mov w2, 2 @@ -22729,14 +22776,14 @@ rknand_sys_storage_ioctl: mov x0, x20 mov x1, x21 mov x2, 1024 -.L3580: +.L3590: bl rk_copy_to_user mov x19, x0 mov x0, x21 - cbnz x19, .L3573 + cbnz x19, .L3583 bl ftl_free - b .L3498 -.L3476: + b .L3508 +.L3486: adrp x0, .LC192 add x0, x0, :lo12:.LC192 bl printk @@ -22745,50 +22792,50 @@ rknand_sys_storage_ioctl: mov x2, 520 bl rk_copy_from_user mov x19, x0 - cbz x0, .L3512 -.L3517: + cbz x0, .L3522 +.L3527: adrp x0, .LC181 add x0, x0, :lo12:.LC181 bl printk - b .L3571 -.L3512: + b .L3581 +.L3522: ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L3513 -.L3514: + beq .L3523 +.L3524: mov x19, -1 - b .L3498 -.L3513: + b .L3508 +.L3523: ldr w0, [x29,60] cmp w0, 512 - bhi .L3514 - adrp x1, .LANCHOR5 + bhi .L3524 + adrp x21, .LANCHOR5 add x0, x29, 56 - add x21, x1, :lo12:.LANCHOR5 + add x21, x21, :lo12:.LANCHOR5 mov x2, 512 - ldr x1, [x1,#:lo12:.LANCHOR5] + ldr x1, [x21,1536] bl memcpy - ldr w1, [x21,8] + ldr w1, [x21,1544] mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L3515 + beq .L3525 add x0, x29, 120 mov w1, w19 mov x2, 128 str w19, [x29,64] str w19, [x29,68] bl memset -.L3515: +.L3525: add x0, x29, 312 mov w1, 0 mov x2, 256 str wzr, [x29,72] bl memset - b .L3577 -.L3479: + b .L3587 +.L3489: adrp x0, .LC193 add x0, x0, :lo12:.LC193 bl printk @@ -22796,38 +22843,38 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3517 + cbnz x0, .L3527 ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L3514 + bne .L3524 ldr w0, [x29,60] cmp w0, 512 - bhi .L3514 - adrp x2, .LANCHOR5 - mov w1, 5161 - add x0, x2, :lo12:.LANCHOR5 - movk w1, 0xc059, lsl 16 - ldr w3, [x0,8] + bhi .L3524 + adrp x1, .LANCHOR5 + mov w2, 5161 + add x1, x1, :lo12:.LANCHOR5 + movk w2, 0xc059, lsl 16 mov x0, -2 - cmp w3, w1 - bne .L3471 - ldr w1, [x29,68] + ldr w3, [x1,1544] + cmp w3, w2 + bne .L3481 + ldr w2, [x29,68] mov x0, -3 - sub w3, w1, #1 + sub w3, w2, #1 cmp w3, 127 - bhi .L3471 - ldr x19, [x2,#:lo12:.LANCHOR5] - add x0, x19, 64 - str w1, [x19,12] + bhi .L3481 + ldr x19, [x1,1536] add x1, x29, 120 + add x0, x19, 64 + str w2, [x19,12] ldr w2, [x29,68] bl memcpy mov w0, 1 mov x1, x19 - b .L3569 -.L3483: + b .L3579 +.L3493: adrp x0, .LC194 add x0, x0, :lo12:.LC194 bl printk @@ -22835,74 +22882,73 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3517 + cbnz x0, .L3527 ldr w1, [x29,56] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L3514 + bne .L3524 ldr w0, [x29,60] cmp w0, 512 - bhi .L3514 + bhi .L3524 adrp x19, .LANCHOR5 add x0, x19, :lo12:.LANCHOR5 - ldr w1, [x0,12] - cbnz w1, .L3518 -.L3521: + ldr w1, [x0,1548] + cbnz w1, .L3528 +.L3531: mov x0, 0 - b .L3471 -.L3518: - ldr x1, [x0,16] + b .L3481 +.L3528: + ldr x1, [x0,1552] mov w2, 22867 movk w2, 0x4453, lsl 16 ldr w3, [x1] cmp w3, w2 - beq .L3519 + beq .L3529 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] mov w2, 504 - ldr x1, [x0,16] + ldr x1, [x0,1552] str w2, [x1,4] - ldr x0, [x0,16] + ldr x0, [x0,1552] str wzr, [x0,8] str wzr, [x0,12] -.L3519: - add x0, x19, :lo12:.LANCHOR5 - adrp x20, .LANCHOR5 - ldr x1, [x0,16] +.L3529: + add x20, x19, :lo12:.LANCHOR5 mov w0, 0 + ldr x1, [x20,1552] str wzr, [x1,16] bl StorageSysDataStore - ldr x0, [x19,#:lo12:.LANCHOR5] + ldr x0, [x20,1536] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3520 + beq .L3530 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,#:lo12:.LANCHOR5] + ldr x0, [x20,1536] str w1, [x0,4] - ldr x0, [x20,#:lo12:.LANCHOR5] + ldr x0, [x20,1536] str wzr, [x0,8] -.L3520: - add x20, x19, :lo12:.LANCHOR5 - ldr x19, [x19,#:lo12:.LANCHOR5] +.L3530: + add x19, x19, :lo12:.LANCHOR5 mov w1, 0 mov x2, 128 - add x0, x19, 64 - str wzr, [x19,12] + ldr x20, [x19,1536] + add x0, x20, 64 + str wzr, [x20,12] bl memset mov w0, 1 - mov x1, x19 + mov x1, x20 bl StorageSysDataStore - str wzr, [x20,12] - str wzr, [x20,8] - b .L3568 -.L3474: + str wzr, [x19,1548] + str wzr, [x19,1544] + b .L3578 +.L3484: adrp x0, .LC195 add x0, x0, :lo12:.LC195 bl printk @@ -22910,72 +22956,71 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3517 + cbnz x0, .L3527 ldr w2, [x29,56] mov w1, 20037 movk w1, 0x4253, lsl 16 cmp w2, w1 - bne .L3514 + bne .L3524 ldr w1, [x29,60] cmp w1, 512 - bhi .L3514 + bhi .L3524 adrp x19, .LANCHOR5 add x1, x19, :lo12:.LANCHOR5 - ldr w2, [x1,12] + ldr w2, [x1,1548] cmp w2, 1 - beq .L3521 - ldr x2, [x1,16] + beq .L3531 + ldr x2, [x1,1552] mov w3, 22867 movk w3, 0x4453, lsl 16 ldr w4, [x2] cmp w4, w3 - beq .L3522 + beq .L3532 mov w3, 22867 movk w3, 0x4453, lsl 16 str w3, [x2] mov w3, 504 - ldr x2, [x1,16] + ldr x2, [x1,1552] str w3, [x2,4] - ldr x1, [x1,16] + ldr x1, [x1,1552] str w0, [x1,8] str w0, [x1,12] -.L3522: - add x0, x19, :lo12:.LANCHOR5 - adrp x20, .LANCHOR5 - ldr x1, [x0,16] +.L3532: + add x20, x19, :lo12:.LANCHOR5 mov w0, 1 + ldr x1, [x20,1552] str w0, [x1,16] mov w0, 0 bl StorageSysDataStore - ldr x0, [x19,#:lo12:.LANCHOR5] + ldr x0, [x20,1536] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3523 + beq .L3533 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,#:lo12:.LANCHOR5] + ldr x0, [x20,1536] str w1, [x0,4] - ldr x0, [x20,#:lo12:.LANCHOR5] + ldr x0, [x20,1536] str wzr, [x0,8] -.L3523: - add x20, x19, :lo12:.LANCHOR5 - ldr x19, [x19,#:lo12:.LANCHOR5] +.L3533: + add x19, x19, :lo12:.LANCHOR5 mov w1, 0 mov x2, 128 - add x0, x19, 64 - str wzr, [x19,12] + ldr x20, [x19,1536] + add x0, x20, 64 + str wzr, [x20,12] bl memset mov w0, 1 - mov x1, x19 + mov x1, x20 bl StorageSysDataStore mov w0, 1 - str w0, [x20,12] - b .L3568 -.L3480: + str w0, [x19,1548] + b .L3578 +.L3490: adrp x0, .LC196 add x0, x0, :lo12:.LC196 bl printk @@ -22983,108 +23028,109 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3517 + cbnz x0, .L3527 ldr w1, [x29,56] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L3514 + bne .L3524 ldr w2, [x29,60] cmp w2, 512 - bhi .L3514 + bhi .L3524 adrp x1, .LANCHOR5 add x0, x29, 64 add x1, x1, :lo12:.LANCHOR5 uxtw x2, w2 - add x1, x1, 24 - b .L3576 -.L3481: + add x1, x1, 1560 + b .L3586 +.L3491: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3524 + bne .L3534 adrp x0, .LC197 add x0, x0, :lo12:.LC197 - b .L3566 -.L3524: + b .L3576 +.L3534: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3526 + bne .L3536 adrp x0, .LC198 add x0, x0, :lo12:.LC198 - b .L3566 -.L3526: + b .L3576 +.L3536: adrp x0, .LC199 add x0, x0, :lo12:.LC199 -.L3566: +.L3576: bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3517 + cbnz x0, .L3527 ldr w1, [x29,56] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3571 + bne .L3581 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x0, .LANCHOR5 - bne .L3527 - ldr x0, [x0,#:lo12:.LANCHOR5] + bne .L3537 + add x0, x0, :lo12:.LANCHOR5 add x1, x29, 56 mov x2, 16 + ldr x0, [x0,1536] ldr w0, [x0,20] str w0, [x29,60] strb w0, [x29,64] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3471 - b .L3571 -.L3527: + cbz x0, .L3481 + b .L3581 +.L3537: add x20, x0, :lo12:.LANCHOR5 - ldr w1, [x20,536] + ldr w1, [x20,2072] cmp w1, 10 - bhi .L3571 - ldr x1, [x0,#:lo12:.LANCHOR5] + bhi .L3581 + ldr x1, [x20,1536] ldr w2, [x29,60] ldr w3, [x1,24] cmp w3, w2 - beq .L3528 - cbz w3, .L3528 + beq .L3538 + cbz w3, .L3538 adrp x0, .LC200 mov w1, w2 add x0, x0, :lo12:.LC200 bl printk - ldr w0, [x20,536] + ldr w0, [x20,2072] add w0, w0, 1 - str w0, [x20,536] - b .L3571 -.L3528: + str w0, [x20,2072] + b .L3581 +.L3538: add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,536] + str wzr, [x0,2072] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3529 + bne .L3539 str wzr, [x1,20] str wzr, [x1,24] - b .L3530 -.L3529: + b .L3540 +.L3539: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L3530: +.L3540: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L3568 - b .L3498 -.L3493: + bne .L3578 + b .L3508 +.L3503: adrp x0, .LC201 add x0, x0, :lo12:.LC201 bl printk @@ -23092,15 +23138,15 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3517 + cbnz x0, .L3527 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3514 + bne .L3524 ldr w2, [x29,60] cmp w2, 504 - bhi .L3514 + bhi .L3524 mov w0, 30224 adrp x1, .LANCHOR5 movk w0, 0x4004, lsl 16 @@ -23108,21 +23154,21 @@ rknand_sys_storage_ioctl: cmp w19, w0 add x1, x1, :lo12:.LANCHOR5 add x0, x29, 64 - bne .L3531 - ldr x1, [x1,544] - b .L3567 -.L3531: - ldr x1, [x1,552] -.L3567: - add x1, x1, 8 -.L3576: - bl memcpy + bne .L3541 + ldr x1, [x1,2080] + b .L3577 +.L3541: + ldr x1, [x1,2088] .L3577: + add x1, x1, 8 +.L3586: + bl memcpy +.L3587: mov x0, x20 add x1, x29, 56 mov x2, 520 - b .L3563 -.L3490: + b .L3573 +.L3500: adrp x0, .LC202 add x0, x0, :lo12:.LC202 bl printk @@ -23130,50 +23176,50 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3517 + cbnz x0, .L3527 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3514 + bne .L3524 ldr w2, [x29,60] cmp w2, 504 - bhi .L3514 + bhi .L3524 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x19, .LANCHOR5 add x19, x19, :lo12:.LANCHOR5 - bne .L3533 - ldr x0, [x19,544] + bne .L3543 + ldr x0, [x19,2080] add x1, x29, 56 bl memcpy mov w0, 2 - ldr x1, [x19,544] - b .L3569 -.L3533: - ldr x0, [x19,552] + ldr x1, [x19,2080] + b .L3579 +.L3543: + ldr x0, [x19,2088] add x1, x29, 56 bl memcpy - ldr x1, [x19,552] + ldr x1, [x19,2088] mov w0, 3 -.L3569: +.L3579: bl StorageSysDataStore uxtw x19, w0 - b .L3498 -.L3568: + b .L3508 +.L3578: mov x19, 0 -.L3498: +.L3508: adrp x0, .LC203 mov x1, x19 add x0, x0, :lo12:.LC203 bl printk mov x0, x19 - b .L3471 -.L3534: + b .L3481 +.L3544: mov x0, -22 -.L3471: +.L3481: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -23192,50 +23238,50 @@ rk_ftl_storage_sys_init: adrp x20, .LANCHOR5 add x19, x20, :lo12:.LANCHOR5 stp x21, x22, [sp,32] - ldr x1, [x19,-56] - str w0, [x19,-16] + ldr x1, [x19,1480] + str w0, [x19,1520] add x0, x1, 512 - str x0, [x20,#:lo12:.LANCHOR5] + str x0, [x19,1536] add x0, x1, 1024 - str x1, [x19,16] - str x0, [x19,544] + str x1, [x19,1552] + str x0, [x19,2080] add x1, x1, 1536 - add x0, x19, 24 - strb wzr, [x19,-32] - str xzr, [x19,-24] - str xzr, [x19,-8] - str x1, [x19,552] + add x0, x19, 1560 + strb wzr, [x19,1504] + str xzr, [x19,1512] + str xzr, [x19,1528] + str x1, [x19,2088] bl ftl_memcpy - ldr x21, [x19,16] - str wzr, [x19,8] - str wzr, [x19,536] + ldr x21, [x19,1552] + str wzr, [x19,1544] + str wzr, [x19,2072] ldr w0, [x21,16] ldr w22, [x21,508] - str w0, [x19,12] - cbz w22, .L3583 + str w0, [x19,1548] + cbz w22, .L3593 mov x0, x21 mov w1, 508 bl js_hash cmp w22, w0 - beq .L3583 + beq .L3593 adrp x0, .LC204 str wzr, [x21,16] add x0, x0, :lo12:.LC204 - str wzr, [x19,12] + str wzr, [x19,1548] bl printk -.L3583: +.L3593: add x0, x20, :lo12:.LANCHOR5 - ldr w1, [x0,12] - cbz w1, .L3584 + ldr w1, [x0,1548] + cbz w1, .L3594 mov w1, 5161 movk w1, 0xc059, lsl 16 - str w1, [x0,8] -.L3584: + str w1, [x0,1544] +.L3594: add x20, x20, :lo12:.LANCHOR5 mov w0, 2 - ldr x1, [x20,544] + ldr x1, [x20,2080] bl StorageSysDataLoad - ldr x1, [x20,552] + ldr x1, [x20,2088] mov w0, 3 bl StorageSysDataLoad bl rknand_sys_storage_init @@ -23265,55 +23311,55 @@ rk_ftl_vendor_storage_init: bl ftl_malloc add x1, x21, :lo12:.LANCHOR5 mov w19, -12 - str x0, [x1,560] - cbz x0, .L3593 + str x0, [x1,2096] + cbz x0, .L3603 mov w23, 0 adrp x24, .LC205 mov w19, w23 mov w22, w23 add x24, x24, :lo12:.LC205 -.L3597: +.L3607: add x20, x21, :lo12:.LANCHOR5 lsl w0, w22, 7 mov w1, 128 - ldr x2, [x20,560] + ldr x2, [x20,2096] bl FlashBootVendorRead - cbnz w0, .L3594 - ldr x3, [x20,560] + cbnz w0, .L3604 + ldr x3, [x20,2096] mov x0, x24 add x2, x3, 61440 ldr w1, [x3] ldr w3, [x3,4] ldr w2, [x2,4092] bl printk - ldr x20, [x20,560] + ldr x20, [x20,2096] mov w0, 22084 movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L3595 + bne .L3605 ldr w0, [x20,4] cmp w19, w0 - bcs .L3595 + bcs .L3605 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L3595: - cbnz w22, .L3605 - mov w22, 1 - b .L3597 .L3605: - cbz w19, .L3598 + cbnz w22, .L3615 + mov w22, 1 + b .L3607 +.L3615: + cbz w19, .L3608 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L3593 - b .L3594 -.L3598: + cbz w0, .L3603 + b .L3604 +.L3608: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -23327,14 +23373,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L3593 -.L3594: + b .L3603 +.L3604: add x21, x21, :lo12:.LANCHOR5 mov w19, -1 - ldr x0, [x21,560] + ldr x0, [x21,2096] bl kfree - str xzr, [x21,560] -.L3593: + str xzr, [x21,2096] +.L3603: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -23346,24 +23392,24 @@ rk_ftl_vendor_storage_init: .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR5+560 + adrp x3, .LANCHOR5+2096 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR5+560] + ldr x5, [x3,#:lo12:.LANCHOR5+2096] mov w3, -1 str x19, [sp,16] - cbz x5, .L3607 + cbz x5, .L3617 ldrh w3, [x5,10] mov x4, 0 -.L3608: +.L3618: cmp w4, w3 mov w6, w4 - bcs .L3612 + bcs .L3622 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L3608 + bne .L3618 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -23375,10 +23421,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L3607 -.L3612: + b .L3617 +.L3622: mov w3, -1 -.L3607: +.L3617: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -23390,10 +23436,10 @@ rk_ftl_vendor_read: rk_ftl_vendor_write: stp x29, x30, [sp, -112]! mov w6, w0 - adrp x0, .LANCHOR5+560 + adrp x0, .LANCHOR5+2096 add x29, sp, 0 stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR5+560] + ldr x19, [x0,#:lo12:.LANCHOR5+2096] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x21, x22, [sp,32] @@ -23401,38 +23447,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L3614 + cbz x19, .L3624 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L3615: +.L3625: cmp w2, w3 mov w4, w2 - bcs .L3630 + bcs .L3640 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L3615 + bne .L3625 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 .L3616 + bls .L3626 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L3614 + bcc .L3624 ldrh w21, [x21,18] add w22, w3, w2 -.L3617: +.L3627: cmp w4, w22 uxtw x3, w4 - bcs .L3631 + bcs .L3641 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -23455,8 +23501,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L3617 -.L3631: + b .L3627 +.L3641: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -23473,20 +23519,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L3629 -.L3616: + b .L3639 +.L3626: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L3629 -.L3630: + b .L3639 +.L3640: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L3614 + bcc .L3624 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -23506,7 +23552,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L3629: +.L3639: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -23523,7 +23569,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L3614: +.L3624: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -23547,37 +23593,37 @@ rk_ftl_vendor_storage_ioctl: mov x21, x2 bl ftl_malloc mov x19, x0 - cbz x0, .L3633 + cbz x0, .L3643 mov w2, 30209 ldr x1, [x29,56] movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3635 + beq .L3645 mov w2, 30210 movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3636 - b .L3647 -.L3635: + beq .L3646 + b .L3657 +.L3645: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3647 + cbnz x0, .L3657 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3638 -.L3639: + beq .L3648 +.L3649: mov x20, -1 - b .L3634 -.L3638: + b .L3644 +.L3648: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L3639 + beq .L3649 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -23587,38 +23633,38 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L3634 -.L3636: + b .L3644 +.L3646: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3647 + cbnz x0, .L3657 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L3639 + bne .L3649 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L3639 + bhi .L3649 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L3647 + cbnz x0, .L3657 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L3634 -.L3647: + b .L3644 +.L3657: mov x20, -14 -.L3634: +.L3644: mov x0, x19 bl kfree -.L3633: +.L3643: mov x0, x20 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -23871,38 +23917,38 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.19648, %object - .size __func__.19648, 11 -__func__.19648: + .type __func__.20892, %object + .size __func__.20892, 11 +__func__.20892: .string "FtlMemInit" .zero 5 - .type __func__.20423, %object - .size __func__.20423, 17 -__func__.20423: + .type __func__.21667, %object + .size __func__.21667, 17 +__func__.21667: .string "FtlDumpBlockInfo" .zero 7 - .type __func__.20442, %object - .size __func__.20442, 16 -__func__.20442: + .type __func__.21686, %object + .size __func__.21686, 16 +__func__.21686: .string "FtlScanAllBlock" - .type __func__.20708, %object - .size __func__.20708, 17 -__func__.20708: + .type __func__.21952, %object + .size __func__.21952, 17 +__func__.21952: .string "ftl_scan_all_ppa" .zero 7 - .type __func__.20391, %object - .size __func__.20391, 12 -__func__.20391: + .type __func__.21635, %object + .size __func__.21635, 12 +__func__.21635: .string "FtlCheckVpc" .zero 4 - .type __func__.20690, %object - .size __func__.20690, 21 -__func__.20690: + .type __func__.21934, %object + .size __func__.21934, 21 +__func__.21934: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.19721, %object - .size __func__.19721, 8 -__func__.19721: + .type __func__.20965, %object + .size __func__.20965, 8 +__func__.20965: .string "FtlInit" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -24058,7 +24104,7 @@ __func__.19721: .LC75: .string "%s\n" .LC76: - .string "FTL version: 5.0.57 20190828" + .string "FTL version: 5.0.60 20200218" .LC77: .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" .LC78: @@ -24708,7 +24754,7 @@ gFtlInitStatus: .word -1 .zero 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2592 + .size NandFlashParaTbl, 2656 NandFlashParaTbl: .byte 6 .byte 44 @@ -25413,6 +25459,32 @@ NandFlashParaTbl: .byte 0 .zero 4 .byte 6 + .byte 44 + .byte -92 + .byte 100 + .byte 50 + .byte -86 + .byte 4 + .byte 4 + .byte 1 + .byte 32 + .hword 1024 + .byte 2 + .byte 1 + .hword 2192 + .hword 1479 + .byte 10 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .zero 4 + .byte 6 .byte -83 .byte -34 .byte -108 @@ -25984,6 +26056,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 + .byte 5 + .byte -119 + .byte -124 + .byte 100 + .byte 60 + .byte -91 + .byte 0 + .byte 7 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 2 + .hword 1024 + .hword 455 + .byte 4 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .zero 4 .byte 6 .byte -104 .byte -41 @@ -27315,9 +27413,9 @@ gFlashSlcMode: .zero 1 .zero 3 .type slcPageToMlcPageTbl, %object - .size slcPageToMlcPageTbl, 512 + .size slcPageToMlcPageTbl, 1024 slcPageToMlcPageTbl: - .zero 512 + .zero 1024 .type DieAddrs, %object .size DieAddrs, 32 DieAddrs: @@ -27833,9 +27931,9 @@ g_gc_bad_block_temp_tbl: g_gc_bad_block_gc_index: .zero 2 .type mlcPageToSlcPageTbl, %object - .size mlcPageToSlcPageTbl, 1024 + .size mlcPageToSlcPageTbl, 2048 mlcPageToSlcPageTbl: - .zero 1024 + .zero 2048 .type gNandMaxChip, %object .size gNandMaxChip, 1 gNandMaxChip: diff --git a/drivers/rk_nand/rk_ftlv5_arm32.S b/drivers/rk_nand/rk_ftlv5_arm32.S index 9300957eefee..7eb0c5d18693 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: 2019-09-29 + * date: 2020-02-18 * function: rk ftl v5 for rockchip soc base on arm v7 to support MLC NAND. */ .arch armv7-a @@ -18,9 +18,10 @@ .eabi_attribute 26, 2 .eabi_attribute 30, 4 .eabi_attribute 34, 1 - .eabi_attribute 18, 2 + .eabi_attribute 18, 4 .file "rk_ftlv5_arm_v7.S" #APP + .syntax unified .text .align 2 .global FlashMemCmp8 @@ -156,20 +157,23 @@ FlashBlockAlignInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. + cmp r0, #512 + ldr r3, .L44 + movhi r2, #1024 + bhi .L43 cmp r0, #256 - ldr r3, .L43 movhi r2, #512 - bhi .L42 + bhi .L43 cmp r0, #128 strls r0, [r3, #4] bxls lr mov r2, #256 -.L42: +.L43: str r2, [r3, #4] bx lr -.L44: +.L45: .align 2 -.L43: +.L44: .word .LANCHOR0 .fnend .size FlashBlockAlignInit, .-FlashBlockAlignInit @@ -181,7 +185,7 @@ FlashReadCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L46 + ldr ip, .L47 mov r2, r1, lsr #16 add ip, ip, r0, asl #3 ldr r3, [ip, #12] @@ -199,9 +203,9 @@ FlashReadCmd: mov r2, #48 str r2, [r3, #2056] b FlashSetRandomizer -.L47: +.L48: .align 2 -.L46: +.L47: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -212,7 +216,7 @@ FlashReadDpDataOutCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L53 + ldr ip, .L54 stmfd sp!, {r4, lr} .save {r4, lr} add r3, ip, r0, asl #3 @@ -225,7 +229,7 @@ FlashReadDpDataOutCmd: mov ip, r1, lsr #16 mov r3, r3, asl #8 add r3, r2, r3 - bne .L49 + bne .L50 mov r2, #6 str r2, [r3, #2056] mov r2, #0 @@ -234,8 +238,8 @@ FlashReadDpDataOutCmd: str r4, [r3, #2052] str lr, [r3, #2052] str ip, [r3, #2052] - b .L52 -.L49: + b .L53 +.L50: mov r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -247,14 +251,14 @@ FlashReadDpDataOutCmd: str ip, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] -.L52: +.L53: mov r2, #224 str r2, [r3, #2056] ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L54: +.L55: .align 2 -.L53: +.L54: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd @@ -266,7 +270,7 @@ FlashProgFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L56 + ldr ip, .L57 mov r2, r1, lsr #16 add ip, ip, r0, asl #3 ldr r3, [ip, #12] @@ -283,9 +287,9 @@ FlashProgFirstCmd: str ip, [r3, #2052] str r2, [r3, #2052] b FlashSetRandomizer -.L57: +.L58: .align 2 -.L56: +.L57: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -299,12 +303,12 @@ FlashEraseCmd: str lr, [sp, #-4]! .save {lr} cmp r2, #0 - ldr lr, .L64 + ldr lr, .L65 add r0, lr, r0, asl #3 ldrb r3, [r0, #16] @ zero_extendqisi2 ldr ip, [r0, #12] mov r3, r3, asl #8 - beq .L59 + beq .L60 add r2, ip, r3 mov r0, #96 str r0, [r2, #2056] @@ -316,7 +320,7 @@ FlashEraseCmd: str r0, [r2, #2052] ldr r2, [lr, #4] add r1, r1, r2 -.L59: +.L60: add r3, ip, r3 mov r2, #96 str r2, [r3, #2056] @@ -329,9 +333,9 @@ FlashEraseCmd: mov r2, #208 str r2, [r3, #2056] ldr pc, [sp], #4 -.L65: +.L66: .align 2 -.L64: +.L65: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -342,7 +346,7 @@ FlashProgDpSecondCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L68 + ldr ip, .L69 mov r2, r1, lsr #16 str lr, [sp, #-4]! .save {lr} @@ -362,9 +366,9 @@ FlashProgDpSecondCmd: str r2, [r3, #2052] ldr lr, [sp], #4 b FlashSetRandomizer -.L69: +.L70: .align 2 -.L68: +.L69: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -377,24 +381,24 @@ FlashProgSecondCmd: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L72 + ldr r3, .L73 add r0, r3, r0, asl #3 - ldr r3, .L72+4 + ldr r3, .L73+4 ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] ldr r3, [r3, #4] add r4, r4, r5, asl #8 - ldr r0, .L72+8 + ldr r0, .L73+8 blx r3 mov r3, #16 str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, pc} -.L73: +.L74: .align 2 -.L72: +.L73: .word .LANCHOR0 .word arm_delay_ops - .word 64424500 + .word 214748300 .fnend .size FlashProgSecondCmd, .-FlashProgSecondCmd .align 2 @@ -405,7 +409,7 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L75 + ldr r2, .L76 add r0, r2, r0, asl #3 ldrb r2, [r2, #54] @ zero_extendqisi2 ldrb r1, [r0, #16] @ zero_extendqisi2 @@ -413,9 +417,9 @@ FlashProgDpFirstCmd: add r3, r3, r1, asl #8 str r2, [r3, #2056] bx lr -.L76: +.L77: .align 2 -.L75: +.L76: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd @@ -427,23 +431,23 @@ js_hash: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L81 + ldr r3, .L82 add r1, r0, r1 -.L78: +.L79: cmp r0, r1 - beq .L80 + beq .L81 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 .L78 -.L80: + b .L79 +.L81: mov r0, r3 bx lr -.L82: +.L83: .align 2 -.L81: +.L82: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -470,30 +474,30 @@ BuildFlashLsbPageTable: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r1 - bne .L85 - ldr r3, .L115 -.L86: + bne .L86 + ldr r3, .L121 +.L87: mov r2, r0, asl #1 strh r0, [r2, r3] @ movhi add r0, r0, #1 cmp r0, #256 - bne .L86 -.L90: - mov r2, #1024 - ldr r0, .L115+4 + bne .L87 +.L91: + mov r2, #2048 + ldr r0, .L121+4 mov r1, #255 uxth r4, r4 bl ftl_memset - ldr r2, .L115 + ldr r2, .L121 mov r3, #0 - add r0, r2, #512 - b .L87 -.L85: + add r0, r2, #1024 + b .L88 +.L86: cmp r0, #1 - bne .L88 - ldr ip, .L115 + bne .L89 + ldr ip, .L121 mov r3, #0 -.L89: +.L90: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #3 @@ -508,14 +512,14 @@ BuildFlashLsbPageTable: movne r2, r1 cmp r3, #256 strh r2, [lr, ip] @ movhi - bne .L89 - b .L90 -.L88: + bne .L90 + b .L91 +.L89: cmp r0, #2 - bne .L91 - ldr r1, .L115 + bne .L92 + ldr r1, .L121 mov r3, #0 -.L92: +.L93: uxth r2, r3 mov r0, r3, asl #1 cmp r2, #1 @@ -524,14 +528,14 @@ BuildFlashLsbPageTable: subhi r2, ip, #1 cmp r3, #256 strh r2, [r0, r1] @ movhi - bne .L92 - b .L90 -.L91: - cmp r0, #3 bne .L93 - ldr ip, .L115 + b .L91 +.L92: + cmp r0, #3 + bne .L94 + ldr ip, .L121 mov r3, #0 -.L94: +.L95: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #5 @@ -546,13 +550,13 @@ BuildFlashLsbPageTable: movne r2, r1 cmp r3, #256 strh r2, [lr, ip] @ movhi - bne .L94 - b .L90 -.L93: + bne .L95 + b .L91 +.L94: cmp r0, #4 mov r3, #0 - bne .L95 - ldr r2, .L115+8 + bne .L96 + ldr r2, .L121+8 strh r3, [r2, #76] @ movhi mov r3, #1 strh r0, [r2, #84] @ movhi @@ -567,7 +571,7 @@ BuildFlashLsbPageTable: strh r3, [r2, #88] @ movhi mov r3, #8 strh r3, [r2, #90]! @ movhi -.L96: +.L97: tst r3, #1 movne r1, #7 moveq r1, #6 @@ -576,31 +580,31 @@ BuildFlashLsbPageTable: strh r1, [r2, #2]! @ movhi uxth r3, r3 cmp r3, #256 - bne .L96 - b .L90 -.L95: - cmp r0, #5 bne .L97 - ldr r2, .L115 -.L98: + b .L91 +.L96: + cmp r0, #5 + bne .L98 + ldr r2, .L121 +.L99: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #16 - bne .L98 - ldr r2, .L115+12 -.L99: + bne .L99 + ldr r2, .L121+12 +.L100: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, #496 - bne .L99 - b .L90 -.L97: - cmp r0, #6 bne .L100 - ldr r1, .L115+16 -.L101: + b .L91 +.L98: + cmp r0, #6 + bne .L101 + ldr r1, .L121+16 +.L102: cmp r3, #5 add r2, r3, r3, asl #1 movls r0, #0 @@ -615,12 +619,12 @@ BuildFlashLsbPageTable: strh r2, [r1, #2]! @ movhi uxth r3, r3 cmp r3, #256 - bne .L101 - b .L90 -.L100: + bne .L102 + b .L91 +.L101: cmp r0, #9 - bne .L90 - ldr r2, .L115+8 + bne .L103 + ldr r2, .L121+8 movw r1, #509 strh r3, [r2, #76] @ movhi mov r3, #1 @@ -628,33 +632,53 @@ BuildFlashLsbPageTable: mov r3, #2 strh r3, [r2, #80]! @ movhi mov r3, #3 -.L102: +.L104: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L102 - b .L90 -.L87: + bne .L104 + b .L91 +.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 + bne .L105 + ldr r2, .L121+20 + movw r1, #961 +.L106: + strh r3, [r2, #2]! @ movhi + add r3, r3, #2 + uxth r3, r3 + cmp r3, r1 + bne .L106 + b .L91 +.L88: uxth r1, r3 cmp r1, r4 - bcs .L114 + bcs .L120 mov r1, r3, asl #1 add r3, r3, #1 ldrh r1, [r1, r2] mov ip, r1, asl #1 strh r1, [r0, ip] @ movhi - b .L87 -.L114: + b .L88 +.L120: ldmfd sp!, {r4, pc} -.L116: +.L122: .align 2 -.L115: +.L121: .word .LANCHOR0+76 - .word .LANCHOR0+588 + .word .LANCHOR0+1100 .word .LANCHOR0 .word .LANCHOR0+106 .word .LANCHOR0+74 + .word .LANCHOR0+200 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 2 @@ -678,100 +702,100 @@ 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, .L133 - ldr r4, .L133+4 - ldr r9, .L133+8 + ldr r3, .L139 + ldr r4, .L139+4 + ldr r9, .L139+8 ldrh r0, [r3, #10] - strb r5, [r4, #1612] - strb r5, [r4, #1613] + strb r5, [r4, #3148] + strb r5, [r4, #3149] bl FlashBlockAlignInit mov r1, r5 mov r2, #8 - add r0, r4, #1616 + add r0, r4, #3152 bl ftl_memset mov r1, r5 mov r2, #32 - ldr r0, .L133+12 + ldr r0, .L139+12 bl ftl_memset - ldr r0, .L133+16 + ldr r0, .L139+16 mov r1, r5 mov r2, #128 bl ftl_memset - ldr r7, [r4, #1784] + ldr r7, [r4, #3320] add r6, r7, #1 -.L120: +.L126: mov r0, r6 add r1, r9, r5, asl #3 ldrb r2, [r7] @ zero_extendqisi2 bl FlashMemCmp8 - ldr r8, .L133+8 + ldr r8, .L139+8 cmp r0, #0 - bne .L119 - ldrb r3, [r4, #1612] @ zero_extendqisi2 + bne .L125 + ldrb r3, [r4, #3148] @ zero_extendqisi2 add r2, r4, r3, asl #2 - str r0, [r2, #1624] + str r0, [r2, #3160] add r2, r3, #1 add r3, r4, r3 - strb r2, [r4, #1612] - strb r5, [r3, #1616] -.L119: + strb r2, [r4, #3148] + strb r5, [r3, #3152] +.L125: add r5, r5, #1 cmp r5, #4 - bne .L120 - ldrb r3, [r4, #1612] @ zero_extendqisi2 - strb r3, [r4, #1613] + bne .L126 + ldrb r3, [r4, #3148] @ zero_extendqisi2 + strb r3, [r4, #3149] ldrb r3, [r7, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L121 -.L125: + beq .L127 +.L131: ldrb r3, [r7, #13] @ zero_extendqisi2 - ldrb r2, [r4, #1612] @ zero_extendqisi2 + ldrb r2, [r4, #3148] @ zero_extendqisi2 smulbb r2, r2, r3 ldrh r3, [r7, #14] smulbb r3, r2, r3 - movw r2, #1788 + movw r2, #3324 strh r3, [r4, r2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L121: - ldr r3, .L133+4 +.L127: + ldr r3, .L139+4 mov r5, #0 ldr r9, [r3, #4] -.L124: +.L130: mov r0, r6 add r1, r8, r5, asl #3 ldrb r2, [r7] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L122 + bne .L128 ldrb r1, [r7, #13] @ zero_extendqisi2 ldrh r3, [r7, #14] - ldrb r2, [r4, #1612] @ zero_extendqisi2 + ldrb r2, [r4, #3148] @ zero_extendqisi2 mul r1, r9, r1 and r3, r3, #65280 add r0, r4, r2, asl #2 mul r3, r3, r1 - str r3, [r0, #1624] + str r3, [r0, #3160] ldrb r1, [r7, #23] @ zero_extendqisi2 cmp r1, #0 movne r3, r3, asl #1 - strne r3, [r0, #1624] + strne r3, [r0, #3160] add r3, r2, #1 add r2, r4, r2 - strb r3, [r4, #1612] - strb r5, [r2, #1616] -.L122: + strb r3, [r4, #3148] + strb r5, [r2, #3152] +.L128: add r5, r5, #1 cmp r5, #4 - bne .L124 - b .L125 -.L134: + bne .L130 + b .L131 +.L140: .align 2 -.L133: +.L139: .word .LANCHOR1+256 .word .LANCHOR0 .word IDByte - .word .LANCHOR0+1624 - .word .LANCHOR0+1656 + .word .LANCHOR0+3160 + .word .LANCHOR0+3192 .fnend .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 @@ -784,14 +808,14 @@ FlashReadIdbData: stmfd sp!, {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L137 + ldr r1, .L143 bl ftl_memcpy mov r0, #0 ldmfd sp!, {r3, pc} -.L138: +.L144: .align 2 -.L137: - .word .LANCHOR0+1792 +.L143: + .word .LANCHOR0+3328 .fnend .size FlashReadIdbData, .-FlashReadIdbData .align 2 @@ -804,43 +828,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, .L152 -.L143: + ldr r8, .L158 +.L149: mov r4, r6, asl #5 - ldr r1, .L152+4 + ldr r1, .L158+4 add r0, r4, #1 ldrb r2, [r8, r6, asl #5] @ zero_extendqisi2 add r0, r8, r0 - ldr r5, .L152+8 + ldr r5, .L158+8 bl FlashMemCmp8 add r9, r5, #288 subs r7, r0, #0 - bne .L140 + bne .L146 adds r9, r9, r4 - beq .L146 + beq .L152 add r4, r5, r4 - add r5, r5, #2880 + add r5, r5, #2944 ldrb r3, [r4, #310] @ zero_extendqisi2 mov r4, r7 - b .L145 -.L140: + b .L151 +.L146: add r6, r6, #1 - cmp r6, #81 - bne .L143 - b .L146 -.L151: + cmp r6, #83 + bne .L149 + b .L152 +.L157: add r4, r4, #1 cmp r4, #4 - beq .L144 -.L145: + beq .L150 +.L151: ldrb r2, [r5, r4, asl #5] @ zero_extendqisi2 cmp r2, r3 - bne .L151 -.L144: - ldr r6, .L152+12 + bne .L157 +.L150: + ldr r6, .L158+12 mov r2, #32 - ldr r1, .L152+16 - ldr r0, .L152+20 + ldr r1, .L158+16 + ldr r0, .L158+20 add r1, r1, r4, asl #5 bl ftl_memcpy mov r0, r6 @@ -849,20 +873,20 @@ FlashLoadPhyInfoInRam: bl ftl_memcpy ldrh r0, [r6, #10] bl FlashBlockAlignInit - b .L141 -.L146: + b .L147 +.L152: mvn r7, #0 -.L141: +.L147: mov r0, r7 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L153: +.L159: .align 2 -.L152: +.L158: .word .LANCHOR1+288 .word IDByte .word .LANCHOR1 .word .LANCHOR1+256 - .word .LANCHOR1+2880 + .word .LANCHOR1+2944 .word .LANCHOR0+44 .fnend .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam @@ -874,29 +898,29 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L155 - ldr r2, [r3, #3840] + ldr r3, .L161 + ldr r2, [r3, #-2808] ldr r1, [r2] - str r1, [r3, #3844] + str r1, [r3, #-2804] ldr r1, [r2, #4] - str r1, [r3, #3848] + str r1, [r3, #-2800] ldr r1, [r2, #8] - str r1, [r3, #3852] + str r1, [r3, #-2796] ldr r1, [r2, #12] - str r1, [r3, #3856] + str r1, [r3, #-2792] ldr r1, [r2, #304] - str r1, [r3, #3860] + str r1, [r3, #-2788] ldr r1, [r2, #308] - str r1, [r3, #3864] + str r1, [r3, #-2784] ldr r1, [r2, #336] ldr r2, [r2, #344] - str r1, [r3, #3868] - str r2, [r3, #3872] + str r1, [r3, #-2780] + str r2, [r3, #-2776] bx lr -.L156: +.L162: .align 2 -.L155: - .word .LANCHOR0 +.L161: + .word .LANCHOR2 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend .global __aeabi_uidiv @@ -911,52 +935,52 @@ LogAddr2PhyAddr: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r9, r3 - ldr r3, .L163 - mov r10, r1 - ldr r7, .L163+4 - mov r6, r0 - ldr ip, [r0, #4] + ldr r3, .L169 + mov fp, r1 + ldr r7, .L169+4 + mov r5, r0 mov r8, r2 ldrh r4, [r3, #12] ldrh r3, [r3, #14] - bic ip, ip, #-2147483648 - ldrh fp, [r7, #4] - ubfx r5, ip, #10, #16 - str ip, [sp, #4] + ldrh r10, [r7, #4] smulbb r4, r4, r3 ldrb r3, [r7] @ zero_extendqisi2 - mov r0, r5 cmp r3, #1 - moveq fp, fp, asl #1 + ldr r3, [r0, #4] + moveq r10, r10, asl #1 + bic r3, r3, #-2147483648 + str r3, [sp, #4] + ubfx r6, r3, #10, #16 uxth r4, r4 - uxtheq fp, fp + uxtheq r10, r10 mov r1, r4 + mov r0, r6 bl __aeabi_uidiv - cmp r10, #1 + cmp fp, #1 uxth r0, r0 - ldr ip, [sp, #4] + ldr r3, [sp, #4] smulbb r4, r0, r4 - rsb r5, r4, r5 - ubfx r4, ip, #0, #10 - uxth r5, r5 - bne .L159 - ldrb r3, [r7, #3904] @ zero_extendqisi2 + ubfx r1, r3, #0, #10 + rsb r6, r4, r6 + uxth r6, r6 + bne .L165 + ldr r3, .L169+8 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L163+4 - addeq r4, r3, r4, asl #1 - ldreqh r4, [r4, #76] -.L159: - add ip, r7, r0, asl #2 + addeq r1, r7, r1, asl #1 + ldreqh r1, [r1, #76] +.L165: + add lr, r7, r0, asl #2 ldrb r3, [sp, #48] @ zero_extendqisi2 - ldr r1, [ip, #1624] + ldr ip, [lr, #3160] cmp r3, #1 - mla r1, fp, r5, r1 - add r4, r1, r4 - str r4, [r8] + mla ip, r10, r6, ip + add r1, ip, r1 + str r1, [r8] str r0, [r9] movls r0, #0 - ldrhi r0, [r6, #4] - ldrhi r3, [r6, #40] + ldrhi r0, [r5, #4] + ldrhi r3, [r5, #40] addhi r0, r0, #1024 rsbhi r0, r3, r0 clzhi r0, r0 @@ -964,11 +988,12 @@ LogAddr2PhyAddr: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L164: +.L170: .align 2 -.L163: - .word .LANCHOR0+3876 +.L169: + .word .LANCHOR2-2772 .word .LANCHOR0 + .word .LANCHOR2 .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr .align 2 @@ -984,44 +1009,46 @@ ftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r3, .L170 + ldr r2, .L176 mov ip, #1 - add r3, r3, #1616 - ldr r2, [r3, #168] - ldrb r1, [r2, #9] @ zero_extendqisi2 - ldr r2, [r3, #-1612] - smulbb r2, r1, r2 - strh r2, [r4, #4] @ unaligned - ldrb r2, [r3, #2289] @ zero_extendqisi2 - strb r2, [r4, #7] - ldr r2, [r3, #2292] - str r2, [r4] @ unaligned - ldr r2, [r3, #168] - ldrb r0, [r3, #-4] @ zero_extendqisi2 - ldrb r1, [r2, #9] @ zero_extendqisi2 + add r2, r2, #3152 + ldr r3, [r2, #168] + ldrb r1, [r3, #9] @ zero_extendqisi2 + ldr r3, [r2, #-3148] + smulbb r3, r1, r3 + strh r3, [r4, #4] @ unaligned + ldr r3, .L176+4 + 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 + ldrb r1, [r3, #9] @ zero_extendqisi2 strb r1, [r4, #6] mov r1, #32 strb r1, [r4, #8] - ldrb r2, [r2, #7] @ zero_extendqisi2 - strb r2, [r4, #9] - mov r2, #0 - strb r2, [r4, #10] -.L166: - uxtb r1, r2 + 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 .L169 - ldrb lr, [r2, r3] @ zero_extendqisi2 - add r2, r2, #1 + bcs .L175 + ldrb lr, [r3, r2] @ zero_extendqisi2 + add r3, r3, #1 ldrb r1, [r4, #10] @ zero_extendqisi2 orr r1, r1, ip, asl lr strb r1, [r4, #10] - b .L166 -.L169: + b .L172 +.L175: ldmfd sp!, {r4, pc} -.L171: +.L177: .align 2 -.L170: +.L176: .word .LANCHOR0 + .word .LANCHOR2 .fnend .size ftl_read_flash_info, .-ftl_read_flash_info .align 2 @@ -1032,15 +1059,15 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L173 - ldr r2, [r3, #3912] - str r0, [r3, #3912] + ldr r3, .L179 + ldr r2, [r3, #-2736] + str r0, [r3, #-2736] mov r0, r2 bx lr -.L174: +.L180: .align 2 -.L173: - .word .LANCHOR0 +.L179: + .word .LANCHOR2 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet .align 2 @@ -1051,13 +1078,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L176 - ldr r3, [r3, #1784] + ldr r3, .L182 + ldr r3, [r3, #3320] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L177: +.L183: .align 2 -.L176: +.L182: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -1080,16 +1107,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L180 + ldr r3, .L186 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 -.L181: +.L187: .align 2 -.L180: +.L186: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -1101,17 +1128,17 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L183 - ldr r2, [r3, #3840] + ldr r3, .L189 + 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 -.L184: +.L190: .align 2 -.L183: - .word .LANCHOR0 +.L189: + .word .LANCHOR2 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara .align 2 @@ -1122,15 +1149,15 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L186 + ldr r3, .L192 orr r0, r0, #16640 - ldr r3, [r3, #3840] + ldr r3, [r3, #-2808] str r0, [r3, #344] bx lr -.L187: +.L193: .align 2 -.L186: - .word .LANCHOR0 +.L192: + .word .LANCHOR2 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv .align 2 @@ -1141,18 +1168,18 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L191 + ldr r3, .L197 cmp r0, #0 - ldr r2, [r3, #3840] + ldr r2, [r3, #-2808] ldr r3, [r2] bfieq r3, r0, #13, #1 orrne r3, r3, #253952 str r3, [r2] bx lr -.L192: +.L198: .align 2 -.L191: - .word .LANCHOR0 +.L197: + .word .LANCHOR2 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode .align 2 @@ -1163,18 +1190,18 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L200 + ldr r3, .L206 ands r1, r0, #6 - ldr r2, [r3, #3840] + ldr r2, [r3, #-2808] ldr r3, [r2] bfieq r3, r1, #13, #1 - beq .L196 + beq .L202 orr r3, r3, #24576 movw r1, #8322 bfc r3, #15, #1 str r1, [r2, #344] orr r3, r3, #196608 - ldr r1, .L200+4 + ldr r1, .L206+4 tst r0, #4 orrne r3, r3, #32768 str r1, [r2, #304] @@ -1182,14 +1209,14 @@ NandcSetMode: str r1, [r2, #308] mov r1, #39 str r1, [r2, #308] -.L196: +.L202: str r3, [r2] mov r0, #0 bx lr -.L201: +.L207: .align 2 -.L200: - .word .LANCHOR0 +.L206: + .word .LANCHOR2 .word 1052675 .fnend .size NandcSetMode, .-NandcSetMode @@ -1201,7 +1228,7 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L203 + ldr r2, .L209 add r0, r2, r0, asl #3 mov r2, #1 ldr r1, [r0, #12] @@ -1211,9 +1238,9 @@ NandcFlashCs: bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L204: +.L210: .align 2 -.L203: +.L209: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -1225,7 +1252,7 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L206 + ldr r3, .L212 add r0, r3, r0, asl #3 ldr r2, [r0, #12] ldr r3, [r2] @@ -1233,9 +1260,9 @@ NandcFlashDeCs: bfc r3, #17, #1 str r3, [r2] bx lr -.L207: +.L213: .align 2 -.L206: +.L212: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs @@ -1249,18 +1276,18 @@ NandcDelayns: stmfd sp!, {r3, lr} .save {r3, lr} add r0, r0, #996 - ldr r3, .L210 + ldr r3, .L216 add r0, r0, #3 umull r0, r1, r0, r3 - ldr r3, .L210+4 + ldr r3, .L216+4 ldr r3, [r3, #8] mov r0, r1, lsr #6 blx r3 mov r0, #0 ldmfd sp!, {r3, pc} -.L211: +.L217: .align 2 -.L210: +.L216: .word 274877907 .word arm_delay_ops .fnend @@ -1275,7 +1302,7 @@ FlashReadStatus: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, #112 - ldr r3, .L214 + ldr r3, .L220 add r0, r3, r0, asl #3 ldrb r4, [r0, #16] @ zero_extendqisi2 ldr r5, [r0, #12] @@ -1286,9 +1313,9 @@ FlashReadStatus: bl NandcDelayns ldr r0, [r5, r4, asl #8] ldmfd sp!, {r3, r4, r5, pc} -.L215: +.L221: .align 2 -.L214: +.L220: .word .LANCHOR0 .fnend .size FlashReadStatus, .-FlashReadStatus @@ -1302,51 +1329,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, .L226 + ldr r8, .L232 mov r5, r0 - ldr r10, .L226+4 + ldr r10, .L232+4 mov r6, r1 - add r9, r8, #3008 + add r9, r8, #3072 mov r4, #0 -.L217: +.L223: ldrb r3, [r10] @ zero_extendqisi2 cmp r4, r3 - bcs .L225 + bcs .L231 mov r3, #85 str r3, [r5, #8] ldrsb r3, [r4, r9] mov r0, #200 str r3, [r5, #4] bl NandcDelayns - ldr r3, .L226+8 + ldr r3, .L232+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #34 addeq r3, r4, r7 addeq r3, r9, r3 - beq .L224 + beq .L230 cmp r3, #35 addne r3, r8, r6 - addne r3, r3, #3152 + addne r3, r3, #3216 ldrnesb r3, [r3] - bne .L223 - ldr r3, .L226+12 + bne .L229 + ldr r3, .L232+12 add r2, r4, r7 add r3, r3, r2 -.L224: +.L230: ldrsb r3, [r3, #5] -.L223: +.L229: str r3, [r5] add r4, r4, #1 - b .L217 -.L225: + b .L223 +.L231: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L227: +.L233: .align 2 -.L226: +.L232: .word .LANCHOR1 .word g_maxRegNum .word g_retryMode - .word .LANCHOR1+3056 + .word .LANCHOR1+3120 .fnend .size ToshibaSetRRPara, .-ToshibaSetRRPara .align 2 @@ -1356,21 +1383,21 @@ SamsungSetRRPara: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L233 + ldr r3, .L239 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, .L233+4 + ldr r8, .L239+4 mov r4, #0 add r5, r1, #3 mov r6, r0 mov r7, r3 mov r9, #161 mov r10, r4 -.L229: +.L235: ldrb r3, [r8] @ zero_extendqisi2 cmp r4, r3 - bcs .L232 + bcs .L238 str r9, [r6, #8] mov r0, #300 str r10, [r6] @@ -1380,13 +1407,13 @@ SamsungSetRRPara: ldrsb r3, [r5, #1]! str r3, [r6] bl NandcDelayns - b .L229 -.L232: + b .L235 +.L238: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L234: +.L240: .align 2 -.L233: - .word .LANCHOR1+3160 +.L239: + .word .LANCHOR1+3224 .word g_maxRegNum .fnend .size SamsungSetRRPara, .-SamsungSetRRPara @@ -1400,39 +1427,42 @@ HynixSetRRPara: 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 r5, r3 - ldr r3, .L244 + mov r6, r3 + ldr r3, .L250 mov r10, r2 - ldr r4, .L244+4 - mov r6, r0 + mov r7, r0 mov r9, r1 - ldr r2, [r3, #1784] - ldrb r8, [r2, #19] @ zero_extendqisi2 + ldr r2, [r3, #3320] + ldrb r4, [r2, #19] @ zero_extendqisi2 mov r2, r0, asl #3 - cmp r8, #6 + cmp r4, #6 + ldreq r4, .L250+4 addeq r4, r4, r0, asl #6 addeq r4, r4, #20 - addeq r4, r4, r5, asl #2 - beq .L237 - cmp r8, #7 - bne .L238 - mov r8, #160 - add r1, r5, r5, asl #2 - mla r4, r8, r0, r4 + addeq r4, r4, r6, asl #2 + beq .L243 +.L242: + cmp r4, #7 + bne .L244 + ldr r1, .L250+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 .L237 -.L238: - cmp r8, #8 - addne r1, r5, r2 - addeq r1, r5, r5, asl #2 - ldreq r4, .L244+8 - addne r4, r4, r1, asl #3 + b .L243 +.L244: + cmp r4, #8 + addne r4, r6, r2 + addeq r1, r6, r6, asl #2 + ldrne r1, .L250+4 + ldreq r4, .L250+8 + addne r4, r1, r4, asl #3 addeq r4, r4, r1 addne r4, r4, #20 -.L237: +.L243: add r3, r3, r2 - mov r0, r6 + mov r0, r7 sub r9, r9, #1 sub r4, r4, #1 ldrb fp, [r3, #16] @ zero_extendqisi2 @@ -1442,38 +1472,38 @@ HynixSetRRPara: add r10, r10, r9 mov fp, fp, asl #8 mov r3, #54 - add r7, r8, fp - str r3, [r7, #2056] -.L240: + add r5, r8, fp + str r3, [r5, #2056] +.L246: cmp r2, r10 - beq .L243 + beq .L249 ldrb r3, [r2, #1]! @ zero_extendqisi2 mov r0, #200 - str r3, [r7, #2052] + str r3, [r5, #2052] str r2, [sp, #4] bl NandcDelayns ldrsb r3, [r4, #1]! - str r3, [r7, #2048] + str r3, [r5, #2048] ldr r2, [sp, #4] - b .L240 -.L243: + b .L246 +.L249: add r8, r8, fp mov r3, #22 - mov r0, r6 + mov r0, r7 str r3, [r8, #2056] bl NandcFlashDeCs - ldr r3, .L244+12 - add r6, r3, r6 - strb r5, [r6, #-3416] + ldr r3, .L250+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} -.L245: +.L251: .align 2 -.L244: +.L250: .word .LANCHOR0 - .word .LANCHOR0+3916 - .word .LANCHOR0+3944 + .word .LANCHOR2-2732 + .word .LANCHOR2-2704 .word .LANCHOR2 .fnend .size HynixSetRRPara, .-HynixSetRRPara @@ -1484,37 +1514,38 @@ FlashSetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L254 - ldr r2, [r3, #1784] - ldrb r2, [r2, #19] @ zero_extendqisi2 - sub r2, r2, #1 - cmp r2, #7 + ldr r3, .L260 + ldr r3, [r3, #3320] + ldrb r3, [r3, #19] @ zero_extendqisi2 + sub r3, r3, #1 + cmp r3, #7 bxhi lr stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - mov r5, r3 - ldr r6, .L254+4 mov r4, #0 -.L247: - ldrb r3, [r6, r4, asl #3] @ zero_extendqisi2 + ldr r5, .L260+4 + ldr r6, .L260+8 +.L253: + ldrb r3, [r5, r4, asl #3] @ zero_extendqisi2 uxtb r0, r4 cmp r3, #173 - bne .L248 - ldrb r1, [r5, #3917] @ zero_extendqisi2 + bne .L254 + ldrb r1, [r6, #-2731] @ zero_extendqisi2 mov r3, #0 - ldr r2, .L254+8 + ldr r2, .L260+12 bl HynixSetRRPara -.L248: +.L254: add r4, r4, #1 cmp r4, #4 - bne .L247 + bne .L253 ldmfd sp!, {r4, r5, r6, pc} -.L255: +.L261: .align 2 -.L254: +.L260: .word .LANCHOR0 .word IDByte - .word .LANCHOR0+3920 + .word .LANCHOR2 + .word .LANCHOR2-2728 .fnend .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .align 2 @@ -1524,11 +1555,11 @@ FlashReadStatusEN: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L267 + ldr ip, .L273 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} add r0, ip, r0, asl #3 - ldr r3, [ip, #1784] + ldr r3, [ip, #3320] ldrb r5, [r0, #16] @ zero_extendqisi2 ldr r4, [r0, #12] ldrb r3, [r3, #8] @ zero_extendqisi2 @@ -1538,7 +1569,7 @@ FlashReadStatusEN: add r5, r5, #8 movne r2, #112 strne r2, [r3, #2056] - bne .L261 + bne .L267 cmp r2, #0 add r3, r4, r3 ldrneb r2, [ip, #58] @ zero_extendqisi2 @@ -1548,25 +1579,25 @@ FlashReadStatusEN: cmp r0, #0 addne ip, r4, r5, asl #8 movne r2, #0 - beq .L261 -.L260: + beq .L267 +.L266: cmp r2, r0 - bcs .L261 + bcs .L267 mov r3, r2, asl #3 add r2, r2, #1 mov r3, r1, lsr r3 uxtb r3, r3 str r3, [ip, #4] - b .L260 -.L261: + b .L266 +.L267: mov r0, #80 bl NandcDelayns ldr r0, [r4, r5, asl #8] uxtb r0, r0 ldmfd sp!, {r3, r4, r5, pc} -.L268: +.L274: .align 2 -.L267: +.L273: .word .LANCHOR0 .fnend .size FlashReadStatusEN, .-FlashReadStatusEN @@ -1582,15 +1613,15 @@ FlashWaitReadyEN: mov r4, r0 mov r5, r1 mov r6, r2 -.L273: +.L279: mov r0, r4 mov r1, r5 mov r2, r6 bl FlashReadStatusEN cmp r0, #255 - beq .L273 + beq .L279 tst r0, #64 - beq .L273 + beq .L279 ldmfd sp!, {r4, r5, r6, pc} .fnend .size FlashWaitReadyEN, .-FlashWaitReadyEN @@ -1603,40 +1634,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, .L285 + ldr r5, .L291 add r4, r5, r0, asl #4 - ldr r3, [r4, #1664] - ldrb r7, [r4, #1656] @ zero_extendqisi2 + ldr r3, [r4, #3200] + ldrb r7, [r4, #3192] @ zero_extendqisi2 cmp r3, #0 - beq .L279 + beq .L285 mov r6, r0 mov r0, r7 add r5, r5, r6, asl #2 bl NandcFlashCs - ldr r1, [r4, #1660] + ldr r1, [r4, #3196] mov r0, r7 - ldr r2, [r5, #1624] + ldr r2, [r5, #3160] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN mov r5, r0 mov r0, r7 bl NandcFlashDeCs - ldr r2, [r4, #1664] + ldr r2, [r4, #3200] sbfx r3, r5, #0, #1 str r3, [r2] mov r2, #0 - ldr r1, [r4, #1668] - str r2, [r4, #1664] + ldr r1, [r4, #3204] + str r2, [r4, #3200] cmp r1, r2 strne r3, [r1] - strne r2, [r4, #1668] -.L279: + strne r2, [r4, #3204] +.L285: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L286: +.L292: .align 2 -.L285: +.L291: .word .LANCHOR0 .fnend .size FlashWaitCmdDone, .-FlashWaitCmdDone @@ -1646,7 +1677,7 @@ flash_read_ecc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L289 + ldr r2, .L295 stmfd sp!, {r4, lr} .save {r4, lr} add r0, r2, r0, asl #3 @@ -1672,9 +1703,9 @@ flash_read_ecc: cmp r0, r3 movcc r0, r3 ldmfd sp!, {r4, pc} -.L290: +.L296: .align 2 -.L289: +.L295: .word .LANCHOR0 .fnend .size flash_read_ecc, .-flash_read_ecc @@ -1685,34 +1716,34 @@ NandcWaitFlashReadyNoDelay: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L297 + ldr r3, .L303 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, asl #3 - ldr r4, .L297+4 + ldr r4, .L303+4 ldr r5, [r0, #12] -.L293: +.L299: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L294 + bne .L300 mov r0, #10 bl NandcDelayns subs r4, r4, #1 - bne .L293 + bne .L299 mvn r0, #0 - b .L292 -.L294: + b .L298 +.L300: mov r0, #0 -.L292: +.L298: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L298: +.L304: .align 2 -.L297: +.L303: .word .LANCHOR0 .word 100000 .fnend @@ -1724,36 +1755,36 @@ NandcWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L305 + ldr r3, .L311 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 add r0, r3, r0, asl #3 - ldr r4, .L305+4 + ldr r4, .L311+4 ldr r5, [r0, #12] mov r0, #150 bl NandcDelayns -.L301: +.L307: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L302 + bne .L308 mov r0, #10 bl NandcDelayns subs r4, r4, #1 - bne .L301 + bne .L307 mvn r0, #0 - b .L300 -.L302: + b .L306 +.L308: mov r0, #0 -.L300: +.L306: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L306: +.L312: .align 2 -.L305: +.L311: .word .LANCHOR0 .word 100000 .fnend @@ -1765,7 +1796,7 @@ FlashReset: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L309 + ldr r3, .L315 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} add r3, r3, r0, asl #3 @@ -1781,9 +1812,9 @@ FlashReset: mov r0, r4 ldmfd sp!, {r4, r5, r6, lr} b NandcFlashDeCs -.L310: +.L316: .align 2 -.L309: +.L315: .word .LANCHOR0 .fnend .size FlashReset, .-FlashReset @@ -1796,14 +1827,15 @@ flash_enter_slc_mode: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r4, .L314 - ldrb r3, [r4, #3904] @ zero_extendqisi2 + ldr r3, .L320 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r3, r4, r5, pc} mov r5, r0 bl NandcFlashCs - add r3, r4, r5, asl #3 + ldr r3, .L320+4 mov r0, #100 + add r3, r3, r5, asl #3 ldr r4, [r3, #12] ldrb r3, [r3, #16] @ zero_extendqisi2 add r4, r4, r3, asl #8 @@ -1827,9 +1859,10 @@ flash_enter_slc_mode: str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L315: +.L321: .align 2 -.L314: +.L320: + .word .LANCHOR2 .word .LANCHOR0 .fnend .size flash_enter_slc_mode, .-flash_enter_slc_mode @@ -1842,14 +1875,15 @@ flash_exit_slc_mode: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r4, .L319 - ldrb r3, [r4, #3904] @ zero_extendqisi2 + ldr r3, .L325 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r3, r4, r5, pc} mov r5, r0 bl NandcFlashCs - add r3, r4, r5, asl #3 + ldr r3, .L325+4 mov r0, #100 + add r3, r3, r5, asl #3 ldr r4, [r3, #12] ldrb r3, [r3, #16] @ zero_extendqisi2 add r4, r4, r3, asl #8 @@ -1874,9 +1908,10 @@ flash_exit_slc_mode: str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L320: +.L326: .align 2 -.L319: +.L325: + .word .LANCHOR2 .word .LANCHOR0 .fnend .size flash_exit_slc_mode, .-flash_exit_slc_mode @@ -1918,14 +1953,14 @@ FlashSetInterfaceMode: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L346 + ldr r3, .L352 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, #-3412] @ zero_extendqisi2 + ldrb r2, [r3, #-1876] @ zero_extendqisi2 mov r4, #239 - ldr r7, .L346+4 + ldr r7, .L352+4 mov r5, #128 and r3, r2, #1 and r2, r2, #4 @@ -1937,71 +1972,71 @@ FlashSetInterfaceMode: mov r9, #32 mov r10, #5 str r3, [sp] -.L333: - ldr r3, .L346+8 +.L339: + ldr r3, .L352+8 ldrb ip, [lr, r7] @ zero_extendqisi2 ldr r1, [r3, lr]! cmp ip, #69 cmpne ip, #152 ldrb r3, [r3, #4] @ zero_extendqisi2 - beq .L324 + beq .L330 cmp ip, #44 cmpne ip, #173 - bne .L325 -.L324: + bne .L331 +.L330: cmp r0, #1 - bne .L326 + bne .L332 ldr fp, [sp, #4] cmp fp, #0 - beq .L325 + beq .L331 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r0, [fp, #2052] - beq .L345 + beq .L351 cmp ip, #44 streq r0, [fp, #2052] strne r5, [fp, #2052] streq r10, [fp, #2048] strne r0, [fp, #2048] - b .L331 -.L326: + b .L337 +.L332: ldr fp, [sp] cmp fp, #0 - beq .L325 + beq .L331 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 .L331 + beq .L337 cmp ip, #44 streq r6, [fp, #2052] streq r8, [fp, #2048] - beq .L331 + beq .L337 str r5, [fp, #2052] -.L345: +.L351: str r2, [fp, #2048] -.L331: +.L337: add r3, r1, r3 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L325: +.L331: add lr, lr, #8 cmp lr, #32 - bne .L333 + bne .L339 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} -.L347: +.L353: .align 2 -.L346: +.L352: .word .LANCHOR2 .word IDByte .word .LANCHOR0+12 @@ -2014,11 +2049,11 @@ FlashReadSpare: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L350 + ldr ip, .L356 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} add ip, ip, r0, asl #3 - ldr r3, .L350+4 + ldr r3, .L356+4 mov r5, r2 ldrb r2, [ip, #16] @ zero_extendqisi2 ldr r4, [ip, #12] @@ -2042,9 +2077,9 @@ FlashReadSpare: ldr r3, [r4, #2048] strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L351: +.L357: .align 2 -.L350: +.L356: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2056,7 +2091,7 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L354 + ldr r2, .L360 stmfd sp!, {r4, lr} .save {r4, lr} add r2, r2, r0, asl #3 @@ -2086,9 +2121,9 @@ SandiskProgTestBadBlock: ldr r0, [r4, #2048] and r0, r0, #1 ldmfd sp!, {r4, pc} -.L355: +.L361: .align 2 -.L354: +.L360: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -2109,16 +2144,16 @@ SandiskSetRRPara: mov r0, #200 mov r4, r1 bl NandcDelayns - ldr r1, .L364 - ldr r0, .L364+4 + ldr r1, .L370 + ldr r0, .L370+4 add r4, r4, r4, asl #2 - ldr ip, .L364+8 + ldr ip, .L370+8 sub lr, r1, #48 mov r2, #0 -.L357: +.L363: ldrb r3, [r0] @ zero_extendqisi2 cmp r2, r3 - bcs .L363 + bcs .L369 ldrb r3, [ip] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 @@ -2127,15 +2162,15 @@ SandiskSetRRPara: add r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L357 -.L363: + b .L363 +.L369: mov r0, #0 ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L365: +.L371: .align 2 -.L364: - .word .LANCHOR1+3056 +.L370: + .word .LANCHOR1+3120 .word g_maxRegNum .word g_retryMode .fnend @@ -2152,7 +2187,7 @@ micron_auto_read_calibration_config: mov r4, r0 mov r5, r1 bl NandcWaitFlashReady - ldr r3, .L368 + ldr r3, .L374 mov r0, #200 add r2, r3, r4, asl #3 ldrb r4, [r2, #16] @ zero_extendqisi2 @@ -2169,9 +2204,9 @@ micron_auto_read_calibration_config: str r3, [r4, #2048] str r3, [r4, #2048] ldmfd sp!, {r3, r4, r5, pc} -.L369: +.L375: .align 2 -.L368: +.L374: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -2180,98 +2215,88 @@ micron_auto_read_calibration_config: .type FlashEraseSLc2KBlocks, %function FlashEraseSLc2KBlocks: .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, 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} mov r5, #0 - ldr r7, .L383 - .pad #24 - sub sp, sp, #24 - ldr r9, .L383+4 + ldr r8, .L388 + .pad #20 + sub sp, sp, #20 mov r6, r0 - mov r10, r1 - mov r8, r5 - ldr r3, [r7] - str r3, [sp, #20] -.L371: - cmp r8, r10 - beq .L382 - rsb r3, r8, r10 - add r2, sp, #12 + mov r9, r1 + mov r7, r5 +.L377: + cmp r7, r9 + beq .L387 + rsb r3, r7, r9 + add r2, sp, #8 add r0, r6, r5 mov r1, #0 uxtb r3, r3 str r3, [sp] - add r3, sp, #16 + add r3, sp, #12 bl LogAddr2PhyAddr - ldrb r2, [r9, #1612] @ zero_extendqisi2 - ldr r3, [sp, #16] + ldrb r2, [r8, #3148] @ zero_extendqisi2 + ldr r3, [sp, #12] cmp r3, r2 mvncs r3, #0 strcs r3, [r6, r5] - bcs .L373 - add r2, r9, r3 - add r3, r9, r3, asl #4 - ldrb r4, [r2, #1616] @ zero_extendqisi2 - strb r4, [r3, #1656] + bcs .L379 + add r2, r8, r3 + add r3, r8, r3, asl #4 + ldrb r4, [r2, #3152] @ zero_extendqisi2 + strb r4, [r3, #3192] mov r0, r4 bl NandcWaitFlashReady mov r0, r4 bl NandcFlashCs mov r2, #0 mov r0, r4 - ldr r1, [sp, #12] + ldr r1, [sp, #8] bl FlashEraseCmd mov r0, r4 bl NandcWaitFlashReady mov r0, r4 - ldr r1, [sp, #12] + ldr r1, [sp, #8] bl FlashReadStatus mov r2, #0 - ldr r3, [sp, #12] + ldr r3, [sp, #8] sbfx r0, r0, #0, #1 str r0, [r6, r5] mov r0, r4 - ldr r1, [r9, #4] + ldr r1, [r8, #4] add r1, r1, r3 bl FlashEraseCmd mov r0, r4 bl NandcWaitFlashReady mov r0, r4 - ldr r1, [sp, #12] + ldr r1, [sp, #8] bl FlashReadStatus tst r0, #1 mvnne r3, #0 strne r3, [r6, r5] ldr r3, [r6, r5] cmn r3, #1 - bne .L375 - ldr r0, .L383+8 - ldr r1, [sp, #12] + bne .L381 + ldr r0, .L388+4 + ldr r1, [sp, #8] bl printk -.L375: +.L381: mov r0, r4 bl NandcFlashDeCs -.L373: - add r8, r8, #1 +.L379: + add r7, r7, #1 add r5, r5, #36 - b .L371 -.L382: - ldr r2, [sp, #20] + b .L377 +.L387: mov r0, #0 - ldr r3, [r7] - cmp r2, r3 - beq .L377 - bl __stack_chk_fail -.L377: - add sp, sp, #24 + add sp, sp, #20 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L384: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L389: .align 2 -.L383: - .word __stack_chk_guard +.L388: .word .LANCHOR0 .word .LC1 .fnend @@ -2283,197 +2308,195 @@ HynixGetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L499 + mvn r2, #83 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, .L494 - mvn r3, #83 - mvn r1, #82 - mvn r2, #81 + mov r4, r0 + cmp r4, #2 + strb r0, [r3, #-2732] + strb r2, [r3, #-2728] + mvn r0, #82 + mvn r1, #81 + mvn r2, #80 .pad #44 sub sp, sp, #44 - mov r4, r0 - strb r3, [r7, #3920] - mvn r3, #80 - strb r0, [r7, #3916] - strb r1, [r7, #3921] - strb r2, [r7, #3922] - strb r3, [r7, #3923] - bne .L386 - mvn r3, #88 - strb r3, [r7, #3920] - ldr r3, .L494+4 + strb r0, [r3, #-2727] + strb r1, [r3, #-2726] + strb r2, [r3, #-2725] + bne .L391 + mvn r2, #88 + strb r2, [r3, #-2728] + ldr r3, .L499+4 mvn r2, #8 mov r5, #7 - strb r2, [r3, #3241] - b .L447 -.L386: - cmp r0, #3 - bne .L388 - mvn r3, #79 - strb r3, [r7, #3920] - mvn r3, #78 - strb r3, [r7, #3921] - mvn r3, #77 - strb r3, [r7, #3922] - mvn r3, #76 - strb r3, [r7, #3923] - mvn r3, #75 - strb r3, [r7, #3924] - mvn r3, #74 - strb r3, [r7, #3925] - mvn r3, #73 - strb r3, [r7, #3926] - mvn r3, #72 - b .L488 -.L388: - cmp r0, #4 - bne .L389 - mvn r0, #51 - strb r1, [r7, #3925] - strb r0, [r7, #3920] - mvn r0, #64 - strb r2, [r7, #3926] - strb r0, [r7, #3921] - mvn r0, #85 - strb r0, [r7, #3922] - mvn r0, #84 - strb r0, [r7, #3923] - mvn r0, #50 - strb r0, [r7, #3924] -.L488: - mov r5, #8 - strb r3, [r7, #3927] - mov r6, r5 - b .L387 -.L389: - cmp r0, #5 - bne .L390 - mov r3, #56 - mov r5, #8 - strb r3, [r7, #3920] - mov r3, #57 - strb r3, [r7, #3921] - mov r3, #58 - strb r3, [r7, #3922] - mov r3, #59 - strb r3, [r7, #3923] - b .L447 -.L390: - cmp r0, #6 - bne .L391 - mov r3, #14 - mov r5, #12 - strb r3, [r7, #3920] - mov r3, #15 - strb r3, [r7, #3921] - mov r3, #16 - strb r3, [r7, #3922] - mov r3, #17 - strb r3, [r7, #3923] - b .L447 + strb r2, [r3, #3305] + b .L452 .L391: - cmp r0, #7 - bne .L392 - mvn r3, #79 + cmp r4, #3 + bne .L393 + mvn r2, #79 + strb r2, [r3, #-2728] + mvn r2, #78 + strb r2, [r3, #-2727] + mvn r2, #77 + strb r2, [r3, #-2726] + mvn r2, #76 + strb r2, [r3, #-2725] + mvn r2, #75 + strb r2, [r3, #-2724] + mvn r2, #74 + strb r2, [r3, #-2723] + mvn r2, #73 + strb r2, [r3, #-2722] + mvn r2, #72 + b .L493 +.L393: + cmp r4, #4 + bne .L394 + mvn ip, #51 + strb r0, [r3, #-2723] + strb ip, [r3, #-2728] + mvn ip, #64 + strb r1, [r3, #-2722] + strb ip, [r3, #-2727] + mvn ip, #85 + strb ip, [r3, #-2726] + mvn ip, #84 + strb ip, [r3, #-2725] + mvn ip, #50 + strb ip, [r3, #-2724] +.L493: + mov r5, #8 + strb r2, [r3, #-2721] + mov r6, r5 + b .L392 +.L394: + cmp r4, #5 + bne .L395 + mov r2, #56 + mov r5, #8 + strb r2, [r3, #-2728] + mov r2, #57 + strb r2, [r3, #-2727] + mov r2, #58 + strb r2, [r3, #-2726] + mov r2, #59 + strb r2, [r3, #-2725] + b .L452 +.L395: + cmp r4, #6 + bne .L396 + mov r2, #14 mov r5, #12 - strb r3, [r7, #3920] + strb r2, [r3, #-2728] + mov r2, #15 + strb r2, [r3, #-2727] + mov r2, #16 + strb r2, [r3, #-2726] + mov r2, #17 + strb r2, [r3, #-2725] + b .L452 +.L396: + cmp r4, #7 + bne .L397 + mvn r2, #79 + mov r5, #12 + strb r2, [r3, #-2728] mov r6, #10 - mvn r3, #78 - strb r3, [r7, #3921] - mvn r3, #77 - strb r3, [r7, #3922] - mvn r3, #76 - strb r3, [r7, #3923] - mvn r3, #75 - strb r3, [r7, #3924] - mvn r3, #74 - strb r3, [r7, #3925] - mvn r3, #73 - strb r3, [r7, #3926] - mvn r3, #72 - strb r3, [r7, #3927] - mvn r3, #43 - strb r3, [r7, #3928] - mvn r3, #42 - strb r3, [r7, #3929] - b .L387 -.L392: - cmp r0, #8 + mvn r2, #78 + strb r2, [r3, #-2727] + mvn r2, #77 + strb r2, [r3, #-2726] + mvn r2, #76 + strb r2, [r3, #-2725] + mvn r2, #75 + strb r2, [r3, #-2724] + mvn r2, #74 + strb r2, [r3, #-2723] + mvn r2, #73 + strb r2, [r3, #-2722] + mvn r2, #72 + strb r2, [r3, #-2721] + mvn r2, #43 + strb r2, [r3, #-2720] + mvn r2, #42 + strb r2, [r3, #-2719] + b .L392 +.L397: + cmp r4, #8 mov r5, #7 - bne .L447 - mov r3, #6 - strb r5, [r7, #3921] - strb r3, [r7, #3920] + bne .L452 + mov r2, #6 + strb r5, [r3, #-2727] + strb r2, [r3, #-2728] mov r5, #50 - mov r3, #9 - strb r0, [r7, #3922] - strb r3, [r7, #3923] + mov r2, #9 + strb r4, [r3, #-2726] + strb r2, [r3, #-2725] mov r6, #5 - mov r3, #10 - strb r3, [r7, #3924] - b .L387 -.L447: + mov r2, #10 + strb r2, [r3, #-2724] + b .L392 +.L452: mov r6, #4 -.L387: +.L392: sub r3, r4, #1 cmp r3, #1 - bhi .L484 - ldr r10, .L494+8 + bhi .L489 + ldr r10, .L499+8 mov r9, #0 -.L393: - ldrb r1, [r7, #1612] @ zero_extendqisi2 +.L398: + ldr r3, .L499+12 uxtb r2, r9 - ldr r3, .L494 + ldrb r1, [r3, #3148] @ zero_extendqisi2 cmp r1, r2 - bls .L400 + bls .L405 add r2, r3, r2 - ldr r4, .L494+12 - ldr r1, .L494+16 - mov ip, #55 - ldrb r2, [r2, #1616] @ zero_extendqisi2 + ldr r8, .L499+16 + ldrb r2, [r2, #3152] @ zero_extendqisi2 add r3, r3, r2, asl #3 - add r4, r4, r2, asl #6 + add r4, r8, r2, asl #6 add r4, r4, #20 - ldrb r8, [r3, #16] @ zero_extendqisi2 - ldr r0, [r3, #12] + add r8, r8, #3 + ldrb r7, [r3, #16] @ zero_extendqisi2 + ldr r1, [r3, #12] mov fp, r4 mov r2, r4 - add r8, r0, r8, asl #8 -.L395: - str ip, [r8, #2056] + add r7, r1, r7, asl #8 + mov r1, #55 +.L400: + str r1, [r7, #2056] mov r0, #80 - ldrb r3, [r1, #1]! @ zero_extendqisi2 - str r2, [sp, #12] - str ip, [sp, #8] - str r3, [r8, #2052] - str r1, [sp, #4] - str r1, [sp, #16] + ldrb r3, [r8, #1]! @ zero_extendqisi2 + str r2, [sp, #4] + str r1, [sp] + str r3, [r7, #2052] bl NandcDelayns - ldr r3, [r8, #2048] - ldr r2, [sp, #12] - ldmib sp, {r1, ip} + ldr r3, [r7, #2048] + ldr r2, [sp, #4] + ldr r1, [sp] strb r3, [r2], #1 rsb r3, r4, r2 uxtb r3, r3 cmp r3, r6 - bcc .L395 + bcc .L400 mov r2, #0 -.L396: +.L401: add r0, r10, r2 mov r3, #1 -.L397: +.L402: 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 .L397 + bne .L402 add r2, r2, #1 add fp, fp, #1 cmp r2, #4 - bne .L396 + bne .L401 mov r3, #0 add r9, r9, #1 strb r3, [r4, #16] @@ -2483,123 +2506,121 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L393 -.L484: + b .L398 +.L489: sub r3, r4, #3 cmp r3, #5 - bhi .L400 - smulbb r2, r6, r5 - mov r3, r2, asl #4 - mov r2, r2, asr #1 + bhi .L405 + smulbb r8, r6, r5 + ldr fp, .L499 + mov r3, r8, asl #4 + mov r8, r8, asr #1 str r3, [sp, #36] - mov r3, r2, asl #1 - str r3, [sp, #8] + mov r3, r8, asl #1 + str r3, [sp, #4] mov r3, #0 -.L492: str r3, [sp, #16] +.L406: ldrb r3, [sp, #16] @ zero_extendqisi2 str r3, [sp, #12] - ldr r3, .L494 + ldr r3, .L499+12 ldr r2, [sp, #12] - ldrb r3, [r3, #1612] @ zero_extendqisi2 + ldrb r3, [r3, #3148] @ zero_extendqisi2 cmp r3, r2 - bhi .L445 -.L400: - ldr r3, .L494 - strb r6, [r3, #3917] - strb r5, [r3, #3918] + bhi .L450 +.L405: + ldr r3, .L499 + 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} -.L445: +.L450: ldr r2, [sp, #12] - ldr r3, .L494 + ldr r3, .L499+12 add r3, r3, r2 - ldrb r10, [r3, #1616] @ zero_extendqisi2 - ldr r3, .L494 + ldrb r10, [r3, #3152] @ zero_extendqisi2 + ldr r3, .L499+12 add r3, r3, r10, asl #3 mov r0, r10 - ldrb fp, [r3, #16] @ zero_extendqisi2 ldr r8, [r3, #12] - mov r3, #255 - mov r9, fp, asl #8 + ldrb r3, [r3, #16] @ zero_extendqisi2 + mov r9, r3, asl #8 + str r3, [sp, #8] add r7, r8, r9 + mov r3, #255 str r3, [r7, #2056] bl NandcWaitFlashReady cmp r4, #7 - ldreq r3, .L494+12 - moveq r7, #160 - mlaeq r7, r7, r10, r3 + ldreq r7, .L499+16 + moveq r3, #160 + mlaeq r7, r3, r10, r7 addeq r3, r7, #28 - beq .L489 -.L402: + beq .L494 +.L407: cmp r4, #8 - beq .L404 - ldr r3, .L494+12 - add r7, r3, r10, asl #6 + beq .L409 + ldr r7, .L499+16 + add r7, r7, r10, asl #6 add r3, r7, #20 -.L489: +.L494: str r3, [sp, #20] cmp r4, #4 - add r3, r8, fp, asl #8 + add r3, r8, r9 mov r2, #54 str r2, [r3, #2056] - bne .L405 - add r9, r8, r9 - mov r3, #255 - str r3, [r9, #2052] - mov r3, #64 - str r3, [r9, #2048] - mov r3, #204 - b .L490 -.L405: + bne .L410 + mov r2, #255 + str r2, [r3, #2052] + mov r2, #64 + str r2, [r3, #2048] + mov r2, #204 + b .L495 +.L410: sub r2, r4, #5 cmp r2, #1 - bhi .L407 - ldr r2, .L494 - ldrb r2, [r2, #3920] @ zero_extendqisi2 - str r2, [r3, #2052] - mov r2, #82 - str r2, [r3, #2048] - b .L406 -.L407: + ldrlsb r2, [fp, #-2728] @ zero_extendqisi2 + strls r2, [r3, #2052] + movls r2, #82 + bls .L496 cmp r4, #7 - bne .L406 + bne .L411 + mov r2, #174 + str r2, [r3, #2052] + mov r2, #0 + str r2, [r3, #2048] + mov r2, #176 +.L495: + str r2, [r3, #2052] + mov r2, #77 +.L496: + str r2, [r3, #2048] +.L411: add r9, r8, r9 - mov r3, #174 + cmp r4, #6 + mov r3, #22 + str r3, [r9, #2056] + mov r3, #23 + str r3, [r9, #2056] + mov r3, #4 + str r3, [r9, #2056] + mov r3, #25 + str r3, [r9, #2056] + mov r3, #0 + str r3, [r9, #2056] + str r3, [r9, #2052] + str r3, [r9, #2052] + moveq r3, #31 + str r3, [r9, #2052] + mov r3, #2 str r3, [r9, #2052] mov r3, #0 - str r3, [r9, #2048] - mov r3, #176 -.L490: str r3, [r9, #2052] - mov r3, #77 - str r3, [r9, #2048] -.L406: - add r3, r8, fp, asl #8 - cmp r4, #6 - mov r2, #22 - str r2, [r3, #2056] - mov r2, #23 - str r2, [r3, #2056] - mov r2, #4 - str r2, [r3, #2056] - mov r2, #25 - str r2, [r3, #2056] - mov r2, #0 - str r2, [r3, #2056] - str r2, [r3, #2052] - str r2, [r3, #2052] - moveq r2, #31 - str r2, [r3, #2052] - mov r2, #2 - str r2, [r3, #2052] - mov r2, #0 - str r2, [r3, #2052] -.L446: - add r3, r8, fp, asl #8 +.L451: + ldr r3, [sp, #8] mov r2, #48 mov r0, r10 + add r3, r8, r3, asl #8 str r2, [r3, #2056] bl NandcWaitFlashReady sub r3, r4, #5 @@ -2610,247 +2631,247 @@ HynixGetReadRetryDefault: sub r3, r4, #8 clz r3, r3 mov r3, r3, lsr #5 - str r3, [sp, #4] - ldr r2, [sp, #4] + str r3, [sp] + ldr r2, [sp] ldr r3, [sp, #24] orrs r3, r3, r2 movne ip, #16 - bne .L410 + bne .L415 cmp r4, #7 movne ip, #2 moveq ip, #32 -.L410: - ldr r3, .L494+20 - add r0, r8, fp, asl #8 - ldr r3, [r3, #-3408] - mov r1, r3 -.L411: - ldr r2, [r0, #2048] - strb r2, [r1], #1 - rsb r2, r3, r1 +.L415: + ldr r2, [sp, #8] + ldr r3, [fp, #-1872] + add r1, r8, r2, asl #8 + mov r0, r3 +.L416: + ldr r2, [r1, #2048] + strb r2, [r0], #1 + rsb r2, r3, r0 uxtb r2, r2 cmp r2, ip - bcc .L411 - ldr r2, [sp, #4] + bcc .L416 + ldr r2, [sp] cmp r2, #0 - beq .L412 + beq .L417 mov r2, #0 -.L414: +.L419: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 - uxtb r1, r2 + uxtb r0, r2 cmp ip, #50 - beq .L413 + beq .L418 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #5 - beq .L413 + beq .L418 add r2, r2, #1 cmp r2, #8 - bne .L414 - b .L415 -.L413: - cmp r1, #6 - bls .L416 -.L415: - ldr r0, .L494+24 - mov r1, #0 - bl printk -.L417: - b .L417 -.L412: - cmp r4, #7 - bne .L418 - ldr r2, [sp, #4] + bne .L419 + b .L420 +.L418: + cmp r0, #6 + bls .L421 .L420: - ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 - uxtb r1, r2 - cmp ip, #12 - beq .L419 - add ip, r3, r2, asl #2 - ldrb ip, [ip, #1] @ zero_extendqisi2 - cmp ip, #10 - beq .L419 - add r2, r2, #1 - cmp r2, #8 - bne .L420 - b .L421 -.L419: - cmp r1, #7 - bne .L416 -.L421: - ldr r0, .L494+24 + ldr r0, .L499+20 mov r1, #0 bl printk .L422: b .L422 -.L418: - cmp r4, #6 - bne .L416 - sub r2, r3, #1 - add r3, r3, #7 -.L423: - ldrb r1, [r2, #1]! @ zero_extendqisi2 - cmp r1, #12 - beq .L416 - ldrb r1, [r2, #8] @ zero_extendqisi2 - cmp r1, #4 - beq .L416 - cmp r2, r3 +.L417: + cmp r4, #7 bne .L423 - ldr r0, .L494+24 + ldr r2, [sp] +.L425: + ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 + uxtb r0, r2 + cmp ip, #12 + beq .L424 + add ip, r3, r2, asl #2 + ldrb ip, [ip, #1] @ zero_extendqisi2 + cmp ip, #10 + beq .L424 + add r2, r2, #1 + cmp r2, #8 + bne .L425 + b .L426 +.L424: + cmp r0, #7 + bne .L421 +.L426: + ldr r0, .L499+20 mov r1, #0 bl printk -.L425: - b .L425 -.L416: - ldr r1, .L494+20 - ldr ip, [sp, #36] - ldr r2, [r1, #-3408] - add ip, r2, ip +.L427: + b .L427 +.L423: + cmp r4, #6 + bne .L421 + sub r2, r3, #1 + add r3, r3, #7 +.L428: + ldrb r0, [r2, #1]! @ zero_extendqisi2 + cmp r0, #12 + beq .L421 + ldrb r0, [r2, #8] @ zero_extendqisi2 + cmp r0, #4 + beq .L421 + cmp r2, r3 + bne .L428 + ldr r0, .L499+20 + mov r1, #0 + bl printk +.L430: + b .L430 +.L421: + ldr r2, [fp, #-1872] + ldr r0, [sp, #36] + add r0, r2, r0 mov r3, r2 -.L426: - cmp r3, ip - ldrne lr, [r0, #2048] - strneb lr, [r3], #1 - bne .L426 -.L493: - ldr r3, [r1, #-3408] +.L431: + cmp r3, r0 + ldrne ip, [r1, #2048] + strneb ip, [r3], #1 + bne .L431 +.L498: + ldr r3, .L499 mov r0, #8 - ldr r1, [sp, #8] + ldr r1, [sp, #4] + ldr r3, [r3, #-1872] add r1, r3, r1 str r1, [sp, #28] -.L429: - ldr ip, [sp, #8] +.L434: + ldr ip, [sp, #4] add lr, r1, ip -.L428: +.L433: ldrh ip, [r1] mvn ip, ip strh ip, [r1], #2 @ movhi cmp r1, lr - bne .L428 - ldr ip, [sp, #8] + bne .L433 + ldr ip, [sp, #4] subs r0, r0, #1 add r1, r1, ip - bne .L429 -.L430: + bne .L434 +.L435: mov ip, #0 mov r0, ip -.L433: +.L438: mov r1, #1 mov lr, #0 mov r1, r1, asl r0 mov r7, #16 str r7, [sp, #32] mov r7, lr -.L431: +.L436: ldrh r9, [r3, lr] and r9, r9, r1 cmp r9, r1 addeq r7, r7, #1 - ldr r9, [sp, #8] + ldr r9, [sp, #4] add lr, lr, r9 ldr r9, [sp, #32] subs r9, r9, #1 str r9, [sp, #32] - bne .L431 + bne .L436 cmp r7, #8 add r0, r0, #1 orrhi ip, ip, r1 uxthhi ip, ip cmp r0, #16 - bne .L433 + bne .L438 ldr r1, [sp, #28] strh ip, [r3], #2 @ movhi cmp r3, r1 - bne .L430 - ldr r3, .L494+20 - ldr r1, [r3, #-3408] + bne .L435 + ldr r1, [fp, #-1872] mov r3, #0 sub r0, r1, #4 add ip, r1, #28 -.L435: +.L440: ldr lr, [r0, #4]! cmp lr, #0 addeq r3, r3, #1 cmp r0, ip - bne .L435 + bne .L440 cmp r3, #7 - ble .L436 - ldr r0, .L494+28 + ble .L441 + ldr r0, .L499+24 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L494+24 + ldr r0, .L499+20 mov r1, #0 bl printk -.L437: - b .L437 -.L436: +.L442: + b .L442 +.L441: cmp r4, #6 moveq r0, #4 - beq .L438 + beq .L443 cmp r4, #7 moveq r0, #10 - beq .L438 - ldr r3, [sp, #4] + beq .L443 + ldr r3, [sp] cmp r3, #0 moveq r0, #8 movne r0, #5 -.L438: +.L443: sub r9, r6, #1 ldr r1, [sp, #20] mov ip, #0 uxtb r9, r9 add r9, r9, #1 -.L439: +.L444: mov r7, r1 mov r3, r2 -.L440: +.L445: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [r7], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, r6 - bcc .L440 + bcc .L445 add ip, ip, #1 add r2, r2, r9 cmp ip, r5 add r1, r1, r0 - blt .L439 - add r7, r8, fp, asl #8 - mov r3, #255 + blt .L444 + ldr r3, [sp, #8] mov r0, r10 + add r7, r8, r3, asl #8 + mov r3, #255 str r3, [r7, #2056] bl NandcWaitFlashReady ldr r3, [sp, #24] cmp r3, #0 - beq .L442 + beq .L447 mov r3, #54 str r3, [r7, #2056] - ldr r3, .L494 + ldrb r3, [fp, #-2728] @ zero_extendqisi2 mvn r1, #0 ldr r0, [sp, #12] - ldrb r3, [r3, #3920] @ zero_extendqisi2 str r3, [r7, #2052] mov r3, #0 str r3, [r7, #2048] mov r3, #22 str r3, [r7, #2056] bl FlashReadCmd - b .L443 -.L442: - ldr r3, [sp, #4] + b .L448 +.L447: + ldr r3, [sp] cmp r3, #0 movne r3, #190 moveq r3, #56 str r3, [r7, #2056] -.L443: +.L448: mov r0, r10 bl NandcWaitFlashReady ldr r3, [sp, #16] add r3, r3, #1 - b .L492 -.L404: + str r3, [sp, #16] + b .L406 +.L409: mov r3, #120 mov r2, #23 str r3, [r7, #2056] @@ -2872,21 +2893,20 @@ HynixGetReadRetryDefault: str r1, [r7, #2052] str r2, [r7, #2052] str r3, [r7, #2052] - ldr r3, .L494+32 + ldr r3, .L499+28 str r3, [sp, #20] - b .L446 -.L495: + b .L451 +.L500: .align 2 -.L494: - .word .LANCHOR0 - .word .LANCHOR1 - .word .LANCHOR1+3224 - .word .LANCHOR0+3916 - .word .LANCHOR0+3919 +.L499: .word .LANCHOR2 + .word .LANCHOR1 + .word .LANCHOR1+3288 + .word .LANCHOR0 + .word .LANCHOR2-2732 .word .LC2 .word .LC3 - .word .LANCHOR0+3944 + .word .LANCHOR2-2704 .fnend .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 @@ -2901,66 +2921,67 @@ FlashGetReadRetryDefault: bxeq lr sub r2, r3, #1 cmp r2, #7 - bhi .L498 + bhi .L503 b HynixGetReadRetryDefault -.L498: +.L503: cmp r3, #49 - bne .L499 - ldr r0, .L510 - mov r2, #64 - ldr r1, .L510+4 - add r0, r0, #3920 - strb r3, [r0, #-4] + bne .L504 + ldr r2, .L515 + ldr r0, .L515+4 + ldr r1, .L515+8 + strb r3, [r2, #-2732] mov r3, #4 - strb r3, [r0, #-3] + strb r3, [r2, #-2731] mov r3, #15 - strb r3, [r0, #-2] - b .L508 -.L499: + strb r3, [r2, #-2730] + mov r2, #64 + b .L513 +.L504: sub r2, r3, #65 cmp r3, #33 cmpne r2, #1 - ldrls r0, .L510 - strlsb r3, [r0, #3916] + ldrls r2, .L515 + strlsb r3, [r2, #-2732] movls r3, #4 - bls .L509 -.L500: + bls .L514 +.L505: cmp r3, #34 cmpne r3, #67 - bne .L501 - ldr r0, .L510 - strb r3, [r0, #3916] + bne .L506 + ldr r2, .L515 + strb r3, [r2, #-2732] mov r3, #5 -.L509: - strb r3, [r0, #3917] - mov r2, #45 +.L514: + strb r3, [r2, #-2731] mov r3, #7 - add r0, r0, #3920 - strb r3, [r0, #-2] - ldr r1, .L510+8 - b .L508 -.L501: + ldr r0, .L515+4 + strb r3, [r2, #-2730] + mov r2, #45 + ldr r1, .L515+12 + b .L513 +.L506: cmp r3, #35 cmpne r3, #68 bxne lr - ldr r0, .L510 - mov r2, #95 - ldr r1, .L510+12 - add r0, r0, #3920 - strb r3, [r0, #-4] + ldr r2, .L515 + ldr r0, .L515+4 + ldr r1, .L515+16 + strb r3, [r2, #-2732] mov r3, #5 - strb r3, [r0, #-3] + strb r3, [r2, #-2731] mov r3, #17 - strb r3, [r0, #-2] -.L508: + strb r3, [r2, #-2730] + mov r2, #95 +.L513: b ftl_memcpy -.L511: +.L516: .align 2 -.L510: - .word .LANCHOR0 - .word .LANCHOR1+3160 - .word .LANCHOR1+3008 - .word .LANCHOR1+3056 +.L515: + .word .LANCHOR2 + .word .LANCHOR2-2728 + .word .LANCHOR1+3224 + .word .LANCHOR1+3072 + .word .LANCHOR1+3120 .fnend .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .align 2 @@ -2973,7 +2994,7 @@ FlashReadDpCmd: 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, .L517 + ldr r3, .L522 mov r7, r0 uxtb lr, r6 mov ip, r6, lsr #8 @@ -2991,7 +3012,7 @@ FlashReadDpCmd: add r4, fp, r4 mov r1, r6, lsr #16 str r10, [r4, #2056] - bne .L513 + bne .L518 mov r10, #0 str r10, [r4, #2052] str r10, [r4, #2052] @@ -3003,13 +3024,13 @@ FlashReadDpCmd: str r10, [r4, #2056] str r10, [r4, #2052] str r10, [r4, #2052] - b .L516 -.L513: + b .L521 +.L518: str lr, [r4, #2052] str ip, [r4, #2052] str r1, [r4, #2052] str r3, [r4, #2056] -.L516: +.L521: str r9, [r4, #2052] mov r3, #48 str r8, [r4, #2052] @@ -3019,9 +3040,9 @@ FlashReadDpCmd: str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} b FlashSetRandomizer -.L518: +.L523: .align 2 -.L517: +.L522: .word .LANCHOR0 .fnend .size FlashReadDpCmd, .-FlashReadDpCmd @@ -3037,39 +3058,39 @@ ftl_flash_de_init: mov r0, #0 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldr r3, .L530 - ldr r0, [r3, #-3404] + ldr r3, .L535 + ldr r0, [r3, #-1868] mov r4, r3 cmp r0, #0 - beq .L520 + beq .L525 mov r0, #0 bl flash_enter_slc_mode - b .L521 -.L520: + b .L526 +.L525: bl flash_exit_slc_mode -.L521: - ldrb r3, [r4, #-3400] @ zero_extendqisi2 - ldr r5, .L530 +.L526: + ldrb r3, [r4, #-1864] @ zero_extendqisi2 + ldr r5, .L535 cmp r3, #0 - beq .L522 - ldrb r3, [r5, #-3412] @ zero_extendqisi2 + beq .L527 + ldrb r3, [r5, #-1876] @ zero_extendqisi2 tst r3, #1 - beq .L522 + beq .L527 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode mov r3, #0 - strb r3, [r5, #-3400] -.L522: - ldr r3, .L530+4 + strb r3, [r5, #-1864] +.L527: + ldr r3, .L535+4 mov r0, #0 ldr r3, [r3, #12] str r0, [r3, #336] ldmfd sp!, {r3, r4, r5, pc} -.L531: +.L536: .align 2 -.L530: +.L535: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -3082,14 +3103,14 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L533 + ldr r3, .L538 add r0, r3, r0, asl #3 ldr r3, [r0, #12] str r1, [r3, #336] bx lr -.L534: +.L539: .align 2 -.L533: +.L538: .word .LANCHOR0 .fnend .size NandcRandmzSel, .-NandcRandmzSel @@ -3106,37 +3127,37 @@ NandcTimeCfg: mov r4, r0 mov r0, #0 bl rknand_get_clk_rate - ldr r1, .L546 + ldr r1, .L551 bl __aeabi_idiv - ldr r3, .L546+4 - ldr r3, [r3, #3840] + ldr r3, .L551+4 + ldr r3, [r3, #-2808] cmp r0, #250 movwgt r2, #8354 - bgt .L544 + bgt .L549 cmp r0, #220 - bgt .L545 + bgt .L550 cmp r0, #185 movwgt r2, #4226 - bgt .L544 + bgt .L549 cmp r0, #160 movwgt r2, #4194 - bgt .L544 + bgt .L549 cmp r4, #35 movwls r2, #4193 - bls .L544 + bls .L549 cmp r4, #99 movwls r2, #4225 - bls .L544 -.L545: + bls .L549 +.L550: movw r2, #8322 -.L544: +.L549: str r2, [r3, #4] ldmfd sp!, {r4, pc} -.L547: +.L552: .align 2 -.L546: +.L551: .word 1000000 - .word .LANCHOR0 + .word .LANCHOR2 .fnend .size NandcTimeCfg, .-NandcTimeCfg .align 2 @@ -3151,22 +3172,22 @@ FlashTimingCfg: sub r3, r3, #33 bic r3, r3, #32 cmp r3, #1 - bls .L549 + bls .L554 movw r3, #8322 cmp r0, r3 - bne .L550 -.L549: - ldr r3, .L551 - ldr r3, [r3, #3840] + bne .L555 +.L554: + ldr r3, .L556 + ldr r3, [r3, #-2808] str r0, [r3, #4] -.L550: - ldr r3, .L551+4 +.L555: + ldr r3, .L556+4 ldrb r0, [r3, #277] @ zero_extendqisi2 b NandcTimeCfg -.L552: +.L557: .align 2 -.L551: - .word .LANCHOR0 +.L556: + .word .LANCHOR2 .word .LANCHOR1 .fnend .size FlashTimingCfg, .-FlashTimingCfg @@ -3177,64 +3198,63 @@ NandcInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L556 - mov r1, #0 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - mov r2, #1 - str r1, [r3, #16] - mov r4, r3 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + mov r2, #0 + ldr r4, .L561 + mov r1, #1 + ldr r3, .L561+4 + mov r5, #0 + str r0, [r4, #-2808] + str r2, [r3, #16] str r0, [r3, #12] - mov r6, #0 - str r2, [r3, #24] - mov r2, #2 + str r1, [r3, #24] + mov r1, #2 str r0, [r3, #20] - str r2, [r3, #32] - mov r2, #3 + str r1, [r3, #32] + mov r1, #3 str r0, [r3, #28] + str r1, [r3, #40] str r0, [r3, #36] - str r0, [r3, #3840] - str r2, [r3, #40] - ldr r2, [r0] - ldr r5, .L556+4 - and r2, r2, #253952 - ubfx ip, r2, #13, #1 - bfi r2, r1, #13, #1 - ldr r1, [r0, #352] - orr r2, r2, #256 - str ip, [r5, #-3396] - movw ip, #2049 - ubfx r1, r1, #16, #4 - str r1, [r5, #-3392] - ldr r1, [r0, #352] - cmp r1, ip - str r1, [r5, #-3388] - moveq r3, #8 - streq r3, [r5, #-3392] - str r2, [r0] + ldr r3, [r0] + and r3, r3, #253952 + ubfx r1, r3, #13, #1 + bfi r3, r2, #13, #1 + ldr r2, [r0, #352] + orr r3, r3, #256 + str r1, [r4, #-1860] + movw r1, #2049 + ubfx r2, r2, #16, #4 + str r2, [r4, #-1856] + ldr r2, [r0, #352] + cmp r2, r1 + str r2, [r4, #-1852] + moveq r2, #8 + streq r2, [r4, #-1856] + str r3, [r0] mov r0, #40 - ldr r3, [r4, #3840] - str r6, [r3, #336] + ldr r3, [r4, #-2808] + str r5, [r3, #336] bl NandcTimeCfg - ldr r3, [r4, #3840] + ldr r3, [r4, #-2808] movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L556+8 + ldr r2, .L561+8 str r2, [r3, #304] bl ftl_malloc - str r6, [r5, #-3356] - str r6, [r5, #-3348] - str r0, [r5, #-3384] - str r0, [r5, #-3380] + str r5, [r4, #-1820] + str r5, [r4, #-1812] + str r0, [r4, #-1848] + str r0, [r4, #-1844] add r0, r0, #32768 - str r0, [r5, #-3376] - ldmfd sp!, {r4, r5, r6, pc} -.L557: + str r0, [r4, #-1840] + ldmfd sp!, {r3, r4, r5, pc} +.L562: .align 2 -.L556: - .word .LANCHOR0 +.L561: .word .LANCHOR2 + .word .LANCHOR0 .word 1579009 .fnend .size NandcInit, .-NandcInit @@ -3245,29 +3265,29 @@ NandcGetTimeCfg: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L560 + ldr ip, .L565 str lr, [sp, #-4]! .save {lr} - ldr lr, [ip, #3840] + ldr lr, [ip, #-2808] ldr lr, [lr, #4] str lr, [r0] - ldr r0, [ip, #3840] + ldr r0, [ip, #-2808] ldr r0, [r0] str r0, [r1] - ldr r1, [ip, #3840] + ldr r1, [ip, #-2808] ldr r1, [r1, #304] str r1, [r2] - ldr r1, [ip, #3840] + ldr r1, [ip, #-2808] ldr r2, [r1, #308] ldr r1, [r1, #344] uxtb r2, r2 orr r2, r2, r1, asl #16 str r2, [r3] ldr pc, [sp], #4 -.L561: +.L566: .align 2 -.L560: - .word .LANCHOR0 +.L565: + .word .LANCHOR2 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg .align 2 @@ -3278,37 +3298,35 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L570 + ldr r3, .L575 + mov r1, #1 + ldr r2, [r3, #-2808] + str r0, [r3, #-1808] + mov r3, #0 + str r1, [r2, #8] mov r1, #16 cmp r0, r1 - ldr r2, [r3, #3840] - mov r3, #1 - str r3, [r2, #8] - ldr r3, .L570+4 - str r0, [r3, #-3344] - mov r3, #0 bfi r3, r1, #8, #8 bfc r3, #18, #1 - bne .L563 -.L566: + bne .L568 +.L571: bfc r3, #4, #1 - b .L564 -.L563: + b .L569 +.L568: cmp r0, #24 orreq r3, r3, #16 - beq .L564 + beq .L569 cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - beq .L566 -.L564: + beq .L571 +.L569: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L571: +.L576: .align 2 -.L570: - .word .LANCHOR0 +.L575: .word .LANCHOR2 .fnend .size NandcBchSel, .-NandcBchSel @@ -3320,13 +3338,13 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L573 - strb r0, [r3, #3905] + ldr r3, .L578 + strb r0, [r3, #-2743] b NandcBchSel -.L574: +.L579: .align 2 -.L573: - .word .LANCHOR0 +.L578: + .word .LANCHOR2 .fnend .size FlashBchSel, .-FlashBchSel .align 2 @@ -3336,65 +3354,66 @@ ftl_flash_resume: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L584 + ldr r3, .L589 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 - ldr r2, [r3, #3840] + ldr r2, [r3, #-2808] mov r4, r3 - ldr r1, [r3, #3844] - ldr r6, .L584+4 + ldr r1, [r3, #-2804] + ldr r6, .L589+4 str r1, [r2] - ldr r1, [r3, #3848] - ldr r2, [r3, #3840] + ldr r1, [r3, #-2800] + ldr r2, [r3, #-2808] str r1, [r2, #4] - ldr r1, [r3, #3852] + ldr r1, [r3, #-2796] str r1, [r2, #8] - ldr r1, [r3, #3856] + ldr r1, [r3, #-2792] str r1, [r2, #12] - ldr r1, [r3, #3860] + ldr r1, [r3, #-2788] str r1, [r2, #304] - ldr r1, [r3, #3864] + ldr r1, [r3, #-2784] str r1, [r2, #308] - ldr r1, [r3, #3868] + ldr r1, [r3, #-2780] str r1, [r2, #336] - ldr r1, [r3, #3872] + ldr r1, [r3, #-2776] str r1, [r2, #344] -.L577: +.L582: ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L576 + bhi .L581 uxtb r0, r5 bl FlashReset -.L576: +.L581: add r5, r5, #1 cmp r5, #4 - bne .L577 - ldr r5, .L584+8 - ldrb r3, [r5, #-3400] @ zero_extendqisi2 + bne .L582 + ldrb r3, [r4, #-1864] @ zero_extendqisi2 + ldr r5, .L589 cmp r3, #0 - beq .L578 + beq .L583 mov r0, #1 bl NandcSetMode - ldrb r0, [r5, #-3412] @ zero_extendqisi2 + ldrb r0, [r5, #-1876] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #-3412] @ zero_extendqisi2 + ldrb r0, [r5, #-1876] @ zero_extendqisi2 bl NandcSetMode - ldrb r0, [r4, #3861] @ zero_extendqisi2 + ldrb r0, [r5, #-2787] @ zero_extendqisi2 bl NandcSetDdrPara -.L578: - ldr r3, [r4, #1784] +.L583: + ldr r3, .L589+8 ldmfd sp!, {r4, r5, r6, lr} + ldr r3, [r3, #3320] ldrb r0, [r3, #20] @ zero_extendqisi2 b FlashBchSel -.L585: +.L590: .align 2 -.L584: - .word .LANCHOR0 - .word IDByte +.L589: .word .LANCHOR2 + .word IDByte + .word .LANCHOR0 .fnend .size ftl_flash_resume, .-ftl_flash_resume .align 2 @@ -3428,11 +3447,11 @@ NandcIqrWaitFlashReady: str r3, [r4, #364] ldr r3, [r4] tst r3, #512 - bne .L588 + bne .L593 mov r0, r4 ldmfd sp!, {r4, lr} b wait_for_nand_flash_ready -.L588: +.L593: ldr r3, [r4, #368] orr r3, r3, #2 str r3, [r4, #368] @@ -3447,172 +3466,159 @@ NandcIqrWaitFlashReady: .type FlashEraseBlocks, %function FlashEraseBlocks: .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} mov r8, r2 - ldr r4, .L627 - .pad #36 - sub sp, sp, #36 - ldr r3, .L627+4 + 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 - ldrb r5, [r4] @ zero_extendqisi2 - ldr r2, [r3] - cmp r5, #0 - str r3, [sp, #12] - str r2, [sp, #28] - beq .L591 - mov r1, r8 - bl FlashEraseSLc2KBlocks - b .L592 -.L600: +.L596: + cmp r5, r8 + bcs .L628 mov r3, #36 mov r1, #0 - mul fp, r3, r5 + mul r6, r3, r5 + add r2, sp, #16 + add r3, r9, r6 + str r3, [sp, #12] rsb r3, r5, r8 - add r2, sp, #20 + ldr r0, [sp, #12] uxtb r3, r3 str r3, [sp] - add r6, r9, fp - add r3, sp, #24 - mov r0, r6 + add r3, sp, #20 bl LogAddr2PhyAddr - ldrb r3, [r4, #1612] @ zero_extendqisi2 + ldrb r3, [r4, #3148] @ zero_extendqisi2 mov r7, r0 - ldr r0, [sp, #24] + ldr r0, [sp, #20] cmp r0, r3 mvncs r3, #0 - strcs r3, [r9, fp] - bcc .L624 -.L594: - add r5, r5, #1 -.L591: - cmp r5, r8 - bcc .L600 - b .L625 -.L624: - ldr r3, .L627+8 - ldrb r3, [r3, #-3340] @ zero_extendqisi2 + strcs r3, [r9, r6] + bcs .L599 + ldrb r3, [fp, #-1804] @ zero_extendqisi2 cmp r3, #0 add r3, r4, r0, asl #4 - ldr r3, [r3, #1664] + ldr r3, [r3, #3200] moveq r7, #0 cmp r3, #0 - beq .L596 + beq .L601 uxtb r0, r0 bl FlashWaitCmdDone -.L596: - ldr r2, [sp, #24] - mov r0, #0 +.L601: + ldr r2, [sp, #20] cmp r7, #0 - addne ip, fp, #36 + 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 - addne ip, r9, ip - str r0, [r1, #1668] - str r6, [r1, #1664] - ldr r0, [sp, #20] - ldrb r6, [r2, #1616] @ zero_extendqisi2 - strne ip, [r1, #1668] - str r0, [r1, #1660] - strb r6, [r3, #1656] + 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 .L598 - ldr r3, .L627 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + bne .L603 + ldr r3, .L630+4 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L598 + beq .L603 bl flash_enter_slc_mode - b .L599 -.L598: + b .L604 +.L603: bl flash_exit_slc_mode -.L599: - ldr r3, [sp, #24] +.L604: + ldr r3, [sp, #20] mov r0, r6 - ldr r1, [sp, #20] + ldr r1, [sp, #16] add r5, r5, r7 add r3, r4, r3, asl #2 - ldr r2, [r3, #1624] + ldr r2, [r3, #3160] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN mov r0, r6 mov r2, r7 - ldr r1, [sp, #20] + ldr r1, [sp, #16] bl FlashEraseCmd mov r0, r6 bl NandcFlashDeCs - b .L594 -.L625: - ldr r0, [r4, #3840] - mov r5, #0 +.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 - ldr r6, .L627 - ldr r7, .L627+12 -.L601: - ldrb r3, [r4, #1612] @ zero_extendqisi2 - cmp r5, r3 - bcs .L626 - uxtb r0, r5 +.L606: + ldrb r3, [r4, #3148] @ zero_extendqisi2 + cmp r6, r3 + bcs .L629 + uxtb r0, r6 bl FlashWaitCmdDone cmp r10, #1 - bne .L602 - ldrb r3, [r6, #3904] @ zero_extendqisi2 + bne .L607 + ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L602 - ldrb r0, [r7, r5, asl #4] @ zero_extendqisi2 + beq .L607 + ldrb r0, [r7, r6, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L602: - add r5, r5, #1 - b .L601 -.L626: - ldr r3, .L627+8 - ldr r3, [r3, #-3336] +.L607: + add r6, r6, #1 + b .L606 +.L629: + ldr r3, [r5, #-1800] cmp r3, #0 - bne .L604 -.L606: + bne .L609 +.L611: mov r0, #0 - b .L592 -.L604: - ldr r3, .L627+16 + b .L597 +.L609: + ldr r3, .L630+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #69 - bne .L606 + bne .L611 mov r3, #0 mov r2, #36 mov r1, r3 -.L605: +.L610: cmp r3, r8 - beq .L606 + beq .L611 mul r0, r2, r3 add r3, r3, #1 str r1, [r9, r0] - b .L605 -.L592: - ldr r3, [sp, #12] - ldr r2, [sp, #28] - ldr r3, [r3] - cmp r2, r3 - beq .L608 - bl __stack_chk_fail -.L608: - add sp, sp, #36 + b .L610 +.L597: + add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L628: +.L631: .align 2 -.L627: +.L630: .word .LANCHOR0 - .word __stack_chk_guard .word .LANCHOR2 - .word .LANCHOR0+1656 + .word .LANCHOR0+3192 .word IDByte .fnend .size FlashEraseBlocks, .-FlashEraseBlocks @@ -3627,7 +3633,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L631 + ldr r3, .L634 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -3640,9 +3646,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L632: +.L635: .align 2 -.L631: +.L634: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -3656,12 +3662,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L634: +.L637: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #1048576 - beq .L634 + beq .L637 add sp, sp, #8 @ sp needed bx lr @@ -3677,10 +3683,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, .L656 + ldr lr, .L659 .pad #28 sub sp, sp, #28 - ldr r5, .L656+4 + ldr r5, .L659+4 add r0, lr, r0, asl #3 mov lr, #16 ldr r8, [sp, #64] @@ -3699,9 +3705,9 @@ NandcXferStart: mov r3, r3, lsr r0 orr r4, r4, #1024 bfi r4, r3, #4, #1 - ldr r3, [r5, #-3392] + ldr r3, [r5, #-1856] cmp r3, #3 - bls .L639 + bls .L642 ldr r3, [r6, #16] str r3, [sp, #20] ldr r3, [sp, #20] @@ -3712,29 +3718,19 @@ NandcXferStart: cmp ip, #0 cmpeq r8, #0 str r3, [sp, #8] - beq .L640 + beq .L643 cmp r1, #0 - bne .L641 -.L649: - mov r0, r6 - mov r10, r2 - mov r9, r1 - bl rk_nandc_xfer_irq_flag_init - ldr r3, [r6, #368] - add r10, r10, #1 + bne .L644 +.L652: + add r2, r2, #1 cmp r8, #0 - orr r3, r3, #1 - str r3, [r6, #368] - ldr r3, [r6, #364] - mov r10, r10, asr #1 - bfi r4, r10, #22, #6 + mov r2, r2, asr #1 movne r0, r8 - orr r3, r3, #1 - str r3, [r6, #364] - ldreq r0, [r5, #-3380] - b .L643 -.L641: - ldr r3, [r5, #-3344] + bfi r4, r2, #22, #6 + ldreq r0, [r5, #-1844] + b .L646 +.L644: + ldr r3, [r5, #-1808] mov r9, r5 cmp r3, #25 movcc r3, #64 @@ -3744,10 +3740,10 @@ NandcXferStart: str r3, [sp, #12] mov r3, #0 mov r0, r3 -.L645: +.L648: ldr lr, [sp, #12] cmp r0, lr - bcs .L649 + bcs .L652 ldr lr, [sp, #8] mov r10, r3, lsr #2 add r0, r0, #1 @@ -3755,36 +3751,37 @@ NandcXferStart: ldrneh fp, [ip, #2] mvneq fp, #0 ldrneh lr, [ip], #4 - ldreq lr, [r9, #-3376] + ldreq lr, [r9, #-1840] orrne lr, lr, fp, asl #16 - ldrne fp, [r9, #-3376] + ldrne fp, [r9, #-1840] streq fp, [lr, r10, asl #2] strne lr, [fp, r10, asl #2] ldr lr, [sp, #4] add r3, r3, lr - b .L645 -.L643: - ldr r3, [r5, #-3376] + b .L648 +.L646: + ldr r3, [r5, #-1840] ubfx r10, r4, #22, #5 + mov r9, r1 + str r0, [r5, #-1836] mov r2, r9 - str r0, [r5, #-3372] mov r1, r10, asl #10 - str r3, [r5, #-3368] + str r3, [r5, #-1832] bl rknand_dma_map_single mov r2, r9 mov r1, r10, asl #7 clz r9, r9 mov r9, r9, lsr #5 - str r0, [r5, #-3364] - ldr r0, [r5, #-3368] + str r0, [r5, #-1828] + ldr r0, [r5, #-1832] bl rknand_dma_map_single mov r3, #1 - str r3, [r5, #-3356] + str r3, [r5, #-1820] tst r8, #3 - ldr r3, [r5, #-3364] - str r0, [r5, #-3360] + ldr r3, [r5, #-1828] + str r0, [r5, #-1824] str r3, [r6, #20] - ldr r3, [r5, #-3360] + ldr r3, [r5, #-1824] str r3, [r6, #24] mov r3, #0 str r3, [sp, #20] @@ -3809,10 +3806,10 @@ NandcXferStart: ldr r3, [sp, #20] orr r3, r3, #1 str r3, [sp, #20] -.L640: +.L643: ldr r3, [sp, #20] str r3, [r6, #16] -.L639: +.L642: str r7, [r6, #12] str r4, [r6, #8] orr r4, r4, #4 @@ -3820,9 +3817,9 @@ NandcXferStart: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L657: +.L660: .align 2 -.L656: +.L659: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -3837,147 +3834,154 @@ NandcXferComp: stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L698 - ldr r3, .L698+4 + ldr r5, .L701 + ldr r3, .L701+4 add r0, r3, r0, asl #3 - ldr r3, [r5, #-3392] + ldr r3, [r5, #-1856] cmp r3, #3 ldr r4, [r0, #12] - bls .L689 + bls .L692 ldr r3, [r4, #16] tst r3, #4 - beq .L689 - mov r0, r4 - bl wait_for_nandc_xfer_completed + beq .L692 ldr r6, [r4, #16] ldr r3, [r4, #8] ubfx r6, r6, #1, #1 cmp r6, #0 - movne r6, #0 str r3, [sp] - beq .L671 -.L661: + movne r6, #0 + beq .L674 +.L664: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L669 - ldr r3, [r5, #-3392] + bge .L672 + ldr r3, [r5, #-1856] cmp r3, #5 - bhi .L662 -.L665: + bhi .L665 +.L668: add r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L661 + bne .L667 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L698+8 + ldr r0, .L701+8 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L698+12 + ldr r0, .L701+12 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex - b .L661 -.L662: + b .L667 +.L665: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L665 + beq .L668 ldr r3, [sp, #4] tst r3, #131072 - beq .L665 -.L669: - ldr r3, [r5, #-3356] - ldr r4, .L698 + beq .L668 +.L672: + ldr r3, [r5, #-1820] + ldr r4, .L701 cmp r3, #0 - beq .L670 + beq .L673 ldr r1, [sp] mov r2, #0 - ldr r0, [r4, #-3364] + ldr r0, [r4, #-1828] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r4, #-3360] + ldr r0, [r4, #-1824] mov r2, #0 ldr r1, [sp] ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single - b .L670 -.L673: + b .L673 +.L667: + mov r0, #5 + mov r1, #10 + bl usleep_range + b .L664 +.L676: ldr r3, [r4, #8] add r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 cmp r3, #0 - bne .L671 + bne .L675 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L698+16 + ldr r0, .L701+16 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L698+12 + ldr r0, .L701+12 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L671: +.L675: + mov r0, #5 + mov r1, #10 + bl usleep_range +.L674: ldr r3, [sp] tst r3, #1048576 - beq .L673 - ldr r3, [r5, #-3348] + beq .L676 + ldr r3, [r5, #-1812] cmp r3, #0 - beq .L674 + beq .L677 mov r0, r4 bl NandcSendDumpDataStart -.L674: - ldr r3, [r5, #-3356] - ldr r6, .L698 +.L677: + ldr r3, [r5, #-1820] + ldr r6, .L701 cmp r3, #0 - beq .L675 + beq .L678 ldr r1, [sp] mov r2, #1 - ldr r0, [r6, #-3364] + ldr r0, [r6, #-1828] ubfx r1, r1, #22, #5 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r6, #-3360] + ldr r0, [r6, #-1824] mov r2, #1 ldr r1, [sp] ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single -.L675: - ldr r3, [r5, #-3348] +.L678: + ldr r3, [r5, #-1812] cmp r3, #0 - beq .L670 + beq .L673 mov r0, r4 bl NandcSendDumpDataDone -.L670: +.L673: mov r3, #0 - str r3, [r5, #-3356] - b .L658 -.L689: + str r3, [r5, #-1820] + b .L661 +.L692: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] tst r3, #1048576 - beq .L689 -.L658: + beq .L692 +.L661: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L699: +.L702: .align 2 -.L698: +.L701: .word .LANCHOR2 .word .LANCHOR0 .word .LC4 @@ -4000,14 +4004,14 @@ NandcCopy1KB: ldr r5, [sp, #16] add r6, r0, #512 add r2, r2, r4, asl #9 - bne .L701 + bne .L704 cmp r3, #0 - beq .L702 + beq .L705 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L702: +.L705: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} ldrb r3, [r5, #2] @ zero_extendqisi2 @@ -4022,14 +4026,14 @@ NandcCopy1KB: orr r3, r3, r2, asl #24 str r3, [r6, r4, asl #4] ldmfd sp!, {r4, r5, r6, pc} -.L701: +.L704: cmp r3, #0 - beq .L705 + beq .L708 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L705: +.L708: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} mov r4, r4, lsr #1 @@ -4050,34 +4054,30 @@ NandcCopy1KB: .type NandcXferData, %function NandcXferData: .fnstart - @ args = 4, pretend = 0, frame = 88 + @ args = 4, pretend = 0, frame = 80 @ 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 r3, .L766 - mov r8, r2 - ldr r4, .L766+4 - .pad #100 - sub sp, sp, #100 + ldr r3, .L768 + .pad #92 + sub sp, sp, #92 tst fp, #63 mov r10, r0 - ldr r2, [r3] - add ip, r4, r0, asl #3 + add r3, r3, r0, asl #3 mov r7, r1 - ldr r5, [sp, #136] - ldr r9, [ip, #12] - str r2, [sp, #92] - str r3, [sp, #16] - bne .L718 + mov r8, r2 + ldr r5, [sp, #128] + ldr r9, [r3, #12] + bne .L721 cmp r5, #0 - bne .L719 - add r0, sp, #28 + bne .L722 + add r0, sp, #24 mov r1, #255 mov r2, #64 bl ftl_memset - add r5, sp, #28 -.L719: + add r5, sp, #24 +.L722: mov r0, r10 mov r1, r7 mov r2, r8 @@ -4086,24 +4086,25 @@ NandcXferData: str r5, [sp, #4] bl NandcXferStart mov r0, r10 + mov r1, r7 bl NandcXferComp cmp r7, #0 movne r6, #0 - bne .L720 - ldr r4, .L766+8 + bne .L723 + ldr r4, .L768+4 mov r1, r8, lsr #1 mov r2, r7 - ldr r3, [r4, #-3344] + ldr r3, [r4, #-1808] cmp r3, #25 mov r3, r7 - movcc r0, #64 - movcs r0, #128 -.L722: + movcc ip, #64 + movcs ip, #128 +.L725: cmp r2, r1 add r5, r5, #4 - add ip, r3, r0 - bcs .L764 - ldr lr, [r4, #-3376] + add r0, r3, ip + bcs .L766 + ldr lr, [r4, #-1840] mov r3, r3, lsr #2 add r2, r2, #1 ldr r3, [lr, r3, asl #2] @@ -4114,99 +4115,99 @@ NandcXferData: mov r3, r3, lsr #24 strb lr, [r5, #-2] strb r3, [r5, #-1] - mov r3, ip - b .L722 -.L764: - ldr r0, [r4, #-3344] + mov r3, r0 + b .L725 +.L766: + ldr r0, [r4, #-1808] mov r2, #0 - ldr r1, [r4, #-3392] + ldr r1, [r4, #-1856] mov r8, r8, lsr #2 mov r6, r2 -.L724: +.L727: cmp r2, r8 - bcs .L720 + bcs .L723 cmp r0, #0 - beq .L720 + beq .L723 add r3, r2, #8 ldr r3, [r9, r3, asl #2] - str r3, [sp, #24] - ldr r3, [sp, #24] + str r3, [sp, #20] + ldr r3, [sp, #20] tst r3, #4 - bne .L749 - ldr r4, [sp, #24] + bne .L751 + ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L749 + bne .L751 cmp r1, #5 - bls .L726 - ldr ip, [sp, #24] - ldr r4, [sp, #24] - ldr r3, [sp, #24] + bls .L729 + ldr ip, [sp, #20] + ldr r4, [sp, #20] + ldr r3, [sp, #20] ubfx ip, ip, #3, #5 - ldr lr, [sp, #24] + ldr lr, [sp, #20] ubfx r4, r4, #27, #1 ubfx r3, r3, #16, #5 ubfx lr, lr, #29, #1 orr ip, ip, r4, asl #5 orr r3, r3, lr, asl #5 cmp ip, r3 - ldr r3, [sp, #24] - ldrhi r4, [sp, #24] + ldr r3, [sp, #20] + ldrhi r4, [sp, #20] ubfxhi r3, r3, #3, #5 - ldrls r4, [sp, #24] + ldrls r4, [sp, #20] ubfxls r3, r3, #16, #5 ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L763 -.L726: + b .L765 +.L729: cmp r1, #3 - bls .L728 - ldr ip, [sp, #24] - ldr r4, [sp, #24] - ldr r3, [sp, #24] + bls .L731 + ldr ip, [sp, #20] + ldr r4, [sp, #20] + ldr r3, [sp, #20] ubfx ip, ip, #3, #5 - ldr lr, [sp, #24] + ldr lr, [sp, #20] ubfx r4, r4, #28, #1 ubfx r3, r3, #16, #5 ubfx lr, lr, #30, #1 orr ip, ip, r4, asl #5 orr r3, r3, lr, asl #5 cmp ip, r3 - bls .L729 - ldr r3, [sp, #24] - ldr r4, [sp, #24] + bls .L732 + ldr r3, [sp, #20] + ldr r4, [sp, #20] ubfx r3, r3, #3, #5 ubfx r4, r4, #28, #1 -.L763: +.L765: orr r4, r3, r4, asl #5 - b .L728 -.L729: - ldr r5, [sp, #24] - ldr r4, [sp, #24] + b .L731 +.L732: + ldr r5, [sp, #20] + ldr r4, [sp, #20] ubfx r5, r5, #16, #5 ubfx r4, r4, #30, #1 orr r4, r5, r4, asl #5 -.L728: +.L731: cmp r6, r4 movcc r6, r4 - b .L725 -.L749: + b .L728 +.L751: mvn r6, #0 -.L725: +.L728: add r2, r2, #1 - b .L724 -.L720: + b .L727 +.L723: mov r3, #0 str r3, [r9, #16] - b .L731 -.L718: + b .L734 +.L721: cmp r1, #1 mov r4, #0 - bne .L761 + bne .L763 mov r6, r4 -.L732: +.L735: cmp r4, r8 - bcs .L765 + bcs .L767 cmp fp, #0 and ip, r4, #3 addne r3, fp, r4, asl #9 @@ -4214,7 +4215,7 @@ NandcXferData: moveq r3, fp cmp r5, #0 mov r1, #1 - str ip, [sp, #12] + str ip, [sp, #8] movne r2, #2 moveq r2, #0 mla r2, r4, r2, r5 @@ -4225,18 +4226,19 @@ NandcXferData: mov r0, r10 mov r1, #1 mov r2, #2 - ldr ip, [sp, #12] + ldr ip, [sp, #8] str r6, [sp] str r6, [sp, #4] mov r3, ip bl NandcXferStart mov r0, r10 + mov r1, #1 bl NandcXferComp - b .L732 -.L765: + b .L735 +.L767: mov r6, #0 - b .L731 -.L761: + b .L734 +.L763: str r4, [sp] mov r1, r4 str r4, [sp, #4] @@ -4244,17 +4246,18 @@ NandcXferData: mov r3, r4 mov r6, r4 bl NandcXferStart - str fp, [sp, #12] -.L737: + str fp, [sp, #8] +.L740: cmp r4, r8 - bcs .L731 + bcs .L734 mov r0, r10 + mov r1, r7 bl NandcXferComp ldr r3, [r9, #32] add ip, r4, #2 cmp ip, r8 - str r3, [sp, #24] - bcs .L738 + str r3, [sp, #20] + bcs .L741 mov r3, #0 mov r0, r10 str r3, [sp] @@ -4262,73 +4265,65 @@ NandcXferData: str r3, [sp, #4] mov r2, #2 and r3, ip, #3 - str ip, [sp, #20] + str ip, [sp, #12] bl NandcXferStart - ldr ip, [sp, #20] -.L738: - ldr r3, [sp, #24] + ldr ip, [sp, #12] +.L741: + ldr r3, [sp, #20] tst r3, #4 mvnne r6, #0 - bne .L739 - ldr r2, [sp, #24] - ldr r3, [sp, #24] + bne .L742 + ldr r2, [sp, #20] + ldr r3, [sp, #20] ubfx r2, r2, #3, #5 ubfx r3, r3, #27, #1 orr r3, r2, r3, asl #5 cmp r6, r3 movcc r6, r3 -.L739: +.L742: cmp fp, #0 - ldr r3, [sp, #12] + ldr r3, [sp, #8] sub r2, ip, #2 mov r0, r9 moveq r3, #0 cmp r5, #0 and r2, r2, #3 - str ip, [sp, #20] + str ip, [sp, #12] movne r1, #2 moveq r1, #0 mla r4, r4, r1, r5 mov r1, #0 str r4, [sp] bl NandcCopy1KB - ldr ip, [sp, #20] - ldr r3, [sp, #12] + ldr ip, [sp, #12] + ldr r3, [sp, #8] mov r4, ip add r3, r3, #1024 - str r3, [sp, #12] - b .L737 -.L731: - ldr r3, .L766+8 + str r3, [sp, #8] + b .L740 +.L734: + ldr r3, .L768+4 clz r7, r7 mov r7, r7, lsr #5 - ldr r3, [r3, #-3392] + ldr r3, [r3, #-1856] cmp r3, #5 movls r7, #0 cmp r7, #0 - beq .L743 + beq .L746 ldr r3, [r9] and r2, r3, #139264 cmp r2, #139264 orreq r3, r3, #131072 streq r3, [r9] mvneq r6, #0 -.L743: - ldr r3, [sp, #16] +.L746: mov r0, r6 - ldr r2, [sp, #92] - ldr r3, [r3] - cmp r2, r3 - beq .L745 - bl __stack_chk_fail -.L745: - add sp, sp, #100 + add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L767: +.L769: .align 2 -.L766: - .word __stack_chk_guard +.L768: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4344,19 +4339,19 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L771 + ldr r3, .L773 subs r4, r0, #0 mov r6, r1 mov r7, r2 ldrb r5, [r3, #265] @ zero_extendqisi2 - bne .L769 - ldr r2, .L771+4 + bne .L771 + ldr r2, .L773+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r2, [r2, #4] mul r2, r2, r3 cmp r1, r2 movcc r5, #4 -.L769: +.L771: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -4379,9 +4374,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L772: +.L774: .align 2 -.L771: +.L773: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -4396,24 +4391,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 r5, .L800 + ldr r4, .L802 .pad #20 sub sp, sp, #20 - ldr r4, .L800+4 mov r10, r0 - str r1, [sp] mov fp, r2 - ldr r3, [r5, #3840] + str r1, [sp] + ldr r3, [r4, #-2808] ldr r3, [r3, #304] str r3, [sp, #8] - ldr r3, [r4, #-3392] + ldr r3, [r4, #-1856] cmp r3, #8 ldr r3, [sp, #56] movcc r9, #6 movcs r9, #12 cmp r3, #0 moveq r6, #1024 - beq .L775 + beq .L777 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 @@ -4426,43 +4420,46 @@ FlashDdrTunningRead: ldr r1, [sp] bl FlashReadRawPage mov r6, r0 - ldrb r0, [r4, #-3412] @ zero_extendqisi2 + ldrb r0, [r4, #-1876] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r4, #-3412] @ zero_extendqisi2 + ldrb r0, [r4, #-1876] @ zero_extendqisi2 bl NandcSetMode cmn r6, #1 - bne .L776 -.L785: + bne .L778 +.L787: mvn r6, #0 - b .L777 -.L776: + b .L779 +.L778: + ldr r0, .L802+4 mov r2, r6 - ldr r0, .L800+8 ldr r1, [sp] bl printk cmp r6, #9 - addls r5, r5, r10, asl #3 - ldrls r3, [r5, #12] - ldrls r2, [r3, #3840] - ldrls r2, [r3] - orrls r2, r2, #131072 - strls r2, [r3] - ldr r3, [r4, #-3332] + bhi .L780 + ldr r3, .L802+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] add r3, r3, #1 - str r3, [r4, #-3332] + str r3, [r4, #-1796] cmp r3, #2048 - bcc .L777 - ldr r3, .L800+4 + bcc .L779 + ldr r3, .L802 mov r7, #0 mov fp, r7 - str r7, [r3, #-3332] -.L775: + str r7, [r3, #-1796] +.L777: mov r4, #0 mvn r8, #0 mov ip, r4 mov r5, r4 str r4, [sp, #4] -.L783: +.L785: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara @@ -4474,77 +4471,77 @@ FlashDdrTunningRead: add r3, r6, #1 cmp r0, r3 ldr ip, [sp, #12] - bhi .L779 + bhi .L781 cmp r0, #2 - bhi .L789 + bhi .L791 add r5, r5, #1 cmp r5, #9 - bls .L789 + bls .L791 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L781 -.L779: + b .L783 +.L781: ldr r3, [sp, #4] cmp r3, r5 - bcs .L790 + bcs .L792 cmp r5, #7 rsb ip, r5, r4 - bhi .L791 + bhi .L793 str r5, [sp, #4] - b .L790 -.L789: + b .L792 +.L791: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L780 -.L790: + b .L782 +.L792: mov r5, #0 -.L780: +.L782: add r9, r9, #2 cmp r9, #69 - bls .L783 -.L781: + bls .L785 +.L783: ldr r3, [sp, #4] cmp r3, r5 movcs r4, ip - b .L782 -.L791: + b .L784 +.L793: mov r4, ip -.L782: +.L784: cmp r4, #0 - beq .L784 - ldr r0, .L800+12 + beq .L786 + ldr r0, .L802+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L784: +.L786: cmn r8, #1 - bne .L777 - ldr r0, .L800+16 + bne .L779 + ldr r0, .L802+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L785 + beq .L787 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L777: +.L779: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L801: +.L803: .align 2 -.L800: - .word .LANCHOR0 +.L802: .word .LANCHOR2 .word .LC7 + .word .LANCHOR0 .word .LC8 .word .LC9 .fnend @@ -4554,74 +4551,71 @@ FlashDdrTunningRead: .type FlashReadPage, %function FlashReadPage: .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 + .pad #12 mov r5, r0 mov r6, r1 mov r8, r2 mov r7, r3 bl FlashReadRawPage - ldr r10, .L823 + ldr r10, .L825 cmn r0, #1 mov r4, r0 - bne .L803 - ldr r9, .L823+4 + bne .L805 + ldr r9, .L825+4 ldrb fp, [r9, #8] @ zero_extendqisi2 - mov ip, r9 cmp fp, #0 - bne .L804 -.L806: - ldrb r3, [r10, #-3400] @ zero_extendqisi2 + bne .L806 +.L808: + ldrb r3, [r10, #-1864] @ zero_extendqisi2 + ldr r9, .L825 cmp r3, #0 - beq .L803 - b .L822 -.L804: + beq .L805 + b .L824 +.L806: mov r3, #0 mov r0, r5 strb r3, [r9, #8] mov r1, r6 mov r2, r8 mov r3, r7 - str r9, [sp, #12] bl FlashReadRawPage strb fp, [r9, #8] cmn r0, #1 - ldr ip, [sp, #12] movne r4, r0 - beq .L806 - b .L803 -.L822: - ldr r3, [ip, #3840] + beq .L808 + b .L805 +.L824: + ldr r3, [r9, #-2808] mov r0, r5 mov r1, r6 mov r2, r8 - ldr r9, [r3, #304] + ldr fp, [r3, #304] mov r3, #1 str r3, [sp] mov r3, r7 bl FlashDdrTunningRead cmn r0, #1 mov r4, r0 - beq .L807 - ldr r3, .L823+4 - ldrb r3, [r3, #3905] @ zero_extendqisi2 + beq .L809 + ldrb r3, [r9, #-2743] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L803 -.L807: - ubfx r0, r9, #8, #8 + bls .L805 +.L809: + ubfx r0, fp, #8, #8 bl NandcSetDdrPara -.L803: - ldr ip, [r10, #-3328] +.L805: + ldr ip, [r10, #-1792] + ldr r9, .L825 adds r3, ip, #0 movne r3, #1 cmn r4, #1 movne r3, #0 cmp r3, #0 - beq .L808 + beq .L810 mov r1, r6 mov r2, r8 mov r3, r7 @@ -4630,35 +4624,33 @@ FlashReadPage: mov r2, r5 mov r3, r6 mov r4, r0 - ldr r0, .L823+8 + ldr r0, .L825+8 mov r1, r4 bl printk cmn r4, #1 - bne .L808 - ldr r3, .L823+4 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + bne .L810 + ldrb r3, [r9, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L808 + beq .L810 mov r0, r5 bl flash_enter_slc_mode - ldr r3, .L823 + ldr ip, [r9, #-1792] mov r0, r5 mov r1, r6 mov r2, r8 - ldr ip, [r3, #-3328] mov r3, r7 blx ip mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L808: +.L810: mov r0, r4 - add sp, sp, #20 + add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L824: +.L826: .align 2 -.L823: +.L825: .word .LANCHOR2 .word .LANCHOR0 .word .LC10 @@ -4675,12 +4667,12 @@ FlashDdrParaScan: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r0 - ldr r5, .L835 + ldr r5, .L837 mov r6, r1 mov r4, #0 - ldrb r0, [r5, #-3412] @ zero_extendqisi2 + ldrb r0, [r5, #-1876] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r5, #-3412] @ zero_extendqisi2 + ldrb r0, [r5, #-1876] @ zero_extendqisi2 bl NandcSetMode mov r1, r6 mov r2, r4 @@ -4697,27 +4689,27 @@ FlashDdrParaScan: mov r3, r5 cmn r0, #1 cmnne r8, #1 - bne .L826 - ldrb r2, [r5, #-3412] @ zero_extendqisi2 + bne .L828 + ldrb r2, [r5, #-1876] @ zero_extendqisi2 tst r2, #1 - beq .L826 + beq .L828 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - strb r4, [r5, #-3400] - b .L827 -.L826: + strb r4, [r5, #-1864] + b .L829 +.L828: mov r2, #1 - strb r2, [r3, #-3400] -.L827: + strb r2, [r3, #-1864] +.L829: mov r0, #0 add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L836: +.L838: .align 2 -.L835: +.L837: .word .LANCHOR2 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -4732,137 +4724,124 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r10, .L854 - mov r6, #0 - ldr r8, .L854+4 - mov r4, r6 - ldr r5, .L854+8 + ldr r3, .L855 + mov r4, #0 + ldr r8, .L855+4 mov r9, #4 - ldr r3, [r10] + ldr r5, .L855+8 mvn r7, #0 - str r6, [r5, #-3320] - str r3, [sp, #12] - ldr r3, .L854+12 ldr r0, [r3] @ unaligned ldr r3, [r8, #4] - str r0, [sp, #8] @ unaligned - mov r0, r6 - str r3, [sp] + str r4, [r5, #-1784] mov r6, r5 - ldr r3, [r5, #-3408] - str r3, [r5, #-3324] + str r0, [sp, #12] @ unaligned + mov r0, r4 + str r3, [sp, #4] + ldr r3, [r5, #-1872] + str r3, [r5, #-1788] bl flash_enter_slc_mode - str r10, [sp, #4] -.L838: +.L840: add fp, r4, #1 mov r10, #0 -.L840: - add r3, sp, #8 +.L842: + add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 mov r1, r4 - ldr r2, [r5, #-3408] + ldr r2, [r5, #-1872] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L839 + bne .L841 mov r0, #0 mov r1, fp - ldr r2, [r6, #-3408] + ldr r2, [r6, #-1872] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L839 + bne .L841 add r10, r10, #1 cmp r10, #4 - beq .L841 - b .L840 -.L842: + beq .L843 + b .L842 +.L844: add r0, fp, #12 movw r1, #2036 bl js_hash ldr r3, [fp, #8] cmp r3, r0 mvnne r7, #0 - bne .L841 - ldr r7, .L854+16 + bne .L843 + ldr r7, .L855+12 add r1, fp, #160 mov r2, #32 mov r0, r7 bl ftl_memcpy - ldr r1, [r6, #-3324] + ldr r1, [r6, #-1788] mov r2, #32 - ldr r0, .L854+20 + ldr r0, .L855+16 add r1, r1, #192 bl ftl_memcpy - ldr r1, [r6, #-3324] + ldr r1, [r6, #-1788] mov r2, #852 - ldr r0, .L854+24 + ldr r0, .L855+20 add r1, r1, #224 bl ftl_memcpy ldrh r0, [r7, #10] bl FlashBlockAlignInit - ldr r7, [r6, #-3324] - str r4, [r6, #-3320] + ldr r7, [r6, #-1788] + str r4, [r6, #-1784] mov r0, r4 ldr r1, [r8, #4] ldr r3, [r7, #1076] - strb r3, [r6, #-3400] + strb r3, [r6, #-1864] bl __aeabi_uidiv add r0, r0, #1 cmp r0, #1 - strhi r0, [r6, #-3316] + strhi r0, [r6, #-1780] movls r3, #2 - strls r3, [r6, #-3316] + strls r3, [r6, #-1780] ldrh r3, [r7, #14] mov r7, #0 - strb r3, [r5, #-3312] -.L841: - ldr r3, [sp] + strb r3, [r5, #-1776] +.L843: + ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L838 + bne .L840 mov r0, r9 -.L853: +.L854: bl flash_exit_slc_mode mov r0, r7 - ldr r3, [sp, #4] - ldr r2, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L848 - bl __stack_chk_fail -.L839: - ldr fp, [r5, #-3324] - ldr r2, .L854+28 - ldr r3, [fp] - cmp r3, r2 - bne .L841 - cmp r7, #0 - bne .L842 - mov r0, r4 - ldr r1, [r8, #4] - bl __aeabi_uidiv - ldr r3, .L854+8 - add r0, r0, #1 - str r0, [r3, #-3316] - mov r0, r7 - b .L853 -.L848: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L855: +.L841: + ldr fp, [r5, #-1788] + ldr r2, .L855+24 + ldr r3, [fp] + cmp r3, r2 + bne .L843 + cmp r7, #0 + bne .L844 + mov r0, r4 + ldr r1, [r8, #4] + bl __aeabi_uidiv + ldr r3, .L855+8 + add r0, r0, #1 + str r0, [r3, #-1780] + mov r0, r7 + b .L854 +.L856: .align 2 -.L854: - .word __stack_chk_guard +.L855: + .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR3 .word .LANCHOR1+256 .word .LANCHOR0+44 - .word .LANCHOR0+3916 + .word .LANCHOR2-2732 .word 1312902724 .fnend .size FlashLoadPhyInfo, .-FlashLoadPhyInfo @@ -4878,159 +4857,157 @@ ToshibaReadRetrial: .pad #28 sub sp, sp, #28 mov r8, r0 - mov fp, r3 - str r2, [sp, #4] - str r1, [sp, #12] + mov r10, r3 + str r1, [sp, #20] + str r2, [sp, #8] bl NandcWaitFlashReady - ldr r2, .L885 - add r3, r2, r8, asl #3 + ldr r3, .L886 + add r3, r3, r8, asl #3 ldr r5, [r3, #12] - ldrb r9, [r3, #16] @ zero_extendqisi2 - ldr r3, .L885+4 - add r6, r9, #8 - ldrb r7, [r3] @ zero_extendqisi2 + ldrb r3, [r3, #16] @ zero_extendqisi2 + add r6, r3, #8 add r6, r5, r6, asl #8 + str r3, [sp, #4] + ldr r3, .L886+4 + ldrb r7, [r3] @ zero_extendqisi2 + str r3, [sp, #12] sub r4, r7, #67 + ldr r3, [sp, #4] cmp r4, #1 - str r3, [sp, #8] - movls r3, #0 - str r2, [sp, #16] - strls r3, [sp] - bls .L857 - ldr r3, .L885+8 - ldrb r4, [r3, #-3400] @ zero_extendqisi2 + mov r3, r3, asl #8 + movls r4, #0 + str r3, [sp, #16] + bls .L858 + ldr r3, .L886+8 + ldrb r4, [r3, #-1864] @ zero_extendqisi2 cmp r4, #0 - streq r4, [sp] - beq .L858 + beq .L859 mov r0, #0 + mov r4, #1 bl NandcSetDdrMode - mov r3, #1 - str r3, [sp] -.L858: - add r3, r5, r9, asl #8 +.L859: + ldr r3, [sp, #16] mov r2, #92 + add r3, r5, r3 str r2, [r3, #2056] mov r2, #197 str r2, [r3, #2056] -.L857: +.L858: mov r7, #1 - mvn r10, #0 - mov r3, r9, asl #8 - str r3, [sp, #20] -.L859: - ldr r3, .L885+12 + mvn r9, #0 +.L860: + ldr r3, .L886+12 ldrb r3, [r3] @ zero_extendqisi2 add r3, r3, #1 cmp r7, r3 - bcs .L884 - ldr r3, [sp, #8] + bcs .L885 + ldr r3, [sp, #12] mov r0, r6 uxtb r1, r7 ldrb r3, [r3] @ zero_extendqisi2 sub r3, r3, #67 cmp r3, #1 - bhi .L860 + bhi .L861 bl SandiskSetRRPara - b .L861 -.L860: - bl ToshibaSetRRPara + b .L862 .L861: - ldr r3, [sp, #8] + bl ToshibaSetRRPara +.L862: + ldr r3, [sp, #12] ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #34 - bne .L862 - ldr r3, .L885+12 + bne .L863 + ldr r3, .L886+12 ldrb r3, [r3] @ zero_extendqisi2 sub r3, r3, #3 cmp r7, r3 - ldreq r3, [sp, #20] + ldreq r3, [sp, #4] moveq r2, #179 - addeq r3, r5, r3 + addeq r3, r5, r3, asl #8 streq r2, [r3, #2056] -.L862: - ldr r3, [sp, #20] +.L863: + ldr r3, [sp, #16] + cmp r4, #0 mov r2, #38 add r3, r5, r3 str r2, [r3, #2056] mov r2, #93 str r2, [r3, #2056] - ldr r3, [sp] - cmp r3, #0 - beq .L863 + beq .L864 mov r0, #4 bl NandcSetDdrMode mov r0, r8 - mov r3, fp - ldr r1, [sp, #12] - ldr r2, [sp, #4] + mov r3, r10 + ldr r1, [sp, #20] + ldr r2, [sp, #8] bl FlashReadRawPage - mov r4, r0 + mov fp, r0 mov r0, #0 bl NandcSetDdrMode - b .L864 -.L863: - mov r0, r8 - ldr r1, [sp, #12] - ldr r2, [sp, #4] - mov r3, fp - bl FlashReadRawPage - mov r4, r0 + b .L865 .L864: - cmn r4, #1 - beq .L865 - ldr r3, [sp, #16] - cmn r10, #1 - moveq r10, r4 - ldrb r2, [r3, #3905] @ zero_extendqisi2 - add r2, r2, r2, asl #1 - cmp r4, r2, asr #2 - bcc .L867 - mov fp, #0 - str fp, [sp, #4] + mov r0, r8 + ldr r1, [sp, #20] + ldr r2, [sp, #8] + mov r3, r10 + bl FlashReadRawPage + mov fp, r0 .L865: + cmn fp, #1 + beq .L866 + ldr r3, .L886+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 + mov r10, #0 + str r10, [sp, #8] +.L866: add r7, r7, #1 - b .L859 -.L884: - mov r4, r10 -.L867: - ldr r3, [sp, #8] + b .L860 +.L885: + mov fp, r9 +.L868: + ldr r3, [sp, #12] mov r0, r6 mov r1, #0 ldrb r2, [r3] @ zero_extendqisi2 sub r2, r2, #67 cmp r2, #1 - bhi .L869 + bhi .L870 bl SandiskSetRRPara - b .L870 -.L869: - bl ToshibaSetRRPara + b .L871 .L870: - ldr r3, [sp, #16] - add r5, r5, r9, asl #8 - mov r2, #255 - str r2, [r5, #2056] - ldrb r2, [r3, #3905] @ zero_extendqisi2 - add r2, r2, r2, asl #1 - cmp r4, r2, asr #2 - bcc .L871 - cmn r4, #1 - movne r4, #256 + bl ToshibaSetRRPara .L871: + ldr r3, [sp, #16] + mov r2, #255 + add r5, r5, r3 + str r2, [r5, #2056] + ldr r2, .L886+8 + ldrb r2, [r2, #-2743] @ zero_extendqisi2 + add r2, r2, r2, asl #1 + cmp fp, r2, asr #2 + bcc .L872 + cmn fp, #1 + movne fp, #256 +.L872: mov r0, r8 bl NandcWaitFlashReady - ldr r3, [sp] - cmp r3, #0 - beq .L872 + cmp r4, #0 + beq .L873 mov r0, #4 bl NandcSetDdrMode -.L872: - mov r0, r4 +.L873: + mov r0, fp add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L886: +.L887: .align 2 -.L885: +.L886: .word .LANCHOR0 .word g_retryMode .word .LANCHOR2 @@ -5047,70 +5024,73 @@ SamsungReadRetrial: 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 r9, r0 - ldr r5, .L901 - mov r10, r2 - mov r8, r3 + mov r8, r0 + ldr r4, .L902 + mov r7, r3 mov fp, r1 + mov r9, r2 + add r4, r4, r8, asl #3 bl NandcWaitFlashReady - add r2, r5, r9, asl #3 - ldr ip, .L901+4 - mov r7, #1 - ldrb r3, [r2, #16] @ zero_extendqisi2 + ldr r10, .L902+4 + mov r6, #1 + ldrb r3, [r4, #16] @ zero_extendqisi2 + ldr r5, [r4, #12] mvn r4, #0 - ldr r6, [r2, #12] add r3, r3, #8 - add r6, r6, r3, asl #8 -.L888: - ldrb r3, [ip] @ zero_extendqisi2 + ldr ip, .L902+8 + add r5, r5, r3, asl #8 +.L889: + ldrb r3, [r10] @ zero_extendqisi2 add r3, r3, #1 - cmp r7, r3 - bcs .L891 - mov r0, r6 - uxtb r1, r7 + cmp r6, r3 + bcs .L892 + mov r0, r5 + uxtb r1, r6 str ip, [sp, #4] bl SamsungSetRRPara - mov r0, r9 + mov r0, r8 mov r1, fp - mov r2, r10 - mov r3, r8 + mov r2, r9 + mov r3, r7 bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L889 - ldrb r3, [r5, #3905] @ zero_extendqisi2 + beq .L890 + ldrb r3, [ip, #-2743] @ zero_extendqisi2 cmn r4, #1 moveq r4, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L894 - mov r8, #0 - mov r10, r8 -.L889: - add r7, r7, #1 - b .L888 -.L894: + bcc .L895 + mov r7, #0 + mov r9, r7 +.L890: + add r6, r6, #1 + b .L889 +.L895: mov r4, r0 -.L891: - mov r0, r6 +.L892: + mov r0, r5 mov r1, #0 bl SamsungSetRRPara - ldrb r3, [r5, #3905] @ zero_extendqisi2 + ldr r3, .L902+8 + ldrb r3, [r3, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L893 + bcc .L894 cmn r4, #1 movne r4, #256 -.L893: +.L894: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L902: +.L903: .align 2 -.L901: +.L902: .word .LANCHOR0 .word g_maxRetryCount + .word .LANCHOR2 .fnend .size SamsungReadRetrial, .-SamsungReadRetrial .align 2 @@ -5120,29 +5100,29 @@ MicronReadRetrial: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 -.L905: +.L906: 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, .L929 + ldr r3, .L930 mov fp, r2 .pad #36 sub sp, sp, #36 mov r6, r0 mov r10, #0 - ldrb r5, [r3, #3905] @ zero_extendqisi2 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + ldrb r5, [r3, #-2743] @ zero_extendqisi2 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 str r1, [sp, #20] cmp r3, #0 addeq r5, r5, r5, asl #1 - ldrne r2, .L929+4 + ldrne r2, .L930+4 ubfxeq r5, r5, #2, #8 smullne r2, r3, r5, r2 uxtbne r5, r3 - ldr r3, .L929 + ldr r3, .L930+8 add r3, r3, r0, asl #3 str r3, [sp, #24] -.L915: +.L916: mov r0, r6 mov r9, #0 bl NandcWaitFlashReady @@ -5156,11 +5136,11 @@ MicronReadRetrial: ldr r2, [sp, #16] ldr r3, [sp, #12] add r7, r3, r2, asl #8 -.L906: - ldr r3, .L929+8 +.L907: + ldr r3, .L930+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r9, r3 - bcs .L909 + bcs .L910 mov r3, #239 mov r0, #200 str r3, [r7, #2056] @@ -5181,22 +5161,22 @@ MicronReadRetrial: str ip, [sp, #28] bl FlashReadRawPage cmn r0, #1 - beq .L907 + beq .L908 cmn r4, #1 ldr ip, [sp, #28] moveq r4, r0 cmp r0, r5 - bcc .L917 + bcc .L918 mov r8, ip mov fp, ip -.L907: +.L908: ldr r9, [sp, #8] - b .L906 -.L917: + b .L907 +.L918: mov r4, r0 mov r8, ip mov fp, ip -.L909: +.L910: ldr r2, [sp, #16] mov r0, #200 ldr r3, [sp, #12] @@ -5212,10 +5192,10 @@ MicronReadRetrial: str r3, [r7, #2048] str r3, [r7, #2048] str r3, [r7, #2048] - bcc .L911 + bcc .L912 cmn r4, #1 movne r4, #256 -.L911: +.L912: cmn r4, #1 movne r7, #0 moveq r7, #1 @@ -5223,50 +5203,51 @@ MicronReadRetrial: movne r1, r7 orreq r1, r7, #1 cmp r1, #0 - beq .L912 + beq .L913 str r4, [sp] mov r1, r9 - ldr r0, .L929+12 + ldr r0, .L930+16 mov r3, r9 ldr r2, [sp, #20] bl printk cmp r10, #0 - bne .L913 - ldr r3, .L929 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + bne .L914 + ldr r3, .L930 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 moveq r7, #0 andne r7, r7, #1 cmp r7, #0 - beq .L922 + beq .L923 mov r0, r6 mov r1, #3 bl micron_auto_read_calibration_config mov r10, #1 - b .L915 -.L913: + b .L916 +.L914: mov r0, r6 mov r1, #0 bl micron_auto_read_calibration_config cmn r4, #1 movne r4, #256 - b .L922 -.L912: + b .L923 +.L913: cmp r10, #0 - beq .L922 + beq .L923 mov r0, r6 mov r4, #256 bl micron_auto_read_calibration_config -.L922: +.L923: mov r0, r4 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L930: +.L931: .align 2 -.L929: - .word .LANCHOR0 +.L930: + .word .LANCHOR2 .word 1431655766 + .word .LANCHOR0 .word g_maxRetryCount .word .LC11 .fnend @@ -5281,80 +5262,85 @@ HynixReadRetrial: 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 r5, .L949 mov r10, r2 - mov r7, r0 + ldr r2, .L950 mov fp, r1 - add r2, r5, r0 + ldr ip, .L950+4 + mov r8, r3 + mov r5, r0 + ldr r1, [r2, #3320] + add r3, ip, r0 + ldrb r9, [ip, #-2730] @ zero_extendqisi2 + mov r7, ip + ldrb r4, [r3, #-2720] @ zero_extendqisi2 + ldrb r6, [r1, #19] @ zero_extendqisi2 + str r2, [sp] + sub r6, r6, #7 + cmp r6, #1 mvn r6, #0 - ldr r3, [r5, #1784] - ldrb r4, [r2, #3928] @ zero_extendqisi2 - ldrb r9, [r5, #3918] @ zero_extendqisi2 - ldrb r3, [r3, #19] @ zero_extendqisi2 - sub r3, r3, #7 - cmp r3, #1 - ldrlsb r4, [r2, #3936] @ zero_extendqisi2 + ldrlsb r4, [r3, #-2712] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L933: +.L934: cmp ip, r9 - bcs .L937 + bcs .L938 add r4, r4, #1 - mov r0, r7 - ldrb r1, [r5, #3917] @ zero_extendqisi2 + mov r0, r5 + ldrb r1, [r7, #-2731] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L949+4 + ldr r2, .L950+8 cmp r4, r9 str ip, [sp, #4] movcs r4, #0 mov r3, r4 bl HynixSetRRPara - mov r0, r7 + mov r0, r5 mov r1, fp mov r2, r10 mov r3, r8 bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L935 - ldrb r3, [r5, #3905] @ zero_extendqisi2 + beq .L936 + ldrb r3, [r7, #-2743] @ zero_extendqisi2 cmn r6, #1 moveq r6, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L942 + bcc .L943 mov r8, #0 mov r10, r8 -.L935: +.L936: add ip, ip, #1 - b .L933 -.L942: + b .L934 +.L943: mov r6, r0 -.L937: - ldr r3, [r5, #1784] - add r7, r5, r7 +.L938: + ldr r3, [sp] + add r5, r7, r5 + ldr r3, [r3, #3320] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #7 cmp r3, #1 - ldrb r3, [r5, #3905] @ zero_extendqisi2 - strlsb r4, [r7, #3936] - strhib r4, [r7, #3928] + ldrb r3, [r7, #-2743] @ zero_extendqisi2 + strlsb r4, [r5, #-2712] + strhib r4, [r5, #-2720] add r3, r3, r3, asl #1 cmp r6, r3, asr #2 - bcc .L941 + bcc .L942 cmn r6, #1 movne r6, #256 -.L941: +.L942: mov r0, r6 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L950: +.L951: .align 2 -.L949: +.L950: .word .LANCHOR0 - .word .LANCHOR0+3920 + .word .LANCHOR2 + .word .LANCHOR2-2728 .fnend .size HynixReadRetrial, .-HynixReadRetrial .align 2 @@ -5368,23 +5354,22 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L955 + ldr r3, .L956 subs r4, r0, #0 mov r5, r1 mov r7, r2 ldrb r6, [r3, #265] @ zero_extendqisi2 - bne .L952 - ldr r2, .L955+4 + bne .L953 + ldr r2, .L956+4 ldrb r3, [r2, #1] @ zero_extendqisi2 ldr r1, [r2, #4] mul r1, r1, r3 cmp r5, r1 - bcs .L952 + bcs .L953 ldrb r3, [r2] @ zero_extendqisi2 cmp r3, #0 - subeq r6, r6, #2 movne r6, #4 -.L952: +.L953: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -5392,7 +5377,7 @@ FlashProgPage: mov r0, r4 mov r1, r5 bl FlashProgFirstCmd - uxtb r2, r6 + mov r2, r6 mov r3, r7 mov r0, r4 mov r1, #1 @@ -5413,9 +5398,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L956: +.L957: .align 2 -.L955: +.L956: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -5430,71 +5415,71 @@ 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, .L967 - ldr r5, .L967+4 - ldr r8, .L967+8 - ldr r3, [r4, #-3408] + ldr r4, .L968 + ldr r5, .L968+4 + ldr r8, .L968+8 + ldr r3, [r4, #-1872] mov r9, r4 - ldrb r0, [r4, #-3311] @ zero_extendqisi2 + ldrb r0, [r4, #-1775] @ zero_extendqisi2 mov r10, r5 - str r3, [r4, #-3324] + str r3, [r4, #-1788] bl FlashBchSel mov r1, #0 mov r2, #2048 - ldr r0, [r4, #-3408] + ldr r0, [r4, #-1872] bl ftl_memset - ldr r3, [r4, #-3324] - ldr r1, .L967+12 + ldr r3, [r4, #-1788] + ldr r1, .L968+12 mov r2, #32 str r8, [r3] - ldr r0, [r4, #-3324] - ldrb r3, [r5, #1612] @ zero_extendqisi2 + ldr r0, [r4, #-1788] + ldrb r3, [r5, #3148] @ zero_extendqisi2 add r0, r0, #16 strh r3, [r0, #-4] @ movhi ldrb r3, [r5, #1] @ zero_extendqisi2 strh r3, [r0, #-2] @ movhi - ldrb r3, [r4, #-3400] @ zero_extendqisi2 + ldrb r3, [r4, #-1864] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy - ldr r0, [r4, #-3324] - add r1, r5, #1616 + ldr r0, [r4, #-1788] + add r1, r5, #3152 mov r2, #8 add r0, r0, #80 bl ftl_memcpy - ldr r0, [r4, #-3324] - ldr r1, .L967+16 + ldr r0, [r4, #-1788] + ldr r1, .L968+16 mov r2, #32 add r0, r0, #96 bl ftl_memcpy - ldr r0, [r4, #-3324] - ldr r1, .L967+20 + ldr r0, [r4, #-1788] + ldr r1, .L968+20 mov r2, #32 add r0, r0, #160 bl ftl_memcpy - ldr r0, [r4, #-3324] + ldr r0, [r4, #-1788] add r1, r5, #44 mov r2, #32 add r0, r0, #192 bl ftl_memcpy - ldr r0, [r4, #-3324] + ldr r0, [r4, #-1788] mov r2, #852 - ldr r1, .L967+24 + ldr r1, .L968+24 add r0, r0, #224 bl ftl_memcpy - ldr r6, [r4, #-3324] + ldr r6, [r4, #-1788] movw r1, #2036 add r0, r6, #12 bl js_hash movw r3, #1592 str r3, [r6, #4] - ldr r3, [r4, #-3308] - str r3, [r4, #-3324] + ldr r3, [r4, #-1772] + str r3, [r4, #-1788] str r0, [r6, #8] mov r0, #0 bl flash_enter_slc_mode mov r6, #0 mov r7, r6 -.L960: +.L961: ldr r1, [r5, #4] mov r0, #0 mov r2, r0 @@ -5502,30 +5487,30 @@ FlashSavePhyInfo: bl FlashEraseBlock ldr r1, [r5, #4] mov r0, #0 - ldr r2, [r4, #-3408] + ldr r2, [r4, #-1872] mov r3, r0 mul r1, r1, r7 bl FlashProgPage ldr r1, [r5, #4] mov r0, #0 - ldr r2, [r4, #-3408] + ldr r2, [r4, #-1872] mov r3, r0 mul r1, r1, r7 add r1, r1, #1 bl FlashProgPage ldr r1, [r5, #4] mov r0, #0 - ldr r2, [r4, #-3308] + ldr r2, [r4, #-1772] mov r3, r0 mul r1, r1, r7 bl FlashReadRawPage add r2, r7, #1 cmn r0, #1 - beq .L958 - ldr fp, [r9, #-3324] + beq .L959 + ldr fp, [r9, #-1788] ldr r3, [fp] cmp r3, r8 - bne .L958 + bne .L959 add r0, fp, #12 movw r1, #2036 str r2, [sp, #4] @@ -5533,22 +5518,22 @@ FlashSavePhyInfo: ldr r3, [fp, #8] cmp r3, r0 ldr r2, [sp, #4] - bne .L958 + bne .L959 ldr r3, [r10, #4] cmp r6, #1 - str r2, [r9, #-3316] + str r2, [r9, #-1780] mul r7, r3, r7 - str r7, [r9, #-3320] - beq .L961 + str r7, [r9, #-1784] + beq .L962 mov r6, #1 -.L958: +.L959: cmp r2, #4 mov r7, r2 - bne .L960 - b .L959 -.L961: + bne .L961 + b .L960 +.L962: mov r6, #2 -.L959: +.L960: mov r0, #0 bl flash_exit_slc_mode clz r0, r6 @@ -5557,16 +5542,16 @@ FlashSavePhyInfo: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L968: +.L969: .align 2 -.L967: +.L968: .word .LANCHOR2 .word .LANCHOR0 .word 1312902724 .word IDByte - .word .LANCHOR0+1624 + .word .LANCHOR0+3160 .word .LANCHOR1+256 - .word .LANCHOR0+3916 + .word .LANCHOR2-2732 .fnend .size FlashSavePhyInfo, .-FlashSavePhyInfo .align 2 @@ -5576,115 +5561,102 @@ FlashReadIdbDataRaw: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L990 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 .pad #20 sub sp, sp, #20 - ldr r2, [r3] - mov r9, r0 - ldr r6, .L990+4 + ldr r5, .L990+4 + ldr r0, [r3] @ unaligned + ldrb r3, [r5, #-2743] @ zero_extendqisi2 + str r0, [sp, #12] @ unaligned str r3, [sp] - str r2, [sp, #12] - ldr r2, .L990+8 - ldrb r10, [r6, #3905] @ zero_extendqisi2 - ldr r0, [r2] @ unaligned - ldr r2, .L990+12 - str r0, [sp, #8] @ unaligned - ldr r2, [r2, #-3404] - cmp r2, #0 - beq .L970 + ldr r3, [r5, #-1868] + cmp r3, #0 + beq .L971 mov r0, #0 bl flash_enter_slc_mode -.L970: +.L971: mov r0, r9 mov r1, #0 mov r2, #2048 - mvn r8, #0 + ldr r10, .L990+8 bl ftl_memset + mvn r8, #0 mov r4, #2 -.L971: - ldrb r3, [r6, #1] @ zero_extendqisi2 + mov fp, r10 +.L972: + ldrb r3, [r10, #1] @ zero_extendqisi2 cmp r4, r3 - bcs .L975 - ldr fp, .L990+12 + bcs .L976 mov r7, #0 -.L973: - add r3, sp, #8 - ldr r5, .L990+12 - ldrb ip, [r3, r7] @ zero_extendqisi2 +.L974: + add r3, sp, #12 + ldr r6, .L990+4 + ldrb ip, [r7, r3] @ zero_extendqisi2 mov r0, ip str ip, [sp, #4] bl FlashBchSel - ldr r1, [r6, #4] + ldr r1, [fp, #4] mov r0, #0 - ldr r2, [fp, #-3408] + ldr r2, [r5, #-1872] mov r3, r0 mul r1, r1, r4 bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - bne .L972 + bne .L973 add r7, r7, #1 cmp r7, #4 - bne .L973 - b .L974 -.L972: - ldr r3, [r5, #-3408] - ldr r2, .L990+16 + bne .L974 + b .L975 +.L973: + ldr r3, [r6, #-1872] + ldr r2, .L990+12 ldr r3, [r3] cmp r3, r2 - bne .L974 + bne .L975 mov r1, ip - ldr r0, .L990+20 + ldr r0, .L990+16 bl printk - mov r2, #2048 mov r0, r9 - ldr r1, [r5, #-3408] + ldr r1, [r6, #-1872] + mov r2, #2048 bl ftl_memcpy - ldr r3, [r5, #-3408] - ldr r2, .L990+4 + ldr r3, [r6, #-1872] ldr r3, [r3, #512] - strb r3, [r2, #1] - ldr r3, [r5, #-3316] + strb r3, [fp, #1] + ldr r3, [r6, #-1780] cmp r3, r4 bls .L979 - str r4, [r5, #-3316] + str r4, [r6, #-1780] bl FlashSavePhyInfo mov r8, #0 -.L974: +.L975: add r4, r4, #1 - b .L971 + b .L972 .L979: mov r8, #0 -.L975: - mov r0, r10 +.L976: + ldr r0, [sp] bl FlashBchSel - ldr r3, .L990+12 - ldr r3, [r3, #-3404] + ldr r3, [r5, #-1868] cmp r3, #0 - beq .L976 + beq .L983 mov r0, #0 bl flash_exit_slc_mode -.L976: - ldr r3, [sp] +.L983: mov r0, r8 - ldr r2, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L978 - bl __stack_chk_fail -.L978: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} .L991: .align 2 .L990: - .word __stack_chk_guard - .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR2 + .word .LANCHOR0 .word -52655045 .word .LC12 .fnend @@ -5706,31 +5678,31 @@ FlashInit: ldr r4, .L1087 ldr r5, .L1087+4 mov r7, #0 - str r0, [r4, #-3408] + str r0, [r4, #-1872] mov r0, #32768 bl ftl_malloc - str r0, [r4, #-3308] + str r0, [r4, #-1772] mov r0, #4096 bl ftl_malloc - str r0, [r4, #-3304] + str r0, [r4, #-1768] mov r0, #32768 bl ftl_malloc - str r0, [r4, #-3300] + str r0, [r4, #-1764] mov r0, #4096 bl ftl_malloc mov r3, #50 - str r7, [r4, #-3316] + str r7, [r4, #-1780] strb r3, [r5, #1] - strb r3, [r4, #-3312] + strb r3, [r4, #-1776] mov r3, #128 - strb r7, [r4, #-3400] + strb r7, [r4, #-1864] str r3, [r5, #4] mov r3, #60 - str r7, [r4, #-3332] + str r7, [r4, #-1796] strb r7, [r5] - strb r7, [r4, #-3292] - strb r3, [r4, #-3311] - str r0, [r4, #-3296] + strb r7, [r4, #-1756] + strb r3, [r4, #-1775] + str r0, [r4, #-1760] mov r0, r6 bl NandcInit ldr r6, .L1087+8 @@ -5823,34 +5795,34 @@ FlashInit: ldrb r3, [r8] @ zero_extendqisi2 cmp r3, #173 beq .L999 - ldr r0, [r4, #-3396] + ldr r0, [r4, #-1860] bl NandcSetDdrMode .L999: - mov r1, #0 mov r2, #852 ldr r0, .L1087+20 + mov r1, #0 + ldr r7, .L1087+24 bl ftl_memset - ldr r6, .L1087+24 - ldr r2, [r4, #-3388] + ldr r6, [r4, #-1852] ldr r3, .L1087+28 - cmp r2, r6 + cmp r6, r7 ldrb r0, [r8, #1] @ zero_extendqisi2 - str r3, [r5, #1784] + str r3, [r5, #3320] mov r3, #0 strb r3, [r5, #8] - sub lr, r0, #218 + sub ip, r0, #218 ldreq r3, .L1087 - clz lr, lr - moveq r1, #1 - mov lr, lr, lsr #5 - streq r1, [r3, #-3404] + clz ip, ip + moveq r2, #1 + mov ip, ip, lsr #5 + streq r2, [r3, #-1868] cmp r0, #161 cmpne r0, #241 - and r1, r0, #253 + and r2, r0, #253 moveq r3, #1 movne r3, #0 - orr r3, lr, r3 - cmp r1, #209 + orr r3, ip, r3 + cmp r2, #209 orreq r3, r3, #1 cmp r3, #0 bne .L1001 @@ -5861,31 +5833,31 @@ FlashInit: cmp r3, #149 bne .L1002 .L1001: - ldrb r7, [r8] @ zero_extendqisi2 + ldrb lr, [r8] @ zero_extendqisi2 mov r3, #16 strb r3, [r5, #1] - mov ip, #1 - strb r3, [r4, #-3311] - cmp r7, #152 + mov r1, #1 + strb r3, [r4, #-1775] + cmp lr, #152 ldr r3, .L1087+32 - strb ip, [r5] - ldr r1, .L1087 - strb r7, [r3, #3253] - strb r0, [r3, #3254] + strb r1, [r5] + ldr r2, .L1087 + strb lr, [r3, #3317] + strb r0, [r3, #3318] bne .L1004 - ldr r7, .L1087+8 - ldrsb r7, [r7, #4] - cmp r7, #0 - strltb ip, [r1, #-3292] - movge ip, #24 - strgeb ip, [r1, #-3311] -.L1004: - movw r1, #2049 - cmp r2, r6 - cmpne r2, r1 - moveq r2, #16 - streqb r2, [r4, #-3311] + ldr lr, .L1087+8 + ldrsb lr, [lr, #4] cmp lr, #0 + strltb r1, [r2, #-1756] + movge r1, #24 + strgeb r1, [r2, #-1775] +.L1004: + movw r2, #2049 + cmp r6, r7 + cmpne r6, r2 + moveq r2, #16 + streqb r2, [r4, #-1775] + cmp ip, #0 ldrne r2, .L1087+36 movne r1, #2048 strneh r1, [r2, #14] @ movhi @@ -5899,7 +5871,7 @@ FlashInit: strh r1, [r2, #14] @ movhi mvn r2, #35 .L1081: - strb r2, [r3, #3254] + strb r2, [r3, #3318] b .L1009 .L1010: cmp r0, #211 @@ -5907,7 +5879,7 @@ FlashInit: moveq r1, #4096 streqh r1, [r2, #14] @ movhi moveq r2, #2 - streqb r2, [r3, #3265] + streqb r2, [r3, #3329] .L1009: ldr r1, .L1087+40 mov r2, #32 @@ -5925,28 +5897,28 @@ FlashInit: cmp r0, #0 bne .L1013 ldr r3, .L1087+4 - ldr r7, .L1087 - ldr r3, [r3, #1784] + ldr r6, .L1087 + ldr r3, [r3, #3320] ldrh r3, [r3, #16] mov r3, r3, lsr #8 tst r3, #1 and r0, r3, #7 - strb r0, [r4, #-3412] + strb r0, [r4, #-1876] bne .L1013 mov r3, #1 - strb r3, [r7, #-3400] + strb r3, [r6, #-1864] bl FlashSetInterfaceMode - ldrb r0, [r7, #-3412] @ zero_extendqisi2 + ldrb r0, [r6, #-1876] @ zero_extendqisi2 bl NandcSetMode .L1013: - ldr r3, [r5, #1784] + ldr r3, [r5, #3320] + ldr r6, .L1087 ldrb r3, [r3, #26] @ zero_extendqisi2 - strb r3, [r5, #3904] + strb r3, [r4, #-2744] bl FlashLoadPhyInfo cmp r0, #0 beq .L1011 - ldr r3, [r4, #-3396] - ldr r7, .L1087 + ldr r3, [r6, #-1860] cmp r3, #0 beq .L1016 mov r0, #1 @@ -5954,20 +5926,20 @@ FlashInit: mov r0, #1 b .L1082 .L1016: - ldrb r0, [r7, #-3412] @ zero_extendqisi2 + ldrb r0, [r6, #-1876] @ zero_extendqisi2 bl FlashSetInterfaceMode - ldrb r0, [r7, #-3412] @ zero_extendqisi2 + ldrb r0, [r6, #-1876] @ zero_extendqisi2 .L1082: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 beq .L1011 mov r0, #1 - ldr r7, .L1087+4 + ldr r6, .L1087+4 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode - ldr r3, [r5, #1784] + ldr r3, [r5, #3320] ldr r0, .L1087+48 ldrh r1, [r3, #14] bl printk @@ -5975,12 +5947,12 @@ FlashInit: cmn r0, #1 beq .L1057 bl FlashDieInfoInit - ldr r3, [r7, #1784] + ldr r3, [r6, #3320] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault - movw r3, #1788 - ldr r2, [r7, #1784] - ldrh r3, [r7, r3] + movw r3, #3324 + ldr r2, [r6, #3320] + ldrh r3, [r6, r3] add r3, r3, #4080 ldrb r1, [r2, #9] @ zero_extendqisi2 add r3, r3, #15 @@ -5994,86 +5966,85 @@ FlashInit: bic r3, r3, #255 strh r3, [r2, #14] @ movhi .L1019: - ldrb r3, [r4, #-3412] @ zero_extendqisi2 + ldrb r3, [r4, #-1876] @ zero_extendqisi2 tst r3, #6 beq .L1020 bl FlashSavePhyInfo ldr r3, .L1087 mov r0, #0 - ldr r1, [r3, #-3320] + ldr r1, [r3, #-1784] bl FlashDdrParaScan .L1020: bl FlashSavePhyInfo .L1011: - ldr r2, [r5, #1784] - ldr r9, .L1087+4 - ldr r7, .L1087 + ldr r2, [r5, #3320] + ldr r6, .L1087 ldrb r3, [r2, #26] @ zero_extendqisi2 ldrh r0, [r2, #10] - ldrb r10, [r2, #18] @ zero_extendqisi2 - strb r3, [r5, #3904] + ldrb r9, [r2, #18] @ zero_extendqisi2 + strb r3, [r4, #-2744] ldrh r3, [r2, #16] ubfx r1, r3, #7, #1 strb r1, [r5, #8] ubfx r1, r3, #3, #1 - strb r1, [r4, #-3291] + strb r1, [r4, #-1755] ubfx r1, r3, #4, #1 ubfx r3, r3, #8, #3 - strb r1, [r4, #-3340] - strb r3, [r4, #-3412] + strb r1, [r4, #-1804] + strb r3, [r4, #-1876] mov r3, #0 ldrb r1, [r2, #12] @ zero_extendqisi2 - str r3, [r4, #-3328] + str r3, [r4, #-1792] bl __aeabi_idiv mov r1, r0 - mov r0, r10 + mov r0, r9 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr r3, [r5, #1784] + ldr r3, [r5, #3320] ldrh r2, [r3, #16] tst r2, #64 beq .L1022 ldrb r0, [r3, #19] @ zero_extendqisi2 ldr r3, .L1087+52 - ldrb r2, [r9, #3917] @ zero_extendqisi2 + ldrb r2, [r6, #-2731] @ zero_extendqisi2 ldr r1, .L1087+56 strb r0, [r3] ldr r3, .L1087+60 strb r2, [r3] mov ip, r3 - ldrb r2, [r9, #3918] @ zero_extendqisi2 + 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, #5 + sub r2, r0, #8 + clz r2, r2 + str r3, [r6, #-1792] + sub r3, r0, #5 cmp r0, #8 - cmpne r2, #1 - sub r1, r0, #8 - clz r1, r1 - str r3, [r7, #-3328] + cmpne r3, #1 + mov r2, r2, lsr #5 movls r3, #1 - strls r3, [r7, #-3348] + strls r3, [r6, #-1812] cmp r0, #7 - mov r1, r1, lsr #5 - ldreq r3, .L1087+68 + ldreq r6, .L1087+68 beq .L1026 - ldr r2, .L1087+68 - cmp r1, #0 - sub r3, r2, #8 - movne r3, r2 + ldr r3, .L1087+68 + cmp r2, #0 + sub r6, r3, #8 + movne r6, r3 .L1026: - sub r1, r3, #1 - add r3, r3, #31 - mov r2, #0 + sub r2, r6, #1 + add r6, r6, #31 + mov r3, #0 .L1027: - ldrsb ip, [r1, #1]! - cmp ip, #0 - addeq r2, r2, #1 - cmp r1, r3 + ldrsb r1, [r2, #1]! + cmp r1, #0 + addeq r3, r3, #1 + cmp r2, r6 bne .L1027 - cmp r2, #27 + cmp r3, #27 bls .L1022 bl FlashGetReadRetryDefault bl FlashSavePhyInfo @@ -6084,7 +6055,7 @@ FlashInit: bhi .L1029 ldr r3, .L1087+72 cmp r0, #19 - str r3, [r7, #-3328] + str r3, [r6, #-1792] moveq r3, #15 bne .L1086 b .L1084 @@ -6094,7 +6065,7 @@ FlashInit: cmpne r2, #1 bhi .L1031 ldr r2, .L1087+76 - str r2, [r7, #-3328] + str r2, [r6, #-1792] mov r2, #4 strb r2, [r3] .L1086: @@ -6114,7 +6085,7 @@ FlashInit: ldr r3, .L1087+76 cmp r0, #68 cmpne r0, #35 - str r3, [r7, #-3328] + str r3, [r6, #-1792] movne r3, #7 moveq r3, #17 cmp lr, #0 @@ -6126,42 +6097,43 @@ FlashInit: .L1032: cmp r0, #49 ldreq r3, .L1087+80 - streq r3, [r7, #-3328] + streq r3, [r6, #-1792] .L1022: - ldr r3, [r4, #-3388] - cmp r3, r6 + ldr r3, [r4, #-1852] + cmp r3, r7 bne .L1036 - ldrb r2, [r5, #3904] @ zero_extendqisi2 + ldr r2, .L1087 + ldrb r2, [r2, #-2744] @ zero_extendqisi2 cmp r2, #0 - ldrne r2, .L1087+4 + ldrne r2, [r5, #3320] movne r1, #0 - ldrne r2, [r2, #1784] strneb r1, [r2, #18] .L1036: ldrb r2, [r8] @ zero_extendqisi2 cmp r2, #44 bne .L1037 - ldrb r2, [r4, #-3400] @ zero_extendqisi2 + ldrb r2, [r4, #-1864] @ zero_extendqisi2 cmp r2, #0 beq .L1037 - cmp r3, r6 + cmp r3, r7 bne .L1038 - ldrb r3, [r5, #3904] @ zero_extendqisi2 + ldr r3, .L1087 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 bne .L1037 .L1038: mov r0, #1 mov r3, #0 - strb r3, [r4, #-3400] + strb r3, [r4, #-1864] bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode .L1037: - ldrb r3, [r4, #-3412] @ zero_extendqisi2 + ldrb r3, [r4, #-1876] @ zero_extendqisi2 tst r3, #6 beq .L1039 ldr r2, .L1087 - ldrb r2, [r2, #-3400] @ zero_extendqisi2 + ldrb r2, [r2, #-1864] @ zero_extendqisi2 cmp r2, #0 bne .L1040 tst r3, #1 @@ -6170,66 +6142,66 @@ FlashInit: mov r0, #0 bl flash_enter_slc_mode mov r0, #0 - ldr r1, [r4, #-3320] + ldr r1, [r4, #-1784] bl FlashDdrParaScan mov r0, #0 bl flash_exit_slc_mode .L1039: - ldr r3, [r5, #1784] - mov r9, #16 - ldr r7, .L1087+4 - ldr r4, .L1087+84 + ldr r3, [r5, #3320] + mov r10, #16 + ldr r9, .L1087+4 + ldr r6, .L1087+84 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel - add r0, r7, #1792 + add r0, r9, #3328 bl FlashReadIdbDataRaw ldr r0, .L1087+88 - strb r9, [r5, #1] + strb r10, [r5, #1] bl FlashTimingCfg - ldr r6, [r5, #1784] - ldrb r3, [r6, #12] @ zero_extendqisi2 - strh r3, [r4, #8] @ movhi - ldrb r3, [r6, #7] @ zero_extendqisi2 - str r3, [r5, #3880] + ldr r7, [r5, #3320] + 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 - ldrh r8, [r6, #14] - str r3, [r5, #3876] - ldrb r3, [r5, #1612] @ zero_extendqisi2 - strh r3, [r4, #10] @ movhi - ldrb r3, [r6, #13] @ zero_extendqisi2 - strh r8, [r4, #14] @ movhi - strh r3, [r4, #12] @ movhi - ldrh r3, [r6, #10] - strh r3, [r4, #16] @ movhi - ldrb r1, [r6, #12] @ zero_extendqisi2 - ldrh r0, [r6, #10] + str r3, [r4, #-2772] + ldrb r3, [r5, #3148] @ zero_extendqisi2 + ldrh r4, [r7, #14] + strh r3, [r6, #10] @ movhi + ldrb r3, [r7, #13] @ zero_extendqisi2 + strh r4, [r6, #14] @ movhi + strh r3, [r6, #12] @ movhi + ldrh r3, [r7, #10] + strh r3, [r6, #16] @ movhi + ldrb r1, [r7, #12] @ zero_extendqisi2 + ldrh r0, [r7, #10] bl __aeabi_idiv - strh r0, [r4, #18] @ movhi - ldrb r2, [r6, #9] @ zero_extendqisi2 - strh r2, [r4, #20] @ movhi - ldrb r1, [r6, #9] @ zero_extendqisi2 - ldrh r3, [r6, #10] + strh r0, [r6, #18] @ movhi + ldrb r2, [r7, #9] @ zero_extendqisi2 + strh r2, [r6, #20] @ movhi + ldrb r1, [r7, #9] @ zero_extendqisi2 + ldrh r3, [r7, #10] smulbb r3, r1, r3 mov r1, #512 - strh r1, [r4, #24] @ movhi + strh r1, [r6, #24] @ movhi ldrb r1, [r5, #1] @ zero_extendqisi2 - strh r1, [r4, #26] @ movhi + strh r1, [r6, #26] @ movhi uxth r3, r3 ldrb r1, [r5] @ zero_extendqisi2 - strh r3, [r4, #22] @ movhi + strh r3, [r6, #22] @ movhi cmp r1, #1 bne .L1042 mov r3, r3, asl #1 - mov r1, r8, lsr #1 + mov r1, r4, lsr #1 mov r2, r2, asl #1 - strh r3, [r4, #22] @ movhi - strb r9, [r7, #1] + strh r3, [r6, #22] @ movhi + strb r10, [r9, #1] mov r3, #8 - strh r1, [r4, #14] @ movhi - strh r2, [r4, #20] @ movhi - strh r3, [r4, #26] @ movhi + strh r1, [r6, #14] @ movhi + strh r2, [r6, #20] @ movhi + strh r3, [r6, #26] @ movhi .L1042: - ldrb r0, [r6, #20] @ zero_extendqisi2 + ldrb r0, [r7, #20] @ zero_extendqisi2 bl FlashBchSel bl ftl_flash_suspend mov r0, #0 @@ -6248,23 +6220,23 @@ FlashInit: .word IDByte .word .LANCHOR0+12 .word .LC13 - .word .LANCHOR0+3916 + .word .LANCHOR2-2732 .word 1446522928 .word .LANCHOR1+256 .word .LANCHOR1 - .word .LANCHOR1+3252 - .word .LANCHOR1+2912 + .word .LANCHOR1+3316 + .word .LANCHOR1+2976 .word .LANCHOR0+44 .word .LC14 .word g_retryMode .word g_maxRetryCount .word g_maxRegNum .word HynixReadRetrial - .word .LANCHOR0+3944 + .word .LANCHOR2-2704 .word MicronReadRetrial .word ToshibaReadRetrial .word SamsungReadRetrial - .word .LANCHOR0+3876 + .word .LANCHOR2-2772 .word 150000 .fnend .size FlashInit, .-FlashInit @@ -6275,65 +6247,62 @@ FlashPageProgMsbFFData: .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} + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r4, r2 - ldr r3, .L1106 - mov r8, r0 - mov r9, r1 - ldr r2, [r3, #1784] - mov r6, r3 - ldrb r7, [r2, #19] @ zero_extendqisi2 - ldrb r2, [r3, #3904] @ zero_extendqisi2 - cmp r2, #0 + ldr r5, .L1103 + mov r7, r1 + ldr r2, .L1103+4 + mov r6, r0 + ldrb r1, [r5, #-2744] @ zero_extendqisi2 + ldr r3, [r2, #3320] + mov r8, r2 + cmp r1, #0 + ldrb r3, [r3, #19] @ zero_extendqisi2 beq .L1090 - ldr r3, .L1106+4 - ldr r3, [r3, #-3404] - cmp r3, #0 - ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + ldr r2, [r5, #-1868] + cmp r2, #0 + ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .L1090: - sub r3, r7, #5 - cmp r7, #68 - cmpne r3, #3 + sub r2, r3, #5 + cmp r3, #68 + cmpne r2, #2 bls .L1091 - sub r3, r7, #19 + sub r3, r3, #19 tst r3, #239 - ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .L1091: - ldr r10, .L1106+8 - movw fp, #65535 - ldr r5, .L1106+4 + ldr r9, .L1103+8 + movw r10, #65535 .L1093: - ldr r3, [r6, #1784] + ldr r3, [r8, #3320] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1105 + bls .L1102 mov r3, r4, asl #1 - ldrh r3, [r10, r3] - cmp r3, fp - ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} - cmp r7, #8 + 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, #-3308] - moveq r1, #0 - movne r1, #255 + ldr r0, [r5, #-1772] bl ftl_memset - ldr r2, [r5, #-3308] - add r1, r4, r9 + ldr r2, [r5, #-1772] + add r1, r4, r7 add r4, r4, #1 - mov r0, r8 + mov r0, r6 mov r3, r2 uxth r4, r4 bl FlashProgPage b .L1093 -.L1105: - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1107: +.L1102: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L1104: .align 2 -.L1106: - .word .LANCHOR0 +.L1103: .word .LANCHOR2 - .word .LANCHOR0+588 + .word .LANCHOR0 + .word .LANCHOR0+1100 .fnend .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData .align 2 @@ -6341,53 +6310,49 @@ FlashPageProgMsbFFData: .type FlashReadSlc2KPages, %function FlashReadSlc2KPages: .fnstart - @ args = 0, pretend = 0, frame = 32 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1160 + ldr r3, .L1156 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, .L1160+4 + .pad #36 + sub sp, sp, #36 + ldrb r3, [r3, #265] @ zero_extendqisi2 mov r4, r0 - str r2, [sp, #16] - mov r8, #0 - ldr r2, [r3] - mov r10, r9 - str r1, [sp, #12] - str r3, [sp, #20] - str r2, [sp, #36] - ldr r2, .L1160+8 - ldrb r2, [r2, #265] @ zero_extendqisi2 - str r2, [sp, #8] -.L1109: - ldr r3, [sp, #12] - cmp r8, r3 - beq .L1159 - ldr r3, [sp, #12] - add r2, sp, #32 + ldr r10, .L1156+4 + mov r9, #0 + str r1, [sp, #16] + str r2, [sp, #20] + str r3, [sp, #12] +.L1106: + ldr r3, [sp, #16] + cmp r9, r3 + beq .L1155 + ldr r3, [sp, #16] mov r0, r4 - ldr r1, [sp, #16] - rsb r3, r8, r3 + ldr r1, [sp, #20] + add r2, sp, #28 + rsb r3, r9, r3 + ldr r8, .L1156+8 uxtb r3, r3 str r3, [sp] - add r3, sp, #28 + add r3, sp, #24 bl LogAddr2PhyAddr - ldrb r2, [r9, #1612] @ zero_extendqisi2 - ldr r3, [sp, #28] - cmp r3, r2 + ldrb r3, [r8, #3148] @ zero_extendqisi2 + ldr r5, [sp, #24] + cmp r5, r3 mvncs r3, #0 strcs r3, [r4] - bcs .L1111 - add r3, r9, r3 + bcs .L1108 + add r5, r8, r5 mov r7, #0 - ldrb r5, [r3, #1616] @ zero_extendqisi2 + ldrb r5, [r5, #3152] @ zero_extendqisi2 mov r0, r5 bl NandcWaitFlashReady mov r0, r5 bl NandcFlashCs -.L1112: - ldr r1, [sp, #32] +.L1109: + ldr r1, [sp, #28] mov r0, r5 bl FlashReadCmd mov r0, r5 @@ -6396,33 +6361,33 @@ FlashReadSlc2KPages: mov r0, r5 mov r1, #0 str r3, [sp] - ldr r2, [sp, #8] + ldr r2, [sp, #12] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1160+12 - ldrb r3, [r3, #-3292] @ zero_extendqisi2 + ldr r3, .L1156+4 + ldrb r3, [r3, #-1756] @ zero_extendqisi2 cmp r3, #0 mov r6, r0 - beq .L1113 + beq .L1110 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi r6, #256 -.L1113: +.L1110: cmp r7, #9 cmnls r6, #1 moveq r3, #1 movne r3, #0 addeq r7, r7, #1 - beq .L1112 -.L1114: + beq .L1109 +.L1111: cmp r7, #0 mov r7, r3 movne r6, #256 -.L1116: - ldr r3, [sp, #32] +.L1113: + ldr r3, [sp, #28] mov r0, r5 - ldr r1, [r10, #4] + ldr r1, [r8, #4] add r1, r1, r3 bl FlashReadCmd mov r0, r5 @@ -6436,99 +6401,90 @@ FlashReadSlc2KPages: cmp r2, #0 addne r2, r2, #8 str r2, [sp] - ldr r2, [sp, #8] + ldr r2, [sp, #12] bl NandcXferData - ldr r3, .L1160+12 - ldrb r2, [r3, #-3292] @ zero_extendqisi2 + ldrb r2, [r10, #-1756] @ zero_extendqisi2 cmp r2, #0 mov fp, r0 - beq .L1119 + beq .L1116 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi fp, #256 -.L1119: +.L1116: cmp r7, #9 cmnls fp, #1 addeq r7, r7, #1 - beq .L1116 -.L1120: + beq .L1113 +.L1117: cmp r7, #0 mov r0, r5 movne fp, #256 bl NandcFlashDeCs - ldrb r2, [r10, #3905] @ zero_extendqisi2 + ldrb r2, [r10, #-2743] @ zero_extendqisi2 cmp fp, r6 movcs r3, fp movcc r3, r6 add r2, r2, r2, asl #1 cmp r3, r2, asr #2 - bls .L1122 + bls .L1119 cmn r3, #1 movne r3, #256 -.L1122: +.L1119: cmp r3, #256 cmnne r3, #1 movne r3, #0 str r3, [r4] ldr r3, [r4, #12] cmp r3, #0 - beq .L1125 + beq .L1122 ldr r2, [r3, #12] cmn r2, #1 - bne .L1125 + bne .L1122 ldr r2, [r3, #8] cmn r2, #1 - bne .L1125 + bne .L1122 ldr r3, [r3] cmn r3, #1 strne r2, [r4] -.L1125: +.L1122: ldr r3, [r4] cmn r3, #1 - bne .L1111 + bne .L1108 ldr r1, [r4, #4] - ldr r0, .L1160+16 - ldrb r2, [r10, #3905] @ zero_extendqisi2 + ldr r0, .L1156+12 + ldrb r2, [r10, #-2743] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cmp r1, #0 - beq .L1127 - ldr r0, .L1160+20 + beq .L1124 + ldr r0, .L1156+16 mov r2, #4 mov r3, #8 bl rknand_print_hex -.L1127: +.L1124: ldr r1, [r4, #12] cmp r1, #0 - beq .L1111 + beq .L1108 mov r2, #4 - ldr r0, .L1160+24 + ldr r0, .L1156+20 mov r3, r2 bl rknand_print_hex -.L1111: - add r8, r8, #1 +.L1108: + add r9, r9, #1 add r4, r4, #36 - b .L1109 -.L1159: - ldr r3, [sp, #20] + b .L1106 +.L1155: mov r0, #0 - ldr r2, [sp, #36] - ldr r3, [r3] - cmp r2, r3 - beq .L1130 - bl __stack_chk_fail -.L1130: - add sp, sp, #44 + add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1161: +.L1157: .align 2 -.L1160: - .word __stack_chk_guard - .word .LANCHOR0 +.L1156: .word .LANCHOR1 .word .LANCHOR2 + .word .LANCHOR0 .word .LC15 .word .LC16 .word .LC17 @@ -6539,86 +6495,84 @@ FlashReadSlc2KPages: .type FlashReadPages, %function FlashReadPages: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1238 + ldr r3, .L1233 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #60 - sub sp, sp, #60 - ldr r3, [r3] - ldr r6, .L1238+4 - str r1, [sp, #20] - str r3, [sp, #52] - ldr r3, .L1238+8 - ldrb r8, [r6] @ zero_extendqisi2 - str r2, [sp, #24] + .pad #52 + sub sp, sp, #52 + ldr r9, .L1233+4 ldrb r3, [r3, #265] @ zero_extendqisi2 - cmp r8, #0 + str r1, [sp, #20] + ldrb r8, [r9] @ zero_extendqisi2 str r3, [sp, #16] - ldrb r3, [r6, #8] @ zero_extendqisi2 + ldrb r3, [r9, #8] @ zero_extendqisi2 + cmp r8, #0 + str r2, [sp, #24] str r3, [sp, #28] - beq .L1200 + beq .L1195 bl FlashReadSlc2KPages - b .L1164 -.L1200: - ldr r10, .L1238+12 - mov r9, r0 + b .L1228 +.L1195: + ldr r7, .L1233+8 + mov r10, r0 mov fp, r8 -.L1163: +.L1159: ldr r3, [sp, #20] cmp fp, r3 - bcs .L1236 + bcs .L1231 mov r3, #36 - add r2, sp, #48 + add r2, sp, #44 mul r3, r3, fp ldr r1, [sp, #24] - add r7, r9, r3 + add r6, r10, r3 str r3, [sp, #8] - mov r0, r7 - ldr r3, [r7, #4] + mov r0, r6 + ldr r3, [r6, #4] str r3, [sp, #12] ldr r3, [sp, #20] rsb r3, fp, r3 uxtb r3, r3 str r3, [sp] - add r3, sp, #44 + add r3, sp, #40 bl LogAddr2PhyAddr - ldrb r2, [r6, #1612] @ zero_extendqisi2 - ldr r3, [sp, #44] + ldrb r2, [r9, #3148] @ zero_extendqisi2 + ldr r3, [sp, #40] mov r5, r0 cmp r3, r2 ldrcs r2, [sp, #8] mvncs r3, #0 - strcs r3, [r9, r2] - bcs .L1166 - add r3, r6, r3 - ldrb r4, [r3, #1616] @ zero_extendqisi2 - ldrb r3, [r10, #-3291] @ zero_extendqisi2 + strcs r3, [r10, r2] + bcs .L1162 + add r3, r9, r3 + ldrb r4, [r3, #3152] @ zero_extendqisi2 + ldrb r3, [r7, #-1755] @ zero_extendqisi2 cmp r3, #0 mov r0, r4 moveq r5, #0 bl NandcWaitFlashReady - ldr r3, .L1238+4 - ldr r3, [r3, #1784] + ldr r3, .L1233+4 + ldr r3, [r3, #3320] ldrb r2, [r3, #19] @ zero_extendqisi2 sub r3, r2, #1 cmp r3, #7 - bhi .L1168 + bhi .L1164 sub r2, r2, #7 - add r1, r6, r4 + add r1, r7, r4 cmp r2, #1 - add r2, r10, r4 - ldrb r3, [r1, #3928] @ zero_extendqisi2 - ldrb r2, [r2, #-3416] @ zero_extendqisi2 - ldrlsb r3, [r1, #3936] @ zero_extendqisi2 + ldr r2, .L1233+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 .L1168 + beq .L1164 mov r0, r4 - ldrb r1, [r6, #3917] @ zero_extendqisi2 - ldr r2, .L1238+16 + ldrb r1, [r7, #-2731] @ zero_extendqisi2 + ldr r2, .L1233+12 bl HynixSetRRPara -.L1168: +.L1164: mov r0, r4 bl NandcFlashCs mov r0, r4 @@ -6629,49 +6583,49 @@ FlashReadPages: orreq r3, r3, #1 str r3, [sp, #12] cmp r3, #0 - beq .L1170 - ldrb r3, [r6, #3904] @ zero_extendqisi2 + beq .L1166 + ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1170 + beq .L1166 bl flash_enter_slc_mode - b .L1171 -.L1170: + b .L1167 +.L1166: bl flash_exit_slc_mode -.L1171: - ldr r1, [sp, #48] +.L1167: + ldr r1, [sp, #44] cmn r1, #1 cmpeq r4, #255 moveq r3, #0 movne r3, #1 moveq r5, r3 - beq .L1173 + beq .L1169 cmp r5, #0 - beq .L1174 - ldr r2, [r6, #4] + beq .L1170 + ldr r2, [r9, #4] mov r0, r4 add r2, r1, r2 bl FlashReadDpCmd - b .L1175 -.L1174: + b .L1171 +.L1170: mov r0, r4 bl FlashReadCmd -.L1175: +.L1171: mov r0, r4 bl NandcWaitFlashReady cmp r5, #0 - beq .L1173 + beq .L1169 mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1173: - ldr r3, [r7, #12] +.L1169: + ldr r3, [r6, #12] mov r0, r4 ldr r2, [sp, #16] mov r1, #0 str r3, [sp] - ldr r3, [r7, #8] + ldr r3, [r6, #8] bl NandcXferData - ldrb r2, [r6, #8] @ zero_extendqisi2 + ldrb r2, [r9, #8] @ zero_extendqisi2 adds r2, r2, #0 movne r2, #1 cmn r0, #1 @@ -6679,25 +6633,25 @@ FlashReadPages: movne r2, #0 cmp r2, #0 movne r3, #0 - strneb r3, [r6, #8] + strneb r3, [r9, #8] movne r5, r3 - bne .L1171 -.L1176: + bne .L1167 +.L1172: cmp r5, #0 - beq .L1177 - ldr r3, .L1238+4 + beq .L1173 + ldr r3, .L1233+4 str r0, [sp, #32] mov r0, r4 str r2, [sp, #36] ldr r1, [r3, #4] - ldr r3, [sp, #48] + ldr r3, [sp, #44] add r1, r1, r3 bl FlashReadDpDataOutCmd mov r0, r4 ldr r3, [sp, #8] ldr r2, [sp, #36] add r3, r3, #36 - add r3, r9, r3 + add r3, r10, r3 ldr r1, [r3, #12] str r1, [sp] mov r1, r2 @@ -6708,198 +6662,191 @@ FlashReadPages: ldr ip, [sp, #32] mov r8, r0 moveq r5, #0 -.L1177: +.L1173: mov r0, r4 str ip, [sp, #32] bl NandcFlashDeCs ldr ip, [sp, #32] ldrb r3, [sp, #28] @ zero_extendqisi2 cmn ip, #1 - strb r3, [r6, #8] - bne .L1184 - ldrb r3, [r10, #-3400] @ zero_extendqisi2 - cmp r3, #0 - bne .L1179 -.L1183: - ldr r5, [r10, #-3328] - cmp r5, #0 + strb r3, [r9, #8] bne .L1180 - b .L1237 + ldrb r3, [r7, #-1864] @ zero_extendqisi2 + cmp r3, #0 + bne .L1175 .L1179: - ldr r3, [r6, #3840] + ldr r5, [r7, #-1792] + cmp r5, #0 + bne .L1176 + b .L1232 +.L1175: + ldr r3, [r7, #-2808] mov r0, r4 - ldr r1, [sp, #48] + ldr r1, [sp, #44] ldr r5, [r3, #304] mov r3, #1 str r3, [sp] - ldr r2, [r7, #8] - ldr r3, [r7, #12] + ldr r2, [r6, #8] + ldr r3, [r6, #12] bl FlashDdrTunningRead cmn r0, #1 mov ip, r0 - beq .L1182 - ldrb r3, [r6, #3905] @ zero_extendqisi2 + beq .L1178 + ldrb r3, [r7, #-2743] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1203 -.L1182: + bls .L1198 +.L1178: ubfx r0, r5, #8, #8 str ip, [sp, #32] bl NandcSetDdrPara ldr ip, [sp, #32] cmn ip, #1 - beq .L1183 - b .L1203 -.L1180: + beq .L1179 + b .L1198 +.L1176: mov r0, r4 - ldr r1, [sp, #48] - ldr r2, [r7, #8] - ldr r3, [r7, #12] + ldr r1, [sp, #44] + ldr r2, [r6, #8] + ldr r3, [r6, #12] blx r5 cmn r0, #1 mov ip, r0 - bne .L1205 - ldr r3, [r6, #1784] + bne .L1200 + ldr r3, [r9, #3320] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 cmp r3, #7 - bhi .L1186 + bhi .L1182 mov r0, r4 - ldrb r1, [r6, #3917] @ zero_extendqisi2 - ldr r2, .L1238+16 + ldrb r1, [r7, #-2731] @ zero_extendqisi2 + ldr r2, .L1233+12 mov r3, #0 bl HynixSetRRPara -.L1186: - ldr r1, [sp, #48] +.L1182: + ldr r1, [sp, #44] mov r0, r4 - ldr r2, [r7, #8] - ldr r3, [r7, #12] + ldr r2, [r6, #8] + ldr r3, [r6, #12] bl FlashReadRawPage - ldr r1, [r7, #4] - ldrb r2, [r6, #3905] @ zero_extendqisi2 + ldr r1, [r6, #4] + ldrb r2, [r7, #-2743] @ zero_extendqisi2 mov ip, r0 - ldr r0, .L1238+20 + ldr r0, .L1233+16 mov r3, ip str ip, [sp, #32] bl printk ldr ip, [sp, #32] cmn ip, #1 - bne .L1205 - ldrb r5, [r6, #3904] @ zero_extendqisi2 + bne .L1200 + ldrb r5, [r7, #-2744] @ zero_extendqisi2 cmp r5, #0 - beq .L1185 + beq .L1181 ldr r3, [sp, #12] mov r0, r4 cmp r3, #0 - beq .L1187 + beq .L1183 bl flash_enter_slc_mode - b .L1188 -.L1187: + b .L1184 +.L1183: bl flash_exit_slc_mode -.L1188: - ldr ip, [r10, #-3328] +.L1184: + ldr r3, .L1233+8 mov r0, r4 - ldr r1, [sp, #48] - ldr r2, [r7, #8] - ldr r3, [r7, #12] + ldr r1, [sp, #44] + ldr r2, [r6, #8] + ldr ip, [r3, #-1792] + ldr r3, [r6, #12] blx ip mov ip, r0 - b .L1205 -.L1237: + b .L1200 +.L1232: mov r0, r4 - ldr r1, [sp, #48] - ldr r2, [r7, #8] - ldr r3, [r7, #12] + ldr r1, [sp, #44] + ldr r2, [r6, #8] + ldr r3, [r6, #12] bl FlashReadRawPage mov ip, r0 - b .L1185 -.L1203: + b .L1181 +.L1198: mov r5, #0 -.L1184: - ldrb r3, [r6, #3905] @ zero_extendqisi2 +.L1180: + ldrb r3, [r7, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bls .L1185 - ldr r3, [r10, #-3328] + bls .L1181 + ldr r3, [r7, #-1792] cmp r3, #0 moveq ip, #256 - b .L1185 -.L1205: + b .L1181 +.L1200: mov r5, #0 -.L1185: +.L1181: cmp ip, #256 cmnne ip, #1 ldreq r3, [sp, #8] movne r3, #0 ldrne r2, [sp, #8] - streq ip, [r9, r3] - strne r3, [r9, r2] + streq ip, [r10, r3] + strne r3, [r10, r2] ldr r3, [sp, #8] - ldr r3, [r9, r3] + ldr r3, [r10, r3] cmn r3, #1 - bne .L1192 - ldr r1, [r7, #4] - ldr r0, .L1238+24 - ldrb r2, [r6, #3905] @ zero_extendqisi2 + bne .L1188 + ldr r1, [r6, #4] + ldr r0, .L1233+20 + ldrb r2, [r7, #-2743] @ zero_extendqisi2 bl printk - ldr r1, [r7, #12] + ldr r1, [r6, #12] cmp r1, #0 - beq .L1192 + beq .L1188 mov r2, #4 - ldr r0, .L1238+28 + ldr r0, .L1233+24 mov r3, r2 bl rknand_print_hex -.L1192: +.L1188: cmp r5, #0 - beq .L1194 - ldrb r3, [r6, #3905] @ zero_extendqisi2 + beq .L1190 + ldrb r3, [r7, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r8, r3, asr #2 - bls .L1195 - ldr r3, [r10, #-3328] + bls .L1191 + ldr r3, [r7, #-1792] cmp r3, #0 moveq r8, #256 -.L1195: +.L1191: ldr r3, [sp, #8] cmp r8, #256 cmnne r8, #1 add r3, r3, #36 movne r2, #0 - streq r8, [r9, r3] - strne r2, [r9, r3] -.L1194: + streq r8, [r10, r3] + strne r2, [r10, r3] +.L1190: ldr r3, [sp, #12] add fp, fp, r5 cmp r3, #0 - beq .L1166 - ldrb r3, [r6, #3904] @ zero_extendqisi2 + beq .L1162 + ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1166 + beq .L1162 mov r0, r4 bl flash_exit_slc_mode -.L1166: +.L1162: add fp, fp, #1 - b .L1163 -.L1236: + b .L1159 +.L1231: mov r0, #0 -.L1164: - ldr r3, .L1238 - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L1199 - bl __stack_chk_fail -.L1199: - add sp, sp, #60 +.L1228: + add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1239: +.L1234: .align 2 -.L1238: - .word __stack_chk_guard - .word .LANCHOR0 +.L1233: .word .LANCHOR1 + .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+3920 + .word .LANCHOR2-2728 .word .LC18 .word .LC15 .word .LC17 @@ -6910,106 +6857,94 @@ FlashReadPages: .type FlashLoadFactorBbt, %function FlashLoadFactorBbt: .fnstart - @ args = 0, pretend = 0, frame = 56 + @ args = 0, pretend = 0, frame = 48 @ 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 #60 - sub sp, sp, #60 - ldr r4, .L1254 mov r1, #0 - ldr r5, .L1254+4 + ldr r5, .L1248 + .pad #52 + sub sp, sp, #52 mov r2, #16 - ldr r0, .L1254+8 + ldr r9, .L1248+4 + add r0, r5, #1020 + ldr fp, .L1248+8 + ldrh r7, [r5, #12] mvn r10, #0 - ldr r3, [r4] - ldrh ip, [r5, #14] - ldr r9, .L1254+12 - str r3, [sp, #52] - ldrh r3, [r5, #12] - mov r5, #0 - ldr fp, .L1254+16 - mov r8, r5 - smulbb r3, r3, ip - uxth r6, r3 + ldrh r4, [r5, #14] bl ftl_memset - ldr r3, [r9, #-3304] - str r5, [sp, #24] - str r3, [sp, #28] - str r4, [sp, #4] -.L1241: - ldrb r3, [fp, #1612] @ zero_extendqisi2 + ldr r3, [r9, #-1768] + 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 uxtb r7, r5 cmp r3, r7 - bls .L1253 + bls .L1247 mul ip, r6, r7 sub r4, r6, #1 sub r3, r6, #12 uxth r4, r4 -.L1242: +.L1237: cmp r4, r3 - ble .L1244 + ble .L1239 add r2, ip, r4 mov r1, #1 - add r0, sp, #16 - str r3, [sp, #12] + add r0, sp, #12 + str r3, [sp, #4] mov r2, r2, asl #10 - str r2, [sp, #20] + str r2, [sp, #16] mov r2, r1 - str ip, [sp, #8] + str ip, [sp] bl FlashReadPages - ldr r2, [sp, #16] - ldr ip, [sp, #8] + ldr r2, [sp, #12] + ldr ip, [sp] cmn r2, #1 - ldr r3, [sp, #12] - beq .L1243 - ldr r2, [r9, #-3304] + ldr r3, [sp, #4] + beq .L1238 + ldr r2, [r9, #-1768] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L1243 + bne .L1238 mov r1, r7 - ldr r0, .L1254+20 + ldr r0, .L1248+12 mov r2, r4 mov r7, r7, asl #1 bl printk - ldr r3, .L1254+8 + ldr r3, .L1248+16 add r8, r8, #1 strh r4, [r3, r7] @ movhi uxth r8, r8 - b .L1244 -.L1243: + b .L1239 +.L1238: sub r4, r4, #1 uxth r4, r4 - b .L1242 -.L1244: - ldr r3, .L1254+16 + b .L1237 +.L1239: + ldr r3, .L1248+8 add r5, r5, #1 - ldrb r3, [r3, #1612] @ zero_extendqisi2 + ldrb r3, [r3, #3148] @ zero_extendqisi2 cmp r3, r8 moveq r10, #0 - b .L1241 -.L1253: - ldr r3, [sp, #4] + b .L1236 +.L1247: mov r0, r10 - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L1248 - bl __stack_chk_fail -.L1248: - add sp, sp, #60 + add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1255: +.L1249: .align 2 -.L1254: - .word __stack_chk_guard - .word .LANCHOR0+3876 - .word .LANCHOR2-3288 +.L1248: + .word .LANCHOR2-2772 .word .LANCHOR2 .word .LANCHOR0 .word .LC19 + .word .LANCHOR2-1752 .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 2 @@ -7019,102 +6954,92 @@ FlashReadFacBbtData: .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} - .pad #44 - sub sp, sp, #44 - ldr r9, .L1272 - mov r10, r2 - ldr r8, .L1272+4 - mov r5, r0 - mov r7, r1 - ldr r3, [r9] - str r3, [sp, #36] - ldr r3, .L1272+8 - ldrh r2, [r3, #12] + ldr r3, .L1265 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + mov r8, r2 ldrh r4, [r3, #14] - ldr r3, [r8, #-3408] + .pad #40 + sub sp, sp, #40 + ldrh r2, [r3, #12] + mov r5, r0 + ldr r9, .L1265+4 + mov r7, r1 smulbb r4, r2, r4 - str r3, [sp, #8] - ldr r3, [r8, #-3304] - str r3, [sp, #12] - uxth r0, r4 - sub r6, r0, #1 - sub r4, r0, #16 - mul fp, r0, r1 + ldr r2, [r9, #-1872] + str r2, [sp, #12] + ldr r2, [r9, #-1768] + uxth r3, r4 + sub r6, r3, #1 + sub r4, r3, #16 + mul r10, r3, r1 uxth r6, r6 -.L1257: + str r2, [sp, #16] +.L1251: cmp r6, r4 - ble .L1271 + ble .L1264 mov r1, #1 - add r3, r6, fp - mov r0, sp + add r3, r6, r10 + add r0, sp, #4 mov r2, r1 mov r3, r3, asl #10 - str r3, [sp, #4] + str r3, [sp, #8] bl FlashReadPages - ldr r3, [sp] + ldr r3, [sp, #4] cmn r3, #1 - beq .L1258 - ldr r3, [r8, #-3304] + beq .L1252 + ldr r3, [r9, #-1768] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L1258 + bne .L1252 cmp r5, #0 moveq r0, r5 - beq .L1259 + beq .L1253 cmp r7, #0 - ldreq ip, .L1272+4 + ldreq ip, .L1265+4 moveq lr, #1 - beq .L1260 -.L1262: - ldr r1, [r8, #-3408] - mov r2, r10 + beq .L1254 +.L1256: + ldr r1, [r9, #-1872] + mov r2, r8 mov r0, r5 bl ftl_memcpy mov r2, #4 - ldr r0, .L1272+12 + ldr r0, .L1265+8 mov r1, r5 mov r3, r2 bl rknand_print_hex mov r0, #0 - b .L1259 -.L1260: - ldr r3, [r8, #-3316] + b .L1253 +.L1254: + ldr r3, [r9, #-1780] uxth r4, r7 add r7, r7, #1 cmp r4, r3 - bcs .L1262 - ldr r2, [ip, #-3408] - mov r1, r4, lsr #5 - and r0, r4, #31 - ldr r3, [r2, r1, asl #2] - orr r0, r3, lr, asl r0 - str r0, [r2, r1, asl #2] - b .L1260 -.L1258: + bcs .L1256 + ldr r1, [ip, #-1872] + 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: sub r6, r6, #1 uxth r6, r6 - b .L1257 -.L1271: - mvn r0, #0 -.L1259: - ldr r2, [sp, #36] - ldr r3, [r9] - cmp r2, r3 - beq .L1264 - bl __stack_chk_fail + b .L1251 .L1264: - add sp, sp, #44 + mvn r0, #0 +.L1253: + add sp, sp, #40 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1273: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L1266: .align 2 -.L1272: - .word __stack_chk_guard +.L1265: + .word .LANCHOR2-2772 .word .LANCHOR2 - .word .LANCHOR0+3876 .word .LC20 .fnend .size FlashReadFacBbtData, .-FlashReadFacBbtData @@ -7125,36 +7050,36 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1285 + ldr r3, .L1278 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 - ldr r3, [r3, #1784] - ldr r6, .L1285+4 + ldr r3, [r3, #3320] + ldr r6, .L1278+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] - ldr r0, [r6, #-3308] + ldr r0, [r6, #-1772] smulbb r4, r4, r3 uxth r4, r4 add r2, r4, #7 mov r2, r2, asr #3 bl FlashReadFacBbtData cmn r0, #1 - bne .L1275 -.L1279: + bne .L1268 +.L1272: mov r3, #0 - b .L1276 -.L1275: + b .L1269 +.L1268: mov lr, r4, lsr #4 mov ip, #0 sub r4, r4, #1 mov r3, ip mov r7, #1 -.L1277: +.L1270: uxth r0, ip cmp r0, r4 - bge .L1276 - ldr r8, [r6, #-3308] + bge .L1269 + ldr r8, [r6, #-1772] mov r1, r0, lsr #5 and r2, r0, #31 add ip, ip, #1 @@ -7165,17 +7090,17 @@ FlashGetBadBlockList: strneh r0, [r5, r3] @ movhi uxthne r3, r2 cmp r3, lr - bcc .L1277 - b .L1279 -.L1276: + bcc .L1270 + b .L1272 +.L1269: mov r3, r3, asl #1 mvn r2, #0 mov r0, #0 strh r2, [r5, r3] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1286: +.L1279: .align 2 -.L1285: +.L1278: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7191,69 +7116,67 @@ FlashProgSlc2KPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 sub sp, sp, #68 - mov r9, r2 - ldr r8, .L1319 - str r3, [sp, #8] + ldr r8, .L1311 mov r6, r1 - ldr r3, .L1319+4 - mov r4, r0 - mov fp, r0 - mov r7, #0 - ldr r2, [r3] str r3, [sp, #12] - str r2, [sp, #60] - ldr r2, .L1319+8 - ldrb r10, [r2, #265] @ zero_extendqisi2 -.L1288: + 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: cmp r7, r6 - beq .L1318 + beq .L1310 rsb r3, r7, r6 - add r2, sp, #16 - mov r0, fp + add r2, sp, #20 + mov r0, r10 mov r1, r9 uxtb r3, r3 str r3, [sp] - add r3, sp, #20 + add r3, sp, #24 bl LogAddr2PhyAddr - ldrb r2, [r8, #1612] @ zero_extendqisi2 - ldr r3, [sp, #20] + ldrb r2, [r8, #3148] @ zero_extendqisi2 + ldr r3, [sp, #24] cmp r3, r2 mvncs r3, #0 - strcs r3, [fp] - bcs .L1290 + strcs r3, [r10] + bcs .L1283 add r3, r8, r3 - ldrb r5, [r3, #1616] @ zero_extendqisi2 + ldrb r5, [r3, #3152] @ zero_extendqisi2 mov r0, r5 bl NandcWaitFlashReady mov r0, r5 bl NandcFlashCs mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashProgFirstCmd - ldr r3, [fp, #12] - mov r2, r10 + ldr r3, [r10, #12] mov r1, #1 mov r0, r5 + ldr r2, [sp, #8] str r3, [sp] - ldr r3, [fp, #8] + ldr r3, [r10, #8] bl NandcXferData mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashProgSecondCmd mov r0, r5 bl NandcWaitFlashReady mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashReadStatus - ldr r3, [sp, #16] + ldr r3, [sp, #20] sbfx r0, r0, #0, #1 - str r0, [fp] + str r0, [r10] mov r0, r5 ldr r1, [r8, #4] add r1, r1, r3 bl FlashProgFirstCmd - ldr r3, [fp, #8] - ldr r2, [fp, #12] + ldr r3, [r10, #8] + ldr r2, [r10, #12] mov r1, #1 cmp r3, #0 mov r0, r5 @@ -7261,131 +7184,122 @@ FlashProgSlc2KPages: cmp r2, #0 addne r2, r2, #8 str r2, [sp] - mov r2, r10 + ldr r2, [sp, #8] bl NandcXferData - ldr r1, [r8, #4] + ldr r1, [fp, #4] mov r0, r5 - ldr r3, [sp, #16] + ldr r3, [sp, #20] add r1, r1, r3 bl FlashProgSecondCmd mov r0, r5 bl NandcWaitFlashReady mov r0, r5 - ldr r1, [sp, #16] + ldr r1, [sp, #20] bl FlashReadStatus tst r0, #1 mov r0, r5 mvnne r3, #0 - strne r3, [fp] + strne r3, [r10] bl NandcFlashDeCs -.L1290: +.L1283: add r7, r7, #1 - add fp, fp, #36 - b .L1288 -.L1318: - ldr r3, [sp, #8] - cmp r3, #0 - bne .L1306 -.L1302: + add r10, r10, #36 + b .L1281 +.L1310: ldr r3, [sp, #12] - mov r0, #0 - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L1303 - bl __stack_chk_fail -.L1306: - ldr r5, .L1319+12 + cmp r3, #0 + beq .L1308 + ldr r5, .L1311+8 mov r7, #0 mov r8, r5 -.L1295: +.L1288: cmp r7, r6 - beq .L1302 + beq .L1308 ldr r3, [r4] cmn r3, #1 - bne .L1296 + bne .L1289 ldr r1, [r4, #4] - ldr r0, .L1319+16 + ldr r0, .L1311+12 bl printk - b .L1297 -.L1296: + b .L1290 +.L1289: rsb r3, r7, r6 mov r1, r9 - add r2, sp, #16 + add r2, sp, #20 mov r0, r4 uxtb r3, r3 str r3, [sp] - add r3, sp, #20 + add r3, sp, #24 bl LogAddr2PhyAddr - ldr r2, [r5, #-3300] + ldr r2, [r5, #-1764] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r5, #-3296] + ldr r2, [r5, #-1760] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} - add ip, sp, #24 + add ip, sp, #28 stmia ip!, {r0, r1, r2, r3} ldmia lr!, {r0, r1, r2, r3} stmia ip!, {r0, r1, r2, r3} - add r0, sp, #24 + add r0, sp, #28 ldr r3, [lr] mov r1, #1 mov r2, r9 str r3, [ip] - ldr r3, [r5, #-3300] - str r3, [sp, #32] - ldr r3, [r5, #-3296] + ldr r3, [r5, #-1764] str r3, [sp, #36] + ldr r3, [r5, #-1760] + str r3, [sp, #40] bl FlashReadPages - ldr r10, [sp, #24] + ldr r10, [sp, #28] cmn r10, #1 - bne .L1298 - ldr r0, .L1319+20 + bne .L1291 + ldr r0, .L1311+16 ldr r1, [r4, #4] bl printk str r10, [r4] -.L1298: +.L1291: ldr r3, [r4, #12] cmp r3, #0 - beq .L1299 + beq .L1292 ldr r2, [r3] - ldr r3, [r8, #-3296] + ldr r3, [r8, #-1760] ldr r3, [r3] cmp r2, r3 - beq .L1299 - ldr r0, .L1319+24 + beq .L1292 + ldr r0, .L1311+20 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1299: +.L1292: ldr r3, [r4, #8] cmp r3, #0 - beq .L1297 + beq .L1290 ldr r2, [r3] - ldr r3, [r8, #-3300] + ldr r3, [r8, #-1764] ldr r3, [r3] cmp r2, r3 - beq .L1297 - ldr r0, .L1319+28 + beq .L1290 + ldr r0, .L1311+24 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1297: +.L1290: add r7, r7, #1 add r4, r4, #36 - b .L1295 -.L1303: + b .L1288 +.L1308: + mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1320: +.L1312: .align 2 -.L1319: +.L1311: .word .LANCHOR0 - .word __stack_chk_guard .word .LANCHOR1 .word .LANCHOR2 .word .LC21 @@ -7399,317 +7313,306 @@ FlashProgSlc2KPages: .type FlashProgPages, %function FlashProgPages: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L1379 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 - ldr ip, [ip] - mov r4, r0 - ldr r6, .L1379+4 - mov r9, r2 - str r1, [sp, #8] - str ip, [sp, #68] - ldr ip, [r6, #1784] - ldrb r8, [r6] @ zero_extendqisi2 - str r3, [sp, #20] + .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 r8, #0 - str ip, [sp, #16] - ldr ip, .L1379+8 + cmp r7, #0 + str ip, [sp, #24] + ldr ip, .L1369+4 ldrb ip, [ip, #265] @ zero_extendqisi2 - str ip, [sp, #12] - beq .L1322 + str ip, [sp, #20] + beq .L1341 bl FlashProgSlc2KPages - b .L1323 -.L1336: - mov r7, #36 - ldr r3, [sp, #8] - mul r7, r7, r8 - rsb r3, r8, r3 - add r2, sp, #24 - mov r1, r9 + b .L1315 +.L1341: + ldr r9, .L1369+8 + 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 uxtb r3, r3 str r3, [sp] - add fp, r4, r7 - add r3, sp, #28 - mov r0, fp + add r3, sp, #40 bl LogAddr2PhyAddr - ldrb r2, [r6, #1612] @ zero_extendqisi2 - ldr r3, [sp, #28] + ldrb r2, [r6, #3148] @ zero_extendqisi2 + ldr r3, [sp, #40] mov r10, r0 cmp r3, r2 + ldrcs r2, [sp, #12] mvncs r3, #0 - strcs r3, [r4, r7] - bcc .L1376 -.L1325: - add r8, r8, #1 -.L1322: - ldr r3, [sp, #8] - ldr r5, .L1379+4 - cmp r8, r3 - bcc .L1336 - b .L1377 -.L1376: - ldr r1, .L1379+12 + strcs r3, [r4, r2] + bcs .L1317 + ldrb r1, [r9, #-1804] @ zero_extendqisi2 add r3, r6, r3, asl #4 - ldr r3, [r3, #1664] - ldrb r1, [r1, #-3340] @ zero_extendqisi2 cmp r1, #0 + ldr r3, [r3, #3200] moveq r10, #0 cmp r3, #0 - beq .L1327 + beq .L1319 cmp r2, #1 - bne .L1328 - ldr r0, [r6, #3840] + bne .L1320 + ldr r3, .L1369+8 + ldr r0, [r3, #-2808] bl NandcIqrWaitFlashReady -.L1328: - ldrb r0, [sp, #28] @ zero_extendqisi2 +.L1320: + ldrb r0, [sp, #40] @ zero_extendqisi2 bl FlashWaitCmdDone -.L1327: - ldr r3, [sp, #28] +.L1319: + ldr r3, [sp, #40] mov r1, #0 cmp r10, #0 add r2, r6, r3, asl #4 - str r1, [r2, #1668] - ldr r1, [sp, #24] - str fp, [r2, #1664] - str r1, [r2, #1660] - addne r1, r7, #36 + str r1, [r2, #3204] + ldr r1, [sp, #36] + str fp, [r2, #3200] + str r1, [r2, #3196] + ldrne r1, [sp, #12] + addne r1, r1, #36 addne r1, r4, r1 - strne r1, [r2, #1668] + strne r1, [r2, #3204] add r2, r6, r3 add r3, r6, r3, asl #4 - ldrb r5, [r2, #1616] @ zero_extendqisi2 - strb r5, [r3, #1656] + ldrb r5, [r2, #3152] @ zero_extendqisi2 + strb r5, [r3, #3192] mov r0, r5 - ldrb r3, [r6, #1612] @ zero_extendqisi2 + ldrb r3, [r6, #3148] @ zero_extendqisi2 cmp r3, #1 - bne .L1330 + bne .L1322 bl NandcWaitFlashReady - b .L1331 -.L1330: + b .L1323 +.L1322: bl NandcFlashCs mov r0, r5 - ldr r3, [sp, #28] - ldr r1, [sp, #24] + ldr r3, [sp, #40] + ldr r1, [sp, #36] add r3, r6, r3, asl #2 - ldr r2, [r3, #1624] + ldr r2, [r3, #3160] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN mov r0, r5 bl NandcFlashDeCs -.L1331: - ldr r3, [sp, #16] +.L1323: + ldr r3, [sp, #24] sub r3, r3, #1 cmp r3, #7 - bhi .L1332 - ldr r3, .L1379+12 - add r3, r3, r5 - ldrb r3, [r3, #-3416] @ zero_extendqisi2 + bhi .L1324 + add r3, r9, r5 + ldrb r3, [r3, #-1880] @ zero_extendqisi2 cmp r3, #0 - beq .L1332 + beq .L1324 mov r0, r5 - ldrb r1, [r6, #3917] @ zero_extendqisi2 - ldr r2, .L1379+16 + ldrb r1, [r9, #-2731] @ zero_extendqisi2 + ldr r2, .L1369+12 mov r3, #0 bl HynixSetRRPara -.L1332: +.L1324: mov r0, r5 bl NandcFlashCs - cmp r9, #1 + cmp r8, #1 mov r0, r5 - bne .L1333 - ldrb r3, [r6, #3904] @ zero_extendqisi2 + bne .L1325 + ldrb r3, [r9, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1333 + beq .L1325 bl flash_enter_slc_mode - b .L1334 -.L1333: + b .L1326 +.L1325: bl flash_exit_slc_mode -.L1334: +.L1326: mov r0, r5 - ldr r1, [sp, #24] + ldr r1, [sp, #36] bl FlashProgFirstCmd ldr r3, [fp, #12] mov r0, r5 mov r1, #1 str r3, [sp] - ldr r2, [sp, #12] + ldr r2, [sp, #20] ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L1335 + beq .L1327 mov r0, r5 - ldr r1, [sp, #24] + ldr r1, [sp, #36] bl FlashProgDpFirstCmd mov r0, r5 - add r7, r7, #36 - add r7, r4, r7 - ldr r3, [sp, #28] - ldr r1, [sp, #24] + ldr r3, [sp, #40] + ldr r1, [sp, #36] add r3, r6, r3, asl #2 - ldr r2, [r3, #1624] + ldr r2, [r3, #3160] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN ldr r1, [r6, #4] mov r0, r5 - ldr r3, [sp, #24] + ldr r3, [sp, #36] add r1, r1, r3 bl FlashProgDpSecondCmd - ldr r3, [r7, #12] mov r0, r5 mov r1, #1 - str r3, [sp] - ldr r2, [sp, #12] - ldr r3, [r7, #8] + 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] bl NandcXferData -.L1335: +.L1327: mov r0, r5 - ldr r1, [sp, #24] + ldr r1, [sp, #36] bl FlashProgSecondCmd mov r0, r5 bl NandcFlashDeCs - add r8, r8, r10 - b .L1325 -.L1377: - ldr r0, [r5, #3840] - mov r6, #0 + 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 - ldr r8, .L1379+20 - mov r7, r5 -.L1337: - ldrb r3, [r5, #1612] @ zero_extendqisi2 - cmp r6, r3 - bcs .L1378 - uxtb r0, r6 +.L1329: + ldrb r3, [r5, #3148] @ zero_extendqisi2 + cmp r7, r3 + bcs .L1368 + uxtb r0, r7 bl FlashWaitCmdDone - cmp r9, #1 - bne .L1338 - ldrb r3, [r7, #3904] @ zero_extendqisi2 + cmp r8, #1 + bne .L1330 + ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1338 - ldrb r0, [r8, r6, asl #4] @ zero_extendqisi2 + beq .L1330 + ldrb r0, [r9, r7, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L1338: - add r6, r6, #1 - b .L1337 -.L1378: - ldr r3, [sp, #20] +.L1330: + add r7, r7, #1 + b .L1329 +.L1368: + ldr r3, [sp, #28] cmp r3, #0 - bne .L1340 -.L1348: - mov r0, #0 - b .L1323 + movne r5, #0 + bne .L1333 .L1340: - ldr r5, .L1379+12 - mov r6, #0 - mov r7, r5 -.L1341: - ldr r3, [sp, #8] - cmp r6, r3 - beq .L1348 + mov r0, #0 + b .L1315 +.L1339: ldr r3, [r4] cmn r3, #1 - bne .L1342 + bne .L1334 + ldr r0, .L1369+20 ldr r1, [r4, #4] - ldr r0, .L1379+24 bl printk - b .L1343 -.L1342: - ldr r3, [sp, #8] - mov r1, r9 - add r2, sp, #24 +.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 mov r0, r4 - rsb r3, r6, r3 + rsb r3, r5, r3 uxtb r3, r3 str r3, [sp] - add r3, sp, #28 + add r3, sp, #40 bl LogAddr2PhyAddr - ldr r2, [r5, #-3300] + ldr r2, [r6, #-1764] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r5, #-3296] + ldr r2, [r6, #-1760] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} - add ip, sp, #32 + add ip, sp, #44 stmia ip!, {r0, r1, r2, r3} ldmia lr!, {r0, r1, r2, r3} stmia ip!, {r0, r1, r2, r3} - add r0, sp, #32 + add r0, sp, #44 ldr r3, [lr] mov r1, #1 - mov r2, r9 + mov r2, r8 str r3, [ip] - ldr r3, [r5, #-3300] - str r3, [sp, #40] - ldr r3, [r5, #-3296] - str r3, [sp, #44] + ldr r3, [r6, #-1764] + str r3, [sp, #52] + ldr r3, [r6, #-1760] + str r3, [sp, #56] bl FlashReadPages - ldr r8, [sp, #32] - cmn r8, #1 - bne .L1344 - ldr r0, .L1379+28 + ldr r7, [sp, #44] + cmn r7, #1 + bne .L1336 + ldr r0, .L1369+24 ldr r1, [r4, #4] bl printk - str r8, [r4] -.L1344: + str r7, [r4] +.L1336: ldr r3, [r4, #12] cmp r3, #0 - beq .L1345 + beq .L1337 ldr r2, [r3] - ldr r3, [r7, #-3296] + ldr r3, [r6, #-1760] ldr r3, [r3] cmp r2, r3 - beq .L1345 - ldr r0, .L1379+32 + beq .L1337 + ldr r0, .L1369+28 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1345: +.L1337: ldr r3, [r4, #8] cmp r3, #0 - beq .L1343 + beq .L1335 ldr r2, [r3] - ldr r3, [r7, #-3300] + ldr r3, [r6, #-1764] ldr r3, [r3] cmp r2, r3 - beq .L1343 - ldr r0, .L1379+36 + beq .L1335 + ldr r0, .L1369+32 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1343: - add r6, r6, #1 - add r4, r4, #36 - b .L1341 -.L1323: - ldr r3, .L1379 - ldr r2, [sp, #68] - ldr r3, [r3] - cmp r2, r3 - beq .L1349 - bl __stack_chk_fail -.L1349: - add sp, sp, #76 + b .L1335 +.L1315: + add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1380: +.L1370: .align 2 -.L1379: - .word __stack_chk_guard +.L1369: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR2 - .word .LANCHOR0+3920 - .word .LANCHOR0+1656 + .word .LANCHOR2-2728 + .word .LANCHOR0+3192 .word .LC21 .word .LC22 .word .LC23 @@ -7723,65 +7626,54 @@ FlashTestBlk: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1386 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - .pad #104 - sub sp, sp, #104 - ldr r2, [r3] - mov r4, r0 - ldr r5, .L1386+4 - mov r6, r3 - str r2, [sp, #100] - ldr r2, [r5, #-3316] - cmp r0, r2 + stmfd sp!, {r4, r5, lr} + .save {r4, r5, lr} + .pad #108 + sub sp, sp, #108 + ldr r5, .L1375 + ldr r3, [r5, #-1780] + cmp r0, r3 movcc r4, #0 - bcc .L1382 - ldr r3, [r5, #-3308] - add r0, sp, #36 + bcc .L1372 + ldr r3, [r5, #-1772] + mov r4, r0 mov r1, #165 + add r0, sp, #40 mov r2, #32 - str r0, [sp, #12] - mov r4, r4, asl #10 - str r3, [sp, #8] + str r0, [sp, #16] + str r3, [sp, #12] bl ftl_memset mov r1, #90 mov r2, #8 - ldr r0, [r5, #-3308] + ldr r0, [r5, #-1772] + mov r4, r4, asl #10 bl ftl_memset mov r1, #1 mov r2, r1 - mov r0, sp - str r4, [sp, #4] + add r0, sp, #4 + str r4, [sp, #8] bl FlashEraseBlocks mov r1, #1 mov r2, r1 mov r3, r1 - mov r0, sp + add r0, sp, #4 bl FlashProgPages mov r1, #0 mov r2, #1 - ldr r4, [sp] - mov r0, sp + ldr r4, [sp, #4] + add r0, sp, #4 adds r4, r4, #0 movne r4, #1 rsb r4, r4, #0 bl FlashEraseBlocks -.L1382: - ldr r2, [sp, #100] +.L1372: mov r0, r4 - ldr r3, [r6] - cmp r2, r3 - beq .L1383 - bl __stack_chk_fail -.L1383: - add sp, sp, #104 + add sp, sp, #108 @ sp needed - ldmfd sp!, {r4, r5, r6, pc} -.L1387: + ldmfd sp!, {r4, r5, pc} +.L1376: .align 2 -.L1386: - .word __stack_chk_guard +.L1375: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -7790,84 +7682,81 @@ FlashTestBlk: .type FlashMakeFactorBbt, %function FlashMakeFactorBbt: .fnstart - @ args = 0, pretend = 0, frame = 88 + @ args = 0, pretend = 0, frame = 80 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1444 - mov r1, #1 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #92 - sub sp, sp, #92 - ldr r3, [r3] - ldr r4, .L1444+4 - ldr r6, .L1444+8 - str r3, [sp, #84] - ldr r3, [r4, #-3304] - ldr r5, .L1444+12 - ldrh r8, [r6, #12] + .pad #84 + sub sp, sp, #84 + ldr r4, .L1432 + mov r1, #1 + ldr r5, .L1432+4 + ldr r0, .L1432+8 + ldr r3, [r4, #-1768] + ldrh r8, [r5, #12] + ldr r7, .L1432+12 str r3, [sp, #20] - ldrh r3, [r6, #14] - ldr r0, .L1444+16 - ldr r7, .L1444+12 + ldrh r3, [r5, #14] smulbb r8, r8, r3 - ldr r3, [r5, #1784] - ldrb r3, [r3, #24] @ zero_extendqisi2 + ldr r3, .L1432+12 + ldr r2, [r3, #3320] uxth r8, r8 - str r3, [sp, #24] - ldrh r3, [r5, #4] - str r3, [sp, #16] - ldrb r3, [r5] @ zero_extendqisi2 + ldrb r2, [r2, #24] @ zero_extendqisi2 + str r2, [sp, #24] + ldrh r2, [r3, #4] + ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #1 - ldreq r3, [sp, #16] + str r2, [sp, #16] + moveq r3, r2 moveq r3, r3, asl #1 uxtheq r3, r3 streq r3, [sp, #16] bl printk - ldr r0, [r4, #-3304] + ldr r0, [r4, #-1768] mov r1, #0 mov r2, #4096 bl ftl_memset - ldr r4, .L1444+4 + ldr r4, .L1432 mov r3, r8, lsr #4 str r3, [sp, #28] mov r3, #0 str r3, [sp, #8] -.L1390: +.L1379: ldrb r6, [sp, #8] @ zero_extendqisi2 - ldrb r3, [r7, #1612] @ zero_extendqisi2 + ldrb r3, [r7, #3148] @ zero_extendqisi2 cmp r3, r6 - bls .L1440 - ldr r2, .L1444+20 - mov r3, r6, asl #1 - ldrh r5, [r2, r3] + bls .L1428 + ldr r3, .L1432+16 + mov r2, r6, asl #1 + ldrh r5, [r3, r2] cmp r5, #0 - bne .L1420 - ldr r3, .L1444+8 + bne .L1408 + sub r3, r3, #1020 + ldr r0, [r4, #-1872] mov r1, r5 - ldr r0, [r4, #-3408] mov r9, r5 ldrh r2, [r3, #20] mov r2, r2, asl #9 bl ftl_memset add r3, r7, r6 - ldrb r10, [r3, #1616] @ zero_extendqisi2 + ldrb r10, [r3, #3152] @ zero_extendqisi2 mov r3, r6, asl #2 add fp, r7, r3 str r5, [sp, #4] str r3, [sp, #32] -.L1392: +.L1381: ldrh r3, [sp, #4] cmp r3, r8 str r3, [sp, #12] - bcs .L1401 + bcs .L1390 mvn r3, #0 - strb r3, [sp, #46] - strb r3, [sp, #47] + strb r3, [sp, #42] + strb r3, [sp, #43] ldr r3, [sp, #24] tst r3, #1 - beq .L1394 - ldr r3, [fp, #1624] - add r2, sp, #46 + beq .L1383 + ldr r3, [fp, #3160] + add r2, sp, #42 mov r0, r10 add r3, r5, r3 str r3, [sp, #36] @@ -7876,71 +7765,71 @@ FlashMakeFactorBbt: ldrb r2, [r7] @ zero_extendqisi2 cmp r2, #1 ldr r3, [sp, #36] - bne .L1394 + bne .L1383 ldr r1, [r7, #4] - add r2, sp, #47 + add r2, sp, #43 mov r0, r10 add r1, r3, r1 bl FlashReadSpare - ldrb r3, [sp, #46] @ zero_extendqisi2 - ldrb r2, [sp, #47] @ zero_extendqisi2 + ldrb r3, [sp, #42] @ zero_extendqisi2 + ldrb r2, [sp, #43] @ zero_extendqisi2 and r3, r3, r2 - strb r3, [sp, #46] -.L1394: + strb r3, [sp, #42] +.L1383: ldr r3, [sp, #24] tst r3, #2 - beq .L1396 - ldr r3, [r7, #1784] + beq .L1385 + ldr r3, [r7, #3320] mov r0, r10 - add r2, sp, #47 + add r2, sp, #43 ldrh r1, [r3, #10] - ldr r3, [fp, #1624] + ldr r3, [fp, #3160] sub r1, r1, #1 add r1, r1, r3 add r1, r1, r5 bl FlashReadSpare -.L1396: - ldr r3, [r7, #1784] +.L1385: + ldr r3, [r7, #3320] ldrb r3, [r3, #7] @ zero_extendqisi2 cmp r3, #1 cmpne r3, #8 - ldrb r3, [sp, #46] @ zero_extendqisi2 - bne .L1397 + ldrb r3, [sp, #42] @ zero_extendqisi2 + bne .L1386 cmp r3, #0 - ldrneb r0, [sp, #47] @ zero_extendqisi2 + ldrneb r0, [sp, #43] @ zero_extendqisi2 clzne r0, r0 movne r0, r0, lsr #5 - bne .L1398 - b .L1419 -.L1397: + bne .L1387 + b .L1407 +.L1386: cmp r3, #255 - bne .L1419 - ldrb r0, [sp, #47] @ zero_extendqisi2 + bne .L1407 + ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 movne r0, #1 - b .L1398 -.L1419: + b .L1387 +.L1407: mov r0, #1 -.L1398: +.L1387: ldr r3, [sp, #24] tst r3, #4 - beq .L1399 - ldr r3, .L1444+12 + beq .L1388 + ldr r3, .L1432+12 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 - ldr r1, [r3, #1624] + ldr r1, [r3, #3160] add r1, r5, r1 bl SandiskProgTestBadBlock -.L1399: +.L1388: cmp r0, #0 - beq .L1400 + beq .L1389 mov r1, r6 ldr r2, [sp, #4] - ldr r0, .L1444+24 + ldr r0, .L1432+20 add r9, r9, #1 bl printk - ldr r1, [r4, #-3408] + ldr r1, [r4, #-1872] mov ip, #1 uxth r9, r9 ldr r3, [sp, #12] @@ -7950,53 +7839,53 @@ FlashMakeFactorBbt: orr r3, r2, ip, asl r3 ldr r2, [sp, #28] str r3, [r1, r0, asl #2] - ldrb r3, [r7, #1612] @ zero_extendqisi2 + ldrb r3, [r7, #3148] @ zero_extendqisi2 mul r3, r3, r2 cmp r9, r3 - bgt .L1401 -.L1400: + bgt .L1390 +.L1389: ldr r3, [sp, #4] add r3, r3, #1 str r3, [sp, #4] ldr r3, [sp, #16] add r5, r5, r3 - b .L1392 -.L1401: + b .L1381 +.L1390: mov r2, r9 - ldr r0, .L1444+28 + ldr r0, .L1432+24 mov r1, r6 bl printk - ldrb r3, [r7, #1612] @ zero_extendqisi2 + ldrb r3, [r7, #3148] @ zero_extendqisi2 ldr r2, [sp, #28] mul r3, r3, r2 cmp r9, r3 - blt .L1403 - ldr r3, .L1444+8 + blt .L1392 + ldr r3, .L1432+4 mov r1, #0 - ldr r0, [r4, #-3408] + ldr r0, [r4, #-1872] ldrh r2, [r3, #20] mov r2, r2, asl #9 bl ftl_memset -.L1403: +.L1392: cmp r6, #0 - bne .L1405 - ldr r3, [r4, #-3316] + bne .L1394 + ldr r3, [r4, #-1780] mov r5, r6 mov r9, #1 uxth r10, r3 -.L1406: - ldr r3, .L1444+12 +.L1395: + ldr r3, .L1432+12 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, r10 - bls .L1441 + bls .L1429 mov r0, r10 bl FlashTestBlk cmp r0, #0 - beq .L1407 + beq .L1396 mov r1, r10 - ldr r0, .L1444+32 + ldr r0, .L1432+28 bl printk - ldr r1, [r4, #-3408] + ldr r1, [r4, #-1872] mov r0, r10, lsr #5 add r5, r5, #1 and r3, r10, #31 @@ -8004,62 +7893,62 @@ FlashMakeFactorBbt: uxth r5, r5 orr r3, r2, r9, asl r3 str r3, [r1, r0, asl #2] -.L1407: +.L1396: add r10, r10, #1 uxth r10, r10 - b .L1406 -.L1441: + b .L1395 +.L1429: sub fp, r8, #1 sub r9, r8, #50 mov r10, #1 uxth fp, fp -.L1409: +.L1398: cmp fp, r9 - ble .L1442 + ble .L1430 mov r0, fp bl FlashTestBlk cmp r0, #0 - beq .L1410 + beq .L1399 mov r1, fp - ldr r0, .L1444+32 + ldr r0, .L1432+28 bl printk - ldr r1, [r4, #-3408] + ldr r1, [r4, #-1872] 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] -.L1410: +.L1399: sub fp, fp, #1 uxth fp, fp - b .L1409 -.L1442: - ldr r3, .L1444+12 - ldr r2, [r4, #-3316] + b .L1398 +.L1430: + ldr r3, .L1432+12 + ldr r2, [r4, #-1780] ldrb r3, [r3, #1] @ zero_extendqisi2 rsb r3, r2, r3 cmp r5, r3 - bcc .L1405 - ldr r3, .L1444+8 + bcc .L1394 + ldr r3, .L1432+4 mov r1, #0 - ldr r0, [r4, #-3408] + ldr r0, [r4, #-1872] ldrh r2, [r3, #20] mov r2, r2, asl #9 bl ftl_memset -.L1405: +.L1394: ldrb r5, [sp, #8] @ zero_extendqisi2 sub r10, r8, #1 - ldr r9, .L1444+20 + ldr r9, .L1432+16 uxth r10, r10 mul r5, r8, r5 add r9, r9, r6, asl #1 -.L1413: +.L1402: mov r1, r6 - ldr r0, .L1444+36 + ldr r0, .L1432+32 mov r2, r10 bl printk - ldr r1, [r4, #-3408] -.L1414: + ldr r1, [r4, #-1872] +.L1403: mov r2, r10, lsr #5 and r3, r10, #31 ldr r2, [r1, r2, asl #2] @@ -8067,60 +7956,52 @@ FlashMakeFactorBbt: ands r3, r3, #1 subne r10, r10, #1 uxthne r10, r10 - bne .L1414 -.L1443: + bne .L1403 +.L1431: ldr r1, [sp, #20] - add r0, sp, #48 - ldr r2, .L1444+40 + add r0, sp, #44 + ldr r2, .L1432+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, #-3408] + ldr r3, [r4, #-1872] mov r2, r1 + str r3, [sp, #52] + ldr r3, [r4, #-1768] str r3, [sp, #56] - ldr r3, [r4, #-3304] - str r3, [sp, #60] add r3, r10, r5 mov r3, r3, asl #10 - str r3, [sp, #52] + str r3, [sp, #48] bl FlashEraseBlocks mov r1, #1 mov r3, r1 mov r2, r1 - add r0, sp, #48 + add r0, sp, #44 bl FlashProgPages - ldr r3, [sp, #48] + ldr r3, [sp, #44] cmp r3, #0 subne r10, r10, #1 uxthne r10, r10 - bne .L1413 -.L1420: + bne .L1402 +.L1408: ldr r3, [sp, #8] add r3, r3, #1 str r3, [sp, #8] - b .L1390 -.L1440: - ldr r3, .L1444 - ldr r2, [sp, #84] - ldr r3, [r3] - cmp r2, r3 - beq .L1417 - bl __stack_chk_fail -.L1417: - add sp, sp, #92 + b .L1379 +.L1428: + add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1445: +.L1433: .align 2 -.L1444: - .word __stack_chk_guard +.L1432: .word .LANCHOR2 - .word .LANCHOR0+3876 - .word .LANCHOR0 + .word .LANCHOR2-2772 .word .LC25 - .word .LANCHOR2-3288 + .word .LANCHOR0 + .word .LANCHOR2-1752 .word .LC26 .word .LC27 .word .LC28 @@ -8138,13 +8019,13 @@ Ftl_log2: @ link register save eliminated. mov r1, #0 mov r2, #1 -.L1447: +.L1435: cmp r2, r0 uxth r3, r1 add r1, r1, #1 movls r2, r2, asl #1 - bls .L1447 -.L1449: + bls .L1435 +.L1437: sub r0, r3, #1 uxth r0, r0 bx lr @@ -8169,26 +8050,26 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1453 + ldr r3, .L1441 cmp r0, #23 - sub r2, r3, #3264 + sub r2, r3, #1728 movls r0, #24 - sub ip, r3, #3248 - str r0, [r3, #-3272] + sub ip, r3, #1712 + str r0, [r3, #-1736] ldrh r2, [r2, #-4] ldrh r1, [ip, #-10] mul r2, r2, r0 rsb r0, r0, r1 - ldr r1, [r3, #-3252] + ldr r1, [r3, #-1716] strh r0, [ip, #-12] @ movhi mov r0, #0 - str r2, [r3, #-3264] + str r2, [r3, #-1728] rsb r2, r2, r1 - str r2, [r3, #-3256] + str r2, [r3, #-1720] bx lr -.L1454: +.L1442: .align 2 -.L1453: +.L1441: .word .LANCHOR2 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -8197,119 +8078,120 @@ FtlSysBlkNumInit: .type FtlConstantsInit, %function FtlConstantsInit: .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 #28 + sub sp, sp, #28 + ldr r9, .L1471 mov r5, r0 ldrh r7, [r0, #8] - .pad #20 - sub sp, sp, #20 - ldr r0, .L1483 - mov r9, #0 - ldrh ip, [r5, #10] - ldrh r6, [r5, #12] - add r3, r0, #8 - ldrh r8, [r5, #14] - mov r4, r0 - strh r7, [r4], #16 @ movhi - str r0, [sp] - strh ip, [r4, #-14] @ movhi - strh r6, [r4, #-12] @ movhi - strh r8, [r0, #-10] @ movhi -.L1456: - strb r9, [r9, r3] - add r9, r9, #1 - cmp r9, #32 - bne .L1456 - ldrh r2, [r5, #14] - ldrh r3, [r5, #20] - cmp r3, r2, lsr #8 - bcs .L1457 - uxtb r9, r6 - mov r3, r9, asl #1 - uxtb r3, r3 - str r3, [sp, #8] - sub r3, ip, #1 - mul r3, r6, r3 + 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 str r3, [sp, #4] - mov r3, #0 -.L1458: - cmp r3, r6 - bcs .L1460 - ldr r1, [sp, #4] - rsb fp, r6, r3 - ldr r0, .L1483+4 - uxtb r2, r3 - ldr lr, .L1483+4 - add r1, r3, r1 - add r1, r0, r1 - str r1, [sp, #12] - add fp, lr, fp - mov r1, #0 - mov r0, r1 -.L1461: - cmp r0, ip - add r1, r1, r6 - bcs .L1482 - ldr lr, [sp, #12] - add r10, r2, r9 - strb r2, [fp, r1] - add r0, r0, #1 - strb r10, [lr, r1] - ldr lr, [sp, #8] - add r2, r2, lr - uxtb r2, r2 - b .L1461 -.L1482: - add r3, r3, #1 - b .L1458 -.L1460: - ldr r3, [sp] - mov ip, ip, asl #1 - mov r8, r8, lsr #1 - strh ip, [r4, #-14] @ movhi - strh r8, [r3, #-10] @ movhi -.L1457: - ldr r9, .L1483+8 - mov r3, #5 - cmp r7, #1 - ldr ip, .L1483+12 - ldrh fp, [r5, #16] - strh r3, [r9, #-8] @ movhi - mov r3, #0 - strh r3, [r9, #-6] @ movhi - mov r3, #4352 - strh r3, [r9, #-4] @ movhi - sub r8, ip, #3200 - ldr r3, .L1483+16 - streqh r7, [r9, #-8] @ movhi - ldrh r7, [r4, #-14] - ldrb r10, [r3] @ zero_extendqisi2 - ldrh r1, [r5, #18] - cmp r10, #0 - strh fp, [r8] @ movhi - smulbb r7, r7, r6 - ldrne r3, .L1483+8 - movne r2, #384 - str ip, [sp, #12] - str r1, [sp, #8] - strneh r2, [r3, #-4] @ movhi - sub r3, ip, #3264 +.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 - ldr r3, [sp] - mov r0, r2 - str r2, [sp, #4] - ldrh r4, [r3, #-10] + ldrne r2, .L1471+8 + movne r1, #384 smulbb r3, r7, fp - smulbb r6, r4, r6 strh r6, [r8, #-2] @ movhi - sub r6, ip, #3184 - strh r1, [r6, #-14] @ 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 + str r1, [sp, #8] + str r2, [sp, #4] bl Ftl_log2 cmp r4, #1024 ldr r2, [sp, #4] @@ -8328,7 +8210,7 @@ FtlConstantsInit: mov r5, ip strh r0, [r6, #-2] @ movhi mul r0, r4, r7 - str r0, [ip, #-3252] + str r0, [ip, #-1716] uxtbhi r0, r4 strhih r0, [r8, #-6] @ movhi ldrh r0, [r8, #-6] @@ -8340,9 +8222,9 @@ FtlConstantsInit: ldrh r0, [r8, #-4] mov r0, r0, asl #3 mov fp, fp, asr #11 - str fp, [ip, #-3184] + str fp, [ip, #-1648] bl __aeabi_idiv - ldr fp, .L1483+20 + ldr fp, .L1471+20 mov r1, r7 uxth r0, r0 ldr r3, [sp, #4] @@ -8359,32 +8241,32 @@ FtlConstantsInit: ldrh r2, [r8, #-4] uxth r0, r0 add r4, r0, #8 - ldr r10, .L1483+12 + ldr r10, .L1471+12 mov r2, r2, asr r3 mul r3, r7, r0 add r2, r2, #2 ldrh r0, [fp, #-12] strh r2, [fp, #-10] @ movhi - str r3, [r5, #-3172] + str r3, [r5, #-1636] bl __aeabi_uidiv cmp r7, #1 - ldr r7, .L1483+12 - sub r8, r7, #3152 + ldr r7, .L1471+12 uxtah r0, r4, r0 addeq r0, r0, #4 - str r0, [r10, #-3272] - ldr r3, [r5, #-3272] + str r0, [r10, #-1736] + ldr r3, [r5, #-1736] uxth r0, r3 bl FtlSysBlkNumInit - ldr r3, [r5, #-3272] - ldr r2, [r5, #-3256] + ldr r3, [r5, #-1736] + ldr r2, [r5, #-1720] mov r0, #2048 ldrh r4, [r6, #-8] - str r3, [r5, #-3168] - ldrh r3, [r9] + str r3, [r5, #-1632] + ldrh r3, [r8] mov r2, r2, asl #2 add r4, r4, #9 ldrh r6, [r6, #-10] + sub r8, r7, #1616 mul r3, r3, r2 mov r1, r6 mov r4, r3, lsr r4 @@ -8392,55 +8274,53 @@ FtlConstantsInit: uxth r4, r4 strh r4, [r8, #-12] @ movhi bl __aeabi_idiv - ldr r1, .L1483+16 mov r3, #0 - str r3, [r1, #3908] + str r3, [r5, #-2740] + sub r1, r7, #1632 ldrh r3, [fp, #-12] - ldrb r1, [r1, #3904] @ zero_extendqisi2 add r2, r3, #3 strh r2, [fp, #-12] @ movhi - cmp r1, #0 - ldr fp, [r5, #-3172] + ldr fp, [r5, #-1636] add r2, fp, #3 - str r2, [r5, #-3172] + str r2, [r5, #-1636] strh r0, [r8, #-10] @ movhi - sub r0, r7, #3168 + ldrb r0, [r5, #-2744] @ zero_extendqisi2 + cmp r0, #0 addne r3, r3, #4 addne fp, fp, #5 - strneh r3, [r0, #-12] @ movhi - strne fp, [r7, #-3172] - bne .L1471 -.L1470: + strneh r3, [r1, #-12] @ movhi + strne fp, [r7, #-1636] + bne .L1459 +.L1458: cmp r2, #7 movls r3, #8 - strls r3, [r7, #-3172] -.L1471: + strls r3, [r7, #-1636] +.L1459: + ldrh r2, [r9, #-12] mov r3, #0 strh r3, [r8, #-8] @ movhi - ldr r3, [sp] mov r0, #0 - ldrh r2, [r3, #-12] 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, .L1483+24 + ldrcc r3, .L1471+24 movcc r2, #1 strcch r2, [r3, #-8] @ movhi - add sp, sp, #20 + add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1484: +.L1472: .align 2 -.L1483: - .word .LANCHOR2-3248 - .word .LANCHOR2-3240 - .word .LANCHOR2-3200 +.L1471: + .word .LANCHOR2-1712 + .word .LANCHOR2-1704 + .word .LANCHOR2-1664 .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR2-3168 - .word .LANCHOR2-3152 + .word .LANCHOR2-1632 + .word .LANCHOR2-1616 .fnend .size FtlConstantsInit, .-FtlConstantsInit .align 2 @@ -8453,18 +8333,18 @@ FtlMemInit: 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, .L1590 + ldr r4, .L1578 movw r3, #65535 mov r0, #1024 mov r10, #36 - sub r2, r4, #3072 - sub r6, r4, #3056 - sub r7, r4, #3152 - str r3, [r4, #-3088] + sub r2, r4, #1536 + sub r6, r4, #1520 + sub r7, r4, #1616 + str r3, [r4, #-1552] strh r5, [r6, #-4] @ movhi mvn r3, #0 strh r5, [r6, #-2] @ movhi - sub r9, r4, #3264 + sub r9, r4, #1728 strh r3, [r2] @ movhi strh r3, [r6, #-14] @ movhi strh r3, [r6, #-12] @ movhi @@ -8474,128 +8354,128 @@ FtlMemInit: strh r3, [r6, #-8] @ movhi mov r3, #128 strh r3, [r6, #-6] @ movhi - sub r3, r4, #3040 - sub r6, r4, #3184 + sub r3, r4, #1504 + sub r6, r4, #1648 strh r5, [r7, #-6] @ movhi strh r5, [r3, #-14] @ movhi - str r5, [r4, #-3156] - str r5, [r4, #-3152] - str r5, [r4, #-3148] - str r5, [r4, #-3144] - str r5, [r4, #-3140] - str r5, [r4, #-3136] - str r5, [r4, #-3132] - str r5, [r4, #-3128] - str r5, [r4, #-3124] - str r5, [r4, #-3120] - str r5, [r4, #-3116] - str r5, [r4, #-3112] - str r5, [r4, #-3108] - str r5, [r4, #-3104] - str r5, [r4, #-3100] - str r5, [r4, #-3096] - str r5, [r4, #-3092] - str r5, [r4, #-3084] - str r5, [r4, #-3080] - str r5, [r4, #-3076] + str r5, [r4, #-1620] + str r5, [r4, #-1616] + str r5, [r4, #-1612] + str r5, [r4, #-1608] + str r5, [r4, #-1604] + str r5, [r4, #-1600] + str r5, [r4, #-1596] + str r5, [r4, #-1592] + str r5, [r4, #-1588] + str r5, [r4, #-1584] + str r5, [r4, #-1580] + str r5, [r4, #-1576] + str r5, [r4, #-1572] + str r5, [r4, #-1568] + str r5, [r4, #-1564] + str r5, [r4, #-1560] + str r5, [r4, #-1556] + str r5, [r4, #-1548] + str r5, [r4, #-1544] + str r5, [r4, #-1540] ldrh r1, [r6, #-10] bl __aeabi_idiv ldrh r8, [r9, #-4] - str r5, [r4, #-3048] + str r5, [r4, #-1512] mov r8, r8, asl #2 cmp r0, r8 - str r0, [r4, #-3052] + str r0, [r4, #-1516] ldrh r0, [r6, #-12] - strhi r8, [r4, #-3052] + strhi r8, [r4, #-1516] mov r8, #12 mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-3044] + str r0, [r4, #-1508] ldrh r0, [r6, #-12] mul r0, r8, r0 bl ftl_malloc ldrh r5, [r9, #-4] mul r5, r10, r5 mov fp, r5, asl #3 - str r0, [r4, #-3040] + str r0, [r4, #-1504] mov r0, fp bl ftl_malloc - str r0, [r4, #-3036] + str r0, [r4, #-1500] mov r0, r5 bl ftl_malloc - str r0, [r4, #-3032] + str r0, [r4, #-1496] mov r0, fp bl ftl_malloc - str r0, [r4, #-3028] + str r0, [r4, #-1492] mov r0, r5 bl ftl_malloc - str r0, [r4, #-3024] + str r0, [r4, #-1488] mov r0, r5 bl ftl_malloc - str r0, [r4, #-3020] - ldr r0, [r4, #-3052] + str r0, [r4, #-1484] + ldr r0, [r4, #-1516] mul r0, r10, r0 bl ftl_malloc ldrh r5, [r6, #-6] ldrh r3, [r9, #-4] mov r3, r3, asl #1 add r3, r3, #1 - str r3, [r4, #-3012] - str r0, [r4, #-3016] + str r3, [r4, #-1476] + str r0, [r4, #-1480] mov r0, r5 bl ftl_malloc - str r0, [r4, #-3008] + str r0, [r4, #-1472] mov r0, r5 bl ftl_malloc - str r0, [r4, #-3004] + str r0, [r4, #-1468] mov r0, r5 bl ftl_malloc - str r0, [r4, #-3000] - ldr r0, [r4, #-3012] + str r0, [r4, #-1464] + ldr r0, [r4, #-1476] mul r0, r0, r5 bl ftl_malloc - str r0, [r4, #-2996] - ldr r0, [r4, #-3052] + str r0, [r4, #-1460] + ldr r0, [r4, #-1516] mul r0, r0, r5 bl ftl_malloc - str r0, [r4, #-2992] + str r0, [r4, #-1456] mov r0, r5 bl ftl_malloc - str r0, [r4, #-2988] + str r0, [r4, #-1452] mov r0, r5 bl ftl_malloc - str r0, [r4, #-2984] - ldr r0, [r4, #-3012] + str r0, [r4, #-1448] + ldr r0, [r4, #-1476] mul r0, r8, r0 bl ftl_malloc ldrh r3, [r9, #-4] ldrh r5, [r6, #-4] mul r5, r3, r5 - str r0, [r4, #-2980] + str r0, [r4, #-1444] mov r0, r5 bl ftl_malloc - str r0, [r4, #-2976] + str r0, [r4, #-1440] mov r0, r5, asl #3 bl ftl_malloc ldrh r3, [r6, #-4] - ldr r5, .L1590+4 + ldr r5, .L1578+4 add r9, r5, #288 - str r0, [r4, #-2972] - ldr r0, [r4, #-3012] + str r0, [r4, #-1436] + ldr r0, [r4, #-1476] mul r0, r0, r3 bl ftl_malloc ldrh r3, [r6, #-4] - str r0, [r4, #-2968] - ldr r0, [r4, #-3052] + str r0, [r4, #-1432] + ldr r0, [r4, #-1516] mul r0, r0, r3 bl ftl_malloc - str r0, [r4, #-2964] + str r0, [r4, #-1428] ldrh r0, [r5, #-10] mov r0, r0, asl #1 uxth r0, r0 strh r0, [r9] @ movhi bl ftl_malloc - str r0, [r4, #-2956] + str r0, [r4, #-1420] ldrh r0, [r9] add r0, r0, #544 add r0, r0, #3 @@ -8605,72 +8485,72 @@ FtlMemInit: bl ftl_malloc ldrh r9, [r5, #-10] mov r9, r9, asl #1 - str r0, [r4, #-2952] + str r0, [r4, #-1416] add r0, r0, #32 - str r0, [r4, #-2948] + str r0, [r4, #-1412] mov r0, r9 bl ftl_malloc - str r0, [r4, #-2944] + str r0, [r4, #-1408] mov r0, r9 bl ftl_malloc - ldr r9, [r4, #-3172] + ldr r9, [r4, #-1636] mov r9, r9, asl #1 - str r0, [r4, #-2940] + str r0, [r4, #-1404] mov r0, r9 bl ftl_malloc - str r0, [r4, #-2936] + str r0, [r4, #-1400] mov r0, r9 bl ftl_malloc - str r0, [r4, #-2932] + str r0, [r4, #-1396] ldrh r0, [r5, #-10] mov r0, r0, lsr #3 add r0, r0, #4 bl ftl_malloc - str r0, [r4, #-2928] + str r0, [r4, #-1392] ldrh r0, [r5, #68] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-2924] + str r0, [r4, #-1388] ldrh r0, [r5, #68] mov r0, r0, asl #1 bl ftl_malloc - str r0, [r4, #-2920] + str r0, [r4, #-1384] ldrh r0, [r5, #68] mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-2916] + str r0, [r4, #-1380] ldrh r0, [r5, #70] mov r0, r0, asl #2 bl ftl_malloc ldrh r2, [r5, #70] mov r1, #0 mov r2, r2, asl #2 - str r0, [r4, #-2912] + str r0, [r4, #-1376] bl ftl_memset ldrh r9, [r7, #-12] mov r9, r9, asl #2 mov r0, r9 bl ftl_malloc - str r0, [r4, #-2908] + str r0, [r4, #-1372] mov r0, r9 bl ftl_malloc - str r0, [r4, #-2904] - ldr r0, [r4, #-3172] + str r0, [r4, #-1368] + ldr r0, [r4, #-1636] mov r0, r0, asl #2 bl ftl_malloc - str r0, [r4, #-2900] + str r0, [r4, #-1364] ldrh r0, [r7, #-10] mul r0, r8, r0 bl ftl_malloc ldrh r3, [r7, #-10] add r7, r5, #16 - str r0, [r4, #-2896] + str r0, [r4, #-1360] ldrh r0, [r6, #-6] add r6, r5, #368 mul r0, r0, r3 bl ftl_malloc ldrh r3, [r5, #-10] - str r0, [r4, #-2892] + str r0, [r4, #-1356] mov r0, #6 mul r0, r0, r3 bl ftl_malloc @@ -8678,7 +8558,7 @@ FtlMemInit: add r3, r3, #31 mov r3, r3, asr #5 strh r3, [r6, #-4] @ movhi - str r0, [r4, #-2888] + str r0, [r4, #-1352] ldrh r0, [r5, #2] mul r0, r0, r3 mov r0, r0, asl #2 @@ -8689,139 +8569,139 @@ FtlMemInit: mov r3, #1 mov r2, r2, asl #2 mov r1, r2 - str r0, [r4, #-2852] -.L1487: + str r0, [r4, #-1316] +.L1475: cmp r3, ip - bcs .L1588 - ldr r0, [r4, #-2852] + bcs .L1576 + ldr r0, [r4, #-1316] add r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [r5, #4]! - b .L1487 -.L1588: + b .L1475 +.L1576: mov r2, #0 -.L1489: +.L1477: cmp r3, #8 addne r1, r6, r3, asl #2 addne r3, r3, #1 strne r2, [r1, #28] - bne .L1489 -.L1589: - ldr r2, [r4, #-2936] - ldr r3, .L1590 + bne .L1477 +.L1577: + ldr r2, [r4, #-1400] + ldr r3, .L1578 cmp r2, #0 - bne .L1491 -.L1493: - ldr r1, .L1590+8 - ldr r0, .L1590+12 + bne .L1479 +.L1481: + ldr r1, .L1578+8 + ldr r0, .L1578+12 bl printk mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1491: - ldr r2, [r3, #-2932] +.L1479: + ldr r2, [r3, #-1396] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2908] + beq .L1481 + ldr r2, [r3, #-1372] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2900] + beq .L1481 + ldr r2, [r3, #-1364] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2896] + beq .L1481 + ldr r2, [r3, #-1360] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2892] + beq .L1481 + ldr r2, [r3, #-1356] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2888] + beq .L1481 + ldr r2, [r3, #-1352] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2852] + beq .L1481 + ldr r2, [r3, #-1316] cmp r2, #0 - beq .L1493 - ldr r3, [r3, #-2940] + beq .L1481 + ldr r3, [r3, #-1404] cmp r3, #0 - beq .L1493 - ldr r2, [r4, #-3044] - ldr r3, .L1590 + beq .L1481 + ldr r2, [r4, #-1508] + ldr r3, .L1578 cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-3040] + beq .L1481 + ldr r2, [r3, #-1504] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-3036] + beq .L1481 + ldr r2, [r3, #-1500] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-3028] + beq .L1481 + ldr r2, [r3, #-1492] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-3024] + beq .L1481 + ldr r2, [r3, #-1488] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-3020] + beq .L1481 + ldr r2, [r3, #-1484] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-3032] + beq .L1481 + ldr r2, [r3, #-1496] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-3008] + beq .L1481 + ldr r2, [r3, #-1472] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-3004] + beq .L1481 + ldr r2, [r3, #-1468] cmp r2, #0 - beq .L1493 - ldr r3, [r3, #-3000] + beq .L1481 + ldr r3, [r3, #-1464] cmp r3, #0 - beq .L1493 - ldr r2, [r4, #-2996] - ldr r3, .L1590 + beq .L1481 + ldr r2, [r4, #-1460] + ldr r3, .L1578 cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2988] + beq .L1481 + ldr r2, [r3, #-1452] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2984] + beq .L1481 + ldr r2, [r3, #-1448] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2980] + beq .L1481 + ldr r2, [r3, #-1444] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2976] + beq .L1481 + ldr r2, [r3, #-1440] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2972] + beq .L1481 + ldr r2, [r3, #-1436] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2968] + beq .L1481 + ldr r2, [r3, #-1432] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2948] + beq .L1481 + ldr r2, [r3, #-1412] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2956] + beq .L1481 + ldr r2, [r3, #-1420] cmp r2, #0 - beq .L1493 - ldr r3, [r3, #-2924] + beq .L1481 + ldr r3, [r3, #-1388] cmp r3, #0 - beq .L1493 - ldr r3, .L1590 - ldr r2, [r3, #-2920] + beq .L1481 + ldr r3, .L1578 + ldr r2, [r3, #-1384] cmp r2, #0 - beq .L1493 - ldr r2, [r3, #-2916] + beq .L1481 + ldr r2, [r3, #-1380] cmp r2, #0 - beq .L1493 - ldr r3, [r3, #-2912] + beq .L1481 + ldr r3, [r3, #-1376] cmp r3, #0 - beq .L1493 + beq .L1481 mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1591: +.L1579: .align 2 -.L1590: +.L1578: .word .LANCHOR2 - .word .LANCHOR2-3248 + .word .LANCHOR2-1712 .word .LANCHOR3+4 .word .LC30 .fnend @@ -8834,29 +8714,29 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1599 - sub r3, r2, #2816 + ldr r2, .L1587 + sub r3, r2, #1280 ldrh r3, [r3, #-4] cmp r3, #0 - beq .L1598 - ldr r3, [r2, #-2924] - sub r2, r2, #3168 + beq .L1586 + ldr r3, [r2, #-1388] + sub r2, r2, #1632 ldrh r2, [r2, #-12] add r2, r3, r2, asl #1 -.L1594: +.L1582: cmp r3, r2 - beq .L1598 + beq .L1586 ldrh r1, [r3], #2 cmp r1, r0 - bne .L1594 + bne .L1582 mov r0, #1 bx lr -.L1598: +.L1586: mov r0, #0 bx lr -.L1600: +.L1588: .align 2 -.L1599: +.L1587: .word .LANCHOR2 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -8867,16 +8747,16 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1608 - ldr r3, [r2, #-3048] + ldr r2, .L1596 + ldr r3, [r2, #-1512] cmp r3, #0 - beq .L1604 + beq .L1592 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov r5, #36 - ldr r4, [r2, #-3016] + ldr r4, [r2, #-1480] mov r2, #0 -.L1603: +.L1591: mla ip, r5, r2, r4 ldr lr, [ip, #16] cmp lr, r0 @@ -8885,21 +8765,21 @@ FtlCacheMetchLpa: cmp lr, r1 movhi ip, #0 cmp ip, #0 - bne .L1605 + bne .L1593 add r2, r2, #1 cmp r2, r3 - bne .L1603 + bne .L1591 mov r0, ip ldmfd sp!, {r4, r5, pc} -.L1604: +.L1592: mov r0, r3 bx lr -.L1605: +.L1593: mov r0, #1 ldmfd sp!, {r4, r5, pc} -.L1609: +.L1597: .align 2 -.L1608: +.L1596: .word .LANCHOR2 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -8911,13 +8791,13 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1611 - ldr r0, [r3, #3908] + ldr r3, .L1599 + ldr r0, [r3, #-2740] bx lr -.L1612: +.L1600: .align 2 -.L1611: - .word .LANCHOR0 +.L1599: + .word .LANCHOR2 .fnend .size FtlGetCap, .-FtlGetCap .align 2 @@ -8928,13 +8808,13 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1614 - ldr r0, [r3, #3908] + ldr r3, .L1602 + ldr r0, [r3, #-2740] bx lr -.L1615: +.L1603: .align 2 -.L1614: - .word .LANCHOR0 +.L1602: + .word .LANCHOR2 .fnend .size ftl_get_density, .-ftl_get_density .align 2 @@ -8945,12 +8825,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1617 - ldr r0, [r3, #-2816] + ldr r3, .L1605 + ldr r0, [r3, #-1280] bx lr -.L1618: +.L1606: .align 2 -.L1617: +.L1605: .word .LANCHOR2 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -8965,8 +8845,8 @@ FtlBbmMapBadBlock: .save {r4, r5, r6, lr} .pad #8 mov r6, r0 - ldr r5, .L1621 - sub r3, r5, #3200 + ldr r5, .L1609 + sub r3, r5, #1664 ldrh r4, [r3, #-2] mov r1, r4 bl __aeabi_uidiv @@ -8974,15 +8854,15 @@ FtlBbmMapBadBlock: smulbb r3, r2, r4 add r1, r5, r2, asl #2 mov r4, #1 - sub r5, r5, #2880 - ldr ip, [r1, #-2852] + sub r5, r5, #1344 + ldr ip, [r1, #-1316] 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, .L1621+4 + ldr r0, .L1609+4 str r1, [ip, lr, asl #2] str r1, [sp] mov r1, r6 @@ -8994,9 +8874,9 @@ FtlBbmMapBadBlock: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L1622: +.L1610: .align 2 -.L1621: +.L1609: .word .LANCHOR2 .word .LC31 .fnend @@ -9012,8 +8892,8 @@ FtlBbmIsBadBlock: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r5, .L1625 - sub r3, r5, #3200 + ldr r5, .L1613 + sub r3, r5, #1664 ldrh r6, [r3, #-2] mov r1, r6 bl __aeabi_uidivmod @@ -9025,14 +8905,14 @@ FtlBbmIsBadBlock: and r4, r4, #31 uxth r0, r0 add r5, r5, r0, asl #2 - ldr r3, [r5, #-2852] + ldr r3, [r5, #-1316] ldr r0, [r3, r2, asl #2] mov r0, r0, lsr r4 and r0, r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1626: +.L1614: .align 2 -.L1625: +.L1613: .word .LANCHOR2 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -9057,7 +8937,7 @@ FtlBbt2Bitmap: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - ldr r5, .L1634 + ldr r5, .L1622 mov r0, r1 mov r6, r1 mov r1, #0 @@ -9069,7 +8949,7 @@ FtlBbt2Bitmap: sub r1, r4, #2 mov lr, #1 movw r4, #65535 -.L1630: +.L1618: ldrh r2, [r1, #2]! cmp r2, r4 ldmeqfd sp!, {r4, r5, r6, pc} @@ -9082,12 +8962,12 @@ FtlBbt2Bitmap: ldrh r2, [r5, #6] add r2, r2, #1 strh r2, [r5, #6] @ movhi - bne .L1630 + bne .L1618 ldmfd sp!, {r4, r5, r6, pc} -.L1635: +.L1623: .align 2 -.L1634: - .word .LANCHOR2-2880 +.L1622: + .word .LANCHOR2-1344 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap .align 2 @@ -9101,49 +8981,49 @@ FtlBbmTblFlush: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L1654 - ldr r5, [r4, #-2812] + ldr r4, .L1642 + ldr r5, [r4, #-1276] cmp r5, #0 - bne .L1638 - ldr r3, [r4, #-2976] + bne .L1626 + ldr r3, [r4, #-1440] mov r1, r5 - ldr r0, [r4, #-3008] - sub r7, r4, #2880 - ldr r8, .L1654+4 + ldr r0, [r4, #-1472] + sub r7, r4, #1344 + ldr r8, .L1642+4 sub fp, r7, #4 - str r3, [r4, #-2796] - sub r3, r4, #3184 - str r0, [r4, #-2800] + str r3, [r4, #-1260] + sub r3, r4, #1648 + str r0, [r4, #-1264] mov r10, r4 ldrh r2, [r3, #-6] bl ftl_memset - ldr r9, .L1654+8 -.L1639: + ldr r9, .L1642+8 +.L1627: ldrh r3, [r9] - ldr r6, .L1654 + ldr r6, .L1642 cmp r5, r3 - bge .L1653 + bge .L1641 ldrh r2, [fp] - ldr r3, [r10, #-2800] + ldr r3, [r10, #-1264] ldr r1, [r8, #4]! mul r0, r2, r5 mov r2, r2, asl #2 add r5, r5, #1 add r0, r3, r0, asl #2 bl ftl_memcpy - b .L1639 -.L1653: - ldr r5, [r6, #-2796] + b .L1627 +.L1641: + ldr r5, [r6, #-1260] mov r1, #255 mov r2, #16 - ldr r10, .L1654+12 + ldr r10, .L1642+12 mov r8, #0 mov r0, r5 mov r9, r8 bl ftl_memset - ldr r3, .L1654+16 + ldr r3, .L1642+16 strh r3, [r5] @ movhi - ldr r3, [r6, #-2872] + ldr r3, [r6, #-1336] str r3, [r5, #4] ldrh r3, [r7] strh r3, [r5, #2] @ movhi @@ -9151,38 +9031,38 @@ FtlBbmTblFlush: strh r3, [r5, #8] @ movhi ldrh r3, [r7, #6] strh r3, [r5, #10] @ movhi - ldr r3, [r6, #-3272] + ldr r3, [r6, #-1736] strh r3, [r5, #12] @ movhi -.L1641: - ldr r3, [r4, #-3008] +.L1629: + ldr r3, [r4, #-1472] mov ip, #0 ldrh r1, [r7] ldrh r2, [r7, #2] - str r3, [r4, #-2800] - ldr r3, [r4, #-2976] - str ip, [r4, #-2808] + str r3, [r4, #-1264] + ldr r3, [r4, #-1440] + str ip, [r4, #-1272] str ip, [sp, #12] - str r3, [r4, #-2796] + str r3, [r4, #-1260] orr r3, r2, r1, asl #10 ldrh r0, [r5, #10] - str r3, [r4, #-2804] + str r3, [r4, #-1268] ldrh r3, [r7, #4] str r0, [sp] - ldr r0, .L1654+20 + ldr r0, .L1642+20 bl printk ldrh r3, [r10] ldrh r2, [r7, #2] sub r3, r3, #1 - ldr fp, .L1654+24 + ldr fp, .L1642+24 cmp r2, r3 ldr ip, [sp, #12] - blt .L1642 - ldr r3, [r6, #-2872] + blt .L1630 + ldr r3, [r6, #-1336] mov r1, #1 ldrh r2, [fp] add r3, r3, #1 - ldr r0, [r6, #-3024] - str r3, [r6, #-2872] + ldr r0, [r6, #-1488] + str r3, [r6, #-1336] str r3, [r5, #4] ldrh r3, [fp, #4] strh r2, [r5, #8] @ movhi @@ -9190,59 +9070,59 @@ FtlBbmTblFlush: mov r2, r1 strh r3, [fp] @ movhi mov r3, r3, asl #10 - str r3, [r6, #-2804] + str r3, [r6, #-1268] str r3, [r0, #4] strh ip, [fp, #2] @ movhi bl FlashEraseBlocks -.L1642: +.L1630: mov r1, #1 - ldr r0, .L1654+28 + ldr r0, .L1642+28 mov r3, r1 mov r2, r1 bl FlashProgPages ldrh r3, [r7, #2] - ldr fp, .L1654 + ldr fp, .L1642 add r3, r3, #1 strh r3, [r7, #2] @ movhi - ldr r3, [r4, #-2808] + ldr r3, [r4, #-1272] cmn r3, #1 - bne .L1643 + bne .L1631 add r8, r8, #1 - ldr r0, .L1654+32 - ldr r1, [r6, #-2804] + ldr r0, .L1642+32 + ldr r1, [r6, #-1268] uxth r8, r8 bl printk cmp r8, #3 - bls .L1641 - ldr r0, .L1654+36 + bls .L1629 + ldr r0, .L1642+36 mov r2, r8 - ldr r1, [fp, #-2804] + ldr r1, [fp, #-1268] bl printk mov r3, #1 - str r3, [fp, #-2812] - b .L1638 -.L1643: + str r3, [fp, #-1276] + b .L1626 +.L1631: add r9, r9, #1 cmp r9, #1 - beq .L1641 + beq .L1629 cmp r3, #256 - beq .L1641 -.L1638: + beq .L1629 +.L1626: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1655: +.L1643: .align 2 -.L1654: +.L1642: .word .LANCHOR2 - .word .LANCHOR2-2856 - .word .LANCHOR2-3246 - .word .LANCHOR2-3198 + .word .LANCHOR2-1320 + .word .LANCHOR2-1710 + .word .LANCHOR2-1662 .word -3887 .word .LC32 - .word .LANCHOR2-2880 - .word .LANCHOR2-2808 + .word .LANCHOR2-1344 + .word .LANCHOR2-1272 .word .LC33 .word .LC34 .fnend @@ -9254,65 +9134,65 @@ FtlLoadFactoryBbt: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1668 + ldr r2, .L1656 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r5, #0 - ldr r6, .L1668+4 + ldr r6, .L1656+4 mov r9, r2 - ldr r3, [r2, #-3008] - ldr r7, [r2, #-2976] + ldr r3, [r2, #-1472] + ldr r7, [r2, #-1440] sub r8, r6, #376 - str r3, [r2, #-2800] - str r7, [r2, #-2796] -.L1657: + str r3, [r2, #-1264] + str r7, [r2, #-1260] +.L1645: ldrh r3, [r8] cmp r5, r3 - bcs .L1667 - ldr r2, .L1668+8 + bcs .L1655 + ldr r2, .L1656+8 mvn r3, #0 strh r3, [r6, #2]! @ movhi ldrh r3, [r2] mov r10, r2 sub r3, r3, #1 uxth r4, r3 -.L1658: +.L1646: ldrh r3, [r10] sub r2, r3, #16 cmp r4, r2 - ble .L1660 + ble .L1648 mla r3, r3, r5, r4 mov r1, #1 - ldr r0, .L1668+12 + ldr r0, .L1656+12 mov r2, r1 mov r3, r3, asl #10 - str r3, [r9, #-2804] + str r3, [r9, #-1268] bl FlashReadPages - ldr r3, [r9, #-2808] + ldr r3, [r9, #-1272] cmn r3, #1 - beq .L1659 + beq .L1647 ldrh r2, [r7] movw r3, #61664 cmp r2, r3 streqh r4, [r6] @ movhi - beq .L1660 -.L1659: + beq .L1648 +.L1647: sub r4, r4, #1 uxth r4, r4 - b .L1658 -.L1660: + b .L1646 +.L1648: add r5, r5, #1 - b .L1657 -.L1667: + b .L1645 +.L1655: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1669: +.L1657: .align 2 -.L1668: +.L1656: .word .LANCHOR2 - .word .LANCHOR2-2870 - .word .LANCHOR2-3202 - .word .LANCHOR2-2808 + .word .LANCHOR2-1334 + .word .LANCHOR2-1666 + .word .LANCHOR2-1272 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 @@ -9323,7 +9203,7 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1671 + ldr r0, .L1659 mvn r3, #0 mov r1, #255 mov r2, #16 @@ -9332,10 +9212,10 @@ FtlBbtMemInit: mov r3, #0 strh r3, [r0, #-6] @ movhi b ftl_memset -.L1672: +.L1660: .align 2 -.L1671: - .word .LANCHOR2-2880 +.L1659: + .word .LANCHOR2-1344 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit .align 2 @@ -9348,28 +9228,28 @@ FtlBbtCalcTotleCnt: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 - ldr r4, .L1682 + ldr r4, .L1670 ldrh r6, [r4, #-2] ldrh r3, [r4, #-46] mov r4, r5 mul r6, r3, r6 -.L1674: +.L1662: uxth r0, r5 cmp r0, r6 - bge .L1681 + bge .L1669 bl FtlBbmIsBadBlock add r5, r5, #1 cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - b .L1674 -.L1681: + b .L1662 +.L1669: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1683: +.L1671: .align 2 -.L1682: - .word .LANCHOR2-3200 +.L1670: + .word .LANCHOR2-1664 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt .align 2 @@ -9382,61 +9262,61 @@ 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 r7, .L1709 - ldr r6, [r7, #-2812] + ldr r7, .L1697 + ldr r6, [r7, #-1276] cmp r6, #0 - bne .L1685 + bne .L1673 bl FtlBbtMemInit - ldr r8, .L1709+4 + ldr r8, .L1697+4 bl FtlLoadFactoryBbt - sub r4, r7, #2880 + sub r4, r7, #1344 sub r9, r8, #18 mov r5, r7 -.L1686: - ldr r3, .L1709+8 +.L1674: + ldr r3, .L1697+8 ldrh r2, [r3] cmp r6, r2 - bcs .L1706 + bcs .L1694 ldrh r2, [r9, #2]! movw r1, #65535 - ldr r0, [r5, #-3008] - ldr r10, [r5, #-2976] + ldr r0, [r5, #-1472] + ldr r10, [r5, #-1440] cmp r2, r1 - str r0, [r5, #-2800] - str r10, [r5, #-2796] - beq .L1687 + str r0, [r5, #-1264] + str r10, [r5, #-1260] + beq .L1675 ldrh fp, [r3, #44] mov r1, #1 - ldr r0, .L1709+12 + ldr r0, .L1697+12 str r3, [sp, #4] mla fp, fp, r6, r2 mov r2, fp, asl #10 - str r2, [r5, #-2804] + str r2, [r5, #-1268] mov r2, r1 bl FlashReadPages ldr r0, [r8] - ldr r1, [r5, #-2800] + ldr r1, [r5, #-1264] ldr r3, [sp, #4] ldrh r2, [r3, #44] add r2, r2, #7 mov r2, r2, asr #3 bl ftl_memcpy - b .L1688 -.L1687: + b .L1676 +.L1675: mov r1, r6 str r3, [sp, #4] bl FlashGetBadBlockList - ldr r0, [r5, #-2800] + ldr r0, [r5, #-1264] ldr r1, [r8] bl FtlBbt2Bitmap ldr r3, [sp, #4] ldrh r3, [r3, #44] -.L1705: +.L1693: sub r3, r3, #1 uxth r3, r3 str r3, [sp, #4] -.L1689: - ldr fp, .L1709+16 +.L1677: + ldr fp, .L1697+16 ldr r3, [sp, #4] ldrh r0, [fp] smlabb r0, r0, r6, r3 @@ -9444,15 +9324,15 @@ FtlMakeBbt: bl FtlBbmIsBadBlock cmp r0, #1 ldreq r3, [sp, #4] - beq .L1705 -.L1707: + beq .L1693 +.L1695: ldrh r3, [sp, #4] mov r1, #0 mov r2, #16 - ldr r0, [r5, #-2976] + ldr r0, [r5, #-1440] strh r3, [r9] @ movhi bl ftl_memset - ldr r3, .L1709+20 + ldr r3, .L1697+20 strh r3, [r10] @ movhi mov r3, #0 str r3, [r10, #4] @@ -9461,86 +9341,86 @@ FtlMakeBbt: strh r3, [r10, #2] @ movhi ldrh r3, [r9] ldr r1, [r8] - ldr r0, [r5, #-2800] + ldr r0, [r5, #-1264] mla fp, fp, r6, r3 mov r3, fp, asl #10 - str r3, [r5, #-2804] - ldr r3, .L1709+24 + str r3, [r5, #-1268] + ldr r3, .L1697+24 ldrh r2, [r3] mov r2, r2, asl #2 bl ftl_memcpy mov r1, #1 mov r2, r1 - ldr r0, .L1709+12 + ldr r0, .L1697+12 bl FlashEraseBlocks mov r1, #1 mov r3, r1 - ldr r0, .L1709+12 + ldr r0, .L1697+12 mov r2, r1 bl FlashProgPages - ldr r3, [r5, #-2808] + ldr r3, [r5, #-1272] cmn r3, #1 - bne .L1688 + bne .L1676 uxth r0, fp bl FtlBbmMapBadBlock - b .L1689 -.L1688: + b .L1677 +.L1676: uxth r0, fp add r6, r6, #1 bl FtlBbmMapBadBlock add r8, r8, #4 - b .L1686 -.L1706: + b .L1674 +.L1694: add r5, r3, #60 mov r6, #0 -.L1693: +.L1681: ldrh r3, [r5] uxth r0, r6 add r6, r6, #1 cmp r3, r0 - bls .L1708 + bls .L1696 bl FtlBbmMapBadBlock - b .L1693 -.L1708: + b .L1681 +.L1696: ldrh r5, [r4, #12] movw r8, #65535 - ldr r6, .L1709+28 + ldr r6, .L1697+28 sub r5, r5, #1 uxth r5, r5 -.L1695: +.L1683: ldrh r3, [r4, #12] sub r3, r3, #48 cmp r5, r3 - ble .L1699 + ble .L1687 mov r0, r5 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1696 + beq .L1684 mov r0, r5 bl FlashTestBlk cmp r0, #0 - beq .L1697 + beq .L1685 mov r0, r5 bl FtlBbmMapBadBlock - b .L1696 -.L1697: + b .L1684 +.L1685: ldrh r3, [r6] cmp r3, r8 streqh r5, [r6] @ movhi -.L1698: - ldrne r3, .L1709+28 +.L1686: + ldrne r3, .L1697+28 strneh r5, [r3, #4] @ movhi - bne .L1699 -.L1696: + bne .L1687 +.L1684: sub r5, r5, #1 uxth r5, r5 - b .L1695 -.L1699: - ldr r0, [r7, #-3024] + b .L1683 +.L1687: + ldr r0, [r7, #-1488] mov r5, #0 ldrh r3, [r4] mov r2, #2 - str r5, [r7, #-2872] + str r5, [r7, #-1336] mov r1, #1 strh r5, [r4, #2] @ movhi mov r3, r3, asl #10 @@ -9554,31 +9434,31 @@ FtlMakeBbt: ldrh r0, [r4, #4] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldr r3, [r7, #-2872] + ldr r3, [r7, #-1336] ldrh r2, [r4, #4] add r3, r3, #1 - str r3, [r7, #-2872] + str r3, [r7, #-1336] ldrh r3, [r4] strh r5, [r4, #2] @ movhi strh r2, [r4] @ movhi strh r3, [r4, #4] @ movhi bl FtlBbmTblFlush -.L1685: +.L1673: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1710: +.L1698: .align 2 -.L1709: +.L1697: .word .LANCHOR2 - .word .LANCHOR2-2852 - .word .LANCHOR2-3246 - .word .LANCHOR2-2808 - .word .LANCHOR2-3202 + .word .LANCHOR2-1316 + .word .LANCHOR2-1710 + .word .LANCHOR2-1272 + .word .LANCHOR2-1666 .word -3872 - .word .LANCHOR2-2884 - .word .LANCHOR2-2880 + .word .LANCHOR2-1348 + .word .LANCHOR2-1344 .fnend .size FtlMakeBbt, .-FtlMakeBbt .align 2 @@ -9591,10 +9471,10 @@ V2P_block: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, r1 - ldr r4, .L1713 + ldr r4, .L1701 mov r7, r0 - sub r3, r4, #3232 - sub r4, r4, #3200 + sub r3, r4, #1696 + sub r4, r4, #1664 ldrh r6, [r3, #-12] mov r1, r6 bl __aeabi_uidivmod @@ -9606,9 +9486,9 @@ V2P_block: smlabb r0, r3, r0, r5 uxth r0, r0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1714: +.L1702: .align 2 -.L1713: +.L1701: .word .LANCHOR2 .fnend .size V2P_block, .-V2P_block @@ -9619,11 +9499,11 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1717 + ldr r3, .L1705 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - sub r2, r3, #3232 - sub r3, r3, #3200 + sub r2, r3, #1696 + sub r3, r3, #1664 mov r6, r0 ldrh r5, [r2, #-12] ldrh r1, [r3, #-2] @@ -9635,9 +9515,9 @@ P2V_plane: add r1, r4, r1 uxth r0, r1 ldmfd sp!, {r4, r5, r6, pc} -.L1718: +.L1706: .align 2 -.L1717: +.L1705: .word .LANCHOR2 .fnend .size P2V_plane, .-P2V_plane @@ -9650,9 +9530,9 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L1721 - sub r3, r4, #3200 - sub r4, r4, #3232 + ldr r4, .L1709 + sub r3, r4, #1664 + sub r4, r4, #1696 ldrh r1, [r3, #-2] bl __aeabi_uidivmod uxth r0, r1 @@ -9660,9 +9540,9 @@ P2V_block_in_plane: bl __aeabi_uidiv uxth r0, r0 ldmfd sp!, {r4, pc} -.L1722: +.L1710: .align 2 -.L1721: +.L1709: .word .LANCHOR2 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -9675,13 +9555,13 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L1724 + bls .L1712 rsb r0, r1, r0 cmp r0, #-2147483648 movhi r0, #0 movls r0, #1 bx lr -.L1724: +.L1712: rsb r0, r0, r1 cmp r0, #-2147483648 movls r0, #0 @@ -9696,83 +9576,73 @@ FtlGetLastWrittenPage: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} cmp r1, #1 - ldr r6, .L1739 - .pad #108 - sub sp, sp, #108 - mov r9, r1 - mov r7, r0, asl #10 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + .pad #104 + sub sp, sp, #104 + ldreq r3, .L1726 + mov r8, r1 + ldrne r3, .L1726+4 + mov r6, r0, asl #10 mov r1, #1 - mov r0, sp - ldr r3, [r6] - mov r2, r9 - mov r8, #0 - str r8, [sp, #8] - str r3, [sp, #100] - ldreq r3, .L1739+4 - ldrne r3, .L1739+8 + add r0, sp, #4 ldreqh r4, [r3, #-14] + mov r2, r8 ldrneh r4, [r3] - add r3, sp, #36 - str r3, [sp, #12] + add r3, sp, #40 + str r3, [sp, #16] + mov r7, #0 sub r5, r4, #1 + str r7, [sp, #12] uxth r5, r5 sxth r3, r5 - orr r3, r3, r7 - str r3, [sp, #4] + orr r3, r3, r6 + str r3, [sp, #8] bl FlashReadPages - ldr r3, [sp, #36] + ldr r3, [sp, #40] cmn r3, #1 - bne .L1729 -.L1730: - sxth r4, r8 + bne .L1717 +.L1718: + sxth r4, r7 sxth r3, r5 cmp r4, r3 - bgt .L1729 + bgt .L1717 add r4, r4, r3 - mov r0, sp + add r0, sp, #4 mov r1, #1 - mov r2, r9 + mov r2, r8 add r4, r4, r4, lsr #31 mov r4, r4, asr #1 sxth r3, r4 - orr r3, r3, r7 - str r3, [sp, #4] + orr r3, r3, r6 + str r3, [sp, #8] bl FlashReadPages - ldr r3, [sp, #36] - cmn r3, #1 - bne .L1731 ldr r3, [sp, #40] cmn r3, #1 - bne .L1731 - ldr r3, [sp] + bne .L1719 + ldr r3, [sp, #44] cmn r3, #1 - subne r5, r4, #1 - uxthne r5, r5 - bne .L1730 -.L1731: + bne .L1719 + ldr r3, [sp, #4] + cmn r3, #1 + subne r4, r4, #1 + uxthne r5, r4 + bne .L1718 +.L1719: add r3, r4, #1 - uxth r8, r3 - b .L1730 -.L1729: - ldr r2, [sp, #100] + uxth r7, r3 + b .L1718 +.L1717: sxth r0, r5 - ldr r3, [r6] - cmp r2, r3 - beq .L1734 - bl __stack_chk_fail -.L1734: - add sp, sp, #108 + add sp, sp, #104 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L1740: + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L1727: .align 2 -.L1739: - .word __stack_chk_guard - .word .LANCHOR2-3184 - .word .LANCHOR2-3200 +.L1726: + .word .LANCHOR2-1648 + .word .LANCHOR2-1664 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage .align 2 @@ -9784,91 +9654,91 @@ 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, .L1774 - ldr r3, [r4, #-3008] + ldr r4, .L1761 + ldr r3, [r4, #-1472] mov r7, r4 - ldr r6, [r4, #-2976] - str r3, [r4, #-2800] - str r6, [r4, #-2796] + ldr r6, [r4, #-1440] + str r3, [r4, #-1264] + str r6, [r4, #-1260] bl FtlBbtMemInit - sub r3, r4, #3200 + sub r3, r4, #1664 sub r8, r3, #2 ldrh r5, [r3, #-2] sub r5, r5, #1 uxth r5, r5 -.L1742: +.L1729: ldrh r3, [r8] sub r3, r3, #48 cmp r5, r3 - ble .L1745 + ble .L1732 mov r1, #1 - ldr r0, .L1774+4 + ldr r0, .L1761+4 mov r2, r1 mov r3, r5, asl #10 - str r3, [r7, #-2804] + str r3, [r7, #-1268] bl FlashReadPages - ldr r3, [r7, #-2808] + ldr r3, [r7, #-1272] cmn r3, #1 - bne .L1743 - ldr r3, [r7, #-2804] + bne .L1730 + ldr r3, [r7, #-1268] mov r1, #1 - ldr r0, .L1774+4 + ldr r0, .L1761+4 mov r2, r1 add r3, r3, #1 - str r3, [r7, #-2804] + str r3, [r7, #-1268] bl FlashReadPages -.L1743: - ldr r3, [r4, #-2808] - ldr r2, .L1774 +.L1730: + ldr r3, [r4, #-1272] + ldr r2, .L1761 cmn r3, #1 - beq .L1744 + beq .L1731 ldrh r1, [r6] movw r3, #61649 cmp r1, r3 - bne .L1744 + bne .L1731 ldr r1, [r6, #4] - sub r3, r2, #2880 + sub r3, r2, #1344 strh r5, [r3] @ movhi - str r1, [r2, #-2872] + str r1, [r2, #-1336] ldrh r2, [r6, #8] strh r2, [r3, #4] @ movhi - b .L1745 -.L1744: + b .L1732 +.L1731: sub r5, r5, #1 uxth r5, r5 - b .L1742 -.L1745: - ldr r7, .L1774 + b .L1729 +.L1732: + ldr r7, .L1761 movw r2, #65535 - sub r5, r7, #2880 + sub r5, r7, #1344 ldrh r3, [r5] cmp r3, r2 - beq .L1759 + beq .L1746 ldrh r3, [r5, #4] cmp r3, r2 - beq .L1749 + beq .L1736 mov r1, #1 add r0, r5, #72 mov r2, r1 mov r3, r3, asl #10 - str r3, [r7, #-2804] + str r3, [r7, #-1268] bl FlashReadPages - ldr r3, [r7, #-2808] + ldr r3, [r7, #-1272] cmn r3, #1 - beq .L1749 + beq .L1736 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L1749 + bne .L1736 ldr r3, [r6, #4] - ldr r2, [r7, #-2872] + ldr r2, [r7, #-1336] cmp r3, r2 - strhi r3, [r7, #-2872] + strhi r3, [r7, #-1336] ldrhih r2, [r5, #4] ldrhih r3, [r6, #8] strhih r2, [r5] @ movhi strhih r3, [r5, #4] @ movhi -.L1749: +.L1736: ldrh r0, [r5] mov r1, #1 bl FtlGetLastWrittenPage @@ -9876,80 +9746,80 @@ FtlLoadBbt: uxth r7, r0 add r0, r0, #1 strh r0, [r5, #2] @ movhi -.L1751: +.L1738: sxth r3, r7 cmp r3, #0 - blt .L1756 + blt .L1743 ldrh r2, [r5] mov r1, #1 - ldr r0, .L1774+4 + ldr r0, .L1761+4 orr r3, r3, r2, asl #10 - str r3, [r4, #-2804] - ldr r3, [r4, #-3008] + str r3, [r4, #-1268] + ldr r3, [r4, #-1472] mov r2, r1 - str r3, [r4, #-2800] + str r3, [r4, #-1264] bl FlashReadPages - ldr r3, [r4, #-2808] + ldr r3, [r4, #-1272] cmn r3, #1 - beq .L1752 + beq .L1739 ldrh r3, [r6] cmp r3, r8 - bne .L1752 -.L1756: + bne .L1739 +.L1743: ldrh r2, [r6, #10] ldrh r0, [r6, #12] - ldr r3, .L1774 + ldr r3, .L1761 strh r2, [r5, #6] @ movhi movw r2, #65535 cmp r0, r2 - bne .L1753 - b .L1754 -.L1752: + bne .L1740 + b .L1741 +.L1739: sub r7, r7, #1 uxth r7, r7 - b .L1751 -.L1753: - ldr r2, [r3, #-3272] + b .L1738 +.L1740: + ldr r2, [r3, #-1736] cmp r0, r2 - beq .L1754 - sub r3, r3, #3248 + beq .L1741 + sub r3, r3, #1712 ldrh r3, [r3, #-10] mov r3, r3, lsr #2 cmp r0, r3 cmpcc r2, r3 - bcs .L1754 + bcs .L1741 bl FtlSysBlkNumInit -.L1754: - ldr r5, .L1774+8 +.L1741: + ldr r5, .L1761+8 mov r4, #0 - ldr r7, .L1774 - ldr r6, .L1774+12 + ldr r7, .L1761 + ldr r6, .L1761+12 sub r8, r5, #28 -.L1757: +.L1744: ldrh r3, [r6] cmp r4, r3 - bcs .L1773 + bcs .L1760 ldrh r2, [r8] - ldr r1, [r7, #-2800] + ldr r1, [r7, #-1264] ldr r0, [r5, #4]! mov r2, r2, asl #2 mla r1, r4, r2, r1 bl ftl_memcpy add r4, r4, #1 - b .L1757 -.L1773: + b .L1744 +.L1760: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1759: +.L1746: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1775: +.L1762: .align 2 -.L1774: +.L1761: .word .LANCHOR2 - .word .LANCHOR2-2808 - .word .LANCHOR2-2856 - .word .LANCHOR2-3246 + .word .LANCHOR2-1272 + .word .LANCHOR2-1320 + .word .LANCHOR2-1710 .fnend .size FtlLoadBbt, .-FtlLoadBbt .align 2 @@ -9959,7 +9829,7 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1778 + ldr r3, .L1765 stmfd sp!, {r4, lr} .save {r4, lr} sub r2, r3, #4 @@ -9974,10 +9844,10 @@ FtlFreeSysBlkQueueInit: bl ftl_memset mov r0, r4 ldmfd sp!, {r4, pc} -.L1779: +.L1766: .align 2 -.L1778: - .word .LANCHOR2-2768 +.L1765: + .word .LANCHOR2-1232 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit .align 2 @@ -9988,15 +9858,15 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1781 + ldr r3, .L1768 ldrh r0, [r3, #6] clz r0, r0 mov r0, r0, lsr #5 bx lr -.L1782: +.L1769: .align 2 -.L1781: - .word .LANCHOR2-2772 +.L1768: + .word .LANCHOR2-1236 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty .align 2 @@ -10007,16 +9877,16 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1784 + ldr r3, .L1771 ldrh r0, [r3, #6] sub r0, r0, #1024 clz r0, r0 mov r0, r0, lsr #5 bx lr -.L1785: +.L1772: .align 2 -.L1784: - .word .LANCHOR2-2772 +.L1771: + .word .LANCHOR2-1236 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull .align 2 @@ -10034,33 +9904,33 @@ FtlFreeSysBlkQueueIn: uxth r3, r3 cmp r3, r2 ldmhifd sp!, {r3, r4, r5, r6, r7, pc} - ldr r4, .L1796 - ldr r5, .L1796+4 + ldr r4, .L1783 + ldr r5, .L1783+4 ldrh r3, [r4, #6] cmp r3, #1024 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r1, #0 - beq .L1788 - ldr r3, [r5, #-2812] + beq .L1775 + ldr r3, [r5, #-1276] cmp r3, #0 - bne .L1788 + bne .L1775 bl P2V_block_in_plane mov r1, #1 mov r3, r7, asl #10 mov r2, r1 mov r6, r0 - ldr r0, [r5, #-3024] + ldr r0, [r5, #-1488] str r3, [r0, #4] bl FlashEraseBlocks - ldr r1, [r5, #-2948] + ldr r1, [r5, #-1412] mov r3, r6, asl #1 ldrh r2, [r1, r3] add r2, r2, #1 strh r2, [r1, r3] @ movhi - ldr r3, [r5, #-3108] + ldr r3, [r5, #-1572] add r3, r3, #1 - str r3, [r5, #-3108] -.L1788: + str r3, [r5, #-1572] +.L1775: ldrh r3, [r4, #6] add r3, r3, #1 strh r3, [r4, #6] @ movhi @@ -10071,10 +9941,10 @@ FtlFreeSysBlkQueueIn: strh r3, [r4, #4] @ movhi strh r7, [r2, #8] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1797: +.L1784: .align 2 -.L1796: - .word .LANCHOR2-2772 +.L1783: + .word .LANCHOR2-1236 .word .LANCHOR2 .fnend .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn @@ -10089,123 +9959,117 @@ FtlLowFormatEraseBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r6, .L1848 - ldr r5, [r6, #-2812] - ldrb r3, [r6, #-3340] @ zero_extendqisi2 + ldr r9, .L1835 + ldr r5, [r9, #-1276] + ldrb r3, [r9, #-1804] @ zero_extendqisi2 cmp r5, #0 str r3, [sp, #16] movne r0, #0 - bne .L1799 - ldr r2, .L1848+4 - mov r9, r6 + bne .L1786 + ldrb r3, [r9, #-2744] @ zero_extendqisi2 mov fp, r1 mov r10, r5 mov r4, r5 - mov r7, r6 - ldrb r3, [r2, #3904] @ zero_extendqisi2 + mov r7, r9 mov r8, #36 str r0, [sp, #4] - str r0, [r9, #-3076] str r3, [sp, #8] - str r2, [sp, #12] -.L1800: - ldr r3, .L1848+8 - uxth r2, r10 - ldr ip, .L1848 - ldrh r1, [r3] - cmp r1, r2 - bls .L1843 - mul r1, r8, r2 - ldr r0, [r7, #-3024] - add r2, r7, r2 + str r0, [r9, #-1540] +.L1787: + ldr r3, .L1835+4 + uxth r1, r10 + ldr r6, .L1835 + ldrh r0, [r3] + cmp r0, r1 + bls .L1830 + mul r0, r8, r1 + ldr ip, [r7, #-1488] + add r1, r7, r1 mov r3, #0 - str r3, [r0, r1] + str r3, [ip, r0] + ldrb r0, [r1, #-1704] @ zero_extendqisi2 ldr r1, [sp, #4] - ldrb r0, [r2, #-3240] @ zero_extendqisi2 bl V2P_block cmp fp, #0 mov r6, r0 - beq .L1801 + beq .L1788 bl IsBlkInVendorPart cmp r0, #0 - bne .L1802 -.L1801: + bne .L1789 +.L1788: mov r0, r6 bl FtlBbmIsBadBlock cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - bne .L1802 - ldr r3, .L1848+12 + bne .L1789 + ldr r3, .L1835+8 mov r6, r6, asl #10 - ldr r1, [r9, #-3024] - ldrh r2, [r3] - mla r1, r8, r5, r1 - mul r2, r2, r5 + ldr ip, [r9, #-1488] + ldrh r1, [r3] + mla ip, r8, r5, ip + mul r1, r1, r5 add r5, r5, #1 uxth r5, r5 - cmp r2, #0 - str r0, [r1, #8] - add r0, r2, #3 - str r6, [r1, #4] - movlt r2, r0 - ldr r0, [r9, #-2972] - bic r2, r2, #3 - add r2, r0, r2 - str r2, [r1, #12] -.L1802: + cmp r1, #0 + str r0, [ip, #8] + add r0, r1, #3 + str r6, [ip, #4] + movlt r1, r0 + ldr r0, [r9, #-1436] + bic r1, r1, #3 + add r1, r0, r1 + str r1, [ip, #12] +.L1789: add r10, r10, #1 - b .L1800 -.L1843: + b .L1787 +.L1830: cmp r5, #0 - beq .L1823 + beq .L1810 ldr r3, [sp, #8] mov r2, r5 - ldr r0, [ip, #-3024] - mov r7, #0 - adds r6, r3, #0 - strb r7, [ip, #-3340] - str ip, [sp, #8] - mov r8, #36 - movne r6, #1 - mov r1, r6 + ldr r0, [r6, #-1488] + mov r8, #0 + adds r7, r3, #0 + strb r8, [r6, #-1804] + movne r7, #1 + mov r1, r7 bl FlashEraseBlocks ldrb r3, [sp, #16] @ zero_extendqisi2 - ldr ip, [sp, #8] - strb r3, [ip, #-3340] -.L1806: - uxth r3, r7 - cmp r3, r5 - bcs .L1844 - mul r3, r8, r7 - ldr r2, [r9, #-3024] - add r0, r2, r3 - ldr r3, [r2, r3] - cmn r3, #1 - bne .L1807 + strb r3, [r6, #-1804] + mov r6, #36 +.L1793: + uxth r2, r8 + cmp r2, r5 + bcs .L1831 + mul r2, r6, r8 + ldr r1, [r9, #-1488] + add r0, r1, r2 + ldr r2, [r1, r2] + cmn r2, #1 + bne .L1794 ldr r0, [r0, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L1807: - add r7, r7, #1 - b .L1806 -.L1844: +.L1794: + add r8, r8, #1 + b .L1793 +.L1831: cmp fp, #0 - bne .L1809 + bne .L1796 mov r3, #6 - uxth r6, r6 + uxth r6, r7 str r3, [sp, #12] mov r3, #1 str r3, [sp, #8] - b .L1810 -.L1809: - ldr r3, .L1848+16 - ldrh r3, [r3, #-14] + b .L1797 +.L1796: + ldr r2, .L1835+12 + ldrh r3, [r2, #-14] str r3, [sp, #8] - ldr r3, [sp, #12] - ldrb r3, [r3, #3904] @ zero_extendqisi2 + ldrb r3, [r9, #-2744] @ zero_extendqisi2 cmp r3, #0 ldreq r3, [sp, #8] moveq r6, #1 @@ -10213,46 +10077,46 @@ FtlLowFormatEraseBlock: strne r6, [sp, #12] moveq r3, r3, lsr #2 streq r3, [sp, #12] -.L1810: - ldr r10, .L1848 +.L1797: + ldr r10, .L1835 mov r7, #0 -.L1819: +.L1806: mov r8, #0 mov r5, r8 -.L1811: - ldr r3, .L1848+8 - ldr r9, .L1848 +.L1798: + ldr r3, .L1835+4 + ldr r9, .L1835 ldrh r2, [r3] uxth r3, r8 cmp r2, r3 - bls .L1845 + bls .L1832 mov r2, #36 - ldr r1, [r10, #-3024] + ldr r1, [r10, #-1488] mul r2, r2, r3 add r3, r10, r3 mov r0, #0 str r0, [r1, r2] ldr r1, [sp, #4] - ldrb r0, [r3, #-3240] @ zero_extendqisi2 + ldrb r0, [r3, #-1704] @ zero_extendqisi2 bl V2P_block cmp fp, #0 mov r9, r0 - beq .L1812 + beq .L1799 bl IsBlkInVendorPart cmp r0, #0 - bne .L1813 -.L1812: + bne .L1800 +.L1799: mov r0, r9 bl FtlBbmIsBadBlock cmp r0, #0 - bne .L1813 - ldr r2, [r10, #-3024] + bne .L1800 + ldr r2, [r10, #-1488] mov r3, #36 add r9, r7, r9, asl #10 mla r2, r3, r5, r2 - ldr r3, [r10, #-2988] + ldr r3, [r10, #-1452] str r3, [r2, #8] - ldr r3, .L1848+12 + ldr r3, .L1835+8 str r9, [r2, #4] ldrh r3, [r3] mul r3, r3, r5 @@ -10261,40 +10125,40 @@ FtlLowFormatEraseBlock: add r1, r3, #3 cmp r3, #0 movlt r3, r1 - ldr r1, [r10, #-2984] + ldr r1, [r10, #-1448] bic r3, r3, #3 add r3, r1, r3 str r3, [r2, #12] -.L1813: +.L1800: add r8, r8, #1 - b .L1811 -.L1845: + b .L1798 +.L1832: cmp r5, #0 - beq .L1823 - ldr r2, .L1848 + beq .L1810 + ldr r2, .L1835 mov r3, #0 mov r1, r5 mov r8, #0 - strb r3, [r2, #-3340] + strb r3, [r2, #-1804] mov r3, #1 - ldr r0, [r2, #-3024] + ldr r0, [r2, #-1488] mov r2, r6 bl FlashProgPages - ldr r3, .L1848 + ldr r3, .L1835 mov r1, #36 ldrb r2, [sp, #16] @ zero_extendqisi2 - strb r2, [r3, #-3340] -.L1816: + strb r2, [r3, #-1804] +.L1803: uxth r3, r8 cmp r3, r5 - bcs .L1846 + bcs .L1833 mul r3, r1, r8 - ldr r2, .L1848 - ldr r2, [r2, #-3024] + ldr r2, .L1835 + ldr r2, [r2, #-1488] add r0, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - beq .L1817 + beq .L1804 ldr r0, [r0, #4] add r4, r4, #1 str r1, [sp, #20] @@ -10302,63 +10166,62 @@ FtlLowFormatEraseBlock: uxth r4, r4 bl FtlBbmMapBadBlock ldr r1, [sp, #20] -.L1817: +.L1804: add r8, r8, #1 - b .L1816 -.L1846: + b .L1803 +.L1833: ldr r3, [sp, #12] add r7, r7, r3 ldr r3, [sp, #8] uxth r7, r7 cmp r7, r3 - bcc .L1819 + bcc .L1806 mov r7, #0 mov r8, #36 -.L1820: +.L1807: uxth r3, r7 cmp r3, r5 - bcs .L1847 + bcs .L1834 cmp fp, #0 - beq .L1821 + beq .L1808 mul r3, r8, r7 - ldr r2, [r9, #-3024] + ldr r2, [r9, #-1488] add r1, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - bne .L1821 + bne .L1808 ldr r0, [r1, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L1821: +.L1808: add r7, r7, #1 - b .L1820 -.L1847: + b .L1807 +.L1834: adds r3, fp, #0 ldr r2, [sp, #4] movne r3, #1 cmp r2, #63 orrls r3, r3, #1 cmp r3, #0 - beq .L1823 - ldr r0, [r9, #-3024] + beq .L1810 + ldr r0, [r9, #-1488] mov r1, r6 mov r2, r5 bl FlashEraseBlocks -.L1823: +.L1810: mov r0, r4 -.L1799: +.L1786: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1849: +.L1836: .align 2 -.L1848: +.L1835: .word .LANCHOR2 - .word .LANCHOR0 - .word .LANCHOR2-3268 - .word .LANCHOR2-3188 - .word .LANCHOR2-3184 + .word .LANCHOR2-1732 + .word .LANCHOR2-1652 + .word .LANCHOR2-1648 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 @@ -10368,9 +10231,9 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1863 + ldr r3, .L1850 ldrh ip, [r3, #28] - ldr r3, .L1863+4 + ldr r3, .L1850+4 ldrh r2, [r3, #6] cmp r2, #0 bxeq lr @@ -10381,11 +10244,11 @@ FtlFreeSysBLkSort: and ip, ip, #31 ldrh r2, [r3, #4] mov r4, r0 -.L1852: +.L1839: uxth lr, r0 add r0, r0, #1 cmp lr, ip - bge .L1862 + bge .L1849 add lr, r3, r1, asl #1 add r1, r1, #1 ubfx r1, r1, #0, #10 @@ -10395,17 +10258,17 @@ FtlFreeSysBLkSort: mov r4, #1 add r2, r2, r4 ubfx r2, r2, #0, #10 - b .L1852 -.L1862: + b .L1839 +.L1849: cmp r4, #0 strneh r1, [r3, #2] @ movhi strneh r2, [r3, #4] @ movhi ldmfd sp!, {r4, pc} -.L1864: +.L1851: .align 2 -.L1863: - .word .LANCHOR2-716 - .word .LANCHOR2-2772 +.L1850: + .word .LANCHOR2+820 + .word .LANCHOR2-1236 .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -10417,16 +10280,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 r7, .L1876 - ldr r5, .L1876+4 - mov r6, r7 -.L1866: + ldr r6, .L1863 + ldr r5, .L1863+4 + mov r7, r6 +.L1853: ldrh r1, [r5, #6] cmp r1, #0 - beq .L1867 + beq .L1854 ldrh r3, [r5, #2] sub r1, r1, #1 - ldr r9, [r7, #-2812] + ldr r9, [r6, #-1276] strh r1, [r5, #6] @ movhi add r2, r5, r3, asl #1 cmp r9, #0 @@ -10434,60 +10297,58 @@ FtlFreeSysBlkQueueOut: ubfx r3, r3, #0, #10 ldrh r4, [r2, #8] strh r3, [r5, #2] @ movhi - bne .L1868 + bne .L1855 mov r0, r4 bl P2V_block_in_plane mov r3, r4, asl #10 mov r8, r0 - ldr r0, [r7, #-3024] + ldr r0, [r6, #-1488] str r3, [r0, #4] - ldr r3, .L1876+8 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1869 + beq .L1856 mov r1, r9 mov r2, #1 bl FlashEraseBlocks -.L1869: +.L1856: mov r1, #1 - ldr r0, [r6, #-3024] + ldr r0, [r7, #-1488] mov r2, r1 bl FlashEraseBlocks - ldr r1, [r6, #-2948] + ldr r1, [r7, #-1412] mov r3, r8, asl #1 ldrh r2, [r1, r3] add r2, r2, #1 strh r2, [r1, r3] @ movhi - ldr r3, [r6, #-3108] + ldr r3, [r7, #-1572] add r3, r3, #1 - str r3, [r6, #-3108] - b .L1868 -.L1867: - ldr r0, .L1876+12 + str r3, [r7, #-1572] + b .L1855 +.L1854: + ldr r0, .L1863+8 bl printk -.L1870: - b .L1870 -.L1868: +.L1857: + b .L1857 +.L1855: sub r3, r4, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L1871 - ldr r3, .L1876+4 + bls .L1858 + ldr r3, .L1863+4 mov r1, r4 - ldr r0, .L1876+16 + ldr r0, .L1863+12 ldrh r2, [r3, #6] bl printk - b .L1866 -.L1871: + b .L1853 +.L1858: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1877: +.L1864: .align 2 -.L1876: +.L1863: .word .LANCHOR2 - .word .LANCHOR2-2772 - .word .LANCHOR0 + .word .LANCHOR2-1236 .word .LC35 .word .LC36 .fnend @@ -10499,35 +10360,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1884 + ldr r3, .L1871 str lr, [sp, #-4]! .save {lr} movw lr, #65535 - ldr ip, [r3, #-2888] + ldr ip, [r3, #-1352] ldr r2, [r0] - ldr r3, .L1884+4 + ldr r3, .L1871+4 rsb r0, ip, r2 mov r0, r0, asr #1 mul r3, r3, r0 mov r0, #6 uxth r3, r3 -.L1880: +.L1867: cmp r1, r3 - beq .L1881 + beq .L1868 ldrh r3, [r2] cmp r3, lr - beq .L1882 + beq .L1869 mla r2, r0, r3, ip - b .L1880 -.L1881: + b .L1867 +.L1868: mov r0, #1 ldr pc, [sp], #4 -.L1882: +.L1869: mov r0, #0 ldr pc, [sp], #4 -.L1885: +.L1872: .align 2 -.L1884: +.L1871: .word .LANCHOR2 .word -1431655765 .fnend @@ -10542,22 +10403,22 @@ 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, .L1903 - sub r5, r2, #3248 + ldr r2, .L1890 + sub r5, r2, #1712 ldrh r3, [r5, #-12] cmp r3, r0 - bls .L1888 + bls .L1875 mov lr, #6 - ldr r6, [r2, #-2888] + ldr r6, [r2, #-1352] mul lr, lr, r0 mvn ip, #0 add r1, r6, lr strh ip, [r1, #2] @ movhi strh ip, [r6, lr] @ movhi - ldr r3, [r2, #-668] + ldr r3, [r2, #868] cmp r3, #0 - beq .L1902 - ldr r8, [r2, #-2940] + beq .L1889 + ldr r8, [r2, #-1404] mov r4, r0, asl #1 mov r10, r2 ldrh r2, [r1, #4] @@ -10566,17 +10427,17 @@ insert_data_list: cmp r2, #0 str r5, [sp] mulne ip, r2, r7 - ldr r7, [r10, #-2888] - ldr r2, .L1903+4 + ldr r7, [r10, #-1352] + ldr r2, .L1890+4 rsb r9, r7, r3 mov r9, r9, asr #1 mul r2, r2, r9 - ldr r9, [r10, #-2948] + ldr r9, [r10, #-1412] add r4, r9, r4 str r4, [sp, #4] mov r4, #0 uxth r2, r2 -.L1897: +.L1884: add r4, r4, #1 ldr r5, [sp] uxth r4, r4 @@ -10586,7 +10447,7 @@ insert_data_list: cmp r0, r2 orreq r5, r5, #1 cmp r5, #0 - bne .L1888 + bne .L1875 mov r10, r2, asl #1 ldrh r5, [r3, #4] ldrh fp, [r8, r10] @@ -10594,56 +10455,56 @@ insert_data_list: mvneq r5, #0 mulne r5, r5, fp cmp r5, ip - bne .L1893 + bne .L1880 ldr r5, [sp, #4] ldrh r10, [r9, r10] ldrh r5, [r5] cmp r10, r5 - bcc .L1895 - b .L1894 -.L1893: - bhi .L1894 -.L1895: + bcc .L1882 + b .L1881 +.L1880: + bhi .L1881 +.L1882: ldrh r5, [r3] movw r10, #65535 cmp r5, r10 streqh r2, [r1, #2] @ movhi streqh r0, [r3] @ movhi - ldreq r3, .L1903 - streq r1, [r3, #-664] - beq .L1888 -.L1896: + ldreq r3, .L1890 + streq r1, [r3, #872] + beq .L1875 +.L1883: mov r3, #6 mov r2, r5 mla r3, r3, r5, r7 - b .L1897 -.L1894: + b .L1884 +.L1881: strh r2, [r6, lr] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L1903 - ldr ip, [r2, #-668] + ldr r2, .L1890 + ldr ip, [r2, #868] cmp r3, ip - bne .L1898 + bne .L1885 strh r0, [r3, #2] @ movhi -.L1902: - str r1, [r2, #-668] - b .L1888 -.L1898: +.L1889: + str r1, [r2, #868] + b .L1875 +.L1885: ldrh ip, [r3, #2] - ldr r1, [r2, #-2888] + ldr r1, [r2, #-1352] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L1888: +.L1875: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1904: +.L1891: .align 2 -.L1903: +.L1890: .word .LANCHOR2 .word -1431655765 .fnend @@ -10658,15 +10519,15 @@ INSERT_DATA_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L1907 + ldr r2, .L1894 ldrh r3, [r2] add r3, r3, #1 strh r3, [r2] @ movhi ldmfd sp!, {r3, pc} -.L1908: +.L1895: .align 2 -.L1907: - .word .LANCHOR2-660 +.L1894: + .word .LANCHOR2+876 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST .align 2 @@ -10680,67 +10541,67 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r4, #65535 cmp r0, r4 - beq .L1910 - ldr r2, .L1918 + beq .L1897 + ldr r2, .L1905 mov lr, #6 mul r6, lr, r0 mvn r3, #0 - ldr r7, [r2, #-2888] + ldr r7, [r2, #-1352] mov r5, r2 add ip, r7, r6 strh r3, [ip, #2] @ movhi strh r3, [r7, r6] @ movhi - ldr r3, [r2, #-656] + ldr r3, [r2, #880] cmp r3, #0 - beq .L1917 - ldr r9, [r2, #-2948] + beq .L1904 + ldr r9, [r2, #-1412] mov r2, r0, asl #1 - ldr r8, [r5, #-2888] + ldr r8, [r5, #-1352] rsb r1, r8, r3 ldrh r10, [r9, r2] - ldr r2, .L1918+4 + ldr r2, .L1905+4 mov r1, r1, asr #1 mul r1, r2, r1 uxth r2, r1 -.L1914: +.L1901: mov r1, r2, asl #1 ldrh r1, [r9, r1] cmp r1, r10 - bcs .L1912 + bcs .L1899 ldrh r1, [r3] cmp r1, r4 streqh r2, [ip, #2] @ movhi streqh r0, [r3] @ movhi - beq .L1910 -.L1913: + beq .L1897 +.L1900: mla r3, lr, r1, r8 mov r2, r1 - b .L1914 -.L1912: + b .L1901 +.L1899: ldrh r1, [r3, #2] strh r1, [ip, #2] @ movhi strh r2, [r7, r6] @ movhi - ldr r1, [r5, #-656] - ldr r2, .L1918 + ldr r1, [r5, #880] + ldr r2, .L1905 cmp r3, r1 - bne .L1915 + bne .L1902 strh r0, [r3, #2] @ movhi -.L1917: - str ip, [r2, #-656] - b .L1910 -.L1915: +.L1904: + str ip, [r2, #880] + b .L1897 +.L1902: ldrh ip, [r3, #2] - ldr r1, [r2, #-2888] + ldr r1, [r2, #-1352] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L1910: +.L1897: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1919: +.L1906: .align 2 -.L1918: +.L1905: .word .LANCHOR2 .word -1431655765 .fnend @@ -10755,15 +10616,15 @@ INSERT_FREE_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L1922 + ldr r2, .L1909 ldrh r3, [r2] add r3, r3, #1 strh r3, [r2] @ movhi ldmfd sp!, {r3, pc} -.L1923: +.L1910: .align 2 -.L1922: - .word .LANCHOR2-652 +.L1909: + .word .LANCHOR2+884 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST .align 2 @@ -10776,15 +10637,15 @@ List_remove_node: stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov ip, #6 - ldr r4, .L1930 + ldr r4, .L1917 movw r5, #65535 mul r1, ip, r1 ldr r3, [r0] - ldr r2, [r4, #-2888] + ldr r2, [r4, #-1352] add lr, r2, r1 cmp lr, r3 ldrh r3, [r2, r1] - bne .L1925 + bne .L1912 cmp r3, r5 mlane r3, ip, r3, r2 moveq r3, #0 @@ -10792,33 +10653,33 @@ List_remove_node: strne r3, [r0] mvnne r0, #0 strneh r0, [r3, #2] @ movhi - b .L1927 -.L1925: + b .L1914 +.L1912: cmp r3, r5 ldrh r0, [lr, #2] - bne .L1928 + bne .L1915 cmp r0, r3 mulne r0, ip, r0 mvnne r3, #0 strneh r3, [r2, r0] @ movhi - b .L1927 -.L1928: + b .L1914 +.L1915: mla r3, ip, r3, r2 strh r0, [r3, #2] @ movhi ldrh r5, [lr, #2] ldrh r0, [r2, r1] - ldr r3, [r4, #-2888] + ldr r3, [r4, #-1352] mul ip, ip, r5 strh r0, [r3, ip] @ movhi -.L1927: +.L1914: mvn r3, #0 mov r0, #0 strh r3, [r2, r1] @ movhi strh r3, [lr, #2] @ movhi ldmfd sp!, {r4, r5, pc} -.L1931: +.L1918: .align 2 -.L1930: +.L1917: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -10831,19 +10692,19 @@ List_pop_index_node: @ frame_needed = 0, uses_anonymous_args = 0 ldr r3, [r0] cmp r3, #0 - beq .L1938 - ldr r2, .L1941 + beq .L1925 + ldr r2, .L1928 movw ip, #65535 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 - ldr r4, [r2, #-2888] -.L1934: + ldr r4, [r2, #-1352] +.L1921: cmp r1, #0 - bne .L1935 -.L1937: + bne .L1922 +.L1924: rsb r4, r4, r3 - ldr r3, .L1941+4 + ldr r3, .L1928+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -10851,20 +10712,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 ldmfd sp!, {r4, pc} -.L1935: +.L1922: ldrh r2, [r3] cmp r2, ip - beq .L1937 + beq .L1924 sub r1, r1, #1 mla r3, lr, r2, r4 uxth r1, r1 - b .L1934 -.L1938: + b .L1921 +.L1925: movw r0, #65535 bx lr -.L1942: +.L1929: .align 2 -.L1941: +.L1928: .word .LANCHOR2 .word -1431655765 .fnend @@ -10877,35 +10738,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, .L1950 - ldr r3, [r2, #-668] + ldr r2, .L1937 + ldr r3, [r2, #868] cmp r3, #0 - ldrne r1, [r2, #-2888] + ldrne r1, [r2, #-1352] movne ip, #6 movwne r2, #65535 - beq .L1948 -.L1945: + beq .L1935 +.L1932: cmp r0, #0 - beq .L1946 + beq .L1933 ldrh r3, [r3] cmp r3, r2 subne r0, r0, #1 mlane r3, ip, r3, r1 uxthne r0, r0 - bne .L1945 -.L1948: + bne .L1932 +.L1935: movw r0, #65535 bx lr -.L1946: +.L1933: rsb r3, r1, r3 - ldr r0, .L1950+4 + ldr r0, .L1937+4 mov r3, r3, asr #1 mul r0, r0, r3 uxth r0, r0 bx lr -.L1951: +.L1938: .align 2 -.L1950: +.L1937: .word .LANCHOR2 .word -1431655765 .fnend @@ -10917,29 +10778,29 @@ List_update_data_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1961 - sub r2, r3, #648 + ldr r3, .L1948 + add r2, r3, #888 ldrh r2, [r2] cmp r2, r0 - beq .L1960 - sub r2, r3, #600 + beq .L1947 + add r2, r3, #936 ldrh r2, [r2] cmp r2, r0 - beq .L1960 - sub r2, r3, #552 + beq .L1947 + add r2, r3, #984 ldrh r2, [r2] cmp r2, r0 - beq .L1960 + beq .L1947 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 mul lr, lr, r0 - ldr r1, [r3, #-2888] - ldr r2, [r3, #-668] + ldr r1, [r3, #-1352] + ldr r2, [r3, #868] add ip, r1, lr cmp ip, r2 - beq .L1953 - ldr r4, [r3, #-2940] + beq .L1940 + ldr r4, [r3, #-1404] mov r3, r0, asl #1 ldrh r2, [r4, r3] ldrh r3, [ip, #4] @@ -10949,14 +10810,14 @@ List_update_data_list: mvneq r2, #0 movw r3, #65535 cmp ip, r3 - bne .L1955 + bne .L1942 ldrh r3, [r1, lr] cmp r3, ip - beq .L1953 -.L1955: + beq .L1940 +.L1942: mov r3, #6 mul ip, r3, ip - ldr r3, .L1961+4 + ldr r3, .L1948+4 add r1, r1, ip mov lr, ip, asr #1 mul r3, r3, lr @@ -10967,30 +10828,30 @@ List_update_data_list: mulne r3, r3, lr mvneq r3, #0 cmp r2, r3 - bcs .L1953 + bcs .L1940 mov r4, r0 - ldr r0, .L1961+8 + ldr r0, .L1948+8 mov r1, r4 bl List_remove_node - ldr r2, .L1961+12 + ldr r2, .L1948+12 mov r0, r4 ldrh r3, [r2] sub r3, r3, #1 strh r3, [r2] @ movhi bl INSERT_DATA_LIST -.L1953: +.L1940: mov r0, #0 ldmfd sp!, {r4, pc} -.L1960: +.L1947: mov r0, #0 bx lr -.L1962: +.L1949: .align 2 -.L1961: +.L1948: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2-668 - .word .LANCHOR2-660 + .word .LANCHOR2+868 + .word .LANCHOR2+876 .fnend .size List_update_data_list, .-List_update_data_list .align 2 @@ -11012,19 +10873,19 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r2, #0 -.L1964: +.L1951: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L1984 + bls .L1971 ldr r0, [r6, r3, asl #2] mov r1, #0 ubfx r0, r0, #10, #16 -.L1965: +.L1952: ldrh ip, [r4, #10] uxth r3, r1 cmp ip, r3 - bls .L1985 + bls .L1972 mov r3, r3, asl #1 add r1, r1, #1 ldrh ip, [r7, r3] @@ -11037,12 +10898,12 @@ ftl_free_no_use_map_blk: ldrneh ip, [r5, r3] addne ip, ip, #1 strneh ip, [r5, r3] @ movhi - b .L1965 -.L1985: + b .L1952 +.L1972: add r2, r2, #1 - b .L1964 -.L1984: - ldr r3, .L1987 + b .L1951 +.L1971: + ldr r3, .L1974 mov r8, #0 mov r1, r8 mov fp, r8 @@ -11051,36 +10912,36 @@ ftl_free_no_use_map_blk: mov r3, r3, asl #1 strh r2, [r5, r3] @ movhi ldrh r9, [r5] -.L1969: +.L1956: ldrh r3, [r4, #10] uxth r6, r8 cmp r3, r6 - bls .L1986 + bls .L1973 mov r2, r6, asl #1 ldrh r3, [r5, r2] cmp r9, r3 - bls .L1970 + bls .L1957 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 - bne .L1971 - b .L1972 -.L1970: + bne .L1958 + b .L1959 +.L1957: cmp r3, #0 - bne .L1972 + bne .L1959 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 movne r6, r1 - beq .L1972 - b .L1974 -.L1971: + beq .L1959 + b .L1961 +.L1958: cmp r3, #0 movne r1, r6 movne r9, r3 - bne .L1972 + bne .L1959 mov r9, r3 -.L1974: +.L1961: mov r1, #1 bl FtlFreeSysBlkQueueIn strh fp, [r10] @ movhi @@ -11088,16 +10949,16 @@ ftl_free_no_use_map_blk: mov r1, r6 sub r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1972: +.L1959: add r8, r8, #1 - b .L1969 -.L1986: + b .L1956 +.L1973: mov r0, r1 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1988: +.L1975: .align 2 -.L1987: - .word .LANCHOR2-3184 +.L1974: + .word .LANCHOR2-1648 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .align 2 @@ -11112,16 +10973,16 @@ ftl_map_blk_alloc_new_blk: mov r3, #0 ldrh r1, [r0, #10] ldr r2, [r0, #12] -.L1990: +.L1977: uxth r5, r3 cmp r5, r1 - bcs .L1993 + bcs .L1980 mov r7, r2 add r3, r3, #1 ldrh r6, [r7] add r2, r2, #2 cmp r6, #0 - bne .L1990 + bne .L1977 mov r4, r0 bl FtlFreeSysBlkQueueOut movw r2, #65533 @@ -11130,14 +10991,14 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7] @ movhi uxth r3, r3 cmp r3, r2 - bls .L1991 - ldr r3, .L1997 - ldr r0, .L1997+4 + bls .L1978 + ldr r3, .L1984 + ldr r0, .L1984+4 ldrh r2, [r3, #6] bl printk -.L1992: - b .L1992 -.L1991: +.L1979: + b .L1979 +.L1978: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi add r3, r3, #1 @@ -11146,13 +11007,13 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi add r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1993: +.L1980: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1998: +.L1985: .align 2 -.L1997: - .word .LANCHOR2-2772 +.L1984: + .word .LANCHOR2-1236 .word .LC37 .fnend .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk @@ -11167,67 +11028,67 @@ FtlMapWritePage: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r0 - ldr fp, .L2018 + ldr fp, .L2005 mov r8, r1 - ldr r9, .L2018+4 + ldr r9, .L2005+4 mov r5, #0 str r2, [sp] mov r10, fp -.L2000: - ldr r3, [fp, #-3124] - ldr r6, .L2018 +.L1987: + ldr r3, [fp, #-1588] + ldr r6, .L2005 add r3, r3, #1 - str r3, [fp, #-3124] + str r3, [fp, #-1588] ldrh r3, [r9] ldrh r2, [r4, #2] sub r3, r3, #1 cmp r2, r3 - bge .L2001 + bge .L1988 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L2002 -.L2001: + bne .L1989 +.L1988: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L2002: - ldr r1, [r10, #-2812] +.L1989: + ldr r1, [r10, #-1276] cmp r1, #0 - bne .L2003 + bne .L1990 ldrh r3, [r4] ldr r2, [r4, #12] - ldr r0, [fp, #-2976] + ldr r0, [fp, #-1440] mov r3, r3, asl #1 ldrh r7, [r2, r3] mov r2, #16 ldrh r3, [r4, #2] - str r0, [fp, #-2796] + str r0, [fp, #-1260] orr r3, r3, r7, asl #10 - str r3, [fp, #-2804] + str r3, [fp, #-1268] ldr r3, [sp] - str r3, [fp, #-2800] + str r3, [fp, #-1264] bl ftl_memset ldr r2, [r4, #28] - ldr r3, [fp, #-2796] + ldr r3, [fp, #-1260] str r2, [r3, #4] strh r8, [r3, #8] @ movhi ldrh r2, [r4, #4] strh r7, [r3, #2] @ movhi strh r2, [r3] @ movhi - ldr r2, .L2018+8 + ldr r2, .L2005+8 ldrb r2, [r2] @ zero_extendqisi2 cmp r2, #0 - beq .L2004 - ldr r2, .L2018+12 - ldr r0, [fp, #-2800] + beq .L1991 + ldr r2, .L2005+12 + ldr r0, [fp, #-1264] str r3, [sp, #4] ldrh r1, [r2] bl js_hash ldr r3, [sp, #4] str r0, [r3, #12] -.L2004: +.L1991: mov r1, #1 - ldr r0, .L2018+16 + ldr r0, .L2005+16 mov r2, r1 mov r3, r1 bl FlashProgPages @@ -11235,12 +11096,12 @@ FtlMapWritePage: add r3, r3, #1 uxth r3, r3 strh r3, [r4, #2] @ movhi - ldr r2, [r10, #-2808] + ldr r2, [r10, #-1272] cmn r2, #1 - bne .L2005 - ldr r0, .L2018+20 + bne .L1992 + ldr r0, .L2005+20 add r5, r5, #1 - ldr r1, [fp, #-2804] + ldr r1, [fp, #-1268] bl printk ldrh r3, [r4, #2] uxth r5, r5 @@ -11249,44 +11110,44 @@ FtlMapWritePage: subls r3, r3, #1 strlsh r3, [r4, #2] @ movhi cmp r5, #3 - bls .L2000 - ldr r0, .L2018+24 + bls .L1987 + ldr r0, .L2005+24 mov r2, r5 - ldr r1, [r6, #-2804] + ldr r1, [r6, #-1268] bl printk mov r3, #1 - str r3, [r6, #-2812] - b .L2003 -.L2005: + str r3, [r6, #-1276] + b .L1990 +.L1992: cmp r2, #0 strneh r7, [r4, #40] @ movhi cmp r2, #256 cmpne r3, #1 - beq .L2009 + beq .L1996 ldr r3, [r4, #36] cmp r3, #0 - beq .L2010 -.L2009: + beq .L1997 +.L1996: mov r3, #0 str r3, [r4, #36] - b .L2000 -.L2010: - ldr r2, [r6, #-2804] + b .L1987 +.L1997: + ldr r2, [r6, #-1268] ldr r3, [r4, #24] str r2, [r3, r8, asl #2] -.L2003: +.L1990: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2019: +.L2006: .align 2 -.L2018: +.L2005: .word .LANCHOR2 - .word .LANCHOR2-3198 + .word .LANCHOR2-1662 .word .LANCHOR0 - .word .LANCHOR2-3190 - .word .LANCHOR2-2808 + .word .LANCHOR2-1654 + .word .LANCHOR2-1272 .word .LC38 .word .LC39 .fnend @@ -11308,17 +11169,17 @@ ftl_map_blk_gc: ldrh r3, [r4, #10] ldrh r2, [r4, #8] sub r3, r3, #4 - ldr r8, .L2034 + ldr r8, .L2021 cmp r2, r3 - blt .L2021 + blt .L2008 uxth r0, r0 mov r0, r0, asl #1 ldrh r10, [r5, r0] cmp r10, #0 - beq .L2021 + beq .L2008 ldr r3, [r4, #32] cmp r3, #0 - bne .L2021 + bne .L2008 mov r2, #1 str r2, [r4, #32] strh r3, [r5, r0] @ movhi @@ -11328,87 +11189,87 @@ ftl_map_blk_gc: strh r3, [r4, #8] @ movhi ldrh r3, [r8, #-14] cmp r2, r3 - bcc .L2022 + bcc .L2009 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2022: - ldr r5, .L2034+4 +.L2009: + ldr r5, .L2021+4 mov fp, #0 -.L2023: +.L2010: ldrh r3, [r4, #6] uxth r6, fp cmp r3, r6 - bls .L2033 + bls .L2020 ldr r3, [r7, r6, asl #2] add ip, r7, r6, asl #2 cmp r10, r3, lsr #10 - bne .L2024 - ldr r3, [r5, #-3004] + bne .L2011 + ldr r3, [r5, #-1468] mov r1, #1 - ldr r9, [r5, #-2976] + ldr r9, [r5, #-1440] mov r2, r1 - ldr r0, .L2034+8 - str r3, [r5, #-2800] - str r9, [r5, #-2796] + ldr r0, .L2021+8 + str r3, [r5, #-1264] + str r9, [r5, #-1260] ldr r3, [r7, r6, asl #2] str ip, [sp, #4] - str r3, [r5, #-2804] + str r3, [r5, #-1268] bl FlashReadPages - ldr r3, [r5, #-2808] + ldr r3, [r5, #-1272] cmn r3, #1 - ldr r3, .L2034+4 + ldr r3, .L2021+4 ldr ip, [sp, #4] - bne .L2025 -.L2027: + bne .L2012 +.L2014: mov r2, #0 - ldr r0, .L2034+12 + ldr r0, .L2021+12 str r2, [ip] - ldr r1, [r3, #-2804] + ldr r1, [r3, #-1268] ldrh r2, [r9, #8] str r3, [sp, #4] bl printk mov r2, #1 ldr r3, [sp, #4] - str r2, [r3, #-2812] - b .L2026 -.L2025: + str r2, [r3, #-1276] + b .L2013 +.L2012: ldrh r1, [r9, #8] cmp r1, r6 - bne .L2027 + bne .L2014 ldrh r0, [r9] ldrh r2, [r4, #4] cmp r0, r2 - bne .L2027 + bne .L2014 mov r0, r4 - ldr r2, [r5, #-2800] + ldr r2, [r5, #-1264] bl FtlMapWritePage -.L2024: +.L2011: add fp, fp, #1 - b .L2023 -.L2033: + b .L2010 +.L2020: mov r0, r10 mov r1, #1 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L2021: +.L2008: ldrh r2, [r4, #2] ldrh r3, [r8, #-14] cmp r2, r3 - bcc .L2026 + bcc .L2013 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2026: +.L2013: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2035: +.L2022: .align 2 -.L2034: - .word .LANCHOR2-3184 +.L2021: + .word .LANCHOR2-1648 .word .LANCHOR2 - .word .LANCHOR2-2808 + .word .LANCHOR2-1272 .word .LC40 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc @@ -11421,17 +11282,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, .L2048 + ldr r5, .L2035 ldr r7, [r0, #12] ldr r8, [r0, #24] - ldr r6, [r5, #-2812] + ldr r6, [r5, #-1276] cmp r6, #0 - bne .L2037 + bne .L2024 ldrh r3, [r0] movw r2, #65535 mov r4, r0 cmp r3, r2 - bne .L2038 + bne .L2025 ldrh r3, [r0, #8] add r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -11442,63 +11303,63 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r6, [r4] @ movhi str r3, [r4, #28] - b .L2037 -.L2038: + b .L2024 +.L2025: mov r3, r3, asl #1 - sub r10, r5, #3184 + sub r10, r5, #1648 mov r1, #255 ldrh r9, [r7, r3] ldrh r3, [r0, #2] - ldr r7, [r5, #-2976] + ldr r7, [r5, #-1440] orr r3, r3, r9, asl #10 - str r3, [r5, #-2804] - ldr r3, [r5, #-3008] - str r7, [r5, #-2796] - str r3, [r5, #-2800] + 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, .L2048+4 + ldr r3, .L2035+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, #-3008] + ldr r0, [r5, #-1472] mov r2, r2, asl #3 bl ftl_memset mov r2, r6 -.L2039: +.L2026: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L2047 + bls .L2034 ldr r1, [r8, r3, asl #2] cmp r9, r1, lsr #10 - bne .L2040 + bne .L2027 add r6, r6, #1 - ldr r1, [r5, #-3008] + ldr r1, [r5, #-1472] uxth r6, r6 str r3, [r1, r6, asl #3] ldr r1, [r8, r3, asl #2] - ldr r3, [r5, #-3008] + ldr r3, [r5, #-1472] add r3, r3, r6, asl #3 str r1, [r3, #4] -.L2040: +.L2027: add r2, r2, #1 - b .L2039 -.L2047: - ldr r3, .L2048+8 + b .L2026 +.L2034: + ldr r3, .L2035+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2042 - ldr r0, [r5, #-2800] + beq .L2029 + ldr r0, [r5, #-1264] ldrh r1, [r10, #-6] bl js_hash str r0, [r7, #12] -.L2042: +.L2029: mov r1, #1 mov r3, #0 - ldr r0, .L2048+12 + ldr r0, .L2035+12 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -11506,16 +11367,16 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2037: +.L2024: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2049: +.L2036: .align 2 -.L2048: +.L2035: .word .LANCHOR2 .word -1291 .word .LANCHOR0 - .word .LANCHOR2-2808 + .word .LANCHOR2-1272 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 @@ -11528,24 +11389,25 @@ flush_l2p_region: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #12 - ldr r5, .L2052 + ldr r5, .L2039 mul r4, r4, r0 - sub r0, r5, #504 - ldr r3, [r5, #-2896] + add r0, r5, #1024 + ldr r3, [r5, #-1360] + add r0, r0, #8 add r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] bl FtlMapWritePage - ldr r3, [r5, #-2896] + ldr r3, [r5, #-1360] 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} -.L2053: +.L2040: .align 2 -.L2052: +.L2039: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -11556,75 +11418,74 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2070 + stmfd sp!, {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} mov r1, #0 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - sub r2, r3, #3152 - ldr r3, [r3, #-2896] + ldr r4, .L2057 mov ip, #12 - ldrh r2, [r2, #-10] movw lr, #65535 -.L2055: + sub r3, r4, #1616 + ldrh r2, [r3, #-10] + ldr r3, [r4, #-1360] +.L2042: uxth r0, r1 cmp r0, r2 - bcs .L2067 + bcs .L2054 add r1, r1, #1 - mla r4, ip, r1, r3 - ldrh r4, [r4, #-12] - cmp r4, lr - bne .L2055 - ldmfd sp!, {r4, r5, r6, pc} -.L2067: + mla r5, ip, r1, r3 + ldrh r5, [r5, #-12] + cmp r5, lr + bne .L2042 + ldmfd sp!, {r4, r5, r6, r7, pc} +.L2054: mov r0, r2 mov r1, #0 mov ip, #-2147483648 - mov r5, #12 -.L2058: - uxth r4, r1 - cmp r4, r2 - bcs .L2068 - mla lr, r5, r1, r3 + mov r6, #12 +.L2045: + uxth r5, r1 + cmp r5, r2 + bcs .L2055 + mla lr, r6, r1, r3 add r1, r1, #1 ldr lr, [lr, #4] cmp lr, ip - mvn r6, lr - mov r6, r6, lsr #31 - movcs r6, #0 - cmp r6, #0 + mvn r7, lr + mov r7, r7, lsr #31 + movcs r7, #0 + cmp r7, #0 movne ip, lr - movne r0, r4 - b .L2058 -.L2068: + movne r0, r5 + b .L2045 +.L2055: cmp r0, r2 - ldmccfd sp!, {r4, r5, r6, pc} - ldr r1, .L2070+4 + ldmccfd sp!, {r4, r5, r6, r7, pc} + movw r1, #1076 mov r0, r2 + ldrh r5, [r4, r1] mvn ip, #0 - ldrh r5, [r1] mov r1, #0 -.L2061: +.L2048: uxth lr, r1 cmp lr, r2 - bcs .L2069 + bcs .L2056 ldr r4, [r3, #4] cmp r4, ip - bcs .L2062 + bcs .L2049 ldrh r6, [r3] cmp r6, r5 movne ip, r4 movne r0, lr -.L2062: +.L2049: add r1, r1, #1 add r3, r3, #12 - b .L2061 -.L2069: - ldmfd sp!, {r4, r5, r6, pc} -.L2071: + b .L2048 +.L2056: + ldmfd sp!, {r4, r5, r6, r7, pc} +.L2058: .align 2 -.L2070: +.L2057: .word .LANCHOR2 - .word .LANCHOR2-460 .fnend .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -11638,41 +11499,41 @@ log2phys: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L2089 - sub r3, r6, #3184 + ldr r6, .L2076 + sub r3, r6, #1648 str r3, [sp, #8] - ldr ip, [r6, #-2816] + ldr ip, [r6, #-1280] ldrh r10, [r3, #-8] cmp r0, ip - bcs .L2073 + bcs .L2060 add r10, r10, #7 mov fp, r6 mov r6, r0, lsr r10 - sub r3, fp, #3152 + sub r3, fp, #1616 str r2, [sp, #12] mov r9, r1 ldrh r2, [r3, #-10] uxth r6, r6 str r0, [sp, #4] mov r3, #0 - ldr r4, [fp, #-2896] + ldr r4, [fp, #-1360] mov r1, #12 - b .L2074 -.L2073: + b .L2061 +.L2060: cmp r2, #0 mvn r0, #0 streq r0, [r1] - b .L2075 -.L2079: + b .L2062 +.L2066: add r3, r3, #1 mla r0, r1, r3, r4 ldrh r0, [r0, #-12] cmp r0, r6 - beq .L2076 -.L2074: + beq .L2063 +.L2061: uxth r7, r3 cmp r7, r2 - bcc .L2079 + bcc .L2066 bl select_l2p_ram_region mov r5, #12 movw r2, #65535 @@ -11681,26 +11542,26 @@ log2phys: add r3, r4, r5 ldrh r1, [r4, r5] cmp r1, r2 - bne .L2088 -.L2080: - ldr r3, [fp, #-2908] - ldr r4, .L2089 + bne .L2075 +.L2067: + ldr r3, [fp, #-1372] + ldr r4, .L2076 ldr r8, [r3, r6, asl #2] cmp r8, #0 - bne .L2081 - ldr r2, [r4, #-2896] + bne .L2068 + ldr r2, [r4, #-1360] mov r1, #255 ldr r3, [sp, #8] add r2, r2, r5 ldr r0, [r2, #8] ldrh r2, [r3, #-6] bl ftl_memset - ldr r2, [r4, #-2896] + ldr r2, [r4, #-1360] strh r6, [r2, r5] @ movhi - ldr r2, [r4, #-2896] + ldr r2, [r4, #-1360] add r5, r2, r5 str r8, [r5, #4] -.L2076: +.L2063: ldr r3, [sp, #4] mvn r2, #0 bic r10, r3, r2, asl r10 @@ -11708,29 +11569,29 @@ log2phys: cmp r3, #0 uxth r10, r10 mov r3, #12 - bne .L2077 - ldr r2, [fp, #-2896] + bne .L2064 + ldr r2, [fp, #-1360] mla r3, r3, r7, r2 ldr r3, [r3, #8] ldr r3, [r3, r10, asl #2] str r3, [r9] - b .L2078 -.L2077: + b .L2065 +.L2064: mul r3, r3, r7 - ldr r2, [fp, #-2896] + ldr r2, [fp, #-1360] ldr r1, [r9] add r2, r2, r3 ldr r2, [r2, #8] str r1, [r2, r10, asl #2] - ldr r2, [fp, #-2896] + ldr r2, [fp, #-1360] add r3, r2, r3 ldr r2, [r3, #4] orr r2, r2, #-2147483648 str r2, [r3, #4] - ldr r3, .L2089+4 - strh r6, [r3] @ movhi -.L2078: - ldr r2, [fp, #-2896] + movw r3, #1076 + strh r6, [fp, r3] @ movhi +.L2065: + ldr r2, [fp, #-1360] mov r3, #12 mov r0, #0 mla r7, r3, r7, r2 @@ -11738,82 +11599,82 @@ log2phys: cmn r3, #1 addne r3, r3, #1 strne r3, [r7, #4] - b .L2075 -.L2088: + b .L2062 +.L2075: ldr r3, [r3, #4] cmp r3, #0 - bge .L2080 + bge .L2067 bl flush_l2p_region - b .L2080 -.L2081: - ldr r2, [r4, #-2896] + b .L2067 +.L2068: + ldr r2, [r4, #-1360] mov r1, #1 - ldr r0, .L2089+8 + ldr r0, .L2076+4 add r2, r2, r5 - str r8, [r4, #-2804] + str r8, [r4, #-1268] ldr r2, [r2, #8] - str r2, [r4, #-2800] - ldr r2, [r4, #-2976] - str r2, [r4, #-2796] + str r2, [r4, #-1264] + ldr r2, [r4, #-1440] + str r2, [r4, #-1260] mov r2, r1 bl FlashReadPages - ldr r2, [r4, #-2796] + ldr r2, [r4, #-1260] ldrh r2, [r2, #8] cmp r2, r6 - beq .L2082 + beq .L2069 mov r1, r6 mov r2, r8 - ldr r0, .L2089+12 + ldr r0, .L2076+8 bl printk mov r2, #4 mov r3, r2 - ldr r0, .L2089+16 - ldr r1, [r4, #-2796] + ldr r0, .L2076+12 + ldr r1, [r4, #-1260] bl rknand_print_hex - sub r3, r4, #3152 - ldr r0, .L2089+20 + sub r3, r4, #1616 + ldr r0, .L2076+16 mov r2, #4 ldrh r3, [r3, #-12] - ldr r1, [r4, #-2908] + ldr r1, [r4, #-1372] bl rknand_print_hex mov r3, #1 - str r3, [r4, #-2812] - b .L2083 -.L2082: - ldr r2, [r4, #-2808] + str r3, [r4, #-1276] + b .L2070 +.L2069: + ldr r2, [r4, #-1272] cmp r2, #256 - bne .L2083 + bne .L2070 mov r1, r6 mov r2, r8 - ldr r0, .L2089+24 + ldr r0, .L2076+20 bl printk - ldr r3, [r4, #-2896] - sub r0, r4, #504 + ldr r3, [r4, #-1360] + ldr r0, .L2076+24 mov r1, r6 add r3, r3, r5 ldr r2, [r3, #8] bl FtlMapWritePage -.L2083: - ldr r3, [fp, #-2896] +.L2070: + ldr r3, [fp, #-1360] mov r1, #0 add r2, r3, r5 str r1, [r2, #4] strh r6, [r3, r5] @ movhi - b .L2076 -.L2075: + b .L2063 +.L2062: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2090: +.L2077: .align 2 -.L2089: +.L2076: .word .LANCHOR2 - .word .LANCHOR2-460 - .word .LANCHOR2-2808 + .word .LANCHOR2-1272 .word .LC41 .word .LC17 .word .LC42 .word .LC43 + .word .LANCHOR2+1032 .fnend .size log2phys, .-log2phys .align 2 @@ -11821,49 +11682,45 @@ log2phys: .type FtlVendorPartWrite, %function FtlVendorPartWrite: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2103 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, .L2103+4 - .pad #68 - sub sp, sp, #68 - ldr r2, [r3] - mov r4, r1 - add r1, r0, r1 + ldr r6, .L2089 + add r2, r0, r1 mov r7, r0 + .pad #60 + sub sp, sp, #60 + mov r4, r1 + ldrh r3, [r6, #-20] ldrh r5, [r6, #-8] - str r2, [sp, #60] - ldrh r2, [r6, #-20] - str r3, [sp, #12] - cmp r1, r2 + cmp r2, r3 mvnhi r0, #0 - bhi .L2092 + bhi .L2079 mov r5, r7, lsr r5 mov r3, #0 - str r3, [sp, #4] - add r3, r6, #3184 + str r3, [sp] + add r3, r6, #1648 mov r10, r5, asl #2 - str r3, [sp, #8] + str r3, [sp, #4] mov r8, r3 -.L2093: +.L2080: cmp r4, #0 - beq .L2102 - ldr r3, [sp, #8] + beq .L2088 + ldr r3, [sp, #4] mov r0, r7 - ldr r3, [r3, #-2912] + ldr r3, [r3, #-1376] ldr ip, [r3, r10] - ldr r3, .L2103+8 - str ip, [sp, #20] + ldr r3, .L2089+4 + str ip, [sp, #12] ldrh r2, [r3] mov r1, r2 - str r2, [sp, #16] + str r2, [sp, #8] bl __aeabi_uidivmod - ldr r2, [sp, #16] + ldr r2, [sp, #8] mov r9, r1 - ldr ip, [sp, #20] + ldr ip, [sp, #12] rsb r3, r1, r2 uxth r6, r3 cmp r6, r4 @@ -11872,67 +11729,59 @@ FtlVendorPartWrite: cmpne ip, #0 movne r1, #1 moveq r1, #0 - beq .L2095 - ldr r2, [r8, #-3000] + beq .L2082 + ldr r2, [r8, #-1464] mov r1, #1 - add r0, sp, #24 - str ip, [sp, #28] - str r2, [sp, #32] + add r0, sp, #20 + str ip, [sp, #24] + str r2, [sp, #28] mov r2, #0 - str r2, [sp, #36] + str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2096 -.L2095: - ldr r2, .L2103+12 - ldr r0, [r8, #-3000] + b .L2083 +.L2082: + ldr r2, .L2089+8 + ldr r0, [r8, #-1464] ldrh r2, [r2] bl ftl_memset -.L2096: +.L2083: mov ip, r6, asl #9 - ldr r0, [r8, #-3000] + ldr r0, [r8, #-1464] uxth r9, r9 mov r1, fp mov r2, ip - str ip, [sp, #16] + str ip, [sp, #8] add r0, r0, r9, asl #9 rsb r4, r6, r4 bl ftl_memcpy mov r1, r5 - ldr r0, .L2103+16 + ldr r0, .L2089+12 add r5, r5, #1 - ldr r2, [r8, #-3000] + ldr r2, [r8, #-1464] add r7, r7, r6 bl FtlMapWritePage add r10, r10, #4 - ldr r3, [sp, #4] + ldr r3, [sp] cmn r0, #1 - ldr ip, [sp, #16] + ldr ip, [sp, #8] mvneq r3, #0 add fp, fp, ip - str r3, [sp, #4] - b .L2093 -.L2102: - ldr r0, [sp, #4] -.L2092: - ldr r3, [sp, #12] - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L2099 - bl __stack_chk_fail -.L2099: - add sp, sp, #68 + str r3, [sp] + b .L2080 +.L2088: + ldr r0, [sp] +.L2079: + add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2104: +.L2090: .align 2 -.L2103: - .word __stack_chk_guard - .word .LANCHOR2-3184 - .word .LANCHOR2-3194 - .word .LANCHOR2-3190 - .word .LANCHOR2-456 +.L2089: + .word .LANCHOR2-1648 + .word .LANCHOR2-1658 + .word .LANCHOR2-1654 + .word .LANCHOR2+1080 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 @@ -11942,117 +11791,110 @@ FtlVendorPartRead: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2118 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 r5, .L2118+4 + mov r9, r2 + ldr r6, .L2103 + add r2, r0, r1 + mov r8, r0 .pad #60 sub sp, sp, #60 - ldr r2, [r3] - mov r6, r1 - add r1, r0, r1 - mov r7, r0 - ldrh r4, [r5, #-8] - str r2, [sp, #52] - ldrh r2, [r5, #-20] - str r3, [sp, #12] - cmp r1, r2 + mov r7, r1 + ldrh r3, [r6, #-20] + ldrh r5, [r6, #-8] + cmp r2, r3 mvnhi r0, #0 - bhi .L2106 - add r5, r5, #3184 - mov r4, r7, lsr r4 - mov fp, r5 - mov r3, r4, asl #2 + bhi .L2092 + add r6, r6, #1648 + mov r5, r8, lsr r5 + mov r10, r6 + mov r3, r5, asl #2 str r3, [sp, #4] mov r3, #0 str r3, [sp] -.L2107: - cmp r6, #0 - beq .L2117 - ldr r3, [r5, #-2912] - mov r0, r7 +.L2093: + cmp r7, #0 + beq .L2102 ldr r2, [sp, #4] - ldr r9, [r3, r2] - ldr r3, .L2118+8 - ldrh r10, [r3] - mov r1, r10 + mov r0, r8 + ldr r3, [r6, #-1376] + ldr r3, [r3, r2] + str r3, [sp, #12] + ldr r3, .L2103+4 + ldrh r4, [r3] + mov r1, r4 bl __aeabi_uidivmod - rsb r3, r1, r10 + rsb r4, r1, r4 + ldr r3, [sp, #12] str r1, [sp, #8] - uxth r10, r3 - cmp r10, r6 - uxthhi r10, r6 - cmp r9, #0 - beq .L2109 - ldr r2, [fp, #-3000] + uxth r4, r4 + cmp r4, r7 + uxthhi r4, r7 + cmp r3, #0 + mov fp, r4, asl #9 + beq .L2095 + ldr r2, [r10, #-1464] mov r1, #1 - add r0, sp, #16 - str r9, [sp, #20] - str r2, [sp, #24] - mov r2, #0 + add r0, sp, #20 + str r3, [sp, #24] + str r3, [sp, #12] str r2, [sp, #28] + mov r2, #0 + str r2, [sp, #32] mov r2, r1 bl FlashReadPages - ldr r2, [sp, #16] + ldr r2, [sp, #20] ldr r3, [sp] cmn r2, #1 - ldr r2, [fp, #-2808] + ldr r2, [r10, #-1272] mvneq r3, #0 cmp r2, #256 str r3, [sp] - bne .L2111 - mov r1, r4 - mov r2, r9 - ldr r0, .L2118+12 - bl printk - ldr r0, .L2118+16 - mov r1, r4 - ldr r2, [r5, #-3000] - bl FtlMapWritePage -.L2111: - ldrh r9, [sp, #8] - mov r0, r8 - ldr r1, [fp, #-3000] - mov r2, r10, asl #9 - add r1, r1, r9, asl #9 - bl ftl_memcpy - b .L2112 -.L2109: - mov r0, r8 - mov r1, r9 - mov r2, r10, asl #9 - bl ftl_memset -.L2112: - ldr r3, [sp, #4] - add r4, r4, #1 - rsb r6, r10, r6 - add r7, r7, r10 - add r3, r3, #4 - add r8, r8, r10, asl #9 - str r3, [sp, #4] - b .L2107 -.L2117: - ldr r0, [sp] -.L2106: ldr r3, [sp, #12] - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L2114 - bl __stack_chk_fail -.L2114: + bne .L2097 + mov r1, r5 + mov r2, r3 + ldr r0, .L2103+8 + bl printk + ldr r0, .L2103+12 + mov r1, r5 + ldr r2, [r6, #-1464] + bl FtlMapWritePage +.L2097: + ldrh r3, [sp, #8] + mov r0, r9 + ldr r1, [r10, #-1464] + mov r2, fp + add r1, r1, r3, asl #9 + bl ftl_memcpy + b .L2098 +.L2095: + mov r0, r9 + mov r1, r3 + mov r2, fp + bl ftl_memset +.L2098: + ldr r3, [sp, #4] + add r5, r5, #1 + rsb r7, r4, r7 + add r8, r8, r4 + add r3, r3, #4 + add r9, r9, fp + str r3, [sp, #4] + b .L2093 +.L2102: + ldr r0, [sp] +.L2092: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2119: +.L2104: .align 2 -.L2118: - .word __stack_chk_guard - .word .LANCHOR2-3184 - .word .LANCHOR2-3194 +.L2103: + .word .LANCHOR2-1648 + .word .LANCHOR2-1658 .word .LC44 - .word .LANCHOR2-456 + .word .LANCHOR2+1080 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 @@ -12062,38 +11904,39 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2128 - sub r1, r3, #412 - ldrh r2, [r1] + ldr ip, .L2113 + movw r1, #1124 + ldrh r2, [ip, r1] cmp r2, #4 cmpls r0, #0 addeq r2, r2, #1 - streqh r2, [r1] @ movhi + streqh r2, [ip, r1] @ movhi bxeq lr str lr, [sp, #-4]! .save {lr} mov r2, #0 - strh r2, [r1] @ movhi - sub r1, r3, #3248 - str r2, [r3, #-408] - movw ip, #65535 + strh r2, [ip, r1] @ movhi + sub r1, ip, #1712 + str r2, [ip, #1128] + mov r3, ip ldrh r0, [r1, #-12] - ldr r2, [r3, #-2940] + ldr r2, [ip, #-1404] + movw ip, #65535 add r0, r2, r0, asl #1 -.L2122: +.L2107: cmp r2, r0 - beq .L2127 + beq .L2112 ldrh r1, [r2], #2 cmp r1, ip - ldrne lr, [r3, #-408] + ldrne lr, [r3, #1128] addne r1, r1, lr - strne r1, [r3, #-408] - b .L2122 -.L2127: + strne r1, [r3, #1128] + b .L2107 +.L2112: ldr pc, [sp], #4 -.L2129: +.L2114: .align 2 -.L2128: +.L2113: .word .LANCHOR2 .fnend .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn @@ -12111,44 +11954,44 @@ FtlMapBlkWriteDumpData: cmp r2, #0 ldr r3, [r0, #24] ldmeqfd sp!, {r4, r5, r6, pc} - ldr r4, .L2137 + ldr r4, .L2122 mov r2, #0 str r2, [r0, #36] - ldr r2, [r4, #-2812] + ldr r2, [r4, #-1276] cmp r2, #0 ldmnefd sp!, {r4, r5, r6, pc} sub r5, r5, #1 mov r6, r0 - ldr r2, [r4, #-2976] - ldr r0, [r4, #-3004] + ldr r2, [r4, #-1440] + ldr r0, [r4, #-1468] uxth r5, r5 - str r2, [r4, #-2796] - str r0, [r4, #-2800] + str r2, [r4, #-1260] + str r0, [r4, #-1264] ldr r3, [r3, r5, asl #2] cmp r3, #0 - str r3, [r4, #-2804] - beq .L2134 + str r3, [r4, #-1268] + beq .L2119 mov r1, #1 - ldr r0, .L2137+4 + ldr r0, .L2122+4 mov r2, r1 bl FlashReadPages - b .L2135 -.L2134: - sub r3, r4, #3184 + b .L2120 +.L2119: + sub r3, r4, #1648 mov r1, #255 ldrh r2, [r3, #-6] bl ftl_memset -.L2135: +.L2120: mov r0, r6 mov r1, r5 - ldr r2, [r4, #-2800] + ldr r2, [r4, #-1264] ldmfd sp!, {r4, r5, r6, lr} b FtlMapWritePage -.L2138: +.L2123: .align 2 -.L2137: +.L2122: .word .LANCHOR2 - .word .LANCHOR2-2808 + .word .LANCHOR2-1272 .fnend .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .align 2 @@ -12156,219 +11999,215 @@ FtlMapBlkWriteDumpData: .type FtlVpcTblFlush, %function FtlVpcTblFlush: .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 r4, .L2157 - ldr r3, [r4, #-2812] + 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] cmp r3, #0 - bne .L2141 - ldr r2, [r4, #-3008] - sub r7, r4, #404 - ldr r6, [r4, #-2976] - sub r5, r4, #716 + bne .L2126 + ldr r2, [r4, #-1472] + add r5, r4, #820 + ldr r6, [r4, #-1440] mov r1, #255 - str r2, [r4, #-2800] - ldrh r2, [r7] - str r6, [r4, #-2796] + ldr r7, .L2142+4 + str r2, [r4, #-1264] + movw r2, #1132 + ldrh r2, [r4, r2] + str r6, [r4, #-1260] str r3, [r6, #12] strh r2, [r6, #2] @ movhi - ldr r2, .L2157+4 + ldr r2, .L2142+8 strh r2, [r6] @ movhi - ldr r2, [r4, #-396] + ldr r2, [r4, #1140] stmib r6, {r2, r3} - ldr r3, .L2157+8 - str r3, [r4, #-716] - ldr r3, .L2157+12 - str r3, [r4, #-712] + ldr r3, .L2142+12 + str r3, [r4, #820] + ldr r3, .L2142+16 + str r3, [r4, #824] ldrh r3, [r7, #6] strh r3, [r5, #8] @ movhi - sub r3, r4, #3232 + sub r3, r4, #1696 ldrh r3, [r3, #-14] - strb r3, [r4, #-706] - sub r3, r4, #648 + strb r3, [r4, #830] + add r3, r4, #888 ldrh r2, [r3] strh r2, [r5, #14] @ movhi ldrh r2, [r3, #2] - ldrb r3, [r4, #-642] @ zero_extendqisi2 + ldrb r3, [r4, #894] @ zero_extendqisi2 orr r3, r3, r2, asl #6 strh r3, [r5, #16] @ movhi - ldrb r3, [r4, #-640] @ zero_extendqisi2 - strb r3, [r4, #-705] - sub r3, r4, #600 + ldrb r3, [r4, #896] @ zero_extendqisi2 + strb r3, [r4, #831] + add r3, r4, #936 ldrh r2, [r3] strh r2, [r5, #18] @ movhi ldrh r2, [r3, #2] - ldrb r3, [r4, #-594] @ zero_extendqisi2 + ldrb r3, [r4, #942] @ zero_extendqisi2 orr r3, r3, r2, asl #6 strh r3, [r5, #20] @ movhi - ldrb r3, [r4, #-592] @ zero_extendqisi2 - strb r3, [r4, #-704] - sub r3, r4, #552 + ldrb r3, [r4, #944] @ zero_extendqisi2 + strb r3, [r4, #832] + add r3, r4, #984 ldrh r2, [r3] strh r2, [r5, #22] @ movhi ldrh r2, [r3, #2] - ldrb r3, [r4, #-546] @ zero_extendqisi2 - ldr r0, [r4, #-2800] + ldrb r3, [r4, #990] @ zero_extendqisi2 + ldr r0, [r4, #-1264] orr r3, r3, r2, asl #6 strh r3, [r5, #24] @ movhi - ldrb r3, [r4, #-544] @ zero_extendqisi2 - strb r3, [r4, #-703] - ldr r3, [r4, #-3116] - str r3, [r4, #-684] - ldr r3, [r4, #-3148] - str r3, [r4, #-676] - ldr r3, [r4, #-3144] - str r3, [r4, #-680] - sub r3, r4, #3072 + 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] + str r3, [r4, #856] + sub r3, r4, #1536 ldrh r3, [r3] strh r3, [r5, #44] @ movhi - sub r3, r4, #3056 + sub r3, r4, #1520 ldrh r3, [r3, #-14] strh r3, [r5, #46] @ movhi - sub r3, r4, #3184 + sub r3, r4, #1648 ldrh r2, [r3, #-6] bl ftl_memset mov r1, r5 - sub r5, r4, #3248 + sub r5, r4, #1712 mov r2, #48 - ldr r0, [r4, #-2800] + ldr r0, [r4, #-1264] bl ftl_memcpy ldrh r2, [r5, #-12] - ldr r0, [r4, #-2800] - ldr r1, [r4, #-2940] + ldr r0, [r4, #-1264] + ldr r1, [r4, #-1404] mov r2, r2, asl #1 add r0, r0, #48 bl ftl_memcpy ldrh r2, [r5, #-12] - ldr r0, [r4, #-2800] + ldr r0, [r4, #-1264] add r3, r2, #24 - ldr r1, [r4, #-2928] + ldr r1, [r4, #-1392] ubfx r3, r3, #1, #30 mov r2, r2, lsr #3 add r2, r2, #4 add r0, r0, r3, asl #2 bl ftl_memcpy - sub r2, r4, #3152 + sub r2, r4, #1616 ldrh r3, [r2, #-8] cmp r3, #0 - beq .L2142 + beq .L2127 ldrh r1, [r5, #-12] ldrh r2, [r2, #-12] - ldr r0, [r4, #-2800] + ldr r0, [r4, #-1264] mov r3, r1, lsr #3 add r3, r3, r1, asl #1 mov r2, r2, asl #2 add r3, r3, #52 - ldr r1, [r4, #-2908] + ldr r1, [r4, #-1372] ubfx r3, r3, #2, #14 add r0, r0, r3, asl #2 bl ftl_memcpy -.L2142: +.L2127: mov r0, #0 - ldr r8, .L2157 + ldr r9, .L2142 bl FtlUpdateVaildLpn - ldr r10, .L2157+16 - ldr fp, .L2157+20 - mov r5, #0 - movw r9, #65535 -.L2143: - ldrh r1, [r7] - ldrh r0, [r7, #2] - ldr r3, [r4, #-3008] - orr r2, r0, r1, asl #10 - str r2, [r4, #-2804] - ldrh r2, [r10] - str r3, [r4, #-2800] - sub r2, r2, #1 - ldr r3, [r4, #-2976] - cmp r0, r2 - str r3, [r4, #-2796] - ldr r3, .L2157+24 - blt .L2144 - ldrh r9, [r3, #4] - mov r2, #0 - strh r1, [r3, #4] @ movhi - strh r2, [r3, #2] @ movhi - str r3, [sp, #4] + ldr fp, .L2142+4 + mov r8, #0 + movw r10, #65535 +.L2128: + ldr r3, [r4, #-1472] + 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 + ldrh r3, [r3] + sub r3, r3, #1 + cmp r1, r3 + blt .L2129 + mov r3, #0 + ldrh r10, [fp, #4] + strh r3, [fp, #2] @ movhi + strh r2, [fp, #4] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [sp, #4] - strh r0, [r3] @ movhi - ldr r3, [r8, #-3148] + ldr r3, [r9, #-1612] add r2, r3, #1 - str r2, [r8, #-3148] - str r3, [r8, #-396] + str r2, [r9, #-1612] + str r3, [r9, #1140] mov r2, r0, asl #10 - str r2, [r8, #-2804] + strh r0, [fp] @ movhi + str r2, [r9, #-1268] str r3, [r6, #4] strh r0, [r6, #2] @ movhi -.L2144: - ldrb r3, [fp] @ zero_extendqisi2 +.L2129: + ldr r3, .L2142+24 + ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2145 - ldr r3, .L2157+28 - ldr r0, [r4, #-3008] + beq .L2130 + ldr r3, .L2142+28 + ldr r0, [r4, #-1472] ldrh r1, [r3] bl js_hash str r0, [r6, #12] -.L2145: +.L2130: mov r1, #1 - ldr r0, .L2157+32 - mov r2, r1 + ldr r0, .L2142+32 mov r3, r1 + mov r2, r1 bl FlashProgPages - ldrh r3, [r7, #2] - ldr r2, [r4, #-2808] - add r3, r3, #1 - cmn r2, #1 - uxth r3, r3 - strh r3, [r7, #2] @ movhi - bne .L2146 - cmp r3, #1 + ldrh r5, [r7, #2] + ldr r3, [r4, #-1272] add r5, r5, #1 - ldreqh r3, [r10] + cmn r3, #1 uxth r5, r5 - ldreq r2, .L2157+24 + strh r5, [r7, #2] @ movhi + bne .L2131 + cmp r5, #1 + add r8, r8, #1 + ldreq r3, .L2142+20 + uxth r8, r8 + ldreqh r3, [r3] subeq r3, r3, #1 - streqh r3, [r2, #2] @ movhi - cmp r5, #3 - bls .L2143 - ldr r0, .L2157+36 - mov r2, r5 - ldr r1, [r4, #-2804] + streqh r3, [fp, #2] @ movhi + cmp r8, #3 + bls .L2128 + ldr r0, .L2142+36 + mov r2, r8 + ldr r1, [r4, #-1268] bl printk mov r3, #1 - str r3, [r4, #-2812] - b .L2141 -.L2146: - cmp r2, #256 - cmpne r3, #1 - beq .L2143 + str r3, [r4, #-1276] + b .L2126 +.L2131: + cmp r3, #256 + cmpne r5, #1 + beq .L2128 movw r3, #65535 - cmp r9, r3 - beq .L2141 - mov r0, r9 + cmp r10, r3 + beq .L2126 + mov r0, r10 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2141: +.L2126: mov r0, #0 - add sp, sp, #12 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2158: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2143: .align 2 -.L2157: +.L2142: .word .LANCHOR2 + .word .LANCHOR2+1132 .word -3932 .word 1179929683 - .word 1342177367 - .word .LANCHOR2-3198 + .word 1342177376 + .word .LANCHOR2-1662 .word .LANCHOR0 - .word .LANCHOR2-404 - .word .LANCHOR2-3190 - .word .LANCHOR2-2808 + .word .LANCHOR2-1654 + .word .LANCHOR2-1272 .word .LC45 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush @@ -12381,436 +12220,432 @@ FtlScanSysBlk: @ 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, #0 - ldr r10, .L2245 - mov r1, fp + movw r3, #1148 + ldr r4, .L2230 + mov r5, #0 + mov r1, r5 .pad #28 sub sp, sp, #28 - sub r3, r10, #2816 - sub r5, r10, #388 - ldr r2, [r10, #-3172] - sub r4, r10, #3168 - ldr r0, [r10, #-2900] - strh fp, [r3, #-4] @ movhi + sub r6, r4, #1632 + ldr r2, [r4, #-1636] + mov r8, r4 + strh r5, [r4, r3] @ movhi + sub r3, r4, #1280 + ldr r0, [r4, #-1364] mov r2, r2, asl #2 - strh fp, [r5] @ movhi + strh r5, [r3, #-4] @ movhi bl ftl_memset - ldr r2, [r10, #-3172] - mov r1, fp - ldr r0, [r10, #-2936] + ldr r2, [r4, #-1636] + mov r1, r5 + ldr r0, [r4, #-1400] mov r2, r2, asl #1 bl ftl_memset - ldrh r2, [r4, #-12] - mov r1, fp - ldr r0, [r10, #-2916] + ldrh r2, [r6, #-12] + mov r1, r5 + ldr r0, [r4, #-1380] mov r2, r2, asl #2 bl ftl_memset - ldrh r2, [r4, #-12] - mov r1, fp - ldr r0, [r10, #-2924] - mov r4, r10 + ldrh r2, [r6, #-12] + mov r1, r5 + ldr r0, [r4, #-1388] + mov r5, r4 mov r2, r2, asl #1 bl ftl_memset - sub r0, r10, #404 + ldr r0, .L2230+4 mov r1, #255 mov r2, #16 bl ftl_memset - sub r3, r10, #3248 - ldrh fp, [r3, #-12] - str r5, [sp, #12] - mov r5, r10 -.L2160: - ldr r3, .L2245+4 - ldr r1, .L2245 + sub r3, r4, #1712 + ldrh r3, [r3, #-12] + str r3, [sp] +.L2145: + ldr r3, .L2230+8 + ldr r2, [sp] + ldr r1, .L2230 ldrh r3, [r3] - cmp r3, fp - bls .L2201 - ldr r1, [r5, #-2968] + cmp r3, r2 + bls .L2186 + ldr r1, [r5, #-1432] mov r6, #0 - ldr r3, .L2245+8 - mov r8, r6 - ldr r2, [r5, #-3036] - mov r7, #36 - str r1, [sp] - ldr r1, .L2245+12 + ldr r3, .L2230+12 + mov fp, r6 + ldr r2, [r5, #-1500] + mov r9, #36 + str r1, [sp, #4] + ldr r1, .L2230+16 ldrh ip, [r3] - ldr r3, [r5, #-2996] - sub r9, r1, #52 + ldr r3, [r5, #-1460] + sub r7, r1, #52 ldrh r10, [r1] -.L2202: +.L2187: uxth r1, r6 cmp r1, ip - bcs .L2240 - mov r1, fp - ldrb r0, [r9, r6] @ zero_extendqisi2 + bcs .L2225 + ldr r1, [sp] + ldrb r0, [r7, r6] @ zero_extendqisi2 str r3, [sp, #20] str r2, [sp, #16] - str ip, [sp, #8] + str ip, [sp, #12] bl V2P_block - str r0, [sp, #4] + str r0, [sp, #8] bl FtlBbmIsBadBlock cmp r0, #0 - ldmib sp, {r1, ip} + ldr r1, [sp, #8] + ldr ip, [sp, #12] ldr r2, [sp, #16] ldr r3, [sp, #20] - bne .L2161 - mla r0, r7, r8, r2 + bne .L2146 + mla r0, r9, fp, r2 mov r1, r1, asl #10 stmib r0, {r1, r3} - mul r1, r10, r8 - add r8, r8, #1 - uxth r8, r8 + mul r1, r10, fp add lr, r1, #3 cmp r1, #0 movlt r1, lr - ldr lr, [sp] + ldr lr, [sp, #4] bic r1, r1, #3 add r1, lr, r1 str r1, [r0, #12] -.L2161: + add r1, fp, #1 + uxth fp, r1 +.L2146: add r6, r6, #1 - b .L2202 -.L2240: - cmp r8, #0 - beq .L2164 - ldr r0, [r4, #-3036] - mov r1, r8 + b .L2187 +.L2225: + cmp fp, #0 + beq .L2149 + ldr r0, [r4, #-1500] + mov r1, fp mov r2, #1 bl FlashReadPages mov r3, #0 -.L2238: - str r3, [sp] - ldrh r3, [sp] - cmp r3, r8 - bcs .L2164 - ldr r3, [sp] +.L2223: + str r3, [sp, #4] + ldrh r3, [sp, #4] + cmp r3, fp + bcs .L2149 + ldr r3, [sp, #4] mov r9, #36 mul r9, r9, r3 - ldr r3, [r4, #-3036] + ldr r3, [r4, #-1500] add r2, r3, r9 ldr r3, [r3, r9] ldr r6, [r2, #4] cmn r3, #1 ldr r7, [r2, #12] ubfx r6, r6, #10, #16 - bne .L2167 + bne .L2152 mov r10, #16 movw ip, #65535 -.L2166: - ldr r0, [r4, #-3036] +.L2151: + ldr r0, [r4, #-1500] mov r1, #1 mov r2, r1 - str ip, [sp, #4] + 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, #4] + ldr ip, [sp, #8] cmp r3, ip - ldreq r3, .L2245 + ldreq r3, [r8, #-1500] mvneq r2, #0 - ldreq r3, [r3, #-3036] streq r2, [r3, r9] - beq .L2167 -.L2168: - ldr r3, [r5, #-3036] + beq .L2152 +.L2153: + ldr r3, [r5, #-1500] ldr r3, [r3, r9] cmn r3, #1 - bne .L2167 + bne .L2152 sub r10, r10, #1 uxth r10, r10 cmp r10, #0 - bne .L2166 -.L2167: - ldr r3, [r5, #-3036] + bne .L2151 +.L2152: + ldr r3, [r5, #-1500] ldr r3, [r3, r9] - ldr r9, .L2245 cmn r3, #1 - beq .L2170 - ldr r2, [r5, #-3148] + beq .L2155 + ldr r2, [r5, #-1612] ldr r3, [r7, #4] cmn r2, #1 - beq .L2171 + beq .L2156 cmp r2, r3 - bhi .L2172 -.L2171: + bhi .L2157 +.L2156: cmn r3, #1 addne r2, r3, #1 - strne r2, [r9, #-3148] -.L2172: + strne r2, [r8, #-1612] +.L2157: ldrh r2, [r7] movw r1, #61604 cmp r2, r1 - beq .L2174 - bhi .L2175 + beq .L2159 + bhi .L2160 movw r3, #61574 cmp r2, r3 - bne .L2173 - ldr r2, .L2245+16 - ldr lr, [r4, #-2916] - ldrh ip, [r2] - add r2, r2, #360 - sub r0, ip, #1 + bne .L2158 + ldr ip, .L2230+20 + ldr r9, [r4, #-1380] + add r2, ip, #360 + ldrh lr, [ip] ldrh r1, [r2] - uxth r3, r0 + sub r0, lr, #1 rsb r2, r1, r0 - str r2, [sp, #4] - b .L2188 -.L2175: + str r2, [sp, #8] + uxth r3, r0 + b .L2173 +.L2160: movw r3, #61634 cmp r2, r3 - beq .L2177 + beq .L2162 movw r3, #65535 cmp r2, r3 moveq r0, r6 - beq .L2239 - b .L2173 -.L2177: - ldr ip, [r4, #-3172] - ldr r2, [sp, #12] - ldr lr, [r4, #-2900] - uxth r1, ip - ldrh r2, [r2] + beq .L2224 + b .L2158 +.L2162: + ldr lr, [r4, #-1636] + ldr ip, .L2230+24 + ldr r9, [r4, #-1364] + uxth r1, lr + ldrh r2, [ip] sub r3, r1, #1 rsb r1, r2, r1 uxth r3, r3 sub r1, r1, #1 sxth r1, r1 - str r1, [sp, #8] -.L2179: - ldr r1, [sp, #8] + str r1, [sp, #12] +.L2164: + ldr r1, [sp, #12] sxth r0, r3 cmp r0, r1 - ble .L2241 + ble .L2226 mov r10, r0, asl #2 ldr r1, [r7, #4] - str r10, [sp, #4] - ldr r10, [lr, r0, asl #2] + str r10, [sp, #8] + ldr r10, [r9, r0, asl #2] cmp r1, r10 - bls .L2180 - ldr r1, [lr] + bls .L2165 + ldr r1, [r9] cmp r1, #0 - bne .L2181 - cmp r2, ip - addne r2, r2, #1 - ldrne r1, .L2245+20 - strneh r2, [r1] @ movhi -.L2181: - uxth lr, r3 - mov r1, #0 -.L2182: - uxth r2, r1 + bne .L2166 cmp r2, lr - bcs .L2242 - ldr ip, [r5, #-2900] + addne r2, r2, #1 + strneh r2, [ip] @ movhi +.L2166: + uxth r9, r3 + mov r1, #0 +.L2167: + uxth r2, r1 + cmp r2, r9 + bcs .L2227 + ldr lr, [r5, #-1364] sxth r2, r2 add r1, r1, #1 - add r10, ip, r2, asl #2 + add r10, lr, r2, asl #2 ldr r10, [r10, #4] - str r10, [ip, r2, asl #2] + str r10, [lr, r2, asl #2] mov r2, r2, asl #1 - ldr ip, [r5, #-2936] - add r10, ip, r2 + ldr lr, [r5, #-1400] + add r10, lr, r2 ldrh r10, [r10, #2] - strh r10, [ip, r2] @ movhi - b .L2182 -.L2242: - ldr r2, [r9, #-2900] + strh r10, [lr, r2] @ movhi + b .L2167 +.L2227: + ldr r2, [r8, #-1364] mov r0, r0, asl #1 ldr r1, [r7, #4] - ldr ip, [sp, #4] - str r1, [r2, ip] - ldr r2, [r9, #-2936] + ldr lr, [sp, #8] + str r1, [r2, lr] + ldr r2, [r8, #-1400] strh r6, [r2, r0] @ movhi sxth r0, r3 cmp r0, #0 - bge .L2184 - b .L2173 -.L2180: + bge .L2169 + b .L2158 +.L2165: sub r3, r3, #1 uxth r3, r3 - b .L2179 -.L2241: + b .L2164 +.L2226: cmp r0, #0 - bge .L2215 - b .L2173 -.L2184: - ldr r2, .L2245+20 - ldr r1, [r5, #-3172] - ldrh r2, [r2] + bge .L2200 + b .L2158 +.L2169: + ldrh r2, [ip] + ldr r1, [r5, #-1636] rsb r1, r2, r1 sub r1, r1, #1 sxth r1, r1 cmp r0, r1 - bgt .L2173 -.L2215: - ldr r1, .L2245+20 + bgt .L2158 +.L2200: add r2, r2, #1 - sxth r3, r3 - strh r2, [r1] @ movhi - ldr r2, [r4, #-2900] ldr r1, [r7, #4] + strh r2, [ip] @ movhi + sxth r3, r3 + ldr r2, [r4, #-1364] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r4, #-2936] - b .L2236 -.L2194: + ldr r2, [r4, #-1400] + b .L2221 +.L2179: mov r10, r2, asl #2 ldr r0, [r7, #4] - str r10, [sp, #8] - ldr r10, [lr, r2, asl #2] + str r10, [sp, #12] + ldr r10, [r9, r2, asl #2] cmp r0, r10 - bhi .L2243 + bhi .L2228 sub r3, r3, #1 uxth r3, r3 -.L2188: - ldr r0, [sp, #4] +.L2173: + ldr r0, [sp, #8] sxth r2, r3 cmp r2, r0 - bgt .L2194 - b .L2193 -.L2243: - ldr r0, [lr] + bgt .L2179 + b .L2178 +.L2228: + ldr r0, [r9] cmp r0, #0 - bne .L2190 - cmp r1, ip - addne r1, r1, #1 - ldrne r0, .L2245+24 - strneh r1, [r0] @ movhi -.L2190: - uxth lr, r3 - mov r0, #0 -.L2191: - uxth r1, r0 + bne .L2175 cmp r1, lr - bcs .L2244 - ldr ip, [r5, #-2916] + addne r1, r1, #1 + ldrne r0, .L2230+28 + strneh r1, [r0] @ movhi +.L2175: + uxth r9, r3 + mov r0, #0 +.L2176: + uxth r1, r0 + cmp r1, r9 + bcs .L2229 + ldr lr, [r5, #-1380] sxth r1, r1 add r0, r0, #1 - add r10, ip, r1, asl #2 + add r10, lr, r1, asl #2 ldr r10, [r10, #4] - str r10, [ip, r1, asl #2] + str r10, [lr, r1, asl #2] mov r1, r1, asl #1 - ldr ip, [r5, #-2924] - add r10, ip, r1 + ldr lr, [r5, #-1388] + add r10, lr, r1 ldrh r10, [r10, #2] - strh r10, [ip, r1] @ movhi - b .L2191 -.L2244: - ldr r1, [r9, #-2916] + strh r10, [lr, r1] @ movhi + b .L2176 +.L2229: + ldr r1, [r8, #-1380] mov r2, r2, asl #1 ldr r0, [r7, #4] - ldr ip, [sp, #8] - str r0, [r1, ip] - ldr r1, [r9, #-2924] + ldr lr, [sp, #12] + str r0, [r1, lr] + ldr r1, [r8, #-1388] strh r6, [r1, r2] @ movhi -.L2193: +.L2178: sxth r3, r3 cmp r3, #0 - blt .L2173 - ldr r1, .L2245+24 - sub r0, r1, #360 + blt .L2158 + ldr r1, .L2230+28 + ldrh ip, [ip] ldrh r2, [r1] - ldrh r9, [r0] - sub r9, r9, #1 - rsb r9, r2, r9 - sxth r9, r9 - cmp r3, r9 - bgt .L2173 + 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, #-2916] + ldr r2, [r5, #-1380] ldr r1, [r7, #4] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, [r5, #-2924] -.L2236: + ldr r2, [r5, #-1388] +.L2221: strh r6, [r2, r3] @ movhi - b .L2173 -.L2174: - ldr r2, .L2245+28 + b .L2158 +.L2159: + ldr r2, .L2230+4 + ldr r9, .L2230+4 ldrh r1, [r2] movw r2, #65535 cmp r1, r2 - ldreq r2, .L2245+28 + moveq r2, r9 streqh r6, [r2] @ movhi - beq .L2237 - ldr r3, .L2245+28 + beq .L2222 + ldr r3, .L2230+4 ldrh r0, [r3, #4] cmp r0, r2 - beq .L2196 + beq .L2181 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2196: +.L2181: ldr r3, [r7, #4] - ldr r2, [r9, #-396] + ldr r2, [r8, #1140] cmp r2, r3 - ldr r3, .L2245+28 - strcsh r6, [r3, #4] @ movhi - bcs .L2173 - ldrh r3, [r3] - ldr r2, .L2245+28 - strh r3, [r2, #4] @ movhi + strcsh r6, [r9, #4] @ movhi + bcs .L2158 + ldrh r3, [r9] + strh r6, [r9] @ movhi + strh r3, [r9, #4] @ movhi ldr r3, [r7, #4] - strh r6, [r2] @ movhi -.L2237: - str r3, [r5, #-396] - b .L2173 -.L2170: - ldr r3, .L2245+32 +.L2222: + str r3, [r5, #1140] + b .L2158 +.L2155: + ldrb r1, [r5, #-2744] @ zero_extendqisi2 mov r0, r6 - ldrb r1, [r3, #3904] @ zero_extendqisi2 cmp r1, #0 - beq .L2198 -.L2239: + beq .L2183 +.L2224: mov r1, #0 -.L2198: +.L2183: bl FtlFreeSysBlkQueueIn -.L2173: - ldr r3, [sp] +.L2158: + ldr r3, [sp, #4] add r3, r3, #1 - b .L2238 -.L2164: - add r8, fp, #1 - uxth fp, r8 - b .L2160 -.L2201: - ldr ip, [r1, #-2936] + b .L2223 +.L2149: + ldr r3, [sp] + add r6, r3, #1 + uxth r3, r6 + str r3, [sp] + b .L2145 +.L2186: + ldr ip, [r1, #-1400] ldrh r2, [ip] cmp r2, #0 - beq .L2203 -.L2206: - ldr r0, [r1, #-2924] + beq .L2188 +.L2191: + ldr r0, [r1, #-1388] ldrh r2, [r0] cmp r2, #0 - beq .L2204 - b .L2227 -.L2203: - sub r3, r1, #388 - ldrh r3, [r3] + beq .L2189 + b .L2212 +.L2188: + movw r3, #1148 + ldrh r3, [r1, r3] cmp r3, #0 - ldrne lr, [r1, #-3172] - beq .L2206 -.L2207: + ldrne lr, [r1, #-1636] + beq .L2191 +.L2192: uxth r3, r2 sxth r0, r3 cmp r0, lr - bcs .L2206 + bcs .L2191 mov r4, r0, asl #1 add r2, r2, #1 ldrh r4, [ip, r4] cmp r4, #0 - beq .L2207 - ldr ip, .L2245 + beq .L2192 + ldr ip, .L2230 mov r6, #0 -.L2208: - ldr lr, [r1, #-3172] +.L2193: + ldr lr, [r1, #-1636] sxth r2, r3 cmp r2, lr - bcs .L2206 - ldr r4, [ip, #-2936] + bcs .L2191 + ldr r4, [ip, #-1400] mov lr, r2, asl #1 rsb r5, r0, r2 add r3, r3, #1 @@ -12818,38 +12653,38 @@ FtlScanSysBlk: mov r7, r5, asl #1 uxth r3, r3 strh r8, [r4, r7] @ movhi - ldr r4, [ip, #-2900] + ldr r4, [ip, #-1364] ldr r2, [r4, r2, asl #2] str r2, [r4, r5, asl #2] - ldr r2, [ip, #-2936] + ldr r2, [ip, #-1400] strh r6, [r2, lr] @ movhi - b .L2208 -.L2204: - ldr r3, .L2245+36 + b .L2193 +.L2189: + ldr r3, .L2230+32 ldrh r1, [r3, #-4] cmp r1, #0 subne r3, r3, #352 ldrneh ip, [r3, #-12] - beq .L2227 -.L2211: + beq .L2212 +.L2196: uxth r3, r2 sxth r1, r3 cmp r1, ip - bge .L2227 + bge .L2212 mov lr, r1, asl #1 add r2, r2, #1 ldrh lr, [r0, lr] cmp lr, #0 - beq .L2211 - ldr r0, .L2245 + beq .L2196 + ldr r0, .L2230 mov r6, #0 - ldr r5, .L2245+16 -.L2212: + ldr r5, .L2230+20 +.L2197: ldrh ip, [r5] sxth r2, r3 cmp r2, ip - bge .L2227 - ldr lr, [r0, #-2924] + bge .L2212 + ldr lr, [r0, #-1388] mov ip, r2, asl #1 rsb r4, r1, r2 add r3, r3, #1 @@ -12857,30 +12692,29 @@ FtlScanSysBlk: mov r7, r4, asl #1 uxth r3, r3 strh r8, [lr, r7] @ movhi - ldr lr, [r0, #-2916] + ldr lr, [r0, #-1380] ldr r2, [lr, r2, asl #2] str r2, [lr, r4, asl #2] - ldr r2, [r0, #-2924] + ldr r2, [r0, #-1388] strh r6, [r2, ip] @ movhi - b .L2212 -.L2227: + b .L2197 +.L2212: mov r0, #0 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2246: +.L2231: .align 2 -.L2245: +.L2230: .word .LANCHOR2 - .word .LANCHOR2-3258 - .word .LANCHOR2-3268 - .word .LANCHOR2-3188 - .word .LANCHOR2-3180 - .word .LANCHOR2-388 - .word .LANCHOR2-2820 - .word .LANCHOR2-404 - .word .LANCHOR0 - .word .LANCHOR2-2816 + .word .LANCHOR2+1132 + .word .LANCHOR2-1722 + .word .LANCHOR2-1732 + .word .LANCHOR2-1652 + .word .LANCHOR2-1644 + .word .LANCHOR2+1148 + .word .LANCHOR2-1284 + .word .LANCHOR2-1280 .fnend .size FtlScanSysBlk, .-FtlScanSysBlk .align 2 @@ -12893,30 +12727,30 @@ FtlLoadEctTbl: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #64 - ldr r4, .L2250 - sub r5, r4, #2960 - ldr r2, [r4, #-2952] + ldr r4, .L2235 + sub r5, r4, #1424 + ldr r2, [r4, #-1416] ldrh r1, [r5] bl FtlVendorPartRead - ldr r3, [r4, #-2952] + ldr r3, [r4, #-1416] ldr r2, [r3] - ldr r3, .L2250+4 + ldr r3, .L2235+4 cmp r2, r3 - beq .L2248 - ldr r1, .L2250+8 - ldr r0, .L2250+12 + beq .L2233 + ldr r1, .L2235+8 + ldr r0, .L2235+12 bl printk ldrh r2, [r5] - ldr r0, [r4, #-2952] + ldr r0, [r4, #-1416] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L2248: +.L2233: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L2251: +.L2236: .align 2 -.L2250: +.L2235: .word .LANCHOR2 .word 1112818501 .word .LC47 @@ -12931,21 +12765,21 @@ ftl_set_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2256 + ldr r2, .L2241 mov r3, r0, lsr #5 cmp r1, #0 and r0, r0, #31 uxth r3, r3 mov ip, #1 - ldr r1, [r2, #-2928] + ldr r1, [r2, #-1392] 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 -.L2257: +.L2242: .align 2 -.L2256: +.L2241: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -12957,17 +12791,17 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2259 + ldr r3, .L2244 mov r2, r0, lsr #5 and r0, r0, #31 - ldr r3, [r3, #-2928] + ldr r3, [r3, #-1392] ldr r3, [r3, r2, asl #2] mov r0, r3, lsr r0 and r0, r0, #1 bx lr -.L2260: +.L2245: .align 2 -.L2259: +.L2244: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -12978,120 +12812,110 @@ FtlCheckVpc: .fnstart @ args = 0, pretend = 0, frame = 8 @ 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 mov r4, #0 - ldr r6, .L2283 - ldr r1, .L2283+4 - ldr r0, .L2283+8 - ldr r3, [r6] - ldr r5, .L2283+12 - str r3, [sp, #4] + ldr r1, .L2267 + ldr r0, .L2267+4 bl printk - ldr r0, .L2283+16 + ldr r0, .L2267+8 mov r1, #0 mov r2, #8192 - sub r8, r5, #384 bl memset -.L2262: - ldr r3, [r5, #-2816] - ldr r7, .L2283+12 + ldr r5, .L2267+12 + add r7, r5, #1152 +.L2247: + ldr r3, [r5, #-1280] + ldr r6, .L2267+12 cmp r4, r3 - bcs .L2281 + bcs .L2265 mov r0, r4 - mov r1, sp + add r1, sp, #4 mov r2, #0 bl log2phys - ldr r0, [sp] + ldr r0, [sp, #4] cmn r0, #1 - beq .L2263 + beq .L2248 ubfx r0, r0, #10, #16 bl P2V_block_in_plane mov r0, r0, asl #1 - ldrh r3, [r8, r0] + ldrh r3, [r7, r0] add r3, r3, #1 - strh r3, [r8, r0] @ movhi -.L2263: + strh r3, [r7, r0] @ movhi +.L2248: add r4, r4, #1 - b .L2262 -.L2281: - ldr r5, .L2283+20 - sub r9, r7, #384 - mov r4, #0 - mov r8, r7 + b .L2247 .L2265: + ldr r5, .L2267+16 + add r8, r6, #1152 + mov r4, #0 + mov r7, r6 +.L2250: ldrh r3, [r5] uxth r1, r4 - ldr r2, .L2283+12 + ldr r0, .L2267+12 cmp r3, r1 - bls .L2282 - ldr r2, [r8, #-2940] + bls .L2266 + ldr r2, [r7, #-1404] mov r3, r1, asl #1 ldrh r2, [r2, r3] - ldrh r3, [r9, r3] + ldrh r3, [r8, r3] cmp r2, r3 - beq .L2266 - ldr r0, .L2283+24 + beq .L2251 + ldr r0, .L2267+20 bl printk -.L2266: +.L2251: add r4, r4, #1 - b .L2265 -.L2282: - ldr r4, [r2, #-656] - cmp r4, #0 - beq .L2261 - sub r3, r2, #652 - sub r9, r2, #384 + b .L2250 +.L2266: + ldr r3, [r0, #880] + cmp r3, #0 + beq .L2246 + add r2, r0, #884 + add r8, r0, #1152 mov r5, #0 - mov r10, #6 - ldrh r8, [r3] - ldr r3, [r2, #-2888] - rsb r4, r3, r4 - ldr r3, .L2283+28 - mov r4, r4, asr #1 - mul r4, r3, r4 - uxth r4, r4 -.L2269: + mov r9, #6 + ldrh r7, [r2] + ldr r2, [r0, #-1352] + rsb r3, r2, r3 + ldr r2, .L2267+24 + mov r3, r3, asr #1 + mul r3, r2, r3 + uxth r4, r3 +.L2254: uxth r3, r5 - cmp r3, r8 - bcs .L2261 - ldr r2, [r7, #-2940] + cmp r3, r7 + bcs .L2246 + ldr r2, [r6, #-1404] mov r3, r4, asl #1 ldrh r2, [r2, r3] cmp r2, #0 - beq .L2270 - ldr r0, .L2283+32 + beq .L2255 + ldr r0, .L2267+28 mov r1, r4 - ldrh r3, [r9, r3] + ldrh r3, [r8, r3] bl printk -.L2270: - mul r4, r10, r4 - ldr r3, [r7, #-2888] +.L2255: + mul r4, r9, r4 + ldr r3, [r6, #-1352] add r5, r5, #1 ldrh r4, [r3, r4] movw r3, #65535 cmp r4, r3 - bne .L2269 -.L2261: - ldr r2, [sp, #4] - ldr r3, [r6] - cmp r2, r3 - beq .L2273 - bl __stack_chk_fail -.L2273: - add sp, sp, #8 + bne .L2254 +.L2246: + add sp, sp, #12 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2284: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L2268: .align 2 -.L2283: - .word __stack_chk_guard +.L2267: .word .LANCHOR3+16 .word .LC48 + .word .LANCHOR2+1152 .word .LANCHOR2 - .word .LANCHOR2-384 - .word .LANCHOR2-3260 + .word .LANCHOR2-1724 .word .LC49 .word -1431655765 .word .LC50 @@ -13107,30 +12931,30 @@ FtlDumpSysBlock: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r7, r0, asl #10 - ldr r4, .L2294 + ldr r4, .L2278 .pad #24 sub sp, sp, #24 - ldr r8, .L2294+4 + ldr r8, .L2278+4 mov r6, r0 mov r5, #0 - ldr r3, [r4, #-3008] - str r3, [r4, #-2800] - ldr r3, [r4, #-2976] - str r3, [r4, #-2796] -.L2286: + ldr r3, [r4, #-1472] + str r3, [r4, #-1264] + ldr r3, [r4, #-1440] + str r3, [r4, #-1260] +.L2270: ldrh r2, [r8] sxth r3, r5 cmp r3, r2 - bge .L2293 + bge .L2277 mov r1, #1 - ldr r0, .L2294+8 + ldr r0, .L2278+8 mov r2, r1 orr r3, r3, r7 - str r3, [r4, #-2804] + str r3, [r4, #-1268] bl FlashReadPages - ldr r3, [r4, #-2796] + ldr r3, [r4, #-1260] mov r1, r6 - ldr r0, .L2294+12 + ldr r0, .L2278+12 ldr r2, [r3] str r2, [sp] ldr r2, [r3, #4] @@ -13138,35 +12962,35 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #-2808] + ldr r2, [r4, #-1272] str r3, [sp, #12] - ldr r3, [r4, #-2800] + ldr r3, [r4, #-1264] ldr r3, [r3] str r3, [sp, #16] - ldr r3, [r4, #-2804] + ldr r3, [r4, #-1268] bl printk - ldr r3, [r4, #-2796] + ldr r3, [r4, #-1260] ldr r3, [r3] cmn r3, #1 - beq .L2287 - ldr r0, .L2294+16 + beq .L2271 + ldr r0, .L2278+16 mov r2, #4 - ldr r1, [r4, #-3008] + ldr r1, [r4, #-1472] mov r3, #768 bl rknand_print_hex -.L2287: +.L2271: add r5, r5, #1 - b .L2286 -.L2293: + b .L2270 +.L2277: add sp, sp, #24 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2295: +.L2279: .align 2 -.L2294: +.L2278: .word .LANCHOR2 - .word .LANCHOR2-3198 - .word .LANCHOR2-2808 + .word .LANCHOR2-1662 + .word .LANCHOR2-1272 .word .LC51 .word .LC52 .fnend @@ -13178,60 +13002,57 @@ Ftlscanalldata: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - .pad #32 - sub sp, sp, #32 - ldr r6, .L2307 + stmfd sp!, {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} mov r1, #0 - ldr r0, .L2307+4 - mov r5, #0 - ldr r7, .L2307+8 - ldr r3, [r6] - mov r4, r7 - str r3, [sp, #28] + .pad #36 + sub sp, sp, #36 + ldr r0, .L2290 bl printk -.L2297: - ldr r3, [r7, #-2816] + ldr r6, .L2290+4 + mov r5, #0 + mov r4, r6 +.L2281: + ldr r3, [r6, #-1280] cmp r5, r3 - bcs .L2306 + bcs .L2289 mov r0, r5 - add r1, sp, #24 + add r1, sp, #28 mov r2, #0 bl log2phys ubfx r3, r5, #0, #11 cmp r3, #0 - bne .L2298 - ldr r0, .L2307+12 + bne .L2282 + ldr r0, .L2290+8 mov r1, r5 - ldr r2, [sp, #24] + ldr r2, [sp, #28] bl printk -.L2298: - ldr r3, [sp, #24] +.L2282: + ldr r3, [sp, #28] cmn r3, #1 - beq .L2300 - str r3, [r4, #-2804] + beq .L2284 + str r3, [r4, #-1268] mov r2, #0 - ldr r3, [r4, #-3008] + ldr r3, [r4, #-1472] mov r1, #1 - ldr r8, [r4, #-2976] - ldr r0, .L2307+16 - str r3, [r4, #-2800] - str r5, [r4, #-2792] - str r8, [r4, #-2796] - str r2, [r4, #-2808] + ldr r7, [r4, #-1440] + ldr r0, .L2290+12 + str r3, [r4, #-1264] + str r5, [r4, #-1256] + str r7, [r4, #-1260] + str r2, [r4, #-1272] bl FlashReadPages - ldr r3, [r4, #-2808] + ldr r3, [r4, #-1272] cmn r3, #1 cmpne r3, #256 - beq .L2301 - ldr r3, [r8, #8] + beq .L2285 + ldr r3, [r7, #8] cmp r3, r5 - beq .L2300 -.L2301: - ldr r3, [r4, #-2796] - ldr r2, [r4, #-2800] - ldr r0, .L2307+20 + beq .L2284 +.L2285: + ldr r3, [r4, #-1260] + ldr r2, [r4, #-1264] + ldr r0, .L2290+16 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -13243,30 +13064,23 @@ Ftlscanalldata: mov r1, r5 ldr r2, [r2, #4] str r2, [sp, #16] - ldr r2, [r4, #-2804] + ldr r2, [r4, #-1268] ldr r3, [r3] bl printk -.L2300: +.L2284: add r5, r5, #1 - b .L2297 -.L2306: - ldr r2, [sp, #28] - ldr r3, [r6] - cmp r2, r3 - beq .L2304 - bl __stack_chk_fail -.L2304: - add sp, sp, #32 + b .L2281 +.L2289: + add sp, sp, #36 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2308: + ldmfd sp!, {r4, r5, r6, r7, pc} +.L2291: .align 2 -.L2307: - .word __stack_chk_guard +.L2290: .word .LC53 .word .LANCHOR2 .word .LC54 - .word .LANCHOR2-2808 + .word .LANCHOR2-1272 .word .LC55 .fnend .size Ftlscanalldata, .-Ftlscanalldata @@ -13281,29 +13095,29 @@ dump_map_info: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r5, .L2327 - ldr fp, .L2327+4 + ldr r5, .L2310 + ldr fp, .L2310+4 ldrh r6, [r5, #-12] - add r5, r5, #3248 + add r5, r5, #1712 mov r8, r5 -.L2310: +.L2293: ldrh r3, [fp] cmp r3, r6 - bls .L2323 - ldr r1, .L2327+8 + bls .L2306 + ldr r1, .L2310+8 mov r7, #0 - ldr r2, [r5, #-3036] + ldr r2, [r5, #-1500] mov r4, r7 - ldr r3, [r5, #-2996] + ldr r3, [r5, #-1460] add r1, r1, #28 - ldr r10, [r5, #-2968] + ldr r10, [r5, #-1432] ldrh ip, [r1, #-28] ldrh r9, [r1, #52] str r1, [sp, #28] -.L2319: +.L2302: uxth r1, r7 cmp r1, ip - bcs .L2325 + bcs .L2308 str r3, [sp, #44] mov r1, r6 ldr r3, [sp, #28] @@ -13318,7 +13132,7 @@ dump_map_info: ldr ip, [sp, #36] ldr r2, [sp, #40] ldr r3, [sp, #44] - bne .L2311 + bne .L2294 mov r0, #36 mov r1, r1, asl #10 mla r0, r0, r4, r2 @@ -13332,24 +13146,24 @@ dump_map_info: bic r1, r1, #3 add r1, r10, r1 str r1, [r0, #12] -.L2311: +.L2294: add r7, r7, #1 - b .L2319 -.L2325: + b .L2302 +.L2308: cmp r4, #0 - beq .L2314 - ldr r0, [r8, #-3036] + beq .L2297 + ldr r0, [r8, #-1500] mov r1, r4 mov r2, #1 mov r7, #0 bl FlashReadPages mov r9, #36 -.L2315: +.L2298: uxth r3, r7 cmp r3, r4 - bcs .L2314 - ldr r3, [r8, #-3036] - ldr r0, .L2327+12 + bcs .L2297 + ldr r3, [r8, #-1500] + ldr r0, .L2310+12 mla r3, r9, r7, r3 add r7, r7, #1 ldmib r3, {r2, r3, ip} @@ -13366,41 +13180,41 @@ dump_map_info: str r3, [sp, #16] ldr r3, [ip] bl printk - b .L2315 -.L2314: + b .L2298 +.L2297: add r6, r6, #1 uxth r6, r6 - b .L2310 -.L2323: - ldr r4, .L2327+16 + b .L2293 +.L2306: + ldr r4, .L2310+16 mov r7, #0 - ldr r8, .L2327+20 -.L2318: - ldr r5, .L2327+16 + ldr r8, .L2310+20 +.L2301: + ldrh r3, [r8] sxth r6, r7 - sub r3, r5, #388 - ldrh r3, [r3] + ldr r5, .L2310+16 cmp r6, r3 - bge .L2321 + bge .L2304 + ldr r9, .L2310+24 mov r6, r6, asl #1 mov r5, #0 -.L2322: - ldrh r2, [r8] +.L2305: + ldrh r2, [r9] sxth r3, r5 add r5, r5, #1 cmp r3, r2 - bge .L2326 - ldr r2, [r4, #-2936] + bge .L2309 + ldr r2, [r4, #-1400] mov r1, #1 - ldr r0, .L2327+24 + ldr r0, .L2310+28 ldrh r2, [r2, r6] orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r4, #-2804] + str r3, [r4, #-1268] bl FlashReadPages - ldr r3, [r4, #-2796] - ldr r1, [r4, #-2936] - ldr r2, [r4, #-2800] + ldr r3, [r4, #-1260] + ldr r1, [r4, #-1400] + ldr r2, [r4, #-1264] ldr r0, [r3] ldrh r1, [r1, r6] str r0, [sp] @@ -13409,49 +13223,50 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L2327+28 + ldr r0, .L2310+32 str r3, [sp, #12] ldr r3, [r2] str r3, [sp, #16] ldr r3, [r2, #4] str r3, [sp, #20] - ldr r2, [r4, #-2808] - ldr r3, [r4, #-2804] + ldr r2, [r4, #-1272] + ldr r3, [r4, #-1268] bl printk - b .L2322 -.L2326: + b .L2305 +.L2309: add r7, r7, #1 - b .L2318 -.L2321: - sub r4, r5, #3152 - ldr r1, [r5, #-2936] - ldr r3, [r5, #-3172] + b .L2301 +.L2304: + sub r4, r5, #1616 + ldr r1, [r5, #-1400] + ldr r3, [r5, #-1636] mov r2, #2 - ldr r0, .L2327+32 + ldr r0, .L2310+36 bl rknand_print_hex - ldr r1, [r5, #-2908] + ldr r1, [r5, #-1372] ldrh r3, [r4, #-12] mov r2, #4 - ldr r0, .L2327+36 + ldr r0, .L2310+40 bl rknand_print_hex - ldr r0, .L2327+40 - ldr r1, [r5, #-2904] + ldr r0, .L2310+44 + ldr r1, [r5, #-1368] mov r2, #4 ldrh r3, [r4, #-12] add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b rknand_print_hex -.L2328: +.L2311: .align 2 -.L2327: - .word .LANCHOR2-3248 - .word .LANCHOR2-3258 - .word .LANCHOR2-3268 +.L2310: + .word .LANCHOR2-1712 + .word .LANCHOR2-1722 + .word .LANCHOR2-1732 .word .LC56 .word .LANCHOR2 - .word .LANCHOR2-3198 - .word .LANCHOR2-2808 + .word .LANCHOR2+1148 + .word .LANCHOR2-1662 + .word .LANCHOR2-1272 .word .LC57 .word .LC58 .word .LC59 @@ -13479,34 +13294,34 @@ FtlMapTblRecovery: mov r2, r9, asl #2 ldr r8, [r0, #12] mov r0, r7 - ldr r5, .L2372 + ldr r5, .L2355 str r3, [sp, #8] bl ftl_memset mov r1, #0 str r1, [r4, #32] - ldr r3, [r5, #-3008] + ldr r3, [r5, #-1472] mov r10, r5 - ldr r6, [r5, #-2976] + ldr r6, [r5, #-1440] str r1, [r4, #28] - str r3, [r5, #-2800] + str r3, [r5, #-1264] mvn r3, #0 - str r6, [r5, #-2796] + str r6, [r5, #-1260] strh r3, [r4] @ movhi strh r3, [r4, #2] @ movhi mov r3, #1 str r3, [r4, #36] str r1, [sp, #4] -.L2330: +.L2313: ldrh r2, [sp, #4] ldr r3, [sp, #8] sxth fp, r2 cmp fp, r3 - bge .L2348 + bge .L2331 ldr r3, [sp, #8] sub r1, r3, #1 cmp fp, r1 mov r1, fp, asl #1 - bne .L2331 + bne .L2314 ldrh r0, [r8, r1] add r10, r8, r1 mov r1, #1 @@ -13520,103 +13335,103 @@ FtlMapTblRecovery: ldr r3, [sp, #12] strh r2, [r4] @ movhi ldr r3, [r3, fp, asl #2] - ldr fp, .L2372 + ldr fp, .L2355 str r3, [r4, #28] add r3, r0, #1 str r3, [sp, #4] -.L2332: +.L2315: ldr r2, [sp, #4] sxth r3, r8 cmp r3, r2 - bge .L2348 + bge .L2331 ldrh r2, [r10] mov r1, #1 - ldr r0, .L2372+4 + ldr r0, .L2355+4 orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r5, #-2804] + str r3, [r5, #-1268] bl FlashReadPages - ldr r3, .L2372+8 + ldr r3, .L2355+8 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2333 - ldr r3, [fp, #-2796] + beq .L2316 + ldr r3, [fp, #-1260] ldr r3, [r3, #12] cmp r3, #0 - beq .L2333 - ldr r2, .L2372+12 - ldr r0, [fp, #-2800] + beq .L2316 + ldr r2, .L2355+12 + ldr r0, [fp, #-1264] str r3, [sp, #8] ldrh r1, [r2] bl js_hash ldr r3, [sp, #8] cmp r3, r0 mvnne r3, #0 - strne r3, [fp, #-2808] -.L2333: - ldr r3, [fp, #-2808] + strne r3, [fp, #-1272] +.L2316: + ldr r3, [fp, #-1272] cmn r3, #1 - beq .L2334 + beq .L2317 ldrh r3, [r6, #8] cmp r3, r9 - bcs .L2334 + bcs .L2317 ldrh r2, [r4, #4] ldrh r1, [r6] cmp r1, r2 - ldreq r2, [fp, #-2804] + ldreq r2, [fp, #-1268] streq r2, [r7, r3, asl #2] -.L2334: +.L2317: add r8, r8, #1 - b .L2332 -.L2348: + b .L2315 +.L2331: mov r0, r4 bl ftl_free_no_use_map_blk - ldr r3, .L2372+16 + ldr r3, .L2355+16 ldrh r2, [r4, #2] ldrh r3, [r3, #-14] cmp r2, r3 - bne .L2337 + bne .L2320 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2337 -.L2331: - ldr r2, [r5, #-3008] + b .L2320 +.L2314: + ldr r2, [r5, #-1472] add r3, r8, r1 str r3, [sp, #16] - ldr r3, .L2372+20 - str r2, [r5, #-2800] + ldr r3, .L2355+20 + str r2, [r5, #-1264] ldrh r1, [r8, r1] ldrh r2, [r3] - ldr r0, .L2372+4 + ldr r0, .L2355+4 sub r2, r2, #1 orr r2, r2, r1, asl #10 mov r1, #1 - str r2, [r5, #-2804] + str r2, [r5, #-1268] mov r2, r1 bl FlashReadPages - ldr r2, [r5, #-2808] + ldr r2, [r5, #-1272] cmn r2, #1 - beq .L2350 + beq .L2333 ldrh r1, [r6] ldrh r2, [r4, #4] cmp r1, r2 - bne .L2350 + bne .L2333 ldrh r1, [r6, #8] movw r2, #64245 cmp r1, r2 - bne .L2350 + bne .L2333 mov r0, #0 mov fp, #8 mov lr, #4 -.L2339: - ldr r3, .L2372+20 +.L2322: + ldr r3, .L2355+20 uxth r2, r0 sxth r1, r2 ldrh ip, [r3] sub ip, ip, #1 cmp r1, ip - bge .L2342 - ldr ip, [r10, #-3008] + bge .L2325 + ldr ip, [r10, #-1472] add r0, r0, #1 ldr r1, [ip, r1, asl #3] uxth r1, r1 @@ -13624,61 +13439,61 @@ FtlMapTblRecovery: smlabbcc r2, r2, fp, lr ldrcc r2, [ip, r2] strcc r2, [r7, r1, asl #2] - b .L2339 -.L2350: + b .L2322 +.L2333: mov fp, #0 -.L2370: - ldr r3, .L2372+20 +.L2353: + ldr r3, .L2355+20 sxth r2, fp ldrh r1, [r3] cmp r2, r1 - bge .L2342 + bge .L2325 ldr r3, [sp, #16] - ldr r0, .L2372+4 + ldr r0, .L2355+4 ldrh r1, [r3] orr r2, r2, r1, asl #10 mov r1, #1 - str r2, [r10, #-2804] + str r2, [r10, #-1268] mov r2, r1 bl FlashReadPages - ldr r2, .L2372+8 + ldr r2, .L2355+8 ldrb r2, [r2] @ zero_extendqisi2 cmp r2, #0 - beq .L2343 - ldr r2, [r10, #-2796] + beq .L2326 + ldr r2, [r10, #-1260] ldr r2, [r2, #12] cmp r2, #0 - beq .L2343 - ldr r1, .L2372+12 - ldr r0, [r10, #-2800] + beq .L2326 + ldr r1, .L2355+12 + ldr r0, [r10, #-1264] str r2, [sp, #20] ldrh r1, [r1] bl js_hash ldr r2, [sp, #20] cmp r2, r0 mvnne r2, #0 - strne r2, [r10, #-2808] -.L2343: - ldr r2, [r10, #-2808] + strne r2, [r10, #-1272] +.L2326: + ldr r2, [r10, #-1272] cmn r2, #1 - beq .L2344 + beq .L2327 ldrh r2, [r6, #8] cmp r2, r9 - bcs .L2344 + bcs .L2327 ldrh r1, [r4, #4] ldrh r0, [r6] cmp r0, r1 - ldreq r1, [r10, #-2804] + ldreq r1, [r10, #-1268] streq r1, [r7, r2, asl #2] -.L2344: +.L2327: add fp, fp, #1 - b .L2370 -.L2342: + b .L2353 +.L2325: ldr r3, [sp, #4] add r3, r3, #1 str r3, [sp, #4] - b .L2330 -.L2337: + b .L2313 +.L2320: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -13687,15 +13502,15 @@ FtlMapTblRecovery: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2373: +.L2356: .align 2 -.L2372: +.L2355: .word .LANCHOR2 - .word .LANCHOR2-2808 + .word .LANCHOR2-1272 .word .LANCHOR0 - .word .LANCHOR2-3190 - .word .LANCHOR2-3184 - .word .LANCHOR2-3198 + .word .LANCHOR2-1654 + .word .LANCHOR2-1648 + .word .LANCHOR2-1662 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 @@ -13707,32 +13522,33 @@ FtlLoadVonderInfo: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2376 - sub r2, r3, #3168 - sub r0, r3, #456 + ldr r3, .L2359 + sub r2, r3, #1632 + add r0, r3, #1072 + add r0, r0, #8 ldrh r1, [r2, #-12] ldrh r2, [r2, #-10] strh r1, [r0, #10] @ movhi strh r2, [r0, #6] @ movhi - ldr r2, [r3, #-2924] - ldr r1, .L2376+4 - str r2, [r3, #-444] - ldr r2, [r3, #-2916] + ldr r2, [r3, #-1388] + ldr r1, .L2359+4 + str r2, [r3, #1092] + ldr r2, [r3, #-1380] strh r1, [r0, #4] @ movhi - sub r1, r3, #2816 - str r2, [r3, #-440] - ldr r2, [r3, #-2920] + sub r1, r3, #1280 + str r2, [r3, #1096] + ldr r2, [r3, #-1384] ldrh r1, [r1, #-4] - str r2, [r3, #-436] - ldr r2, [r3, #-2912] + str r2, [r3, #1100] + ldr r2, [r3, #-1376] strh r1, [r0, #8] @ movhi - str r2, [r3, #-432] + str r2, [r3, #1104] bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2377: +.L2360: .align 2 -.L2376: +.L2359: .word .LANCHOR2 .word -3962 .fnend @@ -13747,76 +13563,78 @@ FtlL2PDataInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r1, #0 - ldr r4, .L2383 + ldr r4, .L2366 mvn r6, #0 - ldr r2, [r4, #-3172] - ldr r0, [r4, #-2932] + ldr r2, [r4, #-1636] + ldr r0, [r4, #-1396] mov r2, r2, asl #1 bl ftl_memset - sub r3, r4, #3184 - sub r2, r4, #3152 + sub r3, r4, #1648 + sub r2, r4, #1616 mov r1, #255 ldrh r3, [r3, #-6] ldrh r2, [r2, #-10] - ldr r0, [r4, #-2892] + ldr r0, [r4, #-1356] mul r2, r2, r3 bl ftl_memset - ldr r0, .L2383+4 + ldr r0, .L2366+4 mov r1, #0 mov lr, #12 sub r7, r0, #28 mov r5, r1 -.L2379: +.L2362: ldrh r2, [r0] add ip, r1, #1 uxth r1, r1 - ldr r3, .L2383 + ldr r3, .L2366 cmp r2, r1 - sub r8, r3, #3152 - bls .L2382 + sub r8, r3, #1616 + bls .L2365 mul r8, lr, r1 - ldr r3, [r4, #-2896] + ldr r3, [r4, #-1360] add r2, r3, r8 str r5, [r2, #4] strh r6, [r3, r8] @ movhi ldrh r2, [r7] - ldr r3, [r4, #-2896] + ldr r3, [r4, #-1360] mul r2, r1, r2 add r3, r3, r8 - ldr r1, [r4, #-2892] + ldr r1, [r4, #-1356] bic r2, r2, #3 add r2, r1, r2 mov r1, ip str r2, [r3, #8] - b .L2379 -.L2382: - sub r2, r3, #504 + b .L2362 +.L2365: + ldr r2, .L2366+8 + movw r0, #1032 mvn r1, #0 + strh r1, [r3, r0] @ movhi strh r1, [r2, #2] @ movhi - strh r1, [r2] @ movhi - ldr r1, [r3, #-3172] + ldr r1, [r3, #-1636] strh r1, [r2, #10] @ movhi - ldr r1, .L2383+8 + ldr r1, .L2366+12 strh r1, [r2, #4] @ movhi - sub r1, r3, #388 - ldrh r1, [r1] + movw r1, #1148 + ldrh r1, [r3, r1] strh r1, [r2, #8] @ movhi ldrh r1, [r8, #-12] strh r1, [r2, #6] @ movhi - ldr r2, [r3, #-2936] - str r2, [r3, #-492] - ldr r2, [r3, #-2900] - str r2, [r3, #-488] - ldr r2, [r3, #-2932] - str r2, [r3, #-484] - ldr r2, [r3, #-2908] - str r2, [r3, #-480] + ldr r2, [r3, #-1400] + str r2, [r3, #1044] + ldr r2, [r3, #-1364] + str r2, [r3, #1048] + ldr r2, [r3, #-1396] + str r2, [r3, #1052] + ldr r2, [r3, #-1372] + str r2, [r3, #1056] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2384: +.L2367: .align 2 -.L2383: +.L2366: .word .LANCHOR2 - .word .LANCHOR2-3162 + .word .LANCHOR2-1626 + .word .LANCHOR2+1032 .word -3902 .fnend .size FtlL2PDataInit, .-FtlL2PDataInit @@ -13830,14 +13648,14 @@ FtlLoadMapInfo: stmfd sp!, {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2387 + ldr r0, .L2370 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2388: +.L2371: .align 2 -.L2387: - .word .LANCHOR2-504 +.L2370: + .word .LANCHOR2+1032 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 2 @@ -13849,16 +13667,16 @@ ftl_sb_update_avl_pages: @ frame_needed = 0, uses_anonymous_args = 0 mov r3, #0 strh r3, [r0, #4] @ movhi - ldr r3, .L2399 + ldr r3, .L2382 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} movw r4, #65535 ldrh lr, [r3, #-4] add r3, r2, #7 add r3, r0, r3, asl #1 -.L2390: +.L2373: cmp r2, lr - bcs .L2397 + bcs .L2380 ldrh ip, [r3, #2]! add r2, r2, #1 cmp ip, r4 @@ -13866,17 +13684,17 @@ ftl_sb_update_avl_pages: ldrneh ip, [r0, #4] addne ip, ip, #1 strneh ip, [r0, #4] @ movhi - b .L2390 -.L2397: - ldr r3, .L2399+4 + b .L2373 +.L2380: + ldr r3, .L2382+4 add ip, r0, #14 mov r2, #0 movw r5, #65535 ldrh r4, [r3] -.L2393: +.L2376: uxth r3, r2 cmp r3, lr - bcs .L2398 + bcs .L2381 ldrh r3, [ip, #2]! add r2, r2, #1 cmp r3, r5 @@ -13885,14 +13703,14 @@ ftl_sb_update_avl_pages: subne r3, r3, #1 rsbne r3, r1, r3 strneh r3, [r0, #4] @ movhi - b .L2393 -.L2398: + b .L2376 +.L2381: ldmfd sp!, {r4, r5, pc} -.L2400: +.L2383: .align 2 -.L2399: - .word .LANCHOR2-3264 - .word .LANCHOR2-3200 +.L2382: + .word .LANCHOR2-1728 + .word .LANCHOR2-1664 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -13909,20 +13727,20 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r6, .L2411 - ldr r4, [r6, #-2940] + ldr r6, .L2394 + ldr r4, [r6, #-1404] mov r7, r0, asl #1 ldrh r3, [r4, r7] cmp r3, #0 addne r3, r3, #1 strneh r3, [r4, r7] @ movhi - bne .L2403 - ldr r4, [r6, #-656] + bne .L2386 + ldr r4, [r6, #880] cmp r4, #0 - beq .L2403 - ldr r1, [r6, #-2888] - sub r2, r6, #652 - ldr lr, .L2411+4 + beq .L2386 + ldr r1, [r6, #-1352] + add r2, r6, #884 + ldr lr, .L2394+4 movw r9, #65535 rsb r4, r1, r4 ldrh ip, [r2] @@ -13931,32 +13749,32 @@ FtlReUsePrevPpa: mul r4, lr, r4 mov lr, #6 uxth r4, r4 -.L2404: +.L2387: uxth r2, r3 cmp r2, ip - bcs .L2403 + bcs .L2386 cmp r4, r0 - bne .L2405 + bne .L2388 mov r1, r4 - ldr r0, .L2411+8 + ldr r0, .L2394+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, #-2940] + ldr r2, [r6, #-1404] ldrh r3, [r2, r7] add r3, r3, #1 strh r3, [r2, r7] @ movhi - b .L2403 -.L2405: + b .L2386 +.L2388: mul r4, lr, r4 add r3, r3, #1 ldrh r4, [r1, r4] cmp r4, r9 - bne .L2404 -.L2403: + bne .L2387 +.L2386: mov r0, r5 add r1, sp, #4 mov r2, #1 @@ -13964,12 +13782,12 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2412: +.L2395: .align 2 -.L2411: +.L2394: .word .LANCHOR2 .word -1431655765 - .word .LANCHOR2-656 + .word .LANCHOR2+880 .fnend .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 @@ -13979,7 +13797,7 @@ make_superblock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2427 + ldr r3, .L2410 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r6, r0, #16 @@ -13990,10 +13808,10 @@ make_superblock: mov r5, #0 strh r5, [r0, #4] @ movhi strb r5, [r0, #7] -.L2414: +.L2397: uxth r3, r5 cmp r3, r8 - bcs .L2426 + bcs .L2409 ldrb r0, [r7, r5] @ zero_extendqisi2 add r6, r6, #2 ldrh r1, [r4] @@ -14007,38 +13825,38 @@ make_superblock: ldreqb r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 streqb r3, [r4, #7] - b .L2414 -.L2426: - ldr r2, .L2427+4 + b .L2397 +.L2409: + ldr r2, .L2410+4 ldrb r1, [r4, #7] @ zero_extendqisi2 - sub r3, r2, #3200 + sub r3, r2, #1664 ldrh r3, [r3] smulbb r3, r1, r3 strh r3, [r4, #4] @ movhi mov r3, #0 strb r3, [r4, #9] - ldr r3, [r2, #-3336] + ldr r3, [r2, #-1800] cmp r3, #0 - beq .L2417 + beq .L2400 ldrh r3, [r4] - ldr r2, [r2, #-2948] + ldr r2, [r2, #-1412] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #79 movls r3, #1 strlsb r3, [r4, #9] -.L2417: - ldr r3, .L2427+8 +.L2400: + ldr r3, .L2410+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} -.L2428: +.L2411: .align 2 -.L2427: - .word .LANCHOR2-3264 +.L2410: + .word .LANCHOR2-1728 .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -14053,59 +13871,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 r5, .L2458 + ldr r4, .L2441 .pad #44 sub sp, sp, #44 - sub r7, r5, #3248 - sub r6, r5, #404 - ldr r3, [r5, #-3008] - ldrh r2, [r7, #-12] - ldr r0, [r5, #-2940] - str r3, [r5, #-2800] - ldr r3, [r5, #-2976] + 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] mov r2, r2, asl #1 - str r3, [r5, #-2796] + str r3, [r4, #-1260] bl ftl_memset - ldrh r0, [r6] + ldrh r0, [r4, r6] movw r3, #65535 cmp r0, r3 - str r7, [sp, #28] - bne .L2430 -.L2441: + str r5, [sp, #28] + bne .L2413 +.L2424: mvn r0, #0 - b .L2431 -.L2430: + b .L2414 +.L2413: mov r1, #1 - mov r4, r5 bl FtlGetLastWrittenPage - ldrh r9, [r6] - mov r7, r4 + ldrh r9, [r4, r6] + mov r6, r4 uxth r5, r0 add r0, r0, #1 - strh r0, [r6, #2] @ movhi -.L2432: + strh r0, [r8, #2] @ movhi +.L2415: sxth r3, r5 cmp r3, #0 - blt .L2440 + blt .L2423 sxth fp, r9 mov r1, #1 - ldr r0, .L2458+4 + ldr r0, .L2441+8 mov r2, r1 orr r3, r3, fp, asl #10 - str r3, [r4, #-2804] - ldr r3, [r4, #-3008] - str r3, [r4, #-2800] + str r3, [r4, #-1268] + ldr r3, [r4, #-1472] + str r3, [r4, #-1264] bl FlashReadPages - ldr r3, .L2458+8 + ldr r3, .L2441+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - beq .L2433 - ldr r8, [r7, #-2796] - ldr r3, [r8, #12] + beq .L2416 + ldr r7, [r6, #-1260] + ldr r3, [r7, #12] cmp r3, #0 - beq .L2433 - ldr r2, [r7, #-2800] - ldr r10, .L2458+12 + beq .L2416 + ldr r2, [r6, #-1264] + ldr r10, .L2441+16 str r3, [sp, #36] mov r0, r2 str r2, [sp, #32] @@ -14113,66 +13931,66 @@ FtlLoadSysInfo: bl js_hash ldr r3, [sp, #36] cmp r3, r0 - beq .L2433 + beq .L2416 cmp r5, #0 ldr r2, [sp, #32] - bne .L2434 - ldrh r1, [r6, #4] - ldr ip, .L2458+16 + bne .L2417 + ldrh r1, [r8, #4] + ldr ip, .L2441+4 cmp fp, r1 - beq .L2434 - ldr r0, [r8] + beq .L2417 + ldr r0, [r7] ldrh r1, [ip] str ip, [sp, #32] str r0, [sp] - ldr r0, [r8, #4] + ldr r0, [r7, #4] str r0, [sp, #4] - ldr r0, [r8, #8] + ldr r0, [r7, #8] str r3, [sp, #12] str r0, [sp, #8] ldr r3, [r2] - ldr r0, .L2458+20 + ldr r0, .L2441+20 str r3, [sp, #16] - ldr r2, [r7, #-2808] - ldr r3, [r7, #-2804] + ldr r2, [r6, #-1272] + ldr r3, [r6, #-1268] bl printk ldrh r5, [r10, #-8] ldr ip, [sp, #32] ldrh r9, [ip, #4] - b .L2436 -.L2434: + b .L2419 +.L2417: mvn r3, #0 - str r3, [r4, #-2808] -.L2433: - ldr r3, [r4, #-2808] + str r3, [r4, #-1272] +.L2416: + ldr r3, [r4, #-1272] cmn r3, #1 - beq .L2436 - ldr r3, [r7, #-3008] - ldr r2, .L2458+24 + beq .L2419 + ldr r3, [r6, #-1472] + ldr r2, .L2441+24 ldr r3, [r3] cmp r3, r2 - bne .L2436 - ldr r3, [r7, #-2976] + bne .L2419 + ldr r3, [r6, #-1440] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L2436 -.L2440: - ldr r5, .L2458 + bne .L2419 +.L2423: + ldr r5, .L2441 mov r2, #48 - ldr r1, [r4, #-2800] - sub r0, r5, #716 - sub r7, r5, #3248 + ldr r1, [r4, #-1264] + add r0, r5, #820 + sub r6, r5, #1712 bl ftl_memcpy - ldr r1, [r4, #-2800] - ldr r0, [r4, #-2940] + ldr r1, [r4, #-1264] + ldr r0, [r4, #-1404] add r1, r1, #48 ldr r3, [sp, #28] ldrh r2, [r3, #-12] mov r2, r2, asl #1 bl ftl_memcpy - ldr r1, [r4, #-2800] - ldr r0, [r4, #-2928] + ldr r1, [r4, #-1264] + ldr r0, [r4, #-1392] ldr r3, [sp, #28] ldrh r2, [r3, #-12] add r3, r2, #24 @@ -14181,166 +13999,165 @@ FtlLoadSysInfo: add r2, r2, #4 add r1, r1, r3, asl #2 bl ftl_memcpy - sub r2, r5, #3152 + sub r2, r5, #1616 ldrh r3, [r2, #-8] cmp r3, #0 - beq .L2438 - ldrh r1, [r7, #-12] + beq .L2421 + ldrh r1, [r6, #-12] ldrh r2, [r2, #-12] - ldr r0, [r5, #-2904] + ldr r0, [r5, #-1368] mov r3, r1, lsr #3 add r3, r3, r1, asl #1 - ldr r1, [r5, #-2800] + ldr r1, [r5, #-1264] add r3, r3, #52 mov r2, r2, asl #2 ubfx r3, r3, #2, #14 add r1, r1, r3, asl #2 bl ftl_memcpy - b .L2438 -.L2436: + b .L2421 +.L2419: sub r5, r5, #1 uxth r5, r5 - b .L2432 -.L2438: - ldr r2, [r4, #-716] - ldr r3, .L2458+24 - ldr r5, .L2458 + b .L2415 +.L2421: + ldr r2, [r4, #820] + ldr r3, .L2441+24 + ldr r5, .L2441 cmp r2, r3 - bne .L2441 - sub r2, r5, #3232 - sub r7, r5, #716 - ldrb r1, [r5, #-706] @ zero_extendqisi2 + bne .L2424 + sub r2, r5, #1696 + add r6, r5, #820 + ldrb r1, [r5, #830] @ zero_extendqisi2 ldrh r2, [r2, #-14] - ldrh r3, [r7, #8] + ldrh r3, [r6, #8] cmp r1, r2 - strh r3, [r6, #6] @ movhi - bne .L2441 - sub r2, r5, #3200 - sub r1, r5, #3184 - ldr r6, .L2458+28 + strh r3, [r8, #6] @ movhi + bne .L2424 + sub r2, r5, #1664 + sub r1, r5, #1648 + ldr r7, .L2441+28 ldrh r2, [r2] ldrh r1, [r1, #-10] - sub r8, r6, #372 - str r3, [r6, #-376] + str r3, [r7, #1160] mul r2, r3, r2 - str r2, [r5, #-2816] + str r2, [r5, #-1280] mul r2, r1, r2 - ldr r1, .L2458+8 - str r2, [r1, #3908] - sub r2, r5, #2880 + str r2, [r5, #-2740] + sub r2, r5, #1344 ldrh r0, [r2, #6] - ldr r2, [r5, #-3256] + ldr r2, [r5, #-1720] rsb r0, r0, r2 - sub r2, r5, #3264 + sub r2, r5, #1728 rsb r0, r3, r0 ldrh r1, [r2, #-4] bl __aeabi_uidiv - ldrh r3, [r7, #16] - ldrh ip, [r7, #14] - sub r2, r5, #648 - sub lr, r6, #368 + 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, [r7, #18] + ldrh r1, [r6, #18] + add r2, r5, #936 and r3, r3, #63 - strh ip, [r2] @ movhi - sub r2, r5, #600 - strb r3, [r5, #-642] + strb r3, [r5, #894] + ldrb r3, [r5, #831] @ zero_extendqisi2 strh r1, [r2] @ movhi - ldrh r1, [r7, #20] - ldrb r3, [r5, #-705] @ zero_extendqisi2 - strb r3, [r5, #-640] + ldrh r1, [r6, #20] + strb r3, [r5, #896] mvn r3, #0 strh r3, [lr] @ movhi mov r3, #0 - strb r3, [r6, #-362] - strb r3, [r6, #-360] - strh r3, [lr, #2] @ movhi - str r3, [r5, #-3140] - strh r0, [r8] @ movhi mov r0, r1, lsr #6 and r1, r1, #63 - strb r1, [r5, #-594] - ldrb r1, [r5, #-704] @ zero_extendqisi2 - mov r8, lr + strb r1, [r5, #942] + ldrb r1, [r5, #832] @ zero_extendqisi2 strh r0, [r2, #2] @ movhi - sub r0, r5, #552 - strb r1, [r5, #-592] - ldrh r1, [r7, #22] + 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, [r7, #24] - mov r7, r2 + ldrh r1, [r6, #24] + str r3, [r5, #-1604] mov r6, r1, lsr #6 and r1, r1, #63 - strb r1, [r5, #-546] - ldrb r1, [r5, #-703] @ zero_extendqisi2 + strb r1, [r5, #990] + ldrb r1, [r5, #833] @ zero_extendqisi2 strh r6, [r0, #2] @ movhi - mov r6, r0 - strb r1, [r5, #-544] - str r3, [r5, #-3136] - ldr r1, [r5, #-684] - str r3, [r5, #-3120] - str r3, [r5, #-3124] - str r3, [r5, #-3112] - str r3, [r5, #-3104] - str r3, [r5, #-3128] - ldr r3, [r5, #-676] - str r1, [r5, #-3116] - ldr r1, [r5, #-3148] - ldr r2, [r4, #-3144] + 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, #-3148] - ldr r3, [r4, #-680] + strhi r3, [r5, #-1612] + ldr r3, [r4, #856] cmp r3, r2 - ldrhi r2, .L2458 - strhi r3, [r2, #-3144] + ldrhi r2, .L2441 + strhi r3, [r2, #-1608] movw r3, #65535 cmp ip, r3 - beq .L2444 - ldr r0, .L2458+32 + beq .L2427 + ldr r0, .L2441+32 bl make_superblock -.L2444: - ldrh r2, [r7] - movw r3, #65535 - cmp r2, r3 - beq .L2445 - ldr r0, .L2458+36 - bl make_superblock -.L2445: +.L2427: ldrh r2, [r6] movw r3, #65535 cmp r2, r3 - beq .L2446 - ldr r0, .L2458+40 + beq .L2428 + ldr r0, .L2441+36 bl make_superblock -.L2446: +.L2428: + ldrh r2, [r7] + movw r3, #65535 + cmp r2, r3 + beq .L2429 + ldr r0, .L2441+40 + bl make_superblock +.L2429: ldrh r2, [r8] movw r3, #65535 cmp r2, r3 - beq .L2447 - ldr r0, .L2458+44 + beq .L2430 + ldr r0, .L2441+44 bl make_superblock -.L2447: +.L2430: mov r0, #0 -.L2431: +.L2414: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2459: +.L2442: .align 2 -.L2458: +.L2441: .word .LANCHOR2 - .word .LANCHOR2-2808 + .word .LANCHOR2+1132 + .word .LANCHOR2-1272 .word .LANCHOR0 - .word .LANCHOR2-3190 - .word .LANCHOR2-404 + .word .LANCHOR2-1654 .word .LC61 .word 1179929683 .word .LANCHOR4 - .word .LANCHOR2-648 - .word .LANCHOR2-600 - .word .LANCHOR2-552 - .word .LANCHOR4-368 + .word .LANCHOR2+888 + .word .LANCHOR2+936 + .word .LANCHOR2+984 + .word .LANCHOR4+1168 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 @@ -14348,87 +14165,83 @@ FtlLoadSysInfo: .type FtlDumpBlockInfo, %function FtlDumpBlockInfo: .fnstart - @ args = 0, pretend = 0, frame = 80 + @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2475 - ubfx r0, r0, #10, #16 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #108 - sub sp, sp, #108 - ldr r3, [r3] + ubfx r0, r0, #10, #16 + .pad #100 + sub sp, sp, #100 mov r4, r1 - ldr r7, .L2475+4 - str r3, [sp, #100] bl P2V_block_in_plane - sub r5, r7, #3200 - ldr r1, .L2475+8 + ldr r6, .L2457 + ldr r1, .L2457+4 + sub r5, r6, #1664 ldrh r9, [r5] - mov r6, r0 - ldr r0, .L2475+12 + mov r7, r0 + ldr r0, .L2457+8 bl printk - ldr r2, [r7, #-2940] - mov r3, r6, asl #1 - mov r1, r6 - ldr r0, .L2475+16 + ldr r2, [r6, #-1404] + mov r3, r7, asl #1 + mov r1, r7 + ldr r0, .L2457+12 ldrh r2, [r2, r3] bl printk - add r0, sp, #104 - strh r6, [r0, #-52]! @ movhi + add r0, sp, #96 + strh r7, [r0, #-48]! @ movhi bl make_superblock - ldr r3, .L2475+20 - ldrb r2, [r3, #3904] @ zero_extendqisi2 + ldrb r2, [r6, #-2744] @ zero_extendqisi2 clz r3, r4 cmp r2, #0 mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 moveq r4, r3 - beq .L2461 - mov r0, r6 + beq .L2444 + mov r0, r7 bl ftl_get_blk_mode cmp r0, #1 mov r4, r0 - subeq r3, r7, #3184 + subeq r3, r6, #1648 ldreqh r9, [r3, #-14] -.L2461: - ldr r0, .L2475+24 +.L2444: + ldr r0, .L2457+16 mov r1, r4 mov r2, r9 ldrh r3, [r5] bl printk - ldr r8, .L2475+4 - mov r6, #0 -.L2462: - ldr r3, .L2475+28 + ldr r8, .L2457 + mov r7, #0 +.L2445: + ldr r3, .L2457+20 mov r2, #0 - add r0, sp, #66 + add r0, sp, #62 mov r5, r2 movw lr, #65535 mov r10, #36 ldrh r3, [r3] str r3, [sp, #28] - ldr r3, [r8, #-3036] + ldr r3, [r8, #-1500] str r3, [sp, #32] - ldr r3, [r8, #-2996] + ldr r3, [r8, #-1460] str r3, [sp, #36] - ldr r3, .L2475+32 + ldr r3, .L2457+24 ldrh r3, [r3] str r3, [sp, #40] - ldr r3, [r8, #-2968] + ldr r3, [r8, #-1432] str r3, [sp, #44] - ldr r3, .L2475+36 + ldr r3, .L2457+28 ldrh ip, [r3] -.L2463: +.L2446: ldr r1, [sp, #28] uxth r3, r2 cmp r3, r1 - bcs .L2473 + bcs .L2455 ldrh r3, [r0, #2]! cmp r3, lr - beq .L2464 + beq .L2447 ldr r1, [sp, #32] - orr r3, r6, r3, asl #10 + orr r3, r7, r3, asl #10 mla r1, r10, r5, r1 str r3, [r1, #4] ldr r3, [sp, #40] @@ -14450,23 +14263,23 @@ FtlDumpBlockInfo: bic r3, r3, #3 add r3, fp, r3 str r3, [r1, #12] -.L2464: +.L2447: add r2, r2, #1 - b .L2463 -.L2473: - ldr r0, [r8, #-3036] + b .L2446 +.L2455: + ldr r0, [r8, #-1500] mov r1, r5 mov r2, r4 mov r10, #0 bl FlashReadPages -.L2466: +.L2449: uxth r3, r10 cmp r3, r5 - bcs .L2474 + bcs .L2456 mov r3, #36 - ldr lr, [r7, #-3036] + ldr lr, [r6, #-1500] mul r2, r3, r10 - ldrh r1, [sp, #52] + ldrh r1, [sp, #48] add r10, r10, #1 add ip, lr, r2 ldr r3, [ip, #12] @@ -14482,42 +14295,33 @@ FtlDumpBlockInfo: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2475+40 + ldr r0, .L2457+32 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2466 -.L2474: - add r6, r6, #1 - uxth r6, r6 - cmp r6, r9 - bne .L2462 -.L2468: - ldr r3, .L2475 + b .L2449 +.L2456: + add r7, r7, #1 + uxth r7, r7 + cmp r7, r9 + bne .L2445 +.L2451: mov r0, #0 - ldr r2, [sp, #100] - ldr r3, [r3] - cmp r2, r3 - beq .L2469 - bl __stack_chk_fail -.L2469: - add sp, sp, #108 + add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2476: +.L2458: .align 2 -.L2475: - .word __stack_chk_guard +.L2457: .word .LANCHOR2 .word .LANCHOR3+28 .word .LC48 .word .LC62 - .word .LANCHOR0 .word .LC63 - .word .LANCHOR2-3268 - .word .LANCHOR2-3190 - .word .LANCHOR2-3188 + .word .LANCHOR2-1732 + .word .LANCHOR2-1654 + .word .LANCHOR2-1652 .word .LC57 .fnend .size FtlDumpBlockInfo, .-FtlDumpBlockInfo @@ -14526,65 +14330,61 @@ FtlDumpBlockInfo: .type FtlScanAllBlock, %function FtlScanAllBlock: .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 #100 - sub sp, sp, #100 - ldr r5, .L2493 - mov r6, #0 - ldr r0, .L2493+4 - ldr r1, .L2493+8 - ldr r3, [r5] - str r3, [sp, #92] + .pad #92 + sub sp, sp, #92 + ldr r0, .L2474 + mov r7, #0 + ldr r1, .L2474+4 bl printk - str r5, [sp, #36] - ldr r5, .L2493+12 - mov r7, r5 -.L2478: - ldr r3, .L2493+16 - uxth r4, r6 + ldr r5, .L2474+8 + mov r6, r5 +.L2460: + ldr r3, .L2474+12 + uxth r4, r7 ldrh r3, [r3] cmp r3, r4 - bls .L2489 - add r8, sp, #96 + bls .L2470 + add r8, sp, #88 mov r0, r4 movw r9, #65535 mov r10, #36 - strh r4, [r8, #-52]! @ movhi + strh r4, [r8, #-48]! @ movhi bl ftl_get_blk_mode - ldr ip, [r5, #-2940] + ldr ip, [r5, #-1404] mov r2, r4, asl #1 mov r1, r4 ldrh r2, [ip, r2] mov r3, r0 - ldr r0, .L2493+20 + ldr r0, .L2474+16 bl printk mov r0, r8 bl make_superblock - ldr r3, .L2493+24 - ldr lr, [r5, #-2968] + ldr r3, .L2474+20 + ldr lr, [r5, #-1432] ldrh r2, [r3] ldrh ip, [r3, #78] ldrh r8, [r3, #80] - str r2, [sp, #24] - add r0, sp, #58 - ldr r2, [r5, #-3036] str r2, [sp, #28] - ldr r2, [r5, #-2996] + add r0, sp, #54 + ldr r2, [r5, #-1500] str r2, [sp, #32] + ldr r2, [r5, #-1460] + str r2, [sp, #36] mov r2, #0 mov r4, r2 -.L2479: - ldr r1, [sp, #24] +.L2461: + ldr r1, [sp, #28] uxth r3, r2 cmp r3, r1 - bcs .L2490 + bcs .L2471 ldrh r3, [r0, #2]! cmp r3, r9 - beq .L2480 - ldr r1, [sp, #28] + beq .L2462 + ldr r1, [sp, #32] mov r3, r3, asl #10 mla r1, r10, r4, r1 str r3, [r1, #4] @@ -14592,7 +14392,7 @@ FtlScanAllBlock: add fp, r3, #3 cmp r3, #0 movlt r3, fp - ldr fp, [sp, #32] + ldr fp, [sp, #36] bic r3, r3, #3 add r3, fp, r3 str r3, [r1, #8] @@ -14605,23 +14405,23 @@ FtlScanAllBlock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2480: +.L2462: add r2, r2, #1 - b .L2479 -.L2490: - ldr r0, [r5, #-3036] + b .L2461 +.L2471: + ldr r0, [r6, #-1500] mov r1, r4 mov r2, #0 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2482: +.L2464: uxth r3, r8 cmp r3, r4 - bcs .L2491 + bcs .L2472 mul r2, r9, r8 - ldr lr, [r7, #-3036] - ldrh r1, [sp, #44] + ldr lr, [r6, #-1500] + ldrh r1, [sp, #40] add r8, r8, #1 add ip, lr, r2 ldr r3, [ip, #12] @@ -14637,26 +14437,26 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2493+28 + ldr r0, .L2474+24 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2482 -.L2491: - ldr r0, [r7, #-3036] + b .L2464 +.L2472: + ldr r0, [r6, #-1500] mov r1, r4 mov r2, #1 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2484: +.L2466: uxth r3, r8 cmp r3, r4 - bcs .L2492 + bcs .L2473 mul r2, r9, r8 - ldr lr, [r7, #-3036] - ldrh r1, [sp, #44] + ldr lr, [r6, #-1500] + ldrh r1, [sp, #40] add r8, r8, #1 add ip, lr, r2 ldr r3, [ip, #12] @@ -14672,37 +14472,29 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2493+32 + ldr r0, .L2474+28 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2484 -.L2492: - add r6, r6, #1 - b .L2478 -.L2489: - ldr r3, [sp, #36] + b .L2466 +.L2473: + add r7, r7, #1 + b .L2460 +.L2470: mov r0, #0 - ldr r2, [sp, #92] - ldr r3, [r3] - cmp r2, r3 - beq .L2487 - bl __stack_chk_fail -.L2487: - add sp, sp, #100 + add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2494: +.L2475: .align 2 -.L2493: - .word __stack_chk_guard +.L2474: .word .LC48 .word .LANCHOR3+48 .word .LANCHOR2 - .word .LANCHOR2-3258 + .word .LANCHOR2-1722 .word .LC64 - .word .LANCHOR2-3268 + .word .LANCHOR2-1732 .word .LC65 .word .LC66 .fnend @@ -14717,41 +14509,41 @@ 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, .L2507 + ldr r6, .L2488 mov r1, #0 .pad #28 sub sp, sp, #28 - sub r3, r6, #3248 - ldr r0, [r6, #-2888] + sub r3, r6, #1712 + ldr r0, [r6, #-1352] mov r5, r6 ldrh r3, [r3, #-10] mov fp, r6 mul r2, r2, r3 bl ftl_memset mov r3, #0 - sub r1, r6, #660 - sub r2, r6, #652 - sub r0, r6, #3152 + add r1, r6, #876 + add r2, r6, #884 + sub r0, r6, #1616 mov r4, r3 mov r8, r3 mov r9, r3 - str r3, [r6, #-656] - str r3, [r6, #-668] - str r3, [r6, #-664] + str r3, [r6, #880] + str r3, [r6, #868] + str r3, [r6, #872] strh r3, [r1] @ movhi strh r3, [r2] @ movhi strh r3, [r0, #-6] @ movhi str r1, [sp, #8] str r2, [sp, #12] -.L2496: - ldr r3, .L2507+4 +.L2477: + ldr r3, .L2488+4 uxth r7, r4 sxth r10, r7 ldrh r2, [r3] cmp r10, r2 - bge .L2503 + bge .L2484 sub r3, r3, #8 - ldr r2, .L2507+8 + ldr r2, .L2488+8 mov ip, r7 ldrh r3, [r3] str r3, [sp] @@ -14759,15 +14551,15 @@ SupperBlkListInit: mov r2, #0 mov r6, r2 str r3, [sp, #4] -.L2504: +.L2485: ldr r3, [sp] sxth r1, r2 cmp r1, r3 - bge .L2506 + bge .L2487 add r1, r5, r1 str r2, [sp, #20] str ip, [sp, #16] - ldrb r0, [r1, #-3240] @ zero_extendqisi2 + ldrb r0, [r1, #-1704] @ zero_extendqisi2 mov r1, ip bl V2P_block bl FtlBbmIsBadBlock @@ -14778,54 +14570,54 @@ SupperBlkListInit: add r2, r2, #1 addeq r6, r3, r6 uxtheq r6, r6 - b .L2504 -.L2506: + b .L2485 +.L2487: cmp r6, #0 - beq .L2499 + beq .L2480 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L2500 -.L2499: + b .L2481 +.L2480: sxth r7, r7 - ldr r2, [r5, #-2940] + ldr r2, [r5, #-1404] mvn r1, #0 mov r7, r7, asl #1 strh r1, [r2, r7] @ movhi -.L2500: +.L2481: mov r1, r10, asl #1 - ldr r2, [r5, #-2888] + ldr r2, [r5, #-1352] add r0, r1, r10 add r2, r2, r0, asl #1 strh r6, [r2, #4] @ movhi - ldr r2, .L2507+12 + ldr r2, .L2488+12 ldrh r0, [r2] cmp r10, r0 - beq .L2501 + beq .L2482 ldrh r0, [r2, #48] cmp r10, r0 - beq .L2501 + beq .L2482 ldrh r2, [r2, #96] cmp r10, r2 - beq .L2501 - ldr r3, [fp, #-2940] + beq .L2482 + ldr r3, [fp, #-1404] uxth r0, r4 ldrh r3, [r3, r1] cmp r3, #0 - bne .L2502 + bne .L2483 add r8, r8, #1 uxth r8, r8 bl INSERT_FREE_LIST - b .L2501 -.L2502: + b .L2482 +.L2483: add r9, r9, #1 uxth r9, r9 bl INSERT_DATA_LIST -.L2501: +.L2482: add r4, r4, #1 - b .L2496 -.L2503: + b .L2477 +.L2484: ldr r3, [sp, #8] mov r0, #0 strh r9, [r3] @ movhi @@ -14834,13 +14626,13 @@ SupperBlkListInit: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2508: +.L2489: .align 2 -.L2507: +.L2488: .word .LANCHOR2 - .word .LANCHOR2-3260 - .word .LANCHOR2-3200 - .word .LANCHOR2-648 + .word .LANCHOR2-1724 + .word .LANCHOR2-1664 + .word .LANCHOR2+888 .fnend .size SupperBlkListInit, .-SupperBlkListInit .align 2 @@ -14851,52 +14643,52 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2511 - ldr r3, .L2511+4 - ldr r1, [r2, #-320] + ldr r2, .L2492 + ldr r3, .L2492+4 + ldr r1, [r2, #1216] cmp r1, r3 bxne lr - ldr r3, .L2511+8 + ldr r3, .L2492+8 mov r0, #0 - sub r2, r2, #320 + 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, .L2511+12 - ldr r1, [r3, #-3140] + ldr r3, .L2492+12 + ldr r1, [r3, #-1604] str r1, [r2, #8] - ldr r1, [r3, #-3136] + ldr r1, [r3, #-1600] str r1, [r2, #12] - ldr r1, [r3, #-3120] + ldr r1, [r3, #-1584] str r1, [r2, #16] - ldr r1, [r3, #-3124] + ldr r1, [r3, #-1588] str r1, [r2, #20] - ldr r1, [r3, #-3112] + ldr r1, [r3, #-1576] str r1, [r2, #28] - ldr r1, [r3, #-3108] + ldr r1, [r3, #-1572] str r1, [r2, #32] - ldr r1, [r3, #-3132] + ldr r1, [r3, #-1596] str r1, [r2, #36] - ldr r1, [r3, #-3128] + ldr r1, [r3, #-1592] str r1, [r2, #40] - ldr r1, [r3, #-3104] + ldr r1, [r3, #-1568] str r1, [r2, #44] - ldr r1, [r3, #-3100] + ldr r1, [r3, #-1564] str r1, [r2, #48] - ldr r1, [r3, #-3152] - ldr r3, [r3, #-3156] + ldr r1, [r3, #-1616] + ldr r3, [r3, #-1620] str r1, [r2, #60] mov r1, #1 str r3, [r2, #64] b FtlVendorPartWrite -.L2512: +.L2493: .align 2 -.L2511: +.L2492: .word .LANCHOR4 .word 1179929683 - .word 1342177367 + .word 1342177376 .word .LANCHOR2 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -14909,39 +14701,40 @@ FtlEctTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2521 - ldr r2, [r3, #-3336] + ldr r3, .L2502 + ldr r2, [r3, #-1800] cmp r2, #0 moveq r2, #32 - beq .L2514 - ldr r2, [r3, #-3100] + beq .L2495 + ldr r2, [r3, #-1564] cmp r2, #39 movhi r2, #32 movls r2, #4 -.L2514: - ldr ip, .L2521+4 - ldrh r1, [ip, #200] +.L2495: + ldr lr, .L2502+4 + movw ip, #1736 + ldrh r1, [lr, ip] cmp r1, #31 addls r1, r1, #1 - strlsh r1, [ip, #200] @ movhi + strlsh r1, [lr, ip] @ movhi movls r2, #1 cmp r0, #0 - bne .L2516 - ldr r1, [r3, #-2952] + bne .L2497 + ldr r1, [r3, #-1416] ldr r0, [r1, #20] ldr r1, [r1, #16] add r2, r2, r0 cmp r1, r2 - bcc .L2517 -.L2516: - ldr r2, [r3, #-2952] + bcc .L2498 +.L2497: + ldr r2, [r3, #-1416] mov r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L2521+8 + ldr r1, .L2502+8 str r1, [r2] - ldr r2, [r3, #-2952] - ldr r3, .L2521+12 + ldr r2, [r3, #-1416] + ldr r3, .L2502+12 ldrh r1, [r3] mov r3, r1, asl #9 str r3, [r2, #12] @@ -14952,16 +14745,16 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2517: +.L2498: mov r0, #0 ldmfd sp!, {r3, pc} -.L2522: +.L2503: .align 2 -.L2521: +.L2502: .word .LANCHOR2 .word .LANCHOR4 .word 1112818501 - .word .LANCHOR2-2960 + .word .LANCHOR2-1424 .fnend .size FtlEctTblFlush, .-FtlEctTblFlush .align 2 @@ -14974,84 +14767,92 @@ Ftl_load_ext_data: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r5, .L2528 + ldr r5, .L2510 mov r1, #1 - ldr r4, .L2528+4 - sub r2, r5, #320 + ldr r4, .L2510+4 + add r2, r5, #1216 bl FtlVendorPartRead - ldr r3, [r5, #-320] + ldr r3, [r5, #1216] cmp r3, r4 - beq .L2524 - sub r0, r5, #320 + beq .L2505 + add r0, r5, #1216 mov r1, #0 mov r2, #512 bl ftl_memset - str r4, [r5, #-320] -.L2524: - ldr r2, [r5, #-320] - ldr r3, .L2528 + str r4, [r5, #1216] +.L2505: + ldr r2, [r5, #1216] + ldr r3, .L2510 cmp r2, r4 - ldr r4, .L2528+8 - bne .L2525 - ldr r2, [r3, #-232] - str r2, [r3, #192] - ldr r2, [r3, #-228] - str r2, [r3, #196] - ldr r2, [r3, #-312] - str r2, [r4, #-3140] - ldr r2, [r3, #-308] - str r2, [r4, #-3136] - ldr r2, [r3, #-304] - str r2, [r4, #-3120] - ldr r2, [r3, #-300] - str r2, [r4, #-3124] - ldr r2, [r3, #-292] - str r2, [r4, #-3112] - ldr r2, [r3, #-288] - str r2, [r4, #-3108] - ldr r2, [r3, #-284] - str r2, [r4, #-3132] - ldr r2, [r3, #-280] - str r2, [r4, #-3128] - ldr r2, [r3, #-276] - str r2, [r4, #-3104] - ldr r2, [r3, #-272] - ldr r3, [r3, #-260] - str r2, [r4, #-3100] - str r3, [r4, #-3152] -.L2525: - mov r3, #0 - ldr r2, [r5, #-252] - str r3, [r4, #-3156] - ldr r3, .L2528+12 - cmp r2, r3 - bne .L2526 - ldr r3, .L2528+8 + ldr r4, .L2510+8 + bne .L2506 + ldr r2, [r3, #1304] + str r2, [r3, #1728] + ldr r2, [r3, #1308] + str r2, [r3, #1732] + 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, #1244] + str r2, [r4, #-1576] + ldr r2, [r3, #1248] + str r2, [r4, #-1572] + ldr r2, [r3, #1252] + str r2, [r4, #-1596] + ldr r2, [r3, #1256] + str r2, [r4, #-1592] + ldr r2, [r3, #1260] + 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] + mov r2, #0 + ldr r1, .L2510+12 + ldr r3, .L2510+8 + cmp r0, r1 + str r2, [r4, #-1620] + bne .L2507 + ldrb r1, [r3, #-2744] @ zero_extendqisi2 + cmp r1, r2 + beq .L2508 + ldr r3, .L2510 + str r2, [r3, #1284] + bl Ftl_save_ext_data + b .L2507 +.L2508: + ldr r0, .L2510+16 mov r2, #1 - ldr r0, .L2528+16 - ldr r1, .L2528+20 - str r2, [r3, #-3336] + ldr r1, .L2510+20 + str r2, [r3, #-1800] bl printk -.L2526: - ldr r3, .L2528+24 - ldr r2, [r4, #-3112] - ldr r0, [r4, #-3116] +.L2507: + ldr r3, .L2510+24 + ldr r2, [r4, #-1576] + ldr r0, [r4, #-1580] ldrh r1, [r3, #-8] mla r0, r0, r1, r2 ldrh r1, [r3, #-60] bl __aeabi_uidiv - str r0, [r5, #204] + str r0, [r5, #1740] ldmfd sp!, {r3, r4, r5, pc} -.L2529: +.L2511: .align 2 -.L2528: +.L2510: .word .LANCHOR4 .word 1179929683 .word .LANCHOR2 .word 305432421 .word .LC46 .word .LC67 - .word .LANCHOR2-3200 + .word .LANCHOR2-1664 .fnend .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 2 @@ -15065,39 +14866,39 @@ ftl_scan_all_ppa: .save {r4, r5, r6, r7, r8, r9, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L2537 + ldr r5, .L2519 mov r7, #0 - ldr r0, .L2537+4 + ldr r0, .L2519+4 sub r9, r5, #2 - add r4, r5, #3200 + add r4, r5, #1664 ldrh r1, [r5, #-2] ldrh r2, [r5] bl printk -.L2531: +.L2513: ldrh r3, [r9] cmp r7, r3 - bcs .L2533 + bcs .L2515 mov r8, r7, asl #10 mov r6, #0 -.L2534: +.L2516: ldrh r3, [r5] cmp r6, r3 - bcs .L2536 + bcs .L2518 add r3, r6, r8 - str r3, [r4, #-2804] - ldr r3, [r4, #-3008] + str r3, [r4, #-1268] + ldr r3, [r4, #-1472] mov r2, #0 mov r1, #1 - ldr r0, .L2537+8 - str r2, [r4, #-2808] + ldr r0, .L2519+8 + str r2, [r4, #-1272] add r6, r6, #1 - str r3, [r4, #-2800] - ldr r3, [r4, #-2976] - str r3, [r4, #-2796] + str r3, [r4, #-1264] + ldr r3, [r4, #-1440] + str r3, [r4, #-1260] bl FlashReadPages - ldr r3, [r4, #-2796] - ldr r2, [r4, #-2800] - ldr r0, .L2537+12 + ldr r3, [r4, #-1260] + ldr r2, [r4, #-1264] + ldr r0, .L2519+12 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -15108,27 +14909,27 @@ ftl_scan_all_ppa: str r1, [sp, #12] ldr r2, [r2, #4] str r2, [sp, #16] - ldr r1, [r4, #-2804] - ldr r2, [r4, #-2808] + ldr r1, [r4, #-1268] + ldr r2, [r4, #-1272] ldr r3, [r3] bl printk - b .L2534 -.L2536: + b .L2516 +.L2518: add r7, r7, #1 - b .L2531 -.L2533: - ldr r0, .L2537+16 - ldr r1, .L2537+20 + b .L2513 +.L2515: + ldr r0, .L2519+16 + ldr r1, .L2519+20 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, lr} b printk -.L2538: +.L2520: .align 2 -.L2537: - .word .LANCHOR2-3200 +.L2519: + .word .LANCHOR2-1664 .word .LC68 - .word .LANCHOR2-2808 + .word .LANCHOR2-1272 .word .LC69 .word .LC70 .word .LANCHOR3+64 @@ -15144,16 +14945,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, .L2549 + ldr r3, .L2531 mov r7, r0 mov r4, r5 add r6, r3, #24 ldrh r8, [r3, #-4] ldrh r9, [r3, #64] -.L2540: +.L2522: uxth r3, r5 cmp r3, r8 - bcs .L2548 + bcs .L2530 ldrb r0, [r6, r5] @ zero_extendqisi2 mov r1, r7 bl V2P_block @@ -15162,26 +14963,26 @@ update_multiplier_value: cmp r0, #0 addeq r4, r4, r9 uxtheq r4, r4 - b .L2540 -.L2548: + b .L2522 +.L2530: cmp r4, #0 - beq .L2543 + beq .L2525 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L2543: - ldr r3, .L2549+4 +.L2525: + ldr r3, .L2531+4 mov r2, #6 mov r0, #0 - ldr r3, [r3, #-2888] + ldr r3, [r3, #-1352] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2550: +.L2532: .align 2 -.L2549: - .word .LANCHOR2-3264 +.L2531: + .word .LANCHOR2-1728 .word .LANCHOR2 .fnend .size update_multiplier_value, .-update_multiplier_value @@ -15193,23 +14994,23 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2554 - ldr r0, [r2, #-656] + ldr r2, .L2536 + ldr r0, [r2, #880] cmp r0, #0 bxeq lr - ldr r3, [r2, #-2888] + ldr r3, [r2, #-1352] rsb r0, r3, r0 - ldr r3, .L2554+4 + ldr r3, .L2536+4 mov r0, r0, asr #1 mul r0, r3, r0 - ldr r3, [r2, #-2948] + ldr r3, [r2, #-1412] uxth r0, r0 mov r0, r0, asl #1 ldrh r0, [r3, r0] bx lr -.L2555: +.L2537: .align 2 -.L2554: +.L2536: .word .LANCHOR2 .word -1431655765 .fnend @@ -15221,50 +15022,50 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L2566 - ldr r3, [r1, #-656] + ldr r1, .L2548 + ldr r3, [r1, #880] cmp r3, #0 - beq .L2562 - sub r2, r1, #652 + beq .L2544 + add r2, r1, #884 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov r4, #6 ldrh r2, [r2] movw r5, #65535 - ldr ip, [r1, #-2888] + ldr ip, [r1, #-1352] 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, .L2566+4 + ldr r2, .L2548+4 mul r3, r2, r3 mov r2, #0 uxth r3, r3 -.L2559: +.L2541: uxth lr, r2 cmp lr, r0 - bcs .L2561 + bcs .L2543 mul lr, r4, r3 add r2, r2, #1 ldrh lr, [ip, lr] cmp lr, r5 - bne .L2563 -.L2561: - ldr r2, [r1, #-2948] + bne .L2545 +.L2543: + ldr r2, [r1, #-1412] mov r3, r3, asl #1 ldrh r0, [r2, r3] ldmfd sp!, {r4, r5, pc} -.L2563: +.L2545: mov r3, lr - b .L2559 -.L2562: + b .L2541 +.L2544: mov r0, r3 bx lr -.L2567: +.L2549: .align 2 -.L2566: +.L2548: .word .LANCHOR2 .word -1431655765 .fnend @@ -15274,494 +15075,480 @@ GetFreeBlockMaxEraseCount: .type FtlPrintInfo2buf, %function FtlPrintInfo2buf: .fnstart - @ args = 0, pretend = 0, frame = 32 + @ 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, r0 - ldr r7, .L2580 - add r6, r8, #12 - ldr r9, .L2580+4 - .pad #52 - sub sp, sp, #52 - ldr r1, .L2580+8 - ldr r3, [r7] - str r3, [sp, #44] + 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 + add r5, r7, #12 + ldr r1, .L2561+4 + .pad #32 + sub sp, sp, #32 bl strcpy - mov r0, r6 - ldr r1, .L2580+12 - ldr r2, [r9, #3876] - bl sprintf - ldr r1, .L2580+16 - add r5, r6, r0 - ldr r6, .L2580+20 mov r0, r5 - ldr r2, [r6, #-3184] + ldr r1, .L2561+8 + ldr r2, [r6, #-2772] bl sprintf - ldr r3, .L2580+24 - ldr r3, [r3, #3284] + ldr r1, .L2561+12 + ldr r2, [r6, #-1648] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldr r3, .L2561+16 + ldr r3, [r3, #3348] cmp r3, #1 add r4, r5, r0 - bne .L2574 - add r0, sp, #28 - add r1, sp, #32 - add r2, sp, #36 - add r3, sp, #40 + bne .L2556 + add r0, sp, #16 + add r1, sp, #20 + add r2, sp, #24 + add r3, sp, #28 bl NandcGetTimeCfg mov r0, r4 - ldr r1, .L2580+28 - sub fp, r6, #2880 - sub r10, r6, #652 - ldr r3, [sp, #36] - ldr r2, [sp, #28] + ldr r1, .L2561+20 + sub r8, r6, #1344 + add r9, r6, #884 + add r10, r6, #820 + ldr r3, [sp, #24] + ldr r2, [sp, #16] str r3, [sp] - ldr r3, [sp, #40] + ldr r3, [sp, #28] str r3, [sp, #4] - ldr r3, [sp, #32] + ldr r3, [sp, #20] bl sprintf - ldr r1, .L2580+32 + ldr r1, .L2561+24 add r4, r4, r0 add r5, r4, #10 mov r0, r4 - ldr r4, .L2580+36 + ldr r4, .L2561+28 bl strcpy mov r0, r5 - ldr r1, .L2580+40 - ldr r2, [r6, #-2816] + ldr r1, .L2561+32 + ldr r2, [r6, #-1280] bl sprintf - ldr r1, .L2580+44 - ldr r2, [r6, #-408] + ldr r1, .L2561+36 + ldr r2, [r6, #1128] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+48 - ldr r2, [r6, #-3120] + ldr r1, .L2561+40 + ldr r2, [r6, #-1584] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+52 - ldr r2, [r6, #-3132] + ldr r1, .L2561+44 + ldr r2, [r6, #-1596] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+56 - ldr r2, [r6, #-3136] + ldr r1, .L2561+48 + ldr r2, [r6, #-1600] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+60 - ldr r2, [r6, #-3128] + ldr r1, .L2561+52 + ldr r2, [r6, #-1592] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+64 - ldr r2, [r6, #-3124] + ldr r1, .L2561+56 + ldr r2, [r6, #-1588] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+68 - ldr r2, [r6, #-3140] + ldr r1, .L2561+60 + ldr r2, [r6, #-1604] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r4, #192] - ldr r1, .L2580+72 + ldr r2, [r4, #1728] + ldr r1, .L2561+64 mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r4, #196] - ldr r1, .L2580+76 + ldr r2, [r4, #1732] + ldr r1, .L2561+68 mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+80 - ldr r2, [r6, #-3148] + ldr r1, .L2561+72 + ldr r2, [r6, #-1612] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+84 - ldr r2, [r6, #-3144] + ldr r1, .L2561+76 + ldr r2, [r6, #-1608] add r5, r5, r0 mov r0, r5 bl sprintf add r5, r5, r0 bl FtlBbtCalcTotleCnt - ldrh r2, [fp, #6] - ldr r1, .L2580+88 + ldrh r2, [r8, #6] + ldr r1, .L2561+80 mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+92 - ldrh r2, [r10] + ldr r1, .L2561+84 + ldrh r2, [r9] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+96 - ldr r2, [r6, #-3116] + ldr r1, .L2561+88 + ldr r2, [r6, #-1580] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+100 - ldr r2, [r6, #-3112] + ldr r1, .L2561+92 + ldr r2, [r6, #-1576] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r4, #204] - ldr r1, .L2580+104 + ldr r2, [r4, #1740] + ldr r1, .L2561+96 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+108 - ldr r2, [r6, #-3108] + ldr r1, .L2561+100 + ldr r2, [r6, #-1572] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+112 - ldr r2, [r6, #-3104] + ldr r1, .L2561+104 + ldr r2, [r6, #-1568] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+116 - ldr r2, [r6, #-3100] + ldr r1, .L2561+108 + ldr r2, [r6, #-1564] add r5, r5, r0 mov r0, r5 bl sprintf - sub r3, r6, #716 - ldr r1, .L2580+120 - ldrh r2, [r3, #30] - add r5, r5, r0 - str r3, [sp, #20] - mov r0, r5 - bl sprintf - ldr r1, .L2580+124 - ldr r3, [sp, #20] - add r5, r5, r0 - mov r0, r5 - ldrh r2, [r3, #28] - bl sprintf - ldr r2, [r9, #3908] - ldr r1, .L2580+128 - sub r9, r6, #648 + ldrh r2, [r10, #30] + ldr r1, .L2561+112 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+132 - ldr r2, [r6, #-3168] + ldrh r2, [r10, #28] + ldr r1, .L2561+116 + sub r10, r6, #1520 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+136 - ldr r2, [r6, #-3272] + ldr r1, .L2561+120 + ldr r2, [r6, #-2740] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [fp, #114] - ldr r1, .L2580+140 + ldr r1, .L2561+124 + ldr r2, [r6, #-1632] add r5, r5, r0 mov r0, r5 bl sprintf - sub r3, r6, #3248 - ldr r1, .L2580+144 + ldr r1, .L2561+128 + ldr r2, [r6, #-1736] + add r5, r5, r0 + mov r0, r5 + bl sprintf + ldrh r2, [r8, #114] + ldr r1, .L2561+132 + add r5, r5, r0 + mov r0, r5 + bl sprintf + sub r3, r6, #1712 + ldr r1, .L2561+136 ldrh r2, [r3, #-12] add r5, r5, r0 mov r0, r5 bl sprintf - sub r3, r4, #372 - ldr r1, .L2580+148 - ldrh r2, [r3] + movw r3, #1164 + ldrh r2, [r4, r3] + ldr r1, .L2561+140 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+152 - ldr r2, [r6, #-3256] + ldr r1, .L2561+144 + ldr r2, [r6, #-1720] add r5, r5, r0 mov r0, r5 bl sprintf - sub r3, r6, #404 - ldr r1, .L2580+156 - ldrh r2, [r3] + movw r3, #1132 + ldrh r2, [r6, r3] + ldr r1, .L2561+148 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [fp] - ldr r1, .L2580+160 - sub fp, r6, #3056 + ldrh r2, [r8] + ldr r1, .L2561+152 + add r8, r6, #888 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #2] - ldr r1, .L2580+164 + ldrh r2, [r8, #2] + ldr r1, .L2561+156 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+168 - ldrb r2, [r6, #-642] @ zero_extendqisi2 + ldr r1, .L2561+160 + ldrb r2, [r6, #894] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9] - ldr r1, .L2580+172 + ldrh r2, [r8] + ldr r1, .L2561+164 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+176 - ldrb r2, [r6, #-640] @ zero_extendqisi2 + ldr r1, .L2561+168 + ldrb r2, [r6, #896] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #4] - ldr r1, .L2580+180 + ldrh r2, [r8, #4] + ldr r1, .L2561+172 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r3, [r9] - ldr r2, [r6, #-2940] - sub r9, r6, #600 - ldr r1, .L2580+184 + ldrh r3, [r8] + ldr r2, [r6, #-1404] + add r8, r6, #936 + ldr r1, .L2561+176 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #2] - ldr r1, .L2580+188 + ldrh r2, [r8, #2] + ldr r1, .L2561+180 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+192 - ldrb r2, [r6, #-594] @ zero_extendqisi2 + ldr r1, .L2561+184 + ldrb r2, [r6, #942] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9] - ldr r1, .L2580+196 + ldrh r2, [r8] + ldr r1, .L2561+188 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+200 - ldrb r2, [r6, #-592] @ zero_extendqisi2 + ldr r1, .L2561+192 + ldrb r2, [r6, #944] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #4] - ldr r1, .L2580+204 + ldrh r2, [r8, #4] + ldr r1, .L2561+196 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r3, [r9] - ldr r2, [r6, #-2940] - sub r9, r6, #552 - ldr r1, .L2580+208 + ldrh r3, [r8] + ldr r2, [r6, #-1404] + add r8, r6, #984 + ldr r1, .L2561+200 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #2] - ldr r1, .L2580+212 + ldrh r2, [r8, #2] + ldr r1, .L2561+204 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+216 - ldrb r2, [r6, #-546] @ zero_extendqisi2 + ldr r1, .L2561+208 + ldrb r2, [r6, #990] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9] - ldr r1, .L2580+220 + ldrh r2, [r8] + ldr r1, .L2561+212 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+224 - ldrb r2, [r6, #-544] @ zero_extendqisi2 + ldr r1, .L2561+216 + ldrb r2, [r6, #992] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldrh r2, [r9, #4] - ldr r1, .L2580+228 - sub r9, r4, #368 + ldrh r2, [r8, #4] + ldr r1, .L2561+220 + add r8, r4, #1168 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+232 - ldrh r2, [r9, #2] + ldr r1, .L2561+224 + ldrh r2, [r8, #2] add r5, r5, r0 mov r0, r5 bl sprintf - ldrb r2, [r4, #-362] @ zero_extendqisi2 - ldr r1, .L2580+236 + ldrb r2, [r4, #1174] @ zero_extendqisi2 + ldr r1, .L2561+228 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+240 - ldrh r2, [r9] + ldr r1, .L2561+232 + ldrh r2, [r8] add r5, r5, r0 mov r0, r5 bl sprintf - ldrb r2, [r4, #-360] @ zero_extendqisi2 - ldr r1, .L2580+244 + ldrb r2, [r4, #1176] @ zero_extendqisi2 + ldr r1, .L2561+236 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+248 - ldrh r2, [r9, #4] + ldr r1, .L2561+240 + ldrh r2, [r8, #4] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, [r4, #-236] - ldr r3, [r6, #-3336] - ldr r2, [r6, #-3152] + ldr r1, [r4, #1300] + ldr r2, [r6, #-1616] + ldr r3, [r6, #-1800] orr r2, r3, r2, asl #8 str r1, [sp] add r5, r5, r0 - ldr r1, [r4, #-244] + ldr r1, [r4, #1292] mov r0, r5 str r1, [sp, #4] - ldr r1, .L2580+252 - ldr r3, [r4, #-240] + ldr r1, .L2561+244 + ldr r3, [r4, #1296] bl sprintf - ldr r2, [r4, #-248] - ldr r1, .L2580+256 + ldr r2, [r4, #1288] + ldr r1, .L2561+248 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r2, [r4, #-224] - ldr r1, .L2580+260 + ldr r2, [r4, #1312] + ldr r1, .L2561+252 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+264 - ldrh r2, [fp, #-8] + ldr r1, .L2561+256 + ldrh r2, [r10, #-8] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2580+268 - ldrh r2, [fp, #-6] + ldr r1, .L2561+260 + ldrh r2, [r10, #-6] add r4, r5, r0 mov r0, r4 bl sprintf - ldr r1, .L2580+272 - ldr r2, [r6, #-3080] + ldr r1, .L2561+264 + ldr r2, [r6, #-1544] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L2580+276 - ldrh r2, [fp, #-4] + ldr r1, .L2561+268 + ldrh r2, [r10, #-4] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L2580+280 + ldr r1, .L2561+272 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 - ldrh r0, [r10] + ldrh r0, [r9] bl GetFreeBlockMaxEraseCount - ldr r1, .L2580+284 + ldr r1, .L2561+276 mov r2, r0 mov r0, r4 bl sprintf - ldrh r3, [r9] + ldrh r3, [r8] movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L2571 - ldr r2, [r6, #-2940] + beq .L2553 + ldr r2, [r6, #-1404] mov r3, r3, asl #1 mov r0, r4 - ldr r1, .L2580+288 + ldr r1, .L2561+280 ldrh r2, [r2, r3] bl sprintf add r4, r4, r0 -.L2571: +.L2553: mov r0, #0 mov r5, #0 bl List_get_gc_head_node - movw fp, #65535 - mov r10, #6 + movw r10, #65535 + mov r9, #6 uxth r3, r0 -.L2573: - cmp r3, fp - beq .L2572 - ldr r2, [r6, #-2940] +.L2555: + cmp r3, r10 + beq .L2554 + ldr r2, [r6, #-1404] mov r1, r3, asl #1 - mul r9, r10, r3 + mul r8, r9, r3 mov r0, r4 ldrh r2, [r2, r1] str r2, [sp] - ldr r2, [r6, #-2888] - add r2, r2, r9 + ldr r2, [r6, #-1352] + add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp, #4] - ldr r2, [r6, #-2948] + ldr r2, [r6, #-1412] ldrh r2, [r2, r1] - ldr r1, .L2580+292 + ldr r1, .L2561+284 str r2, [sp, #8] mov r2, r5 bl sprintf add r5, r5, #1 - ldr r3, [r6, #-2888] + ldr r3, [r6, #-1352] cmp r5, #16 - ldrh r3, [r3, r9] + ldrh r3, [r3, r8] add r4, r4, r0 - bne .L2573 -.L2572: - ldr r2, [r6, #-2888] + bne .L2555 +.L2554: + ldr r2, [r6, #-1352] mov r5, #0 - ldr r3, [r6, #-656] - movw fp, #65535 - mov r10, #6 + ldr r3, [r6, #880] + movw r10, #65535 + mov r9, #6 rsb r3, r2, r3 - ldr r2, .L2580+296 + ldr r2, .L2561+288 mov r3, r3, asr #1 mul r3, r2, r3 uxth r3, r3 -.L2575: - cmp r3, fp - beq .L2574 - mul r9, r10, r3 - ldr r2, [r6, #-2888] +.L2557: + cmp r3, r10 + beq .L2556 + mul r8, r9, r3 + ldr r2, [r6, #-1352] + ldr r1, [r6, #-1412] mov r0, r4 - add r2, r2, r9 + add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp] mov r2, r3, asl #1 - ldr r1, [r6, #-2948] ldrh r2, [r1, r2] - ldr r1, .L2580+300 + ldr r1, .L2561+292 str r2, [sp, #4] mov r2, r5 bl sprintf add r5, r5, #1 - ldr r3, [r6, #-2888] + ldr r3, [r6, #-1352] cmp r5, #4 - ldrh r3, [r3, r9] + ldrh r3, [r3, r8] add r4, r4, r0 - bne .L2575 -.L2574: - ldr r2, [sp, #44] - rsb r0, r8, r4 - ldr r3, [r7] - cmp r2, r3 - beq .L2576 - bl __stack_chk_fail -.L2576: - add sp, sp, #52 + bne .L2557 +.L2556: + rsb r0, r7, r4 + add sp, sp, #32 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2581: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L2562: .align 2 -.L2580: - .word __stack_chk_guard - .word .LANCHOR0 +.L2561: + .word .LANCHOR2 .word .LC71 .word .LC72 .word .LC73 - .word .LANCHOR2 .word .LANCHOR1 .word .LC74 .word .LC75 @@ -15844,8 +15631,8 @@ ftl_proc_ftl_read: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L2584 - ldr r2, .L2584+4 + ldr r1, .L2565 + ldr r2, .L2565+4 bl sprintf add r4, r5, r0 mov r0, r4 @@ -15853,9 +15640,9 @@ ftl_proc_ftl_read: add r0, r4, r0 rsb r0, r5, r0 ldmfd sp!, {r3, r4, r5, pc} -.L2585: +.L2566: .align 2 -.L2584: +.L2565: .word .LC46 .word .LC141 .fnend @@ -15871,84 +15658,84 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L2616 - ldr r4, .L2616+4 - ldr r6, [r5, #204] - ldr r3, [r4, #-3100] + ldr r5, .L2597 + ldr r4, .L2597+4 + ldr r6, [r5, #1740] + ldr r3, [r4, #-1564] cmp r6, r3 - bcs .L2587 - sub r3, r4, #3248 + bcs .L2568 + sub r3, r4, #1712 mov r6, #0 - str r6, [r4, #-3116] + str r6, [r4, #-1580] ldrh r1, [r3, #-12] - ldr r3, [r4, #-2948] + ldr r3, [r4, #-1412] sub r3, r3, #2 -.L2588: +.L2569: cmp r6, r1 - bcs .L2615 + bcs .L2596 ldrh r2, [r3, #2]! add r6, r6, #1 - ldr r0, [r4, #-3116] + ldr r0, [r4, #-1580] add r2, r2, r0 - str r2, [r4, #-3116] - b .L2588 -.L2615: - ldr r6, [r4, #-3116] + str r2, [r4, #-1580] + b .L2569 +.L2596: + ldr r6, [r4, #-1580] mov r0, r6 bl __aeabi_uidiv - ldr r3, .L2616+8 + ldr r3, .L2597+8 ldrh r1, [r3, #-8] - str r0, [r5, #204] - ldr r0, [r4, #-3112] + str r0, [r5, #1740] + ldr r0, [r4, #-1576] rsb r0, r0, r6 bl __aeabi_uidiv - str r0, [r4, #-3116] - b .L2590 -.L2587: - ldr r3, [r4, #-3104] + str r0, [r4, #-1580] + b .L2571 +.L2568: + ldr r3, [r4, #-1568] cmp r6, r3 - bls .L2590 - ldr ip, .L2616+12 + bls .L2571 + ldr ip, .L2597+12 add r3, r3, #1 mov lr, r4 - str r3, [r4, #-3104] + str r3, [r4, #-1568] mov r3, #0 -.L2592: +.L2573: ldrh r2, [ip] cmp r3, r2 - bcs .L2590 - ldr r0, [lr, #-2948] + bcs .L2571 + ldr r0, [lr, #-1412] mov r1, r3, asl #1 add r3, r3, #1 ldrh r2, [r0, r1] add r2, r2, #1 strh r2, [r0, r1] @ movhi - b .L2592 -.L2590: - ldr r6, [r4, #-3100] - ldr r8, [r5, #204] + b .L2573 +.L2571: + ldr r6, [r4, #-1564] + ldr r8, [r5, #1740] add r3, r6, #256 - ldr r2, .L2616+4 + ldr r2, .L2597+4 cmp r3, r8 - bls .L2595 - ldr r1, [r2, #-3104] + bls .L2576 + ldr r1, [r2, #-1568] add r3, r6, #768 cmp r3, r1 - bls .L2595 + bls .L2576 cmp r6, #40 - ldr r2, [r2, #-3336] + ldr r2, [r2, #-1800] movls r3, #0 movhi r3, #1 cmp r2, #0 orreq r3, r3, #1 cmp r3, #0 - beq .L2595 -.L2597: + beq .L2576 +.L2578: movw r0, #65535 - b .L2596 -.L2595: - ldr r10, .L2616+4 - sub r3, r10, #652 + b .L2577 +.L2576: + ldr r10, .L2597+4 + add r3, r10, #884 ldrh r0, [r3] add r0, r0, r0, asl #1 ubfx r0, r0, #2, #16 @@ -15961,32 +15748,32 @@ GetSwlReplaceBlock: cmp r6, #40 movls r1, #0 cmp r1, #0 - bne .L2597 - ldr r3, [r10, #-668] + bne .L2578 + ldr r3, [r10, #868] cmp r3, #0 - beq .L2597 - sub r2, r10, #3248 - ldr r0, [r10, #-2888] - ldr ip, .L2616+16 + beq .L2578 + sub r2, r10, #1712 + ldr r0, [r10, #-1352] + ldr ip, .L2597+16 movw r7, #65535 ldrh r2, [r2, #-12] mov r5, r7 - ldr r10, [r10, #-2948] + ldr r10, [r10, #-1412] mov lr, #6 str r2, [sp, #20] -.L2598: +.L2579: ldrh r2, [r3] movw fp, #65535 cmp r2, fp - beq .L2600 + beq .L2581 add r1, r1, #1 ldr fp, [sp, #20] uxth r1, r1 cmp r1, fp - bhi .L2597 + bhi .L2578 ldrh fp, [r3, #4] cmp fp, #0 - beq .L2599 + beq .L2580 rsb r3, r0, r3 mov r3, r3, asr #1 mul r3, ip, r3 @@ -15994,66 +15781,66 @@ GetSwlReplaceBlock: mov fp, r3, asl #1 ldrh fp, [r10, fp] cmp fp, r6 - bls .L2604 + bls .L2585 cmp fp, r7 movcc r7, fp movcc r5, r3 -.L2599: +.L2580: mla r3, lr, r2, r0 - b .L2598 -.L2604: + b .L2579 +.L2585: mov r5, r3 -.L2600: +.L2581: movw r3, #65535 cmp r5, r3 - beq .L2597 + beq .L2578 mov r3, r5, asl #1 ldrh fp, [r10, r3] cmp fp, r6 - bls .L2602 + bls .L2583 str r3, [sp, #20] bl GetFreeBlockMinEraseCount ldr r3, [sp, #20] cmp r0, r6 - strhi r7, [r4, #-3100] -.L2602: + strhi r7, [r4, #-1564] +.L2583: cmp fp, r8 - bcs .L2597 + bcs .L2578 add r2, fp, #128 cmp r9, r2 - ble .L2597 + ble .L2578 add r2, fp, #256 cmp r2, r8 - bcc .L2603 - ldr r2, [r4, #-3104] + bcc .L2584 + ldr r2, [r4, #-1568] add fp, fp, #768 cmp fp, r2 - bcs .L2597 -.L2603: - ldr r2, [r4, #-2940] + bcs .L2578 +.L2584: + ldr r2, [r4, #-1404] mov r1, r5 - ldr r0, .L2616+20 + ldr r0, .L2597+20 ldrh r2, [r2, r3] str r2, [sp] mov r2, r8 ldrh r3, [r10, r3] stmib sp, {r3, r9} - ldr r3, [r4, #-3104] + ldr r3, [r4, #-1568] bl printk mov r0, r5 mov r3, #1 - str r3, [r4, #-3092] -.L2596: + str r3, [r4, #-1556] +.L2577: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2617: +.L2598: .align 2 -.L2616: +.L2597: .word .LANCHOR4 .word .LANCHOR2 - .word .LANCHOR2-3200 - .word .LANCHOR2-3260 + .word .LANCHOR2-1664 + .word .LANCHOR2-1724 .word -1431655765 .word .LC142 .fnend @@ -16069,19 +15856,19 @@ free_data_superblock: cmp r0, r2 stmfd sp!, {r3, lr} .save {r3, lr} - beq .L2619 - ldr r2, .L2621 + beq .L2600 + ldr r2, .L2602 mov r3, r0, asl #1 mov r1, #0 - ldr r2, [r2, #-2940] + ldr r2, [r2, #-1404] strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L2619: +.L2600: mov r0, #0 ldmfd sp!, {r3, pc} -.L2622: +.L2603: .align 2 -.L2621: +.L2602: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -16096,105 +15883,104 @@ allocate_data_superblock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L2678 - ldr r3, [r4, #-2812] + ldr r4, .L2659 + ldr r3, [r4, #-1276] cmp r3, #0 - bne .L2624 + bne .L2605 mov r5, r0 - mov r7, r4 -.L2625: - ldr r3, .L2678+4 + mov r6, r4 +.L2606: + ldr r3, .L2659+4 ldrb r2, [r5, #8] @ zero_extendqisi2 cmp r5, r3 - sub r6, r3, #100 - bne .L2626 - ldrh r3, [r6] - ldr ip, [r7, #-3092] + sub r7, r3, #100 + bne .L2607 + ldrh r3, [r7] + ldr ip, [r6, #-1556] mov r0, r3, lsr #1 mul lr, ip, r3 add r1, r0, #1 add r1, r1, lr, lsr #2 - ldr lr, [r7, #-3336] + ldr lr, [r6, #-1800] cmp lr, #0 uxth r1, r1 - beq .L2627 - ldr lr, [r7, #-3100] + beq .L2608 + ldr lr, [r6, #-1564] cmp lr, #39 - bhi .L2627 + bhi .L2608 cmp lr, #2 - bls .L2652 + bls .L2633 cmp ip, #0 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 moveq r1, r0 - beq .L2627 - b .L2652 -.L2626: + beq .L2608 + b .L2633 +.L2607: cmp r2, #1 - bne .L2652 - ldr r3, .L2678+8 + bne .L2633 + ldr r3, .L2659+8 ldrh r3, [r3] cmp r3, #1 - beq .L2652 - ldr r3, .L2678+12 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + beq .L2633 + ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L2652 - ldr r0, [r7, #-3336] - ldrh r3, [r6] + bne .L2633 + ldr r0, [r6, #-1800] + ldrh r3, [r7] cmp r0, #0 mov r1, r3, lsr #3 - beq .L2627 - ldr r0, [r7, #-3100] + beq .L2608 + ldr r0, [r6, #-1564] cmp r0, #1 rsbls r3, r3, r3, asl #3 ubfxls r1, r3, #3, #16 -.L2627: +.L2608: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 - b .L2628 -.L2652: + b .L2609 +.L2633: mov r1, #0 -.L2628: - ldr r0, .L2678+16 +.L2609: + ldr r0, .L2659+12 bl List_pop_index_node - ldr r10, .L2678+20 - ldrh r3, [r6] + ldr r10, .L2659+16 + ldrh r3, [r7] sub r3, r3, #1 - strh r3, [r6] @ movhi + strh r3, [r7] @ movhi ldrh r3, [r10] uxth r9, r0 cmp r3, r9 - bls .L2625 - ldr r3, [r7, #-2940] + bls .L2606 + ldr r3, [r6, #-1404] mov r8, r9, asl #1 - ldrh r6, [r3, r8] - cmp r6, #0 - bne .L2625 + ldrh r7, [r3, r8] + cmp r7, #0 + bne .L2606 strh r9, [r5] @ movhi mov r0, r5 bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - beq .L2630 - ldr r0, [r7, #-3024] + beq .L2611 + ldr r0, [r6, #-1488] mov r2, #36 ldrh lr, [r10, #-8] add ip, r5, #14 mov r3, r0 mla r1, r2, lr, r0 - mov lr, r6 + mov lr, r7 str r1, [sp, #4] - b .L2631 -.L2630: - ldr r3, [r7, #-2940] - b .L2673 -.L2631: + b .L2612 +.L2611: + ldr r3, [r6, #-1404] + b .L2654 +.L2612: ldr r1, [sp, #4] cmp r3, r1 - beq .L2675 + beq .L2656 str lr, [r3, #8] movw fp, #65535 str lr, [r3, #12] @@ -16202,122 +15988,121 @@ allocate_data_superblock: ldrh r1, [ip, #2]! cmp r1, fp movne r1, r1, asl #10 - mlane fp, r2, r6, r0 - addne r6, r6, #1 - uxthne r6, r6 + mlane fp, r2, r7, r0 + addne r7, r7, #1 + uxthne r7, r7 strne r1, [fp, #4] - b .L2631 -.L2675: - ldr r3, .L2678+24 - ldr r2, [r4, #-3336] + b .L2612 +.L2656: + ldr r3, .L2659+20 + ldr r2, [r4, #-1800] rsb r3, r3, r5 clz r3, r3 cmp r2, #0 mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L2634 - ldr r3, [r7, #-2948] + beq .L2615 + ldr r3, [r6, #-1412] ldrh r3, [r3, r8] cmp r3, #40 movhi r3, #0 - strhib r3, [r7, #-640] -.L2634: + strhib r3, [r6, #896] +.L2615: ldrb r3, [r5, #8] @ zero_extendqisi2 - ldr r2, [r4, #-2948] + ldr r2, [r4, #-1412] cmp r3, #0 ldrh r3, [r2, r8] - bne .L2635 + bne .L2616 cmp r3, #0 mov r0, r9 - ldrne r1, .L2678+28 + ldrne r1, .L2659+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, #-3116] + ldr r3, [r4, #-1580] add r3, r3, #1 - str r3, [r4, #-3116] + str r3, [r4, #-1580] bl ftl_set_blk_mode - b .L2637 -.L2635: + b .L2618 +.L2616: add r3, r3, #1 strh r3, [r2, r8] @ movhi - ldr r1, [r4, #-2928] + ldr r1, [r4, #-1392] mov r0, r9, lsr #5 - ldr r3, [r4, #-3112] + ldr r3, [r4, #-1576] mov ip, #1 add r3, r3, #1 - str r3, [r4, #-3112] + str r3, [r4, #-1576] ldr r2, [r1, r0, asl #2] and r3, r9, #31 orr r3, r2, ip, asl r3 str r3, [r1, r0, asl #2] -.L2637: - ldr r3, [r4, #-2948] - ldr r2, [r4, #-3104] - ldr r0, [r4, #-3116] +.L2618: + ldr r3, [r4, #-1412] + ldr r2, [r4, #-1568] + ldr r0, [r4, #-1580] ldrh r3, [r3, r8] ldrh r1, [r10] cmp r3, r2 - strhi r3, [r7, #-3104] - ldr r3, .L2678+28 + strhi r3, [r6, #-1568] + ldr r3, .L2659+24 ldrh r2, [r3] - ldr r3, [r4, #-3112] + ldr r3, [r4, #-1576] mla r0, r0, r2, r3 bl __aeabi_uidiv - ldr r2, [r4, #-2952] - ldr r3, .L2678+32 - str r0, [r3, #204] + ldr r2, [r4, #-1416] + ldr r3, .L2659+28 + str r0, [r3, #1740] ldr r3, [r2, #16] add r3, r3, #1 str r3, [r2, #16] - ldr r2, [r4, #-3024] + ldr r2, [r4, #-1488] mov r3, #36 add r1, r2, #4 - mla r3, r3, r6, r2 + mla r3, r3, r7, r2 add r3, r3, #40 -.L2639: +.L2620: add r1, r1, #36 cmp r1, r3 ldrne r2, [r1, #-36] bicne r2, r2, #1020 bicne r2, r2, #3 strne r2, [r1, #-36] - bne .L2639 -.L2676: - ldr r3, .L2678+12 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + bne .L2620 +.L2657: + ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L2641 + beq .L2622 ldrb r3, [r5, #8] @ zero_extendqisi2 - mov r2, r6 - ldr r0, [r4, #-3024] + mov r2, r7 + ldr r0, [r6, #-1488] cmp r3, #1 moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2641: +.L2622: ldrb r1, [r5, #8] @ zero_extendqisi2 - mov r2, r6 - ldr r0, [r4, #-3024] + mov r2, r7 + ldr r0, [r4, #-1488] mov r10, #0 bl FlashEraseBlocks add r2, r5, #16 mov fp, r10 mov r1, #36 -.L2643: +.L2624: uxth r3, r10 - cmp r3, r6 - bcs .L2677 + cmp r3, r7 + bcs .L2658 mul r3, r1, r10 - ldr ip, [r4, #-3024] + ldr ip, [r4, #-1488] add r0, ip, r3 ldr r3, [ip, r3] cmn r3, #1 - bne .L2644 + bne .L2625 ldr r0, [r0, #4] add fp, fp, #1 str r1, [sp, #12] @@ -16330,61 +16115,60 @@ allocate_data_superblock: ldrb r3, [r5, #7] @ zero_extendqisi2 sub r3, r3, #1 strb r3, [r5, #7] -.L2644: +.L2625: add r10, r10, #1 add r2, r2, #2 - b .L2643 -.L2677: + b .L2624 +.L2658: cmp fp, #0 - beq .L2646 + beq .L2627 mov r0, r9 bl update_multiplier_value bl FtlBbmTblFlush -.L2646: +.L2627: ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L2647 - ldr r3, [r4, #-2940] -.L2673: + bne .L2628 + ldr r3, [r4, #-1404] +.L2654: mvn r2, #0 strh r2, [r3, r8] @ movhi - b .L2625 -.L2647: - ldr r2, .L2678+36 + b .L2606 +.L2628: + ldr r2, .L2659+32 ldrh r2, [r2] strh r9, [r5] @ movhi smulbb r3, r2, r3 mov r2, #0 strh r2, [r5, #2] @ movhi strb r2, [r5, #6] - ldr r2, [r4, #-3148] - ldr r1, [r4, #-2940] + ldr r2, [r4, #-1612] + ldr r1, [r4, #-1404] uxth r3, r3 strh r3, [r5, #4] @ movhi str r2, [r5, #12] add r2, r2, #1 - str r2, [r4, #-3148] + str r2, [r4, #-1612] ldrh r2, [r5] mov r2, r2, asl #1 strh r3, [r1, r2] @ movhi -.L2624: +.L2605: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2679: +.L2660: .align 2 -.L2678: +.L2659: .word .LANCHOR2 - .word .LANCHOR2-552 - .word .LANCHOR2-3248 - .word .LANCHOR0 - .word .LANCHOR2-656 - .word .LANCHOR2-3260 - .word .LANCHOR2-648 - .word .LANCHOR2-3208 + .word .LANCHOR2+984 + .word .LANCHOR2-1712 + .word .LANCHOR2+880 + .word .LANCHOR2-1724 + .word .LANCHOR2+888 + .word .LANCHOR2-1672 .word .LANCHOR4 - .word .LANCHOR2-3200 + .word .LANCHOR2-1664 .fnend .size allocate_data_superblock, .-allocate_data_superblock .align 2 @@ -16397,23 +16181,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, .L2688 + ldr lr, .L2669 mov r5, #1 - ldr r2, .L2688+4 + ldr r2, .L2669+4 mov r7, #36 - ldr r1, .L2688+8 + ldr r1, .L2669+8 add r6, lr, #78 mov r3, #0 - str r3, [r2, #208] -.L2681: + str r3, [r2, #1744] +.L2662: ldrh r2, [lr] add ip, r3, #1 uxth r3, r3 - ldr r0, .L2688+8 + ldr r0, .L2669+8 cmp r3, r2 - bcs .L2686 + bcs .L2667 mul r0, r4, r3 - ldr r8, [r1, #-2980] + ldr r8, [r1, #-1444] add r2, r8, r0 str r5, [r2, #8] ldrh r2, [r6] @@ -16421,41 +16205,41 @@ FtlGcBufInit: add r9, r2, #3 cmp r2, #0 movlt r2, r9 - ldr r9, [r1, #-2996] + ldr r9, [r1, #-1460] bic r2, r2, #3 add r2, r9, r2 str r2, [r8, r0] - ldr r2, .L2688+12 - ldr r9, [r1, #-2980] + ldr r2, .L2669+12 + ldr r9, [r1, #-1444] ldrh r2, [r2] add r8, r9, r0 mul r2, r2, r3 add r10, r2, #3 cmp r2, #0 movlt r2, r10 - ldr r10, [r1, #-2968] + ldr r10, [r1, #-1432] bic r2, r2, #3 add r2, r10, r2 str r2, [r8, #4] - ldr r2, [r1, #-3020] + ldr r2, [r1, #-1484] 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 .L2681 -.L2686: - ldr r4, .L2688+16 + b .L2662 +.L2667: + ldr r4, .L2669+16 mov r1, r0 mov ip, #12 mov lr, #0 -.L2683: - ldr r3, [r0, #-3012] +.L2664: + ldr r3, [r0, #-1476] cmp r2, r3 - bcs .L2687 + bcs .L2668 mul r5, ip, r2 - ldr r7, [r1, #-2980] + ldr r7, [r1, #-1444] add r3, r7, r5 str lr, [r3, #8] ldrh r3, [r4] @@ -16463,12 +16247,12 @@ FtlGcBufInit: add r6, r3, #3 cmp r3, #0 movlt r3, r6 - ldr r6, [r1, #-2996] + ldr r6, [r1, #-1460] bic r3, r3, #3 add r3, r6, r3 str r3, [r7, r5] - ldr r3, .L2688+12 - ldr r6, [r1, #-2980] + ldr r3, .L2669+12 + ldr r6, [r1, #-1444] ldrh r3, [r3] add r5, r6, r5 mul r3, r3, r2 @@ -16477,21 +16261,21 @@ FtlGcBufInit: add r6, r3, #3 cmp r3, #0 movlt r3, r6 - ldr r6, [r1, #-2968] + ldr r6, [r1, #-1432] bic r3, r3, #3 add r3, r6, r3 str r3, [r5, #4] - b .L2683 -.L2687: + b .L2664 +.L2668: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2689: +.L2670: .align 2 -.L2688: - .word .LANCHOR2-3268 +.L2669: + .word .LANCHOR2-1732 .word .LANCHOR4 .word .LANCHOR2 - .word .LANCHOR2-3188 - .word .LANCHOR2-3190 + .word .LANCHOR2-1652 + .word .LANCHOR2-1654 .fnend .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -16503,50 +16287,51 @@ 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 mvn r3, #0 - ldr r6, .L2692 + ldr r5, .L2673+4 mov r4, #0 - ldr r5, .L2692+4 mov r1, r4 - strh r3, [r6, #216] @ movhi - sub r7, r5, #3248 - str r3, [r6, #228] - sub r3, r5, #2816 - ldr r0, [r5, #-2924] + strh r3, [r6, r2] @ movhi + sub r7, r5, #1712 + str r3, [r6, #1764] + sub r3, r5, #1280 + ldr r0, [r5, #-1388] strh r4, [r3, #-4] @ movhi - sub r3, r5, #3168 - str r4, [r6, #212] + sub r3, r5, #1632 + str r4, [r6, #1748] ldrh r2, [r3, #-12] - str r4, [r6, #220] - str r4, [r6, #224] + str r4, [r6, #1756] + str r4, [r6, #1760] mov r2, r2, asl #1 - str r4, [r5, #-3336] + str r4, [r5, #-1800] bl ftl_memset ldrh r2, [r7, #-10] mov r1, r4 - ldr r0, [r5, #-2948] + ldr r0, [r5, #-1412] mov r2, r2, asl #1 bl ftl_memset ldrh r2, [r7, #-10] mov r1, r4 - ldr r0, [r5, #-2956] + ldr r0, [r5, #-1420] mov r2, r2, asl #1 bl ftl_memset mov r1, r4 - sub r0, r5, #716 + add r0, r5, #820 mov r2, #48 bl ftl_memset mov r1, r4 mov r2, #512 - sub r0, r6, #320 + add r0, r6, #1216 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2693: +.L2674: .align 2 -.L2692: +.L2673: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -16558,39 +16343,39 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2702 + ldr r3, .L2683 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, #-3012] + ldr r6, [r3, #-1476] mov r5, #36 - ldr r4, [r3, #-2980] + ldr r4, [r3, #-1444] mov r7, lr mov r8, #12 -.L2695: +.L2676: uxth ip, lr cmp ip, r1 ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mla ip, r5, ip, r0 mov r2, #0 -.L2696: +.L2677: uxth r3, r2 cmp r3, r6 - bcs .L2697 + bcs .L2678 mul r3, r8, r3 add r2, r2, #1 add r9, r4, r3 ldr r10, [r4, r3] ldr r3, [ip, #8] cmp r10, r3 - bne .L2696 + bne .L2677 str r7, [r9, #8] -.L2697: +.L2678: add lr, lr, #1 - b .L2695 -.L2703: + b .L2676 +.L2684: .align 2 -.L2702: +.L2683: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -16601,43 +16386,43 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2713 + ldr r3, .L2694 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, #-3012] + ldr r4, [r3, #-1476] mov r7, #1 - ldr r5, [r3, #-2980] + ldr r5, [r3, #-1444] mov r8, #36 -.L2705: +.L2686: uxth r2, ip cmp r2, r1 - bcs .L2712 + bcs .L2693 mov lr, #0 -.L2706: +.L2687: uxth r3, lr cmp r3, r4 - bcs .L2707 + bcs .L2688 mla r3, r6, r3, r5 add lr, lr, #1 ldr r9, [r3, #8] cmp r9, #0 - bne .L2706 + bne .L2687 mla r2, r8, r2, r0 ldr lr, [r3] str r7, [r3, #8] str lr, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L2707: +.L2688: add ip, ip, #1 - b .L2705 -.L2712: + b .L2686 +.L2693: ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2714: +.L2695: .align 2 -.L2713: +.L2694: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -16649,25 +16434,26 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2721 - ldr r3, .L2721+4 - ldrh r2, [r2, #232] - ldr r3, [r3, #-3044] + ldr r1, .L2702 + movw r2, #1768 + ldr r3, .L2702+4 + ldrh r2, [r1, r2] + ldr r3, [r3, #-1508] add r2, r3, r2, asl #1 -.L2716: +.L2697: cmp r3, r2 - beq .L2720 + beq .L2701 ldrh r1, [r3], #2 cmp r1, r0 - bne .L2716 + bne .L2697 mov r0, #1 bx lr -.L2720: +.L2701: mov r0, #0 bx lr -.L2722: +.L2703: .align 2 -.L2721: +.L2702: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -16681,47 +16467,51 @@ 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 + 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 - ldr lr, .L2731 - mov r4, #0 - ldr r3, .L2731+4 - ldr r2, [lr, #-3044] - ldrh r1, [r3, #232] - sub r8, r2, #2 -.L2724: - uxth ip, r4 - cmp ip, r1 - bcs .L2728 + ldr lr, .L2712 + movw r2, #1768 + ldr r3, .L2712+4 + ldr r1, [lr, #-1508] + ldrh r7, [r3, r2] + mov r2, #0 + sub r8, r1, #2 +.L2705: + uxth ip, r2 + cmp ip, r7 + bcs .L2709 ldrh r9, [r8, #2]! - add r4, r4, #1 - cmp r9, r0 - bne .L2724 -.L2728: - cmp ip, r1 - moveq ip, ip, asl #1 - streqh r0, [r2, ip] @ movhi - ldreqh r0, [r3, #232] - addeq r0, r0, #1 - streqh r0, [r3, #232] @ movhi -.L2726: - ldrh r2, [r3, #234] - mov ip, #12 - mul ip, ip, r2 - ldr r2, [lr, #-3040] - add r1, r2, ip - stmib r1, {r6, r7} - str r5, [r2, ip] - ldrh r2, [r3, #234] add r2, r2, #1 - strh r2, [r3, #234] @ movhi + cmp r9, r0 + bne .L2705 +.L2709: + cmp ip, r7 + bne .L2707 + mov ip, ip, asl #1 + movw r2, #1768 + strh r0, [r1, ip] @ movhi + ldrh r0, [r3, r2] + add r0, r0, #1 + strh r0, [r3, r2] @ movhi +.L2707: + movw r0, #1770 + mov ip, #12 + ldrh r2, [r3, r0] + mul ip, ip, r2 + ldr r2, [lr, #-1504] + add r1, r2, ip + stmib r1, {r5, r6} + str r4, [r2, ip] + ldrh r2, [r3, r0] + add r2, r2, #1 + strh r2, [r3, r0] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2732: +.L2713: .align 2 -.L2731: +.L2712: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -16735,30 +16525,32 @@ 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 mov r2, #0 - ldr r4, .L2735 + ldr r4, .L2716+4 + sub r5, r4, #1648 + strh r2, [r3, r1] @ movhi + movw r1, #1770 + ldr r0, [r4, #-1508] + strh r2, [r3, r1] @ movhi mov r1, #255 - ldr r3, .L2735+4 - sub r5, r4, #3184 - ldr r0, [r4, #-3044] - strh r2, [r3, #232] @ movhi - strh r2, [r3, #234] @ movhi ldrh r2, [r5, #-12] mov r2, r2, asl #1 bl ftl_memset ldrh r3, [r5, #-12] mov r2, #12 - ldr r0, [r4, #-3040] + ldr r0, [r4, #-1504] mov r1, #255 mul r2, r2, r3 bl ftl_memset ldmfd sp!, {r3, r4, r5, lr} b FtlGcBufInit -.L2736: +.L2717: .align 2 -.L2735: - .word .LANCHOR2 +.L2716: .word .LANCHOR4 + .word .LANCHOR2 .fnend .size FtlGcPageVarInit, .-FtlGcPageVarInit .align 2 @@ -16766,146 +16558,155 @@ FtlGcPageVarInit: .type FtlGcScanTempBlk, %function FtlGcScanTempBlk: .fnstart - @ args = 0, pretend = 0, frame = 80 + @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2785 + ldr r2, .L2771 + movw r3, #3352 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 r3, [r3] - mov r4, r0 - ldr r2, .L2785+4 - str r1, [sp, #16] - str r3, [sp, #76] - movw r3, #3288 + .pad #68 + sub sp, sp, #68 ldrh r5, [r2, r3] movw r3, #65535 - cmp r5, r3 - beq .L2769 - cmp r5, #0 - bne .L2738 - b .L2739 -.L2769: - mov r5, #0 -.L2738: - ldr r3, .L2785+8 - ldr r2, [sp, #16] - ldrh r3, [r3] - cmp r2, r3 - bne .L2740 -.L2739: - bl FtlGcPageVarInit -.L2740: - ldr r6, .L2785+12 - mvn r3, #0 - str r3, [sp, #12] - mov r3, #0 - str r3, [sp, #4] - mov r8, r6 -.L2741: - ldrh r2, [r4] - mov r3, #0 - strb r3, [r4, #8] - movw r3, #65535 - cmp r2, r3 - beq .L2742 -.L2743: -.L2765: - ldr r3, .L2785+16 - add r0, r4, #14 - ldr ip, [r6, #-2968] - movw r9, #65535 - mov r10, #36 - ldrh r3, [r3] - str r3, [sp, #8] - ldr r3, [r6, #-3036] - str r3, [sp, #20] - ldr r3, [r6, #-2996] - str r3, [sp, #24] - ldr r3, .L2785+20 - ldrh r2, [r3] - ldrh lr, [r3, #2] - str r2, [sp, #28] - mov r2, #0 - mov r7, r2 -.L2744: - ldr r1, [sp, #8] - uxth r3, r2 - cmp r3, r1 - bcs .L2783 - ldrh r3, [r0, #2]! - cmp r3, r9 - beq .L2745 - ldr r1, [sp, #20] - orr r3, r5, r3, asl #10 - mla r1, r10, r7, r1 - str r3, [r1, #4] - ldr r3, [sp, #28] - mul r3, r3, r7 - add fp, r3, #3 - cmp r3, #0 - movlt r3, fp - ldr fp, [sp, #24] - bic r3, r3, #3 - add r3, fp, r3 - str r3, [r1, #8] - mul r3, lr, r7 - add r7, r7, #1 - uxth r7, r7 - add fp, r3, #3 - cmp r3, #0 - movlt r3, fp - bic r3, r3, #3 - add r3, ip, r3 - str r3, [r1, #12] -.L2745: - add r2, r2, #1 - b .L2744 -.L2783: - ldr r0, [r6, #-3036] - mov r1, r7 - mov r2, #0 - mov fp, #0 - bl FlashReadPages -.L2747: - uxth r3, fp - cmp r3, r7 - bcs .L2784 - mov r10, #36 - ldr r2, [r6, #-3036] - mul r10, r10, fp - ldr ip, .L2785+12 - add r3, r2, r10 - ldr r9, [r2, r10] - ldr r1, [r3, #4] - cmp r9, #0 - ldr r3, [r3, #12] + mov r4, r0 str r1, [sp, #8] - bne .L2748 - ldrh r1, [r3] - movw r2, #65535 - cmp r1, r2 - bne .L2749 -.L2751: - ldrh r3, [r4] - ldr r2, [r8, #-2940] - b .L2782 + cmp r5, r3 + beq .L2752 + cmp r5, #0 + bne .L2719 + b .L2720 +.L2752: + mov r5, #0 +.L2719: + ldr r3, .L2771+4 + ldr r2, [sp, #8] + ldrh r3, [r3] + cmp r2, r3 + bne .L2721 +.L2720: + bl FtlGcPageVarInit +.L2721: + ldr r6, .L2771+8 + mov r2, #0 + mvn r3, #0 + stmia sp, {r2, r3} +.L2722: + ldrh r1, [r4] + movw r3, #65535 + mov r2, #0 + strb r2, [r4, #8] + cmp r1, r3 + beq .L2723 +.L2724: .L2749: + ldr r3, .L2771+12 + mov r7, #0 + ldr r0, [r6, #-1432] + add r1, r4, #14 + mov r8, r7 + movw lr, #65535 + ldrh r3, [r3] + mov r9, #36 + str r3, [sp, #12] + ldr r3, [r6, #-1500] + str r3, [sp, #16] + ldr r3, [r6, #-1460] + str r3, [sp, #20] + ldr r3, .L2771+16 + ldrh fp, [r3] + ldrh ip, [r3, #2] +.L2725: + ldr r2, [sp, #12] + uxth r3, r7 + cmp r3, r2 + bcs .L2769 + ldrh r3, [r1, #2]! + cmp r3, lr + beq .L2726 + ldr r2, [sp, #16] + orr r3, r5, r3, asl #10 + mla r2, r9, r8, r2 + str r3, [r2, #4] + mul r3, fp, r8 + add r10, r3, #3 + cmp r3, #0 + movlt r3, r10 + ldr r10, [sp, #20] + bic r3, r3, #3 + add r3, r10, r3 + str r3, [r2, #8] + mul r3, ip, r8 + add r8, r8, #1 + uxth r8, r8 + add r10, r3, #3 + cmp r3, #0 + movlt r3, r10 + bic r3, r3, #3 + add r3, r0, r3 + str r3, [r2, #12] +.L2726: + add r7, r7, #1 + b .L2725 +.L2769: + ldr r0, [r6, #-1500] + mov r1, r8 + mov r2, #0 + mov r10, #0 + bl FlashReadPages +.L2728: + uxth r3, r10 + cmp r3, r8 + bcs .L2770 + ldr r3, .L2771+8 + mov r9, #36 + mul r9, r9, r10 + ldr r7, [r3, #-1500] + 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 + cmp r7, #0 + ldr r3, [sp, #12] + mov r2, r0 + ldr r3, [r3, #12] + bne .L2729 + ldrh r0, [r3] + movw r1, #65535 + cmp r0, r1 + bne .L2730 +.L2733: + ldrb r1, [ip, #-2744] @ zero_extendqisi2 + cmp r1, #0 + beq .L2764 + ldr r3, .L2771+20 + mov r1, #1 + str r1, [r3, #1760] + b .L2723 +.L2730: ldr r0, [r3, #8] - ldr r2, [r6, #-2816] - cmp r0, r2 - bhi .L2751 - ldr r2, .L2785+24 + ldr r1, [r6, #-1280] + cmp r0, r1 + bls .L2765 + b .L2733 +.L2764: + ldrh r3, [r4] + ldr r2, [r6, #-1404] + mov r3, r3, asl #1 + b .L2768 +.L2765: + ldr r2, .L2771+24 ldrb r2, [r2] @ zero_extendqisi2 cmp r2, #0 - beq .L2753 - add r1, sp, #36 - mov r2, r9 - str r3, [sp, #20] + beq .L2737 + add r1, sp, #24 + mov r2, r7 + str r3, [sp, #12] bl log2phys - ldr r3, [sp, #20] - ldr r1, [sp, #36] + ldr r3, [sp, #12] + ldr r1, [sp, #24] ldr r2, [r3, #12] cmn r1, #1 rsb r0, r2, r1 @@ -16913,168 +16714,163 @@ FtlGcScanTempBlk: mov r0, r0, lsr #5 moveq r0, #0 cmp r0, #0 - beq .L2753 - str r2, [sp, #44] + beq .L2737 + str r2, [sp, #32] mov r1, #1 - ldr r2, [r6, #-2984] - add r0, sp, #40 - str r2, [sp, #48] - ldr r2, [r6, #-2972] - str r2, [sp, #52] - mov r2, r9 + ldr r2, [r6, #-1448] + add r0, sp, #28 + str r2, [sp, #36] + ldr r2, [r6, #-1436] + str r2, [sp, #40] + mov r2, r7 bl FlashReadPages - ldr r2, .L2785+28 - ldr r1, [r6, #-3036] + ldr r2, .L2771+28 + ldr r1, [r6, #-1500] ldrh r2, [r2] - add r10, r1, r10 + add r9, r1, r9 mov r2, r2, asl #7 - ldr r1, [sp, #48] - ldr r3, [sp, #20] - b .L2755 -.L2756: - add r9, r9, #1 -.L2755: - cmp r9, r2 - beq .L2753 - ldr r0, [r10, #8] - ldr ip, [r0, r9, asl #2] - ldr r0, [r1, r9, asl #2] + ldr r1, [sp, #36] + ldr r3, [sp, #12] + b .L2739 +.L2740: + add r7, r7, #1 +.L2739: + cmp r7, r2 + beq .L2737 + ldr r0, [r9, #8] + ldr ip, [r0, r7, asl #2] + ldr r0, [r1, r7, asl #2] cmp ip, r0 - beq .L2756 - ldr r2, [sp, #44] - ldr r0, .L2785+32 + beq .L2740 ldrh r1, [r4] + ldr r2, [sp, #32] + ldr r0, .L2771+32 bl printk ldrh r3, [r4] - ldr r2, [r6, #-2940] -.L2782: - mov r3, r3, asl #1 + ldr r2, [r6, #-1404] mov r1, #0 + mov r3, r3, asl #1 +.L2768: strh r1, [r2, r3] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST - ldr r2, .L2785+36 + ldr r2, .L2771+36 mvn r3, #0 strh r3, [r4] @ movhi strh r3, [r2] @ movhi - b .L2781 -.L2753: + b .L2767 +.L2737: ldr r0, [r3, #12] - add fp, fp, #1 - ldr r1, [sp, #8] + mov r1, fp ldr r2, [r3, #8] + add r10, r10, #1 bl FtlGcUpdatePage - b .L2747 -.L2748: - ldr r0, .L2785+40 + b .L2728 +.L2729: + ldr r0, .L2771+40 + mov r2, fp ldrh r1, [r4] - ldr r2, [sp, #8] - str ip, [sp, #20] + str ip, [sp, #12] bl printk - ldr r3, [r8, #-3336] + ldr r3, .L2771+8 ldrh r5, [r4] + ldr r3, [r3, #-1800] cmp r3, #0 - ldr ip, [sp, #20] - bne .L2759 - ldr r3, .L2785+24 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + ldr ip, [sp, #12] + bne .L2743 + ldr r3, .L2771+8 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L2760 -.L2759: - ldr r2, [ip, #-2948] + beq .L2744 +.L2743: + ldr r2, [ip, #-1412] mov r3, r5, asl #1 ldrh r3, [r2, r3] cmp r3, #159 - bls .L2761 -.L2760: - ldr r3, [ip, #-3036] - ldr r3, [r3, r10] + bls .L2745 +.L2744: + ldr r3, [ip, #-1500] + ldr r3, [r3, r9] cmn r3, #1 - bne .L2762 -.L2761: - ldr r3, [ip, #-3036] - add r10, r3, r10 - ldr r3, [r10, #4] - str r3, [sp, #12] -.L2762: - ldr r3, [r8, #-2940] + bne .L2746 +.L2745: + ldr r3, [ip, #-1500] + add r9, r3, r9 + ldr r3, [r9, #4] + str r3, [sp, #4] +.L2746: + ldr r3, .L2771+8 mov r5, r5, asl #1 mov r2, #0 + ldr r3, [r3, #-1404] strh r2, [r3, r5] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST mvn r3, #0 strh r3, [r4] @ movhi -.L2781: +.L2767: bl FtlGcPageVarInit mov r5, #0 - b .L2741 -.L2784: - ldr r3, [sp, #4] + b .L2722 +.L2770: + ldr r3, [sp] add r5, r5, #1 - ldr r2, [sp, #16] + ldr r2, [sp, #8] add r3, r3, #1 uxth r5, r5 cmp r3, r2 - str r3, [sp, #4] - ldr r2, .L2785+8 - bcs .L2764 -.L2766: + str r3, [sp] + ldr r2, .L2771+4 + bcs .L2748 +.L2750: ldrh r3, [r2] cmp r3, r5 - bhi .L2765 - b .L2742 -.L2764: - ldr r1, .L2785+44 + bhi .L2749 + mov r2, #0 + b .L2723 +.L2748: + ldr r1, .L2771+44 movw r0, #65535 ldrh r3, [r1] cmp r3, r0 - beq .L2766 - ldr r0, [sp, #4] + beq .L2750 + ldr r0, [sp] add r3, r3, r0 strh r3, [r1] @ movhi ldrh r3, [r2] cmp r3, r5 - bls .L2766 - b .L2767 -.L2742: - ldr r2, .L2785+4 - movw r3, #3288 - mvn r1, #0 + bls .L2750 + b .L2751 +.L2723: + ldr r1, .L2771 + movw r3, #3352 + mvn r0, #0 strh r5, [r4, #2] @ movhi - mov r0, r4 - strh r1, [r2, r3] @ movhi - mov r2, #0 - mov r1, r5 strb r2, [r4, #6] + strh r0, [r1, r3] @ movhi + mov r0, r4 + mov r1, r5 bl ftl_sb_update_avl_pages -.L2767: - ldr r3, .L2785 - ldr r2, [sp, #76] - ldr r0, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L2768 - bl __stack_chk_fail -.L2768: - add sp, sp, #84 +.L2751: + ldr r0, [sp, #4] + add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2786: +.L2772: .align 2 -.L2785: - .word __stack_chk_guard +.L2771: .word .LANCHOR1 - .word .LANCHOR2-3200 + .word .LANCHOR2-1664 .word .LANCHOR2 - .word .LANCHOR2-3268 - .word .LANCHOR2-3190 + .word .LANCHOR2-1732 + .word .LANCHOR2-1654 + .word .LANCHOR4 .word .LANCHOR0 - .word .LANCHOR2-3194 + .word .LANCHOR2-1658 .word .LC143 - .word .LANCHOR4-368 + .word .LANCHOR4+1168 .word .LC144 - .word .LANCHOR1+3288 + .word .LANCHOR1+3352 .fnend .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -17087,46 +16883,46 @@ FtlGcRefreshOpenBlock: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldr r6, .L2795 + ldr r6, .L2781 ldrh r3, [r6] cmp r3, r0 - beq .L2789 + beq .L2775 add r4, r6, #16 ldrh r3, [r4, #-14] cmp r3, r0 - beq .L2789 + beq .L2775 ldrh r3, [r4, #-12] cmp r3, r0 - beq .L2789 + beq .L2775 ldrh r3, [r4, #-10] cmp r3, r0 - beq .L2789 - ldr r0, .L2795+4 + beq .L2775 + ldr r0, .L2781+4 mov r1, r5 bl printk ldrh r2, [r6] movw r3, #65535 cmp r2, r3 streqh r5, [r6] @ movhi - beq .L2789 + beq .L2775 ldrh r2, [r4, #-14] cmp r2, r3 streqh r5, [r4, #-14] @ movhi - beq .L2789 + beq .L2775 ldrh r2, [r4, #-12] cmp r2, r3 streqh r5, [r4, #-12] @ movhi - beq .L2789 + beq .L2775 ldrh r2, [r4, #-10] cmp r2, r3 streqh r5, [r4, #-10] @ movhi -.L2789: +.L2775: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2796: +.L2782: .align 2 -.L2795: - .word .LANCHOR2-3072 +.L2781: + .word .LANCHOR2-1536 .word .LC145 .fnend .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock @@ -17140,50 +16936,50 @@ FtlGcRefreshBlock: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldr r6, .L2808 + ldr r6, .L2794 ldrh r3, [r6] cmp r3, r0 - beq .L2805 + beq .L2791 add r4, r6, #16 ldrh r3, [r4, #-14] cmp r3, r0 - beq .L2805 + beq .L2791 ldrh r3, [r4, #-12] cmp r3, r0 - beq .L2805 + beq .L2791 ldrh r3, [r4, #-10] cmp r3, r0 - beq .L2805 - ldr r0, .L2808+4 + beq .L2791 + ldr r0, .L2794+4 mov r1, r5 bl printk ldrh r2, [r6] movw r3, #65535 cmp r2, r3 streqh r5, [r6] @ movhi - beq .L2805 + beq .L2791 ldrh r2, [r4, #-14] cmp r2, r3 streqh r5, [r4, #-14] @ movhi - beq .L2805 + beq .L2791 ldrh r2, [r4, #-12] cmp r2, r3 streqh r5, [r4, #-12] @ movhi - beq .L2805 + beq .L2791 ldrh r2, [r4, #-10] cmp r2, r3 - bne .L2806 + bne .L2792 strh r5, [r4, #-10] @ movhi -.L2805: +.L2791: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2806: +.L2792: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2809: +.L2795: .align 2 -.L2808: - .word .LANCHOR2-3072 +.L2794: + .word .LANCHOR2-1536 .word .LC145 .fnend .size FtlGcRefreshBlock, .-FtlGcRefreshBlock @@ -17198,55 +16994,54 @@ FtlGcMarkBadPhyBlk: .save {r3, r4, r5, r6, r7, lr} mov r5, r0 bl P2V_block_in_plane - ldr r6, .L2820 + ldr r6, .L2806 mov r2, r5 - sub r7, r6, #3056 + sub r7, r6, #1520 ldrh r1, [r7, #-2] mov r4, r0 - ldr r0, .L2820+4 + ldr r0, .L2806+4 bl printk mov r0, r4 bl FtlGcRefreshBlock - ldr r3, [r6, #-3336] + ldr r3, [r6, #-1800] cmp r3, #0 - beq .L2811 - ldr r2, [r6, #-2948] + beq .L2797 + ldr r2, [r6, #-1412] mov r4, r4, asl #1 ldrh r3, [r2, r4] cmp r3, #39 subhi r3, r3, #40 strhih r3, [r2, r4] @ movhi -.L2811: +.L2797: ldrh r3, [r7, #-2] mov r2, #0 - ldr r0, .L2820+8 -.L2812: + ldr r0, .L2806+8 +.L2798: uxth r1, r2 cmp r1, r3 - bcs .L2819 + bcs .L2805 add r2, r2, #1 add r1, r0, r2, asl #1 ldrh r1, [r1, #-2] cmp r1, r5 - bne .L2812 - b .L2813 -.L2819: + bne .L2798 + b .L2799 +.L2805: cmp r3, #15 addls r2, r3, #1 strlsh r2, [r7, #-2] @ movhi - ldrls r2, .L2820+12 - addls r3, r2, r3, asl #1 - strlsh r5, [r3, #236] @ movhi -.L2813: + ldrls r2, .L2806+8 + movls r3, r3, asl #1 + strlsh r5, [r2, r3] @ movhi +.L2799: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2821: +.L2807: .align 2 -.L2820: +.L2806: .word .LANCHOR2 .word .LC146 - .word .LANCHOR4+236 - .word .LANCHOR4 + .word .LANCHOR4+1772 .fnend .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 2 @@ -17258,36 +17053,36 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L2829 + ldr r4, .L2815 ldrh r3, [r4, #-2] cmp r3, #0 - beq .L2823 + beq .L2809 ldrh r1, [r4, #-16] movw r2, #65535 cmp r1, r2 - bne .L2823 + bne .L2809 add r4, r4, #16 ldrh r2, [r4, #-14] cmp r2, r3 + ldr r2, .L2815+4 movcs r3, #0 strcsh r3, [r4, #-14] @ movhi - ldrh r2, [r4, #-14] - ldr r3, .L2829+4 - add r3, r3, r2, asl #1 - ldrh r0, [r3, #236] + ldrh r3, [r4, #-14] + mov r3, r3, asl #1 + ldrh r0, [r2, r3] bl P2V_block_in_plane bl FtlGcRefreshBlock ldrh r3, [r4, #-14] add r3, r3, #1 strh r3, [r4, #-14] @ movhi -.L2823: +.L2809: mov r0, #0 ldmfd sp!, {r4, pc} -.L2830: +.L2816: .align 2 -.L2829: - .word .LANCHOR2-3056 - .word .LANCHOR4 +.L2815: + .word .LANCHOR2-1520 + .word .LANCHOR4+1772 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk .align 2 @@ -17297,84 +17092,82 @@ FtlGcFreeBadSuperBlk: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2845 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 - ldrh r2, [r3, #-2] - cmp r2, #0 - beq .L2833 - sub r5, r3, #2 - mov r7, r0 - mov r6, #0 - mov r8, r5 -.L2832: - ldr r3, .L2845+4 - uxth r2, r6 + ldr r5, .L2831 + ldrh r3, [r5, #-2] + cmp r3, #0 + beq .L2819 + sub r5, r5, #2 + mov r8, r0 + mov r7, #0 + mov r9, r5 +.L2818: + ldr r3, .L2831+4 + uxth r2, r7 ldrh r3, [r3] cmp r3, r2 - bls .L2842 - ldr r3, .L2845+8 - mov r1, r7 - ldr fp, .L2845+12 - mov r9, #0 + bls .L2828 + ldr r3, .L2831+8 + mov r1, r8 + mov r10, #0 add r3, r3, r2 - ldrb r0, [r3, #-3240] @ zero_extendqisi2 + ldrb r0, [r3, #-1704] @ zero_extendqisi2 bl V2P_block - mov r10, r0 -.L2834: + ldr ip, .L2831+12 + mov fp, r0 +.L2820: ldrh r3, [r5] - uxth r4, r9 + uxth r4, r10 cmp r3, r4 - bls .L2843 - mov ip, r4, asl #1 - add r3, fp, ip - ldrh r3, [r3, #236] - cmp r3, r10 - bne .L2835 - mov r1, r10 - ldr r0, .L2845+16 + bls .L2829 + mov r3, r4, asl #1 + add r6, ip, r3 + ldrh r3, [ip, r3] + cmp r3, fp + bne .L2821 + mov r1, fp + ldr r0, .L2831+16 str ip, [sp, #4] bl printk - mov r0, r10 + mov r0, fp bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldr r3, .L2845+20 ldrh r2, [r5] + mov r3, r6 ldr ip, [sp, #4] - add r3, r3, ip -.L2836: +.L2822: cmp r4, r2 ldrcch r1, [r3, #2] addcc r4, r4, #1 uxthcc r4, r4 strcch r1, [r3], #2 @ movhi - bcc .L2836 -.L2844: + bcc .L2822 +.L2830: sub r2, r2, #1 - strh r2, [r8] @ movhi -.L2835: - add r9, r9, #1 - b .L2834 -.L2843: - add r6, r6, #1 - b .L2832 -.L2842: + strh r2, [r9] @ movhi +.L2821: + add r10, r10, #1 + b .L2820 +.L2829: + add r7, r7, #1 + b .L2818 +.L2828: bl FtlGcReFreshBadBlk -.L2833: +.L2819: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2846: +.L2832: .align 2 -.L2845: - .word .LANCHOR2-3056 - .word .LANCHOR2-3268 +.L2831: + .word .LANCHOR2-1520 + .word .LANCHOR2-1732 .word .LANCHOR2 - .word .LANCHOR4 + .word .LANCHOR4+1772 .word .LC147 - .word .LANCHOR4+236 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 2 @@ -17384,38 +17177,38 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2857 + ldr r2, .L2843 mov r3, r0, asl #1 stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r0 - ldr r1, [r2, #-2940] + ldr r1, [r2, #-1404] ldrh r3, [r1, r3] cmp r3, #0 - bne .L2848 - ldr r1, .L2857+4 + bne .L2834 + ldr r1, .L2843+4 ldrh r0, [r1] cmp r0, r4 mvneq r3, #0 streqh r3, [r1] @ movhi - beq .L2850 - sub r1, r2, #648 + beq .L2836 + add r1, r2, #888 ldrh r1, [r1] cmp r1, r4 - beq .L2856 - sub r1, r2, #600 + beq .L2842 + add r1, r2, #936 ldrh r1, [r1] cmp r1, r4 - beq .L2856 - sub r2, r2, #552 + beq .L2842 + add r2, r2, #984 ldrh r2, [r2] cmp r2, r4 - beq .L2856 -.L2850: + beq .L2842 +.L2836: mov r1, r4 - ldr r0, .L2857+8 + ldr r0, .L2843+8 bl List_remove_node - ldr r2, .L2857+12 + ldr r2, .L2843+12 mov r0, r4 ldrh r3, [r2] sub r3, r3, #1 @@ -17425,18 +17218,18 @@ update_vpc_list: bl FtlGcFreeBadSuperBlk mov r0, #1 ldmfd sp!, {r4, pc} -.L2848: +.L2834: bl List_update_data_list -.L2856: +.L2842: mov r0, #0 ldmfd sp!, {r4, pc} -.L2858: +.L2844: .align 2 -.L2857: +.L2843: .word .LANCHOR2 - .word .LANCHOR4-368 - .word .LANCHOR2-668 - .word .LANCHOR2-660 + .word .LANCHOR4+1168 + .word .LANCHOR2+868 + .word .LANCHOR2+876 .fnend .size update_vpc_list, .-update_vpc_list .align 2 @@ -17451,64 +17244,65 @@ decrement_vpc_count: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - beq .L2860 - ldr r5, .L2870 + beq .L2846 + ldr r5, .L2856 mov r6, r0, asl #1 - ldr r3, [r5, #-2940] + ldr r3, [r5, #-1404] ldrh r2, [r3, r6] cmp r2, #0 subne r2, r2, #1 strneh r2, [r3, r6] @ movhi - bne .L2860 + bne .L2846 mov r1, r4 - ldr r0, .L2870+4 + ldr r0, .L2856+4 bl printk - ldr r3, [r5, #-2940] + ldr r3, [r5, #-1404] mov r2, #32 - sub r0, r5, #656 + add r0, r5, #880 mov r1, r4 strh r2, [r3, r6] @ movhi bl test_node_in_list cmp r0, #0 - beq .L2862 + beq .L2848 mov r1, r4 - sub r0, r5, #656 + add r0, r5, #880 bl List_remove_node - sub r2, r5, #652 + add r2, r5, #884 mov r0, r4 ldrh r3, [r2] sub r3, r3, #1 strh r3, [r2] @ movhi bl INSERT_DATA_LIST - ldr r3, [r5, #-2940] - ldr r0, .L2870+8 + ldr r3, [r5, #-1404] + ldr r0, .L2856+8 mov r1, r4 ldrh r2, [r3, r6] bl printk -.L2862: +.L2848: mov r0, r4 bl FtlGcRefreshBlock - b .L2865 -.L2860: - ldr r5, .L2870+12 + b .L2851 +.L2846: + ldr r6, .L2856+12 + movw r5, #1752 movw r3, #65535 - ldrh r0, [r5, #216] + ldrh r0, [r6, r5] cmp r0, r3 - streqh r4, [r5, #216] @ movhi - beq .L2865 + streqh r4, [r6, r5] @ movhi + beq .L2851 cmp r0, r4 - beq .L2865 + beq .L2851 bl update_vpc_list - strh r4, [r5, #216] @ movhi + strh r4, [r6, r5] @ movhi adds r0, r0, #0 movne r0, #1 ldmfd sp!, {r4, r5, r6, pc} -.L2865: +.L2851: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2871: +.L2857: .align 2 -.L2870: +.L2856: .word .LANCHOR2 .word .LC148 .word .LC149 @@ -17522,201 +17316,202 @@ FtlRecoverySuperblock: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3032 + ldrh r3, [r0] movw r2, #65535 + mov r1, r0 + cmp r3, r2 + beq .L3002 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 r3, [r3] - mov r9, r0 - str r3, [sp, #60] - ldrh r3, [r0] - cmp r3, r2 - beq .L2874 ldrh r3, [r0, #2] str r3, [sp, #8] ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r1, [sp, #8] - str r3, [sp, #16] - ldr r3, .L3032+4 + ldr r0, [sp, #8] + str r3, [sp] + ldr r3, .L3017 ldrh r3, [r3] - cmp r3, r1 + cmp r3, r0 mov r3, #0 - streqh r3, [r0, #4] @ movhi - ldrneh r0, [r0, #16] - beq .L3024 -.L2876: + streqh r3, [r1, #4] @ movhi + streqb r3, [r1, #6] + ldrneh r0, [r1, #16] + beq .L2999 +.L2862: cmp r0, r2 add r3, r3, #1 - uxtheq r1, r3 - addeq r1, r9, r1, asl #1 - ldreqh r0, [r1, #16] - beq .L2876 -.L3027: - ldrb r1, [r9, #8] @ zero_extendqisi2 + uxtheq r0, r3 + addeq r0, r1, r0, asl #1 + ldreqh r0, [r0, #16] + beq .L2862 +.L3012: + mov r9, r1 + ldrb r1, [r1, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2878 + bne .L2864 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L2879 - ldr r3, .L3032+8 - ldrb r2, [r3, #3904] @ zero_extendqisi2 - cmp r2, #0 - addeq r3, r3, r0, asl #1 - ldreqh r5, [r3, #76] - beq .L2950 - b .L3017 -.L2878: + beq .L2865 + ldr r3, .L3017+4 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 + cmp r3, #0 + bne .L3003 + ldr r3, .L3017+8 + add r3, r3, r0, asl #1 + ldrh r6, [r3, #76] + b .L2936 +.L2864: mov r1, #0 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L2879 -.L3017: - mov r5, r4 -.L2950: - ldr r3, .L3032+12 + beq .L2865 +.L3003: + mov r6, r4 +.L2936: + ldr r3, .L3017+4 movw r8, #65535 - sub r2, r3, #3264 - sub r3, r3, #3184 + sub r2, r3, #1728 + sub r3, r3, #1648 ldr ip, [r3, #148] ldr lr, [r3, #216] ldrh r2, [r2, #-4] ldrh r7, [r3, #-4] add r3, r9, #14 str r3, [sp, #20] - str r2, [sp] + str r2, [sp, #4] mov r2, #0 mov r0, r3 - mov r6, r2 + mov r5, r2 mov r10, r2 - b .L2881 -.L2879: + b .L2867 +.L2865: mov r3, #0 strh r3, [r9, #2] @ movhi -.L3024: strb r3, [r9, #6] - b .L2874 -.L2883: + b .L2999 +.L2869: ldrh r3, [r0, #2]! cmp r3, r8 - beq .L2882 + beq .L2868 mov r1, #36 - orr r3, r5, r3, asl #10 - mla r1, r1, r6, ip + orr r3, r6, r3, asl #10 + mla r1, r1, r5, ip stmib r1, {r3, r10} - mul r3, r7, r6 - add r6, r6, #1 - uxth r6, r6 + mul r3, r7, r5 + add r5, r5, #1 + uxth r5, r5 add fp, r3, #3 cmp r3, #0 movlt r3, fp bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2882: +.L2868: add r2, r2, #1 -.L2881: - ldr r1, [sp] +.L2867: + ldr r1, [sp, #4] uxth r3, r2 cmp r3, r1 - bcc .L2883 + bcc .L2869 ldrb r3, [r9, #8] @ zero_extendqisi2 + ldr fp, .L3017+4 cmp r3, #1 movne r3, #0 - bne .L3018 - ldr r3, .L3032+8 - ldrb lr, [r3, #3904] @ zero_extendqisi2 + bne .L3004 + ldrb lr, [fp, #-2744] @ zero_extendqisi2 adds r3, lr, #0 movne r3, #1 -.L3018: - ldr r7, .L3032+12 - mov r1, r6 +.L3004: str r3, [sp, #24] - mov fp, #0 + mov r1, r5 ldr r2, [sp, #24] - movw r10, #65535 - ldr r0, [r7, #-3036] + mov r10, #0 + ldr r0, [fp, #-1500] bl FlashReadPages - ldr r3, [r7, #-3144] - str r7, [sp] + ldr r3, [fp, #-1608] + ldr r2, .L3017+4 str r3, [sp, #28] -.L2885: - uxth r8, fp - cmp r8, r6 - bcs .L2892 - mov r2, #36 - ldr r0, [r7, #-3036] - mul r2, r2, fp - add r1, r0, r2 - ldr r2, [r0, r2] - cmp r2, #0 - bne .L2886 - ldr r2, [r1, #12] - ldr r3, [r2, #4] - cmn r3, #1 - beq .L2887 - mov r0, r3 - ldr r1, [r7, #-3144] - str r2, [sp, #12] - str r3, [sp, #4] + movw r3, #65535 + str r3, [sp, #16] +.L2871: + uxth r7, r10 + cmp r7, r5 + bcs .L2878 + mov r1, #36 + ldr r0, [r2, #-1500] + mul r1, r1, r10 + add ip, r0, r1 + ldr r1, [r0, r1] + cmp r1, #0 + bne .L2872 + ldr ip, [ip, #12] + ldr r8, [ip, #4] + cmn r8, #1 + beq .L2873 + ldr r1, [r2, #-1608] + mov r0, r8 + str ip, [sp, #12] + str r2, [sp, #4] bl ftl_cmp_data_ver - ldr r3, [sp, #4] + ldr r2, [sp, #4] cmp r0, #0 - ldr r2, [sp, #12] - addne r3, r3, #1 - strne r3, [r7, #-3144] -.L2887: - ldr r2, [r2] - cmn r2, #1 - bne .L2888 -.L2892: - cmp r8, r6 - bne .L3014 + ldr ip, [sp, #12] + addne r8, r8, #1 + strne r8, [r2, #-1608] +.L2873: + ldr r1, [ip] + cmn r1, #1 + bne .L2874 +.L2878: + cmp r7, r5 + ldr r5, .L3017+4 + bne .L3000 add fp, r4, #1 uxth r3, fp str r3, [sp, #4] - ldr r3, .L3032+12 - ldr r3, [r3, #-3036] + ldr r3, [r5, #-1500] ldr r0, [r3, #4] - b .L3019 -.L2886: - ldr r0, .L3032+16 - uxth r10, r5 - ldr r1, [r1, #4] + b .L3005 +.L2872: + ldr r1, [ip, #4] + ldr r0, .L3017+12 + str r2, [sp, #4] bl printk - ldrh r2, [r9] - ldr r3, .L3032+20 - strh r2, [r3] @ movhi -.L2888: - add fp, fp, #1 - b .L2885 -.L3014: + uxth r3, r6 + ldrh r1, [r9] + str r3, [sp, #16] + ldr r2, [sp, #4] + ldr r3, .L3017+16 + strh r1, [r3] @ movhi +.L2874: + add r10, r10, #1 + b .L2871 +.L3000: uxth r3, r4 str r3, [sp, #4] - ldr r3, [sp] + ldr r3, [fp, #-1500] mov r2, #36 - ldr r3, [r3, #-3036] - mla r8, r2, r8, r3 - ldr r0, [r8, #4] -.L3019: + mla r7, r2, r7, r3 + ldr r0, [r7, #4] +.L3005: ubfx r0, r0, #10, #16 bl P2V_plane ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #1 str r0, [sp, #12] - bne .L2894 - ldr r2, .L3032+8 - ldrb r1, [r2, #3904] @ zero_extendqisi2 - cmp r1, #0 + bne .L2880 + ldrb r2, [r5, #-2744] @ zero_extendqisi2 + cmp r2, #0 ldreq r1, [sp, #4] + ldreq r2, .L3017+8 addeq r2, r2, r1, asl #1 ldreqh r2, [r2, #76] streq r2, [sp, #4] -.L2894: - ldr r2, .L3032+4 +.L2880: + ldr r2, .L3017 ldr r1, [sp, #4] ldr r0, [sp, #12] ldrh r2, [r2] @@ -17727,7 +17522,7 @@ FtlRecoverySuperblock: moveq r2, #0 streqb r2, [r9, #6] streqh r2, [r9, #4] @ movhi - ldrh r2, [sp, #16] + ldrh r2, [sp] str r2, [sp, #32] ldr ip, [sp, #32] ldr r2, [sp, #4] @@ -17735,219 +17530,218 @@ FtlRecoverySuperblock: cmpeq r0, ip moveq r0, r9 moveq r1, r2 - beq .L3025 + beq .L3010 clz r3, r3 ldr r2, [sp, #28] + ldr r1, [sp, #16] mov r3, r3, lsr #5 sub r2, r2, #1 str r2, [sp] movw r2, #65535 - cmp r10, r2 + cmp r1, r2 orrne r3, r3, #1 cmp r3, #0 - beq .L2898 - ldr r3, .L3032+24 - uxth r5, r5 - ldr fp, .L3032+12 - mvn r8, #0 - mov r7, r8 - ldr r2, [r3, #228] + beq .L2884 + ldr r3, .L3017+20 + uxth fp, r6 + ldr r8, .L3017+4 + mvn r7, #0 + mov r6, r7 + ldr r2, [r3, #1764] cmn r2, #1 ldreq r2, [sp] - streq r2, [r3, #228] - ldr r10, [r3, #228] + streq r2, [r3, #1764] + ldr r10, [r3, #1764] ldr r3, [sp, #8] add r3, r3, #7 - cmp r5, r3 - subgt r4, r5, #7 + cmp fp, r3 + subgt r4, fp, #7 ldrle r4, [sp, #8] uxthgt r4, r4 -.L2901: - cmp r4, r5 - bhi .L2914 - ldr r3, .L3032+28 +.L2887: + cmp r4, fp + bhi .L2900 + ldr r3, .L3017+24 mov r0, #36 - ldr lr, [fp, #-3036] + ldr lr, [r8, #-1500] ldr r1, [sp, #20] ldrh r3, [r3] str r3, [sp, #16] mov r3, #0 - mov r6, r3 -.L2915: + mov r5, r3 +.L2901: ldr ip, [sp, #16] uxth r2, r3 cmp r2, ip - bcs .L3028 + bcs .L3013 ldrh r2, [r1, #2]! movw ip, #65535 add r3, r3, #1 cmp r2, ip orrne r2, r4, r2, asl #10 - mlane ip, r0, r6, lr - addne r6, r6, #1 - uxthne r6, r6 + mlane ip, r0, r5, lr + addne r5, r5, #1 + uxthne r5, r5 strne r2, [ip, #4] - b .L2915 -.L3028: - mov r1, r6 + b .L2901 +.L3013: + mov r1, r5 ldr r2, [sp, #24] - ldr r0, [fp, #-3036] + ldr r0, [r8, #-1500] bl FlashReadPages - ldr r2, .L3032+8 - ldr r3, [fp, #-3036] - mov r1, #36 - add r2, r2, #588 - ldrb ip, [r2, #3316] @ zero_extendqisi2 - add r2, r2, r4, asl #1 - mla r6, r1, r6, r3 + ldr r3, [r8, #-1500] + mov r2, #36 + ldrb ip, [r8, #-2744] @ zero_extendqisi2 movw r1, #65535 -.L2904: - cmp r3, r6 - beq .L3029 + mla r5, r2, r5, r3 + ldr r2, .L3017+28 + add r2, r2, r4, asl #1 +.L2890: + cmp r3, r5 + beq .L3014 ldr r0, [r3] cmp r0, #0 - bne .L2905 + bne .L2891 ldr r0, [r3, #12] ldrh lr, [r0] cmp lr, r1 - beq .L2906 + beq .L2892 ldr r0, [r0, #4] cmn r0, #1 - beq .L2906 - ldr lr, .L3032+24 - cmn r8, #1 - ldr r7, [lr, #228] - str r0, [lr, #228] - bne .L2906 + beq .L2892 + ldr lr, .L3017+20 + cmn r7, #1 + ldr r6, [lr, #1764] + str r0, [lr, #1764] + bne .L2892 ldrh r0, [r2] cmp r0, r1 - bne .L2907 + bne .L2893 cmp ip, #0 - beq .L2906 -.L2907: + beq .L2892 +.L2893: ldr r0, [sp] - cmp r7, r0 - mvneq r8, #0 - movne r8, r7 - b .L2906 -.L2905: + cmp r6, r0 + mvneq r7, #0 + movne r7, r6 + b .L2892 +.L2891: ldrh r1, [r9] - movw r2, #270 - ldr r3, .L3032+24 + movw r2, #1806 + ldr r3, .L3017+20 strh r1, [r3, r2] @ movhi ldrb r2, [r9, #8] @ zero_extendqisi2 cmp r2, #0 - bne .L2898 - ldr r2, .L3032+32 + bne .L2884 + ldr r2, .L3017+28 mov r4, r4, asl #1 ldrh r1, [r2, r4] movw r2, #65535 cmp r1, r2 - bne .L2909 - cmn r8, #1 - strne r8, [r3, #228] - bne .L2898 + bne .L2895 + cmn r7, #1 + strne r7, [r3, #1764] + bne .L2884 ldr r2, [sp] cmp r10, r2 - strne r10, [r3, #228] - ldreq r2, [r3, #228] - bne .L2898 - b .L3026 -.L2909: + strne r10, [r3, #1764] + ldreq r2, [r3, #1764] + bne .L2884 + b .L3011 +.L2895: ldr r2, [sp] - cmp r7, r2 - beq .L2912 - cmn r7, #1 - strne r7, [r3, #228] - b .L2898 -.L2912: - ldr r2, [r3, #228] + cmp r6, r2 + beq .L2898 + cmn r6, #1 + strne r6, [r3, #1764] + b .L2884 +.L2898: + ldr r2, [r3, #1764] ldr r1, [sp] cmp r2, r1 - beq .L2898 -.L3026: + beq .L2884 +.L3011: sub r2, r2, #1 - b .L3020 -.L2906: + b .L3006 +.L2892: add r3, r3, #36 - b .L2904 -.L3029: + b .L2890 +.L3014: add r4, r4, #1 uxth r4, r4 - b .L2901 -.L2914: - ldr r3, .L3032+24 + b .L2887 +.L2900: + ldr r3, .L3017+20 mvn r2, #0 -.L3020: - str r2, [r3, #228] -.L2898: - ldr fp, .L3032+36 +.L3006: + str r2, [r3, #1764] +.L2884: + ldr fp, .L3017+32 mov r3, #1 ldr r10, [sp, #8] strh r3, [fp] @ movhi - sub fp, fp, #272 -.L2916: - ldr r3, .L3032+28 + sub fp, fp, #1808 +.L2902: + ldr r3, .L3017+4 movw lr, #65535 - ldr r5, [sp, #20] + ldr r2, .L3017+24 mov r1, #36 + ldr r5, [sp, #20] mov r4, #0 + ldr r7, [r3, #-1500] + ldrh r6, [r2] + ldrb r8, [r3, #-2744] @ zero_extendqisi2 str r4, [sp, #16] - ldrh r6, [r3] - ldr r3, .L3032+12 - ldr r7, [r3, #-3036] - ldr r3, .L3032+8 - ldrb r8, [r3, #3904] @ zero_extendqisi2 -.L2917: +.L2903: uxth r3, r4 cmp r3, r6 - bcs .L3030 + bcs .L3015 ldrh r3, [r5, #2]! cmp r3, lr - beq .L2918 + beq .L2904 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 .L2919 + bne .L2905 cmp r8, #0 orrne r3, r3, #-2147483648 strne r3, [r2, #4] -.L2919: +.L2905: ldr r3, [sp, #16] add ip, r3, #1 uxth r3, ip str r3, [sp, #16] -.L2918: +.L2904: add r4, r4, #1 - b .L2917 -.L3030: - ldr r4, .L3032+12 + b .L2903 +.L3015: + ldr r4, .L3017+4 ldr r1, [sp, #16] ldr r2, [sp, #24] - ldr r0, [r4, #-3036] + ldr r0, [r4, #-1500] bl FlashReadPages mov r3, #0 -.L3023: +.L3009: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L3031 + bcs .L3016 ldr r3, [sp, #28] mov r5, #36 - ldr r8, [r4, #-3036] + ldr r8, [r4, #-1500] mul r5, r5, r3 add r7, r8, r5 ldr r6, [r7, #4] ubfx r0, r6, #10, #16 - str r6, [sp, #56] + str r6, [sp, #60] bl P2V_plane ldr r3, [sp, #8] cmp r10, r3 - bcc .L2922 + bcc .L2908 ldr r3, [sp, #32] ldr r2, [sp, #8] cmp r0, r3 @@ -17956,80 +17750,80 @@ FtlRecoverySuperblock: cmp r10, r2 movne r3, #0 cmp r3, #0 - bne .L2922 + bne .L2908 ldr r3, [sp, #12] ldr r2, [sp, #4] cmp r0, r3 cmpeq r10, r2 - beq .L2923 + beq .L2909 ldr r3, [r8, r5] cmn r3, #1 - beq .L2924 + beq .L2910 ldr r7, [r7, #12] movw r3, #61589 ldrh r2, [r7] cmp r2, r3 ldrneh r0, [r9] - bne .L3021 + bne .L3007 ldr r3, [r7, #4] cmn r3, #1 str r3, [sp] - beq .L2926 + beq .L2912 mov r0, r3 - ldr r1, [r4, #-3144] + ldr r1, [r4, #-1608] bl ftl_cmp_data_ver cmp r0, #0 ldrne r3, [sp] addne r3, r3, #1 - strne r3, [r4, #-3144] -.L2926: + strne r3, [r4, #-1608] +.L2912: ldr r6, [r7, #8] - add r1, sp, #52 + add r1, sp, #56 ldr r3, [r7, #12] mov r2, #0 mov r0, r6 - str r3, [sp, #48] + str r3, [sp, #52] bl log2phys - ldr r1, [fp, #228] + ldr r1, [fp, #1764] cmn r1, #1 - beq .L2927 + beq .L2913 ldr r0, [sp] bl ftl_cmp_data_ver cmp r0, #0 - beq .L2927 - ldr r3, [sp, #48] + beq .L2913 + ldr r3, [sp, #52] cmn r3, #1 - beq .L2928 - ldr r0, [r4, #-3036] + beq .L2914 + ldr r0, [r4, #-1500] mov r2, #0 mov r1, #1 add r0, r0, r5 str r3, [r0, #4] ldr r8, [r0, #12] bl FlashReadPages - ldr r2, [r4, #-3036] + ldr r2, [r4, #-1500] ldr r3, [r8, #4] add ip, r2, r5 str r3, [sp, #36] ldr r3, [r2, r5] cmn r3, #1 - bne .L2929 - b .L2930 -.L2928: - ldr r3, [sp, #56] - ldr r2, [sp, #52] + bne .L2915 + b .L2916 +.L2914: + ldr r3, [sp, #60] + ldr r2, [sp, #56] cmp r2, r3 - bne .L2922 + bne .L2908 mov r0, r6 - add r1, sp, #48 + add r1, sp, #52 mov r2, #1 bl log2phys - b .L2922 -.L2929: + b .L2908 +.L2915: ldr r7, [r8, #8] cmp r7, r6 - bne .L2930 - ldr r0, [fp, #228] + bne .L2916 + ldr r0, [fp, #1764] ldr r1, [sp, #36] str r2, [sp, #44] str ip, [sp, #40] @@ -18037,233 +17831,228 @@ FtlRecoverySuperblock: cmp r0, #0 ldr ip, [sp, #40] ldr r2, [sp, #44] - beq .L2930 - ldr r3, [sp, #52] - ldr r1, [sp, #56] + beq .L2916 + ldr r3, [sp, #56] + ldr r1, [sp, #60] cmp r3, r1 - beq .L2935 - ldr r1, [sp, #48] + beq .L2921 + ldr r1, [sp, #52] cmp r3, r1 - beq .L2930 + beq .L2916 cmn r3, #1 streq r3, [r2, r5] - beq .L2934 + beq .L2920 str r3, [ip, #4] mov r0, ip mov r1, #1 mov r2, #0 ldr r8, [ip, #12] bl FlashReadPages -.L2934: - ldr r3, [r4, #-3036] +.L2920: + ldr r3, [r4, #-1500] ldr r3, [r3, r5] cmn r3, #1 - beq .L2935 + beq .L2921 ldr r5, [r8, #4] - ldr r0, [fp, #228] + ldr r0, [fp, #1764] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L2935 + beq .L2921 ldr r0, [sp, #36] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L2930 -.L2935: + beq .L2916 +.L2921: mov r0, r7 - ldr r1, [sp, #48] + ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L2930: +.L2916: mvn r3, #0 - str r3, [sp, #48] - b .L2937 -.L2927: - ldr r3, [sp, #56] - ldr r2, [sp, #52] + str r3, [sp, #52] + b .L2923 +.L2913: + ldr r3, [sp, #60] + ldr r2, [sp, #56] cmp r2, r3 - beq .L2937 - ldr r3, [sp, #48] + beq .L2923 + ldr r3, [sp, #52] cmn r3, #1 - beq .L2939 - ldr r2, [r4, #-3252] + beq .L2925 + ldr r2, [r4, #-1716] ubfx r3, r3, #10, #21 cmp r3, r2 - bcs .L2922 -.L2939: + bcs .L2908 +.L2925: mov r0, r6 - add r1, sp, #56 + add r1, sp, #60 mov r2, #1 bl log2phys - ldr r8, [sp, #52] + ldr r8, [sp, #56] cmn r8, #1 - beq .L2937 - ldr r3, [sp, #48] + beq .L2923 + ldr r3, [sp, #52] cmp r8, r3 - beq .L2937 + beq .L2923 ubfx r0, r8, #10, #16 - ldr r5, .L3032+40 + ldr r5, .L3017+36 bl P2V_block_in_plane ldrh r3, [r5] - add r5, r5, #648 + sub r5, r5, #888 cmp r3, r0 - beq .L2941 - sub r3, r5, #600 + beq .L2927 + add r3, r5, #936 ldrh r3, [r3] cmp r3, r0 - beq .L2941 - sub r3, r5, #552 + beq .L2927 + add r3, r5, #984 ldrh r3, [r3] cmp r3, r0 - bne .L2937 -.L2941: - ldr r0, [r5, #-3036] + bne .L2923 +.L2927: + ldr r0, [r5, #-1500] mov r1, #1 mov r2, #0 str r8, [r0, #4] ldr r7, [r0, #12] bl FlashReadPages - ldr r3, [r5, #-3036] + ldr r3, [r5, #-1500] ldr r1, [r7, #4] ldr r3, [r3] cmn r3, #1 - beq .L2937 + beq .L2923 ldr r0, [sp] bl ftl_cmp_data_ver cmp r0, #0 - bne .L2937 + bne .L2923 mov r0, r6 - add r1, sp, #52 + add r1, sp, #56 mov r2, #1 bl log2phys -.L2937: - ldr r0, [sp, #48] +.L2923: + ldr r0, [sp, #52] cmn r0, #1 - beq .L2922 + beq .L2908 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r4, #-2940] + ldr r2, [r4, #-1404] mov r3, r0, asl #1 mov r1, r0 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2942 -.L3021: + beq .L2928 +.L3007: bl decrement_vpc_count - b .L2922 -.L2942: - ldr r0, .L3032+44 + b .L2908 +.L2928: + ldr r0, .L3017+40 bl printk - b .L2922 -.L2924: + b .L2908 +.L2910: ldrh r2, [r9] mov r1, r6 - ldr r3, .L3032+20 - ldr r0, .L3032+48 + ldr r3, .L3017+16 + ldr r0, .L3017+44 strh r2, [r3] @ movhi ldr r2, [sp] bl printk - ldr r3, [fp, #276] + ldr r3, [fp, #1812] cmp r3, #31 addls r2, fp, r3, asl #2 addls r3, r3, #1 - strls r3, [fp, #276] - ldrls r1, [sp, #56] - strls r1, [r2, #280] + strls r3, [fp, #1812] + ldrls r1, [sp, #60] + strls r1, [r2, #1816] ldrh r0, [r9] bl decrement_vpc_count - ldr r3, .L3032+24 - ldr r3, [r3, #228] + ldr r3, .L3017+20 + ldr r3, [r3, #1764] cmn r3, #1 ldreq r3, [sp] - beq .L3022 + beq .L3008 ldr r2, [sp] cmp r3, r2 - bls .L2922 + bls .L2908 mov r3, r2 -.L3022: - str r3, [fp, #228] -.L2922: +.L3008: + str r3, [fp, #1764] +.L2908: ldr r3, [sp, #28] add r3, r3, #1 - b .L3023 -.L3031: + b .L3009 +.L3016: ldrb r3, [r9, #8] @ zero_extendqisi2 add r10, r10, #1 cmp r3, #1 uxth r10, r10 - bne .L2946 - ldr r3, .L3032+8 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + bne .L2932 + ldr r3, .L3017+4 + ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L2946 - ldr r3, .L3032+52 + beq .L2932 + ldr r3, .L3017+48 ldr r2, [sp, #4] ldrh r3, [r3] cmp r2, r10 cmpeq r3, r10 - beq .L2923 -.L2946: - ldr r2, .L3032+4 + beq .L2909 +.L2932: + ldr r2, .L3017 ldrh r3, [r2] cmp r10, r3 - bne .L2916 + bne .L2902 ldrh r1, [r2, #-68] movw r0, #65535 mov r3, #0 strh r10, [r9, #2] @ movhi strh r3, [r9, #4] @ movhi -.L2947: +.L2933: uxth r2, r3 cmp r2, r1 - bcs .L2874 + bcs .L2999 ldr lr, [sp, #20] add r3, r3, #1 ldrh ip, [lr, #2]! cmp ip, r0 str lr, [sp, #20] - beq .L2947 + beq .L2933 strb r2, [r9, #6] - b .L2874 -.L2923: + b .L2999 +.L2909: 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 -.L3025: +.L3010: ldr r2, [sp, #12] bl ftl_sb_update_avl_pages -.L2874: - ldr r3, .L3032 +.L2999: mov r0, #0 - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L2951 - bl __stack_chk_fail -.L2951: add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3033: +.L3002: + mov r0, #0 + bx lr +.L3018: .align 2 -.L3032: - .word __stack_chk_guard - .word .LANCHOR2-3200 - .word .LANCHOR0 +.L3017: + .word .LANCHOR2-1664 .word .LANCHOR2 + .word .LANCHOR0 .word .LC150 - .word .LANCHOR4+270 + .word .LANCHOR4+1806 .word .LANCHOR4 - .word .LANCHOR2-3268 - .word .LANCHOR0+588 - .word .LANCHOR4+272 - .word .LANCHOR2-648 + .word .LANCHOR2-1732 + .word .LANCHOR0+1100 + .word .LANCHOR4+1808 + .word .LANCHOR2+888 .word .LC151 .word .LC152 - .word .LANCHOR2-3198 + .word .LANCHOR2-1662 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 @@ -18284,16 +18073,16 @@ FtlSlcSuperblockCheck: ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} ldrb r3, [r0, #6] @ zero_extendqisi2 mov r4, r0 - ldr r5, .L3048 - ldr r7, .L3048+4 + ldr r5, .L3033 + ldr r6, .L3033+4 add r3, r0, r3, asl #1 - add r6, r5, #588 + ldr r7, .L3033+8 ldrh r3, [r3, #16] -.L3038: +.L3023: movw r1, #65535 cmp r3, r1 - bne .L3047 -.L3040: + bne .L3032 +.L3025: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -18308,19 +18097,19 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] - b .L3038 -.L3047: + b .L3023 +.L3032: ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L3041 - ldrb r3, [r5, #3904] @ zero_extendqisi2 + bne .L3026 + ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L3041 + bne .L3026 ldrh r3, [r4, #2] mov r3, r3, asl #1 ldrh r3, [r6, r3] cmp r3, r1 - bne .L3041 + bne .L3026 ldrh r3, [r4, #4] ldrh r0, [r4] sub r3, r3, #1 @@ -18328,25 +18117,24 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L3040 + bne .L3025 ldrh r3, [r4, #2] add r3, r3, #1 - b .L3046 -.L3041: - ldr r3, .L3048 - ldrb r3, [r3, #3904] @ zero_extendqisi2 - cmp r3, #0 + 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} - ldr r3, .L3048+8 + sub r2, r3, #1648 ldrh r1, [r4, #2] - sub r2, r3, #3184 ldrh r2, [r2, #-14] cmp r1, r2 ldmccfd sp!, {r3, r4, r5, r6, r7, pc} ldrh r2, [r4] - sub r3, r3, #3200 + sub r3, r3, #1664 ldr r0, [r3, #260] ldrh ip, [r4, #4] mov r2, r2, asl #1 @@ -18356,16 +18144,16 @@ FtlSlcSuperblockCheck: ldrh r3, [r3] mov r2, #0 strh r2, [r4, #4] @ movhi -.L3046: +.L3031: strh r3, [r4, #2] @ movhi strb r2, [r4, #6] ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3049: +.L3034: .align 2 -.L3048: - .word .LANCHOR0 - .word .LANCHOR2-3268 +.L3033: .word .LANCHOR2 + .word .LANCHOR0+1100 + .word .LANCHOR2-1732 .fnend .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 @@ -18381,19 +18169,19 @@ get_new_active_ppa: strb r3, [r0, #10] mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r7, .L3068 - ldr r8, .L3068+4 + ldr r7, .L3053 + ldr r8, .L3053+4 add r3, r0, r3, asl #1 - add r9, r7, #588 + ldr r9, .L3053+8 ldrh r2, [r3, #16] -.L3051: +.L3036: movw r1, #65535 cmp r2, r1 - ldr r6, .L3068+4 - bne .L3067 -.L3052: + ldr r6, .L3053 + bne .L3052 +.L3037: ldrb r3, [r4, #6] @ zero_extendqisi2 - ldrh r2, [r8] + ldrh r2, [r7] add r3, r3, #1 uxtb r3, r3 strb r3, [r4, #6] @@ -18406,35 +18194,35 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r2, [r3, #16] - b .L3051 -.L3067: + b .L3036 +.L3052: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r5, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L3054 - ldrb r0, [r7, #3904] @ zero_extendqisi2 + bne .L3039 + ldrb r0, [r8, #-2744] @ zero_extendqisi2 cmp r0, #0 - bne .L3054 + bne .L3039 mov r0, r5, asl #1 ldrh r0, [r9, r0] cmp r0, r1 - bne .L3054 + bne .L3039 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L3052 -.L3054: - ldr r7, .L3068 + b .L3037 +.L3039: + ldr r7, .L3053+4 orr r5, r5, r2, asl #10 sub r3, r3, #1 strh r3, [r4, #4] @ movhi -.L3055: +.L3040: ldrb r3, [r4, #6] @ zero_extendqisi2 movw r2, #65535 ldrh r0, [r6] -.L3057: +.L3042: add r3, r3, #1 uxtb r3, r3 cmp r3, r0 @@ -18445,42 +18233,41 @@ get_new_active_ppa: add r1, r4, r3, asl #1 ldrh r1, [r1, #16] cmp r1, r2 - beq .L3057 + beq .L3042 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L3062 - ldrb r3, [r7, #3904] @ zero_extendqisi2 - ldr r2, .L3068 + bne .L3047 + ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L3059 + bne .L3044 ldrh r3, [r4, #2] - add r1, r2, #588 + ldr r2, .L3053+8 mov r3, r3, asl #1 - ldrh r1, [r1, r3] + ldrh r2, [r2, r3] movw r3, #65535 - cmp r1, r3 - bne .L3059 + cmp r2, r3 + bne .L3044 ldrh r3, [r4, #4] cmp r3, #0 - beq .L3059 + beq .L3044 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L3055 -.L3059: - ldrb r3, [r2, #3904] @ zero_extendqisi2 - cmp r3, #0 - beq .L3062 - ldr r3, .L3068+8 + 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] - sub r2, r3, #3184 ldrh r2, [r2, #-14] cmp r1, r2 - bcc .L3062 + bcc .L3047 ldrh r2, [r4] - sub r3, r3, #3200 + sub r3, r3, #1664 ldr r0, [r3, #260] ldrh ip, [r4, #4] mov r2, r2, asl #1 @@ -18492,15 +18279,15 @@ get_new_active_ppa: strh r2, [r4, #4] @ movhi strb r2, [r4, #6] strh r3, [r4, #2] @ movhi -.L3062: +.L3047: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3069: +.L3054: .align 2 -.L3068: - .word .LANCHOR0 - .word .LANCHOR2-3268 +.L3053: + .word .LANCHOR2-1732 .word .LANCHOR2 + .word .LANCHOR0+1100 .fnend .size get_new_active_ppa, .-get_new_active_ppa .align 2 @@ -18508,125 +18295,113 @@ get_new_active_ppa: .type FtlWriteDumpData, %function FtlWriteDumpData: .fnstart - @ args = 0, pretend = 0, frame = 56 + @ 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} - .pad #60 - sub sp, sp, #60 - ldr r8, .L3090 - ldr r4, .L3090+4 - ldr r3, [r8] - str r8, [sp, #4] - str r3, [sp, #52] - ldr r3, [r4, #-2812] + .pad #44 + sub sp, sp, #44 + ldr r4, .L3074 + ldr r3, [r4, #-1276] cmp r3, #0 - bne .L3070 - sub r7, r4, #648 + bne .L3055 + add r7, r4, #888 ldrh r5, [r7, #4] cmp r5, #0 - beq .L3072 - ldrb r3, [r4, #-640] @ zero_extendqisi2 + beq .L3057 + ldrb r3, [r4, #896] @ zero_extendqisi2 cmp r3, #0 - bne .L3072 - sub r3, r4, #3200 - ldrb r2, [r4, #-641] @ zero_extendqisi2 + bne .L3057 + sub r3, r4, #1664 + ldrb r2, [r4, #895] @ zero_extendqisi2 ldrh r3, [r3] mul r3, r3, r2 cmp r5, r3 - beq .L3072 - ldrb r9, [r4, #-638] @ zero_extendqisi2 - sub r3, r4, #3264 - ldr r6, [r4, #-2816] - cmp r9, #0 - ldrh r10, [r3, #-4] - bne .L3070 + beq .L3057 + ldrb r8, [r4, #898] @ zero_extendqisi2 + sub r3, r4, #1728 + ldr r6, [r4, #-1280] + cmp r8, #0 + ldrh r9, [r3, #-4] + bne .L3055 sub r6, r6, #1 - add r1, sp, #12 - mov r2, r9 + mov r1, sp + mov r2, r8 mov r0, r6 bl log2phys - ldr r5, [r4, #-2976] - ldr r0, [r4, #-3008] - ldr r3, [sp, #12] - str r6, [sp, #32] + ldr r5, [r4, #-1440] + ldr r0, [r4, #-1472] + ldr r3, [sp] + str r6, [sp, #20] cmn r3, #1 - str r0, [sp, #24] - str r3, [sp, #20] - str r5, [sp, #28] - str r9, [r5, #4] - beq .L3074 + str r0, [sp, #12] + str r3, [sp, #8] + str r5, [sp, #16] + str r8, [r5, #4] + beq .L3059 mov r1, #1 - mov r2, r9 - add r0, sp, #16 + mov r2, r8 + add r0, sp, #4 bl FlashReadPages - b .L3075 -.L3074: - sub r3, r4, #3184 + b .L3060 +.L3059: + sub r3, r4, #1648 mov r1, #255 ldrh r2, [r3, #-6] bl ftl_memset -.L3075: - ldr r3, .L3090+8 - mov r9, #0 - ldr r8, .L3090+4 - mov r10, r10, asl #2 - mov fp, r9 +.L3060: + ldr r3, .L3074+4 + mov r8, #0 + ldr fp, .L3074 + mov r9, r9, asl #2 + mov r10, r8 strh r3, [r5] @ movhi -.L3076: - cmp r9, r10 - beq .L3077 +.L3061: + cmp r8, r9 + beq .L3062 ldrh r3, [r7, #4] - ldr r0, .L3090+12 + ldr r0, .L3074+8 cmp r3, #0 - beq .L3077 - ldr r3, [sp, #20] - add r9, r9, #1 + beq .L3062 + ldr r3, [sp, #8] + add r8, r8, #1 str r6, [r5, #8] str r3, [r5, #12] ldrh r3, [r0] strh r3, [r5, #2] @ movhi bl get_new_active_ppa - ldr r3, [r8, #-3144] + ldr r3, [fp, #-1608] mov r2, #0 mov r1, #1 - str r0, [sp, #20] - add r0, sp, #16 + str r0, [sp, #8] + add r0, sp, #4 str r3, [r5, #4] add r3, r3, #1 cmn r3, #1 - moveq r3, fp - str r3, [r8, #-3144] + moveq r3, r10 + str r3, [fp, #-1608] mov r3, r2 bl FlashProgPages ldrh r0, [r7] bl decrement_vpc_count - b .L3076 -.L3077: + b .L3061 +.L3062: mov r3, #1 - b .L3089 -.L3072: + b .L3073 +.L3057: mov r3, #0 -.L3089: - strb r3, [r4, #-638] -.L3070: - ldr r3, [sp, #4] - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L3081 - bl __stack_chk_fail -.L3081: - add sp, sp, #60 +.L3073: + strb r3, [r4, #898] +.L3055: + add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3091: +.L3075: .align 2 -.L3090: - .word __stack_chk_guard +.L3074: .word .LANCHOR2 .word -3947 - .word .LANCHOR2-648 + .word .LANCHOR2+888 .fnend .size FtlWriteDumpData, .-FtlWriteDumpData .align 2 @@ -18640,31 +18415,31 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData mov r4, #0 - ldr r6, .L3098 + ldr r6, .L3082 mov r7, #12 - ldr r5, .L3098+4 -.L3093: + ldr r5, .L3082+4 +.L3077: ldrh r3, [r5] uxth r0, r4 cmp r3, r0 - bls .L3097 - ldr r3, [r6, #-2896] + bls .L3081 + ldr r3, [r6, #-1360] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L3094 + bge .L3078 bl flush_l2p_region -.L3094: +.L3078: add r4, r4, #1 - b .L3093 -.L3097: + b .L3077 +.L3081: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3099: +.L3083: .align 2 -.L3098: +.L3082: .word .LANCHOR2 - .word .LANCHOR2-3162 + .word .LANCHOR2-1626 .fnend .size l2p_flush, .-l2p_flush .align 2 @@ -18674,110 +18449,98 @@ FtlSuperblockPowerLostFix: .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} - .pad #44 - sub sp, sp, #44 - ldr r8, .L3118 - ldr r5, .L3118+4 - ldr r3, [r8] - str r3, [sp, #36] - ldr r3, [r5, #-2812] + 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, .L3101 + ldr r3, [r5, #-1276] cmp r3, #0 - bne .L3100 - ldr r2, .L3118+8 - mov r4, r0 - ldrb r6, [r2, #3904] @ zero_extendqisi2 + bne .L3084 + ldrb r6, [r5, #-2744] @ zero_extendqisi2 cmp r6, #0 - beq .L3117 + beq .L3100 ldrb r6, [r0, #8] @ zero_extendqisi2 cmp r6, #1 - ldreqh fp, [r0, #4] - beq .L3102 + ldreqh r10, [r0, #4] + beq .L3086 mov r6, r3 -.L3117: - mov fp, #12 -.L3102: - ldr r7, [r5, #-2976] +.L3100: + mov r10, #12 +.L3086: + ldr r7, [r5, #-1440] mvn r3, #0 - str r3, [sp, #16] - mov r9, #0 - ldr r3, [r5, #-3008] + str r3, [sp, #20] + mov r8, #0 + ldr r3, [r5, #-1472] movw r2, #61589 - str r7, [sp, #12] - ldr r10, .L3118+4 - str r3, [sp, #8] + str r7, [sp, #16] + mov r4, r0 + ldr r9, .L3101 + str r3, [sp, #12] mvn r3, #2 str r3, [r7, #8] mvn r3, #1 str r3, [r7, #12] - ldrh r3, [r4] - strh r9, [r7] @ movhi + ldrh r3, [r0] + strh r8, [r7] @ movhi strh r3, [r7, #2] @ movhi - ldr r3, [r5, #-3008] + ldr r3, [r5, #-1472] str r2, [r3] - ldr r2, .L3118+12 - ldr r3, [r5, #-3008] + ldr r2, .L3101+4 + ldr r3, [r5, #-1472] str r2, [r3, #4] -.L3103: - subs fp, fp, #1 - bcc .L3106 +.L3087: + subs r10, r10, #1 + bcc .L3090 ldrh r3, [r4, #4] cmp r3, #0 - bne .L3104 -.L3106: + bne .L3088 +.L3090: ldrh r3, [r4] - ldr r1, [r5, #-2940] + ldr r1, [r5, #-1404] ldrh r0, [r4, #4] mov r3, r3, asl #1 ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L3118+16 + ldr r3, .L3101+8 ldrh r3, [r3] strh r3, [r4, #2] @ movhi mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - b .L3100 -.L3104: + b .L3084 +.L3088: mov r0, r4 bl get_new_active_ppa cmn r0, #1 - str r0, [sp, #4] - beq .L3106 - ldr r3, [r5, #-3144] + str r0, [sp, #8] + beq .L3090 + ldr r3, [r5, #-1608] mov r1, #1 mov r2, r6 - mov r0, sp + add r0, sp, #4 str r3, [r7, #4] add r3, r3, #1 cmn r3, #1 - moveq r3, r9 - str r3, [r10, #-3144] + moveq r3, r8 + str r3, [r9, #-1608] mov r3, #0 bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L3103 -.L3100: - ldr r2, [sp, #36] - ldr r3, [r8] - cmp r2, r3 - beq .L3110 - bl __stack_chk_fail -.L3110: - add sp, sp, #44 + b .L3087 +.L3084: + add sp, sp, #40 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3119: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L3102: .align 2 -.L3118: - .word __stack_chk_guard +.L3101: .word .LANCHOR2 - .word .LANCHOR0 .word 305419896 - .word .LANCHOR2-3200 + .word .LANCHOR2-1664 .fnend .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 @@ -18791,106 +18554,97 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r5, #0 - ldr r7, .L3137 - ldr r4, .L3137+4 - ldr r1, .L3137+8 - ldr r3, [r7] - ldr r0, .L3137+12 - mov r6, r4 - str r3, [sp, #4] + ldr r4, .L3120 + ldr r1, .L3120+4 + ldr r0, .L3120+8 bl printk - sub r3, r4, #3248 - ldr r0, [r4, #-2944] + sub r3, r4, #1712 + ldr r0, [r4, #-1408] mov r1, #0 ldrh r2, [r3, #-10] + mov r6, r4 mov r2, r2, asl #1 bl ftl_memset -.L3121: - ldr r3, [r4, #-2816] +.L3104: + ldr r3, [r4, #-1280] cmp r5, r3 - bcs .L3135 + bcs .L3118 mov r0, r5 - mov r1, sp + add r1, sp, #4 mov r2, #0 bl log2phys - ldr r0, [sp] + ldr r0, [sp, #4] cmn r0, #1 - beq .L3122 + beq .L3105 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r6, #-2944] + ldr r2, [r6, #-1408] mov r0, r0, asl #1 ldrh r3, [r2, r0] add r3, r3, #1 strh r3, [r2, r0] @ movhi -.L3122: +.L3105: add r5, r5, #1 - b .L3121 -.L3135: - ldr r6, .L3137+4 - mov r8, #0 - ldr r9, .L3137+16 -.L3124: - ldrh r3, [r9] - uxth r4, r8 + b .L3104 +.L3118: + ldr r6, .L3120 + mov r7, #0 + ldr r8, .L3120+12 + add r9, r6, #888 +.L3107: + ldrh r3, [r8] + uxth r4, r7 cmp r3, r4 - bls .L3136 - ldr r3, [r6, #-2940] + bls .L3119 + ldr r3, [r6, #-1404] mov r5, r4, asl #1 movw r1, #65535 ldrh r2, [r3, r5] - ldr r3, [r6, #-2944] + ldr r3, [r6, #-1408] ldrh r3, [r3, r5] - cmp r2, r3 - cmpne r2, r1 - beq .L3126 - ldr r0, .L3137+20 + cmp r2, r1 + cmpne r2, r3 + beq .L3108 + ldrh r1, [r9] + cmp r1, r4 + beq .L3108 + ldr r1, .L3120+16 + ldrh r0, [r1] + cmp r0, r4 + beq .L3108 + ldrh r1, [r1, #-48] + cmp r1, r4 + beq .L3108 + ldr r0, .L3120+20 mov r1, r4 bl printk - ldr r3, .L3137+24 - ldrh r2, [r3] - cmp r2, r4 - beq .L3126 - ldrh r2, [r3, #96] - cmp r2, r4 - beq .L3126 - ldrh r3, [r3, #48] - cmp r3, r4 - beq .L3126 - ldr r3, [r6, #-2940] + ldr r3, [r6, #-1404] ldrh r2, [r3, r5] cmp r2, #0 - ldr r2, [r6, #-2944] + ldr r2, [r6, #-1408] ldrh r2, [r2, r5] strh r2, [r3, r5] @ movhi - beq .L3126 + beq .L3108 mov r0, r4 bl update_vpc_list -.L3126: - add r8, r8, #1 - b .L3124 -.L3136: +.L3108: + add r7, r7, #1 + b .L3107 +.L3119: bl l2p_flush bl FtlVpcTblFlush - ldr r2, [sp, #4] - ldr r3, [r7] - cmp r2, r3 - beq .L3130 - bl __stack_chk_fail -.L3130: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3138: +.L3121: .align 2 -.L3137: - .word __stack_chk_guard +.L3120: .word .LANCHOR2 .word .LANCHOR3+84 .word .LC48 - .word .LANCHOR2-3260 + .word .LANCHOR2-1724 + .word .LANCHOR2+984 .word .LC153 - .word .LANCHOR2-648 .fnend .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 @@ -18902,99 +18656,99 @@ 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, .L3166 + ldr r5, .L3149 ldrh r7, [r0] - ldr r3, [r5, #-2812] + ldr r3, [r5, #-1276] cmp r3, #0 - bne .L3140 + bne .L3123 movw r3, #65535 cmp r7, r3 mov r4, r0 - beq .L3141 - ldr r2, [r5, #-2940] + beq .L3124 + ldr r2, [r5, #-1404] mov r3, r7, asl #1 mov r0, r7 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3142 + beq .L3125 bl INSERT_DATA_LIST - b .L3141 -.L3142: + b .L3124 +.L3125: bl INSERT_FREE_LIST -.L3141: +.L3124: mov r3, #0 strb r3, [r4, #8] - ldr r3, .L3166 - sub r2, r3, #600 + ldr r3, .L3149 + add r2, r3, #936 cmp r4, r2 - beq .L3143 - sub r2, r3, #3248 + beq .L3126 + sub r2, r3, #1712 ldrh r2, [r2] cmp r2, #1 - beq .L3143 - ldr r1, .L3166+4 - ldrb r1, [r1, #3904] @ zero_extendqisi2 + beq .L3126 + ldrb r1, [r3, #-2744] @ zero_extendqisi2 cmp r1, #0 - beq .L3144 -.L3143: + beq .L3127 +.L3126: mov r3, #1 strb r3, [r4, #8] - b .L3145 -.L3144: - sub r1, r3, #648 + b .L3128 +.L3127: + add r1, r3, #888 cmp r4, r1 - bne .L3145 + bne .L3128 cmp r2, #3 - beq .L3147 - ldr r3, [r3, #-3152] + beq .L3130 + ldr r3, [r3, #-1616] cmp r3, #1 - bne .L3148 -.L3147: + bne .L3131 +.L3130: mov r3, #1 - strb r3, [r5, #-640] -.L3148: - ldr r2, [r5, #-3336] - ldr r3, .L3166 + strb r3, [r5, #896] +.L3131: + ldr r2, [r5, #-1800] + ldr r3, .L3149 cmp r2, #0 - beq .L3145 - ldr r2, [r3, #-3100] + beq .L3128 + ldr r2, [r3, #-1564] cmp r2, #39 movls r2, #1 - strlsb r2, [r3, #-640] -.L3145: - ldr r3, .L3166+8 + strlsb r2, [r3, #896] +.L3128: + ldr r3, .L3149+4 + movw r2, #1752 + ldrh r0, [r3, r2] movw r2, #65535 - ldrh r0, [r3, #216] mov r6, r3 cmp r0, r2 - beq .L3150 + beq .L3133 cmp r7, r0 - bne .L3151 - ldr r2, [r5, #-2940] + bne .L3134 + ldr r2, [r5, #-1404] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3152 -.L3151: + beq .L3135 +.L3134: bl update_vpc_list -.L3152: - mvn r3, #0 - strh r3, [r6, #216] @ movhi -.L3150: +.L3135: + movw r3, #1752 + mvn r2, #0 + strh r2, [r6, r3] @ movhi +.L3133: mov r0, r4 bl allocate_data_superblock bl l2p_flush mov r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3140: +.L3123: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3167: +.L3150: .align 2 -.L3166: +.L3149: .word .LANCHOR2 - .word .LANCHOR0 .word .LANCHOR4 .fnend .size allocate_new_data_superblock, .-allocate_new_data_superblock @@ -19003,121 +18757,111 @@ allocate_new_data_superblock: .type FtlReadRefresh, %function FtlReadRefresh: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ 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} - .pad #52 - sub sp, sp, #52 - ldr r8, .L3186 - ldr r6, .L3186+4 - ldr r5, .L3186+8 - ldr fp, [r8, #-240] - mov r7, r8 - ldr r3, [r6] - cmp fp, #0 - str r3, [sp, #44] - beq .L3169 - ldr r2, [r8, #-236] - ldr r3, [r5, #-2816] + 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 r7, .L3168 + ldr r5, .L3168+4 + ldr r10, [r7, #1296] + mov r6, r7 + cmp r10, #0 + beq .L3152 + ldr r2, [r7, #1300] + ldr r3, [r5, #-1280] cmp r2, r3 - bcs .L3170 + bcs .L3153 mov r4, #2048 -.L3175: - ldr r0, [r7, #-236] - ldr r3, [r5, #-2816] +.L3158: + ldr r0, [r6, #1300] + ldr r3, [r5, #-1280] cmp r0, r3 - bcs .L3174 + bcs .L3157 mov r2, #0 - add r1, sp, #4 + mov r1, sp bl log2phys - ldr r3, [r8, #-236] + ldr r3, [r7, #1300] add r3, r3, #1 - str r3, [r8, #-236] - ldr r2, [sp, #4] + str r3, [r7, #1300] + ldr r2, [sp] cmn r2, #1 - beq .L3173 - add r0, sp, #48 - str r2, [sp, #12] + beq .L3156 + add r0, sp, #40 + str r2, [sp, #8] mov r1, #1 mov r2, #0 - str r2, [r0, #-40]! - str r3, [sp, #24] + str r2, [r0, #-36]! + str r3, [sp, #20] + str r2, [sp, #12] str r2, [sp, #16] - str r2, [sp, #20] bl FlashReadPages - ldr r3, [sp, #8] + ldr r3, [sp, #4] cmp r3, #256 - bne .L3174 - ldr r0, [sp, #4] + bne .L3157 + ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3174: +.L3157: mvn r0, #0 - b .L3177 -.L3173: + b .L3160 +.L3156: subs r4, r4, #1 - bne .L3175 - b .L3174 -.L3170: - ldr r3, [r5, #-3120] + bne .L3158 + b .L3157 +.L3153: + ldr r3, [r5, #-1584] mov r0, #0 - str r0, [r8, #-240] - str r0, [r8, #-236] - str r3, [r8, #-244] - b .L3177 -.L3169: - ldr r1, [r5, #-3104] + str r0, [r7, #1296] + str r0, [r7, #1300] + str r3, [r7, #1292] + b .L3160 +.L3152: + ldr r1, [r5, #-1568] movw r4, #10000 - ldr r10, [r5, #-3120] - sub r5, r5, #716 + ldr r9, [r5, #-1584] + add r5, r5, #820 cmp r1, r4 - ldr r9, [r8, #-244] - add r2, r10, #1048576 + ldr r8, [r7, #1292] + add r2, r9, #1048576 ldr r3, [r5, #-2100] movhi r4, #31 movls r4, #63 - cmp r9, r2 - bhi .L3179 + cmp r8, r2 + bhi .L3162 mov r1, r1, lsr #10 mov r0, #1000 mul r0, r0, r3 add r1, r1, #1 bl __aeabi_uidiv - add r0, r0, r9 - cmp r0, r10 - bcc .L3179 + add r0, r0, r8 + cmp r0, r9 + bcc .L3162 ldrh r3, [r5, #28] ands r0, r4, r3 - movne r0, fp - bne .L3177 - ldr r2, [r8, #-220] + movne r0, r10 + bne .L3160 + ldr r2, [r7, #1316] cmp r2, r3 - beq .L3177 -.L3179: + beq .L3160 +.L3162: ldrh r3, [r5, #28] mov r0, #0 - str r10, [r7, #-244] - str r0, [r7, #-236] - str r3, [r7, #-220] + str r9, [r6, #1292] + str r0, [r6, #1300] + str r3, [r6, #1316] mov r3, #1 - str r3, [r7, #-240] -.L3177: - ldr r2, [sp, #44] - ldr r3, [r6] - cmp r2, r3 - beq .L3180 - bl __stack_chk_fail -.L3180: - add sp, sp, #52 + str r3, [r6, #1296] +.L3160: + add sp, sp, #40 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3187: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L3169: .align 2 -.L3186: +.L3168: .word .LANCHOR4 - .word __stack_chk_guard .word .LANCHOR2 .fnend .size FtlReadRefresh, .-FtlReadRefresh @@ -19126,411 +18870,407 @@ FtlReadRefresh: .type ftl_do_gc, %function ftl_do_gc: .fnstart - @ args = 0, pretend = 0, frame = 40 + @ 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 #52 - sub sp, sp, #52 - ldr r4, .L3353 - ldr r3, .L3353+4 - str r0, [sp, #20] - ldr r0, [r4, #-2812] - ldr r3, [r3] - cmp r0, #0 - str r3, [sp, #44] - movne r0, #0 - bne .L3189 - ldr r3, .L3353+8 - ldr r2, [r3, #3284] - cmn r2, #1 - beq .L3189 - ldr r5, [r4, #-3096] - cmp r5, #0 - bne .L3189 - sub r2, r4, #660 + .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, r5 - bls .L3189 - movw r2, #3288 - mov r10, r1 - ldrh r2, [r3, r2] - movw r3, #65535 - mov r7, r4 - cmp r2, r3 - bne .L3190 -.L3193: - ldr r5, .L3353+12 + 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 r4, [r5, #-14] - cmp r4, r1 - bne .L3191 - b .L3192 -.L3190: - sub r4, r4, #552 - ldrh r2, [r4] - cmp r2, r3 - beq .L3193 + 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 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L3193 + beq .L3175 mov r0, #1 - b .L3189 -.L3191: - mov r3, r5 + b .L3323 +.L3173: + mov r3, r4 ldrh r2, [r3, #-16]! cmp r2, r1 - bne .L3192 - ldrh r0, [r5, #-12] + bne .L3174 + ldrh r0, [r4, #-12] cmp r0, r2 - beq .L3192 - ldrh r1, [r5, #-10] + beq .L3174 + ldrh r1, [r4, #-10] cmp r1, r2 - strneh r4, [r3] @ movhi - strneh r0, [r5, #-14] @ movhi + strneh ip, [r3] @ movhi + strneh r0, [r4, #-14] @ movhi mvnne r3, #0 - strneh r1, [r5, #-12] @ movhi - strneh r3, [r5, #-10] @ movhi -.L3192: + strneh r1, [r4, #-12] @ movhi + strneh r3, [r4, #-10] @ movhi +.L3174: ldr r2, [sp, #20] - ldr r3, [r7, #-3080] + ldr r7, [r5, #-1544] cmp r2, #1 - ldr r6, .L3353+16 - add r3, r3, #1 - add r3, r3, r2, asl #7 - str r3, [r7, #-3080] - bne .L3204 - ldr r2, .L3353 - ldr r2, [r2, #-3336] + 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] cmp r2, #0 - bne .L3195 - ldr r2, .L3353+20 - ldrb r2, [r2, #3904] @ zero_extendqisi2 - cmp r2, #0 - beq .L3204 -.L3195: - ldr r2, [r7, #-3100] - ldr r4, .L3353 - cmp r2, #39 - bhi .L3204 - ldr r8, .L3353+24 - ldrh r2, [r8] - add r3, r3, r2 - str r3, [r4, #-3080] + 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] bl FtlGcReFreshBadBlk - ldrh r1, [r6] - movw r3, #65535 - cmp r1, r3 - bne .L3204 - sub r3, r4, #3072 - ldrh r3, [r3] - cmp r3, r1 - bne .L3204 - ldr r3, [r4, #-3080] + ldrh r3, [r6] + movw r2, #65535 + cmp r3, r2 + bne .L3186 + sub r2, r10, #1536 + ldrh r2, [r2] + cmp r2, r3 + bne .L3186 + ldr r3, [r10, #-1544] + add r10, r10, #884 cmp r3, #1024 - sub r3, r4, #652 - bhi .L3196 - ldrh r2, [r3] - cmp r2, #63 - bhi .L3204 -.L3196: - ldrh ip, [r3] - mov r1, #0 - ldrh r3, [r5, #-6] - ldr r0, .L3353+24 - add r3, r3, #64 - strh r1, [r8] @ movhi - cmp ip, r3 - ldr r2, .L3353 - bgt .L3204 - ldr r3, [r2, #-3100] - str r1, [r2, #-3080] - cmp r3, r1 - moveq r3, #6 - beq .L3344 - cmp r3, #5 - bhi .L3198 - mov r3, #18 -.L3344: - strh r3, [r0] @ movhi -.L3198: + bhi .L3178 + ldrh r3, [r10] + 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: mov r0, #32 bl List_get_gc_head_node - movw ip, #65535 - uxth r2, r0 - cmp r2, ip - beq .L3203 - ldrh r0, [r5, #-4] - ldr r8, .L3353 + movw r3, #65535 + uxth r10, r0 + cmp r10, r3 + beq .L3185 + ldrh r0, [r4, #-4] + ldr r7, .L3333 cmp r0, #0 - sub r9, r8, #3056 - beq .L3200 - sub r1, r8, #3184 - ldr r3, [r8, #-2940] - mov r2, r2, asl #1 - ldrh r4, [r1, #-14] - sub r1, r8, #3264 - ldrh lr, [r3, r2] + 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, r4 + mul r1, r1, fp add r1, r1, #1 cmp lr, r1 - bgt .L3203 + bgt .L3185 add r1, r0, #1 - str r2, [sp, #28] - str ip, [sp, #24] - mov fp, #0 + str r3, [sp, #28] + str r2, [sp, #24] + mov r3, #0 uxth r1, r1 - str r3, [sp, #16] - strh r1, [r9, #-4] @ movhi - str r1, [sp, #12] - str fp, [r8, #-3092] + str r3, [r7, #-1556] + strh r1, [r8, #-4] @ movhi + str r1, [sp, #16] bl List_get_gc_head_node - ldr ip, [sp, #24] - uxth r4, r0 - ldr r1, [sp, #12] - cmp r4, ip - ldr r3, [sp, #16] - ldr r2, [sp, #28] - beq .L3203 - mov ip, r4, asl #1 - ldr r0, .L3353+28 - str ip, [sp, #12] - ldrh lr, [r3, ip] - ldrh r3, [r3, r2] - mov r2, r4 - str r3, [sp] - mov r3, lr + 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 bl printk - ldrh r3, [r9, #-4] + ldrh r3, [r8, #-4] cmp r3, #40 - ldr ip, [sp, #12] - bls .L3201 - ldr r3, [r8, #-2940] - ldrh r3, [r3, ip] + bls .L3183 + ldr r3, [r7, #-1404] + ldrh r3, [r3, r9] cmp r3, #32 - strhih fp, [r9, #-4] @ movhi -.L3201: - ldr r3, .L3353+24 - mov r2, #6 - strh r2, [r3] @ movhi - b .L3205 -.L3200: + 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: mov r3, #1 - strh r3, [r9, #-4] @ movhi -.L3203: + strh r3, [r8, #-4] @ movhi +.L3185: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 - mov r4, r0 - bne .L3205 - ldr r3, .L3353+24 + mov fp, r0 + bne .L3187 + movw r3, #1944 mov r2, #0 - strh r2, [r3] @ movhi -.L3204: - ldrh r3, [r6] - movw r4, #65535 - cmp r3, r4 - bne .L3205 - ldr r8, .L3353 - sub r2, r8, #552 - ldrh r4, [r2] - cmp r4, r3 - movne r4, r3 - beq .L3349 -.L3205: + strh r2, [r9, r3] @ movhi +.L3186: + ldrh r9, [r6] movw r0, #65535 - rsb r3, r0, r4 + 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 clz r3, r3 ldr r2, [sp, #20] mov r3, r3, lsr #5 cmp r2, #0 - movne ip, #0 - andeq ip, r3, #1 - cmp ip, #0 - beq .L3218 - ldr r3, .L3353+32 - ldrh r2, [r3] - cmp r2, #24 - movhi fp, #1 - bhi .L3219 - ldr r3, .L3353+36 - cmp r2, #16 - ldrhih r3, [r3] - movhi fp, r3, lsr #5 - bhi .L3219 - cmp r2, #12 - ldrhih r3, [r3] - movhi fp, r3, lsr #4 - bhi .L3219 - cmp r2, #8 - ldrhih r3, [r3] - ldrlsh fp, [r3] - movhi fp, r3, lsr #2 -.L3219: - ldrh r3, [r5, #-8] - ldr r1, .L3353 - cmp r3, r2 - bcs .L3223 - sub r3, r1, #552 - movw r2, #65535 - ldrh r3, [r3] - cmp r3, r2 - bne .L3224 - sub r2, r1, #3072 - ldrh r2, [r2] - cmp r2, r3 - bne .L3224 - ldr r3, .L3353+24 - ldrh r0, [r3] + movne r0, #0 + andeq r0, r3, #1 cmp r0, #0 - bne .L3225 - ldr r3, [r1, #-2816] - ldr r2, [r1, #-408] + beq .L3200 + ldr r3, .L3333+24 + 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 r0, r3 + bne .L3206 + movw r3, #1944 + ldrh r0, [r1, r3] + cmp r0, #0 + bne .L3207 + ldr r3, [r2, #-1280] + ldr r2, [r2, #1128] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movcs r3, #18 - bcs .L3226 -.L3225: - ldr r3, .L3353+40 - ldrh r3, [r3] + bcs .L3208 +.L3207: + movw r3, #1164 + ldrh r3, [r1, r3] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3226: - strh r3, [r5, #-8] @ movhi +.L3208: + strh r3, [r4, #-8] @ movhi mov r3, #0 - str r3, [r7, #-3092] - b .L3189 -.L3224: - ldr r3, .L3353+40 - ldrh r3, [r3] + str r3, [r5, #-1556] + b .L3323 +.L3206: + movw r3, #1164 + ldrh r3, [r1, r3] add r3, r3, r3, asl #1 mov r3, r3, asr #2 - strh r3, [r5, #-8] @ movhi -.L3223: - cmp r10, #2 - ldr r3, [r7, #-3336] - movw r4, #65535 - movhi r10, #0 - movls r10, #1 + 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 cmp r3, #0 - moveq r10, #0 - cmp r10, #0 - addne r3, fp, #1 - uxthne fp, r3 - b .L3228 -.L3218: - ldr r1, .L3353 - sub r2, r1, #552 + moveq r8, #0 + cmp r8, #0 + addne r7, r7, #1 + uxthne r7, r7 + b .L3210 +.L3200: + ldr r1, .L3333 + add r2, r1, #984 ldrh r2, [r2] - cmp r2, r0 - bne .L3229 - sub r0, r1, #3072 - ldrh r0, [r0] - cmp r0, r2 + cmp r2, ip + bne .L3211 + sub ip, r1, #1536 + ldrh ip, [ip] + cmp ip, r2 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L3229 + beq .L3211 ldrh r3, [r6] + ldr r10, .L3333+16 cmp r3, r2 - beq .L3230 -.L3234: - movw r4, #65535 - b .L3229 -.L3230: - sub r4, r1, #652 - ldrh r3, [r5, #-8] - str ip, [r1, #-3092] - ldrh r2, [r4] - ldr r9, .L3353+24 + beq .L3212 +.L3216: + movw fp, #65535 + b .L3211 +.L3212: + add r7, r1, #884 + ldrh r3, [r4, #-8] + str r0, [r1, #-1556] + ldrh r2, [r7] cmp r2, r3 - bls .L3231 - ldrh r3, [r9] + bls .L3213 + movw r3, #1944 + ldrh r3, [r10, r3] cmp r3, #0 - bne .L3232 - ldr r3, [r1, #-2816] - ldr r2, [r1, #-408] + bne .L3214 + ldr r3, [r1, #-1280] + ldr r2, [r1, #1128] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movcs r3, #18 - bcs .L3233 -.L3232: - ldr r3, .L3353+40 - ldrh r3, [r3] + bcs .L3215 +.L3214: + movw r3, #1164 + ldrh r3, [r10, r3] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3233: - strh r3, [r5, #-8] @ movhi +.L3215: + strh r3, [r4, #-8] @ movhi bl FtlReadRefresh mov r0, #0 bl List_get_gc_head_node - ldr r3, [r7, #-2940] + ldr r3, [r5, #-1404] uxth r0, r0 mov r0, r0, asl #1 ldrh r3, [r3, r0] cmp r3, #4 - ldrhih r0, [r9] - bhi .L3189 -.L3231: - ldrh r0, [r9] - ldr r8, .L3353+24 + movwhi r3, #1944 + ldrhih r0, [r10, r3] + bhi .L3323 +.L3213: + movw r8, #1944 + ldr r9, .L3333+16 + ldrh r0, [r10, r8] cmp r0, #0 - bne .L3234 - sub r3, r8, #780 - ldrh r9, [r3] - add r3, r9, r9, asl #1 + bne .L3216 + movw r3, #1164 + ldrh r10, [r9, r3] + add r3, r10, r10, asl #1 mov r3, r3, asr #2 - strh r3, [r5, #-8] @ movhi + strh r3, [r4, #-8] @ movhi bl List_get_gc_head_node - ldr r3, [r7, #-2940] + ldr r3, [r5, #-1404] uxth r0, r0 mov r0, r0, asl #1 ldrh r2, [r3, r0] - ldr r3, .L3353+44 + ldr r3, .L3333+32 ldrh r1, [r3, #-14] - ldrh r5, [r3, #-84] - mul r5, r5, r1 - add r5, r5, r5, lsr #31 - cmp r2, r5, asr #1 - ble .L3235 - ldrh r1, [r4] - sub r3, r9, #1 + 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 .L3235 + blt .L3217 bl FtlReadRefresh - ldrh r0, [r8] - b .L3189 -.L3235: + ldrh r0, [r9, r8] + b .L3323 +.L3217: cmp r2, #0 - bne .L3234 + bne .L3216 movw r0, #65535 bl decrement_vpc_count - ldrh r0, [r4] + ldrh r0, [r7] add r0, r0, #1 - b .L3189 -.L3229: - ldr r3, [r7, #-3336] + b .L3323 +.L3211: + ldr r3, [r5, #-1800] cmp r3, #0 - moveq fp, #1 - movne fp, #2 -.L3228: + moveq r7, #1 + movne r7, #2 +.L3210: ldrh r3, [r6] movw r2, #65535 cmp r3, r2 - bne .L3237 - cmp r4, r3 - ldrne r3, .L3353+16 - strneh r4, [r3] @ movhi - bne .L3239 - ldr r1, .L3353 - sub r3, r1, #3072 + 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, r4 - beq .L3239 - ldr r1, [r1, #-2940] + cmp r2, fp + beq .L3221 + ldr r1, [r1, #-1404] mov r2, r2, asl #1 ldrh r2, [r1, r2] cmp r2, #0 @@ -19540,485 +19280,488 @@ ftl_do_gc: strh r2, [r6] @ movhi mvn r2, #0 strh r2, [r3] @ movhi -.L3239: - ldr r3, .L3353+48 +.L3221: + ldr r3, .L3333+16 mov r2, #0 ldrh r0, [r6] - sub r8, r3, #368 - strb r2, [r3, #-360] + add r8, r3, #1168 + strb r2, [r3, #1176] movw r2, #65535 cmp r0, r2 - mov r5, r3 - beq .L3237 + mov r4, r3 + beq .L3219 bl IsBlkInGcList cmp r0, #0 mvnne r3, #0 strneh r3, [r8] @ movhi - ldr r3, .L3353+20 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3243 + beq .L3225 ldrh r0, [r6] bl ftl_get_blk_mode - strb r0, [r5, #-360] -.L3243: + strb r0, [r4, #1176] +.L3225: ldrh r2, [r6] movw r3, #65535 - ldr r5, .L3353+48 + ldr r8, .L3333+16 cmp r2, r3 - sub r8, r5, #368 - beq .L3237 - mov r0, r8 + add r4, r8, #1168 + beq .L3219 + mov r0, r4 bl make_superblock - movw r2, #410 + movw r2, #1946 mov r3, #0 - strh r3, [r5, r2] @ movhi - strh r3, [r8, #2] @ movhi - strb r3, [r5, #-362] - ldrh r3, [r8] - ldr r2, [r7, #-2940] + strh r3, [r8, r2] @ movhi + strh r3, [r4, #2] @ movhi + strb r3, [r8, #1174] + ldrh r3, [r4] + ldr r2, [r5, #-1404] mov r3, r3, asl #1 ldrh r2, [r2, r3] - add r3, r5, #412 - strh r2, [r3] @ movhi -.L3237: - ldr r2, .L3353+52 + movw r3, #1948 + strh r2, [r8, r3] @ movhi +.L3219: + ldr r2, .L3333+36 ldrh r3, [r6] ldrh r1, [r2] cmp r1, r3 - beq .L3244 + beq .L3226 ldrh r1, [r2, #48] cmp r1, r3 - beq .L3244 + beq .L3226 ldrh r2, [r2, #96] cmp r2, r3 - bne .L3245 -.L3244: + bne .L3260 +.L3226: mvn r3, #0 strh r3, [r6] @ movhi -.L3245: - ldr r5, .L3353+48 -.L3278: - ldr r8, .L3353+16 +.L3260: + ldr r6, .L3333+12 movw r3, #65535 - ldr r9, .L3353 - ldrh r2, [r8] - mov r10, r8 + ldr r5, .L3333 + ldrh r2, [r6] cmp r2, r3 - bne .L3246 + bne .L3228 mov r3, #0 - str r3, [r9, #-3092] -.L3247: - ldr r6, .L3353+56 - ldrh r7, [r6] - mov r0, r7 + str r3, [r5, #-1556] +.L3229: + ldr r9, .L3333+40 + ldr r8, .L3333+16 + ldrh r4, [r9] + mov r0, r4 bl List_get_gc_head_node - movw r2, #65535 - uxth r3, r0 - strh r3, [r10] @ movhi - cmp r3, r2 + ldr r3, .L3333+12 + uxth r10, r0 + strh r10, [r3] @ movhi + movw r3, #65535 + cmp r10, r3 moveq r3, #0 moveq r0, #8 - streqh r3, [r6] @ movhi - beq .L3189 -.L3248: - mov r0, r3 - str r3, [sp, #12] + streqh r3, [r9] @ movhi + beq .L3323 +.L3230: + mov r0, r10 + add r4, r4, #1 bl IsBlkInGcList - add r7, r7, #1 cmp r0, #0 - ldr r3, [sp, #12] - strneh r7, [r6] @ movhi - bne .L3247 - ldr r2, .L3353 - mov r1, r3, asl #1 - ldrh lr, [r6, #-208] - uxth r7, r7 - strh r7, [r6] @ movhi - ldr r0, [r2, #-2940] - ldrh r2, [r6, #-140] + 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 r2, lr, r2 - add lr, r2, r2, lsr #31 - cmp ip, lr, asr #1 - bgt .L3251 + mul r3, r2, r3 + add r2, r3, r3, lsr #31 + cmp ip, r2, asr #1 + bgt .L3233 cmp ip, #8 - cmphi r7, #48 - bls .L3252 - ldrh ip, [r5, #232] - cmp ip, #35 - bhi .L3252 -.L3251: - mov ip, #0 - strh ip, [r6] @ movhi -.L3252: - ldrh r1, [r0, r1] - movw r0, #65535 - cmp r1, r2 - cmpge r4, r0 - bne .L3253 - ldrh r2, [r6] - cmp r2, #3 - bhi .L3253 - mvn r3, #0 - strh r3, [r10] @ movhi - ldr r3, .L3353+56 + cmphi r4, #48 + bls .L3234 + ldr r2, .L3333+44 + ldrh r2, [r2] + cmp r2, #35 + bhi .L3234 +.L3233: + ldr ip, .L3333+40 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 strh r2, [r3] @ movhi - ldr r3, .L3353+24 - b .L3347 -.L3253: - cmp r1, #0 - bne .L3254 + movw r3, #1944 + ldrh r0, [r8, r3] + b .L3323 +.L3235: + cmp r2, #0 + bne .L3236 movw r0, #65535 bl decrement_vpc_count - ldrh r3, [r6] + ldr r3, .L3333+40 + ldr r2, .L3333+40 + ldrh r3, [r3] add r3, r3, #1 - strh r3, [r6] @ movhi - b .L3247 -.L3254: - ldr r1, .L3353+48 - mov r2, #0 - strb r2, [r1, #-360] - ldr r2, .L3353+20 - ldrb r2, [r2, #3904] @ zero_extendqisi2 - cmp r2, #0 - beq .L3255 - mov r0, r3 - bl ftl_get_blk_mode - strb r0, [r5, #-360] -.L3255: - ldr r0, .L3353+16 - bl make_superblock - ldrh r2, [r8] - ldr r1, .L3353+60 + strh r3, [r2] @ movhi + b .L3229 +.L3236: mov r3, #0 - ldr r0, [r9, #-2940] + strb r3, [r8, #1176] + ldrb r3, [r5, #-2744] @ zero_extendqisi2 + cmp r3, #0 + beq .L3237 + mov r0, r10 + bl ftl_get_blk_mode + ldr r3, .L3333+16 + strb r0, [r3, #1176] +.L3237: + ldr r0, .L3333+12 + bl make_superblock + ldrh r2, [r6] + ldr r1, .L3333+48 + mov r3, #0 + ldr r0, [r5, #-1404] mov r2, r2, asl #1 strh r3, [r1] @ movhi ldrh r2, [r0, r2] - strh r3, [r8, #2] @ movhi + strh r3, [r6, #2] @ movhi + strb r3, [r8, #1174] strh r2, [r1, #2] @ movhi - ldr r2, .L3353+48 - strb r3, [r2, #-362] -.L3246: +.L3228: ldr r3, [sp, #20] cmp r3, #1 - bne .L3256 + bne .L3238 bl FtlReadRefresh -.L3256: +.L3238: mov r3, #1 - str r3, [r9, #-3096] - ldr r3, .L3353+36 + str r3, [r5, #-1560] + ldr r3, .L3333+28 ldrh r2, [r3] str r2, [sp, #12] - ldr r2, .L3353+20 - ldrb r2, [r2, #3904] @ zero_extendqisi2 + ldrb r2, [r5, #-2744] @ zero_extendqisi2 cmp r2, #0 - beq .L3257 - ldrb r2, [r5, #-360] @ zero_extendqisi2 + beq .L3239 + ldr r2, .L3333+16 + ldrb r2, [r2, #1176] @ zero_extendqisi2 cmp r2, #1 ldreqh r3, [r3, #2] streq r3, [sp, #12] -.L3257: - ldrh r3, [r8, #2] +.L3239: + ldrh r3, [r6, #2] ldr r1, [sp, #12] - add r2, r3, fp - ldr r6, .L3353 + add r2, r3, r7 + ldr r6, .L3333+16 cmp r2, r1 movgt r2, r1 rsbgt r3, r3, r2 - uxthgt fp, r3 + uxthgt r7, r3 mov r3, #0 str r3, [sp, #16] - b .L3259 -.L3352: - ldr r0, [r6, #-3020] - mov r1, r7 - ldrb r2, [r5, #-360] @ zero_extendqisi2 +.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 bl FlashReadPages -.L3262: + ldr r5, .L3333 +.L3244: uxth r3, r9 - cmp r3, r7 - bcs .L3350 + cmp r3, r4 + bcs .L3332 mov r3, #36 - ldr r2, [r6, #-3020] + ldr r2, [r5, #-1484] mul r8, r3, r9 add r1, r2, r8 ldr r2, [r2, r8] ldr r10, [r1, #12] cmn r2, #1 - beq .L3299 + beq .L3280 ldrh r1, [r10] movw r2, #61589 cmp r1, r2 - bne .L3299 - add r1, sp, r3 + bne .L3280 + add r1, sp, #32 mov r2, #0 ldr r0, [r10, #8] str r3, [sp, #24] bl log2phys - ldr r2, [r6, #-3020] + ldr r2, [r5, #-1484] add r2, r2, r8 ldr r0, [r2, #4] - ldr r1, [sp, #36] + ldr r1, [sp, #32] ldr r3, [sp, #24] bic r1, r1, #-2147483648 cmp r1, r0 - bne .L3299 - ldr r1, .L3353+60 - ldr r0, .L3353+60 + bne .L3280 + ldr r0, .L3333+48 ldr r2, [r2, #16] - ldrh r1, [r1] str r3, [sp, #28] + ldrh r1, [r0] add r1, r1, #1 strh r1, [r0] @ movhi - ldr r0, [r5, #208] - ldr r1, [r6, #-3032] + ldr r0, [r6, #1744] + ldr r1, [r5, #-1496] mla r1, r3, r0, r1 str r2, [r1, #16] str r1, [sp, #24] bl Ftl_get_new_temp_ppa - ldr r2, [r6, #-3032] + ldr r2, [r5, #-1496] ldr r1, [sp, #24] ldr r3, [sp, #28] str r0, [r1, #4] - ldr r1, [r5, #208] + ldr r1, [r6, #1744] mla r3, r3, r1, r2 - ldr r2, [r6, #-3020] + ldr r2, [r5, #-1484] add r2, r2, r8 ldr r1, [r2, #8] str r1, [r3, #8] mov r1, #1 ldr r2, [r2, #12] str r2, [r3, #12] - ldr r3, [sp, #36] + ldr r3, [sp, #32] str r3, [r10, #12] - ldr r3, .L3353+64 + ldr r3, .L3333+56 ldrh r2, [r3] str r3, [sp, #24] strh r2, [r10, #2] @ movhi - ldr r2, [r6, #-3144] - ldr r0, [r6, #-3020] + ldr r2, [r5, #-1608] + ldr r0, [r5, #-1484] str r2, [r10, #4] add r0, r0, r8 - ldr r2, [r5, #208] + ldr r2, [r6, #1744] add r2, r2, #1 - str r2, [r5, #208] + str r2, [r6, #1744] bl FtlGcBufAlloc - ldr r2, .L3353+20 - ldrb r2, [r2, #3904] @ zero_extendqisi2 + ldrb r2, [r5, #-2744] @ zero_extendqisi2 cmp r2, #0 - beq .L3351 -.L3264: - bl Ftl_gc_temp_data_write_back - cmp r0, #0 - beq .L3299 - ldr r3, .L3353 - mov r2, #0 - mvn r1, #0 - str r2, [r3, #-3096] - ldr r3, .L3353+16 - strh r1, [r3] @ movhi - strh r2, [r3, #2] @ movhi - add r3, r3, #776 -.L3347: - ldrh r0, [r3] - b .L3189 -.L3350: - ldr r3, [sp, #16] - add r3, r3, #1 - str r3, [sp, #16] -.L3259: - ldrh r3, [sp, #16] - ldr r8, .L3353 - cmp r3, fp - ldr r7, .L3353+16 - bcs .L3266 - ldr r3, .L3353+68 - mov r2, #0 - ldrh r0, [r7, #2] - movw lr, #65535 - ldr r8, [r6, #-3020] - mov ip, #36 - ldrh r9, [r3] - ldr r3, [sp, #16] - add r0, r0, r3 - add r3, r7, #14 - mov r7, r2 -.L3267: - uxth r1, r2 - cmp r1, r9 - bcs .L3352 - ldrh r1, [r3, #2]! - add r2, r2, #1 - cmp r1, lr - orrne r1, r0, r1, asl #10 - mlane r10, ip, r7, r8 - addne r7, r7, #1 - uxthne r7, r7 - strne r1, [r10, #4] - b .L3267 -.L3351: - ldrb r2, [r6, #-545] @ zero_extendqisi2 - ldr r1, [r5, #208] + bne .L3246 + ldrb r2, [r5, #991] @ zero_extendqisi2 + ldr r1, [r6, #1744] cmp r1, r2 - beq .L3264 + beq .L3246 ldr r3, [sp, #24] ldrh r3, [r3, #4] cmp r3, #0 - beq .L3264 -.L3299: - add r9, r9, #1 - b .L3262 -.L3266: - ldrh r3, [r7, #2] - ldr r2, [sp, #12] - add r3, fp, r3 - uxth r3, r3 - strh r3, [r7, #2] @ movhi - cmp r3, r2 - bcc .L3268 - ldr r3, [r5, #208] - cmp r3, #0 - beq .L3269 + bne .L3280 +.L3246: + bl Ftl_gc_temp_data_write_back + cmp r0, #0 + beq .L3280 + ldr r3, .L3333 + mov r2, #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: + 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] + cmp r3, #0 + beq .L3251 bl Ftl_gc_temp_data_write_back cmp r0, #0 - addne r7, r7, #776 movne r3, #0 - strne r3, [r8, #-3096] - ldrneh r0, [r7] - bne .L3189 -.L3269: - ldr r3, .L3353+60 + 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 .L3270 - ldrh r3, [r7] - ldr r2, [r8, #-2940] + bne .L3252 + ldrh r3, [r4] + ldr r2, [r5, #-1404] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3270 -.L3271: - ldr r3, [r8, #-2816] + beq .L3252 +.L3253: + ldr r3, [r5, #-1280] cmp r6, r3 - bcs .L3276 + bcs .L3258 mov r0, r6 - add r1, sp, #40 + add r1, sp, #36 mov r2, #0 bl log2phys - ldr r0, [sp, #40] + ldr r0, [sp, #36] cmn r0, #1 - beq .L3272 + beq .L3254 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldrh r3, [r7] + ldrh r3, [r4] cmp r3, r0 - bne .L3272 -.L3276: - ldr r3, [r8, #-2816] + bne .L3254 +.L3258: + ldr r3, [r5, #-1280] cmp r6, r3 - bcc .L3270 - ldr r2, .L3353 + bcc .L3252 + ldr r2, .L3333 mov r1, #0 - ldrh r3, [r7] - ldr r2, [r2, #-2940] + ldrh r3, [r4] + ldr r2, [r2, #-1404] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - ldrh r0, [r7] + ldrh r0, [r4] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3270 -.L3272: + b .L3252 +.L3254: add r6, r6, #1 - b .L3271 -.L3270: + b .L3253 +.L3252: mvn r3, #0 - strh r3, [r7] @ movhi -.L3268: - ldr r7, .L3353 - sub r3, r7, #652 + strh r3, [r4] @ movhi +.L3250: + ldr r5, .L3333 + add r3, r5, #884 ldrh r3, [r3] cmp r3, #2 - subls r7, r7, #3200 - ldrlsh fp, [r7] - bls .L3278 -.L3277: + subls r5, r5, #1664 + ldrlsh r7, [r5] + bls .L3260 +.L3259: mov r2, #0 - str r2, [r7, #-3096] - ldr r2, .L3353+24 - ldrh r0, [r2] + str r2, [r5, #-1560] + movw r2, #1944 + ldrh r0, [r7, r2] cmp r0, #0 addeq r0, r3, #1 -.L3189: - ldr r3, .L3353+4 - ldr r2, [sp, #44] - ldr r3, [r3] - cmp r2, r3 - beq .L3282 - bl __stack_chk_fail -.L3349: - sub r3, r8, #3072 - ldrh fp, [r3] - cmp fp, r4 - bne .L3205 - sub r9, r8, #652 - ldr r2, [r8, #-3080] + 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] cmp r3, #24 movcc r3, #5120 movcs r3, #1024 cmp r2, r3 - movls r4, fp - bls .L3205 - ldr r2, .L3353+24 + movls fp, r10 + bls .L3187 + ldr r1, .L3333+16 + movw r2, #1944 mov r3, #0 - str r3, [r7, #-3080] - strh r3, [r2] @ movhi + str r3, [r5, #-1544] + strh r3, [r1, r2] @ movhi bl GetSwlReplaceBlock - cmp r0, fp - mov r4, r0 - bne .L3207 - ldrh r2, [r5, #-6] - sub r3, r8, #3056 + 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 .L3217 + bcs .L3199 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 - cmp r3, r4 - beq .L3217 - ldr r2, [r8, #-3156] - sub r1, r8, #3248 + cmp r3, fp + beq .L3199 + ldr r2, [r7, #-1620] + sub r1, r7, #1712 cmp r2, #0 - bne .L3210 + bne .L3192 ldrh r2, [r1] cmp r2, #3 - beq .L3210 - ldr r2, [r8, #-3152] + beq .L3192 + ldr r2, [r7, #-1616] cmp r2, #0 - bne .L3210 - ldr r2, [r8, #-3336] + bne .L3192 + ldr r2, [r7, #-1800] cmp r2, #0 - bne .L3210 - ldr r2, .L3353+20 - ldrb r0, [r2, #3904] @ zero_extendqisi2 + bne .L3192 + ldrb r0, [r7, #-2744] @ zero_extendqisi2 cmp r0, #0 - beq .L3211 -.L3210: - ldr r2, [r7, #-2940] + beq .L3193 +.L3192: + ldr r2, [r5, #-1404] mov r3, r3, asl #1 ldrh r1, [r1] ldrh r0, [r2, r3] cmp r1, #3 - ldr r2, .L3353+44 + ldr r2, .L3333+32 ldrh r3, [r2, #-14] ldrh r2, [r2, #-84] mul r2, r2, r3 @@ -20026,82 +19769,82 @@ ftl_do_gc: movne r3, #0 add r3, r2, r3 cmp r0, r3 - bgt .L3213 + bgt .L3195 mov r0, #0 bl List_get_gc_head_node - ldr r3, [r7, #-2816] - ldr r2, [r7, #-408] + ldr r3, [r5, #-1280] + ldr r2, [r5, #1128] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movls r3, #160 - uxth r4, r0 - bls .L3345 - b .L3348 -.L3211: - ldr r2, [r8, #-2940] + uxth fp, r0 + bls .L3326 + b .L3329 +.L3193: + ldr r2, [r7, #-1404] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #7 - bhi .L3216 + bhi .L3198 bl List_get_gc_head_node - uxth r4, r0 -.L3348: + uxth fp, r0 +.L3329: mov r3, #128 -.L3345: - strh r3, [r5, #-6] @ movhi +.L3326: + strh r3, [r4, #-6] @ movhi movw r3, #65535 - cmp r4, r3 - beq .L3217 - b .L3207 -.L3213: + cmp fp, r3 + beq .L3199 + b .L3189 +.L3195: mov r3, #128 - b .L3346 -.L3216: + b .L3327 +.L3198: mov r3, #64 -.L3346: - strh r3, [r5, #-6] @ movhi - b .L3217 -.L3207: - ldr r0, [r7, #-2948] - mov r1, r4, asl #1 - ldr r3, [r7, #-2940] +.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] ldrh r3, [r3, r1] ldrh r1, [r0, r1] - ldr r0, .L3353+72 + ldr r0, .L3333+60 str r1, [sp] - ldrh r1, [r5, #-8] + ldrh r1, [r4, #-8] str r1, [sp, #4] - mov r1, r4 + mov r1, fp bl printk -.L3217: +.L3199: bl FtlGcReFreshBadBlk - b .L3205 -.L3282: - add sp, sp, #52 + b .L3187 +.L3328: + mov fp, r0 + b .L3187 +.L3323: + add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3354: +.L3334: .align 2 -.L3353: +.L3333: .word .LANCHOR2 - .word __stack_chk_guard .word .LANCHOR1 - .word .LANCHOR2-3056 - .word .LANCHOR4-368 - .word .LANCHOR0 - .word .LANCHOR4+408 - .word .LC154 - .word .LANCHOR2-652 - .word .LANCHOR2-3200 - .word .LANCHOR4-372 - .word .LANCHOR2-3184 + .word .LANCHOR2-1520 + .word .LANCHOR4+1168 .word .LANCHOR4 - .word .LANCHOR2-648 - .word .LANCHOR2-3060 - .word .LANCHOR4+410 - .word .LANCHOR2-552 - .word .LANCHOR2-3268 + .word .LC154 + .word .LANCHOR2+884 + .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 .fnend .size ftl_do_gc, .-ftl_do_gc @@ -20110,221 +19853,206 @@ ftl_do_gc: .type FtlCacheWriteBack, %function FtlCacheWriteBack: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3400 - 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 r2, [r3] - ldr r4, .L3400+4 - ldr r8, .L3400+8 - str r2, [sp, #12] - ldr r2, [r4, #-2812] - ldr r5, [r8, #416] - cmp r2, #0 - str r3, [sp, #4] - bne .L3357 - ldr r1, [r4, #-3048] + .pad #12 + ldr r4, .L3379 + ldr r8, .L3379+4 + ldr r3, [r4, #-1276] + ldr r5, [r8, #1952] + cmp r3, #0 + bne .L3337 + ldr r1, [r4, #-1512] cmp r1, #0 - beq .L3357 - ldr r3, .L3400+12 + beq .L3337 + ldrb r6, [r4, #-2744] @ zero_extendqisi2 mov r7, #0 - ldr r0, [r4, #-3016] + ldr r0, [r4, #-1480] mov r10, #36 - ldr r9, .L3400+4 - ldrb r6, [r3, #3904] @ zero_extendqisi2 - ldrb r3, [r5, #9] @ zero_extendqisi2 cmp r6, #0 + ldrb r3, [r5, #9] @ zero_extendqisi2 + ldr r9, .L3379 ldrneb r6, [r5, #8] @ zero_extendqisi2 subne r6, r6, #1 clzne r6, r6 movne r6, r6, lsr #5 mov r2, r6 bl FlashProgPages -.L3360: - ldr r3, [r4, #-3048] +.L3340: + ldr r3, [r4, #-1512] cmp r7, r3 - bcs .L3378 + bcs .L3358 mul fp, r10, r7 - ldr r3, [r9, #-3016] + ldr r3, [r9, #-1480] add r2, r3, fp ldr r3, [r3, fp] cmn r3, #1 - beq .L3382 + beq .L3361 ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] - add r1, sp, #8 + add r1, sp, #4 mov r2, #1 orrne r3, r3, #-2147483648 - str r3, [sp, #8] + str r3, [sp, #4] bl log2phys - ldr r3, [r4, #-3016] - add fp, r3, fp - ldr r3, [fp, #12] + ldr r3, [r4, #-1480] + add r3, r3, fp + ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3364 + beq .L3344 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r9, #-2940] + ldr r2, [r9, #-1404] mov r3, r0, asl #1 mov fp, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3365 - ldr r0, .L3400+16 + bne .L3345 + ldr r0, .L3379+8 mov r1, fp bl printk -.L3365: +.L3345: mov r0, fp bl decrement_vpc_count -.L3364: +.L3344: add r7, r7, #1 - b .L3360 -.L3398: - ldr r6, .L3400+20 - movw r5, #16386 + b .L3340 .L3377: + ldr r6, .L3379+12 + movw r5, #16386 +.L3357: ldrh r3, [r6] cmp r3, #0 - beq .L3378 + beq .L3358 mov r0, #1 mov r1, r0 bl ftl_do_gc subs r5, r5, #1 - bne .L3377 -.L3378: + bne .L3357 +.L3358: mov r3, #0 - str r3, [r4, #-3048] - b .L3357 -.L3382: - ldr r9, .L3400+4 - mov r10, #0 + str r3, [r4, #-1512] + b .L3337 .L3361: - ldr r3, [r4, #-3048] + ldr r9, .L3379 + mov r10, #0 +.L3341: + ldr r3, [r4, #-1512] cmp r10, r3 - bcs .L3398 + bcs .L3377 mov r7, #36 - ldr r3, [r9, #-3016] + ldr r3, [r9, #-1480] mul r7, r7, r10 mov fp, #0 mvn r2, #0 str r2, [r3, r7] -.L3367: - ldr r3, [r4, #-3016] +.L3347: + ldr r3, [r4, #-1480] add r2, r3, r7 ldr r3, [r3, r7] cmn r3, #1 - bne .L3399 + bne .L3378 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3368 - ldr r1, [r9, #-2940] + bne .L3348 + ldr r1, [r9, #-1404] mov r3, r3, asl #1 ldrh r0, [r5, #4] ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L3400+24 + ldr r3, .L3379+16 strb fp, [r5, #6] strh fp, [r5, #4] @ movhi ldrh r3, [r3] strh r3, [r5, #2] @ movhi -.L3368: +.L3348: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3369 + bne .L3349 mov r0, r5 bl allocate_new_data_superblock -.L3369: - ldr r3, [r8, #-224] +.L3349: + ldr r3, [r8, #1312] add r3, r3, #1 - str r3, [r8, #-224] - ldr r3, [r4, #-3016] + str r3, [r8, #1312] + ldr r3, [r4, #-1480] 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, #-3016] + ldr r3, [r4, #-1480] mov r1, #1 mov r2, r6 add r3, r3, r7 - str r0, [sp, #8] + str r0, [sp, #4] str r0, [r3, #4] mov r0, r3 ldrb r3, [r5, #9] @ zero_extendqisi2 bl FlashProgPages - ldr r3, [r4, #-3016] + ldr r3, [r4, #-1480] ldr r3, [r3, r7] cmn r3, #1 moveq r3, #1 - streq r3, [r9, #-2812] - ldr r3, [r4, #-2812] + streq r3, [r9, #-1276] + ldr r3, [r4, #-1276] cmp r3, #0 - beq .L3367 - b .L3357 -.L3399: + beq .L3347 + b .L3337 +.L3378: ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] - add r1, sp, #8 + add r1, sp, #4 mov r2, #1 orrne r3, r3, #-2147483648 - str r3, [sp, #8] + str r3, [sp, #4] bl log2phys - ldr r3, [r4, #-3016] + ldr r3, [r4, #-1480] add r7, r3, r7 ldr r3, [r7, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3374 + beq .L3354 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r9, #-2940] + ldr r2, [r9, #-1404] mov r3, r0, asl #1 mov r7, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3375 - ldr r0, .L3400+16 + bne .L3355 + ldr r0, .L3379+8 mov r1, r7 bl printk -.L3375: +.L3355: mov r0, r7 bl decrement_vpc_count -.L3374: +.L3354: add r10, r10, #1 - b .L3361 -.L3357: - ldr r3, [sp, #4] + b .L3341 +.L3337: mov r0, #0 - ldr r2, [sp, #12] - ldr r3, [r3] - cmp r2, r3 - beq .L3380 - bl __stack_chk_fail -.L3380: - add sp, sp, #20 + add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3401: +.L3380: .align 2 -.L3400: - .word __stack_chk_guard +.L3379: .word .LANCHOR2 .word .LANCHOR4 - .word .LANCHOR0 .word .LC156 - .word .LANCHOR2-3058 - .word .LANCHOR2-3200 + .word .LANCHOR2-1522 + .word .LANCHOR2-1664 .fnend .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 @@ -20336,25 +20064,25 @@ FtlSysFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L3408 - ldr r3, [r3, #-2812] + ldr r3, .L3387 + ldr r3, [r3, #-1276] cmp r3, #0 - bne .L3403 - ldr r3, .L3408+4 - ldr r3, [r3, #3284] + bne .L3382 + ldr r3, .L3387+4 + ldr r3, [r3, #3348] cmn r3, #1 - beq .L3403 + beq .L3382 bl FtlCacheWriteBack bl l2p_flush mov r0, #1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3403: +.L3382: mov r0, #0 ldmfd sp!, {r3, pc} -.L3409: +.L3388: .align 2 -.L3408: +.L3387: .word .LANCHOR2 .word .LANCHOR1 .fnend @@ -20368,17 +20096,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L3413 - ldr r3, [r3, #3284] + ldr r3, .L3392 + ldr r3, [r3, #3348] cmp r3, #1 - bne .L3411 + bne .L3390 bl FtlSysFlush -.L3411: +.L3390: mov r0, #0 ldmfd sp!, {r3, pc} -.L3414: +.L3393: .align 2 -.L3413: +.L3392: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -20413,120 +20141,107 @@ ftl_cache_flush: .type ftl_discard, %function ftl_discard: .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, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #20 - sub sp, sp, #20 - ldr r5, .L3437 + stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + .pad #8 add r2, r0, r1 - mov r7, r0 - mov r6, r1 - ldr r3, [r5] - str r3, [sp, #12] - ldr r3, .L3437+4 - ldr r3, [r3, #3908] + ldr r4, .L3415 + mov r6, r0 + mov r5, r1 + ldr r3, [r4, #-2740] cmp r2, r3 mvnhi r0, #0 - bhi .L3419 - ldr r3, .L3437+8 - ldr r0, [r3, #3284] + bhi .L3398 + ldr r3, .L3415+4 + ldr r0, [r3, #3348] cmn r0, #1 - beq .L3419 + beq .L3398 cmp r1, #31 - bhi .L3420 -.L3421: + bhi .L3399 +.L3400: mov r0, #0 - b .L3419 -.L3420: - ldr r4, .L3437+12 - ldr r3, [r4, #-2812] + b .L3398 +.L3399: + ldr r3, [r4, #-1276] cmp r3, #0 - bne .L3421 - sub r4, r4, #3184 + bne .L3400 + sub r4, r4, #1648 bl FtlCacheWriteBack - mov r0, r7 + mov r0, r6 ldrh r4, [r4, #-10] mov r1, r4 bl __aeabi_uidiv smulbb r3, r0, r4 - mov r8, r0 - rsb r7, r3, r7 - uxth r7, r7 - cmp r7, #0 - beq .L3422 - rsb r4, r7, r4 - add r8, r0, #1 - cmp r4, r6 - movcs r4, r6 + mov r7, r0 + rsb r6, r3, r6 + uxth r6, r6 + cmp r6, #0 + beq .L3401 + rsb r4, r6, r4 + add r7, r0, #1 + cmp r4, r5 + movcs r4, r5 uxth r4, r4 - rsb r6, r4, r6 -.L3422: - ldr r4, .L3437+16 + rsb r5, r4, r5 +.L3401: + ldr r4, .L3415+8 mvn r3, #0 - ldr r9, .L3437+12 - str r3, [sp, #8] - mov r7, r4 -.L3423: + ldr r8, .L3415 + str r3, [sp, #4] + mov r6, r4 +.L3402: ldrh r3, [r4] - cmp r6, r3 - bcc .L3436 - mov r0, r8 - add r1, sp, #4 + cmp r5, r3 + bcc .L3414 + mov r0, r7 + mov r1, sp mov r2, #0 bl log2phys - ldr r3, [sp, #4] + ldr r3, [sp] cmn r3, #1 - beq .L3424 - ldr r2, .L3437+20 - add r1, sp, #8 - mov r0, r8 - ldr r3, [r2, #420] + beq .L3403 + ldr r2, .L3415+12 + add r1, sp, #4 + mov r0, r7 + ldr r3, [r2, #1956] add r3, r3, #1 - str r3, [r2, #420] - ldr r3, [r9, #-3132] + str r3, [r2, #1956] + ldr r3, [r8, #-1596] mov r2, #1 add r3, r3, #1 - str r3, [r9, #-3132] + str r3, [r8, #-1596] bl log2phys - ldr r0, [sp, #4] + ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3424: - ldrh r3, [r7] - add r8, r8, #1 - rsb r6, r3, r6 - b .L3423 -.L3436: - ldr r3, .L3437+20 - ldr r2, [r3, #420] +.L3403: + ldrh r3, [r6] + add r7, r7, #1 + rsb r5, r3, r5 + b .L3402 +.L3414: + ldr r3, .L3415+12 + ldr r2, [r3, #1956] cmp r2, #32 - bls .L3421 + bls .L3400 mov r4, #0 - str r4, [r3, #420] + str r4, [r3, #1956] bl l2p_flush bl FtlVpcTblFlush - b .L3421 -.L3419: - ldr r2, [sp, #12] - ldr r3, [r5] - cmp r2, r3 - beq .L3426 - bl __stack_chk_fail -.L3426: - add sp, sp, #20 + b .L3400 +.L3398: + add sp, sp, #8 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3438: + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L3416: .align 2 -.L3437: - .word __stack_chk_guard - .word .LANCHOR0 - .word .LANCHOR1 +.L3415: .word .LANCHOR2 - .word .LANCHOR2-3194 + .word .LANCHOR1 + .word .LANCHOR2-1658 .word .LANCHOR4 .fnend .size ftl_discard, .-ftl_discard @@ -20541,228 +20256,224 @@ FtlGcFreeTempBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L3479 - ldr r8, .L3479+4 - sub r4, r6, #3200 - ldr r7, [r6, #-2812] - ldr r3, [r8] - cmp r7, #0 - ldrh r1, [r4] - str r3, [sp, #12] - bne .L3477 - mov r10, r4 - sub r4, r6, #552 + ldr r6, .L3456 + sub r9, r6, #1664 + ldr r8, [r6, #-1276] + ldrh r1, [r9] + cmp r8, #0 + bne .L3454 + add r4, r6, #984 mov r5, r6 movw ip, #65535 ldrh r6, [r4] cmp r6, ip - bne .L3442 -.L3451: + bne .L3420 +.L3429: ldrh r2, [r4] movw r3, #65535 - ldr r6, .L3479+8 + ldr r6, .L3456+4 mov r7, #0 - ldr r9, .L3479 + ldr r8, .L3456 cmp r2, r3 - str r7, [r6, #224] - sub fp, r9, #552 - beq .L3477 + str r7, [r6, #1760] + add r10, r8, #984 + beq .L3454 bl FtlCacheWriteBack - ldrh r2, [r10] - ldrb r0, [r9, #-545] @ zero_extendqisi2 + ldrh r2, [r9] + ldrb r0, [r8, #991] @ zero_extendqisi2 + ldrh r3, [r10] mov r10, #12 - ldrh r3, [fp] - ldr r1, [r9, #-2940] + ldr r1, [r8, #-1404] smulbb r2, r0, r2 mov r3, r3, asl #1 + ldr r9, .L3456+8 strh r2, [r1, r3] @ movhi - ldr r2, [r9, #-3140] - ldrh r3, [r6, #234] + movw r3, #1770 + ldr r2, [r8, #-1604] + ldrh r3, [r6, r3] add r3, r3, r2 - str r3, [r9, #-3140] - b .L3452 -.L3442: + str r3, [r8, #-1604] + b .L3430 +.L3420: cmp r0, #0 - beq .L3445 - ldr r2, .L3479+12 - movw r3, #3288 + beq .L3423 + ldr r2, .L3456+12 + movw r3, #3352 ldrh r0, [r2, r3] cmp r0, ip - beq .L3446 -.L3447: + beq .L3424 +.L3425: mov r1, #2 - b .L3445 -.L3446: - strh r7, [r2, r3] @ movhi - sub r3, r5, #652 + b .L3423 +.L3424: + strh r8, [r2, r3] @ movhi + add r3, r5, #884 ldrh r3, [r3] cmp r3, #17 - bhi .L3447 -.L3445: - ldr r7, .L3479 - sub r0, r7, #552 + bhi .L3425 +.L3423: + ldr r7, .L3456 + add r0, r7, #984 bl FtlGcScanTempBlk cmn r0, #1 - str r0, [sp, #8] - beq .L3448 - ldr r2, [r7, #-2948] + str r0, [sp, #12] + beq .L3426 + ldr r2, [r7, #-1412] mov r6, r6, asl #1 ldrh r3, [r2, r6] cmp r3, #4 - bls .L3449 + bls .L3427 sub r3, r3, #5 mov r0, #1 strh r3, [r2, r6] @ movhi bl FtlEctTblFlush -.L3449: - ldr r4, .L3479+8 - ldr r3, [r4, #224] +.L3427: + ldr r4, .L3456+4 + ldr r3, [r4, #1760] cmp r3, #0 - bne .L3450 - ldr r0, [sp, #8] - ldr r3, [r4, #-224] + bne .L3428 + ldr r0, [sp, #12] + ldr r3, [r4, #1312] ubfx r0, r0, #10, #16 add r3, r3, #1 - str r3, [r4, #-224] + str r3, [r4, #1312] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3450: +.L3428: mov r3, #0 - str r3, [r4, #224] - b .L3463 -.L3448: - ldr r2, .L3479+12 - movw r3, #3288 + str r3, [r4, #1760] + b .L3440 +.L3426: + ldr r2, .L3456+12 + movw r3, #3352 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L3463 - b .L3451 -.L3455: + bne .L3440 + b .L3429 +.L3433: ldr r3, [fp, #4] cmp r0, r3 - bne .L3475 -.L3454: + bne .L3452 +.L3432: add r7, r7, #1 -.L3452: - ldrh r3, [r6, #234] - uxth r9, r7 - cmp r3, r9 - bls .L3478 - mul r9, r10, r9 - ldr r3, [r5, #-3040] - ldr r2, [r5, #-2816] - add fp, r3, r9 +.L3430: + ldrh r3, [r9] + uxth r8, r7 + cmp r3, r8 + bls .L3455 + mul r8, r10, r8 + ldr r3, [r5, #-1504] + ldr r2, [r5, #-1280] + add fp, r3, r8 ldr r0, [fp, #8] cmp r0, r2 - bcs .L3475 - add r1, sp, #8 + bcs .L3452 + add r1, sp, #12 mov r2, #0 str r3, [sp, #4] bl log2phys ldr r3, [sp, #4] - ldr r0, [sp, #8] - ldr r3, [r3, r9] + ldr r0, [sp, #12] + ldr r3, [r3, r8] cmp r0, r3 - bne .L3455 + bne .L3433 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, fp, #4 mov r2, #1 - mov r9, r0 + mov r8, r0 ldr r0, [fp, #8] bl log2phys - mov r0, r9 - b .L3476 -.L3475: + mov r0, r8 + b .L3453 +.L3452: ldrh r0, [r4] -.L3476: +.L3453: bl decrement_vpc_count - b .L3454 -.L3478: - ldr r9, .L3479+16 + b .L3432 +.L3455: movw r0, #65535 bl decrement_vpc_count - ldrb r3, [r9, #3904] @ zero_extendqisi2 + ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3457 - ldr r0, .L3479+20 + beq .L3435 + ldr r0, .L3456+16 ldrh r1, [r4] bl printk -.L3457: +.L3435: ldrh r0, [r4] - ldr r2, [r5, #-2940] + ldr r2, [r5, #-1404] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3458 + beq .L3436 bl INSERT_DATA_LIST - b .L3459 -.L3458: + b .L3437 +.L3436: bl INSERT_FREE_LIST -.L3459: - mvn r10, #0 - strh r10, [r4] @ movhi +.L3437: + movw r3, #1770 + mvn r9, #0 + ldr r8, .L3456+4 + strh r9, [r4] @ movhi mov r4, #0 - strh r4, [r6, #234] @ movhi - strh r4, [r6, #232] @ movhi + strh r4, [r6, r3] @ movhi + movw r3, #1768 + strh r4, [r6, r3] @ movhi bl l2p_flush bl FtlVpcTblFlush - ldr r7, .L3479 - ldr r2, [r5, #-3336] - ldr r3, .L3479+24 - cmp r2, r4 - sub r2, r7, #652 - strh r10, [r3], #-4 @ movhi - ldrh r2, [r2] - ldrh r3, [r3] - beq .L3460 - ldr r1, [r7, #-3100] - cmp r1, #39 - bhi .L3460 + 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 + ldrh r2, [r1] + ldrh r3, [r8, r3] cmp r2, r3 - subcc r7, r7, #3056 + subcc r7, r7, #1520 movcc r3, r3, asl #1 strcch r3, [r7, #-8] @ movhi - b .L3477 -.L3460: - add r1, r3, r3, asl #1 - cmp r2, r1, asr #2 - ble .L3477 - ldrb r0, [r9, #3904] @ zero_extendqisi2 - ldr r2, .L3479+28 + b .L3454 +.L3438: + movw r3, #1164 + ldrh r1, [r1] + ldrh r2, [r6, r3] + ldr r3, .L3456 + add r0, r2, r2, asl #1 + cmp r1, r0, asr #2 + ble .L3454 + ldrb r0, [r3, #-2744] @ zero_extendqisi2 + sub r3, r3, #1520 cmp r0, #0 - moveq r3, #20 - streqh r3, [r2, #-8] @ movhi - beq .L3441 - sub r3, r3, #2 - strh r3, [r2, #-8] @ movhi -.L3477: + moveq r2, #20 + streqh r2, [r3, #-8] @ movhi + beq .L3419 + sub r2, r2, #2 + strh r2, [r3, #-8] @ movhi +.L3454: mov r0, #0 - b .L3441 -.L3463: + b .L3419 +.L3440: mov r0, #1 -.L3441: - ldr r2, [sp, #12] - ldr r3, [r8] - cmp r2, r3 - beq .L3462 - bl __stack_chk_fail -.L3462: +.L3419: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3480: +.L3457: .align 2 -.L3479: +.L3456: .word .LANCHOR2 - .word __stack_chk_guard .word .LANCHOR4 + .word .LANCHOR4+1770 .word .LANCHOR1 - .word .LANCHOR0 .word .LC157 - .word .LANCHOR4-368 - .word .LANCHOR2-3056 .fnend .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 @@ -20774,8 +20485,8 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r4, .L3484 - ldr r5, .L3484+4 + ldr r4, .L3461 + ldr r5, .L3461+4 mov r0, r4 ldrh r1, [r5] bl FtlGcScanTempBlk @@ -20787,15 +20498,15 @@ FtlGcPageRecovery: bl FtlMapBlkWriteDumpData mov r0, #0 bl FtlGcFreeTempBlock - ldr r3, .L3484+8 + ldr r3, .L3461+8 mov r2, #0 - str r2, [r3, #224] + str r2, [r3, #1760] ldmfd sp!, {r3, r4, r5, pc} -.L3485: +.L3462: .align 2 -.L3484: - .word .LANCHOR2-552 - .word .LANCHOR2-3200 +.L3461: + .word .LANCHOR2+984 + .word .LANCHOR2-1664 .word .LANCHOR4 .fnend .size FtlGcPageRecovery, .-FtlGcPageRecovery @@ -20809,12 +20520,12 @@ FtlPowerLostRecovery: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 - ldr r4, .L3488 - ldr r3, .L3488+4 - sub r6, r4, #648 - sub r4, r4, #600 + ldr r4, .L3465 + ldr r3, .L3465+4 + add r6, r4, #888 + add r4, r4, #936 mov r0, r6 - str r5, [r3, #276] + str r5, [r3, #1812] bl FtlRecoverySuperblock mov r0, r6 bl FtlSlcSuperblockCheck @@ -20827,9 +20538,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L3489: +.L3466: .align 2 -.L3488: +.L3465: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -20841,32 +20552,32 @@ FtlSysBlkInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3508 + ldr r3, .L3485 mov r2, #0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - add r8, r3, #272 - ldr r4, .L3508+4 + add r8, r3, #1808 + ldr r4, .L3485+4 mvn r1, #0 strh r2, [r8] @ movhi - movw r2, #270 + movw r2, #1806 strh r1, [r3, r2] @ movhi - ldr r3, [r4, #-3264] + ldr r3, [r4, #-1728] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - sub r3, r4, #404 - ldrh r2, [r3] + movw r3, #1132 + ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - bne .L3491 -.L3493: + bne .L3468 +.L3470: mvn r7, #0 - b .L3492 -.L3491: + b .L3469 +.L3468: bl FtlLoadSysInfo subs r7, r0, #0 - bne .L3493 + bne .L3470 bl FtlLoadMapInfo mov r6, r7 bl FtlLoadVonderInfo @@ -20877,37 +20588,37 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov r0, #1 bl FtlUpdateVaildLpn - sub r3, r4, #3152 + sub r3, r4, #1616 mov r1, #12 ldrh r2, [r3, #-10] - ldr r3, [r4, #-2896] -.L3494: + ldr r3, [r4, #-1360] +.L3471: cmp r6, r2 - bge .L3499 + bge .L3476 mla r0, r1, r6, r3 ldr r0, [r0, #4] cmp r0, #0 - bge .L3495 -.L3499: - ldr r5, .L3508+8 + bge .L3472 +.L3476: + ldr r5, .L3485+8 cmp r6, r2 add r6, r5, #68 ldrh r3, [r5, #28] add r3, r3, #1 strh r3, [r5, #28] @ movhi - bge .L3506 - b .L3496 -.L3495: + bge .L3483 + b .L3473 +.L3472: add r6, r6, #1 - b .L3494 -.L3506: + b .L3471 +.L3483: ldrh r3, [r8] cmp r3, #0 - beq .L3500 -.L3496: + beq .L3477 +.L3473: ldrh r3, [r6] - ldr r1, [r4, #-2940] - ldr ip, .L3508+12 + ldr r1, [r4, #-1404] + ldr ip, .L3485+12 mov r3, r3, asl #1 ldrh r0, [r6, #4] ldrh r2, [r1, r3] @@ -20915,10 +20626,10 @@ FtlSysBlkInit: strh r2, [r1, r3] @ movhi ldrh r3, [ip] mov r2, #0 - ldr lr, [r4, #-2940] - strb r2, [r4, #-642] + ldr lr, [r4, #-1404] + strb r2, [r4, #894] strh r3, [r6, #2] @ movhi - ldr r3, .L3508+16 + ldr r3, .L3485+16 strh r2, [r6, #4] @ movhi ldrh r1, [r3] ldrh r8, [r3, #4] @@ -20928,7 +20639,7 @@ FtlSysBlkInit: strh r0, [lr, r1] @ movhi ldrh r1, [ip] strh r2, [r3, #4] @ movhi - strb r2, [r4, #-594] + strb r2, [r4, #942] strh r1, [r3, #2] @ movhi ldrh r3, [r5, #30] add r3, r3, #1 @@ -20936,19 +20647,19 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3500: +.L3477: ldrh r0, [r6] movw r3, #65535 - ldr r8, .L3508+20 + ldr r8, .L3485+20 cmp r0, r3 - beq .L3501 + beq .L3478 ldrh r3, [r8, #4] cmp r3, #0 - bne .L3501 + bne .L3478 ldrh r3, [r8, #52] add r4, r8, #48 cmp r3, #0 - bne .L3501 + bne .L3478 bl FtlGcRefreshOpenBlock ldrh r0, [r8, #48] bl FtlGcRefreshOpenBlock @@ -20957,28 +20668,28 @@ FtlSysBlkInit: bl allocate_new_data_superblock mov r0, r4 bl allocate_new_data_superblock -.L3501: - ldr r3, .L3508+24 +.L3478: + ldr r3, .L3485+24 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L3502 + bne .L3479 ldrh r3, [r5, #28] tst r3, #31 - bne .L3492 -.L3502: + bne .L3469 +.L3479: bl FtlVpcCheckAndModify -.L3492: +.L3469: mov r0, r7 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3509: +.L3486: .align 2 -.L3508: +.L3485: .word .LANCHOR4 .word .LANCHOR2 - .word .LANCHOR2-716 - .word .LANCHOR2-3200 - .word .LANCHOR2-600 - .word .LANCHOR2-648 + .word .LANCHOR2+820 + .word .LANCHOR2-1664 + .word .LANCHOR2+936 + .word .LANCHOR2+888 .word .LANCHOR0 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit @@ -20992,325 +20703,331 @@ 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, .L3545 - ldr r5, [r4, #-2812] + ldr r4, .L3522 + ldr r5, [r4, #-1276] cmp r5, #0 - bne .L3512 - sub r6, r4, #3152 + bne .L3489 + sub r6, r4, #1616 mov r1, r5 - ldr r0, [r4, #-2904] + ldr r0, [r4, #-1368] ldrh r2, [r6, #-12] mov r2, r2, asl #2 bl ftl_memset ldrh r2, [r6, #-12] mov r1, r5 - ldr r0, [r4, #-2908] + ldr r0, [r4, #-1372] mov r2, r2, asl #2 bl ftl_memset - ldr r3, [r4, #-3264] - str r5, [r4, #-3148] - str r5, [r4, #-3144] + ldr r3, [r4, #-1728] + str r5, [r4, #-1612] + str r5, [r4, #-1608] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L3513 + beq .L3490 bl FtlMakeBbt -.L3513: - ldr r0, .L3545 +.L3490: + ldr r0, .L3522 mov r2, #0 - ldr ip, .L3545+4 - ldr lr, .L3545+8 -.L3514: + ldr ip, .L3522+4 + ldr lr, .L3522+8 +.L3491: ldrh r1, [ip] uxth r3, r2 add r2, r2, #1 cmp r3, r1, asl #7 - bge .L3542 - ldr r5, [r0, #-2988] + bge .L3519 + ldr r5, [r0, #-1452] mvn r1, r3 orr r1, r3, r1, asl #16 str r1, [r5, r3, asl #2] - ldr r1, [r0, #-2984] + ldr r1, [r0, #-1448] str lr, [r1, r3, asl #2] - b .L3514 -.L3542: - ldr r8, .L3545+12 + b .L3491 +.L3519: + ldr r8, .L3522+12 mov r7, #0 - sub r6, r8, #10 - ldrh r5, [r8, #-12] -.L3516: - ldrh r3, [r6] - ldr r10, .L3545 - cmp r3, r5 - sub fp, r10, #3248 - sub r9, fp, #10 - bls .L3543 - mov r0, r5 + 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 mov r1, #1 bl FtlLowFormatEraseBlock - add r5, r5, #1 - uxth r5, r5 + add r6, r6, #1 + uxth r6, r6 add r0, r7, r0 uxth r7, r0 - b .L3516 -.L3543: - sub r6, r10, #3264 + b .L3493 +.L3520: + sub r6, r9, #1728 sub r3, r7, #3 ldrh r1, [r6, #-4] cmp r3, r1, asl #1 - bge .L3518 -.L3522: + bge .L3495 +.L3499: mov r5, #0 - ldr r9, .L3545+16 + ldr r9, .L3522+16 mov r7, r5 - b .L3519 -.L3518: + b .L3496 +.L3495: mov r0, r7 bl __aeabi_uidiv - ldr r3, [r10, #-3168] + ldr r3, [r9, #-1632] add r0, r0, r3 uxth r0, r0 bl FtlSysBlkNumInit - ldr r0, [r10, #-3264] + ldr r0, [r9, #-1728] uxth r0, r0 bl FtlFreeSysBlkQueueInit - ldrh r7, [fp, #-12] -.L3520: - ldrh r3, [r9] + ldrh r7, [r10, #-12] +.L3497: + ldrh r3, [r5] cmp r3, r7 - bls .L3522 + bls .L3499 mov r0, r7 add r7, r7, #1 mov r1, #1 bl FtlLowFormatEraseBlock uxth r7, r7 - b .L3520 -.L3519: - ldrh r2, [r9] + b .L3497 +.L3496: + ldrh r1, [r9] uxth r0, r5 - ldr fp, .L3545 + ldr fp, .L3522 add r5, r5, #1 - cmp r2, r0 - sub r3, fp, #3248 - bls .L3544 + cmp r1, r0 + sub r2, fp, #1712 + bls .L3521 mov r1, #0 bl FtlLowFormatEraseBlock add r0, r7, r0 uxth r7, r0 - b .L3519 -.L3544: - ldr r2, [fp, #-3256] - ldrh r3, [r3, #-10] + 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] - str r3, [fp, #-3076] - mov r1, r6 - ldr r5, .L3545+20 bl __aeabi_uidiv + movw r3, #1164 ubfx r9, r0, #5, #16 mov r10, r0 - add r3, r9, #36 - strh r3, [r5] @ movhi - mov r3, #24 - str r0, [fp, #-2816] - mul r3, r3, r6 + add r1, r9, #36 + strh r1, [r5, r3] @ movhi + mov r1, #24 + str r0, [fp, #-1280] + mul r1, r1, r6 ldr r2, [sp, #4] - cmp r7, r3 - ble .L3524 + cmp r7, r1 + ble .L3501 rsb r0, r7, r2 mov r1, r6 - bl __aeabi_uidiv - str r0, [fp, #-2816] - mov r0, r0, lsr #5 - add r0, r0, #24 - strh r0, [r5] @ movhi -.L3524: - ldr r3, [r4, #-3336] - cmp r3, #1 - bne .L3525 - mov r0, r7 - mov r1, r6 - bl __aeabi_uidiv - ldrh fp, [r5] - uxtah r0, fp, r0 - add fp, fp, r0, asr #2 - strh fp, [r5] @ movhi -.L3525: - ldr fp, .L3545+24 - ldrb r3, [fp, #3904] @ zero_extendqisi2 - cmp r3, #0 - beq .L3526 - ldrh r3, [r5] - mov r0, r7 - mov r1, r6 str r3, [sp, #4] bl __aeabi_uidiv ldr r3, [sp, #4] - uxtah r0, r3, r0 - add r3, r3, r0, asr #2 - strh r3, [r5] @ movhi -.L3526: - ldr r0, .L3545 - sub r2, r0, #3200 + str r0, [fp, #-1280] + mov r0, r0, lsr #5 + add r0, r0, #24 + strh r0, [r5, r3] @ movhi +.L3501: + ldr r3, [r4, #-1800] + cmp r3, #1 + bne .L3502 + movw r3, #1164 + mov r0, r7 + mov r1, r6 + ldrh fp, [r5, r3] + str r3, [sp, #4] + bl __aeabi_uidiv + ldr r3, [sp, #4] + uxtah r0, fp, r0 + add fp, fp, r0, asr #2 + strh fp, [r5, r3] @ movhi +.L3502: + 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] + 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 + sub r2, ip, #1664 ldrh r3, [r2, #-6] cmp r3, #0 - beq .L3528 - ldrh r1, [r5] - add r1, r1, r3, lsr #1 - strh r1, [r5] @ movhi - mul r1, r6, r3 - cmp r1, r7 - strgt r10, [r0, #-2816] + beq .L3505 + movw r1, #1164 + 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] addgt r3, r3, #32 - ldrgt r1, .L3545+20 + ldrgt r0, .L3522+20 addgt r3, r9, r3 - strgth r3, [r1] @ movhi -.L3528: - ldrh r1, [r5] + strgth r3, [r0, r1] @ movhi +.L3505: + movw r3, #1164 + ldr r10, .L3522+24 + ldrh r1, [r5, r3] mvn r9, #0 - ldr r3, [r4, #-2816] - mov r5, #0 - ldr r7, .L3545+28 + ldr r3, [r4, #-1280] + ldr r7, .L3522+28 rsb r3, r1, r3 mul r6, r6, r3 ldrh r3, [r2] - str r6, [r7, #-376] + ldrh r2, [r10, #-10] + add r10, r10, #1648 + mov fp, r7 mul r3, r3, r6 - ldr r6, .L3545+32 - ldrh r2, [r6, #-10] - str r3, [r4, #-2816] + str r6, [r5, #1160] + mov r6, #0 + str r3, [r4, #-1280] mul r3, r2, r3 - str r3, [fp, #3908] + str r3, [r4, #-2740] bl FtlBbmTblFlush ldrh r2, [r8, #-10] mov r1, #0 - ldr r0, [r4, #-2940] - ldr fp, .L3545+36 + ldr r0, [r4, #-1404] mov r2, r2, asl #1 bl ftl_memset ldrh r2, [r8, #-12] - sub r3, r7, #368 - ldr r0, [r4, #-2928] + ldr r3, .L3522+32 mov r1, #255 - str r5, [r4, #-408] + ldr r0, [r4, #-1392] mov r2, r2, lsr #3 + str r6, [r4, #1128] strh r9, [r3] @ movhi - strh r5, [r3, #2] @ movhi + strh r6, [r3, #2] @ movhi mov r3, #1 - strb r5, [r7, #-362] - mov r10, fp - strb r5, [r7, #-360] - strh r5, [fp, #2] @ movhi - strb r5, [r4, #-642] - strh r5, [fp] @ movhi - strb r3, [r4, #-640] + 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] bl ftl_memset - add r2, r6, #3184 -.L3530: - ldr r5, .L3545 - str r2, [sp, #4] - sub r6, r5, #648 - mov r0, r6 +.L3507: + ldr r6, .L3522 + add r8, r6, #888 + mov r0, r8 bl make_superblock - ldrb r3, [r4, #-641] @ zero_extendqisi2 + ldrb r3, [r4, #895] @ zero_extendqisi2 cmp r3, #0 + ldrh r3, [r7] + bne .L3508 + ldr r2, [r10, #-1404] + mov r3, r3, asl #1 + strh r9, [r2, r3] @ movhi ldrh r3, [fp] - bne .L3531 - ldr r2, [sp, #4] - mov r3, r3, asl #1 - ldr r1, [r2, #-2940] - strh r9, [r1, r3] @ movhi - ldrh r3, [r10] add r8, r3, #1 - strh r8, [r10] @ movhi - b .L3530 -.L3531: - ldr r2, [r5, #-3148] + strh r8, [fp] @ movhi + b .L3507 +.L3508: + ldr r2, [r6, #-1612] mov r3, r3, asl #1 - ldrh r1, [r6, #4] + ldrh r1, [r8, #4] mvn fp, #0 - str r2, [r5, #-636] + str r2, [r6, #900] add r2, r2, #1 - str r2, [r5, #-3148] - ldr r2, [r5, #-2940] + str r2, [r6, #-1612] + ldr r2, [r6, #-1404] strh r1, [r2, r3] @ movhi - sub r2, r5, #600 + add r2, r6, #936 mov r3, #0 - strb r3, [r5, #-594] + strb r3, [r6, #942] strh r3, [r2, #2] @ movhi - mov r8, r2 - ldrh r3, [r6] mov r10, r2 + ldrh r3, [r8] + mov r8, r2 add r3, r3, #1 strh r3, [r2] @ movhi mov r3, #1 - strb r3, [r5, #-592] -.L3532: - ldr r6, .L3545 - sub r9, r6, #600 + strb r3, [r6, #944] +.L3509: + ldr r7, .L3522 + add r9, r7, #936 mov r0, r9 bl make_superblock - ldrb r3, [r4, #-593] @ zero_extendqisi2 + ldrb r3, [r4, #943] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r8] - bne .L3533 - ldr r2, [r5, #-2940] + bne .L3510 + ldr r2, [r6, #-1404] mov r3, r3, asl #1 strh fp, [r2, r3] @ movhi ldrh r3, [r10] add r3, r3, #1 strh r3, [r10] @ movhi - b .L3532 -.L3533: - ldr r2, [r6, #-3148] + b .L3509 +.L3510: + ldr r2, [r7, #-1612] mov r3, r3, asl #1 ldrh r1, [r9, #4] mvn r4, #0 - str r2, [r6, #-588] + str r2, [r7, #948] add r2, r2, #1 - str r2, [r6, #-3148] - ldr r2, [r6, #-2940] + str r2, [r7, #-1612] + ldr r2, [r7, #-1404] strh r1, [r2, r3] @ movhi - sub r3, r6, #552 + add r3, r7, #984 strh r4, [r3] @ movhi bl FtlFreeSysBlkQueueOut - sub r3, r6, #404 + ldr r3, .L3522+36 + movw r2, #1132 + strh r4, [r3, #4] @ movhi + strh r0, [r7, r2] @ movhi mov r2, #0 strh r2, [r3, #2] @ movhi - ldr r2, [r7, #-376] - strh r4, [r3, #4] @ movhi + ldr r2, [r5, #1160] strh r2, [r3, #6] @ movhi - strh r0, [r3] @ movhi - ldr r3, [r6, #-3148] - str r3, [r6, #-396] + ldr r3, [r7, #-1612] + str r3, [r7, #1140] add r3, r3, #1 - str r3, [r6, #-3148] + str r3, [r7, #-1612] bl FtlVpcTblFlush bl FtlSysBlkInit cmp r0, #0 - ldreq r3, .L3545+40 + ldreq r3, .L3522+40 moveq r2, #1 - streq r2, [r3, #3284] -.L3512: + streq r2, [r3, #3348] +.L3489: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3546: +.L3523: .align 2 -.L3545: +.L3522: .word .LANCHOR2 - .word .LANCHOR2-3194 + .word .LANCHOR2-1658 .word 168778952 - .word .LANCHOR2-3248 - .word .LANCHOR2-3260 - .word .LANCHOR4-372 - .word .LANCHOR0 + .word .LANCHOR2-1712 + .word .LANCHOR2-1724 .word .LANCHOR4 - .word .LANCHOR2-3184 - .word .LANCHOR2-648 + .word .LANCHOR2-1648 + .word .LANCHOR2+888 + .word .LANCHOR4+1168 + .word .LANCHOR2+1132 .word .LANCHOR1 .fnend .size FtlLowFormat, .-FtlLowFormat @@ -21319,123 +21036,110 @@ FtlLowFormat: .type FtlReInitForSDUpdata, %function FtlReInitForSDUpdata: .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, lr} - .save {r4, r5, r6, lr} - .pad #24 - sub sp, sp, #24 - ldr r5, .L3577 - ldr r0, .L3577+4 - ldr r3, [r5] - str r3, [sp, #20] - ldrb r3, [r0, #3904] @ zero_extendqisi2 + stmfd sp!, {r0, r1, r2, r3, r4, lr} + .save {r4, lr} + .pad #16 + ldr r4, .L3553 + ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3548 -.L3550: + beq .L3525 +.L3527: mov r0, #0 - b .L3549 -.L3548: - ldr r3, .L3577+8 - mov r4, r0 + b .L3526 +.L3525: + ldr r3, .L3553+4 ldr r0, [r3] bl FlashInit cmp r0, #0 - bne .L3550 + bne .L3527 bl FlashLoadFactorBbt cmp r0, #0 - beq .L3551 + beq .L3528 bl FlashMakeFactorBbt -.L3551: - ldr r6, .L3577+12 - ldr r0, [r6, #-3308] +.L3528: + ldr r0, [r4, #-1772] bl FlashReadIdbDataRaw cmp r0, #0 - beq .L3552 - mov r2, #16 - add r0, sp, #4 + beq .L3529 mov r1, #0 + mov r2, #16 + mov r0, sp bl FlashReadFacBbtData mov r3, #0 - mov r0, r3 + mov r2, r3 mov ip, #1 - ldr r2, [sp, #4] -.L3553: - ands lr, r2, ip, asl r0 - add r1, r3, #1 - add r0, r0, #1 - movne r3, r1 - cmp r0, #16 - bne .L3553 + ldr r1, [sp] +.L3530: + ands lr, r1, ip, asl r2 + add r0, r3, #1 + add r2, r2, #1 + movne r3, r0 + cmp r2, #16 + bne .L3530 cmp r3, #6 - bls .L3573 - mov r0, #0 + ldrls r3, .L3553+8 + bls .L3549 + mov r2, #0 mov ip, #1 -.L3556: - ands lr, r2, ip, asl r0 - add r1, r3, #1 - add r0, r0, #1 - movne r3, r1 - cmp r0, #24 - bne .L3556 +.L3533: + ands lr, r1, ip, asl r2 + add r0, r3, #1 + add r2, r2, #1 + movne r3, r0 + cmp r2, #24 + bne .L3533 cmp r3, #17 - movhi r3, #36 - strhib r3, [r4, #1] - bhi .L3555 -.L3573: - strb r0, [r4, #1] -.L3555: - ldrb r2, [r4, #1] @ zero_extendqisi2 - ldr r3, .L3577+16 + ldr r3, .L3553+8 + movhi r2, #36 +.L3549: + strb r2, [r3, #1] + ldr r3, .L3553+8 + ldrb r2, [r3, #1] @ zero_extendqisi2 + ldr r3, .L3553+12 strh r2, [r3, #26] @ movhi -.L3552: - ldr r1, .L3577+20 - mov r4, #1 - ldr r0, .L3577+24 +.L3529: + ldr r1, .L3553+16 + ldr r0, .L3553+20 bl printk - ldr r0, .L3577+16 + ldr r0, .L3553+12 bl FtlConstantsInit bl FtlVariablesInit - ldr r0, [r6, #-3264] + ldr r0, [r4, #-1728] + mov r4, #1 uxth r0, r0 bl FtlFreeSysBlkQueueInit -.L3558: +.L3535: bl FtlLoadBbt cmp r0, #0 - beq .L3559 -.L3575: + beq .L3536 +.L3551: bl FtlLowFormat cmp r4, #3 addls r4, r4, #1 - bls .L3558 -.L3576: + bls .L3535 +.L3552: mvn r0, #0 - b .L3549 -.L3559: + b .L3526 +.L3536: bl FtlSysBlkInit cmp r0, #0 - bne .L3575 - ldr r3, .L3577+28 + bne .L3551 + ldr r3, .L3553+24 mov r2, #1 - str r2, [r3, #3284] -.L3549: - ldr r2, [sp, #20] - ldr r3, [r5] - cmp r2, r3 - beq .L3563 - bl __stack_chk_fail -.L3563: - add sp, sp, #24 + str r2, [r3, #3348] +.L3526: + add sp, sp, #16 @ sp needed - ldmfd sp!, {r4, r5, r6, pc} -.L3578: + ldmfd sp!, {r4, pc} +.L3554: .align 2 -.L3577: - .word __stack_chk_guard - .word .LANCHOR0 - .word RK29_NANDC_REG_BASE +.L3553: .word .LANCHOR2 - .word .LANCHOR0+3876 + .word RK29_NANDC_REG_BASE + .word .LANCHOR0 + .word .LANCHOR2-2772 .word .LC141 .word .LC46 .word .LANCHOR1 @@ -21450,94 +21154,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, .L3596 - ldr r3, [r4, #-2812] + ldr r4, .L3572 + ldr r3, [r4, #-1276] cmp r3, #0 - beq .L3580 -.L3583: + beq .L3556 +.L3559: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3580: - ldr r3, .L3596+4 - ldr r6, .L3596+8 - ldrb r3, [r3, #3904] @ zero_extendqisi2 +.L3556: + ldrb r3, [r4, #-2744] @ zero_extendqisi2 + ldr r6, .L3572+4 cmp r3, #0 - beq .L3582 - ldr r3, [r6, #208] + beq .L3558 + ldr r3, [r6, #1744] tst r3, #1 - beq .L3582 - sub r3, r4, #552 + beq .L3558 + add r3, r4, #984 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3583 -.L3582: + bne .L3559 +.L3558: mov r2, #0 - ldr r0, [r4, #-3032] - ldr r1, [r6, #208] + ldr r0, [r4, #-1496] + ldr r1, [r6, #1744] mov r3, r2 bl FlashProgPages mov r7, #0 mov r8, #36 -.L3584: - ldr r1, [r6, #208] +.L3560: + ldr r1, [r6, #1744] uxth r3, r7 - ldr r5, .L3596+8 + ldr r5, .L3572+4 cmp r3, r1 - bcs .L3595 + bcs .L3571 mul r3, r8, r3 - ldr r0, [r4, #-3032] - ldr r2, .L3596 + ldr r0, [r4, #-1496] + ldr r2, .L3572 add r7, r7, #1 add r1, r0, r3 ldr lr, [r0, r3] ldr ip, [r1, #12] cmn lr, #1 - bne .L3585 - sub r0, r2, #552 - ldr ip, [r2, #-2940] + bne .L3561 + add r0, r2, #984 + ldr ip, [r2, #-1404] mov r4, #0 ldrh r1, [r0] mov r1, r1, asl #1 strh r4, [ip, r1] @ movhi - ldr r2, [r2, #-3032] - ldr r1, [r5, #-224] + ldr r2, [r2, #-1496] + ldr r1, [r5, #1312] add r3, r2, r3 strh lr, [r0] @ movhi add r1, r1, #1 - str r1, [r5, #-224] + str r1, [r5, #1312] ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3594 -.L3585: + b .L3570 +.L3561: ldr r0, [ip, #12] ldr r1, [r1, #4] ldr r2, [ip, #8] bl FtlGcUpdatePage - b .L3584 -.L3595: - ldr r0, [r4, #-3032] + b .L3560 +.L3571: + ldr r0, [r4, #-1496] bl FtlGcBufFree mov r3, #0 - str r3, [r5, #208] - ldr r3, .L3596+12 + str r3, [r5, #1744] + ldr r3, .L3572+8 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3583 + bne .L3559 mov r0, #1 bl FtlGcFreeTempBlock -.L3594: +.L3570: mov r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3597: +.L3573: .align 2 -.L3596: +.L3572: .word .LANCHOR2 - .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR2-552 + .word .LANCHOR2+984 .fnend .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 @@ -21547,40 +21249,42 @@ Ftl_get_new_temp_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3602 + ldr r3, .L3578 movw r2, #65535 stmfd sp!, {r4, lr} .save {r4, lr} ldrh r1, [r3] cmp r1, r2 - beq .L3599 + beq .L3575 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3600 -.L3599: + bne .L3576 +.L3575: bl FtlCacheWriteBack mov r0, #0 bl FtlGcFreeTempBlock - ldr r0, .L3602+4 + ldr r0, .L3578+4 mov r4, #0 - sub r0, r0, #552 + add r0, r0, #984 strb r4, [r0, #8] bl allocate_data_superblock - ldr r3, .L3602+8 - strh r4, [r3, #232] @ movhi - strh r4, [r3, #234] @ movhi + ldr r3, .L3578+8 + movw r2, #1768 + strh r4, [r3, r2] @ movhi + movw r2, #1770 + strh r4, [r3, r2] @ movhi bl l2p_flush mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3600: - ldr r0, .L3602 +.L3576: + ldr r0, .L3578 ldmfd sp!, {r4, lr} b get_new_active_ppa -.L3603: +.L3579: .align 2 -.L3602: - .word .LANCHOR2-552 +.L3578: + .word .LANCHOR2+984 .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -21594,120 +21298,116 @@ ftl_read: @ 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, r3 - ldr r3, .L3652 + mov r4, r1 + ldr r1, .L3627 .pad #84 sub sp, sp, #84 - str r2, [sp, #36] - ldr r3, [r3] - str r3, [sp, #76] - ldr r3, .L3652+4 - ldr r3, [r3, #3284] - cmn r3, #1 - moveq r0, r3 - beq .L3605 + ldr r5, [r1, #3348] + cmn r5, #1 + moveq r0, r5 + beq .L3581 cmp r0, #16 - mov r7, r1 - bne .L3606 - add r0, r1, #256 + mov r8, r3 + str r2, [sp, #36] + bne .L3582 mov r1, r2 - mov r2, r8 + add r0, r4, #256 + mov r2, r3 bl FtlVendorPartRead - b .L3605 -.L3606: + b .L3581 +.L3582: ldr r3, [sp, #36] - add r3, r1, r3 + ldr r5, .L3627+4 + add r3, r4, r3 str r3, [sp, #40] - ldr r3, .L3652+8 ldr r2, [sp, #40] - ldr r3, [r3, #3908] + ldr r3, [r5, #-2740] cmp r2, r3 mvnhi r0, #0 - bhi .L3605 - ldr r4, .L3652+12 - mov r0, r1 - sub r3, r4, #3184 - ldrh r5, [r3, #-10] - mov r1, r5 + bhi .L3581 + sub r3, r5, #1648 + mov r0, r4 + ldrh r6, [r3, #-10] + mov r1, r6 bl __aeabi_uidiv - mov r1, r5 + mov r1, r6 ldr r3, [sp, #40] str r0, [sp, #28] sub r0, r3, #1 bl __aeabi_uidiv - ldr r2, .L3652+16 + ldr r2, .L3627+8 ldr r3, [sp, #28] ldr r1, [sp, #36] rsb r3, r3, #1 str r0, [sp, #32] add r3, r3, r0 str r3, [sp, #24] - ldr r3, [r2, #196] + ldr r3, [r2, #1732] ldr r0, [sp, #28] add r3, r1, r3 - str r3, [r2, #196] - ldr r3, [r4, #-3120] + str r3, [r2, #1732] + ldr r3, [r5, #-1584] ldr r2, [sp, #24] ldr r1, [sp, #32] add r3, r2, r3 - str r3, [r4, #-3120] + str r3, [r5, #-1584] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3607 + beq .L3583 bl FtlCacheWriteBack -.L3607: - ldr r5, [sp, #28] +.L3583: + ldr r6, [sp, #28] mov r9, #0 - ldr r4, .L3652+12 - mov r6, r9 + ldr r5, .L3627+4 + mov r7, r9 str r9, [sp, #48] str r9, [sp, #52] -.L3608: +.L3584: ldr r3, [sp, #24] cmp r3, #0 - beq .L3651 - mov r0, r5 - add r1, sp, #72 + beq .L3626 + mov r0, r6 + add r1, sp, #76 mov r2, #0 bl log2phys - ldr r3, [sp, #72] + ldr r3, [sp, #76] cmn r3, #1 - bne .L3647 + bne .L3622 mov r10, #0 -.L3609: - ldr r3, .L3652+20 +.L3585: + ldr r3, .L3627+12 ldrh r0, [r3] cmp r10, r0 - bcs .L3613 - mla r0, r0, r5, r10 + bcs .L3589 + mla r0, r0, r6, r10 ldr r2, [sp, #40] - cmp r0, r7 + cmp r0, r4 movcs r3, #1 movcc r3, #0 cmp r0, r2 movcs r3, #0 cmp r3, #0 - beq .L3611 - rsb r0, r7, r0 + beq .L3587 + rsb r0, r4, r0 mov r1, #0 mov r2, #512 add r0, r8, r0, asl #9 bl ftl_memset -.L3611: +.L3587: add r10, r10, #1 - b .L3609 -.L3647: - ldr r2, [r4, #-3036] + b .L3585 +.L3622: + ldr r2, [r5, #-1500] mov r10, #36 - mla r10, r10, r6, r2 + mla r10, r10, r7, r2 str r3, [r10, #4] ldr r3, [sp, #28] - cmp r5, r3 - bne .L3614 - ldr r3, [r4, #-2988] - mov r0, r7 + cmp r6, r3 + bne .L3590 + ldr r3, [r5, #-1452] + mov r0, r4 str r3, [r10, #8] - ldr r3, .L3652+20 + ldr r3, .L3627+12 ldrh fp, [r3] mov r1, fp bl __aeabi_uidivmod @@ -21719,56 +21419,56 @@ ftl_read: cmp r3, fp str r3, [sp, #48] streq r8, [r10, #8] - b .L3615 -.L3614: + b .L3591 +.L3590: ldr r3, [sp, #32] - cmp r5, r3 - bne .L3616 - ldr r3, [r4, #-2984] + cmp r6, r3 + bne .L3592 + ldr r3, [r5, #-1448] ldr r1, [sp, #40] str r3, [r10, #8] - ldr r3, .L3652+20 + ldr r3, .L3627+12 ldrh r2, [r3] - mul r3, r2, r5 + mul r3, r2, r6 rsb r9, r3, r1 cmp r9, r2 - bne .L3615 - b .L3649 -.L3616: - ldr r3, .L3652+20 - ldrh r3, [r3] - mul r3, r3, r5 -.L3649: - rsb r3, r7, r3 - add r3, r8, r3, asl #9 - str r3, [r10, #8] -.L3615: - ldr r3, .L3652+24 - ldr r2, [r4, #-2972] - str r5, [r10, #16] + bne .L3591 + b .L3624 +.L3592: + ldr r3, .L3627+12 ldrh r3, [r3] mul r3, r3, r6 - add r6, r6, #1 +.L3624: + rsb r3, r4, r3 + add r3, r8, r3, asl #9 + str r3, [r10, #8] +.L3591: + ldr r3, .L3627+16 + ldr r2, [r5, #-1436] + str r6, [r10, #16] + ldrh r3, [r3] + mul r3, r3, r7 + add r7, r7, #1 bic r3, r3, #3 add r3, r2, r3 str r3, [r10, #12] -.L3613: +.L3589: ldr r3, [sp, #24] - add r5, r5, #1 + add r6, r6, #1 subs r3, r3, #1 str r3, [sp, #24] - beq .L3617 - ldr r3, .L3652+28 + beq .L3593 + ldr r3, .L3627+20 ldrh r3, [r3] - cmp r6, r3, asl #3 - bne .L3608 -.L3617: - cmp r6, #0 - beq .L3608 - ldr r0, [r4, #-3036] - mov r1, r6 + cmp r7, r3, asl #3 + bne .L3584 +.L3593: + cmp r7, #0 + beq .L3584 + ldr r0, [r5, #-1500] + mov r1, r7 mov r2, #0 - ldr fp, .L3652+16 + ldr fp, .L3627+8 bl FlashReadPages ldr r3, [sp, #56] mov r3, r3, asl #9 @@ -21780,60 +21480,60 @@ ftl_read: str r3, [sp, #68] mov r3, #0 str r3, [sp, #44] -.L3624: +.L3600: ldr r3, [sp, #44] mov ip, #36 ldr r1, [sp, #28] mul r10, ip, r3 - ldr r3, [r4, #-3036] + ldr r3, [r5, #-1500] add r3, r3, r10 ldr r2, [r3, #16] cmp r2, r1 - bne .L3619 + bne .L3595 ldr r1, [r3, #8] - ldr r3, [r4, #-2988] + ldr r3, [r5, #-1452] cmp r1, r3 - bne .L3620 + bne .L3596 ldr r3, [sp, #60] mov r0, r8 ldr r2, [sp, #64] add r1, r1, r3 - b .L3650 -.L3619: + b .L3625 +.L3595: ldr r1, [sp, #32] cmp r2, r1 - bne .L3620 + bne .L3596 ldr r1, [r3, #8] - ldr r3, [r4, #-2984] + ldr r3, [r5, #-1448] cmp r1, r3 - bne .L3620 - ldr r3, .L3652+20 + bne .L3596 + ldr r3, .L3627+12 ldr r2, [sp, #68] ldrh r0, [r3] ldr r3, [sp, #32] mul r0, r0, r3 - rsb r0, r7, r0 + rsb r0, r4, r0 add r0, r8, r0, asl #9 -.L3650: +.L3625: bl ftl_memcpy -.L3620: - ldr r2, [r4, #-3036] +.L3596: + ldr r2, [r5, #-1500] add r3, r2, r10 ldr r1, [r2, r10] cmn r1, #1 streq r1, [sp, #52] - ldreq r2, [fp, #-248] + ldreq r2, [fp, #1288] addeq r2, r2, #1 - streq r2, [fp, #-248] + streq r2, [fp, #1288] ldr r2, [r3, #12] ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L3622 - ldr r2, [fp, #-248] - ldr r0, .L3652+32 + beq .L3598 + ldr r2, [fp, #1288] + ldr r0, .L3627+24 add r2, r2, #1 - str r2, [fp, #-248] + str r2, [fp, #1288] ldr lr, [r3, #12] ldr r2, [r3, #8] ldr r1, [lr, #4] @@ -21850,58 +21550,49 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [lr] bl printk -.L3622: - ldr r3, [r4, #-3036] +.L3598: + ldr r3, [r5, #-1500] add r2, r3, r10 ldr r3, [r3, r10] cmp r3, #256 - bne .L3623 + bne .L3599 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3623: +.L3599: ldr r3, [sp, #44] add r3, r3, #1 str r3, [sp, #44] - cmp r3, r6 - bne .L3624 - mov r6, #0 - b .L3608 -.L3651: - ldr r3, .L3652+36 + cmp r3, r7 + bne .L3600 + mov r7, #0 + b .L3584 +.L3626: + ldr r3, .L3627+28 ldrh r3, [r3, #-2] cmp r3, #0 - beq .L3626 + beq .L3602 ldr r0, [sp, #24] mov r1, #1 bl ftl_do_gc -.L3626: +.L3602: ldr r0, [sp, #52] -.L3605: - ldr r3, .L3652 - ldr r2, [sp, #76] - ldr r3, [r3] - cmp r2, r3 - beq .L3627 - bl __stack_chk_fail -.L3627: +.L3581: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3653: +.L3628: .align 2 -.L3652: - .word __stack_chk_guard +.L3627: .word .LANCHOR1 - .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR4 - .word .LANCHOR2-3194 - .word .LANCHOR2-3188 - .word .LANCHOR2-3268 + .word .LANCHOR2-1658 + .word .LANCHOR2-1652 + .word .LANCHOR2-1732 .word .LC55 - .word .LANCHOR2-3056 + .word .LANCHOR2-1520 .fnend .size ftl_read, .-ftl_read .align 2 @@ -21949,59 +21640,59 @@ FtlInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mvn r3, #0 - ldr r5, .L3674 - ldr r6, .L3674+4 - ldr r8, .L3674+8 - ldr r1, .L3674+12 - ldr r0, .L3674+16 - str r3, [r6, #3284] + ldr r4, .L3649 + ldr r6, .L3649+4 + ldr r8, .L3649+8 + ldr r1, .L3649+12 + ldr r0, .L3649+16 + str r3, [r6, #3348] mov r3, #0 - str r3, [r8, #424] - str r3, [r5, #-2812] + str r3, [r8, #1960] + str r3, [r4, #-1276] bl printk - ldr r0, .L3674+20 + ldr r0, .L3649+20 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldr r3, [r5, #-3264] + ldr r3, [r4, #-1728] uxth r0, r3 bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - ldrne r0, .L3674+24 - bne .L3673 + ldrne r0, .L3649+24 + bne .L3648 bl FtlSysBlkInit - subs r4, r0, #0 - beq .L3660 - ldr r0, .L3674+28 -.L3673: - ldr r1, .L3674+32 + subs r5, r0, #0 + beq .L3635 + ldr r0, .L3649+28 +.L3648: + ldr r1, .L3649+32 bl printk - b .L3659 -.L3660: + b .L3634 +.L3635: mov r1, #1 - str r1, [r6, #3284] + str r1, [r6, #3348] bl ftl_do_gc - sub r3, r5, #652 + add r3, r4, #884 ldrh r9, [r3] mov r7, r3 cmp r9, #15 - bhi .L3661 - sub r8, r8, #368 - sub r5, r5, #3072 + bhi .L3636 + add r8, r8, #1168 + sub r4, r4, #1536 movw r6, #65535 -.L3664: +.L3639: ldrh r3, [r8] cmp r3, r6 - bne .L3662 - ldrh r3, [r5] + bne .L3637 + ldrh r3, [r4] cmp r3, r6 - bne .L3662 - and r0, r4, #7 + bne .L3637 + and r0, r5, #63 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3662: +.L3637: mov r0, #1 mov r1, r0 bl ftl_do_gc @@ -22011,39 +21702,37 @@ FtlInit: ldrh r2, [r7] add r3, r9, #2 cmp r2, r3 - bhi .L3659 - add r4, r4, #1 - cmp r4, #1024 - bne .L3664 - b .L3659 -.L3661: - ldr r3, .L3674+36 - ldrb r3, [r3, #3904] @ zero_extendqisi2 + bhi .L3634 + add r5, r5, #1 + cmp r5, #4096 + bne .L3639 + b .L3634 +.L3636: + ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3659 + beq .L3634 mov r4, #128 -.L3666: +.L3641: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L3666 -.L3659: + bne .L3641 +.L3634: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3675: +.L3650: .align 2 -.L3674: +.L3649: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR4 .word .LC141 .word .LC46 - .word .LANCHOR0+3876 + .word .LANCHOR2-2772 .word .LC158 .word .LC159 .word .LANCHOR3+108 - .word .LANCHOR0 .fnend .size FtlInit, .-FtlInit .align 2 @@ -22051,46 +21740,42 @@ FtlInit: .type ftl_write, %function ftl_write: .fnstart - @ args = 0, pretend = 0, frame = 104 + @ args = 0, pretend = 0, frame = 96 @ 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 #108 - sub sp, sp, #108 - ldr r10, .L3750 + .pad #100 + sub sp, sp, #100 + ldr r10, .L3724 str r3, [sp, #8] - ldr r3, .L3750+4 - ldr r3, [r3] - str r3, [sp, #100] - ldr r3, [r10, #-2812] + ldr r3, [r10, #-1276] cmp r3, #0 - bne .L3718 + bne .L3692 mov r8, r2 - ldr r2, .L3750+8 - ldr r2, [r2, #3284] + ldr r2, .L3724+4 + ldr r2, [r2, #3348] cmn r2, #1 moveq r0, r3 - beq .L3677 + beq .L3652 cmp r0, #16 mov r7, r1 - bne .L3678 + bne .L3653 add r0, r1, #256 ldr r2, [sp, #8] mov r1, r8 bl FtlVendorPartWrite - b .L3677 -.L3678: - ldr r3, .L3750+12 + b .L3652 +.L3653: + ldr r3, [r10, #-2740] add r5, r1, r8 - ldr r3, [r3, #3908] cmp r5, r3 mvnhi r0, #0 - bhi .L3677 - ldr r6, .L3750+16 + bhi .L3652 + ldr r6, .L3724+8 mov r3, #2048 mov r0, r1 - str r3, [r6, #428] - sub r3, r10, #3184 + str r3, [r6, #1964] + sub r3, r10, #1648 ldrh r4, [r3, #-10] mov r1, r4 bl __aeabi_uidiv @@ -22105,35 +21790,35 @@ ftl_write: add r3, r5, #1 str r3, [sp, #4] ldr r2, [sp, #4] - ldr r3, [r10, #-3136] + ldr r3, [r10, #-1600] add r3, r2, r3 - ldr r2, [r10, #-3048] - str r3, [r10, #-3136] - ldr r3, [r6, #192] + ldr r2, [r10, #-1512] + str r3, [r10, #-1600] + ldr r3, [r6, #1728] add r3, r8, r3 - str r3, [r6, #192] + str r3, [r6, #1728] movcs r3, #1 movcc r3, #0 cmp r2, #0 str r3, [sp, #24] - beq .L3680 + beq .L3655 mov r3, #36 - ldr r9, [r10, #-3016] + ldr r9, [r10, #-1480] mul r3, r3, r2 ldr r2, [sp, #12] sub r3, r3, #36 add r9, r9, r3 ldr r3, [r9, #16] cmp r2, r3 - bne .L3681 - ldr r3, [r10, #-3128] + bne .L3656 + ldr r3, [r10, #-1592] mov r1, r4 mov r0, r7 add r3, r3, #1 - str r3, [r10, #-3128] - ldr r3, [r6, #432] + str r3, [r10, #-1592] + ldr r3, [r6, #1968] add r3, r3, #1 - str r3, [r6, #432] + str r3, [r6, #1968] bl __aeabi_uidivmod ldr r0, [r9, #8] rsb r4, r1, r4 @@ -22145,11 +21830,11 @@ ftl_write: mov r2, r10 bl ftl_memcpy cmp r5, #0 - bne .L3682 - ldr r3, [r6, #432] + bne .L3657 + ldr r3, [r6, #1968] cmp r3, #2 - ble .L3718 -.L3682: + ble .L3692 +.L3657: ldr r3, [sp, #8] rsb r8, r4, r8 add r7, r7, r4 @@ -22159,70 +21844,70 @@ ftl_write: ldr r3, [sp, #12] add r3, r3, #1 str r3, [sp, #12] -.L3681: +.L3656: mov r3, #0 - str r3, [r6, #432] -.L3680: + str r3, [r6, #1968] +.L3655: ldr r0, [sp, #12] ldr r1, [sp, #28] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3683 + beq .L3658 bl FtlCacheWriteBack -.L3683: - ldr r5, .L3750+20 +.L3658: + ldr r5, .L3724+12 mov r3, #0 str r3, [sp, #16] - add r4, r5, #648 + sub r4, r5, #888 str r3, [sp, #32] - str r5, [r6, #416] + str r5, [r6, #1952] ldr r6, [sp, #12] -.L3684: +.L3659: ldr r3, [sp, #4] cmp r3, #0 - beq .L3749 + beq .L3723 ldrh r2, [r5, #4] cmp r2, #0 - bne .L3685 - ldr r3, .L3750+20 - ldr r9, .L3750+8 + bne .L3660 + ldr r3, .L3724+12 + ldr r9, .L3724+4 cmp r5, r3 - bne .L3686 + bne .L3661 add r0, r5, #48 ldrh r10, [r0, #4] cmp r10, #0 - bne .L3687 + bne .L3662 bl allocate_new_data_superblock - str r10, [r9, #3292] -.L3687: - ldr r0, .L3750+20 + str r10, [r9, #3356] +.L3662: + ldr r0, .L3724+12 bl allocate_new_data_superblock - ldr r3, [r9, #3292] + ldr r3, [r9, #3356] cmp r3, #0 - ldrne r5, .L3750+24 - bne .L3688 -.L3689: - ldr r5, .L3750+20 - b .L3688 -.L3686: + ldrne r5, .L3724+16 + bne .L3663 +.L3664: + ldr r5, .L3724+12 + b .L3663 +.L3661: ldrh r3, [r3, #4] - str r2, [r9, #3292] + str r2, [r9, #3356] cmp r3, #0 - bne .L3689 + bne .L3664 mov r0, r5 bl allocate_new_data_superblock -.L3688: +.L3663: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3690 + bne .L3665 mov r0, r5 bl allocate_new_data_superblock -.L3690: - ldr r3, .L3750+16 - str r5, [r3, #416] -.L3685: - ldr r3, [r4, #-3052] - ldr r1, [r4, #-3048] +.L3665: + ldr r3, .L3724+8 + str r5, [r3, #1952] +.L3660: + ldr r3, [r4, #-1516] + ldr r1, [r4, #-1512] ldrh r2, [r5, #4] rsb r3, r1, r3 cmp r2, r3 @@ -22232,15 +21917,15 @@ ftl_write: movcc r3, r2 str r3, [sp, #44] mov r3, #0 -.L3747: +.L3721: str r3, [sp, #20] ldr r3, [sp, #20] ldr r2, [sp, #44] cmp r3, r2 - beq .L3692 + beq .L3667 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3692 + beq .L3667 ldr r3, [sp, #28] ldr r2, [sp, #20] rsb ip, r3, r6 @@ -22252,25 +21937,25 @@ ftl_write: moveq r3, #0 andne r3, r3, #1 cmp r3, #0 - beq .L3693 - ldr r3, .L3750+28 + beq .L3668 + ldr r3, .L3724+20 ldrh r2, [r3] add r3, r8, r7 mls r3, r2, r6, r3 cmp r3, r2 - bne .L3692 -.L3693: - add r1, sp, #60 + bne .L3667 +.L3668: + add r1, sp, #56 mov r2, #0 mov r0, r6 str ip, [sp, #52] bl log2phys mov r0, r5 bl get_new_active_ppa - ldr r10, [r4, #-3048] - ldr r1, [r4, #-3016] + ldr r10, [r4, #-1512] + ldr r1, [r4, #-1480] mov r3, #36 - ldr fp, .L3750+32 + ldr fp, .L3724+24 mla r1, r3, r10, r1 ldrh r2, [fp] str r6, [r1, #16] @@ -22280,13 +21965,13 @@ ftl_write: bic r3, r0, #3 str r3, [sp, #36] ldr r0, [sp, #36] - ldr r3, [r4, #-2964] + ldr r3, [r4, #-1428] add r9, r3, r0 ldrh r0, [fp, #-2] str r9, [r1, #12] str r3, [sp, #40] mul r10, r10, r0 - ldr r0, [r4, #-2992] + ldr r0, [r4, #-1456] bic r10, r10, #3 add r10, r0, r10 mov r0, r9 @@ -22300,9 +21985,9 @@ ftl_write: mov r10, r10, lsr #5 orrs r3, r10, ip ldr r3, [sp, #48] - beq .L3694 + beq .L3669 cmp r10, #0 - beq .L3695 + beq .L3670 ldrh fp, [fp, #-6] mov r0, r7 mov r1, fp @@ -22314,11 +21999,11 @@ ftl_write: movcc r3, r2 movcs r3, r8 str r3, [sp, #16] - b .L3696 -.L3695: + b .L3671 +.L3670: cmp ip, #0 - beq .L3696 - ldr r3, .L3750+28 + beq .L3671 + ldr r3, .L3724+20 add r2, r8, r7 str r10, [sp, #32] ldrh r1, [r3] @@ -22326,20 +22011,20 @@ ftl_write: rsb r2, r1, r2 uxth r3, r2 str r3, [sp, #16] -.L3696: - ldr r3, .L3750+28 +.L3671: + ldr r3, .L3724+20 ldr r2, [sp, #16] ldrh r3, [r3] cmp r2, r3 - bne .L3697 + bne .L3672 cmp r10, #0 - ldr r0, .L3750 + ldr r0, .L3724 moveq r3, r2 - ldr r2, .L3750 + ldr r2, .L3724 muleq r1, r6, r3 ldreq r3, [sp, #8] - ldr r2, [r2, #-3048] - ldr r0, [r0, #-3016] + ldr r2, [r2, #-1512] + ldr r0, [r0, #-1480] rsbeq r1, r7, r1 ldrne r1, [sp, #8] addeq r1, r3, r1, asl #9 @@ -22348,104 +22033,104 @@ ftl_write: mov r3, #36 mla r3, r3, r2, r0 strne r1, [r3, #8] - bne .L3700 + bne .L3675 ldr r0, [r3, #8] - ldr r3, .L3750+36 + ldr r3, .L3724+28 ldrh r2, [r3] - b .L3745 -.L3697: - ldr r2, [sp, #60] + b .L3719 +.L3672: + ldr r2, [sp, #56] mov r3, #36 cmn r2, #1 - beq .L3701 - ldr r1, [r4, #-3016] - add r0, sp, #64 - str r2, [sp, #68] - ldr r2, [r4, #-3048] - str r6, [sp, #80] + beq .L3676 + ldr r1, [r4, #-1480] + add r0, sp, #60 + str r2, [sp, #64] + ldr r2, [r4, #-1512] + str r6, [sp, #76] mla r3, r3, r2, r1 mov r1, #1 ldr r2, [r3, #8] ldr r3, [r3, #12] - str r2, [sp, #72] + str r2, [sp, #68] mov r2, #0 - str r3, [sp, #76] + str r3, [sp, #72] bl FlashReadPages - ldr r3, [sp, #64] + ldr r3, [sp, #60] cmn r3, #1 - ldreq r2, .L3750+16 - ldreq r3, [r2, #-248] + ldreq r2, .L3724+8 + ldreq r3, [r2, #1288] addeq r3, r3, #1 - streq r3, [r2, #-248] - beq .L3704 -.L3702: + streq r3, [r2, #1288] + beq .L3679 +.L3677: ldr r3, [r9, #8] cmp r3, r6 - beq .L3704 - ldr r2, .L3750+16 - ldr r0, .L3750+40 - ldr r3, [r2, #-248] + beq .L3679 + ldr r2, .L3724+8 + ldr r0, .L3724+32 + ldr r3, [r2, #1288] add r3, r3, #1 - str r3, [r2, #-248] + str r3, [r2, #1288] mov r2, r6 ldr r1, [r9, #8] bl printk - b .L3704 -.L3701: - ldr r2, [r4, #-3048] - ldr r1, [r4, #-3016] + b .L3679 +.L3676: + ldr r2, [r4, #-1512] + ldr r1, [r4, #-1480] mla r3, r3, r2, r1 mov r1, #0 ldr r0, [r3, #8] - ldr r3, .L3750+36 + ldr r3, .L3724+28 ldrh r2, [r3] bl ftl_memset -.L3704: +.L3679: cmp r10, #0 mov r3, #36 - beq .L3705 - ldr r1, [r4, #-3016] - ldr r2, [r4, #-3048] + beq .L3680 + ldr r1, [r4, #-1480] + ldr r2, [r4, #-1512] mla r3, r3, r2, r1 ldr r1, [sp, #8] ldr r0, [r3, #8] ldr r3, [sp, #32] add r0, r0, r3, asl #9 - b .L3748 -.L3705: - ldr r1, [r4, #-3048] - ldr r2, [r4, #-3016] + b .L3722 +.L3680: + ldr r1, [r4, #-1512] + ldr r2, [r4, #-1480] mla r3, r3, r1, r2 - ldr r2, .L3750+28 + ldr r2, .L3724+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 -.L3748: +.L3722: ldr r3, [sp, #16] mov r2, r3, asl #9 - b .L3745 -.L3694: + b .L3719 +.L3669: ldr r2, [sp, #24] cmp r2, #0 - ldr r2, [r4, #-3048] - beq .L3706 - ldr r1, [r4, #-3016] + ldr r2, [r4, #-1512] + beq .L3681 + ldr r1, [r4, #-1480] mla r3, r3, r2, r1 - ldr r2, .L3750+28 + ldr r2, .L3724+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 .L3700 -.L3706: - ldr r0, [r4, #-3016] + b .L3675 +.L3681: + ldr r0, [r4, #-1480] mla r3, r3, r2, r0 - ldr r2, .L3750+28 + ldr r2, .L3724+20 ldrh r1, [r2] ldrh r2, [fp, #-2] ldr r0, [r3, #8] @@ -22453,98 +22138,98 @@ ftl_write: ldr r3, [sp, #8] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3745: +.L3719: bl ftl_memcpy -.L3700: - ldr r3, .L3750+44 +.L3675: + ldr r3, .L3724+36 ldr r2, [sp, #40] ldr r1, [sp, #36] strh r3, [r2, r1] @ movhi - ldr r3, [r4, #-3144] + ldr r3, [r4, #-1608] 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, #-3144] - ldr r3, [sp, #60] + str r3, [r4, #-1608] + ldr r3, [sp, #56] str r3, [r9, #12] ldrh r3, [r5] strh r3, [r9, #2] @ movhi - ldr r3, [r4, #-3048] + ldr r3, [r4, #-1512] add r3, r3, #1 - str r3, [r4, #-3048] + str r3, [r4, #-1512] ldr r3, [sp, #20] add r3, r3, #1 - b .L3747 -.L3692: + b .L3721 +.L3667: ldr r3, [sp, #4] ldr r2, [sp, #20] ldr r1, [sp, #24] rsb r3, r2, r3 - ldr r2, [r4, #-3052] + ldr r2, [r4, #-1516] str r3, [sp, #4] - ldr r3, [r4, #-3048] + ldr r3, [r4, #-1512] cmp r3, r2 orrcs r1, r1, #1 cmp r1, #0 - bne .L3710 + bne .L3685 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3710 -.L3712: + beq .L3685 +.L3687: mov r3, #0 str r3, [sp, #24] - b .L3684 -.L3710: + b .L3659 +.L3685: bl FtlCacheWriteBack - ldr r2, .L3750 + ldr r2, .L3724 mov r3, #0 - str r3, [r2, #-3048] + str r3, [r2, #-1512] ldr r3, [sp, #4] cmp r3, #1 - bhi .L3684 - b .L3712 -.L3749: + bhi .L3659 + b .L3687 +.L3723: mov r0, r3 ldr r2, [sp, #12] ldr r3, [sp, #28] - ldr r5, .L3750+48 + ldr r5, .L3724+40 rsb r1, r2, r3 bl ftl_do_gc ldrh r4, [r5] cmp r4, #5 - bls .L3723 + bls .L3697 cmp r4, #31 - bhi .L3718 - ldr r3, .L3750+12 + bhi .L3692 + ldr r3, .L3724+44 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L3718 -.L3723: - ldr r6, .L3750 + bne .L3692 +.L3697: + ldr r6, .L3724 ldr r4, [sp, #4] - ldr r7, .L3750+52 - sub r8, r6, #3072 -.L3736: + ldr r7, .L3724+48 + sub r8, r6, #1536 +.L3710: ldrh r2, [r7] movw r3, #65535 cmp r2, r3 - bne .L3716 + bne .L3691 ldrh r3, [r8] cmp r3, r2 - bne .L3716 - ldr r2, .L3750+56 + bne .L3691 + ldr r2, .L3724+52 ldrh r2, [r2] cmp r2, r3 - bne .L3716 + bne .L3691 and r0, r4, #7 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3716: - ldr r3, .L3750+60 +.L3691: + ldr r3, .L3724+56 mov r0, #1 mov r1, r0 mov r2, #128 @@ -22554,47 +22239,39 @@ ftl_write: mov r0, #0 mov r1, #1 bl ftl_do_gc - ldr r3, [r6, #-2812] + ldr r3, [r6, #-1276] cmp r3, #0 - bne .L3718 + bne .L3692 ldrh r3, [r5] cmp r3, #2 - bhi .L3718 + bhi .L3692 add r4, r4, #1 cmp r4, #256 - bne .L3736 -.L3718: + bne .L3710 +.L3692: mov r0, #0 -.L3677: - ldr r3, .L3750+4 - ldr r2, [sp, #100] - ldr r3, [r3] - cmp r2, r3 - beq .L3717 - bl __stack_chk_fail -.L3717: - add sp, sp, #108 +.L3652: + add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3751: +.L3725: .align 2 -.L3750: +.L3724: .word .LANCHOR2 - .word __stack_chk_guard .word .LANCHOR1 - .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR2-648 - .word .LANCHOR2-600 - .word .LANCHOR2-3194 - .word .LANCHOR2-3188 - .word .LANCHOR2-3190 + .word .LANCHOR2+888 + .word .LANCHOR2+936 + .word .LANCHOR2-1658 + .word .LANCHOR2-1652 + .word .LANCHOR2-1654 .word .LC160 .word -3947 - .word .LANCHOR2-652 - .word .LANCHOR4-368 - .word .LANCHOR2-3070 - .word .LANCHOR2-3062 + .word .LANCHOR2+884 + .word .LANCHOR0 + .word .LANCHOR4+1168 + .word .LANCHOR2-1534 + .word .LANCHOR2-1526 .fnend .size ftl_write, .-ftl_write .align 2 @@ -22637,28 +22314,23 @@ ftl_sys_write: .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3772 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 r2, [r3] - str r3, [sp, #4] - str r2, [sp, #60] - ldr r2, .L3772+4 - ldrb r2, [r2, #3904] @ zero_extendqisi2 - cmp r2, #0 - beq .L3755 - ldr r8, .L3772+8 - movw r3, #270 - ldr r4, .L3772+12 - ldr r0, .L3772+16 + .pad #52 + sub sp, sp, #52 + ldr r4, .L3745 + 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 ldrh r7, [r8, r3] - sub r9, r4, #648 - ldr r3, [r4, #-2940] - sub r5, r4, #600 + ldr r3, [r4, #-1404] mov r6, r7, asl #1 mov r1, r7 ldrh r2, [r3, r6] @@ -22672,43 +22344,42 @@ ftl_fix_nand_power_lost_error: mov r0, r5 bl allocate_new_data_superblock movw r5, #4097 -.L3757: +.L3731: subs r5, r5, #1 - beq .L3761 + beq .L3735 mov r0, #1 mov r1, r0 bl ftl_do_gc - ldr r3, [r4, #-2940] + ldr r3, [r4, #-1404] ldrh r3, [r3, r6] cmp r3, #0 - bne .L3757 -.L3761: - ldr r3, [r4, #-2940] + bne .L3731 +.L3735: + ldr r3, [r4, #-1404] mov r1, r7 - ldr r0, .L3772+16 - ldr r5, .L3772+12 + ldr r0, .L3745+8 + ldr r9, .L3745 ldrh r2, [r3, r6] bl printk - ldr r3, [r4, #-2940] - ldrh r10, [r3, r6] - cmp r10, #0 - bne .L3759 - add r0, sp, #64 - mov fp, #36 - strh r7, [r0, #-52]! @ movhi - bl make_superblock - sub r3, r5, #3264 - ldr r9, [r5, #-3024] - mov r5, r10 - ldrh lr, [r3, #-4] - mov r3, r10 - mov ip, r3 + ldr r3, [r4, #-1404] + ldrh r5, [r3, r6] + cmp r5, #0 + bne .L3733 + add r0, sp, #48 movw r10, #65535 - add r0, sp, #26 -.L3762: + mov fp, #36 + strh r7, [r0, #-48]! @ movhi + bl make_superblock + sub r3, r9, #1728 + ldr r9, [r9, #-1488] + ldrh lr, [r3, #-4] + mov r3, r5 + mov ip, r3 + add r0, sp, #14 +.L3736: uxth r2, r3 cmp r2, lr - bcs .L3771 + bcs .L3744 ldrh r2, [r0, #2]! add r3, r3, #1 cmp r2, r10 @@ -22718,43 +22389,34 @@ ftl_fix_nand_power_lost_error: uxthne r5, r5 stmneib r1, {r2, ip} strne ip, [r1, #12] - b .L3762 -.L3771: - ldr r3, [r4, #-2940] + b .L3736 +.L3744: + ldr r3, [r4, #-1404] mov r1, r7 - ldr r0, .L3772+20 + ldr r0, .L3745+12 ldrh r2, [r3, r6] bl printk mov r1, #0 mov r2, r5 - ldr r0, [r4, #-3024] + ldr r0, [r4, #-1488] bl FlashEraseBlocks - ldr r0, [r4, #-3024] + ldr r0, [r4, #-1488] mov r1, #1 mov r2, r5 bl FlashEraseBlocks -.L3759: - movw r3, #270 +.L3733: + movw r3, #1806 mvn r2, #0 strh r2, [r8, r3] @ movhi -.L3755: - ldr r3, [sp, #4] - ldr r2, [sp, #60] - ldr r3, [r3] - cmp r2, r3 - beq .L3765 - bl __stack_chk_fail -.L3765: - add sp, sp, #68 +.L3729: + add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3773: +.L3746: .align 2 -.L3772: - .word __stack_chk_guard - .word .LANCHOR0 - .word .LANCHOR4 +.L3745: .word .LANCHOR2 + .word .LANCHOR4 .word .LC161 .word .LC162 .fnend @@ -22993,37 +22655,37 @@ ftl_fix_nand_power_lost_error: .byte 40 .byte 24 .byte 16 - .type __func__.20209, %object - .size __func__.20209, 11 -__func__.20209: + .type __func__.20261, %object + .size __func__.20261, 11 +__func__.20261: .ascii "FtlMemInit\000" .space 1 - .type __func__.20952, %object - .size __func__.20952, 12 -__func__.20952: + .type __func__.21004, %object + .size __func__.21004, 12 +__func__.21004: .ascii "FtlCheckVpc\000" - .type __func__.20984, %object - .size __func__.20984, 17 -__func__.20984: + .type __func__.21036, %object + .size __func__.21036, 17 +__func__.21036: .ascii "FtlDumpBlockInfo\000" .space 3 - .type __func__.21003, %object - .size __func__.21003, 16 -__func__.21003: + .type __func__.21055, %object + .size __func__.21055, 16 +__func__.21055: .ascii "FtlScanAllBlock\000" - .type __func__.21269, %object - .size __func__.21269, 17 -__func__.21269: + .type __func__.21321, %object + .size __func__.21321, 17 +__func__.21321: .ascii "ftl_scan_all_ppa\000" .space 3 - .type __func__.21251, %object - .size __func__.21251, 21 -__func__.21251: + .type __func__.21303, %object + .size __func__.21303, 21 +__func__.21303: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.20282, %object - .size __func__.20282, 8 -__func__.20282: + .type __func__.20334, %object + .size __func__.20334, 8 +__func__.20334: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -23318,7 +22980,7 @@ __func__.20282: .LC140: .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" .LC141: - .ascii "FTL version: 5.0.57 20190927\000" + .ascii "FTL version: 5.0.60 20200218\000" .LC142: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" @@ -23523,7 +23185,7 @@ gNandParaInfo: .byte 0 .space 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2592 + .size NandFlashParaTbl, 2656 NandFlashParaTbl: .byte 6 .byte 44 @@ -24228,6 +23890,32 @@ NandFlashParaTbl: .byte 0 .space 4 .byte 6 + .byte 44 + .byte -92 + .byte 100 + .byte 50 + .byte -86 + .byte 4 + .byte 4 + .byte 1 + .byte 32 + .short 1024 + .byte 2 + .byte 1 + .short 2192 + .short 1479 + .byte 10 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .space 4 + .byte 6 .byte -83 .byte -34 .byte -108 @@ -24799,6 +24487,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .space 4 + .byte 5 + .byte -119 + .byte -124 + .byte 100 + .byte 60 + .byte -91 + .byte 0 + .byte 7 + .byte 1 + .byte 32 + .short 512 + .byte 2 + .byte 2 + .short 1024 + .short 455 + .byte 4 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .space 4 .byte 6 .byte -104 .byte -41 @@ -26041,13 +25755,13 @@ gNandChipMap: gNandOptPara: .space 32 .type slcPageToMlcPageTbl, %object - .size slcPageToMlcPageTbl, 512 + .size slcPageToMlcPageTbl, 1024 slcPageToMlcPageTbl: - .space 512 - .type mlcPageToSlcPageTbl, %object - .size mlcPageToSlcPageTbl, 1024 -mlcPageToSlcPageTbl: .space 1024 + .type mlcPageToSlcPageTbl, %object + .size mlcPageToSlcPageTbl, 2048 +mlcPageToSlcPageTbl: + .space 2048 .type gNandMaxDie, %object .size gNandMaxDie, 1 gNandMaxDie: diff --git a/drivers/rk_nand/rk_ftlv5_arm64.S b/drivers/rk_nand/rk_ftlv5_arm64.S index 945b5dc95749..f009b0efc192 100644 --- a/drivers/rk_nand/rk_ftlv5_arm64.S +++ b/drivers/rk_nand/rk_ftlv5_arm64.S @@ -5,26 +5,11 @@ * 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: 2019-05-08 + * date: 2020-02-18 * function: rk ftl v5 for rockchip soc base on arm v8 to support MLC NAND. */ .cpu generic+fp+simd .file "rk_ftlv5_arm64.S" -#APP - .irp num,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 - .equ .L__reg_num_x\num, \num - .endr - .equ .L__reg_num_xzr, 31 - - .macro mrs_s, rt, sreg - .inst 0xd5200000|(\sreg)|(.L__reg_num_\rt) - .endm - - .macro msr_s, sreg, rt - .inst 0xd5000000|(\sreg)|(.L__reg_num_\rt) - .endm - -#NO_APP .text .align 2 .type FlashReadFacBbtData.part.6, %function @@ -232,16 +217,21 @@ FlashSetRandomizer: FlashBlockAlignInit: uxth w0, w0 adrp x1, .LANCHOR0 - cmp w0, 256 + cmp w0, 512 add x1, x1, :lo12:.LANCHOR0 bls .L36 - mov w0, 512 - b .L39 + mov w0, 1024 + b .L40 .L36: + cmp w0, 256 + bls .L38 + mov w0, 512 + b .L40 +.L38: cmp w0, 128 - bls .L39 + bls .L40 mov w0, 256 -.L39: +.L40: str w0, [x1,92] ret .size FlashBlockAlignInit, .-FlashBlockAlignInit @@ -295,7 +285,7 @@ FlashReadDpDataOutCmd: ldrb w2, [x5,8] and w5, w1, 255 add x2, x6, x2, lsl 8 - bne .L42 + bne .L43 mov w6, 6 str w6, [x2,2056] str wzr, [x2,2052] @@ -303,8 +293,8 @@ FlashReadDpDataOutCmd: str w5, [x2,2052] str w4, [x2,2052] str w3, [x2,2052] - b .L44 -.L42: + b .L45 +.L43: str wzr, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] @@ -315,7 +305,7 @@ FlashReadDpDataOutCmd: str w3, [x2,2056] str wzr, [x2,2052] str wzr, [x2,2052] -.L44: +.L45: mov w3, 224 str w3, [x2,2056] bl FlashSetRandomizer @@ -362,7 +352,7 @@ FlashEraseCmd: add x5, x4, x0 ldr x4, [x4,x0] ldrb w0, [x5,8] - cbz w2, .L47 + cbz w2, .L48 add x2, x4, x0, lsl 8 mov w5, 96 str w5, [x2,2056] @@ -374,7 +364,7 @@ FlashEraseCmd: str w5, [x2,2052] ldr w2, [x3,92] add w1, w1, w2 -.L47: +.L48: add x0, x4, x0, lsl 8 mov w2, 96 str w2, [x0,2056] @@ -423,15 +413,23 @@ FlashProgDpSecondCmd: FlashProgSecondCmd: adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + stp x29, x30, [sp, -32]! add x1, x1, :lo12:.LANCHOR0 add x1, x1, 24 + add x29, sp, 0 add x2, x1, x0 - ldr x1, [x1,x0] - ldrb w0, [x2,8] - add x0, x0, 8 - add x0, x1, x0, lsl 8 - mov w1, 16 - str w1, [x0,8] + stp x19, x20, [sp,16] + ldrb w19, [x2,8] + ldr x20, [x1,x0] + mov x0, 36284 + add x19, x19, 8 + movk x0, 0x6, lsl 16 + add x19, x20, x19, lsl 8 + bl __const_udelay + mov w0, 16 + str w0, [x19,8] + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 ret .size FlashProgSecondCmd, .-FlashProgSecondCmd .align 2 @@ -483,17 +481,17 @@ js_hash: mov w0, 42982 mov x2, 0 movk w0, 0x47c6, lsl 16 -.L56: +.L57: cmp w1, w2 - bls .L58 + bls .L59 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 .L56 -.L58: + b .L57 +.L59: ret .size js_hash, .-js_hash .align 2 @@ -512,57 +510,57 @@ BuildFlashLsbPageTable: add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w1 - cbnz w0, .L61 + cbnz w0, .L62 mov x0, 0 add x3, x2, :lo12:.LANCHOR0 -.L62: +.L63: add x1, x3, 136 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L62 -.L68: + bne .L63 +.L69: add x19, x2, :lo12:.LANCHOR0 mov w1, 255 - mov w2, 1024 - add x0, x19, 648 + mov w2, 2048 + add x0, x19, 1160 uxth w20, w20 bl ftl_memset mov x0, 0 mov x2, x19 - b .L63 -.L61: + b .L64 +.L62: cmp w0, 1 - bne .L64 + bne .L65 mov x0, 0 mov w5, 3 mov w6, 2 add x4, x2, :lo12:.LANCHOR0 -.L67: +.L68: cmp x0, 3 uxth w1, w0 mov w3, w1 - bls .L65 + 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 -.L65: +.L66: add x1, x4, 136 strh w3, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L67 - b .L68 -.L64: + bne .L68 + b .L69 +.L65: cmp w0, 2 - bne .L69 + bne .L70 mov w1, 65535 mov x0, 0 add x5, x2, :lo12:.LANCHOR0 -.L71: +.L72: add x4, x5, 136 cmp x0, 1 uxth w3, w0 @@ -572,36 +570,36 @@ BuildFlashLsbPageTable: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L71 - b .L68 -.L69: - cmp w0, 3 bne .L72 + b .L69 +.L70: + cmp w0, 3 + bne .L73 mov x0, 0 mov w5, 5 mov w6, 4 add x4, x2, :lo12:.LANCHOR0 -.L75: +.L76: cmp x0, 5 uxth w1, w0 mov w3, w1 - bls .L73 + bls .L74 ubfiz w3, w1, 1, 15 and w1, w1, 1 cmp w1, wzr csel w1, w5, w6, ne sub w3, w3, w1 uxth w3, w3 -.L73: +.L74: add x1, x4, 136 strh w3, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L75 - b .L68 -.L72: - cmp w0, 4 bne .L76 + b .L69 +.L73: + cmp w0, 4 + bne .L77 add x1, x2, :lo12:.LANCHOR0 mov w6, 7 add x3, x1, 136 @@ -621,7 +619,7 @@ BuildFlashLsbPageTable: strh w0, [x3,14] mov w0, 8 strh w1, [x3,6] -.L78: +.L79: and w4, w0, 1 ubfiz w1, w0, 1, 15 add w0, w0, 1 @@ -632,40 +630,40 @@ BuildFlashLsbPageTable: sub w1, w1, w4 cmp w0, 256 strh w1, [x3,14] - bne .L78 - b .L68 -.L76: - cmp w0, 5 bne .L79 + b .L69 +.L77: + cmp w0, 5 + bne .L80 mov x0, 0 add x3, x2, :lo12:.LANCHOR0 -.L80: +.L81: add x1, x3, 136 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L80 + bne .L81 mov x0, 0 -.L81: +.L82: add x3, x1, x0 add w4, w0, 16 add x0, x0, 2 cmp x0, 480 strh w4, [x3,32] - bne .L81 - b .L68 -.L79: - cmp w0, 6 bne .L82 + b .L69 +.L80: + cmp w0, 6 + bne .L83 mov x3, 0 mov w6, 12 mov w7, 10 add x5, x2, :lo12:.LANCHOR0 -.L85: +.L86: cmp x3, 5 uxth w4, w3 mov w0, w4 - bls .L83 + bls .L84 add w0, w4, w4, lsl 1 and w4, w4, 1 cmp w4, wzr @@ -673,42 +671,62 @@ BuildFlashLsbPageTable: csel w1, w6, w7, ne sub w0, w0, w1 uxth w0, w0 -.L83: +.L84: add x1, x5, 136 strh w0, [x1,x3,lsl 1] add x3, x3, 1 cmp x3, 256 - bne .L85 - b .L68 -.L82: + bne .L86 + b .L69 +.L83: cmp w0, 9 - bne .L68 + bne .L87 add x0, x2, :lo12:.LANCHOR0 - add x3, x0, 136 + add x1, x0, 136 strh wzr, [x0,136] mov w0, 1 - strh w0, [x3,2] + strh w0, [x1,2] mov w0, 2 - strh w0, [x3,4] + strh w0, [x1,4] mov x0, 0 -.L86: - add x1, x3, x0 +.L88: + add x3, x1, x0 add w4, w0, 3 add x0, x0, 2 cmp x0, 506 - strh w4, [x1,6] - bne .L86 - b .L68 -.L63: + strh w4, [x3,6] + bne .L88 + b .L69 +.L87: + cmp w0, 10 + bne .L69 + mov x0, 0 + add x3, x2, :lo12:.LANCHOR0 +.L89: + add x1, x3, 136 + strh w0, [x1,x0,lsl 1] + add x0, x0, 1 + cmp x0, 63 + bne .L89 + mov x0, 0 +.L90: + 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 .L105 + bls .L111 add x1, x2, 136 - add x3, x2, 648 + add x3, x2, 1160 ldrh w1, [x1,x0,lsl 1] add x0, x0, 1 strh w1, [x3,w1,sxtw 1] - b .L63 -.L105: + b .L64 +.L111: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -747,10 +765,10 @@ ToshibaSetRRPara: add x24, x24, :lo12:g_maxRegNum mov x19, x2 add x26, x26, :lo12:g_retryMode -.L108: +.L114: ldrb w0, [x24] cmp w0, w20 - bls .L114 + bls .L120 mov w0, 85 str w0, [x22,8] add x0, x19, 256 @@ -760,21 +778,21 @@ ToshibaSetRRPara: bl __const_udelay ldrb w0, [x26] cmp w0, 34 - bne .L109 + bne .L115 ldrsb w0, [x25,x20] - b .L113 -.L109: + b .L119 +.L115: cmp w0, 35 - bne .L111 + bne .L117 ldrsb w0, [x21,x20] - b .L113 -.L111: + b .L119 +.L117: ldrsb w0, [x23,400] -.L113: +.L119: str w0, [x22] add x20, x20, 1 - b .L108 -.L114: + b .L114 +.L120: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -801,10 +819,10 @@ SamsungSetRRPara: add x22, x22, :lo12:g_maxRegNum mov w24, 161 mov x19, x2 -.L116: +.L122: ldrb w0, [x22] cmp w0, w20 - bls .L118 + bls .L124 str w24, [x21,8] add x0, x19, 408 str wzr, [x21] @@ -815,8 +833,8 @@ SamsungSetRRPara: str w0, [x21] mov x0, 1500 bl __const_udelay - b .L116 -.L118: + b .L122 +.L124: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -838,14 +856,14 @@ FlashDieInfoInit: str x27, [sp,80] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - strb wzr, [x19,1672] - add x25, x19, 1676 - strb wzr, [x19,1673] + strb wzr, [x19,3208] + add x25, x19, 3212 + strb wzr, [x19,3209] bl FlashBlockAlignInit mov w1, 0 mov w2, 8 mov x0, x25 - add x24, x19, 1684 + add x24, x19, 3220 adrp x26, IDByte mov x23, 0 bl ftl_memset @@ -854,63 +872,63 @@ FlashDieInfoInit: mov w2, 32 mov x0, x24 bl ftl_memset - add x0, x19, 1716 + add x0, x19, 3252 mov w1, 0 mov w2, 192 bl ftl_memset - ldr x20, [x19,1912] + ldr x20, [x19,3448] add x22, x20, 1 -.L121: +.L127: ldrb w2, [x20] mov x0, x22 add x1, x26, x23, lsl 3 bl FlashMemCmp8 - cbnz w0, .L120 - ldrb w1, [x19,1672] + cbnz w0, .L126 + ldrb w1, [x19,3208] str w0, [x24,w1,sxtw 2] add w0, w1, 1 strb w23, [x25,w1,sxtw] - strb w0, [x19,1672] -.L120: + strb w0, [x19,3208] +.L126: add x23, x23, 1 cmp x23, 4 - bne .L121 + bne .L127 add x19, x21, :lo12:.LANCHOR0 - ldrb w0, [x19,1672] - strb w0, [x19,1673] + ldrb w0, [x19,3208] + strb w0, [x19,3209] ldrb w0, [x20,8] cmp w0, 2 - beq .L122 -.L126: + beq .L128 +.L132: add x21, x21, :lo12:.LANCHOR0 ldrb w1, [x20,13] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] - ldrb w0, [x21,1672] + ldrb w0, [x21,3208] ldr x27, [sp,80] mul w0, w0, w1 ldrh w1, [x20,14] ldp x19, x20, [sp,16] mul w0, w0, w1 - strh w0, [x21,1920] + strh w0, [x21,3456] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 96 ret -.L122: +.L128: adrp x24, IDByte ldr w26, [x19,92] mov x23, 0 add x24, x24, :lo12:IDByte - add x25, x19, 1684 - add x27, x19, 1676 -.L125: + add x25, x19, 3220 + add x27, x19, 3212 +.L131: ldrb w2, [x20] mov x0, x22 add x1, x24, x23, lsl 3 bl FlashMemCmp8 - cbnz w0, .L123 + cbnz w0, .L129 ldrb w1, [x20,13] - ldrb w3, [x19,1672] + ldrb w3, [x19,3208] mul w2, w1, w26 ldrh w1, [x20,14] mov x0, x3 @@ -918,18 +936,18 @@ FlashDieInfoInit: mul w1, w2, w1 str w1, [x25,w3,sxtw 2] ldrb w2, [x20,23] - cbz w2, .L124 + cbz w2, .L130 lsl w1, w1, 1 str w1, [x25,w3,sxtw 2] -.L124: +.L130: add w0, w0, 1 strb w23, [x27,x3] - strb w0, [x19,1672] -.L123: + strb w0, [x19,3208] +.L129: add x23, x23, 1 cmp x23, 4 - bne .L125 - b .L126 + bne .L131 + b .L132 .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 .global FlashReadIdbData @@ -940,7 +958,7 @@ FlashReadIdbData: mov w2, 2048 add x1, x1, :lo12:.LANCHOR0 add x29, sp, 0 - add x1, x1, 1928 + add x1, x1, 3464 bl ftl_memcpy mov w0, 0 ldp x29, x30, [sp], 16 @@ -961,43 +979,43 @@ FlashLoadPhyInfoInRam: add x21, x21, 504 mov w20, 0 add x23, x23, :lo12:IDByte -.L138: +.L144: ldrb w2, [x21] add x0, x21, 1 mov x1, x23 bl FlashMemCmp8 mov w22, w0 - cbnz w0, .L135 + cbnz w0, .L141 add x0, x19, :lo12:.LANCHOR1 ubfiz x20, x20, 5, 32 add x1, x0, 504 adds x20, x1, x20 - beq .L141 + beq .L147 ldrb w3, [x20,22] mov x2, 0 mov x1, x0 - b .L140 -.L135: + b .L146 +.L141: add w20, w20, 1 add x21, x21, 32 - cmp w20, 81 - bne .L138 - b .L141 -.L140: + cmp w20, 83 + bne .L144 + b .L147 +.L146: add x4, x1, x2, lsl 5 mov w0, w2 - ldrb w4, [x4,3096] + ldrb w4, [x4,3160] cmp w4, w3 - beq .L139 + beq .L145 add x2, x2, 1 cmp x2, 4 - bne .L140 + bne .L146 mov w0, w2 -.L139: +.L145: add x19, x19, :lo12:.LANCHOR1 ubfiz x1, x0, 5, 32 adrp x0, .LANCHOR0 - add x2, x19, 3096 + add x2, x19, 3160 add x0, x0, :lo12:.LANCHOR0 add x1, x2, x1 add x0, x0, 104 @@ -1010,10 +1028,10 @@ FlashLoadPhyInfoInRam: bl ftl_memcpy ldrh w0, [x19,10] bl FlashBlockAlignInit - b .L136 -.L141: + b .L142 +.L147: mov w22, -1 -.L136: +.L142: mov w0, w22 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -1025,73 +1043,78 @@ FlashLoadPhyInfoInRam: .global ftl_flash_suspend .type ftl_flash_suspend, %function ftl_flash_suspend: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldr x1, [x0,3976] + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldr x1, [x0,1160] ldr w2, [x1] - str w2, [x0,3984] + str w2, [x0,1168] ldr w2, [x1,4] - str w2, [x0,3988] + str w2, [x0,1172] ldr w2, [x1,8] - str w2, [x0,3992] + str w2, [x0,1176] ldr w2, [x1,12] - str w2, [x0,3996] + str w2, [x0,1180] ldr w2, [x1,304] - str w2, [x0,4000] + str w2, [x0,1184] ldr w2, [x1,308] - str w2, [x0,4004] + str w2, [x0,1188] ldr w2, [x1,336] ldr w1, [x1,344] - str w2, [x0,4008] - str w1, [x0,4012] + str w2, [x0,1192] + str w1, [x0,1196] ret .size ftl_flash_suspend, .-ftl_flash_suspend .align 2 .global LogAddr2PhyAddr .type LogAddr2PhyAddr, %function LogAddr2PhyAddr: - adrp x7, .LANCHOR0 + adrp x6, .LANCHOR2 uxtb w4, w4 - add x6, x7, :lo12:.LANCHOR0 - ldrh w8, [x6,4030] - ldrh w5, [x6,4028] - ldrh w9, [x6,92] - ldrb w6, [x6,88] - mul w5, w5, w8 - cmp w6, 1 - ubfiz w8, w9, 1, 15 - csel w9, w8, w9, eq - ldr w8, [x0,4] + add x7, x6, :lo12:.LANCHOR2 + mov x9, x6 + add x7, x7, 1200 + ldrh w5, [x7,12] + ldrh w7, [x7,14] + mul w5, w5, w7 + adrp x7, .LANCHOR0 + add x8, x7, :lo12:.LANCHOR0 uxth w5, w5 + ldrh w10, [x8,92] + ldrb w8, [x8,88] + ubfiz w6, w10, 1, 15 + cmp w8, 1 + ldr w8, [x0,4] + csel w10, w6, w10, eq cmp w1, 1 ubfx x6, x8, 10, 16 and w8, w8, 1023 - udiv w10, w6, w5 - msub w5, w10, w5, w6 + udiv w11, w6, w5 + msub w5, w11, w5, w6 uxth w6, w5 - bne .L148 + bne .L154 + add x1, x9, :lo12:.LANCHOR2 + ldrb w1, [x1,1228] + cbnz w1, .L154 add x1, x7, :lo12:.LANCHOR0 - ldrb w5, [x1,4044] - cbnz w5, .L148 add x1, x1, 136 ldrh w8, [x1,w8,sxtw 1] -.L148: +.L154: add x7, x7, :lo12:.LANCHOR0 cmp w4, 1 - add x7, x7, 1684 + add x7, x7, 3220 mov w1, 0 - ldr w5, [x7,w10,uxtw 2] - madd w5, w6, w9, w5 + ldr w5, [x7,w11,uxtw 2] + madd w5, w6, w10, w5 add w5, w5, w8 str w5, [x2] - str w10, [x3] - bls .L149 + str w11, [x3] + bls .L155 ldr w1, [x0,4] ldr w0, [x0,60] add w1, w1, 1024 cmp w1, w0 cset w1, eq -.L149: +.L155: mov w0, w1 ret .size LogAddr2PhyAddr, .-LogAddr2PhyAddr @@ -1109,43 +1132,43 @@ FlashReadStatusEN: add x6, x5, x0 uxtb w2, w2 ldr x20, [x5,x0] - ldr x0, [x4,1912] + ldr x0, [x4,3448] ldrb w19, [x6,8] ldrb w0, [x0,8] cmp w0, 2 - bne .L152 + bne .L158 add x4, x4, 104 - cbnz w2, .L153 + cbnz w2, .L159 ldrb w2, [x4,13] - b .L161 -.L153: + b .L167 +.L159: ldrb w2, [x4,14] -.L161: +.L167: 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, .L156 + cbz w4, .L162 add x3, x19, 8 lsl x3, x3, 8 -.L160: +.L166: cmp w2, w4 - bcs .L156 + bcs .L162 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 .L160 -.L152: + b .L166 +.L158: add x0, x19, 8 mov w1, 112 add x0, x20, x0, lsl 8 str w1, [x0,8] -.L156: +.L162: add x19, x19, 8 mov x0, 400 lsl x19, x19, 8 @@ -1167,15 +1190,15 @@ FlashWaitReadyEN: uxtb w19, w0 mov w20, w1 uxtb w21, w2 -.L166: +.L172: mov w0, w19 mov w1, w20 mov w2, w21 bl FlashReadStatusEN cmp w0, 255 mov w3, w0 - beq .L166 - tbz x3, 6, .L166 + beq .L172 + tbz x3, 6, .L172 ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -1195,18 +1218,20 @@ ftl_read_flash_info: adrp x1, .LANCHOR0 mov w5, 1 add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,1912] + ldr x0, [x1,3448] ldrb w2, [x0,9] ldr w0, [x1,92] - add x1, x1, 1676 + add x1, x1, 3212 mul w0, w0, w2 strh w0, [x19,4] - ldrb w0, [x1,2369] - strb w0, [x19,7] - ldr w0, [x1,2372] + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldrb w2, [x0,1229] + ldr w0, [x0,1232] str w0, [x19] - ldr x0, [x1,236] + strb w2, [x19,7] ldrb w4, [x1,-4] + ldr x0, [x1,236] ldrb w0, [x0,9] strb w0, [x19,6] mov w0, 32 @@ -1216,17 +1241,17 @@ ftl_read_flash_info: strb w0, [x19,9] mov x0, 0 strb wzr, [x19,10] -.L170: +.L176: cmp w4, w0, uxtb - bls .L172 + bls .L178 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 .L170 -.L172: + b .L176 +.L178: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1235,10 +1260,10 @@ ftl_read_flash_info: .global FlashScheduleEnSet .type FlashScheduleEnSet, %function FlashScheduleEnSet: - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - ldr w2, [x1,4052] - str w0, [x1,4052] + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + ldr w2, [x1,1236] + str w0, [x1,1236] mov w0, w2 ret .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -1246,8 +1271,8 @@ FlashScheduleEnSet: .global FlashGetPageSize .type FlashGetPageSize, %function FlashGetPageSize: - adrp x0, .LANCHOR0+1912 - ldr x0, [x0,#:lo12:.LANCHOR0+1912] + adrp x0, .LANCHOR0+3448 + ldr x0, [x0,#:lo12:.LANCHOR0+3448] ldrb w0, [x0,9] ret .size FlashGetPageSize, .-FlashGetPageSize @@ -1276,11 +1301,11 @@ NandcGetChipIf: .global NandcSetDdrPara .type NandcSetDdrPara, %function NandcSetDdrPara: - adrp x1, .LANCHOR0+3976 + adrp x1, .LANCHOR2+1160 uxtb w0, w0 lsl w2, w0, 8 orr w0, w2, w0, lsl 16 - ldr x1, [x1,#:lo12:.LANCHOR0+3976] + ldr x1, [x1,#:lo12:.LANCHOR2+1160] orr w0, w0, 1 str w0, [x1,304] ret @@ -1289,9 +1314,9 @@ NandcSetDdrPara: .global NandcSetDdrDiv .type NandcSetDdrDiv, %function NandcSetDdrDiv: - adrp x1, .LANCHOR0+3976 + adrp x1, .LANCHOR2+1160 uxtb w0, w0 - ldr x2, [x1,#:lo12:.LANCHOR0+3976] + ldr x2, [x1,#:lo12:.LANCHOR2+1160] mov w1, 16640 orr w0, w0, w1 str w0, [x2,344] @@ -1301,9 +1326,9 @@ NandcSetDdrDiv: .global NandcSetDdrMode .type NandcSetDdrMode, %function NandcSetDdrMode: - adrp x1, .LANCHOR0+3976 + adrp x1, .LANCHOR2+1160 cmp w0, wzr - ldr x2, [x1,#:lo12:.LANCHOR0+3976] + ldr x2, [x1,#:lo12:.LANCHOR2+1160] ldr w1, [x2] and w3, w1, -8193 orr w1, w1, 253952 @@ -1315,12 +1340,12 @@ NandcSetDdrMode: .global NandcSetMode .type NandcSetMode, %function NandcSetMode: - adrp x1, .LANCHOR0+3976 + adrp x1, .LANCHOR2+1160 uxtb w0, w0 tst w0, 6 - ldr x2, [x1,#:lo12:.LANCHOR0+3976] + ldr x2, [x1,#:lo12:.LANCHOR2+1160] ldr w1, [x2] - beq .L183 + beq .L189 and w0, w0, 4 orr w1, w1, 24576 cmp w0, wzr @@ -1337,10 +1362,10 @@ NandcSetMode: csel w1, w3, w1, ne mov w0, 39 str w0, [x2,308] - b .L185 -.L183: + b .L191 +.L189: and w1, w1, -8193 -.L185: +.L191: str w1, [x2] mov w0, 0 ret @@ -1382,57 +1407,61 @@ NandcFlashDeCs: .global HynixSetRRPara .type HynixSetRRPara, %function HynixSetRRPara: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! + adrp x4, .LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - mov x20, x2 - adrp x2, .LANCHOR0 - add x19, x2, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x21, x22, [sp,32] uxtb x23, w0 - uxtb w26, w1 - ldr x0, [x19,1912] - mov x25, x23 - uxtb w24, w3 + add x0, x4, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + stp x25, x26, [sp,64] + str x27, [sp,80] + adrp x24, .LANCHOR2 + stp x21, x22, [sp,32] + mov x20, x2 + mov x26, x23 + ldr x0, [x0,3448] + uxtb w27, w1 + uxtb w25, w3 + mov x2, x4 + add x19, x24, :lo12:.LANCHOR2 ldrb w0, [x0,19] cmp w0, 6 - bne .L191 + bne .L197 add x19, x19, x23, lsl 6 - lsl w4, w24, 2 - add x19, x19, 4076 - b .L197 -.L191: - cmp w0, 7 - bne .L193 - mov x0, 160 - mov w4, 10 - madd x19, x23, x0, x19 - mul w4, w24, w4 - add x19, x19, 4084 + lsl w4, w25, 2 + add x19, x19, 1260 + b .L203 .L197: + cmp w0, 7 + bne .L199 + mov x3, 160 + mov w4, 10 + madd x19, x23, x3, x19 + mul w4, w25, w4 + add x19, x19, 1268 +.L203: add x19, x19, x4, sxtw - b .L192 -.L193: + b .L198 +.L199: cmp w0, 8 - bne .L194 - add x19, x19, 4084 - add w4, w24, w24, lsl 2 - b .L197 -.L194: + bne .L200 + add x19, x19, 1268 + add w4, w25, w25, lsl 2 + b .L203 +.L200: lsl x4, x23, 3 - add x4, x4, x24, sxtw + add x4, x4, x25, sxtw add x19, x19, x4, lsl 3 - add x19, x19, 4076 -.L192: - add x2, x2, :lo12:.LANCHOR0 + add x19, x19, 1260 +.L198: + add x4, x2, :lo12:.LANCHOR0 lsl x0, x23, 4 - add x2, x2, 24 - uxtb x26, w26 - add x1, x2, x0 - ldr x21, [x2,x0] - mov w0, w25 + add x4, x4, 24 + uxtb x27, w27 + add x1, x4, x0 + ldr x21, [x4,x0] + mov w0, w26 ldrb w22, [x1,8] bl NandcFlashCs ubfiz x22, x22, 8, 8 @@ -1440,9 +1469,9 @@ HynixSetRRPara: add x21, x21, x22 mov x22, 0 str w0, [x21,2056] -.L195: - cmp x22, x26 - beq .L198 +.L201: + cmp x22, x27 + beq .L204 ldrb w0, [x20,x22] str w0, [x21,2052] mov x0, 1000 @@ -1450,58 +1479,59 @@ HynixSetRRPara: ldrsb w0, [x19,x22] add x22, x22, 1 str w0, [x21,2048] - b .L195 -.L198: + b .L201 +.L204: + add x24, x24, :lo12:.LANCHOR2 mov w0, 22 + add x23, x24, x23 str w0, [x21,2056] - mov w0, w25 + mov w0, w26 bl NandcFlashDeCs - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - add x23, x0, x23 - strb w24, [x23,560] + strb w25, [x23,2096] 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 + ldr x27, [sp,80] + ldp x29, x30, [sp], 96 ret .size HynixSetRRPara, .-HynixSetRRPara .align 2 .global FlashSetReadRetryDefault .type FlashSetReadRetryDefault, %function FlashSetReadRetryDefault: + adrp x0, .LANCHOR0+3448 stp x29, x30, [sp, -48]! add x29, sp, 0 + ldr x0, [x0,#:lo12:.LANCHOR0+3448] stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - mov x20, 0 - add x19, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - ldr x0, [x19,1912] + mov x19, 0 ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 7 - bhi .L199 + bhi .L205 + adrp x20, .LANCHOR2 adrp x21, IDByte - add x22, x19, 4060 + add x20, x20, :lo12:.LANCHOR2 add x21, x21, :lo12:IDByte -.L204: - lsl x1, x20, 3 - uxtb w0, w20 + add x22, x20, 1244 +.L210: + lsl x1, x19, 3 + uxtb w0, w19 ldrb w1, [x1,x21] cmp w1, 173 - bne .L201 - ldrb w1, [x19,4057] + bne .L207 + ldrb w1, [x20,1241] mov x2, x22 mov w3, 0 bl HynixSetRRPara -.L201: - add x20, x20, 1 - cmp x20, 4 - bne .L204 -.L199: +.L207: + add x19, x19, 1 + cmp x19, 4 + bne .L210 +.L205: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -1521,13 +1551,13 @@ FlashWaitCmdDone: add x20, x20, :lo12:.LANCHOR0 mov x22, x1 mul x1, x1, x2 - add x0, x20, 1716 + add x0, x20, 3252 add x19, x0, x1 ldrb w21, [x0,x1] ldr x0, [x19,8] - cbz x0, .L208 + cbz x0, .L214 mov w0, w21 - add x20, x20, 1684 + add x20, x20, 3220 bl NandcFlashCs ldr w0, [x20,w22,sxtw 2] ldr w1, [x19,4] @@ -1543,10 +1573,10 @@ FlashWaitCmdDone: str w0, [x1] str xzr, [x19,8] ldr x1, [x19,16] - cbz x1, .L208 + cbz x1, .L214 str w0, [x1] str xzr, [x19,16] -.L208: +.L214: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -1579,20 +1609,20 @@ NandcWaitFlashReadyNoDelay: mov w19, 34464 ldr x20, [x1,x0] movk w19, 0x1, lsl 16 -.L216: +.L222: ldr w0, [x20] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L217 + tbnz x0, 9, .L223 mov x0, 50 bl __const_udelay subs w19, w19, #1 - bne .L216 + bne .L222 mov w0, -1 - b .L215 -.L217: + b .L221 +.L223: mov w0, 0 -.L215: +.L221: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1613,20 +1643,20 @@ NandcWaitFlashReady: movk w19, 0x1, lsl 16 mov x0, 750 bl __const_udelay -.L221: +.L227: ldr w0, [x20] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L222 + tbnz x0, 9, .L228 mov x0, 50 bl __const_udelay subs w19, w19, #1 - bne .L221 + bne .L227 mov w0, -1 - b .L220 -.L222: + b .L226 +.L228: mov w0, 0 -.L220: +.L226: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1669,17 +1699,18 @@ flash_enter_slc_mode: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 uxtb w20, w0 - add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,4044] - cbz w0, .L225 + adrp x0, .LANCHOR2+1228 + ldrb w0, [x0,#:lo12:.LANCHOR2+1228] + cbz w0, .L231 mov w0, w20 - add x19, x19, 24 bl NandcFlashCs + adrp x2, .LANCHOR0 sbfiz x0, x20, 4, 32 - add x1, x19, x0 - ldr x19, [x19,x0] + add x2, x2, :lo12:.LANCHOR0 + add x2, x2, 24 + add x1, x2, x0 + ldr x19, [x2,x0] mov w0, 239 ldrb w1, [x1,8] add x19, x19, x1, lsl 8 @@ -1701,7 +1732,7 @@ flash_enter_slc_mode: str w0, [x19,2056] mov w0, w20 bl NandcWaitFlashReady -.L225: +.L231: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1713,17 +1744,18 @@ flash_exit_slc_mode: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 uxtb w20, w0 - add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,4044] - cbz w0, .L230 + adrp x0, .LANCHOR2+1228 + ldrb w0, [x0,#:lo12:.LANCHOR2+1228] + cbz w0, .L236 mov w0, w20 - add x19, x19, 24 bl NandcFlashCs + adrp x2, .LANCHOR0 sbfiz x0, x20, 4, 32 - add x1, x19, x0 - ldr x19, [x19,x0] + add x2, x2, :lo12:.LANCHOR0 + add x2, x2, 24 + add x1, x2, x0 + ldr x19, [x2,x0] mov w0, 239 ldrb w1, [x1,8] add x19, x19, x1, lsl 8 @@ -1746,7 +1778,7 @@ flash_exit_slc_mode: str w0, [x19,2056] mov w0, w20 bl NandcWaitFlashReady -.L230: +.L236: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1786,13 +1818,13 @@ FlashEraseBlock: .global FlashSetInterfaceMode .type FlashSetInterfaceMode, %function FlashSetInterfaceMode: - adrp x1, .LANCHOR2+564 + adrp x1, .LANCHOR2+2100 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+564] + ldrb w1, [x1,#:lo12:.LANCHOR2+2100] add x3, x3, 24 mov x6, 0 add x7, x7, :lo12:IDByte @@ -1805,68 +1837,68 @@ FlashSetInterfaceMode: mov w12, 35 mov w13, 32 mov w14, 5 -.L247: +.L253: ldrb w4, [x6,x7] ldr x1, [x3] cmp w4, 152 ldrb w2, [x3,8] - beq .L237 + beq .L243 cmp w4, 69 - beq .L237 + beq .L243 cmp w4, 173 - beq .L237 + beq .L243 cmp w4, 44 - bne .L238 -.L237: + bne .L244 +.L243: cmp w0, 1 - bne .L240 - cbz w11, .L238 + bne .L246 + cbz w11, .L244 ubfiz x2, x2, 8, 8 cmp w4, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L241 + bne .L247 str w0, [x1,2052] - b .L258 -.L241: + b .L264 +.L247: cmp w4, 44 - bne .L243 + bne .L249 str w0, [x1,2052] str w14, [x1,2048] - b .L245 -.L243: + b .L251 +.L249: str w9, [x1,2052] str w0, [x1,2048] - b .L245 -.L240: - cbz w5, .L238 + b .L251 +.L246: + cbz w5, .L244 ubfiz x2, x2, 8, 8 cmp w4, 173 add x1, x1, x2 str w8, [x1,2056] - bne .L244 + bne .L250 str w10, [x1,2052] str w13, [x1,2048] - b .L245 -.L244: + b .L251 +.L250: cmp w4, 44 - bne .L246 + bne .L252 str w10, [x1,2052] str w12, [x1,2048] - b .L245 -.L246: + b .L251 +.L252: str w9, [x1,2052] -.L258: +.L264: str wzr, [x1,2048] -.L245: +.L251: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L238: +.L244: add x6, x6, 8 add x3, x3, 16 cmp x6, 32 - bne .L247 + bne .L253 mov w0, 0 bl NandcWaitFlashReady mov w0, 0 @@ -1983,22 +2015,22 @@ SandiskSetRRPara: add x1, x2, x1 add x4, x4, :lo12:g_retryMode mov x2, 0 -.L262: +.L268: ldrb w5, [x0] cmp w5, w2 - bls .L267 + bls .L273 ldrb w5, [x4] cmp w5, 67 - bne .L263 + bne .L269 ldrsb w5, [x3,x2] - b .L266 -.L263: + b .L272 +.L269: ldrsb w5, [x1,x2] -.L266: +.L272: str w5, [x20] add x2, x2, 1 - b .L262 -.L267: + b .L268 +.L273: mov w0, 0 bl NandcWaitFlashReady ldp x19, x20, [sp,16] @@ -2055,11 +2087,11 @@ FlashEraseSLc2KBlocks: mov w24, w1 mov x20, x0 mov w22, 0 - add x25, x21, 1676 + add x25, x21, 3212 add x23, x23, :lo12:.LC1 -.L270: +.L276: cmp w22, w24 - beq .L279 + beq .L285 add x2, x29, 88 sub w4, w24, w22 mov x0, x20 @@ -2067,19 +2099,19 @@ FlashEraseSLc2KBlocks: add x3, x29, 92 bl LogAddr2PhyAddr ldr w2, [x29,92] - ldrb w0, [x21,1672] + ldrb w0, [x21,3208] cmp w2, w0 - bcc .L271 + bcc .L277 mov w0, -1 str w0, [x20] - b .L272 -.L271: + b .L278 +.L277: uxtw x2, w2 mov x0, 24 ldrb w19, [x25,x2] madd x2, x2, x0, x21 mov w0, w19 - strb w19, [x2,1716] + strb w19, [x2,3252] bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs @@ -2105,24 +2137,24 @@ FlashEraseSLc2KBlocks: ldr w1, [x29,88] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L273 + tbz x0, 0, .L279 mov w0, -1 str w0, [x20] -.L273: +.L279: ldr w0, [x20] cmn w0, #1 - bne .L274 + bne .L280 ldr w1, [x29,88] mov x0, x23 bl printk -.L274: +.L280: mov w0, w19 bl NandcFlashDeCs -.L272: +.L278: add w22, w22, 1 add x20, x20, 56 - b .L270 -.L279: + b .L276 +.L285: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -2140,32 +2172,32 @@ HynixGetReadRetryDefault: mov w3, -82 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 + adrp x20, .LANCHOR2 stp x25, x26, [sp,64] mov w26, w0 - add x0, x20, :lo12:.LANCHOR0 - add x1, x0, 4056 + add x0, x20, :lo12:.LANCHOR2 + add x1, x0, 1240 cmp w26, 2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x27, x28, [sp,80] - strb w26, [x0,4056] + strb w26, [x0,1240] mov w0, -84 strb w4, [x1,5] strb w0, [x1,4] mov w0, -81 strb w3, [x1,6] strb w0, [x1,7] - bne .L281 + bne .L287 mov w0, -89 strb w0, [x1,4] - adrp x0, .LANCHOR1+3241 + adrp x0, .LANCHOR1+3305 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+3241] - b .L344 -.L281: + strb w1, [x0,#:lo12:.LANCHOR1+3305] + b .L350 +.L287: cmp w26, 3 - bne .L283 + bne .L289 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -2181,10 +2213,10 @@ HynixGetReadRetryDefault: mov w0, -74 strb w0, [x1,10] mov w0, -73 - b .L384 -.L283: + b .L390 +.L289: cmp w26, 4 - bne .L284 + bne .L290 mov w5, -52 strb w5, [x1,4] mov w5, -65 @@ -2197,14 +2229,14 @@ HynixGetReadRetryDefault: mov w5, -51 strb w3, [x1,10] strb w5, [x1,8] -.L384: +.L390: mov w28, 8 strb w0, [x1,11] mov w27, w28 - b .L282 -.L284: + b .L288 +.L290: cmp w26, 5 - bne .L285 + bne .L291 mov w0, 56 strb w0, [x1,4] mov w0, 57 @@ -2214,10 +2246,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 59 strb w0, [x1,7] - b .L385 -.L285: + b .L391 +.L291: cmp w26, 6 - bne .L286 + bne .L292 mov w0, 14 strb w0, [x1,4] mov w0, 15 @@ -2227,10 +2259,10 @@ HynixGetReadRetryDefault: strb w0, [x1,6] mov w0, 17 strb w0, [x1,7] - b .L385 -.L286: + b .L391 +.L292: cmp w26, 7 - bne .L287 + bne .L293 mov w0, -80 strb w0, [x1,4] mov w0, -79 @@ -2253,10 +2285,10 @@ HynixGetReadRetryDefault: mov w27, 10 mov w0, -43 strb w0, [x1,13] - b .L282 -.L287: + b .L288 +.L293: cmp w26, 8 - bne .L344 + bne .L350 mov w0, 6 strb w0, [x1,4] mov w0, 7 @@ -2268,71 +2300,76 @@ HynixGetReadRetryDefault: mov w0, 10 mov w27, 5 strb w0, [x1,8] - b .L282 -.L344: + b .L288 +.L350: mov w28, 7 -.L385: +.L391: mov w27, 4 -.L282: +.L288: sub w0, w26, #1 cmp w0, 1 - bhi .L381 - adrp x22, .LANCHOR1 - add x25, x20, :lo12:.LANCHOR0 - add x22, x22, :lo12:.LANCHOR1 + bhi .L387 + adrp x23, .LANCHOR0 + adrp x24, .LANCHOR1 + add x23, x23, :lo12:.LANCHOR0 + add x24, x24, :lo12:.LANCHOR1 mov w21, 0 - add x3, x25, 1676 - add x26, x25, 4056 - add x22, x22, 3224 -.L288: - ldrb w0, [x25,1672] + add x4, x23, 3212 + add x5, x20, :lo12:.LANCHOR2 + add x24, x24, 3288 +.L294: + ldrb w0, [x23,3208] cmp w0, w21 - bls .L295 - ldrb w0, [x3,w21,sxtw] - add x1, x25, 24 - mov x23, 0 - add x19, x26, x0, lsl 6 - lsl x0, x0, 4 - add x2, x1, x0 + bls .L301 + ldrb w1, [x4,w21,sxtw] + add x0, x5, 1240 + add x2, x23, 24 + mov x25, 0 + mov x22, x0 + add x19, x0, x1, lsl 6 + lsl x1, x1, 4 + add x3, x2, x1 add x19, x19, 20 - ldr x24, [x1,x0] + ldr x26, [x2,x1] + ldrb w1, [x3,8] + add x26, x26, x1, lsl 8 mov w1, 55 - ldrb w0, [x2,8] - add x24, x24, x0, lsl 8 -.L290: - add x0, x26, x23 - str w1, [x24,2056] - str x3, [x29,128] - str x1, [x29,136] +.L296: + add x0, x22, x25 + str w1, [x26,2056] + str x5, [x29,120] + str x4, [x29,128] ldrb w0, [x0,4] - str w0, [x24,2052] + str w0, [x26,2052] mov x0, 400 + str x1, [x29,136] bl __const_udelay - ldr w0, [x24,2048] - strb w0, [x19,x23] - add x23, x23, 1 + ldr w0, [x26,2048] + strb w0, [x19,x25] + add x25, x25, 1 ldr x1, [x29,136] - cmp w27, w23, uxtb - ldr x3, [x29,128] - bhi .L290 + cmp w27, w25, uxtb + ldr x4, [x29,128] + ldr x5, [x29,120] + bhi .L296 mov x0, 0 -.L291: +.L297: add w2, w0, 8 mov x1, 0 -.L292: - add x5, x1, x0 +.L298: + add x3, x1, x0 add x1, x1, 4 - add x5, x22, x5 + add x3, x24, x3 cmp x1, 24 - ldrb w6, [x5,4] - ldrb w5, [x19,x0] - add w5, w6, w5 - strb w5, [x19,w2,sxtw] + ldrb w6, [x3,4] + ldrb w3, [x19,x0] + add w3, w6, w3 + strb w3, [x19,w2,sxtw] add w2, w2, 8 - bne .L292 + bne .L298 add x0, x0, 1 cmp x0, 4 - bne .L291 + bne .L297 add w21, w21, 1 strb wzr, [x19,16] strb wzr, [x19,24] @@ -2342,100 +2379,104 @@ HynixGetReadRetryDefault: strb wzr, [x19,48] strb wzr, [x19,41] strb wzr, [x19,49] - b .L288 -.L381: + b .L294 +.L387: sub w0, w26, #3 cmp w0, 5 - bhi .L295 - mul w25, w27, w28 - sub w24, w27, #1 - mov w21, 0 - lsl w0, w25, 4 - asr w23, w25, 1 - str w0, [x29,128] - add x25, x20, :lo12:.LANCHOR0 - lsl w0, w23, 1 - uxtb x24, w24 - str w0, [x29,124] - add x0, x25, 1676 - add x24, x24, 1 - str x0, [x29,112] - sub w0, w26, #5 + bhi .L301 + mul w0, w27, w28 + adrp x24, .LANCHOR0 + sub w25, w27, #1 + asr w23, w0, 1 + lsl w0, w0, 4 + add x24, x24, :lo12:.LANCHOR0 str w0, [x29,136] -.L296: - ldrb w0, [x25,1672] + lsl w0, w23, 1 + uxtb x25, w25 + str w0, [x29,128] + add x0, x24, 3212 + mov w21, 0 + str x0, [x29,120] + add x0, x25, 1 + str x0, [x29,112] +.L302: + ldrb w0, [x24,3208] + adrp x25, .LANCHOR0 cmp w0, w21 - bhi .L342 -.L295: - add x20, x20, :lo12:.LANCHOR0 + bhi .L348 +.L301: + add x20, x20, :lo12:.LANCHOR2 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - strb w27, [x20,4057] - strb w28, [x20,4058] + strb w27, [x20,1241] + strb w28, [x20,1242] ldp x25, x26, [sp,64] ldp x19, x20, [sp,16] ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L342: - ldr x0, [x29,112] - ldrb w5, [x0,w21,sxtw] - add x0, x25, 24 - str x5, [x29,104] - lsl x1, x5, 4 - mov x22, x5 - add x7, x0, x1 - ldr x0, [x0,x1] +.L348: + ldr x0, [x29,120] + ldrb w1, [x0,w21,sxtw] + add x0, x24, 24 + str x1, [x29,104] + lsl x3, x1, 4 + mov x22, x1 + add x7, x0, x3 + ldr x0, [x0,x3] ldrb w19, [x7,8] add x19, x0, x19, lsl 8 mov w0, 255 str w0, [x19,2056] - mov w0, w5 + mov w0, w1 bl NandcWaitFlashReady cmp w26, 7 - ldr x5, [x29,104] - bne .L297 + sub w7, w26, #5 + ldr x1, [x29,104] + bne .L303 + add x3, x20, :lo12:.LANCHOR2 mov x0, 160 - madd x5, x5, x0, x25 - add x5, x5, 4084 - b .L298 -.L297: + madd x3, x1, x0, x3 + add x3, x3, 1268 + b .L304 +.L303: cmp w26, 8 - beq .L299 - add x5, x25, x5, lsl 6 - add x5, x5, 4076 -.L298: + beq .L305 + add x3, x20, :lo12:.LANCHOR2 + add x3, x3, x1, lsl 6 + add x3, x3, 1260 +.L304: mov w0, 54 cmp w26, 4 str w0, [x19,2056] - bne .L300 + bne .L306 mov w0, 255 str w0, [x19,2052] mov w0, 64 str w0, [x19,2048] mov w0, 204 - b .L386 -.L300: - ldr w0, [x29,136] - cmp w0, 1 - bhi .L302 - ldrb w0, [x25,4060] + b .L392 +.L306: + cmp w7, 1 + bhi .L308 + add x0, x20, :lo12:.LANCHOR2 + ldrb w0, [x0,1244] str w0, [x19,2052] mov w0, 82 - b .L387 -.L302: + b .L393 +.L308: cmp w26, 7 - bne .L301 + bne .L307 mov w0, 174 str w0, [x19,2052] str wzr, [x19,2048] mov w0, 176 -.L386: +.L392: str w0, [x19,2052] mov w0, 77 -.L387: +.L393: str w0, [x19,2048] -.L301: +.L307: mov w0, 22 str w0, [x19,2056] mov w0, 23 @@ -2448,81 +2489,55 @@ HynixGetReadRetryDefault: cmp w26, 6 str wzr, [x19,2052] str wzr, [x19,2052] - bne .L303 + bne .L309 mov w0, 31 str w0, [x19,2052] - b .L304 -.L303: + b .L310 +.L309: str wzr, [x19,2052] -.L304: +.L310: mov w0, 2 str w0, [x19,2052] str wzr, [x19,2052] -.L343: +.L349: mov w0, 48 str w0, [x19,2056] mov w0, w22 - str x5, [x29,104] + str x7, [x29,96] + str x3, [x29,104] bl NandcWaitFlashReady - ldr w0, [x29,136] - ldr x5, [x29,104] - cmp w0, 1 + ldr x7, [x29,96] + ldr x3, [x29,104] + cmp w7, 1 cset w8, ls cmp w26, 8 cset w7, eq - cbnz w8, .L346 - cbnz w7, .L346 + cbnz w8, .L352 + cbnz w7, .L352 cmp w26, 7 mov w1, 32 mov w0, 2 csel w1, w0, w1, ne - b .L305 -.L346: + b .L311 +.L352: mov w1, 16 -.L305: - ldr x0, [x25] +.L311: + ldr x0, [x25,#:lo12:.LANCHOR0] mov x9, 0 -.L306: +.L312: ldr w10, [x19,2048] strb w10, [x0,x9] add x9, x9, 1 cmp w1, w9, uxtb - bhi .L306 - cbz w7, .L307 + bhi .L312 + cbz w7, .L313 mov w1, 0 -.L309: - ldrb w9, [x0] - cmp w9, 50 - beq .L308 - ldrb w9, [x0,1] - cmp w9, 5 - beq .L308 - add w1, w1, 1 - add x0, x0, 4 - uxtb w1, w1 - cmp w1, 8 - bne .L309 - b .L310 -.L308: - cmp w1, 6 - bls .L311 -.L310: - adrp x0, .LC2 - mov w1, 0 - add x0, x0, :lo12:.LC2 - bl printk -.L312: - b .L312 -.L307: - cmp w26, 7 - bne .L313 - mov w1, w7 .L315: ldrb w9, [x0] - cmp w9, 12 + cmp w9, 50 beq .L314 ldrb w9, [x0,1] - cmp w9, 10 + cmp w9, 5 beq .L314 add w1, w1, 1 add x0, x0, 4 @@ -2531,54 +2546,81 @@ HynixGetReadRetryDefault: bne .L315 b .L316 .L314: - cmp w1, 7 - bne .L311 + cmp w1, 6 + bls .L317 .L316: adrp x0, .LC2 mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L317: - b .L317 -.L313: - cmp w26, 6 - bne .L311 - mov x1, 0 .L318: - ldrb w9, [x0,x1] + b .L318 +.L313: + cmp w26, 7 + bne .L319 + mov w1, w7 +.L321: + ldrb w9, [x0] cmp w9, 12 - beq .L311 - add x9, x0, x1 - ldrb w9, [x9,8] - cmp w9, 4 - beq .L311 - add x1, x1, 1 - cmp x1, 8 - bne .L318 + beq .L320 + ldrb w9, [x0,1] + cmp w9, 10 + beq .L320 + add w1, w1, 1 + add x0, x0, 4 + uxtb w1, w1 + cmp w1, 8 + bne .L321 + b .L322 +.L320: + cmp w1, 7 + bne .L317 +.L322: adrp x0, .LC2 mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L320: - b .L320 -.L311: - ldr x10, [x25] +.L323: + b .L323 +.L319: + cmp w26, 6 + bne .L317 + mov x1, 0 +.L324: + ldrb w9, [x0,x1] + cmp w9, 12 + beq .L317 + add x9, x0, x1 + ldrb w9, [x9,8] + cmp w9, 4 + beq .L317 + add x1, x1, 1 + cmp x1, 8 + bne .L324 + adrp x0, .LC2 + mov w1, 0 + add x0, x0, :lo12:.LC2 + bl printk +.L326: + b .L326 +.L317: + ldr x10, [x25,#:lo12:.LANCHOR0] mov x0, 0 -.L321: - ldr w1, [x29,128] +.L327: + ldr w1, [x29,136] cmp w1, w0 - ble .L389 + ble .L395 ldr w1, [x19,2048] strb w1, [x10,x0] add x0, x0, 1 - b .L321 -.L389: - ldr x12, [x25] + b .L327 +.L395: + ldr x12, [x25,#:lo12:.LANCHOR0] mov w11, w23 mov w9, 8 -.L324: +.L330: mov w0, 0 -.L323: +.L329: add w1, w0, w11 add w0, w0, 1 sbfiz x1, x1, 1, 32 @@ -2586,53 +2628,53 @@ HynixGetReadRetryDefault: ldrh w13, [x12,x1] mvn w13, w13 strh w13, [x12,x1] - bne .L323 - ldr w0, [x29,124] + bne .L329 + ldr w0, [x29,128] subs w9, w9, #1 add w11, w11, w0 - bne .L324 + bne .L330 mov x9, 0 mov w17, 1 -.L325: +.L331: mov w1, 0 mov w11, w1 -.L329: +.L335: lsl w13, w17, w11 mov w15, w9 mov w0, 16 mov w14, 0 -.L327: +.L333: 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 .L327 + bne .L333 cmp w14, 8 - bls .L328 + bls .L334 orr w1, w1, w13 uxth w1, w1 -.L328: +.L334: add w11, w11, 1 cmp w11, 16 - bne .L329 + bne .L335 strh w1, [x12,x9,lsl 1] add x9, x9, 1 cmp w23, w9 - bgt .L325 - mov x9, 0 - ldr x1, [x25] - mov w11, w9 -.L332: - ldr w12, [x1,x9] - add x9, x9, 4 - cmp w12, wzr - csinc w11, w11, w11, ne - cmp x9, 32 - bne .L332 - cmp w11, 7 - ble .L333 + bgt .L331 + mov x6, 0 + ldr x1, [x25,#:lo12:.LANCHOR0] + mov w9, w6 +.L338: + ldr w11, [x1,x6] + add x6, x6, 4 + cmp w11, wzr + csinc w9, w9, w9, ne + cmp x6, 32 + bne .L338 + cmp w9, 7 + ble .L339 adrp x0, .LC3 mov w2, 1 add x0, x0, :lo12:.LC3 @@ -2642,35 +2684,36 @@ HynixGetReadRetryDefault: mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L334: - b .L334 -.L333: +.L340: + b .L340 +.L339: cmp w26, 6 - mov w9, 4 - beq .L335 + mov w6, 4 + beq .L341 cmp w26, 7 - mov w9, 10 - beq .L335 + mov w6, 10 + beq .L341 cmp w7, wzr - mov w9, 5 + mov w6, 5 mov w1, 8 - csel w9, w1, w9, eq -.L335: - mov w11, 0 -.L336: + csel w6, w1, w6, eq +.L341: + mov w9, 0 +.L342: mov x1, 0 -.L337: - add w12, w0, w1 - ldrb w13, [x10,x1] +.L343: + add w11, w0, w1 + ldrb w12, [x10,x1] add x1, x1, 1 cmp w27, w1, uxtb - strb w13, [x5,w12,sxtw] - bhi .L337 - add w11, w11, 1 - add x10, x10, x24 - cmp w11, w28 - add w0, w0, w9 - blt .L336 + strb w12, [x3,w11,sxtw] + bhi .L343 + add w9, w9, 1 + ldr x1, [x29,112] + cmp w9, w28 + add w0, w0, w6 + add x10, x10, x1 + blt .L342 mov w0, 255 str w0, [x19,2056] mov w0, w22 @@ -2679,32 +2722,32 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr x8, [x29,104] ldr x7, [x29,96] - cbz w8, .L339 + cbz w8, .L345 mov w0, 54 str w0, [x19,2056] - adrp x0, .LANCHOR0+4060 + adrp x0, .LANCHOR2+1244 mov w1, -1 - ldrb w0, [x0,#:lo12:.LANCHOR0+4060] + ldrb w0, [x0,#:lo12:.LANCHOR2+1244] str w0, [x19,2052] mov w0, 22 str wzr, [x19,2048] str w0, [x19,2056] mov w0, w21 bl FlashReadCmd - b .L340 -.L339: + b .L346 +.L345: mov w0, 190 - cbnz w7, .L388 + cbnz w7, .L394 mov w0, 56 -.L388: +.L394: str w0, [x19,2056] -.L340: +.L346: mov w0, w22 add w21, w21, 1 bl NandcWaitFlashReady uxtb w21, w21 - b .L296 -.L299: + b .L302 +.L305: mov w0, 120 str w0, [x19,2056] str wzr, [x19,2052] @@ -2712,10 +2755,11 @@ HynixGetReadRetryDefault: str wzr, [x19,2052] mov w1, 25 str wzr, [x19,2052] - add x5, x25, 4084 + add x3, x20, :lo12:.LANCHOR2 str w0, [x19,2056] mov w0, 4 str w0, [x19,2056] + add x3, x3, 1268 str w1, [x19,2056] mov w1, 218 str w1, [x19,2056] @@ -2726,7 +2770,7 @@ HynixGetReadRetryDefault: str w1, [x19,2052] str w0, [x19,2052] str wzr, [x19,2052] - b .L343 + b .L349 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 .global FlashGetReadRetryDefault @@ -2735,19 +2779,19 @@ FlashGetReadRetryDefault: stp x29, x30, [sp, -16]! mov w1, w0 add x29, sp, 0 - cbz w0, .L390 + cbz w0, .L396 sub w2, w0, #1 cmp w2, 7 - bhi .L392 + bhi .L398 bl HynixGetReadRetryDefault - b .L390 -.L392: + b .L396 +.L398: cmp w0, 49 - bne .L393 - adrp x0, .LANCHOR0 + bne .L399 + adrp x0, .LANCHOR2 mov w2, 64 - add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 4060 + add x0, x0, :lo12:.LANCHOR2 + add x0, x0, 1244 strb w1, [x0,-4] mov w1, 4 strb w1, [x0,-3] @@ -2756,49 +2800,49 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 408 - b .L408 -.L393: + b .L414 +.L399: sub w0, w0, #65 cmp w0, 1 - bls .L399 + bls .L405 cmp w1, 33 - bne .L394 -.L399: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,4056] + bne .L400 +.L405: + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + strb w1, [x0,1240] mov w1, 4 - b .L409 -.L394: - cmp w1, 67 - beq .L400 - cmp w1, 34 - bne .L396 + b .L415 .L400: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,4056] + cmp w1, 67 + beq .L406 + cmp w1, 34 + bne .L402 +.L406: + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + strb w1, [x0,1240] mov w1, 5 -.L409: - strb w1, [x0,4057] +.L415: + strb w1, [x0,1241] mov w1, 7 - strb w1, [x0,4058] + strb w1, [x0,1242] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - add x0, x0, 4060 + add x0, x0, 1244 add x1, x1, 256 mov w2, 45 - b .L408 -.L396: + b .L414 +.L402: cmp w1, 68 - beq .L401 + beq .L407 cmp w1, 35 - bne .L390 -.L401: - adrp x0, .LANCHOR0 + bne .L396 +.L407: + adrp x0, .LANCHOR2 mov w2, 95 - add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 4060 + add x0, x0, :lo12:.LANCHOR2 + add x0, x0, 1244 strb w1, [x0,-4] mov w1, 5 strb w1, [x0,-3] @@ -2807,9 +2851,9 @@ FlashGetReadRetryDefault: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 304 -.L408: +.L414: bl ftl_memcpy -.L390: +.L396: ldp x29, x30, [sp], 16 ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault @@ -2839,7 +2883,7 @@ FlashReadDpCmd: cmp w0, 1 and w5, w1, 255 lsr w0, w1, 16 - bne .L411 + bne .L417 add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str x1, [x29,72] @@ -2862,8 +2906,8 @@ FlashReadDpCmd: str w20, [x19,2052] str w0, [x19,2056] ldr x1, [x29,72] - b .L412 -.L411: + b .L418 +.L417: add x19, x6, x19, lsl 8 ldrb w2, [x3,8] str w2, [x19,2056] @@ -2877,7 +2921,7 @@ FlashReadDpCmd: str w22, [x19,2052] str w20, [x19,2052] str w0, [x19,2056] -.L412: +.L418: mov w0, w21 bl FlashSetRandomizer ldr x23, [sp,48] @@ -2898,25 +2942,25 @@ ftl_flash_de_init: bl NandcWaitFlashReady bl FlashSetReadRetryDefault add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,568] - cbz w0, .L414 + ldr w0, [x0,2104] + cbz w0, .L420 mov w0, 0 bl flash_enter_slc_mode - b .L415 -.L414: + b .L421 +.L420: bl flash_exit_slc_mode -.L415: +.L421: add x19, x19, :lo12:.LANCHOR2 - ldrb w0, [x19,572] - cbz w0, .L416 - ldrb w0, [x19,564] - tbz x0, 0, .L416 + ldrb w0, [x19,2108] + cbz w0, .L422 + ldrb w0, [x19,2100] + tbz x0, 0, .L422 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x19,572] -.L416: + strb wzr, [x19,2108] +.L422: adrp x0, .LANCHOR0+24 ldr x0, [x0,#:lo12:.LANCHOR0+24] str wzr, [x0,336] @@ -2948,42 +2992,42 @@ NandcTimeCfg: mov w0, 0 bl rknand_get_clk_rate mov w2, 16960 - adrp x1, .LANCHOR0 + adrp x1, .LANCHOR2 movk w2, 0xf, lsl 16 - add x1, x1, :lo12:.LANCHOR0 + add x1, x1, :lo12:.LANCHOR2 sdiv w0, w0, w2 cmp w0, 250 - ble .L425 - ldr x0, [x1,3976] + ble .L431 + ldr x0, [x1,1160] mov w1, 8354 - b .L432 -.L425: + b .L438 +.L431: cmp w0, 220 - ble .L427 - ldr x0, [x1,3976] - b .L433 -.L427: + ble .L433 + ldr x0, [x1,1160] + b .L439 +.L433: cmp w0, 185 - ble .L428 - ldr x0, [x1,3976] + ble .L434 + ldr x0, [x1,1160] mov w1, 4226 - b .L432 -.L428: + b .L438 +.L434: cmp w0, 160 - ldr x0, [x1,3976] - ble .L429 + ldr x0, [x1,1160] + ble .L435 mov w1, 4194 - b .L432 -.L429: + b .L438 +.L435: cmp w19, 35 mov w1, 4193 - bls .L432 + bls .L438 cmp w19, 99 mov w1, 4225 - bls .L432 -.L433: + bls .L438 +.L439: mov w1, 8322 -.L432: +.L438: str w1, [x0,4] ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -2999,15 +3043,15 @@ FlashTimingCfg: and w1, w1, -33 cmp w1, 1 add x29, sp, 0 - bls .L435 + bls .L441 mov w1, 8322 cmp w0, w1 - bne .L436 -.L435: - adrp x1, .LANCHOR0+3976 - ldr x1, [x1,#:lo12:.LANCHOR0+3976] + bne .L442 +.L441: + adrp x1, .LANCHOR2+1160 + ldr x1, [x1,#:lo12:.LANCHOR2+1160] str w0, [x1,4] -.L436: +.L442: adrp x0, .LANCHOR1+493 ldrb w0, [x0,#:lo12:.LANCHOR1+493] bl NandcTimeCfg @@ -3019,47 +3063,47 @@ FlashTimingCfg: .type NandcInit, %function NandcInit: stp x29, x30, [sp, -32]! - mov w3, 1 - adrp x1, .LANCHOR2 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - mov x19, x1 - add x2, x20, :lo12:.LANCHOR0 - str w3, [x2,48] - mov w3, 2 + add x1, x2, 24 + str x19, [sp,16] + adrp x19, .LANCHOR2 str wzr, [x2,32] - str w3, [x2,64] - mov w3, 3 str x0, [x2,24] - str w3, [x2,80] - add x3, x1, :lo12:.LANCHOR2 - str x0, [x2,40] - str x0, [x2,56] - str x0, [x2,72] - str x0, [x2,3976] - ldr w2, [x0] - ubfx x4, x2, 13, 1 - str w4, [x3,576] - ldr w4, [x0,352] - and w2, w2, 245760 - orr w2, w2, 256 - ubfx x4, x4, 16, 4 - str w4, [x3,580] - ldr w4, [x0,352] - str w4, [x3,584] - cmp w4, 2049 - bne .L438 - mov w1, 8 - str w1, [x3,580] -.L438: - add x20, x20, :lo12:.LANCHOR0 - str w2, [x0] - ldr x0, [x20,3976] + mov w2, 1 + str w2, [x1,24] + mov w2, 2 + str w2, [x1,40] + mov w2, 3 + str w2, [x1,56] + add x2, x19, :lo12:.LANCHOR2 + str x0, [x1,16] + str x0, [x1,32] + str x0, [x1,48] + str x0, [x2,1160] + ldr w1, [x0] + ubfx x3, x1, 13, 1 + str w3, [x2,2112] + ldr w3, [x0,352] + and w1, w1, 245760 + orr w1, w1, 256 + ubfx x3, x3, 16, 4 + str w3, [x2,2116] + ldr w3, [x0,352] + str w3, [x2,2120] + cmp w3, 2049 + bne .L444 + mov w3, 8 + str w3, [x2,2116] +.L444: + add x19, x19, :lo12:.LANCHOR2 + str w1, [x0] + ldr x0, [x19,1160] str wzr, [x0,336] mov w0, 40 bl NandcTimeCfg - ldr x0, [x20,3976] + ldr x0, [x19,1160] mov w1, 8322 str w1, [x0,344] mov w1, 6145 @@ -3067,14 +3111,13 @@ NandcInit: str w1, [x0,304] mov w0, 36864 bl ftl_malloc - add x1, x19, :lo12:.LANCHOR2 - str x0, [x1,592] - str x0, [x1,600] + str wzr, [x19,2176] + str x0, [x19,2128] + str x0, [x19,2136] add x0, x0, 32768 - str wzr, [x1,640] - str x0, [x1,608] - str wzr, [x1,648] - ldp x19, x20, [sp,16] + str wzr, [x19,2184] + str x0, [x19,2144] + ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret .size NandcInit, .-NandcInit @@ -3082,18 +3125,18 @@ NandcInit: .global NandcGetTimeCfg .type NandcGetTimeCfg, %function NandcGetTimeCfg: - adrp x4, .LANCHOR0 - add x4, x4, :lo12:.LANCHOR0 - ldr x5, [x4,3976] + adrp x4, .LANCHOR2 + add x4, x4, :lo12:.LANCHOR2 + ldr x5, [x4,1160] ldr w5, [x5,4] str w5, [x0] - ldr x0, [x4,3976] + ldr x0, [x4,1160] ldr w0, [x0] str w0, [x1] - ldr x0, [x4,3976] + ldr x0, [x4,1160] ldr w0, [x0,304] str w0, [x2] - ldr x1, [x4,3976] + ldr x1, [x4,1160] ldr w0, [x1,308] ldr w1, [x1,344] and w0, w0, 255 @@ -3105,30 +3148,30 @@ NandcGetTimeCfg: .global NandcBchSel .type NandcBchSel, %function NandcBchSel: - adrp x1, .LANCHOR0+3976 + adrp x1, .LANCHOR2 uxtb w0, w0 + add x1, x1, :lo12:.LANCHOR2 + mov w3, 1 cmp w0, 16 - ldr x2, [x1,#:lo12:.LANCHOR0+3976] - mov w1, 1 - str w1, [x2,8] - adrp x1, .LANCHOR2+652 - str w0, [x1,#:lo12:.LANCHOR2+652] + ldr x2, [x1,1160] + str w0, [x1,2188] mov w1, 4096 - bne .L441 -.L444: + str w3, [x2,8] + bne .L447 +.L450: and w1, w1, -17 - b .L442 -.L441: + b .L448 +.L447: cmp w0, 24 - bne .L443 + bne .L449 orr w1, w1, 16 - b .L442 -.L443: + b .L448 +.L449: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L444 -.L442: + beq .L450 +.L448: orr w1, w1, 1 str w1, [x2,12] ret @@ -3138,10 +3181,10 @@ NandcBchSel: .type FlashBchSel, %function FlashBchSel: stp x29, x30, [sp, -16]! - adrp x1, .LANCHOR0+4045 + adrp x1, .LANCHOR2+1229 uxtb w0, w0 add x29, sp, 0 - strb w0, [x1,#:lo12:.LANCHOR0+4045] + strb w0, [x1,#:lo12:.LANCHOR2+1229] bl NandcBchSel ldp x29, x30, [sp], 16 ret @@ -3153,61 +3196,59 @@ ftl_flash_resume: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 + adrp x19, .LANCHOR2 str x21, [sp,32] - add x0, x19, :lo12:.LANCHOR0 + add x0, x19, :lo12:.LANCHOR2 adrp x21, IDByte mov x20, 0 add x21, x21, :lo12:IDByte - ldr x1, [x0,3976] - ldr w2, [x0,3984] + ldr x1, [x0,1160] + ldr w2, [x0,1168] str w2, [x1] - ldr w2, [x0,3988] - ldr x1, [x0,3976] + ldr w2, [x0,1172] + ldr x1, [x0,1160] str w2, [x1,4] - ldr w2, [x0,3992] - ldr x1, [x0,3976] + ldr w2, [x0,1176] + ldr x1, [x0,1160] str w2, [x1,8] - ldr w2, [x0,3996] + ldr w2, [x0,1180] str w2, [x1,12] - ldr w2, [x0,4000] + ldr w2, [x0,1184] str w2, [x1,304] - ldr w2, [x0,4004] + ldr w2, [x0,1188] str w2, [x1,308] - ldr w2, [x0,4008] + ldr w2, [x0,1192] str w2, [x1,336] - ldr w0, [x0,4012] + ldr w0, [x0,1196] str w0, [x1,344] -.L451: +.L457: lsl x0, x20, 3 ldrb w0, [x0,x21] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L450 + bhi .L456 mov w0, w20 bl FlashReset -.L450: +.L456: add x20, x20, 1 cmp x20, 4 - bne .L451 - adrp x20, .LANCHOR2 - add x20, x20, :lo12:.LANCHOR2 - ldrb w0, [x20,572] - cbz w0, .L452 + bne .L457 + add x19, x19, :lo12:.LANCHOR2 + ldrb w0, [x19,2108] + cbz w0, .L458 mov w0, 1 bl NandcSetMode - ldrb w0, [x20,564] + ldrb w0, [x19,2100] bl FlashSetInterfaceMode - ldrb w0, [x20,564] + ldrb w0, [x19,2100] bl NandcSetMode - add x0, x19, :lo12:.LANCHOR0 - ldr w0, [x0,4000] + ldr w0, [x19,1184] lsr w0, w0, 8 bl NandcSetDdrPara -.L452: - add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,1912] +.L458: + adrp x0, .LANCHOR0+3448 + ldr x0, [x0,#:lo12:.LANCHOR0+3448] ldrb w0, [x0,20] bl FlashBchSel ldr x21, [sp,32] @@ -3238,18 +3279,18 @@ NandcIqrWaitFlashReady: orr w0, w0, 2 str w0, [x19,364] ldr w0, [x19] - tbnz x0, 9, .L459 + tbnz x0, 9, .L465 mov x0, x19 bl wait_for_nand_flash_ready - b .L458 -.L459: + 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] -.L458: +.L464: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3260,94 +3301,98 @@ NandcIqrWaitFlashReady: 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 - adrp x1, .LANCHOR0 - stp x19, x20, [sp,16] - add x20, x1, :lo12:.LANCHOR0 - str x1, [x29,104] + add x1, x19, :lo12:.LANCHOR0 stp x23, x24, [sp,48] stp x21, x22, [sp,32] stp x27, x28, [sp,80] - mov w23, w2 mov x24, x0 - ldrb w2, [x20,88] - mov w19, 0 - cbz w2, .L462 - mov w1, w23 + mov w23, w2 + ldrb w1, [x1,88] + cbz w1, .L468 + mov w1, w2 bl FlashEraseSLc2KBlocks - b .L463 -.L462: + b .L469 +.L468: mov w27, 56 adrp x28, .LANCHOR2 - add x25, x20, 1716 -.L493: - cmp w19, w23 - bcs .L494 - umull x5, w19, w27 + mov x25, 24 +.L499: + cmp w20, w23 + bcs .L500 + umull x5, w20, w27 mov w1, 0 - sub w4, w23, w19 - add x21, x24, x5 add x2, x29, 120 + add x21, x24, x5 + sub w4, w23, w20 mov x0, x21 add x3, x29, 124 - str x5, [x29,96] + str x5, [x29,104] bl LogAddr2PhyAddr mov w22, w0 - ldrb w1, [x20,1672] + add x1, x19, :lo12:.LANCHOR0 ldr w0, [x29,124] - ldr x5, [x29,96] - cmp w0, w1 - bcc .L464 + ldr x5, [x29,104] + ldrb w2, [x1,3208] + cmp w0, w2 + bcc .L470 mov w0, -1 str w0, [x24,x5] - b .L465 -.L464: - add x1, x28, :lo12:.LANCHOR2 - mov x2, 24 - ldrb w1, [x1,656] - cmp w1, wzr - uxtw x1, w0 + 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, x1, x2, x25 + madd x1, x2, x25, x1 ldr x1, [x1,8] - cbz x1, .L467 + cbz x1, .L473 bl FlashWaitCmdDone -.L467: +.L473: + add x0, x19, :lo12:.LANCHOR0 ldr w1, [x29,124] - mov x0, 24 + add x0, x0, 3252 ldr w2, [x29,120] - madd x0, x1, x0, x25 + madd x0, x1, x25, x0 str x21, [x0,8] str xzr, [x0,16] str w2, [x0,4] - cbz w22, .L468 - add w2, w19, 1 + cbz w22, .L474 + add w2, w20, 1 umull x2, w2, w27 add x2, x24, x2 str x2, [x0,16] -.L468: - add x0, x20, 1676 - ldrb w21, [x0,x1] - mov x0, 24 - mul x1, x1, x0 +.L474: + add x0, x19, :lo12:.LANCHOR0 + add x2, x0, 3212 + ldrb w21, [x2,x1] + madd x1, x1, x25, x0 mov w0, w21 - strb w21, [x25,x1] + strb w21, [x1,3252] bl NandcFlashCs cmp w26, 1 - bne .L469 - ldrb w0, [x20,4044] - cbz w0, .L469 + 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 .L470 -.L469: + b .L476 +.L475: mov w0, w21 bl flash_exit_slc_mode -.L470: +.L476: + add x0, x19, :lo12:.LANCHOR0 ldr w1, [x29,124] - add x0, x20, 1684 - add w19, w19, w22 + add x0, x0, 3220 + add w20, w20, w22 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,120] cmp w0, wzr @@ -3360,55 +3405,57 @@ FlashEraseBlocks: bl FlashEraseCmd mov w0, w21 bl NandcFlashDeCs -.L465: - add w19, w19, 1 - b .L493 -.L494: - ldr x0, [x29,104] - mov x20, 0 - mov x22, 24 - add x19, x0, :lo12:.LANCHOR0 - add x21, x19, 1716 - ldr x0, [x19,3976] +.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 -.L472: - ldrb w0, [x19,1672] - cmp w0, w20 - bls .L495 - mov w0, w20 +.L478: + ldrb w0, [x19,3208] + cmp w0, w21 + bls .L501 + mov w0, w21 bl FlashWaitCmdDone cmp w26, 1 - bne .L473 - ldrb w0, [x19,4044] - cbz w0, .L473 - mul x0, x20, x22 - ldrb w0, [x0,x21] + 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 -.L473: - add x20, x20, 1 - b .L472 -.L495: - adrp x0, .LANCHOR2+660 - ldr w0, [x0,#:lo12:.LANCHOR2+660] - cbnz w0, .L475 -.L477: +.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 .L463 -.L475: + b .L469 +.L481: adrp x0, IDByte ldrb w0, [x0,#:lo12:IDByte] cmp w0, 69 - bne .L477 + bne .L483 mov x0, 0 mov x1, 56 -.L476: +.L482: cmp w23, w0 - bls .L477 + bls .L483 mul x2, x0, x1 add x0, x0, 1 str wzr, [x24,x2] - b .L476 -.L463: + b .L482 +.L469: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3446,11 +3493,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L498: +.L504: ldr w1, [x0,8] str w1, [sp,8] ldr w1, [sp,8] - tbz x1, 20, .L498 + tbz x1, 20, .L504 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -3459,120 +3506,112 @@ NandcSendDumpDataDone: .type NandcXferStart, %function NandcXferStart: stp x29, x30, [sp, -96]! + adrp x6, .LANCHOR0 ubfiz x0, x0, 4, 8 - ubfx x3, x3, 1, 7 + add x6, x6, :lo12:.LANCHOR0 add x29, sp, 0 - stp x21, x22, [sp,32] - mov x22, x4 - adrp x4, .LANCHOR0 - add x4, x4, :lo12:.LANCHOR0 - str x25, [sp,64] - add x4, x4, 24 - uxtb w25, w1 + add x6, x6, 24 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - add x1, x4, x0 - ubfiz w20, w25, 1, 1 - ldr x21, [x4,x0] + stp x21, x22, [sp,32] + uxtb w23, w1 + add x1, x6, x0 + ldr x21, [x6,x0] + ubfiz w20, w23, 1, 1 orr w20, w20, 8 adrp x19, .LANCHOR2 - uxtb w23, w2 ldrb w0, [x1,8] mov w1, 16 - ldr w24, [x21,12] - bfi w24, w1, 8, 8 - and w24, w24, -9 - bfi w24, w0, 5, 3 + ldr w22, [x21,12] + ubfx x3, x3, 1, 7 + uxtb w2, w2 + bfi w22, w1, 8, 8 + and w22, w22, -9 + bfi w22, w0, 5, 3 mov w0, 1 bfi w20, w0, 5, 2 add x0, x19, :lo12:.LANCHOR2 orr w20, w20, 536870912 orr w20, w20, 1024 - ldr w0, [x0,580] + ldr w0, [x0,2116] bfi w20, w3, 4, 1 cmp w0, 3 - bls .L502 + bls .L508 ldr w0, [x21,16] cmp x5, xzr str w0, [x29,88] - cset w7, ne + cset w9, ne ldr w0, [x29,88] and w0, w0, -5 str w0, [x29,88] - cbnz w7, .L516 - cbz x22, .L503 -.L516: - cbnz w25, .L505 -.L513: - mov x0, x21 - add w23, w23, 1 - asr w23, w23, 1 - bl rk_nandc_xfer_irq_flag_init - bfi w20, w23, 22, 6 - ldr w0, [x21,368] - orr w0, w0, 1 - str w0, [x21,368] - ldr w0, [x21,364] - orr w0, w0, 1 - str w0, [x21,364] - mov x0, x22 - cbnz x22, .L507 + cbnz w9, .L522 + cbz x4, .L509 +.L522: + cbnz w23, .L511 +.L519: + add w2, w2, 1 + mov x0, x4 + asr w2, w2, 1 + bfi w20, w2, 22, 6 + cbnz x4, .L513 add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,600] - b .L507 -.L505: + ldr x0, [x0,2136] + b .L513 +.L511: add x1, x19, :lo12:.LANCHOR2 - mov w4, 128 - mov w2, 0 - lsr w8, w23, 1 - mov w3, w2 - mov w9, -1 - ldr w0, [x1,652] + mov w7, 128 + mov w3, 0 + lsr w10, w2, 1 + mov w6, w3 + mov w11, -1 + ldr w0, [x1,2188] cmp w0, 25 mov w0, 64 - csel w4, w0, w4, cc -.L509: - cmp w3, w8 - bcs .L513 - lsr w0, w2, 2 + csel w7, w0, w7, cc +.L515: + cmp w6, w10 + bcs .L519 + lsr w0, w3, 2 ubfiz x0, x0, 2, 30 - cbz w7, .L510 - ldrh w6, [x5,2] - ldr x10, [x1,608] - ldrh w11, [x5],4 - orr w6, w11, w6, lsl 16 - str w6, [x10,x0] - b .L511 -.L510: - ldr x6, [x1,608] - str w9, [x6,x0] -.L511: - add w3, w3, 1 - add w2, w2, w4 - b .L509 -.L507: + cbz w9, .L516 + ldrh w8, [x5,2] + ldr x12, [x1,2144] + ldrh w13, [x5],4 + orr w8, w13, w8, lsl 16 + str w8, [x12,x0] + b .L517 +.L516: + ldr x8, [x1,2144] + str w11, [x8,x0] +.L517: + add w6, w6, 1 + add w3, w3, w7 + b .L515 +.L513: add x19, x19, :lo12:.LANCHOR2 - ubfx x23, x20, 22, 5 - mov w2, w25 - and x22, x22, 3 - ldr x1, [x19,608] - str x1, [x19,624] - lsl w1, w23, 10 - str x0, [x19,616] + ubfx x24, x20, 22, 5 + mov w2, w23 + str x4, [x29,72] + ldr x1, [x19,2144] + str x1, [x19,2160] + lsl w1, w24, 10 + str x0, [x19,2152] bl rknand_dma_map_single - str w0, [x19,632] - ldr x0, [x19,624] - lsl w1, w23, 7 - mov w2, w25 + str w0, [x19,2168] + ldr x0, [x19,2160] + lsl w1, w24, 7 + mov w2, w23 bl rknand_dma_map_single - str w0, [x19,636] + str w0, [x19,2172] mov w0, 1 - str w0, [x19,640] - ldr w0, [x19,632] + str w0, [x19,2176] + ldr w0, [x19,2168] mov w1, 16 str w0, [x21,20] - ldr w0, [x19,636] + ldr x4, [x29,72] + ldr w0, [x19,2172] str w0, [x21,24] + and x4, x4, 3 str wzr, [x29,88] ldr w0, [x29,88] bfi w0, w1, 9, 5 @@ -3580,14 +3619,14 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 448 str w0, [x29,88] - cbnz x22, .L514 + cbnz x4, .L520 ldr w0, [x29,88] mov w1, 2 bfi w0, w1, 3, 3 str w0, [x29,88] -.L514: +.L520: ldr w0, [x29,88] - cmp w25, wzr + cmp w23, wzr cset w1, eq orr w0, w0, 4 str w0, [x29,88] @@ -3597,18 +3636,17 @@ NandcXferStart: ldr w0, [x29,88] orr w0, w0, 1 str w0, [x29,88] -.L503: +.L509: ldr w0, [x29,88] str w0, [x21,16] -.L502: - str w24, [x21,12] +.L508: + str w22, [x21,12] str w20, [x21,8] orr w20, w20, 4 str w20, [x21,8] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldr x25, [sp,64] ldp x29, x30, [sp], 96 ret .size NandcXferStart, .-NandcXferStart @@ -3628,38 +3666,36 @@ NandcXferComp: adrp x20, .LANCHOR2 ldr x19, [x1,x0] add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,580] + ldr w0, [x0,2116] cmp w0, 3 - bls .L551 + bls .L557 ldr w0, [x19,16] - tbz x0, 2, .L551 - mov x0, x19 - bl wait_for_nandc_xfer_completed + tbz x0, 2, .L557 ldr w21, [x19,16] ldr w0, [x19,8] ubfx x21, x21, 1, 1 str w0, [x29,64] - cbz w21, .L522 + cbz w21, .L528 adrp x22, .LC4 adrp x23, .LC5 mov w21, 0 add x22, x22, :lo12:.LC4 add x23, x23, :lo12:.LC5 -.L523: +.L529: ldr w2, [x19,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L531 + bge .L537 add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,580] + ldr w0, [x0,2116] cmp w0, 5 - bhi .L524 -.L527: + bhi .L530 +.L533: add w21, w21, 1 and w0, w21, 16777215 - cbnz w0, .L523 + cbnz w0, .L532 ldr w2, [x19,28] mov w1, w21 ldr w3, [x29,64] @@ -3672,19 +3708,19 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L523 -.L524: + b .L532 +.L530: ldr w0, [x19] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L527 + tbz x0, 13, .L533 ldr w0, [x29,72] - tbz x0, 17, .L527 -.L531: + tbz x0, 17, .L533 +.L537: add x19, x20, :lo12:.LANCHOR2 - add x19, x19, 600 + add x19, x19, 2136 ldr w0, [x19,40] - cbz w0, .L532 + cbz w0, .L538 ldr w1, [x29,64] mov w2, 0 ldr w0, [x19,32] @@ -3697,20 +3733,25 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L532 -.L522: + b .L538 +.L532: + mov x0, 5 + mov x1, 10 + bl usleep_range + b .L529 +.L528: adrp x22, .LC6 adrp x23, .LC5 add x22, x22, :lo12:.LC6 add x23, x23, :lo12:.LC5 -.L533: +.L539: ldr w0, [x29,64] - tbnz x0, 20, .L559 + tbnz x0, 20, .L565 ldr w0, [x19,8] add w21, w21, 1 str w0, [x29,64] and w0, w21, 16777215 - cbnz w0, .L533 + cbnz w0, .L540 ldr w2, [x29,64] mov w1, w21 ldr w3, [x19,28] @@ -3722,18 +3763,22 @@ NandcXferComp: mov w2, 4 mov w3, 512 bl rknand_print_hex - b .L533 -.L559: +.L540: + mov x0, 5 + mov x1, 10 + bl usleep_range + b .L539 +.L565: add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,648] - cbz w0, .L536 + ldr w0, [x0,2184] + cbz w0, .L542 mov x0, x19 bl NandcSendDumpDataStart -.L536: +.L542: add x21, x20, :lo12:.LANCHOR2 - add x21, x21, 600 + add x21, x21, 2136 ldr w0, [x21,40] - cbz w0, .L537 + cbz w0, .L543 ldr w1, [x29,64] mov w2, 1 ldr w0, [x21,32] @@ -3746,22 +3791,22 @@ NandcXferComp: ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single -.L537: +.L543: add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,648] - cbz w0, .L532 + ldr w0, [x0,2184] + cbz w0, .L538 mov x0, x19 bl NandcSendDumpDataDone -.L532: +.L538: add x20, x20, :lo12:.LANCHOR2 - str wzr, [x20,640] - b .L520 -.L551: + str wzr, [x20,2176] + b .L526 +.L557: ldr w0, [x19,8] str w0, [x29,64] ldr w0, [x29,64] - tbz x0, 20, .L551 -.L520: + tbz x0, 20, .L557 +.L526: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -3784,14 +3829,14 @@ NandcCopy1KB: add x4, x0, 4096 add x21, x0, 512 add x2, x4, x2 - bne .L561 - cbz x3, .L562 + bne .L567 + cbz x3, .L568 mov x0, x2 mov x1, x3 mov w2, 1024 bl ftl_memcpy -.L562: - cbz x20, .L560 +.L568: + cbz x20, .L566 mov w0, 48 lsr w19, w19, 1 ldrb w1, [x20,1] @@ -3805,15 +3850,15 @@ NandcCopy1KB: ldrb w1, [x20,3] orr w0, w0, w1, lsl 24 str w0, [x21,w19,sxtw 2] - b .L560 -.L561: - cbz x3, .L565 + b .L566 +.L567: + cbz x3, .L571 mov x1, x2 mov x0, x3 mov w2, 1024 bl ftl_memcpy -.L565: - cbz x20, .L560 +.L571: + cbz x20, .L566 mov w0, 48 lsr w19, w19, 1 mul w19, w19, w0 @@ -3826,7 +3871,7 @@ NandcCopy1KB: lsr w0, w0, 24 strb w1, [x20,2] strb w0, [x20,3] -.L560: +.L566: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -3853,14 +3898,14 @@ NandcXferData: uxtb w23, w2 mov x25, x3 mov x21, x4 - cbnz x0, .L577 - cbnz x4, .L578 + cbnz x0, .L583 + cbnz x4, .L584 add x0, x29, 112 mov w1, 255 mov w2, 64 add x21, x29, 112 bl ftl_memset -.L578: +.L584: mov w0, w24 mov w1, w20 mov w2, w23 @@ -3870,23 +3915,24 @@ NandcXferData: mov w22, 0 bl NandcXferStart mov w0, w24 + mov w1, w20 bl NandcXferComp - cbnz w20, .L579 + cbnz w20, .L585 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,652] + ldr w1, [x2,2188] cmp w1, 25 mov w1, 64 csel w4, w1, w4, cc mov w1, w20 -.L581: +.L587: cmp x21, x3 add w5, w1, w4 - beq .L623 - ldr x6, [x2,608] + beq .L629 + ldr x6, [x2,2144] and x1, x1, 4294967292 add x21, x21, 4 ldr w1, [x6,x1] @@ -3898,29 +3944,29 @@ NandcXferData: lsr w1, w1, 24 strb w1, [x21,-1] mov w1, w5 - b .L581 -.L623: + b .L587 +.L629: add x0, x0, :lo12:.LANCHOR2 lsr w23, w23, 2 - ldr w4, [x0,652] - ldr w5, [x0,580] + ldr w4, [x0,2188] + ldr w5, [x0,2116] mov w0, 0 mov w22, w0 -.L583: +.L589: cmp w0, w23 - bcs .L579 - cbz w4, .L579 + bcs .L585 + cbz w4, .L585 uxtw x1, w0 add x1, x1, 8 ldr w1, [x19,x1,lsl 2] str w1, [x29,104] ldr w1, [x29,104] - tbnz x1, 2, .L607 + tbnz x1, 2, .L613 ldr w3, [x29,104] ubfx x3, x3, 15, 1 - cbnz w3, .L607 + cbnz w3, .L613 cmp w5, 5 - bls .L585 + bls .L591 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -3933,20 +3979,20 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L586 + bls .L592 ldr w1, [x29,104] ubfx x3, x3, 3, 5 ubfx x1, x1, 27, 1 orr w3, w3, w1, lsl 5 - b .L587 -.L586: + b .L593 +.L592: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 29, 1 - b .L622 -.L585: + b .L628 +.L591: cmp w5, 3 - bls .L587 + bls .L593 ldr w2, [x29,104] ubfx x6, x2, 3, 5 ldr w2, [x29,104] @@ -3959,43 +4005,43 @@ NandcXferData: orr w1, w3, w1, lsl 5 ldr w3, [x29,104] cmp w2, w1 - bls .L588 + bls .L594 ubfx x1, x3, 3, 5 ldr w3, [x29,104] ubfx x3, x3, 28, 1 - b .L622 -.L588: + b .L628 +.L594: ubfx x1, x3, 16, 5 ldr w3, [x29,104] ubfx x3, x3, 30, 1 -.L622: +.L628: orr w3, w1, w3, lsl 5 -.L587: +.L593: cmp w22, w3 csel w22, w22, w3, cs - b .L584 -.L607: - mov w22, -1 -.L584: - add w0, w0, 1 - b .L583 -.L579: - str wzr, [x19,16] b .L590 -.L577: +.L613: + mov w22, -1 +.L590: + add w0, w0, 1 + b .L589 +.L585: + str wzr, [x19,16] + b .L596 +.L583: cmp w20, 1 - bne .L621 + bne .L627 mov w22, 0 mov w27, 2 -.L591: +.L597: cmp w22, w23 - bcs .L624 + bcs .L630 and w26, w22, 3 mov x3, x25 - cbz x25, .L593 + cbz x25, .L599 ubfiz x0, x22, 9, 23 add x3, x25, x0 -.L593: +.L599: cmp x21, xzr mov x0, x19 csel w4, w27, wzr, ne @@ -4013,12 +4059,13 @@ NandcXferData: mov x5, x4 bl NandcXferStart mov w0, w24 + mov w1, 1 bl NandcXferComp - b .L591 -.L624: + b .L597 +.L630: mov w22, 0 - b .L590 -.L621: + b .L596 +.L627: mov w1, 0 mov x4, 0 mov w26, 0 @@ -4029,16 +4076,17 @@ NandcXferData: mov w22, w26 mov w27, 2 bl NandcXferStart -.L596: +.L602: cmp w26, w23 - bcs .L590 + bcs .L596 mov w0, w24 + mov w1, w20 add w28, w26, 2 bl NandcXferComp ldr w0, [x19,32] cmp w28, w23 str w0, [x29,104] - bcs .L597 + bcs .L603 mov x4, 0 mov w0, w24 mov w1, 0 @@ -4046,9 +4094,9 @@ NandcXferData: and w3, w28, 3 mov x5, x4 bl NandcXferStart -.L597: +.L603: ldr w0, [x29,104] - tbnz x0, 2, .L612 + tbnz x0, 2, .L618 ldr w0, [x29,104] ubfx x1, x0, 3, 5 ldr w0, [x29,104] @@ -4056,16 +4104,16 @@ NandcXferData: orr w0, w1, w0, lsl 5 cmp w22, w0 csel w22, w22, w0, cs - b .L598 -.L612: + b .L604 +.L618: mov w22, -1 -.L598: +.L604: and w2, w26, 3 mov x3, x25 - cbz x25, .L599 + cbz x25, .L605 ubfiz x3, x26, 9, 23 add x3, x25, x3 -.L599: +.L605: cmp x21, xzr mov x0, x19 csel w4, w27, wzr, ne @@ -4074,23 +4122,23 @@ NandcXferData: mov w26, w28 add x4, x21, x4 bl NandcCopy1KB - b .L596 -.L590: - cbnz w20, .L602 - adrp x0, .LANCHOR2+580 - ldr w0, [x0,#:lo12:.LANCHOR2+580] + b .L602 +.L596: + cbnz w20, .L608 + adrp x0, .LANCHOR2+2116 + ldr w0, [x0,#:lo12:.LANCHOR2+2116] cmp w0, 5 - bls .L602 + bls .L608 ldr w0, [x19] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L602 + bne .L608 orr w0, w0, 131072 mov w22, -1 str w0, [x19] -.L602: +.L608: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4113,7 +4161,7 @@ FlashReadRawPage: str x21, [sp,32] mov x21, x2 ldrb w20, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L626 + cbnz w19, .L632 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w5, [x0,89] @@ -4122,7 +4170,7 @@ FlashReadRawPage: cmp w1, w0 mov w0, 4 csel w20, w20, w0, cs -.L626: +.L632: mov w0, w19 str x4, [x29,48] str x1, [x29,56] @@ -4155,152 +4203,153 @@ FlashReadRawPage: FlashDdrTunningRead: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - adrp x19, .LANCHOR2 - add x20, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] stp x23, x24, [sp,48] + uxtb w24, w0 + adrp x0, .LANCHOR2 + stp x19, x20, [sp,16] + add x20, x0, :lo12:.LANCHOR2 + mov x19, x0 + stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - uxtb w24, w0 - add x27, x19, :lo12:.LANCHOR2 - ldr x0, [x20,3976] - mov w22, 6 - mov w25, w1 - mov x28, x2 - mov x23, x3 - mov w26, w4 - ldr w0, [x0,304] - mov w21, 1024 - str w0, [x29,124] - ldr w0, [x27,580] - cmp w0, 8 + mov w26, w1 mov w0, 12 + ldr x1, [x20,1160] + mov w22, 6 + mov x25, x2 + mov x23, x3 + mov w27, w4 + mov w21, 1024 + ldr w1, [x1,304] + str w1, [x29,124] + ldr w1, [x20,2116] + cmp w1, 8 csel w22, w22, w0, cc - cbz w4, .L629 + cbz w4, .L635 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode mov w0, w24 bl FlashReset - mov w1, w25 - mov x2, x28 + mov w1, w26 + mov x2, x25 mov x3, x23 mov w0, w24 bl FlashReadRawPage mov w21, w0 - ldrb w0, [x27,564] + ldrb w0, [x20,2100] bl FlashSetInterfaceMode - ldrb w0, [x27,564] + ldrb w0, [x20,2100] bl NandcSetMode cmn w21, #1 - bne .L630 -.L639: + bne .L636 +.L645: mov w21, -1 - b .L631 -.L630: + b .L637 +.L636: adrp x0, .LC7 - mov w1, w25 + mov w1, w26 add x0, x0, :lo12:.LC7 mov w2, w21 bl printk cmp w21, 9 - bhi .L632 - add x20, x20, x24, sxtw 4 - ldr x0, [x20,24] + bhi .L638 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + add x0, x0, x24, sxtw 4 + ldr x0, [x0,24] ldr w1, [x0,3840] ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L632: - add x19, x19, :lo12:.LANCHOR2 - ldr w0, [x19,664] - add w0, w0, 1 - str w0, [x19,664] - cmp w0, 2047 - bls .L631 +.L638: + add x0, x19, :lo12:.LANCHOR2 + ldr w1, [x0,2200] + add w1, w1, 1 + str w1, [x0,2200] + cmp w1, 2047 + bls .L637 mov x23, 0 - str wzr, [x19,664] - mov x28, x23 -.L629: + str wzr, [x0,2200] + mov x25, x23 +.L635: mov w19, 0 - mov w27, -1 + mov w28, -1 mov w5, w19 mov w6, w19 mov w20, w19 -.L637: +.L643: mov w0, w22 str x5, [x29,104] str x6, [x29,112] bl NandcSetDdrPara - mov w1, w25 + mov w1, w26 mov w0, w24 - mov x2, x28 + mov x2, x25 mov x3, x23 bl FlashReadRawPage add w1, w21, 1 ldr x6, [x29,112] cmp w0, w1 ldr x5, [x29,104] - bhi .L633 + bhi .L639 cmp w0, 2 - bhi .L643 + bhi .L649 add w20, w20, 1 cmp w20, 9 - bls .L643 + bls .L649 sub w19, w22, w20 mov w21, w0 - mov w27, 0 - b .L635 -.L633: + mov w28, 0 + b .L641 +.L639: cmp w6, w20 - bcs .L644 + bcs .L650 cmp w20, 7 sub w5, w19, w20 - bhi .L645 + bhi .L651 mov w6, w20 - b .L644 -.L643: + b .L650 +.L649: mov x23, 0 mov w19, w22 mov w21, w0 - mov w27, 0 - mov x28, x23 - b .L634 -.L644: + mov w28, 0 + mov x25, x23 + b .L640 +.L650: mov w20, 0 -.L634: +.L640: add w22, w22, 2 cmp w22, 69 - bls .L637 -.L635: + bls .L643 +.L641: cmp w6, w20 csel w19, w19, w5, cc - b .L636 -.L645: + b .L642 +.L651: mov w19, w5 -.L636: - cbz w19, .L638 +.L642: + cbz w19, .L644 adrp x0, .LC8 mov w1, w19 add x0, x0, :lo12:.LC8 bl printk mov w0, w19 bl NandcSetDdrPara -.L638: - cbz w27, .L631 +.L644: + cbz w28, .L637 adrp x0, .LC9 mov w1, w24 add x0, x0, :lo12:.LC9 - mov w2, w25 + mov w2, w26 bl printk - cbz w26, .L639 + cbz w27, .L645 ldr w0, [x29,124] lsr w0, w0, 8 bl NandcSetDdrPara -.L631: +.L637: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4314,14 +4363,13 @@ FlashDdrTunningRead: .global FlashReadPage .type FlashReadPage, %function FlashReadPage: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp,16] uxtb w20, w0 - str x27, [sp,80] mov w0, w20 - stp x23, x24, [sp,48] stp x21, x22, [sp,32] + stp x23, x24, [sp,48] stp x25, x26, [sp,64] mov w22, w1 mov x25, x2 @@ -4329,54 +4377,53 @@ FlashReadPage: bl FlashReadRawPage cmn w0, #1 mov w19, w0 - adrp x23, .LANCHOR2 - bne .L655 - adrp x21, .LANCHOR0 - add x26, x21, :lo12:.LANCHOR0 - ldrb w27, [x26,96] - cbnz w27, .L656 -.L658: - add x0, x23, :lo12:.LANCHOR2 - ldrb w0, [x0,572] - cbz w0, .L655 - b .L676 -.L656: + adrp x21, .LANCHOR2 + bne .L661 + adrp x23, .LANCHOR0 + add x23, x23, :lo12:.LANCHOR0 + ldrb w26, [x23,96] + cbnz w26, .L662 +.L664: + add x23, x21, :lo12:.LANCHOR2 + ldrb w0, [x23,2108] + cbz w0, .L661 + b .L682 +.L662: mov w0, w20 mov w1, w22 mov x2, x25 mov x3, x24 - strb wzr, [x26,96] + strb wzr, [x23,96] bl FlashReadRawPage - strb w27, [x26,96] + strb w26, [x23,96] cmn w0, #1 - beq .L658 + beq .L664 mov w19, w0 - b .L655 -.L676: - add x21, x21, :lo12:.LANCHOR0 + b .L661 +.L682: + ldr x0, [x23,1160] mov w1, w22 mov x2, x25 mov x3, x24 mov w4, 1 - ldr x0, [x21,3976] ldr w26, [x0,304] mov w0, w20 bl FlashDdrTunningRead cmn w0, #1 mov w19, w0 - beq .L659 - ldrb w0, [x21,4045] + beq .L665 + ldrb w0, [x23,1229] cmp w19, w0, lsr 1 - bls .L655 -.L659: + bls .L661 +.L665: lsr w0, w26, 8 bl NandcSetDdrPara -.L655: - add x21, x23, :lo12:.LANCHOR2 +.L661: + add x21, x21, :lo12:.LANCHOR2 cmn w19, #1 - ldr x4, [x21,672] - bne .L660 - cbz x4, .L660 + ldr x4, [x21,2208] + bne .L666 + cbz x4, .L666 mov w1, w22 mov x2, x25 mov x3, x24 @@ -4390,13 +4437,12 @@ FlashReadPage: mov w3, w22 bl printk cmn w19, #1 - bne .L660 - adrp x0, .LANCHOR0+4044 - ldrb w0, [x0,#:lo12:.LANCHOR0+4044] - cbz w0, .L660 + bne .L666 + ldrb w0, [x21,1228] + cbz w0, .L666 mov w0, w20 bl flash_enter_slc_mode - ldr x4, [x21,672] + ldr x4, [x21,2208] mov w0, w20 mov w1, w22 mov x2, x25 @@ -4405,14 +4451,13 @@ FlashReadPage: mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L660: +.L666: mov w0, w19 - 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], 96 + ldp x29, x30, [sp], 80 ret .size FlashReadPage, .-FlashReadPage .align 2 @@ -4427,9 +4472,9 @@ FlashDdrParaScan: stp x21, x22, [sp,32] add x22, x19, :lo12:.LANCHOR2 uxtb w21, w0 - ldrb w0, [x22,564] + ldrb w0, [x22,2100] bl FlashSetInterfaceMode - ldrb w0, [x22,564] + ldrb w0, [x22,2100] bl NandcSetMode mov x2, 0 mov w1, w20 @@ -4444,24 +4489,24 @@ FlashDdrParaScan: mov x3, x2 bl FlashReadRawPage cmn w0, #1 - beq .L681 + beq .L687 cmn w22, #1 - bne .L678 -.L681: + bne .L684 +.L687: add x20, x19, :lo12:.LANCHOR2 - ldrb w0, [x20,564] - tbz x0, 0, .L678 + ldrb w0, [x20,2100] + tbz x0, 0, .L684 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,572] - b .L680 -.L678: + strb wzr, [x20,2108] + b .L686 +.L684: add x19, x19, :lo12:.LANCHOR2 mov w0, 1 - strb w0, [x19,572] -.L680: + strb w0, [x19,2108] +.L686: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4476,8 +4521,8 @@ FlashLoadPhyInfo: mov w0, 60 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - str x27, [sp,80] + adrp x20, .LANCHOR0 + adrp x19, .LANCHOR2 strb w0, [x29,104] mov w0, 40 strb w0, [x29,105] @@ -4485,126 +4530,122 @@ FlashLoadPhyInfo: strb w0, [x29,106] mov w0, 16 strb w0, [x29,107] - add x0, x19, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] + add x0, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - adrp x23, .LANCHOR2 + stp x23, x24, [sp,48] + add x19, x19, :lo12:.LANCHOR2 adrp x22, .LANCHOR1 - ldr w25, [x0,92] - add x0, x23, :lo12:.LANCHOR2 - ldr x1, [x19,#:lo12:.LANCHOR0] + stp x27, x28, [sp,80] add x22, x22, :lo12:.LANCHOR1 - mov w20, 0 - mov w24, 4 - str x1, [x0,680] + mov w21, 0 + ldr w24, [x0,92] + mov w23, 4 + ldr x0, [x20,#:lo12:.LANCHOR0] mov w26, -1 - str wzr, [x0,688] + str x0, [x19,2216] add x22, x22, 472 mov w0, 0 + add x25, x19, 1240 + str wzr, [x19,2224] bl flash_enter_slc_mode -.L689: - add w27, w20, 1 - mov x21, 0 -.L691: +.L695: + add w28, w21, 1 + mov x27, 0 +.L697: add x0, x29, 104 - ldrb w0, [x21,x0] + ldrb w0, [x27,x0] bl FlashBchSel - ldr x2, [x19,#:lo12:.LANCHOR0] + ldr x2, [x20,#:lo12:.LANCHOR0] mov w0, 0 - mov w1, w20 + mov w1, w21 mov x3, 0 bl FlashReadRawPage cmn w0, #1 - bne .L690 - ldr x2, [x19,#:lo12:.LANCHOR0] + bne .L696 + ldr x2, [x20,#:lo12:.LANCHOR0] mov w0, 0 - mov w1, w27 + mov w1, w28 mov x3, 0 bl FlashReadRawPage cmn w0, #1 - bne .L690 - add x21, x21, 1 - cmp x21, 4 - beq .L692 - b .L691 -.L693: + bne .L696 + add x27, x27, 1 + cmp x27, 4 + beq .L698 + b .L697 +.L699: mov w1, 2036 add x0, x27, 12 mov w26, -1 bl js_hash ldr w1, [x27,8] cmp w1, w0 - beq .L703 -.L692: - subs w24, w24, #1 - add w20, w20, w25 - bne .L689 - mov w0, w24 -.L702: + beq .L710 +.L698: + subs w23, w23, #1 + add w21, w21, w24 + bne .L695 + mov w0, w23 +.L709: bl flash_exit_slc_mode - ldr x27, [sp,80] mov w0, w26 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 ret -.L690: - add x21, x23, :lo12:.LANCHOR2 +.L696: + ldr x27, [x19,2216] mov w0, 20036 movk w0, 0x4e41, lsl 16 - ldr x27, [x21,680] ldr w1, [x27] cmp w1, w0 - bne .L692 - cbnz w26, .L693 - add x19, x19, :lo12:.LANCHOR0 - ldr w0, [x19,92] - udiv w20, w20, w0 + bne .L698 + cbnz w26, .L699 + add x20, x20, :lo12:.LANCHOR0 + ldr w0, [x20,92] + udiv w21, w21, w0 mov w0, w26 - add w20, w20, 1 - str w20, [x19,8] - b .L702 -.L703: + add w21, w21, 1 + str w21, [x20,8] + b .L709 +.L710: add x1, x27, 160 mov w2, 32 mov x0, x22 - add x26, x19, :lo12:.LANCHOR0 + add x26, x20, :lo12:.LANCHOR0 bl ftl_memcpy - ldr x1, [x21,680] + ldr x1, [x19,2216] mov w2, 32 add x0, x26, 104 add x1, x1, 192 bl ftl_memcpy - ldr x1, [x21,680] + ldr x1, [x19,2216] mov w2, 852 - add x0, x26, 4056 + mov x0, x25 add x1, x1, 224 bl ftl_memcpy ldrh w0, [x22,10] bl FlashBlockAlignInit - str w20, [x21,688] + str w21, [x19,2224] + ldr x0, [x19,2216] + ldr w1, [x0,1076] + strb w1, [x19,2108] ldr w1, [x26,92] - ldr x2, [x21,680] - udiv w1, w20, w1 - ldr w0, [x2,1076] + udiv w1, w21, w1 add w1, w1, 1 - strb w0, [x21,572] cmp w1, 1 - bls .L695 + bhi .L708 + mov w1, 2 +.L708: + ldrh w0, [x0,14] str w1, [x26,8] - b .L696 -.L695: - mov w0, 2 - str w0, [x26,8] -.L696: - add x0, x23, :lo12:.LANCHOR2 - ldrh w1, [x2,14] mov w26, 0 - strb w1, [x0,692] - b .L692 + strb w0, [x19,2228] + b .L698 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial @@ -4624,15 +4665,14 @@ ToshibaReadRetrial: mov x26, x3 bl NandcWaitFlashReady adrp x20, g_retryMode - adrp x2, .LANCHOR0 + adrp x0, .LANCHOR0 sbfiz x1, x23, 4, 32 - add x0, x2, :lo12:.LANCHOR0 - str x2, [x29,120] - add x0, x0, 24 + add x0, x0, :lo12:.LANCHOR0 mov w22, 0 - add x3, x0, x1 + add x0, x0, 24 + add x2, x0, x1 ldr x24, [x0,x1] - ldrb w0, [x3,8] + ldrb w0, [x2,8] str x0, [x29,136] add x19, x0, 8 mov x28, x0 @@ -4641,70 +4681,70 @@ ToshibaReadRetrial: sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 - bls .L705 - adrp x0, .LANCHOR2+572 - ldrb w0, [x0,#:lo12:.LANCHOR2+572] - cbz w0, .L706 + bls .L712 + adrp x0, .LANCHOR2+2108 + ldrb w0, [x0,#:lo12:.LANCHOR2+2108] + cbz w0, .L713 mov w0, w22 mov w22, 1 bl NandcSetDdrMode -.L706: +.L713: ubfiz x0, x28, 8, 8 mov w2, 92 add x0, x24, x0 str w2, [x0,2056] mov w2, 197 str w2, [x0,2056] -.L705: +.L712: adrp x0, g_maxRetryCount mov w21, 1 add x0, x0, :lo12:g_maxRetryCount - str x0, [x29,112] + str x0, [x29,120] ldr x0, [x29,136] mov w25, -1 add x0, x0, 8 lsl x0, x0, 8 - str x0, [x29,104] + str x0, [x29,112] ubfiz x0, x28, 8, 8 - str x0, [x29,96] -.L707: + str x0, [x29,104] +.L714: adrp x0, g_maxRetryCount ldrb w0, [x0,#:lo12:g_maxRetryCount] add w0, w0, 1 cmp w21, w0 - bcs .L732 + bcs .L739 ldrb w0, [x20,#:lo12:g_retryMode] mov w1, w21 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x19 - bhi .L708 + bhi .L715 bl SandiskSetRRPara - b .L709 -.L708: + b .L716 +.L715: bl ToshibaSetRRPara -.L709: +.L716: ldrb w0, [x20,#:lo12:g_retryMode] cmp w0, 34 - bne .L710 - ldr x0, [x29,112] + bne .L717 + ldr x0, [x29,120] ldrb w0, [x0] sub w0, w0, #3 cmp w21, w0 - bne .L710 - ldr x0, [x29,104] + bne .L717 + ldr x0, [x29,112] mov w1, 179 add x0, x24, x0 str w1, [x0,8] -.L710: - ldr x0, [x29,96] +.L717: + ldr x0, [x29,104] mov w1, 38 add x0, x24, x0 str w1, [x0,2056] mov w1, 93 str w1, [x0,2056] - cbz w22, .L711 + cbz w22, .L718 mov w0, 4 bl NandcSetDdrMode ldr w1, [x29,132] @@ -4715,66 +4755,64 @@ ToshibaReadRetrial: mov w28, w0 mov w0, 0 bl NandcSetDdrMode - b .L712 -.L711: + b .L719 +.L718: ldr w1, [x29,132] mov w0, w23 mov x2, x27 mov x3, x26 bl FlashReadRawPage mov w28, w0 -.L712: +.L719: cmn w28, #1 - beq .L713 - ldr x0, [x29,120] + beq .L720 + adrp x0, .LANCHOR2+1229 cmn w25, #1 csel w25, w25, w28, ne - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,4045] + ldrb w0, [x0,#:lo12:.LANCHOR2+1229] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L715 + bcc .L722 mov x26, 0 mov x27, x26 -.L713: +.L720: add w21, w21, 1 - b .L707 -.L732: + b .L714 +.L739: mov w28, w25 -.L715: +.L722: ldrb w0, [x20,#:lo12:g_retryMode] mov w1, 0 sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x19 - bhi .L717 + bhi .L724 bl SandiskSetRRPara - b .L718 -.L717: + b .L725 +.L724: bl ToshibaSetRRPara -.L718: +.L725: ldr x0, [x29,136] add x0, x0, 8 add x24, x24, x0, lsl 8 mov w0, 255 str w0, [x24,8] - ldr x0, [x29,120] - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,4045] + adrp x0, .LANCHOR2+1229 + ldrb w0, [x0,#:lo12:.LANCHOR2+1229] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L719 + bcc .L726 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L719: +.L726: mov w0, w23 bl NandcWaitFlashReady - cbz w22, .L720 + cbz w22, .L727 mov w0, 4 bl NandcSetDdrMode -.L720: +.L727: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4791,71 +4829,72 @@ SamsungReadRetrial: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp,32] - uxtb w22, w0 + uxtb w21, w0 str x27, [sp,80] - mov w0, w22 - adrp x27, g_maxRetryCount + mov w0, w21 + mov x22, x3 stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - mov x24, x2 - mov w25, w1 - mov x23, x3 - adrp x20, .LANCHOR0 + mov w24, w1 + mov x23, x2 bl NandcWaitFlashReady - mov w26, 1 - add x0, x20, :lo12:.LANCHOR0 - sbfiz x1, x22, 4, 32 - add x0, x0, 24 + adrp x26, g_maxRetryCount + adrp x4, .LANCHOR0 + sbfiz x0, x21, 4, 32 + add x4, x4, :lo12:.LANCHOR0 + mov w25, 1 + add x4, x4, 24 mov w19, -1 - add x2, x0, x1 - add x27, x27, :lo12:g_maxRetryCount - ldr x0, [x0,x1] - ldrb w21, [x2,8] - add x21, x21, 8 - add x21, x0, x21, lsl 8 -.L734: - ldrb w0, [x27] + add x1, x4, x0 + add x26, x26, :lo12:g_maxRetryCount + adrp x27, .LANCHOR2 + ldr x0, [x4,x0] + ldrb w20, [x1,8] + add x20, x20, 8 + add x20, x0, x20, lsl 8 +.L741: + ldrb w0, [x26] add w0, w0, 1 - cmp w26, w0 - bcs .L737 - mov x0, x21 - mov w1, w26 - bl SamsungSetRRPara - mov w0, w22 + cmp w25, w0 + bcs .L744 + mov x0, x20 mov w1, w25 - mov x2, x24 - mov x3, x23 + bl SamsungSetRRPara + mov w0, w21 + mov w1, w24 + mov x2, x23 + mov x3, x22 bl FlashReadRawPage cmn w0, #1 - beq .L735 - add x1, x20, :lo12:.LANCHOR0 + beq .L742 + add x1, x27, :lo12:.LANCHOR2 cmn w19, #1 csel w19, w19, w0, ne - ldrb w1, [x1,4045] + ldrb w1, [x1,1229] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L740 - mov x23, 0 - mov x24, x23 -.L735: - add w26, w26, 1 - b .L734 -.L740: + bcc .L747 + mov x22, 0 + mov x23, x22 +.L742: + add w25, w25, 1 + b .L741 +.L747: mov w19, w0 -.L737: - mov x0, x21 +.L744: + mov x0, x20 mov w1, 0 - add x20, x20, :lo12:.LANCHOR0 bl SamsungSetRRPara - ldrb w0, [x20,4045] + adrp x0, .LANCHOR2+1229 + ldrb w0, [x0,#:lo12:.LANCHOR2+1229] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L739 + bcc .L746 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L739: +.L746: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -4871,52 +4910,53 @@ SamsungReadRetrial: MicronReadRetrial: stp x29, x30, [sp, -160]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 stp x21, x22, [sp,32] uxtb w21, w0 - add x0, x20, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] + adrp x0, .LANCHOR2 stp x27, x28, [sp,80] - stp x23, x24, [sp,48] mov w28, w1 - mov x26, x2 - ldrb w19, [x0,4045] + add x1, x0, :lo12:.LANCHOR2 + stp x25, x26, [sp,64] + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] + str x0, [x29,152] + mov x25, x2 + ldrb w19, [x1,1229] mov x22, x3 - ldrb w0, [x0,4044] - cbnz w0, .L747 + ldrb w1, [x1,1228] + cbnz w1, .L754 add w19, w19, w19, lsl 1 ubfx x19, x19, 2, 8 - b .L748 -.L747: + b .L755 +.L754: mov w0, 3 sdiv w19, w19, w0 -.L748: - adrp x0, g_maxRetryCount +.L755: + adrp x26, g_maxRetryCount adrp x27, .LC11 - add x0, x0, :lo12:g_maxRetryCount - mov w25, 0 - str x0, [x29,152] - add x0, x27, :lo12:.LC11 - str x0, [x29,144] - add x20, x20, :lo12:.LANCHOR0 - add x23, x20, 24 - add x23, x23, x21, sxtw 4 -.L759: - mov w0, w21 + adrp x20, .LANCHOR0 + add x0, x26, :lo12:g_maxRetryCount mov w24, 0 - mov w27, -1 + str x0, [x29,144] + add x27, x27, :lo12:.LC11 + add x20, x20, :lo12:.LANCHOR0 + add x20, x20, 24 + add x20, x20, x21, sxtw 4 +.L766: + mov w0, w21 + mov w23, 0 + mov w26, -1 bl NandcWaitFlashReady - ldrb w4, [x23,8] + ldrb w4, [x20,8] mov w9, 239 - ldr x6, [x23] + ldr x6, [x20] mov w10, 137 lsl x8, x4, 8 -.L749: - ldr x0, [x29,152] +.L756: + ldr x0, [x29,144] ldrb w0, [x0] - cmp w24, w0 - bcs .L752 + cmp w23, w0 + bcs .L759 add x2, x6, x8 mov x0, 1000 str x4, [x29,96] @@ -4929,7 +4969,7 @@ MicronReadRetrial: str x2, [x29,136] bl __const_udelay ldr x2, [x29,136] - add w7, w24, 1 + add w7, w23, 1 mov w0, w21 mov w1, w28 mov x3, x22 @@ -4938,7 +4978,7 @@ MicronReadRetrial: str wzr, [x2,2048] str wzr, [x2,2048] str wzr, [x2,2048] - mov x2, x26 + mov x2, x25 bl FlashReadRawPage cmn w0, #1 ldr x7, [x29,136] @@ -4947,21 +4987,21 @@ MicronReadRetrial: ldr x6, [x29,112] ldr x8, [x29,104] ldr x4, [x29,96] - beq .L750 - cmn w27, #1 - csel w27, w27, w0, ne + beq .L757 + cmn w26, #1 + csel w26, w26, w0, ne cmp w0, w19 - bcc .L761 + bcc .L768 mov x22, 0 - mov x26, x22 -.L750: - mov w24, w7 - b .L749 -.L761: + mov x25, x22 +.L757: + mov w23, w7 + b .L756 +.L768: mov x22, 0 - mov w27, w0 - mov x26, x22 -.L752: + mov w26, w0 + mov x25, x22 +.L759: add x1, x6, x4, lsl 8 mov w0, 239 str x1, [x29,136] @@ -4971,55 +5011,57 @@ MicronReadRetrial: mov x0, 1000 bl __const_udelay ldr x1, [x29,136] - cmp w27, w19 + cmp w26, w19 str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] - bcc .L754 - cmn w27, #1 + bcc .L761 + cmn w26, #1 mov w0, 256 - csel w27, w27, w0, eq -.L754: - cmn w27, #1 + csel w26, w26, w0, eq +.L761: + cmn w26, #1 cset w6, eq - cbnz w6, .L763 - cmp w27, 256 + cbnz w6, .L770 + cmp w26, 256 cset w1, eq - cbz w1, .L755 -.L763: - ldr x0, [x29,144] - mov w1, w24 + cbz w1, .L762 +.L770: + mov x0, x27 + mov w1, w23 mov w2, w28 - mov w3, w24 - mov w4, w27 + mov w3, w23 + mov w4, w26 str x6, [x29,136] bl printk - cbnz w25, .L757 + cbnz w24, .L764 ldr x6, [x29,136] - cbz w6, .L768 - ldrb w0, [x20,4044] - cbz w0, .L768 + cbz w6, .L775 + ldr x0, [x29,152] + add x0, x0, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] + cbz w0, .L775 mov w0, w21 mov w1, 3 - mov w25, 1 + mov w24, 1 bl micron_auto_read_calibration_config - b .L759 -.L757: + b .L766 +.L764: mov w0, w21 mov w1, 0 bl micron_auto_read_calibration_config - cmn w27, #1 + cmn w26, #1 mov w0, 256 - csel w27, w27, w0, eq - b .L768 -.L755: - cbz w25, .L768 + csel w26, w26, w0, eq + b .L775 +.L762: + cbz w24, .L775 mov w0, w21 - mov w27, 256 + mov w26, 256 bl micron_auto_read_calibration_config -.L768: - mov w0, w27 +.L775: + mov w0, w26 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -5032,105 +5074,109 @@ MicronReadRetrial: .global HynixReadRetrial .type HynixReadRetrial, %function HynixReadRetrial: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -128]! add x29, sp, 0 stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - uxtb x22, w0 - add x0, x21, :lo12:.LANCHOR0 + adrp x21, .LANCHOR2 + adrp x22, .LANCHOR0 stp x23, x24, [sp,48] - stp x25, x26, [sp,64] + uxtb x23, w0 + add x0, x21, :lo12:.LANCHOR2 + add x0, x0, 1240 + mov x24, x23 stp x27, x28, [sp,80] + stp x25, x26, [sp,64] stp x19, x20, [sp,16] - mov x26, x2 - add x2, x0, 4056 - ldrb w25, [x0,4058] - mov w27, w1 - ldr x0, [x0,1912] - add x1, x2, x22 - mov x23, x22 - mov x24, x3 - ldrb w0, [x0,19] + mov w28, w1 + add x1, x0, x23 + ldrb w26, [x0,2] + add x0, x22, :lo12:.LANCHOR0 + mov x27, x2 + mov x25, x3 ldrb w19, [x1,12] + ldr x0, [x0,3448] + ldrb w0, [x0,19] sub w0, w0, #7 uxtb w0, w0 cmp w0, 1 - bhi .L777 + bhi .L784 ldrb w19, [x1,20] -.L777: - mov w0, w23 - mov w28, 0 +.L784: + mov w0, w24 mov w20, -1 bl NandcWaitFlashReady - add x4, x21, :lo12:.LANCHOR0 - add x5, x4, 4060 -.L778: - cmp w28, w25 - bcs .L782 + add x5, x21, :lo12:.LANCHOR2 + mov w4, 0 + add x6, x5, 1244 +.L785: + cmp w4, w26 + bcs .L789 add w19, w19, 1 - ldrb w1, [x4,4057] - mov x2, x5 - mov w0, w23 + ldrb w1, [x5,1241] + mov x2, x6 + mov w0, w24 uxtb w19, w19 - str x4, [x29,96] - cmp w19, w25 - str x5, [x29,104] + str x4, [x29,104] + cmp w19, w26 + str x5, [x29,112] csel w19, w19, wzr, cc + str x6, [x29,120] mov w3, w19 bl HynixSetRRPara - mov w0, w23 - mov w1, w27 - mov x2, x26 - mov x3, x24 + mov w0, w24 + mov w1, w28 + mov x2, x27 + mov x3, x25 bl FlashReadRawPage cmn w0, #1 - ldr x5, [x29,104] - ldr x4, [x29,96] - beq .L780 - ldrb w1, [x4,4045] + ldr x6, [x29,120] + ldr x5, [x29,112] + ldr x4, [x29,104] + beq .L787 + ldrb w1, [x5,1229] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L787 - mov x24, 0 - mov x26, x24 -.L780: - add w28, w28, 1 - b .L778 + bcc .L794 + mov x25, 0 + mov x27, x25 .L787: - mov w20, w0 -.L782: - add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,1912] - add x0, x0, 4056 - add x0, x0, x22 - ldrb w1, [x1,19] - sub w1, w1, #7 - uxtb w1, w1 - cmp w1, 1 - bhi .L784 - strb w19, [x0,20] + add w4, w4, 1 b .L785 -.L784: - strb w19, [x0,12] -.L785: - add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,4045] +.L794: + mov w20, w0 +.L789: + add x22, x22, :lo12:.LANCHOR0 + ldr x0, [x22,3448] + 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: + strb w19, [x23,1252] +.L792: + add x21, x21, :lo12:.LANCHOR2 + ldrb w0, [x21,1229] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L786 + bcc .L793 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L786: +.L793: 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], 112 + ldp x29, x30, [sp], 128 ret .size HynixReadRetrial, .-HynixReadRetrial .align 2 @@ -5147,21 +5193,19 @@ FlashProgPage: mov w20, w1 mov x22, x2 ldrb w21, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L794 + cbnz w19, .L801 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x0,89] ldr w2, [x0,92] mul w1, w1, w2 cmp w20, w1 - bcs .L794 + bcs .L801 ldrb w0, [x0,88] - cbnz w0, .L795 - sub w21, w21, #2 - b .L794 -.L795: - mov w21, 4 -.L794: + cmp w0, wzr + mov w0, 4 + csel w21, w21, w0, eq +.L801: mov w0, w19 str x4, [x29,56] bl NandcWaitFlashReady @@ -5209,69 +5253,69 @@ FlashSavePhyInfo: stp x25, x26, [sp,64] ldr x0, [x22,#:lo12:.LANCHOR0] mov w21, 0 - str x0, [x19,680] - ldrb w0, [x19,693] + str x0, [x19,2216] + ldrb w0, [x19,2229] bl FlashBchSel ldr x0, [x22,#:lo12:.LANCHOR0] mov w1, 0 mov w2, 2048 bl ftl_memset - ldr x1, [x19,680] + ldr x1, [x19,2216] mov w0, 20036 movk w0, 0x4e41, lsl 16 mov w2, 32 str w0, [x1] - ldr x0, [x19,680] - ldrb w1, [x20,1672] + ldr x0, [x19,2216] + ldrb w1, [x20,3208] add x0, x0, 16 strh w1, [x0,-4] ldrb w1, [x20,89] strh w1, [x0,-2] - ldrb w1, [x19,572] + ldrb w1, [x19,2108] str w1, [x0,1060] adrp x1, IDByte add x1, x1, :lo12:IDByte bl ftl_memcpy - ldr x0, [x19,680] - add x1, x20, 1676 + ldr x0, [x19,2216] + add x1, x20, 3212 mov w2, 8 add x0, x0, 80 bl ftl_memcpy - ldr x0, [x19,680] - add x1, x20, 1684 + ldr x0, [x19,2216] + add x1, x20, 3220 mov w2, 32 add x0, x0, 96 bl ftl_memcpy - ldr x0, [x19,680] + ldr x0, [x19,2216] 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,680] + ldr x0, [x19,2216] add x1, x20, 104 mov w2, 32 add x0, x0, 192 bl ftl_memcpy - ldr x0, [x19,680] - add x1, x20, 4056 + ldr x0, [x19,2216] + add x1, x19, 1240 mov w2, 852 add x0, x0, 224 bl ftl_memcpy - ldr x20, [x19,680] + ldr x20, [x19,2216] mov w1, 2036 add x0, x20, 12 bl js_hash str w0, [x20,8] mov w0, 1592 str w0, [x20,4] - ldr x0, [x19,696] - str x0, [x19,680] + ldr x0, [x19,2232] + str x0, [x19,2216] mov w0, 0 mov w19, w21 bl flash_enter_slc_mode -.L799: +.L806: add x20, x22, :lo12:.LANCHOR0 mov w2, 0 mov w0, 0 @@ -5295,39 +5339,39 @@ FlashSavePhyInfo: bl FlashProgPage ldr w1, [x20,92] mov w0, 0 - ldr x2, [x24,696] + ldr x2, [x24,2232] mov x3, 0 mul w1, w19, w1 bl FlashReadRawPage cmn w0, #1 - beq .L797 - ldr x25, [x24,680] + beq .L804 + ldr x25, [x24,2216] mov w0, 20036 movk w0, 0x4e41, lsl 16 ldr w1, [x25] cmp w1, w0 - bne .L797 + bne .L804 mov w1, 2036 add x0, x25, 12 bl js_hash ldr w1, [x25,8] cmp w1, w0 - bne .L797 + bne .L804 ldr w0, [x20,92] cmp w21, 1 str w26, [x20,8] mul w19, w19, w0 - str w19, [x24,688] - beq .L800 + str w19, [x24,2224] + beq .L807 mov w21, 1 -.L797: +.L804: cmp w26, 4 mov w19, w26 - bne .L799 - b .L798 -.L800: + bne .L806 + b .L805 +.L807: mov w21, 2 -.L798: +.L805: mov w0, 0 bl flash_exit_slc_mode cmp w21, wzr @@ -5343,76 +5387,78 @@ FlashSavePhyInfo: .global FlashReadIdbDataRaw .type FlashReadIdbDataRaw, %function FlashReadIdbDataRaw: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x27, x28, [sp,80] - mov x27, x0 + stp x25, x26, [sp,64] + mov x25, x0 mov w0, 60 - strb w0, [x29,104] + strb w0, [x29,120] mov w0, 40 - strb w0, [x29,105] + strb w0, [x29,121] mov w0, 24 stp x21, x22, [sp,32] - strb w0, [x29,106] - adrp x21, .LANCHOR0 + strb w0, [x29,122] + adrp x21, .LANCHOR2 mov w0, 16 - strb w0, [x29,107] - add x0, x21, :lo12:.LANCHOR0 - adrp x22, .LANCHOR2 + strb w0, [x29,123] + add x0, x21, :lo12:.LANCHOR2 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldrb w28, [x0,4045] - add x0, x22, :lo12:.LANCHOR2 - ldr w0, [x0,568] - cbz w0, .L806 + stp x27, x28, [sp,80] + ldrb w28, [x0,1229] + ldr w0, [x0,2104] + cbz w0, .L813 mov w0, 0 bl flash_enter_slc_mode -.L806: - adrp x25, .LC12 - mov x0, x27 +.L813: + adrp x26, .LANCHOR0 + adrp x24, .LC12 + mov x0, x25 mov w1, 0 mov w2, 2048 - mov w24, -1 + mov w23, -1 mov w20, 2 - add x25, x25, :lo12:.LC12 + mov x27, x26 + add x24, x24, :lo12:.LC12 bl ftl_memset -.L807: - add x0, x21, :lo12:.LANCHOR0 +.L814: + add x0, x26, :lo12:.LANCHOR0 ldrb w0, [x0,89] cmp w20, w0 - bcs .L811 - mov x23, 0 -.L809: - add x0, x29, 104 - add x19, x21, :lo12:.LANCHOR0 - ldrb w26, [x23,x0] - mov w0, w26 + bcs .L818 + mov x22, 0 +.L816: + add x0, x29, 120 + add x19, x27, :lo12:.LANCHOR0 + ldrb w4, [x22,x0] + str x4, [x29,104] + mov w0, w4 bl FlashBchSel ldr w1, [x19,92] mov w0, 0 - ldr x2, [x21,#:lo12:.LANCHOR0] + ldr x2, [x27,#:lo12:.LANCHOR0] mov x3, 0 mul w1, w20, w1 bl FlashReadRawPage cmn w0, #1 - bne .L808 - add x23, x23, 1 - cmp x23, 4 - bne .L809 - b .L810 -.L808: + ldr x4, [x29,104] + bne .L815 + add x22, x22, 1 + cmp x22, 4 + bne .L816 + b .L817 +.L815: ldr x0, [x19] ldr w1, [x0] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L810 - mov w1, w26 - mov x0, x25 + bne .L817 + mov w1, w4 + mov x0, x24 bl printk ldr x1, [x19] - mov x0, x27 + mov x0, x25 mov w2, 2048 bl ftl_memcpy ldr x0, [x19] @@ -5420,31 +5466,31 @@ FlashReadIdbDataRaw: strb w0, [x19,89] ldr w0, [x19,8] cmp w0, w20 - bls .L814 - mov w24, 0 + bls .L821 + mov w23, 0 str w20, [x19,8] bl FlashSavePhyInfo -.L810: +.L817: add w20, w20, 1 - b .L807 -.L814: - mov w24, 0 -.L811: + b .L814 +.L821: + mov w23, 0 +.L818: mov w0, w28 - add x22, x22, :lo12:.LANCHOR2 + add x21, x21, :lo12:.LANCHOR2 bl FlashBchSel - ldr w0, [x22,568] - cbz w0, .L818 + ldr w0, [x21,2104] + cbz w0, .L825 mov w0, 0 bl flash_exit_slc_mode -.L818: - mov w0, w24 +.L825: + mov w0, w23 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], 128 ret .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .align 2 @@ -5455,53 +5501,53 @@ FlashInit: add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x19, .LANCHOR0 + adrp x20, .LANCHOR0 mov x23, x0 mov w0, 32768 - adrp x20, .LANCHOR2 + adrp x19, .LANCHOR2 stp x21, x22, [sp,32] stp x27, x28, [sp,80] stp x25, x26, [sp,64] bl ftl_malloc - add x21, x20, :lo12:.LANCHOR2 - str x0, [x19,#:lo12:.LANCHOR0] + add x21, x19, :lo12:.LANCHOR2 + str x0, [x20,#:lo12:.LANCHOR0] mov w0, 32768 - add x22, x19, :lo12:.LANCHOR0 + add x22, x20, :lo12:.LANCHOR0 adrp x24, .LC13 bl ftl_malloc - str x0, [x21,696] + str x0, [x21,2232] mov w0, 4096 add x22, x22, 24 mov w27, 1 mov w28, 4 bl ftl_malloc - str x0, [x21,704] + str x0, [x21,2240] mov w0, 32768 bl ftl_malloc - str x0, [x21,712] + str x0, [x21,2248] mov w0, 4096 bl ftl_malloc - str x0, [x21,720] + str x0, [x21,2256] mov w0, 128 str w0, [x22,68] mov w0, 60 mov w1, 50 - strb w0, [x21,693] + strb w0, [x21,2229] mov x0, x23 strb w1, [x22,65] mov w23, 0 - strb w1, [x21,692] + strb w1, [x21,2228] str wzr, [x22,-16] - strb wzr, [x21,572] - str wzr, [x21,664] + strb wzr, [x21,2108] + str wzr, [x21,2200] strb wzr, [x22,64] - strb wzr, [x21,728] + strb wzr, [x21,2264] bl NandcInit adrp x21, IDByte add x0, x24, :lo12:.LC13 add x26, x21, :lo12:IDByte str x0, [x29,104] -.L830: +.L837: ldrb w2, [x22,8] uxtb w25, w23 mov w0, w25 @@ -5532,7 +5578,7 @@ FlashInit: strb w2, [x26,4] ldr w2, [x24,2048] strb w2, [x26,5] - bne .L825 + bne .L832 mov w0, 239 str w0, [x24,2056] str w27, [x24,2052] @@ -5542,14 +5588,14 @@ FlashInit: str wzr, [x24,2048] str wzr, [x24,2048] str wzr, [x24,2048] -.L825: +.L832: mov w0, w25 bl NandcFlashDeCs ldrb w2, [x26] sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L826 + bhi .L833 ldr x0, [x29,104] add w1, w23, 1 ldrb w3, [x26,1] @@ -5558,56 +5604,56 @@ FlashInit: ldrb w6, [x26,4] ldrb w7, [x26,5] bl printk -.L826: - cbnz w23, .L827 +.L833: + cbnz w23, .L834 ldrb w0, [x21,#:lo12:IDByte] add x1, x21, :lo12:IDByte sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L881 + bhi .L888 ldrb w0, [x1,1] cmp w0, 255 - beq .L881 + beq .L888 bl FlashCs123Init -.L827: +.L834: ldrb w0, [x26] cmp w0, 181 - bne .L829 + bne .L836 mov w0, 44 strb w0, [x26] -.L829: +.L836: add w23, w23, 1 add x22, x22, 16 cmp w23, 4 add x26, x26, 8 - bne .L830 + bne .L837 ldrb w0, [x21,#:lo12:IDByte] cmp w0, 173 - beq .L831 - add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,576] + beq .L838 + add x0, x19, :lo12:.LANCHOR2 + ldr w0, [x0,2112] bl NandcSetDdrMode -.L831: - add x22, x19, :lo12:.LANCHOR0 +.L838: + add x22, x19, :lo12:.LANCHOR2 mov w1, 0 mov w2, 852 - add x0, x22, 4056 + add x0, x22, 1240 bl ftl_memset - strb wzr, [x22,96] + add x0, x20, :lo12:.LANCHOR0 adrp x1, .LANCHOR1 - mov w2, 12336 - add x0, x1, :lo12:.LANCHOR1 - movk w2, 0x5638, lsl 16 - add x0, x0, 472 - str x0, [x22,1912] - add x0, x20, :lo12:.LANCHOR2 - ldr w4, [x0,584] - cmp w4, w2 - bne .L832 - mov w2, 1 - str w2, [x0,568] -.L832: + 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 + mov w0, 1 + str w0, [x22,2104] +.L839: add x3, x21, :lo12:IDByte ldrb w0, [x3,1] cmp w0, 218 @@ -5618,191 +5664,191 @@ FlashInit: cset w2, eq orr w2, w5, w2 orr w2, w6, w2 - cbnz w2, .L833 + cbnz w2, .L840 and w2, w0, -3 cmp w2, 209 - beq .L833 + beq .L840 cmp w0, 220 - bne .L834 + bne .L841 ldrb w2, [x3,3] cmp w2, 149 - bne .L834 -.L833: - add x2, x19, :lo12:.LANCHOR0 - add x3, x20, :lo12:.LANCHOR2 + bne .L841 +.L840: + add x2, x20, :lo12:.LANCHOR0 + add x3, x19, :lo12:.LANCHOR2 mov w7, 16 mov w5, 1 add x8, x21, :lo12:IDByte strb w7, [x2,89] strb w5, [x2,88] add x2, x1, :lo12:.LANCHOR1 - strb w7, [x3,693] + strb w7, [x3,2229] ldrb w7, [x21,#:lo12:IDByte] - strb w7, [x2,3257] - strb w0, [x2,3258] + strb w7, [x2,3321] + strb w0, [x2,3322] cmp w7, 152 - bne .L836 + bne .L843 ldrsb w2, [x8,4] - tbnz w2, #31, .L837 + tbnz w2, #31, .L844 mov w2, 24 - strb w2, [x3,693] -.L836: + strb w2, [x3,2229] +.L843: cmp w4, 2049 - beq .L884 + beq .L891 mov w2, 12336 movk w2, 0x5638, lsl 16 cmp w4, w2 - bne .L839 -.L884: - add x2, x20, :lo12:.LANCHOR2 + bne .L846 +.L891: + add x2, x19, :lo12:.LANCHOR2 mov w3, 16 - strb w3, [x2,693] -.L839: - cbz w6, .L841 + strb w3, [x2,2229] +.L846: + cbz w6, .L848 add x0, x1, :lo12:.LANCHOR1 mov w2, 2048 - strh w2, [x0,3270] + strh w2, [x0,3334] mov w2, -38 - b .L926 -.L841: + b .L933 +.L848: cmp w0, 220 - bne .L843 + bne .L850 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3270] + strh w2, [x0,3334] mov w2, -36 -.L926: - strb w2, [x0,3258] - b .L842 -.L843: +.L933: + strb w2, [x0,3322] + b .L849 +.L850: cmp w0, 211 - bne .L842 + bne .L849 add x0, x1, :lo12:.LANCHOR1 mov w2, 4096 - strh w2, [x0,3270] + strh w2, [x0,3334] mov w2, 2 - strb w2, [x0,3269] -.L842: + strb w2, [x0,3333] +.L849: add x22, x1, :lo12:.LANCHOR1 - add x0, x19, :lo12:.LANCHOR0 - add x1, x22, 3128 + add x0, x20, :lo12:.LANCHOR0 + add x1, x22, 3192 mov w2, 32 add x0, x0, 104 bl ftl_memcpy add x0, x22, 472 - add x1, x22, 3256 + add x1, x22, 3320 mov w2, 32 bl ftl_memcpy -.L834: - add x22, x19, :lo12:.LANCHOR0 +.L841: + add x22, x20, :lo12:.LANCHOR0 ldrb w0, [x22,88] - cbnz w0, .L844 + cbnz w0, .L851 bl FlashLoadPhyInfoInRam - cbnz w0, .L846 - ldr x0, [x22,1912] - add x22, x20, :lo12:.LANCHOR2 + cbnz w0, .L853 + ldr x0, [x22,3448] + add x22, x19, :lo12:.LANCHOR2 ldrb w1, [x0,17] and w0, w1, 7 - strb w0, [x22,564] - tbnz x1, 0, .L846 + strb w0, [x22,2100] + tbnz x1, 0, .L853 mov w1, 1 - strb w1, [x22,572] + strb w1, [x22,2108] bl FlashSetInterfaceMode - ldrb w0, [x22,564] + ldrb w0, [x22,2100] bl NandcSetMode -.L846: - add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,1912] - ldrb w1, [x1,26] - strb w1, [x0,4044] +.L853: + add x0, x20, :lo12:.LANCHOR0 + add x22, x19, :lo12:.LANCHOR2 + ldr x0, [x0,3448] + ldrb w0, [x0,26] + strb w0, [x22,1228] bl FlashLoadPhyInfo - cbz w0, .L844 - add x22, x20, :lo12:.LANCHOR2 - ldr w0, [x22,576] - cbz w0, .L849 + cbz w0, .L851 + ldr w0, [x22,2112] + cbz w0, .L856 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L922 -.L849: - ldrb w0, [x22,564] + b .L929 +.L856: + ldrb w0, [x22,2100] bl FlashSetInterfaceMode - ldrb w0, [x22,564] -.L922: + ldrb w0, [x22,2100] +.L929: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L844 + cbz w0, .L851 mov w0, 1 - add x22, x19, :lo12:.LANCHOR0 + add x22, x20, :lo12:.LANCHOR0 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - ldr x1, [x22,1912] + ldr x1, [x22,3448] adrp x0, .LC14 add x0, x0, :lo12:.LC14 ldrh w1, [x1,14] bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L898 + beq .L905 bl FlashDieInfoInit - ldr x0, [x22,1912] + ldr x0, [x22,3448] ldrb w0, [x0,19] bl FlashGetReadRetryDefault - ldr x0, [x22,1912] - ldrh w1, [x22,1920] + ldr x0, [x22,3448] + ldrh w1, [x22,3456] ldrb w2, [x0,9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L851 + blt .L858 ldrh w1, [x0,14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L852 -.L851: + bge .L859 +.L858: ldrh w1, [x0,14] and w1, w1, -256 strh w1, [x0,14] -.L852: - add x22, x20, :lo12:.LANCHOR2 - ldrb w0, [x22,564] +.L859: + add x22, x19, :lo12:.LANCHOR2 + ldrb w0, [x22,2100] tst w0, 6 - beq .L853 + beq .L860 bl FlashSavePhyInfo - ldr w1, [x22,688] + ldr w1, [x22,2224] mov w0, 0 bl FlashDdrParaScan -.L853: +.L860: bl FlashSavePhyInfo -.L844: - add x22, x19, :lo12:.LANCHOR0 - add x23, x20, :lo12:.LANCHOR2 - ldr x2, [x22,1912] - str xzr, [x23,672] +.L851: + add x23, x20, :lo12:.LANCHOR0 + add x22, x19, :lo12:.LANCHOR2 + ldr x2, [x23,3448] + str xzr, [x22,2208] ldrb w0, [x2,26] - strb w0, [x22,4044] + strb w0, [x22,1228] ldrh w0, [x2,16] ldrh w3, [x2,10] ubfx x1, x0, 7, 1 - strb w1, [x22,96] + strb w1, [x23,96] ubfx x1, x0, 3, 1 - strb w1, [x23,729] + strb w1, [x22,2265] ubfx x1, x0, 4, 1 - strb w1, [x23,656] + strb w1, [x22,2192] ldrb w1, [x2,12] ubfx x0, x0, 8, 3 - strb w0, [x23,564] + strb w0, [x22,2100] ldrb w0, [x2,18] sdiv w1, w3, w1 bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr x0, [x22,1912] + ldr x0, [x23,3448] ldrh w1, [x0,16] - tbz x1, 6, .L855 + tbz x1, 6, .L862 adrp x1, g_retryMode ldrb w0, [x0,19] - ldrb w2, [x22,4057] - ldrb w3, [x22,4058] + ldrb w2, [x22,1241] + ldrb w3, [x22,1242] strb w0, [x1,#:lo12:g_retryMode] adrp x1, g_maxRegNum strb w2, [x1,#:lo12:g_maxRegNum] @@ -5812,80 +5858,80 @@ FlashInit: uxtb w3, w3 cmp w3, 7 mov x3, x2 - bhi .L856 + bhi .L863 adrp x1, HynixReadRetrial cmp w0, 8 add x1, x1, :lo12:HynixReadRetrial - str x1, [x23,672] + str x1, [x22,2208] sub w1, w0, #5 cset w2, eq uxtb w1, w1 cmp w1, 1 - bls .L885 - cbz w2, .L857 -.L885: - add x1, x20, :lo12:.LANCHOR2 + bls .L892 + cbz w2, .L864 +.L892: + add x1, x19, :lo12:.LANCHOR2 mov w3, 1 - str w3, [x1,648] -.L857: + str w3, [x1,2184] +.L864: cmp w0, 7 - add x1, x19, :lo12:.LANCHOR0 - beq .L883 - cbnz w2, .L883 - add x1, x1, 4076 - b .L860 -.L883: - add x1, x1, 4084 -.L860: + add x1, x19, :lo12:.LANCHOR2 + beq .L890 + cbnz w2, .L890 + add x1, x1, 1260 + b .L867 +.L890: + add x1, x1, 1268 +.L867: mov x2, 0 mov w3, w2 -.L862: +.L869: ldrsb w4, [x1,x2] add x2, x2, 1 cmp w4, wzr csinc w3, w3, w3, ne cmp x2, 32 - bne .L862 + bne .L869 cmp w3, 27 - bls .L855 + bls .L862 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L855 -.L856: + b .L862 +.L863: sub w4, w0, #17 uxtb w4, w4 cmp w4, 2 - bhi .L864 + bhi .L871 adrp x1, MicronReadRetrial cmp w0, 19 add x1, x1, :lo12:MicronReadRetrial - str x1, [x23,672] - beq .L865 + str x1, [x22,2208] + beq .L872 mov w0, 7 - b .L924 -.L865: + b .L931 +.L872: mov w0, 15 -.L924: +.L931: strb w0, [x2,#:lo12:g_maxRetryCount] - b .L855 -.L864: + b .L862 +.L871: sub w2, w0, #65 uxtb w2, w2 cmp w2, 1 - bls .L886 + bls .L893 cmp w0, 33 - bne .L866 -.L886: - add x0, x20, :lo12:.LANCHOR2 + bne .L873 +.L893: + add x0, x19, :lo12:.LANCHOR2 adrp x2, ToshibaReadRetrial add x2, x2, :lo12:ToshibaReadRetrial - str x2, [x0,672] + str x2, [x0,2208] mov w0, 4 strb w0, [x1,#:lo12:g_maxRegNum] mov w0, 7 strb w0, [x3,#:lo12:g_maxRetryCount] - b .L855 -.L866: + b .L862 +.L873: sub w2, w0, #67 uxtb w2, w2 cmp w2, 1 @@ -5893,153 +5939,153 @@ FlashInit: cset w5, ls uxtb w2, w2 cmp w2, 1 - bls .L887 - cbz w5, .L868 -.L887: - add x2, x20, :lo12:.LANCHOR2 + bls .L894 + cbz w5, .L875 +.L894: + add x2, x19, :lo12:.LANCHOR2 adrp x4, ToshibaReadRetrial add x4, x4, :lo12:ToshibaReadRetrial cmp w0, 35 - str x4, [x2,672] - beq .L870 + str x4, [x2,2208] + beq .L877 cmp w0, 68 - beq .L870 + beq .L877 mov w0, 7 - b .L923 -.L870: + b .L930 +.L877: mov w0, 17 -.L923: +.L930: strb w0, [x3,#:lo12:g_maxRetryCount] mov w0, 4 - cbnz w5, .L925 + cbnz w5, .L932 mov w0, 5 -.L925: +.L932: strb w0, [x1,#:lo12:g_maxRegNum] - b .L855 -.L868: + b .L862 +.L875: cmp w0, 49 - bne .L855 + bne .L862 adrp x0, SamsungReadRetrial add x0, x0, :lo12:SamsungReadRetrial - str x0, [x23,672] -.L855: - add x0, x20, :lo12:.LANCHOR2 - ldr w1, [x0,584] - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L873 - add x0, x19, :lo12:.LANCHOR0 - ldrb w2, [x0,4044] - cbz w2, .L873 - ldr x0, [x0,1912] + str x0, [x22,2208] +.L862: + add x0, x19, :lo12:.LANCHOR2 + mov w1, 12336 + movk w1, 0x5638, lsl 16 + ldr w2, [x0,2120] + cmp w2, w1 + bne .L880 + ldrb w0, [x0,1228] + cbz w0, .L880 + add x0, x20, :lo12:.LANCHOR0 + ldr x0, [x0,3448] strb wzr, [x0,18] -.L873: +.L880: ldrb w0, [x21,#:lo12:IDByte] cmp w0, 44 - bne .L874 - add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,572] - cbz w0, .L874 - mov w0, 12336 - movk w0, 0x5638, lsl 16 - cmp w1, w0 - bne .L875 - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbnz w0, .L874 -.L875: - add x0, x20, :lo12:.LANCHOR2 - strb wzr, [x0,572] + bne .L881 + add x0, x19, :lo12:.LANCHOR2 + ldrb w1, [x0,2108] + cbz w1, .L881 + mov w1, 12336 + movk w1, 0x5638, lsl 16 + cmp w2, w1 + bne .L882 + ldrb w0, [x0,1228] + cbnz w0, .L881 +.L882: + add x0, x19, :lo12:.LANCHOR2 + strb wzr, [x0,2108] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L874: - add x1, x20, :lo12:.LANCHOR2 - ldrb w0, [x1,564] +.L881: + add x1, x19, :lo12:.LANCHOR2 + ldrb w0, [x1,2100] tst w0, 6 - beq .L876 - ldrb w1, [x1,572] - cbnz w1, .L877 - tbnz x0, 0, .L876 -.L877: + beq .L883 + ldrb w1, [x1,2108] + cbnz w1, .L884 + tbnz x0, 0, .L883 +.L884: mov w0, 0 - add x20, x20, :lo12:.LANCHOR2 bl flash_enter_slc_mode - ldr w1, [x20,688] + add x1, x19, :lo12:.LANCHOR2 mov w0, 0 + ldr w1, [x1,2224] bl FlashDdrParaScan mov w0, 0 bl flash_exit_slc_mode -.L876: - add x19, x19, :lo12:.LANCHOR0 - mov w20, 16 +.L883: + add x20, x20, :lo12:.LANCHOR0 + mov w22, 16 + add x19, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:IDByte - ldr x0, [x19,1912] + ldr x0, [x20,3448] ldrb w0, [x0,20] bl FlashBchSel - add x0, x19, 1928 + add x0, x20, 3464 bl FlashReadIdbDataRaw - strb w20, [x19,89] + strb w22, [x20,89] mov w0, 18928 movk w0, 0x2, lsl 16 bl FlashTimingCfg - ldr x1, [x19,1912] + ldr x1, [x20,3448] ldrb w2, [x1,12] - strh w2, [x19,4024] + strh w2, [x19,1208] ldrh w4, [x1,14] ldrb w2, [x1,7] - str w2, [x19,4020] + str w2, [x19,1204] ldr w2, [x21] - str w2, [x19,4016] - ldrb w2, [x19,1672] - strh w2, [x19,4026] + str w2, [x19,1200] + ldrb w2, [x20,3208] + strh w2, [x19,1210] ldrb w2, [x1,13] - strh w2, [x19,4028] - strh w4, [x19,4030] + strh w2, [x19,1212] + strh w4, [x19,1214] ldrh w2, [x1,10] - strh w2, [x19,4032] + strh w2, [x19,1216] ldrb w3, [x1,12] ldrh w2, [x1,10] sdiv w2, w2, w3 - strh w2, [x19,4034] + strh w2, [x19,1218] ldrb w3, [x1,9] - strh w3, [x19,4036] + strh w3, [x19,1220] ldrh w5, [x1,10] ldrb w2, [x1,9] mul w2, w2, w5 mov w5, 512 - strh w5, [x19,4040] - ldrb w5, [x19,89] - strh w5, [x19,4042] + strh w5, [x19,1224] + ldrb w5, [x20,89] + strh w5, [x19,1226] uxth w2, w2 - ldrb w5, [x19,88] - strh w2, [x19,4038] + ldrb w5, [x20,88] + strh w2, [x19,1222] cmp w5, 1 - bne .L879 + bne .L886 lsl w2, w2, 1 lsr w4, w4, 1 lsl w3, w3, 1 - strh w2, [x19,4038] - strb w20, [x19,89] + strh w2, [x19,1222] + strb w22, [x20,89] mov w2, 8 - strh w4, [x19,4030] - strh w3, [x19,4036] - strh w2, [x19,4042] -.L879: + strh w4, [x19,1214] + strh w3, [x19,1220] + strh w2, [x19,1226] +.L886: ldrb w0, [x1,20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 - b .L898 -.L881: + b .L905 +.L888: mov w0, -2 - b .L898 -.L837: - strb w5, [x3,728] - b .L836 -.L898: + b .L905 +.L844: + strb w5, [x3,2264] + b .L843 +.L905: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6055,65 +6101,60 @@ FlashPageProgMsbFFData: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp,16] - uxth w19, w2 - adrp x2, .LANCHOR0 + adrp x20, .LANCHOR0 + str x25, [sp,64] stp x21, x22, [sp,32] uxtb w21, w0 - add x0, x2, :lo12:.LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 stp x23, x24, [sp,48] - str x25, [sp,64] - ldr x3, [x0,1912] - ldrb w0, [x0,4044] - ldrb w20, [x3,19] - mov x3, x2 - cbz w0, .L928 - adrp x0, .LANCHOR2+568 - ldr w0, [x0,#:lo12:.LANCHOR2+568] - cbnz w0, .L927 -.L928: - sub w2, w20, #5 - uxtb w2, w2 - cmp w2, 3 - bls .L929 - cmp w20, 68 - beq .L929 - sub w2, w20, #19 - and w2, w2, -17 - uxtb w2, w2 - cbnz w2, .L927 -.L929: - mov w24, w1 - add x22, x3, :lo12:.LANCHOR0 + 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: + mov w23, w1 + add x20, x20, :lo12:.LANCHOR0 mov w25, 65535 - adrp x23, .LANCHOR2 -.L931: - ldr x0, [x22,1912] +.L938: + ldr x0, [x20,3448] ldrh w0, [x0,10] cmp w0, w19 - bls .L927 - add x0, x22, 648 + bls .L934 + add x0, x20, 1160 ldrh w0, [x0,w19,sxtw 1] cmp w0, w25 - bne .L927 - add x0, x23, :lo12:.LANCHOR2 - cmp w20, 8 - mov w1, 0 - ldr x0, [x0,696] - beq .L941 + bne .L934 + add x24, x22, :lo12:.LANCHOR2 mov w1, 255 -.L941: mov w2, 32768 + ldr x0, [x24,2232] bl ftl_memset - add x0, x23, :lo12:.LANCHOR2 - add w1, w19, w24 - add w19, w19, 1 - ldr x2, [x0,696] + ldr x2, [x24,2232] + add w1, w19, w23 mov w0, w21 - uxth w19, w19 + add w19, w19, 1 mov x3, x2 + uxth w19, w19 bl FlashProgPage - b .L931 -.L927: + b .L938 +.L934: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6136,7 +6177,7 @@ FlashReadSlc2KPages: mov x19, x0 add x0, x23, :lo12:.LANCHOR0 str x0, [x29,120] - add x0, x0, 1676 + add x0, x0, 3212 stp x25, x26, [sp,64] str x0, [x29,104] adrp x0, .LC15 @@ -6146,25 +6187,24 @@ FlashReadSlc2KPages: stp x27, x28, [sp,80] mov w22, 0 str x0, [x29,96] -.L943: +.L947: cmp w22, w24 - beq .L1007 + beq .L1011 ldr w1, [x29,116] sub w4, w24, w22 mov x0, x19 add x2, x29, 140 add x3, x29, 136 - adrp x21, .LANCHOR0 bl LogAddr2PhyAddr ldr x1, [x29,120] ldr w0, [x29,136] - ldrb w1, [x1,1672] + ldrb w1, [x1,3208] cmp w0, w1 - bcc .L944 + bcc .L948 mov w0, -1 str w0, [x19] - b .L945 -.L944: + b .L949 +.L948: ldr x1, [x29,104] mov w23, 0 adrp x27, .LANCHOR2 @@ -6174,9 +6214,10 @@ FlashReadSlc2KPages: bl NandcWaitFlashReady mov w0, w20 bl NandcFlashCs -.L946: +.L950: ldr w1, [x29,140] mov w0, w20 + adrp x21, .LANCHOR2 bl FlashReadCmd mov w0, w20 bl NandcWaitFlashReady @@ -6188,27 +6229,28 @@ FlashReadSlc2KPages: bl NandcXferData mov w26, w0 add x0, x27, :lo12:.LANCHOR2 - ldrb w0, [x0,728] - cbz w0, .L947 + ldrb w0, [x0,2264] + cbz w0, .L951 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w26, w26, w28, ls -.L947: +.L951: cmn w26, #1 - bne .L948 + bne .L952 cmp w23, 9 - bhi .L948 + bhi .L952 add w23, w23, 1 - b .L946 -.L948: + b .L950 +.L952: cmp w23, wzr mov w27, 256 csel w26, w26, w27, eq mov w23, 0 -.L950: - add x0, x21, :lo12:.LANCHOR0 +.L954: + adrp x0, .LANCHOR0 ldr w1, [x29,140] + add x0, x0, :lo12:.LANCHOR0 ldr w2, [x0,92] mov w0, w20 add w1, w2, w1 @@ -6228,88 +6270,87 @@ FlashReadSlc2KPages: mov w0, w20 bl NandcXferData mov w28, w0 - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldrb w0, [x0,728] - cbz w0, .L953 + add x0, x21, :lo12:.LANCHOR2 + ldrb w0, [x0,2264] + cbz w0, .L957 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w28, w28, w27, ls -.L953: +.L957: cmn w28, #1 - bne .L954 + bne .L958 cmp w23, 9 - bhi .L954 + bhi .L958 add w23, w23, 1 - b .L950 -.L954: + b .L954 +.L958: cmp w23, wzr mov w0, w20 mov w27, 256 csel w28, w28, w27, eq bl NandcFlashDeCs - add x0, x21, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR2 cmp w28, w26 csel w28, w28, w26, cs - ldrb w0, [x0,4045] + ldrb w0, [x0,1229] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L956 + bls .L960 cmn w28, #1 csel w28, w28, w27, eq -.L956: +.L960: cmp w28, 256 - beq .L967 + beq .L971 cmn w28, #1 - bne .L957 -.L967: + bne .L961 +.L971: str w28, [x19] - b .L959 -.L957: + b .L963 +.L961: str wzr, [x19] -.L959: +.L963: ldr x0, [x19,16] - cbz x0, .L960 + cbz x0, .L964 ldr w1, [x0,12] cmn w1, #1 - bne .L960 + bne .L964 ldr w1, [x0,8] cmn w1, #1 - bne .L960 + bne .L964 ldr w0, [x0] cmn w0, #1 - beq .L960 + beq .L964 str w1, [x19] -.L960: +.L964: ldr w3, [x19] cmn w3, #1 - bne .L945 - add x21, x21, :lo12:.LANCHOR0 + bne .L949 + add x21, x21, :lo12:.LANCHOR2 ldr w1, [x19,4] ldr x0, [x29,96] - ldrb w2, [x21,4045] + ldrb w2, [x21,1229] bl printk ldr x1, [x19,8] - cbz x1, .L962 + cbz x1, .L966 adrp x0, .LC16 mov w2, 4 add x0, x0, :lo12:.LC16 mov w3, 8 bl rknand_print_hex -.L962: +.L966: ldr x1, [x19,16] - cbz x1, .L945 + cbz x1, .L949 adrp x0, .LC17 mov w2, 4 add x0, x0, :lo12:.LC17 mov w3, w2 bl rknand_print_hex -.L945: +.L949: add w22, w22, 1 add x19, x19, 56 - b .L943 -.L1007: + b .L947 +.L1011: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6326,38 +6367,36 @@ FlashReadPages: stp x29, x30, [sp, -160]! adrp x3, .LANCHOR1+481 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - ldrb w3, [x3,#:lo12:.LANCHOR1+481] - add x19, x19, :lo12:.LANCHOR0 - str w3, [x29,136] stp x23, x24, [sp,48] + adrp x23, .LANCHOR0 + ldrb w3, [x3,#:lo12:.LANCHOR1+481] + add x23, x23, :lo12:.LANCHOR0 + str w3, [x29,136] stp x25, x26, [sp,64] - ldrb w3, [x19,96] + stp x19, x20, [sp,16] + ldrb w3, [x23,96] mov x26, x0 - ldrb w23, [x19,88] + ldrb w24, [x23,88] stp x21, x22, [sp,32] stp x27, x28, [sp,80] str w1, [x29,132] str w2, [x29,128] - str w3, [x29,124] - cbz w23, .L1048 + str w3, [x29,116] + cbz w24, .L1052 bl FlashReadSlc2KPages - b .L1097 -.L1048: - add x0, x19, 1676 - str x0, [x29,112] - adrp x0, .LC15 - mov w25, w23 - add x0, x0, :lo12:.LC15 + b .L1101 +.L1052: + add x0, x23, 3212 str x0, [x29,104] - adrp x0, .LC17 - add x0, x0, :lo12:.LC17 - str x0, [x29,96] -.L1009: + adrp x0, .LANCHOR2 + mov w25, w24 + add x21, x0, :lo12:.LANCHOR2 + add x0, x21, 1244 + str x0, [x29,120] +.L1013: ldr w0, [x29,132] cmp w25, w0 - bcs .L1099 + bcs .L1103 mov w27, 56 ldr w0, [x29,132] ldr w1, [x29,128] @@ -6369,105 +6408,104 @@ FlashReadPages: mov x0, x22 ldr w28, [x22,4] bl LogAddr2PhyAddr - ldrb w1, [x19,1672] - mov w21, w0 + ldrb w1, [x23,3208] + mov w20, w0 ldr w0, [x29,152] cmp w0, w1 - bcc .L1011 + bcc .L1015 mov w0, -1 str w0, [x26,x27] - b .L1012 -.L1011: - ldr x1, [x29,112] - adrp x24, .LANCHOR2 - ldrb w20, [x1,w0,uxtw] - add x0, x24, :lo12:.LANCHOR2 - ldrb w0, [x0,729] + b .L1016 +.L1015: + ldr x1, [x29,104] + ldrb w19, [x1,w0,uxtw] + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldrb w0, [x0,2265] cmp w0, wzr - mov w0, w20 - csel w21, w21, wzr, ne + mov w0, w19 + csel w20, w20, wzr, ne bl NandcWaitFlashReady - ldr x0, [x19,1912] + ldr x0, [x23,3448] ldrb w1, [x0,19] sub w0, w1, #1 uxtb w0, w0 cmp w0, 7 - bhi .L1014 + bhi .L1018 sub w1, w1, #7 - add x0, x19, 4056 - sxtw x2, w20 + add x0, x21, 1240 + sxtw x2, w19 add x0, x0, x2 uxtb w1, w1 cmp w1, 1 ldrb w3, [x0,12] - bhi .L1015 + bhi .L1019 ldrb w3, [x0,20] -.L1015: - add x0, x24, :lo12:.LANCHOR2 - add x2, x0, x2 - ldrb w0, [x2,560] +.L1019: + add x2, x21, x2 + ldrb w0, [x2,2096] cmp w0, w3 - beq .L1014 - ldrb w1, [x19,4057] - mov w0, w20 - add x2, x19, 4060 + beq .L1018 + ldrb w1, [x21,1241] + mov w0, w19 + ldr x2, [x29,120] bl HynixSetRRPara -.L1014: - mov w0, w20 +.L1018: + mov w0, w19 bl NandcFlashCs ldr w0, [x29,128] cmp w0, 1 cset w0, eq orr w0, w0, w28, lsr 31 str w0, [x29,140] - cbz w0, .L1016 - ldrb w0, [x19,4044] - cbz w0, .L1016 - mov w0, w20 + cbz w0, .L1020 + ldrb w0, [x21,1228] + cbz w0, .L1020 + mov w0, w19 bl flash_enter_slc_mode - b .L1017 -.L1016: - mov w0, w20 + b .L1021 +.L1020: + mov w0, w19 bl flash_exit_slc_mode -.L1017: - cmp w20, 255 +.L1021: + cmp w19, 255 ldr w1, [x29,156] - bne .L1055 + bne .L1059 cmn w1, #1 cset w0, ne - cbz w0, .L1049 -.L1055: - cbz w21, .L1021 - ldr w2, [x19,92] - mov w0, w20 + cbz w0, .L1053 +.L1059: + cbz w20, .L1025 + ldr w2, [x23,92] + mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L1022 -.L1021: - mov w0, w20 + b .L1026 +.L1025: + mov w0, w19 bl FlashReadCmd - b .L1022 -.L1049: - mov w21, w0 -.L1019: + b .L1026 +.L1053: + mov w20, w0 +.L1023: ldrb w2, [x29,136] - mov w0, w20 + mov w0, w19 ldr x3, [x22,8] mov w1, 0 ldr x4, [x22,16] bl NandcXferData cmn w0, #1 mov w28, w0 - bne .L1023 - ldrb w0, [x19,96] - cbz w0, .L1023 - strb wzr, [x19,96] - mov w21, 0 - b .L1017 -.L1023: - cbz w21, .L1024 - ldr w2, [x19,92] - mov w0, w20 + bne .L1027 + ldrb w0, [x23,96] + cbz w0, .L1027 + strb wzr, [x23,96] + mov w20, 0 + b .L1021 +.L1027: + cbz w20, .L1028 + ldr w2, [x23,92] + mov w0, w19 ldr w1, [x29,156] add w1, w2, w1 bl FlashReadDpDataOutCmd @@ -6476,199 +6514,196 @@ FlashReadPages: ldrb w2, [x29,136] mov w1, 0 umull x4, w0, w4 - mov w0, w20 + mov w0, w19 add x4, x26, x4 ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData cmn w0, #1 - mov w23, w0 - csel w21, w21, wzr, ne -.L1024: - mov w0, w20 + mov w24, w0 + csel w20, w20, wzr, ne +.L1028: + mov w0, w19 bl NandcFlashDeCs - ldrb w0, [x29,124] + ldrb w0, [x29,116] cmn w28, #1 - strb w0, [x19,96] - bne .L1031 - add x0, x24, :lo12:.LANCHOR2 - ldrb w0, [x0,572] - cbnz w0, .L1026 + strb w0, [x23,96] + bne .L1035 + ldrb w0, [x21,2108] + cbnz w0, .L1030 +.L1034: + ldr x20, [x21,2208] + cbnz x20, .L1031 + b .L1104 .L1030: - add x0, x24, :lo12:.LANCHOR2 - ldr x21, [x0,672] - cbnz x21, .L1027 - b .L1100 -.L1026: - ldr x0, [x19,3976] + ldr x0, [x21,1160] mov w4, 1 ldr w1, [x29,156] ldr x2, [x22,8] ldr x3, [x22,16] - ldr w21, [x0,304] - mov w0, w20 + ldr w20, [x0,304] + mov w0, w19 bl FlashDdrTunningRead cmn w0, #1 mov w28, w0 - beq .L1029 - ldrb w0, [x19,4045] + beq .L1033 + ldrb w0, [x21,1229] cmp w28, w0, lsr 1 - bls .L1051 -.L1029: - lsr w0, w21, 8 + bls .L1055 +.L1033: + lsr w0, w20, 8 bl NandcSetDdrPara cmn w28, #1 - beq .L1030 - b .L1051 -.L1027: + beq .L1034 + b .L1055 +.L1031: ldr w1, [x29,156] - mov w0, w20 + mov w0, w19 ldr x2, [x22,8] ldr x3, [x22,16] - blr x21 + blr x20 cmn w0, #1 mov w28, w0 - mov w21, 0 - bne .L1032 - ldr x0, [x19,1912] + mov w20, 0 + bne .L1036 + ldr x0, [x23,3448] ldrb w0, [x0,19] sub w0, w0, #1 uxtb w0, w0 cmp w0, 7 - bhi .L1033 - ldrb w1, [x19,4057] - mov w0, w20 - add x2, x19, 4060 - mov w3, w21 + bhi .L1037 + ldrb w1, [x21,1241] + mov w0, w19 + ldr x2, [x29,120] + mov w3, w20 bl HynixSetRRPara -.L1033: +.L1037: ldr w1, [x29,156] - mov w0, w20 + mov w0, w19 ldr x2, [x22,8] - mov w21, 0 + mov w20, 0 ldr x3, [x22,16] bl FlashReadRawPage mov w28, w0 ldr w1, [x22,4] adrp x0, .LC18 - ldrb w2, [x19,4045] + ldrb w2, [x21,1229] add x0, x0, :lo12:.LC18 mov w3, w28 bl printk cmn w28, #1 - bne .L1032 - ldrb w0, [x19,4044] - cbz w0, .L1032 + bne .L1036 + ldrb w0, [x21,1228] + cbz w0, .L1036 ldr w0, [x29,140] - cbz w0, .L1034 - mov w0, w20 + cbz w0, .L1038 + mov w0, w19 bl flash_enter_slc_mode - b .L1035 -.L1034: - mov w0, w20 + b .L1039 +.L1038: + mov w0, w19 bl flash_exit_slc_mode -.L1035: - add x0, x24, :lo12:.LANCHOR2 +.L1039: + ldr x4, [x21,2208] + mov w0, w19 ldr w1, [x29,156] + mov w20, 0 ldr x2, [x22,8] - mov w21, 0 ldr x3, [x22,16] - ldr x4, [x0,672] - mov w0, w20 blr x4 mov w28, w0 - b .L1032 -.L1100: + b .L1036 +.L1104: ldr w1, [x29,156] - mov w0, w20 + mov w0, w19 ldr x2, [x22,8] ldr x3, [x22,16] bl FlashReadRawPage mov w28, w0 - b .L1032 -.L1051: - mov w21, 0 -.L1031: - ldrb w0, [x19,4045] + b .L1036 +.L1055: + mov w20, 0 +.L1035: + ldrb w0, [x21,1229] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bls .L1032 - add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,672] + bls .L1036 + ldr x0, [x21,2208] cmp x0, xzr mov w0, 256 csel w28, w28, w0, ne -.L1032: - cmp w28, 256 - beq .L1056 - cmn w28, #1 - bne .L1036 -.L1056: - str w28, [x26,x27] - b .L1038 .L1036: + cmp w28, 256 + beq .L1060 + cmn w28, #1 + bne .L1040 +.L1060: + str w28, [x26,x27] + b .L1042 +.L1040: str wzr, [x26,x27] -.L1038: +.L1042: ldr w3, [x26,x27] cmn w3, #1 - bne .L1040 + bne .L1044 ldr w1, [x22,4] - ldr x0, [x29,104] - ldrb w2, [x19,4045] + adrp x0, .LC15 + ldrb w2, [x21,1229] + add x0, x0, :lo12:.LC15 bl printk ldr x1, [x22,16] - cbz x1, .L1040 + cbz x1, .L1044 + adrp x0, .LC17 mov w2, 4 - ldr x0, [x29,96] + add x0, x0, :lo12:.LC17 mov w3, w2 bl rknand_print_hex -.L1040: - cbz w21, .L1042 - ldrb w0, [x19,4045] +.L1044: + cbz w20, .L1046 + ldrb w0, [x21,1229] add w0, w0, w0, lsl 1 - cmp w23, w0, lsr 2 - bls .L1043 - add x24, x24, :lo12:.LANCHOR2 - ldr x0, [x24,672] + cmp w24, w0, lsr 2 + bls .L1047 + ldr x0, [x21,2208] cmp x0, xzr mov w0, 256 - csel w23, w23, w0, ne -.L1043: + csel w24, w24, w0, ne +.L1047: add w0, w25, 1 mov w1, 56 - cmp w23, 256 + cmp w24, 256 umull x0, w0, w1 - beq .L1057 - cmn w23, #1 - bne .L1044 -.L1057: - str w23, [x26,x0] - b .L1042 -.L1044: + beq .L1061 + cmn w24, #1 + bne .L1048 +.L1061: + str w24, [x26,x0] + b .L1046 +.L1048: str wzr, [x26,x0] -.L1042: +.L1046: ldr w0, [x29,140] - add w25, w25, w21 - cbz w0, .L1012 - ldrb w0, [x19,4044] - cbz w0, .L1012 - mov w0, w20 + add w25, w25, w20 + cbz w0, .L1016 + ldrb w0, [x21,1228] + cbz w0, .L1016 + mov w0, w19 bl flash_exit_slc_mode -.L1012: +.L1016: add w25, w25, 1 - b .L1009 -.L1099: + b .L1013 +.L1103: mov w0, 0 - b .L1097 -.L1022: - mov w0, w20 + b .L1101 +.L1026: + mov w0, w19 bl NandcWaitFlashReady - cbz w21, .L1019 + cbz w20, .L1023 ldr w1, [x29,156] - mov w0, w20 + mov w0, w19 bl FlashReadDpDataOutCmd - b .L1019 -.L1097: + b .L1023 +.L1101: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6682,89 +6717,89 @@ FlashReadPages: .type FlashLoadFactorBbt, %function FlashLoadFactorBbt: stp x29, x30, [sp, -192]! + mov w1, 0 mov w2, 16 add x29, sp, 0 stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - add x0, x22, :lo12:.LANCHOR0 + adrp x22, .LANCHOR2 + stp x19, x20, [sp,16] + add x19, x22, :lo12:.LANCHOR2 stp x25, x26, [sp,64] stp x27, x28, [sp,80] - stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x23, .LANCHOR2 mov w27, -1 - ldrh w1, [x0,4028] - add x19, x23, :lo12:.LANCHOR2 - ldrh w21, [x0,4030] - add x0, x19, 736 mov w28, 0 - adrp x26, .LC19 - add x26, x26, :lo12:.LC19 - mul w21, w1, w21 - mov w1, 0 + ldrh w0, [x19,1212] + adrp x25, .LC19 + ldrh w21, [x19,1214] + adrp x26, .LANCHOR0 + add x25, x25, :lo12:.LC19 + mul w21, w0, w21 + add x0, x19, 2272 uxth w21, w21 bl ftl_memset - add w25, w21, w27 - ldr x0, [x19,704] - str x0, [x29,152] - mov w19, w28 - sub w0, w21, #12 + add w24, w21, w27 + ldr x0, [x19,2240] str xzr, [x29,144] - uxth w25, w25 - str w0, [x29,124] -.L1102: - add x1, x22, :lo12:.LANCHOR0 - ldrb w1, [x1,1672] + mov w19, w28 + str x0, [x29,152] + uxth w24, w24 +.L1106: + add x1, x26, :lo12:.LANCHOR0 + ldrb w1, [x1,3208] cmp w1, w19 - bls .L1112 - mul w3, w19, w21 - mov w20, w25 - mov w4, 61664 -.L1103: - ldr w0, [x29,124] - cmp w20, w0 - ble .L1105 - add w1, w3, w20 + bls .L1116 + mul w4, w19, w21 + mov w20, w24 + sub w3, w21, #12 + mov w5, 61664 +.L1107: + cmp w20, w3 + ble .L1109 + add w1, w4, w20 add x0, x29, 136 lsl w1, w1, 10 str w1, [x29,140] mov w1, 1 - str x4, [x29,104] + str x5, [x29,104] mov w2, w1 str x3, [x29,112] + str x4, [x29,120] bl FlashReadPages ldr w0, [x29,136] - ldr x3, [x29,112] + ldr x4, [x29,120] cmn w0, #1 - ldr x4, [x29,104] - beq .L1104 - add x24, x23, :lo12:.LANCHOR2 - ldr x0, [x24,704] + ldr x3, [x29,112] + ldr x5, [x29,104] + beq .L1108 + add x23, x22, :lo12:.LANCHOR2 + ldr x0, [x23,2240] ldrh w0, [x0] - cmp w0, w4 - bne .L1104 - add x24, x24, 736 - mov x0, x26 + cmp w0, w5 + bne .L1108 + add x23, x23, 2272 + mov x0, x25 mov w1, w19 mov w2, w20 add w28, w28, 1 bl printk - strh w20, [x24,w19,sxtw 1] + strh w20, [x23,w19,sxtw 1] uxth w28, w28 - b .L1105 -.L1104: + b .L1109 +.L1108: sub w20, w20, #1 uxth w20, w20 - b .L1103 -.L1105: - add x1, x22, :lo12:.LANCHOR0 + b .L1107 +.L1109: + adrp x0, .LANCHOR0 add w19, w19, 1 + add x1, x0, :lo12:.LANCHOR0 uxtb w19, w19 - ldrb w1, [x1,1672] + ldrb w1, [x1,3208] cmp w1, w28 csel w27, w27, wzr, ne - b .L1102 -.L1112: + b .L1106 +.L1116: mov w0, w27 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6779,35 +6814,34 @@ FlashLoadFactorBbt: .type FlashReadFacBbtData, %function FlashReadFacBbtData: stp x29, x30, [sp, -144]! + adrp x4, .LANCHOR2 add x29, sp, 0 stp x21, x22, [sp,32] mov x22, x0 - adrp x0, .LANCHOR0 - add x4, x0, :lo12:.LANCHOR0 + add x0, x4, :lo12:.LANCHOR2 stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] mov w23, w1 - ldr x0, [x0,#:lo12:.LANCHOR0] - ldrh w3, [x4,4028] mov w25, w2 - ldrh w1, [x4,4030] - adrp x4, .LANCHOR2 - str x0, [x29,96] - add x0, x4, :lo12:.LANCHOR2 + ldrh w1, [x0,1214] mov x21, x4 + ldrh w3, [x0,1212] mov w26, 61664 - mul w3, w3, w1 - ldr x0, [x0,704] + ldr x0, [x0,2240] str x0, [x29,104] + mul w3, w3, w1 + adrp x1, .LANCHOR0 uxth w3, w3 sub w20, w3, #1 - sub w19, w3, #16 + ldr x1, [x1,#:lo12:.LANCHOR0] mul w24, w23, w3 + str x1, [x29,96] uxth w20, w20 -.L1114: + sub w19, w3, #16 +.L1118: cmp w20, w19 - ble .L1122 + ble .L1126 add w0, w20, w24 mov w1, 1 lsl w0, w0, 10 @@ -6817,26 +6851,26 @@ FlashReadFacBbtData: bl FlashReadPages ldr w0, [x29,88] cmn w0, #1 - beq .L1115 + beq .L1119 add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,704] + ldr x0, [x0,2240] ldrh w0, [x0] cmp w0, w26 - bne .L1115 + bne .L1119 mov w0, w22 - cbz x22, .L1116 + cbz x22, .L1120 mov x0, x22 mov w1, w23 mov w2, w25 bl FlashReadFacBbtData.part.6 - b .L1116 -.L1115: + b .L1120 +.L1119: sub w20, w20, #1 uxth w20, w20 - b .L1114 -.L1122: + b .L1118 +.L1126: mov w0, -1 -.L1116: +.L1120: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6852,51 +6886,51 @@ FlashGetBadBlockList: add x29, sp, 0 str x21, [sp,32] mov x21, x0 - adrp x0, .LANCHOR0+1912 + adrp x0, .LANCHOR0+3448 stp x19, x20, [sp,16] adrp x20, .LANCHOR2 - ldr x0, [x0,#:lo12:.LANCHOR0+1912] + ldr x0, [x0,#:lo12:.LANCHOR0+3448] ldrb w2, [x0,13] ldrh w19, [x0,14] add x0, x20, :lo12:.LANCHOR2 mul w19, w2, w19 - ldr x0, [x0,696] + ldr x0, [x0,2232] uxth w19, w19 add w2, w19, 7 lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L1124 -.L1128: + bne .L1128 +.L1132: mov w1, 0 - b .L1125 -.L1124: + b .L1129 +.L1128: mov w2, 0 lsr w0, w19, 4 mov w1, w2 sub w19, w19, #1 mov w5, 1 -.L1126: +.L1130: cmp w2, w19 - bge .L1125 + bge .L1129 add x3, x20, :lo12:.LANCHOR2 ubfx x4, x2, 5, 11 - ldr x6, [x3,696] + ldr x6, [x3,2232] lsl w3, w5, w2 ldr w4, [x6,x4,lsl 2] tst w3, w4 - beq .L1127 + beq .L1131 add w3, w1, 1 ubfiz x1, x1, 1, 16 strh w2, [x21,x1] uxth w1, w3 -.L1127: +.L1131: cmp w1, w0 - bcs .L1128 + bcs .L1132 add w2, w2, 1 uxth w2, w2 - b .L1126 -.L1125: + b .L1130 +.L1129: ubfiz x1, x1, 1, 16 mov w0, -1 ldp x19, x20, [sp,16] @@ -6927,10 +6961,10 @@ FlashProgSlc2KPages: mov x19, x0 mov x21, x0 mov w25, 0 - add x28, x22, 1676 -.L1134: + add x28, x22, 3212 +.L1138: cmp w25, w23 - beq .L1163 + beq .L1167 mov w1, w24 sub w4, w23, w25 mov x0, x21 @@ -6938,13 +6972,13 @@ FlashProgSlc2KPages: add x3, x29, 100 bl LogAddr2PhyAddr ldr w0, [x29,100] - ldrb w1, [x22,1672] + ldrb w1, [x22,3208] cmp w0, w1 - bcc .L1135 + bcc .L1139 mov w0, -1 str w0, [x21] - b .L1136 -.L1135: + b .L1140 +.L1139: ldrb w20, [x28,w0,uxtw] mov w0, w20 bl NandcWaitFlashReady @@ -6998,37 +7032,37 @@ FlashProgSlc2KPages: ldr w1, [x29,96] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1139 + tbz x0, 0, .L1143 mov w0, -1 str w0, [x21] -.L1139: +.L1143: mov w0, w20 bl NandcFlashDeCs -.L1136: +.L1140: add w25, w25, 1 add x21, x21, 56 - b .L1134 -.L1163: + b .L1138 +.L1167: mov w21, 0 - cbz w27, .L1161 + 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 -.L1162: +.L1166: cmp w21, w23 - beq .L1161 + beq .L1165 ldr w0, [x19] cmn w0, #1 - bne .L1142 + bne .L1146 adrp x0, .LC20 ldr w1, [x19,4] add x0, x0, :lo12:.LC20 bl printk - b .L1143 -.L1142: + b .L1147 +.L1146: adrp x20, .LANCHOR2 sub w4, w23, w21 add x22, x20, :lo12:.LANCHOR2 @@ -7037,62 +7071,62 @@ FlashProgSlc2KPages: add x2, x29, 96 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,712] + ldr x0, [x22,2248] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,720] + ldr x0, [x22,2256] str wzr, [x0] add x0, x29, 104 bl memcpy - ldr x0, [x22,712] + ldr x0, [x22,2248] mov w1, 1 str x0, [x29,112] mov w2, w24 - ldr x0, [x22,720] + ldr x0, [x22,2256] str x0, [x29,120] add x0, x29, 104 bl FlashReadPages ldr w22, [x29,104] cmn w22, #1 - bne .L1144 + bne .L1148 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1144: +.L1148: ldr x0, [x19,16] - cbz x0, .L1145 + cbz x0, .L1149 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,720] + ldr x0, [x0,2256] ldr w3, [x0] cmp w2, w3 - beq .L1145 + beq .L1149 ldr w1, [x19,4] mov x0, x26 bl printk mov w0, -1 str w0, [x19] -.L1145: +.L1149: ldr x0, [x19,8] - cbz x0, .L1143 + cbz x0, .L1147 add x20, x20, :lo12:.LANCHOR2 ldr w2, [x0] - ldr x0, [x20,712] + ldr x0, [x20,2248] ldr w3, [x0] cmp w2, w3 - beq .L1143 + beq .L1147 ldr w1, [x19,4] mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1143: +.L1147: add w21, w21, 1 add x19, x19, 56 - b .L1162 -.L1161: + b .L1166 +.L1165: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7107,108 +7141,109 @@ FlashProgSlc2KPages: .type FlashProgPages, %function FlashProgPages: stp x29, x30, [sp, -192]! - adrp x6, .LANCHOR1+481 add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 mov w22, 0 add x4, x21, :lo12:.LANCHOR0 - str w3, [x29,124] + str w3, [x29,116] stp x19, x20, [sp,16] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] mov x19, x0 - mov w25, w1 - ldr x5, [x4,1912] + mov w26, w1 + ldr x5, [x4,3448] mov w23, w2 ldrb w4, [x4,88] - ldrb w27, [x6,#:lo12:.LANCHOR1+481] ldrb w5, [x5,19] - cbz w4, .L1165 + str w5, [x29,120] + adrp x5, .LANCHOR1+481 + ldrb w5, [x5,#:lo12:.LANCHOR1+481] + str w5, [x29,124] + cbz w4, .L1169 bl FlashProgSlc2KPages - b .L1166 -.L1165: - sub w0, w5, #1 + b .L1170 +.L1169: adrp x28, .LANCHOR2 - str w0, [x29,120] - add x0, x28, :lo12:.LANCHOR2 - str x0, [x29,112] -.L1217: - cmp w22, w25 - bcs .L1218 + add x24, x28, :lo12:.LANCHOR2 + add x0, x24, 1244 + str x0, [x29,104] +.L1221: + cmp w22, w26 + bcs .L1222 mov w20, 56 - sub w4, w25, w22 - add x2, x29, 128 mov w1, w23 - umull x20, w22, w20 add x3, x29, 132 - add x26, x19, x20 - mov x0, x26 + sub w4, w26, w22 + umull x20, w22, w20 + add x2, x29, 128 + add x27, x19, x20 + mov x0, x27 bl LogAddr2PhyAddr - mov w24, w0 - add x2, x21, :lo12:.LANCHOR0 + mov w25, w0 + add x1, x21, :lo12:.LANCHOR0 ldr w0, [x29,132] - ldrb w4, [x2,1672] - cmp w0, w4 - bcc .L1167 + ldrb w3, [x1,3208] + cmp w0, w3 + bcc .L1171 mov w0, -1 str w0, [x19,x20] - b .L1168 -.L1167: - add x1, x28, :lo12:.LANCHOR2 - add x3, x2, 1716 - mov x5, 24 - ldrb w1, [x1,656] - cmp w1, wzr - uxtw x1, w0 - csel w24, w24, wzr, ne - madd x0, x1, x5, x3 - ldr x0, [x0,8] - cbz x0, .L1170 - cmp w4, 1 - bne .L1171 - ldr x0, [x2,3976] - bl NandcIqrWaitFlashReady + b .L1172 .L1171: + add x2, x28, :lo12:.LANCHOR2 + ldrb w2, [x2,2192] + 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] bl FlashWaitCmdDone -.L1170: +.L1174: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x29,132] mov x1, 24 - add x0, x0, 1716 + add x0, x0, 3252 madd x0, x2, x1, x0 ldr w1, [x29,128] - str x26, [x0,8] + str x27, [x0,8] str xzr, [x0,16] str w1, [x0,4] - cbz w24, .L1172 + cbz w25, .L1176 add w1, w22, 1 mov w3, 56 umull x1, w1, w3 add x1, x19, x1 str x1, [x0,16] -.L1172: +.L1176: add x1, x21, :lo12:.LANCHOR0 - add x0, x1, 1676 + add x0, x1, 3212 ldrb w20, [x0,x2] mov x0, 24 madd x2, x2, x0, x1 - ldrb w0, [x1,1672] - strb w20, [x2,1716] + ldrb w0, [x1,3208] + strb w20, [x2,3252] cmp w0, 1 - bne .L1173 + bne .L1177 mov w0, w20 bl NandcWaitFlashReady - b .L1174 -.L1173: + b .L1178 +.L1177: mov w0, w20 - str x1, [x29,104] + str x1, [x29,96] bl NandcFlashCs - ldr x1, [x29,104] + ldr x1, [x29,96] ldr w0, [x29,132] - add x1, x1, 1684 + add x1, x1, 3220 ldr w0, [x1,x0,lsl 2] ldr w1, [x29,128] cmp w0, wzr @@ -7217,195 +7252,195 @@ FlashProgPages: bl FlashWaitReadyEN mov w0, w20 bl NandcFlashDeCs -.L1174: +.L1178: ldr w0, [x29,120] + sub w0, w0, #1 cmp w0, 7 - bhi .L1175 - ldr x0, [x29,112] - add x0, x0, x20, sxtw - ldrb w0, [x0,560] - cbz w0, .L1175 - add x2, x21, :lo12:.LANCHOR0 + bhi .L1179 + add x0, x24, x20, sxtw + ldrb w0, [x0,2096] + cbz w0, .L1179 + ldrb w1, [x24,1241] mov w0, w20 - add x2, x2, 4060 + ldr x2, [x29,104] mov w3, 0 - ldrb w1, [x2,-3] bl HynixSetRRPara -.L1175: +.L1179: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1176 - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbz w0, .L1176 + bne .L1180 + ldrb w0, [x24,1228] + cbz w0, .L1180 mov w0, w20 bl flash_enter_slc_mode - b .L1177 -.L1176: + b .L1181 +.L1180: mov w0, w20 bl flash_exit_slc_mode -.L1177: +.L1181: ldr w1, [x29,128] mov w0, w20 bl FlashProgFirstCmd - ldr x3, [x26,8] + ldrb w2, [x29,124] mov w0, w20 - ldr x4, [x26,16] + ldr x3, [x27,8] mov w1, 1 - mov w2, w27 + ldr x4, [x27,16] bl NandcXferData - cbz w24, .L1178 + cbz w25, .L1182 ldr w1, [x29,128] mov w0, w20 - add x26, x21, :lo12:.LANCHOR0 + add x27, x21, :lo12:.LANCHOR0 bl FlashProgDpFirstCmd ldr w1, [x29,132] - add x0, x26, 1684 + add x0, x27, 3220 ldr w0, [x0,x1,lsl 2] ldr w1, [x29,128] cmp w0, wzr mov w0, w20 cset w2, ne bl FlashWaitReadyEN - ldr w2, [x26,92] + ldr w2, [x27,92] mov w0, w20 ldr w1, [x29,128] add w1, w2, w1 bl FlashProgDpSecondCmd add w0, w22, 1 mov w4, 56 + ldrb w2, [x29,124] mov w1, 1 - mov w2, w27 umull x4, w0, w4 mov w0, w20 add x4, x19, x4 ldr x3, [x4,8] ldr x4, [x4,16] bl NandcXferData -.L1178: +.L1182: ldr w1, [x29,128] mov w0, w20 - add w22, w22, w24 + add w22, w22, w25 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1168: +.L1172: add w22, w22, 1 - b .L1217 -.L1218: + b .L1221 +.L1222: + adrp x20, .LANCHOR2 add x21, x21, :lo12:.LANCHOR0 - mov x20, 0 - add x22, x21, 1716 - mov x24, 24 - ldr x0, [x21,3976] + add x0, x20, :lo12:.LANCHOR2 + mov x22, 0 + add x24, x21, 3252 + mov x25, 24 + ldr x0, [x0,1160] bl NandcIqrWaitFlashReady -.L1180: - ldrb w0, [x21,1672] - cmp w0, w20 - bls .L1219 - mov w0, w20 +.L1184: + ldrb w0, [x21,3208] + cmp w0, w22 + bls .L1223 + mov w0, w22 bl FlashWaitCmdDone cmp w23, 1 - bne .L1181 - ldrb w0, [x21,4044] - cbz w0, .L1181 - mul x0, x20, x24 - ldrb w0, [x0,x22] + bne .L1185 + add x0, x20, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] + cbz w0, .L1185 + mul x0, x22, x25 + ldrb w0, [x0,x24] bl flash_exit_slc_mode -.L1181: - add x20, x20, 1 - b .L1180 -.L1219: - ldr w0, [x29,124] - cbnz w0, .L1183 -.L1191: +.L1185: + add x22, x22, 1 + b .L1184 +.L1223: + ldr w0, [x29,116] + cbnz w0, .L1187 +.L1195: mov w0, 0 - b .L1166 -.L1183: + b .L1170 +.L1187: adrp x24, .LC23 - adrp x26, .LC22 + adrp x25, .LC22 adrp x27, .LC21 mov w21, 0 add x24, x24, :lo12:.LC23 - add x26, x26, :lo12:.LC22 + add x25, x25, :lo12:.LC22 add x27, x27, :lo12:.LC21 -.L1184: - cmp w21, w25 - beq .L1191 +.L1188: + cmp w21, w26 + beq .L1195 ldr w0, [x19] cmn w0, #1 - bne .L1185 + bne .L1189 adrp x0, .LC20 ldr w1, [x19,4] add x0, x0, :lo12:.LC20 bl printk - b .L1186 -.L1185: - adrp x20, .LANCHOR2 - sub w4, w25, w21 + b .L1190 +.L1189: 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,712] + ldr x0, [x22,2248] mov x1, x19 mov x2, 56 str wzr, [x0] - ldr x0, [x22,720] + ldr x0, [x22,2256] str wzr, [x0] add x0, x29, 136 bl memcpy - ldr x0, [x22,712] + ldr x0, [x22,2248] mov w1, 1 str x0, [x29,144] mov w2, w23 - ldr x0, [x22,720] + ldr x0, [x22,2256] str x0, [x29,152] add x0, x29, 136 bl FlashReadPages ldr w22, [x29,136] cmn w22, #1 - bne .L1187 + bne .L1191 ldr w1, [x19,4] mov x0, x27 bl printk str w22, [x19] -.L1187: +.L1191: ldr x0, [x19,16] - cbz x0, .L1188 + cbz x0, .L1192 ldr w2, [x0] add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,720] + ldr x0, [x0,2256] ldr w3, [x0] cmp w2, w3 - beq .L1188 + beq .L1192 ldr w1, [x19,4] - mov x0, x26 + mov x0, x25 bl printk mov w0, -1 str w0, [x19] -.L1188: +.L1192: ldr x0, [x19,8] - cbz x0, .L1186 - add x20, x20, :lo12:.LANCHOR2 + cbz x0, .L1190 ldr w2, [x0] - ldr x0, [x20,712] + add x0, x20, :lo12:.LANCHOR2 + ldr x0, [x0,2248] ldr w3, [x0] cmp w2, w3 - beq .L1186 + beq .L1190 ldr w1, [x19,4] mov x0, x24 bl printk mov w0, -1 str w0, [x19] -.L1186: +.L1190: add w21, w21, 1 add x19, x19, 56 - b .L1184 -.L1166: + b .L1188 +.L1170: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7426,12 +7461,12 @@ FlashTestBlk.part.7: uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 lsl w20, w20, 10 - ldr x0, [x19,696] + ldr x0, [x19,2232] str x0, [x29,48] add x0, x29, 96 str x0, [x29,56] bl ftl_memset - ldr x0, [x19,696] + ldr x0, [x19,2232] mov w1, 90 mov w2, 8 bl ftl_memset @@ -7468,10 +7503,10 @@ FlashTestBlk: ldr w2, [x0,#:lo12:.LANCHOR0+8] mov w0, 0 cmp w1, w2 - bcc .L1222 + bcc .L1226 mov w0, w1 bl FlashTestBlk.part.7 -.L1222: +.L1226: ldp x29, x30, [sp], 16 ret .size FlashTestBlk, .-FlashTestBlk @@ -7480,29 +7515,28 @@ FlashTestBlk: .type FlashMakeFactorBbt, %function FlashMakeFactorBbt: stp x29, x30, [sp, -240]! - adrp x2, .LANCHOR2 adrp x4, .LANCHOR0 add x29, sp, 0 - add x0, x2, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] 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] stp x27, x28, [sp,80] mov x20, x4 - str x2, [x29,136] - ldr x0, [x0,704] - add x24, x20, :lo12:.LANCHOR0 - str x0, [x29,160] - add x0, x4, :lo12:.LANCHOR0 mov w19, 0 - ldrh w1, [x0,4028] - ldrh w21, [x0,4030] + ldr x1, [x0,2240] + add x25, x20, :lo12:.LANCHOR0 + ldrh w21, [x0,1214] + str x1, [x29,160] + ldrh w1, [x0,1212] + add x0, x4, :lo12:.LANCHOR0 mul w21, w1, w21 - ldr x1, [x0,1912] + ldr x1, [x0,3448] uxth w21, w21 ldrb w1, [x1,24] - str w1, [x29,144] + str w1, [x29,128] ldrh w1, [x0,92] str w1, [x29,172] ldrb w0, [x0,88] @@ -7515,68 +7549,67 @@ FlashMakeFactorBbt: mov w1, 1 add x0, x0, :lo12:.LC24 bl printk - ldr x0, [x29,136] + add x0, x22, :lo12:.LANCHOR2 mov w1, 0 mov w2, 4096 - add x0, x0, :lo12:.LANCHOR2 - ldr x0, [x0,704] + ldr x0, [x0,2240] bl ftl_memset lsr w0, w21, 4 str w0, [x29,168] - add x0, x24, 1676 - str x0, [x29,120] - ldr w0, [x29,144] + add x0, x25, 3212 + str x0, [x29,112] + ldr w0, [x29,128] and w0, w0, 1 - str w0, [x29,116] + str w0, [x29,108] sub w0, w21, #1 uxth w0, w0 - str w0, [x29,132] -.L1226: - ldrb w0, [x24,1672] + str w0, [x29,124] +.L1230: + ldrb w0, [x25,3208] cmp w0, w19 - bls .L1277 - ldr x0, [x29,136] - sxtw x23, w19 - add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 736 - ldrh w20, [x0,w19,sxtw 1] - cbnz w20, .L1256 - ldrh w2, [x24,4036] + 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, [x24] - mov w25, w20 + ldr x0, [x25] + mov w26, w20 lsl w2, w2, 9 - mov w22, w20 - add x28, x24, 1684 + mov w23, w20 + add x28, x25, 3220 bl ftl_memset - ldr x0, [x29,120] - ldrb w26, [x0,x23] - ldr w0, [x29,144] + ldr x0, [x29,112] + ldrb w27, [x0,x24] + ldr w0, [x29,128] and w0, w0, 2 uxtb w0, w0 - str w0, [x29,128] -.L1228: - uxth w27, w25 - cmp w27, w21 - bcs .L1238 + str w0, [x29,120] +.L1232: + uxth w0, w26 + str w0, [x29,144] + cmp w0, w21 + bcs .L1242 mov w0, -1 strb w0, [x29,182] strb w0, [x29,183] - ldr w0, [x29,116] - cbz w0, .L1230 - ldr w3, [x28,x23,lsl 2] - mov w0, w26 + ldr w0, [x29,108] + cbz w0, .L1234 + ldr w3, [x28,x24,lsl 2] + mov w0, w27 add x2, x29, 182 add w3, w20, w3 - str x3, [x29,104] + str x3, [x29,96] mov w1, w3 bl FlashReadSpare - ldrb w0, [x24,88] - ldr x3, [x29,104] + ldrb w0, [x25,88] + ldr x3, [x29,96] cmp w0, 1 - bne .L1230 - ldr w1, [x24,92] - mov w0, w26 + bne .L1234 + ldr w1, [x25,92] + mov w0, w27 add x2, x29, 183 add w1, w3, w1 bl FlashReadSpare @@ -7584,194 +7617,197 @@ FlashMakeFactorBbt: ldrb w1, [x29,183] and w0, w1, w0 strb w0, [x29,182] -.L1230: - ldr w0, [x29,128] - cbz w0, .L1232 - ldr x0, [x24,1912] +.L1234: + ldr w0, [x29,120] + cbz w0, .L1236 + ldr x0, [x25,3448] add x2, x29, 183 ldrh w1, [x0,10] - ldr w0, [x28,x23,lsl 2] + ldr w0, [x28,x24,lsl 2] sub w1, w1, #1 add w1, w1, w0 - mov w0, w26 + mov w0, w27 add w1, w1, w20 bl FlashReadSpare -.L1232: - ldr x0, [x24,1912] +.L1236: + ldr x0, [x25,3448] ldrb w1, [x29,182] ldrb w0, [x0,7] cmp w0, 8 - beq .L1257 + beq .L1261 cmp w0, 1 - bne .L1233 -.L1257: + bne .L1237 +.L1261: mov w0, 1 - cbz w1, .L1235 + cbz w1, .L1239 ldrb w0, [x29,183] cmp w0, wzr cset w0, eq - b .L1235 -.L1233: + b .L1239 +.L1237: cmp w1, 255 mov w0, 1 - bne .L1235 + bne .L1239 ldrb w0, [x29,183] cmp w0, 255 cset w0, ne -.L1235: - ldr x1, [x29,144] - tbz x1, 2, .L1236 - ldr w1, [x28,x23,lsl 2] - mov w0, w26 +.L1239: + ldr x1, [x29,128] + tbz x1, 2, .L1240 + ldr w1, [x28,x24,lsl 2] + mov w0, w27 add w1, w20, w1 bl SandiskProgTestBadBlock -.L1236: - cbz w0, .L1237 +.L1240: + cbz w0, .L1241 adrp x0, .LC25 mov w1, w19 - mov w2, w25 + mov w2, w26 add x0, x0, :lo12:.LC25 - add w22, w22, 1 + add w23, w23, 1 bl printk - ubfx x1, x27, 5, 11 - ldr x2, [x24] + ldr x0, [x29,144] + uxth w23, w23 + ldr x2, [x25] + ubfx x1, x0, 5, 11 + ldrb w3, [x29,144] lsl x1, x1, 2 mov w0, 1 - lsl w27, w0, w27 - uxth w22, w22 - ldr w0, [x2,x1] - orr w27, w0, w27 - str w27, [x2,x1] + lsl w0, w0, w3 + ldr w3, [x2,x1] + orr w0, w3, w0 + str w0, [x2,x1] ldr w1, [x29,168] - ldrb w0, [x24,1672] + ldrb w0, [x25,3208] mul w0, w1, w0 - cmp w22, w0 - bgt .L1238 -.L1237: + cmp w23, w0 + bgt .L1242 +.L1241: ldr w0, [x29,172] - add w25, w25, 1 + add w26, w26, 1 add w20, w20, w0 - b .L1228 -.L1238: + b .L1232 +.L1242: adrp x0, .LC26 mov w1, w19 add x0, x0, :lo12:.LC26 - mov w2, w22 + mov w2, w23 bl printk - ldrb w0, [x24,1672] + ldrb w0, [x25,3208] ldr w1, [x29,168] mul w0, w1, w0 - cmp w22, w0 - blt .L1240 - ldrh w2, [x24,4036] + cmp w23, w0 + blt .L1244 + add x0, x22, :lo12:.LANCHOR2 mov w1, 0 - ldr x0, [x24] + ldrh w2, [x0,1220] + ldr x0, [x25] lsl w2, w2, 9 bl ftl_memset -.L1240: - cbnz w19, .L1242 - adrp x25, .LC27 - ldrh w26, [x24,8] +.L1244: + cbnz w19, .L1246 + adrp x26, .LC27 + ldrh w27, [x25,8] mov w20, w19 - add x25, x25, :lo12:.LC27 - mov w22, 1 -.L1243: - ldrb w0, [x24,89] - cmp w0, w26 - bls .L1278 - mov w0, w26 + add x26, x26, :lo12:.LC27 + mov w23, 1 +.L1247: + ldrb w0, [x25,89] + cmp w0, w27 + bls .L1282 + mov w0, w27 bl FlashTestBlk - cbz w0, .L1244 - mov w1, w26 - mov x0, x25 + cbz w0, .L1248 + mov w1, w27 + mov x0, x26 add w20, w20, 1 bl printk - ubfx x1, x26, 5, 11 - ldr x2, [x24] + ubfx x1, x27, 5, 11 + ldr x2, [x25] lsl x1, x1, 2 - lsl w0, w22, w26 + lsl w0, w23, w27 uxth w20, w20 ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1244: - add w26, w26, 1 - uxth w26, w26 - b .L1243 -.L1278: - adrp x25, .LC27 - ldr w27, [x29,132] - sub w26, w21, #50 - add x25, x25, :lo12:.LC27 - mov w22, 1 -.L1246: - cmp w27, w26 - ble .L1279 - mov w0, w27 +.L1248: + add w27, w27, 1 + uxth w27, w27 + b .L1247 +.L1282: + adrp x26, .LC27 + ldr w28, [x29,124] + sub w27, w21, #50 + add x26, x26, :lo12:.LC27 + mov w23, 1 +.L1250: + cmp w28, w27 + ble .L1283 + mov w0, w28 bl FlashTestBlk - cbz w0, .L1247 - mov w1, w27 - mov x0, x25 + cbz w0, .L1251 + mov w1, w28 + mov x0, x26 bl printk - ubfx x1, x27, 5, 11 - ldr x2, [x24] + ubfx x1, x28, 5, 11 + ldr x2, [x25] lsl x1, x1, 2 - lsl w0, w22, w27 + lsl w0, w23, w28 ldr w3, [x2,x1] orr w0, w3, w0 str w0, [x2,x1] -.L1247: - sub w27, w27, #1 - uxth w27, w27 - b .L1246 -.L1279: - ldrb w0, [x24,89] - ldr w1, [x24,8] +.L1251: + sub w28, w28, #1 + uxth w28, w28 + b .L1250 +.L1283: + ldrb w0, [x25,89] + ldr w1, [x25,8] sub w0, w0, w1 cmp w20, w0 - bcc .L1242 - ldrh w2, [x24,4036] + bcc .L1246 + add x0, x22, :lo12:.LANCHOR2 mov w1, 0 - ldr x0, [x24] + ldrh w2, [x0,1220] + ldr x0, [x25] lsl w2, w2, 9 bl ftl_memset -.L1242: - ldr x0, [x29,136] - adrp x22, .LC28 - ldr w26, [x29,132] - add x22, x22, :lo12:.LC28 - mul w25, w19, w21 - add x27, x0, :lo12:.LANCHOR2 +.L1246: + adrp x23, .LC28 + ldr w27, [x29,124] + mul w26, w19, w21 + add x23, x23, :lo12:.LC28 + add x28, x22, :lo12:.LANCHOR2 mov w20, -3872 -.L1250: - mov w2, w26 - mov x0, x22 +.L1254: + mov w2, w27 + mov x0, x23 mov w1, w19 bl printk - ldr x2, [x24] -.L1251: - ubfx x0, x26, 5, 11 + ldr x2, [x25] +.L1255: + ubfx x0, x27, 5, 11 ldr w0, [x2,x0,lsl 2] - lsr w0, w0, w26 + lsr w0, w0, w27 and w1, w0, 1 - tbz x0, 0, .L1280 - sub w26, w26, #1 - uxth w26, w26 - b .L1251 -.L1280: - add x0, x27, 736 - strh w26, [x0,x23,lsl 1] + tbz x0, 0, .L1284 + sub w27, w27, #1 + uxth w27, w27 + b .L1255 +.L1284: + add x0, x28, 2272 + strh w27, [x0,x24,lsl 1] ldr x0, [x29,160] strh w20, [x0] - strh w26, [x0,2] + strh w27, [x0,2] strh w1, [x0,8] mov w1, 1 - ldr x0, [x24] + ldr x0, [x25] mov w2, w1 str x0, [x29,192] - ldr x0, [x27,704] + ldr x0, [x28,2240] str x0, [x29,200] - add w0, w26, w25 + add w0, w27, w26 lsl w0, w0, 10 str w0, [x29,188] add x0, x29, 184 @@ -7782,15 +7818,15 @@ FlashMakeFactorBbt: mov w3, w1 bl FlashProgPages ldr w0, [x29,184] - cbz w0, .L1256 - sub w26, w26, #1 - uxth w26, w26 - b .L1250 -.L1256: + cbz w0, .L1260 + sub w27, w27, #1 + uxth w27, w27 + b .L1254 +.L1260: add w19, w19, 1 uxtb w19, w19 - b .L1226 -.L1277: + b .L1230 +.L1281: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7805,14 +7841,14 @@ FlashMakeFactorBbt: Ftl_log2: mov w2, 1 mov w1, 0 -.L1282: +.L1286: cmp w2, w0 - bhi .L1284 + bhi .L1288 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L1282 -.L1284: + b .L1286 +.L1288: sub w0, w1, #1 ret .size Ftl_log2, .-Ftl_log2 @@ -7832,17 +7868,17 @@ FtlSysBlkNumInit: csel w0, w0, w1, hi adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - ldrh w2, [x1,756] - ldrh w3, [x1,766] - str w0, [x1,752] + ldrh w2, [x1,2292] + ldrh w3, [x1,2302] + str w0, [x1,2288] mul w2, w0, w2 sub w0, w3, w0 - strh w0, [x1,764] - ldr w0, [x1,772] - str w2, [x1,760] + strh w0, [x1,2300] + ldr w0, [x1,2308] + str w2, [x1,2296] sub w2, w0, w2 mov w0, 0 - str w2, [x1,768] + str w2, [x1,2304] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 @@ -7854,45 +7890,45 @@ FtlConstantsInit: add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x19, .LANCHOR2 - mov x24, x0 + adrp x20, .LANCHOR2 + mov x23, x0 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - add x1, x19, :lo12:.LANCHOR2 - ldrh w4, [x24,14] + str x27, [sp,80] + add x1, x20, :lo12:.LANCHOR2 + ldrh w4, [x23,14] ldrh w6, [x0,8] ldrh w2, [x0,10] ldrh w0, [x0,12] - strh w6, [x1,776] - strh w2, [x1,778] - strh w0, [x1,780] - strh w4, [x1,766] -.L1289: - add x5, x1, 784 + strh w6, [x1,2312] + strh w2, [x1,2314] + strh w0, [x1,2316] + strh w4, [x1,2302] +.L1293: + add x5, x1, 2320 strb w3, [x3,x5] add x3, x3, 1 cmp x3, 32 - bne .L1289 - ldrh w3, [x24,20] - ldrb w1, [x24,15] + bne .L1293 + ldrh w3, [x23,20] + ldrb w1, [x23,15] cmp w3, w1 - bcs .L1290 + bcs .L1294 uxtb w8, w0 mov w3, 0 mul w11, w0, w2 ubfiz w10, w8, 1, 7 - add x12, x19, :lo12:.LANCHOR2 -.L1291: + add x12, x20, :lo12:.LANCHOR2 +.L1295: cmp w3, w0 - bcs .L1293 + bcs .L1297 uxtb w1, w3 mov w5, w3 mov w7, 0 -.L1294: +.L1298: cmp w7, w2 - bcs .L1316 - add x9, x12, 784 + bcs .L1320 + add x9, x12, 2320 add w13, w5, w11 add w14, w1, w8 add w7, w7, 1 @@ -7901,171 +7937,169 @@ FtlConstantsInit: strb w14, [x9,x13] add w5, w5, w0 uxtb w1, w1 - b .L1294 -.L1316: + b .L1298 +.L1320: add w3, w3, 1 - b .L1291 -.L1293: - add x1, x19, :lo12:.LANCHOR2 + b .L1295 +.L1297: + add x1, x20, :lo12:.LANCHOR2 lsl w2, w2, 1 lsr w4, w4, 1 - strh w2, [x1,778] - strh w4, [x1,766] -.L1290: - add x1, x19, :lo12:.LANCHOR2 + strh w2, [x1,2314] + strh w4, [x1,2302] +.L1294: + add x1, x20, :lo12:.LANCHOR2 mov w2, 5 cmp w6, 1 - strh w2, [x1,816] - strh wzr, [x1,818] - bne .L1295 - strh w6, [x1,816] -.L1295: - add x1, x19, :lo12:.LANCHOR2 + strh w2, [x1,2352] + strh wzr, [x1,2354] + bne .L1299 + strh w6, [x1,2352] +.L1299: + add x1, x20, :lo12:.LANCHOR2 mov w2, 4352 - adrp x21, .LANCHOR0 - strh w2, [x1,820] - add x2, x21, :lo12:.LANCHOR0 - ldrb w27, [x2,88] - cbz w27, .L1296 + strh w2, [x1,2356] + adrp x2, .LANCHOR0+88 + ldrb w26, [x2,#:lo12:.LANCHOR0+88] + cbz w26, .L1300 mov w2, 384 - strh w2, [x1,820] -.L1296: - add x22, x19, :lo12:.LANCHOR2 - ldrh w26, [x24,16] - ldrh w25, [x24,20] - ldrh w28, [x24,18] - ldrh w23, [x22,778] - ldrh w20, [x22,766] - strh w26, [x22,824] - mul w23, w0, w23 - mul w0, w20, w0 - strh w0, [x22,822] - uxth w23, w23 - strh w28, [x22,826] - strh w23, [x22,756] - mul w0, w23, w26 - strh w0, [x22,828] - mov w0, w25 - strh w25, [x22,830] + strh w2, [x1,2356] +.L1300: + 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] + mul w22, w0, w22 + mul w0, w19, w0 + strh w0, [x21,2358] + uxth w22, w22 + strh w27, [x21,2362] + strh w22, [x21,2292] + mul w0, w22, w25 + strh w0, [x21,2364] + mov w0, w24 + strh w24, [x21,2366] bl Ftl_log2 uxth w3, w0 - lsl w2, w25, 9 - strh w0, [x22,832] - ldrh w0, [x24,26] - cmp w20, 1024 - strh w2, [x22,834] + lsl w2, w24, 9 + strh w0, [x21,2368] + ldrh w0, [x23,26] + cmp w19, 1024 + strh w2, [x21,2370] ubfx x2, x2, 9, 7 - strh w0, [x22,838] + strh w0, [x21,2374] lsl w2, w2, 1 - mul w0, w23, w20 - strh w2, [x22,836] - str w0, [x22,772] - bls .L1297 - and w0, w20, 255 - strh w0, [x22,818] -.L1297: - add x2, x19, :lo12:.LANCHOR2 - mul w0, w25, w28 - ldrh w1, [x2,818] - sub w1, w20, w1 - mul w1, w23, w1 + mul w0, w22, w19 + strh w2, [x21,2372] + str w0, [x21,2308] + bls .L1301 + and w0, w19, 255 + strh w0, [x21,2354] +.L1301: + add x2, x20, :lo12:.LANCHOR2 + mul w0, w24, w27 + ldrh w1, [x2,2354] + sub w1, w19, w1 + mul w1, w22, w1 + mul w1, w1, w24 mul w1, w1, w25 - mul w1, w1, w26 asr w1, w1, 11 - str w1, [x2,840] - ldrh w1, [x2,820] + str w1, [x2,2376] + ldrh w1, [x2,2356] lsl w1, w1, 3 sdiv w0, w1, w0 uxth w0, w0 cmp w0, 4 - bhi .L1313 + bhi .L1317 mov w0, 4 -.L1313: - strh w0, [x2,844] - cbz w27, .L1300 - add x0, x19, :lo12:.LANCHOR2 +.L1317: + strh w0, [x2,2380] + cbz w26, .L1304 + add x0, x20, :lo12:.LANCHOR2 mov w1, 640 - strh w1, [x0,820] -.L1300: - add x1, x19, :lo12:.LANCHOR2 - lsl w20, w20, 6 - cmp w23, 1 - ldrh w0, [x1,820] + strh w1, [x0,2356] +.L1304: + add x1, x20, :lo12:.LANCHOR2 + lsl w19, w19, 6 + cmp w22, 1 + ldrh w0, [x1,2356] asr w0, w0, w3 add w3, w3, 9 - asr w20, w20, w3 - strh w20, [x1,848] - and w20, w20, 65535 + asr w19, w19, w3 + strh w19, [x1,2384] + and w19, w19, 65535 add w0, w0, 2 - strh w0, [x1,846] - mul w0, w20, w23 - str w0, [x1,852] - add w20, w20, 8 - ldrh w0, [x1,844] - udiv w0, w0, w23 - add w20, w20, w0 - bne .L1314 - add w20, w20, 4 -.L1314: - str w20, [x1,752] - add x20, x19, :lo12:.LANCHOR2 - add x21, x21, :lo12:.LANCHOR0 - ldrh w0, [x20,752] + strh w0, [x1,2382] + mul w0, w19, w22 + str w0, [x1,2388] + add w19, w19, 8 + ldrh w0, [x1,2380] + udiv w0, w0, w22 + add w19, w19, w0 + bne .L1318 + add w19, w19, 4 +.L1318: + str w19, [x1,2288] + add x19, x20, :lo12:.LANCHOR2 + ldrh w0, [x19,2288] bl FtlSysBlkNumInit - str wzr, [x21,4048] - ldr w0, [x20,752] - str w0, [x20,856] - ldr w0, [x20,768] - ldrh w1, [x20,824] + str wzr, [x19,1232] + ldr w0, [x19,2288] + str w0, [x19,2392] + ldr w0, [x19,2304] + ldrh w1, [x19,2360] lsl w0, w0, 2 - ldrh w3, [x20,830] - ldrh w2, [x20,844] + ldrh w3, [x19,2366] + ldrh w2, [x19,2380] mul w1, w0, w1 - ldrh w0, [x20,832] - ldrb w5, [x21,4044] + ldrh w0, [x19,2368] + ldrb w5, [x19,1228] add w0, w0, 9 lsr w0, w1, w0 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x20,862] + strh w1, [x19,2398] uxth w0, w0 - strh w0, [x20,860] + strh w0, [x19,2396] add w1, w2, 3 - strh w1, [x20,844] - ldr w1, [x20,852] + strh w1, [x19,2380] + ldr w1, [x19,2388] add w4, w1, 3 - str w4, [x20,852] - cbz w5, .L1303 + str w4, [x19,2388] + cbz w5, .L1307 add w2, w2, 4 add w1, w1, 5 - strh w2, [x20,844] - b .L1315 -.L1303: + strh w2, [x19,2380] + b .L1319 +.L1307: cmp w4, 7 - bhi .L1304 + bhi .L1308 mov w1, 8 -.L1315: - str w1, [x20,852] -.L1304: - add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,764] - strh wzr, [x19,864] +.L1319: + str w1, [x19,2388] +.L1308: + add x20, x20, :lo12:.LANCHOR2 + ldrh w1, [x20,2300] + strh wzr, [x20,2400] 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 .L1305 + bcs .L1309 mov w0, 1 - strh w0, [x19,864] -.L1305: + strh w0, [x20,2400] +.L1309: 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], 96 ret .size FtlConstantsInit, .-FtlConstantsInit @@ -8081,334 +8115,334 @@ FtlMemInit: str x23, [sp,48] add x0, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - str w1, [x0,936] + str w1, [x0,2472] mov w1, -1 - strh wzr, [x0,866] - strh w1, [x0,952] - strh w1, [x0,954] - strh w1, [x0,956] - str wzr, [x0,868] - str wzr, [x0,872] - str wzr, [x0,876] - str wzr, [x0,880] - str wzr, [x0,884] - str wzr, [x0,888] - str wzr, [x0,892] - str wzr, [x0,896] - str wzr, [x0,900] - str wzr, [x0,904] - str wzr, [x0,908] - str wzr, [x0,912] - str wzr, [x0,916] - str wzr, [x0,920] - str wzr, [x0,924] - str wzr, [x0,928] - str wzr, [x0,932] - str wzr, [x0,940] - str wzr, [x0,944] - str wzr, [x0,948] - strh w1, [x0,958] + strh wzr, [x0,2402] + strh w1, [x0,2488] + strh w1, [x0,2490] + strh w1, [x0,2492] + str wzr, [x0,2404] + str wzr, [x0,2408] + str wzr, [x0,2412] + str wzr, [x0,2416] + str wzr, [x0,2420] + str wzr, [x0,2424] + str wzr, [x0,2428] + str wzr, [x0,2432] + str wzr, [x0,2436] + str wzr, [x0,2440] + 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] mov w1, 32 - ldrh w2, [x0,830] - strh w1, [x0,960] + ldrh w2, [x0,2366] + strh w1, [x0,2496] mov w1, 128 - strh w1, [x0,962] + strh w1, [x0,2498] mov w1, 1024 - strh wzr, [x0,964] + strh wzr, [x0,2500] sdiv w2, w1, w2 - ldrh w1, [x0,756] - strh wzr, [x0,966] + ldrh w1, [x0,2292] + strh wzr, [x0,2502] lsl w1, w1, 2 - strh wzr, [x0,968] - strh wzr, [x0,970] + strh wzr, [x0,2504] + strh wzr, [x0,2506] cmp w2, w1 - str w2, [x0,972] - bls .L1318 - str w1, [x0,972] -.L1318: + str w2, [x0,2508] + bls .L1322 + str w1, [x0,2508] +.L1322: add x19, x20, :lo12:.LANCHOR2 mov w22, 56 - ldrh w0, [x19,828] - str wzr, [x19,976] + ldrh w0, [x19,2364] + str wzr, [x19,2512] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,984] - ldrh w1, [x19,828] + str x0, [x19,2520] + ldrh w1, [x19,2364] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,756] - str x0, [x19,992] + ldrh w21, [x19,2292] + str x0, [x19,2528] mul w21, w21, w22 lsl w23, w21, 3 mov w0, w23 bl ftl_malloc - str x0, [x19,1000] + str x0, [x19,2536] mov w0, w21 bl ftl_malloc - str x0, [x19,1008] + str x0, [x19,2544] mov w0, w23 bl ftl_malloc - str x0, [x19,1016] + str x0, [x19,2552] mov w0, w21 bl ftl_malloc - str x0, [x19,1024] + str x0, [x19,2560] mov w0, w21 bl ftl_malloc - str x0, [x19,1032] - ldr w0, [x19,972] + str x0, [x19,2568] + ldr w0, [x19,2508] mul w0, w0, w22 bl ftl_malloc - str x0, [x19,1040] - ldrh w0, [x19,756] - ldrh w21, [x19,834] + str x0, [x19,2576] + ldrh w0, [x19,2292] + ldrh w21, [x19,2370] lsl w0, w0, 1 add w0, w0, 1 - str w0, [x19,1048] + str w0, [x19,2584] mov w0, w21 bl ftl_malloc - str x0, [x19,1056] + str x0, [x19,2592] mov w0, w21 bl ftl_malloc - str x0, [x19,1064] + str x0, [x19,2600] mov w0, w21 bl ftl_malloc - str x0, [x19,1072] - ldr w0, [x19,1048] + str x0, [x19,2608] + ldr w0, [x19,2584] mul w0, w21, w0 bl ftl_malloc - str x0, [x19,1080] - ldr w0, [x19,972] + str x0, [x19,2616] + ldr w0, [x19,2508] mul w0, w21, w0 bl ftl_malloc - str x0, [x19,1088] + str x0, [x19,2624] mov w0, w21 bl ftl_malloc - str x0, [x19,1096] + str x0, [x19,2632] mov w0, w21 bl ftl_malloc - str x0, [x19,1104] - ldr w1, [x19,1048] + str x0, [x19,2640] + ldr w1, [x19,2584] mov w0, 24 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,756] - str x0, [x19,1112] - ldrh w0, [x19,836] + ldrh w21, [x19,2292] + str x0, [x19,2648] + ldrh w0, [x19,2372] mul w21, w0, w21 mov w0, w21 bl ftl_malloc - str x0, [x19,1120] + str x0, [x19,2656] lsl w0, w21, 3 bl ftl_malloc - str x0, [x19,1128] - ldrh w1, [x19,836] - ldr w0, [x19,1048] + str x0, [x19,2664] + ldrh w1, [x19,2372] + ldr w0, [x19,2584] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,1136] - ldrh w1, [x19,836] - ldr w0, [x19,972] + str x0, [x19,2672] + ldrh w1, [x19,2372] + ldr w0, [x19,2508] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,1144] - ldrh w0, [x19,766] + str x0, [x19,2680] + ldrh w0, [x19,2302] lsl w0, w0, 1 - strh w0, [x19,1152] + strh w0, [x19,2688] and w0, w0, 65534 bl ftl_malloc - str x0, [x19,1160] - ldrh w0, [x19,1152] + str x0, [x19,2696] + ldrh w0, [x19,2688] add x0, x0, 547 lsr x0, x0, 9 - strh w0, [x19,1152] + strh w0, [x19,2688] lsl w0, w0, 9 bl ftl_malloc - ldrh w21, [x19,766] - str x0, [x19,1168] + ldrh w21, [x19,2302] + str x0, [x19,2704] add x0, x0, 32 lsl w21, w21, 1 - str x0, [x19,1176] + str x0, [x19,2712] mov w0, w21 bl ftl_malloc - str x0, [x19,1184] + str x0, [x19,2720] mov w0, w21 bl ftl_malloc - ldr w21, [x19,852] - str x0, [x19,1192] + ldr w21, [x19,2388] + str x0, [x19,2728] lsl w21, w21, 1 mov w0, w21 bl ftl_malloc - str x0, [x19,1200] + str x0, [x19,2736] mov w0, w21 bl ftl_malloc - str x0, [x19,1208] - ldrh w0, [x19,766] + str x0, [x19,2744] + ldrh w0, [x19,2302] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc adrp x1, .LANCHOR0+16 str x0, [x1,#:lo12:.LANCHOR0+16] - ldrh w0, [x19,844] + ldrh w0, [x19,2380] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,1216] - ldrh w0, [x19,844] + str x0, [x19,2752] + ldrh w0, [x19,2380] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,1224] - ldrh w0, [x19,844] + str x0, [x19,2760] + ldrh w0, [x19,2380] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,1232] - ldrh w0, [x19,846] + str x0, [x19,2768] + ldrh w0, [x19,2382] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,1240] - ldrh w2, [x19,846] + str x0, [x19,2776] + ldrh w2, [x19,2382] mov w1, 0 lsl w2, w2, 2 bl ftl_memset - ldrh w21, [x19,860] + ldrh w21, [x19,2396] lsl w21, w21, 2 mov w0, w21 bl ftl_malloc - str x0, [x19,1248] + str x0, [x19,2784] mov w0, w21 bl ftl_malloc - str x0, [x19,1256] - ldr w0, [x19,852] + str x0, [x19,2792] + ldr w0, [x19,2388] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,1264] - ldrh w0, [x19,862] + str x0, [x19,2800] + ldrh w0, [x19,2398] lsl w0, w0, 4 bl ftl_malloc - str x0, [x19,1272] - ldrh w1, [x19,862] - ldrh w0, [x19,834] + str x0, [x19,2808] + ldrh w1, [x19,2398] + ldrh w0, [x19,2370] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,1280] - ldrh w1, [x19,766] + str x0, [x19,2816] + ldrh w1, [x19,2302] mov w0, 6 mul w0, w1, w0 bl ftl_malloc - str x0, [x19,1288] - ldrh w0, [x19,822] - ldrh w1, [x19,778] + str x0, [x19,2824] + ldrh w0, [x19,2358] + ldrh w1, [x19,2314] add w0, w0, 31 asr w0, w0, 5 - strh w0, [x19,1296] + strh w0, [x19,2832] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,1336] - add x1, x19, 1304 - ldrh w4, [x19,1296] - ldrh w5, [x19,778] + str x0, [x19,2872] + add x1, x19, 2840 + ldrh w4, [x19,2832] + ldrh w5, [x19,2314] mov w0, 1 mov w2, w4 -.L1319: +.L1323: cmp w0, w5 add x1, x1, 8 - bcs .L1419 - ldr x3, [x19,1336] + bcs .L1423 + ldr x3, [x19,2872] add w0, w0, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x1,32] - b .L1319 -.L1419: + b .L1323 +.L1423: add x1, x20, :lo12:.LANCHOR2 -.L1321: +.L1325: cmp w0, 8 - beq .L1420 + beq .L1424 add x2, x1, x0, uxtw 3 add w0, w0, 1 - str xzr, [x2,1336] - b .L1321 -.L1420: + str xzr, [x2,2872] + b .L1325 +.L1424: add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,1200] - cbnz x1, .L1323 -.L1325: + ldr x1, [x0,2736] + cbnz x1, .L1327 +.L1329: adrp x0, .LC29 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC29 add x1, x1, :lo12:.LANCHOR3 bl printk mov w0, -1 - b .L1324 -.L1323: - ldr x1, [x0,1208] - cbz x1, .L1325 - ldr x1, [x0,1248] - cbz x1, .L1325 - ldr x1, [x0,1264] - cbz x1, .L1325 - ldr x1, [x0,1272] - cbz x1, .L1325 - ldr x1, [x0,1280] - cbz x1, .L1325 - ldr x1, [x0,1288] - cbz x1, .L1325 - ldr x1, [x0,1336] - cbz x1, .L1325 - ldr x0, [x0,1192] - cbz x0, .L1325 + b .L1328 +.L1327: + ldr x1, [x0,2744] + cbz x1, .L1329 + ldr x1, [x0,2784] + cbz x1, .L1329 + ldr x1, [x0,2800] + cbz x1, .L1329 + 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 add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,984] - cbz x1, .L1325 - ldr x1, [x0,992] - cbz x1, .L1325 - ldr x1, [x0,1000] - cbz x1, .L1325 - ldr x1, [x0,1016] - cbz x1, .L1325 - ldr x1, [x0,1024] - cbz x1, .L1325 - ldr x1, [x0,1032] - cbz x1, .L1325 - ldr x1, [x0,1008] - cbz x1, .L1325 - ldr x1, [x0,1056] - cbz x1, .L1325 - ldr x1, [x0,1064] - cbz x1, .L1325 - ldr x0, [x0,1072] - cbz x0, .L1325 + ldr x1, [x0,2520] + cbz x1, .L1329 + ldr x1, [x0,2528] + cbz x1, .L1329 + 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 + 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 add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,1080] - cbz x1, .L1325 - ldr x1, [x0,1096] - cbz x1, .L1325 - ldr x1, [x0,1104] - cbz x1, .L1325 - ldr x1, [x0,1112] - cbz x1, .L1325 - ldr x1, [x0,1120] - cbz x1, .L1325 - ldr x1, [x0,1128] - cbz x1, .L1325 - ldr x1, [x0,1136] - cbz x1, .L1325 - ldr x1, [x0,1176] - cbz x1, .L1325 - ldr x1, [x0,1160] - cbz x1, .L1325 - ldr x0, [x0,1216] - cbz x0, .L1325 + ldr x1, [x0,2616] + cbz x1, .L1329 + ldr x1, [x0,2632] + cbz x1, .L1329 + ldr x1, [x0,2640] + cbz x1, .L1329 + ldr x1, [x0,2648] + cbz x1, .L1329 + 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 + ldr x1, [x0,2696] + cbz x1, .L1329 + ldr x0, [x0,2752] + cbz x0, .L1329 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,1224] - cbz x1, .L1325 - ldr x1, [x0,1232] - cbz x1, .L1325 - ldr x0, [x0,1240] - cbz x0, .L1325 + ldr x1, [x0,2760] + cbz x1, .L1329 + ldr x1, [x0,2768] + cbz x1, .L1329 + ldr x0, [x0,2776] + cbz x0, .L1329 mov w0, 0 -.L1324: +.L1328: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -8423,24 +8457,24 @@ IsBlkInVendorPart: uxth w4, w0 add x1, x1, :lo12:.LANCHOR2 mov w0, 0 - ldrh w2, [x1,1400] - cbz w2, .L1422 - ldrh w2, [x1,844] - ldr x3, [x1,1216] + ldrh w2, [x1,2936] + cbz w2, .L1426 + ldrh w2, [x1,2380] + ldr x3, [x1,2752] mov x1, 0 -.L1423: +.L1427: cmp w2, w1, uxth - bls .L1428 + bls .L1432 add x1, x1, 1 add x0, x3, x1, lsl 1 ldrh w0, [x0,-2] cmp w0, w4 - bne .L1423 + bne .L1427 mov w0, 1 - b .L1422 -.L1428: + b .L1426 +.L1432: mov w0, 0 -.L1422: +.L1426: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -8451,50 +8485,50 @@ FtlCacheMetchLpa: mov w6, w0 add x2, x2, :lo12:.LANCHOR2 mov w0, 0 - ldr w3, [x2,976] - cbz w3, .L1430 - ldr x5, [x2,1040] + ldr w3, [x2,2512] + cbz w3, .L1434 + ldr x5, [x2,2576] mov x0, 56 mov x2, 0 -.L1431: +.L1435: cmp w3, w2 - bls .L1440 + bls .L1444 madd x4, x2, x0, x5 add x2, x2, 1 ldr w4, [x4,24] cmp w4, w6 - bcc .L1431 + bcc .L1435 cmp w4, w1 - bhi .L1431 + bhi .L1435 mov w0, 1 - b .L1430 -.L1440: + b .L1434 +.L1444: mov w0, 0 -.L1430: +.L1434: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 .global FtlGetCap .type FtlGetCap, %function FtlGetCap: - adrp x0, .LANCHOR0+4048 - ldr w0, [x0,#:lo12:.LANCHOR0+4048] + adrp x0, .LANCHOR2+1232 + ldr w0, [x0,#:lo12:.LANCHOR2+1232] ret .size FtlGetCap, .-FtlGetCap .align 2 .global ftl_get_density .type ftl_get_density, %function ftl_get_density: - adrp x0, .LANCHOR0+4048 - ldr w0, [x0,#:lo12:.LANCHOR0+4048] + adrp x0, .LANCHOR2+1232 + ldr w0, [x0,#:lo12:.LANCHOR2+1232] ret .size ftl_get_density, .-ftl_get_density .align 2 .global FtlGetLpn .type FtlGetLpn, %function FtlGetLpn: - adrp x0, .LANCHOR2+1404 - ldr w0, [x0,#:lo12:.LANCHOR2+1404] + adrp x0, .LANCHOR2+2940 + ldr w0, [x0,#:lo12:.LANCHOR2+2940] ret .size FtlGetLpn, .-FtlGetLpn .align 2 @@ -8508,8 +8542,8 @@ FtlBbmMapBadBlock: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w3, [x19,822] - add x19, x19, 1304 + ldrh w3, [x19,2358] + add x19, x19, 2840 udiv w2, w1, w3 add x0, x19, x2, uxth 3 ldr x0, [x0,32] @@ -8539,11 +8573,11 @@ FtlBbmIsBadBlock: adrp x2, .LANCHOR2 uxth w0, w0 add x3, x2, :lo12:.LANCHOR2 - ldrh w1, [x3,822] + ldrh w1, [x3,2358] udiv w2, w0, w1 msub w0, w2, w1, w0 add x2, x3, x2, uxth 3 - ldr x1, [x2,1336] + ldr x1, [x2,2872] uxth w0, w0 ubfx x3, x0, 5, 11 ldr w1, [x1,x3,lsl 2] @@ -8571,16 +8605,16 @@ FtlBbt2Bitmap: mov x20, x1 mov x0, x1 mov w1, 0 - ldrh w2, [x19,1296] + ldrh w2, [x19,2832] lsl w2, w2, 2 bl ftl_memset mov x3, 0 mov w0, 65535 mov w5, 1 -.L1449: +.L1453: ldrh w2, [x21,x3] cmp w2, w0 - beq .L1447 + beq .L1451 ubfx x4, x2, 5, 11 lsl w2, w5, w2 lsl x4, x4, 2 @@ -8589,11 +8623,11 @@ FtlBbt2Bitmap: ldr w1, [x20,x4] orr w2, w1, w2 str w2, [x20,x4] - ldrh w2, [x19,1310] + ldrh w2, [x19,2846] add w2, w2, 1 - strh w2, [x19,1310] - bne .L1449 -.L1447: + strh w2, [x19,2846] + bne .L1453 +.L1451: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -8610,34 +8644,34 @@ FtlBbmTblFlush: add x19, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr w1, [x19,1408] + ldr w1, [x19,2944] stp x25, x26, [sp,64] - cbnz w1, .L1454 - ldr x0, [x19,1056] + cbnz w1, .L1458 + ldr x0, [x19,2592] mov x22, 0 - ldr x3, [x19,1120] - add x21, x19, 1304 - ldrh w2, [x19,834] - str x0, [x19,1424] - str x3, [x19,1432] + ldr x3, [x19,2656] + add x21, x19, 2840 + ldrh w2, [x19,2370] + str x0, [x19,2960] + str x3, [x19,2968] bl ftl_memset -.L1455: - ldrh w1, [x19,778] +.L1459: + ldrh w1, [x19,2314] mov w0, w22 - add x20, x19, 1416 + add x20, x19, 2952 add x22, x22, 1 cmp w0, w1 - bge .L1468 + bge .L1472 add x1, x21, x22, lsl 3 - ldrh w2, [x19,1296] + ldrh w2, [x19,2832] 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 .L1455 -.L1468: + b .L1459 +.L1472: ldr x26, [x20,16] mov w1, 255 mov w2, 16 @@ -8653,85 +8687,85 @@ FtlBbmTblFlush: add x25, x25, :lo12:.LC32 ldr w0, [x21,8] str w0, [x26,4] - ldrh w0, [x19,1304] + ldrh w0, [x19,2840] strh w0, [x26,2] ldrh w0, [x21,4] strh w0, [x26,8] ldrh w0, [x21,6] strh w0, [x26,10] - ldr w0, [x19,752] + ldr w0, [x19,2288] strh w0, [x26,12] -.L1457: - ldr x0, [x19,1056] +.L1461: + ldr x0, [x19,2592] str x0, [x20,8] - ldrh w1, [x19,1304] - ldr x0, [x19,1120] + ldrh w1, [x19,2840] + ldr x0, [x19,2656] str x0, [x20,16] - ldrh w2, [x19,1306] - ldrh w3, [x19,1308] + ldrh w2, [x19,2842] + ldrh w3, [x19,2844] 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,826] - ldrh w0, [x19,1306] + ldrh w1, [x19,2362] + ldrh w0, [x19,2842] sub w1, w1, #1 cmp w0, w1 - blt .L1458 - ldr w1, [x19,1312] - ldrh w0, [x19,1304] + blt .L1462 + ldr w1, [x19,2848] + ldrh w0, [x19,2840] add w1, w1, 1 - str w1, [x19,1312] + str w1, [x19,2848] str w1, [x26,4] strh w0, [x26,8] - ldrh w1, [x19,1308] - strh w0, [x19,1308] - ldr x0, [x19,1024] - strh w1, [x19,1304] + ldrh w1, [x19,2844] + strh w0, [x19,2844] + ldr x0, [x19,2560] + strh w1, [x19,2840] lsl w1, w1, 10 str w1, [x20,4] str w1, [x0,4] mov w1, 1 mov w2, w1 - strh wzr, [x19,1306] - ldr x0, [x19,1024] + strh wzr, [x19,2842] + ldr x0, [x19,2560] bl FlashEraseBlocks -.L1458: +.L1462: mov w1, 1 mov x0, x20 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w1, [x19,1306] + ldrh w1, [x19,2842] ldr w0, [x20] add w1, w1, 1 - strh w1, [x19,1306] + strh w1, [x19,2842] cmn w0, #1 - bne .L1459 + bne .L1463 ldr w1, [x20,4] mov x0, x25 add w22, w22, 1 bl printk uxth w22, w22 cmp w22, 3 - bls .L1457 + bls .L1461 adrp x0, .LC33 ldr w1, [x20,4] add x0, x0, :lo12:.LC33 mov w2, w22 bl printk mov w0, 1 - str w0, [x19,1408] - b .L1454 -.L1459: + str w0, [x19,2944] + b .L1458 +.L1463: add w23, w23, 1 cmp w23, 1 - beq .L1457 + beq .L1461 cmp w0, 256 - beq .L1457 -.L1454: + beq .L1461 +.L1458: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8752,29 +8786,29 @@ FtlLoadFactoryBbt: stp x25, x26, [sp,64] stp x19, x20, [sp,16] stp x23, x24, [sp,48] - add x21, x1, 1416 - add x23, x1, 1304 - ldr x0, [x1,1056] + add x21, x1, 2952 + add x23, x1, 2840 + ldr x0, [x1,2592] mov w22, 0 - ldr x24, [x1,1120] + ldr x24, [x1,2656] mov x19, x1 str x0, [x21,8] mov w25, -1 str x24, [x21,16] mov w26, 61664 -.L1470: - ldrh w0, [x19,778] +.L1474: + ldrh w0, [x19,2314] cmp w22, w0 - bcs .L1479 - ldrh w20, [x19,822] + bcs .L1483 + ldrh w20, [x19,2358] strh w25, [x23,12] -.L1472: +.L1476: sub w20, w20, #1 - ldrh w0, [x19,822] + ldrh w0, [x19,2358] uxth w20, w20 sub w1, w0, #16 cmp w20, w1 - ble .L1473 + ble .L1477 madd w0, w22, w0, w20 mov w1, 1 lsl w0, w0, 10 @@ -8784,16 +8818,16 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1472 + beq .L1476 ldrh w0, [x24] cmp w0, w26 - bne .L1472 + bne .L1476 strh w20, [x23,12] -.L1473: +.L1477: add w22, w22, 1 add x23, x23, 2 - b .L1470 -.L1479: + b .L1474 +.L1483: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8812,7 +8846,7 @@ FtlBbtMemInit: add x0, x0, :lo12:.LANCHOR2 mov w2, 16 add x29, sp, 0 - add x0, x0, 1316 + add x0, x0, 2852 strh w1, [x0,-12] mov w1, 255 strh wzr, [x0,-6] @@ -8832,22 +8866,22 @@ FtlBbtCalcTotleCnt: str x21, [sp,32] mov w19, 0 mov w20, w19 - ldrh w1, [x0,822] - ldrh w21, [x0,778] + ldrh w1, [x0,2358] + ldrh w21, [x0,2314] mul w21, w1, w21 -.L1482: +.L1486: cmp w20, w21 - bge .L1488 + bge .L1492 mov w0, w20 bl FtlBbmIsBadBlock - cbz w0, .L1483 + cbz w0, .L1487 add w19, w19, 1 uxth w19, w19 -.L1483: +.L1487: add w20, w20, 1 uxth w20, w20 - b .L1482 -.L1488: + b .L1486 +.L1492: mov w0, w19 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -8868,28 +8902,28 @@ FtlMakeBbt: stp x25, x26, [sp,64] stp x27, x28, [sp,80] mov x21, x19 - ldr w22, [x20,1408] - cbnz w22, .L1490 - add x24, x20, 1304 + ldr w22, [x20,2944] + cbnz w22, .L1494 + add x24, x20, 2840 mov x19, x20 mov x25, x24 - add x20, x20, 1416 + add x20, x20, 2952 mov w28, -3872 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L1491: - ldrh w0, [x19,778] +.L1495: + ldrh w0, [x19,2314] cmp w22, w0 - bcs .L1509 + bcs .L1513 ldrh w4, [x25,12] mov w1, 65535 - ldr x0, [x19,1056] - ldr x26, [x19,1120] + ldr x0, [x19,2592] + ldr x26, [x19,2656] cmp w4, w1 str x0, [x20,8] str x26, [x20,16] - beq .L1492 - ldrh w0, [x19,822] + beq .L1496 + ldrh w0, [x19,2358] mov w1, 1 mov w2, w1 madd w27, w22, w0, w4 @@ -8897,41 +8931,41 @@ FtlMakeBbt: str w0, [x20,4] mov x0, x20 bl FlashReadPages - ldrh w2, [x19,822] + ldrh w2, [x19,2358] ldr x0, [x24,32] add w2, w2, 7 ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L1493 -.L1492: + b .L1497 +.L1496: mov w1, w22 bl FlashGetBadBlockList ldr x0, [x20,8] ldr x1, [x24,32] bl FtlBbt2Bitmap - ldrh w23, [x19,822] -.L1495: + ldrh w23, [x19,2358] +.L1499: sub w23, w23, #1 uxth w23, w23 -.L1494: - ldrh w0, [x19,822] +.L1498: + ldrh w0, [x19,2358] madd w0, w22, w0, w23 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1495 - ldr x0, [x19,1120] + beq .L1499 + ldr x0, [x19,2656] mov w1, 0 mov w2, 16 strh w23, [x25,12] bl ftl_memset strh w28, [x26] str wzr, [x26,4] - ldrh w2, [x19,1296] + ldrh w2, [x19,2832] ldrh w0, [x25,12] strh w0, [x26,2] lsl w2, w2, 2 - ldrh w0, [x19,822] + ldrh w0, [x19,2358] ldrh w4, [x25,12] ldr x1, [x24,32] madd w27, w22, w0, w4 @@ -8950,93 +8984,93 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x20] cmn w0, #1 - bne .L1493 + bne .L1497 mov w0, w27 bl FtlBbmMapBadBlock - b .L1494 -.L1493: + b .L1498 +.L1497: mov w0, w27 add w22, w22, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L1491 -.L1509: + b .L1495 +.L1513: mov w19, 0 -.L1498: +.L1502: add x20, x21, :lo12:.LANCHOR2 - ldrh w0, [x20,838] + ldrh w0, [x20,2374] cmp w0, w19 - bls .L1510 + bls .L1514 mov w0, w19 add w19, w19, 1 bl FtlBbmMapBadBlock uxth w19, w19 - b .L1498 -.L1510: - ldrh w19, [x20,1316] + b .L1502 +.L1514: + ldrh w19, [x20,2852] mov w23, 65535 sub w19, w19, #1 uxth w19, w19 -.L1500: - add x22, x20, 1304 +.L1504: + add x22, x20, 2840 ldrh w0, [x22,12] sub w0, w0, #48 cmp w19, w0 - ble .L1504 + ble .L1508 mov w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1501 + beq .L1505 mov w0, w19 bl FlashTestBlk - cbz w0, .L1502 + cbz w0, .L1506 mov w0, w19 bl FtlBbmMapBadBlock - b .L1501 -.L1502: - ldrh w0, [x20,1304] + b .L1505 +.L1506: + ldrh w0, [x20,2840] cmp w0, w23 - bne .L1503 - strh w19, [x20,1304] - b .L1501 -.L1503: + bne .L1507 + strh w19, [x20,2840] + b .L1505 +.L1507: strh w19, [x22,4] - b .L1504 -.L1501: + b .L1508 +.L1505: sub w19, w19, #1 uxth w19, w19 - b .L1500 -.L1504: + b .L1504 +.L1508: add x19, x21, :lo12:.LANCHOR2 mov w2, 2 - ldr x1, [x19,1024] - ldrh w0, [x19,1304] - str wzr, [x19,1312] + ldr x1, [x19,2560] + ldrh w0, [x19,2840] + str wzr, [x19,2848] lsl w0, w0, 10 str w0, [x1,4] - strh wzr, [x19,1306] - ldr x0, [x19,1024] - ldrh w1, [x19,1308] + strh wzr, [x19,2842] + ldr x0, [x19,2560] + ldrh w1, [x19,2844] lsl w1, w1, 10 str w1, [x0,60] mov w1, 1 bl FlashEraseBlocks - ldrh w0, [x19,1304] + ldrh w0, [x19,2840] bl FtlBbmMapBadBlock - ldrh w0, [x19,1308] + ldrh w0, [x19,2844] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - strh wzr, [x19,1306] - ldr w0, [x19,1312] - ldrh w1, [x19,1308] + strh wzr, [x19,2842] + ldr w0, [x19,2848] + ldrh w1, [x19,2844] add w0, w0, 1 - str w0, [x19,1312] - ldrh w0, [x19,1304] - strh w0, [x19,1308] - strh w1, [x19,1304] + str w0, [x19,2848] + ldrh w0, [x19,2840] + strh w0, [x19,2844] + strh w1, [x19,2840] bl FtlBbmTblFlush -.L1490: +.L1494: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9054,11 +9088,11 @@ V2P_block: uxth w0, w0 add x3, x3, :lo12:.LANCHOR2 uxth w1, w1 - ldrh w4, [x3,780] + ldrh w4, [x3,2316] udiv w2, w0, w4 msub w0, w2, w4, w0 madd w0, w1, w4, w0 - ldrh w1, [x3,822] + ldrh w1, [x3,2358] madd w0, w2, w1, w0 ret .size V2P_block, .-V2P_block @@ -9069,8 +9103,8 @@ P2V_plane: adrp x2, .LANCHOR2 uxth w0, w0 add x2, x2, :lo12:.LANCHOR2 - ldrh w1, [x2,780] - ldrh w3, [x2,822] + ldrh w1, [x2,2316] + ldrh w3, [x2,2358] udiv w2, w0, w1 udiv w3, w0, w3 msub w0, w2, w1, w0 @@ -9084,10 +9118,10 @@ P2V_block_in_plane: adrp x2, .LANCHOR2 uxth w0, w0 add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,822] + ldrh w3, [x2,2358] udiv w1, w0, w3 msub w0, w1, w3, w0 - ldrh w1, [x2,780] + ldrh w1, [x2,2316] uxth w0, w0 udiv w0, w0, w1 ret @@ -9098,16 +9132,16 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L1515 + bls .L1519 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L1516 -.L1515: + b .L1520 +.L1519: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L1516: +.L1520: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 @@ -9124,12 +9158,12 @@ FtlGetLastWrittenPage: str x25, [sp,64] mov w23, w1 add x3, x3, :lo12:.LANCHOR2 - bne .L1518 - ldrh w19, [x3,826] - b .L1519 -.L1518: - ldrh w19, [x3,824] -.L1519: + bne .L1522 + ldrh w19, [x3,2362] + b .L1523 +.L1522: + ldrh w19, [x3,2360] +.L1523: sub w19, w19, #1 lsl w21, w0, 10 mov w1, 1 @@ -9144,12 +9178,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29,144] cmn w0, #1 - bne .L1520 + bne .L1524 mov w22, 0 mov w25, 2 -.L1521: +.L1525: cmp w22, w19 - bgt .L1520 + bgt .L1524 add w3, w22, w19 mov w1, 1 mov w2, w23 @@ -9161,21 +9195,21 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x24] cmn w0, #1 - bne .L1522 + bne .L1526 ldr w0, [x24,4] cmn w0, #1 - bne .L1522 + bne .L1526 ldr w0, [x29,88] cmn w0, #1 - beq .L1522 + beq .L1526 sub w19, w20, #1 sxth w19, w19 - b .L1521 -.L1522: + b .L1525 +.L1526: add w20, w20, 1 sxth w22, w20 - b .L1521 -.L1520: + b .L1525 +.L1524: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -9196,20 +9230,20 @@ FtlLoadBbt: add x23, x19, :lo12:.LANCHOR2 mov w24, 61649 stp x21, x22, [sp,32] - add x21, x23, 1416 - ldr x0, [x23,1056] - ldr x22, [x23,1120] + add x21, x23, 2952 + ldr x0, [x23,2592] + ldr x22, [x23,2656] str x0, [x21,8] str x22, [x21,16] bl FtlBbtMemInit - ldrh w20, [x23,822] + ldrh w20, [x23,2358] sub w20, w20, #1 uxth w20, w20 -.L1529: - ldrh w0, [x23,822] +.L1533: + ldrh w0, [x23,2358] sub w0, w0, #48 cmp w20, w0 - ble .L1532 + ble .L1536 lsl w0, w20, 10 mov w1, 1 str w0, [x21,4] @@ -9218,7 +9252,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - bne .L1530 + bne .L1534 ldr w0, [x21,4] mov w1, 1 mov w2, w1 @@ -9226,128 +9260,128 @@ FtlLoadBbt: str w0, [x21,4] mov x0, x21 bl FlashReadPages -.L1530: +.L1534: ldr w0, [x21] cmn w0, #1 - beq .L1531 + beq .L1535 ldrh w0, [x22] cmp w0, w24 - bne .L1531 + bne .L1535 ldr w1, [x22,4] - str w1, [x23,1312] - strh w20, [x23,1304] + str w1, [x23,2848] + strh w20, [x23,2840] ldrh w1, [x22,8] - strh w1, [x23,1308] - b .L1532 -.L1531: + strh w1, [x23,2844] + b .L1536 +.L1535: sub w20, w20, #1 uxth w20, w20 - b .L1529 -.L1532: + b .L1533 +.L1536: add x21, x19, :lo12:.LANCHOR2 mov w2, 65535 mov w0, -1 - ldrh w1, [x21,1304] + ldrh w1, [x21,2840] cmp w1, w2 - beq .L1534 - ldrh w1, [x21,1308] + beq .L1538 + ldrh w1, [x21,2844] cmp w1, w2 - beq .L1536 - add x0, x21, 1416 + beq .L1540 + add x0, x21, 2952 lsl w1, w1, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 bl FlashReadPages - ldr w0, [x21,1416] + ldr w0, [x21,2952] cmn w0, #1 - beq .L1536 + beq .L1540 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1536 + bne .L1540 ldr w0, [x22,4] - ldr w1, [x21,1312] + ldr w1, [x21,2848] cmp w0, w1 - bls .L1536 - str w0, [x21,1312] - ldrh w1, [x21,1308] + bls .L1540 + str w0, [x21,2848] + ldrh w1, [x21,2844] ldrh w0, [x22,8] - strh w1, [x21,1304] - strh w0, [x21,1308] -.L1536: + strh w1, [x21,2840] + strh w0, [x21,2844] +.L1540: add x20, x19, :lo12:.LANCHOR2 mov w1, 1 - add x23, x20, 1416 + add x23, x20, 2952 mov w24, 61649 - ldrh w0, [x20,1304] + ldrh w0, [x20,2840] bl FtlGetLastWrittenPage sxth w21, w0 add w0, w0, 1 - strh w0, [x20,1306] -.L1538: - tbnz w21, #31, .L1543 - ldrh w0, [x20,1304] + strh w0, [x20,2842] +.L1542: + tbnz w21, #31, .L1547 + ldrh w0, [x20,2840] mov w1, 1 mov w2, w1 orr w0, w21, w0, lsl 10 str w0, [x23,4] - ldr x0, [x20,1056] + ldr x0, [x20,2592] str x0, [x23,8] mov x0, x23 bl FlashReadPages ldr w0, [x23] cmn w0, #1 - beq .L1539 + beq .L1543 ldrh w0, [x22] cmp w0, w24 - bne .L1539 -.L1543: + bne .L1543 +.L1547: add x1, x19, :lo12:.LANCHOR2 ldrh w0, [x22,10] mov w2, 65535 - strh w0, [x1,1310] + strh w0, [x1,2846] ldrh w0, [x22,12] cmp w0, w2 - bne .L1540 - b .L1541 -.L1539: + bne .L1544 + b .L1545 +.L1543: sub w21, w21, #1 sxth w21, w21 - b .L1538 -.L1540: - ldr w2, [x1,752] + b .L1542 +.L1544: + ldr w2, [x1,2288] cmp w0, w2 - beq .L1541 - ldrh w1, [x1,766] + beq .L1545 + ldrh w1, [x1,2302] lsr w1, w1, 2 cmp w0, w1 - bcs .L1541 + bcs .L1545 cmp w2, w1 - bcs .L1541 + bcs .L1545 bl FtlSysBlkNumInit -.L1541: +.L1545: add x19, x19, :lo12:.LANCHOR2 mov x20, 0 - add x21, x19, 1304 -.L1544: - ldrh w0, [x19,778] + add x21, x19, 2840 +.L1548: + ldrh w0, [x19,2314] mov w1, w20 add x20, x20, 1 cmp w1, w0 - bcs .L1562 - ldrh w2, [x19,1296] + bcs .L1566 + ldrh w2, [x19,2832] add x0, x21, x20, lsl 3 - ldr x3, [x19,1424] + ldr x3, [x19,2960] mul w1, w1, w2 ldr x0, [x0,24] lsl w2, w2, 2 add x1, x3, x1, lsl 2 bl ftl_memcpy - b .L1544 -.L1562: + b .L1548 +.L1566: mov w0, 0 -.L1534: +.L1538: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9363,11 +9397,11 @@ FtlFreeSysBlkQueueInit: stp x29, x30, [sp, -16]! add x1, x1, :lo12:.LANCHOR2 add x29, sp, 0 - strh w0, [x1,1472] - add x0, x1, 1480 - strh wzr, [x1,1474] - strh wzr, [x1,1476] - strh wzr, [x1,1478] + strh w0, [x1,3008] + add x0, x1, 3016 + strh wzr, [x1,3010] + strh wzr, [x1,3012] + strh wzr, [x1,3014] mov w1, 0 bl ftl_memset mov w0, 0 @@ -9378,8 +9412,8 @@ FtlFreeSysBlkQueueInit: .global FtlFreeSysBlkQueueEmpty .type FtlFreeSysBlkQueueEmpty, %function FtlFreeSysBlkQueueEmpty: - adrp x0, .LANCHOR2+1478 - ldrh w0, [x0,#:lo12:.LANCHOR2+1478] + adrp x0, .LANCHOR2+3014 + ldrh w0, [x0,#:lo12:.LANCHOR2+3014] cmp w0, wzr cset w0, eq ret @@ -9388,8 +9422,8 @@ FtlFreeSysBlkQueueEmpty: .global FtlFreeSysBlkQueueFull .type FtlFreeSysBlkQueueFull, %function FtlFreeSysBlkQueueFull: - adrp x0, .LANCHOR2+1478 - ldrh w0, [x0,#:lo12:.LANCHOR2+1478] + adrp x0, .LANCHOR2+3014 + ldrh w0, [x0,#:lo12:.LANCHOR2+3014] cmp w0, 1024 cset w0, eq ret @@ -9407,37 +9441,37 @@ FtlFreeSysBlkQueueIn: mov w0, 65533 sub w2, w21, #1 cmp w0, w2, uxth - bcc .L1566 + bcc .L1570 adrp x2, .LANCHOR2 add x20, x2, :lo12:.LANCHOR2 mov x19, x2 - ldrh w0, [x20,1478] + ldrh w0, [x20,3014] cmp w0, 1024 - beq .L1566 - cbz w1, .L1568 - ldr w0, [x20,1408] - cbnz w0, .L1568 + beq .L1570 + cbz w1, .L1572 + ldr w0, [x20,2944] + cbnz w0, .L1572 mov w0, w21 bl P2V_block_in_plane uxth w22, w0 - ldr x0, [x20,1024] + ldr x0, [x20,2560] lsl w1, w21, 10 str w1, [x0,4] mov w1, 1 mov w2, w1 - ldr x0, [x20,1024] + ldr x0, [x20,2560] bl FlashEraseBlocks ubfiz x0, x22, 1, 16 - ldr x2, [x20,1176] + ldr x2, [x20,2712] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x20,916] + ldr w0, [x20,2452] add w0, w0, 1 - str w0, [x20,916] -.L1568: + str w0, [x20,2452] +.L1572: add x1, x19, :lo12:.LANCHOR2 - add x1, x1, 1472 + add x1, x1, 3008 ldrh w0, [x1,6] ldrh w2, [x1,4] add w0, w0, 1 @@ -9447,7 +9481,7 @@ FtlFreeSysBlkQueueIn: and w2, w2, 1023 strh w21, [x0,8] strh w2, [x1,4] -.L1566: +.L1570: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -9461,202 +9495,198 @@ FtlLowFormatEraseBlock: add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR2 - add x3, x21, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] stp x27, x28, [sp,80] + add x28, x21, :lo12:.LANCHOR2 + stp x25, x26, [sp,64] uxth w25, w0 - uxtb w24, w1 - ldrb w0, [x3,656] - ldr w2, [x3,1408] + ldr w2, [x28,2944] + ldrb w0, [x28,2192] + stp x23, x24, [sp,48] str w0, [x29,120] + uxtb w24, w1 + stp x19, x20, [sp,16] mov w0, 0 - cbnz w2, .L1576 - adrp x28, .LANCHOR0 - str w25, [x3,948] - add x0, x28, :lo12:.LANCHOR0 - mov w27, w2 - mov w20, w2 - mov w19, w2 - mov x26, x3 - mov w23, 56 - ldrb w0, [x0,4044] + cbnz w2, .L1580 + ldrb w0, [x28,1228] + mov w26, w2 str w0, [x29,124] -.L1577: - ldrh w0, [x26,756] - cmp w0, w27 - bls .L1621 - umull x0, w27, w23 - ldr x1, [x26,1024] + mov w20, w2 + str w25, [x28,2484] + mov w19, w2 + mov w23, 56 + mov w27, 4 +.L1581: + ldrh w0, [x28,2292] + cmp w0, w26 + bls .L1625 + umull x0, w26, w23 + ldr x1, [x28,2560] str wzr, [x1,x0] - add x0, x26, 784 + add x0, x28, 2320 mov w1, w25 - ldrb w0, [x0,w27,sxtw] + ldrb w0, [x0,w26,sxtw] bl V2P_block uxth w22, w0 mov w1, w22 - cbz w24, .L1578 + cbz w24, .L1582 str x1, [x29,112] bl IsBlkInVendorPart ldr x1, [x29,112] - cbnz w0, .L1579 -.L1578: + cbnz w0, .L1583 +.L1582: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1580 + cbnz w0, .L1584 umull x0, w20, w23 - ldr x1, [x26,1024] + ldr x1, [x28,2560] lsl w22, w22, 10 - mov w2, 4 add x1, x1, x0 str w22, [x1,4] - ldr x1, [x26,1024] - ldr x4, [x26,1128] + ldr x1, [x28,2560] + ldr x3, [x28,2664] add x1, x1, x0 - ldrh w0, [x26,836] + ldrh w0, [x28,2372] mul w0, w20, w0 add w20, w20, 1 str xzr, [x1,8] - sdiv w0, w0, w2 + sdiv w0, w0, w27 uxth w20, w20 - add x0, x4, x0, sxtw 2 + add x0, x3, x0, sxtw 2 str x0, [x1,16] - b .L1579 -.L1580: + b .L1583 +.L1584: add w19, w19, 1 uxth w19, w19 -.L1579: - add w2, w27, 1 - uxth w27, w2 - b .L1577 -.L1621: - cbz w20, .L1600 +.L1583: + add w2, w26, 1 + uxth w26, w2 + b .L1581 +.L1625: + cbz w20, .L1604 ldr w0, [x29,124] mov w2, w20 - strb wzr, [x26,656] + strb wzr, [x28,2192] mov x23, 0 cmp w0, wzr - ldr x0, [x26,1024] + ldr x0, [x28,2560] cset w22, ne + mov x26, 56 mov w1, w22 bl FlashEraseBlocks ldrb w0, [x29,120] - strb w0, [x26,656] - mov x26, 56 -.L1583: + strb w0, [x28,2192] +.L1587: cmp w20, w23, uxth - bls .L1622 + bls .L1626 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 - ldr x1, [x1,1024] + ldr x1, [x1,2560] add x2, x1, x0 ldr w0, [x1,x0] cmn w0, #1 - bne .L1584 + bne .L1588 ldr w0, [x2,4] add w19, w19, 1 lsr w0, w0, 10 uxth w19, w19 bl FtlBbmMapBadBlock -.L1584: +.L1588: add x23, x23, 1 - b .L1583 -.L1622: - cbnz w24, .L1586 + b .L1587 +.L1626: + cbnz w24, .L1590 mov w0, 1 uxth w22, w22 mov w27, 6 str w0, [x29,124] - b .L1587 -.L1586: + b .L1591 +.L1590: add x0, x21, :lo12:.LANCHOR2 - add x28, x28, :lo12:.LANCHOR0 - ldrh w0, [x0,826] - str w0, [x29,124] - ldrb w0, [x28,4044] - cbnz w0, .L1603 - ldr w0, [x29,124] + ldrh w1, [x0,2362] + ldrb w0, [x0,1228] + str w1, [x29,124] + cbnz w0, .L1607 + uxtw x0, w1 mov w22, 1 lsr w27, w0, 2 - b .L1587 -.L1603: + b .L1591 +.L1607: mov w22, 1 mov w27, w22 -.L1587: +.L1591: mov w23, 0 add x28, x21, :lo12:.LANCHOR2 -.L1596: +.L1600: mov w26, 0 mov w20, w26 -.L1588: - ldrh w0, [x28,756] +.L1592: + ldrh w0, [x28,2292] cmp w0, w26 - bls .L1623 + bls .L1627 mov w0, 56 - ldr x1, [x28,1024] + ldr x1, [x28,2560] umull x0, w26, w0 str wzr, [x1,x0] - add x0, x28, 784 + add x0, x28, 2320 mov w1, w25 ldrb w0, [x0,w26,sxtw] bl V2P_block uxth w2, w0 str w2, [x29,112] mov w1, w2 - cbz w24, .L1589 + cbz w24, .L1593 str x1, [x29,104] bl IsBlkInVendorPart ldr x1, [x29,104] - cbnz w0, .L1590 -.L1589: + cbnz w0, .L1594 +.L1593: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L1590 + cbnz w0, .L1594 mov w0, 56 - ldr x1, [x28,1024] + ldr x1, [x28,2560] 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,1024] + ldr x1, [x28,2560] add x1, x1, x0 - ldr x0, [x28,1096] + ldr x0, [x28,2632] str x0, [x1,8] - ldrh w0, [x28,836] + ldrh w0, [x28,2372] mul w0, w20, w0 add w20, w20, 1 sdiv w0, w0, w2 uxth w20, w20 - ldr x2, [x28,1104] + ldr x2, [x28,2640] add x0, x2, x0, sxtw 2 str x0, [x1,16] -.L1590: +.L1594: add w3, w26, 1 uxth w26, w3 - b .L1588 -.L1623: - cbz w20, .L1600 - ldr x0, [x28,1024] + b .L1592 +.L1627: + cbz w20, .L1604 + ldr x0, [x28,2560] mov w1, w20 mov w2, w22 mov w3, 1 - strb wzr, [x28,656] + strb wzr, [x28,2192] bl FlashProgPages ldrb w0, [x29,120] mov x1, 0 - strb w0, [x28,656] -.L1593: + strb w0, [x28,2192] +.L1597: cmp w20, w1, uxth - bls .L1624 + bls .L1628 mov x0, 56 - ldr x2, [x28,1024] + ldr x2, [x28,2560] mul x0, x1, x0 add x3, x2, x0 ldr w0, [x2,x0] - cbz w0, .L1594 + cbz w0, .L1598 ldr w0, [x3,4] add w19, w19, 1 str x1, [x29,112] @@ -9664,47 +9694,47 @@ FtlLowFormatEraseBlock: uxth w19, w19 bl FtlBbmMapBadBlock ldr x1, [x29,112] -.L1594: +.L1598: add x1, x1, 1 - b .L1593 -.L1624: + b .L1597 +.L1628: add w23, w23, w27 ldr w0, [x29,124] uxth w23, w23 cmp w23, w0 - bcc .L1596 + bcc .L1600 mov x23, 0 mov x26, 56 -.L1597: +.L1601: cmp w20, w23, uxth - bls .L1625 - cbz w24, .L1598 + bls .L1629 + cbz w24, .L1602 add x1, x21, :lo12:.LANCHOR2 mul x0, x23, x26 - ldr x1, [x1,1024] + ldr x1, [x1,2560] add x2, x1, x0 ldr w0, [x1,x0] - cbnz w0, .L1598 + cbnz w0, .L1602 ldr w0, [x2,4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L1598: +.L1602: add x23, x23, 1 - b .L1597 -.L1625: + b .L1601 +.L1629: cmp w25, 63 - bls .L1604 - cbz w24, .L1600 -.L1604: + bls .L1608 + cbz w24, .L1604 +.L1608: add x21, x21, :lo12:.LANCHOR2 mov w1, w22 mov w2, w20 - ldr x0, [x21,1024] + ldr x0, [x21,2560] bl FlashEraseBlocks -.L1600: +.L1604: mov w0, w19 -.L1576: +.L1580: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -9717,23 +9747,24 @@ FtlLowFormatEraseBlock: .global FtlFreeSysBLkSort .type FtlFreeSysBLkSort, %function FtlFreeSysBLkSort: - adrp x1, .LANCHOR2 - add x0, x1, :lo12:.LANCHOR2 - add x0, x0, 1472 - ldrh w6, [x0,2084] - ldrh w2, [x0,6] - cbz w2, .L1626 + adrp x0, .LANCHOR4+740 + ldrh w6, [x0,#:lo12:.LANCHOR4+740] + adrp x0, .LANCHOR2 + add x1, x0, :lo12:.LANCHOR2 + add x1, x1, 3008 + ldrh w2, [x1,6] + cbz w2, .L1630 mov w5, 0 - ldrh w3, [x0,2] - ldrh w2, [x0,4] + ldrh w3, [x1,2] + ldrh w2, [x1,4] mov w4, w5 and w6, w6, 31 -.L1628: +.L1632: cmp w4, w6 - bge .L1636 - add x5, x0, x3, sxtw 1 + bge .L1640 + add x5, x1, x3, sxtw 1 ldrh w7, [x5,8] - add x5, x0, x2, sxtw 1 + add x5, x1, x2, sxtw 1 add w4, w4, 1 strh w7, [x5,8] mov w5, 1 @@ -9742,13 +9773,13 @@ FtlFreeSysBLkSort: uxth w4, w4 and w3, w3, 1023 and w2, w2, 1023 - b .L1628 -.L1636: - cbz w5, .L1626 - add x0, x1, :lo12:.LANCHOR2 - strh w3, [x0,1474] - strh w2, [x0,1476] -.L1626: + b .L1632 +.L1640: + cbz w5, .L1630 + add x0, x0, :lo12:.LANCHOR2 + strh w3, [x0,3010] + strh w2, [x0,3012] +.L1630: ret .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 @@ -9764,70 +9795,68 @@ FtlFreeSysBlkQueueOut: adrp x23, .LC35 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - add x21, x19, 1472 - adrp x24, .LANCHOR0 + add x21, x19, 3008 + mov w24, 65533 add x23, x23, :lo12:.LC35 -.L1638: +.L1642: ldrh w1, [x21,6] adrp x22, .LANCHOR2 - cbz w1, .L1639 + cbz w1, .L1643 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,1408] + ldr w1, [x19,2944] and w2, w2, 1023 strh w2, [x21,2] ldrh w20, [x0,8] - cbnz w1, .L1640 + cbnz w1, .L1644 mov w0, w20 str x1, [x29,88] bl P2V_block_in_plane uxth w26, w0 - ldr x0, [x19,1024] + ldr x0, [x19,2560] lsl w2, w20, 10 ldr x1, [x29,88] str w2, [x0,4] - add x0, x24, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbz w0, .L1641 - ldr x0, [x19,1024] + ldrb w0, [x19,1228] + cbz w0, .L1645 + ldr x0, [x19,2560] mov w2, 1 bl FlashEraseBlocks -.L1641: +.L1645: add x25, x22, :lo12:.LANCHOR2 mov w1, 1 mov w2, w1 - ldr x0, [x25,1024] + ldr x0, [x25,2560] bl FlashEraseBlocks ubfiz x0, x26, 1, 16 - ldr x2, [x25,1176] + ldr x2, [x25,2712] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] - ldr w0, [x25,916] + ldr w0, [x25,2452] add w0, w0, 1 - str w0, [x25,916] - b .L1640 -.L1639: + str w0, [x25,2452] + b .L1644 +.L1643: adrp x0, .LC34 add x0, x0, :lo12:.LC34 bl printk -.L1642: - b .L1642 -.L1640: +.L1646: + b .L1646 +.L1644: sub w0, w20, #1 - mov w1, 65533 - cmp w1, w0, uxth - bcs .L1643 + cmp w24, w0, uxth + bcs .L1647 add x22, x22, :lo12:.LANCHOR2 mov x0, x23 mov w1, w20 - ldrh w2, [x22,1478] + ldrh w2, [x22,3014] bl printk - b .L1638 -.L1643: + b .L1642 +.L1647: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9841,131 +9870,138 @@ FtlFreeSysBlkQueueOut: .type test_node_in_list, %function test_node_in_list: ldr x2, [x0] - adrp x0, .LANCHOR2+1288 + adrp x0, .LANCHOR2+2824 mov x4, -6148914691236517206 uxth w1, w1 mov w5, 65535 - ldr x3, [x0,#:lo12:.LANCHOR2+1288] + ldr x3, [x0,#:lo12:.LANCHOR2+2824] sub x0, x2, x3 asr x0, x0, 1 madd x0, x4, x0, x0 mov w4, 6 uxth w0, w0 -.L1649: +.L1653: cmp w1, w0 - beq .L1650 + beq .L1654 ldrh w0, [x2] cmp w0, w5 - beq .L1651 + beq .L1655 umull x2, w0, w4 add x2, x3, x2 - b .L1649 -.L1650: + b .L1653 +.L1654: mov w0, 1 - b .L1648 -.L1651: + b .L1652 +.L1655: mov w0, 0 -.L1648: +.L1652: ret .size test_node_in_list, .-test_node_in_list .align 2 .global insert_data_list .type insert_data_list, %function insert_data_list: - adrp x2, .LANCHOR2 + sub sp, sp, #16 + adrp x10, .LANCHOR2 + add x3, x10, :lo12:.LANCHOR2 uxth w0, w0 - add x3, x2, :lo12:.LANCHOR2 - mov x4, x2 - ldrh w1, [x3,764] + str x19, [sp] + ldrh w1, [x3,2300] cmp w1, w0 - bls .L1654 + bls .L1658 mov w7, 6 - ldr x11, [x3,1288] + ldr x12, [x3,2824] + adrp x2, .LANCHOR4 mov w1, -1 - umull x10, w0, w7 - add x5, x11, x10 + umull x11, w0, w7 + add x6, x2, :lo12:.LANCHOR4 + mov x4, x2 + add x5, x12, x11 strh w1, [x5,2] - strh w1, [x11,x10] - ldr x1, [x3,3576] - cbnz x1, .L1655 - str x5, [x3,3576] - b .L1654 -.L1655: + strh w1, [x12,x11] + ldr x1, [x6,760] + cbnz x1, .L1659 + str x5, [x6,760] + b .L1658 +.L1659: ubfiz x8, x0, 1, 16 - ldr x13, [x3,1192] + ldr x14, [x3,2728] ldrh w2, [x5,4] mov x9, -6148914691236517206 - ldr x12, [x3,1288] - mov w18, 65535 - ldrh w6, [x13,x8] + ldr x13, [x3,2824] + mov w19, 65535 + ldrh w6, [x14,x8] cmp w2, wzr - ldr x14, [x3,1176] - ldrh w17, [x3,764] + ldr x15, [x3,2712] + ldrh w18, [x3,2300] mov w3, 0 mul w6, w6, w2 - sub x2, x1, x12 + sub x2, x1, x13 asr x2, x2, 1 csinv w6, w6, wzr, ne madd x2, x9, x2, x2 - add x9, x14, x8 + add x9, x15, x8 mov w8, w7 uxth w2, w2 -.L1663: +.L1667: add w3, w3, 1 cmp w0, w2 uxth w3, w3 - beq .L1654 - cmp w3, w17 - bhi .L1654 - ubfiz x15, x2, 1, 16 - ldrh w16, [x1,4] - cmp w16, wzr - ldrh w7, [x13,x15] - mul w7, w7, w16 + beq .L1658 + cmp w3, w18 + bhi .L1658 + ubfiz x16, x2, 1, 16 + ldrh w17, [x1,4] + cmp w17, wzr + ldrh w7, [x14,x16] + mul w7, w7, w17 csinv w7, w7, wzr, ne cmp w7, w6 - bne .L1659 - ldrh w15, [x14,x15] + bne .L1663 + ldrh w16, [x15,x16] ldrh w7, [x9] - cmp w15, w7 - bcc .L1661 - b .L1660 -.L1659: - bhi .L1660 -.L1661: + cmp w16, w7 + bcc .L1665 + b .L1664 +.L1663: + bhi .L1664 +.L1665: ldrh w7, [x1] - cmp w7, w18 - bne .L1662 + cmp w7, w19 + bne .L1666 strh w2, [x5,2] - add x2, x4, :lo12:.LANCHOR2 + add x2, x4, :lo12:.LANCHOR4 strh w0, [x1] - str x5, [x2,3584] - b .L1654 -.L1662: + str x5, [x2,768] + b .L1658 +.L1666: umull x1, w7, w8 mov w2, w7 - add x1, x12, x1 - b .L1663 -.L1660: - strh w2, [x11,x10] + add x1, x13, x1 + b .L1667 +.L1664: + strh w2, [x12,x11] ldrh w2, [x1,2] strh w2, [x5,2] - add x2, x4, :lo12:.LANCHOR2 - ldr x3, [x2,3576] + add x2, x4, :lo12:.LANCHOR4 + ldr x3, [x2,760] cmp x1, x3 - bne .L1664 + bne .L1668 strh w0, [x1,2] - str x5, [x2,3576] - b .L1654 -.L1664: - ldrh w3, [x1,2] + str x5, [x2,760] + b .L1658 +.L1668: + ldrh w2, [x1,2] + add x3, x10, :lo12:.LANCHOR2 mov w4, 6 - ldr x2, [x2,1288] - umull x3, w3, w4 - strh w0, [x2,x3] + ldr x3, [x3,2824] + umull x2, w2, w4 + strh w0, [x3,x2] strh w0, [x1,2] -.L1654: +.L1658: mov w0, 0 + ldr x19, [sp] + add sp, sp, 16 ret .size insert_data_list, .-insert_data_list .align 2 @@ -9975,11 +10011,11 @@ INSERT_DATA_LIST: stp x29, x30, [sp, -16]! add x29, sp, 0 bl insert_data_list - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,3592] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldrh w1, [x0,776] add w1, w1, 1 - strh w1, [x0,3592] + strh w1, [x0,776] ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -9988,68 +10024,72 @@ INSERT_DATA_LIST: .type insert_free_list, %function insert_free_list: uxth w0, w0 - mov w7, 65535 - cmp w0, w7 - beq .L1669 - adrp x2, .LANCHOR2 - mov w6, 6 - add x5, x2, :lo12:.LANCHOR2 - mov w1, -1 - umull x8, w0, w6 - mov x3, x2 - ldr x9, [x5,1288] - add x4, x9, x8 - strh w1, [x4,2] - strh w1, [x9,x8] - ldr x1, [x5,3600] - cbnz x1, .L1670 - str x4, [x5,3600] - b .L1669 -.L1670: - ldr x11, [x5,1176] - ubfiz x2, x0, 1, 16 - ldr x10, [x5,1288] - mov x5, -6148914691236517206 - ldrh w12, [x11,x2] - sub x2, x1, x10 - asr x2, x2, 1 - madd x2, x5, x2, x2 - uxth w2, w2 -.L1673: - ubfiz x5, x2, 1, 16 - ldrh w5, [x11,x5] - cmp w5, w12 - bcs .L1671 - ldrh w5, [x1] - cmp w5, w7 - bne .L1672 - strh w2, [x4,2] - strh w0, [x1] - b .L1669 -.L1672: - umull x1, w5, w6 - mov w2, w5 - add x1, x10, x1 - b .L1673 -.L1671: - ldrh w5, [x1,2] - strh w5, [x4,2] - strh w2, [x9,x8] - add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,3600] - cmp x1, x3 - bne .L1674 - strh w0, [x1,2] - str x4, [x2,3600] - b .L1669 -.L1674: - ldrh w3, [x1,2] + mov w5, 65535 + cmp w0, w5 + beq .L1673 + adrp x3, .LANCHOR2 mov w4, 6 - ldr x2, [x2,1288] - umull x3, w3, w4 - strh w0, [x2,x3] + add x8, x3, :lo12:.LANCHOR2 + adrp x2, .LANCHOR4 + umull x6, w0, w4 + mov w1, -1 + add x9, x2, :lo12:.LANCHOR4 + ldr x7, [x8,2824] + 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] + ubfiz x2, x0, 1, 16 + ldr x9, [x8,2824] + mov x8, -6148914691236517206 + ldrh w13, [x10,x2] + sub x2, x1, x9 + asr x2, x2, 1 + madd x2, x8, x2, x2 + uxth w2, w2 +.L1677: + ubfiz x8, x2, 1, 16 + ldrh w8, [x10,x8] + cmp w8, w13 + bcs .L1675 + ldrh w8, [x1] + cmp w8, w5 + bne .L1676 + strh w2, [x12,2] + strh w0, [x1] + b .L1673 +.L1676: + umull x1, w8, w4 + mov w2, w8 + add x1, x9, x1 + b .L1677 +.L1675: + ldrh w4, [x1,2] + strh w4, [x12,2] + strh w2, [x7,x6] + add x2, x3, :lo12:.LANCHOR4 + ldr x3, [x2,784] + cmp x1, x3 + bne .L1678 strh w0, [x1,2] -.L1669: + str x12, [x2,784] + b .L1673 +.L1678: + ldrh w2, [x1,2] + add x3, x11, :lo12:.LANCHOR2 + mov w4, 6 + ldr x3, [x3,2824] + umull x2, w2, w4 + strh w0, [x3,x2] + strh w0, [x1,2] +.L1673: mov w0, 0 ret .size insert_free_list, .-insert_free_list @@ -10060,11 +10100,11 @@ INSERT_FREE_LIST: stp x29, x30, [sp, -16]! add x29, sp, 0 bl insert_free_list - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,3608] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldrh w1, [x0,792] add w1, w1, 1 - strh w1, [x0,3608] + strh w1, [x0,792] ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -10079,43 +10119,43 @@ List_remove_node: ldr x3, [x0] mov w7, 65535 umull x1, w1, w5 - ldr x2, [x6,1288] + ldr x2, [x6,2824] add x4, x2, x1 cmp x4, x3 - bne .L1677 + bne .L1681 ldrh w3, [x2,x1] cmp w3, w7 - bne .L1678 + bne .L1682 str xzr, [x0] - b .L1679 -.L1678: + b .L1683 +.L1682: umull x3, w3, w5 add x3, x2, x3 str x3, [x0] mov w0, -1 strh w0, [x3,2] - b .L1679 -.L1677: + b .L1683 +.L1681: ldrh w0, [x2,x1] ldrh w3, [x4,2] cmp w0, w7 - bne .L1680 + bne .L1684 cmp w3, w0 - beq .L1679 + beq .L1683 umull x3, w3, w5 mov w0, -1 strh w0, [x2,x3] - b .L1679 -.L1680: + b .L1683 +.L1684: umull x0, w0, w5 add x0, x2, x0 strh w3, [x0,2] ldrh w3, [x4,2] - ldr x0, [x6,1288] + ldr x0, [x6,2824] ldrh w7, [x2,x1] umull x3, w3, w5 strh w7, [x0,x3] -.L1679: +.L1683: mov w0, -1 strh w0, [x2,x1] strh w0, [x4,2] @@ -10132,14 +10172,14 @@ List_pop_index_node: str x19, [sp,16] mov w19, 65535 ldr x2, [x0] - cbz x2, .L1682 - adrp x3, .LANCHOR2+1288 + cbz x2, .L1686 + adrp x3, .LANCHOR2+2824 mov w5, w19 mov w6, 6 - ldr x4, [x3,#:lo12:.LANCHOR2+1288] -.L1683: - cbnz w1, .L1684 -.L1686: + ldr x4, [x3,#:lo12:.LANCHOR2+2824] +.L1687: + cbnz w1, .L1688 +.L1690: sub x2, x2, x4 mov x1, -6148914691236517206 asr x2, x2, 1 @@ -10147,17 +10187,17 @@ List_pop_index_node: uxth w19, w2 mov w1, w19 bl List_remove_node - b .L1682 -.L1684: + b .L1686 +.L1688: ldrh w3, [x2] cmp w3, w5 - beq .L1686 + beq .L1690 umull x3, w3, w6 sub w1, w1, #1 add x2, x4, x3 uxth w1, w1 - b .L1683 -.L1682: + b .L1687 +.L1686: mov w0, w19 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -10167,31 +10207,32 @@ List_pop_index_node: .global List_get_gc_head_node .type List_get_gc_head_node, %function List_get_gc_head_node: - adrp x2, .LANCHOR2 uxth w3, w0 - add x2, x2, :lo12:.LANCHOR2 + adrp x0, .LANCHOR4+760 + ldr x1, [x0,#:lo12:.LANCHOR4+760] mov w0, 65535 - ldr x1, [x2,3576] - cbz x1, .L1694 - ldr x4, [x2,1288] + cbz x1, .L1698 + adrp x0, .LANCHOR2+2824 mov w5, 6 -.L1690: - cbz w3, .L1691 + ldr x4, [x0,#:lo12:.LANCHOR2+2824] + mov w0, 65535 +.L1694: + cbz w3, .L1695 ldrh w2, [x1] cmp w2, w0 - beq .L1694 + beq .L1698 umull x2, w2, w5 sub w3, w3, #1 add x1, x4, x2 uxth w3, w3 - b .L1690 -.L1691: + b .L1694 +.L1695: sub x1, x1, x4 mov x0, -6148914691236517206 asr x1, x1, 1 madd x1, x0, x1, x1 uxth w0, w1 -.L1694: +.L1698: ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -10201,63 +10242,65 @@ List_update_data_list: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 + adrp x19, .LANCHOR4 uxth w20, w0 - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,3616] - cmp w1, w20 - beq .L1696 - ldrh w1, [x0,3664] - cmp w1, w20 - beq .L1696 - ldrh w1, [x0,3712] - cmp w1, w20 - beq .L1696 - mov w3, 6 - ldr x4, [x0,1288] - ldr x2, [x0,3576] - umull x3, w20, w3 - add x1, x4, x3 - cmp x1, x2 - beq .L1696 - ldr x5, [x0,1192] + add x4, x19, :lo12:.LANCHOR4 + ldrh w0, [x4,800] + cmp w0, w20 + beq .L1700 + ldrh w0, [x4,848] + cmp w0, w20 + beq .L1700 + ldrh w0, [x4,896] + cmp w0, w20 + beq .L1700 + adrp x3, .LANCHOR2 + mov w2, 6 + add x3, x3, :lo12:.LANCHOR2 + ldr x0, [x4,760] + umull x2, w20, w2 + ldr x5, [x3,2824] + add x1, x5, x2 + cmp x1, x0 + beq .L1700 ubfiz x0, x20, 1, 16 - ldrh w2, [x5,x0] - ldrh w0, [x1,4] + ldr x4, [x3,2728] + ldrh w6, [x1,4] ldrh w1, [x1,2] - cmp w0, wzr - mul w2, w2, w0 + ldrh w3, [x4,x0] + cmp w6, wzr mov w0, 65535 - csinv w2, w2, wzr, ne + mul w3, w3, w6 + csinv w3, w3, wzr, ne cmp w1, w0 - bne .L1698 - ldrh w0, [x4,x3] + bne .L1702 + ldrh w0, [x5,x2] cmp w0, w1 - beq .L1696 -.L1698: + beq .L1700 +.L1702: mov w0, 6 - mov x3, -6148914691236517206 umull x1, w1, w0 - asr x0, x1, 1 - add x1, x4, x1 - madd x0, x3, x0, x0 - ldrh w1, [x1,4] - ldrh w0, [x5,x0,lsl 1] - cmp w1, wzr - mul w0, w0, w1 - csinv w0, w0, wzr, ne - cmp w2, w0 - bcs .L1696 - add x19, x19, :lo12:.LANCHOR2 + mov x0, -6148914691236517206 + asr x2, x1, 1 + add x1, x5, x1 + madd x2, x0, x2, x2 + ldrh w2, [x4,x2,lsl 1] + ldrh w4, [x1,4] + cmp w4, wzr + mul w1, w2, w4 + csinv w1, w1, wzr, ne + cmp w3, w1 + bcs .L1700 + add x19, x19, :lo12:.LANCHOR4 mov w1, w20 - add x0, x19, 3576 + add x0, x19, 760 bl List_remove_node - ldrh w0, [x19,3592] - sub w0, w0, #1 - strh w0, [x19,3592] + ldrh w1, [x19,776] mov w0, w20 + sub w1, w1, #1 + strh w1, [x19,776] bl INSERT_DATA_LIST -.L1696: +.L1700: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -10283,76 +10326,76 @@ ftl_free_no_use_map_blk: mov x0, x21 bl ftl_memset mov w0, 0 -.L1703: +.L1707: ldrh w1, [x19,6] cmp w1, w0 - bls .L1725 + bls .L1729 ubfiz x1, x0, 2, 16 ldr w2, [x20,x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L1704: +.L1708: ldrh w3, [x19,10] cmp w3, w1 - bls .L1726 + bls .L1730 ubfiz x3, x1, 1, 16 ldrh w4, [x22,x3] cmp w2, w4 - bne .L1705 - cbz w4, .L1705 + bne .L1709 + cbz w4, .L1709 ldrh w4, [x21,x3] add w4, w4, 1 strh w4, [x21,x3] -.L1705: +.L1709: add w1, w1, 1 uxth w1, w1 - b .L1704 -.L1726: + b .L1708 +.L1730: add w0, w0, 1 uxth w0, w0 - b .L1703 -.L1725: - adrp x0, .LANCHOR2+826 + b .L1707 +.L1729: + adrp x0, .LANCHOR2+2362 mov w23, 0 mov w20, w23 - ldrh w1, [x0,#:lo12:.LANCHOR2+826] + ldrh w1, [x0,#:lo12:.LANCHOR2+2362] ldrh w0, [x19] strh w1, [x21,x0,lsl 1] ldrh w24, [x21] -.L1708: +.L1712: ldrh w0, [x19,10] cmp w0, w20 - bls .L1727 + bls .L1731 ubfiz x2, x20, 1, 16 ldrh w1, [x21,x2] cmp w24, w1 - bls .L1709 + bls .L1713 ldrh w0, [x22,x2] add x25, x22, x2 - cbnz w0, .L1710 - b .L1711 -.L1709: - cbnz w1, .L1711 - ldrh w0, [x22,x2] - add x25, x22, x2 - cbz w0, .L1711 + cbnz w0, .L1714 + b .L1715 .L1713: + cbnz w1, .L1715 + ldrh w0, [x22,x2] + add x25, x22, x2 + cbz w0, .L1715 +.L1717: mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x25] ldrh w0, [x19,8] sub w0, w0, #1 strh w0, [x19,8] -.L1711: +.L1715: add w20, w20, 1 uxth w20, w20 - b .L1708 -.L1710: + b .L1712 +.L1714: mov w23, w20 mov w24, w1 - cbz w1, .L1713 - b .L1711 -.L1727: + cbz w1, .L1717 + b .L1715 +.L1731: mov w0, w23 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -10372,12 +10415,12 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w2, [x0,10] ldr x1, [x0,16] -.L1729: +.L1733: cmp w20, w2 - beq .L1733 + beq .L1737 mov x22, x1 ldrh w21, [x1],2 - cbnz w21, .L1730 + cbnz w21, .L1734 mov x19, x0 bl FtlFreeSysBlkQueueOut strh w0, [x22] @@ -10385,15 +10428,15 @@ ftl_map_blk_alloc_new_blk: sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L1731 - adrp x2, .LANCHOR2+1478 + bcs .L1735 + adrp x2, .LANCHOR2+3014 adrp x0, .LC36 add x0, x0, :lo12:.LC36 - ldrh w2, [x2,#:lo12:.LANCHOR2+1478] + ldrh w2, [x2,#:lo12:.LANCHOR2+3014] bl printk -.L1732: - b .L1732 -.L1731: +.L1736: + b .L1736 +.L1735: ldr w0, [x19,48] strh w21, [x19,2] add w0, w0, 1 @@ -10402,12 +10445,12 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19,8] - b .L1733 -.L1730: + b .L1737 +.L1734: add w20, w20, 1 uxth w20, w20 - b .L1729 -.L1733: + b .L1733 +.L1737: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10434,38 +10477,38 @@ FtlMapWritePage: mov w28, 65535 add x21, x26, :lo12:.LANCHOR2 add x23, x23, :lo12:.LC37 -.L1736: +.L1740: add x0, x26, :lo12:.LANCHOR2 adrp x20, .LANCHOR2 - ldr w1, [x0,900] + ldr w1, [x0,2436] add w1, w1, 1 - str w1, [x0,900] - ldrh w0, [x0,826] + str w1, [x0,2436] + ldrh w0, [x0,2362] ldrh w1, [x19,2] sub w0, w0, #1 cmp w1, w0 - bge .L1737 + bge .L1741 ldrh w0, [x19] cmp w0, w28 - bne .L1738 -.L1737: + bne .L1742 +.L1741: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L1738: - ldr w1, [x21,1408] - cbnz w1, .L1739 +.L1742: + ldr w1, [x21,2944] + cbnz w1, .L1743 ldrh w2, [x19] - add x3, x21, 1416 + add x3, x21, 2952 ldr x0, [x19,16] str x3, [x29,104] ldrh w24, [x0,x2,lsl 1] mov w2, 16 ldrh w0, [x19,2] - str x27, [x21,1424] + str x27, [x21,2960] orr w0, w0, w24, lsl 10 - str w0, [x21,1420] - ldr x0, [x21,1120] - str x0, [x21,1432] + str w0, [x21,2956] + ldr x0, [x21,2656] + str x0, [x21,2968] bl ftl_memset ldr x3, [x29,104] ldr w0, [x19,48] @@ -10477,15 +10520,15 @@ FtlMapWritePage: adrp x0, .LANCHOR0+88 strh w24, [x2,2] ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L1740 + cbz w0, .L1744 ldr x0, [x3,8] - ldrh w1, [x21,834] + ldrh w1, [x21,2370] str x2, [x29,104] bl js_hash ldr x2, [x29,104] str w0, [x2,12] -.L1740: - add x4, x21, 1416 +.L1744: + add x4, x21, 2952 mov w1, 1 mov w2, w1 mov x0, x4 @@ -10497,9 +10540,9 @@ FtlMapWritePage: add w1, w1, 1 uxth w1, w1 strh w1, [x19,2] - ldr w2, [x21,1416] + ldr w2, [x21,2952] cmn w2, #1 - bne .L1741 + bne .L1745 ldr w1, [x4,4] mov x0, x23 add w22, w22, 1 @@ -10507,41 +10550,41 @@ FtlMapWritePage: uxth w22, w22 ldrh w0, [x19,2] cmp w0, 2 - bhi .L1742 - ldrh w0, [x21,826] + bhi .L1746 + ldrh w0, [x21,2362] sub w0, w0, #1 strh w0, [x19,2] -.L1742: +.L1746: cmp w22, 3 - bls .L1736 + bls .L1740 add x20, x20, :lo12:.LANCHOR2 adrp x0, .LC38 add x0, x0, :lo12:.LC38 mov w2, w22 - ldr w1, [x20,1420] + ldr w1, [x20,2956] bl printk mov w0, 1 - str w0, [x20,1408] - b .L1739 -.L1741: - cbz w2, .L1744 - strh w24, [x19,60] -.L1744: - cmp w1, 1 - beq .L1745 - cmp w2, 256 - beq .L1745 - ldr w0, [x19,56] - cbz w0, .L1746 + str w0, [x20,2944] + b .L1743 .L1745: + cbz w2, .L1748 + strh w24, [x19,60] +.L1748: + cmp w1, 1 + beq .L1749 + cmp w2, 256 + beq .L1749 + ldr w0, [x19,56] + cbz w0, .L1750 +.L1749: str wzr, [x19,56] - b .L1736 -.L1746: + b .L1740 +.L1750: add x20, x20, :lo12:.LANCHOR2 ldr x0, [x19,40] - ldr w1, [x20,1420] + ldr w1, [x20,2956] str w1, [x0,w25,uxtw 2] -.L1739: +.L1743: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10571,12 +10614,12 @@ ftl_map_blk_gc: ldrh w2, [x19,8] sub w1, w1, #4 cmp w2, w1 - blt .L1754 + blt .L1758 ubfiz x1, x0, 1, 16 ldrh w24, [x21,x1] - cbz w24, .L1754 + cbz w24, .L1758 ldr w0, [x19,52] - cbnz w0, .L1754 + cbnz w0, .L1758 mov w2, 1 str w2, [x19,52] strh w0, [x21,x1] @@ -10585,26 +10628,26 @@ ftl_map_blk_gc: sub w0, w0, #1 strh w0, [x19,8] add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,826] + ldrh w0, [x0,2362] cmp w1, w0 - bcc .L1755 + bcc .L1759 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1755: +.L1759: add x26, x20, :lo12:.LANCHOR2 mov w21, 0 - add x22, x26, 1416 -.L1756: + add x22, x26, 2952 +.L1760: ldrh w0, [x19,6] cmp w0, w21 - bls .L1765 + bls .L1769 ubfiz x0, x21, 2, 16 add x27, x25, x0 ldr w1, [x25,x0] cmp w24, w1, lsr 10 - bne .L1757 - ldr x1, [x26,1064] - ldr x23, [x26,1120] + bne .L1761 + ldr x1, [x26,2600] + ldr x23, [x26,2656] str x1, [x22,8] mov w1, 1 str x23, [x22,16] @@ -10615,48 +10658,48 @@ ftl_map_blk_gc: bl FlashReadPages ldr w0, [x22] cmn w0, #1 - bne .L1758 -.L1760: + bne .L1762 +.L1764: add x20, x20, :lo12:.LANCHOR2 str wzr, [x27] adrp x0, .LC39 ldrh w2, [x23,8] add x0, x0, :lo12:.LC39 - ldr w1, [x20,1420] + ldr w1, [x20,2956] bl printk mov w0, 1 - str w0, [x20,1408] - b .L1759 -.L1758: + str w0, [x20,2944] + b .L1763 +.L1762: ldrh w0, [x23,8] cmp w0, w21 - bne .L1760 + bne .L1764 ldrh w1, [x23] ldrh w0, [x19,4] cmp w1, w0 - bne .L1760 + bne .L1764 ldr x2, [x22,8] mov x0, x19 mov w1, w21 bl FtlMapWritePage -.L1757: +.L1761: add w21, w21, 1 uxth w21, w21 - b .L1756 -.L1765: + b .L1760 +.L1769: mov w0, w24 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19,52] -.L1754: +.L1758: add x20, x20, :lo12:.LANCHOR2 ldrh w1, [x19,2] - ldrh w0, [x20,826] + ldrh w0, [x20,2362] cmp w1, w0 - bcc .L1759 + bcc .L1763 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1759: +.L1763: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -10677,15 +10720,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,1408] + ldr w20, [x1,2944] ldr x22, [x0,16] ldr x24, [x0,40] - cbnz w20, .L1767 + cbnz w20, .L1771 mov x19, x0 ldrh w0, [x0] mov w2, 65535 cmp w0, w2 - bne .L1768 + bne .L1772 ldrh w0, [x19,8] add w0, w0, 1 strh w0, [x19,8] @@ -10696,17 +10739,17 @@ Ftl_write_map_blk_to_last_page: strh w20, [x19] add w0, w0, 1 str w0, [x19,48] - b .L1767 -.L1768: + b .L1771 +.L1772: ubfiz x0, x0, 1, 16 ldrh w2, [x19,2] ldrh w23, [x22,x0] - ldr x22, [x1,1120] - str x22, [x1,1432] + ldr x22, [x1,2656] + str x22, [x1,2968] orr w2, w2, w23, lsl 10 - str w2, [x1,1420] - ldr x2, [x1,1056] - str x2, [x1,1424] + str w2, [x1,2956] + ldr x2, [x1,2592] + str x2, [x1,2960] ldr w0, [x19,48] str w0, [x22,4] mov w0, -1291 @@ -10714,47 +10757,47 @@ Ftl_write_map_blk_to_last_page: ldrh w0, [x19,4] strh w0, [x22] strh w23, [x22,2] - ldrh w2, [x1,826] - ldr x0, [x1,1056] + ldrh w2, [x1,2362] + ldr x0, [x1,2592] mov w1, 255 lsl w2, w2, 3 bl ftl_memset mov w0, w20 -.L1769: +.L1773: ldrh w1, [x19,6] cmp w1, w0 - bls .L1776 + bls .L1780 ubfiz x3, x0, 2, 32 ldr w1, [x24,x3] cmp w23, w1, lsr 10 - bne .L1770 + bne .L1774 add x2, x21, :lo12:.LANCHOR2 add w20, w20, 1 uxth w20, w20 - ldr x4, [x2,1056] + ldr x4, [x2,2592] ubfiz x1, x20, 3, 16 str w0, [x4,x1] - ldr x2, [x2,1056] + ldr x2, [x2,2592] ldr w3, [x24,x3] add x1, x2, x1 str w3, [x1,4] -.L1770: +.L1774: add w0, w0, 1 uxth w0, w0 - b .L1769 -.L1776: + b .L1773 +.L1780: adrp x0, .LANCHOR0+88 ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L1772 + cbz w0, .L1776 add x1, x21, :lo12:.LANCHOR2 - ldr x0, [x1,1424] - ldrh w1, [x1,834] + ldr x0, [x1,2960] + ldrh w1, [x1,2370] bl js_hash str w0, [x22,12] -.L1772: +.L1776: mov w1, 1 add x0, x21, :lo12:.LANCHOR2 - add x0, x0, 1416 + add x0, x0, 2952 mov w2, w1 mov w3, 0 bl FlashProgPages @@ -10763,7 +10806,7 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19,2] mov x0, x19 bl ftl_map_blk_gc -.L1767: +.L1771: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10781,13 +10824,15 @@ flush_l2p_region: adrp x20, .LANCHOR2 ubfiz x19, x0, 4, 16 add x20, x20, :lo12:.LANCHOR2 - add x0, x20, 3760 - ldr x1, [x20,1272] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + add x0, x0, 944 + ldr x1, [x20,2808] add x2, x1, x19 ldrh w1, [x1,x19] ldr x2, [x2,8] bl FtlMapWritePage - ldr x0, [x20,1272] + ldr x0, [x20,2808] add x19, x0, x19 ldr w0, [x19,4] and w0, w0, 2147483647 @@ -10802,69 +10847,68 @@ flush_l2p_region: .type select_l2p_ram_region, %function select_l2p_ram_region: adrp x0, .LANCHOR2 - mov x4, 0 - add x1, x0, :lo12:.LANCHOR2 - mov x3, x0 - mov w5, 65535 - ldrh w2, [x1,862] - ldr x1, [x1,1272] -.L1779: - uxth w0, w4 - cmp w0, w2 - bcs .L1795 - add x4, x4, 1 - add x6, x1, x4, lsl 4 - ldrh w6, [x6,-16] - cmp w6, w5 - bne .L1779 - b .L1780 -.L1795: - mov w0, w2 - mov x4, 0 - mov w7, -2147483648 -.L1782: - uxth w6, w4 - cmp w6, w2 - bcs .L1796 - add x5, x1, x4, lsl 4 - ldr w5, [x5,4] - tbnz w5, #31, .L1791 - cmp w5, w7 - bcc .L1783 -.L1791: - mov w5, w7 - mov w6, w0 + mov x3, 0 + add x0, x0, :lo12:.LANCHOR2 + mov w4, 65535 + ldrh w2, [x0,2398] + ldr x1, [x0,2808] .L1783: - add x4, x4, 1 - mov w7, w5 - mov w0, w6 - b .L1782 -.L1796: + uxth w0, w3 cmp w0, w2 - bcc .L1780 - add x0, x3, :lo12:.LANCHOR2 + bcs .L1799 + add x3, x3, 1 + add x5, x1, x3, lsl 4 + ldrh w5, [x5,-16] + cmp w5, w4 + bne .L1783 + b .L1784 +.L1799: + mov w0, w2 + mov x3, 0 + mov w6, -2147483648 +.L1786: + uxth w5, w3 + cmp w5, w2 + bcs .L1800 + add x4, x1, x3, lsl 4 + ldr w4, [x4,4] + tbnz w4, #31, .L1795 + cmp w4, w6 + bcc .L1787 +.L1795: + mov w4, w6 + mov w5, w0 +.L1787: + add x3, x3, 1 + mov w6, w4 + mov w0, w5 + b .L1786 +.L1800: + cmp w0, w2 + bcc .L1784 + adrp x0, .LANCHOR4+1008 add x1, x1, 4 mov w4, -1 mov w3, 0 - ldrh w5, [x0,3824] + ldrh w5, [x0,#:lo12:.LANCHOR4+1008] mov w0, w2 -.L1786: +.L1790: cmp w3, w2 - beq .L1780 + beq .L1784 ldr w7, [x1] cmp w7, w4 - bcs .L1787 + bcs .L1791 ldrh w6, [x1,-4] cmp w6, w5 csel w4, w4, w7, eq cmp w6, w5 csel w0, w0, w3, eq -.L1787: +.L1791: add w3, w3, 1 add x1, x1, 16 uxth w3, w3 - b .L1786 -.L1780: + b .L1790 +.L1784: ret .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 @@ -10880,10 +10924,10 @@ log2phys: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w5, [x4,1404] - ldrh w3, [x4,832] + ldr w5, [x4,2940] + ldrh w3, [x4,2368] cmp w0, w5 - bcs .L1798 + bcs .L1802 add w27, w3, 7 str x1, [x29,104] lsr w28, w0, w27 @@ -10891,24 +10935,24 @@ log2phys: str w2, [x29,100] mov x0, 0 uxth w22, w28 - ldrh w1, [x4,862] - ldr x19, [x4,1272] - b .L1799 -.L1798: + ldrh w1, [x4,2398] + ldr x19, [x4,2808] + b .L1803 +.L1802: mov w0, -1 - cbnz w2, .L1800 + cbnz w2, .L1804 str w0, [x1] - b .L1800 -.L1804: + b .L1804 +.L1808: add x0, x0, 1 add x2, x19, x0, lsl 4 ldrh w2, [x2,-16] cmp w2, w22 - beq .L1801 -.L1799: + beq .L1805 +.L1803: uxth x20, w0 cmp w20, w1 - bcc .L1804 + bcc .L1808 bl select_l2p_ram_region uxth x20, w0 ubfiz x26, x20, 4, 16 @@ -10916,133 +10960,136 @@ log2phys: add x1, x19, x26 ldrh w3, [x19,x26] cmp w3, w2 - bne .L1812 -.L1805: + bne .L1816 +.L1809: add x19, x21, :lo12:.LANCHOR2 ubfiz x0, x22, 2, 16 - ldr x1, [x19,1248] + ldr x1, [x19,2784] ldr w24, [x1,x0] - cbnz w24, .L1806 - ldr x0, [x19,1272] + cbnz w24, .L1810 + ldr x0, [x19,2808] mov w1, 255 - ldrh w2, [x19,834] + ldrh w2, [x19,2370] add x0, x0, x26 ldr x0, [x0,8] bl ftl_memset - ldr x0, [x19,1272] + ldr x0, [x19,2808] strh w22, [x0,x26] - ldr x0, [x19,1272] + ldr x0, [x19,2808] add x26, x0, x26 str w24, [x26,4] -.L1801: +.L1805: mov x1, 1 lsl x3, x1, x27 ldr w1, [x29,100] sub w3, w3, #1 and w0, w25, w3 uxth x0, w0 - cbnz w1, .L1802 + cbnz w1, .L1806 add x1, x21, :lo12:.LANCHOR2 - ldr x1, [x1,1272] + ldr x1, [x1,2808] add x1, x1, x20, lsl 4 ldr x1, [x1,8] ldr w0, [x1,x0,lsl 2] ldr x1, [x29,104] str w0, [x1] - b .L1803 -.L1802: + b .L1807 +.L1806: ldr x2, [x29,104] + add x3, x21, :lo12:.LANCHOR2 lsl x1, x20, 4 ldr w4, [x2] - add x2, x21, :lo12:.LANCHOR2 - ldr x3, [x2,1272] - add x3, x3, x1 - ldr x3, [x3,8] - str w4, [x3,x0,lsl 2] - strh w22, [x2,3824] - ldr x0, [x2,1272] + ldr x2, [x3,2808] + add x2, x2, x1 + ldr x2, [x2,8] + str w4, [x2,x0,lsl 2] + ldr x0, [x3,2808] add x0, x0, x1 ldr w1, [x0,4] orr w1, w1, -2147483648 str w1, [x0,4] -.L1803: + adrp x0, .LANCHOR4+1008 + strh w22, [x0,#:lo12:.LANCHOR4+1008] +.L1807: add x21, x21, :lo12:.LANCHOR2 - ldr x0, [x21,1272] + ldr x0, [x21,2808] add x20, x0, x20, lsl 4 mov w0, 0 ldr w1, [x20,4] cmn w1, #1 - beq .L1800 + beq .L1804 add w1, w1, 1 str w1, [x20,4] - b .L1800 -.L1812: + b .L1804 +.L1816: ldr w1, [x1,4] - tbz w1, #31, .L1805 + tbz w1, #31, .L1809 bl flush_l2p_region - b .L1805 -.L1806: - ldr x0, [x19,1272] + b .L1809 +.L1810: + ldr x0, [x19,2808] mov w1, 1 - add x23, x19, 1416 + add x23, x19, 2952 mov w2, w1 add x0, x0, x26 - str w24, [x19,1420] + str w24, [x19,2956] ldr x0, [x0,8] - str x0, [x19,1424] - ldr x0, [x19,1120] - str x0, [x19,1432] + str x0, [x19,2960] + ldr x0, [x19,2656] + str x0, [x19,2968] mov x0, x23 bl FlashReadPages - ldr x0, [x19,1432] + ldr x0, [x19,2968] ldrh w0, [x0,8] cmp w0, w22 - beq .L1807 + beq .L1811 adrp x0, .LC40 uxth w1, w28 mov w2, w24 add x0, x0, :lo12:.LC40 bl printk mov w2, 4 - ldr x1, [x19,1432] + 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,1248] - ldrh w3, [x19,860] + 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,1408] - b .L1808 -.L1807: - ldr w0, [x19,1416] + str w0, [x19,2944] + b .L1812 +.L1811: + ldr w0, [x19,2952] cmp w0, 256 - bne .L1808 + bne .L1812 and w28, w28, 65535 adrp x0, .LC42 mov w1, w28 mov w2, w24 add x0, x0, :lo12:.LC42 bl printk - ldr x2, [x19,1272] - add x0, x19, 3760 + ldr x2, [x19,2808] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 mov w1, w28 add x2, x2, x26 + add x0, x0, 944 ldr x2, [x2,8] bl FtlMapWritePage -.L1808: +.L1812: add x1, x21, :lo12:.LANCHOR2 - ldr x0, [x1,1272] + ldr x0, [x1,2808] add x0, x0, x26 str wzr, [x0,4] - ldr x0, [x1,1272] + ldr x0, [x1,2808] strh w22, [x0,x26] - b .L1801 -.L1800: + b .L1805 +.L1804: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11055,118 +11102,128 @@ log2phys: .global FtlVendorPartWrite .type FtlVendorPartWrite, %function FtlVendorPartWrite: - stp x29, x30, [sp, -160]! + stp x29, x30, [sp, -176]! add x29, sp, 0 + stp x23, x24, [sp,48] + adrp x24, .LANCHOR2 + mov w23, w0 + add x0, x24, :lo12:.LANCHOR2 stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x19, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x25, x26, [sp,64] - mov w22, w1 - mov w25, w0 - add w1, w0, w1 - ldrh w0, [x19,820] - stp x23, x24, [sp,48] stp x27, x28, [sp,80] + mov w21, w1 + add w1, w23, w1 + ldrh w22, [x0,2368] + mov x26, x2 + ldrh w0, [x0,2356] + mov w20, -1 cmp w1, w0 - mov x24, x2 - ldrh w23, [x19,832] - mov w21, -1 - bhi .L1814 - lsr w23, w25, w23 - mov w21, 0 - add x27, x19, 3832 -.L1815: - cbz w22, .L1814 - ldrh w1, [x19,830] - ldr x0, [x19,1240] - udiv w26, w25, w1 - ldr w2, [x0,w23,uxtw 2] - uxth w0, w22 - msub w26, w26, w1, w25 - sub w20, w1, w26 - uxth w20, w20 - cmp w20, w22 - csel w20, w0, w20, hi - cmp w20, w1 - beq .L1817 - cbz w2, .L1817 - ldr x0, [x19,1072] + bhi .L1818 + adrp x27, .LANCHOR4 + lsr w22, w23, w22 + add x27, x27, :lo12:.LANCHOR4 + mov w20, 0 + add x27, x27, 1016 +.L1819: + cbz w21, .L1818 + add x2, x24, :lo12:.LANCHOR2 + ldrh w1, [x2,2366] + ldr x0, [x2,2776] + udiv w25, w23, w1 + ldr w3, [x0,w22,uxtw 2] + uxth w0, w21 + msub w25, w25, w1, w23 + sub w19, w1, w25 + uxth w19, w19 + cmp w19, w21 + csel w19, w0, w19, hi + cmp w19, w1 + beq .L1821 + cbz w3, .L1821 + ldr x0, [x2,2608] mov w1, 1 - str w2, [x29,108] + str x0, [x29,128] mov w2, w1 - str x0, [x29,112] - add x0, x29, 104 - str xzr, [x29,120] + add x0, x29, 120 + str w3, [x29,124] + str xzr, [x29,136] bl FlashReadPages - b .L1818 -.L1817: - ldr x0, [x19,1072] + b .L1822 +.L1821: + add x2, x24, :lo12:.LANCHOR2 mov w1, 0 - ldrh w2, [x19,834] + ldr x0, [x2,2608] + ldrh w2, [x2,2370] bl ftl_memset -.L1818: - ldr x0, [x19,1072] - lsl w28, w20, 9 - ubfiz x26, x26, 9, 16 - mov x1, x24 +.L1822: + add x3, x24, :lo12:.LANCHOR2 + lsl w28, w19, 9 + ubfiz x25, x25, 9, 16 + mov x1, x26 mov w2, w28 - add x0, x0, x26 - sub w22, w22, w20 - add w25, w25, w20 + str x3, [x29,104] + ldr x0, [x3,2608] + sub w21, w21, w19 + add w23, w23, w19 + add x26, x26, x28, sxtw + add x0, x0, x25 bl ftl_memcpy - add x24, x24, x28, sxtw - ldr x2, [x19,1072] - mov w1, w23 + ldr x3, [x29,104] + mov w1, w22 mov x0, x27 - add w23, w23, 1 + add w22, w22, 1 + ldr x2, [x3,2608] bl FtlMapWritePage cmn w0, #1 - csinv w21, w21, wzr, ne - b .L1815 -.L1814: - mov w0, w21 + csinv w20, w20, wzr, ne + b .L1819 +.L1818: + 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], 160 + ldp x29, x30, [sp], 176 ret .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 .global FtlVendorPartRead .type FtlVendorPartRead, %function FtlVendorPartRead: - stp x29, x30, [sp, -176]! - adrp x3, .LANCHOR2 - add x3, x3, :lo12:.LANCHOR2 + stp x29, x30, [sp, -192]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - mov w22, w1 - mov x25, x2 - add w2, w0, w1 - ldrh w1, [x3,820] + adrp x25, .LANCHOR2 + stp x23, x24, [sp,48] mov w23, w0 - ldrh w20, [x3,832] - cmp w2, w1 + add x0, x25, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] + stp x27, x28, [sp,80] + stp x19, x20, [sp,16] + mov w22, w1 + mov x27, x2 + add w2, w23, w1 + ldrh w1, [x0,2356] + ldrh w20, [x0,2368] mov w0, -1 - bhi .L1829 - adrp x26, .LC43 - add x0, x3, 3832 + cmp w2, w1 + bhi .L1833 + adrp x0, .LC43 + adrp x26, .LANCHOR4 + add x0, x0, :lo12:.LC43 + add x26, x26, :lo12:.LANCHOR4 + str x0, [x29,120] lsr w20, w23, w20 + add x0, x26, 1016 mov w21, 0 - mov x28, x3 - add x26, x26, :lo12:.LC43 - str x0, [x29,104] -.L1830: - cbz w22, .L1838 - ldrh w19, [x28,830] - ldr x0, [x28,1240] + str x0, [x29,112] +.L1834: + cbz w22, .L1842 + add x26, x25, :lo12:.LANCHOR2 + ldrh w19, [x26,2366] + ldr x0, [x26,2776] udiv w24, w23, w19 ldr w4, [x0,w20,uxtw 2] uxth w0, w22 @@ -11175,97 +11232,100 @@ FtlVendorPartRead: uxth w19, w19 cmp w19, w22 csel w19, w0, w19, hi - lsl w27, w19, 9 - cbz w4, .L1832 - ldr x0, [x28,1072] + lsl w28, w19, 9 + cbz w4, .L1836 + ldr x0, [x26,2608] mov w1, 1 - str x0, [x29,128] + str x0, [x29,144] mov w2, w1 - add x0, x29, 120 - str w4, [x29,124] - str x4, [x29,96] - str xzr, [x29,136] + add x0, x29, 136 + str w4, [x29,140] + str x4, [x29,104] + str xzr, [x29,152] bl FlashReadPages - ldr w0, [x29,120] - ldr x4, [x29,96] + ldr w0, [x29,136] + ldr x4, [x29,104] cmn w0, #1 - ldr w0, [x28,1416] + ldr w0, [x26,2952] csinv w21, w21, wzr, ne cmp w0, 256 - bne .L1834 + bne .L1838 + ldr x0, [x29,120] mov w1, w20 mov w2, w4 - mov x0, x26 bl printk - ldr x0, [x29,104] + ldr x0, [x29,112] mov w1, w20 - ldr x2, [x28,1072] + ldr x2, [x26,2608] bl FtlMapWritePage -.L1834: - ldr x1, [x28,1072] +.L1838: + add x0, x25, :lo12:.LANCHOR2 ubfiz x24, x24, 9, 16 - mov x0, x25 - mov w2, w27 + mov w2, w28 + ldr x1, [x0,2608] + mov x0, x27 add x1, x1, x24 bl ftl_memcpy - b .L1835 -.L1832: - mov x0, x25 + b .L1839 +.L1836: + mov x0, x27 mov w1, w4 - mov w2, w27 + mov w2, w28 bl ftl_memset -.L1835: +.L1839: add w20, w20, 1 sub w22, w22, w19 add w23, w23, w19 - add x25, x25, x27, sxtw - b .L1830 -.L1838: + add x27, x27, x28, sxtw + b .L1834 +.L1842: mov w0, w21 -.L1829: +.L1833: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 176 + ldp x29, x30, [sp], 192 ret .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 .global FtlUpdateVaildLpn .type FtlUpdateVaildLpn, %function FtlUpdateVaildLpn: - adrp x1, .LANCHOR2 - add x3, x1, :lo12:.LANCHOR2 - ldrh w2, [x3,3896] - cbnz w0, .L1840 + adrp x1, .LANCHOR4 + add x3, x1, :lo12:.LANCHOR4 + ldrh w2, [x3,1080] + cbnz w0, .L1844 cmp w2, 4 - bhi .L1840 + bhi .L1844 add w2, w2, 1 - strh w2, [x3,3896] - b .L1839 -.L1840: - add x0, x1, :lo12:.LANCHOR2 + strh w2, [x3,1080] + b .L1843 +.L1844: + add x0, x1, :lo12:.LANCHOR4 mov w7, 65535 - strh wzr, [x0,3896] - str wzr, [x0,3900] - ldrh w5, [x0,764] - ldr x6, [x0,1192] + strh wzr, [x0,1080] + str wzr, [x0,1084] + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldrh w5, [x0,2300] + ldr x6, [x0,2728] mov x0, 0 -.L1841: +.L1845: cmp w5, w0, uxth - bls .L1839 + bls .L1843 ldrh w4, [x6,x0,lsl 1] cmp w4, w7 - beq .L1842 - add x3, x1, :lo12:.LANCHOR2 - ldr w2, [x3,3900] + beq .L1846 + add x3, x1, :lo12:.LANCHOR4 + ldr w2, [x3,1084] add w2, w4, w2 - str w2, [x3,3900] -.L1842: + str w2, [x3,1084] +.L1846: add x0, x0, 1 - b .L1841 -.L1839: + b .L1845 +.L1843: ret .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -11279,41 +11339,41 @@ FtlMapBlkWriteDumpData: ldr w1, [x0,56] ldrh w19, [x0,6] ldr x4, [x0,40] - cbz w1, .L1845 + cbz w1, .L1849 adrp x1, .LANCHOR2 str wzr, [x0,56] add x2, x1, :lo12:.LANCHOR2 mov x21, x1 - ldr w3, [x2,1408] - cbnz w3, .L1845 + ldr w3, [x2,2944] + cbnz w3, .L1849 mov x20, x0 sub w19, w19, #1 - add x0, x2, 1416 - ldr x3, [x2,1120] + add x0, x2, 2952 + ldr x3, [x2,2656] uxth w19, w19 - ldr x1, [x2,1064] + ldr x1, [x2,2600] str x3, [x0,16] ubfiz x3, x19, 2, 16 str x1, [x0,8] ldr w3, [x4,x3] str w3, [x0,4] - cbz w3, .L1849 + cbz w3, .L1853 mov w1, 1 mov w2, w1 bl FlashReadPages - b .L1850 -.L1849: - ldrh w2, [x2,834] + b .L1854 +.L1853: + ldrh w2, [x2,2370] mov x0, x1 mov w1, 255 bl ftl_memset -.L1850: +.L1854: add x2, x21, :lo12:.LANCHOR2 mov x0, x20 mov w1, w19 - ldr x2, [x2,1424] + ldr x2, [x2,2960] bl FtlMapWritePage -.L1845: +.L1849: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -11323,91 +11383,96 @@ FtlMapBlkWriteDumpData: .global FtlVpcTblFlush .type FtlVpcTblFlush, %function FtlVpcTblFlush: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp,32] adrp x22, .LANCHOR2 + str x27, [sp,80] stp x19, x20, [sp,16] add x19, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w0, [x19,1408] - cbnz w0, .L1853 - ldr x21, [x19,1120] - add x20, x19, 3528 - ldr x1, [x19,1056] - str x1, [x19,1424] - str x21, [x19,1432] - ldrh w2, [x19,3904] - strh w2, [x21,2] - mov w2, -3932 - strh w2, [x21] - str w0, [x21,12] - ldr w2, [x19,3912] - str w2, [x21,4] - str w0, [x21,8] - mov w0, 19539 - ldrh w1, [x19,3616] - movk w0, 0x4654, lsl 16 - strh w1, [x20,14] - ldrh w1, [x19,3618] - ldrb w2, [x19,3622] - str w0, [x19,3528] - mov w0, 87 - orr w1, w2, w1, lsl 6 - strh w1, [x20,16] - ldrh w1, [x19,3664] - movk w0, 0x5000, lsl 16 - strh w1, [x20,18] - ldrh w1, [x19,3666] - str w0, [x20,4] - ldrb w2, [x19,3670] - ldrh w0, [x19,3910] - strh w0, [x20,8] - orr w1, w2, w1, lsl 6 - ldrh w0, [x19,778] - strb w0, [x20,10] - ldrb w0, [x19,3624] - strb w0, [x20,11] - strh w1, [x20,20] - ldrb w0, [x19,3672] - ldrh w1, [x19,3712] - strb w0, [x20,12] - strh w1, [x20,22] - ldrh w1, [x19,3714] - ldrb w0, [x19,3720] - strb w0, [x20,13] - ldr w0, [x19,908] - str w0, [x20,32] - ldr w0, [x19,876] - str w0, [x20,40] - ldr w0, [x19,880] - ldrb w2, [x19,3718] - str w0, [x20,36] - ldrh w0, [x19,952] - orr w1, w2, w1, lsl 6 - strh w0, [x20,44] - ldrh w0, [x19,954] - strh w0, [x20,46] - ldrh w2, [x19,834] - ldr x0, [x19,1424] - strh w1, [x20,24] + ldr w1, [x19,2944] + cbnz w1, .L1857 + ldr x0, [x19,2592] + adrp x25, .LANCHOR4 + str x0, [x19,2960] + add x0, x25, :lo12:.LANCHOR4 + ldr x21, [x19,2656] + add x20, x0, 712 + str x21, [x19,2968] + adrp x23, .LANCHOR0 + ldrh w3, [x0,1088] + strh w3, [x21,2] + mov w3, -3932 + strh w3, [x21] + str w1, [x21,12] + ldr w3, [x0,1096] + 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 + strh w2, [x20,14] + movk w1, 0x5000, lsl 16 + ldrh w2, [x0,802] + ldrb w3, [x0,806] + str w1, [x20,4] + ldrh w1, [x0,1094] + orr w2, w3, w2, lsl 6 + strh w1, [x20,8] + ldrh w1, [x19,2314] + strb w1, [x20,10] + ldrb w1, [x0,808] + strh w2, [x20,16] + strb w1, [x20,11] + ldrh w2, [x0,848] + ldrb w1, [x0,856] + strb w1, [x20,12] + add x1, x0, 896 + strh w2, [x20,18] + ldrh w2, [x0,850] + ldrb w3, [x0,854] + ldrh w0, [x0,896] + orr w2, w3, w2, lsl 6 + strh w0, [x20,22] + strh w2, [x20,20] + ldrh w0, [x1,2] + ldrb w2, [x1,6] + orr w0, w2, w0, lsl 6 + strh w0, [x20,24] + ldrb w0, [x1,8] mov w1, 255 + strb w0, [x20,13] + ldr w0, [x19,2444] + str w0, [x20,32] + ldr w0, [x19,2412] + str w0, [x20,40] + ldr w0, [x19,2416] + str w0, [x20,36] + ldrh w0, [x19,2488] + strh w0, [x20,44] + ldrh w0, [x19,2490] + strh w0, [x20,46] + ldrh w2, [x19,2370] + ldr x0, [x19,2960] bl ftl_memset - ldr x0, [x19,1424] + ldr x0, [x19,2960] mov x1, x20 mov w2, 48 - adrp x20, .LANCHOR0 + mov x20, x25 bl ftl_memcpy - ldr x0, [x19,1424] - ldrh w2, [x19,764] - ldr x1, [x19,1192] + ldr x0, [x19,2960] + ldrh w2, [x19,2300] + ldr x1, [x19,2728] add x0, x0, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x19,764] - add x1, x20, :lo12:.LANCHOR0 - ldr x3, [x19,1424] + ldrh w2, [x19,2300] + add x1, x23, :lo12:.LANCHOR0 + ldr x3, [x19,2960] uxth x0, w2 ldr x1, [x1,16] add x0, x0, 24 @@ -11416,109 +11481,111 @@ FtlVpcTblFlush: add w2, w2, 4 add x0, x3, x0, lsl 2 bl ftl_memcpy - ldrh w0, [x19,864] - cbz w0, .L1854 - ldrh w0, [x19,764] - ldrh w2, [x19,860] + ldrh w0, [x19,2400] + cbz w0, .L1858 + ldrh w0, [x19,2300] + ldrh w2, [x19,2396] lsr w1, w0, 3 add w0, w1, w0, lsl 1 - ldr x1, [x19,1424] + ldr x1, [x19,2960] add w0, w0, 52 lsl w2, w2, 2 and x0, x0, 65532 add x0, x1, x0 - ldr x1, [x19,1248] + ldr x1, [x19,2784] bl ftl_memcpy -.L1854: +.L1858: mov w0, 0 - mov w23, 0 + mov w24, 0 mov w25, 65535 add x19, x22, :lo12:.LANCHOR2 + add x20, x20, :lo12:.LANCHOR4 bl FtlUpdateVaildLpn -.L1855: - ldrh w1, [x19,3904] - ldr x0, [x19,1056] - ldrh w2, [x19,3906] - str x0, [x19,1424] - ldr x0, [x19,1120] - str x0, [x19,1432] +.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] orr w0, w2, w1, lsl 10 - str w0, [x19,1420] - ldrh w0, [x19,826] + str w0, [x19,2956] + ldrh w0, [x19,2362] sub w0, w0, #1 cmp w2, w0 - blt .L1856 - ldrh w25, [x19,3908] - strh wzr, [x19,3906] - strh w1, [x19,3908] + blt .L1860 + ldrh w25, [x20,1092] + strh wzr, [x20,1090] + strh w1, [x20,1092] bl FtlFreeSysBlkQueueOut - ldr w1, [x19,876] - str w1, [x19,3912] + ldr w1, [x19,2412] + str w1, [x20,1096] add w2, w1, 1 - str w2, [x19,876] + str w2, [x19,2412] ubfiz w2, w0, 10, 16 - str w2, [x19,1420] - strh w0, [x19,3904] + str w2, [x19,2956] + strh w0, [x20,1088] str w1, [x21,4] strh w0, [x21,2] -.L1856: - add x0, x20, :lo12:.LANCHOR0 +.L1860: + add x0, x23, :lo12:.LANCHOR0 ldrb w0, [x0,88] - cbz w0, .L1857 - ldr x0, [x19,1056] - ldrh w1, [x19,834] + cbz w0, .L1861 + ldr x0, [x19,2592] + ldrh w1, [x19,2370] bl js_hash str w0, [x21,12] -.L1857: +.L1861: mov w1, 1 - add x0, x19, 1416 + add x0, x19, 2952 mov w2, w1 mov w3, w1 bl FlashProgPages - ldrh w1, [x19,3906] - ldr w2, [x19,1416] + ldrh w1, [x20,1090] + ldr w2, [x19,2952] add w1, w1, 1 cmn w2, #1 uxth w1, w1 - strh w1, [x19,3906] - bne .L1858 + strh w1, [x20,1090] + bne .L1862 cmp w1, 1 - bne .L1859 - ldrh w1, [x19,826] + bne .L1863 + ldrh w1, [x19,2362] sub w1, w1, #1 - strh w1, [x19,3906] -.L1859: - add w23, w23, 1 - uxth w23, w23 - cmp w23, 3 - bls .L1855 + strh w1, [x20,1090] +.L1863: + add w24, w24, 1 + uxth w24, w24 + cmp w24, 3 + bls .L1859 add x22, x22, :lo12:.LANCHOR2 adrp x0, .LC44 add x0, x0, :lo12:.LC44 - mov w2, w23 - ldr w1, [x22,1420] + mov w2, w24 + ldr w1, [x22,2956] bl printk mov w0, 1 - str w0, [x22,1408] - b .L1853 -.L1858: + str w0, [x22,2944] + b .L1857 +.L1862: cmp w1, 1 - beq .L1855 + beq .L1859 cmp w2, 256 - beq .L1855 + beq .L1859 mov w0, 65535 cmp w25, w0 - beq .L1853 + beq .L1857 mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1853: +.L1857: 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 FtlVpcTblFlush, .-FtlVpcTblFlush .align 2 @@ -11528,457 +11595,462 @@ FtlScanSysBlk: stp x29, x30, [sp, -128]! mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - stp x25, x26, [sp,64] + adrp x22, .LANCHOR2 + stp x19, x20, [sp,16] + add x20, x22, :lo12:.LANCHOR2 + adrp x19, .LANCHOR4 stp x23, x24, [sp,48] + stp x25, x26, [sp,64] stp x27, x28, [sp,80] - strh wzr, [x20,3920] - mov x26, 56 - ldr w2, [x20,852] + add x21, x19, :lo12:.LANCHOR4 + strh wzr, [x20,2936] + ldr w2, [x20,2388] + mov x24, x22 + ldr x0, [x20,2800] mov w22, 65535 - ldr x0, [x20,1264] lsl w2, w2, 2 - strh wzr, [x20,1400] + strh wzr, [x21,1104] bl ftl_memset - ldr w2, [x20,852] + ldr w2, [x20,2388] mov w1, 0 - ldr x0, [x20,1200] + ldr x0, [x20,2736] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,844] + ldrh w2, [x20,2380] mov w1, 0 - ldr x0, [x20,1232] + ldr x0, [x20,2768] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,844] + ldrh w2, [x20,2380] mov w1, 0 - ldr x0, [x20,1216] + ldr x0, [x20,2752] lsl w2, w2, 1 bl ftl_memset - add x0, x20, 3904 + add x0, x21, 1088 mov w1, 255 mov w2, 16 bl ftl_memset - ldrh w21, [x20,764] -.L1869: - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,766] + ldrh w21, [x20,2300] +.L1873: + add x1, x24, :lo12:.LANCHOR2 + ldrh w0, [x1,2302] cmp w0, w21 - bls .L1910 + bls .L1914 mov x27, 0 - ldrh w3, [x1,756] - ldrh w2, [x1,836] + ldrh w4, [x1,2292] + ldrh w2, [x1,2372] mov w20, w27 mov x23, x1 -.L1911: - cmp w3, w27, uxth - bls .L1944 - add x0, x23, 784 +.L1915: + cmp w4, w27, uxth + bls .L1948 + add x0, x23, 2320 mov w1, w21 str x2, [x29,112] - str x3, [x29,120] + str x4, [x29,120] ldrb w0, [x0,x27] bl V2P_block uxth w28, w0 bl FtlBbmIsBadBlock - ldr x3, [x29,120] + ldr x4, [x29,120] ldr x2, [x29,112] - cbnz w0, .L1870 + cbnz w0, .L1874 mov w0, 56 - ldr x1, [x23,1000] + ldr x1, [x23,2536] lsl w28, w28, 10 - mov w4, 4 + mov w3, 4 umull x0, w20, w0 add x1, x1, x0 str w28, [x1,4] - ldr x1, [x23,1000] + ldr x1, [x23,2536] + ldr x5, [x23,2672] add x0, x1, x0 - ldr x1, [x23,1080] + ldr x1, [x23,2616] str x1, [x0,8] mul w1, w20, w2 add w20, w20, 1 - sdiv w1, w1, w4 + sdiv w1, w1, w3 uxth w20, w20 - ldr x4, [x23,1136] - add x1, x4, x1, sxtw 2 + add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L1870: +.L1874: add x27, x27, 1 - b .L1911 -.L1944: - cbz w20, .L1873 - add x0, x19, :lo12:.LANCHOR2 + b .L1915 +.L1948: + cbz w20, .L1877 + add x0, x24, :lo12:.LANCHOR2 mov w1, w20 mov w2, 1 mov x23, 0 mov w27, -1 - adrp x28, .LANCHOR0 - ldr x0, [x0,1000] + mov w28, 61604 + ldr x0, [x0,2536] bl FlashReadPages -.L1874: +.L1878: cmp w20, w23, uxth - bls .L1873 - add x0, x19, :lo12:.LANCHOR2 - mul x5, x23, x26 - ldr x0, [x0,1000] - add x1, x0, x5 - ldr w0, [x0,x5] - ldr w4, [x1,4] + bls .L1877 + mov x0, 56 + mul x6, x23, x0 + add x0, x24, :lo12:.LANCHOR2 + ldr x0, [x0,2536] + add x1, x0, x6 + ldr w0, [x0,x6] + ldr w5, [x1,4] cmn w0, #1 - ldr x25, [x1,16] - ubfx x24, x4, 10, 16 - bne .L1876 - mov w6, 16 -.L1875: - add x7, x19, :lo12:.LANCHOR2 - str x6, [x29,104] - str x7, [x29,112] - str x5, [x29,120] - ldr x0, [x7,1000] - add x0, x0, x5 + ldr x26, [x1,16] + ubfx x25, x5, 10, 16 + bne .L1880 + mov w7, 16 +.L1879: + add x8, x24, :lo12:.LANCHOR2 + str x7, [x29,104] + str x8, [x29,112] + str x6, [x29,120] + ldr x0, [x8,2536] + add x0, x0, x6 ldr w1, [x0,4] add w1, w1, 1 str w1, [x0,4] mov w1, 1 - ldr x0, [x7,1000] + ldr x0, [x8,2536] mov w2, w1 - add x0, x0, x5 + add x0, x0, x6 bl FlashReadPages - ldrh w0, [x25] - ldr x7, [x29,112] + ldrh w0, [x26] + ldr x8, [x29,112] cmp w0, w22 - ldr x5, [x29,120] - ldr x6, [x29,104] - ldr x0, [x7,1000] - bne .L1877 - str w27, [x0,x5] - b .L1876 -.L1877: - ldr w0, [x0,x5] - cmn w0, #1 - bne .L1876 - sub w6, w6, #1 - uxth w6, w6 - cbnz w6, .L1875 -.L1876: - add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,1000] - ldr w1, [x1,x5] - cmn w1, #1 - beq .L1879 - ldr w0, [x0,876] - cmn w0, #1 - beq .L1880 - ldr w1, [x25,4] - cmp w0, w1 - bhi .L1881 -.L1880: - ldr w0, [x25,4] - cmn w0, #1 - beq .L1881 - add x1, x19, :lo12:.LANCHOR2 - add w0, w0, 1 - str w0, [x1,876] + ldr x6, [x29,120] + ldr x7, [x29,104] + ldr x0, [x8,2536] + bne .L1881 + str w27, [x0,x6] + b .L1880 .L1881: - ldrh w0, [x25] - mov w1, 61604 - cmp w0, w1 + ldr w0, [x0,x6] + cmn w0, #1 + bne .L1880 + sub w7, w7, #1 + uxth w7, w7 + cbnz w7, .L1879 +.L1880: + add x0, x24, :lo12:.LANCHOR2 + ldr x1, [x0,2536] + ldr w1, [x1,x6] + cmn w1, #1 beq .L1883 - bhi .L1884 + ldr w0, [x0,2412] + cmn w0, #1 + beq .L1884 + ldr w1, [x26,4] + cmp w0, w1 + bhi .L1885 +.L1884: + ldr w0, [x26,4] + cmn w0, #1 + beq .L1885 + add x1, x24, :lo12:.LANCHOR2 + add w0, w0, 1 + str w0, [x1,2412] +.L1885: + ldrh w0, [x26] + cmp w0, w28 + beq .L1887 + bhi .L1888 mov w1, 61574 cmp w0, w1 - bne .L1882 - add x5, x19, :lo12:.LANCHOR2 - ldrh w6, [x5,844] - ldrh w0, [x5,1400] - sub w2, w6, #1 - ldr x5, [x5,1232] + bne .L1886 + add x6, x24, :lo12:.LANCHOR2 + ldrh w7, [x6,2380] + ldrh w0, [x6,2936] + sub w2, w7, #1 + ldr x6, [x6,2768] sxth x1, w2 sub w2, w2, w0 - b .L1897 -.L1884: + b .L1901 +.L1888: mov w1, 61634 cmp w0, w1 - beq .L1886 + beq .L1890 cmp w0, w22 - bne .L1882 - mov w0, w24 - b .L1943 -.L1886: - add x5, x19, :lo12:.LANCHOR2 - ldr w6, [x5,852] - ldrh w0, [x5,3920] - ldr x5, [x5,1264] + bne .L1886 + mov w0, w25 + b .L1947 +.L1890: + add x7, x24, :lo12:.LANCHOR2 + add x0, x19, :lo12:.LANCHOR4 + ldr w6, [x7,2388] + ldrh w0, [x0,1104] + ldr x7, [x7,2800] uxth w2, w6 sub w1, w2, #1 sub w2, w2, w0 sub w2, w2, #1 sxth x1, w1 sxth w2, w2 -.L1888: +.L1892: cmp w1, w2 - ble .L1945 - sbfiz x7, x1, 2, 32 - ldr w10, [x25,4] - sxth x8, w1 - ldr w9, [x5,x7] - cmp w10, w9 - bls .L1889 - ldr w2, [x5] - cbnz w2, .L1890 + ble .L1949 + sbfiz x8, x1, 2, 32 + ldr w11, [x26,4] + sxth x9, w1 + ldr w10, [x7,x8] + cmp w11, w10 + bls .L1893 + ldr w2, [x7] + cbnz w2, .L1894 cmp w0, w6 - beq .L1890 - add x2, x19, :lo12:.LANCHOR2 + beq .L1894 + add x2, x19, :lo12:.LANCHOR4 add w0, w0, 1 - strh w0, [x2,3920] -.L1890: + strh w0, [x2,1104] +.L1894: mov w0, 0 -.L1891: +.L1895: cmp w0, w1 - beq .L1946 - add x5, x19, :lo12:.LANCHOR2 + beq .L1950 + add x6, x24, :lo12:.LANCHOR2 sxtw x2, w0 - lsl x6, x2, 2 + lsl x7, x2, 2 lsl x2, x2, 1 add w0, w0, 1 - ldr x9, [x5,1264] + ldr x10, [x6,2800] sxth w0, w0 - add x10, x9, x6 - ldr w10, [x10,4] - str w10, [x9,x6] - ldr x5, [x5,1200] - add x6, x5, x2 - ldrh w6, [x6,2] - strh w6, [x5,x2] - b .L1891 -.L1946: - add x2, x19, :lo12:.LANCHOR2 - ldr w5, [x25,4] - ldr x0, [x2,1264] - str w5, [x0,x7] - ldr x0, [x2,1200] - strh w24, [x0,x8,lsl 1] - tbz w1, #31, .L1893 - b .L1882 -.L1889: + add x11, x10, x7 + ldr w11, [x11,4] + str w11, [x10,x7] + ldr x6, [x6,2736] + 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 .L1888 -.L1945: - tbz w1, #31, .L1926 - b .L1882 -.L1893: - ldrh w0, [x2,3920] - ldr w2, [x2,852] + 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 .L1882 -.L1926: - add x2, x19, :lo12:.LANCHOR2 + bgt .L1886 +.L1930: + add x2, x19, :lo12:.LANCHOR4 add w0, w0, 1 - ldr w3, [x25,4] - strh w0, [x2,3920] - ldr x0, [x2,1264] - str w3, [x0,x1,lsl 2] - ldr x0, [x2,1200] - b .L1942 -.L1903: - sbfiz x7, x1, 2, 32 - ldr w10, [x25,4] - sxth x8, w1 - ldr w9, [x5,x7] - cmp w10, w9 - bhi .L1947 + 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 -.L1897: +.L1901: cmp w1, w2 - bgt .L1903 - b .L1902 -.L1947: - ldr w2, [x5] - cbnz w2, .L1899 - cmp w0, w6 - beq .L1899 - add x2, x19, :lo12:.LANCHOR2 + 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,1400] -.L1899: + strh w0, [x2,2936] +.L1903: mov w0, 0 -.L1900: +.L1904: cmp w0, w1 - beq .L1948 - add x5, x19, :lo12:.LANCHOR2 + beq .L1952 + add x6, x24, :lo12:.LANCHOR2 sxtw x2, w0 - lsl x6, x2, 2 + lsl x7, x2, 2 lsl x2, x2, 1 add w0, w0, 1 - ldr x9, [x5,1232] + ldr x10, [x6,2768] sxth w0, w0 - add x10, x9, x6 - ldr w10, [x10,4] - str w10, [x9,x6] - ldr x5, [x5,1216] - add x6, x5, x2 - ldrh w6, [x6,2] - strh w6, [x5,x2] - b .L1900 -.L1948: - add x0, x19, :lo12:.LANCHOR2 - ldr w5, [x25,4] - ldr x2, [x0,1232] - str w5, [x2,x7] - ldr x0, [x0,1216] - strh w24, [x0,x8,lsl 1] -.L1902: - tbnz w1, #31, .L1882 - add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,844] - ldrh w5, [x0,1400] + 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: + add x0, x24, :lo12:.LANCHOR2 + ldr w6, [x26,4] + ldr x2, [x0,2768] + str w6, [x2,x8] + ldr x0, [x0,2752] + strh w25, [x0,x9,lsl 1] +.L1906: + tbnz w1, #31, .L1886 + add x0, x24, :lo12:.LANCHOR2 + ldrh w2, [x0,2380] + ldrh w6, [x0,2936] sub w2, w2, #1 - sub w2, w2, w5 + sub w2, w2, w6 cmp w1, w2, sxth - bgt .L1882 - ldr x2, [x0,1232] - add w5, w5, 1 - ldr w3, [x25,4] - strh w5, [x0,1400] - str w3, [x2,x1,lsl 2] - ldr x0, [x0,1216] -.L1942: - strh w24, [x0,x1,lsl 1] - b .L1882 -.L1883: - add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 3904 - ldrh w2, [x0,3904] + bgt .L1886 + ldr x2, [x0,2768] + add w6, w6, 1 + ldr w4, [x26,4] + strh w6, [x0,2936] + str w4, [x2,x1,lsl 2] + ldr x0, [x0,2752] +.L1946: + strh w25, [x0,x1,lsl 1] + b .L1886 +.L1887: + add x0, x19, :lo12:.LANCHOR4 + add x1, x0, 1088 + ldrh w2, [x0,1088] cmp w2, w22 - bne .L1904 - strh w24, [x0,3904] - ldr w0, [x25,4] + bne .L1908 + strh w25, [x0,1088] + ldr w0, [x26,4] str w0, [x1,8] - b .L1882 -.L1904: + b .L1886 +.L1908: ldrh w0, [x1,4] cmp w0, w22 - beq .L1905 + beq .L1909 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1905: - add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x25,4] - add x0, x1, 3904 - ldr w5, [x0,8] - cmp w5, w2 - bcs .L1906 - ldrh w2, [x1,3904] +.L1909: + add x1, x19, :lo12:.LANCHOR4 + ldr w2, [x26,4] + add x0, x1, 1088 + ldr w6, [x0,8] + cmp w6, w2 + bcs .L1910 + ldrh w2, [x1,1088] strh w2, [x0,4] - strh w24, [x1,3904] - ldr w1, [x25,4] + strh w25, [x1,1088] + ldr w1, [x26,4] str w1, [x0,8] - b .L1882 -.L1906: - strh w24, [x0,4] - b .L1882 -.L1879: - add x0, x28, :lo12:.LANCHOR0 - ldrb w1, [x0,4044] - mov w0, w24 - cbz w1, .L1907 -.L1943: + b .L1886 +.L1910: + strh w25, [x0,4] + b .L1886 +.L1883: + ldrb w1, [x0,1228] + mov w0, w25 + cbz w1, .L1911 +.L1947: mov w1, 0 -.L1907: +.L1911: bl FtlFreeSysBlkQueueIn -.L1882: +.L1886: add x23, x23, 1 - b .L1874 -.L1873: + b .L1878 +.L1877: add w21, w21, 1 uxth w21, w21 - b .L1869 -.L1910: - ldr x2, [x1,1200] + b .L1873 +.L1914: + ldr x2, [x1,2736] ldrh w0, [x2] - cbz w0, .L1912 -.L1915: - add x1, x19, :lo12:.LANCHOR2 - ldr x2, [x1,1216] + cbz w0, .L1916 +.L1919: + add x1, x24, :lo12:.LANCHOR2 + ldr x2, [x1,2752] ldrh w0, [x2] - cbz w0, .L1913 - b .L1936 -.L1912: - ldrh w3, [x1,3920] - cbz w3, .L1915 - ldr w1, [x1,852] + cbz w0, .L1917 + b .L1940 .L1916: + add x19, x19, :lo12:.LANCHOR4 + ldrh w4, [x19,1104] + cbz w4, .L1919 + ldr w1, [x1,2388] +.L1920: cmp w0, w1 - bcs .L1915 - ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1917 - mov w6, w0 -.L1918: - add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,852] - cmp w0, w2 - bcs .L1915 - sxtw x5, w0 - sub w2, w0, w6 - ldr x4, [x1,1200] - lsl x3, x5, 1 - sxtw x2, w2 - add w0, w0, 1 - ldrh w7, [x4,x3] - sxth w0, w0 - strh w7, [x4,x2,lsl 1] - ldr x4, [x1,1264] - ldr w5, [x4,x5,lsl 2] - str w5, [x4,x2,lsl 2] - ldr x1, [x1,1200] - strh wzr, [x1,x3] - b .L1918 -.L1917: - add w0, w0, 1 - sxth w0, w0 - b .L1916 -.L1913: - ldrh w3, [x1,1400] - cbz w3, .L1936 - ldrh w1, [x1,844] -.L1921: - cmp w0, w1 - mov w6, w0 - bge .L1936 - ldrh w3, [x2,w0,sxtw 1] - cbz w3, .L1922 -.L1923: - add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,844] - cmp w0, w2 - bge .L1936 - sxtw x5, w0 - sub w2, w0, w6 - ldr x4, [x1,1216] - lsl x3, x5, 1 - sxtw x2, w2 - add w0, w0, 1 - ldrh w7, [x4,x3] - sxth w0, w0 - strh w7, [x4,x2,lsl 1] - ldr x4, [x1,1232] - ldr w5, [x4,x5,lsl 2] - str w5, [x4,x2,lsl 2] - ldr x1, [x1,1216] - strh wzr, [x1,x3] - b .L1923 + bcs .L1919 + ldrh w4, [x2,w0,sxtw 1] + cbz w4, .L1921 + mov w7, w0 .L1922: + add x1, x24, :lo12:.LANCHOR2 + ldr w2, [x1,2388] + cmp w0, w2 + bcs .L1919 + sxtw x6, w0 + sub w2, w0, w7 + ldr x5, [x1,2736] + 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,2800] + ldr w6, [x5,x6,lsl 2] + str w6, [x5,x2,lsl 2] + ldr x1, [x1,2736] + strh wzr, [x1,x4] + b .L1922 +.L1921: add w0, w0, 1 sxth w0, w0 - b .L1921 -.L1936: + 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: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11998,26 +12070,26 @@ FtlLoadEctTbl: str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,1152] - ldr x2, [x19,1168] + ldrh w1, [x19,2688] + ldr x2, [x19,2704] bl FtlVendorPartRead - ldr x0, [x19,1168] + ldr x0, [x19,2704] ldr w1, [x0] mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L1950 + beq .L1954 adrp x0, .LC45 adrp x1, .LC46 add x1, x1, :lo12:.LC46 add x0, x0, :lo12:.LC45 bl printk - ldrh w2, [x19,1152] + ldrh w2, [x19,2688] mov w1, 0 - ldr x0, [x19,1168] + ldr x0, [x19,2704] lsl w2, w2, 9 bl ftl_memset -.L1950: +.L1954: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -12030,10 +12102,10 @@ ftl_set_blk_mode: stp x29, x30, [sp, -16]! uxth w0, w0 add x29, sp, 0 - cbz w1, .L1952 + cbz w1, .L1956 bl ftl_set_blk_mode.part.17 - b .L1951 -.L1952: + b .L1955 +.L1956: adrp x1, .LANCHOR0+16 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -12043,7 +12115,7 @@ ftl_set_blk_mode: ldr w1, [x3,x2] bic w0, w1, w0 str w0, [x3,x2] -.L1951: +.L1955: ldp x29, x30, [sp], 16 ret .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -12071,103 +12143,111 @@ FtlCheckVpc: add x29, sp, 0 add x1, x1, 16 add x0, x0, :lo12:.LC47 - str x25, [sp,64] stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 + adrp x19, .LANCHOR4 + mov w20, 0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - add x19, x20, :lo12:.LANCHOR2 + stp x25, x26, [sp,64] + add x21, x19, :lo12:.LANCHOR4 bl printk - add x0, x19, 3928 + add x0, x21, 1112 mov w1, 0 mov x2, 8192 - mov w21, 0 + adrp x23, .LANCHOR2 bl memset -.L1956: - ldr w0, [x19,1404] - cmp w21, w0 - bcs .L1973 - mov w0, w21 +.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 mov w2, 0 bl log2phys ldr w0, [x29,92] cmn w0, #1 - beq .L1957 + beq .L1961 lsr w0, w0, 10 bl P2V_block_in_plane uxth w0, w0 - add x2, x19, 3928 + add x2, x21, 1112 ldrh w1, [x2,w0,sxtw 1] add w1, w1, 1 strh w1, [x2,w0,sxtw 1] -.L1957: - add w21, w21, 1 - b .L1956 -.L1973: +.L1961: + add w20, w20, 1 + b .L1960 +.L1977: adrp x21, .LC48 - mov w19, 0 - add x20, x20, :lo12:.LANCHOR2 + mov w20, 0 + add x23, x19, :lo12:.LANCHOR4 add x21, x21, :lo12:.LC48 -.L1959: - ldrh w0, [x20,764] - cmp w0, w19 - bls .L1974 - ubfiz x0, x19, 1, 16 - ldr x1, [x20,1192] +.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, x20, 3928 - ldrh w3, [x0,w19,sxtw 1] + add x0, x23, 1112 + ldrh w3, [x0,w20,sxtw 1] cmp w2, w3 - beq .L1960 + beq .L1964 mov x0, x21 - mov w1, w19 + mov w1, w20 bl printk -.L1960: - add w19, w19, 1 - uxth w19, w19 - b .L1959 -.L1974: - ldr x0, [x20,3600] - cbz x0, .L1955 - ldr x19, [x20,1288] - adrp x22, .LC49 - ldrh w23, [x20,3608] +.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] mov w21, 0 sub x19, x0, x19 mov x0, -6148914691236517206 asr x19, x19, 1 - add x22, x22, :lo12:.LC49 - mov w24, 6 - mov w25, 65535 + add x23, x23, :lo12:.LC49 + mov x20, x1 + mov w25, 6 madd x19, x0, x19, x19 + mov w26, 65535 uxth w19, w19 -.L1963: - cmp w21, w23 - beq .L1955 +.L1967: + cmp w21, w24 + beq .L1959 + add x1, x22, :lo12:.LANCHOR2 ubfiz x0, x19, 1, 16 - ldr x1, [x20,1192] + ldr x1, [x1,2728] ldrh w2, [x1,x0] - cbz w2, .L1964 - add x3, x20, 3928 - mov x0, x22 + cbz w2, .L1968 + add x3, x20, 1112 + mov x0, x23 mov w1, w19 ldrh w3, [x3,w19,sxtw 1] bl printk -.L1964: - umull x19, w19, w24 - ldr x0, [x20,1288] +.L1968: + add x0, x22, :lo12:.LANCHOR2 + umull x19, w19, w25 + ldr x0, [x0,2824] ldrh w19, [x0,x19] - cmp w19, w25 - beq .L1955 + cmp w19, w26 + beq .L1959 add w21, w21, 1 uxth w21, w21 - b .L1963 -.L1955: + b .L1967 +.L1959: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldr x25, [sp,64] + ldp x25, x26, [sp,64] ldp x29, x30, [sp], 96 ret .size FtlCheckVpc, .-FtlCheckVpc @@ -12184,23 +12264,23 @@ FtlDumpSysBlock: stp x21, x22, [sp,48] stp x23, x24, [sp,64] str x25, [sp,80] - add x19, x2, 1416 + add x19, x2, 2952 uxth w23, w0 adrp x22, .LC50 - ldr x0, [x2,1056] + ldr x0, [x2,2592] adrp x25, .LC51 str x0, [x19,8] lsl w24, w23, 10 - ldr x0, [x2,1120] + ldr x0, [x2,2656] mov w20, 0 str x0, [x19,16] mov x21, x2 add x22, x22, :lo12:.LC50 add x25, x25, :lo12:.LC51 -.L1976: - ldrh w0, [x21,826] +.L1980: + ldrh w0, [x21,2362] cmp w20, w0 - bge .L1982 + bge .L1986 mov w1, 1 orr w0, w20, w24 mov w2, w1 @@ -12223,17 +12303,17 @@ FtlDumpSysBlock: ldr x0, [x19,16] ldr w0, [x0] cmn w0, #1 - beq .L1977 - ldr x1, [x21,1056] + beq .L1981 + ldr x1, [x21,2592] mov x0, x25 mov w2, 4 mov w3, 768 bl rknand_print_hex -.L1977: +.L1981: add w20, w20, 1 sxth w20, w20 - b .L1976 -.L1982: + b .L1980 +.L1986: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -12261,47 +12341,47 @@ Ftlscanalldata: stp x19, x20, [sp,32] add x21, x21, :lo12:.LC53 mov w20, 0 - add x19, x22, 1416 + add x19, x22, 2952 bl printk -.L1984: +.L1988: add x0, x23, :lo12:.LANCHOR2 - ldr w0, [x0,1404] + ldr w0, [x0,2940] cmp w20, w0 - bcs .L1991 + bcs .L1995 mov w0, w20 add x1, x29, 76 mov w2, 0 bl log2phys and w0, w20, 2047 - cbnz w0, .L1985 + cbnz w0, .L1989 ldr w2, [x29,76] mov x0, x21 mov w1, w20 bl printk -.L1985: +.L1989: ldr w0, [x29,76] cmn w0, #1 - beq .L1987 + beq .L1991 str w0, [x19,4] mov w1, 1 - ldr x0, [x22,1056] + ldr x0, [x22,2592] mov w2, 0 str x0, [x19,8] mov x0, x19 - ldr x24, [x22,1120] + ldr x24, [x22,2656] str w20, [x19,24] str x24, [x19,16] str wzr, [x19] bl FlashReadPages ldr w0, [x19] cmn w0, #1 - beq .L1988 + beq .L1992 cmp w0, 256 - beq .L1988 + beq .L1992 ldr w0, [x24,8] cmp w0, w20 - beq .L1987 -.L1988: + beq .L1991 +.L1992: ldr x7, [x19,8] mov w1, w20 ldr x6, [x19,16] @@ -12316,10 +12396,10 @@ Ftlscanalldata: ldr w6, [x6,12] ldr w7, [x7] bl printk -.L1987: - add w20, w20, 1 - b .L1984 .L1991: + add w20, w20, 1 + b .L1988 +.L1995: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -12335,33 +12415,33 @@ dump_map_info: sub sp, sp, #128 stp x29, x30, [sp,16] add x29, sp, 16 - stp x21, x22, [sp,48] - adrp x22, .LANCHOR2 - add x0, x22, :lo12:.LANCHOR2 + stp x19, x20, [sp,32] + adrp x19, .LANCHOR2 + add x0, x19, :lo12:.LANCHOR2 stp x25, x26, [sp,80] stp x23, x24, [sp,64] stp x27, x28, [sp,96] - stp x19, x20, [sp,32] + stp x21, x22, [sp,48] adrp x24, .LC55 mov w25, 56 - ldrh w21, [x0,764] + ldrh w22, [x0,2300] mov w26, 4 mov x27, 56 add x24, x24, :lo12:.LC55 -.L1993: - add x19, x22, :lo12:.LANCHOR2 - ldrh w0, [x19,766] - cmp w0, w21 - bls .L2006 +.L1997: + add x20, x19, :lo12:.LANCHOR2 + ldrh w0, [x20,2302] + cmp w0, w22 + bls .L2010 mov x23, 0 - ldrh w3, [x19,756] - ldrh w2, [x19,836] - mov w20, w23 -.L2002: + ldrh w3, [x20,2292] + ldrh w2, [x20,2372] + mov w21, w23 +.L2006: cmp w3, w23, uxth - bls .L2007 - add x0, x19, 784 - mov w1, w21 + bls .L2011 + add x0, x20, 2320 + mov w1, w22 str x2, [x29,96] str x3, [x29,104] ldrb w0, [x0,x23] @@ -12370,41 +12450,41 @@ dump_map_info: bl FtlBbmIsBadBlock ldr x3, [x29,104] ldr x2, [x29,96] - cbnz w0, .L1994 - umull x0, w20, w25 - ldr x1, [x19,1000] + cbnz w0, .L1998 + umull x0, w21, w25 + ldr x1, [x20,2536] lsl w28, w28, 10 add x1, x1, x0 str w28, [x1,4] - ldr x1, [x19,1000] - ldr x4, [x19,1136] + ldr x1, [x20,2536] + ldr x4, [x20,2672] add x0, x1, x0 - ldr x1, [x19,1080] + ldr x1, [x20,2616] str x1, [x0,8] - mul w1, w20, w2 - add w20, w20, 1 + mul w1, w21, w2 + add w21, w21, 1 sdiv w1, w1, w26 - uxth w20, w20 + uxth w21, w21 add x1, x4, x1, sxtw 2 str x1, [x0,16] -.L1994: - add x23, x23, 1 - b .L2002 -.L2007: - cbz w20, .L1997 - add x0, x22, :lo12:.LANCHOR2 - mov w1, w20 - mov w2, 1 - mov x19, 0 - ldr x0, [x0,1000] - bl FlashReadPages .L1998: - cmp w20, w19, uxth - bls .L1997 - add x0, x22, :lo12:.LANCHOR2 - ldr x0, [x0,1000] - madd x0, x19, x27, x0 - add x19, x19, 1 + add x23, x23, 1 + b .L2006 +.L2011: + cbz w21, .L2001 + add x0, x19, :lo12:.LANCHOR2 + mov w1, w21 + mov w2, 1 + mov x20, 0 + ldr x0, [x0,2536] + bl FlashReadPages +.L2002: + cmp w21, w20, uxth + bls .L2001 + add x0, x19, :lo12:.LANCHOR2 + ldr x0, [x0,2536] + madd x0, x20, x27, x0 + add x20, x20, 1 ldr x7, [x0,8] ldr x6, [x0,16] ldr w2, [x0,4] @@ -12418,73 +12498,76 @@ dump_map_info: ldr w7, [x7] ldr w6, [x6,12] bl printk - b .L1998 -.L1997: - add w21, w21, 1 - uxth w21, w21 - b .L1993 -.L2006: - adrp x23, .LC56 - mov w21, 0 - add x22, x19, 1416 - add x23, x23, :lo12:.LC56 + b .L2002 .L2001: - ldrh w0, [x19,3920] - cmp w21, w0 - bge .L2004 - sbfiz x24, x21, 1, 32 - mov w20, 0 + add w22, w22, 1 + uxth w22, w22 + b .L1997 +.L2010: + adrp x23, .LC56 + mov w22, 0 + adrp x26, .LANCHOR4 + add x25, x20, 2952 + add x23, x23, :lo12:.LC56 .L2005: - ldrh w0, [x19,826] - cmp w20, w0 + add x1, x26, :lo12:.LANCHOR4 + ldrh w1, [x1,1104] + cmp w22, w1 bge .L2008 - ldr x0, [x19,1200] + sbfiz x24, x22, 1, 32 + mov w21, 0 +.L2009: + ldrh w0, [x20,2362] + cmp w21, w0 + bge .L2012 + ldr x0, [x20,2736] + ldrh w1, [x0,x24] + mov x0, x25 + orr w1, w21, w1, lsl 10 + str w1, [x25,4] mov w1, 1 + add w21, w21, 1 mov w2, w1 - ldrh w0, [x0,x24] - orr w0, w20, w0, lsl 10 - str w0, [x22,4] - mov x0, x22 - add w20, w20, 1 + sxth w21, w21 bl FlashReadPages - sxth w20, w20 - ldr x0, [x22,8] - ldr x1, [x19,1200] - ldr x7, [x22,16] - ldr w2, [x0] - ldrh w1, [x1,x24] - str w2, [sp] - ldr w0, [x0,4] + ldr x2, [x25,8] + ldr x0, [x20,2736] + ldr x7, [x25,16] + ldrh w1, [x0,x24] + ldr w0, [x2] + str w0, [sp] + ldr w0, [x2,4] str w0, [sp,8] mov x0, x23 ldr w4, [x7] ldr w5, [x7,4] ldr w6, [x7,8] - ldr w2, [x22] - ldr w3, [x22,4] + ldr w2, [x25] + ldr w3, [x25,4] ldr w7, [x7,12] bl printk + b .L2009 +.L2012: + add w22, w22, 1 + sxth w22, w22 b .L2005 .L2008: - add w21, w21, 1 - sxth w21, w21 - b .L2001 -.L2004: - ldr x1, [x19,1200] + add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC57 - ldr w3, [x19,852] add x0, x0, :lo12:.LC57 mov w2, 2 + ldr x1, [x19,2736] + ldr w3, [x19,2388] bl rknand_print_hex - ldr x1, [x19,1248] + ldr x1, [x19,2784] adrp x0, .LC58 - ldrh w3, [x19,860] + ldrh w3, [x19,2396] add x0, x0, :lo12:.LC58 mov w2, 4 bl rknand_print_hex - ldr x1, [x19,1256] + ldr x1, [x19,2792] adrp x0, .LC59 - ldrh w3, [x19,860] + ldrh w3, [x19,2396] add x0, x0, :lo12:.LC59 mov w2, 4 bl rknand_print_hex @@ -12525,15 +12608,15 @@ FtlMapTblRecovery: str x20, [x29,128] add x6, x20, :lo12:.LANCHOR2 str wzr, [x27,52] - add x4, x6, 1416 + add x4, x6, 2952 str wzr, [x27,48] mov x20, x6 mov x25, x4 - ldr x0, [x6,1056] - ldr x21, [x6,1120] - str x0, [x6,1424] + ldr x0, [x6,2592] + ldr x21, [x6,2656] + str x0, [x6,2960] mov w0, -1 - str x21, [x6,1432] + str x21, [x6,2968] strh w0, [x27] strh w0, [x27,2] mov w0, 1 @@ -12541,14 +12624,14 @@ FtlMapTblRecovery: ldr w0, [x29,136] sub w0, w0, #1 str w0, [x29,116] -.L2010: +.L2014: ldr w0, [x29,136] cmp w19, w0 - bge .L2028 + bge .L2032 ldr w0, [x29,116] sxtw x28, w19 cmp w19, w0 - bne .L2011 + bne .L2015 lsl x0, x28, 1 mov w1, 1 add x25, x23, x0 @@ -12565,10 +12648,10 @@ FtlMapTblRecovery: str w0, [x27,48] ldr x0, [x29,128] add x23, x0, :lo12:.LANCHOR2 - add x28, x23, 1416 -.L2012: + add x28, x23, 2952 +.L2016: cmp w20, w19 - bge .L2028 + bge .L2032 ldrh w0, [x25] mov w1, 1 mov w2, w1 @@ -12578,57 +12661,57 @@ FtlMapTblRecovery: bl FlashReadPages add x0, x26, :lo12:.LANCHOR0 ldrb w0, [x0,88] - cbz w0, .L2013 + cbz w0, .L2017 ldr x0, [x28,16] ldr w2, [x0,12] - cbz w2, .L2013 + cbz w2, .L2017 ldr x0, [x28,8] - ldrh w1, [x23,834] + ldrh w1, [x23,2370] str x2, [x29,136] bl js_hash ldr x2, [x29,136] cmp w2, w0 - beq .L2013 + beq .L2017 mov w0, -1 str w0, [x28] -.L2013: +.L2017: ldr w0, [x28] cmn w0, #1 - beq .L2014 + beq .L2018 ldrh w0, [x21,8] cmp w0, w24 - bcs .L2014 + bcs .L2018 ldrh w2, [x21] ldrh w1, [x27,4] cmp w2, w1 - bne .L2014 + bne .L2018 ubfiz x0, x0, 2, 16 ldr w1, [x28,4] str w1, [x22,x0] -.L2014: +.L2018: add w4, w20, 1 sxth w20, w4 - b .L2012 -.L2028: + b .L2016 +.L2032: 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,826] + ldrh w0, [x20,2362] cmp w1, w0 - bne .L2017 + bne .L2021 mov x0, x27 bl ftl_map_blk_alloc_new_blk - b .L2017 -.L2011: - ldr x0, [x20,1056] + b .L2021 +.L2015: + ldr x0, [x20,2592] str x0, [x25,8] lsl x0, x28, 1 add x1, x23, x0 str x1, [x29,120] ldrh w1, [x23,x0] - ldrh w0, [x20,826] + ldrh w0, [x20,2362] sub w0, w0, #1 orr w0, w0, w1, lsl 10 mov w1, 1 @@ -12638,41 +12721,41 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x25] cmn w0, #1 - beq .L2029 + beq .L2033 ldrh w1, [x21] mov w28, 0 ldrh w0, [x27,4] cmp w1, w0 - bne .L2050 + bne .L2054 ldrh w1, [x21,8] mov w0, 64245 cmp w1, w0 - bne .L2050 + bne .L2054 mov w5, w28 -.L2019: - ldrh w0, [x20,826] +.L2023: + ldrh w0, [x20,2362] sub w0, w0, #1 cmp w5, w0 - bge .L2022 - ldr x2, [x20,1056] + bge .L2026 + ldr x2, [x20,2592] sbfiz x1, x5, 3, 32 ldrh w0, [x2,x1] cmp w0, w24 - bcs .L2020 + bcs .L2024 add x1, x2, x1 ubfiz x0, x0, 2, 16 ldr w1, [x1,4] str w1, [x22,x0] -.L2020: +.L2024: add w5, w5, 1 sxth w5, w5 - b .L2019 -.L2029: + b .L2023 +.L2033: mov w28, 0 -.L2050: - ldrh w0, [x20,826] +.L2054: + ldrh w0, [x20,2362] cmp w28, w0 - bge .L2022 + bge .L2026 ldr x0, [x29,120] mov w1, 1 mov w2, w1 @@ -12684,42 +12767,42 @@ FtlMapTblRecovery: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,88] - cbz w0, .L2023 + cbz w0, .L2027 ldr x0, [x25,16] ldr w2, [x0,12] - cbz w2, .L2023 + cbz w2, .L2027 ldr x0, [x25,8] - ldrh w1, [x20,834] + ldrh w1, [x20,2370] str x2, [x29,104] bl js_hash ldr x2, [x29,104] cmp w2, w0 - beq .L2023 + beq .L2027 mov w0, -1 str w0, [x25] -.L2023: +.L2027: ldr w0, [x25] cmn w0, #1 - beq .L2024 + beq .L2028 ldrh w0, [x21,8] cmp w0, w24 - bcs .L2024 + bcs .L2028 ldrh w2, [x21] ldrh w1, [x27,4] cmp w2, w1 - bne .L2024 + bne .L2028 ubfiz x0, x0, 2, 16 ldr w1, [x25,4] str w1, [x22,x0] -.L2024: +.L2028: add w5, w28, 1 sxth w28, w5 - b .L2050 -.L2022: + b .L2054 +.L2026: add w19, w19, 1 sxth w19, w19 - b .L2010 -.L2017: + b .L2014 +.L2021: mov x0, x27 bl ftl_map_blk_gc mov x0, x27 @@ -12737,25 +12820,27 @@ FtlMapTblRecovery: .global FtlLoadVonderInfo .type FtlLoadVonderInfo, %function FtlLoadVonderInfo: + adrp x0, .LANCHOR4 adrp x1, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR4 add x1, x1, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! - add x0, x1, 3832 + add x0, x0, 1016 add x29, sp, 0 - ldrh w2, [x1,844] + ldrh w2, [x1,2380] strh w2, [x0,10] mov w2, -3962 strh w2, [x0,4] - ldrh w2, [x1,1400] + ldrh w2, [x1,2936] strh w2, [x0,8] - ldrh w2, [x1,846] + ldrh w2, [x1,2382] strh w2, [x0,6] - ldr x2, [x1,1216] + ldr x2, [x1,2752] str x2, [x0,16] - ldr x2, [x1,1232] + ldr x2, [x1,2768] str x2, [x0,24] - ldr x2, [x1,1224] - ldr x1, [x1,1240] + ldr x2, [x1,2760] + ldr x1, [x1,2776] str x2, [x0,32] str x1, [x0,40] bl FtlMapTblRecovery @@ -12773,33 +12858,33 @@ FtlL2PDataInit: stp x19, x20, [sp,16] adrp x20, .LANCHOR2 add x19, x20, :lo12:.LANCHOR2 - ldr w2, [x19,852] - ldr x0, [x19,1208] + ldr w2, [x19,2388] + ldr x0, [x19,2744] lsl w2, w2, 1 bl ftl_memset - ldrh w3, [x19,834] + ldrh w3, [x19,2370] mov w1, 255 - ldrh w2, [x19,862] - ldr x0, [x19,1280] + ldrh w2, [x19,2398] + ldr x0, [x19,2816] mul w2, w3, w2 bl ftl_memset mov w2, 0 mov w4, -1 -.L2053: +.L2057: add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,862] + ldrh w1, [x0,2398] cmp w1, w2 - bls .L2055 - ldr x3, [x0,1272] + bls .L2059 + ldr x3, [x0,2808] ubfiz x1, x2, 4, 16 add x3, x3, x1 str wzr, [x3,4] - ldr x3, [x0,1272] + ldr x3, [x0,2808] strh w4, [x3,x1] - ldr x3, [x0,1272] + ldr x3, [x0,2808] add x3, x3, x1 - ldrh w1, [x0,834] - ldr x0, [x0,1280] + ldrh w1, [x0,2370] + ldr x0, [x0,2816] mul w1, w1, w2 add w2, w2, 1 sxtw x1, w1 @@ -12807,27 +12892,29 @@ FtlL2PDataInit: and x1, x1, -4 add x0, x0, x1 str x0, [x3,8] - b .L2053 -.L2055: - mov w2, -1 - strh w2, [x0,3762] - strh w2, [x0,3760] - add x1, x0, 3760 - ldr w2, [x0,852] - strh w2, [x0,3770] - mov w2, -3902 - strh w2, [x0,3764] - ldrh w2, [x0,3920] - strh w2, [x0,3768] - ldrh w2, [x0,860] - strh w2, [x0,3766] - ldr x2, [x0,1200] - str x2, [x0,3776] - ldr x2, [x0,1264] - str x2, [x0,3784] - ldr x2, [x0,1208] - str x2, [x0,3792] - ldr x0, [x0,1248] + b .L2057 +.L2059: + 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] + mov w3, -3902 + strh w3, [x2,948] + ldrh w2, [x2,1104] + strh w2, [x1,8] + ldrh w2, [x0,2396] + strh w2, [x1,6] + ldr x2, [x0,2736] + str x2, [x1,16] + ldr x2, [x0,2800] + str x2, [x1,24] + ldr x2, [x0,2744] + ldr x0, [x0,2784] + str x2, [x1,32] str x0, [x1,40] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -12840,9 +12927,9 @@ FtlLoadMapInfo: stp x29, x30, [sp, -16]! add x29, sp, 0 bl FtlL2PDataInit - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 3760 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + add x0, x0, 944 bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -12858,112 +12945,118 @@ ftl_sb_update_avl_pages: uxth w2, w2 strh wzr, [x0,4] mov w6, 65535 - ldrh w4, [x4,756] -.L2058: + ldrh w4, [x4,2292] +.L2062: cmp w2, w4 - bcs .L2064 + bcs .L2068 add x5, x0, x2, sxtw 1 ldrh w5, [x5,16] cmp w5, w6 - beq .L2059 + beq .L2063 ldrh w5, [x0,4] add w5, w5, 1 strh w5, [x0,4] -.L2059: +.L2063: add w2, w2, 1 uxth w2, w2 - b .L2058 -.L2064: + b .L2062 +.L2068: add x3, x3, :lo12:.LANCHOR2 mov w6, 65535 add x4, x0, x4, uxth 1 - ldrh w5, [x3,824] + ldrh w5, [x3,2360] mov x3, x0 -.L2061: +.L2065: cmp x3, x4 - beq .L2065 + beq .L2069 ldrh w2, [x3,16] cmp w2, w6 - beq .L2062 + beq .L2066 ldrh w2, [x0,4] add w2, w5, w2 sub w2, w2, #1 sub w2, w2, w1 strh w2, [x0,4] -.L2062: +.L2066: add x3, x3, 2 - b .L2061 -.L2065: + b .L2065 +.L2069: ret .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 .global FtlReUsePrevPpa .type FtlReUsePrevPpa, %function FtlReUsePrevPpa: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp,16] mov w20, w0 lsr x0, x1, 10 stp x21, x22, [sp,32] - str w1, [x29,60] - adrp x21, .LANCHOR2 + str x23, [sp,48] + str w1, [x29,76] bl P2V_block_in_plane + adrp x2, .LANCHOR2 uxth w0, w0 - add x2, x21, :lo12:.LANCHOR2 - ubfiz x22, x0, 1, 16 - ldr x3, [x2,1192] - ldrh w1, [x3,x22] - cbnz w1, .L2067 - ldr x19, [x2,3600] - cbz x19, .L2068 - ldrh w3, [x2,3608] - mov x4, -6148914691236517206 - ldr x2, [x2,1288] + add x4, x2, :lo12:.LANCHOR2 + ubfiz x23, x0, 1, 16 + mov x22, x2 + ldr x3, [x4,2728] + ldrh w1, [x3,x23] + cbnz w1, .L2071 + adrp x21, .LANCHOR4 + add x2, x21, :lo12:.LANCHOR4 + ldr x19, [x2,784] + cbz x19, .L2072 + ldrh w3, [x2,792] mov w5, 65535 + ldr x2, [x4,2824] + mov x4, -6148914691236517206 sub x19, x19, x2 asr x19, x19, 1 madd x19, x4, x19, x19 mov w4, 6 uxth w19, w19 -.L2069: +.L2073: cmp w1, w3 - beq .L2068 + beq .L2072 cmp w19, w0 - bne .L2070 - add x21, x21, :lo12:.LANCHOR2 + bne .L2074 + add x21, x21, :lo12:.LANCHOR4 mov w1, w19 - add x0, x21, 3600 + add x0, x21, 784 bl List_remove_node - ldrh w0, [x21,3608] + ldrh w0, [x21,792] sub w0, w0, #1 - strh w0, [x21,3608] + strh w0, [x21,792] mov w0, w19 bl INSERT_DATA_LIST - ldr x1, [x21,1192] - ldrh w0, [x1,x22] + add x2, x22, :lo12:.LANCHOR2 + ldr x1, [x2,2728] + ldrh w0, [x1,x23] add w0, w0, 1 - strh w0, [x1,x22] - b .L2068 -.L2070: + strh w0, [x1,x23] + b .L2072 +.L2074: umull x19, w19, w4 ldrh w19, [x2,x19] cmp w19, w5 - beq .L2068 + beq .L2072 add w1, w1, 1 uxth w1, w1 - b .L2069 -.L2067: + b .L2073 +.L2071: add w1, w1, 1 - strh w1, [x3,x22] -.L2068: - add x1, x29, 60 + strh w1, [x3,x23] +.L2072: + add x1, x29, 76 mov w0, w20 mov w2, 1 bl log2phys + ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldp x29, x30, [sp], 80 ret .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 @@ -12986,49 +13079,49 @@ make_superblock: mov x20, x0 mov x23, x1 mov w25, -1 - ldrh w24, [x1,756] -.L2076: + ldrh w24, [x1,2292] +.L2080: cmp w24, w21, uxth - bls .L2087 - add x0, x23, 784 + bls .L2091 + add x0, x23, 2320 ldrh w1, [x19] ldrb w0, [x0,x21] bl V2P_block strh w25, [x22] mov w26, w0 bl FtlBbmIsBadBlock - cbnz w0, .L2077 + cbnz w0, .L2081 strh w26, [x22] ldrb w0, [x19,7] add w0, w0, 1 strb w0, [x19,7] -.L2077: +.L2081: add x21, x21, 1 add x22, x22, 2 - b .L2076 -.L2087: + b .L2080 +.L2091: add x0, x20, :lo12:.LANCHOR2 ldrb w1, [x19,7] strb wzr, [x19,9] - ldrh w2, [x0,824] + ldrh w2, [x0,2360] mul w1, w1, w2 strh w1, [x19,4] - ldr w1, [x0,660] - cbz w1, .L2079 + ldr w1, [x0,2196] + cbz w1, .L2083 ldrh w1, [x19] - ldr x0, [x0,1176] + ldr x0, [x0,2712] ldrh w0, [x0,x1,lsl 1] cmp w0, 79 - bhi .L2079 + bhi .L2083 mov w0, 1 strb w0, [x19,9] -.L2079: +.L2083: adrp x0, .LANCHOR0+88 ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L2080 + cbz w0, .L2084 mov w0, 1 strb w0, [x19,9] -.L2080: +.L2084: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13047,257 +13140,263 @@ FtlLoadSysInfo: add x29, sp, 16 stp x21, x22, [sp,48] adrp x22, .LANCHOR2 - add x21, x22, :lo12:.LANCHOR2 - stp x19, x20, [sp,32] - add x19, x21, 1416 stp x23, x24, [sp,64] + add x23, x22, :lo12:.LANCHOR2 + stp x19, x20, [sp,32] + add x20, x23, 2952 + adrp x19, .LANCHOR4 stp x25, x26, [sp,80] stp x27, x28, [sp,96] - ldr x0, [x21,1056] - add x23, x21, 3904 - str x0, [x19,8] - ldrh w2, [x21,764] - ldr x0, [x21,1120] - str x0, [x19,16] + ldr x0, [x23,2592] + add x24, x19, :lo12:.LANCHOR4 + str x0, [x20,8] + add x25, x24, 1088 + ldr x0, [x23,2656] + ldrh w2, [x23,2300] + str x0, [x20,16] + ldr x0, [x23,2728] lsl w2, w2, 1 - ldr x0, [x21,1192] bl ftl_memset - ldrh w0, [x21,3904] + ldrh w0, [x24,1088] mov w1, 65535 cmp w0, w1 - bne .L2089 -.L2100: + bne .L2093 +.L2104: mov w19, -1 - b .L2090 -.L2089: + b .L2094 +.L2093: mov w1, 1 adrp x26, .LC60 add x26, x26, :lo12:.LC60 bl FtlGetLastWrittenPage - ldrsh w25, [x21,3904] - sxth w20, w0 + sxth w21, w0 add w0, w0, 1 - strh w0, [x23,2] -.L2091: - adrp x23, .LANCHOR0 - tbnz w20, #31, .L2099 - orr w0, w20, w25, lsl 10 + strh w0, [x25,2] + ldrsh w25, [x24,1088] +.L2095: + tbnz w21, #31, .L2103 + orr w0, w21, w25, lsl 10 mov w1, 1 - str w0, [x19,4] + str w0, [x20,4] mov w2, w1 - ldr x0, [x21,1056] - str x0, [x19,8] - mov x0, x19 + ldr x0, [x23,2592] + str x0, [x20,8] + mov x0, x20 bl FlashReadPages adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,88] - cbz w0, .L2092 - ldr x24, [x19,16] + cbz w0, .L2096 + ldr x24, [x20,16] ldr w7, [x24,12] - cbz w7, .L2092 - ldr x28, [x19,8] - ldrh w1, [x21,834] + cbz w7, .L2096 + ldr x28, [x20,8] + ldrh w1, [x23,2370] mov x0, x28 str x7, [x29,104] bl js_hash ldr x7, [x29,104] cmp w7, w0 - beq .L2092 - cbnz w20, .L2093 - ldrh w0, [x21,3908] - cmp w25, w0 - beq .L2093 + beq .L2096 + cbnz w21, .L2097 + add x0, x19, :lo12:.LANCHOR4 + add x27, x0, 1088 + ldrh w1, [x0,1092] + cmp w25, w1 + beq .L2097 + ldrh w1, [x0,1088] ldr w0, [x28] str w0, [sp] mov x0, x26 - ldrh w1, [x21,3904] - ldr w2, [x19] - ldr w3, [x19,4] + ldr w2, [x20] + ldr w3, [x20,4] ldr w4, [x24] ldr w5, [x24,4] ldr w6, [x24,8] bl printk - ldrsh w25, [x21,3908] - ldrh w20, [x21,826] - b .L2095 -.L2093: + ldrsh w25, [x27,4] + ldrh w21, [x23,2362] + b .L2099 +.L2097: mov w0, -1 - str w0, [x19] -.L2092: - ldr w0, [x19] + str w0, [x20] +.L2096: + ldr w0, [x20] cmn w0, #1 - beq .L2095 - ldr x0, [x21,1056] + beq .L2099 + ldr x0, [x23,2592] ldr w1, [x0] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L2095 - ldr x0, [x21,1120] + bne .L2099 + ldr x0, [x23,2656] ldrh w1, [x0] mov w0, 61604 cmp w1, w0 - bne .L2095 -.L2099: - add x19, x22, :lo12:.LANCHOR2 + bne .L2099 +.L2103: + add x20, x22, :lo12:.LANCHOR2 + add x0, x19, :lo12:.LANCHOR4 + add x21, x20, 2952 mov w2, 48 - add x20, x19, 1416 - add x0, x19, 3528 - ldr x1, [x20,8] + add x0, x0, 712 + ldr x1, [x21,8] bl ftl_memcpy - ldr x1, [x20,8] - ldrh w2, [x19,764] - ldr x0, [x19,1192] + ldr x1, [x21,8] + ldrh w2, [x20,2300] + ldr x0, [x20,2728] add x1, x1, 48 lsl w2, w2, 1 bl ftl_memcpy - ldrh w2, [x19,764] - add x0, x23, :lo12:.LANCHOR0 - ldr x3, [x20,8] + ldrh w2, [x20,2300] + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldr x3, [x21,8] uxth x1, w2 - ldr x0, [x0,16] - add x1, x1, 24 lsr w2, w2, 3 + add x1, x1, 24 + ldr x0, [x0,16] lsr x1, x1, 1 add w2, w2, 4 add x1, x3, x1, lsl 2 bl ftl_memcpy - ldrh w0, [x19,864] - cbz w0, .L2097 - ldrh w0, [x19,764] - ldr x3, [x20,8] + ldrh w0, [x20,2400] + cbz w0, .L2101 + ldrh w0, [x20,2300] + ldr x3, [x21,8] lsr w1, w0, 3 - ldrh w2, [x19,860] + ldrh w2, [x20,2396] add w1, w1, w0, lsl 1 - ldr x0, [x19,1256] + ldr x0, [x20,2792] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 add x1, x3, x1 bl ftl_memcpy - b .L2097 -.L2095: - sub w20, w20, #1 - sxth w20, w20 - b .L2091 -.L2097: - add x0, x22, :lo12:.LANCHOR2 - mov w1, 19539 - movk w1, 0x4654, lsl 16 - ldr w3, [x0,3528] - cmp w3, w1 - bne .L2100 - ldrb w3, [x0,3538] - ldrh w1, [x0,778] - ldrh w5, [x0,3536] - strh w5, [x0,3910] - cmp w3, w1 - bne .L2100 - ldrh w3, [x0,824] - add x23, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,830] - adrp x6, .LANCHOR4 - add x4, x6, :lo12:.LANCHOR4 - mov x19, x6 - mul w3, w3, w5 - str w3, [x0,1404] - str w5, [x4,3416] - mul w3, w3, w1 - str w3, [x23,4048] - ldrh w1, [x0,1310] - ldr w3, [x0,768] - strh wzr, [x4,3426] - sub w1, w3, w1 - ldrh w3, [x0,756] - sub w1, w1, w5 - strb wzr, [x4,3430] - strb wzr, [x4,3432] - udiv w1, w1, w3 - ldrh w3, [x0,3544] - strh w1, [x4,3420] - lsr w7, w3, 6 - and w3, w3, 63 - strb w3, [x0,3622] - ldrb w3, [x0,3539] - strb w3, [x0,3624] - ldrh w3, [x0,3546] - mov w1, -1 - strh w3, [x0,3664] - ldrh w3, [x0,3548] - strh w1, [x4,3424] - lsr w4, w3, 6 - and w3, w3, 63 - strb w3, [x0,3670] - ldrb w3, [x0,3540] - strb w3, [x0,3672] - ldrh w3, [x0,3550] - strh w3, [x0,3712] - ldrh w3, [x0,3552] - ldrh w5, [x0,3542] - strh w4, [x0,3666] - lsr w4, w3, 6 - and w3, w3, 63 - strh w5, [x0,3616] - strb w3, [x0,3718] - strh w7, [x0,3618] - strh w4, [x0,3714] - ldrb w3, [x0,3541] - strb w3, [x0,3720] - ldr w1, [x0,3560] - str w1, [x0,908] - ldr w2, [x0,876] - ldr w1, [x0,3568] - str wzr, [x0,884] - str wzr, [x0,888] - cmp w1, w2 - str wzr, [x0,904] - str wzr, [x0,900] - str wzr, [x0,912] - str wzr, [x0,920] - str wzr, [x0,896] - bls .L2101 - str w1, [x0,876] + b .L2101 +.L2099: + sub w21, w21, #1 + sxth w21, w21 + b .L2095 .L2101: + add x6, x19, :lo12:.LANCHOR4 + mov w0, 19539 + movk w0, 0x4654, lsl 16 + ldr w2, [x6,712] + cmp w2, w0 + bne .L2104 add x0, x22, :lo12:.LANCHOR2 - ldr w1, [x0,3564] - ldr w2, [x0,880] - cmp w1, w2 - bls .L2102 - str w1, [x0,880] -.L2102: + ldrb w3, [x6,722] + ldrh w5, [x6,720] + strh w5, [x6,1094] + ldrh w2, [x0,2314] + cmp w3, w2 + bne .L2104 + ldrh w3, [x0,2360] + adrp x7, .LANCHOR5 + ldrh w2, [x0,2366] + add x4, x7, :lo12:.LANCHOR5 + mov x20, x7 + mul w3, w3, w5 + str w3, [x0,2940] + str w5, [x4,600] + mul w3, w3, w2 + str w3, [x0,1232] + ldrh w2, [x0,2846] + ldr w3, [x0,2304] + strh wzr, [x4,610] + sub w2, w3, w2 + ldrh w3, [x0,2292] + sub w2, w2, w5 + strb wzr, [x4,614] + strb wzr, [x4,616] + 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] + 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] + 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] + 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] + cmp w2, w1 + str wzr, [x0,2440] + str wzr, [x0,2436] + str wzr, [x0,2448] + str wzr, [x0,2456] + str wzr, [x0,2432] + bls .L2105 + str w2, [x0,2412] +.L2105: + add x0, x19, :lo12:.LANCHOR4 + add x22, x22, :lo12:.LANCHOR2 + ldr w0, [x0,748] + ldr w1, [x22,2416] + cmp w0, w1 + bls .L2106 + str w0, [x22,2416] +.L2106: mov w0, 65535 cmp w5, w0 - beq .L2103 - add x0, x22, :lo12:.LANCHOR2 - add x0, x0, 3616 + beq .L2107 + add x0, x19, :lo12:.LANCHOR4 + add x0, x0, 800 bl make_superblock -.L2103: - add x1, x22, :lo12:.LANCHOR2 - add x0, x1, 3664 - ldrh w2, [x1,3664] +.L2107: + add x2, x19, :lo12:.LANCHOR4 mov w1, 65535 + add x0, x2, 848 + ldrh w2, [x2,848] cmp w2, w1 - beq .L2104 + beq .L2108 bl make_superblock -.L2104: - add x1, x22, :lo12:.LANCHOR2 - add x0, x1, 3712 - ldrh w2, [x1,3712] +.L2108: + add x19, x19, :lo12:.LANCHOR4 mov w1, 65535 + add x0, x19, 896 + ldrh w2, [x19,896] cmp w2, w1 - beq .L2105 + beq .L2109 bl make_superblock -.L2105: - add x1, x19, :lo12:.LANCHOR4 +.L2109: + add x1, x20, :lo12:.LANCHOR5 mov w19, 0 - add x0, x1, 3424 - ldrh w2, [x1,3424] + add x0, x1, 608 + ldrh w2, [x1,608] mov w1, 65535 cmp w2, w1 - beq .L2090 + beq .L2094 bl make_superblock -.L2090: +.L2094: sub sp, x29, #16 mov w0, w19 ldp x19, x20, [sp,32] @@ -13332,9 +13431,9 @@ FtlDumpBlockInfo: adrp x0, .LC47 add x1, x1, 32 add x0, x0, :lo12:.LC47 - ldrh w23, [x19,824] + ldrh w23, [x19,2360] bl printk - ldr x3, [x19,1192] + ldr x3, [x19,2728] ubfiz x2, x22, 1, 16 adrp x0, .LC61 mov w1, w22 @@ -13344,58 +13443,57 @@ FtlDumpBlockInfo: strh w22, [x29,112] add x0, x29, 112 bl make_superblock - cbnz w24, .L2125 - adrp x0, .LANCHOR0+4044 - ldrb w0, [x0,#:lo12:.LANCHOR0+4044] - cbz w0, .L2125 + cbnz w24, .L2129 + ldrb w0, [x19,1228] + cbz w0, .L2129 mov w0, w22 bl ftl_get_blk_mode cmp w0, 1 mov w22, w0 - bne .L2117 - ldrh w23, [x19,826] - b .L2117 -.L2125: + bne .L2121 + ldrh w23, [x19,2362] + b .L2121 +.L2129: mov w22, 0 -.L2117: +.L2121: add x3, x20, :lo12:.LANCHOR2 adrp x0, .LC62 adrp x24, .LC56 add x0, x0, :lo12:.LC62 mov w1, w22 mov w2, w23 - ldrh w3, [x3,824] + ldrh w3, [x3,2360] mov w21, 0 mov w26, 65535 mov w27, 56 mov w25, 4 add x24, x24, :lo12:.LC56 bl printk -.L2118: +.L2122: add x0, x20, :lo12:.LANCHOR2 mov x3, 0 mov w19, w3 - ldrh w5, [x0,756] - ldrh w6, [x0,834] - ldrh w7, [x0,836] -.L2119: + ldrh w5, [x0,2292] + ldrh w6, [x0,2370] + ldrh w7, [x0,2372] +.L2123: cmp w5, w3, uxth - bls .L2133 + bls .L2137 add x0, x29, 112 add x0, x0, x3, lsl 1 ldrh w1, [x0,16] cmp w1, w26 - beq .L2120 + beq .L2124 add x2, x20, :lo12:.LANCHOR2 orr w1, w21, w1, lsl 10 umull x0, w19, w27 - ldr x4, [x2,1000] + ldr x4, [x2,2536] add x4, x4, x0 str w1, [x4,4] - ldr x1, [x2,1000] - ldr x4, [x2,1080] + ldr x1, [x2,2536] + ldr x4, [x2,2616] add x0, x1, x0 - ldr x2, [x2,1136] + ldr x2, [x2,2672] mul w1, w19, w6 sdiv w1, w1, w25 add x1, x4, x1, sxtw 2 @@ -13406,26 +13504,26 @@ FtlDumpBlockInfo: sdiv w1, w1, w25 add x1, x2, x1, sxtw 2 str x1, [x0,16] -.L2120: +.L2124: add x3, x3, 1 - b .L2119 -.L2133: + b .L2123 +.L2137: add x0, x20, :lo12:.LANCHOR2 mov w1, w19 mov w2, w22 mov x28, 0 - ldr x0, [x0,1000] + ldr x0, [x0,2536] bl FlashReadPages mov x8, 56 -.L2122: +.L2126: cmp w19, w28, uxth - bls .L2134 + bls .L2138 add x0, x20, :lo12:.LANCHOR2 ldrh w1, [x29,112] mul x2, x28, x8 str x8, [x29,104] add x28, x28, 1 - ldr x4, [x0,1000] + ldr x4, [x0,2536] add x3, x4, x2 ldr x0, [x3,8] ldr x7, [x3,16] @@ -13442,13 +13540,13 @@ FtlDumpBlockInfo: ldr w7, [x7,12] bl printk ldr x8, [x29,104] - b .L2122 -.L2134: + b .L2126 +.L2138: add w21, w21, 1 uxth w21, w21 cmp w21, w23 - bne .L2118 -.L2124: + bne .L2122 +.L2128: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -13484,17 +13582,17 @@ FtlScanAllBlock: add x24, x24, :lo12:.LC65 stp x25, x26, [sp,80] bl printk -.L2136: +.L2140: adrp x21, .LANCHOR2 add x19, x21, :lo12:.LANCHOR2 - ldrh w0, [x19,766] + ldrh w0, [x19,2302] cmp w0, w20 - bls .L2145 + bls .L2149 mov w0, w20 strh w20, [x29,80] bl ftl_get_blk_mode mov w3, w0 - ldr x4, [x19,1192] + ldr x4, [x19,2728] ubfiz x2, x20, 1, 16 mov w1, w20 mov x0, x22 @@ -13503,31 +13601,31 @@ FtlScanAllBlock: add x0, x29, 80 bl make_superblock mov x1, 0 - ldrh w6, [x19,756] - ldrh w7, [x19,834] + ldrh w6, [x19,2292] + ldrh w7, [x19,2370] mov w9, 65535 - ldrh w8, [x19,836] + ldrh w8, [x19,2372] mov w10, 56 mov w19, w1 mov w5, 4 -.L2137: +.L2141: cmp w6, w1, uxth - bls .L2146 + bls .L2150 add x0, x29, 80 add x0, x0, x1, lsl 1 ldrh w0, [x0,16] cmp w0, w9 - beq .L2138 + beq .L2142 add x3, x21, :lo12:.LANCHOR2 lsl w0, w0, 10 umull x2, w19, w10 - ldr x4, [x3,1000] + ldr x4, [x3,2536] add x4, x4, x2 str w0, [x4,4] - ldr x0, [x3,1000] - ldr x4, [x3,1080] + ldr x0, [x3,2536] + ldr x4, [x3,2616] add x2, x0, x2 - ldr x3, [x3,1136] + ldr x3, [x3,2672] mul w0, w19, w7 sdiv w0, w0, w5 add x0, x4, x0, sxtw 2 @@ -13538,22 +13636,22 @@ FtlScanAllBlock: sdiv w0, w0, w5 add x0, x3, x0, sxtw 2 str x0, [x2,16] -.L2138: +.L2142: add x1, x1, 1 - b .L2137 -.L2146: + b .L2141 +.L2150: add x0, x21, :lo12:.LANCHOR2 mov w1, w19 mov w2, 0 mov x25, 0 mov x26, 56 - ldr x0, [x0,1000] + ldr x0, [x0,2536] bl FlashReadPages -.L2140: +.L2144: add x0, x21, :lo12:.LANCHOR2 cmp w19, w25, uxth - bls .L2147 - ldr x4, [x0,1000] + bls .L2151 + ldr x4, [x0,2536] mul x2, x25, x26 ldrh w1, [x29,80] add x25, x25, 1 @@ -13572,22 +13670,22 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L2140 -.L2147: - ldr x0, [x0,1000] + b .L2144 +.L2151: + ldr x0, [x0,2536] mov w1, w19 mov w2, 1 mov x25, 0 mov x26, 56 bl FlashReadPages -.L2142: +.L2146: cmp w19, w25, uxth - bls .L2148 + bls .L2152 add x0, x21, :lo12:.LANCHOR2 ldrh w1, [x29,80] mul x2, x25, x26 add x25, x25, 1 - ldr x4, [x0,1000] + ldr x4, [x0,2536] add x3, x4, x2 ldr x0, [x3,8] ldr x7, [x3,16] @@ -13603,12 +13701,12 @@ FtlScanAllBlock: ldr w3, [x3,4] ldr w7, [x7,12] bl printk - b .L2142 -.L2148: + b .L2146 +.L2152: add w20, w20, 1 uxth w20, w20 - b .L2136 -.L2145: + b .L2140 +.L2149: sub sp, x29, #16 mov w0, 0 ldp x19, x20, [sp,32] @@ -13623,164 +13721,171 @@ FtlScanAllBlock: .global SupperBlkListInit .type SupperBlkListInit, %function SupperBlkListInit: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -128]! mov w1, 0 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR2 - stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR2 stp x23, x24, [sp,48] + adrp x23, .LANCHOR2 + stp x19, x20, [sp,16] + add x19, x23, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov w23, 6 - mov w27, 0 - ldrh w2, [x19,766] - mov w22, w27 - ldr x0, [x19,1288] - mov w24, -1 - mov w25, 32768 - mul w2, w2, w23 + mov w25, 6 + adrp x22, .LANCHOR4 + ldrh w2, [x19,2302] + add x21, x22, :lo12:.LANCHOR4 + ldr x0, [x19,2824] + mov w28, 0 + mov w24, w28 + mov w26, -1 + mul w2, w2, w25 + mov w27, 32768 bl ftl_memset - str xzr, [x19,3600] - str xzr, [x19,3576] - str xzr, [x19,3584] - strh wzr, [x19,3592] - strh wzr, [x19,3608] - strh wzr, [x19,866] - mov w19, w27 -.L2150: - add x0, x21, :lo12:.LANCHOR2 - ldrh w1, [x0,764] + strh wzr, [x19,2402] + str xzr, [x21,784] + mov w19, w28 + str xzr, [x21,760] + str xzr, [x21,768] + strh wzr, [x21,776] + strh wzr, [x21,792] +.L2154: + add x0, x23, :lo12:.LANCHOR2 + ldrh w1, [x0,2300] cmp w19, w1 - bge .L2157 + bge .L2161 mov w20, 0 - ldrh w3, [x0,756] - ldrh w2, [x0,824] - mov w28, w20 - mov x26, x0 -.L2158: - cmp w28, w3 - bge .L2159 - add x0, x26, 784 + ldrh w5, [x0,2292] + ldrh w4, [x0,2360] + mov w3, w20 + mov x2, x0 +.L2162: + cmp w3, w5 + bge .L2163 + add x0, x2, 2320 mov w1, w19 - str x2, [x29,96] - str x3, [x29,104] - ldrb w0, [x0,w28,sxtw] + str x4, [x29,96] + str x5, [x29,104] + ldrb w0, [x0,w3,sxtw] + str x2, [x29,112] + str x3, [x29,120] bl V2P_block bl FtlBbmIsBadBlock - ldr x3, [x29,104] - ldr x2, [x29,96] - cbnz w0, .L2151 - add w20, w2, w20 + ldr x3, [x29,120] + ldr x2, [x29,112] + ldr x5, [x29,104] + ldr x4, [x29,96] + cbnz w0, .L2155 + add w20, w4, w20 sxth w20, w20 -.L2151: - add w28, w28, 1 - sxth w28, w28 - b .L2158 -.L2159: - cbz w20, .L2153 - sdiv w20, w25, w20 - sxth w20, w20 - b .L2154 -.L2153: - add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,1192] - strh w24, [x0,w19,sxtw 1] -.L2154: - add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,1288] - smaddl x1, w19, w23, x1 - strh w20, [x1,4] - ldrh w1, [x0,3616] - cmp w19, w1 - beq .L2155 - ldrh w1, [x0,3664] - cmp w19, w1 - beq .L2155 - ldrh w1, [x0,3712] - cmp w19, w1 - beq .L2155 - ldr x0, [x0,1192] - ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L2156 - add w27, w27, 1 - mov w0, w19 - uxth w27, w27 - bl INSERT_FREE_LIST - b .L2155 -.L2156: - add w22, w22, 1 - mov w0, w19 - uxth w22, w22 - bl INSERT_DATA_LIST .L2155: + add w3, w3, 1 + sxth w3, w3 + b .L2162 +.L2163: + cbz w20, .L2157 + sdiv w20, w27, w20 + sxth w20, w20 + b .L2158 +.L2157: + add x0, x23, :lo12:.LANCHOR2 + ldr x0, [x0,2728] + strh w26, [x0,w19,sxtw 1] +.L2158: + add x1, x23, :lo12:.LANCHOR2 + ldr x0, [x1,2824] + smaddl x0, w19, w25, x0 + strh w20, [x0,4] + ldrh w0, [x21,800] + cmp w19, w0 + beq .L2159 + ldrh w0, [x21,848] + cmp w19, w0 + beq .L2159 + ldrh w0, [x21,896] + cmp w19, w0 + beq .L2159 + ldr x0, [x1,2728] + ldrh w0, [x0,w19,sxtw 1] + cbnz w0, .L2160 + add w28, w28, 1 + mov w0, w19 + uxth w28, w28 + bl INSERT_FREE_LIST + b .L2159 +.L2160: + add w24, w24, 1 + mov w0, w19 + uxth w24, w24 + bl INSERT_DATA_LIST +.L2159: add w19, w19, 1 sxth w19, w19 - b .L2150 -.L2157: - strh w22, [x0,3592] - strh w27, [x0,3608] + b .L2154 +.L2161: + add x22, x22, :lo12:.LANCHOR4 mov w0, 0 ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] + strh w24, [x22,776] + strh w28, [x22,792] + ldp x23, x24, [sp,48] + ldp x21, x22, [sp,32] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 128 ret .size SupperBlkListInit, .-SupperBlkListInit .align 2 .global Ftl_save_ext_data .type Ftl_save_ext_data, %function Ftl_save_ext_data: - adrp x0, .LANCHOR4 + adrp x0, .LANCHOR5 mov w1, 19539 - add x0, x0, :lo12:.LANCHOR4 + add x0, x0, :lo12:.LANCHOR5 movk w1, 0x4654, lsl 16 stp x29, x30, [sp, -16]! - add x2, x0, 3472 + add x2, x0, 656 add x29, sp, 0 - ldr w3, [x0,3472] + ldr w3, [x0,656] cmp w3, w1 - bne .L2160 - mov w1, 87 + bne .L2164 + mov w1, 96 movk w1, 0x5000, lsl 16 str w1, [x2,4] - ldr w1, [x0,3984] - ldr w0, [x0,3988] + ldr w1, [x0,1168] + ldr w0, [x0,1172] str w0, [x2,92] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 str w1, [x2,88] - ldr w1, [x0,884] + ldr w1, [x0,2420] str w1, [x2,8] - ldr w1, [x0,888] + ldr w1, [x0,2424] str w1, [x2,12] - ldr w1, [x0,904] + ldr w1, [x0,2440] str w1, [x2,16] - ldr w1, [x0,900] + ldr w1, [x0,2436] str w1, [x2,20] - ldr w1, [x0,912] + ldr w1, [x0,2448] str w1, [x2,28] - ldr w1, [x0,916] + ldr w1, [x0,2452] str w1, [x2,32] - ldr w1, [x0,892] + ldr w1, [x0,2428] str w1, [x2,36] - ldr w1, [x0,896] + ldr w1, [x0,2432] str w1, [x2,40] - ldr w1, [x0,920] + ldr w1, [x0,2456] str w1, [x2,44] - ldr w1, [x0,924] + ldr w1, [x0,2460] str w1, [x2,48] - ldr w1, [x0,872] - ldr w0, [x0,868] + ldr w1, [x0,2408] + ldr w0, [x0,2404] str w1, [x2,60] mov w1, 1 str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2160: +.L2164: ldp x29, x30, [sp], 16 ret .size Ftl_save_ext_data, .-Ftl_save_ext_data @@ -13793,51 +13898,51 @@ FtlEctTblFlush: add x3, x2, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w4, [x3,660] - cbz w4, .L2163 - ldr w3, [x3,924] + ldr w4, [x3,2196] + cbz w4, .L2167 + ldr w3, [x3,2460] cmp w3, 39 mov w3, 4 csel w1, w1, w3, hi -.L2163: - adrp x3, .LANCHOR4 - add x3, x3, :lo12:.LANCHOR4 - ldrh w4, [x3,3992] +.L2167: + adrp x3, .LANCHOR5 + add x3, x3, :lo12:.LANCHOR5 + ldrh w4, [x3,1176] cmp w4, 31 - bhi .L2164 + bhi .L2168 add w4, w4, 1 mov w1, 1 - strh w4, [x3,3992] -.L2164: - cbnz w0, .L2165 + strh w4, [x3,1176] +.L2168: + cbnz w0, .L2169 add x0, x2, :lo12:.LANCHOR2 - ldr x3, [x0,1168] + ldr x3, [x0,2704] ldr w0, [x3,20] add w1, w1, w0 ldr w0, [x3,16] cmp w0, w1 - bcc .L2166 -.L2165: + bcc .L2170 +.L2169: add x2, x2, :lo12:.LANCHOR2 - ldr x0, [x2,1168] + ldr x0, [x2,2704] ldr w1, [x0,16] str w1, [x0,20] mov w1, 17221 movk w1, 0x4254, lsl 16 str w1, [x0] - ldr x0, [x2,1168] - ldrh w1, [x2,1152] + ldr x0, [x2,2704] + ldrh w1, [x2,2688] str wzr, [x0,4] lsl w3, w1, 9 str w3, [x0,12] ldr w3, [x0,8] - ldr x2, [x2,1168] + ldr x2, [x2,2704] add w3, w3, 1 str w3, [x0,8] mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2166: +.L2170: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -13851,87 +13956,94 @@ Ftl_load_ext_data: mov w0, 0 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR4 + adrp x19, .LANCHOR5 str x21, [sp,32] - add x20, x19, :lo12:.LANCHOR4 - add x21, x20, 3472 + add x20, x19, :lo12:.LANCHOR5 + add x21, x20, 656 mov x2, x21 bl FtlVendorPartRead - ldr w1, [x20,3472] + ldr w1, [x20,656] mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - beq .L2171 + beq .L2175 mov x0, x21 mov w1, 0 mov w2, 512 bl ftl_memset mov w0, 19539 movk w0, 0x4654, lsl 16 - str w0, [x20,3472] -.L2171: - add x1, x19, :lo12:.LANCHOR4 + str w0, [x20,656] +.L2175: + add x1, x19, :lo12:.LANCHOR5 mov w2, 19539 movk w2, 0x4654, lsl 16 - add x0, x1, 3472 + add x0, x1, 656 adrp x20, .LANCHOR2 - ldr w3, [x1,3472] + ldr w3, [x1,656] cmp w3, w2 - bne .L2172 - ldr w2, [x1,3560] - str w2, [x1,3984] - ldr w2, [x1,3564] - str w2, [x1,3988] + bne .L2176 + ldr w2, [x1,744] + str w2, [x1,1168] + ldr w2, [x1,748] + str w2, [x1,1172] add x1, x20, :lo12:.LANCHOR2 ldr w2, [x0,8] - str w2, [x1,884] + str w2, [x1,2420] ldr w2, [x0,12] - str w2, [x1,888] + str w2, [x1,2424] ldr w2, [x0,16] - str w2, [x1,904] + str w2, [x1,2440] ldr w2, [x0,20] - str w2, [x1,900] + str w2, [x1,2436] ldr w2, [x0,28] - str w2, [x1,912] + str w2, [x1,2448] ldr w2, [x0,32] - str w2, [x1,916] + str w2, [x1,2452] ldr w2, [x0,36] - str w2, [x1,892] + str w2, [x1,2428] ldr w2, [x0,40] - str w2, [x1,896] + str w2, [x1,2432] ldr w2, [x0,44] - str w2, [x1,920] + str w2, [x1,2456] ldr w2, [x0,48] ldr w0, [x0,60] - str w2, [x1,924] - str w0, [x1,872] -.L2172: - add x1, x19, :lo12:.LANCHOR4 - add x0, x20, :lo12:.LANCHOR2 - ldr w2, [x1,3540] - mov w1, 34661 - movk w1, 0x1234, lsl 16 - str wzr, [x0,868] - cmp w2, w1 - bne .L2173 - mov w1, 1 - str w1, [x0,660] + str w2, [x1,2460] + str w0, [x1,2408] +.L2176: + add x0, x19, :lo12:.LANCHOR5 + add x1, x20, :lo12:.LANCHOR2 + mov w2, 34661 + add x0, x0, 656 + movk w2, 0x1234, lsl 16 + ldr w3, [x0,68] + str wzr, [x1,2404] + cmp w3, w2 + bne .L2177 + ldrb w2, [x1,1228] + cbz w2, .L2178 + str wzr, [x0,68] + bl Ftl_save_ext_data + b .L2177 +.L2178: + mov w0, 1 + str w0, [x1,2196] adrp x0, .LC45 adrp x1, .LC66 add x0, x0, :lo12:.LC45 add x1, x1, :lo12:.LC66 bl printk -.L2173: +.L2177: add x0, x20, :lo12:.LANCHOR2 - add x19, x19, :lo12:.LANCHOR4 + add x19, x19, :lo12:.LANCHOR5 ldr x21, [sp,32] - ldrh w2, [x0,816] - ldr w3, [x0,908] - ldr w1, [x0,912] - ldrh w0, [x0,764] + ldrh w2, [x0,2352] + ldr w3, [x0,2444] + ldr w1, [x0,2448] + ldrh w0, [x0,2300] madd w1, w2, w3, w1 udiv w0, w1, w0 - str w0, [x19,3996] + str w0, [x19,1180] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -13950,30 +14062,30 @@ ftl_scan_all_ppa: add x19, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,64] adrp x23, .LC68 - add x20, x19, 1416 - ldrh w1, [x19,822] + add x20, x19, 2952 + ldrh w1, [x19,2358] add x23, x23, :lo12:.LC68 - ldrh w2, [x19,824] + ldrh w2, [x19,2360] stp x21, x22, [sp,48] mov w22, 0 bl printk -.L2175: - ldrh w0, [x19,822] +.L2180: + ldrh w0, [x19,2358] cmp w22, w0 - bcs .L2177 + bcs .L2182 lsl w24, w22, 10 mov w21, 0 -.L2178: - ldrh w0, [x19,824] +.L2183: + ldrh w0, [x19,2360] cmp w21, w0 - bcs .L2179 + bcs .L2184 add w0, w21, w24 str w0, [x20,4] - ldr x0, [x19,1056] + ldr x0, [x19,2592] mov w1, 1 str x0, [x20,8] mov w2, 0 - ldr x0, [x19,1120] + ldr x0, [x19,2656] add w21, w21, 1 str x0, [x20,16] mov x0, x20 @@ -13992,11 +14104,11 @@ ftl_scan_all_ppa: ldr w6, [x6,12] ldr w7, [x7] bl printk - b .L2178 -.L2179: + b .L2183 +.L2184: add w22, w22, 1 - b .L2175 -.L2177: + b .L2180 +.L2182: adrp x1, .LANCHOR3 adrp x0, .LC69 add x1, x1, :lo12:.LANCHOR3 @@ -14026,33 +14138,33 @@ update_multiplier_value: stp x23, x24, [sp,48] mov x22, 0 mov x21, x0 - ldrh w24, [x1,756] + ldrh w24, [x1,2292] mov w19, w22 - ldrh w25, [x1,824] + ldrh w25, [x1,2360] mov x23, x1 -.L2181: +.L2186: cmp w24, w22, uxth - bls .L2188 - add x0, x23, 784 + bls .L2193 + add x0, x23, 2320 mov w1, w20 ldrb w0, [x0,x22] bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L2182 + cbnz w0, .L2187 add w19, w19, w25 uxth w19, w19 -.L2182: +.L2187: add x22, x22, 1 - b .L2181 -.L2188: - cbz w19, .L2184 + b .L2186 +.L2193: + cbz w19, .L2189 mov w0, 32768 sdiv w19, w0, w19 -.L2184: +.L2189: add x0, x21, :lo12:.LANCHOR2 mov w1, 6 umull x20, w20, w1 - ldr x0, [x0,1288] + ldr x0, [x0,2824] add x20, x0, x20 mov w0, 0 strh w19, [x20,4] @@ -14067,66 +14179,69 @@ update_multiplier_value: .global GetFreeBlockMinEraseCount .type GetFreeBlockMinEraseCount, %function GetFreeBlockMinEraseCount: - adrp x2, .LANCHOR2 - add x2, x2, :lo12:.LANCHOR2 - ldr x1, [x2,3600] + adrp x0, .LANCHOR4+784 + ldr x1, [x0,#:lo12:.LANCHOR4+784] mov w0, w1 - cbz x1, .L2190 - ldr x0, [x2,1288] - sub x1, x1, x0 - mov x0, -6148914691236517206 + cbz x1, .L2195 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldr x2, [x0,2824] + ldr x0, [x0,2712] + sub x1, x1, x2 + mov x2, -6148914691236517206 asr x1, x1, 1 - madd x1, x0, x1, x1 - ldr x0, [x2,1176] + madd x1, x2, x1, x1 and x1, x1, 65535 ldrh w0, [x0,x1,lsl 1] -.L2190: +.L2195: ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 .global GetFreeBlockMaxEraseCount .type GetFreeBlockMaxEraseCount, %function GetFreeBlockMaxEraseCount: - adrp x2, .LANCHOR2 + adrp x2, .LANCHOR4 uxth w4, w0 - add x5, x2, :lo12:.LANCHOR2 - ldr x1, [x5,3600] + add x2, x2, :lo12:.LANCHOR4 + ldr x1, [x2,784] mov w0, w1 - cbz x1, .L2193 - ldrh w3, [x5,3608] + cbz x1, .L2198 + ldrh w2, [x2,792] mov w0, 7 + mov x3, -6148914691236517206 mov w6, 6 mov w7, 65535 - mul w3, w3, w0 - ldr x0, [x5,1288] - asr w3, w3, 3 - cmp w4, w3 + mul w2, w2, w0 + asr w2, w2, 3 + cmp w4, w2 + csel w4, w2, w4, gt + adrp x2, .LANCHOR2 + add x0, x2, :lo12:.LANCHOR2 + ldr x0, [x0,2824] sub x1, x1, x0 - csel w4, w3, w4, gt asr x1, x1, 1 - mov x3, -6148914691236517206 madd x1, x3, x1, x1 mov w3, 0 uxth w1, w1 -.L2195: +.L2200: cmp w3, w4 - beq .L2198 + beq .L2203 umull x5, w1, w6 ldrh w5, [x0,x5] cmp w5, w7 - bne .L2196 -.L2198: + bne .L2201 +.L2203: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 - ldr x0, [x2,1176] + ldr x0, [x2,2712] ldrh w0, [x0,x1] - b .L2193 -.L2196: + b .L2198 +.L2201: add w3, w3, 1 mov w1, w5 uxth w3, w3 - b .L2195 -.L2193: + b .L2200 +.L2198: ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -14136,43 +14251,43 @@ FtlPrintInfo2buf: stp x29, x30, [sp, -112]! adrp x1, .LC70 add x29, sp, 0 - stp x25, x26, [sp,64] - adrp x25, .LANCHOR0 - add x1, x1, :lo12:.LC70 - add x25, x25, :lo12:.LANCHOR0 - str x27, [sp,80] stp x23, x24, [sp,48] - stp x19, x20, [sp,16] + adrp x24, .LANCHOR2 + add x1, x1, :lo12:.LC70 stp x21, x22, [sp,32] + add x22, x24, :lo12:.LANCHOR2 mov x23, x0 + stp x19, x20, [sp,16] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] bl strcpy add x20, x23, 12 - ldr w2, [x25,4016] + ldr w2, [x22,1200] adrp x1, .LC71 - adrp x24, .LANCHOR2 mov x0, x20 add x1, x1, :lo12:.LC71 - add x22, x24, :lo12:.LANCHOR2 bl sprintf add x20, x20, x0, sxtw adrp x1, .LC72 + ldr w2, [x22,2376] mov x0, x20 - ldr w2, [x22,840] add x1, x1, :lo12:.LC72 bl sprintf add x20, x20, x0, sxtw - adrp x0, .LANCHOR1+3288 - ldr w0, [x0,#:lo12:.LANCHOR1+3288] + adrp x0, .LANCHOR1+3352 + ldr w0, [x0,#:lo12:.LANCHOR1+3352] cmp w0, 1 - beq .L2201 + beq .L2206 sub w0, w20, w23 - b .L2202 -.L2201: + b .L2207 +.L2206: add x0, x29, 96 add x1, x29, 100 add x2, x29, 104 add x3, x29, 108 + adrp x26, .LANCHOR4 bl NandcGetTimeCfg + add x25, x26, :lo12:.LANCHOR4 ldr w4, [x29,104] adrp x1, .LC73 ldr w5, [x29,108] @@ -14186,78 +14301,78 @@ FtlPrintInfo2buf: mov x0, x21 add x1, x1, :lo12:.LC74 add x21, x21, 10 - adrp x20, .LANCHOR4 + adrp x20, .LANCHOR5 bl strcpy - add x20, x20, :lo12:.LANCHOR4 - ldr w2, [x22,1404] + 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, [x22,3900] + 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,904] + 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,892] + 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,888] + ldr w2, [x22,2424] adrp x1, .LC79 mov x0, x21 add x1, x1, :lo12:.LC79 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,896] + ldr w2, [x22,2432] adrp x1, .LC80 mov x0, x21 add x1, x1, :lo12:.LC80 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,900] + ldr w2, [x22,2436] adrp x1, .LC81 mov x0, x21 add x1, x1, :lo12:.LC81 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,884] + ldr w2, [x22,2420] adrp x1, .LC82 mov x0, x21 add x1, x1, :lo12:.LC82 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x20,3984] + ldr w2, [x20,1168] 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,3988] + ldr w2, [x20,1172] 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,876] + ldr w2, [x22,2412] adrp x1, .LC85 mov x0, x21 add x1, x1, :lo12:.LC85 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,880] + ldr w2, [x22,2416] adrp x1, .LC86 add x1, x1, :lo12:.LC86 mov x0, x21 @@ -14265,298 +14380,298 @@ FtlPrintInfo2buf: add x21, x21, x0, sxtw bl FtlBbtCalcTotleCnt uxth w3, w0 - ldrh w2, [x22,1310] + ldrh w2, [x22,2846] adrp x1, .LC87 mov x0, x21 add x1, x1, :lo12:.LC87 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3608] + ldrh w2, [x25,792] adrp x1, .LC88 mov x0, x21 add x1, x1, :lo12:.LC88 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,908] + ldr w2, [x22,2444] adrp x1, .LC89 mov x0, x21 add x1, x1, :lo12:.LC89 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,912] + ldr w2, [x22,2448] adrp x1, .LC90 mov x0, x21 add x1, x1, :lo12:.LC90 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x20,3996] + ldr w2, [x20,1180] adrp x1, .LC91 mov x0, x21 add x1, x1, :lo12:.LC91 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,916] + ldr w2, [x22,2452] adrp x1, .LC92 mov x0, x21 add x1, x1, :lo12:.LC92 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,920] + ldr w2, [x22,2456] adrp x1, .LC93 mov x0, x21 add x1, x1, :lo12:.LC93 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,924] + ldr w2, [x22,2460] adrp x1, .LC94 mov x0, x21 add x1, x1, :lo12:.LC94 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3558] + ldrh w2, [x25,742] adrp x1, .LC95 mov x0, x21 add x1, x1, :lo12:.LC95 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3556] + ldrh w2, [x25,740] adrp x1, .LC96 mov x0, x21 add x1, x1, :lo12:.LC96 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x25,4048] + ldr w2, [x22,1232] adrp x1, .LC97 mov x0, x21 add x1, x1, :lo12:.LC97 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,856] + ldr w2, [x22,2392] adrp x1, .LC98 mov x0, x21 add x1, x1, :lo12:.LC98 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,752] + ldr w2, [x22,2288] adrp x1, .LC99 mov x0, x21 add x1, x1, :lo12:.LC99 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,1478] + ldrh w2, [x22,3014] adrp x1, .LC100 mov x0, x21 add x1, x1, :lo12:.LC100 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,764] + ldrh w2, [x22,2300] adrp x1, .LC101 mov x0, x21 add x1, x1, :lo12:.LC101 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3420] + ldrh w2, [x20,604] adrp x1, .LC102 mov x0, x21 add x1, x1, :lo12:.LC102 bl sprintf add x21, x21, x0, sxtw - ldr w2, [x22,768] + ldr w2, [x22,2304] adrp x1, .LC103 mov x0, x21 add x1, x1, :lo12:.LC103 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3904] + ldrh w2, [x25,1088] adrp x1, .LC104 mov x0, x21 add x1, x1, :lo12:.LC104 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,1304] + ldrh w2, [x22,2840] adrp x1, .LC105 mov x0, x21 add x1, x1, :lo12:.LC105 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3618] + ldrh w2, [x25,802] adrp x1, .LC106 mov x0, x21 add x1, x1, :lo12:.LC106 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3622] + ldrb w2, [x25,806] adrp x1, .LC107 mov x0, x21 add x1, x1, :lo12:.LC107 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3616] + ldrh w2, [x25,800] adrp x1, .LC108 mov x0, x21 add x1, x1, :lo12:.LC108 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3624] + ldrb w2, [x25,808] adrp x1, .LC109 mov x0, x21 add x1, x1, :lo12:.LC109 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3620] + ldrh w2, [x25,804] adrp x1, .LC110 mov x0, x21 add x1, x1, :lo12:.LC110 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x22,3616] + ldrh w3, [x25,800] adrp x1, .LC111 - ldr x2, [x22,1192] + 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, [x22,3666] + ldrh w2, [x25,850] adrp x1, .LC112 mov x0, x21 add x1, x1, :lo12:.LC112 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3670] + ldrb w2, [x25,854] adrp x1, .LC113 mov x0, x21 add x1, x1, :lo12:.LC113 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3664] + ldrh w2, [x25,848] adrp x1, .LC114 mov x0, x21 add x1, x1, :lo12:.LC114 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3672] + ldrb w2, [x25,856] adrp x1, .LC115 mov x0, x21 add x1, x1, :lo12:.LC115 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3668] + ldrh w2, [x25,852] adrp x1, .LC116 mov x0, x21 add x1, x1, :lo12:.LC116 bl sprintf add x21, x21, x0, sxtw - ldrh w3, [x22,3664] + ldrh w3, [x25,848] adrp x1, .LC117 - ldr x2, [x22,1192] + 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, [x22,3714] + ldrh w2, [x25,898] adrp x1, .LC118 mov x0, x21 add x1, x1, :lo12:.LC118 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3718] + ldrb w2, [x25,902] adrp x1, .LC119 mov x0, x21 add x1, x1, :lo12:.LC119 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3712] + ldrh w2, [x25,896] adrp x1, .LC120 mov x0, x21 add x1, x1, :lo12:.LC120 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x22,3720] + ldrb w2, [x25,904] adrp x1, .LC121 mov x0, x21 add x1, x1, :lo12:.LC121 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x22,3716] + ldrh w2, [x25,900] adrp x1, .LC122 mov x0, x21 add x1, x1, :lo12:.LC122 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3426] + ldrh w2, [x20,610] adrp x1, .LC123 mov x0, x21 add x1, x1, :lo12:.LC123 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x20,3430] + ldrb w2, [x20,614] adrp x1, .LC124 mov x0, x21 add x1, x1, :lo12:.LC124 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3424] + ldrh w2, [x20,608] adrp x1, .LC125 mov x0, x21 add x1, x1, :lo12:.LC125 bl sprintf add x21, x21, x0, sxtw - ldrb w2, [x20,3432] + ldrb w2, [x20,616] adrp x1, .LC126 mov x0, x21 add x1, x1, :lo12:.LC126 bl sprintf add x21, x21, x0, sxtw - ldrh w2, [x20,3428] + ldrh w2, [x20,612] adrp x1, .LC127 mov x0, x21 add x1, x1, :lo12:.LC127 bl sprintf add x21, x21, x0, sxtw - ldr w3, [x22,872] + ldr w3, [x22,2408] adrp x1, .LC128 - ldr w2, [x22,660] + ldr w2, [x22,2196] add x1, x1, :lo12:.LC128 - ldr w4, [x20,3556] + ldr w4, [x20,740] mov x0, x21 - ldr w5, [x20,3548] + ldr w5, [x20,732] orr w2, w2, w3, lsl 8 - ldr w3, [x20,3552] + ldr w3, [x20,736] bl sprintf add x19, x21, x0, sxtw - ldr w2, [x20,3544] + ldr w2, [x20,728] adrp x1, .LC129 mov x0, x19 add x1, x1, :lo12:.LC129 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x20,3568] + ldr w2, [x20,752] adrp x1, .LC130 mov x0, x19 add x1, x1, :lo12:.LC130 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,960] + ldrh w2, [x22,2496] adrp x1, .LC131 mov x0, x19 add x1, x1, :lo12:.LC131 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,962] + ldrh w2, [x22,2498] adrp x1, .LC132 mov x0, x19 add x1, x1, :lo12:.LC132 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x22,944] + ldr w2, [x22,2480] adrp x1, .LC133 mov x0, x19 add x1, x1, :lo12:.LC133 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x22,964] + ldrh w2, [x22,2500] adrp x1, .LC134 add x1, x1, :lo12:.LC134 mov x0, x19 @@ -14569,7 +14684,7 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC135 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x22,3608] + ldrh w0, [x25,792] bl GetFreeBlockMaxEraseCount uxth w2, w0 adrp x1, .LC136 @@ -14577,93 +14692,94 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC136 bl sprintf add x19, x19, x0, sxtw - ldrh w0, [x20,3424] + ldrh w0, [x20,608] mov w1, 65535 cmp w0, w1 - beq .L2203 + beq .L2208 ubfiz x2, x0, 1, 16 - ldr x3, [x22,1192] + ldr x3, [x22,2728] adrp x1, .LC137 mov x0, x19 add x1, x1, :lo12:.LC137 ldrh w2, [x3,x2] bl sprintf add x19, x19, x0, sxtw -.L2203: +.L2208: mov w0, 0 adrp x22, .LC138 mov w20, 0 - mov w27, 65535 + mov w28, 65535 bl List_get_gc_head_node - mov w26, 6 + mov w27, 6 uxth w3, w0 add x22, x22, :lo12:.LC138 -.L2205: - cmp w3, w27 - beq .L2204 +.L2210: + cmp w3, w28 + beq .L2209 add x21, x24, :lo12:.LANCHOR2 ubfiz x6, x3, 1, 16 - umull x25, w3, w26 + umull x25, w3, w27 mov x0, x19 mov w2, w20 - ldr x5, [x21,1288] + ldr x5, [x21,2824] mov x1, x22 - ldr x4, [x21,1192] + ldr x4, [x21,2728] add w20, w20, 1 - ldr x7, [x21,1176] + ldr x7, [x21,2712] 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,1288] + ldr x0, [x21,2824] cmp w20, 16 ldrh w3, [x0,x25] - bne .L2205 -.L2204: + bne .L2210 +.L2209: + add x26, x26, :lo12:.LANCHOR4 add x1, x24, :lo12:.LANCHOR2 adrp x22, .LC139 mov w20, 0 mov w27, 65535 - mov w26, 6 add x22, x22, :lo12:.LC139 - ldr x0, [x1,3600] - ldr x3, [x1,1288] + ldr x0, [x26,784] + mov w26, 6 + ldr x3, [x1,2824] sub x3, x0, x3 mov x0, -6148914691236517206 asr x3, x3, 1 madd x3, x0, x3, x3 uxth w3, w3 -.L2207: +.L2212: cmp w3, w27 - beq .L2206 + beq .L2211 add x21, x24, :lo12:.LANCHOR2 ubfiz x5, x3, 1, 16 umull x25, w3, w26 mov x0, x19 mov w2, w20 - ldr x4, [x21,1288] + ldr x4, [x21,2824] mov x1, x22 - ldr x6, [x21,1176] + ldr x6, [x21,2712] 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,1288] + ldr x0, [x21,2824] cmp w20, 4 ldrh w3, [x0,x25] - bne .L2207 -.L2206: + bne .L2212 +.L2211: sub w0, w19, w23 -.L2202: +.L2207: 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], 112 ret .size FtlPrintInfo2buf, .-FtlPrintInfo2buf @@ -14694,119 +14810,121 @@ ftl_proc_ftl_read: .type GetSwlReplaceBlock, %function GetSwlReplaceBlock: stp x29, x30, [sp, -96]! - adrp x0, .LANCHOR4 - add x1, x0, :lo12:.LANCHOR4 + adrp x0, .LANCHOR5 + add x1, x0, :lo12:.LANCHOR5 add x29, sp, 0 stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] adrp x19, .LANCHOR2 - ldr w3, [x1,3996] + ldr w3, [x1,1180] add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,924] + ldr w2, [x1,2460] cmp w3, w2 - bcs .L2212 - str wzr, [x1,908] - ldrh w3, [x1,764] - ldr x5, [x1,1176] + bcs .L2217 + str wzr, [x1,2444] + ldrh w3, [x1,2300] + ldr x5, [x1,2712] mov x1, 0 -.L2213: +.L2218: cmp w3, w1 - bls .L2245 + bls .L2250 add x4, x19, :lo12:.LANCHOR2 ldrh w6, [x5,x1,lsl 1] add x1, x1, 1 - ldr w2, [x4,908] + ldr w2, [x4,2444] add w2, w6, w2 - str w2, [x4,908] - b .L2213 -.L2245: + str w2, [x4,2444] + b .L2218 +.L2250: add x2, x19, :lo12:.LANCHOR2 - add x4, x0, :lo12:.LANCHOR4 - ldr w1, [x2,908] + add x4, x0, :lo12:.LANCHOR5 + ldr w1, [x2,2444] udiv w3, w1, w3 - str w3, [x4,3996] - ldr w3, [x2,912] + str w3, [x4,1180] + ldr w3, [x2,2448] sub w1, w1, w3 - ldrh w3, [x2,816] + ldrh w3, [x2,2352] udiv w1, w1, w3 - str w1, [x2,908] - b .L2215 -.L2212: - ldr w2, [x1,920] - cmp w3, w2 - bls .L2215 - add w2, w2, 1 - str w2, [x1,920] - mov w1, 0 + str w1, [x2,2444] + b .L2220 .L2217: + ldr w2, [x1,2456] + cmp w3, w2 + bls .L2220 + add w2, w2, 1 + str w2, [x1,2456] + mov w1, 0 +.L2222: add x2, x19, :lo12:.LANCHOR2 - ldrh w3, [x2,764] + ldrh w3, [x2,2300] cmp w1, w3 - bcs .L2215 + bcs .L2220 ubfiz x3, x1, 1, 32 - ldr x4, [x2,1176] + ldr x4, [x2,2712] add w1, w1, 1 ldrh w2, [x4,x3] add w2, w2, 1 strh w2, [x4,x3] - b .L2217 -.L2215: - add x1, x19, :lo12:.LANCHOR2 - add x0, x0, :lo12:.LANCHOR4 - ldr w21, [x1,924] - ldr w23, [x0,3996] - add w0, w21, 256 - cmp w0, w23 - bls .L2220 - ldr w2, [x1,920] - add w0, w21, 768 - cmp w0, w2 - bls .L2220 - ldr w0, [x1,660] - cbz w0, .L2223 - cmp w21, 40 - bls .L2220 -.L2223: - mov w0, 65535 b .L2222 .L2220: - add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3608] + add x1, x19, :lo12:.LANCHOR2 + add x0, x0, :lo12:.LANCHOR5 + ldr w21, [x1,2460] + ldr w23, [x0,1180] + add w0, w21, 256 + cmp w0, w23 + bls .L2225 + ldr w2, [x1,2456] + add w0, w21, 768 + cmp w0, w2 + bls .L2225 + ldr w0, [x1,2196] + cbz w0, .L2228 + cmp w21, 40 + bls .L2225 +.L2228: + mov w0, 65535 + b .L2227 +.L2225: + adrp x20, .LANCHOR4 + add x0, x20, :lo12:.LANCHOR4 + ldrh w0, [x0,792] add w0, w0, w0, lsl 1 lsr w0, w0, 2 bl GetFreeBlockMaxEraseCount uxth w6, w0 add w0, w21, 64 cmp w6, w0 - bcs .L2232 + bcs .L2237 cmp w21, 40 - bhi .L2223 -.L2232: - add x1, x19, :lo12:.LANCHOR2 - ldr x3, [x1,3576] - cbz x3, .L2223 + bhi .L2228 +.L2237: + add x20, x20, :lo12:.LANCHOR4 + ldr x3, [x20,760] + cbz x3, .L2228 + add x0, x19, :lo12:.LANCHOR2 mov w26, 65535 - mov x0, -6148914691236517206 - ldrh w9, [x1,764] - mov w20, w26 - ldr x7, [x1,1288] - mov w8, w26 - ldr x25, [x1,1176] - add x0, x0, 1 mov w1, 0 + mov w20, w26 + mov w8, w26 mov w10, 6 -.L2225: + ldrh w9, [x0,2300] + ldr x7, [x0,2824] + ldr x25, [x0,2712] + mov x0, -6148914691236517206 + add x0, x0, 1 +.L2230: ldrh w5, [x3] cmp w5, w8 - beq .L2227 + beq .L2232 add w1, w1, 1 uxth w1, w1 cmp w1, w9 - bhi .L2223 + bhi .L2228 ldrh w2, [x3,4] - cbz w2, .L2226 + cbz w2, .L2231 sub x4, x3, x7 asr x4, x4, 1 mul x4, x4, x0 @@ -14814,61 +14932,61 @@ GetSwlReplaceBlock: and x4, x4, 65535 ldrh w2, [x25,x4,lsl 1] cmp w2, w21 - bls .L2231 + bls .L2236 cmp w2, w26 - bcs .L2226 + bcs .L2231 mov w26, w2 mov w20, w3 -.L2226: +.L2231: umull x3, w5, w10 add x3, x7, x3 - b .L2225 -.L2231: + b .L2230 +.L2236: mov w20, w3 -.L2227: +.L2232: mov w0, 65535 cmp w20, w0 - beq .L2223 + beq .L2228 ubfiz x24, x20, 1, 16 ldrh w22, [x25,x24] cmp w22, w21 - bls .L2229 + bls .L2234 str x6, [x29,88] bl GetFreeBlockMinEraseCount ldr x6, [x29,88] cmp w21, w0, uxth - bcs .L2229 + bcs .L2234 add x0, x19, :lo12:.LANCHOR2 - str w26, [x0,924] -.L2229: + str w26, [x0,2460] +.L2234: cmp w22, w23 - bcs .L2223 + bcs .L2228 add w0, w22, 128 cmp w6, w0 - ble .L2223 + ble .L2228 add w0, w22, 256 cmp w0, w23 - bcc .L2230 + bcc .L2235 add x0, x19, :lo12:.LANCHOR2 add w22, w22, 768 - ldr w0, [x0,920] + ldr w0, [x0,2456] cmp w22, w0 - bcs .L2223 -.L2230: + bcs .L2228 +.L2235: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC141 ldrh w5, [x25,x24] add x0, x0, :lo12:.LC141 mov w1, w20 mov w2, w23 - ldr x4, [x19,1192] - ldr w3, [x19,920] + ldr x4, [x19,2728] + ldr w3, [x19,2456] ldrh w4, [x4,x24] bl printk mov w0, 1 - str w0, [x19,932] + str w0, [x19,2468] mov w0, w20 -.L2222: +.L2227: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -14885,13 +15003,13 @@ free_data_superblock: mov w1, 65535 cmp w0, w1 add x29, sp, 0 - beq .L2247 - adrp x2, .LANCHOR2+1192 + beq .L2252 + adrp x2, .LANCHOR2+2728 ubfiz x1, x0, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2+1192] + ldr x2, [x2,#:lo12:.LANCHOR2+2728] strh wzr, [x2,x1] bl INSERT_FREE_LIST -.L2247: +.L2252: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -14900,311 +15018,329 @@ free_data_superblock: .global allocate_data_superblock .type allocate_data_superblock, %function allocate_data_superblock: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR2 stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR2 + adrp x19, .LANCHOR2 + add x1, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w1, [x19,1408] stp x27, x28, [sp,80] - cbnz w1, .L2249 + ldr w1, [x1,2944] + cbnz w1, .L2254 + adrp x21, .LANCHOR4 mov x20, x0 - add x23, x19, 3712 - adrp x22, .LANCHOR0 - mov w24, 7 - add x25, x19, 3600 -.L2250: + add x21, x21, :lo12:.LANCHOR4 + add x23, x21, 896 + mov x22, x21 + add x24, x21, 784 +.L2255: cmp x20, x23 - bne .L2251 - ldrh w2, [x19,3608] - ldr w4, [x19,932] - lsr w3, w2, 1 - add w1, w3, 1 - mul w0, w2, w4 - add w1, w1, w0, lsr 2 - ldr w0, [x19,660] + bne .L2256 + add x2, x19, :lo12:.LANCHOR2 + ldrh w0, [x21,792] + lsr w3, w0, 1 + ldr w4, [x2,2468] + add w5, w3, 1 + mul w1, w0, w4 + add w1, w5, w1, lsr 2 + ldr w5, [x2,2196] uxth w1, w1 - cbz w0, .L2252 - ldr w0, [x19,924] - cmp w0, 39 - bhi .L2252 - cmp w0, 2 + cbz w5, .L2257 + ldr w2, [x2,2460] + cmp w2, 39 + bhi .L2257 + cmp w2, 2 mov w1, 0 - bls .L2253 - tbz x2, 0, .L2280 - cbz w4, .L2253 -.L2280: + bls .L2258 + tbz x0, 0, .L2285 + cbz w4, .L2258 +.L2285: mov w1, w3 - b .L2252 -.L2251: + b .L2257 +.L2256: ldrb w0, [x20,8] mov w1, 0 cmp w0, 1 - bne .L2253 - ldrh w0, [x19,776] + bne .L2258 + add x2, x19, :lo12:.LANCHOR2 + ldrh w0, [x2,2312] cmp w0, 1 - beq .L2253 - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbnz w0, .L2253 - ldr w2, [x19,660] - ldrh w0, [x19,3608] + beq .L2258 + ldrb w0, [x2,1228] + cbnz w0, .L2258 + ldr w3, [x2,2196] + ldrh w0, [x21,792] lsr w1, w0, 3 - cbz w2, .L2252 - ldr w2, [x19,924] + cbz w3, .L2257 + ldr w2, [x2,2460] cmp w2, 1 - bhi .L2252 - mul w1, w0, w24 + bhi .L2257 + mov w1, 7 + mul w1, w0, w1 lsr w1, w1, 3 -.L2252: - cbz w1, .L2253 +.L2257: + cbz w1, .L2258 sub w1, w1, #1 uxth w1, w1 -.L2253: +.L2258: ldrb w2, [x20,8] - mov x0, x25 + mov x0, x24 + add x26, x19, :lo12:.LANCHOR2 bl List_pop_index_node - uxth w28, w0 - ldrh w0, [x19,3608] + uxth w27, w0 + ldrh w0, [x22,792] sub w0, w0, #1 - strh w0, [x19,3608] - ldrh w0, [x19,764] - cmp w0, w28 - bls .L2250 - ubfiz x26, x28, 1, 16 - ldr x0, [x19,1192] - ldrh w0, [x0,x26] - cbnz w0, .L2250 - strh w28, [x20] + strh w0, [x22,792] + ldrh w0, [x26,2300] + cmp w0, w27 + bls .L2255 + ubfiz x25, x27, 1, 16 + ldr x0, [x26,2728] + ldrh w0, [x0,x25] + cbnz w0, .L2255 + strh w27, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20,7] - cbz w0, .L2305 + cbz w0, .L2261 mov x0, 0 - ldrh w5, [x19,756] - mov w27, w0 + ldrh w5, [x26,2292] mov x3, 56 + mov w26, w0 mov w6, 65535 -.L2257: - cmp w5, w0, uxth - bls .L2308 - ldr x4, [x19,1024] + b .L2262 +.L2261: + ldr x0, [x26,2728] + b .L2310 +.L2264: + add x1, x19, :lo12:.LANCHOR2 + ldr x4, [x1,2560] 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 .L2258 - umull x2, w27, w3 - add w27, w27, 1 + beq .L2263 + umull x2, w26, w3 + add w26, w26, 1 lsl w1, w1, 10 add x2, x4, x2 - uxth w27, w27 + uxth w26, w26 str w1, [x2,4] -.L2258: +.L2263: add x0, x0, 1 - b .L2257 -.L2308: - add x0, x19, 3616 +.L2262: + cmp w5, w0, uxth + bhi .L2264 + add x0, x22, 800 cmp x20, x0 - bne .L2260 - ldr w1, [x19,660] - cbz w1, .L2260 - ldr x1, [x19,1176] - ldrh w1, [x1,x26] + bne .L2265 + add x1, x19, :lo12:.LANCHOR2 + ldr w2, [x1,2196] + cbz w2, .L2265 + ldr x1, [x1,2712] + ldrh w1, [x1,x25] cmp w1, 40 - bls .L2260 - strb wzr, [x19,3624] -.L2260: - ldrb w0, [x20,8] - cbnz w0, .L2261 - ldr x0, [x19,1176] - mov w1, 2 - ldrh w2, [x0,x26] - cbz w2, .L2306 - ldrh w1, [x19,816] - add w1, w2, w1 -.L2306: - strh w1, [x0,x26] - mov w1, 0 - ldr w0, [x19,908] - add w0, w0, 1 - str w0, [x19,908] - mov w0, w28 - bl ftl_set_blk_mode - b .L2264 -.L2261: - ldr x1, [x19,1176] - ldrh w0, [x1,x26] - add w0, w0, 1 - strh w0, [x1,x26] - ldr w0, [x19,912] - add w0, w0, 1 - str w0, [x19,912] - mov w0, w28 - bl ftl_set_blk_mode.part.17 -.L2264: - ldr x0, [x19,1176] - ldr w1, [x19,920] - ldrh w0, [x0,x26] - cmp w0, w1 bls .L2265 - str w0, [x19,920] + strb wzr, [x22,808] .L2265: - ldrh w1, [x19,816] + ldrb w0, [x20,8] + cbnz w0, .L2266 + add x1, x19, :lo12:.LANCHOR2 + ldr x0, [x1,2712] + ldrh w2, [x0,x25] + cbz w2, .L2267 + ldrh w1, [x1,2352] + add w1, w2, w1 + b .L2311 +.L2267: + mov w1, 2 +.L2311: + strh w1, [x0,x25] + add x1, x19, :lo12:.LANCHOR2 + ldr w0, [x1,2444] + add w0, w0, 1 + str w0, [x1,2444] + mov w0, w27 + mov w1, 0 + bl ftl_set_blk_mode + b .L2269 +.L2266: + add x0, x19, :lo12:.LANCHOR2 + ldr x2, [x0,2712] + ldrh w1, [x2,x25] + add w1, w1, 1 + strh w1, [x2,x25] + ldr w1, [x0,2448] + add w1, w1, 1 + str w1, [x0,2448] + mov w0, w27 + bl ftl_set_blk_mode.part.17 +.L2269: + add x0, x19, :lo12:.LANCHOR2 + ldr x1, [x0,2712] + ldr w2, [x0,2456] + ldrh w1, [x1,x25] + cmp w1, w2 + bls .L2270 + str w1, [x0,2456] +.L2270: + add x0, x19, :lo12:.LANCHOR2 + ldrh w2, [x0,2352] + ldr w3, [x0,2444] + ldr w1, [x0,2448] + madd w1, w2, w3, w1 + ldrh w2, [x0,2300] mov x3, 56 - ldr w2, [x19,908] - ldr w0, [x19,912] - madd w0, w1, w2, w0 - ldrh w1, [x19,764] - udiv w0, w0, w1 - adrp x1, .LANCHOR4+3996 - str w0, [x1,#:lo12:.LANCHOR4+3996] - ldr x1, [x19,1168] + udiv w1, w1, w2 + adrp x2, .LANCHOR5+1180 + str w1, [x2,#:lo12:.LANCHOR5+1180] + ldr x1, [x0,2704] ldr w0, [x1,16] add w0, w0, 1 str w0, [x1,16] mov x0, 0 -.L2266: - cmp w27, w0, uxth - bls .L2309 - ldr x1, [x19,1024] +.L2271: + cmp w26, w0, uxth + bls .L2313 + add x1, x19, :lo12:.LANCHOR2 + ldr x1, [x1,2560] madd x1, x0, x3, x1 add x0, x0, 1 ldr w2, [x1,4] and w2, w2, -1024 str w2, [x1,4] - b .L2266 -.L2309: - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbz w0, .L2268 - ldrb w0, [x20,8] - cmp w0, 1 - ldr x0, [x19,1024] - bne .L2269 - mov w1, 0 - b .L2307 -.L2269: - mov w1, 1 -.L2307: - mov w2, w27 - bl FlashEraseBlocks -.L2268: + b .L2271 +.L2313: + add x0, x19, :lo12:.LANCHOR2 + ldrb w1, [x0,1228] + cbz w1, .L2273 ldrb w1, [x20,8] - mov w2, w27 - ldr x0, [x19,1024] + ldr x0, [x0,2560] + cmp w1, 1 + bne .L2274 + mov w1, 0 + b .L2312 +.L2274: + mov w1, 1 +.L2312: + mov w2, w26 bl FlashEraseBlocks - mov x1, 0 - mov x4, 56 - mov w2, w1 -.L2270: - cmp w27, w1, uxth - bls .L2310 - mul x0, x1, x4 - ldr x3, [x19,1024] - add x5, x3, x0 - ldr w3, [x3,x0] - cmn w3, #1 - bne .L2271 - ldr w0, [x5,4] - add w2, w2, 1 - str x4, [x29,104] +.L2273: + add x0, x19, :lo12:.LANCHOR2 + ldrb w1, [x20,8] + mov w2, w26 + mov x28, 0 + ldr x0, [x0,2560] + bl FlashEraseBlocks + mov w1, w28 + mov x3, 56 +.L2275: + cmp w26, w28, uxth + bls .L2314 + add x2, x19, :lo12:.LANCHOR2 + mul x0, x28, x3 + ldr x2, [x2,2560] + add x4, x2, x0 + ldr w2, [x2,x0] + cmn w2, #1 + bne .L2276 + ldr w0, [x4,4] + add w1, w1, 1 + str x3, [x29,96] lsr w0, w0, 10 - str x3, [x29,112] + str x2, [x29,104] + str x1, [x29,112] str x1, [x29,120] - str x2, [x29,128] - str x2, [x29,136] bl FtlBbmMapBadBlock + add x0, x20, x28, lsl 1 + ldr x2, [x29,104] + ldr x3, [x29,96] ldr x1, [x29,120] - ldr x3, [x29,112] - ldr x4, [x29,104] - add x0, x20, x1, lsl 1 - ldr x2, [x29,136] - strh w3, [x0,16] + strh w2, [x0,16] ldrb w0, [x20,7] sub w0, w0, #1 strb w0, [x20,7] -.L2271: - add x1, x1, 1 - b .L2270 -.L2310: - cbz w2, .L2273 - mov w0, w28 +.L2276: + add x28, x28, 1 + b .L2275 +.L2314: + cbz w1, .L2278 + mov w0, w27 bl update_multiplier_value bl FtlBbmTblFlush -.L2273: +.L2278: ldrb w0, [x20,7] - cbnz w0, .L2274 -.L2305: - ldr x0, [x19,1192] + cbnz w0, .L2279 + add x0, x19, :lo12:.LANCHOR2 + ldr x0, [x0,2728] +.L2310: mov w1, -1 - strh w1, [x0,x26] - b .L2250 -.L2274: - add x21, x21, :lo12:.LANCHOR2 + strh w1, [x0,x25] + b .L2255 +.L2279: + add x19, x19, :lo12:.LANCHOR2 strh wzr, [x20,2] strb wzr, [x20,6] - ldrh w1, [x21,824] - strh w28, [x20] + ldrh w1, [x19,2360] + strh w27, [x20] mul w0, w0, w1 - ldr w1, [x21,876] + ldr w1, [x19,2412] str w1, [x20,12] uxth w0, w0 add w1, w1, 1 strh w0, [x20,4] - str w1, [x21,876] - ldr x1, [x21,1192] + str w1, [x19,2412] + ldr x1, [x19,2728] ldrh w2, [x20] strh w0, [x1,x2,lsl 1] -.L2249: +.L2254: 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], 144 + ldp x29, x30, [sp], 128 ret .size allocate_data_superblock, .-allocate_data_superblock .align 2 .global FtlGcBufInit .type FtlGcBufInit, %function FtlGcBufInit: - adrp x0, .LANCHOR4+4000 + adrp x0, .LANCHOR5+1184 mov w1, 0 adrp x7, .LANCHOR2 mov w8, 24 mov w9, 1 mov w4, 4 - str wzr, [x0,#:lo12:.LANCHOR4+4000] + str wzr, [x0,#:lo12:.LANCHOR5+1184] mov w10, 56 -.L2312: +.L2316: add x2, x7, :lo12:.LANCHOR2 adrp x6, .LANCHOR2 - ldrh w0, [x2,756] + ldrh w0, [x2,2292] cmp w1, w0 - bcs .L2316 + bcs .L2320 umull x3, w1, w8 - ldr x5, [x2,1112] - ldr x6, [x2,1080] + ldr x5, [x2,2648] + ldr x6, [x2,2616] add x0, x5, x3 str w9, [x0,16] - ldrh w0, [x2,834] + ldrh w0, [x2,2370] mul w0, w1, w0 sdiv w0, w0, w4 add x0, x6, x0, sxtw 2 str x0, [x5,x3] - ldrh w0, [x2,836] - ldr x6, [x2,1112] - ldr x11, [x2,1136] + ldrh w0, [x2,2372] + ldr x6, [x2,2648] + ldr x11, [x2,2672] mul w0, w1, w0 add x5, x6, x3 - ldr x2, [x2,1032] + ldr x2, [x2,2568] sdiv w0, w0, w4 add x0, x11, x0, sxtw 2 str x0, [x5,8] @@ -15216,28 +15352,28 @@ FtlGcBufInit: str x2, [x0,8] ldr x2, [x5,8] str x2, [x0,16] - b .L2312 -.L2316: + b .L2316 +.L2320: mov w7, 24 mov w4, 4 -.L2314: +.L2318: add x1, x6, :lo12:.LANCHOR2 - ldr w2, [x1,1048] + ldr w2, [x1,2584] cmp w0, w2 - bcs .L2317 + bcs .L2321 umull x3, w0, w7 - ldr x5, [x1,1112] - ldr x8, [x1,1080] + ldr x5, [x1,2648] + ldr x8, [x1,2616] add x2, x5, x3 str wzr, [x2,16] - ldrh w2, [x1,834] + ldrh w2, [x1,2370] mul w2, w0, w2 sdiv w2, w2, w4 add x2, x8, x2, sxtw 2 str x2, [x5,x3] - ldrh w2, [x1,836] - ldr x5, [x1,1112] - ldr x1, [x1,1136] + ldrh w2, [x1,2372] + ldr x5, [x1,2648] + ldr x1, [x1,2672] mul w2, w0, w2 add x3, x5, x3 add w0, w0, 1 @@ -15245,8 +15381,8 @@ FtlGcBufInit: uxth w0, w0 add x1, x1, x2, sxtw 2 str x1, [x3,8] - b .L2314 -.L2317: + b .L2318 +.L2321: ret .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -15258,39 +15394,41 @@ FtlVariablesInit: mov w1, 0 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR4 + adrp x20, .LANCHOR5 adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - add x20, x20, :lo12:.LANCHOR4 - ldrh w2, [x19,844] - strh w0, [x20,4016] + add x20, x20, :lo12:.LANCHOR5 + ldrh w2, [x19,2380] + strh w0, [x20,1200] mov w0, -1 - str w0, [x20,4028] + str w0, [x20,1212] lsl w2, w2, 1 - ldr x0, [x19,1216] - str xzr, [x20,4008] - str wzr, [x20,4020] - str wzr, [x20,4024] - str wzr, [x19,660] - strh wzr, [x19,1400] + ldr x0, [x19,2752] + str xzr, [x20,1192] + str wzr, [x20,1204] + str wzr, [x20,1208] + str wzr, [x19,2196] + strh wzr, [x19,2936] bl ftl_memset - ldrh w2, [x19,766] + ldrh w2, [x19,2302] mov w1, 0 - ldr x0, [x19,1176] + ldr x0, [x19,2712] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x19,766] + ldrh w2, [x19,2302] mov w1, 0 - ldr x0, [x19,1160] + ldr x0, [x19,2696] lsl w2, w2, 1 bl ftl_memset - add x0, x19, 3528 + adrp x0, .LANCHOR4 mov w1, 0 + add x0, x0, :lo12:.LANCHOR4 mov w2, 48 + add x0, x0, 712 bl ftl_memset mov w1, 0 mov w2, 512 - add x0, x20, 3472 + add x0, x20, 656 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit @@ -15308,34 +15446,34 @@ FtlGcBufFree: add x2, x2, :lo12:.LANCHOR2 mov w7, 56 mov w9, 24 - ldr w8, [x2,1048] - ldr x5, [x2,1112] -.L2320: + ldr w8, [x2,2584] + ldr x5, [x2,2648] +.L2324: cmp w3, w1 - bcs .L2319 + bcs .L2323 umull x4, w3, w7 mov w2, 0 add x4, x0, x4 -.L2325: +.L2329: cmp w2, w8 - bcs .L2322 + bcs .L2326 umull x6, w2, w9 add x10, x5, x6 ldr x11, [x5,x6] ldr x6, [x4,8] cmp x11, x6 - bne .L2321 + bne .L2325 str wzr, [x10,16] - b .L2322 -.L2321: + b .L2326 +.L2325: add w2, w2, 1 uxth w2, w2 - b .L2325 -.L2322: + b .L2329 +.L2326: add w3, w3, 1 uxth w3, w3 - b .L2320 -.L2319: + b .L2324 +.L2323: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -15347,20 +15485,20 @@ FtlGcBufAlloc: add x2, x2, :lo12:.LANCHOR2 mov w8, 1 mov w9, 56 - ldr w5, [x2,1048] - ldr x6, [x2,1112] + ldr w5, [x2,2584] + ldr x6, [x2,2648] mov w2, 0 -.L2327: - cmp w2, w1 - bcs .L2333 - mov w3, 0 .L2331: + cmp w2, w1 + bcs .L2337 + mov w3, 0 +.L2335: cmp w3, w5 - bcs .L2329 + bcs .L2333 umull x4, w3, w7 add x4, x6, x4 ldr w10, [x4,16] - cbnz w10, .L2328 + cbnz w10, .L2332 umull x3, w2, w9 str w8, [x4,16] add x3, x0, x3 @@ -15368,41 +15506,41 @@ FtlGcBufAlloc: str x10, [x3,8] ldr x4, [x4,8] str x4, [x3,16] - b .L2329 -.L2328: + b .L2333 +.L2332: add w3, w3, 1 uxth w3, w3 - b .L2331 -.L2329: + b .L2335 +.L2333: add w2, w2, 1 uxth w2, w2 - b .L2327 -.L2333: + b .L2331 +.L2337: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 .global IsBlkInGcList .type IsBlkInGcList, %function IsBlkInGcList: - adrp x1, .LANCHOR4+4032 + adrp x1, .LANCHOR5+1216 uxth w0, w0 - ldrh w2, [x1,#:lo12:.LANCHOR4+4032] - adrp x1, .LANCHOR2+984 - ldr x3, [x1,#:lo12:.LANCHOR2+984] + ldrh w2, [x1,#:lo12:.LANCHOR5+1216] + adrp x1, .LANCHOR2+2520 + ldr x3, [x1,#:lo12:.LANCHOR2+2520] mov x1, 0 -.L2335: +.L2339: cmp w2, w1, uxth - bls .L2339 + bls .L2343 add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4,-2] cmp w4, w0 - bne .L2335 + bne .L2339 mov w0, 1 - b .L2336 -.L2339: + b .L2340 +.L2343: mov w0, 0 -.L2336: +.L2340: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -15417,50 +15555,50 @@ FtlGcUpdatePage: str x1, [x29,32] str x2, [x29,40] bl P2V_block_in_plane - adrp x3, .LANCHOR4 + adrp x3, .LANCHOR5 ldr x2, [x29,40] - add x4, x3, :lo12:.LANCHOR4 + add x4, x3, :lo12:.LANCHOR5 ldr x1, [x29,32] uxth w9, w0 mov x6, 0 - ldrh w8, [x4,4032] + ldrh w8, [x4,1216] adrp x4, .LANCHOR2 add x5, x4, :lo12:.LANCHOR2 - ldr x7, [x5,984] -.L2341: + ldr x7, [x5,2520] +.L2345: uxth w5, w6 cmp w5, w8 - bcs .L2345 + bcs .L2349 add x6, x6, 1 add x10, x7, x6, lsl 1 ldrh w10, [x10,-2] cmp w10, w9 - bne .L2341 -.L2345: + bne .L2345 +.L2349: cmp w5, w8 - bne .L2343 + bne .L2347 ubfiz x5, x5, 1, 16 strh w0, [x7,x5] - add x0, x3, :lo12:.LANCHOR4 - ldrh w5, [x0,4032] + add x0, x3, :lo12:.LANCHOR5 + ldrh w5, [x0,1216] add w5, w5, 1 - strh w5, [x0,4032] -.L2343: - add x3, x3, :lo12:.LANCHOR4 + strh w5, [x0,1216] +.L2347: + add x3, x3, :lo12:.LANCHOR5 add x4, x4, :lo12:.LANCHOR2 mov w0, 12 - ldrh w5, [x3,4034] - ldr x6, [x4,992] + ldrh w5, [x3,1218] + ldr x6, [x4,2528] umull x5, w5, w0 add x6, x6, x5 str w1, [x6,4] - ldr x1, [x4,992] + ldr x1, [x4,2528] add x0, x1, x5 str w2, [x0,8] str w19, [x1,x5] - ldrh w0, [x3,4034] + ldrh w0, [x3,1218] add w0, w0, 1 - strh w0, [x3,4034] + strh w0, [x3,1218] ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -15470,22 +15608,22 @@ FtlGcUpdatePage: .type FtlGcPageVarInit, %function FtlGcPageVarInit: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR4 + adrp x0, .LANCHOR5 mov w1, 255 add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - add x0, x0, :lo12:.LANCHOR4 - ldrh w2, [x19,828] - strh wzr, [x0,4032] - strh wzr, [x0,4034] + add x0, x0, :lo12:.LANCHOR5 + ldrh w2, [x19,2364] + strh wzr, [x0,1216] + strh wzr, [x0,1218] lsl w2, w2, 1 - ldr x0, [x19,984] + ldr x0, [x19,2520] bl ftl_memset - ldrh w3, [x19,828] + ldrh w3, [x19,2364] mov w2, 12 - ldr x0, [x19,992] + ldr x0, [x19,2528] mov w1, 255 mul w2, w3, w2 bl ftl_memset @@ -15498,275 +15636,303 @@ FtlGcPageVarInit: .global FtlGcScanTempBlk .type FtlGcScanTempBlk, %function FtlGcScanTempBlk: - stp x29, x30, [sp, -208]! + stp x29, x30, [sp, -224]! add x29, sp, 0 stp x19, x20, [sp,16] mov x19, x0 adrp x0, .LANCHOR1 - str w1, [x29,128] + str w1, [x29,136] add x1, x0, :lo12:.LANCHOR1 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - str x0, [x29,120] - ldrh w26, [x1,3292] + str x0, [x29,128] + ldrh w27, [x1,3356] mov w1, 65535 - cmp w26, w1 - beq .L2378 - cbnz w26, .L2349 - b .L2350 -.L2378: - mov w26, 0 -.L2349: - adrp x0, .LANCHOR2+824 - ldr w1, [x29,128] - ldrh w0, [x0,#:lo12:.LANCHOR2+824] + cmp w27, w1 + beq .L2385 + cbnz w27, .L2353 + b .L2354 +.L2385: + mov w27, 0 +.L2353: + adrp x0, .LANCHOR2+2360 + ldr w1, [x29,136] + ldrh w0, [x0,#:lo12:.LANCHOR2+2360] cmp w1, w0 - bne .L2351 -.L2350: + bne .L2355 +.L2354: bl FtlGcPageVarInit -.L2351: +.L2355: mov w0, -1 - adrp x25, .LANCHOR2 - str w0, [x29,132] + adrp x23, .LANCHOR2 + str w0, [x29,140] adrp x0, .LC143 add x0, x0, :lo12:.LC143 - mov w23, 0 - mov x22, x25 - mov x21, x25 - str x0, [x29,112] -.L2352: - ldrh w0, [x19] - mov w20, 65535 - strb wzr, [x19,8] - cmp w0, w20 - beq .L2353 -.L2354: - str w20, [x29,140] -.L2375: - add x0, x25, :lo12:.LANCHOR2 - mov x2, x19 - mov w27, 0 - mov w11, 56 - mov w8, 4 - ldrh w6, [x0,756] - ldrh w9, [x0,834] - ldrh w10, [x0,836] - add x6, x19, x6, lsl 1 -.L2355: - cmp x2, x6 - beq .L2395 - ldrh w1, [x2,16] - ldr w0, [x29,140] - cmp w1, w0 - beq .L2356 - add x5, x22, :lo12:.LANCHOR2 - orr w1, w26, w1, lsl 10 - umull x0, w27, w11 - add w4, w27, 1 - ldr x7, [x5,1000] - add x7, x7, x0 - str w1, [x7,4] - ldr x1, [x5,1000] - ldr x7, [x5,1080] - add x0, x1, x0 - ldr x5, [x5,1136] - mul w1, w27, w9 - sdiv w1, w1, w8 - add x1, x7, x1, sxtw 2 - str x1, [x0,8] - mul w1, w27, w10 - uxth w27, w4 - sdiv w1, w1, w8 - add x1, x5, x1, sxtw 2 - str x1, [x0,16] + mov w24, 0 + mov x22, x23 + str x0, [x29,120] .L2356: - add x2, x2, 2 - b .L2355 -.L2395: - add x0, x22, :lo12:.LANCHOR2 - mov w1, w27 - mov w2, 0 - mov x24, 0 - ldr x0, [x0,1000] - bl FlashReadPages + ldrh w1, [x19] + mov w0, 65535 + strb wzr, [x19,8] + cmp w1, w0 + beq .L2386 .L2358: - cmp w27, w24, uxth - bls .L2396 - add x20, x22, :lo12:.LANCHOR2 + mov w28, w0 +.L2382: + 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] + add x5, x19, x5, lsl 1 +.L2359: + cmp x2, x5 + beq .L2404 + ldrh w1, [x2,16] + cmp w1, w28 + beq .L2360 + add x4, x23, :lo12:.LANCHOR2 + orr w1, w27, w1, lsl 10 + umull x0, w20, w10 + ldr x6, [x4,2536] + add x6, x6, x0 + str w1, [x6,4] + ldr x1, [x4,2536] + ldr x6, [x4,2616] + add x0, x1, x0 + ldr x4, [x4,2672] + mul w1, w20, w8 + sdiv w1, w1, w7 + add x1, x6, x1, sxtw 2 + str x1, [x0,8] + mul w1, w20, w9 + add w20, w20, 1 + uxth w20, w20 + sdiv w1, w1, w7 + add x1, x4, x1, sxtw 2 + str x1, [x0,16] +.L2360: + add x2, x2, 2 + b .L2359 +.L2404: + add x0, x23, :lo12:.LANCHOR2 + mov w1, w20 + mov w2, 0 + mov x25, 0 + ldr x0, [x0,2536] + bl FlashReadPages +.L2362: + cmp w20, w25, uxth + bls .L2405 + add x26, x23, :lo12:.LANCHOR2 mov x0, 56 - mul x28, x24, x0 - ldr x0, [x20,1000] - add x1, x0, x28 - ldr w8, [x0,x28] - ldr w2, [x1,4] - str w2, [x29,136] - ldr x7, [x1,16] - cbnz w8, .L2359 - ldrh w0, [x7] - ldr w1, [x29,140] + mul x21, x25, x0 + ldr x1, [x26,2536] + str x1, [x29,104] + add x2, x1, x21 + str x2, [x29,112] + ldr w0, [x2,4] + str w0, [x29,144] + ldr x0, [x29,144] + lsr x0, x0, 10 + bl P2V_plane + uxth w6, w0 + ldr x1, [x29,104] + ldr x2, [x29,112] + ldr w7, [x1,x21] + ldr x5, [x2,16] + cbnz w7, .L2363 + ldrh w0, [x5] + cmp w0, w28 + bne .L2364 +.L2367: + add x1, x22, :lo12:.LANCHOR2 + adrp x20, .LANCHOR5 + ldrb w0, [x1,1228] + cbz w0, .L2401 + add x20, x20, :lo12:.LANCHOR5 + mov w0, 1 + str w0, [x20,1208] + b .L2357 +.L2364: + ldr w0, [x5,8] + ldr w1, [x26,2940] cmp w0, w1 - beq .L2394 - ldr w0, [x7,8] - ldr w1, [x20,1404] - cmp w0, w1 - bhi .L2394 + bls .L2402 + b .L2367 +.L2401: + ldrh w2, [x19] + add x20, x20, :lo12:.LANCHOR5 + ldr x1, [x1,2728] + 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: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 ldrb w1, [x1,88] - cbz w1, .L2364 - add x1, x29, 148 - mov w2, w8 + cbz w1, .L2371 + add x1, x29, 164 + mov w2, w7 + str x5, [x29,112] str x7, [x29,104] - str x8, [x29,96] bl log2phys - ldr x7, [x29,104] - ldr w1, [x29,148] - ldr w0, [x7,12] + ldr x5, [x29,112] + ldr w1, [x29,164] + ldr w0, [x5,12] cmp w1, w0 - bne .L2364 + bne .L2371 cmn w1, #1 - beq .L2364 - str w0, [x29,156] + beq .L2371 + str w0, [x29,172] mov w1, 1 - ldr x0, [x20,1104] - ldr x8, [x29,96] - str x0, [x29,160] - ldr x0, [x20,1128] - mov w2, w8 - str x0, [x29,168] - add x0, x29, 152 - bl FlashReadPages - ldr x0, [x20,1000] - ldrh w2, [x20,830] - ldr x6, [x29,160] - add x5, x0, x28 + ldr x0, [x26,2640] ldr x7, [x29,104] + str x0, [x29,176] + ldr x0, [x26,2664] + mov w2, w7 + str x0, [x29,184] + add x0, x29, 168 + bl FlashReadPages + ldr x0, [x26,2536] + ldrh w2, [x26,2366] + ldr x4, [x29,176] + add x21, x0, x21 + ldr x5, [x29,112] lsl w2, w2, 7 mov x0, 0 -.L2366: +.L2373: cmp w2, w0 - bls .L2364 + bls .L2371 lsl x1, x0, 2 - ldr x8, [x5,8] + ldr x6, [x21,8] add x0, x0, 1 - ldr w8, [x8,x1] - ldr w1, [x6,x1] - cmp w8, w1 - beq .L2366 - adrp x0, .LC142 + ldr w6, [x6,x1] + ldr w1, [x4,x1] + cmp w6, w1 + beq .L2373 ldrh w1, [x19] - ldr w2, [x29,156] + adrp x0, .LC142 + ldr w2, [x29,172] add x0, x0, :lo12:.LC142 bl printk -.L2394: - add x0, x21, :lo12:.LANCHOR2 + add x0, x22, :lo12:.LANCHOR2 ldrh w1, [x19] - ldr x0, [x0,1192] + ldr x0, [x0,2728] strh wzr, [x0,x1,lsl 1] ldrh w0, [x19] bl INSERT_FREE_LIST - adrp x1, .LANCHOR4+3424 + adrp x1, .LANCHOR5+608 mov w0, -1 strh w0, [x19] - strh w0, [x1,#:lo12:.LANCHOR4+3424] - b .L2393 -.L2364: - ldr w0, [x7,12] - add x24, x24, 1 - ldr w1, [x29,136] - ldr w2, [x7,8] - bl FtlGcUpdatePage - b .L2358 -.L2359: - ldr x0, [x29,112] - ldrh w1, [x19] - ldr w2, [x29,136] - bl printk - ldr w0, [x20,660] - cbnz w0, .L2369 - adrp x0, .LANCHOR0+4044 - ldrb w0, [x0,#:lo12:.LANCHOR0+4044] - cbz w0, .L2370 -.L2369: - add x0, x21, :lo12:.LANCHOR2 - ldrh w1, [x19] - ldr x0, [x0,1176] - ldrh w0, [x0,x1,lsl 1] - cmp w0, 159 - bls .L2371 -.L2370: - add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,1000] - ldr w0, [x0,x28] - cmn w0, #1 - bne .L2372 + strh w0, [x1,#:lo12:.LANCHOR5+608] + b .L2403 .L2371: - add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,1000] - add x5, x0, x28 - ldr w0, [x5,4] - str w0, [x29,132] -.L2372: - add x0, x21, :lo12:.LANCHOR2 + ldr w0, [x5,12] + add x25, x25, 1 + ldr w1, [x29,144] + ldr w2, [x5,8] + bl FtlGcUpdatePage + b .L2362 +.L2363: + ldr x0, [x29,120] ldrh w1, [x19] - ldr x0, [x0,1192] - strh wzr, [x0,x1,lsl 1] - ldrh w0, [x19] - bl INSERT_FREE_LIST - mov w0, -1 - strh w0, [x19] -.L2393: - bl FtlGcPageVarInit - mov w26, 0 - b .L2352 -.L2396: - ldr w0, [x29,128] - add w23, w23, 1 - add w3, w26, 1 - cmp w23, w0 - uxth w26, w3 - bcs .L2374 + ldr w2, [x29,144] + bl printk + ldr w0, [x26,2196] + cbnz w0, .L2376 + ldrb w0, [x26,1228] + cbz w0, .L2377 .L2376: add x0, x22, :lo12:.LANCHOR2 - ldrh w0, [x0,824] - cmp w0, w26 - bhi .L2375 - b .L2353 -.L2374: - ldr x0, [x29,120] - ldr w2, [x29,140] - add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3292] - cmp w0, w2 - beq .L2376 - add w0, w0, w23 - strh w0, [x1,3292] - add x0, x22, :lo12:.LANCHOR2 - ldrh w0, [x0,824] - cmp w0, w26 - bls .L2376 - b .L2377 -.L2353: - ldr x0, [x29,120] - mov w1, -1 - strh w26, [x19,2] - mov w2, 0 - add x0, x0, :lo12:.LANCHOR1 - strb wzr, [x19,6] - strh w1, [x0,3292] - mov x0, x19 - mov w1, w26 - bl ftl_sb_update_avl_pages + ldrh w1, [x19] + ldr x0, [x0,2712] + ldrh w0, [x0,x1,lsl 1] + cmp w0, 159 + bls .L2378 .L2377: - ldr w0, [x29,132] + add x0, x22, :lo12:.LANCHOR2 + ldr x0, [x0,2536] + ldr w0, [x0,x21] + cmn w0, #1 + bne .L2379 +.L2378: + add x0, x22, :lo12:.LANCHOR2 + ldr x0, [x0,2536] + add x21, x0, x21 + ldr w0, [x21,4] + str w0, [x29,140] +.L2379: + add x0, x22, :lo12:.LANCHOR2 + ldrh w1, [x19] + ldr x0, [x0,2728] + strh wzr, [x0,x1,lsl 1] + ldrh w0, [x19] + bl INSERT_FREE_LIST + mov w0, -1 + strh w0, [x19] +.L2403: + bl FtlGcPageVarInit + mov w27, 0 + b .L2356 +.L2405: + ldr w0, [x29,136] + add w24, w24, 1 + add w3, w27, 1 + cmp w24, w0 + uxth w27, w3 + bcs .L2381 +.L2383: + add x0, x23, :lo12:.LANCHOR2 + ldrh w0, [x0,2360] + cmp w0, w27 + bhi .L2382 + b .L2386 +.L2381: + ldr x0, [x29,128] + add x1, x0, :lo12:.LANCHOR1 + ldrh w0, [x1,3356] + cmp w0, w28 + beq .L2383 + add w0, w0, w24 + strh w0, [x1,3356] + add x0, x23, :lo12:.LANCHOR2 + ldrh w0, [x0,2360] + cmp w0, w27 + bls .L2383 + b .L2384 +.L2386: + mov w6, 0 +.L2357: + 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] + mov x0, x19 + mov w1, w27 + bl ftl_sb_update_avl_pages +.L2384: + ldr w0, [x29,140] 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], 208 + ldp x29, x30, [sp], 224 ret .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -15779,46 +15945,46 @@ FtlGcRefreshOpenBlock: adrp x19, .LANCHOR2 uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,952] + ldrh w0, [x19,2488] cmp w0, w20 - beq .L2399 - ldrh w0, [x19,954] + beq .L2408 + ldrh w0, [x19,2490] cmp w0, w20 - beq .L2399 - ldrh w0, [x19,956] + beq .L2408 + ldrh w0, [x19,2492] cmp w0, w20 - beq .L2399 - ldrh w0, [x19,958] + beq .L2408 + ldrh w0, [x19,2494] cmp w0, w20 - beq .L2399 + beq .L2408 adrp x0, .LC144 mov w1, w20 add x0, x0, :lo12:.LC144 bl printk - ldrh w1, [x19,952] + ldrh w1, [x19,2488] mov w0, 65535 cmp w1, w0 - bne .L2401 - strh w20, [x19,952] - b .L2399 -.L2401: - ldrh w1, [x19,954] + bne .L2410 + strh w20, [x19,2488] + b .L2408 +.L2410: + ldrh w1, [x19,2490] cmp w1, w0 - bne .L2402 - strh w20, [x19,954] - b .L2399 -.L2402: - ldrh w1, [x19,956] + bne .L2411 + strh w20, [x19,2490] + b .L2408 +.L2411: + ldrh w1, [x19,2492] cmp w1, w0 - bne .L2403 - strh w20, [x19,956] - b .L2399 -.L2403: - ldrh w1, [x19,958] + bne .L2412 + strh w20, [x19,2492] + b .L2408 +.L2412: + ldrh w1, [x19,2494] cmp w1, w0 - bne .L2399 - strh w20, [x19,958] -.L2399: + bne .L2408 + strh w20, [x19,2494] +.L2408: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -15836,49 +16002,49 @@ FtlGcRefreshBlock: add x19, x19, :lo12:.LANCHOR2 str x21, [sp,32] mov w21, 0 - ldrh w0, [x19,952] + ldrh w0, [x19,2488] cmp w0, w20 - beq .L2405 - ldrh w0, [x19,954] + beq .L2414 + ldrh w0, [x19,2490] cmp w0, w20 - beq .L2405 - ldrh w0, [x19,956] + beq .L2414 + ldrh w0, [x19,2492] cmp w0, w20 - beq .L2405 - ldrh w0, [x19,958] + beq .L2414 + ldrh w0, [x19,2494] cmp w0, w20 - beq .L2405 + beq .L2414 adrp x0, .LC144 mov w1, w20 add x0, x0, :lo12:.LC144 bl printk - ldrh w1, [x19,952] + ldrh w1, [x19,2488] mov w0, 65535 cmp w1, w0 - bne .L2406 - strh w20, [x19,952] - b .L2405 -.L2406: - ldrh w1, [x19,954] + bne .L2415 + strh w20, [x19,2488] + b .L2414 +.L2415: + ldrh w1, [x19,2490] cmp w1, w0 - bne .L2407 - strh w20, [x19,954] - b .L2405 -.L2407: - ldrh w1, [x19,956] + bne .L2416 + strh w20, [x19,2490] + b .L2414 +.L2416: + ldrh w1, [x19,2492] cmp w1, w0 - bne .L2408 - strh w20, [x19,956] - b .L2405 -.L2408: - ldrh w1, [x19,958] + bne .L2417 + strh w20, [x19,2492] + b .L2414 +.L2417: + ldrh w1, [x19,2494] cmp w1, w0 - bne .L2413 - strh w20, [x19,958] - b .L2405 -.L2413: + bne .L2422 + strh w20, [x19,2494] + b .L2414 +.L2422: mov w21, -1 -.L2405: +.L2414: mov w0, w21 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -15900,49 +16066,49 @@ FtlGcMarkBadPhyBlk: str x23, [sp,48] bl P2V_block_in_plane uxth w21, w0 - ldrh w1, [x22,966] + ldrh w1, [x22,2502] adrp x0, .LC145 mov w2, w20 add x0, x0, :lo12:.LC145 bl printk mov w0, w21 bl FtlGcRefreshBlock - ldr w0, [x22,660] - cbz w0, .L2415 + ldr w0, [x22,2196] + cbz w0, .L2424 ubfiz x0, x21, 1, 16 - ldr x2, [x22,1176] + ldr x2, [x22,2712] ldrh w1, [x2,x0] cmp w1, 39 - bls .L2415 + bls .L2424 sub w1, w1, #40 strh w1, [x2,x0] -.L2415: +.L2424: add x0, x19, :lo12:.LANCHOR2 - adrp x1, .LANCHOR4 - add x1, x1, :lo12:.LANCHOR4 - add x1, x1, 4040 - ldrh w3, [x0,966] + adrp x1, .LANCHOR5 + add x1, x1, :lo12:.LANCHOR5 + add x1, x1, 1224 + ldrh w3, [x0,2502] mov x0, 0 -.L2416: +.L2425: cmp w3, w0, uxth - bls .L2422 + bls .L2431 add x0, x0, 1 add x2, x1, x0, lsl 1 ldrh w2, [x2,-2] cmp w2, w20 - bne .L2416 - b .L2417 -.L2422: + bne .L2425 + b .L2426 +.L2431: cmp w3, 15 - bhi .L2417 - adrp x1, .LANCHOR4 + bhi .L2426 + adrp x1, .LANCHOR5 add x19, x19, :lo12:.LANCHOR2 - add x1, x1, :lo12:.LANCHOR4 + add x1, x1, :lo12:.LANCHOR5 add w0, w3, 1 - add x1, x1, 4040 - strh w0, [x19,966] + add x1, x1, 1224 + strh w0, [x19,2502] strh w20, [x1,w3,sxtw 1] -.L2417: +.L2426: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -15959,29 +16125,29 @@ FtlGcReFreshBadBlk: str x19, [sp,16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,966] - cbz w1, .L2424 - ldrh w3, [x0,952] + ldrh w1, [x0,2502] + cbz w1, .L2433 + ldrh w3, [x0,2488] mov w2, 65535 cmp w3, w2 - bne .L2424 - ldrh w2, [x0,970] + bne .L2433 + ldrh w2, [x0,2506] cmp w2, w1 - bcc .L2425 - strh wzr, [x0,970] -.L2425: + bcc .L2434 + strh wzr, [x0,2506] +.L2434: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 4040 - ldrh w1, [x19,970] + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + add x0, x0, 1224 + ldrh w1, [x19,2506] ldrh w0, [x0,w1,sxtw 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,970] + ldrh w0, [x19,2506] add w0, w0, 1 - strh w0, [x19,970] -.L2424: + strh w0, [x19,2506] +.L2433: mov w0, 0 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -15999,65 +16165,65 @@ FtlGcFreeBadSuperBlk: add x19, x19, :lo12:.LANCHOR2 stp x23, x24, [sp,48] uxth w23, w0 - ldrh w0, [x19,966] + ldrh w0, [x19,2502] stp x21, x22, [sp,32] stp x25, x26, [sp,64] mov w21, 0 - cbz w0, .L2431 - adrp x24, .LANCHOR4 + cbz w0, .L2440 + adrp x24, .LANCHOR5 adrp x22, .LC146 add x22, x22, :lo12:.LC146 - add x25, x24, :lo12:.LANCHOR4 -.L2439: - ldrh w0, [x19,756] + add x25, x24, :lo12:.LANCHOR5 +.L2448: + ldrh w0, [x19,2292] cmp w0, w21 - bls .L2440 - add x0, x19, 784 + bls .L2449 + add x0, x19, 2320 mov w1, w23 mov w20, 0 - add x27, x24, :lo12:.LANCHOR4 + add x27, x24, :lo12:.LANCHOR5 ldrb w0, [x0,w21,sxtw] bl V2P_block uxth w26, w0 -.L2432: - ldrh w0, [x19,966] +.L2441: + ldrh w0, [x19,2502] cmp w0, w20 - bls .L2441 - add x0, x27, 4040 + bls .L2450 + add x0, x27, 1224 ldrh w0, [x0,w20,sxtw 1] cmp w0, w26 - bne .L2433 + bne .L2442 mov w1, w26 mov x0, x22 bl printk mov w0, w26 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w2, [x19,966] + ldrh w2, [x19,2502] mov w3, w20 -.L2434: +.L2443: cmp w3, w2 - bcs .L2442 - add x4, x25, 4040 + bcs .L2451 + add x4, x25, 1224 add w0, w3, 1 ldrh w1, [x4,w0,sxtw 1] strh w1, [x4,w3,sxtw 1] uxth w3, w0 - b .L2434 -.L2442: + b .L2443 +.L2451: sub w2, w2, #1 - strh w2, [x19,966] -.L2433: + strh w2, [x19,2502] +.L2442: add w20, w20, 1 uxth w20, w20 - b .L2432 -.L2441: + b .L2441 +.L2450: add w21, w21, 1 uxth w21, w21 - b .L2439 -.L2440: + b .L2448 +.L2449: bl FtlGcReFreshBadBlk -.L2431: +.L2440: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -16072,53 +16238,54 @@ FtlGcFreeBadSuperBlk: .type update_vpc_list, %function update_vpc_list: stp x29, x30, [sp, -32]! + adrp x1, .LANCHOR2+2728 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 uxth w19, w0 - add x2, x20, :lo12:.LANCHOR2 + ldr x1, [x1,#:lo12:.LANCHOR2+2728] ubfiz x0, x19, 1, 16 - ldr x1, [x2,1192] ldrh w1, [x1,x0] - cbnz w1, .L2444 - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - ldrh w3, [x0,3424] - cmp w3, w19 - bne .L2445 - mov w1, -1 - strh w1, [x0,3424] - b .L2446 -.L2445: - ldrh w3, [x2,3616] - mov w0, w1 - cmp w3, w19 - beq .L2447 - ldrh w3, [x2,3664] - cmp w3, w19 - beq .L2447 - ldrh w2, [x2,3712] + cbnz w1, .L2453 + adrp x0, .LANCHOR5 + adrp x20, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR5 + ldrh w2, [x0,608] cmp w2, w19 - beq .L2447 -.L2446: - add x20, x20, :lo12:.LANCHOR2 + bne .L2454 + mov w1, -1 + strh w1, [x0,608] + b .L2455 +.L2454: + add x2, x20, :lo12:.LANCHOR4 + mov w0, w1 + ldrh w3, [x2,800] + cmp w3, w19 + beq .L2456 + ldrh w3, [x2,848] + cmp w3, w19 + beq .L2456 + ldrh w2, [x2,896] + cmp w2, w19 + beq .L2456 +.L2455: + add x20, x20, :lo12:.LANCHOR4 mov w1, w19 - add x0, x20, 3576 + add x0, x20, 760 bl List_remove_node - ldrh w0, [x20,3592] + ldrh w0, [x20,776] sub w0, w0, #1 - strh w0, [x20,3592] + strh w0, [x20,776] mov w0, w19 bl free_data_superblock mov w0, w19 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2447 -.L2444: + b .L2456 +.L2453: mov w0, w19 bl List_update_data_list mov w0, 0 -.L2447: +.L2456: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -16127,84 +16294,88 @@ update_vpc_list: .global decrement_vpc_count .type decrement_vpc_count, %function decrement_vpc_count: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] uxth w19, w0 mov w0, 65535 stp x21, x22, [sp,32] + str x23, [sp,48] cmp w19, w0 - beq .L2452 + beq .L2461 adrp x20, .LANCHOR2 - ubfiz x21, x19, 1, 16 + ubfiz x22, x19, 1, 16 add x20, x20, :lo12:.LANCHOR2 - ldr x0, [x20,1192] - ldrh w2, [x0,x21] - cbnz w2, .L2453 + ldr x0, [x20,2728] + ldrh w2, [x0,x22] + cbnz w2, .L2462 adrp x0, .LC147 mov w1, w19 add x0, x0, :lo12:.LC147 - add x22, x20, 3600 + adrp x21, .LANCHOR4 + add x21, x21, :lo12:.LANCHOR4 bl printk - ldr x0, [x20,1192] + add x23, x21, 784 + ldr x0, [x20,2728] mov w1, 32 - strh w1, [x0,x21] - mov x0, x22 + strh w1, [x0,x22] + mov x0, x23 mov w1, w19 bl test_node_in_list - cbz w0, .L2454 + cbz w0, .L2463 mov w1, w19 - mov x0, x22 + mov x0, x23 bl List_remove_node - ldrh w0, [x20,3608] + ldrh w0, [x21,792] sub w0, w0, #1 - strh w0, [x20,3608] + strh w0, [x21,792] mov w0, w19 bl INSERT_DATA_LIST - ldr x2, [x20,1192] + ldr x2, [x20,2728] adrp x0, .LC148 add x0, x0, :lo12:.LC148 mov w1, w19 - ldrh w2, [x2,x21] + ldrh w2, [x2,x22] bl printk -.L2454: +.L2463: mov w0, w19 bl FtlGcRefreshBlock - b .L2461 -.L2453: + b .L2470 +.L2462: sub w2, w2, #1 - strh w2, [x0,x21] -.L2452: - adrp x20, .LANCHOR4 - mov w0, 65535 - add x20, x20, :lo12:.LANCHOR4 - ldrh w1, [x20,4016] - cmp w1, w0 - bne .L2456 - strh w19, [x20,4016] + strh w2, [x0,x22] .L2461: + adrp x20, .LANCHOR5 + mov w0, 65535 + add x20, x20, :lo12:.LANCHOR5 + ldrh w1, [x20,1200] + cmp w1, w0 + bne .L2465 + strh w19, [x20,1200] +.L2470: mov w0, 0 - b .L2455 -.L2456: + b .L2464 +.L2465: cmp w1, w19 mov w0, 0 - beq .L2455 + beq .L2464 mov w0, w1 bl update_vpc_list cmp w0, wzr cset w0, ne - strh w19, [x20,4016] -.L2455: + strh w19, [x20,1200] +.L2464: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldr x23, [sp,48] + ldp x29, x30, [sp], 64 ret .size decrement_vpc_count, .-decrement_vpc_count .align 2 .global FtlRecoverySuperblock .type FtlRecoverySuperblock, %function FtlRecoverySuperblock: - stp x29, x30, [sp, -208]! + stp x29, x30, [sp, -224]! mov w2, 65535 add x29, sp, 0 stp x19, x20, [sp,16] @@ -16215,81 +16386,82 @@ FtlRecoverySuperblock: mov x19, x0 ldrh w0, [x0] cmp w0, w2 - beq .L2623 + beq .L2632 ldrh w0, [x19,2] adrp x20, .LANCHOR2 - str w0, [x29,188] + str w0, [x29,204] add x0, x20, :lo12:.LANCHOR2 ldrb w28, [x19,6] - ldr w1, [x29,188] - ldrh w0, [x0,824] + ldr w1, [x29,204] + ldrh w0, [x0,2360] cmp w0, w1 - bne .L2465 + bne .L2474 strh wzr, [x19,4] - b .L2629 -.L2465: + b .L2638 +.L2474: ldrh w0, [x19,16] mov w1, 0 -.L2466: +.L2475: cmp w0, w2 - bne .L2632 + bne .L2641 add w1, w1, 1 uxth w1, w1 add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] - b .L2466 -.L2632: + b .L2475 +.L2641: ldrb w1, [x19,8] cmp w1, 1 - bne .L2468 + bne .L2477 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2469 - adrp x0, .LANCHOR0 + beq .L2478 + add x0, x20, :lo12:.LANCHOR2 mov w23, w21 + ldrb w0, [x0,1228] + cbnz w0, .L2552 + adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,4044] - cbnz w1, .L2543 add x0, x0, 136 ldrh w23, [x0,w21,sxtw 1] - b .L2543 -.L2468: + b .L2552 +.L2477: mov w1, 0 bl FtlGetLastWrittenPage cmn w0, #1 mov w21, w0 - beq .L2469 + beq .L2478 mov w23, w0 -.L2543: +.L2552: add x0, x20, :lo12:.LANCHOR2 mov x2, x19 mov w25, 0 mov w8, 65535 mov w9, 56 mov w10, 4 - ldrh w4, [x0,756] - ldrh w7, [x0,836] + ldrh w4, [x0,2292] + ldrh w7, [x0,2372] add x4, x19, x4, lsl 1 - b .L2471 -.L2469: + b .L2480 +.L2478: strh wzr, [x19,2] -.L2629: +.L2638: strb wzr, [x19,6] - b .L2623 -.L2473: + b .L2632 +.L2482: ldrh w1, [x2,16] cmp w1, w8 - beq .L2472 + beq .L2481 add x5, x20, :lo12:.LANCHOR2 orr w1, w23, w1, lsl 10 umull x0, w25, w9 add w3, w25, 1 - ldr x6, [x5,1000] + ldr x6, [x5,2536] add x6, x6, x0 str w1, [x6,4] - ldr x1, [x5,1000] - ldr x5, [x5,1136] + ldr x1, [x5,2536] + ldr x5, [x5,2672] add x0, x1, x0 mul w1, w25, w7 uxth w25, w3 @@ -16297,677 +16469,676 @@ FtlRecoverySuperblock: sdiv w1, w1, w10 add x1, x5, x1, sxtw 2 str x1, [x0,16] -.L2472: +.L2481: add x2, x2, 2 -.L2471: +.L2480: cmp x2, x4 - bne .L2473 + bne .L2482 ldrb w0, [x19,8] - str wzr, [x29,184] + str wzr, [x29,200] cmp w0, 1 - bne .L2474 - adrp x0, .LANCHOR0+4044 - ldrb w0, [x0,#:lo12:.LANCHOR0+4044] + bne .L2483 + add x0, x20, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] cmp w0, wzr cset w0, ne - str w0, [x29,184] -.L2474: + str w0, [x29,200] +.L2483: add x22, x20, :lo12:.LANCHOR2 - ldr w2, [x29,184] + ldr w2, [x29,200] mov w1, w25 mov x26, 0 mov w24, 65535 - adrp x27, .LANCHOR4 - ldr x0, [x22,1000] + adrp x27, .LANCHOR5 + ldr x0, [x22,2536] bl FlashReadPages - ldr w0, [x22,880] + ldr w0, [x22,2416] adrp x22, .LC149 - str w0, [x29,176] + str w0, [x29,192] add x22, x22, :lo12:.LC149 uxth w0, w23 - str w0, [x29,168] -.L2475: + str w0, [x29,184] +.L2484: uxth w2, w26 cmp w2, w25 - bcs .L2482 + bcs .L2491 add x6, x20, :lo12:.LANCHOR2 mov x0, 56 mul x0, x26, x0 - ldr x4, [x6,1000] + ldr x4, [x6,2536] add x1, x4, x0 ldr w0, [x4,x0] - cbnz w0, .L2476 + cbnz w0, .L2485 ldr x7, [x1,16] ldr w4, [x7,4] cmn w4, #1 - beq .L2477 - ldr w1, [x6,880] + beq .L2486 + ldr w1, [x6,2416] mov w0, w4 - str x7, [x29,136] - str x2, [x29,144] - str x4, [x29,152] - str x6, [x29,160] + str x7, [x29,152] + str x2, [x29,160] + str x4, [x29,168] + str x6, [x29,176] bl ftl_cmp_data_ver - ldr x6, [x29,160] - ldr x4, [x29,152] - ldr x2, [x29,144] - ldr x7, [x29,136] - cbz w0, .L2477 + ldr x6, [x29,176] + ldr x4, [x29,168] + ldr x2, [x29,160] + ldr x7, [x29,152] + cbz w0, .L2486 add w4, w4, 1 - str w4, [x6,880] -.L2477: + str w4, [x6,2416] +.L2486: ldr w0, [x7] cmn w0, #1 - bne .L2478 -.L2482: + bne .L2487 +.L2491: cmp w2, w25 - bne .L2624 + bne .L2633 add x0, x20, :lo12:.LANCHOR2 add w21, w21, 1 uxth w21, w21 - ldr x0, [x0,1000] + ldr x0, [x0,2536] ldr w0, [x0,4] - b .L2625 -.L2476: + b .L2634 +.L2485: ldr w1, [x1,4] mov x0, x22 bl printk - ldr w24, [x29,168] - add x0, x27, :lo12:.LANCHOR4 + ldr w24, [x29,184] + add x0, x27, :lo12:.LANCHOR5 ldrh w1, [x19] - strh w1, [x0,4074] -.L2478: + strh w1, [x0,1258] +.L2487: add x26, x26, 1 - b .L2475 -.L2624: + b .L2484 +.L2633: add x0, x20, :lo12:.LANCHOR2 mov w1, 56 uxth w21, w21 umull x2, w2, w1 - ldr x0, [x0,1000] + ldr x0, [x0,2536] add x2, x0, x2 ldr w0, [x2,4] -.L2625: +.L2634: lsr x0, x0, 10 bl P2V_plane uxth w26, w0 ldrb w1, [x19,8] cmp w1, 1 - bne .L2484 + bne .L2493 + add x0, x20, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] + cbnz w0, .L2493 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w2, [x0,4044] - cbnz w2, .L2484 add x0, x0, 136 ldrh w21, [x0,w21,sxtw 1] -.L2484: +.L2493: add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,824] + ldrh w0, [x0,2360] cmp w0, w21 - bne .L2485 + bne .L2494 strh w21, [x19,2] strb wzr, [x19,6] strh wzr, [x19,4] -.L2485: +.L2494: uxth w0, w28 - str w0, [x29,152] - ldr w0, [x29,188] + str w0, [x29,160] + ldr w0, [x29,204] cmp w21, w0 - bne .L2486 - ldr w0, [x29,152] + bne .L2495 + ldr w0, [x29,160] cmp w26, w0 - beq .L2630 -.L2486: - ldr w0, [x29,176] - adrp x25, .LANCHOR4 + beq .L2639 +.L2495: + ldr w0, [x29,192] + adrp x25, .LANCHOR5 sub w22, w0, #1 mov w0, 65535 cmp w24, w0 - bne .L2487 - cbnz w1, .L2488 -.L2487: - add x0, x25, :lo12:.LANCHOR4 - uxth w5, w23 - ldr w1, [x0,4028] + bne .L2496 + cbnz w1, .L2497 +.L2496: + add x0, x25, :lo12:.LANCHOR5 + uxth w6, w23 + ldr w1, [x0,1212] cmn w1, #1 - bne .L2489 - str w22, [x0,4028] -.L2489: - add x0, x25, :lo12:.LANCHOR4 - ldr w24, [x29,188] - ldr w3, [x0,4028] - ldr w0, [x29,188] + bne .L2498 + str w22, [x0,1212] +.L2498: + add x0, x25, :lo12:.LANCHOR5 + ldr w24, [x29,204] + ldr w3, [x0,1212] + ldr w0, [x29,204] add w0, w0, 7 cmp w0, w23, uxth - bge .L2490 - sub w24, w5, #7 + bge .L2499 + sub w24, w6, #7 uxth w24, w24 -.L2490: +.L2499: mov w28, -1 - adrp x6, .LANCHOR0 + adrp x5, .LANCHOR0 mov w27, w28 mov w4, 65535 mov w7, 56 - add x8, x6, :lo12:.LANCHOR0 -.L2491: - cmp w24, w5 - bhi .L2504 + add x5, x5, :lo12:.LANCHOR0 +.L2500: + cmp w24, w6 + bhi .L2513 add x0, x20, :lo12:.LANCHOR2 mov w23, 0 - ldrh w2, [x0,756] + ldrh w2, [x0,2292] mov x0, x19 add x2, x19, x2, lsl 1 -.L2505: +.L2514: cmp x0, x2 - beq .L2633 + beq .L2642 ldrh w1, [x0,16] cmp w1, w4 - beq .L2492 - add x10, x20, :lo12:.LANCHOR2 - orr w1, w24, w1, lsl 10 - umull x9, w23, w7 - add w23, w23, 1 - ldr x10, [x10,1000] - uxth w23, w23 - add x9, x10, x9 - str w1, [x9,4] -.L2492: - add x0, x0, 2 - b .L2505 -.L2633: + beq .L2501 add x9, x20, :lo12:.LANCHOR2 - ldr w2, [x29,184] + orr w1, w24, w1, lsl 10 + umull x8, w23, w7 + add w23, w23, 1 + ldr x9, [x9,2536] + uxth w23, w23 + add x8, x9, x8 + str w1, [x8,4] +.L2501: + add x0, x0, 2 + b .L2514 +.L2642: + add x8, x20, :lo12:.LANCHOR2 + ldr w2, [x29,200] mov w1, w23 - str x8, [x29,120] - str x6, [x29,128] - ldr x0, [x9,1000] - str x7, [x29,136] - str x4, [x29,144] - str x3, [x29,160] - str x5, [x29,168] - str x9, [x29,176] + str x5, [x29,144] + str x7, [x29,152] + ldr x0, [x8,2536] + str x4, [x29,168] + str x3, [x29,176] + str x6, [x29,184] + str x8, [x29,192] bl FlashReadPages - ldr x6, [x29,128] + ldr x8, [x29,192] mov w1, 0 - ldr x9, [x29,176] - sxtw x11, w24 - add x0, x6, :lo12:.LANCHOR0 - ldr x5, [x29,168] - ldr x3, [x29,160] - ldr x4, [x29,144] - ldrb w10, [x0,4044] - ldr x0, [x9,1000] - ldr x7, [x29,136] - ldr x8, [x29,120] + ldr x6, [x29,184] + sxtw x10, w24 + ldr x3, [x29,176] + ldr x0, [x8,2536] + ldrb w9, [x8,1228] + ldr x4, [x29,168] add x0, x0, 16 -.L2494: + ldr x7, [x29,152] + ldr x5, [x29,144] +.L2503: cmp w1, w23 - beq .L2634 + beq .L2643 ldr w2, [x0,-16] - cbnz w2, .L2495 + cbnz w2, .L2504 ldr x2, [x0] - ldrh w9, [x2] - cmp w9, w4 - beq .L2496 - ldr w9, [x2,4] - cmn w9, #1 - beq .L2496 - add x2, x25, :lo12:.LANCHOR4 + ldrh w8, [x2] + cmp w8, w4 + beq .L2505 + ldr w8, [x2,4] + cmn w8, #1 + beq .L2505 + add x2, x25, :lo12:.LANCHOR5 cmn w28, #1 - ldr w27, [x2,4028] - str w9, [x2,4028] - bne .L2496 - add x2, x8, 648 - ldrh w2, [x2,x11,lsl 1] + ldr w27, [x2,1212] + str w8, [x2,1212] + bne .L2505 + add x2, x5, 1160 + ldrh w2, [x2,x10,lsl 1] cmp w2, w4 - bne .L2497 - cbz w10, .L2496 -.L2497: + bne .L2506 + cbz w9, .L2505 +.L2506: cmp w27, w22 csinv w28, w27, wzr, ne - b .L2496 -.L2495: - add x0, x25, :lo12:.LANCHOR4 + b .L2505 +.L2504: + add x0, x25, :lo12:.LANCHOR5 ldrh w1, [x19] - strh w1, [x0,4074] + strh w1, [x0,1258] ldrb w1, [x19,8] - cbnz w1, .L2488 + cbnz w1, .L2497 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 648 + add x1, x1, 1160 ldrh w2, [x1,w24,sxtw 1] mov w1, 65535 cmp w2, w1 - bne .L2499 + bne .L2508 cmn w28, #1 - beq .L2500 - str w28, [x0,4028] - b .L2488 -.L2500: + beq .L2509 + str w28, [x0,1212] + b .L2497 +.L2509: cmp w3, w22 - beq .L2501 - str w3, [x0,4028] - b .L2488 -.L2501: - ldr w1, [x0,4028] - b .L2631 -.L2499: + beq .L2510 + str w3, [x0,1212] + b .L2497 +.L2510: + ldr w1, [x0,1212] + b .L2640 +.L2508: cmp w27, w22 - beq .L2502 + beq .L2511 cmn w27, #1 - beq .L2488 - str w27, [x0,4028] - b .L2488 -.L2502: - ldr w1, [x0,4028] + beq .L2497 + str w27, [x0,1212] + b .L2497 +.L2511: + ldr w1, [x0,1212] cmp w1, w22 - beq .L2488 -.L2631: + beq .L2497 +.L2640: sub w1, w1, #1 - b .L2626 -.L2496: + b .L2635 +.L2505: add w1, w1, 1 add x0, x0, 56 uxth w1, w1 - b .L2494 -.L2634: + b .L2503 +.L2643: add w24, w24, 1 uxth w24, w24 - b .L2491 -.L2504: - add x0, x25, :lo12:.LANCHOR4 + b .L2500 +.L2513: + add x0, x25, :lo12:.LANCHOR5 mov w1, -1 -.L2626: - str w1, [x0,4028] -.L2488: - add x0, x25, :lo12:.LANCHOR4 +.L2635: + str w1, [x0,1212] +.L2497: + add x0, x25, :lo12:.LANCHOR5 mov w1, 1 - ldr w23, [x29,188] - strh w1, [x0,4076] + ldr w23, [x29,204] + strh w1, [x0,1260] adrp x0, .LC151 add x0, x0, :lo12:.LC151 - str x0, [x29,128] + str x0, [x29,136] adrp x0, .LC150 add x0, x0, :lo12:.LC150 - str x0, [x29,120] -.L2506: + str x0, [x29,128] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + str x0, [x29,168] +.L2515: add x0, x20, :lo12:.LANCHOR2 - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - str wzr, [x29,176] + mov x1, x19 + str wzr, [x29,192] mov w7, 65535 mov w8, 56 - ldrh w3, [x0,756] - ldrb w6, [x1,4044] - mov x1, x19 + ldrh w3, [x0,2292] + ldrb w6, [x0,1228] add x3, x19, x3, lsl 1 -.L2507: +.L2516: cmp x1, x3 - beq .L2635 + beq .L2644 ldrh w2, [x1,16] cmp w2, w7 - beq .L2508 - ldr w0, [x29,176] + beq .L2517 + ldr w0, [x29,192] add x5, x20, :lo12:.LANCHOR2 orr w2, w23, w2, lsl 10 - ldr x4, [x5,1000] + ldr x4, [x5,2536] umull x0, w0, w8 add x4, x4, x0 str w2, [x4,4] ldrb w2, [x19,8] cmp w2, 1 - bne .L2509 - cbz w6, .L2509 - ldr x2, [x5,1000] + bne .L2518 + cbz w6, .L2518 + ldr x2, [x5,2536] add x0, x2, x0 ldr w2, [x0,4] orr w2, w2, -2147483648 str w2, [x0,4] -.L2509: - ldr w0, [x29,176] +.L2518: + ldr w0, [x29,192] add w0, w0, 1 uxth w0, w0 - str w0, [x29,176] -.L2508: + str w0, [x29,192] +.L2517: add x1, x1, 2 - b .L2507 -.L2635: + b .L2516 +.L2644: add x0, x20, :lo12:.LANCHOR2 - ldr w1, [x29,176] - ldr w2, [x29,184] - ldr x0, [x0,1000] + ldr w1, [x29,192] + ldr w2, [x29,200] + ldr x0, [x0,2536] bl FlashReadPages - str xzr, [x29,160] -.L2511: - ldrh w0, [x29,160] - ldr w1, [x29,176] + str xzr, [x29,176] +.L2520: + ldrh w0, [x29,176] + ldr w1, [x29,192] cmp w1, w0, uxth - bls .L2636 - ldr x0, [x29,160] + bls .L2645 + ldr x0, [x29,176] mov x24, 56 mul x24, x0, x24 add x0, x20, :lo12:.LANCHOR2 - ldr x28, [x0,1000] + ldr x28, [x0,2536] add x27, x28, x24 ldr w1, [x27,4] - str w1, [x29,204] + str w1, [x29,220] lsr x0, x1, 10 - str x1, [x29,168] + str x1, [x29,184] bl P2V_plane uxth w0, w0 - ldr w1, [x29,188] + ldr w1, [x29,204] cmp w23, w1 - ldr x1, [x29,168] - bcc .L2512 - ldr w2, [x29,152] + ldr x1, [x29,184] + bcc .L2521 + ldr w2, [x29,160] cmp w0, w2 - bcs .L2547 - ldr w2, [x29,188] + bcs .L2556 + ldr w2, [x29,204] cmp w23, w2 - beq .L2512 -.L2547: + beq .L2521 +.L2556: cmp w0, w26 - bne .L2548 + bne .L2557 cmp w23, w21 - beq .L2514 -.L2548: + beq .L2523 +.L2557: ldr w0, [x28,x24] cmn w0, #1 - beq .L2516 + beq .L2525 ldr x28, [x27,16] mov w0, 61589 ldrh w1, [x28] cmp w1, w0 - beq .L2517 + beq .L2526 ldrh w0, [x19] - b .L2627 -.L2517: + b .L2636 +.L2526: ldr w22, [x28,4] cmn w22, #1 - beq .L2518 + beq .L2527 add x27, x20, :lo12:.LANCHOR2 mov w0, w22 - ldr w1, [x27,880] + ldr w1, [x27,2416] bl ftl_cmp_data_ver - cbz w0, .L2518 + cbz w0, .L2527 add w0, w22, 1 - str w0, [x27,880] -.L2518: + str w0, [x27,2416] +.L2527: ldr w27, [x28,8] - add x1, x29, 200 + add x1, x29, 216 ldr w0, [x28,12] mov w2, 0 - str w0, [x29,196] + str w0, [x29,212] mov w0, w27 bl log2phys - ldr w28, [x29,196] - add x0, x25, :lo12:.LANCHOR4 - str x0, [x29,136] - ldr w1, [x0,4028] + ldr w28, [x29,212] + add x0, x25, :lo12:.LANCHOR5 + str x0, [x29,144] + ldr w1, [x0,1212] cmn w1, #1 - beq .L2519 + beq .L2528 mov w0, w22 bl ftl_cmp_data_ver - cbz w0, .L2519 + cbz w0, .L2528 cmn w28, #1 - beq .L2520 + beq .L2529 add x3, x20, :lo12:.LANCHOR2 mov w2, 0 - str x3, [x29,112] - ldr x0, [x3,1000] + str x3, [x29,120] + ldr x0, [x3,2536] add x0, x0, x24 str w28, [x0,4] ldr x1, [x0,16] - ldr x0, [x3,1000] - str x1, [x29,168] + ldr x0, [x3,2536] + str x1, [x29,184] mov w1, 1 add x0, x0, x24 bl FlashReadPages - ldr x3, [x29,112] - ldr x0, [x29,168] - ldr x2, [x3,1000] + ldr x3, [x29,120] + ldr x0, [x29,184] + ldr x2, [x3,2536] ldr w0, [x0,4] - str w0, [x29,144] + str w0, [x29,152] add x4, x2, x24 ldr w0, [x2,x24] cmn w0, #1 - bne .L2521 - b .L2522 -.L2520: - ldr w0, [x29,204] - ldr w1, [x29,200] + bne .L2530 + b .L2531 +.L2529: + ldr w0, [x29,220] + ldr w1, [x29,216] cmp w1, w0 - bne .L2512 + bne .L2521 mov w0, w27 - add x1, x29, 196 + add x1, x29, 212 mov w2, 1 bl log2phys - b .L2512 -.L2521: - ldr x0, [x29,168] + b .L2521 +.L2530: + ldr x0, [x29,184] ldr w28, [x0,8] cmp w28, w27 - bne .L2522 - ldr x0, [x29,136] - ldr w1, [x29,144] - str x2, [x29,96] - ldr w0, [x0,4028] - str x3, [x29,104] - str x4, [x29,112] + bne .L2531 + ldr x0, [x29,144] + ldr w1, [x29,152] + str x2, [x29,104] + ldr w0, [x0,1212] + str x3, [x29,112] + str x4, [x29,120] bl ftl_cmp_data_ver - ldr x4, [x29,112] - ldr x3, [x29,104] - ldr x2, [x29,96] - cbz w0, .L2522 - ldr w0, [x29,200] - ldr w1, [x29,204] + ldr x4, [x29,120] + ldr x3, [x29,112] + ldr x2, [x29,104] + cbz w0, .L2531 + ldr w0, [x29,216] + ldr w1, [x29,220] cmp w0, w1 - beq .L2527 - ldr w1, [x29,196] + beq .L2536 + ldr w1, [x29,212] cmp w0, w1 - beq .L2522 + beq .L2531 cmn w0, #1 - beq .L2525 + beq .L2534 str w0, [x4,4] mov w2, 0 ldr x1, [x4,16] - ldr x0, [x3,1000] - str x1, [x29,168] + ldr x0, [x3,2536] + str x1, [x29,184] mov w1, 1 add x0, x0, x24 bl FlashReadPages - b .L2526 -.L2525: + b .L2535 +.L2534: str w0, [x2,x24] -.L2526: +.L2535: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x0, [x0,1000] + ldr x0, [x0,2536] ldr w0, [x0,x24] cmn w0, #1 - beq .L2527 - ldr x0, [x29,168] + beq .L2536 + ldr x0, [x29,184] ldr w24, [x0,4] - add x0, x25, :lo12:.LANCHOR4 + add x0, x25, :lo12:.LANCHOR5 mov w1, w24 - ldr w0, [x0,4028] + ldr w0, [x0,1212] bl ftl_cmp_data_ver - cbz w0, .L2527 - ldr w0, [x29,144] + cbz w0, .L2536 + ldr w0, [x29,152] mov w1, w24 bl ftl_cmp_data_ver - cbz w0, .L2522 -.L2527: - ldr w1, [x29,196] + cbz w0, .L2531 +.L2536: + ldr w1, [x29,212] mov w0, w28 bl FtlReUsePrevPpa -.L2522: +.L2531: mov w0, -1 - str w0, [x29,196] - b .L2529 -.L2519: - ldr w0, [x29,204] - ldr w1, [x29,200] + str w0, [x29,212] + b .L2538 +.L2528: + ldr w0, [x29,220] + ldr w1, [x29,216] cmp w1, w0 - beq .L2529 + beq .L2538 cmn w28, #1 - beq .L2531 + beq .L2540 add x0, x20, :lo12:.LANCHOR2 ubfx x28, x28, 10, 21 - ldr w0, [x0,772] + ldr w0, [x0,2308] cmp w28, w0 - bcs .L2512 -.L2531: + bcs .L2521 +.L2540: mov w0, w27 - add x1, x29, 204 + add x1, x29, 220 mov w2, 1 bl log2phys - ldr w28, [x29,200] + ldr w28, [x29,216] cmn w28, #1 - beq .L2529 - ldr w0, [x29,196] + beq .L2538 + ldr w0, [x29,212] cmp w28, w0 - beq .L2529 + beq .L2538 lsr x0, x28, 10 bl P2V_block_in_plane uxth w0, w0 - add x1, x20, :lo12:.LANCHOR2 - ldrh w2, [x1,3616] - cmp w2, w0 - beq .L2533 - ldrh w2, [x1,3664] - cmp w2, w0 - beq .L2533 - ldrh w1, [x1,3712] + ldr x1, [x29,168] + ldrh w1, [x1,800] cmp w1, w0 - bne .L2529 -.L2533: + beq .L2542 + ldr x1, [x29,168] + ldrh w1, [x1,848] + cmp w1, w0 + beq .L2542 + ldr x1, [x29,168] + ldrh w1, [x1,896] + cmp w1, w0 + bne .L2538 +.L2542: adrp x0, .LANCHOR2 mov w1, 1 add x24, x0, :lo12:.LANCHOR2 mov w2, 0 - ldr x0, [x24,1000] + ldr x0, [x24,2536] str w28, [x0,4] ldr x3, [x0,16] - ldr x0, [x24,1000] - str x3, [x29,168] + ldr x0, [x24,2536] + str x3, [x29,184] bl FlashReadPages - ldr x0, [x24,1000] - ldr x3, [x29,168] + ldr x0, [x24,2536] + ldr x3, [x29,184] ldr w0, [x0] ldr w1, [x3,4] cmn w0, #1 - beq .L2529 + beq .L2538 mov w0, w22 bl ftl_cmp_data_ver - cbnz w0, .L2529 + cbnz w0, .L2538 mov w0, w27 - add x1, x29, 200 + add x1, x29, 216 mov w2, 1 bl log2phys -.L2529: - ldr w0, [x29,196] +.L2538: + ldr w0, [x29,212] cmn w0, #1 - beq .L2512 + beq .L2521 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,1192] + ldr x2, [x2,2728] ldrh w2, [x2,x3] - cbz w2, .L2534 -.L2627: + cbz w2, .L2543 +.L2636: bl decrement_vpc_count - b .L2512 -.L2534: - ldr x0, [x29,120] - bl printk - b .L2512 -.L2516: - add x24, x25, :lo12:.LANCHOR4 - ldrh w0, [x19] - mov w2, w22 - strh w0, [x24,4074] + b .L2521 +.L2543: ldr x0, [x29,128] bl printk - ldr w0, [x24,4080] + b .L2521 +.L2525: + add x24, x25, :lo12:.LANCHOR5 + ldrh w0, [x19] + mov w2, w22 + strh w0, [x24,1258] + ldr x0, [x29,136] + bl printk + ldr w0, [x24,1264] cmp w0, 31 - bhi .L2535 - add x1, x24, 4088 - ldr w2, [x29,204] + bhi .L2544 + add x1, x24, 1272 + ldr w2, [x29,220] str w2, [x1,w0,uxtw 2] add w0, w0, 1 - str w0, [x24,4080] -.L2535: + str w0, [x24,1264] +.L2544: ldrh w0, [x19] bl decrement_vpc_count - add x0, x25, :lo12:.LANCHOR4 - ldr w1, [x0,4028] + add x0, x25, :lo12:.LANCHOR5 + ldr w1, [x0,1212] cmn w1, #1 - beq .L2628 + beq .L2637 cmp w1, w22 - bls .L2512 -.L2628: - str w22, [x0,4028] -.L2512: - ldr x0, [x29,160] + bls .L2521 +.L2637: + str w22, [x0,1212] +.L2521: + ldr x0, [x29,176] add x0, x0, 1 - str x0, [x29,160] - b .L2511 -.L2636: + str x0, [x29,176] + b .L2520 +.L2645: ldrb w0, [x19,8] add w23, w23, 1 cmp w0, 1 uxth w23, w23 - bne .L2538 - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbz w0, .L2538 + bne .L2547 + add x0, x20, :lo12:.LANCHOR2 + ldrb w1, [x0,1228] + cbz w1, .L2547 cmp w21, w23 - bne .L2538 - add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,826] + bne .L2547 + ldrh w0, [x0,2362] cmp w0, w23 - beq .L2514 -.L2538: + beq .L2523 +.L2547: add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,824] + ldrh w1, [x0,2360] cmp w23, w1 - bne .L2506 - ldrh w2, [x0,756] + bne .L2515 + ldrh w2, [x0,2292] mov w3, 65535 strh w23, [x19,2] mov x0, 0 strh wzr, [x19,4] -.L2540: +.L2549: uxth w1, w0 cmp w1, w2 - bcs .L2623 + bcs .L2632 add x0, x0, 1 add x4, x19, x0, lsl 1 ldrh w4, [x4,14] cmp w4, w3 - beq .L2540 + beq .L2549 strb w1, [x19,6] - b .L2623 -.L2514: + b .L2632 +.L2523: strb w26, [x19,6] strh w21, [x19,2] -.L2630: +.L2639: mov x0, x19 mov w1, w21 mov w2, w26 bl ftl_sb_update_avl_pages -.L2623: +.L2632: 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], 208 + ldp x29, x30, [sp], 224 ret .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 @@ -16979,11 +17150,11 @@ FtlSlcSuperblockCheck: stp x19, x20, [sp,16] stp x21, x22, [sp,32] ldrh w1, [x0,4] - cbz w1, .L2637 + cbz w1, .L2646 ldrh w1, [x0] mov w20, 65535 cmp w1, w20 - beq .L2637 + beq .L2646 mov x19, x0 ldrb w0, [x0,6] adrp x21, .LANCHOR0 @@ -16991,75 +17162,74 @@ FtlSlcSuperblockCheck: add x0, x0, 8 add x21, x21, :lo12:.LANCHOR0 ldrh w0, [x19,x0,lsl 1] -.L2641: +.L2650: cmp w0, w20 - bne .L2648 -.L2643: + bne .L2657 +.L2652: ldrb w0, [x19,6] add x1, x22, :lo12:.LANCHOR2 add w0, w0, 1 - ldrh w1, [x1,756] + ldrh w1, [x1,2292] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2642 + bne .L2651 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2642: +.L2651: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2641 -.L2648: + b .L2650 +.L2657: ldrb w1, [x19,8] cmp w1, 1 - bne .L2644 - ldrb w0, [x21,4044] - cbnz w0, .L2644 - add x0, x21, 648 + bne .L2653 + add x0, x22, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] + cbnz w0, .L2653 ldrh w2, [x19,2] + add x0, x21, 1160 ldrh w0, [x0,w2,sxtw 1] cmp w0, w20 - bne .L2644 + bne .L2653 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, .L2643 + cbnz w1, .L2652 ldrh w0, [x19,2] strb w1, [x19,6] add w0, w0, 1 strh w0, [x19,2] - b .L2637 -.L2644: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbz w0, .L2637 - cmp w1, 1 - bne .L2637 + b .L2646 +.L2653: adrp x0, .LANCHOR2 - ldrh w2, [x19,2] add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,826] + ldrb w2, [x0,1228] + cbz w2, .L2646 + cmp w1, 1 + bne .L2646 + ldrh w2, [x19,2] + ldrh w1, [x0,2362] cmp w2, w1 - bcc .L2637 + bcc .L2646 ldrh w1, [x19] - ldr x3, [x0,1192] + ldr x3, [x0,2728] 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,824] + ldrh w0, [x0,2360] strh w0, [x19,2] strb wzr, [x19,6] -.L2637: +.L2646: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -17071,125 +17241,125 @@ FtlSlcSuperblockCheck: get_new_active_ppa: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] stp x21, x22, [sp,32] + stp x19, x20, [sp,16] stp x23, x24, [sp,48] mov x19, x0 strb wzr, [x0,10] ldrb w0, [x0,6] - adrp x20, .LANCHOR0 + adrp x21, .LANCHOR0 mov w22, 65535 adrp x23, .LANCHOR2 add x0, x0, 8 - add x20, x20, :lo12:.LANCHOR0 + add x21, x21, :lo12:.LANCHOR0 ldrh w0, [x19,x0,lsl 1] -.L2650: +.L2659: cmp w0, w22 - adrp x21, .LANCHOR2 - bne .L2665 -.L2651: + adrp x20, .LANCHOR2 + bne .L2674 +.L2660: ldrb w0, [x19,6] add x1, x23, :lo12:.LANCHOR2 add w0, w0, 1 - ldrh w1, [x1,756] + ldrh w1, [x1,2292] uxtb w0, w0 strb w0, [x19,6] cmp w1, w0 - bne .L2652 + bne .L2661 ldrh w0, [x19,2] strb wzr, [x19,6] add w0, w0, 1 strh w0, [x19,2] -.L2652: +.L2661: ldrb w0, [x19,6] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L2650 -.L2665: + b .L2659 +.L2674: ldrb w1, [x19,8] cmp w1, 1 - bne .L2653 - ldrb w1, [x20,4044] - cbnz w1, .L2653 - add x1, x20, 648 + bne .L2662 + add x1, x23, :lo12:.LANCHOR2 + ldrb w1, [x1,1228] + cbnz w1, .L2662 ldrh w2, [x19,2] + add x1, x21, 1160 ldrh w1, [x1,w2,sxtw 1] cmp w1, w22 - bne .L2653 + bne .L2662 ldrh w0, [x19,4] sub w0, w0, #1 strh w0, [x19,4] ldrh w0, [x19] bl decrement_vpc_count - b .L2651 -.L2653: + b .L2660 +.L2662: ldrh w1, [x19,4] mov w23, 65535 ldrh w22, [x19,2] - adrp x20, .LANCHOR0 + adrp x21, .LANCHOR0 sub w1, w1, #1 mov w24, w23 orr w22, w22, w0, lsl 10 strh w1, [x19,4] - add x20, x20, :lo12:.LANCHOR0 -.L2654: - add x0, x21, :lo12:.LANCHOR2 + add x21, x21, :lo12:.LANCHOR0 +.L2663: + add x0, x20, :lo12:.LANCHOR2 ldrb w1, [x19,6] - ldrh w2, [x0,756] -.L2656: + ldrh w2, [x0,2292] +.L2665: add w1, w1, 1 uxtb w1, w1 cmp w1, w2 - bne .L2655 + bne .L2664 ldrh w1, [x19,2] add w1, w1, 1 strh w1, [x19,2] mov w1, 0 -.L2655: +.L2664: add x0, x19, x1, sxtw 1 ldrh w0, [x0,16] cmp w0, w23 - beq .L2656 + beq .L2665 ldrb w0, [x19,8] strb w1, [x19,6] cmp w0, 1 - bne .L2661 - ldrb w0, [x20,4044] - cbnz w0, .L2658 - add x1, x20, 648 - ldrh w0, [x19,2] - ldrh w0, [x1,w0,sxtw 1] + bne .L2670 + add x0, x20, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] + cbnz w0, .L2667 + ldrh w1, [x19,2] + add x0, x21, 1160 + ldrh w0, [x0,w1,sxtw 1] cmp w0, w24 - bne .L2658 + bne .L2667 ldrh w1, [x19,4] - cbz w1, .L2658 + cbz w1, .L2667 ldrh w0, [x19] sub w1, w1, #1 strh w1, [x19,4] bl decrement_vpc_count - b .L2654 -.L2658: - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - ldrb w0, [x1,4044] - cbz w0, .L2661 - add x2, x21, :lo12:.LANCHOR2 - ldrh w1, [x19,2] - ldrh w0, [x2,826] - cmp w1, w0 - bcc .L2661 - ldrh w1, [x19] - ldr x0, [x2,1192] - lsl x1, x1, 1 + b .L2663 +.L2667: + add x1, x20, :lo12:.LANCHOR2 + ldrb w0, [x1,1228] + cbz w0, .L2670 + ldrh w2, [x19,2] + ldrh w0, [x1,2362] + cmp w2, w0 + bcc .L2670 + ldrh w2, [x19] + ldr x0, [x1,2728] + lsl x2, x2, 1 ldrh w4, [x19,4] - ldrh w3, [x0,x1] + ldrh w3, [x0,x2] sub w3, w3, w4 - strh w3, [x0,x1] + strh w3, [x0,x2] strh wzr, [x19,4] - ldrh w0, [x2,824] + ldrh w0, [x1,2360] strh w0, [x19,2] strb wzr, [x19,6] -.L2661: +.L2670: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17203,96 +17373,100 @@ get_new_active_ppa: FtlWriteDumpData: stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - str x25, [sp,64] - add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] + adrp x22, .LANCHOR2 + str x25, [sp,64] + stp x19, x20, [sp,16] + add x20, x22, :lo12:.LANCHOR2 stp x23, x24, [sp,48] - ldr w0, [x20,1408] - cbnz w0, .L2666 - ldrh w2, [x20,3620] - cbz w2, .L2668 - ldrb w1, [x20,3624] - cbnz w1, .L2668 - ldrb w1, [x20,3623] - ldrh w3, [x20,824] - mul w1, w1, w3 - cmp w2, w1 - beq .L2668 - ldrb w23, [x20,3626] - ldr w22, [x20,1404] - ldrh w24, [x20,756] - cbnz w23, .L2666 - sub w22, w22, #1 + ldr w0, [x20,2944] + cbnz w0, .L2675 + adrp x19, .LANCHOR4 + add x1, x19, :lo12:.LANCHOR4 + add x1, x1, 800 + ldrh w2, [x1,4] + cbz w2, .L2677 + ldrb w0, [x1,8] + cbnz w0, .L2677 + ldrb w0, [x1,7] + ldrh w3, [x20,2360] + mul w0, w0, w3 + cmp w2, w0 + beq .L2677 + ldrb w24, [x1,10] + ldr w23, [x20,2940] + ldrh w25, [x20,2292] + cbnz w24, .L2675 + sub w23, w23, #1 add x1, x29, 84 - mov w0, w22 - mov w2, w23 + mov w0, w23 + mov w2, w24 bl log2phys - ldr x21, [x20,1120] + ldr x21, [x20,2656] ldr w0, [x29,84] - ldr x1, [x20,1056] + ldr x1, [x20,2592] str w0, [x29,92] cmn w0, #1 - str w22, [x29,112] + str w23, [x29,112] str x1, [x29,96] str x21, [x29,104] - str w23, [x21,4] - beq .L2670 + str w24, [x21,4] + beq .L2679 add x0, x29, 88 mov w1, 1 - mov w2, w23 + mov w2, w24 bl FlashReadPages - b .L2671 -.L2670: - ldr x0, [x20,1056] + b .L2680 +.L2679: + ldr x0, [x20,2592] mov w1, 255 - ldrh w2, [x20,834] + ldrh w2, [x20,2370] bl ftl_memset -.L2671: - add x25, x19, :lo12:.LANCHOR2 +.L2680: + add x20, x19, :lo12:.LANCHOR4 mov w0, -3947 - lsl w24, w24, 2 + lsl w25, w25, 2 strh w0, [x21] - mov w23, 0 - add x20, x25, 3616 -.L2672: - cmp w23, w24 - beq .L2673 + mov w24, 0 + add x20, x20, 800 +.L2681: + cmp w24, w25 + beq .L2682 ldrh w0, [x20,4] - cbz w0, .L2673 + cbz w0, .L2682 ldr w0, [x29,92] - add w23, w23, 1 + add w24, w24, 1 str w0, [x21,12] ldrh w0, [x20] strh w0, [x21,2] mov x0, x20 - str w22, [x21,8] + str w23, [x21,8] bl get_new_active_ppa str w0, [x29,92] - ldr w1, [x25,880] + add x0, x22, :lo12:.LANCHOR2 mov w2, 0 - str w1, [x21,4] mov w3, w2 + ldr w1, [x0,2416] + str w1, [x21,4] add w1, w1, 1 - add x0, x29, 88 cmn w1, #1 csel w1, w1, wzr, ne - str w1, [x25,880] + str w1, [x0,2416] mov w1, 1 + add x0, x29, 88 bl FlashProgPages ldrh w0, [x20] bl decrement_vpc_count - b .L2672 -.L2673: - add x19, x19, :lo12:.LANCHOR2 + b .L2681 +.L2682: + add x19, x19, :lo12:.LANCHOR4 mov w0, 1 - strb w0, [x19,3626] - b .L2666 -.L2668: - add x19, x19, :lo12:.LANCHOR2 - strb wzr, [x19,3626] -.L2666: + strb w0, [x19,810] + b .L2675 +.L2677: + add x19, x19, :lo12:.LANCHOR4 + strb wzr, [x19,810] +.L2675: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17310,23 +17484,23 @@ l2p_flush: mov w19, 0 adrp x20, .LANCHOR2 bl FtlWriteDumpData -.L2684: +.L2693: add x1, x20, :lo12:.LANCHOR2 - ldrh w0, [x1,862] + ldrh w0, [x1,2398] cmp w0, w19 - bls .L2687 - ldr x1, [x1,1272] + bls .L2696 + ldr x1, [x1,2808] ubfiz x0, x19, 4, 16 add x0, x1, x0 ldr w0, [x0,4] - tbz w0, #31, .L2685 + tbz w0, #31, .L2694 mov w0, w19 bl flush_l2p_region -.L2685: +.L2694: add w19, w19, 1 uxth w19, w19 - b .L2684 -.L2687: + b .L2693 +.L2696: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -17341,30 +17515,29 @@ FtlSuperblockPowerLostFix: stp x19, x20, [sp,16] adrp x20, .LANCHOR2 str x23, [sp,48] - add x1, x20, :lo12:.LANCHOR2 + add x2, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x1,1408] - cbnz w1, .L2688 - adrp x2, .LANCHOR0+4044 - ldrb w21, [x2,#:lo12:.LANCHOR0+4044] - cbz w21, .L2703 + ldr w1, [x2,2944] + cbnz w1, .L2697 + ldrb w21, [x2,1228] + cbz w21, .L2712 ldrb w21, [x0,8] cmp w21, 1 - bne .L2699 + bne .L2708 ldrh w23, [x0,4] - b .L2690 -.L2699: + b .L2699 +.L2708: mov w21, w1 -.L2703: +.L2712: mov w23, 12 -.L2690: +.L2699: mov x19, x0 mov w0, -1 str w0, [x29,96] add x0, x20, :lo12:.LANCHOR2 mov w2, 61589 - ldr x22, [x0,1120] - ldr x1, [x0,1056] + ldr x22, [x0,2656] + ldr x1, [x0,2592] str x1, [x29,80] mov w1, -3 str x22, [x29,88] @@ -17374,54 +17547,54 @@ FtlSuperblockPowerLostFix: ldrh w1, [x19] strh w1, [x22,2] strh wzr, [x22] - ldr x1, [x0,1056] + ldr x1, [x0,2592] str w2, [x1] - ldr x1, [x0,1056] + ldr x1, [x0,2592] mov w0, 22136 movk w0, 0x1234, lsl 16 str w0, [x1,4] -.L2691: +.L2700: sub w23, w23, #1 cmn w23, #1 - beq .L2694 + beq .L2703 ldrh w0, [x19,4] - cbnz w0, .L2692 -.L2694: + cbnz w0, .L2701 +.L2703: add x20, x20, :lo12:.LANCHOR2 ldrh w0, [x19] ldrh w3, [x19,4] lsl x0, x0, 1 - ldr x2, [x20,1192] + ldr x2, [x20,2728] ldrh w1, [x2,x0] sub w1, w1, w3 strh w1, [x2,x0] strb wzr, [x19,6] - ldrh w0, [x20,824] + ldrh w0, [x20,2360] strh w0, [x19,2] strh wzr, [x19,4] - b .L2688 -.L2692: + b .L2697 +.L2701: mov x0, x19 bl get_new_active_ppa str w0, [x29,76] cmn w0, #1 - beq .L2694 + beq .L2703 add x1, x20, :lo12:.LANCHOR2 mov w2, w21 mov w3, 0 - ldr w0, [x1,880] + ldr w0, [x1,2416] str w0, [x22,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x1,880] + str w0, [x1,2416] add x0, x29, 72 mov w1, 1 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2691 -.L2688: + b .L2700 +.L2697: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -17432,7 +17605,7 @@ FtlSuperblockPowerLostFix: .global FtlVpcCheckAndModify .type FtlVpcCheckAndModify, %function FtlVpcCheckAndModify: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! adrp x1, .LANCHOR3 adrp x0, .LC47 add x1, x1, :lo12:.LANCHOR3 @@ -17441,93 +17614,97 @@ FtlVpcCheckAndModify: add x0, x0, :lo12:.LC47 stp x19, x20, [sp,16] stp x21, x22, [sp,32] - adrp x19, .LANCHOR2 - str x23, [sp,48] + stp x23, x24, [sp,48] + str x25, [sp,64] + adrp x22, .LANCHOR2 bl printk - mov w20, 0 - add x0, x19, :lo12:.LANCHOR2 + mov w19, 0 + add x0, x22, :lo12:.LANCHOR2 mov w1, 0 - mov x21, x19 - ldrh w2, [x0,766] - ldr x0, [x0,1184] + ldrh w2, [x0,2302] + ldr x0, [x0,2720] lsl w2, w2, 1 bl ftl_memset -.L2705: - add x19, x21, :lo12:.LANCHOR2 - ldr w0, [x19,1404] - cmp w20, w0 - bcs .L2721 - mov w0, w20 - add x1, x29, 76 +.L2714: + add x20, x22, :lo12:.LANCHOR2 + ldr w0, [x20,2940] + cmp w19, w0 + bcs .L2730 + mov w0, w19 + add x1, x29, 92 mov w2, 0 bl log2phys - ldr w0, [x29,76] + ldr w0, [x29,92] cmn w0, #1 - beq .L2706 + beq .L2715 lsr x0, x0, 10 bl P2V_block_in_plane ubfiz x0, x0, 1, 16 - ldr x2, [x19,1184] + ldr x2, [x20,2720] ldrh w1, [x2,x0] add w1, w1, 1 strh w1, [x2,x0] -.L2706: - add w20, w20, 1 - b .L2705 -.L2721: - adrp x22, .LC152 - mov w20, 0 - mov w23, 65535 - add x22, x22, :lo12:.LC152 -.L2708: - ldrh w0, [x19,764] - cmp w0, w20 - bls .L2722 - ubfiz x21, x20, 1, 16 - ldr x0, [x19,1192] - ldrh w2, [x0,x21] - ldr x0, [x19,1184] - ldrh w3, [x0,x21] +.L2715: + add w19, w19, 1 + b .L2714 +.L2730: + adrp x23, .LANCHOR4 + adrp x24, .LC152 + mov w19, 0 + mov w25, 65535 + add x23, x23, :lo12:.LANCHOR4 + add x24, x24, :lo12:.LC152 +.L2717: + add x21, x22, :lo12:.LANCHOR2 + ldrh w0, [x21,2300] + cmp w0, w19 + bls .L2731 + ubfiz x20, x19, 1, 16 + ldr x0, [x21,2728] + ldrh w2, [x0,x20] + ldr x0, [x21,2720] + cmp w2, w25 + ldrh w3, [x0,x20] + beq .L2718 cmp w2, w3 - beq .L2711 - cmp w2, w23 - beq .L2711 - mov x0, x22 - mov w1, w20 + beq .L2718 + ldrh w0, [x23,800] + cmp w0, w19 + beq .L2718 + ldrh w0, [x23,896] + cmp w0, w19 + beq .L2718 + ldrh w0, [x23,848] + cmp w0, w19 + beq .L2718 + mov w1, w19 + mov x0, x24 bl printk - ldrh w0, [x19,3616] - cmp w0, w20 - beq .L2711 - ldrh w0, [x19,3712] - cmp w0, w20 - beq .L2711 - ldrh w0, [x19,3664] - cmp w0, w20 - beq .L2711 - ldr x0, [x19,1192] - ldrh w1, [x0,x21] - cbnz w1, .L2713 - ldr x1, [x19,1184] - ldrh w1, [x1,x21] - strh w1, [x0,x21] - b .L2711 -.L2713: - ldr x1, [x19,1184] - ldrh w1, [x1,x21] - strh w1, [x0,x21] - mov w0, w20 + ldr x0, [x21,2728] + ldrh w1, [x0,x20] + cbnz w1, .L2719 + ldr x1, [x21,2720] + ldrh w1, [x1,x20] + strh w1, [x0,x20] + b .L2718 +.L2719: + ldr x1, [x21,2720] + ldrh w1, [x1,x20] + strh w1, [x0,x20] + mov w0, w19 bl update_vpc_list -.L2711: - add w20, w20, 1 - uxth w20, w20 - b .L2708 -.L2722: +.L2718: + add w19, w19, 1 + uxth w19, w19 + b .L2717 +.L2731: bl l2p_flush bl FtlVpcTblFlush - ldr x23, [sp,48] + ldr x25, [sp,64] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 + ldp x23, x24, [sp,48] + ldp x29, x30, [sp], 96 ret .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 @@ -17537,94 +17714,95 @@ allocate_new_data_superblock: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x2, x19, :lo12:.LANCHOR2 + adrp x20, .LANCHOR2 + add x1, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x2,1408] + ldr w2, [x1,2944] ldrh w22, [x0] - cbnz w1, .L2724 - mov x21, x0 + cbnz w2, .L2733 + mov x19, x0 mov w0, 65535 cmp w22, w0 - beq .L2725 - ubfiz x1, x22, 1, 16 - ldr x0, [x2,1192] - ldrh w0, [x0,x1] - cbz w0, .L2726 + beq .L2734 + ubfiz x0, x22, 1, 16 + ldr x1, [x1,2728] + ldrh w0, [x1,x0] + cbz w0, .L2735 mov w0, w22 bl INSERT_DATA_LIST - b .L2725 -.L2726: + b .L2734 +.L2735: mov w0, w22 bl INSERT_FREE_LIST -.L2725: - add x1, x19, :lo12:.LANCHOR2 - strb wzr, [x21,8] - add x0, x1, 3664 - cmp x21, x0 - beq .L2727 - ldrh w2, [x1,776] - cmp w2, 1 - beq .L2727 - adrp x0, .LANCHOR0+4044 - ldrb w0, [x0,#:lo12:.LANCHOR0+4044] - cbz w0, .L2728 -.L2727: - mov w0, 1 - strb w0, [x21,8] - b .L2729 -.L2728: - add x0, x1, 3616 - cmp x21, x0 - bne .L2729 - cmp w2, 3 - beq .L2731 - ldr w0, [x1,872] - cmp w0, 1 - bne .L2732 -.L2731: - add x1, x19, :lo12:.LANCHOR2 - mov w0, 1 - strb w0, [x1,3624] -.L2732: - add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,660] - cbz w0, .L2729 - ldr w0, [x1,924] - cmp w0, 39 - bhi .L2729 - mov w0, 1 - strb w0, [x1,3624] -.L2729: - adrp x1, .LANCHOR4 - add x0, x1, :lo12:.LANCHOR4 - mov x20, x1 - ldrh w2, [x0,4016] - mov w0, 65535 - cmp w2, w0 - beq .L2734 - cmp w22, w2 - bne .L2735 - add x19, x19, :lo12:.LANCHOR2 - ubfiz x1, x2, 1, 16 - ldr x0, [x19,1192] - ldrh w0, [x0,x1] - cbz w0, .L2736 -.L2735: - mov w0, w2 - bl update_vpc_list -.L2736: - add x1, x20, :lo12:.LANCHOR4 - mov w0, -1 - strh w0, [x1,4016] .L2734: - mov x0, x21 + adrp x0, .LANCHOR4 + strb wzr, [x19,8] + add x1, x0, :lo12:.LANCHOR4 + add x2, x1, 848 + cmp x19, x2 + beq .L2736 + add x2, x20, :lo12:.LANCHOR2 + ldrh w3, [x2,2312] + cmp w3, 1 + beq .L2736 + ldrb w4, [x2,1228] + cbz w4, .L2737 +.L2736: + mov w0, 1 + strb w0, [x19,8] + b .L2738 +.L2737: + add x1, x1, 800 + cmp x19, x1 + bne .L2738 + cmp w3, 3 + beq .L2740 + ldr w1, [x2,2408] + cmp w1, 1 + bne .L2741 +.L2740: + add x1, x0, :lo12:.LANCHOR4 + mov w2, 1 + strb w2, [x1,808] +.L2741: + add x1, x20, :lo12:.LANCHOR2 + ldr w2, [x1,2196] + cbz w2, .L2738 + ldr w1, [x1,2460] + cmp w1, 39 + bhi .L2738 + add x0, x0, :lo12:.LANCHOR4 + mov w1, 1 + strb w1, [x0,808] +.L2738: + adrp x1, .LANCHOR5 + mov w2, 65535 + add x0, x1, :lo12:.LANCHOR5 + mov x21, x1 + ldrh w0, [x0,1200] + cmp w0, w2 + beq .L2743 + cmp w22, w0 + bne .L2744 + add x20, x20, :lo12:.LANCHOR2 + ubfiz x1, x0, 1, 16 + ldr x2, [x20,2728] + ldrh w1, [x2,x1] + cbz w1, .L2745 +.L2744: + bl update_vpc_list +.L2745: + add x1, x21, :lo12:.LANCHOR5 + mov w0, -1 + strh w0, [x1,1200] +.L2743: + mov x0, x19 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2724: +.L2733: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17636,29 +17814,29 @@ allocate_new_data_superblock: .type FtlReadRefresh, %function FtlReadRefresh: stp x29, x30, [sp, -112]! - adrp x1, .LANCHOR4 - add x3, x1, :lo12:.LANCHOR4 + adrp x1, .LANCHOR5 + add x3, x1, :lo12:.LANCHOR5 add x29, sp, 0 - add x2, x3, 3472 + add x2, x3, 656 stp x19, x20, [sp,16] stp x21, x22, [sp,32] adrp x19, .LANCHOR2 ldr w0, [x2,80] - cbz w0, .L2750 + cbz w0, .L2759 add x0, x19, :lo12:.LANCHOR2 ldr w4, [x2,84] - ldr w1, [x0,1404] + ldr w1, [x0,2940] cmp w4, w1 - bcs .L2751 + bcs .L2760 mov w21, 2048 mov x20, x3 -.L2756: - add x22, x20, 3472 +.L2765: + add x22, x20, 656 add x1, x19, :lo12:.LANCHOR2 ldr w0, [x22,84] - ldr w1, [x1,1404] + ldr w1, [x1,2940] cmp w0, w1 - bcs .L2755 + bcs .L2764 add x1, x29, 52 mov w2, 0 bl log2phys @@ -17667,7 +17845,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x22,84] cmn w1, #1 - beq .L2754 + beq .L2763 str w1, [x29,60] mov w2, 0 str w0, [x29,80] @@ -17679,38 +17857,39 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29,56] cmp w0, 256 - bne .L2755 + bne .L2764 ldr w0, [x29,52] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2755: +.L2764: mov w0, -1 - b .L2758 -.L2754: + b .L2767 +.L2763: subs w21, w21, #1 - bne .L2756 - b .L2755 -.L2751: - ldr w0, [x0,904] + bne .L2765 + b .L2764 +.L2760: + ldr w0, [x0,2440] str wzr, [x2,80] str wzr, [x2,84] str w0, [x2,76] - b .L2765 -.L2750: - add x5, x19, :lo12:.LANCHOR2 - mov w6, 10000 + b .L2774 +.L2759: + add x19, x19, :lo12:.LANCHOR2 + mov w5, 10000 mov w8, 63 - ldr w3, [x5,920] - ldr w7, [x5,904] - cmp w3, w6 - mov w6, 31 - csel w8, w6, w8, hi ldr w6, [x2,76] - add w9, w7, 1048576 - ldr w4, [x5,1404] - cmp w6, w9 - bhi .L2760 + ldr w3, [x19,2456] + ldr w7, [x19,2440] + cmp w3, w5 + mov w5, 31 + csel w8, w5, w8, hi + add w5, w7, 1048576 + cmp w6, w5 + ldr w4, [x19,2940] + adrp x5, .LANCHOR4 + bhi .L2769 mov w9, 1000 lsr w3, w3, 10 add w3, w3, 1 @@ -17718,25 +17897,26 @@ FtlReadRefresh: udiv w3, w4, w3 add w3, w3, w6 cmp w3, w7 - bcc .L2760 - ldrh w3, [x5,3556] + bcc .L2769 + add x3, x5, :lo12:.LANCHOR4 + ldrh w3, [x3,740] tst w8, w3 - bne .L2758 + bne .L2767 ldr w2, [x2,100] cmp w2, w3 - beq .L2758 -.L2760: - add x19, x19, :lo12:.LANCHOR2 - add x0, x1, :lo12:.LANCHOR4 - ldrh w1, [x19,3556] - str w1, [x0,3572] + beq .L2767 +.L2769: + add x5, x5, :lo12:.LANCHOR4 + add x0, x1, :lo12:.LANCHOR5 + ldrh w1, [x5,740] + str w1, [x0,756] mov w1, 1 - str wzr, [x0,3556] - str w1, [x0,3552] - str w7, [x0,3548] -.L2765: + str wzr, [x0,740] + str w1, [x0,736] + str w7, [x0,732] +.L2774: mov w0, 0 -.L2758: +.L2767: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 @@ -17746,663 +17926,660 @@ FtlReadRefresh: .global ftl_do_gc .type ftl_do_gc, %function ftl_do_gc: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -160]! mov w2, 0 add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 - add x3, x19, :lo12:.LANCHOR2 + add x4, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w4, [x3,1408] - cbnz w4, .L2919 - adrp x4, .LANCHOR1 - add x4, x4, :lo12:.LANCHOR1 - ldr w5, [x4,3288] + ldr w3, [x4,2944] + cbnz w3, .L2928 + adrp x3, .LANCHOR1 + add x3, x3, :lo12:.LANCHOR1 + ldr w5, [x3,3352] cmn w5, #1 - beq .L2919 - ldr w5, [x3,928] - cbnz w5, .L2919 - ldrh w5, [x3,3592] + beq .L2928 + ldr w4, [x4,2464] + cbnz w4, .L2928 + adrp x23, .LANCHOR4 + add x4, x23, :lo12:.LANCHOR4 + ldrh w5, [x4,776] cmp w5, 47 - bls .L2919 + bls .L2928 mov w24, w1 - ldrh w1, [x4,3292] - str w0, [x29,124] + ldrh w1, [x3,3356] + str w0, [x29,132] mov w0, 65535 cmp w1, w0 - bne .L2768 -.L2771: + bne .L2777 +.L2780: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w4, [x0,954] + ldrh w4, [x0,2490] cmp w4, w2 - bne .L2769 - b .L2770 -.L2768: - ldrh w1, [x3,3712] + bne .L2778 + b .L2779 +.L2777: + ldrh w1, [x4,896] cmp w1, w0 - beq .L2771 + beq .L2780 mov w0, 1 bl FtlGcFreeTempBlock mov w2, 1 - cbz w0, .L2771 - b .L2919 -.L2769: - ldrh w1, [x0,952] + cbz w0, .L2780 + b .L2928 +.L2778: + ldrh w1, [x0,2488] cmp w1, w2 - bne .L2770 - ldrh w3, [x0,956] + bne .L2779 + ldrh w3, [x0,2492] cmp w3, w1 - beq .L2770 - ldrh w2, [x0,958] + beq .L2779 + ldrh w2, [x0,2494] cmp w2, w1 - beq .L2770 + beq .L2779 mov w1, -1 - strh w4, [x0,952] - strh w3, [x0,954] - strh w2, [x0,956] - strh w1, [x0,958] -.L2770: + strh w4, [x0,2488] + strh w3, [x0,2490] + strh w2, [x0,2492] + strh w1, [x0,2494] +.L2779: add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x29,124] - adrp x21, .LANCHOR4 + ldr w2, [x29,132] + adrp x20, .LANCHOR5 cmp w2, 1 - ldr w0, [x1,944] + ldr w0, [x1,2480] add w0, w0, 1 add w0, w0, w2, lsl 7 - str w0, [x1,944] - bne .L2782 - ldr w1, [x1,660] - cbnz w1, .L2773 - adrp x1, .LANCHOR0+4044 - ldrb w1, [x1,#:lo12:.LANCHOR0+4044] - cbz w1, .L2782 -.L2773: - add x20, x19, :lo12:.LANCHOR2 - ldr w1, [x20,924] + str w0, [x1,2480] + bne .L2791 + ldr w2, [x1,2196] + cbnz w2, .L2782 + ldrb w1, [x1,1228] + cbz w1, .L2791 +.L2782: + add x21, x19, :lo12:.LANCHOR2 + ldr w1, [x21,2460] cmp w1, 39 - bhi .L2782 - adrp x22, .LANCHOR5 - add x1, x22, :lo12:.LANCHOR5 - ldrh w1, [x1,-136] + bhi .L2791 + add x22, x20, :lo12:.LANCHOR5 + ldrh w1, [x22,1400] add w0, w0, w1 - str w0, [x20,944] + str w0, [x21,2480] bl FtlGcReFreshBadBlk - add x0, x21, :lo12:.LANCHOR4 + ldrh w0, [x22,608] mov w1, 65535 - ldrh w0, [x0,3424] cmp w0, w1 - bne .L2782 - ldrh w1, [x20,952] + bne .L2791 + ldrh w1, [x21,2488] cmp w1, w0 - bne .L2782 - ldr w0, [x20,944] + bne .L2791 + ldr w0, [x21,2480] cmp w0, 1024 - bhi .L2774 - ldrh w0, [x20,3608] + bhi .L2783 + add x0, x23, :lo12:.LANCHOR4 + ldrh w0, [x0,792] cmp w0, 63 - bhi .L2782 -.L2774: - add x0, x19, :lo12:.LANCHOR2 - add x1, x22, :lo12:.LANCHOR5 - ldrh w2, [x0,962] - ldrh w3, [x0,3608] + bhi .L2791 +.L2783: + add x1, x23, :lo12:.LANCHOR4 + add x0, x20, :lo12:.LANCHOR5 + ldrh w3, [x1,792] + add x1, x19, :lo12:.LANCHOR2 + strh wzr, [x0,1400] + ldrh w2, [x1,2498] add w2, w2, 64 - strh wzr, [x1,-136] cmp w3, w2 - bgt .L2782 - str wzr, [x0,944] - ldr w0, [x0,924] - cbnz w0, .L2775 - mov w0, 6 - b .L2941 -.L2775: - cmp w0, 5 - bhi .L2776 - mov w0, 18 -.L2941: - strh w0, [x1,-136] -.L2776: + bgt .L2791 + str wzr, [x1,2480] + ldr w1, [x1,2460] + cbnz w1, .L2784 + mov w1, 6 + b .L2950 +.L2784: + cmp w1, 5 + bhi .L2785 + mov w1, 18 +.L2950: + strh w1, [x0,1400] +.L2785: mov w0, 32 mov w27, 65535 bl List_get_gc_head_node uxth w25, w0 cmp w25, w27 - beq .L2781 - add x23, x19, :lo12:.LANCHOR2 - ldrh w0, [x23,964] - cbz w0, .L2778 - ldrh w1, [x23,826] + beq .L2790 + add x22, x19, :lo12:.LANCHOR2 + ldrh w0, [x22,2500] + cbz w0, .L2787 + ldrh w1, [x22,2362] ubfiz x25, x25, 1, 16 - ldrh w3, [x23,756] - ldr x26, [x23,1192] + ldrh w3, [x22,2292] + ldr x26, [x22,2728] mul w1, w1, w3 ldrh w2, [x26,x25] add w1, w1, 1 cmp w2, w1 - bgt .L2781 + bgt .L2790 add w1, w0, 1 - str wzr, [x23,932] + str wzr, [x22,2468] uxth w1, w1 - strh w1, [x23,964] - str x1, [x29,112] + strh w1, [x22,2500] + str x1, [x29,136] bl List_get_gc_head_node - uxth w20, w0 - cmp w20, w27 - ldr x1, [x29,112] - beq .L2781 - ubfiz x27, x20, 1, 16 + uxth w21, w0 + cmp w21, w27 + ldr x1, [x29,136] + beq .L2790 + ubfiz x27, x21, 1, 16 adrp x0, .LC153 ldrh w4, [x26,x25] add x0, x0, :lo12:.LC153 - mov w2, w20 + mov w2, w21 ldrh w3, [x26,x27] bl printk - ldrh w0, [x23,964] + ldrh w0, [x22,2500] cmp w0, 40 - bls .L2779 - ldr x0, [x23,1192] + bls .L2788 + ldr x0, [x22,2728] ldrh w0, [x0,x27] cmp w0, 32 - bls .L2779 - strh wzr, [x23,964] -.L2779: - add x22, x22, :lo12:.LANCHOR5 - mov w0, 6 - strh w0, [x22,-136] - b .L2783 -.L2778: + bls .L2788 + strh wzr, [x22,2500] +.L2788: + add x0, x20, :lo12:.LANCHOR5 + mov w1, 6 + strh w1, [x0,1400] + b .L2792 +.L2787: mov w0, 1 - strh w0, [x23,964] -.L2781: + strh w0, [x22,2500] +.L2790: bl GetSwlReplaceBlock - uxth w20, w0 + uxth w21, w0 mov w0, 65535 - cmp w20, w0 - bne .L2783 - add x22, x22, :lo12:.LANCHOR5 - strh wzr, [x22,-136] -.L2782: - add x0, x21, :lo12:.LANCHOR4 - ldrh w20, [x0,3424] + cmp w21, w0 + bne .L2792 + add x0, x20, :lo12:.LANCHOR5 + strh wzr, [x0,1400] +.L2791: + add x1, x20, :lo12:.LANCHOR5 mov w0, 65535 - cmp w20, w0 - bne .L2945 - add x23, x19, :lo12:.LANCHOR2 - ldrh w0, [x23,3712] - cmp w0, w20 - beq .L2946 -.L2783: + ldrh w21, [x1,608] + cmp w21, w0 + bne .L2955 + add x26, x23, :lo12:.LANCHOR4 + ldrh w0, [x26,896] + cmp w0, w21 + beq .L2956 +.L2792: mov w0, 65535 - cmp w20, w0 - cset w2, eq - cbz w2, .L2796 - ldr w0, [x29,124] - cbnz w0, .L2796 - add x0, x19, :lo12:.LANCHOR2 + cmp w21, w0 + cset w0, eq + cbz w0, .L2805 + ldr w1, [x29,132] + cbnz w1, .L2805 + add x0, x23, :lo12:.LANCHOR4 mov w22, 1 - ldrh w1, [x0,3608] - cmp w1, 24 - bhi .L2797 - cmp w1, 16 - ldrh w22, [x0,824] - bls .L2798 + ldrh w0, [x0,792] + cmp w0, 24 + bhi .L2806 + add x1, x19, :lo12:.LANCHOR2 + cmp w0, 16 + ldrh w22, [x1,2360] + bls .L2807 lsr w22, w22, 5 - b .L2797 -.L2798: - cmp w1, 12 - bls .L2799 + b .L2806 +.L2807: + cmp w0, 12 + bls .L2808 lsr w22, w22, 4 - b .L2797 -.L2799: - lsr w0, w22, 2 - cmp w1, 9 - csel w22, w0, w22, cs -.L2797: - add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,960] - cmp w2, w1 - bcs .L2801 - ldrh w1, [x0,3712] + b .L2806 +.L2808: + cmp w0, 8 + bls .L2806 + lsr w22, w22, 2 +.L2806: + add x1, x19, :lo12:.LANCHOR2 + ldrh w2, [x1,2496] + cmp w2, w0 + bcs .L2810 + add x3, x23, :lo12:.LANCHOR4 mov w2, 65535 - cmp w1, w2 - bne .L2802 - ldrh w2, [x0,952] - cmp w2, w1 - bne .L2802 - adrp x1, .LANCHOR5-136 - ldrh w2, [x1,#:lo12:.LANCHOR5-136] - cbnz w2, .L2803 - ldr w1, [x0,1404] - ldr w3, [x0,3900] - add w1, w1, w1, lsl 1 - cmp w3, w1, lsr 2 - bcs .L2804 -.L2803: - add x21, x21, :lo12:.LANCHOR4 + ldrh w0, [x3,896] + cmp w0, w2 + bne .L2811 + ldrh w2, [x1,2488] + cmp w2, w0 + bne .L2811 + add x0, x20, :lo12:.LANCHOR5 + ldrh w2, [x0,1400] + cbnz w2, .L2812 + ldr w0, [x1,2940] + ldr w3, [x3,1084] + add w0, w0, w0, lsl 1 + cmp w3, w0, lsr 2 + bcs .L2813 +.L2812: + add x20, x20, :lo12:.LANCHOR5 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x21,3420] + ldrh w0, [x20,604] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,960] - b .L2805 -.L2804: - mov w1, 18 - strh w1, [x0,960] -.L2805: + b .L2953 +.L2813: + mov w0, 18 +.L2953: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,932] - b .L2919 -.L2802: - add x0, x21, :lo12:.LANCHOR4 + strh w0, [x1,2496] + str wzr, [x19,2468] + b .L2928 +.L2811: + add x0, x20, :lo12:.LANCHOR5 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3420] + ldrh w0, [x0,604] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,960] -.L2801: + strh w0, [x1,2496] +.L2810: cmp w24, 2 - bhi .L2873 + bhi .L2882 add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,660] - cbz w0, .L2873 + ldr w0, [x0,2196] + cbz w0, .L2882 add w22, w22, 1 uxth w22, w22 - b .L2873 -.L2796: - add x0, x19, :lo12:.LANCHOR2 + b .L2882 +.L2805: + add x2, x23, :lo12:.LANCHOR4 mov w3, 65535 - ldrh w1, [x0,3712] + ldrh w1, [x2,896] cmp w1, w3 - bne .L2808 - cbz w2, .L2808 - ldrh w2, [x0,952] - cmp w2, w1 - bne .L2808 - add x2, x21, :lo12:.LANCHOR4 - ldrh w2, [x2,3424] - cmp w2, w1 - beq .L2809 -.L2814: - mov w20, 65535 - b .L2808 -.L2809: - ldrh w2, [x0,3608] - adrp x20, .LANCHOR5 - ldrh w1, [x0,960] - str wzr, [x0,932] - cmp w2, w1 - bls .L2810 - add x1, x20, :lo12:.LANCHOR5 - ldrh w1, [x1,-136] - cbnz w1, .L2811 - ldr w1, [x0,1404] - ldr w2, [x0,3900] + bne .L2817 + cbz w0, .L2817 + add x0, x19, :lo12:.LANCHOR2 + ldrh w3, [x0,2488] + cmp w3, w1 + bne .L2817 + add x3, x20, :lo12:.LANCHOR5 + ldrh w4, [x3,608] + cmp w4, w1 + beq .L2818 +.L2823: + mov w21, 65535 + b .L2817 +.L2818: + ldrh w4, [x2,792] + ldrh w1, [x0,2496] + str wzr, [x0,2468] + cmp w4, w1 + bls .L2819 + ldrh w1, [x3,1400] + cbnz w1, .L2820 + ldr w1, [x0,2940] + ldr w2, [x2,1084] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bcs .L2812 -.L2811: - add x0, x21, :lo12:.LANCHOR4 + bcs .L2821 +.L2820: + add x0, x20, :lo12:.LANCHOR5 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3420] + ldrh w0, [x0,604] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,960] - b .L2813 -.L2812: + strh w0, [x1,2496] + b .L2822 +.L2821: mov w1, 18 - strh w1, [x0,960] -.L2813: + strh w1, [x0,2496] +.L2822: bl FtlReadRefresh mov w0, 0 bl List_get_gc_head_node ubfiz x0, x0, 1, 16 add x1, x19, :lo12:.LANCHOR2 - ldr x1, [x1,1192] + ldr x1, [x1,2728] ldrh w0, [x1,x0] cmp w0, 4 - bls .L2810 + bls .L2819 add x20, x20, :lo12:.LANCHOR5 - ldrh w2, [x20,-136] - b .L2919 -.L2810: - add x23, x20, :lo12:.LANCHOR5 - ldrh w0, [x23,-136] - cbnz w0, .L2814 - add x1, x21, :lo12:.LANCHOR4 + b .L2954 +.L2819: + add x24, x20, :lo12:.LANCHOR5 + ldrh w0, [x24,1400] + cbnz w0, .L2823 + ldrh w21, [x24,604] add x22, x19, :lo12:.LANCHOR2 - ldrh w20, [x1,3420] - add w1, w20, w20, lsl 1 + add w1, w21, w21, lsl 1 asr w1, w1, 2 - strh w1, [x22,960] + strh w1, [x22,2496] bl List_get_gc_head_node ubfiz x0, x0, 1, 16 - ldr x1, [x22,1192] - ldrh w2, [x22,756] + ldr x1, [x22,2728] + ldrh w2, [x22,2292] ldrh w1, [x1,x0] - ldrh w0, [x22,826] + ldrh w0, [x22,2362] mul w0, w0, w2 mov w2, 2 sdiv w0, w0, w2 cmp w1, w0 - ble .L2815 - ldrh w0, [x22,3608] - sub w20, w20, #1 - cmp w0, w20 - blt .L2815 + ble .L2824 + add x0, x23, :lo12:.LANCHOR4 + sub w21, w21, #1 + ldrh w0, [x0,792] + cmp w0, w21 + blt .L2824 bl FtlReadRefresh - ldrh w2, [x23,-136] - b .L2919 -.L2815: - cbnz w1, .L2814 + ldrh w2, [x24,1400] + b .L2928 +.L2824: + cbnz w1, .L2823 mov w0, -1 - add x19, x19, :lo12:.LANCHOR2 + add x23, x23, :lo12:.LANCHOR4 bl decrement_vpc_count - ldrh w2, [x19,3608] + ldrh w2, [x23,792] add w2, w2, 1 - b .L2919 -.L2808: + b .L2928 +.L2817: add x0, x19, :lo12:.LANCHOR2 mov w22, 2 - ldr w0, [x0,660] + ldr w0, [x0,2196] cmp w0, wzr csinc w22, w22, wzr, ne - b .L2807 -.L2873: - mov w20, 65535 -.L2807: - add x0, x21, :lo12:.LANCHOR4 + b .L2816 +.L2882: + mov w21, 65535 +.L2816: + add x0, x20, :lo12:.LANCHOR5 mov w2, 65535 - ldrh w1, [x0,3424] + ldrh w1, [x0,608] cmp w1, w2 - bne .L2817 - cmp w20, w1 - beq .L2818 - strh w20, [x0,3424] - b .L2819 -.L2818: - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,952] - cmp w0, w20 - beq .L2819 - ubfiz x0, x0, 1, 16 - ldr x2, [x1,1192] - ldrh w0, [x2,x0] - cbnz w0, .L2820 - mov w0, -1 - strh w0, [x1,952] -.L2820: - add x1, x19, :lo12:.LANCHOR2 - add x0, x21, :lo12:.LANCHOR4 - ldrh w2, [x1,952] - strh w2, [x0,3424] - mov w0, -1 - strh w0, [x1,952] -.L2819: - add x23, x21, :lo12:.LANCHOR4 - mov w1, 65535 - ldrh w0, [x23,3424] - strb wzr, [x23,3432] - cmp w0, w1 - beq .L2817 - bl IsBlkInGcList - cbz w0, .L2822 - mov w0, -1 - strh w0, [x23,3424] -.L2822: - adrp x0, .LANCHOR0+4044 - ldrb w0, [x0,#:lo12:.LANCHOR0+4044] - cbz w0, .L2823 - add x0, x21, :lo12:.LANCHOR4 - add x23, x0, 3424 - ldrh w0, [x0,3424] - bl ftl_get_blk_mode - strb w0, [x23,8] -.L2823: - add x23, x21, :lo12:.LANCHOR4 - mov w0, 65535 - add x24, x23, 3424 - ldrh w1, [x23,3424] - cmp w1, w0 - beq .L2817 - mov x0, x24 - bl make_superblock - strh wzr, [x23,3426] - adrp x0, .LANCHOR5 - add x1, x19, :lo12:.LANCHOR2 - add x0, x0, :lo12:.LANCHOR5 - ldrh w2, [x23,3424] - strb wzr, [x23,3430] - ldr x1, [x1,1192] - strh wzr, [x0,-134] - ldrh w1, [x1,x2,lsl 1] - strh w1, [x0,-132] -.L2817: - add x0, x21, :lo12:.LANCHOR4 - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,3424] - ldrh w2, [x1,3616] - cmp w2, w0 - beq .L2824 - ldrh w2, [x1,3664] - cmp w2, w0 - beq .L2824 - ldrh w1, [x1,3712] - cmp w1, w0 - bne .L2825 -.L2824: - add x0, x21, :lo12:.LANCHOR4 - mov w1, -1 - strh w1, [x0,3424] -.L2825: - add x23, x21, :lo12:.LANCHOR4 -.L2858: - ldrh w0, [x23,3424] - mov w1, 65535 - cmp w0, w1 bne .L2826 - add x0, x19, :lo12:.LANCHOR2 - mov w26, 2 - str wzr, [x0,932] + cmp w21, w1 + beq .L2827 + strh w21, [x0,608] + b .L2828 .L2827: - add x27, x19, :lo12:.LANCHOR2 - ldrh w24, [x27,964] + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x1,2488] + cmp w0, w21 + beq .L2828 + ubfiz x0, x0, 1, 16 + ldr x2, [x1,2728] + ldrh w0, [x2,x0] + cbnz w0, .L2829 + mov w0, -1 + strh w0, [x1,2488] +.L2829: + add x1, x19, :lo12:.LANCHOR2 + add x0, x20, :lo12:.LANCHOR5 + ldrh w2, [x1,2488] + strh w2, [x0,608] + mov w0, -1 + strh w0, [x1,2488] +.L2828: + add x24, x20, :lo12:.LANCHOR5 + mov w1, 65535 + ldrh w0, [x24,608] + strb wzr, [x24,616] + cmp w0, w1 + beq .L2826 + bl IsBlkInGcList + cbz w0, .L2831 + mov w0, -1 + strh w0, [x24,608] +.L2831: + add x0, x19, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] + cbz w0, .L2832 + add x0, x20, :lo12:.LANCHOR5 + add x24, x0, 608 + ldrh w0, [x0,608] + bl ftl_get_blk_mode + strb w0, [x24,8] +.L2832: + add x24, x20, :lo12:.LANCHOR5 + mov w0, 65535 + add x25, x24, 608 + ldrh w1, [x24,608] + cmp w1, w0 + beq .L2826 + mov x0, x25 + bl make_superblock + strh wzr, [x24,610] + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x24,608] + strb wzr, [x24,614] + strh wzr, [x24,1402] + ldr x0, [x0,2728] + ldrh w0, [x0,x1,lsl 1] + strh w0, [x24,1404] +.L2826: + add x0, x20, :lo12:.LANCHOR5 + add x1, x23, :lo12:.LANCHOR4 + ldrh w0, [x0,608] + ldrh w2, [x1,800] + cmp w2, w0 + beq .L2833 + ldrh w2, [x1,848] + cmp w2, w0 + beq .L2833 + ldrh w1, [x1,896] + cmp w1, w0 + bne .L2834 +.L2833: + add x0, x20, :lo12:.LANCHOR5 + mov w1, -1 + strh w1, [x0,608] +.L2834: + add x25, x20, :lo12:.LANCHOR5 +.L2867: + ldrh w0, [x25,608] + mov w1, 65535 + cmp w0, w1 + bne .L2835 + add x0, x19, :lo12:.LANCHOR2 + str wzr, [x0,2468] +.L2836: + add x26, x19, :lo12:.LANCHOR2 + ldrh w24, [x26,2500] mov w0, w24 bl List_get_gc_head_node - uxth w28, w0 + uxth w27, w0 mov w0, 65535 - strh w28, [x23,3424] - cmp w28, w0 - bne .L2828 - strh wzr, [x27,964] + strh w27, [x25,608] + cmp w27, w0 + bne .L2837 + strh wzr, [x26,2500] mov w2, 8 - b .L2919 -.L2828: - mov w0, w28 + b .L2928 +.L2837: + mov w0, w27 add w24, w24, 1 bl IsBlkInGcList - cbz w0, .L2829 - strh w24, [x27,964] - b .L2827 -.L2829: - ldrh w4, [x27,756] - ubfiz x1, x28, 1, 16 - ldrh w0, [x27,824] + cbz w0, .L2838 + strh w24, [x26,2500] + b .L2836 +.L2838: + ldrh w5, [x26,2292] + ubfiz x1, x27, 1, 16 + ldrh w0, [x26,2360] uxth w24, w24 - ldr x2, [x27,1192] - strh w24, [x27,964] - mul w0, w0, w4 - ldrh w3, [x2,x1] - sdiv w4, w0, w26 - cmp w3, w4 - bgt .L2831 - cmp w3, 8 - bls .L2832 + ldr x2, [x26,2728] + mov w3, 2 + strh w24, [x26,2500] + mul w0, w0, w5 + ldrh w4, [x2,x1] + sdiv w5, w0, w3 + cmp w4, w5 + bgt .L2840 + cmp w4, 8 + bls .L2841 cmp w24, 48 - bls .L2832 - ldrh w3, [x23,4032] - cmp w3, 35 - bhi .L2832 -.L2831: - add x3, x19, :lo12:.LANCHOR2 - strh wzr, [x3,964] -.L2832: + bls .L2841 + ldrh w4, [x25,1216] + cmp w4, 35 + bhi .L2841 +.L2840: + add x4, x19, :lo12:.LANCHOR2 + strh wzr, [x4,2500] +.L2841: ldrh w1, [x2,x1] mov w2, 65535 - cmp w20, w2 - bne .L2833 + cmp w21, w2 + bne .L2842 cmp w1, w0 - blt .L2833 + blt .L2842 add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,964] + ldrh w2, [x0,2500] cmp w2, 3 - bhi .L2833 - add x21, x21, :lo12:.LANCHOR4 - strh wzr, [x0,964] - adrp x0, .LANCHOR5-136 + bhi .L2842 + add x20, x20, :lo12:.LANCHOR5 mov w1, -1 - strh w1, [x21,3424] - ldrh w2, [x0,#:lo12:.LANCHOR5-136] - b .L2919 -.L2833: - cbnz w1, .L2834 + strh wzr, [x0,2500] + strh w1, [x20,608] +.L2954: + ldrh w2, [x20,1400] + b .L2928 +.L2842: + cbnz w1, .L2843 mov w0, -1 bl decrement_vpc_count add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,964] + ldrh w0, [x1,2500] add w0, w0, 1 - strh w0, [x1,964] - b .L2827 -.L2834: - adrp x0, .LANCHOR0 - strb wzr, [x23,3432] - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbz w0, .L2835 - mov w0, w28 + strh w0, [x1,2500] + b .L2836 +.L2843: + add x0, x19, :lo12:.LANCHOR2 + strb wzr, [x25,616] + ldrb w0, [x0,1228] + cbz w0, .L2844 + mov w0, w27 bl ftl_get_blk_mode - strb w0, [x23,3432] -.L2835: - add x24, x23, 3424 + strb w0, [x25,616] +.L2844: + add x24, x25, 608 mov x0, x24 bl make_superblock - adrp x1, .LANCHOR5 + strh wzr, [x25,1402] add x0, x19, :lo12:.LANCHOR2 - add x1, x1, :lo12:.LANCHOR5 - ldrh w2, [x23,3424] - ldr x0, [x0,1192] - strh wzr, [x1,-134] - ldrh w0, [x0,x2,lsl 1] - strh w0, [x1,-132] - strh wzr, [x23,3426] - strb wzr, [x23,3430] -.L2826: - ldr w0, [x29,124] + ldrh w1, [x25,608] + ldr x0, [x0,2728] + ldrh w0, [x0,x1,lsl 1] + strh w0, [x25,1404] + strh wzr, [x25,610] + strb wzr, [x25,614] +.L2835: + ldr w0, [x29,132] cmp w0, 1 - bne .L2836 + bne .L2845 bl FtlReadRefresh -.L2836: +.L2845: add x0, x19, :lo12:.LANCHOR2 mov w1, 1 - str w1, [x0,928] - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - ldrh w26, [x0,824] - ldrb w1, [x1,4044] - cbz w1, .L2837 - ldrb w1, [x23,3432] + str w1, [x0,2464] + ldrh w1, [x0,2360] + str w1, [x29,136] + ldrb w1, [x0,1228] + cbz w1, .L2846 + ldrb w1, [x25,616] cmp w1, 1 - bne .L2837 - ldrh w26, [x0,826] -.L2837: - ldrh w0, [x23,3426] + bne .L2846 + ldrh w0, [x0,2362] + str w0, [x29,136] +.L2846: + ldrh w0, [x25,610] + ldr w2, [x29,136] add w1, w0, w22 - cmp w1, w26 - ble .L2838 - sub w22, w26, w0 + cmp w1, w2 + ble .L2847 + sub w22, w2, w0 uxth w22, w22 -.L2838: - mov w27, 0 -.L2839: - cmp w22, w27, uxth - bls .L2846 - add x1, x23, 3424 - add x0, x19, :lo12:.LANCHOR2 - ldrh w3, [x1,2] - ldrh w6, [x0,756] - mov x0, 0 - add w3, w3, w27 - mov w24, w0 .L2847: - cmp w6, w0, uxth - bls .L2947 + mov w27, 0 +.L2848: + cmp w22, w27, uxth + bls .L2855 + add x1, x25, 608 + add x0, x19, :lo12:.LANCHOR2 + ldrh w4, [x1,2] + ldrh w7, [x0,2292] + mov x0, 0 + add w4, w4, w27 + mov w24, w0 +.L2856: + cmp w7, w0, uxth + bls .L2957 add x2, x1, x0, lsl 1 - mov w4, 65535 + mov w3, 65535 ldrh w2, [x2,16] - cmp w2, w4 - beq .L2840 - add x5, x19, :lo12:.LANCHOR2 - mov w4, 56 - orr w2, w3, w2, lsl 10 - umull x4, w24, w4 - ldr x5, [x5,1032] + cmp w2, w3 + beq .L2849 + add x6, x19, :lo12:.LANCHOR2 + mov w3, 56 + orr w2, w4, w2, lsl 10 + umull x5, w24, w3 + ldr x6, [x6,2568] add w24, w24, 1 - add x4, x5, x4 + add x5, x6, x5 uxth w24, w24 - str w2, [x4,4] -.L2840: + str w2, [x5,4] +.L2849: add x0, x0, 1 - b .L2847 -.L2947: - add x25, x19, :lo12:.LANCHOR2 - ldrb w2, [x23,3432] + b .L2856 +.L2957: + add x0, x19, :lo12:.LANCHOR2 + ldrb w2, [x25,616] mov w1, w24 mov x28, 0 - ldr x0, [x25,1032] + ldr x0, [x0,2568] bl FlashReadPages -.L2842: + add x0, x23, :lo12:.LANCHOR4 + str x0, [x29,120] +.L2851: cmp w24, w28, uxth - bls .L2948 + bls .L2958 + add x26, x19, :lo12:.LANCHOR2 mov x0, 56 mul x5, x28, x0 - ldr x0, [x25,1032] + ldr x0, [x26,2568] add x1, x0, x5 ldr w0, [x0,x5] cmn w0, #1 - ldr x4, [x1,16] - beq .L2876 - ldrh w0, [x4] + ldr x6, [x1,16] + beq .L2885 + ldrh w0, [x6] mov w1, 61589 cmp w0, w1 - bne .L2876 - ldr w0, [x4,8] - add x1, x29, 136 + bne .L2885 + ldr w0, [x6,8] + add x1, x29, 152 mov w2, 0 str x5, [x29,104] - str x4, [x29,112] + str x6, [x29,112] bl log2phys - ldr x2, [x25,1032] + ldr x2, [x26,2568] ldr x5, [x29,104] - ldr w0, [x29,136] + ldr w0, [x29,152] add x2, x2, x5 - ldr x4, [x29,112] + ldr x6, [x29,112] and w0, w0, 2147483647 ldr w1, [x2,4] cmp w0, w1 - bne .L2876 - adrp x0, .LANCHOR5 + bne .L2885 + ldrh w0, [x25,1402] mov x3, 56 - add x1, x0, :lo12:.LANCHOR5 - str x5, [x29,96] - str x4, [x29,104] - ldrh w0, [x1,-134] + ldr x1, [x26,2544] add w0, w0, 1 - strh w0, [x1,-134] - ldr w0, [x23,4000] - ldr x1, [x25,1008] + strh w0, [x25,1402] + ldr w0, [x25,1184] + str x5, [x29,96] + str x6, [x29,104] madd x1, x0, x3, x1 ldr w0, [x2,24] str x1, [x29,112] @@ -18411,187 +18588,182 @@ ftl_do_gc: ldr x1, [x29,112] mov x2, 56 ldr x5, [x29,96] - ldr x4, [x29,104] + ldr x6, [x29,104] str w0, [x1,4] - ldr w0, [x23,4000] - ldr x1, [x25,1008] + ldr w0, [x25,1184] + ldr x1, [x26,2544] madd x0, x0, x2, x1 - ldr x1, [x25,1032] + ldr x1, [x26,2568] add x1, x1, x5 ldr x2, [x1,8] str x2, [x0,8] - add x2, x25, 3712 - str x2, [x29,112] ldr x1, [x1,16] str x1, [x0,16] mov w1, 1 - ldr w0, [x29,136] - str w0, [x4,12] - ldrh w0, [x25,3712] - strh w0, [x4,2] - ldr w0, [x25,880] - str w0, [x4,4] - ldr w0, [x23,4000] + ldr w0, [x29,152] + str w0, [x6,12] + ldr x0, [x29,120] + add x2, x0, 896 + str x2, [x29,112] + ldrh w0, [x0,896] + strh w0, [x6,2] + ldr w0, [x26,2416] + str w0, [x6,4] + ldr w0, [x25,1184] add w0, w0, 1 - str w0, [x23,4000] - ldr x0, [x25,1032] + str w0, [x25,1184] + ldr x0, [x26,2568] add x0, x0, x5 bl FtlGcBufAlloc - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbnz w0, .L2844 + ldrb w0, [x26,1228] + cbnz w0, .L2853 ldr x2, [x29,112] - ldr w1, [x23,4000] + ldr w1, [x25,1184] ldrb w0, [x2,7] cmp w1, w0 - beq .L2844 + beq .L2853 ldrh w0, [x2,4] - cbnz w0, .L2876 -.L2844: + cbnz w0, .L2885 +.L2853: bl Ftl_gc_temp_data_write_back - cbz w0, .L2876 - add x21, x21, :lo12:.LANCHOR4 + cbz w0, .L2885 + add x20, x20, :lo12:.LANCHOR5 + add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - add x19, x19, :lo12:.LANCHOR2 - strh w0, [x21,3424] - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - str wzr, [x19,928] - strh wzr, [x21,3426] - ldrh w2, [x0,-136] - b .L2919 -.L2876: + str wzr, [x19,2464] + strh w0, [x20,608] + strh wzr, [x20,610] + b .L2954 +.L2885: add x28, x28, 1 - b .L2842 -.L2948: + b .L2851 +.L2958: add w27, w27, 1 - b .L2839 -.L2846: - ldrh w0, [x23,3426] + b .L2848 +.L2855: + ldrh w0, [x25,610] add w22, w22, w0 + ldr w0, [x29,136] uxth w22, w22 - strh w22, [x23,3426] - cmp w22, w26 - bcc .L2848 - ldr w0, [x23,4000] - adrp x22, .LANCHOR5 - cbz w0, .L2849 - bl Ftl_gc_temp_data_write_back - cbz w0, .L2849 - add x19, x19, :lo12:.LANCHOR2 - add x22, x22, :lo12:.LANCHOR5 - str wzr, [x19,928] - ldrh w2, [x22,-136] - b .L2919 -.L2849: - add x22, x22, :lo12:.LANCHOR5 - ldrh w22, [x22,-134] - cbnz w22, .L2850 - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x23,3424] - ldr x0, [x0,1192] - ldrh w0, [x0,x1,lsl 1] - cbz w0, .L2850 -.L2851: - add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,1404] + strh w22, [x25,610] cmp w22, w0 - bcs .L2856 + bcc .L2857 + ldr w0, [x25,1184] + cbz w0, .L2858 + bl Ftl_gc_temp_data_write_back + cbz w0, .L2858 + add x19, x19, :lo12:.LANCHOR2 + ldrh w2, [x25,1400] + str wzr, [x19,2464] + b .L2928 +.L2858: + ldrh w22, [x25,1402] + cbnz w22, .L2859 + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x25,608] + ldr x0, [x0,2728] + ldrh w0, [x0,x1,lsl 1] + cbz w0, .L2859 +.L2860: + add x0, x19, :lo12:.LANCHOR2 + ldr w0, [x0,2940] + cmp w22, w0 + bcs .L2865 mov w0, w22 - add x1, x29, 140 + add x1, x29, 156 mov w2, 0 bl log2phys - ldr w0, [x29,140] + ldr w0, [x29,156] cmn w0, #1 - beq .L2852 + beq .L2861 lsr w0, w0, 10 bl P2V_block_in_plane - ldrh w1, [x23,3424] + ldrh w1, [x25,608] cmp w1, w0, uxth - bne .L2852 -.L2856: + bne .L2861 +.L2865: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,1404] + ldr w1, [x0,2940] cmp w22, w1 - bcc .L2850 - ldrh w1, [x23,3424] - ldr x0, [x0,1192] + bcc .L2859 + ldrh w1, [x25,608] + ldr x0, [x0,2728] strh wzr, [x0,x1,lsl 1] - ldrh w0, [x23,3424] + ldrh w0, [x25,608] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L2850 -.L2852: + b .L2859 +.L2861: add w22, w22, 1 - b .L2851 -.L2850: + b .L2860 +.L2859: mov w0, -1 - strh w0, [x23,3424] -.L2848: - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,3608] - cmp w0, 2 - bhi .L2857 - ldrh w22, [x1,824] - b .L2858 + strh w0, [x25,608] .L2857: - str wzr, [x1,928] - adrp x1, .LANCHOR5-136 - ldrh w2, [x1,#:lo12:.LANCHOR5-136] + add x0, x23, :lo12:.LANCHOR4 + ldrh w0, [x0,792] + cmp w0, 2 + bhi .L2866 + add x0, x19, :lo12:.LANCHOR2 + ldrh w22, [x0,2360] + b .L2867 +.L2866: + add x20, x20, :lo12:.LANCHOR5 + add x19, x19, :lo12:.LANCHOR2 + ldrh w2, [x20,1400] + str wzr, [x19,2464] cmp w2, wzr csinc w2, w2, w0, ne - b .L2919 -.L2946: - ldrh w25, [x23,952] - cmp w25, w20 - bne .L2783 - ldrh w0, [x23,3608] - mov w2, 1024 - ldr w1, [x23,944] + b .L2928 +.L2956: + add x25, x19, :lo12:.LANCHOR2 + ldrh w27, [x25,2488] + cmp w27, w21 + bne .L2792 + ldrh w0, [x26,792] + mov w3, 1024 + ldr w2, [x25,2480] cmp w0, 24 mov w0, 5120 - csel w0, w0, w2, cc - cmp w1, w0 - bls .L2783 - adrp x0, .LANCHOR5-136 - str wzr, [x23,944] - strh wzr, [x0,#:lo12:.LANCHOR5-136] + csel w0, w0, w3, cc + cmp w2, w0 + bls .L2792 + str wzr, [x25,2480] + strh wzr, [x1,1400] bl GetSwlReplaceBlock - uxth w20, w0 - cmp w20, w25 - bne .L2785 - ldrh w1, [x23,3608] - ldrh w0, [x23,962] + uxth w21, w0 + cmp w21, w27 + bne .L2794 + ldrh w1, [x26,792] + ldrh w0, [x25,2498] cmp w1, w0 - bcs .L2786 + bcs .L2795 mov w0, 64 bl List_get_gc_head_node uxth w0, w0 - cmp w0, w20 - beq .L2795 - ldr w2, [x23,868] + cmp w0, w21 + beq .L2804 + ldr w2, [x25,2404] uxtw x1, w0 - cbnz w2, .L2788 - ldrh w0, [x23,776] + cbnz w2, .L2797 + ldrh w0, [x25,2312] cmp w0, 3 - beq .L2788 - ldr w0, [x23,872] - cbnz w0, .L2788 - ldr w0, [x23,660] - cbnz w0, .L2788 - adrp x0, .LANCHOR0+4044 - ldrb w0, [x0,#:lo12:.LANCHOR0+4044] - cbz w0, .L2789 -.L2788: + beq .L2797 + ldr w0, [x25,2408] + cbnz w0, .L2797 + ldr w0, [x25,2196] + cbnz w0, .L2797 + ldrb w0, [x25,1228] + cbz w0, .L2798 +.L2797: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,1192] + ldr x0, [x2,2728] ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x2,826] - ldrh w0, [x2,756] - ldrh w2, [x2,776] + ldrh w1, [x2,2362] + ldrh w0, [x2,2292] + ldrh w2, [x2,2312] mul w3, w1, w0 cmp w2, 3 mov w0, 0 @@ -18599,258 +18771,140 @@ ftl_do_gc: csel w0, w1, w0, eq add w0, w3, w0 cmp w4, w0 - bgt .L2791 + bgt .L2800 mov w0, 0 bl List_get_gc_head_node - uxth w20, w0 - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,1404] - ldr w2, [x0,3900] - add w1, w1, w1, lsl 1 - cmp w2, w1, lsr 2 - bhi .L2944 - mov w1, 160 -.L2942: - strh w1, [x0,962] - mov w0, 65535 - cmp w20, w0 - beq .L2795 - b .L2785 -.L2791: + uxth w21, w0 + add x1, x19, :lo12:.LANCHOR2 + add x2, x23, :lo12:.LANCHOR4 + ldr w0, [x1,2940] + ldr w2, [x2,1084] + add w0, w0, w0, lsl 1 + cmp w2, w0, lsr 2 + bls .L2801 + mov w0, 128 + b .L2951 +.L2801: + mov w0, 160 +.L2951: + strh w0, [x1,2498] + b .L2802 +.L2800: add x0, x19, :lo12:.LANCHOR2 mov w1, 128 - b .L2943 -.L2789: - ldr x2, [x23,1192] + b .L2952 +.L2798: + ldr x2, [x25,2728] ldrh w1, [x2,x1,lsl 1] cmp w1, 7 - bhi .L2794 + bhi .L2803 bl List_get_gc_head_node - uxth w20, w0 + uxth w21, w0 add x0, x19, :lo12:.LANCHOR2 -.L2944: mov w1, 128 - b .L2942 -.L2794: + strh w1, [x0,2498] + b .L2802 +.L2803: add x0, x19, :lo12:.LANCHOR2 mov w1, 64 -.L2943: - strh w1, [x0,962] - b .L2795 -.L2786: +.L2952: + strh w1, [x0,2498] + b .L2804 +.L2795: mov w0, 80 - strh w0, [x23,962] - b .L2795 -.L2785: + strh w0, [x25,2498] + b .L2804 +.L2802: + mov w0, 65535 + cmp w21, w0 + beq .L2804 +.L2794: add x5, x19, :lo12:.LANCHOR2 - ubfiz x4, x20, 1, 32 + ubfiz x4, x21, 1, 32 + add x2, x23, :lo12:.LANCHOR4 adrp x0, .LC154 - mov w1, w20 add x0, x0, :lo12:.LC154 - ldr x3, [x5,1192] - ldr x6, [x5,1176] - ldrh w2, [x5,3608] + mov w1, w21 + ldr x3, [x5,2728] + ldr x6, [x5,2712] + ldrh w2, [x2,792] ldrh w3, [x3,x4] - ldrh w5, [x5,960] + ldrh w5, [x5,2496] ldrh w4, [x6,x4] bl printk -.L2795: +.L2804: bl FtlGcReFreshBadBlk - b .L2783 -.L2945: - mov w20, w0 - b .L2783 -.L2919: + b .L2792 +.L2955: + mov w21, w0 + b .L2792 +.L2928: 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], 144 + ldp x29, x30, [sp], 160 ret .size ftl_do_gc, .-ftl_do_gc .align 2 .global FtlCacheWriteBack .type FtlCacheWriteBack, %function FtlCacheWriteBack: - stp x29, x30, [sp, -112]! - adrp x0, .LANCHOR5-128 + stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - ldr x20, [x0,#:lo12:.LANCHOR5-128] - add x0, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] stp x23, x24, [sp,48] + adrp x23, .LANCHOR5 + add x0, x23, :lo12:.LANCHOR5 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr w22, [x0,1408] - cbnz w22, .L2951 - ldr w1, [x0,976] - cbz w1, .L2951 - adrp x0, .LANCHOR0+4044 - ldrb w0, [x0,#:lo12:.LANCHOR0+4044] - cbz w0, .L2953 + adrp x19, .LANCHOR2 + ldr x20, [x0,1408] + 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 ldrb w0, [x20,8] cmp w0, 1 cset w22, eq -.L2953: +.L2963: add x0, x19, :lo12:.LANCHOR2 ldrb w3, [x20,9] - adrp x24, .LC155 - mov w2, w22 - mov w23, 0 - mov w25, 56 - ldr x0, [x0,1040] - add x24, x24, :lo12:.LC155 - bl FlashProgPages -.L2954: - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,976] - cmp w23, w1 - bcs .L2972 - umull x21, w23, w25 - ldr x1, [x0,1040] - add x0, x1, x21 - ldr w1, [x1,x21] - cmn w1, #1 - beq .L2975 - ldr w1, [x0,4] - cbz w22, .L2989 - orr w1, w1, -2147483648 -.L2989: - ldr w0, [x0,24] - mov w2, 1 - str w1, [x29,108] - add x26, x19, :lo12:.LANCHOR2 - add x1, x29, 108 - bl log2phys - ldr x0, [x26,1040] - add x21, x0, x21 - ldr x0, [x21,16] - ldr w0, [x0,12] - cmn w0, #1 - beq .L2958 - lsr x0, x0, 10 - bl P2V_block_in_plane - uxth w1, w0 - ubfiz x0, x1, 1, 16 - ldr x2, [x26,1192] - mov w21, w1 - ldrh w2, [x2,x0] - cbnz w2, .L2959 - mov x0, x24 - bl printk -.L2959: - mov w0, w21 - bl decrement_vpc_count -.L2958: - add w23, w23, 1 - b .L2954 -.L2991: - mov w20, 16386 -.L2971: - add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,966] - cbz w0, .L2972 - mov w0, 1 - mov w1, w0 - bl ftl_do_gc - subs w20, w20, #1 - bne .L2971 -.L2972: - add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,976] - b .L2951 -.L2975: - adrp x25, .LANCHOR4 adrp x26, .LC155 + mov w2, w22 mov w24, 0 mov w27, 56 - add x25, x25, :lo12:.LANCHOR4 + ldr x0, [x0,2576] add x26, x26, :lo12:.LC155 -.L2955: - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,976] - cmp w24, w1 - bcs .L2991 - umull x21, w24, w27 - ldr x0, [x0,1040] - mov w1, -1 - mov w28, 1 - str w1, [x0,x21] -.L2961: - add x23, x19, :lo12:.LANCHOR2 - ldr x0, [x23,1040] - add x1, x0, x21 - ldr w0, [x0,x21] - cmn w0, #1 - ldr w0, [x1,4] - bne .L2992 - lsr x0, x0, 10 - bl P2V_block_in_plane - ldrh w1, [x20] - cmp w1, w0, uxth - bne .L2962 - ldr x2, [x23,1192] - ubfiz x1, x1, 1, 16 - ldrh w3, [x20,4] - ldrh w0, [x2,x1] - sub w0, w0, w3 - strh w0, [x2,x1] - strb wzr, [x20,6] - ldrh w0, [x23,824] - strh w0, [x20,2] - strh wzr, [x20,4] -.L2962: - ldrh w0, [x20,4] - cbnz w0, .L2963 - mov x0, x20 - bl allocate_new_data_superblock -.L2963: - add x23, x19, :lo12:.LANCHOR2 - ldr w0, [x25,3568] - add w0, w0, 1 - str w0, [x25,3568] - ldr x0, [x23,1040] - add x0, x0, x21 - ldr w0, [x0,4] - lsr x0, x0, 10 - bl FtlGcMarkBadPhyBlk - mov x0, x20 - bl get_new_active_ppa - str w0, [x29,108] - ldr x1, [x23,1040] - mov w2, w22 - add x1, x1, x21 - str w0, [x1,4] - mov w1, 1 - ldr x0, [x23,1040] - ldrb w3, [x20,9] - add x0, x0, x21 bl FlashProgPages - ldr x0, [x23,1040] - ldr w0, [x0,x21] - cmn w0, #1 - bne .L2964 - str w28, [x23,1408] .L2964: add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,1408] - cbz w0, .L2961 - b .L2951 -.L2992: - cbz w22, .L2990 - orr w0, w0, -2147483648 -.L2990: - str w0, [x29,108] + ldr w1, [x0,2512] + cmp w24, w1 + bcs .L2982 + umull x21, w24, w27 + ldr x1, [x0,2576] + add x0, x1, x21 + ldr w25, [x1,x21] + cmn w25, #1 + beq .L2985 + ldr w1, [x0,4] + cbz w22, .L2999 + orr w1, w1, -2147483648 +.L2999: + ldr w0, [x0,24] mov w2, 1 - ldr w0, [x1,24] - add x23, x19, :lo12:.LANCHOR2 - add x1, x29, 108 + str w1, [x29,124] + add x25, x19, :lo12:.LANCHOR2 + add x1, x29, 124 bl log2phys - ldr x0, [x23,1040] + ldr x0, [x25,2576] add x21, x0, x21 ldr x0, [x21,16] ldr w0, [x0,12] @@ -18860,7 +18914,7 @@ FtlCacheWriteBack: bl P2V_block_in_plane uxth w1, w0 ubfiz x0, x1, 1, 16 - ldr x2, [x23,1192] + ldr x2, [x25,2728] mov w21, w1 ldrh w2, [x2,x0] cbnz w2, .L2969 @@ -18871,36 +18925,164 @@ FtlCacheWriteBack: bl decrement_vpc_count .L2968: add w24, w24, 1 - b .L2955 -.L2951: + b .L2964 +.L3001: + mov w20, 16386 +.L2981: + add x0, x19, :lo12:.LANCHOR2 + ldrh w0, [x0,2502] + cbz w0, .L2982 + mov w0, 1 + mov w1, w0 + bl ftl_do_gc + subs w20, w20, #1 + bne .L2981 +.L2982: + add x19, x19, :lo12:.LANCHOR2 + str wzr, [x19,2512] + b .L2961 +.L2985: + adrp x26, .LC155 + add x0, x23, :lo12:.LANCHOR5 + mov w24, 0 + mov w27, 56 + str x0, [x29,104] + add x26, x26, :lo12:.LC155 +.L2965: + add x0, x19, :lo12:.LANCHOR2 + ldr w1, [x0,2512] + cmp w24, w1 + bcs .L3001 + umull x21, w24, w27 + ldr x0, [x0,2576] + mov w28, 1 + str w25, [x0,x21] +.L2971: + add x2, x19, :lo12:.LANCHOR2 + ldr x0, [x2,2576] + add x1, x0, x21 + ldr w0, [x0,x21] + cmn w0, #1 + bne .L3002 + ldr w0, [x1,4] + str x2, [x29,96] + lsr x0, x0, 10 + bl P2V_block_in_plane + ldrh w1, [x20] + cmp w1, w0, uxth + ldr x2, [x29,96] + bne .L2972 + ldr x3, [x2,2728] + 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] + strh w0, [x20,2] + strh wzr, [x20,4] +.L2972: + ldrh w0, [x20,4] + cbnz w0, .L2973 + mov x0, x20 + bl allocate_new_data_superblock +.L2973: + ldr x0, [x29,104] + add x23, x19, :lo12:.LANCHOR2 + add x1, x0, 656 + ldr w0, [x0,752] + add w0, w0, 1 + str w0, [x1,96] + ldr x0, [x23,2576] + add x0, x0, x21 + ldr w0, [x0,4] + lsr x0, x0, 10 + bl FtlGcMarkBadPhyBlk + mov x0, x20 + bl get_new_active_ppa + str w0, [x29,124] + ldr x1, [x23,2576] + mov w2, w22 + add x1, x1, x21 + str w0, [x1,4] + mov w1, 1 + ldr x0, [x23,2576] + ldrb w3, [x20,9] + add x0, x0, x21 + bl FlashProgPages + ldr x0, [x23,2576] + ldr w0, [x0,x21] + cmn w0, #1 + bne .L2974 + str w28, [x23,2944] +.L2974: + add x0, x19, :lo12:.LANCHOR2 + ldr w0, [x0,2944] + cbz w0, .L2971 + b .L2961 +.L3002: + ldr w0, [x1,4] + cbz w22, .L3000 + orr w0, w0, -2147483648 +.L3000: + 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] + add x21, x0, x21 + ldr x0, [x21,16] + ldr w0, [x0,12] + cmn w0, #1 + beq .L2978 + lsr x0, x0, 10 + bl P2V_block_in_plane + uxth w1, w0 + ubfiz x0, x1, 1, 16 + ldr x2, [x28,2728] + mov w21, w1 + ldrh w2, [x2,x0] + cbnz w2, .L2979 + mov x0, x26 + bl printk +.L2979: + mov w0, w21 + bl decrement_vpc_count +.L2978: + add w24, w24, 1 + b .L2965 +.L2961: 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], 128 ret .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: - adrp x0, .LANCHOR2+1408 + adrp x0, .LANCHOR2+2944 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2+1408] - cbnz w0, .L2994 - adrp x0, .LANCHOR1+3288 - ldr w0, [x0,#:lo12:.LANCHOR1+3288] + ldr w0, [x0,#:lo12:.LANCHOR2+2944] + cbnz w0, .L3004 + adrp x0, .LANCHOR1+3352 + ldr w0, [x0,#:lo12:.LANCHOR1+3352] cmn w0, #1 - beq .L2994 + beq .L3004 bl FtlCacheWriteBack bl l2p_flush mov w0, 1 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2994: +.L3004: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -18909,14 +19091,14 @@ FtlSysFlush: .global FtlDeInit .type FtlDeInit, %function FtlDeInit: - adrp x0, .LANCHOR1+3288 + adrp x0, .LANCHOR1+3352 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR1+3288] + ldr w0, [x0,#:lo12:.LANCHOR1+3352] cmp w0, 1 - bne .L2999 + bne .L3009 bl FtlSysFlush -.L2999: +.L3009: mov w0, 0 ldp x29, x30, [sp], 16 ret @@ -18950,87 +19132,86 @@ ftl_discard: stp x29, x30, [sp, -80]! add w2, w0, w1 add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w0 - adrp x0, .LANCHOR0+4048 - mov w19, w1 - str x23, [sp,48] stp x21, x22, [sp,32] - ldr w1, [x0,#:lo12:.LANCHOR0+4048] + adrp x22, .LANCHOR2 + str x23, [sp,48] + add x21, x22, :lo12:.LANCHOR2 + stp x19, x20, [sp,16] + mov w19, w1 + mov w20, w0 + ldr w1, [x21,1232] mov w0, -1 cmp w2, w1 - bhi .L3003 - adrp x0, .LANCHOR1+3288 - ldr w1, [x0,#:lo12:.LANCHOR1+3288] + bhi .L3013 + adrp x0, .LANCHOR1+3352 + ldr w1, [x0,#:lo12:.LANCHOR1+3352] cmn w1, #1 mov w0, w1 - beq .L3003 + beq .L3013 cmp w19, 31 - bls .L3018 - adrp x22, .LANCHOR2 - add x21, x22, :lo12:.LANCHOR2 - ldr w0, [x21,1408] - cbnz w0, .L3018 + bls .L3028 + ldr w0, [x21,2944] + cbnz w0, .L3028 bl FtlCacheWriteBack - ldrh w1, [x21,830] + ldrh w1, [x21,2366] udiv w21, w20, w1 msub w20, w1, w21, w20 uxth w20, w20 - cbz w20, .L3006 + cbz w20, .L3016 sub w1, w1, w20 add w21, w21, 1 cmp w1, w19 csel w1, w1, w19, ls sub w19, w19, w1, uxth -.L3006: +.L3016: mov w0, -1 adrp x23, .LANCHOR5 str w0, [x29,76] -.L3007: +.L3017: add x20, x22, :lo12:.LANCHOR2 - ldrh w0, [x20,830] + ldrh w0, [x20,2366] cmp w19, w0 - bcc .L3019 + bcc .L3029 mov w0, w21 add x1, x29, 72 mov w2, 0 bl log2phys ldr w0, [x29,72] cmn w0, #1 - beq .L3008 + beq .L3018 add x1, x23, :lo12:.LANCHOR5 mov w2, 1 - ldr w0, [x1,-120] + ldr w0, [x1,1416] add w0, w0, 1 - str w0, [x1,-120] - ldr w0, [x20,892] + str w0, [x1,1416] + ldr w0, [x20,2428] add x1, x29, 76 add w0, w0, 1 - str w0, [x20,892] + str w0, [x20,2428] mov w0, w21 bl log2phys ldr w0, [x29,72] lsr x0, x0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L3008: +.L3018: add x0, x22, :lo12:.LANCHOR2 add w21, w21, 1 - ldrh w0, [x0,830] + ldrh w0, [x0,2366] sub w19, w19, w0 - b .L3007 -.L3019: + b .L3017 +.L3029: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,-120] + ldr w1, [x0,1416] cmp w1, 32 - bls .L3018 - str wzr, [x0,-120] + bls .L3028 + str wzr, [x0,1416] bl l2p_flush bl FtlVpcTblFlush -.L3018: +.L3028: mov w0, 0 -.L3003: +.L3013: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -19041,240 +19222,253 @@ ftl_discard: .global FtlGcFreeTempBlock .type FtlGcFreeTempBlock, %function FtlGcFreeTempBlock: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -112]! add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 + str x27, [sp,80] add x2, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - ldr w3, [x2,1408] - ldrh w1, [x2,824] - cbnz w3, .L3056 - ldrh w20, [x2,3712] + ldr w3, [x2,2944] + ldrh w1, [x2,2360] + cbnz w3, .L3066 + adrp x20, .LANCHOR4 mov w4, 65535 - cmp w20, w4 - bne .L3023 -.L3032: - add x20, x19, :lo12:.LANCHOR2 - adrp x21, .LANCHOR4 - add x22, x21, :lo12:.LANCHOR4 + add x2, x20, :lo12:.LANCHOR4 + ldrh w21, [x2,896] + cmp w21, w4 + bne .L3033 +.L3042: + add x22, x20, :lo12:.LANCHOR4 + adrp x21, .LANCHOR5 + add x23, x21, :lo12:.LANCHOR5 mov w0, 65535 - add x23, x20, 3712 - ldrh w1, [x20,3712] - str wzr, [x22,4024] + add x24, x22, 896 + ldrh w1, [x22,896] + str wzr, [x23,1208] cmp w1, w0 - beq .L3056 + beq .L3066 bl FtlCacheWriteBack - mov w26, 12 - ldrb w0, [x23,7] - ldrh w3, [x20,824] - ldr x1, [x20,1192] - ldrh w2, [x20,3712] - mul w0, w0, w3 - strh w0, [x1,x2,lsl 1] - ldrh w1, [x22,4034] - mov w22, 0 - ldr w0, [x20,884] - add w0, w1, w0 - str w0, [x20,884] - b .L3033 -.L3023: - cbz w0, .L3026 + mov w25, 12 + add x0, x19, :lo12:.LANCHOR2 + ldrb w1, [x24,7] + ldrh w3, [x22,896] + mov w24, 0 + ldrh w4, [x0,2360] + ldr x2, [x0,2728] + mul w1, w1, w4 + strh w1, [x2,x3,lsl 1] + ldrh w2, [x23,1218] + mov x23, x22 + ldr w1, [x0,2420] + add w1, w2, w1 + str w1, [x0,2420] + b .L3043 +.L3033: + cbz w0, .L3036 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3292] + ldrh w5, [x0,3356] cmp w5, w4 - beq .L3027 -.L3028: + beq .L3037 +.L3038: mov w1, 2 - b .L3026 -.L3027: - strh w3, [x0,3292] - ldrh w0, [x2,3608] + b .L3036 +.L3037: + strh w3, [x0,3356] + ldrh w0, [x2,792] cmp w0, 17 - bhi .L3028 -.L3026: - add x21, x19, :lo12:.LANCHOR2 - add x0, x21, 3712 + bhi .L3038 +.L3036: + add x0, x20, :lo12:.LANCHOR4 + add x0, x0, 896 bl FtlGcScanTempBlk - str w0, [x29,92] + str w0, [x29,108] cmn w0, #1 - beq .L3029 - ubfiz x20, x20, 1, 16 - ldr x1, [x21,1176] - ldrh w0, [x1,x20] + beq .L3039 + add x19, x19, :lo12:.LANCHOR2 + ubfiz x21, x21, 1, 16 + ldr x1, [x19,2712] + ldrh w0, [x1,x21] cmp w0, 4 - bls .L3030 + bls .L3040 sub w0, w0, #5 - strh w0, [x1,x20] + strh w0, [x1,x21] mov w0, 1 bl FtlEctTblFlush -.L3030: - adrp x0, .LANCHOR4 - add x1, x0, :lo12:.LANCHOR4 +.L3040: + adrp x0, .LANCHOR5 + add x1, x0, :lo12:.LANCHOR5 mov x19, x0 - ldr w2, [x1,4024] - cbnz w2, .L3031 - ldr w0, [x1,3568] + ldr w2, [x1,1208] + cbnz w2, .L3041 + ldr w0, [x1,752] add w0, w0, 1 - str w0, [x1,3568] - ldr w0, [x29,92] + str w0, [x1,752] + ldr w0, [x29,108] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3031: - add x0, x19, :lo12:.LANCHOR4 - str wzr, [x0,4024] +.L3041: + add x0, x19, :lo12:.LANCHOR5 + str wzr, [x0,1208] mov w0, 1 - b .L3022 -.L3029: - adrp x0, .LANCHOR1+3292 + b .L3032 +.L3039: + adrp x0, .LANCHOR1+3356 mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3292] + ldrh w2, [x0,#:lo12:.LANCHOR1+3356] mov w0, 1 cmp w2, w1 - bne .L3022 - b .L3032 -.L3036: - ldr w1, [x23,4] + bne .L3032 + b .L3042 +.L3046: + ldr w1, [x22,4] cmp w0, w1 - bne .L3054 -.L3035: - add w22, w22, 1 - uxth w22, w22 -.L3033: - add x0, x21, :lo12:.LANCHOR4 - ldrh w0, [x0,4034] - cmp w0, w22 - bls .L3057 - umull x24, w22, w26 - ldr x25, [x20,992] - ldr w1, [x20,1404] - add x23, x25, x24 - ldr w0, [x23,8] + bne .L3064 +.L3045: + add w24, w24, 1 + uxth w24, w24 +.L3043: + add x0, x21, :lo12:.LANCHOR5 + ldrh w0, [x0,1218] + cmp w0, w24 + bls .L3067 + add x1, x19, :lo12:.LANCHOR2 + umull x26, w24, w25 + ldr x27, [x1,2528] + ldr w1, [x1,2940] + add x22, x27, x26 + ldr w0, [x22,8] cmp w0, w1 - bcs .L3054 - add x1, x29, 92 + bcs .L3064 + add x1, x29, 108 mov w2, 0 bl log2phys - ldr w0, [x29,92] - ldr w1, [x25,x24] + ldr w0, [x29,108] + ldr w1, [x27,x26] cmp w0, w1 - bne .L3036 + bne .L3046 lsr x0, x0, 10 bl P2V_block_in_plane - mov w24, w0 - ldr w0, [x23,8] - add x1, x23, 4 + mov w26, w0 + ldr w0, [x22,8] + add x1, x22, 4 mov w2, 1 bl log2phys - mov w0, w24 - b .L3055 -.L3054: - ldrh w0, [x20,3712] -.L3055: + mov w0, w26 + b .L3065 +.L3064: + ldrh w0, [x23,896] +.L3065: bl decrement_vpc_count - b .L3035 -.L3057: + b .L3045 +.L3067: mov w0, -1 - adrp x20, .LANCHOR0 bl decrement_vpc_count - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbz w0, .L3038 - add x1, x19, :lo12:.LANCHOR2 + add x0, x19, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] + cbz w0, .L3048 + add x1, x20, :lo12:.LANCHOR4 adrp x0, .LC156 add x0, x0, :lo12:.LC156 - ldrh w1, [x1,3712] + ldrh w1, [x1,896] bl printk -.L3038: +.L3048: + add x0, x20, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,3712] - ldr x1, [x1,1192] + ldrh w0, [x0,896] + ldr x1, [x1,2728] ubfiz x2, x0, 1, 16 ldrh w1, [x1,x2] - cbz w1, .L3039 + cbz w1, .L3049 bl INSERT_DATA_LIST - b .L3040 -.L3039: + b .L3050 +.L3049: bl INSERT_FREE_LIST -.L3040: - add x23, x21, :lo12:.LANCHOR4 - add x22, x19, :lo12:.LANCHOR2 +.L3050: + add x22, x21, :lo12:.LANCHOR5 + add x23, x20, :lo12:.LANCHOR4 mov w24, -1 - strh wzr, [x23,4034] - strh w24, [x22,3712] - strh wzr, [x23,4032] + strh wzr, [x22,1218] + strh w24, [x23,896] + strh wzr, [x22,1216] bl l2p_flush bl FtlVpcTblFlush - strh w24, [x23,3424] - ldr w0, [x22,660] - cbz w0, .L3041 - ldr w0, [x22,924] + strh w24, [x22,608] + add x1, x19, :lo12:.LANCHOR2 + ldr w0, [x1,2196] + cbz w0, .L3051 + ldr w0, [x1,2460] cmp w0, 39 - bhi .L3041 - ldrh w0, [x23,3420] - ldrh w1, [x22,3608] - cmp w1, w0 - bcs .L3056 + bhi .L3051 + ldrh w0, [x22,604] + ldrh w2, [x23,792] + cmp w2, w0 + bcs .L3066 lsl w0, w0, 1 - strh w0, [x22,960] -.L3056: + strh w0, [x1,2496] +.L3066: mov w0, 0 - b .L3022 -.L3041: - add x21, x21, :lo12:.LANCHOR4 - add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x21,3420] - ldrh w0, [x19,3608] + b .L3032 +.L3051: + add x21, x21, :lo12:.LANCHOR5 + add x20, x20, :lo12:.LANCHOR4 + ldrh w1, [x21,604] + ldrh w0, [x20,792] add w2, w1, w1, lsl 1 cmp w0, w2, lsr 2 - ble .L3056 - add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,4044] - cbz w0, .L3042 + ble .L3066 + add x19, x19, :lo12:.LANCHOR2 + ldrb w0, [x19,1228] + cbz w0, .L3052 sub w1, w1, #2 - strh w1, [x19,960] - b .L3056 -.L3042: + strh w1, [x19,2496] + b .L3066 +.L3052: mov w1, 20 - strh w1, [x19,960] -.L3022: + strh w1, [x19,2496] +.L3032: 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 FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 .global FtlGcPageRecovery .type FtlGcPageRecovery, %function FtlGcPageRecovery: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x19, x19, :lo12:.LANCHOR2 - add x20, x19, 3712 - mov x0, x20 - ldrh w1, [x19,824] + adrp x20, .LANCHOR2 + adrp x19, .LANCHOR4 + add x20, x20, :lo12:.LANCHOR2 + add x19, x19, :lo12:.LANCHOR4 + str x21, [sp,32] + add x21, x19, 896 + mov x0, x21 + ldrh w1, [x20,2360] bl FtlGcScanTempBlk - ldrh w1, [x19,3714] - ldrh w0, [x19,824] + ldrh w1, [x19,898] + ldrh w0, [x20,2360] cmp w1, w0 - bcc .L3058 - add x0, x19, 3760 + bcc .L3068 + add x0, x19, 944 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock - adrp x0, .LANCHOR4+4024 - str wzr, [x0,#:lo12:.LANCHOR4+4024] -.L3058: + adrp x0, .LANCHOR5+1208 + str wzr, [x0,#:lo12:.LANCHOR5+1208] +.L3068: ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldr x21, [sp,32] + ldp x29, x30, [sp], 48 ret .size FtlGcPageRecovery, .-FtlGcPageRecovery .align 2 @@ -19282,14 +19476,14 @@ FtlGcPageRecovery: .type FtlPowerLostRecovery, %function FtlPowerLostRecovery: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR4+4080 + adrp x0, .LANCHOR5+1264 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR4+4080] - add x19, x19, :lo12:.LANCHOR2 - add x20, x19, 3616 - add x19, x19, 3664 + adrp x19, .LANCHOR4 + str wzr, [x0,#:lo12:.LANCHOR5+1264] + add x19, x19, :lo12:.LANCHOR4 + add x20, x19, 800 + add x19, x19, 848 mov x0, x20 bl FtlRecoverySuperblock mov x0, x20 @@ -19314,28 +19508,30 @@ FtlSysBlkInit: mov w1, -1 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR4 - adrp x19, .LANCHOR2 stp x21, x22, [sp,32] - add x0, x20, :lo12:.LANCHOR4 - add x22, x19, :lo12:.LANCHOR2 + adrp x20, .LANCHOR2 + adrp x21, .LANCHOR5 str x23, [sp,48] - strh w1, [x0,4074] - strh wzr, [x0,4076] - ldrh w0, [x22,760] + 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] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh w1, [x22,3904] + add x0, x19, :lo12:.LANCHOR4 + ldrh w1, [x0,1088] mov w0, 65535 cmp w1, w0 - bne .L3062 -.L3064: - mov w21, -1 - b .L3063 -.L3062: + bne .L3072 +.L3074: + mov w22, -1 + b .L3073 +.L3072: bl FtlLoadSysInfo - mov w21, w0 - cbnz w0, .L3064 + mov w22, w0 + cbnz w0, .L3074 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -19345,89 +19541,90 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x22,862] + ldrh w2, [x23,2398] mov x1, 0 - ldr x0, [x22,1272] -.L3065: + ldr x0, [x23,2808] +.L3075: cmp w1, w2 mov w3, w1 - bge .L3069 + bge .L3079 add x4, x0, x1, lsl 4 add x1, x1, 1 ldr w4, [x4,4] - tbz w4, #31, .L3065 -.L3069: - add x0, x19, :lo12:.LANCHOR2 + tbz w4, #31, .L3075 +.L3079: + add x0, x19, :lo12:.LANCHOR4 cmp w3, w2 - ldrh w1, [x0,3556] + ldrh w1, [x0,740] add w1, w1, 1 - strh w1, [x0,3556] - blt .L3066 - add x20, x20, :lo12:.LANCHOR4 - ldrh w0, [x20,4076] - cbz w0, .L3070 -.L3066: - add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,3616] - ldr x4, [x1,1192] - lsl x2, x2, 1 - ldrh w5, [x1,3620] - ldrh w3, [x4,x2] - sub w3, w3, w5 - strh w3, [x4,x2] - strb wzr, [x1,3622] - ldrh w3, [x1,3664] - ldrh w2, [x1,824] + strh w1, [x0,740] + blt .L3076 + add x21, x21, :lo12:.LANCHOR5 + ldrh w0, [x21,1260] + cbz w0, .L3080 +.L3076: + add x1, x19, :lo12:.LANCHOR4 + add x2, x20, :lo12:.LANCHOR2 + ldrh w3, [x1,800] + ldr x5, [x2,2728] lsl x3, x3, 1 - ldr x4, [x1,1192] - strh w2, [x1,3618] - strh wzr, [x1,3620] - ldrh w5, [x1,3668] - ldrh w0, [x4,x3] - sub w0, w0, w5 - strh w0, [x4,x3] - strb wzr, [x1,3670] - ldrh w0, [x1,824] - strh w0, [x1,3666] - ldrh w0, [x1,3558] - strh wzr, [x1,3668] + ldrh w6, [x1,804] + 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] + lsl x3, x3, 1 + strh wzr, [x1,804] + ldrh w6, [x1,852] + ldrh w4, [x5,x3] + sub w4, w4, w6 + strh w4, [x5,x3] + strb wzr, [x1,854] + ldrh w0, [x1,742] + ldrh w2, [x2,2360] add w0, w0, 1 - strh w0, [x1,3558] + strh w2, [x1,850] + strh wzr, [x1,852] + strh w0, [x1,742] bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3070: - add x20, x19, :lo12:.LANCHOR2 +.L3080: + add x20, x19, :lo12:.LANCHOR4 mov w1, 65535 - add x23, x20, 3616 - ldrh w0, [x20,3616] + add x23, x20, 800 + ldrh w0, [x20,800] cmp w0, w1 - beq .L3071 - ldrh w1, [x20,3620] - cbnz w1, .L3071 - ldrh w1, [x20,3668] - add x22, x20, 3664 - cbnz w1, .L3071 + beq .L3081 + ldrh w1, [x20,804] + cbnz w1, .L3081 + ldrh w1, [x20,852] + add x21, x20, 848 + cbnz w1, .L3081 bl FtlGcRefreshOpenBlock - ldrh w0, [x20,3664] + ldrh w0, [x20,848] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush mov x0, x23 bl allocate_new_data_superblock - mov x0, x22 + mov x0, x21 bl allocate_new_data_superblock -.L3071: +.L3081: adrp x0, .LANCHOR0+88 ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbnz w0, .L3072 - add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,3556] + cbnz w0, .L3082 + add x19, x19, :lo12:.LANCHOR4 + ldrh w0, [x19,740] and w0, w0, 31 - cbnz w0, .L3063 -.L3072: + cbnz w0, .L3073 +.L3082: bl FtlVpcCheckAndModify -.L3063: - mov w0, w21 +.L3073: + mov w0, w22 ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19442,55 +19639,55 @@ FtlLowFormat: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR2 - str x23, [sp,48] add x20, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w21, [x20,1408] - cbnz w21, .L3080 - ldrh w2, [x20,860] + stp x23, x24, [sp,48] + ldr w21, [x20,2944] + cbnz w21, .L3090 + ldrh w2, [x20,2396] mov w1, w21 - ldr x0, [x20,1256] + ldr x0, [x20,2792] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,860] + ldrh w2, [x20,2396] mov w1, w21 - ldr x0, [x20,1248] + ldr x0, [x20,2784] lsl w2, w2, 2 bl ftl_memset - str w21, [x20,876] - ldrh w0, [x20,760] - str w21, [x20,880] + str w21, [x20,2412] + ldrh w0, [x20,2296] + str w21, [x20,2416] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3081 + cbz w0, .L3091 bl FtlMakeBbt -.L3081: +.L3091: mov w0, 0 -.L3082: +.L3092: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,830] + ldrh w2, [x1,2366] cmp w0, w2, lsl 7 - bge .L3109 + bge .L3119 ubfiz x3, x0, 2, 16 - ldr x4, [x1,1096] + ldr x4, [x1,2632] mvn w2, w0 orr w2, w0, w2, lsl 16 str w2, [x4,x3] add w0, w0, 1 - ldr x2, [x1,1104] + ldr x2, [x1,2640] mov w1, 23752 movk w1, 0xa0f, lsl 16 uxth w0, w0 str w1, [x2,x3] - b .L3082 -.L3109: - ldrh w21, [x1,764] + b .L3092 +.L3119: + ldrh w21, [x1,2300] mov w20, 0 -.L3084: +.L3094: add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,766] + ldrh w0, [x22,2302] cmp w0, w21 - bls .L3110 + bls .L3120 mov w0, w21 mov w1, 1 add w21, w21, 1 @@ -19498,40 +19695,40 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L3084 -.L3110: - ldrh w0, [x22,756] + b .L3094 +.L3120: + ldrh w0, [x22,2292] sub w1, w20, #3 cmp w1, w0, lsl 1 - bge .L3086 -.L3090: + bge .L3096 +.L3100: mov w20, 0 mov w21, w20 - b .L3087 -.L3086: + b .L3097 +.L3096: udiv w20, w20, w0 - ldr w0, [x22,856] + ldr w0, [x22,2392] add w0, w20, w0 bl FtlSysBlkNumInit - ldrh w0, [x22,760] + ldrh w0, [x22,2296] bl FtlFreeSysBlkQueueInit - ldrh w20, [x22,764] -.L3088: + ldrh w20, [x22,2300] +.L3098: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,766] + ldrh w0, [x0,2302] cmp w0, w20 - bls .L3090 + bls .L3100 mov w0, w20 mov w1, 1 add w20, w20, 1 bl FtlLowFormatEraseBlock uxth w20, w20 - b .L3088 -.L3087: + b .L3098 +.L3097: add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,764] + ldrh w1, [x0,2300] cmp w1, w21 - bls .L3111 + bls .L3121 mov w0, w21 mov w1, 0 add w21, w21, 1 @@ -19539,180 +19736,185 @@ FtlLowFormat: add w0, w20, w0 uxth w21, w21 uxth w20, w0 - b .L3087 -.L3111: - ldrh w1, [x0,766] - adrp x21, .LANCHOR4 - ldrh w2, [x0,756] - add x6, x21, :lo12:.LANCHOR4 - str w1, [x0,948] - ldr w1, [x0,768] + b .L3097 +.L3121: + ldrh w1, [x0,2302] + adrp x22, .LANCHOR5 + ldrh w2, [x0,2292] + add x6, x22, :lo12:.LANCHOR5 + str w1, [x0,2484] + ldr w1, [x0,2304] udiv w3, w1, w2 - str w3, [x0,1404] + str w3, [x0,2940] ubfx x5, x3, 5, 16 add w4, w5, 36 - strh w4, [x6,3420] + strh w4, [x6,604] mov w4, 24 mul w4, w2, w4 cmp w20, w4 - ble .L3092 + ble .L3102 sub w1, w1, w20 udiv w1, w1, w2 - str w1, [x0,1404] + str w1, [x0,2940] lsr w1, w1, 5 add w1, w1, 24 - strh w1, [x6,3420] -.L3092: + strh w1, [x6,604] +.L3102: add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,660] + ldr w0, [x0,2196] cmp w0, 1 - bne .L3093 - add x1, x21, :lo12:.LANCHOR4 + bne .L3103 + add x1, x22, :lo12:.LANCHOR5 udiv w0, w20, w2 - ldrh w4, [x1,3420] + ldrh w4, [x1,604] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,3420] -.L3093: - adrp x22, .LANCHOR0 - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbz w0, .L3094 - add x1, x21, :lo12:.LANCHOR4 + strh w0, [x1,604] +.L3103: + add x0, x19, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] + cbz w0, .L3104 + add x1, x22, :lo12:.LANCHOR5 udiv w0, w20, w2 - ldrh w4, [x1,3420] + ldrh w4, [x1,604] add w0, w4, w0 add w0, w4, w0, asr 2 - strh w0, [x1,3420] -.L3094: + strh w0, [x1,604] +.L3104: add x6, x19, :lo12:.LANCHOR2 - ldrh w1, [x6,818] - cbz w1, .L3096 - add x0, x21, :lo12:.LANCHOR4 - ldrh w4, [x0,3420] + ldrh w1, [x6,2354] + cbz w1, .L3106 + add x0, x22, :lo12:.LANCHOR5 + ldrh w4, [x0,604] add w4, w4, w1, lsr 1 - strh w4, [x0,3420] + strh w4, [x0,604] mul w4, w1, w2 cmp w4, w20 - ble .L3096 + ble .L3106 add w1, w1, 32 - str w3, [x6,1404] + str w3, [x6,2940] add w1, w5, w1 - strh w1, [x0,3420] -.L3096: - add x19, x19, :lo12:.LANCHOR2 - add x20, x21, :lo12:.LANCHOR4 - add x22, x22, :lo12:.LANCHOR0 - mov w23, -1 - ldrh w0, [x20,3420] - ldr w1, [x19,1404] + strh w1, [x0,604] +.L3106: + add x21, x22, :lo12:.LANCHOR5 + add x23, x19, :lo12:.LANCHOR2 + adrp x20, .LANCHOR4 + mov w24, -1 + add x20, x20, :lo12:.LANCHOR4 + ldrh w0, [x21,604] + ldr w1, [x23,2940] sub w0, w1, w0 - ldrh w1, [x19,824] + ldrh w1, [x23,2360] mul w0, w0, w2 - str w0, [x20,3416] + str w0, [x21,600] mul w0, w0, w1 - ldrh w1, [x19,830] - str w0, [x19,1404] + ldrh w1, [x23,2366] + str w0, [x23,2940] mul w0, w0, w1 - str w0, [x22,4048] + str w0, [x23,1232] bl FtlBbmTblFlush - ldrh w2, [x19,766] + ldrh w2, [x23,2302] mov w1, 0 - ldr x0, [x19,1192] + ldr x0, [x23,2728] lsl w2, w2, 1 bl ftl_memset - strh w23, [x20,3424] - strh wzr, [x20,3426] + strh w24, [x21,608] + strh wzr, [x21,610] mov w0, 1 - strb wzr, [x20,3430] + strb wzr, [x21,614] mov w1, 255 - strb wzr, [x20,3432] - add x20, x19, 3616 - ldrh w2, [x19,764] - strb w0, [x20,8] - ldr x0, [x22,16] + 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, [x19,3900] - strh wzr, [x20,2] - strb wzr, [x20,6] - strh wzr, [x19,3616] + str wzr, [x20,1084] + strh wzr, [x21,2] + ldr x0, [x0,#:lo12:.LANCHOR0+16] + strb wzr, [x21,6] + strh wzr, [x20,800] bl ftl_memset -.L3098: - mov x0, x20 +.L3108: + mov x0, x21 bl make_superblock - ldrb w0, [x20,7] - cbnz w0, .L3099 - ldrh w1, [x20] - ldr x0, [x19,1192] - strh w23, [x0,x1,lsl 1] - ldrh w0, [x20] + ldrb w0, [x21,7] + cbnz w0, .L3109 + 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, [x20] - b .L3098 -.L3099: - ldr w0, [x19,876] - mov w22, -1 - str w0, [x20,12] + 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 - ldrh w1, [x20] - str w0, [x19,876] - ldr x0, [x19,1192] - ldrh w2, [x20,4] - strh w2, [x0,x1,lsl 1] - add x0, x19, 3664 - strh wzr, [x19,3666] - ldrh w1, [x20] - mov x20, x0 - strb wzr, [x19,3670] + 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, [x19,3664] + strh w1, [x20,848] mov w1, 1 - strb w1, [x19,3672] -.L3100: - mov x0, x20 + strb w1, [x20,856] +.L3110: + mov x0, x21 bl make_superblock - ldrb w0, [x20,7] - cbnz w0, .L3101 - ldrh w1, [x20] - ldr x0, [x19,1192] - strh w22, [x0,x1,lsl 1] - ldrh w0, [x20] + ldrb w0, [x21,7] + cbnz w0, .L3111 + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x21] + ldr x0, [x0,2728] + strh w23, [x0,x1,lsl 1] + ldrh w0, [x21] add w0, w0, 1 - strh w0, [x20] - b .L3100 -.L3101: - ldr w0, [x19,876] - add x21, x21, :lo12:.LANCHOR4 - str w0, [x20,12] + strh w0, [x21] + b .L3110 +.L3111: + add x19, x19, :lo12:.LANCHOR2 + ldrh w1, [x21] + ldrh w2, [x21,4] + add x22, x22, :lo12:.LANCHOR5 + ldr w0, [x19,2412] + str w0, [x21,12] + mov w21, -1 add w0, w0, 1 - ldrh w1, [x20] - str w0, [x19,876] - ldr x0, [x19,1192] - ldrh w2, [x20,4] - mov w20, -1 + str w0, [x19,2412] + ldr x0, [x19,2728] strh w2, [x0,x1,lsl 1] - strh w20, [x19,3712] + strh w21, [x20,896] bl FtlFreeSysBlkQueueOut - strh w0, [x19,3904] - ldr w0, [x21,3416] - strh w0, [x19,3910] - ldr w0, [x19,876] - str w0, [x19,3912] + strh w0, [x20,1088] + ldr w0, [x22,600] + strh w0, [x20,1094] + ldr w0, [x19,2412] + str w0, [x20,1096] add w0, w0, 1 - strh wzr, [x19,3906] - strh w20, [x19,3908] - str w0, [x19,876] + strh wzr, [x20,1090] + strh w21, [x20,1092] + str w0, [x19,2412] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L3080 - adrp x0, .LANCHOR1+3288 + cbnz w0, .L3090 + adrp x0, .LANCHOR1+3352 mov w1, 1 - str w1, [x0,#:lo12:.LANCHOR1+3288] -.L3080: + str w1, [x0,#:lo12:.LANCHOR1+3352] +.L3090: 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 FtlLowFormat, .-FtlLowFormat @@ -19722,28 +19924,27 @@ FtlLowFormat: FtlReInitForSDUpdata: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,4044] - cbz w0, .L3113 -.L3115: + str x19, [sp,16] + adrp x19, .LANCHOR2 + add x0, x19, :lo12:.LANCHOR2 + ldrb w0, [x0,1228] + cbz w0, .L3123 +.L3125: mov w0, 0 - b .L3114 -.L3113: + b .L3124 +.L3123: adrp x0, RK29_NANDC_REG_BASE ldr x0, [x0,#:lo12:RK29_NANDC_REG_BASE] bl FlashInit - cbnz w0, .L3115 + cbnz w0, .L3125 bl FlashLoadFactorBbt - cbz w0, .L3116 + cbz w0, .L3126 bl FlashMakeFactorBbt -.L3116: - adrp x20, .LANCHOR2 - add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,696] +.L3126: + add x0, x19, :lo12:.LANCHOR2 + ldr x0, [x0,2232] bl FlashReadIdbDataRaw - cbz w0, .L3117 + cbz w0, .L3127 mov w1, 0 mov w2, 16 add x0, x29, 32 @@ -19752,72 +19953,75 @@ FtlReInitForSDUpdata: ldr w2, [x29,32] mov w1, w0 mov w4, 1 -.L3119: +.L3129: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 16 add w0, w0, w3 - bne .L3119 + bne .L3129 cmp w0, 6 - bhi .L3120 - add x0, x19, :lo12:.LANCHOR0 - b .L3142 -.L3120: + bhi .L3130 + adrp x0, .LANCHOR0+89 + strb w1, [x0,#:lo12:.LANCHOR0+89] + b .L3131 +.L3130: mov w1, 0 mov w4, 1 -.L3123: +.L3133: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 cset w3, ne cmp w1, 24 add w0, w0, w3 - bne .L3123 + bne .L3133 cmp w0, 17 - add x0, x19, :lo12:.LANCHOR0 - bls .L3142 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + bls .L3152 mov w1, 36 -.L3142: +.L3152: strb w1, [x0,89] - add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,89] - strh w1, [x0,4042] -.L3117: +.L3131: + 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 - add x20, x20, :lo12:.LANCHOR2 + add x19, x19, :lo12:.LANCHOR2 bl printk - add x0, x19, :lo12:.LANCHOR0 - mov w19, 1 - add x0, x0, 4016 + add x0, x19, 1200 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x20,760] + ldrh w0, [x19,2296] + mov w19, 1 bl FtlFreeSysBlkQueueInit -.L3125: +.L3135: bl FtlLoadBbt - cbz w0, .L3126 -.L3144: + cbz w0, .L3136 +.L3154: bl FtlLowFormat cmp w19, 3 - bhi .L3145 + bhi .L3155 add w19, w19, 1 - b .L3125 -.L3145: + b .L3135 +.L3155: mov w0, -1 - b .L3114 -.L3126: + b .L3124 +.L3136: bl FtlSysBlkInit - cbnz w0, .L3144 - adrp x1, .LANCHOR1+3288 + cbnz w0, .L3154 + adrp x1, .LANCHOR1+3352 mov w2, 1 - str w2, [x1,#:lo12:.LANCHOR1+3288] -.L3114: - ldp x19, x20, [sp,16] + str w2, [x1,#:lo12:.LANCHOR1+3352] +.L3124: + ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata @@ -19832,79 +20036,82 @@ Ftl_gc_temp_data_write_back: str x23, [sp,48] add x0, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] - ldr w1, [x0,1408] - cbz w1, .L3147 -.L3150: + ldr w1, [x0,2944] + cbz w1, .L3157 +.L3160: mov w0, 0 - b .L3148 -.L3147: - adrp x1, .LANCHOR0+4044 - adrp x22, .LANCHOR4 - ldrb w1, [x1,#:lo12:.LANCHOR0+4044] - cbz w1, .L3149 - add x1, x22, :lo12:.LANCHOR4 - ldr w1, [x1,4000] - tbz x1, 0, .L3149 - ldrh w0, [x0,3716] - cbnz w0, .L3150 -.L3149: + b .L3158 +.L3157: + ldrb w0, [x0,1228] + adrp x22, .LANCHOR5 + cbz w0, .L3159 + 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: add x0, x19, :lo12:.LANCHOR2 - add x1, x22, :lo12:.LANCHOR4 + add x1, x22, :lo12:.LANCHOR5 mov w2, 0 mov w21, 0 mov w3, w2 mov w23, 56 - ldr x0, [x0,1008] - ldr w1, [x1,4000] + ldr x0, [x0,2544] + ldr w1, [x1,1184] bl FlashProgPages -.L3151: - add x20, x22, :lo12:.LANCHOR4 - ldr w1, [x20,4000] +.L3161: + add x20, x22, :lo12:.LANCHOR5 + ldr w1, [x20,1184] cmp w21, w1 - bcs .L3161 - add x1, x19, :lo12:.LANCHOR2 + bcs .L3171 + add x2, x19, :lo12:.LANCHOR2 umull x0, w21, w23 - ldr x4, [x1,1008] - add x3, x4, x0 + ldr x4, [x2,2544] + add x1, x4, x0 ldr w4, [x4,x0] cmn w4, #1 - ldr x2, [x3,16] - bne .L3152 - ldrh w3, [x1,3712] - ldr x2, [x1,1192] - strh wzr, [x2,x3,lsl 1] - strh w4, [x1,3712] - ldr x1, [x1,1008] - ldr w2, [x20,3568] + ldr x3, [x1,16] + bne .L3162 + adrp x1, .LANCHOR4 + ldr x3, [x2,2728] + add x1, x1, :lo12:.LANCHOR4 + ldrh w5, [x1,896] + strh wzr, [x3,x5,lsl 1] + strh w4, [x1,896] + ldr w1, [x20,752] + add w1, w1, 1 + str w1, [x20,752] + ldr x1, [x2,2544] add x0, x1, x0 - add w2, w2, 1 - str w2, [x20,3568] ldr w0, [x0,4] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3160 -.L3152: - ldr w0, [x2,12] + b .L3170 +.L3162: + ldr w0, [x3,12] add w21, w21, 1 - ldr w1, [x3,4] - ldr w2, [x2,8] + ldr w1, [x1,4] + ldr w2, [x3,8] uxth w21, w21 bl FtlGcUpdatePage - b .L3151 -.L3161: + b .L3161 +.L3171: add x19, x19, :lo12:.LANCHOR2 - ldr x0, [x19,1008] + ldr x0, [x19,2544] bl FtlGcBufFree - str wzr, [x20,4000] - ldrh w0, [x19,3716] - cbnz w0, .L3150 + str wzr, [x20,1184] + adrp x0, .LANCHOR4+900 + ldrh w0, [x0,#:lo12:.LANCHOR4+900] + cbnz w0, .L3160 mov w0, 1 bl FtlGcFreeTempBlock -.L3160: +.L3170: mov w0, 1 -.L3148: +.L3158: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -19918,34 +20125,34 @@ Ftl_get_new_temp_ppa: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp,16] - adrp x19, .LANCHOR2 - add x0, x19, :lo12:.LANCHOR2 - add x1, x0, 3712 - ldrh w2, [x0,3712] + adrp x19, .LANCHOR4 + add x0, x19, :lo12:.LANCHOR4 + add x1, x0, 896 + ldrh w2, [x0,896] mov w0, 65535 cmp w2, w0 - beq .L3163 + beq .L3173 ldrh w0, [x1,4] - cbnz w0, .L3164 -.L3163: + cbnz w0, .L3174 +.L3173: bl FtlCacheWriteBack mov w0, 0 bl FtlGcFreeTempBlock - add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 3712 + add x0, x19, :lo12:.LANCHOR4 + add x0, x0, 896 strb wzr, [x0,8] bl allocate_data_superblock - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - strh wzr, [x0,4032] - strh wzr, [x0,4034] + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + strh wzr, [x0,1216] + strh wzr, [x0,1218] bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3164: - add x0, x19, :lo12:.LANCHOR2 - add x0, x0, 3712 +.L3174: + add x0, x19, :lo12:.LANCHOR4 + add x0, x0, 896 bl get_new_active_ppa ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -19957,10 +20164,10 @@ Ftl_get_new_temp_ppa: ftl_read: sub sp, sp, #224 mov w4, w0 - adrp x0, .LANCHOR1+3288 + adrp x0, .LANCHOR1+3352 stp x29, x30, [sp,16] add x29, sp, 16 - ldr w5, [x0,#:lo12:.LANCHOR1+3288] + ldr w5, [x0,#:lo12:.LANCHOR1+3352] stp x19, x20, [sp,32] stp x21, x22, [sp,48] stp x23, x24, [sp,64] @@ -19968,49 +20175,48 @@ ftl_read: stp x27, x28, [sp,96] cmn w5, #1 mov w0, w5 - beq .L3166 + beq .L3176 cmp w4, 16 mov x23, x3 mov w26, w2 mov w20, w1 - bne .L3167 + bne .L3177 add w0, w1, 256 mov w1, w2 mov x2, x3 bl FtlVendorPartRead - b .L3166 -.L3167: - add w0, w1, w2 - str w0, [x29,188] - adrp x0, .LANCHOR0+4048 - ldr w2, [x29,188] - ldr w1, [x0,#:lo12:.LANCHOR0+4048] - mov w0, -1 - cmp w2, w1 - bhi .L3166 + b .L3176 +.L3177: adrp x19, .LANCHOR2 - adrp x21, .LANCHOR4 - add x0, x19, :lo12:.LANCHOR2 - sub w25, w2, #1 - add x2, x21, :lo12:.LANCHOR4 - ldrh w1, [x0,830] - udiv w28, w20, w1 - udiv w25, w25, w1 - ldr w1, [x2,3988] - add w1, w26, w1 + add w0, w1, w2 + add x1, x19, :lo12:.LANCHOR2 + 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 + udiv w28, w20, w0 + udiv w25, w25, w0 + ldr w0, [x2,1172] + add w0, w26, w0 sub w24, w25, w28 - str w1, [x2,3988] + str w0, [x2,1172] add w24, w24, 1 - ldr w1, [x0,904] - add w1, w24, w1 - str w1, [x0,904] + ldr w0, [x1,2440] + add w0, w24, w0 + str w0, [x1,2440] mov w0, w28 mov w1, w25 bl FtlCacheMetchLpa str x21, [x29,120] - cbz w0, .L3168 + cbz w0, .L3178 bl FtlCacheWriteBack -.L3168: +.L3178: mov w27, 0 adrp x0, .LC54 add x0, x0, :lo12:.LC54 @@ -20019,27 +20225,27 @@ ftl_read: mov w22, w27 str w27, [x29,172] str x0, [x29,112] -.L3169: - cbz w24, .L3212 +.L3179: + cbz w24, .L3222 mov w0, w21 add x1, x29, 204 mov w2, 0 bl log2phys ldr w3, [x29,204] cmn w3, #1 - bne .L3210 + bne .L3220 mov w3, 0 -.L3170: +.L3180: add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,830] + ldrh w0, [x0,2366] cmp w3, w0 - bcs .L3174 + bcs .L3184 madd w0, w21, w0, w3 cmp w0, w20 - bcc .L3172 + bcc .L3182 ldr w1, [x29,188] cmp w0, w1 - bcs .L3172 + bcs .L3182 sub w0, w0, w20 mov w1, 0 ubfiz x0, x0, 9, 23 @@ -20048,21 +20254,21 @@ ftl_read: str x3, [x29,176] bl ftl_memset ldr x3, [x29,176] -.L3172: +.L3182: add w3, w3, 1 - b .L3170 -.L3210: + b .L3180 +.L3220: add x2, x19, :lo12:.LANCHOR2 mov w0, 56 cmp w21, w28 umull x1, w22, w0 - ldr x0, [x2,1000] + ldr x0, [x2,2536] add x0, x0, x1 str w3, [x0,4] - ldrh w0, [x2,830] - bne .L3175 - ldr x3, [x2,1000] - ldr x2, [x2,1096] + ldrh w0, [x2,2366] + bne .L3185 + ldr x3, [x2,2536] + ldr x2, [x2,2632] add x3, x3, x1 str x2, [x3,8] udiv w2, w20, w0 @@ -20073,60 +20279,60 @@ ftl_read: csel w2, w2, w26, ls str w2, [x29,184] cmp w2, w0 - bne .L3176 + bne .L3186 str x23, [x3,8] - b .L3176 -.L3175: + b .L3186 +.L3185: cmp w21, w25 - bne .L3177 - ldr x3, [x2,1000] - ldr x2, [x2,1104] + bne .L3187 + ldr x3, [x2,2536] + ldr x2, [x2,2640] add x3, x3, x1 ldr w4, [x29,188] str x2, [x3,8] mul w2, w21, w0 sub w27, w4, w2 cmp w27, w0 - bne .L3176 + bne .L3186 sub w2, w2, w20 ubfiz x2, x2, 9, 23 add x2, x23, x2 str x2, [x3,8] - b .L3176 -.L3177: - ldr x2, [x2,1000] + b .L3186 +.L3187: + ldr x2, [x2,2536] mul w0, w21, w0 add x2, x2, x1 sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x23, x0 str x0, [x2,8] -.L3176: +.L3186: add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,1000] + ldr x0, [x2,2536] add x1, x0, x1 - ldrh w0, [x2,836] - ldr x2, [x2,1128] + ldrh w0, [x2,2372] + ldr x2, [x2,2664] mul w0, w22, w0 str w21, [x1,24] add w22, w22, 1 and x0, x0, 4294967292 add x0, x2, x0 str x0, [x1,16] -.L3174: +.L3184: subs w24, w24, #1 add w21, w21, 1 - beq .L3178 + beq .L3188 add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,756] + ldrh w0, [x0,2292] cmp w22, w0, lsl 3 - bne .L3169 -.L3178: - cbz w22, .L3169 + bne .L3179 +.L3188: + cbz w22, .L3179 add x0, x19, :lo12:.LANCHOR2 mov w1, w22 mov w2, 0 - ldr x0, [x0,1000] + ldr x0, [x0,2536] bl FlashReadPages str xzr, [x29,176] ldr x0, [x29,144] @@ -20138,71 +20344,71 @@ ftl_read: lsl w0, w27, 9 str w0, [x29,132] ldr x0, [x29,120] - add x0, x0, :lo12:.LANCHOR4 + add x0, x0, :lo12:.LANCHOR5 str x0, [x29,160] -.L3180: +.L3190: ldr w0, [x29,176] cmp w22, w0 - bls .L3213 + bls .L3223 ldr x0, [x29,176] add x2, x19, :lo12:.LANCHOR2 mov x1, 56 mul x8, x0, x1 - ldr x0, [x2,1000] + ldr x0, [x2,2536] add x0, x0, x8 ldr w1, [x0,24] cmp w1, w28 - bne .L3181 + bne .L3191 ldr x1, [x0,8] - ldr x0, [x2,1096] + ldr x0, [x2,2632] cmp x1, x0 - bne .L3182 + bne .L3192 ldr x2, [x29,136] mov x0, x23 str x8, [x29,104] add x1, x1, x2 ldr w2, [x29,168] - b .L3211 -.L3181: + b .L3221 +.L3191: cmp w1, w25 - bne .L3182 + bne .L3192 ldr x1, [x0,8] - ldr x0, [x2,1104] + ldr x0, [x2,2640] cmp x1, x0 - bne .L3182 - ldrh w0, [x2,830] + bne .L3192 + ldrh w0, [x2,2366] ldr w2, [x29,132] str x8, [x29,104] mul w0, w25, w0 sub w0, w0, w20 ubfiz x0, x0, 9, 23 add x0, x23, x0 -.L3211: +.L3221: bl ftl_memcpy ldr x8, [x29,104] -.L3182: +.L3192: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,1000] + ldr x0, [x0,2536] add x2, x0, x8 ldr w1, [x0,x8] cmn w1, #1 - bne .L3183 + bne .L3193 ldr x0, [x29,160] str w1, [x29,172] - add x3, x0, 3472 - ldr w0, [x0,3544] + add x3, x0, 656 + ldr w0, [x0,728] add w0, w0, 1 str w0, [x3,72] -.L3183: +.L3193: ldr x0, [x2,16] ldr w1, [x2,24] ldr w0, [x0,8] cmp w1, w0 - beq .L3184 + beq .L3194 ldr x0, [x29,160] str x8, [x29,104] - add x1, x0, 3472 - ldr w0, [x0,3544] + add x1, x0, 656 + ldr w0, [x0,728] add w0, w0, 1 str w0, [x1,72] ldr x7, [x2,8] @@ -20219,35 +20425,35 @@ ftl_read: ldr w7, [x7] bl printk ldr x8, [x29,104] -.L3184: +.L3194: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,1000] + ldr x0, [x0,2536] add x1, x0, x8 ldr w0, [x0,x8] cmp w0, 256 - bne .L3185 + bne .L3195 ldr w0, [x1,4] lsr x0, x0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3185: +.L3195: ldr x0, [x29,176] add x0, x0, 1 str x0, [x29,176] - b .L3180 -.L3213: + b .L3190 +.L3223: mov w22, 0 - b .L3169 -.L3212: + b .L3179 +.L3222: add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,966] - cbz w0, .L3188 + ldrh w0, [x19,2502] + cbz w0, .L3198 mov w0, w24 mov w1, 1 bl ftl_do_gc -.L3188: +.L3198: ldr w0, [x29,172] -.L3166: +.L3176: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -20297,98 +20503,98 @@ FtlInit: mov w0, -1 adrp x1, .LC140 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR1 - str x23, [sp,48] - add x22, x22, :lo12:.LANCHOR1 + stp x23, x24, [sp,48] + adrp x23, .LANCHOR1 add x1, x1, :lo12:.LC140 + add x23, x23, :lo12:.LANCHOR1 + stp x21, x22, [sp,32] stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - adrp x21, .LANCHOR0 - str w0, [x22,3288] - adrp x0, .LANCHOR5-116 - add x23, x20, :lo12:.LANCHOR2 - add x21, x21, :lo12:.LANCHOR0 - str wzr, [x0,#:lo12:.LANCHOR5-116] + adrp x22, .LANCHOR2 + adrp x20, .LANCHOR5 + add x21, x22, :lo12:.LANCHOR2 + str w0, [x23,3352] + add x20, x20, :lo12:.LANCHOR5 adrp x0, .LC45 add x0, x0, :lo12:.LC45 - str wzr, [x23,1408] + str wzr, [x21,2944] + str wzr, [x20,1420] bl printk - add x0, x21, 4016 + add x0, x21, 1200 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh w0, [x23,760] + ldrh w0, [x21,2296] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3217 + cbz w0, .L3227 adrp x0, .LC157 add x0, x0, :lo12:.LC157 - b .L3231 -.L3217: + b .L3241 +.L3227: bl FtlSysBlkInit mov w19, w0 - cbz w0, .L3219 + cbz w0, .L3229 adrp x0, .LC158 add x0, x0, :lo12:.LC158 -.L3231: +.L3241: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 add x1, x1, 120 bl printk - b .L3218 -.L3219: + b .L3228 +.L3229: mov w1, 1 - str w1, [x22,3288] + str w1, [x23,3352] bl ftl_do_gc - ldrh w0, [x23,3608] + adrp x1, .LANCHOR4 + add x0, x1, :lo12:.LANCHOR4 + mov x24, x1 + ldrh w0, [x0,792] cmp w0, 15 - bhi .L3220 - adrp x22, .LANCHOR4 + bhi .L3230 mov w23, 65535 - add x22, x22, :lo12:.LANCHOR4 add w21, w0, 2 -.L3223: - ldrh w0, [x22,3424] +.L3233: + ldrh w0, [x20,608] cmp w0, w23 - bne .L3221 - add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,952] + bne .L3231 + add x0, x22, :lo12:.LANCHOR2 + ldrh w0, [x0,2488] cmp w0, w23 - bne .L3221 - and w0, w19, 7 + bne .L3231 + and w0, w19, 63 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3221: +.L3231: mov w0, 1 mov w1, w0 bl ftl_do_gc mov w0, 0 mov w1, 1 bl ftl_do_gc - add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,3608] + add x0, x24, :lo12:.LANCHOR4 + ldrh w0, [x0,792] cmp w0, w21 - bhi .L3218 + bhi .L3228 add w19, w19, 1 - cmp w19, 1024 - bne .L3223 - b .L3218 -.L3220: - ldrb w0, [x21,4044] - cbz w0, .L3218 + cmp w19, 4096 + bne .L3233 + b .L3228 +.L3230: + ldrb w0, [x21,1228] + cbz w0, .L3228 mov w19, 128 -.L3225: +.L3235: mov w0, 1 mov w1, w0 bl ftl_do_gc subs w19, w19, #1 - bne .L3225 -.L3218: + bne .L3235 +.L3228: 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 FtlInit, .-FtlInit @@ -20396,516 +20602,520 @@ FtlInit: .global ftl_write .type ftl_write, %function ftl_write: - stp x29, x30, [sp, -272]! + stp x29, x30, [sp, -288]! mov w4, w0 mov w0, 0 add x29, sp, 0 stp x21, x22, [sp,32] - mov w22, w1 - adrp x1, .LANCHOR2 + adrp x22, .LANCHOR2 stp x23, x24, [sp,48] - mov w23, w2 - add x2, x1, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] + mov w24, w2 + add x2, x22, :lo12:.LANCHOR2 stp x25, x26, [sp,64] + stp x19, x20, [sp,16] stp x27, x28, [sp,80] - mov x24, x3 - str x1, [x29,168] - ldr w3, [x2,1408] - cbnz w3, .L3233 + mov w23, w1 + mov x25, x3 + ldr w1, [x2,2944] + cbnz w1, .L3243 adrp x1, .LANCHOR1 - str x1, [x29,152] + str x1, [x29,176] add x3, x1, :lo12:.LANCHOR1 - ldr w3, [x3,3288] + ldr w3, [x3,3352] cmn w3, #1 - beq .L3233 + beq .L3243 cmp w4, 16 - bne .L3234 - add w0, w22, 256 - mov w1, w23 - mov x2, x24 + bne .L3244 + add w0, w23, 256 + mov w1, w24 + mov x2, x25 bl FtlVendorPartWrite - b .L3233 -.L3234: - adrp x1, .LANCHOR0 - add w3, w22, w23 - add x0, x1, :lo12:.LANCHOR0 - str x1, [x29,104] - ldr w4, [x0,4048] + b .L3243 +.L3244: + ldr w1, [x2,1232] + add w3, w23, w24 mov w0, -1 - cmp w3, w4 - bhi .L3233 - adrp x5, .LANCHOR5 - ldrh w1, [x2,830] - add x21, x5, :lo12:.LANCHOR5 - mov w0, 2048 + cmp w3, w1 + bhi .L3243 + adrp x4, .LANCHOR5 + ldrh w1, [x2,2366] + add x21, x4, :lo12:.LANCHOR5 sub w3, w3, #1 - adrp x4, .LANCHOR4 - cmp w23, w1, lsl 1 - str x5, [x29,144] - str w0, [x21,-112] - udiv w0, w22, w1 - str x4, [x29,136] - str w0, [x29,204] + mov w0, 2048 + str x4, [x29,216] + udiv w26, w23, w1 + cmp w24, w1, lsl 1 + str w0, [x21,1424] udiv w0, w3, w1 - ldr w3, [x29,204] - str w0, [x29,188] - sub w26, w0, w3 - add x3, x4, :lo12:.LANCHOR4 - add w20, w26, 1 - ldr w0, [x2,888] + ldr w3, [x2,2512] + str w0, [x29,208] + sub w27, w0, w26 + add w20, w27, 1 + ldr w0, [x2,2424] add w0, w20, w0 - str w0, [x2,888] - ldr w0, [x3,3984] - add w0, w23, w0 - str w0, [x3,3984] - ldr w3, [x2,976] + str w0, [x2,2424] + ldr w0, [x21,1168] + add w0, w24, w0 + str w0, [x21,1168] cset w0, cs - str w0, [x29,200] - cbz w3, .L3236 + str w0, [x29,212] + cbz w3, .L3246 mov w0, 56 sub w3, w3, #1 - ldr w4, [x29,204] umull x3, w3, w0 - ldr x0, [x2,1040] + ldr x0, [x2,2576] add x3, x0, x3 ldr w0, [x3,24] - cmp w4, w0 - bne .L3237 - ldr w0, [x2,896] + cmp w26, w0 + bne .L3247 + ldr w0, [x2,2432] add w0, w0, 1 - str w0, [x2,896] - ldr w0, [x21,-108] + str w0, [x2,2432] + ldr w0, [x21,1428] add w0, w0, 1 - str w0, [x21,-108] - msub w0, w4, w1, w22 + str w0, [x21,1428] + msub w0, w26, w1, w23 sub w1, w1, w0 ubfiz x0, x0, 9, 23 - cmp w1, w23 - csel w19, w1, w23, ls + cmp w1, w24 + csel w19, w1, w24, ls ldr x1, [x3,8] lsl w20, w19, 9 add x0, x1, x0 mov w2, w20 - mov x1, x24 + mov x1, x25 bl ftl_memcpy - cbnz w26, .L3238 - ldr w0, [x21,-108] + cbnz w27, .L3248 + ldr w0, [x21,1428] cmp w0, 2 - bgt .L3238 -.L3272: + bgt .L3248 +.L3282: mov w0, 0 - b .L3233 -.L3238: - ldr w0, [x29,204] - add x24, x24, x20 - sub w23, w23, w19 - add w22, w22, w19 - add w0, w0, 1 - mov w20, w26 - str w0, [x29,204] -.L3237: - ldr x0, [x29,144] + b .L3243 +.L3248: + add x25, x25, x20 + sub w24, w24, w19 + add w23, w23, w19 + add w26, w26, 1 + mov w20, w27 +.L3247: + ldr x0, [x29,216] add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,-108] -.L3236: - ldr w0, [x29,204] - ldr w1, [x29,188] + str wzr, [x0,1428] +.L3246: + ldr w1, [x29,208] + mov w0, w26 bl FtlCacheMetchLpa - cbz w0, .L3239 + cbz w0, .L3249 bl FtlCacheWriteBack -.L3239: - ldr x0, [x29,144] - ldr x1, [x29,168] +.L3249: + ldr x0, [x29,216] + adrp x2, .LANCHOR4 + add x1, x2, :lo12:.LANCHOR4 + str w26, [x29,192] add x0, x0, :lo12:.LANCHOR5 - add x3, x1, :lo12:.LANCHOR2 - add x21, x3, 3616 - mov x28, x3 - str x21, [x0,-128] - ldr w0, [x29,204] - str w0, [x29,180] + add x21, x1, 800 + str x2, [x29,128] + str x1, [x29,120] + str x21, [x0,1408] adrp x0, .LC159 add x0, x0, :lo12:.LC159 - str x21, [x29,160] - str x0, [x29,96] -.L3240: - cbz w20, .L3304 + str x21, [x29,184] + str x0, [x29,104] +.L3250: + cbz w20, .L3313 ldrh w0, [x21,4] - cbnz w0, .L3241 - ldr x1, [x29,160] + cbnz w0, .L3251 + ldr x1, [x29,184] cmp x21, x1 - bne .L3242 - add x0, x28, 3664 + bne .L3252 + ldr x0, [x29,120] + add x0, x0, 848 ldrh w19, [x0,4] - cbnz w19, .L3243 + cbnz w19, .L3253 bl allocate_new_data_superblock - ldr x0, [x29,152] + ldr x0, [x29,176] add x0, x0, :lo12:.LANCHOR1 - str w19, [x0,3296] -.L3243: - ldr x0, [x29,160] - add x21, x28, 3664 + str w19, [x0,3360] +.L3253: + ldr x0, [x29,184] bl allocate_new_data_superblock - ldr x0, [x29,152] + ldr x0, [x29,176] + ldr x1, [x29,120] add x0, x0, :lo12:.LANCHOR1 - ldr w0, [x0,3296] - cbnz w0, .L3244 -.L3245: - ldr x21, [x29,160] - b .L3244 -.L3242: - ldr x1, [x29,152] + add x21, x1, 848 + ldr w0, [x0,3360] + cbnz w0, .L3254 +.L3255: + ldr x21, [x29,184] + b .L3254 +.L3252: + ldr x1, [x29,176] add x1, x1, :lo12:.LANCHOR1 - str w0, [x1,3296] - ldr x0, [x29,160] + str w0, [x1,3360] + ldr x0, [x29,184] ldrh w0, [x0,4] - cbnz w0, .L3245 + cbnz w0, .L3255 mov x0, x21 bl allocate_new_data_superblock -.L3244: +.L3254: ldrh w0, [x21,4] - cbnz w0, .L3246 + cbnz w0, .L3256 mov x0, x21 bl allocate_new_data_superblock -.L3246: - ldr x0, [x29,144] +.L3256: + ldr x0, [x29,216] add x0, x0, :lo12:.LANCHOR5 - str x21, [x0,-128] -.L3241: - ldr w0, [x28,972] - ldr w2, [x28,976] + str x21, [x0,1408] +.L3251: + add x2, x22, :lo12:.LANCHOR2 ldrh w1, [x21,4] + str xzr, [x29,200] + ldr w0, [x2,2508] + ldr w2, [x2,2512] sub w0, w0, w2 - str xzr, [x29,192] cmp w1, w0 csel w0, w1, w0, ls cmp w0, w20 csel w0, w0, w20, ls - str w0, [x29,176] - ldr w0, [x29,200] + str w0, [x29,156] + ldr w0, [x29,212] and w0, w0, 1 - str w0, [x29,112] - add w0, w23, w22 str w0, [x29,116] -.L3247: - ldr w0, [x29,192] - ldr w2, [x29,176] - ldr w1, [x29,180] + add w0, w24, w23 + str w0, [x29,152] +.L3257: + ldr w0, [x29,200] + ldr w2, [x29,156] + ldr w1, [x29,192] cmp w0, w2 - add w25, w1, w0 - bcs .L3305 + add w28, w1, w0 + bcs .L3314 ldrh w1, [x21,4] - cbz w1, .L3279 - ldr w1, [x29,188] - cmp w25, w1 - cset w27, eq - cbz w0, .L3249 - ldr w1, [x29,112] - tst w27, w1 - beq .L3249 - ldrh w1, [x28,830] - ldr w2, [x29,116] - msub w2, w25, w1, w2 + cbz w1, .L3289 + ldr w1, [x29,208] + cmp w28, w1 + cset w6, eq + cbz w0, .L3259 + ldr w1, [x29,116] + tst w6, w1 + beq .L3259 + add x1, x22, :lo12:.LANCHOR2 + ldr w2, [x29,152] + ldrh w1, [x1,2366] + msub w2, w28, w1, w2 cmp w2, w1 - bne .L3279 -.L3249: - add x1, x29, 212 + bne .L3289 +.L3259: + add x1, x29, 228 mov w2, 0 - mov w0, w25 - mov w19, 56 + mov w0, w28 + str x6, [x29,96] + add x19, x22, :lo12:.LANCHOR2 bl log2phys mov x0, x21 bl get_new_active_ppa - ldr w5, [x28,976] - ldr x2, [x28,1040] - umull x1, w5, w19 + ldr w5, [x19,2512] + mov w4, 56 + ldr x2, [x19,2576] + str x4, [x29,160] + umull x1, w5, w4 add x2, x2, x1 str w0, [x2,4] - ldrh w2, [x28,836] - ldr x0, [x28,1040] + ldrh w2, [x19,2372] + ldr x0, [x19,2576] add x1, x0, x1 mul w0, w2, w5 and x0, x0, 4294967292 - str x0, [x29,128] - ldr x0, [x28,1144] - ldr x3, [x29,128] - str x0, [x29,120] - add x26, x0, x3 - ldrh w0, [x28,834] - str x26, [x1,16] - str w25, [x1,24] + str x0, [x29,144] + ldr x0, [x19,2680] + ldr x3, [x29,144] + str x0, [x29,136] + add x27, x0, x3 + ldrh w0, [x19,2370] + str x27, [x1,16] + str w28, [x1,24] mul w0, w0, w5 - ldr x5, [x28,1088] + ldr x5, [x19,2624] and x0, x0, 4294967292 add x0, x5, x0 str x0, [x1,8] - mov x0, x26 + mov x0, x27 mov w1, 0 bl ftl_memset - ldr w0, [x29,204] - cmp w25, w0 + cmp w28, w26 cset w0, eq - str w0, [x29,184] - cbnz w0, .L3283 - cbz w27, .L3250 - ldrh w19, [x28,830] - ldr w0, [x29,116] - ldr w27, [x29,184] - msub w19, w25, w19, w0 + str w0, [x29,196] + cbnz w0, .L3293 + ldr x6, [x29,96] + ldr x4, [x29,160] + cbz w6, .L3260 + ldr w0, [x29,152] + ldrh w19, [x19,2366] + msub w19, w28, w19, w0 + ldr w0, [x29,196] + str w0, [x29,160] uxth w19, w19 - b .L3253 -.L3283: - ldrh w19, [x28,830] - udiv w27, w22, w19 - msub w27, w27, w19, w22 - sub w19, w19, w27 - cmp w19, w23 - csel w19, w19, w23, ls -.L3253: - ldrh w0, [x28,830] + b .L3263 +.L3293: + ldrh w19, [x19,2366] + 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: + add x2, x22, :lo12:.LANCHOR2 + ldrh w0, [x2,2366] cmp w19, w0 - bne .L3254 - ldr w0, [x29,184] - mov x1, x24 - cbnz w0, .L3255 - mul w1, w19, w25 - sub w1, w1, w22 + bne .L3264 + ldr w0, [x29,196] + mov x1, x25 + cbnz w0, .L3265 + mul w1, w19, w28 + sub w1, w1, w23 ubfiz x1, x1, 9, 23 - add x1, x24, x1 -.L3255: - ldr w2, [x29,200] + add x1, x25, x1 +.L3265: + ldr w2, [x29,212] mov w0, 56 - cbz w2, .L3256 - ldr w2, [x28,976] + add x4, x22, :lo12:.LANCHOR2 + cbz w2, .L3266 + ldr w2, [x4,2512] umull x0, w2, w0 - ldr x2, [x28,1040] + ldr x2, [x4,2576] add x0, x2, x0 - b .L3301 -.L3256: - ldr w2, [x28,976] + b .L3311 +.L3266: + ldr w2, [x4,2512] umull x0, w2, w0 - ldr x2, [x28,1040] + ldr x2, [x4,2576] add x0, x2, x0 + ldrh w2, [x4,2370] ldr x0, [x0,8] - b .L3302 -.L3254: - ldr w0, [x29,212] + b .L3312 +.L3264: + ldr w0, [x29,228] cmn w0, #1 - beq .L3258 - str w0, [x29,220] + beq .L3268 + str w0, [x29,236] mov w1, 56 - ldr w0, [x28,976] - mov w2, 0 - str w25, [x29,240] + ldr w0, [x2,2512] + str w28, [x29,256] umull x0, w0, w1 - ldr x1, [x28,1040] + ldr x1, [x2,2576] + mov w2, 0 add x0, x1, x0 ldr x1, [x0,8] ldr x0, [x0,16] - str x1, [x29,224] + str x1, [x29,240] mov w1, 1 - str x0, [x29,232] - add x0, x29, 216 + str x0, [x29,248] + add x0, x29, 232 bl FlashReadPages - ldr w0, [x29,216] + ldr w0, [x29,232] cmn w0, #1 - bne .L3259 - ldr x0, [x29,136] - add x0, x0, :lo12:.LANCHOR4 - ldr w1, [x0,3544] + bne .L3269 + ldr x0, [x29,216] + add x0, x0, :lo12:.LANCHOR5 + ldr w1, [x0,728] add w1, w1, 1 - str w1, [x0,3544] - b .L3261 -.L3259: - ldr w0, [x26,8] - cmp w0, w25 - beq .L3261 - ldr x0, [x29,136] - mov w2, w25 - add x0, x0, :lo12:.LANCHOR4 - ldr w1, [x0,3544] + str w1, [x0,728] + b .L3271 +.L3269: + ldr w0, [x27,8] + cmp w0, w28 + beq .L3271 + ldr x0, [x29,216] + mov w2, w28 + add x0, x0, :lo12:.LANCHOR5 + ldr w1, [x0,728] add w1, w1, 1 - str w1, [x0,3544] - ldr x0, [x29,96] - ldr w1, [x26,8] + str w1, [x0,728] + ldr x0, [x29,104] + ldr w1, [x27,8] bl printk - b .L3261 -.L3258: - ldr w0, [x28,976] + b .L3271 +.L3268: + ldr w0, [x2,2512] mov w1, 56 - ldrh w2, [x28,834] umull x0, w0, w1 - ldr x1, [x28,1040] + ldr x1, [x2,2576] + ldrh w2, [x2,2370] add x0, x1, x0 mov w1, 0 ldr x0, [x0,8] bl ftl_memset -.L3261: - ldr w1, [x29,184] +.L3271: + ldr w1, [x29,196] mov w0, 56 lsl w2, w19, 9 - cbz w1, .L3262 - ldr w1, [x28,976] - ubfiz x27, x27, 9, 23 - umull x0, w1, w0 - ldr x1, [x28,1040] + cbz w1, .L3272 + add x1, x22, :lo12:.LANCHOR2 + ldr w4, [x1,2512] + umull x0, w4, w0 + ldr x4, [x1,2576] + add x4, x4, x0 + ldr x0, [x29,160] + ubfiz x0, x0, 9, 23 + ldr x1, [x4,8] add x0, x1, x0 - mov x1, x24 - ldr x0, [x0,8] - add x0, x0, x27 - b .L3303 -.L3262: - ldr w1, [x28,976] - umull x0, w1, w0 - ldr x1, [x28,1040] + mov x1, x25 + b .L3312 +.L3272: + add x5, x22, :lo12:.LANCHOR2 + ldr w4, [x5,2512] + ldr x1, [x5,2576] + umull x0, w4, w0 add x0, x1, x0 - ldrh w1, [x28,830] - mul w1, w25, w1 + ldrh w1, [x5,2366] + mul w1, w28, w1 ldr x0, [x0,8] - sub w1, w1, w22 + sub w1, w1, w23 ubfiz x1, x1, 9, 23 - add x1, x24, x1 - b .L3303 -.L3250: - ldr w0, [x29,200] - ldrh w1, [x28,830] - ldr w2, [x28,976] - cbz w0, .L3263 - mul w1, w25, w1 - umull x0, w2, w19 - sub w1, w1, w22 - ldr x2, [x28,1040] + add x1, x25, x1 + b .L3312 +.L3260: + ldr w0, [x29,212] + ldrh w1, [x19,2366] + ldr w2, [x19,2512] + cbz w0, .L3273 + mul w1, w28, w1 + umull x0, w2, w4 + sub w1, w1, w23 + ldr x2, [x19,2576] ubfiz x1, x1, 9, 23 add x0, x2, x0 - add x1, x24, x1 -.L3301: + add x1, x25, x1 +.L3311: str x1, [x0,8] - b .L3257 -.L3263: - umull x0, w2, w19 - ldr x2, [x28,1040] - mul w1, w25, w1 + b .L3267 +.L3273: + umull x0, w2, w4 + ldr x2, [x19,2576] + mul w1, w28, w1 add x0, x2, x0 - sub w1, w1, w22 + ldrh w2, [x19,2370] + sub w1, w1, w23 ubfiz x1, x1, 9, 23 ldr x0, [x0,8] - add x1, x24, x1 -.L3302: - ldrh w2, [x28,834] -.L3303: + add x1, x25, x1 +.L3312: bl ftl_memcpy -.L3257: - ldr x1, [x29,120] +.L3267: + ldr x1, [x29,136] mov w0, -3947 - ldr x2, [x29,128] + ldr x2, [x29,144] strh w0, [x1,x2] - str w25, [x26,8] - ldr w0, [x28,880] - str w0, [x26,4] + add x1, x22, :lo12:.LANCHOR2 + str w28, [x27,8] + ldr w0, [x1,2416] + str w0, [x27,4] add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x28,880] - ldr w0, [x29,212] - str w0, [x26,12] + str w0, [x1,2416] + ldr w0, [x29,228] + str w0, [x27,12] ldrh w0, [x21] - strh w0, [x26,2] - ldr w0, [x28,976] + strh w0, [x27,2] + ldr w0, [x1,2512] add w0, w0, 1 - str w0, [x28,976] - ldr x0, [x29,192] + str w0, [x1,2512] + ldr x0, [x29,200] add x0, x0, 1 - str x0, [x29,192] - b .L3247 -.L3305: - str w25, [x29,180] + str x0, [x29,200] + b .L3257 +.L3314: + str w28, [x29,192] mov x0, x2 - b .L3248 -.L3279: - str w25, [x29,180] -.L3248: + b .L3258 +.L3289: + str w28, [x29,192] +.L3258: sub w20, w20, w0 - ldr w0, [x29,200] - cbnz w0, .L3267 - ldr w1, [x28,976] - ldr w0, [x28,972] + ldr w0, [x29,212] + cbnz w0, .L3277 + add x0, x22, :lo12:.LANCHOR2 + ldr w1, [x0,2512] + ldr w0, [x0,2508] cmp w1, w0 - bcs .L3267 + bcs .L3277 ldrh w0, [x21,4] - cbz w0, .L3267 -.L3269: - str wzr, [x29,200] - b .L3240 -.L3267: + cbz w0, .L3277 +.L3279: + str wzr, [x29,212] + b .L3250 +.L3277: bl FtlCacheWriteBack - str wzr, [x28,976] + add x0, x22, :lo12:.LANCHOR2 cmp w20, 1 - bhi .L3240 - b .L3269 -.L3304: - ldr w1, [x29,188] + str wzr, [x0,2512] + bhi .L3250 + b .L3279 +.L3313: + ldr w1, [x29,208] mov w0, w20 - ldr w2, [x29,204] - sub w1, w1, w2 + sub w1, w1, w26 bl ftl_do_gc - ldr x0, [x29,168] - add x0, x0, :lo12:.LANCHOR2 - ldrh w0, [x0,3608] + ldr x0, [x29,128] + add x0, x0, :lo12:.LANCHOR4 + ldrh w0, [x0,792] cmp w0, 5 - bls .L3271 + bls .L3281 cmp w0, 31 - bhi .L3272 - ldr x0, [x29,104] - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,88] - cbnz w0, .L3272 -.L3271: - ldr x0, [x29,136] - mov w21, 65535 - mov w22, 128 - add x23, x0, :lo12:.LANCHOR4 -.L3294: - ldrh w0, [x23,3424] - cmp w0, w21 - bne .L3273 - ldr x0, [x29,168] - add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,952] - cmp w1, w21 - bne .L3273 - ldrh w0, [x0,954] - cmp w0, w21 - bne .L3273 + bhi .L3282 + adrp x0, .LANCHOR0+88 + ldrb w0, [x0,#:lo12:.LANCHOR0+88] + cbnz w0, .L3282 +.L3281: + ldr x0, [x29,216] + mov w19, 65535 + mov w23, 128 + add x24, x0, :lo12:.LANCHOR5 +.L3304: + ldrh w0, [x24,608] + cmp w0, w19 + bne .L3283 + add x0, x22, :lo12:.LANCHOR2 + ldrh w1, [x0,2488] + cmp w1, w19 + bne .L3283 + ldrh w0, [x0,2490] + cmp w0, w19 + bne .L3283 and w0, w20, 7 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3273: - ldr x0, [x29,168] - add x19, x0, :lo12:.LANCHOR2 +.L3283: + add x21, x22, :lo12:.LANCHOR2 mov w0, 1 mov w1, w0 - strh w22, [x19,962] - strh w22, [x19,960] + strh w23, [x21,2498] + strh w23, [x21,2496] bl ftl_do_gc mov w0, 0 mov w1, 1 bl ftl_do_gc - ldr w0, [x19,1408] - cbnz w0, .L3272 - ldrh w0, [x19,3608] + ldr w0, [x21,2944] + cbnz w0, .L3282 + ldr x0, [x29,128] + add x0, x0, :lo12:.LANCHOR4 + ldrh w0, [x0,792] cmp w0, 2 - bhi .L3272 + bhi .L3282 add w20, w20, 1 cmp w20, 256 - bne .L3294 - b .L3272 -.L3233: + bne .L3304 + b .L3282 +.L3243: 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], 288 ret .size ftl_write, .-ftl_write .align 2 @@ -20943,110 +21153,111 @@ ftl_sys_write: .global ftl_fix_nand_power_lost_error .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: - adrp x0, .LANCHOR0+4044 stp x29, x30, [sp, -128]! add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+4044] stp x19, x20, [sp,16] + adrp x19, .LANCHOR2 + add x0, x19, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - cbz w0, .L3308 - adrp x21, .LANCHOR4 - adrp x19, .LANCHOR2 - add x0, x21, :lo12:.LANCHOR4 - add x20, x19, :lo12:.LANCHOR2 + ldrb w1, [x0,1228] + cbz w1, .L3317 + adrp x21, .LANCHOR5 + ldr x2, [x0,2728] + add x1, x21, :lo12:.LANCHOR5 adrp x24, .LC160 - add x26, x20, 3616 - add x25, x20, 3664 - ldrh w23, [x0,4074] + adrp x20, .LANCHOR4 add x0, x24, :lo12:.LC160 - ldr x2, [x20,1192] + add x20, x20, :lo12:.LANCHOR4 + ldrh w23, [x1,1258] + add x26, x20, 800 + add x25, x20, 848 ubfiz x22, x23, 1, 16 mov w1, w23 ldrh w2, [x2,x22] bl printk - ldrh w0, [x20,3616] + ldrh w0, [x20,800] bl FtlGcRefreshOpenBlock - ldrh w0, [x20,3664] + ldrh w0, [x20,848] mov w20, 4097 bl FtlGcRefreshOpenBlock mov x0, x26 bl allocate_new_data_superblock mov x0, x25 bl allocate_new_data_superblock -.L3310: +.L3319: subs w20, w20, #1 - beq .L3314 + beq .L3323 mov w0, 1 mov w1, w0 bl ftl_do_gc add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,1192] + ldr x0, [x0,2728] ldrh w0, [x0,x22] - cbnz w0, .L3310 -.L3314: + cbnz w0, .L3319 +.L3323: add x20, x19, :lo12:.LANCHOR2 add x0, x24, :lo12:.LC160 mov w1, w23 - ldr x2, [x20,1192] + ldr x2, [x20,2728] ldrh w2, [x2,x22] bl printk - ldr x0, [x20,1192] + ldr x0, [x20,2728] ldrh w0, [x0,x22] - cbnz w0, .L3312 + cbnz w0, .L3321 add x0, x29, 80 strh w23, [x29,80] bl make_superblock mov x0, 0 - ldrh w5, [x20,756] + ldrh w5, [x20,2292] mov w6, 65535 mov w20, w0 mov w7, 56 -.L3315: +.L3324: cmp w5, w0, uxth - bls .L3322 + bls .L3331 add x1, x29, 80 add x1, x1, x0, lsl 1 ldrh w2, [x1,16] cmp w2, w6 - beq .L3316 + beq .L3325 add x4, x19, :lo12:.LANCHOR2 lsl w2, w2, 10 umull x1, w20, w7 add w20, w20, 1 - ldr x3, [x4,1024] + ldr x3, [x4,2560] uxth w20, w20 add x3, x3, x1 str w2, [x3,4] - ldr x2, [x4,1024] + ldr x2, [x4,2560] add x1, x2, x1 str xzr, [x1,8] str xzr, [x1,16] -.L3316: +.L3325: add x0, x0, 1 - b .L3315 -.L3322: + b .L3324 +.L3331: add x19, x19, :lo12:.LANCHOR2 adrp x0, .LC161 mov w1, w23 add x0, x0, :lo12:.LC161 - ldr x2, [x19,1192] + ldr x2, [x19,2728] ldrh w2, [x2,x22] bl printk - ldr x0, [x19,1024] + ldr x0, [x19,2560] mov w1, 0 mov w2, w20 bl FlashEraseBlocks - ldr x0, [x19,1024] + ldr x0, [x19,2560] mov w1, 1 mov w2, w20 bl FlashEraseBlocks -.L3312: - add x21, x21, :lo12:.LANCHOR4 +.L3321: + add x21, x21, :lo12:.LANCHOR5 mov w0, -1 - strh w0, [x21,4074] -.L3308: + strh w0, [x21,1258] +.L3317: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -21283,38 +21494,38 @@ ftl_fix_nand_power_lost_error: .section .rodata .align 3 .LANCHOR3 = . + 0 - .type __func__.19640, %object - .size __func__.19640, 11 -__func__.19640: + .type __func__.20884, %object + .size __func__.20884, 11 +__func__.20884: .string "FtlMemInit" .zero 5 - .type __func__.20383, %object - .size __func__.20383, 12 -__func__.20383: + .type __func__.21627, %object + .size __func__.21627, 12 +__func__.21627: .string "FtlCheckVpc" .zero 4 - .type __func__.20415, %object - .size __func__.20415, 17 -__func__.20415: + .type __func__.21659, %object + .size __func__.21659, 17 +__func__.21659: .string "FtlDumpBlockInfo" .zero 7 - .type __func__.20434, %object - .size __func__.20434, 16 -__func__.20434: + .type __func__.21678, %object + .size __func__.21678, 16 +__func__.21678: .string "FtlScanAllBlock" - .type __func__.20700, %object - .size __func__.20700, 17 -__func__.20700: + .type __func__.21944, %object + .size __func__.21944, 17 +__func__.21944: .string "ftl_scan_all_ppa" .zero 7 - .type __func__.20682, %object - .size __func__.20682, 21 -__func__.20682: + .type __func__.21926, %object + .size __func__.21926, 21 +__func__.21926: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.19713, %object - .size __func__.19713, 8 -__func__.19713: + .type __func__.20957, %object + .size __func__.20957, 8 +__func__.20957: .string "FtlInit" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -21598,7 +21809,7 @@ __func__.19713: .LC139: .string "free %d. [0x%x] 0x%x 0x%x\n" .LC140: - .string "FTL version: 5.0.57 20190828" + .string "FTL version: 5.0.60 20200218" .LC141: .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" .LC142: @@ -22027,7 +22238,7 @@ gNandParaInfo: .byte 0 .zero 4 .type NandFlashParaTbl, %object - .size NandFlashParaTbl, 2592 + .size NandFlashParaTbl, 2656 NandFlashParaTbl: .byte 6 .byte 44 @@ -22732,6 +22943,32 @@ NandFlashParaTbl: .byte 0 .zero 4 .byte 6 + .byte 44 + .byte -92 + .byte 100 + .byte 50 + .byte -86 + .byte 4 + .byte 4 + .byte 1 + .byte 32 + .hword 1024 + .byte 2 + .byte 1 + .hword 2192 + .hword 1479 + .byte 10 + .byte 19 + .byte 60 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .byte 1 + .byte 0 + .zero 4 + .byte 6 .byte -83 .byte -34 .byte -108 @@ -23303,6 +23540,32 @@ NandFlashParaTbl: .byte 0 .byte 0 .zero 4 + .byte 5 + .byte -119 + .byte -124 + .byte 100 + .byte 60 + .byte -91 + .byte 0 + .byte 7 + .byte 1 + .byte 32 + .hword 512 + .byte 2 + .byte 2 + .hword 1024 + .hword 455 + .byte 4 + .byte 17 + .byte 40 + .byte 32 + .byte 1 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .zero 4 .byte 6 .byte -104 .byte -41 @@ -24292,7 +24555,7 @@ power_up_flag: .align 3 .LANCHOR0 = . + 0 .LANCHOR2 = . + 4352 -.LANCHOR4 = . + 13056 +.LANCHOR4 = . + 8704 .LANCHOR5 = . + 17408 .type gFlashPageBuffer0, %object .size gFlashPageBuffer0, 8 @@ -24334,13 +24597,13 @@ gNandRandomizer: gNandOptPara: .zero 32 .type slcPageToMlcPageTbl, %object - .size slcPageToMlcPageTbl, 512 + .size slcPageToMlcPageTbl, 1024 slcPageToMlcPageTbl: - .zero 512 - .type mlcPageToSlcPageTbl, %object - .size mlcPageToSlcPageTbl, 1024 -mlcPageToSlcPageTbl: .zero 1024 + .type mlcPageToSlcPageTbl, %object + .size mlcPageToSlcPageTbl, 2048 +mlcPageToSlcPageTbl: + .zero 2048 .type gNandMaxDie, %object .size gNandMaxDie, 1 gNandMaxDie: diff --git a/drivers/rk_nand/rk_zftl_arm32.S b/drivers/rk_nand/rk_zftl_arm32.S index 96bfd7f97e40..2368e325ee14 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: 2019-09-29 + * date: 2020-02-18 * function: rk ftl v6 for rockchip soc base on arm v7 to support 3D/2D * TLC and MLC. */ @@ -19,7 +19,7 @@ .eabi_attribute 26, 2 .eabi_attribute 30, 4 .eabi_attribute 34, 1 - .eabi_attribute 18, 2 + .eabi_attribute 18, 4 .file "rk_zftl_arm_v7.S" #APP .syntax unified @@ -714,8 +714,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.33, %function -rk_simple_strtoull.constprop.33: + .type rk_simple_strtoull.constprop.32, %function +rk_simple_strtoull.constprop.32: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -773,7 +773,7 @@ rk_simple_strtoull.constprop.33: mla r0, lr, r0, r3 b .L123 .fnend - .size rk_simple_strtoull.constprop.33, .-rk_simple_strtoull.constprop.33 + .size rk_simple_strtoull.constprop.32, .-rk_simple_strtoull.constprop.32 .text .align 2 .global nand_flash_print_info @@ -1600,7 +1600,7 @@ flash_wait_device_ready_raw: cmp r3, r0 bhi .L345 ldr r1, .L349+4 - movw r2, #691 + mov r2, #700 ldr r0, .L349+8 bl printk bl dump_stack @@ -1917,7 +1917,7 @@ flash_start_page_read: cmp r3, r4 bhi .L424 ldr r1, .L433+4 - movw r2, #866 + movw r2, #878 ldr r0, .L433+8 bl printk bl dump_stack @@ -2236,7 +2236,7 @@ flash_start_plane_read: cmp r3, r5 bhi .L467 ldr r1, .L485+4 - movw r2, #965 + movw r2, #977 ldr r0, .L485+8 bl printk bl dump_stack @@ -2691,28 +2691,26 @@ sandisk_prog_test_bad_block: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L551 - mov r0, r0, asl #8 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - mov r5, r1 - ldr r4, [r3, #528] - ldr r3, .L551+4 - ldrb r2, [r3, #33] @ zero_extendqisi2 - mov r6, r3 - cmp r2, #0 - addne r3, r4, r0 - addeq r2, r4, r0 - add r4, r4, r0 - moveq r3, #162 - strne r2, [r3, #2056] - streq r3, [r2, #2056] - mov r2, #0 + ldr r3, .L555 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + mov r7, r0, asl #8 + ldr r6, .L555+4 + mov r8, r1 + ldr r5, [r3, #528] + ldrb r4, [r6, #33] @ zero_extendqisi2 + add r3, r5, r7 + cmp r4, #0 + strne r4, [r3, #2056] + add r4, r5, r7 + moveq r2, #162 + streq r2, [r3, #2056] mov r3, #128 str r3, [r4, #2056] - str r2, [r4, #2052] + mov r3, #0 + str r3, [r4, #2052] + str r3, [r4, #2052] uxtb r3, r1 - str r2, [r4, #2052] str r3, [r4, #2052] mov r3, r1, lsr #8 str r3, [r4, #2052] @@ -2731,15 +2729,19 @@ sandisk_prog_test_bad_block: ldr r3, [r6] tst r3, #4096 beq .L543 - ldr r0, .L551+8 - mov r1, r5 + ldr r0, .L555+8 + mov r1, r8 bl printk .L543: + ldrb r3, [r6, #34] @ zero_extendqisi2 mov r0, r4 - ldmfd sp!, {r4, r5, r6, pc} -.L552: + cmp r3, #0 + addne r5, r5, r7 + strne r3, [r5, #2056] + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L556: .align 2 -.L551: +.L555: .word .LANCHOR0 .word .LANCHOR2 .word .LC42 @@ -2753,7 +2755,7 @@ nandc_rdy_status: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L555 + ldr r3, .L559 .pad #8 sub sp, sp, #8 ldr r3, [r3, #528] @@ -2764,9 +2766,9 @@ nandc_rdy_status: add sp, sp, #8 @ sp needed bx lr -.L556: +.L560: .align 2 -.L555: +.L559: .word .LANCHOR0 .fnend .size nandc_rdy_status, .-nandc_rdy_status @@ -2785,23 +2787,23 @@ nandc_bch_sel: ldr r2, [sp, #4] orr r2, r2, #1 str r2, [sp, #4] - ldr r2, .L570 + ldr r2, .L574 ldrb r1, [r2, #516] @ zero_extendqisi2 strb r0, [r2, #660] cmp r1, #9 - bne .L558 + bne .L562 ldr r1, [r2, #528] cmp r0, #70 ldr r2, [sp, #4] str r2, [r1, #16] - beq .L559 + beq .L563 cmp r0, #60 moveq r3, #3 - beq .L559 + beq .L563 cmp r0, #40 moveq r3, #2 movne r3, #1 -.L559: +.L563: mov r2, #0 str r2, [sp] ldr r2, [sp] @@ -2813,8 +2815,8 @@ nandc_bch_sel: str r3, [sp] ldr r3, [sp] str r3, [r1, #32] - b .L557 -.L558: + b .L561 +.L562: ldr r1, [sp, #4] cmp r0, #16 ldr r2, [r2, #528] @@ -2827,36 +2829,36 @@ nandc_bch_sel: ldr r3, [sp] bic r3, r3, #262144 str r3, [sp] - beq .L568 + beq .L572 ldr r3, [sp] cmp r0, #24 orreq r3, r3, #16 - beq .L569 + beq .L573 orr r3, r3, #262144 str r3, [sp] ldr r3, [sp] cmp r0, #40 orr r3, r3, #16 str r3, [sp] - bne .L562 -.L568: + bne .L566 +.L572: ldr r3, [sp] bic r3, r3, #16 -.L569: +.L573: str r3, [sp] -.L562: +.L566: ldr r3, [sp] orr r3, r3, #1 str r3, [sp] ldr r3, [sp] str r3, [r2, #12] -.L557: +.L561: add sp, sp, #8 @ sp needed bx lr -.L571: +.L575: .align 2 -.L570: +.L574: .word .LANCHOR0 .fnend .size nandc_bch_sel, .-nandc_bch_sel @@ -2869,7 +2871,7 @@ 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, .L583 + ldr r4, .L587 ldrb r3, [r4, #516] @ zero_extendqisi2 ldr r2, [r4, #532] cmp r3, #9 @@ -2879,7 +2881,7 @@ zftl_flash_resume: ldr r3, [r4, #528] str r2, [r3, #4] ldr r2, [r4, #540] - bne .L573 + bne .L577 str r2, [r3, #16] ldr r2, [r4, #544] str r2, [r3, #32] @@ -2891,8 +2893,8 @@ zftl_flash_resume: str r2, [r3, #520] ldr r2, [r4, #560] str r2, [r3, #8] - b .L574 -.L573: + b .L578 +.L577: str r2, [r3, #8] ldr r2, [r4, #544] str r2, [r3, #12] @@ -2904,47 +2906,47 @@ zftl_flash_resume: str r2, [r3, #336] ldr r2, [r4, #560] str r2, [r3, #344] -.L574: - ldr r6, .L583+4 +.L578: + ldr r6, .L587+4 mov r5, #0 mov r8, #2 sub r7, r6, #8 -.L576: +.L580: ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L575 + bhi .L579 uxtb r9, r5 mov r0, r9 bl flash_reset strb r8, [r5, r7] mov r0, r9 bl zftl_flash_enter_slc_mode -.L575: +.L579: add r5, r5, #1 cmp r5, #4 - bne .L576 + bne .L580 ldrb r3, [r4, #623] @ zero_extendqisi2 cmp r3, #0 - beq .L577 + beq .L581 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, .L583 + ldr r3, .L587 ldrb r0, [r3, #549] @ zero_extendqisi2 bl nandc_set_ddr_para -.L577: - ldr r3, .L583+8 +.L581: + ldr r3, .L587+8 ldrb r0, [r3, #24] @ zero_extendqisi2 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} b nandc_bch_sel -.L584: +.L588: .align 2 -.L583: +.L587: .word .LANCHOR0 .word .LANCHOR0+688 .word .LANCHOR2 @@ -2958,7 +2960,7 @@ rk_nandc_flash_ready: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L588 + ldr r3, .L592 ldrb r3, [r3, #516] @ zero_extendqisi2 cmp r3, #9 ldreq r3, [r0, #292] @@ -2974,9 +2976,9 @@ rk_nandc_flash_ready: streq r3, [r0, #288] strne r3, [r0, #364] bx lr -.L589: +.L593: .align 2 -.L588: +.L592: .word .LANCHOR0 .fnend .size rk_nandc_flash_ready, .-rk_nandc_flash_ready @@ -2989,7 +2991,7 @@ nandc_iqr_wait_flash_ready: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L597 + ldr r4, .L601 ldr r0, [r4, #528] bl rk_nandc_rb_irq_flag_init ldrb r3, [r4, #516] @ zero_extendqisi2 @@ -3009,10 +3011,10 @@ nandc_iqr_wait_flash_ready: strne r3, [r0, #364] ldr r3, [r0] tst r3, #512 - bne .L593 + bne .L597 ldmfd sp!, {r4, lr} b wait_for_nand_flash_ready -.L593: +.L597: ldrb r3, [r4, #516] @ zero_extendqisi2 cmp r3, #9 ldreq r3, [r0, #292] @@ -3028,9 +3030,9 @@ nandc_iqr_wait_flash_ready: streq r3, [r0, #288] strne r3, [r0, #364] ldmfd sp!, {r4, pc} -.L598: +.L602: .align 2 -.L597: +.L601: .word .LANCHOR0 .fnend .size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready @@ -3044,49 +3046,49 @@ flash_erase_duplane_block: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r3 - ldr r4, .L616 + ldr r4, .L620 mov r5, r0 mov fp, r1 mov r9, r2 ldrb r3, [r4, #589] @ zero_extendqisi2 cmp r3, r0 - bhi .L600 - ldr r1, .L616+4 - movw r2, #598 - ldr r0, .L616+8 + bhi .L604 + ldr r1, .L620+4 + mov r2, #604 + ldr r0, .L620+8 bl printk bl dump_stack -.L600: +.L604: ldrb r2, [r4, #589] @ zero_extendqisi2 - ldr r3, .L616 + ldr r3, .L620 cmp r2, r5 - bls .L607 + bls .L611 add r5, r3, r5 ldr r7, [r3, #528] - ldr r3, .L616+12 + ldr r3, .L620+12 ldrb r6, [r5, #668] @ zero_extendqisi2 ldr r3, [r3] add r10, r6, #8 tst r3, #16 add r10, r7, r10, asl #8 - beq .L602 - ldr r0, .L616+16 + beq .L606 + ldr r0, .L620+16 mov r1, r6 mov r2, r9 mov r3, r8 bl printk -.L602: +.L606: bl nandc_wait_flash_ready mov r0, r6 bl nandc_cs cmp fp, #0 mov r0, r6 - bne .L603 + bne .L607 bl zftl_flash_enter_slc_mode - b .L604 -.L603: + b .L608 +.L607: bl zftl_flash_exit_slc_mode -.L604: +.L608: mov fp, r6, asl #8 mov r3, #96 add r5, r7, fp @@ -3100,14 +3102,14 @@ flash_erase_duplane_block: ldrb r3, [r4, #721] @ zero_extendqisi2 cmp r3, #0 movne r4, #0 - bne .L605 + bne .L609 mov r3, #208 str r3, [r5, #2056] bl nandc_wait_flash_ready mov r0, r10 bl flash_read_status and r4, r0, #5 -.L605: +.L609: add r7, r7, fp mov r3, #96 str r3, [r7, #2056] @@ -3128,20 +3130,20 @@ flash_erase_duplane_block: bl nandc_de_cs and r3, r5, #5 orrs r4, r3, r4 - beq .L606 - ldr r0, .L616+20 + beq .L610 + ldr r0, .L620+20 mov r1, r9 mov r2, r5 bl printk -.L606: +.L610: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L607: +.L611: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L617: +.L621: .align 2 -.L616: +.L620: .word .LANCHOR0 .word .LANCHOR1+720 .word .LC0 @@ -3160,7 +3162,7 @@ flash_erase_block_en: 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, .L633 + ldr r6, .L637 mov r7, r0 mov fp, r1 mov r8, r2 @@ -3169,43 +3171,43 @@ flash_erase_block_en: bic r9, r2, r9, asl r3 ldrb r3, [r6, #589] @ zero_extendqisi2 cmp r3, r0 - bhi .L619 - ldr r1, .L633+4 - movw r2, #645 - ldr r0, .L633+8 + bhi .L623 + ldr r1, .L637+4 + movw r2, #653 + ldr r0, .L637+8 bl printk bl dump_stack -.L619: +.L623: ldrb r2, [r6, #589] @ zero_extendqisi2 - ldr r3, .L633 + ldr r3, .L637 cmp r2, r7 - bls .L625 + bls .L629 add r2, r3, r7 ldr r4, [r3, #528] - ldr r3, .L633+12 + ldr r3, .L637+12 ldrb r5, [r2, #668] @ zero_extendqisi2 ldr r3, [r3] add r10, r5, #8 tst r3, #16 add r10, r4, r10, asl #8 - beq .L621 - ldr r0, .L633+16 + beq .L625 + ldr r0, .L637+16 mov r1, r5 mov r2, r8 mov r3, fp bl printk -.L621: +.L625: bl nandc_wait_flash_ready mov r0, r5 bl nandc_cs cmp fp, #0 mov r0, r5 - bne .L622 + bne .L626 bl zftl_flash_enter_slc_mode - b .L623 -.L622: + b .L627 +.L626: bl zftl_flash_exit_slc_mode -.L623: +.L627: add r4, r4, r5, asl #8 mov r3, #96 str r3, [r4, #2056] @@ -3225,24 +3227,25 @@ flash_erase_block_en: mov r0, r5 bl nandc_de_cs ands r4, r4, #5 - beq .L624 + beq .L628 ldrh r1, [r6, #2] mov r0, r8 bl __aeabi_uidiv - mov r1, r7 mov r3, r4 + mov r1, r7 + mvn r4, #0 mov r2, r0 - ldr r0, .L633+20 + ldr r0, .L637+20 bl printk -.L624: +.L628: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L625: +.L629: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L634: +.L638: .align 2 -.L633: +.L637: .word .LANCHOR0 .word .LANCHOR1+748 .word .LC0 @@ -3274,42 +3277,42 @@ 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, .L644 - ldr r7, .L644+4 + ldr r3, .L648 + ldr r7, .L648+4 ldrb r4, [r3, #17] @ zero_extendqisi2 ldrh r3, [r3, #18] mov r8, r7 smulbb r4, r4, r3 uxth r4, r4 -.L637: +.L641: ldrb r2, [r7, #589] @ zero_extendqisi2 uxth r3, r6 cmp r2, r3 - bls .L642 + bls .L646 add r3, r7, r3 mov r5, #0 ldrb r9, [r3, #668] @ zero_extendqisi2 -.L638: +.L642: uxth r3, r5 cmp r3, r4 - bcs .L643 + bcs .L647 ldrh r1, [r8, #2] mov r0, r9 mul r1, r1, r5 bl flash_erase_block add r5, r5, #1 - b .L638 -.L643: + b .L642 +.L647: add r6, r6, #1 - b .L637 -.L642: - ldr r0, .L644+8 + b .L641 +.L646: + ldr r0, .L648+8 mov r1, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L645: +.L649: .align 2 -.L644: +.L648: .word .LANCHOR2 .word .LANCHOR0 .word .LC47 @@ -3323,7 +3326,7 @@ rk_nandc_flash_xfer_completed: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L649 + ldr r3, .L653 ldrb r3, [r3, #516] @ zero_extendqisi2 cmp r3, #9 ldreq r3, [r0, #292] @@ -3339,9 +3342,9 @@ rk_nandc_flash_xfer_completed: streq r3, [r0, #288] strne r3, [r0, #364] bx lr -.L650: +.L654: .align 2 -.L649: +.L653: .word .LANCHOR0 .fnend .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed @@ -3355,91 +3358,21 @@ 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, .L669 + ldr r4, .L672 + mov r0, r2 .pad #20 sub sp, sp, #20 - mov r8, r1 - mov r6, r3 - mov r7, r2 - ldr r0, [r4, #528] - bl rk_nandc_xfer_irq_flag_init - ldrb r3, [r4, #516] @ zero_extendqisi2 - ldr r0, [r4, #528] - and r1, r5, #1 - cmp r3, #9 - add r3, r8, #1 - bne .L652 - ldr r2, [r0, #292] - ubfx r3, r3, #1, #6 - orr r2, r2, #1 - str r2, [r0, #292] - ldr r2, [r0, #288] - orr r2, r2, #1 - str r2, [r0, #288] + and r6, r5, #1 + add lr, r1, #1 + ldrb r2, [r4, #516] @ zero_extendqisi2 + cmp r2, #9 + bne .L656 mov r2, #0 str r2, [sp, #4] ldr r2, [sp, #4] + ubfx lr, lr, #1, #6 bic r2, r2, #2 - orr r2, r2, r1, asl #1 - str r2, [sp, #4] - ldr r2, [sp, #4] - orr r2, r2, #8 - str r2, [sp, #4] - ldr r2, [sp, #4] - bic r2, r2, #96 - orr r2, r2, #32 - str r2, [sp, #4] - ldr r2, [sp, #4] - orr r2, r2, #536870912 - str r2, [sp, #4] - ldr r2, [sp, #4] - orr r2, r2, #1024 - str r2, [sp, #4] - ldr r2, [sp, #4] - bic r2, r2, #16 - str r2, [sp, #4] - ldr r0, [sp, #4] - bic r0, r0, #264241152 - orr r3, r0, r3, asl #22 - str r3, [sp, #4] - ldr r3, [sp, #4] - orr r3, r3, #128 - str r3, [sp, #4] - ldrb r3, [r4, #624] @ zero_extendqisi2 - cmp r3, #0 - beq .L654 - ldrb r3, [r4, #656] @ zero_extendqisi2 - cmp r3, #0 - ldrne r3, [sp, #4] - orrne r3, r3, #512 - strne r3, [sp, #4] - b .L654 -.L652: - ldr r2, [r0, #368] - ubfx r3, r3, #1, #6 - orr r2, r2, #1 - str r2, [r0, #368] - ldr r2, [r0, #364] - orr r2, r2, #1 - str r2, [r0, #364] - ldr r2, [r0, #12] - mov r0, #0 - cmp r5, r0 - str r2, [sp, #12] - ldr r2, [sp, #12] - bic r2, r2, #65280 - orr r2, r2, #4096 - str r2, [sp, #12] - ldr r2, [sp, #12] - bic r2, r2, #8 - str r2, [sp, #12] - ldr r2, [sp, #12] - bic r2, r2, #224 - str r2, [sp, #12] - str r0, [sp, #4] - ldr r2, [sp, #4] - bic r2, r2, #2 - orr r2, r2, r1, asl #1 + orr r2, r2, r6, asl #1 str r2, [sp, #4] ldr r2, [sp, #4] orr r2, r2, #8 @@ -3459,23 +3392,25 @@ nandc_xfer_start: str r2, [sp, #4] ldr ip, [sp, #4] bic ip, ip, #264241152 - orr r3, ip, r3, asl #22 - str r3, [sp, #4] - beq .L668 - ldrb r3, [r4, #660] @ zero_extendqisi2 - mov r8, r8, lsr #1 - cmp r3, #25 - mov r3, r0 - movcc r1, #64 - movcs r1, #128 - b .L659 -.L654: + orr lr, ip, lr, asl #22 + str lr, [sp, #4] + ldr r2, [sp, #4] + orr r2, r2, #128 + str r2, [sp, #4] + ldrb r2, [r4, #624] @ zero_extendqisi2 + cmp r2, #0 + beq .L657 + ldrb r2, [r4, #656] @ zero_extendqisi2 + cmp r2, #0 + ldrne r2, [sp, #4] + orrne r2, r2, #512 + strne r2, [sp, #4] +.L657: ldr r1, [sp, #4] mov r2, r5 - mov r0, r7 - str r7, [r4, #632] + str r3, [r4, #636] ubfx r1, r1, #22, #6 - str r6, [r4, #636] + str r0, [r4, #632] mov r1, r1, asl #10 bl rknand_dma_map_single mov r2, r5 @@ -3534,32 +3469,79 @@ nandc_xfer_start: str r3, [sp, #4] ldr r3, [sp, #4] str r3, [r2, #16] - b .L651 -.L659: - cmp r3, r8 - add r6, r6, #4 - add lr, r0, r1 - bge .L661 - ldrh ip, [r6, #-2] - mov r0, r0, lsr #2 - ldr r9, [r4, #628] - add r3, r3, #1 - ldrh r2, [r6, #-4] - orr ip, r2, ip, asl #16 - str ip, [r9, r0, asl #2] - mov r0, lr - b .L659 -.L668: - ldr r3, [r4, #628] - mov r2, #1 - str r2, [r3] + b .L655 +.L656: + ldr r2, [r4, #528] + mov ip, #0 + cmp r5, ip + ubfx lr, lr, #1, #6 + ldr r2, [r2, #12] + ldreq r3, [r4, #628] + str r2, [sp, #12] + ldr r2, [sp, #12] + bic r2, r2, #65280 + orr r2, r2, #4096 + str r2, [sp, #12] + ldr r2, [sp, #12] + bic r2, r2, #8 + str r2, [sp, #12] + ldr r2, [sp, #12] + bic r2, r2, #224 + str r2, [sp, #12] + str ip, [sp, #4] + ldr r2, [sp, #4] + bic r2, r2, #2 + orr r2, r2, r6, asl #1 + str r2, [sp, #4] + ldr r2, [sp, #4] + orr r2, r2, #8 + str r2, [sp, #4] + ldr r6, [sp, #4] + bic r6, r6, #96 + orr r6, r6, #32 + str r6, [sp, #4] + ldr r2, [sp, #4] + orr r2, r2, #536870912 + str r2, [sp, #4] + ldr r2, [sp, #4] + orr r2, r2, #1024 + str r2, [sp, #4] + ldr r2, [sp, #4] + bic r2, r2, #16 + str r2, [sp, #4] + ldr r6, [sp, #4] + moveq r2, #1 + bic r6, r6, #264241152 + orr lr, r6, lr, asl #22 + str lr, [sp, #4] + streq r2, [r3] + beq .L663 + ldrb r2, [r4, #660] @ zero_extendqisi2 + mov r1, r1, lsr #1 + mov r6, ip + cmp r2, #25 + movcc r7, #64 + movcs r7, #128 .L661: + cmp r6, r1 + add r3, r3, #4 + add r8, ip, r7 + bge .L663 + ldrh lr, [r3, #-2] + mov ip, ip, lsr #2 + ldr r9, [r4, #628] + 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: ldr r1, [sp, #4] mov r2, r5 ldr r3, [r4, #628] - mov r0, r7 ubfx r1, r1, #22, #6 - str r7, [r4, #632] + str r0, [r4, #632] mov r1, r1, asl #10 str r3, [r4, #636] bl rknand_dma_map_single @@ -3613,13 +3595,13 @@ nandc_xfer_start: str r2, [sp, #4] ldr r2, [sp, #4] str r2, [r3, #8] -.L651: +.L655: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L670: +.L673: .align 2 -.L669: +.L672: .word .LANCHOR0 .fnend .size nandc_xfer_start, .-nandc_xfer_start @@ -3631,14 +3613,14 @@ nandc_set_seed: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L678 + ldr r2, .L681 and r0, r0, #127 - ldr r3, .L678+4 + ldr r3, .L681+4 mov r0, r0, asl #1 ldrb r1, [r2, #656] @ zero_extendqisi2 ldrh r3, [r3, r0] cmp r1, #0 - ldr r1, .L678 + ldr r1, .L681 ldrb r2, [r2, #516] @ zero_extendqisi2 orrne r3, r3, #-1073741824 cmp r2, #9 @@ -3646,9 +3628,9 @@ nandc_set_seed: streq r3, [r2, #520] strne r3, [r2, #336] bx lr -.L679: +.L682: .align 2 -.L678: +.L681: .word .LANCHOR0 .word .LANCHOR1+772 .fnend @@ -3663,49 +3645,49 @@ zftl_flash_de_init: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} bl nandc_wait_flash_ready - ldr r4, .L700 + ldr r4, .L703 ldrb r3, [r4] @ zero_extendqisi2 cmp r3, #0 - beq .L681 + beq .L684 ldrb r0, [r4, #590] @ zero_extendqisi2 cmp r0, #0 - bne .L681 + bne .L684 ldrb r3, [r4, #516] @ zero_extendqisi2 cmp r3, #9 - beq .L681 + beq .L684 bl zftl_flash_exit_slc_mode -.L681: +.L684: mov r0, #0 - ldr r5, .L700 + ldr r5, .L703 bl hynix_reconfig_rr_para ldrb r3, [r4, #623] @ zero_extendqisi2 cmp r3, #0 - beq .L682 + beq .L685 ldrb r3, [r5, #720] @ zero_extendqisi2 tst r3, #1 - beq .L682 + beq .L685 mov r0, #1 bl flash_set_interface_mode mov r0, #1 bl nandc_set_if_mode mov r3, #0 strb r3, [r5, #623] -.L682: +.L685: ldrb r3, [r4, #656] @ zero_extendqisi2 - ldr r5, .L700 + ldr r5, .L703 cmp r3, #0 - beq .L683 + beq .L686 mov r0, #0 strb r0, [r5, #656] bl nandc_set_seed mov r3, #1 strb r3, [r5, #656] -.L683: +.L686: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L701: +.L704: .align 2 -.L700: +.L703: .word .LANCHOR0 .fnend .size zftl_flash_de_init, .-zftl_flash_de_init @@ -3717,12 +3699,12 @@ nandc_randomizer_enable: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L703 + ldr r3, .L706 strb r0, [r3, #656] bx lr -.L704: +.L707: .align 2 -.L703: +.L706: .word .LANCHOR0 .fnend .size nandc_randomizer_enable, .-nandc_randomizer_enable @@ -3734,14 +3716,14 @@ nandc_get_chip_if: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L706 + ldr r3, .L709 add r0, r0, #8 ldr r3, [r3, #528] add r0, r3, r0, asl #8 bx lr -.L707: +.L710: .align 2 -.L706: +.L709: .word .LANCHOR0 .fnend .size nandc_get_chip_if, .-nandc_get_chip_if @@ -3755,10 +3737,10 @@ zbuf_init: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, #0 - ldr r4, .L712 + ldr r4, .L715 mov r7, r5 sub r8, r4, #724 -.L709: +.L712: ldrb r0, [r8, #2260] @ zero_extendqisi2 uxtb r3, r5 add r2, r3, #1 @@ -3769,23 +3751,23 @@ zbuf_init: strb r7, [r4, #2] str r7, [r4, #8] bl ftl_malloc - ldr r6, .L712+4 + ldr r6, .L715+4 add r4, r4, #48 str r0, [r4, #-44] mov r0, #64 bl ftl_malloc cmp r5, #32 str r0, [r4, #-36] - bne .L709 + bne .L712 mvn r3, #0 strb r5, [r6, #2262] strb r3, [r6, #2212] mov r3, #0 strb r3, [r6, #2261] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L713: +.L716: .align 2 -.L712: +.L715: .word .LANCHOR0+724 .word .LANCHOR0 .fnend @@ -3798,10 +3780,10 @@ buf_reinit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L717 + ldr r2, .L720 mov r3, #0 mov r1, r3 -.L715: +.L718: uxtb r0, r3 add r3, r3, #1 cmp r3, #32 @@ -3811,17 +3793,17 @@ buf_reinit: strb ip, [r2, #-48] strb r1, [r2, #-46] str r1, [r2, #-40] - bne .L715 - ldr r2, .L717+4 + bne .L718 + ldr r2, .L720+4 mvn r1, #0 strb r3, [r2, #2262] strb r1, [r2, #2212] mov r1, #0 strb r1, [r2, #2261] bx lr -.L718: +.L721: .align 2 -.L717: +.L720: .word .LANCHOR0+724 .word .LANCHOR0 .fnend @@ -3841,45 +3823,45 @@ buf_add_tail: ldrb r3, [r0] @ zero_extendqisi2 mov r5, r0 cmp r3, #255 - ldrne r2, .L727 + ldrne r2, .L730 movne r1, #48 - bne .L725 + bne .L728 ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r3, #255 - bne .L721 - ldr r1, .L727+4 + bne .L724 + ldr r1, .L730+4 mov r2, #74 - ldr r0, .L727+8 + ldr r0, .L730+8 bl printk bl dump_stack -.L721: +.L724: ldrb r3, [r4, #1] @ zero_extendqisi2 strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L725: +.L728: mov r5, r3 mla r3, r1, r3, r2 ldrb r3, [r3, #724] @ zero_extendqisi2 cmp r3, #255 - bne .L725 + bne .L728 ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r3, #255 - bne .L723 - ldr r1, .L727+4 + bne .L726 + ldr r1, .L730+4 mov r2, #81 - ldr r0, .L727+8 + ldr r0, .L730+8 bl printk bl dump_stack -.L723: - ldr r2, .L727 +.L726: + ldr r2, .L730 mov r1, #48 ldrb r3, [r4, #1] @ zero_extendqisi2 mla r5, r1, r5, r2 strb r3, [r5, #724] ldmfd sp!, {r3, r4, r5, pc} -.L728: +.L731: .align 2 -.L727: +.L730: .word .LANCHOR0 .word .LANCHOR1+1028 .word .LC0 @@ -3900,16 +3882,16 @@ queue_read_cmd: mov r3, #1 mov r1, r4 strb r3, [r4, #42] - ldr r0, .L731 + ldr r0, .L734 mov r3, #0 strb r3, [r4, #43] mvn r3, #0 strb r3, [r4] ldmfd sp!, {r4, lr} b buf_add_tail -.L732: +.L735: .align 2 -.L731: +.L734: .word .LANCHOR0+2263 .fnend .size queue_read_cmd, .-queue_read_cmd @@ -3923,32 +3905,32 @@ zbuf_free: stmfd sp!, {r4, lr} .save {r4, lr} ldrb r3, [r0, #2] @ zero_extendqisi2 - ldr r4, .L743 + ldr r4, .L746 and r3, r3, #8 uxtb r3, r3 strb r3, [r0, #2] cmp r3, #0 - beq .L734 + beq .L737 ldr r3, [r0, #20] cmn r3, #1 - beq .L734 + beq .L737 mov r1, r0 - ldr r0, .L743+4 + ldr r0, .L746+4 bl buf_add_tail - b .L735 -.L734: + b .L738 +.L737: ldrb r3, [r4, #2261] @ zero_extendqisi2 strb r3, [r0] ldrb r3, [r0, #1] @ zero_extendqisi2 strb r3, [r4, #2261] -.L735: +.L738: ldrb r3, [r4, #2262] @ zero_extendqisi2 add r3, r3, #1 strb r3, [r4, #2262] ldmfd sp!, {r4, pc} -.L744: +.L747: .align 2 -.L743: +.L746: .word .LANCHOR0 .word .LANCHOR0+2261 .fnend @@ -3963,36 +3945,36 @@ buf_alloc: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L756 + ldr r4, .L759 ldrb r3, [r4, #2262] @ zero_extendqisi2 cmp r3, #0 - beq .L746 -.L749: - ldr r2, .L756 + beq .L749 +.L752: + ldr r2, .L759 cmp r5, #0 ldrb r1, [r4, #2261] @ zero_extendqisi2 mov r0, #48 add r3, r2, #724 mla r0, r0, r1, r3 - beq .L747 - b .L748 -.L746: - ldr r1, .L756+4 + beq .L750 + b .L751 +.L749: + ldr r1, .L759+4 mov r2, #121 - ldr r0, .L756+8 + ldr r0, .L759+8 bl printk bl dump_stack ldrb r3, [r4, #2262] @ zero_extendqisi2 cmp r3, #0 - bne .L749 -.L751: + bne .L752 +.L754: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L747: +.L750: ldrb r2, [r2, #2262] @ zero_extendqisi2 cmp r2, #1 - beq .L751 -.L748: + beq .L754 +.L751: mov r2, #48 mul r1, r2, r1 add r2, r4, r1 @@ -4013,9 +3995,9 @@ buf_alloc: strb ip, [r2, #724] str ip, [r2, #744] ldmfd sp!, {r3, r4, r5, pc} -.L757: +.L760: .align 2 -.L756: +.L759: .word .LANCHOR0 .word .LANCHOR1+1044 .word .LC0 @@ -4031,25 +4013,25 @@ buf_remove_buf: ldrb ip, [r1, #1] @ zero_extendqisi2 ldrb r3, [r0] @ zero_extendqisi2 cmp ip, r3 - bne .L759 + bne .L762 ldrb r3, [r1] @ zero_extendqisi2 strb r3, [r0] mov r0, #1 bx lr -.L759: - ldr r0, .L766 +.L762: + ldr r0, .L769 str lr, [sp, #-4]! .save {lr} mov lr, #48 -.L761: +.L764: cmp r3, #255 - beq .L765 + beq .L768 mov r2, r3 mla r3, lr, r3, r0 ldrb r3, [r3, #724] @ zero_extendqisi2 cmp r3, ip - bne .L761 - ldr r0, .L766 + bne .L764 + ldr r0, .L769 mov ip, #48 ldrb r3, [r1] @ zero_extendqisi2 mla r2, ip, r2, r0 @@ -4058,12 +4040,12 @@ buf_remove_buf: mvn r3, #0 strb r3, [r1] ldr pc, [sp], #4 -.L765: +.L768: mov r0, #0 ldr pc, [sp], #4 -.L767: +.L770: .align 2 -.L766: +.L769: .word .LANCHOR0 .fnend .size buf_remove_buf, .-buf_remove_buf @@ -4074,25 +4056,25 @@ buf_remove_free: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L774 + ldr r3, .L777 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 ldrb r2, [r3, #2262] @ zero_extendqisi2 mov r4, r3 cmp r2, #0 - bne .L769 - ldr r1, .L774+4 + bne .L772 + ldr r1, .L777+4 mov r2, #172 - ldr r0, .L774+8 + ldr r0, .L777+8 bl printk bl dump_stack -.L769: +.L772: ldrb r3, [r4, #2262] @ zero_extendqisi2 - ldr r6, .L774 + ldr r6, .L777 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, pc} - ldr r0, .L774+12 + ldr r0, .L777+12 mov r1, r5 bl buf_remove_buf cmp r0, #1 @@ -4103,9 +4085,9 @@ buf_remove_free: orreq r3, r3, #1 streqb r3, [r5, #2] ldmfd sp!, {r4, r5, r6, pc} -.L775: +.L778: .align 2 -.L774: +.L777: .word .LANCHOR0 .word .LANCHOR1+1056 .word .LC0 @@ -4120,11 +4102,11 @@ flash_check_bad_block: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L777 + ldr r3, .L780 ldrb r2, [r3, #17] @ zero_extendqisi2 ldrh r3, [r3, #18] smulbb r3, r2, r3 - ldr r2, .L777+4 + ldr r2, .L780+4 ldr r2, [r2, #664] uxth r3, r3 add r3, r3, #31 @@ -4140,9 +4122,9 @@ flash_check_bad_block: mov r0, r0, lsr r1 and r0, r0, #1 bx lr -.L778: +.L781: .align 2 -.L777: +.L780: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4154,7 +4136,7 @@ flash_mask_bad_block: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L781 + ldr r3, .L784 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r1 @@ -4162,11 +4144,11 @@ flash_mask_bad_block: mov r6, r0 ldrh r4, [r3, #18] mov r1, r6 - ldr r0, .L781+4 + ldr r0, .L784+4 smulbb r4, r2, r4 mov r2, r5 bl printk - ldr r3, .L781+8 + ldr r3, .L784+8 mov r2, r5, lsr #5 mov r1, #1 and r5, r5, #31 @@ -4183,9 +4165,9 @@ flash_mask_bad_block: orr r5, r3, r1, asl r5 str r5, [r4, r2, asl #2] ldmfd sp!, {r4, r5, r6, pc} -.L782: +.L785: .align 2 -.L781: +.L784: .word .LANCHOR2 .word .LC48 .word .LANCHOR0 @@ -4201,39 +4183,39 @@ str2hex: @ link register save eliminated. ldrb r3, [r0] @ zero_extendqisi2 cmp r3, #48 - bne .L784 + bne .L787 ldrb r3, [r0, #1] @ zero_extendqisi2 and r3, r3, #223 cmp r3, #88 addeq r0, r0, #2 -.L784: +.L787: ldrb r3, [r0] @ zero_extendqisi2 and r3, r3, #223 cmp r3, #88 addeq r0, r0, #1 sub r3, r0, #1 mov r0, #0 -.L786: +.L789: ldrb r2, [r3, #1]! @ zero_extendqisi2 cmp r2, #0 - beq .L795 + beq .L798 sub r1, r2, #48 uxtb ip, r1 cmp ip, #9 addls r0, r1, r0, asl #4 - bls .L786 + bls .L789 sub r1, r2, #97 cmp r1, #5 subls r2, r2, #87 - bls .L794 + bls .L797 sub r1, r2, #65 cmp r1, #5 bxhi lr sub r2, r2, #55 -.L794: +.L797: add r0, r2, r0, asl #4 - b .L786 -.L795: + b .L789 +.L798: bx lr .fnend .size str2hex, .-str2hex @@ -4250,15 +4232,15 @@ zftl_proc_debug_init: mov r2, #0 mov r1, #292 str r2, [sp] - ldr r3, .L798 - ldr r0, .L798+4 + ldr r3, .L801 + ldr r0, .L801+4 bl proc_create_data add sp, sp, #12 @ sp needed ldr pc, [sp], #4 -.L799: +.L802: .align 2 -.L798: +.L801: .word .LANCHOR1+1072 .word .LC49 .fnend @@ -4274,11 +4256,11 @@ ftl_print_info_to_buf: .save {r4, r5, r6, lr} .pad #16 mov r6, r0 - ldr r1, .L802 - ldr r2, .L802+4 + ldr r1, .L805 + ldr r2, .L805+4 bl sprintf - ldr r1, .L802+8 - ldr r5, .L802+12 + ldr r1, .L805+8 + ldr r5, .L805+12 ldrb r3, [r1, #6] @ zero_extendqisi2 ldrb r2, [r1, #5] @ zero_extendqisi2 add r4, r6, r0 @@ -4291,79 +4273,79 @@ ftl_print_info_to_buf: mov r0, r4 ldrb r1, [r1, #10] @ zero_extendqisi2 str r1, [sp, #12] - ldr r1, .L802+16 + ldr r1, .L805+16 bl sprintf ldr r2, [r5, #520] - ldr r1, .L802+20 + ldr r1, .L805+20 mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf ldr r2, [r5, #2264] - ldr r1, .L802+24 + ldr r1, .L805+24 mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L802+28 + ldr r1, .L805+28 add r4, r4, r0 mov r0, r4 add r4, r4, #10 bl strcpy ldr r2, [r5, #2268] mov r0, r4 - ldr r1, .L802+32 + ldr r1, .L805+32 bl sprintf ldr r2, [r5, #520] - ldr r1, .L802+36 + ldr r1, .L805+36 add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #580] - ldr r1, .L802+40 + ldr r1, .L805+40 ldr r2, [r3, #524] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #580] - ldr r1, .L802+44 + ldr r1, .L805+44 ldr r2, [r3, #528] add r4, r4, r0 mov r0, r4 bl sprintf add r3, r5, #2272 - ldr r1, .L802+48 + ldr r1, .L805+48 ldrh r2, [r3] add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2274 ldrh r2, [r5, r3] - ldr r1, .L802+52 + ldr r1, .L805+52 add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2276 ldrh r2, [r5, r3] - ldr r1, .L802+56 + ldr r1, .L805+56 add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2278 ldrh r2, [r5, r3] - ldr r1, .L802+60 + ldr r1, .L805+60 add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2280 ldrh r2, [r5, r3] - ldr r1, .L802+64 + ldr r1, .L805+64 add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2282 ldrh r2, [r5, r3] - ldr r1, .L802+68 + ldr r1, .L805+68 add r4, r4, r0 mov r0, r4 bl sprintf @@ -4372,18 +4354,18 @@ ftl_print_info_to_buf: ldrb r3, [r5, #2284] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L802+72 + ldr r1, .L805+72 mov r0, r4 bl sprintf ldr r3, [r5, #2288] - ldr r1, .L802+76 + ldr r1, .L805+76 ldrh r2, [r3, #148] ldrh r3, [r3, #146] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #2288] - ldr r1, .L802+80 + ldr r1, .L805+80 ldr r2, [r3, #16] ldr r3, [r3, #20] add r2, r3, r2, lsr #11 @@ -4391,7 +4373,7 @@ ftl_print_info_to_buf: mov r0, r4 bl sprintf ldr r3, [r5, #2288] - ldr r1, .L802+84 + ldr r1, .L805+84 ldr r2, [r3, #24] ldr r3, [r3, #28] add r2, r3, r2, lsr #11 @@ -4399,20 +4381,20 @@ ftl_print_info_to_buf: mov r0, r4 bl sprintf ldr r3, [r5, #2288] - ldr r1, .L802+88 + ldr r1, .L805+88 ldr r2, [r3, #64] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #2288] - ldr r1, .L802+92 + ldr r1, .L805+92 ldr r2, [r3, #68] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #580] - ldr r2, .L802+96 - ldr r1, .L802+100 + ldr r2, .L805+96 + ldr r1, .L805+100 ldr r3, [r3, #12] umull r2, r3, r3, r2 mov r2, r3, lsr #3 @@ -4420,42 +4402,42 @@ ftl_print_info_to_buf: mov r0, r4 bl sprintf ldrb r2, [r5] @ zero_extendqisi2 - ldr r1, .L802+104 + ldr r1, .L805+104 add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #580] - ldr r1, .L802+108 + ldr r1, .L805+108 ldr r2, [r3, #556] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #580] - ldr r1, .L802+112 + ldr r1, .L805+112 ldr r2, [r3, #552] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #2288] - ldr r1, .L802+116 + ldr r1, .L805+116 ldr r2, [r3, #52] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #2288] - ldr r1, .L802+120 + ldr r1, .L805+120 ldr r2, [r3, #60] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #2288] - ldr r1, .L802+124 + ldr r1, .L805+124 ldr r2, [r3, #76] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r5, #2288] - ldr r1, .L802+128 + ldr r1, .L805+128 ldr r2, [r3, #8] add r4, r4, r0 mov r0, r4 @@ -4466,7 +4448,7 @@ ftl_print_info_to_buf: ldrb r1, [r1, #25] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L802+132 + ldr r1, .L805+132 mov r0, r4 bl sprintf ldr r1, [r5, #580] @@ -4475,7 +4457,7 @@ ftl_print_info_to_buf: ldrb r1, [r1, #57] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L802+136 + ldr r1, .L805+136 mov r0, r4 bl sprintf ldr r1, [r5, #580] @@ -4484,7 +4466,7 @@ ftl_print_info_to_buf: ldrb r1, [r1, #89] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L802+140 + ldr r1, .L805+140 mov r0, r4 bl sprintf ldr r3, [r5, #2288] @@ -4497,7 +4479,7 @@ ftl_print_info_to_buf: str r1, [sp, #4] ldrh r1, [r3, #96] str r1, [sp, #8] - ldr r1, .L802+144 + ldr r1, .L805+144 ldr r3, [r3, #84] bl sprintf ldr r3, [r5, #2288] @@ -4510,12 +4492,12 @@ ftl_print_info_to_buf: str r1, [sp, #4] ldrh r1, [r3, #98] str r1, [sp, #8] - ldr r1, .L802+148 + ldr r1, .L805+148 ldr r3, [r3, #80] bl sprintf movw r3, #2292 ldrh r2, [r5, r3] - ldr r1, .L802+152 + ldr r1, .L805+152 add r4, r4, r0 mov r0, r4 bl sprintf @@ -4533,7 +4515,7 @@ ftl_print_info_to_buf: str r1, [sp, #4] ldr r1, [r5, #2304] str r1, [sp, #8] - ldr r1, .L802+156 + ldr r1, .L805+156 bl sprintf ldr r1, [r5, #580] add r3, r1, #584 @@ -4548,10 +4530,10 @@ ftl_print_info_to_buf: ldrh r1, [r1, r0] mov r0, r4 str r1, [sp, #4] - ldr r1, .L802+160 + ldr r1, .L805+160 bl sprintf ldr r3, [r5, #580] - ldr r1, .L802+164 + ldr r1, .L805+164 ldr r2, [r3, #544] str r2, [sp] add r4, r4, r0 @@ -4569,9 +4551,9 @@ ftl_print_info_to_buf: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L803: +.L806: .align 2 -.L802: +.L805: .word .LC1 .word .LC2 .word .LANCHOR2 @@ -4638,7 +4620,7 @@ ftl_gc_write_buf: .save {r4, lr} mov r1, r0 ldrb r3, [r0, #2] @ zero_extendqisi2 - ldr r4, .L807 + ldr r4, .L810 orr r3, r3, #2 strb r3, [r0, #2] add r0, r4, #2304 @@ -4649,9 +4631,9 @@ ftl_gc_write_buf: uxtb r0, r0 strb r0, [r4, #2284] ldmfd sp!, {r4, pc} -.L808: +.L811: .align 2 -.L807: +.L810: .word .LANCHOR0 .fnend .size ftl_gc_write_buf, .-ftl_gc_write_buf @@ -4688,13 +4670,13 @@ gc_add_sblk: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #16 mov r5, r0 - ldr r8, .L852 + ldr r8, .L855 mov r4, r1 mov r9, r2 - ldr r7, .L852+4 + ldr r7, .L855+4 ldr r3, [r8] tst r3, #256 - beq .L812 + beq .L815 ldr r3, [r7, #568] mov r1, r5 ldr r2, [r7, #576] @@ -4703,11 +4685,11 @@ gc_add_sblk: mov r3, r3, lsr #5 str r3, [sp] mov r3, r0, asl #1 - ldr r0, .L852+8 + ldr r0, .L855+8 ldrh r3, [r2, r3] mov r2, r4 str r3, [sp, #4] - ldr r3, .L852+12 + ldr r3, .L855+12 ldrh r3, [r3, #52] str r3, [sp, #8] movw r3, #2298 @@ -4715,32 +4697,32 @@ gc_add_sblk: str r3, [sp, #12] mov r3, r9 bl printk -.L812: - ldr r3, .L852+16 +.L815: + ldr r3, .L855+16 ldrh r2, [r3] mov r6, r3 cmp r2, r5 - bhi .L813 - ldr r1, .L852+20 + bhi .L816 + ldr r1, .L855+20 movw r2, #454 - ldr r0, .L852+24 + ldr r0, .L855+24 bl printk bl dump_stack -.L813: +.L816: ldrh r3, [r6] - ldr r2, .L852+4 + ldr r2, .L855+4 cmp r3, r5 - bhi .L814 + bhi .L817 ldr r3, [r8] tst r3, #1024 - beq .L850 + beq .L853 mov r1, r5 mov r2, r4 mov r3, r9 - ldr r0, .L852+28 + ldr r0, .L855+28 bl printk - b .L850 -.L814: + b .L853 +.L817: ldr r1, [r2, #576] mov r3, r5, asl #1 ldrh r3, [r1, r3] @@ -4748,99 +4730,99 @@ gc_add_sblk: add r1, r1, r5, asl #2 ldrb ip, [r1, #2] @ zero_extendqisi2 ands r6, ip, #224 - bne .L817 + bne .L820 cmp r3, #0 - beq .L834 - ldr r0, .L852+24 + beq .L837 + ldr r0, .L855+24 movw r2, #462 - ldr r1, .L852+20 + ldr r1, .L855+20 bl printk -.L850: +.L853: bl dump_stack - b .L834 -.L817: + b .L837 +.L820: movw r1, #2312 ldrh r1, [r2, r1] cmp r1, r5 - beq .L834 + beq .L837 ldr r2, [r2, #580] ldrh r1, [r2, #48] cmp r1, r5 - beq .L834 + beq .L837 ldrh r1, [r2, #16] cmp r1, r5 - beq .L834 + beq .L837 ldrh r1, [r2, #80] cmp r1, r5 - beq .L834 - ldr r1, .L852+12 + beq .L837 + ldr r1, .L855+12 add lr, r1, #52 ldrh r0, [r1, #52] mov r1, #0 -.L818: +.L821: cmp r1, r0 - bcs .L851 + bcs .L854 ldrh r6, [lr, #2]! cmp r6, r5 - beq .L834 + beq .L837 add r1, r1, #1 - b .L818 -.L851: + b .L821 +.L854: cmp r4, #0 - bne .L823 + bne .L826 movw r1, #2908 ldrh lr, [r7, r1] cmp lr, r5 moveq r0, r4 - beq .L816 - ldr r6, .L852+32 + beq .L819 + ldr r6, .L855+32 mov r1, r4 -.L822: +.L825: ldrh r10, [r1, r6] cmp r5, r10 - bne .L821 + bne .L824 ldr r0, [r8] ands r0, r0, #256 - beq .L816 + beq .L819 stmia sp, {r5, lr} mov r1, r5 mov r2, ip, lsr #5 - ldr r0, .L852+36 + ldr r0, .L855+36 bl printk - b .L834 -.L821: + b .L837 +.L824: add r1, r1, #2 cmp r1, #16 - bne .L822 + bne .L825 add r6, r2, r9, asl #7 add r6, r6, #136 - b .L824 -.L823: + b .L827 +.L826: add r6, r2, #392 -.L824: +.L827: ldr r2, [r8] tst r2, #256 - beq .L825 + beq .L828 str r3, [sp] movw r3, #2298 ldrh r3, [r7, r3] mov r1, r5 str r0, [sp, #4] mov r2, r4 - ldr r0, .L852+40 + ldr r0, .L855+40 str r3, [sp, #8] mov r3, ip, lsr #5 bl printk -.L825: +.L828: add r1, r6, #128 mov r3, r6 movw r0, #65535 -.L828: +.L831: mov r2, r3 add r3, r3, #2 ldrh ip, [r2] cmp ip, r0 - bne .L826 + bne .L829 cmp r4, #0 strh r5, [r2] @ movhi ldreq r3, [r7, #580] @@ -4852,22 +4834,22 @@ gc_add_sblk: addeq r3, r3, #1 strneh r3, [r2, #124] @ movhi streqh r3, [r9, #120] @ movhi - b .L849 -.L826: + b .L852 +.L829: cmp r3, r1 - bne .L828 -.L849: + bne .L831 +.L852: mov r0, #1 - b .L816 -.L834: + b .L819 +.L837: mov r0, #0 -.L816: +.L819: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L853: +.L856: .align 2 -.L852: +.L855: .word .LANCHOR2 .word .LANCHOR0 .word .LC87 @@ -4891,7 +4873,7 @@ gc_mark_bad_ppa: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r6, #1 - ldr r5, .L860 + ldr r5, .L863 mov r7, r0 add r3, r5, #2928 ldrb r2, [r5, #676] @ zero_extendqisi2 @@ -4909,40 +4891,40 @@ gc_mark_bad_ppa: mov r2, r4 mov r3, r7 uxth r8, r0 - ldr r0, .L860+4 + ldr r0, .L863+4 bl printk mov r1, r6 mov r2, #0 mov r0, r8 bl gc_add_sblk ldr r2, [r5, #2892] - ldr r0, .L860+8 + ldr r0, .L863+8 mov r1, #0 -.L855: +.L858: uxth r3, r1 cmp r3, r2 - bcs .L859 + bcs .L862 add r3, r3, #292 add r1, r1, #1 mov r3, r3, asl #1 ldrh r3, [r0, r3] cmp r3, r4 - bne .L855 - b .L856 -.L859: + bne .L858 + b .L859 +.L862: cmp r2, #5 addls r3, r2, #1 addls r2, r2, #292 strls r3, [r5, #2892] - ldrls r3, .L860+8 + ldrls r3, .L863+8 movls r2, r2, asl #1 strlsh r4, [r3, r2] @ movhi -.L856: +.L859: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L861: +.L864: .align 2 -.L860: +.L863: .word .LANCHOR0 .word .LC91 .word .LANCHOR0+2312 @@ -4956,13 +4938,13 @@ 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, .L863 + ldr r3, .L866 ldr r3, [r3, #2932] ldr r0, [r3, r0, asl #2] bx lr -.L864: +.L867: .align 2 -.L863: +.L866: .word .LANCHOR0 .fnend .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index @@ -4977,15 +4959,15 @@ gc_write_completed: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L896 + ldr r4, .L899 add r9, r4, #724 mov r5, r4 -.L866: +.L869: ldrb r10, [r4, #2936] @ zero_extendqisi2 cmp r10, #255 - beq .L895 + beq .L898 mov r3, #48 - ldr r8, .L896+4 + ldr r8, .L899+4 mul r3, r3, r10 add r2, r4, r3 add r3, r9, r3 @@ -4994,47 +4976,47 @@ gc_write_completed: strb r1, [r4, #2936] ldr r1, [r2, #760] cmp r1, #0 - beq .L867 + beq .L870 add r3, r8, #2160 ldr r2, [r2, #748] mov r0, #1 strh r0, [r3] @ movhi - ldr r0, .L896+8 + ldr r0, .L899+8 str r2, [r4, #2888] bl printk - ldr r1, .L896+12 + ldr r1, .L899+12 movw r2, #805 - ldr r0, .L896+16 + ldr r0, .L899+16 bl printk bl dump_stack -.L867: +.L870: ldrb r3, [r5, #2937] @ zero_extendqisi2 cmp r3, #3 - bne .L868 + 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 .L869 -.L868: + beq .L872 +.L871: ldrb r3, [r5, #2938] @ zero_extendqisi2 cmp r3, #0 moveq r6, #1 - beq .L869 + beq .L872 ldrb r3, [r4, #2939] @ zero_extendqisi2 cmp r3, #0 moveq r6, #1 movne r6, #2 -.L869: - ldr r3, .L896+20 +.L872: + ldr r3, .L899+20 ldr r3, [r3] tst r3, #256 - beq .L870 + beq .L873 mov r3, #48 ldr r1, [r5, #2940] mul r3, r3, r10 - ldr r0, .L896+24 + ldr r0, .L899+24 ldrb r1, [r1, r7] @ zero_extendqisi2 add r2, r5, r3 add r3, r8, r3 @@ -5043,7 +5025,7 @@ gc_write_completed: str r1, [sp] mov r1, r7 bl printk -.L870: +.L873: mov r3, #48 ldr r2, [r5, #2940] mla r3, r3, r10, r5 @@ -5051,51 +5033,51 @@ gc_write_completed: ldrb r2, [r2, r7] @ zero_extendqisi2 ldrb r3, [r3, #725] @ zero_extendqisi2 cmp r2, r3 - beq .L871 - ldr r1, .L896+12 + beq .L874 + ldr r1, .L899+12 movw r2, #814 - ldr r0, .L896+16 + ldr r0, .L899+16 bl printk bl dump_stack -.L871: +.L874: mov r3, #48 mla r10, r3, r10, r5 ldrb r3, [r10, #769] @ zero_extendqisi2 cmp r3, #3 - beq .L872 + beq .L875 ldrb r3, [r4, #2937] @ zero_extendqisi2 cmp r3, #3 - bne .L872 + bne .L875 ldrb r3, [r4, #2944] @ zero_extendqisi2 cmp r3, #0 - bne .L872 + bne .L875 ldrb r3, [r4, #684] @ zero_extendqisi2 cmp r3, #0 - bne .L872 + bne .L875 ldrb r3, [r4, #2938] @ zero_extendqisi2 cmp r3, #0 - beq .L873 + beq .L876 ldrb r3, [r4, #2939] @ zero_extendqisi2 cmp r3, #0 - bne .L872 -.L873: + bne .L875 +.L876: ldr r2, [r5, #2940] mov r3, #0 mov r1, #48 mov r0, r3 add r7, r2, r7 - b .L874 -.L872: - ldr r3, .L896+28 + b .L877 +.L875: + ldr r3, .L899+28 mvn r10, #0 mov r2, #0 strh r7, [r3] @ movhi mov r3, #48 -.L875: +.L878: rsb r1, r7, fp uxth r1, r1 cmp r1, r6 - bcs .L866 + bcs .L869 ldr r1, [r5, #2940] str r3, [sp, #12] str r2, [sp, #8] @@ -5112,23 +5094,23 @@ gc_write_completed: strb r1, [r5, #2319] ldr r3, [sp, #12] ldr r2, [sp, #8] - b .L875 -.L874: + b .L878 +.L877: uxth r2, r3 cmp r2, r6 - bcs .L866 + bcs .L869 ldrb r2, [r7, r3] @ zero_extendqisi2 add r3, r3, #1 mla r2, r1, r2, r5 strb r0, [r2, #769] - b .L874 -.L895: + b .L877 +.L898: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L897: +.L900: .align 2 -.L896: +.L899: .word .LANCHOR0 .word .LANCHOR0+724 .word .LC92 @@ -5146,7 +5128,7 @@ gc_get_src_blk: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L908 + ldr r2, .L911 stmfd sp!, {r4, lr} .save {r4, lr} ldr r3, [r2, #580] @@ -5155,21 +5137,21 @@ gc_get_src_blk: cmp r1, #0 addne r3, r3, #392 movne r1, #1 - bne .L900 + bne .L903 add ip, r3, r0, asl #1 ldrh ip, [ip, #120] cmp ip, #0 - beq .L905 + beq .L908 add r3, r3, r0, asl #7 add r3, r3, #136 -.L900: +.L903: add ip, r3, #128 movw lr, #65535 -.L904: +.L907: mov r4, r3 ldrh r0, [r3], #2 cmp r0, lr - beq .L902 + beq .L905 cmp r1, #0 mvn r3, #0 strh r3, [r4] @ movhi @@ -5184,16 +5166,16 @@ gc_get_src_blk: strneh r3, [r2, #124] @ movhi streqh r2, [r3, #120] @ movhi ldmfd sp!, {r4, pc} -.L902: - cmp r3, ip - bne .L904 - ldmfd sp!, {r4, pc} .L905: + cmp r3, ip + bne .L907 + ldmfd sp!, {r4, pc} +.L908: movw r0, #65535 ldmfd sp!, {r4, pc} -.L909: +.L912: .align 2 -.L908: +.L911: .word .LANCHOR0 .fnend .size gc_get_src_blk, .-gc_get_src_blk @@ -5207,35 +5189,35 @@ gc_search_src_blk: 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, .L1012 + ldr r5, .L1015 .pad #20 sub sp, sp, #20 ldr r3, [r5, #580] add r3, r3, r0, asl #1 ldrh r4, [r3, #120] cmp r4, #0 - bne .L957 + bne .L960 cmp r0, #0 mov r9, r1 mov r7, r2 - bne .L913 + bne .L916 movw r3, #2946 mov fp, r0 mov r4, r0 strh r0, [r5, r3] @ movhi -.L914: +.L917: uxth r8, r7 uxth r3, fp cmp r3, r8 - bcs .L919 - ldr ip, .L1012+4 + 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, .L1012+4 + ldr r3, .L1015+4 ldr r2, [sp, #8] mov r10, r0 ldr ip, [sp, #12] @@ -5244,68 +5226,68 @@ gc_search_src_blk: strh r2, [r3] @ movhi movw r3, #65535 cmp r0, r3 - beq .L915 - ldr r3, .L1012+8 + beq .L918 + ldr r3, .L1015+8 mov ip, r0, asl #1 ldr r3, [r3] tst r3, #256 - beq .L916 - ldr r3, .L1012 + beq .L919 + ldr r3, .L1015 mov r1, r10 - ldr r0, .L1012+12 + ldr r0, .L1015+12 str ip, [sp, #8] ldr r3, [r3, #576] ldrh r3, [r3, ip] bl printk ldr ip, [sp, #8] -.L916: +.L919: ldr r3, [r5, #576] ldrh r2, [r3, ip] - ldr r3, .L1012+16 + ldr r3, .L1015+16 ldrh r3, [r3] cmp r2, r3 - bcs .L917 + bcs .L920 mov r1, #0 mov r0, r10 mov r2, r1 bl gc_add_sblk cmp r0, #0 - beq .L918 + beq .L921 add r4, r4, #1 uxth r4, r4 cmp r4, r8 - bls .L918 - b .L919 -.L917: - ldr r2, .L1012 + bls .L921 + b .L922 +.L920: + ldr r2, .L1015 movw r3, #2946 mov r1, #0 strh r1, [r2, r3] @ movhi - b .L919 -.L915: + b .L922 +.L918: mov r3, #0 strh r3, [ip] @ movhi - b .L919 -.L918: + b .L922 +.L921: add fp, fp, #1 - b .L914 -.L919: + b .L917 +.L922: tst r9, #2 movne r10, #0 - ldrne fp, .L1012 - beq .L921 -.L922: + ldrne fp, .L1015 + beq .L924 +.L925: uxth r3, r10 cmp r3, r8 - bcs .L926 - ldr r3, .L1012+20 + 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, .L1012+20 + ldr r3, .L1015+20 ldr r2, [sp, #8] mov lr, r0 add r1, r2, #1 @@ -5313,35 +5295,35 @@ gc_search_src_blk: cmp r0, r2 strh r1, [r3] @ movhi ldr r3, [sp, #12] - beq .L923 + 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 .L923 + bcs .L926 mov r1, #0 mov r2, r1 bl gc_add_sblk cmp r0, #0 - beq .L925 + beq .L928 add r4, r4, #1 uxth r4, r4 cmp r4, r8 - bls .L925 - b .L928 -.L923: + bls .L928 + b .L931 +.L926: mov r2, #0 strh r2, [r3] @ movhi - b .L926 -.L925: + b .L929 +.L928: add r10, r10, #1 - b .L922 -.L926: + b .L925 +.L929: cmp r4, r8 - bcs .L928 - ldr r0, .L1012 + bcs .L931 + ldr r0, .L1015 movw r1, #2300 ldrh r2, [r5, r1] add r3, r0, #2960 @@ -5354,9 +5336,9 @@ gc_search_src_blk: cmp r2, r3 addlt r3, r2, ip, lsr #3 strlth r3, [r0, r1] @ movhi - b .L921 -.L928: - ldr r1, .L1012 + b .L924 +.L931: + ldr r1, .L1015 movw r2, #2300 ldrh r3, [r5, r2] add r0, r1, #2960 @@ -5364,19 +5346,19 @@ gc_search_src_blk: cmp r3, r0 subhi r3, r3, r0, lsr #3 strhih r3, [r1, r2] @ movhi -.L921: +.L924: tst r9, #1 - beq .L929 + beq .L932 cmp r4, r8 movcc fp, #0 - ldrcc r10, .L1012+24 - bcs .L929 -.L930: + ldrcc r10, .L1015+24 + bcs .L932 +.L933: uxth r3, fp cmp r3, r8 - bcs .L933 + bcs .L936 ldrh r3, [r10] - ldr r2, .L1012+24 + ldr r2, .L1015+24 mov r1, r3 add r0, r2, #2 str r2, [sp, #12] @@ -5388,50 +5370,50 @@ gc_search_src_blk: strh r3, [r10] @ movhi movw r3, #65535 cmp r0, r3 - beq .L931 + beq .L934 mov r1, #0 mov r2, r1 bl gc_add_sblk cmp r0, #0 - beq .L932 + beq .L935 add r4, r4, #1 uxth r4, r4 cmp r4, r8 - bcc .L932 - b .L935 -.L931: + bcc .L935 + b .L938 +.L934: mov r3, #0 strh r3, [r2] @ movhi - b .L933 -.L932: + b .L936 +.L935: add fp, fp, #1 - b .L930 -.L933: + b .L933 +.L936: cmp r4, r8 - bcs .L935 - ldr r1, .L1012 + bcs .L938 + ldr r1, .L1015 movw r2, #2298 ldrh r3, [r5, r2] add r0, r1, #2960 ldrh r0, [r0] cmp r3, r0 addcc r3, r3, r0, lsr #3 - bcc .L1011 - b .L929 -.L935: - ldr r1, .L1012 + bcc .L1014 + b .L932 +.L938: + ldr r1, .L1015 movw r2, #2298 ldrh r3, [r5, r2] add r0, r1, #2960 ldrh r0, [r0] cmp r3, r0, lsr #1 - bls .L929 + bls .L932 sub r3, r3, r0, lsr #3 -.L1011: +.L1014: strh r3, [r1, r2] @ movhi - b .L929 -.L913: - ldr r2, .L1012+28 + b .L932 +.L916: + ldr r2, .L1015+28 movw r3, #570 strh r4, [r2, r3] @ movhi movw r3, #2972 @@ -5439,31 +5421,31 @@ gc_search_src_blk: ands r3, r1, #1 str r3, [sp, #8] ldreq r4, [sp, #8] - beq .L936 + beq .L939 movw r2, #2974 movw r3, #2280 ldrh r2, [r5, r2] ldrh r3, [r5, r3] cmp r3, r2, lsr #2 - bcc .L937 + bcc .L940 movw r2, #2278 ldrh r2, [r5, r2] cmp r2, r3 - bls .L938 -.L937: + bls .L941 +.L940: movw r3, #2278 movw r10, #2966 ldrh r3, [r5, r3] mov r1, #0 - ldr r0, .L1012+32 - ldr r4, .L1012 + ldr r0, .L1015+32 + ldr r4, .L1015 mov r3, r3, lsr #2 strh r3, [r5, r10] @ movhi bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 moveq r4, #0 - beq .L939 + beq .L942 ldr r1, [r4, #576] add r2, r4, #2960 mov r3, r0, asl #1 @@ -5472,19 +5454,19 @@ gc_search_src_blk: mov r1, #0 cmp r3, r2, lsr #2 movcs r4, r1 - bcs .L939 + bcs .L942 mov r2, r6 strh r1, [r4, r10] @ movhi bl gc_add_sblk adds r4, r0, #0 movne r4, #1 -.L939: - ldr r10, .L1012+24 +.L942: + ldr r10, .L1015+24 mov r8, #64 movw fp, #65535 -.L941: +.L944: ldrh r2, [r10] - ldr r0, .L1012+32 + ldr r0, .L1015+32 mov r1, r2 str r2, [sp, #12] bl _list_get_gc_head_node @@ -5492,46 +5474,46 @@ gc_search_src_blk: cmp r0, fp add r2, r2, #1 strh r2, [r10] @ movhi - beq .L938 + beq .L941 mov r1, #0 mov r2, r6 bl gc_add_sblk cmp r0, #0 - beq .L940 + beq .L943 add r4, r4, #1 uxth r4, r4 cmp r4, r7 - bcs .L938 -.L940: + bcs .L941 +.L943: sub r3, r8, #1 uxth r8, r3 cmp r8, #0 - bne .L941 -.L938: + bne .L944 +.L941: movw r3, #2280 ldrh r2, [r5, r3] movw r3, #2974 ldrh r3, [r5, r3] cmp r2, r3, lsr #3 - bhi .L958 - ldr r1, .L1012 + bhi .L961 + ldr r1, .L1015 movw r3, #2278 ldrh r3, [r1, r3] add r3, r3, #8 cmp r2, r3 - bgt .L958 -.L936: + bgt .L961 +.L939: tst r9, #2 - beq .L944 - ldr r10, .L1012+20 + beq .L947 + ldr r10, .L1015+20 mov r3, #0 movw r2, #2952 mov r8, #64 mov fp, r3 strh r3, [r5, r2] @ movhi -.L949: +.L952: ldrh r2, [r10] - ldr r0, .L1012+36 + ldr r0, .L1015+36 mov r1, r2 str r2, [sp, #12] bl _list_get_gc_head_node @@ -5540,11 +5522,11 @@ gc_search_src_blk: strh r2, [r10] @ movhi movw r2, #65535 cmp r0, r2 - beq .L945 + beq .L948 cmp r7, #1 - ldr r1, .L1012+40 - bne .L946 - ldr r3, .L1012 + ldr r1, .L1015+40 + bne .L949 + ldr r3, .L1015 add r2, r1, #668 ldrh r2, [r2] ldrb lr, [r3, #2964] @ zero_extendqisi2 @@ -5553,48 +5535,48 @@ gc_search_src_blk: ldrh lr, [lr] sub r2, r2, lr, lsr #3 strh r2, [r1] @ movhi -.L946: +.L949: ldr lr, [r5, #576] mov r2, r0, asl #1 ldrh lr, [lr, r2] ldrh r2, [r1] cmp lr, r2 - bcs .L947 + bcs .L950 mov r1, #0 mov r2, r6 bl gc_add_sblk cmp r0, #0 - beq .L948 + beq .L951 add r4, r4, #1 add r3, fp, #1 uxth r4, r4 uxth fp, r3 cmp r4, r7 - bcc .L948 - b .L945 -.L947: - ldr r1, .L1012 + bcc .L951 + b .L948 +.L950: + ldr r1, .L1015 movw r2, #2952 mov r0, #0 strh r0, [r1, r2] @ movhi - b .L945 -.L948: + b .L948 +.L951: sub ip, r8, #1 uxth r8, ip cmp r8, #0 - bne .L949 -.L945: + bne .L952 +.L948: cmp r4, r7 - ldr r2, .L1012+44 - bcc .L950 + ldr r2, .L1015+44 + bcc .L953 cmp fp, #0 - bne .L951 + bne .L954 movw r3, #2282 ldrh r1, [r5, r3] ldrh r3, [r2, #16] cmp r1, r3 - bls .L951 -.L950: + bls .L954 +.L953: ldrh r3, [r2] movw r2, #2962 ldrh ip, [r5, r2] @@ -5606,81 +5588,81 @@ gc_search_src_blk: rsb r2, r3, r2 cmp r0, r2 addlt r3, r3, r0 - blt .L1010 - b .L944 -.L951: + blt .L1013 + b .L947 +.L954: ldrh r0, [r2] movw r1, #2294 ldrb r2, [r5, #2964] @ zero_extendqisi2 ldrh r3, [r5, r1] mul r2, r2, r0 cmp r3, r2 - ble .L944 + ble .L947 sub r3, r3, r0, lsr #3 -.L1010: - ldr r2, .L1012 +.L1013: + ldr r2, .L1015 strh r3, [r2, r1] @ movhi -.L944: +.L947: ldr r3, [sp, #8] cmp r3, #0 - beq .L929 - ldr fp, .L1012 + beq .L932 + ldr fp, .L1015 movw r3, #2946 mov r10, #64 mov r2, #0 strh r2, [r5, r3] @ movhi -.L955: - ldr r3, .L1012+4 +.L958: + ldr r3, .L1015+4 add r0, r3, #2 ldrh r8, [r3] mov r1, r8 add r8, r8, #1 bl _list_get_gc_head_node - ldr r3, .L1012+4 + ldr r3, .L1015+4 movw r2, #65535 strh r8, [r3] @ movhi cmp r0, r2 - beq .L952 + beq .L955 ldr r1, [fp, #576] mov r2, r0, asl #1 ldrh r1, [r1, r2] - ldr r2, .L1012+48 + ldr r2, .L1015+48 ldrh ip, [r2] cmp ip, r1 cmphi r1, #2 - bls .L953 + bls .L956 ldrh r1, [r3, #28] ldrh r2, [r2, #-16] cmp r2, r1, lsr #1 - bls .L952 -.L953: + bls .L955 +.L956: mov r1, #0 mov r2, r6 bl gc_add_sblk cmp r0, #0 - beq .L954 + beq .L957 add r4, r4, #1 uxth r4, r4 cmp r4, r7 - bcs .L952 -.L954: + bcs .L955 +.L957: sub r3, r10, #1 uxth r10, r3 cmp r10, #0 - bne .L955 -.L952: + bne .L958 +.L955: cmp r4, r7 - ldr r3, .L1012+44 + ldr r3, .L1015+44 movw r1, #2296 - bcs .L956 + 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 .L929 -.L956: + b .L932 +.L959: ldrh r0, [r3] sub ip, r3, #2960 ldrb r3, [r5, #2964] @ zero_extendqisi2 @@ -5690,32 +5672,32 @@ gc_search_src_blk: cmp r2, r3 addlt r2, r2, r0, lsr #3 strlth r2, [ip, r1] @ movhi -.L929: - ldr r3, .L1012+8 +.L932: + ldr r3, .L1015+8 ldr r3, [r3] tst r3, #256 - beq .L957 + beq .L960 str r7, [sp] mov r1, r6 - ldr r0, .L1012+52 + ldr r0, .L1015+52 mov r2, r9 mov r3, r4 bl printk -.L957: +.L960: mov r0, r4 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L958: - ldr r10, .L1012+4 +.L961: + ldr r10, .L1015+4 movw r3, #2946 mov r8, #64 movw fp, #65535 mov r2, #0 strh r2, [r5, r3] @ movhi -.L943: +.L946: ldrh r2, [r10] - ldr r0, .L1012+56 + ldr r0, .L1015+56 mov r1, r2 str r2, [sp, #12] bl _list_get_gc_head_node @@ -5723,25 +5705,25 @@ gc_search_src_blk: cmp r0, fp add r2, r2, #1 strh r2, [r10] @ movhi - beq .L936 + beq .L939 mov r1, #0 mov r2, r6 bl gc_add_sblk cmp r0, #0 - beq .L942 + beq .L945 add r4, r4, #1 uxth r4, r4 cmp r4, r7 - bcs .L936 -.L942: + bcs .L939 +.L945: sub r3, r8, #1 uxth r8, r3 cmp r8, #0 - bne .L943 - b .L936 -.L1013: + bne .L946 + b .L939 +.L1016: .align 2 -.L1012: +.L1015: .word .LANCHOR0 .word .LANCHOR0+2946 .word .LANCHOR2 @@ -5768,13 +5750,13 @@ gc_free_temp_buf: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r4, .L1029 + ldr r4, .L1032 ldrb r0, [r4, #2319] @ zero_extendqisi2 cmp r0, #0 ldmeqfd sp!, {r4, r5, r6, pc} ldrb r3, [r4, #2262] @ zero_extendqisi2 cmp r3, #1 - bhi .L1021 + bhi .L1024 add r3, r4, #2880 mov r0, #48 ldrh r5, [r3] @@ -5786,31 +5768,31 @@ gc_free_temp_buf: ldr r1, [r4, #2940] cmp r3, r2 movcs r3, r2 -.L1016: +.L1019: cmp r5, r3 - bcs .L1021 + bcs .L1024 ldrb r2, [r1, r5] @ zero_extendqisi2 cmp r2, #255 - beq .L1017 + beq .L1020 mul r2, r0, r2 - ldr r6, .L1029 + ldr r6, .L1032 add ip, r4, r2 ldrb ip, [ip, #769] @ zero_extendqisi2 cmp ip, #0 - bne .L1017 + bne .L1020 add r0, r6, #724 add r0, r0, r2 bl zbuf_free - ldr r3, .L1029+4 + ldr r3, .L1032+4 ldr r3, [r3] tst r3, #256 - beq .L1018 + beq .L1021 ldr r3, [r6, #2940] mov r1, r5 - ldr r0, .L1029+8 + ldr r0, .L1032+8 ldrb r2, [r3, r5] @ zero_extendqisi2 bl printk -.L1018: +.L1021: ldr r3, [r4, #2940] mvn r2, #0 mov r0, #1 @@ -5819,15 +5801,15 @@ gc_free_temp_buf: add r3, r3, r2 strb r3, [r4, #2319] ldmfd sp!, {r4, r5, r6, pc} -.L1017: +.L1020: add r5, r5, #1 - b .L1016 -.L1021: + b .L1019 +.L1024: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L1030: +.L1033: .align 2 -.L1029: +.L1032: .word .LANCHOR0 .word .LANCHOR2 .word .LC96 @@ -5844,7 +5826,7 @@ print_gc_debug_info: .save {lr} .pad #20 movw r2, #2312 - ldr r0, .L1033 + ldr r0, .L1036 movw ip, #566 add r3, r0, r2 ldrh r1, [r0, r2] @@ -5857,14 +5839,14 @@ print_gc_debug_info: movw ip, #2292 ldrh r0, [r0, ip] str r0, [sp, #8] - ldr r0, .L1033+4 + ldr r0, .L1036+4 bl printk add sp, sp, #20 @ sp needed ldr pc, [sp], #4 -.L1034: +.L1037: .align 2 -.L1033: +.L1036: .word .LANCHOR0 .word .LC97 .fnend @@ -5879,17 +5861,17 @@ zftl_get_gc_node: @ link register save eliminated. cmp r1, #5 mov r3, r0 - ldreq r0, .L1039 - beq .L1038 + ldreq r0, .L1042 + beq .L1041 cmp r1, #2 - ldreq r0, .L1039+4 - ldrne r0, .L1039+8 -.L1038: + ldreq r0, .L1042+4 + ldrne r0, .L1042+8 +.L1041: mov r1, r3 b _list_get_gc_head_node -.L1040: +.L1043: .align 2 -.L1039: +.L1042: .word .LANCHOR0+2956 .word .LANCHOR0+2968 .word .LANCHOR0+2948 @@ -5903,25 +5885,25 @@ zftl_insert_free_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1045 + ldr r2, .L1048 mov r1, r0 ldr r3, [r2, #568] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 ands r3, r3, #24 addeq r2, r2, #2272 - ldreq r0, .L1045+4 - beq .L1044 + ldreq r0, .L1048+4 + beq .L1047 cmp r3, #16 - ldrne r0, .L1045+8 - ldreq r0, .L1045+12 - ldreq r2, .L1045+16 + ldrne r0, .L1048+8 + ldreq r0, .L1048+12 + ldreq r2, .L1048+16 subne r2, r0, #712 -.L1044: +.L1047: b _insert_free_list -.L1046: +.L1049: .align 2 -.L1045: +.L1048: .word .LANCHOR0 .word .LANCHOR0+2980 .word .LANCHOR0+2988 @@ -5937,30 +5919,30 @@ zftl_insert_data_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1052 + ldr r3, .L1055 mov r1, r0 ldr r3, [r3, #568] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #64 - ldreq r0, .L1052+4 - ldreq r2, .L1052+8 - beq .L1051 -.L1048: + ldreq r0, .L1055+4 + ldreq r2, .L1055+8 + beq .L1054 +.L1051: cmp r3, #96 - ldreq r0, .L1052+12 + ldreq r0, .L1055+12 subeq r2, r0, #668 - beq .L1051 + beq .L1054 cmp r3, #160 bxne lr - ldr r0, .L1052+16 - ldr r2, .L1052+20 -.L1051: + ldr r0, .L1055+16 + ldr r2, .L1055+20 +.L1054: b _insert_data_list -.L1053: +.L1056: .align 2 -.L1052: +.L1055: .word .LANCHOR0 .word .LANCHOR0+2968 .word .LANCHOR0+2278 @@ -5980,7 +5962,7 @@ zftl_gc_get_free_sblk: .save {r4, r5, r6, r7, r8, lr} .pad #16 movw r2, #65535 - ldr r8, .L1068 + ldr r8, .L1071 mov r7, r0 ldr r3, [r8, #580] add r3, r3, #588 @@ -5990,16 +5972,16 @@ zftl_gc_get_free_sblk: mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L1055 - ldr r0, .L1068+4 + beq .L1058 + ldr r0, .L1071+4 mov r1, r4 bl printk ldr r3, [r8, #580] mvn r2, #0 add r3, r3, #588 strh r2, [r3] @ movhi - b .L1056 -.L1055: + b .L1059 +.L1058: movw r3, #2274 mov r6, r1 ldrh r1, [r8, r3] @@ -6007,34 +5989,34 @@ zftl_gc_get_free_sblk: ldrh r3, [r8, r3] mov r5, r8 cmp r1, r3 - bls .L1057 + bls .L1060 cmp r0, #0 - ldr r2, .L1068+8 + ldr r2, .L1071+8 movne r1, r1, lsr #3 moveq r1, r0 - ldr r0, .L1068+12 - b .L1067 -.L1057: + ldr r0, .L1071+12 + b .L1070 +.L1060: cmp r0, #0 moveq r1, r3, lsr #2 - beq .L1061 + beq .L1064 rsb r1, r1, r1, asl #3 add r3, r1, #7 cmp r1, #0 movlt r1, r3 ubfx r1, r1, #3, #16 -.L1061: - ldr r0, .L1068+16 +.L1064: + ldr r0, .L1071+16 sub r2, r0, #712 -.L1067: +.L1070: bl _list_pop_index_node movw r3, #65535 uxth r4, r0 cmp r4, r3 - bne .L1062 - ldr r3, .L1068+20 + bne .L1065 + ldr r3, .L1071+20 mov r1, r4 - ldr r0, .L1068+24 + ldr r0, .L1071+24 mov r2, r6 ldrh r3, [r3] str r3, [sp] @@ -6043,13 +6025,13 @@ zftl_gc_get_free_sblk: str r3, [sp, #4] ldr r3, [r5, #2980] bl printk -.L1062: +.L1065: cmp r7, #0 - beq .L1056 - ldr r3, .L1068+28 + beq .L1059 + ldr r3, .L1071+28 ldr r3, [r3] tst r3, #256 - beq .L1056 + beq .L1059 ldr r2, [r5, #568] mov r0, r4, asl #2 add r3, r2, r0 @@ -6058,7 +6040,7 @@ zftl_gc_get_free_sblk: ubfx r1, r1, #11, #8 str r1, [sp] ldrh r2, [r2, r0] - ldr r0, .L1068+32 + ldr r0, .L1071+32 ubfx r2, r2, #0, #11 str r2, [sp, #4] ldr r1, [r5, #576] @@ -6069,14 +6051,14 @@ zftl_gc_get_free_sblk: mov r2, r3, lsr #5 ubfx r3, r3, #3, #2 bl printk -.L1056: +.L1059: mov r0, r4 add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1069: +.L1072: .align 2 -.L1068: +.L1071: .word .LANCHOR0 .word .LC98 .word .LANCHOR0+2274 @@ -6100,80 +6082,80 @@ zftl_get_free_sblk: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r1 - ldr r5, .L1085 - bne .L1071 + ldr r5, .L1088 + bne .L1074 movw r3, #2274 ldrh r1, [r5, r3] movw r3, #2276 ldrh r2, [r5, r3] cmp r1, r2 - bcc .L1072 + bcc .L1075 add r3, r5, #2272 ldrh r3, [r3] cmp r2, #0 cmpne r3, r1 movhi r1, #1 movls r1, #0 - bls .L1073 -.L1072: - ldr r0, .L1085+4 + bls .L1076 +.L1075: + ldr r0, .L1088+4 mov r1, r2, lsr #1 - b .L1084 -.L1073: - ldr r0, .L1085+8 - ldr r2, .L1085+12 - b .L1083 -.L1071: + b .L1087 +.L1076: + ldr r0, .L1088+8 + ldr r2, .L1088+12 + b .L1086 +.L1074: ldr r2, [r5, #580] movw r7, #590 ldrh r4, [r2, r7] movw r2, #65535 cmp r1, #1 cmpne r4, r2 - beq .L1075 - ldr r0, .L1085+16 + beq .L1078 + ldr r0, .L1088+16 mov r1, r4 bl printk ldr r3, [r5, #580] mvn r2, #0 strh r2, [r3, r7] @ movhi - b .L1076 -.L1075: + b .L1079 +.L1078: add r2, r5, #2272 movw r1, #2276 ldrh r1, [r5, r1] mov r3, r0 ldrh r2, [r2] cmp r2, r1 - bcc .L1077 + bcc .L1080 movw r0, #2274 ldrh r0, [r5, r0] cmp r1, #0 cmpne r0, r2 - bls .L1078 -.L1077: + bls .L1081 +.L1080: cmp r6, #1 - ldr r0, .L1085+4 + ldr r0, .L1088+4 moveq r3, r1, lsr #1 mov r1, r3 -.L1084: +.L1087: sub r2, r0, #712 - b .L1083 -.L1078: + b .L1086 +.L1081: cmp r6, #1 - ldr r0, .L1085+20 + ldr r0, .L1088+20 moveq r3, r2, lsr #1 sub r2, r0, #708 mov r1, r3 -.L1083: +.L1086: bl _list_pop_index_node movw r3, #65535 uxth r4, r0 cmp r4, r3 - bne .L1076 - ldr r3, .L1085+24 + bne .L1079 + ldr r3, .L1088+24 mov r1, r4 - ldr r0, .L1085+28 + ldr r0, .L1088+28 mov r2, r6 ldrh r3, [r3] str r3, [sp] @@ -6182,14 +6164,14 @@ zftl_get_free_sblk: str r3, [sp, #4] ldr r3, [r5, #2980] bl printk -.L1076: +.L1079: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L1086: +.L1089: .align 2 -.L1085: +.L1088: .word .LANCHOR0 .word .LANCHOR0+2988 .word .LANCHOR0+2984 @@ -6208,30 +6190,30 @@ zftl_remove_data_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1092 + ldr r3, .L1095 mov r1, r0 ldr r3, [r3, #568] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #64 - ldreq r0, .L1092+4 - ldreq r2, .L1092+8 - beq .L1091 -.L1088: + ldreq r0, .L1095+4 + ldreq r2, .L1095+8 + beq .L1094 +.L1091: cmp r3, #96 - ldreq r0, .L1092+12 + ldreq r0, .L1095+12 subeq r2, r0, #668 - beq .L1091 + beq .L1094 cmp r3, #160 bxne lr - ldr r0, .L1092+16 - ldr r2, .L1092+20 -.L1091: + ldr r0, .L1095+16 + ldr r2, .L1095+20 +.L1094: b _list_remove_node -.L1093: +.L1096: .align 2 -.L1092: +.L1095: .word .LANCHOR0 .word .LANCHOR0+2968 .word .LANCHOR0+2278 @@ -6248,25 +6230,25 @@ zftl_remove_free_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1098 + ldr r2, .L1101 mov r1, r0 ldr r3, [r2, #568] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 ands r3, r3, #24 addeq r2, r2, #2272 - ldreq r0, .L1098+4 - beq .L1097 + ldreq r0, .L1101+4 + beq .L1100 cmp r3, #16 - ldrne r0, .L1098+8 - ldreq r0, .L1098+12 - ldreq r2, .L1098+16 + ldrne r0, .L1101+8 + ldreq r0, .L1101+12 + ldreq r2, .L1101+16 subne r2, r0, #712 -.L1097: +.L1100: b _list_remove_node -.L1099: +.L1102: .align 2 -.L1098: +.L1101: .word .LANCHOR0 .word .LANCHOR0+2980 .word .LANCHOR0+2988 @@ -6282,30 +6264,30 @@ zftl_list_update_data_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1105 + ldr r3, .L1108 mov r1, r0 ldr r3, [r3, #568] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #64 - ldreq r0, .L1105+4 - ldreq r2, .L1105+8 - beq .L1104 -.L1101: + ldreq r0, .L1108+4 + ldreq r2, .L1108+8 + beq .L1107 +.L1104: cmp r3, #96 - ldreq r0, .L1105+12 + ldreq r0, .L1108+12 subeq r2, r0, #668 - beq .L1104 + beq .L1107 cmp r3, #160 bxne lr - ldr r0, .L1105+16 - ldr r2, .L1105+20 -.L1104: + ldr r0, .L1108+16 + ldr r2, .L1108+20 +.L1107: b _list_update_data_list -.L1106: +.L1109: .align 2 -.L1105: +.L1108: .word .LANCHOR0 .word .LANCHOR0+2968 .word .LANCHOR0+2278 @@ -6328,15 +6310,15 @@ print_list_info: .pad #36 sub sp, sp, #36 ldr r1, [r4] - ldr r0, .L1112 + ldr r0, .L1115 bl printk ldr r4, [r4] cmp r4, #0 - beq .L1107 - ldr r6, .L1112+4 + beq .L1110 + ldr r6, .L1115+4 mov r5, #0 - ldr r7, .L1112+8 -.L1110: + ldr r7, .L1115+8 +.L1113: ldr r2, [r6, #524] ldrh r0, [r4, #2] rsb r2, r2, r4 @@ -6365,30 +6347,30 @@ print_list_info: str r1, [sp, #20] mov r1, r2, asl #1 ldrh r1, [r0, r1] - ldr r0, .L1112+12 + ldr r0, .L1115+12 str r1, [sp, #24] mov r1, r5 bl printk ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - beq .L1107 + beq .L1110 ldr r3, [r6, #524] mov r4, #6 add r5, r5, #1 mla r4, r4, r2, r3 - ldr r3, .L1112+16 + ldr r3, .L1115+16 uxth r5, r5 ldrh r3, [r3] cmp r3, r5 - bcs .L1110 -.L1107: + bcs .L1113 +.L1110: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L1113: +.L1116: .align 2 -.L1112: +.L1115: .word .LC102 .word .LANCHOR0 .word -1431655765 @@ -6405,7 +6387,7 @@ dump_all_list_info: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L1116 + ldr r4, .L1119 add r0, r4, #2976 add r1, r4, #2272 add r0, r0, #4 @@ -6436,9 +6418,9 @@ dump_all_list_info: add r1, r1, #10 ldmfd sp!, {r4, lr} b print_list_info -.L1117: +.L1120: .align 2 -.L1116: +.L1119: .word .LANCHOR0 .fnend .size dump_all_list_info, .-dump_all_list_info @@ -6450,7 +6432,7 @@ ftl_tmp_into_update: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1123 + ldr r3, .L1126 ldr r3, [r3, #2288] ldr r2, [r3, #16] cmp r2, #2048 @@ -6485,9 +6467,9 @@ ftl_tmp_into_update: addhi r1, r1, r0 strhi r1, [r3, #44] bx lr -.L1124: +.L1127: .align 2 -.L1123: +.L1126: .word .LANCHOR0 .fnend .size ftl_tmp_into_update, .-ftl_tmp_into_update @@ -6503,7 +6485,7 @@ ftl_get_blk_list_in_sblk: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r5, #0 - ldr r6, .L1135 + ldr r6, .L1138 mov r10, r0 mov r7, r1 mov r8, r5 @@ -6512,13 +6494,13 @@ ftl_get_blk_list_in_sblk: mov r9, r6 add r4, r4, r0, asl #2 ldrb r3, [r4, #3] @ zero_extendqisi2 -.L1126: +.L1129: ldrb r1, [r6, #2964] @ zero_extendqisi2 cmp r8, r1 - bge .L1133 + bge .L1136 mov r1, r3, asr r8 tst r1, #1 - bne .L1127 + bne .L1130 ldrb r4, [r9, #2930] @ zero_extendqisi2 mov r0, r8 str r2, [sp, #4] @@ -6543,26 +6525,26 @@ ftl_get_blk_list_in_sblk: andhi r1, r1, r8 addhi r4, r4, r1 strhih r4, [r7, fp] @ movhi -.L1127: +.L1130: add r8, r8, #1 - b .L1126 -.L1133: + b .L1129 +.L1136: add r7, r7, r5, asl #1 mov r0, r5 mvn r2, #0 -.L1130: +.L1133: ldrb r3, [r6, #2964] @ zero_extendqisi2 cmp r5, r3 strlth r2, [r7], #2 @ movhi addlt r5, r5, #1 - blt .L1130 -.L1134: + blt .L1133 +.L1137: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1136: +.L1139: .align 2 -.L1135: +.L1138: .word .LANCHOR0 .fnend .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk @@ -6576,7 +6558,7 @@ ftl_erase_phy_blk: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r1 - ldr r3, .L1143 + ldr r3, .L1146 add r2, r3, #2928 ldrb r5, [r3, #676] @ zero_extendqisi2 mov r4, r3 @@ -6590,10 +6572,10 @@ ftl_erase_phy_blk: uxtb r6, r6 sxth r5, r5 cmp r2, #0 - beq .L1138 + beq .L1141 ldrb r3, [r3, #2939] @ zero_extendqisi2 cmp r3, #0 - bne .L1138 + bne .L1141 movw r3, #2994 clz r1, r1 ldrh r2, [r4, r3] @@ -6601,7 +6583,7 @@ ftl_erase_phy_blk: mov r1, r1, lsr #5 mul r2, r2, r5 bl flash_erase_block_en -.L1138: +.L1141: movw r3, #2994 mov r0, r6 ldrh r2, [r4, r3] @@ -6609,9 +6591,9 @@ ftl_erase_phy_blk: mul r2, r2, r5 ldmfd sp!, {r3, r4, r5, r6, r7, lr} b flash_erase_block_en -.L1144: +.L1147: .align 2 -.L1143: +.L1146: .word .LANCHOR0 .fnend .size ftl_erase_phy_blk, .-ftl_erase_phy_blk @@ -6620,131 +6602,126 @@ ftl_erase_phy_blk: .type ftl_erase_sblk, %function ftl_erase_sblk: .fnstart - @ args = 0, pretend = 0, frame = 88 + @ args = 0, pretend = 0, frame = 80 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1174 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #92 - sub sp, sp, #92 - ldr ip, .L1174+4 mov r9, r0, asl #2 - ldr r3, [r2] - mov r7, r1 + ldr r6, .L1176 + .pad #84 + sub sp, sp, #84 mov r8, r0 + mov r7, r1 mov r5, #0 - mov r6, ip - mov r10, ip - str r3, [sp, #84] - ldr r3, [ip, #568] - str r2, [sp, #8] - add r1, r3, r9 - ldrb r3, [r1, #3] @ zero_extendqisi2 - str r3, [sp, #4] -.L1146: + 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, .L1174+4 + ldr r3, .L1176 cmp r5, r2 - bge .L1157 + bge .L1160 ldrb r2, [r10, #2930] @ zero_extendqisi2 mov r4, #0 sub r3, r2, #1 - str r3, [sp] - ldr r3, .L1174+8 + str r3, [sp, #4] + ldr r3, .L1176+4 mul lr, r2, r5 mul ip, r2, r8 ldrh r3, [r3] mov r0, r3 mov r3, r4 -.L1158: +.L1161: cmp r3, r2 - bge .L1173 - ldr fp, [sp, #4] + bge .L1175 + ldr fp, [sp, #8] add r1, r3, lr mov r1, fp, asr r1 tst r1, #1 - bne .L1147 - add r1, sp, #88 + bne .L1150 + add r1, sp, #80 add fp, r1, r4, asl #2 - ldr r1, [sp] + ldr r1, [sp, #4] add r4, r4, #1 and r1, r3, r1 add r1, ip, r1 mul r1, r0, r1 - str r1, [fp, #-68] -.L1147: + str r1, [fp, #-64] +.L1150: add r3, r3, #1 - b .L1158 -.L1173: + b .L1161 +.L1175: cmp r2, #4 - bne .L1171 + bne .L1173 uxtb r3, r5 uxtb ip, r7 mov fp, #0 -.L1149: - cmp fp, r4 - beq .L1152 - add r2, sp, #20 - mov r0, r3 - mov r1, ip - str r3, [sp, #12] - ldr r2, [r2, fp, asl #2] - add fp, fp, #1 - str ip, [sp] - bl flash_erase_block_en - ldr ip, [sp] - ldr r3, [sp, #12] - b .L1149 -.L1171: - cmp r4, #2 - bne .L1153 - ldrb r3, [r6, #2938] @ zero_extendqisi2 - uxtb r4, r5 - cmp r3, #0 - beq .L1154 - ldrb r3, [r10, #2939] @ zero_extendqisi2 - cmp r3, #0 - bne .L1154 - clz r1, r7 - mov r0, r4 - ldr r2, [sp, #20] - mov r1, r1, lsr #5 - ldr r3, [sp, #24] - bl flash_erase_duplane_block -.L1154: - mov r0, r4 - uxtb r1, r7 - ldr r2, [sp, #20] - ldr r3, [sp, #24] - bl flash_erase_duplane_block - b .L1152 -.L1153: - cmp r4, #1 - bne .L1152 - ldrb r3, [r6, #2938] @ zero_extendqisi2 - uxtb r4, r5 - cmp r3, #0 - beq .L1156 - ldrb r3, [r10, #2939] @ zero_extendqisi2 - cmp r3, #0 - bne .L1156 - clz r1, r7 - mov r0, r4 - ldr r2, [sp, #20] - mov r1, r1, lsr #5 - bl flash_erase_block_en -.L1156: - mov r0, r4 - uxtb r1, r7 - ldr r2, [sp, #20] - bl flash_erase_block_en .L1152: - add r5, r5, #1 - b .L1146 + cmp fp, r4 + beq .L1155 + mov r0, r3 + str r3, [sp, #12] + add r3, sp, #16 + mov r1, ip + str ip, [sp, #4] + ldr r2, [r3, fp, asl #2] + 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 + cmp r3, #0 + beq .L1157 + ldrb r3, [r10, #2939] @ zero_extendqisi2 + cmp r3, #0 + bne .L1157 + clz r1, r7 + mov r0, r4 + ldr r2, [sp, #16] + mov r1, r1, lsr #5 + ldr r3, [sp, #20] + bl flash_erase_duplane_block .L1157: + mov r0, r4 + 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 + cmp r3, #0 + beq .L1159 + ldrb r3, [r10, #2939] @ zero_extendqisi2 + cmp r3, #0 + bne .L1159 + clz r1, r7 + mov r0, r4 + ldr r2, [sp, #16] + mov r1, r1, lsr #5 + bl flash_erase_block_en +.L1159: + mov r0, r4 + uxtb r1, r7 + ldr r2, [sp, #16] + bl flash_erase_block_en +.L1155: + add r5, r5, #1 + b .L1149 +.L1160: cmp r7, #0 ldr r0, [r3, #568] - bne .L1159 + bne .L1162 ldrh r2, [r0, r9] ubfx r1, r2, #0, #11 add r1, r1, #1 @@ -6761,8 +6738,8 @@ ftl_erase_sblk: uxth r1, r3 cmp r0, r1 strlth r3, [r2, #96] @ movhi - b .L1161 -.L1159: + b .L1164 +.L1162: ldr r2, [r0, r8, asl #2] ubfx r1, r2, #11, #8 add r1, r1, #1 @@ -6778,22 +6755,14 @@ ftl_erase_sblk: ubfx r3, r3, #11, #8 cmp r1, r3 strcch r3, [r2, #98] @ movhi -.L1161: - ldr r3, [sp, #8] +.L1164: mov r0, #0 - ldr r2, [sp, #84] - ldr r3, [r3] - cmp r2, r3 - beq .L1163 - bl __stack_chk_fail -.L1163: - add sp, sp, #92 + add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1175: +.L1177: .align 2 -.L1174: - .word __stack_chk_guard +.L1176: .word .LANCHOR0 .word .LANCHOR0+2994 .fnend @@ -6805,7 +6774,7 @@ ftl_alloc_sys_blk: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1187 + ldr r3, .L1189 stmfd sp!, {r4, lr} .save {r4, lr} ldr r2, [r3, #2288] @@ -6816,32 +6785,32 @@ ftl_alloc_sys_blk: strhih r3, [r2, #136] @ movhi ldrh r3, [r2, #112] cmp r3, #0 - bne .L1178 - ldr r1, .L1187+4 - movw r2, #1140 - ldr r0, .L1187+8 + bne .L1180 + ldr r1, .L1189+4 + movw r2, #1150 + ldr r0, .L1189+8 bl printk bl dump_stack -.L1178: +.L1180: ldr r3, [r4, #2288] movw lr, #65535 mov ip, #0 -.L1182: +.L1184: ldrh r2, [r3, #136] add r1, r2, #79 add r1, r3, r1, asl #1 -.L1179: +.L1181: cmp r2, #63 - bgt .L1186 + bgt .L1188 ldrh r0, [r1, #2]! cmp r0, lr - bne .L1184 + bne .L1186 add r2, r2, #1 - b .L1179 -.L1186: + b .L1181 +.L1188: strh ip, [r3, #136] @ movhi - b .L1182 -.L1184: + b .L1184 +.L1186: add r1, r3, r2, asl #1 mvn ip, #0 strh ip, [r1, #160] @ movhi @@ -6850,9 +6819,9 @@ ftl_alloc_sys_blk: add r2, r2, ip strh r2, [r3, #112] @ movhi ldmfd sp!, {r4, pc} -.L1188: +.L1190: .align 2 -.L1187: +.L1189: .word .LANCHOR0 .word .LANCHOR1+1232 .word .LC0 @@ -6868,7 +6837,7 @@ ftl_free_sys_blk: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r3, .L1199 + ldr r3, .L1201 ldr r2, [r3, #2288] mov r4, r3 ldrh r1, [r2, #138] @@ -6877,26 +6846,26 @@ ftl_free_sys_blk: strhih r3, [r2, #138] @ movhi ldrh r3, [r2, #112] cmp r3, #63 - bls .L1191 - ldr r1, .L1199+4 - movw r2, #1164 - ldr r0, .L1199+8 + bls .L1193 + ldr r1, .L1201+4 + movw r2, #1174 + ldr r0, .L1201+8 bl printk bl dump_stack -.L1191: +.L1193: ldr r3, [r4, #2288] movw ip, #65535 mov r0, #0 -.L1195: +.L1197: ldrh r2, [r3, #138] add r1, r2, #79 add r1, r3, r1, asl #1 -.L1192: +.L1194: cmp r2, #63 - bgt .L1198 + bgt .L1200 ldrh lr, [r1, #2]! cmp lr, ip - bne .L1193 + bne .L1195 add r1, r3, r2, asl #1 strh r5, [r1, #160] @ movhi strh r2, [r3, #138] @ movhi @@ -6904,15 +6873,15 @@ ftl_free_sys_blk: add r2, r2, #1 strh r2, [r3, #112] @ movhi ldmfd sp!, {r3, r4, r5, pc} -.L1193: +.L1195: add r2, r2, #1 - b .L1192 -.L1198: - strh r0, [r3, #138] @ movhi - b .L1195 + b .L1194 .L1200: + strh r0, [r3, #138] @ movhi + b .L1197 +.L1202: .align 2 -.L1199: +.L1201: .word .LANCHOR0 .word .LANCHOR1+1252 .word .LC0 @@ -6931,7 +6900,7 @@ ftl_info_data_recovery: ldrh r6, [r0] cmp r6, r3 ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} - ldr r4, .L1211 + ldr r4, .L1213 mov r8, r6, asl #2 ldr r5, [r4, #568] add r7, r5, r8 @@ -6949,7 +6918,7 @@ ftl_info_data_recovery: ldrneh r3, [r2, #116] subne r3, r3, #1 strneh r3, [r2, #116] @ movhi - bne .L1206 + bne .L1208 tst r3, #24 ldreqh r3, [r2, #114] ldrneh r3, [r2, #118] @@ -6957,11 +6926,11 @@ ftl_info_data_recovery: subne r3, r3, #1 streqh r3, [r2, #114] @ movhi strneh r3, [r2, #118] @ movhi -.L1206: +.L1208: ldrb r3, [r7, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #160 - bne .L1208 + bne .L1210 ldr r3, [r5, r6, asl #2] ubfx r2, r3, #11, #8 add r2, r2, #1 @@ -6972,29 +6941,29 @@ ftl_info_data_recovery: sub r3, r3, #1 strh r3, [r2, #120] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1208: +.L1210: 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 .L1209 + bne .L1211 ldr r2, [r4, #2288] ldrh r3, [r2, #122] sub r3, r3, #1 strh r3, [r2, #122] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1209: +.L1211: cmp r3, #96 ldreq r2, [r4, #2288] ldreqh r3, [r2, #124] subeq r3, r3, #1 streqh r3, [r2, #124] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1212: +.L1214: .align 2 -.L1211: +.L1213: .word .LANCHOR0 .fnend .size ftl_info_data_recovery, .-ftl_info_data_recovery @@ -7008,7 +6977,7 @@ ftl_get_ppa_from_index: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r4, r0 - ldr r6, .L1218 + ldr r6, .L1220 add r3, r6, #2960 ldrb r2, [r6, #2964] @ zero_extendqisi2 ldrh r3, [r3] @@ -7032,20 +7001,20 @@ ftl_get_ppa_from_index: add r5, r5, r4, asl #1 ldrh r4, [r5, #16] cmp r4, r3 - bne .L1216 - ldr r1, .L1218+4 - movw r2, #1686 - ldr r0, .L1218+8 + bne .L1218 + ldr r1, .L1220+4 + mov r2, #1696 + ldr r0, .L1220+8 bl printk bl dump_stack -.L1216: +.L1218: movw r3, #2994 ldrh r0, [r6, r3] mla r0, r0, r4, r8 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1219: +.L1221: .align 2 -.L1218: +.L1220: .word .LANCHOR0 .word .LANCHOR1+1272 .word .LC0 @@ -7059,8 +7028,8 @@ lpa_hash_get_ppa: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 uxtb r3, r0 - ldr r2, .L1226 - ldr r1, .L1226+4 + ldr r2, .L1228 + ldr r1, .L1228+4 mov r3, r3, asl #1 str lr, [sp, #-4]! .save {lr} @@ -7068,25 +7037,25 @@ lpa_hash_get_ppa: ldr ip, [r2, #3516] ldr r1, [r2, #3512] movw r2, #65535 -.L1221: +.L1223: cmp r3, r2 - beq .L1225 + beq .L1227 ldr lr, [r1, r3, asl #2] cmp lr, r0 - bne .L1222 + bne .L1224 mov r0, r3 ldr lr, [sp], #4 b ftl_get_ppa_from_index -.L1222: +.L1224: mov r3, r3, asl #1 ldrh r3, [ip, r3] - b .L1221 -.L1225: + b .L1223 +.L1227: mvn r0, #0 ldr pc, [sp], #4 -.L1227: +.L1229: .align 2 -.L1226: +.L1228: .word .LANCHOR0 .word .LANCHOR0+3000 .fnend @@ -7104,44 +7073,44 @@ ftl_get_new_free_page: ldrh r2, [r0] mov r4, r0 cmp r2, r3 - bne .L1229 - ldr r1, .L1238 - movw r2, #1809 - ldr r0, .L1238+4 - bl printk - bl dump_stack -.L1229: - ldr r3, .L1238+8 - ldrh r2, [r4, #2] - ldrh r3, [r3] - cmp r2, r3 - bne .L1230 - ldr r1, .L1238 - movw r2, #1810 - ldr r0, .L1238+4 - bl printk - bl dump_stack -.L1230: - ldrh r3, [r4, #6] - cmp r3, #0 bne .L1231 - ldr r1, .L1238 - movw r2, #1811 - ldr r0, .L1238+4 + ldr r1, .L1240 + movw r2, #1819 + ldr r0, .L1240+4 bl printk bl dump_stack .L1231: + ldr r3, .L1240+8 + ldrh r2, [r4, #2] + ldrh r3, [r3] + cmp r2, r3 + bne .L1232 + ldr r1, .L1240 + movw r2, #1820 + ldr r0, .L1240+4 + bl printk + bl dump_stack +.L1232: + ldrh r3, [r4, #6] + cmp r3, #0 + bne .L1233 + ldr r1, .L1240 + movw r2, #1821 + ldr r0, .L1240+4 + bl printk + bl dump_stack +.L1233: ldrb r3, [r4, #5] @ zero_extendqisi2 movw r2, #65535 - ldr r1, .L1238+12 + ldr r1, .L1240+12 mov lr, #0 add r3, r4, r3, asl #1 ldrb r0, [r1, #2964] @ zero_extendqisi2 ldrh ip, [r3, #16] -.L1232: +.L1234: cmp ip, r2 ldrb r3, [r4, #5] @ zero_extendqisi2 - bne .L1237 + bne .L1239 add r3, r3, #1 uxtb r3, r3 strb r3, [r4, #5] @@ -7153,8 +7122,8 @@ ftl_get_new_free_page: ldrb r3, [r4, #5] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh ip, [r3, #16] - b .L1232 -.L1237: + b .L1234 +.L1239: movw r0, #2994 add r3, r3, #1 ldrh r0, [r1, r0] @@ -7176,9 +7145,9 @@ ftl_get_new_free_page: streqh r2, [r4, #2] @ movhi streqb r3, [r4, #5] ldmfd sp!, {r4, pc} -.L1239: +.L1241: .align 2 -.L1238: +.L1240: .word .LANCHOR1+1296 .word .LC0 .word .LANCHOR0+2960 @@ -7200,14 +7169,14 @@ ftl_ext_alloc_new_blk: mov r4, r0 uxth r3, r3 cmp r3, r2 - bls .L1241 - ldr r1, .L1243 - movw r2, #1842 - ldr r0, .L1243+4 + bls .L1243 + ldr r1, .L1245 + movw r2, #1852 + ldr r0, .L1245+4 bl printk bl dump_stack -.L1241: - ldr r5, .L1243+8 +.L1243: + ldr r5, .L1245+8 mov r1, #0 mov r0, r4 bl ftl_erase_phy_blk @@ -7219,9 +7188,9 @@ ftl_ext_alloc_new_blk: strh r4, [r3, #130] @ movhi strh r0, [r3, #140] @ movhi ldmfd sp!, {r3, r4, r5, pc} -.L1244: +.L1246: .align 2 -.L1243: +.L1245: .word .LANCHOR1+1320 .word .LC0 .word .LANCHOR0 @@ -7234,7 +7203,7 @@ ftl_total_vpn_update: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1258 + ldr r3, .L1260 add r1, r3, #3520 ldrh r2, [r1] cmp r2, #4 @@ -7254,21 +7223,21 @@ ftl_total_vpn_update: ldr r1, [r3, #576] add lr, r2, lr, asl #2 sub r1, r1, #2 -.L1248: +.L1250: cmp r2, lr - beq .L1257 + beq .L1259 ldrh r4, [r1, #2]! cmp r4, r6 - beq .L1249 + beq .L1251 ldrb r5, [r2, #2] @ zero_extendqisi2 and r5, r5, #224 cmp r5, #160 addeq r0, r0, r4 addne ip, ip, r4 -.L1249: +.L1251: add r2, r2, #4 - b .L1248 -.L1257: + b .L1250 +.L1259: ldr r4, [r3, #580] ldr r3, [r3, #2288] str ip, [r4, #524] @@ -7279,9 +7248,9 @@ ftl_total_vpn_update: bl __aeabi_uidiv str r0, [r4, #532] ldmfd sp!, {r4, r5, r6, pc} -.L1259: +.L1261: .align 2 -.L1258: +.L1260: .word .LANCHOR0 .fnend .size ftl_total_vpn_update, .-ftl_total_vpn_update @@ -7308,7 +7277,7 @@ ftl_vpn_update: .save {r4, lr} mov r4, r0 bl zftl_list_update_data_list - ldr r3, .L1265 + ldr r3, .L1267 mov r4, r4, asl #1 ldr r2, [r3, #576] ldrh r2, [r2, r4] @@ -7317,9 +7286,9 @@ ftl_vpn_update: movne r0, #0 streq r0, [r3, #2304] ldmfd sp!, {r4, pc} -.L1266: +.L1268: .align 2 -.L1265: +.L1267: .word .LANCHOR0 .fnend .size ftl_vpn_update, .-ftl_vpn_update @@ -7335,39 +7304,39 @@ ftl_vpn_decrement: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldr r6, .L1277 - beq .L1268 + ldr r6, .L1279 + beq .L1270 ldr r2, [r6, #576] mov r3, r0, asl #1 ldrh r4, [r2, r3] cmp r4, #0 subne r4, r4, #1 strneh r4, [r2, r3] @ movhi - bne .L1268 + bne .L1270 ldr r3, [r6, #568] mov r1, r5 mov r2, r4 add r3, r3, r0, asl #2 - ldr r0, .L1277+4 + ldr r0, .L1279+4 ldrb r3, [r3, #2] @ zero_extendqisi2 mov r3, r3, lsr #5 bl printk mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1268: +.L1270: movw r3, #2908 - ldr r4, .L1277 + ldr r4, .L1279 ldrh r0, [r6, r3] cmp r0, r5 - beq .L1274 + beq .L1276 movw r2, #65535 cmp r0, r2 streqh r5, [r4, r3] @ movhi - beq .L1274 + beq .L1276 bl ftl_vpn_update movw r2, #3522 ldrh r3, [r4, r2] - ldr r1, .L1277+8 + ldr r1, .L1279+8 add r3, r3, #1 uxth r3, r3 adds r0, r0, #0 @@ -7383,12 +7352,12 @@ ftl_vpn_decrement: mov r3, r3, asl #1 strh ip, [r1, r3] @ movhi ldmfd sp!, {r4, r5, r6, pc} -.L1274: +.L1276: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L1278: +.L1280: .align 2 -.L1277: +.L1279: .word .LANCHOR0 .word .LC104 .word .LANCHOR0+2912 @@ -7404,22 +7373,22 @@ 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, .L1291 + ldr r3, .L1293 movw r4, #65535 - ldr ip, .L1291+4 + ldr ip, .L1293+4 mov r6, r6, asl #1 mov r8, r4 ldr r7, [r3, #3512] ldrh lr, [ip, r6] ldr r9, [r3, #3516] -.L1280: +.L1282: cmp lr, r8 - beq .L1284 + beq .L1286 ldr r5, [r7, lr, asl #2] add r10, r7, lr, asl #2 cmp r5, r0 mov r5, lr, asl #1 - bne .L1281 + bne .L1283 mvn lr, #0 str lr, [r10] movw lr, #65535 @@ -7433,22 +7402,22 @@ lpa_hash_update_ppa: mvn r4, #0 ldr lr, [r3, #3516] strh r4, [lr, r5] @ movhi - b .L1284 -.L1281: + b .L1286 +.L1283: mov r4, lr ldrh lr, [r9, r5] - b .L1280 -.L1284: + b .L1282 +.L1286: ldr r4, [r3, #3512] cmn r1, #1 - ldr lr, .L1291 + ldr lr, .L1293 str r0, [r4, r2, asl #2] ldrh r0, [ip, r6] ldr r3, [r3, #3516] strh r2, [ip, r6] @ movhi mov r2, r2, asl #1 strh r0, [r3, r2] @ movhi - beq .L1286 + beq .L1288 add r3, lr, #2928 ldrh r0, [r3] ldrb r3, [lr, #676] @ zero_extendqisi2 @@ -7461,12 +7430,12 @@ lpa_hash_update_ppa: bl __aeabi_uidiv uxth r0, r0 bl ftl_vpn_decrement -.L1286: +.L1288: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1292: +.L1294: .align 2 -.L1291: +.L1293: .word .LANCHOR0 .word .LANCHOR0+3000 .fnend @@ -7478,7 +7447,7 @@ ftl_mask_bad_block: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1301 + ldr r2, .L1303 mov r3, #1 stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} @@ -7507,18 +7476,18 @@ ftl_mask_bad_block: uxth r7, r0 addhi r3, r6, r3 uxtbhi r6, r3 - ldr r3, .L1301+4 + ldr r3, .L1303+4 ldr r3, [r3] tst r3, #16384 - beq .L1295 + beq .L1297 str r8, [sp] mov r1, r4 - ldr r0, .L1301+8 + ldr r0, .L1303+8 mov r2, r6 mov r3, r7 bl printk -.L1295: - ldr r3, .L1301 +.L1297: + ldr r3, .L1303 add r2, r3, #564 ldrh r2, [r2] cmp r2, r7 @@ -7531,9 +7500,9 @@ ftl_mask_bad_block: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1302: +.L1304: .align 2 -.L1301: +.L1303: .word .LANCHOR0 .word .LANCHOR2 .word .LC105 @@ -7549,20 +7518,20 @@ 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, .L1318 + ldr r10, .L1320 ldr r3, [r10, #2892] cmp r3, #0 - beq .L1314 - ldr r7, .L1318+4 + beq .L1316 + ldr r7, .L1320+4 mov r9, r0 mov fp, #0 mov r8, r7 -.L1304: +.L1306: ldrb r3, [r10, #2964] @ zero_extendqisi2 uxth r0, fp - ldr r6, .L1318 + ldr r6, .L1320 cmp r3, r0 - bls .L1314 + bls .L1316 ldrb r2, [r6, #2930] @ zero_extendqisi2 add r6, r6, #2928 mov r1, r2 @@ -7573,7 +7542,7 @@ gc_free_bad_sblk: smulbb r5, r9, r4 ldrh r1, [r6] rsb r3, r3, #24 - ldr ip, .L1318 + ldr ip, .L1320 rsb r3, r1, r3 ldr r2, [sp] add r0, r5, r0, asl r3 @@ -7584,18 +7553,18 @@ gc_free_bad_sblk: andhi r4, r4, fp addhi r5, r5, r4 uxthhi r5, r5 -.L1306: +.L1308: ldr r3, [r10, #2892] uxth r4, r2 cmp r4, r3 - bcs .L1316 + bcs .L1318 add r3, r4, #292 mov r3, r3, asl #1 ldrh r3, [r7, r3] cmp r3, r5 - bne .L1307 + bne .L1309 mov r1, r5 - ldr r0, .L1318+8 + ldr r0, .L1320+8 stmia sp, {r2, ip} bl printk ldrh r0, [r6] @@ -7604,9 +7573,9 @@ gc_free_bad_sblk: ldr ip, [sp, #4] ldr r2, [sp] ldr r1, [ip, #2892] -.L1308: +.L1310: cmp r4, r1 - bcs .L1317 + bcs .L1319 add r3, r4, #292 add r3, r3, #1 mov r3, r3, asl #1 @@ -7616,24 +7585,24 @@ gc_free_bad_sblk: mov r3, r3, asl #1 uxth r4, r4 strh r0, [r8, r3] @ movhi - b .L1308 -.L1317: + b .L1310 +.L1319: sub r1, r1, #1 str r1, [r10, #2892] -.L1307: +.L1309: add r2, r2, #1 + b .L1308 +.L1318: + add fp, fp, #1 b .L1306 .L1316: - add fp, fp, #1 - b .L1304 -.L1314: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1319: +.L1321: .align 2 -.L1318: +.L1320: .word .LANCHOR0 .word .LANCHOR0+2312 .word .LC106 @@ -7649,7 +7618,7 @@ ftl_free_sblk: 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, .L1342 + ldr r5, .L1344 .pad #20 sub sp, sp, #20 mov r6, r0 @@ -7659,7 +7628,7 @@ ftl_free_sblk: tst r4, #8 mov r3, r4, lsr #5 str r3, [sp] - beq .L1322 + beq .L1324 ldr r8, [r5, #2288] add r1, r5, #572 ldrh fp, [r7, r2] @@ -7686,7 +7655,7 @@ ftl_free_sblk: uxtah r0, r3, r0 ldr r2, [sp, #12] cmp r0, r1 - ble .L1323 + ble .L1325 movw r3, #2282 movw r1, #2274 ldrh r3, [r5, r3] @@ -7696,7 +7665,7 @@ ftl_free_sblk: ldrh r3, [r3] add r3, r3, #8 cmp r1, r3 - blt .L1329 + blt .L1331 add r1, r5, #2272 movw r3, #2278 ldrh r3, [r5, r3] @@ -7708,13 +7677,13 @@ ftl_free_sblk: movw r1, #3526 ldrh r1, [r5, r1] add r1, r1, #8 - b .L1341 -.L1323: + b .L1343 +.L1325: mla r3, r8, r3, ip movw r1, #3528 ldrh r1, [r5, r1] cmp r3, r1 - ble .L1325 + ble .L1327 add r1, r5, #2272 movw r3, #2278 ldrh r3, [r5, r3] @@ -7727,7 +7696,7 @@ ftl_free_sblk: ldrh r1, [r5, r1] add r0, r1, #8 cmp r3, r0 - blt .L1339 + blt .L1341 movw r0, #2282 ldrh ip, [r5, r0] movw r0, #2274 @@ -7737,23 +7706,23 @@ ftl_free_sblk: ldrh ip, [r5] add ip, ip, #8 cmp r0, ip - blt .L1329 + blt .L1331 add r1, r1, #24 -.L1341: +.L1343: cmp r3, r1 - bge .L1329 -.L1339: + bge .L1331 +.L1341: bfc r4, #3, #2 - b .L1338 -.L1329: + b .L1340 +.L1331: mov r3, #2 bfi r4, r3, #3, #2 -.L1338: +.L1340: strb r4, [r9, #2] -.L1325: +.L1327: ldrb r3, [r9, #2] @ zero_extendqisi2 ands r3, r3, #24 - bne .L1330 + bne .L1332 mul r8, r8, r10 ldrh r3, [r7, r2] mov r10, r10, lsr #3 @@ -7764,10 +7733,10 @@ ftl_free_sblk: ldr r4, [r7, r6, asl #2] bfi r4, r10, #11, #8 str r4, [r7, r6, asl #2] - b .L1322 -.L1330: + b .L1324 +.L1332: cmp r3, #16 - bne .L1322 + bne .L1324 mov r0, fp mov r1, r8 str r2, [sp, #4] @@ -7782,11 +7751,11 @@ ftl_free_sblk: ldrh r3, [r7, r2] bfi r3, fp, #0, #11 strh r3, [r7, r2] @ movhi -.L1322: +.L1324: mov r0, r6 str r2, [sp, #4] bl zftl_remove_data_node - ldr r3, .L1342 + ldr r3, .L1344 mov r0, #0 ldr r1, [r3, #568] mov r4, r3 @@ -7802,41 +7771,41 @@ ftl_free_sblk: add r1, r2, #6 and r1, r1, #7 cmp r1, #4 - bhi .L1332 + bhi .L1334 mov r0, r6 bl gc_free_bad_sblk -.L1332: +.L1334: ldrb r3, [r9, #2] @ zero_extendqisi2 tst r3, #8 - beq .L1333 + beq .L1335 ldr r3, [r4, #580] movw r2, #586 ldrh r1, [r3, r2] cmp r1, r6 - bne .L1333 + bne .L1335 mvn r1, #0 strh r1, [r3, r2] @ movhi movw r2, #590 movw r1, #65535 ldrh r0, [r3, r2] cmp r0, r1 - bne .L1333 + bne .L1335 strh r6, [r3, r2] @ movhi mov r1, r6 - ldr r0, .L1342+4 + ldr r0, .L1344+4 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b printk -.L1333: +.L1335: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b zftl_insert_free_list -.L1343: +.L1345: .align 2 -.L1342: +.L1344: .word .LANCHOR0 .word .LC107 .fnend @@ -7851,44 +7820,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, .L1383 - ldr r8, .L1383+4 + ldr r6, .L1385 + ldr r8, .L1385+4 mov r7, r6 -.L1345: +.L1347: ldrh r2, [r8, #52] uxth r3, r5 cmp r2, r3 - bls .L1382 + bls .L1384 add r3, r8, r3, asl #1 ldrh r4, [r3, #54] ldr r3, [r6, #576] mov r9, r4, asl #1 ldrh r2, [r3, r9] cmp r2, #0 - beq .L1346 - ldr r0, .L1383+8 + beq .L1348 + ldr r0, .L1385+8 mov r1, r4 bl printk -.L1346: +.L1348: ldr r3, [r7, #576] mov r2, #0 strh r2, [r3, r9] @ movhi ldr r3, [r7, #576] ldrh r3, [r3, r9] cmp r3, r2 - bne .L1347 - ldr r3, .L1383+12 + bne .L1349 + ldr r3, .L1385+12 ldr r9, [r6, #568] ldr r3, [r3] add r9, r9, r4, asl #2 tst r3, #256 - beq .L1348 + beq .L1350 ldrb r2, [r9, #2] @ zero_extendqisi2 mov r1, r4 - ldr r0, .L1383+16 + ldr r0, .L1385+16 mov r2, r2, lsr #5 bl printk -.L1348: +.L1350: ldrb r3, [r9, #2] @ zero_extendqisi2 tst r3, #192 and r3, r3, #224 @@ -7898,95 +7867,95 @@ gc_free_src_blk: movne r3, r2 orreq r3, r2, #1 cmp r3, #0 - beq .L1349 - ldr r1, .L1383+20 + beq .L1351 + ldr r1, .L1385+20 movw r2, #1115 - ldr r0, .L1383+24 + ldr r0, .L1385+24 bl printk bl dump_stack -.L1349: +.L1351: mov r0, r4 bl ftl_free_sblk ldr r3, [r7, #580] ldrh r1, [r3, #124] cmp r1, #0 - beq .L1350 + beq .L1352 add r0, r3, #388 mov r2, #0 add r0, r0, #2 -.L1352: +.L1354: ldrh ip, [r0, #2]! cmp ip, r4 - bne .L1351 + bne .L1353 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 .L1350 -.L1351: + b .L1352 +.L1353: add r2, r2, #1 cmp r2, #64 - bne .L1352 -.L1350: + bne .L1354 +.L1352: ldrh r1, [r3, #120] cmp r1, #0 - beq .L1353 + beq .L1355 add r0, r3, #134 mov r2, #0 -.L1355: +.L1357: ldrh ip, [r0, #2]! cmp ip, r4 - bne .L1354 + bne .L1356 add r2, r3, r2, asl #1 mvn r0, #0 add r1, r1, r0 strh r0, [r2, #136] @ movhi strh r1, [r3, #120] @ movhi - b .L1353 -.L1354: + b .L1355 +.L1356: add r2, r2, #1 cmp r2, #64 - bne .L1355 -.L1353: + bne .L1357 +.L1355: ldrh r0, [r3, #122] cmp r0, #0 - beq .L1356 + beq .L1358 add r1, r3, #260 mov r2, #0 add r1, r1, #2 -.L1358: +.L1360: ldrh ip, [r1, #2]! cmp ip, r4 - bne .L1357 + bne .L1359 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 .L1356 -.L1357: + b .L1358 +.L1359: add r2, r2, #1 cmp r2, #64 - bne .L1358 - b .L1356 -.L1347: + bne .L1360 + b .L1358 +.L1349: mov r0, r4 mov r1, #1 bl gc_add_sblk -.L1356: +.L1358: add r5, r5, #1 - b .L1345 -.L1382: - ldr r3, .L1383+4 + b .L1347 +.L1384: + ldr r3, .L1385+4 mov r2, #0 strh r2, [r3, #52] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1384: +.L1386: .align 2 -.L1383: +.L1385: .word .LANCHOR0 .word .LANCHOR0+2312 .word .LC108 @@ -8006,7 +7975,7 @@ print_ftl_debug_info: stmfd sp!, {r4, lr} .save {r4, lr} movw ip, #2274 - ldr r4, .L1387 + ldr r4, .L1389 .pad #32 sub sp, sp, #32 ldr r3, [r4, #2288] @@ -8035,11 +8004,11 @@ print_ftl_debug_info: str r0, [sp, #24] ldr r0, [r4, #2268] str r0, [sp, #28] - ldr r0, .L1387+4 + ldr r0, .L1389+4 bl printk ldr r2, [r4, #2288] ldrb r3, [r4, #2285] @ zero_extendqisi2 - ldr r0, .L1387+8 + ldr r0, .L1389+8 ldr r1, [r2, #8] str r1, [sp] ldr r1, [r2, #64] @@ -8048,7 +8017,7 @@ print_ftl_debug_info: ldr r2, [r2, #28] bl printk ldr r2, [r4, #2288] - ldr r0, .L1387+12 + ldr r0, .L1389+12 ldr r3, [r2, #16] ldr r1, [r2, #52] ldr r2, [r2, #60] @@ -8071,7 +8040,7 @@ print_ftl_debug_info: str r0, [sp, #20] ldrh r0, [r2, #98] str r0, [sp, #24] - ldr r0, .L1387+16 + ldr r0, .L1389+16 ldr r2, [r2, #84] bl printk movw r0, #2300 @@ -8086,7 +8055,7 @@ print_ftl_debug_info: movw r0, #2292 ldrh r0, [r4, r0] str r0, [sp, #4] - ldr r0, .L1387+20 + ldr r0, .L1389+20 bl printk ldr r0, [r4, #580] movw lr, #590 @@ -8103,14 +8072,14 @@ print_ftl_debug_info: str r0, [sp, #4] ldrh r0, [ip, #150] str r0, [sp, #8] - ldr r0, .L1387+24 + ldr r0, .L1389+24 bl printk add sp, sp, #32 @ sp needed ldmfd sp!, {r4, pc} -.L1388: +.L1390: .align 2 -.L1387: +.L1389: .word .LANCHOR0 .word .LC110 .word .LC111 @@ -8130,42 +8099,42 @@ ftl_write_buf: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} subs r4, r0, #0 - bne .L1390 - ldr r1, .L1401 + bne .L1392 + ldr r1, .L1403 mov r2, #676 - ldr r0, .L1401+4 + ldr r0, .L1403+4 bl printk bl dump_stack bl print_ftl_debug_info mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L1390: - ldr r5, .L1401+8 +.L1392: + ldr r5, .L1403+8 ldrb r2, [r4, #40] @ zero_extendqisi2 ldrb r3, [r5, #2260] @ zero_extendqisi2 cmp r2, r3 - bls .L1395 - ldr r1, .L1401 + bls .L1397 + ldr r1, .L1403 movw r2, #681 - ldr r0, .L1401+4 + ldr r0, .L1403+4 bl printk bl dump_stack -.L1395: +.L1397: ldrb r3, [r4, #40] @ zero_extendqisi2 cmp r3, #0 - beq .L1392 + beq .L1394 ldrb r2, [r5, #2260] @ zero_extendqisi2 - ldr r6, .L1401+8 + ldr r6, .L1403+8 cmp r2, r3 - bcs .L1393 -.L1392: + bcs .L1395 +.L1394: mov r0, r4 bl zbuf_free ldrb r0, [r5, #2284] @ zero_extendqisi2 ldmfd sp!, {r4, r5, r6, pc} -.L1393: +.L1395: mov r1, r4 - ldr r0, .L1401+12 + ldr r0, .L1403+12 bl buf_add_tail ldr r3, [r6, #2288] ldrb r1, [r4, #40] @ zero_extendqisi2 @@ -8180,9 +8149,9 @@ ftl_write_buf: add r2, r2, #1 str r2, [r3, #32] ldmfd sp!, {r4, r5, r6, pc} -.L1402: +.L1404: .align 2 -.L1401: +.L1403: .word .LANCHOR1+1360 .word .LC0 .word .LANCHOR0 @@ -8199,13 +8168,13 @@ 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, .L1415 + ldr r6, .L1417 add r9, r6, #724 mov r8, r6 -.L1404: +.L1406: ldrb r10, [r6, #3530] @ zero_extendqisi2 cmp r10, #255 - beq .L1414 + beq .L1416 mov r4, #48 mul r4, r4, r10 add r7, r9, r4 @@ -8215,8 +8184,8 @@ ftl_write_completed: strb r3, [r6, #3530] ldr r3, [r4, #760] cmn r3, #1 - bne .L1405 - ldr r3, .L1415+4 + bne .L1407 + ldr r3, .L1417+4 ldr r2, [r4, #748] ldrb r1, [r6, #2930] @ zero_extendqisi2 ldrh r0, [r3] @@ -8234,7 +8203,7 @@ ftl_write_completed: uxth r5, r0 streq r5, [r3, #560] ldreq r2, [r4, #748] - ldr r0, .L1415+8 + ldr r0, .L1417+8 mov r1, r5 streq r2, [r3, #564] mov r3, #48 @@ -8250,28 +8219,28 @@ ftl_write_completed: cmp r2, r5 moveq r2, #0 streqh r2, [r3, #22] @ movhi - beq .L1408 + beq .L1410 ldrh r2, [r3, #48] cmp r2, r5 moveq r2, #0 streqh r2, [r3, #54] @ movhi -.L1408: +.L1410: mov r0, r7 mov r5, #1 bl ftl_write_buf - b .L1404 -.L1405: + b .L1406 +.L1407: cmp r5, #1 add r3, r4, #740 - bne .L1410 + bne .L1412 ldr r1, [r3, #4] ldr r2, [r4, #748] - ldr r0, .L1415+12 + ldr r0, .L1417+12 bl printk mov r0, r7 bl ftl_write_buf - b .L1404 -.L1410: + b .L1406 +.L1412: ldr r0, [r3, #4] ldr r1, [r2, #4] ldrh r2, [r7, #32] @@ -8282,15 +8251,15 @@ ftl_write_completed: bicne r3, r3, #2 strneb r3, [r4, #726] movne r5, #0 - bne .L1404 + bne .L1406 mov r0, r7 bl zbuf_free - b .L1404 -.L1414: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + b .L1406 .L1416: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L1418: .align 2 -.L1415: +.L1417: .word .LANCHOR0 .word .LANCHOR0+2928 .word .LC116 @@ -8307,36 +8276,36 @@ zftl_add_read_buf: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} subs r5, r0, #0 - bne .L1418 - ldr r1, .L1423 + bne .L1420 + ldr r1, .L1425 mov r2, #972 - ldr r0, .L1423+4 + ldr r0, .L1425+4 bl printk bl dump_stack ldmfd sp!, {r3, r4, r5, lr} b print_ftl_debug_info -.L1418: - ldr r4, .L1423+8 +.L1420: + ldr r4, .L1425+8 ldrb r2, [r5, #40] @ zero_extendqisi2 ldrb r3, [r4, #2260] @ zero_extendqisi2 cmp r2, r3 - bls .L1420 - ldr r1, .L1423 + bls .L1422 + ldr r1, .L1425 movw r2, #977 - ldr r0, .L1423+4 + ldr r0, .L1425+4 bl printk bl dump_stack -.L1420: - ldr r0, .L1423+12 +.L1422: + ldr r0, .L1425+12 mov r1, r5 bl buf_add_tail ldrb r3, [r4, #3532] @ zero_extendqisi2 add r3, r3, #1 strb r3, [r4, #3532] ldmfd sp!, {r3, r4, r5, pc} -.L1424: +.L1426: .align 2 -.L1423: +.L1425: .word .LANCHOR1+1376 .word .LC0 .word .LANCHOR0 @@ -8363,19 +8332,19 @@ ftl_alloc_sblk: movw r3, #65535 cmp r0, r3 mov r4, r0 - beq .L1427 - ldr r3, .L1436 + beq .L1429 + ldr r3, .L1438 ldr r6, [r3, #568] add r6, r6, r0, asl #2 ldrb r3, [r6, #2] @ zero_extendqisi2 tst r3, #224 - beq .L1428 - ldr r1, .L1436+4 - mov r2, #836 - ldr r0, .L1436+8 + beq .L1430 + ldr r1, .L1438+4 + movw r2, #846 + ldr r0, .L1438+8 bl printk bl dump_stack -.L1428: +.L1430: ldrb r3, [r6, #2] @ zero_extendqisi2 bfi r3, r5, #5, #3 uxtb r3, r3 @@ -8383,33 +8352,33 @@ ftl_alloc_sblk: orr r2, r7, r2 bfi r3, r2, #3, #2 strb r3, [r6, #2] - b .L1435 -.L1427: + b .L1437 +.L1429: bl print_ftl_debug_info mov r1, r4 mov r2, r5 - ldr r0, .L1436+12 + ldr r0, .L1438+12 bl printk mov r1, r6 mov r0, #0 bl zftl_get_free_sblk mov r2, r5 mov r4, r0 - ldr r0, .L1436+12 + ldr r0, .L1438+12 mov r1, r4 bl printk bl dump_all_list_info - ldr r1, .L1436+4 - movw r2, #846 - ldr r0, .L1436+8 + ldr r1, .L1438+4 + mov r2, #856 + ldr r0, .L1438+8 bl printk bl dump_stack -.L1435: +.L1437: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1437: +.L1439: .align 2 -.L1436: +.L1438: .word .LANCHOR0 .word .LANCHOR1+1396 .word .LC0 @@ -8424,7 +8393,7 @@ sblk_init: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1439 + ldr r3, .L1441 mvn r2, #0 mov r0, #0 strb r2, [r3, #2263] @@ -8432,9 +8401,9 @@ sblk_init: strb r2, [r3, #3533] strb r2, [r3, #2936] bx lr -.L1440: +.L1442: .align 2 -.L1439: +.L1441: .word .LANCHOR0 .fnend .size sblk_init, .-sblk_init @@ -8447,8 +8416,8 @@ dump_sblk_queue: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r5, .L1451 - ldr r0, .L1451+4 + ldr r5, .L1453 + ldr r0, .L1453+4 ldrb r1, [r5, #2263] @ zero_extendqisi2 bl printk ldrb r4, [r5, #2263] @ zero_extendqisi2 @@ -8458,20 +8427,20 @@ dump_sblk_queue: mov r3, #48 mov r6, r3 mla r4, r3, r4, r5 -.L1443: +.L1445: ldrb r1, [r4, #1] @ zero_extendqisi2 ldrb r2, [r4, #42] @ zero_extendqisi2 ldr r3, [r4, #24] - ldr r0, .L1451+8 + ldr r0, .L1453+8 bl printk ldrb r4, [r4] @ zero_extendqisi2 cmp r4, #255 ldmeqfd sp!, {r4, r5, r6, pc} mla r4, r6, r4, r5 - b .L1443 -.L1452: + b .L1445 +.L1454: .align 2 -.L1451: +.L1453: .word .LANCHOR0 .word .LC119 .word .LC120 @@ -8484,12 +8453,12 @@ queue_lun_state: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L1469 + 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 .L1461 + beq .L1463 add r4, ip, #2928 ldrb r3, [ip, #676] @ zero_extendqisi2 mov r2, #1 @@ -8509,52 +8478,52 @@ queue_lun_state: uxth r4, r4 and r5, r4, r0, asr r8 and r5, r5, r2 -.L1460: +.L1462: mla r0, r9, lr, ip ldr r6, [r0, #748] and fp, r3, r6, lsr r7 cmp fp, r10 - bne .L1455 + bne .L1457 and r6, r4, r6, lsr r8 ldrb r0, [r0, #766] @ zero_extendqisi2 and r6, r6, r2 cmp r6, r5 - bne .L1456 + bne .L1458 cmp r1, #1 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} sub r6, r0, #7 tst r6, #253 - beq .L1455 + beq .L1457 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1456: +.L1458: cmp r1, #3 ldrls pc, [pc, r1, asl #2] - b .L1455 -.L1457: - .word .L1454 - .word .L1458 - .word .L1459 - .word .L1454 -.L1458: + b .L1457 +.L1459: + .word .L1456 + .word .L1460 + .word .L1461 + .word .L1456 +.L1460: sub r6, r0, #7 tst r6, #253 - beq .L1455 + beq .L1457 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1459: +.L1461: cmp r0, #11 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1455: +.L1457: mla lr, r9, lr, ip ldrb lr, [lr, #724] @ zero_extendqisi2 cmp lr, #255 - bne .L1460 -.L1461: + bne .L1462 +.L1463: mov r0, #0 -.L1454: +.L1456: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1470: +.L1472: .align 2 -.L1469: +.L1471: .word .LANCHOR0 .fnend .size queue_lun_state, .-queue_lun_state @@ -8565,7 +8534,7 @@ queue_remove_completed_req: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1498 + ldr r3, .L1500 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} @@ -8581,80 +8550,80 @@ queue_remove_completed_req: mov r4, r3 mov r5, r0 str r1, [sp, #4] -.L1472: +.L1474: cmp r2, #255 - beq .L1473 + beq .L1475 mla fp, r0, r2, r3 mov r1, r2 ldrb lr, [fp, #766] @ zero_extendqisi2 sub lr, lr, #12 cmp lr, #1 - bls .L1474 + bls .L1476 cmp ip, #0 - ldrne r3, .L1498 - beq .L1471 - b .L1496 -.L1474: + ldrne r3, .L1500 + beq .L1473 + b .L1498 +.L1476: mul ip, r0, r1 ldrb r2, [fp, #724] @ zero_extendqisi2 add lr, r8, ip ldrb fp, [lr, #767] @ zero_extendqisi2 strb r9, [lr, #724] cmp fp, #1 - bne .L1477 + bne .L1479 add ip, r10, ip ldrh ip, [ip, #34] cmp ip, #0 moveq ip, r7 - ldreq lr, .L1498+4 + ldreq lr, .L1500+4 ldrne ip, [sp, #4] - ldrne lr, .L1498+8 - b .L1478 -.L1477: - cmp fp, #0 - beq .L1497 + ldrne lr, .L1500+8 + b .L1480 .L1479: + cmp fp, #0 + beq .L1499 +.L1481: mov ip, #1 - b .L1472 -.L1497: + b .L1474 +.L1499: ldr ip, [lr, #744] cmn ip, #1 movne ip, r6 - ldrne lr, .L1498+12 - beq .L1479 -.L1478: + ldrne lr, .L1500+12 + beq .L1481 +.L1480: cmp ip, #255 - bne .L1483 + bne .L1485 strb r2, [r3, #2263] mov r2, #48 mla r1, r2, r1, r3 ldrb r3, [r1, #725] @ zero_extendqisi2 strb r3, [lr] - b .L1471 -.L1483: + b .L1473 +.L1485: mov lr, ip mla ip, r0, ip, r3 ldrb ip, [ip, #724] @ zero_extendqisi2 cmp ip, #255 - bne .L1483 + bne .L1485 mla r1, r5, r1, r4 mla lr, r5, lr, r4 ldrb r1, [r1, #725] @ zero_extendqisi2 strb r1, [lr, #724] - b .L1479 -.L1473: + b .L1481 +.L1475: cmp ip, #0 - beq .L1471 + beq .L1473 mvn r2, #0 -.L1496: +.L1498: strb r2, [r3, #2263] -.L1471: +.L1473: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1499: +.L1501: .align 2 -.L1498: +.L1500: .word .LANCHOR0 .word .LANCHOR0+3530 .word .LANCHOR0+2936 @@ -8672,7 +8641,7 @@ pm_alloc_new_blk: .save {r4, r5, r6, r7, lr} .pad #12 movw r1, #690 - ldr r4, .L1517 + ldr r4, .L1519 ldr r2, [r4, #2288] ldrh r3, [r2, r1] add r3, r3, #1 @@ -8680,18 +8649,18 @@ pm_alloc_new_blk: strh r3, [r2, r1] @ movhi ldrb r1, [r4, #2964] @ zero_extendqisi2 cmp r1, r3 - bls .L1501 + bls .L1503 add r3, r3, #336 mov r3, r3, asl #1 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L1502 -.L1501: - ldr r5, .L1517 -.L1514: + bne .L1504 +.L1503: + ldr r5, .L1519 +.L1516: mov r0, #1 - ldr r7, .L1517 + ldr r7, .L1519 bl ftl_alloc_sblk mov r1, #0 mov r6, r0 @@ -8702,17 +8671,17 @@ pm_alloc_new_blk: bl ftl_get_blk_list_in_sblk uxth r0, r0 cmp r0, #0 - bne .L1503 + bne .L1505 mov r1, r6 - ldr r0, .L1517+4 + ldr r0, .L1519+4 bl printk ldr r3, [r5, #568] add r6, r3, r6, asl #2 ldrb r3, [r6, #2] @ zero_extendqisi2 orr r3, r3, #224 strb r3, [r6, #2] - b .L1514 -.L1503: + b .L1516 +.L1505: ldr r3, [r7, #2288] movw r2, #690 mov r5, #0 @@ -8722,21 +8691,21 @@ pm_alloc_new_blk: add r3, r3, #2 mov r2, #1 str r2, [r7, #3536] -.L1505: +.L1507: ldrh r0, [r3, #2]! uxth r2, r5 cmp r0, r1 - beq .L1504 + beq .L1506 add r5, r5, #1 cmp r5, #128 - bne .L1505 + bne .L1507 mov r2, #227 - ldr r1, .L1517+8 - ldr r0, .L1517+12 + ldr r1, .L1519+8 + ldr r0, .L1519+12 bl printk bl dump_stack mov r2, r5 -.L1504: +.L1506: add r2, r2, #208 ldr r3, [r4, #2288] mov r2, r2, asl #1 @@ -8745,7 +8714,7 @@ pm_alloc_new_blk: ldrh r2, [r3] add r2, r2, #1 strh r2, [r3] @ movhi -.L1502: +.L1504: ldr r2, [r4, #2288] movw r3, #690 ldrh r3, [r2, r3] @@ -8756,18 +8725,18 @@ pm_alloc_new_blk: sub r3, r5, #1 uxth r3, r3 cmp r3, r2 - bls .L1507 - ldr r1, .L1517+8 + bls .L1509 + ldr r1, .L1519+8 mov r2, #232 - ldr r0, .L1517+12 + ldr r0, .L1519+12 bl printk bl dump_stack -.L1507: +.L1509: ldr r1, [r4, #2288] mov r2, #0 add r3, r1, #696 strh r2, [r3] @ movhi - ldr r2, .L1517+16 + ldr r2, .L1519+16 ldrb r3, [r4, #676] @ zero_extendqisi2 ldrh r4, [r2] rsb r3, r3, #24 @@ -8775,28 +8744,28 @@ pm_alloc_new_blk: rsb r4, r4, r3 mov r3, r5, asr r4 strh r3, [r1, r2] @ movhi - ldr r2, .L1517+20 + ldr r2, .L1519+20 add r1, r1, #692 strh r5, [r1] @ movhi ldr r2, [r2] tst r2, #4096 - beq .L1511 + beq .L1513 mvn r2, #0 uxth r3, r3 - ldr r0, .L1517+24 + ldr r0, .L1519+24 mov r1, r5 str r3, [sp] mvn r2, r2, asl r4 mov r3, r5 bl printk -.L1511: +.L1513: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L1518: +.L1520: .align 2 -.L1517: +.L1519: .word .LANCHOR0 .word .LC121 .word .LANCHOR1+1412 @@ -8813,73 +8782,73 @@ pm_select_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1534 + ldr r2, .L1536 mov r3, #0 movw ip, #65535 -.L1521: +.L1523: mov r1, r3, asl #3 uxth r0, r3 ldrh r1, [r1, r2] cmp r1, ip - ldr r1, .L1534 + ldr r1, .L1536 bxeq lr add r3, r3, #1 cmp r3, #32 - bne .L1521 + bne .L1523 mov r2, #0 mov r0, r3 mov ip, #32768 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} -.L1523: +.L1525: add r3, r1, r2, asl #3 uxth lr, r2 ldrh r3, [r3, #2] tst r3, #32768 - bne .L1522 + bne .L1524 cmp r3, ip movcc ip, r3 movcc r0, lr -.L1522: +.L1524: add r2, r2, #1 cmp r2, #32 - bne .L1523 + bne .L1525 cmp r0, #32 mov r4, r0 ldmnefd sp!, {r4, r5, r6, pc} - ldr r3, .L1534+4 + ldr r3, .L1536+4 mvn r2, #0 - ldr r5, .L1534 + ldr r5, .L1536 ldrb lr, [r3, #3796] @ zero_extendqisi2 mov r3, #0 -.L1525: +.L1527: mov ip, r3, asl #3 uxth r6, r3 add r0, r1, ip ldrh r0, [r0, #2] cmp r0, r2 - bcs .L1524 + bcs .L1526 ldrh ip, [ip, r5] cmp ip, lr movne r2, r0 movne r4, r6 -.L1524: +.L1526: add r3, r3, #1 cmp r3, #32 - bne .L1525 + bne .L1527 cmp r4, #32 - bne .L1526 - ldr r1, .L1534+8 + bne .L1528 + ldr r1, .L1536+8 movw r2, #331 - ldr r0, .L1534+12 + ldr r0, .L1536+12 bl printk bl dump_stack -.L1526: +.L1528: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1535: +.L1537: .align 2 -.L1534: +.L1536: .word .LANCHOR0+3540 .word .LANCHOR0 .word .LANCHOR1+1432 @@ -8907,29 +8876,29 @@ flash_lsb_page_tbl_build: cmp r0, #0 stmfd sp!, {r3, lr} .save {r3, lr} - bne .L1538 - ldr r3, .L1567 -.L1539: + bne .L1540 + ldr r3, .L1574 +.L1541: mov r2, r0, asl #1 strh r0, [r2, r3] @ movhi add r0, r0, #1 cmp r0, #256 - bne .L1539 -.L1543: - ldr r0, .L1567+4 + bne .L1541 +.L1545: + ldr r0, .L1574+4 mov r1, #255 mov r2, #1024 bl ftl_memset mov r3, #0 - ldr ip, .L1567 - ldr r0, .L1567+4 - b .L1540 -.L1538: + ldr ip, .L1574 + ldr r0, .L1574+4 + b .L1542 +.L1540: cmp r0, #1 - bne .L1541 - ldr ip, .L1567 + bne .L1543 + ldr ip, .L1574 mov r3, #0 -.L1542: +.L1544: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #3 @@ -8944,14 +8913,14 @@ flash_lsb_page_tbl_build: movne r2, r1 cmp r3, #256 strh r2, [lr, ip] @ movhi - bne .L1542 - b .L1543 -.L1541: - cmp r0, #2 bne .L1544 - ldr r1, .L1567 + b .L1545 +.L1543: + cmp r0, #2 + bne .L1546 + ldr r1, .L1574 mov r3, #0 -.L1545: +.L1547: uxth r2, r3 mov r0, r3, asl #1 cmp r2, #1 @@ -8960,14 +8929,14 @@ flash_lsb_page_tbl_build: subhi r2, ip, #1 cmp r3, #256 strh r2, [r0, r1] @ movhi - bne .L1545 - b .L1543 -.L1544: + bne .L1547 + b .L1545 +.L1546: cmp r0, #3 - bne .L1546 - ldr ip, .L1567 + bne .L1548 + ldr ip, .L1574 mov r3, #0 -.L1547: +.L1549: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #5 @@ -8982,13 +8951,13 @@ flash_lsb_page_tbl_build: movne r2, r1 cmp r3, #256 strh r2, [lr, ip] @ movhi - bne .L1547 - b .L1543 -.L1546: + bne .L1549 + b .L1545 +.L1548: cmp r0, #4 mov r3, #0 - bne .L1548 - ldr r2, .L1567+8 + bne .L1550 + ldr r2, .L1574+8 strh r3, [r2, #4] @ movhi mov r3, #1 strh r0, [r2, #12] @ movhi @@ -9003,7 +8972,7 @@ flash_lsb_page_tbl_build: strh r3, [r2, #16] @ movhi mov r3, #8 strh r3, [r2, #18]! @ movhi -.L1549: +.L1551: tst r3, #1 movne r1, #7 moveq r1, #6 @@ -9012,40 +8981,40 @@ flash_lsb_page_tbl_build: strh r1, [r2, #2]! @ movhi uxth r3, r3 cmp r3, #256 - bne .L1549 - b .L1543 -.L1548: + bne .L1551 + b .L1545 +.L1550: cmp r0, #5 - bne .L1550 - ldr r2, .L1567 -.L1551: + bne .L1552 + ldr r2, .L1574 +.L1553: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #16 - bne .L1551 - ldr r2, .L1567+12 -.L1552: + bne .L1553 + ldr r2, .L1574+12 +.L1554: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, #496 - bne .L1552 - b .L1543 -.L1550: + bne .L1554 + b .L1545 +.L1552: cmp r0, #8 - bne .L1553 - ldr r2, .L1567 -.L1554: + bne .L1555 + ldr r2, .L1574 +.L1556: strh r3, [r3, r2] @ movhi add r3, r3, #2 cmp r3, #512 - bne .L1554 - b .L1543 -.L1553: + bne .L1556 + b .L1545 +.L1555: cmp r0, #9 - bne .L1543 - ldr r2, .L1567+8 + bne .L1557 + ldr r2, .L1574+8 movw r1, #509 strh r3, [r2, #4] @ movhi mov r3, #1 @@ -9053,28 +9022,48 @@ flash_lsb_page_tbl_build: mov r3, #2 strh r3, [r2, #8]! @ movhi mov r3, #3 -.L1555: +.L1558: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L1555 - b .L1543 -.L1540: + bne .L1558 + b .L1545 +.L1557: + cmp r0, #10 + bne .L1545 + ldr r2, .L1574 +.L1559: + 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 + 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 .L1540 + bne .L1542 ldmfd sp!, {r3, pc} -.L1568: +.L1575: .align 2 -.L1567: +.L1574: .word .LANCHOR0+4 .word .LANCHOR0+3800 .word .LANCHOR0 .word .LANCHOR0+34 + .word .LANCHOR0+128 .fnend .size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build .align 2 @@ -9087,15 +9076,15 @@ 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, .L1600 + ldr r5, .L1607 ldr r3, [r5] tst r3, #4096 - beq .L1570 - ldr r0, .L1600+4 - ldr r1, .L1600+8 + beq .L1577 + ldr r0, .L1607+4 + ldr r1, .L1607+8 bl printk -.L1570: - ldr r4, .L1600+12 +.L1577: + ldr r4, .L1607+12 mov r6, #0 ldrh r3, [r5, #30] ldrb r1, [r5, #16] @ zero_extendqisi2 @@ -9104,7 +9093,7 @@ flash_die_info_init: strh r3, [r4, #2] @ movhi strb r6, [r4, #589] bl __aeabi_idiv - ldr r7, .L1600+16 + ldr r7, .L1607+16 mov r1, r6 mov r2, #8 strh r0, [r7] @ movhi @@ -9115,28 +9104,28 @@ flash_die_info_init: mov r2, #32 bl ftl_memset add r7, r4, #680 -.L1575: +.L1582: ldrb r2, [r5, #4] @ zero_extendqisi2 add r1, r9, r6, asl #3 - ldr r8, .L1600+20 + ldr r8, .L1607+20 mov r3, #2 - ldr r0, .L1600+24 + ldr r0, .L1607+24 strb r3, [r6, r7] mov r3, #0 -.L1571: +.L1578: cmp r3, r2 - bcs .L1598 + bcs .L1605 add ip, r0, r3 ldrb lr, [ip, #1] @ zero_extendqisi2 ldrb ip, [r1, r3] @ zero_extendqisi2 cmp lr, ip - bne .L1572 + bne .L1579 add r3, r3, #1 - b .L1571 -.L1598: + b .L1578 +.L1605: ldrb r3, [r4, #589] @ zero_extendqisi2 mov r1, #0 - ldr r2, .L1600+28 + ldr r2, .L1607+28 uxtb r0, r6 add r2, r2, r3, asl #2 str r1, [r2, #-3356] @@ -9145,33 +9134,33 @@ flash_die_info_init: strb r2, [r4, #589] strb r0, [r3, #668] bl zftl_flash_enter_slc_mode -.L1572: +.L1579: add r6, r6, #1 cmp r6, #4 - bne .L1575 + bne .L1582 ldrb r2, [r5, #12] @ zero_extendqisi2 - ldr r3, .L1600 + ldr r3, .L1607 cmp r2, #2 - beq .L1576 -.L1583: + beq .L1583 +.L1590: ldrb r3, [r5, #17] @ zero_extendqisi2 ldrb r2, [r4, #589] @ zero_extendqisi2 smulbb r2, r2, r3 ldrh r3, [r5, #18] smulbb r3, r2, r3 - ldr r2, .L1600+32 + ldr r2, .L1607+32 strh r3, [r2, #-12] @ movhi add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1576: +.L1583: 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, .L1600+28 + ldr r6, .L1607+28 mul r2, r2, ip ldrb ip, [r3, #13] @ zero_extendqisi2 ldrb r7, [r3] @ zero_extendqisi2 @@ -9181,20 +9170,20 @@ flash_die_info_init: mov r2, ip, asl #1 str r2, [sp, #4] mov r2, lr -.L1581: +.L1588: add r9, r8, r2, asl #3 mov r0, #0 -.L1577: +.L1584: cmp r0, r7 - bcs .L1599 + bcs .L1606 add r10, r3, r0 ldrb fp, [r10, #1] @ zero_extendqisi2 ldrb r10, [r9, r0] @ zero_extendqisi2 cmp fp, r10 - bne .L1578 + bne .L1585 add r0, r0, #1 - b .L1577 -.L1599: + b .L1584 +.L1606: ldmia sp, {r9, lr} mov r0, r1 add r1, r6, r1, asl #2 @@ -9206,16 +9195,16 @@ flash_die_info_init: mov lr, #1 uxtb r1, r1 strb r2, [r0, #668] -.L1578: +.L1585: add r2, r2, #1 cmp r2, #4 - bne .L1581 + bne .L1588 cmp lr, #0 strneb r1, [r4, #589] - b .L1583 -.L1601: + b .L1590 +.L1608: .align 2 -.L1600: +.L1607: .word .LANCHOR2 .word .LC4 .word .LANCHOR1+1456 @@ -9237,7 +9226,7 @@ lpa_hash_init: stmfd sp!, {r4, lr} .save {r4, lr} mov r1, #255 - ldr r4, .L1604 + ldr r4, .L1611 mov r2, #512 add r0, r4, #2992 add r0, r0, #8 @@ -9251,9 +9240,9 @@ lpa_hash_init: mov r2, r2, asl #2 ldmfd sp!, {r4, lr} b ftl_memset -.L1605: +.L1612: .align 2 -.L1604: +.L1611: .word .LANCHOR0 .fnend .size lpa_hash_init, .-lpa_hash_init @@ -9266,20 +9255,20 @@ lpa_rebuild_hash: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L1619 + ldr r3, .L1626 ldr r3, [r3] tst r3, #4096 - beq .L1607 - ldr r0, .L1619+4 + beq .L1614 + ldr r0, .L1626+4 mov r2, #225 - ldr r1, .L1619+8 + ldr r1, .L1626+8 mov r3, #0 bl printk -.L1607: - ldr r4, .L1619+12 +.L1614: + ldr r4, .L1626+12 mov r1, #255 mov r2, #512 - ldr r0, .L1619+16 + ldr r0, .L1626+16 add r5, r4, #2960 bl ftl_memset ldrb r3, [r4, #2964] @ zero_extendqisi2 @@ -9292,17 +9281,17 @@ lpa_rebuild_hash: add lr, r5, #40 mov r0, #0 mov ip, r4 -.L1608: +.L1615: ldrh r1, [r5] uxth r2, r0 ldrb r3, [r4, #2964] @ zero_extendqisi2 mul r3, r3, r1 cmp r2, r3, asl #1 - bge .L1618 + bge .L1625 ldr r3, [ip, #3512] ldr r3, [r3, r2, asl #2] cmn r3, #1 - beq .L1609 + beq .L1616 uxtb r3, r3 mov r3, r3, asl #1 ldrh r1, [lr, r3] @@ -9310,14 +9299,14 @@ lpa_rebuild_hash: mov r2, r2, asl #1 ldr r3, [ip, #3516] strh r1, [r3, r2] @ movhi -.L1609: +.L1616: add r0, r0, #1 - b .L1608 -.L1618: + b .L1615 +.L1625: ldmfd sp!, {r3, r4, r5, pc} -.L1620: +.L1627: .align 2 -.L1619: +.L1626: .word .LANCHOR2 .word .LC123 .word .LANCHOR1+1476 @@ -9338,8 +9327,8 @@ zftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r2, .L1626 - ldr r3, .L1626+4 + ldr r2, .L1633 + ldr r3, .L1633+4 mov ip, #1 ldrh r1, [r2, #2] add r2, r2, #668 @@ -9359,21 +9348,21 @@ zftl_read_flash_info: strb r3, [r4, #9] mov r3, #0 strb r3, [r4, #10] -.L1622: +.L1629: uxtb r1, r3 cmp r1, r0 - bcs .L1625 + bcs .L1632 ldrb lr, [r3, r2] @ zero_extendqisi2 add r3, r3, #1 ldrb r1, [r4, #10] @ zero_extendqisi2 orr r1, r1, ip, asl lr strb r1, [r4, #10] - b .L1622 -.L1625: + b .L1629 +.L1632: ldmfd sp!, {r4, pc} -.L1627: +.L1634: .align 2 -.L1626: +.L1633: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -9388,9 +9377,9 @@ gc_init: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} movw r8, #2312 - ldr r4, .L1630 + ldr r4, .L1637 mov r5, #0 - ldr r6, .L1630+4 + ldr r6, .L1637+4 movw r3, #2972 add r7, r4, r8 mov r1, r5 @@ -9463,9 +9452,9 @@ gc_init: strh r3, [r4, r2] @ movhi str r0, [r6, #-3308] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1631: +.L1638: .align 2 -.L1630: +.L1637: .word .LANCHOR0 .word .LANCHOR3 .fnend @@ -9481,21 +9470,21 @@ gc_static_wearleveling: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r4, .L1748 + ldr r4, .L1755 ldr r3, [r4, #2288] ldr r3, [r3, #32] cmp r3, #10240 - bls .L1633 + bls .L1640 bl ftl_tmp_into_update -.L1633: +.L1640: ldr r3, [r4, #580] ldr r2, [r3, #568] ldr r1, [r3, #12] add r2, r2, #860160 add r2, r2, #3840 cmp r1, r2 - bhi .L1634 - ldr r2, .L1748 + bhi .L1641 + ldr r2, .L1755 ldr r0, [r2, #2288] ldr r2, [r3, #572] ldr r0, [r0, #36] @@ -9503,11 +9492,11 @@ gc_static_wearleveling: cmp r0, r2 movls r7, #0 movls r10, r7 - bls .L1635 -.L1634: + bls .L1642 +.L1641: ldr r2, [r4, #2288] mov r8, #0 - ldr ip, .L1748 + ldr ip, .L1755 movw r5, #65535 mov fp, r8 mov r10, r8 @@ -9521,26 +9510,26 @@ gc_static_wearleveling: str r8, [sp, #28] str r8, [sp, #24] str r8, [sp, #20] -.L1636: - ldr r3, .L1748 +.L1643: + ldr r3, .L1755 add r2, r3, #564 ldrh r2, [r2] cmp r2, r7 - bls .L1745 + bls .L1752 ldr r0, [ip, #568] mov r1, r7, asl #2 add lr, r0, r1 ldrb r3, [lr, #2] @ zero_extendqisi2 and r2, r3, #224 cmp r2, #224 - beq .L1637 + beq .L1644 tst r3, #8 ldrneh r3, [r0, r1] ldrne r4, [r0, r1] ubfxne r3, r3, #0, #11 ubfxne r4, r4, #11, #8 - bne .L1639 -.L1638: + bne .L1646 +.L1645: tst r3, #24 ldreqh r3, [r0, r1] movweq r4, #65535 @@ -9548,8 +9537,8 @@ gc_static_wearleveling: movwne r3, #65535 ubfxeq r3, r3, #0, #11 ubfxne r4, r4, #11, #8 - bne .L1641 -.L1639: + bne .L1648 +.L1646: ldr r2, [sp, #32] add r10, r10, #1 cmp r5, r3 @@ -9560,15 +9549,15 @@ gc_static_wearleveling: movhi r5, r3 addhi r2, r2, #584 strhih r7, [r2, #2] @ movhi -.L1683: +.L1690: ldr r2, [sp, #20] cmp r2, r3 movw r2, #65535 strcc r3, [sp, #20] movcc r8, r7 cmp r4, r2 - beq .L1643 -.L1641: + beq .L1650 +.L1648: ldr r2, [sp, #24] cmp r6, r4 add r2, r2, #1 @@ -9584,14 +9573,14 @@ gc_static_wearleveling: cmp r9, r4 movcc fp, r7 movcc r9, r4 -.L1643: +.L1650: cmp r4, #9 cmphi r3, #9 - bhi .L1637 - ldr r3, .L1748+4 + bhi .L1644 + ldr r3, .L1755+4 ldr r3, [r3] tst r3, #256 - beq .L1637 + beq .L1644 ldrh r2, [r0, r1] ldr r3, [r0, r1] ldrb r1, [lr, #2] @ zero_extendqisi2 @@ -9608,16 +9597,16 @@ gc_static_wearleveling: mov r1, r7, asl #1 ldr r0, [ip, #576] ldrh r1, [r0, r1] - ldr r0, .L1748+8 + ldr r0, .L1755+8 str r1, [sp, #12] mov r1, r7 bl printk ldr ip, [sp, #36] -.L1637: +.L1644: add r7, r7, #1 uxth r7, r7 - b .L1636 -.L1745: + b .L1643 +.L1752: ldr r0, [r3, #580] mov r2, #0 mov r1, #255 @@ -9626,7 +9615,7 @@ gc_static_wearleveling: strh r2, [r0, #-142] @ movhi mov r2, #128 bl ftl_memset - ldr ip, .L1748+4 + ldr ip, .L1755+4 movw r2, #586 ldr ip, [ip] tst ip, #1024 @@ -9636,7 +9625,7 @@ gc_static_wearleveling: ldrh r1, [r1, r2] mov r2, r1, asl #2 add r4, r0, r2 - beq .L1646 + beq .L1653 ldrh r2, [r0, r2] ldr ip, [r0, r1, asl #2] ldrb r0, [r4, #2] @ zero_extendqisi2 @@ -9651,66 +9640,66 @@ gc_static_wearleveling: ldr r0, [r3, #576] mov r3, r1, asl #1 ldrh r3, [r0, r3] - ldr r0, .L1748+12 + ldr r0, .L1755+12 str r3, [sp, #12] ubfx r3, ip, #11, #8 bl printk -.L1646: +.L1653: ldrb r3, [r4, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #32 - ldr r3, .L1748 - bne .L1647 + ldr r3, .L1755 + bne .L1654 ldr r2, [r3, #2288] add r2, r2, #688 ldrh r2, [r2] cmp r2, #2 - ldrhi r2, .L1748+16 + ldrhi r2, .L1755+16 movhi r1, #1 strhi r1, [r2, #-3304] -.L1647: +.L1654: ldrb r2, [r4, #2] @ zero_extendqisi2 tst r2, #8 - beq .L1648 + beq .L1655 and r1, r2, #192 cmp r1, #64 - bne .L1649 + bne .L1656 ldr r2, [r3, #580] movw r3, #586 mov r1, #0 ldrh r0, [r2, r3] mov r2, #1 bl gc_add_sblk - ldr r2, .L1748+20 + ldr r2, .L1755+20 movw r3, #570 mov r1, #1 strh r1, [r2, r3] @ movhi - b .L1648 -.L1649: + b .L1655 +.L1656: tst r2, #224 - bne .L1648 + bne .L1655 ldr r3, [r3, #580] movw r7, #590 movw r2, #65535 ldrh r1, [r3, r7] cmp r1, r2 - bne .L1648 + bne .L1655 movw r4, #586 ldrh r0, [r3, r4] add r3, r3, #588 ldrh r3, [r3] cmp r3, r0 - beq .L1648 + beq .L1655 bl zftl_remove_free_node - ldr r3, .L1748 + ldr r3, .L1755 ldr r3, [r3, #580] ldrh r2, [r3, r4] strh r2, [r3, r7] @ movhi mvn r2, #0 strh r2, [r3, r4] @ movhi -.L1648: - ldr r4, .L1748 - ldr r0, .L1748+4 +.L1655: + ldr r4, .L1755 + ldr r0, .L1755+4 ldr r3, [r4, #580] ldr r0, [r0] add r3, r3, #584 @@ -9719,7 +9708,7 @@ gc_static_wearleveling: ldr r3, [r4, #568] mov r2, r1, asl #2 add r7, r3, r2 - beq .L1650 + beq .L1657 ldrb r0, [r7, #2] @ zero_extendqisi2 ldrh r2, [r3, r2] ubfx r0, r0, #3, #2 @@ -9736,43 +9725,43 @@ gc_static_wearleveling: ldr ip, [r4, #576] ldrh r0, [ip, r0] str r0, [sp, #12] - ldr r0, .L1748+24 + ldr r0, .L1755+24 bl printk -.L1650: +.L1657: ldrb r3, [r7, #2] @ zero_extendqisi2 tst r3, #8 - beq .L1651 + beq .L1658 and r2, r3, #192 - ldr r7, .L1748 + ldr r7, .L1755 cmp r2, #64 - bne .L1652 + bne .L1659 ldr r3, [r7, #580] mov r1, #0 mov r2, #1 add r3, r3, #584 ldrh r0, [r3] bl gc_add_sblk - ldr r2, .L1748+20 + ldr r2, .L1755+20 movw r3, #570 mov r1, #1 strh r1, [r2, r3] @ movhi - b .L1651 -.L1652: + b .L1658 +.L1659: and r3, r3, #248 cmp r3, #16 - bne .L1651 + bne .L1658 ldr r3, [r7, #580] add r2, r3, #588 ldrh r1, [r2] movw r2, #65535 cmp r1, r2 - bne .L1651 + bne .L1658 add r2, r3, #584 ldrh r0, [r2] movw r2, #590 ldrh r3, [r3, r2] cmp r3, r0 - beq .L1651 + beq .L1658 bl zftl_remove_free_node ldr r3, [r7, #580] add r2, r3, #588 @@ -9781,13 +9770,13 @@ gc_static_wearleveling: strh r1, [r2] @ movhi mvn r2, #0 strh r2, [r3] @ movhi -.L1651: - ldr r2, .L1748+4 - ldr ip, .L1748 +.L1658: + ldr r2, .L1755+4 + ldr ip, .L1755 ldr r2, [r2] ldr r3, [ip, #568] tst r2, #1024 - beq .L1653 + beq .L1660 mov r2, r8, asl #2 add r1, r3, r2 ldrh r2, [r3, r2] @@ -9805,17 +9794,17 @@ gc_static_wearleveling: mov r1, r8, asl #1 ldr r0, [ip, #576] ldrh r1, [r0, r1] - ldr r0, .L1748+28 + ldr r0, .L1755+28 str r1, [sp, #12] mov r1, r8 bl printk -.L1653: - ldr r2, .L1748+4 - ldr ip, .L1748 +.L1660: + ldr r2, .L1755+4 + ldr ip, .L1755 ldr r2, [r2] ldr r3, [ip, #568] tst r2, #1024 - beq .L1654 + beq .L1661 mov r2, fp, asl #2 add r1, r3, r2 ldrh r2, [r3, r2] @@ -9833,11 +9822,11 @@ gc_static_wearleveling: mov r1, fp, asl #1 ldr r0, [ip, #576] ldrh r1, [r0, r1] - ldr r0, .L1748+32 + ldr r0, .L1755+32 str r1, [sp, #12] mov r1, fp bl printk -.L1654: +.L1661: ldr r4, [r4, #2288] mov r1, r10 ldrh r3, [sp, #20] @@ -9853,49 +9842,49 @@ gc_static_wearleveling: ldr r0, [sp, #28] bl __aeabi_uidiv strh r0, [r4, #90] @ movhi - ldr r4, .L1748+4 + ldr r4, .L1755+4 ldr r3, [r4] tst r3, #1024 - beq .L1655 + beq .L1662 uxth r0, r0 mov r1, r10 str r0, [sp] uxth r3, r7 - ldr r0, .L1748+36 + ldr r0, .L1755+36 ldr r2, [sp, #24] bl printk -.L1655: +.L1662: ldr r3, [r4] - ldr r4, .L1748+40 + ldr r4, .L1755+40 tst r3, #1024 - beq .L1656 + beq .L1663 str r9, [sp] mov r1, r5 ldrh r3, [r4, #-4] mov r2, r6 - ldr r0, .L1748+44 + ldr r0, .L1755+44 str r3, [sp, #4] ldrh r3, [r4, #-2] str r3, [sp, #8] ldr r3, [sp, #20] bl printk -.L1656: +.L1663: rsb r3, r6, r9 str r3, [sp, #24] ldr r2, [sp, #24] ldrh r3, [r4, #-2] cmp r2, r3 - bgt .L1657 - ldr r2, .L1748+40 + bgt .L1664 + ldr r2, .L1755+40 ldr r3, [sp, #20] ldrh r2, [r2, #-4] rsb r3, r5, r3 cmp r3, r2 movle r7, #0 movle r10, r7 - ble .L1658 -.L1657: - ldr ip, .L1748 + ble .L1665 +.L1664: + ldr ip, .L1755 mov r7, #0 mov r10, r7 ldr r3, [ip, #580] @@ -9904,11 +9893,11 @@ gc_static_wearleveling: ldr r3, [ip, #2288] uxth r4, r4 ldrh fp, [r3, #134] -.L1659: - ldr r3, .L1748+48 +.L1666: + ldr r3, .L1755+48 ldrh r3, [r3] cmp fp, r3 - bcs .L1668 + bcs .L1675 add r4, r4, #1 uxth r4, r4 cmp r4, r3 @@ -9924,54 +9913,54 @@ gc_static_wearleveling: cmp r0, #224 orreq r1, r1, #1 cmp r1, #0 - bne .L1661 + bne .L1668 ubfx r2, r2, #3, #2 ands r1, r2, #1 - beq .L1662 + beq .L1669 cmp r0, #160 - b .L1743 -.L1662: + b .L1750 +.L1669: cmp r2, #2 -.L1743: - bne .L1664 - ldr r2, .L1748+52 +.L1750: + bne .L1671 + ldr r2, .L1755+52 ldr r0, [sp, #24] ldrh r2, [r2] cmp r0, r2 - ble .L1665 + ble .L1672 ldr r2, [r3, r8] ubfx r2, r2, #11, #8 cmp r2, r6 - bls .L1666 + bls .L1673 cmp r1, #0 - beq .L1665 + beq .L1672 ldrh r2, [r3, r8] ubfx r2, r2, #0, #11 cmp r2, r5 - bgt .L1665 -.L1666: + bgt .L1672 +.L1673: mov r1, #0 mov r2, #1 mov r0, r4 str r3, [sp, #28] bl gc_add_sblk - ldr r2, .L1748+56 + ldr r2, .L1755+56 mov r1, #1 add r10, r10, r1 strh r1, [r2] @ movhi - ldr r2, .L1748+4 + ldr r2, .L1755+4 ldr r2, [r2] tst r2, #1024 ldr r3, [sp, #28] - beq .L1665 + beq .L1672 ldr r0, [r9, #576] mov r1, r4, asl r1 ldr r2, [r9, #568] ldrh lr, [r0, r1] add r2, r2, r8 - ldr r1, .L1748+20 + ldr r1, .L1755+20 ldrb r2, [r2, #2] @ zero_extendqisi2 - ldr r0, .L1748+60 + ldr r0, .L1755+60 ldrh r1, [r1, #52] str r1, [sp] ldrh r1, [r3, r8] @@ -9980,49 +9969,49 @@ gc_static_wearleveling: ldr r3, [r3, r8] ubfx r3, r3, #11, #8 str r3, [sp, #8] - b .L1744 -.L1664: - ldr r0, .L1748+64 + b .L1751 +.L1671: + ldr r0, .L1755+64 ldr r2, [sp, #20] ldrh r0, [r0] rsb r2, r5, r2 cmp r2, r0 - ble .L1665 + ble .L1672 ldrh r2, [r3, r8] add r0, r5, #8 ubfx r2, r2, #0, #11 cmp r2, r0 - ble .L1667 + ble .L1674 cmp r1, #0 - beq .L1665 + beq .L1672 ldr r2, [r3, r8] add r1, r6, #4 ubfx r2, r2, #11, #8 cmp r2, r1 - bgt .L1665 -.L1667: + bgt .L1672 +.L1674: mov r1, #0 mov r2, #1 mov r0, r4 str r3, [sp, #28] bl gc_add_sblk - ldr r2, .L1748+56 + ldr r2, .L1755+56 mov r1, #1 add r7, r7, r1 strh r1, [r2] @ movhi - ldr r2, .L1748+4 + ldr r2, .L1755+4 ldr r2, [r2] tst r2, #1024 ldr r3, [sp, #28] - beq .L1665 + beq .L1672 ldr r0, [r9, #576] mov r1, r4, asl r1 ldr r2, [r9, #568] ldrh lr, [r0, r1] add r2, r2, r8 - ldr r1, .L1748+20 + ldr r1, .L1755+20 ldrb r2, [r2, #2] @ zero_extendqisi2 - ldr r0, .L1748+68 + ldr r0, .L1755+68 ldrh r1, [r1, #52] str r1, [sp] ldrh r1, [r3, r8] @@ -10031,53 +10020,53 @@ gc_static_wearleveling: ldr r3, [r3, r8] ubfx r3, r3, #11, #8 str r3, [sp, #8] -.L1744: +.L1751: mov r1, r4 mov r2, r2, lsr #5 mov r3, lr bl printk -.L1665: +.L1672: cmp r10, #4 cmpls r7, #4 - bhi .L1668 -.L1661: + bhi .L1675 +.L1668: add fp, fp, #1 uxth fp, fp - b .L1659 -.L1668: - ldr r3, .L1748 + b .L1666 +.L1675: + ldr r3, .L1755 ldr r3, [r3, #580] str r4, [r3, #580] -.L1658: - ldr r0, .L1748 +.L1665: + ldr r0, .L1755 cmp r6, #0 ldrne r3, [r0, #2288] movne r4, r0 ldrneh r3, [r3, #134] - beq .L1671 -.L1672: - ldr r2, .L1748 + beq .L1678 +.L1679: + ldr r2, .L1755 add r1, r2, #564 ldrh r1, [r1] cmp r1, r3 - bls .L1746 + bls .L1753 ldr ip, [r4, #568] mov lr, r3, asl #2 add r8, ip, lr ldr r2, [ip, r3, asl #2] ubfx r1, r2, #11, #8 cmp r1, r6 - bcc .L1673 + bcc .L1680 ldrb r8, [r8, #2] @ zero_extendqisi2 tst r8, #24 rsbne r1, r6, r1 bfine r2, r1, #11, #8 strne r2, [ip, lr] -.L1673: +.L1680: add r3, r3, #1 uxth r3, r3 - b .L1672 -.L1746: + b .L1679 +.L1753: ldr r3, [r2, #2288] ldrh r2, [r3, #72] add r2, r6, r2 @@ -10086,36 +10075,36 @@ gc_static_wearleveling: cmp r2, r6 rsbhi r2, r6, r2 strhih r2, [r3, #98] @ movhi -.L1671: - cmp r5, #0 - beq .L1677 - ldr r3, [r0, #2288] - ldr r4, .L1748 - ldrh r3, [r3, #134] .L1678: - ldr r2, .L1748 + cmp r5, #0 + beq .L1684 + ldr r3, [r0, #2288] + ldr r4, .L1755 + ldrh r3, [r3, #134] +.L1685: + ldr r2, .L1755 add r1, r2, #564 ldrh r1, [r1] cmp r1, r3 - bls .L1747 + bls .L1754 ldr ip, [r4, #568] mov r0, r3, asl #2 add lr, ip, r0 ldrh r2, [ip, r0] ubfx r1, r2, #0, #11 cmp r1, r5 - blt .L1679 + blt .L1686 ldrb lr, [lr, #2] @ zero_extendqisi2 and lr, lr, #24 cmp lr, #16 rsbne r1, r5, r1 bfine r2, r1, #0, #11 strneh r2, [ip, r0] @ movhi -.L1679: +.L1686: add r3, r3, #1 uxth r3, r3 - b .L1678 -.L1747: + b .L1685 +.L1754: ldr r3, [r2, #2288] ldrh r2, [r3, #74] add r2, r5, r2 @@ -10124,33 +10113,33 @@ gc_static_wearleveling: cmp r2, r5 rsbhi r2, r5, r2 strhih r2, [r3, #96] @ movhi -.L1677: - ldr r0, .L1748+72 +.L1684: + ldr r0, .L1755+72 mov r1, #0 bl _list_get_gc_head_node movw r2, #65535 - ldr r4, .L1748 + ldr r4, .L1755 cmp r0, r2 - beq .L1635 + beq .L1642 ldr r2, [r4, #576] mov r3, r0, asl #1 add r4, r4, #2960 ldrh r2, [r2, r3] ldrh r3, [r4] cmp r2, r3 - bhi .L1635 + bhi .L1642 mov r1, #0 mov r2, #1 bl gc_add_sblk add r10, r10, #1 -.L1635: +.L1642: add r0, r7, r10 add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1749: +.L1756: .align 2 -.L1748: +.L1755: .word .LANCHOR0 .word .LANCHOR2 .word .LC124 @@ -10182,7 +10171,7 @@ zftl_sblk_list_init: 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, .L1781 + ldr r6, .L1788 mov r1, #0 .pad #20 sub sp, sp, #20 @@ -10192,7 +10181,7 @@ zftl_sblk_list_init: ldr r0, [r6, #524] mov r4, r6 ldrh r3, [r8] - ldr fp, .L1781+4 + ldr fp, .L1788+4 mul r2, r2, r3 bl ftl_memset add r3, r6, #2992 @@ -10229,27 +10218,27 @@ zftl_sblk_list_init: str r8, [sp, #4] ldrh r5, [r3, #134] strh r9, [r3, #146] @ movhi -.L1751: +.L1758: ldr r3, [sp, #4] sxth r2, r5 - ldr r1, .L1781 + ldr r1, .L1788 ldrh r3, [r3] cmp r2, r3 - bge .L1779 + 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 .L1752 + beq .L1759 ldrb r6, [r7, #2964] @ zero_extendqisi2 mov ip, #0 ldrh r9, [fp] mov r1, ip ldr lr, [r7, #2288] -.L1753: +.L1760: cmp ip, r6 - bge .L1780 + bge .L1787 ldrb r0, [r8, #3] @ zero_extendqisi2 mov r0, r0, asr ip add ip, ip, #1 @@ -10259,10 +10248,10 @@ zftl_sblk_list_init: uxtheq r1, r1 addne r0, r0, #1 strneh r0, [lr, #146] @ movhi - b .L1753 -.L1780: + b .L1760 +.L1787: cmp r1, #0 - beq .L1757 + beq .L1764 sxth r1, r1 mov r0, #32768 str r2, [sp, #12] @@ -10270,8 +10259,8 @@ zftl_sblk_list_init: add r0, r0, #1 ldr r2, [sp, #12] uxth r1, r0 - b .L1752 -.L1757: + b .L1759 +.L1764: ldrb r0, [r8, #2] @ zero_extendqisi2 mvn lr, #0 orr r0, r0, #224 @@ -10279,7 +10268,7 @@ zftl_sblk_list_init: ldr ip, [r4, #576] mov r0, r2, asl #1 strh lr, [ip, r0] @ movhi -.L1752: +.L1759: mov r10, r2, asl #1 ldr lr, [r4, #524] add r0, r10, r2 @@ -10295,38 +10284,38 @@ zftl_sblk_list_init: cmpne r6, #224 moveq r9, #1 movne r9, #0 - beq .L1759 + beq .L1766 ldr r0, [r7, #580] ldrh lr, [r0, #16] cmp r2, lr - beq .L1759 + beq .L1766 ldrh lr, [r0, #48] cmp r2, lr - beq .L1759 + beq .L1766 ldrh r0, [r0, #80] cmp r2, r0 - beq .L1759 + beq .L1766 cmp r6, #64 uxtheq r6, r5 - ldreq r0, .L1781+8 - ldreq r2, .L1781+12 + ldreq r0, .L1788+8 + ldreq r2, .L1788+12 moveq r1, r6 - beq .L1777 -.L1761: + beq .L1784 +.L1768: cmp r6, #96 uxtheq r6, r5 - ldreq r0, .L1781+16 + ldreq r0, .L1788+16 moveq r1, r6 subeq r2, r0, #668 - beq .L1777 -.L1762: + beq .L1784 +.L1769: cmp r6, #160 - bne .L1763 + bne .L1770 uxth r6, r5 - ldr r0, .L1781+20 - ldr r2, .L1781+24 + ldr r0, .L1788+20 + ldr r2, .L1788+24 mov r1, r6 -.L1777: +.L1784: bl _insert_data_list ldr r3, [r7, #576] ldrh r3, [r3, r10] @@ -10334,18 +10323,18 @@ zftl_sblk_list_init: movls r0, r6 movls r1, #1 movls r2, r9 - bhi .L1759 - b .L1775 -.L1763: + bhi .L1766 + b .L1782 +.L1770: cmp r6, #0 - bne .L1759 + bne .L1766 ldr r0, [r7, #576] uxth r9, r5 ldrh ip, [r0, r10] cmp ip, #0 - beq .L1764 + beq .L1771 mov r1, r2 - ldr r0, .L1781+28 + ldr r0, .L1788+28 mov r2, ip bl printk ldrb r2, [r8, #2] @ zero_extendqisi2 @@ -10357,30 +10346,30 @@ zftl_sblk_list_init: mov r1, #1 strb r2, [r8, #2] mov r2, r6 -.L1775: +.L1782: bl gc_add_sblk - b .L1759 -.L1764: + b .L1766 +.L1771: ands r1, r1, #24 - ldreq r0, .L1781+32 + ldreq r0, .L1788+32 moveq r1, r9 subeq r2, r0, #708 - beq .L1773 -.L1766: - cmp r1, #16 - ldrne r0, .L1781+36 - moveq r1, r9 - ldreq r0, .L1781+40 - movne r1, r9 - ldreq r2, .L1781+44 - subne r2, r0, #712 + 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: bl _insert_free_list -.L1759: +.L1766: add r5, r5, #1 uxth r5, r5 - b .L1751 -.L1779: + b .L1758 +.L1786: ldr r2, [sp, #8] ldr r3, [r1, #2288] ldrh r2, [r2] @@ -10403,9 +10392,9 @@ zftl_sblk_list_init: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1782: +.L1789: .align 2 -.L1781: +.L1788: .word .LANCHOR0 .word .LANCHOR0+2962 .word .LANCHOR0+2968 @@ -10425,119 +10414,117 @@ zftl_sblk_list_init: .type pm_free_sblk, %function pm_free_sblk: .fnstart - @ args = 0, pretend = 0, frame = 280 + @ args = 0, pretend = 0, frame = 272 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1814 + 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 #292 - sub sp, sp, #292 - ldr r2, [r3] - ldr lr, .L1814+4 - str r3, [sp, #8] - str r2, [sp, #284] - ldrh r2, [lr] - mov r5, lr + .pad #284 + sub sp, sp, #284 + ldrh r2, [r3] + mov r5, r3 cmp r2, #128 - bls .L1784 - ldr r1, .L1814+8 + bls .L1791 + ldr r1, .L1820+4 mov r2, #84 - ldr r0, .L1814+12 + ldr r0, .L1820+8 bl printk bl dump_stack -.L1784: - ldr r4, .L1814+16 - movw lr, #65535 - ldrh ip, [r5] - ldr r3, [r4, #2288] - add r2, r3, #688 - add r3, r3, #412 - add r3, r3, #2 - ldrh r0, [r2] - mov r2, #0 - mov r1, r2 -.L1787: - ldrh r6, [r3, #2]! - uxth r5, r2 - cmp r6, lr - addne r1, r1, #1 - uxthne r1, r1 - cmp r1, r0 - bcs .L1786 - cmp r1, ip - bcs .L1786 - add r2, r2, #1 - cmp r2, #128 - bne .L1787 - mov r5, r2 -.L1786: - add r5, r5, #1 - add r0, sp, #28 +.L1791: + ldr r4, .L1820+12 + mov r1, #0 + ldrh lr, [r5] + mov r0, r1 + movw r5, #65535 + ldr r2, [r4, #2288] + add r3, r2, #688 + add r2, r2, #412 + add r2, r2, #2 + ldrh ip, [r3] +.L1794: + ldrh r6, [r2, #2]! + uxth r3, r1 + cmp r6, r5 + addne r0, r0, #1 + uxthne r0, r0 + cmp r0, ip + bcs .L1793 + cmp r0, lr + bcs .L1793 + add r1, r1, #1 + cmp r1, #128 + bne .L1794 + mov r3, r1 +.L1793: + add r3, r3, #1 + add r0, sp, #24 mov r1, #0 mov r2, #256 - uxth r5, r5 - mvn r8, #0 - cmp r5, #128 - mov r6, #0 - movcs r5, #128 + uxth r3, r3 + mvn r9, #0 + cmp r3, #128 + mov r5, #0 + movcs r3, #128 + str r3, [sp, #8] bl ftl_memset - ldr r7, [r4, #2288] + ldr r6, [r4, #2288] movw r3, #698 - ldrb ip, [r4, #2930] @ zero_extendqisi2 - add r10, r7, #700 - ldrh fp, [r7, r3] - ldr r3, .L1814+20 - ldrh r9, [r3] + 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 rsb r3, r3, #24 - rsb r3, r9, r3 - mvn r8, r8, asl r3 -.L1788: - uxth r3, r6 - cmp r3, fp - bcs .L1811 + rsb r3, r7, r3 + mvn r9, r9, asl r3 +.L1795: + uxth r3, r5 + cmp r3, r8 + bcs .L1817 ldr r0, [r10, #4]! - mov r1, ip - str ip, [sp, #12] - and r0, r8, r0, lsr r9 + mov r1, fp + and r0, r9, r0, lsr r7 bl __aeabi_uidiv - add r3, r7, #412 - add r3, r3, #2 - mov r1, #0 - ldr ip, [sp, #12] - uxth r0, r0 - add r2, sp, #28 -.L1789: - uxth lr, r1 - cmp lr, r5 - bcs .L1812 - ldrh lr, [r3, #2]! - add r1, r1, #1 + add r2, r6, #412 add r2, r2, #2 - cmp lr, r0 - ldreqh lr, [r2, #-2] - addeq lr, lr, #1 - streqh lr, [r2, #-2] @ movhi - b .L1789 -.L1812: - add r6, r6, #1 - b .L1788 -.L1811: - ldr r9, .L1814+24 - mov r6, #0 + 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 r8, sp, #28 - movw fp, #65535 - mov r10, r6 - ldrh r3, [r9] - str r9, [sp, #12] + add r6, sp, #24 + ldr fp, .L1820+24 + movw r10, #65535 + ldrh r3, [r8] + mov r9, r5 + str r8, [sp, #12] smulbb r7, r7, r3 uxth r7, r7 -.L1793: - uxth r9, r6 - cmp r9, r5 - bcs .L1813 - add r3, r6, #208 +.L1800: + ldr r3, [sp, #8] + uxth r8, r5 + cmp r8, r3 + bcs .L1819 + add r3, r5, #208 ldr r2, [r4, #2288] mov r3, r3, asl #1 add r1, r2, #692 @@ -10550,25 +10537,25 @@ pm_free_sblk: ldr r3, [sp, #20] ldr r2, [sp, #16] cmp r0, r3 - ldreq r1, .L1814+16 + 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, [r8] @ movhi - ldrh lr, [r8] + streqh r1, [r6] @ movhi + ldrh lr, [r6] cmp lr, #0 cmpne r7, lr movhi r1, #1 movls r1, #0 cmp r1, #0 ldrh r1, [r2, #74] - movne r10, r9 + movne r9, r8 movne r7, lr cmp r3, r0 cmpne r1, #2 - bls .L1796 + bls .L1803 ldr r0, [r4, #568] mov r1, r3, asl #2 ldrh r2, [r2, #92] @@ -10576,77 +10563,68 @@ pm_free_sblk: add r2, r2, #4 ubfx r1, r1, #0, #11 cmp r1, r2 - bgt .L1796 + bgt .L1803 str r1, [sp] mov r2, lr - ldr r0, .L1814+28 - mov r1, r6 + ldr r0, .L1820+28 + mov r1, r5 bl printk - mov fp, r9 -.L1796: - ldrh r2, [r8] + mov r10, r8 +.L1803: + ldrh r2, [r6] cmp r2, #0 - bne .L1797 - add r9, r6, #208 + bne .L1804 + add r8, r5, #208 ldr r1, [r4, #2288] movw r0, #65535 - mov r3, r9, asl #1 + mov r3, r8, asl #1 ldrh r3, [r1, r3] cmp r3, r0 - beq .L1797 - ldr r0, .L1814+32 - ldr r0, [r0] + beq .L1804 + ldr r0, [fp] tst r0, #4096 - beq .L1798 + beq .L1805 add r1, r1, #688 - ldr r0, .L1814+36 + ldr r0, .L1820+32 ldrh r1, [r1] str r1, [sp] - mov r1, r6 + mov r1, r5 bl printk -.L1798: +.L1805: ldr r3, [r4, #2288] - mov r9, r9, asl #1 - ldrh r0, [r3, r9] + mov r8, r8, asl #1 + ldrh r0, [r3, r8] bl ftl_free_sblk ldr r3, [r4, #2288] mvn r2, #0 - strh r2, [r3, r9] @ movhi + strh r2, [r3, r8] @ movhi add r3, r3, #688 ldrh r2, [r3] sub r2, r2, #1 strh r2, [r3] @ movhi -.L1797: - add r6, r6, #1 - add r8, r8, #2 - b .L1793 -.L1813: - ldr r3, [sp, #8] +.L1804: + add r5, r5, #1 + add r6, r6, #2 + b .L1800 +.L1819: movw r0, #65535 - ldr r2, [sp, #284] - cmp fp, r0 - ldr r3, [r3] - movne r0, fp - moveq r0, r10 - cmp r2, r3 - beq .L1801 - bl __stack_chk_fail -.L1801: - add sp, sp, #292 + cmp r10, r0 + movne r0, r10 + moveq r0, r9 + add sp, sp, #284 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1815: +.L1821: .align 2 -.L1814: - .word __stack_chk_guard +.L1820: .word .LANCHOR3-3296 .word .LANCHOR1+1496 .word .LC0 .word .LANCHOR0 .word .LANCHOR0+2928 .word .LANCHOR0+2960 - .word .LC134 .word .LANCHOR2 + .word .LC134 .word .LC135 .fnend .size pm_free_sblk, .-pm_free_sblk @@ -10668,25 +10646,25 @@ flash_info_data_init: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1823 + ldr r3, .L1829 stmfd sp!, {r4, lr} .save {r4, lr} ldr r3, [r3] tst r3, #4096 - beq .L1818 - ldr r0, .L1823+4 + beq .L1824 + ldr r0, .L1829+4 mov r1, #105 - ldr r2, .L1823+8 + ldr r2, .L1829+8 bl printk -.L1818: - ldr r4, .L1823+12 +.L1824: + ldr r4, .L1829+12 mov r1, #0 mov r2, #2048 ldr r0, [r4, #664] bl ftl_memset ldr r3, [r4, #664] - ldr r2, .L1823+16 - ldr r1, .L1823+20 + ldr r2, .L1829+16 + ldr r1, .L1829+20 str r2, [r3] mov r3, #2032 ldr r0, [r4, #664] @@ -10697,14 +10675,14 @@ flash_info_data_init: strh r3, [r0, #-64] @ movhi bl ftl_memcpy ldr r0, [r4, #664] - ldr r1, .L1823+24 + ldr r1, .L1829+24 mov r2, #32 add r0, r0, #48 ldmfd sp!, {r4, lr} b ftl_memcpy -.L1824: +.L1830: .align 2 -.L1823: +.L1829: .word .LANCHOR2 .word .LC136 .word .LANCHOR1+1512 @@ -10723,13 +10701,13 @@ ftl_memcpy32: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mov r3, #0 -.L1826: +.L1832: cmp r3, r2 ldrne ip, [r1, r3, asl #2] strne ip, [r0, r3, asl #2] addne r3, r3, #1 - bne .L1826 -.L1828: + bne .L1832 +.L1834: bx lr .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -10752,15 +10730,15 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1831 + ldr r3, .L1837 ldr r0, [r3] - ldr r3, .L1831+4 + ldr r3, .L1837+4 ldr r3, [r3, #-3288] rsb r0, r3, r0 b jiffies_to_msecs -.L1832: +.L1838: .align 2 -.L1831: +.L1837: .word jiffies .word .LANCHOR3 .fnend @@ -10781,7 +10759,7 @@ StorageSysDataLoad: mov r1, #0 bl ftl_memset bl rknand_device_lock - ldr r3, .L1835 + ldr r3, .L1841 mov r2, r4 mov r1, #1 mov r0, r5 @@ -10792,9 +10770,9 @@ StorageSysDataLoad: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L1836: +.L1842: .align 2 -.L1835: +.L1841: .word .LANCHOR3 .fnend .size StorageSysDataLoad, .-StorageSysDataLoad @@ -10810,7 +10788,7 @@ StorageSysDataStore: mov r4, r1 mov r5, r0 bl rknand_device_lock - ldr r3, .L1839 + ldr r3, .L1845 mov r2, r4 mov r1, #1 mov r0, r5 @@ -10821,9 +10799,9 @@ StorageSysDataStore: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L1840: +.L1846: .align 2 -.L1839: +.L1845: .word .LANCHOR3 .fnend .size StorageSysDataStore, .-StorageSysDataStore @@ -10840,7 +10818,7 @@ FlashBootVendorRead: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L1843 + ldr r3, .L1849 mov r2, r4 mov r1, r5 mov r0, r6 @@ -10851,9 +10829,9 @@ FlashBootVendorRead: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1844: +.L1850: .align 2 -.L1843: +.L1849: .word .LANCHOR3 .fnend .size FlashBootVendorRead, .-FlashBootVendorRead @@ -10870,7 +10848,7 @@ FlashBootVendorWrite: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L1847 + ldr r3, .L1853 mov r2, r4 mov r1, r5 mov r0, r6 @@ -10881,9 +10859,9 @@ FlashBootVendorWrite: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1848: +.L1854: .align 2 -.L1847: +.L1853: .word .LANCHOR3 .fnend .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -10894,13 +10872,13 @@ flash_sram_load_store: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L1853 + ldr ip, .L1859 cmp r2, #0 moveq r2, r3 ldr ip, [ip, #-3276] add ip, ip, #4096 add r1, ip, r1 - beq .L1852 + beq .L1858 str lr, [sp, #-4]! .save {lr} mov lr, r0 @@ -10908,11 +10886,11 @@ flash_sram_load_store: mov r1, lr ldr lr, [sp], #4 mov r2, r3 -.L1852: +.L1858: b ftl_memcpy -.L1854: +.L1860: .align 2 -.L1853: +.L1859: .word .LANCHOR3 .fnend .size flash_sram_load_store, .-flash_sram_load_store @@ -10937,16 +10915,16 @@ rk_ftl_de_init: stmfd sp!, {r4, lr} .save {r4, lr} mov r1, #0 - ldr r0, .L1858 + ldr r0, .L1864 bl printk - ldr r3, .L1858+4 + ldr r3, .L1864+4 ldr r3, [r3, #-3280] ldr r3, [r3, #40] ldmfd sp!, {r4, lr} bx r3 @ indirect register sibling call -.L1859: +.L1865: .align 2 -.L1858: +.L1864: .word .LC137 .word .LANCHOR3 .fnend @@ -10959,14 +10937,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, .L1861 + ldr r3, .L1867 mov r0, #0 ldr r3, [r3, #-3280] ldr r3, [r3, #32] bx r3 @ indirect register sibling call -.L1862: +.L1868: .align 2 -.L1861: +.L1867: .word .LANCHOR3 .fnend .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back @@ -10978,13 +10956,13 @@ rk_nand_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1864 + ldr r3, .L1870 ldr r3, [r3, #-3280] ldr r3, [r3, #44] bx r3 @ indirect register sibling call -.L1865: +.L1871: .align 2 -.L1864: +.L1870: .word .LANCHOR3 .fnend .size rk_nand_suspend, .-rk_nand_suspend @@ -10996,13 +10974,13 @@ rk_nand_resume: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1867 + ldr r3, .L1873 ldr r3, [r3, #-3280] ldr r3, [r3, #48] bx r3 @ indirect register sibling call -.L1868: +.L1874: .align 2 -.L1867: +.L1873: .word .LANCHOR3 .fnend .size rk_nand_resume, .-rk_nand_resume @@ -11014,14 +10992,14 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1870 + ldr r3, .L1876 mov r0, #0 ldr r3, [r3, #-3280] ldr r3, [r3, #36] bx r3 -.L1871: +.L1877: .align 2 -.L1870: +.L1876: .word .LANCHOR3 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -11033,13 +11011,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, .L1873 + ldr r3, .L1879 ldr r3, [r3, #-3280] ldr r3, [r3, #60] bx r3 -.L1874: +.L1880: .align 2 -.L1873: +.L1879: .word .LANCHOR3 .fnend .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status @@ -11051,13 +11029,13 @@ rknand_proc_ftlread: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1876 + ldr r3, .L1882 ldr r3, [r3, #-3280] ldr r3, [r3, #64] bx r3 -.L1877: +.L1883: .align 2 -.L1876: +.L1882: .word .LANCHOR3 .fnend .size rknand_proc_ftlread, .-rknand_proc_ftlread @@ -11069,13 +11047,13 @@ FtlRead: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L1879 + ldr ip, .L1885 ldr ip, [ip, #-3280] ldr ip, [ip, #20] bx ip -.L1880: +.L1886: .align 2 -.L1879: +.L1885: .word .LANCHOR3 .fnend .size FtlRead, .-FtlRead @@ -11087,13 +11065,13 @@ FtlDiscard: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1882 + ldr r3, .L1888 ldr r3, [r3, #-3280] ldr r3, [r3, #28] bx r3 -.L1883: +.L1889: .align 2 -.L1882: +.L1888: .word .LANCHOR3 .fnend .size FtlDiscard, .-FtlDiscard @@ -11105,13 +11083,13 @@ rk_ftl_garbage_collect: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1885 + ldr r3, .L1891 ldr r3, [r3, #-3280] ldr r3, [r3, #52] bx r3 -.L1886: +.L1892: .align 2 -.L1885: +.L1891: .word .LANCHOR3 .fnend .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect @@ -11123,13 +11101,13 @@ ReadFlashInfo: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1888 + ldr r3, .L1894 ldr r3, [r3, #-3280] ldr r3, [r3, #56] bx r3 @ indirect register sibling call -.L1889: +.L1895: .align 2 -.L1888: +.L1894: .word .LANCHOR3 .fnend .size ReadFlashInfo, .-ReadFlashInfo @@ -11140,59 +11118,27 @@ rknand_print_hex: .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 r5, #0 - mov r9, r0 - mov r6, r1 - mov r7, r2 - mov r8, r3 - mov r4, r5 -.L1891: - cmp r4, r8 - beq .L1900 - cmp r5, #0 - bne .L1892 - ldr r0, .L1901 - mov r1, r9 - mov r2, r6 - mov r3, r4 - bl printk -.L1892: - cmp r7, #4 - ldreq r0, .L1901+4 - ldreq r1, [r6, r4, asl #2] - beq .L1899 - cmp r7, #2 - moveq r3, r4, asl #1 - ldreq r0, .L1901+4 - ldreqsh r1, [r6, r3] - ldrne r0, .L1901+4 - ldrneb r1, [r6, r4] @ zero_extendqisi2 + stmfd sp!, {r0, r1, r2, r3, r4, lr} + .save {lr} + .pad #20 + mov ip, r0 + mul r3, r3, r2 + str r2, [sp] + str r1, [sp, #4] + mov r2, #0 + ldr r0, .L1898 + mov r1, ip + str r2, [sp, #12] + str r3, [sp, #8] + mov r3, #16 + bl print_hex_dump + add sp, sp, #20 + @ sp needed + ldr pc, [sp], #4 .L1899: - add r5, r5, #1 - bl printk - cmp r5, #15 - bls .L1896 - ldr r0, .L1901+8 - mov r5, #0 - ldr r1, .L1901+12 - bl printk -.L1896: - add r4, r4, #1 - b .L1891 -.L1900: - ldr r0, .L1901+8 - ldr r1, .L1901+12 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - b printk -.L1902: .align 2 -.L1901: +.L1898: .word .LC138 - .word .LC139 - .word .LC1 - .word .LC140 .fnend .size rknand_print_hex, .-rknand_print_hex .align 2 @@ -11205,7 +11151,7 @@ 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, .L2014 + ldr r8, .L2011 .pad #36 sub sp, sp, #36 mvn r7, #81 @@ -11221,29 +11167,29 @@ hynix_get_read_retry_default: mvn r3, #82 strb r6, [r4, #131] strb r3, [r4, #129] - bne .L1904 + bne .L1901 mvn r3, #88 strb r3, [r4, #128] - ldr r3, .L2014+4 + ldr r3, .L2011+4 mvn r1, #8 mov r6, #7 strb r1, [r3, #413] - b .L1965 -.L1904: + b .L1962 +.L1901: cmp r0, #3 - bne .L1906 + bne .L1903 add r1, r4, #127 mov r3, #176 -.L1907: +.L1904: strb r3, [r1, #1]! add r3, r3, #1 uxtb r3, r3 cmp r3, #184 - bne .L1907 - b .L2008 -.L1906: + bne .L1904 + b .L2005 +.L1903: cmp r0, #4 - bne .L1908 + bne .L1905 mvn r1, #51 strb r3, [r4, #133] strb r1, [r4, #128] @@ -11257,13 +11203,13 @@ hynix_get_read_retry_default: strb r1, [r4, #131] mvn r1, #50 strb r1, [r4, #132] -.L2008: +.L2005: mov r6, #8 mov fp, r6 - b .L1905 -.L1908: + b .L1902 +.L1905: cmp r0, #5 - bne .L1909 + bne .L1906 mov r3, #56 mov r6, #8 strb r3, [r4, #128] @@ -11273,10 +11219,10 @@ hynix_get_read_retry_default: strb r3, [r4, #130] mov r3, #59 strb r3, [r4, #131] - b .L1965 -.L1909: + b .L1962 +.L1906: cmp r0, #6 - bne .L1910 + bne .L1907 mov r3, #14 mov r6, #12 strb r3, [r4, #128] @@ -11286,29 +11232,29 @@ hynix_get_read_retry_default: strb r3, [r4, #130] mov r3, #17 strb r3, [r4, #131] - b .L1965 -.L1910: + b .L1962 +.L1907: cmp r0, #7 - bne .L1911 + bne .L1908 add r1, r4, #127 mov r3, #176 -.L1912: +.L1909: strb r3, [r1, #1]! add r3, r3, #1 uxtb r3, r3 cmp r3, #184 - bne .L1912 + bne .L1909 mvn r3, #43 mov r6, #12 strb r3, [r4, #136] mov fp, #10 mvn r3, #42 strb r3, [r4, #137] - b .L1905 -.L1911: + b .L1902 +.L1908: cmp r0, #8 mov r6, #7 - bne .L1965 + bne .L1962 mov r3, #6 strb r6, [r4, #129] strb r3, [r4, #128] @@ -11319,21 +11265,21 @@ hynix_get_read_retry_default: mov fp, #5 mov r3, #10 strb r3, [r4, #132] - b .L1905 -.L1965: + b .L1902 +.L1962: mov fp, #4 -.L1905: +.L1902: sub r3, r5, #1 cmp r3, #1 - bhi .L2004 - ldr r1, .L2014+8 + bhi .L2001 + ldr r1, .L2011+8 mov r9, #0 -.L1913: +.L1910: ldrb ip, [r8, #589] @ zero_extendqisi2 uxtb r3, r9 - ldr r0, .L2014 + ldr r0, .L2011 cmp ip, r3 - bls .L1920 + bls .L1917 add r3, r0, r3 mov r5, #160 ldr r0, [r0, #528] @@ -11347,7 +11293,7 @@ hynix_get_read_retry_default: mov ip, #55 add r5, r5, #144 sub r3, r5, #1 -.L1915: +.L1912: str ip, [r7, #2056] ldrb r0, [r2, #1]! @ zero_extendqisi2 str r1, [sp, #16] @@ -11365,24 +11311,24 @@ hynix_get_read_retry_default: ldr ip, [sp, #8] ldr r1, [sp, #16] strb r0, [r3, #1]! - bne .L1915 + bne .L1912 mov ip, r5 mov r0, #0 -.L1916: +.L1913: add r7, r1, r0 mov r3, #1 -.L1917: +.L1914: 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 .L1917 + bne .L1914 add r0, r0, #1 add ip, ip, #1 cmp r0, #4 - bne .L1916 + bne .L1913 mov r3, #0 add r9, r9, #1 strb r3, [r5, #16] @@ -11392,11 +11338,11 @@ hynix_get_read_retry_default: strb r3, [r5, #48] strb r3, [r5, #41] strb r3, [r5, #49] - b .L1913 -.L2004: + b .L1910 +.L2001: sub r3, r5, #3 cmp r3, #5 - bhi .L1920 + bhi .L1917 smulbb r2, fp, r6 mov r3, r2, asl #4 mov r2, r2, asr #1 @@ -11404,21 +11350,21 @@ hynix_get_read_retry_default: mov r3, r2, asl #1 str r3, [sp, #8] mov r3, #0 -.L2012: +.L2009: str r3, [sp, #12] - ldr r3, .L2014 + ldr r3, .L2011 ldrb r2, [r3, #589] @ zero_extendqisi2 ldrb r3, [sp, #12] @ zero_extendqisi2 cmp r2, r3 - bhi .L1964 -.L1920: + bhi .L1961 +.L1917: 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} -.L1964: - ldr r2, .L2014 +.L1961: + ldr r2, .L2011 mov r10, #160 mov r9, #255 add r3, r2, r3 @@ -11430,7 +11376,7 @@ hynix_get_read_retry_default: mla r10, r10, r3, r4 add r3, r10, #144 str r3, [sp, #24] - ldr r3, .L2014 + ldr r3, .L2011 ldr r3, [r3, #528] str r3, [sp, #4] ldr r3, [sp] @@ -11440,7 +11386,7 @@ hynix_get_read_retry_default: str r9, [r7, #2056] bl nandc_wait_flash_ready cmp r5, #8 - bne .L1922 + bne .L1919 add r3, r4, #144 mov r2, #23 mov r1, #25 @@ -11464,8 +11410,8 @@ hynix_get_read_retry_default: str r1, [r7, #2052] str r2, [r7, #2052] str r3, [r7, #2052] - b .L1923 -.L1922: + b .L1920 +.L1919: cmp r5, #4 mov r3, #54 str r3, [r7, #2056] @@ -11473,27 +11419,27 @@ hynix_get_read_retry_default: streq r9, [r7, #2052] streq r3, [r7, #2048] moveq r3, #204 - beq .L2009 -.L1924: + beq .L2006 +.L1921: sub r3, r5, #5 cmp r3, #1 ldrlsb r3, [r4, #128] @ zero_extendqisi2 strls r3, [r7, #2052] movls r3, #82 - bls .L2010 + bls .L2007 cmp r5, #7 - bne .L1925 + bne .L1922 mov r3, #174 str r3, [r7, #2052] mov r3, #0 str r3, [r7, #2048] mov r3, #176 -.L2009: +.L2006: str r3, [r7, #2052] mov r3, #77 -.L2010: +.L2007: str r3, [r7, #2048] -.L1925: +.L1922: ldr r3, [sp, #4] cmp r5, #6 add r8, r3, r8 @@ -11515,7 +11461,7 @@ hynix_get_read_retry_default: str r3, [r8, #2052] mov r3, #0 str r3, [r8, #2052] -.L1923: +.L1920: ldmia sp, {r2, r3} sub r10, r5, #8 sub r8, r5, #5 @@ -11531,134 +11477,134 @@ hynix_get_read_retry_default: str r3, [sp, #16] orrs r3, r3, r10 movne ip, #16 - bne .L1929 + bne .L1926 cmp r5, #7 movne ip, #2 moveq ip, #32 -.L1929: - ldr r3, .L2014+12 +.L1926: + ldr r3, .L2011+12 ldmia sp, {r1, r2} ldr r3, [r3, #-3272] add r1, r2, r1, asl #8 mov r0, r3 -.L1930: +.L1927: ldr r2, [r1, #2048] strb r2, [r0], #1 rsb r2, r3, r0 uxtb r2, r2 cmp r2, ip - bcc .L1930 + bcc .L1927 cmp r10, #0 - beq .L1931 + beq .L1928 mov r2, #0 -.L1933: +.L1930: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #50 - beq .L1932 + beq .L1929 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #5 - beq .L1932 + beq .L1929 add r2, r2, #1 cmp r2, #8 - bne .L1933 - b .L1934 -.L1932: + bne .L1930 + b .L1931 +.L1929: cmp r0, #7 - bne .L1935 -.L1934: - ldr r0, .L2014+16 + bne .L1932 +.L1931: + ldr r0, .L2011+16 mov r1, #0 bl printk -.L1936: - b .L1936 -.L1931: +.L1933: + b .L1933 +.L1928: cmp r5, #7 - bne .L1937 + bne .L1934 mov r2, r10 -.L1939: +.L1936: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #12 - beq .L1938 + beq .L1935 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #10 - beq .L1938 + beq .L1935 add r2, r2, #1 cmp r2, #8 - bne .L1939 - b .L1940 -.L1938: + bne .L1936 + b .L1937 +.L1935: cmp r0, #7 - bne .L1935 -.L1940: - ldr r0, .L2014+16 + bne .L1932 +.L1937: + ldr r0, .L2011+16 + mov r1, #0 + bl printk +.L1938: + b .L1938 +.L1934: + cmp r5, #6 + bne .L1932 + sub r2, r3, #1 + add r3, r3, #7 +.L1939: + ldrb r0, [r2, #1]! @ zero_extendqisi2 + cmp r0, #12 + beq .L1932 + ldrb r0, [r2, #8] @ zero_extendqisi2 + cmp r0, #4 + beq .L1932 + cmp r2, r3 + bne .L1939 + ldr r0, .L2011+16 mov r1, #0 bl printk .L1941: b .L1941 -.L1937: - cmp r5, #6 - bne .L1935 - sub r2, r3, #1 - add r3, r3, #7 -.L1942: - ldrb r0, [r2, #1]! @ zero_extendqisi2 - cmp r0, #12 - beq .L1935 - ldrb r0, [r2, #8] @ zero_extendqisi2 - cmp r0, #4 - beq .L1935 - cmp r2, r3 - bne .L1942 - ldr r0, .L2014+16 - mov r1, #0 - bl printk -.L1944: - b .L1944 -.L1935: - ldr r3, .L2014+12 +.L1932: + ldr r3, .L2011+12 ldr r0, [sp, #28] ldr r2, [r3, #-3272] add r0, r2, r0 mov r3, r2 -.L1945: +.L1942: cmp r3, r0 ldrne ip, [r1, #2048] strneb ip, [r3], #1 - bne .L1945 -.L2013: - ldr r3, .L2014+12 + bne .L1942 +.L2010: + ldr r3, .L2011+12 mov r0, #8 ldr r1, [sp, #8] ldr r3, [r3, #-3272] add r1, r3, r1 str r1, [sp, #20] -.L1948: +.L1945: ldr ip, [sp, #8] add lr, r1, ip -.L1947: +.L1944: ldrh ip, [r1] mvn ip, ip strh ip, [r1], #2 @ movhi cmp r1, lr - bne .L1947 + bne .L1944 ldr ip, [sp, #8] subs r0, r0, #1 add r1, r1, ip - bne .L1948 -.L1949: + bne .L1945 +.L1946: mov ip, #0 mov r0, ip -.L1952: +.L1949: mov r1, #1 mov lr, #0 mov r1, r1, asl r0 mov r8, #16 mov r7, lr -.L1950: +.L1947: ldrh r9, [r3, lr] and r9, r9, r1 cmp r9, r1 @@ -11666,70 +11612,70 @@ hynix_get_read_retry_default: ldr r9, [sp, #8] subs r8, r8, #1 add lr, lr, r9 - bne .L1950 + bne .L1947 cmp r7, #8 add r0, r0, #1 orrhi ip, ip, r1 uxthhi ip, ip cmp r0, #16 - bne .L1952 + bne .L1949 ldr r1, [sp, #20] strh ip, [r3], #2 @ movhi cmp r3, r1 - bne .L1949 - ldr r3, .L2014+12 + bne .L1946 + ldr r3, .L2011+12 ldr r1, [r3, #-3272] mov r3, #0 sub r0, r1, #4 add ip, r1, #28 -.L1954: +.L1951: ldr lr, [r0, #4]! cmp lr, #0 addeq r3, r3, #1 cmp r0, ip - bne .L1954 + bne .L1951 cmp r3, #7 - ble .L1955 - ldr r0, .L2014+20 + ble .L1952 + ldr r0, .L2011+20 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L2014+16 + ldr r0, .L2011+16 mov r1, #0 bl printk -.L1956: - b .L1956 -.L1955: +.L1953: + b .L1953 +.L1952: cmp r5, #6 moveq r0, #4 - beq .L1957 + beq .L1954 cmp r5, #7 moveq r0, #10 - beq .L1957 + beq .L1954 cmp r10, #0 moveq r0, #8 movne r0, #5 -.L1957: +.L1954: sub r9, fp, #1 ldr r1, [sp, #24] mov ip, #0 uxtb r9, r9 add r9, r9, #1 -.L1958: +.L1955: mov r7, r1 mov r3, r2 -.L1959: +.L1956: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [r7], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, fp - bcc .L1959 + bcc .L1956 add ip, ip, #1 add r2, r2, r9 cmp ip, r6 add r1, r1, r0 - blt .L1958 + blt .L1955 ldmia sp, {r2, r3} mov r8, #255 add r7, r3, r2, asl #8 @@ -11737,7 +11683,7 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready ldr r3, [sp, #16] cmp r3, #0 - beq .L1961 + beq .L1958 mov r3, #54 str r3, [r7, #2056] ldrb r3, [r4, #128] @ zero_extendqisi2 @@ -11753,26 +11699,26 @@ hynix_get_read_retry_default: str r8, [r7, #2052] str r8, [r7, #2052] str r8, [r7, #2052] - b .L2011 -.L1961: + b .L2008 +.L1958: cmp r10, #0 movne r3, #190 moveq r3, #56 -.L2011: +.L2008: str r3, [r7, #2056] bl nandc_wait_flash_ready ldr r3, [sp, #12] add r3, r3, #1 - b .L2012 -.L2015: + b .L2009 +.L2012: .align 2 -.L2014: +.L2011: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2+396 .word .LANCHOR3 - .word .LC141 - .word .LC142 + .word .LC139 + .word .LC140 .fnend .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 @@ -11783,15 +11729,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, .L2018 + ldr r3, .L2015 ldrb r0, [r3, #23] @ zero_extendqisi2 sub r3, r0, #1 cmp r3, #7 bxhi lr b hynix_get_read_retry_default -.L2019: +.L2016: .align 2 -.L2018: +.L2015: .word .LANCHOR2 .fnend .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -11802,61 +11748,62 @@ nandc_xfer_done: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L2066 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} .pad #12 - ldr r5, .L2069 - ldr r7, .L2069+4 - ldr r0, [r5, #528] - mov r4, r5 - bl wait_for_nandc_xfer_completed - ldrb r3, [r5, #516] @ zero_extendqisi2 - mov r1, #0 - ldr r6, [r5, #528] - cmp r3, #9 - strb r1, [r7, #-3268] - bne .L2021 + mov r5, #0 + ldrb r2, [r3, #516] @ zero_extendqisi2 + mov r4, r3 + ldr r7, .L2066+4 + cmp r2, #9 + strb r5, [r7, #-3268] + bne .L2018 + ldr r6, [r3, #528] ldr r3, [r6, #16] str r3, [sp] - ldr r5, [r6, #48] - ubfx r5, r5, #1, #1 - cmp r5, r1 + ldr r3, [r6, #48] + ubfx r3, r3, #1, #1 + cmp r3, r5 + moveq r5, r3 moveq r7, r4 - beq .L2023 -.L2022: + beq .L2020 +.L2019: ldr r2, [r6, #64] ldr r3, [sp] ubfx r2, r2, #16, #6 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L2025 - ldr r3, [r6] + bge .L2022 + ldr r3, [r4, #528] + ldr r3, [r3] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L2024 + beq .L2021 ldr r3, [sp, #4] tst r3, #131072 - beq .L2024 + beq .L2021 ldr r1, [sp, #4] - ldr r0, .L2069+8 + ldr r0, .L2066+8 ubfx r1, r1, #17, #1 bl printk - b .L2025 -.L2024: + b .L2022 +.L2021: ldr r3, [sp] - add r1, r1, #1 + add r5, r5, #1 ubfx r3, r3, #22, #6 - cmp r1, r3, asl #12 - bne .L2022 + cmp r5, r3, asl #12 + bne .L2023 ldr r2, [r6, #64] + mov r1, r5 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L2069+12 + ldr r0, .L2066+12 ubfx r3, r3, #22, #6 bl printk mov r3, #64 - ldr r0, .L2069+16 + ldr r0, .L2066+16 mov r2, #4 ldr r1, [r4, #528] bl rknand_print_hex @@ -11864,16 +11811,22 @@ nandc_xfer_done: tst r3, #8192 mov r3, #1 strb r3, [r7, #-3268] - bne .L2025 - ldr r3, .L2069+20 - ldr r0, .L2069+24 + bne .L2022 + ldr r3, .L2066+20 + ldr r0, .L2066+24 ldr r3, [r3, #4] blx r3 -.L2025: + b .L2022 +.L2023: + mov r0, #5 + mov r1, #10 + bl usleep_range + b .L2019 +.L2022: ldr r3, [r4, #648] - ldr r5, .L2069 + ldr r5, .L2066 cmp r3, #0 - beq .L2029 + beq .L2027 ldr r1, [sp] mov r2, #0 ldr r0, [r5, #640] @@ -11884,34 +11837,38 @@ nandc_xfer_done: ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #2 - b .L2068 -.L2031: + b .L2065 +.L2029: ldr r3, [r4, #528] add r5, r5, #1 ldr r3, [r3, #16] str r3, [sp] bic r3, r5, #-16777216 cmp r3, #0 - bne .L2023 + bne .L2028 ldr r2, [sp] mov r1, r5 ldr r3, [r6, #64] - ldr r0, .L2069+28 + ldr r0, .L2066+28 ubfx r3, r3, #16, #6 bl printk - ldr r0, .L2069+16 + ldr r0, .L2066+16 ldr r1, [r7, #528] mov r2, #4 mov r3, #64 bl rknand_print_hex -.L2023: +.L2028: + mov r0, #5 + mov r1, #10 + bl usleep_range +.L2020: ldr r3, [sp] tst r3, #1048576 - beq .L2031 - ldr r3, [r4, #648] - ldr r5, .L2069 - cmp r3, #0 beq .L2029 + ldr r3, [r4, #648] + ldr r5, .L2066 + cmp r3, #0 + beq .L2027 ldr r1, [sp] mov r2, #1 ldr r0, [r5, #640] @@ -11922,59 +11879,63 @@ nandc_xfer_done: ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #2 - b .L2067 -.L2021: - ldr r3, [r6, #8] + b .L2064 +.L2018: + ldr r7, [r3, #528] + ldr r3, [r7, #8] str r3, [sp] - ldr r5, [r6, #16] - ubfx r5, r5, #1, #1 - cmp r5, #0 - moveq r7, r4 - beq .L2034 - mov r5, r1 -.L2033: - ldr r2, [r6, #28] + ldr r6, [r7, #16] + ubfx r6, r6, #1, #1 + cmp r6, #0 + moveq r5, r4 + beq .L2032 +.L2031: + ldr r2, [r7, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L2036 + bge .L2034 ldr r3, [r4, #528] ldr r3, [r3] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L2035 + beq .L2033 ldr r3, [sp, #4] tst r3, #131072 - beq .L2035 + beq .L2033 ldr r1, [sp, #4] - ldr r0, .L2069+32 + ldr r0, .L2066+32 bl printk - b .L2036 -.L2035: + b .L2034 +.L2033: add r5, r5, #1 bic r3, r5, #-16777216 cmp r3, #0 - bne .L2033 - ldr r2, [r6, #28] + bne .L2035 + ldr r2, [r7, #28] mov r1, r5 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L2069+12 + ldr r0, .L2066+12 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L2069+16 + ldr r0, .L2066+16 ldr r1, [r4, #528] mov r2, #4 mov r3, #64 bl rknand_print_hex - b .L2033 -.L2036: +.L2035: + mov r0, #5 + mov r1, #10 + bl usleep_range + b .L2031 +.L2034: ldr r3, [r4, #648] - ldr r5, .L2069 + ldr r5, .L2066 cmp r3, #0 - beq .L2029 + beq .L2027 ldr r1, [sp] mov r2, #0 ldr r0, [r5, #640] @@ -11985,36 +11946,40 @@ nandc_xfer_done: ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #7 -.L2068: +.L2065: mov r2, #0 - b .L2066 -.L2040: + b .L2063 +.L2038: ldr r3, [r4, #528] - add r5, r5, #1 + add r6, r6, #1 ldr r3, [r3, #8] str r3, [sp] - bic r3, r5, #-16777216 + bic r3, r6, #-16777216 cmp r3, #0 - bne .L2034 + bne .L2037 ldr r2, [sp] - mov r1, r5 - ldr r3, [r6, #28] - ldr r0, .L2069+28 + mov r1, r6 + ldr r3, [r7, #28] + ldr r0, .L2066+28 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L2069+16 - ldr r1, [r7, #528] + ldr r0, .L2066+16 + ldr r1, [r5, #528] mov r2, #4 mov r3, #64 bl rknand_print_hex -.L2034: +.L2037: + mov r0, #5 + mov r1, #10 + bl usleep_range +.L2032: ldr r3, [sp] tst r3, #1048576 - beq .L2040 + beq .L2038 ldr r3, [r4, #648] - ldr r5, .L2069 + ldr r5, .L2066 cmp r3, #0 - beq .L2029 + beq .L2027 ldr r1, [sp] mov r2, #1 ldr r0, [r5, #640] @@ -12025,28 +11990,28 @@ nandc_xfer_done: ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #7 -.L2067: +.L2064: mov r2, #1 -.L2066: +.L2063: bl rknand_dma_unmap_single -.L2029: +.L2027: mov r3, #0 str r3, [r4, #648] add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2070: +.L2067: .align 2 -.L2069: +.L2066: .word .LANCHOR0 .word .LANCHOR3 + .word .LC141 + .word .LC142 .word .LC143 + .word arm_delay_ops + .word 2147483000 .word .LC144 .word .LC145 - .word arm_delay_ops - .word 644245000 - .word .LC146 - .word .LC147 .fnend .size nandc_xfer_done, .-nandc_xfer_done .align 2 @@ -12059,204 +12024,204 @@ nandc_xfer: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} .pad #8 - mov r0, r1 - ldr r7, [sp, #32] mov r4, r1 + ldr r7, [sp, #32] + mov r0, r1 mov r8, r2 mov r1, r2 mov r6, r3 mov r2, r3 mov r3, r7 bl nandc_xfer_start + mov r0, r4 bl nandc_xfer_done cmp r4, #0 movne r0, #0 - bne .L2101 - ldr r5, .L2114 + bne .L2098 + ldr r5, .L2111 ldrb r3, [r5, #516] @ zero_extendqisi2 cmp r3, #9 - bne .L2073 - ldr lr, [r5, #528] - mov r1, r8, lsr #2 - mov ip, #1 - mov r3, r4 + bne .L2070 + ldr ip, [r5, #528] + mov r2, r8, lsr #2 + mov r1, #1 + mov lr, r4 mov r0, r4 -.L2074: - cmp r3, r1 - bcs .L2111 - add r2, r3, #84 - ldr r2, [lr, r2, asl #2] - str r2, [sp, #4] +.L2071: + cmp lr, r2 + bcs .L2108 + add r3, lr, #84 + ldr r3, [ip, r3, asl #2] + str r3, [sp, #4] + ldr r3, [sp, #4] ldr r4, [sp, #4] - ldr r2, [sp, #4] - ubfx r2, r2, #26, #1 - and r2, r2, r4, lsr #10 - and ip, ip, r2 - ldr r2, [sp, #4] - tst r2, #4 - bne .L2093 - ldr r2, [sp, #4] - tst r2, #262144 - bne .L2093 + ubfx r4, r4, #26, #1 + and r4, r4, r3, lsr #10 + ldr r3, [sp, #4] + and r1, r1, r4 + tst r3, #4 + bne .L2090 + ldr r3, [sp, #4] + tst r3, #262144 + bne .L2090 ldr r4, [sp, #4] - ldr r2, [sp, #4] + ldr r3, [sp, #4] ubfx r4, r4, #3, #7 - ubfx r2, r2, #19, #7 - cmp r4, r2 - ldr r2, [sp, #4] - ubfxgt r2, r2, #3, #7 - ubfxle r2, r2, #19, #7 - cmp r0, r2 - movcc r0, r2 - b .L2075 -.L2093: + ubfx r3, r3, #19, #7 + cmp r4, r3 + ldr r3, [sp, #4] + ubfxgt r3, r3, #3, #7 + ubfxle r3, r3, #19, #7 + cmp r0, r3 + movcc r0, r3 + b .L2072 +.L2090: mvn r0, #0 -.L2075: - add r3, r3, #1 - b .L2074 -.L2111: +.L2072: + add lr, lr, #1 + b .L2071 +.L2108: ldr r3, [r5, #528] - cmp ip, #0 + cmp r1, #0 movne r0, #512 ldr r4, [r3] and r3, r4, #139264 cmp r3, #139264 - bne .L2080 + bne .L2077 mov r1, r4 - ldr r0, .L2114+4 + ldr r0, .L2111+4 bl printk ldr r3, [r5, #528] mvn r0, #0 orr r4, r4, #131072 str r4, [r3] -.L2080: +.L2077: tst r4, #8192 - beq .L2081 - ldr r3, .L2114+8 + beq .L2078 + ldr r3, .L2111+8 ldrb r3, [r3, #-3268] @ zero_extendqisi2 cmp r3, #0 - beq .L2081 - ldr r0, .L2114+12 + beq .L2078 + ldr r0, .L2111+12 mov r1, r4 bl printk ldr r3, [r5, #528] mov r2, #1 str r2, [r3, #16] - b .L2082 -.L2073: + b .L2079 +.L2070: ldrb r3, [r5, #660] @ zero_extendqisi2 - mov r0, r8, lsr #1 - mov r2, r7 - mov r1, r4 + mov r1, r8, lsr #1 + mov r2, r4 cmp r3, #25 - mov r3, r4 - movcc lr, #64 - movcs lr, #128 -.L2084: - cmp r1, r0 - add ip, r3, lr - add r2, r2, #4 - bcs .L2112 - ldr r4, [r5, #628] - mov r3, r3, lsr #2 - add r1, r1, #1 - ldr r3, [r4, r3, asl #2] - mov r4, r3, lsr #8 - strb r3, [r2, #-4] - strb r4, [r2, #-3] - mov r4, r3, lsr #16 - mov r3, r3, lsr #24 - strb r4, [r2, #-2] - strb r3, [r2, #-1] - mov r3, ip - b .L2084 -.L2112: - ldr lr, [r5, #528] - mov ip, #0 - mov r1, r8, lsr #2 - mov r0, ip -.L2086: - cmp ip, r1 - bcs .L2113 - add r3, ip, #8 - ldr r3, [lr, r3, asl #2] + mov r3, r7 + movcc ip, #64 + movcs ip, #128 +.L2081: + cmp r2, r1 + add r0, r4, ip + add r3, r3, #4 + bcs .L2109 + ldr lr, [r5, #628] + mov r4, r4, lsr #2 + add r2, r2, #1 + ldr r4, [lr, r4, asl #2] + mov lr, r4, lsr #8 + strb r4, [r3, #-4] + strb lr, [r3, #-3] + mov lr, r4, lsr #16 + mov r4, r4, lsr #24 + strb lr, [r3, #-2] + strb r4, [r3, #-1] + mov r4, r0 + b .L2081 +.L2109: + ldr ip, [r5, #528] + mov r1, #0 + mov r2, r8, lsr #2 + mov r0, r1 +.L2083: + cmp r1, r2 + bcs .L2110 + add r3, r1, #8 + ldr r3, [ip, r3, asl #2] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #4 - bne .L2096 + bne .L2093 ldr r3, [sp, #4] tst r3, #32768 - bne .L2096 - ldr r2, [sp, #4] + bne .L2093 + ldr lr, [sp, #4] ldr r8, [sp, #4] ldr r3, [sp, #4] - ubfx r2, r2, #3, #5 + ubfx lr, lr, #3, #5 ldr r4, [sp, #4] ubfx r8, r8, #27, #1 ubfx r3, r3, #16, #5 ubfx r4, r4, #29, #1 - orr r2, r2, r8, asl #5 + orr lr, lr, r8, asl #5 orr r3, r3, r4, asl #5 - cmp r2, r3 - ldr r2, [sp, #4] - ldrhi r3, [sp, #4] - ubfxhi r2, r2, #3, #5 - ldrls r3, [sp, #4] - ubfxls r2, r2, #16, #5 - ubfxhi r3, r3, #27, #1 - ubfxls r3, r3, #29, #1 - orr r3, r2, r3, asl #5 - cmp r0, r3 - movcc r0, r3 - b .L2087 -.L2096: + cmp lr, r3 + ldr r3, [sp, #4] + ldrhi r4, [sp, #4] + ubfxhi r3, r3, #3, #5 + ldrls r4, [sp, #4] + ubfxls r3, r3, #16, #5 + ubfxhi r4, r4, #27, #1 + ubfxls r4, r4, #29, #1 + orr r4, r3, r4, asl #5 + cmp r0, r4 + movcc r0, r4 + b .L2084 +.L2093: mvn r0, #0 -.L2087: - add ip, ip, #1 - b .L2086 -.L2113: +.L2084: + add r1, r1, #1 + b .L2083 +.L2110: ldr r3, [r5, #528] mov r2, #0 str r2, [r3, #16] ldr r4, [r3] and r3, r4, #139264 cmp r3, #139264 - bne .L2081 + bne .L2078 mov r1, r4 - ldr r0, .L2114+16 + ldr r0, .L2111+16 bl printk - ldr r3, .L2114 + ldr r3, .L2111 orr r4, r4, #131072 ldr r3, [r3, #528] str r4, [r3] - b .L2082 -.L2081: + b .L2079 +.L2078: cmn r0, #1 - beq .L2101 + beq .L2098 ldr r3, [r7] cmn r3, #1 - bne .L2101 + bne .L2098 ldr r3, [r7, #4] cmn r3, #1 - bne .L2101 + bne .L2098 ldr r3, [r6] cmn r3, #1 moveq r0, #512 - b .L2101 -.L2082: + b .L2098 +.L2079: mvn r0, #0 -.L2101: +.L2098: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2115: +.L2112: .align 2 -.L2114: +.L2111: .word .LANCHOR0 - .word .LC148 + .word .LC146 .word .LANCHOR3 - .word .LC149 - .word .LC150 + .word .LC147 + .word .LC148 .fnend .size nandc_xfer, .-nandc_xfer .align 2 @@ -12269,7 +12234,7 @@ flash_read_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 r7, .L2131 + ldr r7, .L2128 mvn r4, #0 .pad #20 sub sp, sp, #20 @@ -12281,40 +12246,40 @@ flash_read_page: rsb r3, r3, #24 ldr r6, [r7, #528] bic r4, r1, r4, asl r3 - ldr r3, .L2131+4 + ldr r3, .L2128+4 ldr r3, [r3] tst r3, #16 - beq .L2117 - ldr r0, .L2131+8 + beq .L2114 + ldr r0, .L2128+8 mov r1, r5 mov r2, r8 mov r3, ip bl printk -.L2117: +.L2114: bl nandc_wait_flash_ready mov r0, r5 bl nandc_cs cmp r8, #0 mov r9, r5, asl #8 - bne .L2118 + bne .L2115 mov r0, r5 bl zftl_flash_enter_slc_mode - b .L2119 -.L2118: + b .L2116 +.L2115: ldr r3, [r7, #584] ldrb r3, [r3, #12] @ zero_extendqisi2 cmp r3, #3 - bne .L2120 - ldr r3, .L2131 + bne .L2117 + ldr r3, .L2128 ldrb r3, [r3, #684] @ zero_extendqisi2 cmp r3, #0 addeq r3, r6, r9 streq r8, [r3, #2056] - beq .L2119 -.L2120: + beq .L2116 +.L2117: mov r0, r5 bl zftl_flash_exit_slc_mode -.L2119: +.L2116: add r10, r6, r9 mov r2, #0 str r2, [r10, #2056] @@ -12335,17 +12300,17 @@ flash_read_page: cmp r1, #3 movne r2, #0 cmp r2, #0 - beq .L2121 - ldr r2, .L2131 + beq .L2118 + ldr r2, .L2128 ldrb r2, [r2, #684] @ zero_extendqisi2 cmp r2, #0 addeq r4, r4, r4, asl #1 subeq r0, r4, #1 addeq r0, r0, r8 - beq .L2130 -.L2121: + beq .L2127 +.L2118: mov r0, r4 -.L2130: +.L2127: bl nandc_set_seed add r6, r6, r9 bl nandc_wait_flash_ready @@ -12369,12 +12334,12 @@ flash_read_page: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2132: +.L2129: .align 2 -.L2131: +.L2128: .word .LANCHOR0 .word .LANCHOR2 - .word .LC151 + .word .LC149 .fnend .size flash_read_page, .-flash_read_page .align 2 @@ -12388,29 +12353,29 @@ micron_read_retrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldr r4, .L2161 + ldr r4, .L2158 mov r6, r0 str r3, [sp, #24] mov r9, r1 str r2, [sp, #20] mov r8, #0 ldrb r3, [r4, #660] @ zero_extendqisi2 - ldr r10, .L2161+4 + ldr r10, .L2158+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] str r3, [sp, #16] -.L2134: +.L2131: ldr r3, [sp, #16] mov r7, #0 mvn r4, #0 add r5, r3, r6, asl #8 -.L2135: +.L2132: ldrb r3, [r10, #-3260] @ zero_extendqisi2 cmp r7, r3 - bcs .L2139 + bcs .L2136 mov r3, #239 mov r0, #200 str r3, [r5, #2056] @@ -12430,22 +12395,22 @@ micron_read_retrial: str r3, [sp] ldr r3, [sp, #24] bl flash_read_page - ldr r3, .L2161+8 + ldr r3, .L2158+8 ldr r3, [r3] tst r3, #4096 mov ip, r0 - beq .L2136 + beq .L2133 str r0, [sp] mov r1, r7 str r0, [sp, #28] mov r2, r9 - ldr r0, .L2161+12 + ldr r0, .L2158+12 mov r3, r4 bl printk ldr ip, [sp, #28] -.L2136: +.L2133: cmn ip, #1 - beq .L2137 + beq .L2134 ldr r3, [r10, #-3272] cmn r4, #1 moveq r4, ip @@ -12454,13 +12419,13 @@ micron_read_retrial: str r3, [sp, #24] ldr r3, [sp, #12] cmp ip, r3 - bcc .L2146 -.L2137: + bcc .L2143 +.L2134: mov r7, fp - b .L2135 -.L2146: + b .L2132 +.L2143: mov r4, ip -.L2139: +.L2136: ldr r3, [sp, #16] mov r5, r6, asl #8 mov r0, #200 @@ -12477,10 +12442,10 @@ micron_read_retrial: str r3, [fp, #2048] ldr r3, [sp, #12] cmp r4, r3 - bcc .L2141 + bcc .L2138 cmn r4, #1 movne r4, #256 -.L2141: +.L2138: cmn r4, #1 movne fp, #0 moveq fp, #1 @@ -12488,18 +12453,18 @@ micron_read_retrial: movne r3, fp orreq r3, fp, #1 cmp r3, #0 - beq .L2142 + beq .L2139 mov r1, r7 mov r3, r7 str r4, [sp] mov r2, r9 - ldr r0, .L2161+16 + ldr r0, .L2158+16 eor r7, r8, #1 bl printk ands r7, fp, r7 - beq .L2143 + beq .L2140 bl nandc_wait_flash_ready - ldr r3, .L2161 + ldr r3, .L2158 mov r0, #200 mov r8, #1 ldr r3, [r3, #528] @@ -12515,12 +12480,12 @@ micron_read_retrial: str r3, [r5, #2048] str r3, [r5, #2048] str r3, [r5, #2048] - b .L2134 -.L2143: + b .L2131 +.L2140: cmp r8, #0 - beq .L2144 + beq .L2141 bl nandc_wait_flash_ready - ldr r3, .L2161 + ldr r3, .L2158 mov r0, #200 ldr r9, [r3, #528] mov r3, #239 @@ -12536,13 +12501,13 @@ micron_read_retrial: str r7, [r6, #2048] str r7, [r6, #2048] str r7, [r6, #2048] - b .L2144 -.L2142: + b .L2141 +.L2139: cmp r8, #0 - beq .L2144 + beq .L2141 str r3, [sp, #12] bl nandc_wait_flash_ready - ldr r2, .L2161 + ldr r2, .L2158 mov r0, #200 mov r4, #256 ldr r9, [r2, #528] @@ -12558,20 +12523,20 @@ micron_read_retrial: str r3, [r6, #2048] str r3, [r6, #2048] str r3, [r6, #2048] -.L2144: +.L2141: 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} -.L2162: +.L2159: .align 2 -.L2161: +.L2158: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR2 - .word .LC152 - .word .LC153 + .word .LC150 + .word .LC151 .fnend .size micron_read_retrial, .-micron_read_retrial .align 2 @@ -12591,7 +12556,7 @@ toshiba_3d_read_retrial: mov r9, r1 str r2, [sp, #12] bl nandc_wait_flash_ready - ldr r7, .L2211 + ldr r7, .L2208 add r6, r10, #8 ldr r3, [r7, #528] add r6, r3, r6, asl #8 @@ -12605,28 +12570,28 @@ toshiba_3d_read_retrial: cmp r4, #0 str r3, [sp, #16] mvn r4, #0 - bne .L2165 + bne .L2162 ldr r3, [sp, #8] mov r8, #1 add r3, r3, r10, asl #8 str r3, [sp, #16] -.L2172: - ldr r3, .L2211 +.L2169: + ldr r3, .L2208 mov r0, r6 ldrb r3, [r3, #661] @ zero_extendqisi2 cmp r3, #36 - bne .L2166 + bne .L2163 mov r2, #0 mov r1, r8 bl toshiba_tlc_set_rr_para mov r3, #93 ldr r2, [sp, #16] str r3, [r2, #2056] - b .L2167 -.L2166: + b .L2164 +.L2163: uxtb r1, r8 bl toshiba_3d_set_slc_rr_para -.L2167: +.L2164: ldr r3, [sp, #64] mov r0, r10 mov r1, r9 @@ -12634,22 +12599,22 @@ toshiba_3d_read_retrial: str r3, [sp] mov r3, fp bl flash_read_page - ldr r3, .L2211+4 + ldr r3, .L2208+4 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2168 + beq .L2165 mov r3, ip - ldr r0, .L2211+8 + ldr r0, .L2208+8 mov r1, r8 mov r2, r9 str ip, [sp, #20] bl printk ldr ip, [sp, #20] -.L2168: +.L2165: cmn ip, #1 - beq .L2169 - ldr r3, .L2211+12 + beq .L2166 + ldr r3, .L2208+12 cmn r4, #1 moveq r4, ip ldr r2, [r3, #-3272] @@ -12658,45 +12623,45 @@ toshiba_3d_read_retrial: str r2, [sp, #12] add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bcc .L2187 -.L2169: + bcc .L2184 +.L2166: add r8, r8, #1 cmp r8, r5 - bne .L2172 - b .L2171 -.L2187: + bne .L2169 + b .L2168 +.L2184: mov r5, r8 mov r4, ip -.L2171: - ldr r3, .L2211 +.L2168: + ldr r3, .L2208 mov r1, #0 mov r0, r6 ldrb r3, [r3, #661] @ zero_extendqisi2 cmp r3, #36 moveq r2, r1 - beq .L2210 + beq .L2207 bl toshiba_3d_set_slc_rr_para - b .L2174 -.L2165: + b .L2171 +.L2162: ldr r3, [sp, #8] mov r5, #1 add r8, r3, r10, asl #8 -.L2181: - ldr r3, .L2211 +.L2178: + ldr r3, .L2208 mov r0, r6 ldrb r3, [r3, #661] @ zero_extendqisi2 cmp r3, #36 - bne .L2175 + bne .L2172 mov r1, r5 mov r2, #1 bl toshiba_tlc_set_rr_para mov r3, #93 - b .L2209 -.L2175: + b .L2206 +.L2172: uxtb r1, r5 bl toshiba_3d_set_tlc_rr_para mov r3, #38 -.L2209: +.L2206: str r3, [r8, #2056] mov r0, r10 ldr r3, [sp, #64] @@ -12705,22 +12670,22 @@ toshiba_3d_read_retrial: str r3, [sp] mov r3, fp bl flash_read_page - ldr r3, .L2211+4 + ldr r3, .L2208+4 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2177 + beq .L2174 mov r3, ip - ldr r0, .L2211+16 + ldr r0, .L2208+16 mov r1, r5 mov r2, r9 str ip, [sp, #20] bl printk ldr ip, [sp, #20] -.L2177: +.L2174: cmn ip, #1 - beq .L2178 - ldr r3, .L2211+12 + beq .L2175 + ldr r3, .L2208+12 cmn r4, #1 moveq r4, ip ldr r2, [r3, #-3272] @@ -12729,33 +12694,33 @@ toshiba_3d_read_retrial: str r2, [sp, #12] add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bcc .L2188 -.L2178: + bcc .L2185 +.L2175: ldr r3, [sp, #16] add r5, r5, #1 cmp r5, r3 - bne .L2181 - b .L2180 -.L2188: + bne .L2178 + b .L2177 +.L2185: mov r4, ip -.L2180: - ldr r3, .L2211 +.L2177: + ldr r3, .L2208 mov r0, r6 mov r1, #0 ldrb r3, [r3, #661] @ zero_extendqisi2 cmp r3, #36 - bne .L2182 + bne .L2179 mov r2, #1 -.L2210: +.L2207: bl toshiba_tlc_set_rr_para - b .L2174 -.L2182: + b .L2171 +.L2179: bl toshiba_3d_set_tlc_rr_para -.L2174: - ldr r3, .L2211 +.L2171: + ldr r3, .L2208 ldrb r3, [r3, #661] @ zero_extendqisi2 cmp r3, #36 - bne .L2183 + bne .L2180 ldr r3, [sp, #8] add r10, r3, r10, asl #8 mov r3, #85 @@ -12765,38 +12730,38 @@ toshiba_3d_read_retrial: str r3, [r10, #2048] mov r3, #255 str r3, [r10, #2056] -.L2183: +.L2180: ldrb r3, [r7, #660] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L2184 + bcc .L2181 cmn r4, #1 movne r4, #256 -.L2184: +.L2181: cmn r4, #1 cmpne r4, #256 - bne .L2185 + bne .L2182 str r4, [sp] mov r1, r5 - ldr r0, .L2211+20 + ldr r0, .L2208+20 mov r2, r9 mov r3, r5 bl printk -.L2185: +.L2182: 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} -.L2212: +.L2209: .align 2 -.L2211: +.L2208: .word .LANCHOR0 .word .LANCHOR2 - .word .LC154 + .word .LC152 .word .LANCHOR3 - .word .LC155 - .word .LC156 + .word .LC153 + .word .LC154 .fnend .size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial .align 2 @@ -12811,7 +12776,7 @@ toshiba_read_retrial: .pad #36 sub sp, sp, #36 mov r8, r0 - ldr r4, .L2246 + ldr r4, .L2243 str r3, [sp, #20] add r9, r8, #8 str r1, [sp, #12] @@ -12826,48 +12791,48 @@ toshiba_read_retrial: str r3, [sp, #24] movls r3, #0 strls r3, [sp, #8] - bls .L2214 + bls .L2211 ldrb r5, [r4, #623] @ zero_extendqisi2 cmp r5, #0 streq r5, [sp, #8] - beq .L2215 + beq .L2212 mov r0, #1 bl nandc_set_if_mode mov r3, #1 str r3, [sp, #8] -.L2215: +.L2212: ldr r3, [sp, #24] mov r2, #92 add r3, r6, r3 str r2, [r3, #2056] mov r2, #197 str r2, [r3, #2056] -.L2214: - ldr fp, .L2246+4 +.L2211: + ldr fp, .L2243+4 mov r7, #1 mvn r10, #0 mov r3, r8, asl #8 str r3, [sp, #28] -.L2216: +.L2213: ldrb r3, [fp, #-3260] @ zero_extendqisi2 add r3, r3, #1 cmp r7, r3 - bcs .L2245 + bcs .L2242 ldrb r3, [r4, #661] @ zero_extendqisi2 mov r0, r9 uxtb r1, r7 sub r3, r3, #67 cmp r3, #1 - bhi .L2217 + bhi .L2214 bl sandisk_set_rr_para - b .L2218 -.L2217: + b .L2215 +.L2214: bl toshiba_set_rr_para -.L2218: +.L2215: ldrb r3, [r4, #661] @ zero_extendqisi2 cmp r3, #34 - bne .L2219 - ldr r3, .L2246+4 + bne .L2216 + ldr r3, .L2243+4 ldrb r3, [r3, #-3260] @ zero_extendqisi2 sub r3, r3, #3 cmp r7, r3 @@ -12875,7 +12840,7 @@ toshiba_read_retrial: moveq r2, #179 addeq r3, r6, r3 streq r2, [r3, #2056] -.L2219: +.L2216: ldr r3, [sp, #24] mov r2, #38 add r1, sp, #12 @@ -12890,7 +12855,7 @@ toshiba_read_retrial: bl flash_read_page cmn r0, #1 mov r5, r0 - beq .L2222 + beq .L2219 ldr r3, [fp, #-3272] cmn r10, #1 moveq r10, r0 @@ -12900,61 +12865,61 @@ toshiba_read_retrial: ldrb r3, [r4, #660] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L2224 -.L2222: + bcc .L2221 +.L2219: add r7, r7, #1 - b .L2216 -.L2245: + b .L2213 +.L2242: mov r5, r10 -.L2224: +.L2221: ldrb r3, [r4, #661] @ zero_extendqisi2 mov r0, r9 mov r1, #0 sub r3, r3, #67 cmp r3, #1 - bhi .L2226 + bhi .L2223 bl sandisk_set_rr_para - b .L2227 -.L2226: + b .L2224 +.L2223: bl toshiba_set_rr_para -.L2227: +.L2224: add r6, r6, r8, asl #8 mov r3, #255 str r3, [r6, #2056] ldrb r3, [r4, #660] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r5, r3, asr #2 - bcc .L2228 + bcc .L2225 cmn r5, #1 movne r5, #256 -.L2228: +.L2225: cmn r5, #1 cmpne r5, #256 - bne .L2229 + bne .L2226 str r5, [sp] mov r1, r7 - ldr r0, .L2246+8 + ldr r0, .L2243+8 mov r3, r7 ldr r2, [sp, #12] bl printk -.L2229: +.L2226: bl nandc_wait_flash_ready ldr r3, [sp, #8] cmp r3, #0 - beq .L2230 + beq .L2227 mov r0, #4 bl nandc_set_if_mode -.L2230: +.L2227: mov r0, r5 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2247: +.L2244: .align 2 -.L2246: +.L2243: .word .LANCHOR0 .word .LANCHOR3 - .word .LC156 + .word .LC154 .fnend .size toshiba_read_retrial, .-toshiba_read_retrial .align 2 @@ -12967,7 +12932,7 @@ 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, .L2267 + ldr r3, .L2264 .pad #28 sub sp, sp, #28 mov r10, r2 @@ -12982,10 +12947,10 @@ hynix_read_retrial: ldrb r9, [r2, #114] @ zero_extendqisi2 ldrb r5, [r3, #120] @ zero_extendqisi2 bl nandc_wait_flash_ready - ldr ip, .L2267+4 -.L2249: + ldr ip, .L2264+4 +.L2246: cmp r6, r9 - bcs .L2253 + bcs .L2250 add r5, r5, #1 mov r0, r7 str ip, [sp, #20] @@ -13003,7 +12968,7 @@ hynix_read_retrial: bl flash_read_page cmn r0, #1 ldr ip, [sp, #20] - beq .L2251 + beq .L2248 ldr r3, [sp, #16] cmn r4, #1 ldr r10, [ip, #-3272] @@ -13012,44 +12977,44 @@ hynix_read_retrial: ldrb r3, [r3, #660] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L2257 -.L2251: + bcc .L2254 +.L2248: add r6, r6, #1 - b .L2249 -.L2257: + b .L2246 +.L2254: mov r4, r0 -.L2253: +.L2250: ldr r3, [sp, #12] strb r5, [r3, #120] ldr r3, [sp, #16] ldrb r3, [r3, #660] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L2255 + bcc .L2252 cmn r4, #1 movne r4, #256 -.L2255: +.L2252: cmn r4, #1 cmpne r4, #256 - bne .L2256 + bne .L2253 str r4, [sp] mov r1, r6 - ldr r0, .L2267+8 + ldr r0, .L2264+8 mov r2, r8 mov r3, r6 bl printk -.L2256: +.L2253: 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} -.L2268: +.L2265: .align 2 -.L2267: +.L2264: .word .LANCHOR0 .word .LANCHOR3 - .word .LC157 + .word .LC155 .fnend .size hynix_read_retrial, .-hynix_read_retrial .align 2 @@ -13076,7 +13041,7 @@ flash_ddr_tuning_read: str r0, [sp, #24] str r4, [sp, #20] str r4, [sp, #12] -.L2275: +.L2272: uxtb r0, r7 bl nandc_set_ddr_para mov r0, r8 @@ -13086,91 +13051,91 @@ flash_ddr_tuning_read: str r3, [sp] ldr r3, [sp, #16] bl flash_read_page - ldr r3, .L2293 + ldr r3, .L2290 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2270 + beq .L2267 mov r3, ip - ldr r0, .L2293+4 + ldr r0, .L2290+4 mov r1, r7 mov r2, r10 str ip, [sp, #28] bl printk ldr ip, [sp, #28] -.L2270: +.L2267: add r3, r6, #1 cmp ip, r3 - bhi .L2271 - ldr r3, .L2293+8 + bhi .L2268 + ldr r3, .L2290+8 ldr fp, [r3, #-3272] ldr r3, [r3, #-3264] str r3, [sp, #16] - ldr r3, .L2293+12 + ldr r3, .L2290+12 ldrb r3, [r3, #660] @ zero_extendqisi2 cmp ip, r3, lsr #2 - bcs .L2281 + bcs .L2278 add r5, r5, #1 cmp r5, #7 - bls .L2281 + bls .L2278 rsb r4, r5, r7 mov r6, ip mov r9, #0 - b .L2273 -.L2271: + b .L2270 +.L2268: ldr r3, [sp, #12] cmp r3, r5 - bcs .L2282 + bcs .L2279 cmp r5, #7 rsb r3, r5, r4 str r3, [sp, #20] - bhi .L2274 + bhi .L2271 str r5, [sp, #12] - b .L2282 -.L2281: + b .L2279 +.L2278: mov r4, r7 mov r6, ip mov r9, #0 - b .L2272 -.L2282: + b .L2269 +.L2279: mov r5, #0 -.L2272: +.L2269: add r7, r7, #2 cmp r7, #50 - bne .L2275 -.L2273: + bne .L2272 +.L2270: ldr r2, [sp, #12] ldr r3, [sp, #20] cmp r2, r5 movhi r4, r3 -.L2274: +.L2271: cmp r4, #0 - beq .L2276 - ldr r3, .L2293+12 - ldr r2, .L2293+16 + beq .L2273 + ldr r3, .L2290+12 + ldr r2, .L2290+16 ldrb r3, [r3, #660] @ zero_extendqisi2 umull r2, r3, r3, r2 ubfx r3, r3, #1, #8 cmp r6, r3 - bcs .L2276 - ldr r0, .L2293+20 + bcs .L2273 + ldr r0, .L2290+20 mov r1, r4 bl printk uxtb r0, r4 - b .L2292 -.L2276: + b .L2289 +.L2273: ldrb r0, [sp, #24] @ zero_extendqisi2 -.L2292: +.L2289: bl nandc_set_ddr_para cmn r9, #1 - bne .L2278 + bne .L2275 mov r1, r8 mov r2, r10 - ldr r0, .L2293+24 + ldr r0, .L2290+24 bl printk mov r0, r8 bl flash_reset - ldr r4, .L2293+12 + ldr r4, .L2290+12 mov r0, #1 bl flash_set_interface_mode mov r0, #1 @@ -13191,44 +13156,44 @@ flash_ddr_tuning_read: mov r1, r8 mov r2, r10 mov r6, r0 - ldr r0, .L2293+28 + ldr r0, .L2290+28 mov r3, r6 bl printk ldrb r3, [r4, #660] @ zero_extendqisi2 cmp r6, r3 - bhi .L2283 - ldr r2, .L2293+8 + bhi .L2280 + ldr r2, .L2290+8 ldr r3, [r2, #-3256] add r3, r3, #1 str r3, [r2, #-3256] cmp r3, #100 movhi r3, #0 strhib r3, [r4, #623] - bls .L2279 - b .L2278 -.L2283: + bls .L2276 + b .L2275 +.L2280: mov r6, r9 -.L2279: +.L2276: ldrb r0, [r5, #720] @ zero_extendqisi2 bl flash_set_interface_mode ldrb r0, [r5, #720] @ zero_extendqisi2 bl nandc_set_if_mode -.L2278: +.L2275: mov r0, r6 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2294: +.L2291: .align 2 -.L2293: +.L2290: .word .LANCHOR2 - .word .LC158 + .word .LC156 .word .LANCHOR3 .word .LANCHOR0 .word -1431655765 + .word .LC157 + .word .LC158 .word .LC159 - .word .LC160 - .word .LC161 .fnend .size flash_ddr_tuning_read, .-flash_ddr_tuning_read .align 2 @@ -13242,62 +13207,63 @@ flash_read_page_en: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r3 - ldr r5, .L2326 + ldr r5, .L2323 mov r10, r0 mov r4, r1 mov r8, r2 ldr r9, [sp, #48] ldrb r3, [r5, #589] @ zero_extendqisi2 cmp r3, r0 - bhi .L2296 - ldr r1, .L2326+4 - mov r2, #404 - ldr r0, .L2326+8 + bhi .L2293 + ldr r1, .L2323+4 + movw r2, #405 + ldr r0, .L2323+8 bl printk bl dump_stack -.L2296: +.L2293: add r2, r5, r10 - ldr r3, .L2326 + ldr r3, .L2323 ldrb r6, [r2, #668] @ zero_extendqisi2 ldrb r2, [r5, #589] @ zero_extendqisi2 - cmp r2, r10 - bcs .L2297 - ldr r3, .L2326+12 + cmp r10, r2 + bcc .L2294 + ldr r3, .L2323+12 ldr r3, [r3] tst r3, #64 - beq .L2325 - ldr r0, .L2326+16 + beq .L2322 + str r2, [sp] mov r1, r6 + ldr r0, .L2323+16 mov r2, r10 mov r3, r4 bl printk -.L2325: +.L2322: mvn r0, #0 - b .L2322 -.L2297: + b .L2319 +.L2294: tst r4, #50331648 - bne .L2300 + bne .L2297 ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 - beq .L2301 + beq .L2298 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, #0 - beq .L2300 -.L2301: + beq .L2297 +.L2298: ldrh r10, [r5, #2] mov r0, r4 mov r1, r10 bl __aeabi_uidiv ldrb r3, [r5, #1] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L2326 + ldreq r3, .L2323 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 -.L2300: +.L2297: str r9, [sp] mov r0, r6 mov r1, r4 @@ -13305,18 +13271,18 @@ flash_read_page_en: mov r3, r7 bl flash_read_page cmn r0, #1 - bne .L2322 + bne .L2319 ldrb fp, [r5, #656] @ zero_extendqisi2 - ldr r10, .L2326 + ldr r10, .L2323 cmp fp, #0 - bne .L2304 -.L2307: - ldr r3, .L2326+20 + bne .L2301 +.L2304: + ldr r3, .L2323+20 ldr ip, [r3, #-3252] cmp ip, #0 - bne .L2305 - b .L2306 -.L2304: + bne .L2302 + b .L2303 +.L2301: mov r3, #0 mov r0, r6 strb r3, [r10, #656] @@ -13327,9 +13293,9 @@ flash_read_page_en: bl flash_read_page strb fp, [r10, #656] cmn r0, #1 - beq .L2307 - b .L2322 -.L2305: + beq .L2304 + b .L2319 +.L2302: str r9, [sp] mov r0, r6 mov r1, r4 @@ -13337,18 +13303,18 @@ flash_read_page_en: mov r3, r7 blx ip cmn r0, #1 - bne .L2322 -.L2306: + bne .L2319 +.L2303: ldrb r3, [r5, #656] @ zero_extendqisi2 mov r1, #0 - ldr r0, .L2326+24 + ldr r0, .L2323+24 mov r2, r4 str r3, [sp] mvn r3, #0 bl printk ldrb r3, [r5, #623] @ zero_extendqisi2 cmp r3, #0 - beq .L2325 + beq .L2322 str r9, [sp, #48] mov r0, r6 mov r1, r4 @@ -13358,20 +13324,20 @@ flash_read_page_en: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b flash_ddr_tuning_read -.L2322: +.L2319: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2327: +.L2324: .align 2 -.L2326: +.L2323: .word .LANCHOR0 .word .LANCHOR1+1536 .word .LC0 .word .LANCHOR2 - .word .LC162 + .word .LC160 .word .LANCHOR3 - .word .LC163 + .word .LC161 .fnend .size flash_read_page_en, .-flash_read_page_en .align 2 @@ -13384,10 +13350,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, .L2339 + ldr r6, .L2336 .pad #20 sub sp, sp, #20 - ldr r1, .L2339+4 + ldr r1, .L2336+4 mov r10, r0 mov fp, r2 mov r8, r3 @@ -13402,12 +13368,12 @@ flash_get_last_written_page: bl flash_read_page_en cmp r0, #512 moveq ip, #0 - bne .L2329 -.L2330: + bne .L2326 +.L2327: sxth r3, ip sxth r2, r4 cmp r3, r2 - bgt .L2329 + bgt .L2326 add r3, r3, r2 mov r0, r10 mov r2, fp @@ -13425,28 +13391,28 @@ flash_get_last_written_page: addne ip, r5, #1 uxtheq r4, r5 uxthne ip, ip - b .L2330 -.L2329: + b .L2327 +.L2326: ldr r3, [r6] sxth r4, r4 tst r3, #4096 - beq .L2334 - ldr r0, .L2339+8 + beq .L2331 + ldr r0, .L2336+8 mov r1, r9 mov r2, r4 ldr r3, [r8] bl printk -.L2334: +.L2331: mov r0, r4 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2340: +.L2337: .align 2 -.L2339: +.L2336: .word .LANCHOR2 .word .LANCHOR3-3360 - .word .LC164 + .word .LC162 .fnend .size flash_get_last_written_page, .-flash_get_last_written_page .align 2 @@ -13460,7 +13426,7 @@ flash_get_last_written_page_ext: .save {r4, lr} .pad #8 mov r4, r1 - ldr r1, .L2343 + ldr r1, .L2340 mov lr, r2 mov ip, r0 add r1, r1, #2928 @@ -13479,9 +13445,9 @@ flash_get_last_written_page_ext: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, pc} -.L2344: +.L2341: .align 2 -.L2343: +.L2340: .word .LANCHOR0 .fnend .size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext @@ -13496,10 +13462,10 @@ flash_ddr_para_scan: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r8, r0 - ldr r4, .L2352 + ldr r4, .L2349 mov r7, r1 mov r6, #1 - ldr r5, .L2352+4 + ldr r5, .L2349+4 mov r9, #4 ldrb r0, [r4, #720] @ zero_extendqisi2 strb r6, [r4, #623] @@ -13520,58 +13486,55 @@ flash_ddr_para_scan: bl flash_read_page mov r3, r4 cmn r0, #1 - bne .L2346 + bne .L2343 ldrb r2, [r4, #720] @ zero_extendqisi2 tst r2, #1 - beq .L2346 + beq .L2343 mov r0, r6 bl flash_set_interface_mode mov r0, r6 bl nandc_set_if_mode mov r3, #0 strb r3, [r4, #623] - b .L2347 -.L2346: + b .L2344 +.L2343: mov r2, #1 strb r2, [r3, #623] -.L2347: +.L2344: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2353: +.L2350: .align 2 -.L2352: +.L2349: .word .LANCHOR0 .word .LANCHOR3 .fnend .size flash_ddr_para_scan, .-flash_ddr_para_scan .global __aeabi_uidivmod .align 2 - .type id_block_read_data.constprop.30, %function -id_block_read_data.constprop.30: + .type id_block_read_data.constprop.29, %function +id_block_read_data.constprop.29: .fnstart - @ args = 0, pretend = 0, frame = 120 + @ args = 0, pretend = 0, frame = 112 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2386 + ldr r3, .L2382 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #132 - sub sp, sp, #132 - ldr r3, [r3] mov r6, r2 - str r1, [sp, #24] - mov r5, #0 - ldr r4, .L2386+4 - mov r7, #4 - str r3, [sp, #124] - mov r10, r5 - ldr r3, .L2386+8 - str r0, [sp, #40] ldrb r2, [r3, #13] @ zero_extendqisi2 - ldrh r1, [r3, #30] + .pad #124 + sub sp, sp, #124 + ldr r4, .L2382+4 + mov r5, #0 + str r1, [sp, #24] + mov r7, #4 str r2, [sp, #28] + mov r10, r5 + ldrh r1, [r3, #30] ldrh r3, [sp, #28] + str r0, [sp, #40] smulbb r1, r1, r3 ldrb r3, [r4, #656] @ zero_extendqisi2 strb r5, [r4, #656] @@ -13584,10 +13547,10 @@ id_block_read_data.constprop.30: str r3, [sp, #32] and r3, r1, #3 str r3, [sp, #16] -.L2355: +.L2352: ldr r3, [sp, #24] cmp r5, r3 - bcs .L2385 + bcs .L2381 ldr r3, [sp, #16] mov r1, r7 rsb r3, r3, r7 @@ -13603,95 +13566,95 @@ id_block_read_data.constprop.30: add r2, r4, r3 ldrh r2, [r2, #4] moveq r0, r2 - beq .L2357 + beq .L2354 ldrb r2, [r4, #1] @ zero_extendqisi2 cmp r2, #0 movne r0, r3 -.L2357: +.L2354: ldr r2, [sp, #32] ldr r3, [sp, #28] ldr r1, [sp, #16] mla r3, r3, r0, r2 str r3, [sp, #36] - ldr r3, .L2386+4 + ldr r3, .L2382+4 ldr r2, [sp, #36] ldrb r9, [r3, #588] @ zero_extendqisi2 add r0, r2, r1 ldr r3, [r3, #584] ldrb r1, [r3, #9] @ zero_extendqisi2 bl __aeabi_uidiv - ldr r3, .L2386+4 + ldr r3, .L2382+4 ldrb r3, [r3, #660] @ zero_extendqisi2 mov fp, r0 mov r0, r9 str r3, [sp, #48] bl nandc_bch_sel -.L2358: +.L2355: str r7, [sp] mov r0, #0 mov r1, fp mov r2, r6 - add r3, sp, #60 + add r3, sp, #56 bl flash_read_page cmn r0, #1 mov r8, r0 - bne .L2365 + bne .L2362 ldrb ip, [r4, #656] @ zero_extendqisi2 cmp ip, #0 - bne .L2360 -.L2363: - ldr r3, .L2386+12 + bne .L2357 +.L2360: + ldr r3, .L2382+8 ldr ip, [r3, #-3252] cmp ip, #0 - bne .L2361 - b .L2362 -.L2360: + bne .L2358 + b .L2359 +.L2357: mov r0, #0 str r7, [sp] mov r1, fp mov r2, r6 - add r3, sp, #60 + add r3, sp, #56 str ip, [sp, #52] strb r0, [r4, #656] bl flash_read_page ldr ip, [sp, #52] cmn r0, #1 strb ip, [r4, #656] - beq .L2363 - b .L2384 -.L2361: + beq .L2360 + b .L2380 +.L2358: str r7, [sp] mov r0, #0 mov r1, fp mov r2, r6 - add r3, sp, #60 + add r3, sp, #56 blx ip cmn r0, #1 - bne .L2384 -.L2362: + bne .L2380 +.L2359: ldrb r3, [r4, #623] @ zero_extendqisi2 cmp r3, #0 - beq .L2365 + beq .L2362 str r7, [sp] mov r0, #0 mov r1, fp mov r2, r6 - add r3, sp, #60 + add r3, sp, #56 bl flash_ddr_tuning_read -.L2384: +.L2380: mov r8, r0 -.L2365: +.L2362: subs r9, r9, #16 movne r9, #1 cmn r8, #1 movne r9, #0 cmp r9, #0 - beq .L2366 + beq .L2363 mov r0, #16 mov r9, #16 bl nandc_bch_sel - b .L2358 -.L2366: + b .L2355 +.L2363: ldr r0, [sp, #48] bl nandc_bch_sel cmn r8, #1 @@ -13706,1101 +13669,52 @@ id_block_read_data.constprop.30: movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L2368 + beq .L2365 ldr r3, [r6] - ldr r2, .L2386+16 + ldr r2, .L2382+12 cmp r3, r2 - bne .L2368 + bne .L2365 ldr r3, [sp, #24] ldr r2, [sp, #20] ldrb r7, [r6, #17] @ zero_extendqisi2 add r3, r3, r2 str r3, [sp, #24] - b .L2369 -.L2368: + b .L2366 +.L2365: ldr r3, [sp, #20] mov r2, r5 - ldr r0, .L2386+20 + ldr r0, .L2382+16 ldr r1, [sp, #36] add r6, r6, r3, asl #9 - ldr r3, [sp, #64] - str r3, [sp] ldr r3, [sp, #60] + str r3, [sp] + ldr r3, [sp, #56] bl printk mov r3, #0 str r3, [sp, #16] -.L2369: +.L2366: ldr r3, [sp, #20] add r5, r3, r5 uxth r5, r5 - b .L2355 -.L2385: - ldr r3, .L2386+4 + b .L2352 +.L2381: + ldr r3, .L2382+4 mov r0, r10 ldrb r2, [sp, #44] @ zero_extendqisi2 strb r2, [r3, #656] - ldr r3, .L2386 - ldr r2, [sp, #124] - ldr r3, [r3] - cmp r2, r3 - beq .L2371 - bl __stack_chk_fail -.L2371: - add sp, sp, #132 + add sp, sp, #124 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2387: +.L2383: .align 2 -.L2386: - .word __stack_chk_guard - .word .LANCHOR0 +.L2382: .word .LANCHOR2 + .word .LANCHOR0 .word .LANCHOR3 .word 1179535694 - .word .LC165 + .word .LC163 .fnend - .size id_block_read_data.constprop.30, .-id_block_read_data.constprop.30 - .align 2 - .global flash_complete_plane_page_read - .type flash_complete_plane_page_read, %function -flash_complete_plane_page_read: - .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 - mvn r3, #0 - ldr r4, .L2405 - 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 - cmp r3, r5 - bhi .L2389 - ldr r1, .L2405+4 - movw r2, #909 - ldr r0, .L2405+8 - bl printk - bl dump_stack -.L2389: - ldrb r2, [r4, #589] @ zero_extendqisi2 - ldr r3, .L2405 - cmp r2, r5 - mvnls r0, #0 - bls .L2390 - add r5, r3, r5 - mvn r2, #0 - bic r9, r10, r2, asl r9 - ubfx r10, r10, #24, #2 - ldrb r5, [r5, #668] @ zero_extendqisi2 - ldr r8, [r3, #528] - mov r0, r5 - bl nandc_cs - cmp r10, #0 - bne .L2391 - mov r0, r9 - bl slc_phy_page_address_calc - mov r9, r0 -.L2391: - ldrb r3, [r4, #607] @ zero_extendqisi2 - uxtb r0, r9 - mov r1, r9, lsr #8 - mov r2, r9, lsr #16 - cmp r3, #1 - mov r3, r5, asl #8 - addeq r3, r8, r3 - moveq ip, #6 - beq .L2404 - ldr ip, .L2405 - add r3, r8, r3 - ldr ip, [ip, #584] - ldrb ip, [ip, #12] @ zero_extendqisi2 - cmp ip, #3 - bne .L2394 - mov ip, #5 -.L2404: - 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 .L2402 -.L2394: - 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] -.L2402: - 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 - cmp r3, #0 - beq .L2395 - ldr r3, .L2405 - ldrb r3, [r3, #684] @ zero_extendqisi2 - cmp r3, #0 - subeq r3, r10, #1 - addeq r0, r9, r9, asl #1 - addeq r0, r3, r0 - beq .L2403 -.L2395: - mov r0, r9 -.L2403: - bl nandc_set_seed - ldr r3, .L2405+12 - mov r1, #0 - mov r0, r5 - ldrb r2, [r3, #13] @ zero_extendqisi2 - mov r3, r6 - str r7, [sp] - bl nandc_xfer - mov r4, r0 - mov r0, r5 - bl nandc_de_cs - mov r0, r4 -.L2390: - add sp, sp, #8 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2406: - .align 2 -.L2405: - .word .LANCHOR0 - .word .LANCHOR1+1556 - .word .LC0 - .word .LANCHOR2 - .fnend - .size flash_complete_plane_page_read, .-flash_complete_plane_page_read - .align 2 - .global flash_complete_page_read - .type flash_complete_page_read, %function -flash_complete_page_read: - .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} - mov r6, #1 - ldr r5, .L2441 - .pad #20 - sub sp, sp, #20 - mov r9, r0 - mov r10, r1 - mov fp, r2 - ldrb r7, [r5, #676] @ 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 - sub r4, r4, #1 - ubfx r6, r0, #24, #2 - uxtb r7, r7 - and r4, r4, r0 - cmp r3, r7 - bhi .L2408 - ldr r1, .L2441+4 - movw r2, #1033 - ldr r0, .L2441+8 - bl printk - bl dump_stack -.L2408: - add r7, r5, r7 - ldrb r8, [r7, #668] @ zero_extendqisi2 - ldr r7, [r5, #528] - mov r0, r8 - bl nandc_cs - cmp r6, #0 - bne .L2409 - mov r0, r4 - bl slc_phy_page_address_calc - mov r4, r0 -.L2409: - 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 .L2410 - ldr r3, .L2441 - ldrb r3, [r3, #684] @ zero_extendqisi2 - cmp r3, #0 - subeq r0, r6, #1 - addeq r3, r4, r4, asl #1 - addeq r0, r0, r3 - beq .L2440 -.L2410: - mov r0, r4 -.L2440: - bl nandc_set_seed - ldr r7, .L2441+12 - mov r0, r8 - mov r1, #0 - mov r3, r10 - ldrb r2, [r7, #13] @ zero_extendqisi2 - str fp, [sp] - bl nandc_xfer - cmn r0, #1 - bne .L2412 - ldrb ip, [r5, #656] @ zero_extendqisi2 - cmp ip, #0 - beq .L2413 - ldr r2, .L2441 - mov r3, #0 - mov r0, r8 - orr r1, r4, r6, asl #24 - str ip, [sp, #12] - strb r3, [r2, #656] - mov r2, r10 - ldrb r3, [r7, #13] @ zero_extendqisi2 - str r3, [sp] - mov r3, fp - bl flash_read_page - ldr r3, .L2441 - cmp r6, #0 - ldr ip, [sp, #12] - strb ip, [r3, #656] - bne .L2414 -.L2421: - ldrb r3, [r5] @ zero_extendqisi2 - cmp r3, #0 - beq .L2414 - ldr r3, .L2441 - ldrb r3, [r3, #660] @ zero_extendqisi2 - add r3, r3, r3, asl #1 - cmp r0, r3, asr #2 - blt .L2414 - ldrb r3, [r7, #23] @ zero_extendqisi2 - sub r3, r3, #4 - cmp r3, #4 - movls r0, #256 - b .L2428 -.L2414: - cmn r0, #1 - bne .L2428 -.L2422: - ldr r3, .L2441+16 - ldr ip, [r3, #-3252] - cmp ip, #0 - bne .L2417 -.L2420: - ldrb r3, [r5, #656] @ zero_extendqisi2 - mov r1, #0 - ldr r0, .L2441+20 - mov r2, r9 - str r3, [sp] - mvn r3, #0 - bl printk - ldrb r3, [r5, #623] @ zero_extendqisi2 - cmp r3, #0 - mvneq r0, #0 - beq .L2428 - ldrb r3, [r7, #13] @ zero_extendqisi2 - mov r0, r8 - orr r1, r4, r6, asl #24 - mov r2, r10 - str r3, [sp] - mov r3, fp - bl flash_ddr_tuning_read - b .L2428 -.L2417: - ldrb r3, [r7, #13] @ zero_extendqisi2 - mov r0, r8 - orr r1, r4, r6, asl #24 - mov r2, r10 - str r3, [sp] - mov r3, fp - blx ip - cmn r0, #1 - bne .L2428 - b .L2420 -.L2412: - cmp r6, #0 - beq .L2421 - b .L2428 -.L2413: - cmp r6, #0 - beq .L2421 - b .L2422 -.L2428: - add sp, sp, #20 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2442: - .align 2 -.L2441: - .word .LANCHOR0 - .word .LANCHOR1+1588 - .word .LC0 - .word .LANCHOR2 - .word .LANCHOR3 - .word .LC166 - .fnend - .size flash_complete_page_read, .-flash_complete_page_read - .align 2 - .type queue_wait_first_req_completed, %function -queue_wait_first_req_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} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #20 - sub sp, sp, #20 - ldr r4, .L2539 - ldrb r5, [r4, #2263] @ zero_extendqisi2 - cmp r5, #255 - beq .L2477 - mov r3, #48 - mla r3, r3, r5, r4 - ldrb r2, [r3, #766] @ zero_extendqisi2 - ldr r6, [r3, #748] - sub r3, r2, #1 - cmp r3, #10 - ldrls pc, [pc, r3, asl #2] - b .L2477 -.L2447: - .word .L2446 - .word .L2448 - .word .L2449 - .word .L2449 - .word .L2449 - .word .L2449 - .word .L2450 - .word .L2451 - .word .L2452 - .word .L2449 - .word .L2452 -.L2446: - mov r0, r6 - mov r1, #64 - bl flash_wait_device_ready - tst r0, #64 - beq .L2477 - mov r3, #48 - mla r3, r3, r5, r4 - ldr r2, [r3, #732] - ldr r1, [r3, #728] - cmp r2, #0 - beq .L2454 - ldrb r0, [r3, #764] @ zero_extendqisi2 - ldr r3, .L2539 - ldrb r3, [r3, #2260] @ zero_extendqisi2 - cmp r0, r3 - moveq r1, r2 -.L2454: - mov r3, #48 - mov r0, r6 - mla r5, r3, r5, r4 - ldr r2, [r5, #736] - 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 .L2477 -.L2448: - mov r0, r6 - mov r1, #64 - bl flash_wait_device_ready - mov r2, #48 - mla r3, r2, r5, r4 - ldr r1, .L2539 - ldrb r6, [r3, #724] @ zero_extendqisi2 - tst r0, #64 - beq .L2477 - mla r2, r2, r6, r1 - ldr fp, [r3, #728] - ldr r9, [r2, #728] - ldr r2, [r3, #732] - cmp r2, #0 - beq .L2455 - ldrb r0, [r3, #764] @ zero_extendqisi2 - ldrb r3, [r1, #2260] @ zero_extendqisi2 - cmp r0, r3 - moveq fp, r2 -.L2455: - mov r3, #48 - mla r3, r3, r6, r4 - ldr r2, [r3, #732] - cmp r2, #0 - beq .L2456 - ldrb r1, [r3, #764] @ zero_extendqisi2 - ldr r3, .L2539 - ldrb r3, [r3, #2260] @ zero_extendqisi2 - cmp r1, r3 - moveq r9, r2 -.L2456: - 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] - str r3, [sp, #12] - bl flash_complete_plane_page_read - mov r1, r9 - ldr r2, [r7, #736] - mov r8, r0 - ldr r0, [r7, #748] - bl flash_complete_plane_page_read - cmn r8, #1 - mov r10, r0 - beq .L2457 - ldr r3, [sp, #12] - ldr r3, [r3, #744] - cmn r3, #1 - beq .L2458 - ldr ip, [sp, #8] - ldr r2, [ip, #4] - ldr r2, [r2, #4] - cmp r3, r2 - beq .L2458 -.L2457: - mov r7, #48 - ldrb r0, [r4, #676] @ zero_extendqisi2 - mla r7, r7, r5, r4 - 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] - str lr, [sp] - and r0, r3, r2, lsr r1 - bic r1, r2, r3, asl r1 - mov r2, fp - ldr r3, [r7, #736] - uxtb r0, r0 - bl flash_read_page_en - ldr r2, [r7, #744] - cmn r2, #1 - mov r8, r0 - beq .L2459 - ldr ip, [sp, #8] - ldr r3, [ip, #4] - ldr r1, [r3, #4] - cmp r2, r1 - beq .L2459 - ldr r0, .L2539+4 - ldr r0, [r0] - tst r0, #64 - beq .L2459 - str r1, [sp] - ldr r0, .L2539+8 - ldr r1, [r7, #748] - ldr r3, [r3] - bl printk -.L2459: - mov r3, #48 - mla r3, r3, r5, r4 - ldr r2, [r3, #744] - cmn r2, #1 - beq .L2458 - ldr r3, [r3, #736] - ldr r3, [r3, #4] - cmp r2, r3 - beq .L2458 - ldr r1, .L2539+12 - mov r2, #360 - ldr r0, .L2539+16 - bl printk - bl dump_stack -.L2458: - 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] - orr r2, r2, #8 - strb r2, [r5, #726] - beq .L2460 - ldr r2, .L2539 - mla r3, r3, r6, r2 - ldr r2, [r3, #744] - cmn r2, #1 - beq .L2462 - ldr r3, [r3, #736] - ldr r3, [r3, #4] - cmp r2, r3 - beq .L2462 -.L2460: - mov r5, #48 - ldrb r0, [r4, #676] @ zero_extendqisi2 - mla r5, r5, r6, r4 - rsb r1, r0, #24 - ldrb ip, [r4, #2260] @ zero_extendqisi2 - mvn r3, #0 - mvn r3, r3, asl r0 - ldr r2, [r5, #748] - str ip, [sp] - and r0, r3, r2, lsr r1 - bic r1, r2, r3, asl r1 - mov r2, r9 - ldr r3, [r5, #736] - uxtb r0, r0 - bl flash_read_page_en - ldr r2, [r5, #744] - cmn r2, #1 - beq .L2464 - ldr r3, [r5, #736] - ldr r1, [r3, #4] - cmp r2, r1 - beq .L2464 - ldr r0, .L2539+4 - ldr r0, [r0] - tst r0, #64 - beq .L2464 - str r1, [sp] - ldr r0, .L2539+8 - ldr r1, [r5, #748] - ldr r3, [r3] - bl printk -.L2464: - mov r3, #48 - mla r3, r3, r6, r4 - ldr r2, [r3, #744] - cmn r2, #1 - beq .L2462 - ldr r3, [r3, #736] - ldr r3, [r3, #4] - cmp r2, r3 - beq .L2462 - ldr r1, .L2539+12 - movw r2, #375 - ldr r0, .L2539+16 - bl printk - bl dump_stack -.L2462: - mov r3, #48 - mla r4, r3, r6, r4 - mov r3, #13 - strb r3, [r4, #766] - ldrb r3, [r4, #726] @ zero_extendqisi2 - str r8, [r4, #760] - orr r3, r3, #8 - strb r3, [r4, #726] - b .L2477 -.L2449: - bl nandc_iqr_wait_flash_ready - mov r0, r6 - mov r1, #64 - bl flash_wait_device_ready - tst r0, #64 - mov r7, r0 - beq .L2477 - ands r6, r0, #5 - mov r8, #48 - beq .L2465 - mla r5, r8, r5, r4 - mov r3, #12 - ldr r0, .L2539+20 - mov r2, r7 - mov r6, r7 - strb r3, [r5, #766] - ldrb r1, [r5, #725] @ zero_extendqisi2 - str r3, [sp] - ldr r3, [r5, #748] - bl printk - mvn r3, #0 - str r3, [r5, #760] - b .L2445 -.L2465: - mul r7, r8, r5 - mov r3, #13 - ldr r2, .L2539 - add r8, r4, r7 - strb r3, [r8, #766] - ldr r3, [r4, #2288] - str r6, [r8, #760] - ldr r1, [r3, #156] - ldr r3, .L2539+24 - cmp r1, r3 - bne .L2477 - add r9, r2, r7 - add r9, r9, #756 - ldrh r3, [r9, #2] - cmp r3, #0 - bne .L2477 - ldrb r0, [r2, #676] @ zero_extendqisi2 - mvn r3, #0 - ldr ip, [r8, #748] - ldrb r2, [r2, #2260] @ zero_extendqisi2 - rsb r1, r0, #24 - ldr r7, .L2539+28 - mvn r3, r3, asl r0 - and r0, r3, ip, lsr r1 - bic r1, ip, r3, asl r1 - str r2, [sp] - uxtb r0, r0 - ldr r3, [r7, #-3244] - ldr r2, [r7, #-3248] - bl flash_read_page_en - cmn r0, #1 - mov r3, r0 - beq .L2466 - ldr r1, [r8, #736] - ldr r2, [r7, #-3244] - ldr r1, [r1] - ldr r2, [r2] - cmp r1, r2 - beq .L2477 -.L2466: - mov r2, #48 - ldr r0, .L2539+32 - mla r5, r2, r5, r4 - ldrb r2, [r4, #656] @ zero_extendqisi2 - ldrb r1, [r5, #725] @ zero_extendqisi2 - str r2, [sp] - ldr r2, [r5, #748] - bl printk - mvn r3, #0 - str r3, [r5, #760] - b .L2445 -.L2452: - cmp r2, #11 - ldr r1, .L2539+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 -.L2468: - ldrb r8, [lr] @ zero_extendqisi2 - cmp r8, #255 - beq .L2538 - mul r2, r0, r8 - ldr r1, [sp, #12] - ldr r7, .L2539 - 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 .L2468 - ldr r2, [r2, #748] - and r2, r3, r2, lsr r10 - cmp ip, r2 - bne .L2468 - bl nandc_iqr_wait_flash_ready - mov r0, r6 - mov r1, #64 - bl flash_wait_device_ready - tst r0, #64 - mov r6, r0 - beq .L2537 - ands r2, r0, #15 - mov r3, #48 - mul r3, r3, r5 - beq .L2472 - add r7, r7, r3 - mov r9, #12 - ldr r0, .L2539+40 - mov r2, r6 - ldrb r1, [r7, #725] @ zero_extendqisi2 - str r9, [sp] - ldr r3, [r7, #748] - bl printk - mvn r3, #0 - strb r9, [r7, #766] - str r3, [r7, #760] - b .L2471 -.L2472: - add r6, r7, r3 - mov r1, #13 - str r2, [r6, #760] - ldr r2, [r7, #2288] - strb r1, [r6, #766] - ldr r1, [r2, #156] - ldr r2, .L2539+24 - cmp r1, r2 - bne .L2537 - add r3, r9, r3 - ldrh r3, [r3, #34] - cmp r3, #0 - bne .L2537 - ldr r2, [r6, #748] - mvn r3, #0 - ldrb r0, [r7, #676] @ zero_extendqisi2 - ldr r9, .L2539+28 - rsb r1, r0, #24 - ldrb ip, [r7, #2260] @ 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] - bl flash_read_page_en - cmn r0, #1 - mov r3, r0 - beq .L2474 - ldr r1, [r6, #736] - ldr r2, [r9, #-3244] - ldr r1, [r1] - ldr r2, [r2] - cmp r1, r2 - beq .L2537 -.L2474: - mov r6, #48 - ldrb r2, [r4, #656] @ zero_extendqisi2 - mla r6, r6, r5, r4 - ldr r0, .L2539+44 - ldrb r1, [r6, #725] @ zero_extendqisi2 - str r2, [sp] - ldr r2, [r6, #748] - bl printk - mvn r3, #0 - str r3, [r6, #760] -.L2537: - mov r6, #0 -.L2471: - 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 .L2445 -.L2538: - mvn r6, #0 - b .L2445 -.L2450: - mov r0, r6 - mov r1, #32 - bl flash_wait_device_ready - tst r0, #32 - beq .L2477 - ands r6, r0, #15 - mov r3, #48 - mlaeq r5, r3, r5, r4 - movne r2, #12 - mlane r3, r3, r5, r4 - moveq r3, #13 - movne r6, r0 - streqb r3, [r5, #766] - streq r6, [r5, #760] - strneb r2, [r3, #766] - mvnne r2, #0 - strne r2, [r3, #760] - b .L2445 -.L2451: - mov r0, r6 - mov r1, #64 - bl flash_wait_device_ready - tst r0, #64 - movne r3, #48 - mlane r5, r3, r5, r4 - movne r3, #7 - strne r0, [r5, #760] - strneb r3, [r5, #766] -.L2477: - mov r6, #0 -.L2445: - mov r0, r6 - add sp, sp, #20 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2540: - .align 2 -.L2539: - .word .LANCHOR0 - .word .LANCHOR2 - .word .LC167 - .word .LANCHOR1+1616 - .word .LC0 - .word .LC168 - .word 1145785929 - .word .LANCHOR3 - .word .LC169 - .word .LANCHOR0+724 - .word .LC170 - .word .LC171 - .fnend - .size queue_wait_first_req_completed, .-queue_wait_first_req_completed - .align 2 - .global sblk_wait_write_queue_completed - .type sblk_wait_write_queue_completed, %function -sblk_wait_write_queue_completed: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, lr} - .save {r4, lr} - ldr r4, .L2546 -.L2542: - ldrb r3, [r4, #2263] @ zero_extendqisi2 - cmp r3, #255 - beq .L2545 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2542 -.L2545: - ldmfd sp!, {r4, pc} -.L2547: - .align 2 -.L2546: - .word .LANCHOR0 - .fnend - .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed - .align 2 - .global ftl_read_page - .type ftl_read_page, %function -ftl_read_page: - .fnstart - @ args = 4, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - mov r7, r0 - mov r6, r1 - mov r5, r2 - mov r4, r3 - ldr r8, [sp, #24] - bl sblk_wait_write_queue_completed - mov r0, r7 - mov r1, r6 - mov r2, r5 - mov r3, r4 - str r8, [sp, #24] - ldmfd sp!, {r4, r5, r6, r7, r8, lr} - b flash_read_page_en - .fnend - .size ftl_read_page, .-ftl_read_page - .align 2 - .global ftl_read_ppa_page - .type ftl_read_ppa_page, %function -ftl_read_ppa_page: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ 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 - mov r8, r3 - ldr r3, .L2552 - mov r7, r1 - mov r6, r2 - mvn r2, #0 - mov r5, r0 - ldrb r1, [r3, #676] @ zero_extendqisi2 - rsb r4, r1, #24 - mvn r2, r2, asl r1 - and r4, r2, r0, lsr r4 - bl sblk_wait_write_queue_completed - mov r1, r5 - uxtb r4, r4 - mov r2, r7 - mov r3, r6 - mov r0, r4 - str r8, [sp] - bl flash_read_page_en - add sp, sp, #8 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2553: - .align 2 -.L2552: - .word .LANCHOR0 - .fnend - .size ftl_read_ppa_page, .-ftl_read_ppa_page - .align 2 - .global sblk_read_page - .type sblk_read_page, %function -sblk_read_page: - .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 #20 - sub sp, sp, #20 - ldr r10, .L2582 - mov r8, r0 - mov r6, r1 - mov r4, r0 - mov r5, r1 -.L2555: - cmp r5, #0 - beq .L2578 - ldrb fp, [r4] @ zero_extendqisi2 - ldr r9, [r4, #24] -.L2556: - mov r0, r9 - mov r1, #0 - bl queue_lun_state - cmp r0, #0 - beq .L2580 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2556 -.L2580: - cmp r5, #1 - beq .L2562 - ldr r3, .L2582+4 - ldrb r3, [r3, #-3240] @ zero_extendqisi2 - cmp r3, #0 - beq .L2562 - ldr r3, .L2582 - mvn lr, #0 - ldrb r2, [r3, #676] @ zero_extendqisi2 - rsb r3, r2, #24 - mov r3, r9, lsr r3 - bic lr, r3, lr, asl r2 - uxth r3, lr - str r3, [sp, #4] - ldrb r3, [r4] @ zero_extendqisi2 - cmp r3, #255 - bne .L2561 - ldr r1, .L2582+8 - movw r2, #661 - ldr r0, .L2582+12 - bl printk - bl dump_stack -.L2561: - ldrb r3, [r4] @ zero_extendqisi2 - mov r2, #48 - ldrb r0, [r10, #676] @ zero_extendqisi2 - mvn ip, #0 - mul r3, r2, r3 - rsb r2, r0, #24 - add r7, r10, r3 - ldr r1, [r7, #748] - mov r2, r1, lsr r2 - bic r2, r2, ip, asl r0 - ldr r0, [sp, #4] - uxth r2, r2 - cmp r0, r2 - bne .L2562 - ldr r2, .L2582+16 - ldrh r2, [r2] - add r9, r2, r9 - cmp r1, r9 - bne .L2562 - ldr r0, [r4, #24] - mvn r9, #0 - str r3, [sp, #12] - add r5, r5, r9 - ldrb fp, [r7, #724] @ 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, .L2582+20 - strb r9, [r4] - str ip, [sp, #8] - str r2, [sp, #4] - bl buf_add_tail - ldr r1, .L2582+24 - strb r9, [r7, #724] - ldr r0, .L2582+20 - ldr ip, [sp, #8] - ldr r2, [sp, #4] - ldr r3, [sp, #12] - strb ip, [r7, #766] - strb r2, [r7, #767] - add r1, r1, r3 - bl buf_add_tail - b .L2560 -.L2562: - mov r0, r4 - bl queue_read_cmd -.L2560: - subs r5, r5, #1 - ldrne r3, .L2582+24 - movne r4, #48 - mlane r4, r4, fp, r3 - bne .L2555 -.L2578: - ldr r4, .L2582+24 - mov r5, #48 -.L2566: - cmp r6, #0 - beq .L2581 - ldrb r3, [r8, #42] @ zero_extendqisi2 - cmp r3, #13 - bne .L2567 - ldrb r3, [r8] @ zero_extendqisi2 - sub r6, r6, #1 - cmp r3, #255 - mlane r8, r5, r3, r4 -.L2567: - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2566 -.L2581: - mov r0, r6 - add sp, sp, #20 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2583: - .align 2 -.L2582: - .word .LANCHOR0 - .word .LANCHOR3 - .word .LANCHOR1+1648 - .word .LC0 - .word .LANCHOR0+2994 - .word .LANCHOR0+2263 - .word .LANCHOR0+724 - .fnend - .size sblk_read_page, .-sblk_read_page + .size id_block_read_data.constprop.29, .-id_block_read_data.constprop.29 .align 2 .global flash_prog_page .type flash_prog_page, %function @@ -14808,32 +13722,33 @@ flash_prog_page: .fnstart @ args = 4, 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 r10, r3 - ldr r6, .L2596 - mov fp, r2 + mov fp, r3 + ldr r6, .L2396 + mov r10, r2 + .pad #20 + sub sp, sp, #20 add r8, r0, #8 mov r5, r0 mov r7, r1 - ubfx r9, r1, #24, #2 ldrb r3, [r6, #676] @ zero_extendqisi2 + ubfx r9, r1, #24, #2 ldr r4, [r6, #528] mvn r6, #0 rsb r3, r3, #24 bic r6, r1, r6, asl r3 - ldr r3, .L2596+4 + ldr r3, .L2396+4 add r8, r4, r8, asl #8 ldr r2, [r3] - str r3, [sp, #4] + str r3, [sp, #12] tst r2, #16 - beq .L2585 - ldr r0, .L2596+8 + beq .L2385 + ldr r0, .L2396+8 mov r2, r9 - ldr r3, [sp, #48] + ldr r3, [sp, #56] bl printk -.L2585: +.L2385: bl nandc_wait_flash_ready mov r0, r5 bl hynix_reconfig_rr_para @@ -14841,12 +13756,12 @@ flash_prog_page: bl nandc_cs cmp r9, #0 mov r0, r5 - bne .L2586 + bne .L2386 bl zftl_flash_enter_slc_mode - b .L2587 -.L2586: + b .L2387 +.L2386: bl zftl_flash_exit_slc_mode -.L2587: +.L2387: add r4, r4, r5, asl #8 mov r3, #128 mov r0, r6 @@ -14861,17 +13776,13 @@ flash_prog_page: mov r3, r6, lsr #16 str r3, [r4, #2052] bl nandc_set_seed - mov r2, fp - mov r0, #1 - ldr r3, [sp, #4] - ldrb r1, [r3, #13] @ zero_extendqisi2 + mov r1, #1 + mov r0, r5 + ldr r3, [sp, #12] + ldrb r2, [r3, #13] @ zero_extendqisi2 mov r3, r10 - bl nandc_xfer_start - bl nandc_xfer_done - ldr r3, .L2596+12 - ldr r0, .L2596+16 - ldr r3, [r3, #4] - blx r3 + str fp, [sp] + bl nandc_xfer mov r3, #16 str r3, [r4, #2056] bl nandc_iqr_wait_flash_ready @@ -14881,26 +13792,24 @@ flash_prog_page: mov r4, r0 mov r0, r5 bl nandc_de_cs - ands r4, r4, #4 - beq .L2588 - ldr r0, .L2596+20 + ands r2, r4, #4 + beq .L2388 + ldr r0, .L2396+12 mov r1, r7 - mov r2, r4 bl printk -.L2588: - mov r0, r4 - add sp, sp, #12 + mvn r2, #0 +.L2388: + mov r0, r2 + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2597: +.L2397: .align 2 -.L2596: +.L2396: .word .LANCHOR0 .word .LANCHOR2 - .word .LC172 - .word arm_delay_ops - .word 128849000 - .word .LC173 + .word .LC164 + .word .LC165 .fnend .size flash_prog_page, .-flash_prog_page .align 2 @@ -14914,7 +13823,7 @@ flash_test_blk: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r0 - ldr r4, .L2609 + ldr r4, .L2409 mov r5, r1 mov r2, #32 mov r1, #165 @@ -14924,19 +13833,19 @@ flash_test_blk: mov r2, #8 ldr r0, [r4, #-3264] bl ftl_memset - ldr r3, .L2609+4 + ldr r3, .L2409+4 mov r0, r6 ldrh r3, [r3, #2] mul r5, r3, r5 mov r1, r5 bl flash_erase_block cmn r0, #1 - bne .L2599 -.L2601: + bne .L2399 +.L2401: mvn r4, #0 - b .L2600 -.L2599: - ldr r7, .L2609+8 + b .L2400 +.L2399: + ldr r7, .L2409+8 mov r0, r6 mov r1, r5 ldrb r3, [r7, #13] @ zero_extendqisi2 @@ -14945,27 +13854,27 @@ flash_test_blk: ldr r3, [r4, #-3264] bl flash_prog_page cmn r0, #1 - beq .L2601 + beq .L2401 ldrb r3, [r7, #13] @ zero_extendqisi2 mov r0, r6 mov r1, r5 str r3, [sp] ldr r2, [r4, #-3272] ldr r3, [r4, #-3264] - bl flash_read_page + bl flash_read_page_en cmn r0, #1 - beq .L2601 + beq .L2401 ldr r3, [r4, #-3272] ldr r2, [r3] - ldr r3, .L2609+12 + ldr r3, .L2409+12 cmp r2, r3 - bne .L2601 + bne .L2401 ldr r3, [r4, #-3264] - ldr r4, .L2609+16 + ldr r4, .L2409+16 ldr r3, [r3] subs r4, r3, r4 mvnne r4, #0 -.L2600: +.L2400: mov r0, r6 mov r1, r5 bl flash_erase_block @@ -14973,9 +13882,9 @@ flash_test_blk: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2610: +.L2410: .align 2 -.L2609: +.L2409: .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2 @@ -14990,43 +13899,44 @@ flash_dual_page_prog: .fnstart @ args = 12, 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 r9, r3 - ldr fp, .L2626 + mov r10, r3 + ldr fp, .L2424 + .pad #20 + sub sp, sp, #20 add r3, r0, #8 - ldr r7, .L2626+4 + ldr r7, .L2424+4 mvn r5, #0 mov r6, r0 - mov r8, r1 ldr r4, [fp, #528] - mov r10, r2 + mov r8, r1 + mov r9, r2 add r3, r4, r3, asl #8 - str r3, [sp] + str r3, [sp, #8] ldrb r3, [fp, #676] @ zero_extendqisi2 ubfx fp, r1, #24, #2 rsb r3, r3, #24 bic r5, r1, r5, asl r3 ldr r3, [r7] tst r3, #16 - beq .L2612 - ldr r0, .L2626+8 + beq .L2412 + ldr r0, .L2424+8 mov r2, fp - ldr r3, [sp, #56] + ldr r3, [sp, #64] bl printk -.L2612: +.L2412: bl nandc_wait_flash_ready mov r0, r6 bl nandc_cs cmp fp, #0 mov r0, r6 - bne .L2613 + bne .L2413 bl zftl_flash_enter_slc_mode - b .L2614 -.L2613: + b .L2414 +.L2413: bl zftl_flash_exit_slc_mode -.L2614: +.L2414: add r4, r4, r6, asl #8 mov ip, #128 mov fp, #0 @@ -15040,21 +13950,21 @@ flash_dual_page_prog: str r3, [r4, #2052] mov r3, r5, lsr #16 str r3, [r4, #2052] - str ip, [sp, #4] + str ip, [sp, #12] bl nandc_set_seed - ldrb r1, [r7, #13] @ zero_extendqisi2 - mov r2, r10 + ldrb r2, [r7, #13] @ zero_extendqisi2 + mov r1, #1 mov r3, r9 - mov r0, #1 - bl nandc_xfer_start + mov r0, r6 mov r9, #16 - bl nandc_xfer_done + str r10, [sp] + bl nandc_xfer str r9, [r4, #2056] bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready add r0, r5, #1 uxtb r3, r0 - ldr ip, [sp, #4] + ldr ip, [sp, #12] str ip, [r4, #2056] str fp, [r4, #2052] str fp, [r4, #2052] @@ -15064,48 +13974,50 @@ flash_dual_page_prog: mov r3, r0, lsr r9 str r3, [r4, #2052] bl nandc_set_seed - ldrb r1, [r7, #13] @ zero_extendqisi2 - mov r0, #1 - ldr r2, [sp, #48] - ldr r3, [sp, #52] - bl nandc_xfer_start - bl nandc_xfer_done + ldrb r2, [r7, #13] @ zero_extendqisi2 + mov r1, #1 + mov r0, r6 + ldr r3, [sp, #60] + str r3, [sp] + ldr r3, [sp, #56] + bl nandc_xfer str r9, [r4, #2056] bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr r0, [sp] + ldr r0, [sp, #8] bl flash_read_status mov r4, r0 mov r0, r6 bl nandc_de_cs - ands r4, r4, #4 - beq .L2615 - ldr r3, .L2626+4 + ands r2, r4, #4 + beq .L2415 + ldr r3, .L2424+4 ldr r3, [r3] tst r3, #4096 - beq .L2615 - ldr r0, .L2626+12 + beq .L2416 + ldr r0, .L2424+12 mov r1, r8 - mov r2, r4 bl printk -.L2615: - mov r0, r4 - add sp, sp, #12 +.L2416: + mvn r2, #0 +.L2415: + mov r0, r2 + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2627: +.L2425: .align 2 -.L2626: +.L2424: .word .LANCHOR0 .word .LANCHOR2 - .word .LC172 - .word .LC173 + .word .LC164 + .word .LC165 .fnend .size flash_dual_page_prog, .-flash_dual_page_prog .section .text.unlikely .align 2 - .type fw_flash_page_prog.constprop.29, %function -fw_flash_page_prog.constprop.29: + .type fw_flash_page_prog.constprop.28, %function +fw_flash_page_prog.constprop.28: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @@ -15113,7 +14025,7 @@ fw_flash_page_prog.constprop.29: .save {r4, r5, r6, r7, r8, lr} .pad #16 mov r6, r1 - ldr r4, .L2633 + ldr r4, .L2431 mov r5, r2 ldr r3, [r4, #584] ldrb r1, [r3, #9] @ zero_extendqisi2 @@ -15122,11 +14034,11 @@ fw_flash_page_prog.constprop.29: mov r7, r0 ldrb r0, [r4, #588] @ zero_extendqisi2 bl nandc_bch_sel - ldr r3, .L2633+4 + ldr r3, .L2431+4 ldrb r3, [r3, #11] @ zero_extendqisi2 cmp r3, #9 - bne .L2629 - ldr r4, .L2633+8 + bne .L2427 + ldr r4, .L2431+8 mov r1, #255 mov r2, #16384 ldr r0, [r4, #-3272] @@ -15141,8 +14053,8 @@ fw_flash_page_prog.constprop.29: str r3, [sp, #8] mov r3, r5 bl flash_dual_page_prog - b .L2632 -.L2629: + b .L2430 +.L2427: mov r3, #4 mov r0, #0 str r3, [sp] @@ -15150,7 +14062,7 @@ fw_flash_page_prog.constprop.29: mov r2, r6 mov r3, r5 bl flash_prog_page -.L2632: +.L2430: mov r4, r0 mov r0, r8 bl nandc_bch_sel @@ -15158,463 +14070,58 @@ fw_flash_page_prog.constprop.29: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2634: +.L2432: .align 2 -.L2633: +.L2431: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3 .fnend - .size fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29 + .size fw_flash_page_prog.constprop.28, .-fw_flash_page_prog.constprop.28 .text .align 2 - .global flash_start_page_prog - .type flash_start_page_prog, %function -flash_start_page_prog: - .fnstart - @ 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} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #12 - mvn r5, #0 - ldr r7, .L2646 - mov fp, r2 - mov r9, r0 - mov r8, r1 - mov r10, 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 .L2636 - ldr r1, .L2646+4 - movw r2, #821 - ldr r0, .L2646+8 - str ip, [sp] - bl printk - bl dump_stack - ldr ip, [sp] -.L2636: - ldrb r1, [r7, #589] @ zero_extendqisi2 - ldr r2, .L2646 - cmp r1, r4 - bls .L2635 - ldr r3, [r2, #528] - add r1, r2, r4 - mvn r5, #0 - str r2, [sp, #4] - bic r5, r8, r5, asl ip - ldrb r6, [r1, #668] @ zero_extendqisi2 - str r3, [sp] - bl nandc_rdy_status - cmp r0, #0 - ldr r2, [sp, #4] - bne .L2638 - ldrb r2, [r2, #589] @ zero_extendqisi2 - cmp r2, #1 - bne .L2639 - bl nandc_wait_flash_ready - b .L2638 -.L2639: - mov r0, r4 - mov r1, r5 - mov r2, #64 - bl flash_wait_device_ready_raw -.L2638: - mov r0, r6 - bl hynix_reconfig_rr_para - mov r0, r6 - bl nandc_cs - tst r8, #50331648 - bne .L2640 - mov r0, r5 - bl slc_phy_page_address_calc - ldrb r3, [r7] @ zero_extendqisi2 - cmp r3, #0 - mov r5, r0 - beq .L2641 - mov r0, r6 - bl zftl_flash_enter_slc_mode - b .L2641 -.L2640: - mov r0, r6 - bl zftl_flash_exit_slc_mode -.L2641: - ldr r3, [sp] - 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 nandc_set_seed - ldr r3, .L2646+12 - mov r2, fp - mov r0, #1 - ldrb r1, [r3, #13] @ zero_extendqisi2 - mov r3, r10 - bl nandc_xfer_start - bl nandc_xfer_done - ldr r3, .L2646+16 - ldr r0, .L2646+20 - ldr r3, [r3, #4] - blx r3 - str r9, [r4, #2056] - mov r0, r6 - add sp, sp, #12 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} - b nandc_de_cs -.L2635: - add sp, sp, #12 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2647: - .align 2 -.L2646: - .word .LANCHOR0 - .word .LANCHOR1+1664 - .word .LC0 - .word .LANCHOR2 - .word arm_delay_ops - .word 128849000 - .fnend - .size flash_start_page_prog, .-flash_start_page_prog - .align 2 - .type queue_prog_cmd, %function -queue_prog_cmd: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - mov r4, r0 - ldr r2, [r4, #4] - mov r0, #16 - ldr r3, [r4, #12] - ldr r1, [r4, #24] - bl flash_start_page_prog - ldr r2, .L2657 - ldr r0, [r4, #24] - ldrb r3, [r2, #2263] @ zero_extendqisi2 - cmp r3, #255 - beq .L2649 - ldrb ip, [r2, #676] @ 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 -.L2651: - mla ip, r5, r3, r2 - ldr lr, [ip, #748] - and lr, r1, lr, lsr r6 - cmp r0, lr - bne .L2650 - add lr, ip, #764 - ldrb ip, [ip, #766] @ zero_extendqisi2 - cmp ip, #7 - moveq r3, #3 - streqb r3, [lr, #2] - beq .L2649 -.L2650: - mla r3, r5, r3, r2 - ldrb r3, [r3, #724] @ zero_extendqisi2 - cmp r3, #255 - bne .L2651 -.L2649: - mov r3, #3 - mov r1, r4 - strb r3, [r4, #42] - mov r3, #1 - ldr r0, .L2657+4 - strb r3, [r4, #43] - mvn r3, #0 - strb r3, [r4] - ldmfd sp!, {r4, r5, r6, lr} - b buf_add_tail -.L2658: - .align 2 -.L2657: - .word .LANCHOR0 - .word .LANCHOR0+2263 - .fnend - .size queue_prog_cmd, .-queue_prog_cmd - .align 2 - .global sblk_prog_page - .type sblk_prog_page, %function -sblk_prog_page: - .fnstart - @ 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} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #12 - mov r4, r0 - ldrh r3, [r0, #34] - mov r5, r1 - cmp r3, #0 - beq .L2660 - ldr r3, .L2688 - ldr r3, [r3] - tst r3, #256 - beq .L2660 - ldr r0, .L2688+4 - mov r2, r5 - ldr r1, [r4, #24] - bl printk -.L2660: - ldr r8, .L2688+8 - mov r6, #0 - mov r9, r8 -.L2661: - cmp r5, #0 - beq .L2685 - ldrb r3, [r4] @ zero_extendqisi2 - ldr r7, [r4, #24] - str r3, [sp, #4] -.L2662: - mov r0, r7 - mov r1, #1 - bl queue_lun_state - cmp r0, #0 - beq .L2687 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2662 -.L2687: - cmp r5, #1 - beq .L2664 - ldrb r3, [r8, #721] @ zero_extendqisi2 - cmp r3, #0 - bne .L2665 -.L2664: - mov r0, r4 - bl queue_prog_cmd - b .L2666 -.L2665: - ldrb r3, [r8, #676] @ zero_extendqisi2 - mvn fp, #0 - rsb ip, r3, #24 - mov ip, r7, lsr ip - bic fp, ip, fp, asl r3 - ldrb r3, [r4] @ zero_extendqisi2 - cmp r3, #255 - uxth fp, fp - bne .L2667 - ldr r1, .L2688+12 - movw r2, #583 - ldr r0, .L2688+16 - bl printk - bl dump_stack -.L2667: - 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] - 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 .L2668 - ldr r2, .L2688+20 - ldrb lr, [r8, #2930] @ zero_extendqisi2 - ldrh fp, [r2] - sub lr, lr, #1 - 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 - sub r0, r0, #1 - and r1, r1, ip, lsr fp - uxth r3, r3 - 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 .L2669 - cmp r6, lr - beq .L2668 - mov r0, #17 - ldr r1, [r4, #24] - ldr r2, [r4, #4] - add r6, r6, r10 - ldr r3, [r4, #12] - bl flash_start_page_prog - mov r3, #9 - strb r10, [r4, #43] - mov r1, r4 - strb r3, [r4, #42] - mvn r3, #0 - ldr r0, .L2688+24 - strb r3, [r4] - bl buf_add_tail - b .L2666 -.L2669: - mov r0, r4 - mov r6, fp - bl queue_prog_cmd - b .L2666 -.L2668: - mov r0, r4 - mov r6, #0 - bl queue_prog_cmd -.L2666: - subs r5, r5, #1 - ldrne r3, .L2688+28 - movne r4, #48 - ldrne r2, [sp, #4] - mlane r4, r4, r2, r3 - bne .L2661 -.L2685: - mov r0, #0 - add sp, sp, #12 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2689: - .align 2 -.L2688: - .word .LANCHOR2 - .word .LC174 - .word .LANCHOR0 - .word .LANCHOR1+1688 - .word .LC0 - .word .LANCHOR0+2928 - .word .LANCHOR0+2263 - .word .LANCHOR0+724 - .fnend - .size sblk_prog_page, .-sblk_prog_page - .align 2 - .global ftl_flush - .type ftl_flush, %function -ftl_flush: - .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, .L2696 - ldr r5, .L2696+4 - ldrb r1, [r4, #2285] @ zero_extendqisi2 - cmp r1, #0 - beq .L2691 - ldrb r2, [r5, #-3239] @ zero_extendqisi2 - add r3, r4, #724 - mov r0, #48 - mla r0, r0, r2, r3 - bl sblk_prog_page -.L2691: - mvn r3, #0 - strb r3, [r5, #-3239] - mov r3, #0 - strb r3, [r4, #2285] - bl sblk_wait_write_queue_completed - bl ftl_write_completed - movw r0, #65535 - ldmfd sp!, {r3, r4, r5, lr} - b ftl_vpn_decrement -.L2697: - .align 2 -.L2696: - .word .LANCHOR0 - .word .LANCHOR3 - .fnend - .size ftl_flush, .-ftl_flush - .align 2 - .global zftl_cache_flush - .type zftl_cache_flush, %function -zftl_cache_flush: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, lr} - .save {r3, lr} - ldr r3, .L2703 - ldrb r3, [r3, #2285] @ zero_extendqisi2 - cmp r3, #0 - ldmeqfd sp!, {r3, pc} - bl timer_get_time - ldr r3, .L2703+4 - ldr r3, [r3, #-3236] - add r3, r3, #100 - cmp r0, r3 - ldmlsfd sp!, {r3, pc} - ldmfd sp!, {r3, lr} - b ftl_flush -.L2704: - .align 2 -.L2703: - .word .LANCHOR0 - .word .LANCHOR3 - .fnend - .size zftl_cache_flush, .-zftl_cache_flush - .align 2 .global flash_start_tlc_page_prog .type flash_start_tlc_page_prog, %function flash_start_tlc_page_prog: .fnstart @ args = 12, 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} + 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 r4, r3 - ldr r3, .L2713 - mov r7, r2 + ldr r3, .L2441 + mov r8, r2 + add r5, sp, #48 mov fp, r0 - mov r6, r1 - ldr r5, [sp, #40] + mov r7, r1 ldrb r2, [r3, #589] @ zero_extendqisi2 - mov r10, r3 - ldr r9, [sp, #44] + mov r6, r3 + ldmia r5, {r5, r9, r10} cmp r2, r4 - ldr r8, [sp, #48] - bhi .L2706 - ldr r1, .L2713+4 - mov r2, #740 - ldr r0, .L2713+8 + bhi .L2434 + ldr r1, .L2441+4 + movw r2, #749 + ldr r0, .L2441+8 bl printk bl dump_stack -.L2706: - ldrb r2, [r10, #589] @ zero_extendqisi2 - ldr r3, .L2713 +.L2434: + ldrb r2, [r6, #589] @ zero_extendqisi2 + ldr r3, .L2441 cmp r2, r4 - ldmlsfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + bls .L2433 add r4, r3, r4 - ldrb r10, [r4, #668] @ zero_extendqisi2 + ldrb r6, [r4, #668] @ zero_extendqisi2 ldr r4, [r3, #528] - mov r0, r10 + mov r0, r6 bl nandc_cs cmp fp, #0 - mov r3, r10, asl #8 + mov r3, r6, asl #8 addne r2, r4, r3 add r4, r4, r3 mov r3, #128 strne fp, [r2, #2056] - str r6, [r4, #2056] + str r7, [r4, #2056] str r3, [r4, #2056] mov r3, #0 str r3, [r4, #2052] @@ -15627,24 +14134,30 @@ flash_start_tlc_page_prog: add r5, r5, r5, asl #1 str r3, [r4, #2052] sub r0, r5, #1 - add r0, r0, r6 + add r0, r0, r7 bl nandc_set_seed - ldr r3, .L2713+12 - mov r0, #1 - mov r2, r9 - ldrb r1, [r3, #13] @ zero_extendqisi2 - mov r3, r8 - bl nandc_xfer_start - bl nandc_xfer_done - str r7, [r4, #2056] - mov r0, r10 - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + ldr r3, .L2441+12 + mov r0, r6 + mov r1, #1 + ldrb r2, [r3, #13] @ zero_extendqisi2 + mov r3, r9 + str r10, [sp] + bl nandc_xfer + str r8, [r4, #2056] + mov r0, r6 + add sp, sp, #12 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b nandc_de_cs -.L2714: +.L2433: + add sp, sp, #12 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2442: .align 2 -.L2713: +.L2441: .word .LANCHOR0 - .word .LANCHOR1+1704 + .word .LANCHOR1+1556 .word .LC0 .word .LANCHOR2 .fnend @@ -15659,7 +14172,7 @@ queue_tlc_prog_cmd: .save {r4, r5, r6, r7, r8, lr} .pad #16 mov r7, #1 - ldr r8, .L2717 + ldr r8, .L2445 mov r6, r0 ldr r3, [r0] ldrb r4, [r8, #676] @ zero_extendqisi2 @@ -15721,13 +14234,1666 @@ queue_tlc_prog_cmd: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, lr} b buf_add_tail -.L2718: +.L2446: .align 2 -.L2717: +.L2445: .word .LANCHOR0 .fnend .size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd .align 2 + .global sblk_3d_tlc_dump_prog + .type sblk_3d_tlc_dump_prog, %function +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} + mov r7, #1 + ldrb r4, [r3, #676] @ zero_extendqisi2 + mov r5, r0 + ldr r2, [r0, #24] + .pad #20 + sub sp, sp, #20 + rsb r3, r4, #24 + mov r4, r7, asl r4 + mov r6, r7, asl r3 + sub r4, r4, #1 + sub r6, r6, #1 + and r4, r4, r2, lsr r3 + and r6, r6, r2 + mov r3, r2 + ldr r0, .L2449+4 + uxtb r4, r4 + mov r1, r6 + bl printk + ldr r3, [r5, #4] + mov r1, r7 + mov r2, #26 + 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 + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr r3, [r5, #4] + mov r1, #2 + mov r2, #26 + 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 + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr r3, [r5, #4] + 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 + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr r0, [r5, #24] + mov r1, #64 + add sp, sp, #20 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, lr} + b flash_wait_device_ready +.L2450: + .align 2 +.L2449: + .word .LANCHOR0 + .word .LC166 + .fnend + .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog + .align 2 + .global flash_start_3d_mlc_page_prog + .type flash_start_3d_mlc_page_prog, %function +flash_start_3d_mlc_page_prog: + .fnstart + @ args = 4, pretend = 0, frame = 0 + @ 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 + mov r8, r3 + ldr r3, .L2455 + mov r5, r2 + mov r7, r0 + mov r4, r1 + ldrb r2, [r3, #589] @ zero_extendqisi2 + mov r6, r3 + cmp r2, r1 + bhi .L2452 + ldr r1, .L2455+4 + movw r2, #781 + ldr r0, .L2455+8 + bl printk + bl dump_stack +.L2452: + ldrb r2, [r6, #589] @ zero_extendqisi2 + ldr r3, .L2455 + cmp r2, r4 + bls .L2451 + add r4, r3, r4 + ldrb r6, [r4, #668] @ zero_extendqisi2 + ldr r4, [r3, #528] + add r4, r4, r6, asl #8 + mov r0, r6 + bl nandc_cs + mov r3, #128 + mov r0, r5 + 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 nandc_set_seed + ldr r3, .L2455+12 + mov r0, r6 + mov r1, #1 + ldrb r2, [r3, #13] @ zero_extendqisi2 + ldr r3, [sp, #32] + str r3, [sp] + mov r3, r8 + bl nandc_xfer + str r7, [r4, #2056] +.L2451: + add sp, sp, #8 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L2456: + .align 2 +.L2455: + .word .LANCHOR0 + .word .LANCHOR1+1584 + .word .LC0 + .word .LANCHOR2 + .fnend + .size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog + .align 2 + .global sblk_mlc_dump_prog + .type sblk_mlc_dump_prog, %function +sblk_mlc_dump_prog: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L2459 + stmfd sp!, {r0, r1, r4, r5, r6, lr} + .save {r4, r5, r6, lr} + .pad #8 + mov r4, #1 + ldrb r1, [r3, #676] @ zero_extendqisi2 + mov r5, r0 + ldr r2, [r0, #24] + rsb r3, r1, #24 + mov r6, r4, asl r3 + mov r4, r4, asl r1 + sub r4, r4, #1 + sub r6, r6, #1 + and r4, r4, r2, lsr r3 + and r6, r6, r2 + uxtb r4, r4 + mov r0, r4 + bl zftl_flash_exit_slc_mode + ldr r2, [r5, #24] + mov r1, r6 + ldr r0, .L2459+4 + add r3, r2, #1 + bl printk + ldr r3, [r5, #12] + mov r1, r4 + mov r2, r6 + mov r0, #16 + str r3, [sp] + ldr r3, [r5, #4] + bl flash_start_3d_mlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr r3, [r5, #12] + add r2, r6, #1 + mov r1, r4 + mov r0, #16 + str r3, [sp] + ldr r3, [r5, #4] + bl flash_start_3d_mlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + mov r1, #64 + ldr r0, [r5, #24] + bl flash_wait_device_ready + mov r5, r0 + mov r0, r4 + bl nandc_de_cs + mov r0, r5 + add sp, sp, #8 + @ sp needed + ldmfd sp!, {r4, r5, r6, pc} +.L2460: + .align 2 +.L2459: + .word .LANCHOR0 + .word .LC167 + .fnend + .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog + .align 2 + .global flash_start_page_prog + .type flash_start_page_prog, %function +flash_start_page_prog: + .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} + mvn r5, #0 + ldr r7, .L2472 + 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] + 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 + str r2, [sp, #12] + bic r5, r8, r5, asl ip + ldrb r6, [r1, #668] @ zero_extendqisi2 + str r3, [sp, #8] + bl nandc_rdy_status + cmp r0, #0 + ldr r2, [sp, #12] + bne .L2464 + ldrb r2, [r2, #589] @ zero_extendqisi2 + cmp r2, #1 + bne .L2465 + bl nandc_wait_flash_ready + b .L2464 +.L2465: + mov r0, r4 + mov r1, r5 + mov r2, #64 + bl flash_wait_device_ready_raw +.L2464: + mov r0, r6 + bl hynix_reconfig_rr_para + mov r0, r6 + bl nandc_cs + tst r8, #50331648 + bne .L2466 + mov r0, r5 + bl slc_phy_page_address_calc + ldrb r3, [r7] @ 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 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 nandc_set_seed + ldr r3, .L2472+12 + mov r0, r6 + 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 + add sp, sp, #20 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} + b nandc_de_cs +.L2461: + add sp, sp, #20 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2473: + .align 2 +.L2472: + .word .LANCHOR0 + .word .LANCHOR1+1616 + .word .LC0 + .word .LANCHOR2 + .fnend + .size flash_start_page_prog, .-flash_start_page_prog + .align 2 + .type queue_prog_cmd, %function +queue_prog_cmd: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r4, r0 + ldr r2, [r4, #4] + mov r0, #16 + ldr r3, [r4, #12] + ldr r1, [r4, #24] + bl flash_start_page_prog + ldr r2, .L2483 + ldr r0, [r4, #24] + ldrb r3, [r2, #2263] @ zero_extendqisi2 + cmp r3, #255 + beq .L2475 + ldrb ip, [r2, #676] @ 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 + moveq r3, #3 + streqb r3, [lr, #2] + beq .L2475 +.L2476: + mla r3, r5, r3, r2 + ldrb r3, [r3, #724] @ zero_extendqisi2 + cmp r3, #255 + bne .L2477 +.L2475: + mov r3, #3 + mov r1, r4 + strb r3, [r4, #42] + mov r3, #1 + ldr r0, .L2483+4 + strb r3, [r4, #43] + mvn r3, #0 + strb r3, [r4] + ldmfd sp!, {r4, r5, r6, lr} + b buf_add_tail +.L2484: + .align 2 +.L2483: + .word .LANCHOR0 + .word .LANCHOR0+2263 + .fnend + .size queue_prog_cmd, .-queue_prog_cmd + .align 2 + .global flash_complete_plane_page_read + .type flash_complete_plane_page_read, %function +flash_complete_plane_page_read: + .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 + mvn r3, #0 + ldr r4, .L2502 + 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 + cmp r3, r5 + bhi .L2486 + ldr r1, .L2502+4 + movw r2, #921 + ldr r0, .L2502+8 + bl printk + bl dump_stack +.L2486: + ldrb r2, [r4, #589] @ zero_extendqisi2 + ldr r3, .L2502 + cmp r2, r5 + mvnls r0, #0 + bls .L2487 + add r5, r3, r5 + mvn r2, #0 + bic r9, r10, r2, asl r9 + ubfx r10, r10, #24, #2 + ldrb r5, [r5, #668] @ zero_extendqisi2 + ldr r8, [r3, #528] + mov r0, r5 + bl nandc_cs + cmp r10, #0 + bne .L2488 + mov r0, r9 + 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 + 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 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 + 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: + bl nandc_set_seed + ldr r3, .L2502+12 + mov r1, #0 + mov r0, r5 + ldrb r2, [r3, #13] @ zero_extendqisi2 + mov r3, r6 + str r7, [sp] + bl nandc_xfer + mov r4, r0 + mov r0, r5 + bl nandc_de_cs + mov r0, r4 +.L2487: + add sp, sp, #8 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L2503: + .align 2 +.L2502: + .word .LANCHOR0 + .word .LANCHOR1+1640 + .word .LC0 + .word .LANCHOR2 + .fnend + .size flash_complete_plane_page_read, .-flash_complete_plane_page_read + .align 2 + .global flash_complete_page_read + .type flash_complete_page_read, %function +flash_complete_page_read: + .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} + mov r6, #1 + ldr r5, .L2538 + .pad #20 + sub sp, sp, #20 + mov r9, r0 + mov r10, r1 + mov fp, r2 + ldrb r7, [r5, #676] @ 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 + 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 + bl printk + bl dump_stack +.L2505: + add r7, r5, r7 + ldrb r8, [r7, #668] @ zero_extendqisi2 + ldr r7, [r5, #528] + mov r0, r8 + bl nandc_cs + cmp r6, #0 + bne .L2506 + 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 + cmp r3, #0 + subeq r0, r6, #1 + addeq r3, r4, r4, asl #1 + addeq r0, r0, r3 + beq .L2537 +.L2507: + mov r0, r4 +.L2537: + bl nandc_set_seed + ldr r7, .L2538+12 + mov r0, r8 + mov r1, #0 + mov r3, r10 + ldrb r2, [r7, #13] @ zero_extendqisi2 + str fp, [sp] + bl nandc_xfer + cmn r0, #1 + bne .L2509 + ldrb ip, [r5, #656] @ zero_extendqisi2 + cmp ip, #0 + beq .L2510 + ldr r2, .L2538 + mov r3, #0 + mov r0, r8 + orr r1, r4, r6, asl #24 + str ip, [sp, #12] + strb r3, [r2, #656] + mov r2, r10 + ldrb r3, [r7, #13] @ zero_extendqisi2 + str r3, [sp] + mov r3, fp + bl flash_read_page + ldr r3, .L2538 + cmp r6, #0 + ldr ip, [sp, #12] + strb ip, [r3, #656] + bne .L2511 +.L2518: + ldrb r3, [r5] @ zero_extendqisi2 + cmp r3, #0 + beq .L2511 + ldr r3, .L2538 + ldrb r3, [r3, #660] @ zero_extendqisi2 + add r3, r3, r3, asl #1 + cmp r0, r3, asr #2 + blt .L2511 + ldrb r3, [r7, #23] @ zero_extendqisi2 + sub r3, r3, #4 + cmp r3, #4 + movls r0, #256 + b .L2525 +.L2511: + cmn r0, #1 + bne .L2525 +.L2519: + ldr r3, .L2538+16 + ldr ip, [r3, #-3252] + cmp ip, #0 + bne .L2514 +.L2517: + ldrb r3, [r5, #656] @ zero_extendqisi2 + mov r1, #0 + ldr r0, .L2538+20 + mov r2, r9 + str r3, [sp] + mvn r3, #0 + bl printk + ldrb r3, [r5, #623] @ zero_extendqisi2 + cmp r3, #0 + mvneq r0, #0 + beq .L2525 + ldrb r3, [r7, #13] @ zero_extendqisi2 + mov r0, r8 + orr r1, r4, r6, asl #24 + mov r2, r10 + str r3, [sp] + mov r3, fp + bl flash_ddr_tuning_read + b .L2525 +.L2514: + ldrb r3, [r7, #13] @ zero_extendqisi2 + mov r0, r8 + orr r1, r4, r6, asl #24 + mov r2, r10 + str r3, [sp] + mov r3, fp + blx ip + cmn r0, #1 + bne .L2525 + b .L2517 +.L2509: + cmp r6, #0 + beq .L2518 + b .L2525 +.L2510: + cmp r6, #0 + beq .L2518 + b .L2519 +.L2525: + add sp, sp, #20 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2539: + .align 2 +.L2538: + .word .LANCHOR0 + .word .LANCHOR1+1672 + .word .LC0 + .word .LANCHOR2 + .word .LANCHOR3 + .word .LC168 + .fnend + .size flash_complete_page_read, .-flash_complete_page_read + .align 2 + .type queue_wait_first_req_completed, %function +queue_wait_first_req_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} + .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 + mov r3, #48 + mla r3, r3, r5, r4 + ldrb r2, [r3, #766] @ zero_extendqisi2 + ldr r6, [r3, #748] + 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: + mov r0, r6 + mov r1, #64 + bl flash_wait_device_ready + tst r0, #64 + beq .L2574 + mov r3, #48 + mla r3, r3, r5, r4 + ldr r2, [r3, #732] + ldr r1, [r3, #728] + cmp r2, #0 + beq .L2551 + ldrb r0, [r3, #764] @ zero_extendqisi2 + ldr r3, .L2636 + ldrb r3, [r3, #2260] @ zero_extendqisi2 + cmp r0, r3 + moveq r1, r2 +.L2551: + mov r3, #48 + mov r0, r6 + mla r5, r3, r5, r4 + ldr r2, [r5, #736] + 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: + 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 + tst r0, #64 + beq .L2574 + mla r2, r2, r6, r1 + ldr fp, [r3, #728] + ldr r9, [r2, #728] + ldr r2, [r3, #732] + 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 + 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] + str r3, [sp, #12] + bl flash_complete_plane_page_read + mov r1, r9 + ldr r2, [r7, #736] + mov r8, r0 + ldr r0, [r7, #748] + bl flash_complete_plane_page_read + cmn r8, #1 + mov r10, r0 + beq .L2554 + ldr r3, [sp, #12] + ldr r3, [r3, #744] + cmn r3, #1 + beq .L2555 + ldr ip, [sp, #8] + ldr r2, [ip, #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 + 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] + str lr, [sp] + and r0, r3, r2, lsr r1 + bic r1, r2, r3, asl r1 + mov r2, fp + ldr r3, [r7, #736] + uxtb r0, r0 + bl flash_read_page_en + ldr r2, [r7, #744] + cmn r2, #1 + mov r8, r0 + beq .L2556 + ldr ip, [sp, #8] + ldr r3, [ip, #4] + ldr r1, [r3, #4] + cmp r2, r1 + beq .L2556 + ldr r0, .L2636+4 + ldr r0, [r0] + tst r0, #64 + beq .L2556 + str r1, [sp] + ldr r0, .L2636+8 + ldr r1, [r7, #748] + ldr r3, [r3] + bl printk +.L2556: + mov r3, #48 + mla r3, r3, r5, r4 + ldr r2, [r3, #744] + cmn r2, #1 + beq .L2555 + ldr r3, [r3, #736] + ldr r3, [r3, #4] + cmp r2, r3 + beq .L2555 + ldr r1, .L2636+12 + mov r2, #360 + ldr r0, .L2636+16 + bl printk + bl dump_stack +.L2555: + 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] + orr r2, r2, #8 + strb r2, [r5, #726] + beq .L2557 + ldr r2, .L2636 + mla r3, r3, r6, r2 + ldr r2, [r3, #744] + cmn r2, #1 + beq .L2559 + ldr r3, [r3, #736] + ldr r3, [r3, #4] + cmp r2, r3 + beq .L2559 +.L2557: + mov r5, #48 + ldrb r0, [r4, #676] @ zero_extendqisi2 + mla r5, r5, r6, r4 + rsb r1, r0, #24 + ldrb ip, [r4, #2260] @ zero_extendqisi2 + mvn r3, #0 + mvn r3, r3, asl r0 + ldr r2, [r5, #748] + str ip, [sp] + and r0, r3, r2, lsr r1 + bic r1, r2, r3, asl r1 + mov r2, r9 + ldr r3, [r5, #736] + uxtb r0, r0 + bl flash_read_page_en + ldr r2, [r5, #744] + cmn r2, #1 + beq .L2561 + ldr r3, [r5, #736] + ldr r1, [r3, #4] + cmp r2, r1 + beq .L2561 + ldr r0, .L2636+4 + ldr r0, [r0] + tst r0, #64 + beq .L2561 + str r1, [sp] + ldr r0, .L2636+8 + ldr r1, [r5, #748] + ldr r3, [r3] + bl printk +.L2561: + mov r3, #48 + mla r3, r3, r6, r4 + ldr r2, [r3, #744] + cmn r2, #1 + beq .L2559 + ldr r3, [r3, #736] + ldr r3, [r3, #4] + cmp r2, r3 + beq .L2559 + ldr r1, .L2636+12 + movw r2, #375 + ldr r0, .L2636+16 + bl printk + bl dump_stack +.L2559: + mov r3, #48 + mla r4, r3, r6, r4 + mov r3, #13 + strb r3, [r4, #766] + ldrb r3, [r4, #726] @ zero_extendqisi2 + str r8, [r4, #760] + orr r3, r3, #8 + strb r3, [r4, #726] + b .L2574 +.L2546: + 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 + ands r6, r0, #5 + mov r8, #48 + beq .L2562 + mla r5, r8, r5, r4 + mov r3, #12 + ldr r0, .L2636+20 + mov r2, r7 + mov r6, r7 + strb r3, [r5, #766] + ldrb r1, [r5, #725] @ zero_extendqisi2 + str r3, [sp] + ldr r3, [r5, #748] + 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] + cmp r3, #0 + bne .L2574 + ldrb r0, [r2, #676] @ zero_extendqisi2 + mvn r3, #0 + ldr ip, [r8, #748] + ldrb r2, [r2, #2260] @ zero_extendqisi2 + rsb r1, r0, #24 + ldr r7, .L2636+28 + mvn r3, r3, asl r0 + and r0, r3, ip, lsr r1 + bic r1, ip, r3, asl r1 + str r2, [sp] + uxtb r0, r0 + ldr r3, [r7, #-3244] + ldr r2, [r7, #-3248] + bl flash_read_page_en + cmn r0, #1 + mov r3, r0 + beq .L2563 + ldr r1, [r8, #736] + ldr r2, [r7, #-3244] + ldr r1, [r1] + ldr r2, [r2] + cmp r1, r2 + beq .L2574 +.L2563: + mov r2, #48 + ldr r0, .L2636+32 + mla r5, r2, r5, r4 + ldrb r2, [r4, #656] @ zero_extendqisi2 + ldrb r1, [r5, #725] @ zero_extendqisi2 + str r2, [sp] + ldr r2, [r5, #748] + bl printk + mvn r3, #0 + str r3, [r5, #760] + b .L2542 +.L2549: + 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 + 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 + 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 + ands r2, r0, #15 + mov r3, #48 + mul r3, r3, r5 + beq .L2569 + add r7, r7, r3 + mov r9, #12 + ldr r0, .L2636+40 + mov r2, r6 + ldrb r1, [r7, #725] @ zero_extendqisi2 + str r9, [sp] + ldr r3, [r7, #748] + bl printk + mvn r3, #0 + strb r9, [r7, #766] + str r3, [r7, #760] + b .L2568 +.L2569: + add r6, r7, r3 + mov r1, #13 + str r2, [r6, #760] + ldr r2, [r7, #2288] + strb r1, [r6, #766] + ldr r1, [r2, #156] + ldr r2, .L2636+24 + cmp r1, r2 + bne .L2634 + add r3, r9, r3 + ldrh r3, [r3, #34] + cmp r3, #0 + bne .L2634 + ldr r2, [r6, #748] + mvn r3, #0 + ldrb r0, [r7, #676] @ zero_extendqisi2 + ldr r9, .L2636+28 + rsb r1, r0, #24 + ldrb ip, [r7, #2260] @ 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] + bl flash_read_page_en + cmn r0, #1 + mov r3, r0 + beq .L2571 + ldr r1, [r6, #736] + ldr r2, [r9, #-3244] + ldr r1, [r1] + ldr r2, [r2] + cmp r1, r2 + beq .L2634 +.L2571: + mov r6, #48 + ldrb r2, [r4, #656] @ zero_extendqisi2 + mla r6, r6, r5, r4 + ldr r0, .L2636+44 + ldrb r1, [r6, #725] @ zero_extendqisi2 + str r2, [sp] + ldr r2, [r6, #748] + bl printk + mvn r3, #0 + str r3, [r6, #760] +.L2634: + mov r6, #0 +.L2568: + 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: + mvn r6, #0 + b .L2542 +.L2547: + mov r0, r6 + mov r1, #32 + bl flash_wait_device_ready + tst r0, #32 + beq .L2574 + ands r6, r0, #15 + mov r3, #48 + mlaeq r5, r3, r5, r4 + movne r2, #12 + mlane r3, r3, r5, r4 + moveq r3, #13 + movne r6, r0 + streqb r3, [r5, #766] + streq r6, [r5, #760] + strneb r2, [r3, #766] + mvnne r2, #0 + strne r2, [r3, #760] + b .L2542 +.L2548: + mov r0, r6 + mov r1, #64 + bl flash_wait_device_ready + tst r0, #64 + movne r3, #48 + mlane r5, r3, r5, r4 + movne r3, #7 + strne r0, [r5, #760] + strneb r3, [r5, #766] +.L2574: + mov r6, #0 +.L2542: + mov r0, r6 + add sp, sp, #20 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2637: + .align 2 +.L2636: + .word .LANCHOR0 + .word .LANCHOR2 + .word .LC169 + .word .LANCHOR1+1700 + .word .LC0 + .word .LC170 + .word 1145785929 + .word .LANCHOR3 + .word .LC171 + .word .LANCHOR0+724 + .word .LC172 + .word .LC173 + .fnend + .size queue_wait_first_req_completed, .-queue_wait_first_req_completed + .align 2 + .global sblk_prog_page + .type sblk_prog_page, %function +sblk_prog_page: + .fnstart + @ 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} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .pad #12 + mov r4, r0 + ldrh r3, [r0, #34] + mov r5, r1 + cmp r3, #0 + beq .L2639 + ldr r3, .L2667 + ldr r3, [r3] + tst r3, #256 + beq .L2639 + ldr r0, .L2667+4 + mov r2, r5 + ldr r1, [r4, #24] + bl printk +.L2639: + ldr r8, .L2667+8 + mov r6, #0 + mov r9, r8 +.L2640: + cmp r5, #0 + beq .L2664 + ldrb r3, [r4] @ zero_extendqisi2 + ldr r7, [r4, #24] + str r3, [sp, #4] +.L2641: + mov r0, r7 + mov r1, #1 + bl queue_lun_state + cmp r0, #0 + beq .L2666 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2641 +.L2666: + cmp r5, #1 + beq .L2643 + ldrb r3, [r8, #721] @ zero_extendqisi2 + cmp r3, #0 + bne .L2644 +.L2643: + mov r0, r4 + bl queue_prog_cmd + b .L2645 +.L2644: + ldrb r3, [r8, #676] @ zero_extendqisi2 + mvn fp, #0 + rsb ip, r3, #24 + mov ip, r7, lsr ip + bic fp, ip, fp, asl r3 + ldrb r3, [r4] @ zero_extendqisi2 + cmp r3, #255 + uxth fp, fp + bne .L2646 + ldr r1, .L2667+12 + movw r2, #583 + ldr r0, .L2667+16 + bl printk + bl dump_stack +.L2646: + 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] + 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 + ldrh fp, [r2] + sub lr, lr, #1 + 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 + sub r0, r0, #1 + and r1, r1, ip, lsr fp + uxth r3, r3 + 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 + cmp r6, lr + beq .L2647 + mov r0, #17 + ldr r1, [r4, #24] + ldr r2, [r4, #4] + add r6, r6, r10 + ldr r3, [r4, #12] + bl flash_start_page_prog + mov r3, #9 + strb r10, [r4, #43] + mov r1, r4 + strb r3, [r4, #42] + mvn r3, #0 + ldr r0, .L2667+24 + strb r3, [r4] + bl buf_add_tail + b .L2645 +.L2648: + mov r0, r4 + mov r6, fp + bl queue_prog_cmd + b .L2645 +.L2647: + mov r0, r4 + mov r6, #0 + bl queue_prog_cmd +.L2645: + subs r5, r5, #1 + ldrne r3, .L2667+28 + movne r4, #48 + ldrne r2, [sp, #4] + mlane r4, r4, r2, r3 + bne .L2640 +.L2664: + mov r0, #0 + add sp, sp, #12 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2668: + .align 2 +.L2667: + .word .LANCHOR2 + .word .LC174 + .word .LANCHOR0 + .word .LANCHOR1+1732 + .word .LC0 + .word .LANCHOR0+2928 + .word .LANCHOR0+2263 + .word .LANCHOR0+724 + .fnend + .size sblk_prog_page, .-sblk_prog_page + .align 2 + .global sblk_wait_write_queue_completed + .type sblk_wait_write_queue_completed, %function +sblk_wait_write_queue_completed: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, lr} + .save {r4, lr} + ldr r4, .L2674 +.L2670: + ldrb r3, [r4, #2263] @ zero_extendqisi2 + cmp r3, #255 + beq .L2673 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2670 +.L2673: + ldmfd sp!, {r4, pc} +.L2675: + .align 2 +.L2674: + .word .LANCHOR0 + .fnend + .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed + .align 2 + .global ftl_flush + .type ftl_flush, %function +ftl_flush: + .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, .L2682 + ldr r5, .L2682+4 + ldrb r1, [r4, #2285] @ zero_extendqisi2 + cmp r1, #0 + beq .L2677 + ldrb r2, [r5, #-3240] @ zero_extendqisi2 + add r3, r4, #724 + mov r0, #48 + mla r0, r0, r2, r3 + bl sblk_prog_page +.L2677: + mvn r3, #0 + strb r3, [r5, #-3240] + mov r3, #0 + strb r3, [r4, #2285] + bl sblk_wait_write_queue_completed + bl ftl_write_completed + movw r0, #65535 + ldmfd sp!, {r3, r4, r5, lr} + b ftl_vpn_decrement +.L2683: + .align 2 +.L2682: + .word .LANCHOR0 + .word .LANCHOR3 + .fnend + .size ftl_flush, .-ftl_flush + .align 2 + .global zftl_cache_flush + .type zftl_cache_flush, %function +zftl_cache_flush: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, lr} + .save {r3, lr} + ldr r3, .L2689 + ldrb r3, [r3, #2285] @ zero_extendqisi2 + cmp r3, #0 + ldmeqfd sp!, {r3, pc} + bl timer_get_time + ldr r3, .L2689+4 + ldr r3, [r3, #-3236] + add r3, r3, #100 + cmp r0, r3 + ldmlsfd sp!, {r3, pc} + ldmfd sp!, {r3, lr} + b ftl_flush +.L2690: + .align 2 +.L2689: + .word .LANCHOR0 + .word .LANCHOR3 + .fnend + .size zftl_cache_flush, .-zftl_cache_flush + .align 2 + .global ftl_read_page + .type ftl_read_page, %function +ftl_read_page: + .fnstart + @ args = 4, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + ldr r8, [sp, #24] + bl sblk_wait_write_queue_completed + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + str r8, [sp, #24] + ldmfd sp!, {r4, r5, r6, r7, r8, lr} + b flash_read_page_en + .fnend + .size ftl_read_page, .-ftl_read_page + .align 2 + .global ftl_read_ppa_page + .type ftl_read_ppa_page, %function +ftl_read_ppa_page: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ 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 + mov r8, r3 + ldr r3, .L2695 + mov r7, r1 + mov r6, r2 + mvn r2, #0 + mov r5, r0 + ldrb r1, [r3, #676] @ zero_extendqisi2 + rsb r4, r1, #24 + mvn r2, r2, asl r1 + and r4, r2, r0, lsr r4 + bl sblk_wait_write_queue_completed + mov r1, r5 + uxtb r4, r4 + mov r2, r7 + mov r3, r6 + mov r0, r4 + str r8, [sp] + bl flash_read_page_en + add sp, sp, #8 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L2696: + .align 2 +.L2695: + .word .LANCHOR0 + .fnend + .size ftl_read_ppa_page, .-ftl_read_ppa_page + .align 2 + .global sblk_read_page + .type sblk_read_page, %function +sblk_read_page: + .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 #20 + sub sp, sp, #20 + ldr r10, .L2725 + mov r8, r0 + mov r6, r1 + mov r4, r0 + mov r5, r1 +.L2698: + cmp r5, #0 + beq .L2721 + ldrb fp, [r4] @ zero_extendqisi2 + ldr r9, [r4, #24] +.L2699: + mov r0, r9 + mov r1, #0 + bl queue_lun_state + cmp r0, #0 + beq .L2723 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2699 +.L2723: + cmp r5, #1 + beq .L2705 + ldr r3, .L2725+4 + ldrb r3, [r3, #-3232] @ zero_extendqisi2 + cmp r3, #0 + beq .L2705 + ldr r3, .L2725 + mvn lr, #0 + ldrb r2, [r3, #676] @ zero_extendqisi2 + rsb r3, r2, #24 + mov r3, r9, lsr r3 + bic lr, r3, lr, asl r2 + uxth r3, lr + 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 + bl printk + bl dump_stack +.L2704: + ldrb r3, [r4] @ zero_extendqisi2 + mov r2, #48 + ldrb r0, [r10, #676] @ zero_extendqisi2 + mvn ip, #0 + mul r3, r2, r3 + rsb r2, r0, #24 + add r7, r10, r3 + ldr r1, [r7, #748] + 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 + ldrh r2, [r2] + add r9, r2, r9 + cmp r1, r9 + bne .L2705 + ldr r0, [r4, #24] + mvn r9, #0 + str r3, [sp, #12] + add r5, r5, r9 + ldrb fp, [r7, #724] @ 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 + 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 ip, [sp, #8] + ldr r2, [sp, #4] + ldr r3, [sp, #12] + strb ip, [r7, #766] + strb r2, [r7, #767] + add r1, r1, r3 + bl buf_add_tail + b .L2703 +.L2705: + mov r0, r4 + bl queue_read_cmd +.L2703: + subs r5, r5, #1 + ldrne r3, .L2725+24 + movne r4, #48 + mlane r4, r4, fp, r3 + bne .L2698 +.L2721: + ldr r4, .L2725+24 + mov r5, #48 +.L2709: + cmp r6, #0 + beq .L2724 + ldrb r3, [r8, #42] @ zero_extendqisi2 + cmp r3, #13 + bne .L2710 + ldrb r3, [r8] @ zero_extendqisi2 + sub r6, r6, #1 + cmp r3, #255 + mlane r8, r5, r3, r4 +.L2710: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2709 +.L2724: + mov r0, r6 + add sp, sp, #20 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L2726: + .align 2 +.L2725: + .word .LANCHOR0 + .word .LANCHOR3 + .word .LANCHOR1+1748 + .word .LC0 + .word .LANCHOR0+2994 + .word .LANCHOR0+2263 + .word .LANCHOR0+724 + .fnend + .size sblk_read_page, .-sblk_read_page + .align 2 .global sblk_tlc_prog_one_page .type sblk_tlc_prog_one_page, %function sblk_tlc_prog_one_page: @@ -15739,16 +15905,16 @@ sblk_tlc_prog_one_page: mov r4, r0 ldr r3, [r0] ldr r6, [r3, #24] -.L2720: +.L2728: mov r0, r6 mov r1, #1 bl queue_lun_state subs r5, r0, #0 - beq .L2723 + beq .L2731 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2720 -.L2723: + b .L2728 +.L2731: mov r0, r4 bl queue_tlc_prog_cmd mov r0, r5 @@ -15770,19 +15936,19 @@ sblk_xlc_prog_pages: mov r8, r1 mov r9, r2 ldr r4, [r3, #24] -.L2725: +.L2733: mov r0, r4 mov r1, #1 bl queue_lun_state cmp r0, #0 - beq .L2730 + beq .L2738 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2725 -.L2730: + b .L2733 +.L2738: cmp r9, #2 - bne .L2727 - ldr r2, .L2731 + bne .L2735 + ldr r2, .L2739 mov r6, #1 ldr r3, [r5] ldr ip, [r8] @@ -15876,171 +16042,29 @@ sblk_xlc_prog_pages: bl flash_start_tlc_page_prog ldr r1, [r5] mov r3, #5 - ldr r0, .L2731+4 + ldr r0, .L2739+4 strb r3, [r1, #42] mvn r3, #0 strb r6, [r1, #43] strb r3, [r1] bl buf_add_tail - b .L2728 -.L2727: + b .L2736 +.L2735: mov r0, r5 bl queue_tlc_prog_cmd -.L2728: +.L2736: mov r0, #0 add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2732: +.L2740: .align 2 -.L2731: +.L2739: .word .LANCHOR0 .word .LANCHOR0+2263 .fnend .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .align 2 - .global sblk_3d_tlc_dump_prog - .type sblk_3d_tlc_dump_prog, %function -sblk_3d_tlc_dump_prog: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2735 - stmfd sp!, {r4, r5, r6, r7, lr} - .save {r4, r5, r6, r7, lr} - mov r7, #1 - ldrb r4, [r3, #676] @ zero_extendqisi2 - mov r5, r0 - ldr r2, [r0, #24] - .pad #20 - sub sp, sp, #20 - rsb r3, r4, #24 - mov r4, r7, asl r4 - mov r6, r7, asl r3 - sub r4, r4, #1 - sub r6, r6, #1 - and r4, r4, r2, lsr r3 - and r6, r6, r2 - mov r3, r2 - ldr r0, .L2735+4 - uxtb r4, r4 - mov r1, r6 - bl printk - ldr r3, [r5, #4] - mov r1, r7 - mov r2, #26 - 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 - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr r3, [r5, #4] - mov r1, #2 - mov r2, #26 - 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 - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr r3, [r5, #4] - 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 - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr r0, [r5, #24] - mov r1, #64 - add sp, sp, #20 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, lr} - b flash_wait_device_ready -.L2736: - .align 2 -.L2735: - .word .LANCHOR0 - .word .LC175 - .fnend - .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog - .align 2 - .global flash_start_3d_mlc_page_prog - .type flash_start_3d_mlc_page_prog, %function -flash_start_3d_mlc_page_prog: - .fnstart - @ args = 4, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - mov r8, r3 - ldr r3, .L2741 - mov r5, r2 - mov r7, r0 - mov r4, r1 - ldrb r2, [r3, #589] @ zero_extendqisi2 - mov r6, r3 - cmp r2, r1 - bhi .L2738 - ldr r1, .L2741+4 - mov r2, #772 - ldr r0, .L2741+8 - bl printk - bl dump_stack -.L2738: - ldrb r2, [r6, #589] @ zero_extendqisi2 - ldr r3, .L2741 - cmp r2, r4 - ldmlsfd sp!, {r4, r5, r6, r7, r8, pc} - add r4, r3, r4 - ldr r6, [r3, #528] - ldrb r4, [r4, #668] @ zero_extendqisi2 - mov r0, r4 - add r4, r6, r4, asl #8 - bl nandc_cs - mov r3, #128 - mov r0, r5 - 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 nandc_set_seed - ldr r3, .L2741+12 - mov r0, #1 - mov r2, r8 - ldrb r1, [r3, #13] @ zero_extendqisi2 - ldr r3, [sp, #24] - bl nandc_xfer_start - bl nandc_xfer_done - str r7, [r4, #2056] - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2742: - .align 2 -.L2741: - .word .LANCHOR0 - .word .LANCHOR1+1732 - .word .LC0 - .word .LANCHOR2 - .fnend - .size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog - .align 2 .global sblk_3d_mlc_prog_pages .type sblk_3d_mlc_prog_pages, %function sblk_3d_mlc_prog_pages: @@ -16051,24 +16075,24 @@ sblk_3d_mlc_prog_pages: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 add r5, r0, #8 - ldr r9, .L2751 + ldr r9, .L2749 mov r7, r1 mov r8, #1 -.L2744: +.L2742: cmp r7, #0 - beq .L2749 + beq .L2747 ldr r3, [r5, #-8] ldr r4, [r3, #24] -.L2745: +.L2743: mov r0, r4 mov r1, #1 bl queue_lun_state cmp r0, #0 - beq .L2750 + beq .L2748 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2745 -.L2750: + b .L2743 +.L2748: ldr r3, [r5, #-8] sub r7, r7, #1 ldrb r4, [r9, #676] @ zero_extendqisi2 @@ -16105,91 +16129,26 @@ sblk_3d_mlc_prog_pages: bl nandc_de_cs ldr r1, [r5, #-16] mov r3, #4 - ldr r0, .L2751+4 + ldr r0, .L2749+4 strb r3, [r1, #42] mvn r3, #0 strb r8, [r1, #43] strb r3, [r1] bl buf_add_tail - b .L2744 -.L2749: + b .L2742 +.L2747: mov r0, r7 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2752: +.L2750: .align 2 -.L2751: +.L2749: .word .LANCHOR0 .word .LANCHOR0+2263 .fnend .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages .align 2 - .global sblk_mlc_dump_prog - .type sblk_mlc_dump_prog, %function -sblk_mlc_dump_prog: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2755 - stmfd sp!, {r0, r1, r4, r5, r6, lr} - .save {r4, r5, r6, lr} - .pad #8 - mov r4, #1 - ldrb r1, [r3, #676] @ zero_extendqisi2 - mov r5, r0 - ldr r2, [r0, #24] - rsb r3, r1, #24 - mov r6, r4, asl r3 - mov r4, r4, asl r1 - sub r4, r4, #1 - sub r6, r6, #1 - and r4, r4, r2, lsr r3 - and r6, r6, r2 - uxtb r4, r4 - mov r0, r4 - bl zftl_flash_exit_slc_mode - ldr r2, [r5, #24] - mov r1, r6 - ldr r0, .L2755+4 - add r3, r2, #1 - bl printk - ldr r3, [r5, #12] - mov r1, r4 - mov r2, r6 - mov r0, #16 - str r3, [sp] - ldr r3, [r5, #4] - bl flash_start_3d_mlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr r3, [r5, #12] - add r2, r6, #1 - mov r1, r4 - mov r0, #16 - str r3, [sp] - ldr r3, [r5, #4] - bl flash_start_3d_mlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - mov r1, #64 - ldr r0, [r5, #24] - bl flash_wait_device_ready - mov r5, r0 - mov r0, r4 - bl nandc_de_cs - mov r0, r5 - add sp, sp, #8 - @ sp needed - ldmfd sp!, {r4, r5, r6, pc} -.L2756: - .align 2 -.L2755: - .word .LANCHOR0 - .word .LC176 - .fnend - .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog - .align 2 .global flash_prog_page_en .type flash_prog_page_en, %function flash_prog_page_en: @@ -16201,7 +16160,7 @@ flash_prog_page_en: .pad #28 sub sp, sp, #28 mov r8, r3 - ldr r6, .L2787 + ldr r6, .L2781 ldrb r3, [sp, #68] @ zero_extendqisi2 mov r7, r0 mov r5, r1 @@ -16210,58 +16169,58 @@ flash_prog_page_en: str r3, [sp, #16] ldrb r3, [r6, #589] @ zero_extendqisi2 cmp r3, r0 - bhi .L2758 - ldr r1, .L2787+4 - movw r2, #554 - ldr r0, .L2787+8 + bhi .L2752 + ldr r1, .L2781+4 + mov r2, #560 + ldr r0, .L2781+8 bl printk bl dump_stack -.L2758: +.L2752: ldrb r2, [r6, #589] @ zero_extendqisi2 - ldr r3, .L2787 + ldr r3, .L2781 cmp r2, r7 mvnls r0, #0 - bls .L2759 + bls .L2753 add r2, r3, r7 cmp r4, #0 ldrb r10, [r2, #668] @ zero_extendqisi2 - bne .L2771 + bne .L2765 ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 - beq .L2761 + beq .L2755 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, #0 - beq .L2771 -.L2761: + beq .L2765 +.L2755: ldrh fp, [r6, #2] mov r0, r5 mov r1, fp bl __aeabi_uidiv ldrb r3, [r6, #1] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L2787 + ldreq r3, .L2781 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 .L2760 -.L2771: + b .L2754 +.L2765: mov r4, r5 +.L2754: + ldr fp, .L2781+12 + ldr r6, .L2781+16 .L2760: - ldr fp, .L2787+12 - ldr r6, .L2787+16 -.L2766: ldr r3, [fp] tst r3, #16 - beq .L2763 - ldr r0, .L2787+20 + beq .L2757 + ldr r0, .L2781+20 mov r1, r10 mov r2, r5 mov r3, r4 bl printk -.L2763: +.L2757: ldr r3, [sp, #64] mov r0, r10 mov r1, r4 @@ -16272,7 +16231,7 @@ flash_prog_page_en: ldr r3, [sp, #16] mov ip, r0 cmp r3, #0 - beq .L2764 + beq .L2758 ldr r3, [sp, #64] mov r1, r5 str r0, [sp, #20] @@ -16287,76 +16246,76 @@ flash_prog_page_en: clz r3, r3 mov r3, r3, lsr #5 str r3, [sp, #12] - beq .L2765 + beq .L2759 ldr r3, [r6, #-3248] ldr r2, [r9] ldr ip, [sp, #20] ldr r3, [r3] cmp r2, r3 - bne .L2765 + bne .L2759 ldr r3, [r6, #-3244] ldr r2, [r8] ldr r3, [r3] cmp r2, r3 - beq .L2764 -.L2765: + beq .L2758 +.L2759: mov r2, #4 - ldr r0, .L2787+24 + ldr r0, .L2781+24 mov r3, r2 mov r1, r9 bl rknand_print_hex mov r2, #4 mov r3, r2 - ldr r0, .L2787+28 + ldr r0, .L2781+28 mov r1, r8 bl rknand_print_hex mov r2, #4 mov r3, r2 - ldr r0, .L2787+32 + ldr r0, .L2781+32 ldr r1, [r6, #-3244] bl rknand_print_hex mov r2, #4 mov r3, r2 - ldr r0, .L2787+36 + ldr r0, .L2781+36 ldr r1, [r6, #-3248] bl rknand_print_hex ldr r3, [sp, #12] cmp r3, #0 - bne .L2766 -.L2768: + bne .L2760 +.L2762: mov r1, r5 - ldr r0, .L2787+40 + ldr r0, .L2781+40 bl printk - ldr r1, .L2787+4 - movw r2, #587 - ldr r0, .L2787+8 + ldr r1, .L2781+4 + movw r2, #593 + ldr r0, .L2781+8 bl printk bl dump_stack mvn ip, #0 - b .L2767 -.L2764: + b .L2761 +.L2758: cmn ip, #1 - beq .L2768 -.L2767: + beq .L2762 +.L2761: mov r0, ip -.L2759: +.L2753: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2788: +.L2782: .align 2 -.L2787: +.L2781: .word .LANCHOR0 .word .LANCHOR1+1764 .word .LC0 .word .LANCHOR2 .word .LANCHOR3 + .word .LC175 + .word .LC176 .word .LC177 .word .LC178 .word .LC179 .word .LC180 - .word .LC181 - .word .LC182 .fnend .size flash_prog_page_en, .-flash_prog_page_en .align 2 @@ -16385,26 +16344,26 @@ ftl_prog_page: bl flash_prog_page_en cmn r0, #1 mov r4, r0 - bne .L2790 - ldr r1, .L2792 - movw r2, #2324 - ldr r0, .L2792+4 + bne .L2784 + ldr r1, .L2786 + movw r2, #2344 + ldr r0, .L2786+4 bl printk bl dump_stack - ldr r0, .L2792+8 + ldr r0, .L2786+8 mov r1, r5 bl printk -.L2790: +.L2784: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2793: +.L2787: .align 2 -.L2792: +.L2786: .word .LANCHOR1+1784 .word .LC0 - .word .LC182 + .word .LC180 .fnend .size ftl_prog_page, .-ftl_prog_page .align 2 @@ -16412,207 +16371,222 @@ ftl_prog_page: .type ftl_info_flush, %function ftl_info_flush: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ 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 r1, #0 - ldr r5, .L2832 - .pad #20 - sub sp, sp, #20 - mov fp, r0 - ldr r0, .L2832+4 - ldr r7, .L2832+8 - mov r10, #0 - ldrb r2, [r5, #2260] @ zero_extendqisi2 - mov r6, r7 + ldr r4, .L2830 + .pad #28 + sub sp, sp, #28 + 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 mov r2, r2, asl #1 bl ftl_memset - ldr r3, [r5, #2288] + 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] ldrh r2, [r3, #74] cmp r2, #0 movne r2, #0 strneh r2, [r3, #150] @ movhi -.L2806: - ldr r3, .L2832+12 - ldr lr, [r5, #2288] - ldr r8, .L2832+16 - ldrh r3, [r3] - ldrb r4, [r7, #-2936] @ zero_extendqisi2 - ldrh ip, [r8, #2] - str r3, [sp, #8] - ldr r3, [lr, #4] - ldr r9, .L2832+12 +.L2801: + ldrb r3, [r5, #-2936] @ zero_extendqisi2 + ldr r8, .L2830+12 + ldr r6, .L2830+16 + 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] add r3, r3, #1 - str r3, [lr, #4] - str r3, [r7, #-3188] - ldr r3, .L2832+20 - str fp, [r7, #-3192] + str r3, [r2, #4] + str r3, [r5, #-3188] + str r10, [r5, #-3192] + bl js_hash + ldr r3, .L2830+20 ldr r3, [r3] tst r3, #4096 - beq .L2796 - mov r2, ip - ldr r0, .L2832+24 - mov r1, r4 - ldr r3, [lr, #4] - str ip, [sp, #12] + str r0, [r5, #-3184] + beq .L2791 + ldr r3, [fp, #2288] + ldr r0, .L2830+24 + ldrb r1, [r5, #-2936] @ zero_extendqisi2 + ldrh r2, [r6, #2] + ldr r3, [r3, #4] bl printk - ldr ip, [sp, #12] -.L2796: - ldr r3, .L2832+28 - ldrh r0, [r8, #2] +.L2791: + ldr r3, .L2830+28 + ldrh r0, [r6, #2] ldrh r3, [r3] cmp r3, r0 - bhi .L2797 -.L2802: - ldrb r3, [r6, #-2935] @ zero_extendqisi2 + bhi .L2792 +.L2797: + ldrb r3, [r7, #-2935] @ zero_extendqisi2 add r3, r3, #1 uxtb r3, r3 - strb r3, [r6, #-2935] + strb r3, [r7, #-2935] cmp r3, #7 - bls .L2798 + bls .L2793 mov r3, #8 -.L2801: - ldr r2, [r5, #664] - sub r4, r3, #8 +.L2796: + ldr r2, [r4, #664] + sub r9, r3, #8 add r2, r2, r3 - uxth r4, r4 + uxth r9, r9 ldrb r1, [r2, #32] @ zero_extendqisi2 add r2, r1, #127 uxtb r2, r2 cmp r2, #125 - bhi .L2799 - ldr r1, .L2832+32 - movw r2, #751 - ldr r0, .L2832+36 + bhi .L2794 + ldr r1, .L2830+32 + movw r2, #761 + ldr r0, .L2830+36 bl printk bl dump_stack - b .L2800 -.L2799: + b .L2795 +.L2794: cmp r1, #255 - bne .L2800 + bne .L2795 add r3, r3, #1 cmp r3, #16 - bne .L2801 - mov r4, #8 -.L2800: - mov r10, #1 - strb r4, [r6, #-2935] -.L2798: - ldr r3, [r5, #664] - ldrb r2, [r6, #-2935] @ zero_extendqisi2 + bne .L2796 + mov r9, #8 +.L2795: + strb r9, [r7, #-2935] + mov r9, #1 +.L2793: + ldr r3, [r4, #664] + ldrb r2, [r7, #-2935] @ zero_extendqisi2 add r3, r3, r2 ldrb r3, [r3, #40] @ zero_extendqisi2 cmp r3, #255 - strb r3, [r6, #-2936] - beq .L2802 - ldrh r4, [r9] + strb r3, [r7, #-2936] + beq .L2797 + ldrh r8, [r8] mov r0, #0 - mul r4, r4, r3 - mov r1, r4 + mul r8, r8, r3 + mov r1, r8 bl flash_erase_block - ldr r3, .L2832 - ldr r2, .L2832+40 - mov r1, r4 + ldr r3, .L2830 + ldr r2, .L2830+40 + mov r1, r8 mov r0, #0 ldrb r3, [r3, #2260] @ zero_extendqisi2 str r3, [sp] sub r3, r2, #320 bl ftl_prog_page - ldr r3, .L2832+16 + ldr r3, .L2830+16 mov r2, #1 - add r4, r4, r2 + add r8, r8, r2 strh r2, [r3, #2] @ movhi - b .L2803 -.L2797: - ldr r3, [sp, #8] + b .L2798 +.L2792: + ldr r3, [sp, #12] cmp r0, #0 - mla r4, r3, r4, ip - bne .L2803 - mov r1, r4 + ldr r2, [sp, #16] + ldr r1, [sp, #20] + mla r8, r2, r3, r1 + bne .L2798 + mov r1, r8 bl flash_erase_block -.L2803: - ldrb r3, [r5, #2260] @ zero_extendqisi2 +.L2798: + ldrb r3, [r4, #2260] @ zero_extendqisi2 mov r0, #0 - ldr r2, .L2832+40 - mov r1, r4 + ldr r2, .L2830+40 + mov r1, r8 str r3, [sp] sub r3, r2, #320 bl ftl_prog_page - ldrh r3, [r8, #2] + ldrh r3, [r6, #2] add r3, r3, #1 - strh r3, [r8, #2] @ movhi - ldr r3, .L2832+44 + strh r3, [r6, #2] @ movhi + ldr r3, .L2830+44 cmn r0, #1 - beq .L2804 + beq .L2799 ldrb r2, [r3, #-2856] @ zero_extendqisi2 cmp r2, #0 - beq .L2805 -.L2804: + beq .L2800 +.L2799: mov r2, #0 strb r2, [r3, #-2856] - b .L2806 -.L2805: - cmp r10, #1 - beq .L2807 -.L2815: - ldr r3, .L2832+8 + b .L2801 +.L2800: + cmp r9, #1 + beq .L2802 +.L2810: + ldr r3, .L2830+8 ldrb r3, [r3, #-2936] @ zero_extendqisi2 cmp r3, #255 - bne .L2809 - ldr r1, .L2832+32 - movw r2, #787 - ldr r0, .L2832+36 + bne .L2804 + ldr r1, .L2830+32 + movw r2, #797 + ldr r0, .L2830+36 bl printk bl dump_stack - b .L2809 -.L2807: - ldr r3, .L2832+8 - ldrb r4, [r3, #-2935] @ zero_extendqisi2 - add r4, r4, #1 -.L2810: - cmp r4, #7 - bhi .L2815 - ldr r3, [r5, #664] - add r3, r3, r4 + 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 uxtb r3, r3 cmp r3, #125 - bhi .L2811 - ldr r1, .L2832+32 - mov r2, #780 - ldr r0, .L2832+36 + bhi .L2806 + ldr r1, .L2830+32 + movw r2, #790 + ldr r0, .L2830+36 bl printk bl dump_stack - b .L2812 -.L2811: + b .L2807 +.L2806: cmp r6, #255 - beq .L2813 -.L2812: - ldrh r1, [r9] + beq .L2808 +.L2807: + ldr r3, .L2830+12 mov r0, #0 + ldrh r1, [r3] mul r1, r1, r6 bl flash_erase_block -.L2813: - add r4, r4, #1 - uxth r4, r4 - b .L2810 -.L2809: +.L2808: + add r5, r5, #1 + uxth r5, r5 + b .L2805 +.L2804: mov r0, #0 - add sp, sp, #20 + add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2833: +.L2831: .align 2 -.L2832: +.L2830: .word .LANCHOR0 .word .LANCHOR3-3192 .word .LANCHOR3 .word .LANCHOR0+2994 .word .LANCHOR3-2936 .word .LANCHOR2 - .word .LC183 + .word .LC181 .word .LANCHOR0+2960 .word .LANCHOR1+1800 .word .LC0 @@ -16625,54 +16599,56 @@ ftl_info_flush: .type ftl_info_blk_init, %function ftl_info_blk_init: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2866 + 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 r7, #0 - ldr r4, .L2866+4 - mov r1, r7 + mov r8, #0 + ldr r7, .L2865+4 + mov r1, r8 strb r2, [r3, #-2856] - .pad #20 - sub sp, sp, #20 + .pad #28 + sub sp, sp, #28 strb r2, [r3, #-2854] mov r2, #16384 - strb r7, [r3, #-2855] - add r3, r4, #564 - ldr r0, .L2866+8 + strb r8, [r3, #-2855] + add r3, r7, #564 + ldr r0, .L2865+8 mov r6, #7 ldrh r3, [r3] - mov r9, r4 - ldr r5, .L2866+12 - str r0, [r4, #568] + mov r4, r7 + ldr r9, .L2865+12 + str r0, [r7, #568] add r3, r0, r3, asl #2 - str r3, [r4, #2288] + str r3, [r7, #2288] bl ftl_memset - ldr r0, .L2866+16 - mov r1, r7 + ldr r0, .L2865+16 + mov r1, r8 mov r2, #16384 bl ftl_memset - ldr r3, [r4, #664] - ldr r10, .L2866+20 - ldr fp, .L2866+24 + ldr r3, [r7, #664] + ldr r10, .L2865+20 + mov r5, r9 + ldr fp, .L2865+24 ldrb r3, [r3, #40] @ zero_extendqisi2 - strb r7, [r5, #-2935] - strb r3, [r5, #-2936] - ldr r3, .L2866+28 - strh r7, [r3, #2] @ movhi - str r3, [sp, #8] -.L2839: + 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] uxth r7, r6 add r3, r3, r6 ldrb r3, [r3, #40] @ zero_extendqisi2 cmp r3, #255 - beq .L2835 + beq .L2833 ldrh ip, [r10] mov r0, #0 - ldr r2, .L2866+8 + ldr r2, .L2865+8 mul ip, ip, r3 ldrb r3, [r9, #2260] @ zero_extendqisi2 str r3, [sp] @@ -16683,116 +16659,120 @@ ftl_info_blk_init: cmn r0, #1 mov r8, r0 ldr ip, [sp, #12] - bne .L2836 + bne .L2834 ldrb r3, [r9, #2260] @ zero_extendqisi2 mov r0, #0 - ldr r2, .L2866+8 + ldr r2, .L2865+8 add r1, ip, #1 str r3, [sp] sub r3, r2, #320 bl ftl_read_page mov r8, r0 -.L2836: - ldr r3, .L2866+32 +.L2834: + ldr r3, .L2865+32 ldr r3, [r3] tst r3, #4096 - beq .L2837 + beq .L2835 ldr r3, [r4, #2288] mov r1, r6 - ldr r0, .L2866+36 + ldr r0, .L2865+36 mov r2, r8 ldr r3, [r3] str r3, [sp] mov r3, #672 bl printk -.L2837: +.L2835: cmn r8, #1 - beq .L2835 + beq .L2833 ldr r3, [r4, #2288] ldr r3, [r3] cmp r3, fp - beq .L2848 -.L2835: + beq .L2847 +.L2833: subs r6, r6, #1 - bcs .L2839 - movw r8, #65535 + bcs .L2837 + movw r6, #65535 mov r7, #0 - b .L2838 -.L2848: - mov r8, r7 -.L2838: - ldr r6, .L2866+32 - sxth r8, r8 - ldr r3, [r6] + b .L2836 +.L2847: + mov r6, r7 +.L2836: + ldr r3, .L2865+32 + sxth r6, r6 + ldr r3, [r3] tst r3, #4096 - beq .L2840 + beq .L2838 ldr r3, [r4, #2288] - mov r1, r8 - ldr r0, .L2866+40 + mov r1, r6 + ldr r0, .L2865+40 mov r2, #4800 ldr r3, [r3] bl printk -.L2840: - cmn r8, #1 - bne .L2841 +.L2838: + cmn r6, #1 + bne .L2839 mov r2, #16384 - ldr r0, .L2866+8 + ldr r0, .L2865+8 mov r1, #0 bl ftl_memset ldr r3, [r4, #2288] - ldr r2, .L2866+24 - mov r0, r8 + ldr r2, .L2865+24 + mov r0, r6 str r2, [r3] - ldr r2, .L2866+44 + ldr r2, .L2865+44 ldr r3, [r4, #2288] str r2, [r3, #12] - b .L2842 -.L2841: + b .L2840 +.L2839: ldr r3, [r4, #664] mov r0, #0 - ldr r2, .L2866+8 + ldr r2, .L2865+8 sxtah r3, r3, r7 strb r7, [r5, #-2935] - ldr r10, .L2866+4 + ldr r9, .L2865+12 ldrb r1, [r3, #40] @ zero_extendqisi2 mov r3, #4 - ldr fp, .L2866+24 + ldr r10, .L2865+4 + ldr fp, .L2865+24 strb r1, [r5, #-2936] str r3, [sp] sub r3, r2, #320 bl flash_get_last_written_page movw r2, #2994 + ldrh r6, [r4, r2] + uxth r7, r0 + mov r8, r0 + add r3, r7, #1 + uxth r3, r3 + str r3, [sp, #12] ldrb r3, [r5, #-2936] @ zero_extendqisi2 mov r5, #0 - ldrh r7, [r4, r2] - mul r7, r7, r3 - uxth r8, r0 - mov r9, r0 - add ip, r8, #1 - uxth ip, ip -.L2843: - rsb r3, r5, r8 + mul r6, r6, r3 +.L2841: + rsb r3, r5, r7 tst r3, #32768 - bne .L2847 + bne .L2845 ldrb r3, [r4, #2260] @ zero_extendqisi2 - add r1, r9, r7 - ldr r2, .L2866+8 + add r1, r8, r6 + ldr r2, .L2865+8 mov r0, #0 rsb r1, r5, r1 - str ip, [sp, #12] str r3, [sp] sub r3, r2, #320 bl ftl_read_page cmn r0, #1 - ldr ip, [sp, #12] - beq .L2844 + beq .L2842 ldr r3, [r10, #2288] ldr r3, [r3] cmp r3, fp - bne .L2844 -.L2847: - ldr r3, [sp, #8] - strh ip, [r3, #2] @ movhi + bne .L2842 + ldr r3, [r9, #-3184] + cmp r3, #0 + bne .L2843 +.L2845: + ldr r3, [sp, #16] + ldrh r2, [sp, #12] + strh r2, [r3, #2] @ movhi bl ftl_tmp_into_update ldr r2, [r4, #2288] mov r0, #0 @@ -16802,26 +16782,39 @@ ftl_info_blk_init: bl ftl_info_flush mov r0, #0 bl ftl_info_flush - ldr r0, [r6] + ldr r3, .L2865+32 + ldr r0, [r3] ands r0, r0, #16384 - beq .L2842 - ldr r3, .L2866+4 - ldr r0, .L2866+48 + beq .L2840 + ldr r3, .L2865+4 + ldr r0, .L2865+48 ldr r3, [r3, #2288] ldr r1, [r3, #156] bl printk mov r0, #0 - b .L2842 -.L2844: - add r5, r5, #1 - b .L2843 + b .L2840 +.L2843: + ldrb r1, [r10, #2260] @ zero_extendqisi2 + ldr r0, .L2865+8 + 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] + bl printk .L2842: - add sp, sp, #20 + add r5, r5, #1 + b .L2841 +.L2840: + add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2867: - .align 2 .L2866: + .align 2 +.L2865: .word .LANCHOR4 .word .LANCHOR0 .word .LANCHOR3-2872 @@ -16831,10 +16824,11 @@ ftl_info_blk_init: .word 1229739078 .word .LANCHOR3-2936 .word .LANCHOR2 - .word .LC184 + .word .LC182 + .word .LC183 + .word 393248 .word .LC185 - .word 393240 - .word .LC186 + .word .LC184 .fnend .size ftl_info_blk_init, .-ftl_info_blk_init .align 2 @@ -16848,8 +16842,8 @@ ftl_ext_info_flush: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 bl timer_get_time - ldr r3, .L2884 - ldr r4, .L2884+4 + ldr r3, .L2883 + ldr r4, .L2883+4 umull r0, r1, r0, r3 ldr r3, [r4, #580] ldr r0, [r3, #520] @@ -16859,18 +16853,18 @@ ftl_ext_info_flush: rsbhi r2, r0, r2 addhi r2, r2, r1 strhi r2, [r3, #12] - bhi .L2883 -.L2869: - bcs .L2870 -.L2883: + bhi .L2882 +.L2868: + bcs .L2869 +.L2882: str r1, [r3, #520] -.L2870: +.L2869: mov r0, #0 - ldr r5, .L2884+8 + ldr r5, .L2883+8 bl ftl_total_vpn_update - ldr r7, .L2884+12 + ldr r7, .L2883+12 mov r6, r5 -.L2874: +.L2873: ldr r3, [r4, #2288] ldr r2, [r3, #56] add r2, r2, #1 @@ -16878,22 +16872,22 @@ ftl_ext_info_flush: ldrh r2, [r3, #140] ldrh r3, [r7] cmp r2, r3 - bcc .L2872 + bcc .L2871 bl ftl_ext_alloc_new_blk -.L2872: +.L2871: ldr r3, [r4, #2288] ldrh r2, [r3, #130] movw r3, #65535 cmp r2, r3 - bne .L2873 - ldr r1, .L2884+16 - movw r2, #1912 - ldr r0, .L2884+20 + bne .L2872 + ldr r1, .L2883+16 + movw r2, #1926 + ldr r0, .L2883+20 bl printk bl dump_stack -.L2873: +.L2872: ldr r1, [r4, #2288] - ldr r8, .L2884+24 + ldr r8, .L2883+24 ldrb r2, [r4, #676] @ zero_extendqisi2 ldrh r3, [r1, #130] ldrh r0, [r8] @@ -16906,23 +16900,28 @@ ftl_ext_info_flush: ldrh r2, [r1, #140] mov r1, #0 sxth r3, r3 - ldr r0, .L2884+28 - ldr r10, .L2884+32 + ldr r10, .L2883+28 + ldr r0, .L2883+32 mla r8, r8, r3, r2 ldrb r2, [r4, #2260] @ zero_extendqisi2 mov r2, r2, asl #1 bl ftl_memset mov r3, #0 str r3, [r10, #-3192] - uxtb r0, r9 ldr r3, [r4, #2288] - mov r1, r8 - ldr r2, .L2884+36 + ldrb r1, [r4, #2260] @ zero_extendqisi2 + ldr r0, .L2883+36 ldr r3, [r3, #56] + mov r1, r1, asl #9 str r3, [r10, #-3188] + bl js_hash ldrb r3, [r4, #2260] @ zero_extendqisi2 + mov r1, r8 + ldr r2, .L2883+36 + str r0, [r10, #-3184] + uxtb r0, r9 str r3, [sp] - ldr r3, .L2884+28 + ldr r3, .L2883+32 bl ftl_prog_page ldr r2, [r4, #2288] ldrh r3, [r2, #140] @@ -16930,24 +16929,24 @@ ftl_ext_info_flush: uxth r3, r3 strh r3, [r2, #140] @ movhi cmp r3, #1 - beq .L2874 + beq .L2873 cmn r0, #1 - beq .L2875 + beq .L2874 ldrb r0, [r5, #-2854] @ zero_extendqisi2 cmp r0, #0 - beq .L2876 -.L2875: -.L2871: + beq .L2875 +.L2874: +.L2870: mov r3, #0 strb r3, [r6, #-2854] - b .L2874 -.L2876: + b .L2873 +.L2875: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2885: - .align 2 .L2884: + .align 2 +.L2883: .word 1374389535 .word .LANCHOR0 .word .LANCHOR4 @@ -16955,8 +16954,8 @@ ftl_ext_info_flush: .word .LANCHOR1+1816 .word .LC0 .word .LANCHOR0+2928 - .word .LANCHOR3-3192 .word .LANCHOR3 + .word .LANCHOR3-3192 .word .LANCHOR4-2792 .fnend .size ftl_ext_info_flush, .-ftl_ext_info_flush @@ -16998,46 +16997,48 @@ ftl_ext_info_init: tst r2, #4096 mov r7, r0 str r3, [sp, #8] - beq .L2887 + beq .L2886 ldr r3, [r4, #2288] uxth r6, r6 str r6, [sp] - movw r2, #1956 + movw r2, #1971 ldr r0, .L2905+16 ldrh r3, [r3, #130] ldr r1, .L2905+20 str r3, [sp, #4] mov r3, r7 bl printk -.L2887: +.L2886: ldr r10, .L2905 mov r8, #0 - ldr fp, .L2905+24 - ldr ip, .L2905+28 -.L2888: +.L2887: uxth r6, r7 rsb r3, r8, r6 tst r3, #32768 - bne .L2893 - ldrh r3, [fp] + bne .L2892 + ldr r3, .L2905+24 rsb r1, r8, r7 ldrb r2, [r4, #2260] @ zero_extendqisi2 mov r0, r9 - str ip, [sp, #12] - mla r1, r3, r5, r1 + ldr fp, .L2905+28 + ldrh r3, [r3] str r2, [sp] - ldr r3, .L2905+8 ldr r2, .L2905+4 + mla r1, r3, r5, r1 + ldr r3, .L2905+8 bl flash_read_page_en cmp r0, #512 cmnne r0, #1 - ldr ip, [sp, #12] - beq .L2889 + beq .L2888 ldr r3, [r10, #580] + ldr r2, .L2905+32 ldr r3, [r3] - cmp r3, ip + cmp r3, r2 + bne .L2888 + ldr r3, [fp, #-3184] + cmp r3, #0 bne .L2889 -.L2893: +.L2892: bl zftl_sblk_list_init ldr r3, [r4, #2288] ldrh r2, [r3, #140] @@ -17048,12 +17049,24 @@ ftl_ext_info_init: bl ftl_ext_info_flush b .L2891 .L2889: + ldrb r1, [r10, #2260] @ zero_extendqisi2 + ldr r0, .L2905+4 + str r3, [sp, #12] + mov r1, r1, asl #9 + bl js_hash + ldr r3, [sp, #12] + cmp r3, r0 + beq .L2892 + ldr r0, .L2905+36 + ldr r1, [fp, #-3184] + bl printk +.L2888: add r8, r8, #1 - b .L2888 + b .L2887 .L2891: ldr r5, [r4, #580] bl timer_get_time - ldr r3, .L2905+32 + ldr r3, .L2905+40 umull r0, r1, r0, r3 mov r3, r1, lsr #5 str r3, [r5, #520] @@ -17086,7 +17099,7 @@ ftl_ext_info_init: mov r2, r6 mov r3, r5 str r0, [sp] - ldr r0, .L2905+36 + ldr r0, .L2905+44 bl printk .L2894: movw r3, #2908 @@ -17103,10 +17116,12 @@ ftl_ext_info_init: .word .LANCHOR4-2792 .word .LANCHOR3-3192 .word .LANCHOR2 - .word .LC187 + .word .LC186 .word .LANCHOR1+1836 .word .LANCHOR0+2994 + .word .LANCHOR3 .word 1162432070 + .word .LC187 .word 1374389535 .word .LC188 .fnend @@ -17211,113 +17226,107 @@ ftl_write_last_log_page: .type ftl_open_sblk_recovery, %function ftl_open_sblk_recovery: .fnstart - @ args = 0, pretend = 0, frame = 224 + @ args = 0, pretend = 0, frame = 216 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3049 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #236 - sub sp, sp, #236 - ldr r2, [r3] + .pad #228 + sub sp, sp, #228 + ldr r6, .L3048 mov r4, r0 - ldr ip, .L3049+4 - mov r9, r1 - str r3, [sp, #24] - str r2, [sp, #228] - ldr r2, [ip] - mov r5, ip - tst r2, #4096 + str r1, [sp, #20] + ldr r3, [r6] + tst r3, #4096 beq .L2919 - ldr r0, .L3049+8 + ldr r0, .L3048+4 ldrh r1, [r4, #2] bl printk .L2919: - ldr r3, [r5] + ldr r3, [r6] tst r3, #4096 beq .L2920 - ldr r0, .L3049+12 + ldr r0, .L3048+8 ldrb r1, [r4, #5] @ zero_extendqisi2 bl printk .L2920: - ldr r3, [r5] + ldr r3, [r6] tst r3, #4096 beq .L2921 - ldr r0, .L3049+16 + ldr r0, .L3048+12 ldrh r1, [r4] bl printk .L2921: - ldr r3, [r5] + ldr r3, [r6] tst r3, #4096 beq .L2922 - ldr r0, .L3049+20 + ldr r0, .L3048+16 ldrh r1, [r4, #16] ldrh r2, [r4, #18] bl printk .L2922: - ldr r3, [r5] + ldr r3, [r6] tst r3, #4096 beq .L2923 - ldr r0, .L3049+24 + ldr r0, .L3048+20 ldrb r1, [r4, #9] @ zero_extendqisi2 bl printk .L2923: ldrh r3, [r4, #10] - ldr r6, .L3049+28 + ldr r7, .L3048+24 ldrh r2, [r4] strh r3, [r4, #14] @ movhi - ldrh r3, [r6] + ldrh r3, [r7] cmp r2, r3 bcs .L2918 mov r0, #1 - sub r6, r6, #564 + sub r7, r7, #564 bl buf_alloc mov r1, #255 mov r2, #64 + mov r10, #2 mov r5, r0 - add r0, sp, #36 + add r0, sp, #32 bl ftl_memset mov r1, #255 mov r2, #64 - add r0, sp, #100 + add r0, sp, #96 bl ftl_memset mov r1, #255 mov r2, #64 - add r0, sp, #164 + add r0, sp, #160 bl ftl_memset - ldrb r7, [r4, #5] @ zero_extendqisi2 - ldrh r8, [r4, #2] - mov r3, #2 - str r3, [sp, #12] + ldrb r8, [r4, #5] @ zero_extendqisi2 + ldrh r9, [r4, #2] mov r3, #0 - str r3, [sp, #16] + str r3, [sp, #12] .L2925: - ldr r3, .L3049+32 + ldr r3, .L3048+28 ldrh r2, [r3] - cmp r2, r8 + cmp r2, r9 bls .L2928 - ldrb r7, [r4, #5] @ zero_extendqisi2 + ldrb r8, [r4, #5] @ zero_extendqisi2 add r3, r3, #34 - str r3, [sp, #28] + str r3, [sp, #24] .L2926: ldrb r3, [r4, #9] @ zero_extendqisi2 - cmp r3, r7 - bls .L3045 - add r3, r4, r7, asl #1 + 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, #28] + ldr r2, [sp, #24] ldr r1, [r5, #4] ldrh r2, [r2] - mla r3, r2, r3, r8 + mla r3, r2, r3, r9 ldr r2, [r5, #12] - str r3, [sp, #20] + str r3, [sp, #16] mov r0, r3 - ldrb r3, [r6, #2260] @ zero_extendqisi2 + ldrb r3, [r7, #2260] @ zero_extendqisi2 bl ftl_read_ppa_page cmp r0, #512 - mov r10, r0 + mov fp, r0 beq .L2928 cmn r0, #1 beq .L2929 @@ -17333,52 +17342,53 @@ ftl_open_sblk_recovery: cmn r3, #1 beq .L2928 .L2929: - ldr r3, .L3049+36 + ldr r3, .L3048+32 mov r2, #1 strb r2, [r3, #-2855] ldrb r3, [r4, #9] @ zero_extendqisi2 ldrh r2, [r4, #10] - mla r3, r3, r8, r7 + mla r3, r3, r9, r8 cmp r2, r3 beq .L2930 - ldr r1, .L3049+40 - mov r2, #1488 - ldr r0, .L3049+44 + 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, .L3049+32 + ldr r3, .L3048+28 ldrh r1, [r3] ldrb r3, [r4, #9] @ zero_extendqisi2 mul r3, r3, r1 cmp r2, r3 beq .L2931 - ldr r1, .L3049+40 - movw r2, #1489 - ldr r0, .L3049+44 + ldr r1, .L3048+36 + movw r2, #1499 + ldr r0, .L3048+40 bl printk bl dump_stack .L2931: - cmn r10, #1 + cmn fp, #1 beq .L2935 ldr r3, [r5, #12] ldr r0, [r3, #4] cmn r0, #1 beq .L2935 bl lpa_hash_get_ppa - cmp r9, #0 + ldr r2, [sp, #20] mov r3, r0 + cmp r2, #0 beq .L2933 ldr r2, [r5, #12] ldr r1, [r2, #8] - str r2, [sp, #16] + str r2, [sp, #28] cmp r0, r1 cmnne r0, #1 beq .L2933 - ldr fp, .L3049+48 + ldr fp, .L3048+44 mov r10, #1 str r3, [sp, #12] sub r2, fp, #2928 @@ -17391,20 +17401,21 @@ ftl_open_sblk_recovery: and r0, r1, r3, lsr r0 ldrb r1, [r2, #2930] @ zero_extendqisi2 bl __aeabi_uidiv - ldrh r1, [r9] + ldr r3, [sp, #20] uxth r0, r0 + ldr r2, [sp, #28] + ldrh r1, [r3] ldr r3, [sp, #12] cmp r1, r0 - ldr r2, [sp, #16] bne .L2933 ldr ip, [r2] mov r0, r3 ldr r1, [r5, #4] - ldrb r3, [r6, #2260] @ zero_extendqisi2 - ldr r2, .L3049+52 + ldrb r3, [r7, #2260] @ zero_extendqisi2 + ldr r2, .L3048+48 str ip, [sp, #12] bl ftl_read_ppa_page - ldr r3, .L3049+56 + ldr r3, .L3048+52 ldr r3, [r3, #-3192] ldr ip, [sp, #12] cmp r3, ip @@ -17413,10 +17424,10 @@ ftl_open_sblk_recovery: ldr r0, [r3, #8] cmn r0, #1 beq .L2935 - ldrb r3, [r6, #676] @ zero_extendqisi2 + ldrb r3, [r7, #676] @ zero_extendqisi2 ldrh r2, [fp] rsb r3, r3, #24 - ldrb r1, [r6, #2930] @ zero_extendqisi2 + ldrb r1, [r7, #2930] @ zero_extendqisi2 rsb r3, r2, r3 mov r10, r10, asl r3 sub r10, r10, #1 @@ -17427,11 +17438,11 @@ ftl_open_sblk_recovery: b .L2935 .L2933: ldr r2, [r5, #12] - ldr r3, [r6, #2268] + ldr r3, [r7, #2268] ldr r1, [r2, #4] cmp r1, r3 bcs .L2935 - ldr r3, .L3049+32 + ldr r3, .L3048+28 ldrb r0, [r4, #9] @ zero_extendqisi2 ldrh r1, [r4, #10] ldrh r3, [r3] @@ -17439,7 +17450,7 @@ ftl_open_sblk_recovery: sub r3, r3, #1 cmp r1, r3 bge .L2935 - ldr r3, [r6, #2288] + ldr r3, [r7, #2288] ldr r2, [r2] ldr r1, [r3, #8] cmp r2, r1 @@ -17451,132 +17462,128 @@ ftl_open_sblk_recovery: 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, #48] + ldr r3, [sp, #16] str r3, [sp, #44] - ldr r3, [sp, #20] - str r3, [sp, #48] .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, #4 - str r3, [sp, #12] mov r3, #1 - str r3, [sp, #16] + str r3, [sp, #12] .L2927: - add r7, r7, #1 - uxth r7, r7 - b .L2926 -.L3045: add r8, r8, #1 + uxth r8, r8 + b .L2926 +.L3044: + add r9, r9, #1 mov r3, #0 strb r3, [r4, #5] - uxth r8, r8 + uxth r9, r9 b .L2925 .L2928: ldrh r3, [r4, #6] - ldrh r9, [r4, #10] - strh r8, [r4, #2] @ movhi - add r9, r3, r9 - ldr r3, .L3049+32 + ldrh r7, [r4, #10] ldrb ip, [r4, #9] @ zero_extendqisi2 - strb r7, [r4, #5] - ldrh r8, [r3] - str r3, [sp, #20] - mul ip, r8, ip - cmp r9, ip + 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, .L3049+40 - movw r2, #1569 - ldr r0, .L3049+44 + ldr r1, .L3048+36 + movw r2, #1579 + ldr r0, .L3048+40 bl printk bl dump_stack .L2939: - ldr r7, .L3049+60 - mov r6, #0 + ldr r8, .L3048+56 + mov r7, #0 ldrh r1, [r4, #10] - mov r3, r6 - ldr r0, [r7, #3512] + mov r3, r7 + ldr r0, [r8, #3512] .L2940: cmp r3, r1 - bcs .L3046 + bcs .L3045 ldrh r2, [r4, #12] add r2, r3, r2 add r3, r3, #1 ldr r2, [r0, r2, asl #2] cmn r2, #1 - addne r6, r6, #1 - uxthne r6, r6 + addne r7, r7, #1 + uxthne r7, r7 b .L2940 -.L3046: - ldr r3, [sp, #20] +.L3045: + ldr r3, [sp, #16] ldrb r2, [r4, #9] @ zero_extendqisi2 - ldr r8, .L3049+4 ldrh r3, [r3] smulbb r3, r2, r3 rsb r3, r1, r3 - add r6, r6, r3 - ldr r3, [r8] + add r7, r7, r3 + ldr r3, [r6] tst r3, #4096 - uxth r6, r6 + uxth r7, r7 beq .L2943 - ldr r3, .L3049+60 - mov r2, r6 + ldr r3, .L3048+56 + mov r2, r7 ldrh r1, [r4] - ldr r0, .L3049+64 + 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, [r7, #576] + ldr r2, [r8, #576] mov r3, r3, asl #1 - strh r6, [r2, r3] @ movhi - ldr r3, [r8] + strh r7, [r2, r3] @ movhi + ldr r3, [r6] tst r3, #16384 beq .L2944 - ldr r3, [sp, #48] - add r1, sp, #36 - ldr r0, .L3049+68 + 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, [r7, #2260] @ zero_extendqisi2 + ldrb r2, [r8, #2260] @ zero_extendqisi2 mov r1, #0 ldr r0, [r5, #4] - mov r8, #0 - ldr fp, .L3049+4 + mov r9, #0 mov r2, r2, asl #9 bl ftl_memset .L2945: - ldrb r3, [r7, #2964] @ zero_extendqisi2 - ldr r2, [sp, #12] - mul r3, r3, r2 - cmp r8, r3 - bcs .L3047 - add r10, sp, #36 - ldr r0, [r10, r8, asl #2] + 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, [r7, #2288] - mvn r6, #0 + ldr r2, [r8, #2288] + mvn r7, #0 ldr r3, [r5, #12] ldr r2, [r2, #8] str r2, [r3] ldr r3, [r5, #12] - str r6, [r3, #4] + str r7, [r3, #4] ldr r3, [r5, #12] - str r6, [r3, #8] + str r7, [r3, #8] mov r3, #0 ldr r2, [r5, #12] str r3, [r2, #12] @@ -17584,91 +17591,93 @@ ftl_open_sblk_recovery: str r3, [r2] b .L2947 .L2946: - ldr r3, .L3049+60 + 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 r6, r0 + mov r7, r0 ldr r0, [r3, #4] bl lpa_hash_get_ppa - ldr r3, [fp] + ldr r3, [r6] tst r3, #16384 - mov r9, r0 + mov fp, r0 + ldr ip, [sp, #20] beq .L2948 ldr r3, [r5, #12] - mov r1, r9 - ldr r0, .L3049+72 - ldr r2, [r10, r8, asl #2] + 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, [r10, r8, asl #2] + ldr r3, [ip, r9, asl #2] mov r2, #1 - cmp r9, r3 + cmp fp, r3 ldr r3, [r5, #12] - mvnne r6, #0 - cmn r6, #1 - str r9, [r3, #8] + mvnne r7, #0 + cmn r7, #1 + str fp, [r3, #8] ldr r3, [r5, #12] str r2, [r3, #12] beq .L2950 .L2947: - ldr r3, [sp, #16] + ldr r3, [sp, #12] cmp r3, #1 bne .L2952 ldrh r3, [r4, #6] cmp r3, #1 bls .L2952 -.L3018: +.L3017: mov r0, r4 bl ftl_get_new_free_page - ldr r3, [fp] + ldr r3, [r6] tst r3, #16384 - mov r9, r0 + mov fp, r0 beq .L2954 ldrh r1, [r4, #12] ldr r2, [r5, #12] ldrh r3, [r4, #10] - ldr r0, .L3049+76 + ldr r0, .L3048+72 add r3, r3, r1 ldr r2, [r2, #4] - mov r1, r9 + mov r1, fp sub r3, r3, #1 bl printk .L2954: - ldrb r3, [r7, #2964] @ zero_extendqisi2 - ldr r1, [sp, #12] + ldrb r3, [r8, #2964] @ zero_extendqisi2 ldrh r2, [r4, #6] - mul r3, r3, r1 + mul r3, r3, r10 add r3, r3, #1 - rsb r3, r8, r3 + rsb r3, r9, r3 cmp r2, r3 bls .L2952 - ldr r3, .L3049+60 - mov r0, r9 + 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, #28] + str r0, [sp, #20] ldrh r0, [r4] bl ftl_vpn_decrement - adds r3, r6, #1 + adds r3, r7, #1 movne r3, #1 - ldr r2, [sp, #28] + ldr r2, [sp, #20] cmn r2, #1 - cmnne r6, #1 + cmnne r7, #1 beq .L2955 - add r3, sp, #100 + add r3, sp, #96 ldrh r2, [r4, #12] - str r9, [r3, r8, asl #2] + str fp, [r3, r9, asl #2] ldrh r3, [r4, #10] add r3, r3, r2 - add r2, sp, #164 + add r2, sp, #160 sub r3, r3, #1 - str r3, [r2, r8, asl #2] + str r3, [r2, r9, asl #2] b .L2952 .L2955: ldrh r2, [r4, #6] @@ -17676,95 +17685,94 @@ ftl_open_sblk_recovery: movls r3, #0 andhi r3, r3, #1 cmp r3, #0 - bne .L3018 + bne .L3017 .L2952: - add r8, r8, #1 + add r9, r9, #1 b .L2945 -.L3047: - ldr r10, .L3049+4 - mov r6, #0 - ldr r9, .L3049+60 - mov fp, r10 +.L3046: + ldr fp, .L3048+56 + add r9, sp, #32 + mov r7, #0 .L2958: - ldrb r3, [r7, #2964] @ zero_extendqisi2 - ldr r2, [sp, #12] - mul r3, r3, r2 - cmp r6, r3 - bcs .L3048 - add ip, sp, #100 - str ip, [sp, #16] - ldr r3, [ip, r6, asl #2] + 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 - add r8, sp, #36 + ldr r0, [r9, r7, asl #2] ldr r1, [r5, #4] ldr r2, [r5, #12] - ldr r0, [r8, r6, asl #2] - ldrb r3, [r9, #2260] @ zero_extendqisi2 + ldrb r3, [fp, #2260] @ zero_extendqisi2 bl ftl_read_ppa_page cmn r0, #1 cmpne r0, #256 - ldr ip, [sp, #16] + ldr ip, [sp, #12] bne .L2960 - ldr r0, [ip, r6, asl #2] - ldrb r3, [r9, #2260] @ zero_extendqisi2 + 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, [r10] + ldr r3, [r6] tst r3, #16384 mov ip, r0 beq .L2962 ldr r3, [r5, #12] mov r1, ip - ldr r0, .L3049+76 - str ip, [sp, #16] + ldr r0, .L3048+72 + str ip, [sp, #12] ldr r2, [r3, #8] - ldr r3, [r8, r6, asl #2] + ldr r3, [r9, r7, asl #2] bl printk - ldr ip, [sp, #16] + ldr ip, [sp, #12] .L2962: cmn ip, #1 beq .L2960 ldr r3, [r5, #12] - ldr r2, [r8, r6, asl #2] + ldr r2, [r9, r7, asl #2] ldr r1, [r3, #8] cmp r2, r1 bne .L2960 - ldr r1, [fp] - add r8, sp, #164 + ldr r1, [r6] + add ip, sp, #160 tst r1, #16384 beq .L2963 ldr r1, [r3, #4] - ldr r0, .L3049+80 - ldr r3, [r8, r6, asl #2] + 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, [r8, r6, asl #2] + ldr r2, [ip, r7, asl #2] ldmib r3, {r0, r1} uxth r2, r2 bl lpa_hash_update_ppa .L2960: - add r6, r6, #1 + add r7, r7, #1 b .L2958 -.L3048: +.L3047: mov r0, r5 bl zbuf_free ldrh r3, [r4, #12] ldrb r1, [r4, #9] @ zero_extendqisi2 - ldr r2, [sp, #20] + ldr r2, [sp, #16] ldrh r2, [r2] mla r3, r1, r2, r3 - ldr r2, .L3049+60 + 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, .L3049+40 - movw r2, #1660 - ldr r0, .L3049+44 + ldr r1, .L3048+36 + movw r2, #1670 + ldr r0, .L3048+40 bl printk bl dump_stack .L2965: @@ -17774,20 +17782,12 @@ ftl_open_sblk_recovery: mov r0, r4 bl ftl_write_last_log_page .L2918: - ldr r3, [sp, #24] - ldr r2, [sp, #228] - ldr r3, [r3] - cmp r2, r3 - beq .L2969 - bl __stack_chk_fail -.L2969: - add sp, sp, #236 + add sp, sp, #228 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3050: - .align 2 .L3049: - .word __stack_chk_guard + .align 2 +.L3048: .word .LANCHOR2 .word .LC189 .word .LC190 @@ -17817,112 +17817,119 @@ pm_write_page: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #12 - mov r4, r0 - ldr r6, .L3065 + 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 + ldr r8, .L3064 mov r7, r1 - mov r5, r6 -.L3052: - ldr r3, [r6, #2288] + mov r4, r8 +.L3051: + ldr r3, [r8, #2288] ldr r2, [r3, #48] add r2, r2, #1 str r2, [r3, #48] add r2, r3, #696 ldrh r1, [r2] - ldr r2, .L3065+4 + ldr r2, .L3064+4 ldrh r2, [r2] cmp r1, r2 - bcs .L3053 + bcs .L3052 + add r3, r3, #692 + ldrh r2, [r3] + movw r3, #65535 + cmp r2, r3 + bne .L3053 +.L3052: + bl pm_alloc_new_blk + mov r0, #0 + bl ftl_info_flush +.L3053: + ldr r3, [r4, #2288] add r3, r3, #692 ldrh r2, [r3] movw r3, #65535 cmp r2, r3 bne .L3054 -.L3053: - bl pm_alloc_new_blk - mov r0, #0 - bl ftl_info_flush -.L3054: - ldr r3, [r5, #2288] - add r3, r3, #692 - ldrh r2, [r3] - movw r3, #65535 - cmp r2, r3 - bne .L3055 - ldr r1, .L3065+8 + ldr r1, .L3064+8 movw r2, #263 - ldr r0, .L3065+12 + ldr r0, .L3064+12 bl printk bl dump_stack -.L3055: - ldr r3, [r5, #2288] - ldr r9, .L3065+16 +.L3054: + ldr r3, [r4, #2288] add r2, r3, #692 - add r3, r3, #696 + add r5, r3, #696 ldrh r1, [r2] - ldr r2, .L3065+20 - ldr r0, [r9, #-2520] - ldrh r8, [r2] - ldrh r2, [r3] - mla r8, r8, r1, r2 - mov r1, #0 + ldr r2, .L3064+16 + ldrh r9, [r2] + ldrh r2, [r5] + ldr r5, .L3064+20 + mla r9, r9, r1, r2 + ldr r0, [r5, #-2520] mov r2, #64 + mov r1, #0 bl ftl_memset - ldr r3, [r9, #-2520] - str r4, [r3] - ldr r2, [r5, #2288] - ldr r3, [r9, #-2520] - ldr r1, [r2, #48] - str r1, [r3, #4] - mov r1, r8 - ldrb r0, [r2, #694] @ zero_extendqisi2 - ldrb r2, [r5, #2260] @ zero_extendqisi2 - str r2, [sp] + ldr r3, [r5, #-2520] + mov r0, r7 + str r6, [r3] + ldr r3, [r4, #2288] + ldr r10, [r5, #-2520] + ldrb r1, [r4, #2260] @ zero_extendqisi2 + ldr r3, [r3, #48] + mov r1, r1, asl #9 + str r3, [r10, #4] + bl js_hash + ldr r3, [r4, #2288] + mov r1, r9 mov r2, r7 + str r0, [r10, #8] + ldrb r0, [r3, #694] @ zero_extendqisi2 + ldrb r3, [r4, #2260] @ zero_extendqisi2 + str r3, [sp] + ldr r3, [r5, #-2520] bl ftl_prog_page - ldr r2, [r5, #2288] + ldr r2, [r4, #2288] add r1, r2, #696 ldrh r3, [r1] add r3, r3, #1 uxth r3, r3 strh r3, [r1] @ movhi cmp r3, #1 - beq .L3056 - ldrb r3, [r9, #-2516] @ zero_extendqisi2 + beq .L3055 + ldrb r3, [r5, #-2516] @ zero_extendqisi2 cmp r3, #0 - beq .L3057 -.L3056: + beq .L3056 +.L3055: mov r3, #0 - strb r3, [r9, #-2516] - b .L3052 -.L3057: + strb r3, [r5, #-2516] + b .L3051 +.L3056: cmn r0, #1 - bne .L3059 - mov r1, r8 - ldr r0, .L3065+24 + bne .L3058 + mov r1, r9 + ldr r0, .L3064+24 bl printk - b .L3052 -.L3059: + b .L3051 +.L3058: movw r3, #698 mov r0, #0 ldrh r3, [r2, r3] - cmp r4, r3 - addcc r4, r4, #176 - strcc r8, [r2, r4, asl #2] - add sp, sp, #12 + cmp r6, r3 + addcc r6, r6, #176 + strcc r9, [r2, r6, asl #2] + add sp, sp, #8 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3066: - .align 2 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} .L3065: + .align 2 +.L3064: .word .LANCHOR0 .word .LANCHOR0+2960 .word .LANCHOR1+1880 .word .LC0 - .word .LANCHOR5 .word .LANCHOR0+2994 + .word .LANCHOR5 .word .LC199 .fnend .size pm_write_page, .-pm_write_page @@ -17931,41 +17938,38 @@ pm_write_page: .type ftl_dump_write_open_sblk, %function ftl_dump_write_open_sblk: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3101 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #108 - sub sp, sp, #108 - ldr r3, [r3] mov fp, r0 - ldr r4, .L3101+4 - str r3, [sp, #100] + ldr r4, .L3099 + .pad #100 + sub sp, sp, #100 add r3, r4, #564 ldrh r3, [r3] cmp r3, r0 - bls .L3067 + bls .L3066 ldrb r3, [r4, #2944] @ zero_extendqisi2 cmp r3, #0 - bne .L3069 + bne .L3068 ldrb r3, [r4, #2938] @ zero_extendqisi2 cmp r3, #0 - beq .L3067 -.L3069: + beq .L3066 +.L3068: ldr r3, [r4, #568] mov r6, fp, asl #2 - add r1, sp, #84 + add r1, sp, #80 mov r0, fp add r3, r3, r6 - strh fp, [sp, #68] @ movhi - ldr r7, .L3101+8 + strh fp, [sp, #64] @ movhi + ldr r7, .L3099+4 mov r5, #0 ldrb r3, [r3, #2] @ zero_extendqisi2 mov r8, r5 and r3, r3, #224 cmp r3, #160 - ldreq r3, .L3101+4 + ldreq r3, .L3099 movne r9, #1 ldreqb r9, [r3, #2937] @ zero_extendqisi2 bl ftl_get_blk_list_in_sblk @@ -17973,13 +17977,13 @@ ftl_dump_write_open_sblk: ldr r2, [r4, #568] add r3, r2, r6 uxtb r0, r0 - strh r5, [sp, #70] @ movhi - strb r0, [sp, #77] + strh r5, [sp, #66] @ movhi + strb r0, [sp, #73] smulbb r10, r10, r0 - strb r5, [sp, #73] - strh r5, [sp, #78] @ movhi - ldr r0, .L3101+12 - strh r10, [sp, #74] @ movhi + 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 ldrb r3, [r3, #2] @ zero_extendqisi2 @@ -17996,50 +18000,50 @@ ftl_dump_write_open_sblk: bl buf_alloc mov ip, r7 mov r4, r0 -.L3071: +.L3070: ldrh r3, [ip] uxth r7, r5 cmp r3, r7 - bls .L3093 + bls .L3091 mov r3, r7, asl #1 mov r10, #0 sub r3, r3, #1 str r3, [sp, #44] -.L3081: - ldrb r3, [sp, #77] @ zero_extendqisi2 +.L3080: + ldrb r3, [sp, #73] @ zero_extendqisi2 uxth r8, r10 cmp r3, r8 - bls .L3098 + bls .L3096 add r3, r8, #8 mov r6, #1 mov r3, r3, asl r6 str r3, [sp, #48] -.L3080: +.L3079: cmp r6, r9 - bhi .L3099 + bhi .L3097 ldr r2, [sp, #48] - add r3, sp, #104 + add r3, sp, #96 add r3, r3, r2 - ldrh r2, [r3, #-36] + ldrh r2, [r3, #-32] movw r3, #65535 cmp r2, r3 - beq .L3073 - ldr r3, .L3101+16 + beq .L3072 + ldr r3, .L3099+12 cmp r9, #3 ldrh r3, [r3] mul r3, r3, r2 uxtaheq r3, r3, r5 orreq r3, r3, r6, asl #24 - beq .L3075 + beq .L3074 cmp r9, #2 uxtahne r3, r3, r5 ldreq r1, [sp, #44] addeq r3, r3, r1 - ldreq r1, .L3101+4 + ldreq r1, .L3099 addeq r3, r3, r6 ldreqb r1, [r1, #2937] @ zero_extendqisi2 orreq r3, r3, r1, asl #24 -.L3075: +.L3074: str r3, [r4, #24] mov r1, #1 mov r0, r4 @@ -18069,7 +18073,7 @@ ftl_dump_write_open_sblk: ldr r0, [r1, #8] str r0, [sp, #28] ldr r1, [r1, #12] - ldr r0, .L3101+20 + ldr r0, .L3099+16 str r1, [sp, #32] mov r1, r2 mov r2, r7 @@ -18077,25 +18081,25 @@ ftl_dump_write_open_sblk: ldr r3, [sp, #40] ldr ip, [sp, #60] cmp r3, #512 - beq .L3093 -.L3073: + beq .L3091 +.L3072: add r6, r6, #1 uxth r6, r6 - b .L3080 -.L3099: + b .L3079 +.L3097: add r10, r10, #1 - b .L3081 -.L3098: + b .L3080 +.L3096: add r5, r5, #1 - b .L3071 -.L3093: -.L3077: + b .L3070 +.L3091: +.L3076: str r6, [sp] mov r3, r8 - ldr r6, .L3101+4 + ldr r6, .L3099 mov r1, fp mov r2, r7 - ldr r0, .L3101+24 + ldr r0, .L3099+20 bl printk mov r1, #0 ldrb r2, [r6, #2260] @ zero_extendqisi2 @@ -18109,21 +18113,21 @@ ftl_dump_write_open_sblk: mov r1, #0 mov r2, r2, asl #1 bl ftl_memset -.L3082: - ldr r3, .L3101+8 +.L3081: + ldr r3, .L3099+4 ldrh r3, [r3] cmp r3, r5 - bls .L3087 - ldr r7, .L3101+16 + bls .L3086 + ldr r7, .L3099+12 mov r10, r5, asl #1 mov r8, #0 -.L3088: - ldrb r2, [sp, #77] @ zero_extendqisi2 +.L3087: + ldrb r2, [sp, #73] @ zero_extendqisi2 uxth r3, r8 cmp r2, r3 - bls .L3100 + bls .L3098 mov r2, r3 - ldr r0, .L3101+28 + ldr r0, .L3099+24 mov r1, r5 str r3, [sp, #40] bl printk @@ -18131,33 +18135,33 @@ ftl_dump_write_open_sblk: cmp ip, #0 ldr r3, [sp, #40] add r3, r3, #8 - beq .L3083 - add r2, sp, #104 + beq .L3082 + add r2, sp, #96 mov r0, r4 add r3, r2, r3, asl #1 - ldrh r2, [r3, #-36] + ldrh r2, [r3, #-32] ldrh r3, [r7] mul r3, r3, r2 orr r3, r3, r5 str r3, [r4, #24] bl sblk_3d_tlc_dump_prog - b .L3084 -.L3083: + b .L3083 +.L3082: ldrb r2, [r9, #2937] @ zero_extendqisi2 cmp r2, #2 - add r2, sp, #104 + add r2, sp, #96 add r3, r2, r3, asl #1 - ldrh r2, [r3, #-36] + ldrh r2, [r3, #-32] ldrh r3, [r7] mul r3, r3, r2 - bne .L3085 + bne .L3084 orr r3, r3, r10 mov r0, r4 orr r3, r3, #33554432 str r3, [r4, #24] bl sblk_mlc_dump_prog - b .L3084 -.L3085: + b .L3083 +.L3084: ldrb r2, [r9, #676] @ zero_extendqisi2 orr r3, r3, r5 mvn r0, #0 @@ -18173,34 +18177,26 @@ ftl_dump_write_open_sblk: ldr r2, [r4, #4] ldr r3, [r4, #12] bl flash_prog_page_en -.L3084: +.L3083: add r8, r8, #1 - b .L3088 -.L3100: + b .L3087 +.L3098: add r5, r5, #1 uxth r5, r5 - b .L3082 -.L3087: + b .L3081 +.L3086: mov r0, r4 bl zbuf_free - ldr r0, .L3101+32 + ldr r0, .L3099+28 mov r1, fp bl printk -.L3067: - ldr r3, .L3101 - ldr r2, [sp, #100] - ldr r3, [r3] - cmp r2, r3 - beq .L3089 - bl __stack_chk_fail -.L3089: - add sp, sp, #108 +.L3066: + add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3102: +.L3100: .align 2 -.L3101: - .word __stack_chk_guard +.L3099: .word .LANCHOR0 .word .LANCHOR0+2960 .word .LC200 @@ -18216,43 +18212,39 @@ ftl_dump_write_open_sblk: .type ftl_ink_check_sblk, %function ftl_ink_check_sblk: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ 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} - .pad #60 - sub sp, sp, #60 - ldr r4, .L3127 mov r8, r0, asl #2 - ldr r6, .L3127+4 + ldr r6, .L3124 mov r5, r0 + .pad #52 + sub sp, sp, #52 mov r1, r5 - ldr r3, [r4] - str r3, [sp, #52] ldr r3, [r6, #568] ldrh r2, [r3, r8] ldr r3, [r3, r0, asl #2] ubfx r2, r2, #0, #11 - ldr r0, .L3127+8 + ldr r0, .L3124+4 ubfx r3, r3, #11, #8 bl printk movw r3, #65535 cmp r5, r3 - str r4, [sp, #8] - beq .L3103 + beq .L3101 add r3, r6, #564 ldrh r3, [r3] cmp r3, r5 - bls .L3103 + bls .L3101 mov r1, #0 mov r0, r5 bl ftl_erase_sblk mov r0, r5 mov r9, #0 - add r1, sp, #36 - strh r5, [sp, #20] @ movhi + add r1, sp, #32 + strh r5, [sp, #16] @ movhi bl ftl_get_blk_list_in_sblk - strb r0, [sp, #29] + strb r0, [sp, #25] mov r0, #1 bl buf_alloc ldr r3, [r6, #568] @@ -18267,32 +18259,32 @@ ftl_ink_check_sblk: ldr r0, [r0, #4] bl ftl_memset bl sblk_wait_write_queue_completed -.L3107: - ldr r3, .L3127+12 +.L3105: + ldr r3, .L3124+8 uxth fp, r9 - ldr r2, .L3127+12 + ldr r2, .L3124+8 ldrh r3, [r3] cmp r3, fp - bls .L3123 + bls .L3120 add r7, r2, #34 mov r10, #0 -.L3110: - ldrb r2, [sp, #29] @ zero_extendqisi2 +.L3108: + ldrb r2, [sp, #25] @ zero_extendqisi2 uxth r3, r10 cmp r2, r3 - bls .L3124 - add r2, sp, #56 + bls .L3121 + add r2, sp, #48 add r3, r2, r3, asl #1 movw r2, #65535 - ldrh r3, [r3, #-20] + ldrh r3, [r3, #-16] cmp r3, r2 - beq .L3108 + beq .L3106 ldrh r1, [r7] mov ip, #0 ldr r2, [r4, #4] mvn r0, #0 mla r3, r1, r3, fp - ldr r1, .L3127+16 + ldr r1, .L3124+12 str r3, [r2] ldr r2, [r4, #4] str r1, [r2, #4] @@ -18310,33 +18302,33 @@ ftl_ink_check_sblk: ldr r2, [r4, #4] ldr r3, [r4, #12] bl flash_prog_page_en -.L3108: +.L3106: add r10, r10, #1 - b .L3110 -.L3124: + b .L3108 +.L3121: add r9, r9, #1 - b .L3107 -.L3123: + b .L3105 +.L3120: mov r7, #0 -.L3111: +.L3109: ldrh r1, [r2] uxth r10, r7 cmp r1, r10 - bls .L3125 + bls .L3122 mov fp, #0 -.L3116: - ldrb r1, [sp, #29] @ zero_extendqisi2 +.L3114: + ldrb r1, [sp, #25] @ zero_extendqisi2 uxth r6, fp cmp r1, r6 - bls .L3126 + bls .L3123 add r6, r6, #8 - add r3, sp, #56 + add r3, sp, #48 add r6, r3, r6, asl #1 movw r3, #65535 - ldrh r1, [r6, #-36] + ldrh r1, [r6, #-32] cmp r1, r3 - beq .L3113 - ldr r3, .L3127+20 + beq .L3111 + ldr r3, .L3124+16 mov r0, r4 str r2, [sp, #12] ldrh r9, [r3] @@ -18348,23 +18340,23 @@ ftl_ink_check_sblk: ldr r1, [r1] cmp r1, r9 ldr r2, [sp, #12] - beq .L3113 + beq .L3111 mov r0, r9 bl ftl_mask_bad_block mvn r1, #0 - strh r1, [r6, #-36] @ movhi + strh r1, [r6, #-32] @ movhi ldr r2, [sp, #12] -.L3113: +.L3111: add fp, fp, #1 - b .L3116 -.L3126: + b .L3114 +.L3123: add r7, r7, #1 - b .L3111 -.L3125: + b .L3109 +.L3122: mov r0, r4 bl zbuf_free - ldr r3, .L3127+4 - ldr r0, .L3127+24 + ldr r3, .L3124 + ldr r0, .L3124+20 mov r1, r5 ldr r3, [r3, #568] ldrh r2, [r3, r8] @@ -18372,21 +18364,13 @@ ftl_ink_check_sblk: ubfx r2, r2, #0, #11 ubfx r3, r3, #11, #8 bl printk -.L3103: - ldr r3, [sp, #8] - ldr r2, [sp, #52] - ldr r3, [r3] - cmp r2, r3 - beq .L3118 - bl __stack_chk_fail -.L3118: - add sp, sp, #60 +.L3101: + add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3128: +.L3125: .align 2 -.L3127: - .word __stack_chk_guard +.L3124: .word .LANCHOR0 .word .LC205 .word .LANCHOR0+2960 @@ -18405,26 +18389,26 @@ ftl_open_sblk_init: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r4, r0 - ldr r6, .L3140 + ldr r6, .L3137 mov r7, r1 mov r8, r6 -.L3130: -.L3134: +.L3127: +.L3131: mov r0, r7 bl ftl_alloc_sblk ldr r3, [r6, #2288] ldrh r3, [r3, #150] cmp r3, #0 mov r5, r0 - beq .L3131 + beq .L3128 ldr r2, [r6, #568] mov r3, r0, asl #2 ldrh r3, [r2, r3] ubfx r3, r3, #0, #11 cmp r3, #2 - bgt .L3131 + bgt .L3128 bl ftl_ink_check_sblk -.L3131: +.L3128: mov r1, #0 mov r0, r5 bl ftl_erase_sblk @@ -18432,7 +18416,7 @@ ftl_open_sblk_init: mov r0, r5 mov r9, r5, asl #1 bl ftl_get_blk_list_in_sblk - ldr r2, .L3140+4 + ldr r2, .L3137+4 strh r5, [r4] @ movhi cmp r7, #2 strb r7, [r4, #4] @@ -18462,7 +18446,7 @@ ftl_open_sblk_init: ldrb r3, [r4, #9] @ zero_extendqisi2 cmp r3, #0 ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - ldr r0, .L3140+8 + ldr r0, .L3137+8 mov r1, r5 bl printk ldr r3, [r6, #576] @@ -18470,10 +18454,10 @@ ftl_open_sblk_init: strh r2, [r3, r9] @ movhi mov r3, #7 strb r3, [r4, #4] - b .L3134 -.L3141: + b .L3131 +.L3138: .align 2 -.L3140: +.L3137: .word .LANCHOR0 .word .LANCHOR0+2960 .word .LC121 @@ -18486,28 +18470,28 @@ flash_info_flush: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3156 + ldr r3, .L3153 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 .L3143 - ldr r0, .L3156+4 - mov r1, #324 - ldr r2, .L3156+8 + beq .L3140 + ldr r0, .L3153+4 + movw r1, #325 + ldr r2, .L3153+8 bl printk -.L3143: - ldr r6, .L3156+12 +.L3140: + ldr r6, .L3153+12 mov r1, #0 - ldr r5, .L3156+16 + ldr r5, .L3153+16 mov r2, #64 - ldr r8, .L3156+20 + ldr r8, .L3153+20 mov r9, #0 ldr r0, [r6, #-2512] bl ftl_memset - ldr r0, .L3156+24 + ldr r0, .L3153+24 ldr r1, [r5, #664] mov r2, #4 mov r3, #16 @@ -18518,26 +18502,26 @@ flash_info_flush: ldr r1, [r4, #8] bl js_hash str r0, [r4, #12] -.L3144: +.L3141: ldrb r3, [r6, #-2508] @ zero_extendqisi2 ldrh r4, [r8, #2] ldrh ip, [r5, #2] mov r1, r3 - ldr r0, .L3156+28 + ldr r0, .L3153+28 mov r2, r4 str r3, [sp, #8] str ip, [sp, #12] bl printk - ldr r2, .L3156+32 + ldr r2, .L3153+32 ldrh r0, [r8, #2] - ldr r7, .L3156+12 + ldr r7, .L3153+12 ldrh r2, [r2] - ldr fp, .L3156+16 + ldr fp, .L3153+16 sub r2, r2, #1 cmp r0, r2 ldr r3, [sp, #8] ldr ip, [sp, #12] - blt .L3145 + blt .L3142 ldr r4, [fp, #664] ldrb r2, [r7, #-2507] @ zero_extendqisi2 ldr r3, [r4, #4] @@ -18561,15 +18545,15 @@ flash_info_flush: ldrh r4, [fp, #2] mov r0, r3 mul r4, r4, r2 - b .L3154 -.L3145: + b .L3151 +.L3142: cmp r0, #0 mla r4, ip, r3, r4 - bne .L3146 -.L3154: + bne .L3143 +.L3151: mov r1, r4 bl flash_erase_block -.L3146: +.L3143: ldr r2, [r5, #664] mov r7, #1 ldr r3, [r6, #-2512] @@ -18577,7 +18561,7 @@ flash_info_flush: mov r1, r4 ldr r2, [r2, #4] str r2, [r3] - ldr r2, .L3156+36 + ldr r2, .L3153+36 ldr r3, [r6, #-2512] str r2, [r3, #4] mov r2, #4 @@ -18588,23 +18572,23 @@ flash_info_flush: add r3, r3, r7 strh r3, [r10, #2] @ movhi cmn r0, #1 - bne .L3147 + bne .L3144 mov r1, r4 - ldr r0, .L3156+40 + ldr r0, .L3153+40 bl printk - b .L3144 -.L3147: + b .L3141 +.L3144: cmp r9, #0 moveq r9, r7 - beq .L3144 -.L3155: + beq .L3141 +.L3152: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3157: +.L3154: .align 2 -.L3156: +.L3153: .word .LANCHOR2 .word .LC136 .word .LANCHOR1+1896 @@ -18625,52 +18609,52 @@ flash_info_blk_init: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3190 + ldr r3, .L3187 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, .L3190+4 + ldr r6, .L3187+4 tst r3, #4096 - beq .L3159 + beq .L3156 ldr r3, [r6, #664] mov r1, #50 - ldr r0, .L3190+8 - ldr r2, .L3190+12 + ldr r0, .L3187+8 + ldr r2, .L3187+12 str r3, [sp] mov r3, #2048 bl printk -.L3159: - ldr fp, .L3190+4 +.L3156: + ldr fp, .L3187+4 mov r5, #4 - ldr r8, .L3190+16 -.L3162: + ldr r8, .L3187+16 +.L3159: ldrh r1, [r6, #2] mov r9, #4 - ldr r4, .L3190+20 + ldr r4, .L3187+20 mov r0, #0 str r9, [sp] mul r1, r1, r5 ldr r2, [r6, #664] ldr r3, [r4, #-2512] bl flash_read_page_en - ldr r7, .L3190+4 + ldr r7, .L3187+4 cmn r0, #1 - beq .L3160 + beq .L3157 ldr r2, [fp, #664] - ldr r10, .L3190+16 + ldr r10, .L3187+16 ldr r3, [r2] cmp r3, r8 - beq .L3161 -.L3160: + beq .L3158 +.L3157: add r5, r5, #1 cmp r5, #16 - bne .L3162 -.L3188: + bne .L3159 +.L3185: mvn r0, #0 - b .L3186 -.L3161: + b .L3183 +.L3158: ldrb r1, [r2, #37] @ zero_extendqisi2 mov r0, #0 ldrb r3, [r2, #36] @ zero_extendqisi2 @@ -18682,15 +18666,15 @@ flash_info_blk_init: ldr r3, [r4, #-2512] bl flash_read_page_en cmn r0, #1 - beq .L3171 + beq .L3168 ldr r3, [r7, #664] ldr r2, [r3] cmp r2, r8 ldreq r5, [r3, #4] - beq .L3164 -.L3171: + beq .L3161 +.L3168: mov r5, #0 -.L3164: +.L3161: ldrb r3, [r4, #-2507] @ zero_extendqisi2 mov r2, #4 ldrh r1, [r6, #2] @@ -18700,21 +18684,21 @@ flash_info_blk_init: mul r1, r1, r3 ldr r3, [r4, #-2512] bl flash_read_page_en - ldr r7, .L3190+20 + ldr r7, .L3187+20 cmn r0, #1 - beq .L3165 - ldr r3, .L3190+4 + beq .L3162 + ldr r3, .L3187+4 ldr r3, [r3, #664] ldr r2, [r3] cmp r2, r10 - bne .L3165 + bne .L3162 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] -.L3165: +.L3162: ldr r2, [r6, #664] mov r8, #4 ldr r3, [r4, #-2512] @@ -18723,19 +18707,19 @@ flash_info_blk_init: mov r7, #0 str r8, [sp] bl flash_get_last_written_page - ldr r3, .L3190+24 + ldr r3, .L3187+24 ldrh r9, [r6, #2] - ldr ip, .L3190+4 + 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 -.L3166: +.L3163: rsb r5, r7, fp sxth r5, r5 cmp r5, #0 - blt .L3189 + blt .L3186 str r8, [sp] mov r0, #0 rsb r1, r7, r9 @@ -18745,35 +18729,35 @@ flash_info_blk_init: bl flash_read_page_en cmn r0, #1 ldr ip, [sp, #12] - beq .L3167 + beq .L3164 ldr r3, [ip, #664] ldr r3, [r3] cmp r3, r10 - beq .L3168 -.L3167: + beq .L3165 +.L3164: add r7, r7, #1 - b .L3166 -.L3189: + b .L3163 +.L3186: cmn r5, #1 - bne .L3168 + bne .L3165 ldr r3, [r6, #664] - ldr r0, .L3190+28 + ldr r0, .L3187+28 ldr r1, [r3] bl printk - b .L3188 -.L3168: + b .L3185 +.L3165: cmp r7, #1 - bls .L3172 + bls .L3169 bl flash_info_flush -.L3172: +.L3169: mov r0, #0 -.L3186: +.L3183: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3191: +.L3188: .align 2 -.L3190: +.L3187: .word .LANCHOR2 .word .LANCHOR0 .word .LC210 @@ -18794,22 +18778,22 @@ 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, .L3273 + ldr r6, .L3272 ldr r3, [r6] tst r3, #4096 - beq .L3193 - ldr r0, .L3273+4 - movw r1, #2578 - ldr r2, .L3273+8 + beq .L3190 + ldr r0, .L3272+4 + movw r1, #2759 + ldr r2, .L3272+8 bl printk -.L3193: - ldr r5, .L3273+12 +.L3190: + ldr r5, .L3272+12 mov r0, r4 mov r7, #0 - ldr r4, .L3273+16 + ldr r4, .L3272+16 str r7, [r5, #-3256] bl nandc_init - ldr r3, .L3273+20 + ldr r3, .L3272+20 mov r1, r7 mov r2, #8 add r0, r4, #668 @@ -18821,79 +18805,79 @@ nand_flash_init: mov r3, #3 strb r3, [r4, #676] bl ftl_memset - ldr r0, .L3273+24 + ldr r0, .L3272+24 mov r1, r7 mov r2, #32 mov fp, r10 bl ftl_memset -.L3199: +.L3196: mov r8, r7, asl #3 uxtb r0, r7 add r1, r10, r8 bl flash_read_id cmp r7, #0 - ldr r1, .L3273+28 - bne .L3194 + ldr r1, .L3272+28 + bne .L3191 ldrb r3, [r9, #688] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bls .L3195 -.L3197: + bls .L3192 +.L3194: mvn r8, #1 - b .L3265 -.L3195: + b .L3263 +.L3192: ldrb r3, [r9, #689] @ zero_extendqisi2 cmp r3, #255 - beq .L3197 -.L3194: + beq .L3194 +.L3191: ldrb r3, [fp, r8] @ zero_extendqisi2 add r7, r7, #1 cmp r3, #181 - ldreq r3, .L3273+28 + ldreq r3, .L3272+28 moveq r2, #44 streqb r2, [r8, r3] cmp r7, #4 - bne .L3199 - ldr ip, .L3273+32 + bne .L3196 + ldr ip, .L3272+32 mov r3, #0 -.L3232: +.L3230: mov r0, r3, asl #5 ldrb r8, [ip, r3, asl #5] @ zero_extendqisi2 add r7, r0, #1 - ldr lr, .L3273+32 + ldr lr, .L3272+32 add r7, ip, r7 mov r2, #0 -.L3200: +.L3197: cmp r2, r8 - bcs .L3272 + bcs .L3271 ldrb r10, [r7, r2] @ zero_extendqisi2 ldrb r9, [r1, r2] @ zero_extendqisi2 cmp r10, r9 - bne .L3201 + bne .L3198 add r2, r2, #1 - b .L3200 -.L3272: + b .L3197 +.L3271: adds r8, lr, r0 - beq .L3197 - ldr r3, .L3273 - ldr r2, .L3273+36 + beq .L3194 + ldr r3, .L3272 + ldr r2, .L3272+36 add r0, r3, r0 mov r3, #0 ldrb r1, [r0, #446] @ zero_extendqisi2 -.L3205: +.L3202: ldrb r0, [r2, r3, asl #5] @ zero_extendqisi2 cmp r0, r1 - beq .L3204 + beq .L3201 add r3, r3, #1 cmp r3, #4 - bne .L3205 -.L3204: - ldr r1, .L3273+36 + bne .L3202 +.L3201: + ldr r1, .L3272+36 mov r2, #32 - ldr r7, .L3273 + ldr r7, .L3272 add r1, r1, r3, asl #5 - ldr r0, .L3273+40 + ldr r0, .L3272+40 bl ftl_memcpy add r0, r7, #4 mov r1, r8 @@ -18901,35 +18885,35 @@ nand_flash_init: bl ftl_memcpy ldrb r3, [r4, #516] @ zero_extendqisi2 cmp r3, #8 - bhi .L3206 + bhi .L3203 ldrb r3, [r7, #24] @ zero_extendqisi2 cmp r3, #60 movhi r3, #60 strhib r3, [r7, #24] - b .L3206 -.L3201: + b .L3203 +.L3198: add r3, r3, #1 - cmp r3, #44 - bne .L3232 - b .L3197 -.L3206: + cmp r3, #45 + bne .L3230 + b .L3194 +.L3203: ldr r3, [r6] tst r3, #4096 - beq .L3234 - ldr r0, .L3273+4 - movw r1, #2600 - ldr r2, .L3273+8 + beq .L3232 + ldr r0, .L3272+4 + movw r1, #2781 + ldr r2, .L3272+8 bl printk -.L3234: +.L3232: ldr r3, [r4, #584] mov r0, #16384 - ldr r7, .L3273+44 + ldr r7, .L3272+44 mov r8, #0 ldrh r3, [r3, #10] - cmp r3, #2304 - ldreq r3, .L3273+16 - moveq r2, #2 - streqb r2, [r3, #676] + cmp r3, #1024 + ldrcs r3, .L3272+16 + movcs r2, #2 + strcsb r2, [r3, #676] bl ftl_malloc str r0, [r5, #-3248] mov r0, #16384 @@ -18959,7 +18943,7 @@ nand_flash_init: ubfx r2, r3, #8, #3 strb r2, [r4, #720] ubfx r2, r3, #3, #1 - strb r2, [r5, #-3240] + strb r2, [r5, #-3232] ubfx r2, r3, #4, #1 strb r2, [r4, #721] ubfx r2, r3, #12, #1 @@ -18982,64 +18966,70 @@ nand_flash_init: cmp r3, #9 ldrb r2, [r1, #28] @ zero_extendqisi2 strb r0, [r7, #-2503] - ldreq r1, .L3273+16 + ldreq r1, .L3272+16 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, .L3273+16 + ldreq r2, .L3272+16 moveq r1, #0 streqb r1, [r2, #590] ldrb r2, [r6, #35] @ zero_extendqisi2 tst r2, #1 - movne r2, #3 - strneb r2, [r4, #590] + 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: cmp r3, #8 - bne .L3211 + bne .L3209 ldrb r3, [r4, #688] @ zero_extendqisi2 cmp r3, #44 cmpne r3, #137 - bne .L3211 + bne .L3209 ldrb r3, [r6, #32] @ zero_extendqisi2 cmp r3, #3 - ldreq r3, .L3273+16 + ldreq r3, .L3272+16 moveq r2, #0 streqb r2, [r3, #590] -.L3211: +.L3209: ldrh r2, [r6, #20] ldrb r3, [r6, #23] @ zero_extendqisi2 tst r2, #64 strb r3, [r4, #661] - beq .L3213 + beq .L3211 sub r2, r3, #17 sub r1, r3, #21 clz r1, r1 cmp r3, #21 cmpne r2, #2 mov r1, r1, lsr #5 - bhi .L3214 - ldr r2, .L3273+48 + bhi .L3212 + ldr r2, .L3272+48 cmp r1, #0 - ldr r3, .L3273+12 + ldr r3, .L3272+12 str r2, [r5, #-3252] moveq r2, #15 movne r2, #4 strb r2, [r3, #-3260] - b .L3213 -.L3214: + b .L3211 +.L3212: sub r2, r3, #65 cmp r3, #33 cmpne r2, #1 - bhi .L3217 - ldr r3, .L3273+52 + bhi .L3215 + ldr r3, .L3272+52 mov r2, #4 str r3, [r5, #-3252] - ldr r3, .L3273+16 + ldr r3, .L3272+16 strb r2, [r3, #662] - b .L3271 -.L3217: + b .L3270 +.L3215: sub r2, r3, #67 sub ip, r3, #35 cmp r2, #1 @@ -19053,9 +19043,9 @@ nand_flash_init: cmphi r1, #1 mov ip, ip, lsr #5 mov lr, lr, lsr #5 - bhi .L3218 - ldr r2, .L3273+52 - ldr r3, .L3273+12 + bhi .L3216 + ldr r2, .L3272+52 + ldr r3, .L3272+12 str r2, [r5, #-3252] orrs r2, lr, ip moveq r2, #7 @@ -19065,70 +19055,70 @@ nand_flash_init: movne r3, #4 moveq r3, #5 strb r3, [r4, #662] - b .L3213 -.L3218: + b .L3211 +.L3216: sub r3, r3, #36 cmp r3, #1 - bhi .L3213 - ldr r3, .L3273+56 + bhi .L3211 + ldr r3, .L3272+56 str r3, [r5, #-3252] -.L3271: +.L3270: mov r3, #7 strb r3, [r5, #-3260] -.L3213: +.L3211: ldr r3, [r6] tst r3, #4096 - beq .L3222 - ldr r0, .L3273+4 - movw r1, #2671 - ldr r2, .L3273+8 + beq .L3220 + ldr r0, .L3272+4 + movw r1, #2857 + ldr r2, .L3272+8 bl printk -.L3222: +.L3220: mov r3, #0 strb r3, [r4, #623] ldrb r3, [r4, #720] @ zero_extendqisi2 mov r0, #4 tst r3, #1 - beq .L3223 + beq .L3221 bl nandc_set_if_mode mov r0, #1 bl flash_set_interface_mode mov r0, #1 -.L3223: +.L3221: bl nandc_set_if_mode bl flash_info_blk_init cmn r0, #1 mov r8, r0 - bne .L3225 + bne .L3223 ldr r3, [r6] tst r3, #4096 - beq .L3226 - ldr r0, .L3273+4 - mov r1, #2688 - ldr r2, .L3273+8 + beq .L3224 + ldr r0, .L3272+4 + movw r1, #2875 + ldr r2, .L3272+8 bl printk -.L3226: +.L3224: ldr r3, [r4, #664] mov r2, #17 mov r0, #0 strb r0, [r4, #680] strb r2, [r3, #32] bl zftl_flash_exit_slc_mode - b .L3265 -.L3225: + b .L3263 +.L3223: ldrb r3, [r4, #661] @ zero_extendqisi2 sub r3, r3, #1 cmp r3, #7 - ldrls r3, .L3273+60 + ldrls r3, .L3272+60 strls r3, [r5, #-3252] ldrb r3, [r4, #720] @ zero_extendqisi2 - ldr r5, .L3273+16 + ldr r5, .L3272+16 tst r3, #4 - beq .L3229 + beq .L3227 ldr r3, [r5, #664] ldrb r3, [r3, #19] @ zero_extendqisi2 cmp r3, #0 - beq .L3229 + beq .L3227 ldrb r3, [r7, #-2508] @ zero_extendqisi2 mov r0, #0 ldrh r1, [r5, #2] @@ -19136,27 +19126,27 @@ nand_flash_init: bl flash_ddr_para_scan ldrb r3, [r5, #623] @ zero_extendqisi2 cmp r3, #0 - bne .L3229 + bne .L3227 ldr r2, [r5, #664] strb r3, [r2, #19] bl flash_info_flush -.L3229: +.L3227: ldr r3, [r6] tst r3, #4096 - beq .L3231 - ldr r0, .L3273+4 - movw r1, #2740 - ldr r2, .L3273+8 + beq .L3229 + ldr r0, .L3272+4 + movw r1, #2929 + ldr r2, .L3272+8 bl printk -.L3231: +.L3229: bl nand_flash_print_info mov r8, #0 -.L3265: +.L3263: mov r0, r8 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3274: - .align 2 .L3273: + .align 2 +.L3272: .word .LANCHOR2 .word .LC136 .word .LANCHOR1+1936 @@ -19166,7 +19156,7 @@ nand_flash_init: .word .LANCHOR3-3356 .word .LANCHOR0+688 .word .LANCHOR2+424 - .word .LANCHOR2+1832 + .word .LANCHOR2+1864 .word .LANCHOR0+591 .word .LANCHOR5 .word micron_read_retrial @@ -19189,20 +19179,20 @@ ftl_sysblk_dump: sub sp, sp, #52 mov r0, #1 bl buf_alloc - ldr ip, .L3287 + ldr ip, .L3286 mov r6, #0 mov r5, r6 ldr fp, [r0, #4] mov r4, r0 -.L3276: - ldr r3, .L3287+4 +.L3275: + ldr r3, .L3286+4 uxth r8, r6 ldrh r3, [r3] cmp r3, r8 - bls .L3286 + bls .L3285 ldrh r7, [ip] add r6, r6, #1 - ldr r3, .L3287+8 + ldr r3, .L3286+8 ldr r1, [r4, #4] mla r7, r7, r10, r8 ldr r2, [r4, #12] @@ -19215,7 +19205,7 @@ ftl_sysblk_dump: str r0, [sp] mov r9, r0 ldr r1, [r2] - ldr r0, .L3287+12 + ldr r0, .L3286+12 str r1, [sp, #4] ldr r1, [r2, #4] str r1, [sp, #8] @@ -19239,9 +19229,9 @@ ftl_sysblk_dump: cmpne r9, #512 moveq r5, #1 ldr ip, [sp, #44] - b .L3276 -.L3286: - ldr r0, .L3287+16 + b .L3275 +.L3285: + ldr r0, .L3286+16 add r1, fp, #704 mov r2, #4 mov r3, #32 @@ -19249,20 +19239,20 @@ ftl_sysblk_dump: mov r0, r4 bl zbuf_free cmp r5, #0 - beq .L3279 - ldr r1, .L3287+20 - movw r2, #1422 - ldr r0, .L3287+24 + beq .L3278 + ldr r1, .L3286+20 + movw r2, #1432 + ldr r0, .L3286+24 bl printk bl dump_stack -.L3279: +.L3278: mov r0, r5 add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3288: - .align 2 .L3287: + .align 2 +.L3286: .word .LANCHOR0+2994 .word .LANCHOR0+2960 .word .LANCHOR0 @@ -19282,14 +19272,14 @@ dump_ftl_info: stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r4, .L3291 - ldr r0, .L3291+4 + ldr r4, .L3290 + ldr r0, .L3290+4 add r5, r4, #2960 add r6, r4, #564 ldrb r1, [r4, #2262] @ zero_extendqisi2 bl printk - ldr r2, .L3291+8 - ldr r0, .L3291+12 + ldr r2, .L3290+8 + ldr r0, .L3290+12 sub r3, r2, #2928 sub r3, r3, #8 ldrb r1, [r2, #-2936] @ zero_extendqisi2 @@ -19297,7 +19287,7 @@ dump_ftl_info: ldrh r3, [r3, #2] bl printk ldr r3, [r4, #2288] - ldr r0, .L3291+16 + ldr r0, .L3290+16 ldrh r1, [r3, #130] ldrh r2, [r3, #140] bl printk @@ -19309,7 +19299,7 @@ dump_ftl_info: str ip, [sp] ldrh r0, [r0, #26] str r0, [sp, #4] - ldr r0, .L3291+20 + ldr r0, .L3290+20 bl printk ldr r0, [r4, #580] ldrh ip, [r0, #54] @@ -19319,7 +19309,7 @@ dump_ftl_info: str ip, [sp] ldrh r0, [r0, #58] str r0, [sp, #4] - ldr r0, .L3291+24 + ldr r0, .L3290+24 bl printk ldr r0, [r4, #580] ldrh ip, [r0, #86] @@ -19329,12 +19319,12 @@ dump_ftl_info: str ip, [sp] ldrh r0, [r0, #90] str r0, [sp, #4] - ldr r0, .L3291+28 + ldr r0, .L3290+28 bl printk ldrh r2, [r5] ldrb r3, [r4, #2964] @ zero_extendqisi2 ldr r1, [r4, #3512] - ldr r0, .L3291+32 + ldr r0, .L3290+32 mul r3, r3, r2 mov r2, #4 mov r3, r3, asl #1 @@ -19342,11 +19332,11 @@ dump_ftl_info: ldr r1, [r4, #576] ldrh r3, [r6] mov r2, #2 - ldr r0, .L3291+36 + ldr r0, .L3290+36 bl rknand_print_hex ldr r3, [r4, #2288] movw ip, #698 - ldr r0, .L3291+40 + ldr r0, .L3290+40 add r1, r3, #704 mov r2, #4 ldrh r3, [r3, ip] @@ -19354,17 +19344,17 @@ dump_ftl_info: ldr r1, [r4, #568] ldrh r3, [r6] mov r2, #4 - ldr r0, .L3291+44 + ldr r0, .L3290+44 bl rknand_print_hex add r1, r4, #2992 - ldr r0, .L3291+48 + ldr r0, .L3290+48 add r1, r1, #8 mov r2, #2 mov r3, #256 bl rknand_print_hex ldrh r2, [r5] ldrb r3, [r4, #2964] @ zero_extendqisi2 - ldr r0, .L3291+52 + ldr r0, .L3290+52 ldr r1, [r4, #3516] mul r3, r3, r2 mov r2, #2 @@ -19373,9 +19363,9 @@ dump_ftl_info: @ sp needed ldmfd sp!, {r4, r5, r6, lr} b rknand_print_hex -.L3292: - .align 2 .L3291: + .align 2 +.L3290: .word .LANCHOR0 .word .LC213 .word .LANCHOR3 @@ -19402,7 +19392,7 @@ pm_ppa_update_check: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, r2 - ldr r4, .L3297 + ldr r4, .L3296 mov r7, r0 mov r6, r1 add r3, r4, #2928 @@ -19428,14 +19418,14 @@ pm_ppa_update_check: mov r1, r7 mov r2, r6 mov r3, r5 - ldr r0, .L3297+4 + ldr r0, .L3296+4 bl printk bl dump_ftl_info mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3298: - .align 2 .L3297: + .align 2 +.L3296: .word .LANCHOR0 .word .LC224 .fnend @@ -19452,24 +19442,24 @@ load_l2p_region: .pad #12 mov r5, r0 mov r6, r1 - bls .L3300 - ldr r1, .L3314 + bls .L3299 + ldr r1, .L3313 mov r2, #32 - ldr r0, .L3314+4 + ldr r0, .L3313+4 bl printk bl dump_stack -.L3300: - ldr r7, .L3314+8 +.L3299: + ldr r7, .L3313+8 movw r8, #698 ldr r3, [r7, #2288] mov r9, r7 ldrh r2, [r3, r8] cmp r5, r2 - bls .L3301 + bls .L3300 mov r1, r5 - ldr r0, .L3314+12 + ldr r0, .L3313+12 bl printk - ldr r3, .L3314+16 + ldr r3, .L3313+16 mov r4, #0 mov r1, #255 ldr r0, [r4, #4] @@ -19478,35 +19468,35 @@ load_l2p_region: ldr r3, [r7, #2288] ldrh r3, [r3, r8] cmp r3, r5 - bcs .L3312 - ldr r0, .L3314+4 + bcs .L3311 + ldr r0, .L3313+4 mov r2, #36 - ldr r1, .L3314 - b .L3313 -.L3301: + ldr r1, .L3313 + b .L3312 +.L3300: add r2, r5, #176 mov r6, r6, asl #3 add r8, r7, r6 ldr r4, [r3, r2, asl #2] - ldr r3, .L3314+20 + ldr r3, .L3313+20 add r2, r3, r6 strh r5, [r3, r6] @ movhi mov r3, #0 cmp r4, r3 strh r3, [r2, #2] @ movhi - bne .L3304 + bne .L3303 mov r1, r5 mov r2, r4 - ldr r0, .L3314+24 + ldr r0, .L3313+24 bl printk - ldr r3, .L3314+16 + ldr r3, .L3313+16 ldr r0, [r8, #3544] mov r1, #255 ldrh r2, [r3, #-4] bl ftl_memset - b .L3312 -.L3304: - ldr r7, .L3314+28 + b .L3311 +.L3303: + ldr r7, .L3313+28 mov r0, r4 ldrb r3, [r9, #2260] @ zero_extendqisi2 ldr r1, [r8, #3544] @@ -19516,39 +19506,39 @@ load_l2p_region: ldr r2, [r2] cmp r2, r5 mov r3, r0 - bne .L3305 + bne .L3304 cmn r0, #1 cmpne r0, #512 - beq .L3305 -.L3308: + beq .L3304 +.L3307: ldr r3, [r7, #-2520] ldr r3, [r3] cmp r3, r5 - beq .L3312 - ldr r0, .L3314+4 + beq .L3311 + ldr r0, .L3313+4 mov r2, #63 - ldr r1, .L3314 - b .L3313 -.L3305: + ldr r1, .L3313 + b .L3312 +.L3304: mov r1, r5 str r4, [sp] - ldr r0, .L3314+32 + ldr r0, .L3313+32 add r6, r9, r6 bl printk ldr r3, [r9, #2288] movw ip, #698 - ldr r0, .L3314+36 + ldr r0, .L3313+36 add r1, r3, #704 mov r2, #4 ldrh r3, [r3, ip] bl rknand_print_hex ldrb r3, [r9, #2260] @ zero_extendqisi2 - ldr r0, .L3314+40 + ldr r0, .L3313+40 mov r2, #4 ldr r1, [r6, #3544] mov r3, r3, asl #7 bl rknand_print_hex - ldr r0, .L3314+44 + ldr r0, .L3313+44 ldr r1, [r7, #-2520] mov r2, #4 mov r3, #16 @@ -19561,26 +19551,26 @@ load_l2p_region: ldr r3, [r7, #-2520] ldr r3, [r3] cmp r3, r5 - bne .L3310 + bne .L3309 cmn r0, #1 cmpne r0, #512 - bne .L3308 - b .L3310 -.L3313: + bne .L3307 + b .L3309 +.L3312: bl printk bl dump_stack -.L3312: +.L3311: mov r0, #0 - b .L3303 -.L3310: + b .L3302 +.L3309: mvn r0, #0 -.L3303: +.L3302: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3315: - .align 2 .L3314: + .align 2 +.L3313: .word .LANCHOR1+1968 .word .LC0 .word .LANCHOR0 @@ -19605,8 +19595,8 @@ 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, .L3335 - ldr r5, .L3335+4 + ldr r4, .L3334 + ldr r5, .L3334+4 ldr r3, [r4, #2288] add r3, r3, #688 ldrh r2, [r3] @@ -19615,11 +19605,11 @@ pm_gc: mov r6, r3 sub r0, r0, #1 cmp r2, r0 - bge .L3317 + bge .L3316 ldr r3, [r5, #-3304] cmp r3, #0 - beq .L3318 -.L3317: + beq .L3317 +.L3316: bl pm_free_sblk ldr r2, [r4, #2288] add r3, r2, #688 @@ -19627,12 +19617,12 @@ pm_gc: ldrh r3, [r6] sub r3, r3, #1 cmp r1, r3 - bge .L3319 - ldr r3, .L3335+4 + bge .L3318 + ldr r3, .L3334+4 ldr r3, [r3, #-3304] cmp r3, #0 - beq .L3318 -.L3319: + beq .L3317 +.L3318: uxth r0, r0 mov r3, #0 add r0, r0, #208 @@ -19641,10 +19631,10 @@ pm_gc: mov r0, r0, asl #1 ldrh r6, [r2, r0] cmp r6, r5 - bne .L3321 - ldr r1, .L3335+8 + bne .L3320 + ldr r1, .L3334+8 mov r2, #162 - ldr r0, .L3335+12 + ldr r0, .L3334+12 bl printk bl dump_stack bl pm_free_sblk @@ -19654,10 +19644,10 @@ pm_gc: mov r0, r0, asl #1 ldrh r6, [r3, r0] cmp r6, r5 - beq .L3318 -.L3321: + beq .L3317 +.L3320: bl pm_select_ram_region - ldr r3, .L3335+16 + ldr r3, .L3334+16 movw r2, #65535 mov r5, r0, asl #3 mov r9, r0 @@ -19665,32 +19655,32 @@ pm_gc: str r3, [sp, #4] ldrh r0, [r3, r5] cmp r0, r2 - beq .L3322 - ldr r3, .L3335 + beq .L3321 + ldr r3, .L3334 add r3, r3, r5 ldr r1, [r3, #3544] cmp r1, #0 - beq .L3322 + beq .L3321 ldrsh r3, [r7, #2] cmp r3, #0 - bge .L3322 + bge .L3321 bl pm_write_page ldrh r3, [r7, #2] ubfx r3, r3, #0, #15 strh r3, [r7, #2] @ movhi -.L3322: - ldr r7, .L3335 +.L3321: + ldr r7, .L3334 mov r8, #0 add fp, r7, r5 -.L3323: +.L3322: ldr r0, [r4, #2288] uxth r10, r8 add r3, r0, #696 add r3, r3, #2 ldrh r3, [r3] cmp r3, r10 - bls .L3334 - ldr r3, .L3335+20 + bls .L3333 + ldr r3, .L3334+20 ldrh r1, [r3] add r3, r10, #176 ldr ip, [r0, r3, asl #2] @@ -19704,32 +19694,32 @@ pm_gc: bl __aeabi_uidiv uxth r0, r0 cmp r0, r6 - bne .L3324 + bne .L3323 mov r0, r10 mov r1, r9 bl load_l2p_region cmp r0, #0 - bne .L3325 + bne .L3324 mov r0, r10 ldr r1, [fp, #3544] bl pm_write_page -.L3325: +.L3324: ldr r2, [sp, #4] mvn r3, #0 strh r3, [r2, r5] @ movhi -.L3324: +.L3323: add r8, r8, #1 - b .L3323 -.L3334: + b .L3322 +.L3333: bl pm_free_sblk -.L3318: +.L3317: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3336: - .align 2 .L3335: + .align 2 +.L3334: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR1+1984 @@ -19748,8 +19738,8 @@ pm_flush_id: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, r0, asl #3 - ldr r4, .L3343 - ldr r3, .L3343+4 + ldr r4, .L3342 + ldr r3, .L3342+4 add r2, r4, r0 add r5, r3, r0 ldr r1, [r2, #3544] @@ -19760,16 +19750,16 @@ pm_flush_id: strh r3, [r5, #2] @ movhi ldr r3, [r4, #3536] cmp r3, #0 - beq .L3338 + beq .L3337 bl pm_gc mov r3, #0 str r3, [r4, #3536] -.L3338: +.L3337: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L3344: - .align 2 .L3343: + .align 2 +.L3342: .word .LANCHOR0 .word .LANCHOR0+3540 .fnend @@ -19784,23 +19774,23 @@ pm_flush: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #0 - ldr r5, .L3350 -.L3347: + ldr r5, .L3349 +.L3346: add r3, r5, r4, asl #3 uxth r0, r4 ldrsh r3, [r3, #2] cmp r3, #0 - bge .L3346 + bge .L3345 bl pm_flush_id -.L3346: +.L3345: add r4, r4, #1 cmp r4, #32 - bne .L3347 + bne .L3346 mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L3351: - .align 2 .L3350: + .align 2 +.L3349: .word .LANCHOR0+3540 .fnend .size pm_flush, .-pm_flush @@ -19847,11 +19837,11 @@ pm_init: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r0 - ldr r3, .L3376 + ldr r3, .L3379 mov r0, #64 - ldr r4, .L3376+4 + ldr r4, .L3379+4 mov r10, #0 - ldr r5, .L3376+8 + ldr r5, .L3379+8 mvn fp, #0 str r10, [r3, #-3304] mov r3, #1 @@ -19859,25 +19849,25 @@ pm_init: mov r8, r4 strb r3, [r5, #-2516] bl ftl_malloc - ldr r9, .L3376+12 + ldr r9, .L3379+12 str r0, [r5, #-2520] -.L3358: +.L3357: mov r3, #0 cmp r7, r3 mov r6, r9 strh fp, [r6, r10]! @ movhi strh r3, [r6, #2] @ movhi - beq .L3357 + beq .L3356 ldrb r0, [r8, #2260] @ zero_extendqisi2 mov r0, r0, asl #9 bl ftl_malloc str r0, [r6, #4] -.L3357: +.L3356: add r10, r10, #8 cmp r10, #256 - bne .L3358 + bne .L3357 ldr r3, [r4, #2288] - ldr r8, [r5, #-2520] + ldr r5, [r5, #-2520] ldr r10, [r4, #3544] add r3, r3, #692 ldrb r0, [r3, #2] @ zero_extendqisi2 @@ -19885,40 +19875,40 @@ pm_init: mov r3, #4 mov r2, r10 str r3, [sp] - mov r3, r8 - ldr r9, .L3376+4 + mov r3, r5 + ldr r9, .L3379+4 bl flash_get_last_written_page - ldr r6, [r4, #2288] - add r3, r6, #696 + ldr r7, [r4, #2288] + add r3, r7, #696 ldrh r2, [r3] cmp r2, r0 - mov r5, r0 - bgt .L3359 - add r6, r6, #692 - mov r3, r5 - ldr r0, .L3376+16 - add r5, r5, #1 - ldrh r1, [r6] + mov r6, r0 + bgt .L3358 + add r7, r7, #692 + mov r3, r6 + ldr r0, .L3379+16 + add r6, r6, #1 + ldrh r1, [r7] bl printk ldr r3, [r9, #2288] add r3, r3, #696 - ldrh r7, [r3] -.L3360: - sxth r3, r7 - cmp r3, r5 - bge .L3375 + ldrh r8, [r3] +.L3359: + sxth r3, r8 + cmp r3, r6 + bge .L3378 ldr r2, [r4, #2288] - ldr r0, .L3376+20 + ldr r0, .L3379+20 add r1, r2, #692 - ldrh r6, [r0] + ldrh r7, [r0] ldrh r1, [r1] ldrb r0, [r2, #694] @ zero_extendqisi2 mov r2, r10 - mla r6, r6, r1, r3 + mla r7, r7, r1, r3 ldrb r3, [r4, #2260] @ zero_extendqisi2 str r3, [sp] - mov r3, r8 - mov r1, r6 + mov r3, r5 + mov r1, r7 bl flash_read_page_en ldr r3, [r4, #2288] add r3, r3, #692 @@ -19926,46 +19916,63 @@ pm_init: add r2, r2, #1 str r2, [r3, #-644] add r3, r3, #2 - ldr r1, [r8] - mov r2, r6 + ldr r1, [r5] + mov r2, r7 ldrh r3, [r3] mov fp, r0 - ldr r0, .L3376+24 + ldr r0, .L3379+24 bl printk cmp fp, #512 cmnne fp, #1 + beq .L3360 + ldr r3, [r9, #2288] + ldr r2, [r5] + 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 - ldr r1, [r9, #2288] - ldr r3, [r8] - add r2, r1, #696 - add r2, r2, #2 - ldrh r2, [r2] - cmp r3, r2 - addcc r3, r3, #176 - strcc r6, [r1, r3, asl #2] -.L3361: - add r7, r7, #1 - uxth r7, r7 + ldrb r1, [r9, #2260] @ zero_extendqisi2 + mov r0, r10 + mov r1, r1, asl #9 + bl js_hash + cmp fp, r0 + beq .L3361 + ldr r1, [r5, #8] + ldr r0, .L3379+28 + bl printk b .L3360 -.L3375: - ldr r3, .L3376+28 +.L3361: + ldr r3, [r5] + ldr r2, [r4, #2288] + 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] add r3, r3, #696 - strh r5, [r3] @ movhi + strh r6, [r3] @ movhi bl pm_free_sblk -.L3359: - ldr r3, .L3376+32 +.L3358: + ldr r3, .L3379+36 mov r1, #255 ldr r0, [r4, #3544] - ldr r5, .L3376+4 + ldr r5, .L3379+4 ldrh r2, [r3, #-4] bl ftl_memset mvn r0, #0 ldr r1, [r4, #3544] bl pm_write_page - ldr r3, .L3376+28 + ldr r3, .L3379+32 ldrb r3, [r3, #-2855] @ zero_extendqisi2 cmp r3, #0 beq .L3363 @@ -19985,9 +19992,9 @@ pm_init: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3377: +.L3380: .align 2 -.L3376: +.L3379: .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR5 @@ -19995,6 +20002,7 @@ pm_init: .word .LC231 .word .LANCHOR0+2994 .word .LC232 + .word .LC233 .word .LANCHOR4 .word .LANCHOR5-2496 .fnend @@ -20009,7 +20017,7 @@ pm_log2phys: 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, .L3397 + ldr fp, .L3400 mov r9, r0 mov r7, r2 ldrb r4, [fp, #2260] @ zero_extendqisi2 @@ -20018,39 +20026,39 @@ pm_log2phys: mov r3, r4, asl #7 ldr r2, [fp, #2268] cmp r9, r2 - ldrcc r2, .L3397+4 + ldrcc r2, .L3400+4 uxth r10, r0 mov r6, r0 smulbb r3, r3, r10 rsb r3, r3, r9 uxth r8, r3 movcc r3, #0 - bcc .L3379 + bcc .L3382 mov r1, r9 - ldr r0, .L3397+8 + ldr r0, .L3400+8 bl printk mvn r0, #0 cmp r7, #0 streq r0, [r5] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3395: +.L3398: ldrh r1, [r1, r2] cmp r1, r10 - beq .L3382 -.L3381: + beq .L3385 +.L3384: add r3, r3, #1 cmp r3, #32 - beq .L3394 -.L3379: + beq .L3397 +.L3382: mov r1, r3, asl #3 uxth r4, r3 add r0, r2, r1 - ldr r9, .L3397+4 + ldr r9, .L3400+4 ldr r0, [r0, #4] cmp r0, #0 - bne .L3395 - b .L3381 -.L3394: + bne .L3398 + b .L3384 +.L3397: bl pm_select_ram_region mov r3, r0, asl #3 mov r4, r0 @@ -20058,17 +20066,17 @@ pm_log2phys: ldrh r1, [r9, r3] movw r3, #65535 cmp r1, r3 - bne .L3396 -.L3385: - ldr r3, .L3397+12 + bne .L3399 +.L3388: + ldr r3, .L3400+12 mov r0, r10 mov r1, r4 strb r4, [r3, #-2498] bl load_l2p_region -.L3382: +.L3385: cmp r7, #0 mov r3, r4, asl #3 - bne .L3383 + bne .L3386 add r2, fp, r3 mvn r1, #0 ldr r2, [r2, #3544] @@ -20082,8 +20090,8 @@ pm_log2phys: cmp r2, r1 mvncs r2, #0 strcs r2, [r5] - b .L3384 -.L3383: + b .L3387 +.L3386: add r2, fp, r3 ldr r1, [r5] ldr r2, [r2, #3544] @@ -20094,7 +20102,7 @@ pm_log2phys: mvn r2, r2, asl #17 mvn r2, r2, lsr #17 strh r2, [r1, #2] @ movhi -.L3384: +.L3387: add r3, r9, r3 movw r1, #32767 ldrh r2, [r3, #2] @@ -20104,18 +20112,18 @@ pm_log2phys: addne r2, r2, #1 strneh r2, [r3, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3396: +.L3399: ldrsh r3, [r2, #2] cmp r3, #0 - bge .L3385 + bge .L3388 bl pm_flush_id - b .L3385 -.L3398: + b .L3388 +.L3401: .align 2 -.L3397: +.L3400: .word .LANCHOR0 .word .LANCHOR0+3540 - .word .LC233 + .word .LC234 .word .LANCHOR5 .fnend .size pm_log2phys, .-pm_log2phys @@ -20124,25 +20132,22 @@ pm_log2phys: .type gc_recovery, %function gc_recovery: .fnstart - @ args = 0, pretend = 0, frame = 40 + @ 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} - .pad #76 - sub sp, sp, #76 - ldr r8, .L3484 - mov r6, #0 - ldr r3, .L3484+4 - ldr r4, .L3484+8 - ldr r5, [r8, #580] - ldr r3, [r3] - strb r6, [r8, #2945] - ldrh r7, [r5, #80] - str r3, [sp, #68] movw r3, #65535 - cmp r7, r3 + ldr r8, .L3486 + mov r6, #0 + ldr r4, .L3486+4 + .pad #68 + sub sp, sp, #68 + ldr r5, [r8, #580] + strb r6, [r8, #2945] strb r6, [r4, #-3322] - beq .L3400 + ldrh r7, [r5, #80] + cmp r7, r3 + beq .L3403 mvn r3, #0 mov r0, #1 strh r3, [r5, #130] @ movhi @@ -20156,29 +20161,29 @@ gc_recovery: ldrb r3, [r8, #2937] @ zero_extendqisi2 cmp r3, #2 mov r6, r0 - str r1, [sp, #60] - beq .L3401 + str r1, [sp, #56] + beq .L3404 ldrb r2, [r8, #684] @ zero_extendqisi2 cmp r2, #0 - beq .L3402 -.L3401: + beq .L3405 +.L3404: movw r2, #2962 ldrh r2, [r8, r2] sub r2, r2, #1 add r2, r2, r1 orr r3, r2, r3, asl #24 - b .L3481 -.L3402: + b .L3483 +.L3405: cmp r3, #3 - bne .L3403 + bne .L3406 add r3, r8, #2960 ldrh r3, [r3] sub r3, r3, #1 add r3, r3, r1 orr r3, r3, #50331648 -.L3481: +.L3483: str r3, [r6, #24] -.L3403: +.L3406: mov r0, r6 mov r1, #1 bl sblk_read_page @@ -20187,19 +20192,19 @@ gc_recovery: cmpne r7, #512 moveq r7, #1 movne r7, #0 - beq .L3404 + beq .L3407 ldr r3, [r6, #12] ldr r2, [r3] - ldr r3, .L3484+12 + ldr r3, .L3486+8 cmp r2, r3 - beq .L3405 -.L3404: + beq .L3408 +.L3407: mov r0, r6 mov r4, #0 bl zbuf_free ldr r3, [r6, #4] ldr r2, [r6, #12] - ldr r0, .L3484+16 + ldr r0, .L3486+12 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -20225,16 +20230,16 @@ gc_recovery: ldrh r2, [r5, #80] ldr r3, [r8, #580] strh r2, [r3, #130] @ movhi - b .L3406 -.L3405: + 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, .L3484+8 - ldr r9, .L3484 + ldr r10, .L3486+4 + ldr r9, .L3486 mov r2, r2, asl #2 bl ftl_memcpy ldrh r2, [r8, fp] @@ -20243,7 +20248,7 @@ gc_recovery: mul r3, r3, r2 cmp r1, r3, asr #6 mov r2, r3, asl #2 - bge .L3407 + bge .L3410 rsb r3, r3, r1, asl #7 ldr r0, [r10, #-3312] mov r1, r7 @@ -20258,84 +20263,84 @@ gc_recovery: ldr r1, [r6, #4] add r1, r1, r3, asl #2 bl ftl_memcpy - b .L3408 -.L3407: + b .L3411 +.L3410: ldr r1, [r6, #4] mov r4, r7 ldr r0, [r10, #-3312] add r1, r1, r2 bl ftl_memcpy -.L3408: - ldr r3, .L3484 +.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 .L3409 + bne .L3412 ldrb r3, [r3, #2938] @ zero_extendqisi2 cmp r3, #0 - beq .L3410 -.L3409: + beq .L3413 +.L3412: ldrb r3, [r8, #684] @ zero_extendqisi2 cmp r3, #0 - beq .L3411 -.L3410: + beq .L3414 +.L3413: ldr r3, [sp, #32] ldr r2, [sp, #36] mul r3, r3, r2 str r3, [sp, #36] mov r3, #1 str r3, [sp, #32] -.L3411: - ldr ip, .L3484 +.L3414: + ldr ip, .L3486 mov r8, #0 str r8, [sp, #40] -.L3412: +.L3415: ldr r3, [sp, #36] cmp r8, r3 - bcs .L3424 + bcs .L3427 add r3, r5, #96 str r3, [sp, #48] mov r3, #0 str r3, [sp, #44] -.L3425: +.L3428: ldrb r3, [r5, #89] @ zero_extendqisi2 ldr r2, [sp, #44] cmp r2, r3 - bge .L3421 + bge .L3424 ldr r3, [sp, #40] mov fp, #1 - ldr r10, .L3484+8 + ldr r10, .L3486+4 mov r9, r3, asl #2 -.L3422: +.L3425: ldr r3, [sp, #32] cmp fp, r3 - bhi .L3482 + bhi .L3484 ldr r3, [sp, #48] ldrb r1, [ip, #2937] @ zero_extendqisi2 ldrh r2, [r3] cmp r1, #2 - ldr r3, .L3484+20 + ldr r3, .L3486+16 ldrh r3, [r3] mul r3, r3, r2 - str r3, [sp, #60] - beq .L3413 + str r3, [sp, #56] + beq .L3416 ldrb r2, [ip, #684] @ zero_extendqisi2 cmp r2, #0 - beq .L3414 -.L3413: + beq .L3417 +.L3416: sub r2, r8, #1 add r3, r2, r3 add r3, r3, fp orr r3, r3, r1, asl #24 - b .L3416 -.L3414: + b .L3419 +.L3417: cmp r1, #3 add r3, r3, r8 orreq r3, r3, fp, asl #24 -.L3416: +.L3419: str r3, [r6, #24] mov r0, r6 mov r1, #1 @@ -20343,26 +20348,26 @@ gc_recovery: bl sblk_read_page cmp r7, #0 ldr ip, [sp, #52] - beq .L3417 + beq .L3420 ldr r3, [r10, #-3312] ldr r2, [r3, r9] cmp r2, #0 ldreq r2, [r6, #12] ldreq r2, [r2, #8] streq r2, [r3, r9] -.L3417: +.L3420: ldr r3, [r10, #-3316] ldr r2, [r6, #12] ldr r3, [r3, r9] ldr r1, [r2, #4] cmp r3, r1 - bne .L3418 + bne .L3421 ldr r0, [r10, #-3312] ldr lr, [r0, r9] ldr r0, [r2, #8] cmp lr, r0 - beq .L3446 -.L3418: + beq .L3448 +.L3421: ldr r0, [r10, #-3312] str ip, [sp, #52] ldr r0, [r0, r9] @@ -20370,7 +20375,7 @@ gc_recovery: ldr r0, [r2] stmib sp, {r0, r1} ldr r1, [r2, #8] - ldr r0, .L3484+24 + ldr r0, .L3486+20 str r1, [sp, #12] ldr r2, [r2, #12] str r2, [sp, #16] @@ -20381,10 +20386,10 @@ gc_recovery: ldr r3, [r3, r9] cmn r3, #1 ldr ip, [sp, #52] - beq .L3446 + beq .L3448 mov r0, r6 bl zbuf_free - ldr r2, .L3484 + ldr r2, .L3486 ldrh r3, [r5, #80] mov r0, #0 ldr r1, [r2, #576] @@ -20393,31 +20398,31 @@ gc_recovery: ldrh r1, [r5, #80] ldr r3, [r2, #580] strh r1, [r3, #130] @ movhi - b .L3406 -.L3446: + b .L3409 +.L3448: ldr r3, [sp, #40] add fp, fp, #1 add r9, r9, #4 add r3, r3, #1 str r3, [sp, #40] - b .L3422 -.L3482: + b .L3425 +.L3484: ldr r3, [sp, #44] add r3, r3, #1 str r3, [sp, #44] ldr r3, [sp, #48] add r3, r3, #2 str r3, [sp, #48] - b .L3425 -.L3421: + b .L3428 +.L3424: ldrb r3, [ip, #2938] @ zero_extendqisi2 cmp r3, #0 addne r8, r8, #1 add r8, r8, #1 - b .L3412 -.L3424: + b .L3415 +.L3427: mov r0, r6 - ldr r6, .L3484 + ldr r6, .L3486 bl zbuf_free movw r2, #2962 ldrb r0, [r5, #89] @ zero_extendqisi2 @@ -20430,66 +20435,66 @@ gc_recovery: smulbb r2, r0, r2 mov r3, r3, asl #1 strh r2, [r1, r3] @ movhi -.L3426: +.L3429: ldr r3, [sp, #36] cmp r10, r3 - bcs .L3439 + bcs .L3442 add r3, r5, #96 str r3, [sp, #44] mov r3, #0 str r3, [sp, #40] -.L3440: +.L3443: ldrb r2, [r5, #89] @ zero_extendqisi2 ldr r3, [sp, #40] cmp r3, r2 - bge .L3436 - ldr fp, .L3484+8 + bge .L3439 + ldr fp, .L3486+4 mov r7, #1 -.L3437: +.L3440: ldr r3, [sp, #32] cmp r7, r3 - bhi .L3483 + bhi .L3485 ldr r2, [fp, #-3316] ldr r9, [r2, r8, asl #2] cmn r9, #1 - beq .L3427 + beq .L3430 ldr r2, [fp, #-3312] mov r0, r9 ldr r3, [r2, r8, asl #2] str r3, [sp, #48] bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #64] - bne .L3428 + str r0, [sp, #60] + bne .L3431 mov r0, r9 - add r1, sp, #64 + add r1, sp, #60 mov r2, #0 bl pm_log2phys -.L3428: +.L3431: ldr r3, [sp, #44] - ldr r2, .L3484+20 + ldr r2, .L3486+16 ldrh r1, [r3] ldrh r2, [r2] mul r2, r2, r1 ldrb r1, [r6, #2937] @ zero_extendqisi2 cmp r1, #2 - beq .L3429 + beq .L3432 ldrb r0, [r6, #684] @ zero_extendqisi2 cmp r0, #0 - beq .L3430 -.L3429: + beq .L3433 +.L3432: sub r0, r10, #1 add r2, r0, r2 add r2, r2, r7 orr r2, r2, r1, asl #24 - b .L3432 -.L3430: + b .L3435 +.L3433: cmp r1, #3 add r2, r2, r10 orreq r2, r2, r7, asl #24 -.L3432: - str r2, [sp, #60] - ldr r2, .L3484+28 +.L3435: + str r2, [sp, #56] + ldr r2, .L3486+24 ldrb r1, [r6, #676] @ zero_extendqisi2 ldr r3, [sp, #48] ldrh r0, [r2] @@ -20502,13 +20507,13 @@ gc_recovery: and r0, r1, r3, lsr r0 ldrb r1, [r6, #2930] @ zero_extendqisi2 bl __aeabi_uidiv - ldr r1, [sp, #64] + ldr r1, [sp, #60] uxth ip, r0 ldr r3, [sp, #48] ldr r2, [sp, #52] cmp r1, r3 - bne .L3433 - add r1, sp, #60 + bne .L3436 + add r1, sp, #56 mov r0, r9 str ip, [sp, #48] bl pm_log2phys @@ -20517,62 +20522,62 @@ gc_recovery: mov r0, ip bl ftl_vpn_decrement ldr ip, [sp, #48] - b .L3434 -.L3433: - ldr r2, [sp, #60] + b .L3437 +.L3436: + ldr r2, [sp, #56] cmp r1, r2 addeq r4, r4, #1 -.L3434: - ldr r3, .L3484 +.L3437: + ldr r3, .L3486 add r8, r8, #1 ldr r2, [r3, #568] add r2, r2, ip, asl #2 ldrb r2, [r2, #2] @ zero_extendqisi2 ands r2, r2, #224 - bne .L3427 + bne .L3430 ldr r1, [r6, #576] mov ip, ip, asl #1 ldrh r0, [r1, ip] cmp r0, #0 strneh r2, [r1, ip] @ movhi -.L3427: +.L3430: add r7, r7, #1 - b .L3437 -.L3483: + b .L3440 +.L3485: 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 .L3440 -.L3436: + b .L3443 +.L3439: ldrb r2, [r6, #2938] @ zero_extendqisi2 cmp r2, #0 addne r10, r10, #1 add r10, r10, #1 - b .L3426 -.L3439: - ldr r2, .L3484 + b .L3429 +.L3442: + ldr r2, .L3486 ldrh r3, [r5, #80] ldr r2, [r2, #576] mov r3, r3, asl #1 strh r4, [r2, r3] @ movhi ldrh r0, [r5, #80] bl zftl_insert_data_list -.L3406: - ldr r6, .L3484 +.L3409: + ldr r6, .L3486 ldrh r0, [r5, #80] ldr r2, [r6, #576] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - bne .L3441 + bne .L3444 bl ftl_dump_write_open_sblk -.L3441: +.L3444: ldrh r1, [r5, #80] mov r2, r4 - ldr r0, .L3484+32 + ldr r0, .L3486+28 bl printk mvn r3, #0 strh r3, [r5, #80] @ movhi @@ -20582,9 +20587,9 @@ gc_recovery: ldrh r0, [r3, #130] movw r3, #65535 cmp r0, r3 - beq .L3442 + beq .L3445 bl ftl_free_sblk -.L3442: +.L3445: ldr r2, [r6, #2288] mvn r3, #0 mov r0, #0 @@ -20592,15 +20597,15 @@ gc_recovery: ldr r2, [r6, #580] strh r3, [r2, #130] @ movhi bl ftl_info_flush - b .L3399 -.L3400: + b .L3402 +.L3403: ldrh r3, [r5, #130] cmp r3, r7 - beq .L3399 + beq .L3402 ldr r2, [r8, #2288] ldrh r2, [r2, #126] cmp r2, r3 - bne .L3444 + bne .L3447 bl pm_flush ldr r3, [r8, #580] ldrh r0, [r3, #130] @@ -20610,33 +20615,25 @@ gc_recovery: mov r0, r6 strh r2, [r3, #126] @ movhi bl ftl_info_flush -.L3444: +.L3447: ldr r3, [r8, #580] mvn r2, #0 strh r2, [r3, #130] @ movhi -.L3399: - ldr r3, .L3484+4 - ldr r2, [sp, #68] - ldr r3, [r3] - cmp r2, r3 - beq .L3445 - bl __stack_chk_fail -.L3445: - add sp, sp, #76 +.L3402: + add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3485: +.L3487: .align 2 -.L3484: +.L3486: .word .LANCHOR0 - .word __stack_chk_guard .word .LANCHOR3 .word -178307901 - .word .LC234 - .word .LANCHOR0+2994 .word .LC235 - .word .LANCHOR0+2928 + .word .LANCHOR0+2994 .word .LC236 + .word .LANCHOR0+2928 + .word .LC237 .fnend .size gc_recovery, .-gc_recovery .align 2 @@ -20650,16 +20647,16 @@ zftl_init: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr fp, .L3561 + ldr fp, .L3563 mvn r3, #0 - ldr r4, .L3561+4 + ldr r4, .L3563+4 mov r8, #0 - ldr r2, .L3561+8 + ldr r2, .L3563+8 mov ip, fp - ldr r1, .L3561+12 - ldr r0, .L3561+16 + ldr r1, .L3563+12 + ldr r0, .L3563+16 str r3, [ip, #-2496]! - strb r3, [r2, #-3239] + strb r3, [r2, #-3240] str ip, [sp, #16] str ip, [sp, #4] strb r3, [r4, #2308] @@ -20668,7 +20665,7 @@ zftl_init: strb r8, [r4, #3532] strb r8, [r4, #2285] bl printk - ldr r5, .L3561+20 + ldr r5, .L3563+20 movw r1, #2962 ldrb r3, [r5, #16] @ zero_extendqisi2 ldrh r9, [r5, #14] @@ -20706,29 +20703,29 @@ zftl_init: strh r7, [r1] @ movhi movw r1, #2994 strh ip, [r4, r1] @ movhi -.L3487: +.L3489: cmp r0, ip uxth r1, r8 add r8, r8, #1 movls r0, r0, asl #1 - bls .L3487 -.L3559: + bls .L3489 +.L3561: mul r3, r9, r2 - ldr r0, .L3561+24 + 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 -.L3489: +.L3491: cmp r1, ip uxth lr, r0 add r0, r0, #1 movls r1, r1, asl #1 - bls .L3489 -.L3560: - ldr r1, .L3561+28 + bls .L3491 +.L3562: + ldr r1, .L3563+28 sub lr, lr, #1 mov r0, #1 str r3, [sp, #20] @@ -20737,11 +20734,11 @@ zftl_init: mul r1, r1, r6 mov lr, r0, asl lr mul r8, r6, r8 - ldr fp, .L3561+4 + ldr fp, .L3563+4 mul r9, lr, r1 mov r1, r2 str r8, [r4, #2264] - ldr r8, .L3561+32 + ldr r8, .L3563+32 add ip, r9, #24576 str ip, [r3, #-2492] str ip, [sp, #16] @@ -20750,7 +20747,7 @@ zftl_init: bl __aeabi_uidiv sub r2, r10, #1 mov r1, r10 - ldr r10, .L3561+36 + ldr r10, .L3563+36 str r0, [r4, #2268] add r0, r2, r0, asl #2 bl __aeabi_uidiv @@ -20786,7 +20783,7 @@ zftl_init: mov r6, r2 movls r2, #80 strlsh r2, [fp, r1] @ movhi - ldr r2, .L3561+4 + ldr r2, .L3563+4 mov r1, #2000 cmp r3, #2 strh r1, [r4, lr] @ movhi @@ -20799,11 +20796,11 @@ zftl_init: add r1, r2, #572 mov r0, #32 strh r0, [r1] @ movhi - beq .L3492 + beq .L3494 ldrb r3, [r2, #2944] @ zero_extendqisi2 cmp r3, #0 - beq .L3493 -.L3492: + beq .L3495 +.L3494: movw r2, #3524 mov r0, #150 strh r0, [r4, r2] @ movhi @@ -20811,99 +20808,99 @@ zftl_init: strh r0, [r1] @ movhi mov r2, #64 ldrb r1, [r4] @ zero_extendqisi2 - ldr r3, .L3561+4 + ldr r3, .L3563+4 cmp r1, #0 strh r2, [r8, #-2] @ movhi add r2, r3, #572 - bne .L3495 + 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, .L3561+32 + ldr r3, .L3563+32 strh r2, [r3, #-4] @ movhi - b .L3495 -.L3493: + 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, .L3561+32 + ldrne r3, .L3563+32 strneh r0, [r3, #-2] @ movhi -.L3495: - ldr r3, [r5] - tst r3, #4096 - beq .L3497 - ldr r0, .L3561+40 - mov r1, r9 - bl printk .L3497: - ldr r3, [r5] - tst r3, #4096 - beq .L3498 - ldr r0, .L3561+44 - ldr r1, [r4, #2264] - bl printk -.L3498: ldr r3, [r5] tst r3, #4096 beq .L3499 - ldr r0, .L3561+48 - ldr r1, [r4, #2268] + ldr r0, .L3563+40 + mov r1, r9 bl printk .L3499: ldr r3, [r5] tst r3, #4096 beq .L3500 - ldr r3, [sp, #12] - ldr r0, .L3561+52 - ldr r1, [r3, #-2492] + ldr r0, .L3563+44 + ldr r1, [r4, #2264] bl printk .L3500: ldr r3, [r5] tst r3, #4096 beq .L3501 - ldr r0, .L3561+56 - ldrh r1, [r10, #-8] + ldr r0, .L3563+48 + ldr r1, [r4, #2268] bl printk .L3501: ldr r3, [r5] - ldr r7, .L3561+60 tst r3, #4096 beq .L3502 - ldr r0, .L3561+64 - ldrh r1, [r7, #-4] + 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, .L3561+68 - ldrh r1, [r8] + ldr r0, .L3563+56 + ldrh r1, [r10, #-8] bl printk .L3503: ldr r3, [r5] + ldr r7, .L3563+60 tst r3, #4096 beq .L3504 - movw r3, #2974 - ldr r0, .L3561+72 - ldrh r1, [r4, r3] + ldr r0, .L3563+64 + ldrh r1, [r7, #-4] bl printk .L3504: ldr r3, [r5] tst r3, #4096 beq .L3505 - ldr r0, .L3561+76 - ldrh r1, [r6] + ldr r0, .L3563+68 + ldrh r1, [r8] bl printk .L3505: - ldr r8, .L3561+80 + 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, .L3561+84 + ldr r6, .L3563+84 ldrh r3, [r8] mul r0, r0, r3 bl ftl_malloc @@ -20915,7 +20912,7 @@ zftl_init: bl ftl_malloc ldrb r3, [r4, #2964] @ zero_extendqisi2 ldrh r1, [r6] - ldr r2, .L3561+88 + ldr r2, .L3563+88 mul r1, r3, r1 str r2, [r4, #3512] add r3, r2, r1, asl #3 @@ -20928,10 +20925,10 @@ zftl_init: tst r0, #4096 add r1, r2, r1, asl #2 str r1, [r4, #580] - beq .L3506 - ldr r0, .L3561+92 + beq .L3508 + ldr r0, .L3563+92 bl printk -.L3506: +.L3508: ldrb r3, [r4, #2964] @ zero_extendqisi2 ldrh r6, [r6] ldrh r2, [r8] @@ -20945,26 +20942,26 @@ zftl_init: add r6, r2, r6, asl #2 mov r6, r6, asl #1 add r6, r6, #632 - beq .L3507 - ldr r0, .L3561+96 + beq .L3509 + ldr r0, .L3563+96 mov r1, r6 mov r2, r10 ldrh r3, [r7, #-4] bl printk -.L3507: +.L3509: ldrh r3, [r7, #-4] cmp r10, r3 cmpls r6, r3 movhi r10, #1 movls r10, #0 - bls .L3508 -.L3557: - b .L3557 -.L3508: + bls .L3510 +.L3559: + b .L3559 +.L3510: bl sblk_init bl ftl_info_blk_init cmn r0, #1 - beq .L3510 + beq .L3512 bl ftl_ext_info_init bl gc_init mov r0, #1 @@ -20995,10 +20992,10 @@ zftl_init: bl pm_flush mov r0, #1 bl ftl_total_vpn_update - ldr r3, .L3561+100 + ldr r3, .L3563+100 ldrb r3, [r3, #-2855] @ zero_extendqisi2 cmp r3, #0 - ldrne r3, .L3561+4 + ldrne r3, .L3563+4 ldrne r2, [r3, #2288] ldrne r3, [r2, #68] addne r3, r3, #1 @@ -21008,13 +21005,13 @@ zftl_init: bl ftl_info_flush bl print_ftl_debug_info mov r0, #0 -.L3510: +.L3512: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3562: +.L3564: .align 2 -.L3561: +.L3563: .word .LANCHOR5 .word .LANCHOR0 .word .LANCHOR3 @@ -21025,21 +21022,21 @@ zftl_init: .word 1892352 .word .LANCHOR3-3296 .word .LANCHOR5-2480 - .word .LC237 .word .LC238 .word .LC239 .word .LC240 .word .LC241 - .word .LANCHOR5-2496 .word .LC242 + .word .LANCHOR5-2496 .word .LC243 .word .LC244 .word .LC245 + .word .LC246 .word .LANCHOR0+564 .word .LANCHOR0+2960 .word .LANCHOR4-2792 - .word .LC246 .word .LC247 + .word .LC248 .word .LANCHOR4 .fnend .size zftl_init, .-zftl_init @@ -21053,10 +21050,10 @@ rk_ftl_init: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r0, #68 - ldr r3, .L3579 + ldr r3, .L3581 mov r7, #0 - ldr r4, .L3579+4 - ldr r5, .L3579+8 + ldr r4, .L3581+4 + ldr r5, .L3581+8 ldr r3, [r3] str r7, [r4, #-3284] strb r7, [r5, #-2486] @@ -21064,22 +21061,22 @@ rk_ftl_init: bl ftl_malloc cmp r0, r7 str r0, [r4, #-3280] - bne .L3564 -.L3566: + bne .L3566 +.L3568: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3564: +.L3566: mov r0, #2048 bl ftl_malloc mov r1, r5 str r7, [r1, #-2480]! str r7, [r4, #-3276] str r0, [r5, #-2484] - ldr r0, .L3579+12 + ldr r0, .L3581+12 bl rknand_get_reg_addr ldr r3, [r4, #-3276] cmp r3, #0 - beq .L3566 + beq .L3568 bl rk_nandc_irq_init mov r1, r7 mov r2, r7 @@ -21088,90 +21085,90 @@ rk_ftl_init: bl flash_sram_load_store bl rknand_flash_cs_init ldr r3, [r4, #-3280] - ldr r2, .L3579+16 + ldr r2, .L3581+16 ldr r0, [r4, #-3276] str r2, [r3, #40] - ldr r2, .L3579+20 + ldr r2, .L3581+20 str r2, [r3, #32] - ldr r2, .L3579+24 + ldr r2, .L3581+24 str r2, [r3, #44] - ldr r2, .L3579+28 + ldr r2, .L3581+28 str r2, [r3, #48] - ldr r2, .L3579+32 + ldr r2, .L3581+32 str r2, [r3, #36] - ldr r2, .L3579+36 + ldr r2, .L3581+36 str r2, [r3, #56] - ldr r2, .L3579+40 + ldr r2, .L3581+40 str r2, [r3, #20] - ldr r2, .L3579+44 + ldr r2, .L3581+44 str r2, [r3, #24] - ldr r2, .L3579+48 + ldr r2, .L3581+48 str r2, [r3, #12] - ldr r2, .L3579+52 + ldr r2, .L3581+52 str r2, [r3, #16] - ldr r2, .L3579+56 + ldr r2, .L3581+56 str r2, [r3, #4] - ldr r2, .L3579+60 + ldr r2, .L3581+60 str r2, [r3, #8] - ldr r2, .L3579+64 + ldr r2, .L3581+64 str r2, [r3, #60] - ldr r2, .L3579+68 + ldr r2, .L3581+68 str r2, [r3, #64] - ldr r2, .L3579+72 + ldr r2, .L3581+72 str r2, [r3, #52] - ldr r2, .L3579+76 + ldr r2, .L3581+76 str r2, [r3, #28] bl nand_flash_init subs r7, r0, #0 - bne .L3567 + bne .L3569 bl zftl_init mov r4, r0 bl zftl_proc_debug_init mov r3, #1 strb r3, [r5, #-2486] - b .L3568 -.L3567: + b .L3570 +.L3569: ldr r3, [r4, #-3280] mov r6, r4 - ldr r2, .L3579+80 + ldr r2, .L3581+80 ldr r0, [r4, #-3276] - ldr r5, .L3579+84 + ldr r5, .L3581+84 str r2, [r3, #40] - ldr r2, .L3579+88 + ldr r2, .L3581+88 str r2, [r3, #32] - ldr r2, .L3579+92 + ldr r2, .L3581+92 str r2, [r3, #44] - ldr r2, .L3579+96 + ldr r2, .L3581+96 str r2, [r3, #48] - ldr r2, .L3579+100 + ldr r2, .L3581+100 str r2, [r3, #36] - ldr r2, .L3579+104 + ldr r2, .L3581+104 str r2, [r3, #56] - ldr r2, .L3579+108 + ldr r2, .L3581+108 str r2, [r3, #20] - ldr r2, .L3579+112 + ldr r2, .L3581+112 str r2, [r3, #24] - ldr r2, .L3579+116 + ldr r2, .L3581+116 str r2, [r3, #12] - ldr r2, .L3579+120 + ldr r2, .L3581+120 str r2, [r3, #16] - ldr r2, .L3579+124 + ldr r2, .L3581+124 str r2, [r3, #4] - ldr r2, .L3579+128 + ldr r2, .L3581+128 str r2, [r3, #8] - ldr r2, .L3579+132 + ldr r2, .L3581+132 str r2, [r3, #60] - ldr r2, .L3579+136 + ldr r2, .L3581+136 str r2, [r3, #64] - ldr r2, .L3579+140 + ldr r2, .L3581+140 str r2, [r3, #52] - ldr r2, .L3579+144 + ldr r2, .L3581+144 str r2, [r3, #28] bl FlashInit cmn r7, #2 mov r4, r0 - bne .L3569 - ldr r1, .L3579+148 + bne .L3571 + ldr r1, .L3581+148 mov r2, #32 add r0, r5, #4 bl ftl_memcpy @@ -21179,57 +21176,57 @@ rk_ftl_init: bl flash_lsb_page_tbl_build ldrh r3, [r5, #14] strh r3, [r5, #30] @ movhi -.L3569: - ldr r3, .L3579+152 +.L3571: + ldr r3, .L3581+152 ldr r2, [r3] - ldr r3, .L3579+156 + ldr r3, .L3581+156 cmp r2, r3 - ldr r2, .L3579+160 - bne .L3570 - ldr r3, .L3579+164 + ldr r2, .L3581+160 + bne .L3572 + ldr r3, .L3581+164 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L3571 -.L3570: + bne .L3573 +.L3572: mov r3, #0 strb r3, [r2, #590] strb r3, [r2] -.L3571: - ldr r1, .L3579+168 +.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, .L3579+172 + ldr r1, .L3581+172 ldrb r1, [r1] @ zero_extendqisi2 strb r1, [r2, #660] -.L3572: +.L3574: cmp r0, ip uxth r1, r3 add r3, r3, #1 movls r0, r0, asl #1 - bls .L3572 -.L3578: - ldr r3, .L3579+176 + 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 .L3568 + bne .L3570 bl FtlInit mov r4, r0 -.L3568: +.L3570: mov r1, r4 - ldr r0, .L3579+180 + ldr r0, .L3581+180 bl printk mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3580: +.L3582: .align 2 -.L3579: +.L3581: .word jiffies .word .LANCHOR3 .word .LANCHOR5 @@ -21275,7 +21272,7 @@ rk_ftl_init: .word gNandFlashIDBEccBits .word gNandFlashEccBits .word .LANCHOR0+2928 - .word .LC248 + .word .LC249 .fnend .size rk_ftl_init, .-rk_ftl_init .align 2 @@ -21283,110 +21280,104 @@ rk_ftl_init: .type gc_update_l2p_map_new, %function gc_update_l2p_map_new: .fnstart - @ args = 0, pretend = 0, frame = 32 + @ 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 #36 - sub sp, sp, #36 - ldr r6, .L3618 - ldr r5, .L3618+4 - ldr r3, [r6] - ldr r4, [r5, #580] - str r3, [sp, #28] movw r3, #2962 - ldrh r3, [r5, r3] - ldrb r2, [r4, #89] @ zero_extendqisi2 + ldr r4, .L3619 + .pad #28 + sub sp, sp, #28 + ldr r5, [r4, #580] + ldrh r3, [r4, r3] + ldrb r2, [r5, #89] @ zero_extendqisi2 mul r3, r2, r3 - str r3, [sp] + str r3, [sp, #4] bl timer_get_time - ldr r3, .L3618+8 + ldr r3, .L3619+4 ldr r3, [r3] tst r3, #256 - str r6, [sp, #12] - beq .L3582 - ldr r0, .L3618+12 - ldrh r1, [r4, #80] + beq .L3584 + ldr r0, .L3619+8 + ldrh r1, [r5, #80] bl printk -.L3582: - ldrh r3, [r4, #80] - mov r6, #0 - ldr r2, [r5, #576] - mov r5, r6 - ldr r8, .L3618+16 +.L3584: + ldrh r3, [r5, #80] + mov r7, #0 + ldr r2, [r4, #576] + mov r6, r7 + ldr r9, .L3619+12 mov r3, r3, asl #1 - ldr r1, [sp] + ldr r1, [sp, #4] sub r1, r1, #1 strh r1, [r2, r3] @ movhi -.L3583: - ldr r3, [sp] - cmp r5, r3 - beq .L3617 - ldr r3, [r8, #-3316] - mov r7, r5, asl #2 - ldr r9, [r3, r5, asl #2] - cmn r9, #1 - beq .L3584 - ldr r3, .L3618+4 - mov r0, r9 - ldrb r1, [r3, #2260] @ zero_extendqisi2 +.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 mov r1, r1, asl #7 bl __aeabi_uidiv uxth r3, r0 - str r3, [sp, #8] - ldr r3, .L3618+8 + str r3, [sp, #12] + ldr r3, .L3619+4 ldr r3, [r3] tst r3, #256 - beq .L3585 - ldr r0, .L3618+20 - mov r2, r9 - ldr r1, [sp, #8] - mov r3, r5 + beq .L3587 + ldr r0, .L3619+16 + mov r2, r10 + ldr r1, [sp, #12] + mov r3, r6 bl printk -.L3585: - ldr r10, .L3618+4 - str r5, [sp, #4] -.L3591: - ldr r3, [r8, #-3316] - ldr r9, [r3, r7] - cmn r9, #1 - beq .L3586 - ldrb r1, [r10, #2260] @ zero_extendqisi2 - mov r0, r9 +.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 mov r1, r1, asl #7 bl __aeabi_uidiv - ldr r3, [sp, #8] + ldr r3, [sp, #12] uxth r0, r0 cmp r0, r3 - bne .L3586 - ldr r3, [r8, #-3312] - mov r0, r9 - ldr fp, [r3, r7] + bne .L3588 + ldr r3, [r9, #-3312] + mov r0, r10 + ldr fp, [r3, r8] bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #24] - bne .L3587 - mov r0, r9 - add r1, sp, #24 + str r0, [sp, #20] + bne .L3589 + mov r0, r10 + add r1, sp, #20 mov r2, #0 bl pm_log2phys -.L3587: - ldr r3, [sp, #24] +.L3589: + ldr r3, [sp, #20] cmp r3, fp - bne .L3588 - ldr r3, .L3618+16 - add r1, sp, #32 + bne .L3590 + ldr r3, .L3619+12 + add r1, sp, #24 mov r2, #1 - mov r0, r9 - add r6, r6, #1 + mov r0, r10 + add r7, r7, #1 ldr r3, [r3, #-3308] - ldr r3, [r3, r7] - str r3, [r1, #-12]! + ldr r3, [r3, r8] + str r3, [r1, #-8]! bl pm_log2phys - ldr r3, .L3618+24 - ldrb r1, [r10, #2930] @ zero_extendqisi2 + ldr r3, .L3619+20 + ldrb r1, [r4, #2930] @ zero_extendqisi2 ldrh r0, [r3] - ldrb r3, [r10, #676] @ zero_extendqisi2 + ldrb r3, [r4, #676] @ zero_extendqisi2 mov fp, fp, lsr r0 rsb r3, r3, #24 rsb r3, r0, r3 @@ -21394,91 +21385,82 @@ gc_update_l2p_map_new: bic r0, fp, r0, asl r3 bl __aeabi_uidiv uxth r0, r0 - b .L3616 -.L3588: - ldr r2, .L3618+8 + b .L3617 +.L3590: + ldr r2, .L3619+4 ldr r2, [r2] tst r2, #256 - beq .L3590 - ldr r0, .L3618+28 - mov r1, r9 + beq .L3592 + ldr r0, .L3619+24 + mov r1, r10 mov r2, fp bl printk -.L3590: - ldrh r0, [r4, #80] -.L3616: - bl ftl_vpn_decrement - ldr r3, [r8, #-3316] - mvn r2, #0 - str r2, [r3, r7] - bl timer_get_time -.L3586: - ldr r3, [sp, #4] - add r7, r7, #4 - ldr r2, [sp] - add r3, r3, #1 - str r3, [sp, #4] - cmp r3, r2 - bne .L3591 -.L3584: - add r5, r5, #1 - b .L3583 +.L3592: + ldrh r0, [r5, #80] .L3617: - ldr r3, .L3618+8 - ldr r5, .L3618+4 + 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 + ldr r2, [sp, #4] + 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] tst r3, #256 - beq .L3593 - ldrh r3, [r4, #80] - ldr r1, [r5, #580] - ldr r2, [r5, #576] + beq .L3595 + ldrh r3, [r5, #80] + ldr r1, [r4, #580] + ldr r2, [r4, #576] mov r3, r3, asl #1 - ldr r0, .L3618+32 + ldr r0, .L3619+28 ldrh r1, [r1, #80] ldrh r2, [r2, r3] - mov r3, r6 + mov r3, r7 bl printk -.L3593: - ldrh r3, [r4, #80] - ldr r2, [r5, #576] +.L3595: + ldrh r3, [r5, #80] + ldr r2, [r4, #576] mov r3, r3, asl #1 ldrh r3, [r2, r3] - cmp r3, r6 - beq .L3594 - ldr r1, .L3618+36 + cmp r3, r7 + beq .L3596 + ldr r1, .L3619+32 movw r2, #749 - ldr r0, .L3618+40 + ldr r0, .L3619+36 bl printk bl dump_stack -.L3594: - ldrh r3, [r4, #80] - ldr r2, [r5, #576] +.L3596: + ldrh r3, [r5, #80] + ldr r2, [r4, #576] mov r3, r3, asl #1 - strh r6, [r2, r3] @ movhi - ldrh r0, [r4, #80] + strh r7, [r2, r3] @ movhi + ldrh r0, [r5, #80] bl zftl_insert_data_list - ldr r3, [sp, #12] - ldr r2, [sp, #28] - ldr r3, [r3] - cmp r2, r3 - beq .L3595 - bl __stack_chk_fail -.L3595: - add sp, sp, #36 + add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3619: +.L3620: .align 2 -.L3618: - .word __stack_chk_guard +.L3619: .word .LANCHOR0 .word .LANCHOR2 - .word .LC249 - .word .LANCHOR3 .word .LC250 - .word .LANCHOR0+2928 + .word .LANCHOR3 .word .LC251 + .word .LANCHOR0+2928 .word .LC252 + .word .LC253 .word .LANCHOR1+1992 .word .LC0 .fnend @@ -21488,104 +21470,98 @@ 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 = 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} + 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 r6, .L3651 + .pad #12 mov r1, #0 - ldr r5, .L3651+4 - mov lr, r1 - ldr r4, .L3651+8 - movw r0, #65535 - ldr r3, [r6] - ldrb ip, [r5, #2964] @ zero_extendqisi2 - str r3, [sp, #12] + 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 add r2, r4, r3, asl #1 - ldrh r7, [r2, #36] + ldrh r6, [r2, #36] ldrh r2, [r4, #2] -.L3621: - cmp r7, r0 +.L3622: + cmp r6, ip bne .L3649 add r3, r3, #1 uxtb r3, r3 - cmp r3, ip + cmp r3, lr addeq r2, r2, #1 moveq r3, #0 - moveq lr, #1 + moveq r0, #1 add r1, r4, r3, asl #1 uxtheq r2, r2 - ldrh r7, [r1, #36] + ldrh r6, [r1, #36] mov r1, #1 - b .L3621 + b .L3622 .L3649: + cmp r0, #0 mov r0, #1 - cmp lr, #0 strneh r2, [r4, #2] @ movhi cmp r1, #0 strneb r3, [r5, #2316] bl buf_alloc - ldr r8, .L3651+4 - mov fp, #1 - ldr r9, .L3651+12 - mov r10, r0 -.L3626: - ldrb r1, [r5, #2318] @ zero_extendqisi2 - ldr r2, .L3651+4 - cmp fp, r1 + 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, [r9] - cmp r1, #2 - mul r3, r3, r7 - beq .L3627 - cmp r1, #3 + 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, [r8, #684] @ zero_extendqisi2 + ldrb r2, [r7, #684] @ zero_extendqisi2 cmp r2, #0 ldreqh r2, [r4, #2] addeq r3, r3, r2 - orreq r3, r3, fp, asl #24 + orreq r3, r3, r10, asl #24 beq .L3648 -.L3627: +.L3628: ldrh r2, [r4, #2] add r3, r3, r2, asl #1 ldrb r2, [r5, #2937] @ zero_extendqisi2 sub r3, r3, #1 - add r3, r3, fp + add r3, r3, r10 orr r3, r3, r2, asl #24 .L3648: - str r3, [r10, #24] - mov r0, r10 + str r3, [r9, #24] + mov r0, r9 mov r1, #1 bl sblk_read_page - ldr r3, [r10, #36] + ldr r3, [r9, #36] cmp r3, #512 cmnne r3, #1 - beq .L3632 - ldr r3, [r10, #12] - ldr r3, [r3, #4] - mov r0, r3 - str r3, [sp, #4] + beq .L3633 + ldr r3, [r9, #12] + ldr fp, [r3, #4] + mov r0, fp bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #8] - ldr r3, [sp, #4] - bne .L3633 - ldr r2, [r5, #2268] - cmp r3, r2 - bcs .L3633 - mov r0, r3 - add r1, sp, #8 + str r0, [sp, #4] + bne .L3634 + ldr r3, [r5, #2268] + cmp fp, r3 + bcs .L3634 + mov r0, fp + add r1, sp, #4 mov r2, #0 bl pm_log2phys -.L3633: - ldr r3, [r10, #24] - ldr r2, [sp, #8] +.L3634: + ldr r3, [r9, #24] + ldr r2, [sp, #4] cmp r3, r2 ldreqh r1, [r4, #20] ldreq r2, [r5, #2932] @@ -21593,41 +21569,32 @@ gc_scan_src_blk_one_page: ldreqh r3, [r4, #20] addeq r3, r3, #1 streqh r3, [r4, #20] @ movhi -.L3632: +.L3633: ldrh r3, [r4, #22] - add fp, fp, #1 + add r10, r10, #1 add r3, r3, #1 strh r3, [r4, #22] @ movhi - b .L3626 + b .L3627 .L3650: - mov r0, r10 - str r2, [sp, #4] + mov r0, r9 bl zbuf_free - ldr r2, [sp, #4] - ldrb r3, [r2, #2316] @ zero_extendqisi2 - ldrb r1, [r2, #2964] @ zero_extendqisi2 + ldrb r3, [fp, #2316] @ zero_extendqisi2 + ldrb r2, [fp, #2964] @ zero_extendqisi2 add r3, r3, #1 uxtb r3, r3 - strb r3, [r2, #2316] - cmp r1, r3 + strb r3, [fp, #2316] + cmp r2, r3 ldreqh r3, [r4, #2] addeq r3, r3, #1 streqh r3, [r4, #2] @ movhi moveq r3, #0 - streqb r3, [r2, #2316] - ldr r2, [sp, #12] - ldr r3, [r6] - cmp r2, r3 - beq .L3637 - bl __stack_chk_fail -.L3637: - add sp, sp, #20 + streqb r3, [fp, #2316] + add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} .L3652: .align 2 .L3651: - .word __stack_chk_guard .word .LANCHOR0 .word .LANCHOR0+2312 .word .LANCHOR0+2994 @@ -21638,25 +21605,21 @@ gc_scan_src_blk_one_page: .type gc_scan_src_blk, %function gc_scan_src_blk: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3689 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 r2, [r3] - ldr r4, .L3689+4 - str r3, [sp, #8] - str r2, [sp, #20] - movw r2, #2312 - ldrh r1, [r4, r2] - movw r2, #65535 - cmp r1, r2 + movw r3, #2312 + ldr r4, .L3688 + .pad #20 + sub sp, sp, #20 + ldrh r2, [r4, r3] + movw r3, #65535 + cmp r2, r3 bne .L3654 - ldr r1, .L3689+8 + ldr r1, .L3688+4 movw r2, #1236 - ldr r0, .L3689+12 + ldr r0, .L3688+8 bl printk bl dump_stack .L3654: @@ -21666,12 +21629,12 @@ gc_scan_src_blk: cmp r1, r3 moveq r0, #0 beq .L3655 - ldr r3, .L3689+16 + ldr r3, .L3688+12 ldr r3, [r3] tst r3, #256 beq .L3656 - ldr r3, .L3689+4 - ldr r0, .L3689+20 + ldr r3, .L3688 + ldr r0, .L3688+16 ldr r2, [r3, #576] mov r3, r1, asl #1 ldrh r2, [r2, r3] @@ -21680,10 +21643,10 @@ gc_scan_src_blk: movw r7, #2312 bl timer_get_time ldrh r0, [r4, r7] - ldr r1, .L3689+24 + ldr r1, .L3688+20 bl ftl_get_blk_list_in_sblk - ldr r6, .L3689+4 - ldr r5, .L3689+28 + ldr r6, .L3688 + ldr r5, .L3688+24 uxtb r0, r0 strb r0, [r4, #2317] cmp r0, #0 @@ -21720,9 +21683,9 @@ gc_scan_src_blk: ldrh r3, [r2, r3] cmp r3, #0 beq .L3661 - ldr r1, .L3689+8 + ldr r1, .L3688+4 movw r2, #1256 - ldr r0, .L3689+12 + ldr r0, .L3688+8 bl printk bl dump_stack .L3661: @@ -21745,14 +21708,14 @@ gc_scan_src_blk: ldrh r6, [r0, #34] cmp r6, r3 bne .L3662 - ldr r1, .L3689+8 + ldr r1, .L3688+4 mov r2, #1264 - ldr r0, .L3689+12 + ldr r0, .L3688+8 bl printk bl dump_stack .L3662: movw r3, #2994 - ldr r2, .L3689+4 + ldr r2, .L3688 ldrh r3, [r4, r3] add r8, r2, #2960 mul r6, r3, r6 @@ -21778,7 +21741,7 @@ gc_scan_src_blk: subeq r7, r7, #1 uxtheq r7, r7 cmp r3, #0 - ldrne r2, .L3689+4 + ldrne r2, .L3688 movwne r3, #2962 ldrneh r7, [r2, r3] subne r7, r7, #1 @@ -21794,7 +21757,7 @@ gc_scan_src_blk: strh r10, [r5, #24] @ movhi bl buf_alloc mov r1, #1 - ldr r9, .L3689+4 + ldr r9, .L3688 str r6, [r0, #24] mov r7, r0 bl sblk_read_page @@ -21812,18 +21775,18 @@ gc_scan_src_blk: cmpne r6, #512 moveq r6, #1 movne r6, #0 - beq .L3687 + beq .L3686 ldr r3, [r7, #12] ldr r2, [r3] - ldr r3, .L3689+32 + ldr r3, .L3688+28 cmp r2, r3 beq .L3666 - ldr r1, .L3689+8 + ldr r1, .L3688+4 movw r2, #1299 - ldr r0, .L3689+12 + ldr r0, .L3688+8 bl printk bl dump_stack -.L3687: +.L3686: mov r0, r7 bl zbuf_free mvn r0, #0 @@ -21832,35 +21795,35 @@ gc_scan_src_blk: ldrh r3, [r8] ldrb r2, [r9, #2964] @ zero_extendqisi2 ldr r8, [r7, #4] - ldr r10, .L3689+28 + 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, #4] + str r3, [sp] .L3667: - ldr r3, [sp, #4] + ldr r3, [sp] cmp r6, r3 - bge .L3688 + bge .L3687 ldr r0, [r8, #4]! cmn r0, #1 beq .L3669 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #16] + str r0, [sp, #12] bne .L3670 ldr r0, [r8] - add r1, sp, #16 + add r1, sp, #12 mov r2, #0 bl pm_log2phys .L3670: - ldr r3, .L3689+36 - ldr r2, [sp, #16] + 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, #12] + str r2, [sp, #4] rsb r3, r3, #24 rsb r3, r0, r3 mov r3, fp, asl r3 @@ -21869,7 +21832,7 @@ gc_scan_src_blk: bl __aeabi_uidiv ldrh r3, [r5] cmp r0, r3 - ldr r2, [sp, #12] + ldr r2, [sp, #4] ldreq r3, [r9, #2932] ldreqh r1, [r10, #20] streq r2, [r3, r1, asl #2] @@ -21880,7 +21843,7 @@ gc_scan_src_blk: bl timer_get_time add r6, r6, #1 b .L3667 -.L3688: +.L3687: mov r0, r7 bl zbuf_free movw r3, #2312 @@ -21891,7 +21854,7 @@ gc_scan_src_blk: ldrh r3, [r5, #20] cmp r2, r3 beq .L3673 - ldr r0, .L3689+40 + ldr r0, .L3688+36 bl printk .L3673: movw r3, #2312 @@ -21904,30 +21867,22 @@ gc_scan_src_blk: ldrh r0, [r5, #20] strh r3, [r5, #24] @ movhi .L3655: - ldr r3, [sp, #8] - ldr r2, [sp, #20] - ldr r3, [r3] - cmp r2, r3 - beq .L3674 - bl __stack_chk_fail -.L3674: - add sp, sp, #28 + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3690: - .align 2 .L3689: - .word __stack_chk_guard + .align 2 +.L3688: .word .LANCHOR0 .word .LANCHOR1+2016 .word .LC0 .word .LANCHOR2 - .word .LC253 + .word .LC254 .word .LANCHOR0+2348 .word .LANCHOR0+2312 .word -178307901 .word .LANCHOR0+2928 - .word .LC254 + .word .LC255 .fnend .size gc_scan_src_blk, .-gc_scan_src_blk .align 2 @@ -21937,77 +21892,74 @@ gc_scan_static_data: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #12 - ldr r6, .L3709 - ldr r4, .L3709+4 - ldr r3, [r6] - str r3, [sp, #4] + 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] ldr r2, [r3, #544] cmn r2, #1 - beq .L3692 + beq .L3691 mov r5, #11 - mov r7, r4 -.L3693: + mov r6, r4 +.L3692: ldr r3, [r4, #580] - mov r1, sp + add r1, sp, #4 mov r2, #0 ldr r0, [r3, #544] bl pm_log2phys - ldr r3, [sp] + ldr r3, [sp, #4] cmn r3, #1 - beq .L3694 + beq .L3693 mov r0, #1 bl buf_alloc mov r1, #1 - ldr r3, [sp] - mov r8, r0 + ldr r3, [sp, #4] + mov r7, r0 str r3, [r0, #24] bl sblk_read_page - ldr r3, [r8, #36] + ldr r3, [r7, #36] cmp r3, #256 - bne .L3695 - ldr r3, .L3709+8 - mov r9, #1 - ldr r0, [sp] - ldrb r1, [r7, #2930] @ zero_extendqisi2 + bne .L3694 + ldr r3, .L3707+4 + mov r8, #1 + ldr r0, [sp, #4] + ldrb r1, [r6, #2930] @ zero_extendqisi2 ldrh r2, [r3] - ldrb r3, [r7, #676] @ zero_extendqisi2 + ldrb r3, [r6, #676] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r2, r3 - mov r3, r9, asl r3 + mov r3, r8, asl r3 sub r3, r3, #1 and r0, r3, r0, lsr r2 bl __aeabi_uidiv - mov r1, r9 + mov r1, r8 mov r2, #0 uxth r0, r0 bl gc_add_sblk -.L3695: - ldr r2, [r8, #12] +.L3694: + ldr r2, [r7, #12] ldr r3, [r4, #580] ldr r2, [r2, #4] ldr r3, [r3, #544] cmp r2, r3 - beq .L3696 - ldr r1, .L3709+12 + beq .L3695 + ldr r1, .L3707+8 movw r2, #1738 - ldr r0, .L3709+16 + ldr r0, .L3707+12 bl printk bl dump_stack -.L3696: - mov r0, r8 +.L3695: + mov r0, r7 bl zbuf_free -.L3694: +.L3693: ldr r3, [r4, #580] ldr r1, [r4, #2268] ldr r2, [r3, #544] add r2, r2, #1 str r2, [r3, #544] cmp r2, r1 - bcc .L3697 + bcc .L3696 mvn r2, #0 str r2, [r3, #544] ldr r2, [r3, #548] @@ -22018,51 +21970,44 @@ gc_scan_static_data: bl ftl_ext_info_flush mov r0, #0 bl ftl_info_flush - b .L3691 -.L3697: - ldr r3, [sp] + b .L3690 +.L3696: + ldr r3, [sp, #4] cmn r3, #1 - bne .L3691 + bne .L3690 sub r5, r5, #1 uxth r5, r5 cmp r5, #0 - bne .L3693 - b .L3691 -.L3692: + bne .L3692 + b .L3690 +.L3691: ldr r2, [r3, #536] ldr r1, [r3, #12] add r2, r2, #12910592 add r2, r2, #49408 cmp r1, r2 - bhi .L3702 + bhi .L3701 ldr r0, [r4, #2288] ldr r2, [r3, #540] ldr r0, [r0, #44] add r2, r2, #4992 add r2, r2, #8 cmp r0, r2 - bls .L3691 -.L3702: + bls .L3690 +.L3701: ldr r2, [r4, #2288] ldr r2, [r2, #44] str r1, [r3, #536] str r2, [r3, #540] mov r2, #0 str r2, [r3, #544] -.L3691: - ldr r2, [sp, #4] - ldr r3, [r6] - cmp r2, r3 - beq .L3703 - bl __stack_chk_fail -.L3703: - add sp, sp, #12 +.L3690: + add sp, sp, #8 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3710: + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L3708: .align 2 -.L3709: - .word __stack_chk_guard +.L3707: .word .LANCHOR0 .word .LANCHOR0+2928 .word .LANCHOR1+2032 @@ -22080,55 +22025,51 @@ gc_block_vpn_scan: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r3, .L3750 - ldr r4, .L3750+4 - ldr r2, [r3] + ldr r4, .L3747 add r5, r4, #564 - ldr r1, [r4, #580] - str r3, [sp, #12] - str r2, [sp, #36] - ldr r1, [r1, #608] - ldrh r2, [r5] - cmp r1, r2 - bcs .L3711 + ldr r2, [r4, #580] + ldrh r3, [r5] + ldr r2, [r2, #608] + cmp r2, r3 + bcs .L3709 bl timer_get_time ldr r6, [r4, #580] ldr r3, [r6, #604] add r3, r3, #29952 add r3, r3, #48 cmp r0, r3 - bls .L3711 + bls .L3709 bl timer_get_time ldr r3, [r4, #580] ldrh r1, [r5] str r0, [r6, #604] ldr r2, [r3, #600] cmp r2, r1 - bcs .L3715 + bcs .L3713 ldr r1, [r4, #2288] ldrh r1, [r1, #134] cmp r2, r1 - bcs .L3716 -.L3715: + bcs .L3714 +.L3713: ldr r2, [r4, #2288] ldrh r2, [r2, #134] str r2, [r3, #600] -.L3716: +.L3714: ldr r5, [r3, #600] movw r3, #65535 uxth r5, r5 cmp r5, r3 - bne .L3717 - ldr r1, .L3750+8 + bne .L3715 + ldr r1, .L3747+4 movw r2, #2035 - ldr r0, .L3750+12 + ldr r0, .L3747+8 bl printk bl dump_stack -.L3717: +.L3715: ldr r3, [r4, #580] mov r0, r5 - add r1, sp, #20 - ldr r6, .L3750+4 + add r1, sp, #24 + ldr r6, .L3747 ldr r2, [r3, #600] add r2, r2, #1 str r2, [r3, #600] @@ -22138,7 +22079,7 @@ gc_block_vpn_scan: bl ftl_get_blk_list_in_sblk uxth r0, r0 cmp r0, #0 - beq .L3711 + beq .L3709 ldr r8, [r6, #568] add r8, r8, r5, asl #2 ldrb r3, [r8, #2] @ zero_extendqisi2 @@ -22149,75 +22090,75 @@ gc_block_vpn_scan: cmp r2, #224 orreq r3, r3, #1 cmp r3, #0 - bne .L3718 + bne .L3716 ldr r3, [r6, #580] ldrh r1, [r3, #16] cmp r1, r5 - beq .L3718 + beq .L3716 ldrh r1, [r3, #48] cmp r1, r5 - beq .L3718 + beq .L3716 ldrh r3, [r3, #80] cmp r3, r5 - bne .L3719 -.L3718: + bne .L3717 +.L3716: cmp r2, #0 - bne .L3711 + bne .L3709 ldr r3, [r4, #576] mov r5, r5, asl #1 ldrh r3, [r3, r5] cmp r3, #0 - beq .L3720 - ldr r1, .L3750+8 + beq .L3718 + ldr r1, .L3747+4 movw r2, #2051 - ldr r0, .L3750+12 + ldr r0, .L3747+8 bl printk bl dump_stack -.L3720: +.L3718: ldr r3, [r4, #576] mov r2, #0 strh r2, [r3, r5] @ movhi - b .L3711 -.L3719: + b .L3709 +.L3717: add r3, sp, #40 add r0, r3, r0, asl #1 movw r3, #65535 - ldrh r9, [r0, #-22] - cmp r9, r3 - bne .L3722 - ldr r1, .L3750+8 + ldrh r10, [r0, #-18] + cmp r10, r3 + bne .L3720 + ldr r1, .L3747+4 movw r2, #2057 - ldr r0, .L3750+12 + ldr r0, .L3747+8 bl printk bl dump_stack -.L3722: - ldr r2, .L3750+4 +.L3720: + ldr r1, .L3747 movw r3, #2994 - add r10, r2, #2960 - ldrh fp, [r10] - sub r6, fp, #1 - uxth r7, r6 + ldrb r2, [r8, #2] @ zero_extendqisi2 + add fp, r1, #2960 + ldrh r6, [fp] + sub r9, r6, #1 ldrh r6, [r4, r3] - mul r6, r6, r9 - ldrb r9, [r8, #2] @ zero_extendqisi2 - and fp, r9, #224 - cmp fp, #160 - movne fp, #1 - bne .L3723 - ldrb r3, [r2, #2937] @ zero_extendqisi2 + 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 cmp r3, #2 - uxth fp, r3 + uxth r10, r3 orr r6, r6, r3, asl #24 movweq r3, #2962 - ldreqh r7, [r2, r3] + ldreqh r7, [r1, r3] subeq r7, r7, #1 uxtheq r7, r7 -.L3723: +.L3721: mov r0, #1 orr r6, r7, r6 bl buf_alloc mov r1, #1 - ldr r9, .L3750+4 + ldr r9, .L3747 str r6, [r0, #24] mov r7, r0 bl sblk_read_page @@ -22237,51 +22178,51 @@ gc_block_vpn_scan: moveq r0, r5 moveq r1, #1 moveq r2, #0 - beq .L3748 + beq .L3745 ldr r3, [r7, #12] ldr r1, [r3] - ldr r3, .L3750+16 + ldr r3, .L3747+12 cmp r1, r3 - beq .L3725 + beq .L3723 mov r0, r5 mov r1, #1 -.L3748: +.L3745: bl gc_add_sblk mov r0, r7 bl zbuf_free - b .L3711 -.L3725: - ldrh r3, [r10] + b .L3709 +.L3723: + ldrb r3, [r9, #2964] @ zero_extendqisi2 add r9, r9, #2928 - ldrb r6, [r9, #36] @ zero_extendqisi2 - ldr r10, [r7, #4] - smulbb r6, r6, r3 - smulbb r6, r6, fp - mov fp, r2 - uxth r3, r6 + ldrh fp, [fp] mov r6, r2 - str r3, [sp, #8] -.L3726: - ldr r3, [sp, #8] + smulbb fp, r3, fp + smulbb fp, fp, r10 + ldr r10, [r7, #4] + uxth r3, fp + mov fp, r2 + str r3, [sp, #12] +.L3724: + ldr r3, [sp, #12] cmp fp, r3 - bge .L3749 + bge .L3746 ldr r0, [r10, fp, asl #2] cmn r0, #1 - beq .L3727 + beq .L3725 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #16] - bne .L3728 + str r0, [sp, #20] + bne .L3726 ldr r0, [r10, fp, asl #2] - add r1, sp, #16 + add r1, sp, #20 mov r2, #0 bl pm_log2phys -.L3728: +.L3726: ldrb r2, [r4, #676] @ zero_extendqisi2 mov r3, #1 ldrh r1, [r9] rsb r2, r2, #24 - ldr r0, [sp, #16] + ldr r0, [sp, #20] rsb r2, r1, r2 mov r2, r3, asl r2 sub r2, r2, #1 @@ -22291,56 +22232,48 @@ gc_block_vpn_scan: cmp r0, r5 addeq r6, r6, #1 uxtheq r6, r6 -.L3727: +.L3725: add fp, fp, #1 - b .L3726 -.L3749: + b .L3724 +.L3746: mov r0, r7 mov r7, r5, asl #1 bl zbuf_free - ldr r3, .L3750+20 + ldr r3, .L3747+16 ldr r3, [r3] tst r3, #256 - beq .L3730 + beq .L3728 ldr r3, [r4, #576] mov r1, r5 - ldr r0, .L3750+24 + ldr r0, .L3747+20 ldrh r2, [r3, r7] ldrb r3, [r8, #2] @ zero_extendqisi2 mov r3, r3, lsr #5 str r3, [sp] mov r3, r6 bl printk -.L3730: +.L3728: ldr r3, [r4, #576] cmp r6, #31 strh r6, [r3, r7] @ movhi - bhi .L3711 + bhi .L3709 mov r0, r5 mov r1, #1 mov r2, #0 bl gc_add_sblk -.L3711: - ldr r3, [sp, #12] - ldr r2, [sp, #36] - ldr r3, [r3] - cmp r2, r3 - beq .L3733 - bl __stack_chk_fail -.L3733: +.L3709: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3751: +.L3748: .align 2 -.L3750: - .word __stack_chk_guard +.L3747: .word .LANCHOR0 .word .LANCHOR1+2052 .word .LC0 .word -178307901 .word .LANCHOR2 - .word .LC255 + .word .LC256 .fnend .size gc_block_vpn_scan, .-gc_block_vpn_scan .align 2 @@ -22350,18 +22283,15 @@ ftl_sblk_dump: .fnstart @ args = 0, pretend = 0, frame = 88 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3789 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 .pad #132 sub sp, sp, #132 - ldr r6, .L3789+4 - mov fp, r0, asl #2 - ldr r3, [r3] mov r7, r0 str r1, [sp, #64] ldr r2, [r6, #568] - str r3, [sp, #124] add r3, r2, fp ldrh r1, [r2, fp] ldrb r3, [r3, #2] @ zero_extendqisi2 @@ -22370,24 +22300,24 @@ ftl_sblk_dump: ldr r10, [r2, r0, asl #2] mov r1, r7 mov r2, r3, lsr #5 - ldr r0, .L3789+8 + ldr r0, .L3785+4 ubfx r3, r3, #3, #2 ubfx r4, r10, #11, #8 str r4, [sp, #4] bl printk movw r3, #65535 cmp r7, r3 - beq .L3775 + beq .L3771 add r3, r6, #564 ldrh r3, [r3] cmp r3, r7 - bls .L3775 + bls .L3771 ldr r3, [r6, #568] - add r1, sp, #108 + add r1, sp, #112 mov r0, r7 - strh r7, [sp, #92] @ movhi + strh r7, [sp, #96] @ movhi add r3, r3, fp - ldr r4, .L3789+12 + ldr r4, .L3785+8 mov r5, #0 ldrb r3, [r3, #2] @ zero_extendqisi2 sub r9, r4, #2960 @@ -22399,18 +22329,18 @@ ftl_sblk_dump: ldrh r3, [r4] mov r1, r7 uxtb r0, r0 - strh r5, [sp, #94] @ movhi - strb r0, [sp, #101] + strh r5, [sp, #98] @ movhi + strb r0, [sp, #105] smulbb r3, r3, r0 - strb r5, [sp, #97] - strh r5, [sp, #102] @ movhi - strh r3, [sp, #98] @ movhi + strb r5, [sp, #101] + strh r5, [sp, #106] @ movhi + strh r3, [sp, #102] @ movhi ldr r3, [r6, #568] add r3, r3, fp ldrb r2, [r3, #2] @ zero_extendqisi2 mov r3, r10 str r0, [sp] - ldr r0, .L3789+16 + ldr r0, .L3785+12 mov r2, r2, lsr #5 bl printk mov r0, #1 @@ -22419,14 +22349,14 @@ ftl_sblk_dump: str r5, [sp, #48] str r5, [sp, #56] str r5, [sp, #44] -.L3755: - ldr r4, .L3789+4 +.L3752: + ldr r4, .L3785 uxth r2, r5 str r2, [sp, #52] add r3, r4, #2960 ldrh r3, [r3] cmp r3, r2 - bls .L3771 + bls .L3768 mov r3, r2, asl #1 add r2, r3, r2 sub r3, r3, #1 @@ -22434,49 +22364,49 @@ ftl_sblk_dump: mov r3, #0 sub r2, r2, #1 str r2, [sp, #68] -.L3787: +.L3783: str r3, [sp, #60] - ldrb r2, [sp, #101] @ zero_extendqisi2 + ldrb r2, [sp, #105] @ zero_extendqisi2 ldrh r3, [sp, #60] cmp r2, r3 - bls .L3769 + bls .L3766 add r3, r3, #8 mov r8, #1 mov r3, r3, asl r8 str r3, [sp, #76] -.L3770: +.L3767: cmp r8, r10 - bhi .L3788 + bhi .L3784 ldr r2, [sp, #76] add r3, sp, #128 add r3, r3, r2 movw r2, #65535 - ldrh r3, [r3, #-36] + ldrh r3, [r3, #-32] cmp r3, r2 - beq .L3756 - ldr r2, .L3789+20 + beq .L3753 + ldr r2, .L3785+16 cmp r10, #3 ldrh r4, [r2] mul r4, r4, r3 - bne .L3757 + 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 .L3759 - b .L3786 -.L3757: + beq .L3756 + b .L3782 +.L3754: cmp r10, #2 uxtahne r4, r4, r5 - bne .L3759 + bne .L3756 ldr r2, [sp, #72] -.L3786: +.L3782: add r4, r4, r2 ldrb r2, [r9, #2937] @ zero_extendqisi2 add r4, r4, r8 orr r4, r4, r2, asl #24 -.L3759: +.L3756: mov r1, #1 str r4, [r6, #24] mov r0, r6 @@ -22495,7 +22425,7 @@ ftl_sblk_dump: ldr r0, [r1, #8] str r0, [sp, #12] ldr r1, [r1, #12] - ldr r0, .L3789+24 + ldr r0, .L3785+20 str r1, [sp, #16] ldr r1, [r2] str r1, [sp, #20] @@ -22523,36 +22453,36 @@ ftl_sblk_dump: cmpne r2, #32 moveq r2, #1 movne r2, #0 - beq .L3756 + beq .L3753 ldr r3, [r6, #12] str r2, [sp, #80] ldr r0, [r3, #4] bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #88] + str r0, [sp, #92] ldr r2, [sp, #80] - bne .L3762 + bne .L3759 ldr r3, [r6, #12] - add r1, sp, #88 + add r1, sp, #92 ldr r0, [r3, #4] bl pm_log2phys -.L3762: - ldr r3, [sp, #88] +.L3759: + ldr r3, [sp, #92] cmp r3, r4 - bne .L3763 + bne .L3760 ldr r3, [sp, #48] mov r1, r4 - ldr r0, .L3789+28 + ldr r0, .L3785+24 add r3, r3, #1 str r3, [sp, #48] ldr r3, [r6, #12] ldr r2, [r3, #4] ldr r3, [sp, #48] bl printk -.L3763: +.L3760: ldr r3, [sp, #64] cmp r3, #0 - beq .L3765 + beq .L3762 ldr r3, [sp, #44] ldr r2, [sp, #44] mov r4, r3, asl #2 @@ -22561,83 +22491,75 @@ ftl_sblk_dump: ldr r3, [r6, #12] ldr r3, [r3, #4] cmp r3, r2 - beq .L3766 - ldr r3, .L3789+32 + beq .L3763 + ldr r3, .L3785+28 ldr r3, [r3] tst r3, #4096 - beq .L3766 - ldr r0, .L3789+36 + beq .L3763 + ldr r0, .L3785+32 ldr r1, [sp, #44] bl printk -.L3766: +.L3763: ldr r3, [sp, #64] ldr r2, [r6, #12] ldr r3, [r3, r4] ldr r2, [r2, #4] cmp r2, r3 cmnne r3, #1 - beq .L3765 - ldr r1, .L3789+40 - movw r2, #1383 - ldr r0, .L3789+44 + beq .L3762 + ldr r1, .L3785+36 + movw r2, #1393 + ldr r0, .L3785+40 bl printk bl dump_stack -.L3765: +.L3762: ldr r3, [sp, #44] add r3, r3, #1 str r3, [sp, #44] -.L3756: +.L3753: add r8, r8, #1 uxth r8, r8 - b .L3770 -.L3788: + b .L3767 +.L3784: ldr r3, [sp, #60] add r3, r3, #1 - b .L3787 -.L3769: + b .L3783 +.L3766: add r5, r5, #1 - b .L3755 -.L3771: + b .L3752 +.L3768: mov r0, r6 bl zbuf_free ldr r2, [r4, #576] mov r3, r7, asl #1 - ldr r0, .L3789+48 + ldr r0, .L3785+44 mov r1, r7 ldrh r2, [r2, r3] ldr r3, [sp, #48] bl printk ldr r0, [sp, #56] - b .L3753 -.L3775: + b .L3750 +.L3771: mov r0, #0 -.L3753: - ldr r3, .L3789 - ldr r2, [sp, #124] - ldr r3, [r3] - cmp r2, r3 - beq .L3773 - bl __stack_chk_fail -.L3773: +.L3750: add sp, sp, #132 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3790: +.L3786: .align 2 -.L3789: - .word __stack_chk_guard +.L3785: .word .LANCHOR0 - .word .LC256 - .word .LANCHOR0+2960 .word .LC257 + .word .LANCHOR0+2960 + .word .LC258 .word .LANCHOR0+2994 .word .LC201 - .word .LC258 - .word .LANCHOR2 .word .LC259 + .word .LANCHOR2 + .word .LC260 .word .LANCHOR1+2072 .word .LC0 - .word .LC260 + .word .LC261 .fnend .size ftl_sblk_dump, .-ftl_sblk_dump .align 2 @@ -22650,40 +22572,37 @@ 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, .L3853 + ldr r3, .L3848 .pad #76 sub sp, sp, #76 mov r9, r0 mov r4, r1 mov r8, r2 ldr r3, [r3] - str r3, [sp, #68] - ldr r3, .L3853+4 - ldr r3, [r3] tst r3, #4096 - beq .L3792 - ldr r0, .L3853+8 + beq .L3788 + ldr r0, .L3848+4 mov r1, r9 mov r2, r4 mov r3, r8 bl printk -.L3792: +.L3788: cmp r9, #0 - ldreq r3, .L3853+12 + ldreq r3, .L3848+8 ldreq r2, [r3, #520] moveq r3, #24576 - beq .L3794 -.L3793: + beq .L3790 +.L3789: cmp r9, #3 - bhi .L3821 + bhi .L3816 mov r3, r9, asl #13 mov r2, #8192 -.L3794: +.L3790: add r1, r4, r8 cmp r1, r2 - bhi .L3821 + bhi .L3816 add r3, r3, r4 - ldr r4, .L3853+12 + ldr r4, .L3848+8 str r3, [sp, #24] ldr r0, [sp, #24] ldr r2, [r4, #2288] @@ -22709,10 +22628,10 @@ zftl_read: str r3, [sp, #28] mov r3, #0 str r3, [sp, #36] -.L3796: +.L3792: ldr r3, [sp, #28] cmp r3, #0 - beq .L3850 + beq .L3845 ldr r3, [sp, #32] ldrb r1, [r4, #2260] @ zero_extendqisi2 rsb r2, r3, r5 @@ -22724,9 +22643,9 @@ zftl_read: mov r2, r2, lsr #5 mov r3, r3, lsr #5 orrs r10, r3, r2 - beq .L3797 + beq .L3793 cmp r2, #0 - beq .L3798 + beq .L3794 ldr r0, [sp, #24] bl __aeabi_uidivmod uxth r10, r1 @@ -22734,8 +22653,8 @@ zftl_read: uxth r9, r9 cmp r9, r8 uxthhi r9, r8 - b .L3797 -.L3798: + b .L3793 +.L3794: cmp r3, #0 ldrne r3, [sp, #24] movne r10, r2 @@ -22743,16 +22662,16 @@ zftl_read: addne r3, r3, r8 mlsne r1, r5, r1, r3 uxtbne r9, r1 -.L3797: - ldr r2, .L3853+16 +.L3793: + ldr r2, .L3848+12 mov r3, #0 -.L3801: +.L3797: ldr r1, [r2, #20] cmp r1, r5 - bne .L3799 + bne .L3795 ldrb r1, [r2, #2] @ zero_extendqisi2 tst r1, #8 - beq .L3799 + beq .L3795 mov r2, #48 mov r9, r9, asl #9 mla r3, r2, r3, r4 @@ -22762,30 +22681,30 @@ zftl_read: ldr r1, [r3, #728] add r1, r1, r10, asl #9 bl ftl_memcpy - b .L3800 -.L3799: + b .L3796 +.L3795: add r3, r3, #1 add r2, r2, #48 cmp r3, #32 - bne .L3801 + bne .L3797 mov r0, r5 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #64] - bne .L3802 + str r0, [sp, #68] + bne .L3798 mov r0, r5 - add r1, sp, #64 + add r1, sp, #68 mov r2, #0 bl pm_log2phys -.L3802: - ldr r3, [sp, #64] +.L3798: + ldr r3, [sp, #68] cmn r3, #1 moveq r9, #0 - bne .L3851 -.L3804: + bne .L3846 +.L3800: ldrb r3, [r7, #2260] @ zero_extendqisi2 cmp r9, r3 - bcs .L3800 + bcs .L3796 mla r3, r3, r5, r9 ldr r2, [sp, #24] ldr r1, [sp, #40] @@ -22795,25 +22714,25 @@ zftl_read: cmp r3, r1 movcs r2, #0 cmp r2, #0 - beq .L3805 + beq .L3801 mov r0, r6 mov r1, #0 mov r2, #512 add r6, r6, #512 bl ftl_memset -.L3805: +.L3801: add r9, r9, #1 - b .L3804 -.L3851: + b .L3800 +.L3846: mov r0, #0 bl buf_alloc subs r3, r0, #0 - beq .L3807 + beq .L3803 ldr r1, [r4, #2288] ldr r2, [r1, #40] add r2, r2, #1 str r2, [r1, #40] - ldr r2, [sp, #64] + ldr r2, [sp, #68] str r6, [r3, #8] add r6, r6, r9, asl #9 str r5, [r3, #20] @@ -22822,41 +22741,41 @@ zftl_read: strb r9, [r3, #40] strb r10, [r3, #41] bl zftl_add_read_buf -.L3800: +.L3796: ldr r3, [sp, #28] add r5, r5, #1 sub r3, r3, #1 str r3, [sp, #28] -.L3807: +.L3803: ldrb r3, [r7, #2262] @ zero_extendqisi2 ldr r2, [sp, #28] cmp r2, #0 cmpne r3, #2 - bhi .L3796 + bhi .L3792 ldrb r1, [r4, #3532] @ zero_extendqisi2 cmp r1, #0 - beq .L3796 + beq .L3792 ldrb r2, [r4, #3531] @ zero_extendqisi2 mov r0, #48 - ldr r3, .L3853+16 + ldr r3, .L3848+12 mla r0, r0, r2, r3 bl sblk_read_page -.L3809: +.L3805: ldrb r3, [r4, #3532] @ zero_extendqisi2 cmp r3, #0 - beq .L3852 + beq .L3847 ldrb r3, [r4, #3531] @ zero_extendqisi2 cmp r3, #255 - bne .L3810 - ldr r1, .L3853+20 + bne .L3806 + ldr r1, .L3848+16 mov r2, #1088 - ldr r0, .L3853+24 + ldr r0, .L3848+20 bl printk bl dump_stack -.L3810: +.L3806: ldrb fp, [r7, #3531] @ zero_extendqisi2 mov r2, #48 - ldr r3, .L3853+16 + ldr r3, .L3848+12 mul r2, r2, fp add r3, r3, r2 add r2, r7, r2 @@ -22865,17 +22784,17 @@ zftl_read: ldrb r3, [r2, #724] @ zero_extendqisi2 cmn r10, #1 strb r3, [r7, #3531] - bne .L3811 + bne .L3807 ldr r2, [r4, #580] str r10, [sp, #36] ldr r3, [r2, #552] add r3, r3, #1 str r3, [r2, #552] - b .L3812 -.L3811: + b .L3808 +.L3807: cmp r10, #256 - bne .L3812 - ldr r1, .L3853+28 + bne .L3808 + ldr r1, .L3848+24 mov r9, #1 ldr r3, [r2, #748] str r2, [sp, #60] @@ -22893,7 +22812,7 @@ zftl_read: uxth ip, r0 ldr r3, [sp, #56] mov r1, ip - ldr r0, .L3853+32 + ldr r0, .L3848+28 ldr r2, [r2, #744] str ip, [sp, #52] bl printk @@ -22902,7 +22821,7 @@ zftl_read: ldr ip, [sp, #52] mov r0, ip bl gc_add_sblk -.L3812: +.L3808: mov r9, #48 cmn r10, #1 mla r9, r9, fp, r4 @@ -22915,9 +22834,9 @@ zftl_read: moveq r3, ip orrne r3, ip, #1 cmp r3, #0 - beq .L3813 + beq .L3809 ldr r1, [r4, #580] - ldr r0, .L3853+36 + ldr r0, .L3848+32 str ip, [sp, #52] ldr r3, [r1, #552] add r3, r3, #1 @@ -22937,7 +22856,7 @@ zftl_read: str r3, [sp, #16] ldr r3, [r9, #744] bl printk - ldr r3, .L3853+28 + ldr r3, .L3848+24 ldr r2, [r9, #748] ldrb r1, [r4, #2930] @ zero_extendqisi2 ldrh r0, [r3] @@ -22952,7 +22871,7 @@ zftl_read: uxth r0, r0 bl ftl_sblk_dump ldr ip, [sp, #52] -.L3813: +.L3809: mov r3, #48 mla r3, r3, fp, r4 ldr r2, [r3, #736] @@ -22961,13 +22880,13 @@ zftl_read: cmp r2, r3 orrne ip, ip, #1 cmp ip, #0 - beq .L3814 - ldr r1, .L3853+20 + beq .L3810 + ldr r1, .L3848+16 movw r2, #1109 - ldr r0, .L3853+24 + ldr r0, .L3848+20 bl printk bl dump_stack -.L3814: +.L3810: mov r3, #48 mla fp, r3, fp, r7 ldrb r3, [r7, #2260] @ zero_extendqisi2 @@ -22976,60 +22895,52 @@ zftl_read: ldrlsb r3, [fp, #726] @ zero_extendqisi2 bicls r3, r3, #8 strlsb r3, [fp, #726] - bls .L3816 + bls .L3812 ldrb r1, [fp, #765] @ zero_extendqisi2 mov r2, r2, asl #9 ldr r3, [fp, #728] ldr r0, [fp, #732] add r1, r3, r1, asl #9 bl ftl_memcpy -.L3816: +.L3812: ldr r1, [sp, #48] - ldr r0, .L3853+40 + ldr r0, .L3848+36 bl buf_remove_buf ldr r0, [sp, #48] bl zbuf_free ldrb r3, [r4, #3532] @ zero_extendqisi2 sub r3, r3, #1 strb r3, [r4, #3532] - b .L3809 -.L3852: + b .L3805 +.L3847: mvn r2, #0 strb r3, [r7, #3532] strb r2, [r7, #3531] - b .L3796 -.L3850: + b .L3792 +.L3845: bl timer_get_time - ldr r3, .L3853+44 + ldr r3, .L3848+40 str r0, [r3, #-2476] ldr r0, [sp, #36] - b .L3795 -.L3821: + b .L3791 +.L3816: mvn r0, #0 -.L3795: - ldr r3, .L3853 - ldr r2, [sp, #68] - ldr r3, [r3] - cmp r2, r3 - beq .L3819 - bl __stack_chk_fail -.L3819: +.L3791: add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3854: +.L3849: .align 2 -.L3853: - .word __stack_chk_guard +.L3848: .word .LANCHOR2 - .word .LC261 + .word .LC262 .word .LANCHOR0 .word .LANCHOR0+724 .word .LANCHOR1+2088 .word .LC0 .word .LANCHOR0+2928 - .word .LC262 .word .LC263 + .word .LC264 .word .LANCHOR0+3533 .word .LANCHOR5 .fnend @@ -23073,228 +22984,224 @@ zftl_sys_read: .type zftl_debug_proc_write, %function zftl_debug_proc_write: .fnstart - @ args = 0, pretend = 0, frame = 96 + @ args = 0, pretend = 0, frame = 88 @ 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} + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} cmp r2, #79 - ldr r7, .L3885 - .pad #132 - sub sp, sp, #132 - add r4, sp, #44 - mov r6, r2 - str r4, [sp, #40] + .pad #120 + sub sp, sp, #120 + mov r7, r2 + add r4, sp, #40 mvnhi r0, #21 - ldr r3, [r7] - str r3, [sp, #124] - bhi .L3859 + str r4, [sp, #36] + bhi .L3854 mov r0, r4 bl rk_copy_from_user cmp r0, #0 mvnne r0, #13 - bne .L3859 - add r3, sp, #128 + bne .L3854 + add r3, sp, #120 mov r1, r4 - add r3, r3, r6 - strb r0, [r3, #-84] - ldr r0, .L3885+4 + add r3, r3, r7 + strb r0, [r3, #-80] + ldr r0, .L3879 bl printk - ldr r0, .L3885+8 + ldr r0, .L3879+4 mov r1, r4 mov r2, #1 mov r3, #16 bl rknand_print_hex bl rknand_device_lock mov r0, r4 - ldr r1, .L3885+12 + ldr r1, .L3879+8 + mov r2, #7 + bl memcmp + subs r5, r0, #0 + bne .L3855 + ldr r4, .L3879+12 + movw ip, #698 + ldr r0, .L3879+16 + mov r2, #4 + ldr r6, .L3879+20 + movw r8, #65535 + ldr r3, [r4, #2288] + add r1, r3, #704 + ldrh r3, [r3, ip] + bl rknand_print_hex + ldr r1, [r4, #2288] + ldr r0, .L3879+24 + mov r2, #2 + add r1, r1, #416 + ldrh r3, [r6] + bl rknand_print_hex +.L3856: + ldrh r3, [r6] + cmp r5, r3 + bge .L3859 + mov r0, #300 + bl msleep + add r3, r5, #208 + ldr r2, [r4, #2288] + mov r3, r3, asl #1 + ldrh r0, [r2, r3] + cmp r0, r8 + beq .L3857 + mov r1, #0 + bl ftl_sblk_dump +.L3857: + add r5, r5, #1 + b .L3856 +.L3855: + mov r0, r4 + ldr r1, .L3879+28 mov r2, #7 bl memcmp subs r5, r0, #0 bne .L3860 - ldr r8, .L3885+16 + ldr r4, .L3879+12 movw ip, #698 - ldr r0, .L3885+20 + ldr r0, .L3879+16 mov r2, #4 - ldr r4, .L3885+24 - movw r9, #65535 - ldr r3, [r8, #2288] + ldr r8, .L3879+32 + ldr r3, [r4, #2288] + mov r10, r4 add r1, r3, #704 ldrh r3, [r3, ip] bl rknand_print_hex - ldr r1, [r8, #2288] - ldr r0, .L3885+28 + ldr r3, .L3879+20 + ldr r1, [r4, #2288] mov r2, #2 - add r1, r1, #416 - ldrh r3, [r4] - bl rknand_print_hex -.L3861: - ldrh r3, [r4] - cmp r5, r3 - bge .L3864 - mov r0, #300 - bl msleep - add r3, r5, #208 - ldr r2, [r8, #2288] - mov r3, r3, asl #1 - ldrh r0, [r2, r3] - cmp r0, r9 - beq .L3862 - mov r1, #0 - bl ftl_sblk_dump -.L3862: - add r5, r5, #1 - b .L3861 -.L3860: - mov r0, r4 - ldr r1, .L3885+32 - mov r2, #7 - bl memcmp - subs r5, r0, #0 - bne .L3865 - ldr r8, .L3885+16 - movw ip, #698 - ldr r0, .L3885+20 - mov r2, #4 - ldr r3, [r8, #2288] - mov fp, r8 - add r1, r3, #704 - ldrh r3, [r3, ip] - bl rknand_print_hex - ldr r3, .L3885+24 - ldr r1, [r8, #2288] - mov r2, #2 - ldr r0, .L3885+28 + ldr r0, .L3879+24 ldrh r3, [r3] add r1, r1, #416 bl rknand_print_hex - ldr r0, .L3885+36 - add r4, sp, #128 - add r1, sp, #51 - str r1, [r4, #-88]! + ldr r0, .L3879+36 + add r6, sp, #120 + add r1, sp, #47 + str r1, [r6, #-84]! bl printk - mov r1, r4 - mov r4, r5 - ldr r5, .L3885+40 - ldr r0, [sp, #40] - bl rk_simple_strtoull.constprop.33 - uxth r9, r0 - str r0, [sp, #36] -.L3867: - add r10, r5, r4 - ldr r0, .L3885+44 - ldrh r1, [r5, r4] - ldrh r2, [r10, #2] + mov r1, r6 + ldr r0, [sp, #36] + bl rk_simple_strtoull.constprop.32 + uxth r6, r0 + str r0, [sp, #32] +.L3862: + add r9, r8, r5 + ldr r0, .L3879+40 + ldrh r1, [r8, r5] + ldrh r2, [r9, #2] bl printk - ldrh r3, [r4, r5] - cmp r3, r9 - bne .L3866 - ldrb r3, [fp, #2260] @ zero_extendqisi2 + ldrh r3, [r5, r8] + cmp r3, r6 + bne .L3861 + ldrb r3, [r10, #2260] @ zero_extendqisi2 mov r2, #4 - ldr r0, .L3885+48 - ldr r1, [r10, #4] + ldr r0, .L3879+44 + ldr r1, [r9, #4] mov r3, r3, asl #7 bl rknand_print_hex -.L3866: - add r4, r4, #8 - cmp r4, #256 - bne .L3867 +.L3861: + add r5, r5, #8 + cmp r5, #256 + bne .L3862 mov r0, #300 - add r9, r9, #176 + add r6, r6, #176 bl msleep mov r0, #1 bl buf_alloc - ldr r3, [r8, #2288] + ldr r3, [r4, #2288] mov r1, #1 - ldr r3, [r3, r9, asl #2] + ldr r3, [r3, r6, asl #2] str r3, [r0, #24] - mov r4, r0 - str r3, [sp, #36] + mov r5, r0 + str r3, [sp, #32] bl sblk_read_page - ldr r3, [r4, #4] - ldr r2, [r4, #12] - ldr r0, .L3885+52 - ldr r1, [r3, #4] - str r1, [sp] - ldr r1, [r3, #8] - str r1, [sp, #4] - ldr r1, [r3, #12] - str r1, [sp, #8] - ldr r1, [r2] - str r1, [sp, #12] - ldr r1, [r2, #4] - str r1, [sp, #16] - ldr r1, [r2, #8] - str r1, [sp, #20] - ldr r2, [r2, #12] - ldr r1, [sp, #36] - str r2, [sp, #24] - ldr r2, [r4, #36] - ldr r3, [r3] + ldr ip, [r5, #4] + ldr r3, [r5, #12] + ldr r0, .L3879+48 + ldr r2, [ip, #4] + str r2, [sp] + ldr r2, [ip, #8] + ldr r1, [sp, #32] + str r2, [sp, #4] + ldr r2, [ip, #12] + str r2, [sp, #8] + ldr r2, [r3] + str r2, [sp, #12] + ldr r2, [r3, #4] + str r2, [sp, #16] + ldr r2, [r3, #8] + str r2, [sp, #20] + ldr r3, [r3, #12] + str r3, [sp, #24] + ldr r2, [r5, #36] + ldr r3, [ip] bl printk - ldrb r3, [r8, #2260] @ zero_extendqisi2 - ldr r0, .L3885+56 + ldrb r3, [r4, #2260] @ zero_extendqisi2 + ldr r0, .L3879+52 mov r2, #4 - ldr r1, [r4, #4] + ldr r1, [r5, #4] mov r3, r3, asl #7 - b .L3884 -.L3865: + b .L3878 +.L3860: mov r0, r4 - ldr r1, .L3885+60 + ldr r1, .L3879+56 mov r2, #7 bl memcmp cmp r0, #0 - bne .L3868 + bne .L3863 bl dump_ftl_info - b .L3864 -.L3868: + b .L3859 +.L3863: mov r0, r4 - ldr r1, .L3885+64 + ldr r1, .L3879+60 mov r2, #9 bl memcmp cmp r0, #0 - bne .L3869 - add r1, sp, #128 - add r0, sp, #53 - str r0, [r1, #-88]! - bl rk_simple_strtoull.constprop.33 - ldr r3, .L3885+68 - str r0, [sp, #36] + bne .L3864 + add r1, sp, #120 + add r0, sp, #49 + str r0, [r1, #-84]! + bl rk_simple_strtoull.constprop.32 + ldr r3, .L3879+64 + str r0, [sp, #32] strh r0, [r3] @ movhi bl dump_all_list_info - b .L3864 -.L3869: + b .L3859 +.L3864: mov r0, r4 - ldr r1, .L3885+72 + ldr r1, .L3879+68 mov r2, #8 bl memcmp cmp r0, #0 - beq .L3864 + beq .L3859 mov r0, r4 - ldr r1, .L3885+76 + ldr r1, .L3879+72 mov r2, #8 bl memcmp cmp r0, #0 - bne .L3871 - add r4, sp, #128 - add r1, sp, #52 - ldr r0, .L3885+36 - str r1, [r4, #-88]! + bne .L3866 + add r4, sp, #120 + add r1, sp, #48 + ldr r0, .L3879+36 + str r1, [r4, #-84]! bl printk mov r1, r4 - ldr r5, .L3885+16 - ldr r0, [sp, #40] - bl rk_simple_strtoull.constprop.33 - str r0, [sp, #36] + ldr r4, .L3879+12 + ldr r0, [sp, #36] + bl rk_simple_strtoull.constprop.32 + str r0, [sp, #32] mov r0, #1 bl buf_alloc mov r1, #1 - ldr r3, [sp, #36] - mov r4, r0 + ldr r3, [sp, #32] + mov r5, r0 str r3, [r0, #24] bl sblk_read_page - ldr r3, [r4, #4] - ldr r2, [r4, #12] - ldr r0, .L3885+52 + ldr r3, [r5, #4] + ldr r2, [r5, #12] + ldr r0, .L3879+48 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -23308,157 +23215,149 @@ zftl_debug_proc_write: ldr r1, [r2, #8] str r1, [sp, #20] ldr r2, [r2, #12] - ldr r1, [sp, #36] + ldr r1, [sp, #32] str r2, [sp, #24] - ldr r2, [r4, #36] + ldr r2, [r5, #36] ldr r3, [r3] bl printk - ldrb r3, [r5, #2260] @ zero_extendqisi2 - ldr r0, .L3885+80 + ldrb r3, [r4, #2260] @ zero_extendqisi2 + ldr r0, .L3879+76 mov r2, #4 - ldr r1, [r4, #4] + ldr r1, [r5, #4] mov r3, r3, asl #7 bl rknand_print_hex - ldrb r3, [r5, #2260] @ zero_extendqisi2 - ldr r0, .L3885+84 + ldrb r3, [r4, #2260] @ zero_extendqisi2 + ldr r0, .L3879+80 mov r2, #4 - ldr r1, [r4, #12] + ldr r1, [r5, #12] mov r3, r3, asl #1 -.L3884: +.L3878: bl rknand_print_hex - mov r0, r4 + mov r0, r5 bl zbuf_free - b .L3864 -.L3871: + b .L3859 +.L3866: mov r0, r4 - ldr r1, .L3885+88 + ldr r1, .L3879+84 mov r2, #8 bl memcmp subs r5, r0, #0 - bne .L3872 - add r4, sp, #128 - add r1, sp, #52 - ldr r0, .L3885+36 - str r1, [r4, #-88]! + bne .L3867 + add r4, sp, #120 + add r1, sp, #48 + ldr r0, .L3879+36 + str r1, [r4, #-84]! bl printk mov r1, r4 - ldr r0, [sp, #40] - bl rk_simple_strtoull.constprop.33 + ldr r0, [sp, #36] + bl rk_simple_strtoull.constprop.32 mov r1, r5 - str r0, [sp, #36] + str r0, [sp, #32] uxth r0, r0 bl ftl_sblk_dump - b .L3864 -.L3872: + b .L3859 +.L3867: mov r0, r4 - ldr r1, .L3885+92 + ldr r1, .L3879+88 mov r2, #10 bl memcmp cmp r0, #0 - bne .L3873 - add r4, sp, #128 - add r1, sp, #54 - ldr r0, .L3885+36 - str r1, [r4, #-88]! + bne .L3868 + add r4, sp, #120 + add r1, sp, #50 + ldr r0, .L3879+36 + str r1, [r4, #-84]! bl printk mov r1, r4 - ldr r0, [sp, #40] - bl rk_simple_strtoull.constprop.33 - ldr r3, .L3885+96 - str r0, [sp, #36] + ldr r0, [sp, #36] + bl rk_simple_strtoull.constprop.32 + ldr r3, .L3879+92 + str r0, [sp, #32] str r0, [r3] - b .L3864 -.L3873: + b .L3859 +.L3868: mov r0, r4 - ldr r1, .L3885+100 + ldr r1, .L3879+96 mov r2, #8 bl memcmp subs r5, r0, #0 - bne .L3874 - add r4, sp, #128 - add r1, sp, #52 - ldr r0, .L3885+36 - str r1, [r4, #-88]! + bne .L3869 + add r4, sp, #120 + add r1, sp, #48 + ldr r0, .L3879+36 + str r1, [r4, #-84]! bl printk mov r1, r4 - ldr r0, [sp, #40] - bl rk_simple_strtoull.constprop.33 + ldr r0, [sp, #36] + bl rk_simple_strtoull.constprop.32 mov r4, r0 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #36] - bne .L3875 + str r0, [sp, #32] + bne .L3870 mov r0, r4 - add r1, sp, #36 + add r1, sp, #32 mov r2, r5 bl pm_log2phys -.L3875: +.L3870: mov r1, r4 - ldr r2, [sp, #36] - ldr r0, .L3885+104 + ldr r2, [sp, #32] + ldr r0, .L3879+100 bl printk - b .L3864 -.L3874: - ldr r0, .L3885+108 + b .L3859 +.L3869: + ldr r0, .L3879+104 bl printk - ldr r0, .L3885+112 + ldr r0, .L3879+108 bl printk - ldr r0, .L3885+116 + ldr r0, .L3879+112 bl printk - ldr r0, .L3885+120 + ldr r0, .L3879+116 bl printk - ldr r0, .L3885+124 + ldr r0, .L3879+120 bl printk - ldr r0, .L3885+128 + ldr r0, .L3879+124 bl printk - ldr r0, .L3885+132 + ldr r0, .L3879+128 bl printk - ldr r0, .L3885+136 + ldr r0, .L3879+132 bl printk - ldr r0, .L3885+140 + ldr r0, .L3879+136 bl printk -.L3864: - bl rknand_device_unlock - mov r0, r6 .L3859: - ldr r2, [sp, #124] - ldr r3, [r7] - cmp r2, r3 - beq .L3876 - bl __stack_chk_fail -.L3876: - add sp, sp, #132 + bl rknand_device_unlock + mov r0, r7 +.L3854: + add sp, sp, #120 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3886: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L3880: .align 2 -.L3885: - .word __stack_chk_guard - .word .LC264 +.L3879: .word .LC265 .word .LC266 - .word .LANCHOR0 .word .LC267 - .word .LANCHOR3-3296 + .word .LANCHOR0 .word .LC268 + .word .LANCHOR3-3296 .word .LC269 .word .LC270 .word .LANCHOR0+3540 .word .LC271 .word .LC272 - .word .LC234 .word .LC273 + .word .LC235 .word .LC274 .word .LC275 - .word .LANCHOR0+2992 .word .LC276 + .word .LANCHOR0+2992 .word .LC277 + .word .LC278 .word .LC229 .word .LC230 - .word .LC278 .word .LC279 - .word .LANCHOR2 .word .LC280 + .word .LANCHOR2 .word .LC281 .word .LC282 .word .LC283 @@ -23469,6 +23368,7 @@ zftl_debug_proc_write: .word .LC288 .word .LC289 .word .LC290 + .word .LC291 .fnend .size zftl_debug_proc_write, .-zftl_debug_proc_write .align 2 @@ -23482,66 +23382,66 @@ gc_check_data_one_wl: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldr r4, .L3920 + ldr r4, .L3914 ldr r3, [r4, #2320] ldr r7, [r4, #580] cmp r3, #0 - bne .L3888 + bne .L3882 mov r0, #1 bl buf_alloc str r0, [r4, #2320] -.L3888: +.L3882: ldr r5, [r4, #2320] cmp r5, #0 - bne .L3889 - ldr r1, .L3920+4 + bne .L3883 + ldr r1, .L3914+4 movw r2, #613 - ldr r0, .L3920+8 + ldr r0, .L3914+8 bl printk bl dump_stack -.L3889: - ldr r6, .L3920+12 +.L3883: + ldr r6, .L3914+12 add r10, r7, #96 - ldr r3, .L3920 + ldr r3, .L3914 mov r9, #0 -.L3890: +.L3884: ldrb r2, [r7, #89] @ zero_extendqisi2 cmp r9, r2 - ldr r2, .L3920+12 - bge .L3918 - ldr r2, .L3920+16 + ldr r2, .L3914+12 + bge .L3912 + ldr r2, .L3914+16 mov r8, #1 -.L3900: +.L3894: ldrh r1, [r6, #16] cmp r8, r1 - bgt .L3919 + bgt .L3913 ldrb r0, [r3, #2937] @ zero_extendqisi2 ldrh r1, [r10] ldrh ip, [r2] cmp r0, #2 mul ip, ip, r1 - beq .L3891 + beq .L3885 ldrb r1, [r3, #684] @ zero_extendqisi2 cmp r1, #0 - beq .L3892 -.L3891: + 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 .L3917 -.L3892: + b .L3911 +.L3886: cmp r0, #3 ldrh r1, [r6, #12] addne ip, ip, r1 strne ip, [r5, #24] - bne .L3893 + bne .L3887 add r1, ip, r1 orr r1, r1, r8, asl #24 -.L3917: +.L3911: str r1, [r5, #24] -.L3893: +.L3887: mov r1, #1 mov r0, r5 str r3, [sp, #28] @@ -23549,56 +23449,56 @@ gc_check_data_one_wl: bl sblk_read_page ldr r1, [r5, #36] cmn r1, #1 - ldr r1, .L3920+20 + ldr r1, .L3914+20 ldr r2, [sp, #24] ldr r3, [sp, #28] - beq .L3895 + 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 .L3895 + bne .L3889 ldr lr, [r1, #-3312] ldr r0, [r0, #8] ldr ip, [lr, ip, asl #2] cmp ip, r0 - beq .L3896 -.L3895: + beq .L3890 +.L3889: ldr r1, [r1, #-3316] ldrh r0, [r6, #18] - ldr fp, .L3920+20 - ldr ip, .L3920 + ldr fp, .L3914+20 + ldr ip, .L3914 ldr r0, [r1, r0, asl #2] cmn r0, #1 - beq .L3896 + beq .L3890 movw r6, #2962 ldrb r3, [r7, #89] @ zero_extendqisi2 ldrh lr, [ip, r6] mov r2, #4 - ldr r0, .L3920+24 + ldr r0, .L3914+24 str ip, [sp, #24] mul r3, lr, r3 bl rknand_print_hex ldrb r3, [r7, #89] @ zero_extendqisi2 - ldr r0, .L3920+28 + 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, .L3920+32 + ldr r3, .L3914+32 ldr r3, [r3] tst r3, #1024 - beq .L3897 - ldr r3, .L3920+12 + beq .L3891 + ldr r3, .L3914+12 ldr r2, [fp, #-3312] ldr lr, [fp, #-3316] ldrh ip, [r3, #18] ldr r3, [r5, #12] - ldr r0, .L3920+36 + ldr r0, .L3914+36 ldr r2, [r2, ip, asl #2] str r2, [sp] ldr r2, [r3] @@ -23613,7 +23513,7 @@ gc_check_data_one_wl: ldr r2, [r5, #36] ldr r3, [lr, ip, asl #2] bl printk -.L3897: +.L3891: ldr r3, [r4, #580] mov r1, #0 ldrh r0, [r3, #80] @@ -23629,23 +23529,23 @@ gc_check_data_one_wl: str r3, [r2, #556] ldr r3, [r4, #2288] ldr r2, [r3, #156] - ldr r3, .L3920+40 + ldr r3, .L3914+40 cmp r2, r3 - bne .L3901 + bne .L3895 ldr r0, [r5, #24] bl ftl_mask_bad_block - b .L3901 -.L3896: + b .L3895 +.L3890: ldrh r1, [r6, #18] add r8, r8, #1 add r1, r1, #1 strh r1, [r6, #18] @ movhi - b .L3900 -.L3919: + b .L3894 +.L3913: add r9, r9, #1 add r10, r10, #2 - b .L3890 -.L3918: + b .L3884 +.L3912: ldrb r0, [r4, #2938] @ zero_extendqisi2 ldrh r3, [r2, #12] cmp r0, #0 @@ -23654,26 +23554,26 @@ gc_check_data_one_wl: strh r1, [r2, #12] @ movhi movne r0, #0 strneh r3, [r2, #12] @ movhi - b .L3898 -.L3901: + b .L3892 +.L3895: mvn r0, #0 -.L3898: +.L3892: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3921: +.L3915: .align 2 -.L3920: +.L3914: .word .LANCHOR0 .word .LANCHOR1+2100 .word .LC0 .word .LANCHOR0+2312 .word .LANCHOR0+2994 .word .LANCHOR3 - .word .LC291 .word .LC292 - .word .LANCHOR2 .word .LC293 + .word .LANCHOR2 + .word .LC294 .word 1145785929 .fnend .size gc_check_data_one_wl, .-gc_check_data_one_wl @@ -23682,154 +23582,142 @@ gc_check_data_one_wl: .type ftl_update_l2p_map, %function ftl_update_l2p_map: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3954 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 r2, [r3] mov r7, r0 - ldr r4, .L3954+4 + ldr r4, .L3947 + .pad #20 + sub sp, sp, #20 ldrb r8, [r0, #9] @ zero_extendqisi2 - str r2, [sp, #20] - add r2, r4, #2960 + add r3, r4, #2960 ldrh r5, [r0, #12] - ldrh r2, [r2] - ldr r6, [r4, #3512] - str r3, [sp, #8] - mul r8, r8, r2 - add r5, r6, r5, asl #2 - sub r2, r8, #-1073741823 - ldr r2, [r5, r2, asl #2] - cmn r2, #1 - beq .L3923 - ldr r1, .L3954+8 - movw r2, #1733 - ldr r0, .L3954+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] + cmn r3, #1 + beq .L3917 + ldr r1, .L3947+4 + movw r2, #1743 + ldr r0, .L3947+8 bl printk bl dump_stack -.L3923: +.L3917: mov r6, #0 sub r5, r5, #4 mov r10, r6 -.L3924: +.L3918: cmp r10, r8 - beq .L3953 + beq .L3946 ldr r9, [r5, #4]! cmn r9, #1 - beq .L3925 + beq .L3919 ldrb r1, [r4, #2260] @ zero_extendqisi2 mov r0, r9 mov r1, r1, asl #7 bl __aeabi_uidiv uxth r3, r0 - str r3, [sp, #4] - ldr r3, .L3954+16 + str r3, [sp] + ldr r3, .L3947+12 ldr r3, [r3] tst r3, #4096 - beq .L3926 - ldr r0, .L3954+20 + beq .L3920 + ldr r0, .L3947+16 mov r2, r9 - ldr r1, [sp, #4] + ldr r1, [sp] mov r3, r10 bl printk -.L3926: +.L3920: mov r9, r5 mov fp, r10 -.L3929: +.L3923: ldr r0, [r9] cmn r0, #1 - beq .L3927 + beq .L3921 ldrb r1, [r4, #2260] @ zero_extendqisi2 mov r1, r1, asl #7 bl __aeabi_uidiv - ldr r3, [sp, #4] + ldr r3, [sp] uxth r0, r0 cmp r0, r3 - bne .L3927 + bne .L3921 ldrb r3, [r7, #9] @ zero_extendqisi2 mov r0, fp mov r1, r3 - str r3, [sp, #12] + str r3, [sp, #4] bl __aeabi_idiv - ldr r2, .L3954+24 + ldr r2, .L3947+20 ldrh r2, [r2] - ldr r3, [sp, #12] + ldr r3, [sp, #4] mls r3, r3, r0, fp add r3, r7, r3, asl #1 ldrh r3, [r3, #16] mla r2, r2, r3, r0 - ldr r0, .L3954+28 - str r2, [sp, #16] + ldr r0, .L3947+24 + str r2, [sp, #12] ldr r1, [r9] bl pm_ppa_update_check cmp r0, #0 - beq .L3928 - ldr r3, .L3954+4 + beq .L3922 + ldr r3, .L3947 mov r2, #4 - ldr r0, .L3954+32 + ldr r0, .L3947+28 ldr r1, [r3, #3512] mov r3, r8 bl rknand_print_hex -.L3928: +.L3922: add r6, r6, #1 ldr r0, [r9] - add r1, sp, #16 + add r1, sp, #12 mov r2, #1 uxth r6, r6 bl pm_log2phys mvn r3, #0 str r3, [r9] -.L3927: +.L3921: add fp, fp, #1 add r9, r9, #4 cmp fp, r8 - bne .L3929 -.L3925: + bne .L3923 +.L3919: add r10, r10, #1 - b .L3924 -.L3953: - ldr r3, .L3954+16 + b .L3918 +.L3946: + ldr r3, .L3947+12 ldr r3, [r3] tst r3, #4096 - beq .L3931 + beq .L3925 ldrh r1, [r7] mov r2, r6 ldr ip, [r4, #576] - ldr r0, .L3954+36 + ldr r0, .L3947+32 mov r3, r1, asl #1 ldrh r3, [ip, r3] bl printk -.L3931: +.L3925: ldrh r3, [r7] ldr r2, [r4, #576] mov r3, r3, asl #1 strh r6, [r2, r3] @ movhi - ldr r3, [sp, #8] - ldr r2, [sp, #20] - ldr r3, [r3] - cmp r2, r3 - beq .L3932 - bl __stack_chk_fail -.L3932: - add sp, sp, #28 + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3955: +.L3948: .align 2 -.L3954: - .word __stack_chk_guard +.L3947: .word .LANCHOR0 .word .LANCHOR1+2124 .word .LC0 .word .LANCHOR2 - .word .LC294 - .word .LANCHOR0+2994 .word .LC295 + .word .LANCHOR0+2994 .word .LC296 .word .LC297 + .word .LC298 .fnend .size ftl_update_l2p_map, .-ftl_update_l2p_map .align 2 @@ -23848,10 +23736,10 @@ ftl_alloc_new_data_sblk: ldrh r0, [r6] movw r3, #65535 cmp r0, r3 - beq .L3957 + beq .L3950 bl zftl_insert_data_list -.L3957: - ldr r4, .L3965 +.L3950: + ldr r4, .L3958 mov r0, r6 ldr r1, [r4, #580] add r1, r1, #16 @@ -23868,9 +23756,9 @@ ftl_alloc_new_data_sblk: mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L3959 + beq .L3952 mov r1, r5 - ldr r0, .L3965+4 + ldr r0, .L3958+4 bl printk ldr r3, [r4, #580] ldr r0, [r3, #564] @@ -23879,18 +23767,18 @@ ftl_alloc_new_data_sblk: mvn r2, #0 str r6, [r3, #560] str r2, [r3, #564] -.L3959: +.L3952: 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} -.L3966: +.L3959: .align 2 -.L3965: +.L3958: .word .LANCHOR0 - .word .LC298 + .word .LC299 .fnend .size ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk .align 2 @@ -23900,19 +23788,16 @@ ftl_write_commit: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L4031 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, .L4031+4 - ldr r3, [r3] + ldr r6, .L4023 mov r8, r6 - str r3, [sp, #28] -.L3968: +.L3961: ldrb r2, [r6, #2284] @ zero_extendqisi2 cmp r2, #0 - beq .L3970 + beq .L3963 ldrb r3, [r6, #2308] @ zero_extendqisi2 sub r2, r2, #1 strb r2, [r6, #2284] @@ -23920,7 +23805,7 @@ ftl_write_commit: mov r3, #48 ldr r1, [sp, #16] mul r3, r3, r1 - ldr r1, .L4031+8 + ldr r1, .L4023+4 add r1, r1, r3 add r3, r6, r3 str r1, [sp, #20] @@ -23929,25 +23814,25 @@ ftl_write_commit: ldr r3, [r6, #2268] cmp r2, r3 strb r1, [r6, #2308] - bcc .L3971 - ldr r1, .L4031+12 + bcc .L3964 + ldr r1, .L4023+8 movw r2, #510 - ldr r0, .L4031+16 + ldr r0, .L4023+12 bl printk bl dump_stack -.L3971: +.L3964: ldr r2, [sp, #16] mov r3, #48 ldr r1, [r8, #2268] mla r2, r3, r2, r8 ldr r9, [r2, #744] cmp r9, r1 - bcc .L3972 + bcc .L3965 ldr r0, [sp, #20] bl zbuf_free mvn r0, #0 - b .L3973 -.L3972: + b .L4019 +.L3965: ldr r1, [r2, #736] ldr fp, [r2, #728] ldrb r7, [r2, #765] @ zero_extendqisi2 @@ -23956,21 +23841,21 @@ ftl_write_commit: str r2, [sp, #12] ldrb r2, [r6, #2285] @ zero_extendqisi2 cmp r2, #0 - beq .L3974 - ldr r2, .L4031+20 - ldrb r4, [r2, #-3239] @ zero_extendqisi2 - ldr r2, .L4031+8 + beq .L3967 + ldr r2, .L4023+16 + ldrb r4, [r2, #-3240] @ zero_extendqisi2 + ldr r2, .L4023+4 mla r4, r3, r4, r2 -.L3975: +.L3968: ldrb r2, [r4] @ zero_extendqisi2 cmp r2, #255 - ldrne r1, .L4031+8 + ldrne r1, .L4023+4 mlane r4, r3, r2, r1 - bne .L3975 -.L4029: + bne .L3968 +.L4021: ldr r3, [r4, #20] cmp r3, r9 - bne .L3974 + bne .L3967 ldr r3, [sp, #12] mov r1, r7, asl #9 ldr r0, [r4, #4] @@ -23980,81 +23865,81 @@ ftl_write_commit: bl ftl_memcpy ldr r0, [sp, #20] bl zbuf_free - b .L3968 -.L3974: + b .L3961 +.L3967: mov r0, r9 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #24] - bne .L3978 + str r0, [sp, #28] + bne .L3971 mov r0, r9 - add r1, sp, #24 + add r1, sp, #28 mov r2, #0 bl pm_log2phys -.L3978: +.L3971: ldr r4, [r8, #580] mov r3, #0 - ldr r2, .L4031+8 + ldr r2, .L4023+4 add r4, r4, #16 -.L3981: +.L3974: ldr r1, [r2, #20] cmp r1, r9 - bne .L3979 + bne .L3972 ldrb r1, [r2, #2] @ zero_extendqisi2 tst r1, #8 - beq .L3979 + 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, #24] - b .L3980 -.L3979: + str r3, [sp, #28] + b .L3973 +.L3972: add r3, r3, #1 add r2, r2, #48 cmp r3, #32 - bne .L3981 + bne .L3974 mov r5, #0 -.L3980: +.L3973: ldrb r3, [r8, #2260] @ zero_extendqisi2 ldr r2, [sp, #12] cmp r2, r3 - bcs .L4006 + bcs .L3998 cmp r5, #0 - beq .L3983 + beq .L3976 cmp r7, #0 - beq .L3984 + beq .L3977 mov r0, fp mov r1, r5 mov r2, r7, asl #9 bl ftl_memcpy ldr r4, [r6, #580] add r4, r4, #48 -.L3984: +.L3977: 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 .L4006 + bcs .L3998 rsb r2, r7, r2 mov r1, r7, asl #9 add r0, fp, r1 add r1, r5, r1 mov r2, r2, asl #9 bl ftl_memcpy - b .L4006 -.L3983: - ldr r3, [sp, #24] + b .L3998 +.L3976: + ldr r3, [sp, #28] cmn r3, #1 - beq .L3986 + beq .L3979 mov r0, #1 bl buf_alloc mov r1, #1 - ldr r3, [sp, #24] + ldr r3, [sp, #28] mov r5, r0 str r9, [r0, #20] str r3, [r0, #24] @@ -24064,115 +23949,115 @@ ftl_write_commit: ldr r3, [r3, #4] add r10, r10, #1 cmp r3, r9 - bne .L3987 + bne .L3980 ldr r3, [r5, #36] cmn r3, #1 - bne .L3988 -.L3987: + bne .L3981 +.L3980: ldr r2, [r8, #580] - ldr r0, .L4031+24 + ldr r0, .L4023+20 ldr r3, [r2, #552] add r3, r3, #1 str r3, [r2, #552] ldr r3, [r5, #36] ldrb r1, [r5, #1] @ zero_extendqisi2 - ldr r2, [sp, #24] + ldr r2, [sp, #28] str r3, [sp] mov r3, r9 bl printk mov r2, #4 - ldr r0, .L4031+28 + ldr r0, .L4023+24 mov r3, r2 ldr r1, [r5, #12] bl rknand_print_hex -.L3988: +.L3981: ldr r3, [r5, #12] ldr r3, [r3, #4] cmp r3, r9 - bne .L3989 + bne .L3982 ldr r3, [r5, #36] cmn r3, #1 - bne .L3990 -.L3989: - ldr r1, .L4031+12 + bne .L3983 +.L3982: + ldr r1, .L4023+8 movw r2, #581 - ldr r0, .L4031+16 + ldr r0, .L4023+12 bl printk bl dump_stack -.L3990: +.L3983: cmp r7, #0 - beq .L3991 - ldr r3, [sp, #24] + beq .L3984 + ldr r3, [sp, #28] mov r2, r7, asl #9 cmn r3, #1 - beq .L3992 + beq .L3985 mov r0, fp ldr r1, [r5, #4] bl ftl_memcpy - b .L3993 -.L3986: + b .L3986 +.L3979: cmp r7, #0 moveq r5, r7 moveq r10, r7 - beq .L3991 + beq .L3984 mov r2, r7, asl #9 mov r10, r5 -.L3992: +.L3985: mov r0, fp mov r1, #0 bl ftl_memset -.L3993: +.L3986: ldr r4, [r6, #580] add r4, r4, #48 -.L3991: +.L3984: ldr r3, [sp, #12] ldrb r2, [r6, #2260] @ zero_extendqisi2 add r7, r7, r3 cmp r7, r2 - bcc .L3994 + bcc .L3987 ldrhi r4, [r6, #580] addhi r4, r4, #16 - b .L3995 -.L3994: - ldr r3, [sp, #24] + b .L3988 +.L3987: + ldr r3, [sp, #28] rsb r2, r7, r2 mov r7, r7, asl #9 cmn r3, #1 mov r2, r2, asl #9 - beq .L3996 + beq .L3989 ldr r1, [r5, #4] add r0, fp, r7 add r1, r1, r7 bl ftl_memcpy - b .L3995 -.L3996: + b .L3988 +.L3989: add r0, fp, r7 mov r1, #0 bl ftl_memset -.L3995: +.L3988: cmp r5, #0 - beq .L3982 + beq .L3975 ldrb r3, [r5, #2] @ zero_extendqisi2 mov r1, r5 - ldr r0, .L4031+32 + ldr r0, .L4023+28 bic r3, r3, #8 strb r3, [r5, #2] bl buf_remove_buf mov r0, r5 bl zbuf_free - b .L3982 -.L4006: + b .L3975 +.L3998: mov r10, #0 -.L3982: +.L3975: ldrh r3, [r4, #6] cmp r3, #0 - bne .L3997 + bne .L3990 bl ftl_flush mov r0, r4 bl ftl_alloc_new_data_sblk -.L3997: +.L3990: mov r0, r4 - ldr r5, .L4031+20 + ldr r5, .L4023+16 bl ftl_get_new_free_page mov r3, #48 ldr r2, [sp, #16] @@ -24183,7 +24068,7 @@ ftl_write_commit: str r9, [ip, #4] str r10, [ip, #12] str r1, [ip] - ldr r1, [sp, #24] + ldr r1, [sp, #28] str r1, [ip, #8] str r1, [r2, #752] mvn r1, #0 @@ -24192,11 +24077,11 @@ ftl_write_commit: str r0, [r2, #748] orr r1, r1, #10 strb r1, [r2, #726] - ldr r2, .L4031+8 + ldr r2, .L4023+4 ldrh r10, [r4, #10] ldrh r9, [r4, #12] add r3, r2, r3 - ldr r0, .L4031+36 + ldr r0, .L4023+32 add r9, r10, r9 ldr r1, [sp, #20] sub r9, r9, #1 @@ -24210,13 +24095,13 @@ ftl_write_commit: ldrh r2, [r4, #6] cmp r3, #2 str r0, [r5, #-3236] - bhi .L3998 + bhi .L3991 cmp r2, #1 - bne .L3970 -.L3998: + bne .L3963 +.L3991: ldrb r1, [r4, #5] @ zero_extendqisi2 mov lr, #48 - ldrb r0, [r5, #-3239] @ zero_extendqisi2 + ldrb r0, [r5, #-3240] @ zero_extendqisi2 cmp r1, #0 mov r1, #0 moveq ip, #1 @@ -24224,16 +24109,16 @@ ftl_write_commit: cmp r2, #1 mov r2, r0 moveq ip, r3 -.L4002: +.L3995: cmp r1, ip mlane r2, lr, r2, r6 addne r1, r1, #1 ldrneb r2, [r2, #724] @ zero_extendqisi2 - bne .L4002 -.L4030: - strb r2, [r5, #-3239] + bne .L3995 +.L4022: + strb r2, [r5, #-3240] uxtb r1, r1 - ldr r2, .L4031+8 + ldr r2, .L4023+4 rsb r3, r1, r3 strb r3, [r8, #2285] mov r3, #48 @@ -24241,43 +24126,35 @@ ftl_write_commit: bl sblk_prog_page ldrh r3, [r4, #6] cmp r3, #1 - bne .L3970 + bne .L3963 bl sblk_wait_write_queue_completed bl ftl_write_completed mov r0, r4 bl ftl_write_last_log_page mov r0, r4 bl ftl_alloc_new_data_sblk -.L3970: +.L3963: ldrb r4, [r6, #2284] @ zero_extendqisi2 cmp r4, #0 - bne .L3968 + bne .L3961 bl ftl_write_completed mov r0, r4 -.L3973: - ldr r3, .L4031 - ldr r2, [sp, #28] - ldr r3, [r3] - cmp r2, r3 - beq .L4005 - bl __stack_chk_fail -.L4005: +.L4019: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4032: +.L4024: .align 2 -.L4031: - .word __stack_chk_guard +.L4023: .word .LANCHOR0 .word .LANCHOR0+724 .word .LANCHOR1+2144 .word .LC0 .word .LANCHOR3 - .word .LC299 + .word .LC300 .word .LC230 .word .LANCHOR0+3533 - .word .LANCHOR3-3239 + .word .LANCHOR3-3240 .fnend .size ftl_write_commit, .-ftl_write_commit .align 2 @@ -24285,25 +24162,22 @@ ftl_write_commit: .type gc_do_copy_back, %function gc_do_copy_back: .fnstart - @ args = 0, pretend = 0, frame = 56 + @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L4181 + 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 #92 - sub sp, sp, #92 - ldr r3, [r3] - str r3, [sp, #84] - ldr r3, .L4181+4 + .pad #76 + sub sp, sp, #76 ldrb r0, [r3, #2945] @ zero_extendqisi2 - ldr r9, [r3, #580] + ldr r8, [r3, #580] cmp r0, #0 - bne .L4034 + bne .L4026 mov r7, r3 bl buf_alloc subs r4, r0, #0 - beq .L4033 - ldr r6, .L4181+8 + beq .L4025 + ldr r6, .L4168+4 ldrh r5, [r6, #22] mov r0, r5 add r5, r5, #1 @@ -24317,54 +24191,54 @@ gc_do_copy_back: ldr r3, [r4, #36] cmn r3, #1 cmpne r3, #512 - bne .L4036 - ldr r1, .L4181+12 + bne .L4028 + ldr r1, .L4168+8 mov r2, #864 - ldr r0, .L4181+16 + ldr r0, .L4168+12 bl printk bl dump_stack -.L4036: +.L4028: ldr r3, [r4, #12] ldr r5, [r3, #4] mov r0, r5 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #56] - bne .L4037 + str r0, [sp, #48] + bne .L4029 mov r0, r5 - add r1, sp, #56 + add r1, sp, #48 mov r2, #0 bl pm_log2phys -.L4037: - ldr r8, [sp, #56] +.L4029: + ldr r8, [sp, #48] cmp r8, r9 - bne .L4038 - ldr r1, .L4181+20 + bne .L4030 + ldr r1, .L4168+16 mov r3, #0 -.L4041: +.L4033: add r2, r1, r3 ldr r0, [r2, #20] cmp r0, r5 - bne .L4039 + bne .L4031 ldrb r2, [r2, #2] @ zero_extendqisi2 tst r2, #2 - beq .L4039 + beq .L4031 mov r0, r4 bl zbuf_free - ldr r3, .L4181+24 + ldr r3, .L4168+20 ldr r3, [r3] tst r3, #256 - beq .L4033 + beq .L4025 mov r1, r5 mov r2, r8 ldrh r3, [r6, #22] - ldr r0, .L4181+28 + ldr r0, .L4168+24 bl printk - b .L4033 -.L4039: + b .L4025 +.L4031: add r3, r3, #48 cmp r3, #1536 - bne .L4041 + bne .L4033 mov r3, #0 strb r3, [r4, #41] ldrb r3, [r7, #2260] @ zero_extendqisi2 @@ -24376,22 +24250,22 @@ gc_do_copy_back: ldr r3, [r4, #12] ldr r3, [r3] str r3, [r4, #16] - ldr r3, .L4181+24 + ldr r3, .L4168+20 ldr r3, [r3] tst r3, #256 - beq .L4042 + beq .L4034 mov r0, r5 - ldr r9, [sp, #56] + ldr r9, [sp, #48] bl lpa_hash_get_ppa mov r1, r5 str r8, [sp] mov r3, r0 ldrh r2, [r6, #22] - ldr r0, .L4181+32 + ldr r0, .L4168+28 str r2, [sp, #4] mov r2, r9 bl printk -.L4042: +.L4034: mov r0, r4 bl ftl_gc_write_buf bl ftl_write_commit @@ -24402,61 +24276,61 @@ gc_do_copy_back: ldrh r3, [r6, #24] add r3, r3, #1 strh r3, [r6, #24] @ movhi - b .L4033 -.L4038: - ldr r3, .L4181+24 + b .L4025 +.L4030: + ldr r3, .L4168+20 ldr r3, [r3] tst r3, #256 - beq .L4044 + beq .L4036 mov r0, r5 bl lpa_hash_get_ppa mov r1, r5 str r9, [sp] mov r3, r0 ldrh r2, [r6, #22] - ldr r0, .L4181+32 + ldr r0, .L4168+28 str r2, [sp, #4] mov r2, r8 bl printk -.L4044: +.L4036: mov r0, r4 bl zbuf_free - b .L4033 -.L4034: + b .L4025 +.L4026: ldrb r4, [r3, #2937] @ zero_extendqisi2 - ldr r7, .L4181+8 + ldr r6, .L4168+4 cmp r4, #3 - ldrb fp, [r9, #89] @ zero_extendqisi2 - bne .L4045 + ldrb r9, [r8, #89] @ zero_extendqisi2 + bne .L4037 ldrb r2, [r3, #684] @ zero_extendqisi2 cmp r2, #0 - beq .L4046 + beq .L4038 movw r3, #566 - mov r1, fp - ldrh r8, [r7, r3] - mov r0, r8 + mov r1, r9 + ldrh r7, [r6, r3] + mov r0, r7 bl __aeabi_idiv - ldr r3, .L4181+36 + ldr r3, .L4168+32 ldrb r2, [r3, #-2503] @ zero_extendqisi2 cmp r2, #0 uxth r5, r0 - beq .L4047 - ldr r3, .L4181+40 + beq .L4039 + ldr r3, .L4168+36 mov r0, r0, asl #1 ldrh r3, [r3, r0] cmp r3, #0 moveq r4, #1 movne r4, #2 - b .L4048 -.L4047: + b .L4040 +.L4039: ldrb r3, [r3, #-2502] @ zero_extendqisi2 cmp r3, #0 moveq r4, #1 - beq .L4048 + beq .L4040 sub r3, r5, #62 cmp r3, #2160 movcs r4, #2 - bcs .L4048 + bcs .L4040 mov r1, r4 mov r0, r5 bl __aeabi_uidivmod @@ -24464,184 +24338,184 @@ gc_do_copy_back: cmp r1, #0 movne r4, #1 moveq r4, #2 -.L4048: - smulbb r1, r5, fp - rsb r1, r1, r8 - b .L4173 -.L4046: +.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 r8, [r7, r3] - mov r0, r8 - beq .L4050 - add r1, fp, fp, asl #1 - sub fp, fp, fp, asl #2 + ldrh r7, [r6, r3] + mov r0, r7 + beq .L4042 + add r1, r9, r9, asl #1 + sub r9, r9, r9, asl #2 bl __aeabi_idiv uxth r5, r0 - smulbb r1, fp, r5 - add r1, r8, r1 -.L4173: - uxth r3, r1 - str r3, [sp, #36] - b .L4051 -.L4050: - mov r1, fp + smulbb r2, r9, r5 + add r2, r7, r2 +.L4160: + uxth r3, r2 + str r3, [sp, #32] + b .L4043 +.L4042: + mov r1, r9 bl __aeabi_idiv - ldr r2, .L4181+44 + ldr r2, .L4168+40 mov r3, r0, asl #1 - smulbb r0, r0, fp + smulbb r0, r0, r9 ldrh r10, [r2, r3] and r3, r10, #7 - str r3, [sp, #32] - rsb r0, r0, r8 + str r3, [sp, #28] + rsb r0, r0, r7 mov r5, r10, lsr #3 uxth r3, r0 - str r3, [sp, #36] - mla fp, fp, r5, r3 - ldr r3, [sp, #32] + str r3, [sp, #32] + mla r9, r9, r5, r3 + ldr r3, [sp, #28] cmp r3, #1 - add fp, fp, fp, asl #1 - uxth r8, fp - bne .L4052 - b .L4051 -.L4045: + add r9, r9, r9, asl #1 + uxth r7, r9 + bne .L4044 + b .L4043 +.L4037: ldrb r3, [r3, #2938] @ zero_extendqisi2 - mov r1, fp + mov r1, r9 cmp r3, #0 movw r3, #566 - ldrh r8, [r7, r3] - mov r0, r8 - bne .L4053 + ldrh r7, [r6, r3] + mov r0, r7 + bne .L4045 bl __aeabi_idiv mov r4, #1 uxth r5, r0 - smulbb r1, r5, fp - rsb r1, r1, r8 - uxth r3, r1 - str r3, [sp, #36] - b .L4051 -.L4053: + smulbb r2, r5, r9 + rsb r2, r2, r7 + uxth r3, r2 + str r3, [sp, #32] + b .L4043 +.L4045: bl __aeabi_idiv mov r4, #2 uxth r5, r0 - smulbb r1, r5, fp - rsb r1, r1, r8 - uxth r3, r1 - str r3, [sp, #36] -.L4051: - ldr fp, .L4181+40 - mov r1, #0 - ldr ip, .L4181+36 - add fp, fp, r5, asl #1 -.L4054: - ldrb lr, [r9, #89] @ zero_extendqisi2 - uxth r0, r1 - mul r3, lr, r4 - cmp r0, r3 - bge .L4106 - ldr r3, .L4181+48 - add r2, r8, r0 - ldrh r3, [r3] - mul r3, lr, r3 - sub r3, r3, #1 - cmp r2, r3 - bne .L4055 - ldrb r3, [ip, #-2503] @ zero_extendqisi2 - cmp r3, #0 - beq .L4106 - ldrh r3, [fp] - cmp r3, r5 - bcs .L4106 - tst r0, #1 - beq .L4106 -.L4055: - ldr r3, .L4181+52 - ldr r3, [r3, #-3312] - ldr lr, [r3, r2, asl #2] - cmn lr, #1 - bne .L4056 - ldrh r10, [r7, #22] - ldrh lr, [r7, #20] - cmp lr, r10 - bls .L4033 - ldrb lr, [ip, #-2503] @ zero_extendqisi2 - cmp lr, #0 - beq .L4057 - ldrh lr, [fp] - cmp lr, r5 - bcs .L4057 - tst r0, #1 - ldrne r0, [r3, lr, asl #2] - strne r0, [r3, r2, asl #2] - bne .L4056 -.L4057: - mov r0, r10 - str ip, [sp, #48] - str r1, [sp, #44] - add r10, r10, #1 - str r3, [sp, #40] - str r2, [sp, #32] - bl gc_get_src_ppa_from_index - strh r10, [r7, #22] @ movhi - ldr r2, [sp, #32] - ldr r3, [sp, #40] - ldr ip, [sp, #48] - ldr r1, [sp, #44] - str r0, [r3, r2, asl #2] -.L4056: - add r1, r1, #1 - b .L4054 -.L4106: - mov r3, #1 + smulbb r2, r5, r9 + rsb r2, r2, r7 + uxth r3, r2 str r3, [sp, #32] -.L4052: - ldr r3, .L4181+24 +.L4043: + ldr r10, .L4168+36 + mov r2, #0 + ldr r1, .L4168+32 + ldr ip, .L4168+44 + 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 + ldrh r0, [r10] + cmp r0, r5 + bcs .L4096 + tst lr, #1 + beq .L4096 +.L4047: + ldr fp, [ip, #-3312] + 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 + cmp r0, #0 + beq .L4049 + ldrh r0, [r10] + cmp r0, r5 + bcs .L4049 + tst lr, #1 + ldrne r0, [fp, r0, asl #2] + strne r0, [fp, r3, asl #2] + bne .L4048 +.L4049: + mov r0, r9 + str ip, [sp, #44] + str r1, [sp, #40] + add r9, r9, #1 + str r2, [sp, #36] + str r3, [sp, #28] + 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] + 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 .L4059 - ldr r3, .L4181+52 + beq .L4051 + ldr r3, .L4168+44 movw r2, #566 - ldrh r2, [r7, r2] + ldrh r2, [r6, r2] mov r1, r5 - ldr r0, .L4181+56 + ldr r0, .L4168+52 ldr r3, [r3, #-3312] str r2, [sp] - ldr r2, [r3, r8, asl #2] - add r3, r3, r8, asl #2 + ldr r2, [r3, r7, asl #2] + add r3, r3, r7, asl #2 str r2, [sp, #4] ldr r3, [r3, #4] - ldr r2, .L4181+40 - str r8, [sp, #12] + ldr r2, .L4168+36 + str r7, [sp, #12] str r3, [sp, #8] mov r3, r5, asl #1 ldrh r3, [r2, r3] - ldr r2, [sp, #32] + ldr r2, [sp, #28] str r3, [sp, #16] - ldr r3, [sp, #36] + ldr r3, [sp, #32] bl printk -.L4059: - ldr r1, .L4181+40 +.L4051: + ldr r2, .L4168+36 mov r3, #0 + str r3, [sp, #36] + add r3, r2, r5, asl #1 str r3, [sp, #40] - add r3, r1, r5, asl #1 - str r3, [sp, #44] -.L4060: - ldrb r1, [r9, #89] @ zero_extendqisi2 - ldrh r7, [sp, #40] - ldr r10, .L4181+4 +.L4052: + ldrb r1, [r8, #89] @ zero_extendqisi2 + ldrh r9, [sp, #36] + ldr r10, .L4168 mul r3, r1, r4 - cmp r7, r3 - bge .L4177 + cmp r9, r3 + bge .L4164 ldr r2, [r10, #2940] - add fp, r8, r7 + add fp, r7, r9 ldrb r2, [r2, fp] @ zero_extendqisi2 cmp r2, #255 - bne .L4061 + bne .L4053 mov r0, #0 bl buf_alloc subs r6, r0, #0 - bne .L4062 + bne .L4054 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed @@ -24649,40 +24523,40 @@ gc_do_copy_back: mov r0, r6 bl buf_alloc subs r6, r0, #0 - beq .L4033 -.L4062: + beq .L4025 +.L4054: ldrb r1, [r6, #1] @ zero_extendqisi2 ldr r2, [r10, #2940] - ldrb r3, [sp, #32] @ zero_extendqisi2 - ldr ip, .L4181+48 + 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, r7, r8 + add r2, r9, r7 strh r2, [r6, #32] @ movhi - ldrb r2, [r9, #89] @ zero_extendqisi2 + ldrb r2, [r8, #89] @ zero_extendqisi2 mul r2, r2, r1 - ldr r1, .L4181+52 + ldr r1, .L4168+44 sub r2, r2, #1 cmp fp, r2 - bne .L4063 - ldr r2, .L4181+36 + bne .L4055 + ldr r2, .L4168+32 ldrb r2, [r2, #-2503] @ zero_extendqisi2 cmp r2, #0 - beq .L4064 - ldr r3, [sp, #44] + beq .L4056 + ldr r3, [sp, #40] ldrh r2, [r3] cmp r2, r5 - bcs .L4064 - tst r7, #1 - bne .L4063 -.L4064: + bcs .L4056 + tst r9, #1 + bne .L4055 +.L4056: ldr r2, [r1, #-3316] mvn r0, #0 - str ip, [sp, #48] + str ip, [sp, #44] str r0, [r2, fp, asl #2] ldrh r0, [ip] ldrb r2, [r10, #2964] @ zero_extendqisi2 @@ -24693,18 +24567,18 @@ gc_do_copy_back: bl ftl_memcpy ldrb r3, [r10, #2964] @ zero_extendqisi2 ldr r0, [r6, #4] - ldr r10, .L4181+4 - ldr ip, [sp, #48] + ldr r10, .L4168 + ldr ip, [sp, #44] ldrh r2, [ip] mul r2, r3, r2 - ldr r3, .L4181+36 + ldr r3, .L4168+32 ldrb r3, [r3, #-2502] @ zero_extendqisi2 cmp r3, #0 mov r2, r2, asl #2 - ldrne r1, .L4181+4 + ldrne r1, .L4168 mov r3, r2 add r0, r0, r3 - ldr r3, .L4181+52 + ldr r3, .L4168+44 ldrneb r1, [r1, #2260] @ zero_extendqisi2 rsbne r2, r2, r1, asl #9 ldr r1, [r3, #-3312] @@ -24715,25 +24589,25 @@ gc_do_copy_back: mov r2, r2, asl #1 bl ftl_memset ldr r2, [r6, #12] - ldr r1, .L4181+60 + ldr r1, .L4168+56 str r1, [r2] - ldr r1, .L4181+48 + 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, #48] + str r2, [sp, #44] bl js_hash ldr r3, [r10, #580] - ldr r2, [sp, #48] + ldr r2, [sp, #44] str r0, [r2, #4] ldr r2, [r6, #12] ldr r3, [r3, #132] str r3, [r2, #8] - b .L4061 -.L4063: + b .L4053 +.L4055: ldr r2, [r1, #-3312] mov r0, r6 mov r1, #1 @@ -24743,8 +24617,8 @@ gc_do_copy_back: ldr r2, [r6, #36] cmn r2, #1 cmpne r2, #512 - bne .L4067 - ldr r2, .L4181+64 + bne .L4059 + ldr r2, .L4168+60 ldrb r0, [r10, #676] @ zero_extendqisi2 ldrh r1, [r2] rsb r0, r0, #24 @@ -24764,19 +24638,19 @@ gc_do_copy_back: ldreq r3, [r6, #12] mvneq r2, #0 streq r2, [r3, #4] -.L4067: +.L4059: ldr r3, [r6, #36] cmn r3, #1 cmpne r3, #512 - bne .L4069 - ldr r1, .L4181+12 + bne .L4061 + ldr r1, .L4168+8 movw r2, #1003 - ldr r0, .L4181+16 + ldr r0, .L4168+12 bl printk bl dump_stack -.L4069: +.L4061: ldr r3, [r6, #12] - ldr r2, .L4181+4 + ldr r2, .L4168 ldr r1, [r3, #4] ldr r2, [r2, #2268] cmp r1, r2 @@ -24784,367 +24658,316 @@ gc_do_copy_back: strcs r2, [r3, #4] ldr r3, [r6, #12] ldr r2, [r3, #4] - ldr r3, .L4181+52 + 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] -.L4061: - ldr r0, .L4181+4 - mov r2, #48 - add ip, r0, #724 - ldr r3, [r0, #2940] - ldrb r10, [r3, fp] @ zero_extendqisi2 - add r3, sp, #88 - add r1, r3, r7, asl #2 - ldrb r3, [sp, #32] @ zero_extendqisi2 - mul r2, r2, r10 - add ip, ip, r2 - str ip, [r1, #-28] - mov r1, #2 - add r2, r0, r2 - strh r1, [ip, #34] @ movhi - ldrb r1, [r0, #2937] @ zero_extendqisi2 - strb r3, [r2, #769] - cmp r1, #3 - bne .L4071 - ldrb r1, [r0, #684] @ zero_extendqisi2 - cmp r1, #0 - beq .L4072 - ldr r1, .L4181+36 - and r2, r7, #1 - add ip, r5, r2 +.L4053: + ldr r3, .L4168 + mov r1, #48 + add r0, r3, #724 + ldr r2, [r3, #2940] + ldrb r6, [r2, fp] @ zero_extendqisi2 + add r2, sp, #72 + add r2, r2, r9, asl #2 + mul r1, r1, r6 + add r0, r0, r1 + str r0, [r2, #-24] + ldrb r2, [sp, #28] @ zero_extendqisi2 + add r1, r3, r1 + strb r2, [r1, #769] + mov r2, #2 + strh r2, [r0, #34] @ movhi + ldrb r2, [r3, #2937] @ zero_extendqisi2 + cmp r2, #3 + bne .L4063 + ldrb r3, [r3, #684] @ zero_extendqisi2 + cmp r3, #0 + beq .L4064 + ldr r1, .L4168+32 + and r2, r9, #1 + add r3, r5, r2 ldrb r1, [r1, #-2503] @ zero_extendqisi2 cmp r1, #0 - beq .L4073 - ldr r3, [sp, #44] - ldrh r1, [r3] + beq .L4065 + ldr r1, [sp, #40] + ldrh r1, [r1] cmp r1, r5 movcs r2, #0 andcc r2, r2, #1 cmp r2, #0 - movne ip, r1 -.L4073: - ldr r2, .L4181+4 + movne r3, r1 +.L4065: + ldr r2, .L4168 mov r1, #48 - mov r0, r7 - str ip, [sp, #52] - mla r2, r1, r10, r2 + mov r0, r9 + str r3, [sp, #44] + mla r10, r1, r6, r2 mov r1, r4 - str r2, [sp, #48] bl __aeabi_uidiv - ldr r3, [sp, #36] - ldr ip, [sp, #52] + ldr r3, [sp, #32] uxtah r0, r3, r0 - ldr r2, [sp, #48] - add r0, r9, r0, asl #1 + ldr r3, [sp, #44] + add r0, r8, r0, asl #1 ldrh r1, [r0, #96] - ldr r0, .L4181+68 + ldr r0, .L4168+64 ldrh r0, [r0] - mla ip, r0, r1, ip - orr ip, ip, #50331648 - str ip, [r2, #748] - b .L4074 -.L4072: - ldr r0, .L4181+72 - ldrh ip, [ip, #32] - umull r0, r1, r7, r0 - mov r3, r1, lsr #1 - ldr r1, [sp, #36] - uxtah r1, r1, r3 - add r3, r3, r3, asl #1 - rsb r3, r3, r7 - add r1, r9, r1, asl #1 - mov r3, r3, asl #24 - ldrh r0, [r1, #96] - add r3, r3, #16777216 - ldr r1, .L4181+68 - ldrh r1, [r1] - mul r1, r1, r0 - orr r1, r1, r5 - str r1, [r2, #748] - ldr r2, .L4181+52 - orr r1, r3, r1 - ldr r2, [r2, #-3308] - str r1, [r2, ip, asl #2] - b .L4075 -.L4071: - cmp r1, #2 - bne .L4074 - ldrb r1, [r0, #2938] @ zero_extendqisi2 - ldr r3, [sp, #36] - cmp r1, #0 - bne .L4077 - add r1, r7, r3 - ldr r0, .L4181+68 - add r1, r9, r1, asl #1 - ldrh r0, [r0] - ldrh r1, [r1, #96] - mla r1, r0, r1, r5 - b .L4174 -.L4077: - add r1, r3, r7, lsr #1 - ldr r0, .L4181+68 - add r1, r9, r1, asl #1 - ldrh r0, [r0] - ldrh r1, [r1, #96] - mla r1, r0, r1, r5 - and r0, r7, #1 - add r1, r1, r0 -.L4174: - orr r1, r1, #33554432 - str r1, [r2, #748] -.L4074: - mov r1, #48 - ldr r2, .L4181+4 - mul r3, r1, r10 - add r1, r2, r3 - add r2, r2, #724 - add r3, r2, r3 - ldr r1, [r1, #748] - ldrh r2, [r3, #32] - ldr r3, .L4181+52 - ldr r3, [r3, #-3308] - str r1, [r3, r2, asl #2] -.L4075: - ldr r3, .L4181+24 - ldr r3, [r3] - tst r3, #256 - beq .L4078 - ldr r1, .L4181+4 - add r3, sp, #88 - add r3, r3, r7, asl #2 - ldr r0, .L4181+72 - ldr r2, [r3, #-28] - ldrb r3, [r1, #2318] @ zero_extendqisi2 - ldr r1, [r1, #2940] - ldrb r1, [r1, fp] @ zero_extendqisi2 - str r1, [sp] - ldr r1, [r2, #24] - str r1, [sp, #4] - ldrh r1, [r2, #32] - str r1, [sp, #8] - ldrb r1, [r2, #1] @ zero_extendqisi2 - str r1, [sp, #12] - umull r0, r1, r7, r0 - ldr r0, [sp, #36] - ubfx r1, r1, #1, #16 - add r1, r0, r1 - str r1, [sp, #16] - ldr r2, [r2, #12] - mov r1, r7 - ldr r0, .L4181+76 - ldr r2, [r2, #4] - str r2, [sp, #20] - ldr r2, [r6, #12] - ldr r2, [r2] - str r2, [sp, #24] + 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] - bl printk -.L4078: - ldr r3, .L4181+36 + 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 .L4079 - ldr r3, [sp, #44] + beq .L4070 + ldr r3, [sp, #40] ldrh r3, [r3] cmp r3, r5 - bcs .L4079 - tst r7, #1 - beq .L4079 - ldr r1, .L4181+4 - mvn r2, #0 - ldr r3, [r1, #2940] - strb r2, [r3, fp] - add r3, sp, #88 - add r7, r3, r7, asl #2 - ldrb r3, [r9, #89] @ zero_extendqisi2 - ldr r1, [r1, #2940] - ldr r0, [r7, #-28] + bcs .L4070 + 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, r8, r3 + add r3, r7, r3 uxth r3, r3 - strh r3, [r0, #32] @ movhi - ldrb r0, [r0, #1] @ zero_extendqisi2 - strb r0, [r1, r3] - ldr r3, .L4181+52 + strh r3, [r1, #32] @ movhi + ldrb r1, [r1, #1] @ zero_extendqisi2 + strb r1, [r2, r3] + ldr r3, .L4168+44 ldr r3, [r3, #-3312] - str r2, [r3, fp, asl #2] -.L4079: - ldr r3, [sp, #40] + str r6, [r3, fp, asl #2] +.L4070: + ldr r3, [sp, #36] add r3, r3, #1 - str r3, [sp, #40] - b .L4060 -.L4177: + str r3, [sp, #36] + b .L4052 +.L4164: ldrb r2, [r10, #2937] @ zero_extendqisi2 cmp r2, #3 - bne .L4081 - ldrb ip, [r10, #684] @ zero_extendqisi2 - cmp ip, #0 - beq .L4178 + bne .L4072 + ldrb r0, [r10, #684] @ zero_extendqisi2 + cmp r0, #0 + beq .L4165 mov r0, #0 -.L4082: - ldrb r2, [r9, #89] @ zero_extendqisi2 +.L4073: + ldrb r2, [r8, #89] @ zero_extendqisi2 uxth r1, r0 - add r3, sp, #88 + add r3, sp, #72 add r0, r0, #1 mul r2, r4, r2 sub r2, r2, #1 cmp r1, r2 - bge .L4179 + bge .L4166 add r2, r3, r1, asl #2 add r1, r3, r1, asl #2 - ldr r1, [r1, #-24] - ldr r2, [r2, #-28] + ldr r1, [r1, #-20] + ldr r2, [r2, #-24] ldrb r1, [r1, #1] @ zero_extendqisi2 strb r1, [r2] - b .L4082 -.L4179: + b .L4073 +.L4166: add r2, r3, r2, asl #2 - ldr r2, [r2, #-28] - b .L4175 -.L4178: - add r0, sp, #88 + ldr r2, [r2, #-24] + b .L4162 +.L4165: ldrb r1, [r10, #2944] @ zero_extendqisi2 - ldr r2, [r0, #-28]! + ldr r2, [sp, #48] cmp r1, #0 - strneb ip, [r2, #44] - bne .L4176 - ldr r3, [sp, #32] + strneb r0, [r2, #44] + bne .L4163 + ldr r3, [sp, #28] cmp r3, #1 moveq r1, #9 - beq .L4089 - ldr r3, [sp, #32] + beq .L4080 + ldr r3, [sp, #28] cmp r3, #2 moveq r1, #13 -.L4089: +.L4080: strb r1, [r2, #44] -.L4176: - add r1, sp, #72 - ldrb r2, [r9, #89] @ zero_extendqisi2 +.L4163: + add r1, sp, #60 + ldrb r2, [r8, #89] @ zero_extendqisi2 + add r0, sp, #48 bl sblk_xlc_prog_pages - b .L4085 -.L4081: + b .L4076 +.L4072: ldrb r2, [r10, #2938] @ zero_extendqisi2 cmp r2, #0 - beq .L4171 + beq .L4158 ldrb r2, [r10, #2939] @ zero_extendqisi2 cmp r2, #0 - beq .L4171 - add r0, sp, #60 + beq .L4158 + add r0, sp, #48 bl sblk_3d_mlc_prog_pages - b .L4085 -.L4171: - ldrb r1, [r9, #89] @ zero_extendqisi2 + b .L4076 +.L4158: + ldrb r1, [r8, #89] @ zero_extendqisi2 uxth r0, r2 - add r3, sp, #88 + add r3, sp, #72 add r2, r2, #1 mul r1, r4, r1 sub r1, r1, #1 cmp r0, r1 - bge .L4180 + bge .L4167 add r1, r3, r0, asl #2 add r0, r3, r0, asl #2 - ldr r0, [r0, #-24] - ldr r1, [r1, #-28] + ldr r0, [r0, #-20] + ldr r1, [r1, #-24] ldrb r0, [r0, #1] @ zero_extendqisi2 strb r0, [r1] - b .L4171 -.L4180: + b .L4158 +.L4167: add r1, r3, r1, asl #2 - ldr r2, [r1, #-28] -.L4175: + ldr r2, [r1, #-24] +.L4162: mvn r1, #0 strb r1, [r2] - ldrb r1, [r9, #89] @ zero_extendqisi2 - ldr r0, [sp, #60] + ldrb r1, [r8, #89] @ zero_extendqisi2 + ldr r0, [sp, #48] smulbb r1, r4, r1 uxtb r1, r1 bl sblk_prog_page -.L4085: +.L4076: ldrb r2, [r10, #2944] @ zero_extendqisi2 - ldr r1, .L4181+4 + ldr r1, .L4168 cmp r2, #0 - ldrb r2, [r9, #89] @ zero_extendqisi2 + ldrb r2, [r8, #89] @ zero_extendqisi2 addne r2, r2, r2, asl #1 - bne .L4093 + bne .L4084 ldrb r0, [r1, #2938] @ zero_extendqisi2 cmp r0, #0 movne r2, r2, asl #1 - bne .L4093 + bne .L4084 ldrb r1, [r1, #684] @ zero_extendqisi2 cmp r1, #0 uxtheq r2, r2 - beq .L4093 - ldr r0, .L4181+36 + beq .L4084 + ldr r0, .L4168+32 uxth r1, r2 mul r2, r4, r1 ldrb r0, [r0, #-2503] @ zero_extendqisi2 cmp r0, #0 - beq .L4093 - ldr ip, .L4181+40 + beq .L4084 + ldr ip, .L4168+36 mov r0, r5, asl #1 ldrh r0, [ip, r0] cmp r0, r5 movcc r2, r1 -.L4093: +.L4084: ldr r0, [r10, #2288] + movw r4, #566 ldr r1, [r0, #52] add r1, r1, r2 str r1, [r0, #52] - ldr r0, .L4181+8 - movw r1, #566 - ldrh r4, [r0, r1] - add r4, r2, r4 - movw r2, #2962 - ldrh r2, [r10, r2] - uxth r4, r4 - strh r4, [r0, r1] @ movhi - ldrb r3, [r9, #89] @ zero_extendqisi2 - mul r3, r3, r2 - cmp r4, r3 - ldrge r3, .L4181+4 + 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 movge r2, #0 ldrge r3, [r3, #580] strgeh r2, [r3, #86] @ movhi bl gc_write_completed -.L4033: - ldr r3, .L4181 - ldr r2, [sp, #84] - ldr r3, [r3] - cmp r2, r3 - beq .L4098 - bl __stack_chk_fail -.L4098: - add sp, sp, #92 +.L4025: + add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4182: +.L4169: .align 2 -.L4181: - .word __stack_chk_guard +.L4168: .word .LANCHOR0 .word .LANCHOR0+2312 .word .LANCHOR1+2164 .word .LC0 .word .LANCHOR0+724 .word .LANCHOR2 - .word .LC300 .word .LC301 - .word .LANCHOR5 - .word .LANCHOR2+1960 - .word .LANCHOR2+3496 - .word .LANCHOR0+2962 - .word .LANCHOR3 .word .LC302 + .word .LANCHOR5 + .word .LANCHOR2+1992 + .word .LANCHOR2+3528 + .word .LANCHOR3 + .word .LANCHOR0+2962 + .word .LC303 .word -178307901 .word .LANCHOR0+2928 .word .LANCHOR0+2994 .word -1431655765 - .word .LC303 .fnend .size gc_do_copy_back, .-gc_do_copy_back .align 2 @@ -25157,7 +24980,7 @@ zftl_do_gc: 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, .L4379 + ldr r4, .L4366 cmp r0, #1 .pad #44 sub sp, sp, #44 @@ -25170,24 +24993,24 @@ zftl_do_gc: ldrh r8, [r4, r3] add r7, r2, r7 uxth r7, r7 - bne .L4184 - ldr r6, .L4379+4 + bne .L4171 + ldr r6, .L4366+4 ldr r9, [r6, #-2476] cmp r9, #0 - bne .L4185 + bne .L4172 ldr r3, [r6, #-2472] cmp r3, #0 - beq .L4184 -.L4185: + beq .L4171 +.L4172: movw r3, #2974 ldrh r3, [r4, r3] cmp r7, r3, lsr #2 - bls .L4184 - ldr r1, .L4379 + bls .L4171 + ldr r1, .L4366 movw r3, #2292 ldrh r3, [r1, r3] cmp r3, r7 - bcs .L4184 + bcs .L4171 bl timer_get_time add r9, r9, #20 ldr r4, [r6, #-2472] @@ -25197,25 +25020,25 @@ zftl_do_gc: strcc r3, [r6, #-2476] bl timer_get_time cmp r4, r0 - ldrcc r3, .L4379+4 + ldrcc r3, .L4366+4 movcc r2, #0 strcc r2, [r3, #-2472] - b .L4300 -.L4184: - ldr r6, .L4379+8 + b .L4287 +.L4171: + ldr r6, .L4366+8 ldrb r3, [r6, #-3322] @ zero_extendqisi2 cmp r3, #6 ldrls pc, [pc, r3, asl #2] - b .L4300 -.L4190: - .word .L4189 - .word .L4191 - .word .L4192 - .word .L4193 - .word .L4194 - .word .L4301 - .word .L4196 -.L4189: + 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] @@ -25226,27 +25049,27 @@ zftl_do_gc: add r9, r3, r9 movw r3, #65535 cmp r1, r3 - ldr r2, .L4379 + ldr r2, .L4366 uxth r9, r9 - beq .L4197 + beq .L4184 cmp r10, #0 - bne .L4198 + bne .L4185 movw r3, #2292 ldrh r3, [r2, r3] cmp r7, r3, asl #1 - bge .L4300 -.L4198: + bge .L4287 +.L4185: movw r3, #2972 - ldr r0, .L4379+12 + ldr r0, .L4366+12 ldrh r1, [r4, r3] - ldr r10, .L4379 + ldr r10, .L4366 add r1, r1, #1 uxth r1, r1 strh r1, [r4, r3] @ movhi bl _list_get_gc_head_node movw r3, #65535 cmp r0, r3 - beq .L4200 + beq .L4187 ldr r1, [r10, #576] mov r2, r0, asl #1 ldr r3, [r6, #-3320] @@ -25256,35 +25079,35 @@ zftl_do_gc: str r3, [r6, #-3320] ldrh r1, [r1] cmp r1, r2 - bcs .L4201 + bcs .L4188 add r1, r10, #564 ldrh r1, [r1] cmp r3, r1, lsr #4 - bls .L4200 + bls .L4187 movw r3, #2294 ldrh r3, [r10, r3] cmp r3, r2 - bls .L4200 -.L4201: + bls .L4187 +.L4188: mov r1, #0 ldrb r2, [r4, #2945] @ zero_extendqisi2 bl gc_add_sblk cmp r0, #0 - beq .L4202 + beq .L4189 mov r3, #1 strb r3, [r6, #-3322] mov r3, #0 str r3, [r6, #-3320] - b .L4300 -.L4200: + b .L4287 +.L4187: movw r3, #2972 mov r2, #0 strh r2, [r4, r3] @ movhi -.L4202: +.L4189: cmp r8, #15 movls r9, #2 - bls .L4203 - ldr r2, .L4379+16 + bls .L4190 + ldr r2, .L4366+16 movw r3, #2282 ldrh r3, [r4, r3] ldrh r2, [r2] @@ -25297,16 +25120,16 @@ zftl_do_gc: cmp r9, #0 movne r9, #2 moveq r9, #1 -.L4203: - ldr r3, .L4379+20 +.L4190: + ldr r3, .L4366+20 ldr r3, [r3] tst r3, #256 - beq .L4204 + beq .L4191 ldr r3, [r4, #580] ldrb r2, [r4, #2945] @ zero_extendqisi2 str r8, [sp] ldrh r1, [r3, #124] - ldr r0, .L4379+24 + ldr r0, .L4366+24 str r1, [sp, #4] ldrh r1, [r3, #120] str r1, [sp, #8] @@ -25317,36 +25140,36 @@ zftl_do_gc: str r3, [sp, #16] mov r3, r7 bl printk -.L4204: +.L4191: ldrb r0, [r4, #2945] @ zero_extendqisi2 mov r1, r9 mov r2, #1 bl gc_search_src_blk cmp r0, #0 - ble .L4205 -.L4206: + ble .L4192 +.L4193: mov r3, #1 - b .L4377 -.L4205: - ldr r3, .L4379 + b .L4364 +.L4192: + ldr r3, .L4366 mov r1, #3 mov r2, #1 ldrb r0, [r3, #2945] @ zero_extendqisi2 bl gc_search_src_blk cmp r0, #0 - bgt .L4206 - b .L4300 -.L4197: - ldr fp, .L4379+20 + bgt .L4193 + b .L4287 +.L4184: + ldr fp, .L4366+20 ldr r3, [fp] str fp, [sp, #28] tst r3, #256 - beq .L4207 + beq .L4194 ldrb r2, [r2, #2945] @ zero_extendqisi2 movw r1, #2183 str r8, [sp] ldrh r3, [r5, #124] - ldr r0, .L4379+24 + ldr r0, .L4366+24 str r3, [sp, #4] ldrh r3, [r5, #120] str r3, [sp, #8] @@ -25355,47 +25178,47 @@ zftl_do_gc: str r3, [sp, #12] mov r3, r7 bl printk -.L4207: +.L4194: cmp r10, #1 - bne .L4208 + bne .L4195 bl gc_scan_static_data ldr r3, [r4, #580] ldrh r3, [r3, #122] cmp r3, #0 - beq .L4209 -.L4210: + beq .L4196 +.L4197: mov r3, #1 strb r3, [r4, #2945] - b .L4377 -.L4209: + b .L4364 +.L4196: bl gc_static_wearleveling cmp r0, #0 - bne .L4210 + bne .L4197 bl gc_block_vpn_scan cmp r8, #0 - beq .L4305 + beq .L4292 cmp r7, r9 - bcs .L4213 - ldr r2, .L4379 + bcs .L4200 + ldr r2, .L4366 movw r3, #2974 ldrh r3, [r2, r3] cmp r3, r7 - bhi .L4214 -.L4213: + bhi .L4201 +.L4200: movw r1, #2974 add r3, r7, r9 ldrh r1, [r4, r1] - ldr r2, .L4379 + ldr r2, .L4366 cmp r3, r1 - blt .L4214 + blt .L4201 add r3, r2, #2976 movw r1, #2282 ldrh r2, [r2, r1] ldrh r3, [r3] cmp r2, r3 - bcc .L4305 -.L4214: - ldr r5, .L4379 + bcc .L4292 +.L4201: + ldr r5, .L4366 mov fp, #1 ldr r2, [r6, #-3320] add r1, r5, #564 @@ -25404,17 +25227,17 @@ zftl_do_gc: str r2, [r6, #-3320] ldrh r1, [r1] cmp r2, r1, lsr #5 - bls .L4216 + bls .L4203 movw r2, #2282 ldrh r2, [r5, r2] cmp r2, r8 - bls .L4216 - ldr r0, .L4379+12 + bls .L4203 + ldr r0, .L4366+12 mov r1, #0 bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L4305 + beq .L4292 ldr r2, [r5, #576] mov r0, r0, asl fp ldrh r1, [r2, r0] @@ -25423,15 +25246,15 @@ zftl_do_gc: ldrb r2, [r5, #2964] @ zero_extendqisi2 mul r2, r2, r0 cmp r1, r2 - bgt .L4305 - ldr r2, .L4379+8 + bgt .L4292 + ldr r2, .L4366+8 mov r1, #0 mov r0, fp str r1, [r2, #-3320] mov r1, #2 - b .L4369 -.L4216: - ldr r3, .L4379 + b .L4356 +.L4203: + ldr r3, .L4366 movw r1, #2282 ldrh r1, [r4, r1] add r2, r3, #2976 @@ -25440,40 +25263,40 @@ zftl_do_gc: movcs r0, #1 movcs r1, #2 movcs r2, r0 - bcs .L4370 + bcs .L4357 movw r2, #2278 ldrh r5, [r3, r2] cmp r5, #0 - bne .L4220 + bne .L4207 movw r2, #2280 ldrh r3, [r3, r2] cmp r3, #8 - bls .L4212 -.L4220: + bls .L4199 +.L4207: mov r0, #1 mov r1, r0 -.L4369: +.L4356: mov r2, #4 -.L4370: +.L4357: bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - bne .L4206 - b .L4305 -.L4208: + bne .L4193 + b .L4292 +.L4195: movw r3, #2292 ldrh r3, [r4, r3] cmp r3, r7 - bcc .L4300 -.L4305: + bcc .L4287 +.L4292: mov r5, #16 -.L4212: +.L4199: ldr r2, [r4, #2304] - ldr r3, .L4379 + ldr r3, .L4366 cmp r2, #0 - beq .L4221 + beq .L4208 mov ip, #0 - ldr r0, .L4379+12 + ldr r0, .L4366+12 mov r1, ip str ip, [r3, #2304] mov fp, #1 @@ -25483,98 +25306,98 @@ zftl_do_gc: bl _list_get_gc_head_node movw lr, #65535 cmp r0, lr - beq .L4222 + 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 .L4222 + bhi .L4209 mov r1, ip mov r2, fp str fp, [r3, #2304] bl gc_add_sblk cmp r0, #0 - bne .L4206 -.L4222: - ldr r0, .L4379+28 + bne .L4193 +.L4209: + ldr r0, .L4366+28 mov r1, #0 bl _list_get_gc_head_node movw r2, #65535 - ldr fp, .L4379 + ldr fp, .L4366 cmp r0, r2 - beq .L4223 + beq .L4210 ldr r2, [fp, #576] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #4 - bhi .L4223 + bhi .L4210 mov r2, #1 mov r1, #0 str r2, [fp, #2304] bl gc_add_sblk cmp r0, #0 - bne .L4206 -.L4223: + bne .L4193 +.L4210: mov r1, #0 - ldr r0, .L4379+32 + ldr r0, .L4366+32 bl _list_get_gc_head_node movw r1, #65535 - ldr fp, .L4379 + ldr fp, .L4366 cmp r0, r1 - beq .L4221 + beq .L4208 ldr r1, [fp, #576] mov r3, r0, asl #1 ldrh r3, [r1, r3] cmp r3, #4 - bhi .L4221 + bhi .L4208 mov r1, #1 mov r2, #0 str r1, [fp, #2304] bl gc_add_sblk cmp r0, #0 - bne .L4206 -.L4221: + bne .L4193 +.L4208: ldr lr, [r4, #580] mov r0, #1 - ldr fp, .L4379 + ldr fp, .L4366 strb r0, [r4, #2945] ldrh ip, [lr, #124] cmp ip, #0 - beq .L4224 + beq .L4211 ldr r3, [sp, #28] mov r2, #0 strb r0, [r6, #-3322] strb r2, [fp, #2945] ldr r3, [r3] tst r3, #256 - beq .L4225 + beq .L4212 stmia sp, {r8, ip} movw r1, #2273 ldrh r3, [lr, #120] - ldr r0, .L4379+36 + ldr r0, .L4366+36 str r3, [sp, #8] ldrh r3, [lr, #122] str r3, [sp, #12] mov r3, r7 bl printk - b .L4225 -.L4224: + b .L4212 +.L4211: movw r2, #2292 ldrh r1, [fp, r2] cmp r7, r1 - bcs .L4226 + bcs .L4213 cmp r8, #0 - beq .L4227 + beq .L4214 cmp r8, #16 - bls .L4228 + bls .L4215 add r2, fp, #2976 movw r1, #2282 ldrh r1, [fp, r1] ldrh r2, [r2] cmp r1, r2 - bhi .L4228 + bhi .L4215 mov r1, r0 mov r2, #4 str ip, [sp, #28] @@ -25583,13 +25406,13 @@ zftl_do_gc: ldr ip, [sp, #28] cmp r0, #0 ldreqb r0, [fp, #2945] @ zero_extendqisi2 - beq .L4375 - ldr r0, .L4379+12 + beq .L4362 + ldr r0, .L4366+12 mov r1, ip bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L4298 + beq .L4285 ldr ip, [fp, #576] mov r1, r0, asl #1 ldr r2, [r6, #-3320] @@ -25599,16 +25422,16 @@ zftl_do_gc: str r2, [r6, #-3320] ldrh ip, [ip] cmp ip, r1 - bcs .L4232 + bcs .L4219 add ip, fp, #564 ldrh ip, [ip] cmp r2, ip, lsr #4 - bls .L4298 + bls .L4285 movw r2, #2294 ldrh r3, [fp, r2] cmp r3, r1 - bls .L4298 -.L4232: + bls .L4285 +.L4219: mov r1, #0 ldrb r2, [r4, #2945] @ zero_extendqisi2 bl gc_add_sblk @@ -25616,8 +25439,8 @@ zftl_do_gc: str r3, [r4, #2304] mov r3, #0 str r3, [r6, #-3320] - b .L4298 -.L4228: + b .L4285 +.L4215: mov r0, #1 mov r1, #2 mov r2, r0 @@ -25625,56 +25448,56 @@ zftl_do_gc: uxth r0, r0 cmp r0, #0 ldreqb r0, [r4, #2945] @ zero_extendqisi2 - bne .L4298 - b .L4373 -.L4227: + bne .L4285 + b .L4360 +.L4214: ldr r3, [sp, #28] strb r8, [fp, #2945] ldr r3, [r3] tst r3, #256 - beq .L4234 + beq .L4221 str r8, [sp] movw r1, #2303 str r8, [sp, #4] mov r2, r8 ldrh r3, [lr, #120] - ldr r0, .L4379+36 + ldr r0, .L4366+36 str r3, [sp, #8] ldrh r3, [lr, #122] str r3, [sp, #12] mov r3, r7 bl printk -.L4234: +.L4221: cmp r7, #16 ldrb r0, [r4, #2945] @ zero_extendqisi2 - bls .L4235 -.L4375: + bls .L4222 +.L4362: mov r1, #3 mov r2, #4 - b .L4372 -.L4235: + b .L4359 +.L4222: mov r1, #1 mov r2, r1 bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - bne .L4298 - ldr r3, .L4379 + bne .L4285 + ldr r3, .L4366 ldrb r0, [r3, #2945] @ zero_extendqisi2 -.L4373: +.L4360: mov r1, #3 mov r2, #2 -.L4372: +.L4359: bl gc_search_src_blk uxth r0, r0 - b .L4230 -.L4226: + b .L4217 +.L4213: cmp r10, #1 - bne .L4225 + bne .L4212 cmp r7, r1, asl #1 - bge .L4236 + bge .L4223 cmp r9, r8, lsr #1 - bcs .L4237 + bcs .L4224 add r1, fp, #2976 movw r0, #2282 ldrh r0, [fp, r0] @@ -25684,32 +25507,32 @@ zftl_do_gc: ldrcch r1, [fp, r1] movcc r1, r1, lsr #2 strcch r1, [fp, r2] @ movhi - bcc .L4225 -.L4237: - ldr r2, .L4379 + bcc .L4212 +.L4224: + ldr r2, .L4366 mov r1, #0 - ldr r0, .L4379+12 + ldr r0, .L4366+12 str r2, [sp, #28] bl _list_get_gc_head_node movw r3, #65535 cmp r0, r3 mov r10, r0 ldr r2, [sp, #28] - bne .L4238 -.L4243: + bne .L4225 +.L4230: cmp r8, #1 - bhi .L4239 - b .L4240 -.L4238: + bhi .L4226 + b .L4227 +.L4225: add r1, r2, #564 ldr r3, [r6, #-3320] - ldr fp, .L4379+8 + ldr fp, .L4366+8 ldrh r1, [r1] add r3, r3, #1 str r3, [r6, #-3320] cmp r3, r1, lsr #4 mov r3, r0, asl #1 - bls .L4241 + bls .L4228 ldr ip, [r2, #576] movw lr, #2294 ldrh r2, [r2, lr] @@ -25717,7 +25540,7 @@ zftl_do_gc: str r1, [fp, #-3320] ldrh ip, [ip, r3] cmp ip, r2 - bcs .L4241 + bcs .L4228 mov r2, #1 str r3, [sp, #28] bl gc_add_sblk @@ -25725,21 +25548,21 @@ zftl_do_gc: cmp r0, #0 movne r3, #1 strneb r3, [fp, #-3322] - bne .L4225 -.L4241: + bne .L4212 +.L4228: ldr r1, [r4, #576] - ldr r2, .L4379 + ldr r2, .L4366 ldrh r1, [r1, r3] add r3, r2, #2960 ldrh r3, [r3] cmp r1, r3, lsr #1 - bhi .L4242 + bhi .L4229 mov r0, r10 mov r1, #1 mov r2, #0 bl gc_add_sblk - b .L4298 -.L4242: + b .L4285 +.L4229: movw r3, #2278 movw r0, #2280 ldrh r0, [r2, r0] @@ -25748,24 +25571,24 @@ zftl_do_gc: movw r0, #2974 ldrh r0, [r2, r0] cmp r3, r0, asl #1 - ble .L4243 + ble .L4230 movw r3, #2294 ldrh r3, [r2, r3] cmp r3, r1 - bcc .L4240 - b .L4243 -.L4239: + bcc .L4227 + b .L4230 +.L4226: cmp r8, #16 mov r0, #1 - ldr r10, .L4379 + ldr r10, .L4366 strb r0, [r4, #2945] - bls .L4244 + bls .L4231 add r3, r10, #2976 movw r2, #2282 ldrh r2, [r10, r2] ldrh r3, [r3] cmp r2, r3 - bhi .L4244 + bhi .L4231 mov r1, r0 mov r2, #4 bl gc_search_src_blk @@ -25774,23 +25597,23 @@ zftl_do_gc: ldreqb r0, [r10, #2945] @ zero_extendqisi2 moveq r1, #3 moveq r2, #4 - bne .L4245 - b .L4371 -.L4244: + bne .L4232 + b .L4358 +.L4231: mov r0, #1 mov r1, #2 mov r2, r0 bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - bne .L4245 + bne .L4232 ldrb r0, [r4, #2945] @ zero_extendqisi2 mov r1, #3 mov r2, #2 -.L4371: +.L4358: bl gc_search_src_blk uxth r0, r0 -.L4245: +.L4232: movw r3, #2974 cmp r7, r9, lsr #1 ldrh r3, [r4, r3] @@ -25798,19 +25621,19 @@ zftl_do_gc: movhi r3, r3, lsr #2 movls r3, r3, lsr #1 strh r3, [r4, r2] @ movhi - b .L4230 -.L4240: + b .L4217 +.L4227: cmp r7, r9 - bcs .L4247 - ldr r0, .L4379+32 + bcs .L4234 + ldr r0, .L4366+32 mov r1, #4 mov r8, #0 strb r8, [r4, #2945] bl _list_get_gc_head_node movw r3, #65535 - ldr r7, .L4379 + ldr r7, .L4366 cmp r0, r3 - beq .L4248 + beq .L4235 ldr r3, [r7, #576] mov r0, r0, asl #1 ldrh r2, [r3, r0] @@ -25819,15 +25642,15 @@ zftl_do_gc: ldrb r3, [r7, #2964] @ zero_extendqisi2 mul r3, r3, r1 cmp r2, r3, asr #1 - ble .L4249 -.L4248: + ble .L4236 +.L4235: movw r3, #2974 movw r2, #2292 ldrh r3, [r7, r3] mov r3, r3, lsr #2 strh r3, [r7, r2] @ movhi - b .L4225 -.L4249: + b .L4212 +.L4236: mov r2, #4 mov r0, r8 mov r1, #3 @@ -25838,78 +25661,78 @@ zftl_do_gc: mov r3, r3, lsr #1 strh r3, [r7, r2] @ movhi uxth r0, r0 - b .L4230 -.L4247: + b .L4217 +.L4234: movw r3, #2974 movw r2, #2292 ldrh r3, [r4, r3] mov r3, r3, lsr #2 strh r3, [r4, r2] @ movhi - b .L4225 -.L4236: + b .L4212 +.L4223: movw r1, #2974 mov r5, ip ldrh r1, [fp, r1] mov r1, r1, lsr #2 strh r1, [fp, r2] @ movhi - b .L4225 -.L4230: + b .L4212 +.L4217: cmp r0, #0 - beq .L4225 -.L4298: + beq .L4212 +.L4285: mov r3, #1 strb r3, [r6, #-3322] - b .L4225 -.L4191: + b .L4212 +.L4178: movw r5, #2312 movw r3, #65535 ldrh r2, [r4, r5] cmp r2, r3 - bne .L4250 + bne .L4237 bl gc_get_src_blk - ldr r3, .L4379 + ldr r3, .L4366 strh r0, [r3, r5] @ movhi -.L4250: +.L4237: movw r3, #2312 movw r0, #65535 ldrh r1, [r4, r3] - ldr r2, .L4379 + ldr r2, .L4366 cmp r1, r0 - beq .L4251 + beq .L4238 add r0, r2, #564 ldrh r0, [r0] cmp r0, r1 mvnls r1, #0 strlsh r1, [r2, r3] @ movhi -.L4251: +.L4238: movw r3, #2312 movw r2, #65535 ldrh r3, [r4, r3] cmp r3, r2 - beq .L4378 - ldr r1, .L4379+56 - ldr r2, .L4379 + 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 .L4253 -.L4254: + beq .L4240 +.L4241: uxth lr, r1 cmp lr, r0 - bcs .L4253 + bcs .L4240 ldrh lr, [ip, #2]! add r1, r1, #1 cmp lr, r3 - bne .L4254 -.L4258: + bne .L4241 +.L4245: movw r3, #2312 mvn r2, #0 strh r2, [r4, r3] @ movhi - b .L4300 -.L4253: + b .L4287 +.L4240: ldrb r2, [r2, #2] @ zero_extendqisi2 tst r2, #192 and r2, r2, #224 @@ -25919,57 +25742,57 @@ zftl_do_gc: movne r2, r1 orreq r2, r1, #1 cmp r2, #0 - beq .L4256 + beq .L4243 ldr r2, [r4, #576] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L4258 - ldr r1, .L4379+64 + beq .L4245 + ldr r1, .L4366+64 movw r2, #2538 - ldr r0, .L4379+68 + ldr r0, .L4366+68 bl printk bl dump_stack - b .L4258 -.L4256: + b .L4245 +.L4243: mov r3, #2 - b .L4377 -.L4192: + b .L4364 +.L4179: bl gc_scan_src_blk cmn r0, #1 moveq r3, #3 - beq .L4377 + beq .L4364 movw r3, #2312 - ldr r2, .L4379+56 + ldr r2, .L4366+56 ldrh r3, [r4, r3] movw r1, #65535 cmp r3, r1 mov r7, r2 - beq .L4206 + beq .L4193 ldrh r1, [r2, #20] cmp r1, #0 movne r3, #4 strneb r3, [r6, #-3322] movne r3, #0 strneh r3, [r2, #22] @ movhi - bne .L4300 -.L4260: + bne .L4287 +.L4247: mov r2, #1 strb r2, [r6, #-3322] - ldr r2, .L4379 + ldr r2, .L4366 mov r3, r3, asl #1 ldr r2, [r2, #576] ldrh r3, [r2, r3] cmp r3, #0 - beq .L4261 - ldr r1, .L4379+64 + beq .L4248 + ldr r1, .L4366+64 movw r2, #2566 - ldr r0, .L4379+68 + ldr r0, .L4366+68 bl printk bl dump_stack -.L4261: +.L4248: movw r5, #2312 - ldr r6, .L4379+56 + ldr r6, .L4366+56 ldrh r0, [r4, r5] bl ftl_free_sblk ldrh r3, [r4, r5] @@ -25982,47 +25805,47 @@ zftl_do_gc: uxth r3, r3 cmp r3, #8 strlsh r3, [r6, #26] @ movhi - bls .L4258 + bls .L4245 strh r5, [r6, #26] @ movhi bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov r0, r5 bl ftl_info_flush - b .L4258 -.L4193: - ldr r8, .L4379+56 -.L4346: + b .L4245 +.L4180: + ldr r8, .L4366+56 +.L4333: bl gc_scan_src_blk_one_page - ldr r0, .L4379 + ldr r0, .L4366 ldrh r2, [r8, #2] add r3, r0, #2960 - ldr r5, .L4379+56 + ldr r5, .L4366+56 ldrh r3, [r3] cmp r2, r3 - bcs .L4264 + bcs .L4251 cmp r7, #7 - bls .L4346 - b .L4300 -.L4264: + bls .L4333 + b .L4287 +.L4251: ldrh r3, [r5, #20] - ldr r2, .L4379+20 + ldr r2, .L4366+20 cmp r3, #0 - beq .L4265 + beq .L4252 ldr r2, [r2] mov r1, #4 strb r1, [r6, #-3322] mov r1, #0 tst r2, #256 strh r1, [r5, #22] @ movhi - beq .L4266 + beq .L4253 ldrh r1, [r5] ldr ip, [r0, #576] - ldr r0, .L4379+40 + ldr r0, .L4366+40 mov r2, r1, asl #1 ldrh r2, [ip, r2] bl printk -.L4266: +.L4253: movw r3, #2312 ldr r2, [r4, #576] ldrh r3, [r4, r3] @@ -26030,21 +25853,21 @@ zftl_do_gc: ldrh r2, [r2, r3] ldrh r3, [r5, #20] cmp r2, r3 - beq .L4267 - ldr r1, .L4379+64 + beq .L4254 + ldr r1, .L4366+64 movw r2, #2600 - ldr r0, .L4379+68 + ldr r0, .L4366+68 bl printk bl dump_stack -.L4267: +.L4254: movw r3, #2312 ldrh r1, [r5, #20] ldrh r3, [r4, r3] ldr r2, [r4, #576] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - b .L4300 -.L4265: + b .L4287 +.L4252: mov r3, #1 strb r3, [r6, #-3322] ldr r3, [r2] @@ -26052,12 +25875,12 @@ zftl_do_gc: ldr r7, [r0, #568] tst r3, #256 add r7, r7, r1, asl #2 - beq .L4268 + beq .L4255 ldrb r2, [r7, #2] @ zero_extendqisi2 - ldr r0, .L4379+44 + ldr r0, .L4366+44 mov r2, r2, lsr #5 bl printk -.L4268: +.L4255: ldrb r3, [r7, #2] @ zero_extendqisi2 tst r3, #192 and r3, r3, #224 @@ -26067,15 +25890,15 @@ zftl_do_gc: movne r3, r2 orreq r3, r2, #1 cmp r3, #0 - beq .L4269 - ldr r1, .L4379+64 + beq .L4256 + ldr r1, .L4366+64 movw r2, #2610 - ldr r0, .L4379+68 + ldr r0, .L4366+68 bl printk bl dump_stack -.L4269: +.L4256: movw r7, #2312 - ldr r6, .L4379+56 + ldr r6, .L4366+56 ldrh r0, [r4, r7] bl ftl_free_sblk mvn r3, #0 @@ -26087,24 +25910,24 @@ zftl_do_gc: strlsh r3, [r6, #26] @ movhi movhi r3, #0 strhih r3, [r6, #26] @ movhi - bls .L4300 - b .L4376 -.L4194: + bls .L4287 + b .L4363 +.L4181: cmp r10, #0 - bne .L4271 + bne .L4258 movw r3, #2292 ldrh r3, [r4, r3] cmp r3, r7 - bcc .L4300 -.L4271: + bcc .L4287 +.L4258: ldrh r2, [r5, #80] movw r3, #65535 cmp r2, r3 - bne .L4272 + bne .L4259 ldrb r8, [r4, #2945] @ zero_extendqisi2 cmp r8, #1 - bne .L4272 - ldr r9, .L4379+56 + bne .L4259 + ldr r9, .L4366+56 bl ftl_flush movw r3, #570 mov r1, #5 @@ -26115,23 +25938,23 @@ zftl_do_gc: movw r3, #65535 cmp r0, r3 mov r7, r0 - beq .L4275 + beq .L4262 ldr r8, [r4, #568] add r8, r8, r0, asl #2 ldrb r3, [r8, #2] @ zero_extendqisi2 tst r3, #224 - beq .L4276 - ldr r1, .L4379+64 + beq .L4263 + ldr r1, .L4366+64 movw r2, #2639 - ldr r0, .L4379+68 + ldr r0, .L4366+68 bl printk bl dump_stack -.L4276: +.L4263: ldrb r3, [r8, #2] @ zero_extendqisi2 and r3, r3, #15 orr r3, r3, #176 strb r3, [r8, #2] -.L4299: +.L4286: mov r0, r7 mov r1, #1 bl ftl_erase_sblk @@ -26139,7 +25962,7 @@ zftl_do_gc: add r1, r5, #96 strb r3, [r5, #84] mov r0, r7 - ldr r10, .L4379+48 + ldr r10, .L4366+48 bl ftl_get_blk_list_in_sblk mov r8, #0 strh r7, [r5, #80] @ movhi @@ -26190,72 +26013,72 @@ zftl_do_gc: strh r8, [r10, #-76] @ movhi str r5, [r4, #2888] bl ftl_info_flush - b .L4300 -.L4272: + b .L4287 +.L4259: cmp r10, #1 - ldr r9, .L4379 - ldr r10, .L4379+56 + ldr r9, .L4366 + ldr r10, .L4366+56 movne r8, #1 moveq r8, #4 cmp r7, #15 addls r8, r8, #4 -.L4279: +.L4266: sub r8, r8, #1 uxtb r8, r8 cmp r8, #255 - beq .L4300 + beq .L4287 bl gc_do_copy_back ldrb r3, [r4, #2945] @ zero_extendqisi2 - ldr r7, .L4379+56 + ldr r7, .L4366+56 cmp r3, #0 - bne .L4280 + bne .L4267 ldrb r3, [r9, #2262] @ zero_extendqisi2 cmp r3, #3 - bhi .L4281 + bhi .L4268 bl ftl_write_commit -.L4281: +.L4268: ldrh r2, [r10, #22] ldrh r3, [r10, #20] cmp r2, r3 - bcc .L4279 + bcc .L4266 mov r3, #1 strb r3, [r6, #-3322] bl ftl_write_commit bl ftl_flush - ldr r3, .L4379+56 - ldr r2, .L4379 + ldr r3, .L4366+56 + ldr r2, .L4366 ldrh r3, [r3] ldr r2, [r2, #576] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L4283 - ldr r1, .L4379+64 + beq .L4270 + ldr r1, .L4366+64 movw r2, #2714 - ldr r0, .L4379+68 + ldr r0, .L4366+68 bl printk bl dump_stack -.L4283: +.L4270: movw r3, #2312 ldr r1, [r4, #576] ldrh r0, [r4, r3] mov r2, r0, asl #1 ldrh ip, [r1, r2] cmp ip, #0 - bne .L4284 + bne .L4271 strh ip, [r1, r2] @ movhi - ldr r2, .L4379 + ldr r2, .L4366 ldrh r0, [r2, r3] bl ftl_free_sblk - b .L4258 -.L4284: + b .L4245 +.L4271: mov r1, #0 mov r2, #1 bl gc_add_sblk - b .L4258 -.L4380: + b .L4245 +.L4367: .align 2 -.L4379: +.L4366: .word .LANCHOR0 .word .LANCHOR5 .word .LANCHOR3 @@ -26274,21 +26097,21 @@ zftl_do_gc: .word .LANCHOR0 .word .LANCHOR1+2180 .word .LC0 -.L4280: - ldr r3, .L4379+52 +.L4267: + ldr r3, .L4366+52 ldrh r2, [r3] cmp r2, #0 - beq .L4285 + beq .L4272 mov r5, #0 strh r5, [r3] @ movhi bl sblk_wait_write_queue_completed bl gc_write_completed - ldr r3, .L4379+60 + ldr r3, .L4366+60 ldr r0, [r3, #2888] cmn r0, #1 - beq .L4286 + beq .L4273 bl ftl_mask_bad_block -.L4286: +.L4273: ldr r3, [r4, #580] str r5, [r4, #2888] strh r5, [r7, #52] @ movhi @@ -26302,27 +26125,27 @@ zftl_do_gc: strh r3, [r2, #80] @ movhi strh r3, [r1, #126] @ movhi strh r3, [r2, #130] @ movhi - beq .L4287 + beq .L4274 bl zbuf_free -.L4287: +.L4274: mov r5, #0 str r5, [r4, #2320] bl flt_sys_flush - ldr r1, .L4379+64 + ldr r1, .L4366+64 mov r2, #2752 - ldr r0, .L4379+68 + ldr r0, .L4366+68 strb r5, [r6, #-3322] bl printk bl dump_stack - b .L4300 -.L4285: + b .L4287 +.L4272: ldrh r3, [r5, #86] ldrh r2, [r10, #22] cmp r3, #1 ldrh r3, [r10, #20] - bls .L4288 + bls .L4275 cmp r2, r3 - bcc .L4279 + bcc .L4266 mov r3, #1 strb r3, [r6, #-3322] ldrh r3, [r7, #52] @@ -26333,12 +26156,12 @@ zftl_do_gc: strh r2, [r3, #54] @ movhi mvn r3, #0 strh r3, [r7] @ movhi - b .L4300 -.L4288: + b .L4287 +.L4275: cmp r2, r3 mov r1, #5 strb r1, [r6, #-3322] - bcc .L4289 + bcc .L4276 ldrh r3, [r7, #52] add r2, r3, #1 strh r2, [r7, #52] @ movhi @@ -26347,13 +26170,13 @@ zftl_do_gc: strh r2, [r3, #54] @ movhi mvn r3, #0 strh r3, [r7] @ movhi -.L4289: +.L4276: bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed ldrh r2, [r5, #80] ldr r3, [r4, #580] - ldr r5, .L4379+60 + ldr r5, .L4366+60 strh r2, [r3, #128] @ movhi bl pm_flush bl ftl_ext_info_flush @@ -26362,7 +26185,7 @@ zftl_do_gc: strh r3, [r7, #12] @ movhi add r3, r5, #2960 cmp r1, #0 - ldr r2, .L4379+56 + ldr r2, .L4366+56 ldrh r3, [r3] movwne r1, #2962 ldrneh r1, [r5, r1] @@ -26373,27 +26196,27 @@ zftl_do_gc: strh r3, [r7, #16] @ movhi strneh r1, [r2, #16] @ movhi cmp r3, #2 - bne .L4292 + bne .L4279 ldrh r3, [r7, #14] mov r3, r3, asl #1 strh r3, [r7, #14] @ movhi ldrb r3, [r4, #2938] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L4379+56 + ldreq r3, .L4366+56 moveq r2, #1 streqh r2, [r3, #16] @ movhi -.L4292: +.L4279: mov r3, #0 strh r3, [r7, #18] @ movhi - b .L4300 -.L4301: - ldr r8, .L4379+56 + b .L4287 +.L4288: + ldr r8, .L4366+56 mov r5, #0 -.L4195: +.L4182: bl gc_check_data_one_wl subs fp, r0, #0 - beq .L4295 - ldr r3, .L4379+56 + beq .L4282 + ldr r3, .L4366+56 mov r5, #0 strh r5, [r3, #52] @ movhi ldr r3, [r4, #580] @@ -26409,32 +26232,32 @@ zftl_do_gc: bl zbuf_free str r5, [r4, #2320] strb r5, [r6, #-3322] -.L4376: +.L4363: bl flt_sys_flush - b .L4300 -.L4295: + b .L4287 +.L4282: ldrh r2, [r8, #12] ldrh r3, [r8, #14] - ldr r9, .L4379+60 + ldr r9, .L4366+60 cmp r2, r3 - bcc .L4296 + bcc .L4283 ldr r0, [r9, #2320] mov r3, #6 strb r3, [r6, #-3322] bl zbuf_free str fp, [r9, #2320] - b .L4300 -.L4296: + b .L4287 +.L4283: cmp r7, #15 - bls .L4195 + bls .L4182 cmp r10, #1 - bne .L4300 + bne .L4287 add r5, r5, #1 uxtb r5, r5 cmp r5, #4 - bls .L4195 - b .L4300 -.L4196: + bls .L4182 + b .L4287 +.L4183: bl gc_update_l2p_map_new mvn r7, #0 bl gc_free_src_blk @@ -26446,24 +26269,24 @@ zftl_do_gc: mov r0, #0 strh r7, [r3, #126] @ movhi bl ftl_info_flush -.L4378: +.L4365: mov r3, #0 -.L4377: +.L4364: strb r3, [r6, #-3322] -.L4300: +.L4287: mov r0, #16 - b .L4367 -.L4225: + b .L4354 +.L4212: mov r0, r5 - b .L4367 -.L4275: - ldr r1, .L4379+64 + b .L4354 +.L4262: + ldr r1, .L4366+64 movw r2, #2645 - ldr r0, .L4379+68 + ldr r0, .L4366+68 bl printk bl dump_stack - b .L4299 -.L4367: + b .L4286 +.L4354: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} @@ -26479,7 +26302,7 @@ 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, .L4409 + ldr r3, .L4396 .pad #28 sub sp, sp, #28 mov r5, r0 @@ -26487,30 +26310,30 @@ zftl_write: mov r7, r2 ldr r3, [r3] tst r3, #4096 - beq .L4382 + beq .L4369 ldr r3, [r9] mov r1, r5 - ldr r0, .L4409+4 + ldr r0, .L4396+4 mov r2, r4 str r3, [sp] mov r3, r7 bl printk -.L4382: +.L4369: cmp r5, #0 - ldreq r3, .L4409+8 + ldreq r3, .L4396+8 moveq r5, #24576 ldreq r3, [r3, #520] - beq .L4384 -.L4383: + beq .L4371 +.L4370: cmp r5, #3 - bhi .L4398 + bhi .L4385 mov r5, r5, asl #13 mov r3, #8192 -.L4384: +.L4371: add r2, r4, r7 cmp r2, r3 - bhi .L4398 - ldr r8, .L4409+8 + bhi .L4385 + ldr r8, .L4396+8 add r4, r5, r4 mov r0, r4 ldrb r5, [r8, #2260] @ zero_extendqisi2 @@ -26527,16 +26350,16 @@ zftl_write: str r0, [sp, #12] add r5, r5, #1 str r3, [sp, #16] -.L4386: +.L4373: cmp r5, #0 - beq .L4407 + beq .L4394 mov r0, #0 bl buf_alloc subs fp, r0, #0 - bne .L4387 + bne .L4374 bl ftl_write_commit - b .L4386 -.L4387: + b .L4373 +.L4374: mov r3, #0 strb r3, [fp, #41] ldr r3, [sp, #12] @@ -26549,9 +26372,9 @@ zftl_write: strb r2, [fp, #40] mov r1, r1, lsr #5 orrs r3, r1, r0 - beq .L4390 + beq .L4377 cmp r0, #0 - beq .L4391 + beq .L4378 mov r1, r2 mov r0, r4 str r2, [sp, #20] @@ -26563,17 +26386,17 @@ zftl_write: uxtb r2, r2 cmp r2, r7 strhib r7, [fp, #40] - bhi .L4390 - b .L4406 -.L4391: + bhi .L4377 + b .L4393 +.L4378: cmp r1, #0 - beq .L4390 + beq .L4377 smulbb r2, r6, r2 ldr r3, [sp, #16] rsb r2, r2, r3 -.L4406: +.L4393: strb r2, [fp, #40] -.L4390: +.L4377: ldrb r0, [fp, #41] @ zero_extendqisi2 sub r5, r5, #1 ldrb r2, [fp, #40] @ zero_extendqisi2 @@ -26593,39 +26416,39 @@ zftl_write: bl ftl_write_buf ldrb r3, [fp, #40] @ zero_extendqisi2 add r9, r9, r3, asl #9 - b .L4386 -.L4407: + b .L4373 +.L4394: bl ftl_write_commit mov r0, r5 mov r1, #1 - ldr r4, .L4409+12 + ldr r4, .L4396+12 bl zftl_do_gc -.L4395: - ldr r2, .L4409+16 +.L4382: + ldr r2, .L4396+16 ldrh r3, [r4] ldrh r2, [r2] add r3, r3, r2 cmp r3, #7 - bgt .L4408 + bgt .L4395 mov r1, #1 mov r0, #0 bl zftl_do_gc - b .L4395 -.L4408: + b .L4382 +.L4395: bl timer_get_time - ldr r3, .L4409+20 + ldr r3, .L4396+20 str r0, [r3, #-2472] mov r0, #0 - b .L4385 -.L4398: - mvn r0, #0 + b .L4372 .L4385: + mvn r0, #0 +.L4372: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4410: +.L4397: .align 2 -.L4409: +.L4396: .word .LANCHOR2 .word .LC308 .word .LANCHOR0 @@ -26674,41 +26497,37 @@ zftl_sys_write: .type zftl_discard, %function zftl_discard: .fnstart - @ args = 0, pretend = 0, frame = 32 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L4465 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 r2, [r3] + add r2, r0, r1 + ldr r6, .L4451 + .pad #36 + sub sp, sp, #36 mov r4, r1 - ldr r6, .L4465+4 - add r1, r0, r1 - str r3, [sp, #12] - str r2, [sp, #36] - ldr r2, [r6, #520] - cmp r1, r2 + ldr r3, [r6, #520] + cmp r2, r3 mvnhi r0, #0 - bhi .L4415 - ldr r3, .L4465+8 + bhi .L4402 + ldr r3, .L4451+4 add r8, r0, #24576 - ldr r10, .L4465+12 + ldr r10, .L4451+8 ldr r2, [r3] ldr r5, [r10, #-2468] tst r2, #4096 - str r10, [sp, #8] - add r1, r4, r5 + str r10, [sp, #12] + add r1, r1, r5 str r3, [sp, #16] str r1, [r10, #-2468] - beq .L4416 + beq .L4403 mov r3, #0 - ldr r0, .L4465+16 + ldr r0, .L4451+12 str r3, [sp] mov r2, r8 mov r3, r4 bl printk -.L4416: +.L4403: ldr r3, [r6, #2288] ldr r9, [r3, #8] add r2, r9, #1 @@ -26722,27 +26541,27 @@ zftl_discard: mls r10, r7, r0, r8 mov r5, r0 cmp r10, #0 - beq .L4417 + beq .L4404 rsb r7, r10, r7 cmp r7, r4 movcs r7, r4 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #28] - bne .L4418 + str r0, [sp, #24] + bne .L4405 mov r0, r5 - add r1, sp, #28 + add r1, sp, #24 mov r2, #0 bl pm_log2phys -.L4418: - ldr r3, [sp, #28] +.L4405: + ldr r3, [sp, #24] uxth fp, r7 cmn r3, #1 - beq .L4420 + beq .L4407 mov r0, #0 bl buf_alloc subs r3, r0, #0 - beq .L4420 + beq .L4407 ldr r0, [r3, #4] mov r2, fp, asl #9 mov r1, #0 @@ -26761,31 +26580,31 @@ zftl_discard: ldr r3, [r2, #76] add r3, r3, #1 str r3, [r2, #76] -.L4420: +.L4407: add r5, r5, #1 rsb r4, fp, r4 -.L4417: +.L4404: cmp r4, #0 - beq .L4422 + beq .L4409 bl ftl_flush -.L4422: - ldr r7, .L4465+4 +.L4409: + ldr r7, .L4451 mvn r3, #0 - str r3, [sp, #32] + str r3, [sp, #28] add r10, r7, #2928 -.L4423: +.L4410: ldrb r3, [r6, #2260] @ zero_extendqisi2 cmp r4, r3 - bcc .L4464 + bcc .L4450 mov r0, r5 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #28] - beq .L4424 + str r0, [sp, #24] + beq .L4411 mov r0, #0 bl buf_alloc subs fp, r0, #0 - beq .L4426 + beq .L4413 ldrb r2, [r7, #2260] @ zero_extendqisi2 mov r1, #0 str r5, [fp, #20] @@ -26798,16 +26617,16 @@ zftl_discard: mov r0, fp bl ftl_write_buf bl ftl_write_commit - b .L4463 -.L4424: + b .L4449 +.L4411: mov r0, r5 - add r1, sp, #28 + add r1, sp, #24 mov r2, #0 bl pm_log2phys - ldr r3, [sp, #28] + ldr r3, [sp, #24] cmn r3, #1 - beq .L4426 - add r1, sp, #32 + beq .L4413 + add r1, sp, #28 mov r2, #1 mov r0, r5 bl pm_log2phys @@ -26816,43 +26635,43 @@ zftl_discard: rsb r3, r3, #24 ldrb r1, [r7, #2930] @ zero_extendqisi2 rsb r3, r0, r3 - ldr r2, [sp, #28] + ldr r2, [sp, #24] mov r2, r2, lsr r0 mvn r0, #0 bic r0, r2, r0, asl r3 bl __aeabi_uidiv uxth r0, r0 bl ftl_vpn_decrement -.L4463: +.L4449: ldr r2, [r7, #2288] ldr r3, [r2, #76] add r3, r3, #1 str r3, [r2, #76] -.L4426: +.L4413: ldrb r3, [r6, #2260] @ zero_extendqisi2 add r5, r5, #1 rsb r4, r3, r4 - b .L4423 -.L4464: + b .L4410 +.L4450: cmp r4, #0 - beq .L4430 + beq .L4417 mov r0, r5 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #28] - bne .L4431 + str r0, [sp, #24] + bne .L4418 mov r0, r5 - add r1, sp, #28 + add r1, sp, #24 mov r2, #0 bl pm_log2phys -.L4431: - ldr r3, [sp, #28] +.L4418: + ldr r3, [sp, #24] cmn r3, #1 - beq .L4430 + beq .L4417 mov r0, #0 bl buf_alloc subs r7, r0, #0 - beq .L4430 + beq .L4417 mov r3, #0 strb r3, [r7, #41] ldrb r3, [r6, #2260] @ zero_extendqisi2 @@ -26860,13 +26679,13 @@ zftl_discard: cmp r4, r3 strb r4, [r7, #40] str r9, [r7, #16] - bcc .L4433 - ldr r1, .L4465+20 + bcc .L4420 + ldr r1, .L4451+16 movw r2, #1259 - ldr r0, .L4465+24 + ldr r0, .L4451+20 bl printk bl dump_stack -.L4433: +.L4420: mov r2, r4, asl #9 mov r1, #0 ldr r0, [r7, #4] @@ -26878,45 +26697,37 @@ zftl_discard: ldr r3, [r2, #76] add r3, r3, #1 str r3, [r2, #76] -.L4430: - ldr r3, [sp, #8] +.L4417: + ldr r3, [sp, #12] ldr r1, [r3, #-2468] cmp r1, #8192 - bls .L4437 + bls .L4423 ldr r3, [sp, #16] ldr r3, [r3] tst r3, #4096 - beq .L4434 + beq .L4421 mov r3, #0 - ldr r0, .L4465+16 + ldr r0, .L4451+12 str r3, [sp] mov r2, r8 mov r3, r4 bl printk -.L4434: - ldr r3, [sp, #8] +.L4421: + ldr r3, [sp, #12] mov r4, #0 str r4, [r3, #-2468] bl flt_sys_flush mov r3, #1 str r3, [r6, #2304] -.L4437: +.L4423: mov r0, #0 -.L4415: - ldr r3, [sp, #12] - ldr r2, [sp, #36] - ldr r3, [r3] - cmp r2, r3 - beq .L4435 - bl __stack_chk_fail -.L4435: - add sp, sp, #44 +.L4402: + add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4466: +.L4452: .align 2 -.L4465: - .word __stack_chk_guard +.L4451: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR5 @@ -26935,47 +26746,47 @@ dump_pm_blk: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movw ip, #698 - ldr r4, .L4473 + ldr r4, .L4459 mov r2, #4 - ldr r0, .L4473+4 + ldr r0, .L4459+4 mov r6, #0 - ldr r5, .L4473+8 + ldr r5, .L4459+8 movw r7, #65535 ldr r3, [r4, #2288] add r1, r3, #704 ldrh r3, [r3, ip] bl rknand_print_hex ldr r1, [r4, #2288] - ldr r0, .L4473+12 + ldr r0, .L4459+12 mov r2, #2 add r1, r1, #416 ldrh r3, [r5] bl rknand_print_hex -.L4468: +.L4454: ldrh r2, [r5] uxth r3, r6 cmp r2, r3 - bls .L4472 + bls .L4458 add r3, r3, #208 ldr r2, [r4, #2288] mov r3, r3, asl #1 ldrh r0, [r2, r3] cmp r0, r7 - beq .L4469 + beq .L4455 mov r1, #0 bl ftl_sblk_dump -.L4469: +.L4455: add r6, r6, #1 - b .L4468 -.L4472: + b .L4454 +.L4458: ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L4474: +.L4460: .align 2 -.L4473: +.L4459: .word .LANCHOR0 - .word .LC267 - .word .LANCHOR3-3296 .word .LC268 + .word .LANCHOR3-3296 + .word .LC269 .fnend .size dump_pm_blk, .-dump_pm_blk .align 2 @@ -26989,32 +26800,32 @@ id_block_prog_msb_ff_data: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r2 - ldr r5, .L4482 + ldr r5, .L4468 ldrb r2, [r5, #590] @ zero_extendqisi2 ldr r3, [r5, #584] cmp r2, #0 ldrb r3, [r3, #19] @ zero_extendqisi2 - bne .L4475 + bne .L4461 sub r2, r3, #5 mov r8, r0 cmp r3, #68 cmpne r2, #2 mov r9, r1 - bls .L4477 + bls .L4463 sub r3, r3, #19 tst r3, #239 - bne .L4475 -.L4477: - ldr fp, .L4482 - ldr r7, .L4482+4 -.L4479: + bne .L4461 +.L4463: + ldr fp, .L4468 + ldr r7, .L4468+4 +.L4465: ldr r3, [r5, #584] ldrh r3, [r3, #10] cmp r3, r4 - bls .L4475 + bls .L4461 mov r6, r4, asl #1 add r10, r4, r9 - ldr r0, .L4482+8 + ldr r0, .L4468+8 mov r1, r4 mov r2, r10 ldrh r3, [r7, r6] @@ -27022,8 +26833,8 @@ id_block_prog_msb_ff_data: ldrh r2, [r7, r6] movw r3, #65535 cmp r2, r3 - bne .L4475 - ldr r6, .L4482+12 + bne .L4461 + ldr r6, .L4468+12 mov r1, #255 mov r2, #16384 add r4, r4, #1 @@ -27038,14 +26849,14 @@ id_block_prog_msb_ff_data: str r3, [sp] mov r3, r2 bl flash_prog_page - b .L4479 -.L4475: + b .L4465 +.L4461: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4483: +.L4469: .align 2 -.L4482: +.L4468: .word .LANCHOR0 .word .LANCHOR0+3800 .word .LC310 @@ -27057,77 +26868,78 @@ id_block_prog_msb_ff_data: .type write_idblock, %function write_idblock: .fnstart - @ args = 0, pretend = 0, frame = 144 + @ args = 0, pretend = 0, frame = 136 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L4557 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #164 - sub sp, sp, #164 - ldr r3, [r3] + .pad #156 + sub sp, sp, #156 + ldr r9, .L4542 mov r6, r0 - ldr r9, .L4557+4 mov r0, #256000 mov r10, r1 mov r7, r2 - str r3, [sp, #156] ldr r3, [r9, #584] ldrb r4, [r3, #9] @ zero_extendqisi2 ldrh r5, [r3, #10] - ldr r3, .L4557+8 + ldr r3, .L4542+4 ldrh r8, [r3, #30] ldrb r3, [r9] @ zero_extendqisi2 str r3, [sp, #60] ldrh r3, [sp, #60] - str r3, [sp, #52] + str r3, [sp, #44] ldrb r3, [r9, #590] @ zero_extendqisi2 str r3, [sp, #68] bl ftl_malloc subs r3, r0, #0 str r3, [sp, #24] - beq .L4522 - ldr r3, .L4557+12 + beq .L4507 + ldr r3, .L4542+8 ldrb r3, [r3, #-2486] @ zero_extendqisi2 cmp r3, #0 - beq .L4523 + moveq fp, r3 + beq .L4472 ldrb r3, [r9] @ zero_extendqisi2 cmp r3, #0 ldrb r3, [r9, #590] @ zero_extendqisi2 - clzne r3, r3 - movne r3, r3, lsr #5 - bne .L4523 + clzne fp, r3 + movne fp, fp, lsr #5 + bne .L4472 cmp r3, #3 - ldr r3, [sp, #52] - moveq r3, #3 - str r3, [sp, #52] - movne r3, #0 + streq r3, [sp, #44] + moveq fp, #2 + beq .L4472 + cmp r3, #2 + ldr r3, [sp, #44] + movne fp, #0 + moveq fp, #3 moveq r3, #2 -.L4523: + str r3, [sp, #44] +.L4472: add r6, r6, #508 mov r0, #0 add r6, r6, #3 - str r3, [sp, #20] bl zftl_flash_exit_slc_mode ldrb r3, [r9, #590] @ zero_extendqisi2 mov r6, r6, lsr #9 cmp r6, #8 strb r3, [r9] - bls .L4525 + bls .L4511 cmp r6, #500 - bhi .L4489 - b .L4488 -.L4525: + bhi .L4475 + b .L4474 +.L4511: mov r6, #8 -.L4488: +.L4474: ldr r2, [r10] - ldr r3, .L4557+16 + ldr r3, .L4542+12 cmp r2, r3 - beq .L4490 -.L4489: + beq .L4476 +.L4475: ldr r0, [sp, #24] bl ftl_free - b .L4522 -.L4490: + b .L4507 +.L4476: uxth r4, r4 smulbb r1, r4, r5 uxth r1, r1 @@ -27139,10 +26951,10 @@ write_idblock: str r0, [sp, #72] add r0, r10, #254976 add r0, r0, #512 -.L4494: +.L4480: ldr r1, [r0, #-4]! cmp r1, #0 - bne .L4491 + bne .L4477 ldr r1, [r10, r3, asl #2] add r3, r3, #1 cmp r3, #4096 @@ -27150,88 +26962,91 @@ write_idblock: movhi r3, #0 cmp r2, #4096 str r1, [r0, #512] - bne .L4494 - b .L4493 -.L4491: - ldr r0, .L4557+20 + bne .L4480 + b .L4479 +.L4477: + ldr r0, .L4542+16 bl printk -.L4493: +.L4479: smulbb r3, r4, r8 - ldr r0, .L4557+24 + ldr r0, .L4542+20 mov r1, r7 mov r2, #4 - ldr r4, .L4557+4 + ldr r4, .L4542 uxth r3, r3 str r3, [sp, #56] mov r3, #5 bl rknand_print_hex - ldr r0, .L4557+28 + ldr r0, .L4542+24 mov r1, r6 mov r2, r6 bl printk sub r3, r7, #4 - str r3, [sp, #44] + str r3, [sp, #48] mov r3, #0 str r3, [sp, #36] str r3, [sp, #28] -.L4519: - ldr r3, .L4557+12 +.L4505: + ldr r3, .L4542+8 ldrb r3, [r3, #-2486] @ zero_extendqisi2 cmp r3, #0 - bne .L4495 - ldr r3, [sp, #44] + bne .L4481 + ldr r3, [sp, #48] ldr r1, [sp, #72] ldr r2, [r3, #4] ldr r3, [sp, #56] - mul fp, r3, r2 + mul r3, r3, r2 + str r3, [sp, #20] ldr r3, [sp, #28] cmp r3, #0 cmpne r1, #1 - bls .L4496 - ldr r3, [sp, #44] + bls .L4482 + ldr r3, [sp, #48] ldr r3, [r3] add r3, r3, #1 cmp r2, r3 - bne .L4496 - b .L4497 -.L4495: + bne .L4482 + b .L4483 +.L4481: ldr r3, [r4, #664] ldr r2, [sp, #28] add r3, r3, r2 ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #255 - beq .L4497 + beq .L4483 ldr r2, [sp, #56] - mul fp, r2, r3 - ldr r3, [sp, #20] - cmp r3, #0 - beq .L4496 + cmp fp, #0 + mul r3, r2, r3 + str r3, [sp, #20] + beq .L4482 ldr r3, [sp, #28] - bic r3, r3, #2 - cmp r3, #1 - ldreqb r3, [sp, #52] @ zero_extendqisi2 - beq .L4555 - mov r0, #0 + and r5, r3, #1 + cmp fp, #3 + orreq r5, r5, #1 + cmp r5, #0 + ldrneb r3, [sp, #44] @ zero_extendqisi2 + strneb r3, [r4] + strneb r3, [r4, #590] + bne .L4482 + mov r0, r5 bl zftl_flash_exit_slc_mode - mov r3, #0 -.L4555: - strb r3, [r4] - strb r3, [r4, #590] -.L4496: + strb r5, [r4] + strb r5, [r4, #590] +.L4482: mov r1, #0 mov r2, #512 ldr r0, [sp, #24] mov r8, #0 bl ftl_memset ldr r3, [r4, #584] - mov r0, fp ldrb r2, [r3, #9] @ zero_extendqisi2 ldrh r7, [r3, #10] - ldr r3, .L4557+8 + 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 @@ -27245,13 +27060,14 @@ write_idblock: bl flash_erase_block cmp r6, r7 movls r0, #1 - bls .L4499 + bls .L4485 + ldr r3, [sp, #20] mov r0, r8 - add r1, fp, r5 + add r1, r3, r5 bl flash_erase_block mov r0, #2 -.L4499: - ldr r3, .L4557+4 +.L4485: + ldr r3, .L4542 ldr r2, [r3, #584] ldrh r3, [r2, #10] ldrb r1, [r2, #12] @ zero_extendqisi2 @@ -27260,23 +27076,26 @@ write_idblock: bl __aeabi_idiv mov r1, r5 str r0, [sp, #80] - mov r0, fp + ldr r0, [sp, #20] bl __aeabi_uidivmod - rsb r3, r1, fp + ldr r3, [sp, #20] str r1, [sp, #64] - cmp fp, r3 - str r3, [sp, #48] - bne .L4528 + rsb r3, r1, r3 + str r3, [sp, #52] + ldr r2, [sp, #52] + ldr r3, [sp, #20] + cmp r3, r2 + bne .L4514 ldrb r3, [r4, #516] @ zero_extendqisi2 cmp r3, #9 - bne .L4528 - ldr r3, .L4557+32 + bne .L4514 + ldr r3, .L4542+28 mov r1, #0 mov r2, #1024 ldr r5, [r3, #-3248] mov r0, r5 bl ftl_memset - ldr r2, .L4557+36 + ldr r2, .L4542+32 mov r3, #12 stmia r5, {r2, r3} mov r3, #0 @@ -27308,17 +27127,17 @@ write_idblock: sub r3, r6, #4 str r0, [r5, #8] str r3, [sp, #32] - b .L4500 -.L4528: + b .L4486 +.L4514: mov r5, #0 str r6, [sp, #32] -.L4500: +.L4486: mov r8, r10 mov r9, #0 -.L4503: +.L4489: ldr r3, [sp, #80] cmp r9, r3 - bcs .L4556 + bcs .L4541 ldr r3, [sp, #64] ldrb r2, [r4, #590] @ zero_extendqisi2 add r7, r9, r3 @@ -27328,39 +27147,39 @@ write_idblock: mov r1, r0, asl #1 add r3, r4, r1 ldrh r3, [r3, #4] - beq .L4505 + beq .L4491 ldrb ip, [r4, #1] @ zero_extendqisi2 cmp ip, #0 moveq r3, r0 movne r3, r1 -.L4505: +.L4491: ldrb r1, [r4, #516] @ zero_extendqisi2 - ldr r0, .L4557+4 + ldr r0, .L4542 cmp r1, #9 movw r1, #61424 - str r1, [sp, #96] + str r1, [sp, #92] mov r1, r7, asl #1 add r0, r0, r1 subne r3, r3, #1 ldrh r0, [r0, #4] movne r3, r3, asl #2 cmp r2, #0 - str r3, [sp, #92] + str r3, [sp, #88] moveq r7, r0 - beq .L4509 + beq .L4495 ldrb r2, [r4, #1] @ zero_extendqisi2 cmp r2, #0 movne r7, r1 -.L4509: +.L4495: ldr r2, [sp, #40] cmp r5, #0 mul r0, r2, r7 - bne .L4510 - ldr r2, [sp, #48] + bne .L4496 + ldr r2, [sp, #52] str r8, [sp] add ip, r0, r2 ldr r2, [r8] - ldr r0, .L4557+40 + ldr r0, .L4542+36 mov r1, ip str ip, [sp, #84] stmib sp, {r2, r3} @@ -27371,107 +27190,105 @@ write_idblock: bl printk mov r1, r8 ldr ip, [sp, #84] - add r2, sp, #92 + add r2, sp, #88 mov r0, ip - bl fw_flash_page_prog.constprop.29 + bl fw_flash_page_prog.constprop.28 ldrb r3, [r4, #590] @ zero_extendqisi2 cmp r3, #0 - bne .L4511 + bne .L4497 ldr r1, [sp, #40] - ldr r0, [sp, #48] + ldr r0, [sp, #52] bl __aeabi_uidiv add r2, r7, #1 uxth r2, r2 mov r1, r0 mov r0, r5 bl id_block_prog_msb_ff_data -.L4511: +.L4497: ldr r3, [sp, #32] add r8, r8, #2048 add r3, r3, #16 cmp r9, r3 - bcc .L4512 + bcc .L4498 ldr r3, [sp, #32] add r3, r3, #20 cmp r9, r3 addcc r8, r10, #2048 - b .L4512 -.L4510: - ldr r3, [sp, #48] + b .L4498 +.L4496: + ldr r3, [sp, #52] mov r1, r5 - add r2, sp, #92 + add r2, sp, #88 add r0, r0, r3 - bl fw_flash_page_prog.constprop.29 -.L4512: + bl fw_flash_page_prog.constprop.28 +.L4498: add r9, r9, #4 mov r5, #0 uxth r9, r9 - b .L4503 -.L4556: - ldr r3, .L4557+4 - mov r0, fp + b .L4489 +.L4541: ldrb r2, [sp, #76] @ zero_extendqisi2 + ldr r3, .L4542 + ldr r0, [sp, #20] ldr r1, [sp, #32] strb r2, [r3, #656] ldr r2, [sp, #24] - bl id_block_read_data.constprop.30 - ldr r3, [sp, #20] - cmp r3, #0 - beq .L4514 + bl id_block_read_data.constprop.29 + cmp fp, #0 + beq .L4500 mov r0, #0 bl zftl_flash_exit_slc_mode mov r3, #0 strb r3, [r4] strb r3, [r4, #590] -.L4514: +.L4500: ldr r3, [sp, #32] mov r5, #0 mov r8, r3, asl #7 -.L4517: +.L4503: ldr r3, [sp, #24] ldr r2, [r3, r5, asl #2] ldr r3, [r10, r5, asl #2] cmp r2, r3 - beq .L4515 + beq .L4501 mov r1, #0 mov r2, #512 ldr r0, [sp, #24] bl ftl_memset mov r0, #0 - mov r1, fp + ldr r1, [sp, #20] bl flash_erase_block cmp r5, r8 - bcc .L4497 - b .L4516 -.L4515: + bcc .L4483 + b .L4502 +.L4501: add r5, r5, #1 cmp r5, r8 - bne .L4517 -.L4516: + bne .L4503 +.L4502: ldr r3, [sp, #36] add r3, r3, #1 str r3, [sp, #36] cmp r3, #5 - bhi .L4518 -.L4497: + bhi .L4504 +.L4483: ldr r3, [sp, #28] add r3, r3, #1 str r3, [sp, #28] - ldr r3, [sp, #44] + ldr r3, [sp, #48] add r3, r3, #4 - str r3, [sp, #44] + str r3, [sp, #48] ldr r3, [sp, #28] cmp r3, #4 - bne .L4519 -.L4518: + bne .L4505 +.L4504: mov r0, #0 bl zftl_flash_exit_slc_mode - ldr r3, .L4557+4 + ldr r3, .L4542 + cmp fp, #0 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] mov r2, #2 @@ -27483,24 +27300,16 @@ write_idblock: clz r0, r3 mov r0, r0, lsr #5 rsb r0, r0, #0 - b .L4485 -.L4522: + b .L4471 +.L4507: mvn r0, #0 -.L4485: - ldr r3, .L4557 - ldr r2, [sp, #156] - ldr r3, [r3] - cmp r2, r3 - beq .L4521 - bl __stack_chk_fail -.L4521: - add sp, sp, #164 +.L4471: + add sp, sp, #156 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4558: +.L4543: .align 2 -.L4557: - .word __stack_chk_guard +.L4542: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR5 @@ -27521,24 +27330,24 @@ CRC_32: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L4563 + ldr ip, .L4548 add r1, r0, r1 mov r2, #0 -.L4560: +.L4545: cmp r0, r1 - beq .L4562 + beq .L4547 ldrb r3, [r0], #1 @ zero_extendqisi2 eor r3, r3, r2, lsr #24 add r3, ip, r3, asl #2 - ldr r3, [r3, #-3920] + ldr r3, [r3, #-3888] eor r2, r3, r2, asl #8 - b .L4560 -.L4562: + b .L4545 +.L4547: mov r0, r2 bx lr -.L4564: +.L4549: .align 2 -.L4563: +.L4548: .word .LANCHOR6 .fnend .size CRC_32, .-CRC_32 @@ -27547,25 +27356,22 @@ CRC_32: .type write_loader_lba, %function write_loader_lba: .fnstart - @ args = 0, pretend = 0, frame = 48 + @ 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} cmp r0, #64 - ldr r6, .L4589 - .pad #56 - sub sp, sp, #56 + stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} mov r4, r0 - mov r7, r1 - mov r9, r2 - ldr r5, .L4589+4 - ldr r3, [r6] - str r3, [sp, #52] - bne .L4566 + .pad #52 + sub sp, sp, #52 + mov r6, r1 + mov r8, r2 + ldr r5, .L4573 + bne .L4551 ldr r2, [r2] - ldr r3, .L4589+8 + ldr r3, .L4573+4 cmp r2, r3 - bne .L4566 + bne .L4551 mov r0, #256000 mov r3, #1 strb r3, [r5, #-2464] @@ -27575,117 +27381,110 @@ write_loader_lba: str r0, [r5, #-2460] bl ftl_memset str r4, [r5, #-2456] -.L4566: - str r7, [sp] +.L4551: + str r6, [sp] mov r3, r4 - ldr r0, .L4589+12 + ldr r0, .L4573+8 ldr r1, [r5, #-2460] - ldr r2, [r9] + ldr r2, [r8] bl printk ldrb r3, [r5, #-2464] @ zero_extendqisi2 - ldr r10, .L4589+4 + ldr r9, .L4573 cmp r3, #0 - beq .L4565 - ldr r8, [r10, #-2460] - cmp r8, #0 - beq .L4565 + beq .L4550 + ldr r7, [r9, #-2460] + cmp r7, #0 + beq .L4550 sub r0, r4, #64 cmp r0, #500 - bcs .L4568 + bcs .L4553 rsb r2, r4, #564 - add r0, r8, r0, asl #9 - cmp r2, r7 - mov r1, r9 - movcs r2, r7 + add r0, r7, r0, asl #9 + cmp r2, r6 + mov r1, r8 + movcs r2, r6 mov r2, r2, asl #9 bl ftl_memcpy - b .L4569 -.L4568: + b .L4554 +.L4553: cmp r4, #564 - bcs .L4577 -.L4569: + bcs .L4562 +.L4554: ldr r3, [r5, #-2456] - ldr r9, .L4589+4 + ldr r8, .L4573 cmp r3, r4 - beq .L4575 - mov r0, r8 - mov r10, #0 - strb r10, [r9, #-2464] + beq .L4560 + mov r0, r7 + mov r9, #0 + strb r9, [r8, #-2464] bl ftl_free - str r10, [r9, #-2460] -.L4575: - add r4, r4, r7 + str r9, [r8, #-2460] +.L4560: + add r4, r4, r6 str r4, [r5, #-2456] - b .L4565 -.L4577: - ldr r3, .L4589+16 - ldr r0, [r10, #-2456] + b .L4550 +.L4562: + ldr r3, .L4573+12 + ldr r0, [r9, #-2456] ldr r3, [r3, #584] sub r0, r0, #64 cmp r0, #500 ldrb r3, [r3, #9] @ zero_extendqisi2 movcs r0, #500 cmp r3, #4 - beq .L4579 + beq .L4563 mov r3, #2 - str r3, [sp, #12] + str r3, [sp, #8] mov r3, #3 - str r3, [sp, #16] + str r3, [sp, #12] mov r3, #4 - str r3, [sp, #20] + str r3, [sp, #16] mov r3, #5 - str r3, [sp, #24] + str r3, [sp, #20] mov r3, #6 - str r3, [sp, #28] - b .L4571 -.L4579: + str r3, [sp, #24] + b .L4556 +.L4563: mov r3, #0 -.L4570: +.L4555: cmp r0, #256 - add r1, sp, #12 + add r1, sp, #8 mov r2, r3, asl #1 movls r2, r3 str r2, [r1, r3, asl #2] add r3, r3, #1 cmp r3, #5 - bne .L4570 -.L4571: + bne .L4555 +.L4556: mov r3, #61952 -.L4574: - ldr r2, [r8, r3, asl #2] +.L4559: + ldr r2, [r7, r3, asl #2] cmp r2, #0 addne r3, r3, #2048 movne r0, r3, asl #2 - bne .L4573 -.L4572: + bne .L4558 +.L4557: sub r3, r3, #1 cmp r3, #4096 - bne .L4574 + bne .L4559 mov r0, r0, asl #9 -.L4573: - mov r1, r8 - add r2, sp, #12 +.L4558: + mov r1, r7 + add r2, sp, #8 bl write_idblock ldr r0, [r5, #-2460] - mov r8, #0 - strb r8, [r5, #-2464] + mov r7, #0 + strb r7, [r5, #-2464] bl ftl_free - str r8, [r5, #-2460] - b .L4575 -.L4565: - ldr r2, [sp, #52] - ldr r3, [r6] - cmp r2, r3 - beq .L4578 - bl __stack_chk_fail -.L4578: - add sp, sp, #56 + str r7, [r5, #-2460] + b .L4560 +.L4550: + add sp, sp, #52 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4590: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L4574: .align 2 -.L4589: - .word __stack_chk_guard +.L4573: .word .LANCHOR5 .word -52655045 .word .LC315 @@ -27712,13 +27511,13 @@ FtlWrite: cmp r0, #0 movne r2, #0 cmp r2, #0 - beq .L4592 + beq .L4576 mov r0, r1 mov r2, r3 mov r1, r6 bl write_loader_lba -.L4592: - ldr r3, .L4597 +.L4576: + ldr r3, .L4581 mov r0, r7 mov r1, r4 mov r2, r6 @@ -27727,9 +27526,9 @@ FtlWrite: mov r3, r5 ldmfd sp!, {r4, r5, r6, r7, r8, lr} bx ip -.L4598: +.L4582: .align 2 -.L4597: +.L4581: .word .LANCHOR3 .fnend .size FtlWrite, .-FtlWrite @@ -27740,483 +27539,480 @@ rknand_sys_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 528 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - .pad #528 - sub sp, sp, #528 - ldr r5, .L4706 - mov r4, r1 - mov r6, r2 - ldr r3, [r5] - str r3, [sp, #524] - ldr r3, .L4706+4 + ldr r3, .L4689 + stmfd sp!, {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} cmp r1, r3 - beq .L4601 - bhi .L4602 + .pad #532 + sub sp, sp, #532 + mov r4, r1 + mov r5, r2 + beq .L4585 + bhi .L4586 sub r3, r3, #3456 sub r3, r3, #5 cmp r1, r3 - beq .L4603 - bhi .L4604 + beq .L4587 + bhi .L4588 sub r3, r3, #125 cmp r1, r3 - beq .L4605 - bhi .L4606 + beq .L4589 + bhi .L4590 sub r3, r3, #237 cmp r1, r3 - bne .L4663 + bne .L4646 bl rknand_dev_flush - b .L4694 -.L4606: - ldr r3, .L4706+8 + b .L4677 +.L4590: + ldr r3, .L4689+4 cmp r1, r3 - beq .L4608 + beq .L4592 add r3, r3, #1 cmp r1, r3 - beq .L4609 - b .L4663 -.L4604: - ldr r3, .L4706+12 + beq .L4593 + b .L4646 +.L4588: + ldr r3, .L4689+8 cmp r1, r3 - beq .L4610 - bhi .L4611 + beq .L4594 + bhi .L4595 sub r3, r3, #1952 sub r3, r3, #9 cmp r1, r3 - beq .L4612 - b .L4663 -.L4611: - ldr r3, .L4706+16 + beq .L4596 + b .L4646 +.L4595: + ldr r3, .L4689+12 cmp r1, r3 - beq .L4610 + beq .L4594 add r3, r3, #10 cmp r1, r3 - beq .L4610 - b .L4663 -.L4602: - ldr r3, .L4706+20 + beq .L4594 + b .L4646 +.L4586: + ldr r3, .L4689+16 cmp r1, r3 - beq .L4613 - bhi .L4614 + beq .L4597 + bhi .L4598 sub r3, r3, #78 cmp r1, r3 - beq .L4615 - bcc .L4616 + beq .L4599 + bcc .L4600 add r3, r3, #21 cmp r1, r3 - beq .L4617 + beq .L4601 add r3, r3, #56 cmp r1, r3 - beq .L4618 - b .L4663 -.L4614: - ldr r3, .L4706+24 + beq .L4602 + b .L4646 +.L4598: + ldr r3, .L4689+20 cmp r1, r3 - mov r7, r3 - beq .L4619 - bhi .L4620 + mov r6, r3 + beq .L4603 + bhi .L4604 sub r3, r3, #956 sub r3, r3, #1 cmp r1, r3 - beq .L4621 + beq .L4605 add r3, r3, #956 cmp r1, r3 - beq .L4622 - b .L4663 -.L4620: - ldr r3, .L4706+28 + beq .L4606 + b .L4646 +.L4604: + ldr r3, .L4689+24 cmp r1, r3 - beq .L4622 + beq .L4606 add r3, r3, #1 cmp r1, r3 - beq .L4619 - b .L4663 -.L4616: - ldr r0, .L4706+32 + beq .L4603 + b .L4646 +.L4600: + ldr r0, .L4689+28 bl printk mov r0, #4096 bl ftl_malloc subs r4, r0, #0 - bne .L4623 -.L4628: + bne .L4607 +.L4612: mvn r0, #11 - b .L4600 -.L4623: - mov r1, r6 + b .L4584 +.L4607: + mov r1, r5 mov r2, #512 bl rk_copy_from_user cmp r0, #0 - bne .L4700 - ldr r0, .L4706+36 + bne .L4683 + ldr r0, .L4689+32 ldmia r4, {r1, r2} bl printk ldr r3, [r4, #4] cmp r3, #8 - str r3, [sp] - bhi .L4698 + str r3, [sp, #4] + bhi .L4681 bl rknand_device_lock mov r2, r4 ldr r0, [r4] - ldr r1, [sp] - bl id_block_read_data.constprop.30 + ldr r1, [sp, #4] + bl id_block_read_data.constprop.29 bl rknand_device_unlock - mov r0, r6 + mov r0, r5 mov r1, r4 - ldr r2, [sp] + ldr r2, [sp, #4] mov r2, r2, asl #9 bl rk_copy_to_user cmp r0, #0 - beq .L4693 - ldr r0, .L4706+40 -.L4696: + beq .L4676 + ldr r0, .L4689+36 +.L4679: bl printk -.L4698: +.L4681: mov r0, r4 -.L4699: +.L4682: bl ftl_free -.L4697: +.L4680: mvn r0, #13 - b .L4600 -.L4615: - ldr r0, .L4706+44 + b .L4584 +.L4599: + ldr r0, .L4689+40 bl printk mov r0, #4096 bl ftl_malloc subs r4, r0, #0 - beq .L4628 - mov r1, r6 + beq .L4612 + mov r1, r5 mov r2, #4096 bl rk_copy_from_user cmp r0, #0 - beq .L4629 -.L4700: - ldr r0, .L4706+48 - b .L4696 -.L4629: - ldr r6, .L4706+52 - ldr r0, .L4706+56 + 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 r7, [r6, #-2452] - mov r8, r6 - cmp r7, #0 - bne .L4630 + ldr r6, [r5, #-2452] + mov r7, r5 + cmp r6, #0 + bne .L4614 mov r0, #260096 bl ftl_malloc cmp r0, #0 - str r0, [r6, #-2452] - beq .L4698 - mov r1, r7 + str r0, [r5, #-2452] + beq .L4681 + mov r1, r6 mov r2, #260096 bl memset -.L4630: +.L4614: ldr r2, [r4, #4] movw r3, #4088 cmp r2, r3 - bhi .L4698 + bhi .L4681 ldr r3, [r4] cmp r3, #251904 - bhi .L4698 - ldr r0, [r8, #-2452] + bhi .L4681 + ldr r0, [r7, #-2452] add r1, r4, #8 add r0, r0, r3 bl memcpy -.L4693: +.L4676: mov r0, r4 bl ftl_free -.L4694: +.L4677: mov r4, #0 - b .L4627 -.L4618: - ldr r0, .L4706+60 + b .L4611 +.L4602: + ldr r0, .L4689+56 bl printk mov r0, #4096 bl ftl_malloc - subs r7, r0, #0 - beq .L4628 - mov r1, r6 + subs r6, r0, #0 + beq .L4612 + mov r1, r5 mov r2, #28 bl rk_copy_from_user cmp r0, #0 - beq .L4633 - ldr r0, .L4706+48 + beq .L4617 + ldr r0, .L4689+44 bl printk - b .L4634 -.L4633: - ldmia r7, {r1, r2} - ldr r0, .L4706+64 + b .L4618 +.L4617: + ldmia r6, {r1, r2} + ldr r0, .L4689+60 bl printk - ldr r1, [r7] + ldr r1, [r6] cmp r1, #256000 - bhi .L4634 - ldr r6, .L4706+52 - ldr r0, [r6, #-2452] + bhi .L4618 + ldr r5, .L4689+48 + ldr r0, [r5, #-2452] cmp r0, #0 - beq .L4634 + beq .L4618 bl CRC_32 - ldr r3, [r7, #4] + ldr r3, [r6, #4] cmp r3, r0 - beq .L4636 - mov r0, r7 + beq .L4620 + mov r0, r6 bl ftl_free - b .L4664 -.L4636: + b .L4647 +.L4620: bl rknand_device_lock - ldr r1, [r6, #-2452] - add r2, r7, #8 - ldr r0, [r7] + ldr r1, [r5, #-2452] + add r2, r6, #8 + ldr r0, [r6] bl write_idblock mov r4, #0 bl rknand_device_unlock - ldr r0, [r6, #-2452] + ldr r0, [r5, #-2452] bl ftl_free - str r4, [r6, #-2452] - mov r0, r7 - b .L4640 -.L4634: - mov r0, r7 - b .L4699 -.L4617: - ldr r0, .L4706+68 + 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 r7, r0, #0 - beq .L4628 + subs r6, r0, #0 + beq .L4612 bl ReadFlashInfo - mov r0, r6 - mov r1, r7 + mov r0, r5 + mov r1, r6 mov r2, #11 - b .L4704 -.L4601: - ldr r0, .L4706+72 + b .L4687 +.L4585: + ldr r0, .L4689+68 bl printk bl nand_blk_add_whole_disk mov r0, #4096 bl ftl_malloc - subs r7, r0, #0 - beq .L4628 + subs r6, r0, #0 + beq .L4612 mov r1, #0 mov r2, #64 bl ftl_memset - mov r0, r6 - mov r1, r7 + mov r0, r5 + mov r1, r6 mov r2, #64 - b .L4704 -.L4613: - ldr r0, .L4706+76 + b .L4687 +.L4597: + ldr r0, .L4689+72 bl printk - ldr r3, .L4706+52 - mov r0, r6 + 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, #-528]! -.L4688: + str r3, [r1, #-524]! +.L4671: bl rk_copy_to_user cmp r0, #0 - bne .L4697 - b .L4694 -.L4621: - ldr r0, .L4706+80 + bne .L4680 + b .L4677 +.L4605: + ldr r0, .L4689+76 bl printk mov r0, #4096 bl ftl_malloc - subs r7, r0, #0 - beq .L4628 + subs r6, r0, #0 + beq .L4612 bl rknand_device_lock mov r1, #264 mov r2, #2 - mov r3, r7 + mov r3, r6 mov r0, #16 bl FtlRead bl rknand_device_unlock - mov r0, r6 - mov r1, r7 + mov r0, r5 + mov r1, r6 mov r2, #1024 -.L4704: +.L4687: bl rk_copy_to_user subs r4, r0, #0 - mov r0, r7 - bne .L4699 -.L4640: + mov r0, r6 + bne .L4682 +.L4624: bl ftl_free - b .L4627 -.L4605: - ldr r0, .L4706+84 + b .L4611 +.L4589: + ldr r0, .L4689+80 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user subs r4, r0, #0 - beq .L4641 -.L4646: - ldr r0, .L4706+48 + beq .L4625 +.L4630: + ldr r0, .L4689+44 bl printk - b .L4697 -.L4641: - ldr r2, [sp, #4] - ldr r3, .L4706+88 + b .L4680 +.L4625: + ldr r2, [sp, #8] + ldr r3, .L4689+84 cmp r2, r3 - beq .L4642 -.L4643: + beq .L4626 +.L4627: mvn r4, #0 - b .L4627 -.L4642: - ldr r3, [sp, #8] + b .L4611 +.L4626: + ldr r3, [sp, #12] cmp r3, #512 - bhi .L4643 - ldr r7, .L4706+52 + bhi .L4627 + ldr r6, .L4689+48 mov r2, #512 - add r0, sp, #4 - ldr r1, [r7, #-2448] + add r0, sp, #8 + ldr r1, [r6, #-2448] bl memcpy - ldr r2, [r7, #-2444] - ldr r3, .L4706+92 + ldr r2, [r6, #-2444] + ldr r3, .L4689+88 cmp r2, r3 - beq .L4644 - add r0, sp, #68 + beq .L4628 + add r0, sp, #72 mov r1, r4 mov r2, #128 - str r4, [sp, #12] str r4, [sp, #16] + str r4, [sp, #20] bl memset -.L4644: +.L4628: mov r1, #0 mov r2, #256 - add r0, sp, #260 - str r1, [sp, #20] + add r0, sp, #264 + str r1, [sp, #24] bl memset - b .L4702 -.L4608: - ldr r0, .L4706+96 + b .L4685 +.L4592: + ldr r0, .L4689+92 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4646 - ldr r2, [sp, #4] - ldr r3, .L4706+88 + bne .L4630 + ldr r2, [sp, #8] + ldr r3, .L4689+84 cmp r2, r3 - bne .L4643 - ldr r3, [sp, #8] + bne .L4627 + ldr r3, [sp, #12] cmp r3, #512 - bhi .L4643 - ldr r2, .L4706+52 - ldr r3, .L4706+92 + bhi .L4627 + ldr r2, .L4689+48 + ldr r3, .L4689+88 ldr r1, [r2, #-2444] cmp r1, r3 - bne .L4664 - ldr r3, [sp, #16] + bne .L4647 + ldr r3, [sp, #20] sub r1, r3, #1 cmp r1, #127 mvnhi r0, #2 - bhi .L4600 + bhi .L4584 ldr r4, [r2, #-2448] - add r1, sp, #68 + add r1, sp, #72 add r0, r4, #64 str r3, [r4, #12] - ldr r2, [sp, #16] + ldr r2, [sp, #20] bl memcpy mov r0, #1 mov r1, r4 - b .L4695 -.L4612: - ldr r0, .L4706+100 + b .L4678 +.L4596: + ldr r0, .L4689+96 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4646 - ldr r2, [sp, #4] - ldr r3, .L4706+104 + bne .L4630 + ldr r2, [sp, #8] + ldr r3, .L4689+100 cmp r2, r3 - bne .L4643 - ldr r3, [sp, #8] + bne .L4627 + ldr r3, [sp, #12] cmp r3, #512 - bhi .L4643 - ldr r6, .L4706+52 - ldr r3, [r6, #-2440] + bhi .L4627 + ldr r5, .L4689+48 + ldr r3, [r5, #-2440] cmp r3, #0 - bne .L4647 -.L4650: + bne .L4631 +.L4634: mov r0, #0 - b .L4600 -.L4647: - ldr r3, [r6, #-2436] - ldr r2, .L4706+108 + b .L4584 +.L4631: + ldr r3, [r5, #-2436] + ldr r2, .L4689+104 ldr r1, [r3] cmp r1, r2 - beq .L4648 + beq .L4632 str r2, [r3] mov r2, #504 - ldr r3, [r6, #-2436] + ldr r3, [r5, #-2436] str r2, [r3, #4] mov r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L4648: - ldr r1, [r6, #-2436] +.L4632: + ldr r1, [r5, #-2436] mov r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore - ldr r3, [r6, #-2448] - ldr r2, .L4706+88 + ldr r3, [r5, #-2448] + ldr r2, .L4689+84 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r7, [r6, #-2448] - ldrne r3, .L4706+52 + ldr r6, [r5, #-2448] + ldrne r3, .L4689+48 movne r2, #504 - add r0, r7, #64 + add r0, r6, #64 ldrne r3, [r3, #-2448] stmneib r3, {r2, r4} mov r4, #0 mov r1, r4 mov r2, #128 - str r4, [r7, #12] + str r4, [r6, #12] bl memset mov r0, #1 - mov r1, r7 - bl StorageSysDataStore - str r4, [r6, #-2440] - str r4, [r6, #-2444] - b .L4627 -.L4603: - ldr r0, .L4706+112 - bl printk mov r1, r6 + bl StorageSysDataStore + str r4, [r5, #-2440] + str r4, [r5, #-2444] + b .L4611 +.L4587: + ldr r0, .L4689+108 + bl printk + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4646 - ldr r2, [sp, #4] - ldr r3, .L4706+116 + bne .L4630 + ldr r2, [sp, #8] + ldr r3, .L4689+112 cmp r2, r3 - bne .L4643 - ldr r3, [sp, #8] + bne .L4627 + ldr r3, [sp, #12] cmp r3, #512 - bhi .L4643 - ldr r6, .L4706+52 - ldr r3, [r6, #-2440] + bhi .L4627 + ldr r5, .L4689+48 + ldr r3, [r5, #-2440] cmp r3, #1 - beq .L4650 - ldr r3, [r6, #-2436] + beq .L4634 + ldr r3, [r5, #-2436] mov r4, #0 - ldr r2, .L4706+108 + ldr r2, .L4689+104 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r1, [r6, #-2436] - ldrne r3, [r6, #-2436] + ldr r1, [r5, #-2436] + ldrne r3, [r5, #-2436] movne r2, #504 strne r0, [r3, #8] strne r2, [r3, #4] @@ -28225,105 +28021,106 @@ rknand_sys_storage_ioctl: mov r0, #0 str r3, [r1, #16] bl StorageSysDataStore - ldr r3, [r6, #-2448] - ldr r2, .L4706+88 + ldr r3, [r5, #-2448] + ldr r2, .L4689+84 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r7, [r6, #-2448] - ldrne r3, .L4706+52 + ldr r6, [r5, #-2448] + ldrne r3, .L4689+48 movne r1, #504 movne r2, #0 - add r0, r7, #64 + add r0, r6, #64 ldrne r3, [r3, #-2448] stmneib r3, {r1, r2} mov r1, r4 mov r2, #128 - str r4, [r7, #12] + str r4, [r6, #12] bl memset mov r0, #1 - mov r1, r7 + mov r1, r6 bl StorageSysDataStore mov r3, #1 - str r3, [r6, #-2440] - b .L4627 -.L4609: - ldr r0, .L4706+120 + str r3, [r5, #-2440] + b .L4611 +.L4593: + ldr r0, .L4689+116 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4646 - ldr r2, [sp, #4] - ldr r3, .L4706+124 - cmp r2, r3 - bne .L4643 + bne .L4630 ldr r2, [sp, #8] + ldr r3, .L4689+120 + cmp r2, r3 + bne .L4627 + ldr r2, [sp, #12] cmp r2, #512 - addls r0, sp, #12 - ldrls r1, .L4706+128 - bls .L4701 - b .L4643 -.L4610: - ldr r8, .L4706+16 - cmp r4, r8 - ldreq r0, .L4706+132 - beq .L4691 - ldr r3, .L4706+136 + addls r0, sp, #16 + ldrls r1, .L4689+124 + bls .L4684 + b .L4627 +.L4594: + ldr r0, .L4689+12 + cmp r4, r0 + mov r7, r0 + ldreq r0, .L4689+128 + beq .L4674 + ldr r3, .L4689+132 cmp r4, r3 - ldreq r0, .L4706+140 - ldrne r0, .L4706+144 -.L4691: + ldreq r0, .L4689+136 + ldrne r0, .L4689+140 +.L4674: bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4646 - ldr r2, [sp, #4] - ldr r3, .L4706+148 + bne .L4630 + ldr r2, [sp, #8] + ldr r3, .L4689+144 cmp r2, r3 - bne .L4697 - ldr r3, .L4706+136 - ldr r7, .L4706+52 + bne .L4680 + ldr r3, .L4689+132 + ldr r6, .L4689+48 cmp r4, r3 - bne .L4656 - ldr r3, [r7, #-2448] - mov r0, r6 - add r1, sp, #4 + bne .L4640 + ldr r3, [r6, #-2448] + mov r0, r5 + add r1, sp, #8 mov r2, #16 ldr r3, [r3, #20] - str r3, [sp, #8] - strb r3, [sp, #12] + str r3, [sp, #12] + strb r3, [sp, #16] bl rk_copy_to_user cmp r0, #0 - beq .L4600 - b .L4697 -.L4656: - ldr r3, [r7, #-1920] + beq .L4584 + b .L4680 +.L4640: + ldr r3, [r6, #-1920] cmp r3, #10 - bhi .L4697 - ldr r1, [r7, #-2448] - ldr r2, [sp, #8] + bhi .L4680 + ldr r1, [r6, #-2448] + ldr r2, [sp, #12] ldr r3, [r1, #24] cmp r3, r2 cmpne r3, #0 movne r3, #1 moveq r3, #0 - beq .L4657 - ldr r0, .L4706+152 + beq .L4641 + ldr r0, .L4689+148 mov r1, r2 bl printk - ldr r3, [r7, #-1920] + ldr r3, [r6, #-1920] add r3, r3, #1 - str r3, [r7, #-1920] - b .L4697 -.L4657: - cmp r4, r8 - str r3, [r7, #-1920] + str r3, [r6, #-1920] + b .L4680 +.L4641: + cmp r4, r7 + str r3, [r6, #-1920] mov r0, #1 moveq r2, r3 movne r3, #1 @@ -28332,99 +28129,92 @@ rknand_sys_storage_ioctl: str r3, [r1, #20] bl StorageSysDataStore cmn r0, #1 - bne .L4694 + bne .L4677 mvn r4, #1 - b .L4627 -.L4622: - ldr r0, .L4706+156 + b .L4611 +.L4606: + ldr r0, .L4689+152 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4646 - ldr r2, [sp, #4] - ldr r3, .L4706+160 - cmp r2, r3 - bne .L4643 + bne .L4630 ldr r2, [sp, #8] + ldr r3, .L4689+156 + cmp r2, r3 + bne .L4627 + ldr r2, [sp, #12] cmp r2, #504 - bhi .L4643 - ldr r3, .L4706+164 - add r0, sp, #12 + bhi .L4627 + ldr r3, .L4689+160 + add r0, sp, #16 cmp r4, r3 - ldr r3, .L4706+52 + ldr r3, .L4689+48 ldreq r1, [r3, #-1916] ldrne r1, [r3, #-1912] add r1, r1, #8 -.L4701: +.L4684: bl memcpy -.L4702: - mov r0, r6 - add r1, sp, #4 +.L4685: + mov r0, r5 + add r1, sp, #8 mov r2, #520 - b .L4688 -.L4619: - ldr r0, .L4706+168 + b .L4671 +.L4603: + ldr r0, .L4689+164 bl printk - mov r1, r6 + mov r1, r5 mov r2, #520 - add r0, sp, #4 + add r0, sp, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4646 - ldr r2, [sp, #4] - ldr r3, .L4706+160 - cmp r2, r3 - bne .L4643 + bne .L4630 ldr r2, [sp, #8] + ldr r3, .L4689+156 + cmp r2, r3 + bne .L4627 + ldr r2, [sp, #12] cmp r2, #504 - bhi .L4643 - cmp r4, r7 + bhi .L4627 + cmp r4, r6 add r2, r2, #8 - ldr r4, .L4706+52 - bne .L4661 - add r1, sp, #4 + ldr r4, .L4689+48 + bne .L4645 + add r1, sp, #8 ldr r0, [r4, #-1916] bl memcpy mov r0, #2 ldr r1, [r4, #-1916] - b .L4695 -.L4661: - add r1, sp, #4 + b .L4678 +.L4645: + add r1, sp, #8 ldr r0, [r4, #-1912] bl memcpy ldr r1, [r4, #-1912] mov r0, #3 -.L4695: +.L4678: bl StorageSysDataStore mov r4, r0 -.L4627: - ldr r0, .L4706+172 +.L4611: + ldr r0, .L4689+168 mov r1, r4 bl printk mov r0, r4 - b .L4600 -.L4663: + b .L4584 +.L4646: mvn r0, #21 - b .L4600 -.L4664: + b .L4584 +.L4647: mvn r0, #1 -.L4600: - ldr r2, [sp, #524] - ldr r3, [r5] - cmp r2, r3 - beq .L4662 - bl __stack_chk_fail -.L4662: - add sp, sp, #528 +.L4584: + add sp, sp, #532 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L4707: + ldmfd sp!, {r4, r5, r6, r7, pc} +.L4690: .align 2 -.L4706: - .word __stack_chk_guard +.L4689: .word 1074033155 .word 1074029570 .word 1074031656 @@ -28480,7 +28270,7 @@ rk_ftl_storage_sys_init: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mvn r3, #0 - ldr r4, .L4717 + ldr r4, .L4700 mov r2, #512 mov r5, #0 sub r0, r4, #2432 @@ -28504,23 +28294,23 @@ rk_ftl_storage_sys_init: ldr r3, [r0, #16] cmp r6, r5 str r3, [r4, #-2440] - beq .L4710 + beq .L4693 mov r1, #508 bl js_hash cmp r6, r0 - beq .L4710 + beq .L4693 ldr r3, [r4, #-2436] - ldr r0, .L4717+4 + ldr r0, .L4700+4 str r5, [r4, #-2440] str r5, [r3, #16] bl printk -.L4710: +.L4693: ldr r3, [r4, #-2440] mov r0, #2 ldr r1, [r4, #-1916] cmp r3, #0 - ldrne r2, .L4717+8 - ldrne r3, .L4717 + ldrne r2, .L4700+8 + ldrne r3, .L4700 strne r2, [r3, #-2444] bl StorageSysDataLoad ldr r1, [r4, #-1912] @@ -28528,9 +28318,9 @@ rk_ftl_storage_sys_init: bl StorageSysDataLoad ldmfd sp!, {r4, r5, r6, lr} b rknand_sys_storage_init -.L4718: +.L4701: .align 2 -.L4717: +.L4700: .word .LANCHOR5 .word .LC340 .word -1067903959 @@ -28559,24 +28349,24 @@ rk_ftl_vendor_storage_init: .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r0, #65536 bl ftl_malloc - ldr r6, .L4731 + ldr r6, .L4714 cmp r0, #0 str r0, [r6, #-1908] - beq .L4726 - ldr r9, .L4731+4 + beq .L4709 + ldr r9, .L4714+4 mov r8, #0 mov r4, r8 mov r7, r8 mov r10, r6 -.L4724: +.L4707: mov r0, r7, asl #7 mov r1, #128 ldr r2, [r6, #-1908] bl FlashBootVendorRead cmp r0, #0 - bne .L4722 + bne .L4705 ldr r3, [r10, #-1908] - ldr r0, .L4731+8 + ldr r0, .L4714+8 add r2, r3, #61440 ldr r1, [r3] ldr r2, [r2, #4092] @@ -28585,7 +28375,7 @@ rk_ftl_vendor_storage_init: ldr r5, [r10, #-1908] ldr r3, [r5] cmp r3, r9 - bne .L4723 + bne .L4706 add r2, r5, #61440 ldr r3, [r5, #4] ldr r1, [r2, #4092] @@ -28597,48 +28387,48 @@ rk_ftl_vendor_storage_init: cmp r2, #0 movne r8, r7 movne r4, r3 -.L4723: +.L4706: cmp r7, #1 movne r7, #1 - bne .L4724 -.L4730: + bne .L4707 +.L4713: cmp r4, #0 - beq .L4725 + beq .L4708 mov r0, r8, asl #7 mov r1, #128 mov r2, r5 bl FlashBootVendorRead cmp r0, #0 - bne .L4722 + bne .L4705 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4725: +.L4708: mov r0, r5 mov r1, r4 mov r2, #65536 bl memset - ldr r3, .L4731+4 + ldr r3, .L4714+4 str r7, [r5, #4] mov r0, r4 str r3, [r5] add r3, r5, #61440 str r7, [r3, #4092] - ldr r3, .L4731+12 + ldr r3, .L4714+12 strh r4, [r5, #12] @ movhi strh r3, [r5, #14] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4722: +.L4705: ldr r0, [r6, #-1908] bl kfree mov r3, #0 mvn r0, #0 str r3, [r6, #-1908] ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4726: +.L4709: mvn r0, #11 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4732: +.L4715: .align 2 -.L4731: +.L4714: .word .LANCHOR5 .word 1380668996 .word .LC341 @@ -28654,19 +28444,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, .L4740 + ldr r3, .L4723 ldr ip, [r3, #-1908] cmp ip, #0 ldrneh r4, [ip, #10] movne r3, #0 - beq .L4738 -.L4735: + beq .L4721 +.L4718: cmp r3, r4 - bcs .L4738 + bcs .L4721 add lr, ip, r3, asl #3 ldrh r5, [lr, #16] cmp r5, r0 - bne .L4736 + bne .L4719 ldrh r3, [lr, #20] mov r0, r1 ldrh r1, [lr, #18] @@ -28679,15 +28469,15 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L4736: +.L4719: add r3, r3, #1 - b .L4735 -.L4738: + b .L4718 +.L4721: mvn r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L4741: +.L4724: .align 2 -.L4740: +.L4723: .word .LANCHOR5 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -28701,12 +28491,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, .L4765 + ldr r2, .L4748 .pad #28 sub sp, sp, #28 ldr r4, [r2, #-1908] cmp r4, #0 - beq .L4757 + beq .L4740 mov r3, r1 add r7, r9, #63 ldrh r1, [r4, #8] @@ -28715,31 +28505,31 @@ rk_ftl_vendor_write: mov ip, r0 mov r6, #0 str r1, [sp, #4] -.L4744: +.L4727: cmp r6, r2 - bcs .L4763 + bcs .L4746 add r5, r4, r6, asl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L4745 + bne .L4728 ldrh r1, [r5, #20] add fp, r4, #1024 add r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L4746 + bls .L4729 ldrh r1, [r4, #14] cmp r1, r7 subcs r2, r2, #1 strcs r2, [sp, #12] ldrcsh r8, [r5, #18] - bcc .L4757 -.L4747: + bcc .L4740 +.L4730: ldr r2, [sp, #12] add r5, r5, #8 cmp r6, r2 - bcs .L4764 + bcs .L4747 ldrh r10, [r5, #20] add r0, fp, r8 ldrh r2, [r5, #16] @@ -28758,8 +28548,8 @@ rk_ftl_vendor_write: add r8, r8, r10 ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L4747 -.L4764: + b .L4730 +.L4747: add r6, r4, r6, asl #3 uxth r8, r8 add r0, fp, r8 @@ -28777,22 +28567,22 @@ rk_ftl_vendor_write: add r5, r3, r5 rsb r7, r7, r5 strh r7, [r4, #14] @ movhi - b .L4762 -.L4746: + b .L4745 +.L4729: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, fp, r0 bl memcpy strh r9, [r5, #20] @ movhi - b .L4762 -.L4745: + b .L4745 +.L4728: add r6, r6, #1 - b .L4744 -.L4763: + b .L4727 +.L4746: ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4757 + bcc .L4740 add r2, r4, r2, asl #3 uxth r7, r7 rsb r1, r7, r1 @@ -28812,7 +28602,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] add r3, r3, #1 strh r3, [r4, #10] @ movhi -.L4762: +.L4745: ldr r3, [r4, #4] add r2, r4, #61440 mov r1, #128 @@ -28830,16 +28620,16 @@ rk_ftl_vendor_write: mov r0, r3, asl #7 bl FlashBootVendorWrite mov r0, #0 - b .L4743 -.L4757: + b .L4726 +.L4740: mvn r0, #0 -.L4743: +.L4726: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4766: +.L4749: .align 2 -.L4765: +.L4748: .word .LANCHOR5 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -28858,34 +28648,34 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc subs r4, r0, #0 mvneq r5, #0 - beq .L4768 - ldr r3, .L4784 + beq .L4751 + ldr r3, .L4767 cmp r6, r3 - beq .L4770 + beq .L4753 add r3, r3, #1 cmp r6, r3 - beq .L4771 - b .L4782 -.L4770: + beq .L4754 + b .L4765 +.L4753: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4782 + bne .L4765 ldr r2, [r4] - ldr r3, .L4784+4 + ldr r3, .L4767+4 cmp r2, r3 - beq .L4773 -.L4774: + beq .L4756 +.L4757: mvn r5, #0 - b .L4769 -.L4773: + b .L4752 +.L4756: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read cmn r0, #1 - beq .L4774 + beq .L4757 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -28895,44 +28685,44 @@ rk_ftl_vendor_storage_ioctl: cmp r0, #0 moveq r5, #0 mvnne r5, #13 - b .L4769 -.L4771: + b .L4752 +.L4754: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4782 + bne .L4765 ldr r2, [r4] - ldr r3, .L4784+4 + ldr r3, .L4767+4 cmp r2, r3 - bne .L4774 + bne .L4757 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L4774 + bhi .L4757 mov r0, r4 mov r1, r5 add r2, r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4782 + bne .L4765 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L4769 -.L4782: + b .L4752 +.L4765: mvn r5, #13 -.L4769: +.L4752: mov r0, r4 bl kfree -.L4768: +.L4751: mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L4785: +.L4768: .align 2 -.L4784: +.L4767: .word 1074034177 .word 1448232273 .fnend @@ -29116,24 +28906,24 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 2 .LANCHOR1 = . + 0 - .type __func__.38616, %object - .size __func__.38616, 18 -__func__.38616: + .type __func__.38753, %object + .size __func__.38753, 18 +__func__.38753: .ascii "_list_remove_node\000" .space 2 - .type __func__.38641, %object - .size __func__.38641, 23 -__func__.38641: + .type __func__.38778, %object + .size __func__.38778, 23 +__func__.38778: .ascii "_list_update_data_list\000" .space 1 - .type __func__.19719, %object - .size __func__.19719, 22 -__func__.19719: + .type __func__.19769, %object + .size __func__.19769, 22 +__func__.19769: .ascii "nand_flash_print_info\000" .space 2 - .type __func__.19805, %object - .size __func__.19805, 11 -__func__.19805: + .type __func__.19855, %object + .size __func__.19855, 11 +__func__.19855: .ascii "nandc_init\000" .space 1 .type toshiba_A19ref_value, %object @@ -29295,13 +29085,13 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.19268, %object - .size __func__.19268, 28 -__func__.19268: + .type __func__.19312, %object + .size __func__.19312, 28 +__func__.19312: .ascii "flash_wait_device_ready_raw\000" - .type __func__.19332, %object - .size __func__.19332, 22 -__func__.19332: + .type __func__.19376, %object + .size __func__.19376, 22 +__func__.19376: .ascii "flash_start_page_read\000" .space 2 .type toshiba_3D_tlc_value, %object @@ -29722,19 +29512,19 @@ toshiba_3D_slc_value: .byte -56 .byte 56 .space 1 - .type __func__.19357, %object - .size __func__.19357, 23 -__func__.19357: + .type __func__.19401, %object + .size __func__.19401, 23 +__func__.19401: .ascii "flash_start_plane_read\000" .space 1 - .type __func__.19243, %object - .size __func__.19243, 26 -__func__.19243: + .type __func__.19287, %object + .size __func__.19287, 26 +__func__.19287: .ascii "flash_erase_duplane_block\000" .space 2 - .type __func__.19254, %object - .size __func__.19254, 21 -__func__.19254: + .type __func__.19298, %object + .size __func__.19298, 21 +__func__.19298: .ascii "flash_erase_block_en\000" .space 3 .type random_seed, %object @@ -29868,19 +29658,19 @@ random_seed: .short 28406 .short 17598 .short 28087 - .type __func__.19988, %object - .size __func__.19988, 13 -__func__.19988: + .type __func__.20038, %object + .size __func__.20038, 13 +__func__.20038: .ascii "buf_add_tail\000" .space 3 - .type __func__.20001, %object - .size __func__.20001, 10 -__func__.20001: + .type __func__.20051, %object + .size __func__.20051, 10 +__func__.20051: .ascii "buf_alloc\000" .space 2 - .type __func__.20015, %object - .size __func__.20015, 16 -__func__.20015: + .type __func__.20065, %object + .size __func__.20065, 16 +__func__.20065: .ascii "buf_remove_free\000" .type zftl_debug_proc_fops, %object .size zftl_debug_proc_fops, 128 @@ -29894,249 +29684,249 @@ zftl_debug_proc_fops: .space 4 .word single_release .space 64 - .type __func__.38180, %object - .size __func__.38180, 12 -__func__.38180: + .type __func__.38317, %object + .size __func__.38317, 12 +__func__.38317: .ascii "gc_add_sblk\000" - .type __func__.38274, %object - .size __func__.38274, 19 -__func__.38274: + .type __func__.38411, %object + .size __func__.38411, 19 +__func__.38411: .ascii "gc_write_completed\000" .space 1 - .type __func__.38823, %object - .size __func__.38823, 18 -__func__.38823: + .type __func__.38960, %object + .size __func__.38960, 18 +__func__.38960: .ascii "ftl_alloc_sys_blk\000" .space 2 - .type __func__.38833, %object - .size __func__.38833, 17 -__func__.38833: + .type __func__.38970, %object + .size __func__.38970, 17 +__func__.38970: .ascii "ftl_free_sys_blk\000" .space 3 - .type __func__.38972, %object - .size __func__.38972, 23 -__func__.38972: + .type __func__.39109, %object + .size __func__.39109, 23 +__func__.39109: .ascii "ftl_get_ppa_from_index\000" .space 1 - .type __func__.39012, %object - .size __func__.39012, 22 -__func__.39012: + .type __func__.39149, %object + .size __func__.39149, 22 +__func__.39149: .ascii "ftl_get_new_free_page\000" .space 2 - .type __func__.39023, %object - .size __func__.39023, 22 -__func__.39023: + .type __func__.39160, %object + .size __func__.39160, 22 +__func__.39160: .ascii "ftl_ext_alloc_new_blk\000" .space 2 - .type __func__.38330, %object - .size __func__.38330, 16 -__func__.38330: + .type __func__.38467, %object + .size __func__.38467, 16 +__func__.38467: .ascii "gc_free_src_blk\000" - .type __func__.37931, %object - .size __func__.37931, 14 -__func__.37931: + .type __func__.38068, %object + .size __func__.38068, 14 +__func__.38068: .ascii "ftl_write_buf\000" .space 2 - .type __func__.37976, %object - .size __func__.37976, 18 -__func__.37976: + .type __func__.38113, %object + .size __func__.38113, 18 +__func__.38113: .ascii "zftl_add_read_buf\000" .space 2 - .type __func__.38781, %object - .size __func__.38781, 15 -__func__.38781: + .type __func__.38918, %object + .size __func__.38918, 15 +__func__.38918: .ascii "ftl_alloc_sblk\000" .space 1 - .type __func__.39409, %object - .size __func__.39409, 17 -__func__.39409: + .type __func__.39546, %object + .size __func__.39546, 17 +__func__.39546: .ascii "pm_alloc_new_blk\000" .space 3 - .type __func__.39437, %object - .size __func__.39437, 21 -__func__.39437: + .type __func__.39574, %object + .size __func__.39574, 21 +__func__.39574: .ascii "pm_select_ram_region\000" .space 3 - .type __func__.19709, %object - .size __func__.19709, 20 -__func__.19709: + .type __func__.19759, %object + .size __func__.19759, 20 +__func__.19759: .ascii "flash_die_info_init\000" - .type __func__.37866, %object - .size __func__.37866, 17 -__func__.37866: + .type __func__.38003, %object + .size __func__.38003, 17 +__func__.38003: .ascii "lpa_rebuild_hash\000" .space 3 - .type __func__.39369, %object - .size __func__.39369, 13 -__func__.39369: + .type __func__.39506, %object + .size __func__.39506, 13 +__func__.39506: .ascii "pm_free_sblk\000" .space 3 - .type __func__.20039, %object - .size __func__.20039, 21 -__func__.20039: + .type __func__.20089, %object + .size __func__.20089, 21 +__func__.20089: .ascii "flash_info_data_init\000" .space 3 - .type __func__.19185, %object - .size __func__.19185, 19 -__func__.19185: + .type __func__.19229, %object + .size __func__.19229, 19 +__func__.19229: .ascii "flash_read_page_en\000" .space 1 - .type __func__.19345, %object - .size __func__.19345, 31 -__func__.19345: - .ascii "flash_complete_plane_page_read\000" - .space 1 - .type __func__.19370, %object - .size __func__.19370, 25 -__func__.19370: - .ascii "flash_complete_page_read\000" - .space 3 - .type __func__.39208, %object - .size __func__.39208, 31 -__func__.39208: - .ascii "queue_wait_first_req_completed\000" - .space 1 - .type __func__.39289, %object - .size __func__.39289, 15 -__func__.39289: - .ascii "sblk_read_page\000" - .space 1 - .type __func__.19321, %object - .size __func__.19321, 22 -__func__.19321: - .ascii "flash_start_page_prog\000" - .space 2 - .type __func__.39262, %object - .size __func__.39262, 15 -__func__.39262: - .ascii "sblk_prog_page\000" - .space 1 - .type __func__.19292, %object - .size __func__.19292, 26 -__func__.19292: + .type __func__.19336, %object + .size __func__.19336, 26 +__func__.19336: .ascii "flash_start_tlc_page_prog\000" .space 2 - .type __func__.19303, %object - .size __func__.19303, 29 -__func__.19303: + .type __func__.19347, %object + .size __func__.19347, 29 +__func__.19347: .ascii "flash_start_3d_mlc_page_prog\000" .space 3 - .type __func__.19227, %object - .size __func__.19227, 19 -__func__.19227: + .type __func__.19365, %object + .size __func__.19365, 22 +__func__.19365: + .ascii "flash_start_page_prog\000" + .space 2 + .type __func__.19389, %object + .size __func__.19389, 31 +__func__.19389: + .ascii "flash_complete_plane_page_read\000" + .space 1 + .type __func__.19414, %object + .size __func__.19414, 25 +__func__.19414: + .ascii "flash_complete_page_read\000" + .space 3 + .type __func__.39345, %object + .size __func__.39345, 31 +__func__.39345: + .ascii "queue_wait_first_req_completed\000" + .space 1 + .type __func__.39399, %object + .size __func__.39399, 15 +__func__.39399: + .ascii "sblk_prog_page\000" + .space 1 + .type __func__.39426, %object + .size __func__.39426, 15 +__func__.39426: + .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__.39086, %object - .size __func__.39086, 14 -__func__.39086: + .type __func__.39223, %object + .size __func__.39223, 14 +__func__.39223: .ascii "ftl_prog_page\000" .space 2 - .type __func__.38749, %object - .size __func__.38749, 15 -__func__.38749: + .type __func__.38886, %object + .size __func__.38886, 15 +__func__.38886: .ascii "ftl_info_flush\000" .space 1 - .type __func__.39048, %object - .size __func__.39048, 19 -__func__.39048: + .type __func__.39185, %object + .size __func__.39185, 19 +__func__.39185: .ascii "ftl_ext_info_flush\000" .space 1 - .type __func__.39060, %object - .size __func__.39060, 18 -__func__.39060: + .type __func__.39197, %object + .size __func__.39197, 18 +__func__.39197: .ascii "ftl_ext_info_init\000" .space 2 - .type __func__.38939, %object - .size __func__.38939, 23 -__func__.38939: + .type __func__.39076, %object + .size __func__.39076, 23 +__func__.39076: .ascii "ftl_open_sblk_recovery\000" .space 1 - .type __func__.39419, %object - .size __func__.39419, 14 -__func__.39419: + .type __func__.39556, %object + .size __func__.39556, 14 +__func__.39556: .ascii "pm_write_page\000" .space 2 - .type __func__.20061, %object - .size __func__.20061, 17 -__func__.20061: + .type __func__.20111, %object + .size __func__.20111, 17 +__func__.20111: .ascii "flash_info_flush\000" .space 3 - .type __func__.20028, %object - .size __func__.20028, 20 -__func__.20028: + .type __func__.20078, %object + .size __func__.20078, 20 +__func__.20078: .ascii "flash_info_blk_init\000" - .type __func__.19764, %object - .size __func__.19764, 16 -__func__.19764: + .type __func__.19814, %object + .size __func__.19814, 16 +__func__.19814: .ascii "nand_flash_init\000" - .type __func__.38915, %object - .size __func__.38915, 16 -__func__.38915: + .type __func__.39052, %object + .size __func__.39052, 16 +__func__.39052: .ascii "ftl_sysblk_dump\000" - .type __func__.39353, %object - .size __func__.39353, 16 -__func__.39353: + .type __func__.39490, %object + .size __func__.39490, 16 +__func__.39490: .ascii "load_l2p_region\000" - .type __func__.39393, %object - .size __func__.39393, 6 -__func__.39393: + .type __func__.39530, %object + .size __func__.39530, 6 +__func__.39530: .ascii "pm_gc\000" .space 2 - .type __func__.38261, %object - .size __func__.38261, 22 -__func__.38261: + .type __func__.38398, %object + .size __func__.38398, 22 +__func__.38398: .ascii "gc_update_l2p_map_new\000" .space 2 - .type __func__.38374, %object - .size __func__.38374, 16 -__func__.38374: + .type __func__.38511, %object + .size __func__.38511, 16 +__func__.38511: .ascii "gc_scan_src_blk\000" - .type __func__.38432, %object - .size __func__.38432, 20 -__func__.38432: + .type __func__.38569, %object + .size __func__.38569, 20 +__func__.38569: .ascii "gc_scan_static_data\000" - .type __func__.38495, %object - .size __func__.38495, 18 -__func__.38495: + .type __func__.38632, %object + .size __func__.38632, 18 +__func__.38632: .ascii "gc_block_vpn_scan\000" .space 2 - .type __func__.38891, %object - .size __func__.38891, 14 -__func__.38891: + .type __func__.39028, %object + .size __func__.39028, 14 +__func__.39028: .ascii "ftl_sblk_dump\000" .space 2 - .type __func__.38009, %object - .size __func__.38009, 10 -__func__.38009: + .type __func__.38146, %object + .size __func__.38146, 10 +__func__.38146: .ascii "zftl_read\000" .space 2 - .type __func__.38227, %object - .size __func__.38227, 21 -__func__.38227: + .type __func__.38364, %object + .size __func__.38364, 21 +__func__.38364: .ascii "gc_check_data_one_wl\000" .space 3 - .type __func__.38993, %object - .size __func__.38993, 19 -__func__.38993: + .type __func__.39130, %object + .size __func__.39130, 19 +__func__.39130: .ascii "ftl_update_l2p_map\000" .space 1 - .type __func__.37913, %object - .size __func__.37913, 17 -__func__.37913: + .type __func__.38050, %object + .size __func__.38050, 17 +__func__.38050: .ascii "ftl_write_commit\000" .space 3 - .type __func__.38303, %object - .size __func__.38303, 16 -__func__.38303: + .type __func__.38440, %object + .size __func__.38440, 16 +__func__.38440: .ascii "gc_do_copy_back\000" - .type __func__.38523, %object - .size __func__.38523, 11 -__func__.38523: + .type __func__.38660, %object + .size __func__.38660, 11 +__func__.38660: .ascii "zftl_do_gc\000" .space 1 - .type __func__.38040, %object - .size __func__.38040, 13 -__func__.38040: + .type __func__.38177, %object + .size __func__.38177, 13 +__func__.38177: .ascii "_ftl_discard\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -30144,7 +29934,7 @@ __func__.38040: .LC1: .ascii "%s\012\000" .LC2: - .ascii "FTL version: 6.0.18 20190918\000" + .ascii "FTL version: 6.0.20 20200218\000" .LC3: .ascii "zftl_debug:0x%x\012\000" .LC4: @@ -30429,110 +30219,110 @@ __func__.38040: .LC137: .ascii "rk_ftl_de_init %x\012\000" .LC138: - .ascii "%s %p:0x%x:\000" + .ascii "\0013\000" .LC139: - .ascii "%x \000" -.LC140: - .ascii "\000" -.LC141: .ascii "otp error! %d\000" -.LC142: +.LC140: .ascii "rr\000" -.LC143: +.LC141: .ascii "flash_abort_clear = %d\012\000" -.LC144: +.LC142: .ascii "%d mtrans_cnt = %d page_num = %d\012\000" -.LC145: +.LC143: .ascii "nandc:\000" -.LC146: +.LC144: .ascii "%d flReg.d32=%x %x\012\000" -.LC147: +.LC145: .ascii "nandc_xfer_done read error %x\012\000" -.LC148: +.LC146: .ascii "dqs data abort %x\012\000" -.LC149: +.LC147: .ascii "dqs data timeout %x\012\000" -.LC150: +.LC148: .ascii "xfer error %x\012\000" -.LC151: +.LC149: .ascii "flash_read_page %x %x %x\012\000" -.LC152: +.LC150: .ascii "MT %d row=%x,last status %d,status = %d\012\000" -.LC153: +.LC151: .ascii "MT RR %d row=%x,count %d,status=%d\012\000" -.LC154: +.LC152: .ascii "toshiba SRR %d row=%x, status=%d\012\000" -.LC155: +.LC153: .ascii "toshiba TRR %d row=%x, status=%d\012\000" -.LC156: +.LC154: .ascii "toshiba RR %d row=%x,count %d,status=%d\012\000" -.LC157: +.LC155: .ascii "hynix RR %d row=%x, count %d, status=%d\012\000" -.LC158: +.LC156: .ascii "%d flash_ddr_tuning_read %x ecc=%d\012\000" -.LC159: +.LC157: .ascii "sync para %d\012\000" -.LC160: +.LC158: .ascii "DDR mode Read error %x %x\012\000" -.LC161: +.LC159: .ascii "SDR mode Read %x %x ecc:%x\012\000" -.LC162: - .ascii "flash_read_page_en %x %x %x\012\000" -.LC163: +.LC160: + .ascii "flash_read_page_en %x %x %x %x\012\000" +.LC161: .ascii "flash_read_page_en %x %x error_ecc %d %d\012\000" -.LC164: +.LC162: .ascii "flash_get_last_written_page: %x %x %x\012\000" -.LC165: +.LC163: .ascii "read page: %x %x %x %x\012\000" +.LC164: + .ascii "flash_prog_page %x %x %x\012\000" +.LC165: + .ascii "flash_prog_page page_addr = %x status = %x\012\000" .LC166: - .ascii "flash_complete_page_read %x %x error_ecc %d %d\012\000" + .ascii "sblk_3d_tlc_dump_prog wl_addr= %x ppa = %x ppa = %x" + .ascii "\012\000" .LC167: - .ascii "read: %x %x %x %x\012\000" + .ascii "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\012" + .ascii "\000" .LC168: + .ascii "flash_complete_page_read %x %x error_ecc %d %d\012\000" +.LC169: + .ascii "read: %x %x %x %x\012\000" +.LC170: .ascii "0set buf %d,status = %x, ppa = %x lun state = %d\012" .ascii "\000" -.LC169: +.LC171: .ascii "prog end %x %x error_ecc %d %d\012\000" -.LC170: +.LC172: .ascii "1set buf %d,status = %x, ppa = %x lun state = %d\012" .ascii "\000" -.LC171: - .ascii "dp prog end %x %x error_ecc %d %d\012\000" -.LC172: - .ascii "flash_prog_page %x %x %x\012\000" .LC173: - .ascii "flash_prog_page page_addr = %x status = %x\012\000" + .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 "sblk_3d_tlc_dump_prog wl_addr= %x ppa = %x ppa = %x" - .ascii "\012\000" -.LC176: - .ascii "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\012" - .ascii "\000" -.LC177: .ascii "flash_prog_page_en:%x %x %x\012\000" -.LC178: +.LC176: .ascii "w d:\000" -.LC179: +.LC177: .ascii "w s:\000" -.LC180: +.LC178: .ascii "spare\000" -.LC181: +.LC179: .ascii "data\000" -.LC182: +.LC180: .ascii "write error: %x\012\000" -.LC183: +.LC181: .ascii "g_ftl_info_blk blk = %x, page = %x version = %d\012" .ascii "\000" -.LC184: +.LC182: .ascii "%d %x @%d %x\012\000" -.LC185: +.LC183: .ascii "ftl_info_blk_init %d %d %x\012\000" -.LC186: +.LC184: + .ascii "ftl info hash %x error\012\000" +.LC185: .ascii "ink flag: %x\012\000" -.LC187: +.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: @@ -30630,156 +30420,155 @@ __func__.38040: .LC232: .ascii "pm_init recovery %x %x %x\012\000" .LC233: - .ascii "pm_log2phys lpn = %d, max lpn = %d\012\000" + .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" -.LC235: +.LC236: .ascii "ppa = %x, status = %x, %x %x spare: %x %x %x %x\012" .ascii "\000" -.LC236: - .ascii "gc_recovery: %x vpn = %x\012\000" .LC237: - .ascii "_c_user_data_density := %d\012\000" + .ascii "gc_recovery: %x vpn = %x\012\000" .LC238: - .ascii "_c_totle_phy_density := %d\012\000" + .ascii "_c_user_data_density := %d\012\000" .LC239: - .ascii "_c_totle_log_page := %d\012\000" + .ascii "_c_totle_phy_density := %d\012\000" .LC240: - .ascii "_c_totle_data_density := %d\012\000" + .ascii "_c_totle_log_page := %d\012\000" .LC241: - .ascii "_c_ftl_pm_page_num := %d\012\000" + .ascii "_c_totle_data_density := %d\012\000" .LC242: - .ascii "_c_ftl_byte_pre_page := %d\012\000" + .ascii "_c_ftl_pm_page_num := %d\012\000" .LC243: - .ascii "_c_max_pm_sblk := %d\012\000" + .ascii "_c_ftl_byte_pre_page := %d\012\000" .LC244: - .ascii "_min_slc_super_block := %d\012\000" + .ascii "_c_max_pm_sblk := %d\012\000" .LC245: - .ascii "_max_xlc_super_block := %d\012\000" + .ascii "_min_slc_super_block := %d\012\000" .LC246: - .ascii "gp_ftl_ext_info %p %p %p\012\000" + .ascii "_max_xlc_super_block := %d\012\000" .LC247: - .ascii "flash info size: %d %d %d\012\000" + .ascii "gp_ftl_ext_info %p %p %p\012\000" .LC248: - .ascii "ftl_init %x\012\000" + .ascii "flash info size: %d %d %d\012\000" .LC249: - .ascii "gc_update_l2p_map_new sblk %x\012\000" + .ascii "ftl_init %x\012\000" .LC250: - .ascii "gc_update_l2p_map_new: %x %x %x\012\000" + .ascii "gc_update_l2p_map_new sblk %x\012\000" .LC251: - .ascii "lpa: %x %x %x\012\000" + .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" -.LC253: - .ascii "gc_scan_src_blk = %x, vpn = %d\012\000" .LC254: - .ascii "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\012\000" + .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" -.LC256: - .ascii "ftl_sblk_dump = %x %d %d %d %d\012\000" .LC257: - .ascii "ftl_sblk_dump = %x %x %x %x\012\000" + .ascii "ftl_sblk_dump = %x %d %d %d %d\012\000" .LC258: - .ascii "page_addr = %x, lpa=%x vpn = %d\012\000" + .ascii "ftl_sblk_dump = %x %x %x %x\012\000" .LC259: - .ascii "index= %x, lpa=%x\012\000" + .ascii "page_addr = %x, lpa=%x vpn = %d\012\000" .LC260: - .ascii "block = %x, vpn=%x check vpn = %d\012\000" + .ascii "index= %x, lpa=%x\012\000" .LC261: - .ascii "ftl_read %x %x %x\012\000" + .ascii "block = %x, vpn=%x check vpn = %d\012\000" .LC262: - .ascii "ftl_read refresh =%x, lpa = %x, ppa= %x\012\000" + .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" -.LC264: - .ascii "zftl debug cmd: %s\012\000" .LC265: - .ascii "cmd:\000" + .ascii "zftl debug cmd: %s\012\000" .LC266: - .ascii "dumpl2p\000" + .ascii "cmd:\000" .LC267: - .ascii "pm l2p:\000" + .ascii "dumpl2p\000" .LC268: - .ascii "pm blk:\000" + .ascii "pm l2p:\000" .LC269: - .ascii "dumppm:\000" + .ascii "pm blk:\000" .LC270: - .ascii "p_cmd: %s\012\000" + .ascii "dumppm:\000" .LC271: - .ascii "pm ram = %x, %x\012\000" + .ascii "p_cmd: %s\012\000" .LC272: - .ascii "ram:\000" + .ascii "pm ram = %x, %x\012\000" .LC273: - .ascii "pm:\000" + .ascii "ram:\000" .LC274: - .ascii "dumpsys\000" + .ascii "pm:\000" .LC275: - .ascii "dumplist:\000" + .ascii "dumpsys\000" .LC276: - .ascii "vpncheck\000" + .ascii "dumplist:\000" .LC277: - .ascii "dumpppa:\000" + .ascii "vpncheck\000" .LC278: - .ascii "dumpblk:\000" + .ascii "dumpppa:\000" .LC279: - .ascii "setzdebug:\000" + .ascii "dumpblk:\000" .LC280: - .ascii "lpa2ppa:\000" + .ascii "setzdebug:\000" .LC281: - .ascii "lpa: %x--> ppa: %x\012\000" + .ascii "lpa2ppa:\000" .LC282: - .ascii "help:\012\000" + .ascii "lpa: %x--> ppa: %x\012\000" .LC283: - .ascii "1. echo dumpl2p > /proc/zftl_debug\012\000" + .ascii "help:\012\000" .LC284: - .ascii "2. echo dumppm:x > /proc/zftl_debug\012\000" + .ascii "1. echo dumpl2p > /proc/zftl_debug\012\000" .LC285: - .ascii "3. echo dumpsys > /proc/zftl_debug\012\000" + .ascii "2. echo dumppm:x > /proc/zftl_debug\012\000" .LC286: - .ascii "4. echo dumpppa:x > /proc/zftl_debug\012\000" + .ascii "3. echo dumpsys > /proc/zftl_debug\012\000" .LC287: - .ascii "5. echo vpncheck > /proc/zftl_debug\012\000" + .ascii "4. echo dumpppa:x > /proc/zftl_debug\012\000" .LC288: - .ascii "6. echo setzdebug:x > /proc/zftl_debug\012\000" + .ascii "5. echo vpncheck > /proc/zftl_debug\012\000" .LC289: - .ascii "7. echo dumplist > /proc/zftl_debug\012\000" + .ascii "6. echo setzdebug:x > /proc/zftl_debug\012\000" .LC290: - .ascii "8. echo lpa2ppa:x> /proc/zftl_debug\012\000" + .ascii "7. echo dumplist > /proc/zftl_debug\012\000" .LC291: - .ascii "gc_lpa:\000" + .ascii "8. echo lpa2ppa:x> /proc/zftl_debug\012\000" .LC292: - .ascii "gc_ppa:\000" + .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" -.LC294: - .ascii "ftl_update_l2p_map: %x %x %x\012\000" .LC295: - .ascii "ftl_update_l2p_map\000" + .ascii "ftl_update_l2p_map: %x %x %x\012\000" .LC296: - .ascii "lpa_tbl:\000" + .ascii "ftl_update_l2p_map\000" .LC297: - .ascii "sblk %x vpn: %d %d\012\000" + .ascii "lpa_tbl:\000" .LC298: - .ascii "error gc_add_sblk: %x\012\000" + .ascii "sblk %x vpn: %d %d\012\000" .LC299: - .ascii "%d read error: ppa:%x, lpa:%x, status:%x\012\000" + .ascii "error gc_add_sblk: %x\012\000" .LC300: - .ascii "gc page in buf: lpa %x ppa = %x pageindex= %x\012\000" + .ascii "%d read error: ppa:%x, lpa:%x, status:%x\012\000" .LC301: + .ascii "gc page in buf: lpa %x ppa = %x pageindex= %x\012\000" +.LC302: .ascii "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x " .ascii "page_index= %d\012\000" -.LC302: +.LC303: .ascii "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x %x %d\012" .ascii "\000" -.LC303: - .ascii "%d prog_step: %x %x buf id= %x ppa = %x hash=%d id " - .ascii "= %x plane = %x lpa=%x %x\012\000" .LC304: .ascii "gc %d: %d %d %d %d %d %d %d\012\000" .LC305: @@ -31291,7 +31080,7 @@ hy_f26_ref_value: .byte -32 .byte -37 .type zftl_nand_flash_para_tbl, %object - .size zftl_nand_flash_para_tbl, 1408 + .size zftl_nand_flash_para_tbl, 1440 zftl_nand_flash_para_tbl: .byte 6 .byte -104 @@ -32190,6 +31979,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 4 .byte 6 + .byte 44 + .byte -92 + .byte 100 + .byte 50 + .byte -86 + .byte 4 + .byte 4 + .byte 1 + .byte 32 + .short 1024 + .byte 2 + .byte 1 + .short 2192 + .short 9671 + .byte 10 + .byte 19 + .byte 70 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .short 1024 + .byte 2 + .byte -38 + .byte -33 + .byte 0 + .byte 6 .byte -83 .byte -34 .byte 20 @@ -32381,10 +32198,10 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .short 512 - .byte 2 + .byte 0 .byte -65 .byte -66 - .byte 0 + .byte 1 .byte 5 .byte -119 .byte 100 @@ -34592,20 +34409,20 @@ g_flash_page_buffer: .size g_flash_spare_buffer, 4 g_flash_spare_buffer: .space 4 - .type g_flash_multi_page_read_en, %object - .size g_flash_multi_page_read_en, 1 -g_flash_multi_page_read_en: - .space 1 .type write_commit_head, %object .size write_commit_head, 1 write_commit_head: .space 1 - .space 2 + .space 3 .type ftl_flush_jiffies, %object .size ftl_flush_jiffies, 4 ftl_flush_jiffies: .space 4 - .space 40 + .type g_flash_multi_page_read_en, %object + .size g_flash_multi_page_read_en, 1 +g_flash_multi_page_read_en: + .space 1 + .space 39 .type ftl_info_spare, %object .size ftl_info_spare, 256 ftl_info_spare: diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S index 50be9f205eb4..f68fc444ba0a 100644 --- a/drivers/rk_nand/rk_zftl_arm64.S +++ b/drivers/rk_nand/rk_zftl_arm64.S @@ -5,28 +5,12 @@ * 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: 2019-09-18 + * date: 2020-02-18 * function: rk ftl v6 for rockchip soc base on arm v8 to support 3D/2D * TLC and MLC. */ .cpu generic+fp+simd .file "rk_zftl_arm64.S" -#APP - .irp num,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17\ - ,18,19,20,21,22,23,24,25,26,27,28,29,30 - .equ .L__reg_num_x\num, \num - .endr - .equ .L__reg_num_xzr, 31 - - .macro mrs_s, rt, sreg - .inst 0xd5200000|(\sreg)|(.L__reg_num_\rt) - .endm - - .macro msr_s, sreg, rt - .inst 0xd5000000|(\sreg)|(.L__reg_num_\rt) - .endm - -#NO_APP .text .align 2 .type flash_mem_cmp8, %function @@ -570,8 +554,8 @@ _insert_data_list: ret .size _insert_data_list, .-_insert_data_list .align 2 - .type _list_get_gc_head_node.isra.5, %function -_list_get_gc_head_node.isra.5: + .type _list_get_gc_head_node.isra.4, %function +_list_get_gc_head_node.isra.4: uxth w1, w1 mov w2, 65535 cbz x0, .L86 @@ -598,7 +582,7 @@ _list_get_gc_head_node.isra.5: .L86: mov w0, w2 ret - .size _list_get_gc_head_node.isra.5, .-_list_get_gc_head_node.isra.5 + .size _list_get_gc_head_node.isra.4, .-_list_get_gc_head_node.isra.4 .align 2 .type _list_update_data_list, %function _list_update_data_list: @@ -694,21 +678,21 @@ _list_update_data_list: ret .size _list_update_data_list, .-_list_update_data_list .align 2 - .type zftl_get_gc_node.part.12, %function -zftl_get_gc_node.part.12: + .type zftl_get_gc_node.part.11, %function +zftl_get_gc_node.part.11: uxth w1, w0 adrp x0, .LANCHOR0+616 stp x29, x30, [sp, -16]! add x29, sp, 0 ldr x0, [x0,#:lo12:.LANCHOR0+616] - bl _list_get_gc_head_node.isra.5 + bl _list_get_gc_head_node.isra.4 ldp x29, x30, [sp], 16 ret - .size zftl_get_gc_node.part.12, .-zftl_get_gc_node.part.12 + .size zftl_get_gc_node.part.11, .-zftl_get_gc_node.part.11 .section .text.unlikely .align 2 - .type rk_simple_strtoull.constprop.34, %function -rk_simple_strtoull.constprop.34: + .type rk_simple_strtoull.constprop.33, %function +rk_simple_strtoull.constprop.33: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] @@ -767,7 +751,7 @@ rk_simple_strtoull.constprop.34: ldp x21, x22, [sp,32] ldp x29, x30, [sp], 64 ret - .size rk_simple_strtoull.constprop.34, .-rk_simple_strtoull.constprop.34 + .size rk_simple_strtoull.constprop.33, .-rk_simple_strtoull.constprop.33 .text .align 2 .global nand_flash_print_info @@ -1533,7 +1517,7 @@ flash_wait_device_ready_raw: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 691 + mov w2, 700 add x1, x1, 240 add x0, x0, :lo12:.LC0 bl printk @@ -1842,7 +1826,7 @@ flash_start_page_read: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 866 + mov w2, 878 add x1, x1, 272 add x0, x0, :lo12:.LC0 bl printk @@ -2150,7 +2134,7 @@ flash_start_plane_read: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 965 + mov w2, 977 add x1, x1, 712 add x0, x0, :lo12:.LC0 bl printk @@ -2596,27 +2580,27 @@ flash_read_otp_data: .global sandisk_prog_test_bad_block .type sandisk_prog_test_bad_block, %function sandisk_prog_test_bad_block: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -64]! adrp x2, .LANCHOR0+536 uxtb w0, w0 add x29, sp, 0 stp x19, x20, [sp,16] + adrp x20, .LANCHOR2 ldr x19, [x2,#:lo12:.LANCHOR0+536] - adrp x2, .LANCHOR2 - add x3, x2, :lo12:.LANCHOR2 - mov x20, x2 + add x2, x20, :lo12:.LANCHOR2 + str x21, [sp,32] + ldrb w3, [x2,37] sxtw x2, w0 add x2, x2, 8 - ldrb w3, [x3,37] add x2, x19, x2, lsl 8 - cbnz w3, .L461 + cbnz w3, .L465 mov w3, 162 -.L461: +.L465: ubfiz x0, x0, 8, 8 str w3, [x2,8] add x19, x19, x0 mov w0, 128 - str x1, [x29,40] + str x1, [x29,56] str w0, [x19,2056] and w0, w1, 255 str wzr, [x19,2052] @@ -2635,18 +2619,24 @@ sandisk_prog_test_bad_block: bl timer_delay_ns ldr w2, [x19,2048] mov w0, 5 - ands w19, w2, w0 + ldr x1, [x29,56] + ands w21, w2, w0 beq .L454 ldr w0, [x20,#:lo12:.LANCHOR2] - ldr x1, [x29,40] tbz x0, 12, .L454 adrp x0, .LC42 add x0, x0, :lo12:.LC42 bl printk .L454: - mov w0, w19 + add x20, x20, :lo12:.LANCHOR2 + ldrb w0, [x20,38] + cbz w0, .L455 + str w0, [x19,2056] +.L455: + mov w0, w21 + ldr x21, [sp,32] ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + ldp x29, x30, [sp], 64 ret .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block .align 2 @@ -2679,18 +2669,18 @@ nandc_bch_sel: cmp w2, 9 ldr x2, [x1,536] ldr w1, [sp,8] - bne .L464 + bne .L468 str w1, [x2,16] cmp w0, 70 mov w1, 0 - beq .L465 + beq .L469 cmp w0, 60 mov w1, 3 - beq .L465 + beq .L469 cmp w0, 40 mov w1, 2 csinc w1, w1, wzr, eq -.L465: +.L469: str wzr, [sp] ldr w0, [sp] bfi w0, w1, 25, 3 @@ -2700,8 +2690,8 @@ nandc_bch_sel: str w0, [sp] ldr w0, [sp] str w0, [x2,32] - b .L463 -.L464: + b .L467 +.L468: str w1, [x2,8] mov w3, 16 str wzr, [sp] @@ -2712,13 +2702,13 @@ nandc_bch_sel: ldr w1, [sp] and w1, w1, -262145 str w1, [sp] - beq .L473 + beq .L477 cmp w0, 24 - bne .L469 + bne .L473 ldr w0, [sp] orr w0, w0, 16 - b .L474 -.L469: + b .L478 +.L473: ldr w1, [sp] cmp w0, 40 orr w1, w1, 262144 @@ -2726,19 +2716,19 @@ nandc_bch_sel: ldr w1, [sp] orr w1, w1, 16 str w1, [sp] - bne .L468 -.L473: + bne .L472 +.L477: ldr w0, [sp] and w0, w0, -17 -.L474: +.L478: str w0, [sp] -.L468: +.L472: ldr w0, [sp] orr w0, w0, 1 str w0, [sp] ldr w0, [sp] str w0, [x2,12] -.L463: +.L467: add sp, sp, 16 ret .size nandc_bch_sel, .-nandc_bch_sel @@ -2763,7 +2753,7 @@ zftl_flash_resume: str w2, [x1,4] ldr x1, [x0,536] ldr w2, [x0,552] - bne .L476 + bne .L480 str w2, [x1,16] ldr w2, [x0,556] str w2, [x1,32] @@ -2775,8 +2765,8 @@ zftl_flash_resume: str w2, [x1,520] ldr w0, [x0,572] str w0, [x1,8] - b .L477 -.L476: + b .L481 +.L480: str w2, [x1,8] ldr w2, [x0,556] str w2, [x1,12] @@ -2788,17 +2778,17 @@ zftl_flash_resume: str w2, [x1,336] ldr w0, [x0,572] str w0, [x1,344] -.L477: +.L481: mov x19, 0 add x21, x20, :lo12:.LANCHOR0 mov w23, 2 -.L479: +.L483: add x0, x21, x19, lsl 3 ldrb w0, [x0,760] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L478 + bhi .L482 uxtb w22, w19 mov w0, w22 bl flash_reset @@ -2806,13 +2796,13 @@ zftl_flash_resume: strb w23, [x19,x0] mov w0, w22 bl zftl_flash_enter_slc_mode -.L478: +.L482: add x19, x19, 1 cmp x19, 4 - bne .L479 + bne .L483 add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,672] - cbz w0, .L480 + cbz w0, .L484 mov w0, 1 bl nandc_set_if_mode mov w0, w19 @@ -2822,7 +2812,7 @@ zftl_flash_resume: ldr w0, [x20,560] lsr w0, w0, 8 bl nandc_set_ddr_para -.L480: +.L484: adrp x0, .LANCHOR2+28 ldrb w0, [x0,#:lo12:.LANCHOR2+28] bl nandc_bch_sel @@ -2857,30 +2847,30 @@ nandc_iqr_wait_flash_ready: ldrb w1, [x19,516] ldr x0, [x19,536] cmp w1, 9 - bne .L487 + bne .L491 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 .L488 -.L487: + b .L492 +.L491: ldr w1, [x0,368] orr w1, w1, 2 str w1, [x0,368] ldr w1, [x0,364] orr w1, w1, 2 str w1, [x0,364] -.L488: +.L492: ldr w1, [x0] - tbnz x1, 9, .L489 + tbnz x1, 9, .L493 bl wait_for_nand_flash_ready - b .L486 -.L489: + b .L490 +.L493: mov w1, 1 bl nandc_irq_disable -.L486: +.L490: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2903,21 +2893,21 @@ flash_erase_duplane_block: ldrb w0, [x0,633] mov w24, w3 cmp w0, w19 - bhi .L492 + bhi .L496 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 598 + mov w2, 604 add x1, x1, 736 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L492: +.L496: add x1, x20, :lo12:.LANCHOR0 mov w0, -1 ldrb w2, [x1,633] cmp w2, w19 - bls .L493 + bls .L497 adrp x0, .LANCHOR2 add x19, x1, x19, sxtw ldrb w22, [x19,736] @@ -2926,24 +2916,24 @@ flash_erase_duplane_block: mov x21, x22 add x22, x22, 8 add x22, x19, x22, lsl 8 - tbz x0, 4, .L494 + tbz x0, 4, .L498 adrp x0, .LC43 mov w1, w21 add x0, x0, :lo12:.LC43 mov w2, w23 mov w3, w24 bl printk -.L494: +.L498: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs mov w0, w21 - cbnz w25, .L495 + cbnz w25, .L499 bl zftl_flash_enter_slc_mode - b .L496 -.L495: + b .L500 +.L499: bl zftl_flash_exit_slc_mode -.L496: +.L500: ubfiz x4, x21, 8, 8 mov w0, 96 add x19, x19, x4 @@ -2957,7 +2947,7 @@ flash_erase_duplane_block: str w0, [x19,2052] ldrb w0, [x20,793] mov w20, 0 - cbnz w0, .L497 + cbnz w0, .L501 mov w0, 208 str w0, [x19,2056] mov w20, 5 @@ -2965,7 +2955,7 @@ flash_erase_duplane_block: mov x0, x22 bl flash_read_status and w20, w0, w20 -.L497: +.L501: mov w0, 96 str w0, [x19,2056] and w0, w24, 255 @@ -2988,14 +2978,14 @@ flash_erase_duplane_block: ldr x2, [x29,88] and w19, w2, w19 orr w19, w19, w20 - cbz w19, .L498 + cbz w19, .L502 adrp x0, .LC44 mov w1, w23 add x0, x0, :lo12:.LC44 bl printk -.L498: +.L502: mov w0, w19 -.L493: +.L497: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3027,21 +3017,21 @@ flash_erase_block_en: sub w19, w19, #1 cmp w0, w22 and w19, w19, w2 - bhi .L508 + bhi .L512 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 645 + mov w2, 653 add x1, x1, 768 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L508: +.L512: add x1, x20, :lo12:.LANCHOR0 mov w0, -1 ldrb w2, [x1,633] cmp w2, w22 - bls .L509 + bls .L513 add x0, x1, x22, sxtw ldrb w24, [x0,736] adrp x0, .LANCHOR2 @@ -3050,24 +3040,24 @@ flash_erase_block_en: add x24, x24, 8 ldr w0, [x0,#:lo12:.LANCHOR2] add x24, x26, x24, lsl 8 - tbz x0, 4, .L510 + tbz x0, 4, .L514 adrp x0, .LC45 mov w1, w21 add x0, x0, :lo12:.LC45 mov w2, w23 mov w3, w25 bl printk -.L510: +.L514: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs mov w0, w21 - cbnz w25, .L511 + cbnz w25, .L515 bl zftl_flash_enter_slc_mode - b .L512 -.L511: + b .L516 +.L515: bl zftl_flash_exit_slc_mode -.L512: +.L516: ubfiz x3, x21, 8, 8 mov w0, 96 add x3, x26, x3 @@ -3088,19 +3078,19 @@ flash_erase_block_en: mov w0, w21 bl nandc_de_cs mov w3, 5 - ands w19, w19, w3 - beq .L513 + ands w3, w19, w3 + beq .L517 add x20, x20, :lo12:.LANCHOR0 adrp x0, .LC46 add x0, x0, :lo12:.LC46 mov w1, w22 - mov w3, w19 ldrh w2, [x20,2] udiv w2, w23, w2 bl printk + mov w3, -1 +.L517: + mov w0, w3 .L513: - mov w0, w19 -.L509: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -3139,28 +3129,28 @@ flash_erase_all: mov x21, x0 mul w20, w1, w20 uxth w20, w20 -.L523: +.L527: ldrb w0, [x23,633] cmp w0, w19 - bls .L527 + bls .L531 add x0, x23, x19, sxtw ldrb w24, [x0,736] mov w22, 0 -.L524: +.L528: cmp w20, w22, uxth - bls .L528 + bls .L532 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 .L524 -.L528: + b .L528 +.L532: add w19, w19, 1 uxth w19, w19 - b .L523 -.L527: + b .L527 +.L531: adrp x0, .LC47 mov w1, 0 add x0, x0, :lo12:.LC47 @@ -3186,133 +3176,65 @@ rk_nandc_flash_xfer_completed: .global nandc_xfer_start .type nandc_xfer_start, %function nandc_xfer_start: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! + uxtb w1, w1 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 - add x19, x20, :lo12:.LANCHOR0 - str x2, [x29,48] - stp x21, x22, [sp,32] + str x21, [sp,32] + add x4, x20, :lo12:.LANCHOR0 uxtb w21, w0 - uxtb w22, w1 - ldr x0, [x19,536] - str x3, [x29,56] - bl rk_nandc_xfer_irq_flag_init - ldrb w0, [x19,516] - and w5, w21, 1 - ldr x4, [x19,536] - add w1, w22, 1 - cmp w0, 9 - ldr x3, [x29,56] - ldr x2, [x29,48] - bne .L531 - ldr w0, [x4,292] - ubfx x1, x1, 1, 6 - orr w0, w0, 1 - str w0, [x4,292] - ldr w0, [x4,288] - orr w0, w0, 1 - str w0, [x4,288] - str wzr, [x29,72] - mov w4, 1 - ldr w0, [x29,72] - bfi w0, w5, 1, 1 - str w0, [x29,72] - ldr w0, [x29,72] - orr w0, w0, 8 - str w0, [x29,72] - ldr w0, [x29,72] - bfi w0, w4, 5, 2 - str w0, [x29,72] - ldr w0, [x29,72] - orr w0, w0, 536870912 - str w0, [x29,72] - ldr w0, [x29,72] - orr w0, w0, 1024 - str w0, [x29,72] - ldr w0, [x29,72] - and w0, w0, -17 - str w0, [x29,72] - ldr w0, [x29,72] - bfi w0, w1, 22, 6 - str w0, [x29,72] - ldr w0, [x29,72] - orr w0, w0, 128 - str w0, [x29,72] - ldrb w0, [x19,673] - cbnz w0, .L532 - b .L533 -.L531: - ldr w0, [x4,368] - ubfx x1, x1, 1, 6 - orr w0, w0, 1 - str w0, [x4,368] - ldr w0, [x4,364] - orr w0, w0, 1 - str w0, [x4,364] - ldr w0, [x4,12] - mov w4, 16 - str w0, [x29,88] - ldr w0, [x29,88] - bfi w0, w4, 8, 8 - str w0, [x29,88] - mov w4, 1 - ldr w0, [x29,88] - and w0, w0, -9 - str w0, [x29,88] - ldr w0, [x29,88] - and w0, w0, -225 - str w0, [x29,88] - str wzr, [x29,72] - ldr w0, [x29,72] - bfi w0, w5, 1, 1 - str w0, [x29,72] - ldr w0, [x29,72] - orr w0, w0, 8 - str w0, [x29,72] - ldr w0, [x29,72] - bfi w0, w4, 5, 2 - str w0, [x29,72] - ldr w0, [x29,72] - orr w0, w0, 536870912 - str w0, [x29,72] - ldr w0, [x29,72] - orr w0, w0, 1024 - str w0, [x29,72] - ldr w0, [x29,72] - and w0, w0, -17 - str w0, [x29,72] - ldr w0, [x29,72] - bfi w0, w1, 22, 6 - str w0, [x29,72] - cbz w21, .L546 - ldrb w0, [x19,724] - ubfx x22, x22, 1, 7 - mov w1, 64 - mov w4, 128 - cmp w0, 25 - add x22, x3, x22, lsl 2 - csel w4, w1, w4, cc - mov w1, 0 - b .L538 -.L532: - ldrb w0, [x19,720] - cbz w0, .L533 - ldr w0, [x29,72] - orr w0, w0, 512 - str w0, [x29,72] -.L533: - add x20, x20, :lo12:.LANCHOR0 - ldr w1, [x29,72] mov x0, x2 - ubfx x1, x1, 22, 6 - str x2, [x20,688] - lsl w1, w1, 10 + and w6, w21, 1 + add w5, w1, 1 + ldrb w2, [x4,516] + cmp w2, 9 + bne .L535 + str wzr, [x29,56] + mov w2, 1 + ubfx x5, x5, 1, 6 + ldr w1, [x29,56] + bfi w1, w6, 1, 1 + str w1, [x29,56] + ldr w1, [x29,56] + orr w1, w1, 8 + str w1, [x29,56] + ldr w1, [x29,56] + bfi w1, w2, 5, 2 + str w1, [x29,56] + ldr w1, [x29,56] + orr w1, w1, 536870912 + str w1, [x29,56] + ldr w1, [x29,56] + orr w1, w1, 1024 + str w1, [x29,56] + ldr w1, [x29,56] + and w1, w1, -17 + str w1, [x29,56] + ldr w1, [x29,56] + bfi w1, w5, 22, 6 + str w1, [x29,56] + 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 + ldr w1, [x29,56] + orr w1, w1, 512 + str w1, [x29,56] +.L536: + 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] bl rknand_dma_map_single str w0, [x20,704] - ldr w1, [x29,72] + ldr w1, [x29,56] mov w2, w21 ldr x0, [x20,696] ubfx x1, x1, 22, 6 @@ -3328,69 +3250,115 @@ nandc_xfer_start: mov w2, 16 str w0, [x1,56] ldr w0, [x1,48] - str w0, [x29,80] - ldr w0, [x29,80] + str w0, [x29,64] + ldr w0, [x29,64] bfi w0, w2, 9, 5 - str w0, [x29,80] + str w0, [x29,64] mov w2, 2 - ldr w0, [x29,80] + ldr w0, [x29,64] orr w0, w0, 448 - str w0, [x29,80] - ldr w0, [x29,80] + str w0, [x29,64] + ldr w0, [x29,64] bfi w0, w2, 3, 3 - str w0, [x29,80] + str w0, [x29,64] cset w2, eq - ldr w0, [x29,80] + ldr w0, [x29,64] orr w0, w0, 4 - str w0, [x29,80] - ldr w0, [x29,80] + str w0, [x29,64] + ldr w0, [x29,64] bfi w0, w2, 1, 1 - str w0, [x29,80] + str w0, [x29,64] ldrh w2, [x20,722] - ldr w0, [x29,80] + ldr w0, [x29,64] orr w0, w0, 1 - str w0, [x29,80] - ldr w0, [x29,80] + str w0, [x29,64] + ldr w0, [x29,64] bfi w0, w2, 16, 11 - str w0, [x29,80] - ldr w0, [x29,80] + str w0, [x29,64] + ldr w0, [x29,64] str w0, [x1,48] - ldr w0, [x29,72] + ldr w0, [x29,56] str w0, [x1,16] - ldr w0, [x29,72] + ldr w0, [x29,56] orr w0, w0, 4 - str w0, [x29,72] - ldr w0, [x29,72] + str w0, [x29,56] + ldr w0, [x29,56] str w0, [x1,16] - b .L530 -.L538: - cmp x3, x22 - add w0, w1, w4 - beq .L540 - ldrh w5, [x3,2] - and x1, x1, 4294967292 - ldr x6, [x19,680] - ldrh w7, [x3],4 - orr w5, w7, w5, lsl 16 - str w5, [x6,x1] - mov w1, w0 - b .L538 -.L546: - ldr x0, [x19,680] - str w4, [x0] + b .L534 +.L535: + ldr x2, [x4,536] + mov w7, 16 + ubfx x5, x5, 1, 6 + ldr w2, [x2,12] + str w2, [x29,72] + ldr w2, [x29,72] + bfi w2, w7, 8, 8 + str w2, [x29,72] + ldr w2, [x29,72] + and w2, w2, -9 + str w2, [x29,72] + ldr w2, [x29,72] + and w2, w2, -225 + str w2, [x29,72] + str wzr, [x29,56] + ldr w2, [x29,56] + bfi w2, w6, 1, 1 + str w2, [x29,56] + mov w6, 1 + ldr w2, [x29,56] + orr w2, w2, 8 + str w2, [x29,56] + ldr w2, [x29,56] + bfi w2, w6, 5, 2 + str w2, [x29,56] + ldr w2, [x29,56] + orr w2, w2, 536870912 + str w2, [x29,56] + ldr w2, [x29,56] + orr w2, w2, 1024 + str w2, [x29,56] + ldr w2, [x29,56] + and w2, w2, -17 + str w2, [x29,56] + ldr w2, [x29,56] + bfi w2, w5, 22, 6 + str w2, [x29,56] + cbz w21, .L538 + ldrb w2, [x4,724] + ubfx x1, x1, 1, 7 + mov w5, 128 + cmp w2, 25 + mov w2, 64 + csel w2, w2, w5, cc + add x1, x3, x1, lsl 2 + mov w5, 0 .L540: + cmp x3, x1 + add w7, w5, w2 + beq .L542 + ldrh w6, [x3,2] + and x5, x5, 4294967292 + ldr x8, [x4,680] + ldrh w9, [x3],4 + orr w6, w9, w6, lsl 16 + str w6, [x8,x5] + mov w5, w7 + b .L540 +.L538: + ldr x1, [x4,680] + str w6, [x1] +.L542: add x20, x20, :lo12:.LANCHOR0 - ldr w1, [x29,72] - ubfx x1, x1, 22, 6 - ldr x0, [x20,680] - lsl w1, w1, 10 - str x2, [x20,688] - str x0, [x20,696] - mov x0, x2 mov w2, w21 + ldr x1, [x20,680] + str x1, [x20,696] + ldr w1, [x29,56] + str x0, [x20,688] + ubfx x1, x1, 22, 6 + lsl w1, w1, 10 bl rknand_dma_map_single str w0, [x20,704] - ldr w1, [x29,72] + ldr w1, [x29,56] mov w2, w21 ldr x0, [x20,696] ubfx x1, x1, 22, 6 @@ -3406,42 +3374,42 @@ nandc_xfer_start: str w0, [x1,20] ldr w0, [x20,708] str w0, [x1,24] - str wzr, [x29,80] - ldr w0, [x29,80] + str wzr, [x29,64] + ldr w0, [x29,64] bfi w0, w2, 9, 5 - str w0, [x29,80] + str w0, [x29,64] mov w2, 2 - ldr w0, [x29,80] + ldr w0, [x29,64] orr w0, w0, 448 - str w0, [x29,80] - ldr w0, [x29,80] + str w0, [x29,64] + ldr w0, [x29,64] bfi w0, w2, 3, 3 - str w0, [x29,80] + str w0, [x29,64] cset w2, eq - ldr w0, [x29,80] + ldr w0, [x29,64] orr w0, w0, 4 - str w0, [x29,80] - ldr w0, [x29,80] + str w0, [x29,64] + ldr w0, [x29,64] bfi w0, w2, 1, 1 - str w0, [x29,80] - ldr w0, [x29,80] + str w0, [x29,64] + ldr w0, [x29,64] orr w0, w0, 1 - str w0, [x29,80] - ldr w0, [x29,80] + str w0, [x29,64] + ldr w0, [x29,64] str w0, [x1,16] - ldr w0, [x29,88] + ldr w0, [x29,72] str w0, [x1,12] - ldr w0, [x29,72] + ldr w0, [x29,56] str w0, [x1,8] - ldr w0, [x29,72] + ldr w0, [x29,56] orr w0, w0, 4 - str w0, [x29,72] - ldr w0, [x29,72] + str w0, [x29,56] + ldr w0, [x29,56] str w0, [x1,8] -.L530: +.L534: ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 96 + ldr x21, [sp,32] + ldp x29, x30, [sp], 80 ret .size nandc_xfer_start, .-nandc_xfer_start .align 2 @@ -3462,12 +3430,12 @@ nandc_set_seed: ldrb w2, [x0,516] ldr x0, [x0,536] cmp w2, 9 - bne .L549 + bne .L552 str w1, [x0,520] - b .L547 -.L549: + b .L550 +.L552: str w1, [x0,336] -.L547: +.L550: ret .size nandc_set_seed, .-nandc_set_seed .align 2 @@ -3481,36 +3449,36 @@ zftl_flash_de_init: bl nandc_wait_flash_ready add x1, x19, :lo12:.LANCHOR0 ldrb w0, [x19,#:lo12:.LANCHOR0] - cbz w0, .L554 + cbz w0, .L557 ldrb w0, [x1,634] - cbnz w0, .L554 + cbnz w0, .L557 ldrb w1, [x1,516] cmp w1, 9 - beq .L554 + beq .L557 bl zftl_flash_exit_slc_mode -.L554: +.L557: mov w0, 0 add x20, x19, :lo12:.LANCHOR0 bl hynix_reconfig_rr_para ldrb w0, [x20,672] - cbz w0, .L555 + cbz w0, .L558 ldrb w0, [x20,792] - tbz x0, 0, .L555 + tbz x0, 0, .L558 mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode strb wzr, [x20,672] -.L555: +.L558: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,720] - cbz w0, .L556 + cbz w0, .L559 mov w0, 0 strb wzr, [x19,720] bl nandc_set_seed mov w0, 1 strb w0, [x19,720] -.L556: +.L559: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -3548,7 +3516,7 @@ zbuf_init: stp x21, x22, [sp,32] add x19, x19, 800 mov x22, x0 -.L575: +.L578: add x21, x22, :lo12:.LANCHOR0 uxtb w0, w20 add w1, w0, 1 @@ -3566,7 +3534,7 @@ zbuf_init: bl ftl_malloc str x0, [x19,-40] cmp w20, 32 - bne .L575 + bne .L578 strb w20, [x21,2850] mov w0, -1 strb wzr, [x21,2849] @@ -3584,7 +3552,7 @@ buf_reinit: mov w2, 0 add x1, x0, :lo12:.LANCHOR0 add x1, x1, 800 -.L578: +.L581: uxtb w3, w2 add w2, w2, 1 add w4, w3, 1 @@ -3594,7 +3562,7 @@ buf_reinit: strb wzr, [x1,2] add x1, x1, 64 str xzr, [x1,-48] - bne .L578 + bne .L581 add x0, x0, :lo12:.LANCHOR0 mov w1, -1 strb wzr, [x0,2849] @@ -3615,10 +3583,10 @@ buf_add_tail: mov x19, x1 ldrb w1, [x20] cmp w1, 255 - bne .L586 + bne .L589 ldrb w0, [x19,1] cmp w0, 255 - bne .L582 + bne .L585 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3627,23 +3595,23 @@ buf_add_tail: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L582: +.L585: ldrb w0, [x19,1] strb w0, [x20] - b .L580 -.L586: + b .L583 +.L589: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x0, x0, 800 -.L587: +.L590: mov w20, w1 sbfiz x1, x1, 6, 32 ldrb w1, [x0,x1] cmp w1, 255 - bne .L587 + bne .L590 ldrb w0, [x19,1] cmp w0, 255 - bne .L584 + bne .L587 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3652,14 +3620,14 @@ buf_add_tail: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L584: +.L587: adrp x0, .LANCHOR0 sbfiz x20, x20, 6, 32 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x19,1] add x0, x0, 800 strb w1, [x0,x20] -.L580: +.L583: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3700,22 +3668,22 @@ zbuf_free: and w1, w1, 8 uxtb w1, w1 strb w1, [x0,2] - cbz w1, .L590 + cbz w1, .L593 ldr w1, [x0,36] cmn w1, #1 - beq .L590 + beq .L593 mov x1, x0 add x0, x19, :lo12:.LANCHOR0 add x0, x0, 2849 bl buf_add_tail - b .L591 -.L590: + b .L594 +.L593: add x1, x19, :lo12:.LANCHOR0 ldrb w2, [x1,2849] strb w2, [x0] ldrb w0, [x0,1] strb w0, [x1,2849] -.L591: +.L594: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,2850] add w0, w0, 1 @@ -3737,15 +3705,15 @@ buf_alloc: uxtb w21, w0 mov x19, x1 ldrb w0, [x20,2850] - cbz w0, .L599 -.L602: + cbz w0, .L602 +.L605: add x1, x19, :lo12:.LANCHOR0 add x0, x1, 800 ldrb w2, [x1,2849] add x0, x0, x2, lsl 6 - cbz w21, .L600 - b .L601 -.L599: + cbz w21, .L603 + b .L604 +.L602: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3755,15 +3723,15 @@ buf_alloc: bl printk bl dump_stack ldrb w1, [x20,2850] - cbnz w1, .L602 -.L604: + cbnz w1, .L605 +.L607: mov x0, 0 - b .L603 -.L600: + b .L606 +.L603: ldrb w1, [x1,2850] cmp w1, 1 - beq .L604 -.L601: + beq .L607 +.L604: add x1, x19, :lo12:.LANCHOR0 lsl x2, x2, 6 add x4, x1, 800 @@ -3783,7 +3751,7 @@ buf_alloc: strb wzr, [x3,56] str w1, [x3,36] strb wzr, [x3,57] -.L603: +.L606: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -3796,33 +3764,33 @@ buf_remove_buf: ldrb w4, [x1,1] ldrb w2, [x0] cmp w4, w2 - bne .L611 + bne .L614 ldrb w1, [x1] strb w1, [x0] - b .L615 -.L611: + b .L618 +.L614: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x0, x0, 800 -.L613: +.L616: cmp w2, 255 - beq .L616 + beq .L619 mov w3, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x0,x2] cmp w2, w4 - bne .L613 + bne .L616 sbfiz x3, x3, 6, 32 ldrb w2, [x1] strb w2, [x0,x3] mov w0, -1 strb w0, [x1] -.L615: +.L618: mov w0, 1 - b .L610 -.L616: + b .L613 +.L619: mov w0, 0 -.L610: +.L613: ret .size buf_remove_buf, .-buf_remove_buf .align 2 @@ -3836,7 +3804,7 @@ buf_remove_free: mov x20, x0 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2850] - cbnz w0, .L618 + cbnz w0, .L621 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3845,22 +3813,22 @@ buf_remove_free: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L618: +.L621: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,2850] - cbz w0, .L617 + cbz w0, .L620 add x0, x19, 2849 mov x1, x20 bl buf_remove_buf cmp w0, 1 - bne .L617 + bne .L620 ldrb w0, [x19,2850] sub w0, w0, #1 strb w0, [x19,2850] ldrb w0, [x20,2] orr w0, w0, 1 strb w0, [x20,2] -.L617: +.L620: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3940,49 +3908,49 @@ flash_mask_bad_block: str2hex: ldrb w1, [x0] cmp w1, 48 - bne .L625 + bne .L628 ldrb w1, [x0,1] add x2, x0, 2 and w1, w1, -33 uxtb w1, w1 cmp w1, 88 csel x0, x0, x2, ne -.L625: +.L628: ldrb w1, [x0] and w1, w1, -33 uxtb w1, w1 cmp w1, 88 mov w1, 0 csinc x0, x0, x0, ne -.L627: +.L630: ldrb w2, [x0] - cbz w2, .L634 + cbz w2, .L637 sub w3, w2, #48 uxtb w3, w3 cmp w3, 9 - bhi .L628 + bhi .L631 add w1, w2, w1, lsl 4 sub w1, w1, #48 - b .L629 -.L628: + b .L632 +.L631: sub w3, w2, #97 uxtb w3, w3 cmp w3, 5 - bhi .L630 + bhi .L633 add w1, w2, w1, lsl 4 sub w1, w1, #87 - b .L629 -.L630: + b .L632 +.L633: sub w3, w2, #65 uxtb w3, w3 cmp w3, 5 - bhi .L634 + bhi .L637 add w1, w2, w1, lsl 4 sub w1, w1, #55 -.L629: +.L632: add x0, x0, 1 - b .L627 -.L634: + b .L630 +.L637: mov w0, w1 ret .size str2hex, .-str2hex @@ -4374,7 +4342,7 @@ gc_add_sblk: ldr w0, [x24,#:lo12:.LANCHOR2] stp x19, x20, [sp,16] uxth w20, w2 - tbz x0, 8, .L642 + tbz x0, 8, .L645 add x7, x22, :lo12:.LANCHOR0 uxtw x5, w21 mov w1, w21 @@ -4391,36 +4359,36 @@ gc_add_sblk: ldrh w7, [x7,2894] ubfx x4, x4, 5, 3 bl printk -.L642: +.L645: add x0, x22, :lo12:.LANCHOR0 ldrh w0, [x0,576] cmp w0, w21 - bhi .L643 + bhi .L646 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 454 - add x1, x1, 1312 + add x1, x1, 1352 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L643: +.L646: add x5, x22, :lo12:.LANCHOR0 ldrh w0, [x5,576] cmp w0, w21 - bhi .L644 + bhi .L647 ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 10, .L645 + tbz x0, 10, .L648 adrp x0, .LC88 mov w1, w21 add x0, x0, :lo12:.LC88 mov w2, w23 mov w3, w20 bl printk -.L645: +.L648: bl dump_stack - b .L664 -.L644: + b .L667 +.L647: uxtw x0, w21 ldr x1, [x5,600] ldrh w4, [x1,x0,lsl 1] @@ -4428,60 +4396,60 @@ gc_add_sblk: add x0, x1, x0, lsl 2 ldrb w19, [x0,2] ands w19, w19, 224 - bne .L647 - cbz w4, .L646 + bne .L650 + cbz w4, .L649 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 462 - add x1, x1, 1312 + add x1, x1, 1352 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L646 -.L647: + b .L649 +.L650: ldrh w1, [x5,2912] add x8, x5, 2912 mov w19, 0 cmp w1, w21 - beq .L646 + beq .L649 ldr x7, [x5,608] ldrh w1, [x7,48] cmp w1, w21 - beq .L646 + beq .L649 ldrh w1, [x7,16] cmp w1, w21 - beq .L646 + beq .L649 ldrh w1, [x7,80] cmp w1, w21 - beq .L646 + beq .L649 ldrh w5, [x8,56] mov x6, 0 -.L648: +.L651: cmp w5, w6 - bls .L682 + bls .L685 add x6, x6, 1 add x1, x8, x6, lsl 1 ldrh w1, [x1,56] cmp w1, w21 - bne .L648 - b .L664 -.L682: - cbnz w23, .L650 + bne .L651 + b .L667 +.L685: + cbnz w23, .L653 add x8, x22, :lo12:.LANCHOR0 mov w19, w23 ldrh w9, [x8,3512] cmp w9, w21 - beq .L646 + beq .L649 mov x6, 0 -.L652: +.L655: add x1, x8, 3520 ldrh w1, [x6,x1] cmp w21, w1 - bne .L651 + bne .L654 ldr w1, [x24,#:lo12:.LANCHOR2] mov w19, 0 - tbz x1, 8, .L646 + tbz x1, 8, .L649 ldrb w2, [x0,2] adrp x0, .LC89 mov w3, w4 @@ -4491,20 +4459,20 @@ gc_add_sblk: mov w5, w9 add x0, x0, :lo12:.LC89 bl printk - b .L646 -.L651: + b .L649 +.L654: add x6, x6, 2 cmp x6, 16 - bne .L652 + bne .L655 sxtw x6, w20 add x19, x7, x6, lsl 7 add x19, x19, 136 - b .L654 -.L650: + b .L657 +.L653: add x19, x7, 392 -.L654: +.L657: ldr w1, [x24,#:lo12:.LANCHOR2] - tbz x1, 8, .L655 + tbz x1, 8, .L658 add x6, x22, :lo12:.LANCHOR0 ldrb w3, [x0,2] adrp x0, .LC90 @@ -4514,39 +4482,39 @@ gc_add_sblk: ldrh w6, [x6,2894] ubfx x3, x3, 5, 3 bl printk -.L655: +.L658: mov x4, x19 add x0, x19, 128 mov w1, 65535 -.L658: +.L661: ldrh w2, [x4] cmp w2, w1 - bne .L656 + bne .L659 strh w21, [x4] add x22, x22, :lo12:.LANCHOR0 - cbz w23, .L657 + cbz w23, .L660 ldr x1, [x22,608] ldrh w0, [x1,124] add w0, w0, 1 strh w0, [x1,124] - b .L681 -.L657: + b .L684 +.L660: ldr x0, [x22,608] add x20, x0, x20, uxth 1 ldrh w0, [x20,120] add w0, w0, 1 strh w0, [x20,120] - b .L681 -.L656: + b .L684 +.L659: add x4, x4, 2 cmp x4, x0 - bne .L658 -.L681: + bne .L661 +.L684: mov w19, 1 - b .L646 -.L664: + b .L649 +.L667: mov w19, 0 -.L646: +.L649: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4593,26 +4561,26 @@ gc_mark_bad_ppa: ldr w0, [x20,584] mov w1, 0 mov x4, x20 -.L684: +.L687: cmp w1, w0 - bcs .L687 + bcs .L690 add x2, x4, x1, sxtw 1 ldrh w2, [x2,588] cmp w2, w22 - beq .L685 + beq .L688 add w1, w1, 1 uxth w1, w1 - b .L684 -.L687: + b .L687 +.L690: cmp w0, 5 - bhi .L685 + bhi .L688 add x21, x21, :lo12:.LANCHOR0 add w1, w0, 1 add x21, x21, 2912 str w1, [x21,584] add x21, x21, x0, uxtw 1 strh w22, [x21,588] -.L685: +.L688: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -4646,12 +4614,12 @@ gc_write_completed: stp x25, x26, [sp,64] str x27, [sp,80] add x23, x21, 800 - add x22, x22, 1328 -.L690: + add x22, x22, 1368 +.L693: ldrb w0, [x21,3552] adrp x19, .LANCHOR0 cmp w0, 255 - beq .L719 + beq .L722 sxtw x25, w0 lsl x0, x25, 6 add x2, x23, x0 @@ -4659,7 +4627,7 @@ gc_write_completed: ldr w1, [x2,52] strb w0, [x21,3552] ldrh w24, [x2,48] - cbz w1, .L691 + cbz w1, .L694 ldr w2, [x2,40] adrp x0, .LC92 mov w3, 1 @@ -4673,32 +4641,32 @@ gc_write_completed: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L691: +.L694: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,3553] cmp w1, 3 - bne .L692 + bne .L695 ldrb w1, [x0,756] - cbnz w1, .L692 + cbnz w1, .L695 ldr x0, [x0,608] ldrb w20, [x0,89] add w20, w20, w20, lsl 1 and w20, w20, 1023 - b .L693 -.L692: + b .L696 +.L695: add x0, x19, :lo12:.LANCHOR0 mov w20, 1 ldrb w1, [x0,3554] - cbz w1, .L693 + cbz w1, .L696 ldrb w0, [x0,3555] mov w20, 2 cmp w0, wzr csinc w20, w20, wzr, ne -.L693: +.L696: adrp x0, .LANCHOR2 uxth x26, w24 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L694 + tbz x0, 8, .L697 add x0, x19, :lo12:.LANCHOR0 mov w1, w24 add x3, x0, 800 @@ -4710,52 +4678,52 @@ gc_write_completed: ldrb w4, [x4,x26] ldrh w3, [x3,48] bl printk -.L694: +.L697: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x0,3560] add x0, x0, x25, lsl 6 ldrb w1, [x1,x26] ldrb w0, [x0,801] cmp w1, w0 - beq .L695 + beq .L698 adrp x0, .LC0 mov x1, x22 mov w2, 814 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L695: +.L698: add x1, x19, :lo12:.LANCHOR0 add x0, x1, x25, lsl 6 ldrb w0, [x0,861] cmp w0, 3 - beq .L696 + beq .L699 ldrb w0, [x1,3553] cmp w0, 3 - bne .L696 + bne .L699 ldrb w0, [x1,3568] - cbnz w0, .L696 + cbnz w0, .L699 ldrb w0, [x1,756] - cbnz w0, .L696 + cbnz w0, .L699 ldrb w0, [x1,3554] - cbz w0, .L697 + cbz w0, .L700 ldrb w0, [x1,3555] - cbnz w0, .L696 -.L697: + cbnz w0, .L699 +.L700: add x19, x19, :lo12:.LANCHOR0 mov w0, 0 add x19, x19, 800 ldr x2, [x19,2760] - b .L698 -.L696: + b .L701 +.L699: add x19, x19, :lo12:.LANCHOR0 mov w25, 0 mov w26, -1 add x27, x19, 800 strh w24, [x19,3484] -.L699: +.L702: cmp w20, w25, uxth - bls .L690 + bls .L693 add w1, w25, w24 ldr x2, [x19,3560] add w25, w25, 1 @@ -4768,17 +4736,17 @@ gc_write_completed: ldrb w0, [x19,2919] sub w0, w0, #1 strb w0, [x19,2919] - b .L699 -.L698: + b .L702 +.L701: cmp w20, w0, uxth - bls .L690 + 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 .L698 -.L719: + b .L701 +.L722: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4796,48 +4764,48 @@ gc_get_src_blk: ldr x1, [x0,608] ldrb w0, [x0,3569] ldrh w4, [x1,124] - cbz w4, .L721 + cbz w4, .L724 add x1, x1, 392 mov w2, 1 - b .L722 -.L721: + b .L725 +.L724: sxtw x2, w0 add x0, x1, x2, lsl 1 ldrh w5, [x0,120] mov w0, 65535 - cbz w5, .L723 + cbz w5, .L726 add x1, x1, x2, lsl 7 mov w2, w4 add x1, x1, 136 -.L722: +.L725: add x4, x1, 128 mov w5, 65535 -.L726: +.L729: ldrh w0, [x1] cmp w0, w5 - beq .L724 + beq .L727 mov w4, -1 strh w4, [x1] add x3, x3, :lo12:.LANCHOR0 - cbz w2, .L725 + cbz w2, .L728 ldr x2, [x3,608] ldrh w1, [x2,124] sub w1, w1, #1 strh w1, [x2,124] - b .L723 -.L725: + b .L726 +.L728: ldrb w1, [x3,3569] ldr x2, [x3,608] add x1, x2, x1, lsl 1 ldrh w2, [x1,120] sub w2, w2, #1 strh w2, [x1,120] - b .L723 -.L724: + b .L726 +.L727: add x1, x1, 2 cmp x1, x4 - bne .L726 -.L723: + bne .L729 +.L726: ret .size gc_get_src_blk, .-gc_get_src_blk .align 2 @@ -4852,10 +4820,10 @@ gc_free_temp_buf: str x21, [sp,32] add x2, x19, :lo12:.LANCHOR0 ldrb w3, [x2,2919] - cbz w3, .L731 + cbz w3, .L734 ldrb w3, [x2,2850] cmp w3, 1 - bhi .L731 + bhi .L734 ldrh w4, [x2,3570] mov x20, x2 ldrb w0, [x2,3572] @@ -4866,29 +4834,29 @@ gc_free_temp_buf: ldr x4, [x2,2760] cmp w0, w3 csel w3, w0, w3, ls -.L732: +.L735: cmp w1, w3 - bcs .L745 + bcs .L748 uxtw x21, w1 ldrb w0, [x4,x21] cmp w0, 255 - beq .L733 + beq .L736 sbfiz x0, x0, 6, 32 add x0, x2, x0 ldrb w5, [x0,61] - cbnz w5, .L733 + cbnz w5, .L736 str x1, [x29,56] bl zbuf_free adrp x0, .LANCHOR2 ldr x1, [x29,56] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L734 + tbz x0, 8, .L737 ldr x2, [x20,3560] adrp x0, .LC94 add x0, x0, :lo12:.LC94 ldrb w2, [x2,x21] bl printk -.L734: +.L737: add x19, x19, :lo12:.LANCHOR0 mov w1, -1 ldr x0, [x19,3560] @@ -4897,13 +4865,13 @@ gc_free_temp_buf: sub w0, w0, #1 strb w0, [x19,2919] mov w0, 1 - b .L731 -.L733: + b .L734 +.L736: add w1, w1, 1 - b .L732 -.L745: + b .L735 +.L748: mov w0, 0 -.L731: +.L734: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 64 @@ -4938,23 +4906,23 @@ zftl_get_gc_node: uxth w2, w0 cmp w1, 5 add x29, sp, 0 - bne .L748 + bne .L751 adrp x0, .LANCHOR0+3576 ldr x0, [x0,#:lo12:.LANCHOR0+3576] - b .L751 -.L748: + b .L754 +.L751: cmp w1, 2 - bne .L750 + bne .L753 mov w0, w2 - bl zftl_get_gc_node.part.12 - b .L752 -.L750: + bl zftl_get_gc_node.part.11 + b .L755 +.L753: adrp x0, .LANCHOR0+3584 ldr x0, [x0,#:lo12:.LANCHOR0+3584] -.L751: +.L754: mov w1, w2 - bl _list_get_gc_head_node.isra.5 -.L752: + bl _list_get_gc_head_node.isra.4 +.L755: uxth w0, w0 ldp x29, x30, [sp], 16 ret @@ -4978,8 +4946,8 @@ gc_search_src_blk: ldr x1, [x0,608] add x1, x1, x21, sxtw 1 ldrh w19, [x1,120] - cbnz w19, .L800 - cbnz w21, .L756 + cbnz w19, .L803 + cbnz w21, .L759 adrp x26, .LC96 strh w21, [x0,3592] mov w19, w21 @@ -4988,9 +4956,9 @@ gc_search_src_blk: mov w27, 65535 adrp x28, .LANCHOR2 add x26, x26, :lo12:.LC96 -.L757: +.L760: cmp w25, w23 - bcs .L762 + bcs .L765 add x3, x20, :lo12:.LANCHOR0 mov w1, 3 str x3, [x29,96] @@ -5006,10 +4974,10 @@ gc_search_src_blk: add w2, w2, 1 uxth w2, w2 strh w2, [x3,3592] - beq .L758 + beq .L761 ldr w0, [x28,#:lo12:.LANCHOR2] uxtw x5, w1 - tbz x0, 8, .L759 + tbz x0, 8, .L762 ldr x3, [x3,600] mov x0, x26 str x4, [x29,96] @@ -5018,40 +4986,40 @@ gc_search_src_blk: bl printk ldr x4, [x29,96] ldr x5, [x29,104] -.L759: +.L762: add x1, x20, :lo12:.LANCHOR0 ldr x0, [x1,600] ldrh w2, [x0,x5,lsl 1] ldrh w0, [x1,2894] cmp w2, w0 - bcs .L760 + bcs .L763 mov w1, 0 mov w0, w4 mov w2, w1 bl gc_add_sblk - cbz w0, .L761 + cbz w0, .L764 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bls .L761 - b .L762 -.L760: + bls .L764 + b .L765 +.L763: strh wzr, [x1,3592] - b .L762 -.L758: - strh wzr, [x3,3592] - b .L762 + b .L765 .L761: + strh wzr, [x3,3592] + b .L765 +.L764: add w25, w25, 1 uxth w25, w25 - b .L757 -.L762: - tbz x24, 1, .L764 + b .L760 +.L765: + tbz x24, 1, .L767 mov w26, 0 mov w27, 65535 -.L765: +.L768: cmp w26, w23 - beq .L769 + beq .L772 add x25, x20, :lo12:.LANCHOR0 mov w1, 5 ldrh w28, [x25,3594] @@ -5061,32 +5029,32 @@ gc_search_src_blk: uxth w1, w0 strh w28, [x25,3594] cmp w1, w27 - beq .L766 + beq .L769 ubfiz x1, x1, 1, 16 ldr x2, [x25,600] ldrh w2, [x2,x1] ldrh w1, [x25,2896] cmp w2, w1 - bcs .L766 + bcs .L769 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L768 + cbz w0, .L771 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bls .L768 - b .L771 -.L766: + bls .L771 + b .L774 +.L769: strh wzr, [x25,3594] - b .L769 -.L768: + b .L772 +.L771: add w26, w26, 1 uxth w26, w26 - b .L765 -.L769: + b .L768 +.L772: cmp w19, w23 - bcs .L771 + bcs .L774 add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x0,3570] ldrb w4, [x0,3572] @@ -5095,152 +5063,152 @@ gc_search_src_blk: mul w1, w1, w4 sub w1, w1, w2, lsr 2 cmp w3, w1 - bge .L764 + bge .L767 add w2, w3, w2, lsr 3 strh w2, [x0,2896] - b .L764 -.L771: + b .L767 +.L774: add x1, x20, :lo12:.LANCHOR0 ldrh w2, [x1,2896] ldrh w0, [x1,3596] cmp w2, w0 - bls .L764 + bls .L767 sub w0, w2, w0, lsr 3 strh w0, [x1,2896] -.L764: - tbz x24, 0, .L772 +.L767: + tbz x24, 0, .L775 cmp w19, w23 - bcs .L772 + bcs .L775 mov w25, 0 mov w27, 65535 -.L773: +.L776: cmp w25, w23 - beq .L776 + beq .L779 add x28, x20, :lo12:.LANCHOR0 ldrh w26, [x28,3598] mov w0, w26 add w26, w26, 1 - bl zftl_get_gc_node.part.12 + bl zftl_get_gc_node.part.11 strh w26, [x28,3598] cmp w27, w0, uxth - beq .L774 + beq .L777 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L775 + cbz w0, .L778 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bcc .L775 - b .L778 -.L774: + bcc .L778 + b .L781 +.L777: strh wzr, [x28,3598] - b .L776 -.L775: + b .L779 +.L778: add w25, w25, 1 uxth w25, w25 - b .L773 -.L776: + b .L776 +.L779: cmp w19, w23 - bcs .L778 + bcs .L781 add x20, x20, :lo12:.LANCHOR0 ldrh w1, [x20,2894] ldrh w0, [x20,3596] cmp w1, w0 - bcs .L772 + bcs .L775 add w0, w1, w0, lsr 3 - b .L853 -.L778: + b .L856 +.L781: add x20, x20, :lo12:.LANCHOR0 ldrh w0, [x20,3596] ldrh w1, [x20,2894] cmp w1, w0, lsr 1 - bls .L772 + bls .L775 sub w0, w1, w0, lsr 3 -.L853: +.L856: strh w0, [x20,2894] - b .L772 -.L756: + b .L775 +.L759: and w1, w24, 1 strh w19, [x0,3486] strh w19, [x0,3600] str w1, [x29,104] - tbz x24, 0, .L779 + tbz x24, 0, .L782 ldrh w2, [x0,3602] ldrh w1, [x0,2868] cmp w1, w2, lsr 2 - bcc .L780 + bcc .L783 ldrh w0, [x0,2866] cmp w0, w1 - bls .L781 -.L780: + bls .L784 +.L783: add x23, x20, :lo12:.LANCHOR0 mov w19, 0 ldrh w0, [x23,2866] lsr w0, w0, 2 strh w0, [x23,3598] mov w0, 0 - bl zftl_get_gc_node.part.12 + bl zftl_get_gc_node.part.11 uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L782 + beq .L785 ubfiz x1, x1, 1, 16 ldr x3, [x23,600] ldrh w2, [x23,3596] ldrh w1, [x3,x1] cmp w1, w2, lsr 2 - bcs .L782 + bcs .L785 mov w1, w19 mov w2, w21 strh w19, [x23,3598] bl gc_add_sblk cmp w0, w19 cset w19, ne -.L782: +.L785: mov w23, 64 mov w26, 65535 uxth w27, w22 -.L784: +.L787: add x25, x20, :lo12:.LANCHOR0 ldrh w28, [x25,3598] mov w0, w28 add w28, w28, 1 - bl zftl_get_gc_node.part.12 + bl zftl_get_gc_node.part.11 strh w28, [x25,3598] cmp w26, w0, uxth - beq .L781 + beq .L784 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L783 + cbz w0, .L786 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcs .L781 -.L783: + bcs .L784 +.L786: sub w23, w23, #1 uxth w23, w23 - cbnz w23, .L784 -.L781: + cbnz w23, .L787 +.L784: add x0, x20, :lo12:.LANCHOR0 ldrh w2, [x0,3602] ldrh w1, [x0,2868] cmp w1, w2, lsr 3 - bhi .L801 + bhi .L804 ldrh w0, [x0,2866] add w0, w0, 8 cmp w1, w0 - bgt .L801 -.L779: - tbz x24, 1, .L787 + bgt .L804 +.L782: + tbz x24, 1, .L790 add x0, x20, :lo12:.LANCHOR0 mov w25, 64 mov w26, 0 mov w27, 65535 uxth w28, w22 strh wzr, [x0,3594] -.L792: +.L795: add x23, x20, :lo12:.LANCHOR0 mov w1, 5 ldrh w2, [x23,3594] @@ -5252,51 +5220,51 @@ gc_search_src_blk: cmp w1, w27 add w2, w2, 1 strh w2, [x23,3594] - beq .L788 + beq .L791 cmp w22, 1 - bne .L789 + 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] -.L789: +.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 .L790 + bcs .L793 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L791 + cbz w0, .L794 add w19, w19, 1 add w26, w26, 1 uxth w19, w19 uxth w26, w26 cmp w19, w28 - bcc .L791 - b .L788 -.L790: + bcc .L794 + b .L791 +.L793: strh wzr, [x2,3594] - b .L788 -.L791: + b .L791 +.L794: sub w0, w25, #1 uxth w25, w0 - cbnz w25, .L792 -.L788: + cbnz w25, .L795 +.L791: cmp w19, w22 - bcc .L793 - cbnz w26, .L794 + bcc .L796 + cbnz w26, .L797 add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x0,2870] ldrh w0, [x0,3604] cmp w1, w0 - bls .L794 -.L793: + bls .L797 +.L796: add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x0,3570] ldrb w4, [x0,3572] @@ -5306,29 +5274,29 @@ gc_search_src_blk: lsr w3, w3, 3 sub w1, w1, w3 cmp w2, w1 - bge .L787 + bge .L790 add w2, w3, w2 strh w2, [x0,2890] - b .L787 -.L794: + 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 .L787 + ble .L790 sub w1, w3, w1, lsr 3 strh w1, [x0,2890] -.L787: +.L790: ldr w0, [x29,104] - cbz w0, .L772 + cbz w0, .L775 add x0, x20, :lo12:.LANCHOR0 mov w25, 64 mov w26, 65535 uxth w27, w22 strh wzr, [x0,3592] -.L798: +.L801: add x23, x20, :lo12:.LANCHOR0 mov w1, 3 ldrh w28, [x23,3592] @@ -5338,57 +5306,57 @@ gc_search_src_blk: uxth w1, w0 strh w28, [x23,3592] cmp w1, w26 - beq .L795 + beq .L798 ubfiz x1, x1, 1, 16 ldr x2, [x23,600] ldrh w1, [x2,x1] cmp w1, 2 - bls .L796 + bls .L799 ldrh w2, [x23,2892] cmp w2, w1 - bls .L796 + bls .L799 ldrh w2, [x23,3602] ldrh w1, [x23,2868] cmp w1, w2, lsr 1 - bls .L795 -.L796: + bls .L798 +.L799: mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L797 + cbz w0, .L800 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcs .L795 -.L797: + bcs .L798 +.L800: sub w25, w25, #1 uxth w25, w25 - cbnz w25, .L798 -.L795: + cbnz w25, .L801 +.L798: cmp w19, w22 add x20, x20, :lo12:.LANCHOR0 - bcs .L799 + bcs .L802 ldrh w0, [x20,3596] ldrh w1, [x20,2892] cmp w1, w0, lsr 1 - bls .L772 + bls .L775 sub w0, w1, w0, lsr 3 strh w0, [x20,2892] - b .L772 -.L799: + b .L775 +.L802: ldrh w1, [x20,3596] ldrb w0, [x20,3572] ldrh w2, [x20,2892] mul w0, w1, w0 sub w0, w0, #32 cmp w2, w0 - bge .L772 + bge .L775 add w1, w2, w1, lsr 3 strh w1, [x20,2892] -.L772: +.L775: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L800 + tbz x0, 8, .L803 adrp x0, .LC97 mov w1, w21 add x0, x0, :lo12:.LC97 @@ -5396,7 +5364,7 @@ gc_search_src_blk: mov w3, w19 mov w4, w22 bl printk -.L800: +.L803: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5405,13 +5373,13 @@ gc_search_src_blk: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 ret -.L801: +.L804: add x0, x20, :lo12:.LANCHOR0 mov w23, 64 mov w26, 65535 uxth w27, w22 strh wzr, [x0,3592] -.L786: +.L789: add x25, x20, :lo12:.LANCHOR0 mov w1, 3 ldrh w28, [x25,3592] @@ -5420,20 +5388,20 @@ gc_search_src_blk: bl zftl_get_gc_node strh w28, [x25,3592] cmp w26, w0, uxth - beq .L779 + beq .L782 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L785 + cbz w0, .L788 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcs .L779 -.L785: + bcs .L782 +.L788: sub w23, w23, #1 uxth w23, w23 - cbnz w23, .L786 - b .L779 + cbnz w23, .L789 + b .L782 .size gc_search_src_blk, .-gc_search_src_blk .align 2 .global zftl_insert_free_list @@ -5448,20 +5416,20 @@ zftl_insert_free_list: add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L855 + bne .L858 add x0, x2, 3608 add x2, x2, 2860 - b .L858 -.L855: + b .L861 +.L858: cmp w0, 16 - bne .L857 + bne .L860 add x0, x2, 3616 add x2, x2, 2862 - b .L858 -.L857: + b .L861 +.L860: add x0, x2, 3624 add x2, x2, 2864 -.L858: +.L861: bl _insert_free_list ldp x29, x30, [sp], 16 ret @@ -5480,24 +5448,24 @@ zftl_insert_data_list: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L860 + bne .L863 add x0, x2, 616 add x2, x2, 2866 - b .L863 -.L860: + b .L866 +.L863: cmp w3, 96 - bne .L862 + bne .L865 add x0, x2, 3584 add x2, x2, 2868 - b .L863 -.L862: + b .L866 +.L865: cmp w3, 160 - bne .L859 + bne .L862 add x0, x2, 3576 add x2, x2, 2870 -.L863: +.L866: bl _insert_data_list -.L859: +.L862: ldp x29, x30, [sp], 16 ret .size zftl_insert_data_list, .-zftl_insert_data_list @@ -5516,10 +5484,10 @@ zftl_gc_get_free_sblk: uxth w22, w1 ldr x0, [x23,608] ldrh w19, [x0,588] - cbnz w21, .L865 + cbnz w21, .L868 mov w0, 65535 cmp w19, w0 - beq .L865 + beq .L868 adrp x0, .LC98 mov w1, w19 add x0, x0, :lo12:.LC98 @@ -5527,13 +5495,13 @@ zftl_gc_get_free_sblk: ldr x0, [x23,608] mov w1, -1 strh w1, [x0,588] - b .L866 -.L865: + b .L869 +.L868: add x0, x20, :lo12:.LANCHOR0 ldrh w3, [x0,2862] ldrh w1, [x0,2864] cmp w3, w1 - bls .L867 + bls .L870 mov w1, 0 mov x2, x0 lsr w3, w3, 3 @@ -5541,25 +5509,25 @@ zftl_gc_get_free_sblk: csel w1, w3, w1, ne add x0, x0, 3616 add x2, x2, 2862 - b .L885 -.L867: + b .L888 +.L870: lsr w1, w1, 2 - cbz w21, .L871 + cbz w21, .L874 mov w1, 7 mul w3, w3, w1 mov w1, 8 sdiv w3, w3, w1 uxth w1, w3 -.L871: +.L874: add x2, x20, :lo12:.LANCHOR0 add x0, x2, 3624 add x2, x2, 2864 -.L885: +.L888: bl _list_pop_index_node uxth w19, w0 mov w0, 65535 cmp w19, w0 - bne .L872 + bne .L875 add x5, x20, :lo12:.LANCHOR0 adrp x0, .LC99 add x0, x0, :lo12:.LC99 @@ -5569,11 +5537,11 @@ zftl_gc_get_free_sblk: ldrh w4, [x5,2860] ldrh w5, [x5,2864] bl printk -.L872: - cbz w21, .L866 +.L875: + cbz w21, .L869 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L866 + tbz x0, 8, .L869 add x20, x20, :lo12:.LANCHOR0 uxtw x6, w19 lsl x0, x6, 2 @@ -5592,7 +5560,7 @@ zftl_gc_get_free_sblk: ubfx x3, x3, 3, 2 and w5, w5, 2047 bl printk -.L866: +.L869: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -5612,36 +5580,36 @@ zftl_get_free_sblk: stp x19, x20, [sp,16] cmp w21, 5 adrp x19, .LANCHOR0 - bne .L887 + bne .L890 add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x0,2862] ldrh w1, [x0,2864] cmp w2, w1 - bcc .L888 + bcc .L891 ldrh w0, [x0,2860] cmp w0, w2 - bls .L889 - cbz w1, .L889 -.L888: + bls .L892 + cbz w1, .L892 +.L891: add x2, x19, :lo12:.LANCHOR0 lsr w1, w1, 1 add x0, x2, 3624 - b .L917 -.L889: + b .L920 +.L892: add x2, x19, :lo12:.LANCHOR0 mov w1, 0 add x0, x2, 3616 add x2, x2, 2862 - b .L916 -.L887: + b .L919 +.L890: add x22, x19, :lo12:.LANCHOR0 cmp w21, 1 ldr x0, [x22,608] ldrh w20, [x0,590] - beq .L891 + beq .L894 mov w0, 65535 cmp w20, w0 - beq .L891 + beq .L894 adrp x0, .LC101 mov w1, w20 add x0, x0, :lo12:.LC101 @@ -5649,28 +5617,28 @@ zftl_get_free_sblk: ldr x0, [x22,608] mov w1, -1 strh w1, [x0,590] - b .L892 -.L891: + b .L895 +.L894: add x2, x19, :lo12:.LANCHOR0 ldrh w0, [x2,2860] ldrh w1, [x2,2864] cmp w0, w1 - bcc .L893 + bcc .L896 ldrh w2, [x2,2862] cmp w2, w0 - bls .L894 - cbz w1, .L894 -.L893: + bls .L897 + cbz w1, .L897 +.L896: lsr w1, w1, 1 cmp w21, 1 csel w3, w1, w3, eq add x2, x19, :lo12:.LANCHOR0 add x0, x2, 3624 mov w1, w3 -.L917: +.L920: add x2, x2, 2864 - b .L916 -.L894: + b .L919 +.L897: lsr w0, w0, 1 cmp w21, 1 csel w3, w0, w3, eq @@ -5678,13 +5646,13 @@ zftl_get_free_sblk: add x0, x2, 3608 mov w1, w3 add x2, x2, 2860 -.L916: +.L919: bl _list_pop_index_node uxth w0, w0 mov w20, w0 mov w0, 65535 cmp w20, w0 - bne .L892 + bne .L895 add x19, x19, :lo12:.LANCHOR0 adrp x0, .LC99 add x0, x0, :lo12:.LC99 @@ -5694,7 +5662,7 @@ zftl_get_free_sblk: ldrh w4, [x19,2860] ldrh w5, [x19,2864] bl printk -.L892: +.L895: mov w0, w20 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5715,24 +5683,24 @@ zftl_remove_data_node: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L919 + bne .L922 add x0, x2, 616 add x2, x2, 2866 - b .L922 -.L919: + b .L925 +.L922: cmp w3, 96 - bne .L921 + bne .L924 add x0, x2, 3584 add x2, x2, 2868 - b .L922 -.L921: + b .L925 +.L924: cmp w3, 160 - bne .L918 + bne .L921 add x0, x2, 3576 add x2, x2, 2870 -.L922: +.L925: bl _list_remove_node -.L918: +.L921: ldp x29, x30, [sp], 16 ret .size zftl_remove_data_node, .-zftl_remove_data_node @@ -5749,20 +5717,20 @@ zftl_remove_free_node: add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L924 + bne .L927 add x0, x2, 3608 add x2, x2, 2860 - b .L927 -.L924: + b .L930 +.L927: cmp w0, 16 - bne .L926 + bne .L929 add x0, x2, 3616 add x2, x2, 2862 - b .L927 -.L926: + b .L930 +.L929: add x0, x2, 3624 add x2, x2, 2864 -.L927: +.L930: bl _list_remove_node ldp x29, x30, [sp], 16 ret @@ -5781,24 +5749,24 @@ zftl_list_update_data_list: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L929 + bne .L932 add x0, x2, 616 add x2, x2, 2866 - b .L932 -.L929: + b .L935 +.L932: cmp w3, 96 - bne .L931 + bne .L934 add x0, x2, 3584 add x2, x2, 2868 - b .L932 -.L931: + b .L935 +.L934: cmp w3, 160 - bne .L928 + bne .L931 add x0, x2, 3576 add x2, x2, 2870 -.L932: +.L935: bl _list_update_data_list -.L928: +.L931: ldp x29, x30, [sp], 16 ret .size zftl_list_update_data_list, .-zftl_list_update_data_list @@ -5820,7 +5788,7 @@ print_list_info: ldr x1, [x19] bl printk ldr x19, [x19] - cbz x19, .L933 + cbz x19, .L936 mov x22, -6148914691236517206 adrp x23, .LC103 mov w20, 0 @@ -5829,7 +5797,7 @@ print_list_info: add x23, x23, :lo12:.LC103 mov w26, 65535 mov w24, 6 -.L936: +.L939: add x21, x25, :lo12:.LANCHOR0 ldrh w3, [x19] ldrh w4, [x19,2] @@ -5860,7 +5828,7 @@ print_list_info: bl printk ldrh w19, [x19] cmp w19, w26 - beq .L933 + beq .L936 ldr x0, [x21,528] add w20, w20, 1 umull x19, w19, w24 @@ -5868,8 +5836,8 @@ print_list_info: add x19, x0, x19 ldrh w0, [x21,3632] cmp w0, w20 - bcs .L936 -.L933: + bcs .L939 +.L936: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -5918,44 +5886,44 @@ ftl_tmp_into_update: ldr x0, [x0,#:lo12:.LANCHOR0+2880] ldr w2, [x0,16] cmp w2, 2048 - bls .L939 + bls .L942 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] -.L939: +.L942: ldr w2, [x0,24] cmp w2, 2048 - bls .L940 + bls .L943 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] -.L940: +.L943: ldr w2, [x0,32] cmp w2, 1024 - bls .L941 + bls .L944 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] -.L941: +.L944: ldr w2, [x0,40] cmp w2, 1024 - bls .L938 + bls .L941 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] -.L938: +.L941: ret .size ftl_tmp_into_update, .-ftl_tmp_into_update .align 2 @@ -5971,13 +5939,13 @@ ftl_get_blk_list_in_sblk: ldrb w11, [x2,3] mov w2, 0 mov w6, w2 -.L944: +.L947: add x8, x7, :lo12:.LANCHOR0 ldrb w3, [x8,3572] cmp w6, w3 - bge .L950 + bge .L953 asr w3, w11, w6 - tbnz x3, 0, .L945 + tbnz x3, 0, .L948 ldrb w5, [x8,3538] sbfiz x10, x2, 1, 32 ldrb w9, [x8,744] @@ -5991,28 +5959,28 @@ ftl_get_blk_list_in_sblk: strh w4, [x1,x10] ldrb w3, [x8,3538] cmp w3, 1 - bls .L946 + bls .L949 sub w3, w3, #1 and w3, w6, w3 add w3, w4, w3 strh w3, [x1,x10] -.L946: +.L949: add w2, w2, 1 -.L945: +.L948: add w6, w6, 1 - b .L944 -.L950: + b .L947 +.L953: mov w0, w2 mov w4, -1 -.L948: +.L951: add x3, x7, :lo12:.LANCHOR0 ldrb w3, [x3,3572] cmp w2, w3 - bge .L951 + bge .L954 strh w4, [x1,w2,sxtw 1] add w2, w2, 1 - b .L948 -.L951: + b .L951 +.L954: ret .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .align 2 @@ -6040,16 +6008,16 @@ ftl_erase_phy_blk: sub w19, w19, #1 and w19, w19, w2 sxth w19, w19 - cbz w0, .L953 + cbz w0, .L956 ldrb w0, [x5,3555] - cbnz w0, .L953 + cbnz w0, .L956 ldrh w2, [x5,3634] cmp w1, wzr mov w0, w22 cset w1, eq mul w2, w19, w2 bl flash_erase_block_en -.L953: +.L956: add x3, x20, :lo12:.LANCHOR0 mov w1, w21 mov w0, w22 @@ -6080,11 +6048,11 @@ ftl_erase_sblk: mov w19, 0 add x0, x0, x20 ldrb w25, [x0,3] -.L958: +.L961: add x2, x23, :lo12:.LANCHOR0 ldrb w0, [x2,3636] cmp w19, w0 - bge .L969 + bge .L972 ldrb w3, [x2,3538] mov w21, 0 ldrh w2, [x2,3634] @@ -6092,79 +6060,79 @@ ftl_erase_sblk: sub w4, w3, #1 mul w6, w19, w3 mul w5, w24, w3 -.L970: +.L973: cmp w1, w3 - bge .L983 + bge .L986 add w0, w1, w6 asr w0, w25, w0 - tbnz x0, 0, .L959 + 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 -.L959: +.L962: add w1, w1, 1 - b .L970 -.L983: + b .L973 +.L986: cmp w3, 4 - bne .L982 + bne .L985 mov x26, 0 -.L961: +.L964: cmp w21, w26 - ble .L964 + ble .L967 add x2, x29, 80 mov w0, w19 mov w1, w22 ldr w2, [x2,x26,lsl 2] add x26, x26, 1 bl flash_erase_block_en - b .L961 -.L982: - cmp w21, 2 - bne .L965 - add x0, x23, :lo12:.LANCHOR0 - ldrb w1, [x0,3554] - cbz w1, .L966 - ldrb w0, [x0,3555] - cbnz w0, .L966 - cmp w22, wzr - ldr w2, [x29,80] - ldr w3, [x29,84] - mov w0, w19 - cset w1, eq - bl flash_erase_duplane_block -.L966: - ldr w2, [x29,80] - mov w0, w19 - ldr w3, [x29,84] - mov w1, w22 - bl flash_erase_duplane_block b .L964 -.L965: - cmp w21, 1 - bne .L964 +.L985: + cmp w21, 2 + bne .L968 add x0, x23, :lo12:.LANCHOR0 ldrb w1, [x0,3554] - cbz w1, .L968 + cbz w1, .L969 ldrb w0, [x0,3555] - cbnz w0, .L968 + cbnz w0, .L969 + cmp w22, wzr + ldr w2, [x29,80] + ldr w3, [x29,84] + mov w0, w19 + cset w1, eq + bl flash_erase_duplane_block +.L969: + ldr w2, [x29,80] + mov w0, w19 + ldr w3, [x29,84] + mov w1, w22 + 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] mov w0, w19 cset w1, eq bl flash_erase_block_en -.L968: +.L971: ldr w2, [x29,80] mov w0, w19 mov w1, w22 bl flash_erase_block_en -.L964: +.L967: add w19, w19, 1 - b .L958 -.L969: - cbnz w22, .L971 + b .L961 +.L972: + cbnz w22, .L974 ldr x1, [x2,584] ldrh w0, [x1,x20] add w3, w0, 1 @@ -6180,10 +6148,10 @@ ftl_erase_sblk: ubfx x1, x1, 0, 11 uxth w2, w1 cmp w3, w2 - bge .L973 + bge .L976 strh w1, [x0,96] - b .L973 -.L971: + b .L976 +.L974: ldr x3, [x2,584] ldr w0, [x3,x20] ubfx x1, x0, 11, 8 @@ -6199,9 +6167,9 @@ ftl_erase_sblk: ldr w1, [x1,x20] ubfx x1, x1, 11, 8 cmp w2, w1, uxtb - bcs .L973 + bcs .L976 strh w1, [x0,98] -.L973: +.L976: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -6223,39 +6191,39 @@ ftl_alloc_sys_blk: ldr x1, [x1,2880] ldrh w2, [x1,136] cmp w2, 63 - bls .L985 + bls .L988 strh wzr, [x1,136] -.L985: +.L988: ldrh w0, [x1,112] - cbnz w0, .L986 + cbnz w0, .L989 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1140 - add x1, x1, 1352 + mov w2, 1150 + add x1, x1, 1392 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L986: +.L989: add x0, x19, :lo12:.LANCHOR0 mov w4, 65535 ldr x1, [x0,2880] -.L990: +.L993: ldrh w2, [x1,136] -.L987: +.L990: cmp w2, 63 - bgt .L993 + bgt .L996 sxtw x3, w2 add x3, x3, 80 ldrh w0, [x1,x3,lsl 1] cmp w0, w4 - bne .L992 + bne .L995 add w2, w2, 1 - b .L987 -.L993: - strh wzr, [x1,136] b .L990 -.L992: +.L996: + strh wzr, [x1,136] + b .L993 +.L995: mov w4, -1 strh w4, [x1,x3,lsl 1] strh w2, [x1,136] @@ -6280,34 +6248,34 @@ ftl_free_sys_blk: ldr x2, [x0,2880] ldrh w0, [x2,138] cmp w0, 63 - bls .L995 + bls .L998 strh wzr, [x2,138] -.L995: +.L998: ldrh w0, [x2,112] cmp w0, 63 - bls .L996 + bls .L999 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1164 - add x1, x1, 1376 + mov w2, 1174 + add x1, x1, 1416 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L996: +.L999: add x1, x19, :lo12:.LANCHOR0 mov w0, 65535 ldr x1, [x1,2880] -.L1000: +.L1003: ldrh w2, [x1,138] -.L997: +.L1000: cmp w2, 63 - bgt .L1002 + bgt .L1005 sxtw x3, w2 add x3, x3, 80 ldrh w4, [x1,x3,lsl 1] cmp w4, w0 - bne .L998 + bne .L1001 strh w20, [x1,x3,lsl 1] strh w2, [x1,138] ldrh w0, [x1,112] @@ -6316,12 +6284,12 @@ ftl_free_sys_blk: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret -.L998: +.L1001: add w2, w2, 1 - b .L997 -.L1002: - strh wzr, [x1,138] b .L1000 +.L1005: + strh wzr, [x1,138] + b .L1003 .size ftl_free_sys_blk, .-ftl_free_sys_blk .align 2 .global ftl_info_data_recovery @@ -6335,7 +6303,7 @@ ftl_info_data_recovery: str x23, [sp,48] ldrh w2, [x0] cmp w2, w1 - beq .L1003 + beq .L1006 adrp x19, .LANCHOR0 ubfiz x20, x2, 2, 16 add x23, x19, :lo12:.LANCHOR0 @@ -6343,36 +6311,36 @@ ftl_info_data_recovery: add x22, x21, x20 ldrb w1, [x22,2] tst w1, 224 - bne .L1003 + bne .L1006 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, .L1007 + tbz x0, 3, .L1010 ldr x1, [x23,2880] ldrh w0, [x1,116] sub w0, w0, #1 strh w0, [x1,116] - b .L1008 -.L1007: + b .L1011 +.L1010: tst w0, 24 ldr x1, [x23,2880] - bne .L1009 + bne .L1012 ldrh w0, [x1,114] sub w0, w0, #1 strh w0, [x1,114] - b .L1008 -.L1009: + b .L1011 +.L1012: ldrh w0, [x1,118] sub w0, w0, #1 strh w0, [x1,118] -.L1008: +.L1011: ldrb w0, [x22,2] and w0, w0, 224 cmp w0, 160 - bne .L1010 + bne .L1013 ldr w0, [x21,x20] add x19, x19, :lo12:.LANCHOR0 ubfx x1, x0, 11, 8 @@ -6383,29 +6351,29 @@ ftl_info_data_recovery: ldrh w0, [x1,120] sub w0, w0, #1 strh w0, [x1,120] - b .L1003 -.L1010: + b .L1006 +.L1013: ldrh w1, [x21,x20] cmp w0, 64 add w2, w1, 1 bfi w1, w2, 0, 11 strh w1, [x21,x20] - bne .L1011 + bne .L1014 add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2880] ldrh w0, [x1,122] sub w0, w0, #1 strh w0, [x1,122] - b .L1003 -.L1011: + b .L1006 +.L1014: cmp w0, 96 - bne .L1003 + bne .L1006 add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2880] ldrh w0, [x1,124] sub w0, w0, #1 strh w0, [x1,124] -.L1003: +.L1006: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -6429,14 +6397,14 @@ ftl_get_ppa_from_index: ldrb w4, [x4,3572] mul w0, w0, w4 cmp w1, w0 - bge .L1013 + bge .L1016 add x3, x3, 16 - b .L1014 -.L1013: + b .L1017 +.L1016: sub w1, w1, w0 add x3, x3, 48 uxth w1, w1 -.L1014: +.L1017: ldrb w2, [x3,9] mov w0, 65535 sdiv w20, w1, w2 @@ -6444,16 +6412,16 @@ ftl_get_ppa_from_index: add x1, x3, x1, uxth 1 ldrh w21, [x1,16] cmp w21, w0 - bne .L1015 + bne .L1018 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1686 - add x1, x1, 1400 + mov w2, 1696 + add x1, x1, 1440 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1015: +.L1018: add x2, x19, :lo12:.LANCHOR0 ldrh w0, [x2,3634] madd w0, w21, w0, w20 @@ -6477,22 +6445,22 @@ lpa_hash_get_ppa: ldrh w1, [x1,3640] ldr x4, [x2,-200] ldr x5, [x2,-192] -.L1017: +.L1020: cmp w1, w3 - beq .L1021 + beq .L1024 uxtw x2, w1 ldr w6, [x4,x2,lsl 2] cmp w6, w0 - bne .L1018 + bne .L1021 mov w0, w1 bl ftl_get_ppa_from_index - b .L1019 -.L1018: - ldrh w1, [x5,x2,lsl 1] - b .L1017 + b .L1022 .L1021: + ldrh w1, [x5,x2,lsl 1] + b .L1020 +.L1024: mov w0, -1 -.L1019: +.L1022: ldp x29, x30, [sp], 16 ret .size lpa_hash_get_ppa, .-lpa_hash_get_ppa @@ -6507,67 +6475,67 @@ ftl_get_new_free_page: ldrh w1, [x0] mov w0, 65535 cmp w1, w0 - bne .L1023 + bne .L1026 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1809 - add x1, x1, 1424 + mov w2, 1819 + add x1, x1, 1464 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1023: +.L1026: adrp x20, .LANCHOR0 ldrh w1, [x19,2] add x0, x20, :lo12:.LANCHOR0 ldrh w0, [x0,3596] cmp w1, w0 - bne .L1024 + bne .L1027 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1810 - add x1, x1, 1424 + mov w2, 1820 + add x1, x1, 1464 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1024: +.L1027: ldrh w0, [x19,6] - cbnz w0, .L1025 + cbnz w0, .L1028 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1811 - add x1, x1, 1424 + mov w2, 1821 + add x1, x1, 1464 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1025: +.L1028: ldrb w0, [x19,5] add x1, x20, :lo12:.LANCHOR0 add x0, x0, 8 ldrb w2, [x1,3572] mov w1, 65535 ldrh w0, [x19,x0,lsl 1] -.L1026: +.L1029: cmp w0, w1 - bne .L1030 + bne .L1033 ldrb w0, [x19,5] add w0, w0, 1 uxtb w0, w0 strb w0, [x19,5] cmp w0, w2 - bne .L1027 + bne .L1030 ldrh w0, [x19,2] strb wzr, [x19,5] add w0, w0, 1 strh w0, [x19,2] -.L1027: +.L1030: ldrb w0, [x19,5] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L1026 -.L1030: + b .L1029 +.L1033: add x20, x20, :lo12:.LANCHOR0 ldrh w2, [x19,2] ldrh w1, [x20,3634] @@ -6585,11 +6553,11 @@ ftl_get_new_free_page: uxtb w1, w1 strb w1, [x19,5] cmp w3, w1 - bne .L1029 + bne .L1032 add w2, w2, 1 strb wzr, [x19,5] strh w2, [x19,2] -.L1029: +.L1032: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6607,16 +6575,16 @@ ftl_ext_alloc_new_blk: mov w1, 65533 sub w0, w0, #1 cmp w1, w0, uxth - bcs .L1032 + bcs .L1035 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1842 - add x1, x1, 1448 + mov w2, 1852 + add x1, x1, 1488 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1032: +.L1035: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 @@ -6640,13 +6608,13 @@ ftl_total_vpn_update: adrp x1, .LANCHOR3 add x3, x1, :lo12:.LANCHOR3 ldrh w2, [x3,-184] - cbnz w0, .L1034 + cbnz w0, .L1037 cmp w2, 4 - bhi .L1034 + bhi .L1037 add w2, w2, 1 strh w2, [x3,-184] - b .L1033 -.L1034: + b .L1036 +.L1037: add x1, x1, :lo12:.LANCHOR3 adrp x0, .LANCHOR0 mov w9, 65535 @@ -6658,35 +6626,35 @@ ftl_total_vpn_update: mov x1, 0 mov w2, w1 mov w3, w1 -.L1036: +.L1039: cmp w6, w1, uxth - bls .L1044 + bls .L1047 ldrh w4, [x7,x1,lsl 1] cmp w4, w9 - beq .L1037 + beq .L1040 add x5, x8, x1, lsl 2 ldrb w5, [x5,2] and w5, w5, 224 cmp w5, 160 - bne .L1038 + bne .L1041 add w2, w2, w4 - b .L1037 -.L1038: + b .L1040 +.L1041: add w3, w3, w4 -.L1037: +.L1040: add x1, x1, 1 - b .L1036 -.L1044: + b .L1039 +.L1047: add x0, x0, :lo12:.LANCHOR0 ldr x1, [x0,608] ldr x0, [x0,2880] str w3, [x1,524] str w2, [x1,528] ldrh w0, [x0,120] - cbz w0, .L1033 + cbz w0, .L1036 udiv w2, w2, w0 str w2, [x1,532] -.L1033: +.L1036: ret .size ftl_total_vpn_update, .-ftl_total_vpn_update .align 2 @@ -6712,10 +6680,10 @@ ftl_vpn_update: ldr x0, [x1,600] ldrh w2, [x0,x19] mov w0, 0 - cbnz w2, .L1047 + cbnz w2, .L1050 mov w0, 1 str w0, [x1,2900] -.L1047: +.L1050: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6731,13 +6699,13 @@ ftl_vpn_decrement: str x19, [sp,16] cmp w1, w0 adrp x2, .LANCHOR0 - beq .L1050 + beq .L1053 add x5, x2, :lo12:.LANCHOR0 uxtw x0, w1 lsl x3, x0, 1 ldr x4, [x5,600] ldrh w19, [x4,x3] - cbnz w19, .L1051 + cbnz w19, .L1054 ldr x2, [x5,584] add x0, x2, x0, lsl 2 mov w2, w19 @@ -6746,24 +6714,24 @@ ftl_vpn_decrement: add x0, x0, :lo12:.LC104 ubfx x3, x3, 5, 3 bl printk - b .L1057 -.L1051: + b .L1060 +.L1054: sub w19, w19, #1 strh w19, [x4,x3] -.L1050: +.L1053: add x19, x2, :lo12:.LANCHOR0 mov w0, 0 ldrh w2, [x19,3512] cmp w2, w1 - beq .L1052 + beq .L1055 mov w0, 65535 cmp w2, w0 - bne .L1053 + bne .L1056 strh w1, [x19,3512] -.L1057: +.L1060: mov w0, 0 - b .L1052 -.L1053: + b .L1055 +.L1056: mov w0, w2 str x1, [x29,40] bl ftl_vpn_update @@ -6782,7 +6750,7 @@ ftl_vpn_decrement: add x3, x19, x3, uxth 1 strh w1, [x19,3512] strh w2, [x3,3520] -.L1052: +.L1055: ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -6805,42 +6773,42 @@ lpa_hash_update_ppa: ldr x13, [x6,-192] mov w6, 65535 mov w12, w6 -.L1059: +.L1062: cmp w5, w12 - beq .L1063 + beq .L1066 uxtw x9, w5 uxth x7, w5 lsl x10, x9, 2 add x14, x8, x10 ldr w10, [x8,x10] cmp w10, w0 - bne .L1060 + bne .L1063 mov w5, -1 str w5, [x14] mov w5, 65535 cmp w6, w5 add x5, x3, :lo12:.LANCHOR3 ldr x5, [x5,-192] - bne .L1061 + bne .L1064 ldrh w6, [x5,x7,lsl 1] add x5, x4, :lo12:.LANCHOR0 add x5, x5, 3640 strh w6, [x5,w11,sxtw 1] - b .L1062 -.L1061: + b .L1065 +.L1064: ldrh w8, [x5,x7,lsl 1] strh w8, [x5,w6,uxtw 1] -.L1062: +.L1065: add x5, x3, :lo12:.LANCHOR3 mov w6, -1 ldr x5, [x5,-192] strh w6, [x5,x7,lsl 1] - b .L1063 -.L1060: + b .L1066 +.L1063: mov w6, w5 ldrh w5, [x13,x9,lsl 1] - b .L1059 -.L1063: + b .L1062 +.L1066: add x3, x3, :lo12:.LANCHOR3 uxtw x5, w2 add x4, x4, :lo12:.LANCHOR0 @@ -6852,7 +6820,7 @@ lpa_hash_update_ppa: ldrh w7, [x6,w11,sxtw 1] strh w2, [x6,w11,sxtw 1] strh w7, [x0,x5,lsl 1] - beq .L1065 + beq .L1068 ldrb w0, [x4,744] mov w2, 24 ldrh w5, [x4,3536] @@ -6866,7 +6834,7 @@ lpa_hash_update_ppa: and w1, w2, w1 udiv w0, w1, w0 bl ftl_vpn_decrement -.L1065: +.L1068: mov w0, -1 ldp x29, x30, [sp], 16 ret @@ -6904,25 +6872,25 @@ ftl_mask_bad_block: uxth w4, w3 udiv w3, w3, w5 uxth w21, w3 - bls .L1070 + bls .L1073 sub w5, w5, #1 and w5, w4, w5 add w2, w20, w5 uxtb w20, w2 -.L1070: +.L1073: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 14, .L1071 + tbz x0, 14, .L1074 adrp x0, .LC105 mov w2, w20 add x0, x0, :lo12:.LC105 uxth w3, w3 bl printk -.L1071: +.L1074: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0,576] cmp w1, w21 - bls .L1069 + bls .L1072 ldr x0, [x0,584] mov w2, 1 add x21, x0, x21, uxth 2 @@ -6930,7 +6898,7 @@ ftl_mask_bad_block: lsl w2, w2, w20 orr w2, w2, w0 strb w2, [x21,3] -.L1069: +.L1072: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6952,14 +6920,14 @@ gc_free_bad_sblk: uxth w25, w0 mov w24, 0 ldr w0, [x21,584] - cbz w0, .L1087 + cbz w0, .L1090 adrp x23, .LC106 mov w26, 24 add x23, x23, :lo12:.LC106 -.L1088: +.L1091: ldrb w0, [x20,3572] cmp w0, w24 - bls .L1087 + bls .L1090 ldrb w3, [x20,3538] ldrb w19, [x20,744] ldrh w0, [x20,3536] @@ -6971,21 +6939,21 @@ gc_free_bad_sblk: lsl w19, w1, w19 madd w19, w25, w2, w19 uxth w19, w19 - bls .L1078 + bls .L1081 sub w2, w2, #1 and w2, w24, w2 add w19, w19, w2 uxth w19, w19 -.L1078: +.L1081: mov w22, 0 -.L1079: +.L1082: ldr w0, [x21,584] cmp w22, w0 - bcs .L1089 + bcs .L1092 add x0, x21, x22, sxtw 1 ldrh w0, [x0,588] cmp w0, w19 - bne .L1080 + bne .L1083 mov w1, w19 mov x0, x23 bl printk @@ -6994,28 +6962,28 @@ gc_free_bad_sblk: bl ftl_mask_bad_block ldr w2, [x21,584] mov w1, w22 -.L1081: +.L1084: cmp w1, w2 - bcs .L1090 + 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 .L1081 -.L1090: + b .L1084 +.L1093: sub w2, w2, #1 str w2, [x21,584] -.L1080: +.L1083: add w22, w22, 1 uxth w22, w22 - b .L1079 -.L1089: + b .L1082 +.L1092: add w24, w24, 1 uxth w24, w24 - b .L1088 -.L1087: + b .L1091 +.L1090: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7042,7 +7010,7 @@ ftl_free_sblk: add x21, x7, x20 ldrb w2, [x21,2] ubfx x23, x2, 5, 3 - tbz x2, 3, .L1093 + tbz x2, 3, .L1096 ldr x0, [x4,2880] ldrh w3, [x7,x20] ldrh w5, [x0,74] @@ -7061,14 +7029,14 @@ ftl_free_sblk: ldrh w10, [x0,-180] add w6, w5, w6 cmp w6, w10 - ble .L1094 + 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 .L1100 + blt .L1103 ldrh w5, [x4,2866] ldrh w1, [x4,2860] ldrh w0, [x0,-178] @@ -7076,12 +7044,12 @@ ftl_free_sblk: add w1, w5, w1 add w0, w0, 8 add w1, w1, w4 - b .L1112 -.L1094: + b .L1115 +.L1097: madd w5, w5, w3, w1 ldrh w1, [x0,-176] cmp w5, w1 - ble .L1096 + ble .L1099 ldrh w5, [x4,2866] ldrh w1, [x4,2860] ldrh w0, [x0,-178] @@ -7090,30 +7058,30 @@ ftl_free_sblk: add w1, w1, w5 add w5, w0, 8 cmp w1, w5 - blt .L1110 + blt .L1113 ldrh w6, [x4,2870] ldrh w5, [x4,2862] ldrh w4, [x4,3604] add w5, w6, w5 add w4, w4, 8 cmp w5, w4 - blt .L1100 + blt .L1103 add w0, w0, 24 -.L1112: +.L1115: cmp w1, w0 - bge .L1100 -.L1110: + bge .L1103 +.L1113: and w2, w2, -25 - b .L1109 -.L1100: + b .L1112 +.L1103: mov w0, 2 bfi w2, w0, 3, 2 -.L1109: +.L1112: strb w2, [x21,2] -.L1096: +.L1099: ldrb w0, [x21,2] ands w0, w0, 24 - bne .L1101 + bne .L1104 mul w4, w9, w3 ldrh w0, [x7,x20] lsr w3, w9, 3 @@ -7124,10 +7092,10 @@ ftl_free_sblk: ldr w0, [x7,x20] bfi w0, w3, 11, 8 str w0, [x7,x20] - b .L1093 -.L1101: + b .L1096 +.L1104: cmp w0, 16 - bne .L1093 + bne .L1096 sdiv w3, w8, w3 ldr w4, [x7,x20] add w3, w3, w3, lsl 1 @@ -7137,7 +7105,7 @@ ftl_free_sblk: str w4, [x7,x20] bfi w4, w3, 0, 11 strh w4, [x7,x20] -.L1093: +.L1096: mov w0, w22 add w23, w23, 6 and w23, w23, 7 @@ -7151,33 +7119,33 @@ ftl_free_sblk: strb w0, [x2,2] ldr x0, [x1,600] strh wzr, [x0,x24,lsl 1] - bhi .L1103 + bhi .L1106 mov w0, w22 bl gc_free_bad_sblk -.L1103: +.L1106: ldrb w0, [x21,2] - tbz x0, 3, .L1104 + tbz x0, 3, .L1107 add x19, x19, :lo12:.LANCHOR0 ldr x0, [x19,608] ldrh w1, [x0,586] cmp w1, w22 - bne .L1104 + bne .L1107 mov w1, -1 ldrh w2, [x0,590] strh w1, [x0,586] mov w1, 65535 cmp w2, w1 - bne .L1104 + bne .L1107 strh w22, [x0,590] adrp x0, .LC107 mov w1, w22 add x0, x0, :lo12:.LC107 bl printk - b .L1091 -.L1104: + b .L1094 +.L1107: mov w0, w22 bl zftl_insert_free_list -.L1091: +.L1094: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7200,130 +7168,130 @@ gc_free_src_blk: stp x25, x26, [sp,64] mov w20, 0 add x24, x23, 2912 - add x21, x21, 1472 -.L1114: + add x21, x21, 1512 +.L1117: ldrh w0, [x24,56] adrp x25, .LANCHOR0 cmp w0, w20 - bls .L1152 + bls .L1155 add x0, x24, x20, sxtw 1 ldrh w22, [x0,58] ldr x0, [x23,600] lsl x26, x22, 1 mov x19, x22 ldrh w2, [x0,x26] - cbz w2, .L1115 + cbz w2, .L1118 adrp x0, .LC108 mov w1, w22 add x0, x0, :lo12:.LC108 bl printk -.L1115: +.L1118: add x0, x25, :lo12:.LANCHOR0 ldr x1, [x0,600] strh wzr, [x1,x26] ldr x1, [x0,600] ldrh w1, [x1,x26] - cbnz w1, .L1116 + cbnz w1, .L1119 ldr x0, [x0,584] add x22, x0, x22, lsl 2 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L1117 + tbz x0, 8, .L1120 ldrb w2, [x22,2] adrp x0, .LC109 add x0, x0, :lo12:.LC109 mov w1, w19 ubfx x2, x2, 5, 3 bl printk -.L1117: +.L1120: ldrb w0, [x22,2] tst w0, 192 - beq .L1130 + beq .L1133 and w0, w0, 224 cmp w0, 224 - bne .L1118 -.L1130: + bne .L1121 +.L1133: adrp x0, .LC0 mov x1, x21 mov w2, 1115 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1118: +.L1121: mov w0, w19 add x25, x25, :lo12:.LANCHOR0 bl ftl_free_sblk ldr x2, [x25,608] ldrh w1, [x2,124] - cbz w1, .L1120 - mov x0, 0 -.L1122: - add x4, x2, x0, lsl 1 - mov w3, w0 - ldrh w4, [x4,392] - cmp w4, w19 - bne .L1121 - add x0, x2, x3, sxtw 1 - mov w3, -1 - strh w3, [x0,392] - sub w1, w1, #1 - strh w1, [x2,124] - b .L1120 -.L1121: - add x0, x0, 1 - cmp x0, 64 - bne .L1122 -.L1120: - ldrh w1, [x2,120] cbz w1, .L1123 mov x0, 0 .L1125: add x4, x2, x0, lsl 1 mov w3, w0 - ldrh w4, [x4,136] + ldrh w4, [x4,392] cmp w4, w19 bne .L1124 add x0, x2, x3, sxtw 1 mov w3, -1 - strh w3, [x0,136] + strh w3, [x0,392] sub w1, w1, #1 - strh w1, [x2,120] + strh w1, [x2,124] b .L1123 .L1124: add x0, x0, 1 cmp x0, 64 bne .L1125 .L1123: - ldrh w1, [x2,122] + ldrh w1, [x2,120] cbz w1, .L1126 mov x0, 0 .L1128: add x4, x2, x0, lsl 1 mov w3, w0 - ldrh w4, [x4,264] + ldrh w4, [x4,136] cmp w4, w19 bne .L1127 add x0, x2, x3, sxtw 1 mov w3, -1 - strh w3, [x0,264] + strh w3, [x0,136] sub w1, w1, #1 - strh w1, [x2,122] + strh w1, [x2,120] b .L1126 .L1127: add x0, x0, 1 cmp x0, 64 bne .L1128 - b .L1126 -.L1116: +.L1126: + ldrh w1, [x2,122] + cbz w1, .L1129 + mov x0, 0 +.L1131: + add x4, x2, x0, lsl 1 + mov w3, w0 + ldrh w4, [x4,264] + cmp w4, w19 + bne .L1130 + add x0, x2, x3, sxtw 1 + mov w3, -1 + strh w3, [x0,264] + sub w1, w1, #1 + strh w1, [x2,122] + b .L1129 +.L1130: + add x0, x0, 1 + cmp x0, 64 + bne .L1131 + b .L1129 +.L1119: mov w0, w19 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L1126: +.L1129: add w20, w20, 1 uxth w20, w20 - b .L1114 -.L1152: + b .L1117 +.L1155: strh wzr, [x24,56] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -7430,47 +7398,47 @@ ftl_write_buf: stp x19, x20, [sp,16] str x21, [sp,32] mov x20, x0 - cbnz x0, .L1155 + cbnz x0, .L1158 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 676 - add x1, x1, 1488 + add x1, x1, 1528 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl print_ftl_debug_info mov w0, -1 - b .L1164 -.L1155: + b .L1167 +.L1158: adrp x19, .LANCHOR0 ldrb w1, [x20,56] add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2848] cmp w1, w0 - bls .L1160 + bls .L1163 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 681 - add x1, x1, 1488 + add x1, x1, 1528 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1160: +.L1163: ldrb w0, [x20,56] - cbz w0, .L1157 + cbz w0, .L1160 add x21, x19, :lo12:.LANCHOR0 ldrb w1, [x21,2848] cmp w1, w0 - bcs .L1158 -.L1157: + bcs .L1161 +.L1160: mov x0, x20 add x19, x19, :lo12:.LANCHOR0 bl zbuf_free ldrb w0, [x19,2872] - b .L1164 -.L1158: + b .L1167 +.L1161: add x0, x21, 2904 mov x1, x20 bl buf_add_tail @@ -7487,7 +7455,7 @@ ftl_write_buf: add w1, w1, 1 str w1, [x0,32] mov w0, w2 -.L1164: +.L1167: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -7508,12 +7476,12 @@ ftl_write_completed: mov x21, x19 mov w23, 0 mov x22, x20 -.L1166: +.L1169: adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 ldrb w3, [x0,-174] cmp w3, 255 - beq .L1175 + beq .L1178 lsl x1, x3, 6 add x24, x20, x1 add x4, x24, 32 @@ -7521,7 +7489,7 @@ ftl_write_completed: strb w1, [x0,-174] ldr w0, [x24,52] cmn w0, #1 - bne .L1167 + bne .L1170 ldrb w2, [x19,744] mov w0, 24 ldrh w1, [x19,3536] @@ -7541,11 +7509,11 @@ ftl_write_completed: cmp w5, w2 uxth w23, w1 and w1, w1, w2 - bne .L1168 + bne .L1171 str w1, [x0,560] ldr w2, [x4,8] str w2, [x0,564] -.L1168: +.L1171: add x3, x22, x3, lsl 6 adrp x0, .LC116 add x3, x3, 32 @@ -7559,22 +7527,22 @@ ftl_write_completed: str w1, [x0,556] ldrh w1, [x0,16] cmp w1, w23 - bne .L1169 + bne .L1172 strh wzr, [x0,22] - b .L1170 -.L1169: + b .L1173 +.L1172: ldrh w1, [x0,48] cmp w1, w23 - bne .L1170 + bne .L1173 strh wzr, [x0,54] -.L1170: +.L1173: mov x0, x24 mov w23, 1 bl ftl_write_buf - b .L1166 -.L1167: + b .L1169 +.L1170: cmp w23, 1 - bne .L1172 + bne .L1175 ldr w1, [x4,4] adrp x0, .LC117 ldr w2, [x4,8] @@ -7582,8 +7550,8 @@ ftl_write_completed: bl printk mov x0, x24 bl ftl_write_buf - b .L1166 -.L1172: + b .L1169 +.L1175: ldr w0, [x4,4] ldr w1, [x4,12] ldrh w2, [x24,48] @@ -7591,16 +7559,16 @@ ftl_write_completed: ldrb w0, [x24,2] and w23, w0, 4 uxtb w23, w23 - cbz w23, .L1173 + cbz w23, .L1176 and w0, w0, -3 mov w23, 0 strb w0, [x24,2] - b .L1166 -.L1173: + b .L1169 +.L1176: mov x0, x24 bl zbuf_free - b .L1166 -.L1175: + b .L1169 +.L1178: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7615,32 +7583,32 @@ zftl_add_read_buf: add x29, sp, 0 stp x19, x20, [sp,16] mov x20, x0 - cbnz x0, .L1177 + cbnz x0, .L1180 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 972 - add x1, x1, 1504 + add x1, x1, 1544 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl print_ftl_debug_info - b .L1176 -.L1177: + b .L1179 +.L1180: ldrb w1, [x0,56] adrp x0, .LANCHOR0+2848 ldrb w0, [x0,#:lo12:.LANCHOR0+2848] cmp w1, w0 - bls .L1180 + bls .L1183 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 mov w2, 977 - add x1, x1, 1504 + add x1, x1, 1544 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1180: +.L1183: adrp x19, .LANCHOR3 mov x1, x20 add x19, x19, :lo12:.LANCHOR3 @@ -7649,7 +7617,7 @@ zftl_add_read_buf: ldrb w0, [x19,-172] add w0, w0, 1 strb w0, [x19,-172] -.L1176: +.L1179: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -7674,30 +7642,30 @@ ftl_alloc_sblk: uxth w19, w0 mov w0, 65535 cmp w19, w0 - beq .L1183 + beq .L1186 adrp x0, .LANCHOR0+584 ldr x21, [x0,#:lo12:.LANCHOR0+584] add x21, x21, x19, uxth 2 ldrb w0, [x21,2] tst w0, 224 - beq .L1184 + beq .L1187 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 836 - add x1, x1, 1528 + mov w2, 846 + add x1, x1, 1568 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1184: +.L1187: ldrb w1, [x21,2] bfi w1, w20, 5, 3 ubfx x2, x1, 3, 2 orr w0, w22, w2 bfi w1, w0, 3, 2 strb w1, [x21,2] - b .L1190 -.L1183: + b .L1193 +.L1186: adrp x21, .LC118 bl print_ftl_debug_info add x21, x21, :lo12:.LC118 @@ -7717,12 +7685,12 @@ ftl_alloc_sblk: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 846 - add x1, x1, 1528 + mov w2, 856 + add x1, x1, 1568 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1190: +.L1193: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -7762,13 +7730,13 @@ dump_sblk_queue: bl printk ldrb w19, [x20,2851] cmp w19, 255 - beq .L1192 + beq .L1195 add x20, x20, 800 sbfiz x19, x19, 6, 32 adrp x21, .LC120 add x19, x20, x19 add x21, x21, :lo12:.LC120 -.L1194: +.L1197: ldrb w1, [x19,1] mov x0, x21 ldrb w2, [x19,58] @@ -7776,11 +7744,11 @@ dump_sblk_queue: bl printk ldrb w19, [x19] cmp w19, 255 - beq .L1192 + beq .L1195 sbfiz x19, x19, 6, 32 add x19, x20, x19 - b .L1194 -.L1192: + b .L1197 +.L1195: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -7796,7 +7764,7 @@ queue_lun_state: mov w0, 0 ldrb w3, [x2,2851] cmp w3, 255 - beq .L1202 + beq .L1205 ldrb w4, [x2,744] mov w9, 24 ldrh w11, [x2,3536] @@ -7815,60 +7783,60 @@ queue_lun_state: uxth w4, w4 uxth w5, w5 and w6, w6, w8 - adrp x12, .L1205 + adrp x12, .L1208 and w10, w4, w10 and w6, w6, w5 add x2, x2, 800 - add x12, x12, :lo12:.L1205 -.L1208: + add x12, x12, :lo12:.L1208 +.L1211: add x13, x2, x3, lsl 6 ldr w7, [x13,40] lsr w0, w7, w9 and w0, w4, w0 cmp w0, w10 - bne .L1203 + bne .L1206 lsr w7, w7, w11 ldrb w0, [x13,58] and w7, w8, w7 and w7, w5, w7 cmp w7, w6 - bne .L1204 + bne .L1207 cmp w1, 1 - beq .L1206 - b .L1202 -.L1204: + beq .L1209 + b .L1205 +.L1207: cmp w1, 3 - bhi .L1203 + bhi .L1206 ldrb w7, [x12,w1,uxtw] - adr x13, .Lrtx1205 + adr x13, .Lrtx1208 add x7, x13, w7, sxtb #2 br x7 -.Lrtx1205: +.Lrtx1208: .section .rodata .align 0 .align 2 -.L1205: - .byte (.L1202 - .Lrtx1205) / 4 - .byte (.L1206 - .Lrtx1205) / 4 - .byte (.L1207 - .Lrtx1205) / 4 - .byte (.L1202 - .Lrtx1205) / 4 +.L1208: + .byte (.L1205 - .Lrtx1208) / 4 + .byte (.L1209 - .Lrtx1208) / 4 + .byte (.L1210 - .Lrtx1208) / 4 + .byte (.L1205 - .Lrtx1208) / 4 .text -.L1206: +.L1209: sub w7, w0, #7 and w7, w7, -3 uxtb w7, w7 - cbz w7, .L1203 - b .L1202 -.L1207: + cbz w7, .L1206 + b .L1205 +.L1210: cmp w0, 11 - bne .L1202 -.L1203: + bne .L1205 +.L1206: lsl x3, x3, 6 ldrb w3, [x2,x3] cmp w3, 255 - bne .L1208 + bne .L1211 mov w0, 0 -.L1202: +.L1205: ret .size queue_lun_state, .-queue_lun_state .align 2 @@ -7887,9 +7855,9 @@ queue_remove_completed_req: ldrb w10, [x1,-171] ldrb w9, [x4,3552] ldrb w11, [x1,-174] -.L1218: +.L1221: cmp w8, 255 - beq .L1219 + beq .L1222 sbfiz x7, x8, 6, 32 sxtw x1, w8 add x2, x6, x7 @@ -7897,64 +7865,64 @@ queue_remove_completed_req: sub w2, w2, #12 uxtb w2, w2 cmp w2, 1 - bls .L1220 - cbz w5, .L1217 + bls .L1223 + cbz w5, .L1220 strb w8, [x4,2851] - b .L1217 -.L1220: + b .L1220 +.L1223: lsl x5, x1, 6 ldrb w8, [x6,x7] add x2, x6, x5 strb w12, [x6,x5] ldrb w5, [x2,59] cmp w5, 1 - bne .L1223 + bne .L1226 ldrh w2, [x2,50] - cbnz w2, .L1231 + cbnz w2, .L1234 mov w2, w11 sub x5, x3, #174 - b .L1224 -.L1223: - cbz w5, .L1241 -.L1225: + b .L1227 +.L1226: + cbz w5, .L1244 +.L1228: mov w5, 1 - b .L1218 -.L1241: + b .L1221 +.L1244: ldr w2, [x2,36] cmn w2, #1 - beq .L1225 + beq .L1228 mov w2, w10 sub x5, x3, #171 - b .L1224 -.L1231: + b .L1227 +.L1234: mov w2, w9 add x5, x4, 3552 -.L1224: +.L1227: cmp w2, 255 - bne .L1229 + bne .L1232 add x0, x0, :lo12:.LANCHOR0 add x1, x0, x1, lsl 6 strb w8, [x0,2851] ldrb w0, [x1,801] strb w0, [x5] - b .L1217 -.L1229: + b .L1220 +.L1232: mov w5, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x6,x2] cmp w2, 255 - bne .L1229 + bne .L1232 add x1, x6, x1, lsl 6 sbfiz x5, x5, 6, 32 ldrb w1, [x1,1] strb w1, [x6,x5] - b .L1225 -.L1219: - cbz w5, .L1217 + b .L1228 +.L1222: + cbz w5, .L1220 add x0, x0, :lo12:.LANCHOR0 mov w1, -1 strb w1, [x0,2851] -.L1217: +.L1220: ret .size queue_remove_completed_req, .-queue_remove_completed_req .align 2 @@ -7975,16 +7943,16 @@ pm_alloc_new_blk: ldrb w1, [x3,3572] strh w0, [x2,690] cmp w1, w0 - bls .L1243 + bls .L1246 add x0, x2, x0, sxtw 1 ldrh w1, [x0,672] mov w0, 65535 cmp w1, w0 - bne .L1244 -.L1243: + bne .L1247 +.L1246: adrp x22, .LC121 add x22, x22, :lo12:.LC121 -.L1256: +.L1259: mov w0, 1 add x20, x19, :lo12:.LANCHOR0 bl ftl_alloc_sblk @@ -7996,7 +7964,7 @@ pm_alloc_new_blk: add x1, x1, 672 bl ftl_get_blk_list_in_sblk uxth w0, w0 - cbnz w0, .L1245 + cbnz w0, .L1248 mov w1, w21 mov x0, x22 bl printk @@ -8005,8 +7973,8 @@ pm_alloc_new_blk: ldrb w2, [x1,2] orr w2, w2, -32 strb w2, [x1,2] - b .L1256 -.L1245: + b .L1259 +.L1248: ldr x1, [x20,2880] adrp x0, .LANCHOR3-168 mov w2, 1 @@ -8014,15 +7982,15 @@ pm_alloc_new_blk: str w2, [x0,#:lo12:.LANCHOR3-168] mov w2, 65535 strh wzr, [x1,690] -.L1247: +.L1250: add x3, x1, x20, lsl 1 uxth w0, w20 ldrh w3, [x3,416] cmp w3, w2 - beq .L1246 + beq .L1249 add x20, x20, 1 cmp x20, 128 - bne .L1247 + bne .L1250 adrp x0, .LC0 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 @@ -8031,7 +7999,7 @@ pm_alloc_new_blk: bl printk bl dump_stack mov w0, w20 -.L1246: +.L1249: add x1, x19, :lo12:.LANCHOR0 ldr x1, [x1,2880] add x0, x1, x0, sxtw 1 @@ -8039,7 +8007,7 @@ pm_alloc_new_blk: ldrh w0, [x1,688] add w0, w0, 1 strh w0, [x1,688] -.L1244: +.L1247: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x0,2880] ldrh w0, [x1,690] @@ -8048,7 +8016,7 @@ pm_alloc_new_blk: mov w0, 65533 sub w1, w20, #1 cmp w0, w1, uxth - bcs .L1249 + bcs .L1252 adrp x0, .LC0 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 @@ -8056,7 +8024,7 @@ pm_alloc_new_blk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1249: +.L1252: add x19, x19, :lo12:.LANCHOR0 mov w0, 24 ldrb w2, [x19,744] @@ -8070,7 +8038,7 @@ pm_alloc_new_blk: strh w4, [x1,694] adrp x1, .LANCHOR2 ldr w1, [x1,#:lo12:.LANCHOR2] - tbz x1, 12, .L1253 + tbz x1, 12, .L1256 mov w2, 1 mov w1, w20 lsl w2, w2, w0 @@ -8080,7 +8048,7 @@ pm_alloc_new_blk: mov w3, w20 uxth w4, w4 bl printk -.L1253: +.L1256: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -8099,57 +8067,57 @@ pm_select_ram_region: str x19, [sp,16] add x2, x2, :lo12:.LANCHOR3 mov x19, 0 -.L1260: +.L1263: sub x1, x2, #160 lsl x4, x19, 4 uxth w0, w19 ldrh w4, [x4,x1] cmp w4, w3 - beq .L1259 + beq .L1262 add x19, x19, 1 cmp x19, 32 - bne .L1260 + bne .L1263 mov x0, 0 mov w3, 32768 -.L1262: +.L1265: add x2, x1, x0, lsl 4 uxth w4, w0 ldrh w2, [x2,2] - tbnz x2, 15, .L1261 + tbnz x2, 15, .L1264 cmp w2, w3 - bcs .L1261 + bcs .L1264 mov w3, w2 mov w19, w4 -.L1261: +.L1264: add x0, x0, 1 cmp x0, 32 - bne .L1262 + bne .L1265 cmp w19, 32 mov w0, w19 - bne .L1259 + bne .L1262 adrp x0, .LANCHOR3 mov w2, -1 add x0, x0, :lo12:.LANCHOR3 mov w1, 0 sub x0, x0, #160 ldrb w3, [x0,512] -.L1264: +.L1267: ldrh w5, [x0,2] cmp w5, w2 - bcs .L1263 + bcs .L1266 ldrh w4, [x0] cmp w4, w3 csel w2, w2, w5, eq cmp w4, w3 csel w19, w19, w1, eq -.L1263: +.L1266: add w1, w1, 1 add x0, x0, 16 uxth w1, w1 cmp w1, 32 - bne .L1264 + bne .L1267 cmp w19, 32 - bne .L1265 + bne .L1268 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -8158,9 +8126,9 @@ pm_select_ram_region: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1265: +.L1268: mov w0, w19 -.L1259: +.L1262: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8184,16 +8152,16 @@ flash_lsb_page_tbl_build: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - cbnz w0, .L1273 + cbnz w0, .L1276 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L1274: +.L1277: add x1, x2, 4 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1274 -.L1280: + bne .L1277 +.L1283: adrp x20, .LANCHOR3 mov w1, 255 add x20, x20, :lo12:.LANCHOR3 @@ -8203,39 +8171,39 @@ flash_lsb_page_tbl_build: mov x0, x20 bl ftl_memset mov x0, 0 - b .L1275 -.L1273: + b .L1278 +.L1276: cmp w0, 1 - bne .L1276 + bne .L1279 mov x0, 0 mov w4, 3 mov w5, 2 add x3, x19, :lo12:.LANCHOR0 -.L1279: +.L1282: cmp x0, 3 uxth w2, w0 mov w1, w2 - bls .L1277 + 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 -.L1277: +.L1280: add x2, x3, 4 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1279 - b .L1280 -.L1276: + bne .L1282 + b .L1283 +.L1279: cmp w0, 2 - bne .L1281 + bne .L1284 mov w1, 65535 mov x0, 0 add x4, x19, :lo12:.LANCHOR0 -.L1283: +.L1286: add x3, x4, 4 cmp x0, 1 uxth w2, w0 @@ -8245,36 +8213,36 @@ flash_lsb_page_tbl_build: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L1283 - b .L1280 -.L1281: + bne .L1286 + b .L1283 +.L1284: cmp w0, 3 - bne .L1284 + bne .L1287 mov x0, 0 mov w4, 5 mov w5, 4 add x3, x19, :lo12:.LANCHOR0 -.L1287: +.L1290: cmp x0, 5 uxth w2, w0 mov w1, w2 - bls .L1285 + 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 -.L1285: +.L1288: add x2, x3, 4 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1287 - b .L1280 -.L1284: + bne .L1290 + b .L1283 +.L1287: cmp w0, 4 - bne .L1288 + bne .L1291 add x2, x19, :lo12:.LANCHOR0 mov w5, 7 add x1, x2, 4 @@ -8294,7 +8262,7 @@ flash_lsb_page_tbl_build: strh w0, [x1,14] mov w0, 8 strh w2, [x1,6] -.L1290: +.L1293: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w0, w0, 1 @@ -8305,43 +8273,43 @@ flash_lsb_page_tbl_build: sub w2, w2, w3 cmp w0, 256 strh w2, [x1,14] - bne .L1290 - b .L1280 -.L1288: - cmp w0, 5 - bne .L1291 - mov x0, 0 - add x2, x19, :lo12:.LANCHOR0 -.L1292: - add x1, x2, 4 - strh w0, [x1,x0,lsl 1] - add x0, x0, 1 - cmp x0, 16 - bne .L1292 - mov x0, 0 -.L1293: - add x2, x1, x0 - add w3, w0, 16 - add x0, x0, 2 - cmp x0, 480 - strh w3, [x2,32] bne .L1293 - b .L1280 + b .L1283 .L1291: - cmp w0, 8 + cmp w0, 5 bne .L1294 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 .L1295: + add x1, x2, 4 + strh w0, [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 .L1295 - b .L1280 -.L1294: + bne .L1298 + b .L1283 +.L1297: cmp w0, 9 - bne .L1280 + bne .L1299 add x0, x19, :lo12:.LANCHOR0 add x1, x0, 4 strh wzr, [x0,4] @@ -8350,21 +8318,41 @@ flash_lsb_page_tbl_build: mov w0, 2 strh w0, [x1,4] mov x0, 0 -.L1296: +.L1300: add x2, x1, x0 add w3, w0, 3 add x0, x0, 2 cmp x0, 506 strh w3, [x2,6] - bne .L1296 - b .L1280 -.L1275: + 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: add x1, x19, 4 ldrh w1, [x0,x1] add x0, x0, 2 cmp x0, 512 strh w1, [x20,w1,sxtw 1] - bne .L1275 + bne .L1278 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8382,14 +8370,14 @@ flash_die_info_init: ldr w0, [x19,#:lo12:.LANCHOR2] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L1314 + tbz x0, 12, .L1322 adrp x1, .LANCHOR4 adrp x0, .LC4 add x1, x1, :lo12:.LANCHOR4 add x0, x0, :lo12:.LC4 add x1, x1, 48 bl printk -.L1314: +.L1322: add x24, x19, :lo12:.LANCHOR2 adrp x21, .LANCHOR0 add x20, x21, :lo12:.LANCHOR0 @@ -8414,14 +8402,14 @@ flash_die_info_init: mov w1, 0 mov w2, 32 bl ftl_memset -.L1316: +.L1324: add x0, x20, 752 ldrb w2, [x24,8] add x1, x28, x23, lsl 3 strb w26, [x23,x0] mov x0, x27 bl flash_mem_cmp8 - cbnz w0, .L1315 + cbnz w0, .L1323 ldrb w1, [x20,633] add x2, x25, 1384 str w0, [x2,w1,sxtw 2] @@ -8431,16 +8419,16 @@ flash_die_info_init: add x1, x20, x1, sxtw strb w0, [x1,736] bl zftl_flash_enter_slc_mode -.L1315: +.L1323: add x23, x23, 1 cmp x23, 4 - bne .L1316 + bne .L1324 add x0, x19, :lo12:.LANCHOR2 add x1, x0, 8 ldrb w2, [x1,8] cmp w2, 2 - beq .L1317 -.L1321: + beq .L1325 +.L1329: add x19, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR3 @@ -8457,7 +8445,7 @@ flash_die_info_init: ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 ret -.L1317: +.L1325: add x23, x21, :lo12:.LANCHOR0 ldrh w20, [x1,14] ldrb w26, [x0,8] @@ -8472,7 +8460,7 @@ flash_die_info_init: ldrb w2, [x1,13] mul w20, w20, w2 lsl w28, w20, 1 -.L1320: +.L1328: add x1, x3, x24, lsl 3 mov x0, x25 mov w2, w26 @@ -8481,7 +8469,7 @@ flash_die_info_init: bl flash_mem_cmp8 ldr x3, [x29,104] ldr x4, [x29,96] - cbnz w0, .L1318 + cbnz w0, .L1326 ldrb w0, [x23,633] add x1, x4, 1384 cmp w27, wzr @@ -8491,11 +8479,11 @@ flash_die_info_init: add x0, x23, x0, sxtw strb w1, [x23,633] strb w24, [x0,736] -.L1318: +.L1326: add x24, x24, 1 cmp x24, 4 - bne .L1320 - b .L1321 + bne .L1328 + b .L1329 .size flash_die_info_init, .-flash_die_info_init .align 2 .global lpa_hash_init @@ -8531,7 +8519,7 @@ lpa_rebuild_hash: add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2] stp x19, x20, [sp,16] - tbz x0, 12, .L1332 + tbz x0, 12, .L1340 adrp x1, .LANCHOR4 adrp x0, .LC123 add x1, x1, :lo12:.LANCHOR4 @@ -8540,7 +8528,7 @@ lpa_rebuild_hash: mov w2, 225 mov w3, 0 bl printk -.L1332: +.L1340: adrp x19, .LANCHOR0 mov w1, 255 add x19, x19, :lo12:.LANCHOR0 @@ -8557,29 +8545,29 @@ lpa_rebuild_hash: lsl w2, w2, 2 bl ftl_memset mov w0, 0 -.L1333: +.L1341: ldrh w1, [x19,3596] ldrb w2, [x19,3572] mul w1, w1, w2 cmp w0, w1, lsl 1 - bge .L1342 + bge .L1350 add x3, x20, :lo12:.LANCHOR3 uxtw x2, w0 ldr x1, [x3,-200] ldr w1, [x1,x2,lsl 2] cmn w1, #1 - beq .L1334 + beq .L1342 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] -.L1334: +.L1342: add w0, w0, 1 uxth w0, w0 - b .L1333 -.L1342: + b .L1341 +.L1350: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8618,9 +8606,9 @@ zftl_read_flash_info: strb w1, [x19,9] mov x1, 0 strb w2, [x19,8] -.L1344: +.L1352: cmp w4, w1, uxtb - bls .L1346 + bls .L1354 add x2, x0, 736 ldrb w3, [x19,10] ldrb w2, [x1,x2] @@ -8628,8 +8616,8 @@ zftl_read_flash_info: lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L1344 -.L1346: + b .L1352 +.L1354: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -8727,9 +8715,9 @@ gc_static_wearleveling: ldr w1, [x0,32] mov w0, 10240 cmp w1, w0 - bls .L1349 + bls .L1357 bl ftl_tmp_into_update -.L1349: +.L1357: add x3, x19, :lo12:.LANCHOR0 ldr x0, [x3,608] ldr w1, [x0,568] @@ -8737,14 +8725,14 @@ gc_static_wearleveling: add w1, w1, 860160 add w1, w1, 3840 cmp w2, w1 - bhi .L1350 + bhi .L1358 ldr x3, [x3,2880] ldr w1, [x0,572] ldr w3, [x3,36] add w1, w1, 32 cmp w3, w1 - bls .L1401 -.L1350: + bls .L1409 +.L1358: add x1, x19, :lo12:.LANCHOR0 mov w22, 0 mov w20, 65535 @@ -8765,11 +8753,11 @@ gc_static_wearleveling: adrp x9, .LANCHOR2 add x27, x27, :lo12:.LC124 ldrh w23, [x1,134] -.L1352: +.L1360: add x4, x19, :lo12:.LANCHOR0 ldrh w0, [x4,576] cmp w0, w23 - bls .L1462 + bls .L1470 uxtw x7, w23 ldr x0, [x4,584] lsl x1, x7, 2 @@ -8777,70 +8765,70 @@ gc_static_wearleveling: ldrb w2, [x6,2] and w3, w2, 224 cmp w3, 224 - beq .L1353 - tbz x2, 3, .L1354 + beq .L1361 + tbz x2, 3, .L1362 ldrh w3, [x0,x1] ldr w2, [x0,x1] and w3, w3, 2047 ubfx x2, x2, 11, 8 - b .L1355 -.L1354: + b .L1363 +.L1362: tst w2, 24 - bne .L1356 + bne .L1364 ldrh w3, [x0,x1] mov w2, 65535 and w3, w3, 2047 - b .L1355 -.L1356: + b .L1363 +.L1364: ldr w2, [x0,x1] mov w3, 65535 ubfx x2, x2, 11, 8 - b .L1357 -.L1355: + b .L1365 +.L1363: ldr w4, [x29,136] add w25, w25, 1 cmp w20, w3 add w4, w4, w3 str w4, [x29,136] uxth w25, w25 - bls .L1400 + bls .L1408 add x4, x19, :lo12:.LANCHOR0 mov w20, w3 ldr x4, [x4,608] strh w23, [x4,586] -.L1400: +.L1408: cmp w24, w3 - bcs .L1358 + bcs .L1366 mov w22, w23 mov w24, w3 -.L1358: +.L1366: cmp w2, w8 - beq .L1359 -.L1357: + beq .L1367 +.L1365: ldr w4, [x29,140] add w26, w26, 1 cmp w21, w2 add w4, w4, w2 str w4, [x29,140] uxth w26, w26 - bls .L1360 + bls .L1368 add x4, x19, :lo12:.LANCHOR0 mov w21, w2 ldr x4, [x4,608] strh w23, [x4,584] -.L1360: +.L1368: cmp w28, w2 - bcs .L1359 + bcs .L1367 str w23, [x29,128] mov w28, w2 -.L1359: +.L1367: cmp w3, 9 - bls .L1403 + bls .L1411 cmp w2, 9 - bhi .L1353 -.L1403: + bhi .L1361 +.L1411: ldr w2, [x9,#:lo12:.LANCHOR2] - tbz x2, 8, .L1353 + tbz x2, 8, .L1361 ldrh w2, [x0,x1] ldr w3, [x0,x1] add x0, x19, :lo12:.LANCHOR0 @@ -8859,11 +8847,11 @@ gc_static_wearleveling: bl printk ldr x9, [x29,112] ldr x8, [x29,120] -.L1353: +.L1361: add w23, w23, 1 uxth w23, w23 - b .L1352 -.L1462: + b .L1360 +.L1470: ldr x0, [x4,608] mov w1, 255 mov w2, 128 @@ -8880,7 +8868,7 @@ gc_static_wearleveling: lsl x0, x7, 2 mov x1, x7 add x8, x3, x0 - tbz x2, 10, .L1363 + tbz x2, 10, .L1371 ldr x9, [x4,600] ldrh w2, [x3,x0] ldrb w5, [x8,2] @@ -8896,27 +8884,27 @@ gc_static_wearleveling: str x8, [x29,120] bl printk ldr x8, [x29,120] -.L1363: +.L1371: ldrb w0, [x8,2] adrp x27, .LANCHOR3 and w0, w0, 224 cmp w0, 32 - bne .L1364 + bne .L1372 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2880] ldrh w0, [x0,688] cmp w0, 2 - bls .L1364 + bls .L1372 add x0, x27, :lo12:.LANCHOR3 mov w1, 1 str w1, [x0,1448] -.L1364: +.L1372: ldrb w0, [x8,2] - tbz x0, 3, .L1365 + tbz x0, 3, .L1373 ldrb w0, [x8,2] and w1, w0, 192 cmp w1, 64 - bne .L1366 + bne .L1374 add x3, x19, :lo12:.LANCHOR0 mov w1, 0 mov w2, 1 @@ -8927,21 +8915,21 @@ gc_static_wearleveling: ldr x3, [x29,120] mov w0, 1 strh w0, [x3,3486] - b .L1365 -.L1366: + b .L1373 +.L1374: tst w0, 224 - bne .L1365 + bne .L1373 add x2, x19, :lo12:.LANCHOR0 mov w0, 65535 ldr x1, [x2,608] ldrh w3, [x1,590] cmp w3, w0 - bne .L1365 + bne .L1373 ldrh w0, [x1,586] ldrh w1, [x1,588] str x2, [x29,120] cmp w1, w0 - beq .L1365 + beq .L1373 bl zftl_remove_free_node ldr x2, [x29,120] ldr x0, [x2,608] @@ -8949,7 +8937,7 @@ gc_static_wearleveling: strh w1, [x0,590] mov w1, -1 strh w1, [x0,586] -.L1365: +.L1373: add x0, x19, :lo12:.LANCHOR0 ldr w2, [x23,#:lo12:.LANCHOR2] ldr x1, [x0,608] @@ -8958,7 +8946,7 @@ gc_static_wearleveling: lsl x3, x7, 2 mov x1, x7 add x8, x4, x3 - tbz x2, 10, .L1367 + tbz x2, 10, .L1375 ldr x9, [x0,600] adrp x0, .LC126 ldrh w2, [x4,x3] @@ -8974,13 +8962,13 @@ gc_static_wearleveling: str x8, [x29,120] bl printk ldr x8, [x29,120] -.L1367: +.L1375: ldrb w0, [x8,2] - tbz x0, 3, .L1368 + tbz x0, 3, .L1376 ldrb w0, [x8,2] and w1, w0, 192 cmp w1, 64 - bne .L1369 + bne .L1377 add x3, x19, :lo12:.LANCHOR0 mov w1, 0 mov w2, 1 @@ -8991,22 +8979,22 @@ gc_static_wearleveling: ldr x3, [x29,120] mov w0, 1 strh w0, [x3,3486] - b .L1368 -.L1369: + b .L1376 +.L1377: and w0, w0, 248 cmp w0, 16 - bne .L1368 + bne .L1376 add x2, x19, :lo12:.LANCHOR0 mov w0, 65535 ldr x1, [x2,608] ldrh w3, [x1,588] cmp w3, w0 - bne .L1368 + bne .L1376 ldrh w0, [x1,584] ldrh w1, [x1,590] str x2, [x29,120] cmp w1, w0 - beq .L1368 + beq .L1376 bl zftl_remove_free_node ldr x2, [x29,120] ldr x0, [x2,608] @@ -9014,11 +9002,11 @@ gc_static_wearleveling: strh w1, [x0,588] mov w1, -1 strh w1, [x0,584] -.L1368: +.L1376: add x4, x19, :lo12:.LANCHOR0 ldr w0, [x23,#:lo12:.LANCHOR2] ldr x1, [x4,584] - tbz x0, 10, .L1370 + tbz x0, 10, .L1378 uxtw x7, w22 ldr x8, [x4,600] lsl x0, x7, 2 @@ -9036,11 +9024,11 @@ gc_static_wearleveling: ubfx x3, x3, 11, 8 ubfx x5, x5, 5, 3 bl printk -.L1370: +.L1378: add x4, x19, :lo12:.LANCHOR0 ldr w0, [x23,#:lo12:.LANCHOR2] ldr x1, [x4,584] - tbz x0, 10, .L1371 + tbz x0, 10, .L1379 ldr w7, [x29,128] ldr x8, [x4,600] lsl x0, x7, 2 @@ -9058,7 +9046,7 @@ gc_static_wearleveling: ubfx x3, x3, 11, 8 ubfx x5, x5, 5, 3 bl printk -.L1371: +.L1379: ldr w1, [x29,136] add x0, x19, :lo12:.LANCHOR0 udiv w3, w1, w25 @@ -9072,7 +9060,7 @@ gc_static_wearleveling: strh w3, [x0,88] strh w4, [x0,90] ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 10, .L1372 + tbz x0, 10, .L1380 adrp x0, .LC129 mov w1, w25 add x0, x0, :lo12:.LC129 @@ -9080,9 +9068,9 @@ gc_static_wearleveling: uxth w3, w3 uxth w4, w4 bl printk -.L1372: +.L1380: ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 10, .L1373 + tbz x0, 10, .L1381 add x6, x27, :lo12:.LANCHOR3 adrp x0, .LC130 add x0, x0, :lo12:.LC130 @@ -9093,19 +9081,19 @@ gc_static_wearleveling: mov w4, w28 ldrh w6, [x6,1454] bl printk -.L1373: +.L1381: add x1, x27, :lo12:.LANCHOR3 sub w0, w28, w21 str w0, [x29,140] ldrh w0, [x1,1454] ldr w2, [x29,140] cmp w2, w0 - bgt .L1374 + bgt .L1382 ldrh w1, [x1,1452] sub w0, w24, w20 cmp w0, w1 - ble .L1402 -.L1374: + ble .L1410 +.L1382: add x0, x19, :lo12:.LANCHOR0 mov w25, 0 mov w22, w25 @@ -9121,11 +9109,11 @@ gc_static_wearleveling: str x0, [x29,128] add x0, x24, :lo12:.LC131 str x0, [x29,120] -.L1376: +.L1384: add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x1,576] cmp w26, w0 - bcs .L1385 + bcs .L1393 add w7, w28, 1 ldr x4, [x1,584] uxth w28, w7 @@ -9137,31 +9125,31 @@ gc_static_wearleveling: ldrb w0, [x0,2] and w2, w0, 224 cmp w2, 224 - beq .L1378 + beq .L1386 tst w0, 192 - beq .L1378 + beq .L1386 ubfx x0, x0, 3, 2 cmp w2, 160 and w1, w0, 1 - tbnz x0, 0, .L1460 + tbnz x0, 0, .L1468 cmp w0, 2 -.L1460: +.L1468: add x0, x27, :lo12:.LANCHOR3 - bne .L1381 + bne .L1389 ldrh w0, [x0,1454] ldr w2, [x29,140] cmp w2, w0 - ble .L1382 + ble .L1390 ldr w0, [x4,x3] ubfx x0, x0, 11, 8 cmp w0, w21 - bls .L1383 - cbz w1, .L1382 + bls .L1391 + cbz w1, .L1390 ldrh w0, [x4,x3] and w0, w0, 2047 cmp w0, w20 - bgt .L1382 -.L1383: + bgt .L1390 +.L1391: mov w1, 0 mov w0, w28 mov w2, 1 @@ -9176,7 +9164,7 @@ gc_static_wearleveling: ldr x4, [x29,104] strh w1, [x0,3486] ldr w1, [x23,#:lo12:.LANCHOR2] - tbz x1, 10, .L1382 + tbz x1, 10, .L1390 ldr x1, [x0,584] ldr x10, [x0,600] add x1, x1, x3 @@ -9184,24 +9172,24 @@ gc_static_wearleveling: ldr w6, [x4,x3] ldr x0, [x29,120] ldrb w2, [x1,2] - b .L1461 -.L1381: + b .L1469 +.L1389: ldrh w0, [x0,1452] ldr w2, [x29,136] cmp w2, w0 - ble .L1382 + ble .L1390 ldrh w0, [x4,x3] add w2, w20, 8 and w0, w0, 2047 cmp w0, w2 - ble .L1384 - cbz w1, .L1382 + ble .L1392 + cbz w1, .L1390 ldr w0, [x4,x3] add w1, w21, 4 ubfx x0, x0, 11, 8 cmp w0, w1 - bgt .L1382 -.L1384: + bgt .L1390 +.L1392: mov w1, 0 mov w0, w28 mov w2, 1 @@ -9216,7 +9204,7 @@ gc_static_wearleveling: ldr x4, [x29,104] strh w1, [x0,3486] ldr w1, [x23,#:lo12:.LANCHOR2] - tbz x1, 10, .L1382 + tbz x1, 10, .L1390 ldr x1, [x0,584] ldr x10, [x0,600] add x1, x1, x3 @@ -9224,7 +9212,7 @@ gc_static_wearleveling: ldr w6, [x4,x3] ldr x0, [x29,128] ldrb w2, [x1,2] -.L1461: +.L1469: ldrh w3, [x10,x24,lsl 1] mov w1, w28 ldrh w4, [x9,56] @@ -9232,122 +9220,122 @@ gc_static_wearleveling: and w5, w5, 2047 ubfx x6, x6, 11, 8 bl printk -.L1382: +.L1390: cmp w25, 4 - bhi .L1385 + bhi .L1393 cmp w22, 4 - bhi .L1385 -.L1378: + bhi .L1393 +.L1386: add w26, w26, 1 uxth w26, w26 - b .L1376 -.L1385: + b .L1384 +.L1393: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,608] str w28, [x0,580] - b .L1375 -.L1402: + b .L1383 +.L1410: mov w25, 0 mov w22, w25 -.L1375: - cbz w21, .L1388 +.L1383: + cbz w21, .L1396 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2880] ldrh w0, [x0,134] -.L1389: +.L1397: add x1, x19, :lo12:.LANCHOR0 ldrh w2, [x1,576] cmp w2, w0 - bls .L1463 + bls .L1471 ubfiz x3, x0, 2, 16 ldr x4, [x1,584] add x5, x4, x3 ldr w1, [x4,x3] ubfx x2, x1, 11, 8 cmp w2, w21 - bcc .L1390 + bcc .L1398 ldrb w5, [x5,2] tst w5, 24 - beq .L1390 + beq .L1398 sub w2, w2, w21 bfi w1, w2, 11, 8 str w1, [x4,x3] -.L1390: +.L1398: add w0, w0, 1 uxth w0, w0 - b .L1389 -.L1463: + b .L1397 +.L1471: ldr x0, [x1,2880] ldrh w1, [x0,72] add w1, w21, w1 strh w1, [x0,72] ldrh w1, [x0,98] cmp w1, w21 - bls .L1388 + bls .L1396 sub w21, w1, w21 strh w21, [x0,98] -.L1388: - cbz w20, .L1394 +.L1396: + cbz w20, .L1402 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2880] ldrh w0, [x0,134] -.L1395: +.L1403: add x1, x19, :lo12:.LANCHOR0 ldrh w2, [x1,576] cmp w2, w0 - bls .L1464 + bls .L1472 ubfiz x3, x0, 2, 16 ldr x4, [x1,584] add x5, x4, x3 ldrh w1, [x4,x3] and w2, w1, 2047 cmp w2, w20 - blt .L1396 + blt .L1404 ldrb w5, [x5,2] and w5, w5, 24 cmp w5, 16 - beq .L1396 + beq .L1404 sub w2, w2, w20 bfi w1, w2, 0, 11 strh w1, [x4,x3] -.L1396: +.L1404: add w0, w0, 1 uxth w0, w0 - b .L1395 -.L1464: + b .L1403 +.L1472: ldr x0, [x1,2880] ldrh w1, [x0,74] add w1, w20, w1 strh w1, [x0,74] ldrh w1, [x0,96] cmp w1, w20 - bls .L1394 + bls .L1402 sub w20, w1, w20 strh w20, [x0,96] -.L1394: +.L1402: mov w1, 5 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L1351 + beq .L1359 add x19, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x2, [x19,600] ldrh w2, [x2,x1] ldrh w1, [x19,3596] cmp w2, w1 - bhi .L1351 + bhi .L1359 mov w1, 0 mov w2, 1 add w22, w22, 1 bl gc_add_sblk - b .L1351 -.L1401: + b .L1359 +.L1409: mov w25, 0 mov w22, w25 -.L1351: +.L1359: add w0, w25, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9403,52 +9391,52 @@ zftl_sblk_list_init: ldr x0, [x19,2880] ldrsh w19, [x0,134] strh wzr, [x0,146] -.L1466: +.L1474: add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x0,576] cmp w19, w1 - bge .L1496 + 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, .L1467 + cbz w2, .L1475 ldrb w5, [x0,3572] ldrh w6, [x0,3570] ldr x4, [x0,2880] mov w0, 0 mov w1, w0 -.L1468: +.L1476: cmp w0, w5 - bge .L1497 + bge .L1505 ldrb w2, [x27,3] asr w2, w2, w0 - tbnz x2, 0, .L1469 + tbnz x2, 0, .L1477 add w1, w6, w1 sxth w1, w1 - b .L1470 -.L1469: + b .L1478 +.L1477: ldrh w2, [x4,146] add w2, w2, 1 strh w2, [x4,146] -.L1470: +.L1478: add w0, w0, 1 - b .L1468 -.L1497: - cbz w1, .L1472 + b .L1476 +.L1505: + cbz w1, .L1480 sdiv w1, w23, w1 add w1, w1, 1 sxth w1, w1 - b .L1467 -.L1472: + 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] -.L1467: +.L1475: add x20, x21, :lo12:.LANCHOR0 smull x0, w19, w24 ldr x2, [x20,528] @@ -9461,101 +9449,101 @@ zftl_sblk_list_init: ldrb w1, [x27,2] and w0, w1, 224 cmp w0, 224 - beq .L1475 + beq .L1483 cmp w0, 32 cset w28, eq - cbnz w28, .L1475 + cbnz w28, .L1483 ldr x2, [x20,608] ldrh w4, [x2,16] cmp w19, w4 - beq .L1475 + beq .L1483 ldrh w4, [x2,48] cmp w19, w4 - beq .L1475 + beq .L1483 ldrh w2, [x2,80] cmp w19, w2 - beq .L1475 + beq .L1483 cmp w0, 64 - bne .L1477 + bne .L1485 uxth w27, w19 add x0, x20, 616 mov w1, w27 add x2, x20, 2866 - b .L1494 -.L1477: + b .L1502 +.L1485: cmp w0, 96 - bne .L1478 + bne .L1486 uxth w27, w19 add x0, x20, 3584 mov w1, w27 add x2, x20, 2868 - b .L1494 -.L1478: + b .L1502 +.L1486: cmp w0, 160 - bne .L1479 + bne .L1487 uxth w27, w19 add x0, x20, 3576 mov w1, w27 add x2, x20, 2870 -.L1494: +.L1502: bl _insert_data_list ldr x0, [x20,600] ldrh w0, [x0,x22,lsl 1] cmp w0, 7 - bhi .L1475 + bhi .L1483 mov w0, w27 mov w1, 1 mov w2, w28 - b .L1492 -.L1479: - cbnz w0, .L1475 + b .L1500 +.L1487: + cbnz w0, .L1483 ldr x0, [x20,600] ldrh w2, [x0,x22,lsl 1] - cbz w2, .L1480 + cbz w2, .L1488 mov x0, x26 mov w1, w19 bl printk ldrb w0, [x27,2] - tbz x0, 4, .L1481 + tbz x0, 4, .L1489 mov w1, 5 - b .L1488 -.L1481: + b .L1496 +.L1489: mov w1, 2 -.L1488: +.L1496: bfi w0, w1, 5, 3 mov w2, 0 strb w0, [x27,2] mov w1, 1 mov w0, w19 -.L1492: +.L1500: bl gc_add_sblk - b .L1475 -.L1480: + b .L1483 +.L1488: ands w1, w1, 24 add x2, x21, :lo12:.LANCHOR0 - bne .L1483 + bne .L1491 add x0, x2, 3608 mov w1, w19 add x2, x2, 2860 - b .L1490 -.L1483: + b .L1498 +.L1491: cmp w1, 16 - bne .L1484 + bne .L1492 add x0, x2, 3616 mov w1, w19 add x2, x2, 2862 - b .L1490 -.L1484: + b .L1498 +.L1492: add x0, x2, 3624 mov w1, w19 add x2, x2, 2864 -.L1490: +.L1498: bl _insert_free_list -.L1475: +.L1483: add w19, w19, 1 sxth w19, w19 - b .L1466 -.L1496: + b .L1474 +.L1504: ldr x1, [x0,2880] ldrh w2, [x0,2860] strh w2, [x1,114] @@ -9593,7 +9581,7 @@ pm_free_sblk: mov x19, x0 ldrh w1, [x1,1456] cmp w1, 128 - bls .L1499 + bls .L1507 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -9602,7 +9590,7 @@ pm_free_sblk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1499: +.L1507: adrp x21, .LANCHOR0 mov x1, 0 add x0, x21, :lo12:.LANCHOR0 @@ -9612,24 +9600,24 @@ pm_free_sblk: add x0, x19, :lo12:.LANCHOR3 ldrh w4, [x3,688] ldrh w5, [x0,1456] -.L1502: +.L1510: add x7, x3, x1, lsl 1 uxth w0, w1 ldrh w7, [x7,416] cmp w7, w6 - beq .L1500 + beq .L1508 add w2, w2, 1 uxth w2, w2 -.L1500: +.L1508: cmp w2, w4 - bcs .L1501 + bcs .L1509 cmp w2, w5 - bcs .L1501 + bcs .L1509 add x1, x1, 1 cmp x1, 128 - bne .L1502 + bne .L1510 mov w0, w1 -.L1501: +.L1509: add w0, w0, 1 mov w19, 128 add x23, x29, 112 @@ -9654,9 +9642,9 @@ pm_free_sblk: ldrh w7, [x4,698] lsl w2, w0, w2 sub w2, w2, #1 -.L1503: +.L1511: cmp w7, w3, uxth - bls .L1531 + bls .L1539 add x0, x4, x3, lsl 2 ldr w1, [x0,704] mov x0, 0 @@ -9664,23 +9652,23 @@ pm_free_sblk: and w1, w1, w2 udiv w1, w1, w8 uxth w1, w1 -.L1504: +.L1512: cmp w19, w0, uxth - bls .L1532 + bls .L1540 add x5, x4, x0, lsl 1 ldrh w5, [x5,416] cmp w5, w1 - bne .L1505 + bne .L1513 ldrh w5, [x23,x0,lsl 1] add w5, w5, 1 strh w5, [x23,x0,lsl 1] -.L1505: +.L1513: add x0, x0, 1 - b .L1504 -.L1532: + b .L1512 +.L1540: add x3, x3, 1 - b .L1503 -.L1531: + b .L1511 +.L1539: add x1, x21, :lo12:.LANCHOR0 mov x20, 0 mov w28, 65535 @@ -9694,10 +9682,10 @@ pm_free_sblk: add x26, x26, :lo12:.LC135 mul w22, w0, w22 uxth w22, w22 -.L1508: +.L1516: uxth w5, w20 cmp w5, w19 - bcs .L1533 + bcs .L1541 add x2, x21, :lo12:.LANCHOR0 mov w7, w20 ldr x0, [x2,2880] @@ -9707,24 +9695,24 @@ pm_free_sblk: ldrh w1, [x0,692] sdiv w1, w1, w4 cmp w1, w3 - bne .L1509 + bne .L1517 ldrb w1, [x2,3572] ldrh w2, [x2,3596] mul w1, w1, w2 strh w1, [x23,x20,lsl 1] -.L1509: +.L1517: ldrh w2, [x23,x20,lsl 1] cmp w22, w2 - bls .L1510 + bls .L1518 cmp w2, wzr csel w24, w24, w5, eq csel w22, w22, w2, eq -.L1510: +.L1518: cmp w3, w27 - beq .L1512 + beq .L1520 ldrh w1, [x0,74] cmp w1, 2 - bls .L1512 + bls .L1520 add x4, x21, :lo12:.LANCHOR0 ubfiz x1, x3, 2, 16 ldrh w0, [x0,92] @@ -9733,7 +9721,7 @@ pm_free_sblk: ldrh w4, [x4,x1] and w4, w4, 2047 cmp w4, w0 - bgt .L1512 + bgt .L1520 mov w1, w7 mov x0, x25 str x5, [x29,96] @@ -9742,26 +9730,26 @@ pm_free_sblk: ldr x5, [x29,96] ldr x7, [x29,104] mov w28, w5 -.L1512: +.L1520: ldrh w2, [x23,x20,lsl 1] - cbnz w2, .L1513 + cbnz w2, .L1521 add x0, x21, :lo12:.LANCHOR0 sxtw x5, w7 ldr x4, [x0,2880] add x0, x5, 208 ldrh w3, [x4,x0,lsl 1] cmp w3, w27 - beq .L1513 + beq .L1521 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1514 + tbz x0, 12, .L1522 ldrh w4, [x4,688] mov x0, x26 mov w1, w7 str x5, [x29,104] bl printk ldr x5, [x29,104] -.L1514: +.L1522: add x1, x21, :lo12:.LANCHOR0 add x5, x5, 208 str x1, [x29,96] @@ -9777,10 +9765,10 @@ pm_free_sblk: ldrh w1, [x0,688] sub w1, w1, #1 strh w1, [x0,688] -.L1513: +.L1521: add x20, x20, 1 - b .L1508 -.L1533: + b .L1516 +.L1541: mov w0, 65535 cmp w28, w0 csel w0, w24, w28, eq @@ -9813,7 +9801,7 @@ flash_info_data_init: ldr w0, [x1,#:lo12:.LANCHOR2] stp x19, x20, [sp,16] mov x20, x1 - tbz x0, 12, .L1536 + tbz x0, 12, .L1544 adrp x2, .LANCHOR4 adrp x0, .LC136 add x2, x2, :lo12:.LANCHOR4 @@ -9821,7 +9809,7 @@ flash_info_data_init: mov w1, 105 add x2, x2, 112 bl printk -.L1536: +.L1544: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 @@ -9856,14 +9844,14 @@ flash_info_data_init: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L1541: +.L1549: cmp w2, w3 - bls .L1543 + bls .L1551 ldr w4, [x1,x3,lsl 2] str w4, [x0,x3,lsl 2] add x3, x3, 1 - b .L1541 -.L1543: + b .L1549 +.L1551: ret .size ftl_memcpy32, .-ftl_memcpy32 .align 2 @@ -9999,13 +9987,13 @@ flash_sram_load_store: add x29, sp, 0 ldr x4, [x4,#:lo12:.LANCHOR3+1480] add x4, x4, 4096 - cbnz w2, .L1551 + cbnz w2, .L1559 add x1, x4, x1 - b .L1553 -.L1551: + b .L1561 +.L1559: add x0, x4, x1 mov x1, x6 -.L1553: +.L1561: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -10171,72 +10159,20 @@ ReadFlashInfo: .global rknand_print_hex .type rknand_print_hex, %function rknand_print_hex: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -16]! + mul w6, w2, w3 + mov x7, x0 + mov w4, w2 + adrp x0, .LC138 + mov w2, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov x19, 0 - adrp x23, .LC138 - adrp x21, .LC139 - adrp x24, .LC1 - stp x25, x26, [sp,64] - str x27, [sp,80] - mov x22, x1 - mov x27, x0 - mov w25, w2 - uxtw x26, w3 - mov w20, w19 - add x23, x23, :lo12:.LC138 - add x21, x21, :lo12:.LC139 - add x24, x24, :lo12:.LC1 -.L1567: - cmp x19, x26 - beq .L1575 - cbnz w20, .L1568 - mov x0, x23 - mov x1, x27 - mov x2, x22 - mov w3, w19 - bl printk -.L1568: - cmp w25, 4 - mov x0, x21 - bne .L1569 - ldr w1, [x22,x19,lsl 2] - b .L1574 -.L1569: - cmp w25, 2 - bne .L1571 - ldrsh w1, [x22,x19,lsl 1] - b .L1574 -.L1571: - ldrb w1, [x22,x19] -.L1574: - bl printk - add w20, w20, 1 - cmp w20, 15 - bls .L1572 - adrp x1, .LC140 - mov x0, x24 - add x1, x1, :lo12:.LC140 - mov w20, 0 - bl printk -.L1572: - add x19, x19, 1 - b .L1567 -.L1575: - adrp x0, .LC1 - adrp x1, .LC140 - add x1, x1, :lo12:.LC140 - add x0, x0, :lo12:.LC1 - bl printk - 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], 96 + mov x5, x1 + add x0, x0, :lo12:.LC138 + mov x1, x7 + mov w3, 16 + mov w7, w2 + bl print_hex_dump + ldp x29, x30, [sp], 16 ret .size rknand_print_hex, .-rknand_print_hex .align 2 @@ -10267,29 +10203,29 @@ hynix_get_read_retry_default: strb w2, [x25,129] strb w1, [x25,130] strb w0, [x25,131] - bne .L1577 + bne .L1576 mov w0, -89 strb w0, [x22,16] adrp x0, .LANCHOR2+425 mov w1, -9 strb w1, [x0,#:lo12:.LANCHOR2+425] - b .L1640 -.L1577: + b .L1639 +.L1576: cmp w19, 3 - bne .L1579 + bne .L1578 mov x5, 0 -.L1580: +.L1579: sub w0, w5, #80 strb w0, [x26,x5] add x5, x5, 1 cmp x5, 8 - bne .L1580 + bne .L1579 mov w27, w5 mov w28, w5 - b .L1578 -.L1579: + b .L1577 +.L1578: cmp w19, 4 - bne .L1581 + bne .L1580 mov w5, -52 strb w5, [x25,128] mov w5, -65 @@ -10305,10 +10241,10 @@ hynix_get_read_retry_default: strb w1, [x25,134] strb w5, [x25,132] strb w0, [x25,135] - b .L1578 -.L1581: + b .L1577 +.L1580: cmp w19, 5 - bne .L1582 + bne .L1581 mov w0, 56 strb w0, [x25,128] mov w0, 57 @@ -10318,10 +10254,10 @@ hynix_get_read_retry_default: strb w0, [x25,130] mov w0, 59 strb w0, [x25,131] - b .L1682 -.L1582: + b .L1681 +.L1581: cmp w19, 6 - bne .L1583 + bne .L1582 mov w0, 14 strb w0, [x25,128] mov w0, 15 @@ -10331,27 +10267,27 @@ hynix_get_read_retry_default: strb w0, [x25,130] mov w0, 17 strb w0, [x25,131] - b .L1682 -.L1583: + b .L1681 +.L1582: cmp w19, 7 - bne .L1584 + bne .L1583 mov x0, 0 -.L1585: +.L1584: sub w1, w0, #80 strb w1, [x26,x0] add x0, x0, 1 cmp x0, 8 - bne .L1585 + bne .L1584 mov w0, -44 mov w27, 12 strb w0, [x25,136] mov w28, 10 mov w0, -43 strb w0, [x25,137] - b .L1578 -.L1584: + b .L1577 +.L1583: cmp w19, 8 - bne .L1640 + bne .L1639 mov w0, 6 strb w0, [x25,128] mov w0, 7 @@ -10363,15 +10299,15 @@ hynix_get_read_retry_default: mov w0, 10 mov w28, 5 strb w0, [x25,132] - b .L1578 -.L1640: + b .L1577 +.L1639: mov w27, 7 -.L1682: +.L1681: mov w28, 4 -.L1578: +.L1577: sub w0, w19, #1 cmp w0, 1 - bhi .L1679 + bhi .L1678 ldr x0, [x29,136] adrp x24, .LANCHOR2 add x24, x24, :lo12:.LANCHOR2 @@ -10379,10 +10315,10 @@ hynix_get_read_retry_default: add x19, x0, :lo12:.LANCHOR0 mov w5, 55 add x24, x24, 408 -.L1586: +.L1585: ldrb w0, [x19,633] cmp w0, w23 - bls .L1593 + bls .L1592 add x0, x19, x23, sxtw ldrb w0, [x0,736] mov x20, 160 @@ -10392,7 +10328,7 @@ hynix_get_read_retry_default: madd x20, x0, x20, x22 add x21, x21, x1 add x20, x20, 32 -.L1588: +.L1587: str w5, [x21,2056] str x5, [x29,136] ldrb w0, [x26,x25] @@ -10404,12 +10340,12 @@ hynix_get_read_retry_default: add x25, x25, 1 ldr x5, [x29,136] cmp w28, w25, uxtb - bhi .L1588 + bhi .L1587 mov x0, 0 -.L1589: +.L1588: add w2, w0, 8 mov x1, 0 -.L1590: +.L1589: add x3, x1, x0 add x1, x1, 4 add x3, x24, x3 @@ -10419,10 +10355,10 @@ hynix_get_read_retry_default: add w3, w4, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L1590 + bne .L1589 add x0, x0, 1 cmp x0, 4 - bne .L1589 + bne .L1588 add w23, w23, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -10432,11 +10368,11 @@ hynix_get_read_retry_default: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L1586 -.L1679: + b .L1585 +.L1678: sub w0, w19, #3 cmp w0, 5 - bhi .L1593 + bhi .L1592 mul w0, w28, w27 sub w24, w28, #1 mov w20, 0 @@ -10451,13 +10387,13 @@ hynix_get_read_retry_default: str w0, [x29,132] add x0, x24, 1 str x0, [x29,112] -.L1594: +.L1593: ldr x0, [x29,136] add x1, x0, :lo12:.LANCHOR0 ldrb w0, [x1,633] cmp w0, w20 - bhi .L1639 -.L1593: + bhi .L1638 +.L1592: strb w28, [x22,1] strb w27, [x22,2] ldp x19, x20, [sp,16] @@ -10467,7 +10403,7 @@ hynix_get_read_retry_default: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L1639: +.L1638: add x0, x1, x20, sxtw ldrb w24, [x0,736] str x1, [x29,104] @@ -10487,7 +10423,7 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready cmp w19, 8 ldr x1, [x29,104] - bne .L1595 + bne .L1594 mov w0, 120 str w0, [x24,2056] str wzr, [x24,2052] @@ -10507,38 +10443,38 @@ hynix_get_read_retry_default: str wzr, [x24,2052] str wzr, [x24,2052] str w1, [x24,2052] - b .L1685 -.L1595: + b .L1684 +.L1594: mov w0, 54 cmp w19, 4 str w0, [x24,2056] - bne .L1597 + bne .L1596 mov w0, 64 str w1, [x24,2052] str w0, [x24,2048] mov w0, 204 - b .L1683 -.L1597: + b .L1682 +.L1596: ldr w0, [x29,132] cmp w0, 1 - bhi .L1599 + bhi .L1598 ldrb w0, [x25,128] str w0, [x24,2052] mov w0, 82 - b .L1684 -.L1599: + b .L1683 +.L1598: cmp w19, 7 - bne .L1598 + bne .L1597 mov w0, 174 str w0, [x24,2052] str wzr, [x24,2048] mov w0, 176 -.L1683: +.L1682: str w0, [x24,2052] mov w0, 77 -.L1684: +.L1683: str w0, [x24,2048] -.L1598: +.L1597: mov w0, 22 str w0, [x24,2056] mov w0, 23 @@ -10551,15 +10487,15 @@ hynix_get_read_retry_default: cmp w19, 6 str wzr, [x24,2052] str wzr, [x24,2052] - bne .L1600 + bne .L1599 mov w0, 31 str w0, [x24,2052] - b .L1601 -.L1600: + b .L1600 +.L1599: str wzr, [x24,2052] -.L1601: +.L1600: mov w0, 2 -.L1685: +.L1684: str w0, [x24,2052] mov w0, 48 str wzr, [x24,2052] @@ -10570,119 +10506,119 @@ hynix_get_read_retry_default: cset w8, ls cmp w19, 8 cset w7, eq - cbnz w8, .L1642 - cbnz w7, .L1642 + cbnz w8, .L1641 + cbnz w7, .L1641 cmp w19, 7 mov w1, 32 mov w0, 2 csel w1, w0, w1, ne - b .L1602 -.L1642: + b .L1601 +.L1641: mov w1, 16 -.L1602: +.L1601: adrp x0, .LANCHOR3 mov x9, 0 add x0, x0, :lo12:.LANCHOR3 ldr x0, [x0,1488] -.L1603: +.L1602: ldr w10, [x24,2048] strb w10, [x0,x9] add x9, x9, 1 cmp w1, w9, uxtb - bhi .L1603 - cbz w7, .L1604 + bhi .L1602 + cbz w7, .L1603 mov w1, 0 -.L1606: +.L1605: ldrb w9, [x0] cmp w9, 50 - beq .L1605 + beq .L1604 ldrb w9, [x0,1] cmp w9, 5 - beq .L1605 + beq .L1604 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L1606 - b .L1607 -.L1605: - cmp w1, 7 - bne .L1608 -.L1607: - adrp x0, .LC141 - mov w1, 0 - add x0, x0, :lo12:.LC141 - bl printk -.L1609: - b .L1609 + bne .L1605 + b .L1606 .L1604: + cmp w1, 7 + bne .L1607 +.L1606: + adrp x0, .LC139 + mov w1, 0 + add x0, x0, :lo12:.LC139 + bl printk +.L1608: + b .L1608 +.L1603: cmp w19, 7 - bne .L1610 + bne .L1609 mov w1, w7 -.L1612: +.L1611: ldrb w9, [x0] cmp w9, 12 - beq .L1611 + beq .L1610 ldrb w9, [x0,1] cmp w9, 10 - beq .L1611 + beq .L1610 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L1612 - b .L1613 -.L1611: - cmp w1, 7 - bne .L1608 -.L1613: - adrp x0, .LC141 - mov w1, 0 - add x0, x0, :lo12:.LC141 - bl printk -.L1614: - b .L1614 + bne .L1611 + b .L1612 .L1610: + cmp w1, 7 + bne .L1607 +.L1612: + adrp x0, .LC139 + mov w1, 0 + add x0, x0, :lo12:.LC139 + bl printk +.L1613: + b .L1613 +.L1609: cmp w19, 6 - bne .L1608 + bne .L1607 mov x1, 0 -.L1615: +.L1614: ldrb w9, [x0,x1] cmp w9, 12 - beq .L1608 + beq .L1607 add x9, x0, x1 ldrb w9, [x9,8] cmp w9, 4 - beq .L1608 + beq .L1607 add x1, x1, 1 cmp x1, 8 - bne .L1615 - adrp x0, .LC141 + bne .L1614 + adrp x0, .LC139 mov w1, 0 - add x0, x0, :lo12:.LC141 + add x0, x0, :lo12:.LC139 bl printk -.L1617: - b .L1617 -.L1608: +.L1616: + b .L1616 +.L1607: add x0, x26, :lo12:.LANCHOR3 ldr x10, [x0,1488] mov x0, 0 -.L1618: +.L1617: ldr w1, [x29,128] cmp w1, w0 - ble .L1687 + ble .L1686 ldr w1, [x24,2048] strb w1, [x10,x0] add x0, x0, 1 - b .L1618 -.L1687: + b .L1617 +.L1686: add x0, x26, :lo12:.LANCHOR3 mov w11, w23 mov w9, 8 ldr x12, [x0,1488] -.L1621: - mov w0, 0 .L1620: + mov w0, 0 +.L1619: add w1, w0, w11 add w0, w0, 1 sbfiz x1, x1, 1, 32 @@ -10690,93 +10626,93 @@ hynix_get_read_retry_default: ldrh w13, [x12,x1] mvn w13, w13 strh w13, [x12,x1] - bne .L1620 + bne .L1619 ldr w0, [x29,124] subs w9, w9, #1 add w11, w11, w0 - bne .L1621 + bne .L1620 mov x9, 0 mov w17, 1 -.L1622: +.L1621: mov w1, 0 mov w11, w1 -.L1626: +.L1625: lsl w13, w17, w11 mov w15, w9 mov w0, 16 mov w14, 0 -.L1624: +.L1623: 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 .L1624 + bne .L1623 cmp w14, 8 - bls .L1625 + bls .L1624 orr w1, w1, w13 uxth w1, w1 -.L1625: +.L1624: add w11, w11, 1 cmp w11, 16 - bne .L1626 + bne .L1625 strh w1, [x12,x9,lsl 1] add x9, x9, 1 cmp w23, w9 - bgt .L1622 + bgt .L1621 add x1, x26, :lo12:.LANCHOR3 mov x9, 0 mov w11, w9 ldr x1, [x1,1488] -.L1629: +.L1628: ldr w12, [x1,x9] add x9, x9, 4 cmp w12, wzr csinc w11, w11, w11, ne cmp x9, 32 - bne .L1629 + bne .L1628 cmp w11, 7 - ble .L1630 - adrp x0, .LC142 + ble .L1629 + adrp x0, .LC140 mov w2, 1 - add x0, x0, :lo12:.LC142 + add x0, x0, :lo12:.LC140 mov w3, 1024 bl rknand_print_hex - adrp x0, .LC141 + adrp x0, .LC139 mov w1, 0 - add x0, x0, :lo12:.LC141 + add x0, x0, :lo12:.LC139 bl printk -.L1631: - b .L1631 .L1630: + b .L1630 +.L1629: cmp w19, 6 mov w9, 4 - beq .L1632 + beq .L1631 cmp w19, 7 mov w9, 10 - beq .L1632 + beq .L1631 cmp w7, wzr mov w9, 5 mov w1, 8 csel w9, w1, w9, eq -.L1632: +.L1631: mov w11, 0 -.L1633: +.L1632: mov x1, 0 -.L1634: +.L1633: add w12, w0, w1 ldrb w13, [x10,x1] add x1, x1, 1 cmp w28, w1, uxtb strb w13, [x21,w12,sxtw] - bhi .L1634 + bhi .L1633 add w11, w11, 1 ldr x1, [x29,112] cmp w11, w27 add w0, w0, w9 add x10, x10, x1 - blt .L1633 + blt .L1632 mov w21, 255 str w21, [x24,2056] str x7, [x29,96] @@ -10784,7 +10720,7 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready ldr x8, [x29,104] ldr x7, [x29,96] - cbz w8, .L1636 + cbz w8, .L1635 mov w0, 54 str w0, [x24,2056] ldrb w0, [x25,128] @@ -10799,17 +10735,17 @@ hynix_get_read_retry_default: str w21, [x24,2052] str w21, [x24,2052] str w21, [x24,2052] - b .L1686 -.L1636: + b .L1685 +.L1635: mov w0, 190 - cbnz w7, .L1686 + cbnz w7, .L1685 mov w0, 56 -.L1686: +.L1685: str w0, [x24,2056] add w20, w20, 1 bl nandc_wait_flash_ready uxtb w20, w20 - b .L1594 + b .L1593 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 .global flash_get_read_retry_tbl @@ -10822,9 +10758,9 @@ flash_get_read_retry_tbl: sub w1, w0, #1 uxtb w1, w1 cmp w1, 7 - bhi .L1688 + bhi .L1687 bl hynix_get_read_retry_default -.L1688: +.L1687: ldp x29, x30, [sp], 16 ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -10834,68 +10770,69 @@ flash_get_read_retry_tbl: nandc_xfer_done: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x20, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - stp x23, x24, [sp,48] adrp x21, .LANCHOR3 - ldr x0, [x20,536] - bl wait_for_nandc_xfer_completed add x0, x21, :lo12:.LANCHOR3 + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] + adrp x19, .LANCHOR0 strb wzr, [x0,1496] - ldrb w0, [x20,516] - cmp w0, 9 - bne .L1691 - ldr x22, [x20,536] + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x0,516] + cmp w1, 9 + bne .L1690 + ldr x22, [x0,536] ldr w0, [x22,16] str w0, [x29,64] ldr w20, [x22,48] ubfx x20, x20, 1, 1 cbnz w20, .L1711 - adrp x21, .LC146 - adrp x23, .LC145 - add x21, x21, :lo12:.LC146 - add x23, x23, :lo12:.LC145 - b .L1693 + adrp x21, .LC144 + adrp x23, .LC143 + add x21, x21, :lo12:.LC144 + add x23, x23, :lo12:.LC143 + b .L1692 .L1711: - mov w1, 0 -.L1692: - ldr w2, [x22,64] + mov w20, 0 +.L1691: + ldr w1, [x22,64] ldr w0, [x29,64] - ubfx x2, x2, 16, 6 + ubfx x1, x1, 16, 6 ubfx x0, x0, 22, 6 - cmp w2, w0 - bge .L1695 - ldr w0, [x22] + cmp w1, w0 + bge .L1694 + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,536] + ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1694 + tbz x0, 13, .L1693 ldr w0, [x29,72] - tbz x0, 17, .L1694 + tbz x0, 17, .L1693 ldr w1, [x29,72] - adrp x0, .LC143 - add x0, x0, :lo12:.LC143 + adrp x0, .LC141 + add x0, x0, :lo12:.LC141 ubfx x1, x1, 17, 1 bl printk - b .L1695 -.L1694: + b .L1694 +.L1693: ldr w0, [x29,64] - add w1, w1, 1 + add w20, w20, 1 ubfx x0, x0, 22, 6 - cmp w1, w0, lsl 12 - bne .L1692 + cmp w20, w0, lsl 12 + bne .L1695 ldr w2, [x22,64] - adrp x0, .LC144 + adrp x0, .LC142 ldr w3, [x29,64] - add x0, x0, :lo12:.LC144 + mov w1, w20 ubfx x2, x2, 16, 5 - add x21, x21, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC142 ubfx x3, x3, 22, 6 + add x21, x21, :lo12:.LANCHOR3 bl printk add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC145 - add x0, x0, :lo12:.LC145 + adrp x0, .LC143 + add x0, x0, :lo12:.LC143 mov w2, 4 mov w3, 64 ldr x1, [x1,536] @@ -10903,11 +10840,17 @@ nandc_xfer_done: ldr w1, [x29,72] mov w0, 1 strb w0, [x21,1496] - tbnz x1, 13, .L1695 + tbnz x1, 13, .L1694 mov x0, 35160 movk x0, 0x41, lsl 16 bl __const_udelay + b .L1694 .L1695: + mov x0, 5 + mov x1, 10 + bl usleep_range + b .L1691 +.L1694: add x20, x19, :lo12:.LANCHOR0 add x20, x20, 680 ldr w0, [x20,32] @@ -10922,7 +10865,7 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1737 + b .L1736 .L1701: add x24, x19, :lo12:.LANCHOR0 add w20, w20, 1 @@ -10930,7 +10873,7 @@ nandc_xfer_done: ldr w0, [x0,16] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1693 + cbnz w0, .L1700 ldr w2, [x29,64] mov w1, w20 ldr w3, [x22,64] @@ -10942,7 +10885,11 @@ nandc_xfer_done: mov w2, 4 mov w3, 64 bl rknand_print_hex -.L1693: +.L1700: + mov x0, 5 + mov x1, 10 + bl usleep_range +.L1692: ldr w0, [x29,64] tbz x0, 20, .L1701 add x20, x19, :lo12:.LANCHOR0 @@ -10959,25 +10906,25 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1736 -.L1691: - ldr x21, [x20,536] + b .L1735 +.L1690: + ldr x21, [x0,536] ldr w0, [x21,8] str w0, [x29,64] ldr w20, [x21,16] ubfx x20, x20, 1, 1 cbnz w20, .L1712 - adrp x22, .LC146 - adrp x23, .LC145 - add x22, x22, :lo12:.LC146 - add x23, x23, :lo12:.LC145 + adrp x22, .LC144 + adrp x23, .LC143 + add x22, x22, :lo12:.LC144 + add x23, x23, :lo12:.LC143 b .L1704 .L1712: - adrp x22, .LC144 - adrp x23, .LC145 + adrp x22, .LC142 + adrp x23, .LC143 mov w20, 0 - add x22, x22, :lo12:.LC144 - add x23, x23, :lo12:.LC145 + add x22, x22, :lo12:.LC142 + add x23, x23, :lo12:.LC143 .L1703: ldr w2, [x21,28] ldr w1, [x29,64] @@ -10994,14 +10941,14 @@ nandc_xfer_done: ldr w0, [x29,72] tbz x0, 17, .L1705 ldr w1, [x29,72] - adrp x0, .LC147 - add x0, x0, :lo12:.LC147 + adrp x0, .LC145 + add x0, x0, :lo12:.LC145 bl printk b .L1706 .L1705: add w20, w20, 1 and w0, w20, 16777215 - cbnz w0, .L1703 + cbnz w0, .L1707 ldr w2, [x21,28] mov w1, w20 ldr w3, [x29,64] @@ -11015,6 +10962,10 @@ nandc_xfer_done: mov w3, 64 ldr x1, [x1,536] bl rknand_print_hex +.L1707: + mov x0, 5 + mov x1, 10 + bl usleep_range b .L1703 .L1706: add x20, x19, :lo12:.LANCHOR0 @@ -11031,9 +10982,9 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1737: +.L1736: mov w2, 0 - b .L1735 + b .L1734 .L1710: add x24, x19, :lo12:.LANCHOR0 add w20, w20, 1 @@ -11041,7 +10992,7 @@ nandc_xfer_done: ldr w0, [x0,8] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1704 + cbnz w0, .L1709 ldr w2, [x29,64] mov w1, w20 ldr w3, [x21,28] @@ -11053,6 +11004,10 @@ nandc_xfer_done: mov w2, 4 mov w3, 64 bl rknand_print_hex +.L1709: + mov x0, 5 + mov x1, 10 + bl usleep_range .L1704: ldr w0, [x29,64] tbz x0, 20, .L1710 @@ -11070,9 +11025,9 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1736: - mov w2, 1 .L1735: + mov w2, 1 +.L1734: bl rknand_dma_unmap_single .L1699: add x19, x19, :lo12:.LANCHOR0 @@ -11093,29 +11048,30 @@ nandc_xfer: stp x19, x20, [sp,16] uxtb w22, w2 uxtb w20, w1 - mov w0, w20 mov x2, x3 + mov w0, w20 mov w1, w22 mov x21, x3 mov x3, x4 str x23, [sp,48] mov x23, x4 bl nandc_xfer_start + mov w0, w20 bl nandc_xfer_done mov w0, 0 - cbnz w20, .L1768 + cbnz w20, .L1767 adrp x19, .LANCHOR0 - add x2, x19, :lo12:.LANCHOR0 - ldrb w1, [x2,516] - cmp w1, 9 - bne .L1740 - ldr x5, [x2,536] + add x1, x19, :lo12:.LANCHOR0 + ldrb w2, [x1,516] + cmp w2, 9 + bne .L1739 + ldr x5, [x1,536] lsr w22, w22, 2 mov w4, 1 mov w3, w0 -.L1741: +.L1740: cmp w3, w22 - bcs .L1777 + bcs .L1776 uxtw x1, w3 add x1, x1, 84 ldr w1, [x5,x1,lsl 2] @@ -11127,30 +11083,30 @@ nandc_xfer: and w1, w1, w2 and w4, w4, w1 ldr w1, [x29,72] - tbnz x1, 2, .L1760 + tbnz x1, 2, .L1759 ldr w1, [x29,72] - tbnz x1, 18, .L1760 + tbnz x1, 18, .L1759 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 .L1743 + ble .L1742 ubfx x1, x1, 3, 7 - b .L1744 -.L1743: + b .L1743 +.L1742: ubfx x1, x1, 19, 7 -.L1744: +.L1743: cmp w0, w1 csel w0, w0, w1, cs - b .L1742 -.L1760: - mov w0, -1 -.L1742: - add w3, w3, 1 b .L1741 -.L1777: +.L1759: + mov w0, -1 +.L1741: + add w3, w3, 1 + b .L1740 +.L1776: add x22, x19, :lo12:.LANCHOR0 cmp w4, wzr ldr x1, [x22,536] @@ -11161,77 +11117,76 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1747 - adrp x0, .LC148 + bne .L1746 + adrp x0, .LC146 mov w1, w20 - add x0, x0, :lo12:.LC148 + add x0, x0, :lo12:.LC146 orr w20, w20, 131072 bl printk ldr x0, [x22,536] str w20, [x0] mov w0, -1 -.L1747: - tbz x20, 13, .L1748 +.L1746: + tbz x20, 13, .L1747 adrp x1, .LANCHOR3+1496 ldrb w1, [x1,#:lo12:.LANCHOR3+1496] - cbz w1, .L1748 - adrp x0, .LC149 + cbz w1, .L1747 + adrp x0, .LC147 mov w1, w20 - add x0, x0, :lo12:.LC149 + add x0, x0, :lo12:.LC147 add x19, x19, :lo12:.LANCHOR0 bl printk ldr x0, [x19,536] mov w1, 1 str w1, [x0,16] - b .L1749 -.L1740: - ldrb w0, [x2,724] - mov w5, 128 - lsr w6, w22, 1 - mov w3, 1 + b .L1748 +.L1739: + ldrb w0, [x1,724] + mov w4, 128 + lsr w5, w22, 1 + mov w2, 1 cmp w0, 25 mov w0, 64 - csel w5, w0, w5, cc - mov w1, w20 - mov w4, w20 -.L1751: - cmp w4, w6 - add w7, w1, w5 - bcs .L1778 - ldr x0, [x2,680] - and x1, x1, 4294967292 - ldr w0, [x0,x1] - ubfiz x1, x4, 2, 30 - add w4, w4, 1 + csel w4, w0, w4, cc + mov w3, w20 +.L1750: + cmp w3, w5 + add w6, w20, w4 + bcs .L1777 + ldr x0, [x1,680] + and x20, x20, 4294967292 + ubfiz x7, x3, 2, 30 + add w3, w3, 1 + ldr w0, [x0,x20] + mov w20, w6 + strb w0, [x23,x7] + lsr w7, w0, 8 + strb w7, [x23,w2,uxtw] + add w7, w2, 1 lsr w8, w0, 16 - strb w0, [x23,x1] - lsr w1, w0, 8 - strb w1, [x23,w3,uxtw] - add w1, w3, 1 lsr w0, w0, 24 - strb w8, [x23,x1] - add w1, w3, 2 - add w3, w3, 4 - strb w0, [x23,x1] - mov w1, w7 - b .L1751 -.L1778: + strb w8, [x23,x7] + add w7, w2, 2 + add w2, w2, 4 + strb w0, [x23,x7] + b .L1750 +.L1777: add x0, x19, :lo12:.LANCHOR0 mov w2, 0 lsr w22, w22, 2 ldr x6, [x0,536] mov w0, w2 -.L1753: +.L1752: cmp w2, w22 - bcs .L1779 + bcs .L1778 uxtw x1, w2 add x1, x1, 8 ldr w1, [x6,x1,lsl 2] str w1, [x29,72] ldr w1, [x29,72] - tbnz x1, 2, .L1763 + tbnz x1, 2, .L1762 ldr w1, [x29,72] - tbnz x1, 15, .L1763 + tbnz x1, 15, .L1762 ldr w3, [x29,72] ubfx x5, x3, 3, 5 ldr w3, [x29,72] @@ -11244,26 +11199,26 @@ nandc_xfer: orr w1, w4, w1, lsl 5 cmp w3, w1 ldr w1, [x29,72] - bls .L1755 + bls .L1754 ubfx x3, x1, 3, 5 ldr w1, [x29,72] ubfx x1, x1, 27, 1 - b .L1776 -.L1755: + b .L1775 +.L1754: ubfx x3, x1, 16, 5 ldr w1, [x29,72] ubfx x1, x1, 29, 1 -.L1776: +.L1775: orr w1, w3, w1, lsl 5 cmp w0, w1 csel w0, w0, w1, cs - b .L1754 -.L1763: - mov w0, -1 -.L1754: - add w2, w2, 1 b .L1753 -.L1779: +.L1762: + mov w0, -1 +.L1753: + add w2, w2, 1 + b .L1752 +.L1778: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,536] str wzr, [x1,16] @@ -11272,32 +11227,32 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1748 - adrp x0, .LC150 + bne .L1747 + adrp x0, .LC148 mov w1, w20 - add x0, x0, :lo12:.LC150 + add x0, x0, :lo12:.LC148 orr w20, w20, 131072 bl printk ldr x0, [x19,536] str w20, [x0] - b .L1749 -.L1748: + b .L1748 +.L1747: cmn w0, #1 - beq .L1768 + beq .L1767 ldr w1, [x23] cmn w1, #1 - bne .L1768 + bne .L1767 ldr w1, [x23,4] cmn w1, #1 - bne .L1768 + bne .L1767 ldr w1, [x21] cmn w1, #1 mov w1, 512 csel w0, w0, w1, ne - b .L1768 -.L1749: + b .L1767 +.L1748: mov w0, -1 -.L1768: +.L1767: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -11332,38 +11287,38 @@ flash_read_page: ubfx x23, x5, 24, 2 and w19, w1, w19 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1781 - adrp x0, .LC151 + tbz x0, 4, .L1780 + adrp x0, .LC149 mov w1, w22 - add x0, x0, :lo12:.LC151 + add x0, x0, :lo12:.LC149 mov w2, w23 mov w3, w5 bl printk -.L1781: +.L1780: bl nandc_wait_flash_ready mov w0, w22 bl nandc_cs - cbnz w23, .L1782 + cbnz w23, .L1781 mov w0, w22 bl zftl_flash_enter_slc_mode - b .L1783 -.L1782: + b .L1782 +.L1781: add x0, x21, :lo12:.LANCHOR0 ldr x1, [x0,624] ldrb w1, [x1,12] cmp w1, 3 - bne .L1784 + bne .L1783 ldrb w0, [x0,756] - cbnz w0, .L1784 + cbnz w0, .L1783 sxtw x0, w22 add x0, x0, 8 add x0, x20, x0, lsl 8 str w23, [x0,8] - b .L1783 -.L1784: + b .L1782 +.L1783: mov w0, w22 bl zftl_flash_exit_slc_mode -.L1783: +.L1782: ubfiz x5, x22, 8, 8 and w0, w19, 255 add x20, x20, x5 @@ -11377,21 +11332,21 @@ flash_read_page: str w0, [x20,2052] mov w0, 48 str w0, [x20,2056] - cbz w23, .L1785 + cbz w23, .L1784 add x21, x21, :lo12:.LANCHOR0 ldr x0, [x21,624] ldrb w0, [x0,12] cmp w0, 3 - bne .L1785 + bne .L1784 ldrb w0, [x21,756] - cbnz w0, .L1785 + cbnz w0, .L1784 add w19, w19, w19, lsl 1 sub w0, w19, #1 add w0, w0, w23 - b .L1796 -.L1785: + b .L1795 +.L1784: mov w0, w19 -.L1796: +.L1795: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 @@ -11444,25 +11399,25 @@ micron_read_retrial: bl nandc_wait_flash_ready ldr x0, [x20,536] str x0, [x29,144] - adrp x0, .LC152 - add x0, x0, :lo12:.LC152 + adrp x0, .LC150 + add x0, x0, :lo12:.LC150 str x0, [x29,128] lsl x0, x25, 8 str x0, [x29,120] - adrp x0, .LC153 - add x0, x0, :lo12:.LC153 + adrp x0, .LC151 + add x0, x0, :lo12:.LC151 str x0, [x29,112] -.L1798: +.L1797: lsl x0, x25, 8 mov w20, 0 mov w28, -1 adrp x26, .LANCHOR3 str x0, [x29,136] -.L1799: +.L1798: add x0, x26, :lo12:.LANCHOR3 ldrb w0, [x0,1512] cmp w20, w0 - bcs .L1803 + bcs .L1802 ldr x0, [x29,144] add w27, w20, 1 ldr x1, [x29,136] @@ -11488,7 +11443,7 @@ micron_read_retrial: mov w6, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1800 + tbz x0, 12, .L1799 ldr x0, [x29,128] mov w4, w6 mov w1, w20 @@ -11497,9 +11452,9 @@ micron_read_retrial: str x6, [x29,104] bl printk ldr x6, [x29,104] -.L1800: +.L1799: cmn w6, #1 - beq .L1801 + beq .L1800 adrp x0, .LANCHOR3 cmn w28, #1 add x0, x0, :lo12:.LANCHOR3 @@ -11508,13 +11463,13 @@ micron_read_retrial: ldr x24, [x0,1504] ldr w0, [x29,156] cmp w6, w0 - bcc .L1811 -.L1801: + bcc .L1810 +.L1800: mov w20, w27 - b .L1799 -.L1811: + b .L1798 +.L1810: mov w28, w6 -.L1803: +.L1802: ldr x0, [x29,144] ldr x1, [x29,120] add x26, x0, x1 @@ -11530,46 +11485,46 @@ micron_read_retrial: str wzr, [x26,2048] str wzr, [x26,2048] cmp w28, w0 - bcc .L1805 + bcc .L1804 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1805: +.L1804: cmn w28, #1 cset w26, eq - cbnz w26, .L1813 + cbnz w26, .L1812 cmp w28, 256 cset w1, eq - cbz w1, .L1806 -.L1813: + cbz w1, .L1805 +.L1812: ldr x0, [x29,112] mov w1, w20 mov w2, w22 mov w3, w20 mov w4, w28 bl printk - cbz w26, .L1808 - cbnz w21, .L1808 + cbz w26, .L1807 + cbnz w21, .L1807 mov w0, w19 mov w1, 3 mov w21, 1 bl mt_auto_read_calibration_config - b .L1798 -.L1808: - cbz w21, .L1809 + b .L1797 +.L1807: + cbz w21, .L1808 mov w0, w19 mov w1, 0 bl mt_auto_read_calibration_config cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq - b .L1809 -.L1806: - cbz w21, .L1809 + b .L1808 +.L1805: + cbz w21, .L1808 mov w0, w19 mov w28, 256 bl mt_auto_read_calibration_config -.L1809: +.L1808: bl nandc_wait_flash_ready mov w0, w28 ldp x19, x20, [sp,16] @@ -11615,19 +11570,19 @@ toshiba_3d_read_retrial: cmp w1, 36 mov w1, 26 csel w21, w21, w1, ne - cbnz w19, .L1834 + cbnz w19, .L1833 str x0, [x29,112] - adrp x0, .LC154 - add x0, x0, :lo12:.LC154 + adrp x0, .LC152 + add x0, x0, :lo12:.LC152 mov w19, -1 mov w28, 1 str x0, [x29,104] -.L1841: +.L1840: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 mov x0, x23 - bne .L1835 + bne .L1834 mov w1, w28 mov w2, 0 bl toshiba_tlc_set_rr_para @@ -11635,11 +11590,11 @@ toshiba_3d_read_retrial: mov w1, 93 add x0, x25, x0 str w1, [x0,8] - b .L1836 -.L1835: + b .L1835 +.L1834: mov w1, w28 bl toshiba_3d_set_slc_rr_para -.L1836: +.L1835: ldr w4, [x29,124] mov w0, w22 mov w1, w24 @@ -11649,7 +11604,7 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1837 + tbz x0, 4, .L1836 ldr x0, [x29,104] mov w3, w4 mov w1, w28 @@ -11657,9 +11612,87 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1837: +.L1836: cmn w4, #1 - beq .L1838 + beq .L1837 + adrp x0, .LANCHOR3 + cmn w19, #1 + add x0, x0, :lo12:.LANCHOR3 + csel w19, w19, w4, ne + ldr x26, [x0,1488] + ldr x27, [x0,1504] + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,724] + add w0, w0, w0, lsl 1 + cmp w4, w0, lsr 2 + bcc .L1856 +.L1837: + add w28, w28, 1 + cmp w28, w21 + bne .L1840 + b .L1839 +.L1856: + mov w21, w28 + mov w19, w4 +.L1839: + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,725] + cmp w0, 36 + mov x0, x23 + bne .L1841 + mov w1, 0 + mov w2, w1 + b .L1879 +.L1841: + mov w1, 0 + bl toshiba_3d_set_slc_rr_para + b .L1842 +.L1833: + mov x28, x0 + adrp x0, .LC153 + add x0, x0, :lo12:.LC153 + mov w19, -1 + mov w21, 1 + str x0, [x29,104] +.L1849: + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0,725] + cmp w0, 36 + mov x0, x23 + bne .L1843 + mov w1, w21 + mov w2, 1 + bl toshiba_tlc_set_rr_para + add x0, x25, x28 + mov w1, 93 + b .L1878 +.L1843: + mov w1, w21 + bl toshiba_3d_set_tlc_rr_para + add x0, x25, x28 + mov w1, 38 +.L1878: + str w1, [x0,8] + mov x2, x26 + mov w0, w22 + mov w1, w24 + ldr w4, [x29,124] + mov x3, x27 + bl flash_read_page + mov w4, w0 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 4, .L1845 + ldr x0, [x29,104] + mov w3, w4 + mov w1, w21 + mov w2, w24 + str x4, [x29,96] + bl printk + ldr x4, [x29,96] +.L1845: + cmn w4, #1 + beq .L1846 adrp x0, .LANCHOR3 cmn w19, #1 add x0, x0, :lo12:.LANCHOR3 @@ -11671,111 +11704,33 @@ toshiba_3d_read_retrial: add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 bcc .L1857 -.L1838: - add w28, w28, 1 - cmp w28, w21 - bne .L1841 - b .L1840 -.L1857: - mov w21, w28 - mov w19, w4 -.L1840: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,725] - cmp w0, 36 - mov x0, x23 - bne .L1842 - mov w1, 0 - mov w2, w1 - b .L1880 -.L1842: - mov w1, 0 - bl toshiba_3d_set_slc_rr_para - b .L1843 -.L1834: - mov x28, x0 - adrp x0, .LC155 - add x0, x0, :lo12:.LC155 - mov w19, -1 - mov w21, 1 - str x0, [x29,104] -.L1850: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,725] - cmp w0, 36 - mov x0, x23 - bne .L1844 - mov w1, w21 - mov w2, 1 - bl toshiba_tlc_set_rr_para - add x0, x25, x28 - mov w1, 93 - b .L1879 -.L1844: - mov w1, w21 - bl toshiba_3d_set_tlc_rr_para - add x0, x25, x28 - mov w1, 38 -.L1879: - str w1, [x0,8] - mov x2, x26 - mov w0, w22 - mov w1, w24 - ldr w4, [x29,124] - mov x3, x27 - bl flash_read_page - mov w4, w0 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1846 - ldr x0, [x29,104] - mov w3, w4 - mov w1, w21 - mov w2, w24 - str x4, [x29,96] - bl printk - ldr x4, [x29,96] .L1846: - cmn w4, #1 - beq .L1847 - adrp x0, .LANCHOR3 - cmn w19, #1 - add x0, x0, :lo12:.LANCHOR3 - csel w19, w19, w4, ne - ldr x26, [x0,1488] - ldr x27, [x0,1504] - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,724] - add w0, w0, w0, lsl 1 - cmp w4, w0, lsr 2 - bcc .L1858 -.L1847: ldr w0, [x29,112] add w21, w21, 1 cmp w21, w0 - bne .L1850 - b .L1849 -.L1858: + bne .L1849 + b .L1848 +.L1857: mov w19, w4 -.L1849: +.L1848: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 mov x0, x23 - bne .L1851 + bne .L1850 mov w1, 0 mov w2, 1 -.L1880: +.L1879: bl toshiba_tlc_set_rr_para - b .L1843 -.L1851: + b .L1842 +.L1850: mov w1, 0 bl toshiba_3d_set_tlc_rr_para -.L1843: +.L1842: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 36 - bne .L1852 + bne .L1851 ubfiz x22, x22, 8, 8 mov w0, 85 add x25, x25, x22 @@ -11784,29 +11739,29 @@ toshiba_3d_read_retrial: str wzr, [x25,2052] str wzr, [x25,2048] str w0, [x25,2056] -.L1852: +.L1851: add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x20,724] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1853 + bcc .L1852 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1853: +.L1852: cmn w19, #1 - beq .L1859 + beq .L1858 cmp w19, 256 - bne .L1854 -.L1859: - adrp x0, .LC156 + bne .L1853 +.L1858: + adrp x0, .LC154 mov w1, w21 - add x0, x0, :lo12:.LC156 + add x0, x0, :lo12:.LC154 mov w2, w24 mov w3, w21 mov w4, w19 bl printk -.L1854: +.L1853: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -11846,20 +11801,20 @@ toshiba_read_retrial: add x21, x22, x21, lsl 8 uxtb w0, w0 cmp w0, 1 - bls .L1882 + bls .L1881 ldrb w0, [x1,672] - cbz w0, .L1883 + cbz w0, .L1882 mov w0, 1 mov w25, 1 bl nandc_set_if_mode -.L1883: +.L1882: ubfiz x0, x23, 8, 8 mov w1, 92 add x0, x22, x0 str w1, [x0,2056] mov w1, 197 str w1, [x0,2056] -.L1882: +.L1881: ldr x0, [x29,112] mov w20, 1 mov w24, -1 @@ -11868,13 +11823,13 @@ toshiba_read_retrial: str x0, [x29,104] ubfiz x0, x23, 8, 8 str x0, [x29,96] -.L1884: +.L1883: adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 ldrb w0, [x0,1512] add w0, w0, 1 cmp w20, w0 - bcs .L1915 + bcs .L1914 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 ldrb w0, [x0,725] @@ -11882,27 +11837,27 @@ toshiba_read_retrial: uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1885 + bhi .L1884 bl sandisk_set_rr_para - b .L1886 -.L1885: + b .L1885 +.L1884: bl toshiba_set_rr_para -.L1886: +.L1885: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,725] cmp w0, 34 - bne .L1887 + bne .L1886 adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 ldrb w0, [x0,1512] sub w0, w0, #3 cmp w20, w0 - bne .L1887 + bne .L1886 ldr x0, [x29,104] mov w1, 179 add x0, x22, x0 str w1, [x0,8] -.L1887: +.L1886: ldr x0, [x29,96] mov w1, 38 ldr w4, [x29,120] @@ -11917,7 +11872,7 @@ toshiba_read_retrial: bl flash_read_page cmn w0, #1 mov w28, w0 - beq .L1890 + beq .L1889 cmn w24, #1 csel w24, w24, w0, ne adrp x0, .LANCHOR3 @@ -11928,13 +11883,13 @@ toshiba_read_retrial: ldrb w0, [x0,724] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1892 -.L1890: + bcc .L1891 +.L1889: add w20, w20, 1 - b .L1884 -.L1915: + b .L1883 +.L1914: mov w28, w24 -.L1892: +.L1891: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w0, [x0,725] @@ -11942,12 +11897,12 @@ toshiba_read_retrial: uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1894 + bhi .L1893 bl sandisk_set_rr_para - b .L1895 -.L1894: + b .L1894 +.L1893: bl toshiba_set_rr_para -.L1895: +.L1894: ldr x0, [x29,112] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 @@ -11957,29 +11912,29 @@ toshiba_read_retrial: ldrb w0, [x19,724] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1896 + bcc .L1895 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1896: +.L1895: cmn w28, #1 - beq .L1902 + beq .L1901 cmp w28, 256 - bne .L1897 -.L1902: - adrp x0, .LC156 + bne .L1896 +.L1901: + adrp x0, .LC154 ldr w2, [x29,124] - add x0, x0, :lo12:.LC156 + add x0, x0, :lo12:.LC154 mov w1, w20 mov w3, w20 mov w4, w28 bl printk -.L1897: +.L1896: bl nandc_wait_flash_ready - cbz w25, .L1899 + cbz w25, .L1898 mov w0, 4 bl nandc_set_if_mode -.L1899: +.L1898: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12017,9 +11972,9 @@ hynix_read_retrial: bl nandc_wait_flash_ready mov w6, 0 adrp x7, .LANCHOR3 -.L1917: +.L1916: cmp w6, w24 - bcs .L1921 + bcs .L1920 add w20, w20, 1 mov w0, w22 str x7, [x29,104] @@ -12038,7 +11993,7 @@ hynix_read_retrial: cmn w0, #1 ldr x6, [x29,112] ldr x7, [x29,104] - beq .L1919 + beq .L1918 add x1, x7, :lo12:.LANCHOR3 cmn w19, #1 csel w19, w19, w0, ne @@ -12048,37 +12003,37 @@ hynix_read_retrial: ldrb w1, [x1,724] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1926 -.L1919: + bcc .L1925 +.L1918: add w6, w6, 1 - b .L1917 -.L1926: + b .L1916 +.L1925: mov w19, w0 -.L1921: +.L1920: add x28, x28, :lo12:.LANCHOR0 add x21, x27, x21 ldrb w0, [x28,724] strb w20, [x21,8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1923 + bcc .L1922 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1923: +.L1922: cmn w19, #1 - beq .L1927 + beq .L1926 cmp w19, 256 - bne .L1924 -.L1927: - adrp x0, .LC157 + bne .L1923 +.L1926: + adrp x0, .LC155 mov w1, w6 - add x0, x0, :lo12:.LC157 + add x0, x0, :lo12:.LC155 mov w2, w23 mov w3, w6 mov w4, w19 bl printk -.L1924: +.L1923: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -12108,16 +12063,16 @@ flash_ddr_tuning_read: bl nandc_get_ddr_para mov w27, 0 str w0, [x29,116] - adrp x0, .LC158 + adrp x0, .LC156 str w27, [x29,124] - add x0, x0, :lo12:.LC158 + add x0, x0, :lo12:.LC156 mov w25, w27 mov w28, w27 mov w19, 1024 mov w26, 6 mov w21, -1 str x0, [x29,104] -.L1942: +.L1941: mov w0, w26 bl nandc_set_ddr_para ldr w4, [x29,120] @@ -12129,7 +12084,7 @@ flash_ddr_tuning_read: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1937 + tbz x0, 4, .L1936 ldr x0, [x29,104] mov w3, w4 mov w1, w26 @@ -12137,10 +12092,10 @@ flash_ddr_tuning_read: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1937: +.L1936: add w0, w19, 1 cmp w4, w0 - bhi .L1938 + bhi .L1937 adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 ldr x24, [x0,1488] @@ -12149,61 +12104,61 @@ flash_ddr_tuning_read: add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,724] cmp w4, w0, lsr 2 - bcs .L1948 + bcs .L1947 add w28, w28, 1 cmp w28, 7 - bls .L1948 + bls .L1947 sub w27, w26, w28 mov w19, w4 mov w21, 0 - b .L1940 -.L1938: + b .L1939 +.L1937: cmp w25, w28 - bcs .L1949 + bcs .L1948 sub w0, w27, w28 cmp w28, 7 str w0, [x29,124] - bhi .L1941 + bhi .L1940 mov w25, w28 - b .L1949 -.L1948: + b .L1948 +.L1947: mov w27, w26 mov w19, w4 mov w21, 0 - b .L1939 -.L1949: + b .L1938 +.L1948: mov w28, 0 -.L1939: +.L1938: add w26, w26, 2 cmp w26, 50 - bne .L1942 -.L1940: + bne .L1941 +.L1939: ldr w0, [x29,124] cmp w25, w28 csel w27, w27, w0, ls -.L1941: - cbz w27, .L1943 +.L1940: + cbz w27, .L1942 adrp x0, .LANCHOR0+724 mov w1, 3 ldrb w0, [x0,#:lo12:.LANCHOR0+724] udiv w0, w0, w1 cmp w19, w0 - bcs .L1943 - adrp x0, .LC159 + bcs .L1942 + adrp x0, .LC157 mov w1, w27 - add x0, x0, :lo12:.LC159 + add x0, x0, :lo12:.LC157 bl printk mov w0, w27 - b .L1958 -.L1943: + b .L1957 +.L1942: ldrb w0, [x29,116] -.L1958: +.L1957: bl nandc_set_ddr_para - cbz w21, .L1945 - adrp x0, .LC160 + cbz w21, .L1944 + adrp x0, .LC158 mov w2, w22 mov w1, w20 - add x0, x0, :lo12:.LC160 + add x0, x0, :lo12:.LC158 adrp x26, .LANCHOR0 bl printk add x27, x26, :lo12:.LANCHOR0 @@ -12225,33 +12180,33 @@ flash_ddr_tuning_read: mov w0, w20 bl flash_read_page mov w19, w0 - adrp x0, .LC161 + adrp x0, .LC159 mov w1, w20 - add x0, x0, :lo12:.LC161 + add x0, x0, :lo12:.LC159 mov w2, w22 mov w3, w19 bl printk ldrb w0, [x27,724] cmp w19, w0 - bhi .L1950 + bhi .L1949 adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 ldr w0, [x1,1516] add w0, w0, 1 str w0, [x1,1516] cmp w0, 100 - bls .L1946 + bls .L1945 strb wzr, [x27,672] - b .L1945 -.L1950: + b .L1944 +.L1949: mov w19, w21 -.L1946: +.L1945: add x26, x26, :lo12:.LANCHOR0 ldrb w0, [x26,792] bl flash_set_interface_mode ldrb w0, [x26,792] bl nandc_set_if_mode -.L1945: +.L1944: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12280,57 +12235,57 @@ flash_read_page_en: ldrb w0, [x0,633] mov w22, w4 cmp w0, w25 - bhi .L1960 + bhi .L1959 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 404 + mov w2, 405 add x1, x1, 136 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1960: +.L1959: add x0, x20, :lo12:.LANCHOR0 add x1, x0, x25, sxtw ldrb w21, [x1,736] - ldrb w1, [x0,633] - cmp w1, w25 - bcs .L1961 + ldrb w4, [x0,633] + cmp w25, w4 + bcc .L1960 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L1987 - adrp x0, .LC162 + tbz x0, 6, .L1986 + adrp x0, .LC160 mov w1, w21 - add x0, x0, :lo12:.LC162 + add x0, x0, :lo12:.LC160 mov w2, w25 mov w3, w19 bl printk -.L1987: +.L1986: mov w0, -1 - b .L1986 -.L1961: + b .L1985 +.L1960: ubfx x1, x19, 24, 2 - cbnz w1, .L1964 + cbnz w1, .L1963 adrp x1, .LANCHOR0 ldrb w1, [x1,#:lo12:.LANCHOR0] - cbz w1, .L1965 + cbz w1, .L1964 ldrb w0, [x0,1] - cbz w0, .L1964 -.L1965: + cbz w0, .L1963 +.L1964: 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, .L1966 + cbz w2, .L1965 add w19, w0, w19, lsl 1 - b .L1964 -.L1966: + b .L1963 +.L1965: add x1, x1, 4 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1964: +.L1963: mov w0, w21 mov w1, w19 mov x2, x24 @@ -12338,16 +12293,16 @@ flash_read_page_en: mov w4, w22 bl flash_read_page cmn w0, #1 - bne .L1986 + bne .L1985 add x25, x20, :lo12:.LANCHOR0 ldrb w26, [x25,720] - cbnz w26, .L1968 -.L1971: + cbnz w26, .L1967 +.L1970: adrp x0, .LANCHOR3+1520 ldr x5, [x0,#:lo12:.LANCHOR3+1520] - cbnz x5, .L1969 - b .L1970 -.L1968: + cbnz x5, .L1968 + b .L1969 +.L1967: mov w0, w21 mov w1, w19 mov x2, x24 @@ -12357,9 +12312,9 @@ flash_read_page_en: bl flash_read_page strb w26, [x25,720] cmn w0, #1 - beq .L1971 - b .L1986 -.L1969: + beq .L1970 + b .L1985 +.L1968: mov w0, w21 mov w1, w19 mov x2, x24 @@ -12367,25 +12322,25 @@ flash_read_page_en: mov w4, w22 blr x5 cmn w0, #1 - bne .L1986 -.L1970: + bne .L1985 +.L1969: add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC163 - add x0, x0, :lo12:.LC163 + adrp x0, .LC161 + add x0, x0, :lo12:.LC161 mov w1, 0 mov w2, w19 mov w3, -1 ldrb w4, [x20,720] bl printk ldrb w0, [x20,672] - cbz w0, .L1987 + cbz w0, .L1986 mov w0, w21 mov w1, w19 mov x2, x24 mov x3, x23 mov w4, w22 bl flash_ddr_tuning_read -.L1986: +.L1985: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12422,12 +12377,12 @@ flash_get_last_written_page: add w1, w26, w19 bl flash_read_page_en cmp w0, 512 - bne .L1989 + bne .L1988 mov w28, 0 mov w5, 2 -.L1990: +.L1989: cmp w28, w19 - bgt .L1989 + bgt .L1988 add w0, w28, w19 mov x2, x24 mov x3, x21 @@ -12439,24 +12394,24 @@ flash_get_last_written_page: bl flash_read_page_en cmp w0, 512 ldr x5, [x29,104] - bne .L1991 + bne .L1990 sub w19, w20, #1 sxth w19, w19 - b .L1990 -.L1991: + b .L1989 +.L1990: add w20, w20, 1 sxth w28, w20 - b .L1990 -.L1989: + b .L1989 +.L1988: ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L1994 - adrp x0, .LC164 + tbz x0, 12, .L1993 + adrp x0, .LC162 ldr w3, [x21] - add x0, x0, :lo12:.LC164 + add x0, x0, :lo12:.LC162 mov w1, w22 mov w2, w19 bl printk -.L1994: +.L1993: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12528,20 +12483,20 @@ flash_ddr_para_scan: mov w4, 4 bl flash_read_page cmn w0, #1 - bne .L2000 + bne .L1999 ldrb w0, [x21,792] - tbz x0, 0, .L2000 + tbz x0, 0, .L1999 mov w0, 1 bl flash_set_interface_mode mov w0, w22 bl nandc_set_if_mode strb wzr, [x21,672] - b .L2001 -.L2000: + b .L2000 +.L1999: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 strb w0, [x19,672] -.L2001: +.L2000: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12550,8 +12505,8 @@ flash_ddr_para_scan: ret .size flash_ddr_para_scan, .-flash_ddr_para_scan .align 2 - .type id_block_read_data.constprop.31, %function -id_block_read_data.constprop.31: + .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] @@ -12587,12 +12542,12 @@ id_block_read_data.constprop.31: ldr w0, [x29,172] and w0, w0, 3 str w0, [x29,168] - adrp x0, .LC165 - add x0, x0, :lo12:.LC165 + adrp x0, .LC163 + add x0, x0, :lo12:.LC163 str x0, [x29,112] -.L2006: +.L2005: cmp w22, w27 - bcs .L2043 + bcs .L2042 ldr w0, [x29,168] ldrb w1, [x19,634] sub w0, w23, w0 @@ -12604,15 +12559,15 @@ id_block_read_data.constprop.31: udiv w20, w20, w23 and w20, w20, 65535 ldrh w0, [x0,w20,sxtw 1] - cbnz w1, .L2007 + cbnz w1, .L2006 mov w20, w0 - b .L2008 -.L2007: + b .L2007 +.L2006: ldrb w1, [x19,1] lsl w0, w20, 1 cmp w1, wzr csel w20, w0, w20, ne -.L2008: +.L2007: ldr w1, [x29,160] ldr w0, [x29,164] ldrb w28, [x19,632] @@ -12627,7 +12582,7 @@ id_block_read_data.constprop.31: str w0, [x29,132] mov w0, w28 bl nandc_bch_sel -.L2009: +.L2008: mov w0, 0 mov w1, w24 mov x2, x21 @@ -12636,16 +12591,16 @@ id_block_read_data.constprop.31: bl flash_read_page cmn w0, #1 mov w20, w0 - bne .L2016 + bne .L2015 ldrb w6, [x19,720] - cbnz w6, .L2011 -.L2014: + cbnz w6, .L2010 +.L2013: adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 ldr x6, [x0,1520] - cbnz x6, .L2012 - b .L2013 -.L2011: + cbnz x6, .L2011 + b .L2012 +.L2010: mov w0, 0 mov w1, w24 mov x2, x21 @@ -12657,9 +12612,9 @@ id_block_read_data.constprop.31: cmn w0, #1 ldr x6, [x29,104] strb w6, [x19,720] - beq .L2014 - b .L2042 -.L2012: + beq .L2013 + b .L2041 +.L2011: mov w0, 0 mov w1, w24 mov x2, x21 @@ -12667,28 +12622,28 @@ id_block_read_data.constprop.31: mov w4, w23 blr x6 cmn w0, #1 - bne .L2042 -.L2013: + bne .L2041 +.L2012: ldrb w0, [x19,672] - cbz w0, .L2016 + cbz w0, .L2015 mov w0, 0 mov w1, w24 mov x2, x21 add x3, x29, 176 mov w4, w23 bl flash_ddr_tuning_read -.L2042: +.L2041: mov w20, w0 -.L2016: +.L2015: cmn w20, #1 - bne .L2017 + bne .L2016 cmp w28, 16 - beq .L2017 + beq .L2016 mov w0, 16 mov w28, 16 bl nandc_bch_sel - b .L2009 -.L2017: + b .L2008 +.L2016: ldr w0, [x29,132] bl nandc_bch_sel cmn w20, #1 @@ -12699,18 +12654,18 @@ id_block_read_data.constprop.31: cmp w0, w26 cset w0, eq tst w1, w0 - beq .L2019 - cbnz w25, .L2019 + beq .L2018 + cbnz w25, .L2018 ldr w1, [x21] mov w0, 18766 movk w0, 0x464e, lsl 16 cmp w1, w0 - bne .L2019 + bne .L2018 ldr w0, [x29,144] ldrb w23, [x21,17] add w27, w27, w0 - b .L2020 -.L2019: + b .L2019 +.L2018: ldr x0, [x29,144] mov w2, w22 ldr w1, [x29,140] @@ -12721,12 +12676,12 @@ id_block_read_data.constprop.31: ldr x0, [x29,112] bl printk str wzr, [x29,168] -.L2020: +.L2019: ldr w0, [x29,144] add w22, w0, w22 uxth w22, w22 - b .L2006 -.L2043: + b .L2005 +.L2042: ldr x0, [x29,120] ldrb w1, [x29,136] add x0, x0, :lo12:.LANCHOR0 @@ -12739,308 +12694,294 @@ id_block_read_data.constprop.31: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 240 ret - .size id_block_read_data.constprop.31, .-id_block_read_data.constprop.31 + .size id_block_read_data.constprop.30, .-id_block_read_data.constprop.30 .align 2 - .global flash_complete_plane_page_read - .type flash_complete_plane_page_read, %function -flash_complete_plane_page_read: - stp x29, x30, [sp, -80]! + .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] - adrp x23, .LANCHOR0 - mov w24, w0 - add x0, x23, :lo12:.LANCHOR0 - str x25, [sp,64] + uxtb x23, w0 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + str x27, [sp,80] stp x21, x22, [sp,32] + stp x25, x26, [sp,64] stp x19, x20, [sp,16] - mov x22, x1 - mov w19, 24 - ldrb w20, [x0,744] - mov w1, 1 - mov x21, x2 - ldrb w0, [x0,633] - sub w19, w19, w20 - lsl w20, w1, w20 - lsr w2, w24, w19 - sub w20, w20, #1 - and w20, w2, w20 - uxtb w20, w20 - cmp w0, w20 - bhi .L2045 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 909 - add x1, x1, 160 - add x0, x0, :lo12:.LC0 + adrp x21, .LANCHOR2 + mov x22, x23 + ldrb w19, [x0,744] + add x23, x23, 8 + ldr x20, [x0,536] + mov w0, 24 + sub w19, w0, w19 + mov w0, 1 + lsl w19, w0, w19 + ldr w0, [x21,#:lo12:.LANCHOR2] + mov w24, w1 + sub w19, w19, #1 + mov x25, x3 + mov x26, x2 + mov w3, w4 + add x23, x20, x23, 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 bl printk - bl dump_stack -.L2045: - add x3, x23, :lo12:.LANCHOR0 - mov w0, -1 - ldrb w1, [x3,633] - cmp w1, w20 - bls .L2046 - mov w2, 1 - add x20, x3, x20, sxtw - ldrb w20, [x20,736] - lsl w19, w2, w19 - add w19, w19, w0 - ubfx x25, x24, 24, 2 - mov w0, w20 - and w19, w19, w24 - ldr x24, [x3,536] +.L2044: + bl nandc_wait_flash_ready + mov w0, w22 + bl hynix_reconfig_rr_para + mov w0, w22 bl nandc_cs - cbnz w25, .L2047 - mov w0, w19 - bl slc_phy_page_address_calc - mov w19, w0 -.L2047: - add x0, 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 .L2048 - add x5, x24, x5, lsl 8 - mov w0, 6 - b .L2062 -.L2048: - ldr x0, [x0,624] - add x5, x24, x5, lsl 8 - ldrb w0, [x0,12] - cmp w0, 3 - bne .L2050 - mov w0, 5 -.L2062: - str w0, [x5,2056] - str wzr, [x5,2052] - str wzr, [x5,2052] - str w4, [x5,2052] - str w3, [x5,2052] - str w2, [x5,2052] - b .L2060 -.L2050: - str wzr, [x5,2056] - mov w0, 5 - str wzr, [x5,2052] - str wzr, [x5,2052] - str w4, [x5,2052] - str w3, [x5,2052] - str w2, [x5,2052] - str w0, [x5,2056] - str wzr, [x5,2052] - str wzr, [x5,2052] -.L2060: - mov w0, 224 - str w0, [x5,2056] - cbz w25, .L2051 - add x23, x23, :lo12:.LANCHOR0 - ldr x0, [x23,624] - ldrb w0, [x0,12] - cmp w0, 3 - bne .L2051 - ldrb w0, [x23,756] - cbnz w0, .L2051 - sub w1, w25, #1 - add w0, w19, w19, lsl 1 - add w0, w1, w0 - b .L2061 -.L2051: - mov w0, w19 -.L2061: - bl nandc_set_seed - adrp x2, .LANCHOR2+17 - mov w1, 0 - mov x3, x22 - mov x4, x21 - mov w0, w20 - ldrb w2, [x2,#:lo12:.LANCHOR2+17] - bl nandc_xfer - mov w19, w0 - mov w0, w20 - bl nandc_de_cs - mov w0, w19 + mov w0, w22 + cbnz w27, .L2045 + bl zftl_flash_enter_slc_mode + b .L2046 +.L2045: + bl zftl_flash_exit_slc_mode .L2046: + ubfiz x5, x22, 8, 8 + mov w0, 128 + add x20, x20, x5 + add x21, x21, :lo12:.LANCHOR2 + str w0, [x20,2056] + and w0, w19, 255 + str wzr, [x20,2052] + str wzr, [x20,2052] + str w0, [x20,2052] + lsr w0, w19, 8 + str w0, [x20,2052] + lsr w0, w19, 16 + str w0, [x20,2052] + mov w0, w19 + bl nandc_set_seed + ldrb w2, [x21,17] + mov w1, 1 + mov x3, x26 + mov x4, x25 + mov w0, w22 + bl nandc_xfer + mov w0, 16 + str w0, [x20,2056] + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + mov x0, x23 + bl flash_read_status + mov w19, w0 + mov w0, w22 + bl nandc_de_cs + and w2, w19, 4 + tbz x19, 2, .L2047 + adrp x0, .LC165 + mov w1, w24 + add x0, x0, :lo12:.LC165 + bl printk + mov w2, -1 +.L2047: + mov w0, w2 + ldr x27, [sp,80] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 80 + ldp x25, x26, [sp,64] + ldp x29, x30, [sp], 96 ret - .size flash_complete_plane_page_read, .-flash_complete_plane_page_read + .size flash_prog_page, .-flash_prog_page .align 2 - .global flash_complete_page_read - .type flash_complete_page_read, %function -flash_complete_page_read: - stp x29, x30, [sp, -112]! - mov w5, 1 + .global flash_test_blk + .type flash_test_blk, %function +flash_test_blk: + stp x29, x30, [sp, -48]! + mov w2, 32 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR0 - mov x23, x2 - stp x21, x22, [sp,32] - mov x22, x1 - add x1, x24, :lo12:.LANCHOR0 stp x19, x20, [sp,16] + adrp x19, .LANCHOR3 + uxth w20, w1 + add x19, x19, :lo12:.LANCHOR3 + mov w1, 165 + stp x21, x22, [sp,32] + uxtb w22, w0 + ldr x0, [x19,1488] + bl ftl_memset + ldr x0, [x19,1504] + mov w1, 90 + mov w2, 8 + bl ftl_memset + adrp x0, .LANCHOR0+2 + ldrh w0, [x0,#:lo12:.LANCHOR0+2] + mul w20, w20, w0 + mov w0, w22 + mov w1, w20 + bl flash_erase_block + cmn w0, #1 + bne .L2055 +.L2057: + mov w19, -1 + b .L2056 +.L2055: + adrp x21, .LANCHOR2 + ldr x2, [x19,1488] + add x21, x21, :lo12:.LANCHOR2 + ldr x3, [x19,1504] + 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] + mov w0, w22 + ldr x3, [x19,1504] + mov w1, w20 + ldrb w4, [x21,9] + bl flash_read_page_en + cmn w0, #1 + beq .L2057 + ldr x0, [x19,1488] + ldr w1, [x0] + mov w0, 42405 + bfi w0, w0, 16, 16 + cmp w1, w0 + bne .L2057 + ldr x0, [x19,1504] + ldr w1, [x0] + mov w0, 23130 + bfi w0, w0, 16, 16 + cmp w1, w0 + csetm w19, ne +.L2056: + mov w1, w20 + mov w0, w22 + bl flash_erase_block + mov w0, w19 + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size flash_test_blk, .-flash_test_blk + .align 2 + .global flash_dual_page_prog + .type flash_dual_page_prog, %function +flash_dual_page_prog: + stp x29, x30, [sp, -112]! + add x29, sp, 0 + stp x21, x22, [sp,32] + uxtb x21, w0 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + mov w22, w1 stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov w21, w0 + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] + mov x28, x2 + mov x20, x21 + ldrb w19, [x0,744] + add x21, x21, 8 + ldr x23, [x0,536] mov w0, 24 - ldrb w2, [x1,744] - ubfx x25, x21, 24, 2 - sub w0, w0, w2 - lsl w19, w5, w0 - lsl w5, w5, w2 - lsr w20, w21, w0 - sub w5, w5, #1 - and w20, w20, w5 - ldrb w0, [x1,633] + sub w19, w0, w19 + mov w0, 1 + lsl w19, w0, w19 + adrp x0, .LANCHOR2 + str x0, [x29,104] sub w19, w19, #1 - uxtb w20, w20 - and w19, w19, w21 - cmp w0, w20 - bhi .L2064 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 1033 - add x1, x1, 192 - add x0, x0, :lo12:.LC0 + mov x27, x3 + mov x26, x4 + ldr w2, [x0,#:lo12:.LANCHOR2] + mov x25, x5 + mov w3, w6 + add x21, x23, 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 bl printk - bl dump_stack -.L2064: - add x0, x24, :lo12:.LANCHOR0 - add x20, x0, x20, sxtw - ldrb w26, [x20,736] - ldr x20, [x0,536] - mov w0, w26 - bl nandc_cs - cbnz w25, .L2065 - mov w0, w19 - bl slc_phy_page_address_calc - mov w19, w0 .L2065: - ubfiz x0, x26, 8, 8 - add x1, x20, x0 - mov w0, 5 - str w0, [x1,2056] - 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] - mov w0, 224 - str w0, [x1,2056] - cbz w25, .L2066 - add x0, x24, :lo12:.LANCHOR0 - ldr x1, [x0,624] - ldrb w1, [x1,12] - cmp w1, 3 - bne .L2066 - ldrb w0, [x0,756] - cbnz w0, .L2066 - sub w0, w25, #1 - add w1, w19, w19, lsl 1 - add w0, w0, w1 - b .L2098 + bl nandc_wait_flash_ready + mov w0, w20 + bl nandc_cs + mov w0, w20 + cbnz w24, .L2066 + bl zftl_flash_enter_slc_mode + b .L2067 .L2066: + 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 -.L2098: - adrp x20, .LANCHOR2 bl nandc_set_seed - add x27, x20, :lo12:.LANCHOR2 - mov w0, w26 - mov w1, 0 - mov x3, x22 - mov x4, x23 - add x27, x27, 8 - ldrb w2, [x27,9] + 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 - cmn w0, #1 - bne .L2068 - add x28, x24, :lo12:.LANCHOR0 - ldrb w5, [x28,720] - cbz w5, .L2069 - 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] - bl flash_read_page - ldr x5, [x29,104] - strb w5, [x28,720] - cbnz w25, .L2070 -.L2077: - ldrb w2, [x24,#:lo12:.LANCHOR0] - add x1, x24, :lo12:.LANCHOR0 - cbz w2, .L2070 - ldrb w1, [x1,724] - add w1, w1, w1, lsl 1 - cmp w0, w1, lsr 2 - blt .L2070 - add x20, x20, :lo12:.LANCHOR2 - ldrb w1, [x20,27] - sub w1, w1, #4 - uxtb w1, w1 - cmp w1, 4 - mov w1, 256 - csel w0, w0, w1, hi - b .L2085 -.L2070: - cmn w0, #1 - bne .L2085 -.L2078: - adrp x0, .LANCHOR3+1520 - ldr x5, [x0,#:lo12:.LANCHOR3+1520] - cbnz x5, .L2073 -.L2076: - add x24, x24, :lo12:.LANCHOR0 - adrp x0, .LC166 - add x0, x0, :lo12:.LC166 - mov w1, 0 - mov w2, w21 - mov w3, -1 - ldrb w4, [x24,720] + str w27, [x23,2056] + bl nandc_iqr_wait_flash_ready + 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, w20 + bl nandc_xfer + str w27, [x23,2056] + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + mov x0, x21 + bl flash_read_status + mov w19, w0 + mov w0, w20 + bl nandc_de_cs + and w2, w19, 4 + tbz x19, 2, .L2068 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 12, .L2069 + adrp x0, .LC165 + mov w1, w22 + add x0, x0, :lo12:.LC165 bl printk - ldrb w0, [x24,672] - cbnz w0, .L2074 - mov w0, -1 - b .L2085 -.L2073: - add x4, x20, :lo12:.LANCHOR2 - mov w0, w26 - orr w1, w19, w25, lsl 24 - mov x2, x22 - mov x3, x23 - ldrb w4, [x4,17] - blr x5 - cmn w0, #1 - bne .L2085 - b .L2076 -.L2074: - add x20, x20, :lo12:.LANCHOR2 - mov w0, w26 - orr w1, w19, w25, lsl 24 - mov x2, x22 - mov x3, x23 - ldrb w4, [x20,17] - bl flash_ddr_tuning_read - b .L2085 -.L2068: - cbz w25, .L2077 - b .L2085 .L2069: - cbz w25, .L2077 - b .L2078 -.L2085: + mov w2, -1 +.L2068: + mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13048,791 +12989,110 @@ flash_complete_page_read: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 ret - .size flash_complete_page_read, .-flash_complete_page_read + .size flash_dual_page_prog, .-flash_dual_page_prog + .section .text.unlikely .align 2 - .type queue_wait_first_req_completed, %function -queue_wait_first_req_completed: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldrb w22, [x0,2851] - cmp w22, 255 - beq .L2193 - add x0, x0, 800 - 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 .L2101 - adrp x0, .L2103 - add x0, x0, :lo12:.L2103 - ldrh w0, [x0,w2,uxtw #1] - adr x2, .Lrtx2103 - add x0, x2, w0, sxth #2 - br x0 -.Lrtx2103: - .section .rodata - .align 0 - .align 2 -.L2103: - .2byte (.L2102 - .Lrtx2103) / 4 - .2byte (.L2104 - .Lrtx2103) / 4 - .2byte (.L2105 - .Lrtx2103) / 4 - .2byte (.L2105 - .Lrtx2103) / 4 - .2byte (.L2105 - .Lrtx2103) / 4 - .2byte (.L2105 - .Lrtx2103) / 4 - .2byte (.L2106 - .Lrtx2103) / 4 - .2byte (.L2107 - .Lrtx2103) / 4 - .2byte (.L2108 - .Lrtx2103) / 4 - .2byte (.L2105 - .Lrtx2103) / 4 - .2byte (.L2108 - .Lrtx2103) / 4 - .text -.L2102: - mov w0, w24 - mov w1, 64 - bl flash_wait_device_ready - tbz x0, 6, .L2193 - add x3, x19, :lo12:.LANCHOR0 - add x0, x3, 800 - add x0, x0, x22, lsl 6 - ldr x2, [x0,16] - ldr x1, [x0,8] - cbz x2, .L2110 - ldrb w4, [x0,56] - ldrb w0, [x3,2848] - cmp w4, w0 - csel x1, x1, x2, ne -.L2110: - add x19, x19, :lo12:.LANCHOR0 - mov w0, w24 - add x19, x19, 800 - 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 .L2194 -.L2104: - 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 x1, x3, x4 - ldrb w20, [x3,x4] - tbz x0, 6, .L2193 - add x3, x3, x20, lsl 6 - ldr x0, [x1,16] - ldr x27, [x1,8] - ldr x24, [x3,8] - cbz x0, .L2111 - ldrb w3, [x1,56] - ldrb w1, [x2,2848] - cmp w3, w1 - csel x27, x27, x0, ne -.L2111: - add x2, x19, :lo12:.LANCHOR0 - add x0, x2, 800 - add x0, x0, x20, lsl 6 - ldr x1, [x0,16] - cbz x1, .L2112 - ldrb w3, [x0,56] - ldrb w0, [x2,2848] - cmp w3, w0 - csel x24, x24, x1, ne -.L2112: - add x21, x19, :lo12:.LANCHOR0 - mov x1, x27 - add x21, x21, 800 - add x26, x21, x22, lsl 6 - add x21, x21, x20, lsl 6 - add x28, x26, 32 - add x26, x26, 16 - ldr x2, [x26,8] - ldr w0, [x26,24] - bl flash_complete_plane_page_read - mov w23, w0 - ldr x2, [x21,24] - mov x1, x24 - ldr w0, [x21,40] - bl flash_complete_plane_page_read - mov w25, w0 - cmn w23, #1 - beq .L2113 - ldr w0, [x28,4] - cmn w0, #1 - beq .L2114 - ldr x1, [x26,8] - ldr w1, [x1,4] - cmp w0, w1 - beq .L2114 -.L2113: - add x4, x19, :lo12:.LANCHOR0 - mov w0, 1 - add x21, x4, 800 - mov w3, 24 - add x21, x21, x22, lsl 6 - ldrb w2, [x4,744] - add x26, x21, 32 - ldrb w4, [x4,2848] - add x21, x21, 16 - ldr w1, [x21,24] - lsl w0, w0, w2 - sub w3, w3, w2 - sub w0, w0, #1 - lsr w2, w1, w3 - lsl w3, w0, w3 - bic w1, w1, w3 - ldr x3, [x21,8] - and w0, w0, w2 - mov x2, x27 - bl flash_read_page_en - mov w23, w0 - ldr w2, [x26,4] - cmn w2, #1 - beq .L2115 - ldr x3, [x21,8] - ldr w4, [x3,4] - cmp w2, w4 - beq .L2115 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2115 - adrp x0, .LC167 - ldr w1, [x26,8] - ldr w3, [x3] - add x0, x0, :lo12:.LC167 - bl printk -.L2115: - add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 800 - add x0, x0, x22, lsl 6 - ldr w1, [x0,36] - cmn w1, #1 - beq .L2114 - ldr x0, [x0,24] - ldr w0, [x0,4] - cmp w1, w0 - beq .L2114 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 360 - add x1, x1, 224 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L2114: - add x3, x19, :lo12:.LANCHOR0 - mov w1, 13 - add x3, x3, 800 - cmn w25, #1 - add x22, x3, x22, lsl 6 - ldrb w0, [x22,2] - str w23, [x22,52] - orr w0, w0, 8 - strb w1, [x22,58] - strb w0, [x22,2] - beq .L2116 - add x3, x3, x20, lsl 6 - ldr w0, [x3,36] - cmn w0, #1 - beq .L2118 - ldr x1, [x3,24] - ldr w1, [x1,4] - cmp w0, w1 - beq .L2118 -.L2116: - add x4, x19, :lo12:.LANCHOR0 - mov w2, 24 - add x21, x4, 800 - mov w0, 1 - add x21, x21, x20, lsl 6 - ldrb w3, [x4,744] - add x22, x21, 32 - ldrb w4, [x4,2848] - add x21, x21, 16 - ldr w1, [x21,24] - sub w2, w2, w3 - lsl w0, w0, w3 - sub w0, w0, #1 - lsr w3, w1, w2 - lsl w2, w0, w2 - and w0, w0, w3 - ldr x3, [x21,8] - bic w1, w1, w2 - mov x2, x24 - bl flash_read_page_en - ldr w2, [x22,4] - cmn w2, #1 - beq .L2120 - ldr x3, [x21,8] - ldr w4, [x3,4] - cmp w2, w4 - beq .L2120 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2120 - adrp x0, .LC167 - ldr w1, [x22,8] - ldr w3, [x3] - add x0, x0, :lo12:.LC167 - bl printk -.L2120: - add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 800 - add x0, x0, x20, lsl 6 - ldr w1, [x0,36] - cmn w1, #1 - beq .L2118 - ldr x0, [x0,24] - ldr w0, [x0,4] - cmp w1, w0 - beq .L2118 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 375 - add x1, x1, 224 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L2118: - add x19, x19, :lo12:.LANCHOR0 - mov w1, 13 - add x19, x19, 800 - add x19, x19, x20, lsl 6 - str w23, [x19,52] - strb w1, [x19,58] -.L2194: - ldrb w0, [x19,2] - orr w0, w0, 8 - strb w0, [x19,2] - b .L2193 -.L2105: - bl nandc_iqr_wait_flash_ready - mov w0, w24 - mov w1, 64 - bl flash_wait_device_ready - mov w21, w0 - tbz x21, 6, .L2193 - mov w20, 5 - ands w20, w21, w20 - beq .L2121 - add x19, x19, :lo12:.LANCHOR0 - mov w0, 12 - add x19, x19, 800 - mov w2, w21 - add x19, x19, x22, lsl 6 - mov w4, 12 - mov w20, w21 - strb w0, [x19,58] - adrp x0, .LC168 - ldrb w1, [x19,1] - add x0, x0, :lo12:.LC168 - ldr w3, [x19,40] - bl printk - mov w0, -1 - str w0, [x19,52] - b .L2101 -.L2121: - add x4, x19, :lo12:.LANCHOR0 - mov w1, 13 - add x23, x4, 800 - add x23, x23, x22, lsl 6 - strb w1, [x23,58] - ldr x1, [x4,2880] - str w20, [x23,52] - ldr w2, [x1,156] - mov w1, 20041 - movk w1, 0x444b, lsl 16 - cmp w2, w1 - bne .L2193 - ldrh w0, [x23,50] - cbnz w0, .L2193 - ldrb w3, [x4,744] - mov w0, 1 - adrp x21, .LANCHOR3 - ldr w1, [x23,40] - lsl w0, w0, w3 - add x21, x21, :lo12:.LANCHOR3 - mov w2, 24 - sub w0, w0, #1 - sub w2, w2, w3 - ldrb w4, [x4,2848] - lsr w3, w1, w2 - lsl w2, w0, w2 - bic w1, w1, w2 - and w0, w0, w3 - ldr x2, [x21,1528] - ldr x3, [x21,1536] - bl flash_read_page_en - cmn w0, #1 - mov w3, w0 - beq .L2122 - ldr x1, [x23,24] - ldr x0, [x21,1536] - ldr w1, [x1] - ldr w0, [x0] - cmp w1, w0 - beq .L2193 -.L2122: - add x4, x19, :lo12:.LANCHOR0 - adrp x0, .LC169 - add x19, x4, 800 - add x0, x0, :lo12:.LC169 - add x19, x19, x22, lsl 6 - ldrb w4, [x4,720] - ldrb w1, [x19,1] - ldr w2, [x19,40] - bl printk - mov w0, -1 - str w0, [x19,52] - b .L2101 -.L2108: - 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] - mov w0, 1 - add x21, x25, 800 - sub w4, w4, w1 - lsl w0, w0, w1 - sub w0, w0, #1 - lsr w2, w24, w4 - and w2, w0, w2 - add x3, x21, x22, lsl 6 - uxth w2, w2 -.L2124: - ldrb w1, [x3] - cmp w1, 255 - beq .L2195 - sxtw x23, w1 - add x3, x21, x23, lsl 6 - ldrb w1, [x3,58] - cmp w1, w5 - bne .L2124 - ldr w1, [x3,40] - lsr w1, w1, w4 - and w1, w0, w1 - cmp w2, w1 - bne .L2124 - bl nandc_iqr_wait_flash_ready - mov w0, w24 - mov w1, 64 - bl flash_wait_device_ready - mov w20, w0 - tbz x20, 6, .L2192 - ands w1, w20, 15 - beq .L2128 - add x21, x21, x22, lsl 6 - adrp x0, .LC170 - add x0, x0, :lo12:.LC170 - mov w2, w20 - mov w4, 12 - ldrb w1, [x21,1] - ldr w3, [x21,40] - bl printk - mov w0, 12 - strb w0, [x21,58] - mov w0, -1 - str w0, [x21,52] - b .L2127 -.L2128: - add x20, x21, x22, lsl 6 - mov w2, 13 - str w1, [x20,52] - ldr x1, [x25,2880] - strb w2, [x20,58] - ldr w2, [x1,156] - mov w1, 20041 - movk w1, 0x444b, lsl 16 - cmp w2, w1 - bne .L2192 - ldrh w0, [x20,50] - cbnz w0, .L2192 - ldrb w3, [x25,744] - mov w0, 1 - adrp x21, .LANCHOR3 - ldr w1, [x20,40] - lsl w0, w0, w3 - add x21, x21, :lo12:.LANCHOR3 - mov w2, 24 - sub w0, w0, #1 - sub w2, w2, w3 - ldrb w4, [x25,2848] - lsr w3, w1, w2 - lsl w2, w0, w2 - bic w1, w1, w2 - and w0, w0, w3 - ldr x2, [x21,1528] - ldr x3, [x21,1536] - bl flash_read_page_en - cmn w0, #1 - mov w3, w0 - beq .L2130 - ldr x1, [x20,24] - ldr x0, [x21,1536] - ldr w1, [x1] - ldr w0, [x0] - cmp w1, w0 - beq .L2192 -.L2130: - add x4, x19, :lo12:.LANCHOR0 - adrp x0, .LC171 - add x20, x4, 800 - add x0, x0, :lo12:.LC171 - add x20, x20, x22, lsl 6 - ldrb w4, [x4,720] - ldrb w1, [x20,1] - ldr w2, [x20,40] - bl printk - mov w0, -1 - str w0, [x20,52] -.L2192: - mov w20, 0 -.L2127: - add x1, x19, :lo12:.LANCHOR0 - add x1, x1, 800 - 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 .L2101 -.L2195: - mov w20, -1 - b .L2101 -.L2106: - mov w1, 32 - mov w0, w24 - bl flash_wait_device_ready - tbz x0, 5, .L2193 - ands w20, w0, 15 - add x19, x19, :lo12:.LANCHOR0 - add x19, x19, x22, lsl 6 - beq .L2132 - mov w1, 12 - mov w20, w0 - strb w1, [x19,858] - mov w1, -1 - str w1, [x19,852] - b .L2101 -.L2132: - mov w0, 13 - str w20, [x19,852] - strb w0, [x19,858] - b .L2101 -.L2107: - mov w1, 64 - mov w0, w24 - bl flash_wait_device_ready - tbz x0, 6, .L2193 - add x19, x19, :lo12:.LANCHOR0 - add x19, x19, x22, lsl 6 - str w0, [x19,852] - mov w0, 7 - strb w0, [x19,858] -.L2193: - mov w20, 0 -.L2101: - 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], 96 - ret - .size queue_wait_first_req_completed, .-queue_wait_first_req_completed - .align 2 - .global sblk_wait_write_queue_completed - .type sblk_wait_write_queue_completed, %function -sblk_wait_write_queue_completed: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - str x19, [sp,16] - adrp x19, .LANCHOR0 -.L2197: - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2851] - cmp w0, 255 - beq .L2199 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2197 -.L2199: - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed - .align 2 - .global ftl_read_page - .type ftl_read_page, %function -ftl_read_page: + .type fw_flash_page_prog.constprop.29, %function +fw_flash_page_prog.constprop.29: stp x29, x30, [sp, -64]! + adrp x4, .LANCHOR0 add x29, sp, 0 - str x19, [sp,16] - uxtb w19, w0 - str x1, [x29,32] - str x2, [x29,40] - str x3, [x29,48] - str x4, [x29,56] - bl sblk_wait_write_queue_completed - ldr x1, [x29,32] - mov w0, w19 - ldr x2, [x29,40] - ldr x3, [x29,48] - ldr x4, [x29,56] - bl flash_read_page_en - ldr x19, [sp,16] - ldp x29, x30, [sp], 64 - ret - .size ftl_read_page, .-ftl_read_page - .align 2 - .global ftl_read_ppa_page - .type ftl_read_ppa_page, %function -ftl_read_ppa_page: - stp x29, x30, [sp, -64]! - mov w5, 1 - mov w4, w3 - add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w0 - adrp x0, .LANCHOR0+744 - mov w19, 24 - str x4, [x29,56] + add x4, x4, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - ldrb w0, [x0,#:lo12:.LANCHOR0+744] - mov x22, x1 - mov x21, x2 - sub w19, w19, w0 - lsl w5, w5, w0 - sub w5, w5, #1 - lsr w19, w20, w19 - and w19, w19, w5 - bl sblk_wait_write_queue_completed - ldr x4, [x29,56] - uxtb w19, w19 - mov w1, w20 - mov x2, x22 - mov x3, x21 - mov w0, w19 - bl flash_read_page_en - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 - ret - .size ftl_read_ppa_page, .-ftl_read_ppa_page - .align 2 - .global sblk_read_page - .type sblk_read_page, %function -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] - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - add x24, x26, :lo12:.LANCHOR0 - uxtb w21, w1 - adrp x28, .LC0 - mov x23, x0 stp x19, x20, [sp,16] - add x27, x24, 800 - mov x19, x0 - mov w20, w21 - add x28, x28, :lo12:.LC0 -.L2203: - cbz w20, .L2226 - ldrb w25, [x19] - ldr w22, [x19,40] -.L2204: + 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] + bl nandc_bch_sel + adrp x0, .LANCHOR2+15 + ldr x3, [x29,56] + ldrb w0, [x0,#:lo12:.LANCHOR2+15] + cmp w0, 9 + bne .L2077 + adrp x20, .LANCHOR3 + mov w1, 255 + add x20, x20, :lo12:.LANCHOR3 + mov w2, 16384 + ldr x0, [x20,1488] + bl ftl_memset + ldr x4, [x20,1488] + mov w1, w19 + ldr x3, [x29,56] + mov x2, x21 + mov x5, x4 + mov w6, 4 + mov w0, 0 + bl flash_dual_page_prog + b .L2079 +.L2077: + mov w0, 0 + mov w1, w19 + mov x2, x21 + mov w4, 4 + bl flash_prog_page +.L2079: + mov w19, w0 mov w0, w22 - mov w1, 0 - bl queue_lun_state - cbz w0, .L2227 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2204 -.L2227: - cmp w20, 1 - beq .L2210 - adrp x0, .LANCHOR3+1544 - ldrb w0, [x0,#:lo12:.LANCHOR3+1544] - cbz w0, .L2210 - add x0, x26, :lo12:.LANCHOR0 - mov w3, 1 - ldrb w1, [x0,744] - mov w0, 24 - lsl w3, w3, w1 - sub w0, w0, w1 - lsr w0, w22, w0 - sub w3, w3, #1 - and w3, w3, w0 - ldrb w0, [x19] - cmp w0, 255 - uxth w3, w3 - bne .L2209 - adrp x1, .LANCHOR4 - mov w2, 661 - add x1, x1, :lo12:.LANCHOR4 - mov x0, x28 - add x1, x1, 256 - str x3, [x29,120] - bl printk - bl dump_stack - ldr x3, [x29,120] -.L2209: - ldrb w4, [x19] - mov w5, 1 - ldrb w0, [x24,744] - mov w2, 24 - lsl x4, x4, 6 - add x6, x27, x4 - lsl w5, w5, w0 - sub w0, w2, w0 - sub w5, w5, #1 - ldr w1, [x6,40] - lsr w0, w1, w0 - and w0, w5, w0 - cmp w3, w0, uxth - bne .L2210 - ldrh w0, [x24,3634] - add w22, w0, w22 - cmp w1, w22 - bne .L2210 - ldr w0, [x19,40] - add x22, x24, 2851 - str x6, [x29,96] - sub w20, w20, #1 - ldrb w25, [x27,x4] - str x4, [x29,104] - bl flash_start_plane_read - mov w3, 2 - mov w2, -1 - strb w3, [x19,58] - mov x0, x22 - strb w2, [x19] - mov x1, x19 - strb wzr, [x19,59] - str x3, [x29,112] - str x2, [x29,120] - bl buf_add_tail - ldr x6, [x29,96] - mov x0, x22 - ldr x4, [x29,104] - ldr x3, [x29,112] - mov x1, x6 - ldr x2, [x29,120] - strb w3, [x6,58] - strb wzr, [x6,59] - strb w2, [x27,x4] - bl buf_add_tail - b .L2208 -.L2210: - mov x0, x19 - bl queue_read_cmd -.L2208: - subs w20, w20, #1 - beq .L2226 - add x19, x26, :lo12:.LANCHOR0 - sbfiz x25, x25, 6, 32 - add x19, x19, 800 - add x19, x19, x25 - b .L2203 -.L2226: - adrp x19, .LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - add x19, x19, 800 -.L2214: - cbz w21, .L2228 - ldrb w0, [x23,58] - cmp w0, 13 - bne .L2215 - ldrb w0, [x23] - sub w21, w21, #1 - cmp w0, 255 - beq .L2215 - sbfiz x23, x0, 6, 32 - add x23, x19, x23 -.L2215: - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2214 -.L2228: - mov w0, w21 + bl nandc_bch_sel + 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], 128 + ldp x29, x30, [sp], 64 ret - .size sblk_read_page, .-sblk_read_page + .size fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29 + .text .align 2 .global flash_start_tlc_page_prog .type flash_start_tlc_page_prog, %function flash_start_tlc_page_prog: stp x29, x30, [sp, -80]! + adrp x7, .LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w4 - adrp x4, .LANCHOR0 stp x25, x26, [sp,64] - uxtb w25, w0 - add x0, x4, :lo12:.LANCHOR0 + uxtb w26, w0 + add x0, x7, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] - uxtb w26, w3 + uxtb w25, w3 uxtb w21, w1 ldrb w0, [x0,633] uxtb w22, w2 + mov w20, w4 mov x24, x5 + cmp w0, w25 mov x23, x6 - cmp w0, w26 - mov x19, x4 - bhi .L2230 + mov x19, x7 + bhi .L2081 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 740 - add x1, x1, 272 + mov w2, 749 + add x1, x1, 160 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2230: - add x4, x19, :lo12:.LANCHOR0 - ldrb w0, [x4,633] - cmp w0, w26 - bls .L2229 - add x26, x4, x26, sxtw - ldrb w26, [x26,736] - ldr x19, [x4,536] - mov w0, w26 +.L2081: + add x7, x19, :lo12:.LANCHOR0 + ldrb w0, [x7,633] + cmp w0, w25 + bls .L2080 + add x25, x7, x25, sxtw + ldrb w25, [x25,736] + ldr x19, [x7,536] + mov w0, w25 bl nandc_cs - cbz w25, .L2232 - sxtw x1, w26 - add x1, x1, 8 - add x1, x19, x1, lsl 8 - str w25, [x1,8] -.L2232: - ubfiz x7, x26, 8, 8 + cbz w26, .L2083 + sxtw x0, w25 + add x0, x0, 8 + add x0, x19, x0, lsl 8 + str w26, [x0,8] +.L2083: + ubfiz x7, x25, 8, 8 mov w0, 128 add x19, x19, x7 str w21, [x19,2056] @@ -13849,17 +13109,17 @@ flash_start_tlc_page_prog: sub w0, w20, #1 add w0, w0, w21 bl nandc_set_seed - adrp x1, .LANCHOR2+17 - mov w0, 1 - mov x2, x24 - mov x3, x23 - ldrb w1, [x1,#:lo12:.LANCHOR2+17] - bl nandc_xfer_start - bl nandc_xfer_done + adrp x2, .LANCHOR2+17 + mov w0, w25 + mov w1, 1 + mov x3, x24 + mov x4, x23 + ldrb w2, [x2,#:lo12:.LANCHOR2+17] + bl nandc_xfer str w22, [x19,2056] - mov w0, w26 + mov w0, w25 bl nandc_de_cs -.L2229: +.L2080: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13939,6 +13199,1622 @@ queue_tlc_prog_cmd: ret .size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd .align 2 + .global sblk_3d_tlc_dump_prog + .type sblk_3d_tlc_dump_prog, %function +sblk_3d_tlc_dump_prog: + stp x29, x30, [sp, -48]! + mov w3, 24 + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + mov x20, x0 + 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 + lsl w21, w22, w3 + sub w19, w19, #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] + mov w1, w22 + ldr x6, [x20,24] + mov w3, w19 + mov w4, w21 + mov w2, 26 + mov w0, 0 + bl flash_start_tlc_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 + mov w2, 26 + mov w0, 0 + bl flash_start_tlc_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 w2, 16 + mov w1, 3 + mov w0, 0 + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr w0, [x20,40] + mov w1, 64 + bl flash_wait_device_ready + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 48 + ret + .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog + .align 2 + .global flash_start_3d_mlc_page_prog + .type flash_start_3d_mlc_page_prog, %function +flash_start_3d_mlc_page_prog: + stp x29, x30, [sp, -64]! + adrp x5, .LANCHOR0 + add x29, sp, 0 + stp x21, x22, [sp,32] + uxtb w22, w0 + add x0, x5, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + uxtb w20, w1 + mov w21, w2 + ldrb w0, [x0,633] + mov x19, x5 + cmp w0, w20 + bhi .L2090 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 781 + add x1, x1, 192 + add x0, x0, :lo12:.LC0 + str x4, [x29,48] + str x3, [x29,56] + bl printk + bl dump_stack + ldr x4, [x29,48] + ldr x3, [x29,56] +.L2090: + add x5, x19, :lo12:.LANCHOR0 + ldrb w0, [x5,633] + cmp w0, w20 + bls .L2089 + add x20, x5, x20, sxtw + ldrb w20, [x20,736] + ldr x19, [x5,536] + mov w0, w20 + str x4, [x29,48] + str x3, [x29,56] + bl nandc_cs + ubfiz x1, x20, 8, 8 + mov w0, 128 + add x19, x19, x1 + 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] + mov w0, w21 + bl nandc_set_seed + adrp x2, .LANCHOR2+17 + ldr x3, [x29,56] + ldr x4, [x29,48] + mov w0, w20 + mov w1, 1 + ldrb w2, [x2,#:lo12:.LANCHOR2+17] + bl nandc_xfer + str w22, [x19,2056] +.L2089: + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 64 + ret + .size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog + .align 2 + .global sblk_mlc_dump_prog + .type sblk_mlc_dump_prog, %function +sblk_mlc_dump_prog: + stp x29, x30, [sp, -48]! + mov w1, 24 + add x29, sp, 0 + stp x19, x20, [sp,16] + str x21, [sp,32] + mov x20, x0 + ldr w3, [x0,40] + adrp x0, .LANCHOR0+744 + ldrb w19, [x0,#:lo12:.LANCHOR0+744] + mov w0, 1 + sub w1, w1, w19 + lsl w21, w0, w1 + lsl w0, w0, w19 + sub w21, w21, #1 + sub w19, w0, #1 + and w21, w21, w3 + lsr w3, w3, w1 + and w19, w19, w3 + uxtb w19, w19 + mov w0, w19 + bl zftl_flash_exit_slc_mode + ldr w2, [x20,40] + adrp x0, .LC167 + mov w1, w21 + add x0, x0, :lo12:.LC167 + add w3, w2, 1 + bl printk + ldr x3, [x20,8] + mov w1, w19 + ldr x4, [x20,24] + mov w2, w21 + mov w0, 16 + bl flash_start_3d_mlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x3, [x20,8] + add w2, w21, 1 + ldr x4, [x20,24] + mov w1, w19 + mov w0, 16 + bl flash_start_3d_mlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr w0, [x20,40] + mov w1, 64 + bl flash_wait_device_ready + mov w20, w0 + mov w0, w19 + bl nandc_de_cs + ldr x21, [sp,32] + mov w0, w20 + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 48 + ret + .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog + .align 2 + .global flash_start_page_prog + .type flash_start_page_prog, %function +flash_start_page_prog: + stp x29, x30, [sp, -96]! + mov w5, 1 + add x29, sp, 0 + stp x25, x26, [sp,64] + adrp x26, .LANCHOR0 + stp x21, x22, [sp,32] + uxtb w21, w0 + add x0, x26, :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] + mov x23, x2 + ldrb w0, [x0,633] + mov x22, x3 + sub w19, w19, w20 + lsl w20, w5, w20 + lsr w1, w1, w19 + sub w20, w20, #1 + and w20, w1, w20 + uxtb w20, w20 + cmp w0, w20 + bhi .L2094 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 832 + add x1, x1, 224 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2094: + add x28, x26, :lo12:.LANCHOR0 + ldrb w0, [x28,633] + cmp w0, w20 + bls .L2093 + mov w0, 1 + ldr x27, [x28,536] + lsl w19, w0, w19 + sub w19, w19, #1 + add x0, x28, x20, sxtw + and w19, w24, w19 + ldrb w25, [x0,736] + bl nandc_rdy_status + cbnz w0, .L2096 + ldrb w0, [x28,633] + cmp w0, 1 + bne .L2097 + bl nandc_wait_flash_ready + b .L2096 +.L2097: + mov w0, w20 + mov w1, w19 + mov w2, 64 + bl flash_wait_device_ready_raw +.L2096: + mov w0, w25 + ubfx x24, x24, 24, 2 + bl hynix_reconfig_rr_para + mov w0, w25 + bl nandc_cs + cbnz w24, .L2098 + mov w0, w19 + bl slc_phy_page_address_calc + mov w19, w0 + ldrb w0, [x26,#:lo12:.LANCHOR0] + cbz w0, .L2099 + mov w0, w25 + bl zftl_flash_enter_slc_mode + b .L2099 +.L2098: + mov w0, w25 + bl zftl_flash_exit_slc_mode +.L2099: + ubfiz x1, x25, 8, 8 + mov w0, 128 + add x20, x27, x1 + str w0, [x20,2056] + and w0, w19, 255 + str wzr, [x20,2052] + str wzr, [x20,2052] + str w0, [x20,2052] + lsr w0, w19, 8 + str w0, [x20,2052] + lsr w0, w19, 16 + str w0, [x20,2052] + mov w0, w19 + bl nandc_set_seed + adrp x2, .LANCHOR2+17 + mov w0, w25 + 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 + bl nandc_de_cs +.L2093: + 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_start_page_prog, .-flash_start_page_prog + .align 2 + .type queue_prog_cmd, %function +queue_prog_cmd: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x19, [sp,16] + mov x19, x0 + mov w0, 16 + ldr x2, [x19,8] + ldr x3, [x19,24] + ldr w1, [x19,40] + bl flash_start_page_prog + adrp x0, .LANCHOR0 + ldr w4, [x19,40] + add x3, x0, :lo12:.LANCHOR0 + ldrb w2, [x3,2851] + cmp w2, 255 + beq .L2104 + ldrb w5, [x3,744] + mov w1, 1 + mov w7, 24 + add x3, x3, 800 + lsl w1, w1, w5 + sub w7, w7, w5 + sub w1, w1, #1 + asr w4, w4, w7 + uxth w1, w1 + and w4, w1, w4 +.L2106: + add x5, x3, x2, lsl 6 + ldr w6, [x5,40] + lsr w6, w6, w7 + and w6, w1, w6 + cmp w4, w6 + bne .L2105 + ldrb w6, [x5,58] + add x5, x5, 48 + cmp w6, 7 + bne .L2105 + mov w1, 3 + strb w1, [x5,10] + b .L2104 +.L2105: + lsl x2, x2, 6 + ldrb w2, [x3,x2] + cmp w2, 255 + bne .L2106 +.L2104: + 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 + strb w1, [x19] + mov x1, x19 + bl buf_add_tail + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size queue_prog_cmd, .-queue_prog_cmd + .align 2 + .global flash_complete_plane_page_read + .type flash_complete_plane_page_read, %function +flash_complete_plane_page_read: + stp x29, x30, [sp, -80]! + add x29, sp, 0 + stp x23, x24, [sp,48] + adrp x23, .LANCHOR0 + mov w24, w0 + add x0, x23, :lo12:.LANCHOR0 + str x25, [sp,64] + stp x21, x22, [sp,32] + stp x19, x20, [sp,16] + mov x22, x1 + mov w19, 24 + ldrb w20, [x0,744] + mov w1, 1 + mov x21, x2 + ldrb w0, [x0,633] + sub w19, w19, w20 + lsl w20, w1, w20 + lsr w2, w24, w19 + sub w20, w20, #1 + and w20, w2, w20 + uxtb w20, w20 + cmp w0, w20 + bhi .L2112 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 921 + add x1, x1, 248 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2112: + add x3, x23, :lo12:.LANCHOR0 + mov w0, -1 + ldrb w1, [x3,633] + cmp w1, w20 + bls .L2113 + mov w2, 1 + add x20, x3, x20, sxtw + ldrb w20, [x20,736] + lsl w19, w2, w19 + add w19, w19, w0 + ubfx x25, x24, 24, 2 + mov w0, w20 + and w19, w19, w24 + ldr x24, [x3,536] + bl nandc_cs + cbnz w25, .L2114 + mov w0, w19 + bl slc_phy_page_address_calc + mov w19, w0 +.L2114: + add x0, 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 + add x5, x24, x5, lsl 8 + mov w0, 6 + b .L2129 +.L2115: + ldr x0, [x0,624] + add x5, x24, x5, lsl 8 + ldrb w0, [x0,12] + cmp w0, 3 + bne .L2117 + mov w0, 5 +.L2129: + str w0, [x5,2056] + str wzr, [x5,2052] + str wzr, [x5,2052] + str w4, [x5,2052] + str w3, [x5,2052] + str w2, [x5,2052] + b .L2127 +.L2117: + str wzr, [x5,2056] + mov w0, 5 + str wzr, [x5,2052] + str wzr, [x5,2052] + str w4, [x5,2052] + str w3, [x5,2052] + str w2, [x5,2052] + str w0, [x5,2056] + str wzr, [x5,2052] + str wzr, [x5,2052] +.L2127: + mov w0, 224 + str w0, [x5,2056] + cbz w25, .L2118 + add x23, x23, :lo12:.LANCHOR0 + ldr x0, [x23,624] + ldrb w0, [x0,12] + cmp w0, 3 + bne .L2118 + ldrb w0, [x23,756] + cbnz w0, .L2118 + sub w1, w25, #1 + add w0, w19, w19, lsl 1 + add w0, w1, w0 + b .L2128 +.L2118: + mov w0, w19 +.L2128: + bl nandc_set_seed + adrp x2, .LANCHOR2+17 + mov w1, 0 + mov x3, x22 + mov x4, x21 + mov w0, w20 + ldrb w2, [x2,#:lo12:.LANCHOR2+17] + bl nandc_xfer + mov w19, w0 + mov w0, w20 + bl nandc_de_cs + mov w0, w19 +.L2113: + 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 flash_complete_plane_page_read, .-flash_complete_plane_page_read + .align 2 + .global flash_complete_page_read + .type flash_complete_page_read, %function +flash_complete_page_read: + stp x29, x30, [sp, -112]! + mov w5, 1 + add x29, sp, 0 + stp x23, x24, [sp,48] + adrp x24, .LANCHOR0 + mov x23, x2 + stp x21, x22, [sp,32] + mov x22, x1 + add x1, x24, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + mov w21, w0 + mov w0, 24 + ldrb w2, [x1,744] + ubfx x25, x21, 24, 2 + sub w0, w0, w2 + lsl w19, w5, w0 + lsl w5, w5, w2 + lsr w20, w21, w0 + sub w5, w5, #1 + and w20, w20, w5 + ldrb w0, [x1,633] + sub w19, w19, #1 + uxtb w20, w20 + and w19, w19, w21 + cmp w0, w20 + bhi .L2131 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 1045 + add x1, x1, 280 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2131: + add x0, x24, :lo12:.LANCHOR0 + add x20, x0, x20, sxtw + ldrb w26, [x20,736] + ldr x20, [x0,536] + mov w0, w26 + bl nandc_cs + cbnz w25, .L2132 + mov w0, w19 + bl slc_phy_page_address_calc + mov w19, w0 +.L2132: + ubfiz x0, x26, 8, 8 + add x1, x20, x0 + mov w0, 5 + str w0, [x1,2056] + 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] + mov w0, 224 + str w0, [x1,2056] + cbz w25, .L2133 + add x0, x24, :lo12:.LANCHOR0 + ldr x1, [x0,624] + ldrb w1, [x1,12] + cmp w1, 3 + bne .L2133 + ldrb w0, [x0,756] + cbnz w0, .L2133 + sub w0, w25, #1 + add w1, w19, w19, lsl 1 + add w0, w0, w1 + b .L2165 +.L2133: + mov w0, w19 +.L2165: + adrp x20, .LANCHOR2 + bl nandc_set_seed + add x27, x20, :lo12:.LANCHOR2 + mov w0, w26 + mov w1, 0 + mov x3, x22 + mov x4, x23 + add x27, x27, 8 + ldrb w2, [x27,9] + bl nandc_xfer + cmn w0, #1 + bne .L2135 + add x28, x24, :lo12:.LANCHOR0 + ldrb w5, [x28,720] + cbz w5, .L2136 + 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] + bl flash_read_page + ldr x5, [x29,104] + strb w5, [x28,720] + cbnz w25, .L2137 +.L2144: + ldrb w2, [x24,#:lo12:.LANCHOR0] + add x1, x24, :lo12:.LANCHOR0 + cbz w2, .L2137 + ldrb w1, [x1,724] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + blt .L2137 + add x20, x20, :lo12:.LANCHOR2 + ldrb w1, [x20,27] + sub w1, w1, #4 + uxtb w1, w1 + cmp w1, 4 + mov w1, 256 + csel w0, w0, w1, hi + b .L2152 +.L2137: + cmn w0, #1 + bne .L2152 +.L2145: + adrp x0, .LANCHOR3+1520 + ldr x5, [x0,#:lo12:.LANCHOR3+1520] + cbnz x5, .L2140 +.L2143: + add x24, x24, :lo12:.LANCHOR0 + adrp x0, .LC168 + add x0, x0, :lo12:.LC168 + mov w1, 0 + mov w2, w21 + mov w3, -1 + ldrb w4, [x24,720] + bl printk + ldrb w0, [x24,672] + cbnz w0, .L2141 + mov w0, -1 + b .L2152 +.L2140: + add x4, x20, :lo12:.LANCHOR2 + mov w0, w26 + orr w1, w19, w25, lsl 24 + mov x2, x22 + mov x3, x23 + ldrb w4, [x4,17] + blr x5 + cmn w0, #1 + bne .L2152 + b .L2143 +.L2141: + add x20, x20, :lo12:.LANCHOR2 + mov w0, w26 + orr w1, w19, w25, lsl 24 + mov x2, x22 + 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: + 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 + ret + .size flash_complete_page_read, .-flash_complete_page_read + .align 2 + .type queue_wait_first_req_completed, %function +queue_wait_first_req_completed: + stp x29, x30, [sp, -96]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + ldrb w22, [x0,2851] + cmp w22, 255 + beq .L2260 + add x0, x0, 800 + 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 + ldrh w0, [x0,w2,uxtw #1] + adr x2, .Lrtx2170 + add x0, x2, w0, sxth #2 + br x0 +.Lrtx2170: + .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 + .text +.L2169: + mov w0, w24 + mov w1, 64 + bl flash_wait_device_ready + tbz x0, 6, .L2260 + add x3, x19, :lo12:.LANCHOR0 + add x0, x3, 800 + add x0, x0, x22, lsl 6 + ldr x2, [x0,16] + ldr x1, [x0,8] + cbz x2, .L2177 + ldrb w4, [x0,56] + ldrb w0, [x3,2848] + cmp w4, w0 + csel x1, x1, x2, ne +.L2177: + add x19, x19, :lo12:.LANCHOR0 + mov w0, w24 + add x19, x19, 800 + 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: + 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 x1, x3, x4 + ldrb w20, [x3,x4] + tbz x0, 6, .L2260 + add x3, x3, x20, lsl 6 + ldr x0, [x1,16] + ldr x27, [x1,8] + ldr x24, [x3,8] + cbz x0, .L2178 + ldrb w3, [x1,56] + ldrb w1, [x2,2848] + cmp w3, w1 + csel x27, x27, x0, ne +.L2178: + add x2, x19, :lo12:.LANCHOR0 + add x0, x2, 800 + add x0, x0, x20, lsl 6 + ldr x1, [x0,16] + cbz x1, .L2179 + ldrb w3, [x0,56] + ldrb w0, [x2,2848] + cmp w3, w0 + csel x24, x24, x1, ne +.L2179: + add x21, x19, :lo12:.LANCHOR0 + mov x1, x27 + add x21, x21, 800 + add x26, x21, x22, lsl 6 + add x21, x21, x20, lsl 6 + add x28, x26, 32 + add x26, x26, 16 + ldr x2, [x26,8] + ldr w0, [x26,24] + bl flash_complete_plane_page_read + mov w23, w0 + ldr x2, [x21,24] + mov x1, x24 + ldr w0, [x21,40] + bl flash_complete_plane_page_read + mov w25, w0 + cmn w23, #1 + beq .L2180 + ldr w0, [x28,4] + cmn w0, #1 + beq .L2181 + ldr x1, [x26,8] + ldr w1, [x1,4] + cmp w0, w1 + beq .L2181 +.L2180: + add x4, x19, :lo12:.LANCHOR0 + mov w0, 1 + add x21, x4, 800 + mov w3, 24 + add x21, x21, x22, lsl 6 + ldrb w2, [x4,744] + add x26, x21, 32 + ldrb w4, [x4,2848] + add x21, x21, 16 + ldr w1, [x21,24] + lsl w0, w0, w2 + sub w3, w3, w2 + sub w0, w0, #1 + lsr w2, w1, w3 + lsl w3, w0, w3 + bic w1, w1, w3 + ldr x3, [x21,8] + and w0, w0, w2 + mov x2, x27 + bl flash_read_page_en + mov w23, w0 + ldr w2, [x26,4] + cmn w2, #1 + beq .L2182 + ldr x3, [x21,8] + ldr w4, [x3,4] + cmp w2, w4 + beq .L2182 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 6, .L2182 + adrp x0, .LC169 + ldr w1, [x26,8] + ldr w3, [x3] + add x0, x0, :lo12:.LC169 + bl printk +.L2182: + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 800 + add x0, x0, x22, lsl 6 + ldr w1, [x0,36] + cmn w1, #1 + beq .L2181 + ldr x0, [x0,24] + ldr w0, [x0,4] + cmp w1, w0 + beq .L2181 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 360 + add x1, x1, 312 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2181: + add x3, x19, :lo12:.LANCHOR0 + mov w1, 13 + add x3, x3, 800 + cmn w25, #1 + add x22, x3, x22, lsl 6 + ldrb w0, [x22,2] + str w23, [x22,52] + orr w0, w0, 8 + strb w1, [x22,58] + strb w0, [x22,2] + beq .L2183 + add x3, x3, x20, lsl 6 + ldr w0, [x3,36] + cmn w0, #1 + beq .L2185 + ldr x1, [x3,24] + ldr w1, [x1,4] + cmp w0, w1 + beq .L2185 +.L2183: + add x4, x19, :lo12:.LANCHOR0 + mov w2, 24 + add x21, x4, 800 + mov w0, 1 + add x21, x21, x20, lsl 6 + ldrb w3, [x4,744] + add x22, x21, 32 + ldrb w4, [x4,2848] + add x21, x21, 16 + ldr w1, [x21,24] + sub w2, w2, w3 + lsl w0, w0, w3 + sub w0, w0, #1 + lsr w3, w1, w2 + lsl w2, w0, w2 + and w0, w0, w3 + ldr x3, [x21,8] + bic w1, w1, w2 + mov x2, x24 + bl flash_read_page_en + ldr w2, [x22,4] + cmn w2, #1 + beq .L2187 + ldr x3, [x21,8] + ldr w4, [x3,4] + cmp w2, w4 + beq .L2187 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 6, .L2187 + adrp x0, .LC169 + ldr w1, [x22,8] + ldr w3, [x3] + add x0, x0, :lo12:.LC169 + bl printk +.L2187: + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 800 + add x0, x0, x20, lsl 6 + ldr w1, [x0,36] + cmn w1, #1 + beq .L2185 + ldr x0, [x0,24] + ldr w0, [x0,4] + cmp w1, w0 + beq .L2185 + adrp x1, .LANCHOR4 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR4 + mov w2, 375 + add x1, x1, 312 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2185: + add x19, x19, :lo12:.LANCHOR0 + mov w1, 13 + add x19, x19, 800 + add x19, x19, x20, lsl 6 + str w23, [x19,52] + strb w1, [x19,58] +.L2261: + ldrb w0, [x19,2] + orr w0, w0, 8 + strb w0, [x19,2] + b .L2260 +.L2172: + bl nandc_iqr_wait_flash_ready + mov w0, w24 + mov w1, 64 + bl flash_wait_device_ready + mov w21, w0 + tbz x21, 6, .L2260 + mov w20, 5 + ands w20, w21, w20 + beq .L2188 + add x19, x19, :lo12:.LANCHOR0 + mov w0, 12 + add x19, x19, 800 + mov w2, w21 + add x19, x19, x22, lsl 6 + mov w4, 12 + mov w20, w21 + strb w0, [x19,58] + adrp x0, .LC170 + ldrb w1, [x19,1] + add x0, x0, :lo12:.LC170 + ldr w3, [x19,40] + bl printk + mov w0, -1 + str w0, [x19,52] + b .L2168 +.L2188: + add x4, x19, :lo12:.LANCHOR0 + mov w1, 13 + add x23, x4, 800 + add x23, x23, x22, lsl 6 + strb w1, [x23,58] + ldr x1, [x4,2880] + str w20, [x23,52] + ldr w2, [x1,156] + mov w1, 20041 + movk w1, 0x444b, lsl 16 + cmp w2, w1 + bne .L2260 + ldrh w0, [x23,50] + cbnz w0, .L2260 + ldrb w3, [x4,744] + mov w0, 1 + adrp x21, .LANCHOR3 + ldr w1, [x23,40] + lsl w0, w0, w3 + add x21, x21, :lo12:.LANCHOR3 + mov w2, 24 + sub w0, w0, #1 + sub w2, w2, w3 + ldrb w4, [x4,2848] + lsr w3, w1, w2 + lsl w2, w0, w2 + bic w1, w1, w2 + and w0, w0, w3 + ldr x2, [x21,1528] + ldr x3, [x21,1536] + bl flash_read_page_en + cmn w0, #1 + mov w3, w0 + beq .L2189 + ldr x1, [x23,24] + ldr x0, [x21,1536] + ldr w1, [x1] + ldr w0, [x0] + cmp w1, w0 + beq .L2260 +.L2189: + add x4, x19, :lo12:.LANCHOR0 + adrp x0, .LC171 + add x19, x4, 800 + add x0, x0, :lo12:.LC171 + add x19, x19, x22, lsl 6 + ldrb w4, [x4,720] + ldrb w1, [x19,1] + ldr w2, [x19,40] + bl printk + mov w0, -1 + str w0, [x19,52] + b .L2168 +.L2175: + 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] + mov w0, 1 + add x21, x25, 800 + sub w4, w4, w1 + lsl w0, w0, w1 + sub w0, w0, #1 + lsr w2, w24, w4 + and w2, w0, w2 + add x3, x21, x22, lsl 6 + uxth w2, w2 +.L2191: + ldrb w1, [x3] + cmp w1, 255 + beq .L2262 + sxtw x23, w1 + add x3, x21, x23, lsl 6 + ldrb w1, [x3,58] + cmp w1, w5 + bne .L2191 + ldr w1, [x3,40] + lsr w1, w1, w4 + and w1, w0, w1 + cmp w2, w1 + bne .L2191 + bl nandc_iqr_wait_flash_ready + mov w0, w24 + mov w1, 64 + bl flash_wait_device_ready + mov w20, w0 + tbz x20, 6, .L2259 + ands w1, w20, 15 + beq .L2195 + add x21, x21, x22, lsl 6 + adrp x0, .LC172 + add x0, x0, :lo12:.LC172 + mov w2, w20 + mov w4, 12 + ldrb w1, [x21,1] + ldr w3, [x21,40] + bl printk + mov w0, 12 + strb w0, [x21,58] + mov w0, -1 + str w0, [x21,52] + b .L2194 +.L2195: + add x20, x21, x22, lsl 6 + mov w2, 13 + str w1, [x20,52] + ldr x1, [x25,2880] + strb w2, [x20,58] + ldr w2, [x1,156] + mov w1, 20041 + movk w1, 0x444b, lsl 16 + cmp w2, w1 + bne .L2259 + ldrh w0, [x20,50] + cbnz w0, .L2259 + ldrb w3, [x25,744] + mov w0, 1 + adrp x21, .LANCHOR3 + ldr w1, [x20,40] + lsl w0, w0, w3 + add x21, x21, :lo12:.LANCHOR3 + mov w2, 24 + sub w0, w0, #1 + sub w2, w2, w3 + ldrb w4, [x25,2848] + lsr w3, w1, w2 + lsl w2, w0, w2 + bic w1, w1, w2 + and w0, w0, w3 + ldr x2, [x21,1528] + ldr x3, [x21,1536] + bl flash_read_page_en + cmn w0, #1 + mov w3, w0 + beq .L2197 + ldr x1, [x20,24] + ldr x0, [x21,1536] + ldr w1, [x1] + ldr w0, [x0] + cmp w1, w0 + beq .L2259 +.L2197: + add x4, x19, :lo12:.LANCHOR0 + adrp x0, .LC173 + add x20, x4, 800 + add x0, x0, :lo12:.LC173 + add x20, x20, x22, lsl 6 + ldrb w4, [x4,720] + ldrb w1, [x20,1] + ldr w2, [x20,40] + bl printk + mov w0, -1 + str w0, [x20,52] +.L2259: + mov w20, 0 +.L2194: + add x1, x19, :lo12:.LANCHOR0 + add x1, x1, 800 + 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: + mov w20, -1 + b .L2168 +.L2173: + mov w1, 32 + mov w0, w24 + bl flash_wait_device_ready + tbz x0, 5, .L2260 + ands w20, w0, 15 + add x19, x19, :lo12:.LANCHOR0 + add x19, x19, x22, lsl 6 + beq .L2199 + mov w1, 12 + mov w20, w0 + strb w1, [x19,858] + mov w1, -1 + str w1, [x19,852] + b .L2168 +.L2199: + mov w0, 13 + str w20, [x19,852] + strb w0, [x19,858] + b .L2168 +.L2174: + mov w1, 64 + mov w0, w24 + bl flash_wait_device_ready + tbz x0, 6, .L2260 + add x19, x19, :lo12:.LANCHOR0 + add x19, x19, x22, lsl 6 + str w0, [x19,852] + mov w0, 7 + strb w0, [x19,858] +.L2260: + mov w20, 0 +.L2168: + 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], 96 + ret + .size queue_wait_first_req_completed, .-queue_wait_first_req_completed + .align 2 + .global sblk_prog_page + .type sblk_prog_page, %function +sblk_prog_page: + stp x29, x30, [sp, -112]! + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + mov x19, x0 + uxtb w20, w1 + ldrh w0, [x0,50] + cbz w0, .L2264 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L2264 + adrp x0, .LC174 + ldr w1, [x19,40] + add x0, x0, :lo12:.LC174 + mov w2, w20 + bl printk +.L2264: + adrp x24, .LANCHOR0 + adrp x25, .LC0 + add x23, x24, :lo12:.LANCHOR0 + mov w21, 0 + add x27, x23, 800 + add x25, x25, :lo12:.LC0 +.L2265: + cbz w20, .L2295 + ldrb w26, [x19] + ldr w22, [x19,40] +.L2266: + mov w0, w22 + mov w1, 1 + bl queue_lun_state + cbz w0, .L2296 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2266 +.L2296: + cmp w20, 1 + beq .L2268 + add x0, x24, :lo12:.LANCHOR0 + ldrb w1, [x0,793] + cbnz w1, .L2269 +.L2268: + mov x0, x19 + bl queue_prog_cmd + b .L2270 +.L2269: + ldrb w1, [x0,744] + mov w28, 1 + mov w0, 24 + lsl w28, w28, w1 + sub w0, w0, w1 + lsr w0, w22, w0 + sub w28, w28, #1 + and w28, w28, w0 + ldrb w0, [x19] + cmp w0, 255 + uxth w28, w28 + bne .L2271 + adrp x1, .LANCHOR4 + mov w2, 583 + add x1, x1, :lo12:.LANCHOR4 + mov x0, x25 + add x1, x1, 344 + bl printk + bl dump_stack +.L2271: + ldrb w0, [x19] + mov w4, 1 + ldrb w1, [x23,744] + add x0, x27, x0, lsl 6 + ldr w2, [x0,40] + mov w0, 24 + sub w0, w0, w1 + lsl w1, w4, w1 + sub w1, w1, #1 + lsr w3, w2, w0 + and w1, w1, w3 + cmp w28, w1, uxth + bne .L2272 + ldrh w1, [x23,3536] + ldrb w6, [x23,3538] + sub w3, w0, w1 + lsr w5, w22, w1 + lsl w3, w4, w3 + sub w6, w6, #1 + sub w3, w3, #1 + lsl w0, w4, w1 + uxth w7, w6 + lsr w1, w2, w1 + uxth w3, w3 + and w5, w7, w5 + and w1, w7, w1 + and w5, w3, w5 + and w3, w3, w1 + sub w0, w0, #1 + str x4, [x29,104] + cmp w5, w3 + uxth w0, w0 + beq .L2272 + and w22, w0, w22 + and w0, w0, w2 + cmp w22, w0 + bne .L2272 + cmp w21, w6 + beq .L2272 + ldr w1, [x19,40] + mov w0, 17 + ldr x2, [x19,8] + add w21, w21, 1 + ldr x3, [x19,24] + bl flash_start_page_prog + mov w0, 9 + ldr x4, [x29,104] + strb w0, [x19,58] + mov w0, -1 + strb w4, [x19,59] + mov x1, x19 + strb w0, [x19] + add x0, x23, 2851 + bl buf_add_tail + b .L2270 +.L2272: + mov x0, x19 + mov w21, 0 + bl queue_prog_cmd +.L2270: + subs w20, w20, #1 + beq .L2295 + add x19, x24, :lo12:.LANCHOR0 + sbfiz x26, x26, 6, 32 + add x19, x19, 800 + add x19, x19, x26 + b .L2265 +.L2295: + 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 + ret + .size sblk_prog_page, .-sblk_prog_page + .align 2 + .global sblk_wait_write_queue_completed + .type sblk_wait_write_queue_completed, %function +sblk_wait_write_queue_completed: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x19, [sp,16] + adrp x19, .LANCHOR0 +.L2298: + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0,2851] + cmp w0, 255 + beq .L2300 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2298 +.L2300: + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed + .align 2 + .global ftl_flush + .type ftl_flush, %function +ftl_flush: + stp x29, x30, [sp, -32]! + adrp x2, .LANCHOR0 + add x29, sp, 0 + 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] + add x0, x0, x2, lsl 6 + bl sblk_prog_page +.L2302: + add x2, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR3 + mov w0, -1 + strb wzr, [x2,2873] + strb w0, [x20,1544] + bl sblk_wait_write_queue_completed + bl ftl_write_completed + mov w0, -1 + bl ftl_vpn_decrement + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size ftl_flush, .-ftl_flush + .align 2 + .global zftl_cache_flush + .type zftl_cache_flush, %function +zftl_cache_flush: + adrp x0, .LANCHOR0+2873 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldrb w0, [x0,#:lo12:.LANCHOR0+2873] + cbz w0, .L2306 + bl timer_get_time + adrp x1, .LANCHOR3+1548 + ldr w1, [x1,#:lo12:.LANCHOR3+1548] + add w1, w1, 100 + cmp w0, w1 + bls .L2306 + bl ftl_flush +.L2306: + ldp x29, x30, [sp], 16 + ret + .size zftl_cache_flush, .-zftl_cache_flush + .align 2 + .global ftl_read_page + .type ftl_read_page, %function +ftl_read_page: + stp x29, x30, [sp, -64]! + add x29, sp, 0 + str x19, [sp,16] + uxtb w19, w0 + str x1, [x29,32] + str x2, [x29,40] + str x3, [x29,48] + str x4, [x29,56] + bl sblk_wait_write_queue_completed + ldr x1, [x29,32] + mov w0, w19 + ldr x2, [x29,40] + ldr x3, [x29,48] + ldr x4, [x29,56] + bl flash_read_page_en + ldr x19, [sp,16] + ldp x29, x30, [sp], 64 + ret + .size ftl_read_page, .-ftl_read_page + .align 2 + .global ftl_read_ppa_page + .type ftl_read_ppa_page, %function +ftl_read_ppa_page: + stp x29, x30, [sp, -64]! + mov w5, 1 + mov w4, w3 + add x29, sp, 0 + stp x19, x20, [sp,16] + mov w20, w0 + adrp x0, .LANCHOR0+744 + mov w19, 24 + str x4, [x29,56] + stp x21, x22, [sp,32] + ldrb w0, [x0,#:lo12:.LANCHOR0+744] + mov x22, x1 + mov x21, x2 + sub w19, w19, w0 + lsl w5, w5, w0 + sub w5, w5, #1 + lsr w19, w20, w19 + and w19, w19, w5 + bl sblk_wait_write_queue_completed + ldr x4, [x29,56] + uxtb w19, w19 + mov w1, w20 + mov x2, x22 + mov x3, x21 + mov w0, w19 + bl flash_read_page_en + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 64 + ret + .size ftl_read_ppa_page, .-ftl_read_ppa_page + .align 2 + .global sblk_read_page + .type sblk_read_page, %function +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] + stp x27, x28, [sp,80] + stp x21, x22, [sp,32] + add x24, x26, :lo12:.LANCHOR0 + uxtb w21, w1 + adrp x28, .LC0 + mov x23, x0 + stp x19, x20, [sp,16] + add x27, x24, 800 + mov x19, x0 + mov w20, w21 + add x28, x28, :lo12:.LC0 +.L2313: + cbz w20, .L2336 + ldrb w25, [x19] + ldr w22, [x19,40] +.L2314: + mov w0, w22 + mov w1, 0 + bl queue_lun_state + cbz w0, .L2337 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2314 +.L2337: + cmp w20, 1 + beq .L2320 + adrp x0, .LANCHOR3+1552 + ldrb w0, [x0,#:lo12:.LANCHOR3+1552] + cbz w0, .L2320 + add x0, x26, :lo12:.LANCHOR0 + mov w3, 1 + ldrb w1, [x0,744] + mov w0, 24 + lsl w3, w3, w1 + sub w0, w0, w1 + lsr w0, w22, w0 + sub w3, w3, #1 + and w3, w3, w0 + ldrb w0, [x19] + cmp w0, 255 + uxth w3, w3 + bne .L2319 + adrp x1, .LANCHOR4 + mov w2, 661 + add x1, x1, :lo12:.LANCHOR4 + mov x0, x28 + add x1, x1, 360 + str x3, [x29,120] + bl printk + bl dump_stack + ldr x3, [x29,120] +.L2319: + ldrb w4, [x19] + mov w5, 1 + ldrb w0, [x24,744] + mov w2, 24 + lsl x4, x4, 6 + add x6, x27, x4 + lsl w5, w5, w0 + sub w0, w2, w0 + sub w5, w5, #1 + ldr w1, [x6,40] + lsr w0, w1, w0 + and w0, w5, w0 + cmp w3, w0, uxth + bne .L2320 + ldrh w0, [x24,3634] + add w22, w0, w22 + cmp w1, w22 + bne .L2320 + ldr w0, [x19,40] + add x22, x24, 2851 + str x6, [x29,96] + sub w20, w20, #1 + ldrb w25, [x27,x4] + str x4, [x29,104] + bl flash_start_plane_read + mov w3, 2 + mov w2, -1 + strb w3, [x19,58] + mov x0, x22 + strb w2, [x19] + mov x1, x19 + strb wzr, [x19,59] + str x3, [x29,112] + str x2, [x29,120] + bl buf_add_tail + ldr x6, [x29,96] + mov x0, x22 + ldr x4, [x29,104] + ldr x3, [x29,112] + mov x1, x6 + ldr x2, [x29,120] + strb w3, [x6,58] + strb wzr, [x6,59] + strb w2, [x27,x4] + bl buf_add_tail + b .L2318 +.L2320: + mov x0, x19 + bl queue_read_cmd +.L2318: + 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: + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + add x19, x19, 800 +.L2324: + cbz w21, .L2338 + ldrb w0, [x23,58] + cmp w0, 13 + bne .L2325 + ldrb w0, [x23] + sub w21, w21, #1 + cmp w0, 255 + beq .L2325 + sbfiz x23, x0, 6, 32 + add x23, x19, x23 +.L2325: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2324 +.L2338: + mov w0, w21 + 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 sblk_read_page, .-sblk_read_page + .align 2 .global sblk_tlc_prog_one_page .type sblk_tlc_prog_one_page, %function sblk_tlc_prog_one_page: @@ -13949,16 +14825,16 @@ sblk_tlc_prog_one_page: mov x20, x0 ldr x0, [x0] ldr w21, [x0,40] -.L2238: +.L2340: mov w0, w21 mov w1, 1 bl queue_lun_state mov w19, w0 - cbz w0, .L2240 + cbz w0, .L2342 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2238 -.L2240: + b .L2340 +.L2342: mov x0, x20 bl queue_tlc_prog_cmd ldr x21, [sp,32] @@ -13982,17 +14858,17 @@ sblk_xlc_prog_pages: ldr x0, [x0] mov w23, w2 ldr w19, [x0,40] -.L2242: +.L2344: mov w0, w19 mov w1, 1 bl queue_lun_state - cbz w0, .L2246 + cbz w0, .L2348 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2242 -.L2246: + b .L2344 +.L2348: cmp w23, 2 - bne .L2244 + bne .L2346 adrp x25, .LANCHOR0 ldr x6, [x20] add x25, x25, :lo12:.LANCHOR0 @@ -14085,11 +14961,11 @@ sblk_xlc_prog_pages: strb w0, [x1] add x0, x25, 2851 bl buf_add_tail - b .L2245 -.L2244: + b .L2347 +.L2346: mov x0, x20 bl queue_tlc_prog_cmd -.L2245: +.L2347: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14099,871 +14975,6 @@ sblk_xlc_prog_pages: ret .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .align 2 - .global sblk_3d_tlc_dump_prog - .type sblk_3d_tlc_dump_prog, %function -sblk_3d_tlc_dump_prog: - stp x29, x30, [sp, -48]! - mov w3, 24 - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - mov x20, x0 - mov w22, 1 - ldr w2, [x0,40] - adrp x0, .LANCHOR0+744 - ldrb w19, [x0,#:lo12:.LANCHOR0+744] - adrp x0, .LC172 - add x0, x0, :lo12:.LC172 - sub w3, w3, w19 - lsl w19, w22, w19 - lsl w21, w22, w3 - sub w19, w19, #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] - mov w1, w22 - ldr x6, [x20,24] - mov w3, w19 - mov w4, w21 - mov w2, 26 - mov w0, 0 - bl flash_start_tlc_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 - mov w2, 26 - mov w0, 0 - bl flash_start_tlc_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 w2, 16 - mov w1, 3 - mov w0, 0 - bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr w0, [x20,40] - mov w1, 64 - bl flash_wait_device_ready - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret - .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog - .align 2 - .global flash_start_page_prog - .type flash_start_page_prog, %function -flash_start_page_prog: - stp x29, x30, [sp, -96]! - mov w4, 1 - add x29, sp, 0 - stp x25, x26, [sp,64] - adrp x26, .LANCHOR0 - stp x21, x22, [sp,32] - uxtb w21, w0 - add x0, x26, :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] - mov x23, x2 - ldrb w0, [x0,633] - mov x22, x3 - sub w19, w19, w20 - lsl w20, w4, w20 - lsr w1, w1, w19 - sub w20, w20, #1 - and w20, w1, w20 - uxtb w20, w20 - cmp w0, w20 - bhi .L2249 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 821 - add x1, x1, 304 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L2249: - add x28, x26, :lo12:.LANCHOR0 - ldrb w0, [x28,633] - cmp w0, w20 - bls .L2248 - mov w0, 1 - ldr x27, [x28,536] - lsl w19, w0, w19 - sub w19, w19, #1 - add x0, x28, x20, sxtw - and w19, w24, w19 - ldrb w25, [x0,736] - bl nandc_rdy_status - cbnz w0, .L2251 - ldrb w0, [x28,633] - cmp w0, 1 - bne .L2252 - bl nandc_wait_flash_ready - b .L2251 -.L2252: - mov w0, w20 - mov w1, w19 - mov w2, 64 - bl flash_wait_device_ready_raw -.L2251: - mov w0, w25 - ubfx x24, x24, 24, 2 - bl hynix_reconfig_rr_para - mov w0, w25 - bl nandc_cs - cbnz w24, .L2253 - mov w0, w19 - bl slc_phy_page_address_calc - mov w19, w0 - ldrb w0, [x26,#:lo12:.LANCHOR0] - cbz w0, .L2254 - mov w0, w25 - bl zftl_flash_enter_slc_mode - b .L2254 -.L2253: - mov w0, w25 - bl zftl_flash_exit_slc_mode -.L2254: - ubfiz x1, x25, 8, 8 - mov w0, 128 - add x20, x27, x1 - str w0, [x20,2056] - and w0, w19, 255 - str wzr, [x20,2052] - str wzr, [x20,2052] - str w0, [x20,2052] - lsr w0, w19, 8 - str w0, [x20,2052] - lsr w0, w19, 16 - str w0, [x20,2052] - mov w0, w19 - bl nandc_set_seed - adrp x1, .LANCHOR2+17 - mov w0, 1 - mov x2, x23 - mov x3, x22 - ldrb w1, [x1,#:lo12:.LANCHOR2+17] - bl nandc_xfer_start - bl nandc_xfer_done - mov x0, 7032 - movk x0, 0xd, lsl 16 - bl __const_udelay - str w21, [x20,2056] - mov w0, w25 - bl nandc_de_cs -.L2248: - 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_start_page_prog, .-flash_start_page_prog - .align 2 - .type queue_prog_cmd, %function -queue_prog_cmd: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - str x19, [sp,16] - mov x19, x0 - mov w0, 16 - ldr x2, [x19,8] - ldr x3, [x19,24] - ldr w1, [x19,40] - bl flash_start_page_prog - adrp x0, .LANCHOR0 - ldr w4, [x19,40] - add x3, x0, :lo12:.LANCHOR0 - ldrb w2, [x3,2851] - cmp w2, 255 - beq .L2259 - ldrb w5, [x3,744] - mov w1, 1 - mov w7, 24 - add x3, x3, 800 - lsl w1, w1, w5 - sub w7, w7, w5 - sub w1, w1, #1 - asr w4, w4, w7 - uxth w1, w1 - and w4, w1, w4 -.L2261: - add x5, x3, x2, lsl 6 - ldr w6, [x5,40] - lsr w6, w6, w7 - and w6, w1, w6 - cmp w4, w6 - bne .L2260 - ldrb w6, [x5,58] - add x5, x5, 48 - cmp w6, 7 - bne .L2260 - mov w1, 3 - strb w1, [x5,10] - b .L2259 -.L2260: - lsl x2, x2, 6 - ldrb w2, [x3,x2] - cmp w2, 255 - bne .L2261 -.L2259: - 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 - strb w1, [x19] - mov x1, x19 - bl buf_add_tail - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size queue_prog_cmd, .-queue_prog_cmd - .align 2 - .global sblk_prog_page - .type sblk_prog_page, %function -sblk_prog_page: - stp x29, x30, [sp, -112]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov x19, x0 - uxtb w20, w1 - ldrh w0, [x0,50] - cbz w0, .L2267 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2267 - adrp x0, .LC173 - ldr w1, [x19,40] - add x0, x0, :lo12:.LC173 - mov w2, w20 - bl printk -.L2267: - adrp x24, .LANCHOR0 - adrp x25, .LC0 - add x23, x24, :lo12:.LANCHOR0 - mov w21, 0 - add x27, x23, 800 - add x25, x25, :lo12:.LC0 -.L2268: - cbz w20, .L2298 - ldrb w26, [x19] - ldr w22, [x19,40] -.L2269: - mov w0, w22 - mov w1, 1 - bl queue_lun_state - cbz w0, .L2299 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2269 -.L2299: - cmp w20, 1 - beq .L2271 - add x0, x24, :lo12:.LANCHOR0 - ldrb w1, [x0,793] - cbnz w1, .L2272 -.L2271: - mov x0, x19 - bl queue_prog_cmd - b .L2273 -.L2272: - ldrb w1, [x0,744] - mov w28, 1 - mov w0, 24 - lsl w28, w28, w1 - sub w0, w0, w1 - lsr w0, w22, w0 - sub w28, w28, #1 - and w28, w28, w0 - ldrb w0, [x19] - cmp w0, 255 - uxth w28, w28 - bne .L2274 - adrp x1, .LANCHOR4 - mov w2, 583 - add x1, x1, :lo12:.LANCHOR4 - mov x0, x25 - add x1, x1, 328 - bl printk - bl dump_stack -.L2274: - ldrb w0, [x19] - mov w4, 1 - ldrb w1, [x23,744] - add x0, x27, x0, lsl 6 - ldr w2, [x0,40] - mov w0, 24 - sub w0, w0, w1 - lsl w1, w4, w1 - sub w1, w1, #1 - lsr w3, w2, w0 - and w1, w1, w3 - cmp w28, w1, uxth - bne .L2275 - ldrh w1, [x23,3536] - ldrb w6, [x23,3538] - sub w3, w0, w1 - lsr w5, w22, w1 - lsl w3, w4, w3 - sub w6, w6, #1 - sub w3, w3, #1 - lsl w0, w4, w1 - uxth w7, w6 - lsr w1, w2, w1 - uxth w3, w3 - and w5, w7, w5 - and w1, w7, w1 - and w5, w3, w5 - and w3, w3, w1 - sub w0, w0, #1 - str x4, [x29,104] - cmp w5, w3 - uxth w0, w0 - beq .L2275 - and w22, w0, w22 - and w0, w0, w2 - cmp w22, w0 - bne .L2275 - cmp w21, w6 - beq .L2275 - ldr w1, [x19,40] - mov w0, 17 - ldr x2, [x19,8] - add w21, w21, 1 - ldr x3, [x19,24] - bl flash_start_page_prog - mov w0, 9 - ldr x4, [x29,104] - strb w0, [x19,58] - mov w0, -1 - strb w4, [x19,59] - mov x1, x19 - strb w0, [x19] - add x0, x23, 2851 - bl buf_add_tail - b .L2273 -.L2275: - mov x0, x19 - mov w21, 0 - bl queue_prog_cmd -.L2273: - subs w20, w20, #1 - beq .L2298 - add x19, x24, :lo12:.LANCHOR0 - sbfiz x26, x26, 6, 32 - add x19, x19, 800 - add x19, x19, x26 - b .L2268 -.L2298: - 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 - ret - .size sblk_prog_page, .-sblk_prog_page - .align 2 - .global ftl_flush - .type ftl_flush, %function -ftl_flush: - stp x29, x30, [sp, -32]! - adrp x2, .LANCHOR0 - add x29, sp, 0 - add x0, x2, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - mov x19, x2 - adrp x20, .LANCHOR3 - ldrb w1, [x0,2873] - cbz w1, .L2301 - add x2, x20, :lo12:.LANCHOR3 - add x0, x0, 800 - ldrb w2, [x2,1545] - add x0, x0, x2, lsl 6 - bl sblk_prog_page -.L2301: - add x2, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR3 - mov w0, -1 - strb wzr, [x2,2873] - strb w0, [x20,1545] - bl sblk_wait_write_queue_completed - bl ftl_write_completed - mov w0, -1 - bl ftl_vpn_decrement - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size ftl_flush, .-ftl_flush - .align 2 - .global zftl_cache_flush - .type zftl_cache_flush, %function -zftl_cache_flush: - adrp x0, .LANCHOR0+2873 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+2873] - cbz w0, .L2305 - bl timer_get_time - adrp x1, .LANCHOR3+1548 - ldr w1, [x1,#:lo12:.LANCHOR3+1548] - add w1, w1, 100 - cmp w0, w1 - bls .L2305 - bl ftl_flush -.L2305: - ldp x29, x30, [sp], 16 - ret - .size zftl_cache_flush, .-zftl_cache_flush - .align 2 - .global flash_dual_page_prog - .type flash_dual_page_prog, %function -flash_dual_page_prog: - stp x29, x30, [sp, -112]! - add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb x21, w0 - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - mov w22, w1 - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - mov x28, x2 - mov x20, x21 - ldrb w19, [x0,744] - add x21, x21, 8 - ldr x23, [x0,536] - mov w0, 24 - sub w19, w0, w19 - mov w0, 1 - lsl w19, w0, w19 - adrp x0, .LANCHOR2 - str x0, [x29,104] - sub w19, w19, #1 - mov x27, x3 - mov x26, x4 - ldr w2, [x0,#:lo12:.LANCHOR2] - mov x25, x5 - mov w3, w6 - add x21, x23, x21, lsl 8 - and w19, w1, w19 - ubfx x24, x22, 24, 2 - tbz x2, 4, .L2310 - adrp x0, .LC174 - mov w2, w24 - add x0, x0, :lo12:.LC174 - bl printk -.L2310: - bl nandc_wait_flash_ready - mov w0, w20 - bl nandc_cs - mov w0, w20 - cbnz w24, .L2311 - bl zftl_flash_enter_slc_mode - b .L2312 -.L2311: - bl zftl_flash_exit_slc_mode -.L2312: - ubfiz x0, x20, 8, 8 - mov w4, 128 - add x23, x23, x0 - and w0, w19, 255 - str x4, [x29,96] - str w4, [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 x3, x27 - mov x2, x28 - mov w27, 16 - add x24, x0, :lo12:.LANCHOR2 - mov w0, 1 - ldrb w1, [x24,17] - bl nandc_xfer_start - bl nandc_xfer_done - str w27, [x23,2056] - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr x4, [x29,96] - add w0, w19, 1 - str w4, [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 w1, [x24,17] - mov x2, x26 - mov x3, x25 - mov w0, 1 - bl nandc_xfer_start - bl nandc_xfer_done - str w27, [x23,2056] - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - mov x0, x21 - bl flash_read_status - mov w21, w0 - mov w0, w20 - and w19, w21, 4 - bl nandc_de_cs - tbz x21, 2, .L2313 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2313 - adrp x0, .LC175 - mov w1, w22 - add x0, x0, :lo12:.LC175 - mov w2, w19 - bl printk -.L2313: - 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], 112 - ret - .size flash_dual_page_prog, .-flash_dual_page_prog - .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] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - adrp x21, .LANCHOR2 - mov x22, x23 - ldrb w19, [x0,744] - add x23, x23, 8 - ldr x20, [x0,536] - mov w0, 24 - sub w19, w0, w19 - mov w0, 1 - lsl w19, w0, w19 - ldr w0, [x21,#:lo12:.LANCHOR2] - mov w24, w1 - sub w19, w19, #1 - mov x25, x3 - mov x26, x2 - mov w3, w4 - add x23, x20, x23, lsl 8 - and w19, w1, w19 - ubfx x27, x24, 24, 2 - tbz x0, 4, .L2324 - adrp x0, .LC174 - mov w2, w27 - add x0, x0, :lo12:.LC174 - bl printk -.L2324: - bl nandc_wait_flash_ready - mov w0, w22 - bl hynix_reconfig_rr_para - mov w0, w22 - bl nandc_cs - mov w0, w22 - cbnz w27, .L2325 - bl zftl_flash_enter_slc_mode - b .L2326 -.L2325: - bl zftl_flash_exit_slc_mode -.L2326: - ubfiz x4, x22, 8, 8 - mov w0, 128 - add x20, x20, x4 - add x21, x21, :lo12:.LANCHOR2 - str w0, [x20,2056] - and w0, w19, 255 - str wzr, [x20,2052] - str wzr, [x20,2052] - str w0, [x20,2052] - lsr w0, w19, 8 - str w0, [x20,2052] - lsr w0, w19, 16 - str w0, [x20,2052] - mov w0, w19 - bl nandc_set_seed - ldrb w1, [x21,17] - mov x2, x26 - mov x3, x25 - mov w0, 1 - bl nandc_xfer_start - bl nandc_xfer_done - mov x0, 7032 - movk x0, 0xd, lsl 16 - bl __const_udelay - mov w0, 16 - str w0, [x20,2056] - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - mov x0, x23 - bl flash_read_status - mov w20, w0 - mov w0, w22 - and w19, w20, 4 - bl nandc_de_cs - tbz x20, 2, .L2327 - adrp x0, .LC175 - mov w1, w24 - add x0, x0, :lo12:.LC175 - mov w2, w19 - bl printk -.L2327: - mov w0, w19 - 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], 96 - ret - .size flash_prog_page, .-flash_prog_page - .align 2 - .global flash_test_blk - .type flash_test_blk, %function -flash_test_blk: - stp x29, x30, [sp, -48]! - mov w2, 32 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR3 - uxth w20, w1 - add x19, x19, :lo12:.LANCHOR3 - mov w1, 165 - stp x21, x22, [sp,32] - uxtb w22, w0 - ldr x0, [x19,1488] - bl ftl_memset - ldr x0, [x19,1504] - mov w1, 90 - mov w2, 8 - bl ftl_memset - adrp x0, .LANCHOR0+2 - ldrh w0, [x0,#:lo12:.LANCHOR0+2] - mul w20, w20, w0 - mov w0, w22 - mov w1, w20 - bl flash_erase_block - cmn w0, #1 - bne .L2335 -.L2337: - mov w19, -1 - b .L2336 -.L2335: - adrp x21, .LANCHOR2 - ldr x2, [x19,1488] - add x21, x21, :lo12:.LANCHOR2 - ldr x3, [x19,1504] - mov w0, w22 - mov w1, w20 - add x21, x21, 8 - ldrb w4, [x21,9] - bl flash_prog_page - cmn w0, #1 - beq .L2337 - ldr x2, [x19,1488] - mov w0, w22 - ldr x3, [x19,1504] - mov w1, w20 - ldrb w4, [x21,9] - bl flash_read_page - cmn w0, #1 - beq .L2337 - ldr x0, [x19,1488] - ldr w1, [x0] - mov w0, 42405 - bfi w0, w0, 16, 16 - cmp w1, w0 - bne .L2337 - ldr x0, [x19,1504] - ldr w1, [x0] - mov w0, 23130 - bfi w0, w0, 16, 16 - cmp w1, w0 - csetm w19, ne -.L2336: - mov w1, w20 - mov w0, w22 - bl flash_erase_block - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret - .size flash_test_blk, .-flash_test_blk - .section .text.unlikely - .align 2 - .type fw_flash_page_prog.constprop.30, %function -fw_flash_page_prog.constprop.30: - stp x29, x30, [sp, -64]! - adrp x4, .LANCHOR0 - 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] - bl nandc_bch_sel - adrp x0, .LANCHOR2+15 - ldr x3, [x29,56] - ldrb w0, [x0,#:lo12:.LANCHOR2+15] - cmp w0, 9 - bne .L2345 - adrp x20, .LANCHOR3 - mov w1, 255 - add x20, x20, :lo12:.LANCHOR3 - mov w2, 16384 - ldr x0, [x20,1488] - bl ftl_memset - ldr x4, [x20,1488] - mov w1, w19 - ldr x3, [x29,56] - mov x2, x21 - mov x5, x4 - mov w6, 4 - mov w0, 0 - bl flash_dual_page_prog - b .L2347 -.L2345: - mov w0, 0 - mov w1, w19 - mov x2, x21 - mov w4, 4 - bl flash_prog_page -.L2347: - mov w19, w0 - mov w0, w22 - bl nandc_bch_sel - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 - ret - .size fw_flash_page_prog.constprop.30, .-fw_flash_page_prog.constprop.30 - .text - .align 2 - .global flash_start_3d_mlc_page_prog - .type flash_start_3d_mlc_page_prog, %function -flash_start_3d_mlc_page_prog: - stp x29, x30, [sp, -64]! - adrp x5, .LANCHOR0 - add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w22, w0 - add x0, x5, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - uxtb w20, w1 - mov w21, w2 - ldrb w0, [x0,633] - mov x23, x3 - mov x24, x4 - mov x19, x5 - cmp w0, w20 - bhi .L2349 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 772 - add x1, x1, 344 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L2349: - add x5, x19, :lo12:.LANCHOR0 - ldrb w0, [x5,633] - cmp w0, w20 - bls .L2348 - add x20, x5, x20, sxtw - ldrb w20, [x20,736] - ldr x19, [x5,536] - mov w0, w20 - ubfiz x20, x20, 8, 8 - add x19, x19, x20 - bl nandc_cs - mov w0, 128 - 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] - mov w0, w21 - bl nandc_set_seed - adrp x1, .LANCHOR2+17 - mov w0, 1 - mov x2, x23 - mov x3, x24 - ldrb w1, [x1,#:lo12:.LANCHOR2+17] - bl nandc_xfer_start - bl nandc_xfer_done - str w22, [x19,2056] -.L2348: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 - ret - .size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog - .align 2 .global sblk_3d_mlc_prog_pages .type sblk_3d_mlc_prog_pages, %function sblk_3d_mlc_prog_pages: @@ -14982,19 +14993,19 @@ sblk_3d_mlc_prog_pages: mov w25, 24 mov w26, 4 add x27, x23, 2851 -.L2352: - cbz w22, .L2356 +.L2350: + cbz w22, .L2354 ldr x0, [x20] ldr w19, [x0,40] -.L2353: +.L2351: mov w0, w19 mov w1, 1 bl queue_lun_state - cbz w0, .L2357 + cbz w0, .L2355 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2353 -.L2357: + b .L2351 +.L2355: ldr x0, [x20] sub w22, w22, #1 ldr w3, [x0,40] @@ -15034,8 +15045,8 @@ sblk_3d_mlc_prog_pages: mov x0, x27 strb w24, [x1,59] bl buf_add_tail - b .L2352 -.L2356: + b .L2350 +.L2354: mov w0, w22 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -15046,65 +15057,6 @@ sblk_3d_mlc_prog_pages: ret .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages .align 2 - .global sblk_mlc_dump_prog - .type sblk_mlc_dump_prog, %function -sblk_mlc_dump_prog: - stp x29, x30, [sp, -48]! - mov w1, 24 - add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov x20, x0 - ldr w3, [x0,40] - adrp x0, .LANCHOR0+744 - ldrb w19, [x0,#:lo12:.LANCHOR0+744] - mov w0, 1 - sub w1, w1, w19 - lsl w21, w0, w1 - lsl w0, w0, w19 - sub w21, w21, #1 - sub w19, w0, #1 - and w21, w21, w3 - lsr w3, w3, w1 - and w19, w19, w3 - uxtb w19, w19 - mov w0, w19 - bl zftl_flash_exit_slc_mode - ldr w2, [x20,40] - adrp x0, .LC176 - mov w1, w21 - add x0, x0, :lo12:.LC176 - add w3, w2, 1 - bl printk - ldr x3, [x20,8] - mov w1, w19 - ldr x4, [x20,24] - mov w2, w21 - mov w0, 16 - bl flash_start_3d_mlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr x3, [x20,8] - add w2, w21, 1 - ldr x4, [x20,24] - mov w1, w19 - mov w0, 16 - bl flash_start_3d_mlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr w0, [x20,40] - mov w1, 64 - bl flash_wait_device_ready - mov w20, w0 - mov w0, w19 - bl nandc_de_cs - ldr x21, [sp,32] - mov w0, w20 - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 - ret - .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog - .align 2 .global flash_prog_page_en .type flash_prog_page_en, %function flash_prog_page_en: @@ -15127,62 +15079,62 @@ flash_prog_page_en: ubfx x25, x20, 24, 2 cmp w1, w21 mov x24, x0 - bhi .L2360 + bhi .L2357 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 554 + mov w2, 560 add x1, x1, 376 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2360: +.L2357: add x1, x24, :lo12:.LANCHOR0 mov w0, -1 ldrb w2, [x1,633] cmp w2, w21 - bls .L2361 + bls .L2358 add x0, x1, x21, sxtw mov w19, w20 ldrb w26, [x0,736] - cbnz w25, .L2362 + cbnz w25, .L2359 adrp x0, .LANCHOR0 ldrb w0, [x0,#:lo12:.LANCHOR0] - cbz w0, .L2363 + cbz w0, .L2360 ldrb w0, [x1,1] - cbz w0, .L2362 -.L2363: + cbz w0, .L2359 +.L2360: 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, .L2364 + cbz w2, .L2361 add w19, w19, w1, lsl 1 - b .L2362 -.L2364: + b .L2359 +.L2361: add x0, x0, 4 ldrh w0, [x0,w1,uxtw 1] add w19, w0, w19 -.L2362: - adrp x25, .LC177 - adrp x24, .LC178 - adrp x0, .LC179 - add x25, x25, :lo12:.LC177 - add x0, x0, :lo12:.LC179 - add x24, x24, :lo12:.LC178 +.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 str x0, [x29,120] -.L2368: +.L2365: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L2365 + tbz x0, 4, .L2362 mov x0, x25 mov w1, w26 mov w2, w20 mov w3, w19 bl printk -.L2365: +.L2362: mov w0, w26 mov w1, w19 mov x2, x23 @@ -15190,7 +15142,7 @@ flash_prog_page_en: mov w4, w27 bl flash_prog_page mov w5, w0 - cbz w28, .L2366 + cbz w28, .L2363 adrp x6, .LANCHOR3 mov w4, w27 add x7, x6, :lo12:.LANCHOR3 @@ -15205,22 +15157,22 @@ flash_prog_page_en: cmp w0, 512 cset w4, eq ldr x6, [x29,104] - cbnz w4, .L2367 + cbnz w4, .L2364 cmn w0, #1 - beq .L2367 + beq .L2364 ldr x7, [x29,112] ldr w1, [x23] ldr x5, [x29,96] ldr x0, [x7,1528] ldr w0, [x0] cmp w1, w0 - bne .L2367 + bne .L2364 ldr x0, [x7,1536] ldr w1, [x22] ldr w0, [x0] cmp w1, w0 - beq .L2366 -.L2367: + beq .L2363 +.L2364: mov w2, 4 mov x0, x24 mov w3, w2 @@ -15235,42 +15187,42 @@ flash_prog_page_en: bl rknand_print_hex ldr x6, [x29,112] mov w2, 4 - adrp x0, .LC180 + adrp x0, .LC178 mov w3, w2 add x6, x6, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC180 + add x0, x0, :lo12:.LC178 str x6, [x29,112] ldr x1, [x6,1536] bl rknand_print_hex ldr x6, [x29,112] mov w2, 4 - adrp x0, .LC181 + adrp x0, .LC179 mov w3, w2 - add x0, x0, :lo12:.LC181 + add x0, x0, :lo12:.LC179 ldr x1, [x6,1528] bl rknand_print_hex ldr x4, [x29,104] - cbnz w4, .L2368 -.L2370: - adrp x0, .LC182 + cbnz w4, .L2365 +.L2367: + adrp x0, .LC180 mov w1, w20 - add x0, x0, :lo12:.LC182 + add x0, x0, :lo12:.LC180 bl printk adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 587 + mov w2, 593 add x1, x1, 376 add x0, x0, :lo12:.LC0 bl printk bl dump_stack mov w0, -1 - b .L2361 -.L2366: + b .L2358 +.L2363: cmn w5, #1 mov w0, w5 - beq .L2370 -.L2361: + beq .L2367 +.L2358: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15301,20 +15253,20 @@ ftl_prog_page: bl flash_prog_page_en cmn w0, #1 mov w19, w0 - bne .L2389 + bne .L2386 adrp x2, .LANCHOR4 adrp x0, .LC0 add x1, x2, :lo12:.LANCHOR4 add x0, x0, :lo12:.LC0 add x1, x1, 400 - mov w2, 2324 + mov w2, 2344 bl printk bl dump_stack - adrp x0, .LC182 + adrp x0, .LC180 mov w1, w20 - add x0, x0, :lo12:.LC182 + add x0, x0, :lo12:.LC180 bl printk -.L2389: +.L2386: mov w0, w19 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 @@ -15324,75 +15276,94 @@ ftl_prog_page: .global ftl_info_flush .type ftl_info_flush, %function ftl_info_flush: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -128]! mov w1, 0 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - adrp x22, .LANCHOR3 stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] + adrp x20, .LANCHOR0 + add x19, x20, :lo12:.LANCHOR0 + str w0, [x29,124] + stp x21, x22, [sp,32] stp x23, x24, [sp,48] + stp x25, x26, [sp,64] stp x27, x28, [sp,80] - mov w26, w0 - add x0, x22, :lo12:.LANCHOR3 + adrp x21, .LANCHOR3 ldrb w2, [x19,2848] + add x0, x21, :lo12:.LANCHOR3 add x0, x0, 1600 lsl w2, w2, 1 bl ftl_memset + ldrb w0, [x19,3554] + cbz w0, .L2388 ldr x0, [x19,2880] - ldrh w1, [x0,74] - cbz w1, .L2391 + str wzr, [x0,156] strh wzr, [x0,150] -.L2391: - adrp x23, .LANCHOR4 - adrp x24, .LC183 - add x23, x23, :lo12:.LANCHOR4 - mov w25, 0 - add x19, x22, :lo12:.LANCHOR3 - add x24, x24, :lo12:.LC183 - add x23, x23, 416 -.L2402: - add x0, x21, :lo12:.LANCHOR0 - ldrb w27, [x19,1856] - ldrh w20, [x19,1858] - ldr x2, [x0,2880] - ldrh w28, [x0,3634] - ldr w1, [x2,4] - add w1, w1, 1 - str w1, [x2,4] - str w26, [x19,1600] - ldr x3, [x0,2880] - ldr w0, [x3,4] - str w0, [x19,1604] - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2392 +.L2388: + add x0, x20, :lo12:.LANCHOR0 + ldr x0, [x0,2880] + ldrh w1, [x0,74] + cbz w1, .L2389 + 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: + add x2, x20, :lo12:.LANCHOR0 + add x3, x25, 1600 + str x2, [x29,112] + str x3, [x29,104] + ldr x1, [x2,2880] + ldrh w28, [x2,3634] + ldrb w19, [x25,1856] + ldr w0, [x1,4] + ldrh w27, [x25,1858] + add w0, w0, 1 + str w0, [x1,4] + ldr w0, [x29,124] + str w0, [x25,1600] + ldr x0, [x2,2880] + ldrb w1, [x2,2848] + ldr w0, [x0,4] + lsl w1, w1, 9 + str w0, [x25,1604] + mov x0, x23 + 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] ldr w3, [x3,4] - mov x0, x24 - mov w1, w27 - mov w2, w20 bl printk -.L2392: - add x1, x21, :lo12:.LANCHOR0 - ldrh w0, [x19,1858] +.L2390: + add x1, x20, :lo12:.LANCHOR0 + ldrh w0, [x25,1858] ldrh w1, [x1,3596] cmp w1, w0 - bhi .L2393 - adrp x20, .LC0 - add x20, x20, :lo12:.LC0 -.L2398: - ldrb w1, [x19,1857] + bhi .L2391 + adrp x19, .LC0 + add x19, x19, :lo12:.LC0 +.L2396: + ldrb w1, [x25,1857] add w1, w1, 1 uxtb w1, w1 - strb w1, [x19,1857] + strb w1, [x25,1857] cmp w1, 7 - bls .L2394 + bls .L2392 mov x1, 0 -.L2397: - add x0, x21, :lo12:.LANCHOR0 - uxth w25, w1 +.L2395: + add x0, x20, :lo12:.LANCHOR0 + uxth w24, w1 ldr x2, [x0,728] add w0, w1, 8 add x0, x2, x0, sxtw @@ -15400,101 +15371,101 @@ ftl_info_flush: add w0, w2, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2395 - mov x1, x23 - mov w2, 751 - mov x0, x20 + bhi .L2393 + mov x1, x22 + mov w2, 761 + mov x0, x19 bl printk bl dump_stack - b .L2396 -.L2395: + b .L2394 +.L2393: cmp w2, 255 - bne .L2396 + bne .L2394 add x1, x1, 1 cmp x1, 8 - bne .L2397 - mov w25, w1 -.L2396: - strb w25, [x19,1857] - mov w25, 1 + bne .L2395 + mov w24, w1 .L2394: - add x27, x21, :lo12:.LANCHOR0 - ldrb w1, [x19,1857] - ldr x0, [x27,728] + strb w24, [x25,1857] + mov w24, 1 +.L2392: + add x28, x20, :lo12:.LANCHOR0 + ldrb w1, [x25,1857] + ldr x0, [x28,728] add x1, x0, x1 - ldrb w2, [x1,40] - strb w2, [x19,1856] - cmp w2, 255 - beq .L2398 - ldrh w20, [x27,3634] + ldrb w1, [x1,40] + strb w1, [x25,1856] + cmp w1, 255 + beq .L2396 + ldrh w19, [x28,3634] mov w0, 0 - mul w20, w2, w20 - mov w1, w20 + mul w19, w1, w19 + mov w1, w19 bl flash_erase_block - ldrb w4, [x27,2848] - mov w1, w20 + ldrb w4, [x28,2848] + mov w1, w19 mov w0, 0 - add x2, x19, 1920 - add x3, x19, 1600 - add w20, w20, 1 + mov x2, x23 + add x3, x25, 1600 + add w19, w19, 1 bl ftl_prog_page mov w0, 1 - strh w0, [x19,1858] - b .L2399 -.L2393: - madd w20, w27, w28, w20 - cbnz w0, .L2399 - mov w1, w20 + strh w0, [x25,1858] + b .L2397 +.L2391: + madd w19, w19, w28, w27 + cbnz w0, .L2397 + mov w1, w19 bl flash_erase_block -.L2399: - add x4, x21, :lo12:.LANCHOR0 - mov w1, w20 +.L2397: + add x4, x20, :lo12:.LANCHOR0 + mov w1, w19 mov w0, 0 - add x2, x19, 1920 - add x3, x19, 1600 + mov x2, x23 + add x3, x25, 1600 ldrb w4, [x4,2848] bl ftl_prog_page cmn w0, #1 - ldrh w1, [x19,1858] + ldrh w1, [x25,1858] adrp x0, .LANCHOR5 add w1, w1, 1 - strh w1, [x19,1858] - beq .L2400 + strh w1, [x25,1858] + beq .L2398 add x1, x0, :lo12:.LANCHOR5 ldrb w1, [x1,896] - cbz w1, .L2401 -.L2400: + cbz w1, .L2399 +.L2398: add x0, x0, :lo12:.LANCHOR5 strb wzr, [x0,896] - b .L2402 -.L2401: - cbnz w25, .L2403 -.L2411: - add x22, x22, :lo12:.LANCHOR3 - ldrb w0, [x22,1856] + b .L2400 +.L2399: + cbnz w24, .L2401 +.L2409: + add x21, x21, :lo12:.LANCHOR3 + ldrb w0, [x21,1856] cmp w0, 255 - bne .L2405 + bne .L2403 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 787 + mov w2, 797 add x1, x1, 416 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L2405 -.L2403: - ldrb w19, [x19,1857] - adrp x20, .LANCHOR4 + b .L2403 +.L2401: + ldrb w19, [x25,1857] + adrp x22, .LANCHOR4 adrp x23, .LC0 - add x20, x20, :lo12:.LANCHOR4 + add x22, x22, :lo12:.LANCHOR4 add w19, w19, 1 add x23, x23, :lo12:.LC0 - add x20, x20, 416 -.L2406: + add x22, x22, 416 +.L2404: cmp w19, 7 - bhi .L2411 - add x0, x21, :lo12:.LANCHOR0 + bhi .L2409 + add x0, x20, :lo12:.LANCHOR0 ldr x1, [x0,728] add w0, w19, 8 add x0, x1, x0, sxtw @@ -15502,34 +15473,34 @@ ftl_info_flush: add w0, w24, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2407 - mov x1, x20 - mov w2, 780 + bhi .L2405 + mov x1, x22 + mov w2, 790 mov x0, x23 bl printk bl dump_stack - b .L2408 -.L2407: + b .L2406 +.L2405: cmp w24, 255 - beq .L2409 -.L2408: - add x0, x21, :lo12:.LANCHOR0 + beq .L2407 +.L2406: + add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x0,3634] mov w0, 0 mul w1, w24, w1 bl flash_erase_block -.L2409: +.L2407: add w19, w19, 1 uxth w19, w19 - b .L2406 -.L2405: + b .L2404 +.L2403: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 + ldp x29, x30, [sp], 128 ret .size ftl_info_flush, .-ftl_info_flush .align 2 @@ -15561,10 +15532,10 @@ ftl_info_blk_init: str x1, [x23,2880] mov w1, 0 str x24, [x23,584] - adrp x26, .LC184 + adrp x26, .LC182 adrp x27, .LANCHOR2 bl ftl_memset - add x26, x26, :lo12:.LC184 + add x26, x26, :lo12:.LC182 add x0, x19, 960 mov w1, 0 mov w2, 16384 @@ -15576,7 +15547,7 @@ ftl_info_blk_init: strh wzr, [x22,1858] ldrb w0, [x0,40] strb w0, [x22,1856] -.L2432: +.L2433: add x5, x20, :lo12:.LANCHOR0 add w0, w19, 8 sxth w25, w19 @@ -15584,7 +15555,7 @@ ftl_info_blk_init: add x0, x1, x0, sxtw ldrb w1, [x0,32] cmp w1, 255 - beq .L2428 + beq .L2429 ldrh w22, [x5,3634] mov w0, 0 ldrb w4, [x5,2848] @@ -15597,7 +15568,7 @@ ftl_info_blk_init: cmn w0, #1 mov w28, w0 ldr x5, [x29,104] - bne .L2429 + bne .L2430 ldrb w4, [x5,2848] mov w0, 0 add w1, w22, 1 @@ -15605,9 +15576,9 @@ ftl_info_blk_init: mov x3, x23 bl ftl_read_page mov w28, w0 -.L2429: +.L2430: ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L2430 + tbz x0, 12, .L2431 add x0, x20, :lo12:.LANCHOR0 mov w1, w19 mov w2, w28 @@ -15616,39 +15587,39 @@ ftl_info_blk_init: mov x0, x26 ldr w4, [x4] bl printk -.L2430: +.L2431: cmn w28, #1 - beq .L2428 + beq .L2429 add x0, x20, :lo12:.LANCHOR0 ldr x0, [x0,2880] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - beq .L2441 -.L2428: + beq .L2443 +.L2429: sub w19, w19, #1 cmn w19, #1 - bne .L2432 + bne .L2433 mov w25, 0 - b .L2431 -.L2441: + b .L2432 +.L2443: mov w19, w25 -.L2431: - adrp x23, .LANCHOR2 - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L2433 +.L2432: + adrp x24, .LANCHOR2 + ldr w0, [x24,#:lo12:.LANCHOR2] + tbz x0, 12, .L2434 add x0, x20, :lo12:.LANCHOR0 mov w1, w19 mov w2, 4800 ldr x3, [x0,2880] - adrp x0, .LC185 - add x0, x0, :lo12:.LC185 + adrp x0, .LC183 + add x0, x0, :lo12:.LC183 ldr w3, [x3] bl printk -.L2433: +.L2434: cmn w19, #1 - bne .L2434 + bne .L2435 add x0, x21, :lo12:.LANCHOR3 mov w1, 0 add x20, x20, :lo12:.LANCHOR0 @@ -15659,64 +15630,68 @@ ftl_info_blk_init: mov w0, 21574 movk w0, 0x494c, lsl 16 str w0, [x1] - mov w0, 24 + mov w0, 32 movk w0, 0x6, lsl 16 ldr x1, [x20,2880] str w0, [x1,12] - b .L2458 -.L2434: + b .L2460 +.L2435: add x27, x20, :lo12:.LANCHOR0 - add x24, x21, :lo12:.LANCHOR3 + add x23, x21, :lo12:.LANCHOR3 add w0, w25, 8 - add x26, x24, 1600 - mov x3, x26 - mov w4, 4 + add x22, x23, 1920 + add x19, x23, 1600 + mov x2, x22 ldr x1, [x27,728] add x0, x1, x0, sxtw - strb w25, [x24,1857] - add x25, x24, 1920 ldrb w1, [x0,32] - mov x2, x25 + mov x3, x19 mov w0, 0 - strb w1, [x24,1856] + mov w4, 4 + strb w25, [x23,1857] + strb w1, [x23,1856] bl flash_get_last_written_page - sxth w22, w0 + sxth w26, w0 add w0, w0, 1 - uxth w19, w0 - ldrb w0, [x24,1856] - ldrh w24, [x27,3634] - mul w24, w0, w24 - b .L2436 -.L2458: + 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: mov w0, w19 - b .L2435 -.L2439: - add x27, x20, :lo12:.LANCHOR0 + b .L2436 +.L2442: + add x28, x20, :lo12:.LANCHOR0 mov w0, 0 - add w1, w22, w24 - mov x2, x25 - mov x3, x26 - ldrb w4, [x27,2848] + add w1, w26, w23 + mov x2, x22 + mov x3, x19 + ldrb w4, [x28,2848] bl ftl_read_page cmn w0, #1 - bne .L2459 + bne .L2461 +.L2438: + sub w26, w26, #1 + sxth w26, w26 .L2437: - sub w22, w22, #1 - sxth w22, w22 -.L2436: - tbz w22, #31, .L2439 - b .L2440 -.L2459: - ldr x0, [x27,2880] + tbz w26, #31, .L2442 + b .L2441 +.L2461: + ldr x0, [x28,2880] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - bne .L2437 -.L2440: + bne .L2438 + ldr w2, [x19,8] + cbnz w2, .L2439 +.L2441: add x21, x21, :lo12:.LANCHOR3 add x20, x20, :lo12:.LANCHOR0 - strh w19, [x21,1858] + strh w25, [x21,1858] bl ftl_tmp_into_update ldr x1, [x20,2880] ldr w0, [x1,64] @@ -15726,16 +15701,30 @@ ftl_info_blk_init: bl ftl_info_flush mov w0, 0 bl ftl_info_flush - ldr w0, [x23,#:lo12:.LANCHOR2] + ldr w0, [x24,#:lo12:.LANCHOR2] and w19, w0, 16384 - tbz x0, 14, .L2458 + tbz x0, 14, .L2460 ldr x1, [x20,2880] - adrp x0, .LC186 - add x0, x0, :lo12:.LC186 + adrp x0, .LC185 + add x0, x0, :lo12:.LC185 ldr w1, [x1,156] bl printk mov w0, 0 -.L2435: + b .L2436 +.L2439: + ldrb w1, [x28,2848] + mov x0, x22 + str x2, [x29,104] + lsl w1, w1, 9 + bl js_hash + ldr x2, [x29,104] + cmp w2, w0 + beq .L2441 + ldr w1, [x19,8] + mov x0, x27 + bl printk + b .L2438 +.L2436: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15762,17 +15751,17 @@ ftl_ext_info_flush: ldr x1, [x1,608] ldr w3, [x1,520] cmp w0, w3 - bls .L2461 + bls .L2463 ldr w2, [x1,12] sub w2, w2, w3 add w2, w2, w0 str w2, [x1,12] - b .L2474 -.L2461: - bcs .L2462 -.L2474: + b .L2476 +.L2463: + bcs .L2464 +.L2476: str w0, [x1,520] -.L2462: +.L2464: adrp x23, .LANCHOR4 adrp x19, .LANCHOR3 add x23, x23, :lo12:.LANCHOR4 @@ -15781,11 +15770,11 @@ ftl_ext_info_flush: add x23, x23, 432 add x19, x19, 1600 bl ftl_total_vpn_update -.L2463: +.L2465: adrp x24, .LANCHOR5 add x24, x24, :lo12:.LANCHOR5 add x25, x24, 960 -.L2466: +.L2468: add x2, x22, :lo12:.LANCHOR0 ldr x0, [x2,2880] ldr w1, [x0,56] @@ -15794,22 +15783,22 @@ ftl_ext_info_flush: ldrh w1, [x0,140] ldrh w0, [x2,3596] cmp w1, w0 - bcc .L2464 + bcc .L2466 bl ftl_ext_alloc_new_blk -.L2464: +.L2466: add x0, x22, :lo12:.LANCHOR0 ldr x0, [x0,2880] ldrh w1, [x0,130] mov w0, 65535 cmp w1, w0 - bne .L2465 + bne .L2467 adrp x0, .LC0 mov x1, x23 - mov w2, 1912 + mov w2, 1926 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2465: +.L2467: add x20, x22, :lo12:.LANCHOR0 mov w0, 24 ldr x2, [x20,2880] @@ -15834,13 +15823,18 @@ ftl_ext_info_flush: bl ftl_memset str wzr, [x19] ldr x0, [x20,2880] - mov w1, w21 - ldrb w4, [x20,2848] - mov x2, x25 - mov x3, x19 + ldrb w1, [x20,2848] ldr w0, [x0,56] + lsl w1, w1, 9 str w0, [x19,4] + mov x0, x25 + bl js_hash + str w0, [x19,8] + ldrb w4, [x20,2848] + mov w1, w21 + mov x2, x25 mov w0, w26 + mov x3, x19 bl ftl_prog_page ldr x2, [x20,2880] ldrh w1, [x2,140] @@ -15848,17 +15842,17 @@ ftl_ext_info_flush: uxth w1, w1 strh w1, [x2,140] cmp w1, 1 - beq .L2466 + beq .L2468 cmn w0, #1 - beq .L2467 + beq .L2469 ldrb w0, [x24,898] - cbz w0, .L2468 -.L2467: + cbz w0, .L2470 +.L2469: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 strb wzr, [x0,898] - b .L2463 -.L2468: + b .L2465 +.L2470: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -15871,106 +15865,124 @@ ftl_ext_info_flush: .type ftl_ext_info_init, %function ftl_ext_info_init: stp x29, x30, [sp, -112]! - mov w4, 4 + mov w1, 24 + mov w2, 1 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - adrp x20, .LANCHOR5 + adrp x20, .LANCHOR0 + adrp x19, .LANCHOR3 stp x27, x28, [sp,80] - add x27, x19, :lo12:.LANCHOR0 - add x2, x20, :lo12:.LANCHOR5 + add x27, x20, :lo12:.LANCHOR0 + add x3, x19, :lo12:.LANCHOR3 stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x21, x22, [sp,32] - adrp x21, .LANCHOR3 - add x2, x2, 960 - ldr x0, [x27,2880] - add x3, x21, :lo12:.LANCHOR3 - ldrb w1, [x27,744] - adrp x26, .LANCHOR2 - ldrh w22, [x0,130] - mov w0, 24 - sub w0, w0, w1 - ldrh w1, [x27,3536] + adrp x21, .LANCHOR5 strh wzr, [x3,-184] + ldr x0, [x27,2880] add x3, x3, 1600 - sub w0, w0, w1 - mov w1, 1 - asr w28, w22, w0 - lsl w0, w1, w0 - sub w0, w0, #1 - and w22, w0, w22 - uxtb w25, w28 - mov w0, w25 + 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 bl flash_get_last_written_page - sxth w24, w0 - ldr w0, [x26,#:lo12:.LANCHOR2] - mov w23, w24 - tbz x0, 12, .L2476 + sxth w25, w0 + ldr w0, [x23,#:lo12:.LANCHOR2] + mov w24, w25 + tbz x0, 12, .L2478 ldr x5, [x27,2880] adrp x1, .LANCHOR4 - adrp x0, .LC187 + adrp x0, .LC186 add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC187 + add x0, x0, :lo12:.LC186 add x1, x1, 456 ldrh w5, [x5,130] - mov w2, 1956 - mov w3, w24 + mov w2, 1971 + mov w3, w25 uxth w4, w28 bl printk -.L2476: - add x20, x20, :lo12:.LANCHOR5 - add x21, x21, :lo12:.LANCHOR3 - mov w27, w24 - add x20, x20, 960 - add x21, x21, 1600 -.L2477: - tbnz w27, #31, .L2482 - add x28, x19, :lo12:.LANCHOR0 - mov w0, w25 - mov x2, x20 - mov x3, x21 - ldrh w1, [x28,3634] - ldrb w4, [x28,2848] +.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 bl flash_read_page_en cmp w0, 512 - beq .L2478 + beq .L2480 cmn w0, #1 - beq .L2478 - ldr x0, [x28,608] + beq .L2480 + ldr x5, [x29,104] + ldr x0, [x5,608] ldr w1, [x0] mov w0, 20038 movk w0, 0x4549, lsl 16 cmp w1, w0 - bne .L2478 -.L2482: + bne .L2480 + ldr w2, [x19,8] + cbnz w2, .L2481 +.L2484: bl zftl_sblk_list_init - add x0, x19, :lo12:.LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 ldr x0, [x0,2880] ldrh w1, [x0,140] - cmp w1, w24 - bgt .L2480 - add w23, w23, 1 - strh w23, [x0,140] + cmp w1, w25 + bgt .L2483 + add w24, w24, 1 + strh w24, [x0,140] bl ftl_ext_info_flush - b .L2480 -.L2478: + b .L2483 +.L2481: + ldrb w1, [x5,2848] + mov x0, x21 + str x2, [x29,104] + lsl w1, w1, 9 + bl js_hash + ldr x2, [x29,104] + cmp w2, w0 + beq .L2484 + ldr w1, [x19,8] + mov x0, x28 + bl printk +.L2480: sub w27, w27, #1 sxth w27, w27 - b .L2477 -.L2480: - add x20, x19, :lo12:.LANCHOR0 - ldr x21, [x20,608] + b .L2479 +.L2483: + add x19, x20, :lo12:.LANCHOR0 + ldr x21, [x19,608] bl timer_get_time mov w1, 100 udiv w0, w0, w1 str w0, [x21,520] - ldr x21, [x20,608] + ldr x21, [x19,608] bl timer_get_time str w0, [x21,604] - ldr x0, [x20,608] + ldr x0, [x19,608] mov w1, -1 strh w1, [x0,584] strh w1, [x0,586] @@ -15980,9 +15992,9 @@ ftl_ext_info_init: str w1, [x0,560] mov w1, -1 str w1, [x0,564] - ldr w1, [x26,#:lo12:.LANCHOR2] + ldr w1, [x23,#:lo12:.LANCHOR2] str wzr, [x0,608] - tbz x1, 12, .L2483 + tbz x1, 12, .L2486 ldr w2, [x0,520] ldr w3, [x0,12] str x2, [x29,96] @@ -15997,14 +16009,14 @@ ftl_ext_info_init: add x0, x0, :lo12:.LC188 add x1, x1, 456 bl printk -.L2483: - add x19, x19, :lo12:.LANCHOR0 - mov w0, -1 - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - strh w0, [x19,3512] +.L2486: + add x0, x20, :lo12:.LANCHOR0 + mov w1, -1 + strh w1, [x0,3512] 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 @@ -16053,13 +16065,13 @@ ftl_write_last_log_page: ldrh w1, [x0,6] ldrh w22, [x0,12] cmp w1, 1 - bne .L2498 + bne .L2501 mov x19, x0 bl ftl_get_new_free_page cmn w0, #1 mov w23, w0 mov w21, 0 - beq .L2498 + beq .L2501 ldrh w0, [x19] add x22, x20, x22, uxth 2 adrp x19, .LANCHOR6 @@ -16086,7 +16098,7 @@ ftl_write_last_log_page: str w21, [x19,-56] str w21, [x19,-52] bl ftl_prog_ppa_page -.L2498: +.L2501: mov w0, w21 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -16109,41 +16121,41 @@ ftl_open_sblk_recovery: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L2503 + tbz x0, 12, .L2506 adrp x0, .LC189 ldrh w1, [x19,2] add x0, x0, :lo12:.LC189 bl printk -.L2503: +.L2506: ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2504 + tbz x0, 12, .L2507 adrp x0, .LC190 ldrb w1, [x19,5] add x0, x0, :lo12:.LC190 bl printk -.L2504: +.L2507: ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2505 + tbz x0, 12, .L2508 adrp x0, .LC191 ldrh w1, [x19] add x0, x0, :lo12:.LC191 bl printk -.L2505: +.L2508: ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2506 + tbz x0, 12, .L2509 adrp x0, .LC192 ldrh w1, [x19,16] ldrh w2, [x19,18] add x0, x0, :lo12:.LC192 bl printk -.L2506: +.L2509: ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2507 + tbz x0, 12, .L2510 adrp x0, .LC193 ldrb w1, [x19,9] add x0, x0, :lo12:.LC193 bl printk -.L2507: +.L2510: ldrh w0, [x19,10] adrp x20, .LANCHOR0 strh w0, [x19,14] @@ -16151,7 +16163,7 @@ ftl_open_sblk_recovery: ldrh w1, [x19] ldrh w0, [x0,576] cmp w1, w0 - bcs .L2502 + bcs .L2505 mov w0, 1 add x21, x29, 144 add x26, x29, 272 @@ -16180,21 +16192,21 @@ ftl_open_sblk_recovery: add x0, x0, :lo12:.LANCHOR4 add x0, x0, 480 str x0, [x29,112] -.L2509: +.L2512: add x0, x20, :lo12:.LANCHOR0 ldrh w0, [x0,3596] cmp w0, w24 - bls .L2512 + bls .L2515 ldrb w23, [x19,5] -.L2510: +.L2513: ldrb w0, [x19,9] cmp w0, w23 - bls .L2640 + bls .L2643 add x0, x19, x23, sxtw 1 ldrh w0, [x0,16] mov w1, 65535 cmp w0, w1 - beq .L2511 + beq .L2514 add x3, x20, :lo12:.LANCHOR0 ldr x2, [x25,24] ldrh w1, [x3,3634] @@ -16205,21 +16217,21 @@ ftl_open_sblk_recovery: bl ftl_read_ppa_page cmp w0, 512 mov w3, w0 - beq .L2512 + beq .L2515 cmn w0, #1 - beq .L2513 + beq .L2516 ldr x0, [x25,24] ldr w1, [x0] cmn w1, #1 - bne .L2513 + bne .L2516 ldr w0, [x0,4] cmn w0, #1 - bne .L2513 + bne .L2516 ldr x0, [x25,8] ldr w0, [x0] cmn w0, #1 - beq .L2512 -.L2513: + beq .L2515 +.L2516: adrp x0, .LANCHOR5+897 mov w1, 1 strb w1, [x0,#:lo12:.LANCHOR5+897] @@ -16227,16 +16239,16 @@ ftl_open_sblk_recovery: ldrh w1, [x19,10] madd w0, w24, w0, w23 cmp w1, w0 - beq .L2514 + beq .L2517 ldr x1, [x29,112] adrp x0, .LC0 - mov w2, 1488 + mov w2, 1498 add x0, x0, :lo12:.LC0 str x3, [x29,136] bl printk bl dump_stack ldr x3, [x29,136] -.L2514: +.L2517: ldrh w0, [x19,10] ldrh w1, [x19,6] ldrb w2, [x19,9] @@ -16245,31 +16257,31 @@ ftl_open_sblk_recovery: ldrh w0, [x0,3596] mul w0, w0, w2 cmp w1, w0 - beq .L2515 + beq .L2518 ldr x1, [x29,112] adrp x0, .LC0 - mov w2, 1489 + mov w2, 1499 add x0, x0, :lo12:.LC0 str x3, [x29,136] bl printk bl dump_stack ldr x3, [x29,136] -.L2515: +.L2518: cmn w3, #1 - beq .L2519 + beq .L2522 ldr x0, [x25,24] ldr w0, [x0,4] cmn w0, #1 - beq .L2519 + beq .L2522 bl lpa_hash_get_ppa ldr x1, [x29,120] - cbz x1, .L2517 + cbz x1, .L2520 ldr x7, [x25,24] ldr w1, [x7,8] cmp w0, w1 - beq .L2517 + beq .L2520 cmn w0, #1 - beq .L2517 + beq .L2520 add x27, x20, :lo12:.LANCHOR0 mov w6, 24 mov w4, 1 @@ -16286,7 +16298,7 @@ ftl_open_sblk_recovery: ldr x2, [x29,120] ldrh w2, [x2] cmp w2, w1, uxth - bne .L2517 + bne .L2520 ldr w7, [x7] mov x2, x28 ldr x1, [x25,8] @@ -16300,11 +16312,11 @@ ftl_open_sblk_recovery: ldr x6, [x29,104] cmp w0, w7 ldr x4, [x29,96] - bcc .L2517 + bcc .L2520 ldr x0, [x25,24] ldr w1, [x0,8] cmn w1, #1 - beq .L2519 + beq .L2522 ldrb w2, [x27,744] ldrh w0, [x27,3536] sub w6, w6, w2 @@ -16316,22 +16328,22 @@ ftl_open_sblk_recovery: and w1, w4, w1 udiv w0, w1, w0 bl ftl_vpn_decrement - b .L2519 -.L2517: + b .L2522 +.L2520: ldr x2, [x25,24] add x1, x20, :lo12:.LANCHOR0 ldr w3, [x2,4] ldr w0, [x1,2856] cmp w3, w0 - bcs .L2519 + 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 .L2641 -.L2519: + blt .L2644 +.L2522: ldrh w0, [x19,6] mov w27, 4 sub w0, w0, #1 @@ -16341,16 +16353,16 @@ ftl_open_sblk_recovery: strh w0, [x19,10] mov w0, 1 str w0, [x29,136] -.L2511: +.L2514: add w23, w23, 1 uxth w23, w23 - b .L2510 -.L2640: + b .L2513 +.L2643: add w24, w24, 1 strb wzr, [x19,5] uxth w24, w24 - b .L2509 -.L2512: + b .L2512 +.L2515: add x2, x20, :lo12:.LANCHOR0 ldrh w0, [x19,10] ldrh w1, [x19,6] @@ -16361,16 +16373,16 @@ ftl_open_sblk_recovery: strb w23, [x19,5] mul w0, w0, w2 cmp w1, w0 - beq .L2523 + beq .L2526 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1569 + mov w2, 1579 add x1, x1, 480 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2523: +.L2526: adrp x1, .LANCHOR3 ldrh w3, [x19,10] add x0, x1, :lo12:.LANCHOR3 @@ -16378,20 +16390,20 @@ ftl_open_sblk_recovery: ldr x4, [x0,-200] mov w0, 0 mov w2, w0 -.L2524: +.L2527: cmp w2, w3 - bcs .L2642 + bcs .L2645 ldrh w1, [x19,12] add w1, w2, w1 ldr w1, [x4,x1,lsl 2] cmn w1, #1 - beq .L2525 + beq .L2528 add w1, w0, 1 uxth w0, w1 -.L2525: +.L2528: add w2, w2, 1 - b .L2524 -.L2642: + b .L2527 +.L2645: add x2, x20, :lo12:.LANCHOR0 ldrb w1, [x19,9] sub w0, w0, w3 @@ -16399,7 +16411,7 @@ ftl_open_sblk_recovery: madd w0, w1, w23, w0 uxth w23, w0 ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L2527 + tbz x0, 12, .L2530 ldrh w1, [x19] adrp x0, .LC194 ldr x4, [x2,600] @@ -16408,13 +16420,13 @@ ftl_open_sblk_recovery: mov w2, w23 ldrh w3, [x4,x3] bl printk -.L2527: +.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, .L2528 + tbz x0, 14, .L2531 adrp x0, .LC195 ldr w1, [x29,144] ldr w2, [x29,148] @@ -16422,7 +16434,7 @@ ftl_open_sblk_recovery: ldr w3, [x29,152] ldr w4, [x29,156] bl printk -.L2528: +.L2531: add x0, x20, :lo12:.LANCHOR0 mov w1, 0 adrp x28, .LC197 @@ -16436,17 +16448,17 @@ ftl_open_sblk_recovery: str x0, [x29,112] add x0, x28, :lo12:.LC197 str x0, [x29,104] -.L2529: +.L2532: add x3, x20, :lo12:.LANCHOR0 str w24, [x29,132] ldrb w0, [x3,3572] mul w0, w27, w0 cmp w24, w0 - bcs .L2643 + bcs .L2646 ldr w0, [x21,x24,lsl 2] cmn w0, #1 - bne .L2530 -.L2534: + bne .L2533 +.L2537: add x1, x20, :lo12:.LANCHOR0 ldr x0, [x25,24] ldr x1, [x1,2880] @@ -16462,8 +16474,8 @@ ftl_open_sblk_recovery: str wzr, [x0,12] ldr x0, [x25,8] str wzr, [x0] - b .L2531 -.L2530: + b .L2534 +.L2533: ldr x1, [x25,8] ldr x2, [x25,24] ldrb w3, [x3,2848] @@ -16474,14 +16486,14 @@ ftl_open_sblk_recovery: bl lpa_hash_get_ppa mov w28, w0 ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L2532 + 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 -.L2532: +.L2535: ldr w0, [x21,x24,lsl 2] mov w1, 1 cmp w28, w0 @@ -16491,19 +16503,19 @@ ftl_open_sblk_recovery: str w28, [x0,8] ldr x0, [x25,24] str w1, [x0,12] - beq .L2534 -.L2531: + beq .L2537 +.L2534: ldr w0, [x29,136] - cbz w0, .L2536 -.L2639: + cbz w0, .L2539 +.L2642: ldrh w0, [x19,6] cmp w0, 1 - bls .L2536 + bls .L2539 mov x0, x19 bl ftl_get_new_free_page mov w28, w0 ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L2538 + tbz x0, 14, .L2541 ldr x2, [x25,24] mov w1, w28 ldrh w0, [x19,12] @@ -16513,7 +16525,7 @@ ftl_open_sblk_recovery: ldr x0, [x29,104] sub w3, w3, #1 bl printk -.L2538: +.L2541: add x3, x20, :lo12:.LANCHOR0 ldr w1, [x29,132] ldrh w0, [x19,6] @@ -16522,7 +16534,7 @@ ftl_open_sblk_recovery: add w2, w2, 1 sub w2, w2, w1 cmp w0, w2 - bls .L2536 + bls .L2539 ldr x1, [x25,8] mov w0, w28 ldr x2, [x25,24] @@ -16536,8 +16548,8 @@ ftl_open_sblk_recovery: cmn w23, #1 cset w1, ne cmn w2, #1 - beq .L2539 - cbz w1, .L2536 + beq .L2542 + cbz w1, .L2539 add x0, x29, 208 ldrh w1, [x19,10] str w28, [x0,x24,lsl 2] @@ -16545,38 +16557,38 @@ ftl_open_sblk_recovery: add w0, w1, w0 sub w0, w0, #1 str w0, [x26,x24,lsl 2] - b .L2536 + b .L2539 +.L2542: + cbnz w1, .L2642 .L2539: - cbnz w1, .L2639 -.L2536: add x24, x24, 1 - b .L2529 -.L2643: + b .L2532 +.L2646: adrp x23, .LC198 adrp x24, .LC197 mov x28, 0 add x23, x23, :lo12:.LC198 add x24, x24, :lo12:.LC197 -.L2543: +.L2546: add x3, x20, :lo12:.LANCHOR0 ldrb w0, [x3,3572] mul w0, w27, w0 cmp w0, w28 - bls .L2644 + bls .L2647 add x0, x29, 208 ldr w0, [x0,x28,lsl 2] cmn w0, #1 - beq .L2545 + 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 .L2555 + beq .L2558 cmn w0, #1 - bne .L2545 -.L2555: + bne .L2548 +.L2558: add x3, x20, :lo12:.LANCHOR0 add x0, x29, 208 ldr x1, [x25,8] @@ -16586,7 +16598,7 @@ ftl_open_sblk_recovery: bl ftl_read_ppa_page mov w4, w0 ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L2548 + tbz x0, 14, .L2551 ldr x2, [x25,24] mov w1, w4 ldr w3, [x21,x28,lsl 2] @@ -16595,30 +16607,30 @@ ftl_open_sblk_recovery: ldr w2, [x2,8] bl printk ldr x4, [x29,136] -.L2548: +.L2551: cmn w4, #1 - beq .L2545 + beq .L2548 ldr x1, [x25,24] ldr w2, [x21,x28,lsl 2] ldr w0, [x1,8] cmp w2, w0 - bne .L2545 + bne .L2548 ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L2549 + tbz x0, 14, .L2552 ldr w1, [x1,4] mov x0, x23 ldr w3, [x26,x28,lsl 2] bl printk -.L2549: +.L2552: ldr x1, [x25,24] ldr w2, [x26,x28,lsl 2] ldr w0, [x1,4] ldr w1, [x1,8] bl lpa_hash_update_ppa -.L2545: +.L2548: add x28, x28, 1 - b .L2543 -.L2644: + b .L2546 +.L2647: mov x0, x25 str x3, [x29,136] bl zbuf_free @@ -16634,30 +16646,30 @@ ftl_open_sblk_recovery: ldr x1, [x1,-200] ldr w0, [x1,x0] cmn w0, #1 - beq .L2551 + beq .L2554 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1660 + mov w2, 1670 add x1, x1, 480 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2551: +.L2554: ldrh w0, [x19,6] cmp w0, 1 - bne .L2502 + bne .L2505 mov x0, x19 bl ftl_write_last_log_page - b .L2502 -.L2641: + b .L2505 +.L2644: ldr x0, [x1,2880] ldr w2, [x2] ldr w1, [x0,8] cmp w2, w1 - bls .L2520 + bls .L2523 str w2, [x0,8] -.L2520: +.L2523: ldr x1, [x25,24] ldrh w0, [x19,10] ldrh w2, [x19,12] @@ -16673,8 +16685,8 @@ ftl_open_sblk_recovery: str w0, [x21,8] ldr w0, [x29,132] str w0, [x21,12] - b .L2519 -.L2502: + b .L2522 +.L2505: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16691,18 +16703,18 @@ pm_write_page: add x29, sp, 0 stp x21, x22, [sp,32] adrp x22, .LANCHOR4 - str x27, [sp,80] + mov w21, w0 stp x23, x24, [sp,48] add x22, x22, :lo12:.LANCHOR4 adrp x23, .LC0 stp x25, x26, [sp,64] stp x19, x20, [sp,16] - mov w21, w0 + stp x27, x28, [sp,80] mov x24, x1 adrp x25, .LANCHOR0 add x23, x23, :lo12:.LC0 add x22, x22, 504 -.L2646: +.L2649: add x2, x25, :lo12:.LANCHOR0 adrp x19, .LANCHOR0 ldr x0, [x2,2880] @@ -16712,51 +16724,57 @@ pm_write_page: str w1, [x0,48] ldrh w1, [x2,3596] cmp w3, w1 - bcs .L2647 + bcs .L2650 ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2648 -.L2647: + bne .L2651 +.L2650: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush -.L2648: +.L2651: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,2880] ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2649 + bne .L2652 mov x1, x22 mov w2, 263 mov x0, x23 bl printk bl dump_stack -.L2649: +.L2652: add x19, x19, :lo12:.LANCHOR0 adrp x20, .LANCHOR6 - add x27, x20, :lo12:.LANCHOR6 + add x26, x20, :lo12:.LANCHOR6 mov w2, 64 - ldr x1, [x19,2880] - ldrh w26, [x19,3634] - ldrh w0, [x1,692] - ldrh w1, [x1,696] - madd w26, w0, w26, w1 - ldr x0, [x27,192] + 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] mov w1, 0 bl ftl_memset - ldr x0, [x27,192] - mov x2, x24 + ldr x0, [x26,192] str w21, [x0] ldr x1, [x19,2880] - ldr x0, [x27,192] - ldrb w4, [x19,2848] + ldr x0, [x26,192] ldr w1, [x1,48] str w1, [x0,4] - mov w1, w26 + mov x0, x24 + ldrb w1, [x19,2848] + ldr x28, [x26,192] + lsl w1, w1, 9 + bl js_hash + str w0, [x28,8] ldr x0, [x19,2880] - ldr x3, [x27,192] + mov w1, w27 + ldr x3, [x26,192] + mov x2, x24 + ldrb w4, [x19,2848] ldrb w0, [x0,694] bl ftl_prog_page ldr x1, [x19,2880] @@ -16765,34 +16783,34 @@ pm_write_page: uxth w2, w2 strh w2, [x1,696] cmp w2, 1 - beq .L2650 - ldrb w2, [x27,200] - cbz w2, .L2651 -.L2650: + beq .L2653 + ldrb w2, [x26,200] + cbz w2, .L2654 +.L2653: add x20, x20, :lo12:.LANCHOR6 strb wzr, [x20,200] - b .L2646 -.L2651: + b .L2649 +.L2654: cmn w0, #1 - bne .L2653 + bne .L2656 adrp x0, .LC199 - mov w1, w26 + mov w1, w27 add x0, x0, :lo12:.LC199 bl printk - b .L2646 -.L2653: + b .L2649 +.L2656: ldrh w0, [x1,698] cmp w21, w0 - bcs .L2654 + bcs .L2657 add x21, x1, x21, uxtw 2 - str w26, [x21,704] -.L2654: + str w27, [x21,704] +.L2657: 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], 96 ret .size pm_write_page, .-pm_write_page @@ -16813,12 +16831,12 @@ ftl_dump_write_open_sblk: stp x27, x28, [sp,128] ldrh w1, [x0,576] cmp w1, w23 - bls .L2658 + bls .L2661 ldrb w1, [x0,3568] - cbnz w1, .L2660 + cbnz w1, .L2663 ldrb w0, [x0,3554] - cbz w0, .L2658 -.L2660: + cbz w0, .L2661 +.L2663: add x1, x22, :lo12:.LANCHOR0 ubfiz x19, x23, 2, 16 mov w27, 1 @@ -16827,9 +16845,9 @@ ftl_dump_write_open_sblk: ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 160 - bne .L2661 + bne .L2664 ldrb w27, [x1,3553] -.L2661: +.L2664: add x24, x29, 128 mov w0, w23 add x1, x24, 16 @@ -16866,44 +16884,44 @@ ftl_dump_write_open_sblk: bl buf_alloc mov x19, x0 mov w8, 65535 -.L2662: +.L2665: add x0, x22, :lo12:.LANCHOR0 ldrh w0, [x0,3596] cmp w0, w20 - bls .L2683 + bls .L2686 lsl w28, w20, 1 mov w26, 0 sub w28, w28, #1 -.L2672: +.L2675: ldrb w0, [x24,9] cmp w0, w26 - bls .L2687 + bls .L2690 mov w21, 1 sxtw x9, w26 -.L2671: +.L2674: cmp w21, w27 - bhi .L2688 + bhi .L2691 add x0, x9, 8 ldrh w5, [x24,x0,lsl 1] cmp w5, w8 - beq .L2664 + beq .L2667 add x0, x22, :lo12:.LANCHOR0 cmp w27, 3 ldrh w2, [x0,3634] mul w2, w5, w2 - bne .L2665 + bne .L2668 add w2, w2, w20 orr w3, w2, w21, lsl 24 - b .L2666 -.L2665: + b .L2669 +.L2668: cmp w27, 2 add w3, w2, w20 - bne .L2666 + bne .L2669 ldrb w3, [x0,3553] add w2, w2, w28 add w2, w2, w21 orr w3, w2, w3, lsl 24 -.L2666: +.L2669: str w3, [x19,40] mov w1, 1 mov x0, x19 @@ -16940,21 +16958,21 @@ ftl_dump_write_open_sblk: ldr x9, [x29,104] cmp w10, 512 ldr x8, [x29,96] - beq .L2683 -.L2664: + beq .L2686 +.L2667: add w21, w21, 1 uxth w21, w21 - b .L2671 -.L2688: + b .L2674 +.L2691: add w26, w26, 1 uxth w26, w26 - b .L2672 -.L2687: + b .L2675 +.L2690: add w20, w20, 1 uxth w20, w20 - b .L2662 -.L2683: -.L2668: + b .L2665 +.L2686: +.L2671: adrp x0, .LC202 mov w4, w21 mov w2, w20 @@ -16978,17 +16996,17 @@ ftl_dump_write_open_sblk: ldr x0, [x19,24] lsl w2, w2, 1 bl ftl_memset -.L2673: +.L2676: add x0, x22, :lo12:.LANCHOR0 ldrh w0, [x0,3596] cmp w0, w25 - bls .L2678 + bls .L2681 lsl w26, w25, 1 mov w20, 0 -.L2679: +.L2682: ldrb w0, [x24,9] cmp w0, w20 - bls .L2689 + bls .L2692 mov w2, w20 mov x0, x21 mov w1, w25 @@ -16997,7 +17015,7 @@ ftl_dump_write_open_sblk: sxtw x0, w20 ldrb w5, [x4,3568] ldrh w2, [x4,3634] - cbz w5, .L2674 + cbz w5, .L2677 add x0, x0, 8 ldrh w0, [x24,x0,lsl 1] mul w2, w0, w2 @@ -17005,21 +17023,21 @@ ftl_dump_write_open_sblk: orr w2, w2, w25 str w2, [x19,40] bl sblk_3d_tlc_dump_prog - b .L2675 -.L2674: + b .L2678 +.L2677: add x0, x0, 8 ldrb w1, [x4,3553] cmp w1, 2 ldrh w0, [x24,x0,lsl 1] mul w2, w0, w2 - bne .L2676 + bne .L2679 orr w2, w2, w26 mov x0, x19 orr w2, w2, 33554432 str w2, [x19,40] bl sblk_mlc_dump_prog - b .L2675 -.L2676: + b .L2678 +.L2679: ldrb w0, [x4,744] orr w2, w2, w25 ldrb w4, [x4,2848] @@ -17034,22 +17052,22 @@ ftl_dump_write_open_sblk: ldr x3, [x19,24] ldr x2, [x19,8] bl flash_prog_page_en -.L2675: +.L2678: add w20, w20, 1 uxth w20, w20 - b .L2679 -.L2689: + b .L2682 +.L2692: add w25, w25, 1 uxth w25, w25 - b .L2673 -.L2678: + b .L2676 +.L2681: mov x0, x19 bl zbuf_free adrp x0, .LC204 mov w1, w23 add x0, x0, :lo12:.LC204 bl printk -.L2658: +.L2661: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -17086,10 +17104,10 @@ ftl_ink_check_sblk: bl printk mov w0, 65535 cmp w20, w0 - beq .L2690 + beq .L2693 ldrh w0, [x22,576] cmp w0, w20 - bls .L2690 + bls .L2693 mov w1, 0 mov w0, w20 add x23, x29, 112 @@ -17108,12 +17126,12 @@ ftl_ink_check_sblk: and w0, w0, 2047 cmp w0, 1 ldr x0, [x19,8] - bgt .L2692 + bgt .L2695 mov w1, 85 - b .L2707 -.L2692: + b .L2710 +.L2695: mov w1, 170 -.L2707: +.L2710: lsl w2, w2, 9 mov w22, 0 mov w26, 65535 @@ -17121,20 +17139,20 @@ ftl_ink_check_sblk: mov w28, 1 bl ftl_memset bl sblk_wait_write_queue_completed -.L2694: +.L2697: add x0, x21, :lo12:.LANCHOR0 ldrh w0, [x0,3596] cmp w0, w22 - bls .L2708 + bls .L2711 mov w25, 0 -.L2697: +.L2700: ldrb w0, [x23,9] cmp w0, w25 - bls .L2709 + bls .L2712 add x0, x23, x25, sxtw 1 ldrh w0, [x0,16] cmp w0, w26 - beq .L2695 + beq .L2698 add x4, x21, :lo12:.LANCHOR0 mov w5, 0 ldrh w2, [x4,3634] @@ -17159,33 +17177,33 @@ ftl_ink_check_sblk: ldr x3, [x19,24] ldr x2, [x19,8] bl flash_prog_page_en -.L2695: +.L2698: add w25, w25, 1 uxth w25, w25 - b .L2697 -.L2709: + b .L2700 +.L2712: add w22, w22, 1 uxth w22, w22 - b .L2694 -.L2708: + b .L2697 +.L2711: mov w22, 0 mov w26, 65535 mov w27, -1 -.L2698: +.L2701: add x25, x21, :lo12:.LANCHOR0 ldrh w0, [x25,3596] cmp w0, w22 - bls .L2710 + bls .L2713 mov w25, 0 -.L2703: +.L2706: ldrb w0, [x23,9] cmp w0, w25 - bls .L2711 + bls .L2714 sxtw x28, w25 add x28, x28, 8 ldrh w0, [x23,x28,lsl 1] cmp w0, w26 - beq .L2700 + beq .L2703 add x1, x21, :lo12:.LANCHOR0 ldrh w2, [x1,3634] mov w1, 1 @@ -17198,19 +17216,19 @@ ftl_ink_check_sblk: ldr x2, [x29,104] ldr w0, [x0] cmp w0, w2 - beq .L2700 + beq .L2703 mov w0, w2 bl ftl_mask_bad_block strh w27, [x23,x28,lsl 1] -.L2700: +.L2703: add w25, w25, 1 uxth w25, w25 - b .L2703 -.L2711: + b .L2706 +.L2714: add w22, w22, 1 uxth w22, w22 - b .L2698 -.L2710: + b .L2701 +.L2713: mov x0, x19 bl zbuf_free ldr x0, [x25,584] @@ -17222,7 +17240,7 @@ ftl_ink_check_sblk: and w2, w2, 2047 ubfx x3, x3, 11, 8 bl printk -.L2690: +.L2693: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17250,8 +17268,8 @@ ftl_open_sblk_init: add x26, x0, 16 adrp x27, .LANCHOR3 add x21, x21, :lo12:.LC121 -.L2713: -.L2717: +.L2716: +.L2720: mov w0, w22 bl ftl_alloc_sblk uxth w23, w0 @@ -17260,15 +17278,15 @@ ftl_open_sblk_init: uxtw x20, w23 ldr x1, [x2,2880] ldrh w1, [x1,150] - cbz w1, .L2714 + cbz w1, .L2717 lsl x1, x20, 2 ldr x2, [x2,584] ldrh w1, [x2,x1] and w1, w1, 2047 cmp w1, 2 - bgt .L2714 + bgt .L2717 bl ftl_ink_check_sblk -.L2714: +.L2717: mov w1, 0 mov w0, w28 bl ftl_erase_sblk @@ -17288,11 +17306,11 @@ ftl_open_sblk_init: mul w0, w1, w0 strh w0, [x19,6] strb w22, [x19,4] - beq .L2715 + beq .L2718 ldrb w3, [x2,3572] mul w3, w1, w3 uxth w3, w3 -.L2715: +.L2718: add x28, x25, :lo12:.LANCHOR0 add x0, x27, :lo12:.LANCHOR3 strh w3, [x19,12] @@ -17308,7 +17326,7 @@ ftl_open_sblk_init: ldrh w1, [x19,6] strh w1, [x0,x20] ldrb w0, [x19,9] - cbnz w0, .L2712 + cbnz w0, .L2715 mov w1, w23 mov x0, x21 bl printk @@ -17317,8 +17335,8 @@ ftl_open_sblk_init: strh w1, [x0,x20] mov w0, 7 strb w0, [x19,4] - b .L2717 -.L2712: + b .L2720 +.L2715: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17340,15 +17358,15 @@ flash_info_flush: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L2723 + tbz x0, 12, .L2726 adrp x2, .LANCHOR4 adrp x0, .LC136 add x2, x2, :lo12:.LANCHOR4 add x0, x0, :lo12:.LC136 - mov w1, 324 + mov w1, 325 add x2, x2, 520 bl printk -.L2723: +.L2726: adrp x22, .LANCHOR6 adrp x23, .LANCHOR0 add x0, x22, :lo12:.LANCHOR6 @@ -17374,7 +17392,7 @@ flash_info_flush: ldr w1, [x19,8] bl js_hash str w0, [x19,12] -.L2724: +.L2727: add x21, x22, :lo12:.LANCHOR6 add x28, x23, :lo12:.LANCHOR0 mov x0, x24 @@ -17391,7 +17409,7 @@ flash_info_flush: ldrh w1, [x1,1380] sub w1, w1, #1 cmp w0, w1 - blt .L2725 + blt .L2728 ldr x1, [x28,728] strh wzr, [x21,218] ldr w0, [x1,4] @@ -17413,14 +17431,14 @@ flash_info_flush: mov w0, 0 ldrh w19, [x28,2] mul w19, w1, w19 - b .L2733 -.L2725: + b .L2736 +.L2728: madd w19, w20, w3, w19 - cbnz w0, .L2726 -.L2733: + cbnz w0, .L2729 +.L2736: mov w1, w19 bl flash_erase_block -.L2726: +.L2729: add x2, x23, :lo12:.LANCHOR0 add x20, x22, :lo12:.LANCHOR6 mov w4, 4 @@ -17442,16 +17460,16 @@ flash_info_flush: ldrh w1, [x20,218] add w1, w1, 1 strh w1, [x20,218] - bne .L2727 + bne .L2730 mov x0, x25 mov w1, w19 bl printk - b .L2724 -.L2727: - cbnz w26, .L2734 + b .L2727 +.L2730: + cbnz w26, .L2737 mov w26, 1 - b .L2724 -.L2734: + b .L2727 +.L2737: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -17474,7 +17492,7 @@ flash_info_blk_init: stp x23, x24, [sp,48] str x25, [sp,64] adrp x20, .LANCHOR0 - tbz x0, 12, .L2736 + tbz x0, 12, .L2739 add x4, x20, :lo12:.LANCHOR0 adrp x2, .LANCHOR4 adrp x0, .LC210 @@ -17485,10 +17503,10 @@ flash_info_blk_init: add x2, x2, 544 mov w3, 2048 bl printk -.L2736: +.L2739: mov w23, 4 adrp x24, .LANCHOR6 -.L2739: +.L2742: add x19, x20, :lo12:.LANCHOR0 add x21, x24, :lo12:.LANCHOR6 mov w0, 0 @@ -17500,21 +17518,21 @@ flash_info_blk_init: mul w1, w23, w1 bl flash_read_page_en cmn w0, #1 - beq .L2737 + beq .L2740 ldr x2, [x19,728] mov w0, 21321 movk w0, 0x5359, lsl 16 ldr w1, [x2] cmp w1, w0 - beq .L2738 -.L2737: + beq .L2741 +.L2740: add w23, w23, 1 cmp w23, 16 - bne .L2739 -.L2764: + bne .L2742 +.L2767: mov w0, -1 - b .L2763 -.L2738: + b .L2766 +.L2741: ldrb w1, [x2,36] mov w4, 4 ldrh w3, [x19,2] @@ -17527,16 +17545,16 @@ flash_info_blk_init: mov w21, 0 bl flash_read_page_en cmn w0, #1 - beq .L2741 + beq .L2744 ldr x0, [x19,728] mov w1, 21321 movk w1, 0x5359, lsl 16 mov w21, 0 ldr w2, [x0] cmp w2, w1 - bne .L2741 + bne .L2744 ldr w21, [x0,4] -.L2741: +.L2744: add x19, x22, :lo12:.LANCHOR6 add x23, x20, :lo12:.LANCHOR0 mov w0, 0 @@ -17548,21 +17566,21 @@ flash_info_blk_init: ldr x2, [x23,728] bl flash_read_page_en cmn w0, #1 - beq .L2742 + beq .L2745 ldr x0, [x23,728] mov w1, 21321 movk w1, 0x5359, lsl 16 ldr w2, [x0] cmp w2, w1 - bne .L2742 + bne .L2745 ldr w1, [x0,4] cmp w21, w1 - bcs .L2742 + bcs .L2745 ldrb w1, [x0,37] ldrb w0, [x0,36] strb w1, [x19,216] strb w0, [x19,217] -.L2742: +.L2745: add x19, x22, :lo12:.LANCHOR6 add x21, x20, :lo12:.LANCHOR0 mov w0, 0 @@ -17578,10 +17596,10 @@ flash_info_blk_init: mov w21, 0 strh w0, [x19,218] mul w23, w1, w23 -.L2743: +.L2746: sub w19, w24, w21 sxth w19, w19 - tbnz w19, #31, .L2765 + tbnz w19, #31, .L2768 add x25, x20, :lo12:.LANCHOR0 add x3, x22, :lo12:.LANCHOR6 mov w0, 0 @@ -17591,33 +17609,33 @@ flash_info_blk_init: ldr x3, [x3,208] bl flash_read_page_en cmn w0, #1 - beq .L2744 + beq .L2747 ldr x0, [x25,728] ldr w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 cmp w1, w0 - beq .L2745 -.L2744: + beq .L2748 +.L2747: add w21, w21, 1 - b .L2743 -.L2765: + b .L2746 +.L2768: cmn w19, #1 - bne .L2745 + 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 .L2764 -.L2745: + b .L2767 +.L2748: cmp w21, 1 mov w0, 0 - bls .L2763 + bls .L2766 bl flash_info_flush mov w0, 0 -.L2763: +.L2766: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17638,15 +17656,15 @@ nand_flash_init: stp x23, x24, [sp,48] ldr w0, [x20,#:lo12:.LANCHOR2] stp x25, x26, [sp,64] - tbz x0, 12, .L2767 + tbz x0, 12, .L2770 adrp x2, .LANCHOR4 adrp x0, .LC136 add x2, x2, :lo12:.LANCHOR4 add x0, x0, :lo12:.LC136 - mov w1, 2578 + mov w1, 2759 add x2, x2, 568 bl printk -.L2767: +.L2770: adrp x21, .LANCHOR3 mov x0, x19 add x23, x21, :lo12:.LANCHOR3 @@ -17672,74 +17690,74 @@ nand_flash_init: mov w2, 32 mov w23, 0 bl ftl_memset -.L2773: +.L2776: mov w0, w23 mov x1, x24 bl flash_read_id - cbnz w23, .L2768 + cbnz w23, .L2771 ldrb w0, [x22,760] add x1, x22, 760 sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bls .L2769 -.L2771: + bls .L2772 +.L2774: mov w22, -2 - b .L2845 -.L2769: + b .L2849 +.L2772: ldrb w0, [x1,1] cmp w0, 255 - beq .L2771 -.L2768: + beq .L2774 +.L2771: ldrb w0, [x24] cmp w0, 181 - bne .L2772 + bne .L2775 strb w25, [x24] -.L2772: +.L2775: add w23, w23, 1 add x24, x24, 8 uxtb w23, w23 cmp w23, 4 - bne .L2773 + bne .L2776 add x23, x20, :lo12:.LANCHOR2 add x24, x19, :lo12:.LANCHOR0 add x23, x23, 440 mov w22, 0 add x24, x24, 760 -.L2776: +.L2779: ldrb w2, [x23] add x0, x23, 1 mov x1, x24 bl flash_mem_cmp8 - cbnz w0, .L2774 + cbnz w0, .L2777 add x1, x20, :lo12:.LANCHOR2 ubfiz x22, x22, 5, 32 add x0, x1, 440 adds x22, x0, x22 - beq .L2771 + beq .L2774 ldrb w3, [x22,22] mov x0, 0 - b .L2778 -.L2774: + b .L2781 +.L2777: add w22, w22, 1 add x23, x23, 32 - cmp w22, 44 - bne .L2776 - b .L2771 -.L2778: + cmp w22, 45 + bne .L2779 + b .L2774 +.L2781: add x4, x1, x0, lsl 5 mov w2, w0 - ldrb w4, [x4,1848] + ldrb w4, [x4,1880] cmp w4, w3 - beq .L2777 + beq .L2780 add x0, x0, 1 cmp x0, 4 - bne .L2778 + bne .L2781 mov w2, w0 -.L2777: +.L2780: add x23, x20, :lo12:.LANCHOR2 add x24, x19, :lo12:.LANCHOR0 - add x1, x23, 1848 + add x1, x23, 1880 ubfiz x2, x2, 5, 32 add x1, x1, x2 add x0, x24, 640 @@ -17752,31 +17770,31 @@ nand_flash_init: bl ftl_memcpy ldrb w0, [x24,516] cmp w0, 8 - bhi .L2779 + bhi .L2782 ldrb w0, [x23,20] cmp w0, 60 - bls .L2779 + bls .L2782 mov w0, 60 strb w0, [x23,20] -.L2779: +.L2782: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2810 + tbz x0, 12, .L2814 adrp x2, .LANCHOR4 adrp x0, .LC136 add x2, x2, :lo12:.LANCHOR4 add x0, x0, :lo12:.LC136 - mov w1, 2600 + mov w1, 2781 add x2, x2, 568 bl printk -.L2810: +.L2814: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x0,624] ldrh w1, [x1,10] - cmp w1, 2304 - bne .L2780 + cmp w1, 1023 + bls .L2783 mov w1, 2 strb w1, [x0,744] -.L2780: +.L2783: add x24, x21, :lo12:.LANCHOR3 mov w0, 16384 add x22, x19, :lo12:.LANCHOR0 @@ -17812,7 +17830,7 @@ nand_flash_init: ubfx x1, x0, 8, 3 strb w1, [x22,792] ubfx x1, x0, 3, 1 - strb w1, [x24,1544] + strb w1, [x24,1552] ubfx x1, x0, 4, 1 strb w1, [x22,793] ubfx x1, x0, 12, 1 @@ -17836,72 +17854,80 @@ nand_flash_init: cmp w1, 9 strb w2, [x19,#:lo12:.LANCHOR0] strb w0, [x22,632] - bne .L2781 + bne .L2784 mov w0, 70 strb w0, [x22,632] -.L2781: +.L2784: add x0, x19, :lo12:.LANCHOR0 strb w2, [x0,634] add x2, x20, :lo12:.LANCHOR2 ldrb w2, [x2,15] cmp w2, 9 - bne .L2782 + bne .L2785 strb wzr, [x0,634] -.L2782: +.L2785: add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,39] - tbz x0, 0, .L2783 + add x0, x0, 8 + ldrb w2, [x0,31] + tbz x2, 0, .L2786 + ldrb w0, [x0,29] + cbz w0, .L2787 + add x0, x19, :lo12:.LANCHOR0 + mov w2, 2 + b .L2851 +.L2787: add x0, x19, :lo12:.LANCHOR0 mov w2, 3 +.L2851: strb w2, [x0,634] -.L2783: +.L2786: cmp w1, 8 - bne .L2784 + bne .L2788 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,760] cmp w0, 137 - beq .L2811 + beq .L2815 cmp w0, 44 - bne .L2784 -.L2811: + bne .L2788 +.L2815: add x0, x20, :lo12:.LANCHOR2 ldrb w0, [x0,36] cmp w0, 3 - bne .L2784 + bne .L2788 add x0, x19, :lo12:.LANCHOR0 strb wzr, [x0,634] -.L2784: +.L2788: 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, .L2787 + tbz x1, 6, .L2791 sub w1, w0, #17 cmp w0, 21 cset w2, eq uxtb w1, w1 cmp w1, 2 - bls .L2812 - cbz w2, .L2788 -.L2812: + bls .L2816 + cbz w2, .L2792 +.L2816: add x0, x21, :lo12:.LANCHOR3 adrp x1, micron_read_retrial add x1, x1, :lo12:micron_read_retrial str x1, [x0,1520] mov w1, 15 - cbz w2, .L2847 + cbz w2, .L2852 mov w1, 4 - b .L2847 -.L2788: + b .L2852 +.L2792: sub w1, w0, #65 uxtb w1, w1 cmp w1, 1 - bls .L2813 + bls .L2817 cmp w0, 33 - bne .L2792 -.L2813: + bne .L2796 +.L2817: add x0, x21, :lo12:.LANCHOR3 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial @@ -17909,8 +17935,8 @@ nand_flash_init: str x1, [x0,1520] add x1, x19, :lo12:.LANCHOR0 strb w2, [x1,726] - b .L2849 -.L2792: + b .L2854 +.L2796: sub w1, w0, #67 uxtb w1, w1 cmp w1, 1 @@ -17918,84 +17944,84 @@ nand_flash_init: cset w2, ls uxtb w1, w1 cmp w1, 1 - bls .L2814 - cbz w2, .L2794 -.L2814: + bls .L2818 + cbz w2, .L2798 +.L2818: add x3, x21, :lo12:.LANCHOR3 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial cmp w0, 35 str x1, [x3,1520] - beq .L2796 + beq .L2800 cmp w0, 68 - beq .L2796 + beq .L2800 mov w0, 7 strb w0, [x3,1512] - b .L2797 -.L2796: + b .L2801 +.L2800: add x0, x21, :lo12:.LANCHOR3 mov w1, 17 strb w1, [x0,1512] -.L2797: +.L2801: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 - cbnz w2, .L2848 + cbnz w2, .L2853 mov w1, 5 -.L2848: +.L2853: strb w1, [x0,726] - b .L2787 -.L2794: + b .L2791 +.L2798: sub w0, w0, #36 uxtb w0, w0 cmp w0, 1 - bhi .L2787 + bhi .L2791 add x0, x21, :lo12:.LANCHOR3 adrp x1, toshiba_3d_read_retrial add x1, x1, :lo12:toshiba_3d_read_retrial str x1, [x0,1520] -.L2849: +.L2854: mov w1, 7 -.L2847: +.L2852: strb w1, [x0,1512] -.L2787: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2799 - adrp x2, .LANCHOR4 - adrp x0, .LC136 - add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC136 - mov w1, 2671 - add x2, x2, 568 - bl printk -.L2799: - add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,672] - ldrb w0, [x0,792] - tbz x0, 0, .L2800 - mov w0, 4 - bl nandc_set_if_mode - mov w0, 1 - bl flash_set_interface_mode - mov w0, 1 - b .L2850 -.L2800: - mov w0, 4 -.L2850: - bl nandc_set_if_mode - bl flash_info_blk_init - cmn w0, #1 - mov w22, w0 - bne .L2802 +.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, 2688 + mov w1, 2857 add x2, x2, 568 bl printk .L2803: + add x0, x19, :lo12:.LANCHOR0 + strb wzr, [x0,672] + ldrb w0, [x0,792] + tbz x0, 0, .L2804 + mov w0, 4 + bl nandc_set_if_mode + mov w0, 1 + bl flash_set_interface_mode + mov w0, 1 + b .L2855 +.L2804: + mov w0, 4 +.L2855: + 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: add x19, x19, :lo12:.LANCHOR0 mov w1, 17 ldr x0, [x19,728] @@ -18003,25 +18029,25 @@ nand_flash_init: strb w1, [x0,32] mov w0, 0 bl zftl_flash_exit_slc_mode - b .L2845 -.L2802: + b .L2849 +.L2806: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,725] sub w0, w0, #1 uxtb w0, w0 cmp w0, 7 - bhi .L2804 + bhi .L2808 add x21, x21, :lo12:.LANCHOR3 adrp x0, hynix_read_retrial add x0, x0, :lo12:hynix_read_retrial str x0, [x21,1520] -.L2804: +.L2808: add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x19,792] - tbz x0, 2, .L2806 + tbz x0, 2, .L2810 ldr x0, [x19,728] ldrb w0, [x0,19] - cbz w0, .L2806 + cbz w0, .L2810 add x23, x23, :lo12:.LANCHOR6 ldrh w1, [x19,2] mov w0, 0 @@ -18029,24 +18055,24 @@ nand_flash_init: mul w1, w2, w1 bl flash_ddr_para_scan ldrb w0, [x19,672] - cbnz w0, .L2806 + cbnz w0, .L2810 ldr x1, [x19,728] strb w0, [x1,19] bl flash_info_flush -.L2806: +.L2810: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2808 + tbz x0, 12, .L2812 adrp x2, .LANCHOR4 adrp x0, .LC136 add x2, x2, :lo12:.LANCHOR4 add x0, x0, :lo12:.LC136 - mov w1, 2740 + mov w1, 2929 add x2, x2, 568 bl printk -.L2808: +.L2812: mov w22, 0 bl nand_flash_print_info -.L2845: +.L2849: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18077,11 +18103,11 @@ ftl_sysblk_dump: mov w19, w21 adrp x27, .LANCHOR0 add x23, x23, :lo12:.LC201 -.L2852: +.L2857: add x3, x27, :lo12:.LANCHOR0 ldrh w0, [x3,3596] cmp w0, w19 - bls .L2864 + bls .L2869 ldrh w22, [x3,3634] ldr x1, [x20,8] ldr x2, [x20,24] @@ -18112,16 +18138,16 @@ ftl_sysblk_dump: ldr w7, [x7,8] bl printk cmp w25, 512 - beq .L2857 + beq .L2862 cmn w25, #1 - bne .L2853 -.L2857: + bne .L2858 +.L2862: mov w21, 1 -.L2853: +.L2858: add w19, w19, 1 uxth w19, w19 - b .L2852 -.L2864: + b .L2857 +.L2869: adrp x0, .LC212 add x1, x26, 704 add x0, x0, :lo12:.LC212 @@ -18130,16 +18156,16 @@ ftl_sysblk_dump: bl rknand_print_hex mov x0, x20 bl zbuf_free - cbz w21, .L2856 + cbz w21, .L2861 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1422 + mov w2, 1432 add x1, x1, 584 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2856: +.L2861: sub sp, x29, #48 mov w0, w21 ldp x19, x20, [sp,64] @@ -18281,10 +18307,10 @@ pm_ppa_update_check: ubfx x3, x3, 5, 3 cmp w3, 7 cset w4, eq - cbnz w4, .L2870 + cbnz w4, .L2875 cmp w3, w7 - bne .L2867 -.L2870: + bne .L2872 +.L2875: mov w3, w2 mov w2, w1 mov x1, x0 @@ -18293,7 +18319,7 @@ pm_ppa_update_check: bl printk bl dump_ftl_info mov w4, -1 -.L2867: +.L2872: mov w0, w4 ldp x29, x30, [sp], 16 ret @@ -18311,7 +18337,7 @@ load_l2p_region: stp x25, x26, [sp,64] cmp w23, 31 uxth w21, w0 - bls .L2873 + bls .L2878 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -18320,14 +18346,14 @@ load_l2p_region: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2873: +.L2878: adrp x24, .LANCHOR0 adrp x20, .LANCHOR6 add x26, x24, :lo12:.LANCHOR0 ldr x0, [x26,2880] ldrh w2, [x0,698] cmp w21, w2 - bls .L2874 + bls .L2879 adrp x0, .LC225 mov w1, w21 add x0, x0, :lo12:.LC225 @@ -18341,7 +18367,7 @@ load_l2p_region: ldr x0, [x26,2880] ldrh w0, [x0,698] cmp w0, w21 - bcs .L2884 + bcs .L2889 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -18350,8 +18376,8 @@ load_l2p_region: add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L2876 -.L2874: + b .L2881 +.L2879: add x0, x0, x21, sxtw 2 adrp x22, .LANCHOR3 ldr w19, [x0,704] @@ -18361,7 +18387,7 @@ load_l2p_region: add x27, x0, x1 strh w21, [x0,x1] strh wzr, [x27,2] - cbnz w19, .L2877 + cbnz w19, .L2882 adrp x0, .LC226 mov w1, w21 mov w2, w19 @@ -18372,8 +18398,8 @@ load_l2p_region: mov w1, 255 ldrh w2, [x20,224] bl ftl_memset - b .L2876 -.L2877: + b .L2881 +.L2882: add x25, x20, :lo12:.LANCHOR6 ldrb w3, [x26,2848] ldr x1, [x27,8] @@ -18384,17 +18410,17 @@ load_l2p_region: ldr x0, [x25,192] ldr w2, [x0] cmp w2, w21 - bne .L2878 + bne .L2883 cmn w3, #1 - beq .L2878 + beq .L2883 cmp w3, 512 - beq .L2878 -.L2881: + beq .L2883 +.L2886: add x20, x20, :lo12:.LANCHOR6 ldr x0, [x20,192] ldr w0, [x0] cmp w0, w21 - beq .L2884 + beq .L2889 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -18403,8 +18429,8 @@ load_l2p_region: add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L2884 -.L2878: + b .L2889 +.L2883: adrp x0, .LC227 mov w4, w19 add x24, x24, :lo12:.LANCHOR0 @@ -18444,18 +18470,18 @@ load_l2p_region: ldr x1, [x23,192] ldr w1, [x1] cmp w1, w21 - bne .L2876 - cmp w0, w19 - beq .L2883 - cmp w0, 512 bne .L2881 - b .L2883 -.L2884: + cmp w0, w19 + beq .L2888 + cmp w0, 512 + bne .L2886 + b .L2888 +.L2889: mov w19, 0 - b .L2876 -.L2883: + b .L2881 +.L2888: mov w19, -1 -.L2876: +.L2881: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -18484,10 +18510,10 @@ pm_gc: ldrh w0, [x1,1456] sub w0, w0, #1 cmp w2, w0 - bge .L2886 + bge .L2891 ldr w0, [x1,1448] - cbz w0, .L2887 -.L2886: + cbz w0, .L2892 +.L2891: bl pm_free_sblk add x1, x19, :lo12:.LANCHOR0 add x3, x25, :lo12:.LANCHOR3 @@ -18496,17 +18522,17 @@ pm_gc: ldrh w4, [x2,688] sub w1, w1, #1 cmp w4, w1 - bge .L2888 + bge .L2893 ldr w1, [x3,1448] - cbz w1, .L2887 -.L2888: + cbz w1, .L2892 +.L2893: add x1, x25, :lo12:.LANCHOR3 add x0, x2, x0, uxth 1 ldrh w21, [x0,416] mov w20, 65535 str wzr, [x1,1448] cmp w21, w20 - bne .L2890 + bne .L2895 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -18521,8 +18547,8 @@ pm_gc: add x0, x1, x0, uxth 1 ldrh w21, [x0,416] cmp w21, w20 - beq .L2887 -.L2890: + beq .L2892 +.L2895: bl pm_select_ram_region uxth x20, w0 add x0, x25, :lo12:.LANCHOR3 @@ -18533,28 +18559,28 @@ pm_gc: ldrh w0, [x0,x1] mov w1, 65535 cmp w0, w1 - beq .L2891 + beq .L2896 ldr x1, [x23,8] - cbz x1, .L2891 + cbz x1, .L2896 ldrsh w2, [x23,2] - tbz w2, #31, .L2891 + tbz w2, #31, .L2896 bl pm_write_page ldrh w0, [x23,2] and w0, w0, 32767 strh w0, [x23,2] -.L2891: +.L2896: add x25, x25, :lo12:.LANCHOR3 mov w26, 0 sub x25, x25, #160 mov w23, 24 mov w24, 1 add x20, x25, x20, lsl 4 -.L2892: +.L2897: add x3, x19, :lo12:.LANCHOR0 ldr x0, [x3,2880] ldrh w1, [x0,698] cmp w1, w26 - bls .L2902 + bls .L2907 ldrb w2, [x3,744] add x0, x0, x26, sxtw 2 ldrh w1, [x3,3536] @@ -18568,24 +18594,24 @@ pm_gc: ldrb w0, [x3,3538] udiv w1, w1, w0 cmp w21, w1, uxth - bne .L2893 + bne .L2898 mov w0, w26 mov w1, w22 bl load_l2p_region - cbnz w0, .L2894 + cbnz w0, .L2899 ldr x1, [x20,8] mov w0, w26 bl pm_write_page -.L2894: +.L2899: mov w0, -1 strh w0, [x20] -.L2893: +.L2898: add w26, w26, 1 uxth w26, w26 - b .L2892 -.L2902: + b .L2897 +.L2907: bl pm_free_sblk -.L2887: +.L2892: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -18613,10 +18639,10 @@ pm_flush_id: and w0, w0, 32767 strh w0, [x20,2] ldr w0, [x19,-168] - cbz w0, .L2904 + cbz w0, .L2909 bl pm_gc str wzr, [x19,-168] -.L2904: +.L2909: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -18633,16 +18659,16 @@ pm_flush: mov x19, 0 add x20, x20, :lo12:.LANCHOR3 sub x20, x20, #160 -.L2910: +.L2915: add x1, x20, x19, lsl 4 uxth w0, w19 ldrsh w1, [x1,2] - tbz w1, #31, .L2909 + tbz w1, #31, .L2914 bl pm_flush_id -.L2909: +.L2914: add x19, x19, 1 cmp x19, 32 - bne .L2910 + bne .L2915 mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -18678,128 +18704,149 @@ zftl_deinit: .global pm_init .type pm_init, %function pm_init: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR6 - adrp x19, .LANCHOR3 stp x21, x22, [sp,32] - add x22, x20, :lo12:.LANCHOR6 - add x21, x19, :lo12:.LANCHOR3 + adrp x21, .LANCHOR6 + add x22, x21, :lo12:.LANCHOR6 + stp x19, x20, [sp,16] + adrp x19, .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] mov w0, 64 - str wzr, [x21,1448] mov w24, -1 - str wzr, [x21,-168] + str wzr, [x20,1448] adrp x25, .LANCHOR0 + str wzr, [x20,-168] bl ftl_malloc str x0, [x22,192] - sub x22, x21, #160 - add x21, x21, 352 -.L2916: + sub x22, x20, #160 + add x20, x20, 352 +.L2921: strh w24, [x22] strh wzr, [x22,2] - cbz w23, .L2915 + cbz w23, .L2920 add x0, x25, :lo12:.LANCHOR0 ldrb w0, [x0,2848] lsl w0, w0, 9 bl ftl_malloc str x0, [x22,8] -.L2915: +.L2920: add x22, x22, 16 - cmp x22, x21 - bne .L2916 + cmp x22, x20 + bne .L2921 add x0, x19, :lo12:.LANCHOR3 - adrp x21, .LANCHOR0 - add x22, x21, :lo12:.LANCHOR0 + adrp x20, .LANCHOR0 + add x23, x20, :lo12:.LANCHOR0 mov w4, 4 ldr x26, [x0,-152] - add x0, x20, :lo12:.LANCHOR6 - ldr x1, [x22,2880] + add x0, x21, :lo12:.LANCHOR6 + ldr x1, [x23,2880] mov x2, x26 - ldr x25, [x0,192] + ldr x22, [x0,192] ldrb w0, [x1,694] ldrh w1, [x1,692] - mov x3, x25 + mov x3, x22 bl flash_get_last_written_page - sxth w23, w0 - ldr x1, [x22,2880] - mov w24, w23 + sxth w24, w0 + ldr x1, [x23,2880] + mov w25, w24 ldrh w2, [x1,696] - cmp w2, w23 - bgt .L2917 + cmp w2, w24 + bgt .L2922 adrp x0, .LC231 ldrh w1, [x1,692] add x0, x0, :lo12:.LC231 - mov w3, w23 + mov w3, w24 adrp x27, .LC232 + adrp x28, .LC233 bl printk - add x27, x27, :lo12:.LC232 - ldr x0, [x22,2880] - add w5, w23, 1 - ldrsh w22, [x0,696] -.L2918: - cmp w22, w5 - bge .L2935 - add x23, x21, :lo12:.LANCHOR0 + add x28, x28, :lo12:.LC233 + ldr x0, [x23,2880] + ldrsh w23, [x0,696] + add w0, w24, 1 + str w0, [x29,124] + add x0, x27, :lo12:.LC232 + str x0, [x29,112] +.L2923: + ldr w0, [x29,124] + cmp w23, w0 + bge .L2944 + add x27, x20, :lo12:.LANCHOR0 mov x2, x26 - mov x3, x25 - str x5, [x29,96] - ldr x1, [x23,2880] - ldrh w28, [x23,3634] - ldrb w4, [x23,2848] - ldrh w0, [x1,692] - madd w28, w0, w28, w22 - ldrb w0, [x1,694] - mov w1, w28 + mov x3, x22 + ldr x0, [x27,2880] + ldrh w1, [x27,3634] + ldrb w4, [x27,2848] + 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, [x23,2880] - mov x0, x27 - mov w2, w28 + ldr x3, [x27,2880] + mov w2, w24 + ldr x0, [x29,112] str x4, [x29,104] ldr w1, [x3,48] add w1, w1, 1 str w1, [x3,48] ldrh w3, [x3,694] - ldr w1, [x25] + ldr w1, [x22] bl printk ldr x4, [x29,104] - ldr x5, [x29,96] cmp w4, 512 - beq .L2919 + beq .L2924 cmn w4, #1 - beq .L2919 - ldr x1, [x23,2880] - ldr w0, [x25] - ldrh w2, [x1,698] - cmp w0, w2 - bcs .L2919 - add x0, x1, x0, uxtw 2 - str w28, [x0,704] -.L2919: - add w22, w22, 1 - sxth w22, w22 - b .L2918 -.L2935: + beq .L2924 + ldr x0, [x27,2880] + ldr w1, [x22] + ldrh w0, [x0,698] + cmp w1, w0 + bcs .L2924 + ldr w2, [x22,8] + cbz w2, .L2925 + ldrb w1, [x27,2848] + mov x0, x26 + str x2, [x29,104] + lsl w1, w1, 9 + bl js_hash + ldr x2, [x29,104] + cmp w2, w0 + beq .L2925 + ldr w1, [x22,8] + mov x0, x28 + bl printk + b .L2924 +.L2925: + add x0, x20, :lo12:.LANCHOR0 + ldr x1, [x0,2880] + ldr w0, [x22] + add x0, x0, 176 + str w24, [x1,x0,lsl 2] +.L2924: + add w23, w23, 1 + sxth w23, w23 + b .L2923 +.L2944: adrp x0, .LANCHOR5+897 - add x21, x21, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 mov w1, 1 - add w24, w24, 1 + add w25, w25, 1 strb w1, [x0,#:lo12:.LANCHOR5+897] - ldr x0, [x21,2880] - strh w24, [x0,696] + ldr x0, [x20,2880] + strh w25, [x0,696] bl pm_free_sblk -.L2917: +.L2922: add x19, x19, :lo12:.LANCHOR3 - add x20, x20, :lo12:.LANCHOR6 + add x21, x21, :lo12:.LANCHOR6 mov w1, 255 - ldrh w2, [x20,224] + ldrh w2, [x21,224] ldr x0, [x19,-152] bl ftl_memset ldr x1, [x19,-152] @@ -18807,7 +18854,7 @@ pm_init: bl pm_write_page adrp x0, .LANCHOR5+897 ldrb w0, [x0,#:lo12:.LANCHOR5+897] - cbz w0, .L2921 + cbz w0, .L2927 ldr x1, [x19,-152] mov w0, -1 bl pm_write_page @@ -18817,7 +18864,7 @@ pm_init: ldr x1, [x19,-152] mov w0, -1 bl pm_write_page -.L2921: +.L2927: bl pm_free_sblk bl pm_gc mov w0, 0 @@ -18826,7 +18873,7 @@ pm_init: ldp x23, x24, [sp,48] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x29, x30, [sp], 128 ret .size pm_init, .-pm_init .align 2 @@ -18853,28 +18900,28 @@ pm_log2phys: uxth w26, w24 msub w20, w26, w20, w3 uxth x20, w20 - bcc .L2937 - adrp x0, .LC233 + bcc .L2946 + adrp x0, .LC234 mov w1, w3 - add x0, x0, :lo12:.LC233 + add x0, x0, :lo12:.LC234 bl printk mov w0, -1 - cbnz w25, .L2938 + cbnz w25, .L2947 str w0, [x23] - b .L2938 -.L2937: + b .L2947 +.L2946: adrp x21, .LANCHOR3 mov x19, 0 add x1, x21, :lo12:.LANCHOR3 sub x1, x1, #160 -.L2943: +.L2952: ldr x0, [x1,8] - cbz x0, .L2939 + cbz x0, .L2948 ldrh w0, [x1] cmp w0, w26 - bne .L2939 -.L2940: - cbnz w25, .L2941 + bne .L2948 +.L2949: + cbnz w25, .L2950 add x0, x21, :lo12:.LANCHOR3 add x22, x22, :lo12:.LANCHOR0 add x0, x0, x19, lsl 4 @@ -18891,11 +18938,11 @@ pm_log2phys: sub w2, w2, #1 and w0, w0, w2 cmp w0, w1 - bcc .L2942 + bcc .L2951 mov w0, -1 str w0, [x23] - b .L2942 -.L2941: + b .L2951 +.L2950: add x2, x21, :lo12:.LANCHOR3 ldr w3, [x23] sub x0, x2, #160 @@ -18906,7 +18953,7 @@ pm_log2phys: ldrh w1, [x0,2] orr w1, w1, -32768 strh w1, [x0,2] -.L2942: +.L2951: add x21, x21, :lo12:.LANCHOR3 mov w2, 32767 sub x21, x21, #160 @@ -18915,16 +18962,16 @@ pm_log2phys: ldrh w1, [x19,2] and w3, w1, 32767 cmp w3, w2 - beq .L2938 + beq .L2947 add w1, w1, 1 strh w1, [x19,2] - b .L2938 -.L2939: + b .L2947 +.L2948: add w19, w19, 1 add x1, x1, 16 uxth x19, w19 cmp w19, 32 - bne .L2943 + bne .L2952 bl pm_select_ram_region uxth x19, w0 add x2, x21, :lo12:.LANCHOR3 @@ -18935,19 +18982,19 @@ pm_log2phys: ldrh w3, [x2,x3] mov w2, 65535 cmp w3, w2 - beq .L2944 + beq .L2953 ldrsh w2, [x4,2] - tbz w2, #31, .L2944 + tbz w2, #31, .L2953 str x1, [x29,88] bl pm_flush_id ldr x1, [x29,88] -.L2944: +.L2953: adrp x0, .LANCHOR6+226 strb w19, [x0,#:lo12:.LANCHOR6+226] mov w0, w26 bl load_l2p_region - b .L2940 -.L2938: + b .L2949 +.L2947: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18978,7 +19025,7 @@ gc_recovery: strb wzr, [x0,1418] mov w0, 65535 cmp w1, w0 - beq .L2952 + beq .L2961 mov w0, -1 strh w0, [x21,130] mov w0, 1 @@ -18993,42 +19040,42 @@ gc_recovery: ldrb w1, [x20,3553] str w0, [x29,168] cmp w1, 2 - beq .L2953 + beq .L2962 ldrb w2, [x20,756] - cbz w2, .L2954 -.L2953: + cbz w2, .L2963 +.L2962: add x2, x19, :lo12:.LANCHOR0 ldrh w2, [x2,3570] sub w2, w2, #1 add w0, w2, w0 orr w0, w0, w1, lsl 24 - b .L3029 -.L2954: + b .L3038 +.L2963: cmp w1, 3 - bne .L2955 + bne .L2964 ldrh w1, [x20,3596] sub w1, w1, #1 add w0, w1, w0 orr w0, w0, 50331648 -.L3029: +.L3038: str w0, [x27,40] -.L2955: +.L2964: mov x0, x27 mov w1, 1 bl sblk_read_page ldr w0, [x27,52] cmp w0, 512 - beq .L2956 + beq .L2965 cmn w0, #1 cset w26, eq - cbnz w26, .L2956 + cbnz w26, .L2965 ldr x0, [x27,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2957 -.L2956: + beq .L2966 +.L2965: mov x0, x27 mov w20, 0 bl zbuf_free @@ -19040,8 +19087,8 @@ gc_recovery: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC234 - add x0, x0, :lo12:.LC234 + adrp x0, .LC235 + add x0, x0, :lo12:.LC235 ldr w1, [x27,40] ldr w2, [x27,52] ldr w3, [x6] @@ -19057,8 +19104,8 @@ gc_recovery: ldr x0, [x0,608] ldrh w1, [x21,80] strh w1, [x0,130] - b .L2958 -.L2957: + b .L2967 +.L2966: add x24, x19, :lo12:.LANCHOR0 add x25, x22, :lo12:.LANCHOR3 ldr x1, [x27,8] @@ -19074,7 +19121,7 @@ gc_recovery: mul w3, w0, w3 lsl w2, w3, 2 cmp w20, w3, lsr 6 - bge .L2959 + bge .L2968 ldr x0, [x25,1432] mov w1, w26 lsl w20, w20, 7 @@ -19090,51 +19137,51 @@ gc_recovery: mov w2, w20 bl ftl_memcpy mov w10, 1 - b .L2960 -.L2959: + b .L2969 +.L2968: ldr x0, [x25,1432] mov w20, w26 ldr x1, [x27,8] add x1, x1, x3, sxtw 2 bl ftl_memcpy mov w10, w26 -.L2960: +.L2969: add x0, x19, :lo12:.LANCHOR0 ldrb w24, [x0,3553] ldrh w26, [x0,3596] cmp w24, 2 - bne .L2961 + bne .L2970 ldrb w0, [x0,3554] - cbz w0, .L2962 -.L2961: + cbz w0, .L2971 +.L2970: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,756] - cbz w0, .L2963 -.L2962: + cbz w0, .L2972 +.L2971: mul w26, w26, w24 mov w24, 1 -.L2963: +.L2972: mov w28, 0 - adrp x25, .LC235 - add x0, x25, :lo12:.LC235 + adrp x25, .LC236 + add x0, x25, :lo12:.LC236 mov w13, w28 str x0, [x29,136] -.L2964: +.L2973: cmp w28, w26 - bcs .L2976 + bcs .L2985 sub w0, w28, #1 mov w25, 0 str w0, [x29,148] -.L2977: +.L2986: ldrb w0, [x23,9] cmp w25, w0 - bge .L2973 + bge .L2982 sxtw x0, w25 mov w11, 1 str x0, [x29,152] -.L2974: +.L2983: cmp w11, w24 - bhi .L3030 + bhi .L3039 ldr x0, [x29,152] add x2, x19, :lo12:.LANCHOR0 add x0, x0, 8 @@ -19144,21 +19191,21 @@ gc_recovery: ldrb w1, [x2,3553] str w0, [x29,168] cmp w1, 2 - beq .L2965 + beq .L2974 ldrb w2, [x2,756] - cbz w2, .L2966 -.L2965: + cbz w2, .L2975 +.L2974: ldr w2, [x29,148] add w0, w2, w0 add w0, w0, w11 orr w0, w0, w1, lsl 24 - b .L2968 -.L2966: + b .L2977 +.L2975: cmp w1, 3 add w0, w0, w28 - bne .L2968 + bne .L2977 orr w0, w0, w11, lsl 24 -.L2968: +.L2977: str w0, [x27,40] mov w1, 1 mov x0, x27 @@ -19170,16 +19217,16 @@ gc_recovery: ldr x10, [x29,112] ldr x11, [x29,120] sxtw x14, w13 - cbz w10, .L2969 + cbz w10, .L2978 add x0, x22, :lo12:.LANCHOR3 lsl x1, x14, 2 ldr x0, [x0,1432] ldr w2, [x0,x1] - cbnz w2, .L2969 + cbnz w2, .L2978 ldr x2, [x27,24] ldr w2, [x2,8] str w2, [x0,x1] -.L2969: +.L2978: add x0, x22, :lo12:.LANCHOR3 lsl x14, x14, 2 ldr x7, [x27,24] @@ -19187,13 +19234,13 @@ gc_recovery: ldr w6, [x7,4] ldr w3, [x1,x14] cmp w3, w6 - bne .L2970 + bne .L2979 ldr x0, [x0,1432] ldr w1, [x0,x14] ldr w0, [x7,8] cmp w1, w0 - beq .L2997 -.L2970: + beq .L3006 +.L2979: add x15, x22, :lo12:.LANCHOR3 ldr w0, [x7,12] str x10, [x29,96] @@ -19218,7 +19265,7 @@ gc_recovery: ldr x10, [x29,96] ldr w0, [x0,x14] cmn w0, #1 - beq .L2997 + beq .L3006 mov x0, x27 bl zbuf_free add x0, x19, :lo12:.LANCHOR0 @@ -19228,22 +19275,22 @@ gc_recovery: ldr x0, [x0,608] ldrh w1, [x21,80] strh w1, [x0,130] - b .L2958 -.L2997: + b .L2967 +.L3006: add w13, w13, 1 add w11, w11, 1 - b .L2974 -.L3030: + b .L2983 +.L3039: add w25, w25, 1 - b .L2977 -.L2973: + b .L2986 +.L2982: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,3554] cmp w0, wzr csinc w28, w28, w28, eq add w28, w28, 1 - b .L2964 -.L2976: + b .L2973 +.L2985: mov x0, x27 mov w20, 0 mov w28, w20 @@ -19256,29 +19303,29 @@ gc_recovery: ldrh w0, [x0,3570] mul w0, w1, w0 strh w0, [x2,x3,lsl 1] -.L2978: +.L2987: cmp w28, w26 - bcs .L2991 + bcs .L3000 sub w0, w28, #1 mov w25, 0 str w0, [x29,120] -.L2992: +.L3001: ldrb w0, [x23,9] cmp w25, w0 - bge .L2988 + bge .L2997 sxtw x0, w25 mov w27, 1 str x0, [x29,128] -.L2989: +.L2998: cmp w27, w24 - bhi .L3031 + bhi .L3040 add x1, x22, :lo12:.LANCHOR3 ldr w0, [x29,152] sbfiz x0, x0, 2, 32 ldr x2, [x1,1424] ldr w5, [x2,x0] cmn w5, #1 - beq .L2979 + beq .L2988 ldr x1, [x1,1432] str x5, [x29,136] ldr w0, [x1,x0] @@ -19288,13 +19335,13 @@ gc_recovery: str w0, [x29,172] cmn w0, #1 ldr x5, [x29,136] - bne .L2980 + bne .L2989 mov w0, w5 add x1, x29, 172 mov w2, 0 bl pm_log2phys ldr x5, [x29,136] -.L2980: +.L2989: ldr x0, [x29,128] add x2, x19, :lo12:.LANCHOR0 add x0, x0, 8 @@ -19303,21 +19350,21 @@ gc_recovery: mul w1, w1, w0 ldrb w0, [x2,3553] cmp w0, 2 - beq .L2981 + beq .L2990 ldrb w2, [x2,756] - cbz w2, .L2982 -.L2981: + cbz w2, .L2991 +.L2990: ldr w2, [x29,120] add w1, w2, w1 add w1, w1, w27 orr w1, w1, w0, lsl 24 - b .L2984 -.L2982: + b .L2993 +.L2991: cmp w0, 3 add w1, w1, w28 - bne .L2984 + bne .L2993 orr w1, w1, w27, lsl 24 -.L2984: +.L2993: add x0, x19, :lo12:.LANCHOR0 ldr w2, [x29,148] str w1, [x29,168] @@ -19338,19 +19385,19 @@ gc_recovery: str w0, [x29,136] ldr w0, [x29,172] cmp w0, w1 - bne .L2985 + bne .L2994 mov w0, w5 add x1, x29, 168 add w20, w20, 1 bl pm_log2phys ldrh w0, [x29,136] bl ftl_vpn_decrement - b .L2986 -.L2985: + b .L2995 +.L2994: ldr w1, [x29,168] cmp w0, w1 csinc w20, w20, w20, ne -.L2986: +.L2995: ldr w0, [x29,152] add x2, x19, :lo12:.LANCHOR0 add w0, w0, 1 @@ -19360,45 +19407,45 @@ gc_recovery: add x1, x1, x0, lsl 2 ldrb w1, [x1,2] ands w1, w1, 224 - bne .L2979 + bne .L2988 lsl x0, x0, 1 ldr x2, [x2,600] ldrh w5, [x2,x0] - cbz w5, .L2979 + cbz w5, .L2988 strh w1, [x2,x0] -.L2979: - add w27, w27, 1 - b .L2989 -.L3031: - add w25, w25, 1 - b .L2992 .L2988: + add w27, w27, 1 + b .L2998 +.L3040: + add w25, w25, 1 + b .L3001 +.L2997: add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,3554] cmp w0, wzr csinc w28, w28, w28, eq add w28, w28, 1 - b .L2978 -.L2991: + b .L2987 +.L3000: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x21,80] ldr x0, [x0,600] strh w20, [x0,x1,lsl 1] ldrh w0, [x21,80] bl zftl_insert_data_list -.L2958: +.L2967: add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x21,80] ubfiz x2, x0, 1, 16 ldr x1, [x1,600] ldrh w1, [x1,x2] - cbnz w1, .L2993 + cbnz w1, .L3002 bl ftl_dump_write_open_sblk -.L2993: +.L3002: ldrh w1, [x21,80] - adrp x0, .LC236 + adrp x0, .LC237 mov w2, w20 - add x0, x0, :lo12:.LC236 + add x0, x0, :lo12:.LC237 bl printk mov w0, -1 strh w0, [x21,80] @@ -19409,9 +19456,9 @@ gc_recovery: ldr x0, [x0,608] ldrh w0, [x0,130] cmp w0, w1 - beq .L2994 + beq .L3003 bl ftl_free_sblk -.L2994: +.L3003: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 ldr x1, [x19,2880] @@ -19420,15 +19467,15 @@ gc_recovery: strh w0, [x1,130] mov w0, 0 bl ftl_info_flush - b .L2951 -.L2952: + b .L2960 +.L2961: ldrh w0, [x21,130] cmp w0, w1 - beq .L2951 + beq .L2960 ldr x1, [x20,2880] ldrh w1, [x1,126] cmp w1, w0 - bne .L2996 + bne .L3005 bl pm_flush ldr x0, [x20,608] ldrh w0, [x0,130] @@ -19438,12 +19485,12 @@ gc_recovery: strh w1, [x0,126] mov w0, 0 bl ftl_info_flush -.L2996: +.L3005: add x19, x19, :lo12:.LANCHOR0 mov w1, -1 ldr x0, [x19,608] strh w1, [x0,130] -.L2951: +.L2960: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -19472,7 +19519,7 @@ zftl_init: add x21, x19, :lo12:.LANCHOR0 adrp x20, .LANCHOR2 strb w1, [x0,-173] - strb w1, [x0,1545] + strb w1, [x0,1544] strb wzr, [x0,-172] mov w0, -1 strb w1, [x21,2904] @@ -19509,14 +19556,14 @@ zftl_init: strh w4, [x21,3634] mov x21, x23 strh w10, [x24,224] -.L3033: +.L3042: cmp w2, w4 - bhi .L3104 + bhi .L3113 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L3033 -.L3104: + b .L3042 +.L3113: mul w3, w0, w3 add x2, x19, :lo12:.LANCHOR0 sub w1, w1, #1 @@ -19525,14 +19572,14 @@ zftl_init: mov w1, 1 lsr w5, w4, 21 mov w2, 0 -.L3035: +.L3044: cmp w1, w5 - bhi .L3105 + bhi .L3114 add w2, w2, 1 lsl w1, w1, 1 uxth w2, w2 - b .L3035 -.L3105: + b .L3044 +.L3114: mov w1, 57344 mov w5, 1 movk w1, 0x1c, lsl 16 @@ -19569,10 +19616,10 @@ zftl_init: lsr w0, w8, 4 strh w0, [x5,3602] cmp w0, 79 - bhi .L3037 + bhi .L3046 mov w0, 80 strh w0, [x5,3602] -.L3037: +.L3046: add x0, x22, :lo12:.LANCHOR3 mov w2, 2000 add x3, x19, :lo12:.LANCHOR0 @@ -19586,10 +19633,10 @@ zftl_init: strh w2, [x0,1454] mov w2, 32 strh w2, [x3,592] - beq .L3038 + beq .L3047 ldrb w4, [x3,3568] - cbz w4, .L3039 -.L3038: + cbz w4, .L3048 +.L3047: add x0, x22, :lo12:.LANCHOR3 mov w2, 150 mov w3, 12 @@ -19599,92 +19646,92 @@ zftl_init: add x2, x19, :lo12:.LANCHOR0 strh w3, [x2,592] ldrb w3, [x19,#:lo12:.LANCHOR0] - cbnz w3, .L3041 + 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 .L3041 -.L3039: + b .L3050 +.L3048: ldrb w3, [x3,756] - cbz w3, .L3041 + cbz w3, .L3050 mov w3, 1200 strh w2, [x0,-180] strh w3, [x0,-176] strh w2, [x0,1454] -.L3041: +.L3050: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3043 - adrp x0, .LC237 - add x0, x0, :lo12:.LC237 - bl printk -.L3043: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3044 - add x1, x19, :lo12:.LANCHOR0 + tbz x0, 12, .L3052 adrp x0, .LC238 add x0, x0, :lo12:.LC238 - ldr w1, [x1,2852] bl printk -.L3044: +.L3052: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3045 + tbz x0, 12, .L3053 add x1, x19, :lo12:.LANCHOR0 adrp x0, .LC239 add x0, x0, :lo12:.LC239 - ldr w1, [x1,2856] + ldr w1, [x1,2852] bl printk -.L3045: +.L3053: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3046 - add x1, x21, :lo12:.LANCHOR6 + tbz x0, 12, .L3054 + add x1, x19, :lo12:.LANCHOR0 adrp x0, .LC240 add x0, x0, :lo12:.LC240 - ldr w1, [x1,232] + ldr w1, [x1,2856] bl printk -.L3046: +.L3054: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3047 + tbz x0, 12, .L3055 add x1, x21, :lo12:.LANCHOR6 adrp x0, .LC241 add x0, x0, :lo12:.LC241 - ldrh w1, [x1,236] + ldr w1, [x1,232] bl printk -.L3047: +.L3055: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3048 + tbz x0, 12, .L3056 add x1, x21, :lo12:.LANCHOR6 adrp x0, .LC242 add x0, x0, :lo12:.LC242 - ldrh w1, [x1,224] + ldrh w1, [x1,236] bl printk -.L3048: +.L3056: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3049 - add x1, x22, :lo12:.LANCHOR3 + tbz x0, 12, .L3057 + add x1, x21, :lo12:.LANCHOR6 adrp x0, .LC243 add x0, x0, :lo12:.LC243 - ldrh w1, [x1,1456] + ldrh w1, [x1,224] bl printk -.L3049: +.L3057: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3050 - add x1, x19, :lo12:.LANCHOR0 + tbz x0, 12, .L3058 + add x1, x22, :lo12:.LANCHOR3 adrp x0, .LC244 add x0, x0, :lo12:.LC244 - ldrh w1, [x1,3602] + ldrh w1, [x1,1456] bl printk -.L3050: +.L3058: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L3051 + 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 -.L3051: +.L3060: add x23, x19, :lo12:.LANCHOR0 bl zbuf_init mov w0, 6 @@ -19715,11 +19762,11 @@ zftl_init: add x1, x2, x1, sxtw 2 str x1, [x23,608] mov x23, x4 - tbz x0, 12, .L3052 - adrp x0, .LC246 - add x0, x0, :lo12:.LC246 + tbz x0, 12, .L3061 + adrp x0, .LC247 + add x0, x0, :lo12:.LC247 bl printk -.L3052: +.L3061: add x2, x19, :lo12:.LANCHOR0 add x3, x21, :lo12:.LANCHOR6 ldrh w0, [x2,3596] @@ -19734,28 +19781,28 @@ zftl_init: add w24, w24, 704 lsl w22, w22, 1 add w22, w22, 632 - tbz x0, 12, .L3053 - adrp x0, .LC247 + tbz x0, 12, .L3062 + adrp x0, .LC248 ldrh w3, [x3,224] - add x0, x0, :lo12:.LC247 + add x0, x0, :lo12:.LC248 mov w1, w22 mov w2, w24 bl printk -.L3053: +.L3062: add x21, x21, :lo12:.LANCHOR6 ldrh w0, [x21,224] cmp w22, w0 - bhi .L3055 + bhi .L3064 cmp w24, w0 - bls .L3054 -.L3055: -.L3056: - b .L3056 -.L3054: + bls .L3063 +.L3064: +.L3065: + b .L3065 +.L3063: bl sblk_init bl ftl_info_blk_init cmn w0, #1 - beq .L3057 + beq .L3066 bl ftl_ext_info_init add x19, x19, :lo12:.LANCHOR0 bl gc_init @@ -19789,18 +19836,18 @@ zftl_init: mov w0, 1 bl ftl_total_vpn_update ldrb w0, [x23,897] - cbz w0, .L3058 + cbz w0, .L3067 ldr x1, [x19,2880] ldr w0, [x1,68] add w0, w0, 1 str w0, [x1,68] -.L3058: +.L3067: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl print_ftl_debug_info mov w0, 0 -.L3057: +.L3066: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -19826,11 +19873,11 @@ rk_ftl_init: strb wzr, [x20,238] bl ftl_malloc str x0, [x19,1472] - cbnz x0, .L3107 -.L3109: + cbnz x0, .L3116 +.L3118: mov w0, -1 - b .L3108 -.L3107: + b .L3117 +.L3116: mov w0, 2048 bl ftl_malloc str x0, [x20,240] @@ -19840,7 +19887,7 @@ rk_ftl_init: str xzr, [x1,248]! bl rknand_get_reg_addr ldr x0, [x19,1480] - cbz x0, .L3109 + cbz x0, .L3118 bl rk_nandc_irq_init mov w1, 0 ldr x0, [x20,240] @@ -19900,14 +19947,14 @@ rk_ftl_init: ldr x0, [x19,1480] bl nand_flash_init mov w22, w0 - cbnz w0, .L3110 + cbnz w0, .L3119 bl zftl_init mov w19, w0 bl zftl_proc_debug_init mov w0, 1 strb w0, [x20,238] - b .L3111 -.L3110: + b .L3120 +.L3119: ldr x1, [x19,1472] adrp x2, ftl_read_flash_info add x2, x2, :lo12:ftl_read_flash_info @@ -19962,7 +20009,7 @@ rk_ftl_init: mov w19, w0 cmn w22, #2 adrp x22, .LANCHOR2 - bne .L3112 + bne .L3121 add x20, x22, :lo12:.LANCHOR2 adrp x1, gNandParaInfo add x20, x20, 8 @@ -19974,22 +20021,22 @@ rk_ftl_init: bl flash_lsb_page_tbl_build ldrh w0, [x20,10] strh w0, [x20,26] -.L3112: +.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 .L3113 + bne .L3122 adrp x1, gFlashSlcMode ldrb w1, [x1,#:lo12:gFlashSlcMode] - cbnz w1, .L3114 -.L3113: + cbnz w1, .L3123 +.L3122: add x1, x0, :lo12:.LANCHOR0 strb wzr, [x0,#:lo12:.LANCHOR0] strb wzr, [x1,634] -.L3114: +.L3123: adrp x2, gNandFlashIDBEccBits add x1, x0, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR2 @@ -20003,28 +20050,28 @@ rk_ftl_init: strb w2, [x1,724] mov w2, 1 mov w1, 0 -.L3115: +.L3124: cmp w2, w3 - bhi .L3120 + bhi .L3129 add w1, w1, 1 lsl w2, w2, 1 uxth w1, w1 - b .L3115 -.L3120: + b .L3124 +.L3129: add x0, x0, :lo12:.LANCHOR0 sub w1, w1, #1 strb wzr, [x0,672] strh w1, [x0,3536] - cbnz w19, .L3111 + cbnz w19, .L3120 bl FtlInit mov w19, w0 -.L3111: - adrp x0, .LC248 +.L3120: + adrp x0, .LC249 mov w1, w19 - add x0, x0, :lo12:.LC248 + add x0, x0, :lo12:.LC249 bl printk mov w0, w19 -.L3108: +.L3117: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -20052,12 +20099,12 @@ gc_update_l2p_map_new: mul w24, w24, w0 bl timer_get_time ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L3122 - adrp x0, .LC249 + tbz x0, 8, .L3131 + adrp x0, .LC250 ldrh w1, [x20,80] - add x0, x0, :lo12:.LC249 + add x0, x0, :lo12:.LC250 bl printk -.L3122: +.L3131: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] sub w2, w24, #1 @@ -20066,21 +20113,21 @@ gc_update_l2p_map_new: 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,120] - adrp x0, .LC250 - add x0, x0, :lo12:.LC250 str x0, [x29,112] -.L3123: +.L3132: cmp w23, w24 - beq .L3155 + beq .L3164 adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 ldr x0, [x0,1424] ldr w2, [x0,w23,sxtw 2] cmn w2, #1 - beq .L3124 + beq .L3133 add x0, x19, :lo12:.LANCHOR0 ldrb w0, [x0,2848] lsl w0, w0, 7 @@ -20088,27 +20135,27 @@ gc_update_l2p_map_new: and w0, w0, 65535 str w0, [x29,140] ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L3125 + tbz x0, 8, .L3134 ldr x0, [x29,112] mov w3, w23 ldr w1, [x29,140] bl printk -.L3125: +.L3134: mov w25, w23 -.L3131: +.L3140: add x1, x27, :lo12:.LANCHOR3 sbfiz x26, x25, 2, 32 ldr x0, [x1,1424] ldr w4, [x0,x26] cmn w4, #1 - beq .L3126 + beq .L3135 add x0, x19, :lo12:.LANCHOR0 ldr w2, [x29,140] ldrb w0, [x0,2848] lsl w0, w0, 7 udiv w0, w4, w0 cmp w2, w0, uxth - bne .L3126 + bne .L3135 ldr x0, [x1,1432] str x4, [x29,104] ldr w28, [x0,x26] @@ -20117,16 +20164,16 @@ gc_update_l2p_map_new: str w0, [x29,156] cmn w0, #1 ldr x4, [x29,104] - bne .L3127 + bne .L3136 mov w0, w4 add x1, x29, 156 mov w2, 0 bl pm_log2phys ldr x4, [x29,104] -.L3127: +.L3136: ldr w3, [x29,156] cmp w3, w28 - bne .L3128 + bne .L3137 add x0, x27, :lo12:.LANCHOR3 add x1, x29, 152 mov w2, 1 @@ -20149,51 +20196,51 @@ gc_update_l2p_map_new: and w28, w0, w28 ldrb w0, [x3,3538] udiv w0, w28, w0 - b .L3154 -.L3128: + b .L3163 +.L3137: ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L3130 + tbz x0, 8, .L3139 ldr x0, [x29,120] mov w1, w4 mov w2, w28 bl printk -.L3130: +.L3139: ldr x0, [x29,128] ldrh w0, [x0] -.L3154: +.L3163: bl ftl_vpn_decrement add x0, x27, :lo12:.LANCHOR3 mov w1, -1 ldr x0, [x0,1424] str w1, [x0,x26] bl timer_get_time -.L3126: +.L3135: add w25, w25, 1 cmp w25, w24 - bne .L3131 -.L3124: + bne .L3140 +.L3133: add w23, w23, 1 - b .L3123 -.L3155: + b .L3132 +.L3164: ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 8, .L3133 + tbz x0, 8, .L3142 add x0, x19, :lo12:.LANCHOR0 ldrh w3, [x20,80] ldr x1, [x0,608] ldr x2, [x0,600] - adrp x0, .LC252 - add x0, x0, :lo12:.LC252 + adrp x0, .LC253 + add x0, x0, :lo12:.LC253 ldrh w1, [x1,80] ldrh w2, [x2,x3,lsl 1] mov w3, w21 bl printk -.L3133: +.L3142: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] ldr x0, [x0,600] ldrh w0, [x0,x1,lsl 1] cmp w0, w21 - beq .L3134 + beq .L3143 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -20202,7 +20249,7 @@ gc_update_l2p_map_new: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3134: +.L3143: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] ldr x0, [x19,600] @@ -20237,107 +20284,107 @@ gc_scan_src_blk_one_page: mov w3, 0 ldrh w2, [x1,2] mov w4, w3 -.L3157: +.L3166: cmp w22, w5 - bne .L3187 + bne .L3196 add w0, w0, 1 uxtb w0, w0 cmp w0, w6 - bne .L3158 + bne .L3167 add w2, w2, 1 mov w0, 0 mov w4, 1 uxth w2, w2 -.L3158: +.L3167: add x3, x1, x0, sxtw 1 ldrh w22, [x3,40] mov w3, 1 - b .L3157 -.L3187: - cbz w4, .L3160 + b .L3166 +.L3196: + cbz w4, .L3169 add x1, x19, :lo12:.LANCHOR0 strh w2, [x1,2914] -.L3160: - cbz w3, .L3161 +.L3169: + cbz w3, .L3170 add x1, x19, :lo12:.LANCHOR0 strb w0, [x1,2916] -.L3161: +.L3170: mov w0, 1 mov w23, 1 add x19, x19, :lo12:.LANCHOR0 bl buf_alloc mov x21, x0 -.L3162: +.L3171: add x20, x19, 2912 ldrb w1, [x20,6] cmp w23, w1 - bgt .L3188 + bgt .L3197 ldrh w0, [x19,3634] cmp w1, 2 mul w0, w22, w0 - beq .L3163 + beq .L3172 cmp w1, 3 - bne .L3164 + bne .L3173 ldrb w1, [x19,756] - cbz w1, .L3165 -.L3163: + 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 .L3186 -.L3165: + b .L3195 +.L3174: ldrh w1, [x20,2] add w0, w0, w1 orr w0, w0, w23, lsl 24 - b .L3186 -.L3164: + b .L3195 +.L3173: ldrh w1, [x20,2] add w0, w0, w1 -.L3186: +.L3195: str w0, [x21,40] mov w1, 1 mov x0, x21 bl sblk_read_page ldr w0, [x21,52] cmp w0, 512 - beq .L3169 + beq .L3178 cmn w0, #1 - beq .L3169 + beq .L3178 ldr x0, [x21,24] ldr w20, [x0,4] mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L3170 + bne .L3179 ldr w0, [x19,2856] cmp w20, w0 - bcs .L3170 + bcs .L3179 mov w0, w20 add x1, x29, 76 mov w2, 0 bl pm_log2phys -.L3170: +.L3179: ldr w1, [x21,40] ldr w0, [x29,76] cmp w1, w0 - bne .L3169 + bne .L3178 ldrh w3, [x19,2936] ldr x2, [x19,3544] str w1, [x2,x3,lsl 2] ldrh w1, [x19,2936] add w1, w1, 1 strh w1, [x19,2936] -.L3169: +.L3178: ldrh w0, [x19,2938] add w23, w23, 1 add w0, w0, 1 strh w0, [x19,2938] - b .L3162 -.L3188: + b .L3171 +.L3197: mov x0, x21 bl zbuf_free ldrb w0, [x20,4] @@ -20346,12 +20393,12 @@ gc_scan_src_blk_one_page: uxtb w0, w0 strb w0, [x20,4] cmp w1, w0 - bne .L3156 + bne .L3165 ldrh w0, [x20,2] strb wzr, [x20,4] add w0, w0, 1 strh w0, [x20,2] -.L3156: +.L3165: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -20373,7 +20420,7 @@ gc_scan_src_blk: ldrh w1, [x0,2912] mov w0, 65535 cmp w1, w0 - bne .L3190 + bne .L3199 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -20382,23 +20429,23 @@ gc_scan_src_blk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3190: +.L3199: add x2, x19, :lo12:.LANCHOR0 mov w3, 65535 mov w0, 0 ldrh w1, [x2,2912] cmp w1, w3 - beq .L3191 + beq .L3200 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3192 + tbz x0, 8, .L3201 ubfiz x3, x1, 1, 16 ldr x2, [x2,600] - adrp x0, .LC253 - add x0, x0, :lo12:.LC253 + adrp x0, .LC254 + add x0, x0, :lo12:.LC254 ldrh w2, [x2,x3] bl printk -.L3192: +.L3201: add x20, x19, :lo12:.LANCHOR0 bl timer_get_time add x21, x20, 2912 @@ -20407,36 +20454,36 @@ gc_scan_src_blk: bl ftl_get_blk_list_in_sblk uxtb w1, w0 strb w1, [x21,5] - cbnz w1, .L3193 + cbnz w1, .L3202 mov w0, -1 strh w0, [x20,2912] - b .L3223 -.L3193: + b .L3232 +.L3202: ldrh w3, [x20,2912] ldr x2, [x20,584] add x2, x2, x3, lsl 2 ldrb w2, [x2,2] tst w2, 192 and w4, w2, 224 - beq .L3194 + beq .L3203 cmp w4, 224 - beq .L3194 + beq .L3203 ldr x2, [x20,608] ldrh w5, [x2,16] cmp w5, w3 - beq .L3194 + beq .L3203 ldrh w5, [x2,48] cmp w5, w3 - beq .L3194 + beq .L3203 ldrh w2, [x2,80] cmp w2, w3 - bne .L3195 -.L3194: - cbnz w4, .L3196 + bne .L3204 +.L3203: + cbnz w4, .L3205 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,600] ldrh w0, [x0,x3,lsl 1] - cbz w0, .L3197 + cbz w0, .L3206 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -20445,27 +20492,27 @@ gc_scan_src_blk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3197: +.L3206: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0,2912] ldr x0, [x0,600] strh wzr, [x0,x1,lsl 1] -.L3196: +.L3205: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 strh wzr, [x19,2936] strh w0, [x19,2912] -.L3223: +.L3232: mov w0, 0 - b .L3191 -.L3195: + b .L3200 +.L3204: and w0, w0, 255 sub w0, w0, #1 add x0, x21, x0, sxtw 1 ldrh w20, [x0,40] mov w0, 65535 cmp w20, w0 - bne .L3198 + bne .L3207 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -20474,7 +20521,7 @@ gc_scan_src_blk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3198: +.L3207: add x2, x19, :lo12:.LANCHOR0 mov w25, 1 ldrh w3, [x2,2912] @@ -20488,23 +20535,23 @@ gc_scan_src_blk: mul w1, w20, w1 and w3, w3, 224 cmp w3, 160 - bne .L3199 + bne .L3208 ldrb w3, [x2,3553] cmp w3, 2 uxth w25, w3 orr w1, w1, w3, lsl 24 - bne .L3200 + bne .L3209 ldrh w0, [x2,3570] sub w0, w0, #1 uxth w0, w0 -.L3200: +.L3209: add x2, x19, :lo12:.LANCHOR0 ldrb w3, [x2,756] - cbz w3, .L3199 + cbz w3, .L3208 ldrh w0, [x2,3570] sub w0, w0, #1 uxth w0, w0 -.L3199: +.L3208: add x23, x19, :lo12:.LANCHOR0 orr w22, w0, w1 mov w0, 1 @@ -20528,15 +20575,15 @@ gc_scan_src_blk: strh wzr, [x23,2936] ldr w0, [x20,52] cmp w0, 512 - beq .L3224 + beq .L3233 cmn w0, #1 - beq .L3224 + beq .L3233 ldr x0, [x20,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L3203 + beq .L3212 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -20545,12 +20592,12 @@ gc_scan_src_blk: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3224: +.L3233: mov x0, x20 bl zbuf_free mov w0, -1 - b .L3191 -.L3203: + b .L3200 +.L3212: ldrb w0, [x23,3572] mov x26, 0 ldrh w21, [x23,3596] @@ -20561,21 +20608,21 @@ gc_scan_src_blk: mov x25, x23 mov w23, 24 uxth w21, w21 -.L3204: +.L3213: cmp w21, w26 - ble .L3225 + ble .L3234 ldr w0, [x22,x26,lsl 2] cmn w0, #1 - beq .L3206 + beq .L3215 bl lpa_hash_get_ppa str w0, [x29,92] cmn w0, #1 - bne .L3207 + bne .L3216 ldr w0, [x22,x26,lsl 2] add x1, x29, 92 mov w2, 0 bl pm_log2phys -.L3207: +.L3216: ldrb w1, [x25,744] ldrh w0, [x25,3536] sub w1, w23, w1 @@ -20589,18 +20636,18 @@ gc_scan_src_blk: ldrb w0, [x25,3538] udiv w1, w1, w0 cmp w1, w3 - bne .L3206 + 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] -.L3206: +.L3215: bl timer_get_time add x26, x26, 1 - b .L3204 -.L3225: + b .L3213 +.L3234: mov x0, x20 bl zbuf_free add x0, x19, :lo12:.LANCHOR0 @@ -20610,11 +20657,11 @@ gc_scan_src_blk: ldrh w2, [x3,x2] ldrh w3, [x0,2936] cmp w2, w3 - beq .L3210 - adrp x0, .LC254 - add x0, x0, :lo12:.LC254 + beq .L3219 + adrp x0, .LC255 + add x0, x0, :lo12:.LC255 bl printk -.L3210: +.L3219: add x19, x19, :lo12:.LANCHOR0 ldrh w2, [x19,2912] ldr x1, [x19,600] @@ -20622,7 +20669,7 @@ gc_scan_src_blk: strh w3, [x1,x2,lsl 1] strh wzr, [x19,2940] ldrh w0, [x19,2936] -.L3191: +.L3200: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20644,14 +20691,14 @@ gc_scan_static_data: ldr x0, [x3,608] ldr w1, [x0,544] cmn w1, #1 - beq .L3227 + beq .L3236 adrp x21, .LANCHOR4 adrp x22, .LC0 add x21, x21, :lo12:.LANCHOR4 mov w20, 11 add x22, x22, :lo12:.LC0 add x21, x21, 664 -.L3228: +.L3237: add x24, x19, :lo12:.LANCHOR0 add x1, x29, 76 mov w2, 0 @@ -20660,7 +20707,7 @@ gc_scan_static_data: bl pm_log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L3229 + beq .L3238 mov w0, 1 bl buf_alloc mov x23, x0 @@ -20670,7 +20717,7 @@ gc_scan_static_data: bl sblk_read_page ldr w0, [x23,52] cmp w0, 256 - bne .L3230 + bne .L3239 ldrb w2, [x24,744] mov w3, 24 ldrh w0, [x24,3536] @@ -20686,23 +20733,23 @@ gc_scan_static_data: udiv w0, w2, w0 mov w2, 0 bl gc_add_sblk -.L3230: +.L3239: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x23,24] ldr x0, [x0,608] ldr w1, [x1,4] ldr w0, [x0,544] cmp w1, w0 - beq .L3231 + beq .L3240 mov x1, x21 mov w2, 1738 mov x0, x22 bl printk bl dump_stack -.L3231: +.L3240: mov x0, x23 bl zbuf_free -.L3229: +.L3238: add x2, x19, :lo12:.LANCHOR0 ldr x1, [x2,608] ldr w2, [x2,2856] @@ -20710,7 +20757,7 @@ gc_scan_static_data: add w0, w0, 1 str w0, [x1,544] cmp w0, w2 - bcc .L3232 + bcc .L3241 mov w0, -1 str w0, [x1,544] ldr w0, [x1,548] @@ -20721,37 +20768,37 @@ gc_scan_static_data: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L3226 -.L3232: + b .L3235 +.L3241: ldr w0, [x29,76] cmn w0, #1 - bne .L3226 + bne .L3235 sub w20, w20, #1 uxth w20, w20 - cbnz w20, .L3228 - b .L3226 -.L3227: + cbnz w20, .L3237 + b .L3235 +.L3236: ldr w1, [x0,536] ldr w2, [x0,12] add w1, w1, 12959744 add w1, w1, 256 cmp w2, w1 - bhi .L3237 + bhi .L3246 ldr x3, [x3,2880] ldr w1, [x0,540] ldr w3, [x3,44] add w1, w1, 4096 add w1, w1, 904 cmp w3, w1 - bls .L3226 -.L3237: + bls .L3235 +.L3246: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2880] ldr w1, [x1,44] str w1, [x0,540] str w2, [x0,536] str wzr, [x0,544] -.L3226: +.L3235: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20775,36 +20822,36 @@ gc_block_vpn_scan: ldrh w0, [x20,576] ldr w1, [x1,608] cmp w1, w0 - bcs .L3242 + bcs .L3251 bl timer_get_time ldr x21, [x20,608] ldr w1, [x21,604] add w1, w1, 28672 add w1, w1, 1328 cmp w0, w1 - bls .L3242 + bls .L3251 bl timer_get_time str w0, [x21,604] ldr x0, [x20,608] ldrh w2, [x20,576] ldr w1, [x0,600] cmp w1, w2 - bcs .L3246 + bcs .L3255 ldr x2, [x20,2880] ldrh w2, [x2,134] cmp w1, w2 - bcs .L3247 -.L3246: + bcs .L3256 +.L3255: add x1, x19, :lo12:.LANCHOR0 ldr x1, [x1,2880] ldrh w1, [x1,134] str w1, [x0,600] -.L3247: +.L3256: ldr w25, [x0,600] mov w0, 65535 uxth w20, w25 cmp w20, w0 - bne .L3248 + bne .L3257 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -20813,7 +20860,7 @@ gc_block_vpn_scan: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3248: +.L3257: add x21, x19, :lo12:.LANCHOR0 ldr x0, [x21,608] ldr w1, [x0,600] @@ -20826,33 +20873,33 @@ gc_block_vpn_scan: mov w0, w20 bl ftl_get_blk_list_in_sblk uxth w1, w0 - cbz w1, .L3242 + cbz w1, .L3251 uxtw x22, w20 ldr x24, [x21,584] add x24, x24, x22, lsl 2 ldrb w1, [x24,2] tst w1, 192 and w2, w1, 224 - beq .L3249 + beq .L3258 cmp w2, 224 - beq .L3249 + beq .L3258 ldr x1, [x21,608] ldrh w3, [x1,16] cmp w3, w20 - beq .L3249 + beq .L3258 ldrh w3, [x1,48] cmp w3, w20 - beq .L3249 + beq .L3258 ldrh w1, [x1,80] cmp w1, w20 - bne .L3250 -.L3249: - cbnz w2, .L3242 + bne .L3259 +.L3258: + cbnz w2, .L3251 add x0, x19, :lo12:.LANCHOR0 lsl x22, x22, 1 ldr x0, [x0,600] ldrh w0, [x0,x22] - cbz w0, .L3251 + cbz w0, .L3260 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -20861,12 +20908,12 @@ gc_block_vpn_scan: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3251: +.L3260: add x19, x19, :lo12:.LANCHOR0 ldr x0, [x19,600] strh wzr, [x0,x22] - b .L3242 -.L3250: + b .L3251 +.L3259: and w0, w0, 65535 add x1, x29, 144 sub w0, w0, #1 @@ -20874,7 +20921,7 @@ gc_block_vpn_scan: ldrh w21, [x0,-16] mov w0, 65535 cmp w21, w0 - bne .L3253 + bne .L3262 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -20883,7 +20930,7 @@ gc_block_vpn_scan: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3253: +.L3262: add x2, x19, :lo12:.LANCHOR0 ldrb w3, [x24,2] mov w26, 1 @@ -20894,16 +20941,16 @@ gc_block_vpn_scan: sub w0, w0, #1 mul w1, w21, w1 uxth w0, w0 - bne .L3254 + bne .L3263 ldrb w3, [x2,3553] cmp w3, 2 uxth w26, w3 orr w1, w1, w3, lsl 24 - bne .L3254 + bne .L3263 ldrh w0, [x2,3570] sub w0, w0, #1 uxth w0, w0 -.L3254: +.L3263: orr w21, w0, w1 mov w0, 1 bl buf_alloc @@ -20921,30 +20968,30 @@ gc_block_vpn_scan: bl ftl_memset ldr w0, [x23,52] cmp w0, 512 - beq .L3266 + beq .L3275 cmn w0, #1 cset w2, eq - cbz w2, .L3255 -.L3266: + cbz w2, .L3264 +.L3275: mov w0, w20 mov w1, 1 mov w2, 0 - b .L3279 -.L3255: + b .L3288 +.L3264: ldr x0, [x23,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L3257 + beq .L3266 mov w0, w20 mov w1, 1 -.L3279: +.L3288: bl gc_add_sblk mov x0, x23 bl zbuf_free - b .L3242 -.L3257: + b .L3251 +.L3266: ldrb w0, [x21,3572] mov x27, 0 ldrh w1, [x21,3596] @@ -20955,22 +21002,22 @@ gc_block_vpn_scan: uxth w0, w26 ldr x26, [x23,8] str w0, [x29,108] -.L3258: +.L3267: ldr w0, [x29,108] cmp w0, w27 - ble .L3280 + ble .L3289 ldr w0, [x26,x27,lsl 2] cmn w0, #1 - beq .L3259 + beq .L3268 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L3260 + bne .L3269 ldr w0, [x26,x27,lsl 2] add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L3260: +.L3269: add x2, x19, :lo12:.LANCHOR0 mov w1, 24 ldrb w0, [x2,744] @@ -20986,39 +21033,39 @@ gc_block_vpn_scan: ldrb w1, [x2,3538] udiv w0, w0, w1 cmp w0, w28 - bne .L3259 + bne .L3268 add w21, w21, 1 uxth w21, w21 -.L3259: +.L3268: add x27, x27, 1 - b .L3258 -.L3280: + b .L3267 +.L3289: mov x0, x23 bl zbuf_free adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3262 + tbz x0, 8, .L3271 add x0, x19, :lo12:.LANCHOR0 ldrb w4, [x24,2] uxth w1, w25 mov w3, w21 ubfx x4, x4, 5, 3 ldr x2, [x0,600] - adrp x0, .LC255 - add x0, x0, :lo12:.LC255 + adrp x0, .LC256 + add x0, x0, :lo12:.LC256 ldrh w2, [x2,x22,lsl 1] bl printk -.L3262: +.L3271: add x19, x19, :lo12:.LANCHOR0 cmp w21, 31 ldr x0, [x19,600] strh w21, [x0,x22,lsl 1] - bhi .L3242 + bhi .L3251 mov w0, w20 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L3242: +.L3251: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -21050,9 +21097,9 @@ ftl_sblk_dump: add x1, x0, x25 ldrh w4, [x0,x25] ldr w5, [x0,x25] - adrp x0, .LC256 + adrp x0, .LC257 ldrb w3, [x1,2] - add x0, x0, :lo12:.LC256 + add x0, x0, :lo12:.LC257 mov w1, w20 and w4, w4, 2047 ubfx x2, x3, 5, 3 @@ -21063,19 +21110,19 @@ ftl_sblk_dump: mov w1, 65535 mov w0, 0 cmp w20, w1 - beq .L3282 + beq .L3291 ldrh w1, [x19,576] cmp w1, w20 - bls .L3282 + bls .L3291 ldr x0, [x19,584] mov w26, 1 add x0, x0, x25 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 160 - bne .L3283 + bne .L3292 ldrb w26, [x19,3553] -.L3283: +.L3292: add x1, x29, 192 mov w0, w20 strh w20, [x29,176] @@ -21097,8 +21144,8 @@ ftl_sblk_dump: mul w1, w1, w2 strh w1, [x29,182] ldr x1, [x0,584] - adrp x0, .LC257 - add x0, x0, :lo12:.LC257 + adrp x0, .LC258 + add x0, x0, :lo12:.LC258 add x1, x1, x25 ldrb w2, [x1,2] mov w1, w20 @@ -21115,12 +21162,12 @@ ftl_sblk_dump: add x0, x0, :lo12:.LANCHOR4 add x0, x0, 712 str x0, [x29,104] -.L3284: +.L3293: ldr x0, [x29,152] add x21, x0, :lo12:.LANCHOR0 ldrh w0, [x21,3596] cmp w0, w19 - bls .L3301 + bls .L3310 lsl w0, w19, 1 mov w24, 0 add w1, w0, w19 @@ -21128,45 +21175,45 @@ ftl_sblk_dump: sub w1, w1, #1 str w0, [x29,124] str w1, [x29,136] -.L3302: +.L3311: ldrb w0, [x29,185] cmp w0, w24 - bls .L3299 + bls .L3308 mov w21, 1 -.L3300: +.L3309: cmp w21, w26 - bhi .L3320 + bhi .L3329 add x0, x29, 176 add x0, x0, x24, sxtw 1 ldrh w3, [x0,16] mov w0, 65535 cmp w3, w0 - beq .L3285 + beq .L3294 ldr x0, [x29,152] cmp w26, 3 add x0, x0, :lo12:.LANCHOR0 ldrh w2, [x0,3634] mul w2, w3, w2 - bne .L3286 + bne .L3295 ldrb w1, [x0,756] - cbz w1, .L3287 + cbz w1, .L3296 ldr w1, [x29,136] - b .L3319 -.L3287: + b .L3328 +.L3296: add w2, w2, w19 orr w23, w2, w21, lsl 24 - b .L3288 -.L3286: + b .L3297 +.L3295: cmp w26, 2 add w23, w2, w19 - bne .L3288 + bne .L3297 ldr w1, [x29,124] -.L3319: +.L3328: ldrb w9, [x0,3553] add w2, w2, w1 add w2, w2, w21 orr w23, w2, w9, lsl 24 -.L3288: +.L3297: mov w1, 1 str w23, [x28,40] mov x0, x28 @@ -21198,13 +21245,13 @@ ftl_sblk_dump: bl printk ldr x10, [x29,96] cmp w10, 512 - beq .L3306 + beq .L3315 cmn w10, #1 - bne .L3290 -.L3306: + bne .L3299 +.L3315: mov w0, 1 str w0, [x29,140] -.L3290: +.L3299: ldr x0, [x29,152] add x0, x0, :lo12:.LANCHOR0 ldr x0, [x0,584] @@ -21212,10 +21259,10 @@ ftl_sblk_dump: ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 32 - beq .L3285 + beq .L3294 cmp w0, 224 cset w2, eq - cbnz w2, .L3285 + cbnz w2, .L3294 ldr x0, [x28,24] str x2, [x29,96] ldr w0, [x0,4] @@ -21223,83 +21270,83 @@ ftl_sblk_dump: str w0, [x29,172] cmn w0, #1 ldr x2, [x29,96] - bne .L3292 + bne .L3301 ldr x0, [x28,24] add x1, x29, 172 ldr w0, [x0,4] bl pm_log2phys -.L3292: +.L3301: ldr w0, [x29,172] cmp w0, w23 - bne .L3293 + bne .L3302 ldr x2, [x28,24] add w22, w22, 1 - adrp x0, .LC258 + adrp x0, .LC259 mov w1, w23 - add x0, x0, :lo12:.LC258 + add x0, x0, :lo12:.LC259 mov w3, w22 ldr w2, [x2,4] bl printk -.L3293: +.L3302: ldr x0, [x29,144] - cbz x0, .L3295 + cbz x0, .L3304 ubfiz x3, x27, 2, 32 ldr w2, [x0,x3] ldr x0, [x28,24] ldr w0, [x0,4] cmp w0, w2 - beq .L3296 + beq .L3305 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L3296 - adrp x0, .LC259 + tbz x0, 12, .L3305 + adrp x0, .LC260 mov w1, w27 - add x0, x0, :lo12:.LC259 + add x0, x0, :lo12:.LC260 str x3, [x29,96] bl printk ldr x3, [x29,96] -.L3296: +.L3305: ldr x0, [x29,144] ldr x1, [x28,24] ldr w0, [x0,x3] ldr w1, [x1,4] cmp w1, w0 - beq .L3295 + beq .L3304 cmn w0, #1 - beq .L3295 + beq .L3304 adrp x0, .LC0 ldr x1, [x29,104] - mov w2, 1383 + mov w2, 1393 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3295: +.L3304: add w27, w27, 1 -.L3285: +.L3294: add w21, w21, 1 uxth w21, w21 - b .L3300 -.L3320: + b .L3309 +.L3329: add w24, w24, 1 uxth w24, w24 - b .L3302 -.L3299: + b .L3311 +.L3308: add w19, w19, 1 uxth w19, w19 - b .L3284 -.L3301: + b .L3293 +.L3310: mov x0, x28 bl zbuf_free ldr x3, [x29,128] - adrp x0, .LC260 + adrp x0, .LC261 ldr x2, [x21,600] - add x0, x0, :lo12:.LC260 + add x0, x0, :lo12:.LC261 mov w1, w20 ldrh w2, [x2,x3,lsl 1] mov w3, w22 bl printk ldr w0, [x29,140] -.L3282: +.L3291: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -21328,30 +21375,30 @@ zftl_read: stp x27, x28, [sp,96] mov w24, w2 mov x22, x3 - tbz x0, 12, .L3322 - adrp x0, .LC261 + tbz x0, 12, .L3331 + adrp x0, .LC262 mov w1, w19 - add x0, x0, :lo12:.LC261 + add x0, x0, :lo12:.LC262 mov w2, w21 mov w3, w24 bl printk -.L3322: - cbnz w19, .L3323 +.L3331: + cbnz w19, .L3332 adrp x0, .LANCHOR0+520 mov w19, 24576 ldr w2, [x0,#:lo12:.LANCHOR0+520] - b .L3324 -.L3323: + b .L3333 +.L3332: cmp w19, 3 mov w0, -1 - bhi .L3325 + bhi .L3334 lsl w19, w19, 13 mov w2, 8192 -.L3324: +.L3333: add w1, w21, w24 mov w0, -1 cmp w1, w2 - bhi .L3325 + bhi .L3334 adrp x20, .LANCHOR0 add w21, w19, w21 add x1, x20, :lo12:.LANCHOR0 @@ -21378,8 +21425,8 @@ zftl_read: add x0, x0, :lo12:.LANCHOR4 add x0, x0, 728 str x0, [x29,120] -.L3326: - cbz w23, .L3391 +.L3335: + cbz w23, .L3400 ldr w1, [x29,156] add x0, x20, :lo12:.LANCHOR0 cmp w19, w1 @@ -21389,12 +21436,12 @@ zftl_read: cmp w19, w1 cset w26, eq uxth w25, w0 - cbnz w26, .L3357 - cbz w2, .L3327 - b .L3390 -.L3357: - cbz w2, .L3329 -.L3390: + 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 @@ -21403,21 +21450,21 @@ zftl_read: uxth w25, w25 cmp w25, w24 csel w25, w0, w25, hi - b .L3327 -.L3329: + b .L3336 +.L3338: msub w25, w0, w19, w28 mov w26, w2 uxtb w25, w25 -.L3327: +.L3336: add x1, x20, :lo12:.LANCHOR0 mov w0, 0 add x1, x1, 800 -.L3332: +.L3341: ldr w2, [x1,36] cmp w2, w19 - bne .L3330 + bne .L3339 ldrb w2, [x1,2] - tbz x2, 3, .L3330 + tbz x2, 3, .L3339 add x2, x20, :lo12:.LANCHOR0 ubfiz x1, x0, 6, 32 add x0, x2, x1 @@ -21429,48 +21476,48 @@ zftl_read: add x22, x22, x25 add x1, x1, x26 bl ftl_memcpy - b .L3331 -.L3330: + b .L3340 +.L3339: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L3332 + bne .L3341 mov w0, w19 bl lpa_hash_get_ppa str w0, [x29,172] cmn w0, #1 - bne .L3333 + bne .L3342 mov w0, w19 add x1, x29, 172 mov w2, 0 bl pm_log2phys -.L3333: +.L3342: ldr w0, [x29,172] cmn w0, #1 - bne .L3334 + bne .L3343 mov w25, 0 -.L3335: +.L3344: add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,2848] cmp w25, w0 - bcs .L3331 + bcs .L3340 madd w0, w19, w0, w25 cmp w0, w21 - bcc .L3336 + bcc .L3345 cmp w0, w28 - bcs .L3336 + bcs .L3345 mov x0, x22 mov w1, 0 mov w2, 512 add x22, x22, 512 bl ftl_memset -.L3336: +.L3345: add w25, w25, 1 - b .L3335 -.L3334: + b .L3344 +.L3343: mov w0, 0 bl buf_alloc - cbz x0, .L3338 + cbz x0, .L3347 add x2, x20, :lo12:.LANCHOR0 ldr x3, [x2,2880] ldr w2, [x3,40] @@ -21486,41 +21533,41 @@ zftl_read: str w19, [x0,36] strb w26, [x0,57] bl zftl_add_read_buf -.L3331: +.L3340: add w19, w19, 1 sub w23, w23, #1 -.L3338: - cbz w23, .L3358 +.L3347: + cbz w23, .L3367 add x0, x20, :lo12:.LANCHOR0 ldrb w0, [x0,2850] cmp w0, 2 - bhi .L3326 -.L3358: + bhi .L3335 +.L3367: adrp x25, .LANCHOR3 str x25, [x29,144] add x2, x25, :lo12:.LANCHOR3 ldrb w1, [x2,-172] - cbz w1, .L3326 + cbz w1, .L3335 ldrb w2, [x2,-173] add x26, x20, :lo12:.LANCHOR0 add x0, x26, 800 mov x25, x26 add x0, x0, x2, lsl 6 bl sblk_read_page -.L3341: +.L3350: ldr x0, [x29,144] add x0, x0, :lo12:.LANCHOR3 ldrb w1, [x0,-172] - cbz w1, .L3392 + cbz w1, .L3401 ldrb w0, [x0,-173] cmp w0, 255 - bne .L3342 + bne .L3351 ldr x1, [x29,120] mov w2, 1088 ldr x0, [x29,128] bl printk bl dump_stack -.L3342: +.L3351: ldr x0, [x29,144] add x1, x0, :lo12:.LANCHOR3 add x0, x25, 800 @@ -21531,16 +21578,16 @@ zftl_read: ldr w5, [x26,52] strb w0, [x1,-173] cmn w5, #1 - bne .L3343 + bne .L3352 ldr x1, [x25,608] str w5, [x29,152] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L3344 -.L3343: + b .L3353 +.L3352: cmp w5, 256 - bne .L3344 + bne .L3353 ldrb w4, [x25,744] mov w1, 24 ldrh w0, [x25,3536] @@ -21557,8 +21604,8 @@ zftl_read: ldrb w4, [x25,3538] str x6, [x29,104] udiv w4, w0, w4 - adrp x0, .LC262 - add x0, x0, :lo12:.LC262 + adrp x0, .LC263 + add x0, x0, :lo12:.LC263 str x4, [x29,112] uxth w1, w4 bl printk @@ -21569,7 +21616,7 @@ zftl_read: mov w1, w6 bl gc_add_sblk ldr x5, [x29,96] -.L3344: +.L3353: add x0, x25, 800 cmn w5, #1 add x0, x0, x27, lsl 6 @@ -21578,9 +21625,9 @@ zftl_read: ldr w0, [x0,36] ldr w1, [x1,4] cmp w1, w0 - bne .L3359 - cbz w11, .L3345 -.L3359: + bne .L3368 + cbz w11, .L3354 +.L3368: ldr x1, [x25,608] add x10, x25, 800 add x10, x10, x27, lsl 6 @@ -21594,8 +21641,8 @@ zftl_read: ldrb w1, [x10,-31] ldr w0, [x7,12] str w0, [sp] - adrp x0, .LC263 - add x0, x0, :lo12:.LC263 + adrp x0, .LC264 + add x0, x0, :lo12:.LC264 ldr w3, [x10,4] ldr w4, [x10,8] ldr w5, [x7] @@ -21620,40 +21667,40 @@ zftl_read: mov x1, 0 bl ftl_sblk_dump ldr x11, [x29,104] -.L3345: +.L3354: add x0, x25, 800 add x0, x0, x27, lsl 6 ldr x1, [x0,24] ldr w0, [x0,36] ldr w1, [x1,4] cmp w1, w0 - bne .L3360 - cbz w11, .L3347 -.L3360: + bne .L3369 + cbz w11, .L3356 +.L3369: ldr x1, [x29,120] mov w2, 1109 ldr x0, [x29,128] bl printk bl dump_stack -.L3347: +.L3356: add x0, x25, 800 ldrb w1, [x25,2848] add x9, x0, x27, lsl 6 ldrb w2, [x9,56] cmp w1, w2 - bls .L3349 + bls .L3358 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 .L3350 -.L3349: + b .L3359 +.L3358: ldrb w0, [x9,2] and w0, w0, -9 strb w0, [x9,2] -.L3350: +.L3359: ldr x0, [x29,144] mov x1, x26 add x2, x0, :lo12:.LANCHOR3 @@ -21666,18 +21713,18 @@ zftl_read: ldrb w0, [x2,-172] sub w0, w0, #1 strb w0, [x2,-172] - b .L3341 -.L3392: + b .L3350 +.L3401: mov w2, -1 strb w1, [x0,-172] strb w2, [x0,-173] - b .L3326 -.L3391: + b .L3335 +.L3400: bl timer_get_time adrp x1, .LANCHOR6+256 str w0, [x1,#:lo12:.LANCHOR6+256] ldr w0, [x29,152] -.L3325: +.L3334: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -21734,34 +21781,34 @@ zftl_debug_proc_write: stp x23, x24, [sp,80] stp x25, x26, [sp,96] mov x22, x2 - bhi .L3396 + bhi .L3405 mov x0, x19 bl rk_copy_from_user mov x21, x0 mov x0, -14 - cbnz x21, .L3396 - adrp x0, .LC264 - mov x1, x19 - add x0, x0, :lo12:.LC264 - strb w21, [x19,x22] - bl printk + cbnz x21, .L3405 adrp x0, .LC265 mov x1, x19 add x0, x0, :lo12:.LC265 + strb w21, [x19,x22] + bl printk + adrp x0, .LC266 + mov x1, x19 + add x0, x0, :lo12:.LC266 mov w2, 1 mov w3, 16 bl rknand_print_hex bl rknand_device_lock - adrp x1, .LC266 + adrp x1, .LC267 mov x0, x19 - add x1, x1, :lo12:.LC266 + add x1, x1, :lo12:.LC267 mov x2, 7 bl memcmp - cbnz w0, .L3397 + cbnz w0, .L3406 adrp x23, .LANCHOR0 - adrp x0, .LC267 + adrp x0, .LC268 add x19, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC267 + add x0, x0, :lo12:.LC268 mov w2, 4 adrp x20, .LANCHOR3 ldr x3, [x19,2880] @@ -21770,19 +21817,19 @@ zftl_debug_proc_write: bl rknand_print_hex add x3, x20, :lo12:.LANCHOR3 ldr x1, [x19,2880] - adrp x0, .LC268 + adrp x0, .LC269 mov w2, 2 - add x0, x0, :lo12:.LC268 + add x0, x0, :lo12:.LC269 add x1, x1, 416 ldrh w3, [x3,1456] mov w19, w21 mov w21, 65535 bl rknand_print_hex -.L3398: +.L3407: add x0, x20, :lo12:.LANCHOR3 ldrh w0, [x0,1456] cmp w19, w0 - bge .L3401 + bge .L3410 mov w0, 300 bl msleep add x0, x23, :lo12:.LANCHOR0 @@ -21790,64 +21837,64 @@ zftl_debug_proc_write: add x0, x0, x19, sxtw 1 ldrh w0, [x0,416] cmp w0, w21 - beq .L3399 + beq .L3408 mov x1, 0 bl ftl_sblk_dump -.L3399: +.L3408: add w19, w19, 1 - b .L3398 -.L3397: - adrp x1, .LC269 + b .L3407 +.L3406: + adrp x1, .LC270 mov x0, x19 - add x1, x1, :lo12:.LC269 + add x1, x1, :lo12:.LC270 mov x2, 7 bl memcmp - cbnz w0, .L3402 + cbnz w0, .L3411 adrp x23, .LANCHOR0 - adrp x0, .LC267 + adrp x0, .LC268 add x20, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC267 + add x0, x0, :lo12:.LC268 mov w2, 4 adrp x21, .LANCHOR3 add x21, x21, :lo12:.LANCHOR3 - adrp x25, .LC272 + adrp x25, .LC273 ldr x3, [x20,2880] - add x25, x25, :lo12:.LC272 + add x25, x25, :lo12:.LC273 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex ldr x1, [x20,2880] - adrp x0, .LC268 + adrp x0, .LC269 ldrh w3, [x21,1456] mov w2, 2 - add x0, x0, :lo12:.LC268 + add x0, x0, :lo12:.LC269 add x1, x1, 416 add x20, x29, 192 bl rknand_print_hex - adrp x0, .LC270 + adrp x0, .LC271 add x1, x19, 7 - add x0, x0, :lo12:.LC270 + add x0, x0, :lo12:.LC271 str x1, [x20,-88]! mov x19, x23 - adrp x23, .LC271 + adrp x23, .LC272 bl printk - add x23, x23, :lo12:.LC271 + add x23, x23, :lo12:.LC272 ldr x0, [x29,104] mov x1, x20 sub x20, x21, #160 add x21, x21, 352 - bl rk_simple_strtoull.constprop.34 + bl rk_simple_strtoull.constprop.33 mov w24, w0 str w0, [x29,100] uxth w26, w0 -.L3404: +.L3413: ldrh w1, [x20] mov x0, x23 ldrh w2, [x20,2] bl printk ldrh w0, [x20] cmp w0, w26 - bne .L3403 + bne .L3412 add x0, x19, :lo12:.LANCHOR0 ldr x1, [x20,8] mov w2, 4 @@ -21855,10 +21902,10 @@ zftl_debug_proc_write: mov x0, x25 lsl w3, w3, 7 bl rknand_print_hex -.L3403: +.L3412: add x20, x20, 16 cmp x20, x21 - bne .L3404 + bne .L3413 mov w0, 300 add x19, x19, :lo12:.LANCHOR0 bl msleep @@ -21881,8 +21928,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC234 - add x0, x0, :lo12:.LC234 + adrp x0, .LC235 + add x0, x0, :lo12:.LC235 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -21891,63 +21938,63 @@ zftl_debug_proc_write: ldr w7, [x7] bl printk ldrb w3, [x19,2848] - adrp x0, .LC273 + adrp x0, .LC274 ldr x1, [x20,8] - add x0, x0, :lo12:.LC273 + add x0, x0, :lo12:.LC274 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex mov x0, x20 - b .L3419 -.L3402: - adrp x1, .LC274 - mov x0, x19 - add x1, x1, :lo12:.LC274 - mov x2, 7 - bl memcmp - cbnz w0, .L3405 - bl dump_ftl_info - b .L3401 -.L3405: + b .L3428 +.L3411: adrp x1, .LC275 mov x0, x19 add x1, x1, :lo12:.LC275 + mov x2, 7 + bl memcmp + cbnz w0, .L3414 + bl dump_ftl_info + b .L3410 +.L3414: + adrp x1, .LC276 + mov x0, x19 + add x1, x1, :lo12:.LC276 mov x2, 9 bl memcmp - cbnz w0, .L3406 + cbnz w0, .L3415 add x1, x29, 192 add x0, x19, 9 str x0, [x1,-88]! - bl rk_simple_strtoull.constprop.34 + bl rk_simple_strtoull.constprop.33 str w0, [x29,100] adrp x1, .LANCHOR0+3632 strh w0, [x1,#:lo12:.LANCHOR0+3632] bl dump_all_list_info - b .L3401 -.L3406: - adrp x1, .LC276 - mov x0, x19 - add x1, x1, :lo12:.LC276 - mov x2, 8 - bl memcmp - cbz w0, .L3401 + b .L3410 +.L3415: adrp x1, .LC277 mov x0, x19 add x1, x1, :lo12:.LC277 mov x2, 8 bl memcmp - cbnz w0, .L3408 + cbz w0, .L3410 + adrp x1, .LC278 + mov x0, x19 + add x1, x1, :lo12:.LC278 + mov x2, 8 + bl memcmp + cbnz w0, .L3417 add x20, x29, 192 - adrp x0, .LC270 + adrp x0, .LC271 add x1, x19, 8 - add x0, x0, :lo12:.LC270 + add x0, x0, :lo12:.LC271 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.34 + bl rk_simple_strtoull.constprop.33 str w0, [x29,100] mov w0, 1 bl buf_alloc @@ -21965,8 +22012,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC234 - add x0, x0, :lo12:.LC234 + adrp x0, .LC235 + add x0, x0, :lo12:.LC235 ldr w4, [x6,4] ldr w5, [x6,8] ldr w3, [x6] @@ -21989,87 +22036,84 @@ zftl_debug_proc_write: lsl w3, w3, 1 bl rknand_print_hex mov x0, x19 -.L3419: +.L3428: bl zbuf_free - b .L3401 -.L3408: - adrp x1, .LC278 - mov x0, x19 - add x1, x1, :lo12:.LC278 - mov x2, 8 - bl memcmp - cbnz w0, .L3409 - add x20, x29, 192 - adrp x0, .LC270 - add x1, x19, 8 - add x0, x0, :lo12:.LC270 - str x1, [x20,-88]! - bl printk - ldr x0, [x29,104] - mov x1, x20 - bl rk_simple_strtoull.constprop.34 - str w0, [x29,100] - mov x1, x21 - bl ftl_sblk_dump - b .L3401 -.L3409: + b .L3410 +.L3417: adrp x1, .LC279 mov x0, x19 add x1, x1, :lo12:.LC279 - mov x2, 10 + mov x2, 8 bl memcmp - cbnz w0, .L3410 + cbnz w0, .L3418 add x20, x29, 192 - adrp x0, .LC270 - add x1, x19, 10 - add x0, x0, :lo12:.LC270 + adrp x0, .LC271 + add x1, x19, 8 + add x0, x0, :lo12:.LC271 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 - bl rk_simple_strtoull.constprop.34 + bl rk_simple_strtoull.constprop.33 + str w0, [x29,100] + mov x1, x21 + bl ftl_sblk_dump + b .L3410 +.L3418: + adrp x1, .LC280 + mov x0, x19 + add x1, x1, :lo12:.LC280 + mov x2, 10 + bl memcmp + cbnz w0, .L3419 + add x20, x29, 192 + adrp x0, .LC271 + add x1, x19, 10 + add x0, x0, :lo12:.LC271 + str x1, [x20,-88]! + bl printk + ldr x0, [x29,104] + mov x1, x20 + bl rk_simple_strtoull.constprop.33 str w0, [x29,100] adrp x1, .LANCHOR2 str w0, [x1,#:lo12:.LANCHOR2] - b .L3401 -.L3410: - adrp x1, .LC280 + b .L3410 +.L3419: + adrp x1, .LC281 mov x2, 8 mov x0, x19 - add x1, x1, :lo12:.LC280 + add x1, x1, :lo12:.LC281 bl memcmp mov w2, w0 str x2, [x29,88] - cbnz w0, .L3411 + cbnz w0, .L3420 add x1, x19, 8 - adrp x0, .LC270 + adrp x0, .LC271 add x19, x29, 192 - add x0, x0, :lo12:.LC270 + add x0, x0, :lo12:.LC271 str x1, [x19,-88]! bl printk ldr x0, [x29,104] mov x1, x19 - bl rk_simple_strtoull.constprop.34 + bl rk_simple_strtoull.constprop.33 mov w19, w0 bl lpa_hash_get_ppa str w0, [x29,100] cmn w0, #1 ldr x2, [x29,88] - bne .L3412 + bne .L3421 mov w0, w19 add x1, x29, 100 bl pm_log2phys -.L3412: - adrp x0, .LC281 +.L3421: + adrp x0, .LC282 ldr w2, [x29,100] mov w1, w19 - add x0, x0, :lo12:.LC281 - bl printk - b .L3401 -.L3411: - adrp x0, .LC282 add x0, x0, :lo12:.LC282 bl printk + b .L3410 +.L3420: adrp x0, .LC283 add x0, x0, :lo12:.LC283 bl printk @@ -22094,10 +22138,13 @@ zftl_debug_proc_write: adrp x0, .LC290 add x0, x0, :lo12:.LC290 bl printk -.L3401: + adrp x0, .LC291 + add x0, x0, :lo12:.LC291 + bl printk +.L3410: bl rknand_device_unlock mov x0, x22 -.L3396: +.L3405: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -22124,14 +22171,14 @@ gc_check_data_one_wl: ldr x0, [x20,2920] ldr x23, [x20,608] add x20, x20, 2912 - cbnz x0, .L3421 + cbnz x0, .L3430 mov w0, 1 bl buf_alloc str x0, [x20,8] -.L3421: +.L3430: add x0, x19, :lo12:.LANCHOR0 ldr x20, [x0,2920] - cbnz x20, .L3422 + cbnz x20, .L3431 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -22140,52 +22187,52 @@ gc_check_data_one_wl: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3422: +.L3431: mov w24, 0 add x25, x23, 80 add x21, x19, :lo12:.LANCHOR0 adrp x27, .LANCHOR3 -.L3423: +.L3432: ldrb w0, [x25,9] cmp w24, w0 - bge .L3450 + bge .L3459 mov w22, 1 sxtw x28, w24 -.L3433: +.L3442: add x2, x21, 2912 ldrh w0, [x2,20] cmp w22, w0 - bgt .L3451 + 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 .L3424 + beq .L3433 ldrb w3, [x21,756] - cbz w3, .L3425 -.L3424: + 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 .L3427 -.L3425: + b .L3436 +.L3434: cmp w1, 3 ldrh w1, [x2,16] add w0, w0, w1 - bne .L3427 + bne .L3436 orr w0, w0, w22, lsl 24 -.L3427: +.L3436: str w0, [x20,40] mov w1, 1 mov x0, x20 bl sblk_read_page ldr w0, [x20,52] cmn w0, #1 - beq .L3428 + beq .L3437 add x2, x27, :lo12:.LANCHOR3 ldrh w0, [x21,2934] ldr x1, [x20,24] @@ -22194,32 +22241,32 @@ gc_check_data_one_wl: ldr w4, [x3,x0] ldr w3, [x1,4] cmp w4, w3 - bne .L3428 + bne .L3437 ldr x2, [x2,1432] ldr w2, [x2,x0] ldr w0, [x1,8] cmp w2, w0 - beq .L3429 -.L3428: + 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 .L3429 + beq .L3438 ldrb w5, [x25,9] - adrp x0, .LC291 + adrp x0, .LC292 ldrh w3, [x21,3570] - add x0, x0, :lo12:.LC291 + 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, .LC292 + adrp x0, .LC293 ldrh w3, [x21,3570] - add x0, x0, :lo12:.LC292 + add x0, x0, :lo12:.LC293 ldr x1, [x26,1432] mov w2, 4 mul w3, w5, w3 @@ -22227,7 +22274,7 @@ gc_check_data_one_wl: adrp x0, .LANCHOR2 ldr x4, [x29,104] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 10, .L3430 + tbz x0, 10, .L3439 ldr x7, [x20,24] ldrh w4, [x4,22] ldr x5, [x26,1432] @@ -22235,8 +22282,8 @@ gc_check_data_one_wl: lsl x4, x4, 2 ldr x3, [x26,1424] str w0, [sp] - adrp x0, .LC293 - add x0, x0, :lo12:.LC293 + adrp x0, .LC294 + add x0, x0, :lo12:.LC294 ldr w3, [x3,x4] ldr w6, [x7,4] ldr w4, [x5,x4] @@ -22245,7 +22292,7 @@ gc_check_data_one_wl: ldr w2, [x20,52] ldr w7, [x7,8] bl printk -.L3430: +.L3439: add x19, x19, :lo12:.LANCHOR0 mov x1, 0 ldr x0, [x19,608] @@ -22264,20 +22311,20 @@ gc_check_data_one_wl: mov w0, 20041 movk w0, 0x444b, lsl 16 cmp w1, w0 - bne .L3431 + bne .L3440 ldr w0, [x20,40] bl ftl_mask_bad_block - b .L3431 -.L3429: + b .L3440 +.L3438: ldrh w0, [x21,2934] add w22, w22, 1 add w0, w0, 1 strh w0, [x21,2934] - b .L3433 -.L3451: + b .L3442 +.L3460: add w24, w24, 1 - b .L3423 -.L3450: + b .L3432 +.L3459: add x19, x19, :lo12:.LANCHOR0 add x2, x19, 2912 ldrh w1, [x19,2928] @@ -22285,10 +22332,10 @@ gc_check_data_one_wl: strh w0, [x19,2928] ldrb w0, [x19,3554] mov w19, 0 - cbz w0, .L3431 + cbz w0, .L3440 add w1, w1, 2 strh w1, [x2,16] -.L3431: +.L3440: sub sp, x29, #16 mov w0, w19 ldp x19, x20, [sp,32] @@ -22326,33 +22373,33 @@ ftl_update_l2p_map: add x1, x20, x24, sxtw 2 ldr w1, [x1,-4] cmn w1, #1 - beq .L3453 + beq .L3462 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 1733 + mov w2, 1743 add x1, x1, 768 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3453: - adrp x0, .LC295 - mov x28, 0 - add x0, x0, :lo12:.LC295 - adrp x27, .LC294 - str x0, [x29,112] +.L3462: adrp x0, .LC296 + mov x28, 0 add x0, x0, :lo12:.LC296 + adrp x27, .LC295 + str x0, [x29,112] + adrp x0, .LC297 + add x0, x0, :lo12:.LC297 mov w22, w28 str x0, [x29,104] - add x27, x27, :lo12:.LC294 -.L3454: + add x27, x27, :lo12:.LC295 +.L3463: cmp w28, w24 mov w25, w28 - bge .L3481 + bge .L3490 ldr w2, [x20,x28,lsl 2] cmn w2, #1 - beq .L3455 + beq .L3464 add x0, x19, :lo12:.LANCHOR0 ldrb w21, [x0,2848] adrp x0, .LANCHOR2 @@ -22360,22 +22407,22 @@ ftl_update_l2p_map: ldr w0, [x0,#:lo12:.LANCHOR2] udiv w21, w2, w21 and w21, w21, 65535 - tbz x0, 12, .L3459 + tbz x0, 12, .L3468 mov x0, x27 mov w1, w21 mov w3, w28 bl printk -.L3459: +.L3468: sbfiz x26, x25, 2, 32 ldr w0, [x20,x26] cmn w0, #1 - beq .L3457 + beq .L3466 add x2, x19, :lo12:.LANCHOR0 ldrb w1, [x2,2848] lsl w1, w1, 7 udiv w0, w0, w1 cmp w21, w0, uxth - bne .L3457 + bne .L3466 ldrb w0, [x23,9] ldrh w2, [x2,3634] sdiv w1, w25, w0 @@ -22387,7 +22434,7 @@ ftl_update_l2p_map: ldr x0, [x29,112] ldr w1, [x20,x26] bl pm_ppa_update_check - cbz w0, .L3458 + cbz w0, .L3467 ldr x0, [x29,120] mov w2, 4 mov w3, w24 @@ -22395,7 +22442,7 @@ ftl_update_l2p_map: ldr x0, [x29,104] ldr x1, [x1,-200] bl rknand_print_hex -.L3458: +.L3467: ldr w0, [x20,x26] add x1, x29, 140 mov w2, 1 @@ -22404,27 +22451,27 @@ ftl_update_l2p_map: uxth w22, w22 mov w0, -1 str w0, [x20,x26] -.L3457: +.L3466: add w25, w25, 1 cmp w25, w24 - bne .L3459 -.L3455: + bne .L3468 +.L3464: add x28, x28, 1 - b .L3454 -.L3481: + b .L3463 +.L3490: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L3461 + tbz x0, 12, .L3470 add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x23] mov w2, w22 ubfiz x3, x1, 1, 16 ldr x4, [x0,600] - adrp x0, .LC297 - add x0, x0, :lo12:.LC297 + adrp x0, .LC298 + add x0, x0, :lo12:.LC298 ldrh w3, [x4,x3] bl printk -.L3461: +.L3470: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x23] ldr x0, [x19,600] @@ -22452,9 +22499,9 @@ ftl_alloc_new_data_sblk: ldrh w0, [x20] mov w1, 65535 cmp w0, w1 - beq .L3483 + beq .L3492 bl zftl_insert_data_list -.L3483: +.L3492: adrp x19, .LANCHOR0 mov w2, 2 add x19, x19, :lo12:.LANCHOR0 @@ -22468,13 +22515,13 @@ ftl_alloc_new_data_sblk: ldr x0, [x19,608] ldr w0, [x0,560] cmp w0, w21 - bne .L3485 + bne .L3494 mov w20, 65535 cmp w21, w20 - beq .L3485 - adrp x0, .LC298 + beq .L3494 + adrp x0, .LC299 mov w1, w21 - add x0, x0, :lo12:.LC298 + add x0, x0, :lo12:.LC299 bl printk ldr x0, [x19,608] ldr w0, [x0,564] @@ -22483,7 +22530,7 @@ ftl_alloc_new_data_sblk: mov w1, -1 str w20, [x0,560] str w1, [x0,564] -.L3485: +.L3494: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush @@ -22513,10 +22560,10 @@ ftl_write_commit: stp x21, x22, [sp,32] stp x27, x28, [sp,80] str x0, [x29,104] -.L3494: +.L3503: ldrb w0, [x24,2872] adrp x22, .LANCHOR0 - cbz w0, .L3496 + cbz w0, .L3505 ldrb w1, [x24,2904] sub w0, w0, #1 ldr x2, [x29,112] @@ -22529,7 +22576,7 @@ ftl_write_commit: strb w1, [x24,2904] ldr w1, [x27,36] cmp w1, w0 - bcc .L3497 + bcc .L3506 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -22538,7 +22585,7 @@ ftl_write_commit: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3497: +.L3506: ldr x0, [x29,120] add x1, x22, :lo12:.LANCHOR0 add x4, x1, 800 @@ -22546,32 +22593,32 @@ ftl_write_commit: ldr w2, [x1,2856] ldr w23, [x0,36] cmp w23, w2 - bcc .L3498 + bcc .L3507 mov x0, x27 bl zbuf_free mov w0, -1 - b .L3552 -.L3498: + 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, .L3500 - ldrb w3, [x25,1545] + cbz w0, .L3509 + ldrb w3, [x25,1544] add x3, x4, x3, lsl 6 -.L3501: +.L3510: ldrb w5, [x3] cmp w5, 255 - beq .L3554 + beq .L3563 sbfiz x3, x5, 6, 32 add x3, x4, x3 - b .L3501 -.L3554: + b .L3510 +.L3563: ldr w0, [x3,36] cmp w0, w23 - bne .L3500 + bne .L3509 ldr x0, [x3,8] ubfiz x1, x21, 9, 8 lsl w2, w20, 9 @@ -22580,29 +22627,29 @@ ftl_write_commit: bl ftl_memcpy mov x0, x27 bl zbuf_free - b .L3494 -.L3500: + b .L3503 +.L3509: mov w0, w23 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L3504 + bne .L3513 mov w0, w23 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L3504: +.L3513: add x4, x22, :lo12:.LANCHOR0 mov w3, 0 add x4, x4, 800 ldr x19, [x4,-192] add x19, x19, 16 -.L3507: +.L3516: ldr w0, [x4,36] cmp w0, w23 - bne .L3505 + bne .L3514 ldrb w5, [x4,2] - tbz x5, 3, .L3505 + tbz x5, 3, .L3514 add x0, x22, :lo12:.LANCHOR0 ubfiz x3, x3, 6, 32 add x0, x0, 800 @@ -22612,22 +22659,22 @@ ftl_write_commit: strb w5, [x3,2] ldr x28, [x3,8] str w0, [x29,156] - b .L3506 -.L3505: + b .L3515 +.L3514: add w3, w3, 1 add x4, x4, 64 cmp w3, 32 - bne .L3507 + bne .L3516 mov x28, 0 -.L3506: +.L3515: add x3, x22, :lo12:.LANCHOR0 str wzr, [x29,136] ldrb w0, [x3,2848] cmp w20, w0 - bcs .L3508 + bcs .L3517 add w20, w21, w20 - cbz x28, .L3509 - cbz w21, .L3510 + cbz x28, .L3518 + cbz w21, .L3519 mov x0, x26 mov x1, x28 lsl w2, w21, 9 @@ -22636,28 +22683,28 @@ ftl_write_commit: ldr x3, [x29,136] ldr x19, [x3,608] add x19, x19, 48 -.L3510: +.L3519: add x0, x22, :lo12:.LANCHOR0 ldrb w2, [x0,2848] cmp w20, w2 - bcc .L3511 + bcc .L3520 ldr x19, [x0,608] add x19, x19, 16 - b .L3553 -.L3511: + b .L3562 +.L3520: ubfiz x1, x20, 9, 9 sub w2, w2, w20 add x0, x26, x1 lsl w2, w2, 9 add x1, x28, x1 bl ftl_memcpy -.L3553: +.L3562: str wzr, [x29,136] - b .L3508 -.L3509: + b .L3517 +.L3518: ldr w0, [x29,156] cmn w0, #1 - beq .L3512 + beq .L3521 mov w0, 1 bl buf_alloc mov x28, x0 @@ -22672,11 +22719,11 @@ ftl_write_commit: add w1, w1, 1 str w1, [x29,136] cmp w0, w23 - bne .L3513 + bne .L3522 ldr w0, [x28,52] cmn w0, #1 - bne .L3514 -.L3513: + bne .L3523 +.L3522: add x0, x22, :lo12:.LANCHOR0 ldr w2, [x29,156] mov w3, w23 @@ -22684,9 +22731,9 @@ ftl_write_commit: ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - adrp x0, .LC299 + adrp x0, .LC300 ldrb w1, [x28,1] - add x0, x0, :lo12:.LC299 + add x0, x0, :lo12:.LC300 ldr w4, [x28,52] bl printk adrp x0, .LC230 @@ -22695,15 +22742,15 @@ ftl_write_commit: add x0, x0, :lo12:.LC230 mov w3, w2 bl rknand_print_hex -.L3514: +.L3523: ldr x0, [x28,24] ldr w0, [x0,4] cmp w0, w23 - bne .L3515 + bne .L3524 ldr w0, [x28,52] cmn w0, #1 - bne .L3516 -.L3515: + bne .L3525 +.L3524: adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -22712,55 +22759,55 @@ ftl_write_commit: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3516: - cbz w21, .L3517 +.L3525: + cbz w21, .L3526 ldr w0, [x29,156] lsl w2, w21, 9 cmn w0, #1 - beq .L3518 + beq .L3527 ldr x1, [x28,8] mov x0, x26 bl ftl_memcpy - b .L3519 -.L3512: - cbz w21, .L3517 + b .L3528 +.L3521: + cbz w21, .L3526 lsl w2, w21, 9 -.L3518: +.L3527: mov x0, x26 mov w1, 0 bl ftl_memset -.L3519: +.L3528: add x0, x22, :lo12:.LANCHOR0 ldr x19, [x0,608] add x19, x19, 48 -.L3517: +.L3526: add x0, x22, :lo12:.LANCHOR0 ldrb w2, [x0,2848] cmp w20, w2 - bcc .L3520 - bls .L3521 + bcc .L3529 + bls .L3530 ldr x19, [x0,608] add x19, x19, 16 - b .L3521 -.L3520: + b .L3530 +.L3529: ldr w0, [x29,156] sub w2, w2, w20 lsl w2, w2, 9 cmn w0, #1 ubfiz x0, x20, 7, 9 - beq .L3522 + beq .L3531 ldr x1, [x28,8] lsl x20, x0, 2 add x0, x26, x20 add x1, x1, x20 bl ftl_memcpy - b .L3521 -.L3522: + b .L3530 +.L3531: add x0, x26, x0, lsl 2 mov w1, 0 bl ftl_memset -.L3521: - cbz x28, .L3508 +.L3530: + cbz x28, .L3517 ldrb w0, [x28,2] mov x1, x28 and w0, w0, -9 @@ -22769,13 +22816,13 @@ ftl_write_commit: bl buf_remove_buf mov x0, x28 bl zbuf_free -.L3508: +.L3517: ldrh w0, [x19,6] - cbnz w0, .L3523 + cbnz w0, .L3532 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk -.L3523: +.L3532: mov x0, x19 add x20, x22, :lo12:.LANCHOR0 bl ftl_get_new_free_page @@ -22804,7 +22851,7 @@ ftl_write_commit: add w0, w2, w0 sub w0, w0, #1 strh w0, [x1,48] - add x0, x25, 1545 + add x0, x25, 1544 mov x1, x27 bl buf_add_tail ldrb w0, [x20,2873] @@ -22814,14 +22861,14 @@ ftl_write_commit: str w0, [x25,1548] ldrb w2, [x20,2873] cmp w2, 2 - bhi .L3524 + bhi .L3533 ldrh w0, [x19,6] cmp w0, 1 - bne .L3496 -.L3524: + bne .L3505 +.L3533: ldrb w0, [x19,5] mov w4, 2 - ldrb w5, [x25,1545] + ldrb w5, [x25,1544] mov w1, 0 cmp w0, wzr ldrh w0, [x19,6] @@ -22831,39 +22878,39 @@ ftl_write_commit: add x0, x22, :lo12:.LANCHOR0 csel w4, w4, w2, ne add x0, x0, 800 -.L3528: +.L3537: cmp w1, w4 - beq .L3555 + beq .L3564 ubfiz x3, x3, 6, 8 add w1, w1, 1 ldrb w3, [x0,x3] - b .L3528 -.L3555: + b .L3537 +.L3564: add x0, x22, :lo12:.LANCHOR0 uxtb w1, w1 sub w2, w2, w1 ubfiz x5, x5, 6, 8 add x0, x0, 800 - strb w3, [x25,1545] + strb w3, [x25,1544] strb w2, [x0,2073] add x0, x0, x5 bl sblk_prog_page ldrh w0, [x19,6] cmp w0, 1 - bne .L3496 + bne .L3505 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 -.L3496: +.L3505: add x22, x22, :lo12:.LANCHOR0 ldrb w19, [x22,2872] - cbnz w19, .L3494 + cbnz w19, .L3503 bl ftl_write_completed mov w0, w19 -.L3552: +.L3561: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22876,22 +22923,22 @@ ftl_write_commit: .global gc_do_copy_back .type gc_do_copy_back, %function gc_do_copy_back: - sub sp, sp, #240 - stp x29, x30, [sp,32] - add x29, sp, 32 - stp x19, x20, [sp,48] + sub sp, sp, #208 + stp x29, x30, [sp,16] + add x29, sp, 16 + stp x19, x20, [sp,32] adrp x19, .LANCHOR0 - stp x21, x22, [sp,64] + stp x21, x22, [sp,48] add x21, x19, :lo12:.LANCHOR0 - stp x23, x24, [sp,80] - stp x25, x26, [sp,96] - stp x27, x28, [sp,112] + stp x23, x24, [sp,64] + stp x25, x26, [sp,80] + stp x27, x28, [sp,96] ldrb w0, [x21,3569] - ldr x23, [x21,608] - cbnz w0, .L3557 + ldr x22, [x21,608] + cbnz w0, .L3566 bl buf_alloc mov x20, x0 - cbz x0, .L3556 + cbz x0, .L3565 ldrh w22, [x21,2938] mov w0, w22 add w22, w22, 1 @@ -22904,10 +22951,10 @@ gc_do_copy_back: bl sblk_read_page ldr w0, [x20,52] cmp w0, 512 - beq .L3635 + beq .L3643 cmn w0, #1 - bne .L3559 -.L3635: + bne .L3568 +.L3643: adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -22916,48 +22963,48 @@ gc_do_copy_back: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3559: +.L3568: ldr x0, [x20,24] ldr w21, [x0,4] mov w0, w21 bl lpa_hash_get_ppa - str w0, [x29,160] + str w0, [x29,144] cmn w0, #1 - bne .L3561 + bne .L3570 mov w0, w21 - add x1, x29, 160 + add x1, x29, 144 mov w2, 0 bl pm_log2phys -.L3561: - ldr w22, [x29,160] +.L3570: + ldr w22, [x29,144] cmp w22, w23 - bne .L3562 + bne .L3571 add x1, x19, :lo12:.LANCHOR0 add x0, x1, 800 add x1, x1, 2848 -.L3565: +.L3574: ldr w2, [x0,36] cmp w2, w21 - bne .L3563 + bne .L3572 ldrb w2, [x0,2] - tbz x2, 1, .L3563 + tbz x2, 1, .L3572 mov x0, x20 bl zbuf_free adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3556 + tbz x0, 8, .L3565 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC300 + adrp x0, .LC301 mov w1, w21 mov w2, w22 - add x0, x0, :lo12:.LC300 + add x0, x0, :lo12:.LC301 ldrh w3, [x19,2938] bl printk - b .L3556 -.L3563: + b .L3565 +.L3572: add x0, x0, 64 cmp x0, x1 - bne .L3565 + bne .L3574 add x23, x19, :lo12:.LANCHOR0 ldrb w1, [x20,2] str w21, [x20,36] @@ -22972,20 +23019,20 @@ gc_do_copy_back: str w0, [x20,32] adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3566 - ldr w2, [x29,160] + tbz x0, 8, .L3575 + ldr w2, [x29,144] mov w0, w21 - str x2, [x29,152] + str x2, [x29,136] bl lpa_hash_get_ppa mov w3, w0 - ldr x2, [x29,152] - adrp x0, .LC301 + ldr x2, [x29,136] + adrp x0, .LC302 ldrh w5, [x23,2938] - add x0, x0, :lo12:.LC301 + add x0, x0, :lo12:.LC302 mov w1, w21 mov w4, w22 bl printk -.L3566: +.L3575: add x19, x19, :lo12:.LANCHOR0 mov x0, x20 bl ftl_gc_write_buf @@ -22997,196 +23044,200 @@ gc_do_copy_back: ldrh w0, [x19,2940] add w0, w0, 1 strh w0, [x19,2940] - b .L3556 -.L3562: + b .L3565 +.L3571: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3568 + tbz x0, 8, .L3577 mov w0, w21 add x19, x19, :lo12:.LANCHOR0 bl lpa_hash_get_ppa mov w3, w0 ldrh w5, [x19,2938] - adrp x0, .LC301 - add x0, x0, :lo12:.LC301 + adrp x0, .LC302 + add x0, x0, :lo12:.LC302 mov w1, w21 mov w2, w22 mov w4, w23 bl printk -.L3568: +.L3577: mov x0, x20 bl zbuf_free - b .L3556 -.L3557: + b .L3565 +.L3566: ldrb w0, [x21,3553] add x1, x21, 2912 - add x23, x23, 80 + add x22, x22, 80 cmp w0, 3 - bne .L3569 + bne .L3578 ldrb w2, [x21,756] - cbz w2, .L3570 - ldrh w22, [x1,570] + cbz w2, .L3579 + ldrh w26, [x1,570] adrp x1, .LANCHOR6 - ldrb w20, [x23,9] + ldrb w20, [x22,9] add x1, x1, :lo12:.LANCHOR6 - sdiv w2, w22, w20 + sdiv w2, w26, w20 ldrb w3, [x1,221] uxth w27, w2 - cbz w3, .L3571 + cbz w3, .L3580 adrp x0, .LANCHOR2 mov w21, 2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1976 + add x0, x0, 2008 ldrh w0, [x0,w2,sxtw 1] cmp w0, wzr csinc w21, w21, wzr, ne - b .L3572 -.L3571: + b .L3581 +.L3580: ldrb w1, [x1,222] mov w21, 1 - cbz w1, .L3572 + cbz w1, .L3581 sub w1, w27, #62 mov w21, 2 uxth w1, w1 cmp w1, 2159 - bhi .L3572 + bhi .L3581 udiv w0, w27, w0 add w0, w0, w0, lsl 1 sub w0, w27, w0 uxth w0, w0 cmp w0, wzr csinc w21, w21, wzr, eq -.L3572: - msub w20, w27, w20, w22 - uxth w20, w20 - b .L3575 -.L3570: +.L3581: + msub w20, w27, w20, w26 + uxth w0, w20 + str w0, [x29,136] + b .L3584 +.L3579: ldrb w2, [x21,3568] - cbz w2, .L3574 - ldrb w20, [x23,9] + cbz w2, .L3583 + ldrb w20, [x22,9] mov w21, w0 - ldrh w22, [x1,570] + ldrh w26, [x1,570] add w8, w20, w20, lsl 1 sub w20, w20, w20, lsl 2 - sdiv w27, w22, w8 - madd w20, w27, w20, w22 - uxth w20, w20 - b .L3575 -.L3574: + sdiv w27, w26, w8 + madd w20, w27, w20, w26 + uxth w1, w20 + str w1, [x29,136] + b .L3584 +.L3583: ldrh w20, [x1,570] adrp x1, .LANCHOR2 - ldrb w22, [x23,9] + ldrb w9, [x22,9] add x1, x1, :lo12:.LANCHOR2 - add x1, x1, 3512 + add x1, x1, 3544 mov w21, w0 - sdiv w2, w20, w22 - msub w20, w2, w22, w20 - ldrh w24, [x1,w2,sxtw 1] - uxth w20, w20 - lsr w27, w24, 3 - and w24, w24, 7 - madd w22, w27, w22, w20 - cmp w24, 1 - add w22, w22, w22, lsl 1 - uxth w22, w22 - bne .L3576 - b .L3575 -.L3569: - ldrh w22, [x1,570] - ldrb w20, [x23,9] - ldrb w0, [x21,3554] - mov w21, 1 - sdiv w27, w22, w20 - msub w20, w27, w20, w22 - uxth w20, w20 - cbz w0, .L3575 - mov w21, 2 -.L3575: - adrp x0, .LANCHOR2 - mov w24, 0 - adrp x2, .LANCHOR6 - add x4, x0, :lo12:.LANCHOR2 - sxtw x3, w27 - adrp x6, .LANCHOR3 + 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: - ldrb w1, [x23,9] + 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 w24, w0 - bge .L3631 + cmp w23, w0 + bge .L3639 add x0, x19, :lo12:.LANCHOR0 - add w25, w22, w24 + add w24, w26, w23 ldrh w0, [x0,3570] mul w0, w0, w1 sub w0, w0, #1 - cmp w25, w0 - bne .L3579 - add x0, x2, :lo12:.LANCHOR6 + cmp w24, w0 + bne .L3588 + add x0, x28, :lo12:.LANCHOR6 ldrb w0, [x0,221] - cbz w0, .L3631 - add x0, x4, 1976 - ldrh w0, [x0,x3,lsl 1] + cbz w0, .L3639 + add x0, x20, 2008 + ldrh w0, [x0,x2,lsl 1] cmp w0, w27 - bcs .L3631 - tbz x24, 0, .L3631 -.L3579: - add x0, x6, :lo12:.LANCHOR3 - sbfiz x25, x25, 2, 32 - ldr x5, [x0,1432] - ldr w0, [x5,x25] + 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 .L3580 + bne .L3589 add x0, x19, :lo12:.LANCHOR0 add x0, x0, 2912 - ldrh w26, [x0,26] + ldrh w25, [x0,26] ldrh w0, [x0,24] - cmp w0, w26 - bls .L3556 - add x0, x2, :lo12:.LANCHOR6 + cmp w0, w25 + bls .L3565 + add x0, x28, :lo12:.LANCHOR6 ldrb w0, [x0,221] - cbz w0, .L3581 - add x0, x4, 1976 - ldrh w0, [x0,x3,lsl 1] + cbz w0, .L3590 + add x0, x20, 2008 + ldrh w0, [x0,x2,lsl 1] cmp w0, w27 - bcs .L3581 - tbz x24, 0, .L3581 + bcs .L3590 + tbz x23, 0, .L3590 ubfiz x0, x0, 2, 16 - ldr w0, [x5,x0] - str w0, [x5,x25] - b .L3580 -.L3581: - mov w0, w26 - str x6, [x29,120] + 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] - add w26, w26, 1 - str x4, [x29,136] - str x2, [x29,144] - str x5, [x29,152] bl gc_get_src_ppa_from_index add x1, x19, :lo12:.LANCHOR0 - ldr x5, [x29,152] - ldr x6, [x29,120] ldr x3, [x29,128] - strh w26, [x1,2938] - ldr x4, [x29,136] - ldr x2, [x29,144] - str w0, [x5,x25] -.L3580: - add w24, w24, 1 - uxth w24, w24 - b .L3578 -.L3631: - mov w24, 1 -.L3576: - adrp x25, .LANCHOR2 - str x25, [x29,144] - add x0, x25, :lo12:.LANCHOR2 - ldr w1, [x25,#:lo12:.LANCHOR2] - tbz x1, 8, .L3583 + 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, 1976 - ubfiz x5, x22, 2, 16 - mov w2, w24 - mov w3, w20 + add x0, x0, 2008 + ubfiz x5, x26, 2, 16 + ldr w3, [x29,136] + mov w2, w23 ldr x6, [x1,#:lo12:.LANCHOR3+1432] add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x0,w27,sxtw 1] @@ -23194,492 +23245,444 @@ gc_do_copy_back: ldrh w4, [x1,3482] mov w1, w27 str w0, [sp] - adrp x0, .LC302 - add x0, x0, :lo12:.LC302 + adrp x0, .LC303 + add x0, x0, :lo12:.LC303 ldr w5, [x6,x5] ldr w6, [x7,4] - mov w7, w22 + mov w7, w26 bl printk -.L3583: +.L3592: adrp x0, .LC0 - str wzr, [x29,136] + mov w24, 0 add x0, x0, :lo12:.LC0 - str x0, [x29,120] + str x0, [x29,112] adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 add x0, x0, 816 - str x0, [x29,112] -.L3584: - ldr w0, [x29,136] - ldrb w1, [x23,9] - and w0, w0, 65535 - str w0, [x29,152] - ldrh w26, [x29,136] + str x0, [x29,104] +.L3593: + ldrb w1, [x22,9] mul w0, w21, w1 - ldr w2, [x29,152] - cmp w2, w0 - bge .L3709 - ldr w0, [x29,152] - add w0, w22, w0 - str w0, [x29,128] - sxtw x25, w0 + 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] - ldrb w0, [x0,x25] + ldrb w0, [x0,x1] cmp w0, 255 - bne .L3585 + bne .L3594 mov w0, 0 bl buf_alloc - mov x28, x0 - cbnz x0, .L3586 + mov x20, x0 + cbnz x0, .L3595 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed bl gc_free_temp_buf - mov w0, w28 + mov w0, w20 bl buf_alloc - mov x28, x0 - cbz x0, .L3556 -.L3586: + mov x20, x0 + cbz x0, .L3565 +.L3595: add x0, x19, :lo12:.LANCHOR0 - ldrb w2, [x28,1] + ldr x3, [x29,128] + ldrb w2, [x20,1] ldr x1, [x0,3560] - strb w2, [x1,x25] - strb w24, [x28,61] + strb w2, [x1,x3] + strh w25, [x20,48] ldrb w1, [x0,2919] + strb w23, [x20,61] add w1, w1, 1 strb w1, [x0,2919] - add w1, w26, w22 - strh w1, [x28,48] ldrh w0, [x0,3570] - ldrb w1, [x23,9] + ldrb w1, [x22,9] mul w0, w0, w1 - ldr w1, [x29,128] sub w0, w0, #1 - cmp w1, w0 - bne .L3587 + cmp w25, w0 + adrp x25, .LANCHOR3 + bne .L3596 adrp x1, .LANCHOR6 add x0, x1, :lo12:.LANCHOR6 - mov x5, x1 + mov x6, x1 ldrb w0, [x0,221] - cbz w0, .L3588 - ldr x0, [x29,144] + cbz w0, .L3597 + ldr x0, [x29,120] add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1976 + add x0, x0, 2008 ldrh w0, [x0,w27,sxtw 1] cmp w0, w27 - bcs .L3588 - tbnz x26, 0, .L3587 -.L3588: - adrp x0, .LANCHOR3 - add x3, x19, :lo12:.LANCHOR0 - add x4, x0, :lo12:.LANCHOR3 + bcs .L3597 + tbnz x24, 0, .L3596 +.L3597: + add x5, x25, :lo12:.LANCHOR3 + ldr x2, [x29,128] + add x28, x19, :lo12:.LANCHOR0 mov w1, -1 - str x5, [x29,104] - str x3, [x29,128] - ldr x0, [x4,1424] - str w1, [x0,x25,lsl 2] - ldrh w0, [x3,3570] - ldrb w2, [x3,3572] - ldr x1, [x4,1424] + 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, [x28,8] + ldr x0, [x20,8] lsl w2, w2, 2 bl ftl_memcpy - ldr x3, [x29,128] - ldr x5, [x29,104] - ldrb w1, [x3,3572] - ldrh w0, [x3,3570] + ldrb w1, [x28,3572] + ldrh w0, [x28,3570] + ldr x6, [x29,96] mul w0, w0, w1 - add x1, x5, :lo12:.LANCHOR6 + add x1, x6, :lo12:.LANCHOR6 lsl w2, w0, 2 ldrb w1, [x1,222] - cbz w1, .L3589 - ldrb w1, [x3,2848] + cbz w1, .L3598 + ldrb w1, [x28,2848] lsl w1, w1, 9 sub w2, w1, w2 -.L3589: - adrp x1, .LANCHOR3 - ldr x3, [x28,8] - add x1, x1, :lo12:.LANCHOR3 - add x0, x3, x0, sxtw 2 - ldr x1, [x1,1432] +.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 - add x3, x19, :lo12:.LANCHOR0 - ldr x0, [x28,24] + ldrb w2, [x25,2848] mov w1, 0 - str x3, [x29,128] - ldrb w2, [x3,2848] + ldr x0, [x20,24] lsl w2, w2, 1 bl ftl_memset - ldr x1, [x28,24] + ldr x1, [x20,24] mov w0, 15555 - ldr x3, [x29,128] movk w0, 0xf55f, lsl 16 str w0, [x1] - ldrh w0, [x3,3570] - ldrb w1, [x3,3572] - ldr x2, [x28,24] - str x2, [x29,104] + ldrh w0, [x25,3570] + ldrb w1, [x25,3572] + ldr x28, [x20,24] mul w1, w0, w1 - ldr x0, [x28,8] + ldr x0, [x20,8] lsl w1, w1, 2 bl js_hash - ldr x2, [x29,104] - ldr x3, [x29,128] - str w0, [x2,4] - ldr x1, [x3,608] - ldr x0, [x28,24] + str w0, [x28,4] + ldr x1, [x25,608] + ldr x0, [x20,24] ldr w1, [x1,132] - b .L3705 -.L3587: - lsl x0, x25, 2 - str x0, [x29,128] - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldr x1, [x29,128] - ldr x0, [x0,1432] - ldr w0, [x0,x1] + b .L3710 +.L3596: + ldr x0, [x29,128] mov w1, 1 - str w0, [x28,40] - mov x0, x28 + lsl x28, x0, 2 + add x0, x25, :lo12:.LANCHOR3 + ldr x0, [x0,1432] + ldr w0, [x0,x28] + str w0, [x20,40] + mov x0, x20 bl sblk_read_page - ldr w0, [x28,52] + ldr w0, [x20,52] cmp w0, 512 - beq .L3590 + beq .L3599 cmn w0, #1 - bne .L3591 -.L3590: - add x3, x19, :lo12:.LANCHOR0 + bne .L3600 +.L3599: + add x5, x19, :lo12:.LANCHOR0 mov w1, 24 - ldrb w2, [x3,744] - ldrh w0, [x3,3536] + ldrb w2, [x5,744] + ldrh w0, [x5,3536] sub w2, w1, w2 mov w1, 1 sub w2, w2, w0 lsl w2, w1, w2 - ldr w1, [x28,40] + ldr w1, [x20,40] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x3,3538] + ldrb w1, [x5,3538] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump - ldr w0, [x28,52] + ldr w0, [x20,52] cmp w0, 512 - beq .L3636 + beq .L3644 cmn w0, #1 - bne .L3591 -.L3636: - ldr x0, [x28,24] + bne .L3600 +.L3644: + ldr x0, [x20,24] mov w1, -1 str w1, [x0,4] -.L3591: - ldr w0, [x28,52] +.L3600: + ldr w0, [x20,52] cmp w0, 512 - beq .L3637 + beq .L3645 cmn w0, #1 - bne .L3594 -.L3637: - ldr x1, [x29,112] + bne .L3603 +.L3645: + ldr x1, [x29,104] mov w2, 1003 - ldr x0, [x29,120] + ldr x0, [x29,112] bl printk bl dump_stack -.L3594: - ldr x1, [x28,24] +.L3603: + ldr x1, [x20,24] add x0, x19, :lo12:.LANCHOR0 ldr w2, [x1,4] ldr w0, [x0,2856] cmp w2, w0 - bcc .L3596 + bcc .L3605 mov w0, -1 str w0, [x1,4] -.L3596: - ldr x0, [x28,24] - ldr x2, [x29,128] +.L3605: + ldr x0, [x20,24] + add x25, x25, :lo12:.LANCHOR3 ldr w1, [x0,4] - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldr x0, [x0,1424] - str w1, [x0,x2] - ldr x0, [x28,24] - ldr w1, [x28,40] -.L3705: + ldr x0, [x25,1424] + str w1, [x0,x28] + ldr x0, [x20,24] + ldr w1, [x20,40] +.L3710: str w1, [x0,8] -.L3585: +.L3594: add x1, x19, :lo12:.LANCHOR0 - add x4, x29, 160 + ldr x3, [x29,128] add x2, x1, 800 - adrp x11, .LANCHOR6 - adrp x10, .LANCHOR3 + mov w5, 2 + sxtw x7, w24 + adrp x6, .LANCHOR6 ldr x0, [x1,3560] - ldrb w3, [x0,x25] - ldr w0, [x29,152] + ldrb w3, [x0,x3] + add x0, x29, 144 add x2, x2, x3, lsl 6 - str x2, [x4,w0,sxtw 3] - mov w4, 2 + str x2, [x0,w24,sxtw 3] ldrb w0, [x1,3553] - strb w24, [x2,61] - strh w4, [x2,50] + strh w5, [x2,50] cmp w0, 3 - bne .L3597 - ldrb w4, [x1,756] - cbz w4, .L3598 - add x1, x11, :lo12:.LANCHOR6 - and w2, w26, 1 + 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, .L3599 - ldr x1, [x29,144] + cbz w1, .L3608 + ldr x1, [x29,120] add x1, x1, :lo12:.LANCHOR2 - add x1, x1, 1976 + add x1, x1, 2008 ldrh w1, [x1,w27,sxtw 1] - cbz w2, .L3599 + cbz w2, .L3608 cmp w1, w27 csel w0, w0, w1, cs -.L3599: +.L3608: add x2, x19, :lo12:.LANCHOR0 - udiv w1, w26, w21 - add x4, x2, x3, lsl 6 - add w1, w1, w20 + ldr w4, [x29,136] + udiv w1, w24, w21 + add x10, x2, x3, lsl 6 + add w1, w1, w4 ldrh w2, [x2,3634] - add x1, x23, x1, sxtw 1 + add x1, x22, x1, sxtw 1 ldrh w1, [x1,16] madd w0, w1, w2, w0 orr w0, w0, 50331648 - str w0, [x4,840] - b .L3600 -.L3598: - udiv w0, w26, w0 + str w0, [x10,840] + b .L3609 +.L3607: + udiv w0, w24, w0 + ldr w3, [x29,136] ldrh w1, [x1,3634] - ldrh w4, [x2,48] - add w3, w0, w20 - add x3, x23, x3, sxtw 1 + add w3, w0, w3 + add x3, x22, x3, sxtw 1 ldrh w3, [x3,16] + ldrh w10, [x2,48] mul w1, w3, w1 - add x3, x10, :lo12:.LANCHOR3 + add x3, x5, :lo12:.LANCHOR3 add w0, w0, w0, lsl 1 orr w1, w1, w27 - sub w0, w26, w0 + 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,x4,lsl 2] - b .L3601 -.L3597: + str w0, [x2,x10,lsl 2] + b .L3610 +.L3606: cmp w0, 2 - bne .L3600 - ldrb w4, [x1,3554] + bne .L3609 + ldrb w10, [x1,3554] add x2, x2, 32 ldrh w0, [x1,3634] - cbnz w4, .L3603 - ldr w1, [x29,152] - add w1, w1, w20 - add x1, x23, x1, sxtw 1 + 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 .L3706 -.L3603: - add w1, w20, w26, lsr 1 - add x1, x23, x1, sxtw 1 + 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, w26, 1 + and w1, w24, 1 add w0, w0, w1 -.L3706: +.L3711: orr w0, w0, 33554432 str w0, [x2,8] -.L3600: +.L3609: add x0, x19, :lo12:.LANCHOR0 add x0, x0, 800 add x3, x0, x3, lsl 6 - add x0, x10, :lo12:.LANCHOR3 + add x0, x5, :lo12:.LANCHOR3 ldrh w1, [x3,48] ldr x0, [x0,1440] ldr w2, [x3,40] str w2, [x0,x1,lsl 2] -.L3601: - ldr x0, [x29,144] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3604 - ldr w0, [x29,152] - add x1, x29, 160 - mov w2, w24 - str x10, [x29,104] - str x11, [x29,128] - ldr x5, [x1,w0,sxtw 3] - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x29,152] - ldrb w3, [x0,2918] - ldr x0, [x0,3560] - ldrh w6, [x5,48] - ldrb w7, [x5,1] - ldrb w4, [x0,x25] - mov w0, 3 - udiv w0, w26, w0 - add w0, w20, w0 - str w0, [sp] - ldr x0, [x5,24] - ldr w0, [x0,4] - str w0, [sp,8] - ldr x0, [x28,24] - ldr w0, [x0] - str w0, [sp,16] - adrp x0, .LC303 - add x0, x0, :lo12:.LC303 - ldr w5, [x5,40] - bl printk - ldr x10, [x29,104] - ldr x11, [x29,128] -.L3604: - add x11, x11, :lo12:.LANCHOR6 - ldrb w0, [x11,221] - cbz w0, .L3605 - ldr x0, [x29,144] +.L3610: + add x6, x6, :lo12:.LANCHOR6 + ldrb w0, [x6,221] + cbz w0, .L3613 + ldr x0, [x29,120] add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1976 + add x0, x0, 2008 ldrh w0, [x0,w27,sxtw 1] cmp w0, w27 - bcs .L3605 - tbz x26, 0, .L3605 + bcs .L3613 + tbz x24, 0, .L3613 add x1, x19, :lo12:.LANCHOR0 + ldr x3, [x29,128] mov w2, -1 - add x10, x10, :lo12:.LANCHOR3 + add x5, x5, :lo12:.LANCHOR3 ldr x0, [x1,3560] - strb w2, [x0,x25] - add x2, x29, 160 - ldr w0, [x29,152] + strb w2, [x0,x3] + add x0, x29, 144 ldr x1, [x1,3560] - ldr x2, [x2,w0,sxtw 3] - ldrb w0, [x23,9] + ldr x2, [x0,x7,lsl 3] + ldrb w0, [x22,9] mul w0, w21, w0 - sub w0, w22, w0, lsl 1 + sub w0, w26, w0, lsl 1 uxth w0, w0 strh w0, [x2,48] ldrb w2, [x2,1] uxth x0, w0 strb w2, [x1,x0] mov w1, -1 - ldr x0, [x10,1432] - str w1, [x0,x25,lsl 2] -.L3605: - ldr w0, [x29,136] - add w0, w0, 1 - str w0, [x29,136] - b .L3584 -.L3709: + 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] cmp w0, 3 - add x0, x29, 160 - bne .L3607 + add x0, x29, 144 + bne .L3615 ldrb w2, [x3,756] - cbz w2, .L3710 + cbz w2, .L3715 mov w1, 0 -.L3608: - ldrb w2, [x23,9] +.L3616: + ldrb w2, [x22,9] mul w2, w2, w21 sub w2, w2, #1 cmp w1, w2 - bge .L3711 + bge .L3716 ldr x2, [x0,w1,sxtw 3] add w1, w1, 1 ldr x3, [x0,w1,sxtw 3] uxth w1, w1 ldrb w3, [x3,1] strb w3, [x2] - b .L3608 -.L3711: + b .L3616 +.L3716: ldr x0, [x0,w2,sxtw 3] - b .L3708 -.L3710: + b .L3713 +.L3715: ldrb w1, [x3,3568] - cbnz w1, .L3707 - cmp w24, 1 + cbnz w1, .L3712 + cmp w23, 1 mov w2, 9 - beq .L3707 - cmp w24, 2 - bne .L3615 + beq .L3712 + cmp w23, 2 + bne .L3623 mov w2, 13 -.L3707: - ldr x1, [x29,160] +.L3712: + ldr x1, [x29,144] strb w2, [x1,60] - b .L3614 -.L3615: - ldr x2, [x29,160] + b .L3622 +.L3623: + ldr x2, [x29,144] strb w1, [x2,60] -.L3614: - ldrb w2, [x23,9] +.L3622: + ldrb w2, [x22,9] add x1, x0, 24 bl sblk_xlc_prog_pages - b .L3611 -.L3607: + b .L3619 +.L3615: ldrb w2, [x3,3554] - cbz w2, .L3681 + cbz w2, .L3687 ldrb w3, [x3,3555] mov w2, 0 - cbz w3, .L3681 + cbz w3, .L3687 bl sblk_3d_mlc_prog_pages - b .L3611 -.L3681: - ldrb w1, [x23,9] + b .L3619 +.L3687: + ldrb w1, [x22,9] mul w1, w1, w21 sub w1, w1, #1 cmp w2, w1 - bge .L3712 + 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 .L3681 -.L3712: + b .L3687 +.L3717: ldr x0, [x0,w1,sxtw 3] -.L3708: +.L3713: mov w1, -1 strb w1, [x0] - ldrb w1, [x23,9] - ldr x0, [x29,160] + ldrb w1, [x22,9] + ldr x0, [x29,144] mul w1, w21, w1 bl sblk_prog_page -.L3611: +.L3619: add x0, x19, :lo12:.LANCHOR0 ldrb w1, [x0,3568] - cbz w1, .L3618 - ldrb w21, [x23,9] + cbz w1, .L3626 + ldrb w21, [x22,9] add w21, w21, w21, lsl 1 and w21, w21, 1023 - b .L3619 -.L3618: + b .L3627 +.L3626: ldrb w1, [x0,3554] - cbz w1, .L3620 - ldrb w21, [x23,9] + cbz w1, .L3628 + ldrb w21, [x22,9] ubfiz w21, w21, 1, 8 - b .L3619 -.L3620: + b .L3627 +.L3628: ldrb w0, [x0,756] - cbz w0, .L3621 - ldrb w0, [x23,9] + 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, .L3619 - ldr x1, [x29,144] - add x25, x1, :lo12:.LANCHOR2 - add x25, x25, 1976 - ldrh w1, [x25,w27,sxtw 1] + 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 .L3619 -.L3621: - ldrb w21, [x23,9] -.L3619: + b .L3627 +.L3629: + ldrb w21, [x22,9] +.L3627: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,2880] ldr w0, [x1,52] @@ -23690,23 +23693,23 @@ gc_do_copy_back: ldrh w0, [x19,3570] uxth w21, w21 strh w21, [x19,3482] - ldrb w1, [x23,9] + ldrb w1, [x22,9] mul w0, w0, w1 cmp w21, w0 - blt .L3622 + blt .L3630 ldr x0, [x19,608] strh wzr, [x0,86] -.L3622: +.L3630: bl gc_write_completed -.L3556: - sub sp, x29, #32 - ldp x19, x20, [sp,48] - ldp x21, x22, [sp,64] - ldp x23, x24, [sp,80] - ldp x25, x26, [sp,96] - ldp x27, x28, [sp,112] - ldp x29, x30, [sp,32] - add sp, sp, 240 +.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 ret .size gc_do_copy_back, .-gc_do_copy_back .align 2 @@ -23731,63 +23734,63 @@ zftl_do_gc: add w20, w0, w20 ldrh w21, [x1,2862] uxth w20, w20 - bne .L3714 + bne .L3719 adrp x23, .LANCHOR6 add x1, x23, :lo12:.LANCHOR6 ldr w24, [x1,256] - cbnz w24, .L3715 + cbnz w24, .L3720 ldr w1, [x1,260] - cbz w1, .L3714 -.L3715: + cbz w1, .L3719 +.L3720: add x1, x19, :lo12:.LANCHOR0 ldrh w2, [x1,3602] cmp w20, w2, lsr 2 - bls .L3714 + bls .L3719 ldrh w1, [x1,2888] cmp w1, w20 - bcs .L3714 + bcs .L3719 add w24, w24, 20 bl timer_get_time cmp w24, w0 - bcs .L3716 + bcs .L3721 add x0, x23, :lo12:.LANCHOR6 str wzr, [x0,256] -.L3716: +.L3721: add x19, x23, :lo12:.LANCHOR6 ldr w20, [x19,260] bl timer_get_time add w20, w20, 20 cmp w20, w0 - bcs .L3908 + bcs .L3913 str wzr, [x19,260] - b .L3908 -.L3714: + b .L3913 +.L3719: adrp x23, .LANCHOR3 add x1, x23, :lo12:.LANCHOR3 ldrb w2, [x1,1418] mov w1, 16 cmp w2, 6 - bhi .L3879 - adrp x1, .L3720 - add x1, x1, :lo12:.L3720 + bhi .L3884 + adrp x1, .L3725 + add x1, x1, :lo12:.L3725 ldrh w1, [x1,w2,uxtw #1] - adr x2, .Lrtx3720 + adr x2, .Lrtx3725 add x1, x2, w1, sxth #2 br x1 -.Lrtx3720: +.Lrtx3725: .section .rodata .align 0 .align 2 -.L3720: - .2byte (.L3719 - .Lrtx3720) / 4 - .2byte (.L3721 - .Lrtx3720) / 4 - .2byte (.L3722 - .Lrtx3720) / 4 - .2byte (.L3723 - .Lrtx3720) / 4 - .2byte (.L3724 - .Lrtx3720) / 4 - .2byte (.L3833 - .Lrtx3720) / 4 - .2byte (.L3726 - .Lrtx3720) / 4 +.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 .text -.L3719: +.L3724: add w21, w21, w0 add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x22,80] @@ -23798,12 +23801,12 @@ zftl_do_gc: mov w1, 65535 cmp w2, w1 uxth w25, w25 - beq .L3727 - cbnz w26, .L3728 + beq .L3732 + cbnz w26, .L3733 ldrh w0, [x0,2888] cmp w20, w0, lsl 1 - bge .L3908 -.L3728: + bge .L3913 +.L3733: add x24, x19, :lo12:.LANCHOR0 mov w1, 5 ldrh w0, [x24,3600] @@ -23814,7 +23817,7 @@ zftl_do_gc: uxth w2, w0 mov w1, 65535 cmp w2, w1 - beq .L3730 + beq .L3735 add x3, x23, :lo12:.LANCHOR3 ubfiz x2, x2, 1, 16 ldr w1, [x3,1420] @@ -23824,44 +23827,44 @@ zftl_do_gc: ldrh w2, [x3,x2] ldrh w3, [x24,3596] cmp w3, w2 - bcs .L3731 + bcs .L3736 ldrh w3, [x24,576] cmp w1, w3, lsr 4 - bls .L3730 + bls .L3735 ldrh w1, [x24,2890] cmp w1, w2 - bls .L3730 -.L3731: + bls .L3735 +.L3736: add x2, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w2, [x2,3569] bl gc_add_sblk - cbz w0, .L3732 + cbz w0, .L3737 add x23, x23, :lo12:.LANCHOR3 mov w0, 1 str wzr, [x23,1420] strb w0, [x23,1418] - b .L3908 -.L3730: + b .L3913 +.L3735: add x0, x19, :lo12:.LANCHOR0 strh wzr, [x0,3600] -.L3732: +.L3737: cmp w21, 15 mov w24, 2 - bls .L3733 - cbz w25, .L3835 + bls .L3738 + cbz w25, .L3840 add x0, x19, :lo12:.LANCHOR0 mov w24, 1 ldrh w1, [x0,2870] ldrh w0, [x0,3604] cmp w1, w0 - bls .L3733 -.L3835: + bls .L3738 +.L3840: mov w24, 2 -.L3733: +.L3738: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3734 + tbz x0, 8, .L3739 add x1, x19, :lo12:.LANCHOR0 mov w3, w20 mov w4, w21 @@ -23876,30 +23879,30 @@ zftl_do_gc: adrp x0, .LC304 add x0, x0, :lo12:.LC304 bl printk -.L3734: +.L3739: add x19, x19, :lo12:.LANCHOR0 mov w1, w24 mov w2, 1 ldrb w0, [x19,3569] bl gc_search_src_blk cmp w0, wzr - ble .L3735 -.L3736: + ble .L3740 +.L3741: add x23, x23, :lo12:.LANCHOR3 mov w0, 1 - b .L3911 -.L3735: + b .L3916 +.L3740: ldrb w0, [x19,3569] mov w1, 3 mov w2, 1 bl gc_search_src_blk cmp w0, wzr - bgt .L3736 - b .L3908 -.L3727: + bgt .L3741 + b .L3913 +.L3732: adrp x27, .LANCHOR2 ldr w1, [x27,#:lo12:.LANCHOR2] - tbz x1, 8, .L3737 + tbz x1, 8, .L3742 ldrb w2, [x0,3569] adrp x0, .LC304 ldrh w5, [x22,124] @@ -23911,41 +23914,41 @@ zftl_do_gc: str w26, [sp] mov w4, w21 bl printk -.L3737: +.L3742: cmp w26, 1 - bne .L3738 + bne .L3743 add x22, x19, :lo12:.LANCHOR0 bl gc_scan_static_data ldr x0, [x22,608] ldrh w0, [x0,122] - cbz w0, .L3739 -.L3740: + cbz w0, .L3744 +.L3745: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 add x23, x23, :lo12:.LANCHOR3 strb w0, [x19,3569] - b .L3911 -.L3739: + b .L3916 +.L3744: bl gc_static_wearleveling - cbnz w0, .L3740 + cbnz w0, .L3745 bl gc_block_vpn_scan - cbz w21, .L3836 + cbz w21, .L3841 cmp w20, w25 - bcs .L3743 + bcs .L3748 ldrh w0, [x22,3602] cmp w0, w20 - bhi .L3744 -.L3743: + bhi .L3749 +.L3748: add x0, x19, :lo12:.LANCHOR0 add w1, w20, w25 ldrh w2, [x0,3602] cmp w1, w2 - blt .L3744 + blt .L3749 ldrh w1, [x0,2870] ldrh w0, [x0,3604] cmp w1, w0 - bcc .L3836 -.L3744: + bcc .L3841 +.L3749: add x22, x19, :lo12:.LANCHOR0 add x28, x23, :lo12:.LANCHOR3 mov w2, 1 @@ -23955,10 +23958,10 @@ zftl_do_gc: strb w2, [x22,3569] str w1, [x28,1420] cmp w1, w0, lsr 5 - bls .L3746 + bls .L3751 ldrh w0, [x22,2870] cmp w0, w21 - bls .L3746 + bls .L3751 mov w1, 5 mov w0, 0 str x2, [x29,104] @@ -23966,7 +23969,7 @@ zftl_do_gc: uxth w1, w0 mov w0, 65535 cmp w1, w0 - beq .L3836 + beq .L3841 ubfiz x1, x1, 1, 16 ldr x0, [x22,600] ldrb w3, [x22,3572] @@ -23976,48 +23979,48 @@ zftl_do_gc: ldrh w1, [x22,3596] mul w1, w1, w3 cmp w0, w1 - bgt .L3742 + bgt .L3747 str wzr, [x28,1420] mov w0, w2 mov w1, 2 - b .L3901 -.L3746: + b .L3906 +.L3751: add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x0,2870] ldrh w1, [x0,3604] cmp w2, w1 - bcc .L3749 + bcc .L3754 mov w0, 1 mov w1, 2 mov w2, w0 - b .L3902 -.L3749: + b .L3907 +.L3754: ldrh w24, [x0,2866] - cbnz w24, .L3750 + cbnz w24, .L3755 ldrh w0, [x0,2868] cmp w0, 8 - bls .L3742 -.L3750: + bls .L3747 +.L3755: mov w0, 1 mov w1, w0 -.L3901: +.L3906: mov w2, 4 -.L3902: +.L3907: bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3736 - b .L3836 -.L3738: + cbnz w0, .L3741 + b .L3841 +.L3743: add x0, x19, :lo12:.LANCHOR0 ldrh w0, [x0,2888] cmp w0, w20 - bcc .L3908 -.L3836: + bcc .L3913 +.L3841: mov w24, 16 -.L3742: +.L3747: add x22, x19, :lo12:.LANCHOR0 ldr w0, [x22,2900] - cbz w0, .L3751 + cbz w0, .L3756 mov w0, 1 mov w1, 5 strb w0, [x22,3569] @@ -24027,66 +24030,66 @@ zftl_do_gc: uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3752 + beq .L3757 ubfiz x1, x1, 1, 16 ldr x2, [x22,600] ldrh w1, [x2,x1] cmp w1, 8 - bhi .L3752 + bhi .L3757 mov w2, 1 mov w1, 0 str w2, [x22,2900] bl gc_add_sblk - cbnz w0, .L3736 -.L3752: + cbnz w0, .L3741 +.L3757: mov w1, 4 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3753 + beq .L3758 add x3, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x2, [x3,600] ldrh w1, [x2,x1] cmp w1, 4 - bhi .L3753 + bhi .L3758 mov w2, 1 mov w1, 0 str w2, [x3,2900] bl gc_add_sblk - cbnz w0, .L3736 -.L3753: + cbnz w0, .L3741 +.L3758: mov w0, 0 - bl zftl_get_gc_node.part.12 + bl zftl_get_gc_node.part.11 uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3751 + beq .L3756 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x3, [x2,600] ldrh w1, [x3,x1] cmp w1, 4 - bhi .L3751 + bhi .L3756 mov w1, 1 str w1, [x2,2900] mov w2, 0 bl gc_add_sblk - cbnz w0, .L3736 -.L3751: + 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, .L3754 + cbz w5, .L3759 add x23, x23, :lo12:.LANCHOR3 strb wzr, [x22,3569] strb w0, [x23,1418] ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 8, .L3755 + tbz x0, 8, .L3760 ldrh w6, [x7,120] adrp x0, .LC305 ldrh w7, [x7,122] @@ -24096,35 +24099,35 @@ zftl_do_gc: mov w4, w21 add x0, x0, :lo12:.LC305 bl printk - b .L3755 -.L3754: + b .L3760 +.L3759: ldrh w2, [x22,2888] cmp w20, w2 - bcs .L3756 - cbz w21, .L3757 + bcs .L3761 + cbz w21, .L3762 cmp w21, 16 - bls .L3758 + bls .L3763 ldrh w2, [x22,2870] ldrh w1, [x22,3604] cmp w2, w1 - bhi .L3758 + bhi .L3763 mov w1, w0 mov w2, 4 str x5, [x29,104] bl gc_search_src_blk uxth w0, w0 ldr x5, [x29,104] - cbnz w0, .L3759 + cbnz w0, .L3764 ldrb w0, [x22,3569] - b .L3910 -.L3759: + b .L3915 +.L3764: mov w1, 5 mov w0, w5 bl zftl_get_gc_node uxth w2, w0 mov w1, 65535 cmp w2, w1 - beq .L3830 + beq .L3835 add x3, x23, :lo12:.LANCHOR3 ubfiz x2, x2, 1, 16 ldr w1, [x3,1420] @@ -24134,14 +24137,14 @@ zftl_do_gc: ldrh w2, [x3,x2] ldrh w3, [x22,3596] cmp w3, w2 - bcs .L3762 + bcs .L3767 ldrh w3, [x22,576] cmp w1, w3, lsr 4 - bls .L3830 + bls .L3835 ldrh w1, [x22,2890] cmp w1, w2 - bls .L3830 -.L3762: + bls .L3835 +.L3767: add x19, x19, :lo12:.LANCHOR0 mov w1, 0 ldrb w2, [x19,3569] @@ -24150,20 +24153,20 @@ zftl_do_gc: str w0, [x19,2900] add x0, x23, :lo12:.LANCHOR3 str wzr, [x0,1420] - b .L3830 -.L3758: + b .L3835 +.L3763: mov w0, 1 mov w1, 2 mov w2, w0 add x19, x19, :lo12:.LANCHOR0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3830 - b .L3905 -.L3757: + cbnz w0, .L3835 + b .L3910 +.L3762: ldr w0, [x27,#:lo12:.LANCHOR2] strb w21, [x22,3569] - tbz x0, 8, .L3764 + tbz x0, 8, .L3769 adrp x0, .LC305 ldrh w6, [x7,120] ldrh w7, [x7,122] @@ -24174,46 +24177,46 @@ zftl_do_gc: mov w4, w21 mov w5, w21 bl printk -.L3764: +.L3769: add x19, x19, :lo12:.LANCHOR0 cmp w20, 16 ldrb w0, [x19,3569] - bls .L3765 -.L3910: + bls .L3770 +.L3915: mov w1, 3 mov w2, 4 - b .L3904 -.L3765: + b .L3909 +.L3770: mov w1, 1 mov w2, w1 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3830 -.L3905: + cbnz w0, .L3835 +.L3910: ldrb w0, [x19,3569] mov w1, 3 mov w2, 2 -.L3904: +.L3909: bl gc_search_src_blk uxth w0, w0 - b .L3760 -.L3756: + b .L3765 +.L3761: cmp w26, 1 mov w1, w24 - bne .L3879 + bne .L3884 cmp w20, w2, lsl 1 - bge .L3766 + bge .L3771 cmp w25, w21, lsr 1 - bcs .L3767 + bcs .L3772 ldrh w2, [x22,2870] ldrh w0, [x22,3604] cmp w2, w0 - bcs .L3767 + bcs .L3772 ldrh w0, [x22,3602] lsr w0, w0, 2 strh w0, [x22,2888] - b .L3879 -.L3767: + b .L3884 +.L3772: mov w1, 5 mov w0, 0 bl zftl_get_gc_node @@ -24221,12 +24224,12 @@ zftl_do_gc: mov w1, 65535 mov w27, w22 cmp w22, w1 - bne .L3768 -.L3773: + bne .L3773 +.L3778: cmp w21, 1 - bhi .L3769 - b .L3770 -.L3768: + bhi .L3774 + b .L3775 +.L3773: add x26, x23, :lo12:.LANCHOR3 add x2, x19, :lo12:.LANCHOR0 uxtw x22, w22 @@ -24235,94 +24238,94 @@ zftl_do_gc: add w1, w1, 1 str w1, [x26,1420] cmp w1, w3, lsr 4 - bls .L3771 + bls .L3776 ldr x1, [x2,600] str wzr, [x26,1420] ldrh w3, [x1,x22,lsl 1] ldrh w1, [x2,2890] cmp w3, w1 - bcs .L3771 + bcs .L3776 mov w1, 0 mov w2, 1 bl gc_add_sblk - cbz w0, .L3771 + cbz w0, .L3776 mov w0, 1 strb w0, [x26,1418] - b .L3755 -.L3771: + b .L3760 +.L3776: add x1, x19, :lo12:.LANCHOR0 ldr x0, [x1,600] ldrh w2, [x0,x22,lsl 1] ldrh w0, [x1,3596] cmp w2, w0, lsr 1 - bhi .L3772 + bhi .L3777 mov w0, w27 mov w1, 1 mov w2, 0 bl gc_add_sblk - b .L3830 -.L3772: + b .L3835 +.L3777: ldrh w3, [x1,2866] ldrh w0, [x1,2868] add w0, w3, w0 ldrh w3, [x1,3602] cmp w0, w3, lsl 1 - ble .L3773 + ble .L3778 ldrh w0, [x1,2890] cmp w0, w2 - bcc .L3770 - b .L3773 -.L3769: + bcc .L3775 + b .L3778 +.L3774: add x22, x19, :lo12:.LANCHOR0 mov w0, 1 cmp w21, 16 strb w0, [x22,3569] - bls .L3774 + bls .L3779 ldrh w2, [x22,2870] ldrh w1, [x22,3604] cmp w2, w1 - bhi .L3774 + bhi .L3779 mov w1, w0 mov w2, 4 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3775 + cbnz w0, .L3780 ldrb w0, [x22,3569] mov w1, 3 mov w2, 4 - b .L3903 -.L3774: + b .L3908 +.L3779: mov w0, 1 mov w1, 2 mov w2, w0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3775 + cbnz w0, .L3780 add x0, x19, :lo12:.LANCHOR0 mov w1, 3 mov w2, 2 ldrb w0, [x0,3569] -.L3903: +.L3908: bl gc_search_src_blk uxth w0, w0 -.L3775: +.L3780: add x19, x19, :lo12:.LANCHOR0 cmp w20, w25, lsr 1 ldrh w1, [x19,3602] - bls .L3906 + bls .L3911 lsr w1, w1, 2 - b .L3907 -.L3770: + b .L3912 +.L3775: cmp w20, w25 add x19, x19, :lo12:.LANCHOR0 - bcs .L3777 + bcs .L3782 mov w0, 4 strb wzr, [x19,3569] - bl zftl_get_gc_node.part.12 + bl zftl_get_gc_node.part.11 uxth w0, w0 mov w1, 65535 cmp w0, w1 - beq .L3777 + beq .L3782 ubfiz x0, x0, 1, 16 ldr x1, [x19,600] ldrb w2, [x19,3572] @@ -24330,94 +24333,94 @@ zftl_do_gc: ldrh w0, [x19,3596] mul w0, w0, w2 cmp w1, w0, lsr 1 - bgt .L3777 + bgt .L3782 mov w1, 3 mov w0, 0 mov w2, 4 bl gc_search_src_blk uxth w0, w0 ldrh w1, [x19,3602] -.L3906: +.L3911: lsr w1, w1, 1 -.L3907: +.L3912: strh w1, [x19,2888] - b .L3760 -.L3777: + b .L3765 +.L3782: ldrh w0, [x19,3602] lsr w0, w0, 2 strh w0, [x19,2888] - b .L3755 -.L3766: + b .L3760 +.L3771: ldrh w0, [x22,3602] mov w24, w5 lsr w0, w0, 2 strh w0, [x22,2888] - b .L3755 -.L3760: + b .L3760 +.L3765: mov w1, w24 - cbz w0, .L3879 -.L3830: + cbz w0, .L3884 +.L3835: add x23, x23, :lo12:.LANCHOR3 mov w0, 1 strb w0, [x23,1418] - b .L3755 -.L3721: + b .L3760 +.L3726: add x20, x19, :lo12:.LANCHOR0 mov w0, 65535 ldrh w1, [x20,2912] cmp w1, w0 - bne .L3780 + bne .L3785 bl gc_get_src_blk strh w0, [x20,2912] -.L3780: +.L3785: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 ldrh w1, [x0,2912] cmp w1, w2 - beq .L3781 + beq .L3786 ldrh w2, [x0,576] cmp w2, w1 - bhi .L3781 + bhi .L3786 mov w1, -1 strh w1, [x0,2912] -.L3781: +.L3786: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 add x1, x0, 2912 ldrh w3, [x0,2912] cmp w3, w2 - beq .L3909 + beq .L3914 ldrh w5, [x1,56] uxtw x4, w3 ldr x2, [x0,584] add x2, x2, x4, lsl 2 - cbz w5, .L3784 + cbz w5, .L3789 mov x0, 0 -.L3783: +.L3788: cmp w5, w0, uxth - bls .L3784 + bls .L3789 add x0, x0, 1 add x6, x1, x0, lsl 1 ldrh w6, [x6,56] cmp w6, w3 - bne .L3783 -.L3789: + bne .L3788 +.L3794: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 strh w0, [x19,2912] - b .L3908 -.L3784: + b .L3913 +.L3789: ldrb w0, [x2,2] tst w0, 192 - beq .L3843 + beq .L3848 and w0, w0, 224 cmp w0, 224 - bne .L3786 -.L3843: + bne .L3791 +.L3848: add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,600] ldrh w0, [x0,x4,lsl 1] - cbz w0, .L3789 + cbz w0, .L3794 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -24426,40 +24429,40 @@ zftl_do_gc: add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L3789 -.L3786: + b .L3794 +.L3791: add x23, x23, :lo12:.LANCHOR3 mov w0, 2 - b .L3911 -.L3722: + b .L3916 +.L3727: bl gc_scan_src_blk cmn w0, #1 - bne .L3790 + bne .L3795 add x23, x23, :lo12:.LANCHOR3 mov w0, 3 -.L3911: +.L3916: strb w0, [x23,1418] - b .L3908 -.L3790: + b .L3913 +.L3795: add x1, x19, :lo12:.LANCHOR0 mov w3, 65535 ldrh w0, [x1,2912] cmp w0, w3 - beq .L3736 + beq .L3741 ldrh w3, [x1,2936] add x23, x23, :lo12:.LANCHOR3 - cbz w3, .L3791 + cbz w3, .L3796 mov w0, 4 strh wzr, [x1,2938] strb w0, [x23,1418] - b .L3908 -.L3791: + b .L3913 +.L3796: ubfiz x0, x0, 1, 16 ldr x1, [x1,600] mov w2, 1 strb w2, [x23,1418] ldrh w0, [x1,x0] - cbz w0, .L3792 + cbz w0, .L3797 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -24468,7 +24471,7 @@ zftl_do_gc: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3792: +.L3797: add x20, x19, :lo12:.LANCHOR0 add x21, x20, 2912 ldrh w0, [x20,2912] @@ -24480,39 +24483,39 @@ zftl_do_gc: add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3793 + bhi .L3798 strh w0, [x21,30] - b .L3789 -.L3793: + b .L3794 +.L3798: strh wzr, [x21,30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L3789 -.L3723: + b .L3794 +.L3728: add x21, x19, :lo12:.LANCHOR0 -.L3880: +.L3885: bl gc_scan_src_blk_one_page ldrh w2, [x21,2914] add x0, x21, 2912 ldrh w1, [x21,3596] cmp w2, w1 - bcs .L3795 + bcs .L3800 cmp w20, 7 - bls .L3880 - b .L3908 -.L3795: + bls .L3885 + b .L3913 +.L3800: ldrh w3, [x0,24] adrp x2, .LANCHOR2 - cbz w3, .L3796 + cbz w3, .L3801 add x23, x23, :lo12:.LANCHOR3 mov w1, 4 strh wzr, [x0,26] strb w1, [x23,1418] ldr w1, [x2,#:lo12:.LANCHOR2] - tbz x1, 8, .L3797 + tbz x1, 8, .L3802 ldrh w1, [x0] adrp x0, .LC306 ldr x4, [x21,600] @@ -24520,14 +24523,14 @@ zftl_do_gc: ubfiz x2, x1, 1, 16 ldrh w2, [x4,x2] bl printk -.L3797: +.L3802: add x0, x19, :lo12:.LANCHOR0 ldrh w2, [x0,2912] ldr x1, [x0,600] ldrh w0, [x0,2936] ldrh w1, [x1,x2,lsl 1] cmp w1, w0 - beq .L3798 + beq .L3803 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -24536,14 +24539,14 @@ zftl_do_gc: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3798: +.L3803: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x19,2912] ldr x0, [x19,600] ldrh w2, [x19,2936] strh w2, [x0,x1,lsl 1] - b .L3908 -.L3796: + b .L3913 +.L3801: add x23, x23, :lo12:.LANCHOR3 ldrh w1, [x0] mov w0, 1 @@ -24551,20 +24554,20 @@ zftl_do_gc: add x20, x20, x1, uxth 2 strb w0, [x23,1418] ldr w0, [x2,#:lo12:.LANCHOR2] - tbz x0, 8, .L3799 + tbz x0, 8, .L3804 ldrb w2, [x20,2] adrp x0, .LC307 add x0, x0, :lo12:.LC307 ubfx x2, x2, 5, 3 bl printk -.L3799: +.L3804: ldrb w0, [x20,2] tst w0, 192 - beq .L3844 + beq .L3849 and w0, w0, 224 cmp w0, 224 - bne .L3800 -.L3844: + bne .L3805 +.L3849: adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -24573,7 +24576,7 @@ zftl_do_gc: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3800: +.L3805: add x19, x19, :lo12:.LANCHOR0 add x20, x19, 2912 ldrh w0, [x19,2912] @@ -24584,44 +24587,44 @@ zftl_do_gc: add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3802 + bhi .L3807 strh w0, [x20,30] - b .L3908 -.L3802: + b .L3913 +.L3807: strh wzr, [x20,30] - b .L3912 -.L3724: - cbnz w26, .L3803 + b .L3917 +.L3729: + cbnz w26, .L3808 add x0, x19, :lo12:.LANCHOR0 ldrh w0, [x0,2888] cmp w0, w20 - bcc .L3908 -.L3803: + bcc .L3913 +.L3808: ldrh w1, [x22,80] mov w0, 65535 cmp w1, w0 - bne .L3804 + bne .L3809 add x24, x19, :lo12:.LANCHOR0 ldrb w21, [x24,3569] cmp w21, 1 - bne .L3804 + bne .L3809 bl ftl_flush ldrh w0, [x24,3486] - cbz w0, .L3805 + cbz w0, .L3810 mov w0, w21 -.L3805: +.L3810: mov w1, 5 bl zftl_gc_get_free_sblk uxth w20, w0 mov w0, 65535 cmp w20, w0 - beq .L3807 + beq .L3812 add x0, x19, :lo12:.LANCHOR0 ldr x21, [x0,584] add x21, x21, x20, uxth 2 ldrb w0, [x21,2] tst w0, 224 - beq .L3808 + beq .L3813 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -24630,13 +24633,13 @@ zftl_do_gc: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3808: +.L3813: ldrb w0, [x21,2] mov w1, 5 bfi w0, w1, 5, 3 orr w0, w0, 16 strb w0, [x21,2] -.L3831: +.L3836: mov w0, w20 mov w1, 1 add x19, x19, :lo12:.LANCHOR0 @@ -24693,8 +24696,8 @@ zftl_do_gc: strh wzr, [x19,3484] strh wzr, [x19,3488] bl ftl_info_flush - b .L3908 -.L3804: + b .L3913 +.L3809: cmp w26, 1 mov w21, 4 csinc w21, w21, wzr, eq @@ -24702,23 +24705,23 @@ zftl_do_gc: add w0, w21, 4 add x24, x19, :lo12:.LANCHOR0 csel w21, w0, w21, ls -.L3811: +.L3816: sub w21, w21, #1 uxtb w21, w21 cmp w21, 255 - beq .L3908 + beq .L3913 bl gc_do_copy_back ldrb w0, [x24,3569] - cbnz w0, .L3812 + cbnz w0, .L3817 ldrb w0, [x24,2850] cmp w0, 3 - bhi .L3813 + bhi .L3818 bl ftl_write_commit -.L3813: +.L3818: ldrh w1, [x24,2938] ldrh w0, [x24,2936] cmp w1, w0 - bcc .L3811 + bcc .L3816 add x23, x23, :lo12:.LANCHOR3 mov w0, 1 strb w0, [x23,1418] @@ -24727,7 +24730,7 @@ zftl_do_gc: ldrh w1, [x24,2912] ldr x0, [x24,600] ldrh w0, [x0,x1,lsl 1] - cbz w0, .L3815 + cbz w0, .L3820 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -24736,34 +24739,34 @@ zftl_do_gc: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3815: +.L3820: add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x1,2912] ldr x3, [x1,600] ubfiz x2, x0, 1, 16 ldrh w4, [x3,x2] - cbnz w4, .L3816 + cbnz w4, .L3821 strh w4, [x3,x2] ldrh w0, [x1,2912] bl ftl_free_sblk - b .L3789 -.L3816: + b .L3794 +.L3821: mov w1, 0 mov w2, 1 bl gc_add_sblk - b .L3789 -.L3812: + b .L3794 +.L3817: add x20, x24, 2912 ldrh w0, [x20,576] - cbz w0, .L3817 + cbz w0, .L3822 strh wzr, [x20,576] bl sblk_wait_write_queue_completed bl gc_write_completed ldr w0, [x20,580] cmn w0, #1 - beq .L3818 + beq .L3823 bl ftl_mask_bad_block -.L3818: +.L3823: add x20, x19, :lo12:.LANCHOR0 ldr x0, [x20,608] str wzr, [x20,3492] @@ -24777,9 +24780,9 @@ zftl_do_gc: strh w0, [x2,126] strh w0, [x1,130] ldr x0, [x20,2920] - cbz x0, .L3819 + cbz x0, .L3824 bl zbuf_free -.L3819: +.L3824: add x19, x19, :lo12:.LANCHOR0 add x23, x23, :lo12:.LANCHOR3 str xzr, [x19,2920] @@ -24793,15 +24796,15 @@ zftl_do_gc: strb wzr, [x23,1418] bl printk bl dump_stack - b .L3908 -.L3817: + b .L3913 +.L3822: ldrh w0, [x22,86] cmp w0, 1 - bls .L3820 + bls .L3825 ldrh w1, [x20,26] ldrh w0, [x20,24] cmp w1, w0 - bcc .L3811 + bcc .L3816 add x23, x23, :lo12:.LANCHOR3 mov w0, 1 strb w0, [x23,1418] @@ -24813,15 +24816,15 @@ zftl_do_gc: strh w1, [x0,58] mov w0, -1 strh w0, [x20] - b .L3908 -.L3820: + b .L3913 +.L3825: add x23, x23, :lo12:.LANCHOR3 mov w0, 5 ldrh w1, [x20,26] strb w0, [x23,1418] ldrh w0, [x20,24] cmp w1, w0 - bcc .L3821 + bcc .L3826 ldrh w0, [x20,56] add w1, w0, 1 add x0, x20, x0, sxtw 1 @@ -24830,7 +24833,7 @@ zftl_do_gc: strh w1, [x0,58] mov w0, -1 strh w0, [x20] -.L3821: +.L3826: add x20, x19, :lo12:.LANCHOR0 bl ftl_flush bl sblk_wait_write_queue_completed @@ -24846,32 +24849,32 @@ zftl_do_gc: ldrb w2, [x20,756] ldrb w1, [x20,3553] strh w1, [x20,2932] - cbz w2, .L3822 + cbz w2, .L3827 ldrh w2, [x20,3570] strh w2, [x20,2930] mov w2, 1 strh w2, [x20,2932] -.L3822: +.L3827: cmp w1, 2 - bne .L3824 + 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, .L3824 + cbnz w1, .L3829 mov w1, 1 strh w1, [x2,2932] -.L3824: +.L3829: add x19, x19, :lo12:.LANCHOR0 strh wzr, [x19,2934] - b .L3908 -.L3833: + b .L3913 +.L3838: mov w21, 0 add x24, x19, :lo12:.LANCHOR0 -.L3725: +.L3730: bl gc_check_data_one_wl - cbz w0, .L3827 + cbz w0, .L3832 add x19, x19, :lo12:.LANCHOR0 add x23, x23, :lo12:.LANCHOR3 ldr x0, [x19,608] @@ -24888,32 +24891,32 @@ zftl_do_gc: bl zbuf_free str xzr, [x19,2920] strb wzr, [x23,1418] -.L3912: +.L3917: bl flt_sys_flush - b .L3908 -.L3827: + b .L3913 +.L3832: ldrh w1, [x24,2928] ldrh w0, [x24,2930] cmp w1, w0 - bcc .L3828 + bcc .L3833 add x23, x23, :lo12:.LANCHOR3 mov w0, 6 strb w0, [x23,1418] ldr x0, [x24,2920] bl zbuf_free str xzr, [x24,2920] - b .L3908 -.L3828: + b .L3913 +.L3833: cmp w20, 15 - bls .L3725 + bls .L3730 cmp w26, 1 - bne .L3908 + bne .L3913 add w21, w21, 1 uxtb w21, w21 cmp w21, 4 - bls .L3725 - b .L3908 -.L3726: + bls .L3730 + b .L3913 +.L3731: bl gc_update_l2p_map_new mov w20, -1 bl gc_free_src_blk @@ -24926,16 +24929,16 @@ zftl_do_gc: strh w20, [x0,126] mov w0, 0 bl ftl_info_flush -.L3909: +.L3914: add x23, x23, :lo12:.LANCHOR3 strb wzr, [x23,1418] -.L3908: +.L3913: mov w1, 16 - b .L3879 -.L3755: + b .L3884 +.L3760: mov w1, w24 - b .L3879 -.L3807: + b .L3884 +.L3812: adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -24944,8 +24947,8 @@ zftl_do_gc: add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L3831 -.L3879: + b .L3836 +.L3884: sub sp, x29, #16 mov w0, w1 ldp x19, x20, [sp,32] @@ -24974,7 +24977,7 @@ zftl_write: stp x25, x26, [sp,64] mov w23, w2 mov x24, x3 - tbz x0, 12, .L3914 + tbz x0, 12, .L3919 adrp x0, .LC308 ldr w4, [x24] add x0, x0, :lo12:.LC308 @@ -24982,23 +24985,23 @@ zftl_write: mov w2, w28 mov w3, w23 bl printk -.L3914: - cbnz w19, .L3915 +.L3919: + cbnz w19, .L3920 adrp x0, .LANCHOR0+520 mov w19, 24576 ldr w2, [x0,#:lo12:.LANCHOR0+520] - b .L3916 -.L3915: + b .L3921 +.L3920: cmp w19, 3 mov w0, -1 - bhi .L3917 + bhi .L3922 lsl w19, w19, 13 mov w2, 8192 -.L3916: +.L3921: add w1, w28, w23 mov w0, -1 cmp w1, w2 - bhi .L3917 + bhi .L3922 add w28, w19, w28 adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 @@ -25011,15 +25014,15 @@ zftl_write: udiv w22, w22, w0 sub w20, w22, w25 add w20, w20, 1 -.L3918: - cbz w20, .L3937 +.L3923: + cbz w20, .L3942 mov w0, 0 bl buf_alloc mov x27, x0 - cbnz x0, .L3919 + cbnz x0, .L3924 bl ftl_write_commit - b .L3918 -.L3919: + b .L3923 +.L3924: strb wzr, [x0,57] add x0, x19, :lo12:.LANCHOR0 cmp w21, w25 @@ -25027,12 +25030,12 @@ zftl_write: cset w0, eq strb w4, [x27,56] cmp w21, w22 - beq .L3921 - cbz w0, .L3922 - b .L3931 -.L3921: - cbz w0, .L3923 -.L3931: + beq .L3926 + cbz w0, .L3927 + b .L3936 +.L3926: + cbz w0, .L3928 +.L3936: udiv w0, w28, w4 msub w0, w0, w4, w28 uxtb w0, w0 @@ -25041,12 +25044,12 @@ zftl_write: uxtb w4, w4 cmp w4, w23 csel w4, w23, w4, hi - b .L3935 -.L3923: + b .L3940 +.L3928: msub w4, w4, w21, w26 -.L3935: +.L3940: strb w4, [x27,56] -.L3922: +.L3927: ldrb w1, [x27,57] sub w20, w20, #1 ldr x0, [x27,8] @@ -25067,11 +25070,11 @@ zftl_write: bl ftl_write_buf ldrb w0, [x27,56] add x24, x24, x0, lsl 9 - b .L3918 -.L3937: + b .L3923 +.L3942: bl ftl_write_commit mov w0, w20 -.L3936: +.L3941: mov w1, 1 bl zftl_do_gc add x1, x19, :lo12:.LANCHOR0 @@ -25079,15 +25082,15 @@ zftl_write: ldrh w0, [x1,2864] add w0, w2, w0 cmp w0, 7 - bgt .L3938 + bgt .L3943 mov w0, 0 - b .L3936 -.L3938: + b .L3941 +.L3943: bl timer_get_time adrp x1, .LANCHOR6+260 str w0, [x1,#:lo12:.LANCHOR6+260] mov w0, 0 -.L3917: +.L3922: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -25145,7 +25148,7 @@ zftl_discard: stp x27, x28, [sp,80] ldr w1, [x1,520] cmp w2, w1 - bhi .L3942 + bhi .L3947 adrp x22, .LANCHOR6 add w23, w0, 24576 add x0, x22, :lo12:.LANCHOR6 @@ -25154,14 +25157,14 @@ zftl_discard: add w1, w19, w1 str w1, [x0,264] ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3943 + tbz x0, 12, .L3948 adrp x0, .LC309 mov w2, w23 add x0, x0, :lo12:.LC309 mov w3, w19 mov w4, 0 bl printk -.L3943: +.L3948: add x20, x21, :lo12:.LANCHOR0 ldr x0, [x20,2880] ldr w26, [x0,8] @@ -25172,7 +25175,7 @@ zftl_discard: ldrb w24, [x20,2848] udiv w20, w23, w24 msub w27, w20, w24, w23 - cbz w27, .L3944 + cbz w27, .L3949 sub w24, w24, w27 mov w0, w20 cmp w24, w19 @@ -25180,20 +25183,20 @@ zftl_discard: bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - bne .L3945 + bne .L3950 mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L3945: +.L3950: ldr w0, [x29,120] and w28, w24, 65535 cmn w0, #1 - beq .L3947 + beq .L3952 mov w0, 0 bl buf_alloc mov x3, x0 - cbz x0, .L3947 + cbz x0, .L3952 strb w27, [x0,57] ubfiz x27, x27, 9, 25 str w20, [x0,36] @@ -25214,31 +25217,31 @@ zftl_discard: ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3947: +.L3952: add w20, w20, 1 sub w19, w19, w28 -.L3944: - cbz w19, .L3949 - bl ftl_flush .L3949: + cbz w19, .L3954 + bl ftl_flush +.L3954: mov w0, -1 mov w27, 1 str w0, [x29,124] mov w28, 24 -.L3950: +.L3955: add x24, x21, :lo12:.LANCHOR0 ldrb w0, [x24,2848] cmp w19, w0 - bcc .L3989 + bcc .L3994 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - beq .L3951 + beq .L3956 mov w0, 0 bl buf_alloc mov x3, x0 - cbz x0, .L3953 + cbz x0, .L3958 ldrb w2, [x24,2848] mov w1, 0 str w20, [x0,36] @@ -25253,15 +25256,15 @@ zftl_discard: mov x0, x3 bl ftl_write_buf bl ftl_write_commit - b .L3988 -.L3951: + b .L3993 +.L3956: mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys ldr w0, [x29,120] cmn w0, #1 - beq .L3953 + beq .L3958 add x1, x29, 124 mov w2, 1 mov w0, w20 @@ -25278,36 +25281,36 @@ zftl_discard: ldrb w0, [x24,3538] udiv w0, w1, w0 bl ftl_vpn_decrement -.L3988: +.L3993: ldr x1, [x24,2880] ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3953: +.L3958: add x0, x21, :lo12:.LANCHOR0 add w20, w20, 1 ldrb w0, [x0,2848] sub w19, w19, w0 - b .L3950 -.L3989: - cbz w19, .L3957 + b .L3955 +.L3994: + cbz w19, .L3962 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29,120] cmn w0, #1 - bne .L3958 + bne .L3963 mov w0, w20 add x1, x29, 120 mov w2, 0 bl pm_log2phys -.L3958: +.L3963: ldr w0, [x29,120] cmn w0, #1 - beq .L3957 + beq .L3962 mov w0, 0 bl buf_alloc mov x24, x0 - cbz x0, .L3957 + cbz x0, .L3962 str w20, [x0,36] strb wzr, [x0,57] strb w19, [x0,56] @@ -25315,7 +25318,7 @@ zftl_discard: add x0, x21, :lo12:.LANCHOR0 ldrb w0, [x0,2848] cmp w19, w0 - bcc .L3960 + bcc .L3965 adrp x1, .LANCHOR4 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 @@ -25324,7 +25327,7 @@ zftl_discard: add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3960: +.L3965: ldr x0, [x24,8] mov w1, 0 lsl w2, w19, 9 @@ -25337,20 +25340,20 @@ zftl_discard: ldr w0, [x1,76] add w0, w0, 1 str w0, [x1,76] -.L3957: +.L3962: add x0, x22, :lo12:.LANCHOR6 mov w4, 0 ldr w1, [x0,264] cmp w1, 8192 - bls .L3942 + bls .L3947 ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3961 + tbz x0, 12, .L3966 adrp x0, .LC309 mov w2, w23 add x0, x0, :lo12:.LC309 mov w3, w19 bl printk -.L3961: +.L3966: add x22, x22, :lo12:.LANCHOR6 add x21, x21, :lo12:.LANCHOR0 str wzr, [x22,264] @@ -25358,7 +25361,7 @@ zftl_discard: mov w0, 1 mov w4, 0 str w0, [x21,2900] -.L3942: +.L3947: mov w0, w4 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -25373,12 +25376,12 @@ zftl_discard: .type dump_pm_blk, %function dump_pm_blk: stp x29, x30, [sp, -48]! - adrp x0, .LC267 + adrp x0, .LC268 mov w2, 4 add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 - add x0, x0, :lo12:.LC267 + add x0, x0, :lo12:.LC268 stp x19, x20, [sp,16] add x19, x21, :lo12:.LANCHOR0 adrp x20, .LANCHOR3 @@ -25389,31 +25392,31 @@ dump_pm_blk: bl rknand_print_hex add x3, x20, :lo12:.LANCHOR3 ldr x1, [x19,2880] - adrp x0, .LC268 + adrp x0, .LC269 mov w2, 2 - add x0, x0, :lo12:.LC268 + add x0, x0, :lo12:.LC269 add x1, x1, 416 ldrh w3, [x3,1456] mov w19, 0 bl rknand_print_hex -.L3991: +.L3996: add x0, x20, :lo12:.LANCHOR3 ldrh w0, [x0,1456] cmp w0, w19 - bls .L3994 + bls .L3999 add x0, x21, :lo12:.LANCHOR0 ldr x0, [x0,2880] add x0, x0, x19, sxtw 1 ldrh w0, [x0,416] cmp w0, w22 - beq .L3992 + beq .L3997 mov x1, 0 bl ftl_sblk_dump -.L3992: +.L3997: add w19, w19, 1 uxth w19, w19 - b .L3991 -.L3994: + b .L3996 +.L3999: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -25437,18 +25440,18 @@ id_block_prog_msb_ff_data: ldr x2, [x0,624] ldrb w0, [x0,634] ldrb w2, [x2,19] - cbnz w0, .L3995 + cbnz w0, .L4000 sub w0, w2, #5 uxtb w0, w0 cmp w0, 2 - bls .L3997 + bls .L4002 cmp w2, 68 - beq .L3997 + beq .L4002 sub w2, w2, #19 and w2, w2, -17 uxtb w2, w2 - cbnz w2, .L3995 -.L3997: + cbnz w2, .L4000 +.L4002: adrp x20, .LANCHOR3 adrp x22, .LC310 add x20, x20, :lo12:.LANCHOR3 @@ -25456,12 +25459,12 @@ id_block_prog_msb_ff_data: add x22, x22, :lo12:.LC310 add x26, x20, 356 mov w27, 65535 -.L3999: +.L4004: add x25, x21, :lo12:.LANCHOR0 ldr x0, [x25,624] ldrh w0, [x0,10] cmp w0, w19 - bls .L3995 + bls .L4000 add w28, w19, w23 ldrh w3, [x26,w19,sxtw 1] mov x0, x22 @@ -25470,7 +25473,7 @@ id_block_prog_msb_ff_data: bl printk ldrh w0, [x26,w19,sxtw 1] cmp w0, w27 - bne .L3995 + bne .L4000 ldr x0, [x20,1488] mov w1, 255 mov w2, 16384 @@ -25484,8 +25487,8 @@ id_block_prog_msb_ff_data: ldrb w4, [x4,9] mov x3, x2 bl flash_prog_page - b .L3999 -.L3995: + b .L4004 +.L4000: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -25500,56 +25503,61 @@ id_block_prog_msb_ff_data: write_idblock: stp x29, x30, [sp, -272]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR0 stp x25, x26, [sp,64] - add x26, x23, :lo12:.LANCHOR0 + add x26, x21, :lo12:.LANCHOR0 mov x25, x1 + stp x23, x24, [sp,48] stp x19, x20, [sp,16] + stp x27, x28, [sp,80] mov w19, w0 str x2, [x29,176] ldr x0, [x26,624] - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] ldrb w20, [x0,9] - ldrh w21, [x0,10] + ldrh w22, [x0,10] adrp x0, .LANCHOR2+34 - ldrh w22, [x0,#:lo12:.LANCHOR2+34] - ldrb w0, [x23,#:lo12:.LANCHOR0] - str w0, [x29,168] - ldrh w0, [x29,168] - str w0, [x29,192] + 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,160] + str w0, [x29,164] mov w0, 59392 movk w0, 0x3, lsl 16 bl ftl_malloc - str x23, [x29,184] + str x21, [x29,184] mov x24, x0 mov w0, -1 - cbz x24, .L4074 + cbz x24, .L4082 adrp x0, .LANCHOR6+238 - str wzr, [x29,204] + mov w21, 0 ldrb w0, [x0,#:lo12:.LANCHOR6+238] - cbz w0, .L4003 - ldrb w1, [x23,#:lo12:.LANCHOR0] + cbz w0, .L4008 + ldr x0, [x29,184] + ldrb w1, [x0,#:lo12:.LANCHOR0] ldrb w0, [x26,634] - cbz w1, .L4004 - cmp w0, wzr - cset w0, eq - b .L4076 -.L4004: - ldr w2, [x29,192] + cbz w1, .L4009 + cmp w0, w21 + cset w21, eq + b .L4008 +.L4009: cmp w0, 3 - mov w1, 3 - mov w23, 2 + beq .L4047 + ldr w2, [x29,200] + cmp w0, 2 + mov w1, 2 + mov w21, 3 csel w1, w2, w1, ne - cmp w0, 3 - str w1, [x29,192] - csel w0, wzr, w23, ne -.L4076: - str w0, [x29,204] -.L4003: + 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, 0 add w19, w19, 511 lsr w19, w19, 9 @@ -25560,39 +25568,39 @@ write_idblock: add x0, x0, :lo12:.LANCHOR0 ldrb w0, [x0,634] strb w0, [x1,#:lo12:.LANCHOR0] - bls .L4042 + bls .L4049 cmp w19, 500 - bhi .L4006 - b .L4005 -.L4042: + bhi .L4011 + b .L4010 +.L4049: mov w19, 8 -.L4005: +.L4010: ldr w1, [x25] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - beq .L4007 -.L4006: + beq .L4012 +.L4011: mov x0, x24 bl ftl_free mov w0, -1 - b .L4074 -.L4007: + b .L4082 +.L4012: uxth w20, w20 mov w3, 0 mov w2, 63871 mov w4, 4097 - mul w21, w20, w21 - uxth w21, w21 - sub w0, w21, #1 + mul w22, w20, w22 + uxth w22, w22 + sub w0, w22, #1 add w0, w0, w19 - udiv w0, w0, w21 - str w0, [x29,156] + udiv w0, w0, w22 + str w0, [x29,160] add x0, x25, 253952 add x0, x0, 1532 -.L4011: +.L4016: ldr w1, [x0] - cbnz w1, .L4008 + cbnz w1, .L4013 ldr w1, [x25,w3,uxtw 2] add w3, w3, 1 cmp w3, w4 @@ -25601,22 +25609,22 @@ write_idblock: csel w3, w3, wzr, cc cmp w2, 4096 sub x0, x0, #4 - bne .L4011 - b .L4010 -.L4008: + bne .L4016 + b .L4015 +.L4013: adrp x0, .LC311 add x0, x0, :lo12:.LC311 bl printk -.L4010: - mul w20, w20, w22 +.L4015: + mul w20, w20, w23 ldr x1, [x29,176] mov w2, 4 mov w3, 5 - mov x21, 0 + mov x22, 0 uxth w0, w20 - str w0, [x29,172] + str w0, [x29,192] adrp x0, .LC312 - adrp x26, .LANCHOR0 + adrp x27, .LANCHOR0 add x0, x0, :lo12:.LC312 bl rknand_print_hex adrp x0, .LC313 @@ -25624,56 +25632,61 @@ write_idblock: add x0, x0, :lo12:.LC313 mov w2, w19 bl printk - str w21, [x29,200] + str w22, [x29,204] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - str x0, [x29,136] + str x0, [x29,144] adrp x0, .LC314 add x0, x0, :lo12:.LC314 - str x0, [x29,128] -.L4036: + str x0, [x29,136] +.L4042: adrp x1, .LANCHOR6+238 + mov w0, w22 ldrb w1, [x1,#:lo12:.LANCHOR6+238] - cbnz w1, .L4012 + cbnz w1, .L4017 ldr x1, [x29,176] - ldr w2, [x29,172] - ldr w1, [x1,x21,lsl 2] + ldr w2, [x29,192] + ldr w1, [x1,x22,lsl 2] mul w20, w1, w2 - cbz w21, .L4013 - ldr w2, [x29,156] + cbz w22, .L4018 + ldr w2, [x29,160] cmp w2, 1 - bls .L4013 - sub w0, w21, #1 + bls .L4018 + sub w0, w22, #1 ldr x2, [x29,176] ldr w0, [x2,x0,lsl 2] add w0, w0, 1 cmp w1, w0 - bne .L4013 - b .L4014 -.L4012: - add x22, x26, :lo12:.LANCHOR0 - ldr x1, [x22,728] - add x1, x1, x21, uxtw + bne .L4018 + b .L4019 +.L4017: + adrp x1, .LANCHOR0 + add x28, x1, :lo12:.LANCHOR0 + ldr x1, [x28,728] + add x1, x1, x22, uxtw ldrb w20, [x1,32] cmp w20, 255 - beq .L4014 - ldr w1, [x29,172] + beq .L4019 + ldr w1, [x29,192] mul w20, w20, w1 - ldr w1, [x29,204] - cbz w1, .L4013 - and w0, w21, -3 - cmp w0, 1 - bne .L4015 - ldrb w0, [x29,192] - strb w0, [x26,#:lo12:.LANCHOR0] - strb w0, [x22,634] - b .L4013 -.L4015: - mov w0, 0 + cbz w21, .L4018 + tbnz x0, 0, .L4054 + cmp w21, 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: + mov w0, w23 bl zftl_flash_exit_slc_mode - strb wzr, [x26,#:lo12:.LANCHOR0] - strb wzr, [x22,634] -.L4013: + strb w23, [x28,634] + adrp x0, .LANCHOR0 + strb w23, [x0,#:lo12:.LANCHOR0] +.L4018: mov w1, 0 mov w2, 512 mov x0, x24 @@ -25681,75 +25694,75 @@ write_idblock: ldr x0, [x29,184] add x1, x0, :lo12:.LANCHOR0 ldr x2, [x1,624] - ldrb w27, [x2,9] + ldrb w28, [x2,9] ldrh w2, [x2,10] - uxth w0, w27 + uxth w0, w28 mul w2, w0, w2 - uxth w23, w2 - ldr x2, [x29,136] - ldrh w22, [x2,34] - mul w22, w0, w22 + 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, w27 - str w0, [x29,152] + udiv w1, w20, w28 + str w0, [x29,156] mov w0, 0 - uxth w22, w22 + uxth w23, w23 bl flash_erase_block - cmp w19, w23 + cmp w19, w26 mov w3, 1 - bls .L4016 + bls .L4022 mov w0, 0 - add w1, w20, w22 + add w1, w20, w23 bl flash_erase_block mov w3, 2 -.L4016: - add x23, x26, :lo12:.LANCHOR0 - ldr x1, [x23,624] +.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,148] - udiv w0, w20, w22 - msub w0, w0, w22, w20 - str w0, [x29,164] + 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 .L4045 - ldrb w0, [x23,516] + bne .L4052 + ldrb w0, [x26,516] cmp w0, 9 - bne .L4045 + bne .L4052 adrp x0, .LANCHOR3+1528 mov w1, 0 mov w2, 1024 ldr x3, [x0,#:lo12:.LANCHOR3+1528] - str x3, [x29,120] + str x3, [x29,128] mov x0, x3 bl ftl_memset - ldr x3, [x29,120] + ldr x3, [x29,128] mov w0, 18766 movk w0, 0x464e, lsl 16 str w0, [x3] mov w0, 12 str w0, [x3,4] - ldrb w0, [x23,634] + ldrb w0, [x26,634] str wzr, [x3,12] strb wzr, [x3,16] - cbz w0, .L4018 - ldr x0, [x23,624] + cbz w0, .L4024 + ldr x0, [x26,624] ldrb w0, [x0,29] strb w0, [x3,16] -.L4018: +.L4024: mov w0, 4 strb w0, [x3,17] - adrp x0, .LANCHOR0 - cmp w27, 8 - add x0, x0, :lo12:.LANCHOR0 - str x3, [x29,120] - sub w22, w19, #4 + add x0, x27, :lo12:.LANCHOR0 + cmp w28, 8 + str x3, [x29,128] + sub w23, w19, #4 ldr x1, [x0,624] ldrh w0, [x1,10] ldrb w1, [x1,12] @@ -25764,135 +25777,138 @@ write_idblock: strb w0, [x3,21] add x0, x3, 12 bl js_hash - ldr x3, [x29,120] + ldr x3, [x29,128] str w0, [x3,8] - b .L4017 -.L4045: - mov w22, w19 + b .L4023 +.L4052: + mov w23, w19 mov x3, 0 -.L4017: - mov x23, x25 - mov w28, 0 - add x11, x26, :lo12:.LANCHOR0 -.L4020: - ldr w0, [x29,148] - cmp w28, w0 - bcs .L4078 - ldr w0, [x29,164] +.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, w28, w0 + add w8, w9, w0 add x0, x11, 4 ubfx x8, x8, 2, 16 add w1, w8, 1 ldrh w0, [x0,w1,sxtw 1] - cbz w2, .L4022 + cbz w2, .L4028 ldrb w4, [x11,1] lsl w0, w1, 1 cmp w4, wzr csel w0, w0, w1, ne -.L4022: +.L4028: ldrb w1, [x11,516] cmp w1, 9 - beq .L4077 + beq .L4084 sub w0, w0, #1 lsl w0, w0, 2 -.L4077: +.L4084: str w0, [x29,208] mov w0, 61424 str w0, [x29,212] add x0, x11, 4 ldrh w0, [x0,w8,sxtw 1] - cbnz w2, .L4026 + cbnz w2, .L4032 mov w8, w0 - b .L4027 -.L4026: + b .L4033 +.L4032: ldrb w1, [x11,1] lsl w0, w8, 1 cmp w1, wzr csel w8, w0, w8, ne -.L4027: - mul w0, w8, w27 - cbnz x3, .L4028 +.L4033: + mul w0, w8, w28 + cbnz x3, .L4034 ldr w1, [x29,196] - mov w2, w28 - ldr w5, [x23] + mov w2, w9 + ldr w5, [x26] mov w3, w19 add w12, w0, w1 ldr w6, [x29,208] - ldr x0, [x29,128] + ldr x0, [x29,136] mov w1, w12 - mov x4, x23 + mov x4, x26 mov w7, 61424 str x11, [x29,104] str x8, [x29,112] + str x9, [x29,128] str x12, [x29,120] bl printk ldr x12, [x29,120] - mov x1, x23 + mov x1, x26 add x2, x29, 208 mov w0, w12 - bl fw_flash_page_prog.constprop.30 + 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, .L4029 + cbnz w0, .L4035 ldr w1, [x29,196] add w2, w8, 1 str x11, [x29,120] - udiv w1, w1, w27 + udiv w1, w1, w28 bl id_block_prog_msb_ff_data ldr x11, [x29,120] -.L4029: - add w0, w22, 16 - add x23, x23, 2048 - cmp w28, w0 - bcc .L4030 - add w1, w22, 20 + 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 w28, w1 - csel x23, x23, x0, cs - b .L4030 -.L4028: + 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 - bl fw_flash_page_prog.constprop.30 + str x9, [x29,128] + bl fw_flash_page_prog.constprop.29 ldr x11, [x29,120] -.L4030: - add w9, w28, 4 + ldr x9, [x29,128] +.L4036: + add w9, w9, 4 mov x3, 0 - uxth w28, w9 - b .L4020 -.L4078: - adrp x0, .LANCHOR0 - mov w1, w22 - add x27, x0, :lo12:.LANCHOR0 - ldrb w0, [x29,152] + uxth w9, w9 + b .L4026 +.L4085: + add x28, x27, :lo12:.LANCHOR0 + ldrb w0, [x29,156] + mov w1, w23 mov x2, x24 - strb w0, [x27,720] + strb w0, [x28,720] mov w0, w20 - bl id_block_read_data.constprop.31 - ldr w0, [x29,204] - cbz w0, .L4032 + bl id_block_read_data.constprop.30 + cbz w21, .L4038 mov w0, 0 bl zftl_flash_exit_slc_mode - strb wzr, [x27,634] - adrp x0, .LANCHOR0 - strb wzr, [x0,#:lo12:.LANCHOR0] -.L4032: - lsl w22, w22, 7 + strb wzr, [x27,#:lo12:.LANCHOR0] + strb wzr, [x28,634] +.L4038: + lsl w23, w23, 7 mov x0, 0 -.L4033: - cmp w22, w0 - bls .L4079 +.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 .L4033 + beq .L4039 mov x0, x24 mov w1, 0 mov w2, 512 @@ -25900,29 +25916,28 @@ write_idblock: mov w1, w20 mov w0, 0 bl flash_erase_block - b .L4014 -.L4079: - ldr w0, [x29,200] + b .L4019 +.L4086: + ldr w0, [x29,204] add w0, w0, 1 - str w0, [x29,200] + str w0, [x29,204] cmp w0, 5 - bhi .L4038 -.L4014: - add x21, x21, 1 - cmp x21, 4 - bne .L4036 -.L4038: + bhi .L4044 +.L4019: + add x22, x22, 1 + cmp x22, 4 + bne .L4042 +.L4044: mov w0, 0 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR0 - ldrb w2, [x29,168] + ldrb w2, [x29,172] add x1, x0, :lo12:.LANCHOR0 strb w2, [x0,#:lo12:.LANCHOR0] - ldr w2, [x29,204] - cbz w2, .L4037 - ldrb w2, [x29,160] + cbz w21, .L4043 + ldrb w2, [x29,164] strb w2, [x1,634] -.L4037: +.L4043: add x0, x0, :lo12:.LANCHOR0 mov w1, 2 strb w1, [x0,752] @@ -25930,10 +25945,10 @@ write_idblock: bl zftl_flash_enter_slc_mode mov x0, x24 bl ftl_free - ldr w0, [x29,200] + ldr w0, [x29,204] cmp w0, wzr csetm w0, eq -.L4074: +.L4082: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -25951,17 +25966,17 @@ CRC_32: mov x5, x0 add x3, x3, :lo12:.LANCHOR7 mov w0, w2 -.L4081: +.L4088: cmp w1, w2 - bls .L4083 + bls .L4090 ldrb w4, [x5,x2] - sub x6, x3, #72 + 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 .L4081 -.L4083: + b .L4088 +.L4090: ret .size CRC_32, .-CRC_32 .align 2 @@ -25978,12 +25993,12 @@ write_loader_lba: mov w21, w1 mov x24, x2 adrp x20, .LANCHOR6 - bne .L4085 + bne .L4092 ldr w1, [x2] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L4085 + bne .L4092 add x22, x20, :lo12:.LANCHOR6 mov w0, 1 strb w0, [x22,268] @@ -25996,7 +26011,7 @@ write_loader_lba: movk w2, 0x3, lsl 16 bl ftl_memset str w19, [x22,280] -.L4085: +.L4092: add x23, x20, :lo12:.LANCHOR6 adrp x0, .LC315 ldr w2, [x24] @@ -26006,12 +26021,12 @@ write_loader_lba: ldr x1, [x23,272] bl printk ldrb w0, [x23,268] - cbz w0, .L4084 + cbz w0, .L4091 ldr x22, [x23,272] - cbz x22, .L4084 + cbz x22, .L4091 sub w0, w19, #64 cmp w0, 499 - bhi .L4087 + bhi .L4094 mov w3, 564 ubfiz x0, x0, 9, 25 sub w3, w3, w19 @@ -26021,25 +26036,25 @@ write_loader_lba: csel w2, w3, w21, ls lsl w2, w2, 9 bl ftl_memcpy - b .L4088 -.L4087: + b .L4095 +.L4094: cmp w19, 563 - bhi .L4098 -.L4088: + bhi .L4105 +.L4095: add x23, x20, :lo12:.LANCHOR6 ldr w0, [x23,280] cmp w0, w19 - beq .L4096 + beq .L4103 mov x0, x22 strb wzr, [x23,268] bl ftl_free str xzr, [x23,272] -.L4096: +.L4103: add x20, x20, :lo12:.LANCHOR6 add w19, w19, w21 str w19, [x20,280] - b .L4084 -.L4098: + b .L4091 +.L4105: ldr w2, [x23,280] mov w0, 500 sub w2, w2, #64 @@ -26049,7 +26064,7 @@ write_loader_lba: ldr x0, [x0,#:lo12:.LANCHOR0+624] ldrb w0, [x0,9] cmp w0, 4 - beq .L4099 + beq .L4106 mov w0, 2 str w0, [x29,72] mov w0, 3 @@ -26060,39 +26075,39 @@ write_loader_lba: str w0, [x29,84] mov w0, 6 str w0, [x29,88] - b .L4090 -.L4099: + b .L4097 +.L4106: mov x3, 0 -.L4089: +.L4096: cmp w2, 256 add x0, x29, 72 - bls .L4091 + bls .L4098 lsl w1, w3, 1 str w1, [x0,x3,lsl 2] - b .L4092 -.L4091: + b .L4099 +.L4098: str w3, [x0,x3,lsl 2] -.L4092: +.L4099: add x3, x3, 1 cmp x3, 5 - bne .L4089 -.L4090: + bne .L4096 +.L4097: add x0, x22, 245760 mov w3, 61952 add x0, x0, 2048 -.L4095: +.L4102: ldr w1, [x0] - cbz w1, .L4093 + cbz w1, .L4100 add w3, w3, 2048 lsl w0, w3, 2 - b .L4094 -.L4093: + b .L4101 +.L4100: sub w3, w3, #1 sub x0, x0, #4 cmp w3, 4096 - bne .L4095 + bne .L4102 lsl w0, w2, 9 -.L4094: +.L4101: mov x1, x22 add x2, x29, 72 add x22, x20, :lo12:.LANCHOR6 @@ -26101,8 +26116,8 @@ write_loader_lba: strb wzr, [x22,268] bl ftl_free str xzr, [x22,272] - b .L4096 -.L4084: + b .L4103 +.L4091: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -26122,15 +26137,15 @@ FtlWrite: cmp w0, 1983 mov w19, w1 mov w20, w2 - bhi .L4109 - cbnz w21, .L4109 + bhi .L4116 + cbnz w21, .L4116 mov w0, w1 mov w1, w2 mov x2, x3 str x3, [x29,56] bl write_loader_lba ldr x3, [x29,56] -.L4109: +.L4116: adrp x0, .LANCHOR3+1472 mov w1, w19 mov w2, w20 @@ -26157,137 +26172,137 @@ rknand_sys_storage_ioctl: stp x21, x22, [sp,32] mov w19, w1 mov x20, x2 - beq .L4118 + beq .L4125 mov w0, 29187 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L4119 + bhi .L4126 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4120 - mov w0, 25726 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4121 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4122 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4123 - mov w0, 25364 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bne .L4180 - bl rknand_dev_flush - b .L4214 -.L4123: - mov w0, 25602 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4125 - mov w0, 25603 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4126 - b .L4180 -.L4121: - mov w0, 27688 - movk w0, 0x4004, lsl 16 - cmp w1, w0 beq .L4127 - mov w0, 27688 + mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 bhi .L4128 - mov w0, 25727 + mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 beq .L4129 - b .L4180 -.L4128: - mov w0, 27698 + mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4127 - mov w0, 27708 + bhi .L4130 + mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4127 - b .L4180 -.L4119: - mov w0, 29267 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4130 - mov w0, 29267 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4131 - mov w0, 29189 + bne .L4187 + bl rknand_dev_flush + b .L4221 +.L4130: + mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 beq .L4132 - mov w0, 29189 + mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - bcc .L4133 - mov w0, 29210 + beq .L4133 + b .L4187 +.L4128: + mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 beq .L4134 + mov w0, 27688 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + bhi .L4135 + mov w0, 25727 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L4136 + b .L4187 +.L4135: + mov w0, 27698 + 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 .L4135 - b .L4180 -.L4131: + beq .L4142 + b .L4187 +.L4138: mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4136 + beq .L4143 mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L4137 + bhi .L4144 mov w0, 29268 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4138 + beq .L4145 mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4139 - b .L4180 -.L4137: + beq .L4146 + b .L4187 +.L4144: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4139 + beq .L4146 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4136 - b .L4180 -.L4133: + 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, .L4140 -.L4145: + cbnz x0, .L4147 +.L4152: mov x0, -12 - b .L4117 -.L4140: + b .L4124 +.L4147: mov x1, x20 mov x2, 512 bl rk_copy_from_user - cbnz x0, .L4221 + cbnz x0, .L4228 adrp x0, .LC318 ldr w1, [x19] ldr w2, [x19,4] @@ -26296,42 +26311,42 @@ rknand_sys_storage_ioctl: ldr w0, [x19,4] str w0, [x29,52] cmp w0, 8 - bhi .L4218 + bhi .L4225 bl rknand_device_lock ldr w1, [x29,52] mov x2, x19 ldr w0, [x19] - bl id_block_read_data.constprop.31 + 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, .L4224 + cbz x0, .L4231 adrp x0, .LC319 add x0, x0, :lo12:.LC319 -.L4216: +.L4223: bl printk -.L4218: +.L4225: mov x0, x19 -.L4219: +.L4226: bl ftl_free -.L4217: +.L4224: mov x0, -14 - b .L4117 -.L4132: + b .L4124 +.L4139: adrp x0, .LC320 add x0, x0, :lo12:.LC320 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L4145 + cbz x0, .L4152 mov x1, x20 mov x2, 4096 bl rk_copy_from_user - cbnz x0, .L4221 + cbnz x0, .L4228 adrp x0, .LC321 ldr w1, [x19] ldr w2, [x19,4] @@ -26341,50 +26356,50 @@ rknand_sys_storage_ioctl: add x22, x0, :lo12:.LANCHOR6 mov x20, x0 ldr x21, [x22,288] - cbnz x21, .L4147 + cbnz x21, .L4154 mov w0, 260096 bl ftl_malloc str x0, [x22,288] - cbz x0, .L4218 + cbz x0, .L4225 mov w1, w21 mov x2, 260096 bl memset -.L4147: +.L4154: ldr w2, [x19,4] cmp w2, 4088 - bhi .L4218 + bhi .L4225 ldr w0, [x19] mov w1, 55296 movk w1, 0x3, lsl 16 cmp w0, w1 - bhi .L4218 + 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 -.L4224: +.L4231: mov x0, x19 bl ftl_free - b .L4214 -.L4135: + b .L4221 +.L4142: adrp x0, .LC322 add x0, x0, :lo12:.LC322 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L4145 + cbz x0, .L4152 mov x1, x20 mov x2, 28 bl rk_copy_from_user - cbz x0, .L4150 -.L4221: + cbz x0, .L4157 +.L4228: adrp x0, .LC317 add x0, x0, :lo12:.LC317 - b .L4216 -.L4150: + b .L4223 +.L4157: ldr w1, [x19] adrp x0, .LC323 ldr w2, [x19,4] @@ -26394,20 +26409,20 @@ rknand_sys_storage_ioctl: mov w0, 59392 movk w0, 0x3, lsl 16 cmp w1, w0 - bhi .L4218 + bhi .L4225 adrp x20, .LANCHOR6 add x20, x20, :lo12:.LANCHOR6 ldr x0, [x20,288] - cbz x0, .L4218 + cbz x0, .L4225 bl CRC_32 ldr w1, [x19,4] cmp w1, w0 - beq .L4153 + beq .L4160 mov x0, x19 bl ftl_free mov x0, -2 - b .L4117 -.L4153: + b .L4124 +.L4160: bl rknand_device_lock ldr x1, [x20,288] add x2, x19, 8 @@ -26417,21 +26432,21 @@ rknand_sys_storage_ioctl: ldr x0, [x20,288] bl ftl_free str xzr, [x20,288] - b .L4224 -.L4134: + b .L4231 +.L4141: adrp x0, .LC324 add x0, x0, :lo12:.LC324 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L4145 + cbz x0, .L4152 bl ReadFlashInfo mov x0, x20 mov x1, x21 mov x2, 11 - b .L4226 -.L4118: + b .L4233 +.L4125: adrp x0, .LC325 add x0, x0, :lo12:.LC325 bl printk @@ -26439,15 +26454,15 @@ rknand_sys_storage_ioctl: mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L4145 + cbz x0, .L4152 mov w1, 0 mov w2, 64 bl ftl_memset mov x0, x20 mov x1, x21 mov x2, 64 - b .L4226 -.L4130: + b .L4233 +.L4137: adrp x0, .LC326 add x0, x0, :lo12:.LC326 bl printk @@ -26458,18 +26473,18 @@ rknand_sys_storage_ioctl: ldr w0, [x0,20] str w0, [x29,52] mov x0, x20 -.L4209: +.L4216: bl rk_copy_to_user - cbnz x0, .L4217 - b .L4214 -.L4138: + 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, .L4145 + cbz x0, .L4152 bl rknand_device_lock mov w1, 264 mov w2, 2 @@ -26480,14 +26495,14 @@ rknand_sys_storage_ioctl: mov x0, x20 mov x1, x21 mov x2, 1024 -.L4226: +.L4233: bl rk_copy_to_user mov x19, x0 mov x0, x21 - cbnz x19, .L4219 + cbnz x19, .L4226 bl ftl_free - b .L4144 -.L4122: + b .L4151 +.L4129: adrp x0, .LC328 add x0, x0, :lo12:.LC328 bl printk @@ -26496,25 +26511,25 @@ rknand_sys_storage_ioctl: mov x2, 520 bl rk_copy_from_user mov x19, x0 - cbz x0, .L4158 -.L4163: + cbz x0, .L4165 +.L4170: adrp x0, .LC317 add x0, x0, :lo12:.LC317 bl printk - b .L4217 -.L4158: + b .L4224 +.L4165: ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L4159 -.L4160: + beq .L4166 +.L4167: mov x19, -1 - b .L4144 -.L4159: + b .L4151 +.L4166: ldr w0, [x29,60] cmp w0, 512 - bhi .L4160 + bhi .L4167 adrp x21, .LANCHOR6 add x0, x29, 56 add x21, x21, :lo12:.LANCHOR6 @@ -26525,21 +26540,21 @@ rknand_sys_storage_ioctl: mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L4161 + beq .L4168 add x0, x29, 120 mov w1, w19 mov x2, 128 str w19, [x29,64] str w19, [x29,68] bl memset -.L4161: +.L4168: add x0, x29, 312 mov w1, 0 mov x2, 256 str wzr, [x29,72] bl memset - b .L4223 -.L4125: + b .L4230 +.L4132: adrp x0, .LC329 add x0, x0, :lo12:.LC329 bl printk @@ -26547,15 +26562,15 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4163 + cbnz x0, .L4170 ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L4160 + bne .L4167 ldr w0, [x29,60] cmp w0, 512 - bhi .L4160 + bhi .L4167 adrp x1, .LANCHOR6 mov w2, 5161 add x1, x1, :lo12:.LANCHOR6 @@ -26563,12 +26578,12 @@ rknand_sys_storage_ioctl: mov x0, -2 ldr w3, [x1,304] cmp w3, w2 - bne .L4117 + bne .L4124 ldr w2, [x29,68] mov x0, -3 sub w3, w2, #1 cmp w3, 127 - bhi .L4117 + bhi .L4124 ldr x19, [x1,296] add x1, x29, 120 add x0, x19, 64 @@ -26577,8 +26592,8 @@ rknand_sys_storage_ioctl: bl memcpy mov w0, 1 mov x1, x19 - b .L4215 -.L4129: + b .L4222 +.L4136: adrp x0, .LC330 add x0, x0, :lo12:.LC330 bl printk @@ -26586,29 +26601,29 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4163 + cbnz x0, .L4170 ldr w1, [x29,56] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L4160 + bne .L4167 ldr w0, [x29,60] cmp w0, 512 - bhi .L4160 + bhi .L4167 adrp x19, .LANCHOR6 add x0, x19, :lo12:.LANCHOR6 ldr w1, [x0,308] - cbnz w1, .L4164 -.L4167: + cbnz w1, .L4171 +.L4174: mov x0, 0 - b .L4117 -.L4164: + b .L4124 +.L4171: ldr x1, [x0,312] mov w2, 22867 movk w2, 0x4453, lsl 16 ldr w3, [x1] cmp w3, w2 - beq .L4165 + beq .L4172 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] @@ -26618,7 +26633,7 @@ rknand_sys_storage_ioctl: ldr x0, [x0,312] str wzr, [x0,8] str wzr, [x0,12] -.L4165: +.L4172: add x20, x19, :lo12:.LANCHOR6 mov w0, 0 ldr x1, [x20,312] @@ -26629,7 +26644,7 @@ rknand_sys_storage_ioctl: movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L4166 + beq .L4173 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] @@ -26638,7 +26653,7 @@ rknand_sys_storage_ioctl: str w1, [x0,4] ldr x0, [x20,296] str wzr, [x0,8] -.L4166: +.L4173: add x19, x19, :lo12:.LANCHOR6 mov w1, 0 mov x2, 128 @@ -26651,8 +26666,8 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore str wzr, [x19,308] str wzr, [x19,304] - b .L4214 -.L4120: + b .L4221 +.L4127: adrp x0, .LC331 add x0, x0, :lo12:.LC331 bl printk @@ -26660,26 +26675,26 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4163 + cbnz x0, .L4170 ldr w2, [x29,56] mov w1, 20037 movk w1, 0x4253, lsl 16 cmp w2, w1 - bne .L4160 + bne .L4167 ldr w1, [x29,60] cmp w1, 512 - bhi .L4160 + bhi .L4167 adrp x19, .LANCHOR6 add x1, x19, :lo12:.LANCHOR6 ldr w2, [x1,308] cmp w2, 1 - beq .L4167 + beq .L4174 ldr x2, [x1,312] mov w3, 22867 movk w3, 0x4453, lsl 16 ldr w4, [x2] cmp w4, w3 - beq .L4168 + beq .L4175 mov w3, 22867 movk w3, 0x4453, lsl 16 str w3, [x2] @@ -26689,7 +26704,7 @@ rknand_sys_storage_ioctl: ldr x1, [x1,312] str w0, [x1,8] str w0, [x1,12] -.L4168: +.L4175: add x20, x19, :lo12:.LANCHOR6 mov w0, 1 ldr x1, [x20,312] @@ -26701,7 +26716,7 @@ rknand_sys_storage_ioctl: movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L4169 + beq .L4176 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] @@ -26710,7 +26725,7 @@ rknand_sys_storage_ioctl: str w1, [x0,4] ldr x0, [x20,296] str wzr, [x0,8] -.L4169: +.L4176: add x19, x19, :lo12:.LANCHOR6 mov w1, 0 mov x2, 128 @@ -26723,8 +26738,8 @@ rknand_sys_storage_ioctl: bl StorageSysDataStore mov w0, 1 str w0, [x19,308] - b .L4214 -.L4126: + b .L4221 +.L4133: adrp x0, .LC332 add x0, x0, :lo12:.LC332 bl printk @@ -26732,57 +26747,57 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4163 + cbnz x0, .L4170 ldr w1, [x29,56] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L4160 + bne .L4167 ldr w2, [x29,60] cmp w2, 512 - bhi .L4160 + bhi .L4167 adrp x1, .LANCHOR6 add x0, x29, 64 add x1, x1, :lo12:.LANCHOR6 uxtw x2, w2 add x1, x1, 320 - b .L4222 -.L4127: + b .L4229 +.L4134: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L4170 + bne .L4177 adrp x0, .LC333 add x0, x0, :lo12:.LC333 - b .L4212 -.L4170: + b .L4219 +.L4177: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L4172 + bne .L4179 adrp x0, .LC334 add x0, x0, :lo12:.LC334 - b .L4212 -.L4172: + b .L4219 +.L4179: adrp x0, .LC335 add x0, x0, :lo12:.LC335 -.L4212: +.L4219: bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4163 + cbnz x0, .L4170 ldr w1, [x29,56] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L4217 + bne .L4224 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x0, .LANCHOR6 - bne .L4173 + bne .L4180 add x0, x0, :lo12:.LANCHOR6 add x1, x29, 56 mov x2, 16 @@ -26792,19 +26807,19 @@ rknand_sys_storage_ioctl: strb w0, [x29,64] mov x0, x20 bl rk_copy_to_user - cbz x0, .L4117 - b .L4217 -.L4173: + cbz x0, .L4124 + b .L4224 +.L4180: add x20, x0, :lo12:.LANCHOR6 ldr w1, [x20,832] cmp w1, 10 - bhi .L4217 + bhi .L4224 ldr x1, [x20,296] ldr w2, [x29,60] ldr w3, [x1,24] cmp w3, w2 - beq .L4174 - cbz w3, .L4174 + beq .L4181 + cbz w3, .L4181 adrp x0, .LC336 mov w1, w2 add x0, x0, :lo12:.LC336 @@ -26812,29 +26827,29 @@ rknand_sys_storage_ioctl: ldr w0, [x20,832] add w0, w0, 1 str w0, [x20,832] - b .L4217 -.L4174: + b .L4224 +.L4181: add x0, x0, :lo12:.LANCHOR6 str wzr, [x0,832] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L4175 + bne .L4182 str wzr, [x1,20] str wzr, [x1,24] - b .L4176 -.L4175: + b .L4183 +.L4182: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L4176: +.L4183: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L4214 - b .L4144 -.L4139: + bne .L4221 + b .L4151 +.L4146: adrp x0, .LC337 add x0, x0, :lo12:.LC337 bl printk @@ -26842,15 +26857,15 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4163 + cbnz x0, .L4170 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L4160 + bne .L4167 ldr w2, [x29,60] cmp w2, 504 - bhi .L4160 + bhi .L4167 mov w0, 30224 adrp x1, .LANCHOR6 movk w0, 0x4004, lsl 16 @@ -26858,21 +26873,21 @@ rknand_sys_storage_ioctl: cmp w19, w0 add x1, x1, :lo12:.LANCHOR6 add x0, x29, 64 - bne .L4177 + bne .L4184 ldr x1, [x1,840] - b .L4213 -.L4177: + b .L4220 +.L4184: ldr x1, [x1,848] -.L4213: +.L4220: add x1, x1, 8 -.L4222: +.L4229: bl memcpy -.L4223: +.L4230: mov x0, x20 add x1, x29, 56 mov x2, 520 - b .L4209 -.L4136: + b .L4216 +.L4143: adrp x0, .LC338 add x0, x0, :lo12:.LC338 bl printk @@ -26880,50 +26895,50 @@ rknand_sys_storage_ioctl: mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L4163 + cbnz x0, .L4170 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L4160 + bne .L4167 ldr w2, [x29,60] cmp w2, 504 - bhi .L4160 + bhi .L4167 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 adrp x19, .LANCHOR6 add x19, x19, :lo12:.LANCHOR6 - bne .L4179 + bne .L4186 ldr x0, [x19,840] add x1, x29, 56 bl memcpy mov w0, 2 ldr x1, [x19,840] - b .L4215 -.L4179: + b .L4222 +.L4186: ldr x0, [x19,848] add x1, x29, 56 bl memcpy ldr x1, [x19,848] mov w0, 3 -.L4215: +.L4222: bl StorageSysDataStore uxtw x19, w0 - b .L4144 -.L4214: + b .L4151 +.L4221: mov x19, 0 -.L4144: +.L4151: adrp x0, .LC339 mov x1, x19 add x0, x0, :lo12:.LC339 bl printk mov x0, x19 - b .L4117 -.L4180: + b .L4124 +.L4187: mov x0, -22 -.L4117: +.L4124: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -26962,25 +26977,25 @@ rk_ftl_storage_sys_init: ldr w1, [x0,16] ldr w21, [x0,508] str w1, [x19,308] - cbz w21, .L4230 + cbz w21, .L4237 mov w1, 508 bl js_hash cmp w21, w0 - beq .L4230 + beq .L4237 ldr x0, [x19,312] str wzr, [x19,308] str wzr, [x0,16] adrp x0, .LC340 add x0, x0, :lo12:.LC340 bl printk -.L4230: +.L4237: add x0, x20, :lo12:.LANCHOR6 ldr w1, [x0,308] - cbz w1, .L4232 + cbz w1, .L4239 mov w1, 5161 movk w1, 0xc059, lsl 16 str w1, [x0,304] -.L4232: +.L4239: add x20, x20, :lo12:.LANCHOR6 mov w0, 2 ldr x1, [x20,840] @@ -27016,19 +27031,19 @@ rk_ftl_vendor_storage_init: add x1, x21, :lo12:.LANCHOR6 mov w19, -12 str x0, [x1,856] - cbz x0, .L4238 + cbz x0, .L4245 mov w23, 0 adrp x24, .LC341 mov w19, w23 mov w22, w23 add x24, x24, :lo12:.LC341 -.L4242: +.L4249: add x20, x21, :lo12:.LANCHOR6 lsl w0, w22, 7 mov w1, 128 ldr x2, [x20,856] bl FlashBootVendorRead - cbnz w0, .L4239 + cbnz w0, .L4246 ldr x3, [x20,856] mov x0, x24 add x2, x3, 61440 @@ -27041,29 +27056,29 @@ rk_ftl_vendor_storage_init: movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L4240 + bne .L4247 ldr w0, [x20,4] cmp w19, w0 - bcs .L4240 + bcs .L4247 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L4240: - cbnz w22, .L4250 +.L4247: + cbnz w22, .L4257 mov w22, 1 - b .L4242 -.L4250: - cbz w19, .L4243 + b .L4249 +.L4257: + cbz w19, .L4250 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L4238 - b .L4239 -.L4243: + cbz w0, .L4245 + b .L4246 +.L4250: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -27077,14 +27092,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L4238 -.L4239: + b .L4245 +.L4246: add x21, x21, :lo12:.LANCHOR6 mov w19, -1 ldr x0, [x21,856] bl kfree str xzr, [x21,856] -.L4238: +.L4245: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -27102,18 +27117,18 @@ rk_ftl_vendor_read: ldr x5, [x3,#:lo12:.LANCHOR6+856] mov w3, -1 str x19, [sp,16] - cbz x5, .L4252 + cbz x5, .L4259 ldrh w3, [x5,10] mov x4, 0 -.L4253: +.L4260: cmp w4, w3 mov w6, w4 - bcs .L4257 + bcs .L4264 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L4253 + bne .L4260 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -27125,10 +27140,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L4252 -.L4257: + b .L4259 +.L4264: mov w3, -1 -.L4252: +.L4259: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -27151,38 +27166,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L4259 + cbz x19, .L4266 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L4260: +.L4267: cmp w2, w3 mov w4, w2 - bcs .L4275 + bcs .L4282 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L4260 + bne .L4267 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 .L4261 + bls .L4268 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L4259 + bcc .L4266 ldrh w21, [x21,18] add w22, w3, w2 -.L4262: +.L4269: cmp w4, w22 uxtw x3, w4 - bcs .L4276 + bcs .L4283 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -27205,8 +27220,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L4262 -.L4276: + b .L4269 +.L4283: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -27223,20 +27238,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L4274 -.L4261: + b .L4281 +.L4268: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L4274 -.L4275: + b .L4281 +.L4282: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L4259 + bcc .L4266 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -27256,7 +27271,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L4274: +.L4281: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -27273,7 +27288,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L4259: +.L4266: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -27297,37 +27312,37 @@ rk_ftl_vendor_storage_ioctl: mov x21, x2 bl ftl_malloc mov x19, x0 - cbz x0, .L4278 + cbz x0, .L4285 mov w2, 30209 ldr x1, [x29,56] movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L4280 + beq .L4287 mov w2, 30210 movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L4281 - b .L4292 -.L4280: + beq .L4288 + b .L4299 +.L4287: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L4292 + cbnz x0, .L4299 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L4283 -.L4284: + beq .L4290 +.L4291: mov x20, -1 - b .L4279 -.L4283: + b .L4286 +.L4290: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L4284 + beq .L4291 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -27337,38 +27352,38 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L4279 -.L4281: + b .L4286 +.L4288: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L4292 + cbnz x0, .L4299 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L4284 + bne .L4291 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L4284 + bhi .L4291 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L4292 + cbnz x0, .L4299 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L4279 -.L4292: + b .L4286 +.L4299: mov x20, -14 -.L4279: +.L4286: mov x0, x19 bl kfree -.L4278: +.L4285: mov x0, x20 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -27554,24 +27569,24 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR1 = . + 0 - .type __func__.34230, %object - .size __func__.34230, 18 -__func__.34230: + .type __func__.38783, %object + .size __func__.38783, 18 +__func__.38783: .string "_list_remove_node" .zero 6 - .type __func__.34255, %object - .size __func__.34255, 23 -__func__.34255: + .type __func__.38808, %object + .size __func__.38808, 23 +__func__.38808: .string "_list_update_data_list" .zero 1 - .type __func__.19150, %object - .size __func__.19150, 22 -__func__.19150: + .type __func__.20392, %object + .size __func__.20392, 22 +__func__.20392: .string "nand_flash_print_info" .zero 2 - .type __func__.19236, %object - .size __func__.19236, 11 -__func__.19236: + .type __func__.20478, %object + .size __func__.20478, 11 +__func__.20478: .string "nandc_init" .zero 5 .type toshiba_A19ref_value, %object @@ -27733,14 +27748,14 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.18699, %object - .size __func__.18699, 28 -__func__.18699: + .type __func__.19935, %object + .size __func__.19935, 28 +__func__.19935: .string "flash_wait_device_ready_raw" .zero 4 - .type __func__.18763, %object - .size __func__.18763, 22 -__func__.18763: + .type __func__.19999, %object + .size __func__.19999, 22 +__func__.19999: .string "flash_start_page_read" .zero 2 .type toshiba_3D_tlc_value, %object @@ -28161,19 +28176,19 @@ toshiba_3D_slc_value: .byte -56 .byte 56 .zero 5 - .type __func__.18788, %object - .size __func__.18788, 23 -__func__.18788: + .type __func__.20024, %object + .size __func__.20024, 23 +__func__.20024: .string "flash_start_plane_read" .zero 1 - .type __func__.18674, %object - .size __func__.18674, 26 -__func__.18674: + .type __func__.19910, %object + .size __func__.19910, 26 +__func__.19910: .string "flash_erase_duplane_block" .zero 6 - .type __func__.18685, %object - .size __func__.18685, 21 -__func__.18685: + .type __func__.19921, %object + .size __func__.19921, 21 +__func__.19921: .string "flash_erase_block_en" .zero 3 .type random_seed, %object @@ -28307,280 +28322,280 @@ random_seed: .hword 28406 .hword 17598 .hword 28087 - .type __func__.19419, %object - .size __func__.19419, 13 -__func__.19419: + .type __func__.20661, %object + .size __func__.20661, 13 +__func__.20661: .string "buf_add_tail" .zero 3 - .type __func__.19432, %object - .size __func__.19432, 10 -__func__.19432: + .type __func__.20674, %object + .size __func__.20674, 10 +__func__.20674: .string "buf_alloc" .zero 6 - .type __func__.19446, %object - .size __func__.19446, 16 -__func__.19446: + .type __func__.20688, %object + .size __func__.20688, 16 +__func__.20688: .string "buf_remove_free" .type zftl_debug_proc_fops, %object - .size zftl_debug_proc_fops, 216 + .size zftl_debug_proc_fops, 256 zftl_debug_proc_fops: .xword 0 .xword seq_lseek .xword seq_read .xword zftl_debug_proc_write - .zero 56 + .zero 72 .xword zftl_debug_proc_open .zero 8 .xword single_release - .zero 104 - .type __func__.33794, %object - .size __func__.33794, 12 -__func__.33794: + .zero 128 + .type __func__.38347, %object + .size __func__.38347, 12 +__func__.38347: .string "gc_add_sblk" .zero 4 - .type __func__.33888, %object - .size __func__.33888, 19 -__func__.33888: + .type __func__.38441, %object + .size __func__.38441, 19 +__func__.38441: .string "gc_write_completed" .zero 5 - .type __func__.34437, %object - .size __func__.34437, 18 -__func__.34437: + .type __func__.38990, %object + .size __func__.38990, 18 +__func__.38990: .string "ftl_alloc_sys_blk" .zero 6 - .type __func__.34447, %object - .size __func__.34447, 17 -__func__.34447: + .type __func__.39000, %object + .size __func__.39000, 17 +__func__.39000: .string "ftl_free_sys_blk" .zero 7 - .type __func__.34586, %object - .size __func__.34586, 23 -__func__.34586: + .type __func__.39139, %object + .size __func__.39139, 23 +__func__.39139: .string "ftl_get_ppa_from_index" .zero 1 - .type __func__.34626, %object - .size __func__.34626, 22 -__func__.34626: + .type __func__.39179, %object + .size __func__.39179, 22 +__func__.39179: .string "ftl_get_new_free_page" .zero 2 - .type __func__.34637, %object - .size __func__.34637, 22 -__func__.34637: + .type __func__.39190, %object + .size __func__.39190, 22 +__func__.39190: .string "ftl_ext_alloc_new_blk" .zero 2 - .type __func__.33944, %object - .size __func__.33944, 16 -__func__.33944: + .type __func__.38497, %object + .size __func__.38497, 16 +__func__.38497: .string "gc_free_src_blk" - .type __func__.33545, %object - .size __func__.33545, 14 -__func__.33545: + .type __func__.38098, %object + .size __func__.38098, 14 +__func__.38098: .string "ftl_write_buf" .zero 2 - .type __func__.33590, %object - .size __func__.33590, 18 -__func__.33590: + .type __func__.38143, %object + .size __func__.38143, 18 +__func__.38143: .string "zftl_add_read_buf" .zero 6 - .type __func__.34395, %object - .size __func__.34395, 15 -__func__.34395: + .type __func__.38948, %object + .size __func__.38948, 15 +__func__.38948: .string "ftl_alloc_sblk" .align 3 .LANCHOR4 = . + 0 - .type __func__.35023, %object - .size __func__.35023, 17 -__func__.35023: + .type __func__.39576, %object + .size __func__.39576, 17 +__func__.39576: .string "pm_alloc_new_blk" .zero 7 - .type __func__.35051, %object - .size __func__.35051, 21 -__func__.35051: + .type __func__.39604, %object + .size __func__.39604, 21 +__func__.39604: .string "pm_select_ram_region" .zero 3 - .type __func__.19140, %object - .size __func__.19140, 20 -__func__.19140: + .type __func__.20382, %object + .size __func__.20382, 20 +__func__.20382: .string "flash_die_info_init" .zero 4 - .type __func__.33480, %object - .size __func__.33480, 17 -__func__.33480: + .type __func__.38033, %object + .size __func__.38033, 17 +__func__.38033: .string "lpa_rebuild_hash" .zero 7 - .type __func__.34983, %object - .size __func__.34983, 13 -__func__.34983: + .type __func__.39536, %object + .size __func__.39536, 13 +__func__.39536: .string "pm_free_sblk" .zero 3 - .type __func__.19470, %object - .size __func__.19470, 21 -__func__.19470: + .type __func__.20712, %object + .size __func__.20712, 21 +__func__.20712: .string "flash_info_data_init" .zero 3 - .type __func__.18616, %object - .size __func__.18616, 19 -__func__.18616: + .type __func__.19852, %object + .size __func__.19852, 19 +__func__.19852: .string "flash_read_page_en" .zero 5 - .type __func__.18776, %object - .size __func__.18776, 31 -__func__.18776: - .string "flash_complete_plane_page_read" - .zero 1 - .type __func__.18801, %object - .size __func__.18801, 25 -__func__.18801: - .string "flash_complete_page_read" - .zero 7 - .type __func__.34822, %object - .size __func__.34822, 31 -__func__.34822: - .string "queue_wait_first_req_completed" - .zero 1 - .type __func__.34903, %object - .size __func__.34903, 15 -__func__.34903: - .string "sblk_read_page" - .zero 1 - .type __func__.18723, %object - .size __func__.18723, 26 -__func__.18723: + .type __func__.19959, %object + .size __func__.19959, 26 +__func__.19959: .string "flash_start_tlc_page_prog" .zero 6 - .type __func__.18752, %object - .size __func__.18752, 22 -__func__.18752: - .string "flash_start_page_prog" - .zero 2 - .type __func__.34876, %object - .size __func__.34876, 15 -__func__.34876: - .string "sblk_prog_page" - .zero 1 - .type __func__.18734, %object - .size __func__.18734, 29 -__func__.18734: + .type __func__.19970, %object + .size __func__.19970, 29 +__func__.19970: .string "flash_start_3d_mlc_page_prog" .zero 3 - .type __func__.18658, %object - .size __func__.18658, 19 -__func__.18658: + .type __func__.19988, %object + .size __func__.19988, 22 +__func__.19988: + .string "flash_start_page_prog" + .zero 2 + .type __func__.20012, %object + .size __func__.20012, 31 +__func__.20012: + .string "flash_complete_plane_page_read" + .zero 1 + .type __func__.20037, %object + .size __func__.20037, 25 +__func__.20037: + .string "flash_complete_page_read" + .zero 7 + .type __func__.39375, %object + .size __func__.39375, 31 +__func__.39375: + .string "queue_wait_first_req_completed" + .zero 1 + .type __func__.39429, %object + .size __func__.39429, 15 +__func__.39429: + .string "sblk_prog_page" + .zero 1 + .type __func__.39456, %object + .size __func__.39456, 15 +__func__.39456: + .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__.34700, %object - .size __func__.34700, 14 -__func__.34700: + .type __func__.39253, %object + .size __func__.39253, 14 +__func__.39253: .string "ftl_prog_page" .zero 2 - .type __func__.34363, %object - .size __func__.34363, 15 -__func__.34363: + .type __func__.38916, %object + .size __func__.38916, 15 +__func__.38916: .string "ftl_info_flush" .zero 1 - .type __func__.34662, %object - .size __func__.34662, 19 -__func__.34662: + .type __func__.39215, %object + .size __func__.39215, 19 +__func__.39215: .string "ftl_ext_info_flush" .zero 5 - .type __func__.34674, %object - .size __func__.34674, 18 -__func__.34674: + .type __func__.39227, %object + .size __func__.39227, 18 +__func__.39227: .string "ftl_ext_info_init" .zero 6 - .type __func__.34553, %object - .size __func__.34553, 23 -__func__.34553: + .type __func__.39106, %object + .size __func__.39106, 23 +__func__.39106: .string "ftl_open_sblk_recovery" .zero 1 - .type __func__.35033, %object - .size __func__.35033, 14 -__func__.35033: + .type __func__.39586, %object + .size __func__.39586, 14 +__func__.39586: .string "pm_write_page" .zero 2 - .type __func__.19492, %object - .size __func__.19492, 17 -__func__.19492: + .type __func__.20734, %object + .size __func__.20734, 17 +__func__.20734: .string "flash_info_flush" .zero 7 - .type __func__.19459, %object - .size __func__.19459, 20 -__func__.19459: + .type __func__.20701, %object + .size __func__.20701, 20 +__func__.20701: .string "flash_info_blk_init" .zero 4 - .type __func__.19195, %object - .size __func__.19195, 16 -__func__.19195: + .type __func__.20437, %object + .size __func__.20437, 16 +__func__.20437: .string "nand_flash_init" - .type __func__.34529, %object - .size __func__.34529, 16 -__func__.34529: + .type __func__.39082, %object + .size __func__.39082, 16 +__func__.39082: .string "ftl_sysblk_dump" - .type __func__.34967, %object - .size __func__.34967, 16 -__func__.34967: + .type __func__.39520, %object + .size __func__.39520, 16 +__func__.39520: .string "load_l2p_region" - .type __func__.35007, %object - .size __func__.35007, 6 -__func__.35007: + .type __func__.39560, %object + .size __func__.39560, 6 +__func__.39560: .string "pm_gc" .zero 2 - .type __func__.33875, %object - .size __func__.33875, 22 -__func__.33875: + .type __func__.38428, %object + .size __func__.38428, 22 +__func__.38428: .string "gc_update_l2p_map_new" .zero 2 - .type __func__.33988, %object - .size __func__.33988, 16 -__func__.33988: + .type __func__.38541, %object + .size __func__.38541, 16 +__func__.38541: .string "gc_scan_src_blk" - .type __func__.34046, %object - .size __func__.34046, 20 -__func__.34046: + .type __func__.38599, %object + .size __func__.38599, 20 +__func__.38599: .string "gc_scan_static_data" .zero 4 - .type __func__.34109, %object - .size __func__.34109, 18 -__func__.34109: + .type __func__.38662, %object + .size __func__.38662, 18 +__func__.38662: .string "gc_block_vpn_scan" .zero 6 - .type __func__.34505, %object - .size __func__.34505, 14 -__func__.34505: + .type __func__.39058, %object + .size __func__.39058, 14 +__func__.39058: .string "ftl_sblk_dump" .zero 2 - .type __func__.33623, %object - .size __func__.33623, 10 -__func__.33623: + .type __func__.38176, %object + .size __func__.38176, 10 +__func__.38176: .string "zftl_read" .zero 6 - .type __func__.33841, %object - .size __func__.33841, 21 -__func__.33841: + .type __func__.38394, %object + .size __func__.38394, 21 +__func__.38394: .string "gc_check_data_one_wl" .zero 3 - .type __func__.34607, %object - .size __func__.34607, 19 -__func__.34607: + .type __func__.39160, %object + .size __func__.39160, 19 +__func__.39160: .string "ftl_update_l2p_map" .zero 5 - .type __func__.33527, %object - .size __func__.33527, 17 -__func__.33527: + .type __func__.38080, %object + .size __func__.38080, 17 +__func__.38080: .string "ftl_write_commit" .zero 7 - .type __func__.33917, %object - .size __func__.33917, 16 -__func__.33917: + .type __func__.38470, %object + .size __func__.38470, 16 +__func__.38470: .string "gc_do_copy_back" - .type __func__.34137, %object - .size __func__.34137, 11 -__func__.34137: + .type __func__.38690, %object + .size __func__.38690, 11 +__func__.38690: .string "zftl_do_gc" .zero 5 - .type __func__.33654, %object - .size __func__.33654, 13 -__func__.33654: + .type __func__.38207, %object + .size __func__.38207, 13 +__func__.38207: .string "_ftl_discard" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -28588,7 +28603,7 @@ __func__.33654: .LC1: .string "%s\n" .LC2: - .string "FTL version: 6.0.18 20190918" + .string "FTL version: 6.0.20 20200218" .LC3: .string "zftl_debug:0x%x\n" .LC4: @@ -28860,105 +28875,105 @@ __func__.33654: .LC137: .string "rk_ftl_de_init %x\n" .LC138: - .string "%s %p:0x%x:" + .string "\0013" .LC139: - .string "%x " -.LC140: - .string "" -.LC141: .string "otp error! %d" -.LC142: +.LC140: .string "rr" -.LC143: +.LC141: .string "flash_abort_clear = %d\n" -.LC144: +.LC142: .string "%d mtrans_cnt = %d page_num = %d\n" -.LC145: +.LC143: .string "nandc:" -.LC146: +.LC144: .string "%d flReg.d32=%x %x\n" -.LC147: +.LC145: .string "nandc_xfer_done read error %x\n" -.LC148: +.LC146: .string "dqs data abort %x\n" -.LC149: +.LC147: .string "dqs data timeout %x\n" -.LC150: +.LC148: .string "xfer error %x\n" -.LC151: +.LC149: .string "flash_read_page %x %x %x\n" -.LC152: +.LC150: .string "MT %d row=%x,last status %d,status = %d\n" -.LC153: +.LC151: .string "MT RR %d row=%x,count %d,status=%d\n" -.LC154: +.LC152: .string "toshiba SRR %d row=%x, status=%d\n" -.LC155: +.LC153: .string "toshiba TRR %d row=%x, status=%d\n" -.LC156: +.LC154: .string "toshiba RR %d row=%x,count %d,status=%d\n" -.LC157: +.LC155: .string "hynix RR %d row=%x, count %d, status=%d\n" -.LC158: +.LC156: .string "%d flash_ddr_tuning_read %x ecc=%d\n" -.LC159: +.LC157: .string "sync para %d\n" -.LC160: +.LC158: .string "DDR mode Read error %x %x\n" -.LC161: +.LC159: .string "SDR mode Read %x %x ecc:%x\n" -.LC162: - .string "flash_read_page_en %x %x %x\n" -.LC163: +.LC160: + .string "flash_read_page_en %x %x %x %x\n" +.LC161: .string "flash_read_page_en %x %x error_ecc %d %d\n" -.LC164: +.LC162: .string "flash_get_last_written_page: %x %x %x\n" -.LC165: +.LC163: .string "read page: %x %x %x %x\n" -.LC166: - .string "flash_complete_page_read %x %x error_ecc %d %d\n" -.LC167: - .string "read: %x %x %x %x\n" -.LC168: - .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" -.LC169: - .string "prog end %x %x error_ecc %d %d\n" -.LC170: - .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" -.LC171: - .string "dp prog end %x %x error_ecc %d %d\n" -.LC172: - .string "sblk_3d_tlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" -.LC173: - .string "sblk_prog_page ppa = %x, count = %d\n" -.LC174: +.LC164: .string "flash_prog_page %x %x %x\n" -.LC175: +.LC165: .string "flash_prog_page page_addr = %x status = %x\n" -.LC176: +.LC166: + .string "sblk_3d_tlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" +.LC167: .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" -.LC177: +.LC168: + .string "flash_complete_page_read %x %x error_ecc %d %d\n" +.LC169: + .string "read: %x %x %x %x\n" +.LC170: + .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" +.LC171: + .string "prog end %x %x error_ecc %d %d\n" +.LC172: + .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" +.LC173: + .string "dp prog end %x %x error_ecc %d %d\n" +.LC174: + .string "sblk_prog_page ppa = %x, count = %d\n" +.LC175: .string "flash_prog_page_en:%x %x %x\n" -.LC178: +.LC176: .string "w d:" -.LC179: +.LC177: .string "w s:" -.LC180: +.LC178: .string "spare" -.LC181: +.LC179: .string "data" -.LC182: +.LC180: .string "write error: %x\n" -.LC183: +.LC181: .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" -.LC184: +.LC182: .string "%d %x @%d %x\n" -.LC185: +.LC183: .string "ftl_info_blk_init %d %d %x\n" -.LC186: +.LC184: + .string "ftl info hash %x error\n" +.LC185: .string "ink flag: %x\n" -.LC187: +.LC186: .string "%s %d %d %x %x\n" +.LC187: + .string "ext info hash %x error\n" .LC188: .string "%s %x %x %x\n" .LC189: @@ -29050,147 +29065,147 @@ __func__.33654: .LC232: .string "pm_init recovery %x %x %x\n" .LC233: - .string "pm_log2phys lpn = %d, max lpn = %d\n" + .string "pm_init hash %x error\n" .LC234: - .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "pm_log2phys lpn = %d, max lpn = %d\n" .LC235: - .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC236: - .string "gc_recovery: %x vpn = %x\n" + .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC237: - .string "_c_user_data_density := %d\n" + .string "gc_recovery: %x vpn = %x\n" .LC238: - .string "_c_totle_phy_density := %d\n" + .string "_c_user_data_density := %d\n" .LC239: - .string "_c_totle_log_page := %d\n" + .string "_c_totle_phy_density := %d\n" .LC240: - .string "_c_totle_data_density := %d\n" + .string "_c_totle_log_page := %d\n" .LC241: - .string "_c_ftl_pm_page_num := %d\n" + .string "_c_totle_data_density := %d\n" .LC242: - .string "_c_ftl_byte_pre_page := %d\n" + .string "_c_ftl_pm_page_num := %d\n" .LC243: - .string "_c_max_pm_sblk := %d\n" + .string "_c_ftl_byte_pre_page := %d\n" .LC244: - .string "_min_slc_super_block := %d\n" + .string "_c_max_pm_sblk := %d\n" .LC245: - .string "_max_xlc_super_block := %d\n" + .string "_min_slc_super_block := %d\n" .LC246: - .string "gp_ftl_ext_info %p %p %p\n" + .string "_max_xlc_super_block := %d\n" .LC247: - .string "flash info size: %d %d %d\n" + .string "gp_ftl_ext_info %p %p %p\n" .LC248: - .string "ftl_init %x\n" + .string "flash info size: %d %d %d\n" .LC249: - .string "gc_update_l2p_map_new sblk %x\n" + .string "ftl_init %x\n" .LC250: - .string "gc_update_l2p_map_new: %x %x %x\n" + .string "gc_update_l2p_map_new sblk %x\n" .LC251: - .string "lpa: %x %x %x\n" + .string "gc_update_l2p_map_new: %x %x %x\n" .LC252: - .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" + .string "lpa: %x %x %x\n" .LC253: - .string "gc_scan_src_blk = %x, vpn = %d\n" + .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" .LC254: - .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" + .string "gc_scan_src_blk = %x, vpn = %d\n" .LC255: - .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" + .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" .LC256: - .string "ftl_sblk_dump = %x %d %d %d %d\n" + .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" .LC257: - .string "ftl_sblk_dump = %x %x %x %x\n" + .string "ftl_sblk_dump = %x %d %d %d %d\n" .LC258: - .string "page_addr = %x, lpa=%x vpn = %d\n" + .string "ftl_sblk_dump = %x %x %x %x\n" .LC259: - .string "index= %x, lpa=%x\n" + .string "page_addr = %x, lpa=%x vpn = %d\n" .LC260: - .string "block = %x, vpn=%x check vpn = %d\n" + .string "index= %x, lpa=%x\n" .LC261: - .string "ftl_read %x %x %x\n" + .string "block = %x, vpn=%x check vpn = %d\n" .LC262: - .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" + .string "ftl_read %x %x %x\n" .LC263: - .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" + .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" .LC264: - .string "zftl debug cmd: %s\n" + .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" .LC265: - .string "cmd:" + .string "zftl debug cmd: %s\n" .LC266: - .string "dumpl2p" + .string "cmd:" .LC267: - .string "pm l2p:" + .string "dumpl2p" .LC268: - .string "pm blk:" + .string "pm l2p:" .LC269: - .string "dumppm:" + .string "pm blk:" .LC270: - .string "p_cmd: %s\n" + .string "dumppm:" .LC271: - .string "pm ram = %x, %x\n" + .string "p_cmd: %s\n" .LC272: - .string "ram:" + .string "pm ram = %x, %x\n" .LC273: - .string "pm:" + .string "ram:" .LC274: - .string "dumpsys" + .string "pm:" .LC275: - .string "dumplist:" + .string "dumpsys" .LC276: - .string "vpncheck" + .string "dumplist:" .LC277: - .string "dumpppa:" + .string "vpncheck" .LC278: - .string "dumpblk:" + .string "dumpppa:" .LC279: - .string "setzdebug:" + .string "dumpblk:" .LC280: - .string "lpa2ppa:" + .string "setzdebug:" .LC281: - .string "lpa: %x--> ppa: %x\n" + .string "lpa2ppa:" .LC282: - .string "help:\n" + .string "lpa: %x--> ppa: %x\n" .LC283: - .string "1. echo dumpl2p > /proc/zftl_debug\n" + .string "help:\n" .LC284: - .string "2. echo dumppm:x > /proc/zftl_debug\n" + .string "1. echo dumpl2p > /proc/zftl_debug\n" .LC285: - .string "3. echo dumpsys > /proc/zftl_debug\n" + .string "2. echo dumppm:x > /proc/zftl_debug\n" .LC286: - .string "4. echo dumpppa:x > /proc/zftl_debug\n" + .string "3. echo dumpsys > /proc/zftl_debug\n" .LC287: - .string "5. echo vpncheck > /proc/zftl_debug\n" + .string "4. echo dumpppa:x > /proc/zftl_debug\n" .LC288: - .string "6. echo setzdebug:x > /proc/zftl_debug\n" + .string "5. echo vpncheck > /proc/zftl_debug\n" .LC289: - .string "7. echo dumplist > /proc/zftl_debug\n" + .string "6. echo setzdebug:x > /proc/zftl_debug\n" .LC290: - .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" + .string "7. echo dumplist > /proc/zftl_debug\n" .LC291: - .string "gc_lpa:" + .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" .LC292: - .string "gc_ppa:" + .string "gc_lpa:" .LC293: - .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "gc_ppa:" .LC294: - .string "ftl_update_l2p_map: %x %x %x\n" + .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC295: - .string "ftl_update_l2p_map" + .string "ftl_update_l2p_map: %x %x %x\n" .LC296: - .string "lpa_tbl:" + .string "ftl_update_l2p_map" .LC297: - .string "sblk %x vpn: %d %d\n" + .string "lpa_tbl:" .LC298: - .string "error gc_add_sblk: %x\n" + .string "sblk %x vpn: %d %d\n" .LC299: - .string "%d read error: ppa:%x, lpa:%x, status:%x\n" + .string "error gc_add_sblk: %x\n" .LC300: - .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" + .string "%d read error: ppa:%x, lpa:%x, status:%x\n" .LC301: - .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" + .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" .LC302: - .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x %x %d\n" + .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" .LC303: - .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%d id = %x plane = %x lpa=%x %x\n" + .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x %x %d\n" .LC304: .string "gc %d: %d %d %d %d %d %d %d\n" .LC305: @@ -29702,7 +29717,7 @@ hy_f26_ref_value: .byte -37 .zero 4 .type zftl_nand_flash_para_tbl, %object - .size zftl_nand_flash_para_tbl, 1408 + .size zftl_nand_flash_para_tbl, 1440 zftl_nand_flash_para_tbl: .byte 6 .byte -104 @@ -30601,6 +30616,34 @@ zftl_nand_flash_para_tbl: .byte 0 .byte 4 .byte 6 + .byte 44 + .byte -92 + .byte 100 + .byte 50 + .byte -86 + .byte 4 + .byte 4 + .byte 1 + .byte 32 + .hword 1024 + .byte 2 + .byte 1 + .hword 2192 + .hword 9671 + .byte 10 + .byte 19 + .byte 70 + .byte 32 + .byte 1 + .byte 0 + .byte 4 + .byte 0 + .hword 1024 + .byte 2 + .byte -38 + .byte -33 + .byte 0 + .byte 6 .byte -83 .byte -34 .byte 20 @@ -30792,10 +30835,10 @@ zftl_nand_flash_para_tbl: .byte 4 .byte 0 .hword 512 - .byte 2 + .byte 0 .byte -65 .byte -66 - .byte 0 + .byte 1 .byte 5 .byte -119 .byte 100 @@ -33006,20 +33049,20 @@ g_flash_page_buffer: .size g_flash_spare_buffer, 8 g_flash_spare_buffer: .zero 8 - .type g_flash_multi_page_read_en, %object - .size g_flash_multi_page_read_en, 1 -g_flash_multi_page_read_en: - .zero 1 .type write_commit_head, %object .size write_commit_head, 1 write_commit_head: .zero 1 - .zero 2 + .zero 3 .type ftl_flush_jiffies, %object .size ftl_flush_jiffies, 4 ftl_flush_jiffies: .zero 4 - .zero 48 + .type g_flash_multi_page_read_en, %object + .size g_flash_multi_page_read_en, 1 +g_flash_multi_page_read_en: + .zero 1 + .zero 47 .type ftl_info_spare, %object .size ftl_info_spare, 256 ftl_info_spare: